galaxy-commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
April 2015
- 2 participants
- 47 discussions
[galaxyproject/usegalaxy-playbook] 5260cd: Swapped poster abstracts due slide in for talk abs...
by GitHub 21 Apr '15
by GitHub 21 Apr '15
21 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: 5260cd9ae712392abf173579d224657d5ccf4c07
https://github.com/galaxyproject/usegalaxy-playbook/commit/5260cd9ae712392a…
Author: Dave Clements <clements(a)Clements-Galaxy.local>
Date: 2015-04-21 (Tue, 21 Apr 2015)
Changed paths:
A files/galaxy/common/static/welcome_img/GCC2015PostersDue.png
M templates/galaxy/common/static/welcome.html.j2
Log Message:
-----------
Swapped poster abstracts due slide in for talk abstracts due slide.
1
0
21 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: 33b39a41c95da135b5a02f119b26d541d11d3c2e
https://github.com/galaxyproject/usegalaxy-playbook/commit/33b39a41c95da135…
Author: Nate Coraor <nate(a)bx.psu.edu>
Date: 2015-04-21 (Tue, 21 Apr 2015)
Changed paths:
M templates/galaxy/usegalaxy.org/config/job_conf.xml.j2
Log Message:
-----------
Reenable Stampede on Main
1
0
[galaxyproject/usegalaxy-playbook] b6cf73: Use absolute path to display site files (fixes war...
by GitHub 21 Apr '15
by GitHub 21 Apr '15
21 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: b6cf73d1bc2d5acaebc9490dcc39fef72f030a7e
https://github.com/galaxyproject/usegalaxy-playbook/commit/b6cf73d1bc2d5aca…
Author: Nate Coraor <nate(a)bx.psu.edu>
Date: 2015-04-21 (Tue, 21 Apr 2015)
Changed paths:
M templates/galaxy/usegalaxy.org/config/datatypes_conf.xml.j2
Log Message:
-----------
Use absolute path to display site files (fixes warnings under Pulsar).
1
0
[galaxyproject/usegalaxy-playbook] 1be70d: Integrated tool panel update from Test
by GitHub 20 Apr '15
by GitHub 20 Apr '15
20 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: 1be70d633396e57c55ecc1d39eb15ca8f41385e9
https://github.com/galaxyproject/usegalaxy-playbook/commit/1be70d633396e57c…
Author: Nate Coraor <nate(a)bx.psu.edu>
Date: 2015-04-20 (Mon, 20 Apr 2015)
Changed paths:
M files/galaxy/test.galaxyproject.org/var/integrated_tool_panel.xml
Log Message:
-----------
Integrated tool panel update from Test
Commit: b198b80789638623b3c8f73ff5907f2404350faf
https://github.com/galaxyproject/usegalaxy-playbook/commit/b198b80789638623…
Author: Nate Coraor <nate(a)bx.psu.edu>
Date: 2015-04-20 (Mon, 20 Apr 2015)
Changed paths:
M templates/galaxy/test.galaxyproject.org/config/job_conf.xml.j2
M templates/galaxy/usegalaxy.org/config/job_conf.xml.j2
Log Message:
-----------
Increase varscan memory to 16GB
Compare: https://github.com/galaxyproject/usegalaxy-playbook/compare/578c429426ec...…
1
0
[galaxyproject/usegalaxy-playbook] 578c42: update TTS, include sentry_dsn config from vault
by GitHub 20 Apr '15
by GitHub 20 Apr '15
20 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: 578c429426ecfb11447c7097b4eaec55837a1a5a
https://github.com/galaxyproject/usegalaxy-playbook/commit/578c429426ecfb11…
Author: Martin Cech <cech.marten(a)gmail.com>
Date: 2015-04-20 (Mon, 20 Apr 2015)
Changed paths:
M stage/group_vars/toolshedservers.yml
Log Message:
-----------
update TTS, include sentry_dsn config from vault
1
0
20 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: 249c34b7aeb0322916a5b8b901373bf932d12750
https://github.com/galaxyproject/usegalaxy-playbook/commit/249c34b7aeb03229…
Author: Martin Cech <cech.marten(a)gmail.com>
Date: 2015-04-20 (Mon, 20 Apr 2015)
Changed paths:
M stage/secret_vars/toolshedservers.yml
Log Message:
-----------
adding sentry entry for TTS
1
0
NDQgbmV3IGNvbW1pdHMgaW4gZ2FsYXh5LWNlbnRyYWw6CgpodHRwczovL2JpdGJ1Y2tldC5vcmcv
Z2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvYzJhNjg4OWQ3YTY0LwpDaGFuZ2VzZXQ6ICAg
YzJhNjg4OWQ3YTY0CkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBkYW4K
RGF0ZTogICAgICAgIDIwMTUtMDMtMTcgMTc6NDY6MjErMDA6MDAKU3VtbWFyeTogICAgIEZpeCBm
b3IgcmVsb2FkaW5nIHRvb2xzLiBQcmV2aW91c2x5LCB3aGVuIGEgdG9vbCB3YXMgcmVsb2FkZWQg
PQoob2YgdGhlIHNhbWUgdmVyc2lvbiksIHlvdSB3b3VsZCBnZXQgdGhlIG5ldy9jb3JyZWN0IHRv
b2wgd2hlbiBjbGlja2luZyBpbiA9ClRvb2wgUGFuZWwsIGJ1dCB0aGUgcmVydW4gYnV0dG9uIHdv
dWxkIHJldHVybiB0aGUgb2xkL3ByZS1yZWxvYWQgdG9vbDsgdGhpcz0KIGlzIGR1ZSB0byB0aGUg
cmVsb2FkIG5vdCByZXBsYWNpbmcgdGhlIGVudHJpZXMgaW4gX3Rvb2xfdmVyc2lvbnNfYnlfaWQu
CkFmZmVjdGVkICM6ICAxIGZpbGUKCmRpZmYgLXIgMDE0MTIyNDE1NDJhYjRmM2IwZmE2NzEzOTM5
NGIzMDI3N2Q1YmU0OSAtciBjMmE2ODg5ZDdhNjRkNDA5ZjdmZmMyMz0KZGYwOTUxZDhjN2Q3YTQ0
YjkgbGliL2dhbGF4eS90b29scy90b29sYm94L2Jhc2UucHkKLS0tIGEvbGliL2dhbGF4eS90b29s
cy90b29sYm94L2Jhc2UucHkKKysrIGIvbGliL2dhbGF4eS90b29scy90b29sYm94L2Jhc2UucHkK
QEAgLTk3OCw3ICs5NzgsOSBAQAogICAgICAgICAgICAgICAgICAgICBpZiB0b29sX2tleSBpbiB2
YWwuZWxlbXM6CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90b29sX3BhbmVsWyBrZXkg
XS5lbGVtc1sgdG9vbF9rZXkgXSA9M0QgbmV3Xz0KdG9vbAogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgIHNlbGYuX3Rvb2xzX2J5X2lkWyB0b29sX2lkIF0gPTNEIG5l
d190b29sCisgICAgICAgICAgICAjIChSZS0pUmVnaXN0ZXIgdGhlIHJlbG9hZGVkIHRvb2wsIHRo
aXMgd2lsbCBoYW5kbGUKKyAgICAgICAgICAgICMgIF90b29sc19ieV9pZCBhbmQgX3Rvb2xfdmVy
c2lvbnNfYnlfaWQKKyAgICAgICAgICAgIHNlbGYucmVnaXN0ZXJfdG9vbCggbmV3X3Rvb2wgKQog
ICAgICAgICAgICAgbWVzc2FnZSA9M0QgIlJlbG9hZGVkIHRoZSB0b29sOjxici8+IgogICAgICAg
ICAgICAgbWVzc2FnZSArPTNEICI8Yj5uYW1lOjwvYj4gJXM8YnIvPiIgJSBvbGRfdG9vbC5uYW1l
CiAgICAgICAgICAgICBtZXNzYWdlICs9M0QgIjxiPmlkOjwvYj4gJXM8YnIvPiIgJSBvbGRfdG9v
bC5pZAoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0
cy9mM2VhYzc0NjAzZTQvCkNoYW5nZXNldDogICBmM2VhYzc0NjAzZTQKQnJhbmNoOiAgICAgIHJl
bGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGRhbm5vbgpEYXRlOiAgICAgICAgMjAxNS0wMy0xNyAx
OTowODowNyswMDowMApTdW1tYXJ5OiAgICAgRml4IHB1cmdlIHF1b3RhIGFkanVzdG1lbnQgdmlh
IG1hbmFnZXIgZnVuY3Rpb25hbGl0eS4KQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAtciBjMmE2
ODg5ZDdhNjRkNDA5ZjdmZmMyM2RmMDk1MWQ4YzdkN2E0NGI5IC1yIGYzZWFjNzQ2MDNlNDM3ZDhh
ODYxMTYxPQpjYjQxZWRmNGJjMGQ3YWUyZiBsaWIvZ2FsYXh5L21hbmFnZXJzL2hkYXMucHkKLS0t
IGEvbGliL2dhbGF4eS9tYW5hZ2Vycy9oZGFzLnB5CisrKyBiL2xpYi9nYWxheHkvbWFuYWdlcnMv
aGRhcy5weQpAQCAtMTU0LDggKzE1NCw5IEBACiAgICAgICAgICMgZXJyb3IgaGVyZSBpZiBkaXNh
bGxvd2VkIC0gYmVmb3JlIGpvYnMgYXJlIHN0b3BwZWQKICAgICAgICAgI1RPRE86IHBvc3MuIG1v
dmUgdG8gRGF0YXNldEFzc29jaWF0aW9uTWFuYWdlcgogICAgICAgICBzZWxmLmRhdGFzZXRfbWFu
YWdlci5lcnJvcl91bmxlc3NfZGF0YXNldF9wdXJnZV9hbGxvd2VkKCB0cmFucywgaGQ9CmEgKQor
ICAgICAgICBpZiB0cmFucy51c2VyOgorICAgICAgICAgICAgdHJhbnMudXNlci50b3RhbF9kaXNr
X3VzYWdlIC09M0QgaGRhLnF1b3RhX2Ftb3VudCggdHJhbnMudXNlciApCiAgICAgICAgIHN1cGVy
KCBIREFNYW5hZ2VyLCBzZWxmICkucHVyZ2UoIHRyYW5zLCBoZGEsIGZsdXNoPTNEZmx1c2ggKQot
CiAgICAgICAgIGlmIGhkYS5jcmVhdGluZ19qb2JfYXNzb2NpYXRpb25zOgogICAgICAgICAgICAg
am9iID0zRCBoZGEuY3JlYXRpbmdfam9iX2Fzc29jaWF0aW9uc1swXS5qb2IKICAgICAgICAgICAg
IGlmIG5vdCBqb2IuZmluaXNoZWQ6CgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxh
eHktY2VudHJhbC9jb21taXRzL2E4YWVjNGQ2MDNhOC8KQ2hhbmdlc2V0OiAgIGE4YWVjNGQ2MDNh
OApCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgZGFubm9uCkRhdGU6ICAg
ICAgICAyMDE1LTAzLTE3IDIwOjMzOjQ0KzAwOjAwClN1bW1hcnk6ICAgICBGaXggd29ya2Zsb3cg
c3RlcCB1dWlkIGhhbmRsaW5nIHRvIGhhbmRsZSBVVUlEIGJlaW5nIHRoZSBzdHJpbj0KZyBOb25l
IGluIGlucHV0IEpTT04uICBUaGlzIGZpeGVzIGV4cG9ydC9pbXBvcnQgdGhhdCB3YXMgYnJva2Vu
IHdpdGggcmVsZWFzPQplXzE1LjAzLgpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIGYzZWFj
NzQ2MDNlNDM3ZDhhODYxMTYxY2I0MWVkZjRiYzBkN2FlMmYgLXIgYThhZWM0ZDYwM2E4OTZiMTlk
NWM1ZTE9CmY0MzZjNDUyOWUzNzUyYzUzIGxpYi9nYWxheHkvbWFuYWdlcnMvd29ya2Zsb3dzLnB5
Ci0tLSBhL2xpYi9nYWxheHkvbWFuYWdlcnMvd29ya2Zsb3dzLnB5CisrKyBiL2xpYi9nYWxheHkv
bWFuYWdlcnMvd29ya2Zsb3dzLnB5CkBAIC01NjksNyArNTY5LDcgQEAKICAgICAgICAgZm9yIHN0
ZXBfaW5kZXggaW4gc3RlcF9pbmRpY2VzOgogICAgICAgICAgICAgc3RlcF9kaWN0ID0zRCBzdXBw
bGllZF9zdGVwc1sgc3RlcF9pbmRleCBdCiAgICAgICAgICAgICB1dWlkID0zRCBzdGVwX2RpY3Qu
Z2V0KCJ1dWlkIiwgTm9uZSkKLSAgICAgICAgICAgIGlmIHV1aWQ6CisgICAgICAgICAgICBpZiB1
dWlkIGFuZCB1dWlkICE9M0QgIk5vbmUiOgogICAgICAgICAgICAgICAgIGlmIHV1aWQgaW4gZGlz
Y292ZXJlZF91dWlkczoKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9ucy5EdXBs
aWNhdGVkSWRlbnRpZmllckV4Y2VwdGlvbigiRHVwbGljPQphdGUgc3RlcCBVVUlEIGluIHJlcXVl
c3QuIikKICAgICAgICAgICAgICAgICBkaXNjb3ZlcmVkX3V1aWRzLmFkZCh1dWlkKQpAQCAtNTg2
LDEwICs1ODYsOSBAQAogICAgICAgICB0eXBlLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgZnJvbSB0
aGUgaW5jb21pbmcgZGljaXRpb25hcnkuCiAgICAgICAgICIiIgogICAgICAgICBzdGVwID0zRCBt
b2RlbC5Xb3JrZmxvd1N0ZXAoKQotCiAgICAgICAgICMgVE9ETzogQ29uc2lkZXIgaGFuZGxpbmcg
cG9zaXRpb24gaW5zaWRlIG1vZHVsZS4KICAgICAgICAgc3RlcC5wb3NpdGlvbiA9M0Qgc3RlcF9k
aWN0Wydwb3NpdGlvbiddCi0gICAgICAgIGlmICJ1dWlkIiBpbiBzdGVwX2RpY3Q6CisgICAgICAg
IGlmICJ1dWlkIiBpbiBzdGVwX2RpY3QgYW5kIHN0ZXBfZGljdFsndXVpZCddICE9M0QgIk5vbmUi
OgogICAgICAgICAgICAgc3RlcC51dWlkID0zRCBzdGVwX2RpY3RbInV1aWQiXQogICAgICAgICBp
ZiAibGFiZWwiIGluIHN0ZXBfZGljdDoKICAgICAgICAgICAgIHN0ZXAubGFiZWwgPTNEIHN0ZXBf
ZGljdFsibGFiZWwiXQoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRy
YWwvY29tbWl0cy80ZGU1NTZiZDdhNmMvCkNoYW5nZXNldDogICA0ZGU1NTZiZDdhNmMKQnJhbmNo
OiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGd1ZXJsZXIKRGF0ZTogICAgICAgIDIw
MTUtMDMtMTkgMDk6NTA6MzUrMDA6MDAKU3VtbWFyeTogICAgIFVuaWZpZXMgYW5kIGltcHJvdmVz
IHRoZSBoYW5kbGluZyBvZiBvcHRpb25hbCBzZWxlY3QgZmllbGRzCkFmZmVjdGVkICM6ICAzIGZp
bGVzCgpkaWZmIC1yIGE4YWVjNGQ2MDNhODk2YjE5ZDVjNWUxZjQzNmM0NTI5ZTM3NTJjNTMgLXIg
NGRlNTU2YmQ3YTZjNjBiYTA0MjlmYTQ9CjE2YjViMWY3MWRhOTBjMDE3IGNsaWVudC9nYWxheHkv
c2NyaXB0cy9tdmMvdG9vbHMvdG9vbHMtcGFyYW1ldGVycy5qcwotLS0gYS9jbGllbnQvZ2FsYXh5
L3NjcmlwdHMvbXZjL3Rvb2xzL3Rvb2xzLXBhcmFtZXRlcnMuanMKKysrIGIvY2xpZW50L2dhbGF4
eS9zY3JpcHRzL212Yy90b29scy90b29scy1wYXJhbWV0ZXJzLmpzCkBAIC0xNDUsNiArMTQ1LDcg
QEAKICAgICAgICAgICAgICAgICBkYXRhICAgICAgICA6IG9wdGlvbnMsCiAgICAgICAgICAgICAg
ICAgZXJyb3JfdGV4dCAgOiBpbnB1dF9kZWYuZXJyb3JfdGV4dCB8fCAnTm8gb3B0aW9ucyBhdmFp
bGFibD0KZScsCiAgICAgICAgICAgICAgICAgbXVsdGlwbGUgICAgOiBpbnB1dF9kZWYubXVsdGlw
bGUsCisgICAgICAgICAgICAgICAgb3B0aW9uYWwgICAgOiBpbnB1dF9kZWYub3B0aW9uYWwsCiAg
ICAgICAgICAgICAgICAgc2VhcmNoYWJsZSAgOiBpbnB1dF9kZWYuc2VhcmNoYWJsZSwKICAgICAg
ICAgICAgICAgICBvbmNoYW5nZSAgICA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAg
ICBzZWxmLmFwcC50cmlnZ2VyKCdyZWZyZXNoJyk7CgpkaWZmIC1yIGE4YWVjNGQ2MDNhODk2YjE5
ZDVjNWUxZjQzNmM0NTI5ZTM3NTJjNTMgLXIgNGRlNTU2YmQ3YTZjNjBiYTA0MjlmYTQ9CjE2YjVi
MWY3MWRhOTBjMDE3IHN0YXRpYy9zY3JpcHRzL212Yy90b29scy90b29scy1wYXJhbWV0ZXJzLmpz
Ci0tLSBhL3N0YXRpYy9zY3JpcHRzL212Yy90b29scy90b29scy1wYXJhbWV0ZXJzLmpzCisrKyBi
L3N0YXRpYy9zY3JpcHRzL212Yy90b29scy90b29scy1wYXJhbWV0ZXJzLmpzCkBAIC0xNDUsNiAr
MTQ1LDcgQEAKICAgICAgICAgICAgICAgICBkYXRhICAgICAgICA6IG9wdGlvbnMsCiAgICAgICAg
ICAgICAgICAgZXJyb3JfdGV4dCAgOiBpbnB1dF9kZWYuZXJyb3JfdGV4dCB8fCAnTm8gb3B0aW9u
cyBhdmFpbGFibD0KZScsCiAgICAgICAgICAgICAgICAgbXVsdGlwbGUgICAgOiBpbnB1dF9kZWYu
bXVsdGlwbGUsCisgICAgICAgICAgICAgICAgb3B0aW9uYWwgICAgOiBpbnB1dF9kZWYub3B0aW9u
YWwsCiAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZSAgOiBpbnB1dF9kZWYuc2VhcmNoYWJsZSwK
ICAgICAgICAgICAgICAgICBvbmNoYW5nZSAgICA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgICAgICBzZWxmLmFwcC50cmlnZ2VyKCdyZWZyZXNoJyk7CgpkaWZmIC1yIGE4YWVjNGQ2MDNh
ODk2YjE5ZDVjNWUxZjQzNmM0NTI5ZTM3NTJjNTMgLXIgNGRlNTU2YmQ3YTZjNjBiYTA0MjlmYTQ9
CjE2YjViMWY3MWRhOTBjMDE3IHN0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvdG9vbHMvdG9vbHMt
cGFyYW1ldGVycy5qcwotLS0gYS9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL3Rvb2xzL3Rvb2xz
LXBhcmFtZXRlcnMuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy90b29scy90b29s
cy1wYXJhbWV0ZXJzLmpzCkBAIC0xLDEgKzEsMSBAQAotZGVmaW5lKFsidXRpbHMvdXRpbHMiLCJt
dmMvdWkvdWktbWlzYyIsIm12Yy90b29scy90b29scy1zZWxlY3QtY29udGVudCIsIm09CnZjL3Vp
L3VpLWNvbG9yLXBpY2tlciJdLGZ1bmN0aW9uKGMsZCxhLGIpe3JldHVybiBCYWNrYm9uZS5Nb2Rl
bC5leHRlbmQoe3R5cD0KZXM6e3RleHQ6Il9maWVsZFRleHQiLHNlbGVjdDoiX2ZpZWxkU2VsZWN0
IixkYXRhX2NvbHVtbjoiX2ZpZWxkU2VsZWN0IixnZW5vPQptZWJ1aWxkOiJfZmllbGRTZWxlY3Qi
LGRhdGE6Il9maWVsZERhdGEiLGRhdGFfY29sbGVjdGlvbjoiX2ZpZWxkRGF0YSIsaW50ZWc9CmVy
OiJfZmllbGRTbGlkZXIiLCJmbG9hdCI6Il9maWVsZFNsaWRlciIsImJvb2xlYW4iOiJfZmllbGRC
b29sZWFuIixkcmlsbF9kbz0Kd246Il9maWVsZERyaWxsZG93biIsY29sb3I6Il9maWVsZENvbG9y
IixoaWRkZW46Il9maWVsZEhpZGRlbiIsaGlkZGVuX2RhdGE6PQoiX2ZpZWxkSGlkZGVuIixiYXNl
dXJsOiJfZmllbGRIaWRkZW4iLH0saW5pdGlhbGl6ZTpmdW5jdGlvbihmLGUpe3RoaXMuYXBwPQo9
M0RmfSxjcmVhdGU6ZnVuY3Rpb24oZSl7aWYoZS52YWx1ZT0zRD0zRD0zRHVuZGVmaW5lZCl7ZS52
YWx1ZT0zRG51bGx9aWYoZS49CmRlZmF1bHRfdmFsdWU9M0Q9M0Q9M0R1bmRlZmluZWQpe2UuZGVm
YXVsdF92YWx1ZT0zRGUudmFsdWV9dmFyIGc9M0RudWxsO3Zhcj0KIGY9M0R0aGlzLnR5cGVzW2Uu
dHlwZV07aWYoZiYmdHlwZW9mKHRoaXNbZl0pPTNEPTNEPTNEImZ1bmN0aW9uIil7Zz0zRHRoaXNb
PQpmXS5jYWxsKHRoaXMsZSl9aWYoIWcpe3RoaXMuYXBwLmluY29tcGF0aWJsZT0zRHRydWU7aWYo
ZS5vcHRpb25zKXtnPTNEdGhpcy49Cl9maWVsZFNlbGVjdChlKX1lbHNle2c9M0R0aGlzLl9maWVs
ZFRleHQoZSl9Y29uc29sZS5kZWJ1ZygidG9vbHMtZm9ybTo6X2FkZD0KUm93KCkgOiBBdXRvIG1h
dGNoZWQgZmllbGQgdHlwZSAoIitlLnR5cGUrIikuIil9aWYoZS52YWx1ZSE9M0Q9M0R1bmRlZmlu
ZWQpPQp7Zy52YWx1ZShlLnZhbHVlKX1yZXR1cm4gZ30sX2ZpZWxkRGF0YTpmdW5jdGlvbihlKXtp
ZighdGhpcy5hcHAub3B0aW9ucy5pc189CmR5bmFtaWMpe2UuaW5mbz0zRCJEYXRhIGlucHV0ICci
K2UubmFtZSsiJyAoIitjLnRleHRpZnkoZS5leHRlbnNpb25zLnRvU3RyaT0KbmcoKSkrIikiO2Uu
dmFsdWU9M0RudWxsO3JldHVybiB0aGlzLl9maWVsZEhpZGRlbihlKX12YXIgZj0zRHRoaXM7cmV0
dXJuIG5lPQp3IGEuVmlldyh0aGlzLmFwcCx7aWQ6ImZpZWxkLSIrZS5pZCxleHRlbnNpb25zOmUu
ZXh0ZW5zaW9ucyxvcHRpb25hbDplLm9wdGk9Cm9uYWwsbXVsdGlwbGU6ZS5tdWx0aXBsZSx0eXBl
OmUudHlwZSxkYXRhOmUub3B0aW9ucyxvbmNoYW5nZTpmdW5jdGlvbigpe2YuYT0KcHAudHJpZ2dl
cigicmVmcmVzaCIpfX0pfSxfZmllbGRTZWxlY3Q6ZnVuY3Rpb24oZSl7aWYoIXRoaXMuYXBwLm9w
dGlvbnMuaXNfPQpkeW5hbWljJiZlLmlzX2R5bmFtaWMpe3JldHVybiB0aGlzLl9maWVsZFRleHQo
ZSl9aWYoZS50eXBlPTNEPTNEImRhdGFfY29sdW09Cm4iKXtlLmVycm9yX3RleHQ9M0QiTWlzc2lu
ZyBjb2x1bW5zIGluIHJlZmVyZW5jZWQgZGF0YXNldC4ifWlmKGUudHlwZT0zRD0zRD0KImdlbm9t
ZWJ1aWxkIil7ZS5zZWFyY2hhYmxlPTNEdHJ1ZX12YXIgZz0zRFtdO2Zvcih2YXIgaCBpbiBlLm9w
dGlvbnMpe3ZhciBqPQo9M0RlLm9wdGlvbnNbaF07Zy5wdXNoKHtsYWJlbDpqWzBdLHZhbHVlOmpb
MV19KX12YXIgaz0zRGQuU2VsZWN0O3N3aXRjaChlLmQ9CmlzcGxheSl7Y2FzZSJjaGVja2JveGVz
IjprPTNEZC5DaGVja2JveDticmVhaztjYXNlInJhZGlvIjprPTNEZC5SYWRpbzticmVhaz0KfXZh
ciBmPTNEdGhpcztyZXR1cm4gbmV3IGsuVmlldyh7aWQ6ImZpZWxkLSIrZS5pZCxkYXRhOmcsZXJy
b3JfdGV4dDplLmVycm9yPQpfdGV4dHx8Ik5vIG9wdGlvbnMgYXZhaWxhYmxlIixtdWx0aXBsZTpl
Lm11bHRpcGxlLHNlYXJjaGFibGU6ZS5zZWFyY2hhYmxlLG89Cm5jaGFuZ2U6ZnVuY3Rpb24oKXtm
LmFwcC50cmlnZ2VyKCJyZWZyZXNoIil9fSl9LF9maWVsZERyaWxsZG93bjpmdW5jdGlvbihlKT0K
e2lmKCF0aGlzLmFwcC5vcHRpb25zLmlzX2R5bmFtaWMmJmUuaXNfZHluYW1pYyl7cmV0dXJuIHRo
aXMuX2ZpZWxkVGV4dChlKX12PQphciBmPTNEdGhpcztyZXR1cm4gbmV3IGQuRHJpbGxkb3duLlZp
ZXcoe2lkOiJmaWVsZC0iK2UuaWQsZGF0YTplLm9wdGlvbnMsZGk9CnNwbGF5OmUuZGlzcGxheSxv
bmNoYW5nZTpmdW5jdGlvbigpe2YuYXBwLnRyaWdnZXIoInJlZnJlc2giKX19KX0sX2ZpZWxkVGV4
dD0KOmZ1bmN0aW9uKGUpe2lmKGUub3B0aW9ucyl7ZS5hcmVhPTNEZS5tdWx0aXBsZTtpZighYy52
YWxpZGF0ZShlLnZhbHVlKSl7ZS52PQphbHVlPTNEIiJ9ZWxzZXtpZihlLnZhbHVlIGluc3RhbmNl
b2YgQXJyYXkpe2UudmFsdWU9M0R2YWx1ZS50b1N0cmluZygpfWVsc2U9CntlLnZhbHVlPTNEU3Ry
aW5nKGUudmFsdWUpLnJlcGxhY2UoL1tcW1xdJyJcc10vZywiIik7aWYoZS5tdWx0aXBsZSl7ZS52
YWx1ZT0KPTNEZS52YWx1ZS5yZXBsYWNlKC8sL2csIlxuIil9fX19dmFyIGY9M0R0aGlzO3JldHVy
biBuZXcgZC5JbnB1dCh7aWQ6ImZpZWxkPQotIitlLmlkLGFyZWE6ZS5hcmVhLG9uY2hhbmdlOmZ1
bmN0aW9uKCl7Zi5hcHAudHJpZ2dlcigicmVmcmVzaCIpfX0pfSxfZmllbGQ9ClNsaWRlcjpmdW5j
dGlvbihlKXt2YXIgZj0zRHRoaXM7cmV0dXJuIG5ldyBkLlNsaWRlci5WaWV3KHtpZDoiZmllbGQt
IitlLmlkLD0KcHJlY2lzZTplLnR5cGU9M0Q9M0QiZmxvYXQiLG1pbjplLm1pbixtYXg6ZS5tYXgs
b25jaGFuZ2U6ZnVuY3Rpb24oKXtmLmFwcC50PQpyaWdnZXIoInJlZnJlc2giKX19KX0sX2ZpZWxk
SGlkZGVuOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZC5IaWRkZW4oe2lkOiJmaWU9CmxkLSIrZS5p
ZCxpbmZvOmUuaW5mb30pfSxfZmllbGRCb29sZWFuOmZ1bmN0aW9uKGUpe3ZhciBmPTNEdGhpczty
ZXR1cm4gbmV3ID0KZC5SYWRpb0J1dHRvbi5WaWV3KHtpZDoiZmllbGQtIitlLmlkLGRhdGE6W3ts
YWJlbDoiWWVzIix2YWx1ZToidHJ1ZSJ9LHtsYWJlPQpsOiJObyIsdmFsdWU6ImZhbHNlIn1dLG9u
Y2hhbmdlOmZ1bmN0aW9uKCl7Zi5hcHAudHJpZ2dlcigicmVmcmVzaCIpfX0pfSxfZmk9CmVsZENv
bG9yOmZ1bmN0aW9uKGUpe3ZhciBmPTNEdGhpcztyZXR1cm4gbmV3IGIoe2lkOiJmaWVsZC0iK2Uu
aWQsb25jaGFuZ2U6Zj0KdW5jdGlvbigpe2YuYXBwLnRyaWdnZXIoInJlZnJlc2giKX19KX19KTty
ZXR1cm57VmlldzpWaWV3fX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RlZmluZShb
InV0aWxzL3V0aWxzIiwibXZjL3VpL3VpLW1pc2MiLCJtdmMvdG9vbHMvdG9vbHMtc2VsZWN0LWNv
bnRlbnQiLCJtPQp2Yy91aS91aS1jb2xvci1waWNrZXIiXSxmdW5jdGlvbihjLGQsYSxiKXtyZXR1
cm4gQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHt0eXA9CmVzOnt0ZXh0OiJfZmllbGRUZXh0IixzZWxl
Y3Q6Il9maWVsZFNlbGVjdCIsZGF0YV9jb2x1bW46Il9maWVsZFNlbGVjdCIsZ2Vubz0KbWVidWls
ZDoiX2ZpZWxkU2VsZWN0IixkYXRhOiJfZmllbGREYXRhIixkYXRhX2NvbGxlY3Rpb246Il9maWVs
ZERhdGEiLGludGVnPQplcjoiX2ZpZWxkU2xpZGVyIiwiZmxvYXQiOiJfZmllbGRTbGlkZXIiLCJi
b29sZWFuIjoiX2ZpZWxkQm9vbGVhbiIsZHJpbGxfZG89CnduOiJfZmllbGREcmlsbGRvd24iLGNv
bG9yOiJfZmllbGRDb2xvciIsaGlkZGVuOiJfZmllbGRIaWRkZW4iLGhpZGRlbl9kYXRhOj0KIl9m
aWVsZEhpZGRlbiIsYmFzZXVybDoiX2ZpZWxkSGlkZGVuIix9LGluaXRpYWxpemU6ZnVuY3Rpb24o
ZixlKXt0aGlzLmFwcD0KPTNEZn0sY3JlYXRlOmZ1bmN0aW9uKGUpe2lmKGUudmFsdWU9M0Q9M0Q9
M0R1bmRlZmluZWQpe2UudmFsdWU9M0RudWxsfWlmKGUuPQpkZWZhdWx0X3ZhbHVlPTNEPTNEPTNE
dW5kZWZpbmVkKXtlLmRlZmF1bHRfdmFsdWU9M0RlLnZhbHVlfXZhciBnPTNEbnVsbDt2YXI9CiBm
PTNEdGhpcy50eXBlc1tlLnR5cGVdO2lmKGYmJnR5cGVvZih0aGlzW2ZdKT0zRD0zRD0zRCJmdW5j
dGlvbiIpe2c9M0R0aGlzWz0KZl0uY2FsbCh0aGlzLGUpfWlmKCFnKXt0aGlzLmFwcC5pbmNvbXBh
dGlibGU9M0R0cnVlO2lmKGUub3B0aW9ucyl7Zz0zRHRoaXMuPQpfZmllbGRTZWxlY3QoZSl9ZWxz
ZXtnPTNEdGhpcy5fZmllbGRUZXh0KGUpfWNvbnNvbGUuZGVidWcoInRvb2xzLWZvcm06Ol9hZGQ9
ClJvdygpIDogQXV0byBtYXRjaGVkIGZpZWxkIHR5cGUgKCIrZS50eXBlKyIpLiIpfWlmKGUudmFs
dWUhPTNEPTNEdW5kZWZpbmVkKT0Ke2cudmFsdWUoZS52YWx1ZSl9cmV0dXJuIGd9LF9maWVsZERh
dGE6ZnVuY3Rpb24oZSl7aWYoIXRoaXMuYXBwLm9wdGlvbnMuaXNfPQpkeW5hbWljKXtlLmluZm89
M0QiRGF0YSBpbnB1dCAnIitlLm5hbWUrIicgKCIrYy50ZXh0aWZ5KGUuZXh0ZW5zaW9ucy50b1N0
cmk9Cm5nKCkpKyIpIjtlLnZhbHVlPTNEbnVsbDtyZXR1cm4gdGhpcy5fZmllbGRIaWRkZW4oZSl9
dmFyIGY9M0R0aGlzO3JldHVybiBuZT0KdyBhLlZpZXcodGhpcy5hcHAse2lkOiJmaWVsZC0iK2Uu
aWQsZXh0ZW5zaW9uczplLmV4dGVuc2lvbnMsb3B0aW9uYWw6ZS5vcHRpPQpvbmFsLG11bHRpcGxl
OmUubXVsdGlwbGUsdHlwZTplLnR5cGUsZGF0YTplLm9wdGlvbnMsb25jaGFuZ2U6ZnVuY3Rpb24o
KXtmLmE9CnBwLnRyaWdnZXIoInJlZnJlc2giKX19KX0sX2ZpZWxkU2VsZWN0OmZ1bmN0aW9uKGUp
e2lmKCF0aGlzLmFwcC5vcHRpb25zLmlzXz0KZHluYW1pYyYmZS5pc19keW5hbWljKXtyZXR1cm4g
dGhpcy5fZmllbGRUZXh0KGUpfWlmKGUudHlwZT0zRD0zRCJkYXRhX2NvbHVtPQpuIil7ZS5lcnJv
cl90ZXh0PTNEIk1pc3NpbmcgY29sdW1ucyBpbiByZWZlcmVuY2VkIGRhdGFzZXQuIn1pZihlLnR5
cGU9M0Q9M0Q9CiJnZW5vbWVidWlsZCIpe2Uuc2VhcmNoYWJsZT0zRHRydWV9dmFyIGc9M0RbXTtm
b3IodmFyIGggaW4gZS5vcHRpb25zKXt2YXIgaj0KPTNEZS5vcHRpb25zW2hdO2cucHVzaCh7bGFi
ZWw6alswXSx2YWx1ZTpqWzFdfSl9dmFyIGs9M0RkLlNlbGVjdDtzd2l0Y2goZS5kPQppc3BsYXkp
e2Nhc2UiY2hlY2tib3hlcyI6az0zRGQuQ2hlY2tib3g7YnJlYWs7Y2FzZSJyYWRpbyI6az0zRGQu
UmFkaW87YnJlYWs9Cn12YXIgZj0zRHRoaXM7cmV0dXJuIG5ldyBrLlZpZXcoe2lkOiJmaWVsZC0i
K2UuaWQsZGF0YTpnLGVycm9yX3RleHQ6ZS5lcnJvcj0KX3RleHR8fCJObyBvcHRpb25zIGF2YWls
YWJsZSIsbXVsdGlwbGU6ZS5tdWx0aXBsZSxvcHRpb25hbDplLm9wdGlvbmFsLHNlYXJjPQpoYWJs
ZTplLnNlYXJjaGFibGUsb25jaGFuZ2U6ZnVuY3Rpb24oKXtmLmFwcC50cmlnZ2VyKCJyZWZyZXNo
Iil9fSl9LF9maWVsZEQ9CnJpbGxkb3duOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmFwcC5vcHRpb25z
LmlzX2R5bmFtaWMmJmUuaXNfZHluYW1pYyl7cmV0dXJuID0KdGhpcy5fZmllbGRUZXh0KGUpfXZh
ciBmPTNEdGhpcztyZXR1cm4gbmV3IGQuRHJpbGxkb3duLlZpZXcoe2lkOiJmaWVsZC0iK2UuPQpp
ZCxkYXRhOmUub3B0aW9ucyxkaXNwbGF5OmUuZGlzcGxheSxvbmNoYW5nZTpmdW5jdGlvbigpe2Yu
YXBwLnRyaWdnZXIoInJlZnI9CmVzaCIpfX0pfSxfZmllbGRUZXh0OmZ1bmN0aW9uKGUpe2lmKGUu
b3B0aW9ucyl7ZS5hcmVhPTNEZS5tdWx0aXBsZTtpZighYy52YT0KbGlkYXRlKGUudmFsdWUpKXtl
LnZhbHVlPTNEIiJ9ZWxzZXtpZihlLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkpe2UudmFsdWU9M0R2
PQphbHVlLnRvU3RyaW5nKCl9ZWxzZXtlLnZhbHVlPTNEU3RyaW5nKGUudmFsdWUpLnJlcGxhY2Uo
L1tcW1xdJyJcc10vZywiIik7aWY9CihlLm11bHRpcGxlKXtlLnZhbHVlPTNEZS52YWx1ZS5yZXBs
YWNlKC8sL2csIlxuIil9fX19dmFyIGY9M0R0aGlzO3JldHVybiBuZT0KdyBkLklucHV0KHtpZDoi
ZmllbGQtIitlLmlkLGFyZWE6ZS5hcmVhLG9uY2hhbmdlOmZ1bmN0aW9uKCl7Zi5hcHAudHJpZ2dl
cigiPQpyZWZyZXNoIil9fSl9LF9maWVsZFNsaWRlcjpmdW5jdGlvbihlKXt2YXIgZj0zRHRoaXM7
cmV0dXJuIG5ldyBkLlNsaWRlci5WaWU9Cncoe2lkOiJmaWVsZC0iK2UuaWQscHJlY2lzZTplLnR5
cGU9M0Q9M0QiZmxvYXQiLG1pbjplLm1pbixtYXg6ZS5tYXgsb25jaGFuZz0KZTpmdW5jdGlvbigp
e2YuYXBwLnRyaWdnZXIoInJlZnJlc2giKX19KX0sX2ZpZWxkSGlkZGVuOmZ1bmN0aW9uKGUpe3Jl
dHVybiBuPQpldyBkLkhpZGRlbih7aWQ6ImZpZWxkLSIrZS5pZCxpbmZvOmUuaW5mb30pfSxfZmll
bGRCb29sZWFuOmZ1bmN0aW9uKGUpe3ZhciA9CmY9M0R0aGlzO3JldHVybiBuZXcgZC5SYWRpb0J1
dHRvbi5WaWV3KHtpZDoiZmllbGQtIitlLmlkLGRhdGE6W3tsYWJlbDoiWWVzIj0KLHZhbHVlOiJ0
cnVlIn0se2xhYmVsOiJObyIsdmFsdWU6ImZhbHNlIn1dLG9uY2hhbmdlOmZ1bmN0aW9uKCl7Zi5h
cHAudHJpZ2dlPQpyKCJyZWZyZXNoIil9fSl9LF9maWVsZENvbG9yOmZ1bmN0aW9uKGUpe3ZhciBm
PTNEdGhpcztyZXR1cm4gbmV3IGIoe2lkOiJmaWU9CmxkLSIrZS5pZCxvbmNoYW5nZTpmdW5jdGlv
bigpe2YuYXBwLnRyaWdnZXIoInJlZnJlc2giKX19KX19KTtyZXR1cm57VmlldzpWaT0KZXd9fSk7
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxh
eHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy8xNmNhMTlmMTJhNGYvCkNoYW5nZXNldDogICAxNmNh
MTlmMTJhNGYKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGRhbgpEYXRl
OiAgICAgICAgMjAxNS0wMy0yMCAyMjoxODowOCswMDowMApTdW1tYXJ5OiAgICAgRml4IGRpc3Bs
YXlpbmcgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGEgdXNlciBjYW5ub3QgdmlldyBhIGhpc3Q9Cm9y
eS4gUHJldmlvdXNseSwgaXQgd2FzIHRocm93aW5nIGEgc2VydmVyIGVycm9yIHdoZW4gaXQgd2Fz
IGF0dGVtcHRpbmcgdG8gZD0KaXNwbGF5IGZyb20gYW4gZW1wdHkgaGlzdG9yeV9kaWN0LgpBZmZl
Y3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDRkZTU1NmJkN2E2YzYwYmEwNDI5ZmE0MTZiNWIxZjcx
ZGE5MGMwMTcgLXIgMTZjYTE5ZjEyYTRmNmIyNjg3ZWMxYWQ9CjEzYzdiZTBlZWVjNmU1ZTgwIGxp
Yi9nYWxheHkvd2ViYXBwcy9nYWxheHkvY29udHJvbGxlcnMvaGlzdG9yeS5weQotLS0gYS9saWIv
Z2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2NvbnRyb2xsZXJzL2hpc3RvcnkucHkKKysrIGIvbGliL2dh
bGF4eS93ZWJhcHBzL2dhbGF4eS9jb250cm9sbGVycy9oaXN0b3J5LnB5CkBAIC02MDUsOSArNjA1
LDEzIEBACj0yMAogICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBleGM6CiAgICAgICAgICAgICB1
c2VyX2lkID0zRCBzdHIoIHRyYW5zLnVzZXIuaWQgKSBpZiB0cmFucy51c2VyIGVsc2UgJyhhbm9u
eW1vdT0KcyknCi0gICAgICAgICAgICBsb2cuZXhjZXB0aW9uKCAnRXJyb3IgYm9vdHN0cmFwcGlu
ZyBoaXN0b3J5IGZvciB1c2VyICVzOiAlcycsID0KdXNlcl9pZCwgc3RyKCBleGMgKSApCi0gICAg
ICAgICAgICBoaXN0b3J5X2RpY3Rpb25hcnlbICdlcnJvcicgXSA9M0QgKCAnQW4gZXJyb3Igb2Nj
dXJyZWQgZ2V0dGluZz0KIHRoZSBoaXN0b3J5IGRhdGEgZnJvbSB0aGUgc2VydmVyLiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJ1BsZWFzZSBjb250YWN0
IGEgR2FsYXh5IGFkbT0KaW5pc3RyYXRvciBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4nICkKKyAg
ICAgICAgICAgIGxvZy5leGNlcHRpb24oICdFcnJvciBib290c3RyYXBwaW5nIGhpc3RvcnkgZm9y
IHVzZXIgJXM6ICVzJywgPQp1c2VyX2lkLCBleGMgKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5j
ZSggZXhjLCBleGNlcHRpb25zLkl0ZW1BY2Nlc3NpYmlsaXR5RXhjZXB0aW9uICk6CisgICAgICAg
ICAgICAgICAgZXJyb3JfbXNnID0zRCAnWW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gdmll
dyB0aGlzIGhpcz0KdG9yeS4nCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVy
cm9yX21zZyA9M0QgKCAnQW4gZXJyb3Igb2NjdXJyZWQgZ2V0dGluZyB0aGUgaGlzdG9yeSBkYXQ9
CmEgZnJvbSB0aGUgc2VydmVyLiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICdQ
bGVhc2UgY29udGFjdCBhIEdhbGF4eSBhZG1pbmlzdHJhdG9yIGlmID0KdGhlIHByb2JsZW0gcGVy
c2lzdHMuJyApCisgICAgICAgICAgICByZXR1cm4gdHJhbnMuc2hvd19lcnJvcl9tZXNzYWdlKCBl
cnJvcl9tc2csIHVzZV9wYW5lbHM9M0R1c2VfcD0KYW5lbHMgKQo9MjAKICAgICAgICAgcmV0dXJu
IHRyYW5zLmZpbGxfdGVtcGxhdGVfbWFrbyggImhpc3Rvcnkvdmlldy5tYWtvIiwKICAgICAgICAg
ICAgIGhpc3Rvcnk9M0RoaXN0b3J5X2RpY3Rpb25hcnksIGhkYXM9M0RoZGFfZGljdGlvbmFyaWVz
LCB1c2VyX2lzPQpfb3duZXI9M0R1c2VyX2lzX293bmVyLAoKCmh0dHBzOi8vYml0YnVja2V0Lm9y
Zy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy85ODhjYzRkZGEyMTIvCkNoYW5nZXNldDog
ICA5ODhjYzRkZGEyMTIKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGpt
Y2hpbHRvbgpEYXRlOiAgICAgICAgMjAxNS0wMy0yNCAxNTo0MzozMCswMDowMApTdW1tYXJ5OiAg
ICAgRml4IGxvZ2dpbmdfY29ubmVjdGlvbl9wcm94eSBmb3Igc3FsYWxjaGVteSB1cGdyYWRlLgoK
VGhlIGltcG9ydCAqIGlzIG5vdyBpbXBvcnRpbmcgc29tZXRoaW5nIGNhbGwgaW5zcGVjdCB3aGlj
aCBpcyBtYXNraW5nIHRoZSBhPQpjdHVhbCBkZXNpcmVkIGluc3BlY3QgaW1wb3J0IGFib3ZlIGl0
LgpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDE2Y2ExOWYxMmE0ZjZiMjY4N2VjMWFkMTNj
N2JlMGVlZWM2ZTVlODAgLXIgOTg4Y2M0ZGRhMjEyOWZiZDAwZDgzZDI9CmMxMjY0NWZhZmY4Y2Jl
N2U5IGxpYi9nYWxheHkvbW9kZWwvb3JtL2xvZ2dpbmdfY29ubmVjdGlvbl9wcm94eS5weQotLS0g
YS9saWIvZ2FsYXh5L21vZGVsL29ybS9sb2dnaW5nX2Nvbm5lY3Rpb25fcHJveHkucHkKKysrIGIv
bGliL2dhbGF4eS9tb2RlbC9vcm0vbG9nZ2luZ19jb25uZWN0aW9uX3Byb3h5LnB5CkBAIC0yLDcg
KzIsNyBAQAogaW1wb3J0IGluc3BlY3QKIGltcG9ydCBvcwo9MjAKLWZyb20gZ2FsYXh5Lm1vZGVs
Lm9ybSBpbXBvcnQgKgorZnJvbSBnYWxheHkubW9kZWwub3JtIGltcG9ydCBDb25uZWN0aW9uUHJv
eHkKPTIwCiBpbXBvcnQgbG9nZ2luZwo9MjAKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5
L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvNDlkNTBiY2U0NjMyLwpDaGFuZ2VzZXQ6ICAgNDlkNTBi
Y2U0NjMyCkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBtYXJ0ZW5zb24K
RGF0ZTogICAgICAgIDIwMTUtMDMtMjQgMTY6MTQ6MTErMDA6MDAKU3VtbWFyeTogICAgIGFkZCBy
b290IHByZWZpeCB0byBhbGwgbGlicmFyeSBCQiBtb2RlbCB1cmxzCkFmZmVjdGVkICM6ICAzIGZp
bGVzCgpkaWZmIC1yIDk4OGNjNGRkYTIxMjlmYmQwMGQ4M2QyYzEyNjQ1ZmFmZjhjYmU3ZTkgLXIg
NDlkNTBiY2U0NjMyMDZmNDQ1MDYzZDI9CmIyN2IyZjJiMzkzYWRiZTExIGNsaWVudC9nYWxheHkv
c2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsLmpzCi0tLSBhL2NsaWVudC9nYWxheHkv
c2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsLmpzCisrKyBiL2NsaWVudC9nYWxheHkv
c2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsLmpzCkBAIC00LDcgKzQsNyBAQAogLy8g
TElCUkFSWSBSRUxBVEVEIE1PREVMUwo9MjAKICAgICB2YXIgTGlicmFyeSA9M0QgQmFja2JvbmUu
TW9kZWwuZXh0ZW5kKHsKLSAgICAgIHVybFJvb3Q6ICcvYXBpL2xpYnJhcmllcy8nLAorICAgICAg
dXJsUm9vdDogKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcv
JyApICsgJ2FwaS89CmxpYnJhcmllcy8nLAo9MjAKICAgICAgIC8qKiBiYXNlZCBvbiBzaG93X2Rl
bGV0ZWQgd291bGQgdGhpcyBsaWIgc2hvdyBpbiB0aGUgbGlzdCBvZiBsaWIncz8KICAgICAgICAq
ICBAcGFyYW0ge0Jvb2xlYW59IHNob3dfZGVsZXRlZCBhcmUgd2UgaW5jbHVkaW5nIGRlbGV0ZWQg
bGlicmFyaWVzPwpAQCAtMTksNyArMTksNyBAQAogICAgIH0pOwo9MjAKICAgICB2YXIgTGlicmFy
aWVzID0zRCBCYWNrYm9uZS5Db2xsZWN0aW9uLmV4dGVuZCh7Ci0gICAgICB1cmw6ICcvYXBpL2xp
YnJhcmllcycsCisgICAgICB1cmw6ICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29u
ZmlnLnJvb3QgOiAnLycgKSArICdhcGkvbGlicj0KYXJpZXMnLAo9MjAKICAgICAgIG1vZGVsOiBM
aWJyYXJ5LAo9MjAKQEAgLTg0LDE1ICs4NCwxNSBAQAogLy8gRk9MREVSIFJFTEFURUQgTU9ERUxT
Cj0yMAogICAgIHZhciBJdGVtID0zRCBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewotICAgICAgdXJs
Um9vdCA6ICcvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8nCisgICAgICB1cmxSb290IDogKCB3aW5k
b3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgJ2FwaT0KL2xp
YnJhcmllcy9kYXRhc2V0cy8nCiAgICAgfSk7Cj0yMAogICAgIHZhciBMZGRhID0zRCBCYWNrYm9u
ZS5Nb2RlbC5leHRlbmQoewotICAgICAgdXJsUm9vdCA6ICcvYXBpL2xpYnJhcmllcy9kYXRhc2V0
cy8nCisgICAgICB1cmxSb290IDogKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25m
aWcucm9vdCA6ICcvJyApICsgJ2FwaT0KL2xpYnJhcmllcy9kYXRhc2V0cy8nCiAgICAgfSk7Cj0y
MAogICAgIHZhciBGb2xkZXJBc01vZGVsID0zRCBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewotICAg
ICAgdXJsUm9vdDogJy9hcGkvZm9sZGVycycKKyAgICAgIHVybFJvb3Q6ICggd2luZG93LmdhbGF4
eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICdhcGkvPQpmb2xkZXJzJwog
ICAgIH0pOwo9MjAKICAgICB2YXIgRm9sZGVyID0zRCBCYWNrYm9uZS5Db2xsZWN0aW9uLmV4dGVu
ZCh7CkBAIC0xNTIsNyArMTUyLDcgQEAKICAgICB2YXIgRm9sZGVyQ29udGFpbmVyID0zRCBCYWNr
Ym9uZS5Nb2RlbC5leHRlbmQoewogICAgICAgICBkZWZhdWx0cyA6IHsKICAgICAgICAgICAgIGZv
bGRlciA6IG5ldyBGb2xkZXIoKSwKLSAgICAgICAgICAgIHVybFJvb3QgOiAiL2FwaS9mb2xkZXJz
LyIsCisgICAgICAgICAgICB1cmxSb290IDogKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4
eV9jb25maWcucm9vdCA6ICcvJyApID0KKyAnYXBpL2ZvbGRlcnMvJywKICAgICAgICAgICAgIGlk
IDogInVua25vd24iCiAgICAgICAgIH0sCiAgICAgcGFyc2UgOiBmdW5jdGlvbihvYmopIHsKQEAg
LTE2OSwxMSArMTY5LDExIEBACiAvLyBUT0RPIFVOSVRFCj0yMAogICAgIHZhciBIaXN0b3J5SXRl
bSA9M0QgQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHsKLSAgICAgIHVybFJvb3QgOiAnL2FwaS9oaXN0
b3JpZXMvJworICAgICAgdXJsUm9vdCA6ICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlf
Y29uZmlnLnJvb3QgOiAnLycgKSArICdhcGk9Ci9oaXN0b3JpZXMvJwogICAgIH0pOwo9MjAKICAg
ICB2YXIgSGlzdG9yeUNvbnRlbnRzID0zRCBCYWNrYm9uZS5Db2xsZWN0aW9uLmV4dGVuZCh7Ci0g
ICAgICB1cmxSb290IDogJy9hcGkvaGlzdG9yaWVzLycsCisgICAgICB1cmxSb290IDogKCB3aW5k
b3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgJ2FwaT0KL2hp
c3Rvcmllcy8nLAogICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ob3B0aW9ucyl7CiAgICAgICAg
IHRoaXMuaWQgPTNEIG9wdGlvbnMuaWQ7CiAgICAgICB9LApAQCAtMTg0LDExICsxODQsMTEgQEAK
ICAgICB9KTsKPTIwCiAgICAgdmFyIEdhbGF4eUhpc3RvcnkgPTNEIEJhY2tib25lLk1vZGVsLmV4
dGVuZCh7Ci0gICAgICB1cmxSb290IDogJy9hcGkvaGlzdG9yaWVzLycKKyAgICAgIHVybFJvb3Qg
OiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8nICkgKyAn
YXBpPQovaGlzdG9yaWVzLycKICAgICB9KTsKPTIwCiAgICAgdmFyIEdhbGF4eUhpc3RvcmllcyA9
M0QgQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoewotICAgICAgdXJsIDogJy9hcGkvaGlzdG9y
aWVzJywKKyAgICAgIHVybCA6ICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmln
LnJvb3QgOiAnLycgKSArICdhcGkvaGlzPQp0b3JpZXMnLAogICAgICAgbW9kZWwgOiBHYWxheHlI
aXN0b3J5CiAgICAgfSk7Cj0yMApAQCAtMTk5LDcgKzE5OSw3IEBACiAgICAgICovCiAgICA9MjAK
ICAgICB2YXIgSnN0cmVlID0zRCBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewotICAgICAgdXJsUm9v
dDogJy9hcGkvcmVtb3RlX2ZpbGVzJworICAgICAgdXJsUm9vdDogKCB3aW5kb3cuZ2FsYXh5X2Nv
bmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgJ2FwaS89CnJlbW90ZV9maWxlcycK
ICAgICB9KTsKPTIwCiByZXR1cm4gewoKZGlmZiAtciA5ODhjYzRkZGEyMTI5ZmJkMDBkODNkMmMx
MjY0NWZhZmY4Y2JlN2U5IC1yIDQ5ZDUwYmNlNDYzMjA2ZjQ0NTA2M2QyPQpiMjdiMmYyYjM5M2Fk
YmUxMSBzdGF0aWMvc2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsLmpzCi0tLSBhL3N0
YXRpYy9zY3JpcHRzL212Yy9saWJyYXJ5L2xpYnJhcnktbW9kZWwuanMKKysrIGIvc3RhdGljL3Nj
cmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1tb2RlbC5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIExJ
QlJBUlkgUkVMQVRFRCBNT0RFTFMKPTIwCiAgICAgdmFyIExpYnJhcnkgPTNEIEJhY2tib25lLk1v
ZGVsLmV4dGVuZCh7Ci0gICAgICB1cmxSb290OiAnL2FwaS9saWJyYXJpZXMvJywKKyAgICAgIHVy
bFJvb3Q6ICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycg
KSArICdhcGkvPQpsaWJyYXJpZXMvJywKPTIwCiAgICAgICAvKiogYmFzZWQgb24gc2hvd19kZWxl
dGVkIHdvdWxkIHRoaXMgbGliIHNob3cgaW4gdGhlIGxpc3Qgb2YgbGliJ3M/CiAgICAgICAgKiAg
QHBhcmFtIHtCb29sZWFufSBzaG93X2RlbGV0ZWQgYXJlIHdlIGluY2x1ZGluZyBkZWxldGVkIGxp
YnJhcmllcz8KQEAgLTE5LDcgKzE5LDcgQEAKICAgICB9KTsKPTIwCiAgICAgdmFyIExpYnJhcmll
cyA9M0QgQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoewotICAgICAgdXJsOiAnL2FwaS9saWJy
YXJpZXMnLAorICAgICAgdXJsOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZp
Zy5yb290IDogJy8nICkgKyAnYXBpL2xpYnI9CmFyaWVzJywKPTIwCiAgICAgICBtb2RlbDogTGli
cmFyeSwKPTIwCkBAIC04NCwxNSArODQsMTUgQEAKIC8vIEZPTERFUiBSRUxBVEVEIE1PREVMUwo9
MjAKICAgICB2YXIgSXRlbSA9M0QgQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHsKLSAgICAgIHVybFJv
b3QgOiAnL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvJworICAgICAgdXJsUm9vdCA6ICggd2luZG93
LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICdhcGk9Ci9saWJy
YXJpZXMvZGF0YXNldHMvJwogICAgIH0pOwo9MjAKICAgICB2YXIgTGRkYSA9M0QgQmFja2JvbmUu
TW9kZWwuZXh0ZW5kKHsKLSAgICAgIHVybFJvb3QgOiAnL2FwaS9saWJyYXJpZXMvZGF0YXNldHMv
JworICAgICAgdXJsUm9vdCA6ICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmln
LnJvb3QgOiAnLycgKSArICdhcGk9Ci9saWJyYXJpZXMvZGF0YXNldHMvJwogICAgIH0pOwo9MjAK
ICAgICB2YXIgRm9sZGVyQXNNb2RlbCA9M0QgQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHsKLSAgICAg
IHVybFJvb3Q6ICcvYXBpL2ZvbGRlcnMnCisgICAgICB1cmxSb290OiAoIHdpbmRvdy5nYWxheHlf
Y29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8nICkgKyAnYXBpLz0KZm9sZGVycycKICAg
ICB9KTsKPTIwCiAgICAgdmFyIEZvbGRlciA9M0QgQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQo
ewpAQCAtMTUyLDcgKzE1Miw3IEBACiAgICAgdmFyIEZvbGRlckNvbnRhaW5lciA9M0QgQmFja2Jv
bmUuTW9kZWwuZXh0ZW5kKHsKICAgICAgICAgZGVmYXVsdHMgOiB7CiAgICAgICAgICAgICBmb2xk
ZXIgOiBuZXcgRm9sZGVyKCksCi0gICAgICAgICAgICB1cmxSb290IDogIi9hcGkvZm9sZGVycy8i
LAorICAgICAgICAgICAgdXJsUm9vdCA6ICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlf
Y29uZmlnLnJvb3QgOiAnLycgKSA9CisgJ2FwaS9mb2xkZXJzLycsCiAgICAgICAgICAgICBpZCA6
ICJ1bmtub3duIgogICAgICAgICB9LAogICAgIHBhcnNlIDogZnVuY3Rpb24ob2JqKSB7CkBAIC0x
NjksMTEgKzE2OSwxMSBAQAogLy8gVE9ETyBVTklURQo9MjAKICAgICB2YXIgSGlzdG9yeUl0ZW0g
PTNEIEJhY2tib25lLk1vZGVsLmV4dGVuZCh7Ci0gICAgICB1cmxSb290IDogJy9hcGkvaGlzdG9y
aWVzLycKKyAgICAgIHVybFJvb3QgOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2Nv
bmZpZy5yb290IDogJy8nICkgKyAnYXBpPQovaGlzdG9yaWVzLycKICAgICB9KTsKPTIwCiAgICAg
dmFyIEhpc3RvcnlDb250ZW50cyA9M0QgQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoewotICAg
ICAgdXJsUm9vdCA6ICcvYXBpL2hpc3Rvcmllcy8nLAorICAgICAgdXJsUm9vdCA6ICggd2luZG93
LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICdhcGk9Ci9oaXN0
b3JpZXMvJywKICAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKG9wdGlvbnMpewogICAgICAgICB0
aGlzLmlkID0zRCBvcHRpb25zLmlkOwogICAgICAgfSwKQEAgLTE4NCwxMSArMTg0LDExIEBACiAg
ICAgfSk7Cj0yMAogICAgIHZhciBHYWxheHlIaXN0b3J5ID0zRCBCYWNrYm9uZS5Nb2RlbC5leHRl
bmQoewotICAgICAgdXJsUm9vdCA6ICcvYXBpL2hpc3Rvcmllcy8nCisgICAgICB1cmxSb290IDog
KCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgJ2Fw
aT0KL2hpc3Rvcmllcy8nCiAgICAgfSk7Cj0yMAogICAgIHZhciBHYWxheHlIaXN0b3JpZXMgPTNE
IEJhY2tib25lLkNvbGxlY3Rpb24uZXh0ZW5kKHsKLSAgICAgIHVybCA6ICcvYXBpL2hpc3Rvcmll
cycsCisgICAgICB1cmwgOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5y
b290IDogJy8nICkgKyAnYXBpL2hpcz0KdG9yaWVzJywKICAgICAgIG1vZGVsIDogR2FsYXh5SGlz
dG9yeQogICAgIH0pOwo9MjAKQEAgLTE5OSw3ICsxOTksNyBAQAogICAgICAqLwogICAgPTIwCiAg
ICAgdmFyIEpzdHJlZSA9M0QgQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHsKLSAgICAgIHVybFJvb3Q6
ICcvYXBpL3JlbW90ZV9maWxlcycKKyAgICAgIHVybFJvb3Q6ICggd2luZG93LmdhbGF4eV9jb25m
aWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICdhcGkvPQpyZW1vdGVfZmlsZXMnCiAg
ICAgfSk7Cj0yMAogcmV0dXJuIHsKCmRpZmYgLXIgOTg4Y2M0ZGRhMjEyOWZiZDAwZDgzZDJjMTI2
NDVmYWZmOGNiZTdlOSAtciA0OWQ1MGJjZTQ2MzIwNmY0NDUwNjNkMj0KYjI3YjJmMmIzOTNhZGJl
MTEgc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9saWJyYXJ5L2xpYnJhcnktbW9kZWwuanMKLS0t
IGEvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9saWJyYXJ5L2xpYnJhcnktbW9kZWwuanMKKysr
IGIvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9saWJyYXJ5L2xpYnJhcnktbW9kZWwuanMKQEAg
LTEsMSArMSwxIEBACi1kZWZpbmUoW10sZnVuY3Rpb24oKXt2YXIgZj0zREJhY2tib25lLk1vZGVs
LmV4dGVuZCh7dXJsUm9vdDoiL2FwaS9saWJyYXJpZT0Kcy8iLGlzVmlzaWJsZTpmdW5jdGlvbihu
KXt2YXIgbT0zRHRydWU7aWYoKCFuKSYmKHRoaXMuZ2V0KCJkZWxldGVkIikpKXttPTNEPQpmYWxz
ZX1yZXR1cm4gbX19KTt2YXIgaT0zREJhY2tib25lLkNvbGxlY3Rpb24uZXh0ZW5kKHt1cmw6Ii9h
cGkvbGlicmFyaWVzIiw9Cm1vZGVsOmYsc29ydF9rZXk6Im5hbWUiLHNvcnRfb3JkZXI6bnVsbCxp
bml0aWFsaXplOmZ1bmN0aW9uKG0pe209M0RtfHx7fX0sZz0KZXRWaXNpYmxlOmZ1bmN0aW9uKG4s
byl7bz0zRG98fFtdO3ZhciBtPTNEbmV3IGkodGhpcy5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0PQp1
cm4gcC5pc1Zpc2libGUobil9KSk7cmV0dXJuIG19LHNvcnRCeU5hbWVBc2M6ZnVuY3Rpb24oKXt0
aGlzLmNvbXBhcmF0b3I9M0Q9CmZ1bmN0aW9uKG4sbSl7aWYobi5nZXQoIm5hbWUiKS50b0xvd2Vy
Q2FzZSgpPm0uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKSl7cj0KZXR1cm4gMX1pZihtLmdldCgi
bmFtZSIpLnRvTG93ZXJDYXNlKCk+bi5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXtyZXR1cm4g
PQotMX1yZXR1cm4gMH07dGhpcy5zb3J0KCk7cmV0dXJuIHRoaXN9LHNvcnRCeU5hbWVEZXNjOmZ1
bmN0aW9uKCl7dGhpcy5jb21wYXI9CmF0b3I9M0RmdW5jdGlvbihuLG0pe2lmKG4uZ2V0KCJuYW1l
IikudG9Mb3dlckNhc2UoKT5tLmdldCgibmFtZSIpLnRvTG93ZXJDYT0Kc2UoKSl7cmV0dXJuIC0x
fWlmKG0uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKT5uLmdldCgibmFtZSIpLnRvTG93ZXJDYXNl
KCkpPQp7cmV0dXJuIDF9cmV0dXJuIDB9O3RoaXMuc29ydCgpO3JldHVybiB0aGlzfX0pO3ZhciBn
PTNEQmFja2JvbmUuTW9kZWwuZXh0ZW49CmQoe3VybFJvb3Q6Ii9hcGkvbGlicmFyaWVzL2RhdGFz
ZXRzLyJ9KTt2YXIgbD0zREJhY2tib25lLk1vZGVsLmV4dGVuZCh7dXJsUj0Kb290OiIvYXBpL2xp
YnJhcmllcy9kYXRhc2V0cy8ifSk7dmFyIGE9M0RCYWNrYm9uZS5Nb2RlbC5leHRlbmQoe3VybFJv
b3Q6Ii9hPQpwaS9mb2xkZXJzIn0pO3ZhciBjPTNEQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQo
e21vZGVsOmcsc29ydEJ5TmFtZUFzYzpmdW49CmN0aW9uKCl7dGhpcy5jb21wYXJhdG9yPTNEZnVu
Y3Rpb24obixtKXtpZihuLmdldCgidHlwZSIpPTNEPTNEPTNEbS5nZXQoInR5cD0KZSIpKXtpZihu
LmdldCgibmFtZSIpLnRvTG93ZXJDYXNlKCk+bS5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXty
ZXR1cm4gMX1pPQpmKG0uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKT5uLmdldCgibmFtZSIpLnRv
TG93ZXJDYXNlKCkpe3JldHVybiAtMX1yZXR1cm49CiAwfWVsc2V7aWYobi5nZXQoInR5cGUiKT0z
RD0zRD0zRCJmb2xkZXIiKXtyZXR1cm4gLTF9ZWxzZXtyZXR1cm4gMX19fTt0aGlzLj0Kc29ydCgp
O3JldHVybiB0aGlzfSxzb3J0QnlOYW1lRGVzYzpmdW5jdGlvbigpe3RoaXMuY29tcGFyYXRvcj0z
RGZ1bmN0aW9uKG4sPQptKXtpZihuLmdldCgidHlwZSIpPTNEPTNEPTNEbS5nZXQoInR5cGUiKSl7
aWYobi5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpPm09Ci5nZXQoIm5hbWUiKS50b0xvd2VyQ2Fz
ZSgpKXtyZXR1cm4gLTF9aWYobS5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpPm4uZ2V0KD0KIm5h
bWUiKS50b0xvd2VyQ2FzZSgpKXtyZXR1cm4gMX1yZXR1cm4gMH1lbHNle2lmKG4uZ2V0KCJ0eXBl
Iik9M0Q9M0Q9M0QiZm9sPQpkZXIiKXtyZXR1cm4gLTF9ZWxzZXtyZXR1cm4gMX19fTt0aGlzLnNv
cnQoKTtyZXR1cm4gdGhpc319KTt2YXIgZT0zREJhY2tib249CmUuTW9kZWwuZXh0ZW5kKHtkZWZh
dWx0czp7Zm9sZGVyOm5ldyBjKCksdXJsUm9vdDoiL2FwaS9mb2xkZXJzLyIsaWQ6InVua25vdz0K
biJ9LHBhcnNlOmZ1bmN0aW9uKG0pe3RoaXMuZ2V0KCJmb2xkZXIiKS5yZXNldChtLmZvbGRlcl9j
b250ZW50cyk7cmV0dXJuIG19PQp9KTt2YXIgYj0zREJhY2tib25lLk1vZGVsLmV4dGVuZCh7dXJs
Um9vdDoiL2FwaS9oaXN0b3JpZXMvIn0pO3ZhciBkPTNEQmFja2I9Cm9uZS5Db2xsZWN0aW9uLmV4
dGVuZCh7dXJsUm9vdDoiL2FwaS9oaXN0b3JpZXMvIixpbml0aWFsaXplOmZ1bmN0aW9uKG0pe3Ro
aT0Kcy5pZD0zRG0uaWR9LHVybDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVybFJvb3QrdGhpcy5p
ZCsiL2NvbnRlbnRzIn0sbW9kZWw6PQpifSk7dmFyIGg9M0RCYWNrYm9uZS5Nb2RlbC5leHRlbmQo
e3VybFJvb3Q6Ii9hcGkvaGlzdG9yaWVzLyJ9KTt2YXIgaz0zREJhY2s9CmJvbmUuQ29sbGVjdGlv
bi5leHRlbmQoe3VybDoiL2FwaS9oaXN0b3JpZXMiLG1vZGVsOmh9KTt2YXIgaj0zREJhY2tib25l
Lk1vZD0KZWwuZXh0ZW5kKHt1cmxSb290OiIvYXBpL3JlbW90ZV9maWxlcyJ9KTtyZXR1cm57TGli
cmFyeTpmLEZvbGRlckFzTW9kZWw6YSxMPQppYnJhcmllczppLEl0ZW06ZyxMZGRhOmwsRm9sZGVy
OmMsRm9sZGVyQ29udGFpbmVyOmUsSGlzdG9yeUl0ZW06YixIaXN0b3J5Q289Cm50ZW50czpkLEdh
bGF4eUhpc3Rvcnk6aCxHYWxheHlIaXN0b3JpZXM6ayxKc3RyZWU6an19KTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCitkZWZpbmUoW10sZnVuY3Rpb24oKXt2YXIgZj0zREJhY2tib25lLk1v
ZGVsLmV4dGVuZCh7dXJsUm9vdDood2luZG93LmdhbGF4eT0KX2NvbmZpZz9nYWxheHlfY29uZmln
LnJvb3Q6Ii8iKSsiYXBpL2xpYnJhcmllcy8iLGlzVmlzaWJsZTpmdW5jdGlvbihuKXt2YXIgPQpt
PTNEdHJ1ZTtpZigoIW4pJiYodGhpcy5nZXQoImRlbGV0ZWQiKSkpe209M0RmYWxzZX1yZXR1cm4g
bX19KTt2YXIgaT0zREJhY2s9CmJvbmUuQ29sbGVjdGlvbi5leHRlbmQoe3VybDood2luZG93Lmdh
bGF4eV9jb25maWc/Z2FsYXh5X2NvbmZpZy5yb290OiIvIikrIj0KYXBpL2xpYnJhcmllcyIsbW9k
ZWw6Zixzb3J0X2tleToibmFtZSIsc29ydF9vcmRlcjpudWxsLGluaXRpYWxpemU6ZnVuY3Rpb24o
PQptKXttPTNEbXx8e319LGdldFZpc2libGU6ZnVuY3Rpb24obixvKXtvPTNEb3x8W107dmFyIG09
M0RuZXcgaSh0aGlzLmZpbHRlcig9CmZ1bmN0aW9uKHApe3JldHVybiBwLmlzVmlzaWJsZShuKX0p
KTtyZXR1cm4gbX0sc29ydEJ5TmFtZUFzYzpmdW5jdGlvbigpe3RoaT0Kcy5jb21wYXJhdG9yPTNE
ZnVuY3Rpb24obixtKXtpZihuLmdldCgibmFtZSIpLnRvTG93ZXJDYXNlKCk+bS5nZXQoIm5hbWUi
KS50PQpvTG93ZXJDYXNlKCkpe3JldHVybiAxfWlmKG0uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2Uo
KT5uLmdldCgibmFtZSIpLnRvTG93ZXI9CkNhc2UoKSl7cmV0dXJuIC0xfXJldHVybiAwfTt0aGlz
LnNvcnQoKTtyZXR1cm4gdGhpc30sc29ydEJ5TmFtZURlc2M6ZnVuY3Rpbz0Kbigpe3RoaXMuY29t
cGFyYXRvcj0zRGZ1bmN0aW9uKG4sbSl7aWYobi5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpPm0u
Z2V0KCJuPQphbWUiKS50b0xvd2VyQ2FzZSgpKXtyZXR1cm4gLTF9aWYobS5nZXQoIm5hbWUiKS50
b0xvd2VyQ2FzZSgpPm4uZ2V0KCJuYW1lIik9Ci50b0xvd2VyQ2FzZSgpKXtyZXR1cm4gMX1yZXR1
cm4gMH07dGhpcy5zb3J0KCk7cmV0dXJuIHRoaXN9fSk7dmFyIGc9M0RCYWNrYj0Kb25lLk1vZGVs
LmV4dGVuZCh7dXJsUm9vdDood2luZG93LmdhbGF4eV9jb25maWc/Z2FsYXh5X2NvbmZpZy5yb290
OiIvIikrImFwPQppL2xpYnJhcmllcy9kYXRhc2V0cy8ifSk7dmFyIGw9M0RCYWNrYm9uZS5Nb2Rl
bC5leHRlbmQoe3VybFJvb3Q6KHdpbmRvdy5nYWw9CmF4eV9jb25maWc/Z2FsYXh5X2NvbmZpZy5y
b290OiIvIikrImFwaS9saWJyYXJpZXMvZGF0YXNldHMvIn0pO3ZhciBhPTNEQmFjaz0KYm9uZS5N
b2RlbC5leHRlbmQoe3VybFJvb3Q6KHdpbmRvdy5nYWxheHlfY29uZmlnP2dhbGF4eV9jb25maWcu
cm9vdDoiLyIpKyJhPQpwaS9mb2xkZXJzIn0pO3ZhciBjPTNEQmFja2JvbmUuQ29sbGVjdGlvbi5l
eHRlbmQoe21vZGVsOmcsc29ydEJ5TmFtZUFzYzpmdW49CmN0aW9uKCl7dGhpcy5jb21wYXJhdG9y
PTNEZnVuY3Rpb24obixtKXtpZihuLmdldCgidHlwZSIpPTNEPTNEPTNEbS5nZXQoInR5cD0KZSIp
KXtpZihuLmdldCgibmFtZSIpLnRvTG93ZXJDYXNlKCk+bS5nZXQoIm5hbWUiKS50b0xvd2VyQ2Fz
ZSgpKXtyZXR1cm4gMX1pPQpmKG0uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKT5uLmdldCgibmFt
ZSIpLnRvTG93ZXJDYXNlKCkpe3JldHVybiAtMX1yZXR1cm49CiAwfWVsc2V7aWYobi5nZXQoInR5
cGUiKT0zRD0zRD0zRCJmb2xkZXIiKXtyZXR1cm4gLTF9ZWxzZXtyZXR1cm4gMX19fTt0aGlzLj0K
c29ydCgpO3JldHVybiB0aGlzfSxzb3J0QnlOYW1lRGVzYzpmdW5jdGlvbigpe3RoaXMuY29tcGFy
YXRvcj0zRGZ1bmN0aW9uKG4sPQptKXtpZihuLmdldCgidHlwZSIpPTNEPTNEPTNEbS5nZXQoInR5
cGUiKSl7aWYobi5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpPm09Ci5nZXQoIm5hbWUiKS50b0xv
d2VyQ2FzZSgpKXtyZXR1cm4gLTF9aWYobS5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpPm4uZ2V0
KD0KIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXtyZXR1cm4gMX1yZXR1cm4gMH1lbHNle2lmKG4uZ2V0
KCJ0eXBlIik9M0Q9M0Q9M0QiZm9sPQpkZXIiKXtyZXR1cm4gLTF9ZWxzZXtyZXR1cm4gMX19fTt0
aGlzLnNvcnQoKTtyZXR1cm4gdGhpc319KTt2YXIgZT0zREJhY2tib249CmUuTW9kZWwuZXh0ZW5k
KHtkZWZhdWx0czp7Zm9sZGVyOm5ldyBjKCksdXJsUm9vdDood2luZG93LmdhbGF4eV9jb25maWc/
Z2FsYT0KeHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBpL2ZvbGRlcnMvIixpZDoidW5rbm93biJ9LHBh
cnNlOmZ1bmN0aW9uKG0pe3RoaXMuZ2V0PQooImZvbGRlciIpLnJlc2V0KG0uZm9sZGVyX2NvbnRl
bnRzKTtyZXR1cm4gbX19KTt2YXIgYj0zREJhY2tib25lLk1vZGVsLmV4dGU9Cm5kKHt1cmxSb290
Oih3aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBpL2hpc3Rv
cmllcy8ifT0KKTt2YXIgZD0zREJhY2tib25lLkNvbGxlY3Rpb24uZXh0ZW5kKHt1cmxSb290Oih3
aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfPQpjb25maWcucm9vdDoiLyIpKyJhcGkvaGlzdG9y
aWVzLyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihtKXt0aGlzLmlkPTNEbS5pZH0sdXI9Cmw6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy51cmxSb290K3RoaXMuaWQrIi9jb250ZW50cyJ9LG1vZGVsOmJ9KTt2
YXIgaD0zREJhYz0Ka2JvbmUuTW9kZWwuZXh0ZW5kKHt1cmxSb290Oih3aW5kb3cuZ2FsYXh5X2Nv
bmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiPQphcGkvaGlzdG9yaWVzLyJ9KTt2YXIgaz0z
REJhY2tib25lLkNvbGxlY3Rpb24uZXh0ZW5kKHt1cmw6KHdpbmRvdy5nYWxheHlfY289Cm5maWc/
Z2FsYXh5X2NvbmZpZy5yb290OiIvIikrImFwaS9oaXN0b3JpZXMiLG1vZGVsOmh9KTt2YXIgaj0z
REJhY2tib25lLk1vZD0KZWwuZXh0ZW5kKHt1cmxSb290Oih3aW5kb3cuZ2FsYXh5X2NvbmZpZz9n
YWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBpL3JlbW90PQplX2ZpbGVzIn0pO3JldHVybntMaWJy
YXJ5OmYsRm9sZGVyQXNNb2RlbDphLExpYnJhcmllczppLEl0ZW06ZyxMZGRhOmwsRm9sZGU9CnI6
YyxGb2xkZXJDb250YWluZXI6ZSxIaXN0b3J5SXRlbTpiLEhpc3RvcnlDb250ZW50czpkLEdhbGF4
eUhpc3Rvcnk6aCxHYWxheD0KeUhpc3RvcmllczprLEpzdHJlZTpqfX0pOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50
cmFsL2NvbW1pdHMvMWNjZjQwYmRhZmExLwpDaGFuZ2VzZXQ6ICAgMWNjZjQwYmRhZmExCkJyYW5j
aDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBtYXJ0ZW5zb24KRGF0ZTogICAgICAg
IDIwMTUtMDMtMjQgMTk6MTE6NDErMDA6MDAKU3VtbWFyeTogICAgIGFkZCByb290IHByZWZpeCB0
byBhbGwgYWpheCBjYWxscyBpbiBkYXRhIGxpYnJhcmllcwpBZmZlY3RlZCAjOiAgMTIgZmlsZXMK
CmRpZmYgLXIgNDlkNTBiY2U0NjMyMDZmNDQ1MDYzZDJiMjdiMmYyYjM5M2FkYmUxMSAtciAxY2Nm
NDBiZGFmYTE4NGIzYmUzMWFhNz0KYjFlY2RmY2UzYmM3MDVlZmIgY2xpZW50L2dhbGF4eS9zY3Jp
cHRzL212Yy9saWJyYXJ5L2xpYnJhcnktZGF0YXNldC12aWV3LmpzCi0tLSBhL2NsaWVudC9nYWxh
eHkvc2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LWRhdGFzZXQtdmlldy5qcworKysgYi9jbGll
bnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1kYXRhc2V0LXZpZXcuanMKQEAg
LTExNiw3ICsxMTYsNyBAQAogICB9LAo9MjAKICAgZG93bmxvYWREYXRhc2V0OiBmdW5jdGlvbigp
ewotICAgIHZhciB1cmwgPTNEICcvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy9kb3dubG9hZC91bmNv
bXByZXNzZWQnOworICAgIHZhciB1cmwgPTNEICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxh
eHlfY29uZmlnLnJvb3QgOiAnLycgKSArICdhcGk9Ci9saWJyYXJpZXMvZGF0YXNldHMvZG93bmxv
YWQvdW5jb21wcmVzc2VkJzsKICAgICB2YXIgZGF0YSA9M0QgeydsZF9pZHMnIDogdGhpcy5pZH07
CiAgICAgdGhpcy5wcm9jZXNzRG93bmxvYWQodXJsLCBkYXRhKTsKICAgfSwKQEAgLTIzMiw3ICsy
MzIsNyBAQAo9MjAKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKICAgICBpZiAodGhpcy5vcHRpb25z
LmZldGNoZWRfcGVybWlzc2lvbnMgPTNEPTNEPTNEIHVuZGVmaW5lZCl7Ci0gICAgICAkLmdldCgg
Ii9hcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9zY29w
ZT0zRD0KY3VycmVudCIpLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucykgeworICAg
ICAgJC5nZXQoICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAn
LycgKSArICJhcGkvbGk9CmJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Np
b25zP3Njb3BlPTNEY3VycmVudCIpLmRvbmUoZnVuY3Rpbz0KbihmZXRjaGVkX3Blcm1pc3Npb25z
KSB7CiAgICAgICAgIHNlbGYucHJlcGFyZVNlbGVjdEJveGVzKHtmZXRjaGVkX3Blcm1pc3Npb25z
OmZldGNoZWRfcGVybWlzc2lvbnMsID0KaXNfYWRtaW46aXNfYWRtaW59KTsKICAgICAgIH0pLmZh
aWwoZnVuY3Rpb24oKXsKICAgICAgICAgICBtb2RfdG9hc3RyLmVycm9yKCdBbiBlcnJvciBvY2N1
cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIGZldGNoIGRhPQp0YXNldCBwZXJtaXNzaW9ucy4nKTsK
QEAgLTI3Myw3ICsyNzMsNyBAQAogICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0NsaWNrIHRv
IHNlbGVjdCBhIHJvbGUnLAogICAgICAgICAgICAgICBjb250YWluZXI6IHNlbGYuJGVsLmZpbmQo
JyNhY2Nlc3NfcGVybScpLAogICAgICAgICAgICAgICBhamF4OiB7Ci0gICAgICAgICAgICAgICAg
ICB1cmw6ICIvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lv
bj0Kcz9zY29wZT0zRGF2YWlsYWJsZSIsCisgICAgICAgICAgICAgICAgICB1cmw6ICggd2luZG93
LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKT0KICsgImFwaS9saWJy
YXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP3Njb3BlPTNEYXZhaWxh
YmxlIiwKICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnanNvbicsCiAgICAgICAgICAgICAg
ICAgICBxdWlldE1pbGxpczogMTAwLAogICAgICAgICAgICAgICAgICAgZGF0YTogZnVuY3Rpb24g
KHRlcm0sIHBhZ2UpIHsgLy8gcGFnZSBpcyB0aGUgb25lLWJhc2VkIHA9CmFnZSBudW1iZXIgdHJh
Y2tlZCBieSBTZWxlY3QyCkBAIC0zMjAsNyArMzIwLDcgQEAKICAgICAgICAgICAgICAgcGxhY2Vo
b2xkZXI6ICdDbGljayB0byBzZWxlY3QgYSByb2xlJywKICAgICAgICAgICAgICAgY29udGFpbmVy
OiBzZWxmLiRlbC5maW5kKCcjbW9kaWZ5X3Blcm0nKSwKICAgICAgICAgICAgICAgYWpheDogewot
ICAgICAgICAgICAgICAgICAgdXJsOiAiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYu
aWQgKyAiL3Blcm1pc3Npb249CnM/c2NvcGU9M0RhdmFpbGFibGUiLAorICAgICAgICAgICAgICAg
ICAgdXJsOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8n
ICk9CiArICJhcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9u
cz9zY29wZT0zRGF2YWlsYWJsZSIsCiAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24n
LAogICAgICAgICAgICAgICAgICAgcXVpZXRNaWxsaXM6IDEwMCwKICAgICAgICAgICAgICAgICAg
IGRhdGE6IGZ1bmN0aW9uICh0ZXJtLCBwYWdlKSB7IC8vIHBhZ2UgaXMgdGhlIG9uZS1iYXNlZCBw
PQphZ2UgbnVtYmVyIHRyYWNrZWQgYnkgU2VsZWN0MgpAQCAtMzY3LDcgKzM2Nyw3IEBACiAgICAg
ICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQ2xpY2sgdG8gc2VsZWN0IGEgcm9sZScsCiAgICAgICAg
ICAgICAgIGNvbnRhaW5lcjogc2VsZi4kZWwuZmluZCgnI21hbmFnZV9wZXJtJyksCiAgICAgICAg
ICAgICAgIGFqYXg6IHsKLSAgICAgICAgICAgICAgICAgIHVybDogIi9hcGkvbGlicmFyaWVzL2Rh
dGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9uPQpzP3Njb3BlPTNEYXZhaWxhYmxlIiwK
KyAgICAgICAgICAgICAgICAgIHVybDogKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9j
b25maWcucm9vdCA6ICcvJyApPQogKyAiYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5p
ZCArICIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFpbGFibGUiLAogICAgICAgICAgICAgICAgICAg
ZGF0YVR5cGU6ICdqc29uJywKICAgICAgICAgICAgICAgICAgIHF1aWV0TWlsbGlzOiAxMDAsCiAg
ICAgICAgICAgICAgICAgICBkYXRhOiBmdW5jdGlvbiAodGVybSwgcGFnZSkgeyAvLyBwYWdlIGlz
IHRoZSBvbmUtYmFzZWQgcD0KYWdlIG51bWJlciB0cmFja2VkIGJ5IFNlbGVjdDIKQEAgLTQxMyw3
ICs0MTMsNyBAQAogICAgICAgICAgICAgc2VsZi5tYW5hZ2VTZWxlY3RPYmplY3QgPTNEIG5ldyBt
b2Rfc2VsZWN0LlZpZXcobWFuYWdlX3NlbGVjdF89Cm9wdGlvbnMpOwogICAgICAgICB9IGVsc2Ug
eyAvLyBOb24tYWRtaW5zIGhhdmUgc2VsZWN0IHdpdGggcHJlLWxvYWRlZCBvcHRpb25zCiAgICAg
ICAgICAgICB2YXIgdGVtcGxhdGUgPTNEIHNlbGYudGVtcGxhdGVBY2Nlc3NTZWxlY3QoKTsKLSAg
ICAgICAgICAgICQuZ2V0KCAiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAi
L3Blcm1pc3Npb25zP3NjPQpvcGU9M0RhdmFpbGFibGUiLCBmdW5jdGlvbiggZGF0YSApIHsKKyAg
ICAgICAgICAgICQuZ2V0KCAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5y
b290IDogJy8nICkgKyAiPQphcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9w
ZXJtaXNzaW9ucz9zY29wZT0zRGF2YWlsYWJsZSIsIGZ1bmM9CnRpb24oIGRhdGEgKSB7CiAgICAg
ICAgICAgICAgICAgJCgnLmFjY2Vzc19wZXJtJykuaHRtbCh0ZW1wbGF0ZSh7b3B0aW9uczpkYXRh
LnJvbGVzfSkpOwogICAgICAgICAgICAgICAgIHNlbGYuYWNjZXNzU2VsZWN0T2JqZWN0ID0zRCAk
KCcjYWNjZXNzX3NlbGVjdCcpLnNlbGVjdDIoKTsKICAgICAgICAgICAgIH0pLmZhaWwoZnVuY3Rp
b24oKSB7CkBAIC00MzYsNyArNDM2LDcgQEAKPTIwCiAgIG1ha2VEYXRhc2V0UHJpdmF0ZTogZnVu
Y3Rpb24oKXsKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKLSAgICAkLnBvc3QoIi9hcGkvbGlicmFy
aWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9hY3Rpb249M0RtPQpha2Vf
cHJpdmF0ZSIpLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucykgeworICAgICQucG9z
dCggKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsg
ImFwaS9saWI9CnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/YWN0
aW9uPTNEbWFrZV9wcml2YXRlIikuZG9uZShmdT0KbmN0aW9uKGZldGNoZWRfcGVybWlzc2lvbnMp
IHsKICAgICAgIHNlbGYubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6ZmFsc2V9KTsKICAgICAg
IHNlbGYuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Npb25zOmZldGNoZWRfcGVybWlz
c2lvbnN9KQogICAgICAgbW9kX3RvYXN0ci5zdWNjZXNzKCdUaGUgZGF0YXNldCBpcyBub3cgcHJp
dmF0ZSB0byB5b3UuJyk7CkBAIC00NDcsNyArNDQ3LDcgQEAKPTIwCiAgIHJlbW92ZURhdGFzZXRS
ZXN0cmljdGlvbnM6IGZ1bmN0aW9uKCl7CiAgICAgdmFyIHNlbGYgPTNEIHRoaXM7Ci0gICAgJC5w
b3N0KCIvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/
YWN0aW9uPTNEcj0KZW1vdmVfcmVzdHJpY3Rpb25zIikKKyAgICAkLnBvc3QoICggd2luZG93Lmdh
bGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICJhcGkvbGliPQpyYXJp
ZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHJlbW92ZV9y
ZXN0cmljdGlvbnMiKQogICAgIC5kb25lKGZ1bmN0aW9uKGZldGNoZWRfcGVybWlzc2lvbnMpIHsK
ICAgICAgIHNlbGYubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6dHJ1ZX0pOwogICAgICAgc2Vs
Zi5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0Y2hlZF9wZXJtaXNzaW9u
c30pCkBAIC00NzgsNyArNDc4LDcgQEAKICAgICAgIG1vZGlmeV9pZHMucHVzaChtb2RpZnlfcm9s
ZXNbaV0uaWQpOwogICAgIH07Cj0yMAotICAgICQucG9zdCgiL2FwaS9saWJyYXJpZXMvZGF0YXNl
dHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHM9CmV0X3Blcm1pc3Npb25z
IiwgeyAnYWNjZXNzX2lkc1tdJzogYWNjZXNzX2lkcywgJ21hbmFnZV9pZHNbXSc6IG1hbmFnZV9p
ZHMsID0KJ21vZGlmeV9pZHNbXSc6IG1vZGlmeV9pZHMsIH0gKQorICAgICQucG9zdCggKCB3aW5k
b3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgImFwaS9saWI9
CnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/YWN0aW9uPTNEc2V0
X3Blcm1pc3Npb25zIiwgeyAnYT0KY2Nlc3NfaWRzW10nOiBhY2Nlc3NfaWRzLCAnbWFuYWdlX2lk
c1tdJzogbWFuYWdlX2lkcywgJ21vZGlmeV9pZHNbXSc6IG1vZGlmPQp5X2lkcywgfSApCiAgICAg
LmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucyl7CiAgICAgICAvL2ZldGNoIGRhdGFz
ZXQgYWdhaW4KICAgICAgIHNlbGYuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Npb25z
OmZldGNoZWRfcGVybWlzc2lvbnN9KQoKZGlmZiAtciA0OWQ1MGJjZTQ2MzIwNmY0NDUwNjNkMmIy
N2IyZjJiMzkzYWRiZTExIC1yIDFjY2Y0MGJkYWZhMTg0YjNiZTMxYWE3PQpiMWVjZGZjZTNiYzcw
NWVmYiBjbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xkZXItdmll
dy5qcwotLS0gYS9jbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xk
ZXItdmlldy5qcworKysgYi9jbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFy
eS1mb2xkZXItdmlldy5qcwpAQCAtODEsNyArODEsNyBAQAo9MjAKICAgICB2YXIgc2VsZiA9M0Qg
dGhpczsKICAgICBpZiAodGhpcy5vcHRpb25zLmZldGNoZWRfcGVybWlzc2lvbnMgPTNEPTNEPTNE
IHVuZGVmaW5lZCl7Ci0gICAgICAkLmdldCggIi9hcGkvZm9sZGVycy8iICsgc2VsZi5pZCArICIv
cGVybWlzc2lvbnM/c2NvcGU9M0RjdXJyZW50IikuZD0Kb25lKGZ1bmN0aW9uKGZldGNoZWRfcGVy
bWlzc2lvbnMpIHsKKyAgICAgICQuZ2V0KCAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5
X2NvbmZpZy5yb290IDogJy8nICkgKyAiYXBpL2ZvPQpsZGVycy8iICsgc2VsZi5pZCArICIvcGVy
bWlzc2lvbnM/c2NvcGU9M0RjdXJyZW50IikuZG9uZShmdW5jdGlvbihmZXRjaGVkX3A9CmVybWlz
c2lvbnMpIHsKICAgICAgICAgc2VsZi5wcmVwYXJlU2VsZWN0Qm94ZXMoe2ZldGNoZWRfcGVybWlz
c2lvbnM6ZmV0Y2hlZF9wZXJtaXNzaW9uc30pOwogICAgICAgfSkuZmFpbChmdW5jdGlvbigpewog
ICAgICAgICAgIG1vZF90b2FzdHIuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVt
cHRpbmcgdG8gZmV0Y2ggZm89CmxkZXIgcGVybWlzc2lvbnMuJyk7CkBAIC0xMjUsNyArMTI1LDcg
QEAKICAgICAgIHBsYWNlaG9sZGVyOiAnQ2xpY2sgdG8gc2VsZWN0IGEgcm9sZScsCiAgICAgICBj
b250YWluZXI6IHNlbGYuJGVsLmZpbmQoJyMnICsgaWQpLAogICAgICAgYWpheDogewotICAgICAg
ICAgIHVybDogIi9hcGkvZm9sZGVycy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9
M0RhdmFpbGFibGU9CiIsCisgICAgICAgICAgdXJsOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8g
Z2FsYXh5X2NvbmZpZy5yb290IDogJy8nICkgKyAiYXBpLz0KZm9sZGVycy8iICsgc2VsZi5pZCAr
ICIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFpbGFibGUiLAogICAgICAgICAgIGRhdGFUeXBlOiAn
anNvbicsCiAgICAgICAgICAgcXVpZXRNaWxsaXM6IDEwMCwKICAgICAgICAgICBkYXRhOiBmdW5j
dGlvbiAodGVybSwgcGFnZSkgeyAvLyBwYWdlIGlzIHRoZSBvbmUtYmFzZWQgcGFnZSBudW1iPQpl
ciB0cmFja2VkIGJ5IFNlbGVjdDIKQEAgLTE5NSw3ICsxOTUsNyBAQAogICAgIHZhciBtYW5hZ2Vf
aWRzID0zRCB0aGlzLl9leHRyYWN0SWRzKHRoaXMubWFuYWdlU2VsZWN0T2JqZWN0LiRlbC5zZWxl
Y3Q9CjIoJ2RhdGEnKSk7CiAgICAgdmFyIG1vZGlmeV9pZHMgPTNEIHRoaXMuX2V4dHJhY3RJZHMo
dGhpcy5tb2RpZnlTZWxlY3RPYmplY3QuJGVsLnNlbGVjdD0KMignZGF0YScpKTsKPTIwCi0gICAg
JC5wb3N0KCIvYXBpL2ZvbGRlcnMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0z
RHNldF9wZXJtaXNzaT0Kb25zIiwgeyAnYWRkX2lkc1tdJzogYWRkX2lkcywgJ21hbmFnZV9pZHNb
XSc6IG1hbmFnZV9pZHMsICdtb2RpZnlfaWRzW10nOiBtPQpvZGlmeV9pZHMsIH0gKQorICAgICQu
cG9zdCggKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyAp
ICsgImFwaS9mb2w9CmRlcnMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHNl
dF9wZXJtaXNzaW9ucyIsIHsgJ2FkZF9pZHNbXSc6ID0KYWRkX2lkcywgJ21hbmFnZV9pZHNbXSc6
IG1hbmFnZV9pZHMsICdtb2RpZnlfaWRzW10nOiBtb2RpZnlfaWRzLCB9ICkKICAgICAuZG9uZShm
dW5jdGlvbihmZXRjaGVkX3Blcm1pc3Npb25zKXsKICAgICAgIC8vZmV0Y2ggZGF0YXNldCBhZ2Fp
bgogICAgICAgc2VsZi5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0Y2hl
ZF9wZXJtaXNzaW9uc30pCgpkaWZmIC1yIDQ5ZDUwYmNlNDYzMjA2ZjQ0NTA2M2QyYjI3YjJmMmIz
OTNhZGJlMTEgLXIgMWNjZjQwYmRhZmExODRiM2JlMzFhYTc9CmIxZWNkZmNlM2JjNzA1ZWZiIGNs
aWVudC9nYWxheHkvc2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LWZvbGRlcnRvb2xiYXItdj0K
aWV3LmpzCi0tLSBhL2NsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LWZv
bGRlcnRvb2xiYXItdmlldy5qcworKysgYi9jbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2xpYnJh
cnkvbGlicmFyeS1mb2xkZXJ0b29sYmFyLXZpZXcuanMKQEAgLTI5NCw3ICsyOTQsNyBAQAogICAg
ICAgICAgICAgICAgIGRhdGFzZXRfaWRzLnB1c2goIHRoaXMucGFyZW50RWxlbWVudC5wYXJlbnRF
bGVtZW50LmlkICk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gKTsKLSAgICB2YXIgdXJsID0z
RCAnL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvZG93bmxvYWQvJyArIGZvcm1hdDsKKyAgICB2YXIg
dXJsID0zRCAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8n
ICkgKyAnYXBpPQovbGlicmFyaWVzL2RhdGFzZXRzL2Rvd25sb2FkLycgKyBmb3JtYXQ7CiAgICAg
dmFyIGRhdGEgPTNEIHsgJ2xkX2lkcycgOiBkYXRhc2V0X2lkcyB9OwogICAgIHRoaXMucHJvY2Vz
c0Rvd25sb2FkKCB1cmwsIGRhdGEsICdnZXQnICk7CiAgIH0sCkBAIC0zODYsNyArMzg2LDcgQEAK
ICAgZmV0Y2hFeHRBbmRHZW5vbWVzOiBmdW5jdGlvbigpewogICAgIHZhciB0aGF0ID0zRCB0aGlz
OwogICAgIG1vZF91dGlscy5nZXQoewotICAgICAgICB1cmwgICAgICA6ICBnYWxheHlfY29uZmln
LnJvb3QgKyAiYXBpL2RhdGF0eXBlcz9leHRlbnNpb25fb25seT0zREY9CmFsc2UiLAorICAgICAg
ICB1cmwgICAgICA6ICAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290
IDogJy8nICkgKyA9CiJhcGkvZGF0YXR5cGVzP2V4dGVuc2lvbl9vbmx5PTNERmFsc2UiLAogICAg
ICAgICBzdWNjZXNzICA6ICBmdW5jdGlvbiggZGF0YXR5cGVzICkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChrZXkgaW4gZGF0YXR5cGVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhhdC5saXN0X2V4dGVuc2lvbnMucHVzaCh7CkBAIC00MDMsNyArNDAzLDcgQEAKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgfSk7CiAgICAgbW9kX3V0aWxzLmdldCh7Ci0gICAg
ICAgIHVybDogICAgZ2FsYXh5X2NvbmZpZy5yb290ICsgImFwaS9nZW5vbWVzIiwKKyAgICAgICAg
dXJsOiAgICAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8n
ICkgKyAiYXBpPQovZ2Vub21lcyIsCiAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKCBnZW5vbWVz
ICkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKCBrZXkgaW4gZ2Vub21lcyApIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoYXQubGlzdF9nZW5vbWVzLnB1c2goewpAQCAtNjg5LDcgKzY4
OSw3IEBACiAgICAgICBmb3IgKCB2YXIgaSA9M0QgaGlzdG9yeV9kYXRhc2V0X2lkcy5sZW5ndGgg
LSAxOyBpID49M0QgMDsgaS0tICkgewogICAgICAgICBoaXN0b3J5X2RhdGFzZXRfaWQgPTNEIGhp
c3RvcnlfZGF0YXNldF9pZHNbaV07CiAgICAgICAgIHZhciBmb2xkZXJfaXRlbSA9M0QgbmV3IG1v
ZF9saWJyYXJ5X21vZGVsLkl0ZW0oKTsKLSAgICAgICAgZm9sZGVyX2l0ZW0udXJsID0zRCAnL2Fw
aS9mb2xkZXJzLycgKyB0aGlzLm9wdGlvbnMuaWQgKyAnL2NvbnRlbnRzPQonOworICAgICAgICBm
b2xkZXJfaXRlbS51cmwgPTNEICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmln
LnJvb3QgOiA9CicvJyApICsgJ2FwaS9mb2xkZXJzLycgKyB0aGlzLm9wdGlvbnMuaWQgKyAnL2Nv
bnRlbnRzJzsKICAgICAgICAgZm9sZGVyX2l0ZW0uc2V0KCB7ICdmcm9tX2hkYV9pZCc6aGlzdG9y
eV9kYXRhc2V0X2lkIH0gKTsKICAgICAgICAgaGRhc190b19hZGQucHVzaCggZm9sZGVyX2l0ZW0g
KTsKICAgICAgIH0KQEAgLTc0OSw3ICs3NDksNyBAQAogICAgICAgfQogICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotICAgIHZhciBwcm9taXNlID0zRCAkLndoZW4oICQucG9zdCggJy9hcGkvbGli
cmFyaWVzL2RhdGFzZXRzP2VuY29kZWRfZm9sZGU9CnJfaWQ9M0QnICsgdGhhdC5pZCArPTIwCisg
ICAgdmFyIHByb21pc2UgPTNEICQud2hlbiggJC5wb3N0KCAoIHdpbmRvdy5nYWxheHlfY29uZmln
ID8gZ2FsYXh5X2NvbmZpZz0KLnJvb3QgOiAnLycgKSArICdhcGkvbGlicmFyaWVzL2RhdGFzZXRz
P2VuY29kZWRfZm9sZGVyX2lkPTNEJyArIHRoYXQuaWQgKz0yMAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcmc291cmNlPTNEJyArIG9wdGk9
Cm9ucy5zb3VyY2UgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcmcGF0aD0zRCcgKyBwb3BwZWQ9Cl9pdGVtICsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJmZpbGVfdHlwZT0zRCcg
KyBvPQpwdGlvbnMuZmlsZV90eXBlICsKQEAgLTc4OCw3ICs3ODgsNyBAQAogICAgICAgfQogICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHZhciBwcm9taXNlID0zRCAkLndoZW4oICQucG9z
dCggJy9hcGkvbGlicmFyaWVzL2RhdGFzZXRzP2VuY29kZWRfZm9sZGU9CnJfaWQ9M0QnICsgdGhh
dC5pZCArCisgICAgdmFyIHByb21pc2UgPTNEICQud2hlbiggJC5wb3N0KCAoIHdpbmRvdy5nYWxh
eHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZz0KLnJvb3QgOiAnLycgKSArICdhcGkvbGlicmFyaWVz
L2RhdGFzZXRzP2VuY29kZWRfZm9sZGVyX2lkPTNEJyArIHRoYXQuaWQgKwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcmc291cmNlPTNE
JyArIG89CnB0aW9ucy5zb3VyY2UgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcmcGF0aD0zRCcgKyBwb3A9CnBlZF9pdGVtICsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
JnByZXNlcnZlX2RpcnM9Cj0zRCcgKyBvcHRpb25zLnByZXNlcnZlX2RpcnMgKwoKZGlmZiAtciA0
OWQ1MGJjZTQ2MzIwNmY0NDUwNjNkMmIyN2IyZjJiMzkzYWRiZTExIC1yIDFjY2Y0MGJkYWZhMTg0
YjNiZTMxYWE3PQpiMWVjZGZjZTNiYzcwNWVmYiBjbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2xp
YnJhcnkvbGlicmFyeS1saWJyYXJ5LXZpZXcuanMKLS0tIGEvY2xpZW50L2dhbGF4eS9zY3JpcHRz
L212Yy9saWJyYXJ5L2xpYnJhcnktbGlicmFyeS12aWV3LmpzCisrKyBiL2NsaWVudC9nYWxheHkv
c2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LWxpYnJhcnktdmlldy5qcwpAQCAtODcsNyArODcs
NyBAQAo9MjAKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKICAgICBpZiAodGhpcy5vcHRpb25zLmZl
dGNoZWRfcGVybWlzc2lvbnMgPTNEPTNEPTNEIHVuZGVmaW5lZCl7Ci0gICAgICAkLmdldCggIi9h
cGkvbGlicmFyaWVzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9zY29wZT0zRGN1cnJlbnQi
KT0KLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucykgeworICAgICAgJC5nZXQoICgg
d2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICJhcGkv
bGk9CmJyYXJpZXMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP3Njb3BlPTNEY3VycmVudCIp
LmRvbmUoZnVuY3Rpb24oZmV0Y2hlZD0KX3Blcm1pc3Npb25zKSB7CiAgICAgICAgIHNlbGYucHJl
cGFyZVNlbGVjdEJveGVzKHtmZXRjaGVkX3Blcm1pc3Npb25zOmZldGNoZWRfcGVybWlzc2lvbnN9
KTsKICAgICAgIH0pLmZhaWwoZnVuY3Rpb24oKXsKICAgICAgICAgICBtb2RfdG9hc3RyLmVycm9y
KCdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIGZldGNoIGxpPQpicmFyeSBw
ZXJtaXNzaW9ucy4nKTsKQEAgLTEzNCw3ICsxMzQsNyBAQAogICAgICAgcGxhY2Vob2xkZXI6ICdD
bGljayB0byBzZWxlY3QgYSByb2xlJywKICAgICAgIGNvbnRhaW5lcjogc2VsZi4kZWwuZmluZCgn
IycgKyBpZCksCiAgICAgICBhamF4OiB7Ci0gICAgICAgICAgdXJsOiAiL2FwaS9saWJyYXJpZXMv
IiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP3Njb3BlPTNEYXZhaWxhYj0KbGUmaXNfbGlicmFy
eV9hY2Nlc3M9M0QiICsgaXNfbGlicmFyeV9hY2Nlc3MsCisgICAgICAgICAgdXJsOiAoIHdpbmRv
dy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8nICkgKyAiYXBpLz0KbGli
cmFyaWVzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9zY29wZT0zRGF2YWlsYWJsZSZpc19s
aWJyYXJ5X2FjY2Vzcz0KPTNEIiArIGlzX2xpYnJhcnlfYWNjZXNzLAogICAgICAgICAgIGRhdGFU
eXBlOiAnanNvbicsCiAgICAgICAgICAgcXVpZXRNaWxsaXM6IDEwMCwKICAgICAgICAgICBkYXRh
OiBmdW5jdGlvbiAodGVybSwgcGFnZSkgeyAvLyBwYWdlIGlzIHRoZSBvbmUtYmFzZWQgcGFnZSBu
dW1iPQplciB0cmFja2VkIGJ5IFNlbGVjdDIKQEAgLTE5Myw3ICsxOTMsNyBAQAo9MjAKICAgbWFr
ZURhdGFzZXRQcml2YXRlOiBmdW5jdGlvbigpewogICAgIHZhciBzZWxmID0zRCB0aGlzOwotICAg
ICQucG9zdCgiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Np
b25zP2FjdGlvbj0zRG09CmFrZV9wcml2YXRlIikuZG9uZShmdW5jdGlvbihmZXRjaGVkX3Blcm1p
c3Npb25zKSB7CisgICAgJC5wb3N0KCAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2Nv
bmZpZy5yb290IDogJy8nICkgKyAiYXBpL2xpYj0KcmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlk
ICsgIi9wZXJtaXNzaW9ucz9hY3Rpb249M0RtYWtlX3ByaXZhdGUiKS5kb25lKGZ1PQpuY3Rpb24o
ZmV0Y2hlZF9wZXJtaXNzaW9ucykgewogICAgICAgc2VsZi5tb2RlbC5zZXQoe2lzX3VucmVzdHJp
Y3RlZDpmYWxzZX0pOwogICAgICAgc2VsZi5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlz
c2lvbnM6ZmV0Y2hlZF9wZXJtaXNzaW9uc30pCiAgICAgICBtb2RfdG9hc3RyLnN1Y2Nlc3MoJ1Ro
ZSBkYXRhc2V0IGlzIG5vdyBwcml2YXRlIHRvIHlvdS4nKTsKQEAgLTIwNCw3ICsyMDQsNyBAQAo9
MjAKICAgcmVtb3ZlRGF0YXNldFJlc3RyaWN0aW9uczogZnVuY3Rpb24oKXsKICAgICB2YXIgc2Vs
ZiA9M0QgdGhpczsKLSAgICAkLnBvc3QoIi9hcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxm
LmlkICsgIi9wZXJtaXNzaW9ucz9hY3Rpb249M0RyPQplbW92ZV9yZXN0cmljdGlvbnMiKQorICAg
ICQucG9zdCggKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcv
JyApICsgImFwaS9saWI9CnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lv
bnM/YWN0aW9uPTNEcmVtb3ZlX3Jlc3RyaWN0aW9ucyIpCiAgICAgLmRvbmUoZnVuY3Rpb24oZmV0
Y2hlZF9wZXJtaXNzaW9ucykgewogICAgICAgc2VsZi5tb2RlbC5zZXQoe2lzX3VucmVzdHJpY3Rl
ZDp0cnVlfSk7CiAgICAgICBzZWxmLnNob3dQZXJtaXNzaW9ucyh7ZmV0Y2hlZF9wZXJtaXNzaW9u
czpmZXRjaGVkX3Blcm1pc3Npb25zfSkKQEAgLTIzMCw3ICsyMzAsNyBAQAogICAgIHZhciBtYW5h
Z2VfaWRzID0zRCB0aGlzLl9leHRyYWN0SWRzKHRoaXMubWFuYWdlU2VsZWN0T2JqZWN0LiRlbC5z
ZWxlY3Q9CjIoJ2RhdGEnKSk7CiAgICAgdmFyIG1vZGlmeV9pZHMgPTNEIHRoaXMuX2V4dHJhY3RJ
ZHModGhpcy5tb2RpZnlTZWxlY3RPYmplY3QuJGVsLnNlbGVjdD0KMignZGF0YScpKTsKPTIwCi0g
ICAgJC5wb3N0KCIvYXBpL2xpYnJhcmllcy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/YWN0
aW9uPTNEc2V0X3Blcm1pcz0Kc2lvbnMiLCB7ICdhY2Nlc3NfaWRzW10nOiBhY2Nlc3NfaWRzLCAn
YWRkX2lkc1tdJzogYWRkX2lkcywgJ21hbmFnZV9pZHNbXSc6PQogbWFuYWdlX2lkcywgJ21vZGlm
eV9pZHNbXSc6IG1vZGlmeV9pZHMsIH0gKQorICAgICQucG9zdCggKCB3aW5kb3cuZ2FsYXh5X2Nv
bmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgImFwaS9saWI9CnJhcmllcy8iICsg
c2VsZi5pZCArICIvcGVybWlzc2lvbnM/YWN0aW9uPTNEc2V0X3Blcm1pc3Npb25zIiwgeyAnYWNj
ZXNzX2lkcz0KW10nOiBhY2Nlc3NfaWRzLCAnYWRkX2lkc1tdJzogYWRkX2lkcywgJ21hbmFnZV9p
ZHNbXSc6IG1hbmFnZV9pZHMsICdtb2RpZnlfPQppZHNbXSc6IG1vZGlmeV9pZHMsIH0gKQogICAg
IC5kb25lKGZ1bmN0aW9uKGZldGNoZWRfcGVybWlzc2lvbnMpewogICAgICAgLy9mZXRjaCBkYXRh
c2V0IGFnYWluCiAgICAgICBzZWxmLnNob3dQZXJtaXNzaW9ucyh7ZmV0Y2hlZF9wZXJtaXNzaW9u
czpmZXRjaGVkX3Blcm1pc3Npb25zfSkKCmRpZmYgLXIgNDlkNTBiY2U0NjMyMDZmNDQ1MDYzZDJi
MjdiMmYyYjM5M2FkYmUxMSAtciAxY2NmNDBiZGFmYTE4NGIzYmUzMWFhNz0KYjFlY2RmY2UzYmM3
MDVlZmIgc3RhdGljL3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1kYXRhc2V0LXZpZXcuanMK
LS0tIGEvc3RhdGljL3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1kYXRhc2V0LXZpZXcuanMK
KysrIGIvc3RhdGljL3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1kYXRhc2V0LXZpZXcuanMK
QEAgLTExNiw3ICsxMTYsNyBAQAogICB9LAo9MjAKICAgZG93bmxvYWREYXRhc2V0OiBmdW5jdGlv
bigpewotICAgIHZhciB1cmwgPTNEICcvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy9kb3dubG9hZC91
bmNvbXByZXNzZWQnOworICAgIHZhciB1cmwgPTNEICggd2luZG93LmdhbGF4eV9jb25maWcgPyBn
YWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICdhcGk9Ci9saWJyYXJpZXMvZGF0YXNldHMvZG93
bmxvYWQvdW5jb21wcmVzc2VkJzsKICAgICB2YXIgZGF0YSA9M0QgeydsZF9pZHMnIDogdGhpcy5p
ZH07CiAgICAgdGhpcy5wcm9jZXNzRG93bmxvYWQodXJsLCBkYXRhKTsKICAgfSwKQEAgLTIzMiw3
ICsyMzIsNyBAQAo9MjAKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKICAgICBpZiAodGhpcy5vcHRp
b25zLmZldGNoZWRfcGVybWlzc2lvbnMgPTNEPTNEPTNEIHVuZGVmaW5lZCl7Ci0gICAgICAkLmdl
dCggIi9hcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9z
Y29wZT0zRD0KY3VycmVudCIpLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucykgewor
ICAgICAgJC5nZXQoICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3Qg
OiAnLycgKSArICJhcGkvbGk9CmJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1p
c3Npb25zP3Njb3BlPTNEY3VycmVudCIpLmRvbmUoZnVuY3Rpbz0KbihmZXRjaGVkX3Blcm1pc3Np
b25zKSB7CiAgICAgICAgIHNlbGYucHJlcGFyZVNlbGVjdEJveGVzKHtmZXRjaGVkX3Blcm1pc3Np
b25zOmZldGNoZWRfcGVybWlzc2lvbnMsID0KaXNfYWRtaW46aXNfYWRtaW59KTsKICAgICAgIH0p
LmZhaWwoZnVuY3Rpb24oKXsKICAgICAgICAgICBtb2RfdG9hc3RyLmVycm9yKCdBbiBlcnJvciBv
Y2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIGZldGNoIGRhPQp0YXNldCBwZXJtaXNzaW9ucy4n
KTsKQEAgLTI3Myw3ICsyNzMsNyBAQAogICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0NsaWNr
IHRvIHNlbGVjdCBhIHJvbGUnLAogICAgICAgICAgICAgICBjb250YWluZXI6IHNlbGYuJGVsLmZp
bmQoJyNhY2Nlc3NfcGVybScpLAogICAgICAgICAgICAgICBhamF4OiB7Ci0gICAgICAgICAgICAg
ICAgICB1cmw6ICIvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlz
c2lvbj0Kcz9zY29wZT0zRGF2YWlsYWJsZSIsCisgICAgICAgICAgICAgICAgICB1cmw6ICggd2lu
ZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKT0KICsgImFwaS9s
aWJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP3Njb3BlPTNEYXZh
aWxhYmxlIiwKICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnanNvbicsCiAgICAgICAgICAg
ICAgICAgICBxdWlldE1pbGxpczogMTAwLAogICAgICAgICAgICAgICAgICAgZGF0YTogZnVuY3Rp
b24gKHRlcm0sIHBhZ2UpIHsgLy8gcGFnZSBpcyB0aGUgb25lLWJhc2VkIHA9CmFnZSBudW1iZXIg
dHJhY2tlZCBieSBTZWxlY3QyCkBAIC0zMjAsNyArMzIwLDcgQEAKICAgICAgICAgICAgICAgcGxh
Y2Vob2xkZXI6ICdDbGljayB0byBzZWxlY3QgYSByb2xlJywKICAgICAgICAgICAgICAgY29udGFp
bmVyOiBzZWxmLiRlbC5maW5kKCcjbW9kaWZ5X3Blcm0nKSwKICAgICAgICAgICAgICAgYWpheDog
ewotICAgICAgICAgICAgICAgICAgdXJsOiAiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIiArIHNl
bGYuaWQgKyAiL3Blcm1pc3Npb249CnM/c2NvcGU9M0RhdmFpbGFibGUiLAorICAgICAgICAgICAg
ICAgICAgdXJsOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDog
Jy8nICk9CiArICJhcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNz
aW9ucz9zY29wZT0zRGF2YWlsYWJsZSIsCiAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2pz
b24nLAogICAgICAgICAgICAgICAgICAgcXVpZXRNaWxsaXM6IDEwMCwKICAgICAgICAgICAgICAg
ICAgIGRhdGE6IGZ1bmN0aW9uICh0ZXJtLCBwYWdlKSB7IC8vIHBhZ2UgaXMgdGhlIG9uZS1iYXNl
ZCBwPQphZ2UgbnVtYmVyIHRyYWNrZWQgYnkgU2VsZWN0MgpAQCAtMzY3LDcgKzM2Nyw3IEBACiAg
ICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQ2xpY2sgdG8gc2VsZWN0IGEgcm9sZScsCiAgICAg
ICAgICAgICAgIGNvbnRhaW5lcjogc2VsZi4kZWwuZmluZCgnI21hbmFnZV9wZXJtJyksCiAgICAg
ICAgICAgICAgIGFqYXg6IHsKLSAgICAgICAgICAgICAgICAgIHVybDogIi9hcGkvbGlicmFyaWVz
L2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9uPQpzP3Njb3BlPTNEYXZhaWxhYmxl
IiwKKyAgICAgICAgICAgICAgICAgIHVybDogKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4
eV9jb25maWcucm9vdCA6ICcvJyApPQogKyAiYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2Vs
Zi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFpbGFibGUiLAogICAgICAgICAgICAgICAg
ICAgZGF0YVR5cGU6ICdqc29uJywKICAgICAgICAgICAgICAgICAgIHF1aWV0TWlsbGlzOiAxMDAs
CiAgICAgICAgICAgICAgICAgICBkYXRhOiBmdW5jdGlvbiAodGVybSwgcGFnZSkgeyAvLyBwYWdl
IGlzIHRoZSBvbmUtYmFzZWQgcD0KYWdlIG51bWJlciB0cmFja2VkIGJ5IFNlbGVjdDIKQEAgLTQx
Myw3ICs0MTMsNyBAQAogICAgICAgICAgICAgc2VsZi5tYW5hZ2VTZWxlY3RPYmplY3QgPTNEIG5l
dyBtb2Rfc2VsZWN0LlZpZXcobWFuYWdlX3NlbGVjdF89Cm9wdGlvbnMpOwogICAgICAgICB9IGVs
c2UgeyAvLyBOb24tYWRtaW5zIGhhdmUgc2VsZWN0IHdpdGggcHJlLWxvYWRlZCBvcHRpb25zCiAg
ICAgICAgICAgICB2YXIgdGVtcGxhdGUgPTNEIHNlbGYudGVtcGxhdGVBY2Nlc3NTZWxlY3QoKTsK
LSAgICAgICAgICAgICQuZ2V0KCAiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQg
KyAiL3Blcm1pc3Npb25zP3NjPQpvcGU9M0RhdmFpbGFibGUiLCBmdW5jdGlvbiggZGF0YSApIHsK
KyAgICAgICAgICAgICQuZ2V0KCAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZp
Zy5yb290IDogJy8nICkgKyAiPQphcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsg
Ii9wZXJtaXNzaW9ucz9zY29wZT0zRGF2YWlsYWJsZSIsIGZ1bmM9CnRpb24oIGRhdGEgKSB7CiAg
ICAgICAgICAgICAgICAgJCgnLmFjY2Vzc19wZXJtJykuaHRtbCh0ZW1wbGF0ZSh7b3B0aW9uczpk
YXRhLnJvbGVzfSkpOwogICAgICAgICAgICAgICAgIHNlbGYuYWNjZXNzU2VsZWN0T2JqZWN0ID0z
RCAkKCcjYWNjZXNzX3NlbGVjdCcpLnNlbGVjdDIoKTsKICAgICAgICAgICAgIH0pLmZhaWwoZnVu
Y3Rpb24oKSB7CkBAIC00MzYsNyArNDM2LDcgQEAKPTIwCiAgIG1ha2VEYXRhc2V0UHJpdmF0ZTog
ZnVuY3Rpb24oKXsKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKLSAgICAkLnBvc3QoIi9hcGkvbGli
cmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9hY3Rpb249M0RtPQph
a2VfcHJpdmF0ZSIpLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucykgeworICAgICQu
cG9zdCggKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyAp
ICsgImFwaS9saWI9CnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/
YWN0aW9uPTNEbWFrZV9wcml2YXRlIikuZG9uZShmdT0KbmN0aW9uKGZldGNoZWRfcGVybWlzc2lv
bnMpIHsKICAgICAgIHNlbGYubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6ZmFsc2V9KTsKICAg
ICAgIHNlbGYuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Npb25zOmZldGNoZWRfcGVy
bWlzc2lvbnN9KQogICAgICAgbW9kX3RvYXN0ci5zdWNjZXNzKCdUaGUgZGF0YXNldCBpcyBub3cg
cHJpdmF0ZSB0byB5b3UuJyk7CkBAIC00NDcsNyArNDQ3LDcgQEAKPTIwCiAgIHJlbW92ZURhdGFz
ZXRSZXN0cmljdGlvbnM6IGZ1bmN0aW9uKCl7CiAgICAgdmFyIHNlbGYgPTNEIHRoaXM7Ci0gICAg
JC5wb3N0KCIvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lv
bnM/YWN0aW9uPTNEcj0KZW1vdmVfcmVzdHJpY3Rpb25zIikKKyAgICAkLnBvc3QoICggd2luZG93
LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICJhcGkvbGliPQpy
YXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHJlbW92
ZV9yZXN0cmljdGlvbnMiKQogICAgIC5kb25lKGZ1bmN0aW9uKGZldGNoZWRfcGVybWlzc2lvbnMp
IHsKICAgICAgIHNlbGYubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6dHJ1ZX0pOwogICAgICAg
c2VsZi5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0Y2hlZF9wZXJtaXNz
aW9uc30pCkBAIC00NzgsNyArNDc4LDcgQEAKICAgICAgIG1vZGlmeV9pZHMucHVzaChtb2RpZnlf
cm9sZXNbaV0uaWQpOwogICAgIH07Cj0yMAotICAgICQucG9zdCgiL2FwaS9saWJyYXJpZXMvZGF0
YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHM9CmV0X3Blcm1pc3Np
b25zIiwgeyAnYWNjZXNzX2lkc1tdJzogYWNjZXNzX2lkcywgJ21hbmFnZV9pZHNbXSc6IG1hbmFn
ZV9pZHMsID0KJ21vZGlmeV9pZHNbXSc6IG1vZGlmeV9pZHMsIH0gKQorICAgICQucG9zdCggKCB3
aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgImFwaS9s
aWI9CnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/YWN0aW9uPTNE
c2V0X3Blcm1pc3Npb25zIiwgeyAnYT0KY2Nlc3NfaWRzW10nOiBhY2Nlc3NfaWRzLCAnbWFuYWdl
X2lkc1tdJzogbWFuYWdlX2lkcywgJ21vZGlmeV9pZHNbXSc6IG1vZGlmPQp5X2lkcywgfSApCiAg
ICAgLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9ucyl7CiAgICAgICAvL2ZldGNoIGRh
dGFzZXQgYWdhaW4KICAgICAgIHNlbGYuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Np
b25zOmZldGNoZWRfcGVybWlzc2lvbnN9KQoKZGlmZiAtciA0OWQ1MGJjZTQ2MzIwNmY0NDUwNjNk
MmIyN2IyZjJiMzkzYWRiZTExIC1yIDFjY2Y0MGJkYWZhMTg0YjNiZTMxYWE3PQpiMWVjZGZjZTNi
YzcwNWVmYiBzdGF0aWMvc2NyaXB0cy9tdmMvbGlicmFyeS9saWJyYXJ5LWZvbGRlci12aWV3Lmpz
Ci0tLSBhL3N0YXRpYy9zY3JpcHRzL212Yy9saWJyYXJ5L2xpYnJhcnktZm9sZGVyLXZpZXcuanMK
KysrIGIvc3RhdGljL3NjcmlwdHMvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xkZXItdmlldy5qcwpA
QCAtODEsNyArODEsNyBAQAo9MjAKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKICAgICBpZiAodGhp
cy5vcHRpb25zLmZldGNoZWRfcGVybWlzc2lvbnMgPTNEPTNEPTNEIHVuZGVmaW5lZCl7Ci0gICAg
ICAkLmdldCggIi9hcGkvZm9sZGVycy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9
M0RjdXJyZW50IikuZD0Kb25lKGZ1bmN0aW9uKGZldGNoZWRfcGVybWlzc2lvbnMpIHsKKyAgICAg
ICQuZ2V0KCAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8n
ICkgKyAiYXBpL2ZvPQpsZGVycy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9M0Rj
dXJyZW50IikuZG9uZShmdW5jdGlvbihmZXRjaGVkX3A9CmVybWlzc2lvbnMpIHsKICAgICAgICAg
c2VsZi5wcmVwYXJlU2VsZWN0Qm94ZXMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0Y2hlZF9wZXJt
aXNzaW9uc30pOwogICAgICAgfSkuZmFpbChmdW5jdGlvbigpewogICAgICAgICAgIG1vZF90b2Fz
dHIuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gZmV0Y2ggZm89
CmxkZXIgcGVybWlzc2lvbnMuJyk7CkBAIC0xMjUsNyArMTI1LDcgQEAKICAgICAgIHBsYWNlaG9s
ZGVyOiAnQ2xpY2sgdG8gc2VsZWN0IGEgcm9sZScsCiAgICAgICBjb250YWluZXI6IHNlbGYuJGVs
LmZpbmQoJyMnICsgaWQpLAogICAgICAgYWpheDogewotICAgICAgICAgIHVybDogIi9hcGkvZm9s
ZGVycy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFpbGFibGU9CiIsCisg
ICAgICAgICAgdXJsOiAoIHdpbmRvdy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290
IDogJy8nICkgKyAiYXBpLz0KZm9sZGVycy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2Nv
cGU9M0RhdmFpbGFibGUiLAogICAgICAgICAgIGRhdGFUeXBlOiAnanNvbicsCiAgICAgICAgICAg
cXVpZXRNaWxsaXM6IDEwMCwKICAgICAgICAgICBkYXRhOiBmdW5jdGlvbiAodGVybSwgcGFnZSkg
eyAvLyBwYWdlIGlzIHRoZSBvbmUtYmFzZWQgcGFnZSBudW1iPQplciB0cmFja2VkIGJ5IFNlbGVj
dDIKQEAgLTE5NSw3ICsxOTUsNyBAQAogICAgIHZhciBtYW5hZ2VfaWRzID0zRCB0aGlzLl9leHRy
YWN0SWRzKHRoaXMubWFuYWdlU2VsZWN0T2JqZWN0LiRlbC5zZWxlY3Q9CjIoJ2RhdGEnKSk7CiAg
ICAgdmFyIG1vZGlmeV9pZHMgPTNEIHRoaXMuX2V4dHJhY3RJZHModGhpcy5tb2RpZnlTZWxlY3RP
YmplY3QuJGVsLnNlbGVjdD0KMignZGF0YScpKTsKPTIwCi0gICAgJC5wb3N0KCIvYXBpL2ZvbGRl
cnMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHNldF9wZXJtaXNzaT0Kb25z
IiwgeyAnYWRkX2lkc1tdJzogYWRkX2lkcywgJ21hbmFnZV9pZHNbXSc6IG1hbmFnZV9pZHMsICdt
b2RpZnlfaWRzW10nOiBtPQpvZGlmeV9pZHMsIH0gKQorICAgICQucG9zdCggKCB3aW5kb3cuZ2Fs
YXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgImFwaS9mb2w9CmRlcnMv
IiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHNldF9wZXJtaXNzaW9ucyIsIHsg
J2FkZF9pZHNbXSc6ID0KYWRkX2lkcywgJ21hbmFnZV9pZHNbXSc6IG1hbmFnZV9pZHMsICdtb2Rp
ZnlfaWRzW10nOiBtb2RpZnlfaWRzLCB9ICkKICAgICAuZG9uZShmdW5jdGlvbihmZXRjaGVkX3Bl
cm1pc3Npb25zKXsKICAgICAgIC8vZmV0Y2ggZGF0YXNldCBhZ2FpbgogICAgICAgc2VsZi5zaG93
UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0Y2hlZF9wZXJtaXNzaW9uc30pCgpk
aWZmIC1yIDQ5ZDUwYmNlNDYzMjA2ZjQ0NTA2M2QyYjI3YjJmMmIzOTNhZGJlMTEgLXIgMWNjZjQw
YmRhZmExODRiM2JlMzFhYTc9CmIxZWNkZmNlM2JjNzA1ZWZiIHN0YXRpYy9zY3JpcHRzL212Yy9s
aWJyYXJ5L2xpYnJhcnktZm9sZGVydG9vbGJhci12aWV3LmpzCi0tLSBhL3N0YXRpYy9zY3JpcHRz
L212Yy9saWJyYXJ5L2xpYnJhcnktZm9sZGVydG9vbGJhci12aWV3LmpzCisrKyBiL3N0YXRpYy9z
Y3JpcHRzL212Yy9saWJyYXJ5L2xpYnJhcnktZm9sZGVydG9vbGJhci12aWV3LmpzCkBAIC0yOTQs
NyArMjk0LDcgQEAKICAgICAgICAgICAgICAgICBkYXRhc2V0X2lkcy5wdXNoKCB0aGlzLnBhcmVu
dEVsZW1lbnQucGFyZW50RWxlbWVudC5pZCApOwogICAgICAgICAgICAgfQogICAgICAgICB9ICk7
Ci0gICAgdmFyIHVybCA9M0QgJy9hcGkvbGlicmFyaWVzL2RhdGFzZXRzL2Rvd25sb2FkLycgKyBm
b3JtYXQ7CisgICAgdmFyIHVybCA9M0QgKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9j
b25maWcucm9vdCA6ICcvJyApICsgJ2FwaT0KL2xpYnJhcmllcy9kYXRhc2V0cy9kb3dubG9hZC8n
ICsgZm9ybWF0OwogICAgIHZhciBkYXRhID0zRCB7ICdsZF9pZHMnIDogZGF0YXNldF9pZHMgfTsK
ICAgICB0aGlzLnByb2Nlc3NEb3dubG9hZCggdXJsLCBkYXRhLCAnZ2V0JyApOwogICB9LApAQCAt
Mzg2LDcgKzM4Niw3IEBACiAgIGZldGNoRXh0QW5kR2Vub21lczogZnVuY3Rpb24oKXsKICAgICB2
YXIgdGhhdCA9M0QgdGhpczsKICAgICBtb2RfdXRpbHMuZ2V0KHsKLSAgICAgICAgdXJsICAgICAg
OiAgZ2FsYXh5X2NvbmZpZy5yb290ICsgImFwaS9kYXRhdHlwZXM/ZXh0ZW5zaW9uX29ubHk9M0RG
PQphbHNlIiwKKyAgICAgICAgdXJsICAgICAgOiAgKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdh
bGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgPQoiYXBpL2RhdGF0eXBlcz9leHRlbnNpb25fb25s
eT0zREZhbHNlIiwKICAgICAgICAgc3VjY2VzcyAgOiAgZnVuY3Rpb24oIGRhdGF0eXBlcyApIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGRhdGF0eXBlcykgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoYXQubGlzdF9leHRlbnNpb25zLnB1c2goewpAQCAtNDAz
LDcgKzQwMyw3IEBACiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgIH0pOwogICAgIG1vZF91
dGlscy5nZXQoewotICAgICAgICB1cmw6ICAgIGdhbGF4eV9jb25maWcucm9vdCArICJhcGkvZ2Vu
b21lcyIsCisgICAgICAgIHVybDogICAgKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9j
b25maWcucm9vdCA6ICcvJyApICsgImFwaT0KL2dlbm9tZXMiLAogICAgICAgICBzdWNjZXNzOiBm
dW5jdGlvbiggZ2Vub21lcyApIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICgga2V5IGluIGdl
bm9tZXMgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Lmxpc3RfZ2Vub21lcy5wdXNo
KHsKQEAgLTY4OSw3ICs2ODksNyBAQAogICAgICAgZm9yICggdmFyIGkgPTNEIGhpc3RvcnlfZGF0
YXNldF9pZHMubGVuZ3RoIC0gMTsgaSA+PTNEIDA7IGktLSApIHsKICAgICAgICAgaGlzdG9yeV9k
YXRhc2V0X2lkID0zRCBoaXN0b3J5X2RhdGFzZXRfaWRzW2ldOwogICAgICAgICB2YXIgZm9sZGVy
X2l0ZW0gPTNEIG5ldyBtb2RfbGlicmFyeV9tb2RlbC5JdGVtKCk7Ci0gICAgICAgIGZvbGRlcl9p
dGVtLnVybCA9M0QgJy9hcGkvZm9sZGVycy8nICsgdGhpcy5vcHRpb25zLmlkICsgJy9jb250ZW50
cz0KJzsKKyAgICAgICAgZm9sZGVyX2l0ZW0udXJsID0zRCAoIHdpbmRvdy5nYWxheHlfY29uZmln
ID8gZ2FsYXh5X2NvbmZpZy5yb290IDogPQonLycgKSArICdhcGkvZm9sZGVycy8nICsgdGhpcy5v
cHRpb25zLmlkICsgJy9jb250ZW50cyc7CiAgICAgICAgIGZvbGRlcl9pdGVtLnNldCggeyAnZnJv
bV9oZGFfaWQnOmhpc3RvcnlfZGF0YXNldF9pZCB9ICk7CiAgICAgICAgIGhkYXNfdG9fYWRkLnB1
c2goIGZvbGRlcl9pdGVtICk7CiAgICAgICB9CkBAIC03NDksNyArNzQ5LDcgQEAKICAgICAgIH0K
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICB2YXIgcHJvbWlzZSA9M0QgJC53aGVuKCAk
LnBvc3QoICcvYXBpL2xpYnJhcmllcy9kYXRhc2V0cz9lbmNvZGVkX2ZvbGRlPQpyX2lkPTNEJyAr
IHRoYXQuaWQgKz0yMAorICAgIHZhciBwcm9taXNlID0zRCAkLndoZW4oICQucG9zdCggKCB3aW5k
b3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWc9Ci5yb290IDogJy8nICkgKyAnYXBpL2xp
YnJhcmllcy9kYXRhc2V0cz9lbmNvZGVkX2ZvbGRlcl9pZD0zRCcgKyB0aGF0LmlkICs9MjAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJnNv
dXJjZT0zRCcgKyBvcHRpPQpvbnMuc291cmNlICsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJnBhdGg9M0QnICsgcG9wcGVkPQpfaXRlbSAr
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JyZmaWxlX3R5cGU9M0QnICsgbz0KcHRpb25zLmZpbGVfdHlwZSArCkBAIC03ODgsNyArNzg4LDcg
QEAKICAgICAgIH0KICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICB2YXIgcHJvbWlzZSA9
M0QgJC53aGVuKCAkLnBvc3QoICcvYXBpL2xpYnJhcmllcy9kYXRhc2V0cz9lbmNvZGVkX2ZvbGRl
PQpyX2lkPTNEJyArIHRoYXQuaWQgKworICAgIHZhciBwcm9taXNlID0zRCAkLndoZW4oICQucG9z
dCggKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWc9Ci5yb290IDogJy8nICkg
KyAnYXBpL2xpYnJhcmllcy9kYXRhc2V0cz9lbmNvZGVkX2ZvbGRlcl9pZD0zRCcgKyB0aGF0Lmlk
ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnJnNvdXJjZT0zRCcgKyBvPQpwdGlvbnMuc291cmNlICsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJnBhdGg9M0QnICsgcG9w
PQpwZWRfaXRlbSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyZwcmVzZXJ2ZV9kaXJzPQo9M0QnICsgb3B0aW9ucy5wcmVzZXJ2ZV9k
aXJzICsKCmRpZmYgLXIgNDlkNTBiY2U0NjMyMDZmNDQ1MDYzZDJiMjdiMmYyYjM5M2FkYmUxMSAt
ciAxY2NmNDBiZGFmYTE4NGIzYmUzMWFhNz0KYjFlY2RmY2UzYmM3MDVlZmIgc3RhdGljL3Njcmlw
dHMvbXZjL2xpYnJhcnkvbGlicmFyeS1saWJyYXJ5LXZpZXcuanMKLS0tIGEvc3RhdGljL3Njcmlw
dHMvbXZjL2xpYnJhcnkvbGlicmFyeS1saWJyYXJ5LXZpZXcuanMKKysrIGIvc3RhdGljL3Njcmlw
dHMvbXZjL2xpYnJhcnkvbGlicmFyeS1saWJyYXJ5LXZpZXcuanMKQEAgLTg3LDcgKzg3LDcgQEAK
PTIwCiAgICAgdmFyIHNlbGYgPTNEIHRoaXM7CiAgICAgaWYgKHRoaXMub3B0aW9ucy5mZXRjaGVk
X3Blcm1pc3Npb25zID0zRD0zRD0zRCB1bmRlZmluZWQpewotICAgICAgJC5nZXQoICIvYXBpL2xp
YnJhcmllcy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9M0RjdXJyZW50Iik9Ci5k
b25lKGZ1bmN0aW9uKGZldGNoZWRfcGVybWlzc2lvbnMpIHsKKyAgICAgICQuZ2V0KCAoIHdpbmRv
dy5nYWxheHlfY29uZmlnID8gZ2FsYXh5X2NvbmZpZy5yb290IDogJy8nICkgKyAiYXBpL2xpPQpi
cmFyaWVzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9zY29wZT0zRGN1cnJlbnQiKS5kb25l
KGZ1bmN0aW9uKGZldGNoZWQ9Cl9wZXJtaXNzaW9ucykgewogICAgICAgICBzZWxmLnByZXBhcmVT
ZWxlY3RCb3hlcyh7ZmV0Y2hlZF9wZXJtaXNzaW9uczpmZXRjaGVkX3Blcm1pc3Npb25zfSk7CiAg
ICAgICB9KS5mYWlsKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgbW9kX3RvYXN0ci5lcnJvcignQW4g
ZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBmZXRjaCBsaT0KYnJhcnkgcGVybWlz
c2lvbnMuJyk7CkBAIC0xMzQsNyArMTM0LDcgQEAKICAgICAgIHBsYWNlaG9sZGVyOiAnQ2xpY2sg
dG8gc2VsZWN0IGEgcm9sZScsCiAgICAgICBjb250YWluZXI6IHNlbGYuJGVsLmZpbmQoJyMnICsg
aWQpLAogICAgICAgYWpheDogewotICAgICAgICAgIHVybDogIi9hcGkvbGlicmFyaWVzLyIgKyBz
ZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9zY29wZT0zRGF2YWlsYWI9CmxlJmlzX2xpYnJhcnlfYWNj
ZXNzPTNEIiArIGlzX2xpYnJhcnlfYWNjZXNzLAorICAgICAgICAgIHVybDogKCB3aW5kb3cuZ2Fs
YXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcucm9vdCA6ICcvJyApICsgImFwaS89CmxpYnJhcmll
cy8iICsgc2VsZi5pZCArICIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFpbGFibGUmaXNfbGlicmFy
eV9hY2Nlc3M9Cj0zRCIgKyBpc19saWJyYXJ5X2FjY2VzcywKICAgICAgICAgICBkYXRhVHlwZTog
J2pzb24nLAogICAgICAgICAgIHF1aWV0TWlsbGlzOiAxMDAsCiAgICAgICAgICAgZGF0YTogZnVu
Y3Rpb24gKHRlcm0sIHBhZ2UpIHsgLy8gcGFnZSBpcyB0aGUgb25lLWJhc2VkIHBhZ2UgbnVtYj0K
ZXIgdHJhY2tlZCBieSBTZWxlY3QyCkBAIC0xOTMsNyArMTkzLDcgQEAKPTIwCiAgIG1ha2VEYXRh
c2V0UHJpdmF0ZTogZnVuY3Rpb24oKXsKICAgICB2YXIgc2VsZiA9M0QgdGhpczsKLSAgICAkLnBv
c3QoIi9hcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIgKyBzZWxmLmlkICsgIi9wZXJtaXNzaW9ucz9h
Y3Rpb249M0RtPQpha2VfcHJpdmF0ZSIpLmRvbmUoZnVuY3Rpb24oZmV0Y2hlZF9wZXJtaXNzaW9u
cykgeworICAgICQucG9zdCggKCB3aW5kb3cuZ2FsYXh5X2NvbmZpZyA/IGdhbGF4eV9jb25maWcu
cm9vdCA6ICcvJyApICsgImFwaS9saWI9CnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCArICIv
cGVybWlzc2lvbnM/YWN0aW9uPTNEbWFrZV9wcml2YXRlIikuZG9uZShmdT0KbmN0aW9uKGZldGNo
ZWRfcGVybWlzc2lvbnMpIHsKICAgICAgIHNlbGYubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6
ZmFsc2V9KTsKICAgICAgIHNlbGYuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Npb25z
OmZldGNoZWRfcGVybWlzc2lvbnN9KQogICAgICAgbW9kX3RvYXN0ci5zdWNjZXNzKCdUaGUgZGF0
YXNldCBpcyBub3cgcHJpdmF0ZSB0byB5b3UuJyk7CkBAIC0yMDQsNyArMjA0LDcgQEAKPTIwCiAg
IHJlbW92ZURhdGFzZXRSZXN0cmljdGlvbnM6IGZ1bmN0aW9uKCl7CiAgICAgdmFyIHNlbGYgPTNE
IHRoaXM7Ci0gICAgJC5wb3N0KCIvYXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iICsgc2VsZi5pZCAr
ICIvcGVybWlzc2lvbnM/YWN0aW9uPTNEcj0KZW1vdmVfcmVzdHJpY3Rpb25zIikKKyAgICAkLnBv
c3QoICggd2luZG93LmdhbGF4eV9jb25maWcgPyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSAr
ICJhcGkvbGliPQpyYXJpZXMvZGF0YXNldHMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2Fj
dGlvbj0zRHJlbW92ZV9yZXN0cmljdGlvbnMiKQogICAgIC5kb25lKGZ1bmN0aW9uKGZldGNoZWRf
cGVybWlzc2lvbnMpIHsKICAgICAgIHNlbGYubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6dHJ1
ZX0pOwogICAgICAgc2VsZi5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0
Y2hlZF9wZXJtaXNzaW9uc30pCkBAIC0yMzAsNyArMjMwLDcgQEAKICAgICB2YXIgbWFuYWdlX2lk
cyA9M0QgdGhpcy5fZXh0cmFjdElkcyh0aGlzLm1hbmFnZVNlbGVjdE9iamVjdC4kZWwuc2VsZWN0
PQoyKCdkYXRhJykpOwogICAgIHZhciBtb2RpZnlfaWRzID0zRCB0aGlzLl9leHRyYWN0SWRzKHRo
aXMubW9kaWZ5U2VsZWN0T2JqZWN0LiRlbC5zZWxlY3Q9CjIoJ2RhdGEnKSk7Cj0yMAotICAgICQu
cG9zdCgiL2FwaS9saWJyYXJpZXMvIiArIHNlbGYuaWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0z
RHNldF9wZXJtaXM9CnNpb25zIiwgeyAnYWNjZXNzX2lkc1tdJzogYWNjZXNzX2lkcywgJ2FkZF9p
ZHNbXSc6IGFkZF9pZHMsICdtYW5hZ2VfaWRzW10nOj0KIG1hbmFnZV9pZHMsICdtb2RpZnlfaWRz
W10nOiBtb2RpZnlfaWRzLCB9ICkKKyAgICAkLnBvc3QoICggd2luZG93LmdhbGF4eV9jb25maWcg
PyBnYWxheHlfY29uZmlnLnJvb3QgOiAnLycgKSArICJhcGkvbGliPQpyYXJpZXMvIiArIHNlbGYu
aWQgKyAiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHNldF9wZXJtaXNzaW9ucyIsIHsgJ2FjY2Vzc19p
ZHM9CltdJzogYWNjZXNzX2lkcywgJ2FkZF9pZHNbXSc6IGFkZF9pZHMsICdtYW5hZ2VfaWRzW10n
OiBtYW5hZ2VfaWRzLCAnbW9kaWZ5Xz0KaWRzW10nOiBtb2RpZnlfaWRzLCB9ICkKICAgICAuZG9u
ZShmdW5jdGlvbihmZXRjaGVkX3Blcm1pc3Npb25zKXsKICAgICAgIC8vZmV0Y2ggZGF0YXNldCBh
Z2FpbgogICAgICAgc2VsZi5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6ZmV0
Y2hlZF9wZXJtaXNzaW9uc30pCgpkaWZmIC1yIDQ5ZDUwYmNlNDYzMjA2ZjQ0NTA2M2QyYjI3YjJm
MmIzOTNhZGJlMTEgLXIgMWNjZjQwYmRhZmExODRiM2JlMzFhYTc9CmIxZWNkZmNlM2JjNzA1ZWZi
IHN0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvbGlicmFyeS9saWJyYXJ5LWRhdGFzZXQtdmlldy5q
cwotLS0gYS9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2xpYnJhcnkvbGlicmFyeS1kYXRhc2V0
LXZpZXcuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9saWJyYXJ5L2xpYnJhcnkt
ZGF0YXNldC12aWV3LmpzCkBAIC0xLDEgKzEsMSBAQAotZGVmaW5lKFsibGlicy90b2FzdHIiLCJt
dmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsIiwibXZjL3VpL3VpLXNlbGVjdCJdLGZ1bmM9CnRpb24o
ZCxjLGIpe3ZhciBhPTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2VsOiIjY2VudGVyIixtb2RlbDpu
dWxsLG9wdGlvbnM6ez0KfSxldmVudHM6eyJjbGljayAudG9vbGJ0bl9tb2RpZnlfZGF0YXNldCI6
ImVuYWJsZU1vZGlmaWNhdGlvbiIsImNsaWNrIC50b29sPQpidG5fY2FuY2VsX21vZGlmaWNhdGlv
bnMiOiJyZW5kZXIiLCJjbGljayAudG9vbGJ0bi1kb3dubG9hZC1kYXRhc2V0IjoiZG93bmw9Cm9h
ZERhdGFzZXQiLCJjbGljayAudG9vbGJ0bi1pbXBvcnQtZGF0YXNldCI6ImltcG9ydEludG9IaXN0
b3J5IiwiY2xpY2sgLnRvbz0KbGJ0bi1zaGFyZS1kYXRhc2V0Ijoic2hhcmVEYXRhc2V0IiwiY2xp
Y2sgLmJ0bi1jb3B5LWxpbmstdG8tY2xpcGJvYXJkIjoiY29wPQp5VG9DbGlwYm9hcmQiLCJjbGlj
ayAuYnRuLW1ha2UtcHJpdmF0ZSI6Im1ha2VEYXRhc2V0UHJpdmF0ZSIsImNsaWNrIC5idG4tcmU9
Cm1vdmUtcmVzdHJpY3Rpb25zIjoicmVtb3ZlRGF0YXNldFJlc3RyaWN0aW9ucyIsImNsaWNrIC50
b29sYnRuX3NhdmVfcGVybWlzcz0KaW9ucyI6InNhdmVQZXJtaXNzaW9ucyIsImNsaWNrIC50b29s
YnRuX3NhdmVfbW9kaWZpY2F0aW9ucyI6ImNvbWluZ1Nvb24iLH0sPQppbml0aWFsaXplOmZ1bmN0
aW9uKGUpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxlKTtpZih0aGlzLm9w
dGk9Cm9ucy5pZCl7dGhpcy5mZXRjaERhdGFzZXQoKX19LGZldGNoRGF0YXNldDpmdW5jdGlvbihl
KXt0aGlzLm9wdGlvbnM9M0RfLmV4dD0KZW5kKHRoaXMub3B0aW9ucyxlKTt0aGlzLm1vZGVsPTNE
bmV3IGMuSXRlbSh7aWQ6dGhpcy5vcHRpb25zLmlkfSk7dmFyIGY9M0R0PQpoaXM7dGhpcy5tb2Rl
bC5mZXRjaCh7c3VjY2VzczpmdW5jdGlvbigpe2lmKGYub3B0aW9ucy5zaG93X3Blcm1pc3Npb25z
KXtmLnM9Cmhvd1Blcm1pc3Npb25zKCl9ZWxzZXtpZihmLm9wdGlvbnMuc2hvd192ZXJzaW9uKXtm
LmZldGNoVmVyc2lvbigpfWVsc2V7Zi5yZT0KbmRlcigpfX19LGVycm9yOmZ1bmN0aW9uKGgsZyl7
aWYodHlwZW9mIGcucmVzcG9uc2VKU09OIT0zRD0zRCJ1bmRlZmluZWQiKXtkPQouZXJyb3IoZy5y
ZXNwb25zZUpTT04uZXJyX21zZysiIENsaWNrIHRoaXMgdG8gZ28gYmFjay4iLCIiLHtvbmNsaWNr
OmZ1bmN0aW89Cm4oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX19KX1l
bHNle2QuZXJyb3IoIkFuIGVycm9yIG9jdXJyZT0KZC4gQ2xpY2sgdGhpcyB0byBnbyBiYWNrLiIs
IiIse29uY2xpY2s6ZnVuY3Rpb24oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfPQpyb3V0ZXIu
YmFjaygpfX0pfX19KX0scmVuZGVyOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5k
KHRoaXMub3B0aW89Cm5zLGUpOyQoIi50b29sdGlwIikucmVtb3ZlKCk7dmFyIGY9M0R0aGlzLnRl
bXBsYXRlRGF0YXNldCgpO3RoaXMuJGVsLmh0bWwoZj0KKHtpdGVtOnRoaXMubW9kZWx9KSk7JCgi
LnBlZWsiKS5odG1sKHRoaXMubW9kZWwuZ2V0KCJwZWVrIikpOyQoIiNjZW50ZXIgW2RhPQp0YS10
b2dnbGVdIikudG9vbHRpcCgpfSxmZXRjaFZlcnNpb246ZnVuY3Rpb24oZSl7dGhpcy5vcHRpb25z
PTNEXy5leHRlbmQodGg9CmlzLm9wdGlvbnMsZSk7dGhhdD0zRHRoaXM7aWYoIXRoaXMub3B0aW9u
cy5sZGRhX2lkKXt0aGlzLnJlbmRlcigpO2QuZXJyb3IoIj0KTGlicmFyeSBkYXRhc2V0IHZlcnNp
b24gcmVxdWVzdGVkIGJ1dCBubyBpZCBwcm92aWRlZC4iKX1lbHNle3RoaXMubGRkYT0zRG5lPQp3
IGMuTGRkYSh7aWQ6dGhpcy5vcHRpb25zLmxkZGFfaWR9KTt0aGlzLmxkZGEudXJsPTNEdGhpcy5s
ZGRhLnVybFJvb3QrdGhpcy49Cm1vZGVsLmlkKyIvdmVyc2lvbnMvIit0aGlzLmxkZGEuaWQ7dGhp
cy5sZGRhLmZldGNoKHtzdWNjZXNzOmZ1bmN0aW9uKCl7dGhhdD0KLnJlbmRlclZlcnNpb24oKX0s
ZXJyb3I6ZnVuY3Rpb24oZyxmKXtpZih0eXBlb2YgZi5yZXNwb25zZUpTT04hPTNEPTNEInVuZGVm
PQppbmVkIil7ZC5lcnJvcihmLnJlc3BvbnNlSlNPTi5lcnJfbXNnKX1lbHNle2QuZXJyb3IoIkFu
IGVycm9yIG9jdXJyZWQuIil9fX09Cil9fSxyZW5kZXJWZXJzaW9uOmZ1bmN0aW9uKCl7JCgiLnRv
b2x0aXAiKS5yZW1vdmUoKTt2YXIgZT0zRHRoaXMudGVtcGxhdGVWZT0KcnNpb24oKTt0aGlzLiRl
bC5odG1sKGUoe2l0ZW06dGhpcy5tb2RlbCxsZGRhOnRoaXMubGRkYX0pKTskKCIucGVlayIpLmh0
bWwoPQp0aGlzLmxkZGEuZ2V0KCJwZWVrIikpfSxlbmFibGVNb2RpZmljYXRpb246ZnVuY3Rpb24o
KXskKCIudG9vbHRpcCIpLnJlbW92ZSg9Cik7dmFyIGU9M0R0aGlzLnRlbXBsYXRlTW9kaWZ5RGF0
YXNldCgpO3RoaXMuJGVsLmh0bWwoZSh7aXRlbTp0aGlzLm1vZGVsfSkpOz0KJCgiLnBlZWsiKS5o
dG1sKHRoaXMubW9kZWwuZ2V0KCJwZWVrIikpOyQoIiNjZW50ZXIgW2RhdGEtdG9nZ2xlXSIpLnRv
b2x0aXAoPQopfSxkb3dubG9hZERhdGFzZXQ6ZnVuY3Rpb24oKXt2YXIgZT0zRCIvYXBpL2xpYnJh
cmllcy9kYXRhc2V0cy9kb3dubG9hZC91bmM9Cm9tcHJlc3NlZCI7dmFyIGY9M0R7bGRfaWRzOnRo
aXMuaWR9O3RoaXMucHJvY2Vzc0Rvd25sb2FkKGUsZil9LHByb2Nlc3NEb3dubD0Kb2FkOmZ1bmN0
aW9uKGYsZyxoKXtpZihmJiZnKXtnPTNEdHlwZW9mIGc9M0Q9M0Qic3RyaW5nIj9nOiQucGFyYW0o
Zyk7dmFyIGU9Cj0zRCIiOyQuZWFjaChnLnNwbGl0KCImIiksZnVuY3Rpb24oKXt2YXIgaT0zRHRo
aXMuc3BsaXQoIj0zRCIpO2UrPTNEJzxpbnB1dD0KIHR5cGU9M0QiaGlkZGVuIiBuYW1lPTNEIicr
aVswXSsnIiB2YWx1ZT0zRCInK2lbMV0rJyIgLz4nfSk7JCgnPGZvcm0gYWN0aW9uPQo9M0QiJytm
KyciIG1ldGhvZD0zRCInKyhofHwicG9zdCIpKyciPicrZSsiPC9mb3JtPiIpLmFwcGVuZFRvKCJi
b2R5Iikuc3VibWk9CnQoKS5yZW1vdmUoKTtkLmluZm8oIllvdXIgZG93bmxvYWQgd2lsbCBiZWdp
biBzb29uLiIpfX0saW1wb3J0SW50b0hpc3Rvcnk6Zj0KdW5jdGlvbigpe3RoaXMucmVmcmVzaFVz
ZXJIaXN0b3JpZXNMaXN0KGZ1bmN0aW9uKGUpe3ZhciBmPTNEZS50ZW1wbGF0ZUJ1bGtJPQptcG9y
dEluTW9kYWwoKTtlLm1vZGFsPTNER2FsYXh5Lm1vZGFsO2UubW9kYWwuc2hvdyh7Y2xvc2luZ19l
dmVudHM6dHJ1ZSx0aXQ9CmxlOiJJbXBvcnQgaW50byBIaXN0b3J5Iixib2R5OmYoe2hpc3Rvcmll
czplLmhpc3Rvcmllcy5tb2RlbHN9KSxidXR0b25zOntJbT0KcG9ydDpmdW5jdGlvbigpe2UuaW1w
b3J0Q3VycmVudEludG9IaXN0b3J5KCl9LENsb3NlOmZ1bmN0aW9uKCl7R2FsYXh5Lm1vZGFsPQou
aGlkZSgpfX19KX0pfSxyZWZyZXNoVXNlckhpc3Rvcmllc0xpc3Q6ZnVuY3Rpb24oZil7dmFyIGU9
M0R0aGlzO3RoaXMuaGlzdG89CnJpZXM9M0RuZXcgYy5HYWxheHlIaXN0b3JpZXMoKTt0aGlzLmhp
c3Rvcmllcy5mZXRjaCh7c3VjY2VzczpmdW5jdGlvbihnKXtpZj0KKGcubGVuZ3RoPTNEPTNEPTNE
MCl7ZC53YXJuaW5nKCJZb3UgaGF2ZSB0byBjcmVhdGUgaGlzdG9yeSBmaXJzdC4gQ2xpY2sgdGhp
PQpzIHRvIGRvIHNvLiIsIiIse29uY2xpY2s6ZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb249M0Qi
LyJ9fSl9ZWxzZXtmKGUpfX0sZXI9CnJvcjpmdW5jdGlvbihoLGcpe2lmKHR5cGVvZiBnLnJlc3Bv
bnNlSlNPTiE9M0Q9M0QidW5kZWZpbmVkIil7ZC5lcnJvcihnLnJlcz0KcG9uc2VKU09OLmVycl9t
c2cpfWVsc2V7ZC5lcnJvcigiQW4gZXJyb3Igb2N1cnJlZC4iKX19fSl9LGltcG9ydEN1cnJlbnRJ
bnRvPQpIaXN0b3J5OmZ1bmN0aW9uKCl7dmFyIGU9M0QkKHRoaXMubW9kYWwuZWxNYWluKS5maW5k
KCJzZWxlY3RbbmFtZT0zRGRhdGFzZXQ9Cl9pbXBvcnRfc2luZ2xlXSBvcHRpb246c2VsZWN0ZWQi
KS52YWwoKTt2YXIgZj0zRG5ldyBjLkhpc3RvcnlJdGVtKCk7Zi51cmw9Cj0zRGYudXJsUm9vdCtl
KyIvY29udGVudHMiO2pRdWVyeS5nZXRKU09OKGdhbGF4eV9jb25maWcucm9vdCsiaGlzdG9yeS9z
ZXRfYT0Kc19jdXJyZW50P2lkPTNEIitlKTtmLnNhdmUoe2NvbnRlbnQ6dGhpcy5pZCxzb3VyY2U6
ImxpYnJhcnkifSx7c3VjY2VzczpmdW5jPQp0aW9uKCl7R2FsYXh5Lm1vZGFsLmhpZGUoKTtkLnN1
Y2Nlc3MoIkRhdGFzZXQgaW1wb3J0ZWQuIENsaWNrIHRoaXMgdG8gc3RhcnQ9CiBhbmFseXNpbmcg
aXQuIiwiIix7b25jbGljazpmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbj0zRCIvIn19KX0sZXJy
b3I6ZnVuYz0KdGlvbihoLGcpe2lmKHR5cGVvZiBnLnJlc3BvbnNlSlNPTiE9M0Q9M0QidW5kZWZp
bmVkIil7ZC5lcnJvcigiRGF0YXNldCBub3QgPQppbXBvcnRlZC4gIitnLnJlc3BvbnNlSlNPTi5l
cnJfbXNnKX1lbHNle2QuZXJyb3IoIkFuIGVycm9yIG9jY3VyZWQuIERhdGFzZXQ9CiBub3QgaW1w
b3J0ZWQuIFBsZWFzZSB0cnkgYWdhaW4uIil9fX0pfSxzaGFyZURhdGFzZXQ6ZnVuY3Rpb24oKXtk
LmluZm8oIkZlYT0KdHVyZSBjb21pbmcgc29vbi4iKX0sZ29CYWNrOmZ1bmN0aW9uKCl7R2FsYXh5
LmxpYnJhcmllcy5saWJyYXJ5X3JvdXRlci5iYWNrPQooKX0sc2hvd1Blcm1pc3Npb25zOmZ1bmN0
aW9uKGYpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxmKTskKCI9Ci50b29s
dGlwIikucmVtb3ZlKCk7aWYodGhpcy5vcHRpb25zLmZldGNoZWRfcGVybWlzc2lvbnMhPTNEPTNE
dW5kZWZpbmVkKXtpZj0KKHRoaXMub3B0aW9ucy5mZXRjaGVkX3Blcm1pc3Npb25zLmFjY2Vzc19k
YXRhc2V0X3JvbGVzLmxlbmd0aD0zRD0zRD0zRDApe3RoPQppcy5tb2RlbC5zZXQoe2lzX3VucmVz
dHJpY3RlZDp0cnVlfSl9ZWxzZXt0aGlzLm1vZGVsLnNldCh7aXNfdW5yZXN0cmljdGVkOmY9CmFs
c2V9KX19dmFyIGg9M0RmYWxzZTtpZihHYWxheHkuY3VyclVzZXIpe2g9M0RHYWxheHkuY3VyclVz
ZXIuaXNBZG1pbigpfXZhcj0KIGc9M0R0aGlzLnRlbXBsYXRlRGF0YXNldFBlcm1pc3Npb25zKCk7
dGhpcy4kZWwuaHRtbChnKHtpdGVtOnRoaXMubW9kZWwsaXNfPQphZG1pbjpofSkpO3ZhciBlPTNE
dGhpcztpZih0aGlzLm9wdGlvbnMuZmV0Y2hlZF9wZXJtaXNzaW9ucz0zRD0zRD0zRHVuZGVmaW49
CmVkKXskLmdldCgiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIitlLmlkKyIvcGVybWlzc2lvbnM/
c2NvcGU9M0RjdXJyZW50IikuZD0Kb25lKGZ1bmN0aW9uKGkpe2UucHJlcGFyZVNlbGVjdEJveGVz
KHtmZXRjaGVkX3Blcm1pc3Npb25zOmksaXNfYWRtaW46aH0pfSkuPQpmYWlsKGZ1bmN0aW9uKCl7
ZC5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBmZXRjaCBkYXRh
c2U9CnQgcGVybWlzc2lvbnMuIil9KX1lbHNle3RoaXMucHJlcGFyZVNlbGVjdEJveGVzKHtpc19h
ZG1pbjpofSl9JCgiI2NlbnRlciBbZD0KYXRhLXRvZ2dsZV0iKS50b29sdGlwKCk7JCgiI2NlbnRl
ciIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIil9LHByZXBhcmVTZWxlY3RCPQpveGVzOmZ1bmN0aW9u
KHIpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxyKTt2YXIgcz0zRHRoaXMu
b3B0aW89Cm5zLmZldGNoZWRfcGVybWlzc2lvbnM7dmFyIGs9M0R0aGlzLm9wdGlvbnMuaXNfYWRt
aW47dmFyIHE9M0R0aGlzO3ZhciBtPTNEWz0KXTtmb3IodmFyIGg9M0QwO2g8cy5hY2Nlc3NfZGF0
YXNldF9yb2xlcy5sZW5ndGg7aCsrKXttLnB1c2gocy5hY2Nlc3NfZGF0YXNlPQp0X3JvbGVzW2hd
KyI6IitzLmFjY2Vzc19kYXRhc2V0X3JvbGVzW2hdKX12YXIgZj0zRFtdO2Zvcih2YXIgaD0zRDA7
aDxzLm1vZGk9CmZ5X2l0ZW1fcm9sZXMubGVuZ3RoO2grKyl7Zi5wdXNoKHMubW9kaWZ5X2l0ZW1f
cm9sZXNbaF0rIjoiK3MubW9kaWZ5X2l0ZW1fcj0Kb2xlc1toXSl9dmFyIGc9M0RbXTtmb3IodmFy
IGg9M0QwO2g8cy5tYW5hZ2VfZGF0YXNldF9yb2xlcy5sZW5ndGg7aCsrKXtnLnB1PQpzaChzLm1h
bmFnZV9kYXRhc2V0X3JvbGVzW2hdKyI6IitzLm1hbmFnZV9kYXRhc2V0X3JvbGVzW2hdKX1pZihr
KXt2YXIgbz0zRHs9Cm1pbmltdW1JbnB1dExlbmd0aDowLGNzczoiYWNjZXNzX3Blcm0iLG11bHRp
cGxlOnRydWUscGxhY2Vob2xkZXI6IkNsaWNrIHRvID0Kc2VsZWN0IGEgcm9sZSIsY29udGFpbmVy
OnEuJGVsLmZpbmQoIiNhY2Nlc3NfcGVybSIpLGFqYXg6e3VybDoiL2FwaS9saWJyYXJpPQplcy9k
YXRhc2V0cy8iK3EuaWQrIi9wZXJtaXNzaW9ucz9zY29wZT0zRGF2YWlsYWJsZSIsZGF0YVR5cGU6
Impzb24iLHF1aWV0TWk9CmxsaXM6MTAwLGRhdGE6ZnVuY3Rpb24oaSx0KXtyZXR1cm57cTppLHBh
Z2VfbGltaXQ6MTAscGFnZTp0fX0scmVzdWx0czpmdW5jdD0KaW9uKHUsdCl7dmFyIGk9M0QodCox
MCk8dS50b3RhbDtyZXR1cm57cmVzdWx0czp1LnJvbGVzLG1vcmU6aX19fSxmb3JtYXRSZXN1PQps
dDpmdW5jdGlvbiBqKGkpe3JldHVybiBpLm5hbWUrIiB0eXBlOiAiK2kudHlwZX0sZm9ybWF0U2Vs
ZWN0aW9uOmZ1bmN0aW9uIGU9CihpKXtyZXR1cm4gaS5uYW1lfSxpbml0U2VsZWN0aW9uOmZ1bmN0
aW9uKGksdSl7dmFyIHQ9M0RbXTskKGkudmFsKCkuc3BsaXQoIj0KLCIpKS5lYWNoKGZ1bmN0aW9u
KCl7dmFyIHY9M0R0aGlzLnNwbGl0KCI6Iik7dC5wdXNoKHtpZDp2WzFdLG5hbWU6dlsxXX0pfSk7
PQp1KHQpfSxpbml0aWFsRGF0YTptLmpvaW4oIiwiKSxkcm9wZG93bkNzc0NsYXNzOiJiaWdkcm9w
In07dmFyIGw9M0R7bWluaW11bUk9Cm5wdXRMZW5ndGg6MCxjc3M6Im1vZGlmeV9wZXJtIixtdWx0
aXBsZTp0cnVlLHBsYWNlaG9sZGVyOiJDbGljayB0byBzZWxlY3QgYT0KIHJvbGUiLGNvbnRhaW5l
cjpxLiRlbC5maW5kKCIjbW9kaWZ5X3Blcm0iKSxhamF4Ont1cmw6Ii9hcGkvbGlicmFyaWVzL2Rh
dGFzPQpldHMvIitxLmlkKyIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFpbGFibGUiLGRhdGFUeXBl
OiJqc29uIixxdWlldE1pbGxpczoxMDA9CixkYXRhOmZ1bmN0aW9uKGksdCl7cmV0dXJue3E6aSxw
YWdlX2xpbWl0OjEwLHBhZ2U6dH19LHJlc3VsdHM6ZnVuY3Rpb24odSx0KT0Ke3ZhciBpPTNEKHQq
MTApPHUudG90YWw7cmV0dXJue3Jlc3VsdHM6dS5yb2xlcyxtb3JlOml9fX0sZm9ybWF0UmVzdWx0
OmZ1bmN0PQppb24gaihpKXtyZXR1cm4gaS5uYW1lKyIgdHlwZTogIitpLnR5cGV9LGZvcm1hdFNl
bGVjdGlvbjpmdW5jdGlvbiBlKGkpe3JldHU9CnJuIGkubmFtZX0saW5pdFNlbGVjdGlvbjpmdW5j
dGlvbihpLHUpe3ZhciB0PTNEW107JChpLnZhbCgpLnNwbGl0KCIsIikpLmVhYz0KaChmdW5jdGlv
bigpe3ZhciB2PTNEdGhpcy5zcGxpdCgiOiIpO3QucHVzaCh7aWQ6dlsxXSxuYW1lOnZbMV19KX0p
O3UodCl9LGluPQppdGlhbERhdGE6Zi5qb2luKCIsIiksZHJvcGRvd25Dc3NDbGFzczoiYmlnZHJv
cCJ9O3ZhciBwPTNEe21pbmltdW1JbnB1dExlbmc9CnRoOjAsY3NzOiJtYW5hZ2VfcGVybSIsbXVs
dGlwbGU6dHJ1ZSxwbGFjZWhvbGRlcjoiQ2xpY2sgdG8gc2VsZWN0IGEgcm9sZSIsYz0Kb250YWlu
ZXI6cS4kZWwuZmluZCgiI21hbmFnZV9wZXJtIiksYWpheDp7dXJsOiIvYXBpL2xpYnJhcmllcy9k
YXRhc2V0cy8iK3EuPQppZCsiL3Blcm1pc3Npb25zP3Njb3BlPTNEYXZhaWxhYmxlIixkYXRhVHlw
ZToianNvbiIscXVpZXRNaWxsaXM6MTAwLGRhdGE6ZnU9Cm5jdGlvbihpLHQpe3JldHVybntxOmks
cGFnZV9saW1pdDoxMCxwYWdlOnR9fSxyZXN1bHRzOmZ1bmN0aW9uKHUsdCl7dmFyIGk9Cj0zRCh0
KjEwKTx1LnRvdGFsO3JldHVybntyZXN1bHRzOnUucm9sZXMsbW9yZTppfX19LGZvcm1hdFJlc3Vs
dDpmdW5jdGlvbiBqKD0KaSl7cmV0dXJuIGkubmFtZSsiIHR5cGU6ICIraS50eXBlfSxmb3JtYXRT
ZWxlY3Rpb246ZnVuY3Rpb24gZShpKXtyZXR1cm4gaS5uPQphbWV9LGluaXRTZWxlY3Rpb246ZnVu
Y3Rpb24oaSx1KXt2YXIgdD0zRFtdOyQoaS52YWwoKS5zcGxpdCgiLCIpKS5lYWNoKGZ1bmM9CnRp
b24oKXt2YXIgdj0zRHRoaXMuc3BsaXQoIjoiKTt0LnB1c2goe2lkOnZbMV0sbmFtZTp2WzFdfSl9
KTt1KHQpfSxpbml0aWFsRD0KYXRhOmcuam9pbigiLCIpLGRyb3Bkb3duQ3NzQ2xhc3M6ImJpZ2Ry
b3AifTtxLmFjY2Vzc1NlbGVjdE9iamVjdD0zRG5ldyBiLlZpPQpldyhvKTtxLm1vZGlmeVNlbGVj
dE9iamVjdD0zRG5ldyBiLlZpZXcobCk7cS5tYW5hZ2VTZWxlY3RPYmplY3Q9M0RuZXcgYi5WaWU9
CncocCl9ZWxzZXt2YXIgbj0zRHEudGVtcGxhdGVBY2Nlc3NTZWxlY3QoKTskLmdldCgiL2FwaS9s
aWJyYXJpZXMvZGF0YXNldHMvIj0KK3EuaWQrIi9wZXJtaXNzaW9ucz9zY29wZT0zRGF2YWlsYWJs
ZSIsZnVuY3Rpb24oaSl7JCgiLmFjY2Vzc19wZXJtIikuaHRtbChuPQooe29wdGlvbnM6aS5yb2xl
c30pKTtxLmFjY2Vzc1NlbGVjdE9iamVjdD0zRCQoIiNhY2Nlc3Nfc2VsZWN0Iikuc2VsZWN0Migp
fSk9Ci5mYWlsKGZ1bmN0aW9uKCl7ZC5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0
ZW1wdGluZyB0byBmZXRjaCBkYXRhcz0KZXQgcGVybWlzc2lvbnMuIil9KX19LGNvbWluZ1Nvb246
ZnVuY3Rpb24oKXtkLndhcm5pbmcoIkZlYXR1cmUgY29taW5nIHNvb24uPQoiKX0sY29weVRvQ2xp
cGJvYXJkOmZ1bmN0aW9uKCl7dmFyIGU9M0RCYWNrYm9uZS5oaXN0b3J5LmxvY2F0aW9uLmhyZWY7
aWYoZS49Cmxhc3RJbmRleE9mKCIvcGVybWlzc2lvbnMiKSE9M0Q9M0QtMSl7ZT0zRGUuc3Vic3Ry
KDAsZS5sYXN0SW5kZXhPZigiL3Blcm1pcz0Kc2lvbnMiKSl9d2luZG93LnByb21wdCgiQ29weSB0
byBjbGlwYm9hcmQ6IEN0cmwrQywgRW50ZXIiLGUpfSxtYWtlRGF0YXNldFByPQppdmF0ZTpmdW5j
dGlvbigpe3ZhciBlPTNEdGhpczskLnBvc3QoIi9hcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIrZS5p
ZCsiL3Blcm09Cmlzc2lvbnM/YWN0aW9uPTNEbWFrZV9wcml2YXRlIikuZG9uZShmdW5jdGlvbihm
KXtlLm1vZGVsLnNldCh7aXNfdW5yZXN0cmljdD0KZWQ6ZmFsc2V9KTtlLnNob3dQZXJtaXNzaW9u
cyh7ZmV0Y2hlZF9wZXJtaXNzaW9uczpmfSk7ZC5zdWNjZXNzKCJUaGUgZGF0YXNlPQp0IGlzIG5v
dyBwcml2YXRlIHRvIHlvdS4iKX0pLmZhaWwoZnVuY3Rpb24oKXtkLmVycm9yKCJBbiBlcnJvciBv
Y2N1cnJlZCB3aGk9CmxlIGF0dGVtcHRpbmcgdG8gbWFrZSBkYXRhc2V0IHByaXZhdGUuIil9KX0s
cmVtb3ZlRGF0YXNldFJlc3RyaWN0aW9uczpmdW5jdD0KaW9uKCl7dmFyIGU9M0R0aGlzOyQucG9z
dCgiL2FwaS9saWJyYXJpZXMvZGF0YXNldHMvIitlLmlkKyIvcGVybWlzc2lvbnM/YWN0PQppb249
M0RyZW1vdmVfcmVzdHJpY3Rpb25zIikuZG9uZShmdW5jdGlvbihmKXtlLm1vZGVsLnNldCh7aXNf
dW5yZXN0cmljdGVkOnQ9CnJ1ZX0pO2Uuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Np
b25zOmZ9KTtkLnN1Y2Nlc3MoIkFjY2VzcyB0byB0aGlzID0KZGF0YXNldCBpcyBub3cgdW5yZXN0
cmljdGVkLiIpfSkuZmFpbChmdW5jdGlvbigpe2QuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkPQog
d2hpbGUgYXR0ZW1wdGluZyB0byBtYWtlIGRhdGFzZXQgdW5yZXN0cmljdGVkLiIpfSl9LHNhdmVQ
ZXJtaXNzaW9uczpmdW5jdGk9Cm9uKGUpe3ZhciBuPTNEdGhpczt2YXIgaz0zRHRoaXMuYWNjZXNz
U2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIik7dmFyID0KZj0zRHRoaXMubWFuYWdlU2Vs
ZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIik7dmFyIG09M0R0aGlzLm1vZGlmeVNlbGVjdE9i
PQpqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIik7dmFyIGc9M0RbXTt2YXIgaj0zRFtdO3ZhciBsPTNE
W107Zm9yKHZhciBoPTNEay5sZW49Cmd0aC0xO2g+PTNEMDtoLS0pe2cucHVzaChrW2hdLmlkKX1m
b3IodmFyIGg9M0RmLmxlbmd0aC0xO2g+PTNEMDtoLS0pe2oucHVzaD0KKGZbaF0uaWQpfWZvcih2
YXIgaD0zRG0ubGVuZ3RoLTE7aD49M0QwO2gtLSl7bC5wdXNoKG1baF0uaWQpfSQucG9zdCgiL2Fw
aS9sPQppYnJhcmllcy9kYXRhc2V0cy8iK24uaWQrIi9wZXJtaXNzaW9ucz9hY3Rpb249M0RzZXRf
cGVybWlzc2lvbnMiLHsiYWNjZXNzX2k9CmRzW10iOmcsIm1hbmFnZV9pZHNbXSI6aiwibW9kaWZ5
X2lkc1tdIjpsLH0pLmRvbmUoZnVuY3Rpb24oaSl7bi5zaG93UGVybWlzcz0KaW9ucyh7ZmV0Y2hl
ZF9wZXJtaXNzaW9uczppfSk7ZC5zdWNjZXNzKCJQZXJtaXNzaW9ucyBzYXZlZC4iKX0pLmZhaWwo
ZnVuY3RpPQpvbigpe2QuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcg
dG8gc2V0IGRhdGFzZXQgcGVybWlzc2lvbnM9Ci4iKX0pfSx0ZW1wbGF0ZURhdGFzZXQ6ZnVuY3Rp
b24oKXt2YXIgZT0zRFtdO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJsaWJyYXJ5Xz0Kc3R5bGVfY29u
dGFpbmVyIj4nKTtlLnB1c2goJyAgPGRpdiBpZD0zRCJsaWJyYXJ5X3Rvb2xiYXIiPicpO2UucHVz
aCgnICAgPGJ1PQp0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNE
InRvcCIgdGl0bGU9M0QiRG93bmxvYWQgZGF0YXM9CmV0IiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1
bHQgdG9vbGJ0bi1kb3dubG9hZC1kYXRhc2V0IHByaW1hcnktYnV0dG9uIiB0eXBlPQo9M0QiYnV0
dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1kb3dubG9hZCI+PC9zcGFuPiBEb3dubG9hZDwvc3Bh
bj48L2J1dHRvbj49CicpO2UucHVzaCgnICAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlw
IiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPQo9M0QiSW1wb3J0IGRhdGFzZXQgaW50byBo
aXN0b3J5IiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgdG9vbGJ0bi1pbXBvcnQtZGE9CnRhc2V0
IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtYm9v
ayI+PC9zcGFuPiB0bz0KIEhpc3Rvcnk8L3NwYW4+PC9idXR0b24+Jyk7ZS5wdXNoKCcgICA8JSBp
ZiAoaXRlbS5nZXQoImNhbl91c2VyX21vZGlmeSIpKSB7PQogJT4nKTtlLnB1c2goJyAgIDxidXR0
b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXQ9Cmxl
PTNEIk1vZGlmeSBsaWJyYXJ5IGl0ZW0iIGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCB0b29sYnRu
X21vZGlmeV9kYXRhc2V0ID0KcHJpbWFyeS1idXR0b24iIHR5cGU9M0QiYnV0dG9uIj48c3BhbiBj
bGFzcz0zRCJmYSBmYS1wZW5jaWwiPjwvc3Bhbj4gTW9kaWZ5PQo8L3NwYW4+PC9idXR0b24+Jyk7
ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAoaXRlbS5nZXQoImNhbl91c2U9
CnJfbWFuYWdlIikpIHsgJT4nKTtlLnB1c2goJyAgIDxhIGhyZWY9M0QiI2ZvbGRlcnMvPCUtIGl0
ZW0uZ2V0KCJmb2xkZXJfaWQiKT0KICU+L2RhdGFzZXRzLzwlLSBpdGVtLmlkICU+L3Blcm1pc3Np
b25zIj48YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhPQp0YS1wbGFjZW1lbnQ9M0Qi
dG9wIiB0aXRsZT0zRCJNYW5hZ2UgcGVybWlzc2lvbnMiIGNsYXNzPTNEImJ0biBidG4tZGVmYXVs
dCA9CnRvb2xidG5fY2hhbmdlX3Blcm1pc3Npb25zIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1
dHRvbiI+PHNwYW4gY2xhc3M9M0QiZj0KYSBmYS1ncm91cCI+PC9zcGFuPiBQZXJtaXNzaW9uczwv
c3Bhbj48L2J1dHRvbj48L2E+Jyk7ZS5wdXNoKCIgICA8JSB9ICU+Iik7PQplLnB1c2goIiAgPC9k
aXY+Iik7ZS5wdXNoKCc8b2wgY2xhc3M9M0QiYnJlYWRjcnVtYiI+Jyk7ZS5wdXNoKCcgICA8bGk+
PGEgdGk9CnRsZT0zRCJSZXR1cm4gdG8gdGhlIGxpc3Qgb2YgbGlicmFyaWVzIiBocmVmPTNEIiMi
PkxpYnJhcmllczwvYT48L2xpPicpO2UucD0KdXNoKCcgICA8JSBfLmVhY2goaXRlbS5nZXQoImZ1
bGxfcGF0aCIpLCBmdW5jdGlvbihwYXRoX2l0ZW0pIHsgJT4nKTtlLnB1c2goPQoiICAgPCUgaWYg
KHBhdGhfaXRlbVswXSAhPTNEIGl0ZW0uaWQpIHsgJT4iKTtlLnB1c2goJyAgIDxsaT48YSB0aXRs
ZT0zRCJSZXQ9CnVybiB0byB0aGlzIGZvbGRlciIgaHJlZj0zRCIjL2ZvbGRlcnMvPCUtIHBhdGhf
aXRlbVswXSAlPiI+PCUtIHBhdGhfaXRlbVsxXT0KICU+PC9hPjwvbGk+ICcpO2UucHVzaCgiPCUg
fSBlbHNlIHsgJT4iKTtlLnB1c2goJyAgIDxsaSBjbGFzcz0zRCJhY3RpdmUiPjxzPQpwYW4gdGl0
bGU9M0QiWW91IGFyZSBoZXJlIj48JS0gcGF0aF9pdGVtWzFdICU+PC9zcGFuPjwvbGk+Jyk7ZS5w
dXNoKCIgICA8JSA9Cn0gJT4iKTtlLnB1c2goIiAgIDwlIH0pOyAlPiIpO2UucHVzaCgiPC9vbD4i
KTtlLnB1c2goJzwlIGlmIChpdGVtLmdldCgiaXNfdT0KbnJlc3RyaWN0ZWQiKSkgeyAlPicpO2Uu
cHVzaCgnICA8ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LWluZm8iPicpO2UucHVzaCgiPQogIFRo
aXMgZGF0YXNldCBpcyB1bnJlc3RyaWN0ZWQgc28gZXZlcnlib2R5IGNhbiBhY2Nlc3MgaXQuIEp1
c3Qgc2hhcmUgdGhlIFU9ClJMIG9mIHRoaXMgcGFnZS4gIik7ZS5wdXNoKCcgIDxidXR0b24gZGF0
YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbj0KdD0zRCJ0b3AiIHRpdGxlPTNEIkNv
cHkgdG8gY2xpcGJvYXJkIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgYnRuLWNvcHktbGluPQpr
LXRvLWNsaXBib2FyZCBwcmltYXJ5LWJ1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNz
PTNEImZhIGZhLWNsaXBib2E9CnJkIj48L3NwYW4+IFRvIENsaXBib2FyZDwvc3Bhbj48L2J1dHRv
bj4gJyk7ZS5wdXNoKCIgIDwvZGl2PiIpO2UucHVzaCgiPCUgfT0KICU+Iik7ZS5wdXNoKCc8ZGl2
IGNsYXNzPTNEImRhdGFzZXRfdGFibGUiPicpO2UucHVzaCgnICAgPHRhYmxlIGNsYXNzPTNEImdy
PQppZCB0YWJsZSB0YWJsZS1zdHJpcGVkIHRhYmxlLWNvbmRlbnNlZCI+Jyk7ZS5wdXNoKCIgICAg
ICAgPHRyPiIpO2UucHVzaCgnICA9CiAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciIGlkPTNEImlk
X3JvdyIgZGF0YS1pZD0zRCI8JT0zRCBfLmVzY2FwZShpdGVtLmdldD0KKCJsZGRhX2lkIikpICU+
Ij5OYW1lPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0u
Z2V0PQooIm5hbWUiKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCcg
ICA8JSBpZiAoaXRlbS5nZXQoImZpbGU9Cl9leHQiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0
cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+RD0KYXRhIHR5cGU8L3Ro
PicpO2UucHVzaCgnICAgICAgICAgICA8dGQ+PCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoImZpbGVf
ZXh0IikpPQogJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICA8JSB9
ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAoaXQ9CmVtLmdldCgiZ2Vub21lX2J1aWxkIikpIHsgJT4n
KTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aD0KIHNjb3BlPTNE
InJvdyI+R2Vub21lIGJ1aWxkPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8u
ZXNjYXBlKGl0PQplbS5nZXQoImdlbm9tZV9idWlsZCIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAg
ICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT49CiIpO2UucHVzaCgnICAgPCUgaWYgKGl0ZW0u
Z2V0KCJmaWxlX3NpemUiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLj0KcHVzaCgn
ICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5TaXplPC90aD4nKTtlLnB1c2goJyAgICAgICAg
ICAgPHRkPjwlPTNEPQogXy5lc2NhcGUoaXRlbS5nZXQoImZpbGVfc2l6ZSIpKSAlPjwvdGQ+Jyk7
ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiA9CiAgPCUgfSAlPiIpO2UucHVzaCgnICAg
PCUgaWYgKGl0ZW0uZ2V0KCJkYXRlX3VwbG9hZGVkIikpIHsgJT4nKTtlLnB1c2goIiAgID0KICAg
IDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+RGF0ZSB1cGxvYWRl
ZCAoVVRDKTwvdGg+Jyk7PQplLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0
ZW0uZ2V0KCJkYXRlX3VwbG9hZGVkIikpICU+PC90ZD4nKTs9CmUucHVzaCgiICAgICAgIDwvdHI+
Iik7ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAoaXRlbS5nZXQoInVwbD0K
b2FkZWRfYnkiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAg
ICAgPHRoIHNjb3BlPTNEInJvPQp3Ij5VcGxvYWRlZCBieTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAg
ICAgIDx0ZD48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgidXBsb2E9CmRlZF9ieSIpKSAlPjwvdGQ+
Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2goJyAg
ID0KPCUgaWYgKGl0ZW0uZ2V0KCJtZXRhZGF0YV9kYXRhX2xpbmVzIikpIHsgJT4nKTtlLnB1c2go
IiAgICAgICA8dHI+Iik7ZS5wdXNoPQooJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+RGF0
YSBMaW5lczwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZCBzY289CnBlPTNEInJvdyI+PCU9
M0QgXy5lc2NhcGUoaXRlbS5nZXQoIm1ldGFkYXRhX2RhdGFfbGluZXMiKSkgJT48L3RkPicpO2Uu
cHVzaD0KKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2goJyAgIDwl
IGlmIChpdGVtLmdldCgibWV0YWRhdGFfPQpjb21tZW50X2xpbmVzIikpIHsgJT4nKTtlLnB1c2go
IiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0KPTNEInJvdyI+Q29t
bWVudCBMaW5lczwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZCBzY29wZT0zRCJyb3ciPjwl
PTNEIF8uPQplc2NhcGUoaXRlbS5nZXQoIm1ldGFkYXRhX2NvbW1lbnRfbGluZXMiKSkgJT48L3Rk
PicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik9CjtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2go
JyAgIDwlIGlmIChpdGVtLmdldCgibWV0YWRhdGFfY29sdW1ucyIpKSB7ICU+Jz0KKTtlLnB1c2go
IiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPk51bWJl
ciBvZiBDb2x1PQptbnM8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm93
Ij48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibWU9CnRhZGF0YV9jb2x1bW5zIikpICU+PC90ZD4n
KTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UucD0KdXNoKCcg
ICA8JSBpZiAoaXRlbS5nZXQoIm1ldGFkYXRhX2NvbHVtbl90eXBlcyIpKSB7ICU+Jyk7ZS5wdXNo
KCIgICAgICAgPHRyPQo+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPkNv
bHVtbiBUeXBlczwvdGg+Jyk7ZS5wdXNoKCcgICAgICA9CiAgICAgPHRkIHNjb3BlPTNEInJvdyI+
PCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoIm1ldGFkYXRhX2NvbHVtbl90eXBlcyIpKSAlPj0KPC90
ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UucHVzaCgn
ICAgPCUgaWYgKGl0ZW0uPQpnZXQoIm1lc3NhZ2UiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0
cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPQo9M0Qicm93Ij5NZXNzYWdlPC90aD4n
KTtlLnB1c2goJyAgICAgICAgICAgPHRkIHNjb3BlPTNEInJvdyI+PCU9M0QgXy5lc2NhcGU9Cihp
dGVtLmdldCgibWVzc2FnZSIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1
c2goIiAgIDwlIH0gJT4iKT0KO2UucHVzaCgnICAgPCUgaWYgKGl0ZW0uZ2V0KCJtaXNjX2JsdXJi
IikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wPQp1c2goJyAgICAgICAgICAgPHRo
IHNjb3BlPTNEInJvdyI+TWlzY2VsbGFuZW91cyBibHVyYjwvdGg+Jyk7ZS5wdXNoKCcgICAgICA9
CiAgICAgPHRkIHNjb3BlPTNEInJvdyI+PCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoIm1pc2NfYmx1
cmIiKSkgJT48L3RkPicpO2UucD0KdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0g
JT4iKTtlLnB1c2goJyAgIDwlIGlmIChpdGVtLmdldCgibWlzY19pPQpuZm8iKSkgeyAlPicpO2Uu
cHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+
TWk9CnNjZWxsYW5lb3VzIGluZm9ybWF0aW9uPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRk
IHNjb3BlPTNEInJvdyI+PCU9M0QgXz0KLmVzY2FwZShpdGVtLmdldCgibWlzY19pbmZvIikpICU+
PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPQo8JSB9ICU+Iik7ZS5w
dXNoKCIgICAgPC90YWJsZT4iKTtlLnB1c2goIiAgICA8ZGl2PiIpO2UucHVzaCgnICAgICAgICA8
cHJlIGM9Cmxhc3M9M0QicGVlayI+Jyk7ZS5wdXNoKCIgICAgICAgIDwvcHJlPiIpO2UucHVzaCgi
ICAgIDwvZGl2PiIpO2UucHVzaCgnICAgPD0KJSBpZiAoaXRlbS5nZXQoImhhc192ZXJzaW9ucyIp
KSB7ICU+Jyk7ZS5wdXNoKCIgICAgICA8ZGl2PiIpO2UucHVzaCgiICAgICAgPQo8aDM+RXhwaXJl
ZCB2ZXJzaW9uczo8L2gzPiIpO2UucHVzaCgiICAgICAgPHVsPiIpO2UucHVzaCgnICAgICAgPCUg
Xy5lYWNoKGk9CnRlbS5nZXQoImV4cGlyZWRfdmVyc2lvbnMiKSwgZnVuY3Rpb24odmVyc2lvbikg
eyAlPicpO2UucHVzaCgnICAgICAgICA8bGk+PD0KYSB0aXRsZT0zRCJTZWUgZGV0YWlscyBvZiB0
aGlzIHZlcnNpb24iIGhyZWY9M0QiI2ZvbGRlcnMvPCUtIGl0ZW0uZ2V0KCJmb2xkPQplcl9pZCIp
ICU+L2RhdGFzZXRzLzwlLSBpdGVtLmlkICU+L3ZlcnNpb25zLzwlLSB2ZXJzaW9uWzBdICU+Ij48
JS0gdmVyc2lvbls9CjFdICU+PC9hPjwvbGk+Jyk7ZS5wdXNoKCIgICAgICA8JSB9KSAlPiIpO2Uu
cHVzaCgiICAgICAgPHVsPiIpO2UucHVzaCgiICAgID0KICA8L2Rpdj4iKTtlLnB1c2goIiAgIDwl
IH0gJT4iKTtlLnB1c2goIjwvZGl2PiIpO2UucHVzaCgiPC9kaXY+Iik7cmV0dXJuIF8uPQp0ZW1w
bGF0ZShlLmpvaW4oIiIpKX0sdGVtcGxhdGVWZXJzaW9uOmZ1bmN0aW9uKCl7dmFyIGU9M0RbXTtl
LnB1c2goJzxkaXYgY2w9CmFzcz0zRCJsaWJyYXJ5X3N0eWxlX2NvbnRhaW5lciI+Jyk7ZS5wdXNo
KCcgIDxkaXYgaWQ9M0QibGlicmFyeV90b29sYmFyIj4nKT0KO2UucHVzaCgnICAgPGEgaHJlZj0z
RCIjZm9sZGVycy88JS0gaXRlbS5nZXQoImZvbGRlcl9pZCIpICU+L2RhdGFzZXRzLzwlLSBpPQp0
ZW0uaWQgJT4iPjxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9
M0QidG9wIiB0aXRsZT0zRCI9CkdvIHRvIGxhdGVzdCBkYXRhc2V0IiBjbGFzcz0zRCJidG4gYnRu
LWRlZmF1bHQgcHJpbWFyeS1idXR0b24iIHR5cGU9M0QiYnV0dD0Kb24iPjxzcGFuIGNsYXNzPTNE
ImZhIGZhLWNhcmV0LWxlZnQgZmEtbGciPjwvc3Bhbj4gTGF0ZXN0IGRhdGFzZXQ8L3NwYW4+PC9i
PQp1dHRvbj48YT4nKTtlLnB1c2goIiAgPC9kaXY+Iik7ZS5wdXNoKCc8b2wgY2xhc3M9M0QiYnJl
YWRjcnVtYiI+Jyk7ZS5wdXNoKCc9CiAgIDxsaT48YSB0aXRsZT0zRCJSZXR1cm4gdG8gdGhlIGxp
c3Qgb2YgbGlicmFyaWVzIiBocmVmPTNEIiMiPkxpYnJhcmllczwvYT0KPjwvbGk+Jyk7ZS5wdXNo
KCcgICA8JSBfLmVhY2goaXRlbS5nZXQoImZ1bGxfcGF0aCIpLCBmdW5jdGlvbihwYXRoX2l0ZW0p
IHsgPQolPicpO2UucHVzaCgiICAgPCUgaWYgKHBhdGhfaXRlbVswXSAhPTNEIGl0ZW0uaWQpIHsg
JT4iKTtlLnB1c2goJyAgIDxsaT48YSA9CnRpdGxlPTNEIlJldHVybiB0byB0aGlzIGZvbGRlciIg
aHJlZj0zRCIjL2ZvbGRlcnMvPCUtIHBhdGhfaXRlbVswXSAlPiI+PCUtID0KcGF0aF9pdGVtWzFd
ICU+PC9hPjwvbGk+ICcpO2UucHVzaCgiPCUgfSBlbHNlIHsgJT4iKTtlLnB1c2goJyAgIDxsaSBj
bGFzcz0KPTNEImFjdGl2ZSI+PHNwYW4gdGl0bGU9M0QiWW91IGFyZSBoZXJlIj48JS0gcGF0aF9p
dGVtWzFdICU+PC9zcGFuPjwvbGk+Jyk7PQplLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2goIiAg
IDwlIH0pOyAlPiIpO2UucHVzaCgiPC9vbD4iKTtlLnB1c2goJyAgPGRpdiA9CmNsYXNzPTNEImFs
ZXJ0IGFsZXJ0LXdhcm5pbmciPlRoaXMgaXMgYW4gZXhwaXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJy
YXJ5IGRhdD0KYXNldDogPCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoIm5hbWUiKSkgJT48L2Rpdj4n
KTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiZGF0PQphc2V0X3RhYmxlIj4nKTtlLnB1c2goJyAgIDx0
YWJsZSBjbGFzcz0zRCJncmlkIHRhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtY289Cm5kZW5zZWQi
PicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNE
InJvdyIgaWQ9Cj0zRCJpZF9yb3ciIGRhdGEtaWQ9M0QiPCU9M0QgXy5lc2NhcGUobGRkYS5pZCkg
JT4iPk5hbWU8L3RoPicpO2UucHVzaCgnICAgID0KICAgICAgIDx0ZD48JT0zRCBfLmVzY2FwZShs
ZGRhLmdldCgibmFtZSIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iPQopO2UucHVz
aCgnICAgPCUgaWYgKGxkZGEuZ2V0KCJmaWxlX2V4dCIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAg
PHRyPiIpO2UucHU9CnNoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPkRhdGEgdHlwZTwv
dGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZD48JT0KPTNEIF8uZXNjYXBlKGxkZGEuZ2V0KCJm
aWxlX2V4dCIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goPQoiICAg
PCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgKGxkZGEuZ2V0KCJnZW5vbWVfYnVpbGQiKSkgeyAl
PicpO2UucHVzaCgiICA9CiAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9
M0Qicm93Ij5HZW5vbWUgYnVpbGQ8L3RoPicpO2UucHVzaD0KKCcgICAgICAgICAgIDx0ZD48JT0z
RCBfLmVzY2FwZShsZGRhLmdldCgiZ2Vub21lX2J1aWxkIikpICU+PC90ZD4nKTtlLnB1c2goPQoi
ICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAobGRk
YS5nZXQoImZpbGVfc2l6ZSI9CikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNo
KCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPlNpemU8Lz0KdGg+Jyk7ZS5wdXNoKCcgICAg
ICAgICAgIDx0ZD48JT0zRCBfLmVzY2FwZShsZGRhLmdldCgiZmlsZV9zaXplIikpICU+PC90ZD4n
PQopO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcg
ICA8JSBpZiAobGRkYS5nZXQoImQ9CmF0ZV91cGxvYWRlZCIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAg
ICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9Cj0zRCJyb3ciPkRhdGUgdXBs
b2FkZWQgKFVUQyk8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQ+PCU9M0QgXy5lc2NhcGUo
bD0KZGRhLmdldCgiZGF0ZV91cGxvYWRlZCIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90
cj4iKTtlLnB1c2goIiAgIDwlIH0gPQolPiIpO2UucHVzaCgnICAgPCUgaWYgKGxkZGEuZ2V0KCJ1
cGxvYWRlZF9ieSIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiI9Cik7ZS5wdXNoKCcgICAg
ICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPlVwbG9hZGVkIGJ5PC90aD4nKTtlLnB1c2goJyAgICAg
ICAgID0KICA8dGQ+PCU9M0QgXy5lc2NhcGUobGRkYS5nZXQoInVwbG9hZGVkX2J5IikpICU+PC90
ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPQo+Iik7ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNo
KCcgICA8JSBpZiAobGRkYS5nZXQoIm1ldGFkYXRhX2RhdGFfbGluZXMiKSk9CiB7ICU+Jyk7ZS5w
dXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5E
YXRhIExpbj0KZXM8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm93Ij48
JT0zRCBfLmVzY2FwZShsZGRhLmdldCgibWV0PQphZGF0YV9kYXRhX2xpbmVzIikpICU+PC90ZD4n
KTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2U9Ci5wdXNoKCcg
ICA8JSBpZiAobGRkYS5nZXQoIm1ldGFkYXRhX2NvbW1lbnRfbGluZXMiKSkgeyAlPicpO2UucHVz
aCgiICAgICAgID0KPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5D
b21tZW50IExpbmVzPC90aD4nKTtlLnB1c2goJyAgPQogICAgICAgICA8dGQgc2NvcGU9M0Qicm93
Ij48JT0zRCBfLmVzY2FwZShsZGRhLmdldCgibWV0YWRhdGFfY29tbWVudF9saW5lcyI9CikpICU+
PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UucHVz
aCgnICAgPCUgaWYgKD0KbGRkYS5nZXQoIm1ldGFkYXRhX2NvbHVtbnMiKSkgeyAlPicpO2UucHVz
aCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgPQogICA8dGggc2NvcGU9M0Qicm93Ij5O
dW1iZXIgb2YgQ29sdW1uczwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZCBzY29wZT0KPTNE
InJvdyI+PCU9M0QgXy5lc2NhcGUobGRkYS5nZXQoIm1ldGFkYXRhX2NvbHVtbnMiKSkgJT48L3Rk
PicpO2UucHVzaCgiICAgPQogICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2go
JyAgIDwlIGlmIChsZGRhLmdldCgibWV0YWRhdGFfY29sdW09Cm5fdHlwZXMiKSkgeyAlPicpO2Uu
cHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdz0K
Ij5Db2x1bW4gVHlwZXM8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm93
Ij48JT0zRCBfLmVzY2FwZShsPQpkZGEuZ2V0KCJtZXRhZGF0YV9jb2x1bW5fdHlwZXMiKSkgJT48
L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCI9CiAgIDwlIH0gJT4iKTtlLnB1
c2goJyAgIDwlIGlmIChsZGRhLmdldCgibWVzc2FnZSIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAg
PD0KdHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPk1lc3NhZ2U8L3Ro
PicpO2UucHVzaCgnICAgICAgICAgPQogIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBl
KGxkZGEuZ2V0KCJtZXNzYWdlIikpICU+PC90ZD4nKTtlLnB1c2goIiA9CiAgICAgIDwvdHI+Iik7
ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAobGRkYS5nZXQoIm1pc2NfYmx1
cmIiKT0KKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8
dGggc2NvcGU9M0Qicm93Ij5NaXNjZWxsPQphbmVvdXMgYmx1cmI8L3RoPicpO2UucHVzaCgnICAg
ICAgICAgICA8dGQgc2NvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShsZGQ9CmEuZ2V0KCJtaXNj
X2JsdXJiIikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUg
fSAlPiIpOz0KZS5wdXNoKCcgICA8JSBpZiAobGRkYS5nZXQoIm1pc2NfaW5mbyIpKSB7ICU+Jyk7
ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzPQpoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJy
b3ciPk1pc2NlbGxhbmVvdXMgaW5mb3JtYXRpb248L3RoPicpO2UucHVzaCgnICA9CiAgICAgICAg
IDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGxkZGEuZ2V0KCJtaXNjX2luZm8iKSkg
JT48L3RkPicpOz0KZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtl
LnB1c2goIiAgICA8L3RhYmxlPiIpO2UucHVzaCgiPQogICAgPGRpdj4iKTtlLnB1c2goJyAgICAg
ICAgPHByZSBjbGFzcz0zRCJwZWVrIj4nKTtlLnB1c2goIiAgICAgICAgPC9wcmU+Iik9CjtlLnB1
c2goIiAgICA8L2Rpdj4iKTtlLnB1c2goIjwvZGl2PiIpO2UucHVzaCgiPC9kaXY+Iik7cmV0dXJu
IF8udGVtcGxhdGUoZT0KLmpvaW4oIiIpKX0sdGVtcGxhdGVNb2RpZnlEYXRhc2V0OmZ1bmN0aW9u
KCl7dmFyIGU9M0RbXTtlLnB1c2goJzxkaXYgY2xhc3M9Cj0zRCJsaWJyYXJ5X3N0eWxlX2NvbnRh
aW5lciI+Jyk7ZS5wdXNoKCcgIDxkaXYgaWQ9M0QibGlicmFyeV90b29sYmFyIj4nKTtlLj0KcHVz
aCgnICAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0
b3AiIHRpdGxlPTNEIkNhPQpuY2VsIG1vZGlmaWNhdGlvbnMiIGNsYXNzPTNEImJ0biBidG4tZGVm
YXVsdCB0b29sYnRuX2NhbmNlbF9tb2RpZmljYXRpb25zIHA9CnJpbWFyeS1idXR0b24iIHR5cGU9
M0QiYnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS10aW1lcyI+PC9zcGFuPiBDYW5jZWw8Lz0K
c3Bhbj48L2J1dHRvbj4nKTtlLnB1c2goJyAgIDxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRp
cCIgZGF0YS1wbGFjZW1lbnQ9Cj0zRCJ0b3AiIHRpdGxlPTNEIlNhdmUgbW9kaWZpY2F0aW9ucyIg
Y2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0IHRvb2xidG5fc2F2ZT0KX21vZGlmaWNhdGlvbnMgcHJp
bWFyeS1idXR0b24iIHR5cGU9M0QiYnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1mbG9wcHkt
PQpvIj48L3NwYW4+IFNhdmU8L3NwYW4+PC9idXR0b24+Jyk7ZS5wdXNoKCIgIDwvZGl2PiIpO2Uu
cHVzaCgnPG9sIGNsYXNzPTNEImI9CnJlYWRjcnVtYiI+Jyk7ZS5wdXNoKCcgICA8bGk+PGEgdGl0
bGU9M0QiUmV0dXJuIHRvIHRoZSBsaXN0IG9mIGxpYnJhcmllcyIgaD0KcmVmPTNEIiMiPkxpYnJh
cmllczwvYT48L2xpPicpO2UucHVzaCgnICAgPCUgXy5lYWNoKGl0ZW0uZ2V0KCJmdWxsX3BhdGgi
KSwgPQpmdW5jdGlvbihwYXRoX2l0ZW0pIHsgJT4nKTtlLnB1c2goIiAgIDwlIGlmIChwYXRoX2l0
ZW1bMF0gIT0zRCBpdGVtLmlkKSB7ICU9Cj4iKTtlLnB1c2goJyAgIDxsaT48YSB0aXRsZT0zRCJS
ZXR1cm4gdG8gdGhpcyBmb2xkZXIiIGhyZWY9M0QiIy9mb2xkZXJzLzwlLT0KIHBhdGhfaXRlbVsw
XSAlPiI+PCUtIHBhdGhfaXRlbVsxXSAlPjwvYT48L2xpPiAnKTtlLnB1c2goIjwlIH0gZWxzZSB7
ICU+Iik7PQplLnB1c2goJyAgIDxsaSBjbGFzcz0zRCJhY3RpdmUiPjxzcGFuIHRpdGxlPTNEIllv
dSBhcmUgaGVyZSI+PCUtIHBhdGhfaXRlbVs9CjFdICU+PC9zcGFuPjwvbGk+Jyk7ZS5wdXNoKCIg
ICA8JSB9ICU+Iik7ZS5wdXNoKCIgICA8JSB9KTsgJT4iKTtlLnB1c2goIjwvbz0KbD4iKTtlLnB1
c2goJzxkaXYgY2xhc3M9M0QiZGF0YXNldF90YWJsZSI+Jyk7ZS5wdXNoKCc8cD5Gb3IgbW9yZSBl
ZGl0aW5nIG9wPQp0aW9ucyBwbGVhc2UgaW1wb3J0IHRoZSBkYXRhc2V0IHRvIGhpc3RvcnkgYW5k
IHVzZSAiRWRpdCBhdHRyaWJ1dGVzIiBvbiBpdC49CjwvcD4nKTtlLnB1c2goJyAgIDx0YWJsZSBj
bGFzcz0zRCJncmlkIHRhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtY29uZGVuc2VkIj0KPicpO2Uu
cHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyIg
aWQ9M0QiaWRfcm93PQoiIGRhdGEtaWQ9M0QiPCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoImxkZGFf
aWQiKSkgJT4iPk5hbWU8L3RoPicpO2UucHVzaCgnICA9CiAgICAgICAgIDx0ZD48aW5wdXQgY2xh
c3M9M0QiaW5wdXRfZGF0YXNldF9uYW1lIGZvcm0tY29udHJvbCIgdHlwZT0zRCJ0ZXh0Ij0KIHBs
YWNlaG9sZGVyPTNEIm5hbWUiIHZhbHVlPTNEIjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJuYW1l
IikpICU+Ij48L3RkPicpPQo7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgICAgICA8
dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0KPTNEInJvdyI+RGF0YSB0eXBlPC90
aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJmPQpp
bGVfZXh0IikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgICAg
IDx0cj4iKTtlLnB1c2goJyA9CiAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5HZW5vbWUgYnVp
bGQ8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQ+PCU9Cj0zRCBfLmVzY2FwZShpdGVtLmdl
dCgiZ2Vub21lX2J1aWxkIikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucD0K
dXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5T
aXplPC90aD4nKTtlLnB1c2goPQonICAgICAgICAgICA8dGQ+PCU9M0QgXy5lc2NhcGUoaXRlbS5n
ZXQoImZpbGVfc2l6ZSIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICA9CiAgICA8L3RyPiIpO2UucHVz
aCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+RGF0
ZT0KIHVwbG9hZGVkIChVVEMpPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8u
ZXNjYXBlKGl0ZW0uZ2V0KCJkYXRlPQpfdXBsb2FkZWQiKSkgJT48L3RkPicpO2UucHVzaCgiICAg
ICAgIDwvdHI+Iik7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCg9CicgICAgICAgICAgIDx0
aCBzY29wZT0zRCJyb3ciPlVwbG9hZGVkIGJ5PC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRk
PjwlPQo9M0QgXy5lc2NhcGUoaXRlbS5nZXQoInVwbG9hZGVkX2J5IikpICU+PC90ZD4nKTtlLnB1
c2goIiAgICAgICA8L3RyPiIpO2UucHU9CnNoKCcgICAgICAgICAgIDx0ciBzY29wZT0zRCJyb3ci
PicpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5EYT0KdGEgTGluZXM8L3Ro
PicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShp
dGVtLmdlPQp0KCJtZXRhZGF0YV9kYXRhX2xpbmVzIikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAg
ICA8L3RyPiIpO2UucHVzaCgnICAgICAgIDw9CnRoIHNjb3BlPTNEInJvdyI+Q29tbWVudCBMaW5l
czwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDwlIGlmIChpdGVtLmdldCgibT0KZXRhZGF0YV9j
b21tZW50X2xpbmVzIikgPTNEPTNEPTNEICIiKSB7ICU+Jyk7ZS5wdXNoKCcgICAgICAgICAgICAg
ICA8dGQgc2NvPQpwZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJtZXRhZGF0YV9j
b21tZW50X2xpbmVzIikpICU+PC90ZD4nKTtlLnA9CnVzaCgiICAgICAgICAgICA8JSB9IGVsc2Ug
eyAlPiIpO2UucHVzaCgnICAgICAgICAgICAgICAgPHRkIHNjb3BlPTNEInJvdyI+dT0Kbmtub3du
PC90ZD4nKTtlLnB1c2goIiAgICAgICAgICAgPCUgfSAlPiIpO2UucHVzaCgiICAgICAgIDwvdHI+
Iik7ZS5wdXNoKCIgPQogICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0z
RCJyb3ciPk51bWJlciBvZiBDb2x1bW5zPC90aD4nKTs9CmUucHVzaCgnICAgICAgICAgICA8dGQg
c2NvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibWV0YWRhdGFfY29sdT0KbW5z
IikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgICAgIDx0cj4i
KTtlLnB1c2goJyAgICAgPQogICAgICA8dGggc2NvcGU9M0Qicm93Ij5Db2x1bW4gVHlwZXM8L3Ro
PicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Q9CiJyb3ciPjwlPTNEIF8uZXNjYXBl
KGl0ZW0uZ2V0KCJtZXRhZGF0YV9jb2x1bW5fdHlwZXMiKSkgJT48L3RkPicpO2UucHVzaCgiID0K
ICAgICAgPC90cj4iKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0
aCBzY29wZT0zRCJyb3ciPk1lPQpzc2FnZTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZCBz
Y29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCI9Cm1lc3NhZ2UiKSkgJT48L3Rk
PicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgn
ID0KICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPk1pc2NlbGxhbmVvdXMgaW5mb3JtYXRpb248
L3RoPicpO2UucHVzaCgnICAgICAgPQogICAgIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNj
YXBlKGl0ZW0uZ2V0KCJtaXNjX2luZm8iKSkgJT48L3RkPicpO2UucHU9CnNoKCIgICAgICAgPC90
cj4iKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0z
RCJybz0KdyI+TWlzY2VsbGFuZW91cyBibHVyYjwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0
ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uPQplc2NhcGUoaXRlbS5nZXQoIm1pc2NfYmx1cmIiKSkg
JT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICA9CjwvdGFibGU+Iik7
ZS5wdXNoKCI8ZGl2PiIpO2UucHVzaCgnICAgPHByZSBjbGFzcz0zRCJwZWVrIj4nKTtlLnB1c2go
IiAgIDwvcD0KcmU+Iik7ZS5wdXNoKCI8L2Rpdj4iKTtlLnB1c2goIjwvZGl2PiIpO2UucHVzaCgi
PC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUoPQplLmpvaW4oIiIpKX0sdGVtcGxhdGVEYXRhc2V0
UGVybWlzc2lvbnM6ZnVuY3Rpb24oKXt2YXIgZT0zRFtdO2UucHVzaCgnPGRpdiA9CmNsYXNzPTNE
ImxpYnJhcnlfc3R5bGVfY29udGFpbmVyIj4nKTtlLnB1c2goJyAgPGRpdiBpZD0zRCJsaWJyYXJ5
X3Rvb2xiYXIiPj0KJyk7ZS5wdXNoKCcgICA8YSBocmVmPTNEIiNmb2xkZXJzLzwlLSBpdGVtLmdl
dCgiZm9sZGVyX2lkIikgJT4iPjxidXR0b24gZGF0PQphLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRh
LXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIkdvIGJhY2sgdG8gY29udGFpbmluZyA9CmZvbGRl
ciIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRv
biI+PHNwYW4gY2xhcz0Kcz0zRCJmYSBmYS1mb2xkZXItb3Blbi1vIj48L3NwYW4+IENvbnRhaW5p
bmcgRm9sZGVyPC9zcGFuPjwvYnV0dG9uPjwvYT4nKTtlPQoucHVzaCgnICAgPGEgaHJlZj0zRCIj
Zm9sZGVycy88JS0gaXRlbS5nZXQoImZvbGRlcl9pZCIpICU+L2RhdGFzZXRzLzwlLSBpdGU9Cm0u
aWQgJT4iPjxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0Qi
dG9wIiB0aXRsZT0zRCJHbz0KIGJhY2sgdG8gZGF0YXNldCIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZh
dWx0IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PQo8c3BhbiBjbGFzcz0zRCJmYSBm
YS1maWxlLW8iPjwvc3Bhbj4gRGF0YXNldCBEZXRhaWxzPC9zcGFuPjwvYnV0dG9uPjxhPicpO2U9
Ci5wdXNoKCIgIDwvZGl2PiIpO2UucHVzaCgnPG9sIGNsYXNzPTNEImJyZWFkY3J1bWIiPicpO2Uu
cHVzaCgnICAgPGxpPjxhIHRpdD0KbGU9M0QiUmV0dXJuIHRvIHRoZSBsaXN0IG9mIGxpYnJhcmll
cyIgaHJlZj0zRCIjIj5MaWJyYXJpZXM8L2E+PC9saT4nKTtlLnB1PQpzaCgnICAgPCUgXy5lYWNo
KGl0ZW0uZ2V0KCJmdWxsX3BhdGgiKSwgZnVuY3Rpb24ocGF0aF9pdGVtKSB7ICU+Jyk7ZS5wdXNo
KCI9CiAgIDwlIGlmIChwYXRoX2l0ZW1bMF0gIT0zRCBpdGVtLmlkKSB7ICU+Iik7ZS5wdXNoKCcg
ICA8bGk+PGEgdGl0bGU9M0QiUmV0dT0Kcm4gdG8gdGhpcyBmb2xkZXIiIGhyZWY9M0QiIy9mb2xk
ZXJzLzwlLSBwYXRoX2l0ZW1bMF0gJT4iPjwlLSBwYXRoX2l0ZW1bMV0gPQolPjwvYT48L2xpPiAn
KTtlLnB1c2goIjwlIH0gZWxzZSB7ICU+Iik7ZS5wdXNoKCcgICA8bGkgY2xhc3M9M0QiYWN0aXZl
Ij48c3A9CmFuIHRpdGxlPTNEIllvdSBhcmUgaGVyZSI+PCUtIHBhdGhfaXRlbVsxXSAlPjwvc3Bh
bj48L2xpPicpO2UucHVzaCgiICAgPCUgfT0KICU+Iik7ZS5wdXNoKCIgICA8JSB9KTsgJT4iKTtl
LnB1c2goIjwvb2w+Iik7ZS5wdXNoKCc8aDE+RGF0YXNldDogPCU9M0QgXy5lPQpzY2FwZShpdGVt
LmdldCgibmFtZSIpKSAlPjwvaDE+Jyk7ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0
LXdhcm5pbmc9CiI+Jyk7ZS5wdXNoKCI8JSBpZiAoaXNfYWRtaW4pIHsgJT4iKTtlLnB1c2goIllv
dSBhcmUgbG9nZ2VkIGluIGFzIGFuIDxzdHJvbj0KZz5hZG1pbmlzdHJhdG9yPC9zdHJvbmc+IHRo
ZXJlZm9yZSB5b3UgY2FuIG1hbmFnZSBhbnkgZGF0YXNldCBvbiB0aGlzIEdhbGF4PQp5IGluc3Rh
bmNlLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSB1bmRlcnN0YW5kIHRoZSBjb25zZXF1ZW5jZXMuIik7
ZS5wdXNoKCI8JSA9Cn0gZWxzZSB7ICU+Iik7ZS5wdXNoKCJZb3UgY2FuIGFzc2lnbiBhbnkgbnVt
YmVyIG9mIHJvbGVzIHRvIGFueSBvZiB0aGUgZm9sbD0Kb3dpbmcgcGVybWlzc2lvbiB0eXBlcy4g
SG93ZXZlciBwbGVhc2UgcmVhZCBjYXJlZnVsbHkgdGhlIGltcGxpY2F0aW9ucyBvZiBzPQp1Y2gg
YWN0aW9ucy4iKTtlLnB1c2goIjwlIH0gJT4iKTtlLnB1c2goIjwvZGl2PiIpO2UucHVzaCgnPGRp
diBjbGFzcz0zRCJkYXQ9CmFzZXRfdGFibGUiPicpO2UucHVzaCgiPGgyPkxpYnJhcnktcmVsYXRl
ZCBwZXJtaXNzaW9uczwvaDI+Iik7ZS5wdXNoKCI8aDQ+Uj0Kb2xlcyB0aGF0IGNhbiBtb2RpZnkg
dGhlIGxpYnJhcnkgaXRlbTwvaDQ+Iik7ZS5wdXNoKCc8ZGl2IGlkPTNEIm1vZGlmeV9wZXJtPQoi
IGNsYXNzPTNEIm1vZGlmeV9wZXJtIHJvbGVzLXNlbGVjdGlvbiI+PC9kaXY+Jyk7ZS5wdXNoKCc8
ZGl2IGNsYXNzPTNEImFsZXI9CnQgYWxlcnQtaW5mbyByb2xlcy1zZWxlY3Rpb24iPlVzZXIgd2l0
aCA8c3Ryb25nPmFueTwvc3Ryb25nPiBvZiB0aGVzZSByb2xlcz0KIGNhbiBtb2RpZnkgbmFtZSwg
bWV0YWRhdGEsIGFuZCBvdGhlciBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGxpYnJhcnkgaXRlbS48
PQovZGl2PicpO2UucHVzaCgiPGhyLz4iKTtlLnB1c2goIjxoMj5EYXRhc2V0LXJlbGF0ZWQgcGVy
bWlzc2lvbnM8L2gyPiIpO2UucHU9CnNoKCc8ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LXdhcm5p
bmciPkNoYW5nZXMgbWFkZSBiZWxvdyB3aWxsIGFmZmVjdCA8c3Rybz0Kbmc+ZXZlcnk8L3N0cm9u
Zz4gbGlicmFyeSBpdGVtIHRoYXQgd2FzIGNyZWF0ZWQgZnJvbSB0aGlzIGRhdGFzZXQgYW5kIGFs
c28gPQpldmVyeSBoaXN0b3J5IHRoaXMgZGF0YXNldCBpcyBwYXJ0IG9mLjwvZGl2PicpO2UucHVz
aCgnPCUgaWYgKCFpdGVtLmdldCgiaXM9Cl91bnJlc3RyaWN0ZWQiKSkgeyAlPicpO2UucHVzaCgi
IDxwPllvdSBjYW4gcmVtb3ZlIGFsbCBhY2Nlc3MgcmVzdHJpY3Rpb25zID0Kb24gdGhpcyBkYXRh
c2V0LiAiKTtlLnB1c2goJyA8YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxh
Y2VtZW50PQo9M0QidG9wIiB0aXRsZT0zRCJFdmVyeWJvZHkgd2lsbCBiZSBhYmxlIHRvIGFjY2Vz
cyB0aGUgZGF0YXNldC4iIGNsYXNzPTNEImI9CnRuIGJ0bi1kZWZhdWx0IGJ0bi1yZW1vdmUtcmVz
dHJpY3Rpb25zIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+Jyk7ZT0KLnB1c2goJyA8
c3BhbiBjbGFzcz0zRCJmYSBmYS1nbG9iZSI+IFJlbW92ZSByZXN0cmljdGlvbnM8L3NwYW4+Jyk7
ZS5wdXNoKCIgPQo8L2J1dHRvbj4iKTtlLnB1c2goIiA8L3A+Iik7ZS5wdXNoKCI8JSB9IGVsc2Ug
eyAlPiIpO2UucHVzaCgiICBUaGlzIGRhdGFzZXQ9CiBpcyB1bnJlc3RyaWN0ZWQgc28gZXZlcnli
b2R5IGNhbiBhY2Nlc3MgaXQuIEp1c3Qgc2hhcmUgdGhlIFVSTCBvZiB0aGlzIHBhZz0KZS4iKTtl
LnB1c2goJyAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0z
RCJ0b3AiIHRpdGxlPQo9M0QiQ29weSB0byBjbGlwYm9hcmQiIGNsYXNzPTNEImJ0biBidG4tZGVm
YXVsdCBidG4tY29weS1saW5rLXRvLWNsaXBib2FyZCA9CnByaW1hcnktYnV0dG9uIiB0eXBlPTNE
ImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtY2xpcGJvYXJkIj4gVG8gQ2xpcGJvYT0KcmQ8
L3NwYW4+PC9idXR0b24+ICcpO2UucHVzaCgiICA8cD5Zb3UgY2FuIG1ha2UgdGhpcyBkYXRhc2V0
IHByaXZhdGUgdG8geW91PQouICIpO2UucHVzaCgnIDxidXR0b24gZGF0YS10b2dnbGU9M0QidG9v
bHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0KPTNEIk9ubHkgeW91IHdpbGwgYmUg
YWJsZSB0byBhY2Nlc3MgdGhlIGRhdGFzZXQuIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgPQpi
dG4tbWFrZS1wcml2YXRlIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xh
c3M9M0QiZmEgZmEta2V5Ij49CiBNYWtlIFByaXZhdGU8L3NwYW4+PC9idXR0b24+Jyk7ZS5wdXNo
KCIgPC9wPiIpO2UucHVzaCgiPCUgfSAlPiIpO2UucHVzaCgiPD0KaDQ+Um9sZXMgdGhhdCBjYW4g
YWNjZXNzIHRoZSBkYXRhc2V0PC9oND4iKTtlLnB1c2goJzxkaXYgaWQ9M0QiYWNjZXNzX3Blcm0i
PQogY2xhc3M9M0QiYWNjZXNzX3Blcm0gcm9sZXMtc2VsZWN0aW9uIj48L2Rpdj4nKTtlLnB1c2go
JzxkaXYgY2xhc3M9M0QiYWxlcnQ9CiBhbGVydC1pbmZvIHJvbGVzLXNlbGVjdGlvbiI+VXNlciBo
YXMgdG8gaGF2ZSA8c3Ryb25nPmFsbCB0aGVzZSByb2xlczwvc3Rybz0Kbmc+IGluIG9yZGVyIHRv
IGFjY2VzcyB0aGlzIGRhdGFzZXQuIFVzZXJzIHdpdGhvdXQgYWNjZXNzIHBlcm1pc3Npb24gPHN0
cm9uPQpnPmNhbm5vdDwvc3Ryb25nPiBoYXZlIG90aGVyIHBlcm1pc3Npb25zIG9uIHRoaXMgZGF0
YXNldC4gSWYgdGhlcmUgYXJlIG5vIGE9CmNjZXNzIHJvbGVzIHNldCBvbiB0aGUgZGF0YXNldCBp
dCBpcyBjb25zaWRlcmVkIDxzdHJvbmc+dW5yZXN0cmljdGVkPC9zdHJvbj0KZz4uPC9kaXY+Jyk7
ZS5wdXNoKCI8aDQ+Um9sZXMgdGhhdCBjYW4gbWFuYWdlIHBlcm1pc3Npb25zIG9uIHRoZSBkYXRh
c2V0PC9oPQo0PiIpO2UucHVzaCgnPGRpdiBpZD0zRCJtYW5hZ2VfcGVybSIgY2xhc3M9M0QibWFu
YWdlX3Blcm0gcm9sZXMtc2VsZWN0aW9uIj49CjwvZGl2PicpO2UucHVzaCgnPGRpdiBjbGFzcz0z
RCJhbGVydCBhbGVydC1pbmZvIHJvbGVzLXNlbGVjdGlvbiI+VXNlciB3aXRoID0KPHN0cm9uZz5h
bnk8L3N0cm9uZz4gb2YgdGhlc2Ugcm9sZXMgY2FuIG1hbmFnZSBwZXJtaXNzaW9ucyBvZiB0aGlz
IGRhdGFzZXQuPQogSWYgeW91IHJlbW92ZSB5b3Vyc2VsZiB5b3Ugd2lsbCBsb29zZSB0aGUgYWJp
bGl0eSBtYW5hZ2UgdGhpcyBkYXRhc2V0IHVubGU9CnNzIHlvdSBhcmUgYW4gYWRtaW4uPC9kaXY+
Jyk7ZS5wdXNoKCc8YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcD0KbGFjZW1l
bnQ9M0QidG9wIiB0aXRsZT0zRCJTYXZlIG1vZGlmaWNhdGlvbnMgbWFkZSBvbiB0aGlzIHBhZ2Ui
IGNsYXNzPTNEImJ0PQpuIGJ0bi1kZWZhdWx0IHRvb2xidG5fc2F2ZV9wZXJtaXNzaW9ucyBwcmlt
YXJ5LWJ1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGE9Cm4gY2xhc3M9M0QiZmEgZmEtZmxvcHB5
LW8iPjwvc3Bhbj4gU2F2ZTwvc3Bhbj48L2J1dHRvbj4nKTtlLnB1c2goIjwvZGl2PiIpOz0KZS5w
dXNoKCI8L2Rpdj4iKTtyZXR1cm4gXy50ZW1wbGF0ZShlLmpvaW4oIiIpKX0sdGVtcGxhdGVCdWxr
SW1wb3J0SW5Nb2RhbDpmPQp1bmN0aW9uKCl7dmFyIGU9M0RbXTtlLnB1c2goJzxzcGFuIGlkPTNE
Imhpc3RvcnlfbW9kYWxfY29tYm9fYnVsayIgc3R5bGU9M0Q9CiJ3aWR0aDo5MCU7IG1hcmdpbi1s
ZWZ0OiAxZW07IG1hcmdpbi1yaWdodDogMWVtOyAiPicpO2UucHVzaCgiU2VsZWN0IGhpc3Rvcj0K
eTogIik7ZS5wdXNoKCc8c2VsZWN0IGlkPTNEImRhdGFzZXRfaW1wb3J0X3NpbmdsZSIgbmFtZT0z
RCJkYXRhc2V0X2ltcG9ydF9zPQppbmdsZSIgc3R5bGU9M0Qid2lkdGg6NTAlOyBtYXJnaW4tYm90
dG9tOiAxZW07ICI+ICcpO2UucHVzaCgiICAgPCUgXy5lYWNoKGg9CmlzdG9yaWVzLCBmdW5jdGlv
bihoaXN0b3J5KSB7ICU+Iik7ZS5wdXNoKCcgICAgICAgPG9wdGlvbiB2YWx1ZT0zRCI8JT0zRCBf
Lj0KZXNjYXBlKGhpc3RvcnkuZ2V0KCJpZCIpKSAlPiI+PCU9M0QgXy5lc2NhcGUoaGlzdG9yeS5n
ZXQoIm5hbWUiKSkgJT48L29wdGlvPQpuPicpO2UucHVzaCgiICAgPCUgfSk7ICU+Iik7ZS5wdXNo
KCI8L3NlbGVjdD4iKTtlLnB1c2goIjwvc3Bhbj4iKTtyZXR1cm4gXy49CnRlbXBsYXRlKGUuam9p
bigiIikpfSx0ZW1wbGF0ZUFjY2Vzc1NlbGVjdDpmdW5jdGlvbigpe3ZhciBlPTNEW107ZS5wdXNo
KCc8cz0KZWxlY3QgaWQ9M0QiYWNjZXNzX3NlbGVjdCIgbXVsdGlwbGU+Jyk7ZS5wdXNoKCIgICA8
JSBfLmVhY2gob3B0aW9ucywgZnVuY3RpPQpvbihvcHRpb24pIHsgJT4iKTtlLnB1c2goJyAgICAg
ICA8b3B0aW9uIHZhbHVlPTNEIjwlLSBvcHRpb24ubmFtZSAlPiI+PCUtIG89CnB0aW9uLm5hbWUg
JT48L29wdGlvbj4nKTtlLnB1c2goIiAgIDwlIH0pOyAlPiIpO2UucHVzaCgiPC9zZWxlY3Q+Iik7
cmV0dXJuID0KXy50ZW1wbGF0ZShlLmpvaW4oIiIpKX19KTtyZXR1cm57TGlicmFyeURhdGFzZXRW
aWV3OmF9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGVmaW5lKFsibGlicy90b2Fz
dHIiLCJtdmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsIiwibXZjL3VpL3VpLXNlbGVjdCJdLGZ1bmM9
CnRpb24oZCxjLGIpe3ZhciBhPTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2VsOiIjY2VudGVyIixt
b2RlbDpudWxsLG9wdGlvbnM6ez0KfSxldmVudHM6eyJjbGljayAudG9vbGJ0bl9tb2RpZnlfZGF0
YXNldCI6ImVuYWJsZU1vZGlmaWNhdGlvbiIsImNsaWNrIC50b29sPQpidG5fY2FuY2VsX21vZGlm
aWNhdGlvbnMiOiJyZW5kZXIiLCJjbGljayAudG9vbGJ0bi1kb3dubG9hZC1kYXRhc2V0IjoiZG93
bmw9Cm9hZERhdGFzZXQiLCJjbGljayAudG9vbGJ0bi1pbXBvcnQtZGF0YXNldCI6ImltcG9ydElu
dG9IaXN0b3J5IiwiY2xpY2sgLnRvbz0KbGJ0bi1zaGFyZS1kYXRhc2V0Ijoic2hhcmVEYXRhc2V0
IiwiY2xpY2sgLmJ0bi1jb3B5LWxpbmstdG8tY2xpcGJvYXJkIjoiY29wPQp5VG9DbGlwYm9hcmQi
LCJjbGljayAuYnRuLW1ha2UtcHJpdmF0ZSI6Im1ha2VEYXRhc2V0UHJpdmF0ZSIsImNsaWNrIC5i
dG4tcmU9Cm1vdmUtcmVzdHJpY3Rpb25zIjoicmVtb3ZlRGF0YXNldFJlc3RyaWN0aW9ucyIsImNs
aWNrIC50b29sYnRuX3NhdmVfcGVybWlzcz0KaW9ucyI6InNhdmVQZXJtaXNzaW9ucyIsImNsaWNr
IC50b29sYnRuX3NhdmVfbW9kaWZpY2F0aW9ucyI6ImNvbWluZ1Nvb24iLH0sPQppbml0aWFsaXpl
OmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxlKTtpZih0
aGlzLm9wdGk9Cm9ucy5pZCl7dGhpcy5mZXRjaERhdGFzZXQoKX19LGZldGNoRGF0YXNldDpmdW5j
dGlvbihlKXt0aGlzLm9wdGlvbnM9M0RfLmV4dD0KZW5kKHRoaXMub3B0aW9ucyxlKTt0aGlzLm1v
ZGVsPTNEbmV3IGMuSXRlbSh7aWQ6dGhpcy5vcHRpb25zLmlkfSk7dmFyIGY9M0R0PQpoaXM7dGhp
cy5tb2RlbC5mZXRjaCh7c3VjY2VzczpmdW5jdGlvbigpe2lmKGYub3B0aW9ucy5zaG93X3Blcm1p
c3Npb25zKXtmLnM9Cmhvd1Blcm1pc3Npb25zKCl9ZWxzZXtpZihmLm9wdGlvbnMuc2hvd192ZXJz
aW9uKXtmLmZldGNoVmVyc2lvbigpfWVsc2V7Zi5yZT0KbmRlcigpfX19LGVycm9yOmZ1bmN0aW9u
KGgsZyl7aWYodHlwZW9mIGcucmVzcG9uc2VKU09OIT0zRD0zRCJ1bmRlZmluZWQiKXtkPQouZXJy
b3IoZy5yZXNwb25zZUpTT04uZXJyX21zZysiIENsaWNrIHRoaXMgdG8gZ28gYmFjay4iLCIiLHtv
bmNsaWNrOmZ1bmN0aW89Cm4oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2so
KX19KX1lbHNle2QuZXJyb3IoIkFuIGVycm9yIG9jdXJyZT0KZC4gQ2xpY2sgdGhpcyB0byBnbyBi
YWNrLiIsIiIse29uY2xpY2s6ZnVuY3Rpb24oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfPQpy
b3V0ZXIuYmFjaygpfX0pfX19KX0scmVuZGVyOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucz0zRF8u
ZXh0ZW5kKHRoaXMub3B0aW89Cm5zLGUpOyQoIi50b29sdGlwIikucmVtb3ZlKCk7dmFyIGY9M0R0
aGlzLnRlbXBsYXRlRGF0YXNldCgpO3RoaXMuJGVsLmh0bWwoZj0KKHtpdGVtOnRoaXMubW9kZWx9
KSk7JCgiLnBlZWsiKS5odG1sKHRoaXMubW9kZWwuZ2V0KCJwZWVrIikpOyQoIiNjZW50ZXIgW2Rh
PQp0YS10b2dnbGVdIikudG9vbHRpcCgpfSxmZXRjaFZlcnNpb246ZnVuY3Rpb24oZSl7dGhpcy5v
cHRpb25zPTNEXy5leHRlbmQodGg9CmlzLm9wdGlvbnMsZSk7dGhhdD0zRHRoaXM7aWYoIXRoaXMu
b3B0aW9ucy5sZGRhX2lkKXt0aGlzLnJlbmRlcigpO2QuZXJyb3IoIj0KTGlicmFyeSBkYXRhc2V0
IHZlcnNpb24gcmVxdWVzdGVkIGJ1dCBubyBpZCBwcm92aWRlZC4iKX1lbHNle3RoaXMubGRkYT0z
RG5lPQp3IGMuTGRkYSh7aWQ6dGhpcy5vcHRpb25zLmxkZGFfaWR9KTt0aGlzLmxkZGEudXJsPTNE
dGhpcy5sZGRhLnVybFJvb3QrdGhpcy49Cm1vZGVsLmlkKyIvdmVyc2lvbnMvIit0aGlzLmxkZGEu
aWQ7dGhpcy5sZGRhLmZldGNoKHtzdWNjZXNzOmZ1bmN0aW9uKCl7dGhhdD0KLnJlbmRlclZlcnNp
b24oKX0sZXJyb3I6ZnVuY3Rpb24oZyxmKXtpZih0eXBlb2YgZi5yZXNwb25zZUpTT04hPTNEPTNE
InVuZGVmPQppbmVkIil7ZC5lcnJvcihmLnJlc3BvbnNlSlNPTi5lcnJfbXNnKX1lbHNle2QuZXJy
b3IoIkFuIGVycm9yIG9jdXJyZWQuIil9fX09Cil9fSxyZW5kZXJWZXJzaW9uOmZ1bmN0aW9uKCl7
JCgiLnRvb2x0aXAiKS5yZW1vdmUoKTt2YXIgZT0zRHRoaXMudGVtcGxhdGVWZT0KcnNpb24oKTt0
aGlzLiRlbC5odG1sKGUoe2l0ZW06dGhpcy5tb2RlbCxsZGRhOnRoaXMubGRkYX0pKTskKCIucGVl
ayIpLmh0bWwoPQp0aGlzLmxkZGEuZ2V0KCJwZWVrIikpfSxlbmFibGVNb2RpZmljYXRpb246ZnVu
Y3Rpb24oKXskKCIudG9vbHRpcCIpLnJlbW92ZSg9Cik7dmFyIGU9M0R0aGlzLnRlbXBsYXRlTW9k
aWZ5RGF0YXNldCgpO3RoaXMuJGVsLmh0bWwoZSh7aXRlbTp0aGlzLm1vZGVsfSkpOz0KJCgiLnBl
ZWsiKS5odG1sKHRoaXMubW9kZWwuZ2V0KCJwZWVrIikpOyQoIiNjZW50ZXIgW2RhdGEtdG9nZ2xl
XSIpLnRvb2x0aXAoPQopfSxkb3dubG9hZERhdGFzZXQ6ZnVuY3Rpb24oKXt2YXIgZT0zRCh3aW5k
b3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnLnI9Cm9vdDoiLyIpKyJhcGkvbGlicmFyaWVz
L2RhdGFzZXRzL2Rvd25sb2FkL3VuY29tcHJlc3NlZCI7dmFyIGY9M0R7bGRfaWRzOnRoaT0Kcy5p
ZH07dGhpcy5wcm9jZXNzRG93bmxvYWQoZSxmKX0scHJvY2Vzc0Rvd25sb2FkOmZ1bmN0aW9uKGYs
ZyxoKXtpZihmJiZnKXtnPQo9M0R0eXBlb2YgZz0zRD0zRCJzdHJpbmciP2c6JC5wYXJhbShnKTt2
YXIgZT0zRCIiOyQuZWFjaChnLnNwbGl0KCImIiksZnVuY3Q9Cmlvbigpe3ZhciBpPTNEdGhpcy5z
cGxpdCgiPTNEIik7ZSs9M0QnPGlucHV0IHR5cGU9M0QiaGlkZGVuIiBuYW1lPTNEIicraVswXT0K
KyciIHZhbHVlPTNEIicraVsxXSsnIiAvPid9KTskKCc8Zm9ybSBhY3Rpb249M0QiJytmKyciIG1l
dGhvZD0zRCInKyhofHwicG9zPQp0IikrJyI+JytlKyI8L2Zvcm0+IikuYXBwZW5kVG8oImJvZHki
KS5zdWJtaXQoKS5yZW1vdmUoKTtkLmluZm8oIllvdXIgZG93bmw9Cm9hZCB3aWxsIGJlZ2luIHNv
b24uIil9fSxpbXBvcnRJbnRvSGlzdG9yeTpmdW5jdGlvbigpe3RoaXMucmVmcmVzaFVzZXJIaXN0
bz0Kcmllc0xpc3QoZnVuY3Rpb24oZSl7dmFyIGY9M0RlLnRlbXBsYXRlQnVsa0ltcG9ydEluTW9k
YWwoKTtlLm1vZGFsPTNER2FsYXh5PQoubW9kYWw7ZS5tb2RhbC5zaG93KHtjbG9zaW5nX2V2ZW50
czp0cnVlLHRpdGxlOiJJbXBvcnQgaW50byBIaXN0b3J5Iixib2R5OmY9Cih7aGlzdG9yaWVzOmUu
aGlzdG9yaWVzLm1vZGVsc30pLGJ1dHRvbnM6e0ltcG9ydDpmdW5jdGlvbigpe2UuaW1wb3J0Q3Vy
cmVudD0KSW50b0hpc3RvcnkoKX0sQ2xvc2U6ZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuaGlkZSgp
fX19KX0pfSxyZWZyZXNoVXNlckhpc3RvPQpyaWVzTGlzdDpmdW5jdGlvbihmKXt2YXIgZT0zRHRo
aXM7dGhpcy5oaXN0b3JpZXM9M0RuZXcgYy5HYWxheHlIaXN0b3JpZXMoKTs9CnRoaXMuaGlzdG9y
aWVzLmZldGNoKHtzdWNjZXNzOmZ1bmN0aW9uKGcpe2lmKGcubGVuZ3RoPTNEPTNEPTNEMCl7ZC53
YXJuaW5nKD0KIllvdSBoYXZlIHRvIGNyZWF0ZSBoaXN0b3J5IGZpcnN0LiBDbGljayB0aGlzIHRv
IGRvIHNvLiIsIiIse29uY2xpY2s6ZnVuY3RpPQpvbigpe3dpbmRvdy5sb2NhdGlvbj0zRCIvIn19
KX1lbHNle2YoZSl9fSxlcnJvcjpmdW5jdGlvbihoLGcpe2lmKHR5cGVvZiBnLnI9CmVzcG9uc2VK
U09OIT0zRD0zRCJ1bmRlZmluZWQiKXtkLmVycm9yKGcucmVzcG9uc2VKU09OLmVycl9tc2cpfWVs
c2V7ZC5lcnJvcj0KKCJBbiBlcnJvciBvY3VycmVkLiIpfX19KX0saW1wb3J0Q3VycmVudEludG9I
aXN0b3J5OmZ1bmN0aW9uKCl7dmFyIGU9M0QkKHRoPQppcy5tb2RhbC5lbE1haW4pLmZpbmQoInNl
bGVjdFtuYW1lPTNEZGF0YXNldF9pbXBvcnRfc2luZ2xlXSBvcHRpb246c2VsZWN0ZWQ9CiIpLnZh
bCgpO3ZhciBmPTNEbmV3IGMuSGlzdG9yeUl0ZW0oKTtmLnVybD0zRGYudXJsUm9vdCtlKyIvY29u
dGVudHMiO2pRdWVyeT0KLmdldEpTT04oZ2FsYXh5X2NvbmZpZy5yb290KyJoaXN0b3J5L3NldF9h
c19jdXJyZW50P2lkPTNEIitlKTtmLnNhdmUoe2NvbnRlPQpudDp0aGlzLmlkLHNvdXJjZToibGli
cmFyeSJ9LHtzdWNjZXNzOmZ1bmN0aW9uKCl7R2FsYXh5Lm1vZGFsLmhpZGUoKTtkLnN1Y2M9CmVz
cygiRGF0YXNldCBpbXBvcnRlZC4gQ2xpY2sgdGhpcyB0byBzdGFydCBhbmFseXNpbmcgaXQuIiwi
Iix7b25jbGljazpmdW5jdD0KaW9uKCl7d2luZG93LmxvY2F0aW9uPTNEIi8ifX0pfSxlcnJvcjpm
dW5jdGlvbihoLGcpe2lmKHR5cGVvZiBnLnJlc3BvbnNlSlNPPQpOIT0zRD0zRCJ1bmRlZmluZWQi
KXtkLmVycm9yKCJEYXRhc2V0IG5vdCBpbXBvcnRlZC4gIitnLnJlc3BvbnNlSlNPTi5lcnJfbXM9
CmcpfWVsc2V7ZC5lcnJvcigiQW4gZXJyb3Igb2NjdXJlZC4gRGF0YXNldCBub3QgaW1wb3J0ZWQu
IFBsZWFzZSB0cnkgYWdhaW4uIj0KKX19fSl9LHNoYXJlRGF0YXNldDpmdW5jdGlvbigpe2QuaW5m
bygiRmVhdHVyZSBjb21pbmcgc29vbi4iKX0sZ29CYWNrOmZ1bmN0PQppb24oKXtHYWxheHkubGli
cmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX0sc2hvd1Blcm1pc3Npb25zOmZ1bmN0aW9uKGYp
e3Q9Cmhpcy5vcHRpb25zPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGYpOyQoIi50b29sdGlwIiku
cmVtb3ZlKCk7aWYodGhpcy5vcHRpbz0KbnMuZmV0Y2hlZF9wZXJtaXNzaW9ucyE9M0Q9M0R1bmRl
ZmluZWQpe2lmKHRoaXMub3B0aW9ucy5mZXRjaGVkX3Blcm1pc3Npb25zPQouYWNjZXNzX2RhdGFz
ZXRfcm9sZXMubGVuZ3RoPTNEPTNEPTNEMCl7dGhpcy5tb2RlbC5zZXQoe2lzX3VucmVzdHJpY3Rl
ZDp0cnU9CmV9KX1lbHNle3RoaXMubW9kZWwuc2V0KHtpc191bnJlc3RyaWN0ZWQ6ZmFsc2V9KX19
dmFyIGg9M0RmYWxzZTtpZihHYWxheHkuYz0KdXJyVXNlcil7aD0zREdhbGF4eS5jdXJyVXNlci5p
c0FkbWluKCl9dmFyIGc9M0R0aGlzLnRlbXBsYXRlRGF0YXNldFBlcm1pc3NpPQpvbnMoKTt0aGlz
LiRlbC5odG1sKGcoe2l0ZW06dGhpcy5tb2RlbCxpc19hZG1pbjpofSkpO3ZhciBlPTNEdGhpcztp
Zih0aGlzLm89CnB0aW9ucy5mZXRjaGVkX3Blcm1pc3Npb25zPTNEPTNEPTNEdW5kZWZpbmVkKXsk
LmdldCgod2luZG93LmdhbGF4eV9jb25maWc/Zz0KYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBp
L2xpYnJhcmllcy9kYXRhc2V0cy8iK2UuaWQrIi9wZXJtaXNzaW9ucz9zY29wZT0KPTNEY3VycmVu
dCIpLmRvbmUoZnVuY3Rpb24oaSl7ZS5wcmVwYXJlU2VsZWN0Qm94ZXMoe2ZldGNoZWRfcGVybWlz
c2lvbnM6aSxpPQpzX2FkbWluOmh9KX0pLmZhaWwoZnVuY3Rpb24oKXtkLmVycm9yKCJBbiBlcnJv
ciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHQ9Cm8gZmV0Y2ggZGF0YXNldCBwZXJtaXNzaW9u
cy4iKX0pfWVsc2V7dGhpcy5wcmVwYXJlU2VsZWN0Qm94ZXMoe2lzX2FkbWluOmh9KT0KfSQoIiNj
ZW50ZXIgW2RhdGEtdG9nZ2xlXSIpLnRvb2x0aXAoKTskKCIjY2VudGVyIikuY3NzKCJvdmVyZmxv
dyIsImF1dG8iKX0sPQpwcmVwYXJlU2VsZWN0Qm94ZXM6ZnVuY3Rpb24ocil7dGhpcy5vcHRpb25z
PTNEXy5leHRlbmQodGhpcy5vcHRpb25zLHIpO3ZhciA9CnM9M0R0aGlzLm9wdGlvbnMuZmV0Y2hl
ZF9wZXJtaXNzaW9uczt2YXIgaz0zRHRoaXMub3B0aW9ucy5pc19hZG1pbjt2YXIgcT0zRD0KdGhp
czt2YXIgbT0zRFtdO2Zvcih2YXIgaD0zRDA7aDxzLmFjY2Vzc19kYXRhc2V0X3JvbGVzLmxlbmd0
aDtoKyspe20ucHVzaChzPQouYWNjZXNzX2RhdGFzZXRfcm9sZXNbaF0rIjoiK3MuYWNjZXNzX2Rh
dGFzZXRfcm9sZXNbaF0pfXZhciBmPTNEW107Zm9yKHZhciA9Cmg9M0QwO2g8cy5tb2RpZnlfaXRl
bV9yb2xlcy5sZW5ndGg7aCsrKXtmLnB1c2gocy5tb2RpZnlfaXRlbV9yb2xlc1toXSsiOiIrcz0K
Lm1vZGlmeV9pdGVtX3JvbGVzW2hdKX12YXIgZz0zRFtdO2Zvcih2YXIgaD0zRDA7aDxzLm1hbmFn
ZV9kYXRhc2V0X3JvbGVzLmxlPQpuZ3RoO2grKyl7Zy5wdXNoKHMubWFuYWdlX2RhdGFzZXRfcm9s
ZXNbaF0rIjoiK3MubWFuYWdlX2RhdGFzZXRfcm9sZXNbaF0pfWk9CmYoayl7dmFyIG89M0R7bWlu
aW11bUlucHV0TGVuZ3RoOjAsY3NzOiJhY2Nlc3NfcGVybSIsbXVsdGlwbGU6dHJ1ZSxwbGFjZWhv
bD0KZGVyOiJDbGljayB0byBzZWxlY3QgYSByb2xlIixjb250YWluZXI6cS4kZWwuZmluZCgiI2Fj
Y2Vzc19wZXJtIiksYWpheDp7dXJsPQo6KHdpbmRvdy5nYWxheHlfY29uZmlnP2dhbGF4eV9jb25m
aWcucm9vdDoiLyIpKyJhcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIrcS49CmlkKyIvcGVybWlzc2lv
bnM/c2NvcGU9M0RhdmFpbGFibGUiLGRhdGFUeXBlOiJqc29uIixxdWlldE1pbGxpczoxMDAsZGF0
YTpmdT0KbmN0aW9uKGksdCl7cmV0dXJue3E6aSxwYWdlX2xpbWl0OjEwLHBhZ2U6dH19LHJlc3Vs
dHM6ZnVuY3Rpb24odSx0KXt2YXIgaT0KPTNEKHQqMTApPHUudG90YWw7cmV0dXJue3Jlc3VsdHM6
dS5yb2xlcyxtb3JlOml9fX0sZm9ybWF0UmVzdWx0OmZ1bmN0aW9uIGooPQppKXtyZXR1cm4gaS5u
YW1lKyIgdHlwZTogIitpLnR5cGV9LGZvcm1hdFNlbGVjdGlvbjpmdW5jdGlvbiBlKGkpe3JldHVy
biBpLm49CmFtZX0saW5pdFNlbGVjdGlvbjpmdW5jdGlvbihpLHUpe3ZhciB0PTNEW107JChpLnZh
bCgpLnNwbGl0KCIsIikpLmVhY2goZnVuYz0KdGlvbigpe3ZhciB2PTNEdGhpcy5zcGxpdCgiOiIp
O3QucHVzaCh7aWQ6dlsxXSxuYW1lOnZbMV19KX0pO3UodCl9LGluaXRpYWxEPQphdGE6bS5qb2lu
KCIsIiksZHJvcGRvd25Dc3NDbGFzczoiYmlnZHJvcCJ9O3ZhciBsPTNEe21pbmltdW1JbnB1dExl
bmd0aDowLGM9CnNzOiJtb2RpZnlfcGVybSIsbXVsdGlwbGU6dHJ1ZSxwbGFjZWhvbGRlcjoiQ2xp
Y2sgdG8gc2VsZWN0IGEgcm9sZSIsY29udGFpbj0KZXI6cS4kZWwuZmluZCgiI21vZGlmeV9wZXJt
IiksYWpheDp7dXJsOih3aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnPQoucm9vdDoi
LyIpKyJhcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIrcS5pZCsiL3Blcm1pc3Npb25zP3Njb3BlPTNE
YXZhaWxhYmxlIiw9CmRhdGFUeXBlOiJqc29uIixxdWlldE1pbGxpczoxMDAsZGF0YTpmdW5jdGlv
bihpLHQpe3JldHVybntxOmkscGFnZV9saW1pdDoxMD0KLHBhZ2U6dH19LHJlc3VsdHM6ZnVuY3Rp
b24odSx0KXt2YXIgaT0zRCh0KjEwKTx1LnRvdGFsO3JldHVybntyZXN1bHRzOnUucm9sPQplcyxt
b3JlOml9fX0sZm9ybWF0UmVzdWx0OmZ1bmN0aW9uIGooaSl7cmV0dXJuIGkubmFtZSsiIHR5cGU6
ICIraS50eXBlfSxmb3I9Cm1hdFNlbGVjdGlvbjpmdW5jdGlvbiBlKGkpe3JldHVybiBpLm5hbWV9
LGluaXRTZWxlY3Rpb246ZnVuY3Rpb24oaSx1KXt2YXIgdD0KPTNEW107JChpLnZhbCgpLnNwbGl0
KCIsIikpLmVhY2goZnVuY3Rpb24oKXt2YXIgdj0zRHRoaXMuc3BsaXQoIjoiKTt0LnB1c2goPQp7
aWQ6dlsxXSxuYW1lOnZbMV19KX0pO3UodCl9LGluaXRpYWxEYXRhOmYuam9pbigiLCIpLGRyb3Bk
b3duQ3NzQ2xhc3M6ImJpZ2Q9CnJvcCJ9O3ZhciBwPTNEe21pbmltdW1JbnB1dExlbmd0aDowLGNz
czoibWFuYWdlX3Blcm0iLG11bHRpcGxlOnRydWUscGxhY2Vobz0KbGRlcjoiQ2xpY2sgdG8gc2Vs
ZWN0IGEgcm9sZSIsY29udGFpbmVyOnEuJGVsLmZpbmQoIiNtYW5hZ2VfcGVybSIpLGFqYXg6e3Vy
PQpsOih3aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBpL2xp
YnJhcmllcy9kYXRhc2V0cy8iK3E9Ci5pZCsiL3Blcm1pc3Npb25zP3Njb3BlPTNEYXZhaWxhYmxl
IixkYXRhVHlwZToianNvbiIscXVpZXRNaWxsaXM6MTAwLGRhdGE6Zj0KdW5jdGlvbihpLHQpe3Jl
dHVybntxOmkscGFnZV9saW1pdDoxMCxwYWdlOnR9fSxyZXN1bHRzOmZ1bmN0aW9uKHUsdCl7dmFy
IGk9Cj0zRCh0KjEwKTx1LnRvdGFsO3JldHVybntyZXN1bHRzOnUucm9sZXMsbW9yZTppfX19LGZv
cm1hdFJlc3VsdDpmdW5jdGlvbiBqKD0KaSl7cmV0dXJuIGkubmFtZSsiIHR5cGU6ICIraS50eXBl
fSxmb3JtYXRTZWxlY3Rpb246ZnVuY3Rpb24gZShpKXtyZXR1cm4gaS5uPQphbWV9LGluaXRTZWxl
Y3Rpb246ZnVuY3Rpb24oaSx1KXt2YXIgdD0zRFtdOyQoaS52YWwoKS5zcGxpdCgiLCIpKS5lYWNo
KGZ1bmM9CnRpb24oKXt2YXIgdj0zRHRoaXMuc3BsaXQoIjoiKTt0LnB1c2goe2lkOnZbMV0sbmFt
ZTp2WzFdfSl9KTt1KHQpfSxpbml0aWFsRD0KYXRhOmcuam9pbigiLCIpLGRyb3Bkb3duQ3NzQ2xh
c3M6ImJpZ2Ryb3AifTtxLmFjY2Vzc1NlbGVjdE9iamVjdD0zRG5ldyBiLlZpPQpldyhvKTtxLm1v
ZGlmeVNlbGVjdE9iamVjdD0zRG5ldyBiLlZpZXcobCk7cS5tYW5hZ2VTZWxlY3RPYmplY3Q9M0Ru
ZXcgYi5WaWU9CncocCl9ZWxzZXt2YXIgbj0zRHEudGVtcGxhdGVBY2Nlc3NTZWxlY3QoKTskLmdl
dCgod2luZG93LmdhbGF4eV9jb25maWc/Z2FsYT0KeHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBpL2xp
YnJhcmllcy9kYXRhc2V0cy8iK3EuaWQrIi9wZXJtaXNzaW9ucz9zY29wZT0zRGF2PQphaWxhYmxl
IixmdW5jdGlvbihpKXskKCIuYWNjZXNzX3Blcm0iKS5odG1sKG4oe29wdGlvbnM6aS5yb2xlc30p
KTtxLmFjY2Vzc1M9CmVsZWN0T2JqZWN0PTNEJCgiI2FjY2Vzc19zZWxlY3QiKS5zZWxlY3QyKCl9
KS5mYWlsKGZ1bmN0aW9uKCl7ZC5lcnJvcigiQW4gZT0KcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRl
bXB0aW5nIHRvIGZldGNoIGRhdGFzZXQgcGVybWlzc2lvbnMuIil9KX19LGNvbWluZ1NvPQpvbjpm
dW5jdGlvbigpe2Qud2FybmluZygiRmVhdHVyZSBjb21pbmcgc29vbi4iKX0sY29weVRvQ2xpcGJv
YXJkOmZ1bmN0aW9uKCk9Cnt2YXIgZT0zREJhY2tib25lLmhpc3RvcnkubG9jYXRpb24uaHJlZjtp
ZihlLmxhc3RJbmRleE9mKCIvcGVybWlzc2lvbnMiKSE9Cj0zRD0zRC0xKXtlPTNEZS5zdWJzdHIo
MCxlLmxhc3RJbmRleE9mKCIvcGVybWlzc2lvbnMiKSl9d2luZG93LnByb21wdCgiQ29weT0KIHRv
IGNsaXBib2FyZDogQ3RybCtDLCBFbnRlciIsZSl9LG1ha2VEYXRhc2V0UHJpdmF0ZTpmdW5jdGlv
bigpe3ZhciBlPTNEdGhpPQpzOyQucG9zdCgod2luZG93LmdhbGF4eV9jb25maWc/Z2FsYXh5X2Nv
bmZpZy5yb290OiIvIikrImFwaS9saWJyYXJpZXMvZGF0YXM9CmV0cy8iK2UuaWQrIi9wZXJtaXNz
aW9ucz9hY3Rpb249M0RtYWtlX3ByaXZhdGUiKS5kb25lKGZ1bmN0aW9uKGYpe2UubW9kZWwucz0K
ZXQoe2lzX3VucmVzdHJpY3RlZDpmYWxzZX0pO2Uuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Bl
cm1pc3Npb25zOmZ9KTtkLnN1PQpjY2VzcygiVGhlIGRhdGFzZXQgaXMgbm93IHByaXZhdGUgdG8g
eW91LiIpfSkuZmFpbChmdW5jdGlvbigpe2QuZXJyb3IoIkFuIGU9CnJyb3Igb2NjdXJyZWQgd2hp
bGUgYXR0ZW1wdGluZyB0byBtYWtlIGRhdGFzZXQgcHJpdmF0ZS4iKX0pfSxyZW1vdmVEYXRhc2V0
Uj0KZXN0cmljdGlvbnM6ZnVuY3Rpb24oKXt2YXIgZT0zRHRoaXM7JC5wb3N0KCh3aW5kb3cuZ2Fs
YXh5X2NvbmZpZz9nYWxheHlfY29uPQpmaWcucm9vdDoiLyIpKyJhcGkvbGlicmFyaWVzL2RhdGFz
ZXRzLyIrZS5pZCsiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHJlbW92ZV89CnJlc3RyaWN0aW9ucyIp
LmRvbmUoZnVuY3Rpb24oZil7ZS5tb2RlbC5zZXQoe2lzX3VucmVzdHJpY3RlZDp0cnVlfSk7ZS5z
aG93UD0KZXJtaXNzaW9ucyh7ZmV0Y2hlZF9wZXJtaXNzaW9uczpmfSk7ZC5zdWNjZXNzKCJBY2Nl
c3MgdG8gdGhpcyBkYXRhc2V0IGlzIG5vPQp3IHVucmVzdHJpY3RlZC4iKX0pLmZhaWwoZnVuY3Rp
b24oKXtkLmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXA9CnRpbmcgdG8gbWFr
ZSBkYXRhc2V0IHVucmVzdHJpY3RlZC4iKX0pfSxzYXZlUGVybWlzc2lvbnM6ZnVuY3Rpb24oZSl7
dmFyIG49Cj0zRHRoaXM7dmFyIGs9M0R0aGlzLmFjY2Vzc1NlbGVjdE9iamVjdC4kZWwuc2VsZWN0
MigiZGF0YSIpO3ZhciBmPTNEdGhpcy5tYT0KbmFnZVNlbGVjdE9iamVjdC4kZWwuc2VsZWN0Migi
ZGF0YSIpO3ZhciBtPTNEdGhpcy5tb2RpZnlTZWxlY3RPYmplY3QuJGVsLnNlPQpsZWN0MigiZGF0
YSIpO3ZhciBnPTNEW107dmFyIGo9M0RbXTt2YXIgbD0zRFtdO2Zvcih2YXIgaD0zRGsubGVuZ3Ro
LTE7aD49M0Q9CjA7aC0tKXtnLnB1c2goa1toXS5pZCl9Zm9yKHZhciBoPTNEZi5sZW5ndGgtMTto
Pj0zRDA7aC0tKXtqLnB1c2goZltoXS5pZCl9Zj0Kb3IodmFyIGg9M0RtLmxlbmd0aC0xO2g+PTNE
MDtoLS0pe2wucHVzaChtW2hdLmlkKX0kLnBvc3QoKHdpbmRvdy5nYWxheHlfY29uPQpmaWc/Z2Fs
YXh5X2NvbmZpZy5yb290OiIvIikrImFwaS9saWJyYXJpZXMvZGF0YXNldHMvIituLmlkKyIvcGVy
bWlzc2lvbnM/YWM9CnRpb249M0RzZXRfcGVybWlzc2lvbnMiLHsiYWNjZXNzX2lkc1tdIjpnLCJt
YW5hZ2VfaWRzW10iOmosIm1vZGlmeV9pZHNbXSI6bD0KLH0pLmRvbmUoZnVuY3Rpb24oaSl7bi5z
aG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6aX0pO2Quc3VjY2VzcygiPQpQZXJt
aXNzaW9ucyBzYXZlZC4iKX0pLmZhaWwoZnVuY3Rpb24oKXtkLmVycm9yKCJBbiBlcnJvciBvY2N1
cnJlZCB3aGlsZSBhdHQ9CmVtcHRpbmcgdG8gc2V0IGRhdGFzZXQgcGVybWlzc2lvbnMuIil9KX0s
dGVtcGxhdGVEYXRhc2V0OmZ1bmN0aW9uKCl7dmFyIGU9Cj0zRFtdO2UucHVzaCgnPGRpdiBjbGFz
cz0zRCJsaWJyYXJ5X3N0eWxlX2NvbnRhaW5lciI+Jyk7ZS5wdXNoKCcgIDxkaXYgaWQ9Cj0zRCJs
aWJyYXJ5X3Rvb2xiYXIiPicpO2UucHVzaCgnICAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29s
dGlwIiBkYXRhLXBsYT0KY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiRG93bmxvYWQgZGF0YXNldCIg
Y2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0IHRvb2xidG4tPQpkb3dubG9hZC1kYXRhc2V0IHByaW1h
cnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZG93bmw9Cm9h
ZCI+PC9zcGFuPiBEb3dubG9hZDwvc3Bhbj48L2J1dHRvbj4nKTtlLnB1c2goJyAgIDxidXR0b24g
ZGF0YS10b2dnbGU9M0QidD0Kb29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNE
IkltcG9ydCBkYXRhc2V0IGludG8gaGlzdG9yeSIgY2xhc3M9Cj0zRCJidG4gYnRuLWRlZmF1bHQg
dG9vbGJ0bi1pbXBvcnQtZGF0YXNldCBwcmltYXJ5LWJ1dHRvbiIgdHlwZT0zRCJidXR0b24iPj0K
PHNwYW4gY2xhc3M9M0QiZmEgZmEtYm9vayI+PC9zcGFuPiB0byBIaXN0b3J5PC9zcGFuPjwvYnV0
dG9uPicpO2UucHVzaCgnICAgPQo8JSBpZiAoaXRlbS5nZXQoImNhbl91c2VyX21vZGlmeSIpKSB7
ICU+Jyk7ZS5wdXNoKCcgICA8YnV0dG9uIGRhdGEtdG9nZ2xlPQo9M0QidG9vbHRpcCIgZGF0YS1w
bGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJNb2RpZnkgbGlicmFyeSBpdGVtIiBjbGFzcz0zRCI9
CmJ0biBidG4tZGVmYXVsdCB0b29sYnRuX21vZGlmeV9kYXRhc2V0IHByaW1hcnktYnV0dG9uIiB0
eXBlPTNEImJ1dHRvbiI+PHNwYT0KbiBjbGFzcz0zRCJmYSBmYS1wZW5jaWwiPjwvc3Bhbj4gTW9k
aWZ5PC9zcGFuPjwvYnV0dG9uPicpO2UucHVzaCgiICAgPCUgfSAlPQo+Iik7ZS5wdXNoKCcgICA8
JSBpZiAoaXRlbS5nZXQoImNhbl91c2VyX21hbmFnZSIpKSB7ICU+Jyk7ZS5wdXNoKCcgICA8YSBo
cmU9CmY9M0QiI2ZvbGRlcnMvPCUtIGl0ZW0uZ2V0KCJmb2xkZXJfaWQiKSAlPi9kYXRhc2V0cy88
JS0gaXRlbS5pZCAlPi9wZXJtaXNzaT0Kb25zIj48YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0
aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiTWFuYWdlPQogcGVybWlzc2lvbnMi
IGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCB0b29sYnRuX2NoYW5nZV9wZXJtaXNzaW9ucyBwcmlt
YXJ5LWI9CnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZ3JvdXAi
Pjwvc3Bhbj4gUGVybWlzc2lvbnM8L3NwYT0Kbj48L2J1dHRvbj48L2E+Jyk7ZS5wdXNoKCIgICA8
JSB9ICU+Iik7ZS5wdXNoKCIgIDwvZGl2PiIpO2UucHVzaCgnPG9sIGNsYXNzPQo9M0QiYnJlYWRj
cnVtYiI+Jyk7ZS5wdXNoKCcgICA8bGk+PGEgdGl0bGU9M0QiUmV0dXJuIHRvIHRoZSBsaXN0IG9m
IGxpYnJhcmk9CmVzIiBocmVmPTNEIiMiPkxpYnJhcmllczwvYT48L2xpPicpO2UucHVzaCgnICAg
PCUgXy5lYWNoKGl0ZW0uZ2V0KCJmdWxsX3BhdD0KaCIpLCBmdW5jdGlvbihwYXRoX2l0ZW0pIHsg
JT4nKTtlLnB1c2goIiAgIDwlIGlmIChwYXRoX2l0ZW1bMF0gIT0zRCBpdGVtLmlkPQopIHsgJT4i
KTtlLnB1c2goJyAgIDxsaT48YSB0aXRsZT0zRCJSZXR1cm4gdG8gdGhpcyBmb2xkZXIiIGhyZWY9
M0QiIy9mb2xkZXI9CnMvPCUtIHBhdGhfaXRlbVswXSAlPiI+PCUtIHBhdGhfaXRlbVsxXSAlPjwv
YT48L2xpPiAnKTtlLnB1c2goIjwlIH0gZWxzZSB7ID0KJT4iKTtlLnB1c2goJyAgIDxsaSBjbGFz
cz0zRCJhY3RpdmUiPjxzcGFuIHRpdGxlPTNEIllvdSBhcmUgaGVyZSI+PCUtIHBhdGhfPQppdGVt
WzFdICU+PC9zcGFuPjwvbGk+Jyk7ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCIgICA8JSB9
KTsgJT4iKTtlLnB1c2g9CigiPC9vbD4iKTtlLnB1c2goJzwlIGlmIChpdGVtLmdldCgiaXNfdW5y
ZXN0cmljdGVkIikpIHsgJT4nKTtlLnB1c2goJyAgPGRpdj0KIGNsYXNzPTNEImFsZXJ0IGFsZXJ0
LWluZm8iPicpO2UucHVzaCgiICBUaGlzIGRhdGFzZXQgaXMgdW5yZXN0cmljdGVkIHNvIGV2PQpl
cnlib2R5IGNhbiBhY2Nlc3MgaXQuIEp1c3Qgc2hhcmUgdGhlIFVSTCBvZiB0aGlzIHBhZ2UuICIp
O2UucHVzaCgnICA8YnV0dG89Cm4gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1l
bnQ9M0QidG9wIiB0aXRsZT0zRCJDb3B5IHRvIGNsaXBib2FyZD0KIiBjbGFzcz0zRCJidG4gYnRu
LWRlZmF1bHQgYnRuLWNvcHktbGluay10by1jbGlwYm9hcmQgcHJpbWFyeS1idXR0b24iIHR5cGU9
Cj0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLWNsaXBib2FyZCI+PC9zcGFuPiBUbyBD
bGlwYm9hcmQ8L3NwYW4+PC9idT0KdHRvbj4gJyk7ZS5wdXNoKCIgIDwvZGl2PiIpO2UucHVzaCgi
PCUgfSAlPiIpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJkYXRhc2V0PQpfdGFibGUiPicpO2UucHVz
aCgnICAgPHRhYmxlIGNsYXNzPTNEImdyaWQgdGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1jb25k
ZW49CnNlZCI+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGgg
c2NvcGU9M0Qicm93IiBpZD0zRCJpZD0KX3JvdyIgZGF0YS1pZD0zRCI8JT0zRCBfLmVzY2FwZShp
dGVtLmdldCgibGRkYV9pZCIpKSAlPiI+TmFtZTwvdGg+Jyk7ZS5wdXNoPQooJyAgICAgICAgICAg
PHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJuYW1lIikpICU+PC90ZD4nKTtlLnB1c2goIiAg
ICAgICA9CjwvdHI+Iik7ZS5wdXNoKCcgICA8JSBpZiAoaXRlbS5nZXQoImZpbGVfZXh0IikpIHsg
JT4nKTtlLnB1c2goIiAgICAgICA8dHI+Ij0KKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3Bl
PTNEInJvdyI+RGF0YSB0eXBlPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPQo8dGQ+PCU9M0Qg
Xy5lc2NhcGUoaXRlbS5nZXQoImZpbGVfZXh0IikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8
L3RyPiIpO2U9Ci5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAoaXRlbS5nZXQo
Imdlbm9tZV9idWlsZCIpKSB7ICU+Jyk7ZS5wdT0Kc2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcg
ICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPkdlbm9tZSBidWlsZDwvdGg+Jyk7PQplLnB1c2go
JyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJnZW5vbWVfYnVpbGQiKSkg
JT48L3RkPicpO2U9Ci5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtl
LnB1c2goJyAgIDwlIGlmIChpdGVtLmdldCgiZmlsZT0KX3NpemUiKSkgeyAlPicpO2UucHVzaCgi
ICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+PQpTaXpl
PC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJm
aWxlX3NpemUiKSkgJT49CjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAg
IDwlIH0gJT4iKTtlLnB1c2goJyAgIDwlIGlmIChpdGVtLj0KZ2V0KCJkYXRlX3VwbG9hZGVkIikp
IHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzPQpj
b3BlPTNEInJvdyI+RGF0ZSB1cGxvYWRlZCAoVVRDKTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAg
IDx0ZD48JT0zRCBfLmVzY2E9CnBlKGl0ZW0uZ2V0KCJkYXRlX3VwbG9hZGVkIikpICU+PC90ZD4n
KTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPD0KJSB9ICU+Iik7ZS5wdXNoKCcg
ICA8JSBpZiAoaXRlbS5nZXQoInVwbG9hZGVkX2J5IikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8
PQp0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+VXBsb2FkZWQgYnk8
L3RoPicpO2UucHVzaCgnICAgICA9CiAgICAgIDx0ZD48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgi
dXBsb2FkZWRfYnkiKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgID0KPC90cj4iKTtlLnB1c2go
IiAgIDwlIH0gJT4iKTtlLnB1c2goJyAgIDwlIGlmIChpdGVtLmdldCgibWV0YWRhdGFfZGF0YV9s
aW5lPQpzIikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAg
IDx0aCBzY29wZT0zRCJyb3ciPkRhdGE9CiBMaW5lczwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAg
IDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KD0KIm1ldGFkYXRhX2Rh
dGFfbGluZXMiKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICA8
JSB9ICU+PQoiKTtlLnB1c2goJyAgIDwlIGlmIChpdGVtLmdldCgibWV0YWRhdGFfY29tbWVudF9s
aW5lcyIpKSB7ICU+Jyk7ZS5wdXNoKCIgICA9CiAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAg
IDx0aCBzY29wZT0zRCJyb3ciPkNvbW1lbnQgTGluZXM8L3RoPicpO2UucHVzaD0KKCcgICAgICAg
ICAgIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJtZXRhZGF0YV9j
b21tZW50X2xpPQpuZXMiKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNo
KCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSA9CmlmIChpdGVtLmdldCgibWV0YWRhdGFfY29s
dW1ucyIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgID0KICAgICAg
IDx0aCBzY29wZT0zRCJyb3ciPk51bWJlciBvZiBDb2x1bW5zPC90aD4nKTtlLnB1c2goJyAgICAg
ICAgICAgPHRkIHNjPQpvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibWV0YWRh
dGFfY29sdW1ucyIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCI9CiAgICAgICA8L3RyPiIpO2UucHVzaCgi
ICAgPCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgKGl0ZW0uZ2V0KCJtZXRhZGF0YV9jbz0KbHVt
bl90eXBlcyIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAg
ICA8dGggc2NvcGU9M0QiPQpyb3ciPkNvbHVtbiBUeXBlczwvdGg+Jyk7ZS5wdXNoKCcgICAgICAg
ICAgIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXA9CmUoaXRlbS5nZXQoIm1ldGFkYXRh
X2NvbHVtbl90eXBlcyIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1cz0K
aCgiICAgPCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgKGl0ZW0uZ2V0KCJtZXNzYWdlIikpIHsg
JT4nKTtlLnB1c2goIiAgICAgPQogIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3Bl
PTNEInJvdyI+TWVzc2FnZTwvdGg+Jyk7ZS5wdXNoKCcgICAgICA9CiAgICAgPHRkIHNjb3BlPTNE
InJvdyI+PCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoIm1lc3NhZ2UiKSkgJT48L3RkPicpO2UucHVz
aD0KKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2goJyAgIDwlIGlm
IChpdGVtLmdldCgibWlzY19ibHVyPQpiIikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7
ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPk1pc2M9CmVsbGFuZW91cyBibHVy
YjwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNj
YXBlKD0KaXRlbS5nZXQoIm1pc2NfYmx1cmIiKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwv
dHI+Iik7ZS5wdXNoKCIgICA8JSB9ICU+PQoiKTtlLnB1c2goJyAgIDwlIGlmIChpdGVtLmdldCgi
bWlzY19pbmZvIikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS49CnB1c2goJyAgICAg
ICAgICAgPHRoIHNjb3BlPTNEInJvdyI+TWlzY2VsbGFuZW91cyBpbmZvcm1hdGlvbjwvdGg+Jyk7
ZS5wdXNoKD0KJyAgICAgICAgICAgPHRkIHNjb3BlPTNEInJvdyI+PCU9M0QgXy5lc2NhcGUoaXRl
bS5nZXQoIm1pc2NfaW5mbyIpKSAlPjwvdGQ+PQonKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2Uu
cHVzaCgiICAgPCUgfSAlPiIpO2UucHVzaCgiICAgIDwvdGFibGU+Iik7ZS5wdXM9CmgoIiAgICA8
ZGl2PiIpO2UucHVzaCgnICAgICAgICA8cHJlIGNsYXNzPTNEInBlZWsiPicpO2UucHVzaCgiICAg
ICAgICA8L3ByZT0KPiIpO2UucHVzaCgiICAgIDwvZGl2PiIpO2UucHVzaCgnICAgPCUgaWYgKGl0
ZW0uZ2V0KCJoYXNfdmVyc2lvbnMiKSkgeyAlPicpPQo7ZS5wdXNoKCIgICAgICA8ZGl2PiIpO2Uu
cHVzaCgiICAgICAgPGgzPkV4cGlyZWQgdmVyc2lvbnM6PC9oMz4iKTtlLnB1c2goIiA9CiAgICAg
PHVsPiIpO2UucHVzaCgnICAgICAgPCUgXy5lYWNoKGl0ZW0uZ2V0KCJleHBpcmVkX3ZlcnNpb25z
IiksIGZ1bmN0aW9uKD0KdmVyc2lvbikgeyAlPicpO2UucHVzaCgnICAgICAgICA8bGk+PGEgdGl0
bGU9M0QiU2VlIGRldGFpbHMgb2YgdGhpcyB2ZXJzaW9uPQoiIGhyZWY9M0QiI2ZvbGRlcnMvPCUt
IGl0ZW0uZ2V0KCJmb2xkZXJfaWQiKSAlPi9kYXRhc2V0cy88JS0gaXRlbS5pZCAlPi92ZXI9CnNp
b25zLzwlLSB2ZXJzaW9uWzBdICU+Ij48JS0gdmVyc2lvblsxXSAlPjwvYT48L2xpPicpO2UucHVz
aCgiICAgICAgPCUgfSkgJT0KPiIpO2UucHVzaCgiICAgICAgPHVsPiIpO2UucHVzaCgiICAgICAg
PC9kaXY+Iik7ZS5wdXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoPQooIjwvZGl2PiIpO2UucHVzaCgi
PC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5qb2luKCIiKSl9LHRlbXBsYXRlVmVyc2lvbjo9
CmZ1bmN0aW9uKCl7dmFyIGU9M0RbXTtlLnB1c2goJzxkaXYgY2xhc3M9M0QibGlicmFyeV9zdHls
ZV9jb250YWluZXIiPicpO2UucD0KdXNoKCcgIDxkaXYgaWQ9M0QibGlicmFyeV90b29sYmFyIj4n
KTtlLnB1c2goJyAgIDxhIGhyZWY9M0QiI2ZvbGRlcnMvPCUtIGl0PQplbS5nZXQoImZvbGRlcl9p
ZCIpICU+L2RhdGFzZXRzLzwlLSBpdGVtLmlkICU+Ij48YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRv
b2w9CnRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJHbyB0byBsYXRlc3QgZGF0
YXNldCIgY2xhc3M9M0QiYnRuIGJ0bj0KLWRlZmF1bHQgcHJpbWFyeS1idXR0b24iIHR5cGU9M0Qi
YnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1jYXJldC1sZWZ0IGZhPQotbGciPjwvc3Bhbj4g
TGF0ZXN0IGRhdGFzZXQ8L3NwYW4+PC9idXR0b24+PGE+Jyk7ZS5wdXNoKCIgIDwvZGl2PiIpO2Uu
cHVzaCg9Cic8b2wgY2xhc3M9M0QiYnJlYWRjcnVtYiI+Jyk7ZS5wdXNoKCcgICA8bGk+PGEgdGl0
bGU9M0QiUmV0dXJuIHRvIHRoZSBsaXN0ID0Kb2YgbGlicmFyaWVzIiBocmVmPTNEIiMiPkxpYnJh
cmllczwvYT48L2xpPicpO2UucHVzaCgnICAgPCUgXy5lYWNoKGl0ZW0uZ2V0PQooImZ1bGxfcGF0
aCIpLCBmdW5jdGlvbihwYXRoX2l0ZW0pIHsgJT4nKTtlLnB1c2goIiAgIDwlIGlmIChwYXRoX2l0
ZW1bMF0gIT0KPTNEIGl0ZW0uaWQpIHsgJT4iKTtlLnB1c2goJyAgIDxsaT48YSB0aXRsZT0zRCJS
ZXR1cm4gdG8gdGhpcyBmb2xkZXIiIGhyZWY9Cj0zRCIjL2ZvbGRlcnMvPCUtIHBhdGhfaXRlbVsw
XSAlPiI+PCUtIHBhdGhfaXRlbVsxXSAlPjwvYT48L2xpPiAnKTtlLnB1c2goIj0KPCUgfSBlbHNl
IHsgJT4iKTtlLnB1c2goJyAgIDxsaSBjbGFzcz0zRCJhY3RpdmUiPjxzcGFuIHRpdGxlPTNEIllv
dSBhcmUgaGVyPQplIj48JS0gcGF0aF9pdGVtWzFdICU+PC9zcGFuPjwvbGk+Jyk7ZS5wdXNoKCIg
ICA8JSB9ICU+Iik7ZS5wdXNoKCIgICA8JSB9KTs9CiAlPiIpO2UucHVzaCgiPC9vbD4iKTtlLnB1
c2goJyAgPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC13YXJuaW5nIj5UaGlzIGlzID0KYW4gZXhw
aXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IGRhdGFzZXQ6IDwlPTNEIF8uZXNjYXBlKGl0ZW0u
Z2V0KCJuYW1lIikpPQogJT48L2Rpdj4nKTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiZGF0YXNldF90
YWJsZSI+Jyk7ZS5wdXNoKCcgICA8dGFibGUgY2xhc3M9Cj0zRCJncmlkIHRhYmxlIHRhYmxlLXN0
cmlwZWQgdGFibGUtY29uZGVuc2VkIj4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdT0Kc2go
JyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyIgaWQ9M0QiaWRfcm93IiBkYXRhLWlkPTNEIjwl
PTNEIF8uZXNjYXBlKGxkPQpkYS5pZCkgJT4iPk5hbWU8L3RoPicpO2UucHVzaCgnICAgICAgICAg
ICA8dGQ+PCU9M0QgXy5lc2NhcGUobGRkYS5nZXQoIm5hbWU9CiIpKSAlPjwvdGQ+Jyk7ZS5wdXNo
KCIgICAgICAgPC90cj4iKTtlLnB1c2goJyAgIDwlIGlmIChsZGRhLmdldCgiZmlsZV9leHQiKT0K
KSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2Nv
cGU9M0Qicm93Ij5EYXRhIHR5PQpwZTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZD48JT0z
RCBfLmVzY2FwZShsZGRhLmdldCgiZmlsZV9leHQiKSkgJT48L3Q9CmQ+Jyk7ZS5wdXNoKCIgICAg
ICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2goJyAgIDwlIGlmIChsZGRhLmdl
dD0KKCJnZW5vbWVfYnVpbGQiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2go
JyAgICAgICAgICAgPHRoIHNjb3BlPQo9M0Qicm93Ij5HZW5vbWUgYnVpbGQ8L3RoPicpO2UucHVz
aCgnICAgICAgICAgICA8dGQ+PCU9M0QgXy5lc2NhcGUobGRkYS5nZXQ9CigiZ2Vub21lX2J1aWxk
IikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIp
O2UucD0KdXNoKCcgICA8JSBpZiAobGRkYS5nZXQoImZpbGVfc2l6ZSIpKSB7ICU+Jyk7ZS5wdXNo
KCIgICAgICAgPHRyPiIpO2UucHVzaCgnPQogICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPlNp
emU8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQ+PCU9M0QgXy5lc2M9CmFwZShsZGRhLmdl
dCgiZmlsZV9zaXplIikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgi
ICAgPCUgfT0KICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAobGRkYS5nZXQoImRhdGVfdXBsb2FkZWQi
KSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0PQpyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGgg
c2NvcGU9M0Qicm93Ij5EYXRlIHVwbG9hZGVkIChVVEMpPC90aD4nKTtlLnB1c2g9CignICAgICAg
ICAgICA8dGQ+PCU9M0QgXy5lc2NhcGUobGRkYS5nZXQoImRhdGVfdXBsb2FkZWQiKSkgJT48L3Rk
PicpO2UucHVzaD0KKCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgIDwlIH0gJT4iKTtlLnB1c2go
JyAgIDwlIGlmIChsZGRhLmdldCgidXBsb2FkZWRfPQpieSIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAg
ICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5VcGw9Cm9hZGVk
IGJ5PC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGxkZGEuZ2V0
KCJ1cGxvYWRlZF9ieT0KIikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVz
aCgiICAgPCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgPQoobGRkYS5nZXQoIm1ldGFkYXRhX2Rh
dGFfbGluZXMiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICA9CiAg
ICAgICA8dGggc2NvcGU9M0Qicm93Ij5EYXRhIExpbmVzPC90aD4nKTtlLnB1c2goJyAgICAgICAg
ICAgPHRkIHNjb3BlPTNEIj0Kcm93Ij48JT0zRCBfLmVzY2FwZShsZGRhLmdldCgibWV0YWRhdGFf
ZGF0YV9saW5lcyIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgPQogICA8L3RyPiIpO2UucHVzaCgi
ICAgPCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgKGxkZGEuZ2V0KCJtZXRhZGF0YV9jb21tZW49
CnRfbGluZXMiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAg
ICAgPHRoIHNjb3BlPTNEInJvdz0KIj5Db21tZW50IExpbmVzPC90aD4nKTtlLnB1c2goJyAgICAg
ICAgICAgPHRkIHNjb3BlPTNEInJvdyI+PCU9M0QgXy5lc2NhcGUoPQpsZGRhLmdldCgibWV0YWRh
dGFfY29tbWVudF9saW5lcyIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4iKTtlLnB1
c2g9CigiICAgPCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgKGxkZGEuZ2V0KCJtZXRhZGF0YV9j
b2x1bW5zIikpIHsgJT4nKTtlLnB1cz0KaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAg
ICAgPHRoIHNjb3BlPTNEInJvdyI+TnVtYmVyIG9mIENvbHVtbnM8L3RoPQo+Jyk7ZS5wdXNoKCcg
ICAgICAgICAgIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGxkZGEuZ2V0KCJtZXRh
ZGF0YV89CmNvbHVtbnMiKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNo
KCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgID0KIDwlIGlmIChsZGRhLmdldCgibWV0YWRhdGFfY29s
dW1uX3R5cGVzIikpIHsgJT4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wPQp1c2goJyAgICAg
ICAgICAgPHRoIHNjb3BlPTNEInJvdyI+Q29sdW1uIFR5cGVzPC90aD4nKTtlLnB1c2goJyAgICAg
ICAgICAgPHQ9CmQgc2NvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShsZGRhLmdldCgibWV0YWRh
dGFfY29sdW1uX3R5cGVzIikpICU+PC90ZD4nKT0KO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5w
dXNoKCIgICA8JSB9ICU+Iik7ZS5wdXNoKCcgICA8JSBpZiAobGRkYS5nZXQoIm1lPQpzc2FnZSIp
KSB7ICU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2Nv
cGU9M0Qicm93Ij49Ck1lc3NhZ2U8L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9
M0Qicm93Ij48JT0zRCBfLmVzY2FwZShsZGRhLmdldD0KKCJtZXNzYWdlIikpICU+PC90ZD4nKTtl
LnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UucHVzaCgnPQogICA8
JSBpZiAobGRkYS5nZXQoIm1pc2NfYmx1cmIiKSkgeyAlPicpO2UucHVzaCgiICAgICAgIDx0cj4i
KTtlLnB1c2goJyAgICA9CiAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5NaXNjZWxsYW5lb3VzIGJs
dXJiPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkID0Kc2NvcGU9M0Qicm93Ij48JT0zRCBf
LmVzY2FwZShsZGRhLmdldCgibWlzY19ibHVyYiIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgPQog
ICA8L3RyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UucHVzaCgnICAgPCUgaWYgKGxkZGEuZ2V0
KCJtaXNjX2luZm8iKSkgeyA9CiU+Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAg
ICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5NaXNjZWxsYW5lbz0KdXMgaW5mb3JtYXRpb248L3Ro
PicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShs
PQpkZGEuZ2V0KCJtaXNjX2luZm8iKSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7
ZS5wdXNoKCIgICA8JSB9ICU+Iik9CjtlLnB1c2goIiAgICA8L3RhYmxlPiIpO2UucHVzaCgiICAg
IDxkaXY+Iik7ZS5wdXNoKCcgICAgICAgIDxwcmUgY2xhc3M9M0QicD0KZWVrIj4nKTtlLnB1c2go
IiAgICAgICAgPC9wcmU+Iik7ZS5wdXNoKCIgICAgPC9kaXY+Iik7ZS5wdXNoKCI8L2Rpdj4iKTtl
LnB1PQpzaCgiPC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5qb2luKCIiKSl9LHRlbXBsYXRl
TW9kaWZ5RGF0YXNldDpmdW5jdGlvbig9Cil7dmFyIGU9M0RbXTtlLnB1c2goJzxkaXYgY2xhc3M9
M0QibGlicmFyeV9zdHlsZV9jb250YWluZXIiPicpO2UucHVzaCgnICA8ZD0KaXYgaWQ9M0QibGli
cmFyeV90b29sYmFyIj4nKTtlLnB1c2goJyAgIDxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRp
cCIgZGF0PQphLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIkNhbmNlbCBtb2RpZmljYXRpb25z
IiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQ9CiB0b29sYnRuX2NhbmNlbF9tb2RpZmljYXRpb25z
IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9Cj0zRCJmYSBmYS10
aW1lcyI+PC9zcGFuPiBDYW5jZWw8L3NwYW4+PC9idXR0b24+Jyk7ZS5wdXNoKCcgICA8YnV0dG9u
IGRhdGEtdD0Kb2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0z
RCJTYXZlIG1vZGlmaWNhdGlvbnMiIGNsYXNzPQo9M0QiYnRuIGJ0bi1kZWZhdWx0IHRvb2xidG5f
c2F2ZV9tb2RpZmljYXRpb25zIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHQ9Cm9uIj48c3Bh
biBjbGFzcz0zRCJmYSBmYS1mbG9wcHktbyI+PC9zcGFuPiBTYXZlPC9zcGFuPjwvYnV0dG9uPicp
O2UucHVzaCgiID0KIDwvZGl2PiIpO2UucHVzaCgnPG9sIGNsYXNzPTNEImJyZWFkY3J1bWIiPicp
O2UucHVzaCgnICAgPGxpPjxhIHRpdGxlPTNEIlJlPQp0dXJuIHRvIHRoZSBsaXN0IG9mIGxpYnJh
cmllcyIgaHJlZj0zRCIjIj5MaWJyYXJpZXM8L2E+PC9saT4nKTtlLnB1c2goJyAgIDw9CiUgXy5l
YWNoKGl0ZW0uZ2V0KCJmdWxsX3BhdGgiKSwgZnVuY3Rpb24ocGF0aF9pdGVtKSB7ICU+Jyk7ZS5w
dXNoKCIgICA8JSBpZj0KIChwYXRoX2l0ZW1bMF0gIT0zRCBpdGVtLmlkKSB7ICU+Iik7ZS5wdXNo
KCcgICA8bGk+PGEgdGl0bGU9M0QiUmV0dXJuIHRvIHRoPQppcyBmb2xkZXIiIGhyZWY9M0QiIy9m
b2xkZXJzLzwlLSBwYXRoX2l0ZW1bMF0gJT4iPjwlLSBwYXRoX2l0ZW1bMV0gJT48L2E+PC89Cmxp
PiAnKTtlLnB1c2goIjwlIH0gZWxzZSB7ICU+Iik7ZS5wdXNoKCcgICA8bGkgY2xhc3M9M0QiYWN0
aXZlIj48c3BhbiB0aXRsZT0KPTNEIllvdSBhcmUgaGVyZSI+PCUtIHBhdGhfaXRlbVsxXSAlPjwv
c3Bhbj48L2xpPicpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UuPQpwdXNoKCIgICA8JSB9KTsgJT4i
KTtlLnB1c2goIjwvb2w+Iik7ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImRhdGFzZXRfdGFibGUiPic9
Cik7ZS5wdXNoKCc8cD5Gb3IgbW9yZSBlZGl0aW5nIG9wdGlvbnMgcGxlYXNlIGltcG9ydCB0aGUg
ZGF0YXNldCB0byBoaXN0b3J5ID0KYW5kIHVzZSAiRWRpdCBhdHRyaWJ1dGVzIiBvbiBpdC48L3A+
Jyk7ZS5wdXNoKCcgICA8dGFibGUgY2xhc3M9M0QiZ3JpZCB0YWJsPQplIHRhYmxlLXN0cmlwZWQg
dGFibGUtY29uZGVuc2VkIj4nKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgICAg
ICA9CiAgPHRoIHNjb3BlPTNEInJvdyIgaWQ9M0QiaWRfcm93IiBkYXRhLWlkPTNEIjwlPTNEIF8u
ZXNjYXBlKGl0ZW0uZ2V0KCJsZGRhXz0KaWQiKSkgJT4iPk5hbWU8L3RoPicpO2UucHVzaCgnICAg
ICAgICAgICA8dGQ+PGlucHV0IGNsYXNzPTNEImlucHV0X2RhdGFzZXRfPQpuYW1lIGZvcm0tY29u
dHJvbCIgdHlwZT0zRCJ0ZXh0IiBwbGFjZWhvbGRlcj0zRCJuYW1lIiB2YWx1ZT0zRCI8JT0zRCBf
LmVzY2E9CnBlKGl0ZW0uZ2V0KCJuYW1lIikpICU+Ij48L3RkPicpO2UucHVzaCgiICAgICAgIDwv
dHI+Iik7ZS5wdXNoKCIgICAgICAgPHRyPj0KIik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29w
ZT0zRCJyb3ciPkRhdGEgdHlwZTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgPQogPHRkPjwlPTNE
IF8uZXNjYXBlKGl0ZW0uZ2V0KCJmaWxlX2V4dCIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAg
PC90cj4iKTs9CmUucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNj
b3BlPTNEInJvdyI+R2Vub21lIGJ1aWxkPC90aD0KPicpO2UucHVzaCgnICAgICAgICAgICA8dGQ+
PCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoImdlbm9tZV9idWlsZCIpKSAlPjwvdGQ+PQonKTtlLnB1
c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAg
ICAgPHRoIHNjb3A9CmU9M0Qicm93Ij5TaXplPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRk
PjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJmaWxlXz0Kc2l6ZSIpKSAlPjwvdGQ+Jyk7ZS5wdXNo
KCIgICAgICAgPC90cj4iKTtlLnB1c2goIiAgICAgICA8dHI+Iik7ZS5wdXNoKCcgICAgPQogICAg
ICAgPHRoIHNjb3BlPTNEInJvdyI+RGF0ZSB1cGxvYWRlZCAoVVRDKTwvdGg+Jyk7ZS5wdXNoKCcg
ICAgICAgICAgIDx0ZD49CjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJkYXRlX3VwbG9hZGVkIikp
ICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpOz0KZS5wdXNoKCIgICAgICAgPHRyPiIp
O2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5VcGxvYWRlZCBieTwvdGg+PQon
KTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJ1cGxvYWRl
ZF9ieSIpKSAlPjwvdGQ+Jyk9CjtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVzaCgnICAgICAg
ICAgICA8dHIgc2NvcGU9M0Qicm93Ij4nKTtlLnB1c2goJyAgID0KICAgICAgICA8dGggc2NvcGU9
M0Qicm93Ij5EYXRhIExpbmVzPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkIHNjb3BlPTNE
PQoicm93Ij48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibWV0YWRhdGFfZGF0YV9saW5lcyIpKSAl
PjwvdGQ+Jyk7ZS5wdXNoKCIgICA9CiAgICA8L3RyPiIpO2UucHVzaCgnICAgICAgIDx0aCBzY29w
ZT0zRCJyb3ciPkNvbW1lbnQgTGluZXM8L3RoPicpO2UucHVzaCgnID0KICAgICAgICAgIDwlIGlm
IChpdGVtLmdldCgibWV0YWRhdGFfY29tbWVudF9saW5lcyIpID0zRD0zRD0zRCAiIikgeyAlPicp
O2UuPQpwdXNoKCcgICAgICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm93Ij48JT0zRCBfLmVzY2Fw
ZShpdGVtLmdldCgibWV0YWRhdGFfY289Cm1tZW50X2xpbmVzIikpICU+PC90ZD4nKTtlLnB1c2go
IiAgICAgICAgICAgPCUgfSBlbHNlIHsgJT4iKTtlLnB1c2goJyAgICAgID0KICAgICAgICAgPHRk
IHNjb3BlPTNEInJvdyI+dW5rbm93bjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgICAgIDwlIH0gJT4i
KTtlLnB1PQpzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCgn
ICAgICAgICAgICA8dGggc2NvcGU9M0Qicm89CnciPk51bWJlciBvZiBDb2x1bW5zPC90aD4nKTtl
LnB1c2goJyAgICAgICAgICAgPHRkIHNjb3BlPTNEInJvdyI+PCU9M0QgXy5lcz0KY2FwZShpdGVt
LmdldCgibWV0YWRhdGFfY29sdW1ucyIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90cj4i
KTtlLnB1c2goPQoiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNE
InJvdyI+Q29sdW1uIFR5cGVzPC90aD4nKTtlLnA9CnVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9
M0Qicm93Ij48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibWV0YWRhdGFfY29sdW1uXz0KdHlwZXMi
KSkgJT48L3RkPicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICAgICAgPHRyPiIp
O2UucHVzaCgnICAgPQogICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPk1lc3NhZ2U8L3RoPicpO2Uu
cHVzaCgnICAgICAgICAgICA8dGQgc2NvcGU9M0Qicm89CnciPjwlPTNEIF8uZXNjYXBlKGl0ZW0u
Z2V0KCJtZXNzYWdlIikpICU+PC90ZD4nKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucD0KdXNo
KCIgICAgICAgPHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9M0Qicm93Ij5NaXNj
ZWxsYW5lb3VzIGluZm9yPQptYXRpb248L3RoPicpO2UucHVzaCgnICAgICAgICAgICA8dGQgc2Nv
cGU9M0Qicm93Ij48JT0zRCBfLmVzY2FwZShpdGVtLmdldCg9CiJtaXNjX2luZm8iKSkgJT48L3Rk
PicpO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaD0K
KCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPk1pc2NlbGxhbmVvdXMgYmx1cmI8L3RoPicp
O2UucHVzaCgnICAgICAgICAgPQogIDx0ZCBzY29wZT0zRCJyb3ciPjwlPTNEIF8uZXNjYXBlKGl0
ZW0uZ2V0KCJtaXNjX2JsdXJiIikpICU+PC90ZD4nKTtlLnB1c2g9CigiICAgICAgIDwvdHI+Iik7
ZS5wdXNoKCIgICA8L3RhYmxlPiIpO2UucHVzaCgiPGRpdj4iKTtlLnB1c2goJyAgIDxwcmUgY2xh
cz0Kcz0zRCJwZWVrIj4nKTtlLnB1c2goIiAgIDwvcHJlPiIpO2UucHVzaCgiPC9kaXY+Iik7ZS5w
dXNoKCI8L2Rpdj4iKTtlLnB1c2goPQoiPC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5qb2lu
KCIiKSl9LHRlbXBsYXRlRGF0YXNldFBlcm1pc3Npb25zOmZ1bmN0aW89Cm4oKXt2YXIgZT0zRFtd
O2UucHVzaCgnPGRpdiBjbGFzcz0zRCJsaWJyYXJ5X3N0eWxlX2NvbnRhaW5lciI+Jyk7ZS5wdXNo
KCcgID0KPGRpdiBpZD0zRCJsaWJyYXJ5X3Rvb2xiYXIiPicpO2UucHVzaCgnICAgPGEgaHJlZj0z
RCIjZm9sZGVycy88JS0gaXRlbS5nZXQoPQoiZm9sZGVyX2lkIikgJT4iPjxidXR0b24gZGF0YS10
b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXQ9CmxlPTNEIkdvIGJh
Y2sgdG8gY29udGFpbmluZyBmb2xkZXIiIGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCBwcmltYXJ5
LWJ1dHRvbj0KIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZm9sZGVyLW9w
ZW4tbyI+PC9zcGFuPiBDb250YWluaW5nIEZvPQpsZGVyPC9zcGFuPjwvYnV0dG9uPjwvYT4nKTtl
LnB1c2goJyAgIDxhIGhyZWY9M0QiI2ZvbGRlcnMvPCUtIGl0ZW0uZ2V0KCJmb2w9CmRlcl9pZCIp
ICU+L2RhdGFzZXRzLzwlLSBpdGVtLmlkICU+Ij48YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0
aXAiIGRhdGEtcD0KbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJHbyBiYWNrIHRvIGRhdGFzZXQi
IGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCBwcmltPQphcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRv
biI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZmlsZS1vIj48L3NwYW4+IERhdGFzZXQgRGU9CnRhaWxz
PC9zcGFuPjwvYnV0dG9uPjxhPicpO2UucHVzaCgiICA8L2Rpdj4iKTtlLnB1c2goJzxvbCBjbGFz
cz0zRCJicmVhZGNydT0KbWIiPicpO2UucHVzaCgnICAgPGxpPjxhIHRpdGxlPTNEIlJldHVybiB0
byB0aGUgbGlzdCBvZiBsaWJyYXJpZXMiIGhyZWY9M0QiPQojIj5MaWJyYXJpZXM8L2E+PC9saT4n
KTtlLnB1c2goJyAgIDwlIF8uZWFjaChpdGVtLmdldCgiZnVsbF9wYXRoIiksIGZ1bmN0aW89Cm4o
cGF0aF9pdGVtKSB7ICU+Jyk7ZS5wdXNoKCIgICA8JSBpZiAocGF0aF9pdGVtWzBdICE9M0QgaXRl
bS5pZCkgeyAlPiIpO2UucD0KdXNoKCcgICA8bGk+PGEgdGl0bGU9M0QiUmV0dXJuIHRvIHRoaXMg
Zm9sZGVyIiBocmVmPTNEIiMvZm9sZGVycy88JS0gcGF0aF9pPQp0ZW1bMF0gJT4iPjwlLSBwYXRo
X2l0ZW1bMV0gJT48L2E+PC9saT4gJyk7ZS5wdXNoKCI8JSB9IGVsc2UgeyAlPiIpO2UucHVzaCg9
CicgICA8bGkgY2xhc3M9M0QiYWN0aXZlIj48c3BhbiB0aXRsZT0zRCJZb3UgYXJlIGhlcmUiPjwl
LSBwYXRoX2l0ZW1bMV0gJT48Lz0Kc3Bhbj48L2xpPicpO2UucHVzaCgiICAgPCUgfSAlPiIpO2Uu
cHVzaCgiICAgPCUgfSk7ICU+Iik7ZS5wdXNoKCI8L29sPiIpO2UuPQpwdXNoKCc8aDE+RGF0YXNl
dDogPCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoIm5hbWUiKSkgJT48L2gxPicpO2UucHVzaCgnPGRp
diA9CmNsYXNzPTNEImFsZXJ0IGFsZXJ0LXdhcm5pbmciPicpO2UucHVzaCgiPCUgaWYgKGlzX2Fk
bWluKSB7ICU+Iik7ZS5wdXNoKCJZbz0KdSBhcmUgbG9nZ2VkIGluIGFzIGFuIDxzdHJvbmc+YWRt
aW5pc3RyYXRvcjwvc3Ryb25nPiB0aGVyZWZvcmUgeW91IGNhbiBtYW5hPQpnZSBhbnkgZGF0YXNl
dCBvbiB0aGlzIEdhbGF4eSBpbnN0YW5jZS4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgdW5kZXJzdGFu
ZCB0aGU9CiBjb25zZXF1ZW5jZXMuIik7ZS5wdXNoKCI8JSB9IGVsc2UgeyAlPiIpO2UucHVzaCgi
WW91IGNhbiBhc3NpZ24gYW55IG51bWJlcj0KIG9mIHJvbGVzIHRvIGFueSBvZiB0aGUgZm9sbG93
aW5nIHBlcm1pc3Npb24gdHlwZXMuIEhvd2V2ZXIgcGxlYXNlIHJlYWQgY2FyPQplZnVsbHkgdGhl
IGltcGxpY2F0aW9ucyBvZiBzdWNoIGFjdGlvbnMuIik7ZS5wdXNoKCI8JSB9ICU+Iik7ZS5wdXNo
KCI8L2Rpdj49CiIpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJkYXRhc2V0X3RhYmxlIj4nKTtlLnB1
c2goIjxoMj5MaWJyYXJ5LXJlbGF0ZWQgcGVybT0KaXNzaW9uczwvaDI+Iik7ZS5wdXNoKCI8aDQ+
Um9sZXMgdGhhdCBjYW4gbW9kaWZ5IHRoZSBsaWJyYXJ5IGl0ZW08L2g0PiIpO2UuPQpwdXNoKCc8
ZGl2IGlkPTNEIm1vZGlmeV9wZXJtIiBjbGFzcz0zRCJtb2RpZnlfcGVybSByb2xlcy1zZWxlY3Rp
b24iPjwvZGl2Pic9Cik7ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LWluZm8gcm9s
ZXMtc2VsZWN0aW9uIj5Vc2VyIHdpdGggPHN0cm9uZz0KPmFueTwvc3Ryb25nPiBvZiB0aGVzZSBy
b2xlcyBjYW4gbW9kaWZ5IG5hbWUsIG1ldGFkYXRhLCBhbmQgb3RoZXIgaW5mb3JtYXRpPQpvbiBh
Ym91dCB0aGlzIGxpYnJhcnkgaXRlbS48L2Rpdj4nKTtlLnB1c2goIjxoci8+Iik7ZS5wdXNoKCI8
aDI+RGF0YXNldC1yZWw9CmF0ZWQgcGVybWlzc2lvbnM8L2gyPiIpO2UucHVzaCgnPGRpdiBjbGFz
cz0zRCJhbGVydCBhbGVydC13YXJuaW5nIj5DaGFuZ2VzID0KbWFkZSBiZWxvdyB3aWxsIGFmZmVj
dCA8c3Ryb25nPmV2ZXJ5PC9zdHJvbmc+IGxpYnJhcnkgaXRlbSB0aGF0IHdhcyBjcmVhdGVkPQog
ZnJvbSB0aGlzIGRhdGFzZXQgYW5kIGFsc28gZXZlcnkgaGlzdG9yeSB0aGlzIGRhdGFzZXQgaXMg
cGFydCBvZi48L2Rpdj4nKTs9CmUucHVzaCgnPCUgaWYgKCFpdGVtLmdldCgiaXNfdW5yZXN0cmlj
dGVkIikpIHsgJT4nKTtlLnB1c2goIiA8cD5Zb3UgY2FuIHJlbT0Kb3ZlIGFsbCBhY2Nlc3MgcmVz
dHJpY3Rpb25zIG9uIHRoaXMgZGF0YXNldC4gIik7ZS5wdXNoKCcgPGJ1dHRvbiBkYXRhLXRvZ2ds
PQplPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiRXZlcnlib2R5
IHdpbGwgYmUgYWJsZSB0byBhY2M9CmVzcyB0aGUgZGF0YXNldC4iIGNsYXNzPTNEImJ0biBidG4t
ZGVmYXVsdCBidG4tcmVtb3ZlLXJlc3RyaWN0aW9ucyBwcmltYXJ5LT0KYnV0dG9uIiB0eXBlPTNE
ImJ1dHRvbiI+Jyk7ZS5wdXNoKCcgPHNwYW4gY2xhc3M9M0QiZmEgZmEtZ2xvYmUiPiBSZW1vdmUg
cmVzPQp0cmljdGlvbnM8L3NwYW4+Jyk7ZS5wdXNoKCIgPC9idXR0b24+Iik7ZS5wdXNoKCIgPC9w
PiIpO2UucHVzaCgiPCUgfSBlbHNlIHs9CiAlPiIpO2UucHVzaCgiICBUaGlzIGRhdGFzZXQgaXMg
dW5yZXN0cmljdGVkIHNvIGV2ZXJ5Ym9keSBjYW4gYWNjZXNzIGl0LiBKdT0Kc3Qgc2hhcmUgdGhl
IFVSTCBvZiB0aGlzIHBhZ2UuIik7ZS5wdXNoKCcgIDxidXR0b24gZGF0YS10b2dnbGU9M0QidG9v
bHRpcCIgPQpkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIkNvcHkgdG8gY2xpcGJvYXJk
IiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQ9CiBidG4tY29weS1saW5rLXRvLWNsaXBib2FyZCBw
cmltYXJ5LWJ1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNEIj0KZmEgZmEtY2xp
cGJvYXJkIj4gVG8gQ2xpcGJvYXJkPC9zcGFuPjwvYnV0dG9uPiAnKTtlLnB1c2goIiAgPHA+WW91
IGNhbiBtYWtlPQogdGhpcyBkYXRhc2V0IHByaXZhdGUgdG8geW91LiAiKTtlLnB1c2goJyA8YnV0
dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGQ9CmF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRs
ZT0zRCJPbmx5IHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBkYXRhc2V0Lj0KIiBjbGFz
cz0zRCJidG4gYnRuLWRlZmF1bHQgYnRuLW1ha2UtcHJpdmF0ZSBwcmltYXJ5LWJ1dHRvbiIgdHlw
ZT0zRCJidXR0b24iPQo+PHNwYW4gY2xhc3M9M0QiZmEgZmEta2V5Ij4gTWFrZSBQcml2YXRlPC9z
cGFuPjwvYnV0dG9uPicpO2UucHVzaCgiIDwvcD4iKTs9CmUucHVzaCgiPCUgfSAlPiIpO2UucHVz
aCgiPGg0PlJvbGVzIHRoYXQgY2FuIGFjY2VzcyB0aGUgZGF0YXNldDwvaDQ+Iik7ZS5wdT0Kc2go
JzxkaXYgaWQ9M0QiYWNjZXNzX3Blcm0iIGNsYXNzPTNEImFjY2Vzc19wZXJtIHJvbGVzLXNlbGVj
dGlvbiI+PC9kaXY+Jyk7PQplLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxlcnQtaW5mbyBy
b2xlcy1zZWxlY3Rpb24iPlVzZXIgaGFzIHRvIGhhdmUgPHM9CnRyb25nPmFsbCB0aGVzZSByb2xl
czwvc3Ryb25nPiBpbiBvcmRlciB0byBhY2Nlc3MgdGhpcyBkYXRhc2V0LiBVc2VycyB3aXRobz0K
dXQgYWNjZXNzIHBlcm1pc3Npb24gPHN0cm9uZz5jYW5ub3Q8L3N0cm9uZz4gaGF2ZSBvdGhlciBw
ZXJtaXNzaW9ucyBvbiB0aGlzPQogZGF0YXNldC4gSWYgdGhlcmUgYXJlIG5vIGFjY2VzcyByb2xl
cyBzZXQgb24gdGhlIGRhdGFzZXQgaXQgaXMgY29uc2lkZXJlZCA9CjxzdHJvbmc+dW5yZXN0cmlj
dGVkPC9zdHJvbmc+LjwvZGl2PicpO2UucHVzaCgiPGg0PlJvbGVzIHRoYXQgY2FuIG1hbmFnZSBw
ZT0Kcm1pc3Npb25zIG9uIHRoZSBkYXRhc2V0PC9oND4iKTtlLnB1c2goJzxkaXYgaWQ9M0QibWFu
YWdlX3Blcm0iIGNsYXNzPTNEIm1hPQpuYWdlX3Blcm0gcm9sZXMtc2VsZWN0aW9uIj48L2Rpdj4n
KTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxlcnQtaW5mbyA9CnJvbGVzLXNlbGVjdGlv
biI+VXNlciB3aXRoIDxzdHJvbmc+YW55PC9zdHJvbmc+IG9mIHRoZXNlIHJvbGVzIGNhbiBtYW5h
Z2UgcD0KZXJtaXNzaW9ucyBvZiB0aGlzIGRhdGFzZXQuIElmIHlvdSByZW1vdmUgeW91cnNlbGYg
eW91IHdpbGwgbG9vc2UgdGhlIGFiaWxpPQp0eSBtYW5hZ2UgdGhpcyBkYXRhc2V0IHVubGVzcyB5
b3UgYXJlIGFuIGFkbWluLjwvZGl2PicpO2UucHVzaCgnPGJ1dHRvbiBkYXQ9CmEtdG9nZ2xlPTNE
InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiU2F2ZSBtb2RpZmljYXRp
b25zIG1hZD0KZSBvbiB0aGlzIHBhZ2UiIGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCB0b29sYnRu
X3NhdmVfcGVybWlzc2lvbnMgcHJpbWFyeS1iPQp1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFu
IGNsYXNzPTNEImZhIGZhLWZsb3BweS1vIj48L3NwYW4+IFNhdmU8L3NwYW4+PC89CmJ1dHRvbj4n
KTtlLnB1c2goIjwvZGl2PiIpO2UucHVzaCgiPC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5q
b2luKCIiKSl9LD0KdGVtcGxhdGVCdWxrSW1wb3J0SW5Nb2RhbDpmdW5jdGlvbigpe3ZhciBlPTNE
W107ZS5wdXNoKCc8c3BhbiBpZD0zRCJoaXN0b3J5PQpfbW9kYWxfY29tYm9fYnVsayIgc3R5bGU9
M0Qid2lkdGg6OTAlOyBtYXJnaW4tbGVmdDogMWVtOyBtYXJnaW4tcmlnaHQ6IDFlbTs9CiAiPicp
O2UucHVzaCgiU2VsZWN0IGhpc3Rvcnk6ICIpO2UucHVzaCgnPHNlbGVjdCBpZD0zRCJkYXRhc2V0
X2ltcG9ydF9zaW5nbD0KZSIgbmFtZT0zRCJkYXRhc2V0X2ltcG9ydF9zaW5nbGUiIHN0eWxlPTNE
IndpZHRoOjUwJTsgbWFyZ2luLWJvdHRvbTogMWVtOyAiPQo+ICcpO2UucHVzaCgiICAgPCUgXy5l
YWNoKGhpc3RvcmllcywgZnVuY3Rpb24oaGlzdG9yeSkgeyAlPiIpO2UucHVzaCgnICAgICA9CiAg
PG9wdGlvbiB2YWx1ZT0zRCI8JT0zRCBfLmVzY2FwZShoaXN0b3J5LmdldCgiaWQiKSkgJT4iPjwl
PTNEIF8uZXNjYXBlKGhpcz0KdG9yeS5nZXQoIm5hbWUiKSkgJT48L29wdGlvbj4nKTtlLnB1c2go
IiAgIDwlIH0pOyAlPiIpO2UucHVzaCgiPC9zZWxlY3Q+Iik7PQplLnB1c2goIjwvc3Bhbj4iKTty
ZXR1cm4gXy50ZW1wbGF0ZShlLmpvaW4oIiIpKX0sdGVtcGxhdGVBY2Nlc3NTZWxlY3Q6ZnVuY3Q9
Cmlvbigpe3ZhciBlPTNEW107ZS5wdXNoKCc8c2VsZWN0IGlkPTNEImFjY2Vzc19zZWxlY3QiIG11
bHRpcGxlPicpO2UucHVzaCgiID0KICA8JSBfLmVhY2gob3B0aW9ucywgZnVuY3Rpb24ob3B0aW9u
KSB7ICU+Iik7ZS5wdXNoKCcgICAgICAgPG9wdGlvbiB2YWx1ZT0KPTNEIjwlLSBvcHRpb24ubmFt
ZSAlPiI+PCUtIG9wdGlvbi5uYW1lICU+PC9vcHRpb24+Jyk7ZS5wdXNoKCIgICA8JSB9KTsgJT4i
PQopO2UucHVzaCgiPC9zZWxlY3Q+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5qb2luKCIiKSl9fSk7
cmV0dXJue0xpYnJhcnlEYXRhc2U9CnRWaWV3OmF9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQoKZGlmZiAtciA0OWQ1MGJjZTQ2MzIwNmY0NDUwNjNkMmIyN2IyZjJiMzkzYWRiZTExIC1y
IDFjY2Y0MGJkYWZhMTg0YjNiZTMxYWE3PQpiMWVjZGZjZTNiYzcwNWVmYiBzdGF0aWMvc2NyaXB0
cy9wYWNrZWQvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xkZXItdmlldy5qcwotLS0gYS9zdGF0aWMv
c2NyaXB0cy9wYWNrZWQvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xkZXItdmlldy5qcworKysgYi9z
dGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xkZXItdmlldy5qcwpA
QCAtMSwxICsxLDEgQEAKLWRlZmluZShbImxpYnMvdG9hc3RyIiwibXZjL2xpYnJhcnkvbGlicmFy
eS1tb2RlbCIsIm12Yy91aS91aS1zZWxlY3QiXSxmdW5jPQp0aW9uKGQsYyxhKXt2YXIgYj0zREJh
Y2tib25lLlZpZXcuZXh0ZW5kKHtlbDoiI2NlbnRlciIsbW9kZWw6bnVsbCxvcHRpb25zOns9Cn0s
ZXZlbnRzOnsiY2xpY2sgLnRvb2xidG5fc2F2ZV9wZXJtaXNzaW9ucyI6InNhdmVQZXJtaXNzaW9u
cyJ9LGluaXRpYWxpemU6Zj0KdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9M0RfLmV4dGVuZCh0aGlz
Lm9wdGlvbnMsZSk7aWYodGhpcy5vcHRpb25zLmlkKXt0aGlzPQouZmV0Y2hGb2xkZXIoKX19LGZl
dGNoRm9sZGVyOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW89
Cm5zLGUpO3RoaXMubW9kZWw9M0RuZXcgYy5Gb2xkZXJBc01vZGVsKHtpZDp0aGlzLm9wdGlvbnMu
aWR9KTt2YXIgZj0zRHRoaXM7dD0KaGlzLm1vZGVsLmZldGNoKHtzdWNjZXNzOmZ1bmN0aW9uKCl7
aWYoZi5vcHRpb25zLnNob3dfcGVybWlzc2lvbnMpe2Yuc2hvd1BlPQpybWlzc2lvbnMoKX1lbHNl
e2YucmVuZGVyKCl9fSxlcnJvcjpmdW5jdGlvbihoLGcpe2lmKHR5cGVvZiBnLnJlc3BvbnNlSlNP
TiE9Cj0zRD0zRCJ1bmRlZmluZWQiKXtkLmVycm9yKGcucmVzcG9uc2VKU09OLmVycl9tc2crIiBD
bGljayB0aGlzIHRvIGdvIGJhY2suIj0KLCIiLHtvbmNsaWNrOmZ1bmN0aW9uKCl7R2FsYXh5Lmxp
YnJhcmllcy5saWJyYXJ5X3JvdXRlci5iYWNrKCl9fSl9ZWxzZXtkLmVyPQpyb3IoIkFuIGVycm9y
IG9jdXJyZWQuIENsaWNrIHRoaXMgdG8gZ28gYmFjay4iLCIiLHtvbmNsaWNrOmZ1bmN0aW9uKCl7
R2FsYXg9CnkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX19KX19fSl9LHJlbmRlcjpm
dW5jdGlvbihlKXskKCIudG9vbHRpcCIpLj0KcmVtb3ZlKCk7dGhpcy5vcHRpb25zPTNEXy5leHRl
bmQodGhpcy5vcHRpb25zLGUpO3ZhciBmPTNEdGhpcy50ZW1wbGF0ZUZvbGRlPQpyKCk7dGhpcy4k
ZWwuaHRtbChmKHtpdGVtOnRoaXMubW9kZWx9KSk7JCgiLnBlZWsiKS5odG1sKHRoaXMubW9kZWwu
Z2V0KCJwZWU9CmsiKSk7JCgiI2NlbnRlciBbZGF0YS10b2dnbGVdIikudG9vbHRpcCgpfSxzaGFy
ZUZvbGRlcjpmdW5jdGlvbigpe2QuaW5mbygiRj0KZWF0dXJlIGNvbWluZyBzb29uLiIpfSxnb0Jh
Y2s6ZnVuY3Rpb24oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhPQpjaygpfSxz
aG93UGVybWlzc2lvbnM6ZnVuY3Rpb24oZil7dGhpcy5vcHRpb25zPTNEXy5leHRlbmQodGhpcy5v
cHRpb25zLGYpOyQ9CigiLnRvb2x0aXAiKS5yZW1vdmUoKTt2YXIgaD0zRGZhbHNlO2lmKEdhbGF4
eS5jdXJyVXNlcil7aD0zREdhbGF4eS5jdXJyVXNlcj0KLmlzQWRtaW4oKX12YXIgZz0zRHRoaXMu
dGVtcGxhdGVGb2xkZXJQZXJtaXNzaW9ucygpO3RoaXMuJGVsLmh0bWwoZyh7Zm9sZGVyPQo6dGhp
cy5tb2RlbCxpc19hZG1pbjpofSkpO3ZhciBlPTNEdGhpcztpZih0aGlzLm9wdGlvbnMuZmV0Y2hl
ZF9wZXJtaXNzaW9ucz0KPTNEPTNEPTNEdW5kZWZpbmVkKXskLmdldCgiL2FwaS9mb2xkZXJzLyIr
ZS5pZCsiL3Blcm1pc3Npb25zP3Njb3BlPTNEY3VycmVuPQp0IikuZG9uZShmdW5jdGlvbihpKXtl
LnByZXBhcmVTZWxlY3RCb3hlcyh7ZmV0Y2hlZF9wZXJtaXNzaW9uczppfSl9KS5mYWlsKGY9CnVu
Y3Rpb24oKXtkLmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIGZl
dGNoIGZvbGRlciBwZXJtaT0Kc3Npb25zLiIpfSl9ZWxzZXt0aGlzLnByZXBhcmVTZWxlY3RCb3hl
cyh7fSl9JCgiI2NlbnRlciBbZGF0YS10b2dnbGVdIikudG9vPQpsdGlwKCk7JCgiI2NlbnRlciIp
LmNzcygib3ZlcmZsb3ciLCJhdXRvIil9LF9zZXJpYWxpemVSb2xlczpmdW5jdGlvbihnKXt2YXI9
CiBlPTNEW107Zm9yKHZhciBmPTNEMDtmPGcubGVuZ3RoO2YrKyl7ZS5wdXNoKGdbZl0rIjoiK2db
Zl0pfXJldHVybiBlfSxwcmVwYT0KcmVTZWxlY3RCb3hlczpmdW5jdGlvbihoKXt0aGlzLm9wdGlv
bnM9M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsaCk7dmFyIGY9M0R0PQpoaXMub3B0aW9ucy5mZXRj
aGVkX3Blcm1pc3Npb25zO3ZhciBnPTNEdGhpczt2YXIgaT0zRHRoaXMuX3NlcmlhbGl6ZVJvbGVz
KGY9Ci5hZGRfbGlicmFyeV9pdGVtX3JvbGVfbGlzdCk7dmFyIGo9M0R0aGlzLl9zZXJpYWxpemVS
b2xlcyhmLm1hbmFnZV9mb2xkZXJfcj0Kb2xlX2xpc3QpO3ZhciBlPTNEdGhpcy5fc2VyaWFsaXpl
Um9sZXMoZi5tb2RpZnlfZm9sZGVyX3JvbGVfbGlzdCk7Zy5hZGRTZWxlPQpjdE9iamVjdD0zRG5l
dyBhLlZpZXcodGhpcy5fY3JlYXRlU2VsZWN0T3B0aW9ucyh0aGlzLCJhZGRfcGVybSIsaSxmYWxz
ZSkpO2c9Ci5tYW5hZ2VTZWxlY3RPYmplY3Q9M0RuZXcgYS5WaWV3KHRoaXMuX2NyZWF0ZVNlbGVj
dE9wdGlvbnModGhpcywibWFuYWdlX3Blcj0KbSIsaixmYWxzZSkpO2cubW9kaWZ5U2VsZWN0T2Jq
ZWN0PTNEbmV3IGEuVmlldyh0aGlzLl9jcmVhdGVTZWxlY3RPcHRpb25zKHRoPQppcywibW9kaWZ5
X3Blcm0iLGUsZmFsc2UpKX0sX2NyZWF0ZVNlbGVjdE9wdGlvbnM6ZnVuY3Rpb24oZSxqLGgpe3Zh
ciBpPTNEe209CmluaW11bUlucHV0TGVuZ3RoOjAsY3NzOmosbXVsdGlwbGU6dHJ1ZSxwbGFjZWhv
bGRlcjoiQ2xpY2sgdG8gc2VsZWN0IGEgcm9sZT0KIixjb250YWluZXI6ZS4kZWwuZmluZCgiIyIr
aiksYWpheDp7dXJsOiIvYXBpL2ZvbGRlcnMvIitlLmlkKyIvcGVybWlzc2lvbnM/PQpzY29wZT0z
RGF2YWlsYWJsZSIsZGF0YVR5cGU6Impzb24iLHF1aWV0TWlsbGlzOjEwMCxkYXRhOmZ1bmN0aW9u
KGssbCl7cmV0dXI9Cm57cTprLHBhZ2VfbGltaXQ6MTAscGFnZTpsfX0scmVzdWx0czpmdW5jdGlv
bihtLGwpe3ZhciBrPTNEKGwqMTApPG0udG90YWw7cj0KZXR1cm57cmVzdWx0czptLnJvbGVzLG1v
cmU6a319fSxmb3JtYXRSZXN1bHQ6ZnVuY3Rpb24gZihrKXtyZXR1cm4gay5uYW1lKyIgPQp0eXBl
OiAiK2sudHlwZX0sZm9ybWF0U2VsZWN0aW9uOmZ1bmN0aW9uIGcoayl7cmV0dXJuIGsubmFtZX0s
aW5pdFNlbGVjdGlvbjo9CmZ1bmN0aW9uKGssbSl7dmFyIGw9M0RbXTskKGsudmFsKCkuc3BsaXQo
IiwiKSkuZWFjaChmdW5jdGlvbigpe3ZhciBuPTNEdGhpcz0KLnNwbGl0KCI6Iik7bC5wdXNoKHtp
ZDpuWzFdLG5hbWU6blsxXX0pfSk7bShsKX0saW5pdGlhbERhdGE6aC5qb2luKCIsIiksZHJvPQpw
ZG93bkNzc0NsYXNzOiJiaWdkcm9wIn07cmV0dXJuIGl9LGNvbWluZ1Nvb246ZnVuY3Rpb24oKXtk
Lndhcm5pbmcoIkZlYXR1cmU9CiBjb21pbmcgc29vbi4iKX0sY29weVRvQ2xpcGJvYXJkOmZ1bmN0
aW9uKCl7dmFyIGU9M0RCYWNrYm9uZS5oaXN0b3J5LmxvY2F0aT0Kb24uaHJlZjtpZihlLmxhc3RJ
bmRleE9mKCIvcGVybWlzc2lvbnMiKSE9M0Q9M0QtMSl7ZT0zRGUuc3Vic3RyKDAsZS5sYXN0SW5k
PQpleE9mKCIvcGVybWlzc2lvbnMiKSl9d2luZG93LnByb21wdCgiQ29weSB0byBjbGlwYm9hcmQ6
IEN0cmwrQywgRW50ZXIiLGUpfSw9Cl9leHRyYWN0SWRzOmZ1bmN0aW9uKGUpe2lkc19saXN0PTNE
W107Zm9yKHZhciBmPTNEZS5sZW5ndGgtMTtmPj0zRDA7Zi0tKXtpZD0Kc19saXN0LnB1c2goZVtm
XS5pZCl9cmV0dXJuIGlkc19saXN0fSxzYXZlUGVybWlzc2lvbnM6ZnVuY3Rpb24oaCl7dmFyIGc9
M0R0PQpoaXM7dmFyIGU9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMuYWRkU2VsZWN0T2JqZWN0LiRl
bC5zZWxlY3QyKCJkYXRhIikpO3ZhciA9Cmk9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMubWFuYWdl
U2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIikpO3ZhciBmPTNEdD0KaGlzLl9leHRyYWN0
SWRzKHRoaXMubW9kaWZ5U2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIikpOyQucG9zdCgi
L2FwaS9mPQpvbGRlcnMvIitnLmlkKyIvcGVybWlzc2lvbnM/YWN0aW9uPTNEc2V0X3Blcm1pc3Np
b25zIix7ImFkZF9pZHNbXSI6ZSwibWFuYWc9CmVfaWRzW10iOmksIm1vZGlmeV9pZHNbXSI6Zix9
KS5kb25lKGZ1bmN0aW9uKGope2cuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkXz0KcGVybWlzc2lv
bnM6an0pO2Quc3VjY2VzcygiUGVybWlzc2lvbnMgc2F2ZWQuIil9KS5mYWlsKGZ1bmN0aW9uKCl7
ZC5lcnJvcigiPQpBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIHNldCBmb2xk
ZXIgcGVybWlzc2lvbnMuIil9KX0sdGVtcGxhdGU9CkZvbGRlcjpmdW5jdGlvbigpe3ZhciBlPTNE
W107ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImxpYnJhcnlfc3R5bGVfY29udGFpbmVyIj0KPicpO2Uu
cHVzaCgnICA8ZGl2IGlkPTNEImxpYnJhcnlfdG9vbGJhciI+Jyk7ZS5wdXNoKCcgICA8YnV0dG9u
IGRhdGEtdG9nZ2xlPQo9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0z
RCJNb2RpZnkgbGlicmFyeSBpdGVtIiBjbGFzcz0zRCI9CmJ0biBidG4tZGVmYXVsdCB0b29sYnRu
X21vZGlmeV9kYXRhc2V0IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYT0KbiBj
bGFzcz0zRCJmYSBmYS1wZW5jaWwiPjwvc3Bhbj4gTW9kaWZ5PC9zcGFuPjwvYnV0dG9uPicpO2Uu
cHVzaCgnICAgPGEgaHJlPQpmPTNEIiNmb2xkZXJzLzwlLSBpdGVtLmdldCgiZm9sZGVyX2lkIikg
JT4vZGF0YXNldHMvPCUtIGl0ZW0uaWQgJT4vcGVybWlzc2k9Cm9ucyI+PGJ1dHRvbiBkYXRhLXRv
Z2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIk1hbmFnZT0K
IHBlcm1pc3Npb25zIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgdG9vbGJ0bl9jaGFuZ2VfcGVy
bWlzc2lvbnMgcHJpbWFyeS1iPQp1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNE
ImZhIGZhLWdyb3VwIj48L3NwYW4+IFBlcm1pc3Npb25zPC9zcGE9Cm4+PC9idXR0b24+PC9hPicp
O2UucHVzaCgnICAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVu
dD0KPTNEInRvcCIgdGl0bGU9M0QiU2hhcmUgZGF0YXNldCIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZh
dWx0IHRvb2xidG4tc2hhcmUtZGF0PQphc2V0IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRv
biI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtc2hhcmUiPjwvc3Bhbj4gU2g9CmFyZTwvc3Bhbj48L2J1
dHRvbj4nKTtlLnB1c2goIiAgPC9kaXY+Iik7ZS5wdXNoKCIgIDxwPiIpO2UucHVzaCgiICBUaGlz
IGRhdD0KYXNldCBpcyB1bnJlc3RyaWN0ZWQgc28gZXZlcnlib2R5IGNhbiBhY2Nlc3MgaXQuIEp1
c3Qgc2hhcmUgdGhlIFVSTCBvZiB0aGlzPQogcGFnZS4gIik7ZS5wdXNoKCcgIDxidXR0b24gZGF0
YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiA9CnRpdGxlPTNEIkNv
cHkgdG8gY2xpcGJvYXJkIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgYnRuLWNvcHktbGluay10
by1jbGlwYj0Kb2FyZCBwcmltYXJ5LWJ1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNz
PTNEImZhIGZhLWNsaXBib2FyZCI+PC9zcGFuPQo+IFRvIENsaXBib2FyZDwvc3Bhbj48L2J1dHRv
bj4gJyk7ZS5wdXNoKCIgIDwvcD4iKTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiZGE9CnRhc2V0X3Rh
YmxlIj4nKTtlLnB1c2goJyAgIDx0YWJsZSBjbGFzcz0zRCJncmlkIHRhYmxlIHRhYmxlLXN0cmlw
ZWQgdGFibGUtYz0Kb25kZW5zZWQiPicpO2UucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAg
ICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyIgaWQ9Cj0zRCJpZF9yb3ciIGRhdGEtaWQ9M0QiPCU9
M0QgXy5lc2NhcGUoaXRlbS5nZXQoImxkZGFfaWQiKSkgJT4iPk5hbWU8L3RoPicpOz0KZS5wdXNo
KCcgICAgICAgICAgIDx0ZD48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibmFtZSIpKSAlPjwvdGQ+
Jyk7ZS5wdXNoKCIgPQogICAgICA8L3RyPiIpO2UucHVzaCgnICAgPCUgaWYgKGl0ZW0uZ2V0KCJm
aWxlX2V4dCIpKSB7ICU+Jyk7ZS5wdXNoKCIgICAgICA9CiA8dHI+Iik7ZS5wdXNoKCcgICAgICAg
ICAgIDx0aCBzY29wZT0zRCJyb3ciPkRhdGEgdHlwZTwvdGg+Jyk7ZS5wdXNoKCcgICAgID0KICAg
ICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJmaWxlX2V4dCIpKSAlPjwvdGQ+Jyk7ZS5w
dXNoKCIgICAgICAgPC90PQpyPiIpO2UucHVzaCgiICAgPCUgfSAlPiIpO2UucHVzaCgiICAgIDwv
dGFibGU+Iik7ZS5wdXNoKCI8L2Rpdj4iKTtlLnB1c2goIjw9Ci9kaXY+Iik7cmV0dXJuIF8udGVt
cGxhdGUoZS5qb2luKCIiKSl9LHRlbXBsYXRlRm9sZGVyUGVybWlzc2lvbnM6ZnVuY3Rpb24oKT0K
e3ZhciBlPTNEW107ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImxpYnJhcnlfc3R5bGVfY29udGFpbmVy
Ij4nKTtlLnB1c2goJyAgPGRpPQp2IGlkPTNEImxpYnJhcnlfdG9vbGJhciI+Jyk7ZS5wdXNoKCcg
ICA8YSBocmVmPTNEIiMvZm9sZGVycy88JT0zRCBmb2xkZXIuZ2U9CnQoInBhcmVudF9pZCIpICU+
Ij48YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIg
dD0KaXRsZT0zRCJHbyBiYWNrIHRvIHRoZSBwYXJlbnQgZm9sZGVyIiBjbGFzcz0zRCJidG4gYnRu
LWRlZmF1bHQgcHJpbWFyeS1idXR0PQpvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNE
ImZhIGZhLWNhcmV0LWxlZnQgZmEtbGciPjwvc3Bhbj4gUGFyZW50IGY9Cm9sZGVyPC9zcGFuPjwv
YnV0dG9uPjwvYT4nKTtlLnB1c2goIiAgPC9kaXY+Iik7ZS5wdXNoKCc8aDE+Rm9sZGVyOiA8JT0z
RCBfLj0KZXNjYXBlKGZvbGRlci5nZXQoIm5hbWUiKSkgJT48L2gxPicpO2UucHVzaCgnPGRpdiBj
bGFzcz0zRCJhbGVydCBhbGVydC13YXJuPQppbmciPicpO2UucHVzaCgiPCUgaWYgKGlzX2FkbWlu
KSB7ICU+Iik7ZS5wdXNoKCJZb3UgYXJlIGxvZ2dlZCBpbiBhcyBhbiA8c3Q9CnJvbmc+YWRtaW5p
c3RyYXRvcjwvc3Ryb25nPiB0aGVyZWZvcmUgeW91IGNhbiBtYW5hZ2UgYW55IGZvbGRlciBvbiB0
aGlzIEdhbD0KYXh5IGluc3RhbmNlLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSB1bmRlcnN0YW5kIHRo
ZSBjb25zZXF1ZW5jZXMuIik7ZS5wdXNoKCI8PQolIH0gZWxzZSB7ICU+Iik7ZS5wdXNoKCJZb3Ug
Y2FuIGFzc2lnbiBhbnkgbnVtYmVyIG9mIHJvbGVzIHRvIGFueSBvZiB0aGUgZm89Cmxsb3dpbmcg
cGVybWlzc2lvbiB0eXBlcy4gSG93ZXZlciBwbGVhc2UgcmVhZCBjYXJlZnVsbHkgdGhlIGltcGxp
Y2F0aW9ucyBvZj0KIHN1Y2ggYWN0aW9ucy4iKTtlLnB1c2goIjwlIH0lPiIpO2UucHVzaCgiPC9k
aXY+Iik7ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImRhPQp0YXNldF90YWJsZSI+Jyk7ZS5wdXNoKCI8
aDI+Rm9sZGVyIHBlcm1pc3Npb25zPC9oMj4iKTtlLnB1c2goIjxoND5Sb2xlcyB0aGE9CnQgY2Fu
IG1hbmFnZSBwZXJtaXNzaW9ucyBvbiB0aGlzIGZvbGRlcjwvaDQ+Iik7ZS5wdXNoKCc8ZGl2IGlk
PTNEIm1hbmFnZV9wZT0Kcm0iIGNsYXNzPTNEIm1hbmFnZV9wZXJtIHJvbGVzLXNlbGVjdGlvbiI+
PC9kaXY+Jyk7ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImFsPQplcnQgYWxlcnQtaW5mbyByb2xlcy1z
ZWxlY3Rpb24iPlVzZXIgd2l0aCA8c3Ryb25nPmFueTwvc3Ryb25nPiBvZiB0aGVzZSByb2w9CmVz
IGNhbiBtYW5hZ2UgcGVybWlzc2lvbnMgb24gdGhpcyBmb2xkZXIuPC9kaXY+Jyk7ZS5wdXNoKCI8
aDQ+Um9sZXMgdGhhdCBjYT0KbiBhZGQgaXRlbXMgdG8gdGhpcyBmb2xkZXI8L2g0PiIpO2UucHVz
aCgnPGRpdiBpZD0zRCJhZGRfcGVybSIgY2xhc3M9M0QiYWRkPQpfcGVybSByb2xlcy1zZWxlY3Rp
b24iPjwvZGl2PicpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZvIHJvbGU9
CnMtc2VsZWN0aW9uIj5Vc2VyIHdpdGggPHN0cm9uZz5hbnk8L3N0cm9uZz4gb2YgdGhlc2Ugcm9s
ZXMgY2FuIGFkZCBpdGVtcyB0bz0KIHRoaXMgZm9sZGVyIChmb2xkZXJzIGFuZCBkYXRhc2V0cyku
PC9kaXY+Jyk7ZS5wdXNoKCI8aDQ+Um9sZXMgdGhhdCBjYW4gbW9kPQppZnkgdGhpcyBmb2xkZXI8
L2g0PiIpO2UucHVzaCgnPGRpdiBpZD0zRCJtb2RpZnlfcGVybSIgY2xhc3M9M0QibW9kaWZ5X3Bl
cm09CiByb2xlcy1zZWxlY3Rpb24iPjwvZGl2PicpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVy
dCBhbGVydC1pbmZvIHJvbGVzLXNlbD0KZWN0aW9uIj5Vc2VyIHdpdGggPHN0cm9uZz5hbnk8L3N0
cm9uZz4gb2YgdGhlc2Ugcm9sZXMgY2FuIG1vZGlmeSB0aGlzIGZvbGRlPQpyIChuYW1lLCBldGMu
KS48L2Rpdj4nKTtlLnB1c2goJzxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1w
bGFjZW09CmVudD0zRCJ0b3AiIHRpdGxlPTNEIlNhdmUgbW9kaWZpY2F0aW9ucyIgY2xhc3M9M0Qi
YnRuIGJ0bi1kZWZhdWx0IHRvb2xidG5fcz0KYXZlX3Blcm1pc3Npb25zIHByaW1hcnktYnV0dG9u
IiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZmxvcHB5PQotbyI+PC9zcGFu
PiBTYXZlPC9zcGFuPjwvYnV0dG9uPicpO2UucHVzaCgiPC9kaXY+Iik7ZS5wdXNoKCI8L2Rpdj4i
KTtyZXR1cm49CiBfLnRlbXBsYXRlKGUuam9pbigiIikpfX0pO3JldHVybntGb2xkZXJWaWV3OmJ9
fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGVmaW5lKFsibGlicy90b2FzdHIiLCJt
dmMvbGlicmFyeS9saWJyYXJ5LW1vZGVsIiwibXZjL3VpL3VpLXNlbGVjdCJdLGZ1bmM9CnRpb24o
ZCxjLGEpe3ZhciBiPTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2VsOiIjY2VudGVyIixtb2RlbDpu
dWxsLG9wdGlvbnM6ez0KfSxldmVudHM6eyJjbGljayAudG9vbGJ0bl9zYXZlX3Blcm1pc3Npb25z
Ijoic2F2ZVBlcm1pc3Npb25zIn0saW5pdGlhbGl6ZTpmPQp1bmN0aW9uKGUpe3RoaXMub3B0aW9u
cz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxlKTtpZih0aGlzLm9wdGlvbnMuaWQpe3RoaXM9Ci5m
ZXRjaEZvbGRlcigpfX0sZmV0Y2hGb2xkZXI6ZnVuY3Rpb24oZSl7dGhpcy5vcHRpb25zPTNEXy5l
eHRlbmQodGhpcy5vcHRpbz0KbnMsZSk7dGhpcy5tb2RlbD0zRG5ldyBjLkZvbGRlckFzTW9kZWwo
e2lkOnRoaXMub3B0aW9ucy5pZH0pO3ZhciBmPTNEdGhpczt0PQpoaXMubW9kZWwuZmV0Y2goe3N1
Y2Nlc3M6ZnVuY3Rpb24oKXtpZihmLm9wdGlvbnMuc2hvd19wZXJtaXNzaW9ucyl7Zi5zaG93UGU9
CnJtaXNzaW9ucygpfWVsc2V7Zi5yZW5kZXIoKX19LGVycm9yOmZ1bmN0aW9uKGgsZyl7aWYodHlw
ZW9mIGcucmVzcG9uc2VKU09OIT0KPTNEPTNEInVuZGVmaW5lZCIpe2QuZXJyb3IoZy5yZXNwb25z
ZUpTT04uZXJyX21zZysiIENsaWNrIHRoaXMgdG8gZ28gYmFjay4iPQosIiIse29uY2xpY2s6ZnVu
Y3Rpb24oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX19KX1lbHNle2Qu
ZXI9CnJvcigiQW4gZXJyb3Igb2N1cnJlZC4gQ2xpY2sgdGhpcyB0byBnbyBiYWNrLiIsIiIse29u
Y2xpY2s6ZnVuY3Rpb24oKXtHYWxheD0KeS5saWJyYXJpZXMubGlicmFyeV9yb3V0ZXIuYmFjaygp
fX0pfX19KX0scmVuZGVyOmZ1bmN0aW9uKGUpeyQoIi50b29sdGlwIikuPQpyZW1vdmUoKTt0aGlz
Lm9wdGlvbnM9M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsZSk7dmFyIGY9M0R0aGlzLnRlbXBsYXRl
Rm9sZGU9CnIoKTt0aGlzLiRlbC5odG1sKGYoe2l0ZW06dGhpcy5tb2RlbH0pKTskKCIucGVlayIp
Lmh0bWwodGhpcy5tb2RlbC5nZXQoInBlZT0KayIpKTskKCIjY2VudGVyIFtkYXRhLXRvZ2dsZV0i
KS50b29sdGlwKCl9LHNoYXJlRm9sZGVyOmZ1bmN0aW9uKCl7ZC5pbmZvKCJGPQplYXR1cmUgY29t
aW5nIHNvb24uIil9LGdvQmFjazpmdW5jdGlvbigpe0dhbGF4eS5saWJyYXJpZXMubGlicmFyeV9y
b3V0ZXIuYmE9CmNrKCl9LHNob3dQZXJtaXNzaW9uczpmdW5jdGlvbihmKXt0aGlzLm9wdGlvbnM9
M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsZik7JD0KKCIudG9vbHRpcCIpLnJlbW92ZSgpO3ZhciBo
PTNEZmFsc2U7aWYoR2FsYXh5LmN1cnJVc2VyKXtoPTNER2FsYXh5LmN1cnJVc2VyPQouaXNBZG1p
bigpfXZhciBnPTNEdGhpcy50ZW1wbGF0ZUZvbGRlclBlcm1pc3Npb25zKCk7dGhpcy4kZWwuaHRt
bChnKHtmb2xkZXI9Cjp0aGlzLm1vZGVsLGlzX2FkbWluOmh9KSk7dmFyIGU9M0R0aGlzO2lmKHRo
aXMub3B0aW9ucy5mZXRjaGVkX3Blcm1pc3Npb25zPQo9M0Q9M0Q9M0R1bmRlZmluZWQpeyQuZ2V0
KCh3aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXA9CmkvZm9s
ZGVycy8iK2UuaWQrIi9wZXJtaXNzaW9ucz9zY29wZT0zRGN1cnJlbnQiKS5kb25lKGZ1bmN0aW9u
KGkpe2UucHJlcGFyZT0KU2VsZWN0Qm94ZXMoe2ZldGNoZWRfcGVybWlzc2lvbnM6aX0pfSkuZmFp
bChmdW5jdGlvbigpe2QuZXJyb3IoIkFuIGVycm9yIG9jPQpjdXJyZWQgd2hpbGUgYXR0ZW1wdGlu
ZyB0byBmZXRjaCBmb2xkZXIgcGVybWlzc2lvbnMuIil9KX1lbHNle3RoaXMucHJlcGFyZVM9CmVs
ZWN0Qm94ZXMoe30pfSQoIiNjZW50ZXIgW2RhdGEtdG9nZ2xlXSIpLnRvb2x0aXAoKTskKCIjY2Vu
dGVyIikuY3NzKCJvdmVyZj0KbG93IiwiYXV0byIpfSxfc2VyaWFsaXplUm9sZXM6ZnVuY3Rpb24o
Zyl7dmFyIGU9M0RbXTtmb3IodmFyIGY9M0QwO2Y8Zy5sZW5nPQp0aDtmKyspe2UucHVzaChnW2Zd
KyI6IitnW2ZdKX1yZXR1cm4gZX0scHJlcGFyZVNlbGVjdEJveGVzOmZ1bmN0aW9uKGgpe3RoaXM9
Ci5vcHRpb25zPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGgpO3ZhciBmPTNEdGhpcy5vcHRpb25z
LmZldGNoZWRfcGVybWlzc2lvbj0Kczt2YXIgZz0zRHRoaXM7dmFyIGk9M0R0aGlzLl9zZXJpYWxp
emVSb2xlcyhmLmFkZF9saWJyYXJ5X2l0ZW1fcm9sZV9saXN0KTt2PQphciBqPTNEdGhpcy5fc2Vy
aWFsaXplUm9sZXMoZi5tYW5hZ2VfZm9sZGVyX3JvbGVfbGlzdCk7dmFyIGU9M0R0aGlzLl9zZXJp
YWw9Cml6ZVJvbGVzKGYubW9kaWZ5X2ZvbGRlcl9yb2xlX2xpc3QpO2cuYWRkU2VsZWN0T2JqZWN0
PTNEbmV3IGEuVmlldyh0aGlzLl9jcj0KZWF0ZVNlbGVjdE9wdGlvbnModGhpcywiYWRkX3Blcm0i
LGksZmFsc2UpKTtnLm1hbmFnZVNlbGVjdE9iamVjdD0zRG5ldyBhLlZpPQpldyh0aGlzLl9jcmVh
dGVTZWxlY3RPcHRpb25zKHRoaXMsIm1hbmFnZV9wZXJtIixqLGZhbHNlKSk7Zy5tb2RpZnlTZWxl
Y3RPYmo9CmVjdD0zRG5ldyBhLlZpZXcodGhpcy5fY3JlYXRlU2VsZWN0T3B0aW9ucyh0aGlzLCJt
b2RpZnlfcGVybSIsZSxmYWxzZSkpfSxfYz0KcmVhdGVTZWxlY3RPcHRpb25zOmZ1bmN0aW9uKGUs
aixoKXt2YXIgaT0zRHttaW5pbXVtSW5wdXRMZW5ndGg6MCxjc3M6aixtdWx0PQppcGxlOnRydWUs
cGxhY2Vob2xkZXI6IkNsaWNrIHRvIHNlbGVjdCBhIHJvbGUiLGNvbnRhaW5lcjplLiRlbC5maW5k
KCIjIitqKSw9CmFqYXg6e3VybDood2luZG93LmdhbGF4eV9jb25maWc/Z2FsYXh5X2NvbmZpZy5y
b290OiIvIikrImFwaS9mb2xkZXJzLyIrZS5pZD0KKyIvcGVybWlzc2lvbnM/c2NvcGU9M0RhdmFp
bGFibGUiLGRhdGFUeXBlOiJqc29uIixxdWlldE1pbGxpczoxMDAsZGF0YTpmdW5jPQp0aW9uKGss
bCl7cmV0dXJue3E6ayxwYWdlX2xpbWl0OjEwLHBhZ2U6bH19LHJlc3VsdHM6ZnVuY3Rpb24obSxs
KXt2YXIgaz0zRCg9CmwqMTApPG0udG90YWw7cmV0dXJue3Jlc3VsdHM6bS5yb2xlcyxtb3JlOmt9
fX0sZm9ybWF0UmVzdWx0OmZ1bmN0aW9uIGYoayl7cj0KZXR1cm4gay5uYW1lKyIgdHlwZTogIitr
LnR5cGV9LGZvcm1hdFNlbGVjdGlvbjpmdW5jdGlvbiBnKGspe3JldHVybiBrLm5hbWV9PQosaW5p
dFNlbGVjdGlvbjpmdW5jdGlvbihrLG0pe3ZhciBsPTNEW107JChrLnZhbCgpLnNwbGl0KCIsIikp
LmVhY2goZnVuY3Rpb249Cigpe3ZhciBuPTNEdGhpcy5zcGxpdCgiOiIpO2wucHVzaCh7aWQ6blsx
XSxuYW1lOm5bMV19KX0pO20obCl9LGluaXRpYWxEYXRhOj0KaC5qb2luKCIsIiksZHJvcGRvd25D
c3NDbGFzczoiYmlnZHJvcCJ9O3JldHVybiBpfSxjb21pbmdTb29uOmZ1bmN0aW9uKCl7ZC53PQph
cm5pbmcoIkZlYXR1cmUgY29taW5nIHNvb24uIil9LGNvcHlUb0NsaXBib2FyZDpmdW5jdGlvbigp
e3ZhciBlPTNEQmFja2JvbmU9Ci5oaXN0b3J5LmxvY2F0aW9uLmhyZWY7aWYoZS5sYXN0SW5kZXhP
ZigiL3Blcm1pc3Npb25zIikhPTNEPTNELTEpe2U9M0RlLnN1Yj0Kc3RyKDAsZS5sYXN0SW5kZXhP
ZigiL3Blcm1pc3Npb25zIikpfXdpbmRvdy5wcm9tcHQoIkNvcHkgdG8gY2xpcGJvYXJkOiBDdHJs
PQorQywgRW50ZXIiLGUpfSxfZXh0cmFjdElkczpmdW5jdGlvbihlKXtpZHNfbGlzdD0zRFtdO2Zv
cih2YXIgZj0zRGUubGVuZ3RoLTE9CjtmPj0zRDA7Zi0tKXtpZHNfbGlzdC5wdXNoKGVbZl0uaWQp
fXJldHVybiBpZHNfbGlzdH0sc2F2ZVBlcm1pc3Npb25zOmZ1bmN0aT0Kb24oaCl7dmFyIGc9M0R0
aGlzO3ZhciBlPTNEdGhpcy5fZXh0cmFjdElkcyh0aGlzLmFkZFNlbGVjdE9iamVjdC4kZWwuc2Vs
ZWN0PQoyKCJkYXRhIikpO3ZhciBpPTNEdGhpcy5fZXh0cmFjdElkcyh0aGlzLm1hbmFnZVNlbGVj
dE9iamVjdC4kZWwuc2VsZWN0MigiZGE9CnRhIikpO3ZhciBmPTNEdGhpcy5fZXh0cmFjdElkcyh0
aGlzLm1vZGlmeVNlbGVjdE9iamVjdC4kZWwuc2VsZWN0MigiZGF0YSIpKT0KOyQucG9zdCgod2lu
ZG93LmdhbGF4eV9jb25maWc/Z2FsYXh5X2NvbmZpZy5yb290OiIvIikrImFwaS9mb2xkZXJzLyIr
Zy5pZCsiPQovcGVybWlzc2lvbnM/YWN0aW9uPTNEc2V0X3Blcm1pc3Npb25zIix7ImFkZF9pZHNb
XSI6ZSwibWFuYWdlX2lkc1tdIjppLCJtb2Q9CmlmeV9pZHNbXSI6Zix9KS5kb25lKGZ1bmN0aW9u
KGope2cuc2hvd1Blcm1pc3Npb25zKHtmZXRjaGVkX3Blcm1pc3Npb25zOmp9KT0KO2Quc3VjY2Vz
cygiUGVybWlzc2lvbnMgc2F2ZWQuIil9KS5mYWlsKGZ1bmN0aW9uKCl7ZC5lcnJvcigiQW4gZXJy
b3Igb2NjdXJyPQplZCB3aGlsZSBhdHRlbXB0aW5nIHRvIHNldCBmb2xkZXIgcGVybWlzc2lvbnMu
Iil9KX0sdGVtcGxhdGVGb2xkZXI6ZnVuY3Rpb249Cigpe3ZhciBlPTNEW107ZS5wdXNoKCc8ZGl2
IGNsYXNzPTNEImxpYnJhcnlfc3R5bGVfY29udGFpbmVyIj4nKTtlLnB1c2goJyAgPD0KZGl2IGlk
PTNEImxpYnJhcnlfdG9vbGJhciI+Jyk7ZS5wdXNoKCcgICA8YnV0dG9uIGRhdGEtdG9nZ2xlPTNE
InRvb2x0aXAiIGRhPQp0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJNb2RpZnkgbGlicmFy
eSBpdGVtIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQ9CiB0b29sYnRuX21vZGlmeV9kYXRhc2V0
IHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZj0KYS1w
ZW5jaWwiPjwvc3Bhbj4gTW9kaWZ5PC9zcGFuPjwvYnV0dG9uPicpO2UucHVzaCgnICAgPGEgaHJl
Zj0zRCIjZm9sZGVycy88PQolLSBpdGVtLmdldCgiZm9sZGVyX2lkIikgJT4vZGF0YXNldHMvPCUt
IGl0ZW0uaWQgJT4vcGVybWlzc2lvbnMiPjxidXR0b24gZGE9CnRhLXRvZ2dsZT0zRCJ0b29sdGlw
IiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIk1hbmFnZSBwZXJtaXNzaW9ucyIgYz0K
bGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgdG9vbGJ0bl9jaGFuZ2VfcGVybWlzc2lvbnMgcHJpbWFy
eS1idXR0b24iIHR5cGU9M0QiPQpidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLWdyb3VwIj48
L3NwYW4+IFBlcm1pc3Npb25zPC9zcGFuPjwvYnV0dG9uPjwvYT49CicpO2UucHVzaCgnICAgPGJ1
dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxl
PQo9M0QiU2hhcmUgZGF0YXNldCIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0IHRvb2xidG4tc2hh
cmUtZGF0YXNldCBwcmltYXJ5LWI9CnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9
M0QiZmEgZmEtc2hhcmUiPjwvc3Bhbj4gU2hhcmU8L3NwYW4+PC9idT0KdHRvbj4nKTtlLnB1c2go
IiAgPC9kaXY+Iik7ZS5wdXNoKCIgIDxwPiIpO2UucHVzaCgiICBUaGlzIGRhdGFzZXQgaXMgdW5y
ZXN0PQpyaWN0ZWQgc28gZXZlcnlib2R5IGNhbiBhY2Nlc3MgaXQuIEp1c3Qgc2hhcmUgdGhlIFVS
TCBvZiB0aGlzIHBhZ2UuICIpO2UucHU9CnNoKCcgIDxidXR0b24gZGF0YS10b2dnbGU9M0QidG9v
bHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJDb3B5ID0KdG8gY2xpcGJvYXJk
IiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgYnRuLWNvcHktbGluay10by1jbGlwYm9hcmQgcHJp
bWFyeS1iPQp1dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLWNsaXBi
b2FyZCI+PC9zcGFuPiBUbyBDbGlwYm9hcmQ9Cjwvc3Bhbj48L2J1dHRvbj4gJyk7ZS5wdXNoKCIg
IDwvcD4iKTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiZGF0YXNldF90YWJsZSI+Jz0KKTtlLnB1c2go
JyAgIDx0YWJsZSBjbGFzcz0zRCJncmlkIHRhYmxlIHRhYmxlLXN0cmlwZWQgdGFibGUtY29uZGVu
c2VkIj4nKTtlPQoucHVzaCgiICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNj
b3BlPTNEInJvdyIgaWQ9M0QiaWRfcm93IiBkYXQ9CmEtaWQ9M0QiPCU9M0QgXy5lc2NhcGUoaXRl
bS5nZXQoImxkZGFfaWQiKSkgJT4iPk5hbWU8L3RoPicpO2UucHVzaCgnICAgICAgID0KICAgIDx0
ZD48JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibmFtZSIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAg
ICAgPC90cj4iKTtlPQoucHVzaCgnICAgPCUgaWYgKGl0ZW0uZ2V0KCJmaWxlX2V4dCIpKSB7ICU+
Jyk7ZS5wdXNoKCIgICAgICAgPHRyPiIpO2UucHVzaCg9CicgICAgICAgICAgIDx0aCBzY29wZT0z
RCJyb3ciPkRhdGEgdHlwZTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZD48JT0zRD0KIF8u
ZXNjYXBlKGl0ZW0uZ2V0KCJmaWxlX2V4dCIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKCIgICAgICAgPC90
cj4iKTtlLnB1c2goIiAgPQogPCUgfSAlPiIpO2UucHVzaCgiICAgIDwvdGFibGU+Iik7ZS5wdXNo
KCI8L2Rpdj4iKTtlLnB1c2goIjwvZGl2PiIpO3JldHVybiA9Cl8udGVtcGxhdGUoZS5qb2luKCIi
KSl9LHRlbXBsYXRlRm9sZGVyUGVybWlzc2lvbnM6ZnVuY3Rpb24oKXt2YXIgZT0zRFtdO2UucD0K
dXNoKCc8ZGl2IGNsYXNzPTNEImxpYnJhcnlfc3R5bGVfY29udGFpbmVyIj4nKTtlLnB1c2goJyAg
PGRpdiBpZD0zRCJsaWJyYXJ5PQpfdG9vbGJhciI+Jyk7ZS5wdXNoKCcgICA8YSBocmVmPTNEIiMv
Zm9sZGVycy88JT0zRCBmb2xkZXIuZ2V0KCJwYXJlbnRfaWQiKSA9CiU+Ij48YnV0dG9uIGRhdGEt
dG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiR28gYmFj
az0KIHRvIHRoZSBwYXJlbnQgZm9sZGVyIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgcHJpbWFy
eS1idXR0b24iIHR5cGU9M0QiYnV0PQp0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLWNhcmV0LWxl
ZnQgZmEtbGciPjwvc3Bhbj4gUGFyZW50IGZvbGRlcjwvc3Bhbj48L2I9CnV0dG9uPjwvYT4nKTtl
LnB1c2goIiAgPC9kaXY+Iik7ZS5wdXNoKCc8aDE+Rm9sZGVyOiA8JT0zRCBfLmVzY2FwZShmb2xk
ZXIuZz0KZXQoIm5hbWUiKSkgJT48L2gxPicpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBh
bGVydC13YXJuaW5nIj4nKTtlLnB1c2goPQoiPCUgaWYgKGlzX2FkbWluKSB7ICU+Iik7ZS5wdXNo
KCJZb3UgYXJlIGxvZ2dlZCBpbiBhcyBhbiA8c3Ryb25nPmFkbWluaXN0cmE9CnRvcjwvc3Ryb25n
PiB0aGVyZWZvcmUgeW91IGNhbiBtYW5hZ2UgYW55IGZvbGRlciBvbiB0aGlzIEdhbGF4eSBpbnN0
YW5jZS4gUD0KbGVhc2UgbWFrZSBzdXJlIHlvdSB1bmRlcnN0YW5kIHRoZSBjb25zZXF1ZW5jZXMu
Iik7ZS5wdXNoKCI8JSB9IGVsc2UgeyAlPiIpPQo7ZS5wdXNoKCJZb3UgY2FuIGFzc2lnbiBhbnkg
bnVtYmVyIG9mIHJvbGVzIHRvIGFueSBvZiB0aGUgZm9sbG93aW5nIHBlcm1pc3M9CmlvbiB0eXBl
cy4gSG93ZXZlciBwbGVhc2UgcmVhZCBjYXJlZnVsbHkgdGhlIGltcGxpY2F0aW9ucyBvZiBzdWNo
IGFjdGlvbnMuIj0KKTtlLnB1c2goIjwlIH0lPiIpO2UucHVzaCgiPC9kaXY+Iik7ZS5wdXNoKCc8
ZGl2IGNsYXNzPTNEImRhdGFzZXRfdGFibGUiPicpPQo7ZS5wdXNoKCI8aDI+Rm9sZGVyIHBlcm1p
c3Npb25zPC9oMj4iKTtlLnB1c2goIjxoND5Sb2xlcyB0aGF0IGNhbiBtYW5hZ2UgcGU9CnJtaXNz
aW9ucyBvbiB0aGlzIGZvbGRlcjwvaDQ+Iik7ZS5wdXNoKCc8ZGl2IGlkPTNEIm1hbmFnZV9wZXJt
IiBjbGFzcz0zRCJtYT0KbmFnZV9wZXJtIHJvbGVzLXNlbGVjdGlvbiI+PC9kaXY+Jyk7ZS5wdXNo
KCc8ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LWluZm8gPQpyb2xlcy1zZWxlY3Rpb24iPlVzZXIg
d2l0aCA8c3Ryb25nPmFueTwvc3Ryb25nPiBvZiB0aGVzZSByb2xlcyBjYW4gbWFuYWdlIHA9CmVy
bWlzc2lvbnMgb24gdGhpcyBmb2xkZXIuPC9kaXY+Jyk7ZS5wdXNoKCI8aDQ+Um9sZXMgdGhhdCBj
YW4gYWRkIGl0ZW1zIHRvID0KdGhpcyBmb2xkZXI8L2g0PiIpO2UucHVzaCgnPGRpdiBpZD0zRCJh
ZGRfcGVybSIgY2xhc3M9M0QiYWRkX3Blcm0gcm9sZXMtc2VsPQplY3Rpb24iPjwvZGl2PicpO2Uu
cHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZvIHJvbGVzLXNlbGVjdGlvbiI+VXM9
CmVyIHdpdGggPHN0cm9uZz5hbnk8L3N0cm9uZz4gb2YgdGhlc2Ugcm9sZXMgY2FuIGFkZCBpdGVt
cyB0byB0aGlzIGZvbGRlciAoZj0Kb2xkZXJzIGFuZCBkYXRhc2V0cykuPC9kaXY+Jyk7ZS5wdXNo
KCI8aDQ+Um9sZXMgdGhhdCBjYW4gbW9kaWZ5IHRoaXMgZm9sZGVyPQo8L2g0PiIpO2UucHVzaCgn
PGRpdiBpZD0zRCJtb2RpZnlfcGVybSIgY2xhc3M9M0QibW9kaWZ5X3Blcm0gcm9sZXMtc2VsZWN0
aW89Cm4iPjwvZGl2PicpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZvIHJv
bGVzLXNlbGVjdGlvbiI+VXNlciB3aT0KdGggPHN0cm9uZz5hbnk8L3N0cm9uZz4gb2YgdGhlc2Ug
cm9sZXMgY2FuIG1vZGlmeSB0aGlzIGZvbGRlciAobmFtZSwgZXRjLikuPQo8L2Rpdj4nKTtlLnB1
c2goJzxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9w
IiB0aXQ9CmxlPTNEIlNhdmUgbW9kaWZpY2F0aW9ucyIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0
IHRvb2xidG5fc2F2ZV9wZXJtaXNzaW9ucz0KIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRv
biI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZmxvcHB5LW8iPjwvc3Bhbj4gU2F2PQplPC9zcGFuPjwv
YnV0dG9uPicpO2UucHVzaCgiPC9kaXY+Iik7ZS5wdXNoKCI8L2Rpdj4iKTtyZXR1cm4gXy50ZW1w
bGF0ZShlLmo9Cm9pbigiIikpfX0pO3JldHVybntGb2xkZXJWaWV3OmJ9fSk7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciA0OWQ1MGJjZTQ2MzIwNmY0NDUwNjNkMmIyN2IyZjJi
MzkzYWRiZTExIC1yIDFjY2Y0MGJkYWZhMTg0YjNiZTMxYWE3PQpiMWVjZGZjZTNiYzcwNWVmYiBz
dGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2xpYnJhcnkvbGlicmFyeS1mb2xkZXJ0b29sYmFyLXY9
Cmlldy5qcwotLS0gYS9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2xpYnJhcnkvbGlicmFyeS1m
b2xkZXJ0b29sYmFyLXZpZXcuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9saWJy
YXJ5L2xpYnJhcnktZm9sZGVydG9vbGJhci12aWV3LmpzCkBAIC0xLDEgKzEsMSBAQAotZGVmaW5l
KFsiZ2FsYXh5Lm1hc3RoZWFkIiwidXRpbHMvdXRpbHMiLCJsaWJzL3RvYXN0ciIsIm12Yy9saWJy
YXJ5L2xpYnJhcnk9Ci1tb2RlbCIsIm12Yy91aS91aS1zZWxlY3QiXSxmdW5jdGlvbihjLGUsZixk
LGEpe3ZhciBiPTNEQmFja2JvbmUuVmlldy5leHRlbj0KZCh7ZWw6IiNjZW50ZXIiLGV2ZW50czp7
ImNsaWNrICN0b29sYnRuX2NyZWF0ZV9mb2xkZXIiOiJjcmVhdGVGb2xkZXJGcm9tTW9kPQphbCIs
ImNsaWNrICN0b29sYnRuX2J1bGtfaW1wb3J0IjoibW9kYWxCdWxrSW1wb3J0IiwiY2xpY2sgI2lu
Y2x1ZGVfZGVsZXRlZF89CmRhdGFzZXRzX2NoayI6ImNoZWNrSW5jbHVkZURlbGV0ZWQiLCJjbGlj
ayAjdG9vbGJ0bl9zaG93X2xpYmluZm8iOiJzaG93TGliST0KbmZvIiwiY2xpY2sgI3Rvb2xidG5f
YnVsa19kZWxldGUiOiJkZWxldGVTZWxlY3RlZERhdGFzZXRzIiwiY2xpY2sgI3BhZ2Vfc2l6PQpl
X3Byb21wdCI6InNob3dQYWdlU2l6ZVByb21wdCJ9LGRlZmF1bHRzOntjYW5fYWRkX2xpYnJhcnlf
aXRlbTpmYWxzZSxjb250YWk9Cm5zX2ZpbGU6ZmFsc2UsY2hhaW5fY2FsbF9jb250cm9sOnt0b3Rh
bF9udW1iZXI6MCxmYWlsZWRfbnVtYmVyOjB9LGRpc2FibGVkXz0KanN0cmVlX2VsZW1lbnQ6ImZv
bGRlcnMifSxtb2RhbDpudWxsLGpzdHJlZTpudWxsLGhpc3RvcmllczpudWxsLHNlbGVjdF9nZW5v
PQptZTpudWxsLHNlbGVjdF9leHRlbnNpb246bnVsbCxsaXN0X2V4dGVuc2lvbnM6W10sYXV0bzp7
aWQ6ImF1dG8iLHRleHQ6IkF1dG89Ci1kZXRlY3QiLGRlc2NyaXB0aW9uOiJUaGlzIHN5c3RlbSB3
aWxsIHRyeSB0byBkZXRlY3QgdGhlIGZpbGUgdHlwZSBhdXRvbWF0aT0KY2FsbHkuIElmIHlvdXIg
ZmlsZSBpcyBub3QgZGV0ZWN0ZWQgcHJvcGVybHkgYXMgb25lIG9mIHRoZSBrbm93biBmb3JtYXRz
LCBpPQp0IG1vc3QgbGlrZWx5IG1lYW5zIHRoYXQgaXQgaGFzIHNvbWUgZm9ybWF0IHByb2JsZW1z
IChlLmcuLCBkaWZmZXJlbnQgbnVtYmU9CnIgb2YgY29sdW1ucyBvbiBkaWZmZXJlbnQgcm93cyku
IFlvdSBjYW4gc3RpbGwgY29lcmNlIHRoZSBzeXN0ZW0gdG8gc2V0IHlvdT0KciBkYXRhIHRvIHRo
ZSBmb3JtYXQgeW91IHRoaW5rIGl0IHNob3VsZCBiZS4gWW91IGNhbiBhbHNvIHVwbG9hZCBjb21w
cmVzc2VkPQogZmlsZXMsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBiZSBkZWNvbXByZXNzZWQu
In0sbGlzdF9nZW5vbWVzOltdLGluaXRpYWw9Cml6ZTpmdW5jdGlvbihnKXt0aGlzLm9wdGlvbnM9
M0RfLmRlZmF1bHRzKGd8fHt9LHRoaXMuZGVmYXVsdHMpO3RoaXMuZmV0Y2hFeD0KdEFuZEdlbm9t
ZXMoKTt0aGlzLnJlbmRlcigpfSxyZW5kZXI6ZnVuY3Rpb24oZyl7dGhpcy5vcHRpb25zPTNEXy5l
eHRlbmQodGhpPQpzLm9wdGlvbnMsZyk7dmFyIGk9M0R0aGlzLnRlbXBsYXRlVG9vbEJhcigpO3Zh
ciBoPTNEe2lkOnRoaXMub3B0aW9ucy5pZCxpc189CmFkbWluOmZhbHNlLGlzX2Fub255bTp0cnVl
LG11dGlwbGVfYWRkX2RhdGFzZXRfb3B0aW9uczpmYWxzZX07aWYoR2FsYXh5LmN1cj0KclVzZXIp
e2guaXNfYWRtaW49M0RHYWxheHkuY3VyclVzZXIuaXNBZG1pbigpO2guaXNfYW5vbnltPTNER2Fs
YXh5LmN1cnJVc2VyPQouaXNBbm9ueW1vdXMoKTtpZihHYWxheHkuY29uZmlnLnVzZXJfbGlicmFy
eV9pbXBvcnRfZGlyIT0zRD0zRG51bGx8fEdhbGF4eS49CmNvbmZpZy5hbGxvd19saWJyYXJ5X3Bh
dGhfcGFzdGUhPTNEPTNEZmFsc2V8fEdhbGF4eS5jb25maWcubGlicmFyeV9pbXBvcnRfZD0KaXIh
PTNEPTNEbnVsbCl7aC5tdXRpcGxlX2FkZF9kYXRhc2V0X29wdGlvbnM9M0R0cnVlfX10aGlzLiRl
bC5odG1sKGkoaCkpfSxyPQplbmRlclBhZ2luYXRvcjpmdW5jdGlvbihoKXt0aGlzLm9wdGlvbnM9
M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsaCk7dmFyIGc9M0Q9CnRoaXMudGVtcGxhdGVQYWdpbmF0
b3IoKTt0aGlzLiRlbC5maW5kKCIjZm9sZGVyX3BhZ2luYXRvciIpLmh0bWwoZyh7aWQ6dGhpcz0K
Lm9wdGlvbnMuaWQsc2hvd19wYWdlOnBhcnNlSW50KHRoaXMub3B0aW9ucy5zaG93X3BhZ2UpLHBh
Z2VfY291bnQ6cGFyc2VJbnQoPQp0aGlzLm9wdGlvbnMucGFnZV9jb3VudCksdG90YWxfaXRlbXNf
Y291bnQ6dGhpcy5vcHRpb25zLnRvdGFsX2l0ZW1zX2NvdW50LGk9CnRlbXNfc2hvd246dGhpcy5v
cHRpb25zLml0ZW1zX3Nob3dufSkpfSxjb25maWd1cmVFbGVtZW50czpmdW5jdGlvbihnKXt0aGlz
Lj0Kb3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxnKTtpZih0aGlzLm9wdGlvbnMuY2Fu
X2FkZF9saWJyYXJ5X2l0ZW09M0Q9Cj0zRD0zRHRydWUpeyQoIi5hZGQtbGlicmFyeS1pdGVtcyIp
LnNob3coKX1lbHNleyQoIi5hZGQtbGlicmFyeS1pdGVtcyIpLmhpZD0KZSgpfWlmKHRoaXMub3B0
aW9ucy5jb250YWluc19maWxlPTNEPTNEPTNEdHJ1ZSl7aWYoR2FsYXh5LmN1cnJVc2VyKXtpZigh
R2FsPQpheHkuY3VyclVzZXIuaXNBbm9ueW1vdXMoKSl7JCgiLmxvZ2dlZC1kYXRhc2V0LW1hbmlw
dWxhdGlvbiIpLnNob3coKTskKCIuZGE9CnRhc2V0LW1hbmlwdWxhdGlvbiIpLnNob3coKX1lbHNl
eyQoIi5kYXRhc2V0LW1hbmlwdWxhdGlvbiIpLnNob3coKTskKCIubG9nZz0KZWQtZGF0YXNldC1t
YW5pcHVsYXRpb24iKS5oaWRlKCl9fWVsc2V7JCgiLmxvZ2dlZC1kYXRhc2V0LW1hbmlwdWxhdGlv
biIpLmhpPQpkZSgpOyQoIi5kYXRhc2V0LW1hbmlwdWxhdGlvbiIpLmhpZGUoKX19ZWxzZXskKCIu
bG9nZ2VkLWRhdGFzZXQtbWFuaXB1bGF0aW89Cm4iKS5oaWRlKCk7JCgiLmRhdGFzZXQtbWFuaXB1
bGF0aW9uIikuaGlkZSgpfXRoaXMuJGVsLmZpbmQoIltkYXRhLXRvZ2dsZV0iKT0KLnRvb2x0aXAo
KX0sY3JlYXRlRm9sZGVyRnJvbU1vZGFsOmZ1bmN0aW9uKGkpe2kucHJldmVudERlZmF1bHQoKTtp
LnN0b3BQcm9wPQphZ2F0aW9uKCk7dmFyIGc9M0R0aGlzO3ZhciBoPTNEdGhpcy50ZW1wbGF0ZU5l
d0ZvbGRlckluTW9kYWwoKTt0aGlzLm1vZGFsPQo9M0RHYWxheHkubW9kYWw7dGhpcy5tb2RhbC5z
aG93KHtjbG9zaW5nX2V2ZW50czp0cnVlLHRpdGxlOiJDcmVhdGUgTmV3IEZvbGQ9CmVyIixib2R5
OmgoKSxidXR0b25zOntDcmVhdGU6ZnVuY3Rpb24oKXtnLmNyZWF0ZV9uZXdfZm9sZGVyX2V2ZW50
KCl9LENsb3NlOj0KZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuaGlkZSgpfX19KX0sY3JlYXRlX25l
d19mb2xkZXJfZXZlbnQ6ZnVuY3Rpb24oKXt2YXIgPQpnPTNEdGhpcy5zZXJpYWxpemVfbmV3X2Zv
bGRlcigpO2lmKHRoaXMudmFsaWRhdGVfbmV3X2ZvbGRlcihnKSl7dmFyIGg9M0RuZXc9CiBkLkZv
bGRlckFzTW9kZWwoKTt1cmxfaXRlbXM9M0RCYWNrYm9uZS5oaXN0b3J5LmZyYWdtZW50LnNwbGl0
KCIvIik7Y3VycmVudD0KX2ZvbGRlcl9pZD0zRHVybF9pdGVtc1t1cmxfaXRlbXMubGVuZ3RoLTFd
O2gudXJsPTNEaC51cmxSb290KyIvIitjdXJyZW50X2ZvPQpsZGVyX2lkO2guc2F2ZShnLHtzdWNj
ZXNzOmZ1bmN0aW9uKGkpe0dhbGF4eS5tb2RhbC5oaWRlKCk7Zi5zdWNjZXNzKCJGb2xkZXI9CiBj
cmVhdGVkLiIpO2kuc2V0KHt0eXBlOiJmb2xkZXIifSk7R2FsYXh5LmxpYnJhcmllcy5mb2xkZXJM
aXN0Vmlldy5jb2xsZWN0aT0Kb24uYWRkKGkpfSxlcnJvcjpmdW5jdGlvbihqLGkpe0dhbGF4eS5t
b2RhbC5oaWRlKCk7aWYodHlwZW9mIGkucmVzcG9uc2VKU09OPQohPTNEPTNEInVuZGVmaW5lZCIp
e2YuZXJyb3IoaS5yZXNwb25zZUpTT04uZXJyX21zZyl9ZWxzZXtmLmVycm9yKCJBbiBlcnJvciA9
Cm9jdXJyZWQuIil9fX0pfWVsc2V7Zi5lcnJvcigiRm9sZGVyJ3MgbmFtZSBpcyBtaXNzaW5nLiIp
fXJldHVybiBmYWxzZX0sc2VyaT0KYWxpemVfbmV3X2ZvbGRlcjpmdW5jdGlvbigpe3JldHVybntu
YW1lOiQoImlucHV0W25hbWU9M0QnTmFtZSddIikudmFsKCksZGVzPQpjcmlwdGlvbjokKCJpbnB1
dFtuYW1lPTNEJ0Rlc2NyaXB0aW9uJ10iKS52YWwoKX19LHZhbGlkYXRlX25ld19mb2xkZXI6ZnVu
Y3Q9CmlvbihnKXtyZXR1cm4gZy5uYW1lIT0zRD0zRCIifSxtb2RhbEJ1bGtJbXBvcnQ6ZnVuY3Rp
b24oKXt2YXIgZz0zRCQoIiNmb2xkZT0Kcl90YWJsZSIpLmZpbmQoIjpjaGVja2VkIik7aWYoZy5s
ZW5ndGg9M0Q9M0Q9M0QwKXtmLmluZm8oIllvdSBtdXN0IHNlbGVjdCBzPQpvbWUgZGF0YXNldHMg
Zmlyc3QuIil9ZWxzZXt0aGlzLnJlZnJlc2hVc2VySGlzdG9yaWVzTGlzdChmdW5jdGlvbihpKXt2
YXIgaD0KPTNEaS50ZW1wbGF0ZUJ1bGtJbXBvcnRJbk1vZGFsKCk7aS5tb2RhbD0zREdhbGF4eS5t
b2RhbDtpLm1vZGFsLnNob3coe2Nsb3NpPQpuZ19ldmVudHM6dHJ1ZSx0aXRsZToiSW1wb3J0IGlu
dG8gSGlzdG9yeSIsYm9keTpoKHtoaXN0b3JpZXM6aS5oaXN0b3JpZXMubW89CmRlbHN9KSxidXR0
b25zOntJbXBvcnQ6ZnVuY3Rpb24oKXtpLmltcG9ydEFsbEludG9IaXN0b3J5KCl9LENsb3NlOmZ1
bmN0aW9uKD0KKXtHYWxheHkubW9kYWwuaGlkZSgpfX19KX0pfX0scmVmcmVzaFVzZXJIaXN0b3Jp
ZXNMaXN0OmZ1bmN0aW9uKGgpe3ZhciBnPTNEPQp0aGlzO3RoaXMuaGlzdG9yaWVzPTNEbmV3IGQu
R2FsYXh5SGlzdG9yaWVzKCk7dGhpcy5oaXN0b3JpZXMuZmV0Y2goe3N1Y2Nlc3M9CjpmdW5jdGlv
bigpe2goZyl9LGVycm9yOmZ1bmN0aW9uKGosaSl7aWYodHlwZW9mIGkucmVzcG9uc2VKU09OIT0z
RD0zRCJ1bmRlZj0KaW5lZCIpe2YuZXJyb3IoaS5yZXNwb25zZUpTT04uZXJyX21zZyl9ZWxzZXtm
LmVycm9yKCJBbiBlcnJvciBvY3VycmVkLiIpfX19PQopfSxpbXBvcnRBbGxJbnRvSGlzdG9yeTpm
dW5jdGlvbigpe3RoaXMubW9kYWwuZGlzYWJsZUJ1dHRvbigiSW1wb3J0Iik7dmFyIGs9Cj0zRCQo
InNlbGVjdFtuYW1lPTNEZGF0YXNldF9pbXBvcnRfYnVsa10gb3B0aW9uOnNlbGVjdGVkIikudmFs
KCk7dmFyIG49M0QkKD0KInNlbGVjdFtuYW1lPTNEZGF0YXNldF9pbXBvcnRfYnVsa10gb3B0aW9u
OnNlbGVjdGVkIikudGV4dCgpO3RoaXMub3B0aW9ucy5sPQphc3RfdXNlZF9oaXN0b3J5X2lkPTNE
azt2YXIgaD0zRFtdOyQoIiNmb2xkZXJfdGFibGUiKS5maW5kKCI6Y2hlY2tlZCIpLmVhY2g9Cihm
dW5jdGlvbigpe2lmKHRoaXMucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmlkIT0zRD0zRCIi
KXtoLnB1c2godGhpcy5wYT0KcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5pZCl9fSk7dmFyIG09
M0RbXTtmb3IodmFyIGo9M0RoLmxlbmd0aC0xO2o+PTNEMDtqPQotLSl7dmFyIGc9M0RoW2pdO3Zh
ciBsPTNEbmV3IGQuSGlzdG9yeUl0ZW0oKTtsLnVybD0zRGwudXJsUm9vdCtrKyIvY29udGVudHM9
CiI7bC5jb250ZW50PTNEZztsLnNvdXJjZT0zRCJsaWJyYXJ5IjttLnB1c2gobCl9dGhpcy5pbml0
Q2hhaW5DYWxsQ29udHJvbCh7bD0KZW5ndGg6bS5sZW5ndGgsYWN0aW9uOiJ0b19oaXN0b3J5Iixo
aXN0b3J5X25hbWU6bn0pO2pRdWVyeS5nZXRKU09OKGdhbGF4eV9jPQpvbmZpZy5yb290KyJoaXN0
b3J5L3NldF9hc19jdXJyZW50P2lkPTNEIitrKTt0aGlzLmNoYWluQ2FsbEltcG9ydGluZ0ludG9I
aXM9CnRvcnkobSxuKX0sdXBkYXRlUHJvZ3Jlc3M6ZnVuY3Rpb24oKXt0aGlzLnByb2dyZXNzKz0z
RHRoaXMucHJvZ3Jlc3NTdGVwOyQoIj0KLnByb2dyZXNzLWJhci1pbXBvcnQiKS53aWR0aChNYXRo
LnJvdW5kKHRoaXMucHJvZ3Jlc3MpKyIlIik7dHh0X3JlcHJlc2VudGF0PQppb249M0RNYXRoLnJv
dW5kKHRoaXMucHJvZ3Jlc3MpKyIlIENvbXBsZXRlIjskKCIuY29tcGxldGlvbl9zcGFuIikudGV4
dCh0eHQ9Cl9yZXByZXNlbnRhdGlvbil9LGRvd25sb2FkOmZ1bmN0aW9uKGcsayl7dmFyIGk9M0Rb
XTskKCIjZm9sZGVyX3RhYmxlIikuZmluZD0KKCI6Y2hlY2tlZCIpLmVhY2goZnVuY3Rpb24oKXtp
Zih0aGlzLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5pZCE9M0Q9M0QiPQoiKXtpLnB1c2go
dGhpcy5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQpfX0pO3ZhciBoPTNEIi9hcGkvbGli
cmFyaWVzL2Q9CmF0YXNldHMvZG93bmxvYWQvIitrO3ZhciBqPTNEe2xkX2lkczppfTt0aGlzLnBy
b2Nlc3NEb3dubG9hZChoLGosImdldCIpfSxwcj0Kb2Nlc3NEb3dubG9hZDpmdW5jdGlvbihoLGks
ail7aWYoaCYmaSl7aT0zRHR5cGVvZiBpPTNEPTNEPTNEInN0cmluZyI/aTokLnBhPQpyYW0oaSk7
dmFyIGc9M0QiIjskLmVhY2goaS5zcGxpdCgiJiIpLGZ1bmN0aW9uKCl7dmFyIGs9M0R0aGlzLnNw
bGl0KCI9M0QiKTs9CmcrPTNEJzxpbnB1dCB0eXBlPTNEImhpZGRlbiIgbmFtZT0zRCInK2tbMF0r
JyIgdmFsdWU9M0QiJytrWzFdKyciIC8+J30pOyQoJz0KPGZvcm0gYWN0aW9uPTNEIicraCsnIiBt
ZXRob2Q9M0QiJysoanx8InBvc3QiKSsnIj4nK2crIjwvZm9ybT4iKS5hcHBlbmRUbygiPQpib2R5
Iikuc3VibWl0KCkucmVtb3ZlKCk7Zi5pbmZvKCJZb3VyIGRvd25sb2FkIHdpbGwgYmVnaW4gc29v
bi4iKX1lbHNle2YuZXI9CnJvcigiQW4gZXJyb3Igb2NjdXJyZWQuIil9fSxhZGRGaWxlc0Zyb21I
aXN0b3J5TW9kYWw6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlcz0KaFVzZXJIaXN0b3JpZXNMaXN0KGZ1
bmN0aW9uKGcpe2cubW9kYWw9M0RHYWxheHkubW9kYWw7dmFyIGg9M0RnLnRlbXBsYXRlQWRkPQpG
aWxlc0Zyb21IaXN0b3J5KCk7dmFyIGk9M0RnLm9wdGlvbnMuZnVsbF9wYXRoW2cub3B0aW9ucy5m
dWxsX3BhdGgubGVuZ3RoLTE9Cl1bMV07Zy5tb2RhbC5zaG93KHtjbG9zaW5nX2V2ZW50czp0cnVl
LHRpdGxlOiJBZGRpbmcgZGF0YXNldHMgZnJvbSB5b3VyIGhpcz0KdG9yeSB0byBmb2xkZXIgIitp
LGJvZHk6aCh7aGlzdG9yaWVzOmcuaGlzdG9yaWVzLm1vZGVsc30pLGJ1dHRvbnM6e0FkZDpmdW5j
PQp0aW9uKCl7Zy5hZGRBbGxEYXRhc2V0c0Zyb21IaXN0b3J5KCl9LENsb3NlOmZ1bmN0aW9uKCl7
R2FsYXh5Lm1vZGFsLmhpZGUoKX09Cn0sY2xvc2luZ19jYWxsYmFjazpmdW5jdGlvbigpe0dhbGF4
eS5saWJyYXJpZXMubGlicmFyeV9yb3V0ZXIuYmFjaygpfX0pO2lmKD0KZy5oaXN0b3JpZXMubW9k
ZWxzLmxlbmd0aD4wKXtnLmZldGNoQW5kRGlzcGxheUhpc3RvcnlDb250ZW50cyhnLmhpc3Rvcmll
cy5tPQpvZGVsc1swXS5pZCk7JCgiI2RhdGFzZXRfYWRkX2J1bGsiKS5jaGFuZ2UoZnVuY3Rpb24o
ail7Zy5mZXRjaEFuZERpc3BsYXlIaXM9CnRvcnlDb250ZW50cyhqLnRhcmdldC52YWx1ZSl9KX1l
bHNle2YuZXJyb3IoIkFuIGVycm9yIG9jdXJyZWQuIil9fSl9LGltcG9ydD0KRmlsZXNGcm9tUGF0
aE1vZGFsOmZ1bmN0aW9uKCl7dmFyIGg9M0R0aGlzO3RoaXMubW9kYWw9M0RHYWxheHkubW9kYWw7
dmFyIGc9Cj0zRHRoaXMudGVtcGxhdGVJbXBvcnRQYXRoTW9kYWwoKTt0aGlzLm1vZGFsLnNob3co
e2Nsb3NpbmdfZXZlbnRzOnRydWUsdGl0bD0KZToiUGxlYXNlIGVudGVyIHBhdGhzIHRvIGltcG9y
dCIsYm9keTpnKHt9KSxidXR0b25zOntJbXBvcnQ6ZnVuY3Rpb24oKXtoLmltPQpwb3J0RnJvbVBh
dGhzQ2xpY2tlZChoKX0sQ2xvc2U6ZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuaGlkZSgpfX0sY2xv
c2luZ19jYWw9CmxiYWNrOmZ1bmN0aW9uKCl7R2FsYXh5LmxpYnJhcmllcy5saWJyYXJ5X3JvdXRl
ci5uYXZpZ2F0ZSgiZm9sZGVycy8iK2guaWQsez0KdHJpZ2dlcjp0cnVlfSl9fSk7dGhpcy5yZW5k
ZXJTZWxlY3RCb3hlcygpfSxmZXRjaEV4dEFuZEdlbm9tZXM6ZnVuY3Rpb24oKXt2PQphciBnPTNE
dGhpcztlLmdldCh7dXJsOmdhbGF4eV9jb25maWcucm9vdCsiYXBpL2RhdGF0eXBlcz9leHRlbnNp
b25fb25seT0zREY9CmFsc2UiLHN1Y2Nlc3M6ZnVuY3Rpb24oaCl7Zm9yKGtleSBpbiBoKXtnLmxp
c3RfZXh0ZW5zaW9ucy5wdXNoKHtpZDpoW2tleV0uZT0KeHRlbnNpb24sdGV4dDpoW2tleV0uZXh0
ZW5zaW9uLGRlc2NyaXB0aW9uOmhba2V5XS5kZXNjcmlwdGlvbixkZXNjcmlwdGlvbl91PQpybDpo
W2tleV0uZGVzY3JpcHRpb25fdXJsfSl9Zy5saXN0X2V4dGVuc2lvbnMuc29ydChmdW5jdGlvbihq
LGkpe3JldHVybiBqLmk9CmQ+aS5pZD8xOmouaWQ8aS5pZD8tMTowfSk7Zy5saXN0X2V4dGVuc2lv
bnMudW5zaGlmdChnLmF1dG8pfX0pO2UuZ2V0KHt1cmw6Zz0KYWxheHlfY29uZmlnLnJvb3QrImFw
aS9nZW5vbWVzIixzdWNjZXNzOmZ1bmN0aW9uKGgpe2ZvcihrZXkgaW4gaCl7Zy5saXN0X2dlPQpu
b21lcy5wdXNoKHtpZDpoW2tleV1bMV0sdGV4dDpoW2tleV1bMF19KX1nLmxpc3RfZ2Vub21lcy5z
b3J0KGZ1bmN0aW9uKGosaSk9CntyZXR1cm4gai5pZD5pLmlkPzE6ai5pZDxpLmlkPy0xOjB9KX19
KX0scmVuZGVyU2VsZWN0Qm94ZXM6ZnVuY3Rpb24oKXt2YXIgZz0KPTNEdGhpczt0aGlzLnNlbGVj
dF9nZW5vbWU9M0RuZXcgYS5WaWV3KHtjc3M6ImxpYnJhcnktZ2Vub21lLXNlbGVjdCIsZGF0YTpn
PQoubGlzdF9nZW5vbWVzLGNvbnRhaW5lcjpHYWxheHkubW9kYWwuJGVsLmZpbmQoIiNsaWJyYXJ5
X2dlbm9tZV9zZWxlY3QiKSx2YWw9CnVlOiI/In0pO3RoaXMuc2VsZWN0X2V4dGVuc2lvbj0zRG5l
dyBhLlZpZXcoe2NzczoibGlicmFyeS1leHRlbnNpb24tc2VsZWN0Ij0KLGRhdGE6Zy5saXN0X2V4
dGVuc2lvbnMsY29udGFpbmVyOkdhbGF4eS5tb2RhbC4kZWwuZmluZCgiI2xpYnJhcnlfZXh0ZW5z
aW9uPQpfc2VsZWN0IiksdmFsdWU6ImF1dG8ifSl9LGltcG9ydEZpbGVzRnJvbUdhbGF4eUZvbGRl
ck1vZGFsOmZ1bmN0aW9uKGcpe3ZhciA9Cmk9M0R0aGlzO3ZhciBoPTNEdGhpcy50ZW1wbGF0ZUJy
b3dzZXJNb2RhbCgpO3RoaXMubW9kYWw9M0RHYWxheHkubW9kYWw7dGhpcz0KLm1vZGFsLnNob3co
e2Nsb3NpbmdfZXZlbnRzOnRydWUsdGl0bGU6IlBsZWFzZSBzZWxlY3QgZm9sZGVycyBvciBmaWxl
cyIsYm9kPQp5Omgoe30pLGJ1dHRvbnM6e0ltcG9ydDpmdW5jdGlvbigpe2kuaW1wb3J0RnJvbUpz
dHJlZVBhdGgoaSxnKX0sQ2xvc2U6ZnVuY3Q9Cmlvbigpe0dhbGF4eS5tb2RhbC5oaWRlKCl9fSxj
bG9zaW5nX2NhbGxiYWNrOmZ1bmN0aW9uKCl7R2FsYXh5LmxpYnJhcmllcy5saT0KYnJhcnlfcm91
dGVyLm5hdmlnYXRlKCJmb2xkZXJzLyIraS5pZCx7dHJpZ2dlcjp0cnVlfSl9fSk7dGhpcy5yZW5k
ZXJTZWxlY3RCPQpveGVzKCk7Zy5kaXNhYmxlZF9qc3RyZWVfZWxlbWVudD0zRCJmb2xkZXJzIjt0
aGlzLnJlbmRlckpzdHJlZShnKTskKCJpbnB1dFs9CnR5cGU9M0RyYWRpb10iKS5jaGFuZ2UoZnVu
Y3Rpb24oail7aWYoai50YXJnZXQudmFsdWU9M0Q9M0Q9M0QianN0cmVlLWRpc2FibD0KZS1mb2xk
ZXJzIil7Zy5kaXNhYmxlZF9qc3RyZWVfZWxlbWVudD0zRCJmb2xkZXJzIjtpLnJlbmRlckpzdHJl
ZShnKTskKCIuanN0PQpyZWUtZm9sZGVycy1tZXNzYWdlIikuaGlkZSgpOyQoIi5qc3RyZWUtcHJl
c2VydmUtc3RydWN0dXJlIikuaGlkZSgpOyQoIi5qc3Q9CnJlZS1saW5rLWZpbGVzIikuaGlkZSgp
OyQoIi5qc3RyZWUtZmlsZXMtbWVzc2FnZSIpLnNob3coKX1lbHNle2lmKGoudGFyZ2V0Lj0KdmFs
dWU9M0Q9M0Q9M0QianN0cmVlLWRpc2FibGUtZmlsZXMiKXskKCIuanN0cmVlLWZpbGVzLW1lc3Nh
Z2UiKS5oaWRlKCk7JCgiPQouanN0cmVlLWZvbGRlcnMtbWVzc2FnZSIpLnNob3coKTskKCIuanN0
cmVlLWxpbmstZmlsZXMiKS5zaG93KCk7JCgiLmpzdHJlZS09CnByZXNlcnZlLXN0cnVjdHVyZSIp
LnNob3coKTtnLmRpc2FibGVkX2pzdHJlZV9lbGVtZW50PTNEImZpbGVzIjtpLnJlbmRlckpzdD0K
cmVlKGcpfX19KX0scmVuZGVySnN0cmVlOmZ1bmN0aW9uKGcpe3ZhciBpPTNEdGhpczt0aGlzLm9w
dGlvbnM9M0RfLmV4dGVuZCh0PQpoaXMub3B0aW9ucyxnKTt2YXIgaj0zRGcuc291cmNlfHwidXNl
cmRpciI7dmFyIGg9M0R0aGlzLm9wdGlvbnMuZGlzYWJsZWRfanM9CnRyZWVfZWxlbWVudDt0aGlz
LmpzdHJlZT0zRG5ldyBkLkpzdHJlZSgpO3RoaXMuanN0cmVlLnVybD0zRHRoaXMuanN0cmVlLnVy
bD0KUm9vdCsiP3RhcmdldD0zRCIraisiJmZvcm1hdD0zRGpzdHJlZSZkaXNhYmxlPTNEIitoO3Ro
aXMuanN0cmVlLmZldGNoKHtzdWNjPQplc3M6ZnVuY3Rpb24obCxrKXtkZWZpbmUoImpxdWVyeSIs
ZnVuY3Rpb24oKXtyZXR1cm4galF1ZXJ5fSk7cmVxdWlyZShbImxpYnM9Ci9qcXVlcnkvanN0cmVl
Il0sZnVuY3Rpb24obSl7JCgiI2pzdHJlZV9icm93c2VyIikuanN0cmVlKCJkZXN0cm95Iik7JCgi
I2pzdD0KcmVlX2Jyb3dzZXIiKS5qc3RyZWUoe2NvcmU6e2RhdGE6bH0scGx1Z2luczpbInR5cGVz
IiwiY2hlY2tib3giXSx0eXBlczp7Zm9sPQpkZXI6e2ljb246ImpzdHJlZS1mb2xkZXIifSxmaWxl
OntpY29uOiJqc3RyZWUtZmlsZSJ9fSxjaGVja2JveDp7dGhyZWVfc3RhdGU9CjpmYWxzZX19KX0p
fSxlcnJvcjpmdW5jdGlvbihsLGspe2lmKHR5cGVvZiBrLnJlc3BvbnNlSlNPTiE9M0Q9M0QidW5k
ZWZpbmVkIj0KKXtmLmVycm9yKGsucmVzcG9uc2VKU09OLmVycl9tc2cpfWVsc2V7Zi5lcnJvcigi
QW4gZXJyb3Igb2N1cnJlZC4iKX19fSl9LGltPQpwb3J0RnJvbVBhdGhzQ2xpY2tlZDpmdW5jdGlv
bigpe3ZhciBnPTNEdGhpcy5tb2RhbC4kZWwuZmluZCgiLnByZXNlcnZlLWNoZWM9Cmtib3giKS5p
cygiOmNoZWNrZWQiKTt2YXIgbj0zRHRoaXMubW9kYWwuJGVsLmZpbmQoIi5saW5rLWNoZWNrYm94
IikuaXMoIjpjaD0KZWNrZWQiKTt2YXIgaD0zRHRoaXMuc2VsZWN0X2V4dGVuc2lvbi52YWx1ZSgp
O3ZhciBqPTNEdGhpcy5zZWxlY3RfZ2Vub21lLnZhPQpsdWUoKTt2YXIgbT0zRCQoInRleHRhcmVh
I2ltcG9ydF9wYXRocyIpLnZhbCgpO3ZhciBsPTNEW107aWYoIW0pe2YuaW5mbygiUGw9CmVhc2Ug
ZW50ZXIgYSBwYXRoIHJlbGF0aXZlIHRvIEdhbGF4eSByb290LiIpfWVsc2V7dGhpcy5tb2RhbC5k
aXNhYmxlQnV0dG9uKD0KIkltcG9ydCIpO209M0RtLnNwbGl0KCJcbiIpO2Zvcih2YXIgaz0zRG0u
bGVuZ3RoLTE7az49M0QwO2stLSl7dHJpbW1lZD0zRG1bPQprXS50cmltKCk7aWYodHJpbW1lZC5s
ZW5ndGghPTNEPTNEMCl7bC5wdXNoKHRyaW1tZWQpfX10aGlzLmluaXRDaGFpbkNhbGxDb249CnRy
b2woe2xlbmd0aDpsLmxlbmd0aCxhY3Rpb246ImFkZGluZ19kYXRhc2V0cyJ9KTt0aGlzLmNoYWlu
Q2FsbEltcG9ydGluZ0ZvbD0KZGVycyh7cGF0aHM6bCxwcmVzZXJ2ZV9kaXJzOmcsbGlua19kYXRh
Om4sc291cmNlOiJhZG1pbl9wYXRoIixmaWxlX3R5cGU6aCxkPQpia2V5Omp9KX19LGluaXRDaGFp
bkNhbGxDb250cm9sOmZ1bmN0aW9uKGcpe3ZhciBoO3N3aXRjaChnLmFjdGlvbil7Y2FzZSJhZGQ9
CmluZ19kYXRhc2V0cyI6aD0zRHRoaXMudGVtcGxhdGVBZGRpbmdEYXRhc2V0c1Byb2dyZXNzQmFy
KCk7dGhpcy5tb2RhbC4kZWwuZj0KaW5kKCIubW9kYWwtYm9keSIpLmh0bWwoaCh7Zm9sZGVyX25h
bWU6dGhpcy5vcHRpb25zLmZvbGRlcl9uYW1lfSkpO2JyZWFrO2NhPQpzZSJkZWxldGluZ19kYXRh
c2V0cyI6aD0zRHRoaXMudGVtcGxhdGVEZWxldGluZ0RhdGFzZXRzUHJvZ3Jlc3NCYXIoKTt0aGlz
Lm09Cm9kYWwuJGVsLmZpbmQoIi5tb2RhbC1ib2R5IikuaHRtbChoKCkpO2JyZWFrO2Nhc2UidG9f
aGlzdG9yeSI6aD0zRHRoaXMudGVtcD0KbGF0ZUltcG9ydEludG9IaXN0b3J5UHJvZ3Jlc3NCYXIo
KTt0aGlzLm1vZGFsLiRlbC5maW5kKCIubW9kYWwtYm9keSIpLmh0bWwoPQpoKHtoaXN0b3J5X25h
bWU6Zy5oaXN0b3J5X25hbWV9KSk7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJXcm9uZyBh
Y3Rpb249CiBzcGVjaWZpZWQuIik7YnJlYWt9dGhpcy5wcm9ncmVzcz0zRDA7dGhpcy5wcm9ncmVz
c1N0ZXA9M0QxMDAvZy5sZW5ndGg7dGhpcz0KLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLnRv
dGFsX251bWJlcj0zRGcubGVuZ3RoO3RoaXMub3B0aW9ucy5jaGFpbl9jYWxsPQpfY29udHJvbC5m
YWlsZWRfbnVtYmVyPTNEMH0saW1wb3J0RnJvbUpzdHJlZVBhdGg6ZnVuY3Rpb24obixyKXt2YXIg
Zz0zRCQoIiM9CmpzdHJlZV9icm93c2VyIikuanN0cmVlKCkuZ2V0X3NlbGVjdGVkKHRydWUpO3Zh
ciBtPTNEdGhpcy5tb2RhbC4kZWwuZmluZCgiLj0KcHJlc2VydmUtY2hlY2tib3giKS5pcygiOmNo
ZWNrZWQiKTt2YXIgbz0zRHRoaXMubW9kYWwuJGVsLmZpbmQoIi5saW5rLWNoZWNrPQpib3giKS5p
cygiOmNoZWNrZWQiKTt2YXIgaj0zRHRoaXMuc2VsZWN0X2V4dGVuc2lvbi52YWx1ZSgpO3ZhciBw
PTNEdGhpcy5zZWw9CmVjdF9nZW5vbWUudmFsdWUoKTt2YXIgaz0zRGdbMF0udHlwZTt2YXIgcT0z
RFtdO2lmKGcubGVuZ3RoPDEpe2YuaW5mbygiUGxlYT0Kc2Ugc2VsZWN0IHNvbWUgaXRlbXMgZmly
c3QuIil9ZWxzZXt0aGlzLm1vZGFsLmRpc2FibGVCdXR0b24oIkltcG9ydCIpO2Zvcih2PQphciBs
PTNEZy5sZW5ndGgtMTtsPj0zRDA7bC0tKXtpZihnW2xdLmxpX2F0dHIuZnVsbF9wYXRoIT0zRD0z
RHVuZGVmaW5lZCl7cS49CnB1c2goZ1tsXS5saV9hdHRyLmZ1bGxfcGF0aCl9fXRoaXMuaW5pdENo
YWluQ2FsbENvbnRyb2woe2xlbmd0aDpxLmxlbmd0aCxhYz0KdGlvbjoiYWRkaW5nX2RhdGFzZXRz
In0pO2lmKGs9M0Q9M0Q9M0QiZm9sZGVyIil7dmFyIGg9M0RyLnNvdXJjZSsiX2ZvbGRlciI7PQp0
aGlzLmNoYWluQ2FsbEltcG9ydGluZ0ZvbGRlcnMoe3BhdGhzOnEscHJlc2VydmVfZGlyczptLGxp
bmtfZGF0YTpvLHNvdXJjZTo9CmgsZmlsZV90eXBlOmosZGJrZXk6cH0pfWVsc2V7aWYoaz0zRD0z
RD0zRCJmaWxlIil7dmFyIGg9M0RyLnNvdXJjZSsiX2ZpbGUiOz0KdGhpcy5jaGFpbkNhbGxJbXBv
cnRpbmdVc2VyZGlyRmlsZXMoe3BhdGhzOnEsZmlsZV90eXBlOmosZGJrZXk6cCxzb3VyY2U6aH0p
PQp9fX19LGZldGNoQW5kRGlzcGxheUhpc3RvcnlDb250ZW50czpmdW5jdGlvbihpKXt2YXIgaD0z
RG5ldyBkLkhpc3RvcnlDb250ZW49CnRzKHtpZDppfSk7dmFyIGc9M0R0aGlzO2guZmV0Y2goe3N1
Y2Nlc3M6ZnVuY3Rpb24oayl7dmFyIGo9M0RnLnRlbXBsYXRlSGlzdD0Kb3J5Q29udGVudHMoKTtn
Lmhpc3Rvcmllcy5nZXQoaSkuc2V0KHtjb250ZW50czprfSk7Zy5tb2RhbC4kZWwuZmluZCgiI3Nl
bGVjPQp0ZWRfaGlzdG9yeV9jb250ZW50IikuaHRtbChqKHtoaXN0b3J5X2NvbnRlbnRzOmsubW9k
ZWxzLnJldmVyc2UoKX0pKX0sZXJyb3I9CjpmdW5jdGlvbihrLGope2lmKHR5cGVvZiBqLnJlc3Bv
bnNlSlNPTiE9M0Q9M0QidW5kZWZpbmVkIil7Zi5lcnJvcihqLnJlc3Bvbj0Kc2VKU09OLmVycl9t
c2cpfWVsc2V7Zi5lcnJvcigiQW4gZXJyb3Igb2N1cnJlZC4iKX19fSl9LGFkZEFsbERhdGFzZXRz
RnJvbUhpPQpzdG9yeTpmdW5jdGlvbigpe3ZhciBsPTNEdGhpcy5tb2RhbC4kZWwuZmluZCgiI3Nl
bGVjdGVkX2hpc3RvcnlfY29udGVudCIpLmY9CmluZCgiOmNoZWNrZWQiKTt2YXIgZz0zRFtdO3Zh
ciBrPTNEW107aWYobC5sZW5ndGg8MSl7Zi5pbmZvKCJZb3UgbXVzdCBzZWxlYz0KdCBzb21lIGRh
dGFzZXRzIGZpcnN0LiIpfWVsc2V7dGhpcy5tb2RhbC5kaXNhYmxlQnV0dG9uKCJBZGQiKTtsLmVh
Y2goZnVuY3RpPQpvbigpe3ZhciBpPTNEJCh0aGlzLnBhcmVudEVsZW1lbnQpLmRhdGEoImlkIik7
aWYoaSl7Zy5wdXNoKGkpfX0pO2Zvcih2YXIgaj0KPTNEZy5sZW5ndGgtMTtqPj0zRDA7ai0tKXto
aXN0b3J5X2RhdGFzZXRfaWQ9M0RnW2pdO3ZhciBoPTNEbmV3IGQuSXRlbSgpO2guPQp1cmw9M0Qi
L2FwaS9mb2xkZXJzLyIrdGhpcy5vcHRpb25zLmlkKyIvY29udGVudHMiO2guc2V0KHtmcm9tX2hk
YV9pZDpoaXN0b3I9CnlfZGF0YXNldF9pZH0pO2sucHVzaChoKX10aGlzLmluaXRDaGFpbkNhbGxD
b250cm9sKHtsZW5ndGg6ay5sZW5ndGgsYWN0aW9uOj0KImFkZGluZ19kYXRhc2V0cyJ9KTt0aGlz
LmNoYWluQ2FsbEFkZGluZ0hkYXMoayl9fSxjaGFpbkNhbGxJbXBvcnRpbmdJbnRvSGlzPQp0b3J5
OmZ1bmN0aW9uKGgsayl7dmFyIGc9M0R0aGlzO3ZhciBpPTNEaC5wb3AoKTtpZih0eXBlb2YgaT0z
RD0zRCJ1bmRlZmluZWQ9CiIpe2lmKHRoaXMub3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFp
bGVkX251bWJlcj0zRD0zRD0zRDApe2Yuc3VjY2VzcygiUz0KZWxlY3RlZCBkYXRhc2V0cyBpbXBv
cnRlZCBpbnRvIGhpc3RvcnkuIENsaWNrIHRoaXMgdG8gc3RhcnQgYW5hbHlzaW5nIGl0LiIsPQoi
Iix7b25jbGljazpmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbj0zRCIvIn19KX1lbHNle2lmKHRo
aXMub3B0aW9ucy5jaGFpbl89CmNhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVyPTNEPTNEPTNEdGhp
cy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJvbC50b3RhbF9udT0KbWJlcil7Zi5lcnJvcigiVGhl
cmUgd2FzIGFuIGVycm9yIGFuZCBubyBkYXRhc2V0cyB3ZXJlIGltcG9ydGVkIGludG8gaGlzdG9y
PQp5LiIpfWVsc2V7aWYodGhpcy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVt
YmVyPHRoaXMub3B0aW9ucy5jaGE9CmluX2NhbGxfY29udHJvbC50b3RhbF9udW1iZXIpe2Yud2Fy
bmluZygiU29tZSBvZiB0aGUgZGF0YXNldHMgY291bGQgbm90IGJlID0KaW1wb3J0ZWQgaW50byBo
aXN0b3J5LiBDbGljayB0aGlzIHRvIHNlZSB3aGF0IHdhcyBpbXBvcnRlZC4iLCIiLHtvbmNsaWNr
OmZ1PQpuY3Rpb24oKXt3aW5kb3cubG9jYXRpb249M0QiLyJ9fSl9fX1HYWxheHkubW9kYWwuaGlk
ZSgpO3JldHVybiB0cnVlfXZhciBqPQo9M0QkLndoZW4oaS5zYXZlKHtjb250ZW50OmkuY29udGVu
dCxzb3VyY2U6aS5zb3VyY2V9KSk7ai5kb25lKGZ1bmN0aW9uKCl7Zy49CnVwZGF0ZVByb2dyZXNz
KCk7Zy5jaGFpbkNhbGxJbXBvcnRpbmdJbnRvSGlzdG9yeShoLGspfSkuZmFpbChmdW5jdGlvbigp
e2cubz0KcHRpb25zLmNoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVyKz0zRDE7Zy51cGRh
dGVQcm9ncmVzcygpO2cuY2hhaW5DYWxsPQpJbXBvcnRpbmdJbnRvSGlzdG9yeShoLGspfSl9LGNo
YWluQ2FsbEltcG9ydGluZ1VzZXJkaXJGaWxlczpmdW5jdGlvbihnKXt2YXI9CiBoPTNEdGhpczt2
YXIgaT0zRGcucGF0aHMucG9wKCk7aWYodHlwZW9mIGk9M0Q9M0Q9M0QidW5kZWZpbmVkIil7aWYo
dGhpcy5vcD0KdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLmZhaWxlZF9udW1iZXI9M0Q9M0Q9M0Qw
KXtmLnN1Y2Nlc3MoIlNlbGVjdGVkIGZpbGVzPQogaW1wb3J0ZWQgaW50byB0aGUgY3VycmVudCBm
b2xkZXIiKTtHYWxheHkubW9kYWwuaGlkZSgpfWVsc2V7Zi5lcnJvcigiQW4gZXI9CnJvciBvY2N1
cmVkLiIpfXJldHVybiB0cnVlfXZhciBqPTNEJC53aGVuKCQucG9zdCgiL2FwaS9saWJyYXJpZXMv
ZGF0YXNldHM/ZT0KbmNvZGVkX2ZvbGRlcl9pZD0zRCIraC5pZCsiJnNvdXJjZT0zRCIrZy5zb3Vy
Y2UrIiZwYXRoPTNEIitpKyImZmlsZV90eXBlPTNEPQoiK2cuZmlsZV90eXBlKyImZGJrZXk9M0Qi
K2cuZGJrZXkpKTtqLmRvbmUoZnVuY3Rpb24oayl7aC51cGRhdGVQcm9ncmVzcygpO2g9Ci5jaGFp
bkNhbGxJbXBvcnRpbmdVc2VyZGlyRmlsZXMoZyl9KS5mYWlsKGZ1bmN0aW9uKCl7aC5vcHRpb25z
LmNoYWluX2NhbGxfYz0Kb250cm9sLmZhaWxlZF9udW1iZXIrPTNEMTtoLnVwZGF0ZVByb2dyZXNz
KCk7aC5jaGFpbkNhbGxJbXBvcnRpbmdVc2VyZGlyRmlsPQplcyhnKX0pfSxjaGFpbkNhbGxJbXBv
cnRpbmdGb2xkZXJzOmZ1bmN0aW9uKGcpe3ZhciBoPTNEdGhpczt2YXIgaT0zRGcucGF0aHM9Ci5w
b3AoKTtpZih0eXBlb2YgaT0zRD0zRCJ1bmRlZmluZWQiKXtpZih0aGlzLm9wdGlvbnMuY2hhaW5f
Y2FsbF9jb250cm9sLmZhaT0KbGVkX251bWJlcj0zRD0zRD0zRDApe2Yuc3VjY2VzcygiU2VsZWN0
ZWQgZm9sZGVycyBhbmQgdGhlaXIgY29udGVudHMgaW1wb3J0PQplZCBpbnRvIHRoZSBjdXJyZW50
IGZvbGRlci4iKTtHYWxheHkubW9kYWwuaGlkZSgpfWVsc2V7Zi5lcnJvcigiQW4gZXJyb3Igb2M9
CmN1cmVkLiIpfXJldHVybiB0cnVlfXZhciBqPTNEJC53aGVuKCQucG9zdCgiL2FwaS9saWJyYXJp
ZXMvZGF0YXNldHM/ZW5jb2RlZD0KX2ZvbGRlcl9pZD0zRCIraC5pZCsiJnNvdXJjZT0zRCIrZy5z
b3VyY2UrIiZwYXRoPTNEIitpKyImcHJlc2VydmVfZGlycz0zRCIrPQpnLnByZXNlcnZlX2RpcnMr
IiZsaW5rX2RhdGE9M0QiK2cubGlua19kYXRhKyImZmlsZV90eXBlPTNEIitnLmZpbGVfdHlwZSsi
JmQ9CmJrZXk9M0QiK2cuZGJrZXkpKTtqLmRvbmUoZnVuY3Rpb24oayl7aC51cGRhdGVQcm9ncmVz
cygpO2guY2hhaW5DYWxsSW1wb3J0aT0KbmdGb2xkZXJzKGcpfSkuZmFpbChmdW5jdGlvbigpe2gu
b3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFpbGVkX251bWJlcis9Cj0zRDE7aC51cGRhdGVQ
cm9ncmVzcygpO2guY2hhaW5DYWxsSW1wb3J0aW5nRm9sZGVycyhnKX0pfSxjaGFpbkNhbGxBZGRp
bmdIZD0KYXM6ZnVuY3Rpb24oaCl7dmFyIGc9M0R0aGlzO3RoaXMuYWRkZWRfaGRhcz0zRG5ldyBk
LkZvbGRlcigpO3ZhciBpPTNEaC5wb3AoPQopO2lmKHR5cGVvZiBpPTNEPTNEInVuZGVmaW5lZCIp
e2lmKHRoaXMub3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFpbGVkX249CnVtYmVyPTNEPTNE
PTNEMCl7Zi5zdWNjZXNzKCJTZWxlY3RlZCBkYXRhc2V0cyBmcm9tIGhpc3RvcnkgYWRkZWQgdG8g
dGhlIGZvbD0KZGVyIil9ZWxzZXtpZih0aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLmZh
aWxlZF9udW1iZXI9M0Q9M0Q9M0R0aGlzLm9wPQp0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wudG90
YWxfbnVtYmVyKXtmLmVycm9yKCJUaGVyZSB3YXMgYW4gZXJyb3IgYW5kIG5vIGQ9CmF0YXNldHMg
d2VyZSBhZGRlZCB0byB0aGUgZm9sZGVyLiIpfWVsc2V7aWYodGhpcy5vcHRpb25zLmNoYWluX2Nh
bGxfY29udHJvbD0KLmZhaWxlZF9udW1iZXI8dGhpcy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJv
bC50b3RhbF9udW1iZXIpe2Yud2FybmluZygiU29tPQplIG9mIHRoZSBkYXRhc2V0cyBjb3VsZCBu
b3QgYmUgYWRkZWQgdG8gdGhlIGZvbGRlciIpfX19R2FsYXh5Lm1vZGFsLmhpZGUoKTs9CnJldHVy
biB0aGlzLmFkZGVkX2hkYXN9dmFyIGo9M0QkLndoZW4oaS5zYXZlKHtmcm9tX2hkYV9pZDppLmdl
dCgiZnJvbV9oZGFfaT0KZCIpfSkpO2ouZG9uZShmdW5jdGlvbihrKXtHYWxheHkubGlicmFyaWVz
LmZvbGRlckxpc3RWaWV3LmNvbGxlY3Rpb24uYWRkKGspPQo7Zy51cGRhdGVQcm9ncmVzcygpO2cu
Y2hhaW5DYWxsQWRkaW5nSGRhcyhoKX0pLmZhaWwoZnVuY3Rpb24oKXtnLm9wdGlvbnMuY2g9CmFp
bl9jYWxsX2NvbnRyb2wuZmFpbGVkX251bWJlcis9M0QxO2cudXBkYXRlUHJvZ3Jlc3MoKTtnLmNo
YWluQ2FsbEFkZGluZ0hkYT0KcyhoKX0pfSxjaGFpbkNhbGxEZWxldGluZ0hkYXM6ZnVuY3Rpb24o
aCl7dmFyIGc9M0R0aGlzO3RoaXMuZGVsZXRlZF9sZGRhcz0KPTNEbmV3IGQuRm9sZGVyKCk7dmFy
IGk9M0RoLnBvcCgpO2lmKHR5cGVvZiBpPTNEPTNEPTNEInVuZGVmaW5lZCIpe2lmKHRoaXMuPQpv
cHRpb25zLmNoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVyPTNEPTNEPTNEMCl7Zi5zdWNj
ZXNzKCJTZWxlY3RlZCBkYXQ9CmFzZXRzIHdlcmUgZGVsZXRlZC4iKX1lbHNle2lmKHRoaXMub3B0
aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFpbGVkX251bWJlcj0KPTNEPTNEPTNEdGhpcy5vcHRp
b25zLmNoYWluX2NhbGxfY29udHJvbC50b3RhbF9udW1iZXIpe2YuZXJyb3IoIlRoZXJlIHdhcyBh
PQpuIGVycm9yIGFuZCBubyBkYXRhc2V0cyB3ZXJlIGRlbGV0ZWQuIFBsZWFzZSBtYWtlIHN1cmUg
eW91IGhhdmUgc3VmZmljaWVudCA9CnBlcm1pc3Npb25zLiIpfWVsc2V7aWYodGhpcy5vcHRpb25z
LmNoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVyPHRoaXMubz0KcHRpb25zLmNoYWluX2Nh
bGxfY29udHJvbC50b3RhbF9udW1iZXIpe2Yud2FybmluZygiU29tZSBvZiB0aGUgZGF0YXNldHMg
Y291PQpsZCBub3QgYmUgZGVsZXRlZC4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBzdWZmaWNp
ZW50IHBlcm1pc3Npb25zLiIpfX19R2E9CmxheHkubW9kYWwuaGlkZSgpO3JldHVybiB0aGlzLmRl
bGV0ZWRfbGRkYXN9dmFyIGo9M0QkLndoZW4oaS5kZXN0cm95KCkpO2ouZD0Kb25lKGZ1bmN0aW9u
KGwpe0dhbGF4eS5saWJyYXJpZXMuZm9sZGVyTGlzdFZpZXcuY29sbGVjdGlvbi5yZW1vdmUoaS5p
ZCk7Zy51PQpwZGF0ZVByb2dyZXNzKCk7aWYoR2FsYXh5LmxpYnJhcmllcy5mb2xkZXJMaXN0Vmll
dy5vcHRpb25zLmluY2x1ZGVfZGVsZXRlZCk9Cnt2YXIgaz0zRG5ldyBkLkl0ZW0obCk7R2FsYXh5
LmxpYnJhcmllcy5mb2xkZXJMaXN0Vmlldy5jb2xsZWN0aW9uLmFkZChrKX1nLj0KY2hhaW5DYWxs
RGVsZXRpbmdIZGFzKGgpfSkuZmFpbChmdW5jdGlvbigpe2cub3B0aW9ucy5jaGFpbl9jYWxsX2Nv
bnRyb2wuZmFpPQpsZWRfbnVtYmVyKz0zRDE7Zy51cGRhdGVQcm9ncmVzcygpO2cuY2hhaW5DYWxs
RGVsZXRpbmdIZGFzKGgpfSl9LGNoZWNrSW5jbHU9CmRlRGVsZXRlZDpmdW5jdGlvbihnKXtpZihn
LnRhcmdldC5jaGVja2VkKXtHYWxheHkubGlicmFyaWVzLmZvbGRlckxpc3RWaWV3Lj0KZmV0Y2hG
b2xkZXIoe2luY2x1ZGVfZGVsZXRlZDp0cnVlfSl9ZWxzZXtHYWxheHkubGlicmFyaWVzLmZvbGRl
ckxpc3RWaWV3LmZlPQp0Y2hGb2xkZXIoe2luY2x1ZGVfZGVsZXRlZDpmYWxzZX0pfX0sZGVsZXRl
U2VsZWN0ZWREYXRhc2V0czpmdW5jdGlvbigpe3ZhciA9Cmc9M0QkKCIjZm9sZGVyX3RhYmxlIiku
ZmluZCgiOmNoZWNrZWQiKTtpZihnLmxlbmd0aD0zRD0zRD0zRDApe2YuaW5mbygiWW91ID0KbXVz
dCBzZWxlY3QgYXQgbGVhc3Qgb25lIGRhdGFzZXQgZm9yIGRlbGV0aW9uLiIpfWVsc2V7dmFyIGs9
M0R0aGlzLnRlbXBsYXRlPQpEZWxldGluZ0RhdGFzZXRzUHJvZ3Jlc3NCYXIoKTt0aGlzLm1vZGFs
PTNER2FsYXh5Lm1vZGFsO3RoaXMubW9kYWwuc2hvdyh7Y2w9Cm9zaW5nX2V2ZW50czp0cnVlLHRp
dGxlOiJEZWxldGluZyBzZWxlY3RlZCBkYXRhc2V0cyIsYm9keTprKHt9KSxidXR0b25zOntDbD0K
b3NlOmZ1bmN0aW9uKCl7R2FsYXh5Lm1vZGFsLmhpZGUoKX19fSk7dGhpcy5vcHRpb25zLmNoYWlu
X2NhbGxfY29udHJvbC50b3RhPQpsX251bWJlcj0zRDA7dGhpcy5vcHRpb25zLmNoYWluX2NhbGxf
Y29udHJvbC5mYWlsZWRfbnVtYmVyPTNEMDt2YXIgaD0zRFtdO2c9Ci5lYWNoKGZ1bmN0aW9uKCl7
aWYodGhpcy5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQhPTNEPTNEIiIpe2gucHVzaCh0
aD0KaXMucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmlkKX19KTt0aGlzLnByb2dyZXNzU3Rl
cD0zRDEwMC9oLmxlbmd0aDt0aGlzPQoucHJvZ3Jlc3M9M0QwO3ZhciBtPTNEW107Zm9yKHZhciBq
PTNEaC5sZW5ndGgtMTtqPj0zRDA7ai0tKXt2YXIgbD0zRG5ldyBkLkk9CnRlbSh7aWQ6aFtqXX0p
O20ucHVzaChsKX10aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLnRvdGFsX251bWJlcj0z
RGgubD0KZW5ndGg7dGhpcy5jaGFpbkNhbGxEZWxldGluZ0hkYXMobSl9fSxzaG93TGliSW5mbzpm
dW5jdGlvbigpe3ZhciBoPTNER2FsYXh5PQoubGlicmFyaWVzLmZvbGRlckxpc3RWaWV3LmZvbGRl
ckNvbnRhaW5lci5hdHRyaWJ1dGVzLm1ldGFkYXRhLnBhcmVudF9saWJyYXI9CnlfaWQ7dmFyIGc9
M0RudWxsO3ZhciBpPTNEdGhpcztpZihHYWxheHkubGlicmFyaWVzLmxpYnJhcnlMaXN0VmlldyE9
M0Q9M0RudT0KbGwpe2c9M0RHYWxheHkubGlicmFyaWVzLmxpYnJhcnlMaXN0Vmlldy5jb2xsZWN0
aW9uLmdldChoKTt0aGlzLnNob3dMaWJJbmZvPQpNb2RhbChnKX1lbHNle2c9M0RuZXcgZC5MaWJy
YXJ5KHtpZDpofSk7Zy5mZXRjaCh7c3VjY2VzczpmdW5jdGlvbigpe2kuc2hvd0w9CmliSW5mb01v
ZGFsKGcpfSxlcnJvcjpmdW5jdGlvbihrLGope2lmKHR5cGVvZiBqLnJlc3BvbnNlSlNPTiE9M0Q9
M0QidW5kZWZpbj0KZWQiKXtmLmVycm9yKGoucmVzcG9uc2VKU09OLmVycl9tc2cpfWVsc2V7Zi5l
cnJvcigiQW4gZXJyb3Igb2N1cnJlZC4iKX19fSl9PQp9LHNob3dMaWJJbmZvTW9kYWw6ZnVuY3Rp
b24oZyl7dmFyIGg9M0R0aGlzLnRlbXBsYXRlTGliSW5mb0luTW9kYWwoKTt0aGlzLm09Cm9kYWw9
M0RHYWxheHkubW9kYWw7dGhpcy5tb2RhbC5zaG93KHtjbG9zaW5nX2V2ZW50czp0cnVlLHRpdGxl
OiJMaWJyYXJ5IEluZj0Kb3JtYXRpb24iLGJvZHk6aCh7bGlicmFyeTpnfSksYnV0dG9uczp7Q2xv
c2U6ZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuaGlkZSgpPQp9fX0pfSxzaG93SW1wb3J0TW9kYWw6
ZnVuY3Rpb24oZyl7c3dpdGNoKGcuc291cmNlKXtjYXNlImhpc3RvcnkiOnRoaXMuYWRkRmk9Cmxl
c0Zyb21IaXN0b3J5TW9kYWwoKTticmVhaztjYXNlImltcG9ydGRpciI6dGhpcy5pbXBvcnRGaWxl
c0Zyb21HYWxheHlGb2xkZT0Kck1vZGFsKHtzb3VyY2U6ImltcG9ydGRpciJ9KTticmVhaztjYXNl
InBhdGgiOnRoaXMuaW1wb3J0RmlsZXNGcm9tUGF0aE1vZGFsPQooKTticmVhaztjYXNlInVzZXJk
aXIiOnRoaXMuaW1wb3J0RmlsZXNGcm9tR2FsYXh5Rm9sZGVyTW9kYWwoe3NvdXJjZToidXNlcmQ9
CmlyIn0pO2JyZWFrO2RlZmF1bHQ6R2FsYXh5LmxpYnJhcmllcy5saWJyYXJ5X3JvdXRlci5iYWNr
KCk7Zi5lcnJvcigiSW52YWxpZD0KIGltcG9ydCBzb3VyY2UuIik7YnJlYWt9fSxzaG93UGFnZVNp
emVQcm9tcHQ6ZnVuY3Rpb24oKXt2YXIgZz0zRHByb21wdCgiSG93PQogbWFueSBpdGVtcyBwZXIg
cGFnZSBkbyB5b3Ugd2FudCB0byBzZWU/IixHYWxheHkubGlicmFyaWVzLnByZWZlcmVuY2VzLmdl
dCg9CiJmb2xkZXJfcGFnZV9zaXplIikpO2lmKChnIT0zRG51bGwpJiYoZz0zRD0zRHBhcnNlSW50
KGcpKSl7R2FsYXh5LmxpYnJhcmllcz0KLnByZWZlcmVuY2VzLnNldCh7Zm9sZGVyX3BhZ2Vfc2l6
ZTpwYXJzZUludChnKX0pO0dhbGF4eS5saWJyYXJpZXMuZm9sZGVyTGlzPQp0Vmlldy5yZW5kZXIo
e2lkOnRoaXMub3B0aW9ucy5pZCxzaG93X3BhZ2U6MX0pfX0sdGVtcGxhdGVUb29sQmFyOmZ1bmN0
aW9uKCk9Cnt0bXBsX2FycmF5PTNEW107dG1wbF9hcnJheS5wdXNoKCc8ZGl2IGNsYXNzPTNEImxp
YnJhcnlfc3R5bGVfY29udGFpbmVyIj4nKT0KO3RtcGxfYXJyYXkucHVzaCgnIDxkaXYgaWQ9M0Qi
bGlicmFyeV90b29sYmFyIj4nKTt0bXBsX2FycmF5LnB1c2goIiAgIDxzcGFuPQo+PHN0cm9uZz5E
QVRBIExJQlJBUklFUzwvc3Ryb25nPjwvc3Bhbj4iKTt0bXBsX2FycmF5LnB1c2goJyAgIDxzcGFu
IGRhdGEtdG89CmdnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiBjbGFzcz0z
RCJsb2dnZWQtZGF0YXNldC1tYW5pcHVsYXRpbz0KbiIgdGl0bGU9M0QiSW5jbHVkZSBkZWxldGVk
IGRhdGFzZXRzIiBzdHlsZT0zRCJkaXNwbGF5Om5vbmU7Ij4gfCA8aW5wdXQgaWQ9Cj0zRCJpbmNs
dWRlX2RlbGV0ZWRfZGF0YXNldHNfY2hrIiBzdHlsZT0zRCJtYXJnaW46IDA7IiB0eXBlPTNEImNo
ZWNrYm94Ij4gaT0KbmNsdWRlIGRlbGV0ZWQgfCA8L2lucHV0Pjwvc3Bhbj4nKTt0bXBsX2FycmF5
LnB1c2goJyAgIDxidXR0b24gc3R5bGU9M0QiZGlzPQpwbGF5Om5vbmU7IiBkYXRhLXRvZ2dsZT0z
RCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIkNyZWF0ZSA9Ck5ldyBG
b2xkZXIiIGlkPTNEInRvb2xidG5fY3JlYXRlX2ZvbGRlciIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZh
dWx0IHByaW1hcnktYj0KdXR0b24gYWRkLWxpYnJhcnktaXRlbXMiIHR5cGU9M0QiYnV0dG9uIj48
c3BhbiBjbGFzcz0zRCJmYSBmYS1wbHVzIj48L3NwYW4+PQo8c3BhbiBjbGFzcz0zRCJmYSBmYS1m
b2xkZXIiPjwvc3Bhbj48L2J1dHRvbj4nKTt0bXBsX2FycmF5LnB1c2goIjwlIGlmKG11dGk9CnBs
ZV9hZGRfZGF0YXNldF9vcHRpb25zKSB7ICU+Iik7dG1wbF9hcnJheS5wdXNoKCcgICA8ZGl2IGNs
YXNzPTNEImJ0bi1ncm91cD0KIGFkZC1saWJyYXJ5LWl0ZW1zIiBzdHlsZT0zRCJkaXNwbGF5Om5v
bmU7Ij4nKTt0bXBsX2FycmF5LnB1c2goJyAgICAgPGJ1dHRvPQpuIHRpdGxlPTNEIkFkZCBEYXRh
c2V0cyB0byBDdXJyZW50IEZvbGRlciIgaWQ9M0QiIiB0eXBlPTNEImJ1dHRvbiIgY2xhc3M9M0Q9
CiJwcmltYXJ5LWJ1dHRvbiBkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPTNEImRyb3Bkb3du
Ij4nKTt0bXBsX2FycmF5LnB1cz0KaCgnICAgICA8c3BhbiBjbGFzcz0zRCJmYSBmYS1wbHVzIj48
L3NwYW4+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZmlsZSI+PC9zcGFuPQo+PHNwYW4gY2xhc3M9M0Qi
Y2FyZXQiPjwvc3Bhbj4nKTt0bXBsX2FycmF5LnB1c2goIiAgICAgPC9idXR0b24+Iik7dG1wbF9h
cnI9CmF5LnB1c2goJyAgICAgPHVsIGNsYXNzPTNEImRyb3Bkb3duLW1lbnUiIHJvbGU9M0QibWVu
dSI+Jyk7dG1wbF9hcnJheS5wdXNoKD0KJyAgICAgICAgPGxpPjxhIGhyZWY9M0QiI2ZvbGRlcnMv
PCU9M0QgaWQgJT4vaW1wb3J0L2hpc3RvcnkiPiBmcm9tIEhpc3Rvcnk8PQovYT48L2xpPicpO3Rt
cGxfYXJyYXkucHVzaCgiPCUgaWYoR2FsYXh5LmNvbmZpZy51c2VyX2xpYnJhcnlfaW1wb3J0X2Rp
ciAhPQo9M0Q9M0QgbnVsbCkgeyAlPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgICAgICA8bGk+PGEg
aHJlZj0zRCIjZm9sZGVycy88JT0zRCA9CmlkICU+L2ltcG9ydC91c2VyZGlyIj4gZnJvbSBVc2Vy
IERpcmVjdG9yeTwvYT48L2xpPicpO3RtcGxfYXJyYXkucHVzaCgiPCUgfT0KICU+Iik7dG1wbF9h
cnJheS5wdXNoKCI8JSBpZihHYWxheHkuY29uZmlnLmFsbG93X2xpYnJhcnlfcGF0aF9wYXN0ZSkg
eyAlPiIpPQo7dG1wbF9hcnJheS5wdXNoKCcgICA8bGkgY2xhc3M9M0QiZGl2aWRlciI+PC9saT4n
KTt0bXBsX2FycmF5LnB1c2goJyAgIDxsaSA9CmNsYXNzPTNEImRyb3Bkb3duLWhlYWRlciI+QWRt
aW5zIG9ubHk8L2xpPicpO3RtcGxfYXJyYXkucHVzaCgiPCUgaWYoR2FsYXh5Lj0KY29uZmlnLmxp
YnJhcnlfaW1wb3J0X2RpciAhPTNEPTNEIG51bGwpIHsgJT4iKTt0bXBsX2FycmF5LnB1c2goJyAg
IDxsaT48YSBoPQpyZWY9M0QiI2ZvbGRlcnMvPCU9M0QgaWQgJT4vaW1wb3J0L2ltcG9ydGRpciI+
ZnJvbSBJbXBvcnQgRGlyZWN0b3J5PC9hPjwvbGk9Cj4nKTt0bXBsX2FycmF5LnB1c2goIjwlIH0g
JT4iKTt0bXBsX2FycmF5LnB1c2goIjwlIGlmKEdhbGF4eS5jb25maWcuYWxsb3dfbD0KaWJyYXJ5
X3BhdGhfcGFzdGUpIHsgJT4iKTt0bXBsX2FycmF5LnB1c2goJyAgICAgICAgPGxpPjxhIGhyZWY9
M0QiI2ZvbGRlcnMvPQo8JT0zRCBpZCAlPi9pbXBvcnQvcGF0aCI+ZnJvbSBQYXRoPC9hPjwvbGk+
Jyk7dG1wbF9hcnJheS5wdXNoKCI8JSB9ICU+Iik7dG09CnBsX2FycmF5LnB1c2goIjwlIH0gJT4i
KTt0bXBsX2FycmF5LnB1c2goIiAgICAgPC91bD4iKTt0bXBsX2FycmF5LnB1c2goIiAgID0KPC9k
aXY+Iik7dG1wbF9hcnJheS5wdXNoKCI8JSB9IGVsc2UgeyAlPiIpO3RtcGxfYXJyYXkucHVzaCgn
IDxhICBkYXRhLXBsYWNlPQptZW50PTNEInRvcCIgdGl0bGU9M0QiQWRkIERhdGFzZXRzIHRvIEN1
cnJlbnQgRm9sZGVyIiBzdHlsZT0zRCJkaXNwbGF5Om5vbmU9CjsiIGNsYXNzPTNEImJ0biBidG4t
ZGVmYXVsdCBhZGQtbGlicmFyeS1pdGVtcyIgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPj0K
L2ltcG9ydC9oaXN0b3J5IiByb2xlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtcGx1
cyI+PC9zcGFuPjxzcGFuIGNsPQphc3M9M0QiZmEgZmEtZmlsZSI+PC9zcGFuPjwvc3Bhbj48L2E+
Jyk7dG1wbF9hcnJheS5wdXNoKCI8JSB9ICU+Iik7dG1wbF9hcnI9CmF5LnB1c2goJyAgPGJ1dHRv
biBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNE
Ij0KSW1wb3J0IHNlbGVjdGVkIGRhdGFzZXRzIGludG8gaGlzdG9yeSIgaWQ9M0QidG9vbGJ0bl9i
dWxrX2ltcG9ydCIgY2xhc3M9M0QiPQpwcmltYXJ5LWJ1dHRvbiBkYXRhc2V0LW1hbmlwdWxhdGlv
biIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6IDAuNWVtOyBkaXNwbGF5Om49Cm9uZTsiIHR5cGU9M0Qi
YnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1ib29rIj48L3NwYW4+IHRvIEhpc3Rvcnk8L2J1
dHRvbj0KPicpO3RtcGxfYXJyYXkucHVzaCgnICAgPGRpdiBpZD0zRCJ0b29sYnRuX2RsIiBjbGFz
cz0zRCJidG4tZ3JvdXAgZGF0YXNldC1tPQphbmlwdWxhdGlvbiIgc3R5bGU9M0QibWFyZ2luLWxl
ZnQ6IDAuNWVtOyBkaXNwbGF5Om5vbmU7ICI+Jyk7dG1wbF9hcnJheS5wdXM9CmgoJyAgICAgPGJ1
dHRvbiB0aXRsZT0zRCJEb3dubG9hZCBzZWxlY3RlZCBkYXRhc2V0cyBhcyBhcmNoaXZlIiBpZD0z
RCJkcm9wXz0KdG9nZ2xlIiB0eXBlPTNEImJ1dHRvbiIgY2xhc3M9M0QicHJpbWFyeS1idXR0b24g
ZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsPQplPTNEImRyb3Bkb3duIj4nKTt0bXBsX2FycmF5
LnB1c2goJyAgICAgPHNwYW4gY2xhc3M9M0QiZmEgZmEtZG93bmxvYWQiPjwvc3A9CmFuPiBEb3du
bG9hZCA8c3BhbiBjbGFzcz0zRCJjYXJldCI+PC9zcGFuPicpO3RtcGxfYXJyYXkucHVzaCgiICAg
ICA8L2J1dHRvbj0KPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgICA8dWwgY2xhc3M9M0QiZHJvcGRv
d24tbWVudSIgcm9sZT0zRCJtZW51Ij4nKTt0bXBsPQpfYXJyYXkucHVzaCgnICAgICAgICA8bGk+
PGEgaHJlZj0zRCIjL2ZvbGRlcnMvPCU9M0QgaWQgJT4vZG93bmxvYWQvdGd6Ij4udGE9CnIuZ3o8
L2E+PC9saT4nKTt0bXBsX2FycmF5LnB1c2goJyAgICAgICAgPGxpPjxhIGhyZWY9M0QiIy9mb2xk
ZXJzLzwlPTNEIGlkID0KJT4vZG93bmxvYWQvdGJ6Ij4udGFyLmJ6PC9hPjwvbGk+Jyk7dG1wbF9h
cnJheS5wdXNoKCcgICAgICAgIDxsaT48YSBocmVmPTNEPQoiIy9mb2xkZXJzLzwlPTNEIGlkICU+
L2Rvd25sb2FkL3ppcCI+LnppcDwvYT48L2xpPicpO3RtcGxfYXJyYXkucHVzaCgiICAgICA9Cjwv
dWw+Iik7dG1wbF9hcnJheS5wdXNoKCIgICA8L2Rpdj4iKTt0bXBsX2FycmF5LnB1c2goJyAgIDxi
dXR0b24gZGF0YS10b2dnbD0KZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRp
dGxlPTNEIk1hcmsgc2VsZWN0ZWQgZGF0YXNldHMgZGVsZXRlPQpkIiBpZD0zRCJ0b29sYnRuX2J1
bGtfZGVsZXRlIiBjbGFzcz0zRCJwcmltYXJ5LWJ1dHRvbiBsb2dnZWQtZGF0YXNldC1tYW5pcHU9
CmxhdGlvbiIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6IDAuNWVtOyBkaXNwbGF5Om5vbmU7ICIgdHlw
ZT0zRCJidXR0b24iPjxzcGFuID0KY2xhc3M9M0QiZmEgZmEtdGltZXMiPjwvc3Bhbj4gRGVsZXRl
PC9idXR0b24+Jyk7dG1wbF9hcnJheS5wdXNoKCcgICA8YnV0dG9uPQogZGF0YS1pZD0zRCI8JS0g
aWQgJT4iIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0
bGU9Cj0zRCJTaG93IGxpYnJhcnkgaW5mb3JtYXRpb24iIGlkPTNEInRvb2xidG5fc2hvd19saWJp
bmZvIiBjbGFzcz0zRCJwcmltYXJ5LT0KYnV0dG9uIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDogMC41
ZW07IiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtPQppbmZvLWNpcmNsZSI+
PC9zcGFuPiBMaWJyYXJ5IEluZm88L2J1dHRvbj4nKTt0bXBsX2FycmF5LnB1c2goJyAgIDxzcGFu
IGNsYXM9CnM9M0QiaGVscC1idXR0b24iIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxh
Y2VtZW50PTNEInRvcCIgdGl0bGU9M0QiVj0KaXNpdCBMaWJyYXJpZXMgV2lraSI+PGEgaHJlZj0z
RCJodHRwczovL3dpa2kuZ2FsYXh5cHJvamVjdC5vcmcvRGF0YUxpYnJhcmllPQpzL3NjcmVlbi9G
b2xkZXJDb250ZW50cyIgdGFyZ2V0PTNEIl9ibGFuayI+PGJ1dHRvbiBjbGFzcz0zRCJwcmltYXJ5
LWJ1dHRvbiI9CiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtcXVlc3Rpb24t
Y2lyY2xlIj48L3NwYW4+IEhlbHA8L2J1dHRvbj0KPjwvYT48L3NwYW4+Jyk7dG1wbF9hcnJheS5w
dXNoKCcgICAgICAgICAgPHNwYW4gaWQ9M0QiZm9sZGVyX3BhZ2luYXRvciIgY2xhPQpzcz0zRCJs
aWJyYXJ5LXBhZ2luYXRvciI+Jyk7dG1wbF9hcnJheS5wdXNoKCIgICAgICAgICAgPC9zcGFuPiIp
O3RtcGxfYXJyYXk9Ci5wdXNoKCIgPC9kaXY+Iik7dG1wbF9hcnJheS5wdXNoKCcgPGRpdiBpZD0z
RCJmb2xkZXJfaXRlbXNfZWxlbWVudCI+Jyk7dG1wbD0KX2FycmF5LnB1c2goIiA8L2Rpdj4iKTt0
bXBsX2FycmF5LnB1c2goIjwvZGl2PiIpO3JldHVybiBfLnRlbXBsYXRlKHRtcGxfYXJyPQpheS5q
b2luKCIiKSl9LHRlbXBsYXRlTGliSW5mb0luTW9kYWw6ZnVuY3Rpb24oKXt0bXBsX2FycmF5PTNE
W107dG1wbF9hcnJheS49CnB1c2goJzxkaXYgaWQ9M0QibGlmX2luZm9fbW9kYWwiPicpO3RtcGxf
YXJyYXkucHVzaCgiPGgyPkxpYnJhcnkgbmFtZTo8L2gyPj0KIik7dG1wbF9hcnJheS5wdXNoKCc8
cD48JS0gbGlicmFyeS5nZXQoIm5hbWUiKSAlPjwvcD4nKTt0bXBsX2FycmF5LnB1c2goIjxoPQoz
PkxpYnJhcnkgZGVzY3JpcHRpb246PC9oMz4iKTt0bXBsX2FycmF5LnB1c2goJzxwPjwlLSBsaWJy
YXJ5LmdldCgiZGVzY3JpcHQ9CmlvbiIpICU+PC9wPicpO3RtcGxfYXJyYXkucHVzaCgiPGgzPkxp
YnJhcnkgc3lub3BzaXM6PC9oMz4iKTt0bXBsX2FycmF5LnB1cz0KaCgnPHA+PCUtIGxpYnJhcnku
Z2V0KCJzeW5vcHNpcyIpICU+PC9wPicpO3RtcGxfYXJyYXkucHVzaCgiPC9kaXY+Iik7cmV0dXJu
PQogXy50ZW1wbGF0ZSh0bXBsX2FycmF5LmpvaW4oIiIpKX0sdGVtcGxhdGVOZXdGb2xkZXJJbk1v
ZGFsOmZ1bmN0aW9uKCl7dG1wbF89CmFycmF5PTNEW107dG1wbF9hcnJheS5wdXNoKCc8ZGl2IGlk
PTNEIm5ld19mb2xkZXJfbW9kYWwiPicpO3RtcGxfYXJyYXkucHVzaD0KKCI8Zm9ybT4iKTt0bXBs
X2FycmF5LnB1c2goJzxpbnB1dCB0eXBlPTNEInRleHQiIG5hbWU9M0QiTmFtZSIgdmFsdWU9M0Qi
IiBwPQpsYWNlaG9sZGVyPTNEIk5hbWUiPicpO3RtcGxfYXJyYXkucHVzaCgnPGlucHV0IHR5cGU9
M0QidGV4dCIgbmFtZT0zRCJEZXNjcmk9CnB0aW9uIiB2YWx1ZT0zRCIiIHBsYWNlaG9sZGVyPTNE
IkRlc2NyaXB0aW9uIj4nKTt0bXBsX2FycmF5LnB1c2goIjwvZm9ybT4iKT0KO3RtcGxfYXJyYXku
cHVzaCgiPC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUodG1wbF9hcnJheS5qb2luKCIiKSl9LHRl
bXBsYXRlPQpCdWxrSW1wb3J0SW5Nb2RhbDpmdW5jdGlvbigpe3ZhciBnPTNEW107Zy5wdXNoKCc8
c3BhbiBpZD0zRCJoaXN0b3J5X21vZGFsX2M9Cm9tYm9fYnVsayIgc3R5bGU9M0Qid2lkdGg6OTAl
OyBtYXJnaW4tbGVmdDogMWVtOyBtYXJnaW4tcmlnaHQ6IDFlbTsgIj4nKTtnLj0KcHVzaCgiU2Vs
ZWN0IGhpc3Rvcnk6ICIpO2cucHVzaCgnPHNlbGVjdCBpZD0zRCJkYXRhc2V0X2ltcG9ydF9idWxr
IiBuYW1lPTNEPQoiZGF0YXNldF9pbXBvcnRfYnVsayIgc3R5bGU9M0Qid2lkdGg6NTAlOyBtYXJn
aW4tYm90dG9tOiAxZW07ICI+ICcpO2cucHVzaCg9CiIgICA8JSBfLmVhY2goaGlzdG9yaWVzLCBm
dW5jdGlvbihoaXN0b3J5KSB7ICU+Iik7Zy5wdXNoKCcgICAgICAgPG9wdGlvbiB2YT0KbHVlPTNE
IjwlPTNEIF8uZXNjYXBlKGhpc3RvcnkuZ2V0KCJpZCIpKSAlPiI+PCU9M0QgXy5lc2NhcGUoaGlz
dG9yeS5nZXQoIm5hPQptZSIpKSAlPjwvb3B0aW9uPicpO2cucHVzaCgiICAgPCUgfSk7ICU+Iik7
Zy5wdXNoKCI8L3NlbGVjdD4iKTtnLnB1c2goIjwvc3A9CmFuPiIpO3JldHVybiBfLnRlbXBsYXRl
KGcuam9pbigiIikpfSx0ZW1wbGF0ZUltcG9ydEludG9IaXN0b3J5UHJvZ3Jlc3NCYXI6Zj0KdW5j
dGlvbigpe3ZhciBnPTNEW107Zy5wdXNoKCc8ZGl2IGNsYXNzPTNEImltcG9ydF90ZXh0Ij4nKTtn
LnB1c2goIkltcG9ydGluPQpnIHNlbGVjdGVkIGRhdGFzZXRzIHRvIGhpc3RvcnkgPGI+PCU9M0Qg
Xy5lc2NhcGUoaGlzdG9yeV9uYW1lKSAlPjwvYj4iKTtnLnA9CnVzaCgiPC9kaXY+Iik7Zy5wdXNo
KCc8ZGl2IGNsYXNzPTNEInByb2dyZXNzIj4nKTtnLnB1c2goJyAgIDxkaXYgY2xhc3M9M0QicD0K
cm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWltcG9ydCIgcm9sZT0zRCJwcm9ncmVzc2JhciIgYXJp
YS12YWx1ZW5vdz0zRCIwIiBhPQpyaWEtdmFsdWVtaW49M0QiMCIgYXJpYS12YWx1ZW1heD0zRCIx
MDAiIHN0eWxlPTNEIndpZHRoOiAwMCU7Ij4nKTtnLnB1c2goJyA9CiAgICAgIDxzcGFuIGNsYXNz
PTNEImNvbXBsZXRpb25fc3BhbiI+MCUgQ29tcGxldGU8L3NwYW4+Jyk7Zy5wdXNoKCIgICA8L2Rp
dj0KPiIpO2cucHVzaCgiPC9kaXY+Iik7Zy5wdXNoKCIiKTtyZXR1cm4gXy50ZW1wbGF0ZShnLmpv
aW4oIiIpKX0sdGVtcGxhdGVBZGRpPQpuZ0RhdGFzZXRzUHJvZ3Jlc3NCYXI6ZnVuY3Rpb24oKXt2
YXIgZz0zRFtdO2cucHVzaCgnPGRpdiBjbGFzcz0zRCJpbXBvcnRfdGU9Cnh0Ij4nKTtnLnB1c2go
IkFkZGluZyBzZWxlY3RlZCBkYXRhc2V0cyB0byBsaWJyYXJ5IGZvbGRlciA8Yj48JT0zRCBfLmVz
Y2FwZT0KKGZvbGRlcl9uYW1lKSAlPjwvYj4iKTtnLnB1c2goIjwvZGl2PiIpO2cucHVzaCgnPGRp
diBjbGFzcz0zRCJwcm9ncmVzcyI+Jyk7PQpnLnB1c2goJyAgIDxkaXYgY2xhc3M9M0QicHJvZ3Jl
c3MtYmFyIHByb2dyZXNzLWJhci1pbXBvcnQiIHJvbGU9M0QicHJvZ3Jlc3M9CmJhciIgYXJpYS12
YWx1ZW5vdz0zRCIwIiBhcmlhLXZhbHVlbWluPTNEIjAiIGFyaWEtdmFsdWVtYXg9M0QiMTAwIiBz
dHlsZT0zRD0KIndpZHRoOiAwMCU7Ij4nKTtnLnB1c2goJyAgICAgICA8c3BhbiBjbGFzcz0zRCJj
b21wbGV0aW9uX3NwYW4iPjAlIENvbXBsZXRlPQo8L3NwYW4+Jyk7Zy5wdXNoKCIgICA8L2Rpdj4i
KTtnLnB1c2goIjwvZGl2PiIpO2cucHVzaCgiIik7cmV0dXJuIF8udGVtcGxhdGU9CihnLmpvaW4o
IiIpKX0sdGVtcGxhdGVEZWxldGluZ0RhdGFzZXRzUHJvZ3Jlc3NCYXI6ZnVuY3Rpb24oKXt2YXIg
Zz0zRFtdO2cucD0KdXNoKCc8ZGl2IGNsYXNzPTNEImltcG9ydF90ZXh0Ij4nKTtnLnB1c2goIjwv
ZGl2PiIpO2cucHVzaCgnPGRpdiBjbGFzcz0zRCJwPQpyb2dyZXNzIj4nKTtnLnB1c2goJyAgIDxk
aXYgY2xhc3M9M0QicHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1pbXBvcnQiIHJvbGU9Cj0zRCJw
cm9ncmVzc2JhciIgYXJpYS12YWx1ZW5vdz0zRCIwIiBhcmlhLXZhbHVlbWluPTNEIjAiIGFyaWEt
dmFsdWVtYXg9M0QiMT0KMDAiIHN0eWxlPTNEIndpZHRoOiAwMCU7Ij4nKTtnLnB1c2goJyAgICAg
ICA8c3BhbiBjbGFzcz0zRCJjb21wbGV0aW9uX3NwYW4iPQo+MCUgQ29tcGxldGU8L3NwYW4+Jyk7
Zy5wdXNoKCIgICA8L2Rpdj4iKTtnLnB1c2goIjwvZGl2PiIpO2cucHVzaCgiIik7cmV0dXI9Cm4g
Xy50ZW1wbGF0ZShnLmpvaW4oIiIpKX0sdGVtcGxhdGVCcm93c2VyTW9kYWw6ZnVuY3Rpb24oKXt2
YXIgZz0zRFtdO2cucHVzaD0KKCc8ZGl2IGlkPTNEImZpbGVfYnJvd3Nlcl9tb2RhbCI+Jyk7Zy5w
dXNoKCc8ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LWluZm8gPQpqc3RyZWUtZmlsZXMtbWVzc2Fn
ZSI+QWxsIGZpbGVzIHlvdSBzZWxlY3Qgd2lsbCBiZSBpbXBvcnRlZCBpbnRvIHRoZSBjdXJyZW49
CnQgZm9sZGVyLjwvZGl2PicpO2cucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZv
IGpzdHJlZS1mb2xkZXJzLW1lcz0Kc2FnZSIgc3R5bGU9M0QiZGlzcGxheTpub25lOyI+QWxsIGZp
bGVzIHdpdGhpbiB0aGUgc2VsZWN0ZWQgZm9sZGVycyBhbmQgdGhlPQppciBzdWJmb2xkZXJzIHdp
bGwgYmUgaW1wb3J0ZWQgaW50byB0aGUgY3VycmVudCBmb2xkZXIuPC9kaXY+Jyk7Zy5wdXNoKCc8
ZGk9CnYgc3R5bGU9M0QibWFyZ2luLWJvdHRvbToxZW07Ij4nKTtnLnB1c2goJzxsYWJlbCBjbGFz
cz0zRCJyYWRpby1pbmxpbmUiPicpOz0KZy5wdXNoKCcgIDxpbnB1dCB0aXRsZT0zRCJTd2l0Y2gg
dG8gc2VsZWN0aW5nIGZpbGVzIiB0eXBlPTNEInJhZGlvIiBuYW1lPTNEPQoianN0cmVlLXJhZGlv
IiB2YWx1ZT0zRCJqc3RyZWUtZGlzYWJsZS1mb2xkZXJzIiBjaGVja2VkPTNEImNoZWNrZWQiPiBG
aWxlcyc9Cik7Zy5wdXNoKCI8L2xhYmVsPiIpO2cucHVzaCgnPGxhYmVsIGNsYXNzPTNEInJhZGlv
LWlubGluZSI+Jyk7Zy5wdXNoKCcgIDxpbj0KcHV0IHRpdGxlPTNEIlN3aXRjaCB0byBzZWxlY3Rp
bmcgZm9sZGVycyIgdHlwZT0zRCJyYWRpbyIgbmFtZT0zRCJqc3RyZWUtcmFkPQppbyIgdmFsdWU9
M0QianN0cmVlLWRpc2FibGUtZmlsZXMiPiBGb2xkZXJzJyk7Zy5wdXNoKCI8L2xhYmVsPiIpO2cu
cHVzaCgiPC89CmRpdj4iKTtnLnB1c2goJzxkaXYgc3R5bGU9M0QibWFyZ2luLWJvdHRvbToxZW07
Ij4nKTtnLnB1c2goJzxsYWJlbCBjbGFzcz0zRD0KImNoZWNrYm94LWlubGluZSBqc3RyZWUtcHJl
c2VydmUtc3RydWN0dXJlIiBzdHlsZT0zRCJkaXNwbGF5Om5vbmU7Ij4nKTtnLnB1PQpzaCgnICAg
PGlucHV0IGNsYXNzPTNEInByZXNlcnZlLWNoZWNrYm94IiB0eXBlPTNEImNoZWNrYm94IiB2YWx1
ZT0zRCJwcmVzZXI9CnZlX2RpcmVjdG9yeV9zdHJ1Y3R1cmUiPicpO2cucHVzaCgiUHJlc2VydmUg
ZGlyZWN0b3J5IHN0cnVjdHVyZSIpO2cucHVzaCgiID0KPC9sYWJlbD4iKTtnLnB1c2goJzxsYWJl
bCBjbGFzcz0zRCJjaGVja2JveC1pbmxpbmUganN0cmVlLWxpbmstZmlsZXMiIHN0eWxlPQo9M0Qi
ZGlzcGxheTpub25lOyI+Jyk7Zy5wdXNoKCcgICA8aW5wdXQgY2xhc3M9M0QibGluay1jaGVja2Jv
eCIgdHlwZT0zRCJjaGU9CmNrYm94IiB2YWx1ZT0zRCJsaW5rX2ZpbGVzIj4nKTtnLnB1c2goIkxp
bmsgZmlsZXMgaW5zdGVhZCBvZiBjb3B5aW5nIik7Zy5wdT0Kc2goIiA8L2xhYmVsPiIpO2cucHVz
aCgiPC9kaXY+Iik7Zy5wdXNoKCc8ZGl2IGlkPTNEImpzdHJlZV9icm93c2VyIj4nKTtnLnB1PQpz
aCgiPC9kaXY+Iik7Zy5wdXNoKCI8aHIgLz4iKTtnLnB1c2goIjxwPllvdSBjYW4gc2V0IGV4dGVu
c2lvbiB0eXBlIGFuZCBnZW49Cm9tZSBmb3IgYWxsIGltcG9ydGVkIGRhdGFzZXRzIGF0IG9uY2U6
PC9wPiIpO2cucHVzaCgiPGRpdj4iKTtnLnB1c2goJ1R5cGU6ID0KPHNwYW4gaWQ9M0QibGlicmFy
eV9leHRlbnNpb25fc2VsZWN0IiBjbGFzcz0zRCJsaWJyYXJ5LWV4dGVuc2lvbi1zZWxlY3QiIC8+
PQonKTtnLnB1c2goJyAgR2Vub21lOiA8c3BhbiBpZD0zRCJsaWJyYXJ5X2dlbm9tZV9zZWxlY3Qi
IGNsYXNzPTNEImxpYnJhcnktZ2U9Cm5vbWUtc2VsZWN0IiAvPicpO2cucHVzaCgiPC9kaXY+Iik7
Zy5wdXNoKCI8L2Rpdj4iKTtyZXR1cm4gXy50ZW1wbGF0ZShnLmpvaT0KbigiIikpfSx0ZW1wbGF0
ZUltcG9ydFBhdGhNb2RhbDpmdW5jdGlvbigpe3ZhciBnPTNEW107Zy5wdXNoKCc8ZGl2IGlkPTNE
ImZpPQpsZV9icm93c2VyX21vZGFsIj4nKTtnLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxl
cnQtaW5mbyBqc3RyZWUtZm9sZGVycy09Cm1lc3NhZ2UiPkFsbCBmaWxlcyB3aXRoaW4gdGhlIGdp
dmVuIGZvbGRlcnMgYW5kIHRoZWlyIHN1YmZvbGRlcnMgd2lsbCBiZSBpbT0KcG9ydGVkIGludG8g
dGhlIGN1cnJlbnQgZm9sZGVyLjwvZGl2PicpO2cucHVzaCgnPGRpdiBzdHlsZT0zRCJtYXJnaW4t
Ym90dG9tPQo6IDAuNWVtOyI+Jyk7Zy5wdXNoKCc8bGFiZWwgY2xhc3M9M0QiY2hlY2tib3gtaW5s
aW5lIGpzdHJlZS1wcmVzZXJ2ZS1zdHJ1Y3Q9CnVyZSI+Jyk7Zy5wdXNoKCcgICA8aW5wdXQgY2xh
c3M9M0QicHJlc2VydmUtY2hlY2tib3giIHR5cGU9M0QiY2hlY2tib3giIHZhbD0KdWU9M0QicHJl
c2VydmVfZGlyZWN0b3J5X3N0cnVjdHVyZSI+Jyk7Zy5wdXNoKCJQcmVzZXJ2ZSBkaXJlY3Rvcnkg
c3RydWN0dXJlPQoiKTtnLnB1c2goIiA8L2xhYmVsPiIpO2cucHVzaCgnPGxhYmVsIGNsYXNzPTNE
ImNoZWNrYm94LWlubGluZSBqc3RyZWUtbGluay09CmZpbGVzIj4nKTtnLnB1c2goJyAgIDxpbnB1
dCBjbGFzcz0zRCJsaW5rLWNoZWNrYm94IiB0eXBlPTNEImNoZWNrYm94IiB2YWx1ZT0KPTNEImxp
bmtfZmlsZXMiPicpO2cucHVzaCgiTGluayBmaWxlcyBpbnN0ZWFkIG9mIGNvcHlpbmciKTtnLnB1
c2goIiA8L2xhYmVsPQo+Iik7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1c2goJzx0ZXh0YXJlYSBpZD0z
RCJpbXBvcnRfcGF0aHMiIGNsYXNzPTNEImZvcm0tY289Cm50cm9sIiByb3dzPTNEIjUiIHBsYWNl
aG9sZGVyPTNEIkFic29sdXRlIHBhdGhzIChvciBwYXRocyByZWxhdGl2ZSB0byBHYWxheD0KeSBy
b290KSBzZXBhcmF0ZWQgYnkgbmV3bGluZSI+PC90ZXh0YXJlYT4nKTtnLnB1c2goIjxociAvPiIp
O2cucHVzaCgiPHA+WW91PQogY2FuIHNldCBleHRlbnNpb24gdHlwZSBhbmQgZ2Vub21lIGZvciBh
bGwgaW1wb3J0ZWQgZGF0YXNldHMgYXQgb25jZTo8L3A+Iik9CjtnLnB1c2goIjxkaXY+Iik7Zy5w
dXNoKCdUeXBlOiA8c3BhbiBpZD0zRCJsaWJyYXJ5X2V4dGVuc2lvbl9zZWxlY3QiIGNsYXNzPQo9
M0QibGlicmFyeS1leHRlbnNpb24tc2VsZWN0IiAvPicpO2cucHVzaCgnICBHZW5vbWU6IDxzcGFu
IGlkPTNEImxpYnJhcnlfZ2U9Cm5vbWVfc2VsZWN0IiBjbGFzcz0zRCJsaWJyYXJ5LWdlbm9tZS1z
ZWxlY3QiIC8+Jyk7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1c2goIj0KPC9kaXY+Iik7cmV0dXJuIF8u
dGVtcGxhdGUoZy5qb2luKCIiKSl9LHRlbXBsYXRlQWRkRmlsZXNGcm9tSGlzdG9yeTpmdW5jdGlv
PQpuKCl7dmFyIGc9M0RbXTtnLnB1c2goJzxkaXYgaWQ9M0QiYWRkX2ZpbGVzX21vZGFsIj4nKTtn
LnB1c2goJzxkaXYgaWQ9M0QiaGk9CnN0b3J5X21vZGFsX2NvbWJvX2J1bGsiPicpO2cucHVzaCgi
U2VsZWN0IGhpc3Rvcnk6ICAiKTtnLnB1c2goJzxzZWxlY3QgaWQ9Cj0zRCJkYXRhc2V0X2FkZF9i
dWxrIiBuYW1lPTNEImRhdGFzZXRfYWRkX2J1bGsiIHN0eWxlPTNEIndpZHRoOjY2JTsgIj4gJyk7
Zz0KLnB1c2goIiAgIDwlIF8uZWFjaChoaXN0b3JpZXMsIGZ1bmN0aW9uKGhpc3RvcnkpIHsgJT4i
KTtnLnB1c2goJyAgICAgICA8b3B0PQppb24gdmFsdWU9M0QiPCU9M0QgXy5lc2NhcGUoaGlzdG9y
eS5nZXQoImlkIikpICU+Ij48JT0zRCBfLmVzY2FwZShoaXN0b3J5Lmc9CmV0KCJuYW1lIikpICU+
PC9vcHRpb24+Jyk7Zy5wdXNoKCIgICA8JSB9KTsgJT4iKTtnLnB1c2goIjwvc2VsZWN0PiIpO2cu
cHVzaD0KKCI8L2Rpdj4iKTtnLnB1c2goIjxici8+Iik7Zy5wdXNoKCc8ZGl2IGlkPTNEInNlbGVj
dGVkX2hpc3RvcnlfY29udGVudCI+Jyk7PQpnLnB1c2goIjwvZGl2PiIpO2cucHVzaCgiPC9kaXY+
Iik7cmV0dXJuIF8udGVtcGxhdGUoZy5qb2luKCIiKSl9LHRlbXBsYXRlSGk9CnN0b3J5Q29udGVu
dHM6ZnVuY3Rpb24oKXt2YXIgZz0zRFtdO2cucHVzaCgiPHN0cm9uZz5DaG9vc2UgdGhlIGRhdGFz
ZXRzIHRvID0KaW1wb3J0Ojwvc3Ryb25nPiIpO2cucHVzaCgiPHVsPiIpO2cucHVzaCgiIDwlIF8u
ZWFjaChoaXN0b3J5X2NvbnRlbnRzLCBmdW5jPQp0aW9uKGhpc3RvcnlfaXRlbSkgeyAlPiIpO2cu
cHVzaCgnIDxsaSBkYXRhLWlkPTNEIjwlPTNEIF8uZXNjYXBlKGhpc3RvcnlfaXQ9CmVtLmdldCgi
aWQiKSkgJT4iPicpO2cucHVzaCgnICAgPGlucHV0IHN0eWxlPTNEIm1hcmdpbjogMDsiIHR5cGU9
M0QiY2hlY2tibz0KeCI+PCU9M0QgXy5lc2NhcGUoaGlzdG9yeV9pdGVtLmdldCgiaGlkIikpICU+
OiA8JT0zRCBfLmVzY2FwZShoaXN0b3J5X2l0ZW0uPQpnZXQoIm5hbWUiKSkgJT4nKTtnLnB1c2go
IiA8L2xpPiIpO2cucHVzaCgiIDwlIH0pOyAlPiIpO2cucHVzaCgiPC91bD4iKTtyZXQ9CnVybiBf
LnRlbXBsYXRlKGcuam9pbigiIikpfSx0ZW1wbGF0ZVBhZ2luYXRvcjpmdW5jdGlvbigpe3RtcGxf
YXJyYXk9M0RbXTt0bT0KcGxfYXJyYXkucHVzaCgnICAgPHVsIGNsYXNzPTNEInBhZ2luYXRpb24g
cGFnaW5hdGlvbi1zbSI+Jyk7dG1wbF9hcnJheS5wdXNoPQooIiAgICAgICA8JSBpZiAoICggc2hv
d19wYWdlIC0gMSApID4gMCApIHsgJT4iKTt0bXBsX2FycmF5LnB1c2goIiAgICAgICAgICA9CiA8
JSBpZiAoICggc2hvd19wYWdlIC0gMSApID4gcGFnZV9jb3VudCApIHsgJT4iKTt0bXBsX2FycmF5
LnB1c2goJyAgICAgICAgID0KICAgICAgPGxpPjxhIGhyZWY9M0QiI2ZvbGRlcnMvPCU9M0QgaWQg
JT4vcGFnZS8xIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1hbmdsPQplLWRvdWJsZS1sZWZ0Ij48L3Nw
YW4+PC9hPjwvbGk+Jyk7dG1wbF9hcnJheS5wdXNoKCcgICAgICAgICAgICAgICA8bGkgY2xhc3M9
Cj0zRCJkaXNhYmxlZCI+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWdlLzwlIHBy
aW50KCBzaG93X3BhZ2UgKSAlPj0KIj48JSBwcmludCggc2hvd19wYWdlIC0gMSApICU+PC9hPjwv
bGk+Jyk7dG1wbF9hcnJheS5wdXNoKCIgICAgICAgICAgIDwlIH0gPQplbHNlIHsgJT4iKTt0bXBs
X2FycmF5LnB1c2goJyAgICAgICAgICAgICAgIDxsaT48YSBocmVmPTNEIiNmb2xkZXJzLzwlPTNE
IGk9CmQgJT4vcGFnZS8xIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1hbmdsZS1kb3VibGUtbGVmdCI+
PC9zcGFuPjwvYT48L2xpPicpO3RtcD0KbF9hcnJheS5wdXNoKCcgICAgICAgICAgICAgICA8bGk+
PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWdlLzwlIHByPQppbnQoIHNob3dfcGFn
ZSAtIDEgKSAlPiI+PCUgcHJpbnQoIHNob3dfcGFnZSAtIDEgKSAlPjwvYT48L2xpPicpO3RtcGxf
YXJyYXk9Ci5wdXNoKCIgICAgICAgICAgIDwlIH0gJT4iKTt0bXBsX2FycmF5LnB1c2goIiAgICAg
ICA8JSB9IGVsc2UgeyAlPiIpO3RtcGxfYT0KcnJheS5wdXNoKCcgICAgICAgICAgIDxsaSBjbGFz
cz0zRCJkaXNhYmxlZCI+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPQo+L3BhZ2UvMSI+
PHNwYW4gY2xhc3M9M0QiZmEgZmEtYW5nbGUtZG91YmxlLWxlZnQiPjwvc3Bhbj48L2E+PC9saT4n
KTt0bXBsX2E9CnJyYXkucHVzaCgnICAgICAgICAgICA8bGkgY2xhc3M9M0QiZGlzYWJsZWQiPjxh
IGhyZWY9M0QiI2ZvbGRlcnMvPCU9M0QgaWQgJT0KPi9wYWdlLzwlIHByaW50KCBzaG93X3BhZ2Ug
KSAlPiI+PCUgcHJpbnQoIHNob3dfcGFnZSAtIDEgKSAlPjwvYT48L2xpPicpO3RtPQpwbF9hcnJh
eS5wdXNoKCIgICAgICAgPCUgfSAlPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgICAgIDxsaSBjbGFz
cz0zRCJhY3RpdmU9CiI+Jyk7dG1wbF9hcnJheS5wdXNoKCcgICAgICAgPGEgaHJlZj0zRCIjZm9s
ZGVycy88JT0zRCBpZCAlPi9wYWdlLzwlIHByaW50KD0KIHNob3dfcGFnZSApICU+Ij48JSBwcmlu
dCggc2hvd19wYWdlICkgJT48L2E+Jyk7dG1wbF9hcnJheS5wdXNoKCIgICAgICAgPC9sPQppPiIp
O3RtcGxfYXJyYXkucHVzaCgiICAgICAgIDwlIGlmICggKCBzaG93X3BhZ2UgKSA8IHBhZ2VfY291
bnQgKSB7ICU+Iik7dG09CnBsX2FycmF5LnB1c2goJyAgICAgICAgICAgPGxpPjxhIGhyZWY9M0Qi
I2ZvbGRlcnMvPCU9M0QgaWQgJT4vcGFnZS88JSBwcmludD0KKCBzaG93X3BhZ2UgKyAxICkgJT4i
PjwlIHByaW50KCBzaG93X3BhZ2UgKyAxICkgJT48L2E+PC9saT4nKTt0bXBsX2FycmF5LnB1PQpz
aCgnICAgICAgICAgICA8bGk+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWdlLzwl
IHByaW50KCBwYWdlX2NvdW49CnQgKSAlPiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtYW5nbGUtZG91
YmxlLXJpZ2h0Ij48L3NwYW4+PC9hPjwvbGk+Jyk7dG1wbF9hcj0KcmF5LnB1c2goIiAgICAgICA8
JSB9IGVsc2UgeyAlPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgICAgICAgICA8bGkgY2xhc3M9M0Qi
PQpkaXNhYmxlZCI+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWdlLzwlIHByaW50
KCBzaG93X3BhZ2UgICkgJT4iPjw9CiUgcHJpbnQoIHNob3dfcGFnZSArIDEgKSAlPjwvYT48L2xp
PicpO3RtcGxfYXJyYXkucHVzaCgnICAgICAgICAgICA8bGkgY2xhcz0Kcz0zRCJkaXNhYmxlZCI+
PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWdlLzwlIHByaW50KCBwYWdlX2NvdW50
ICkgPQolPiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0Ij48L3NwYW4+
PC9hPjwvbGk+Jyk7dG1wbF9hcnJheS49CnB1c2goIiAgICAgICA8JSB9ICU+Iik7dG1wbF9hcnJh
eS5wdXNoKCIgICA8L3VsPiIpO3RtcGxfYXJyYXkucHVzaCgiICAgPHNwYT0Kbj4iKTt0bXBsX2Fy
cmF5LnB1c2goJyAgICAgICBzaG93aW5nIDxhIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEt
cGxhY2VtPQplbnQ9M0QidG9wIiB0aXRsZT0zRCJDbGljayB0byBjaGFuZ2UgdGhlIG51bWJlciBv
ZiBpdGVtcyBvbiBwYWdlIiBpZD0zRCJwYWc9CmVfc2l6ZV9wcm9tcHQiPjwlLSBpdGVtc19zaG93
biAlPjwvYT4gb2YgPCUtIHRvdGFsX2l0ZW1zX2NvdW50ICU+IGl0ZW1zJyk7dD0KbXBsX2FycmF5
LnB1c2goIiAgIDwvc3Bhbj4iKTtyZXR1cm4gXy50ZW1wbGF0ZSh0bXBsX2FycmF5LmpvaW4oIiIp
KX0sfSk7cmV0PQp1cm57Rm9sZGVyVG9vbGJhclZpZXc6Yn19KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitkZWZpbmUoWyJnYWxheHkubWFzdGhlYWQiLCJ1dGlscy91dGlscyIsImxpYnMv
dG9hc3RyIiwibXZjL2xpYnJhcnkvbGlicmFyeT0KLW1vZGVsIiwibXZjL3VpL3VpLXNlbGVjdCJd
LGZ1bmN0aW9uKGMsZSxmLGQsYSl7dmFyIGI9M0RCYWNrYm9uZS5WaWV3LmV4dGVuPQpkKHtlbDoi
I2NlbnRlciIsZXZlbnRzOnsiY2xpY2sgI3Rvb2xidG5fY3JlYXRlX2ZvbGRlciI6ImNyZWF0ZUZv
bGRlckZyb21Nb2Q9CmFsIiwiY2xpY2sgI3Rvb2xidG5fYnVsa19pbXBvcnQiOiJtb2RhbEJ1bGtJ
bXBvcnQiLCJjbGljayAjaW5jbHVkZV9kZWxldGVkXz0KZGF0YXNldHNfY2hrIjoiY2hlY2tJbmNs
dWRlRGVsZXRlZCIsImNsaWNrICN0b29sYnRuX3Nob3dfbGliaW5mbyI6InNob3dMaWJJPQpuZm8i
LCJjbGljayAjdG9vbGJ0bl9idWxrX2RlbGV0ZSI6ImRlbGV0ZVNlbGVjdGVkRGF0YXNldHMiLCJj
bGljayAjcGFnZV9zaXo9CmVfcHJvbXB0Ijoic2hvd1BhZ2VTaXplUHJvbXB0In0sZGVmYXVsdHM6
e2Nhbl9hZGRfbGlicmFyeV9pdGVtOmZhbHNlLGNvbnRhaT0KbnNfZmlsZTpmYWxzZSxjaGFpbl9j
YWxsX2NvbnRyb2w6e3RvdGFsX251bWJlcjowLGZhaWxlZF9udW1iZXI6MH0sZGlzYWJsZWRfPQpq
c3RyZWVfZWxlbWVudDoiZm9sZGVycyJ9LG1vZGFsOm51bGwsanN0cmVlOm51bGwsaGlzdG9yaWVz
Om51bGwsc2VsZWN0X2dlbm89Cm1lOm51bGwsc2VsZWN0X2V4dGVuc2lvbjpudWxsLGxpc3RfZXh0
ZW5zaW9uczpbXSxhdXRvOntpZDoiYXV0byIsdGV4dDoiQXV0bz0KLWRldGVjdCIsZGVzY3JpcHRp
b246IlRoaXMgc3lzdGVtIHdpbGwgdHJ5IHRvIGRldGVjdCB0aGUgZmlsZSB0eXBlIGF1dG9tYXRp
PQpjYWxseS4gSWYgeW91ciBmaWxlIGlzIG5vdCBkZXRlY3RlZCBwcm9wZXJseSBhcyBvbmUgb2Yg
dGhlIGtub3duIGZvcm1hdHMsIGk9CnQgbW9zdCBsaWtlbHkgbWVhbnMgdGhhdCBpdCBoYXMgc29t
ZSBmb3JtYXQgcHJvYmxlbXMgKGUuZy4sIGRpZmZlcmVudCBudW1iZT0KciBvZiBjb2x1bW5zIG9u
IGRpZmZlcmVudCByb3dzKS4gWW91IGNhbiBzdGlsbCBjb2VyY2UgdGhlIHN5c3RlbSB0byBzZXQg
eW91PQpyIGRhdGEgdG8gdGhlIGZvcm1hdCB5b3UgdGhpbmsgaXQgc2hvdWxkIGJlLiBZb3UgY2Fu
IGFsc28gdXBsb2FkIGNvbXByZXNzZWQ9CiBmaWxlcywgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5
IGJlIGRlY29tcHJlc3NlZC4ifSxsaXN0X2dlbm9tZXM6W10saW5pdGlhbD0KaXplOmZ1bmN0aW9u
KGcpe3RoaXMub3B0aW9ucz0zRF8uZGVmYXVsdHMoZ3x8e30sdGhpcy5kZWZhdWx0cyk7dGhpcy5m
ZXRjaEV4PQp0QW5kR2Vub21lcygpO3RoaXMucmVuZGVyKCl9LHJlbmRlcjpmdW5jdGlvbihnKXt0
aGlzLm9wdGlvbnM9M0RfLmV4dGVuZCh0aGk9CnMub3B0aW9ucyxnKTt2YXIgaT0zRHRoaXMudGVt
cGxhdGVUb29sQmFyKCk7dmFyIGg9M0R7aWQ6dGhpcy5vcHRpb25zLmlkLGlzXz0KYWRtaW46ZmFs
c2UsaXNfYW5vbnltOnRydWUsbXV0aXBsZV9hZGRfZGF0YXNldF9vcHRpb25zOmZhbHNlfTtpZihH
YWxheHkuY3VyPQpyVXNlcil7aC5pc19hZG1pbj0zREdhbGF4eS5jdXJyVXNlci5pc0FkbWluKCk7
aC5pc19hbm9ueW09M0RHYWxheHkuY3VyclVzZXI9Ci5pc0Fub255bW91cygpO2lmKEdhbGF4eS5j
b25maWcudXNlcl9saWJyYXJ5X2ltcG9ydF9kaXIhPTNEPTNEbnVsbHx8R2FsYXh5Lj0KY29uZmln
LmFsbG93X2xpYnJhcnlfcGF0aF9wYXN0ZSE9M0Q9M0RmYWxzZXx8R2FsYXh5LmNvbmZpZy5saWJy
YXJ5X2ltcG9ydF9kPQppciE9M0Q9M0RudWxsKXtoLm11dGlwbGVfYWRkX2RhdGFzZXRfb3B0aW9u
cz0zRHRydWV9fXRoaXMuJGVsLmh0bWwoaShoKSl9LHI9CmVuZGVyUGFnaW5hdG9yOmZ1bmN0aW9u
KGgpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9ucyxoKTt2YXIgZz0zRD0KdGhp
cy50ZW1wbGF0ZVBhZ2luYXRvcigpO3RoaXMuJGVsLmZpbmQoIiNmb2xkZXJfcGFnaW5hdG9yIiku
aHRtbChnKHtpZDp0aGlzPQoub3B0aW9ucy5pZCxzaG93X3BhZ2U6cGFyc2VJbnQodGhpcy5vcHRp
b25zLnNob3dfcGFnZSkscGFnZV9jb3VudDpwYXJzZUludCg9CnRoaXMub3B0aW9ucy5wYWdlX2Nv
dW50KSx0b3RhbF9pdGVtc19jb3VudDp0aGlzLm9wdGlvbnMudG90YWxfaXRlbXNfY291bnQsaT0K
dGVtc19zaG93bjp0aGlzLm9wdGlvbnMuaXRlbXNfc2hvd259KSl9LGNvbmZpZ3VyZUVsZW1lbnRz
OmZ1bmN0aW9uKGcpe3RoaXMuPQpvcHRpb25zPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGcpO2lm
KHRoaXMub3B0aW9ucy5jYW5fYWRkX2xpYnJhcnlfaXRlbT0zRD0KPTNEPTNEdHJ1ZSl7JCgiLmFk
ZC1saWJyYXJ5LWl0ZW1zIikuc2hvdygpfWVsc2V7JCgiLmFkZC1saWJyYXJ5LWl0ZW1zIikuaGlk
PQplKCl9aWYodGhpcy5vcHRpb25zLmNvbnRhaW5zX2ZpbGU9M0Q9M0Q9M0R0cnVlKXtpZihHYWxh
eHkuY3VyclVzZXIpe2lmKCFHYWw9CmF4eS5jdXJyVXNlci5pc0Fub255bW91cygpKXskKCIubG9n
Z2VkLWRhdGFzZXQtbWFuaXB1bGF0aW9uIikuc2hvdygpOyQoIi5kYT0KdGFzZXQtbWFuaXB1bGF0
aW9uIikuc2hvdygpfWVsc2V7JCgiLmRhdGFzZXQtbWFuaXB1bGF0aW9uIikuc2hvdygpOyQoIi5s
b2dnPQplZC1kYXRhc2V0LW1hbmlwdWxhdGlvbiIpLmhpZGUoKX19ZWxzZXskKCIubG9nZ2VkLWRh
dGFzZXQtbWFuaXB1bGF0aW9uIikuaGk9CmRlKCk7JCgiLmRhdGFzZXQtbWFuaXB1bGF0aW9uIiku
aGlkZSgpfX1lbHNleyQoIi5sb2dnZWQtZGF0YXNldC1tYW5pcHVsYXRpbz0KbiIpLmhpZGUoKTsk
KCIuZGF0YXNldC1tYW5pcHVsYXRpb24iKS5oaWRlKCl9dGhpcy4kZWwuZmluZCgiW2RhdGEtdG9n
Z2xlXSIpPQoudG9vbHRpcCgpfSxjcmVhdGVGb2xkZXJGcm9tTW9kYWw6ZnVuY3Rpb24oaSl7aS5w
cmV2ZW50RGVmYXVsdCgpO2kuc3RvcFByb3A9CmFnYXRpb24oKTt2YXIgZz0zRHRoaXM7dmFyIGg9
M0R0aGlzLnRlbXBsYXRlTmV3Rm9sZGVySW5Nb2RhbCgpO3RoaXMubW9kYWw9Cj0zREdhbGF4eS5t
b2RhbDt0aGlzLm1vZGFsLnNob3coe2Nsb3NpbmdfZXZlbnRzOnRydWUsdGl0bGU6IkNyZWF0ZSBO
ZXcgRm9sZD0KZXIiLGJvZHk6aCgpLGJ1dHRvbnM6e0NyZWF0ZTpmdW5jdGlvbigpe2cuY3JlYXRl
X25ld19mb2xkZXJfZXZlbnQoKX0sQ2xvc2U6PQpmdW5jdGlvbigpe0dhbGF4eS5tb2RhbC5oaWRl
KCl9fX0pfSxjcmVhdGVfbmV3X2ZvbGRlcl9ldmVudDpmdW5jdGlvbigpe3ZhciA9Cmc9M0R0aGlz
LnNlcmlhbGl6ZV9uZXdfZm9sZGVyKCk7aWYodGhpcy52YWxpZGF0ZV9uZXdfZm9sZGVyKGcpKXt2
YXIgaD0zRG5ldz0KIGQuRm9sZGVyQXNNb2RlbCgpO3VybF9pdGVtcz0zREJhY2tib25lLmhpc3Rv
cnkuZnJhZ21lbnQuc3BsaXQoIi8iKTtjdXJyZW50PQpfZm9sZGVyX2lkPTNEdXJsX2l0ZW1zW3Vy
bF9pdGVtcy5sZW5ndGgtMV07aC51cmw9M0RoLnVybFJvb3QrIi8iK2N1cnJlbnRfZm89CmxkZXJf
aWQ7aC5zYXZlKGcse3N1Y2Nlc3M6ZnVuY3Rpb24oaSl7R2FsYXh5Lm1vZGFsLmhpZGUoKTtmLnN1
Y2Nlc3MoIkZvbGRlcj0KIGNyZWF0ZWQuIik7aS5zZXQoe3R5cGU6ImZvbGRlciJ9KTtHYWxheHku
bGlicmFyaWVzLmZvbGRlckxpc3RWaWV3LmNvbGxlY3RpPQpvbi5hZGQoaSl9LGVycm9yOmZ1bmN0
aW9uKGosaSl7R2FsYXh5Lm1vZGFsLmhpZGUoKTtpZih0eXBlb2YgaS5yZXNwb25zZUpTT049CiE9
M0Q9M0QidW5kZWZpbmVkIil7Zi5lcnJvcihpLnJlc3BvbnNlSlNPTi5lcnJfbXNnKX1lbHNle2Yu
ZXJyb3IoIkFuIGVycm9yID0Kb2N1cnJlZC4iKX19fSl9ZWxzZXtmLmVycm9yKCJGb2xkZXIncyBu
YW1lIGlzIG1pc3NpbmcuIil9cmV0dXJuIGZhbHNlfSxzZXJpPQphbGl6ZV9uZXdfZm9sZGVyOmZ1
bmN0aW9uKCl7cmV0dXJue25hbWU6JCgiaW5wdXRbbmFtZT0zRCdOYW1lJ10iKS52YWwoKSxkZXM9
CmNyaXB0aW9uOiQoImlucHV0W25hbWU9M0QnRGVzY3JpcHRpb24nXSIpLnZhbCgpfX0sdmFsaWRh
dGVfbmV3X2ZvbGRlcjpmdW5jdD0KaW9uKGcpe3JldHVybiBnLm5hbWUhPTNEPTNEIiJ9LG1vZGFs
QnVsa0ltcG9ydDpmdW5jdGlvbigpe3ZhciBnPTNEJCgiI2ZvbGRlPQpyX3RhYmxlIikuZmluZCgi
OmNoZWNrZWQiKTtpZihnLmxlbmd0aD0zRD0zRD0zRDApe2YuaW5mbygiWW91IG11c3Qgc2VsZWN0
IHM9Cm9tZSBkYXRhc2V0cyBmaXJzdC4iKX1lbHNle3RoaXMucmVmcmVzaFVzZXJIaXN0b3JpZXNM
aXN0KGZ1bmN0aW9uKGkpe3ZhciBoPQo9M0RpLnRlbXBsYXRlQnVsa0ltcG9ydEluTW9kYWwoKTtp
Lm1vZGFsPTNER2FsYXh5Lm1vZGFsO2kubW9kYWwuc2hvdyh7Y2xvc2k9Cm5nX2V2ZW50czp0cnVl
LHRpdGxlOiJJbXBvcnQgaW50byBIaXN0b3J5Iixib2R5Omgoe2hpc3RvcmllczppLmhpc3Rvcmll
cy5tbz0KZGVsc30pLGJ1dHRvbnM6e0ltcG9ydDpmdW5jdGlvbigpe2kuaW1wb3J0QWxsSW50b0hp
c3RvcnkoKX0sQ2xvc2U6ZnVuY3Rpb24oPQope0dhbGF4eS5tb2RhbC5oaWRlKCl9fX0pfSl9fSxy
ZWZyZXNoVXNlckhpc3Rvcmllc0xpc3Q6ZnVuY3Rpb24oaCl7dmFyIGc9M0Q9CnRoaXM7dGhpcy5o
aXN0b3JpZXM9M0RuZXcgZC5HYWxheHlIaXN0b3JpZXMoKTt0aGlzLmhpc3Rvcmllcy5mZXRjaCh7
c3VjY2Vzcz0KOmZ1bmN0aW9uKCl7aChnKX0sZXJyb3I6ZnVuY3Rpb24oaixpKXtpZih0eXBlb2Yg
aS5yZXNwb25zZUpTT04hPTNEPTNEInVuZGVmPQppbmVkIil7Zi5lcnJvcihpLnJlc3BvbnNlSlNP
Ti5lcnJfbXNnKX1lbHNle2YuZXJyb3IoIkFuIGVycm9yIG9jdXJyZWQuIil9fX09Cil9LGltcG9y
dEFsbEludG9IaXN0b3J5OmZ1bmN0aW9uKCl7dGhpcy5tb2RhbC5kaXNhYmxlQnV0dG9uKCJJbXBv
cnQiKTt2YXIgaz0KPTNEJCgic2VsZWN0W25hbWU9M0RkYXRhc2V0X2ltcG9ydF9idWxrXSBvcHRp
b246c2VsZWN0ZWQiKS52YWwoKTt2YXIgbj0zRCQoPQoic2VsZWN0W25hbWU9M0RkYXRhc2V0X2lt
cG9ydF9idWxrXSBvcHRpb246c2VsZWN0ZWQiKS50ZXh0KCk7dGhpcy5vcHRpb25zLmw9CmFzdF91
c2VkX2hpc3RvcnlfaWQ9M0RrO3ZhciBoPTNEW107JCgiI2ZvbGRlcl90YWJsZSIpLmZpbmQoIjpj
aGVja2VkIikuZWFjaD0KKGZ1bmN0aW9uKCl7aWYodGhpcy5wYXJlbnRFbGVtZW50LnBhcmVudEVs
ZW1lbnQuaWQhPTNEPTNEIiIpe2gucHVzaCh0aGlzLnBhPQpyZW50RWxlbWVudC5wYXJlbnRFbGVt
ZW50LmlkKX19KTt2YXIgbT0zRFtdO2Zvcih2YXIgaj0zRGgubGVuZ3RoLTE7aj49M0QwO2o9Ci0t
KXt2YXIgZz0zRGhbal07dmFyIGw9M0RuZXcgZC5IaXN0b3J5SXRlbSgpO2wudXJsPTNEbC51cmxS
b290K2srIi9jb250ZW50cz0KIjtsLmNvbnRlbnQ9M0RnO2wuc291cmNlPTNEImxpYnJhcnkiO20u
cHVzaChsKX10aGlzLmluaXRDaGFpbkNhbGxDb250cm9sKHtsPQplbmd0aDptLmxlbmd0aCxhY3Rp
b246InRvX2hpc3RvcnkiLGhpc3RvcnlfbmFtZTpufSk7alF1ZXJ5LmdldEpTT04oZ2FsYXh5X2M9
Cm9uZmlnLnJvb3QrImhpc3Rvcnkvc2V0X2FzX2N1cnJlbnQ/aWQ9M0QiK2spO3RoaXMuY2hhaW5D
YWxsSW1wb3J0aW5nSW50b0hpcz0KdG9yeShtLG4pfSx1cGRhdGVQcm9ncmVzczpmdW5jdGlvbigp
e3RoaXMucHJvZ3Jlc3MrPTNEdGhpcy5wcm9ncmVzc1N0ZXA7JCgiPQoucHJvZ3Jlc3MtYmFyLWlt
cG9ydCIpLndpZHRoKE1hdGgucm91bmQodGhpcy5wcm9ncmVzcykrIiUiKTt0eHRfcmVwcmVzZW50
YXQ9Cmlvbj0zRE1hdGgucm91bmQodGhpcy5wcm9ncmVzcykrIiUgQ29tcGxldGUiOyQoIi5jb21w
bGV0aW9uX3NwYW4iKS50ZXh0KHR4dD0KX3JlcHJlc2VudGF0aW9uKX0sZG93bmxvYWQ6ZnVuY3Rp
b24oZyxrKXt2YXIgaT0zRFtdOyQoIiNmb2xkZXJfdGFibGUiKS5maW5kPQooIjpjaGVja2VkIiku
ZWFjaChmdW5jdGlvbigpe2lmKHRoaXMucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmlkIT0z
RD0zRCI9CiIpe2kucHVzaCh0aGlzLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5pZCl9fSk7
dmFyIGg9M0Qod2luZG93LmdhbGF4eV9jbz0KbmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsi
YXBpL2xpYnJhcmllcy9kYXRhc2V0cy9kb3dubG9hZC8iK2s7dmFyIGo9M0R7PQpsZF9pZHM6aX07
dGhpcy5wcm9jZXNzRG93bmxvYWQoaCxqLCJnZXQiKX0scHJvY2Vzc0Rvd25sb2FkOmZ1bmN0aW9u
KGgsaSxqKXs9CmlmKGgmJmkpe2k9M0R0eXBlb2YgaT0zRD0zRD0zRCJzdHJpbmciP2k6JC5wYXJh
bShpKTt2YXIgZz0zRCIiOyQuZWFjaChpLnNwbD0KaXQoIiYiKSxmdW5jdGlvbigpe3ZhciBrPTNE
dGhpcy5zcGxpdCgiPTNEIik7Zys9M0QnPGlucHV0IHR5cGU9M0QiaGlkZGVuIiBuPQphbWU9M0Qi
JytrWzBdKyciIHZhbHVlPTNEIicra1sxXSsnIiAvPid9KTskKCc8Zm9ybSBhY3Rpb249M0QiJyto
KyciIG1ldGhvZD0KPTNEIicrKGp8fCJwb3N0IikrJyI+JytnKyI8L2Zvcm0+IikuYXBwZW5kVG8o
ImJvZHkiKS5zdWJtaXQoKS5yZW1vdmUoKTtmLmluPQpmbygiWW91ciBkb3dubG9hZCB3aWxsIGJl
Z2luIHNvb24uIil9ZWxzZXtmLmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZC4iKX19LGE9CmRkRmls
ZXNGcm9tSGlzdG9yeU1vZGFsOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoVXNlckhpc3Rvcmllc0xp
c3QoZnVuY3Rpb24oZz0KKXtnLm1vZGFsPTNER2FsYXh5Lm1vZGFsO3ZhciBoPTNEZy50ZW1wbGF0
ZUFkZEZpbGVzRnJvbUhpc3RvcnkoKTt2YXIgaT0zRGcuPQpvcHRpb25zLmZ1bGxfcGF0aFtnLm9w
dGlvbnMuZnVsbF9wYXRoLmxlbmd0aC0xXVsxXTtnLm1vZGFsLnNob3coe2Nsb3NpbmdfZXY9CmVu
dHM6dHJ1ZSx0aXRsZToiQWRkaW5nIGRhdGFzZXRzIGZyb20geW91ciBoaXN0b3J5IHRvIGZvbGRl
ciAiK2ksYm9keTpoKHtoaT0Kc3RvcmllczpnLmhpc3Rvcmllcy5tb2RlbHN9KSxidXR0b25zOntB
ZGQ6ZnVuY3Rpb24oKXtnLmFkZEFsbERhdGFzZXRzRnJvbUhpPQpzdG9yeSgpfSxDbG9zZTpmdW5j
dGlvbigpe0dhbGF4eS5tb2RhbC5oaWRlKCl9fSxjbG9zaW5nX2NhbGxiYWNrOmZ1bmN0aW9uKCk9
CntHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX19KTtpZihnLmhpc3Rvcmll
cy5tb2RlbHMubGVuZ3RoPjApez0KZy5mZXRjaEFuZERpc3BsYXlIaXN0b3J5Q29udGVudHMoZy5o
aXN0b3JpZXMubW9kZWxzWzBdLmlkKTskKCIjZGF0YXNldF9hZGRfPQpidWxrIikuY2hhbmdlKGZ1
bmN0aW9uKGope2cuZmV0Y2hBbmREaXNwbGF5SGlzdG9yeUNvbnRlbnRzKGoudGFyZ2V0LnZhbHVl
KX09Cil9ZWxzZXtmLmVycm9yKCJBbiBlcnJvciBvY3VycmVkLiIpfX0pfSxpbXBvcnRGaWxlc0Zy
b21QYXRoTW9kYWw6ZnVuY3Rpb24oKT0Ke3ZhciBoPTNEdGhpczt0aGlzLm1vZGFsPTNER2FsYXh5
Lm1vZGFsO3ZhciBnPTNEdGhpcy50ZW1wbGF0ZUltcG9ydFBhdGhNb2RhPQpsKCk7dGhpcy5tb2Rh
bC5zaG93KHtjbG9zaW5nX2V2ZW50czp0cnVlLHRpdGxlOiJQbGVhc2UgZW50ZXIgcGF0aHMgdG8g
aW1wb3I9CnQiLGJvZHk6Zyh7fSksYnV0dG9uczp7SW1wb3J0OmZ1bmN0aW9uKCl7aC5pbXBvcnRG
cm9tUGF0aHNDbGlja2VkKGgpfSxDbG9zZT0KOmZ1bmN0aW9uKCl7R2FsYXh5Lm1vZGFsLmhpZGUo
KX19LGNsb3NpbmdfY2FsbGJhY2s6ZnVuY3Rpb24oKXtHYWxheHkubGlicmFyPQppZXMubGlicmFy
eV9yb3V0ZXIubmF2aWdhdGUoImZvbGRlcnMvIitoLmlkLHt0cmlnZ2VyOnRydWV9KX19KTt0aGlz
LnJlbmRlclM9CmVsZWN0Qm94ZXMoKX0sZmV0Y2hFeHRBbmRHZW5vbWVzOmZ1bmN0aW9uKCl7dmFy
IGc9M0R0aGlzO2UuZ2V0KHt1cmw6KHdpbmRvdz0KLmdhbGF4eV9jb25maWc/Z2FsYXh5X2NvbmZp
Zy5yb290OiIvIikrImFwaS9kYXRhdHlwZXM/ZXh0ZW5zaW9uX29ubHk9M0RGYWxzPQplIixzdWNj
ZXNzOmZ1bmN0aW9uKGgpe2ZvcihrZXkgaW4gaCl7Zy5saXN0X2V4dGVuc2lvbnMucHVzaCh7aWQ6
aFtrZXldLmV4dGU9Cm5zaW9uLHRleHQ6aFtrZXldLmV4dGVuc2lvbixkZXNjcmlwdGlvbjpoW2tl
eV0uZGVzY3JpcHRpb24sZGVzY3JpcHRpb25fdXJsOj0KaFtrZXldLmRlc2NyaXB0aW9uX3VybH0p
fWcubGlzdF9leHRlbnNpb25zLnNvcnQoZnVuY3Rpb24oaixpKXtyZXR1cm4gai5pZD5pPQouaWQ/
MTpqLmlkPGkuaWQ/LTE6MH0pO2cubGlzdF9leHRlbnNpb25zLnVuc2hpZnQoZy5hdXRvKX19KTtl
LmdldCh7dXJsOih3aW49CmRvdy5nYWxheHlfY29uZmlnP2dhbGF4eV9jb25maWcucm9vdDoiLyIp
KyJhcGkvZ2Vub21lcyIsc3VjY2VzczpmdW5jdGlvbihoKT0Ke2ZvcihrZXkgaW4gaCl7Zy5saXN0
X2dlbm9tZXMucHVzaCh7aWQ6aFtrZXldWzFdLHRleHQ6aFtrZXldWzBdfSl9Zy5saXN0X2dlPQpu
b21lcy5zb3J0KGZ1bmN0aW9uKGosaSl7cmV0dXJuIGouaWQ+aS5pZD8xOmouaWQ8aS5pZD8tMTow
fSl9fSl9LHJlbmRlclNlbGU9CmN0Qm94ZXM6ZnVuY3Rpb24oKXt2YXIgZz0zRHRoaXM7dGhpcy5z
ZWxlY3RfZ2Vub21lPTNEbmV3IGEuVmlldyh7Y3NzOiJsaWJyYT0KcnktZ2Vub21lLXNlbGVjdCIs
ZGF0YTpnLmxpc3RfZ2Vub21lcyxjb250YWluZXI6R2FsYXh5Lm1vZGFsLiRlbC5maW5kKCIjbGli
PQpyYXJ5X2dlbm9tZV9zZWxlY3QiKSx2YWx1ZToiPyJ9KTt0aGlzLnNlbGVjdF9leHRlbnNpb249
M0RuZXcgYS5WaWV3KHtjc3M6Imw9CmlicmFyeS1leHRlbnNpb24tc2VsZWN0IixkYXRhOmcubGlz
dF9leHRlbnNpb25zLGNvbnRhaW5lcjpHYWxheHkubW9kYWwuJGVsLj0KZmluZCgiI2xpYnJhcnlf
ZXh0ZW5zaW9uX3NlbGVjdCIpLHZhbHVlOiJhdXRvIn0pfSxpbXBvcnRGaWxlc0Zyb21HYWxheHlG
b2xkPQplck1vZGFsOmZ1bmN0aW9uKGcpe3ZhciBpPTNEdGhpczt2YXIgaD0zRHRoaXMudGVtcGxh
dGVCcm93c2VyTW9kYWwoKTt0aGlzLm09Cm9kYWw9M0RHYWxheHkubW9kYWw7dGhpcy5tb2RhbC5z
aG93KHtjbG9zaW5nX2V2ZW50czp0cnVlLHRpdGxlOiJQbGVhc2Ugc2VsZT0KY3QgZm9sZGVycyBv
ciBmaWxlcyIsYm9keTpoKHt9KSxidXR0b25zOntJbXBvcnQ6ZnVuY3Rpb24oKXtpLmltcG9ydEZy
b21Kc3RyPQplZVBhdGgoaSxnKX0sQ2xvc2U6ZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuaGlkZSgp
fX0sY2xvc2luZ19jYWxsYmFjazpmdW5jdGk9Cm9uKCl7R2FsYXh5LmxpYnJhcmllcy5saWJyYXJ5
X3JvdXRlci5uYXZpZ2F0ZSgiZm9sZGVycy8iK2kuaWQse3RyaWdnZXI6dHJ1ZT0KfSl9fSk7dGhp
cy5yZW5kZXJTZWxlY3RCb3hlcygpO2cuZGlzYWJsZWRfanN0cmVlX2VsZW1lbnQ9M0QiZm9sZGVy
cyI7dGhpcy5yPQplbmRlckpzdHJlZShnKTskKCJpbnB1dFt0eXBlPTNEcmFkaW9dIikuY2hhbmdl
KGZ1bmN0aW9uKGope2lmKGoudGFyZ2V0LnZhbHU9CmU9M0Q9M0Q9M0QianN0cmVlLWRpc2FibGUt
Zm9sZGVycyIpe2cuZGlzYWJsZWRfanN0cmVlX2VsZW1lbnQ9M0QiZm9sZGVycyI7aT0KLnJlbmRl
ckpzdHJlZShnKTskKCIuanN0cmVlLWZvbGRlcnMtbWVzc2FnZSIpLmhpZGUoKTskKCIuanN0cmVl
LXByZXNlcnZlLXN0PQpydWN0dXJlIikuaGlkZSgpOyQoIi5qc3RyZWUtbGluay1maWxlcyIpLmhp
ZGUoKTskKCIuanN0cmVlLWZpbGVzLW1lc3NhZ2UiKS49CnNob3coKX1lbHNle2lmKGoudGFyZ2V0
LnZhbHVlPTNEPTNEPTNEImpzdHJlZS1kaXNhYmxlLWZpbGVzIil7JCgiLmpzdHJlZS1maT0KbGVz
LW1lc3NhZ2UiKS5oaWRlKCk7JCgiLmpzdHJlZS1mb2xkZXJzLW1lc3NhZ2UiKS5zaG93KCk7JCgi
LmpzdHJlZS1saW5rLWZpPQpsZXMiKS5zaG93KCk7JCgiLmpzdHJlZS1wcmVzZXJ2ZS1zdHJ1Y3R1
cmUiKS5zaG93KCk7Zy5kaXNhYmxlZF9qc3RyZWVfZWxlbWU9Cm50PTNEImZpbGVzIjtpLnJlbmRl
ckpzdHJlZShnKX19fSl9LHJlbmRlckpzdHJlZTpmdW5jdGlvbihnKXt2YXIgaT0zRHRoaXM7dD0K
aGlzLm9wdGlvbnM9M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsZyk7dmFyIGo9M0RnLnNvdXJjZXx8
InVzZXJkaXIiO3ZhciBoPTNEPQp0aGlzLm9wdGlvbnMuZGlzYWJsZWRfanN0cmVlX2VsZW1lbnQ7
dGhpcy5qc3RyZWU9M0RuZXcgZC5Kc3RyZWUoKTt0aGlzLmpzdHI9CmVlLnVybD0zRHRoaXMuanN0
cmVlLnVybFJvb3QrIj90YXJnZXQ9M0QiK2orIiZmb3JtYXQ9M0Rqc3RyZWUmZGlzYWJsZT0zRCIr
aD0KO3RoaXMuanN0cmVlLmZldGNoKHtzdWNjZXNzOmZ1bmN0aW9uKGwsayl7ZGVmaW5lKCJqcXVl
cnkiLGZ1bmN0aW9uKCl7cmV0dXJuPQogalF1ZXJ5fSk7cmVxdWlyZShbImxpYnMvanF1ZXJ5L2pz
dHJlZSJdLGZ1bmN0aW9uKG0peyQoIiNqc3RyZWVfYnJvd3NlciIpLmo9CnN0cmVlKCJkZXN0cm95
Iik7JCgiI2pzdHJlZV9icm93c2VyIikuanN0cmVlKHtjb3JlOntkYXRhOmx9LHBsdWdpbnM6WyJ0
eXBlcz0KIiwiY2hlY2tib3giXSx0eXBlczp7Zm9sZGVyOntpY29uOiJqc3RyZWUtZm9sZGVyIn0s
ZmlsZTp7aWNvbjoianN0cmVlLWZpbGUiPQp9fSxjaGVja2JveDp7dGhyZWVfc3RhdGU6ZmFsc2V9
fSl9KX0sZXJyb3I6ZnVuY3Rpb24obCxrKXtpZih0eXBlb2Ygay5yZXNwb249CnNlSlNPTiE9M0Q9
M0QidW5kZWZpbmVkIil7Zi5lcnJvcihrLnJlc3BvbnNlSlNPTi5lcnJfbXNnKX1lbHNle2YuZXJy
b3IoIkFuID0KZXJyb3Igb2N1cnJlZC4iKX19fSl9LGltcG9ydEZyb21QYXRoc0NsaWNrZWQ6ZnVu
Y3Rpb24oKXt2YXIgZz0zRHRoaXMubW9kYWwuPQokZWwuZmluZCgiLnByZXNlcnZlLWNoZWNrYm94
IikuaXMoIjpjaGVja2VkIik7dmFyIG49M0R0aGlzLm1vZGFsLiRlbC5maW5kKCI9Ci5saW5rLWNo
ZWNrYm94IikuaXMoIjpjaGVja2VkIik7dmFyIGg9M0R0aGlzLnNlbGVjdF9leHRlbnNpb24udmFs
dWUoKTt2YXIgaj0KPTNEdGhpcy5zZWxlY3RfZ2Vub21lLnZhbHVlKCk7dmFyIG09M0QkKCJ0ZXh0
YXJlYSNpbXBvcnRfcGF0aHMiKS52YWwoKTt2YXIgPQpsPTNEW107aWYoIW0pe2YuaW5mbygiUGxl
YXNlIGVudGVyIGEgcGF0aCByZWxhdGl2ZSB0byBHYWxheHkgcm9vdC4iKX1lbHNle3Q9Cmhpcy5t
b2RhbC5kaXNhYmxlQnV0dG9uKCJJbXBvcnQiKTttPTNEbS5zcGxpdCgiXG4iKTtmb3IodmFyIGs9
M0RtLmxlbmd0aC0xOz0Kaz49M0QwO2stLSl7dHJpbW1lZD0zRG1ba10udHJpbSgpO2lmKHRyaW1t
ZWQubGVuZ3RoIT0zRD0zRDApe2wucHVzaCh0cmltbWVkPQopfX10aGlzLmluaXRDaGFpbkNhbGxD
b250cm9sKHtsZW5ndGg6bC5sZW5ndGgsYWN0aW9uOiJhZGRpbmdfZGF0YXNldHMifSk7dGg9Cmlz
LmNoYWluQ2FsbEltcG9ydGluZ0ZvbGRlcnMoe3BhdGhzOmwscHJlc2VydmVfZGlyczpnLGxpbmtf
ZGF0YTpuLHNvdXJjZToiYT0KZG1pbl9wYXRoIixmaWxlX3R5cGU6aCxkYmtleTpqfSl9fSxpbml0
Q2hhaW5DYWxsQ29udHJvbDpmdW5jdGlvbihnKXt2YXIgaDtzPQp3aXRjaChnLmFjdGlvbil7Y2Fz
ZSJhZGRpbmdfZGF0YXNldHMiOmg9M0R0aGlzLnRlbXBsYXRlQWRkaW5nRGF0YXNldHNQcm9ncmU9
CnNzQmFyKCk7dGhpcy5tb2RhbC4kZWwuZmluZCgiLm1vZGFsLWJvZHkiKS5odG1sKGgoe2ZvbGRl
cl9uYW1lOnRoaXMub3B0aW9ucz0KLmZvbGRlcl9uYW1lfSkpO2JyZWFrO2Nhc2UiZGVsZXRpbmdf
ZGF0YXNldHMiOmg9M0R0aGlzLnRlbXBsYXRlRGVsZXRpbmdEYXRhPQpzZXRzUHJvZ3Jlc3NCYXIo
KTt0aGlzLm1vZGFsLiRlbC5maW5kKCIubW9kYWwtYm9keSIpLmh0bWwoaCgpKTticmVhaztjYXNl
InQ9Cm9faGlzdG9yeSI6aD0zRHRoaXMudGVtcGxhdGVJbXBvcnRJbnRvSGlzdG9yeVByb2dyZXNz
QmFyKCk7dGhpcy5tb2RhbC4kZWwuZj0KaW5kKCIubW9kYWwtYm9keSIpLmh0bWwoaCh7aGlzdG9y
eV9uYW1lOmcuaGlzdG9yeV9uYW1lfSkpO2JyZWFrO2RlZmF1bHQ6Y29uPQpzb2xlLmVycm9yKCJX
cm9uZyBhY3Rpb24gc3BlY2lmaWVkLiIpO2JyZWFrfXRoaXMucHJvZ3Jlc3M9M0QwO3RoaXMucHJv
Z3Jlc3M9ClN0ZXA9M0QxMDAvZy5sZW5ndGg7dGhpcy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJv
bC50b3RhbF9udW1iZXI9M0RnLmxlbmd0aD0KO3RoaXMub3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRy
b2wuZmFpbGVkX251bWJlcj0zRDB9LGltcG9ydEZyb21Kc3RyZWVQYXRoOmZ1PQpuY3Rpb24obixy
KXt2YXIgZz0zRCQoIiNqc3RyZWVfYnJvd3NlciIpLmpzdHJlZSgpLmdldF9zZWxlY3RlZCh0cnVl
KTt2YXIgbT0KPTNEdGhpcy5tb2RhbC4kZWwuZmluZCgiLnByZXNlcnZlLWNoZWNrYm94IikuaXMo
IjpjaGVja2VkIik7dmFyIG89M0R0aGlzLm1vPQpkYWwuJGVsLmZpbmQoIi5saW5rLWNoZWNrYm94
IikuaXMoIjpjaGVja2VkIik7dmFyIGo9M0R0aGlzLnNlbGVjdF9leHRlbnNpb249Ci52YWx1ZSgp
O3ZhciBwPTNEdGhpcy5zZWxlY3RfZ2Vub21lLnZhbHVlKCk7dmFyIGs9M0RnWzBdLnR5cGU7dmFy
IHE9M0RbXTtpZj0KKGcubGVuZ3RoPDEpe2YuaW5mbygiUGxlYXNlIHNlbGVjdCBzb21lIGl0ZW1z
IGZpcnN0LiIpfWVsc2V7dGhpcy5tb2RhbC5kaXNhPQpibGVCdXR0b24oIkltcG9ydCIpO2Zvcih2
YXIgbD0zRGcubGVuZ3RoLTE7bD49M0QwO2wtLSl7aWYoZ1tsXS5saV9hdHRyLmZ1bGw9Cl9wYXRo
IT0zRD0zRHVuZGVmaW5lZCl7cS5wdXNoKGdbbF0ubGlfYXR0ci5mdWxsX3BhdGgpfX10aGlzLmlu
aXRDaGFpbkNhbGxDbz0KbnRyb2woe2xlbmd0aDpxLmxlbmd0aCxhY3Rpb246ImFkZGluZ19kYXRh
c2V0cyJ9KTtpZihrPTNEPTNEPTNEImZvbGRlciIpe3ZhPQpyIGg9M0RyLnNvdXJjZSsiX2ZvbGRl
ciI7dGhpcy5jaGFpbkNhbGxJbXBvcnRpbmdGb2xkZXJzKHtwYXRoczpxLHByZXNlcnZlX2Q9Cmly
czptLGxpbmtfZGF0YTpvLHNvdXJjZTpoLGZpbGVfdHlwZTpqLGRia2V5OnB9KX1lbHNle2lmKGs9
M0Q9M0Q9M0QiZmlsZSIpez0KdmFyIGg9M0RyLnNvdXJjZSsiX2ZpbGUiO3RoaXMuY2hhaW5DYWxs
SW1wb3J0aW5nVXNlcmRpckZpbGVzKHtwYXRoczpxLGZpbGVfPQp0eXBlOmosZGJrZXk6cCxzb3Vy
Y2U6aH0pfX19fSxmZXRjaEFuZERpc3BsYXlIaXN0b3J5Q29udGVudHM6ZnVuY3Rpb24oaSl7dmE9
CnIgaD0zRG5ldyBkLkhpc3RvcnlDb250ZW50cyh7aWQ6aX0pO3ZhciBnPTNEdGhpcztoLmZldGNo
KHtzdWNjZXNzOmZ1bmN0aW9uKD0Kayl7dmFyIGo9M0RnLnRlbXBsYXRlSGlzdG9yeUNvbnRlbnRz
KCk7Zy5oaXN0b3JpZXMuZ2V0KGkpLnNldCh7Y29udGVudHM6a30pPQo7Zy5tb2RhbC4kZWwuZmlu
ZCgiI3NlbGVjdGVkX2hpc3RvcnlfY29udGVudCIpLmh0bWwoaih7aGlzdG9yeV9jb250ZW50czpr
Lm09Cm9kZWxzLnJldmVyc2UoKX0pKX0sZXJyb3I6ZnVuY3Rpb24oayxqKXtpZih0eXBlb2Ygai5y
ZXNwb25zZUpTT04hPTNEPTNEInVuZD0KZWZpbmVkIil7Zi5lcnJvcihqLnJlc3BvbnNlSlNPTi5l
cnJfbXNnKX1lbHNle2YuZXJyb3IoIkFuIGVycm9yIG9jdXJyZWQuIil9PQp9fSl9LGFkZEFsbERh
dGFzZXRzRnJvbUhpc3Rvcnk6ZnVuY3Rpb24oKXt2YXIgbD0zRHRoaXMubW9kYWwuJGVsLmZpbmQo
IiNzZWw9CmVjdGVkX2hpc3RvcnlfY29udGVudCIpLmZpbmQoIjpjaGVja2VkIik7dmFyIGc9M0Rb
XTt2YXIgaz0zRFtdO2lmKGwubGVuZ3RoPD0KMSl7Zi5pbmZvKCJZb3UgbXVzdCBzZWxlY3Qgc29t
ZSBkYXRhc2V0cyBmaXJzdC4iKX1lbHNle3RoaXMubW9kYWwuZGlzYWJsZUJ1PQp0dG9uKCJBZGQi
KTtsLmVhY2goZnVuY3Rpb24oKXt2YXIgaT0zRCQodGhpcy5wYXJlbnRFbGVtZW50KS5kYXRhKCJp
ZCIpO2lmKGk9Cil7Zy5wdXNoKGkpfX0pO2Zvcih2YXIgaj0zRGcubGVuZ3RoLTE7aj49M0QwO2ot
LSl7aGlzdG9yeV9kYXRhc2V0X2lkPTNEZ1tqXT0KO3ZhciBoPTNEbmV3IGQuSXRlbSgpO2gudXJs
PTNEKHdpbmRvdy5nYWxheHlfY29uZmlnP2dhbGF4eV9jb25maWcucm9vdDoiLyIpPQorImFwaS9m
b2xkZXJzLyIrdGhpcy5vcHRpb25zLmlkKyIvY29udGVudHMiO2guc2V0KHtmcm9tX2hkYV9pZDpo
aXN0b3J5X2RhdGE9CnNldF9pZH0pO2sucHVzaChoKX10aGlzLmluaXRDaGFpbkNhbGxDb250cm9s
KHtsZW5ndGg6ay5sZW5ndGgsYWN0aW9uOiJhZGRpbj0KZ19kYXRhc2V0cyJ9KTt0aGlzLmNoYWlu
Q2FsbEFkZGluZ0hkYXMoayl9fSxjaGFpbkNhbGxJbXBvcnRpbmdJbnRvSGlzdG9yeTpmPQp1bmN0
aW9uKGgsayl7dmFyIGc9M0R0aGlzO3ZhciBpPTNEaC5wb3AoKTtpZih0eXBlb2YgaT0zRD0zRCJ1
bmRlZmluZWQiKXtpZig9CnRoaXMub3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFpbGVkX251
bWJlcj0zRD0zRD0zRDApe2Yuc3VjY2VzcygiU2VsZWN0ZT0KZCBkYXRhc2V0cyBpbXBvcnRlZCBp
bnRvIGhpc3RvcnkuIENsaWNrIHRoaXMgdG8gc3RhcnQgYW5hbHlzaW5nIGl0LiIsIiIse29uPQpj
bGljazpmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbj0zRCIvIn19KX1lbHNle2lmKHRoaXMub3B0
aW9ucy5jaGFpbl9jYWxsX2M9Cm9udHJvbC5mYWlsZWRfbnVtYmVyPTNEPTNEPTNEdGhpcy5vcHRp
b25zLmNoYWluX2NhbGxfY29udHJvbC50b3RhbF9udW1iZXIpez0KZi5lcnJvcigiVGhlcmUgd2Fz
IGFuIGVycm9yIGFuZCBubyBkYXRhc2V0cyB3ZXJlIGltcG9ydGVkIGludG8gaGlzdG9yeS4iKX1l
PQpsc2V7aWYodGhpcy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVyPHRo
aXMub3B0aW9ucy5jaGFpbl9jYWw9CmxfY29udHJvbC50b3RhbF9udW1iZXIpe2Yud2FybmluZygi
U29tZSBvZiB0aGUgZGF0YXNldHMgY291bGQgbm90IGJlIGltcG9ydD0KZWQgaW50byBoaXN0b3J5
LiBDbGljayB0aGlzIHRvIHNlZSB3aGF0IHdhcyBpbXBvcnRlZC4iLCIiLHtvbmNsaWNrOmZ1bmN0
aW9uPQooKXt3aW5kb3cubG9jYXRpb249M0QiLyJ9fSl9fX1HYWxheHkubW9kYWwuaGlkZSgpO3Jl
dHVybiB0cnVlfXZhciBqPTNEJC53aGU9Cm4oaS5zYXZlKHtjb250ZW50OmkuY29udGVudCxzb3Vy
Y2U6aS5zb3VyY2V9KSk7ai5kb25lKGZ1bmN0aW9uKCl7Zy51cGRhdGVQcj0Kb2dyZXNzKCk7Zy5j
aGFpbkNhbGxJbXBvcnRpbmdJbnRvSGlzdG9yeShoLGspfSkuZmFpbChmdW5jdGlvbigpe2cub3B0
aW9ucy5jPQpoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVyKz0zRDE7Zy51cGRhdGVQcm9n
cmVzcygpO2cuY2hhaW5DYWxsSW1wb3J0aW49CmdJbnRvSGlzdG9yeShoLGspfSl9LGNoYWluQ2Fs
bEltcG9ydGluZ1VzZXJkaXJGaWxlczpmdW5jdGlvbihnKXt2YXIgaD0zRHRoaT0Kczt2YXIgaT0z
RGcucGF0aHMucG9wKCk7aWYodHlwZW9mIGk9M0Q9M0Q9M0QidW5kZWZpbmVkIil7aWYodGhpcy5v
cHRpb25zLmNoPQphaW5fY2FsbF9jb250cm9sLmZhaWxlZF9udW1iZXI9M0Q9M0Q9M0QwKXtmLnN1
Y2Nlc3MoIlNlbGVjdGVkIGZpbGVzIGltcG9ydGU9CmQgaW50byB0aGUgY3VycmVudCBmb2xkZXIi
KTtHYWxheHkubW9kYWwuaGlkZSgpfWVsc2V7Zi5lcnJvcigiQW4gZXJyb3Igb2NjdT0KcmVkLiIp
fXJldHVybiB0cnVlfXZhciBqPTNEJC53aGVuKCQucG9zdCgod2luZG93LmdhbGF4eV9jb25maWc/
Z2FsYXh5X2NvbmZpPQpnLnJvb3Q6Ii8iKSsiYXBpL2xpYnJhcmllcy9kYXRhc2V0cz9lbmNvZGVk
X2ZvbGRlcl9pZD0zRCIraC5pZCsiJnNvdXJjZT0zRCI9CitnLnNvdXJjZSsiJnBhdGg9M0QiK2kr
IiZmaWxlX3R5cGU9M0QiK2cuZmlsZV90eXBlKyImZGJrZXk9M0QiK2cuZGJrZXkpKTtqLj0KZG9u
ZShmdW5jdGlvbihrKXtoLnVwZGF0ZVByb2dyZXNzKCk7aC5jaGFpbkNhbGxJbXBvcnRpbmdVc2Vy
ZGlyRmlsZXMoZyl9KS5mPQphaWwoZnVuY3Rpb24oKXtoLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250
cm9sLmZhaWxlZF9udW1iZXIrPTNEMTtoLnVwZGF0ZVByb2c9CnJlc3MoKTtoLmNoYWluQ2FsbElt
cG9ydGluZ1VzZXJkaXJGaWxlcyhnKX0pfSxjaGFpbkNhbGxJbXBvcnRpbmdGb2xkZXJzOmZ1bj0K
Y3Rpb24oZyl7dmFyIGg9M0R0aGlzO3ZhciBpPTNEZy5wYXRocy5wb3AoKTtpZih0eXBlb2YgaT0z
RD0zRCJ1bmRlZmluZWQiKXtpPQpmKHRoaXMub3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFp
bGVkX251bWJlcj0zRD0zRD0zRDApe2Yuc3VjY2VzcygiU2VsZWM9CnRlZCBmb2xkZXJzIGFuZCB0
aGVpciBjb250ZW50cyBpbXBvcnRlZCBpbnRvIHRoZSBjdXJyZW50IGZvbGRlci4iKTtHYWxheHku
bT0Kb2RhbC5oaWRlKCl9ZWxzZXtmLmVycm9yKCJBbiBlcnJvciBvY2N1cmVkLiIpfXJldHVybiB0
cnVlfXZhciBqPTNEJC53aGVuKCQuPQpwb3N0KCh3aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlf
Y29uZmlnLnJvb3Q6Ii8iKSsiYXBpL2xpYnJhcmllcy9kYXRhc2V0cz89CmVuY29kZWRfZm9sZGVy
X2lkPTNEIitoLmlkKyImc291cmNlPTNEIitnLnNvdXJjZSsiJnBhdGg9M0QiK2krIiZwcmVzZXJ2
ZV9kaT0KcnM9M0QiK2cucHJlc2VydmVfZGlycysiJmxpbmtfZGF0YT0zRCIrZy5saW5rX2RhdGEr
IiZmaWxlX3R5cGU9M0QiK2cuZmlsZV90PQp5cGUrIiZkYmtleT0zRCIrZy5kYmtleSkpO2ouZG9u
ZShmdW5jdGlvbihrKXtoLnVwZGF0ZVByb2dyZXNzKCk7aC5jaGFpbkNhbGw9CkltcG9ydGluZ0Zv
bGRlcnMoZyl9KS5mYWlsKGZ1bmN0aW9uKCl7aC5vcHRpb25zLmNoYWluX2NhbGxfY29udHJvbC5m
YWlsZWRfbj0KdW1iZXIrPTNEMTtoLnVwZGF0ZVByb2dyZXNzKCk7aC5jaGFpbkNhbGxJbXBvcnRp
bmdGb2xkZXJzKGcpfSl9LGNoYWluQ2FsbEFkPQpkaW5nSGRhczpmdW5jdGlvbihoKXt2YXIgZz0z
RHRoaXM7dGhpcy5hZGRlZF9oZGFzPTNEbmV3IGQuRm9sZGVyKCk7dmFyIGk9M0Q9CmgucG9wKCk7
aWYodHlwZW9mIGk9M0Q9M0QidW5kZWZpbmVkIil7aWYodGhpcy5vcHRpb25zLmNoYWluX2NhbGxf
Y29udHJvbC5mYT0KaWxlZF9udW1iZXI9M0Q9M0Q9M0QwKXtmLnN1Y2Nlc3MoIlNlbGVjdGVkIGRh
dGFzZXRzIGZyb20gaGlzdG9yeSBhZGRlZCB0byB0PQpoZSBmb2xkZXIiKX1lbHNle2lmKHRoaXMu
b3B0aW9ucy5jaGFpbl9jYWxsX2NvbnRyb2wuZmFpbGVkX251bWJlcj0zRD0zRD0zRHQ9Cmhpcy5v
cHRpb25zLmNoYWluX2NhbGxfY29udHJvbC50b3RhbF9udW1iZXIpe2YuZXJyb3IoIlRoZXJlIHdh
cyBhbiBlcnJvciBhbj0KZCBubyBkYXRhc2V0cyB3ZXJlIGFkZGVkIHRvIHRoZSBmb2xkZXIuIil9
ZWxzZXtpZih0aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jPQpvbnRyb2wuZmFpbGVkX251bWJlcjx0
aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLnRvdGFsX251bWJlcil7Zi53YXJuaW49Cmco
IlNvbWUgb2YgdGhlIGRhdGFzZXRzIGNvdWxkIG5vdCBiZSBhZGRlZCB0byB0aGUgZm9sZGVyIil9
fX1HYWxheHkubW9kYWwuaD0KaWRlKCk7cmV0dXJuIHRoaXMuYWRkZWRfaGRhc312YXIgaj0zRCQu
d2hlbihpLnNhdmUoe2Zyb21faGRhX2lkOmkuZ2V0KCJmcm9tPQpfaGRhX2lkIil9KSk7ai5kb25l
KGZ1bmN0aW9uKGspe0dhbGF4eS5saWJyYXJpZXMuZm9sZGVyTGlzdFZpZXcuY29sbGVjdGlvbi49
CmFkZChrKTtnLnVwZGF0ZVByb2dyZXNzKCk7Zy5jaGFpbkNhbGxBZGRpbmdIZGFzKGgpfSkuZmFp
bChmdW5jdGlvbigpe2cub3B0aT0Kb25zLmNoYWluX2NhbGxfY29udHJvbC5mYWlsZWRfbnVtYmVy
Kz0zRDE7Zy51cGRhdGVQcm9ncmVzcygpO2cuY2hhaW5DYWxsQWRkPQppbmdIZGFzKGgpfSl9LGNo
YWluQ2FsbERlbGV0aW5nSGRhczpmdW5jdGlvbihoKXt2YXIgZz0zRHRoaXM7dGhpcy5kZWxldGVk
X2w9CmRkYXM9M0RuZXcgZC5Gb2xkZXIoKTt2YXIgaT0zRGgucG9wKCk7aWYodHlwZW9mIGk9M0Q9
M0Q9M0QidW5kZWZpbmVkIil7aWYodD0KaGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLmZh
aWxlZF9udW1iZXI9M0Q9M0Q9M0QwKXtmLnN1Y2Nlc3MoIlNlbGVjdGVkPQogZGF0YXNldHMgd2Vy
ZSBkZWxldGVkLiIpfWVsc2V7aWYodGhpcy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJvbC5mYWls
ZWRfbnU9Cm1iZXI9M0Q9M0Q9M0R0aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLnRvdGFs
X251bWJlcil7Zi5lcnJvcigiVGhlcmUgdz0KYXMgYW4gZXJyb3IgYW5kIG5vIGRhdGFzZXRzIHdl
cmUgZGVsZXRlZC4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBzdWZmaWNpPQplbnQgcGVybWlz
c2lvbnMuIil9ZWxzZXtpZih0aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLmZhaWxlZF9u
dW1iZXI8dGg9CmlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLnRvdGFsX251bWJlcil7Zi53
YXJuaW5nKCJTb21lIG9mIHRoZSBkYXRhc2V0cz0KIGNvdWxkIG5vdCBiZSBkZWxldGVkLiBQbGVh
c2UgbWFrZSBzdXJlIHlvdSBoYXZlIHN1ZmZpY2llbnQgcGVybWlzc2lvbnMuIil9PQp9fUdhbGF4
eS5tb2RhbC5oaWRlKCk7cmV0dXJuIHRoaXMuZGVsZXRlZF9sZGRhc312YXIgaj0zRCQud2hlbihp
LmRlc3Ryb3koKSk9CjtqLmRvbmUoZnVuY3Rpb24obCl7R2FsYXh5LmxpYnJhcmllcy5mb2xkZXJM
aXN0Vmlldy5jb2xsZWN0aW9uLnJlbW92ZShpLmlkKT0KO2cudXBkYXRlUHJvZ3Jlc3MoKTtpZihH
YWxheHkubGlicmFyaWVzLmZvbGRlckxpc3RWaWV3Lm9wdGlvbnMuaW5jbHVkZV9kZWxlPQp0ZWQp
e3ZhciBrPTNEbmV3IGQuSXRlbShsKTtHYWxheHkubGlicmFyaWVzLmZvbGRlckxpc3RWaWV3LmNv
bGxlY3Rpb24uYWRkKGs9Cil9Zy5jaGFpbkNhbGxEZWxldGluZ0hkYXMoaCl9KS5mYWlsKGZ1bmN0
aW9uKCl7Zy5vcHRpb25zLmNoYWluX2NhbGxfY29udHJvbD0KLmZhaWxlZF9udW1iZXIrPTNEMTtn
LnVwZGF0ZVByb2dyZXNzKCk7Zy5jaGFpbkNhbGxEZWxldGluZ0hkYXMoaCl9KX0sY2hlY2tJPQpu
Y2x1ZGVEZWxldGVkOmZ1bmN0aW9uKGcpe2lmKGcudGFyZ2V0LmNoZWNrZWQpe0dhbGF4eS5saWJy
YXJpZXMuZm9sZGVyTGlzdFY9Cmlldy5mZXRjaEZvbGRlcih7aW5jbHVkZV9kZWxldGVkOnRydWV9
KX1lbHNle0dhbGF4eS5saWJyYXJpZXMuZm9sZGVyTGlzdFZpZT0Kdy5mZXRjaEZvbGRlcih7aW5j
bHVkZV9kZWxldGVkOmZhbHNlfSl9fSxkZWxldGVTZWxlY3RlZERhdGFzZXRzOmZ1bmN0aW9uKCl7
PQp2YXIgZz0zRCQoIiNmb2xkZXJfdGFibGUiKS5maW5kKCI6Y2hlY2tlZCIpO2lmKGcubGVuZ3Ro
PTNEPTNEPTNEMCl7Zi5pbmZvKCI9CllvdSBtdXN0IHNlbGVjdCBhdCBsZWFzdCBvbmUgZGF0YXNl
dCBmb3IgZGVsZXRpb24uIil9ZWxzZXt2YXIgaz0zRHRoaXMudGVtcD0KbGF0ZURlbGV0aW5nRGF0
YXNldHNQcm9ncmVzc0JhcigpO3RoaXMubW9kYWw9M0RHYWxheHkubW9kYWw7dGhpcy5tb2RhbC5z
aG93PQooe2Nsb3NpbmdfZXZlbnRzOnRydWUsdGl0bGU6IkRlbGV0aW5nIHNlbGVjdGVkIGRhdGFz
ZXRzIixib2R5Omsoe30pLGJ1dHRvbnM9Cjp7Q2xvc2U6ZnVuY3Rpb24oKXtHYWxheHkubW9kYWwu
aGlkZSgpfX19KTt0aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLj0KdG90YWxfbnVtYmVy
PTNEMDt0aGlzLm9wdGlvbnMuY2hhaW5fY2FsbF9jb250cm9sLmZhaWxlZF9udW1iZXI9M0QwO3Zh
ciBoPTNEPQpbXTtnLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLnBhcmVudEVsZW1lbnQucGFyZW50
RWxlbWVudC5pZCE9M0Q9M0QiIil7aC5wdXM9CmgodGhpcy5wYXJlbnRFbGVtZW50LnBhcmVudEVs
ZW1lbnQuaWQpfX0pO3RoaXMucHJvZ3Jlc3NTdGVwPTNEMTAwL2gubGVuZ3RoOz0KdGhpcy5wcm9n
cmVzcz0zRDA7dmFyIG09M0RbXTtmb3IodmFyIGo9M0RoLmxlbmd0aC0xO2o+PTNEMDtqLS0pe3Zh
ciBsPTNEbmV3PQogZC5JdGVtKHtpZDpoW2pdfSk7bS5wdXNoKGwpfXRoaXMub3B0aW9ucy5jaGFp
bl9jYWxsX2NvbnRyb2wudG90YWxfbnVtYmVyPQo9M0RoLmxlbmd0aDt0aGlzLmNoYWluQ2FsbERl
bGV0aW5nSGRhcyhtKX19LHNob3dMaWJJbmZvOmZ1bmN0aW9uKCl7dmFyIGg9M0Q9CkdhbGF4eS5s
aWJyYXJpZXMuZm9sZGVyTGlzdFZpZXcuZm9sZGVyQ29udGFpbmVyLmF0dHJpYnV0ZXMubWV0YWRh
dGEucGFyZW50Xz0KbGlicmFyeV9pZDt2YXIgZz0zRG51bGw7dmFyIGk9M0R0aGlzO2lmKEdhbGF4
eS5saWJyYXJpZXMubGlicmFyeUxpc3RWaWV3IT0KPTNEPTNEbnVsbCl7Zz0zREdhbGF4eS5saWJy
YXJpZXMubGlicmFyeUxpc3RWaWV3LmNvbGxlY3Rpb24uZ2V0KGgpO3RoaXMuc2hvPQp3TGliSW5m
b01vZGFsKGcpfWVsc2V7Zz0zRG5ldyBkLkxpYnJhcnkoe2lkOmh9KTtnLmZldGNoKHtzdWNjZXNz
OmZ1bmN0aW9uKCk9CntpLnNob3dMaWJJbmZvTW9kYWwoZyl9LGVycm9yOmZ1bmN0aW9uKGssail7
aWYodHlwZW9mIGoucmVzcG9uc2VKU09OIT0zRD0zRD0KInVuZGVmaW5lZCIpe2YuZXJyb3Ioai5y
ZXNwb25zZUpTT04uZXJyX21zZyl9ZWxzZXtmLmVycm9yKCJBbiBlcnJvciBvY3VycmVkPQouIil9
fX0pfX0sc2hvd0xpYkluZm9Nb2RhbDpmdW5jdGlvbihnKXt2YXIgaD0zRHRoaXMudGVtcGxhdGVM
aWJJbmZvSW5Nb2RhbCg9Cik7dGhpcy5tb2RhbD0zREdhbGF4eS5tb2RhbDt0aGlzLm1vZGFsLnNo
b3coe2Nsb3NpbmdfZXZlbnRzOnRydWUsdGl0bGU6IkxpYj0KcmFyeSBJbmZvcm1hdGlvbiIsYm9k
eTpoKHtsaWJyYXJ5Omd9KSxidXR0b25zOntDbG9zZTpmdW5jdGlvbigpe0dhbGF4eS5tb2RhPQps
LmhpZGUoKX19fSl9LHNob3dJbXBvcnRNb2RhbDpmdW5jdGlvbihnKXtzd2l0Y2goZy5zb3VyY2Up
e2Nhc2UiaGlzdG9yeSI6dGg9CmlzLmFkZEZpbGVzRnJvbUhpc3RvcnlNb2RhbCgpO2JyZWFrO2Nh
c2UiaW1wb3J0ZGlyIjp0aGlzLmltcG9ydEZpbGVzRnJvbUdhbD0KYXh5Rm9sZGVyTW9kYWwoe3Nv
dXJjZToiaW1wb3J0ZGlyIn0pO2JyZWFrO2Nhc2UicGF0aCI6dGhpcy5pbXBvcnRGaWxlc0Zyb21Q
PQphdGhNb2RhbCgpO2JyZWFrO2Nhc2UidXNlcmRpciI6dGhpcy5pbXBvcnRGaWxlc0Zyb21HYWxh
eHlGb2xkZXJNb2RhbCh7c291cmM9CmU6InVzZXJkaXIifSk7YnJlYWs7ZGVmYXVsdDpHYWxheHku
bGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKTtmLmVycm9yKD0KIkludmFsaWQgaW1wb3J0
IHNvdXJjZS4iKTticmVha319LHNob3dQYWdlU2l6ZVByb21wdDpmdW5jdGlvbigpe3ZhciBnPTNE
cHJvPQptcHQoIkhvdyBtYW55IGl0ZW1zIHBlciBwYWdlIGRvIHlvdSB3YW50IHRvIHNlZT8iLEdh
bGF4eS5saWJyYXJpZXMucHJlZmVyZW49CmNlcy5nZXQoImZvbGRlcl9wYWdlX3NpemUiKSk7aWYo
KGchPTNEbnVsbCkmJihnPTNEPTNEcGFyc2VJbnQoZykpKXtHYWxheHkubD0KaWJyYXJpZXMucHJl
ZmVyZW5jZXMuc2V0KHtmb2xkZXJfcGFnZV9zaXplOnBhcnNlSW50KGcpfSk7R2FsYXh5LmxpYnJh
cmllcy5mPQpvbGRlckxpc3RWaWV3LnJlbmRlcih7aWQ6dGhpcy5vcHRpb25zLmlkLHNob3dfcGFn
ZToxfSl9fSx0ZW1wbGF0ZVRvb2xCYXI6ZnU9Cm5jdGlvbigpe3RtcGxfYXJyYXk9M0RbXTt0bXBs
X2FycmF5LnB1c2goJzxkaXYgY2xhc3M9M0QibGlicmFyeV9zdHlsZV9jb250YT0KaW5lciI+Jyk7
dG1wbF9hcnJheS5wdXNoKCcgPGRpdiBpZD0zRCJsaWJyYXJ5X3Rvb2xiYXIiPicpO3RtcGxfYXJy
YXkucHVzaCgiPQogICA8c3Bhbj48c3Ryb25nPkRBVEEgTElCUkFSSUVTPC9zdHJvbmc+PC9zcGFu
PiIpO3RtcGxfYXJyYXkucHVzaCgnICAgPHNwYW49CiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBk
YXRhLXBsYWNlbWVudD0zRCJ0b3AiIGNsYXNzPTNEImxvZ2dlZC1kYXRhc2V0LW1hbj0KaXB1bGF0
aW9uIiB0aXRsZT0zRCJJbmNsdWRlIGRlbGV0ZWQgZGF0YXNldHMiIHN0eWxlPTNEImRpc3BsYXk6
bm9uZTsiPiB8IDxpPQpucHV0IGlkPTNEImluY2x1ZGVfZGVsZXRlZF9kYXRhc2V0c19jaGsiIHN0
eWxlPTNEIm1hcmdpbjogMDsiIHR5cGU9M0QiY2hlY2s9CmJveCI+IGluY2x1ZGUgZGVsZXRlZCB8
IDwvaW5wdXQ+PC9zcGFuPicpO3RtcGxfYXJyYXkucHVzaCgnICAgPGJ1dHRvbiBzdHlsZT0KPTNE
ImRpc3BsYXk6bm9uZTsiIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNE
InRvcCIgdGl0bGU9M0QiPQpDcmVhdGUgTmV3IEZvbGRlciIgaWQ9M0QidG9vbGJ0bl9jcmVhdGVf
Zm9sZGVyIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgcHI9CmltYXJ5LWJ1dHRvbiBhZGQtbGli
cmFyeS1pdGVtcyIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLXBsdXMiPj0K
PC9zcGFuPjxzcGFuIGNsYXNzPTNEImZhIGZhLWZvbGRlciI+PC9zcGFuPjwvYnV0dG9uPicpO3Rt
cGxfYXJyYXkucHVzaCgiPCUgPQppZihtdXRpcGxlX2FkZF9kYXRhc2V0X29wdGlvbnMpIHsgJT4i
KTt0bXBsX2FycmF5LnB1c2goJyAgIDxkaXYgY2xhc3M9M0QiYnQ9Cm4tZ3JvdXAgYWRkLWxpYnJh
cnktaXRlbXMiIHN0eWxlPTNEImRpc3BsYXk6bm9uZTsiPicpO3RtcGxfYXJyYXkucHVzaCgnICAg
ID0KIDxidXR0b24gdGl0bGU9M0QiQWRkIERhdGFzZXRzIHRvIEN1cnJlbnQgRm9sZGVyIiBpZD0z
RCIiIHR5cGU9M0QiYnV0dG9uIiBjPQpsYXNzPTNEInByaW1hcnktYnV0dG9uIGRyb3Bkb3duLXRv
Z2dsZSIgZGF0YS10b2dnbGU9M0QiZHJvcGRvd24iPicpO3RtcGxfYXI9CnJheS5wdXNoKCcgICAg
IDxzcGFuIGNsYXNzPTNEImZhIGZhLXBsdXMiPjwvc3Bhbj48c3BhbiBjbGFzcz0zRCJmYSBmYS1m
aWxlIj0KPjwvc3Bhbj48c3BhbiBjbGFzcz0zRCJjYXJldCI+PC9zcGFuPicpO3RtcGxfYXJyYXku
cHVzaCgiICAgICA8L2J1dHRvbj4iKTt0PQptcGxfYXJyYXkucHVzaCgnICAgICA8dWwgY2xhc3M9
M0QiZHJvcGRvd24tbWVudSIgcm9sZT0zRCJtZW51Ij4nKTt0bXBsX2FycmE9CnkucHVzaCgnICAg
ICAgICA8bGk+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9pbXBvcnQvaGlzdG9yeSI+
IGZyb20gSD0KaXN0b3J5PC9hPjwvbGk+Jyk7dG1wbF9hcnJheS5wdXNoKCI8JSBpZihHYWxheHku
Y29uZmlnLnVzZXJfbGlicmFyeV9pbXBvcnRfPQpkaXIgIT0zRD0zRCBudWxsKSB7ICU+Iik7dG1w
bF9hcnJheS5wdXNoKCcgICAgICAgIDxsaT48YSBocmVmPTNEIiNmb2xkZXJzLzw9CiU9M0QgaWQg
JT4vaW1wb3J0L3VzZXJkaXIiPiBmcm9tIFVzZXIgRGlyZWN0b3J5PC9hPjwvbGk+Jyk7dG1wbF9h
cnJheS5wdXNoKD0KIjwlIH0gJT4iKTt0bXBsX2FycmF5LnB1c2goIjwlIGlmKEdhbGF4eS5jb25m
aWcuYWxsb3dfbGlicmFyeV9wYXRoX3Bhc3RlKSB7PQogJT4iKTt0bXBsX2FycmF5LnB1c2goJyAg
IDxsaSBjbGFzcz0zRCJkaXZpZGVyIj48L2xpPicpO3RtcGxfYXJyYXkucHVzaCgnICA9CiA8bGkg
Y2xhc3M9M0QiZHJvcGRvd24taGVhZGVyIj5BZG1pbnMgb25seTwvbGk+Jyk7dG1wbF9hcnJheS5w
dXNoKCI8JSBpZihHYT0KbGF4eS5jb25maWcubGlicmFyeV9pbXBvcnRfZGlyICE9M0Q9M0QgbnVs
bCkgeyAlPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgPGxpPQo+PGEgaHJlZj0zRCIjZm9sZGVycy88
JT0zRCBpZCAlPi9pbXBvcnQvaW1wb3J0ZGlyIj5mcm9tIEltcG9ydCBEaXJlY3Rvcnk8L2E9Cj48
L2xpPicpO3RtcGxfYXJyYXkucHVzaCgiPCUgfSAlPiIpO3RtcGxfYXJyYXkucHVzaCgiPCUgaWYo
R2FsYXh5LmNvbmZpZy5hbD0KbG93X2xpYnJhcnlfcGF0aF9wYXN0ZSkgeyAlPiIpO3RtcGxfYXJy
YXkucHVzaCgnICAgICAgICA8bGk+PGEgaHJlZj0zRCIjZm9sPQpkZXJzLzwlPTNEIGlkICU+L2lt
cG9ydC9wYXRoIj5mcm9tIFBhdGg8L2E+PC9saT4nKTt0bXBsX2FycmF5LnB1c2goIjwlIH0gJT49
CiIpO3RtcGxfYXJyYXkucHVzaCgiPCUgfSAlPiIpO3RtcGxfYXJyYXkucHVzaCgiICAgICA8L3Vs
PiIpO3RtcGxfYXJyYXkucHVzaD0KKCIgICA8L2Rpdj4iKTt0bXBsX2FycmF5LnB1c2goIjwlIH0g
ZWxzZSB7ICU+Iik7dG1wbF9hcnJheS5wdXNoKCcgPGEgIGRhdGEtPQpwbGFjZW1lbnQ9M0QidG9w
IiB0aXRsZT0zRCJBZGQgRGF0YXNldHMgdG8gQ3VycmVudCBGb2xkZXIiIHN0eWxlPTNEImRpc3Bs
YXk9Cjpub25lOyIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0IGFkZC1saWJyYXJ5LWl0ZW1zIiBo
cmVmPTNEIiNmb2xkZXJzLzwlPTNEID0KaWQgJT4vaW1wb3J0L2hpc3RvcnkiIHJvbGU9M0QiYnV0
dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1wbHVzIj48L3NwYW4+PHNwPQphbiBjbGFzcz0zRCJm
YSBmYS1maWxlIj48L3NwYW4+PC9zcGFuPjwvYT4nKTt0bXBsX2FycmF5LnB1c2goIjwlIH0gJT4i
KTt0bXA9CmxfYXJyYXkucHVzaCgnICA8YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRh
dGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bD0KZT0zRCJJbXBvcnQgc2VsZWN0ZWQgZGF0YXNldHMg
aW50byBoaXN0b3J5IiBpZD0zRCJ0b29sYnRuX2J1bGtfaW1wb3J0IiBjbGFzPQpzPTNEInByaW1h
cnktYnV0dG9uIGRhdGFzZXQtbWFuaXB1bGF0aW9uIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDogMC41
ZW07IGRpc3A9CmxheTpub25lOyIgdHlwZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZh
LWJvb2siPjwvc3Bhbj4gdG8gSGlzdG9yeTwvYj0KdXR0b24+Jyk7dG1wbF9hcnJheS5wdXNoKCcg
ICA8ZGl2IGlkPTNEInRvb2xidG5fZGwiIGNsYXNzPTNEImJ0bi1ncm91cCBkYXRhPQpzZXQtbWFu
aXB1bGF0aW9uIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDogMC41ZW07IGRpc3BsYXk6bm9uZTsgIj4n
KTt0bXBsX2FycmE9CnkucHVzaCgnICAgICA8YnV0dG9uIHRpdGxlPTNEIkRvd25sb2FkIHNlbGVj
dGVkIGRhdGFzZXRzIGFzIGFyY2hpdmUiIGlkPTNEIj0KZHJvcF90b2dnbGUiIHR5cGU9M0QiYnV0
dG9uIiBjbGFzcz0zRCJwcmltYXJ5LWJ1dHRvbiBkcm9wZG93bi10b2dnbGUiIGRhdGEtPQp0b2dn
bGU9M0QiZHJvcGRvd24iPicpO3RtcGxfYXJyYXkucHVzaCgnICAgICA8c3BhbiBjbGFzcz0zRCJm
YSBmYS1kb3dubG9hZCI9Cj48L3NwYW4+IERvd25sb2FkIDxzcGFuIGNsYXNzPTNEImNhcmV0Ij48
L3NwYW4+Jyk7dG1wbF9hcnJheS5wdXNoKCIgICAgIDwvYj0KdXR0b24+Iik7dG1wbF9hcnJheS5w
dXNoKCcgICAgIDx1bCBjbGFzcz0zRCJkcm9wZG93bi1tZW51IiByb2xlPTNEIm1lbnUiPicpPQo7
dG1wbF9hcnJheS5wdXNoKCcgICAgICAgIDxsaT48YSBocmVmPTNEIiMvZm9sZGVycy88JT0zRCBp
ZCAlPi9kb3dubG9hZC90Z3o9CiI+LnRhci5nejwvYT48L2xpPicpO3RtcGxfYXJyYXkucHVzaCgn
ICAgICAgICA8bGk+PGEgaHJlZj0zRCIjL2ZvbGRlcnMvPCU9Cj0zRCBpZCAlPi9kb3dubG9hZC90
YnoiPi50YXIuYno8L2E+PC9saT4nKTt0bXBsX2FycmF5LnB1c2goJyAgICAgICAgPGxpPjxhID0K
aHJlZj0zRCIjL2ZvbGRlcnMvPCU9M0QgaWQgJT4vZG93bmxvYWQvemlwIj4uemlwPC9hPjwvbGk+
Jyk7dG1wbF9hcnJheS5wdXNoPQooIiAgICAgPC91bD4iKTt0bXBsX2FycmF5LnB1c2goIiAgIDwv
ZGl2PiIpO3RtcGxfYXJyYXkucHVzaCgnICAgPGJ1dHRvbiBkYXQ9CmEtdG9nZ2xlPTNEInRvb2x0
aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiTWFyayBzZWxlY3RlZCBkYXRhc2V0
cz0KIGRlbGV0ZWQiIGlkPTNEInRvb2xidG5fYnVsa19kZWxldGUiIGNsYXNzPTNEInByaW1hcnkt
YnV0dG9uIGxvZ2dlZC1kYXRhc2V0PQotbWFuaXB1bGF0aW9uIiBzdHlsZT0zRCJtYXJnaW4tbGVm
dDogMC41ZW07IGRpc3BsYXk6bm9uZTsgIiB0eXBlPTNEImJ1dHRvbiI9Cj48c3BhbiBjbGFzcz0z
RCJmYSBmYS10aW1lcyI+PC9zcGFuPiBEZWxldGU8L2J1dHRvbj4nKTt0bXBsX2FycmF5LnB1c2go
JyAgID0KPGJ1dHRvbiBkYXRhLWlkPTNEIjwlLSBpZCAlPiIgZGF0YS10b2dnbGU9M0QidG9vbHRp
cCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wPQoiIHRpdGxlPTNEIlNob3cgbGlicmFyeSBpbmZvcm1h
dGlvbiIgaWQ9M0QidG9vbGJ0bl9zaG93X2xpYmluZm8iIGNsYXNzPTNEInA9CnJpbWFyeS1idXR0
b24iIHN0eWxlPTNEIm1hcmdpbi1sZWZ0OiAwLjVlbTsiIHR5cGU9M0QiYnV0dG9uIj48c3BhbiBj
bGFzcz0zRD0KImZhIGZhLWluZm8tY2lyY2xlIj48L3NwYW4+IExpYnJhcnkgSW5mbzwvYnV0dG9u
PicpO3RtcGxfYXJyYXkucHVzaCgnICAgPHNwPQphbiBjbGFzcz0zRCJoZWxwLWJ1dHRvbiIgZGF0
YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXQ9CmxlPTNEIlZp
c2l0IExpYnJhcmllcyBXaWtpIj48YSBocmVmPTNEImh0dHBzOi8vd2lraS5nYWxheHlwcm9qZWN0
Lm9yZy9EYXRhTD0KaWJyYXJpZXMvc2NyZWVuL0ZvbGRlckNvbnRlbnRzIiB0YXJnZXQ9M0QiX2Js
YW5rIj48YnV0dG9uIGNsYXNzPTNEInByaW1hcnktPQpidXR0b24iIHR5cGU9M0QiYnV0dG9uIj48
c3BhbiBjbGFzcz0zRCJmYSBmYS1xdWVzdGlvbi1jaXJjbGUiPjwvc3Bhbj4gSGVscDw9Ci9idXR0
b24+PC9hPjwvc3Bhbj4nKTt0bXBsX2FycmF5LnB1c2goJyAgICAgICAgICA8c3BhbiBpZD0zRCJm
b2xkZXJfcGFnaW5hdD0Kb3IiIGNsYXNzPTNEImxpYnJhcnktcGFnaW5hdG9yIj4nKTt0bXBsX2Fy
cmF5LnB1c2goIiAgICAgICAgICA8L3NwYW4+Iik7dG1wPQpsX2FycmF5LnB1c2goIiA8L2Rpdj4i
KTt0bXBsX2FycmF5LnB1c2goJyA8ZGl2IGlkPTNEImZvbGRlcl9pdGVtc19lbGVtZW50Ij49Cicp
O3RtcGxfYXJyYXkucHVzaCgiIDwvZGl2PiIpO3RtcGxfYXJyYXkucHVzaCgiPC9kaXY+Iik7cmV0
dXJuIF8udGVtcGxhdGUodD0KbXBsX2FycmF5LmpvaW4oIiIpKX0sdGVtcGxhdGVMaWJJbmZvSW5N
b2RhbDpmdW5jdGlvbigpe3RtcGxfYXJyYXk9M0RbXTt0bXBsPQpfYXJyYXkucHVzaCgnPGRpdiBp
ZD0zRCJsaWZfaW5mb19tb2RhbCI+Jyk7dG1wbF9hcnJheS5wdXNoKCI8aDI+TGlicmFyeSBuYW09
CmU6PC9oMj4iKTt0bXBsX2FycmF5LnB1c2goJzxwPjwlLSBsaWJyYXJ5LmdldCgibmFtZSIpICU+
PC9wPicpO3RtcGxfYXJyYXkucD0KdXNoKCI8aDM+TGlicmFyeSBkZXNjcmlwdGlvbjo8L2gzPiIp
O3RtcGxfYXJyYXkucHVzaCgnPHA+PCUtIGxpYnJhcnkuZ2V0KCJkPQplc2NyaXB0aW9uIikgJT48
L3A+Jyk7dG1wbF9hcnJheS5wdXNoKCI8aDM+TGlicmFyeSBzeW5vcHNpczo8L2gzPiIpO3RtcGxf
YXI9CnJheS5wdXNoKCc8cD48JS0gbGlicmFyeS5nZXQoInN5bm9wc2lzIikgJT48L3A+Jyk7dG1w
bF9hcnJheS5wdXNoKCI8L2Rpdj4iKT0KO3JldHVybiBfLnRlbXBsYXRlKHRtcGxfYXJyYXkuam9p
bigiIikpfSx0ZW1wbGF0ZU5ld0ZvbGRlckluTW9kYWw6ZnVuY3Rpb24oPQope3RtcGxfYXJyYXk9
M0RbXTt0bXBsX2FycmF5LnB1c2goJzxkaXYgaWQ9M0QibmV3X2ZvbGRlcl9tb2RhbCI+Jyk7dG1w
bF9hcnI9CmF5LnB1c2goIjxmb3JtPiIpO3RtcGxfYXJyYXkucHVzaCgnPGlucHV0IHR5cGU9M0Qi
dGV4dCIgbmFtZT0zRCJOYW1lIiB2YWx1ZT0KPTNEIiIgcGxhY2Vob2xkZXI9M0QiTmFtZSI+Jyk7
dG1wbF9hcnJheS5wdXNoKCc8aW5wdXQgdHlwZT0zRCJ0ZXh0IiBuYW1lPTNEPQoiRGVzY3JpcHRp
b24iIHZhbHVlPTNEIiIgcGxhY2Vob2xkZXI9M0QiRGVzY3JpcHRpb24iPicpO3RtcGxfYXJyYXku
cHVzaCgiPC89CmZvcm0+Iik7dG1wbF9hcnJheS5wdXNoKCI8L2Rpdj4iKTtyZXR1cm4gXy50ZW1w
bGF0ZSh0bXBsX2FycmF5LmpvaW4oIiIpKX0sdD0KZW1wbGF0ZUJ1bGtJbXBvcnRJbk1vZGFsOmZ1
bmN0aW9uKCl7dmFyIGc9M0RbXTtnLnB1c2goJzxzcGFuIGlkPTNEImhpc3RvcnlfPQptb2RhbF9j
b21ib19idWxrIiBzdHlsZT0zRCJ3aWR0aDo5MCU7IG1hcmdpbi1sZWZ0OiAxZW07IG1hcmdpbi1y
aWdodDogMWVtOyA9CiI+Jyk7Zy5wdXNoKCJTZWxlY3QgaGlzdG9yeTogIik7Zy5wdXNoKCc8c2Vs
ZWN0IGlkPTNEImRhdGFzZXRfaW1wb3J0X2J1bGsiID0KbmFtZT0zRCJkYXRhc2V0X2ltcG9ydF9i
dWxrIiBzdHlsZT0zRCJ3aWR0aDo1MCU7IG1hcmdpbi1ib3R0b206IDFlbTsgIj4gJyk7PQpnLnB1
c2goIiAgIDwlIF8uZWFjaChoaXN0b3JpZXMsIGZ1bmN0aW9uKGhpc3RvcnkpIHsgJT4iKTtnLnB1
c2goJyAgICAgICA8b3A9CnRpb24gdmFsdWU9M0QiPCU9M0QgXy5lc2NhcGUoaGlzdG9yeS5nZXQo
ImlkIikpICU+Ij48JT0zRCBfLmVzY2FwZShoaXN0b3J5Lj0KZ2V0KCJuYW1lIikpICU+PC9vcHRp
b24+Jyk7Zy5wdXNoKCIgICA8JSB9KTsgJT4iKTtnLnB1c2goIjwvc2VsZWN0PiIpO2cucHVzPQpo
KCI8L3NwYW4+Iik7cmV0dXJuIF8udGVtcGxhdGUoZy5qb2luKCIiKSl9LHRlbXBsYXRlSW1wb3J0
SW50b0hpc3RvcnlQcm9ncmU9CnNzQmFyOmZ1bmN0aW9uKCl7dmFyIGc9M0RbXTtnLnB1c2goJzxk
aXYgY2xhc3M9M0QiaW1wb3J0X3RleHQiPicpO2cucHVzaCgiST0KbXBvcnRpbmcgc2VsZWN0ZWQg
ZGF0YXNldHMgdG8gaGlzdG9yeSA8Yj48JT0zRCBfLmVzY2FwZShoaXN0b3J5X25hbWUpICU+PC9i
PQo+Iik7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1c2goJzxkaXYgY2xhc3M9M0QicHJvZ3Jlc3MiPicp
O2cucHVzaCgnICAgPGRpdiBjbGE9CnNzPTNEInByb2dyZXNzLWJhciBwcm9ncmVzcy1iYXItaW1w
b3J0IiByb2xlPTNEInByb2dyZXNzYmFyIiBhcmlhLXZhbHVlbm93PQo9M0QiMCIgYXJpYS12YWx1
ZW1pbj0zRCIwIiBhcmlhLXZhbHVlbWF4PTNEIjEwMCIgc3R5bGU9M0Qid2lkdGg6IDAwJTsiPicp
O2c9Ci5wdXNoKCcgICAgICAgPHNwYW4gY2xhc3M9M0QiY29tcGxldGlvbl9zcGFuIj4wJSBDb21w
bGV0ZTwvc3Bhbj4nKTtnLnB1c2goIj0KICAgPC9kaXY+Iik7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1
c2goIiIpO3JldHVybiBfLnRlbXBsYXRlKGcuam9pbigiIikpfSx0ZW1wPQpsYXRlQWRkaW5nRGF0
YXNldHNQcm9ncmVzc0JhcjpmdW5jdGlvbigpe3ZhciBnPTNEW107Zy5wdXNoKCc8ZGl2IGNsYXNz
PTNEImk9Cm1wb3J0X3RleHQiPicpO2cucHVzaCgiQWRkaW5nIHNlbGVjdGVkIGRhdGFzZXRzIHRv
IGxpYnJhcnkgZm9sZGVyIDxiPjwlPTNEID0KXy5lc2NhcGUoZm9sZGVyX25hbWUpICU+PC9iPiIp
O2cucHVzaCgiPC9kaXY+Iik7Zy5wdXNoKCc8ZGl2IGNsYXNzPTNEInByb2dyPQplc3MiPicpO2cu
cHVzaCgnICAgPGRpdiBjbGFzcz0zRCJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWltcG9ydCIg
cm9sZT0zRCI9CnByb2dyZXNzYmFyIiBhcmlhLXZhbHVlbm93PTNEIjAiIGFyaWEtdmFsdWVtaW49
M0QiMCIgYXJpYS12YWx1ZW1heD0zRCIxMDAiID0Kc3R5bGU9M0Qid2lkdGg6IDAwJTsiPicpO2cu
cHVzaCgnICAgICAgIDxzcGFuIGNsYXNzPTNEImNvbXBsZXRpb25fc3BhbiI+MCUgPQpDb21wbGV0
ZTwvc3Bhbj4nKTtnLnB1c2goIiAgIDwvZGl2PiIpO2cucHVzaCgiPC9kaXY+Iik7Zy5wdXNoKCIi
KTtyZXR1cm4gXy49CnRlbXBsYXRlKGcuam9pbigiIikpfSx0ZW1wbGF0ZURlbGV0aW5nRGF0YXNl
dHNQcm9ncmVzc0JhcjpmdW5jdGlvbigpe3ZhciBnPQo9M0RbXTtnLnB1c2goJzxkaXYgY2xhc3M9
M0QiaW1wb3J0X3RleHQiPicpO2cucHVzaCgiPC9kaXY+Iik7Zy5wdXNoKCc8ZGl2IGM9Cmxhc3M9
M0QicHJvZ3Jlc3MiPicpO2cucHVzaCgnICAgPGRpdiBjbGFzcz0zRCJwcm9ncmVzcy1iYXIgcHJv
Z3Jlc3MtYmFyLWltcD0Kb3J0IiByb2xlPTNEInByb2dyZXNzYmFyIiBhcmlhLXZhbHVlbm93PTNE
IjAiIGFyaWEtdmFsdWVtaW49M0QiMCIgYXJpYS12YWx1PQplbWF4PTNEIjEwMCIgc3R5bGU9M0Qi
d2lkdGg6IDAwJTsiPicpO2cucHVzaCgnICAgICAgIDxzcGFuIGNsYXNzPTNEImNvbXBsZXQ9Cmlv
bl9zcGFuIj4wJSBDb21wbGV0ZTwvc3Bhbj4nKTtnLnB1c2goIiAgIDwvZGl2PiIpO2cucHVzaCgi
PC9kaXY+Iik7Zy5wdXNoKD0KIiIpO3JldHVybiBfLnRlbXBsYXRlKGcuam9pbigiIikpfSx0ZW1w
bGF0ZUJyb3dzZXJNb2RhbDpmdW5jdGlvbigpe3ZhciBnPTNEPQpbXTtnLnB1c2goJzxkaXYgaWQ9
M0QiZmlsZV9icm93c2VyX21vZGFsIj4nKTtnLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWw9
CmVydC1pbmZvIGpzdHJlZS1maWxlcy1tZXNzYWdlIj5BbGwgZmlsZXMgeW91IHNlbGVjdCB3aWxs
IGJlIGltcG9ydGVkIGludG8gdD0KaGUgY3VycmVudCBmb2xkZXIuPC9kaXY+Jyk7Zy5wdXNoKCc8
ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LWluZm8ganN0cmVlLWZvPQpsZGVycy1tZXNzYWdlIiBz
dHlsZT0zRCJkaXNwbGF5Om5vbmU7Ij5BbGwgZmlsZXMgd2l0aGluIHRoZSBzZWxlY3RlZCBmb2xk
ZXI9CnMgYW5kIHRoZWlyIHN1YmZvbGRlcnMgd2lsbCBiZSBpbXBvcnRlZCBpbnRvIHRoZSBjdXJy
ZW50IGZvbGRlci48L2Rpdj4nKTtnLj0KcHVzaCgnPGRpdiBzdHlsZT0zRCJtYXJnaW4tYm90dG9t
OjFlbTsiPicpO2cucHVzaCgnPGxhYmVsIGNsYXNzPTNEInJhZGlvLWluPQpsaW5lIj4nKTtnLnB1
c2goJyAgPGlucHV0IHRpdGxlPTNEIlN3aXRjaCB0byBzZWxlY3RpbmcgZmlsZXMiIHR5cGU9M0Qi
cmFkaW89CiIgbmFtZT0zRCJqc3RyZWUtcmFkaW8iIHZhbHVlPTNEImpzdHJlZS1kaXNhYmxlLWZv
bGRlcnMiIGNoZWNrZWQ9M0QiY2hlY2tlZD0KIj4gRmlsZXMnKTtnLnB1c2goIjwvbGFiZWw+Iik7
Zy5wdXNoKCc8bGFiZWwgY2xhc3M9M0QicmFkaW8taW5saW5lIj4nKTtnLnB1PQpzaCgnICA8aW5w
dXQgdGl0bGU9M0QiU3dpdGNoIHRvIHNlbGVjdGluZyBmb2xkZXJzIiB0eXBlPTNEInJhZGlvIiBu
YW1lPTNEImo9CnN0cmVlLXJhZGlvIiB2YWx1ZT0zRCJqc3RyZWUtZGlzYWJsZS1maWxlcyI+IEZv
bGRlcnMnKTtnLnB1c2goIjwvbGFiZWw+Iik7Zz0KLnB1c2goIjwvZGl2PiIpO2cucHVzaCgnPGRp
diBzdHlsZT0zRCJtYXJnaW4tYm90dG9tOjFlbTsiPicpO2cucHVzaCgnPGxhYmVsPQogY2xhc3M9
M0QiY2hlY2tib3gtaW5saW5lIGpzdHJlZS1wcmVzZXJ2ZS1zdHJ1Y3R1cmUiIHN0eWxlPTNEImRp
c3BsYXk6bm9uZTs9CiI+Jyk7Zy5wdXNoKCcgICA8aW5wdXQgY2xhc3M9M0QicHJlc2VydmUtY2hl
Y2tib3giIHR5cGU9M0QiY2hlY2tib3giIHZhbHVlPQo9M0QicHJlc2VydmVfZGlyZWN0b3J5X3N0
cnVjdHVyZSI+Jyk7Zy5wdXNoKCJQcmVzZXJ2ZSBkaXJlY3Rvcnkgc3RydWN0dXJlIik9CjtnLnB1
c2goIiA8L2xhYmVsPiIpO2cucHVzaCgnPGxhYmVsIGNsYXNzPTNEImNoZWNrYm94LWlubGluZSBq
c3RyZWUtbGluay1maT0KbGVzIiBzdHlsZT0zRCJkaXNwbGF5Om5vbmU7Ij4nKTtnLnB1c2goJyAg
IDxpbnB1dCBjbGFzcz0zRCJsaW5rLWNoZWNrYm94IiB0PQp5cGU9M0QiY2hlY2tib3giIHZhbHVl
PTNEImxpbmtfZmlsZXMiPicpO2cucHVzaCgiTGluayBmaWxlcyBpbnN0ZWFkIG9mIGNvcHk9Cmlu
ZyIpO2cucHVzaCgiIDwvbGFiZWw+Iik7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1c2goJzxkaXYgaWQ9
M0QianN0cmVlX2Jyb3dzZT0KciI+Jyk7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1c2goIjxociAvPiIp
O2cucHVzaCgiPHA+WW91IGNhbiBzZXQgZXh0ZW5zaW9uIHR5PQpwZSBhbmQgZ2Vub21lIGZvciBh
bGwgaW1wb3J0ZWQgZGF0YXNldHMgYXQgb25jZTo8L3A+Iik7Zy5wdXNoKCI8ZGl2PiIpO2cucHU9
CnNoKCdUeXBlOiA8c3BhbiBpZD0zRCJsaWJyYXJ5X2V4dGVuc2lvbl9zZWxlY3QiIGNsYXNzPTNE
ImxpYnJhcnktZXh0ZW5zaW9uLT0Kc2VsZWN0IiAvPicpO2cucHVzaCgnICBHZW5vbWU6IDxzcGFu
IGlkPTNEImxpYnJhcnlfZ2Vub21lX3NlbGVjdCIgY2xhc3M9M0QiPQpsaWJyYXJ5LWdlbm9tZS1z
ZWxlY3QiIC8+Jyk7Zy5wdXNoKCI8L2Rpdj4iKTtnLnB1c2goIjwvZGl2PiIpO3JldHVybiBfLnRl
bXA9CmxhdGUoZy5qb2luKCIiKSl9LHRlbXBsYXRlSW1wb3J0UGF0aE1vZGFsOmZ1bmN0aW9uKCl7
dmFyIGc9M0RbXTtnLnB1c2goJzxkaT0KdiBpZD0zRCJmaWxlX2Jyb3dzZXJfbW9kYWwiPicpO2cu
cHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZvIGpzdHJlPQplLWZvbGRlcnMtbWVz
c2FnZSI+QWxsIGZpbGVzIHdpdGhpbiB0aGUgZ2l2ZW4gZm9sZGVycyBhbmQgdGhlaXIgc3ViZm9s
ZGVycyA9CndpbGwgYmUgaW1wb3J0ZWQgaW50byB0aGUgY3VycmVudCBmb2xkZXIuPC9kaXY+Jyk7
Zy5wdXNoKCc8ZGl2IHN0eWxlPTNEIm1hcj0KZ2luLWJvdHRvbTogMC41ZW07Ij4nKTtnLnB1c2go
JzxsYWJlbCBjbGFzcz0zRCJjaGVja2JveC1pbmxpbmUganN0cmVlLXByZXNlPQpydmUtc3RydWN0
dXJlIj4nKTtnLnB1c2goJyAgIDxpbnB1dCBjbGFzcz0zRCJwcmVzZXJ2ZS1jaGVja2JveCIgdHlw
ZT0zRCJjaGU9CmNrYm94IiB2YWx1ZT0zRCJwcmVzZXJ2ZV9kaXJlY3Rvcnlfc3RydWN0dXJlIj4n
KTtnLnB1c2goIlByZXNlcnZlIGRpcmVjdG9yeT0KIHN0cnVjdHVyZSIpO2cucHVzaCgiIDwvbGFi
ZWw+Iik7Zy5wdXNoKCc8bGFiZWwgY2xhc3M9M0QiY2hlY2tib3gtaW5saW5lIGpzPQp0cmVlLWxp
bmstZmlsZXMiPicpO2cucHVzaCgnICAgPGlucHV0IGNsYXNzPTNEImxpbmstY2hlY2tib3giIHR5
cGU9M0QiY2hlY2s9CmJveCIgdmFsdWU9M0QibGlua19maWxlcyI+Jyk7Zy5wdXNoKCJMaW5rIGZp
bGVzIGluc3RlYWQgb2YgY29weWluZyIpO2cucHVzaD0KKCIgPC9sYWJlbD4iKTtnLnB1c2goIjwv
ZGl2PiIpO2cucHVzaCgnPHRleHRhcmVhIGlkPTNEImltcG9ydF9wYXRocyIgY2xhc3M9Cj0zRCJm
b3JtLWNvbnRyb2wiIHJvd3M9M0QiNSIgcGxhY2Vob2xkZXI9M0QiQWJzb2x1dGUgcGF0aHMgKG9y
IHBhdGhzIHJlbGF0aT0KdmUgdG8gR2FsYXh5IHJvb3QpIHNlcGFyYXRlZCBieSBuZXdsaW5lIj48
L3RleHRhcmVhPicpO2cucHVzaCgiPGhyIC8+Iik7Zy5wPQp1c2goIjxwPllvdSBjYW4gc2V0IGV4
dGVuc2lvbiB0eXBlIGFuZCBnZW5vbWUgZm9yIGFsbCBpbXBvcnRlZCBkYXRhc2V0cyBhdCA9Cm9u
Y2U6PC9wPiIpO2cucHVzaCgiPGRpdj4iKTtnLnB1c2goJ1R5cGU6IDxzcGFuIGlkPTNEImxpYnJh
cnlfZXh0ZW5zaW9uX3NlbD0KZWN0IiBjbGFzcz0zRCJsaWJyYXJ5LWV4dGVuc2lvbi1zZWxlY3Qi
IC8+Jyk7Zy5wdXNoKCcgIEdlbm9tZTogPHNwYW4gaWQ9M0QiPQpsaWJyYXJ5X2dlbm9tZV9zZWxl
Y3QiIGNsYXNzPTNEImxpYnJhcnktZ2Vub21lLXNlbGVjdCIgLz4nKTtnLnB1c2goIjwvZGl2PiI9
Cik7Zy5wdXNoKCI8L2Rpdj4iKTtyZXR1cm4gXy50ZW1wbGF0ZShnLmpvaW4oIiIpKX0sdGVtcGxh
dGVBZGRGaWxlc0Zyb21IaXN0bz0Kcnk6ZnVuY3Rpb24oKXt2YXIgZz0zRFtdO2cucHVzaCgnPGRp
diBpZD0zRCJhZGRfZmlsZXNfbW9kYWwiPicpO2cucHVzaCgnPGRpPQp2IGlkPTNEImhpc3Rvcnlf
bW9kYWxfY29tYm9fYnVsayI+Jyk7Zy5wdXNoKCJTZWxlY3QgaGlzdG9yeTogICIpO2cucHVzaCgn
PHM9CmVsZWN0IGlkPTNEImRhdGFzZXRfYWRkX2J1bGsiIG5hbWU9M0QiZGF0YXNldF9hZGRfYnVs
ayIgc3R5bGU9M0Qid2lkdGg6NjYlOz0KICI+ICcpO2cucHVzaCgiICAgPCUgXy5lYWNoKGhpc3Rv
cmllcywgZnVuY3Rpb24oaGlzdG9yeSkgeyAlPiIpO2cucHVzaCgnICAgPQogICAgPG9wdGlvbiB2
YWx1ZT0zRCI8JT0zRCBfLmVzY2FwZShoaXN0b3J5LmdldCgiaWQiKSkgJT4iPjwlPTNEIF8uZXNj
YXBlKGg9CmlzdG9yeS5nZXQoIm5hbWUiKSkgJT48L29wdGlvbj4nKTtnLnB1c2goIiAgIDwlIH0p
OyAlPiIpO2cucHVzaCgiPC9zZWxlY3Q+Ij0KKTtnLnB1c2goIjwvZGl2PiIpO2cucHVzaCgiPGJy
Lz4iKTtnLnB1c2goJzxkaXYgaWQ9M0Qic2VsZWN0ZWRfaGlzdG9yeV9jb250PQplbnQiPicpO2cu
cHVzaCgiPC9kaXY+Iik7Zy5wdXNoKCI8L2Rpdj4iKTtyZXR1cm4gXy50ZW1wbGF0ZShnLmpvaW4o
IiIpKX0sdGU9Cm1wbGF0ZUhpc3RvcnlDb250ZW50czpmdW5jdGlvbigpe3ZhciBnPTNEW107Zy5w
dXNoKCI8c3Ryb25nPkNob29zZSB0aGUgZGF0YT0Kc2V0cyB0byBpbXBvcnQ6PC9zdHJvbmc+Iik7
Zy5wdXNoKCI8dWw+Iik7Zy5wdXNoKCIgPCUgXy5lYWNoKGhpc3RvcnlfY29udGVuPQp0cywgZnVu
Y3Rpb24oaGlzdG9yeV9pdGVtKSB7ICU+Iik7Zy5wdXNoKCcgPGxpIGRhdGEtaWQ9M0QiPCU9M0Qg
Xy5lc2NhcGUoaGk9CnN0b3J5X2l0ZW0uZ2V0KCJpZCIpKSAlPiI+Jyk7Zy5wdXNoKCcgICA8aW5w
dXQgc3R5bGU9M0QibWFyZ2luOiAwOyIgdHlwZT0zRD0KImNoZWNrYm94Ij48JT0zRCBfLmVzY2Fw
ZShoaXN0b3J5X2l0ZW0uZ2V0KCJoaWQiKSkgJT46IDwlPTNEIF8uZXNjYXBlKGhpc3RvPQpyeV9p
dGVtLmdldCgibmFtZSIpKSAlPicpO2cucHVzaCgiIDwvbGk+Iik7Zy5wdXNoKCIgPCUgfSk7ICU+
Iik7Zy5wdXNoKCI8L3U9Cmw+Iik7cmV0dXJuIF8udGVtcGxhdGUoZy5qb2luKCIiKSl9LHRlbXBs
YXRlUGFnaW5hdG9yOmZ1bmN0aW9uKCl7dG1wbF9hcnJheT0KPTNEW107dG1wbF9hcnJheS5wdXNo
KCcgICA8dWwgY2xhc3M9M0QicGFnaW5hdGlvbiBwYWdpbmF0aW9uLXNtIj4nKTt0bXBsX2FyPQpy
YXkucHVzaCgiICAgICAgIDwlIGlmICggKCBzaG93X3BhZ2UgLSAxICkgPiAwICkgeyAlPiIpO3Rt
cGxfYXJyYXkucHVzaCgiICA9CiAgICAgICAgIDwlIGlmICggKCBzaG93X3BhZ2UgLSAxICkgPiBw
YWdlX2NvdW50ICkgeyAlPiIpO3RtcGxfYXJyYXkucHVzaCgnID0KICAgICAgICAgICAgICA8bGk+
PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWdlLzEiPjxzcGFuIGNsYXNzPTNEImZh
PQogZmEtYW5nbGUtZG91YmxlLWxlZnQiPjwvc3Bhbj48L2E+PC9saT4nKTt0bXBsX2FycmF5LnB1
c2goJyAgICAgICAgICAgICAgIDw9CmxpIGNsYXNzPTNEImRpc2FibGVkIj48YSBocmVmPTNEIiNm
b2xkZXJzLzwlPTNEIGlkICU+L3BhZ2UvPCUgcHJpbnQoIHNob3dfcD0KYWdlICkgJT4iPjwlIHBy
aW50KCBzaG93X3BhZ2UgLSAxICkgJT48L2E+PC9saT4nKTt0bXBsX2FycmF5LnB1c2goIiAgICAg
ICAgPQogICA8JSB9IGVsc2UgeyAlPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgICAgICAgICAgICAg
PGxpPjxhIGhyZWY9M0QiI2ZvbGRlcnM9Ci88JT0zRCBpZCAlPi9wYWdlLzEiPjxzcGFuIGNsYXNz
PTNEImZhIGZhLWFuZ2xlLWRvdWJsZS1sZWZ0Ij48L3NwYW4+PC9hPjwvbD0KaT4nKTt0bXBsX2Fy
cmF5LnB1c2goJyAgICAgICAgICAgICAgIDxsaT48YSBocmVmPTNEIiNmb2xkZXJzLzwlPTNEIGlk
ICU+L3BhPQpnZS88JSBwcmludCggc2hvd19wYWdlIC0gMSApICU+Ij48JSBwcmludCggc2hvd19w
YWdlIC0gMSApICU+PC9hPjwvbGk+Jyk7dG09CnBsX2FycmF5LnB1c2goIiAgICAgICAgICAgPCUg
fSAlPiIpO3RtcGxfYXJyYXkucHVzaCgiICAgICAgIDwlIH0gZWxzZSB7ICU+Ij0KKTt0bXBsX2Fy
cmF5LnB1c2goJyAgICAgICAgICAgPGxpIGNsYXNzPTNEImRpc2FibGVkIj48YSBocmVmPTNEIiNm
b2xkZXJzLzwlPQo9M0QgaWQgJT4vcGFnZS8xIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1hbmdsZS1k
b3VibGUtbGVmdCI+PC9zcGFuPjwvYT48L2xpPic9Cik7dG1wbF9hcnJheS5wdXNoKCcgICAgICAg
ICAgIDxsaSBjbGFzcz0zRCJkaXNhYmxlZCI+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0KPTNEIGlk
ICU+L3BhZ2UvPCUgcHJpbnQoIHNob3dfcGFnZSApICU+Ij48JSBwcmludCggc2hvd19wYWdlIC0g
MSApICU+PC9hPjwvPQpsaT4nKTt0bXBsX2FycmF5LnB1c2goIiAgICAgICA8JSB9ICU+Iik7dG1w
bF9hcnJheS5wdXNoKCcgICAgICAgPGxpIGNsYXNzPQo9M0QiYWN0aXZlIj4nKTt0bXBsX2FycmF5
LnB1c2goJyAgICAgICA8YSBocmVmPTNEIiNmb2xkZXJzLzwlPTNEIGlkICU+L3BhZ2U9Ci88JSBw
cmludCggc2hvd19wYWdlICkgJT4iPjwlIHByaW50KCBzaG93X3BhZ2UgKSAlPjwvYT4nKTt0bXBs
X2FycmF5LnB1c2goIj0KICAgICAgIDwvbGk+Iik7dG1wbF9hcnJheS5wdXNoKCIgICAgICAgPCUg
aWYgKCAoIHNob3dfcGFnZSApIDwgcGFnZV9jb3VudCApPQogeyAlPiIpO3RtcGxfYXJyYXkucHVz
aCgnICAgICAgICAgICA8bGk+PGEgaHJlZj0zRCIjZm9sZGVycy88JT0zRCBpZCAlPi9wYWc9CmUv
PCUgcHJpbnQoIHNob3dfcGFnZSArIDEgKSAlPiI+PCUgcHJpbnQoIHNob3dfcGFnZSArIDEgKSAl
PjwvYT48L2xpPicpO3RtcD0KbF9hcnJheS5wdXNoKCcgICAgICAgICAgIDxsaT48YSBocmVmPTNE
IiNmb2xkZXJzLzwlPTNEIGlkICU+L3BhZ2UvPCUgcHJpbnQoPQogcGFnZV9jb3VudCApICU+Ij48
c3BhbiBjbGFzcz0zRCJmYSBmYS1hbmdsZS1kb3VibGUtcmlnaHQiPjwvc3Bhbj48L2E+PC9saT49
CicpO3RtcGxfYXJyYXkucHVzaCgiICAgICAgIDwlIH0gZWxzZSB7ICU+Iik7dG1wbF9hcnJheS5w
dXNoKCcgICAgICAgICAgIDxsaT0KIGNsYXNzPTNEImRpc2FibGVkIj48YSBocmVmPTNEIiNmb2xk
ZXJzLzwlPTNEIGlkICU+L3BhZ2UvPCUgcHJpbnQoIHNob3dfcGFnPQplICApICU+Ij48JSBwcmlu
dCggc2hvd19wYWdlICsgMSApICU+PC9hPjwvbGk+Jyk7dG1wbF9hcnJheS5wdXNoKCcgICAgICAg
ICA9CiAgPGxpIGNsYXNzPTNEImRpc2FibGVkIj48YSBocmVmPTNEIiNmb2xkZXJzLzwlPTNEIGlk
ICU+L3BhZ2UvPCUgcHJpbnQoIHBhZz0KZV9jb3VudCApICU+Ij48c3BhbiBjbGFzcz0zRCJmYSBm
YS1hbmdsZS1kb3VibGUtcmlnaHQiPjwvc3Bhbj48L2E+PC9saT4nKTt0PQptcGxfYXJyYXkucHVz
aCgiICAgICAgIDwlIH0gJT4iKTt0bXBsX2FycmF5LnB1c2goIiAgIDwvdWw+Iik7dG1wbF9hcnJh
eS5wdXM9CmgoIiAgIDxzcGFuPiIpO3RtcGxfYXJyYXkucHVzaCgnICAgICAgIHNob3dpbmcgPGEg
ZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZD0KYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNE
IkNsaWNrIHRvIGNoYW5nZSB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHBhZ2UiPQogaWQ9M0QicGFn
ZV9zaXplX3Byb21wdCI+PCUtIGl0ZW1zX3Nob3duICU+PC9hPiBvZiA8JS0gdG90YWxfaXRlbXNf
Y291bnQgJT49CiBpdGVtcycpO3RtcGxfYXJyYXkucHVzaCgiICAgPC9zcGFuPiIpO3JldHVybiBf
LnRlbXBsYXRlKHRtcGxfYXJyYXkuam9pbigiIj0KKSl9LH0pO3JldHVybntGb2xkZXJUb29sYmFy
VmlldzpifX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCmRpZmYgLXIgNDlkNTBiY2U0
NjMyMDZmNDQ1MDYzZDJiMjdiMmYyYjM5M2FkYmUxMSAtciAxY2NmNDBiZGFmYTE4NGIzYmUzMWFh
Nz0KYjFlY2RmY2UzYmM3MDVlZmIgc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9saWJyYXJ5L2xp
YnJhcnktbGlicmFyeS12aWV3LmpzCi0tLSBhL3N0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvbGli
cmFyeS9saWJyYXJ5LWxpYnJhcnktdmlldy5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9wYWNrZWQv
bXZjL2xpYnJhcnkvbGlicmFyeS1saWJyYXJ5LXZpZXcuanMKQEAgLTEsMSArMSwxIEBACi1kZWZp
bmUoWyJsaWJzL3RvYXN0ciIsIm12Yy9saWJyYXJ5L2xpYnJhcnktbW9kZWwiLCJtdmMvdWkvdWkt
c2VsZWN0Il0sZnVuYz0KdGlvbihkLGMsYSl7dmFyIGI9M0RCYWNrYm9uZS5WaWV3LmV4dGVuZCh7
ZWw6IiNjZW50ZXIiLG1vZGVsOm51bGwsb3B0aW9uczp7PQp9LGV2ZW50czp7ImNsaWNrIC50b29s
YnRuX3NhdmVfcGVybWlzc2lvbnMiOiJzYXZlUGVybWlzc2lvbnMifSxpbml0aWFsaXplOmY9CnVu
Y3Rpb24oZSl7dGhpcy5vcHRpb25zPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGUpO2lmKHRoaXMu
b3B0aW9ucy5pZCl7dGhpcz0KLmZldGNoTGlicmFyeSgpfX0sZmV0Y2hMaWJyYXJ5OmZ1bmN0aW9u
KGUpe3RoaXMub3B0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0PQppb25zLGUpO3RoaXMubW9kZWw9
M0RuZXcgYy5MaWJyYXJ5KHtpZDp0aGlzLm9wdGlvbnMuaWR9KTt2YXIgZj0zRHRoaXM7dGhpcy49
Cm1vZGVsLmZldGNoKHtzdWNjZXNzOmZ1bmN0aW9uKCl7aWYoZi5vcHRpb25zLnNob3dfcGVybWlz
c2lvbnMpe2Yuc2hvd1Blcm1pcz0Kc2lvbnMoKX1lbHNle2YucmVuZGVyKCl9fSxlcnJvcjpmdW5j
dGlvbihoLGcpe2lmKHR5cGVvZiBnLnJlc3BvbnNlSlNPTiE9M0Q9Cj0zRCJ1bmRlZmluZWQiKXtk
LmVycm9yKGcucmVzcG9uc2VKU09OLmVycl9tc2crIiBDbGljayB0aGlzIHRvIGdvIGJhY2suIiwi
Ij0KLHtvbmNsaWNrOmZ1bmN0aW9uKCl7R2FsYXh5LmxpYnJhcmllcy5saWJyYXJ5X3JvdXRlci5i
YWNrKCl9fSl9ZWxzZXtkLmVycm9yPQooIkFuIGVycm9yIG9jdXJyZWQuIENsaWNrIHRoaXMgdG8g
Z28gYmFjay4iLCIiLHtvbmNsaWNrOmZ1bmN0aW9uKCl7R2FsYXh5Lmw9CmlicmFyaWVzLmxpYnJh
cnlfcm91dGVyLmJhY2soKX19KX19fSl9LHJlbmRlcjpmdW5jdGlvbihlKXskKCIudG9vbHRpcCIp
LnJlbT0Kb3ZlKCk7dGhpcy5vcHRpb25zPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGUpO3ZhciBm
PTNEdGhpcy50ZW1wbGF0ZUxpYnJhcnkoPQopO3RoaXMuJGVsLmh0bWwoZih7aXRlbTp0aGlzLm1v
ZGVsfSkpOyQoIiNjZW50ZXIgW2RhdGEtdG9nZ2xlXSIpLnRvb2x0aXAoKX09CixzaGFyZURhdGFz
ZXQ6ZnVuY3Rpb24oKXtkLmluZm8oIkZlYXR1cmUgY29taW5nIHNvb24uIil9LGdvQmFjazpmdW5j
dGlvbigpez0KR2FsYXh5LmxpYnJhcmllcy5saWJyYXJ5X3JvdXRlci5iYWNrKCl9LHNob3dQZXJt
aXNzaW9uczpmdW5jdGlvbihmKXt0aGlzLm9wPQp0aW9ucz0zRF8uZXh0ZW5kKHRoaXMub3B0aW9u
cyxmKTskKCIudG9vbHRpcCIpLnJlbW92ZSgpO2lmKHRoaXMub3B0aW9ucy5mZXQ9CmNoZWRfcGVy
bWlzc2lvbnMhPTNEPTNEdW5kZWZpbmVkKXtpZih0aGlzLm9wdGlvbnMuZmV0Y2hlZF9wZXJtaXNz
aW9ucy5hY2Nlcz0Kc19saWJyYXJ5X3JvbGVfbGlzdC5sZW5ndGg9M0Q9M0Q9M0QwKXt0aGlzLm1v
ZGVsLnNldCh7aXNfdW5yZXN0cmljdGVkOnRydWV9PQopfWVsc2V7dGhpcy5tb2RlbC5zZXQoe2lz
X3VucmVzdHJpY3RlZDpmYWxzZX0pfX12YXIgaD0zRGZhbHNlO2lmKEdhbGF4eS5jdXI9CnJVc2Vy
KXtoPTNER2FsYXh5LmN1cnJVc2VyLmlzQWRtaW4oKX12YXIgZz0zRHRoaXMudGVtcGxhdGVMaWJy
YXJ5UGVybWlzc2lvbj0KcygpO3RoaXMuJGVsLmh0bWwoZyh7bGlicmFyeTp0aGlzLm1vZGVsLGlz
X2FkbWluOmh9KSk7dmFyIGU9M0R0aGlzO2lmKHRoaXMuPQpvcHRpb25zLmZldGNoZWRfcGVybWlz
c2lvbnM9M0Q9M0Q9M0R1bmRlZmluZWQpeyQuZ2V0KCIvYXBpL2xpYnJhcmllcy8iK2UuaWQ9Cisi
L3Blcm1pc3Npb25zP3Njb3BlPTNEY3VycmVudCIpLmRvbmUoZnVuY3Rpb24oaSl7ZS5wcmVwYXJl
U2VsZWN0Qm94ZXMoe2ZldD0KY2hlZF9wZXJtaXNzaW9uczppfSl9KS5mYWlsKGZ1bmN0aW9uKCl7
ZC5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0PQplbXB0aW5nIHRvIGZldGNoIGxp
YnJhcnkgcGVybWlzc2lvbnMuIil9KX1lbHNle3RoaXMucHJlcGFyZVNlbGVjdEJveGVzKHt9KX09
CiQoIiNjZW50ZXIgW2RhdGEtdG9nZ2xlXSIpLnRvb2x0aXAoKTskKCIjY2VudGVyIikuY3NzKCJv
dmVyZmxvdyIsImF1dG8iKX0sXz0Kc2VyaWFsaXplUm9sZXM6ZnVuY3Rpb24oZyl7dmFyIGU9M0Rb
XTtmb3IodmFyIGY9M0QwO2Y8Zy5sZW5ndGg7ZisrKXtlLnB1c2goPQpnW2ZdWzFdKyI6IitnW2Zd
WzBdKX1yZXR1cm4gZX0scHJlcGFyZVNlbGVjdEJveGVzOmZ1bmN0aW9uKGkpe3RoaXMub3B0aW9u
cz0KPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGkpO3ZhciBlPTNEdGhpcy5vcHRpb25zLmZldGNo
ZWRfcGVybWlzc2lvbnM7dmFyIGc9Cj0zRHRoaXM7dmFyIGY9M0R0aGlzLl9zZXJpYWxpemVSb2xl
cyhlLmFjY2Vzc19saWJyYXJ5X3JvbGVfbGlzdCk7dmFyIGo9M0R0aD0KaXMuX3NlcmlhbGl6ZVJv
bGVzKGUuYWRkX2xpYnJhcnlfaXRlbV9yb2xlX2xpc3QpO3ZhciBoPTNEdGhpcy5fc2VyaWFsaXpl
Um9sPQplcyhlLm1hbmFnZV9saWJyYXJ5X3JvbGVfbGlzdCk7dmFyIGs9M0R0aGlzLl9zZXJpYWxp
emVSb2xlcyhlLm1vZGlmeV9saWJyYXI9Cnlfcm9sZV9saXN0KTtnLmFjY2Vzc1NlbGVjdE9iamVj
dD0zRG5ldyBhLlZpZXcodGhpcy5fY3JlYXRlU2VsZWN0T3B0aW9ucyh0aD0KaXMsImFjY2Vzc19w
ZXJtIixmLHRydWUpKTtnLmFkZFNlbGVjdE9iamVjdD0zRG5ldyBhLlZpZXcodGhpcy5fY3JlYXRl
U2VsZWN0PQpPcHRpb25zKHRoaXMsImFkZF9wZXJtIixqLGZhbHNlKSk7Zy5tYW5hZ2VTZWxlY3RP
YmplY3Q9M0RuZXcgYS5WaWV3KHRoaXMuX2M9CnJlYXRlU2VsZWN0T3B0aW9ucyh0aGlzLCJtYW5h
Z2VfcGVybSIsaCxmYWxzZSkpO2cubW9kaWZ5U2VsZWN0T2JqZWN0PTNEbmV3ID0KYS5WaWV3KHRo
aXMuX2NyZWF0ZVNlbGVjdE9wdGlvbnModGhpcywibW9kaWZ5X3Blcm0iLGssZmFsc2UpKX0sX2Ny
ZWF0ZVNlbGVjPQp0T3B0aW9uczpmdW5jdGlvbihmLGssaSxlKXtlPTNEZT0zRD0zRD0zRHRydWU/
ZTpmYWxzZTt2YXIgaj0zRHttaW5pbXVtSW5wdXQ9Ckxlbmd0aDowLGNzczprLG11bHRpcGxlOnRy
dWUscGxhY2Vob2xkZXI6IkNsaWNrIHRvIHNlbGVjdCBhIHJvbGUiLGNvbnRhaW5lcj0KOmYuJGVs
LmZpbmQoIiMiK2spLGFqYXg6e3VybDoiL2FwaS9saWJyYXJpZXMvIitmLmlkKyIvcGVybWlzc2lv
bnM/c2NvcGU9M0RhPQp2YWlsYWJsZSZpc19saWJyYXJ5X2FjY2Vzcz0zRCIrZSxkYXRhVHlwZToi
anNvbiIscXVpZXRNaWxsaXM6MTAwLGRhdGE6ZnVuY3Q9CmlvbihsLG0pe3JldHVybntxOmwscGFn
ZV9saW1pdDoxMCxwYWdlOm19fSxyZXN1bHRzOmZ1bmN0aW9uKG4sbSl7dmFyIGw9M0QobT0KKjEw
KTxuLnRvdGFsO3JldHVybntyZXN1bHRzOm4ucm9sZXMsbW9yZTpsfX19LGZvcm1hdFJlc3VsdDpm
dW5jdGlvbiBnKGwpe3JlPQp0dXJuIGwubmFtZSsiIHR5cGU6ICIrbC50eXBlfSxmb3JtYXRTZWxl
Y3Rpb246ZnVuY3Rpb24gaChsKXtyZXR1cm4gbC5uYW1lfSw9CmluaXRTZWxlY3Rpb246ZnVuY3Rp
b24obCxuKXt2YXIgbT0zRFtdOyQobC52YWwoKS5zcGxpdCgiLCIpKS5lYWNoKGZ1bmN0aW9uKD0K
KXt2YXIgbz0zRHRoaXMuc3BsaXQoIjoiKTttLnB1c2goe2lkOm9bMF0sbmFtZTpvWzFdfSl9KTtu
KG0pfSxpbml0aWFsRGF0YTppPQosZHJvcGRvd25Dc3NDbGFzczoiYmlnZHJvcCJ9O3JldHVybiBq
fSxjb21pbmdTb29uOmZ1bmN0aW9uKCl7ZC53YXJuaW5nKCJGZWE9CnR1cmUgY29taW5nIHNvb24u
Iil9LGNvcHlUb0NsaXBib2FyZDpmdW5jdGlvbigpe3ZhciBlPTNEQmFja2JvbmUuaGlzdG9yeS5s
bz0KY2F0aW9uLmhyZWY7aWYoZS5sYXN0SW5kZXhPZigiL3Blcm1pc3Npb25zIikhPTNEPTNELTEp
e2U9M0RlLnN1YnN0cigwLGUubGFzPQp0SW5kZXhPZigiL3Blcm1pc3Npb25zIikpfXdpbmRvdy5w
cm9tcHQoIkNvcHkgdG8gY2xpcGJvYXJkOiBDdHJsK0MsIEVudGVyIiw9CmUpfSxtYWtlRGF0YXNl
dFByaXZhdGU6ZnVuY3Rpb24oKXt2YXIgZT0zRHRoaXM7JC5wb3N0KCIvYXBpL2xpYnJhcmllcy9k
YXRhcz0KZXRzLyIrZS5pZCsiL3Blcm1pc3Npb25zP2FjdGlvbj0zRG1ha2VfcHJpdmF0ZSIpLmRv
bmUoZnVuY3Rpb24oZil7ZS5tb2RlbC5zPQpldCh7aXNfdW5yZXN0cmljdGVkOmZhbHNlfSk7ZS5z
aG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6Zn0pO2Quc3U9CmNjZXNzKCJUaGUg
ZGF0YXNldCBpcyBub3cgcHJpdmF0ZSB0byB5b3UuIil9KS5mYWlsKGZ1bmN0aW9uKCl7ZC5lcnJv
cigiQW4gZT0KcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIG1ha2UgZGF0YXNldCBw
cml2YXRlLiIpfSl9LHJlbW92ZURhdGFzZXRSPQplc3RyaWN0aW9uczpmdW5jdGlvbigpe3ZhciBl
PTNEdGhpczskLnBvc3QoIi9hcGkvbGlicmFyaWVzL2RhdGFzZXRzLyIrZS5pZCs9CiIvcGVybWlz
c2lvbnM/YWN0aW9uPTNEcmVtb3ZlX3Jlc3RyaWN0aW9ucyIpLmRvbmUoZnVuY3Rpb24oZil7ZS5t
b2RlbC5zZXQoez0KaXNfdW5yZXN0cmljdGVkOnRydWV9KTtlLnNob3dQZXJtaXNzaW9ucyh7ZmV0
Y2hlZF9wZXJtaXNzaW9uczpmfSk7ZC5zdWNjZXNzPQooIkFjY2VzcyB0byB0aGlzIGRhdGFzZXQg
aXMgbm93IHVucmVzdHJpY3RlZC4iKX0pLmZhaWwoZnVuY3Rpb24oKXtkLmVycm9yKCI9CkFuIGVy
cm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gbWFrZSBkYXRhc2V0IHVucmVzdHJpY3Rl
ZC4iKX0pfSxfZXh0cj0KYWN0SWRzOmZ1bmN0aW9uKGUpe2lkc19saXN0PTNEW107Zm9yKHZhciBm
PTNEZS5sZW5ndGgtMTtmPj0zRDA7Zi0tKXtpZHNfbGlzPQp0LnB1c2goZVtmXS5pZCl9cmV0dXJu
IGlkc19saXN0fSxzYXZlUGVybWlzc2lvbnM6ZnVuY3Rpb24oaCl7dmFyIGc9M0R0aGlzO3Y9CmFy
IGk9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMuYWNjZXNzU2VsZWN0T2JqZWN0LiRlbC5zZWxlY3Qy
KCJkYXRhIikpO3ZhciBlPQo9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMuYWRkU2VsZWN0T2JqZWN0
LiRlbC5zZWxlY3QyKCJkYXRhIikpO3ZhciBqPTNEdGhpcy49Cl9leHRyYWN0SWRzKHRoaXMubWFu
YWdlU2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIikpO3ZhciBmPTNEdGhpcy5fZXh0cj0K
YWN0SWRzKHRoaXMubW9kaWZ5U2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhIikpOyQucG9z
dCgiL2FwaS9saWJyYXJpZXMvPQoiK2cuaWQrIi9wZXJtaXNzaW9ucz9hY3Rpb249M0RzZXRfcGVy
bWlzc2lvbnMiLHsiYWNjZXNzX2lkc1tdIjppLCJhZGRfaWRzW109CiI6ZSwibWFuYWdlX2lkc1td
IjpqLCJtb2RpZnlfaWRzW10iOmYsfSkuZG9uZShmdW5jdGlvbihrKXtnLnNob3dQZXJtaXNzaW9u
cz0KKHtmZXRjaGVkX3Blcm1pc3Npb25zOmt9KTtkLnN1Y2Nlc3MoIlBlcm1pc3Npb25zIHNhdmVk
LiIpfSkuZmFpbChmdW5jdGlvbigpPQp7ZC5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUg
YXR0ZW1wdGluZyB0byBzZXQgbGlicmFyeSBwZXJtaXNzaW9ucy4iKX09Cil9LHRlbXBsYXRlTGli
cmFyeTpmdW5jdGlvbigpe3ZhciBlPTNEW107ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImxpYnJhcnlf
c3R5bD0KZV9jb250YWluZXIiPicpO2UucHVzaCgnICA8ZGl2IGlkPTNEImxpYnJhcnlfdG9vbGJh
ciI+Jyk7ZS5wdXNoKCcgICA8YnV0dG9uPQogZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1w
bGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJNb2RpZnkgbGlicmFyeSBpdGU9Cm0iIGNsYXNzPTNE
ImJ0biBidG4tZGVmYXVsdCB0b29sYnRuX21vZGlmeV9kYXRhc2V0IHByaW1hcnktYnV0dG9uIiB0
eXBlPTNEIj0KYnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1wZW5jaWwiPjwvc3Bhbj4gTW9k
aWZ5PC9zcGFuPjwvYnV0dG9uPicpO2UucHVzPQpoKCcgICA8YSBocmVmPTNEIiNmb2xkZXJzLzwl
LSBpdGVtLmdldCgiZm9sZGVyX2lkIikgJT4vZGF0YXNldHMvPCUtIGl0ZW0uaWQ9CiAlPi9wZXJt
aXNzaW9ucyI+PGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0z
RCJ0b3AiIHRpdD0KbGU9M0QiTWFuYWdlIHBlcm1pc3Npb25zIiBjbGFzcz0zRCJidG4gYnRuLWRl
ZmF1bHQgdG9vbGJ0bl9jaGFuZ2VfcGVybWlzc2lvPQpucyBwcmltYXJ5LWJ1dHRvbiIgdHlwZT0z
RCJidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLWdyb3VwIj48L3NwYW4+IFBlcm09Cmlzc2lv
bnM8L3NwYW4+PC9idXR0b24+PC9hPicpO2UucHVzaCgnICAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0z
RCJ0b29sdGlwIiBkYT0KdGEtcGxhY2VtZW50PTNEInRvcCIgdGl0bGU9M0QiU2hhcmUgZGF0YXNl
dCIgY2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0IHRvb2xiPQp0bi1zaGFyZS1kYXRhc2V0IHByaW1h
cnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtc2hhcmU9CiI+
PC9zcGFuPiBTaGFyZTwvc3Bhbj48L2J1dHRvbj4nKTtlLnB1c2goIiAgPC9kaXY+Iik7ZS5wdXNo
KCIgIDxwPiIpO2UucHVzaD0KKCIgIFRoaXMgZGF0YXNldCBpcyB1bnJlc3RyaWN0ZWQgc28gZXZl
cnlib2R5IGNhbiBhY2Nlc3MgaXQuIEp1c3Qgc2hhcmUgdGhlPQogVVJMIG9mIHRoaXMgcGFnZS4g
Iik7ZS5wdXNoKCcgIDxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW09
CmVudD0zRCJ0b3AiIHRpdGxlPTNEIkNvcHkgdG8gY2xpcGJvYXJkIiBjbGFzcz0zRCJidG4gYnRu
LWRlZmF1bHQgYnRuLWNvcHktbD0KaW5rLXRvLWNsaXBib2FyZCBwcmltYXJ5LWJ1dHRvbiIgdHlw
ZT0zRCJidXR0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLWNsaXBiPQpvYXJkIj48L3NwYW4+IFRv
IENsaXBib2FyZDwvc3Bhbj48L2J1dHRvbj4gJyk7ZS5wdXNoKCIgIDwvcD4iKTtlLnB1c2goJzxk
aXY9CiBjbGFzcz0zRCJkYXRhc2V0X3RhYmxlIj4nKTtlLnB1c2goJyAgIDx0YWJsZSBjbGFzcz0z
RCJncmlkIHRhYmxlIHRhYmxlLXN0cj0KaXBlZCB0YWJsZS1jb25kZW5zZWQiPicpO2UucHVzaCgi
ICAgICAgIDx0cj4iKTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPQo9M0Qicm93IiBpZD0z
RCJpZF9yb3ciIGRhdGEtaWQ9M0QiPCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoImxkZGFfaWQiKSkg
JT4iPk49CmFtZTwvdGg+Jyk7ZS5wdXNoKCcgICAgICAgICAgIDx0ZD48JT0zRCBfLmVzY2FwZShp
dGVtLmdldCgibmFtZSIpKSAlPjwvdGQ+Jz0KKTtlLnB1c2goIiAgICAgICA8L3RyPiIpO2UucHVz
aCgnICAgPCUgaWYgKGl0ZW0uZ2V0KCJmaWxlX2V4dCIpKSB7ICU+Jyk7ZS5wPQp1c2goIiAgICAg
ICA8dHI+Iik7ZS5wdXNoKCcgICAgICAgICAgIDx0aCBzY29wZT0zRCJyb3ciPkRhdGEgdHlwZTwv
dGg+Jyk7ZS49CnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0KCJm
aWxlX2V4dCIpKSAlPjwvdGQ+Jyk7ZS5wdXNoKD0KIiAgICAgICA8L3RyPiIpO2UucHVzaCgiICAg
PCUgfSAlPiIpO2UucHVzaCgiICAgIDwvdGFibGU+Iik7ZS5wdXNoKCI8L2Rpdj4iPQopO2UucHVz
aCgiPC9kaXY+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5qb2luKCIiKSl9LHRlbXBsYXRlTGlicmFy
eVBlcm1pc3Npb249CnM6ZnVuY3Rpb24oKXt2YXIgZT0zRFtdO2UucHVzaCgnPGRpdiBjbGFzcz0z
RCJsaWJyYXJ5X3N0eWxlX2NvbnRhaW5lciI+Jyk7ZT0KLnB1c2goJyAgPGRpdiBpZD0zRCJsaWJy
YXJ5X3Rvb2xiYXIiPicpO2UucHVzaCgnICAgPGEgaHJlZj0zRCIjIj48YnV0dG9uIGRhPQp0YS10
b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJHbyBiYWNr
IHRvIHRoZSBsaXN0IG89CmYgTGlicmFyaWVzIiBjbGFzcz0zRCJidG4gYnRuLWRlZmF1bHQgcHJp
bWFyeS1idXR0b24iIHR5cGU9M0QiYnV0dG9uIj48c3Bhbj0KIGNsYXNzPTNEImZhIGZhLWxpc3Qi
Pjwvc3Bhbj4gTGlicmFyaWVzPC9zcGFuPjwvYnV0dG9uPjwvYT4nKTtlLnB1c2goIiAgPC9kPQpp
dj4iKTtlLnB1c2goJzxoMT5MaWJyYXJ5OiA8JT0zRCBfLmVzY2FwZShsaWJyYXJ5LmdldCgibmFt
ZSIpKSAlPjwvaDE+Jyk7ZS49CnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxlcnQtd2Fybmlu
ZyI+Jyk7ZS5wdXNoKCI8JSBpZiAoaXNfYWRtaW4pIHsgJT4iKT0KO2UucHVzaCgiWW91IGFyZSBs
b2dnZWQgaW4gYXMgYW4gPHN0cm9uZz5hZG1pbmlzdHJhdG9yPC9zdHJvbmc+IHRoZXJlZm9yZSB5
PQpvdSBjYW4gbWFuYWdlIGFueSBsaWJyYXJ5IG9uIHRoaXMgR2FsYXh5IGluc3RhbmNlLiBQbGVh
c2UgbWFrZSBzdXJlIHlvdSB1bmQ9CmVyc3RhbmQgdGhlIGNvbnNlcXVlbmNlcy4iKTtlLnB1c2go
IjwlIH0gZWxzZSB7ICU+Iik7ZS5wdXNoKCJZb3UgY2FuIGFzc2lnbj0KIGFueSBudW1iZXIgb2Yg
cm9sZXMgdG8gYW55IG9mIHRoZSBmb2xsb3dpbmcgcGVybWlzc2lvbiB0eXBlcy4gSG93ZXZlciBw
bGVhPQpzZSByZWFkIGNhcmVmdWxseSB0aGUgaW1wbGljYXRpb25zIG9mIHN1Y2ggYWN0aW9ucy4i
KTtlLnB1c2goIjwlIH0lPiIpO2UucHU9CnNoKCI8L2Rpdj4iKTtlLnB1c2goJzxkaXYgY2xhc3M9
M0QiZGF0YXNldF90YWJsZSI+Jyk7ZS5wdXNoKCI8aDI+TGlicmFyeSBwZT0Kcm1pc3Npb25zPC9o
Mj4iKTtlLnB1c2goIjxoND5Sb2xlcyB0aGF0IGNhbiBhY2Nlc3MgdGhlIGxpYnJhcnk8L2g0PiIp
O2UucHVzPQpoKCc8ZGl2IGlkPTNEImFjY2Vzc19wZXJtIiBjbGFzcz0zRCJhY2Nlc3NfcGVybSBy
b2xlcy1zZWxlY3Rpb24iPjwvZGl2PicpO2U9Ci5wdXNoKCc8ZGl2IGNsYXNzPTNEImFsZXJ0IGFs
ZXJ0LWluZm8gcm9sZXMtc2VsZWN0aW9uIj5Vc2VyIHdpdGggPHN0cm9uZz5hbj0KeTwvc3Ryb25n
PiBvZiB0aGVzZSByb2xlcyBjYW4gYWNjZXNzIHRoaXMgbGlicmFyeS4gSWYgdGhlcmUgYXJlIG5v
IGFjY2VzcyByPQpvbGVzIHNldCBvbiB0aGUgbGlicmFyeSBpdCBpcyBjb25zaWRlcmVkIDxzdHJv
bmc+dW5yZXN0cmljdGVkPC9zdHJvbmc+LjwvZGk9CnY+Jyk7ZS5wdXNoKCI8aDQ+Um9sZXMgdGhh
dCBjYW4gbWFuYWdlIHBlcm1pc3Npb25zIG9uIHRoaXMgbGlicmFyeTwvaDQ+Iik7ZT0KLnB1c2go
JzxkaXYgaWQ9M0QibWFuYWdlX3Blcm0iIGNsYXNzPTNEIm1hbmFnZV9wZXJtIHJvbGVzLXNlbGVj
dGlvbiI+PC9kaXY+PQonKTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxlcnQtaW5mbyBy
b2xlcy1zZWxlY3Rpb24iPlVzZXIgd2l0aCA8c3Ryb249Cmc+YW55PC9zdHJvbmc+IG9mIHRoZXNl
IHJvbGVzIGNhbiBtYW5hZ2UgcGVybWlzc2lvbnMgb24gdGhpcyBsaWJyYXJ5IChpbmNsdT0KZGVz
IGdpdmluZyBhY2Nlc3MpLjwvZGl2PicpO2UucHVzaCgiPGg0PlJvbGVzIHRoYXQgY2FuIGFkZCBp
dGVtcyB0byB0aGlzIGxpPQpicmFyeTwvaDQ+Iik7ZS5wdXNoKCc8ZGl2IGlkPTNEImFkZF9wZXJt
IiBjbGFzcz0zRCJhZGRfcGVybSByb2xlcy1zZWxlY3Rpb249CiI+PC9kaXY+Jyk7ZS5wdXNoKCc8
ZGl2IGNsYXNzPTNEImFsZXJ0IGFsZXJ0LWluZm8gcm9sZXMtc2VsZWN0aW9uIj5Vc2VyIHdpdD0K
aCA8c3Ryb25nPmFueTwvc3Ryb25nPiBvZiB0aGVzZSByb2xlcyBjYW4gYWRkIGl0ZW1zIHRvIHRo
aXMgbGlicmFyeSAoZm9sZGVyPQpzIGFuZCBkYXRhc2V0cykuPC9kaXY+Jyk7ZS5wdXNoKCI8aDQ+
Um9sZXMgdGhhdCBjYW4gbW9kaWZ5IHRoaXMgbGlicmFyeTwvaDQ9Cj4iKTtlLnB1c2goJzxkaXYg
aWQ9M0QibW9kaWZ5X3Blcm0iIGNsYXNzPTNEIm1vZGlmeV9wZXJtIHJvbGVzLXNlbGVjdGlvbiI+
PD0KL2Rpdj4nKTtlLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxlcnQtaW5mbyByb2xlcy1z
ZWxlY3Rpb24iPlVzZXIgd2l0aCA8PQpzdHJvbmc+YW55PC9zdHJvbmc+IG9mIHRoZXNlIHJvbGVz
IGNhbiBtb2RpZnkgdGhpcyBsaWJyYXJ5IChuYW1lLCBzeW5vcHNpcyw9CiBldGMuKS48L2Rpdj4n
KTtlLnB1c2goJzxidXR0b24gZGF0YS10b2dnbGU9M0QidG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9
M0QidD0Kb3AiIHRpdGxlPTNEIlNhdmUgbW9kaWZpY2F0aW9ucyBtYWRlIG9uIHRoaXMgcGFnZSIg
Y2xhc3M9M0QiYnRuIGJ0bi1kZWZhdWx0PQogdG9vbGJ0bl9zYXZlX3Blcm1pc3Npb25zIHByaW1h
cnktYnV0dG9uIiB0eXBlPTNEImJ1dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmE9CiBmYS1mbG9wcHkt
byI+PC9zcGFuPiBTYXZlPC9zcGFuPjwvYnV0dG9uPicpO2UucHVzaCgiPC9kaXY+Iik7ZS5wdXNo
KCI8L2Rpdj0KPiIpO3JldHVybiBfLnRlbXBsYXRlKGUuam9pbigiIikpfX0pO3JldHVybntMaWJy
YXJ5VmlldzpifX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RlZmluZShbImxpYnMv
dG9hc3RyIiwibXZjL2xpYnJhcnkvbGlicmFyeS1tb2RlbCIsIm12Yy91aS91aS1zZWxlY3QiXSxm
dW5jPQp0aW9uKGQsYyxhKXt2YXIgYj0zREJhY2tib25lLlZpZXcuZXh0ZW5kKHtlbDoiI2NlbnRl
ciIsbW9kZWw6bnVsbCxvcHRpb25zOns9Cn0sZXZlbnRzOnsiY2xpY2sgLnRvb2xidG5fc2F2ZV9w
ZXJtaXNzaW9ucyI6InNhdmVQZXJtaXNzaW9ucyJ9LGluaXRpYWxpemU6Zj0KdW5jdGlvbihlKXt0
aGlzLm9wdGlvbnM9M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsZSk7aWYodGhpcy5vcHRpb25zLmlk
KXt0aGlzPQouZmV0Y2hMaWJyYXJ5KCl9fSxmZXRjaExpYnJhcnk6ZnVuY3Rpb24oZSl7dGhpcy5v
cHRpb25zPTNEXy5leHRlbmQodGhpcy5vcHQ9CmlvbnMsZSk7dGhpcy5tb2RlbD0zRG5ldyBjLkxp
YnJhcnkoe2lkOnRoaXMub3B0aW9ucy5pZH0pO3ZhciBmPTNEdGhpczt0aGlzLj0KbW9kZWwuZmV0
Y2goe3N1Y2Nlc3M6ZnVuY3Rpb24oKXtpZihmLm9wdGlvbnMuc2hvd19wZXJtaXNzaW9ucyl7Zi5z
aG93UGVybWlzPQpzaW9ucygpfWVsc2V7Zi5yZW5kZXIoKX19LGVycm9yOmZ1bmN0aW9uKGgsZyl7
aWYodHlwZW9mIGcucmVzcG9uc2VKU09OIT0zRD0KPTNEInVuZGVmaW5lZCIpe2QuZXJyb3IoZy5y
ZXNwb25zZUpTT04uZXJyX21zZysiIENsaWNrIHRoaXMgdG8gZ28gYmFjay4iLCIiPQose29uY2xp
Y2s6ZnVuY3Rpb24oKXtHYWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX19KX1l
bHNle2QuZXJyb3I9CigiQW4gZXJyb3Igb2N1cnJlZC4gQ2xpY2sgdGhpcyB0byBnbyBiYWNrLiIs
IiIse29uY2xpY2s6ZnVuY3Rpb24oKXtHYWxheHkubD0KaWJyYXJpZXMubGlicmFyeV9yb3V0ZXIu
YmFjaygpfX0pfX19KX0scmVuZGVyOmZ1bmN0aW9uKGUpeyQoIi50b29sdGlwIikucmVtPQpvdmUo
KTt0aGlzLm9wdGlvbnM9M0RfLmV4dGVuZCh0aGlzLm9wdGlvbnMsZSk7dmFyIGY9M0R0aGlzLnRl
bXBsYXRlTGlicmFyeSg9Cik7dGhpcy4kZWwuaHRtbChmKHtpdGVtOnRoaXMubW9kZWx9KSk7JCgi
I2NlbnRlciBbZGF0YS10b2dnbGVdIikudG9vbHRpcCgpfT0KLHNoYXJlRGF0YXNldDpmdW5jdGlv
bigpe2QuaW5mbygiRmVhdHVyZSBjb21pbmcgc29vbi4iKX0sZ29CYWNrOmZ1bmN0aW9uKCl7PQpH
YWxheHkubGlicmFyaWVzLmxpYnJhcnlfcm91dGVyLmJhY2soKX0sc2hvd1Blcm1pc3Npb25zOmZ1
bmN0aW9uKGYpe3RoaXMub3A9CnRpb25zPTNEXy5leHRlbmQodGhpcy5vcHRpb25zLGYpOyQoIi50
b29sdGlwIikucmVtb3ZlKCk7aWYodGhpcy5vcHRpb25zLmZldD0KY2hlZF9wZXJtaXNzaW9ucyE9
M0Q9M0R1bmRlZmluZWQpe2lmKHRoaXMub3B0aW9ucy5mZXRjaGVkX3Blcm1pc3Npb25zLmFjY2Vz
PQpzX2xpYnJhcnlfcm9sZV9saXN0Lmxlbmd0aD0zRD0zRD0zRDApe3RoaXMubW9kZWwuc2V0KHtp
c191bnJlc3RyaWN0ZWQ6dHJ1ZX09Cil9ZWxzZXt0aGlzLm1vZGVsLnNldCh7aXNfdW5yZXN0cmlj
dGVkOmZhbHNlfSl9fXZhciBoPTNEZmFsc2U7aWYoR2FsYXh5LmN1cj0KclVzZXIpe2g9M0RHYWxh
eHkuY3VyclVzZXIuaXNBZG1pbigpfXZhciBnPTNEdGhpcy50ZW1wbGF0ZUxpYnJhcnlQZXJtaXNz
aW9uPQpzKCk7dGhpcy4kZWwuaHRtbChnKHtsaWJyYXJ5OnRoaXMubW9kZWwsaXNfYWRtaW46aH0p
KTt2YXIgZT0zRHRoaXM7aWYodGhpcy49Cm9wdGlvbnMuZmV0Y2hlZF9wZXJtaXNzaW9ucz0zRD0z
RD0zRHVuZGVmaW5lZCl7JC5nZXQoKHdpbmRvdy5nYWxheHlfY29uZmlnPz0KZ2FsYXh5X2NvbmZp
Zy5yb290OiIvIikrImFwaS9saWJyYXJpZXMvIitlLmlkKyIvcGVybWlzc2lvbnM/c2NvcGU9M0Rj
dXJyZW50PQoiKS5kb25lKGZ1bmN0aW9uKGkpe2UucHJlcGFyZVNlbGVjdEJveGVzKHtmZXRjaGVk
X3Blcm1pc3Npb25zOml9KX0pLmZhaWwoZnU9Cm5jdGlvbigpe2QuZXJyb3IoIkFuIGVycm9yIG9j
Y3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gZmV0Y2ggbGlicmFyeSBwZXJtaT0Kc3Npb25zLiIp
fSl9ZWxzZXt0aGlzLnByZXBhcmVTZWxlY3RCb3hlcyh7fSl9JCgiI2NlbnRlciBbZGF0YS10b2dn
bGVdIikudG9vPQpsdGlwKCk7JCgiI2NlbnRlciIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIil9LF9z
ZXJpYWxpemVSb2xlczpmdW5jdGlvbihnKXt2YXI9CiBlPTNEW107Zm9yKHZhciBmPTNEMDtmPGcu
bGVuZ3RoO2YrKyl7ZS5wdXNoKGdbZl1bMV0rIjoiK2dbZl1bMF0pfXJldHVybiBlfT0KLHByZXBh
cmVTZWxlY3RCb3hlczpmdW5jdGlvbihpKXt0aGlzLm9wdGlvbnM9M0RfLmV4dGVuZCh0aGlzLm9w
dGlvbnMsaSk7dmFyPQogZT0zRHRoaXMub3B0aW9ucy5mZXRjaGVkX3Blcm1pc3Npb25zO3ZhciBn
PTNEdGhpczt2YXIgZj0zRHRoaXMuX3NlcmlhbGl6ZVI9Cm9sZXMoZS5hY2Nlc3NfbGlicmFyeV9y
b2xlX2xpc3QpO3ZhciBqPTNEdGhpcy5fc2VyaWFsaXplUm9sZXMoZS5hZGRfbGlicmFyeT0KX2l0
ZW1fcm9sZV9saXN0KTt2YXIgaD0zRHRoaXMuX3NlcmlhbGl6ZVJvbGVzKGUubWFuYWdlX2xpYnJh
cnlfcm9sZV9saXN0KTt2PQphciBrPTNEdGhpcy5fc2VyaWFsaXplUm9sZXMoZS5tb2RpZnlfbGli
cmFyeV9yb2xlX2xpc3QpO2cuYWNjZXNzU2VsZWN0T2JqZWM9CnQ9M0RuZXcgYS5WaWV3KHRoaXMu
X2NyZWF0ZVNlbGVjdE9wdGlvbnModGhpcywiYWNjZXNzX3Blcm0iLGYsdHJ1ZSkpO2cuYWRkUz0K
ZWxlY3RPYmplY3Q9M0RuZXcgYS5WaWV3KHRoaXMuX2NyZWF0ZVNlbGVjdE9wdGlvbnModGhpcywi
YWRkX3Blcm0iLGosZmFsc2UpPQopO2cubWFuYWdlU2VsZWN0T2JqZWN0PTNEbmV3IGEuVmlldyh0
aGlzLl9jcmVhdGVTZWxlY3RPcHRpb25zKHRoaXMsIm1hbmFnZV89CnBlcm0iLGgsZmFsc2UpKTtn
Lm1vZGlmeVNlbGVjdE9iamVjdD0zRG5ldyBhLlZpZXcodGhpcy5fY3JlYXRlU2VsZWN0T3B0aW9u
cz0KKHRoaXMsIm1vZGlmeV9wZXJtIixrLGZhbHNlKSl9LF9jcmVhdGVTZWxlY3RPcHRpb25zOmZ1
bmN0aW9uKGYsayxpLGUpe2U9M0RlPQo9M0Q9M0Q9M0R0cnVlP2U6ZmFsc2U7dmFyIGo9M0R7bWlu
aW11bUlucHV0TGVuZ3RoOjAsY3NzOmssbXVsdGlwbGU6dHJ1ZSxwbGE9CmNlaG9sZGVyOiJDbGlj
ayB0byBzZWxlY3QgYSByb2xlIixjb250YWluZXI6Zi4kZWwuZmluZCgiIyIrayksYWpheDp7dXJs
Oih3aT0KbmRvdy5nYWxheHlfY29uZmlnP2dhbGF4eV9jb25maWcucm9vdDoiLyIpKyJhcGkvbGli
cmFyaWVzLyIrZi5pZCsiL3Blcm1pc3NpPQpvbnM/c2NvcGU9M0RhdmFpbGFibGUmaXNfbGlicmFy
eV9hY2Nlc3M9M0QiK2UsZGF0YVR5cGU6Impzb24iLHF1aWV0TWlsbGlzOjE9CjAwLGRhdGE6ZnVu
Y3Rpb24obCxtKXtyZXR1cm57cTpsLHBhZ2VfbGltaXQ6MTAscGFnZTptfX0scmVzdWx0czpmdW5j
dGlvbihuLD0KbSl7dmFyIGw9M0QobSoxMCk8bi50b3RhbDtyZXR1cm57cmVzdWx0czpuLnJvbGVz
LG1vcmU6bH19fSxmb3JtYXRSZXN1bHQ6ZnVuPQpjdGlvbiBnKGwpe3JldHVybiBsLm5hbWUrIiB0
eXBlOiAiK2wudHlwZX0sZm9ybWF0U2VsZWN0aW9uOmZ1bmN0aW9uIGgobCl7cmU9CnR1cm4gbC5u
YW1lfSxpbml0U2VsZWN0aW9uOmZ1bmN0aW9uKGwsbil7dmFyIG09M0RbXTskKGwudmFsKCkuc3Bs
aXQoIiwiKSkuZT0KYWNoKGZ1bmN0aW9uKCl7dmFyIG89M0R0aGlzLnNwbGl0KCI6Iik7bS5wdXNo
KHtpZDpvWzBdLG5hbWU6b1sxXX0pfSk7bihtKX0sPQppbml0aWFsRGF0YTppLGRyb3Bkb3duQ3Nz
Q2xhc3M6ImJpZ2Ryb3AifTtyZXR1cm4gan0sY29taW5nU29vbjpmdW5jdGlvbigpe2Q9Ci53YXJu
aW5nKCJGZWF0dXJlIGNvbWluZyBzb29uLiIpfSxjb3B5VG9DbGlwYm9hcmQ6ZnVuY3Rpb24oKXt2
YXIgZT0zREJhY2tibz0KbmUuaGlzdG9yeS5sb2NhdGlvbi5ocmVmO2lmKGUubGFzdEluZGV4T2Yo
Ii9wZXJtaXNzaW9ucyIpIT0zRD0zRC0xKXtlPTNEZS5zPQp1YnN0cigwLGUubGFzdEluZGV4T2Yo
Ii9wZXJtaXNzaW9ucyIpKX13aW5kb3cucHJvbXB0KCJDb3B5IHRvIGNsaXBib2FyZDogQ3Q9CnJs
K0MsIEVudGVyIixlKX0sbWFrZURhdGFzZXRQcml2YXRlOmZ1bmN0aW9uKCl7dmFyIGU9M0R0aGlz
OyQucG9zdCgod2luZG93Lj0KZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsi
YXBpL2xpYnJhcmllcy9kYXRhc2V0cy8iK2UuaWQrIi9wZXJtPQppc3Npb25zP2FjdGlvbj0zRG1h
a2VfcHJpdmF0ZSIpLmRvbmUoZnVuY3Rpb24oZil7ZS5tb2RlbC5zZXQoe2lzX3VucmVzdHJpY3Q9
CmVkOmZhbHNlfSk7ZS5zaG93UGVybWlzc2lvbnMoe2ZldGNoZWRfcGVybWlzc2lvbnM6Zn0pO2Qu
c3VjY2VzcygiVGhlIGRhdGFzZT0KdCBpcyBub3cgcHJpdmF0ZSB0byB5b3UuIil9KS5mYWlsKGZ1
bmN0aW9uKCl7ZC5lcnJvcigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpPQpsZSBhdHRlbXB0aW5nIHRv
IG1ha2UgZGF0YXNldCBwcml2YXRlLiIpfSl9LHJlbW92ZURhdGFzZXRSZXN0cmljdGlvbnM6ZnVu
Y3Q9Cmlvbigpe3ZhciBlPTNEdGhpczskLnBvc3QoKHdpbmRvdy5nYWxheHlfY29uZmlnP2dhbGF4
eV9jb25maWcucm9vdDoiLyIpKyJhcD0KaS9saWJyYXJpZXMvZGF0YXNldHMvIitlLmlkKyIvcGVy
bWlzc2lvbnM/YWN0aW9uPTNEcmVtb3ZlX3Jlc3RyaWN0aW9ucyIpLmRvPQpuZShmdW5jdGlvbihm
KXtlLm1vZGVsLnNldCh7aXNfdW5yZXN0cmljdGVkOnRydWV9KTtlLnNob3dQZXJtaXNzaW9ucyh7
ZmV0Y2g9CmVkX3Blcm1pc3Npb25zOmZ9KTtkLnN1Y2Nlc3MoIkFjY2VzcyB0byB0aGlzIGRhdGFz
ZXQgaXMgbm93IHVucmVzdHJpY3RlZC4iKT0KfSkuZmFpbChmdW5jdGlvbigpe2QuZXJyb3IoIkFu
IGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gbWFrZSBkYXRhPQpzZXQgdW5yZXN0
cmljdGVkLiIpfSl9LF9leHRyYWN0SWRzOmZ1bmN0aW9uKGUpe2lkc19saXN0PTNEW107Zm9yKHZh
ciBmPTNEZS49Cmxlbmd0aC0xO2Y+PTNEMDtmLS0pe2lkc19saXN0LnB1c2goZVtmXS5pZCl9cmV0
dXJuIGlkc19saXN0fSxzYXZlUGVybWlzc2lvbj0KczpmdW5jdGlvbihoKXt2YXIgZz0zRHRoaXM7
dmFyIGk9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMuYWNjZXNzU2VsZWN0T2JqZWN0PQouJGVsLnNl
bGVjdDIoImRhdGEiKSk7dmFyIGU9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMuYWRkU2VsZWN0T2Jq
ZWN0LiRlbC5zZWw9CmVjdDIoImRhdGEiKSk7dmFyIGo9M0R0aGlzLl9leHRyYWN0SWRzKHRoaXMu
bWFuYWdlU2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKD0KImRhdGEiKSk7dmFyIGY9M0R0aGlzLl9l
eHRyYWN0SWRzKHRoaXMubW9kaWZ5U2VsZWN0T2JqZWN0LiRlbC5zZWxlY3QyKCJkYXRhPQoiKSk7
JC5wb3N0KCh3aW5kb3cuZ2FsYXh5X2NvbmZpZz9nYWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBp
L2xpYnJhcmllcy8iK2c9Ci5pZCsiL3Blcm1pc3Npb25zP2FjdGlvbj0zRHNldF9wZXJtaXNzaW9u
cyIseyJhY2Nlc3NfaWRzW10iOmksImFkZF9pZHNbXSI6ZT0KLCJtYW5hZ2VfaWRzW10iOmosIm1v
ZGlmeV9pZHNbXSI6Zix9KS5kb25lKGZ1bmN0aW9uKGspe2cuc2hvd1Blcm1pc3Npb25zKHtmPQpl
dGNoZWRfcGVybWlzc2lvbnM6a30pO2Quc3VjY2VzcygiUGVybWlzc2lvbnMgc2F2ZWQuIil9KS5m
YWlsKGZ1bmN0aW9uKCl7ZC49CmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0
aW5nIHRvIHNldCBsaWJyYXJ5IHBlcm1pc3Npb25zLiIpfSl9LD0KdGVtcGxhdGVMaWJyYXJ5OmZ1
bmN0aW9uKCl7dmFyIGU9M0RbXTtlLnB1c2goJzxkaXYgY2xhc3M9M0QibGlicmFyeV9zdHlsZV9j
PQpvbnRhaW5lciI+Jyk7ZS5wdXNoKCcgIDxkaXYgaWQ9M0QibGlicmFyeV90b29sYmFyIj4nKTtl
LnB1c2goJyAgIDxidXR0b24gZGE9CnRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVu
dD0zRCJ0b3AiIHRpdGxlPTNEIk1vZGlmeSBsaWJyYXJ5IGl0ZW0iID0KY2xhc3M9M0QiYnRuIGJ0
bi1kZWZhdWx0IHRvb2xidG5fbW9kaWZ5X2RhdGFzZXQgcHJpbWFyeS1idXR0b24iIHR5cGU9M0Qi
YnV0PQp0b24iPjxzcGFuIGNsYXNzPTNEImZhIGZhLXBlbmNpbCI+PC9zcGFuPiBNb2RpZnk8L3Nw
YW4+PC9idXR0b24+Jyk7ZS5wdXNoKCc9CiAgIDxhIGhyZWY9M0QiI2ZvbGRlcnMvPCUtIGl0ZW0u
Z2V0KCJmb2xkZXJfaWQiKSAlPi9kYXRhc2V0cy88JS0gaXRlbS5pZCAlPj0KL3Blcm1pc3Npb25z
Ij48YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PTNEInRvcCIg
dGl0bGU9Cj0zRCJNYW5hZ2UgcGVybWlzc2lvbnMiIGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCB0
b29sYnRuX2NoYW5nZV9wZXJtaXNzaW9ucz0KIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1dHRv
biI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtZ3JvdXAiPjwvc3Bhbj4gUGVybWlzPQpzaW9uczwvc3Bh
bj48L2J1dHRvbj48L2E+Jyk7ZS5wdXNoKCcgICA8YnV0dG9uIGRhdGEtdG9nZ2xlPTNEInRvb2x0
aXAiIGRhdGE9Ci1wbGFjZW1lbnQ9M0QidG9wIiB0aXRsZT0zRCJTaGFyZSBkYXRhc2V0IiBjbGFz
cz0zRCJidG4gYnRuLWRlZmF1bHQgdG9vbGJ0bj0KLXNoYXJlLWRhdGFzZXQgcHJpbWFyeS1idXR0
b24iIHR5cGU9M0QiYnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYSBmYS1zaGFyZSI+PQo8L3NwYW4+
IFNoYXJlPC9zcGFuPjwvYnV0dG9uPicpO2UucHVzaCgiICA8L2Rpdj4iKTtlLnB1c2goIiAgPHA+
Iik7ZS5wdXNoKCI9CiAgVGhpcyBkYXRhc2V0IGlzIHVucmVzdHJpY3RlZCBzbyBldmVyeWJvZHkg
Y2FuIGFjY2VzcyBpdC4gSnVzdCBzaGFyZSB0aGUgVT0KUkwgb2YgdGhpcyBwYWdlLiAiKTtlLnB1
c2goJyAgPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVuPQp0PTNE
InRvcCIgdGl0bGU9M0QiQ29weSB0byBjbGlwYm9hcmQiIGNsYXNzPTNEImJ0biBidG4tZGVmYXVs
dCBidG4tY29weS1saW49CmstdG8tY2xpcGJvYXJkIHByaW1hcnktYnV0dG9uIiB0eXBlPTNEImJ1
dHRvbiI+PHNwYW4gY2xhc3M9M0QiZmEgZmEtY2xpcGJvYT0KcmQiPjwvc3Bhbj4gVG8gQ2xpcGJv
YXJkPC9zcGFuPjwvYnV0dG9uPiAnKTtlLnB1c2goIiAgPC9wPiIpO2UucHVzaCgnPGRpdiBjPQps
YXNzPTNEImRhdGFzZXRfdGFibGUiPicpO2UucHVzaCgnICAgPHRhYmxlIGNsYXNzPTNEImdyaWQg
dGFibGUgdGFibGUtc3RyaXA9CmVkIHRhYmxlLWNvbmRlbnNlZCI+Jyk7ZS5wdXNoKCIgICAgICAg
PHRyPiIpO2UucHVzaCgnICAgICAgICAgICA8dGggc2NvcGU9Cj0zRCJyb3ciIGlkPTNEImlkX3Jv
dyIgZGF0YS1pZD0zRCI8JT0zRCBfLmVzY2FwZShpdGVtLmdldCgibGRkYV9pZCIpKSAlPiI+Tj0K
YW1lPC90aD4nKTtlLnB1c2goJyAgICAgICAgICAgPHRkPjwlPTNEIF8uZXNjYXBlKGl0ZW0uZ2V0
KCJuYW1lIikpICU+PC90ZD4nPQopO2UucHVzaCgiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCcgICA8
JSBpZiAoaXRlbS5nZXQoImZpbGVfZXh0IikpIHsgJT4nKTtlLnA9CnVzaCgiICAgICAgIDx0cj4i
KTtlLnB1c2goJyAgICAgICAgICAgPHRoIHNjb3BlPTNEInJvdyI+RGF0YSB0eXBlPC90aD4nKTtl
Lj0KcHVzaCgnICAgICAgICAgICA8dGQ+PCU9M0QgXy5lc2NhcGUoaXRlbS5nZXQoImZpbGVfZXh0
IikpICU+PC90ZD4nKTtlLnB1c2goPQoiICAgICAgIDwvdHI+Iik7ZS5wdXNoKCIgICA8JSB9ICU+
Iik7ZS5wdXNoKCIgICAgPC90YWJsZT4iKTtlLnB1c2goIjwvZGl2PiI9Cik7ZS5wdXNoKCI8L2Rp
dj4iKTtyZXR1cm4gXy50ZW1wbGF0ZShlLmpvaW4oIiIpKX0sdGVtcGxhdGVMaWJyYXJ5UGVybWlz
c2lvbj0KczpmdW5jdGlvbigpe3ZhciBlPTNEW107ZS5wdXNoKCc8ZGl2IGNsYXNzPTNEImxpYnJh
cnlfc3R5bGVfY29udGFpbmVyIj4nKTtlPQoucHVzaCgnICA8ZGl2IGlkPTNEImxpYnJhcnlfdG9v
bGJhciI+Jyk7ZS5wdXNoKCcgICA8YSBocmVmPTNEIiMiPjxidXR0b24gZGE9CnRhLXRvZ2dsZT0z
RCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0b3AiIHRpdGxlPTNEIkdvIGJhY2sgdG8gdGhl
IGxpc3Qgbz0KZiBMaWJyYXJpZXMiIGNsYXNzPTNEImJ0biBidG4tZGVmYXVsdCBwcmltYXJ5LWJ1
dHRvbiIgdHlwZT0zRCJidXR0b24iPjxzcGFuPQogY2xhc3M9M0QiZmEgZmEtbGlzdCI+PC9zcGFu
PiBMaWJyYXJpZXM8L3NwYW4+PC9idXR0b24+PC9hPicpO2UucHVzaCgiICA8L2Q9Cml2PiIpO2Uu
cHVzaCgnPGgxPkxpYnJhcnk6IDwlPTNEIF8uZXNjYXBlKGxpYnJhcnkuZ2V0KCJuYW1lIikpICU+
PC9oMT4nKTtlLj0KcHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC13YXJuaW5nIj4nKTtl
LnB1c2goIjwlIGlmIChpc19hZG1pbikgeyAlPiIpPQo7ZS5wdXNoKCJZb3UgYXJlIGxvZ2dlZCBp
biBhcyBhbiA8c3Ryb25nPmFkbWluaXN0cmF0b3I8L3N0cm9uZz4gdGhlcmVmb3JlIHk9Cm91IGNh
biBtYW5hZ2UgYW55IGxpYnJhcnkgb24gdGhpcyBHYWxheHkgaW5zdGFuY2UuIFBsZWFzZSBtYWtl
IHN1cmUgeW91IHVuZD0KZXJzdGFuZCB0aGUgY29uc2VxdWVuY2VzLiIpO2UucHVzaCgiPCUgfSBl
bHNlIHsgJT4iKTtlLnB1c2goIllvdSBjYW4gYXNzaWduPQogYW55IG51bWJlciBvZiByb2xlcyB0
byBhbnkgb2YgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9uIHR5cGVzLiBIb3dldmVyIHBsZWE9CnNl
IHJlYWQgY2FyZWZ1bGx5IHRoZSBpbXBsaWNhdGlvbnMgb2Ygc3VjaCBhY3Rpb25zLiIpO2UucHVz
aCgiPCUgfSU+Iik7ZS5wdT0Kc2goIjwvZGl2PiIpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJkYXRh
c2V0X3RhYmxlIj4nKTtlLnB1c2goIjxoMj5MaWJyYXJ5IHBlPQpybWlzc2lvbnM8L2gyPiIpO2Uu
cHVzaCgiPGg0PlJvbGVzIHRoYXQgY2FuIGFjY2VzcyB0aGUgbGlicmFyeTwvaDQ+Iik7ZS5wdXM9
CmgoJzxkaXYgaWQ9M0QiYWNjZXNzX3Blcm0iIGNsYXNzPTNEImFjY2Vzc19wZXJtIHJvbGVzLXNl
bGVjdGlvbiI+PC9kaXY+Jyk7ZT0KLnB1c2goJzxkaXYgY2xhc3M9M0QiYWxlcnQgYWxlcnQtaW5m
byByb2xlcy1zZWxlY3Rpb24iPlVzZXIgd2l0aCA8c3Ryb25nPmFuPQp5PC9zdHJvbmc+IG9mIHRo
ZXNlIHJvbGVzIGNhbiBhY2Nlc3MgdGhpcyBsaWJyYXJ5LiBJZiB0aGVyZSBhcmUgbm8gYWNjZXNz
IHI9Cm9sZXMgc2V0IG9uIHRoZSBsaWJyYXJ5IGl0IGlzIGNvbnNpZGVyZWQgPHN0cm9uZz51bnJl
c3RyaWN0ZWQ8L3N0cm9uZz4uPC9kaT0Kdj4nKTtlLnB1c2goIjxoND5Sb2xlcyB0aGF0IGNhbiBt
YW5hZ2UgcGVybWlzc2lvbnMgb24gdGhpcyBsaWJyYXJ5PC9oND4iKTtlPQoucHVzaCgnPGRpdiBp
ZD0zRCJtYW5hZ2VfcGVybSIgY2xhc3M9M0QibWFuYWdlX3Blcm0gcm9sZXMtc2VsZWN0aW9uIj48
L2Rpdj49CicpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZvIHJvbGVzLXNl
bGVjdGlvbiI+VXNlciB3aXRoIDxzdHJvbj0KZz5hbnk8L3N0cm9uZz4gb2YgdGhlc2Ugcm9sZXMg
Y2FuIG1hbmFnZSBwZXJtaXNzaW9ucyBvbiB0aGlzIGxpYnJhcnkgKGluY2x1PQpkZXMgZ2l2aW5n
IGFjY2VzcykuPC9kaXY+Jyk7ZS5wdXNoKCI8aDQ+Um9sZXMgdGhhdCBjYW4gYWRkIGl0ZW1zIHRv
IHRoaXMgbGk9CmJyYXJ5PC9oND4iKTtlLnB1c2goJzxkaXYgaWQ9M0QiYWRkX3Blcm0iIGNsYXNz
PTNEImFkZF9wZXJtIHJvbGVzLXNlbGVjdGlvbj0KIj48L2Rpdj4nKTtlLnB1c2goJzxkaXYgY2xh
c3M9M0QiYWxlcnQgYWxlcnQtaW5mbyByb2xlcy1zZWxlY3Rpb24iPlVzZXIgd2l0PQpoIDxzdHJv
bmc+YW55PC9zdHJvbmc+IG9mIHRoZXNlIHJvbGVzIGNhbiBhZGQgaXRlbXMgdG8gdGhpcyBsaWJy
YXJ5IChmb2xkZXI9CnMgYW5kIGRhdGFzZXRzKS48L2Rpdj4nKTtlLnB1c2goIjxoND5Sb2xlcyB0
aGF0IGNhbiBtb2RpZnkgdGhpcyBsaWJyYXJ5PC9oND0KPiIpO2UucHVzaCgnPGRpdiBpZD0zRCJt
b2RpZnlfcGVybSIgY2xhc3M9M0QibW9kaWZ5X3Blcm0gcm9sZXMtc2VsZWN0aW9uIj48PQovZGl2
PicpO2UucHVzaCgnPGRpdiBjbGFzcz0zRCJhbGVydCBhbGVydC1pbmZvIHJvbGVzLXNlbGVjdGlv
biI+VXNlciB3aXRoIDw9CnN0cm9uZz5hbnk8L3N0cm9uZz4gb2YgdGhlc2Ugcm9sZXMgY2FuIG1v
ZGlmeSB0aGlzIGxpYnJhcnkgKG5hbWUsIHN5bm9wc2lzLD0KIGV0Yy4pLjwvZGl2PicpO2UucHVz
aCgnPGJ1dHRvbiBkYXRhLXRvZ2dsZT0zRCJ0b29sdGlwIiBkYXRhLXBsYWNlbWVudD0zRCJ0PQpv
cCIgdGl0bGU9M0QiU2F2ZSBtb2RpZmljYXRpb25zIG1hZGUgb24gdGhpcyBwYWdlIiBjbGFzcz0z
RCJidG4gYnRuLWRlZmF1bHQ9CiB0b29sYnRuX3NhdmVfcGVybWlzc2lvbnMgcHJpbWFyeS1idXR0
b24iIHR5cGU9M0QiYnV0dG9uIj48c3BhbiBjbGFzcz0zRCJmYT0KIGZhLWZsb3BweS1vIj48L3Nw
YW4+IFNhdmU8L3NwYW4+PC9idXR0b24+Jyk7ZS5wdXNoKCI8L2Rpdj4iKTtlLnB1c2goIjwvZGl2
PQo+Iik7cmV0dXJuIF8udGVtcGxhdGUoZS5qb2luKCIiKSl9fSk7cmV0dXJue0xpYnJhcnlWaWV3
OmJ9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKCmh0dHBzOi8vYml0YnVja2V0Lm9y
Zy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy9lMmFkMzk3YTJlYzcvCkNoYW5nZXNldDog
ICBlMmFkMzk3YTJlYzcKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGNh
cmxmZWJlcmhhcmQKRGF0ZTogICAgICAgIDIwMTUtMDMtMjQgMjI6MDM6NTkrMDA6MDAKU3VtbWFy
eTogICAgIFVJLCBIaXN0b3J5OiBmaXggbW9kZWwgc2V0QXNDdXJyZW50IHRvIHVzZSBnYWxheHlf
Y29uZmlnLnJvb3QgPQpwcm94eSBwcmVmaXgKQWZmZWN0ZWQgIzogIDMgZmlsZXMKCmRpZmYgLXIg
MWNjZjQwYmRhZmExODRiM2JlMzFhYTdiMWVjZGZjZTNiYzcwNWVmYiAtciBlMmFkMzk3YTJlYzdm
NzQ4YmYxYjk0MT0KOGMyYjI5YWEzNzhlNDE2NDcgY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9o
aXN0b3J5L2hpc3RvcnktbW9kZWwuanMKLS0tIGEvY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9o
aXN0b3J5L2hpc3RvcnktbW9kZWwuanMKKysrIGIvY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9o
aXN0b3J5L2hpc3RvcnktbW9kZWwuanMKQEAgLTI1Nyw3ICsyNTcsNyBAQAo9MjAKICAgICBzZXRB
c0N1cnJlbnQgOiBmdW5jdGlvbigpewogICAgICAgICB2YXIgaGlzdG9yeSA9M0QgdGhpcywKLSAg
ICAgICAgICAgIHhociA9M0QgalF1ZXJ5LmdldEpTT04oICcvaGlzdG9yeS9zZXRfYXNfY3VycmVu
dD9pZD0zRCcgKyB0aGlzPQouaWQgKTsKKyAgICAgICAgICAgIHhociA9M0QgalF1ZXJ5LmdldEpT
T04oIGdhbGF4eV9jb25maWcucm9vdCArICdoaXN0b3J5L3NldF9hc19jPQp1cnJlbnQ/aWQ9M0Qn
ICsgdGhpcy5pZCApOwo9MjAKICAgICAgICAgeGhyLmRvbmUoIGZ1bmN0aW9uKCl7CiAgICAgICAg
ICAgICBoaXN0b3J5LnRyaWdnZXIoICdzZXQtYXMtY3VycmVudCcsIGhpc3RvcnkgKTsKQEAgLTM2
MSw3ICszNjEsNyBAQAogdmFyIEhpc3RvcnlDb2xsZWN0aW9uID0zRCBCYWNrYm9uZS5Db2xsZWN0
aW9uLmV4dGVuZCggQkFTRV9NVkMuTG9nZ2FibGVNaXg9CmluICkuZXh0ZW5kKAogLyoqIEBsZW5k
cyBIaXN0b3J5Q29sbGVjdGlvbi5wcm90b3R5cGUgKi97CiAgICAgbW9kZWwgICA6IEhpc3Rvcnks
Ci0gICA9MjAKKwogICAgIC8qKiBsb2dnZXIgdXNlZCB0byByZWNvcmQgdGhpcy5sb2cgbWVzc2Fn
ZXMsIGNvbW1vbmx5IHNldCB0byBjb25zb2xlICovCiAgICAgLy9sb2dnZXIgICAgICAgICAgICAg
IDogY29uc29sZSwKPTIwCgpkaWZmIC1yIDFjY2Y0MGJkYWZhMTg0YjNiZTMxYWE3YjFlY2RmY2Uz
YmM3MDVlZmIgLXIgZTJhZDM5N2EyZWM3Zjc0OGJmMWI5NDE9CjhjMmIyOWFhMzc4ZTQxNjQ3IHN0
YXRpYy9zY3JpcHRzL212Yy9oaXN0b3J5L2hpc3RvcnktbW9kZWwuanMKLS0tIGEvc3RhdGljL3Nj
cmlwdHMvbXZjL2hpc3RvcnkvaGlzdG9yeS1tb2RlbC5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9t
dmMvaGlzdG9yeS9oaXN0b3J5LW1vZGVsLmpzCkBAIC0yNTcsNyArMjU3LDcgQEAKPTIwCiAgICAg
c2V0QXNDdXJyZW50IDogZnVuY3Rpb24oKXsKICAgICAgICAgdmFyIGhpc3RvcnkgPTNEIHRoaXMs
Ci0gICAgICAgICAgICB4aHIgPTNEIGpRdWVyeS5nZXRKU09OKCAnL2hpc3Rvcnkvc2V0X2FzX2N1
cnJlbnQ/aWQ9M0QnICsgdGhpcz0KLmlkICk7CisgICAgICAgICAgICB4aHIgPTNEIGpRdWVyeS5n
ZXRKU09OKCBnYWxheHlfY29uZmlnLnJvb3QgKyAnaGlzdG9yeS9zZXRfYXNfYz0KdXJyZW50P2lk
PTNEJyArIHRoaXMuaWQgKTsKPTIwCiAgICAgICAgIHhoci5kb25lKCBmdW5jdGlvbigpewogICAg
ICAgICAgICAgaGlzdG9yeS50cmlnZ2VyKCAnc2V0LWFzLWN1cnJlbnQnLCBoaXN0b3J5ICk7CkBA
IC0zNjEsNyArMzYxLDcgQEAKIHZhciBIaXN0b3J5Q29sbGVjdGlvbiA9M0QgQmFja2JvbmUuQ29s
bGVjdGlvbi5leHRlbmQoIEJBU0VfTVZDLkxvZ2dhYmxlTWl4PQppbiApLmV4dGVuZCgKIC8qKiBA
bGVuZHMgSGlzdG9yeUNvbGxlY3Rpb24ucHJvdG90eXBlICovewogICAgIG1vZGVsICAgOiBIaXN0
b3J5LAotICAgPTIwCisKICAgICAvKiogbG9nZ2VyIHVzZWQgdG8gcmVjb3JkIHRoaXMubG9nIG1l
c3NhZ2VzLCBjb21tb25seSBzZXQgdG8gY29uc29sZSAqLwogICAgIC8vbG9nZ2VyICAgICAgICAg
ICAgICA6IGNvbnNvbGUsCj0yMAoKZGlmZiAtciAxY2NmNDBiZGFmYTE4NGIzYmUzMWFhN2IxZWNk
ZmNlM2JjNzA1ZWZiIC1yIGUyYWQzOTdhMmVjN2Y3NDhiZjFiOTQxPQo4YzJiMjlhYTM3OGU0MTY0
NyBzdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2hpc3RvcnkvaGlzdG9yeS1tb2RlbC5qcwotLS0g
YS9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2hpc3RvcnkvaGlzdG9yeS1tb2RlbC5qcworKysg
Yi9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2hpc3RvcnkvaGlzdG9yeS1tb2RlbC5qcwpAQCAt
MSwxICsxLDEgQEAKLWRlZmluZShbIm12Yy9oaXN0b3J5L2hpc3RvcnktY29udGVudHMiLCJtdmMv
YmFzZS1tdmMiLCJ1dGlscy9sb2NhbGl6YXRpb24iPQpdLGZ1bmN0aW9uKGgsaSxkKXt2YXIgZT0z
REJhY2tib25lLk1vZGVsLmV4dGVuZChpLkxvZ2dhYmxlTWl4aW4pLmV4dGVuZChpLm09Cml4aW4o
aS5TZWFyY2hhYmxlTW9kZWxNaXhpbix7ZGVmYXVsdHM6e21vZGVsX2NsYXNzOiJIaXN0b3J5Iixp
ZDpudWxsLG5hbWU6Ij0KVW5uYW1lZCBIaXN0b3J5IixzdGF0ZToibmV3IixkaXNrU2l6ZTowLGRl
bGV0ZWQ6ZmFsc2V9LHVybFJvb3Q6Z2FsYXh5X2NvbmZpPQpnLnJvb3QrImFwaS9oaXN0b3JpZXMi
LGluaXRpYWxpemU6ZnVuY3Rpb24oayxsLGope2o9M0RqfHx7fTt0aGlzLmxvZ2dlcj0zRGo9Ci5s
b2dnZXJ8fG51bGw7dGhpcy5sb2codGhpcysiLmluaXRpYWxpemU6IixrLGwsaik7dGhpcy5sb2co
ImNyZWF0aW5nIGhpc3Rvcj0KeSBjb250ZW50czoiLGwpO3RoaXMuY29udGVudHM9M0RuZXcgaC5I
aXN0b3J5Q29udGVudHMobHx8W10se2hpc3RvcnlJZDp0aGlzPQouZ2V0KCJpZCIpfSk7dGhpcy5f
c2V0VXBMaXN0ZW5lcnMoKTt0aGlzLnVwZGF0ZVRpbWVvdXRJZD0zRG51bGx9LF9zZXRVcExpc3Q9
CmVuZXJzOmZ1bmN0aW9uKCl7dGhpcy5vbigiZXJyb3IiLGZ1bmN0aW9uKGssbixqLG0sbCl7dGhp
cy5lcnJvckhhbmRsZXIoayxuLD0KaixtLGwpfSk7aWYodGhpcy5jb250ZW50cyl7dGhpcy5saXN0
ZW5Ubyh0aGlzLmNvbnRlbnRzLCJlcnJvciIsZnVuY3Rpb24oKXt0PQpoaXMudHJpZ2dlci5hcHBs
eSh0aGlzLFsiZXJyb3I6Y29udGVudHMiXS5jb25jYXQoalF1ZXJ5Lm1ha2VBcnJheShhcmd1bWVu
dHM9CikpKX0pfXRoaXMub24oImNoYW5nZTppZCIsZnVuY3Rpb24oayxqKXtpZih0aGlzLmNvbnRl
bnRzKXt0aGlzLmNvbnRlbnRzLmhpcz0KdG9yeUlkPTNEan19LHRoaXMpfSxlcnJvckhhbmRsZXI6
ZnVuY3Rpb24oayxuLGosbSxsKXt0aGlzLmNsZWFyVXBkYXRlVGltZW91PQp0KCl9LG93bmVkQnlD
dXJyVXNlcjpmdW5jdGlvbigpe2lmKCFHYWxheHl8fCFHYWxheHkuY3VyclVzZXIpe3JldHVybiBm
YWxzZX09CmlmKEdhbGF4eS5jdXJyVXNlci5pc0Fub255bW91cygpfHxHYWxheHkuY3VyclVzZXIu
aWQhPTNEPTNEdGhpcy5nZXQoInVzZXJfaT0KZCIpKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9
LGNvbnRlbnRzQ291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5yZWR1Y2UoXy52PQphbHVlcyh0aGlz
LmdldCgic3RhdGVfZGV0YWlscyIpKSxmdW5jdGlvbihqLGspe3JldHVybiBqK2t9LDApfSxzZWFy
Y2hBdHRyaWI9CnV0ZXM6WyJuYW1lIiwiYW5ub3RhdGlvbiIsInRhZ3MiXSxzZWFyY2hBbGlhc2Vz
Ont0aXRsZToibmFtZSIsdGFnOiJ0YWdzIn0sYz0KaGVja0ZvclVwZGF0ZXM6ZnVuY3Rpb24oail7
aWYodGhpcy5jb250ZW50cy5ydW5uaW5nKCkubGVuZ3RoKXt0aGlzLnNldFVwZGF0PQplVGltZW91
dCgpfWVsc2V7dGhpcy50cmlnZ2VyKCJyZWFkeSIpO2lmKF8uaXNGdW5jdGlvbihqKSl7ai5jYWxs
KHRoaXMpfX1yZXQ9CnVybiB0aGlzfSxzZXRVcGRhdGVUaW1lb3V0OmZ1bmN0aW9uKGope2o9M0Rq
fHxlLlVQREFURV9ERUxBWTt2YXIgaz0zRHRoaXM7dD0KaGlzLmNsZWFyVXBkYXRlVGltZW91dCgp
O3RoaXMudXBkYXRlVGltZW91dElkPTNEc2V0VGltZW91dChmdW5jdGlvbigpe2sucmVmPQpyZXNo
KCl9LGopO3JldHVybiB0aGlzLnVwZGF0ZVRpbWVvdXRJZH0sY2xlYXJVcGRhdGVUaW1lb3V0OmZ1
bmN0aW9uKCl7aWYodGg9CmlzLnVwZGF0ZVRpbWVvdXRJZCl7Y2xlYXJUaW1lb3V0KHRoaXMudXBk
YXRlVGltZW91dElkKTt0aGlzLnVwZGF0ZVRpbWVvdXRJZD0KPTNEbnVsbH19LHJlZnJlc2g6ZnVu
Y3Rpb24oayxqKXtrPTNEa3x8W107aj0zRGp8fHt9O3ZhciBsPTNEdGhpcztqLmRhdGE9M0RqPQou
ZGF0YXx8e307aWYoay5sZW5ndGgpe2ouZGF0YS5kZXRhaWxzPTNEay5qb2luKCIsIil9dmFyIG09
M0R0aGlzLmNvbnRlbnRzLmY9CmV0Y2goaik7bS5kb25lKGZ1bmN0aW9uKG4pe2wuY2hlY2tGb3JV
cGRhdGVzKGZ1bmN0aW9uKCl7dGhpcy5mZXRjaCgpfSl9KTtyZT0KdHVybiBtfSxfZGVsZXRlOmZ1
bmN0aW9uKGope2lmKHRoaXMuZ2V0KCJkZWxldGVkIikpe3JldHVybiBqUXVlcnkud2hlbigpfXJl
PQp0dXJuIHRoaXMuc2F2ZSh7ZGVsZXRlZDp0cnVlfSxqKX0scHVyZ2U6ZnVuY3Rpb24oail7aWYo
dGhpcy5nZXQoInB1cmdlZCIpKXs9CnJldHVybiBqUXVlcnkud2hlbigpfXJldHVybiB0aGlzLnNh
dmUoe2RlbGV0ZWQ6dHJ1ZSxwdXJnZWQ6dHJ1ZX0sail9LHVuZGVsZT0KdGU6ZnVuY3Rpb24oail7
aWYoIXRoaXMuZ2V0KCJkZWxldGVkIikpe3JldHVybiBqUXVlcnkud2hlbigpfXJldHVybiB0aGlz
LnNhPQp2ZSh7ZGVsZXRlZDpmYWxzZX0sail9LGNvcHk6ZnVuY3Rpb24obSxrKXttPTNEKG0hPTNE
PTNEdW5kZWZpbmVkKT8obSk6KHRydWU9Cik7aWYoIXRoaXMuaWQpe3Rocm93IG5ldyBFcnJvcigi
WW91IG11c3Qgc2V0IHRoZSBoaXN0b3J5IElEIGJlZm9yZSBjb3B5aW5nID0KaXQuIil9dmFyIGo9
M0R7aGlzdG9yeV9pZDp0aGlzLmlkfTtpZihtKXtqLmN1cnJlbnQ9M0R0cnVlfWlmKGspe2oubmFt
ZT0zRGt9PQp2YXIgbD0zRHRoaXMsbj0zRGpRdWVyeS5wb3N0KHRoaXMudXJsUm9vdCxqKTtpZiht
KXtyZXR1cm4gbi50aGVuKGZ1bmN0aW9uKG89Cil7dmFyIHA9M0RuZXcgZShvKTtyZXR1cm4gcC5z
ZXRBc0N1cnJlbnQoKS5kb25lKGZ1bmN0aW9uKCl7bC50cmlnZ2VyKCJjb3BpZT0KZCIsbCxvKX0p
fSl9cmV0dXJuIG4uZG9uZShmdW5jdGlvbihvKXtsLnRyaWdnZXIoImNvcGllZCIsbCxvKX0pfSxz
ZXRBc0N1cnJlPQpudDpmdW5jdGlvbigpe3ZhciBqPTNEdGhpcyxrPTNEalF1ZXJ5LmdldEpTT04o
Ii9oaXN0b3J5L3NldF9hc19jdXJyZW50P2lkPQo9M0QiK3RoaXMuaWQpO2suZG9uZShmdW5jdGlv
bigpe2oudHJpZ2dlcigic2V0LWFzLWN1cnJlbnQiLGopfSk7cmV0dXJuIGt9LHQ9Cm9TdHJpbmc6
ZnVuY3Rpb24oKXtyZXR1cm4iSGlzdG9yeSgiK3RoaXMuZ2V0KCJpZCIpKyIsIit0aGlzLmdldCgi
bmFtZSIpKyIpIj0KfX0pKTtlLlVQREFURV9ERUxBWT0zRDQwMDA7ZS5nZXRIaXN0b3J5RGF0YT0z
RGZ1bmN0aW9uIGMoaix2KXt2PTNEdnx8e307dmFyPQogcj0zRHYuZGV0YWlsSWRzRm58fFtdO3Zh
ciBtPTNEdi5oZGNhRGV0YWlsSWRzfHxbXTt2YXIgcz0zRGpRdWVyeS5EZWZlcnJlZCg9CikscD0z
RG51bGw7ZnVuY3Rpb24gayh3KXtpZihqPTNEPTNEPTNEImN1cnJlbnQiKXtyZXR1cm4galF1ZXJ5
LmdldEpTT04oZ2FsYT0KeHlfY29uZmlnLnJvb3QrImhpc3RvcnkvY3VycmVudF9oaXN0b3J5X2pz
b24iKX1yZXR1cm4galF1ZXJ5LmFqYXgoZ2FsYXh5X2NvPQpuZmlnLnJvb3QrImFwaS9oaXN0b3Jp
ZXMvIitqKX1mdW5jdGlvbiBvKHcpe3JldHVybiB3JiZ3LmVtcHR5fWZ1bmN0aW9uIHEoeCk9Cntp
ZihvKHgpKXtyZXR1cm5bXX1pZihfLmlzRnVuY3Rpb24ocikpe3I9M0RyKHgpfWlmKF8uaXNGdW5j
dGlvbihtKSl7bT0zRG0oeD0KKX12YXIgdz0zRHt9O2lmKHIubGVuZ3RoKXt3LmRhdGFzZXRfZGV0
YWlscz0zRHIuam9pbigiLCIpfWlmKG0ubGVuZ3RoKXt3LmRhPQp0YXNldF9jb2xsZWN0aW9uX2Rl
dGFpbHM9M0RtLmpvaW4oIiwiKX1yZXR1cm4galF1ZXJ5LmFqYXgoZ2FsYXh5X2NvbmZpZy5yb289
CnQrImFwaS9oaXN0b3JpZXMvIit4LmlkKyIvY29udGVudHMiLHtkYXRhOnd9KX12YXIgdD0zRHYu
aGlzdG9yeUZufHxrLHU9M0R2Lj0KY29udGVudHNGbnx8cTt2YXIgbj0zRHQoaik7bi5kb25lKGZ1
bmN0aW9uKHcpe3A9M0R3O3Mubm90aWZ5KHtzdGF0dXM6Imhpc3RvPQpyeSBkYXRhIHJldHJpZXZl
ZCIsaGlzdG9yeUpTT046cH0pfSk7bi5mYWlsKGZ1bmN0aW9uKHksdyx4KXtzLnJlamVjdCh5LCJs
b2E9CmRpbmcgdGhlIGhpc3RvcnkiKX0pO3ZhciBsPTNEbi50aGVuKHUpO2wudGhlbihmdW5jdGlv
bih3KXtzLm5vdGlmeSh7c3RhdHVzOj0KImNvbnRlbnRzIGRhdGEgcmV0cmlldmVkIixoaXN0b3J5
SlNPTjpwLGNvbnRlbnRzSlNPTjp3fSk7cy5yZXNvbHZlKHAsdyl9KTtsPQouZmFpbChmdW5jdGlv
bih5LHcseCl7cy5yZWplY3QoeSwibG9hZGluZyB0aGUgY29udGVudHMiLHtoaXN0b3J5OnB9KX0p
O3JldHU9CnJuIHN9O3ZhciBmPTNEQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoaS5Mb2dnYWJs
ZU1peGluKS5leHRlbmQoe21vZGVsOmUsdT0KcmxSb290Oih3aW5kb3cuZ2FsYXh5X2NvbmZpZz9n
YWxheHlfY29uZmlnLnJvb3Q6Ii8iKSsiYXBpL2hpc3RvcmllcyIsaW5pdGlhPQpsaXplOmZ1bmN0
aW9uKGssail7aj0zRGp8fHt9O3RoaXMubG9nKCJIaXN0b3J5Q29sbGVjdGlvbi5pbml0aWFsaXpl
Iixhcmd1bWU9Cm50cyk7dGhpcy5pbmNsdWRlRGVsZXRlZD0zRGouaW5jbHVkZURlbGV0ZWR8fGZh
bHNlO3RoaXMuc2V0VXBMaXN0ZW5lcnMoKX0scz0KZXRVcExpc3RlbmVyczpmdW5jdGlvbiBhKCl7
dmFyIGo9M0R0aGlzO3RoaXMub24oImNoYW5nZTpkZWxldGVkIixmdW5jdGlvbihrPQope3RoaXMu
ZGVidWcoImNoYW5nZTpkZWxldGVkIixqLmluY2x1ZGVEZWxldGVkLGsuZ2V0KCJkZWxldGVkIikp
O2lmKCFqLmluY2w9CnVkZURlbGV0ZWQmJmsuZ2V0KCJkZWxldGVkIikpe2oucmVtb3ZlKGspfX0p
O3RoaXMub24oImNvcGllZCIsZnVuY3Rpb24oayxsKT0Ke3RoaXMudW5zaGlmdChuZXcgZShsLFtd
KSl9KX0sY3JlYXRlOmZ1bmN0aW9uIGcobSxrLGosbCl7dmFyIG89M0R0aGlzLG49M0RqPQpRdWVy
eS5nZXRKU09OKGdhbGF4eV9jb25maWcucm9vdCsiaGlzdG9yeS9jcmVhdGVfbmV3X2N1cnJlbnQi
KTtyZXR1cm4gbi5kb249CmUoZnVuY3Rpb24ocCl7dmFyIHE9M0RuZXcgZShwLFtdLGp8fHt9KTtv
LnVuc2hpZnQocSk7by50cmlnZ2VyKCJuZXctY3VycmVudD0KIil9KX0sdG9TdHJpbmc6ZnVuY3Rp
b24gYigpe3JldHVybiJIaXN0b3J5Q29sbGVjdGlvbigiK3RoaXMubGVuZ3RoKyIpIn19KTtyPQpl
dHVybntIaXN0b3J5OmUsSGlzdG9yeUNvbGxlY3Rpb246Zn19KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitkZWZpbmUoWyJtdmMvaGlzdG9yeS9oaXN0b3J5LWNvbnRlbnRzIiwibXZjL2Jh
c2UtbXZjIiwidXRpbHMvbG9jYWxpemF0aW9uIj0KXSxmdW5jdGlvbihoLGksZCl7dmFyIGU9M0RC
YWNrYm9uZS5Nb2RlbC5leHRlbmQoaS5Mb2dnYWJsZU1peGluKS5leHRlbmQoaS5tPQppeGluKGku
U2VhcmNoYWJsZU1vZGVsTWl4aW4se2RlZmF1bHRzOnttb2RlbF9jbGFzczoiSGlzdG9yeSIsaWQ6
bnVsbCxuYW1lOiI9ClVubmFtZWQgSGlzdG9yeSIsc3RhdGU6Im5ldyIsZGlza1NpemU6MCxkZWxl
dGVkOmZhbHNlfSx1cmxSb290OmdhbGF4eV9jb25maT0KZy5yb290KyJhcGkvaGlzdG9yaWVzIixp
bml0aWFsaXplOmZ1bmN0aW9uKGssbCxqKXtqPTNEanx8e307dGhpcy5sb2dnZXI9M0RqPQoubG9n
Z2VyfHxudWxsO3RoaXMubG9nKHRoaXMrIi5pbml0aWFsaXplOiIsayxsLGopO3RoaXMubG9nKCJj
cmVhdGluZyBoaXN0b3I9CnkgY29udGVudHM6IixsKTt0aGlzLmNvbnRlbnRzPTNEbmV3IGguSGlz
dG9yeUNvbnRlbnRzKGx8fFtdLHtoaXN0b3J5SWQ6dGhpcz0KLmdldCgiaWQiKX0pO3RoaXMuX3Nl
dFVwTGlzdGVuZXJzKCk7dGhpcy51cGRhdGVUaW1lb3V0SWQ9M0RudWxsfSxfc2V0VXBMaXN0PQpl
bmVyczpmdW5jdGlvbigpe3RoaXMub24oImVycm9yIixmdW5jdGlvbihrLG4saixtLGwpe3RoaXMu
ZXJyb3JIYW5kbGVyKGssbiw9CmosbSxsKX0pO2lmKHRoaXMuY29udGVudHMpe3RoaXMubGlzdGVu
VG8odGhpcy5jb250ZW50cywiZXJyb3IiLGZ1bmN0aW9uKCl7dD0KaGlzLnRyaWdnZXIuYXBwbHko
dGhpcyxbImVycm9yOmNvbnRlbnRzIl0uY29uY2F0KGpRdWVyeS5tYWtlQXJyYXkoYXJndW1lbnRz
PQopKSl9KX10aGlzLm9uKCJjaGFuZ2U6aWQiLGZ1bmN0aW9uKGssail7aWYodGhpcy5jb250ZW50
cyl7dGhpcy5jb250ZW50cy5oaXM9CnRvcnlJZD0zRGp9fSx0aGlzKX0sZXJyb3JIYW5kbGVyOmZ1
bmN0aW9uKGssbixqLG0sbCl7dGhpcy5jbGVhclVwZGF0ZVRpbWVvdT0KdCgpfSxvd25lZEJ5Q3Vy
clVzZXI6ZnVuY3Rpb24oKXtpZighR2FsYXh5fHwhR2FsYXh5LmN1cnJVc2VyKXtyZXR1cm4gZmFs
c2V9PQppZihHYWxheHkuY3VyclVzZXIuaXNBbm9ueW1vdXMoKXx8R2FsYXh5LmN1cnJVc2VyLmlk
IT0zRD0zRHRoaXMuZ2V0KCJ1c2VyX2k9CmQiKSl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfSxj
b250ZW50c0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIF8ucmVkdWNlKF8udj0KYWx1ZXModGhpcy5n
ZXQoInN0YXRlX2RldGFpbHMiKSksZnVuY3Rpb24oaixrKXtyZXR1cm4gaitrfSwwKX0sc2VhcmNo
QXR0cmliPQp1dGVzOlsibmFtZSIsImFubm90YXRpb24iLCJ0YWdzIl0sc2VhcmNoQWxpYXNlczp7
dGl0bGU6Im5hbWUiLHRhZzoidGFncyJ9LGM9CmhlY2tGb3JVcGRhdGVzOmZ1bmN0aW9uKGope2lm
KHRoaXMuY29udGVudHMucnVubmluZygpLmxlbmd0aCl7dGhpcy5zZXRVcGRhdD0KZVRpbWVvdXQo
KX1lbHNle3RoaXMudHJpZ2dlcigicmVhZHkiKTtpZihfLmlzRnVuY3Rpb24oaikpe2ouY2FsbCh0
aGlzKX19cmV0PQp1cm4gdGhpc30sc2V0VXBkYXRlVGltZW91dDpmdW5jdGlvbihqKXtqPTNEanx8
ZS5VUERBVEVfREVMQVk7dmFyIGs9M0R0aGlzO3Q9Cmhpcy5jbGVhclVwZGF0ZVRpbWVvdXQoKTt0
aGlzLnVwZGF0ZVRpbWVvdXRJZD0zRHNldFRpbWVvdXQoZnVuY3Rpb24oKXtrLnJlZj0KcmVzaCgp
fSxqKTtyZXR1cm4gdGhpcy51cGRhdGVUaW1lb3V0SWR9LGNsZWFyVXBkYXRlVGltZW91dDpmdW5j
dGlvbigpe2lmKHRoPQppcy51cGRhdGVUaW1lb3V0SWQpe2NsZWFyVGltZW91dCh0aGlzLnVwZGF0
ZVRpbWVvdXRJZCk7dGhpcy51cGRhdGVUaW1lb3V0SWQ9Cj0zRG51bGx9fSxyZWZyZXNoOmZ1bmN0
aW9uKGssail7az0zRGt8fFtdO2o9M0RqfHx7fTt2YXIgbD0zRHRoaXM7ai5kYXRhPTNEaj0KLmRh
dGF8fHt9O2lmKGsubGVuZ3RoKXtqLmRhdGEuZGV0YWlscz0zRGsuam9pbigiLCIpfXZhciBtPTNE
dGhpcy5jb250ZW50cy5mPQpldGNoKGopO20uZG9uZShmdW5jdGlvbihuKXtsLmNoZWNrRm9yVXBk
YXRlcyhmdW5jdGlvbigpe3RoaXMuZmV0Y2goKX0pfSk7cmU9CnR1cm4gbX0sX2RlbGV0ZTpmdW5j
dGlvbihqKXtpZih0aGlzLmdldCgiZGVsZXRlZCIpKXtyZXR1cm4galF1ZXJ5LndoZW4oKX1yZT0K
dHVybiB0aGlzLnNhdmUoe2RlbGV0ZWQ6dHJ1ZX0sail9LHB1cmdlOmZ1bmN0aW9uKGope2lmKHRo
aXMuZ2V0KCJwdXJnZWQiKSl7PQpyZXR1cm4galF1ZXJ5LndoZW4oKX1yZXR1cm4gdGhpcy5zYXZl
KHtkZWxldGVkOnRydWUscHVyZ2VkOnRydWV9LGopfSx1bmRlbGU9CnRlOmZ1bmN0aW9uKGope2lm
KCF0aGlzLmdldCgiZGVsZXRlZCIpKXtyZXR1cm4galF1ZXJ5LndoZW4oKX1yZXR1cm4gdGhpcy5z
YT0KdmUoe2RlbGV0ZWQ6ZmFsc2V9LGopfSxjb3B5OmZ1bmN0aW9uKG0sayl7bT0zRChtIT0zRD0z
RHVuZGVmaW5lZCk/KG0pOih0cnVlPQopO2lmKCF0aGlzLmlkKXt0aHJvdyBuZXcgRXJyb3IoIllv
dSBtdXN0IHNldCB0aGUgaGlzdG9yeSBJRCBiZWZvcmUgY29weWluZyA9Cml0LiIpfXZhciBqPTNE
e2hpc3RvcnlfaWQ6dGhpcy5pZH07aWYobSl7ai5jdXJyZW50PTNEdHJ1ZX1pZihrKXtqLm5hbWU9
M0RrfT0KdmFyIGw9M0R0aGlzLG49M0RqUXVlcnkucG9zdCh0aGlzLnVybFJvb3Qsaik7aWYobSl7
cmV0dXJuIG4udGhlbihmdW5jdGlvbihvPQope3ZhciBwPTNEbmV3IGUobyk7cmV0dXJuIHAuc2V0
QXNDdXJyZW50KCkuZG9uZShmdW5jdGlvbigpe2wudHJpZ2dlcigiY29waWU9CmQiLGwsbyl9KX0p
fXJldHVybiBuLmRvbmUoZnVuY3Rpb24obyl7bC50cmlnZ2VyKCJjb3BpZWQiLGwsbyl9KX0sc2V0
QXNDdXJyZT0KbnQ6ZnVuY3Rpb24oKXt2YXIgaj0zRHRoaXMsaz0zRGpRdWVyeS5nZXRKU09OKGdh
bGF4eV9jb25maWcucm9vdCsiaGlzdG9yeS9zPQpldF9hc19jdXJyZW50P2lkPTNEIit0aGlzLmlk
KTtrLmRvbmUoZnVuY3Rpb24oKXtqLnRyaWdnZXIoInNldC1hcy1jdXJyZW50Iiw9CmopfSk7cmV0
dXJuIGt9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIkhpc3RvcnkoIit0aGlzLmdldCgiaWQi
KSsiLCIrdGhpcz0KLmdldCgibmFtZSIpKyIpIn19KSk7ZS5VUERBVEVfREVMQVk9M0Q0MDAwO2Uu
Z2V0SGlzdG9yeURhdGE9M0RmdW5jdGlvbiBjKGosPQp2KXt2PTNEdnx8e307dmFyIHI9M0R2LmRl
dGFpbElkc0ZufHxbXTt2YXIgbT0zRHYuaGRjYURldGFpbElkc3x8W107dmFyIHM9M0Q9CmpRdWVy
eS5EZWZlcnJlZCgpLHA9M0RudWxsO2Z1bmN0aW9uIGsodyl7aWYoaj0zRD0zRD0zRCJjdXJyZW50
Iil7cmV0dXJuIGpRdT0KZXJ5LmdldEpTT04oZ2FsYXh5X2NvbmZpZy5yb290KyJoaXN0b3J5L2N1
cnJlbnRfaGlzdG9yeV9qc29uIil9cmV0dXJuIGpRdWVyPQp5LmFqYXgoZ2FsYXh5X2NvbmZpZy5y
b290KyJhcGkvaGlzdG9yaWVzLyIrail9ZnVuY3Rpb24gbyh3KXtyZXR1cm4gdyYmdy5lbXA9CnR5
fWZ1bmN0aW9uIHEoeCl7aWYobyh4KSl7cmV0dXJuW119aWYoXy5pc0Z1bmN0aW9uKHIpKXtyPTNE
cih4KX1pZihfLmlzRnVuYz0KdGlvbihtKSl7bT0zRG0oeCl9dmFyIHc9M0R7fTtpZihyLmxlbmd0
aCl7dy5kYXRhc2V0X2RldGFpbHM9M0RyLmpvaW4oIiwiKX1pPQpmKG0ubGVuZ3RoKXt3LmRhdGFz
ZXRfY29sbGVjdGlvbl9kZXRhaWxzPTNEbS5qb2luKCIsIil9cmV0dXJuIGpRdWVyeS5hamF4KGc9
CmFsYXh5X2NvbmZpZy5yb290KyJhcGkvaGlzdG9yaWVzLyIreC5pZCsiL2NvbnRlbnRzIix7ZGF0
YTp3fSl9dmFyIHQ9M0R2Lmhpcz0KdG9yeUZufHxrLHU9M0R2LmNvbnRlbnRzRm58fHE7dmFyIG49
M0R0KGopO24uZG9uZShmdW5jdGlvbih3KXtwPTNEdztzLm5vdGlmPQp5KHtzdGF0dXM6Imhpc3Rv
cnkgZGF0YSByZXRyaWV2ZWQiLGhpc3RvcnlKU09OOnB9KX0pO24uZmFpbChmdW5jdGlvbih5LHcs
eCk9CntzLnJlamVjdCh5LCJsb2FkaW5nIHRoZSBoaXN0b3J5Iil9KTt2YXIgbD0zRG4udGhlbih1
KTtsLnRoZW4oZnVuY3Rpb24odyl7cz0KLm5vdGlmeSh7c3RhdHVzOiJjb250ZW50cyBkYXRhIHJl
dHJpZXZlZCIsaGlzdG9yeUpTT046cCxjb250ZW50c0pTT046d30pO3MuPQpyZXNvbHZlKHAsdyl9
KTtsLmZhaWwoZnVuY3Rpb24oeSx3LHgpe3MucmVqZWN0KHksImxvYWRpbmcgdGhlIGNvbnRlbnRz
Iix7aGk9CnN0b3J5OnB9KX0pO3JldHVybiBzfTt2YXIgZj0zREJhY2tib25lLkNvbGxlY3Rpb24u
ZXh0ZW5kKGkuTG9nZ2FibGVNaXhpbikuZT0KeHRlbmQoe21vZGVsOmUsdXJsUm9vdDood2luZG93
LmdhbGF4eV9jb25maWc/Z2FsYXh5X2NvbmZpZy5yb290OiIvIikrImFwaS9oPQppc3RvcmllcyIs
aW5pdGlhbGl6ZTpmdW5jdGlvbihrLGope2o9M0RqfHx7fTt0aGlzLmxvZygiSGlzdG9yeUNvbGxl
Y3Rpb24uaW49Cml0aWFsaXplIixhcmd1bWVudHMpO3RoaXMuaW5jbHVkZURlbGV0ZWQ9M0RqLmlu
Y2x1ZGVEZWxldGVkfHxmYWxzZTt0aGlzLnNldD0KVXBMaXN0ZW5lcnMoKX0sc2V0VXBMaXN0ZW5l
cnM6ZnVuY3Rpb24gYSgpe3ZhciBqPTNEdGhpczt0aGlzLm9uKCJjaGFuZ2U6ZGVsPQpldGVkIixm
dW5jdGlvbihrKXt0aGlzLmRlYnVnKCJjaGFuZ2U6ZGVsZXRlZCIsai5pbmNsdWRlRGVsZXRlZCxr
LmdldCgiZGVsZXQ9CmVkIikpO2lmKCFqLmluY2x1ZGVEZWxldGVkJiZrLmdldCgiZGVsZXRlZCIp
KXtqLnJlbW92ZShrKX19KTt0aGlzLm9uKCJjb3BpZT0KZCIsZnVuY3Rpb24oayxsKXt0aGlzLnVu
c2hpZnQobmV3IGUobCxbXSkpfSl9LGNyZWF0ZTpmdW5jdGlvbiBnKG0sayxqLGwpe3ZhPQpyIG89
M0R0aGlzLG49M0RqUXVlcnkuZ2V0SlNPTihnYWxheHlfY29uZmlnLnJvb3QrImhpc3RvcnkvY3Jl
YXRlX25ld19jdXJyZW49CnQiKTtyZXR1cm4gbi5kb25lKGZ1bmN0aW9uKHApe3ZhciBxPTNEbmV3
IGUocCxbXSxqfHx7fSk7by51bnNoaWZ0KHEpO28udHJpZz0KZ2VyKCJuZXctY3VycmVudCIpfSl9
LHRvU3RyaW5nOmZ1bmN0aW9uIGIoKXtyZXR1cm4iSGlzdG9yeUNvbGxlY3Rpb24oIit0aGlzPQou
bGVuZ3RoKyIpIn19KTtyZXR1cm57SGlzdG9yeTplLEhpc3RvcnlDb2xsZWN0aW9uOmZ9fSk7Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkv
Z2FsYXh5LWNlbnRyYWwvY29tbWl0cy8yYTJlYjI4YzA1NzMvCkNoYW5nZXNldDogICAyYTJlYjI4
YzA1NzMKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGNhcmxmZWJlcmhh
cmQKRGF0ZTogICAgICAgIDIwMTUtMDMtMjUgMjM6MzI6MTkrMDA6MDAKU3VtbWFyeTogICAgIEhE
QSBBUEk6IGRlc2VyaWFsaXppbmcgTm9uZSBpbiBtaXNjX2luZm8vaW5mbyBhcyB0aGUgZW1wdHkg
c3RyPQppbmcKQWZmZWN0ZWQgIzogIDIgZmlsZXMKCmRpZmYgLXIgZTJhZDM5N2EyZWM3Zjc0OGJm
MWI5NDE4YzJiMjlhYTM3OGU0MTY0NyAtciAyYTJlYjI4YzA1NzM2Y2Q1ZjgwNGQwNT0KMTE3YWY3
M2EyMDgyYmU1OTAgbGliL2dhbGF4eS9tYW5hZ2Vycy9iYXNlLnB5Ci0tLSBhL2xpYi9nYWxheHkv
bWFuYWdlcnMvYmFzZS5weQorKysgYi9saWIvZ2FsYXh5L21hbmFnZXJzL2Jhc2UucHkKQEAgLTcw
MCw4ICs3MDAsOCBAQAogICAgICAgICAgICAgc2V0YXR0ciggaXRlbSwga2V5LCB2YWwgKQogICAg
ICAgICByZXR1cm4gdmFsCj0yMAotICAgIGRlZiBkZXNlcmlhbGl6ZV9iYXNlc3RyaW5nKCBzZWxm
LCB0cmFucywgaXRlbSwga2V5LCB2YWwgKToKLSAgICAgICAgdmFsID0zRCBzZWxmLnZhbGlkYXRl
LmJhc2VzdHJpbmcoIGtleSwgdmFsICkKKyAgICBkZWYgZGVzZXJpYWxpemVfYmFzZXN0cmluZygg
c2VsZiwgdHJhbnMsIGl0ZW0sIGtleSwgdmFsLCBjb252ZXJ0X25vbmVfPQp0b19lbXB0eT0zREZh
bHNlICk6CisgICAgICAgIHZhbCA9M0QgJycgaWYgKCBjb252ZXJ0X25vbmVfdG9fZW1wdHkgYW5k
IHZhbCBpcyBOb25lICkgZWxzZSBzZWxmLj0KdmFsaWRhdGUuYmFzZXN0cmluZygga2V5LCB2YWwg
KQogICAgICAgICByZXR1cm4gc2VsZi5kZWZhdWx0X2Rlc2VyaWFsaXplciggdHJhbnMsIGl0ZW0s
IGtleSwgdmFsICkKPTIwCiAgICAgZGVmIGRlc2VyaWFsaXplX2Jvb2woIHNlbGYsIHRyYW5zLCBp
dGVtLCBrZXksIHZhbCApOgoKZGlmZiAtciBlMmFkMzk3YTJlYzdmNzQ4YmYxYjk0MThjMmIyOWFh
Mzc4ZTQxNjQ3IC1yIDJhMmViMjhjMDU3MzZjZDVmODA0ZDA1PQoxMTdhZjczYTIwODJiZTU5MCBs
aWIvZ2FsYXh5L21hbmFnZXJzL2hkYXMucHkKLS0tIGEvbGliL2dhbGF4eS9tYW5hZ2Vycy9oZGFz
LnB5CisrKyBiL2xpYi9nYWxheHkvbWFuYWdlcnMvaGRhcy5weQpAQCAtMzg5LDcgKzM4OSw3IEBA
CiAgICAgICAgICAgICAnaGRhX2xkZGEnICAgICAgOiBsYW1iZGEgKmE6ICdoZGEnLAo9MjAKICAg
ICAgICAgICAgICMgcmVtYXBwZWQKLSAgICAgICAgICAgICdpbmZvJyAgICAgICAgICA6IGxhbWJk
YSB0LCBpLCBrOiBpLmluZm8uc3RyaXAoKSBpZiBpc2luc3RhbmNlPQooIGkuaW5mbywgYmFzZXN0
cmluZyApIGVsc2UgaS5pbmZvLAorICAgICAgICAgICAgJ2luZm8nICAgICAgICAgIDogbGFtYmRh
IHQsIGksIGs6IGkuaW5mby5zdHJpcCgpIGlmIGlzaW5zdGFuY2U9CiggaS5pbmZvLCBiYXNlc3Ry
aW5nICkgZWxzZSAnJywKICAgICAgICAgICAgICdtaXNjX2luZm8nICAgICA6IGxhbWJkYSB0LCBp
LCBrOiBzZWxmLnNlcmlhbGl6ZXJzWyAnaW5mbycgXSggPQp0LCBpLCBrICksCiAgICAgICAgICAg
ICAnbWlzY19ibHVyYicgICAgOiBsYW1iZGEgdCwgaSwgazogaS5ibHVyYiwKICAgICAgICAgICAg
ICdnZW5vbWVfYnVpbGQnICA6IGxhbWJkYSB0LCBpLCBrOiBpLmRia2V5LApAQCAtNTg0LDcgKzU4
NCw4IEBACj0yMAogICAgICAgICAgICAgIyByZW1hcHBlZAogICAgICAgICAgICAgJ2dlbm9tZV9i
dWlsZCcgIDogbGFtYmRhIHQsIGksIGssIHY6IHNlbGYuZGVzZXJpYWxpemVfZ2Vub21lX2I9CnVp
bGQoIHQsIGksICdkYmtleScsIHYgKSwKLSAgICAgICAgICAgICdtaXNjX2luZm8nICAgICA6IGxh
bWJkYSB0LCBpLCBrLCB2OiBzZWxmLmRlc2VyaWFsaXplX2Jhc2VzdHJpPQpuZyggdCwgaSwgJ2lu
Zm8nLCB2ICksCisgICAgICAgICAgICAnbWlzY19pbmZvJyAgICAgOiBsYW1iZGEgdCwgaSwgaywg
djogKAorICAgICAgICAgICAgICAgIHNlbGYuZGVzZXJpYWxpemVfYmFzZXN0cmluZyggdCwgaSwg
J2luZm8nLCB2LCBjb252ZXJ0X25vbmU9Cl90b19lbXB0eT0zRFRydWUgKSApLAo9MjAKICAgICAg
ICAgICAgICNUT0RPOiBtaXhpbjogZGVsZXRhYmxlCiAgICAgICAgICAgICAnZGVsZXRlZCcgICAg
ICAgOiBzZWxmLmRlc2VyaWFsaXplX2Jvb2wsCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4
eS9nYWxheHktY2VudHJhbC9jb21taXRzLzYyZDM2Yjk0YmVlYy8KQ2hhbmdlc2V0OiAgIDYyZDM2
Yjk0YmVlYwpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgam1jaGlsdG9u
CkRhdGU6ICAgICAgICAyMDE1LTAzLTI2IDAzOjAxOjI5KzAwOjAwClN1bW1hcnk6ICAgICBSZS1l
bmFibGUgam9iIG1ldHJpY3MgYnkgZGVmYXVsdC4KClRoaXMgaGFzIGJlZW4gYnJva2VuIHNpbmNl
IDE0LjEwLgpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDJhMmViMjhjMDU3MzZjZDVmODA0
ZDA1MTE3YWY3M2EyMDgyYmU1OTAgLXIgNjJkMzZiOTRiZWVjZGZmNzA5YmM0NDc9CjZjMGU5OThi
NzVhNGY5ZGRmIGxpYi9nYWxheHkvY29uZmlnLnB5Ci0tLSBhL2xpYi9nYWxheHkvY29uZmlnLnB5
CisrKyBiL2xpYi9nYWxheHkvY29uZmlnLnB5CkBAIC00NjYsNyArNDY2LDcgQEAKICAgICAgICAg
ICAgIGRhdGF0eXBlc19jb25maWdfZmlsZT0zRFsgJ2NvbmZpZy9kYXRhdHlwZXNfY29uZi54bWwn
LCAnZGF0YXR5PQpwZXNfY29uZi54bWwnLCAnY29uZmlnL2RhdGF0eXBlc19jb25mLnhtbC5zYW1w
bGUnIF0sCiAgICAgICAgICAgICBleHRlcm5hbF9zZXJ2aWNlX3R5cGVfY29uZmlnX2ZpbGU9M0Rb
ICdjb25maWcvZXh0ZXJuYWxfc2VydmljZT0KX3R5cGVzX2NvbmYueG1sJywgJ2V4dGVybmFsX3Nl
cnZpY2VfdHlwZXNfY29uZi54bWwnLCAnY29uZmlnL2V4dGVybmFsX3NlcnZpPQpjZV90eXBlc19j
b25mLnhtbC5zYW1wbGUnIF0sCiAgICAgICAgICAgICBqb2JfY29uZmlnX2ZpbGU9M0RbICdjb25m
aWcvam9iX2NvbmYueG1sJywgJ2pvYl9jb25mLnhtbCcgXSwKLSAgICAgICAgICAgIGpvYl9tZXRy
aWNzX2NvbmZpZ19maWxlPTNEWyAnY29uZmlnL2pvYl9tZXRyaWNzX2NvbmYueG1sJywgJ2pvPQpi
X21ldHJpY3NfY29uZi54bWwnIF0sCisgICAgICAgICAgICBqb2JfbWV0cmljc19jb25maWdfZmls
ZT0zRFsgJ2NvbmZpZy9qb2JfbWV0cmljc19jb25mLnhtbCcsICdqbz0KYl9tZXRyaWNzX2NvbmYu
eG1sJywnY29uZmlnL2pvYl9tZXRyaWNzX2NvbmYueG1sLnNhbXBsZScgXSwKICAgICAgICAgICAg
IGRlcGVuZGVuY3lfcmVzb2x2ZXJzX2NvbmZpZ19maWxlPTNEWyAnY29uZmlnL2RlcGVuZGVuY3lf
cmVzb2x2PQplcnNfY29uZi54bWwnLCAnZGVwZW5kZW5jeV9yZXNvbHZlcnNfY29uZi54bWwnIF0s
CiAgICAgICAgICAgICBqb2JfcmVzb3VyY2VfcGFyYW1zX2ZpbGU9M0RbICdjb25maWcvam9iX3Jl
c291cmNlX3BhcmFtc19jb25mLj0KeG1sJywgJ2pvYl9yZXNvdXJjZV9wYXJhbXNfY29uZi54bWwn
IF0sCiAgICAgICAgICAgICBtaWdyYXRlZF90b29sc19jb25maWc9M0RbICdtaWdyYXRlZF90b29s
c19jb25mLnhtbCcsICdjb25maWcvbT0KaWdyYXRlZF90b29sc19jb25mLnhtbCcgXSwKCgpodHRw
czovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvNGEzZjFmYmY3
ZDFhLwpDaGFuZ2VzZXQ6ICAgNGEzZjFmYmY3ZDFhCkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAz
ClVzZXI6ICAgICAgICBqbWNoaWx0b24KRGF0ZTogICAgICAgIDIwMTUtMDMtMjYgMTg6NDg6MDgr
MDA6MDAKU3VtbWFyeTogICAgIEZpeCBwcm94aWVkIEFQSSB0b29sIGRvd25sb2Fkcy4KCkZyb20g
SVJDOgoKMTc6MjIgPCBrZWxscm90dD4gQW55IGlkZWFzIGFib3V0IGhvdyB0byBkZWFsIHdpdGgg
aHR0cHM6Ly9naXRodWIuY29tL2JncnVlPQpuaW5nL2RvY2tlci1nYWxheHktc3RhYmxlL2lzc3Vl
cy81MCA/CjE3OjIyIDwgbXJzY3JpYmU+IFRpdGxlOiBUb29sIGRvd25sb2FkcyBhcmUgbm90IHdv
cmtpbmcgPUMyPUI3IElzc3VlICM1MCA9Cj1DMj1CNyBiZ3J1ZW5pbmcvZG9ja2VyLWdhbGF4eS1z
dGFibGUgPUMyPUI3IEdpdEh1YiAoYXQKICAgICAgICAgICAgICAgICAgZ2l0aHViLmNvbSkKMTc6
MjQgPCBrZWxscm90dD4gSSB0aGluayBpdHMgZnJvbSBob3cgdGhlIHRvb2wgZG93bmxvYWQgZnVu
Y3Rpb24gdW5saW5rcyBhPQogZmlsZSB3aGlsZSBob2xkaW5nIHRoZSBvcGVuIGZpbGUgaGFuZGxl
CiAgICAgICAgICAgICAgICAgICggaHR0cHM6Ly9naXRodWIuY29tL2dhbGF4eXByb2plY3QvZ2Fs
YXh5L2Jsb2IvZGV2L2xpYi9nYT0KbGF4eS93ZWJhcHBzL2dhbGF4eS9hcGkvdG9vbHMucHkjTDIw
OCApCjE3OjI0IDwgbXJzY3JpYmU+IFRpdGxlOiBnYWxheHkvdG9vbHMucHkgYXQgZGV2ID1DMj1C
NyBnYWxheHlwcm9qZWN0L2dhbGF4eT0KID1DMj1CNyBHaXRIdWIgKGF0IGdpdGh1Yi5jb20pCjE3
OjI3IDwgam1jaGlsdG9uPiBIYXZlIHlvdSB0cmllZCBub3QgdW5saW5raW5nIHRoYXQgZmlsZT8K
MTc6MjggPCBqbWNoaWx0b24+IElmIHRoYXQgZml4ZXMgaXQgSSBoYXZlIG5vIHByb2JsZW0ganVz
dCBsZWF2aW5nIHRoZSBmaWxlPQogaW4gdGVtcCAtIEdhbGF4eSBsZWF2ZXMgYSBsb3Qgb2Ygc3R1
ZmYKICAgICAgICAgICAgICAgICAgIGluIHRlbXAgYW55d2F5CjE3OjQ2IDwga2VsbHJvdHQ+IHll
cCwgdGhhdCBkb2VzIHRoZSB0cmljawoKQ2xvc2VzIGJncnVlbmluZy9kb2NrZXItZ2FsYXh5LXN0
YWJsZSM1MC4KQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAtciA2MmQzNmI5NGJlZWNkZmY3MDli
YzQ0NzZjMGU5OThiNzVhNGY5ZGRmIC1yIDRhM2YxZmJmN2QxYTEzZjQ4ZDA1OWQzPQpkZTE5ZmFj
M2M1NDFkMTQ3YiBsaWIvZ2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2FwaS90b29scy5weQotLS0gYS9s
aWIvZ2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2FwaS90b29scy5weQorKysgYi9saWIvZ2FsYXh5L3dl
YmFwcHMvZ2FsYXh5L2FwaS90b29scy5weQpAQCAtMTQ1LDcgKzE0NSw2IEBACiAgICAgICAgIGlm
IHN1Y2Nlc3M6CiAgICAgICAgICAgICB0cmFucy5yZXNwb25zZS5zZXRfY29udGVudF90eXBlKCAn
YXBwbGljYXRpb24veC1nemlwJyApCiAgICAgICAgICAgICBkb3dubG9hZF9maWxlID0zRCBvcGVu
KCB0b29sX3RhcmJhbGwgKQotICAgICAgICAgICAgb3MudW5saW5rKCB0b29sX3RhcmJhbGwgKQog
ICAgICAgICAgICAgdGFyYmFsbF9wYXRoLCBmaWxlbmFtZSA9M0Qgb3MucGF0aC5zcGxpdCggdG9v
bF90YXJiYWxsICkKICAgICAgICAgICAgIHRyYW5zLnJlc3BvbnNlLmhlYWRlcnNbICJDb250ZW50
LURpc3Bvc2l0aW9uIiBdID0zRCAnYXR0YWNobWVuPQp0OyBmaWxlbmFtZT0zRCIlcy50Z3oiJyAl
ICggaWQgKQogICAgICAgICAgICAgcmV0dXJuIGRvd25sb2FkX2ZpbGUKCgpodHRwczovL2JpdGJ1
Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvYmQ4MTQzYWNhNDNjLwpDaGFu
Z2VzZXQ6ICAgYmQ4MTQzYWNhNDNjCkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAg
ICAgICBndWVybGVyCkRhdGU6ICAgICAgICAyMDE1LTAzLTI3IDE4OjAyOjQ4KzAwOjAwClN1bW1h
cnk6ICAgICBGaXggZGVmYXVsdCB2YWx1ZXMgZm9yIGNvbmRpdGlvbmFsIG11bHRpIHNlbGVjdCBm
aWVsZHMKQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAtciA0YTNmMWZiZjdkMWExM2Y0OGQwNTlk
M2RlMTlmYWMzYzU0MWQxNDdiIC1yIGJkODE0M2FjYTQzY2FhNmM0ODUwOWYzPQoyYzI3M2M5Y2Ey
YmUyMjMxNiBsaWIvZ2FsYXh5L3Rvb2xzL19faW5pdF9fLnB5Ci0tLSBhL2xpYi9nYWxheHkvdG9v
bHMvX19pbml0X18ucHkKKysrIGIvbGliL2dhbGF4eS90b29scy9fX2luaXRfXy5weQpAQCAtMjQz
Myw3ICsyNDMzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKPTIwCiAgICAgICAg
ICAgICAgICAgIyBzdGF0ZSBmb3Igc3Vic2VjdGlvbi9ncm91cAotICAgICAgICAgICAgICAgIGdy
b3VwX3N0YXRlID0zRCBzdGF0ZV9pbnB1dHNbaW5wdXQubmFtZV0KKyAgICAgICAgICAgICAgICBn
cm91cF9zdGF0ZSA9M0Qgc3RhdGVfaW5wdXRzLmdldChpbnB1dC5uYW1lLCB7fSkKPTIwCiAgICAg
ICAgICAgICAgICAgIyBpdGVyYXRlIGFuZCB1cGRhdGUgdmFsdWVzCiAgICAgICAgICAgICAgICAg
aWYgaW5wdXQudHlwZSA9M0Q9M0QgJ3JlcGVhdCc6CkBAIC0yNDQ0LDcgKzI0NDQsOSBAQAogICAg
ICAgICAgICAgICAgIGVsaWYgaW5wdXQudHlwZSA9M0Q9M0QgJ2NvbmRpdGlvbmFsJzoKICAgICAg
ICAgICAgICAgICAgICAgaWYgJ3Rlc3RfcGFyYW0nIGluIHRvb2xfZGljdDoKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RfcGFyYW0gPTNEIHRvb2xfZGljdFsndGVzdF9wYXJhbSddCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhcmFtWyd2YWx1ZSddID0zRCBqc29uaWZ5KGdyb3Vw
X3N0YXRlW3Rlc3RfcD0KYXJhbVsnbmFtZSddXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RfcGFyYW1bJ3ZhbHVlJ10gPTNEIGpzb25pZnkoZ3JvdXBfc3RhdGUuZ2V0KHRlPQpzdF9wYXJh
bVsnbmFtZSddLCBOb25lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdl
IChsZW4gKCB0b29sX2RpY3RbJ2Nhc2VzJ10gKSApOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGl0ZXJhdGUodG9vbF9kaWN0WydjYXNlcyddW2ldWydpbnB1dHMnXSwgaW5wdXQ9Ci5jYXNl
c1tpXS5pbnB1dHMsIHt9LCBvdGhlcl92YWx1ZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAnX19jdXJyZW50X2Nhc2VfXycgaW4gZ3JvdXBfc3RhdGU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaSA9M0QgZ3JvdXBfc3RhdGVbJ19fY3VycmVudF9jYXNlX18nXQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGl0ZXJhdGUodG9vbF9kaWN0WydjYXNlcyddW2ldWydpbnB1dHMn
XSwgaW5wdXQ9Ci5jYXNlc1tpXS5pbnB1dHMsIGdyb3VwX3N0YXRlLCBvdGhlcl92YWx1ZXMpCkBA
IC0yNDYyLDggKzI0NjQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgdG9vbF9kaWN0Wydk
ZWZhdWx0X3ZhbHVlJ10gPTNEIGlucHV0LmdldF9pbml0aWFsX3Y9CmFsdWUodHJhbnMsIG90aGVy
X3ZhbHVlcykKPTIwCiAgICAgICAgICAgICAgICAgICAgICAgICAjIHVwZGF0ZSBpbnB1dCB2YWx1
ZSBmcm9tIHRvb2wgc3RhdGUKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlucHV0X25hbWUg
aW4gc3RhdGVfaW5wdXRzOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xfZGljdFsn
dmFsdWUnXSA9M0Qgc3RhdGVfaW5wdXRzW2lucHV0X25hbWVdCisgICAgICAgICAgICAgICAgICAg
ICAgICB0b29sX2RpY3RbJ3ZhbHVlJ10gPTNEIHN0YXRlX2lucHV0cy5nZXQoaW5wdXRfbmFtZT0K
LCBOb25lKQo9MjAKICAgICAgICAgICAgICAgICAgICAgICAgICMgc2FuaXRpemUgdmFsdWVzCiAg
ICAgICAgICAgICAgICAgICAgICAgICBzYW5pdGl6ZSh0b29sX2RpY3QsICd2YWx1ZScpCgoKaHR0
cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzLzg5NzE2OTM2
NTQ5Ni8KQ2hhbmdlc2V0OiAgIDg5NzE2OTM2NTQ5NgpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4w
MwpVc2VyOiAgICAgICAgZ3VlcmxlcgpEYXRlOiAgICAgICAgMjAxNS0wMy0yNyAxODo1NjoyMCsw
MDowMApTdW1tYXJ5OiAgICAgSGFuZGxlIGZhaWxlZCBsYXRlIHZhbGlkYXRpb24KQWZmZWN0ZWQg
IzogIDEgZmlsZQoKZGlmZiAtciBiZDgxNDNhY2E0M2NhYTZjNDg1MDlmMzJjMjczYzljYTJiZTIy
MzE2IC1yIDg5NzE2OTM2NTQ5NjIxNWE2OWNmYjk5PQo3ZDM2MTNhMjFiNTVjZmVlYiBsaWIvZ2Fs
YXh5L3Rvb2xzL19faW5pdF9fLnB5Ci0tLSBhL2xpYi9nYWxheHkvdG9vbHMvX19pbml0X18ucHkK
KysrIGIvbGliL2dhbGF4eS90b29scy9fX2luaXRfXy5weQpAQCAtMjQ0NiwxMCArMjQ0NiwxMCBA
QAogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXJhbSA9M0QgdG9vbF9kaWN0Wyd0ZXN0
X3BhcmFtJ10KICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGFyYW1bJ3ZhbHVlJ10gPTNE
IGpzb25pZnkoZ3JvdXBfc3RhdGUuZ2V0KHRlPQpzdF9wYXJhbVsnbmFtZSddLCBOb25lKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlIChsZW4gKCB0b29sX2RpY3RbJ2Nh
c2VzJ10gKSApOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGUodG9vbF9kaWN0
WydjYXNlcyddW2ldWydpbnB1dHMnXSwgaW5wdXQ9Ci5jYXNlc1tpXS5pbnB1dHMsIHt9LCBvdGhl
cl92YWx1ZXMpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAnX19jdXJyZW50X2Nhc2VfXycg
aW4gZ3JvdXBfc3RhdGU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA9M0QgZ3JvdXBf
c3RhdGVbJ19fY3VycmVudF9jYXNlX18nXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0
ZXJhdGUodG9vbF9kaWN0WydjYXNlcyddW2ldWydpbnB1dHMnXSwgaW5wdXQ9Ci5jYXNlc1tpXS5p
bnB1dHMsIGdyb3VwX3N0YXRlLCBvdGhlcl92YWx1ZXMpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3VycmVudF9zdGF0ZSA9M0Qge30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiBpID0zRD0zRCBncm91cF9zdGF0ZS5nZXQoJ19fY3VycmVudF9jYXNlX18nPQosIE5vbmUpOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3N0YXRlID0zRCBncm91cF9z
dGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGUodG9vbF9kaWN0WydjYXNl
cyddW2ldWydpbnB1dHMnXSwgaW5wdXQ9Ci5jYXNlc1tpXS5pbnB1dHMsIGN1cnJlbnRfc3RhdGUs
IG90aGVyX3ZhbHVlcykKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAg
ICAjIGNyZWF0ZSBpbnB1dCBkaWN0aW9uYXJ5LCB0cnkgdG8gcGFzcyBvdGhlcl92YWx1ZXMgaWY9
CiB0b19kaWN0IGZ1bmN0aW9uIHN1cHBvcnRzIGl0IGUuZy4gZHluYW1pYyBvcHRpb25zCiAgICAg
ICAgICAgICAgICAgICAgIHRyeToKQEAgLTI0NjEsNyArMjQ2MSwxMSBAQAogICAgICAgICAgICAg
ICAgICAgICBpbnB1dF9uYW1lID0zRCB0b29sX2RpY3QuZ2V0KCduYW1lJykKICAgICAgICAgICAg
ICAgICAgICAgaWYgaW5wdXRfbmFtZToKICAgICAgICAgICAgICAgICAgICAgICAgICMgYmFja3Vw
IGRlZmF1bHQgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xfZGljdFsnZGVmYXVs
dF92YWx1ZSddID0zRCBpbnB1dC5nZXRfaW5pdGlhbF92PQphbHVlKHRyYW5zLCBvdGhlcl92YWx1
ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdG9vbF9kaWN0WydkZWZhdWx0X3ZhbHVlJ10gPTNEIGlucHV0LmdldF9pbml0aT0KYWxf
dmFsdWUodHJhbnMsIG90aGVyX3ZhbHVlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgaW5pdGlhbCB2
YWx1ZSBmYWlsZWQgZHVlIHRvIGltcHJvcGVyIGxhdD0KZSB2YWxpZGF0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzcwo9MjAKICAgICAgICAgICAgICAgICAgICAgICAgICMgdXBk
YXRlIGlucHV0IHZhbHVlIGZyb20gdG9vbCBzdGF0ZQogICAgICAgICAgICAgICAgICAgICAgICAg
dG9vbF9kaWN0Wyd2YWx1ZSddID0zRCBzdGF0ZV9pbnB1dHMuZ2V0KGlucHV0X25hbWU9CiwgTm9u
ZSkKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMv
OTJhMDkxM2EwOGI3LwpDaGFuZ2VzZXQ6ICAgOTJhMDkxM2EwOGI3CkJyYW5jaDogICAgICByZWxl
YXNlXzE1LjAzClVzZXI6ICAgICAgICBndWVybGVyCkRhdGU6ICAgICAgICAyMDE1LTAzLTI3IDE5
OjE3OjA5KzAwOjAwClN1bW1hcnk6ICAgICBTZXQgKGRlZmF1bHQpIGRlZmF1bHQgdmFsdWUgdG8g
Tm9uZQpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDg5NzE2OTM2NTQ5NjIxNWE2OWNmYjk5
N2QzNjEzYTIxYjU1Y2ZlZWIgLXIgOTJhMDkxM2EwOGI3OGRmNTMxNTg3ZGM9Cjc5ZmRjODA0MDA5
NDMzYzBlIGxpYi9nYWxheHkvdG9vbHMvX19pbml0X18ucHkKLS0tIGEvbGliL2dhbGF4eS90b29s
cy9fX2luaXRfXy5weQorKysgYi9saWIvZ2FsYXh5L3Rvb2xzL19faW5pdF9fLnB5CkBAIC0yNDY1
LDYgKzI0NjUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xfZGljdFsnZGVm
YXVsdF92YWx1ZSddID0zRCBpbnB1dC5nZXRfaW5pdGk9CmFsX3ZhbHVlKHRyYW5zLCBvdGhlcl92
YWx1ZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IGluaXRpYWwgdmFsdWUgZmFpbGVkIGR1ZSB0byBp
bXByb3BlciBsYXQ9CmUgdmFsaWRhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv
b2xfZGljdFsnZGVmYXVsdF92YWx1ZSddID0zRCBOb25lCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzcwo9MjAKICAgICAgICAgICAgICAgICAgICAgICAgICMgdXBkYXRlIGlucHV0IHZh
bHVlIGZyb20gdG9vbCBzdGF0ZQoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5
LWNlbnRyYWwvY29tbWl0cy8xMzAzNzY2MWYxYjkvCkNoYW5nZXNldDogICAxMzAzNzY2MWYxYjkK
QnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIG5hdGVmb28KRGF0ZTogICAg
ICAgIDIwMTUtMDMtMzAgMTY6MzI6MzArMDA6MDAKU3VtbWFyeTogICAgIEFwcGx5IEBkYW5ub24n
cyBjaGFuZ2UgZnJvbSBHYWxheHkgdG8gdGhlIFRvb2wgU2hlZCBkaXNhYmxpbmcgPQpzdGF0aWMK
bWlkZGxld2FyZSB3aGVuIHVXU0dJIGlzIGluIHVzZS4KQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlm
ZiAtciA5MmEwOTEzYTA4Yjc4ZGY1MzE1ODdkYzc5ZmRjODA0MDA5NDMzYzBlIC1yIDEzMDM3NjYx
ZjFiOTExZmQ4OTQ2N2ZkPQplN2IwYjRiZTcwZDQzYTBlYiBsaWIvZ2FsYXh5L3dlYmFwcHMvdG9v
bF9zaGVkL2J1aWxkYXBwLnB5Ci0tLSBhL2xpYi9nYWxheHkvd2ViYXBwcy90b29sX3NoZWQvYnVp
bGRhcHAucHkKKysrIGIvbGliL2dhbGF4eS93ZWJhcHBzL3Rvb2xfc2hlZC9idWlsZGFwcC5weQpA
QCAtMTM0LDggKzEzNCwyMyBAQAogICAgICMgV3JhcCB0aGUgd2ViYXBwIGluIHNvbWUgdXNlZnVs
IG1pZGRsZXdhcmUKICAgICBpZiBrd2FyZ3MuZ2V0KCAnbWlkZGxld2FyZScsIFRydWUgKToKICAg
ICAgICAgd2ViYXBwID0zRCB3cmFwX2luX21pZGRsZXdhcmUoIHdlYmFwcCwgZ2xvYmFsX2NvbmYs
ICoqa3dhcmdzICkKLSAgICBpZiBhc2Jvb2woIGt3YXJncy5nZXQoICdzdGF0aWNfZW5hYmxlZCcs
IFRydWUgKSApOgotICAgICAgICB3ZWJhcHAgPTNEIHdyYXBfaW5fc3RhdGljKCB3ZWJhcHAsIGds
b2JhbF9jb25mLCAqKmt3YXJncyApCisgICAgIyBURVNUIEZPUiBVV1NHSSAtLSBUT0RPIHNhdmUg
dGhpcyBzb21ld2hlcmUgc28gd2Ugb25seSBoYXZlIHRvIGRvIGl0ID0Kb25jZS4KKyAgICBpc191
d3NnaSA9M0QgRmFsc2UKKyAgICB0cnk6CisgICAgICAgICMgVGhlIHV3c2dpIG1vZHVsZSBpcyBh
dXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IHRoZSBwYXJlbnQgdXdzZ2kKKyAgICAgICAgIyBwcm9j
ZXNzIGFuZCBvbmx5IGV4aXN0cyB0aGF0IHdheS4gIElmIGFueXRoaW5nIHdvcmtzLCB0aGlzIGlz
IGEKKyAgICAgICAgIyB1d3NnaS1tYW5hZ2VkIHByb2Nlc3MuCisgICAgICAgIGltcG9ydCB1d3Nn
aQorICAgICAgICBpc191d3NnaSA9M0QgdXdzZ2kubnVtcHJvYworICAgICAgICBpc191d3NnaSA9
M0QgVHJ1ZQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgIyBUaGlzIGlzIG5vdCBh
IHV3c2dpIHByb2Nlc3MsIG9yIHNvbWV0aGluZyB3ZW50IGhvcnJpYmx5IHdyb25nLgorICAgICAg
ICBwYXNzCisgICAgaWYgYXNib29sKCBrd2FyZ3MuZ2V0KCAnc3RhdGljX2VuYWJsZWQnLCBUcnVl
KSApOgorICAgICAgICBpZiBpc191d3NnaToKKyAgICAgICAgICAgIGxvZy5lcnJvcigiU3RhdGlj
IG1pZGRsZXdhcmUgaXMgZW5hYmxlZCBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gPQpidXQgdGhpcyBp
cyBhIHV3c2dpIHByb2Nlc3MuICBSZWZ1c2luZyB0byB3cmFwIGluIHN0YXRpYyBtaWRkbGV3YXJl
LiIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3ZWJhcHAgPTNEIHdyYXBfaW5fc3RhdGlj
KCB3ZWJhcHAsIGdsb2JhbF9jb25mLCAqKmt3YXJncyApCiAgICAgIyBDbG9zZSBhbnkgcG9vbGVk
IGRhdGFiYXNlIGNvbm5lY3Rpb25zIGJlZm9yZSBmb3JraW5nCiAgICAgdHJ5OgogICAgICAgICBn
YWxheHkud2ViYXBwcy50b29sX3NoZWQubW9kZWwubWFwcGluZy5tZXRhZGF0YS5lbmdpbmUuY29u
bmVjdGlvbl89CnByb3ZpZGVyLl9wb29sLmRpc3Bvc2UoKQoKCmh0dHBzOi8vYml0YnVja2V0Lm9y
Zy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy8wMGI4ZGVkZjA5OGUvCkNoYW5nZXNldDog
ICAwMGI4ZGVkZjA5OGUKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGpt
Y2hpbHRvbgpEYXRlOiAgICAgICAgMjAxNS0wMy0zMCAxNzozMjo0NyswMDowMApTdW1tYXJ5OiAg
ICAgRml4IGRhdGFiYXNlIGRlYWRsb2NrcyB3aGVuIHJ1bm5pbmcgbGFyZ2Ugd29ya2Zsb3dzLgoK
VGhpcyBmaXggd2FzIGZpcnN0IHRlc3RlZCBhbmQgaW5pdGlhbGx5IHZlcmZpZWQgYnkgTWFyaXVz
IHZhbiBkZW4gQmVlayB3aXRoPQogc3Vic2VxdWVudCBwYXJhbGxlbCB2ZXJpZmljYXRpb24gZnJv
bSBQaGlsaXAgTWFib24gYW5kIEFhcm9uIFBldGthdS4KCkxpa2VseSB0aGVzZSBkZWFkbG9ja3Mg
d2VyZSBpbnRyb2R1Y2VkIGluIDE0LjEwIHdoZW4gSSBhZGRlZCBhbiB1cGRhdGUgdGltZT0KIHRv
IHdvcmtmbG93IGludm9jYXRpb25zIHNvIHdlIGNhbiByZS1ldmFsdWF0ZSB0aGVtIG92ZXIgdGlt
ZSAtIGFuIGV4cGxhbmF0PQppb24gZm9yIHdoeSB0aGUgZGVhZGxvY2tzIGFyZSBsaWtlbHkgb2Nj
dXJpbmcgY2FuIGJlIGZvdW5kIGluIHRoZSBjb2RlIGNvbW09CmVudHMuCkFmZmVjdGVkICM6ICAx
IGZpbGUKCmRpZmYgLXIgMTMwMzc2NjFmMWI5MTFmZDg5NDY3ZmRlN2IwYjRiZTcwZDQzYTBlYiAt
ciAwMGI4ZGVkZjA5OGVhMjAyMmViNTQ4Yz0KMGJlZTBhZGEwZTVmNzNkZTggbGliL2dhbGF4eS9q
b2JzL19faW5pdF9fLnB5Ci0tLSBhL2xpYi9nYWxheHkvam9icy9fX2luaXRfXy5weQorKysgYi9s
aWIvZ2FsYXh5L2pvYnMvX19pbml0X18ucHkKQEAgLTEyNTEsNiArMTI1MSwxNiBAQAogICAgICAg
ICBpZiBqb2IudXNlcjoKICAgICAgICAgICAgIGpvYi51c2VyLnRvdGFsX2Rpc2tfdXNhZ2UgKz0z
RCBieXRlcwo9MjAKKyAgICAgICAgIyBFbXBlcmljYWxseSwgd2UgbmVlZCB0byB1cGRhdGUgam9i
LnVzZXIgYW5kCisgICAgICAgICMgam9iLndvcmtmbG93X2ludm9jYXRpb25fc3RlcC53b3JrZmxv
d19pbnZvY2F0aW9uIGluIHNlcGFyYXRlCisgICAgICAgICMgdHJhbnNhY3Rpb25zLiBCZXN0IGd1
ZXNzIGFzIHRvIHdoeSBpcyB0aGF0IHRoZSB3b3JrZmxvd19pbnZvY2F0aT0Kb24KKyAgICAgICAg
IyBtYXkgb3IgbWF5IG5vdCBleGlzdCB3aGVuIHRoZSBqb2IgaXMgZmlyc3QgbG9hZGVkIGJ5IHRo
ZSBoYW5kbGVyPQogLQorICAgICAgICAjIGFuZCBkZXBlbmRpbmcgb24gd2hldGhlciBpdCBpcyBv
ciBub3Qgc3FsYWxjaGVteSBvcmRlcnMgdGhlIHVwZGE9CnRlcworICAgICAgICAjIGRpZmZlcmVu
dGx5IGFuZCBkZWFkbG9ja3MgY2FuIG9jY3VyIChvbmUgdGhyZWFkIHVwZGF0ZXMgdXNlciBhbmQK
KyAgICAgICAgIyB3YWl0cyBvbiBpbnZvY2F0aW9uIGFuZCB0aGUgb3RoZXIgdXBkYXRlcyBpbnZv
Y2F0aW9uIGFuZCB3YWl0cyBvbgorICAgICAgICAjIHVzZXIpLgorICAgICAgICBzZWxmLnNhX3Nl
c3Npb24uZmx1c2goKQorCiAgICAgICAgICMgZml4IHBlcm1pc3Npb25zCiAgICAgICAgIGZvciBw
YXRoIGluIFsgZHAucmVhbF9wYXRoIGZvciBkcCBpbiBzZWxmLmdldF9tdXRhYmxlX291dHB1dF9m
bmFtZT0KcygpIF06CiAgICAgICAgICAgICB1dGlsLnVtYXNrX2ZpeF9wZXJtcyggcGF0aCwgc2Vs
Zi5hcHAuY29uZmlnLnVtYXNrLCAwNjY2LCBzZWxmLj0KYXBwLmNvbmZpZy5naWQgKQoKCmh0dHBz
Oi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy81YTU1ZTljZGJh
MzcvCkNoYW5nZXNldDogICA1YTU1ZTljZGJhMzcKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMK
VXNlcjogICAgICAgIG1hcnRlbnNvbgpEYXRlOiAgICAgICAgMjAxNS0wMy0zMCAxODowODozMisw
MDowMApTdW1tYXJ5OiAgICAgZml4IG1pc3NpbmcgZGVmYXVsdHMgZm9yIGdldCgpCnBhcmFtcyBj
bGFzcyBvdmVycmlkZSB0aGUgbWV0aG9kIGFuZCBmb3JjZSBkZWZhdWx0IHRvIGJlIGluY2x1ZGVk
CkFmZmVjdGVkICM6ICAxIGZpbGUKCmRpZmYgLXIgMDBiOGRlZGYwOThlYTIwMjJlYjU0OGMwYmVl
MGFkYTBlNWY3M2RlOCAtciA1YTU1ZTljZGJhMzdmNjg1ZmUzYzVmOD0KYThjZDVmMjQ0YjlhM2I3
ODUgbGliL2dhbGF4eS93ZWJhcHBzL2dhbGF4eS9jb250cm9sbGVycy9saWJyYXJ5X2NvbW1vbi5w
eQotLS0gYS9saWIvZ2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2NvbnRyb2xsZXJzL2xpYnJhcnlfY29t
bW9uLnB5CisrKyBiL2xpYi9nYWxheHkvd2ViYXBwcy9nYWxheHkvY29udHJvbGxlcnMvbGlicmFy
eV9jb21tb24ucHkKQEAgLTExMzYsNyArMTEzNiw3IEBACiAgICAgZGVmIG1ha2VfbGlicmFyeV91
cGxvYWRlZF9kYXRhc2V0KCBzZWxmLCB0cmFucywgY250cmxsZXIsIHBhcmFtcywgbmFtZT0KLCBw
YXRoLCB0eXBlLCBsaWJyYXJ5X2J1bmNoLCBpbl9mb2xkZXI9M0ROb25lICk6CiAgICAgICAgIGxp
bmtfZGF0YV9vbmx5ID0zRCBwYXJhbXMuZ2V0KCAnbGlua19kYXRhX29ubHknLCAnY29weV9maWxl
cycgKQogICAgICAgICB1dWlkX3N0ciA9M0QgIHBhcmFtcy5nZXQoICd1dWlkJywgTm9uZSApCi0g
ICAgICAgIGZpbGVfdHlwZSA9M0QgcGFyYW1zLmdldCggJ2ZpbGVfdHlwZScgKQorICAgICAgICBm
aWxlX3R5cGUgPTNEIHBhcmFtcy5nZXQoICdmaWxlX3R5cGUnLCBOb25lICkKICAgICAgICAgbGli
cmFyeV9idW5jaC5yZXBsYWNlX2RhdGFzZXQgPTNEIE5vbmUgIyBub3QgdmFsaWQgZm9yIHRoZXNl
IHR5cGVzPQogb2YgdXBsb2FkCiAgICAgICAgIHVwbG9hZGVkX2RhdGFzZXQgPTNEIHV0aWwuYnVu
Y2guQnVuY2goKQogICAgICAgICBuZXdfbmFtZSA9M0QgbmFtZQpAQCAtMTE1Miw4ICsxMTUyLDgg
QEAKICAgICAgICAgdXBsb2FkZWRfZGF0YXNldC50eXBlID0zRCB0eXBlCiAgICAgICAgIHVwbG9h
ZGVkX2RhdGFzZXQuZXh0ID0zRCBOb25lCiAgICAgICAgIHVwbG9hZGVkX2RhdGFzZXQuZmlsZV90
eXBlID0zRCBmaWxlX3R5cGUKLSAgICAgICAgdXBsb2FkZWRfZGF0YXNldC5kYmtleSA9M0QgcGFy
YW1zLmdldCggJ2Ria2V5JyApCi0gICAgICAgIHVwbG9hZGVkX2RhdGFzZXQuc3BhY2VfdG9fdGFi
ID0zRCBwYXJhbXMuZ2V0KCAnc3BhY2VfdG9fdGFiJyApCisgICAgICAgIHVwbG9hZGVkX2RhdGFz
ZXQuZGJrZXkgPTNEIHBhcmFtcy5nZXQoICdkYmtleScsIE5vbmUgKQorICAgICAgICB1cGxvYWRl
ZF9kYXRhc2V0LnNwYWNlX3RvX3RhYiA9M0QgcGFyYW1zLmdldCggJ3NwYWNlX3RvX3RhYicsIE5v
bmU9CiApCiAgICAgICAgIGlmIGluX2ZvbGRlcjoKICAgICAgICAgICAgIHVwbG9hZGVkX2RhdGFz
ZXQuaW5fZm9sZGVyID0zRCBpbl9mb2xkZXIKICAgICAgICAgdXBsb2FkZWRfZGF0YXNldC5kYXRh
ID0zRCB1cGxvYWRfY29tbW9uLm5ld191cGxvYWQoIHRyYW5zLCBjbnRybGxlPQpyLCB1cGxvYWRl
ZF9kYXRhc2V0LCBsaWJyYXJ5X2J1bmNoICkKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5
L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvNjJjNTY0YmJmMDA2LwpDaGFuZ2VzZXQ6ICAgNjJjNTY0
YmJmMDA2CkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBjYXJsZmViZXJo
YXJkCkRhdGU6ICAgICAgICAyMDE1LTAzLTI1IDE2OjI3OjM1KzAwOjAwClN1bW1hcnk6ICAgICBB
UEksIEhEQXM6IHByb3Blcmx5IGZldGNoIHJlc3VibWl0dGVkIGZsYWcgZnJvbSB0aGUgbmV3IGpv
YiBzdD0KYXRlIGhpc3RvcnkgdGFibGUKCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0Y2Y0
OWE0NDlhYTAwMmIxMzA4Y2RlZGVjM2Q3ZDRiMjA1ZTA1YjMpCkFmZmVjdGVkICM6ICAxIGZpbGUK
CmRpZmYgLXIgNWE1NWU5Y2RiYTM3ZjY4NWZlM2M1ZjhhOGNkNWYyNDRiOWEzYjc4NSAtciA2MmM1
NjRiYmYwMDYyOGVmMTA0OWQ1YT0KYTIyOGJmMmVhZTQyOTIwMzYgbGliL2dhbGF4eS9tYW5hZ2Vy
cy9oZGFzLnB5Ci0tLSBhL2xpYi9nYWxheHkvbWFuYWdlcnMvaGRhcy5weQorKysgYi9saWIvZ2Fs
YXh5L21hbmFnZXJzL2hkYXMucHkKQEAgLTE5Niw2ICsxOTYsMzIgQEAKICAgICAgICAgICAgIGJy
ZWFrCiAgICAgICAgIHJldHVybiBqb2IKPTIwCisgICAgZGVmIF9qb2Jfc3RhdGVfaGlzdG9yeV9x
dWVyeSggc2VsZiwgaGRhICk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBxdWVyeSBv
ZiB0aGUgam9iJ3Mgc3RhdGUgaGlzdG9yeSBmb3IgdGhlIGpvYiB0aGF0IGNyZWF0ZWQ9CiB0aGlz
IGhkYS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlc3Npb24gPTNEIHNlbGYuYXBwLm1vZGVsLmNv
bnRleHQKKyAgICAgICAgSm9iVG9PdXRwdXREYXRhc2V0QXNzb2NpYXRpb24gPTNEIG1vZGVsLkpv
YlRvT3V0cHV0RGF0YXNldEFzc29jaWF0PQppb24KKyAgICAgICAgSm9iU3RhdGVIaXN0b3J5ID0z
RCBtb2RlbC5Kb2JTdGF0ZUhpc3RvcnkKKworICAgICAgICAjIFRPRE86IHRoaXMgZG9lcyBub3Qg
cGxheSB3ZWxsIHdpdGggY29waWVkIGhkYXMKKyAgICAgICAgIyBOT1RFOiBkb24ndCBlYWdlcmxv
YWQgKEpPREEgd2lsbCBsb2FkIHRoZSBoZGEgd2VyZSB1c2luZyEpCisgICAgICAgIGhkYV9pZCA9
M0QgaGRhLmlkCisgICAgICAgIHF1ZXJ5ID0zRCAoIHNlc3Npb24ucXVlcnkoIEpvYlRvT3V0cHV0
RGF0YXNldEFzc29jaWF0aW9uLCBKb2JTdGF0ZT0KSGlzdG9yeSApCisgICAgICAgICAgICAuZmls
dGVyKCBKb2JUb091dHB1dERhdGFzZXRBc3NvY2lhdGlvbi5kYXRhc2V0X2lkID0zRD0zRCBoZGFf
aT0KZCApCisgICAgICAgICAgICAuZmlsdGVyKCBKb2JTdGF0ZUhpc3Rvcnkuam9iX2lkID0zRD0z
RCBKb2JUb091dHB1dERhdGFzZXRBc3NvYz0KaWF0aW9uLmpvYl9pZCApCisgICAgICAgICAgICAu
ZW5hYmxlX2VhZ2VybG9hZHMoIEZhbHNlICkgKQorICAgICAgICByZXR1cm4gcXVlcnkKKworICAg
IGRlZiBoYXNfYmVlbl9yZXN1Ym1pdHRlZCggc2VsZiwgaGRhICk6CisgICAgICAgICIiIgorICAg
ICAgICBSZXR1cm4gVHJ1ZSBpZiB0aGUgaGRhJ3Mgam9iIHdhcyByZXN1Ym1pdHRlZCBhdCBhbnkg
cG9pbnQuCisgICAgICAgICIiIgorICAgICAgICBqb2Jfc3RhdGVzID0zRCBtb2RlbC5Kb2Iuc3Rh
dGVzCisgICAgICAgIHF1ZXJ5ID0zRCAoIHNlbGYuX2pvYl9zdGF0ZV9oaXN0b3J5X3F1ZXJ5KCBo
ZGEgKQorICAgICAgICAgICAgLmZpbHRlciggbW9kZWwuSm9iU3RhdGVIaXN0b3J5LnN0YXRlID0z
RD0zRCBqb2Jfc3RhdGVzLlJFU1VCTUk9ClRURUQgKSApCisgICAgICAgIHJldHVybiBzZWxmLmFw
cC5tb2RlbC5jb250ZXh0LnF1ZXJ5KCBxdWVyeS5leGlzdHMoKSApLnNjYWxhcigpCisKICAgICAj
IC4uLi4gc2VyaWFsaXphdGlvbgogICAgIGRlZiBnZXRfZGlzcGxheV9hcHBzKCBzZWxmLCB0cmFu
cywgaGRhICk6CiAgICAgICAgICIiIgpAQCAtMzI1LDcgKzM1MSw3IEBACiAgICAgICAgICAgICAn
aGlzdG9yeV9jb250ZW50X3R5cGUnLAogICAgICAgICAgICAgJ2RhdGFzZXRfaWQnLAogICAgICAg
ICAgICAgJ3N0YXRlJywgJ2V4dGVuc2lvbicsCi0gICAgICAgICAgICAnZGVsZXRlZCcsICdwdXJn
ZWQnLCAndmlzaWJsZScsICdyZXN1Ym1pdHRlZCcsCisgICAgICAgICAgICAnZGVsZXRlZCcsICdw
dXJnZWQnLCAndmlzaWJsZScsCiAgICAgICAgICAgICAndHlwZScsICd1cmwnCiAgICAgICAgIF0p
CiAgICAgICAgIHNlbGYuYWRkX3ZpZXcoICdkZXRhaWxlZCcsIFsKQEAgLTM0MSw3ICszNjcsOCBA
QAogICAgICAgICAgICAgJ2ZpbGVfZXh0JywgJ2ZpbGVfc2l6ZScsCj0yMAogICAgICAgICAgICAg
J2NyZWF0ZV90aW1lJywgJ3VwZGF0ZV90aW1lJywKLSAgICAgICAgICAgICdtZXRhZGF0YScsICdt
ZXRhX2ZpbGVzJywgJ2RhdGFfdHlwZScsCisgICAgICAgICAgICAncmVzdWJtaXR0ZWQnLAorICAg
ICAgICAgICAgICdtZXRhZGF0YScsICdtZXRhX2ZpbGVzJywgJ2RhdGFfdHlwZScsCiAgICAgICAg
ICAgICAncGVlaycsCj0yMAogICAgICAgICAgICAgI1RPRE86IHdoeSBpcyB0aGlzIG5hbWVkIHV1
aWQhPyBUaGUgaGRhIGRvZXNuJ3QgaGF2ZSBhIHV1aWQgLSA9Cml0J3MgdGhlIHVuZGVybHlpbmcg
ZGF0YXNldCdzIHV1aWQhCkBAIC00MDEsNyArNDI4LDcgQEAKICAgICAgICAgICAgICdjb3BpZWRf
ZnJvbV9oaXN0b3J5X2RhdGFzZXRfYXNzb2NpYXRpb25faWQnICAgICAgICA6IHNlbGYuc2VyPQpp
YWxpemVfaWQsCiAgICAgICAgICAgICAnY29waWVkX2Zyb21fbGlicmFyeV9kYXRhc2V0X2RhdGFz
ZXRfYXNzb2NpYXRpb25faWQnOiBzZWxmLnNlcj0KaWFsaXplX2lkLAo9MjAKLSAgICAgICAgICAg
ICdyZXN1Ym1pdHRlZCcgICA6IGxhbWJkYSB0LCBpLCBrOiBpLl9zdGF0ZSA9M0Q9M0QgdC5hcHAu
bW9kZWwuPQpEYXRhc2V0LnN0YXRlcy5SRVNVQk1JVFRFRCwKKyAgICAgICAgICAgICdyZXN1Ym1p
dHRlZCcgICA6IGxhbWJkYSB0LCBpLCBrOiBzZWxmLmhkYV9tYW5hZ2VyLmhhc19iZWVuX3JlPQpz
dWJtaXR0ZWQoIGkgKSwKPTIwCiAgICAgICAgICAgICAnbWV0YV9maWxlcycgICAgOiBzZWxmLnNl
cmlhbGl6ZV9tZXRhX2ZpbGVzLAogICAgICAgICAgICAgJ2ZpbGVfcGF0aCcgICAgIDogc2VsZi5z
ZXJpYWxpemVfZmlsZV9wYXRoLAoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5
LWNlbnRyYWwvY29tbWl0cy81ZGQ2NTQ5YWFjM2EvCkNoYW5nZXNldDogICA1ZGQ2NTQ5YWFjM2EK
QnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIG5hdGVmb28KRGF0ZTogICAg
ICAgIDIwMTUtMDMtMjUgMjE6MTc6NDkrMDA6MDAKU3VtbWFyeTogICAgIEdldCByaWQgb2YgdGhl
ICJyZXN1Ym1pdHRlZCIgZGF0YXNldCBzdGF0ZSBhbmQgcHJvdmlkZSBhIHNsaWdoPQp0bHkgdXNl
ZnVsCm1lc3NhZ2Ugb24gam9iL2pvYl9zdGF0ZV9oaXN0b3J5LmluZm8gZXhwbGFpbmluZyB0aGUg
cmVzdWJtaXQgcmVhc29uLgoKQWxzbyBQRVAtOCB3aGlsZSBJJ20gaW4gdGhlcmUuCgooY2hlcnJ5
IHBpY2tlZCBmcm9tIGNvbW1pdCBiY2U4MTcxOWViMGE5MWRhMTVlMTEyZDViNWIyZjFjZGY2MGVk
ZGFjKQpBZmZlY3RlZCAjOiAgNCBmaWxlcwoKZGlmZiAtciA2MmM1NjRiYmYwMDYyOGVmMTA0OWQ1
YWEyMjhiZjJlYWU0MjkyMDM2IC1yIDVkZDY1NDlhYWMzYTI5YjE1NjJmZDNlPQo1MzA2YzFjNjll
ZjAwNDdhNyBsaWIvZ2FsYXh5L2pvYnMvX19pbml0X18ucHkKLS0tIGEvbGliL2dhbGF4eS9qb2Jz
L19faW5pdF9fLnB5CisrKyBiL2xpYi9nYWxheHkvam9icy9fX2luaXRfXy5weQpAQCAtOTYyLDEy
ICs5NjIsMTEgQEAKICAgICAgICAgICAgIGpvYi5zZXRfc3RhdGUoIGpvYi5zdGF0ZXMuUEFVU0VE
ICkKICAgICAgICAgICAgIHNlbGYuc2Ffc2Vzc2lvbi5hZGQoIGpvYiApCj0yMAotICAgIGRlZiBt
YXJrX2FzX3Jlc3VibWl0dGVkKCBzZWxmICk6CisgICAgZGVmIG1hcmtfYXNfcmVzdWJtaXR0ZWQo
IHNlbGYsIGluZm89M0ROb25lICk6CiAgICAgICAgIGpvYiA9M0Qgc2VsZi5nZXRfam9iKCkKICAg
ICAgICAgc2VsZi5zYV9zZXNzaW9uLnJlZnJlc2goIGpvYiApCi0gICAgICAgIGZvciBkYXRhc2V0
IGluIFsgZGF0YXNldF9hc3NvYy5kYXRhc2V0IGZvciBkYXRhc2V0X2Fzc29jIGluIGpvYi5vdT0K
dHB1dF9kYXRhc2V0cyArIGpvYi5vdXRwdXRfbGlicmFyeV9kYXRhc2V0cyBdOgotICAgICAgICAg
ICAgZGF0YXNldC5fc3RhdGUgPTNEIG1vZGVsLkRhdGFzZXQuc3RhdGVzLlJFU1VCTUlUVEVECi0g
ICAgICAgICAgICBzZWxmLnNhX3Nlc3Npb24uYWRkKCBkYXRhc2V0ICkKKyAgICAgICAgaWYgaW5m
byBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGpvYi5pbmZvID0zRCBpbmZvCiAgICAgICAgIGpv
Yi5zZXRfc3RhdGUoIG1vZGVsLkpvYi5zdGF0ZXMuUkVTVUJNSVRURUQgKQogICAgICAgICBzZWxm
LnNhX3Nlc3Npb24uYWRkKCBqb2IgKQogICAgICAgICBzZWxmLnNhX3Nlc3Npb24uZmx1c2goKQoK
ZGlmZiAtciA2MmM1NjRiYmYwMDYyOGVmMTA0OWQ1YWEyMjhiZjJlYWU0MjkyMDM2IC1yIDVkZDY1
NDlhYWMzYTI5YjE1NjJmZDNlPQo1MzA2YzFjNjllZjAwNDdhNyBsaWIvZ2FsYXh5L2pvYnMvcnVu
bmVycy9fX2luaXRfXy5weQotLS0gYS9saWIvZ2FsYXh5L2pvYnMvcnVubmVycy9fX2luaXRfXy5w
eQorKysgYi9saWIvZ2FsYXh5L2pvYnMvcnVubmVycy9fX2luaXRfXy5weQpAQCAtMzQxLDggKzM0
MSw4IEBACiAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgIGxvZy5leGNlcHRpb24oJ0NhdWdo
dCBleGNlcHRpb24gaW4gcnVubmVyIHN0YXRlIGhhbmRsZXI6JykKPTIwCi0gICAgZGVmIG1hcmtf
YXNfcmVzdWJtaXR0ZWQoIHNlbGYsIGpvYl9zdGF0ZSApOgotICAgICAgICBqb2Jfc3RhdGUuam9i
X3dyYXBwZXIubWFya19hc19yZXN1Ym1pdHRlZCgpCisgICAgZGVmIG1hcmtfYXNfcmVzdWJtaXR0
ZWQoIHNlbGYsIGpvYl9zdGF0ZSwgaW5mbz0zRE5vbmUgKToKKyAgICAgICAgam9iX3N0YXRlLmpv
Yl93cmFwcGVyLm1hcmtfYXNfcmVzdWJtaXR0ZWQoIGluZm89M0RpbmZvICkKICAgICAgICAgaWYg
bm90IHNlbGYuYXBwLmNvbmZpZy50cmFja19qb2JzX2luX2RhdGFiYXNlOgogICAgICAgICAgICAg
am9iX3N0YXRlLmpvYl93cmFwcGVyLmNoYW5nZV9zdGF0ZSggbW9kZWwuSm9iLnN0YXRlcy5RVUVV
RUQgKQogICAgICAgICAgICAgc2VsZi5hcHAuam9iX21hbmFnZXIuam9iX2hhbmRsZXIuZGlzcGF0
Y2hlci5wdXQoIGpvYl9zdGF0ZS5qb2I9Cl93cmFwcGVyICkKCmRpZmYgLXIgNjJjNTY0YmJmMDA2
MjhlZjEwNDlkNWFhMjI4YmYyZWFlNDI5MjAzNiAtciA1ZGQ2NTQ5YWFjM2EyOWIxNTYyZmQzZT0K
NTMwNmMxYzY5ZWYwMDQ3YTcgbGliL2dhbGF4eS9qb2JzL3J1bm5lcnMvc3RhdGVfaGFuZGxlcnMv
cmVzdWJtaXQucHkKLS0tIGEvbGliL2dhbGF4eS9qb2JzL3J1bm5lcnMvc3RhdGVfaGFuZGxlcnMv
cmVzdWJtaXQucHkKKysrIGIvbGliL2dhbGF4eS9qb2JzL3J1bm5lcnMvc3RhdGVfaGFuZGxlcnMv
cmVzdWJtaXQucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgbG9nZ2luZworCiBmcm9tIGdhbGF4
eSBpbXBvcnQgbW9kZWwKPTIwCj0yMApAQCAtMTMsMzEgKzE0LDQ1IEBACj0yMAo9MjAKIGRlZiBm
YWlsdXJlKGFwcCwgam9iX3J1bm5lciwgam9iX3N0YXRlKToKLSAgICBpZiBnZXRhdHRyKCBqb2Jf
c3RhdGUsICdydW5uZXJfc3RhdGUnLCBOb25lICkgYW5kIGpvYl9zdGF0ZS5ydW5uZXJfc3RhPQp0
ZSBpbiAoIGpvYl9zdGF0ZS5ydW5uZXJfc3RhdGVzLldBTExUSU1FX1JFQUNIRUQsIGpvYl9zdGF0
ZS5ydW5uZXJfc3RhdGVzLk09CkVNT1JZX0xJTUlUX1JFQUNIRUQgKToKLSAgICAgICAgIyBJbnRl
cmNlcHQgam9icyB0aGF0IGhpdCB0aGUgd2FsbHRpbWUgYW5kIGhhdmUgYSB3YWxsdGltZSBvciBu
b25zPQpwZWNpZmljIHJlc3VibWl0IGRlc3RpbmF0aW9uIGNvbmZpZ3VyZWQKKyAgICBpZiAoZ2V0
YXR0cihqb2Jfc3RhdGUsICdydW5uZXJfc3RhdGUnLCBOb25lKQorICAgICAgICBhbmQgam9iX3N0
YXRlLnJ1bm5lcl9zdGF0ZSBpbgorICAgICAgICAoam9iX3N0YXRlLnJ1bm5lcl9zdGF0ZXMuV0FM
TFRJTUVfUkVBQ0hFRCwKKyAgICAgICAgIGpvYl9zdGF0ZS5ydW5uZXJfc3RhdGVzLk1FTU9SWV9M
SU1JVF9SRUFDSEVEKSk6CisgICAgICAgICMgSW50ZXJjZXB0IGpvYnMgdGhhdCBoaXQgdGhlIHdh
bGx0aW1lIGFuZCBoYXZlIGEgd2FsbHRpbWUgb3IKKyAgICAgICAgIyBub25zcGVjaWZpYyByZXN1
Ym1pdCBkZXN0aW5hdGlvbiBjb25maWd1cmVkCiAgICAgICAgIGZvciByZXN1Ym1pdCBpbiBqb2Jf
c3RhdGUuam9iX2Rlc3RpbmF0aW9uLmdldCgncmVzdWJtaXQnKToKLSAgICAgICAgICAgIGlmIHJl
c3VibWl0LmdldCgnY29uZGl0aW9uJywgTm9uZSkgYW5kIHJlc3VibWl0Wydjb25kaXRpb24nXSAh
PQo9M0Qgam9iX3N0YXRlLnJ1bm5lcl9zdGF0ZToKLSAgICAgICAgICAgICAgICBjb250aW51ZSAj
IFRoZXJlIGlzIGEgcmVzdWJtaXQgZGVmaW5lZCBmb3IgdGhlIGRlc3RpbmF0aW9uPQogYnV0IGl0
cyBjb25kaXRpb24gaXMgbm90IGZvciB3YWxsdGltZV9yZWFjaGVkCi0gICAgICAgICAgICBsb2cu
aW5mbygiKCVzLyVzKSBKb2Igd2lsbCBiZSByZXN1Ym1pdHRlZCB0byAnJXMnIGJlY2F1c2UgJXMg
YT0KdCB0aGUgJyVzJyBkZXN0aW5hdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgIGpvYl9zdGF0
ZS5qb2Jfd3JhcHBlci5qb2JfaWQsCi0gICAgICAgICAgICAgICAgICAgIGpvYl9zdGF0ZS5qb2Jf
aWQsCi0gICAgICAgICAgICAgICAgICAgIHJlc3VibWl0WydkZXN0aW5hdGlvbiddLAotICAgICAg
ICAgICAgICAgICAgICBNRVNTQUdFU1tqb2Jfc3RhdGUucnVubmVyX3N0YXRlXSwKLSAgICAgICAg
ICAgICAgICAgICAgam9iX3N0YXRlLmpvYl93cmFwcGVyLmpvYl9kZXN0aW5hdGlvbi5pZCApCisg
ICAgICAgICAgICBpZiAocmVzdWJtaXQuZ2V0KCdjb25kaXRpb24nLCBOb25lKSBhbmQgcmVzdWJt
aXRbJ2NvbmRpdGlvbiddID0KIT0zRAorICAgICAgICAgICAgICAgIGpvYl9zdGF0ZS5ydW5uZXJf
c3RhdGUpOgorICAgICAgICAgICAgICAgICMgVGhlcmUgaXMgYSByZXN1Ym1pdCBkZWZpbmVkIGZv
ciB0aGUgZGVzdGluYXRpb24gYnV0CisgICAgICAgICAgICAgICAgIyBpdHMgY29uZGl0aW9uIGlz
IG5vdCBmb3Igd2FsbHRpbWVfcmVhY2hlZAorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICBsb2cuaW5mbygiKCVzLyVzKSBKb2Igd2lsbCBiZSByZXN1Ym1pdHRlZCB0byAnJXMn
IGJlY2F1c2UgJXMgYT0KdCAiCisgICAgICAgICAgICAgICAgICAgICAidGhlICclcycgZGVzdGlu
YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgam9iX3N0YXRlLmpvYl93cmFwcGVyLmpvYl9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgIGpvYl9zdGF0ZS5qb2JfaWQsCisgICAgICAgICAgICAg
ICAgICAgICByZXN1Ym1pdFsnZGVzdGluYXRpb24nXSwKKyAgICAgICAgICAgICAgICAgICAgIE1F
U1NBR0VTW2pvYl9zdGF0ZS5ydW5uZXJfc3RhdGVdLAorICAgICAgICAgICAgICAgICAgICAgam9i
X3N0YXRlLmpvYl93cmFwcGVyLmpvYl9kZXN0aW5hdGlvbi5pZCApCiAgICAgICAgICAgICAjIGZl
dGNoIEpvYkRlc3RpbmF0aW9uIGZvciB0aGUgaWQgb3IgdGFnCi0gICAgICAgICAgICBuZXdfZGVz
dGluYXRpb24gPTNEIGFwcC5qb2JfY29uZmlnLmdldF9kZXN0aW5hdGlvbihyZXN1Ym1pdFsnZD0K
ZXN0aW5hdGlvbiddKQorICAgICAgICAgICAgbmV3X2Rlc3RpbmF0aW9uID0zRCBhcHAuam9iX2Nv
bmZpZy5nZXRfZGVzdGluYXRpb24oCisgICAgICAgICAgICAgICAgcmVzdWJtaXRbJ2Rlc3RpbmF0
aW9uJ10pCiAgICAgICAgICAgICAjIFJlc29sdmUgZHluYW1pYyBpZiBuZWNlc3NhcnkKLSAgICAg
ICAgICAgIG5ld19kZXN0aW5hdGlvbiA9M0Qgam9iX3N0YXRlLmpvYl93cmFwcGVyLmpvYl9ydW5u
ZXJfbWFwcGVyLmNhPQpjaGVfam9iX2Rlc3RpbmF0aW9uKCBuZXdfZGVzdGluYXRpb24gKQorICAg
ICAgICAgICAgbmV3X2Rlc3RpbmF0aW9uID0zRCAoam9iX3N0YXRlLmpvYl93cmFwcGVyLmpvYl9y
dW5uZXJfbWFwcGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhY2hlX2pvYl9k
ZXN0aW5hdGlvbihuZXdfZGVzdGluYXRpb24pKQogICAgICAgICAgICAgIyBSZXNldCBqb2Igc3Rh
dGUKICAgICAgICAgICAgIGpvYiA9M0Qgam9iX3N0YXRlLmpvYl93cmFwcGVyLmdldF9qb2IoKQog
ICAgICAgICAgICAgaWYgcmVzdWJtaXQuZ2V0KCdoYW5kbGVyJywgTm9uZSk6Ci0gICAgICAgICAg
ICAgICAgbG9nLmRlYnVnKCcoJXMvJXMpIEpvYiByZWFzc2lnbmVkIHRvIGhhbmRsZXIgJXMnLCBq
b2Jfc3RhdD0KZS5qb2Jfd3JhcHBlci5qb2JfaWQsIGpvYl9zdGF0ZS5qb2JfaWQsIHJlc3VibWl0
WydoYW5kbGVyJ10pCisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCcoJXMvJXMpIEpvYiByZWFz
c2lnbmVkIHRvIGhhbmRsZXIgJXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBqb2Jfc3Rh
dGUuam9iX3dyYXBwZXIuam9iX2lkLCBqb2Jfc3RhdGUuam9iX2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1Ym1pdFsnaGFuZGxlciddKQogICAgICAgICAgICAgICAgIGpvYi5zZXRf
aGFuZGxlcihyZXN1Ym1pdFsnaGFuZGxlciddKQogICAgICAgICAgICAgICAgIGpvYl9ydW5uZXIu
c2Ffc2Vzc2lvbi5hZGQoIGpvYiApCiAgICAgICAgICAgICAgICAgIyBJcyB0aGlzIHNhZmUgdG8g
ZG8gaGVyZT8KICAgICAgICAgICAgICAgICBqb2JfcnVubmVyLnNhX3Nlc3Npb24uZmx1c2goKQot
ICAgICAgICAgICAgIyBDYWNoZSB0aGUgZGVzdGluYXRpb24gdG8gcHJldmVudCByZXJ1bm5pbmcg
ZHluYW1pYyBhZnRlciByZXM9CnVibWl0Ci0gICAgICAgICAgICBqb2Jfc3RhdGUuam9iX3dyYXBw
ZXIuam9iX3J1bm5lcl9tYXBwZXIuY2FjaGVkX2pvYl9kZXN0aW5hdGlvbj0KID0zRCBuZXdfZGVz
dGluYXRpb24KKyAgICAgICAgICAgICMgQ2FjaGUgdGhlIGRlc3RpbmF0aW9uIHRvIHByZXZlbnQg
cmVydW5uaW5nIGR5bmFtaWMgYWZ0ZXIKKyAgICAgICAgICAgICMgcmVzdWJtaXQKKyAgICAgICAg
ICAgIGpvYl9zdGF0ZS5qb2Jfd3JhcHBlci5qb2JfcnVubmVyX21hcHBlciBcCisgICAgICAgICAg
ICAgICAgLmNhY2hlZF9qb2JfZGVzdGluYXRpb24gPTNEIG5ld19kZXN0aW5hdGlvbgogICAgICAg
ICAgICAgam9iX3N0YXRlLmpvYl93cmFwcGVyLnNldF9qb2JfZGVzdGluYXRpb24obmV3X2Rlc3Rp
bmF0aW9uKQogICAgICAgICAgICAgIyBDbGVhciBleHRlcm5hbCBJRCAoc3RhdGUgY2hhbmdlIGJl
bG93IGZsdXNoZXMgdGhlIGNoYW5nZSkKICAgICAgICAgICAgIGpvYi5qb2JfcnVubmVyX2V4dGVy
bmFsX2lkID0zRCBOb25lCkBAIC00NSw1ICs2MCw3IEBACiAgICAgICAgICAgICBpZiBqb2IucGFy
YW1zIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgam9iLnBhcmFtcyA9M0Qge30KICAgICAgICAg
ICAgIGpvYl9zdGF0ZS5ydW5uZXJfc3RhdGVfaGFuZGxlZCA9M0QgVHJ1ZQotICAgICAgICAgICAg
am9iX3J1bm5lci5tYXJrX2FzX3Jlc3VibWl0dGVkKCBqb2Jfc3RhdGUgKQorICAgICAgICAgICAg
aW5mbyA9M0QgIlRoaXMgam9iIHdhcyByZXN1Ym1pdHRlZCB0byB0aGUgcXVldWUgYmVjYXVzZSAl
cyBvbiA9Cml0cyAiIFwKKyAgICAgICAgICAgICAgICAgICAiY29tcHV0ZSByZXNvdXJjZS4iICUg
TUVTU0FHRVNbam9iX3N0YXRlLnJ1bm5lcl9zdGF0ZV0KKyAgICAgICAgICAgIGpvYl9ydW5uZXIu
bWFya19hc19yZXN1Ym1pdHRlZChqb2Jfc3RhdGUsIGluZm89M0RpbmZvKQogICAgICAgICAgICAg
cmV0dXJuCgpkaWZmIC1yIDYyYzU2NGJiZjAwNjI4ZWYxMDQ5ZDVhYTIyOGJmMmVhZTQyOTIwMzYg
LXIgNWRkNjU0OWFhYzNhMjliMTU2MmZkM2U9CjUzMDZjMWM2OWVmMDA0N2E3IGxpYi9nYWxheHkv
bW9kZWwvX19pbml0X18ucHkKLS0tIGEvbGliL2dhbGF4eS9tb2RlbC9fX2luaXRfXy5weQorKysg
Yi9saWIvZ2FsYXh5L21vZGVsL19faW5pdF9fLnB5CkBAIC0xMzM1LDkgKzEzMzUsOCBAQAogICAg
ICAgICAgICAgICAgICAgICBESVNDQVJERUQgPTNEICdkaXNjYXJkZWQnLAogICAgICAgICAgICAg
ICAgICAgICBQQVVTRUQgPTNEICdwYXVzZWQnLAogICAgICAgICAgICAgICAgICAgICBTRVRUSU5H
X01FVEFEQVRBID0zRCAnc2V0dGluZ19tZXRhZGF0YScsCi0gICAgICAgICAgICAgICAgICAgIEZB
SUxFRF9NRVRBREFUQSA9M0QgJ2ZhaWxlZF9tZXRhZGF0YScsCi0gICAgICAgICAgICAgICAgICAg
IFJFU1VCTUlUVEVEID0zRCAncmVzdWJtaXR0ZWQnICkKLSAgICAjIGZhaWxlZF9tZXRhZGF0YSBh
bmQgcmVzdWJtaXR0ZWQgYXJlIG9ubHkgdmFsaWQgYXMgRGF0YXNldEluc3RhbmNlIHN0PQphdGVz
IGN1cnJlbnRseQorICAgICAgICAgICAgICAgICAgICBGQUlMRURfTUVUQURBVEEgPTNEICdmYWls
ZWRfbWV0YWRhdGEnKQorICAgICMgZmFpbGVkX21ldGFkYXRhIGlzIG9ubHkgdmFsaWQgYXMgRGF0
YXNldEluc3RhbmNlIHN0YXRlIGN1cnJlbnRseQo9MjAKICAgICBub25fcmVhZHlfc3RhdGVzID0z
RCAoCiAgICAgICAgIHN0YXRlcy5VUExPQUQsCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4
eS9nYWxheHktY2VudHJhbC9jb21taXRzLzY1YjIzMzBiODIzYy8KQ2hhbmdlc2V0OiAgIDY1YjIz
MzBiODIzYwpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgY2FybGZlYmVy
aGFyZApEYXRlOiAgICAgICAgMjAxNS0wMy0zMSAyMjowNTo1MCswMDowMApTdW1tYXJ5OiAgICAg
Rml4IHRvIGJhNDQ0NTI6IHByb3Blcmx5IHNjb3BlIG1vZF9pY29uX2J0biBpbiBkZWZpbmUgbm90
IHJlcXU9CmlyZQpBZmZlY3RlZCAjOiAgMyBmaWxlcwoKZGlmZiAtciA1ZGQ2NTQ5YWFjM2EyOWIx
NTYyZmQzZTUzMDZjMWM2OWVmMDA0N2E3IC1yIDY1YjIzMzBiODIzYzc2MTEzNjliOTdiPQowODI5
MmE2Yzg2NGRlZTExYyBjbGllbnQvZ2FsYXh5L3NjcmlwdHMvdml6L2NpcmNzdGVyLmpzCi0tLSBh
L2NsaWVudC9nYWxheHkvc2NyaXB0cy92aXovY2lyY3N0ZXIuanMKKysrIGIvY2xpZW50L2dhbGF4
eS9zY3JpcHRzL3Zpei9jaXJjc3Rlci5qcwpAQCAtMSwxNiArMSwyMCBAQAogLy8gbG9hZCByZXF1
aXJlZCBsaWJyYXJpZXMKLXJlcXVpcmUoCi1bCityZXF1aXJlKFsKICAgICAndXRpbHMvdXRpbHMn
LAotICAgICdtdmMvdWkvaWNvbi1idXR0b24nLAotICAgICdsaWJzL2ZhcmJ0YXN0aWMnLAotXSwg
ZnVuY3Rpb24obW9kX3V0aWxzLCBtb2RfaWNvbl9idG4pCitdLCBmdW5jdGlvbihtb2RfdXRpbHMp
CiB7CiAgICAgLy8gbG9hZCBjc3MKICAgICBtb2RfdXRpbHMuY3NzTG9hZEZpbGUoInN0YXRpYy9z
dHlsZS9jaXJjc3Rlci5jc3MiKTsKIH0pOwo9MjAKLWRlZmluZShbImxpYnMvdW5kZXJzY29yZSIs
ICJsaWJzL2QzIiwgInZpei92aXN1YWxpemF0aW9uIiwgInV0aWxzL2NvbmZpZyJdPQosIGZ1bmN0
aW9uKF8sIGQzLCB2aXN1YWxpemF0aW9uLCBjb25maWcpIHsKK2RlZmluZShbCisgICAgImxpYnMv
dW5kZXJzY29yZSIsCisgICAgImxpYnMvZDMiLAorICAgICJ2aXovdmlzdWFsaXphdGlvbiIsCisg
ICAgInV0aWxzL2NvbmZpZyIsCisgICAgJ212Yy91aS9pY29uLWJ1dHRvbicsCisgICAgJ2xpYnMv
ZmFyYnRhc3RpYycKK10sIGZ1bmN0aW9uKF8sIGQzLCB2aXN1YWxpemF0aW9uLCBjb25maWcsIG1v
ZF9pY29uX2J0bikgewo9MjAKIC8qKgogICogVXRpbGl0eSBjbGFzcyBmb3Igd29ya2luZyB3aXRo
IFNWRy4KQEAgLTcxLDcgKzc1LDcgQEAKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICB0aWNr
X2Nvb3JkcyA9M0QgWzEsIDAsIDQsIDBdOwogICAgICAgICAgICAgdGV4dF9jb29yZHMgPTNEIFsw
LCA0LCAiLjM1ZW0iLCAiIl07Ci0gICAgICAgICAgID0yMAorCiAgICAgICAgIH0KPTIwCiAgICAg
ICAgIHRpY2tzLmFwcGVuZCgibGluZSIpCkBAIC04MCw3ICs4NCw3IEBACiAgICAgICAgICAgICAg
LmF0dHIoIngyIiwgdGlja19jb29yZHNbMl0pCiAgICAgICAgICAgICAgLmF0dHIoInkxIiwgdGlj
a19jb29yZHNbM10pCiAgICAgICAgICAgICAgLnN0eWxlKCJzdHJva2UiLCAiIzAwMCIpOwotICAg
ICAgID0yMAorCiAgICAgICAgIHJldHVybiB0aWNrcy5hcHBlbmQoInRleHQiKQogICAgICAgICAg
ICAgICAgICAgICAuYXR0cigieCIsIHRleHRfY29vcmRzWzBdKQogICAgICAgICAgICAgICAgICAg
ICAuYXR0cigieSIsIHRleHRfY29vcmRzWzFdKQpAQCAtOTgsMTEgKzEwMiwxMSBAQAogICAgICAg
ICAvLyBVc2UgZGVmYXVsdCBvZiAyIHNpZy4gZGlnaXRzLgogICAgICAgICBpZiAoc2lnRGlnaXRz
ID0zRD0zRD0zRCB1bmRlZmluZWQpCiAgICAgICAgICAgICBzaWdEaWdpdHMgPTNEIDI7Ci0gICAg
ICA9MjAKKwogICAgICAgICAvLyBWZXJpZnkgaW5wdXQgbnVtYmVyCiAgICAgICAgIGlmIChudW0g
PTNEPTNEPTNEIG51bGwpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgID0yMAorCiAg
ICAgICAgIC8vIENhbGN1bGF0ZSByZXR1cm4gdmFsdWUKICAgICAgICAgdmFyIHJ2YWwgPTNEIG51
bGw7CiAgICAgICAgIGlmIChNYXRoLmFicyhudW0pIDwgMSkgewpAQCAtMTQxLDcgKzE0NSw3IEBA
CiAgKi8KIHZhciBDaXJjc3RlclZpZXcgPTNEIEJhY2tib25lLlZpZXcuZXh0ZW5kKHsKICAgICBj
bGFzc05hbWU6ICdjaXJjc3RlcicsCi0gICA9MjAKKwogICAgIGluaXRpYWxpemU6IGZ1bmN0aW9u
KG9wdGlvbnMpIHsKICAgICAgICAgdGhpcy5nZW5vbWUgPTNEIG9wdGlvbnMuZ2Vub21lOwogICAg
ICAgICB0aGlzLmxhYmVsX2FyY19oZWlnaHQgPTNEIDUwOwpAQCAtMTg4LDcgKzE5Miw3IEBACiAg
ICAgICAgICAgICB0cmFja19nYXAgPTNEIHRoaXMubW9kZWwuZ2V0KCdjb25maWcnKS5nZXRfdmFs
dWUoJ3RyYWNrX2dhcCcpLAogICAgICAgICAgICAgLy8gU3VidHJhY3QgMjAgdG8gbWFrZSBzdXJl
IGNocm9tIGxhYmVscyBhcmUgb24gc2NyZWVuLgogICAgICAgICAgICAgbWluX2RpbWVuc2lvbiA9
M0QgTWF0aC5taW4odGhpcy4kZWwud2lkdGgoKSwgdGhpcy4kZWwuaGVpZ2h0KCk9CikgLSAyMCwK
LSAgICAgICAgICAgIC8vIENvbXB1dGUgcmFkaXVzIHN0YXJ0IGJhc2VkIG9uIG1vZGVsLCB3aWxs
IGJlIGNlbnRlcmVkPTIwCisgICAgICAgICAgICAvLyBDb21wdXRlIHJhZGl1cyBzdGFydCBiYXNl
ZCBvbiBtb2RlbCwgd2lsbCBiZSBjZW50ZXJlZAogICAgICAgICAgICAgLy8gYW5kIGZpdCBlbnRp
cmVseSBpbnNpZGUgZWxlbWVudCBieSBkZWZhdWx0LgogICAgICAgICAgICAgcmFkaXVzX3N0YXJ0
ID0zRCBtaW5fZGltZW5zaW9uIC8gMiAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ly
Y3VsYXJfdHJhY2tzLmxlbmd0aCAqIChkYXRhc2V0X2FyY19oZWlnaHQgKz0KIHRyYWNrX2dhcCkg
KwpAQCAtMTk4LDE0ICsyMDIsMTQgQEAKPTIwCiAgICAgICAgICAgICAvLyBDb21wdXRlIHJhbmdl
IG9mIHRyYWNrIHN0YXJ0aW5nIHJhZGlpLgogICAgICAgICAgICAgdHJhY2tzX3N0YXJ0X3JhZGlp
ID0zRCBkMy5yYW5nZShyYWRpdXNfc3RhcnQsIG1pbl9kaW1lbnNpb24gLyA9CjIsIGRhdGFzZXRf
YXJjX2hlaWdodCArIHRyYWNrX2dhcCk7Ci0gICAgICAgICAgID0yMAorCiAgICAgICAgIC8vIE1h
cCBmcm9tIHRyYWNrIHN0YXJ0IHRvIGJvdW5kcy4KICAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXM7
CiAgICAgICAgIHJldHVybiBfLm1hcCh0cmFja3Nfc3RhcnRfcmFkaWksIGZ1bmN0aW9uKHJhZGl1
cykgewogICAgICAgICAgICAgcmV0dXJuIFtyYWRpdXMsIHJhZGl1cyArIGRhdGFzZXRfYXJjX2hl
aWdodF07CiAgICAgICAgIH0pOwogICAgIH0sCi0gICA9MjAKKwogICAgIC8qKgogICAgICAqIFJl
bmRlcnMgY2lyY3VsYXIgdHJhY2tzLCBjaG9yZCB0cmFja3MsIGFuZCBsYWJlbCB0cmFja3MuCiAg
ICAgICovCkBAIC0yNTQsNyArMjU4LDcgQEAKICAgICAgICAgICAgICAgICB9KSkKICAgICAgICAg
ICAgICAgICAuYXR0cigidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgiICsgd2lkdGggLyAyICsgIiwi
ICsgaGVpZ2h0PQogLyAyICsgIikiKQogICAgICAgICAgICAgICAuYXBwZW5kKCdzdmc6ZycpLmF0
dHIoJ2NsYXNzJywgJ3RyYWNrcycpOwotICAgICAgICAgICAgICAgPTIwCisKICAgICAgICAgLy8g
LS0gUmVuZGVyIGNpcmN1bGFyIHRyYWNrcy4gLS0KPTIwCiAgICAgICAgIC8vIENyZWF0ZSBhIHZp
ZXcgZm9yIGVhY2ggdHJhY2sgaW4gdGhlIHZpc3VhbGl6YXRpb24gYW5kIHJlbmRlci4KQEAgLTI2
NiwxMiArMjcwLDEyIEBACiAgICAgICAgICAgICAgICAgICAgIGdlbm9tZTogc2VsZi5nZW5vbWUs
CiAgICAgICAgICAgICAgICAgICAgIHRvdGFsX2dhcDogdG90YWxfZ2FwCiAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgID0yMAorCiAgICAgICAgICAgICB2aWV3LnJlbmRlcigpOwotICAg
ICAgICAgICA9MjAKKwogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAgICAgICAgIH0pOwotICAg
ICAgID0yMAorCiAgICAgICAgIC8vIC0tIFJlbmRlciBjaG9yZHMgdHJhY2tzLiAtLQo9MjAKICAg
ICAgICAgdGhpcy5jaG9yZHNfdmlld3MgPTNEIGNob3Jkc190cmFja3MubWFwKGZ1bmN0aW9uKHRy
YWNrKSB7CkBAIC0yODksMTAgKzI5MywxMCBAQAogICAgICAgICB9KTsKPTIwCiAgICAgICAgIC8v
IC0tIFJlbmRlciBsYWJlbCB0cmFjay4gLS0KLSAgICAgICA9MjAKKwogICAgICAgICAvLyBUcmFj
ayBib3VuZHMgYXJlOgogICAgICAgICAvLyAoYSkgb3V0ZXIgcmFkaXVzIG9mIGxhc3QgY2lyY3Vs
YXIgdHJhY2s7Ci0gICAgICAgIC8vIChiKT0yMAorICAgICAgICAvLyAoYikKICAgICAgICAgdmFy
IG91dGVybW9zdF9yYWRpdXMgPTNEIHRoaXMuY2lyY3VsYXJfdmlld3NbdGhpcy5jaXJjdWxhcl92
aWV3cy5sPQplbmd0aC0xXS5yYWRpdXNfYm91bmRzWzFdLAogICAgICAgICAgICAgdHJhY2tfYm91
bmRzID0zRCBbCiAgICAgICAgICAgICAgICAgb3V0ZXJtb3N0X3JhZGl1cywKQEAgLTMwNSw3ICsz
MDksNyBAQAogICAgICAgICAgICAgZ2Vub21lOiBzZWxmLmdlbm9tZSwKICAgICAgICAgICAgIHRv
dGFsX2dhcDogdG90YWxfZ2FwCiAgICAgICAgIH0pOwotICAgICAgID0yMAorCiAgICAgICAgIHRo
aXMubGFiZWxfdHJhY2tfdmlldy5yZW5kZXIoKTsKICAgICB9LAo9MjAKQEAgLTM1Niw3ICszNjAs
NyBAQAo9MjAKICAgICAgICAgICAgIC8vIFVwZGF0ZSBsYWJlbCB0cmFjay4KICAgICAgICAgICAg
IC8qCi0gICAgICAgICAgICBGSVhNRTogc2hvdWxkIG5ldmVyIGhhdmUgdG8gdXBkYXRlIGxhYmVs
IHRyYWNrIGJlY2F1c2UgdmlzIGFsdz0KYXlzIGV4cGFuZHMgdG8gZml0IGFyZWE9MjAKKyAgICAg
ICAgICAgIEZJWE1FOiBzaG91bGQgbmV2ZXIgaGF2ZSB0byB1cGRhdGUgbGFiZWwgdHJhY2sgYmVj
YXVzZSB2aXMgYWx3PQpheXMgZXhwYW5kcyB0byBmaXQgYXJlYQogICAgICAgICAgICAgd2l0aGlu
IGxhYmVsIHRyYWNrLgogICAgICAgICAgICAgdmFyIHRyYWNrX2JvdW5kcyA9M0QgbmV3X3RyYWNr
X2JvdW5kc1sgbmV3X3RyYWNrX2JvdW5kcy5sZW5ndGg9Ci0xIF07CiAgICAgICAgICAgICB0cmFj
a19ib3VuZHNbMV0gPTNEIHRyYWNrX2JvdW5kc1swXTsKQEAgLTM3Myw3ICszNzcsNyBAQAogICAg
ICAgICB2YXIgdHJhY2tfdmlldyA9M0QgdGhpcy5jaXJjdWxhcl92aWV3c1tvcHRpb25zLmluZGV4
XTsKICAgICAgICAgdGhpcy5jaXJjdWxhcl92aWV3cy5zcGxpY2Uob3B0aW9ucy5pbmRleCwgMSk7
CiAgICAgICAgIHRyYWNrX3ZpZXcuJGVsLnJlbW92ZSgpOwotICAgICAgID0yMAorCiAgICAgICAg
IC8vIFJlY29tcHV0ZSBhbmQgdXBkYXRlIHRyYWNrIGJvdW5kcy4KICAgICAgICAgdmFyIG5ld190
cmFja19ib3VuZHMgPTNEIHRoaXMuZ2V0X3RyYWNrc19ib3VuZHMoKTsKICAgICAgICAgXy5lYWNo
KHRoaXMuY2lyY3VsYXJfdmlld3MsIGZ1bmN0aW9uKHRyYWNrX3ZpZXcsIGkpIHsKQEAgLTM5Miw3
ICszOTYsNyBAQAogICAgICAgICBfLmVhY2godGhpcy5jaG9yZHNfdmlld3MsIGZ1bmN0aW9uKHRy
YWNrX3ZpZXcpIHsKICAgICAgICAgICAgIHRyYWNrX3ZpZXcudXBkYXRlX3JhZGl1c19ib3VuZHMo
bmV3X3RyYWNrX2JvdW5kc1swXSk7CiAgICAgICAgIH0pOwotICAgICAgID0yMAorCiAgICAgfQog
fSk7Cj0yMApAQCAtNDU1LDcgKzQ1OSw3IEBACj0yMAogICAgICAgICAgICAgLy8gQXBwZW5kIHRp
dGxlcyB0byBwYXRocy4KICAgICAgICAgICAgIGNocm9tc19wYXRocy5hcHBlbmQoInRpdGxlIiku
dGV4dChmdW5jdGlvbihkKSB7IHJldHVybiBkLmRhdGEuPQpjaHJvbTsgfSk7Ci0gICAgICAgICAg
ID0yMAorCiAgICAgICAgIC8vIC0tIFJlbmRlciB0cmFjayBkYXRhIGFuZCwgd2hlbiB0cmFjayBk
YXRhIGlzIHJlbmRlcmVkLCBhcHBseSBwcj0KZWZlcmVuY2VzIGFuZCB1cGRhdGUgY2hyb21fZWx0
cyBmaWxsLiAtLQo9MjAKICAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXMsCkBAIC00OTAsNyArNDk0
LDcgQEAKICAgICAgICAgdmFyIG5ld19kID0zRCBkMy5zdmcuYXJjKCkKICAgICAgICAgICAgICAg
ICAgICAgICAgIC5pbm5lclJhZGl1cyh0aGlzLnJhZGl1c19ib3VuZHNbMF0pCiAgICAgICAgICAg
ICAgICAgICAgICAgICAub3V0ZXJSYWRpdXModGhpcy5yYWRpdXNfYm91bmRzWzFdKTsKLSAgICAg
ICA9MjAKKwogICAgICAgICB0aGlzLnBhcmVudF9lbHQuc2VsZWN0QWxsKCdnPnBhdGguY2hyb20t
YmFja2dyb3VuZCcpLnRyYW5zaXRpb24oKS49CmR1cmF0aW9uKDEwMDApLmF0dHIoJ2QnLCBuZXdf
ZCk7Cj0yMAogICAgICAgICB0aGlzLl90cmFuc2l0aW9uX2Nocm9tX2RhdGEoKTsKQEAgLTUxMSw3
ICs1MTUsNyBAQAogICAgICAgICB9Cj0yMAogICAgICAgICAvLyAtLSBTY2FsZSBpbmNyZWFzZWQs
IHNvIHJlbmRlciB2aXNpYmxlIGRhdGEgd2l0aCBtb3JlIGRldGFpbC4gLS0KLSAgICAgICA9MjAK
KwogICAgICAgICB2YXIgc2VsZiA9M0QgdGhpcywKICAgICAgICAgICAgIHV0aWxzID0zRCBuZXcg
U1ZHVXRpbHMoKTsKPTIwCkBAIC01MzksNyArNTQzLDcgQEAKICAgICAgICAgICAgICQud2hlbihk
YXRhX2RlZmVycmVkKS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAvLyBS
ZW1vdmUgY3VycmVudCBkYXRhIHBhdGguCiAgICAgICAgICAgICAgICAgcGF0aF9lbHQucmVtb3Zl
KCk7Ci0gICAgICAgICAgICAgICA9MjAKKwogICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBkYXRh
IGJvdW5kcyB3aXRoIG5ldyBkYXRhLgogICAgICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9kYXRh
X2JvdW5kcygpOwo9MjAKQEAgLTU5OCwxMiArNjAyLDEyIEBACiAgICAgX3RyYW5zaXRpb25fbGFi
ZWxzOiBmdW5jdGlvbigpIHt9LAo9MjAKICAgICAvKioKLSAgICAgKiBVcGRhdGUgZGF0YSBib3Vu
ZHMuIElmIHRoZXJlIGFyZSBuZXdfYm91bmRzLCB1c2UgdGhlbTsgb3RoZXJ3aXNlIHVzPQplPTIw
CisgICAgICogVXBkYXRlIGRhdGEgYm91bmRzLiBJZiB0aGVyZSBhcmUgbmV3X2JvdW5kcywgdXNl
IHRoZW07IG90aGVyd2lzZSB1c2UKICAgICAgKiBkZWZhdWx0IGRhdGEgYm91bmRzLgogICAgICAq
LwogICAgIF91cGRhdGVfZGF0YV9ib3VuZHM6IGZ1bmN0aW9uKG5ld19ib3VuZHMpIHsKICAgICAg
ICAgdmFyIG9sZF9ib3VuZHMgPTNEIHRoaXMuZGF0YV9ib3VuZHM7Ci0gICAgICAgIHRoaXMuZGF0
YV9ib3VuZHMgPTNEIG5ld19ib3VuZHMgfHw9MjAKKyAgICAgICAgdGhpcy5kYXRhX2JvdW5kcyA9
M0QgbmV3X2JvdW5kcyB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRfZGF0
YV9ib3VuZHModGhpcy50cmFjay5nZXQoJ2RhdGFfbWFuYWc9CmVyJykuZ2V0X2dlbm9tZV93aWRl
X2RhdGEodGhpcy5nZW5vbWUpKTsKICAgICAgICAgdGhpcy5fdHJhbnNpdGlvbl9jaHJvbV9kYXRh
KCk7CiAgICAgfSwKQEAgLTYyNCw3ICs2MjgsNyBAQAo9MjAKICAgICAgICAgICAgIC8vIFNldCBt
aW4sIG1heCB2YWx1ZSBpbiBjb25maWcgc28gdGhhdCB0aGV5IGNhbiBiZSBhZGp1c3RlZC4gPQpN
YWtlIHRoaXMgc2lsZW50CiAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZXNlIGF0dHJpYnV0ZXMg
YXJlIHdhdGNoZWQgZm9yIGNoYW5nZXMgYW5kIHRoZSB2aT0KeiBpcyB1cGRhdGVkCi0gICAgICAg
ICAgICAvLyBhY2NvcmRpbmdseSAoc2V0IHVwIGluIGluaXRpYWxpemUpLiBCZWNhdXNlIHdlIGFy
ZSBzZXR0aW5nID0KdXAsIHdlIGRvbid0IHdhbnQ9MjAKKyAgICAgICAgICAgIC8vIGFjY29yZGlu
Z2x5IChzZXQgdXAgaW4gaW5pdGlhbGl6ZSkuIEJlY2F1c2Ugd2UgYXJlIHNldHRpbmcgPQp1cCwg
d2UgZG9uJ3Qgd2FudAogICAgICAgICAgICAgLy8gdGhlIHdhdGNoIHRvIHRyaWdnZXIgZXZlbnRz
IGhlcmUuCiAgICAgICAgICAgICB0cmFjay5nZXQoJ2NvbmZpZycpLnNldF92YWx1ZSgnbWluX3Zh
bHVlJywgc2VsZi5kYXRhX2JvdW5kc1swXT0KLCB7c2lsZW50OiB0cnVlfSk7CiAgICAgICAgICAg
ICB0cmFjay5nZXQoJ2NvbmZpZycpLnNldF92YWx1ZSgnbWF4X3ZhbHVlJywgc2VsZi5kYXRhX2Jv
dW5kc1sxXT0KLCB7c2lsZW50OiB0cnVlfSk7CkBAIC02NjAsNyArNjY0LDcgQEAKICAgICBfZ2V0
X3BhdGhfZnVuY3Rpb246IGZ1bmN0aW9uKGNocm9tX2FyYywgY2hyb21fZGF0YSkge30sCj0yMAog
ICAgIC8qKgotICAgICAqIFJldHVybnMgYXJjIGxheW91dHMgZm9yIGdlbm9tZSdzIGNocm9tb3Nv
bWVzL2NvbnRpZ3MuIEFyY3MgYXJlIGFycmE9Cm5nZWQgaW4gYSBjaXJjbGU9MjAKKyAgICAgKiBS
ZXR1cm5zIGFyYyBsYXlvdXRzIGZvciBnZW5vbWUncyBjaHJvbW9zb21lcy9jb250aWdzLiBBcmNz
IGFyZSBhcnJhPQpuZ2VkIGluIGEgY2lyY2xlCiAgICAgICogc2VwYXJhdGVkIGJ5IGdhcHMuCiAg
ICAgICovCiAgICAgX2Nocm9tc19sYXlvdXQ6IGZ1bmN0aW9uKCkgewpAQCAtNzAwLDE0ICs3MDQs
MTQgQEAKICAgICAgKiBSZW5kZXIgbGFiZWxzLgogICAgICAqLwogICAgIF9yZW5kZXJfZGF0YTog
ZnVuY3Rpb24oc3ZnKSB7Ci0gICAgICAgIC8vIC0tIEFkZCBjaHJvbW9zb21lIGxhYmVsIHdoZXJl
IGl0IHdpbGwgZml0OyBhbiBhbHRlcm5hdGl2ZSBsYWJlbD0KaW5nIG1lY2hhbmlzbT0yMAorICAg
ICAgICAvLyAtLSBBZGQgY2hyb21vc29tZSBsYWJlbCB3aGVyZSBpdCB3aWxsIGZpdDsgYW4gYWx0
ZXJuYXRpdmUgbGFiZWw9CmluZyBtZWNoYW5pc20KICAgICAgICAgLy8gd291bGQgYmUgbmljZSBm
b3Igc21hbGwgY2hyb21vc29tZXMuIC0tCiAgICAgICAgIHZhciBzZWxmID0zRCB0aGlzLAogICAg
ICAgICAgICAgY2hyb21fYXJjcyA9M0Qgc3ZnLnNlbGVjdEFsbCgnZycpOwo9MjAKICAgICAgICAg
Y2hyb21fYXJjcy5zZWxlY3RBbGwoJ3BhdGgnKQogICAgICAgICAgICAgLmF0dHIoJ2lkJywgZnVu
Y3Rpb24oZCkgeyByZXR1cm4gJ2xhYmVsLScgKyBkLmRhdGEuY2hyb207IH0pOwotICAgICAgICAg
PTIwCisKICAgICAgICAgY2hyb21fYXJjcy5hcHBlbmQoInN2Zzp0ZXh0IikKICAgICAgICAgICAg
IC5maWx0ZXIoZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAgIHJldHVybiBkLmVuZEFuZ2xl
IC0gZC5zdGFydEFuZ2xlID4gc2VsZi5taW5fYXJjX2xlbjsKQEAgLTg1NywxMiArODYxLDEyIEBA
CiAgICAgICAgICAgICAgICAgcmV0dXJuICJyb3RhdGUoOTApIjsKICAgICAgICAgICAgIH07Cj0y
MAotICAgICAgICAvLyBGSVhNRTo9MjAKKyAgICAgICAgLy8gRklYTUU6CiAgICAgICAgIC8vICgx
KSB1c2luZyBtaW5fbWF4IGNsYXNzIGJlbG93IGlzIG5lZWRlZCBmb3IgX3VwZGF0ZV9taW5fbWF4
LCB3aD0KaWNoIGNvdWxkIGJlIGltcHJvdmVkLgogICAgICAgICAvLyAoMikgc2hvd2luZyBjb25m
aWcgb24gdGljayBjbGljayBzaG91bGQgYmUgcmVwbGFjZWQgYnkgcHJvcGVyIHQ9CnJhY2sgY29u
ZmlnIGljb24uCj0yMAogICAgICAgICAvLyBEcmF3IG1pbiwgbWF4IG9uIGZpcnN0IGNocm9tIG9u
bHkuCi0gICAgICAgIHZhciB0aWNrcyA9M0QgdGhpcy5kcmF3VGlja3ModGhpcy5wYXJlbnRfZWx0
LCBbIHRoaXMuY2hyb21zX2xheW91dD0KWzBdIF0sPTIwCisgICAgICAgIHZhciB0aWNrcyA9M0Qg
dGhpcy5kcmF3VGlja3ModGhpcy5wYXJlbnRfZWx0LCBbIHRoaXMuY2hyb21zX2xheW91dD0KWzBd
IF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFfYm91bmRz
X3RpY2tzX2ZuKCksIHRleHRUcmFucz0KZm9ybSwgdHJ1ZSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIC5jbGFzc2VkKCdtaW5fbWF4JywgdHJ1ZSk7Cj0yMApAQCAtODcyLDcgKzg3Niw3IEBACiAg
ICAgICAgICAgICAgICAgdmFyIHZpZXcgPTNEIG5ldyBjb25maWcuQ29uZmlnU2V0dGluZ0NvbGxl
Y3Rpb25WaWV3KHsKICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogc2VsZi50cmFjay5n
ZXQoJ2NvbmZpZycpCiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgdmlldy5y
ZW5kZXJfaW5fbW9kYWwoJ0NvbmZpZ3VyZSBUcmFjaycpOz0yMAorICAgICAgICAgICAgICAgIHZp
ZXcucmVuZGVyX2luX21vZGFsKCdDb25maWd1cmUgVHJhY2snKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKPTIwCkBAIC05NTEsNyArOTU1LDcgQEAKIHZhciBDaXJjc3RlckJpZ1dpZ1Ry
YWNrVmlldyA9M0QgQ2lyY3N0ZXJRdWFudGl0YXRpdmVUcmFja1ZpZXcuZXh0ZW5kKHsKPTIwCiAg
ICAgZ2V0X2RhdGFfYm91bmRzOiBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIC8vIFNldCBtYXgg
YWNyb3NzIGRhdGFzZXQgYnkgZXh0cmFjdGluZyBhbGwgdmFsdWVzLCBmbGF0dGVuaW5nIHRoZT0K
bSBpbnRvIGE9MjAKKyAgICAgICAgLy8gU2V0IG1heCBhY3Jvc3MgZGF0YXNldCBieSBleHRyYWN0
aW5nIGFsbCB2YWx1ZXMsIGZsYXR0ZW5pbmcgdGhlPQptIGludG8gYQogICAgICAgICAvLyBzaW5n
bGUgYXJyYXksIGFuZCBnZXR0aW5nIHRoaXJkIHF1YXJ0aWxlLgogICAgICAgICB2YXIgdmFsdWVz
ID0zRCBfLmZsYXR0ZW4oIF8ubWFwKGRhdGEsIGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgIGlm
IChkKSB7CkBAIC05NjUsOCArOTY5LDggQEAKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSkgKTsKLSAgICAgICA9MjAKLSAgICAgICAgLy8gRm9yIG1h
eCwgdXNlIDk4JSBxdWFudGlsZSBpbiBhdHRlbXB0IHRvIGF2b2lkIHZlcnkgbGFyZ2UgdmFsdWVz
PQouIEhvd2V2ZXIsIHRoaXMgbWF4IG1heSBiZSAwPTIwCisKKyAgICAgICAgLy8gRm9yIG1heCwg
dXNlIDk4JSBxdWFudGlsZSBpbiBhdHRlbXB0IHRvIGF2b2lkIHZlcnkgbGFyZ2UgdmFsdWVzPQou
IEhvd2V2ZXIsIHRoaXMgbWF4IG1heSBiZSAwCiAgICAgICAgIC8vIGZvciBzcGFyc2VseSBwb3B1
bGF0ZWQgZGF0YSwgc28gdXNlIG1heCBpbiB0aGF0IGNhc2UuCiAgICAgICAgIHJldHVybiBbIF8u
bWluKHZhbHVlcyksIHRoaXMuX3F1YW50aWxlKHZhbHVlcywgMC45OCkgfHwgXy5tYXgodmFsdT0K
ZXMpIF07CiAgICAgfQpAQCAtMTA2OCwxMyArMTA3MiwxMyBAQAogICAgICAgICAgICAgICAgIGdl
bm9tZSAgICAgICAgICAgICAgOiBnZW5vbWUsCiAgICAgICAgICAgICAgICAgbW9kZWwgICAgICAg
ICAgICAgICA6IHZpcwogICAgICAgICAgICAgfSk7Ci0gICAgICAgPTIwCisKICAgICAgICAgLy8g
UmVuZGVyIHZpenVhbGl6YXRpb24KICAgICAgICAgdml6X3ZpZXcucmVuZGVyKCk7Ci0gICAgICAg
PTIwCisKICAgICAgICAgLy8gc2V0dXAgdGl0bGUKICAgICAgICAgJCgnI2NlbnRlciAudW5pZmll
ZC1wYW5lbC1oZWFkZXItaW5uZXInKS5hcHBlbmQoZ2FsYXh5X2NvbmZpZy5hcHAuPQp2aXpfY29u
ZmlnLnRpdGxlICsgIiAiICsgZ2FsYXh5X2NvbmZpZy5hcHAudml6X2NvbmZpZy5kYmtleSk7Ci0g
ICA9MjAKKwogICAgICAgICAvLyBzZXR1cCBtZW51CiAgICAgICAgIHZhciBtZW51ID0zRCBtb2Rf
aWNvbl9idG4uY3JlYXRlX2ljb25fYnV0dG9uc19tZW51KFsKICAgICAgICAgewpAQCAtMTEwMCw3
ICsxMTA0LDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvLyBzaG93IHNhdmlu
ZyBkaWFsb2cgYm94CiAgICAgICAgICAgICAgICAgR2FsYXh5Lm1vZGFsLnNob3coe3RpdGxlOiAi
U2F2aW5nLi4uIiwgYm9keTogInByb2dyZXNzIiB9KTsKLSAgICA9MjAKKwogICAgICAgICAgICAg
ICAgIC8vIHNlbmQgdG8gc2VydmVyCiAgICAgICAgICAgICAgICAgJC5hamF4KHsKICAgICAgICAg
ICAgICAgICAgICAgdXJsOiBnYWxheHlfY29uZmlnLnJvb3QgKyAidmlzdWFsaXphdGlvbi9zYXZl
IiwKQEAgLTExMzIsMTEgKzExMzYsMTEgQEAKICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRp
b24gPTNEIGdhbGF4eV9jb25maWcucm9vdCArICJ2aXN1YWxpemF0aW9uL2xpPQpzdCI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH1dLCB7IHRvb2x0aXBfY29uZmlnOiB7IHBsYWNlbWVudDogJ2Jv
dHRvbScgfSB9KTsKLSAgICAgICAgICAgPTIwCisKICAgICAgICAgLy8gYWRkIG1lbnUKICAgICAg
ICAgbWVudS4kZWwuYXR0cigic3R5bGUiLCAiZmxvYXQ6IHJpZ2h0Iik7CiAgICAgICAgICQoIiNj
ZW50ZXIgLnVuaWZpZWQtcGFuZWwtaGVhZGVyLWlubmVyIikuYXBwZW5kKG1lbnUuJGVsKTsKLSAg
ICAgICAgICAgPTIwCisKICAgICAgICAgLy8gbWFudWFsIHRvb2x0aXAgY29uZmlnIGJlY2F1c2Ug
ZGVmYXVsdCBncmF2aXR5IGlzIFMgYW5kIGNhbm5vdCBiPQplIGNoYW5nZWQKICAgICAgICAgJCgi
Lm1lbnUtYnV0dG9uIikudG9vbHRpcCggeyBwbGFjZW1lbnQ6ICdib3R0b20nIH0gKTsKICAgICB9
CgpkaWZmIC1yIDVkZDY1NDlhYWMzYTI5YjE1NjJmZDNlNTMwNmMxYzY5ZWYwMDQ3YTcgLXIgNjVi
MjMzMGI4MjNjNzYxMTM2OWI5N2I9CjA4MjkyYTZjODY0ZGVlMTFjIHN0YXRpYy9zY3JpcHRzL3Bh
Y2tlZC92aXovY2lyY3N0ZXIuanMKLS0tIGEvc3RhdGljL3NjcmlwdHMvcGFja2VkL3Zpei9jaXJj
c3Rlci5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvdml6L2NpcmNzdGVyLmpzCkBAIC0x
LDEgKzEsMSBAQAotcmVxdWlyZShbInV0aWxzL3V0aWxzIiwibXZjL3VpL2ljb24tYnV0dG9uIiwi
bGlicy9mYXJidGFzdGljIixdLGZ1bmN0aW9uKGI9CixhKXtiLmNzc0xvYWRGaWxlKCJzdGF0aWMv
c3R5bGUvY2lyY3N0ZXIuY3NzIil9KTtkZWZpbmUoWyJsaWJzL3VuZGVyc2NvcmUiLD0KImxpYnMv
ZDMiLCJ2aXovdmlzdWFsaXphdGlvbiIsInV0aWxzL2NvbmZpZyJdLGZ1bmN0aW9uKGgsbSxqLGMp
e3ZhciBuPTNEQmFjPQprYm9uZS5Nb2RlbC5leHRlbmQoe2lzX3Zpc2libGU6ZnVuY3Rpb24ocixv
KXt2YXIgcD0zRHIuZ2V0Qm91bmRpbmdDbGllbnRSZWM9CnQoKSxxPTNEJCgic3ZnIilbMF0uZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYocC5yaWdodDwwfHxwLmxlZnQ+cS5yaWdodHx8cD0KLmJv
dHRvbTwwfHxwLnRvcD5xLmJvdHRvbSl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfX0pO3ZhciBp
PTNEe2RyYXdUaWNrczpmPQp1bmN0aW9uKHMscix3LHEsbyl7dmFyIHY9M0RzLmFwcGVuZCgiZyIp
LnNlbGVjdEFsbCgiZyIpLmRhdGEocikuZW50ZXIoKS5hcHA9CmVuZCgiZyIpLnNlbGVjdEFsbCgi
ZyIpLmRhdGEodykuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRpY2siKS5hdD0K
dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oeCl7cmV0dXJuInJvdGF0ZSgiKyh4LmFuZ2xlKjE4MC9N
YXRoLlBJLTkwKSsiKXRyYW5zPQpsYXRlKCIreC5yYWRpdXMrIiwwKSJ9KTt2YXIgdT0zRFtdLHQ9
M0RbXSxwPTNEZnVuY3Rpb24oeCl7cmV0dXJuIHguYW5nbGU+TWE9CnRoLlBJPyJlbmQiOm51bGx9
O2lmKG8pe3U9M0RbMCwwLDAsLTRdO3Q9M0RbNCwwLCIiLCIuMzVlbSJdO3A9M0RudWxsfWVsc2V7
dT0KPTNEWzEsMCw0LDBdO3Q9M0RbMCw0LCIuMzVlbSIsIiJdfXYuYXBwZW5kKCJsaW5lIikuYXR0
cigieDEiLHVbMF0pLmF0dHIoInkxPQoiLHVbMV0pLmF0dHIoIngyIix1WzJdKS5hdHRyKCJ5MSIs
dVszXSkuc3R5bGUoInN0cm9rZSIsIiMwMDAiKTtyZXR1cm4gdi5hcHA9CmVuZCgidGV4dCIpLmF0
dHIoIngiLHRbMF0pLmF0dHIoInkiLHRbMV0pLmF0dHIoImR4Iix0WzJdKS5hdHRyKCJkeSIsdFsz
XSkuYT0KdHRyKCJ0ZXh0LWFuY2hvciIscCkuYXR0cigidHJhbnNmb3JtIixxKS50ZXh0KGZ1bmN0
aW9uKHgpe3JldHVybiB4LmxhYmVsfSl9PQosZm9ybWF0TnVtOmZ1bmN0aW9uKHAsbyl7aWYobz0z
RD0zRD0zRHVuZGVmaW5lZCl7bz0zRDJ9aWYocD0zRD0zRD0zRG51bGwpe3I9CmV0dXJuIG51bGx9
dmFyIHI9M0RudWxsO2lmKE1hdGguYWJzKHApPDEpe3I9M0RwLnRvUHJlY2lzaW9uKG8pfWVsc2V7
dmFyIHE9Cj0zRE1hdGgucm91bmQocC50b1ByZWNpc2lvbihvKSk7cD0zRE1hdGguYWJzKHApO2lm
KHA8MTAwMCl7cj0zRHF9ZWxzZXtpZihwPD0KMTAwMDAwMCl7cj0zRE1hdGgucm91bmQoKHEvMTAw
MCkudG9QcmVjaXNpb24oMykpLnRvRml4ZWQoMCkrIksifWVsc2V7aWYocDwxPQowMDAwMDAwMDAp
e3I9M0RNYXRoLnJvdW5kKChxLzEwMDAwMDApLnRvUHJlY2lzaW9uKDMpKS50b0ZpeGVkKDApKyJN
In19fX1yZXQ9CnVybiByfX07dmFyIGQ9M0RCYWNrYm9uZS5Nb2RlbC5leHRlbmQoe30pO3ZhciBh
PTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2NsYT0Kc3NOYW1lOiJjaXJjc3RlciIsaW5pdGlhbGl6
ZTpmdW5jdGlvbihvKXt0aGlzLmdlbm9tZT0zRG8uZ2Vub21lO3RoaXMubGFiZWxfPQphcmNfaGVp
Z2h0PTNENTA7dGhpcy5zY2FsZT0zRDE7dGhpcy5jaXJjdWxhcl92aWV3cz0zRG51bGw7dGhpcy5j
aG9yZHNfdmlld3M9Cj0zRG51bGw7dGhpcy5tb2RlbC5nZXQoImRyYXdhYmxlcyIpLm9uKCJhZGQi
LHRoaXMuYWRkX3RyYWNrLHRoaXMpO3RoaXMubW9kZT0KbC5nZXQoImRyYXdhYmxlcyIpLm9uKCJy
ZW1vdmUiLHRoaXMucmVtb3ZlX3RyYWNrLHRoaXMpO3ZhciBwPTNEdGhpcy5tb2RlbC5nPQpldCgi
Y29uZmlnIik7cC5nZXQoImFyY19kYXRhc2V0X2hlaWdodCIpLm9uKCJjaGFuZ2U6dmFsdWUiLHRo
aXMudXBkYXRlX3RyYWM9CmtfYm91bmRzLHRoaXMpO3AuZ2V0KCJ0cmFja19nYXAiKS5vbigiY2hh
bmdlOnZhbHVlIix0aGlzLnVwZGF0ZV90cmFja19ib3VuZD0Kcyx0aGlzKX0sZ2V0X2NpcmN1bGFy
X3RyYWNrczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldCgiZHJhd2FibGVzIikuPQpm
aWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIG8uZ2V0KCJ0cmFja190eXBlIikhPTNEPTNEIkRpYWdv
bmFsSGVhdG1hcFRyYWNrIn09Cil9LGdldF9jaG9yZF90cmFja3M6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5tb2RlbC5nZXQoImRyYXdhYmxlcyIpLmZpbHRlcihmdT0KbmN0aW9uKG8pe3JldHVybiBv
LmdldCgidHJhY2tfdHlwZSIpPTNEPTNEPTNEIkRpYWdvbmFsSGVhdG1hcFRyYWNrIn0pfSxnZXRf
PQp0cmFja3NfYm91bmRzOmZ1bmN0aW9uKCl7dmFyIHE9M0R0aGlzLmdldF9jaXJjdWxhcl90cmFj
a3MoKSxzPTNEdGhpcy5tb2RlbC49CmdldCgiY29uZmlnIikuZ2V0X3ZhbHVlKCJhcmNfZGF0YXNl
dF9oZWlnaHQiKSxyPTNEdGhpcy5tb2RlbC5nZXQoImNvbmZpZyIpLj0KZ2V0X3ZhbHVlKCJ0cmFj
a19nYXAiKSxvPTNETWF0aC5taW4odGhpcy4kZWwud2lkdGgoKSx0aGlzLiRlbC5oZWlnaHQoKSkt
MjAsPQp1PTNEby8yLXEubGVuZ3RoKihzK3IpK3ItdGhpcy5sYWJlbF9hcmNfaGVpZ2h0LHQ9M0Rt
LnJhbmdlKHUsby8yLHMrcik7dmFyIHA9Cj0zRHRoaXM7cmV0dXJuIGgubWFwKHQsZnVuY3Rpb24o
dil7cmV0dXJuW3YsditzXX0pfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgeD0KPTNEdGhpcyxvPTNE
eC4kZWwud2lkdGgoKSx3PTNEeC4kZWwuaGVpZ2h0KCksdD0zRHRoaXMuZ2V0X2NpcmN1bGFyX3Ry
YWNrcygpPQoscj0zRHRoaXMuZ2V0X2Nob3JkX3RyYWNrcygpLHE9M0R4Lm1vZGVsLmdldCgiY29u
ZmlnIikuZ2V0X3ZhbHVlKCJ0b3RhbF9nYXA9CiIpLHM9M0R0aGlzLmdldF90cmFja3NfYm91bmRz
KCkscD0zRG0uc2VsZWN0KHguJGVsWzBdKS5hcHBlbmQoInN2ZyIpLmF0dHIoIj0Kd2lkdGgiLG8p
LmF0dHIoImhlaWdodCIsdykuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hcHBlbmQoInN2
ZzpnIikuY2FsPQpsKG0uYmVoYXZpb3Iuem9vbSgpLm9uKCJ6b29tIixmdW5jdGlvbigpe3ZhciB5
PTNEbS5ldmVudC5zY2FsZTtwLmF0dHIoInRyYW49CnNmb3JtIiwidHJhbnNsYXRlKCIrbS5ldmVu
dC50cmFuc2xhdGUrIikgc2NhbGUoIit5KyIpIik7aWYoeC5zY2FsZSE9M0Q9M0R5KT0Ke2lmKHgu
em9vbV9kcmFnX3RpbWVvdXQpe2NsZWFyVGltZW91dCh4Lnpvb21fZHJhZ190aW1lb3V0KX14Lnpv
b21fZHJhZ190aW1lPQpvdXQ9M0RzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7fSw0MDApfX0pKS5hdHRy
KCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvLzIrIiw9CiIrdy8yKyIpIikuYXBwZW5kKCJzdmc6
ZyIpLmF0dHIoImNsYXNzIiwidHJhY2tzIik7dGhpcy5jaXJjdWxhcl92aWV3cz0zRHQubT0KYXAo
ZnVuY3Rpb24oeixBKXt2YXIgeT0zRG5ldyBlKHtlbDpwLmFwcGVuZCgiZyIpWzBdLHRyYWNrOnos
cmFkaXVzX2JvdW5kczpzPQpbQV0sZ2Vub21lOnguZ2Vub21lLHRvdGFsX2dhcDpxfSk7eS5yZW5k
ZXIoKTtyZXR1cm4geX0pO3RoaXMuY2hvcmRzX3ZpZXdzPQo9M0RyLm1hcChmdW5jdGlvbih6KXt2
YXIgeT0zRG5ldyBrKHtlbDpwLmFwcGVuZCgiZyIpWzBdLHRyYWNrOnoscmFkaXVzX2JvdW49CmRz
OnNbMF0sZ2Vub21lOnguZ2Vub21lLHRvdGFsX2dhcDpxfSk7eS5yZW5kZXIoKTtyZXR1cm4geX0p
O3ZhciB2PTNEdGhpcy5jaT0KcmN1bGFyX3ZpZXdzW3RoaXMuY2lyY3VsYXJfdmlld3MubGVuZ3Ro
LTFdLnJhZGl1c19ib3VuZHNbMV0sdT0zRFt2LHYrdGhpcy5sPQphYmVsX2FyY19oZWlnaHRdO3Ro
aXMubGFiZWxfdHJhY2tfdmlldz0zRG5ldyBiKHtlbDpwLmFwcGVuZCgiZyIpWzBdLHRyYWNrOm49
CmV3IGQoKSxyYWRpdXNfYm91bmRzOnUsZ2Vub21lOnguZ2Vub21lLHRvdGFsX2dhcDpxfSk7dGhp
cy5sYWJlbF90cmFja192aWV3Lj0KcmVuZGVyKCl9LGFkZF90cmFjazpmdW5jdGlvbih1KXt2YXIg
cD0zRHRoaXMubW9kZWwuZ2V0KCJjb25maWciKS5nZXRfdmFsdWUoPQoidG90YWxfZ2FwIik7aWYo
dS5nZXQoInRyYWNrX3R5cGUiKT0zRD0zRD0zRCJEaWFnb25hbEhlYXRtYXBUcmFjayIpe3ZhciBx
PQo9M0R0aGlzLmNpcmN1bGFyX3ZpZXdzWzBdLnJhZGl1c19ib3VuZHMsdD0zRG5ldyBrKHtlbDpt
LnNlbGVjdCgiZy50cmFja3MiKS49CmFwcGVuZCgiZyIpWzBdLHRyYWNrOnUscmFkaXVzX2JvdW5k
czpxLGdlbm9tZTp0aGlzLmdlbm9tZSx0b3RhbF9nYXA6cH0pO3Qucj0KZW5kZXIoKTt0aGlzLmNo
b3Jkc192aWV3cy5wdXNoKHQpfWVsc2V7dmFyIHM9M0R0aGlzLmdldF90cmFja3NfYm91bmRzKCk7
aC5lPQphY2godGhpcy5jaXJjdWxhcl92aWV3cyxmdW5jdGlvbih2LHcpe3YudXBkYXRlX3JhZGl1
c19ib3VuZHMoc1t3XSl9KTtoLmVhY2g9Cih0aGlzLmNob3Jkc192aWV3cyxmdW5jdGlvbih2KXt2
LnVwZGF0ZV9yYWRpdXNfYm91bmRzKHNbMF0pfSk7dmFyIHI9M0R0aGlzLj0KY2lyY3VsYXJfdmll
d3MubGVuZ3RoLG89M0RuZXcgZSh7ZWw6bS5zZWxlY3QoImcudHJhY2tzIikuYXBwZW5kKCJnIilb
MF0sdHJhPQpjazp1LHJhZGl1c19ib3VuZHM6c1tyXSxnZW5vbWU6dGhpcy5nZW5vbWUsdG90YWxf
Z2FwOnB9KTtvLnJlbmRlcigpO3RoaXMuY2k9CnJjdWxhcl92aWV3cy5wdXNoKG8pfX0scmVtb3Zl
X3RyYWNrOmZ1bmN0aW9uKHAscixxKXt2YXIgbz0zRHRoaXMuY2lyY3VsYXJfdj0KaWV3c1txLmlu
ZGV4XTt0aGlzLmNpcmN1bGFyX3ZpZXdzLnNwbGljZShxLmluZGV4LDEpO28uJGVsLnJlbW92ZSgp
O3ZhciBzPTNEPQp0aGlzLmdldF90cmFja3NfYm91bmRzKCk7aC5lYWNoKHRoaXMuY2lyY3VsYXJf
dmlld3MsZnVuY3Rpb24odCx1KXt0LnVwZGF0ZV89CnJhZGl1c19ib3VuZHMoc1t1XSl9KX0sdXBk
YXRlX3RyYWNrX2JvdW5kczpmdW5jdGlvbigpe3ZhciBvPTNEdGhpcy5nZXRfdHJhYz0Ka3NfYm91
bmRzKCk7aC5lYWNoKHRoaXMuY2lyY3VsYXJfdmlld3MsZnVuY3Rpb24ocCxxKXtwLnVwZGF0ZV9y
YWRpdXNfYm91bmRzPQoob1txXSl9KTtoLmVhY2godGhpcy5jaG9yZHNfdmlld3MsZnVuY3Rpb24o
cCl7cC51cGRhdGVfcmFkaXVzX2JvdW5kcyhvWzBdKX09Cil9fSk7dmFyIGw9M0RCYWNrYm9uZS5W
aWV3LmV4dGVuZCh7dGFnTmFtZToiZyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihvKXt0aGlzLj0KYmdf
c3Ryb2tlPTNEIiNkZGQiO3RoaXMubG9hZGluZ19iZ19maWxsPTNEIiNmZmMiO3RoaXMuYmdfZmls
bD0zRCIjZGRkIjt0aGlzPQoudG90YWxfZ2FwPTNEby50b3RhbF9nYXA7dGhpcy50cmFjaz0zRG8u
dHJhY2s7dGhpcy5yYWRpdXNfYm91bmRzPTNEby5yYWRpdXM9Cl9ib3VuZHM7dGhpcy5nZW5vbWU9
M0RvLmdlbm9tZTt0aGlzLmNocm9tc19sYXlvdXQ9M0R0aGlzLl9jaHJvbXNfbGF5b3V0KCk7dD0K
aGlzLmRhdGFfYm91bmRzPTNEW107dGhpcy5zY2FsZT0zRDE7dGhpcy5wYXJlbnRfZWx0PTNEbS5z
ZWxlY3QodGhpcy4kZWxbMF0pPQp9LGdldF9maWxsX2NvbG9yOmZ1bmN0aW9uKCl7dmFyIG89M0R0
aGlzLnRyYWNrLmdldCgiY29uZmlnIikuZ2V0X3ZhbHVlKCJibG89CmNrX2NvbG9yIik7aWYoIW8p
e289M0R0aGlzLnRyYWNrLmdldCgiY29uZmlnIikuZ2V0X3ZhbHVlKCJjb2xvciIpfXJldHVybiBv
fT0KLHJlbmRlcjpmdW5jdGlvbigpe3ZhciBzPTNEdGhpcy5wYXJlbnRfZWx0O3ZhciByPTNEdGhp
cy5jaHJvbXNfbGF5b3V0LHU9M0RtPQouc3ZnLmFyYygpLmlubmVyUmFkaXVzKHRoaXMucmFkaXVz
X2JvdW5kc1swXSkub3V0ZXJSYWRpdXModGhpcy5yYWRpdXNfYm91bmQ9CnNbMV0pLG89M0RzLnNl
bGVjdEFsbCgiZyIpLmRhdGEocikuZW50ZXIoKS5hcHBlbmQoInN2ZzpnIikscT0zRG8uYXBwZW5k
KCJwYT0KdGgiKS5hdHRyKCJkIix1KS5hdHRyKCJjbGFzcyIsImNocm9tLWJhY2tncm91bmQiKS5z
dHlsZSgic3Ryb2tlIix0aGlzLmJnX3N0PQpyb2tlKS5zdHlsZSgiZmlsbCIsdGhpcy5sb2FkaW5n
X2JnX2ZpbGwpO3EuYXBwZW5kKCJ0aXRsZSIpLnRleHQoZnVuY3Rpb24odyk9CntyZXR1cm4gdy5k
YXRhLmNocm9tfSk7dmFyIHA9M0R0aGlzLHQ9M0RwLnRyYWNrLmdldCgiZGF0YV9tYW5hZ2VyIiks
dj0zRCh0Pz0KdC5kYXRhX2lzX3JlYWR5KCk6dHJ1ZSk7JC53aGVuKHYpLnRoZW4oZnVuY3Rpb24o
KXskLndoZW4ocC5fcmVuZGVyX2RhdGEocykpPQoudGhlbihmdW5jdGlvbigpe3Euc3R5bGUoImZp
bGwiLHAuYmdfZmlsbCk7cC5yZW5kZXJfbGFiZWxzKCl9KX0pfSxyZW5kZXJfbGE9CmJlbHM6ZnVu
Y3Rpb24oKXt9LHVwZGF0ZV9yYWRpdXNfYm91bmRzOmZ1bmN0aW9uKHApe3RoaXMucmFkaXVzX2Jv
dW5kcz0zRHA7dj0KYXIgbz0zRG0uc3ZnLmFyYygpLmlubmVyUmFkaXVzKHRoaXMucmFkaXVzX2Jv
dW5kc1swXSkub3V0ZXJSYWRpdXModGhpcy5yYWRpPQp1c19ib3VuZHNbMV0pO3RoaXMucGFyZW50
X2VsdC5zZWxlY3RBbGwoImc+cGF0aC5jaHJvbS1iYWNrZ3JvdW5kIikudHJhbnNpdGk9Cm9uKCku
ZHVyYXRpb24oMTAwMCkuYXR0cigiZCIsbyk7dGhpcy5fdHJhbnNpdGlvbl9jaHJvbV9kYXRhKCk7
dGhpcy5fdHJhbnNpdD0KaW9uX2xhYmVscygpfSx1cGRhdGVfc2NhbGU6ZnVuY3Rpb24ocil7dmFy
IHE9M0R0aGlzLnNjYWxlO3RoaXMuc2NhbGU9M0RyO2lmPQoocjw9M0RxKXtyZXR1cm59dmFyIHA9
M0R0aGlzLG89M0RuZXcgbigpO3RoaXMucGFyZW50X2VsdC5zZWxlY3RBbGwoInBhdGguY2g9CnJv
bS1kYXRhIikuZmlsdGVyKGZ1bmN0aW9uKHQscyl7cmV0dXJuIG8uaXNfdmlzaWJsZSh0aGlzKX0p
LmVhY2goZnVuY3Rpb24oeT0KLHUpe3ZhciB4PTNEbS5zZWxlY3QodGhpcyksdD0zRHguYXR0cigi
Y2hyb20iKSx3PTNEcC5nZW5vbWUuZ2V0X2Nocm9tX3JlZ2lvPQpuKHQpLHY9M0RwLnRyYWNrLmdl
dCgiZGF0YV9tYW5hZ2VyIikscztpZighdi5jYW5fZ2V0X21vcmVfZGV0YWlsZWRfZGF0YSh3KSk9
CntyZXR1cm59cz0zRHAudHJhY2suZ2V0KCJkYXRhX21hbmFnZXIiKS5nZXRfbW9yZV9kZXRhaWxl
ZF9kYXRhKHcsIkNvdmVyYWdlIj0KLDAscik7JC53aGVuKHMpLnRoZW4oZnVuY3Rpb24oQil7eC5y
ZW1vdmUoKTtwLl91cGRhdGVfZGF0YV9ib3VuZHMoKTt2YXIgQT0KPTNEaC5maW5kKHAuY2hyb21z
X2xheW91dCxmdW5jdGlvbihDKXtyZXR1cm4gQy5kYXRhLmNocm9tPTNEPTNEPTNEdH0pO3ZhciB6
PQo9M0RwLmdldF9maWxsX2NvbG9yKCk7cC5fcmVuZGVyX2Nocm9tX2RhdGEocC5wYXJlbnRfZWx0
LEEsQikuc3R5bGUoInN0cm9rZSI9Cix6KS5zdHlsZSgiZmlsbCIseil9KX0pO3JldHVybiBwfSxf
dHJhbnNpdGlvbl9jaHJvbV9kYXRhOmZ1bmN0aW9uKCl7dmFyIHA9Cj0zRHRoaXMudHJhY2sscj0z
RHRoaXMuY2hyb21zX2xheW91dCxvPTNEdGhpcy5wYXJlbnRfZWx0LnNlbGVjdEFsbCgiZz5wYXRo
Lj0KY2hyb20tZGF0YSIpLHM9M0RvWzBdLmxlbmd0aDtpZihzPjApe3ZhciBxPTNEdGhpczskLndo
ZW4ocC5nZXQoImRhdGFfbWFuYWdlPQpyIikuZ2V0X2dlbm9tZV93aWRlX2RhdGEodGhpcy5nZW5v
bWUpKS50aGVuKGZ1bmN0aW9uKHYpe3ZhciB1PTNEaC5yZWplY3QoaC49Cm1hcCh2LGZ1bmN0aW9u
KHcseCl7dmFyIHk9M0RudWxsLHo9M0RxLl9nZXRfcGF0aF9mdW5jdGlvbihyW3hdLHcpO2lmKHop
e3k9Cj0zRHoody5kYXRhKX1yZXR1cm4geX0pLGZ1bmN0aW9uKHcpe3JldHVybiB3PTNEPTNEPTNE
bnVsbH0pO3ZhciB0PTNEcC5nZXQoIj0KY29uZmlnIikuZ2V0X3ZhbHVlKCJjb2xvciIpO28uZWFj
aChmdW5jdGlvbih4LHcpe20uc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24oPQopLmR1cmF0aW9uKDEw
MDApLnN0eWxlKCJzdHJva2UiLHQpLnN0eWxlKCJmaWxsIix0KS5hdHRyKCJkIix1W3ddKX0pfSl9
fSxfdHI9CmFuc2l0aW9uX2xhYmVsczpmdW5jdGlvbigpe30sX3VwZGF0ZV9kYXRhX2JvdW5kczpm
dW5jdGlvbihwKXt2YXIgbz0zRHRoaXMuZD0KYXRhX2JvdW5kczt0aGlzLmRhdGFfYm91bmRzPTNE
cHx8dGhpcy5nZXRfZGF0YV9ib3VuZHModGhpcy50cmFjay5nZXQoImRhdGFfPQptYW5hZ2VyIiku
Z2V0X2dlbm9tZV93aWRlX2RhdGEodGhpcy5nZW5vbWUpKTt0aGlzLl90cmFuc2l0aW9uX2Nocm9t
X2RhdGEoKX09CixfcmVuZGVyX2RhdGE6ZnVuY3Rpb24ocil7dmFyIHE9M0R0aGlzLHA9M0R0aGlz
LmNocm9tc19sYXlvdXQsbz0zRHRoaXMudHJhYz0KayxzPTNEJC5EZWZlcnJlZCgpOyQud2hlbihv
LmdldCgiZGF0YV9tYW5hZ2VyIikuZ2V0X2dlbm9tZV93aWRlX2RhdGEodGhpcy5nPQplbm9tZSkp
LnRoZW4oZnVuY3Rpb24odSl7cS5kYXRhX2JvdW5kcz0zRHEuZ2V0X2RhdGFfYm91bmRzKHUpO28u
Z2V0KCJjb25maWc9CiIpLnNldF92YWx1ZSgibWluX3ZhbHVlIixxLmRhdGFfYm91bmRzWzBdLHtz
aWxlbnQ6dHJ1ZX0pO28uZ2V0KCJjb25maWciKS5zZT0KdF92YWx1ZSgibWF4X3ZhbHVlIixxLmRh
dGFfYm91bmRzWzFdLHtzaWxlbnQ6dHJ1ZX0pO2xheW91dF9hbmRfZGF0YT0zRGguemlwPQoocCx1
KSxjaHJvbXNfZGF0YV9sYXlvdXQ9M0RoLm1hcChsYXlvdXRfYW5kX2RhdGEsZnVuY3Rpb24odil7
dmFyIHc9M0R2WzBdLHg9Cj0zRHZbMV07cmV0dXJuIHEuX3JlbmRlcl9jaHJvbV9kYXRhKHIsdyx4
KX0pO3ZhciB0PTNEcS5nZXRfZmlsbF9jb2xvcigpO3EucD0KYXJlbnRfZWx0LnNlbGVjdEFsbCgi
cGF0aC5jaHJvbS1kYXRhIikuc3R5bGUoInN0cm9rZSIsdCkuc3R5bGUoImZpbGwiLHQpO3MuPQpy
ZXNvbHZlKHIpfSk7cmV0dXJuIHN9LF9yZW5kZXJfY2hyb21fZGF0YTpmdW5jdGlvbihvLHAscSl7
fSxfZ2V0X3BhdGhfZnVuY3Q9CmlvbjpmdW5jdGlvbihwLG8pe30sX2Nocm9tc19sYXlvdXQ6ZnVu
Y3Rpb24oKXt2YXIgcD0zRHRoaXMuZ2Vub21lLmdldF9jaHJvbT0Kc19pbmZvKCkscj0zRG0ubGF5
b3V0LnBpZSgpLnZhbHVlKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbn0pLnNvcnQobnVsbCkscz0K
PTNEcihwKSxvPTNEMipNYXRoLlBJKnRoaXMudG90YWxfZ2FwL3AubGVuZ3RoLHE9M0RoLm1hcChz
LGZ1bmN0aW9uKHYsdSl7dmFyPQogdD0zRHYuZW5kQW5nbGUtbzt2LmVuZEFuZ2xlPTNEKHQ+di5z
dGFydEFuZ2xlP3Q6di5zdGFydEFuZ2xlKTtyZXR1cm4gdn0pO3I9CmV0dXJuIHF9fSk7dmFyIGI9
M0RsLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbihvKXtsLnByb3RvdHlwZS5pbml0aWFsaXpl
Lj0KY2FsbCh0aGlzLG8pO3RoaXMuaW5uZXJSYWRpdXM9M0R0aGlzLnJhZGl1c19ib3VuZHNbMF07
dGhpcy5yYWRpdXNfYm91bmRzWzBdPQo9M0R0aGlzLnJhZGl1c19ib3VuZHNbMV07dGhpcy5iZ19z
dHJva2U9M0QiI2ZmZiI7dGhpcy5iZ19maWxsPTNEIiNmZmYiO3RoaXM9Ci5taW5fYXJjX2xlbj0z
RDAuMDV9LF9yZW5kZXJfZGF0YTpmdW5jdGlvbihxKXt2YXIgcD0zRHRoaXMsbz0zRHEuc2VsZWN0
QWxsKD0KImciKTtvLnNlbGVjdEFsbCgicGF0aCIpLmF0dHIoImlkIixmdW5jdGlvbih1KXtyZXR1
cm4ibGFiZWwtIit1LmRhdGEuY2hyb219PQopO28uYXBwZW5kKCJzdmc6dGV4dCIpLmZpbHRlcihm
dW5jdGlvbih1KXtyZXR1cm4gdS5lbmRBbmdsZS11LnN0YXJ0QW5nbGU+cC49Cm1pbl9hcmNfbGVu
fSkuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5hcHBlbmQoInN2Zzp0ZXh0UGF0aCIpLmF0
dHIoImNsYT0Kc3MiLCJjaHJvbS1sYWJlbCIpLmF0dHIoInhsaW5rOmhyZWYiLGZ1bmN0aW9uKHUp
e3JldHVybiIjbGFiZWwtIit1LmRhdGEuY2hyPQpvbX0pLmF0dHIoInN0YXJ0T2Zmc2V0IiwiMjUl
IikudGV4dChmdW5jdGlvbih1KXtyZXR1cm4gdS5kYXRhLmNocm9tfSk7dmFyIHI9Cj0zRGZ1bmN0
aW9uKHcpe3ZhciB1PTNEKHcuZW5kQW5nbGUtdy5zdGFydEFuZ2xlKS93LnZhbHVlLHY9M0RtLnJh
bmdlKDAsdy52YT0KbHVlLDI1MDAwMDAwKS5tYXAoZnVuY3Rpb24oeCx5KXtyZXR1cm57cmFkaXVz
OnAuaW5uZXJSYWRpdXMsYW5nbGU6eCp1K3cuc3RhPQpydEFuZ2xlLGxhYmVsOnk9M0Q9M0Q9M0Qw
PzA6KHklMz9udWxsOnAuZm9ybWF0TnVtKHgpKX19KTtpZih2Lmxlbmd0aDw0KXt2W3Y9Ci5sZW5n
dGgtMV0ubGFiZWw9M0RwLmZvcm1hdE51bShNYXRoLnJvdW5kKCh2W3YubGVuZ3RoLTFdLmFuZ2xl
LXcuc3RhcnRBbmdsZT0KKS91KSl9cmV0dXJuIHZ9O3ZhciB0PTNEZnVuY3Rpb24odSl7cmV0dXJu
IHUuYW5nbGU+TWF0aC5QST8icm90YXRlKDE4MCl0cmFuPQpzbGF0ZSgtMTYpIjpudWxsfTt2YXIg
cz0zRGguZmlsdGVyKHRoaXMuY2hyb21zX2xheW91dCxmdW5jdGlvbih1KXtyZXR1cm4gdS49CmVu
ZEFuZ2xlLXUuc3RhcnRBbmdsZT5wLm1pbl9hcmNfbGVufSk7dGhpcy5kcmF3VGlja3ModGhpcy5w
YXJlbnRfZWx0LHMscix0KT0KfX0pO2guZXh0ZW5kKGIucHJvdG90eXBlLGkpO3ZhciBnPTNEbC5l
eHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24obyl7bC5wcm90PQpvdHlwZS5pbml0aWFsaXplLmNh
bGwodGhpcyxvKTt2YXIgcD0zRHRoaXMudHJhY2suZ2V0KCJjb25maWciKTtwLmdldCgibWluX3Y9
CmFsdWUiKS5vbigiY2hhbmdlOnZhbHVlIix0aGlzLl91cGRhdGVfbWluX21heCx0aGlzKTtwLmdl
dCgibWF4X3ZhbHVlIikub24oIj0KY2hhbmdlOnZhbHVlIix0aGlzLl91cGRhdGVfbWluX21heCx0
aGlzKTtwLmdldCgiY29sb3IiKS5vbigiY2hhbmdlOnZhbHVlIix0PQpoaXMuX3RyYW5zaXRpb25f
Y2hyb21fZGF0YSx0aGlzKX0sX3VwZGF0ZV9taW5fbWF4OmZ1bmN0aW9uKCl7dmFyIHA9M0R0aGlz
LnQ9CnJhY2suZ2V0KCJjb25maWciKSxvPTNEW3AuZ2V0X3ZhbHVlKCJtaW5fdmFsdWUiKSxwLmdl
dF92YWx1ZSgibWF4X3ZhbHVlIildOz0KdGhpcy5fdXBkYXRlX2RhdGFfYm91bmRzKG8pO3RoaXMu
cGFyZW50X2VsdC5zZWxlY3RBbGwoIi5taW5fbWF4IikudGV4dChmdW5jPQp0aW9uKHIscSl7cmV0
dXJuIG9bcV19KX0sX3F1YW50aWxlOmZ1bmN0aW9uKHAsbyl7cC5zb3J0KG0uYXNjZW5kaW5nKTty
ZXR1cm49CiBtLnF1YW50aWxlKHAsbyl9LF9yZW5kZXJfY2hyb21fZGF0YTpmdW5jdGlvbihvLHIs
cCl7dmFyIHM9M0R0aGlzLl9nZXRfcGF0aD0KX2Z1bmN0aW9uKHIscCk7aWYoIXMpe3JldHVybiBu
dWxsfXZhciBxPTNEby5kYXR1bShwLmRhdGEpLHQ9M0RxLmFwcGVuZCgicGF0PQpoIikuYXR0cigi
Y2xhc3MiLCJjaHJvbS1kYXRhIikuYXR0cigiY2hyb20iLHIuZGF0YS5jaHJvbSkuYXR0cigiZCIs
cyk7cmV0dXI9Cm4gdH0sX2dldF9wYXRoX2Z1bmN0aW9uOmZ1bmN0aW9uKHIscSl7aWYodHlwZW9m
IHE9M0Q9M0Q9M0Qic3RyaW5nInx8IXEuZGF0YT0KfHxxLmRhdGEubGVuZ3RoPTNEPTNEPTNEMCl7
cmV0dXJuIG51bGx9dmFyIG89M0RtLnNjYWxlLmxpbmVhcigpLmRvbWFpbih0aGlzPQouZGF0YV9i
b3VuZHMpLnJhbmdlKHRoaXMucmFkaXVzX2JvdW5kcykuY2xhbXAodHJ1ZSk7dmFyIHM9M0RtLnNj
YWxlLmxpbmVhcig9CikuZG9tYWluKFswLHEuZGF0YS5sZW5ndGhdKS5yYW5nZShbci5zdGFydEFu
Z2xlLHIuZW5kQW5nbGVdKTt2YXIgcD0zRG0uc3ZnLj0KbGluZS5yYWRpYWwoKS5pbnRlcnBvbGF0
ZSgibGluZWFyIikucmFkaXVzKGZ1bmN0aW9uKHQpe3JldHVybiBvKHRbMV0pfSkuYW5nPQpsZShm
dW5jdGlvbih1LHQpe3JldHVybiBzKHQpfSk7cmV0dXJuIG0uc3ZnLmFyZWEucmFkaWFsKCkuaW50
ZXJwb2xhdGUocC5pbnQ9CmVycG9sYXRlKCkpLmlubmVyUmFkaXVzKG8oMCkpLm91dGVyUmFkaXVz
KHAucmFkaXVzKCkpLmFuZ2xlKHAuYW5nbGUoKSl9LHJlbj0KZGVyX2xhYmVsczpmdW5jdGlvbigp
e3ZhciBvPTNEdGhpcyxxPTNEZnVuY3Rpb24oKXtyZXR1cm4icm90YXRlKDkwKSJ9O3ZhciBwPQo9
M0R0aGlzLmRyYXdUaWNrcyh0aGlzLnBhcmVudF9lbHQsW3RoaXMuY2hyb21zX2xheW91dFswXV0s
dGhpcy5fZGF0YV9ib3VuZHM9Cl90aWNrc19mbigpLHEsdHJ1ZSkuY2xhc3NlZCgibWluX21heCIs
dHJ1ZSk7aC5lYWNoKHAsZnVuY3Rpb24ocil7JChyKS5jbGljaz0KKGZ1bmN0aW9uKCl7dmFyIHM9
M0RuZXcgYy5Db25maWdTZXR0aW5nQ29sbGVjdGlvblZpZXcoe2NvbGxlY3Rpb246by50cmFjay5n
PQpldCgiY29uZmlnIil9KTtzLnJlbmRlcl9pbl9tb2RhbCgiQ29uZmlndXJlIFRyYWNrIil9KX0p
fSxfdHJhbnNpdGlvbl9sYWJlbHM9CjpmdW5jdGlvbigpe2lmKHRoaXMuZGF0YV9ib3VuZHMubGVu
Z3RoPTNEPTNEPTNEMCl7cmV0dXJufXZhciBwPTNEdGhpcyxyPTNEaD0KLmZpbHRlcih0aGlzLmNo
cm9tc19sYXlvdXQsZnVuY3Rpb24ocyl7cmV0dXJuIHMuZW5kQW5nbGUtcy5zdGFydEFuZ2xlPjAu
MDh9PQopLHE9M0RoLmZpbHRlcihyLGZ1bmN0aW9uKHQscyl7cmV0dXJuIHMlMz0zRD0zRD0zRDB9
KSxvPTNEaC5mbGF0dGVuKGgubWFwKHE9CixmdW5jdGlvbihzKXtyZXR1cm4gcC5fZGF0YV9ib3Vu
ZHNfdGlja3NfZm4oKShzKX0pKTt0aGlzLnBhcmVudF9lbHQuc2VsZWN0QT0KbGwoImcudGljayIp
LmRhdGEobykudHJhbnNpdGlvbigpLmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24ocyl7cmV0dXJu
InJvdGF0PQplKCIrKHMuYW5nbGUqMTgwL01hdGguUEktOTApKyIpdHJhbnNsYXRlKCIrcy5yYWRp
dXMrIiwwKSJ9KX0sX2RhdGFfYm91bmRzX3Q9Cmlja3NfZm46ZnVuY3Rpb24oKXt2YXIgbz0zRHRo
aXM7dmlzaWJsZUNocm9tcz0zRDA7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybj0KW3tyYWRpdXM6
by5yYWRpdXNfYm91bmRzWzBdLGFuZ2xlOnAuc3RhcnRBbmdsZSxsYWJlbDpvLmZvcm1hdE51bShv
LmRhdGFfYm91PQpuZHNbMF0pfSx7cmFkaXVzOm8ucmFkaXVzX2JvdW5kc1sxXSxhbmdsZTpwLnN0
YXJ0QW5nbGUsbGFiZWw6by5mb3JtYXROdW0oby49CmRhdGFfYm91bmRzWzFdKX1dfX0sZ2V0X2Rh
dGFfYm91bmRzOmZ1bmN0aW9uKG8pe319KTtoLmV4dGVuZChnLnByb3RvdHlwZSxpKT0KO3ZhciBl
PTNEZy5leHRlbmQoe2dldF9kYXRhX2JvdW5kczpmdW5jdGlvbihwKXt2YXIgbz0zRGguZmxhdHRl
bihoLm1hcChwLGZ1PQpuY3Rpb24ocSl7aWYocSl7cmV0dXJuIGgubWFwKHEuZGF0YSxmdW5jdGlv
bihyKXtyZXR1cm4gcGFyc2VJbnQoclsxXSwxMCl8fDA9Cn0pfWVsc2V7cmV0dXJuIDB9fSkpO3Jl
dHVybltoLm1pbihvKSx0aGlzLl9xdWFudGlsZShvLDAuOTgpfHxoLm1heChvKV19fSk7dj0KYXIg
az0zRGwuZXh0ZW5kKHtyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgbz0zRHRoaXM7JC53aGVuKG8udHJh
Y2suZ2V0KCJkYXRhX21hPQpuYWdlciIpLmRhdGFfaXNfcmVhZHkoKSkudGhlbihmdW5jdGlvbigp
eyQud2hlbihvLnRyYWNrLmdldCgiZGF0YV9tYW5hZ2VyIik9Ci5nZXRfZ2Vub21lX3dpZGVfZGF0
YShvLmdlbm9tZSkpLnRoZW4oZnVuY3Rpb24ocil7dmFyIHE9M0RbXSxwPTNEby5nZW5vbWUuZz0K
ZXRfY2hyb21zX2luZm8oKTtoLmVhY2gocixmdW5jdGlvbih2LHUpe3ZhciBzPTNEcFt1XS5jaHJv
bTt2YXIgdD0zRGgubWFwKHYuPQpkYXRhLGZ1bmN0aW9uKHgpe3ZhciB3PTNEby5fZ2V0X3JlZ2lv
bl9hbmdsZShzLHhbMV0pLHk9M0RvLl9nZXRfcmVnaW9uX2FuZ2w9CmUoeFszXSx4WzRdKTtyZXR1
cm57c291cmNlOntzdGFydEFuZ2xlOncsZW5kQW5nbGU6dyswLjAxfSx0YXJnZXQ6e3N0YXJ0QW5n
bD0KZTp5LGVuZEFuZ2xlOnkrMC4wMX19fSk7cT0zRHEuY29uY2F0KHQpfSk7by5wYXJlbnRfZWx0
LmFwcGVuZCgiZyIpLmF0dHIoImNsPQphc3MiLCJjaG9yZCIpLnNlbGVjdEFsbCgicGF0aCIpLmRh
dGEocSkuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5zdHlsZSgiZmlsbCI9CixvLmdldF9maWxsX2Nv
bG9yKCkpLmF0dHIoImQiLG0uc3ZnLmNob3JkKCkucmFkaXVzKG8ucmFkaXVzX2JvdW5kc1swXSkp
LnN0eT0KbGUoIm9wYWNpdHkiLDEpfSl9KX0sdXBkYXRlX3JhZGl1c19ib3VuZHM6ZnVuY3Rpb24o
byl7dGhpcy5yYWRpdXNfYm91bmRzPTNEPQpvO3RoaXMucGFyZW50X2VsdC5zZWxlY3RBbGwoInBh
dGgiKS50cmFuc2l0aW9uKCkuYXR0cigiZCIsbS5zdmcuY2hvcmQoKS5yYWQ9Cml1cyh0aGlzLnJh
ZGl1c19ib3VuZHNbMF0pKX0sX2dldF9yZWdpb25fYW5nbGU6ZnVuY3Rpb24ocSxvKXt2YXIgcD0z
RGguZmluZD0KKHRoaXMuY2hyb21zX2xheW91dCxmdW5jdGlvbihyKXtyZXR1cm4gci5kYXRhLmNo
cm9tPTNEPTNEPTNEcX0pO3JldHVybiBwLmVuPQpkQW5nbGUtKChwLmVuZEFuZ2xlLXAuc3RhcnRB
bmdsZSkqKHAuZGF0YS5sZW4tbykvcC5kYXRhLmxlbil9fSk7dmFyIGY9M0RCYWM9Cmtib25lLlZp
ZXcuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIG89M0RuZXcgai5HZW5vbWUoZ2Fs
YXh5X2NvbmZpZz0KLmFwcC5nZW5vbWUpLHA9M0RuZXcgai5HZW5vbWVWaXN1YWxpemF0aW9uKGdh
bGF4eV9jb25maWcuYXBwLnZpel9jb25maWcpO3AuPQpnZXQoImNvbmZpZyIpLmFkZChbe2tleToi
YXJjX2RhdGFzZXRfaGVpZ2h0IixsYWJlbDoiQXJjIERhdGFzZXQgSGVpZ2h0Iix0eXA9CmU6Imlu
dCIsdmFsdWU6MjUsdmlldzoiY2lyY3N0ZXIifSx7a2V5OiJ0cmFja19nYXAiLGxhYmVsOiJHYXAg
QmV0d2VlbiBUcmFjaz0KcyIsdHlwZToiaW50Iix2YWx1ZTo1LHZpZXc6ImNpcmNzdGVyIn0se2tl
eToidG90YWxfZ2FwIixsYWJlbDoiR2FwIFswLTFdIix0PQp5cGU6ImZsb2F0Iix2YWx1ZTowLjQs
dmlldzoiY2lyY3N0ZXIiLGhpZGRlbjp0cnVlfV0pO3ZhciByPTNEbmV3IGEoe2VsOiQoIiM9CmNl
bnRlciAudW5pZmllZC1wYW5lbC1ib2R5IiksZ2Vub21lOm8sbW9kZWw6cH0pO3IucmVuZGVyKCk7
JCgiI2NlbnRlciAudW5pZj0KaWVkLXBhbmVsLWhlYWRlci1pbm5lciIpLmFwcGVuZChnYWxheHlf
Y29uZmlnLmFwcC52aXpfY29uZmlnLnRpdGxlKyIgIitnYWxhPQp4eV9jb25maWcuYXBwLnZpel9j
b25maWcuZGJrZXkpO3ZhciBxPTNEbW9kX2ljb25fYnRuLmNyZWF0ZV9pY29uX2J1dHRvbnNfbWU9
Cm51KFt7aWNvbl9jbGFzczoicGx1cy1idXR0b24iLHRpdGxlOiJBZGQgdHJhY2tzIixvbl9jbGlj
azpmdW5jdGlvbigpe2ouc2VsZT0KY3RfZGF0YXNldHMoZ2FsYXh5X2NvbmZpZy5yb290KyJ2aXN1
YWxpemF0aW9uL2xpc3RfY3VycmVudF9oaXN0b3J5X2RhdGFzZXRzPQoiLGdhbGF4eV9jb25maWcu
cm9vdCsiYXBpL2RhdGFzZXRzIixwLmdldCgiZGJrZXkiKSxmdW5jdGlvbihzKXtwLmFkZF90cmFj
a3M9CihzKX0pfX0se2ljb25fY2xhc3M6ImdlYXIiLHRpdGxlOiJTZXR0aW5ncyIsb25fY2xpY2s6
ZnVuY3Rpb24oKXt2YXIgcz0zRG5ldz0KIGMuQ29uZmlnU2V0dGluZ0NvbGxlY3Rpb25WaWV3KHtj
b2xsZWN0aW9uOnAuZ2V0KCJjb25maWciKX0pO3MucmVuZGVyX2luX21vPQpkYWwoIkNvbmZpZ3Vy
ZSBWaXN1YWxpemF0aW9uIil9fSx7aWNvbl9jbGFzczoiZGlzay0tYXJyb3ciLHRpdGxlOiJTYXZl
Iixvbl89CmNsaWNrOmZ1bmN0aW9uKCl7R2FsYXh5Lm1vZGFsLnNob3coe3RpdGxlOiJTYXZpbmcu
Li4iLGJvZHk6InByb2dyZXNzIn0pOyQuYT0KamF4KHt1cmw6Z2FsYXh5X2NvbmZpZy5yb290KyJ2
aXN1YWxpemF0aW9uL3NhdmUiLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJqc29uPQoiLGRhdGE6e2lk
OnAuZ2V0KCJ2aXNfaWQiKSx0aXRsZTpwLmdldCgidGl0bGUiKSxkYmtleTpwLmdldCgiZGJrZXki
KSx0eXBlOiI9CnRyYWNrc3RlciIsdmlzX2pzb246SlNPTi5zdHJpbmdpZnkocCl9fSkuc3VjY2Vz
cyhmdW5jdGlvbihzKXtHYWxheHkubW9kYWwuaD0KaWRlKCk7cC5zZXQoInZpc19pZCIscy52aXNf
aWQpfSkuZXJyb3IoZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuc2hvdyh7dGl0bGU6PQoiQ291bGQg
Tm90IFNhdmUiLGJvZHk6IkNvdWxkIG5vdCBzYXZlIHZpc3VhbGl6YXRpb24uIFBsZWFzZSB0cnkg
YWdhaW4gbGF0ZXI9Ci4iLGJ1dHRvbnM6e0NhbmNlbDpmdW5jdGlvbigpe0dhbGF4eS5tb2RhbC5o
aWRlKCl9fX0pfSl9fSx7aWNvbl9jbGFzczoiY3Jvcz0Kcy1jaXJjbGUiLHRpdGxlOiJDbG9zZSIs
b25fY2xpY2s6ZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb249M0RnYWxheHlfY29uZmlnPQoucm9v
dCsidmlzdWFsaXphdGlvbi9saXN0In19XSx7dG9vbHRpcF9jb25maWc6e3BsYWNlbWVudDoiYm90
dG9tIn19KTtxLiRlbC49CmF0dHIoInN0eWxlIiwiZmxvYXQ6IHJpZ2h0Iik7JCgiI2NlbnRlciAu
dW5pZmllZC1wYW5lbC1oZWFkZXItaW5uZXIiKS5hcHBlbj0KZChxLiRlbCk7JCgiLm1lbnUtYnV0
dG9uIikudG9vbHRpcCh7cGxhY2VtZW50OiJib3R0b20ifSl9fSk7cmV0dXJue0dhbGF4eUFwPQpw
OmZ9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorcmVxdWlyZShbInV0aWxzL3V0aWxz
IixdLGZ1bmN0aW9uKGEpe2EuY3NzTG9hZEZpbGUoInN0YXRpYy9zdHlsZS9jaXJjc3Rlci49CmNz
cyIpfSk7ZGVmaW5lKFsibGlicy91bmRlcnNjb3JlIiwibGlicy9kMyIsInZpei92aXN1YWxpemF0
aW9uIiwidXRpbHMvY29uZj0KaWciLCJtdmMvdWkvaWNvbi1idXR0b24iLCJsaWJzL2ZhcmJ0YXN0
aWMiXSxmdW5jdGlvbihpLG4sayxjLGYpe3ZhciBvPTNEQmFjPQprYm9uZS5Nb2RlbC5leHRlbmQo
e2lzX3Zpc2libGU6ZnVuY3Rpb24ocyxwKXt2YXIgcT0zRHMuZ2V0Qm91bmRpbmdDbGllbnRSZWM9
CnQoKSxyPTNEJCgic3ZnIilbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYocS5yaWdodDww
fHxxLmxlZnQ+ci5yaWdodHx8cT0KLmJvdHRvbTwwfHxxLnRvcD5yLmJvdHRvbSl7cmV0dXJuIGZh
bHNlfXJldHVybiB0cnVlfX0pO3ZhciBqPTNEe2RyYXdUaWNrczpmPQp1bmN0aW9uKHQscyx4LHIs
cCl7dmFyIHc9M0R0LmFwcGVuZCgiZyIpLnNlbGVjdEFsbCgiZyIpLmRhdGEocykuZW50ZXIoKS5h
cHA9CmVuZCgiZyIpLnNlbGVjdEFsbCgiZyIpLmRhdGEoeCkuZW50ZXIoKS5hcHBlbmQoImciKS5h
dHRyKCJjbGFzcyIsInRpY2siKS5hdD0KdHIoInRyYW5zZm9ybSIsZnVuY3Rpb24oeSl7cmV0dXJu
InJvdGF0ZSgiKyh5LmFuZ2xlKjE4MC9NYXRoLlBJLTkwKSsiKXRyYW5zPQpsYXRlKCIreS5yYWRp
dXMrIiwwKSJ9KTt2YXIgdj0zRFtdLHU9M0RbXSxxPTNEZnVuY3Rpb24oeSl7cmV0dXJuIHkuYW5n
bGU+TWE9CnRoLlBJPyJlbmQiOm51bGx9O2lmKHApe3Y9M0RbMCwwLDAsLTRdO3U9M0RbNCwwLCIi
LCIuMzVlbSJdO3E9M0RudWxsfWVsc2V7dj0KPTNEWzEsMCw0LDBdO3U9M0RbMCw0LCIuMzVlbSIs
IiJdfXcuYXBwZW5kKCJsaW5lIikuYXR0cigieDEiLHZbMF0pLmF0dHIoInkxPQoiLHZbMV0pLmF0
dHIoIngyIix2WzJdKS5hdHRyKCJ5MSIsdlszXSkuc3R5bGUoInN0cm9rZSIsIiMwMDAiKTtyZXR1
cm4gdy5hcHA9CmVuZCgidGV4dCIpLmF0dHIoIngiLHVbMF0pLmF0dHIoInkiLHVbMV0pLmF0dHIo
ImR4Iix1WzJdKS5hdHRyKCJkeSIsdVszXSkuYT0KdHRyKCJ0ZXh0LWFuY2hvciIscSkuYXR0cigi
dHJhbnNmb3JtIixyKS50ZXh0KGZ1bmN0aW9uKHkpe3JldHVybiB5LmxhYmVsfSl9PQosZm9ybWF0
TnVtOmZ1bmN0aW9uKHEscCl7aWYocD0zRD0zRD0zRHVuZGVmaW5lZCl7cD0zRDJ9aWYocT0zRD0z
RD0zRG51bGwpe3I9CmV0dXJuIG51bGx9dmFyIHM9M0RudWxsO2lmKE1hdGguYWJzKHEpPDEpe3M9
M0RxLnRvUHJlY2lzaW9uKHApfWVsc2V7dmFyIHI9Cj0zRE1hdGgucm91bmQocS50b1ByZWNpc2lv
bihwKSk7cT0zRE1hdGguYWJzKHEpO2lmKHE8MTAwMCl7cz0zRHJ9ZWxzZXtpZihxPD0KMTAwMDAw
MCl7cz0zRE1hdGgucm91bmQoKHIvMTAwMCkudG9QcmVjaXNpb24oMykpLnRvRml4ZWQoMCkrIksi
fWVsc2V7aWYocTwxPQowMDAwMDAwMDApe3M9M0RNYXRoLnJvdW5kKChyLzEwMDAwMDApLnRvUHJl
Y2lzaW9uKDMpKS50b0ZpeGVkKDApKyJNIn19fX1yZXQ9CnVybiBzfX07dmFyIGQ9M0RCYWNrYm9u
ZS5Nb2RlbC5leHRlbmQoe30pO3ZhciBhPTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2NsYT0Kc3NO
YW1lOiJjaXJjc3RlciIsaW5pdGlhbGl6ZTpmdW5jdGlvbihwKXt0aGlzLmdlbm9tZT0zRHAuZ2Vu
b21lO3RoaXMubGFiZWxfPQphcmNfaGVpZ2h0PTNENTA7dGhpcy5zY2FsZT0zRDE7dGhpcy5jaXJj
dWxhcl92aWV3cz0zRG51bGw7dGhpcy5jaG9yZHNfdmlld3M9Cj0zRG51bGw7dGhpcy5tb2RlbC5n
ZXQoImRyYXdhYmxlcyIpLm9uKCJhZGQiLHRoaXMuYWRkX3RyYWNrLHRoaXMpO3RoaXMubW9kZT0K
bC5nZXQoImRyYXdhYmxlcyIpLm9uKCJyZW1vdmUiLHRoaXMucmVtb3ZlX3RyYWNrLHRoaXMpO3Zh
ciBxPTNEdGhpcy5tb2RlbC5nPQpldCgiY29uZmlnIik7cS5nZXQoImFyY19kYXRhc2V0X2hlaWdo
dCIpLm9uKCJjaGFuZ2U6dmFsdWUiLHRoaXMudXBkYXRlX3RyYWM9CmtfYm91bmRzLHRoaXMpO3Eu
Z2V0KCJ0cmFja19nYXAiKS5vbigiY2hhbmdlOnZhbHVlIix0aGlzLnVwZGF0ZV90cmFja19ib3Vu
ZD0Kcyx0aGlzKX0sZ2V0X2NpcmN1bGFyX3RyYWNrczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1v
ZGVsLmdldCgiZHJhd2FibGVzIikuPQpmaWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAuZ2V0KCJ0
cmFja190eXBlIikhPTNEPTNEIkRpYWdvbmFsSGVhdG1hcFRyYWNrIn09Cil9LGdldF9jaG9yZF90
cmFja3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXQoImRyYXdhYmxlcyIpLmZpbHRl
cihmdT0KbmN0aW9uKHApe3JldHVybiBwLmdldCgidHJhY2tfdHlwZSIpPTNEPTNEPTNEIkRpYWdv
bmFsSGVhdG1hcFRyYWNrIn0pfSxnZXRfPQp0cmFja3NfYm91bmRzOmZ1bmN0aW9uKCl7dmFyIHI9
M0R0aGlzLmdldF9jaXJjdWxhcl90cmFja3MoKSx0PTNEdGhpcy5tb2RlbC49CmdldCgiY29uZmln
IikuZ2V0X3ZhbHVlKCJhcmNfZGF0YXNldF9oZWlnaHQiKSxzPTNEdGhpcy5tb2RlbC5nZXQoImNv
bmZpZyIpLj0KZ2V0X3ZhbHVlKCJ0cmFja19nYXAiKSxwPTNETWF0aC5taW4odGhpcy4kZWwud2lk
dGgoKSx0aGlzLiRlbC5oZWlnaHQoKSktMjAsPQp2PTNEcC8yLXIubGVuZ3RoKih0K3MpK3MtdGhp
cy5sYWJlbF9hcmNfaGVpZ2h0LHU9M0RuLnJhbmdlKHYscC8yLHQrcyk7dmFyIHE9Cj0zRHRoaXM7
cmV0dXJuIGkubWFwKHUsZnVuY3Rpb24odyl7cmV0dXJuW3csdyt0XX0pfSxyZW5kZXI6ZnVuY3Rp
b24oKXt2YXIgeT0KPTNEdGhpcyxwPTNEeS4kZWwud2lkdGgoKSx4PTNEeS4kZWwuaGVpZ2h0KCks
dT0zRHRoaXMuZ2V0X2NpcmN1bGFyX3RyYWNrcygpPQoscz0zRHRoaXMuZ2V0X2Nob3JkX3RyYWNr
cygpLHI9M0R5Lm1vZGVsLmdldCgiY29uZmlnIikuZ2V0X3ZhbHVlKCJ0b3RhbF9nYXA9CiIpLHQ9
M0R0aGlzLmdldF90cmFja3NfYm91bmRzKCkscT0zRG4uc2VsZWN0KHkuJGVsWzBdKS5hcHBlbmQo
InN2ZyIpLmF0dHIoIj0Kd2lkdGgiLHApLmF0dHIoImhlaWdodCIseCkuYXR0cigicG9pbnRlci1l
dmVudHMiLCJhbGwiKS5hcHBlbmQoInN2ZzpnIikuY2FsPQpsKG4uYmVoYXZpb3Iuem9vbSgpLm9u
KCJ6b29tIixmdW5jdGlvbigpe3ZhciB6PTNEbi5ldmVudC5zY2FsZTtxLmF0dHIoInRyYW49CnNm
b3JtIiwidHJhbnNsYXRlKCIrbi5ldmVudC50cmFuc2xhdGUrIikgc2NhbGUoIit6KyIpIik7aWYo
eS5zY2FsZSE9M0Q9M0R6KT0Ke2lmKHkuem9vbV9kcmFnX3RpbWVvdXQpe2NsZWFyVGltZW91dCh5
Lnpvb21fZHJhZ190aW1lb3V0KX15Lnpvb21fZHJhZ190aW1lPQpvdXQ9M0RzZXRUaW1lb3V0KGZ1
bmN0aW9uKCl7fSw0MDApfX0pKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitwLzIrIiw9
CiIreC8yKyIpIikuYXBwZW5kKCJzdmc6ZyIpLmF0dHIoImNsYXNzIiwidHJhY2tzIik7dGhpcy5j
aXJjdWxhcl92aWV3cz0zRHUubT0KYXAoZnVuY3Rpb24oQSxCKXt2YXIgej0zRG5ldyBlKHtlbDpx
LmFwcGVuZCgiZyIpWzBdLHRyYWNrOkEscmFkaXVzX2JvdW5kczp0PQpbQl0sZ2Vub21lOnkuZ2Vu
b21lLHRvdGFsX2dhcDpyfSk7ei5yZW5kZXIoKTtyZXR1cm4gen0pO3RoaXMuY2hvcmRzX3ZpZXdz
PQo9M0RzLm1hcChmdW5jdGlvbihBKXt2YXIgej0zRG5ldyBsKHtlbDpxLmFwcGVuZCgiZyIpWzBd
LHRyYWNrOkEscmFkaXVzX2JvdW49CmRzOnRbMF0sZ2Vub21lOnkuZ2Vub21lLHRvdGFsX2dhcDpy
fSk7ei5yZW5kZXIoKTtyZXR1cm4gen0pO3ZhciB3PTNEdGhpcy5jaT0KcmN1bGFyX3ZpZXdzW3Ro
aXMuY2lyY3VsYXJfdmlld3MubGVuZ3RoLTFdLnJhZGl1c19ib3VuZHNbMV0sdj0zRFt3LHcrdGhp
cy5sPQphYmVsX2FyY19oZWlnaHRdO3RoaXMubGFiZWxfdHJhY2tfdmlldz0zRG5ldyBiKHtlbDpx
LmFwcGVuZCgiZyIpWzBdLHRyYWNrOm49CmV3IGQoKSxyYWRpdXNfYm91bmRzOnYsZ2Vub21lOnku
Z2Vub21lLHRvdGFsX2dhcDpyfSk7dGhpcy5sYWJlbF90cmFja192aWV3Lj0KcmVuZGVyKCl9LGFk
ZF90cmFjazpmdW5jdGlvbih2KXt2YXIgcT0zRHRoaXMubW9kZWwuZ2V0KCJjb25maWciKS5nZXRf
dmFsdWUoPQoidG90YWxfZ2FwIik7aWYodi5nZXQoInRyYWNrX3R5cGUiKT0zRD0zRD0zRCJEaWFn
b25hbEhlYXRtYXBUcmFjayIpe3ZhciByPQo9M0R0aGlzLmNpcmN1bGFyX3ZpZXdzWzBdLnJhZGl1
c19ib3VuZHMsdT0zRG5ldyBsKHtlbDpuLnNlbGVjdCgiZy50cmFja3MiKS49CmFwcGVuZCgiZyIp
WzBdLHRyYWNrOnYscmFkaXVzX2JvdW5kczpyLGdlbm9tZTp0aGlzLmdlbm9tZSx0b3RhbF9nYXA6
cX0pO3Uucj0KZW5kZXIoKTt0aGlzLmNob3Jkc192aWV3cy5wdXNoKHUpfWVsc2V7dmFyIHQ9M0R0
aGlzLmdldF90cmFja3NfYm91bmRzKCk7aS5lPQphY2godGhpcy5jaXJjdWxhcl92aWV3cyxmdW5j
dGlvbih3LHgpe3cudXBkYXRlX3JhZGl1c19ib3VuZHModFt4XSl9KTtpLmVhY2g9Cih0aGlzLmNo
b3Jkc192aWV3cyxmdW5jdGlvbih3KXt3LnVwZGF0ZV9yYWRpdXNfYm91bmRzKHRbMF0pfSk7dmFy
IHM9M0R0aGlzLj0KY2lyY3VsYXJfdmlld3MubGVuZ3RoLHA9M0RuZXcgZSh7ZWw6bi5zZWxlY3Qo
ImcudHJhY2tzIikuYXBwZW5kKCJnIilbMF0sdHJhPQpjazp2LHJhZGl1c19ib3VuZHM6dFtzXSxn
ZW5vbWU6dGhpcy5nZW5vbWUsdG90YWxfZ2FwOnF9KTtwLnJlbmRlcigpO3RoaXMuY2k9CnJjdWxh
cl92aWV3cy5wdXNoKHApfX0scmVtb3ZlX3RyYWNrOmZ1bmN0aW9uKHEscyxyKXt2YXIgcD0zRHRo
aXMuY2lyY3VsYXJfdj0KaWV3c1tyLmluZGV4XTt0aGlzLmNpcmN1bGFyX3ZpZXdzLnNwbGljZShy
LmluZGV4LDEpO3AuJGVsLnJlbW92ZSgpO3ZhciB0PTNEPQp0aGlzLmdldF90cmFja3NfYm91bmRz
KCk7aS5lYWNoKHRoaXMuY2lyY3VsYXJfdmlld3MsZnVuY3Rpb24odSx2KXt1LnVwZGF0ZV89CnJh
ZGl1c19ib3VuZHModFt2XSl9KX0sdXBkYXRlX3RyYWNrX2JvdW5kczpmdW5jdGlvbigpe3ZhciBw
PTNEdGhpcy5nZXRfdHJhYz0Ka3NfYm91bmRzKCk7aS5lYWNoKHRoaXMuY2lyY3VsYXJfdmlld3Ms
ZnVuY3Rpb24ocSxyKXtxLnVwZGF0ZV9yYWRpdXNfYm91bmRzPQoocFtyXSl9KTtpLmVhY2godGhp
cy5jaG9yZHNfdmlld3MsZnVuY3Rpb24ocSl7cS51cGRhdGVfcmFkaXVzX2JvdW5kcyhwWzBdKX09
Cil9fSk7dmFyIG09M0RCYWNrYm9uZS5WaWV3LmV4dGVuZCh7dGFnTmFtZToiZyIsaW5pdGlhbGl6
ZTpmdW5jdGlvbihwKXt0aGlzLj0KYmdfc3Ryb2tlPTNEIiNkZGQiO3RoaXMubG9hZGluZ19iZ19m
aWxsPTNEIiNmZmMiO3RoaXMuYmdfZmlsbD0zRCIjZGRkIjt0aGlzPQoudG90YWxfZ2FwPTNEcC50
b3RhbF9nYXA7dGhpcy50cmFjaz0zRHAudHJhY2s7dGhpcy5yYWRpdXNfYm91bmRzPTNEcC5yYWRp
dXM9Cl9ib3VuZHM7dGhpcy5nZW5vbWU9M0RwLmdlbm9tZTt0aGlzLmNocm9tc19sYXlvdXQ9M0R0
aGlzLl9jaHJvbXNfbGF5b3V0KCk7dD0KaGlzLmRhdGFfYm91bmRzPTNEW107dGhpcy5zY2FsZT0z
RDE7dGhpcy5wYXJlbnRfZWx0PTNEbi5zZWxlY3QodGhpcy4kZWxbMF0pPQp9LGdldF9maWxsX2Nv
bG9yOmZ1bmN0aW9uKCl7dmFyIHA9M0R0aGlzLnRyYWNrLmdldCgiY29uZmlnIikuZ2V0X3ZhbHVl
KCJibG89CmNrX2NvbG9yIik7aWYoIXApe3A9M0R0aGlzLnRyYWNrLmdldCgiY29uZmlnIikuZ2V0
X3ZhbHVlKCJjb2xvciIpfXJldHVybiBwfT0KLHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PTNEdGhp
cy5wYXJlbnRfZWx0O3ZhciBzPTNEdGhpcy5jaHJvbXNfbGF5b3V0LHY9M0RuPQouc3ZnLmFyYygp
LmlubmVyUmFkaXVzKHRoaXMucmFkaXVzX2JvdW5kc1swXSkub3V0ZXJSYWRpdXModGhpcy5yYWRp
dXNfYm91bmQ9CnNbMV0pLHA9M0R0LnNlbGVjdEFsbCgiZyIpLmRhdGEocykuZW50ZXIoKS5hcHBl
bmQoInN2ZzpnIikscj0zRHAuYXBwZW5kKCJwYT0KdGgiKS5hdHRyKCJkIix2KS5hdHRyKCJjbGFz
cyIsImNocm9tLWJhY2tncm91bmQiKS5zdHlsZSgic3Ryb2tlIix0aGlzLmJnX3N0PQpyb2tlKS5z
dHlsZSgiZmlsbCIsdGhpcy5sb2FkaW5nX2JnX2ZpbGwpO3IuYXBwZW5kKCJ0aXRsZSIpLnRleHQo
ZnVuY3Rpb24oeCk9CntyZXR1cm4geC5kYXRhLmNocm9tfSk7dmFyIHE9M0R0aGlzLHU9M0RxLnRy
YWNrLmdldCgiZGF0YV9tYW5hZ2VyIiksdz0zRCh1Pz0KdS5kYXRhX2lzX3JlYWR5KCk6dHJ1ZSk7
JC53aGVuKHcpLnRoZW4oZnVuY3Rpb24oKXskLndoZW4ocS5fcmVuZGVyX2RhdGEodCkpPQoudGhl
bihmdW5jdGlvbigpe3Iuc3R5bGUoImZpbGwiLHEuYmdfZmlsbCk7cS5yZW5kZXJfbGFiZWxzKCl9
KX0pfSxyZW5kZXJfbGE9CmJlbHM6ZnVuY3Rpb24oKXt9LHVwZGF0ZV9yYWRpdXNfYm91bmRzOmZ1
bmN0aW9uKHEpe3RoaXMucmFkaXVzX2JvdW5kcz0zRHE7dj0KYXIgcD0zRG4uc3ZnLmFyYygpLmlu
bmVyUmFkaXVzKHRoaXMucmFkaXVzX2JvdW5kc1swXSkub3V0ZXJSYWRpdXModGhpcy5yYWRpPQp1
c19ib3VuZHNbMV0pO3RoaXMucGFyZW50X2VsdC5zZWxlY3RBbGwoImc+cGF0aC5jaHJvbS1iYWNr
Z3JvdW5kIikudHJhbnNpdGk9Cm9uKCkuZHVyYXRpb24oMTAwMCkuYXR0cigiZCIscCk7dGhpcy5f
dHJhbnNpdGlvbl9jaHJvbV9kYXRhKCk7dGhpcy5fdHJhbnNpdD0KaW9uX2xhYmVscygpfSx1cGRh
dGVfc2NhbGU6ZnVuY3Rpb24ocyl7dmFyIHI9M0R0aGlzLnNjYWxlO3RoaXMuc2NhbGU9M0RzO2lm
PQooczw9M0RyKXtyZXR1cm59dmFyIHE9M0R0aGlzLHA9M0RuZXcgbygpO3RoaXMucGFyZW50X2Vs
dC5zZWxlY3RBbGwoInBhdGguY2g9CnJvbS1kYXRhIikuZmlsdGVyKGZ1bmN0aW9uKHUsdCl7cmV0
dXJuIHAuaXNfdmlzaWJsZSh0aGlzKX0pLmVhY2goZnVuY3Rpb24oej0KLHYpe3ZhciB5PTNEbi5z
ZWxlY3QodGhpcyksdT0zRHkuYXR0cigiY2hyb20iKSx4PTNEcS5nZW5vbWUuZ2V0X2Nocm9tX3Jl
Z2lvPQpuKHUpLHc9M0RxLnRyYWNrLmdldCgiZGF0YV9tYW5hZ2VyIiksdDtpZighdy5jYW5fZ2V0
X21vcmVfZGV0YWlsZWRfZGF0YSh4KSk9CntyZXR1cm59dD0zRHEudHJhY2suZ2V0KCJkYXRhX21h
bmFnZXIiKS5nZXRfbW9yZV9kZXRhaWxlZF9kYXRhKHgsIkNvdmVyYWdlIj0KLDAscyk7JC53aGVu
KHQpLnRoZW4oZnVuY3Rpb24oQyl7eS5yZW1vdmUoKTtxLl91cGRhdGVfZGF0YV9ib3VuZHMoKTt2
YXIgQj0KPTNEaS5maW5kKHEuY2hyb21zX2xheW91dCxmdW5jdGlvbihEKXtyZXR1cm4gRC5kYXRh
LmNocm9tPTNEPTNEPTNEdX0pO3ZhciBBPQo9M0RxLmdldF9maWxsX2NvbG9yKCk7cS5fcmVuZGVy
X2Nocm9tX2RhdGEocS5wYXJlbnRfZWx0LEIsQykuc3R5bGUoInN0cm9rZSI9CixBKS5zdHlsZSgi
ZmlsbCIsQSl9KX0pO3JldHVybiBxfSxfdHJhbnNpdGlvbl9jaHJvbV9kYXRhOmZ1bmN0aW9uKCl7
dmFyIHE9Cj0zRHRoaXMudHJhY2sscz0zRHRoaXMuY2hyb21zX2xheW91dCxwPTNEdGhpcy5wYXJl
bnRfZWx0LnNlbGVjdEFsbCgiZz5wYXRoLj0KY2hyb20tZGF0YSIpLHQ9M0RwWzBdLmxlbmd0aDtp
Zih0PjApe3ZhciByPTNEdGhpczskLndoZW4ocS5nZXQoImRhdGFfbWFuYWdlPQpyIikuZ2V0X2dl
bm9tZV93aWRlX2RhdGEodGhpcy5nZW5vbWUpKS50aGVuKGZ1bmN0aW9uKHcpe3ZhciB2PTNEaS5y
ZWplY3QoaS49Cm1hcCh3LGZ1bmN0aW9uKHgseSl7dmFyIHo9M0RudWxsLEE9M0RyLl9nZXRfcGF0
aF9mdW5jdGlvbihzW3ldLHgpO2lmKEEpe3o9Cj0zREEoeC5kYXRhKX1yZXR1cm4gen0pLGZ1bmN0
aW9uKHgpe3JldHVybiB4PTNEPTNEPTNEbnVsbH0pO3ZhciB1PTNEcS5nZXQoIj0KY29uZmlnIiku
Z2V0X3ZhbHVlKCJjb2xvciIpO3AuZWFjaChmdW5jdGlvbih5LHgpe24uc2VsZWN0KHRoaXMpLnRy
YW5zaXRpb24oPQopLmR1cmF0aW9uKDEwMDApLnN0eWxlKCJzdHJva2UiLHUpLnN0eWxlKCJmaWxs
Iix1KS5hdHRyKCJkIix2W3hdKX0pfSl9fSxfdHI9CmFuc2l0aW9uX2xhYmVsczpmdW5jdGlvbigp
e30sX3VwZGF0ZV9kYXRhX2JvdW5kczpmdW5jdGlvbihxKXt2YXIgcD0zRHRoaXMuZD0KYXRhX2Jv
dW5kczt0aGlzLmRhdGFfYm91bmRzPTNEcXx8dGhpcy5nZXRfZGF0YV9ib3VuZHModGhpcy50cmFj
ay5nZXQoImRhdGFfPQptYW5hZ2VyIikuZ2V0X2dlbm9tZV93aWRlX2RhdGEodGhpcy5nZW5vbWUp
KTt0aGlzLl90cmFuc2l0aW9uX2Nocm9tX2RhdGEoKX09CixfcmVuZGVyX2RhdGE6ZnVuY3Rpb24o
cyl7dmFyIHI9M0R0aGlzLHE9M0R0aGlzLmNocm9tc19sYXlvdXQscD0zRHRoaXMudHJhYz0Kayx0
PTNEJC5EZWZlcnJlZCgpOyQud2hlbihwLmdldCgiZGF0YV9tYW5hZ2VyIikuZ2V0X2dlbm9tZV93
aWRlX2RhdGEodGhpcy5nPQplbm9tZSkpLnRoZW4oZnVuY3Rpb24odil7ci5kYXRhX2JvdW5kcz0z
RHIuZ2V0X2RhdGFfYm91bmRzKHYpO3AuZ2V0KCJjb25maWc9CiIpLnNldF92YWx1ZSgibWluX3Zh
bHVlIixyLmRhdGFfYm91bmRzWzBdLHtzaWxlbnQ6dHJ1ZX0pO3AuZ2V0KCJjb25maWciKS5zZT0K
dF92YWx1ZSgibWF4X3ZhbHVlIixyLmRhdGFfYm91bmRzWzFdLHtzaWxlbnQ6dHJ1ZX0pO2xheW91
dF9hbmRfZGF0YT0zRGkuemlwPQoocSx2KSxjaHJvbXNfZGF0YV9sYXlvdXQ9M0RpLm1hcChsYXlv
dXRfYW5kX2RhdGEsZnVuY3Rpb24odyl7dmFyIHg9M0R3WzBdLHk9Cj0zRHdbMV07cmV0dXJuIHIu
X3JlbmRlcl9jaHJvbV9kYXRhKHMseCx5KX0pO3ZhciB1PTNEci5nZXRfZmlsbF9jb2xvcigpO3Iu
cD0KYXJlbnRfZWx0LnNlbGVjdEFsbCgicGF0aC5jaHJvbS1kYXRhIikuc3R5bGUoInN0cm9rZSIs
dSkuc3R5bGUoImZpbGwiLHUpO3QuPQpyZXNvbHZlKHMpfSk7cmV0dXJuIHR9LF9yZW5kZXJfY2hy
b21fZGF0YTpmdW5jdGlvbihwLHEscil7fSxfZ2V0X3BhdGhfZnVuY3Q9CmlvbjpmdW5jdGlvbihx
LHApe30sX2Nocm9tc19sYXlvdXQ6ZnVuY3Rpb24oKXt2YXIgcT0zRHRoaXMuZ2Vub21lLmdldF9j
aHJvbT0Kc19pbmZvKCkscz0zRG4ubGF5b3V0LnBpZSgpLnZhbHVlKGZ1bmN0aW9uKHUpe3JldHVy
biB1Lmxlbn0pLnNvcnQobnVsbCksdD0KPTNEcyhxKSxwPTNEMipNYXRoLlBJKnRoaXMudG90YWxf
Z2FwL3EubGVuZ3RoLHI9M0RpLm1hcCh0LGZ1bmN0aW9uKHcsdil7dmFyPQogdT0zRHcuZW5kQW5n
bGUtcDt3LmVuZEFuZ2xlPTNEKHU+dy5zdGFydEFuZ2xlP3U6dy5zdGFydEFuZ2xlKTtyZXR1cm4g
d30pO3I9CmV0dXJuIHJ9fSk7dmFyIGI9M0RtLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbihw
KXttLnByb3RvdHlwZS5pbml0aWFsaXplLj0KY2FsbCh0aGlzLHApO3RoaXMuaW5uZXJSYWRpdXM9
M0R0aGlzLnJhZGl1c19ib3VuZHNbMF07dGhpcy5yYWRpdXNfYm91bmRzWzBdPQo9M0R0aGlzLnJh
ZGl1c19ib3VuZHNbMV07dGhpcy5iZ19zdHJva2U9M0QiI2ZmZiI7dGhpcy5iZ19maWxsPTNEIiNm
ZmYiO3RoaXM9Ci5taW5fYXJjX2xlbj0zRDAuMDV9LF9yZW5kZXJfZGF0YTpmdW5jdGlvbihyKXt2
YXIgcT0zRHRoaXMscD0zRHIuc2VsZWN0QWxsKD0KImciKTtwLnNlbGVjdEFsbCgicGF0aCIpLmF0
dHIoImlkIixmdW5jdGlvbih2KXtyZXR1cm4ibGFiZWwtIit2LmRhdGEuY2hyb219PQopO3AuYXBw
ZW5kKCJzdmc6dGV4dCIpLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdi5lbmRBbmdsZS12LnN0
YXJ0QW5nbGU+cS49Cm1pbl9hcmNfbGVufSkuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5h
cHBlbmQoInN2Zzp0ZXh0UGF0aCIpLmF0dHIoImNsYT0Kc3MiLCJjaHJvbS1sYWJlbCIpLmF0dHIo
InhsaW5rOmhyZWYiLGZ1bmN0aW9uKHYpe3JldHVybiIjbGFiZWwtIit2LmRhdGEuY2hyPQpvbX0p
LmF0dHIoInN0YXJ0T2Zmc2V0IiwiMjUlIikudGV4dChmdW5jdGlvbih2KXtyZXR1cm4gdi5kYXRh
LmNocm9tfSk7dmFyIHM9Cj0zRGZ1bmN0aW9uKHgpe3ZhciB2PTNEKHguZW5kQW5nbGUteC5zdGFy
dEFuZ2xlKS94LnZhbHVlLHc9M0RuLnJhbmdlKDAseC52YT0KbHVlLDI1MDAwMDAwKS5tYXAoZnVu
Y3Rpb24oeSx6KXtyZXR1cm57cmFkaXVzOnEuaW5uZXJSYWRpdXMsYW5nbGU6eSp2K3guc3RhPQpy
dEFuZ2xlLGxhYmVsOno9M0Q9M0Q9M0QwPzA6KHolMz9udWxsOnEuZm9ybWF0TnVtKHkpKX19KTtp
Zih3Lmxlbmd0aDw0KXt3W3c9Ci5sZW5ndGgtMV0ubGFiZWw9M0RxLmZvcm1hdE51bShNYXRoLnJv
dW5kKCh3W3cubGVuZ3RoLTFdLmFuZ2xlLXguc3RhcnRBbmdsZT0KKS92KSl9cmV0dXJuIHd9O3Zh
ciB1PTNEZnVuY3Rpb24odil7cmV0dXJuIHYuYW5nbGU+TWF0aC5QST8icm90YXRlKDE4MCl0cmFu
PQpzbGF0ZSgtMTYpIjpudWxsfTt2YXIgdD0zRGkuZmlsdGVyKHRoaXMuY2hyb21zX2xheW91dCxm
dW5jdGlvbih2KXtyZXR1cm4gdi49CmVuZEFuZ2xlLXYuc3RhcnRBbmdsZT5xLm1pbl9hcmNfbGVu
fSk7dGhpcy5kcmF3VGlja3ModGhpcy5wYXJlbnRfZWx0LHQscyx1KT0KfX0pO2kuZXh0ZW5kKGIu
cHJvdG90eXBlLGopO3ZhciBoPTNEbS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24ocCl7bS5w
cm90PQpvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxwKTt2YXIgcT0zRHRoaXMudHJhY2suZ2V0
KCJjb25maWciKTtxLmdldCgibWluX3Y9CmFsdWUiKS5vbigiY2hhbmdlOnZhbHVlIix0aGlzLl91
cGRhdGVfbWluX21heCx0aGlzKTtxLmdldCgibWF4X3ZhbHVlIikub24oIj0KY2hhbmdlOnZhbHVl
Iix0aGlzLl91cGRhdGVfbWluX21heCx0aGlzKTtxLmdldCgiY29sb3IiKS5vbigiY2hhbmdlOnZh
bHVlIix0PQpoaXMuX3RyYW5zaXRpb25fY2hyb21fZGF0YSx0aGlzKX0sX3VwZGF0ZV9taW5fbWF4
OmZ1bmN0aW9uKCl7dmFyIHE9M0R0aGlzLnQ9CnJhY2suZ2V0KCJjb25maWciKSxwPTNEW3EuZ2V0
X3ZhbHVlKCJtaW5fdmFsdWUiKSxxLmdldF92YWx1ZSgibWF4X3ZhbHVlIildOz0KdGhpcy5fdXBk
YXRlX2RhdGFfYm91bmRzKHApO3RoaXMucGFyZW50X2VsdC5zZWxlY3RBbGwoIi5taW5fbWF4Iiku
dGV4dChmdW5jPQp0aW9uKHMscil7cmV0dXJuIHBbcl19KX0sX3F1YW50aWxlOmZ1bmN0aW9uKHEs
cCl7cS5zb3J0KG4uYXNjZW5kaW5nKTtyZXR1cm49CiBuLnF1YW50aWxlKHEscCl9LF9yZW5kZXJf
Y2hyb21fZGF0YTpmdW5jdGlvbihwLHMscSl7dmFyIHQ9M0R0aGlzLl9nZXRfcGF0aD0KX2Z1bmN0
aW9uKHMscSk7aWYoIXQpe3JldHVybiBudWxsfXZhciByPTNEcC5kYXR1bShxLmRhdGEpLHU9M0Ry
LmFwcGVuZCgicGF0PQpoIikuYXR0cigiY2xhc3MiLCJjaHJvbS1kYXRhIikuYXR0cigiY2hyb20i
LHMuZGF0YS5jaHJvbSkuYXR0cigiZCIsdCk7cmV0dXI9Cm4gdX0sX2dldF9wYXRoX2Z1bmN0aW9u
OmZ1bmN0aW9uKHMscil7aWYodHlwZW9mIHI9M0Q9M0Q9M0Qic3RyaW5nInx8IXIuZGF0YT0KfHxy
LmRhdGEubGVuZ3RoPTNEPTNEPTNEMCl7cmV0dXJuIG51bGx9dmFyIHA9M0RuLnNjYWxlLmxpbmVh
cigpLmRvbWFpbih0aGlzPQouZGF0YV9ib3VuZHMpLnJhbmdlKHRoaXMucmFkaXVzX2JvdW5kcyku
Y2xhbXAodHJ1ZSk7dmFyIHQ9M0RuLnNjYWxlLmxpbmVhcig9CikuZG9tYWluKFswLHIuZGF0YS5s
ZW5ndGhdKS5yYW5nZShbcy5zdGFydEFuZ2xlLHMuZW5kQW5nbGVdKTt2YXIgcT0zRG4uc3ZnLj0K
bGluZS5yYWRpYWwoKS5pbnRlcnBvbGF0ZSgibGluZWFyIikucmFkaXVzKGZ1bmN0aW9uKHUpe3Jl
dHVybiBwKHVbMV0pfSkuYW5nPQpsZShmdW5jdGlvbih2LHUpe3JldHVybiB0KHUpfSk7cmV0dXJu
IG4uc3ZnLmFyZWEucmFkaWFsKCkuaW50ZXJwb2xhdGUocS5pbnQ9CmVycG9sYXRlKCkpLmlubmVy
UmFkaXVzKHAoMCkpLm91dGVyUmFkaXVzKHEucmFkaXVzKCkpLmFuZ2xlKHEuYW5nbGUoKSl9LHJl
bj0KZGVyX2xhYmVsczpmdW5jdGlvbigpe3ZhciBwPTNEdGhpcyxyPTNEZnVuY3Rpb24oKXtyZXR1
cm4icm90YXRlKDkwKSJ9O3ZhciBxPQo9M0R0aGlzLmRyYXdUaWNrcyh0aGlzLnBhcmVudF9lbHQs
W3RoaXMuY2hyb21zX2xheW91dFswXV0sdGhpcy5fZGF0YV9ib3VuZHM9Cl90aWNrc19mbigpLHIs
dHJ1ZSkuY2xhc3NlZCgibWluX21heCIsdHJ1ZSk7aS5lYWNoKHEsZnVuY3Rpb24ocyl7JChzKS5j
bGljaz0KKGZ1bmN0aW9uKCl7dmFyIHQ9M0RuZXcgYy5Db25maWdTZXR0aW5nQ29sbGVjdGlvblZp
ZXcoe2NvbGxlY3Rpb246cC50cmFjay5nPQpldCgiY29uZmlnIil9KTt0LnJlbmRlcl9pbl9tb2Rh
bCgiQ29uZmlndXJlIFRyYWNrIil9KX0pfSxfdHJhbnNpdGlvbl9sYWJlbHM9CjpmdW5jdGlvbigp
e2lmKHRoaXMuZGF0YV9ib3VuZHMubGVuZ3RoPTNEPTNEPTNEMCl7cmV0dXJufXZhciBxPTNEdGhp
cyxzPTNEaT0KLmZpbHRlcih0aGlzLmNocm9tc19sYXlvdXQsZnVuY3Rpb24odCl7cmV0dXJuIHQu
ZW5kQW5nbGUtdC5zdGFydEFuZ2xlPjAuMDh9PQopLHI9M0RpLmZpbHRlcihzLGZ1bmN0aW9uKHUs
dCl7cmV0dXJuIHQlMz0zRD0zRD0zRDB9KSxwPTNEaS5mbGF0dGVuKGkubWFwKHI9CixmdW5jdGlv
bih0KXtyZXR1cm4gcS5fZGF0YV9ib3VuZHNfdGlja3NfZm4oKSh0KX0pKTt0aGlzLnBhcmVudF9l
bHQuc2VsZWN0QT0KbGwoImcudGljayIpLmRhdGEocCkudHJhbnNpdGlvbigpLmF0dHIoInRyYW5z
Zm9ybSIsZnVuY3Rpb24odCl7cmV0dXJuInJvdGF0PQplKCIrKHQuYW5nbGUqMTgwL01hdGguUEkt
OTApKyIpdHJhbnNsYXRlKCIrdC5yYWRpdXMrIiwwKSJ9KX0sX2RhdGFfYm91bmRzX3Q9Cmlja3Nf
Zm46ZnVuY3Rpb24oKXt2YXIgcD0zRHRoaXM7dmlzaWJsZUNocm9tcz0zRDA7cmV0dXJuIGZ1bmN0
aW9uKHEpe3JldHVybj0KW3tyYWRpdXM6cC5yYWRpdXNfYm91bmRzWzBdLGFuZ2xlOnEuc3RhcnRB
bmdsZSxsYWJlbDpwLmZvcm1hdE51bShwLmRhdGFfYm91PQpuZHNbMF0pfSx7cmFkaXVzOnAucmFk
aXVzX2JvdW5kc1sxXSxhbmdsZTpxLnN0YXJ0QW5nbGUsbGFiZWw6cC5mb3JtYXROdW0ocC49CmRh
dGFfYm91bmRzWzFdKX1dfX0sZ2V0X2RhdGFfYm91bmRzOmZ1bmN0aW9uKHApe319KTtpLmV4dGVu
ZChoLnByb3RvdHlwZSxqKT0KO3ZhciBlPTNEaC5leHRlbmQoe2dldF9kYXRhX2JvdW5kczpmdW5j
dGlvbihxKXt2YXIgcD0zRGkuZmxhdHRlbihpLm1hcChxLGZ1PQpuY3Rpb24ocil7aWYocil7cmV0
dXJuIGkubWFwKHIuZGF0YSxmdW5jdGlvbihzKXtyZXR1cm4gcGFyc2VJbnQoc1sxXSwxMCl8fDA9
Cn0pfWVsc2V7cmV0dXJuIDB9fSkpO3JldHVybltpLm1pbihwKSx0aGlzLl9xdWFudGlsZShwLDAu
OTgpfHxpLm1heChwKV19fSk7dj0KYXIgbD0zRG0uZXh0ZW5kKHtyZW5kZXI6ZnVuY3Rpb24oKXt2
YXIgcD0zRHRoaXM7JC53aGVuKHAudHJhY2suZ2V0KCJkYXRhX21hPQpuYWdlciIpLmRhdGFfaXNf
cmVhZHkoKSkudGhlbihmdW5jdGlvbigpeyQud2hlbihwLnRyYWNrLmdldCgiZGF0YV9tYW5hZ2Vy
Iik9Ci5nZXRfZ2Vub21lX3dpZGVfZGF0YShwLmdlbm9tZSkpLnRoZW4oZnVuY3Rpb24ocyl7dmFy
IHI9M0RbXSxxPTNEcC5nZW5vbWUuZz0KZXRfY2hyb21zX2luZm8oKTtpLmVhY2gocyxmdW5jdGlv
bih3LHYpe3ZhciB0PTNEcVt2XS5jaHJvbTt2YXIgdT0zRGkubWFwKHcuPQpkYXRhLGZ1bmN0aW9u
KHkpe3ZhciB4PTNEcC5fZ2V0X3JlZ2lvbl9hbmdsZSh0LHlbMV0pLHo9M0RwLl9nZXRfcmVnaW9u
X2FuZ2w9CmUoeVszXSx5WzRdKTtyZXR1cm57c291cmNlOntzdGFydEFuZ2xlOngsZW5kQW5nbGU6
eCswLjAxfSx0YXJnZXQ6e3N0YXJ0QW5nbD0KZTp6LGVuZEFuZ2xlOnorMC4wMX19fSk7cj0zRHIu
Y29uY2F0KHUpfSk7cC5wYXJlbnRfZWx0LmFwcGVuZCgiZyIpLmF0dHIoImNsPQphc3MiLCJjaG9y
ZCIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEocikuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5zdHls
ZSgiZmlsbCI9CixwLmdldF9maWxsX2NvbG9yKCkpLmF0dHIoImQiLG4uc3ZnLmNob3JkKCkucmFk
aXVzKHAucmFkaXVzX2JvdW5kc1swXSkpLnN0eT0KbGUoIm9wYWNpdHkiLDEpfSl9KX0sdXBkYXRl
X3JhZGl1c19ib3VuZHM6ZnVuY3Rpb24ocCl7dGhpcy5yYWRpdXNfYm91bmRzPTNEPQpwO3RoaXMu
cGFyZW50X2VsdC5zZWxlY3RBbGwoInBhdGgiKS50cmFuc2l0aW9uKCkuYXR0cigiZCIsbi5zdmcu
Y2hvcmQoKS5yYWQ9Cml1cyh0aGlzLnJhZGl1c19ib3VuZHNbMF0pKX0sX2dldF9yZWdpb25fYW5n
bGU6ZnVuY3Rpb24ocixwKXt2YXIgcT0zRGkuZmluZD0KKHRoaXMuY2hyb21zX2xheW91dCxmdW5j
dGlvbihzKXtyZXR1cm4gcy5kYXRhLmNocm9tPTNEPTNEPTNEcn0pO3JldHVybiBxLmVuPQpkQW5n
bGUtKChxLmVuZEFuZ2xlLXEuc3RhcnRBbmdsZSkqKHEuZGF0YS5sZW4tcCkvcS5kYXRhLmxlbil9
fSk7dmFyIGc9M0RCYWM9Cmtib25lLlZpZXcuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKCl7
dmFyIHA9M0RuZXcgay5HZW5vbWUoZ2FsYXh5X2NvbmZpZz0KLmFwcC5nZW5vbWUpLHE9M0RuZXcg
ay5HZW5vbWVWaXN1YWxpemF0aW9uKGdhbGF4eV9jb25maWcuYXBwLnZpel9jb25maWcpO3EuPQpn
ZXQoImNvbmZpZyIpLmFkZChbe2tleToiYXJjX2RhdGFzZXRfaGVpZ2h0IixsYWJlbDoiQXJjIERh
dGFzZXQgSGVpZ2h0Iix0eXA9CmU6ImludCIsdmFsdWU6MjUsdmlldzoiY2lyY3N0ZXIifSx7a2V5
OiJ0cmFja19nYXAiLGxhYmVsOiJHYXAgQmV0d2VlbiBUcmFjaz0KcyIsdHlwZToiaW50Iix2YWx1
ZTo1LHZpZXc6ImNpcmNzdGVyIn0se2tleToidG90YWxfZ2FwIixsYWJlbDoiR2FwIFswLTFdIix0
PQp5cGU6ImZsb2F0Iix2YWx1ZTowLjQsdmlldzoiY2lyY3N0ZXIiLGhpZGRlbjp0cnVlfV0pO3Zh
ciBzPTNEbmV3IGEoe2VsOiQoIiM9CmNlbnRlciAudW5pZmllZC1wYW5lbC1ib2R5IiksZ2Vub21l
OnAsbW9kZWw6cX0pO3MucmVuZGVyKCk7JCgiI2NlbnRlciAudW5pZj0KaWVkLXBhbmVsLWhlYWRl
ci1pbm5lciIpLmFwcGVuZChnYWxheHlfY29uZmlnLmFwcC52aXpfY29uZmlnLnRpdGxlKyIgIitn
YWxhPQp4eV9jb25maWcuYXBwLnZpel9jb25maWcuZGJrZXkpO3ZhciByPTNEZi5jcmVhdGVfaWNv
bl9idXR0b25zX21lbnUoW3tpY29uX2M9Cmxhc3M6InBsdXMtYnV0dG9uIix0aXRsZToiQWRkIHRy
YWNrcyIsb25fY2xpY2s6ZnVuY3Rpb24oKXtrLnNlbGVjdF9kYXRhc2V0cz0KKGdhbGF4eV9jb25m
aWcucm9vdCsidmlzdWFsaXphdGlvbi9saXN0X2N1cnJlbnRfaGlzdG9yeV9kYXRhc2V0cyIsZ2Fs
YXh5X2NvPQpuZmlnLnJvb3QrImFwaS9kYXRhc2V0cyIscS5nZXQoImRia2V5IiksZnVuY3Rpb24o
dCl7cS5hZGRfdHJhY2tzKHQpfSl9fSx7aWM9Cm9uX2NsYXNzOiJnZWFyIix0aXRsZToiU2V0dGlu
Z3MiLG9uX2NsaWNrOmZ1bmN0aW9uKCl7dmFyIHQ9M0RuZXcgYy5Db25maWdTZT0KdHRpbmdDb2xs
ZWN0aW9uVmlldyh7Y29sbGVjdGlvbjpxLmdldCgiY29uZmlnIil9KTt0LnJlbmRlcl9pbl9tb2Rh
bCgiQ29uZmlnPQp1cmUgVmlzdWFsaXphdGlvbiIpfX0se2ljb25fY2xhc3M6ImRpc2stLWFycm93
Iix0aXRsZToiU2F2ZSIsb25fY2xpY2s6ZnVuY3Q9Cmlvbigpe0dhbGF4eS5tb2RhbC5zaG93KHt0
aXRsZToiU2F2aW5nLi4uIixib2R5OiJwcm9ncmVzcyJ9KTskLmFqYXgoe3VybDpnYT0KbGF4eV9j
b25maWcucm9vdCsidmlzdWFsaXphdGlvbi9zYXZlIix0eXBlOiJQT1NUIixkYXRhVHlwZToianNv
biIsZGF0YTp7aWQ6PQpxLmdldCgidmlzX2lkIiksdGl0bGU6cS5nZXQoInRpdGxlIiksZGJrZXk6
cS5nZXQoImRia2V5IiksdHlwZToidHJhY2tzdGVyIiw9CnZpc19qc29uOkpTT04uc3RyaW5naWZ5
KHEpfX0pLnN1Y2Nlc3MoZnVuY3Rpb24odCl7R2FsYXh5Lm1vZGFsLmhpZGUoKTtxLnNldD0KKCJ2
aXNfaWQiLHQudmlzX2lkKX0pLmVycm9yKGZ1bmN0aW9uKCl7R2FsYXh5Lm1vZGFsLnNob3coe3Rp
dGxlOiJDb3VsZCBOb3QgPQpTYXZlIixib2R5OiJDb3VsZCBub3Qgc2F2ZSB2aXN1YWxpemF0aW9u
LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLiIsYnV0dG9uczo9CntDYW5jZWw6ZnVuY3Rpb24oKXtH
YWxheHkubW9kYWwuaGlkZSgpfX19KX0pfX0se2ljb25fY2xhc3M6ImNyb3NzLWNpcmNsZSIsdD0K
aXRsZToiQ2xvc2UiLG9uX2NsaWNrOmZ1bmN0aW9uKCl7d2luZG93LmxvY2F0aW9uPTNEZ2FsYXh5
X2NvbmZpZy5yb290KyJ2aXN1PQphbGl6YXRpb24vbGlzdCJ9fV0se3Rvb2x0aXBfY29uZmlnOntw
bGFjZW1lbnQ6ImJvdHRvbSJ9fSk7ci4kZWwuYXR0cigic3R5bGU9CiIsImZsb2F0OiByaWdodCIp
OyQoIiNjZW50ZXIgLnVuaWZpZWQtcGFuZWwtaGVhZGVyLWlubmVyIikuYXBwZW5kKHIuJGVsKTsk
KD0KIi5tZW51LWJ1dHRvbiIpLnRvb2x0aXAoe3BsYWNlbWVudDoiYm90dG9tIn0pfX0pO3JldHVy
bntHYWxheHlBcHA6Z319KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZmIC1yIDVk
ZDY1NDlhYWMzYTI5YjE1NjJmZDNlNTMwNmMxYzY5ZWYwMDQ3YTcgLXIgNjViMjMzMGI4MjNjNzYx
MTM2OWI5N2I9CjA4MjkyYTZjODY0ZGVlMTFjIHN0YXRpYy9zY3JpcHRzL3Zpei9jaXJjc3Rlci5q
cwotLS0gYS9zdGF0aWMvc2NyaXB0cy92aXovY2lyY3N0ZXIuanMKKysrIGIvc3RhdGljL3Njcmlw
dHMvdml6L2NpcmNzdGVyLmpzCkBAIC0xLDE2ICsxLDIwIEBACiAvLyBsb2FkIHJlcXVpcmVkIGxp
YnJhcmllcwotcmVxdWlyZSgKLVsKK3JlcXVpcmUoWwogICAgICd1dGlscy91dGlscycsCi0gICAg
J212Yy91aS9pY29uLWJ1dHRvbicsCi0gICAgJ2xpYnMvZmFyYnRhc3RpYycsCi1dLCBmdW5jdGlv
bihtb2RfdXRpbHMsIG1vZF9pY29uX2J0bikKK10sIGZ1bmN0aW9uKG1vZF91dGlscykKIHsKICAg
ICAvLyBsb2FkIGNzcwogICAgIG1vZF91dGlscy5jc3NMb2FkRmlsZSgic3RhdGljL3N0eWxlL2Np
cmNzdGVyLmNzcyIpOwogfSk7Cj0yMAotZGVmaW5lKFsibGlicy91bmRlcnNjb3JlIiwgImxpYnMv
ZDMiLCAidml6L3Zpc3VhbGl6YXRpb24iLCAidXRpbHMvY29uZmlnIl09CiwgZnVuY3Rpb24oXywg
ZDMsIHZpc3VhbGl6YXRpb24sIGNvbmZpZykgeworZGVmaW5lKFsKKyAgICAibGlicy91bmRlcnNj
b3JlIiwKKyAgICAibGlicy9kMyIsCisgICAgInZpei92aXN1YWxpemF0aW9uIiwKKyAgICAidXRp
bHMvY29uZmlnIiwKKyAgICAnbXZjL3VpL2ljb24tYnV0dG9uJywKKyAgICAnbGlicy9mYXJidGFz
dGljJworXSwgZnVuY3Rpb24oXywgZDMsIHZpc3VhbGl6YXRpb24sIGNvbmZpZywgbW9kX2ljb25f
YnRuKSB7Cj0yMAogLyoqCiAgKiBVdGlsaXR5IGNsYXNzIGZvciB3b3JraW5nIHdpdGggU1ZHLgpA
QCAtNzEsNyArNzUsNyBAQAogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHRpY2tfY29vcmRz
ID0zRCBbMSwgMCwgNCwgMF07CiAgICAgICAgICAgICB0ZXh0X2Nvb3JkcyA9M0QgWzAsIDQsICIu
MzVlbSIsICIiXTsKLSAgICAgICAgICAgPTIwCisKICAgICAgICAgfQo9MjAKICAgICAgICAgdGlj
a3MuYXBwZW5kKCJsaW5lIikKQEAgLTgwLDcgKzg0LDcgQEAKICAgICAgICAgICAgICAuYXR0cigi
eDIiLCB0aWNrX2Nvb3Jkc1syXSkKICAgICAgICAgICAgICAuYXR0cigieTEiLCB0aWNrX2Nvb3Jk
c1szXSkKICAgICAgICAgICAgICAuc3R5bGUoInN0cm9rZSIsICIjMDAwIik7Ci0gICAgICAgPTIw
CisKICAgICAgICAgcmV0dXJuIHRpY2tzLmFwcGVuZCgidGV4dCIpCiAgICAgICAgICAgICAgICAg
ICAgIC5hdHRyKCJ4IiwgdGV4dF9jb29yZHNbMF0pCiAgICAgICAgICAgICAgICAgICAgIC5hdHRy
KCJ5IiwgdGV4dF9jb29yZHNbMV0pCkBAIC05OCwxMSArMTAyLDExIEBACiAgICAgICAgIC8vIFVz
ZSBkZWZhdWx0IG9mIDIgc2lnLiBkaWdpdHMuCiAgICAgICAgIGlmIChzaWdEaWdpdHMgPTNEPTNE
PTNEIHVuZGVmaW5lZCkKICAgICAgICAgICAgIHNpZ0RpZ2l0cyA9M0QgMjsKLSAgICAgID0yMAor
CiAgICAgICAgIC8vIFZlcmlmeSBpbnB1dCBudW1iZXIKICAgICAgICAgaWYgKG51bSA9M0Q9M0Q9
M0QgbnVsbCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgPTIwCisKICAgICAgICAg
Ly8gQ2FsY3VsYXRlIHJldHVybiB2YWx1ZQogICAgICAgICB2YXIgcnZhbCA9M0QgbnVsbDsKICAg
ICAgICAgaWYgKE1hdGguYWJzKG51bSkgPCAxKSB7CkBAIC0xNDEsNyArMTQ1LDcgQEAKICAqLwog
dmFyIENpcmNzdGVyVmlldyA9M0QgQmFja2JvbmUuVmlldy5leHRlbmQoewogICAgIGNsYXNzTmFt
ZTogJ2NpcmNzdGVyJywKLSAgID0yMAorCiAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ob3B0aW9u
cykgewogICAgICAgICB0aGlzLmdlbm9tZSA9M0Qgb3B0aW9ucy5nZW5vbWU7CiAgICAgICAgIHRo
aXMubGFiZWxfYXJjX2hlaWdodCA9M0QgNTA7CkBAIC0xODgsNyArMTkyLDcgQEAKICAgICAgICAg
ICAgIHRyYWNrX2dhcCA9M0QgdGhpcy5tb2RlbC5nZXQoJ2NvbmZpZycpLmdldF92YWx1ZSgndHJh
Y2tfZ2FwJyksCiAgICAgICAgICAgICAvLyBTdWJ0cmFjdCAyMCB0byBtYWtlIHN1cmUgY2hyb20g
bGFiZWxzIGFyZSBvbiBzY3JlZW4uCiAgICAgICAgICAgICBtaW5fZGltZW5zaW9uID0zRCBNYXRo
Lm1pbih0aGlzLiRlbC53aWR0aCgpLCB0aGlzLiRlbC5oZWlnaHQoKT0KKSAtIDIwLAotICAgICAg
ICAgICAgLy8gQ29tcHV0ZSByYWRpdXMgc3RhcnQgYmFzZWQgb24gbW9kZWwsIHdpbGwgYmUgY2Vu
dGVyZWQ9MjAKKyAgICAgICAgICAgIC8vIENvbXB1dGUgcmFkaXVzIHN0YXJ0IGJhc2VkIG9uIG1v
ZGVsLCB3aWxsIGJlIGNlbnRlcmVkCiAgICAgICAgICAgICAvLyBhbmQgZml0IGVudGlyZWx5IGlu
c2lkZSBlbGVtZW50IGJ5IGRlZmF1bHQuCiAgICAgICAgICAgICByYWRpdXNfc3RhcnQgPTNEIG1p
bl9kaW1lbnNpb24gLyAyIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXJjdWxhcl90
cmFja3MubGVuZ3RoICogKGRhdGFzZXRfYXJjX2hlaWdodCArPQogdHJhY2tfZ2FwKSArCkBAIC0x
OTgsMTQgKzIwMiwxNCBAQAo9MjAKICAgICAgICAgICAgIC8vIENvbXB1dGUgcmFuZ2Ugb2YgdHJh
Y2sgc3RhcnRpbmcgcmFkaWkuCiAgICAgICAgICAgICB0cmFja3Nfc3RhcnRfcmFkaWkgPTNEIGQz
LnJhbmdlKHJhZGl1c19zdGFydCwgbWluX2RpbWVuc2lvbiAvID0KMiwgZGF0YXNldF9hcmNfaGVp
Z2h0ICsgdHJhY2tfZ2FwKTsKLSAgICAgICAgICAgPTIwCisKICAgICAgICAgLy8gTWFwIGZyb20g
dHJhY2sgc3RhcnQgdG8gYm91bmRzLgogICAgICAgICB2YXIgc2VsZiA9M0QgdGhpczsKICAgICAg
ICAgcmV0dXJuIF8ubWFwKHRyYWNrc19zdGFydF9yYWRpaSwgZnVuY3Rpb24ocmFkaXVzKSB7CiAg
ICAgICAgICAgICByZXR1cm4gW3JhZGl1cywgcmFkaXVzICsgZGF0YXNldF9hcmNfaGVpZ2h0XTsK
ICAgICAgICAgfSk7CiAgICAgfSwKLSAgID0yMAorCiAgICAgLyoqCiAgICAgICogUmVuZGVycyBj
aXJjdWxhciB0cmFja3MsIGNob3JkIHRyYWNrcywgYW5kIGxhYmVsIHRyYWNrcy4KICAgICAgKi8K
QEAgLTI1NCw3ICsyNTgsNyBAQAogICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAg
IC5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKCIgKyB3aWR0aCAvIDIgKyAiLCIgKyBoZWln
aHQ9CiAvIDIgKyAiKSIpCiAgICAgICAgICAgICAgIC5hcHBlbmQoJ3N2ZzpnJykuYXR0cignY2xh
c3MnLCAndHJhY2tzJyk7Ci0gICAgICAgICAgICAgICA9MjAKKwogICAgICAgICAvLyAtLSBSZW5k
ZXIgY2lyY3VsYXIgdHJhY2tzLiAtLQo9MjAKICAgICAgICAgLy8gQ3JlYXRlIGEgdmlldyBmb3Ig
ZWFjaCB0cmFjayBpbiB0aGUgdmlzdWFsaXphdGlvbiBhbmQgcmVuZGVyLgpAQCAtMjY2LDEyICsy
NzAsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgZ2Vub21lOiBzZWxmLmdlbm9tZSwKICAgICAg
ICAgICAgICAgICAgICAgdG90YWxfZ2FwOiB0b3RhbF9nYXAKICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgPTIwCisKICAgICAgICAgICAgIHZpZXcucmVuZGVyKCk7Ci0gICAgICAgICAg
ID0yMAorCiAgICAgICAgICAgICByZXR1cm4gdmlldzsKICAgICAgICAgfSk7Ci0gICAgICAgPTIw
CisKICAgICAgICAgLy8gLS0gUmVuZGVyIGNob3JkcyB0cmFja3MuIC0tCj0yMAogICAgICAgICB0
aGlzLmNob3Jkc192aWV3cyA9M0QgY2hvcmRzX3RyYWNrcy5tYXAoZnVuY3Rpb24odHJhY2spIHsK
QEAgLTI4OSwxMCArMjkzLDEwIEBACiAgICAgICAgIH0pOwo9MjAKICAgICAgICAgLy8gLS0gUmVu
ZGVyIGxhYmVsIHRyYWNrLiAtLQotICAgICAgID0yMAorCiAgICAgICAgIC8vIFRyYWNrIGJvdW5k
cyBhcmU6CiAgICAgICAgIC8vIChhKSBvdXRlciByYWRpdXMgb2YgbGFzdCBjaXJjdWxhciB0cmFj
azsKLSAgICAgICAgLy8gKGIpPTIwCisgICAgICAgIC8vIChiKQogICAgICAgICB2YXIgb3V0ZXJt
b3N0X3JhZGl1cyA9M0QgdGhpcy5jaXJjdWxhcl92aWV3c1t0aGlzLmNpcmN1bGFyX3ZpZXdzLmw9
CmVuZ3RoLTFdLnJhZGl1c19ib3VuZHNbMV0sCiAgICAgICAgICAgICB0cmFja19ib3VuZHMgPTNE
IFsKICAgICAgICAgICAgICAgICBvdXRlcm1vc3RfcmFkaXVzLApAQCAtMzA1LDcgKzMwOSw3IEBA
CiAgICAgICAgICAgICBnZW5vbWU6IHNlbGYuZ2Vub21lLAogICAgICAgICAgICAgdG90YWxfZ2Fw
OiB0b3RhbF9nYXAKICAgICAgICAgfSk7Ci0gICAgICAgPTIwCisKICAgICAgICAgdGhpcy5sYWJl
bF90cmFja192aWV3LnJlbmRlcigpOwogICAgIH0sCj0yMApAQCAtMzU2LDcgKzM2MCw3IEBACj0y
MAogICAgICAgICAgICAgLy8gVXBkYXRlIGxhYmVsIHRyYWNrLgogICAgICAgICAgICAgLyoKLSAg
ICAgICAgICAgIEZJWE1FOiBzaG91bGQgbmV2ZXIgaGF2ZSB0byB1cGRhdGUgbGFiZWwgdHJhY2sg
YmVjYXVzZSB2aXMgYWx3PQpheXMgZXhwYW5kcyB0byBmaXQgYXJlYT0yMAorICAgICAgICAgICAg
RklYTUU6IHNob3VsZCBuZXZlciBoYXZlIHRvIHVwZGF0ZSBsYWJlbCB0cmFjayBiZWNhdXNlIHZp
cyBhbHc9CmF5cyBleHBhbmRzIHRvIGZpdCBhcmVhCiAgICAgICAgICAgICB3aXRoaW4gbGFiZWwg
dHJhY2suCiAgICAgICAgICAgICB2YXIgdHJhY2tfYm91bmRzID0zRCBuZXdfdHJhY2tfYm91bmRz
WyBuZXdfdHJhY2tfYm91bmRzLmxlbmd0aD0KLTEgXTsKICAgICAgICAgICAgIHRyYWNrX2JvdW5k
c1sxXSA9M0QgdHJhY2tfYm91bmRzWzBdOwpAQCAtMzczLDcgKzM3Nyw3IEBACiAgICAgICAgIHZh
ciB0cmFja192aWV3ID0zRCB0aGlzLmNpcmN1bGFyX3ZpZXdzW29wdGlvbnMuaW5kZXhdOwogICAg
ICAgICB0aGlzLmNpcmN1bGFyX3ZpZXdzLnNwbGljZShvcHRpb25zLmluZGV4LCAxKTsKICAgICAg
ICAgdHJhY2tfdmlldy4kZWwucmVtb3ZlKCk7Ci0gICAgICAgPTIwCisKICAgICAgICAgLy8gUmVj
b21wdXRlIGFuZCB1cGRhdGUgdHJhY2sgYm91bmRzLgogICAgICAgICB2YXIgbmV3X3RyYWNrX2Jv
dW5kcyA9M0QgdGhpcy5nZXRfdHJhY2tzX2JvdW5kcygpOwogICAgICAgICBfLmVhY2godGhpcy5j
aXJjdWxhcl92aWV3cywgZnVuY3Rpb24odHJhY2tfdmlldywgaSkgewpAQCAtMzkyLDcgKzM5Niw3
IEBACiAgICAgICAgIF8uZWFjaCh0aGlzLmNob3Jkc192aWV3cywgZnVuY3Rpb24odHJhY2tfdmll
dykgewogICAgICAgICAgICAgdHJhY2tfdmlldy51cGRhdGVfcmFkaXVzX2JvdW5kcyhuZXdfdHJh
Y2tfYm91bmRzWzBdKTsKICAgICAgICAgfSk7Ci0gICAgICAgPTIwCisKICAgICB9CiB9KTsKPTIw
CkBAIC00NTUsNyArNDU5LDcgQEAKPTIwCiAgICAgICAgICAgICAvLyBBcHBlbmQgdGl0bGVzIHRv
IHBhdGhzLgogICAgICAgICAgICAgY2hyb21zX3BhdGhzLmFwcGVuZCgidGl0bGUiKS50ZXh0KGZ1
bmN0aW9uKGQpIHsgcmV0dXJuIGQuZGF0YS49CmNocm9tOyB9KTsKLSAgICAgICAgICAgPTIwCisK
ICAgICAgICAgLy8gLS0gUmVuZGVyIHRyYWNrIGRhdGEgYW5kLCB3aGVuIHRyYWNrIGRhdGEgaXMg
cmVuZGVyZWQsIGFwcGx5IHByPQplZmVyZW5jZXMgYW5kIHVwZGF0ZSBjaHJvbV9lbHRzIGZpbGwu
IC0tCj0yMAogICAgICAgICB2YXIgc2VsZiA9M0QgdGhpcywKQEAgLTQ5MCw3ICs0OTQsNyBAQAog
ICAgICAgICB2YXIgbmV3X2QgPTNEIGQzLnN2Zy5hcmMoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgLmlubmVyUmFkaXVzKHRoaXMucmFkaXVzX2JvdW5kc1swXSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vdXRlclJhZGl1cyh0aGlzLnJhZGl1c19ib3VuZHNbMV0pOwotICAgICAgID0yMAor
CiAgICAgICAgIHRoaXMucGFyZW50X2VsdC5zZWxlY3RBbGwoJ2c+cGF0aC5jaHJvbS1iYWNrZ3Jv
dW5kJykudHJhbnNpdGlvbigpLj0KZHVyYXRpb24oMTAwMCkuYXR0cignZCcsIG5ld19kKTsKPTIw
CiAgICAgICAgIHRoaXMuX3RyYW5zaXRpb25fY2hyb21fZGF0YSgpOwpAQCAtNTExLDcgKzUxNSw3
IEBACiAgICAgICAgIH0KPTIwCiAgICAgICAgIC8vIC0tIFNjYWxlIGluY3JlYXNlZCwgc28gcmVu
ZGVyIHZpc2libGUgZGF0YSB3aXRoIG1vcmUgZGV0YWlsLiAtLQotICAgICAgID0yMAorCiAgICAg
ICAgIHZhciBzZWxmID0zRCB0aGlzLAogICAgICAgICAgICAgdXRpbHMgPTNEIG5ldyBTVkdVdGls
cygpOwo9MjAKQEAgLTUzOSw3ICs1NDMsNyBAQAogICAgICAgICAgICAgJC53aGVuKGRhdGFfZGVm
ZXJyZWQpLnRoZW4oZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBj
dXJyZW50IGRhdGEgcGF0aC4KICAgICAgICAgICAgICAgICBwYXRoX2VsdC5yZW1vdmUoKTsKLSAg
ICAgICAgICAgICAgID0yMAorCiAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGRhdGEgYm91bmRz
IHdpdGggbmV3IGRhdGEuCiAgICAgICAgICAgICAgICAgc2VsZi5fdXBkYXRlX2RhdGFfYm91bmRz
KCk7Cj0yMApAQCAtNTk4LDEyICs2MDIsMTIgQEAKICAgICBfdHJhbnNpdGlvbl9sYWJlbHM6IGZ1
bmN0aW9uKCkge30sCj0yMAogICAgIC8qKgotICAgICAqIFVwZGF0ZSBkYXRhIGJvdW5kcy4gSWYg
dGhlcmUgYXJlIG5ld19ib3VuZHMsIHVzZSB0aGVtOyBvdGhlcndpc2UgdXM9CmU9MjAKKyAgICAg
KiBVcGRhdGUgZGF0YSBib3VuZHMuIElmIHRoZXJlIGFyZSBuZXdfYm91bmRzLCB1c2UgdGhlbTsg
b3RoZXJ3aXNlIHVzZQogICAgICAqIGRlZmF1bHQgZGF0YSBib3VuZHMuCiAgICAgICovCiAgICAg
X3VwZGF0ZV9kYXRhX2JvdW5kczogZnVuY3Rpb24obmV3X2JvdW5kcykgewogICAgICAgICB2YXIg
b2xkX2JvdW5kcyA9M0QgdGhpcy5kYXRhX2JvdW5kczsKLSAgICAgICAgdGhpcy5kYXRhX2JvdW5k
cyA9M0QgbmV3X2JvdW5kcyB8fD0yMAorICAgICAgICB0aGlzLmRhdGFfYm91bmRzID0zRCBuZXdf
Ym91bmRzIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldF9kYXRhX2JvdW5k
cyh0aGlzLnRyYWNrLmdldCgnZGF0YV9tYW5hZz0KZXInKS5nZXRfZ2Vub21lX3dpZGVfZGF0YSh0
aGlzLmdlbm9tZSkpOwogICAgICAgICB0aGlzLl90cmFuc2l0aW9uX2Nocm9tX2RhdGEoKTsKICAg
ICB9LApAQCAtNjI0LDcgKzYyOCw3IEBACj0yMAogICAgICAgICAgICAgLy8gU2V0IG1pbiwgbWF4
IHZhbHVlIGluIGNvbmZpZyBzbyB0aGF0IHRoZXkgY2FuIGJlIGFkanVzdGVkLiA9Ck1ha2UgdGhp
cyBzaWxlbnQKICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlc2UgYXR0cmlidXRlcyBhcmUgd2F0
Y2hlZCBmb3IgY2hhbmdlcyBhbmQgdGhlIHZpPQp6IGlzIHVwZGF0ZWQKLSAgICAgICAgICAgIC8v
IGFjY29yZGluZ2x5IChzZXQgdXAgaW4gaW5pdGlhbGl6ZSkuIEJlY2F1c2Ugd2UgYXJlIHNldHRp
bmcgPQp1cCwgd2UgZG9uJ3Qgd2FudD0yMAorICAgICAgICAgICAgLy8gYWNjb3JkaW5nbHkgKHNl
dCB1cCBpbiBpbml0aWFsaXplKS4gQmVjYXVzZSB3ZSBhcmUgc2V0dGluZyA9CnVwLCB3ZSBkb24n
dCB3YW50CiAgICAgICAgICAgICAvLyB0aGUgd2F0Y2ggdG8gdHJpZ2dlciBldmVudHMgaGVyZS4K
ICAgICAgICAgICAgIHRyYWNrLmdldCgnY29uZmlnJykuc2V0X3ZhbHVlKCdtaW5fdmFsdWUnLCBz
ZWxmLmRhdGFfYm91bmRzWzBdPQosIHtzaWxlbnQ6IHRydWV9KTsKICAgICAgICAgICAgIHRyYWNr
LmdldCgnY29uZmlnJykuc2V0X3ZhbHVlKCdtYXhfdmFsdWUnLCBzZWxmLmRhdGFfYm91bmRzWzFd
PQosIHtzaWxlbnQ6IHRydWV9KTsKQEAgLTY2MCw3ICs2NjQsNyBAQAogICAgIF9nZXRfcGF0aF9m
dW5jdGlvbjogZnVuY3Rpb24oY2hyb21fYXJjLCBjaHJvbV9kYXRhKSB7fSwKPTIwCiAgICAgLyoq
Ci0gICAgICogUmV0dXJucyBhcmMgbGF5b3V0cyBmb3IgZ2Vub21lJ3MgY2hyb21vc29tZXMvY29u
dGlncy4gQXJjcyBhcmUgYXJyYT0KbmdlZCBpbiBhIGNpcmNsZT0yMAorICAgICAqIFJldHVybnMg
YXJjIGxheW91dHMgZm9yIGdlbm9tZSdzIGNocm9tb3NvbWVzL2NvbnRpZ3MuIEFyY3MgYXJlIGFy
cmE9Cm5nZWQgaW4gYSBjaXJjbGUKICAgICAgKiBzZXBhcmF0ZWQgYnkgZ2Fwcy4KICAgICAgKi8K
ICAgICBfY2hyb21zX2xheW91dDogZnVuY3Rpb24oKSB7CkBAIC03MDAsMTQgKzcwNCwxNCBAQAog
ICAgICAqIFJlbmRlciBsYWJlbHMuCiAgICAgICovCiAgICAgX3JlbmRlcl9kYXRhOiBmdW5jdGlv
bihzdmcpIHsKLSAgICAgICAgLy8gLS0gQWRkIGNocm9tb3NvbWUgbGFiZWwgd2hlcmUgaXQgd2ls
bCBmaXQ7IGFuIGFsdGVybmF0aXZlIGxhYmVsPQppbmcgbWVjaGFuaXNtPTIwCisgICAgICAgIC8v
IC0tIEFkZCBjaHJvbW9zb21lIGxhYmVsIHdoZXJlIGl0IHdpbGwgZml0OyBhbiBhbHRlcm5hdGl2
ZSBsYWJlbD0KaW5nIG1lY2hhbmlzbQogICAgICAgICAvLyB3b3VsZCBiZSBuaWNlIGZvciBzbWFs
bCBjaHJvbW9zb21lcy4gLS0KICAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXMsCiAgICAgICAgICAg
ICBjaHJvbV9hcmNzID0zRCBzdmcuc2VsZWN0QWxsKCdnJyk7Cj0yMAogICAgICAgICBjaHJvbV9h
cmNzLnNlbGVjdEFsbCgncGF0aCcpCiAgICAgICAgICAgICAuYXR0cignaWQnLCBmdW5jdGlvbihk
KSB7IHJldHVybiAnbGFiZWwtJyArIGQuZGF0YS5jaHJvbTsgfSk7Ci0gICAgICAgICA9MjAKKwog
ICAgICAgICBjaHJvbV9hcmNzLmFwcGVuZCgic3ZnOnRleHQiKQogICAgICAgICAgICAgLmZpbHRl
cihmdW5jdGlvbihkKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGQuZW5kQW5nbGUgLSBkLnN0
YXJ0QW5nbGUgPiBzZWxmLm1pbl9hcmNfbGVuOwpAQCAtODU3LDEyICs4NjEsMTIgQEAKICAgICAg
ICAgICAgICAgICByZXR1cm4gInJvdGF0ZSg5MCkiOwogICAgICAgICAgICAgfTsKPTIwCi0gICAg
ICAgIC8vIEZJWE1FOj0yMAorICAgICAgICAvLyBGSVhNRToKICAgICAgICAgLy8gKDEpIHVzaW5n
IG1pbl9tYXggY2xhc3MgYmVsb3cgaXMgbmVlZGVkIGZvciBfdXBkYXRlX21pbl9tYXgsIHdoPQpp
Y2ggY291bGQgYmUgaW1wcm92ZWQuCiAgICAgICAgIC8vICgyKSBzaG93aW5nIGNvbmZpZyBvbiB0
aWNrIGNsaWNrIHNob3VsZCBiZSByZXBsYWNlZCBieSBwcm9wZXIgdD0KcmFjayBjb25maWcgaWNv
bi4KPTIwCiAgICAgICAgIC8vIERyYXcgbWluLCBtYXggb24gZmlyc3QgY2hyb20gb25seS4KLSAg
ICAgICAgdmFyIHRpY2tzID0zRCB0aGlzLmRyYXdUaWNrcyh0aGlzLnBhcmVudF9lbHQsIFsgdGhp
cy5jaHJvbXNfbGF5b3V0PQpbMF0gXSw9MjAKKyAgICAgICAgdmFyIHRpY2tzID0zRCB0aGlzLmRy
YXdUaWNrcyh0aGlzLnBhcmVudF9lbHQsIFsgdGhpcy5jaHJvbXNfbGF5b3V0PQpbMF0gXSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YV9ib3VuZHNfdGlja3Nf
Zm4oKSwgdGV4dFRyYW5zPQpmb3JtLCB0cnVlKQogICAgICAgICAgICAgICAgICAgICAgICAgLmNs
YXNzZWQoJ21pbl9tYXgnLCB0cnVlKTsKPTIwCkBAIC04NzIsNyArODc2LDcgQEAKICAgICAgICAg
ICAgICAgICB2YXIgdmlldyA9M0QgbmV3IGNvbmZpZy5Db25maWdTZXR0aW5nQ29sbGVjdGlvblZp
ZXcoewogICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBzZWxmLnRyYWNrLmdldCgnY29u
ZmlnJykKICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB2aWV3LnJlbmRlcl9p
bl9tb2RhbCgnQ29uZmlndXJlIFRyYWNrJyk7PTIwCisgICAgICAgICAgICAgICAgdmlldy5yZW5k
ZXJfaW5fbW9kYWwoJ0NvbmZpZ3VyZSBUcmFjaycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwo9MjAKQEAgLTk1MSw3ICs5NTUsNyBAQAogdmFyIENpcmNzdGVyQmlnV2lnVHJhY2tWaWV3
ID0zRCBDaXJjc3RlclF1YW50aXRhdGl2ZVRyYWNrVmlldy5leHRlbmQoewo9MjAKICAgICBnZXRf
ZGF0YV9ib3VuZHM6IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgLy8gU2V0IG1heCBhY3Jvc3Mg
ZGF0YXNldCBieSBleHRyYWN0aW5nIGFsbCB2YWx1ZXMsIGZsYXR0ZW5pbmcgdGhlPQptIGludG8g
YT0yMAorICAgICAgICAvLyBTZXQgbWF4IGFjcm9zcyBkYXRhc2V0IGJ5IGV4dHJhY3RpbmcgYWxs
IHZhbHVlcywgZmxhdHRlbmluZyB0aGU9Cm0gaW50byBhCiAgICAgICAgIC8vIHNpbmdsZSBhcnJh
eSwgYW5kIGdldHRpbmcgdGhpcmQgcXVhcnRpbGUuCiAgICAgICAgIHZhciB2YWx1ZXMgPTNEIF8u
ZmxhdHRlbiggXy5tYXAoZGF0YSwgZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgaWYgKGQpIHsK
QEAgLTk2NSw4ICs5NjksOCBAQAogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAg
ICAgfQogICAgICAgICB9KSApOwotICAgICAgID0yMAotICAgICAgICAvLyBGb3IgbWF4LCB1c2Ug
OTglIHF1YW50aWxlIGluIGF0dGVtcHQgdG8gYXZvaWQgdmVyeSBsYXJnZSB2YWx1ZXM9Ci4gSG93
ZXZlciwgdGhpcyBtYXggbWF5IGJlIDA9MjAKKworICAgICAgICAvLyBGb3IgbWF4LCB1c2UgOTgl
IHF1YW50aWxlIGluIGF0dGVtcHQgdG8gYXZvaWQgdmVyeSBsYXJnZSB2YWx1ZXM9Ci4gSG93ZXZl
ciwgdGhpcyBtYXggbWF5IGJlIDAKICAgICAgICAgLy8gZm9yIHNwYXJzZWx5IHBvcHVsYXRlZCBk
YXRhLCBzbyB1c2UgbWF4IGluIHRoYXQgY2FzZS4KICAgICAgICAgcmV0dXJuIFsgXy5taW4odmFs
dWVzKSwgdGhpcy5fcXVhbnRpbGUodmFsdWVzLCAwLjk4KSB8fCBfLm1heCh2YWx1PQplcykgXTsK
ICAgICB9CkBAIC0xMDY4LDEzICsxMDcyLDEzIEBACiAgICAgICAgICAgICAgICAgZ2Vub21lICAg
ICAgICAgICAgICA6IGdlbm9tZSwKICAgICAgICAgICAgICAgICBtb2RlbCAgICAgICAgICAgICAg
IDogdmlzCiAgICAgICAgICAgICB9KTsKLSAgICAgICA9MjAKKwogICAgICAgICAvLyBSZW5kZXIg
dml6dWFsaXphdGlvbgogICAgICAgICB2aXpfdmlldy5yZW5kZXIoKTsKLSAgICAgICA9MjAKKwog
ICAgICAgICAvLyBzZXR1cCB0aXRsZQogICAgICAgICAkKCcjY2VudGVyIC51bmlmaWVkLXBhbmVs
LWhlYWRlci1pbm5lcicpLmFwcGVuZChnYWxheHlfY29uZmlnLmFwcC49CnZpel9jb25maWcudGl0
bGUgKyAiICIgKyBnYWxheHlfY29uZmlnLmFwcC52aXpfY29uZmlnLmRia2V5KTsKLSAgID0yMAor
CiAgICAgICAgIC8vIHNldHVwIG1lbnUKICAgICAgICAgdmFyIG1lbnUgPTNEIG1vZF9pY29uX2J0
bi5jcmVhdGVfaWNvbl9idXR0b25zX21lbnUoWwogICAgICAgICB7CkBAIC0xMTAwLDcgKzExMDQs
NyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8vIHNob3cgc2F2aW5nIGRpYWxv
ZyBib3gKICAgICAgICAgICAgICAgICBHYWxheHkubW9kYWwuc2hvdyh7dGl0bGU6ICJTYXZpbmcu
Li4iLCBib2R5OiAicHJvZ3Jlc3MiIH0pOwotICAgID0yMAorCiAgICAgICAgICAgICAgICAgLy8g
c2VuZCB0byBzZXJ2ZXIKICAgICAgICAgICAgICAgICAkLmFqYXgoewogICAgICAgICAgICAgICAg
ICAgICB1cmw6IGdhbGF4eV9jb25maWcucm9vdCArICJ2aXN1YWxpemF0aW9uL3NhdmUiLApAQCAt
MTEzMiwxMSArMTEzNiwxMSBAQAogICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9M0Qg
Z2FsYXh5X2NvbmZpZy5yb290ICsgInZpc3VhbGl6YXRpb24vbGk9CnN0IjsKICAgICAgICAgICAg
IH0KICAgICAgICAgfV0sIHsgdG9vbHRpcF9jb25maWc6IHsgcGxhY2VtZW50OiAnYm90dG9tJyB9
IH0pOwotICAgICAgICAgICA9MjAKKwogICAgICAgICAvLyBhZGQgbWVudQogICAgICAgICBtZW51
LiRlbC5hdHRyKCJzdHlsZSIsICJmbG9hdDogcmlnaHQiKTsKICAgICAgICAgJCgiI2NlbnRlciAu
dW5pZmllZC1wYW5lbC1oZWFkZXItaW5uZXIiKS5hcHBlbmQobWVudS4kZWwpOwotICAgICAgICAg
ICA9MjAKKwogICAgICAgICAvLyBtYW51YWwgdG9vbHRpcCBjb25maWcgYmVjYXVzZSBkZWZhdWx0
IGdyYXZpdHkgaXMgUyBhbmQgY2Fubm90IGI9CmUgY2hhbmdlZAogICAgICAgICAkKCIubWVudS1i
dXR0b24iKS50b29sdGlwKCB7IHBsYWNlbWVudDogJ2JvdHRvbScgfSApOwogICAgIH0KCgpodHRw
czovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvMTNlNmRkNzY4
N2M0LwpDaGFuZ2VzZXQ6ICAgMTNlNmRkNzY4N2M0CkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAz
ClVzZXI6ICAgICAgICBkYW5ub24KRGF0ZTogICAgICAgIDIwMTUtMDQtMDIgMTM6MTM6MzMrMDA6
MDAKU3VtbWFyeTogICAgIEZpeCBkeW5hbWljIG9wdGlvbnMgbm90IGZpbGxpbmcgcHJvcGVybHkK
QWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAtciA2NWIyMzMwYjgyM2M3NjExMzY5Yjk3YjA4Mjky
YTZjODY0ZGVlMTFjIC1yIDEzZTZkZDc2ODdjNDFiYzA4Y2QzNmVjPQoxN2QyZmE3YjM5NmI3YjM2
ZSBsaWIvZ2FsYXh5L3Rvb2xzL3BhcmFtZXRlcnMvYmFzaWMucHkKLS0tIGEvbGliL2dhbGF4eS90
b29scy9wYXJhbWV0ZXJzL2Jhc2ljLnB5CisrKyBiL2xpYi9nYWxheHkvdG9vbHMvcGFyYW1ldGVy
cy9iYXNpYy5weQpAQCAtMTUsNiArMTUsNyBAQAogZnJvbSBnYWxheHkudXRpbCBpbXBvcnQgc3Ry
aW5nX2FzX2Jvb2wsIHNhbml0aXplX3BhcmFtLCB1bmljb2RpZnkKIGZyb20gZ2FsYXh5LnV0aWwg
aW1wb3J0IGxpc3RpZnkKIGZyb20gZ2FsYXh5LnV0aWwub2RpY3QgaW1wb3J0IG9kaWN0Citmcm9t
IGdhbGF4eS51dGlsLmV4cHJlc3Npb25zIGltcG9ydCBFeHByZXNzaW9uQ29udGV4dAogZnJvbSBz
YW5pdGl6ZSBpbXBvcnQgVG9vbFBhcmFtZXRlclNhbml0aXplcgogaW1wb3J0IHZhbGlkYXRpb24K
IGltcG9ydCBkeW5hbWljX29wdGlvbnMKQEAgLTgwMiw4ICs4MDMsOSBAQAogICAgICAgICBzZWxm
LmlzX2R5bmFtaWMgPTNEICggKCBzZWxmLmR5bmFtaWNfb3B0aW9ucyBpcyBub3QgTm9uZSApIG9y
ICggc2U9CmxmLm9wdGlvbnMgaXMgbm90IE5vbmUgKSApCj0yMAogICAgIGRlZiBfZ2V0X2R5bmFt
aWNfb3B0aW9uc19jYWxsX290aGVyX3ZhbHVlcyggc2VsZiwgdHJhbnMsIG90aGVyX3ZhbHVlcyA9
Cik6Ci0gICAgICAgIGNhbGxfb3RoZXJfdmFsdWVzID0zRCB7ICJfX3RyYW5zX18iOiB0cmFucyB9
CisgICAgICAgIGNhbGxfb3RoZXJfdmFsdWVzID0zRCBFeHByZXNzaW9uQ29udGV4dCh7ICJfX3Ry
YW5zX18iOiB0cmFucyB9KQogICAgICAgICBpZiBvdGhlcl92YWx1ZXM6CisgICAgICAgICAgICBj
YWxsX290aGVyX3ZhbHVlcy5wYXJlbnQgPTNEIG90aGVyX3ZhbHVlcy5wYXJlbnQKICAgICAgICAg
ICAgIGNhbGxfb3RoZXJfdmFsdWVzLnVwZGF0ZSggb3RoZXJfdmFsdWVzLmRpY3QgKQogICAgICAg
ICByZXR1cm4gY2FsbF9vdGhlcl92YWx1ZXMKPTIwCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dh
bGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzLzRlZTgxMzk1NWEyMy8KQ2hhbmdlc2V0OiAgIDRl
ZTgxMzk1NWEyMwpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgZGFubm9u
CkRhdGU6ICAgICAgICAyMDE1LTA0LTAyIDEzOjE1OjQzKzAwOjAwClN1bW1hcnk6ICAgICBGaXgg
Z2V0X29wdGlvbnNfZnJvbV9jb2RlIHRvIGNvcnJlY3RseSB1c2UgYW4gZXhwcmVzaW9uY29udGV4
dD0KIGFzIHdlbGwsIHRoaXMgd291bGQgaGF2ZSBwcmV2ZW50ZWQgaXQgd29ya2luZyBpbiByZXBl
YXRzL2V0YwpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDEzZTZkZDc2ODdjNDFiYzA4Y2Qz
NmVjMTdkMmZhN2IzOTZiN2IzNmUgLXIgNGVlODEzOTU1YTIzY2Y4ZDAwOTMxMjg9Cjg3MjE3OTQ0
MWNlYzQ4ZjVmIGxpYi9nYWxheHkvdG9vbHMvcGFyYW1ldGVycy9iYXNpYy5weQotLS0gYS9saWIv
Z2FsYXh5L3Rvb2xzL3BhcmFtZXRlcnMvYmFzaWMucHkKKysrIGIvbGliL2dhbGF4eS90b29scy9w
YXJhbWV0ZXJzL2Jhc2ljLnB5CkBAIC0xNTA3LDggKzE1MDcsOSBAQAo9MjAKICAgICBkZWYgX2dl
dF9vcHRpb25zX2Zyb21fY29kZSggc2VsZiwgdHJhbnM9M0ROb25lLCB2YWx1ZT0zRE5vbmUsIG90
aGVyX3ZhPQpsdWVzPTNETm9uZSApOgogICAgICAgICBhc3NlcnQgc2VsZi5keW5hbWljX29wdGlv
bnMsIEV4Y2VwdGlvbiggImR5bmFtaWNfb3B0aW9ucyB3YXMgbm90IHM9CnBlY2lmZWQiICkKLSAg
ICAgICAgY2FsbF9vdGhlcl92YWx1ZXMgPTNEIHsgJ19fdHJhbnNfXyc6IHRyYW5zLCAnX192YWx1
ZV9fJzogdmFsdWUgfQorICAgICAgICBjYWxsX290aGVyX3ZhbHVlcyA9M0QgRXhwcmVzc2lvbkNv
bnRleHQoeyAnX190cmFuc19fJzogdHJhbnMsICdfX3Y9CmFsdWVfXyc6IHZhbHVlIH0pCiAgICAg
ICAgIGlmIG90aGVyX3ZhbHVlczoKKyAgICAgICAgICAgIGNhbGxfb3RoZXJfdmFsdWVzLnBhcmVu
dCA9M0Qgb3RoZXJfdmFsdWVzLnBhcmVudAogICAgICAgICAgICAgY2FsbF9vdGhlcl92YWx1ZXMu
dXBkYXRlKCBvdGhlcl92YWx1ZXMuZGljdCApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJl
dHVybiBldmFsKCBzZWxmLmR5bmFtaWNfb3B0aW9ucywgc2VsZi50b29sLmNvZGVfbmFtZXNwYWNl
LCBjPQphbGxfb3RoZXJfdmFsdWVzICkKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dh
bGF4eS1jZW50cmFsL2NvbW1pdHMvZDk0Y2NlYWQ0MDA1LwpDaGFuZ2VzZXQ6ICAgZDk0Y2NlYWQ0
MDA1CkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBkYW5ub24KRGF0ZTog
ICAgICAgIDIwMTUtMDQtMDEgMjE6NTY6MjkrMDA6MDAKU3VtbWFyeTogICAgIEZpeCBlcnJvciBp
biB0b29sc2hlZCBtZXRhZGF0YSBnZW5lcmF0b3IgcmVwb3J0ZWQgYnkgQG1hcnRlbnNvbgpBZmZl
Y3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDRlZTgxMzk1NWEyM2NmOGQwMDkzMTI4ODcyMTc5NDQx
Y2VjNDhmNWYgLXIgZDk0Y2NlYWQ0MDA1YmY1MGMwYjI4YmE9CmM1YTRjYzhlOTU4MWZjNjMxIGxp
Yi90b29sX3NoZWQvbWV0YWRhdGEvbWV0YWRhdGFfZ2VuZXJhdG9yLnB5Ci0tLSBhL2xpYi90b29s
X3NoZWQvbWV0YWRhdGEvbWV0YWRhdGFfZ2VuZXJhdG9yLnB5CisrKyBiL2xpYi90b29sX3NoZWQv
bWV0YWRhdGEvbWV0YWRhdGFfZ2VuZXJhdG9yLnB5CkBAIC00NTYsOCArNDU2LDggQEAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXhwb3J0ZWRfd29ya2Zsb3dfZGljdCA9M0QganNvbi5sb2Fkcyg9CiB3b3Jr
Zmxvd190ZXh0ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiwgZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5leGNlcHRp
b24oICJTa2lwcGluZyBmaWxlICVzIHNpbmNlPQogaXQgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHZh
bGlkIGV4cG9ydGVkIEdhbGF4eSB3b3JrZmxvdzogJXMiIFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgc3RyKCByZWxhdGl2ZV9wYXRoICksPQog
c3RyKCBlICkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmV4Y2Vw
dGlvbiggIlNraXBwaW5nIGZpbGUgJXMgc2luY2U9CiBpdCBkb2VzIG5vdCBzZWVtIHRvIGJlIGEg
dmFsaWQgZXhwb3J0ZWQgR2FsYXh5IHdvcmtmbG93OiAlcyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHN0ciggcmVsYXRpdmVfcGF0aCApPQos
IHN0ciggZSApICkgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRf
ZXhwb3J0ZWRfZ2FsYXh5X3dvcmtmbG93ID0zRCBGYWw9CnNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgdmFsaWRfZXhwb3J0ZWRfZ2FsYXh5X3dvcmtmbG93IGFuZCBcCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdhX2dhbGF4eV93b3JrZmxvdycgaW4gZXhwb3J0ZWRf
d29ya2Zsb3dfZD0KaWN0IGFuZCBcCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxh
eHktY2VudHJhbC9jb21taXRzLzA2MGNiMDg1ZTgzYy8KQ2hhbmdlc2V0OiAgIDA2MGNiMDg1ZTgz
YwpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgZGFubm9uCkRhdGU6ICAg
ICAgICAyMDE1LTA0LTAxIDIyOjMxOjE0KzAwOjAwClN1bW1hcnk6ICAgICBGaXggc3BhY2luZyB0
byBmb2xsb3cgb3VyIGd1aWRlbGluZXMuCkFmZmVjdGVkICM6ICAxIGZpbGUKCmRpZmYgLXIgZDk0
Y2NlYWQ0MDA1YmY1MGMwYjI4YmFjNWE0Y2M4ZTk1ODFmYzYzMSAtciAwNjBjYjA4NWU4M2M4YmVm
N2E4NzViYz0KYTAwN2IzOTNmMjkxMDM5YWQgbGliL3Rvb2xfc2hlZC9tZXRhZGF0YS9tZXRhZGF0
YV9nZW5lcmF0b3IucHkKLS0tIGEvbGliL3Rvb2xfc2hlZC9tZXRhZGF0YS9tZXRhZGF0YV9nZW5l
cmF0b3IucHkKKysrIGIvbGliL3Rvb2xfc2hlZC9tZXRhZGF0YS9tZXRhZGF0YV9nZW5lcmF0b3Iu
cHkKQEAgLTQ1Nyw3ICs0NTcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwb3J0ZWRfd29ya2Zsb3dfZGljdCA9M0QganNvbi5sb2Fkcyg9CiB3b3JrZmxvd190ZXh0
ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5leGNlcHRpb24oICJTa2lw
cGluZyBmaWxlICVzIHNpbmNlPQogaXQgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHZhbGlkIGV4cG9y
dGVkIEdhbGF4eSB3b3JrZmxvdzogJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAlIChzdHIoIHJlbGF0aXZlX3BhdGggKT0KLCBzdHIoIGUgKSAp
ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUg
KCBzdHIoIHJlbGF0aXZlX3BhdGggPQopLCBzdHIoIGUgKSApICkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbGlkX2V4cG9ydGVkX2dhbGF4eV93b3JrZmxvdyA9M0QgRmFs
PQpzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZhbGlkX2V4cG9ydGVkX2dhbGF4
eV93b3JrZmxvdyBhbmQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYV9nYWxh
eHlfd29ya2Zsb3cnIGluIGV4cG9ydGVkX3dvcmtmbG93X2Q9CmljdCBhbmQgXAoKCmh0dHBzOi8v
Yml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy8xMGFlMzdiODYzZmUv
CkNoYW5nZXNldDogICAxMGFlMzdiODYzZmUKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNl
cjogICAgICAgIGNhcmxmZWJlcmhhcmQKRGF0ZTogICAgICAgIDIwMTUtMDQtMDIgMTY6Mzg6MzAr
MDA6MDAKU3VtbWFyeTogICAgIEZpeDogaGRhIG1hbmFnZXIgdHJhbnMgcGFyYW0gaW4gdmlzdWFs
aXphdGlvbnMgY29udHJvbGxlciBhbmQgPQp0b29scyBhcGkgX3JlcnVuX3Rvb2wKQWZmZWN0ZWQg
IzogIDIgZmlsZXMKCmRpZmYgLXIgMDYwY2IwODVlODNjOGJlZjdhODc1YmNhMDA3YjM5M2YyOTEw
MzlhZCAtciAxMGFlMzdiODYzZmUzNjVlMTk1ZTViMj0KMDQ0YTQ4NTkyMzlkYTQyOTYgbGliL2dh
bGF4eS93ZWJhcHBzL2dhbGF4eS9hcGkvdG9vbHMucHkKLS0tIGEvbGliL2dhbGF4eS93ZWJhcHBz
L2dhbGF4eS9hcGkvdG9vbHMucHkKKysrIGIvbGliL2dhbGF4eS93ZWJhcHBzL2dhbGF4eS9hcGkv
dG9vbHMucHkKQEAgLTMzMSw3ICszMzEsNyBAQAogICAgICAgICAjIGpvYidzIHByZXZpb3VzIHBh
cmFtZXRlcnMgYW5kIGluY29taW5nIHBhcmFtZXRlcnMuIEluY29taW5nIHBhcmE9Cm1ldGVycwog
ICAgICAgICAjIGhhdmUgcHJpb3JpdHkuCiAgICAgICAgICMKLSAgICAgICAgb3JpZ2luYWxfam9i
ID0zRCBzZWxmLmhkYV9tYW5hZ2VyLmNyZWF0aW5nX2pvYiggb3JpZ2luYWxfZGF0YXNldCApCisg
ICAgICAgIG9yaWdpbmFsX2pvYiA9M0Qgc2VsZi5oZGFfbWFuYWdlci5jcmVhdGluZ19qb2IoIHRy
YW5zLCBvcmlnaW5hbF9kYT0KdGFzZXQgKQogICAgICAgICB0b29sID0zRCB0cmFucy5hcHAudG9v
bGJveC5nZXRfdG9vbCggb3JpZ2luYWxfam9iLnRvb2xfaWQgKQogICAgICAgICBpZiBub3QgdG9v
bCBvciBub3QgdG9vbC5hbGxvd191c2VyX2FjY2VzcyggdHJhbnMudXNlciApOgogICAgICAgICAg
ICAgcmV0dXJuIHRyYW5zLmFwcC5tb2RlbC5EYXRhc2V0LmNvbnZlcnNpb25fbWVzc2FnZXMuTk9f
VE9PTAoKZGlmZiAtciAwNjBjYjA4NWU4M2M4YmVmN2E4NzViY2EwMDdiMzkzZjI5MTAzOWFkIC1y
IDEwYWUzN2I4NjNmZTM2NWUxOTVlNWIyPQowNDRhNDg1OTIzOWRhNDI5NiBsaWIvZ2FsYXh5L3dl
YmFwcHMvZ2FsYXh5L2NvbnRyb2xsZXJzL3Zpc3VhbGl6YXRpb24ucHkKLS0tIGEvbGliL2dhbGF4
eS93ZWJhcHBzL2dhbGF4eS9jb250cm9sbGVycy92aXN1YWxpemF0aW9uLnB5CisrKyBiL2xpYi9n
YWxheHkvd2ViYXBwcy9nYWxheHkvY29udHJvbGxlcnMvdmlzdWFsaXphdGlvbi5weQpAQCAtOTg1
LDcgKzk4NSw3IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIExvYWRpbmcgbmV3IHZp
c3VhbGl6YXRpb24uCiAgICAgICAgICAgICBkYXRhc2V0ID0zRCBzZWxmLmdldF9oZGFfb3JfbGRk
YSggdHJhbnMsIGhkYV9sZGRhLCBkYXRhc2V0X2lkICkKLSAgICAgICAgICAgIGpvYiA9M0Qgc2Vs
Zi5oZGFfbWFuYWdlci5jcmVhdGluZ19qb2IoIGRhdGFzZXQgKQorICAgICAgICAgICAgam9iID0z
RCBzZWxmLmhkYV9tYW5hZ2VyLmNyZWF0aW5nX2pvYiggdHJhbnMsIGRhdGFzZXQgKQogICAgICAg
ICAgICAgdml6X2NvbmZpZyA9M0QgewogICAgICAgICAgICAgICAgICdkYXRhc2V0X2lkJzogZGF0
YXNldF9pZCwKICAgICAgICAgICAgICAgICAndG9vbF9pZCc6IGpvYi50b29sX2lkLApAQCAtMTAx
Nyw3ICsxMDE3LDcgQEAKICAgICAgICAgaWYgZGF0YXNldF9pZDoKICAgICAgICAgICAgIGRlY29k
ZWRfaWQgPTNEIHNlbGYuZGVjb2RlX2lkKCBkYXRhc2V0X2lkICkKICAgICAgICAgICAgIGhkYSA9
M0Qgc2VsZi5oZGFfbWFuYWdlci5nZXRfYWNjZXNzaWJsZSggdHJhbnMsIGRlY29kZWRfaWQsIHRy
PQphbnMudXNlciApCi0gICAgICAgICAgICBoZGEgPTNEIHNlbGYuaGRhX21hbmFnZXIuZXJyb3Jf
aWZfdXBsb2FkaW5nKCBoZGEgKQorICAgICAgICAgICAgaGRhID0zRCBzZWxmLmhkYV9tYW5hZ2Vy
LmVycm9yX2lmX3VwbG9hZGluZyggdHJhbnMsIGhkYSApCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICByZXR1cm4gdHJhbnMuc2hvd19tZXNzYWdlKCAiUGh5bG92aXogY291bGRuJ3QgZmluZCBh
IGRhdGFzZXRfaT0KZCIgKQo9MjAKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4
eS1jZW50cmFsL2NvbW1pdHMvZDA3OTllOGNmOTc2LwpDaGFuZ2VzZXQ6ICAgZDA3OTllOGNmOTc2
CkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBkYW5ub24KRGF0ZTogICAg
ICAgIDIwMTUtMDQtMDIgMjA6NDI6MzgrMDA6MDAKU3VtbWFyeTogICAgIE1vcmUgZml4ZXMgZm9y
IHJlbW92YWwgb2YgdHJhbnMgZnJvbSB2YXJpb3VzIG1hbmFnZXIgZnVuY3Rpb25zLgpBZmZlY3Rl
ZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDEwYWUzN2I4NjNmZTM2NWUxOTVlNWIyMDQ0YTQ4NTkyMzlk
YTQyOTYgLXIgZDA3OTllOGNmOTc2OGU5YjdkNWQ3ZDU9Cjc0NjY3ZTE1MzhkMzE2YzUwIGxpYi9n
YWxheHkvd2ViYXBwcy9nYWxheHkvY29udHJvbGxlcnMvdGFnLnB5Ci0tLSBhL2xpYi9nYWxheHkv
d2ViYXBwcy9nYWxheHkvY29udHJvbGxlcnMvdGFnLnB5CisrKyBiL2xpYi9nYWxheHkvd2ViYXBw
cy9nYWxheHkvY29udHJvbGxlcnMvdGFnLnB5CkBAIC00Miw3ICs0Miw3IEBACiAgICAgICAgICMg
QXBwbHkgdGFnLgogICAgICAgICBpdGVtID0zRCBzZWxmLl9nZXRfaXRlbSggdHJhbnMsIGl0ZW1f
Y2xhc3MsIHRyYW5zLnNlY3VyaXR5LmRlY29kZV89CmlkKCBpdGVtX2lkICkgKQogICAgICAgICB1
c2VyID0zRCB0cmFucy51c2VyCi0gICAgICAgIHNlbGYuZ2V0X3RhZ19oYW5kbGVyKCB0cmFucyAp
LmFwcGx5X2l0ZW1fdGFncyggdHJhbnMsIHVzZXIsIGl0ZW0sID0KbmV3X3RhZy5lbmNvZGUoICd1
dGYtOCcgKSApCisgICAgICAgIHNlbGYuZ2V0X3RhZ19oYW5kbGVyKCB0cmFucyApLmFwcGx5X2l0
ZW1fdGFncyggdXNlciwgaXRlbSwgbmV3X3RhZz0KLmVuY29kZSggJ3V0Zi04JyApICkKICAgICAg
ICAgdHJhbnMuc2Ffc2Vzc2lvbi5mbHVzaCgpCiAgICAgICAgICMgTG9nLgogICAgICAgICBwYXJh
bXMgPTNEIGRpY3QoIGl0ZW1faWQ9M0RpdGVtLmlkLCBpdGVtX2NsYXNzPTNEaXRlbV9jbGFzcywg
dGFnPQo9M0RuZXdfdGFnICkKQEAgLTU3LDcgKzU3LDcgQEAKICAgICAgICAgIyBSZW1vdmUgdGFn
LgogICAgICAgICBpdGVtID0zRCBzZWxmLl9nZXRfaXRlbSggdHJhbnMsIGl0ZW1fY2xhc3MsIHRy
YW5zLnNlY3VyaXR5LmRlY29kZV89CmlkKCBpdGVtX2lkICkgKQogICAgICAgICB1c2VyID0zRCB0
cmFucy51c2VyCi0gICAgICAgIHNlbGYuZ2V0X3RhZ19oYW5kbGVyKCB0cmFucyApLnJlbW92ZV9p
dGVtX3RhZyggdHJhbnMsIHVzZXIsIGl0ZW0sID0KdGFnX25hbWUuZW5jb2RlKCAndXRmLTgnICkg
KQorICAgICAgICBzZWxmLmdldF90YWdfaGFuZGxlciggdHJhbnMgKS5yZW1vdmVfaXRlbV90YWco
IHVzZXIsIGl0ZW0sIHRhZ19uYW09CmUuZW5jb2RlKCAndXRmLTgnICkgKQogICAgICAgICB0cmFu
cy5zYV9zZXNzaW9uLmZsdXNoKCkKICAgICAgICAgIyBMb2cuCiAgICAgICAgIHBhcmFtcyA9M0Qg
ZGljdCggaXRlbV9pZD0zRGl0ZW0uaWQsIGl0ZW1fY2xhc3M9M0RpdGVtX2NsYXNzLCB0YWc9Cj0z
RHRhZ19uYW1lICkKQEAgLTczLDggKzczLDggQEAKICAgICAgICAgIyBBcHBseSB0YWdzLgogICAg
ICAgICBpdGVtID0zRCBzZWxmLl9nZXRfaXRlbSggdHJhbnMsIGl0ZW1fY2xhc3MsIHRyYW5zLnNl
Y3VyaXR5LmRlY29kZV89CmlkKCBpdGVtX2lkICkgKQogICAgICAgICB1c2VyID0zRCB0cmFucy51
c2VyCi0gICAgICAgIHNlbGYuZ2V0X3RhZ19oYW5kbGVyKCB0cmFucyApLmRlbGV0ZV9pdGVtX3Rh
Z3MoIHRyYW5zLCB1c2VyLCBpdGVtICkKLSAgICAgICAgc2VsZi5nZXRfdGFnX2hhbmRsZXIoIHRy
YW5zICkuYXBwbHlfaXRlbV90YWdzKCB0cmFucywgdXNlciwgaXRlbSwgPQpuZXdfdGFncy5lbmNv
ZGUoICd1dGYtOCcgKSApCisgICAgICAgIHNlbGYuZ2V0X3RhZ19oYW5kbGVyKCB0cmFucyApLmRl
bGV0ZV9pdGVtX3RhZ3MoIHVzZXIsIGl0ZW0gKQorICAgICAgICBzZWxmLmdldF90YWdfaGFuZGxl
ciggdHJhbnMgKS5hcHBseV9pdGVtX3RhZ3MoIHVzZXIsIGl0ZW0sIG5ld190YWc9CnMuZW5jb2Rl
KCAndXRmLTgnICkgKQogICAgICAgICB0cmFucy5zYV9zZXNzaW9uLmZsdXNoKCkKPTIwCiAgICAg
QHdlYi5leHBvc2UKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFs
L2NvbW1pdHMvZjBiYmY1Nzc1ZDNmLwpDaGFuZ2VzZXQ6ICAgZjBiYmY1Nzc1ZDNmCkJyYW5jaDog
ICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBndWVybGVyCkRhdGU6ICAgICAgICAyMDE1
LTA0LTAzIDE2OjQ2OjE3KzAwOjAwClN1bW1hcnk6ICAgICBbU1RBQkxFXSBSZXZpc2UgcmUtcnVu
IG1hcHBpbmcgb2YgZGF0YXNldHMgYW5kIGNvbGxlY3Rpb25zIGZvcj0KIGltcG9ydGVkIGFuZCBj
b3BpZWQgaGlzdG9yeSBpdGVtcy4gVGhlIHByZXZpb3VzIG1ldGhvZCAoZnJvbSB0b29sX3J1bm5l
ci5wPQp5KSBoYWQgZGlmZmljdWx0aWVzIHdpdGggY29uc2lzdGVudGx5IGhhc2hpbmcgaGlzdG9y
eSBpdGVtcyB3aGljaCBjYXVzZWQgaXM9CnN1ZXMgZm9yIGltcG9ydGVkIGRhdGFzZXRzLiBXZSBm
aXhlZCB0aGF0LCBob3dldmVyIG5vdyBkYXRhc2V0cyBjb3BpZWQgYmFjaz0KIHRvIHRoZSBzYW1l
IGhpc3RvcnkgYXJlIHNob3duIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGRhdGFzZXQuCkFmZmVj
dGVkICM6ICAxIGZpbGUKCmRpZmYgLXIgZDA3OTllOGNmOTc2OGU5YjdkNWQ3ZDU3NDY2N2UxNTM4
ZDMxNmM1MCAtciBmMGJiZjU3NzVkM2Y3NzBlYzlhZmU0Nz0KMTIyZDk3YjdkMDQ2ZmYwOGUgbGli
L2dhbGF4eS90b29scy9fX2luaXRfXy5weQotLS0gYS9saWIvZ2FsYXh5L3Rvb2xzL19faW5pdF9f
LnB5CisrKyBiL2xpYi9nYWxheHkvdG9vbHMvX19pbml0X18ucHkKQEAgLTI1OTAsMjggKzI1OTAs
NDQgQEAKICAgICAgICAgIyBkYXRhc2V0IHVzZWQ7IHBhcmFtZXRlciBzaG91bGQgYmUgdGhlIGFu
YWx5Z291cyBkYXRhc2V0IGluIHRoZQogICAgICAgICAjIGN1cnJlbnQgaGlzdG9yeS4KICAgICAg
ICAgaGlzdG9yeSA9M0QgdHJhbnMuZ2V0X2hpc3RvcnkoKQotICAgICAgICBoZGFfc291cmNlX2Rp
Y3QgPTNEIHt9ICMgTWFwcGluZyBmcm9tIEhEQSBpbiBoaXN0b3J5IHRvIHNvdXJjZSBIREE9CnMu
CisKKyAgICAgICAgIyBDcmVhdGUgaW5kZXggZm9yIGhkYXMuCisgICAgICAgIGhkYV9zb3VyY2Vf
ZGljdCA9M0Qge30KICAgICAgICAgZm9yIGhkYSBpbiBoaXN0b3J5LmRhdGFzZXRzOgotICAgICAg
ICAgICAgc291cmNlX2hkYSA9M0QgaGRhLmNvcGllZF9mcm9tX2hpc3RvcnlfZGF0YXNldF9hc3Nv
Y2lhdGlvbgotICAgICAgICAgICAgd2hpbGUgc291cmNlX2hkYToKLSAgICAgICAgICAgICAgICBp
ZiBzb3VyY2VfaGRhLmRhdGFzZXQuaWQgbm90IGluIGhkYV9zb3VyY2VfZGljdCBvciBzb3VyY2Vf
PQpoZGEuaGlkID0zRD0zRCBoZGEuaGlkOgotICAgICAgICAgICAgICAgICAgICBoZGFfc291cmNl
X2RpY3RbIHNvdXJjZV9oZGEuZGF0YXNldC5pZCBdID0zRCBoZGEKLSAgICAgICAgICAgICAgICBz
b3VyY2VfaGRhID0zRCBzb3VyY2VfaGRhLmNvcGllZF9mcm9tX2hpc3RvcnlfZGF0YXNldF9hc3Nv
PQpjaWF0aW9uCisgICAgICAgICAgICBrZXkgPTNEICclc18lcycgJSAoaGRhLmhpZCwgaGRhLmRh
dGFzZXQuaWQpCisgICAgICAgICAgICBoZGFfc291cmNlX2RpY3RbIGhkYS5kYXRhc2V0LmlkIF0g
PTNEIGhkYV9zb3VyY2VfZGljdFsga2V5IF0gPQo9M0QgaGRhCj0yMAogICAgICAgICAjIERpdHRv
IGZvciBkYXRhc2V0IGNvbGxlY3Rpb25zLgogICAgICAgICBoZGNhX3NvdXJjZV9kaWN0ID0zRCB7
fQogICAgICAgICBmb3IgaGRjYSBpbiBoaXN0b3J5LmRhdGFzZXRfY29sbGVjdGlvbnM6Ci0gICAg
ICAgICAgICBzb3VyY2VfaGRjYSA9M0QgaGRjYS5jb3BpZWRfZnJvbV9oaXN0b3J5X2RhdGFzZXRf
Y29sbGVjdGlvbl9hcz0Kc29jaWF0aW9uCi0gICAgICAgICAgICB3aGlsZSBzb3VyY2VfaGRjYToK
LSAgICAgICAgICAgICAgICBpZiBzb3VyY2VfaGRjYS5jb2xsZWN0aW9uLmlkIG5vdCBpbiBoZGNh
X3NvdXJjZV9kaWN0IG9yIHNvPQp1cmNlX2hkY2EuaGlkID0zRD0zRCBoZGNhLmhpZDoKLSAgICAg
ICAgICAgICAgICAgICAgaGRjYV9zb3VyY2VfZGljdFsgc291cmNlX2hkY2EuY29sbGVjdGlvbi5p
ZCBdID0zRCBoZGNhCi0gICAgICAgICAgICAgICAgc291cmNlX2hkY2EgPTNEIHNvdXJjZV9oZGNh
LmNvcGllZF9mcm9tX2hpc3RvcnlfZGF0YXNldF9jbz0KbGxlY3Rpb25fYXNzb2NpYXRpb24KKyAg
ICAgICAgICAgIGtleSA9M0QgJyVzXyVzJyAlIChoZGNhLmhpZCwgaGRjYS5jb2xsZWN0aW9uLmlk
KQorICAgICAgICAgICAgaGRjYV9zb3VyY2VfZGljdFsgaGRhLmNvbGxlY3Rpb24uaWQgXSA9M0Qg
aGRjYV9zb3VyY2VfZGljdFsga2U9CnkgXSA9M0QgaGRjYQorCisgICAgICAgICMgTWFwIGRhdGFz
ZXQgb3IgY29sbGVjdGlvbiB0byBjdXJyZW50IGhpc3RvcnkKKyAgICAgICAgZGVmIG1hcF90b19o
aXN0b3J5KHZhbHVlKToKKyAgICAgICAgICAgIGlkID0zRCBOb25lCisgICAgICAgICAgICBzb3Vy
Y2UgPTNEIE5vbmUKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHRyYW5zLmFwcC5t
b2RlbC5IaXN0b3J5RGF0YXNldEFzc29jaWF0aW9uPQopOgorICAgICAgICAgICAgICAgIGlkID0z
RCB2YWx1ZS5kYXRhc2V0LmlkCisgICAgICAgICAgICAgICAgc291cmNlID0zRCBoZGFfc291cmNl
X2RpY3QKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdHJhbnMuYXBwLm1vZGVs
Lkhpc3RvcnlEYXRhc2V0Q29sbGVjdGlvPQpuQXNzb2NpYXRpb24pOgorICAgICAgICAgICAgICAg
IGlkID0zRCB2YWx1ZS5jb2xsZWN0aW9uLmlkCisgICAgICAgICAgICAgICAgc291cmNlID0zRCBo
ZGNhX3NvdXJjZV9kaWN0CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgICAgICBrZXkgPTNEICclc18lcycgJSAodmFsdWUuaGlkLCBpZCkKKyAg
ICAgICAgICAgIGlmIGtleSBpbiBzb3VyY2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJj
ZVsga2V5IF0KKyAgICAgICAgICAgIGVsaWYgaWQgaW4gc291cmNlOgorICAgICAgICAgICAgICAg
IHJldHVybiBzb3VyY2VbIGlkIF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
cmV0dXJuIE5vbmUKPTIwCiAgICAgICAgICMgVW5wYWNrIHVudmFsaWRhdGVkIHZhbHVlcyB0byBz
dHJpbmdzLCB0aGV5J2xsIGJlIHZhbGlkYXRlZCB3aGVuID0KdGhlCiAgICAgICAgICMgZm9ybSBp
cyBzdWJtaXR0ZWQgKHRoaXMgaGFwcGVucyB3aGVuIHJlLXJ1bm5pbmcgYSBqb2IgdGhhdCB3YXMK
ICAgICAgICAgIyBpbml0aWFsbHkgcnVuIGJ5IGEgd29ya2Zsb3cpCiAgICAgICAgICNUaGlzIG5l
ZWRzIHRvIGJlIGRvbmUgcmVjdXJzaXZlbHkgdGhyb3VnaCBncm91cGluZyBwYXJhbWV0ZXJzCi0g
ICAgICAgIGRlZiByZXJ1bl9jYWxsYmFjayggaW5wdXQsIHZhbHVlLCBwcmVmaXhlZF9uYW1lLCBw
cmVmaXhlZF9sYWJlbCApOgorICAgICAgICBkZWYgbWFwcGluZ19jYWxsYmFjayggaW5wdXQsIHZh
bHVlLCBwcmVmaXhlZF9uYW1lLCBwcmVmaXhlZF9sYWJlbCA9Cik6CiAgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKCB2YWx1ZSwgVW52YWxpZGF0ZWRWYWx1ZSApOgogICAgICAgICAgICAgICAgIHRy
eToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0LnRvX2h0bWxfdmFsdWUoIHZhbHVl
LnZhbHVlLCB0cmFucy5hcHAgKQpAQCAtMjYyMywyMiArMjYzOSwxNyBAQAogICAgICAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsbGlzdCk6CiAgICAgICAgICAgICAgICAgICAgIHZhbHVl
cyA9M0QgW10KICAgICAgICAgICAgICAgICAgICAgZm9yIHZhbCBpbiB2YWx1ZToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCB0cmFucy5hcHAubW9kZWwuSGlzdG9y
eURhdGFzZXRBPQpzc29jaWF0aW9uKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB2
YWwuZGF0YXNldC5pZCBpbiBoZGFfc291cmNlX2RpY3Q6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIGhkYV9zb3VyY2VfZGljdFsgdmFsLmRhdGFzZT0KdC5p
ZCBdICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCB2YWwgKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3X3ZhbCA9M0QgbWFwX3RvX2hpc3RvcnkoIHZhbCApCisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBuZXdfdmFsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoIG5ld192YWwgKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCB2YWwgKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWVzCi0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwg
dHJhbnMuYXBwLm1vZGVsLkhpc3RvcnlEYXRhc2V0QXNzb2NpYT0KdGlvbik6Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIHZhbHVlLmRhdGFzZXQuaWQgaW4gaGRhX3NvdXJjZV9kaWN0OgotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGhkYV9zb3VyY2VfZGljdFsgdmFsdWUuZGF0YXNldC5p
ZCBdCi0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdHJhbnMuYXBwLm1vZGVs
Lkhpc3RvcnlEYXRhc2V0Q29sbGVjdD0KaW9uQXNzb2NpYXRpb24pOgotICAgICAgICAgICAgICAg
ICAgICBpZiB2YWx1ZS5jb2xsZWN0aW9uLmlkIGluIGhkY2Ffc291cmNlX2RpY3Q6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gaGRjYV9zb3VyY2VfZGljdFsgdmFsdWUuY29sbGVjdGlv
bi5pZCBdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1hcF90b19oaXN0b3J5KCB2YWx1ZSApCiAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoIGlu
cHV0LCBEYXRhQ29sbGVjdGlvblRvb2xQYXJhbWV0ZXIgKToKLSAgICAgICAgICAgICAgICBpZiB2
YWx1ZS5jb2xsZWN0aW9uLmlkIGluIGhkY2Ffc291cmNlX2RpY3Q6Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBoZGNhX3NvdXJjZV9kaWN0WyB2YWx1ZS5jb2xsZWN0aW9uLmlkIF0KLSAgICAg
ICAgdmlzaXRfaW5wdXRfdmFsdWVzKCB0b29sX2lucHV0cywgcGFyYW1zLCByZXJ1bl9jYWxsYmFj
ayApCisgICAgICAgICAgICAgICAgcmV0dXJuIG1hcF90b19oaXN0b3J5KCB2YWx1ZSApCisgICAg
ICAgIHZpc2l0X2lucHV0X3ZhbHVlcyggdG9vbF9pbnB1dHMsIHBhcmFtcywgbWFwcGluZ19jYWxs
YmFjayApCj0yMAogICAgIGRlZiBfY29tcGFyZV90b29sX3ZlcnNpb24oIHNlbGYsIHRyYW5zLCBq
b2IgKToKICAgICAgICAgIiIiCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHkt
Y2VudHJhbC9jb21taXRzL2NhYWRlOGJjYzczZi8KQ2hhbmdlc2V0OiAgIGNhYWRlOGJjYzczZgpC
cmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgZGFuCkRhdGU6ICAgICAgICAy
MDE1LTA0LTAzIDE5OjM5OjQwKzAwOjAwClN1bW1hcnk6ICAgICBGaXhlcyBmb3IgZGlzcGxheWlu
ZyBjZXJ0YWluIHZhbGlkIHRvb2wgaW50ZXJmYWNlcyBpbiB0aGUgVG9vbD0KU2hlZC4KQWZmZWN0
ZWQgIzogIDMgZmlsZXMKCmRpZmYgLXIgZjBiYmY1Nzc1ZDNmNzcwZWM5YWZlNDcxMjJkOTdiN2Qw
NDZmZjA4ZSAtciBjYWFkZThiY2M3M2ZmNzEzZmNlYzhjYj0KMTBjYzgwODk2YmE2NTQyNjYgbGli
L2dhbGF4eS91dGlsL2Ria2V5cy5weQotLS0gYS9saWIvZ2FsYXh5L3V0aWwvZGJrZXlzLnB5Cisr
KyBiL2xpYi9nYWxheHkvdXRpbC9kYmtleXMucHkKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAg
ICAgICAgICBmb3IgZGF0YXNldCBpbiBkYXRhc2V0czoKICAgICAgICAgICAgICAgICAgICAgcnZh
bC5hcHBlbmQoICggZGF0YXNldC5kYmtleSwgIiVzICglcykgW0hpc3RvcnldIiAlICggPQpkYXRh
c2V0Lm5hbWUsIGRhdGFzZXQuZGJrZXkgKSApICkKICAgICAgICAgICAgIHVzZXIgPTNEIHRyYW5z
LnVzZXIKLSAgICAgICAgICAgIGlmIHVzZXIgYW5kICdkYmtleXMnIGluIHVzZXIucHJlZmVyZW5j
ZXM6CisgICAgICAgICAgICBpZiB1c2VyIGFuZCBoYXNhdHRyKCB1c2VyLCAncHJlZmVyZW5jZXMn
ICkgYW5kICdkYmtleXMnIGluIHVzZT0Kci5wcmVmZXJlbmNlczoKICAgICAgICAgICAgICAgICB1
c2VyX2tleXMgPTNEIGxvYWRzKCB1c2VyLnByZWZlcmVuY2VzWydkYmtleXMnXSApCiAgICAgICAg
ICAgICAgICAgZm9yIGtleSwgY2hyb21fZGljdCBpbiB1c2VyX2tleXMuaXRlcml0ZW1zKCk6CiAg
ICAgICAgICAgICAgICAgICAgIHJ2YWwuYXBwZW5kKCAoIGtleSwgIiVzICglcykgW0N1c3RvbV0i
ICUgKCBjaHJvbV9kaWN0Wz0KJ25hbWUnXSwga2V5ICkgKSApCgpkaWZmIC1yIGYwYmJmNTc3NWQz
Zjc3MGVjOWFmZTQ3MTIyZDk3YjdkMDQ2ZmYwOGUgLXIgY2FhZGU4YmNjNzNmZjcxM2ZjZWM4Y2I9
CjEwY2M4MDg5NmJhNjU0MjY2IGxpYi9nYWxheHkvd2ViL2ZyYW1ld29yay93ZWJhcHAucHkKLS0t
IGEvbGliL2dhbGF4eS93ZWIvZnJhbWV3b3JrL3dlYmFwcC5weQorKysgYi9saWIvZ2FsYXh5L3dl
Yi9mcmFtZXdvcmsvd2ViYXBwLnB5CkBAIC02NjgsNyArNjY4LDggQEAKICAgICAgICAgIiIiCiAg
ICAgICAgIGhpc3RvcnkgPTNEIE5vbmUKICAgICAgICAgaWYgc2VsZi5nYWxheHlfc2Vzc2lvbjoK
LSAgICAgICAgICAgIGhpc3RvcnkgPTNEIHNlbGYuZ2FsYXh5X3Nlc3Npb24uY3VycmVudF9oaXN0
b3J5CisgICAgICAgICAgICBpZiBoYXNhdHRyKCBzZWxmLmdhbGF4eV9zZXNzaW9uLCAnY3VycmVu
dF9oaXN0b3J5JyApOgorICAgICAgICAgICAgICAgIGhpc3RvcnkgPTNEIHNlbGYuZ2FsYXh5X3Nl
c3Npb24uY3VycmVudF9oaXN0b3J5CiAgICAgICAgIGlmIG5vdCBoaXN0b3J5IGFuZCB1dGlsLnN0
cmluZ19hc19ib29sKCBjcmVhdGUgKToKICAgICAgICAgICAgIGhpc3RvcnkgPTNEIHNlbGYubmV3
X2hpc3RvcnkoKQogICAgICAgICByZXR1cm4gaGlzdG9yeQoKZGlmZiAtciBmMGJiZjU3NzVkM2Y3
NzBlYzlhZmU0NzEyMmQ5N2I3ZDA0NmZmMDhlIC1yIGNhYWRlOGJjYzczZmY3MTNmY2VjOGNiPQox
MGNjODA4OTZiYTY1NDI2NiBsaWIvdG9vbF9zaGVkL3V0aWwvdG9vbF91dGlsLnB5Ci0tLSBhL2xp
Yi90b29sX3NoZWQvdXRpbC90b29sX3V0aWwucHkKKysrIGIvbGliL3Rvb2xfc2hlZC91dGlsL3Rv
b2xfdXRpbC5weQpAQCAtMjM3LDEyICsyMzcsMTkgQEAKICAgICBpZiBpbnZhbGlkOgogICAgICAg
ICAjIFdlJ3JlIGF0dGVtcHRpbmcgdG8gZGlzcGxheSBhIHRvb2wgaW4gdGhlIHRvb2wgc2hlZCB0
aGF0IGhhcyBiZWU9Cm4gZGV0ZXJtaW5lZCB0byBoYXZlIGVycm9ycywgc28gaXMgaW52YWxpZC4K
ICAgICAgICAgcmV0dXJuIHN0YXRlCisgICAgdHJ5OgorICAgICAgICAjIEF0dGVtcHQgdG8gZ2Vu
ZXJhdGUgdGhlIHRvb2wgc3RhdGUgdXNpbmcgdGhlIHN0YW5kYXJkIEdhbGF4eS1zaWQ9CmUgY29k
ZQorICAgICAgICByZXR1cm4gdG9vbC5uZXdfc3RhdGUoIHRyYW5zICkKKyAgICBleGNlcHQgRXhj
ZXB0aW9uLCBlOgorICAgICAgICAjIEZhbGwgYmFjayB0byBidWlsZGluZyB0b29sIHN0YXRlIGFz
IGJlbG93CisgICAgICAgIGxvZy5kZWJ1ZyggJ0ZhaWxlZCB0byBidWlsZCB0b29sIHN0YXRlIGZv
ciB0b29sICIlcyIgdXNpbmcgc3RhbmRhcj0KZCBtZXRob2QsIHdpbGwgdHJ5IHRvIGZhbGwgYmFj
ayBvbiBjdXN0b20gbWV0aG9kOiAlcycsIHRvb2wuaWQsIGUgKQogICAgIGlucHV0cyA9M0QgdG9v
bC5pbnB1dHNfYnlfcGFnZVsgMCBdCiAgICAgY29udGV4dCA9M0QgRXhwcmVzc2lvbkNvbnRleHQo
IHN0YXRlLmlucHV0cywgcGFyZW50PTNETm9uZSApCiAgICAgZm9yIGlucHV0IGluIGlucHV0cy5p
dGVydmFsdWVzKCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHN0YXRlLmlucHV0c1sgaW5w
dXQubmFtZSBdID0zRCBpbnB1dC5nZXRfaW5pdGlhbF92YWx1ZSggdHJhbnMsPQogY29udGV4dCAp
CiAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICMgRklYTUU6IG5vdCBhbGwgdmFsdWVzIHNo
b3VsZCBiZSBhbiBlbXB0eSBsaXN0CiAgICAgICAgICAgICBzdGF0ZS5pbnB1dHNbIGlucHV0Lm5h
bWUgXSA9M0QgW10KICAgICByZXR1cm4gc3RhdGUKPTIwCgoKaHR0cHM6Ly9iaXRidWNrZXQub3Jn
L2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzL2NlOTdhN2IyMDk0ZS8KQ2hhbmdlc2V0OiAg
IGNlOTdhN2IyMDk0ZQpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgZGFu
CkRhdGU6ICAgICAgICAyMDE1LTAzLTI2IDE1OjQ3OjU4KzAwOjAwClN1bW1hcnk6ICAgICBSZS1l
bmFibGUgSUdWIGxvY2FsIGV4dGVybmFsIGRpc3BsYXkgYXBwbGljYXRpb24gYnkgZGVmYXVsdC4g
QT0KZGQgaGczOCBhcyBhdmFpbGFibGUgZ2Vub21lLiBXZSBzaG91bGQgcHJvYmFibHkgdXBkYXRl
IHRoaXMgdmlldyB0byBlaXRoZXIgPQphbGxvdyBhbnkgZ2Vub21lIG9yIHRvIGZ1bmN0aW9uIGxp
a2UgdGhlIGN1cnJlbnQgd2ViX2xpbmtfbWFpbi4KQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAt
ciBjYWFkZThiY2M3M2ZmNzEzZmNlYzhjYjEwY2M4MDg5NmJhNjU0MjY2IC1yIGNlOTdhN2IyMDk0
ZTE3ODQ0MzY1MzgxPQowZTE5YzkxOTViOGQ5MTliZiB0b29sLWRhdGEvc2hhcmVkL2lndi9pZ3Zf
YnVpbGRfc2l0ZXMudHh0LnNhbXBsZQotLS0gYS90b29sLWRhdGEvc2hhcmVkL2lndi9pZ3ZfYnVp
bGRfc2l0ZXMudHh0LnNhbXBsZQorKysgYi90b29sLWRhdGEvc2hhcmVkL2lndi9pZ3ZfYnVpbGRf
c2l0ZXMudHh0LnNhbXBsZQpAQCAtMSw0ICsxLDQgQEAKICNzaXRlX2lkCXNpdGVfbmFtZQlzaXRl
X3VybAlkYmtleQlpdmdfYnVpbGRfbmFtZQogd2ViX2xpbmtfbWFpbgl3ZWIgY3VycmVudAlodHRw
Oi8vd3d3LmJyb2FkaW5zdGl0dXRlLm9yZy9pZ3YvcHJvamVjdHMvY3VycmU9Cm50L2lndi5waHAJ
aGdfZzFrX3YzNwliMzcKICN3ZWJfam5scF8xLjUJd2ViIDEuNQlodHRwOi8vd3d3LmJyb2FkaW5z
dGl0dXRlLm9yZy9pZ3ZkYXRhL2p3cy9wcm9kCWhnMTksPQpoZ19nMWtfdjM3LGhnMTgsMWtnX3Jl
ZixoZzE3LGhnMTYsbW05LG1tOCxtbTcscGFuVHJvMixyaGVNYWMyLHJuNCxjYW5GYW0yLGI9Cm9z
VGF1Nixib3NUYXU0LGJvc1RhdTMsc3VzU2Nyb2ZhLGdhbEdhbDMsY2F2UG9yMyxtb25Eb201LHhl
blRybzIsdGFlR3V0MSx6ZT0KYnJhZmlzaCxkYW5SZXI2LGRhblJlcjcsZ2FzQWN1MSxBcGx5c2lh
LFBsYXNtb2RpdW1fM0Q3X3YyLjEsUGxhc21vZGl1bV8zRDdfPQp2NS41LFBsYXNtb2RpdW1fNi4x
LFBsYXNtb0RCXzcuMCxwdml2YXgsR1NNNTUyOTEwLHNhY0NlcjEsc2FjQ2VyMixzazEsWTU1LHM9
CmFjQ2VyNjIsc3BvbWJlXzcwOSxzcG9tYmVfMS41NSxjYW5kaWRhLG1nOCxzcHVyXzIuMSxzcHVy
XzIuNSxzcHVyXzMuMCxXUzIwMT0KLGNlNixjZTQsZG0zLGRtMixkbWVsXzUuOSxkbWVsX3I1LjIy
LGRtZWxfcjUuMzMsdGNhc18yLjAsdGNhc18zLjAsbmNyYXNzYV92PQozLG5jMTAsR2xhbWJsaWFf
Mi4wLG1lNDksdGI5MjcsdGJnYW1iaSxsbWpyLGFuaWR1bGFuc180LjEsTkNfMDA5MDEyLFUwMDA5
Ni49CjIsTkNfMDAwOTEzLjIsTkNfMDAyNjU1LjIsQ1NhdmlnbnlpX3YyLjEsdGFpcjgsdGFpcjks
dGFpcjEwLE9fU2F0aXZhX3I2LG9zYT0KdGl2YV82LjEsQjczLFptQjczXzVhLHBwYXRlbnNfMS4y
LEQuZGlzY29pZGV1bQloZzE5LGIzNyxoZzE4LDFrZ19yZWYsaGcxNyxoPQpnMTYsbW05LG1tOCxt
bTcscGFuVHJvMixyaGVNYWMyLHJuNCxjYW5GYW0yLGJvc1RhdTYsYm9zVGF1NCxib3NUYXUzLHN1
c1Njcm89CmZhLGdhbEdhbDMsY2F2UG9yMyxtb25Eb201LHhlblRybzIsdGFlR3V0MSx6ZWJyYWZp
c2gsZGFuUmVyNixkYW5SZXI3LGdhc0FjdT0KMSxBcGx5c2lhLFBsYXNtb2RpdW1fM0Q3X3YyLjEs
UGxhc21vZGl1bV8zRDdfdjUuNSxQbGFzbW9kaXVtXzYuMSxQbGFzbW9EQl83PQouMCxwdml2YXgs
R1NNNTUyOTEwLHNhY0NlcjEsc2FjQ2VyMixzazEsWTU1LHNhY0NlcjYyLHNwb21iZV83MDksc3Bv
bWJlXzEuNTU9CixjYW5kaWRhLG1nOCxzcHVyXzIuMSxzcHVyXzIuNSxzcHVyXzMuMCxXUzIwMSxj
ZTYsY2U0LGRtMyxkbTIsZG1lbF81LjksZG1lbD0KX3I1LjIyLGRtZWxfcjUuMzMsdGNhc18yLjAs
dGNhc18zLjAsbmNyYXNzYV92MyxuYzEwLEdsYW1ibGlhXzIuMCxtZTQ5LHRiOTI3PQosdGJnYW1i
aSxsbWpyLGFuaWR1bGFuc180LjEsTkNfMDA5MDEyLFUwMDA5Ni4yLE5DXzAwMDkxMy4yLE5DXzAw
MjY1NS4yLENTYXY9CmlnbnlpX3YyLjEsdGFpcjgsdGFpcjksdGFpcjEwLE9fU2F0aXZhX3I2LG9z
YXRpdmFfNi4xLEI3MyxabUI3M181YSxwcGF0ZW5zXz0KMS4yLEQuZGlzY29pZGV1bQotI2xvY2Fs
X2RlZmF1bHQJbG9jYWwJaHR0cDovL2xvY2FsaG9zdDo2MDE1MS9sb2FkCWhnMTksaGdfZzFrX3Yz
NyxoZzE4LDFrZ189CnJlZixoZzE3LGhnMTYsbW05LG1tOCxtbTcscGFuVHJvMixyaGVNYWMyLHJu
NCxjYW5GYW0yLGJvc1RhdTYsYm9zVGF1NCxib3NUYT0KdTMsc3VzU2Nyb2ZhLGdhbEdhbDMsY2F2
UG9yMyxtb25Eb201LHhlblRybzIsdGFlR3V0MSx6ZWJyYWZpc2gsZGFuUmVyNixkYW5SPQplcjcs
Z2FzQWN1MSxBcGx5c2lhLFBsYXNtb2RpdW1fM0Q3X3YyLjEsUGxhc21vZGl1bV8zRDdfdjUuNSxQ
bGFzbW9kaXVtXzYuMSw9ClBsYXNtb0RCXzcuMCxwdml2YXgsR1NNNTUyOTEwLHNhY0NlcjEsc2Fj
Q2VyMixzazEsWTU1LHNhY0NlcjYyLHNwb21iZV83MDkscz0KcG9tYmVfMS41NSxjYW5kaWRhLG1n
OCxzcHVyXzIuMSxzcHVyXzIuNSxzcHVyXzMuMCxXUzIwMSxjZTYsY2U0LGRtMyxkbTIsZG1lPQps
XzUuOSxkbWVsX3I1LjIyLGRtZWxfcjUuMzMsdGNhc18yLjAsdGNhc18zLjAsbmNyYXNzYV92Myxu
YzEwLEdsYW1ibGlhXzIuMCw9Cm1lNDksdGI5MjcsdGJnYW1iaSxsbWpyLGFuaWR1bGFuc180LjEs
TkNfMDA5MDEyLFUwMDA5Ni4yLE5DXzAwMDkxMy4yLE5DXzAwMj0KNjU1LjIsQ1NhdmlnbnlpX3Yy
LjEsdGFpcjgsdGFpcjksdGFpcjEwLE9fU2F0aXZhX3I2LG9zYXRpdmFfNi4xLEI3MyxabUI3M181
PQphLHBwYXRlbnNfMS4yLEQuZGlzY29pZGV1bQloZzE5LGIzNyxoZzE4LDFrZ19yZWYsaGcxNyxo
ZzE2LG1tOSxtbTgsbW03LHBhblQ9CnJvMixyaGVNYWMyLHJuNCxjYW5GYW0yLGJvc1RhdTYsYm9z
VGF1NCxib3NUYXUzLHN1c1Njcm9mYSxnYWxHYWwzLGNhdlBvcjMsbT0Kb25Eb201LHhlblRybzIs
dGFlR3V0MSx6ZWJyYWZpc2gsZGFuUmVyNixkYW5SZXI3LGdhc0FjdTEsQXBseXNpYSxQbGFzbW9k
aXVtPQpfM0Q3X3YyLjEsUGxhc21vZGl1bV8zRDdfdjUuNSxQbGFzbW9kaXVtXzYuMSxQbGFzbW9E
Ql83LjAscHZpdmF4LEdTTTU1MjkxMCw9CnNhY0NlcjEsc2FjQ2VyMixzazEsWTU1LHNhY0NlcjYy
LHNwb21iZV83MDksc3BvbWJlXzEuNTUsY2FuZGlkYSxtZzgsc3B1cl8yLj0KMSxzcHVyXzIuNSxz
cHVyXzMuMCxXUzIwMSxjZTYsY2U0LGRtMyxkbTIsZG1lbF81LjksZG1lbF9yNS4yMixkbWVsX3I1
LjMzLHRjPQphc18yLjAsdGNhc18zLjAsbmNyYXNzYV92MyxuYzEwLEdsYW1ibGlhXzIuMCxtZTQ5
LHRiOTI3LHRiZ2FtYmksbG1qcixhbmlkdWw9CmFuc180LjEsTkNfMDA5MDEyLFUwMDA5Ni4yLE5D
XzAwMDkxMy4yLE5DXzAwMjY1NS4yLENTYXZpZ255aV92Mi4xLHRhaXI4LHRhaT0KcjksdGFpcjEw
LE9fU2F0aXZhX3I2LG9zYXRpdmFfNi4xLEI3MyxabUI3M181YSxwcGF0ZW5zXzEuMixELmRpc2Nv
aWRldW0KK2xvY2FsX2RlZmF1bHQJbG9jYWwJaHR0cDovL2xvY2FsaG9zdDo2MDE1MS9sb2FkCWhn
MzgsaGcxOSxoZ19nMWtfdjM3LGhnMTgsPQoxa2dfcmVmLGhnMTcsaGcxNixtbTksbW04LG1tNyxw
YW5Ucm8yLHJoZU1hYzIscm40LGNhbkZhbTIsYm9zVGF1Nixib3NUYXU0LGI9Cm9zVGF1MyxzdXNT
Y3JvZmEsZ2FsR2FsMyxjYXZQb3IzLG1vbkRvbTUseGVuVHJvMix0YWVHdXQxLHplYnJhZmlzaCxk
YW5SZXI2LD0KZGFuUmVyNyxnYXNBY3UxLEFwbHlzaWEsUGxhc21vZGl1bV8zRDdfdjIuMSxQbGFz
bW9kaXVtXzNEN192NS41LFBsYXNtb2RpdW1fPQo2LjEsUGxhc21vREJfNy4wLHB2aXZheCxHU001
NTI5MTAsc2FjQ2VyMSxzYWNDZXIyLHNrMSxZNTUsc2FjQ2VyNjIsc3BvbWJlXzc9CjA5LHNwb21i
ZV8xLjU1LGNhbmRpZGEsbWc4LHNwdXJfMi4xLHNwdXJfMi41LHNwdXJfMy4wLFdTMjAxLGNlNixj
ZTQsZG0zLGRtMj0KLGRtZWxfNS45LGRtZWxfcjUuMjIsZG1lbF9yNS4zMyx0Y2FzXzIuMCx0Y2Fz
XzMuMCxuY3Jhc3NhX3YzLG5jMTAsR2xhbWJsaWFfPQoyLjAsbWU0OSx0YjkyNyx0YmdhbWJpLGxt
anIsYW5pZHVsYW5zXzQuMSxOQ18wMDkwMTIsVTAwMDk2LjIsTkNfMDAwOTEzLjIsTkM9Cl8wMDI2
NTUuMixDU2F2aWdueWlfdjIuMSx0YWlyOCx0YWlyOSx0YWlyMTAsT19TYXRpdmFfcjYsb3NhdGl2
YV82LjEsQjczLFptQj0KNzNfNWEscHBhdGVuc18xLjIsRC5kaXNjb2lkZXVtCWhnMzgsaGcxOSxi
MzcsaGcxOCwxa2dfcmVmLGhnMTcsaGcxNixtbTksbW04PQosbW03LHBhblRybzIscmhlTWFjMixy
bjQsY2FuRmFtMixib3NUYXU2LGJvc1RhdTQsYm9zVGF1MyxzdXNTY3JvZmEsZ2FsR2FsMyw9CmNh
dlBvcjMsbW9uRG9tNSx4ZW5Ucm8yLHRhZUd1dDEsemVicmFmaXNoLGRhblJlcjYsZGFuUmVyNyxn
YXNBY3UxLEFwbHlzaWEsUD0KbGFzbW9kaXVtXzNEN192Mi4xLFBsYXNtb2RpdW1fM0Q3X3Y1LjUs
UGxhc21vZGl1bV82LjEsUGxhc21vREJfNy4wLHB2aXZheCxHPQpTTTU1MjkxMCxzYWNDZXIxLHNh
Y0NlcjIsc2sxLFk1NSxzYWNDZXI2MixzcG9tYmVfNzA5LHNwb21iZV8xLjU1LGNhbmRpZGEsbWc9
Cjgsc3B1cl8yLjEsc3B1cl8yLjUsc3B1cl8zLjAsV1MyMDEsY2U2LGNlNCxkbTMsZG0yLGRtZWxf
NS45LGRtZWxfcjUuMjIsZG1lbD0KX3I1LjMzLHRjYXNfMi4wLHRjYXNfMy4wLG5jcmFzc2FfdjMs
bmMxMCxHbGFtYmxpYV8yLjAsbWU0OSx0YjkyNyx0YmdhbWJpLGxtPQpqcixhbmlkdWxhbnNfNC4x
LE5DXzAwOTAxMixVMDAwOTYuMixOQ18wMDA5MTMuMixOQ18wMDI2NTUuMixDU2F2aWdueWlfdjIu
MSw9CnRhaXI4LHRhaXI5LHRhaXIxMCxPX1NhdGl2YV9yNixvc2F0aXZhXzYuMSxCNzMsWm1CNzNf
NWEscHBhdGVuc18xLjIsRC5kaXNjbz0KaWRldW0KCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2Fs
YXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvMjJiMWRhOTIzMThkLwpDaGFuZ2VzZXQ6ICAgMjJi
MWRhOTIzMThkCkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBqbWNoaWx0
b24KRGF0ZTogICAgICAgIDIwMTUtMDQtMDYgMTY6Mzc6NDcrMDA6MDAKU3VtbWFyeTogICAgIEJ1
Z2ZpeGVzIGZvciBydW50aW1lIHBhcmFtZXRlciBoYW5kbGluZyBpbiB0aGUgd29ya2Zsb3cgcnVu
IGZvPQpybS4KClRoZSBiZWhhdmlvciBvZiB0aGVzZSBmb3JtcyB3YXMgbW9kaWZpZWQgaW4gUFIg
NDMzIChodHRwczovL2JpdGJ1Y2tldC5vcmcvZz0KYWxheHkvZ2FsYXh5LWNlbnRyYWwvcHVsbC1y
ZXF1ZXN0LzQzMy9maXgtYWxsb3ctZWRpdGluZy13b3JrZmxvd3Mtb24tdGhlLWZsPQp5LWZvci9k
aWZmIyAtIG5vdCBtZXJnZWQgYnkgbWUgOnwgKSAtIHNvIHRoYXQgdGhlIGVudGlyZSB3b3JrZmxv
dyB3b3VsZCBiZSA9CnN1Ym1pdHRlZCBhcyBydW50aW1lIHBhcmFtZXRlcnMgb24gZWFjaCBzdWJt
aXNzaW9uLgoKSW4gYWRkaXRpb24gdG8gdGhpcyBjYXVzaW5nIGJ1Z3MgcmVsYXRlZCB0byB1bnZh
bGlkYXRlZCBwYXJhbWV0ZXJzIGh0dHBzOi8vPQp0cmVsbG8uY29tL2MvNzJXdVo4bXUgYW5kIG90
aGVyIHByb2JsZW1zIHdpdGggc2VsZWN0IHBhcmFtZXRlcnMgKGUuZy4gaHR0cDo9Ci8vZGV2Lmxp
c3QuZ2FsYXh5cHJvamVjdC5vcmcvV29ya2Zsb3ctYnVnLXdoZW4tbG9jLWVudHJpZXMtYXJlLW1p
c3NpbmctdGM0Nj0KNjY4NzUuaHRtbCkgLSBJIGp1c3QgZGlzY292ZXJlZCBpdCB3b3VsZCBhbHNv
IGNhdXNlIHRoZSBtb2RpZmllZCB2YWx1ZSB0byBiPQplIHN1Ym1pdHRlZCBldmVuIGlmIHRoZSB1
c2VyIG9wdHMgdG8gdW5kbyB0aGUgc2VsZWN0aW9uIG9mIGEgcnVudGltZSB3b3JrZmw9Cm93IHBh
cmFtZXRlciBhbmQgcmVzdG9yZSB0aGUgcHJldmlvdXMgc2VsZWN0aW9uIChpLmUuIHRoZSBmb3Jt
IHdvdWxkIHNob3cgdD0KaGUgb3JpZ2luYWwgdmFsdWUgYnV0IHRoZSBuZXcgdmFsdWUgd291bGQg
YmUgc3VibWl0dGVkKS4KClRoaXMgUFIgcmVzdG9yZXMgdGhlIHByZXZpb3VzIGJlaGF2aW9yIG9m
IGdpdmluZyB0aGUgc3VibWl0dGVkIGZvcm0gZWxlbWVudD0KcyBhIHVuaXF1ZSBuYW1lIHNvIGV2
ZXJ5IHZhbHVlIGluIHRoZSB3b3JrZmxvdyBpcyBub3QgcmVwbGFjZWQgYXMgcGFydCBvZiB0PQpo
ZSBzdWJtaXNzaW9uIC0gZml4aW5nIHRoZSBmb3JtZXIgcHJvYmxlbS4gVGhlIG5ldyB0ZWNobmlx
dWUgYWxzbyBmaXhlcyB0aGU9CiBvdGhlciBwcm9ibGVtIGFzIHdlbGwuCkFmZmVjdGVkICM6ICAx
IGZpbGUKCmRpZmYgLXIgY2U5N2E3YjIwOTRlMTc4NDQzNjUzODEwZTE5YzkxOTViOGQ5MTliZiAt
ciAyMmIxZGE5MjMxOGRjZmZjY2FkMDA5OD0KYzkxYzc5YmZkNDJhOTU2MzEgdGVtcGxhdGVzL3dl
YmFwcHMvZ2FsYXh5L3dvcmtmbG93L3J1bi5tYWtvCi0tLSBhL3RlbXBsYXRlcy93ZWJhcHBzL2dh
bGF4eS93b3JrZmxvdy9ydW4ubWFrbworKysgYi90ZW1wbGF0ZXMvd2ViYXBwcy9nYWxheHkvd29y
a2Zsb3cvcnVuLm1ha28KQEAgLTE1NCwxMSArMTU0LDExIEBACj0yMAogICAgICAgICAgJCgiLndv
cmtmbG93LWVkaXQtYnV0dG9uIikub24oImNsaWNrIixmdW5jdGlvbigpewogICAgICAgICAgICAg
ICAgIHZhciBzdGF0ZSA9M0QgJCh0aGlzKS5hdHRyKCJuYW1lIik7Ci0gICAgICAgICAgICAgICAg
dmFyIHN0ZXBUb29sQm94ID0zRCAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ2lucHV0Om5vdChbY2xh
cz0Kc10pOm5vdChbdHlwZT0zRCJoaWRkZW4iXSksIHNlbGVjdDpub3QoW2NsYXNzXSknKTsKLSAg
ICAgICAgICAgICAgICB2YXIgbGFiZWxzID0zRCAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ2xhYmVs
Jyk7CisgICAgICAgICAgICAgICAgdmFyIHN0ZXBUb29sQm94ID0zRCAkKHRoaXMpLnBhcmVudCgp
LnBhcmVudCgpLmZpbmQoJy5lZGl0YT0KYmxlLXBhcmFtJykuZmluZCgnaW5wdXQ6bm90KFtjbGFz
c10pOm5vdChbdHlwZT0zRCJoaWRkZW4iXSksIHNlbGVjdDpub3QoW2NsPQphc3NdKScpOworICAg
ICAgICAgICAgICAgIHZhciBsYWJlbHMgPTNEICQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmlu
ZCgnLmVkaXRhYmxlLXA9CmFyYW0nKS5maW5kKCdsYWJlbCcpOwogICAgICAgICAgICAgICAgIHZh
ciBzcGxpdF9uYW1lID0zRCBzdGVwVG9vbEJveC5hdHRyKCJuYW1lIikuc3BsaXQoInwiKTsKICAg
ICAgICAgICAgICAgICB2YXIgc3RlcF9pZCA9M0Qgc3BsaXRfbmFtZVswXTsKLSAgICAgICAgICAg
ICAgICB2YXIgc3RlcF9uYW1lID0zRCBzcGxpdF9uYW1lLnNsaWNlKDEsIHNwbGl0X25hbWUubGVu
Z3RoKS5qPQpvaW4oInwiKTsKKyAgICAgICAgICAgICAgICB2YXIgc3RlcF9uYW1lID0zRCBzcGxp
dF9uYW1lLnNsaWNlKDIsIHNwbGl0X25hbWUubGVuZ3RoKS5qPQpvaW4oInwiKTsKICAgICAgICAg
ICAgICAgICB2YXIgaGlkZGVuX2h0bWwgPTNEICI8aW5wdXQgdHlwZT0zRCdoaWRkZW4nIG5hbWU9
M0QnIitzdGVwPQpfaWQrInxfX3J1bnRpbWVfXyIrc3RlcF9uYW1lKyInIHZhbHVlPTNEJ3RydWUn
IC8+IjsKICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9M0QgIiI7CiAgICAgICAgICAgICAgICAg
aWYgKHN0YXRlID0zRD0zRD0zRCAiZWRpdCIpewpAQCAtMTc5LDkgKzE3OSw5IEBACiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgICQo
dGhpcykucGFyZW50KCkuZmluZCgiLmVkaXRhYmxlIikuaGlkZSgpOworICAgICAgICAgICAgICAg
ICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoIi5lZGl0YWJsZSIpLmVtcHR5KCk7CiAgICAgICAg
ICAgICAgICAgICAgICQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnVuZWRpdGFibGVf
ZmllbGQiKS5zaD0Kb3coKTsKICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCJuYW1l
IiwgImVkaXQiKTsKLSAgICAgICAgICAgICAgICAgICAgc3RlcFRvb2xCb3guaGlkZSgpOwogICAg
ICAgICAgICAgICAgICAgICByZWFkeVBhcmFtZXRlcigkKHRoaXMpKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9KS5lYWNoKGZ1bmN0aW9uKGksIGljb24pIHsKQEAgLTI4MSw2ICsy
ODEsOSBAQAogICAgIC5lZGl0YWJsZSB7CiAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgfQor
ICAgIC5lZGl0YWJsZS1wYXJhbSB7CisgICAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQo9MjAK
ICAgICAud29ya2Zsb3ctZWRpdC1idXR0b24tZWRpdGluZyB7CiAgICAgICAgIGNvbG9yOiBibGFj
azsKQEAgLTQ0OCwxMSArNDUxLDE3IEBACiAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3Bh
biBjbGFzcz0zRCJlZGl0YWJsZV9maWVsZCI+PHNwYW4gY2xhc3M9M0QiZT0KZGl0YWJsZSI+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtwYXJhbS5nZXRfaHRtbF9maWVsZCggdCwgdmFs
dWUsIG90aGVyX3ZhbHVlcz0KKS5nZXRfaHRtbCggc3RyKHN0ZXAuaWQpICsgInwiKyBwcmVmaXgg
KX0KICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48aSBjbGFzcz0zRCJmYSB3b3JrZmxv
dy1lZGl0LWJ1dHRvbiI+PC9pPjwvPQpzcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBj
bGFzcz0zRCJlZGl0YWJsZS1wYXJhbSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBy
aXN0aW5lIHZhcmlhbnQgb2YgcGFyYW0sIHRoaXMgd2lsbCBiZSBjbG9uZWQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5kIG1vZGlmaWVkIHdoZW4gdGhlIHVzZXIgb3B0cyB0byBtYWtl
IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGFibGUuCisgICAgICAgICAg
ICAgICAgICAgICAgICAtLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICR7cGFyYW0uZ2V0X2h0
bWxfZmllbGQoIHQsIHZhbHVlLCBvdGhlcl92YWx1ZXMpLmdlPQp0X2h0bWwoIHN0cihzdGVwLmlk
KSArICJ8IisgImVkaXRhYmxlIiArICJ8IiArIHByZWZpeCApfQorICAgICAgICAgICAgICAgICAg
ICA8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICVlbmRpZgogICAgICAgICAgICAgJWVu
ZGlmCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21taXRz
L2M4ZTU4MWQwZDVlYi8KQ2hhbmdlc2V0OiAgIGM4ZTU4MWQwZDVlYgpCcmFuY2g6ICAgICAgcmVs
ZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgY2FybGZlYmVyaGFyZApEYXRlOiAgICAgICAgMjAxNS0w
NC0wNiAxODo0NDoyMSswMDowMApTdW1tYXJ5OiAgICAgRml4OiBkYXRhc2V0cy5wdXJnZV9hc3lu
Yy9fcHVyZ2UgdG8gYWxsb3cgcHVyZ2luZyBoZGFzIHdpdGhpbiA9Cm5vbi1jdXJyZW50IGhpc3Rv
cmllcwpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDIyYjFkYTkyMzE4ZGNmZmNjYWQwMDk4
YzkxYzc5YmZkNDJhOTU2MzEgLXIgYzhlNTgxZDBkNWViNTVlZjMzMjNjMTg9CjEwMDRmOWY3OGQz
YjJhYzE3IGxpYi9nYWxheHkvd2ViYXBwcy9nYWxheHkvY29udHJvbGxlcnMvZGF0YXNldC5weQot
LS0gYS9saWIvZ2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2NvbnRyb2xsZXJzL2RhdGFzZXQucHkKKysr
IGIvbGliL2dhbGF4eS93ZWJhcHBzL2dhbGF4eS9jb250cm9sbGVycy9kYXRhc2V0LnB5CkBAIC04
NTIsMjIgKzg1MiwyNCBAQAogICAgICAgICBzdGF0dXMgPTNEICdkb25lJwogICAgICAgICB0cnk6
CiAgICAgICAgICAgICBpZCA9M0QgdHJhbnMuYXBwLnNlY3VyaXR5LmRlY29kZV9pZCggZGF0YXNl
dF9pZCApCi0gICAgICAgICAgICBoaXN0b3J5ID0zRCB0cmFucy5nZXRfaGlzdG9yeSgpCiAgICAg
ICAgICAgICB1c2VyID0zRCB0cmFucy5nZXRfdXNlcigpCiAgICAgICAgICAgICBoZGEgPTNEIHRy
YW5zLnNhX3Nlc3Npb24ucXVlcnkoIHNlbGYuYXBwLm1vZGVsLkhpc3RvcnlEYXRhc2V0QT0Kc3Nv
Y2lhdGlvbiApLmdldCggaWQgKQogICAgICAgICAgICAgIyBJbnZhbGlkIEhEQQogICAgICAgICAg
ICAgYXNzZXJ0IGhkYSwgJ0ludmFsaWQgaGlzdG9yeSBkYXRhc2V0IElEJworCiAgICAgICAgICAg
ICAjIFdhbGsgdXAgcGFyZW50IGRhdGFzZXRzIHRvIGZpbmQgdGhlIGNvbnRhaW5pbmcgaGlzdG9y
eQorICAgICAgICAgICAgaGlzdG9yeSA9M0QgdHJhbnMuZ2V0X2hpc3RvcnkoKQogICAgICAgICAg
ICAgdG9wbW9zdF9wYXJlbnQgPTNEIGhkYQogICAgICAgICAgICAgd2hpbGUgdG9wbW9zdF9wYXJl
bnQucGFyZW50OgogICAgICAgICAgICAgICAgIHRvcG1vc3RfcGFyZW50ID0zRCB0b3Btb3N0X3Bh
cmVudC5wYXJlbnQKLSAgICAgICAgICAgIGFzc2VydCB0b3Btb3N0X3BhcmVudCBpbiBoaXN0b3J5
LmRhdGFzZXRzLCAiRGF0YSBkb2VzIG5vdCBiZWxvPQpuZyB0byBjdXJyZW50IGhpc3RvcnkiCiAg
ICAgICAgICAgICAjIElmIHRoZSB1c2VyIGlzIGFub255bW91cywgbWFrZSBzdXJlIHRoZSBIREEg
aXMgb3duZWQgYnkgdGhlID0KY3VycmVudCBzZXNzaW9uLgogICAgICAgICAgICAgaWYgbm90IHVz
ZXI6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHRyYW5zLmdhbGF4eV9zZXNzaW9uLmN1cnJlbnRf
aGlzdG9yeV9pZCA9M0Q9M0QgdHJhbj0Kcy5oaXN0b3J5LmlkLCAnSW52YWxpZCBoaXN0b3J5IGRh
dGFzZXQgSUQnCisgICAgICAgICAgICAgICAgY3VycmVudF9oaXN0b3J5X2lkID0zRCB0cmFucy5n
YWxheHlfc2Vzc2lvbi5jdXJyZW50X2hpc3Rvcj0KeV9pZAorICAgICAgICAgICAgICAgIGFzc2Vy
dCB0b3Btb3N0X3BhcmVudC5oaXN0b3J5LmlkID0zRD0zRCBjdXJyZW50X2hpc3RvcnlfaWQ9Ciwg
J0RhdGEgZG9lcyBub3QgYmVsb25nIHRvIGN1cnJlbnQgdXNlcicKICAgICAgICAgICAgICMgSWYg
dGhlIHVzZXIgaXMga25vd24sIG1ha2Ugc3VyZSB0aGUgSERBIGlzIG93bmVkIGJ5IHRoZSBjdXJy
PQplbnQgdXNlci4KICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHRv
cG1vc3RfcGFyZW50Lmhpc3RvcnkudXNlciA9M0Q9M0QgdHJhbnMudXNlciwgJ0ludj0KYWxpZCBo
aXN0b3J5IGRhdGFzZXQgSUQnCisgICAgICAgICAgICAgICAgYXNzZXJ0IHRvcG1vc3RfcGFyZW50
Lmhpc3RvcnkudXNlciA9M0Q9M0QgdXNlciwgJ0RhdGEgZG9lcz0KIG5vdCBiZWxvbmcgdG8gY3Vy
cmVudCB1c2VyJworCiAgICAgICAgICAgICAjIEVuc3VyZSBIREEgaXMgZGVsZXRlZAogICAgICAg
ICAgICAgaGRhLmRlbGV0ZWQgPTNEIFRydWUKICAgICAgICAgICAgICMgSERBIGlzIHB1cmdlYWJs
ZQpAQCAtODkwLDggKzg5Miw4IEBACiAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAg
ICAgICAgICAgICBsb2cuZXhjZXB0aW9uKCAnVW5hYmxlIHRvIHB1cmdlIGRhdGFzZXQgKCVzKSBv
biBwdXJnZSA9Cm9mIEhEQSAoJXMpOicgJSAoIGhkYS5kYXRhc2V0LmlkLCBoZGEuaWQgKSApCiAg
ICAgICAgICAgICB0cmFucy5zYV9zZXNzaW9uLmZsdXNoKCkKLSAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKLSAgICAgICAgICAgIG1zZyA9M0QgJ0hEQSBwdXJnZSBmYWlsZWQgKGVuY29kZWQ6ICVz
LCBkZWNvZGVkOiAlcyknICUgKCBkYXRhPQpzZXRfaWQsIGlkICkKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZXhjOgorICAgICAgICAgICAgbXNnID0zRCAnSERBIHB1cmdlIGZhaWxlZCAoZW5j
b2RlZDogJXMsIGRlY29kZWQ6ICVzKTogJXMnICUgKCA9CmRhdGFzZXRfaWQsIGlkLCBleGMgKQog
ICAgICAgICAgICAgbG9nLmV4Y2VwdGlvbiggbXNnICkKICAgICAgICAgICAgIHRyYW5zLmxvZ19l
dmVudCggbXNnICkKICAgICAgICAgICAgIG1lc3NhZ2UgPTNEICdEYXRhc2V0IHJlbW92YWwgZnJv
bSBkaXNrIGZhaWxlZCcKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50
cmFsL2NvbW1pdHMvN2IwYzMyODI4Mjk4LwpDaGFuZ2VzZXQ6ICAgN2IwYzMyODI4Mjk4CkJyYW5j
aDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBndWVybGVyCkRhdGU6ICAgICAgICAy
MDE1LTA0LTA3IDE4OjExOjM5KzAwOjAwClN1bW1hcnk6ICAgICBGaXggcmUtcnVuIG9wdGlvbiBm
b3IgZGF0YSBtYW5hZ2VyIHRvb2xzCkFmZmVjdGVkICM6ICAxIGZpbGUKCmRpZmYgLXIgYzhlNTgx
ZDBkNWViNTVlZjMzMjNjMTgxMDA0ZjlmNzhkM2IyYWMxNyAtciA3YjBjMzI4MjgyOTg0NDEwNjdh
ZDZmMj0KMDNjMzgwNTA5Y2YxNjlkYzQgdGVtcGxhdGVzL3dlYmFwcHMvZ2FsYXh5L3Rvb2xfZm9y
bS5tYWtvCi0tLSBhL3RlbXBsYXRlcy93ZWJhcHBzL2dhbGF4eS90b29sX2Zvcm0ubWFrbworKysg
Yi90ZW1wbGF0ZXMvd2ViYXBwcy9nYWxheHkvdG9vbF9mb3JtLm1ha28KQEAgLTEwLDYgKzEwLDcg
QEAKICAgICAgICAgIyMgVGhpcyBhdm9pZHMgbWFraW5nIHR3byBzZXBhcmF0ZSByZXF1ZXN0cyBz
aW5jZSB0aGUgY2xhc3NpYyBmb3JtPQogcmVxdWlyZXMgdGhlIG1ha28gYW55d2F5LgogICAgICAg
ICBwYXJhbXMgPTNEIGRpY3QodHJhbnMucmVxdWVzdC5wYXJhbXMpCiAgICAgICAgIHBhcmFtc1sn
X19kYXRhc2V0X2lkX18nXSA9M0QgcGFyYW1zLmdldCgnaWQnLCBOb25lKQorICAgICAgICBwYXJh
bXNbJ19fam9iX2lkX18nXSA9M0QgcGFyYW1zLmdldCgnam9iX2lkJywgTm9uZSkKICAgICAgICAg
c2VsZi5mb3JtX2NvbmZpZyA9M0QgdG9vbC50b19qc29uKHRyYW5zLCBwYXJhbXMpCiAgICAgICAg
IHNlbGYuZm9ybV9jb25maWcudXBkYXRlKHsKICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAg
ICAgOiB0b29sLmlkLAoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRy
YWwvY29tbWl0cy80YWU3OGU0MGQyNDcvCkNoYW5nZXNldDogICA0YWU3OGU0MGQyNDcKQnJhbmNo
OiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGptY2hpbHRvbgpEYXRlOiAgICAgICAg
MjAxNS0wNC0wOCAxMzo0NzoxMCswMDowMApTdW1tYXJ5OiAgICAgRml4IGRvY3VtZW50YXRpb24g
Zm9yIHJlYWwgdXNlciBwYXJhbWV0ZXJzLgoKSSB0aGluayB3aGF0IHdhcyBkb2N1bWVudGVkIHdh
cyB0aGUgaWRlYWwgY2FzZSAtIHdoaWNoIHdvdWxkIGJlIGdyZWF0IGlmIHRoPQplc2UgY291bGQg
YmUgc2V0IHBlciBkZXN0aW5hdGlvbiAtIGJ1dCB0aGV5IGNhbm5vdCBiZSBzbyB0aGV5IHNob3Vs
ZG4ndCBiZSA9CmRvY3VtZW50ZWQgdGhhdCB3YXkuCgpEb2N1bWVudGF0aW9uIGJyb2tlbiBpbiBo
dHRwczovL2dpdGh1Yi5jb20vZ2FsYXh5cHJvamVjdC9nYWxheHkvY29tbWl0LzliNzc9Cjc1YmUw
MzcyOGY3MjRjMDI1YTgzYmM3ZmZhOWUyOGMyYzkzMi4KQWZmZWN0ZWQgIzogIDIgZmlsZXMKCmRp
ZmYgLXIgN2IwYzMyODI4Mjk4NDQxMDY3YWQ2ZjIwM2MzODA1MDljZjE2OWRjNCAtciA0YWU3OGU0
MGQyNDc1ZjUzNjMwMTRiZT0KYWQ2Y2M3NzJlZmM5OGQ0ZDUgY29uZmlnL2dhbGF4eS5pbmkuc2Ft
cGxlCi0tLSBhL2NvbmZpZy9nYWxheHkuaW5pLnNhbXBsZQorKysgYi9jb25maWcvZ2FsYXh5Lmlu
aS5zYW1wbGUKQEAgLTk2MCw2ICs5NjAsMTcgQEAKICMgYWx3YXlzLCBvbnN1Y2Nlc3MsIG5ldmVy
CiAjY2xlYW51cF9qb2IgPTNEIGFsd2F5cwo9MjAKKyMgRm9yIHNpdGVzIHdoZXJlIGFsbCB1c2Vy
cyBpbiBHYWxheHkgbWF0Y2ggdXNlcnMgb24gdGhlIHN5c3RlbSBvbiB3aGljaCBHPQphbGF4eQor
IyBydW5zLCB0aGUgRFJNQUEgam9iIHJ1bm5lciBjYW4gYmUgY29uZmlndXJlZCB0byBzdWJtaXQg
am9icyB0byB0aGUgRFJNIGE9CnMgdGhlCisjIGFjdHVhbCB1c2VyIGluc3RlYWQgb2YgYXMgdGhl
IHVzZXIgcnVubmluZyB0aGUgR2FsYXh5IHNlcnZlciBwcm9jZXNzLiAgRj0Kb3IKKyMgZGV0YWls
cyBvbiB0aGVzZSBvcHRpb25zLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gYXQ6CisjCisjIGh0dHA6
Ly9nYWxheHlwcm9qZWN0Lm9yZy93aWtpL0FkbWluL0NvbmZpZy9QZXJmb3JtYW5jZS9DbHVzdGVy
CisjCisjZHJtYWFfZXh0ZXJuYWxfcnVuam9iX3NjcmlwdCA9M0Qgc2NyaXB0cy9kcm1hYV9leHRl
cm5hbF9ydW5uZXIucHkKKyNkcm1hYV9leHRlcm5hbF9raWxsam9iX3NjcmlwdCA9M0Qgc2NyaXB0
cy9kcm1hYV9leHRlcm5hbF9raWxsZXIucHkKKyNleHRlcm5hbF9jaG93bl9zY3JpcHQgPTNEIHNj
cmlwdHMvZXh0ZXJuYWxfY2hvd25fc2NyaXB0LnB5CisKICMgRmlsZSB0byBzb3VyY2UgdG8gc2V0
IHVwIHRoZSBlbnZpcm9ubWVudCB3aGVuIHJ1bm5pbmcgam9icy4gIEJ5IGRlZmF1bHQsPQogdGhl
CiAjIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBHYWxheHkgc2VydmVyIHN0YXJ0cyBpcyB1c2Vk
IHdoZW4gcnVubmluZyBqb2JzCiAjIGxvY2FsbHksIGFuZCB0aGUgZW52aXJvbm1lbnQgc2V0IHVw
IHBlciB0aGUgRFJNJ3Mgc3VibWlzc2lvbiBtZXRob2QgYW5kCgpkaWZmIC1yIDdiMGMzMjgyODI5
ODQ0MTA2N2FkNmYyMDNjMzgwNTA5Y2YxNjlkYzQgLXIgNGFlNzhlNDBkMjQ3NWY1MzYzMDE0YmU9
CmFkNmNjNzcyZWZjOThkNGQ1IGNvbmZpZy9qb2JfY29uZi54bWwuc2FtcGxlX2FkdmFuY2VkCi0t
LSBhL2NvbmZpZy9qb2JfY29uZi54bWwuc2FtcGxlX2FkdmFuY2VkCisrKyBiL2NvbmZpZy9qb2Jf
Y29uZi54bWwuc2FtcGxlX2FkdmFuY2VkCkBAIC0yNTIsMTAgKzI1Miw3IEBACiAgICAgICAgICAg
LS0+PC9kZXN0aW5hdGlvbj48ZGVzdGluYXRpb24gaWQ9M0QicmVhbF91c2VyX2NsdXN0ZXIiIHJ1
bm5lcj0zRD0KImRybWFhIj4KLSAgICAgICAgICAgIDwhLS0gVE9ETzogVGhlIHJlYWwgdXNlciBv
cHRpb25zIHNob3VsZCBtYXliZSBub3QgYmUgY29uc2lkZXJlPQpkIHJ1bm5lciBwYXJhbXMuIC0t
PgotICAgICAgICAgICAgPHBhcmFtIGlkPTNEImdhbGF4eV9leHRlcm5hbF9ydW5qb2Jfc2NyaXB0
Ij5zY3JpcHRzL2RybWFhX2V4dGU9CnJuYWxfcnVubmVyLnB5PC9wYXJhbT4KLSAgICAgICAgICAg
IDxwYXJhbSBpZD0zRCJnYWxheHlfZXh0ZXJuYWxfa2lsbGpvYl9zY3JpcHQiPnNjcmlwdHMvZHJt
YWFfZXh0PQplcm5hbF9raWxsZXIucHk8L3BhcmFtPgotICAgICAgICAgICAgPHBhcmFtIGlkPTNE
ImdhbGF4eV9leHRlcm5hbF9jaG93bl9zY3JpcHQiPnNjcmlwdHMvZXh0ZXJuYWxfY2g9Cm93bl9z
Y3JpcHQucHk8L3BhcmFtPgorICAgICAgICAgICAgPCEtLSBNYWtlIHN1cmUgdG8gc2V0dXAgMyBy
ZWFsIHVzZXIgcGFyYW1ldGVycyBpbiBnYWxheHkuaW5pLiA9Ci0tPjwvZGVzdGluYXRpb24+PGRl
c3RpbmF0aW9uIGlkPTNEImR5bmFtaWMiIHJ1bm5lcj0zRCJkeW5hbWljIj48IS0tIEEgZGVzdD0K
aW5hdGlvbiB0aGF0IHJlcHJlc2VudHMgYSBtZXRob2QgaW4gdGhlIGR5bmFtaWMgcnVubmVyLiAt
LT4KCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMv
NDc0NDQ1MWEzNDA2LwpDaGFuZ2VzZXQ6ICAgNDc0NDQ1MWEzNDA2CkJyYW5jaDogICAgICByZWxl
YXNlXzE1LjAzClVzZXI6ICAgICAgICBkYW5ub24KRGF0ZTogICAgICAgIDIwMTUtMDQtMDggMTY6
NTA6MzQrMDA6MDAKU3VtbWFyeTogICAgIFBvdGVudGlhbCBmaXggZm9yIHJlY2VudCB1d3NnaSB0
b29sc2hlZCBkYXRhYmFzZSBpc3N1ZXMuICBJbiBhPQpueSBldmVudCwgdGhpcyBjdXJyZW50IHBv
b2wgZGlzcG9zYWwgaXMgZGVmaW5pdGVseSBicm9rZW4gKGFuZCBoaWRkZW4gZnJvbSA9CnZpZXcg
ZHVlIHRvIGJsYW5rZXQgcGFzc2luZyBleGNlcHQpIGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0
aW9uLgpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDRhZTc4ZTQwZDI0NzVmNTM2MzAxNGJl
YWQ2Y2M3NzJlZmM5OGQ0ZDUgLXIgNDc0NDQ1MWEzNDA2MzhhNjMwMWZmMzA9CmQ3N2QyNGI1N2E0
MWJkZjIwIGxpYi9nYWxheHkvd2ViYXBwcy90b29sX3NoZWQvYnVpbGRhcHAucHkKLS0tIGEvbGli
L2dhbGF4eS93ZWJhcHBzL3Rvb2xfc2hlZC9idWlsZGFwcC5weQorKysgYi9saWIvZ2FsYXh5L3dl
YmFwcHMvdG9vbF9zaGVkL2J1aWxkYXBwLnB5CkBAIC0xNTMsOSArMTUzLDkgQEAKICAgICAgICAg
ICAgIHdlYmFwcCA9M0Qgd3JhcF9pbl9zdGF0aWMoIHdlYmFwcCwgZ2xvYmFsX2NvbmYsICoqa3dh
cmdzICkKICAgICAjIENsb3NlIGFueSBwb29sZWQgZGF0YWJhc2UgY29ubmVjdGlvbnMgYmVmb3Jl
IGZvcmtpbmcKICAgICB0cnk6Ci0gICAgICAgIGdhbGF4eS53ZWJhcHBzLnRvb2xfc2hlZC5tb2Rl
bC5tYXBwaW5nLm1ldGFkYXRhLmVuZ2luZS5jb25uZWN0aW9uXz0KcHJvdmlkZXIuX3Bvb2wuZGlz
cG9zZSgpCisgICAgICAgIGdhbGF4eS53ZWJhcHBzLnRvb2xfc2hlZC5tb2RlbC5tYXBwaW5nLm1l
dGFkYXRhLmJpbmQuZGlzcG9zZSgpCiAgICAgZXhjZXB0OgotICAgICAgICBwYXNzCisgICAgICAg
IGxvZy5leGNlcHRpb24oIlVuYWJsZSB0byBkaXNwb3NlIG9mIHBvb2xlZCB0b29sX3NoZWQgbW9k
ZWwgZGF0YWJhcz0KZSBjb25uZWN0aW9ucy4iKQogICAgICMgUmV0dXJuCiAgICAgcmV0dXJuIHdl
YmFwcAo9MjAKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2Nv
bW1pdHMvZGNlZTIwN2ViYWRhLwpDaGFuZ2VzZXQ6ICAgZGNlZTIwN2ViYWRhCkJyYW5jaDogICAg
ICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBkYW5ub24KRGF0ZTogICAgICAgIDIwMTUtMDQt
MDggMTY6NTM6MzIrMDA6MDAKU3VtbWFyeTogICAgIFNpbWlsYXIgZml4IGFzIHRoZSBwcmV2aW91
cyAtLSBHYWxheHkgd2Fzbid0IGRpc3Bvc2luZyBvZiBwb29sPQplZCBjb25uZWN0aW9ucyBwcmlv
ciB0byByZXR1cm5pbmcgd2ViYXBwIGFuZCAocG90ZW50aWFsKSBmb3JraW5nLgpBZmZlY3RlZCAj
OiAgMSBmaWxlCgpkaWZmIC1yIDQ3NDQ0NTFhMzQwNjM4YTYzMDFmZjMwZDc3ZDI0YjU3YTQxYmRm
MjAgLXIgZGNlZTIwN2ViYWRhNGI5YjNiYTM1ZTQ9CmI5N2VhMjQwMTg4YjFjNmNiIGxpYi9nYWxh
eHkvd2ViYXBwcy9nYWxheHkvYnVpbGRhcHAucHkKLS0tIGEvbGliL2dhbGF4eS93ZWJhcHBzL2dh
bGF4eS9idWlsZGFwcC5weQorKysgYi9saWIvZ2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2J1aWxkYXBw
LnB5CkBAIC0xMDYsMTMgKzEwNiwxMyBAQAogICAgICAgICBwYWNrX3NjcmlwdHMoKQogICAgICMg
Q2xvc2UgYW55IHBvb2xlZCBkYXRhYmFzZSBjb25uZWN0aW9ucyBiZWZvcmUgZm9ya2luZwogICAg
IHRyeToKLSAgICAgICAgZ2FsYXh5Lm1vZGVsLm1hcHBpbmcubWV0YWRhdGEuZW5naW5lLmNvbm5l
Y3Rpb25fcHJvdmlkZXIuX3Bvb2wuZGlzPQpwb3NlKCkKKyAgICAgICAgZ2FsYXh5Lm1vZGVsLm1h
cHBpbmcubWV0YWRhdGEuYmluZC5kaXNwb3NlKCkKICAgICBleGNlcHQ6Ci0gICAgICAgIHBhc3MK
KyAgICAgICAgbG9nLmV4Y2VwdGlvbigiVW5hYmxlIHRvIGRpc3Bvc2Ugb2YgcG9vbGVkIGdhbGF4
eSBtb2RlbCBkYXRhYmFzZSBjPQpvbm5lY3Rpb25zLiIpCiAgICAgdHJ5OgotICAgICAgICBnYWxh
eHkubW9kZWwudG9vbF9zaGVkX2luc3RhbGwubWFwcGluZy5tZXRhZGF0YS5lbmdpbmUuY29ubmVj
dGlvbl89CnByb3ZpZGVyLl9wb29sLmRpc3Bvc2UoKQorICAgICAgICBnYWxheHkubW9kZWwudG9v
bF9zaGVkX2luc3RhbGwubWFwcGluZy5tZXRhZGF0YS5iaW5kLmRpc3Bvc2UoKQogICAgIGV4Y2Vw
dDoKLSAgICAgICAgcGFzcworICAgICAgICBsb2cuZXhjZXB0aW9uKCJVbmFibGUgdG8gZGlzcG9z
ZSBvZiBwb29sZWQgdG9vbHNoZWQgaW5zdGFsbCBtb2RlbCA9CmRhdGFiYXNlIGNvbm5lY3Rpb25z
LiIpCj0yMAogICAgIGlmIG5vdCBhcHAuY29uZmlnLmlzX3V3c2dpOgogICAgICAgICBwb3N0Zm9y
a19zZXR1cCgpCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9j
b21taXRzL2Y4OTFjZjVmNWFhNC8KQ2hhbmdlc2V0OiAgIGY4OTFjZjVmNWFhNApCcmFuY2g6ICAg
ICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAgICAgZGFubm9uCkRhdGU6ICAgICAgICAyMDE1LTA0
LTA4IDE4OjQ2OjU1KzAwOjAwClN1bW1hcnk6ICAgICBBbm90aGVyIHBvb2wgZGlzcG9zYWwgZml4
LCBmb3IgcmVwb3J0cy4KQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAtciBkY2VlMjA3ZWJhZGE0
YjliM2JhMzVlNGI5N2VhMjQwMTg4YjFjNmNiIC1yIGY4OTFjZjVmNWFhNGE5ZGFjZTY0YzRkPQpl
ZWMwYmM2NzhhM2FhYjk3MCBsaWIvZ2FsYXh5L3dlYmFwcHMvcmVwb3J0cy9idWlsZGFwcC5weQot
LS0gYS9saWIvZ2FsYXh5L3dlYmFwcHMvcmVwb3J0cy9idWlsZGFwcC5weQorKysgYi9saWIvZ2Fs
YXh5L3dlYmFwcHMvcmVwb3J0cy9idWlsZGFwcC5weQpAQCAtNzAsMTIgKzcwLDEzIEBACiAgICAg
ICAgIHdlYmFwcCA9M0Qgd3JhcF9pbl9zdGF0aWMoIHdlYmFwcCwgZ2xvYmFsX2NvbmYsICoqa3dh
cmdzICkKICAgICAjIENsb3NlIGFueSBwb29sZWQgZGF0YWJhc2UgY29ubmVjdGlvbnMgYmVmb3Jl
IGZvcmtpbmcKICAgICB0cnk6Ci0gICAgICAgIGdhbGF4eS5tb2RlbC5tYXBwaW5nLm1ldGFkYXRh
LmVuZ2luZS5jb25uZWN0aW9uX3Byb3ZpZGVyLl9wb29sLmRpcz0KcG9zZSgpCisgICAgICAgIGdh
bGF4eS5tb2RlbC5tYXBwaW5nLm1ldGFkYXRhLmJpbmQuZGlzcG9zZSgpCiAgICAgZXhjZXB0Ogot
ICAgICAgICBwYXNzCisgICAgICAgIGxvZy5leGNlcHRpb24oIlVuYWJsZSB0byBkaXNwb3NlIG9m
IHBvb2xlZCBnYWxheHkgbW9kZWwgZGF0YWJhc2UgYz0Kb25uZWN0aW9ucy4iKQogICAgICMgUmV0
dXJuCiAgICAgcmV0dXJuIHdlYmFwcAo9MjAKKwogZGVmIHdyYXBfaW5fbWlkZGxld2FyZSggYXBw
LCBnbG9iYWxfY29uZiwgKipsb2NhbF9jb25mICk6CiAgICAgIiIiQmFzZWQgb24gdGhlIGNvbmZp
Z3VyYXRpb24gd3JhcCBgYXBwYCBpbiBhIHNldCBvZiBjb21tb24gYW5kIHVzZWZ1bD0KIG1pZGRs
ZXdhcmUuIiIiCiAgICAgIyBNZXJnZSB0aGUgZ2xvYmFsIGFuZCBsb2NhbCBjb25maWd1cmF0aW9u
cwoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy85
NDM5Y2VkMGE1YzEvCkNoYW5nZXNldDogICA5NDM5Y2VkMGE1YzEKQnJhbmNoOiAgICAgIHJlbGVh
c2VfMTUuMDMKVXNlcjogICAgICAgIG5hdGVmb28KRGF0ZTogICAgICAgIDIwMTUtMDQtMTAgMjA6
Mjk6MTgrMDA6MDAKU3VtbWFyeTogICAgIEVuYWJsZSB1c2Ugb2YgbmdpbnhfdXBsb2FkX21vZHVs
ZSBmb3IgdGhlIGpvYiBmaWxlcyBhcGkuCkFmZmVjdGVkICM6ICA0IGZpbGVzCgpkaWZmIC1yIGY4
OTFjZjVmNWFhNGE5ZGFjZTY0YzRkZWVjMGJjNjc4YTNhYWI5NzAgLXIgOTQzOWNlZDBhNWMxYjFh
Y2Q3ZjQ5ODc9CmY1ODIzYmI2YmM4MGVmNTdmIGNvbmZpZy9nYWxheHkuaW5pLnNhbXBsZQotLS0g
YS9jb25maWcvZ2FsYXh5LmluaS5zYW1wbGUKKysrIGIvY29uZmlnL2dhbGF4eS5pbmkuc2FtcGxl
CkBAIC01ODAsNiArNTgwLDEzIEBACiAjIHJlcXVlc3RzLgogI25naW54X3VwbG9hZF9wYXRoID0z
RCBGYWxzZQo9MjAKKyMgR2FsYXh5IGNhbiBhbHNvIHVzZSBuZ2lueF91cGxvYWRfbW9kdWxlIHRv
IHJlY2VpdmUgZmlsZXMgc3RhZ2VkIG91dCB1cG9uPQogam9iCisjIGNvbXBsZXRpb24gYnkgcmVt
b3RlIGpvYiBydW5uZXJzIChpLmUuIFB1bHNhcikgdGhhdCBpbml0aWF0ZSBzdGFnaW5nCisjIG9w
ZXJhdGlvbnMgb24gdGhlIHJlbW90ZSBlbmQuICBTZWUgdGhlIEdhbGF4eSBuZ2lueCBkb2N1bWVu
dGF0aW9uIGZvciB0aGUKKyMgY29ycmVzcG9uZGluZyBuZ2lueCBjb25maWd1cmF0aW9uLgorI25n
aW54X3VwbG9hZF9qb2JfZmlsZXNfc3RvcmUgPTNEIEZhbHNlCisjbmdpbnhfdXBsb2FkX2pvYl9m
aWxlc19wYXRoID0zRCBGYWxzZQorCiAjIEhhdmUgR2FsYXh5IG1hbmFnZSBkeW5hbWljIHByb3h5
IGNvbXBvbmVudCBmb3Igcm91dGluZyByZXF1ZXN0cyB0byBvdGhlcgogIyBzZXJ2aWNlcyBiYXNl
ZCBvbiBHYWxheHkncyBzZXNzaW9uIGNvb2tpZS4gIEl0IHdpbGwgYXR0ZW1wdCB0byBkbyB0aGlz
IGJ5CiAjIGRlZmF1bHQgdGhvdWdoIHlvdSBkbyBuZWVkIHRvIGluc3RhbGwgbm9kZStucG0gYW5k
IGRvIGFuIG5wbSBpbnN0YWxsIGZyb20KCmRpZmYgLXIgZjg5MWNmNWY1YWE0YTlkYWNlNjRjNGRl
ZWMwYmM2NzhhM2FhYjk3MCAtciA5NDM5Y2VkMGE1YzFiMWFjZDdmNDk4Nz0KZjU4MjNiYjZiYzgw
ZWY1N2YgbGliL2dhbGF4eS9jb25maWcucHkKLS0tIGEvbGliL2dhbGF4eS9jb25maWcucHkKKysr
IGIvbGliL2dhbGF4eS9jb25maWcucHkKQEAgLTI5Myw2ICsyOTMsOCBAQAogICAgICAgICBzZWxm
Lm5naW54X3hfYXJjaGl2ZV9maWxlc19iYXNlID0zRCBrd2FyZ3MuZ2V0KCAnbmdpbnhfeF9hcmNo
aXZlX2Y9CmlsZXNfYmFzZScsIEZhbHNlICkKICAgICAgICAgc2VsZi5uZ2lueF91cGxvYWRfc3Rv
cmUgPTNEIGt3YXJncy5nZXQoICduZ2lueF91cGxvYWRfc3RvcmUnLCBGYWxzPQplICkKICAgICAg
ICAgc2VsZi5uZ2lueF91cGxvYWRfcGF0aCA9M0Qga3dhcmdzLmdldCggJ25naW54X3VwbG9hZF9w
YXRoJywgRmFsc2UgKQorICAgICAgICBzZWxmLm5naW54X3VwbG9hZF9qb2JfZmlsZXNfc3RvcmUg
PTNEIGt3YXJncy5nZXQoICduZ2lueF91cGxvYWRfam89CmJfZmlsZXNfc3RvcmUnLCBGYWxzZSAp
CisgICAgICAgIHNlbGYubmdpbnhfdXBsb2FkX2pvYl9maWxlc19wYXRoID0zRCBrd2FyZ3MuZ2V0
KCAnbmdpbnhfdXBsb2FkX2pvYj0KX2ZpbGVzX3BhdGgnLCBGYWxzZSApCiAgICAgICAgIGlmIHNl
bGYubmdpbnhfdXBsb2FkX3N0b3JlOgogICAgICAgICAgICAgc2VsZi5uZ2lueF91cGxvYWRfc3Rv
cmUgPTNEIG9zLnBhdGguYWJzcGF0aCggc2VsZi5uZ2lueF91cGxvYWQ9Cl9zdG9yZSApCiAgICAg
ICAgIHNlbGYub2JqZWN0X3N0b3JlID0zRCBrd2FyZ3MuZ2V0KCAnb2JqZWN0X3N0b3JlJywgJ2Rp
c2snICkKCmRpZmYgLXIgZjg5MWNmNWY1YWE0YTlkYWNlNjRjNGRlZWMwYmM2NzhhM2FhYjk3MCAt
ciA5NDM5Y2VkMGE1YzFiMWFjZDdmNDk4Nz0KZjU4MjNiYjZiYzgwZWY1N2YgbGliL2dhbGF4eS9q
b2JzL3J1bm5lcnMvcHVsc2FyLnB5Ci0tLSBhL2xpYi9nYWxheHkvam9icy9ydW5uZXJzL3B1bHNh
ci5weQorKysgYi9saWIvZ2FsYXh5L2pvYnMvcnVubmVycy9wdWxzYXIucHkKQEAgLTM0Miw3ICsz
NDIsMTIgQEAKPTIwCiAgICAgICAgIGVuY29kZWRfam9iX2lkID0zRCBzZWxmLmFwcC5zZWN1cml0
eS5lbmNvZGVfaWQoam9iX2lkKQogICAgICAgICBqb2Jfa2V5ID0zRCBzZWxmLmFwcC5zZWN1cml0
eS5lbmNvZGVfaWQoIGpvYl9pZCwga2luZD0zRCJqb2JzX2ZpbGU9CnMiICkKLSAgICAgICAgZmls
ZXNfZW5kcG9pbnQgPTNEICIlcy9hcGkvam9icy8lcy9maWxlcz9qb2Jfa2V5PTNEJXMiICUgKAor
ICAgICAgICBlbmRwb2ludF9iYXNlID0zRCAiJXMvYXBpL2pvYnMvJXM/am9iX2tleT0zRCVzIgor
ICAgICAgICBpZiBzZWxmLmFwcC5jb25maWcubmdpbnhfdXBsb2FkX2pvYl9maWxlc19wYXRoOgor
ICAgICAgICAgICAgZW5kcG9pbnRfYmFzZSA9M0QgIiVzIiArIFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLmFwcC5jb25maWcubmdpbnhfdXBsb2FkX2pvYl9maWxlc19wYXRoICsg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/am9iX2lkPTNEJXMmam9iX2tleT0zRCVz
IgorICAgICAgICBmaWxlc19lbmRwb2ludCA9M0QgZW5kcG9pbnRfYmFzZSAlICgKICAgICAgICAg
ICAgIHNlbGYuZ2FsYXh5X3VybCwKICAgICAgICAgICAgIGVuY29kZWRfam9iX2lkLAogICAgICAg
ICAgICAgam9iX2tleQoKZGlmZiAtciBmODkxY2Y1ZjVhYTRhOWRhY2U2NGM0ZGVlYzBiYzY3OGEz
YWFiOTcwIC1yIDk0MzljZWQwYTVjMWIxYWNkN2Y0OTg3PQpmNTgyM2JiNmJjODBlZjU3ZiBsaWIv
Z2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2FwaS9qb2JfZmlsZXMucHkKLS0tIGEvbGliL2dhbGF4eS93
ZWJhcHBzL2dhbGF4eS9hcGkvam9iX2ZpbGVzLnB5CisrKyBiL2xpYi9nYWxheHkvd2ViYXBwcy9n
YWxheHkvYXBpL2pvYl9maWxlcy5weQpAQCAtODMsNyArODMsMTkgQEAKICAgICAgICAgc2VsZi5f
X2NoZWNrX2pvYl9jYW5fd3JpdGVfdG9fcGF0aCggdHJhbnMsIGpvYiwgcGF0aCApCj0yMAogICAg
ICAgICAjIElzIHRoaXMgd3JpdGluZyBhbiB1bm5lZWRlZCBmaWxlPyBTaG91bGQgdGhpcyBqdXN0
IGNvcHkgaW4gUHl0aG89Cm4/Ci0gICAgICAgIGlucHV0X2ZpbGUgPTNEIHBheWxvYWQuZ2V0KCAi
ZmlsZSIsIHBheWxvYWQuZ2V0KCAiX19maWxlIiwgTm9uZSApID0KKS5maWxlCisgICAgICAgIGlm
ICdfX2ZpbGVfcGF0aCcgaW4gcGF5bG9hZDoKKyAgICAgICAgICAgIGZpbGVfcGF0aCA9M0QgcGF5
bG9hZC5nZXQoICdfX2ZpbGVfcGF0aCcgKQorICAgICAgICAgICAgdXBsb2FkX3N0b3JlID0zRCB0
cmFucy5hcHAuY29uZmlnLm5naW54X3VwbG9hZF9qb2JfZmlsZXNfc3RvcmUKKyAgICAgICAgICAg
IGFzc2VydCB1cGxvYWRfc3RvcmUsICggIlJlcXVlc3QgYXBwZWFycyB0byBoYXZlIGJlZW4gcHJv
Y2Vzc2VkPQogYnkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgbmdpbnhf
dXBsb2FkX21vZHVsZSBidXQgR2FsYXh5IGlzIG5vdCIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiBjb25maWd1cmVkIHRvIHJlY29nbml6ZSBpdCIgKQorICAgICAgICAgICAg
YXNzZXJ0IGZpbGVfcGF0aC5zdGFydHN3aXRoKCB1cGxvYWRfc3RvcmUgKSwgXAorICAgICAgICAg
ICAgICAgICAgICAoICJGaWxlbmFtZSBwcm92aWRlZCBieSBuZ2lueCAoJXMpIGlzIG5vdCBpbiBj
b3JyZWN0IgorICAgICAgICAgICAgICAgICAgICAgICIgZGlyZWN0b3J5ICglcykiICUgKCBmaWxl
X3BhdGgsIHVwbG9hZF9zdG9yZSApICkKKyAgICAgICAgICAgIGlucHV0X2ZpbGUgPTNEIG9wZW4o
IGZpbGVfcGF0aCApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbnB1dF9maWxlID0zRCBw
YXlsb2FkLmdldCggImZpbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXlsb2FkLmdldCggIl9fZmlsZSIsIE5vbmUgKSApLmZpbGUKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgc2h1dGlsLmNvcHlmaWxlKCBpbnB1dF9maWxlLm5hbWUsIHBhdGggKQogICAgICAg
ICBmaW5hbGx5OgoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwv
Y29tbWl0cy8wNjE1NDgwMmEzNzEvCkNoYW5nZXNldDogICAwNjE1NDgwMmEzNzEKQnJhbmNoOiAg
ICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIG5hdGVmb28KRGF0ZTogICAgICAgIDIwMTUt
MDQtMTAgMjA6MzA6MzErMDA6MDAKU3VtbWFyeTogICAgIE1vdmUsIHJhdGhlciB0aGFuIGNvcHkg
ZmlsZXMgc3RhZ2VkIGJhY2sgdG8gR2FsYXh5IHZpYSB0aGUgam9iPQogZmlsZXMKYXBpLiBNb3Zp
bmcgaXMgYSByZW5hbWUgd2hlbiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmUgb24gdGhl
IHNhbWUKZmlsZXN5c3RlbSwgd2hpY2ggaXMgbmVhcmx5IGluc3RhbnRhbmVvdXMgYW5kIGdyZWF0
bHkgcmVkdWNlcyB0aGUKcG9zc2liaWxpdHkgZm9yIGZhaWx1cmUgZHVlIHRvIG1pZC1jb3B5IHJl
c3RhcnRzLgpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDk0MzljZWQwYTVjMWIxYWNkN2Y0
OTg3ZjU4MjNiYjZiYzgwZWY1N2YgLXIgMDYxNTQ4MDJhMzcxYzZmMmFhMGZmMGU9CjEyNWU4OGYy
NTQ3YjhmMTA5IGxpYi9nYWxheHkvd2ViYXBwcy9nYWxheHkvYXBpL2pvYl9maWxlcy5weQotLS0g
YS9saWIvZ2FsYXh5L3dlYmFwcHMvZ2FsYXh5L2FwaS9qb2JfZmlsZXMucHkKKysrIGIvbGliL2dh
bGF4eS93ZWJhcHBzL2dhbGF4eS9hcGkvam9iX2ZpbGVzLnB5CkBAIC05Nyw3ICs5Nyw3IEBACiAg
ICAgICAgICAgICBpbnB1dF9maWxlID0zRCBwYXlsb2FkLmdldCggImZpbGUiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLmdldCggIl9fZmlsZSIsIE5vbmUg
KSApLmZpbGUKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2h1dGlsLmNvcHlmaWxlKCBpbnB1
dF9maWxlLm5hbWUsIHBhdGggKQorICAgICAgICAgICAgc2h1dGlsLm1vdmUoIGlucHV0X2ZpbGUu
bmFtZSwgcGF0aCApCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBpbnB1dF9maWxlLmNs
b3NlKCkKICAgICAgICAgcmV0dXJuIHsibWVzc2FnZSI6ICJvayJ9CgoKaHR0cHM6Ly9iaXRidWNr
ZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzLzRiZWM2ZjAxMGE4OS8KQ2hhbmdl
c2V0OiAgIDRiZWM2ZjAxMGE4OQpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMwpVc2VyOiAgICAg
ICAgZGFuCkRhdGU6ICAgICAgICAyMDE1LTAzLTE3IDE4OjA4OjA2KzAwOjAwClN1bW1hcnk6ICAg
ICBTb21lIGJhc2ljIENhY2hpbmcgZm9yIHRoZSBHZW5vbWVTcGFjZSBFeHBvcnQgVG9vbCdzIGxp
c3Qgb2YgYT0KdmFpbGFibGUgdGFyZ2V0IGRpcmVjdG9yaWVzLCBzbyB3ZSBkb24ndCBoYXZlIHRv
IHJlbG9hZCBhbmQgZG93bmxvYWQgZXZlcnl0PQpoaW5nIGV2ZXJ5IHRpbWUsIGVzcGVjaWFsbHkg
bm93IHRoYXQgd2UgYXJlIGNhbGxpbmcgdGhlIHBhcmFtZXRlcidzIGdldCBvcHQ9CmlvbnMgbWV0
aG9kIDUgdGltZXMgKDYgb24gcmVsb2FkKSB3aGVuIGEgdXNlciBsb2FkcyB0aGUgdG9vbCBpbnRl
cmZhY2UuIEZvcj0KIG5vdywgd2UnbGwgdXNlIDMwIHNlY29uZHMgYXMgdGhlIGNhY2hlIHZhbGlk
IHRpbWUgbGVuZ3RoLgoKKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZmViMGEyNmY4ZDI0YzZl
YjAwOGMwMmYwMDIzMDc3N2Q5NzhhNjJjYikKQWZmZWN0ZWQgIzogIDEgZmlsZQoKZGlmZiAtciAw
NjE1NDgwMmEzNzFjNmYyYWEwZmYwZTEyNWU4OGYyNTQ3YjhmMTA5IC1yIDRiZWM2ZjAxMGE4OWFi
MGFjYzNkNjcyPQphYjBjZTIwNGUxZDFkNmViMiB0b29scy9nZW5vbWVzcGFjZS9nZW5vbWVzcGFj
ZV9leHBvcnRlci5weQotLS0gYS90b29scy9nZW5vbWVzcGFjZS9nZW5vbWVzcGFjZV9leHBvcnRl
ci5weQorKysgYi90b29scy9nZW5vbWVzcGFjZS9nZW5vbWVzcGFjZV9leHBvcnRlci5weQpAQCAt
NCw2ICs0LDcgQEAKIGltcG9ydCBiaW5hc2NpaQogaW1wb3J0IGNnaQogaW1wb3J0IGNvb2tpZWxp
YgoraW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgaGFzaGxpYgogaW1wb3J0IGpzb24KIGltcG9ydCBs
b2dnaW5nCkBAIC0yMCw2ICsyMSwxMyBAQAo9MjAKIENIVU5LX1NJWkUgPTNEIDIqKjIwICMxbWIK
PTIwCisjIFNvbWUgYmFzaWMgQ2FjaGluZywgc28gd2UgZG9uJ3QgaGF2ZSB0byByZWxvYWQgYW5k
IGRvd25sb2FkIGV2ZXJ5dGhpbmcgZT0KdmVyeSB0aW1lLAorIyBlc3BlY2lhbGx5IG5vdyB0aGF0
IHdlIGFyZSBjYWxsaW5nIHRoZSBwYXJhbWV0ZXIncyBnZXQgb3B0aW9ucyBtZXRob2QgNSA9CnRp
bWVzCisjICg2IG9uIHJlbG9hZCkgd2hlbiBhIHVzZXIgbG9hZHMgdGhlIHRvb2wgaW50ZXJmYWNl
CisjIEZvciBub3csIHdlJ2xsIHVzZSAzMCBzZWNvbmRzIGFzIHRoZSBjYWNoZSB2YWxpZCB0aW1l
CitDQUNIRV9USU1FID0zRCBkYXRldGltZS50aW1lZGVsdGEoIHNlY29uZHM9M0QzMCApCitHRU5P
TUVTUEFDRV9ESVJFQ1RPUklFU19CWV9VU0VSID0zRCB7fQorCj0yMAogZGVmIGNodW5rX3dyaXRl
KCBzb3VyY2Vfc3RyZWFtLCB0YXJnZXRfc3RyZWFtLCBzb3VyY2VfbWV0aG9kID0zRCAicmVhZCIs
IHQ9CmFyZ2V0X21ldGhvZD0zRCJ3cml0ZSIgKToKICAgICBzb3VyY2VfbWV0aG9kID0zRCBnZXRh
dHRyKCBzb3VyY2Vfc3RyZWFtLCBzb3VyY2VfbWV0aG9kICkKQEAgLTE1MCwxNCArMTU4LDMyIEBA
CiAgICAgICAgIHVzZXJuYW1lID0zRCB0cmFucy51c2VyLnByZWZlcmVuY2VzLmdldCggJ2dlbm9t
ZXNwYWNlX3VzZXJuYW1lJywgTj0Kb25lICkKICAgICAgICAgdG9rZW4gPTNEIHRyYW5zLnVzZXIu
cHJlZmVyZW5jZXMuZ2V0KCAnZ2Vub21lc3BhY2VfdG9rZW4nLCBOb25lICkKICAgICAgICAgaWYg
Tm9uZSBub3QgaW4gKCB1c2VybmFtZSwgdG9rZW4gKToKLSAgICAgICAgICAgIHVybF9vcGVuZXIg
PTNEIGdldF9jb29raWVfb3BlbmVyKCB1c2VybmFtZSwgdG9rZW4gKQotICAgICAgICAgICAgZ2Vu
b21lc3BhY2Vfc2l0ZV9kaWN0ID0zRCBnZXRfZ2Vub21lc3BhY2Vfc2l0ZV91cmxzKClbIGdlbm9t
ZXM9CnBhY2Vfc2l0ZSBdCi0gICAgICAgICAgICBkbV91cmwgPTNEIGdlbm9tZXNwYWNlX3NpdGVf
ZGljdFsnZG1TZXJ2ZXInXQotICAgICAgICAgICAgI2dldCBleHBvcnQgcm9vdCBkaXJlY3RvcnkK
LSAgICAgICAgICAgICNkaXJlY3RvcnlfZGljdCA9M0QgZ2V0X2RlZmF1bHRfZGlyZWN0b3J5KCB1
cmxfb3BlbmVyLCBkbV91cmwgPQopLmdldCggJ2RpcmVjdG9yeScsIE5vbmUgKSAjVGhpcyBkaXJl
Y3RvcnkgY29udGFpbnMgc2hhcmVzIGFuZCBvdGhlciBpdGVtcyA9Cm91dHNpZGUgb2YgdGhlIHVz
ZXJzIGhvbWUKLSAgICAgICAgICAgIGRpcmVjdG9yeV9kaWN0ID0zRCBnZXRfcGVyc29uYWxfZGly
ZWN0b3J5KCB1cmxfb3BlbmVyLCBkbV91cmwgPQopLmdldCggJ2RpcmVjdG9yeScsIE5vbmUgKSAj
TGltaXQgZXhwb3J0IGxpc3QgdG8gb25seSB1c2VyJ3MgaG9tZSBkaXIKLSAgICAgICAgICAgIGlm
IGRpcmVjdG9yeV9kaWN0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJlY3Vyc2VfZGly
ZWN0b3J5X2RpY3QoIHVybF9vcGVuZXIsIHJ2YWwsIGRpcmVjdG9yeV9kaWN0Lmc9CmV0KCAndXJs
JyApICkKKyAgICAgICAgICAgICMgTkI6IGl0IGlzIHBvc3NpYmxlLCBidXQgdW5saWtlbHkgZm9y
IGEgdXNlciB0byBzd2FwIEdlbm9tZVNwPQphY2UgYWNjb3VudHMgYXJvdW5kCisgICAgICAgICAg
ICAjIGluIHRoZSBtaWRkbGUgb2YgaW50ZXJhY3Rpbmcgd2l0aCB0b29scywgc28gd2UnbGwgaGF2
ZSBzZXZlcj0KYWwgbGF5ZXJzIG9mIGNhY2hpbmcgYnkgaWRzL3ZhbHVlcworICAgICAgICAgICAg
aWYgdHJhbnMudXNlciBpbiBHRU5PTUVTUEFDRV9ESVJFQ1RPUklFU19CWV9VU0VSOgorICAgICAg
ICAgICAgICAgIGlmIHVzZXJuYW1lIGluIEdFTk9NRVNQQUNFX0RJUkVDVE9SSUVTX0JZX1VTRVJb
IHRyYW5zLnVzZXI9CiBdOgorICAgICAgICAgICAgICAgICAgICBpZiB0b2tlbiBpbiBHRU5PTUVT
UEFDRV9ESVJFQ1RPUklFU19CWV9VU0VSWyB0cmFucy51c2U9CnIgXVsgdXNlcm5hbWUgXToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX2RpY3QgPTNEIEdFTk9NRVNQQUNFX0RJUkVDVE9S
SUVTX0JZX1VTRVJbIHRyPQphbnMudXNlciBdWyB1c2VybmFtZSBdWyB0b2tlbiBdCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiBkYXRldGltZS5kYXRldGltZS5ub3coKSAtIGNhY2hlX2RpY3Qu
Z2V0KCAndGltZT0KX2xvYWRlZCcgKSA+IENBQ0hFX1RJTUU6CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIyBjYWNoZSB0b28gb2xkLCBuZWVkIHRvIHJlbG9hZCwgd2UnbGwganVzdCBraT0K
bGwgdGhlIHdob2xlIHRyYW5zLnVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWwg
R0VOT01FU1BBQ0VfRElSRUNUT1JJRVNfQllfVVNFUlsgdHJhbnMudXNlPQpyIF0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZhbCA9
M0QgY2FjaGVfZGljdC5nZXQoICdydmFsJyApCisgICAgICAgICAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBkZWwgR0VOT01FU1BBQ0VfRElSRUNUT1JJRVNfQllfVVNF
UlsgdHJhbnMudXNlciBdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgZGVsIEdFTk9NRVNQQUNFX0RJUkVDVE9SSUVTX0JZX1VTRVJbIHRyYW5zLnVzZXIgXQorICAg
ICAgICAgICAgaWYgbm90IHJ2YWw6CisgICAgICAgICAgICAgICAgdXJsX29wZW5lciA9M0QgZ2V0
X2Nvb2tpZV9vcGVuZXIoIHVzZXJuYW1lLCB0b2tlbiApCisgICAgICAgICAgICAgICAgZ2Vub21l
c3BhY2Vfc2l0ZV9kaWN0ID0zRCBnZXRfZ2Vub21lc3BhY2Vfc2l0ZV91cmxzKClbIGdlbj0Kb21l
c3BhY2Vfc2l0ZSBdCisgICAgICAgICAgICAgICAgZG1fdXJsID0zRCBnZW5vbWVzcGFjZV9zaXRl
X2RpY3RbJ2RtU2VydmVyJ10KKyAgICAgICAgICAgICAgICAjZ2V0IGV4cG9ydCByb290IGRpcmVj
dG9yeQorICAgICAgICAgICAgICAgICNkaXJlY3RvcnlfZGljdCA9M0QgZ2V0X2RlZmF1bHRfZGly
ZWN0b3J5KCB1cmxfb3BlbmVyLCBkbV89CnVybCApLmdldCggJ2RpcmVjdG9yeScsIE5vbmUgKSAj
VGhpcyBkaXJlY3RvcnkgY29udGFpbnMgc2hhcmVzIGFuZCBvdGhlciBpdD0KZW1zIG91dHNpZGUg
b2YgdGhlIHVzZXJzIGhvbWUKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnlfZGljdCA9M0QgZ2V0
X3BlcnNvbmFsX2RpcmVjdG9yeSggdXJsX29wZW5lciwgZG1fPQp1cmwgKS5nZXQoICdkaXJlY3Rv
cnknLCBOb25lICkgI0xpbWl0IGV4cG9ydCBsaXN0IHRvIG9ubHkgdXNlcidzIGhvbWUgZGlyCisg
ICAgICAgICAgICAgICAgaWYgZGlyZWN0b3J5X2RpY3QgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICAgICAgICAgIHJlY3Vyc2VfZGlyZWN0b3J5X2RpY3QoIHVybF9vcGVuZXIsIHJ2YWwsIGRpcmVj
dG9yeV9kaT0KY3QuZ2V0KCAndXJsJyApICkKKyAgICAgICAgICAgICAgICAjIFNhdmUgdGhlIGNh
Y2hlCisgICAgICAgICAgICAgICAgR0VOT01FU1BBQ0VfRElSRUNUT1JJRVNfQllfVVNFUlsgdHJh
bnMudXNlciBdID0zRCB7IHVzZXJuYT0KbWU6IHsgdG9rZW46IHsgJ3RpbWVfbG9hZGVkJzogZGF0
ZXRpbWUuZGF0ZXRpbWUubm93KCksICdydmFsJzogcnZhbCB9IH0gIH0KICAgICBpZiBub3QgcnZh
bDoKICAgICAgICAgaWYgbm90IGJhc2VfdXJsOgogICAgICAgICAgICAgYmFzZV91cmwgPTNEICcu
LicKQEAgLTE4MCw3ICsyMDYsNyBAQAogICAgICNnZXQgdXBsb2FkIHVybAogICAgIHVwbG9hZF91
cmwgPTNEICJ1cGxvYWR1cmwiCiAgICAgY29udGVudF9sZW5ndGggPTNEIG9zLnBhdGguZ2V0c2l6
ZSggc291cmNlX2ZpbGVuYW1lICkKLSAgICBpbnB1dF9maWxlID0zRCBvcGVuKCBzb3VyY2VfZmls
ZW5hbWUgKQorICAgIGlucHV0X2ZpbGUgPTNEIG9wZW4oIHNvdXJjZV9maWxlbmFtZSwgJ3JiJyAp
CiAgICAgY29udGVudF9tZDUgPTNEIGhhc2hsaWIubWQ1KCkKICAgICBjaHVua193cml0ZSggaW5w
dXRfZmlsZSwgY29udGVudF9tZDUsIHRhcmdldF9tZXRob2Q9M0QidXBkYXRlIiApCiAgICAgaW5w
dXRfZmlsZS5zZWVrKCAwICkgI2JhY2sgdG8gc3RhcnQsIGZvciB1cGxvYWRpbmcKCgpodHRwczov
L2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsL2NvbW1pdHMvNTdiYmJlMTQ2M2Y2
LwpDaGFuZ2VzZXQ6ICAgNTdiYmJlMTQ2M2Y2CkJyYW5jaDogICAgICByZWxlYXNlXzE1LjAzClVz
ZXI6ICAgICAgICBkYW4KRGF0ZTogICAgICAgIDIwMTUtMDQtMDIgMTU6MTY6MDIrMDA6MDAKU3Vt
bWFyeTogICAgIEVuYWJsZSBtdWx0aS1wYXJ0IHVwbG9hZCBmb3IgdGhlIEdlbm9tZVNwYWNlIGV4
cG9ydCB0b29sLiBGaWxlPQpzIGdyZWF0ZXIgdGhhbiA1Z2IgY2FuIG9uY2UgYWdhaW4gYmUgc2Vu
ZCB0byBHZW5vbWVTcGFjZSBmcm9tIEdhbGF4eS4KCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0
IDEyNmFlMDczYWZkMzlhODNkYjkwYjNmODAwMmY3MTRiZTlkZmRlYzIpCkFmZmVjdGVkICM6ICAy
IGZpbGVzCgpkaWZmIC1yIDRiZWM2ZjAxMGE4OWFiMGFjYzNkNjcyYWIwY2UyMDRlMWQxZDZlYjIg
LXIgNTdiYmJlMTQ2M2Y2MTZmOTg3OTNhODc9CmQ2YjNhYzBkNDM1NjgyNWY0IHRvb2xzL2dlbm9t
ZXNwYWNlL2dlbm9tZXNwYWNlX2V4cG9ydGVyLnB5Ci0tLSBhL3Rvb2xzL2dlbm9tZXNwYWNlL2dl
bm9tZXNwYWNlX2V4cG9ydGVyLnB5CisrKyBiL3Rvb2xzL2dlbm9tZXNwYWNlL2dlbm9tZXNwYWNl
X2V4cG9ydGVyLnB5CkBAIC0xLDMgKzEsNCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjRGFu
IEJsYW5rZW5iZXJnCj0yMAogaW1wb3J0IGJhc2U2NApAQCAtMTAsMTcgKzExLDM3IEBACiBpbXBv
cnQgbG9nZ2luZwogaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgb3MKK2ltcG9ydCB0ZW1wZmlsZQog
aW1wb3J0IHVybGxpYgogaW1wb3J0IHVybGxpYjIKIGZyb20gdXJscGFyc2UgaW1wb3J0IHVybGpv
aW4KPTIwCiBsb2cgPTNEIGxvZ2dpbmcuZ2V0TG9nZ2VyKCAidG9vbHMuZ2Vub21lc3BhY2UuZ2Vu
b21lc3BhY2VfZXhwb3J0ZXIiICkjKCBfXz0KbmFtZV9fICkKPTIwCit0cnk6CisgICAgZnJvbSBn
YWxheHkgaW1wb3J0IGVnZ3MKKyAgICBlZ2dzLnJlcXVpcmUoJ2JvdG8nKQorZXhjZXB0IEltcG9y
dEVycm9yOgorICAgIHBhc3MKKwordHJ5OgorICAgIGltcG9ydCBib3RvCisgICAgZnJvbSBib3Rv
LnMzLmNvbm5lY3Rpb24gaW1wb3J0IFMzQ29ubmVjdGlvbgorZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgIGJvdG8gPTNEIE5vbmUKKwogR0VOT01FU1BBQ0VfQVBJX1ZFUlNJT05fU1RSSU5HID0zRCAi
djEuMCIKIEdFTk9NRVNQQUNFX1NFUlZFUl9VUkxfUFJPUEVSVElFUyA9M0QgImh0dHBzOi8vZG0u
Z2Vub21lc3BhY2Uub3JnL2NvbmZpZy8lPQpzL3NlcnZlcnVybC5wcm9wZXJ0aWVzIiAlICggR0VO
T01FU1BBQ0VfQVBJX1ZFUlNJT05fU1RSSU5HICkKPTIwCiBDSFVOS19TSVpFID0zRCAyKioyMCAj
MW1iCj0yMAorIyBUT0RPOiBUQVJHRVRfU1BMSVRfU0laRSBhbmQgVEFSR0VUX1NJTVBMRV9QVVRf
VVBMT0FEX1NJWkUgYXJlIGFyYml0cmFyaWw9CnkgZGVmaW5lZAorIyB3ZSBzaG91bGQgcHJvZ3Jh
bW1hdGljYWxseSBkZXRlcm1pbmUgdGhlc2UsIGJhc2VkIHVwb24gdGhlIGN1cnJlbnQgZW52aXI9
Cm9ubWVudD0yMAorVEFSR0VUX1NQTElUX1NJWkUgPTNEIDI1MCAqIDEwMjQgKiAxMDI0ICMgMjUw
IG1iCitNSU5fTVVMVElQQVJUX1VQTE9BRF9TSVpFID0zRCA1ICogMTAyNCAqIDEwMjQgIyA1bWIK
K01BWF9TSU1QTEVfUFVUX1VQTE9BRF9TSVpFID0zRCA1ICogMTAyNCAqIDEwMjQgKiAxMDI0ICMg
NWdiCitUQVJHRVRfU0lNUExFX1BVVF9VUExPQURfU0laRSA9M0QgTUFYX1NJTVBMRV9QVVRfVVBM
T0FEX1NJWkUgLyAyCisKICMgU29tZSBiYXNpYyBDYWNoaW5nLCBzbyB3ZSBkb24ndCBoYXZlIHRv
IHJlbG9hZCBhbmQgZG93bmxvYWQgZXZlcnl0aGluZyBlPQp2ZXJ5IHRpbWUsCiAjIGVzcGVjaWFs
bHkgbm93IHRoYXQgd2UgYXJlIGNhbGxpbmcgdGhlIHBhcmFtZXRlcidzIGdldCBvcHRpb25zIG1l
dGhvZCA1ID0KdGltZXMKICMgKDYgb24gcmVsb2FkKSB3aGVuIGEgdXNlciBsb2FkcyB0aGUgdG9v
bCBpbnRlcmZhY2UKQEAgLTIwMywyOCArMjI0LDY5IEBACiAgICAgICAgIGRpcmVjdG9yeV9kaWN0
ID0zRCBnZXRfcGVyc29uYWxfZGlyZWN0b3J5KCB1cmxfb3BlbmVyLCBkbV91cmwgKVsnZD0KaXJl
Y3RvcnknXSAjdGhpcyBpcyB0aGUgYmFzZSBmb3IgdGhlIGF1dG8tZ2VuZXJhdGVkIGdhbGF4eSBl
eHBvcnQgZGlyZWN0b3JpPQplcwogICAgICN3aGF0IGRpcmVjdG9yeSB0byBzdHVmZiB0aGlzIGlu
CiAgICAgdGFyZ2V0X2RpcmVjdG9yeV9kaWN0ID0zRCBjcmVhdGVfZGlyZWN0b3J5KCB1cmxfb3Bl
bmVyLCBkaXJlY3RvcnlfZGljdD0KLCB0YXJnZXRfZGlyZWN0b3J5LCBkbV91cmwgKQotICAgICNn
ZXQgdXBsb2FkIHVybAotICAgIHVwbG9hZF91cmwgPTNEICJ1cGxvYWR1cmwiCiAgICAgY29udGVu
dF9sZW5ndGggPTNEIG9zLnBhdGguZ2V0c2l6ZSggc291cmNlX2ZpbGVuYW1lICkKICAgICBpbnB1
dF9maWxlID0zRCBvcGVuKCBzb3VyY2VfZmlsZW5hbWUsICdyYicgKQotICAgIGNvbnRlbnRfbWQ1
ID0zRCBoYXNobGliLm1kNSgpCi0gICAgY2h1bmtfd3JpdGUoIGlucHV0X2ZpbGUsIGNvbnRlbnRf
bWQ1LCB0YXJnZXRfbWV0aG9kPTNEInVwZGF0ZSIgKQotICAgIGlucHV0X2ZpbGUuc2VlayggMCAp
ICNiYWNrIHRvIHN0YXJ0LCBmb3IgdXBsb2FkaW5nCi0KLSAgICB1cGxvYWRfcGFyYW1zID0zRCB7
ICdDb250ZW50LUxlbmd0aCc6IGNvbnRlbnRfbGVuZ3RoLCAnQ29udGVudC1NRDUnOiBiPQphc2U2
NC5zdGFuZGFyZF9iNjRlbmNvZGUoIGNvbnRlbnRfbWQ1LmRpZ2VzdCgpICksICdDb250ZW50LVR5
cGUnOiBjb250ZW50X3Q9CnlwZSB9Ci0gICAgdXBsb2FkX3VybCA9M0QgIiVzLyVzLyVzJXMvJXM/
JXMiICUgKCBkbV91cmwsIEdFTk9NRVNQQUNFX0FQSV9WRVJTSU9OXz0KU1RSSU5HLCB1cGxvYWRf
dXJsLCB0YXJnZXRfZGlyZWN0b3J5X2RpY3RbJ3BhdGgnXSwgdXJsbGliLnF1b3RlKCB0YXJnZXRf
ZmlsPQplbmFtZSwgc2FmZT0zRCcnICksIHVybGxpYi51cmxlbmNvZGUoIHVwbG9hZF9wYXJhbXMg
KSApCi0gICAgbmV3X2ZpbGVfcmVxdWVzdCA9M0QgdXJsbGliMi5SZXF1ZXN0KCB1cGxvYWRfdXJs
ICkjLCBoZWFkZXJzID0zRCB7ICdDbz0KbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywg
J0FjY2VwdCc6ICdhcHBsaWNhdGlvbi90ZXh0JyB9ICkgI2FwcGFyZW50PQpseSBodHRwOi8vd3d3
Lmdlbm9tZXNwYWNlLm9yZy90ZWFtL3NwZWNzL3VwZGF0ZWQtZG0tcmVzdC1hcGk6IkV2ZXJ5IEhU
VFAgcmU9CnF1ZXN0IHRvIHRoZSBEYXRhIE1hbmFnZXIgc2hvdWxkIGluY2x1ZGUgdGhlIEFjY2Vw
dCBoZWFkZXIgd2l0aCBhIHByZWZlcmVuYz0KZSBmb3IgdGhlIG1lZGlhIHR5cGVzIGFwcGxpY2F0
aW9uL2pzb24gYW5kIGFwcGxpY2F0aW9uL3RleHQuIiBpcyBub3QgY29ycmVjPQp0PTIwCi0gICAg
bmV3X2ZpbGVfcmVxdWVzdC5nZXRfbWV0aG9kID0zRCBsYW1iZGE6ICdHRVQnCi0gICAgI2dldCB1
cmwgdG8gdXBsb2FkIHRvCi0gICAgdGFyZ2V0X3VwbG9hZF91cmwgPTNEIHVybF9vcGVuZXIub3Bl
biggbmV3X2ZpbGVfcmVxdWVzdCApLnJlYWQoKQotICAgICN1cGxvYWQgZmlsZSB0byBkZXRlcm1p
bmVkIHVybAotICAgIHVwbG9hZF9oZWFkZXJzID0zRCBkaWN0KCB1cGxvYWRfcGFyYW1zICkKLSAg
ICAjdXBsb2FkX2hlYWRlcnNbICd4LWFtei1tZXRhLW1kNS1oYXNoJyBdID0zRCBjb250ZW50X21k
NS5oZXhkaWdlc3QoKQotICAgIHVwbG9hZF9oZWFkZXJzWyAnQWNjZXB0JyBdID0zRCAnYXBwbGlj
YXRpb24vanNvbicKLSAgICB1cGxvYWRfZmlsZV9yZXF1ZXN0ID0zRCB1cmxsaWIyLlJlcXVlc3Qo
IHRhcmdldF91cGxvYWRfdXJsLCBoZWFkZXJzID0KPTNEIHVwbG9hZF9oZWFkZXJzLCBkYXRhID0z
RCBpbnB1dF9maWxlICkKLSAgICB1cGxvYWRfZmlsZV9yZXF1ZXN0LmdldF9tZXRob2QgPTNEIGxh
bWJkYTogJ1BVVCcKLSAgICB1cGxvYWRfcmVzdWx0ID0zRCB1cmxsaWIyLnVybG9wZW4oIHVwbG9h
ZF9maWxlX3JlcXVlc3QgKS5yZWFkKCkKKyAgICBpZiBjb250ZW50X2xlbmd0aCA+IFRBUkdFVF9T
SU1QTEVfUFVUX1VQTE9BRF9TSVpFOgorICAgICAgICAjIERldGVybWluZSBzaXplcyBvZiBlYWNo
IHBhcnQuCisgICAgICAgIHNwbGl0X2NvdW50ID0zRCBjb250ZW50X2xlbmd0aCAvIFRBUkdFVF9T
UExJVF9TSVpFCisgICAgICAgIGxhc3Rfc2l6ZSA9M0QgY29udGVudF9sZW5ndGggLSAoIHNwbGl0
X2NvdW50ICogVEFSR0VUX1NQTElUX1NJWkUgKQorICAgICAgICBzaXplcyA9M0QgWyBUQVJHRVRf
U1BMSVRfU0laRSBdICogc3BsaXRfY291bnQKKyAgICAgICAgaWYgbGFzdF9zaXplOgorICAgICAg
ICAgICAgaWYgbGFzdF9zaXplIDwgTUlOX01VTFRJUEFSVF9VUExPQURfU0laRToKKyAgICAgICAg
ICAgICAgICBpZiBzaXplczoKKyAgICAgICAgICAgICAgICAgICAgc2l6ZXNbLTFdID0zRCBzaXpl
c1stMV0gKyBsYXN0X3NpemUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICBzaXplcyA9M0QgWyBsYXN0X3NpemUgXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBzaXplcy5hcHBlbmQoIGxhc3Rfc2l6ZSApCisgICAgICAgIHByaW50ICJQZXJmb3Jt
aW5nIG11bHRpLXBhcnQgdXBsb2FkIGluICVpIHBhcnRzLiIgJSAoIGxlbiggc2l6ZXMgKT0KICkK
KyAgICAgICAgI2dldCB1cGxvYWQgdXJsCisgICAgICAgIHVwbG9hZF91cmwgPTNEICJ1cGxvYWRp
bmZvIgorICAgICAgICB1cGxvYWRfdXJsID0zRCAiJXMvJXMvJXMlcy8lcyIgJSAoIGRtX3VybCwg
R0VOT01FU1BBQ0VfQVBJX1ZFUlNJT049Cl9TVFJJTkcsIHVwbG9hZF91cmwsIHRhcmdldF9kaXJl
Y3RvcnlfZGljdFsncGF0aCddLCB1cmxsaWIucXVvdGUoIHRhcmdldF9maT0KbGVuYW1lLCBzYWZl
PTNEJycgKSApCisgICAgICAgIHVwbG9hZF9yZXF1ZXN0ID0zRCB1cmxsaWIyLlJlcXVlc3QoIHVw
bG9hZF91cmwsIGhlYWRlcnMgPTNEIHsgJ0Nvbj0KdGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pz
b24nLCAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nIH0gKQorICAgICAgICB1cGxvYWRfcmVx
dWVzdC5nZXRfbWV0aG9kID0zRCBsYW1iZGE6ICdHRVQnCisgICAgICAgIHVwbG9hZF9pbmZvID0z
RCBqc29uLmxvYWRzKCB1cmxfb3BlbmVyLm9wZW4oIHVwbG9hZF9yZXF1ZXN0ICkucmVhZD0KKCkg
KQorICAgICAgICBjb25uID0zRCBTM0Nvbm5lY3Rpb24oIGF3c19hY2Nlc3Nfa2V5X2lkPTNEdXBs
b2FkX2luZm9bJ2FtYXpvbkNyZWQ9CmVudGlhbHMnXVsnYWNjZXNzS2V5J10sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd3Nfc2VjcmV0X2FjY2Vzc19r
ZXk9M0R1cD0KbG9hZF9pbmZvWydhbWF6b25DcmVkZW50aWFscyddWydzZWNyZXRLZXknXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5X3Rv
a2VuPTNEdXBsb2FkX2luPQpmb1snYW1hem9uQ3JlZGVudGlhbHMnXVsnc2Vzc2lvblRva2VuJ10g
KQorICAgICAgICAjIENhbm5vdCB1c2UgY29ubi5nZXRfYnVja2V0IGR1ZSB0byBwZXJtaXNzaW9u
cywgbWFudWFsbHkgY3JlYXRlIGI9CnVja2V0IG9iamVjdAorICAgICAgICBidWNrZXQgPTNEIGJv
dG8uczMuYnVja2V0LkJ1Y2tldCggY29ubmVjdGlvbj0zRGNvbm4sIG5hbWU9M0R1cGxvYWQ9Cl9p
bmZvWydzM0J1Y2tldE5hbWUnXSApCisgICAgICAgIG1wID0zRCBidWNrZXQuaW5pdGlhdGVfbXVs
dGlwYXJ0X3VwbG9hZCggdXBsb2FkX2luZm9bJ3MzT2JqZWN0S2V5Jz0KXSApCisgICAgICAgIGZv
ciBpLHBhcnRfc2l6ZSBpbiBlbnVtZXJhdGUoIHNpemVzLCBzdGFydD0zRDEgKToKKyAgICAgICAg
ICAgIGZoID0zRCB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCAnd2IrJyApCisgICAgICAgICAgICB3
aGlsZSBwYXJ0X3NpemU6CisgICAgICAgICAgICAgICAgaWYgQ0hVTktfU0laRSA+IHBhcnRfc2l6
ZToKKyAgICAgICAgICAgICAgICAgICAgcmVhZF9zaXplID0zRCBwYXJ0X3NpemUKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZWFkX3NpemUgPTNEIENIVU5LX1NJ
WkUKKyAgICAgICAgICAgICAgICBjaHVuayA9M0QgaW5wdXRfZmlsZS5yZWFkKCByZWFkX3NpemUg
KQorICAgICAgICAgICAgICAgIGZoLndyaXRlKCBjaHVuayApCisgICAgICAgICAgICAgICAgcGFy
dF9zaXplID0zRCBwYXJ0X3NpemUgLSByZWFkX3NpemUKKyAgICAgICAgICAgIGZoLmZsdXNoKCkK
KyAgICAgICAgICAgIGZoLnNlZWsoMCkKKyAgICAgICAgICAgIG1wLnVwbG9hZF9wYXJ0X2Zyb21f
ZmlsZSggZmgsIGkgKQorICAgICAgICAgICAgZmguY2xvc2UoKQorICAgICAgICB1cGxvYWRfcmVz
dWx0ID0zRCBtcC5jb21wbGV0ZV91cGxvYWQoKQorICAgIGVsc2U6CisgICAgICAgIHByaW50ICdQ
ZXJmb3JtaW5nIHNpbXBsZSBwdXQgdXBsb2FkLicKKyAgICAgICAgdXBsb2FkX3VybCA9M0QgInVw
bG9hZHVybCIKKyAgICAgICAgY29udGVudF9tZDUgPTNEIGhhc2hsaWIubWQ1KCkKKyAgICAgICAg
Y2h1bmtfd3JpdGUoIGlucHV0X2ZpbGUsIGNvbnRlbnRfbWQ1LCB0YXJnZXRfbWV0aG9kPTNEInVw
ZGF0ZSIgKQorICAgICAgICBpbnB1dF9maWxlLnNlZWsoIDAgKSAjYmFjayB0byBzdGFydCwgZm9y
IHVwbG9hZGluZwogICAgPTIwCisgICAgICAgIHVwbG9hZF9wYXJhbXMgPTNEIHsgJ0NvbnRlbnQt
TGVuZ3RoJzogY29udGVudF9sZW5ndGgsICdDb250ZW50LU1ENT0KJzogYmFzZTY0LnN0YW5kYXJk
X2I2NGVuY29kZSggY29udGVudF9tZDUuZGlnZXN0KCkgKSwgJ0NvbnRlbnQtVHlwZSc6IGNvbnRl
PQpudF90eXBlIH0KKyAgICAgICAgdXBsb2FkX3VybCA9M0QgIiVzLyVzLyVzJXMvJXM/JXMiICUg
KCBkbV91cmwsIEdFTk9NRVNQQUNFX0FQSV9WRVJTPQpJT05fU1RSSU5HLCB1cGxvYWRfdXJsLCB0
YXJnZXRfZGlyZWN0b3J5X2RpY3RbJ3BhdGgnXSwgdXJsbGliLnF1b3RlKCB0YXJnZXQ9Cl9maWxl
bmFtZSwgc2FmZT0zRCcnICksIHVybGxpYi51cmxlbmNvZGUoIHVwbG9hZF9wYXJhbXMgKSApCisg
ICAgICAgIG5ld19maWxlX3JlcXVlc3QgPTNEIHVybGxpYjIuUmVxdWVzdCggdXBsb2FkX3VybCAp
IywgaGVhZGVycyA9M0Qgez0KICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdB
Y2NlcHQnOiAnYXBwbGljYXRpb24vdGV4dCcgfSApICNhcHBhPQpyZW50bHkgaHR0cDovL3d3dy5n
ZW5vbWVzcGFjZS5vcmcvdGVhbS9zcGVjcy91cGRhdGVkLWRtLXJlc3QtYXBpOiJFdmVyeSBIVFQ9
ClAgcmVxdWVzdCB0byB0aGUgRGF0YSBNYW5hZ2VyIHNob3VsZCBpbmNsdWRlIHRoZSBBY2NlcHQg
aGVhZGVyIHdpdGggYSBwcmVmZT0KcmVuY2UgZm9yIHRoZSBtZWRpYSB0eXBlcyBhcHBsaWNhdGlv
bi9qc29uIGFuZCBhcHBsaWNhdGlvbi90ZXh0LiIgaXMgbm90IGNvPQpycmVjdD0yMAorICAgICAg
ICBuZXdfZmlsZV9yZXF1ZXN0LmdldF9tZXRob2QgPTNEIGxhbWJkYTogJ0dFVCcKKyAgICAgICAg
I2dldCB1cmwgdG8gdXBsb2FkIHRvCisgICAgICAgIHRhcmdldF91cGxvYWRfdXJsID0zRCB1cmxf
b3BlbmVyLm9wZW4oIG5ld19maWxlX3JlcXVlc3QgKS5yZWFkKCkKKyAgICAgICAgI3VwbG9hZCBm
aWxlIHRvIGRldGVybWluZWQgdXJsCisgICAgICAgIHVwbG9hZF9oZWFkZXJzID0zRCBkaWN0KCB1
cGxvYWRfcGFyYW1zICkKKyAgICAgICAgI3VwbG9hZF9oZWFkZXJzWyAneC1hbXotbWV0YS1tZDUt
aGFzaCcgXSA9M0QgY29udGVudF9tZDUuaGV4ZGlnZXN0PQooKQorICAgICAgICB1cGxvYWRfaGVh
ZGVyc1sgJ0FjY2VwdCcgXSA9M0QgJ2FwcGxpY2F0aW9uL2pzb24nCisgICAgICAgIHVwbG9hZF9m
aWxlX3JlcXVlc3QgPTNEIHVybGxpYjIuUmVxdWVzdCggdGFyZ2V0X3VwbG9hZF91cmwsIGhlYWRl
cj0KcyA9M0QgdXBsb2FkX2hlYWRlcnMsIGRhdGEgPTNEIGlucHV0X2ZpbGUgKQorICAgICAgICB1
cGxvYWRfZmlsZV9yZXF1ZXN0LmdldF9tZXRob2QgPTNEIGxhbWJkYTogJ1BVVCcKKyAgICAgICAg
dXBsb2FkX3Jlc3VsdCA9M0QgdXJsbGliMi51cmxvcGVuKCB1cGxvYWRfZmlsZV9yZXF1ZXN0ICku
cmVhZCgpCiAgICAgcmVzdWx0X3VybCA9M0QgIiVzLyVzIiAlICggdGFyZ2V0X2RpcmVjdG9yeV9k
aWN0Wyd1cmwnXSwgdXJsbGliLnF1b3RlKD0KIHRhcmdldF9maWxlbmFtZSwgc2FmZT0zRCcnICkg
KQogICAgICNkZXRlcm1pbmUgYXZhaWxhYmxlIGdzIGxhdW5jaCBhcHBzCiAgICAgd2ViX3Rvb2xz
ID0zRCBnZXRfZ2Vub21lX3NwYWNlX2xhdW5jaF9hcHBzKCBnZW5vbWVzcGFjZV9zaXRlX2RpY3Rb
J2F0bT0KU2VydmVyJ10sIHVybF9vcGVuZXIsIHJlc3VsdF91cmwsIGZpbGVfdHlwZSApCgpkaWZm
IC1yIDRiZWM2ZjAxMGE4OWFiMGFjYzNkNjcyYWIwY2UyMDRlMWQxZDZlYjIgLXIgNTdiYmJlMTQ2
M2Y2MTZmOTg3OTNhODc9CmQ2YjNhYzBkNDM1NjgyNWY0IHRvb2xzL2dlbm9tZXNwYWNlL2dlbm9t
ZXNwYWNlX2V4cG9ydGVyLnhtbAotLS0gYS90b29scy9nZW5vbWVzcGFjZS9nZW5vbWVzcGFjZV9l
eHBvcnRlci54bWwKKysrIGIvdG9vbHMvZ2Vub21lc3BhY2UvZ2Vub21lc3BhY2VfZXhwb3J0ZXIu
eG1sCkBAIC0xLDUgKzEsNSBAQAogPD94bWwgdmVyc2lvbj0zRCIxLjAiPz4KLTx0b29sIG5hbWU9
M0QiR2Vub21lU3BhY2UgRXhwb3J0ZXIiIGlkPTNEImdlbm9tZXNwYWNlX2V4cG9ydGVyIiByZXF1
aXJlX2xvPQpnaW49M0QiVHJ1ZSIgdmVyc2lvbj0zRCIwLjAuMiI+Cis8dG9vbCBuYW1lPTNEIkdl
bm9tZVNwYWNlIEV4cG9ydGVyIiBpZD0zRCJnZW5vbWVzcGFjZV9leHBvcnRlciIgcmVxdWlyZV9s
bz0KZ2luPTNEIlRydWUiIHZlcnNpb249M0QiMC4wLjMiPjxkZXNjcmlwdGlvbj4gLSBzZW5kIGRh
dGEgdG8gR2Vub21lU3BhY2U8L2RlPQpzY3JpcHRpb24+PGNvbW1hbmQgaW50ZXJwcmV0ZXI9M0Qi
cHl0aG9uIj5nZW5vbWVzcGFjZV9leHBvcnRlci5weT0yMAogICAgICAgICAtLWdlbm9tZXNwYWNl
X3NpdGUgInByb2QiCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIDxwYXJhbSBmb3JtYXQ9M0Qi
ZGF0YSIgbmFtZT0zRCJpbnB1dDEiIHR5cGU9M0QiZGF0YSIgbGFiZWw9M0QiU2VuZD0KIHRoaXMg
ZGF0YXNldCB0byBHZW5vbWVTcGFjZSIgLz48cGFyYW0gbmFtZT0zRCJiYXNlX3VybCIgdHlwZT0z
RCJiYXNldXJsIiAvPQo+PHBhcmFtIG5hbWU9M0Qic3ViZGlyZWN0b3J5IiB0eXBlPTNEImRyaWxs
X2Rvd24iIGRpc3BsYXk9M0QicmFkaW8iIGhpZXJhcmM9Cmh5PTNEImV4YWN0IiBtdWx0aXBsZT0z
RCJGYWxzZSIgb3B0aW9uYWw9M0QiVHJ1ZSIgbGFiZWw9M0QiQ2hvb3NlIFRhcmdldCBEaT0KcmVj
dG9yeSIgZHluYW1pY19vcHRpb25zPTNEImdhbGF4eV9jb2RlX2dldF9nZW5vbWVzcGFjZV9mb2xk
ZXJzKCBnZW5vbWVzcGFjPQplX3NpdGUgPTNEICdwcm9kJywgdHJhbnM9M0RfX3RyYW5zX18sIHZh
bHVlPTNEX192YWx1ZV9fLCBpbnB1dF9kYXRhc2V0PTNEaW49CnB1dDEsIGJhc2VfdXJsPTNEYmFz
ZV91cmwgKSIgaGVscD0zRCJMZWF2ZSBibGFuayB0byBnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5Ij0K
Lz4KLSAgICAgICAgPHBhcmFtIG5hbWU9M0QiZmlsZW5hbWUiIHR5cGU9M0QidGV4dCIgc2l6ZT0z
RCI4MCIgaGVscD0zRCJMZWF2ZSBiPQpsYW5rIHRvIGdlbmVyYXRlIGF1dG9tYXRpY2FsbHkiIC8+
CisgICAgICAgIDxwYXJhbSBuYW1lPTNEImZpbGVuYW1lIiB0eXBlPTNEInRleHQiIHNpemU9M0Qi
ODAiIGxhYmVsPTNEIkZpbGVuYT0KbWUiIGhlbHA9M0QiTGVhdmUgYmxhbmsgdG8gZ2VuZXJhdGUg
YXV0b21hdGljYWxseSIgLz48L2lucHV0cz48b3V0cHV0cz48ZGF0PQphIGZvcm1hdD0zRCJodG1s
IiBuYW1lPTNEIm91dHB1dF9sb2ciIC8+CgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9n
YWxheHktY2VudHJhbC9jb21taXRzL2RlOWQ1ZjY1YzE1ZS8KQ2hhbmdlc2V0OiAgIGRlOWQ1ZjY1
YzE1ZQpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNC4wOApVc2VyOiAgICAgICAgbmF0ZWZvbwpEYXRl
OiAgICAgICAgMjAxNS0wNC0yMCAxNToyODozNyswMDowMApTdW1tYXJ5OiAgICAgQ3JlYXRlIGJy
YW5jaCByZWxlYXNlXzE0LjA4IGZyb20gbGF0ZXN0XzIwMTQuMDguMTEKQWZmZWN0ZWQgIzogIDAg
ZmlsZXMKCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21t
aXRzL2EyZmFkNDRkYTg0Ny8KQ2hhbmdlc2V0OiAgIGEyZmFkNDRkYTg0NwpCcmFuY2g6ICAgICAg
cmVsZWFzZV8xNC4xMApVc2VyOiAgICAgICAgbmF0ZWZvbwpEYXRlOiAgICAgICAgMjAxNS0wNC0y
MCAxNTozMDoyMSswMDowMApTdW1tYXJ5OiAgICAgQ3JlYXRlIGJyYW5jaCByZWxlYXNlXzE0LjEw
IGZyb20gbGF0ZXN0XzIwMTQuMTAuMDYKQWZmZWN0ZWQgIzogIDAgZmlsZXMKCgoKaHR0cHM6Ly9i
aXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzLzdhMDljMDVhZWQ3YS8K
Q2hhbmdlc2V0OiAgIDdhMDljMDVhZWQ3YQpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4wMQpVc2Vy
OiAgICAgICAgbmF0ZWZvbwpEYXRlOiAgICAgICAgMjAxNS0wNC0yMCAxNTozMToyNSswMDowMApT
dW1tYXJ5OiAgICAgQ3JlYXRlIGJyYW5jaCByZWxlYXNlXzE1LjAxIGZyb20gbGF0ZXN0XzIwMTUu
MDEuMTMKQWZmZWN0ZWQgIzogIDAgZmlsZXMKClJlcG9zaXRvcnkgVVJMOiBodHRwczovL2JpdGJ1
Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsLwoKLS0KClRoaXMgaXMgYSBjb21taXQgbm90
aWZpY2F0aW9uIGZyb20gYml0YnVja2V0Lm9yZy4gWW91IGFyZSByZWNlaXZpbmcKdGhpcyBiZWNh
dXNlIHlvdSBoYXZlIHRoZSBzZXJ2aWNlIGVuYWJsZWQsIGFkZHJlc3NpbmcgdGhlIHJlY2lwaWVu
dCBvZgp0aGlzIGVtYWlsLgo
1
0
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: b5768fb2d3238552dfb045f974e33590ec093068
https://github.com/galaxyproject/usegalaxy-playbook/commit/b5768fb2d3238552…
Author: Martin Cech <cech.marten(a)gmail.com>
Date: 2015-04-17 (Fri, 17 Apr 2015)
Changed paths:
M stage/group_vars/toolshedservers.yml
Log Message:
-----------
update TTS config
1
0
17 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: d164d700b94e5da2444e188d164482fe95875807
https://github.com/galaxyproject/usegalaxy-playbook/commit/d164d700b94e5da2…
Author: Nate Coraor <nate(a)bx.psu.edu>
Date: 2015-04-17 (Fri, 17 Apr 2015)
Changed paths:
M roles/usegalaxy_admin/tasks/main.yml
Log Message:
-----------
Fix log archival cron jobs.
1
0
17 Apr '15
Branch: refs/heads/master
Home: https://github.com/galaxyproject/usegalaxy-playbook
Commit: aebfe1c548b38dbb2c86a2b49c85a64b0b3412bd
https://github.com/galaxyproject/usegalaxy-playbook/commit/aebfe1c548b38dbb…
Author: Nate Coraor <nate(a)bx.psu.edu>
Date: 2015-04-17 (Fri, 17 Apr 2015)
Changed paths:
M production/group_vars/galaxyservers.yml
Log Message:
-----------
Enable nginx upload for job files.
1
0