You are on page 1of 152

{"created_by":"Tampermonkey","version":"1","scripts":

[{"name":"AdsBypasser","options":
{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":f
alse,"compat_prototypes":false,"compat_wrappedjsobject":false,"compatopts_for_requi
res":true,"noframes":null,"override":
{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":
true,"orig_connects":["*"],"orig_excludes":[],"orig_includes":
["http://*","https://*"],"orig_matches":
[],"orig_noframes":null,"orig_run_at":"document-start","use_blockers":
[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":
[]},"run_at":null},"storage":{"data":
{"align_center":"btrue","change_background":"btrue","external_server_support":"bfal
se","log_level":"n1","redirect_image":"btrue","scale_image":"btrue","version":"n4"}
,"ts":1622034632808},"enabled":true,"position":1,"file_url":"https://adsbypasser.gi
thub.io/releases/adsbypasser.full.es7.user.js","uuid":"da263b3b-d9a6-45c8-8035-
cc6da3ba8a71","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICAgIEFkc0J5cGF
zc2VyCi8vIEBuYW1lc3BhY2UgICAgICBBZHNCeXBhc3NlcgovLyBAZGVzY3JpcHRpb24gICAgQnlwYXNzIE
FkcwovLyBAY29weXJpZ2h0ICAgICAgMjAxMissIFdlaS1DaGVuZyBQYW4gKGxlZ25hbGV1cmMpCi8vIEB2Z
XJzaW9uICAgICAgICA3LjE3LjAKLy8gQGxpY2Vuc2UgICAgICAgIEJTRAovLyBAaG9tZXBhZ2VVUkwgICAg
aHR0cHM6Ly9hZHNieXBhc3Nlci5naXRodWIuaW8vCi8vIEBzdXBwb3J0VVJMICAgICBodHRwczovL2dpdGh
1Yi5jb20vYWRzYnlwYXNzZXIvYWRzYnlwYXNzZXIvaXNzdWVzCi8vIEB1cGRhdGVVUkwgICAgICBodHRwcz
ovL2Fkc2J5cGFzc2VyLmdpdGh1Yi5pby9yZWxlYXNlcy9hZHNieXBhc3Nlci5mdWxsLmVzNy5tZXRhLmpzC
i8vIEBkb3dubG9hZFVSTCAgICBodHRwczovL2Fkc2J5cGFzc2VyLmdpdGh1Yi5pby9yZWxlYXNlcy9hZHNi
eXBhc3Nlci5mdWxsLmVzNy51c2VyLmpzCi8vIEBpY29uICAgICAgICAgICBodHRwczovL3Jhdy5naXRodWJ
1c2VyY29udGVudC5jb20vYWRzYnlwYXNzZXIvYWRzYnlwYXNzZXIvdjcuMTcuMC9yZXNvdXJjZXMvaW1nL2
xvZ28ucG5nCi8vIEBncmFudCAgICAgICAgICBHTV9kZWxldGVWYWx1ZQovLyBAZ3JhbnQgICAgICAgICAgR
01fZ2V0UmVzb3VyY2VVUkwKLy8gQGdyYW50ICAgICAgICAgIEdNX2dldFZhbHVlCi8vIEBncmFudCAgICAg
ICAgICBHTV9vcGVuSW5UYWIKLy8gQGdyYW50ICAgICAgICAgIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQKLy8
gQGdyYW50ICAgICAgICAgIEdNX3NldFZhbHVlCi8vIEBncmFudCAgICAgICAgICBHTV94bWxodHRwUmVxdW
VzdAovLyBAZ3JhbnQgICAgICAgICAgR00uZGVsZXRlVmFsdWUKLy8gQGdyYW50ICAgICAgICAgIEdNLmdld
FJlc291cmNlVXJsCi8vIEBncmFudCAgICAgICAgICBHTS5nZXRWYWx1ZQovLyBAZ3JhbnQgICAgICAgICAg
R00ub3BlbkluVGFiCi8vIEBncmFudCAgICAgICAgICBHTS5zZXRWYWx1ZQovLyBAZ3JhbnQgICAgICAgICA
gR00ueG1sSHR0cFJlcXVlc3QKLy8gQGdyYW50ICAgICAgICAgIHVuc2FmZVdpbmRvdwovLyBAcmVzb3VyY2
UgICAgICAgYWxpZ25DZW50ZXIgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fkc2J5cGFzc
2VyL2Fkc2J5cGFzc2VyL3Y3LjE3LjAvcmVzb3VyY2VzL2Nzcy9hbGlnbl9jZW50ZXIuY3NzCi8vIEByZXNv
dXJjZSAgICAgICBzY2FsZUltYWdlIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hZHNieXB
hc3Nlci9hZHNieXBhc3Nlci92Ny4xNy4wL3Jlc291cmNlcy9jc3Mvc2NhbGVfaW1hZ2UuY3NzCi8vIEByZX
NvdXJjZSAgICAgICBiZ0ltYWdlIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hZHNieXBhc
3Nlci9hZHNieXBhc3Nlci92Ny4xNy4wL3Jlc291cmNlcy9pbWcvaW1hZ2Vkb2MtZGFya25vaXNlLnBuZwov
LyBAcnVuLWF0ICAgICAgICAgZG9jdW1lbnQtc3RhcnQKLy8gQGluY2x1ZGUgICAgICAgIGh0dHA6Ly8qCi8
vIEBpbmNsdWRlICAgICAgICBodHRwczovLyoKLy8gQGNvbm5lY3QgICAgICAgICoKLy8gPT0vVXNlclNjcm
lwdD09CgogKGZ1bmN0aW9uKG1vZHVsZXMpIHsgCiAJdmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTsKIAlmd
W5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7CiAJCWlmKGluc3RhbGxlZE1vZHVsZXNb
bW9kdWxlSWRdKSB7CiAJCQlyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0czsKIAk
JfQogCQl2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7CiAJCQlpOiBtb2R1bG
VJZCwKIAkJCWw6IGZhbHNlLAogCQkJZXhwb3J0czoge30KIAkJfTsKIAkJbW9kdWxlc1ttb2R1bGVJZF0uY
2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVf
Xyk7CiAJCW1vZHVsZS5sID0gdHJ1ZTsKIAkJcmV0dXJuIG1vZHVsZS5leHBvcnRzOwogCX0KIAlfX3dlYnB
hY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzOwogCV9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE
1vZHVsZXM7CiAJX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0d
GVyKSB7CiAJCWlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHsKIAkJCU9iamVj
dC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGV
yIH0pOwogCQl9CiAJfTsKIAlfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7Ci
AJCWlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykgewogC
QkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTog
J01vZHVsZScgfSk7CiAJCX0KIAkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWx
lJywgeyB2YWx1ZTogdHJ1ZSB9KTsKIAl9OwogCV9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKH
ZhbHVlLCBtb2RlKSB7CiAJCWlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsd
WUpOwogCQlpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlOwogCQlpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2
YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlOwo
gCQl2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpOwogCQlfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpOw
ogCQlPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2Y
Wx1ZTogdmFsdWUgfSk7CiAJCWlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9y
KHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXk
pIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTsKIAkJcmV0dXJuIG5zOwogCX07Ci
AJX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7CiAJCXZhciBnZXR0ZXIgPSBtb
2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgPwogCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJu
IG1vZHVsZVsnZGVmYXVsdCddOyB9IDoKIAkJCWZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHV
ybiBtb2R1bGU7IH07CiAJCV9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTsKIA
kJcmV0dXJuIGdldHRlcjsKIAl9OwogCV9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjd
CwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmpl
Y3QsIHByb3BlcnR5KTsgfTsKIAlfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSAiIjsKIAlyZXR1cm4gX193ZWJ
wYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTsKIH0pCiAoWwogKGZ1bmN0aW9uKG
1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoidXNlIHN0cmljd
CI7Cl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIHZhciB1dGlsX2NvcmVf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CiB2YXIgdXR
pbF9kaXNwYXRjaGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV
9fKDIpOwogdmFyIHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2Vic
GFja19yZXF1aXJlX18oMyk7CiB2YXIgdXRpbF9jb25maWdfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiB2YXIgdXRpbF9sb2dnZXJfX1dFQlBBQ0tfSU1QT1JURUR
fTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CiB2YXIgX0FEU0JZUEFTU0VSX0hBTkRMRV
JTX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKY29uc
3QgaXNTYWZhcmkgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2luZG93LkhUTUxFbGVtZW50
KS5pbmRleE9mKCdDb25zdHJ1Y3RvcicpID4gMDsKZnVuY3Rpb24gZGlzYWJsZVdpbmRvd09wZW4gKCkgewo
gIHRyeSB7CiAgICB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVzdyJdLm
9wZW4gPSBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgY2xvc2VkOiBmYWxzZSwKICAgI
CAgfTsKICAgIH07CiAgfSBjYXRjaCAoZSkgewogICAgT2JqZWN0KHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV80X19bIndhcm4iXSkoJ2Nhbm5vdCBtb2NrIHdpbmRvdy5vcGVuJyk7CiAgfQogIHV
0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidXN3Il0uYWxlcnQgPSB1dGlsX2
NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibm9wIl07CiAgdXRpbF9wbGF0Zm9ybV9fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ1c3ciXS5jb25maXJtID0gdXRpbF9jb3JlX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIm5vcCJdOwp9CmZ1bmN0aW9uIGRpc2FibGVMZWF2ZVByb21wdCAoZWxlbWV
udCkgewogIGlmICghZWxlbWVudCkgewogICAgcmV0dXJuOwogIH0KICBjb25zdCBzZWFsID0gewogICAgc2
V0OiBmdW5jdGlvbiAoKSB7CiAgICAgIE9iamVjdCh1dGlsX2xvZ2dlcl9fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfNF9fWyJpbmZvIl0pKCdibG9ja2VkIG9uYmVmb3JldW5sb2FkJyk7CiAgICB9LAogIH07CiAgZWxl
bWVudC5vbmJlZm9yZXVubG9hZCA9IHVuZGVmaW5lZDsKICBpZiAoaXNTYWZhcmkpIHsKICAgIGVsZW1lbnQ
uX19kZWZpbmVTZXR0ZXJfXygnb25iZWZvcmV1bmxvYWQnLCBzZWFsLnNldCk7CiAgfSBlbHNlIHsKICAgIH
V0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidXN3Il0uT2JqZWN0LmRlZmluZ
VByb3BlcnR5KGVsZW1lbnQsICdvbmJlZm9yZXVubG9hZCcsIHsKICAgICAgY29uZmlndXJhYmxlOiB0cnVl
LAogICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKICAgICAgZ2V0OiB1bmRlZmluZWQsCiAgICAgIHNldDogc2V
hbC5zZXQsCiAgICB9KTsKICB9CiAgY29uc3Qgb2FlbCA9IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcjsKIC
Bjb25zdCBuYWVsID0gZnVuY3Rpb24gKHR5cGUpIHsKICAgIGlmICh0eXBlID09PSAnYmVmb3JldW5sb2FkJ
ykgewogICAgICBPYmplY3QodXRpbF9sb2dnZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siaW5m
byJdKSgnYmxvY2tlZCBhZGRFdmVudExpc3RlbmVyIG9uYmVmb3JldW5sb2FkJyk7CiAgICAgIHJldHVybjs
KICAgIH0KICAgIHJldHVybiBvYWVsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgfTsKICBlbGVtZW50Lm
FkZEV2ZW50TGlzdGVuZXIgPSBuYWVsOwp9CmZ1bmN0aW9uIGNoYW5nZVRpdGxlICgpIHsKICBkb2N1bWVud
C50aXRsZSArPSAnIC0gQWRzQnlwYXNzZXInOwp9CmFzeW5jIGZ1bmN0aW9uIGJlZm9yZURPTVJlYWR5ICho
YW5kbGVyKSB7CiAgY29uc3QgY29uZmlnID0gYXdhaXQgT2JqZWN0KHV0aWxfY29uZmlnX19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8zX19bImR1bXBDb25maWciXSkoKTsKICBPYmplY3QodXRpbF9sb2dnZXJfX1dFQl
BBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siaW5mbyJdKSgnd29ya2luZyBvblxuJXMgXG53aXRoXG4lcycsI
HdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTsKICBkaXNhYmxl
TGVhdmVQcm9tcHQodXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ1c3ciXSk
7CiAgZGlzYWJsZVdpbmRvd09wZW4oKTsKICBhd2FpdCBoYW5kbGVyLnN0YXJ0KCk7Cn0KYXN5bmMgZnVuY3
Rpb24gYWZ0ZXJET01SZWFkeSAoaGFuZGxlcikgewogIGRpc2FibGVMZWF2ZVByb21wdCh1dGlsX3BsYXRmb
3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVzdyJdLmRvY3VtZW50LmJvZHkpOwogIGNoYW5n
ZVRpdGxlKCk7CiAgYXdhaXQgaGFuZGxlci5yZWFkeSgpOwp9CmZ1bmN0aW9uIHdhaXRET00gKCkgewogIHJ
ldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgIT
09ICdsb2FkaW5nJykgewogICAgICByZXNvbHZlKCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGRvY3VtZ
W50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7CiAgICAgIHJlc29sdmUo
KTsKICAgIH0pOwogIH0pOwp9CmFzeW5jIGZ1bmN0aW9uIG1haW4gKCkgewogIGlmICh1dGlsX3BsYXRmb3J
tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInJhd1VTVyJdLnRvcCAhPT0gdXRpbF9wbGF0Zm9ybV
9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJyYXdVU1ciXS5zZWxmKSB7CiAgICByZXR1cm47CiAgf
QogIHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEkiXS5yZWdpc3Rl
ck1lbnVDb21tYW5kKCdBZHNCeXBhc3NlciAtIENvbmZpZ3VyZScsICg
pID0+IHsKICAgIHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEkiXS
5vcGVuSW5UYWIoJ2h0dHBzOi8vYWRzYnlwYXNzZXIuZ2l0aHViLmlvL2NvbmZpZ3VyZS5odG1sJyk7CiAgf
Sk7CiAgYXdhaXQgT2JqZWN0KHV0aWxfY29uZmlnX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bImxv
YWRDb25maWciXSkoKTsKICBjb25zdCBoYW5kbGVyID0gT2JqZWN0KHV0aWxfZGlzcGF0Y2hlcl9fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJmaW5kSGFuZGxlciJdKSgpOwogIGlmIChoYW5kbGVyKSB7CiAgIC
Bhd2FpdCBiZWZvcmVET01SZWFkeShoYW5kbGVyKTsKICAgIGF3YWl0IHdhaXRET00oKTsKICAgIGF3YWl0I
GFmdGVyRE9NUmVhZHkoaGFuZGxlcik7CiAgICByZXR1cm47CiAgfQp9Cm1haW4oKS5jYXRjaCgoZSkgPT4g
ewogIE9iamVjdCh1dGlsX2xvZ2dlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJ3YXJuIl0pKGU
pOwp9KTsKIH0pLAogKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3
JlcXVpcmVfXykgewoidXNlIHN0cmljdCI7Cl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb
3J0c19fKTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQWRzQnlwYXNz
ZXJFcnJvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQWRzQnlwYXNzZXJFcnJvcjsgfSk7CiBfX3dlYnBhY2t
fcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImV2ZXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybi
BldmVyeTsgfSk7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImZpbmQiL
CBmdW5jdGlvbigpIHsgcmV0dXJuIGZpbmQ7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJmb3JFYWNoIiwgZnVuY3Rpb24oKSB7IHJldHVybiBmb3JFYWNoOyB9KTsKIF9fd2V
icGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiaXNTdHJpbmciLCBmdW5jdGlvbigpIH
sgcmV0dXJuIGlzU3RyaW5nOyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c
19fLCAibWFwIiwgZnVuY3Rpb24oKSB7IHJldHVybiBtYXA7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJub25lIiwgZnVuY3Rpb24oKSB7IHJldHVybiBub25lOyB9KTsKIF9
fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAibm9wIiwgZnVuY3Rpb24oKSB7IH
JldHVybiBub3A7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJwY
XJ0aWFsIiwgZnVuY3Rpb24oKSB7IHJldHVybiBwYXJ0aWFsOyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidHJ5RXZlcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHRyeUV2ZXJ
5OyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAid2FpdCIsIGZ1bm
N0aW9uKCkgeyByZXR1cm4gd2FpdDsgfSk7CmNsYXNzIEFkc0J5cGFzc2VyRXJyb3IgZXh0ZW5kcyBFcnJvc
iB7CiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHsKICAgIHN1cGVyKG1lc3NhZ2UpOwogIH0KICBnZXQgbmFt
ZSAoKSB7CiAgICByZXR1cm4gJ0Fkc0J5cGFzc2VyRXJyb3InOwogIH0KfQpmdW5jdGlvbiBmb3JFYWNoICh
jb2xsZWN0aW9uLCBmbikgewogIGlmIChpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkgewogICAgcmV0dXJuIE
FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoY29sbGVjdGlvbiwgZm4pOwogIH0KICByZXR1cm4gT2JqZ
WN0LmtleXMoY29sbGVjdGlvbikuZm9yRWFjaCgoaykgPT4gewogICAgcmV0dXJuIGZuKGNvbGxlY3Rpb25b
a10sIGssIGNvbGxlY3Rpb24pOwogIH0pOwp9CmZ1bmN0aW9uIGV2ZXJ5IChjb2xsZWN0aW9uLCBmbikgewo
gIGlmIChpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkgewogICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldm
VyeS5jYWxsKGNvbGxlY3Rpb24sIGZuKTsKICB9CiAgcmV0dXJuIE9iamVjdC5rZXlzKGNvbGxlY3Rpb24pL
mV2ZXJ5KChrKSA9PiB7CiAgICByZXR1cm4gZm4oY29sbGVjdGlvbltrXSwgaywgY29sbGVjdGlvbik7CiAg
fSk7Cn0KZnVuY3Rpb24gbWFwIChjb2xsZWN0aW9uLCBmbikgewogIGlmIChpc0FycmF5TGlrZShjb2xsZWN
0aW9uKSkgewogICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChjb2xsZWN0aW9uLCBmbik7Ci
AgfQogIGNvbnN0IG1hcHBlZCA9IE9iamVjdC5hc3NpZ24oe30sIGNvbGxlY3Rpb24pOwogIE9iamVjdC5nZ
XRPd25Qcm9wZXJ0eU5hbWVzKG1hcHBlZCkuZm9yRWFjaCgoaykgPT4gewogICAgbWFwcGVkW2tdID0gZm4o
Y29sbGVjdGlvbltrXSwgaywgY29sbGVjdGlvbik7CiAgfSk7CiAgcmV0dXJuIG1hcHBlZDsKfQpmdW5jdGl
vbiBmaW5kIChjb2xsZWN0aW9uLCBmbikgewogIGZvciAoY29uc3QgW2ssIHZdIG9mIGVudW1lcmF0ZShjb2
xsZWN0aW9uKSkgewogICAgY29uc3QgciA9IGZuKHYsIGssIGNvbGxlY3Rpb24pOwogICAgaWYgKHIgIT09I
G5vbmUpIHsKICAgICAgcmV0dXJuIFtrLCB2LCByXTsKICAgIH0KICB9CiAgcmV0dXJuIFtub25lLCBub25l
LCBub25lXTsKfQpmdW5jdGlvbiAqIGVudW1lcmF0ZSAoY29sbGVjdGlvbikgewogIGlmIChpc0FycmF5TGl
rZShjb2xsZWN0aW9uKSkgewogICAgeWllbGQgKiBBcnJheS5wcm90b3R5cGUuZW50cmllcy5jYWxsKGNvbG
xlY3Rpb24pOwogICAgcmV0dXJuOwogIH0KICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5T
mFtZXMoY29sbGVjdGlvbik7CiAgZm9yIChjb25zdCBrIG9mIGtleXMpIHsKICAgIHlpZWxkIFtrLCBjb2xs
ZWN0aW9uW2tdXTsKICB9Cn0KZnVuY3Rpb24gaXNBcnJheUxpa2UgKGNvbGxlY3Rpb24pIHsKICByZXR1cm4
gQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSB8fCBpc05vZGVMaXN0KGNvbGxlY3Rpb24pOwp9CmZ1bmN0aW
9uIGlzTm9kZUxpc3QgKGNvbGxlY3Rpb24pIHsKICByZXR1cm4gY29sbGVjdGlvbi5jb25zdHJ1Y3Rvci5uY
W1lID09PSAnTm9kZUxpc3QnOwp9CmZ1bmN0aW9uIHBhcnRpYWwgKGZuLCAuLi5hcmdzKSB7CiAgaWYgKHR5
cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykgewogICAgdGhyb3cgbmV3IEFkc0J5cGFzc2VyRXJyb3IoJ211c3Q
gZ2l2ZSBhIGZ1bmN0aW9uJyk7CiAgfQogIHJldHVybiAoLi4uaW5uZXJBcmdzKSA9PiB7CiAgICByZXR1cm
4gZm4oLi4uYXJncy5jb25jYXQoaW5uZXJBcmdzKSk7CiAgfTsKfQpmdW5jdGlvbiBpc1N0cmluZyAodmFsd
WUpIHsKICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHx8ICh2YWx1ZSBpbnN0YW5jZW9m
IFN0cmluZyk7Cn0KZnVuY3Rpb24gbm9wICgpIHsKfQpjb25zdCBub25lID0gbm9wOwpmdW5jdGlvbiB3YWl
0IChtc0RlbGF5KSB7CiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBzZXRUaW1lb3
V0KHJlc29sdmUsIG1zRGVsYXkpOwogIH0pOwp9CmZ1bmN0aW9uIHRyeUV2ZXJ5IChtc0ludGVydmFsLCBmb
ikgewogIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY29uc3QgaGFuZGxlID0gc2V0
SW50ZXJ2YWwoZnVuY3Rpb24gKCkgewogICAgICBjb25zdCByZXN1bHQgPSBmbigpOwogICAgICBpZiAocmV
zdWx0ICE9PSBub25lKSB7CiAgICAgICAgY2xlYXJJbnRlcnZhbChoYW5kbGUpOwogICAgICAgIHJlc29sdm
UocmVzdWx0KTsKICAgICAgfQogICAgfSwgbXNJbnRlcnZhbCk7CiAgfSk7Cn0KIH0pLAogKGZ1bmN0aW9uK
G1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoidXNlIHN0cmlj
dCI7Cl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIF9fd2VicGFja19yZXF
1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicmVnaXN0ZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIH
JlZ2lzdGVyOyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZmluZ
EhhbmRsZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGZpbmRIYW5kbGVyOyB9KTsKIHZhciB1dGlsX2NvcmVf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CmNvbnN0IHB
hdHRlcm5zID0gW107CmZ1bmN0aW9uIHJlZ2lzdGVyIChwYXR0ZXJuKSB7CiAgcGF0dGVybnMucHVzaChwYX
R0ZXJuKTsKfQpmdW5jdGlvbiBkaXNwYXRjaEJ5T2JqZWN0IChydWxlLCB1cmxfNikgewogIGNvbnN0IG1hd
GNoZWQgPSBPYmplY3QodXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm1hcCJdKShy
dWxlLCAocGF0dGVybiwgcGFydCkgPT4gewogICAgaWYgKHBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHApIHs
KICAgICAgcmV0dXJuIHVybF82W3BhcnRdLm1hdGNoKHBhdHRlcm4pOwogICAgfQogICAgaWYgKEFycmF5Lm
lzQXJyYXkocGF0dGVybikpIHsKICAgICAgY29uc3QgWywgLCByXSA9IE9iamVjdCh1dGlsX2NvcmVfX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siZmluZCJdKShwYXR0ZXJuLCAoc3ApID0+IHsKICAgICAgICBj
b25zdCBtID0gdXJsXzZbcGFydF0ubWF0Y2goc3ApOwogICAgICAgIHJldHVybiBtIHx8IHV0aWxfY29yZV9
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJub25lIl07CiAgICAgIH0pOwogICAgICByZXR1cm4gci
AhPT0gdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiXSA/IHIgOiBudWxsO
wogICAgfQogICAgdGhyb3cgbmV3IHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJB
ZHNCeXBhc3NlckVycm9yIl0oJ2ludmFsaWQgcnVsZScpOwogIH0pOwogIGNvbnN0IHBhc3NlZCA9IE9iamV
jdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siZXZlcnkiXSkobWF0Y2hlZCwgKH
YpID0+IHsKICAgIHJldHVybiAhIXY7CiAgfSk7CiAgcmV0dXJuIHBhc3NlZCA/IG1hdGNoZWQgOiBudWxsO
wp9CmZ1bmN0aW9uIGRpc3BhdGNoQnlSZWdFeHAgKHJ1bGUsIHVybF8xKSB7CiAgcmV0dXJuIHVybF8xLm1h
dGNoKHJ1bGUpOwp9CmZ1bmN0aW9uIGRpc3BhdGNoQnlBcnJheSAocnVsZXMsIHVybF8xLCB1cmxfMywgdXJ
sXzYpIHsKICBjb25zdCBbLCAsIHJdID0gT2JqZWN0KHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyJmaW5kIl0pKHJ1bGVzLCAocnVsZSkgPT4gewogICAgY29uc3QgbSA9IGRpc3BhdGNoKHJ1b
GUsIHVybF8xLCB1cmxfMywgdXJsXzYpOwogICAgcmV0dXJuIG0gPyBtIDogdXRpbF9jb3JlX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiXTsKICB9KTsKICByZXR1cm4gciAhPT0gdXRpbF9jb3JlX19
XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiXSA/IHIgOiBudWxsOwp9CmZ1bmN0aW9uIGRpc3
BhdGNoQnlTdHJpbmcgKHJ1bGUsIHVybF8zKSB7CiAgbGV0IHNjaGVtZSA9IC9cKnxodHRwcz98ZmlsZXxmd
HB8Y2hyb21lLWV4dGVuc2lvbi87CiAgbGV0IGhvc3QgPSAvXCp8KFwqXC4pPyhbXi8qXSspLzsKICBsZXQg
cGF0aCA9IC9cLy4qLzsKICBsZXQgdG1wID0gYF4oJHtzY2hlbWUuc291cmNlfSk6Ly8oJHtob3N0LnNvdXJ
jZX0pPygke3BhdGguc291cmNlfSkkYDsKICBsZXQgdXAgPSBuZXcgUmVnRXhwKHRtcCk7CiAgY29uc3QgbW
F0Y2hlZCA9IHJ1bGUubWF0Y2godXApOwogIGlmICghbWF0Y2hlZCkgewogICAgcmV0dXJuIG51bGw7CiAgf
QogIHNjaGVtZSA9IG1hdGNoZWRbMV07CiAgaG9zdCA9IG1hdGNoZWRbMl07CiAgY29uc3Qgd2MgPSBtYXRj
aGVkWzNdOwogIGNvbnN0IHNkID0gbWF0Y2hlZFs0XTsKICBwYXRoID0gbWF0Y2hlZFs1XTsKICBpZiAoc2N
oZW1lID09PSAnKicgJiYgIS9odHRwcz8vLnRlc3QodXJsXzMuc2NoZW1lKSkgewogICAgcmV0dXJuIG51bG
w7CiAgfQogIGlmIChzY2hlbWUgIT09IHVybF8zLnNjaGVtZSkgewogICAgcmV0dXJuIG51bGw7CiAgfQogI
GlmIChzY2hlbWUgIT09ICdmaWxlJyAmJiBob3N0ICE9PSAnKicpIHsKICAgIGlmICh3YykgewogICAgICB1
cCA9IHVybF8zLmhvc3QuaW5kZXhPZihzZCk7CiAgICAgIGlmICh1cCA8IDAgfHwgdXAgKyBzZC5sZW5ndGg
gIT09IHVybF8zLmhvc3QubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgIH0gZW
xzZSBpZiAoaG9zdCAhPT0gdXJsXzMuaG9zdCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9CiAgd
G1wID0gcGF0aC5yZXBsYWNlKC9bKi5bXF0/KyNdL2csIChjKSA9PiB7CiAgICBpZiAoYyA9PT0gJyonKSB7
CiAgICAgIHJldHVybiAnLionOwogICAgfQogICAgcmV0dXJuICdcXCcgKyBjOwogIH0pOwogIHBhdGggPSB
uZXcgUmVnRXhwKGBeJHt0bXB9JGApOwogIGlmICghcGF0aC50ZXN0KHVybF8zLnBhdGgpKSB7CiAgICByZX
R1cm4gbnVsbDsKICB9CiAgcmV0dXJuIHVybF8zOwp9CmZ1bmN0aW9uIGRpc3BhdGNoQnlGdW5jdGlvbiAoc
nVsZSwgdXJsXzEsIHVybF8zLCB1cmxfNikgewogIHJldHVybiBydWxlKHVybF8xLCB1cmxfMywgdXJsXzYp
Owp9CmZ1bmN0aW9uIGRpc3BhdGNoIChydWxlLCB1cmxfMSwgdXJsXzMsIHVybF82KSB7CiAgaWYgKEFycmF
5LmlzQXJyYXkocnVsZSkpIHsKICAgIHJldHVybiBkaXNwYXRjaEJ5QXJyYXkocnVsZSwgdXJsXzEsIHVybF
8zLCB1cmxfNik7CiAgfQogIGlmICh0eXBlb2YgcnVsZSA9PT0gJ2Z1bmN0aW9uJykgewogICAgcmV0dXJuI
GRpc3BhdGNoQnlGdW5jdGlvbihydWxlLCB1cmxfMSwgdXJsXzMsIHVybF82KTsKICB9CiAgaWYgKHJ1bGUg
aW5zdGFuY2VvZiBSZWdFeHApIHsKICAgIHJldHVybiBkaXNwYXRjaEJ5UmVnRXhwKHJ1bGUsIHVybF8xKTs
KICB9CiAgaWYgKE9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siaXNTdH
JpbmciXSkocnVsZSkpIHsKICAgIHJldHVybiBkaXNwYXRjaEJ5U3RyaW5nKHJ1bGUsIHVybF8zKTsKICB9C
iAgcmV0dXJuIGRpc3BhdGNoQnlPYmplY3QocnVsZSwgdXJsXzYpOwp9CmZ1bmN0aW9uIGZpbmRIYW5kbGVy
ICgpIHsKICBjb25zdCB1cmxfMSA9IHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpOwogIGNvbnN0IHVybF8
zID0gewogICAgc2NoZW1lOiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwgLTEpLAogICAgaG
9zdDogd2luZG93LmxvY2F0aW9uLmhvc3QsCiAgICBwYXRoOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgK
yB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgd2luZG93LmxvY2F0aW9uLmhhc2gsCiAgfTsKICBjb25zdCB1
cmxfNiA9IHsKICAgIHNjaGVtZTogd2luZG93LmxvY2F0aW9uLnByb3RvY29sLAogICAgaG9zdDogd2luZG9
3LmxvY2F0aW9uLmhvc3RuYW1lLAogICAgcG9ydD
ogd2luZG93LmxvY2F0aW9uLnBvcnQsCiAgICBwYXRoOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsCiAgI
CBxdWVyeTogd2luZG93LmxvY2F0aW9uLnNlYXJjaCwKICAgIGhhc2g6IHdpbmRvdy5sb2NhdGlvbi5oYXNo
LAogIH07CiAgY29uc3QgW2ksIHBhdHRlcm4sIG1hdGNoZWRdID0gT2JqZWN0KHV0aWxfY29yZV9fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJmaW5kIl0pKHBhdHRlcm5zLCAocGF0dGVybikgPT4gewogICAgY2
9uc3QgbSA9IGRpc3BhdGNoKHBhdHRlcm4ucnVsZSwgdXJsXzEsIHVybF8zLCB1cmxfNik7CiAgICByZXR1c
m4gbSA/IG0gOiB1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibm9uZSJdOwogIH0p
OwogIGlmIChpID09PSB1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibm9uZSJdKSB
7CiAgICByZXR1cm4gbnVsbDsKICB9CiAgaWYgKCFwYXR0ZXJuLnN0YXJ0ICYmICFwYXR0ZXJuLnJlYWR5KS
B7CiAgICByZXR1cm4gbnVsbDsKICB9CiAgcmV0dXJuIHsKICAgIHN0YXJ0OiBwYXR0ZXJuLnN0YXJ0ID8gT
2JqZWN0KHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJwYXJ0aWFsIl0pKHBhdHRl
cm4uc3RhcnQsIG1hdGNoZWQpIDogdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5
vcCJdLAogICAgcmVhZHk6IHBhdHRlcm4ucmVhZHkgPyBPYmplY3QodXRpbF9jb3JlX19XRUJQQUNLX0lNUE
9SVEVEX01PRFVMRV8wX19bInBhcnRpYWwiXSkocGF0dGVybi5yZWFkeSwgbWF0Y2hlZCkgOiB1dGlsX2Nvc
mVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibm9wIl0sCiAgfTsKfQogfSksCiAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CiJ1c2Ugc3RyaWN
0IjsKX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwogX193ZWJwYWNrX3JlcX
VpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJyYXdVU1ciLCBmdW5jdGlvbigpIHsgcmV0dXJuIHJhd
1VTVzsgfSk7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInVzdyIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gdXN3OyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXh
wb3J0c19fLCAiR01BUEkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEdNQVBJOyB9KTsKIHZhciB1dGlsX2Nvcm
VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7CmNvbnN0I
HJhd1VTVyA9IGdldFVuc2FmZVdpbmRvdygpOwpjb25zdCB1c3cgPSBnZXRVbnNhZmVXaW5kb3dQcm94eSgp
Owpjb25zdCBHTUFQSSA9IGdldEdyZWFzZU1vbmtleUFQSSgpOwpmdW5jdGlvbiBnZXRVbnNhZmVXaW5kb3c
gKCkgewogIGxldCB3ID0gbnVsbDsKICB0cnkgewogICAgdyA9IHVuc2FmZVdpbmRvdzsKICB9IGNhdGNoIC
hlKSB7CiAgICB0cnkgewogICAgICB3ID0gKDAsIGV2YWwpKCd0aGlzJykuZ2xvYmFsOwogICAgfSBjYXRja
CAoZSkgewogICAgfQogIH0KICByZXR1cm4gdyA/IHcgOiAoMCwgZXZhbCkoJ3RoaXMnKS53aW5kb3c7Cn0K
ZnVuY3Rpb24gZ2V0R3JlYXNlTW9ua2V5QVBJICgpIHsKICBpZiAocmF3VVNXLmdsb2JhbCkgewogICAgcmV
0dXJuIG51bGw7CiAgfQogIGNvbnN0IGdtID0ge307CiAgaWYgKHR5cGVvZiBHTV9vcGVuSW5UYWIgPT09IC
dmdW5jdGlvbicpIHsKICAgIGdtLm9wZW5JblRhYiA9IEdNX29wZW5JblRhYjsKICB9IGVsc2UgewogICAgZ
20ub3BlbkluVGFiID0gR00ub3BlbkluVGFiOwogIH0KICBpZiAodHlwZW9mIEdNX2dldFZhbHVlID09PSAn
ZnVuY3Rpb24nKSB7CiAgICBnbS5nZXRWYWx1ZSA9IChuYW1lLCBkZWZhdWx0XykgPT4gewogICAgICByZXR
1cm4gUHJvbWlzZS5yZXNvbHZlKEdNX2dldFZhbHVlKG5hbWUsIGRlZmF1bHRfKSk7CiAgICB9OwogIH0gZW
xzZSB7CiAgICBnbS5nZXRWYWx1ZSA9IEdNLmdldFZhbHVlOwogIH0KICBpZiAodHlwZW9mIEdNX3NldFZhb
HVlID09PSAnZnVuY3Rpb24nKSB7CiAgICBnbS5zZXRWYWx1ZSA9IChuYW1lLCB2YWx1ZSkgPT4gewogICAg
ICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEdNX3NldFZhbHVlKG5hbWUsIHZhbHVlKSk7CiAgICB9OwogIH0
gZWxzZSB7CiAgICBnbS5zZXRWYWx1ZSA9IEdNLnNldFZhbHVlOwogIH0KICBpZiAodHlwZW9mIEdNX2RlbG
V0ZVZhbHVlID09PSAnZnVuY3Rpb24nKSB7CiAgICBnbS5kZWxldGVWYWx1ZSA9IChuYW1lKSA9PiB7CiAgI
CAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoR01fZGVsZXRlVmFsdWUobmFtZSkpOwogICAgfTsKICB9IGVs
c2UgewogICAgZ20uZGVsZXRlVmFsdWUgPSBHTS5kZWxldGVWYWx1ZTsKICB9CiAgaWYgKHR5cGVvZiBHTV9
4bWxodHRwUmVxdWVzdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgZ20ueG1sSHR0cFJlcXVlc3QgPSBHTV94bW
xodHRwUmVxdWVzdDsKICB9IGVsc2UgewogICAgZ20ueG1sSHR0cFJlcXVlc3QgPSBHTS54bWxIdHRwUmVxd
WVzdDsKICB9CiAgaWYgKHR5cGVvZiBHTV9yZWdpc3Rlck1lbnVDb21tYW5kID09PSAnZnVuY3Rpb24nKSB7
CiAgICBnbS5yZWdpc3Rlck1lbnVDb21tYW5kID0gR01fcmVnaXN0ZXJNZW51Q29tbWFuZDsKICB9IGVsc2U
gewogICAgZ20ucmVnaXN0ZXJNZW51Q29tbWFuZCA9IHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyJub3AiXTsKICB9CiAgaWYgKHR5cGVvZiBHTV9nZXRSZXNvdXJjZVVSTCA9PT0gJ2Z1bmN0a
W9uJykgewogICAgZ20uZ2V0UmVzb3VyY2VVcmwgPSAocmVzb3VyY2VOYW1lKSA9PiB7CiAgICAgIHJldHVy
biBQcm9taXNlLnJlc29sdmUoR01fZ2V0UmVzb3VyY2VVUkwocmVzb3VyY2VOYW1lKSk7CiAgICB9OwogIH0
gZWxzZSBpZiAodHlwZW9mIEdNID09PSAnb2JqZWN0JyAmJiBHTSAmJiBHTS5nZXRSZXNvdXJjZVVybCkgew
ogICAgZ20uZ2V0UmVzb3VyY2VVcmwgPSBHTS5nZXRSZXNvdXJjZVVybDsKICB9CiAgcmV0dXJuIGdtOwp9C
mNvbnN0IE1BR0lDX0tFWSA9ICdfX2Fkc2J5cGFzc2VyX3JldmVyc2VfcHJveHlfXyc7CmZ1bmN0aW9uIGdl
dFVuc2FmZVdpbmRvd1Byb3h5ICgpIHsKICBjb25zdCBpc0ZpcmVmb3ggPSB0eXBlb2YgSW5zdGFsbFRyaWd
nZXIgIT09ICd1bmRlZmluZWQnOwogIGNvbnN0IGlzV2ViRXh0ZW5zaW9uID0gdHlwZW9mIGNsb25lSW50by
A9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIGV4cG9ydEZ1bmN0aW9uID09PSAndW5kZWZpbmVkJzsKICBpZ
iAoIWlzRmlyZWZveCB8fCBpc1dlYkV4dGVuc2lvbikgewogICAgcmV0dXJuIHJhd1VTVzsKICB9CiAgY29u
c3QgZGVjb3JhdG9yID0gewogICAgc2V0ICh0YXJnZXQsIGtleSwgdmFsdWUpIHsKICAgICAgaWYgKGtleSA
9PT0gTUFHSUNfS0VZKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmICh0YXJnZX
QgPT09IHVuc2FmZVdpbmRvdyAmJiBrZXkgPT09ICdvcGVuJykgewogICAgICAgIGNvbnN0IGQgPSBPYmplY
3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTsKICAgICAgICBkLnZhbHVlID0gY2xv
bmUoZnVuY3Rpb24gKCkgewogICAgICAgICAgY29uc3QgcnYgPSB2YWx1ZSgpOwogICAgICAgICAgcmV0dXJ
uIGNsb25lSW50byhydiwgdW5zYWZlV2luZG93KTsKICAgICAgICB9KTsKICAgICAgICBPYmplY3QuZGVmaW
5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGQpOwogICAgICB9IGVsc2UgewogICAgICAgIHRhcmdldFtrZXldI
D0gY2xvbmUodmFsdWUpOwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfSwKICAgIGdldCAodGFy
Z2V0LCBrZXkpIHsKICAgICAgaWYgKGtleSA9PT0gTUFHSUNfS0VZKSB7CiAgICAgICAgcmV0dXJuIHRhcmd
ldDsKICAgICAgfQogICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldFtrZXldOwogICAgICBjb25zdCB0eXBlID
0gdHlwZW9mIHZhbHVlOwogICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgKHR5cGUgIT09ICdmdW5jdGlvb
icgJiYgdHlwZSAhPT0gJ29iamVjdCcpKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICAg
IHJldHVybiBuZXcgUHJveHkodmFsdWUsIGRlY29yYXRvcik7CiAgICB9LAogICAgYXBwbHkgKHRhcmdldCw
gc2VsZiwgYXJncykgewogICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7Ci
AgICAgIGlmICh0YXJnZXQgPT09IHVuc2FmZVdpbmRvdy5PYmplY3QuZGVmaW5lUHJvcGVydHkpIHsKICAgI
CAgICBhcmdzWzBdID0gYXJnc1swXVtNQUdJQ19LRVldOwogICAgICB9CiAgICAgIGlmICh0YXJnZXQgPT09
IHVuc2FmZVdpbmRvdy5GdW5jdGlvbi5hcHBseSkgewogICAgICAgIHNlbGYgPSBzZWxmW01BR0lDX0tFWV0
7CiAgICAgICAgYXJnc1sxXSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3NbMV0pOwogICAgIC
B9CiAgICAgIGlmICh0YXJnZXQgPT09IHVuc2FmZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKSB7C
iAgICAgICAgc2VsZiA9IHNlbGZbTUFHSUNfS0VZXTsKICAgICAgfQogICAgICBpZiAodGFyZ2V0ID09PSB1
bnNhZmVXaW5kb3cuZG9jdW1lbnQud3JpdGUpIHsKICAgICAgICBzZWxmID0gc2VsZltNQUdJQ19LRVldOwo
gICAgICB9CiAgICAgIGNvbnN0IHVzYXJncyA9IGNsb25lKGFyZ3MpOwogICAgICByZXR1cm4gdGFyZ2V0Lm
FwcGx5KHNlbGYsIHVzYXJncyk7CiAgICB9LAogICAgY29uc3RydWN0ICh0YXJnZXQsIGFyZ3MpIHsKICAgI
CAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpOwogICAgICBhcmdzLnVuc2hpZnQo
dW5kZWZpbmVkKTsKICAgICAgY29uc3QgdXNhcmdzID0gY2xvbmUoYXJncyk7CiAgICAgIGNvbnN0IGJpbmQ
gPSB1bnNhZmVXaW5kb3cuRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7CiAgICAgIHJldHVybiBuZXcgKGJpbm
QuYXBwbHkodGFyZ2V0LCB1c2FyZ3MpKTsKICAgIH0sCiAgfTsKICByZXR1cm4gbmV3IFByb3h5KHVuc2FmZ
VdpbmRvdywgZGVjb3JhdG9yKTsKfQpmdW5jdGlvbiBjbG9uZSAoc2FmZSkgewogIGlmIChzYWZlID09PSBu
dWxsIHx8ICEoc2FmZSBpbnN0YW5jZW9mIE9iamVjdCkpIHsKICAgIHJldHVybiBzYWZlOwogIH0KICBpZiA
oc2FmZSA9PT0gdW5zYWZlV2luZG93KSB7CiAgICByZXR1cm4gc2FmZTsKICB9CiAgaWYgKHNhZmUgaW5zdG
FuY2VvZiBTdHJpbmcpIHsKICAgIHJldHVybiBzYWZlLnRvU3RyaW5nKCk7CiAgfQogIGlmIChzYWZlIGluc
3RhbmNlb2YgRnVuY3Rpb24pIHsKICAgIHJldHVybiBleHBvcnRGdW5jdGlvbihzYWZlLCB1bnNhZmVXaW5k
b3csIHsKICAgICAgYWxsb3dDcm9zc09yaWdpbkFyZ3VtZW50czogdHJ1ZSwKICAgIH0pOwogIH0KICBpZiA
oc2FmZSBpbnN0YW5jZW9mIEFycmF5KSB7CiAgICBjb25zdCB1bnNhZmUgPSBuZXcgdW5zYWZlV2luZG93Lk
FycmF5KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNhZmUubGVuZ3RoOyArK2kpIHsKICAgICAgdW5zY
WZlLnB1c2goY2xvbmUoc2FmZVtpXSkpOwogICAgfQogICAgcmV0dXJuIHVuc2FmZTsKICB9CiAgY29uc3Qg
dW5zYWZlID0gbmV3IHVuc2FmZVdpbmRvdy5PYmplY3QoKTsKICBPYmplY3QodXRpbF9jb3JlX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bImZvckVhY2giXSkoc2FmZSwgKHYsIGspID0+IHsKICAgIHVuc2FmZV
trXSA9IGNsb25lKHYpOwogIH0pOwogIHJldHVybiB1bnNhZmU7Cn0KIH0pLAogKGZ1bmN0aW9uKG1vZHVsZ
SwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoidXNlIHN0cmljdCI7Cl9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIF9fd2VicGFja19yZXF1aXJlX18
uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZHVtcENvbmZpZyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZHVtcE
NvbmZpZzsgfSk7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImxvYWRDb
25maWciLCBmdW5jdGlvbigpIHsgcmV0dXJuIGxvYWRDb25maWc7IH0pOwogdmFyIHV0aWxfY29yZV9fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKIHZhciB1dGlsX2R
pc3BhdGNoZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMi
k7CiB2YXIgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX
3JlcXVpcmVfXygzKTsKY29uc3QgTUFOSUZFU1QgPSBbCiAgewogICAga2V5OiAndmVyc2lvbicsCiAgICBk
ZWZhdWx0XzogMCwKICAgIHZlcmlmeSAodikgewogICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdudW1iZXI
nICYmIHYgPj0gMDsKICAgIH0sCiAgICBub3JtYWxpemU6IHRvTnVtYmVyLAogIH0sCiAgewogICAga2V5Oi
AnYWxpZ25fY2VudGVyJywKICAgIGRlZmF1bHRfOiB0cnVlLAogICAgdmVyaWZ5OiBpc0Jvb2xlYW4sCiAgI
CBub3JtYWxpemU6IHRvQm9vbGVhbiwKICB9LAogIHsKICAgIGtleTogJ2NoYW5nZV9iYWNrZ3JvdW5kJywK
ICAgIGRlZmF1bHRfOiB0cnVlLAogICAgdmVyaWZ5OiBpc0Jvb2xlYW4sCiAgICBub3JtYWxpemU6IHRvQm9
vbGVhbiwKICB9LAogIHsKICAgIGtleTogJ3JlZGlyZWN0X2ltYWdlJywKICAgIGRlZmF1bHRfOiB0cnVlLA
ogICAgdmVyaWZ5OiBpc0Jvb2xlYW4sCiAgICBub3JtYWxpemU6IHRvQm9vbGVhbiwKICB9LAogIHsKICAgI
GtleTogJ3NjYWxlX2ltYWdlJywKICAgIGRlZmF1bHRfOiB0cnVlLAogICAgdmVyaWZ5OiBpc0Jvb2xlYW4s
CiAgICBub3JtYWxpemU6IHRvQm9vbGVhbiwKICB9LAogIHsKICAgIGtleTogJ2xvZ19sZXZlbCcsCiAgICB
kZWZhdWx0XzogMSwKICAgIHZlcmlmeSAodikgewogICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdudW1iZX
InICYmIHYgPj0gMCAmJiB2IDw9IDI7CiAgICB9LAogICAgbm9ybWFsaXplOiB0b051bWJlciwKICB9LApdO
wpjb25zdCBQQVRDSEVTID0gWwogIGFzeW5jICgpID0+IHsKICAgIGNvbnN0IGFsaWduQ2VudGVyID0gYXdh
aXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJdLmdldFZhbHV
lKCdhbGlnbl9jZW50ZXInKTsKICAgIGNvbnN0IGNoYW5nZUJhY2tncm91bmQgPSBhd2FpdCB1dGlsX3BsYX
Rmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkdNQVBJIl0uZ2V0VmFsdWUoJ2NoYW5nZV9iY
WNrZ3JvdW5kJyk7CiAgICBjb25zdCBzY2FsZUltYWdlID0gYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJdLmdldFZhbHVlKCdzY2FsZV9pbWFnZScpOwogICAgY29
uc3QgcmVkaXJlY3RJbWFnZSA9IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzJfX1siR01BUEkiXS5nZXRWYWx1ZSgncmVka
XJlY3RfaW1hZ2UnKTsKICAgIGNvbnN0IGFjID0gdHlwZW9mIGFsaWduQ2VudGVyID09PSAnYm9vbGVhbic7
CiAgICBpZiAodHlwZW9mIGNoYW5nZUJhY2tncm91bmQgIT09ICdib29sZWFuJykgewogICAgICBhd2FpdCB
1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkdNQVBJIl0uc2V0VmFsdWUoJ2
NoYW5nZV9iYWNrZ3JvdW5kJywgYWMgPyBhbGlnbkNlbnRlciA6IHRydWUpOwogICAgfQogICAgaWYgKHR5c
GVvZiBzY2FsZUltYWdlICE9PSAnYm9vbGVhbicpIHsKICAgICAgYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJdLnNldFZhbHVlKCdzY2FsZV9pbWFnZScsIGFjID8
gYWxpZ25DZW50ZXIgOiB0cnVlKTsKICAgIH0KICAgIGlmICghYWMpIHsKICAgICAgYXdhaXQgdXRpbF9wbG
F0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJdLnNldFZhbHVlKCdhbGlnbl9jZ
W50ZXInLCB0cnVlKTsKICAgIH0KICAgIGlmICh0eXBlb2YgcmVkaXJlY3RJbWFnZSAhPT0gJ2Jvb2xlYW4n
KSB7CiAgICAgIGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01
BUEkiXS5zZXRWYWx1ZSgncmVkaXJlY3RfaW1hZ2UnLCB0cnVlKTsKICAgIH0KICB9LAogIGFzeW5jICgpID
0+IHsKICAgIGNvbnN0IGV4dGVybmFsU2VydmVyU3VwcG9ydCA9IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEkiXS5nZXRWYWx1ZSgnZXh0ZXJuYWxfc2VydmVyX3N1
cHBvcnQnKTsKICAgIGlmICh0eXBlb2YgZXh0ZXJuYWxTZXJ2ZXJTdXBwb3J0ICE9PSAnYm9vbGVhbicpIHs
KICAgICAgYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSS
JdLnNldFZhbHVlKCdleHRlcm5hbF9zZXJ2ZXJfc3VwcG9ydCcsIGZhbHNlKTsKICAgIH0KICB9LAogIGFze
W5jICgpID0+IHsKICAgIGNvbnN0IGxvZ0xldmVsID0gYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJdLmdldFZhbHVlKCdsb2dfbGV2ZWwnKTsKICAgIGlmICh0eXB
lb2YgbG9nTGV2ZWwgIT09ICdudW1iZXInKSB7CiAgICAgIGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0
tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEkiXS5zZXRWYWx1ZSgnbG9nX2xldmVsJywgMSk7CiAgICB9C
iAgfSwKICBhc3luYyAoKSA9PiB7CiAgICBhd2FpdCB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX19bIkdNQVBJIl0uZGVsZXRlVmFsdWUoJ2V4dGVybmFsX3NlcnZlcl9zdXBwb3J0Jyk7CiA
gfSwKXTsKZnVuY3Rpb24gaXNCb29sZWFuICh2KSB7CiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnYm9vbGVhbi
c7Cn0KZnVuY3Rpb24gdG9Cb29sZWFuICh2KSB7CiAgcmV0dXJuICEhdjsKfQpmdW5jdGlvbiB0b051bWJlc
iAodikgewogIHJldHVybiBwYXJzZUludCh2LCAxMCk7Cn0KYXN5bmMgZnVuY3Rpb24gc2VuaXR5Q2hlY2sg
KCkgewogIGxldCB2ZXJpZnlSZXN1bHRzID0gTUFOSUZFU1QubWFwKGFzeW5jIChkZXNjcmlwdG9yKSA9PiB
7CiAgICBjb25zdCBydiA9IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXz
JfX1siR01BUEkiXS5nZXRWYWx1ZShkZXNjcmlwdG9yLmtleSk7CiAgICByZXR1cm4gZGVzY3JpcHRvci52Z
XJpZnkocnYpOwogIH0pOwogIHZlcmlmeVJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbCh2ZXJpZnlSZXN1
bHRzKTsKICBjb25zdCBvayA9IE9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siZXZlcnkiXSkodmVyaWZ5UmVzdWx0cywgdiA9PiB2KTsKICBpZiAoIW9rKSB7CiAgICBhd2FpdCB1dG
lsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkdNQVBJIl0uc2V0VmFsdWUoJ3Zlc
nNpb24nLCAwKTsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gbWlncmF0ZSAoKSB7CiAgbGV0IGN1cnJlbnRWZXJz
aW9uID0gYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJ
dLmdldFZhbHVlKCd2ZXJzaW9uJyk7CiAgaWYgKGN1cnJlbnRWZXJzaW9uICE9PSAwICYmICFjdXJyZW50Vm
Vyc2lvbikgewogICAgdGhyb3cgbmV3IHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yJBZHNCeXBhc3NlckVycm9yIl0oJ2ludmFsaWQgdmVyc2lvbicpOwogIH0KICB3aGlsZSAoY3VycmVudFZl
cnNpb24gPCBQQVRDSEVTLmxlbmd0aCkgewogICAgUEFUQ0hFU1tjdXJyZW50VmVyc2lvbl0oKTsKICAgICs
rY3VycmVudFZlcnNpb247CiAgfQogIGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzJfX1siR01BUEkiXS5zZXRWYWx1ZSgndmVyc2lvbicsIGN1cnJlbnRWZXJzaW9uKTsKfQphc3luY
yBmdW5jdGlvbiBsb2FkQ29uZmlnICgpIHsKICBhd2FpdCBzZW5pdHlDaGVjaygpOwogIGF3YWl0IG1pZ3Jh
dGUoKTsKICBPYmplY3QodXRpbF9kaXNwYXRjaGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJ
lZ2lzdGVyIl0pKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15hZHNieXBhc3NlclwuZ2l0aHViXC5pby
QvLAogICAgICBwYXRoOiAvXlwvY29uZmlndXJlXC5odG1sJC8sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgK
CkgewogICAgICBhd2FpdCB3YWl0Rm9yUGFnZSgpOwogICAgICB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX19bInVzdyJdLmNvbW1pdCA9IGFzeW5jIChkYXRhKSA9PiB7CiAgICAgICAgZm9
yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHsKICAgICAgICAgIGF3YWl0IHV0aW
xfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEkiXS5zZXRWYWx1ZShrLCB2K
TsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfX1sidXN3Il0ucmVuZGVyKHsKICAgICAgICB2ZXJzaW9uOiBhd2FpdCB1dGlsX3BsYXRmb3JtX19
XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkdNQVBJIl0uZ2V0VmFsdWUoJ3ZlcnNpb24nKSwKICAgIC
AgICBvcHRpb25zOiB7CiAgICAgICAgICBhbGlnbl9jZW50ZXI6IHsKICAgICAgICAgICAgdHlwZTogJ2NoZ
WNrYm94JywKICAgICAgICAgICAgdmFsdWU6IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzJfX1siR01BUEkiXS5nZXRWYWx1ZSgnYWxpZ25fY2VudGVyJyksCiAgICAgICAgICAgIGx
hYmVsOiAnQWxpZ24gQ2VudGVyJywKICAgICAgICAgICAgaGVscDogJ0FsaWduIGltYWdlIHRvIHRoZSBjZW
50ZXIgaWYgcG9zc2libGUuIChkZWZhdWx0OiBlbmFibGVkKScsCiAgICAgICAgICB9LAogICAgICAgICAgY
2hhbmdlX2JhY2tncm91bmQ6IHsKICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JywKICAgICAgICAgICAg
dmFsdWU6IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEk
iXS5nZXRWYWx1ZSgnY2hhbmdlX2JhY2tncm91bmQnKSwKICAgICAgICAgICAgbGFiZWw6ICdDaGFuZ2UgQm
Fja2dyb3VuZCcsCiAgICAgICAgICAgIGhlbHA6ICdVc2UgRmlyZWZveC1saWtlIGltYWdlIGJhY2tncm91b
mQgaWYgcG9zc2libGUuIChkZWZhdWx0OiBlbmFibGVkKScsCiAgICAgICAgICB9LAogICAgICAgICAgcmVk
aXJlY3RfaW1hZ2U6IHsKICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JywKICAgICAgICAgICAgdmFsdWU
6IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siR01BUEkiXS5nZX
RWYWx1ZSgncmVkaXJlY3RfaW1hZ2UnKSwKICAgICAgICAgICAgbGFiZWw6ICdSZWRpcmVjdCBJbWFnZScsC
iAgICAgICAgICAgIGhlbHA6IFsKICAgICAgICAgICAgICAnRGlyZWN0bHkgb3BlbiBpbWFnZSBsaW5rIGlm
IHBvc3NpYmxlLiAoZGVmYXVsdDogZW5hYmxlZCknLAogICAgICAgICAgICAgICdJZiBkaXNhYmxlZCwgcmV
kaXJlY3Rpb24gd2lsbCBvbmx5IHdvcmtzIG9uIGxpbmsgc2hvcnRlbmVyIHNpdGVzLicsCiAgICAgICAgIC
AgIF0uam9pbignPGJyLz5cbicpLAogICAgICAgICAgfSwKICAgICAgICAgIHNjYWxlX2ltYWdlOiB7CiAgI
CAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsCiAgICAgICAgICAgIHZhbHVlOiBhd2FpdCB1dGlsX3BsYXRm
b3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkdNQVBJIl0uZ2V0VmFsdWUoJ3NjYWxlX2ltYWd
lJyksCiAgICAgICAgICAgIGxhYmVsOiAnU2NhbGUgSW1hZ2UnLAogICAgICAgICAgICBoZWxwOiAnV2hlbi
BpbWFnZSBsb2FkZWQsIHNjYWxlIGl0IHRvIGZpdCB3aW5kb3cgaWYgcG9zc2libGUuIChkZWZhdWx0OiBlb
mFibGVkKScsCiAgICAgICAgICB9LAogICAgICAgICAgbG9nX2xldmVsOiB7CiAgICAgICAgICAgIHR5cGU6
ICdzZWxlY3QnLAogICAgICAgICAgICB2YWx1ZTogYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVB
PUlRFRF9NT0RVTEVfMl9fWyJHTUFQSSJdLmdldFZhbHVlKCdsb2dfbGV2ZWwnKSwKICAgICAgICAgICAgbW
VudTogWwogICAgICAgICAgICAgIFswLCAnMCAocXVpZXQpJ10sCiAgICAgICAgICAgICAgWzEsICcxIChkZ
WZhdWx0KSddLAogICAgICAgICAgICAgIFsyLCAnMiAodmVyYm9zZSknXSwKICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgbGFiZWw6ICdMb2cgTGV2ZWwnLAogICAgICAgICAgICBoZWxwOiBbCiAgICAgICAgICAgICA
gJ0xvZyBsZXZlbCBpbiBkZXZlbG9wZXIgY29uc29sZS4gKGRlZmF1bHQ6IDEpJywKICAgICAgICAgICAgIC
AnMCB3aWxsIG5vdCBwcmludCBhbnl0aGluZyBpbiBjb25zb2xlLicsCiAgICAgICAgICAgICAgJzEgd2lsb
CBvbmx5IHByaW50IGxvZ3Mgb24gYWZmZWN0ZWQgc2l0ZXMuJywKICAgICAgICAgICAgICAnMiB3aWxsIHBy
aW50IG9uIGFueSBzaXRlcy4nLAogICAgICAgICAgICBdLmpvaW4oJzxici8+XG4nKSwKICAgICAgICAgIH0
sCiAgICAgICAgfSwKICAgICAgfSk7CiAgICB9LAogIH0pOwp9CmZ1bmN0aW9uIHdhaXRGb3JQYWdlICgpIH
sKICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgIGNvbnN0IGkgPSBzZXRJbnRlcnZhb
CgoKSA9PiB7CiAgICAgIGlmICh1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19b
InVzdyJdLnJlbmRlcikgewogICAgICAgIGNsZWFySW50ZXJ2YWwoaSk7CiAgICAgICAgcmVzb2x2ZSgpOwo
gICAgICB9CiAgICB9LCA1MCk7CiAgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gZHVtcENvbmZpZyAoKSB7CiAgbG
V0IHJ2ID0gTUFOSUZFU1QubWFwKGFzeW5jIChkZXNjcmlwdG9yKSA9PiB7CiAgICByZXR1cm4gW2Rlc2Nya
XB0b3Iua2V5LCBhd2FpdCB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkdN
QVBJIl0uZ2V0VmFsdWUoZGVzY3JpcHRvci5rZXkpXTsKICB9KTsKICBydiA9IGF3YWl0IFByb21pc2UuYWx
sKHJ2KTsKICBjb25zdCBvID0ge307CiAgZm9yIChjb25zdCBbaywgdl0gb2YgcnYpIHsKICAgIG9ba10gPS
B2OwogIH0KICByZXR1cm4gbzsKfQogfSksCiAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c
19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CiJ1c2Ugc3RyaWN0IjsKX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnR
zX18sICJkZWJ1ZyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZGVidWc7IH0pOwogX193ZWJwYWNrX3JlcXVpcm
VfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJpbmZvIiwgZnVuY3Rpb24oKSB7IHJldHVybiBpbmZvOyB9K
TsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAid2FybiIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gd2FybjsgfSk7CiB2YXIgdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8
wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOwpjb25zdCBxdWlldCA9IGZhbHNlOwpmdW5jdGlvbiBsb2
cgKG1ldGhvZCwgYXJncykgewogIGlmIChxdWlldCkgewogICAgcmV0dXJuOwogIH0KICBhcmdzID0gQXJyY
XkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7CiAgaWYgKE9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siaXNTdHJpbmciXSkoYXJnc1swXSkpIHsKICAgIGFyZ3NbMF0gPSAnQWR
zQnlwYXNzZXI6ICcgKyBhcmdzWzBdOwogIH0gZWxzZSB7CiAgICBhcmdzLnVuc2hpZnQoJ0Fkc0J5cGFzc2
VyOicpOwogIH0KICBjb25zdCBmID0gY29uc29sZVttZXRob2RdOwogIGlmICh0eXBlb2YgZiA9PT0gJ2Z1b
mN0aW9uJykgewogICAgZi5hcHBseShjb25zb2xlLCBhcmdzKTsKICB9Cn0KZnVuY3Rpb24gZGVidWcgKCkg
ewogIGxvZygnZGVidWcnLCBhcmd1bWVudHMpOwp9CmZ1bmN0aW9uIGluZm8gKCkgewogIGxvZygnaW5mbyc
sIGFyZ3VtZW50cyk7Cn0KZnVuY3Rpb24gd2FybiAoKSB7CiAgbG9nKCd3YXJuJywgYXJndW1lbnRzKTsKfQ
ogfSksCiAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZ
V9fKSB7CiJ1c2Ugc3RyaWN0IjsKX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18p
OwogdmFyIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSB
fX3dlYnBhY2tfcmVxdWlyZV9fKDcpOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUl
RFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eYWtvYW1cLm5ld
CQvLAogICAgcGF0aDogL15cL2Rvd25sb2FkXC8oW14vXSspXC8vLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0p
IHsKICAgIGxldCBkYXRhID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siJCJdLnBvc3QobG9jYXRpb24uaHJlZiwgbS5wYXRoWzFdKTsKICAgIHRyeSB7Ci
AgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpOwogICAgfSBjYXRjaCAoZSkgewogICAgICBfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FybignSlNPTiBl
cnJvcjonLCBlKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGRhdGEuZGlyZWN0X2xpbm
spOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM
F9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsK
ICAgIGhvc3Q6IC9eKHd3d1wuKT9jb29scm9tXC5jb20kLywKICAgIHBhdGg6IC9eXC9kbHBvcFwucGhwJC8
sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBtYXRjaGVzID0gX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRzKC88Z
m9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iKFteIl0rKSI+Lyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsobWF0Y2hlc1s
xXSk7CiAgfSwKfSk7CihmdW5jdGlvbiAoKSB7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0
tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL
14od3d3XC4pP2RsLXByb3RlY3RcLmNvbSQvLAogICAgICBwYXRoOiAvXC9bQS1aMC05XSsvLAogICAgfSwK
ICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgaWYgKF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjY2FwdGNoYScpKSB7CiAgICAgICAgcmV0dXJuOwogIC
AgICB9CiAgICAgIGNvbnN0IGYgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMF9fWyIkIl0uJCgnZm9ybVtuYW1lPWNjZXJ1cmVdJyk7CiAgICAgIGlmIChmKSB7CiAgICAg
ICAgY29uc3QgaUluID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIiQiXSkoJ2lucHV0W2lkPWluXScpOwogICAgICAgIGlmIChpSW4udmFsdWUpIHsKIC
AgICAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIl8iXS53YWl0KDYwMCk7CiAgICAgICAgICBmLnN1Ym1pdCgpOwogICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICBjb25zdCBbLCAsIHBdID0gYXdhaXQgd2FpdERPTShpSW4sIHsKICAgICAgICAgICAgYXR0cml
idXRlczogdHJ1ZSwKICAgICAgICAgIH0sIChtdXRhdGlvbikgPT4gewogICAgICAgICAgICBpZiAoIW11dG
F0aW9uLnRhcmdldC52YWx1ZSB8fCBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lICE9PSAndmFsdWUnKSB7CiAgI
CAgICAgICAgICAgcmV0dXJuIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIl8iXS5ub25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlJbi52YWx1ZSA9ICdUcmF
ja2luZyB0b28gbXVjaCBodXJ0cyB1c2Vyc1wnIHByaXZhY3knOwogICAgICAgICAgICBpZiAoIWNhbkZhc3
RSZWRpcmVjdCgpKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgI
HJldHVybiBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJf
Il0ud2FpdCg2MDApOwogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAocCkgewogICAgICAgICAgICBhd2F
pdCBwOwogICAgICAgICAgICBmLnN1Ym1pdCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZX
R1cm47CiAgICAgIH0KICAgICAgY29uc3QgbCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kJCgnI3NsaW5rcyA+IGEnKTsKICAgICAgaWYgKGwubGVuZ3Ro
ID09PSAxKSB7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGxbMF0uaHJlZik7CiAgICAgIH0KICAgIH0sCiAgfSk7Ci
AgZnVuY3Rpb24gY2FuRmFzdFJlZGlyZWN0ICgpIHsKICAgIHJldHVybiAhX0FEU0JZUEFTU0VSX05BTUVTU
EFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJ2Zvcm1bbmFtZT1jY2VydXJlXScp
Lm9uc3VibWl0ICYmICFfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEV
fMF9fWyIkIl0uJCgnZm9ybVtuYW1lPWNjZXJ1cmVdIGlucHV0W25hbWU9cHdkXScpOwogIH0KICBmdW5jdG
lvbiB3YWl0RE9NIChlbGVtZW50LCBjb25maWcsIGZuKSB7CiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc
29sdmUpID0+IHsKICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRp
b25zKSA9PiB7CiAgICAgICAgY29uc3QgW2ssIHYsIHJdID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLmZpbmQobXV0YXRpb25zLCBmbik7CiAgICAgICAgaW
YgKGsgIT09IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bI
l8iXS5ub25lKSB7CiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICAgICAgICByZXNvbHZl
KFtrLCB2LCByXSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICB9KTsKICAgICAgb2JzZXJ
2ZXIub2JzZXJ2ZShlbGVtZW50LCBjb25maWcpOwogICAgfSk7CiAgfQp9KSgpOwpfQURTQllQQVNTRVJfTk
FNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6I
HsKICAgIGhvc3Q6IC9eZWxzZmlsZVwub3JnJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25z
dCBkb3duID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLiQoJyNidG5fZG93bmxvYWQnKTsKICAgIGlmIChkb3duKSB7CiAgICAgIGRvd24uY2xpY2soKTsKIC
AgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgY291bnRkb3duID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNmcm1kbGNlbnRlcicpOwog
ICAgY29uc3QgbyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgY29uc3Qgc3VibWl0ID0
gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJ2
lucHV0W3R5cGU9InN1Ym1pdCJdW25hbWU9Im1ldGhvZF9mcmVlIl0nKTsKICAgICAgaWYgKHN1Ym1pdCkge
wogICAgICAgIHN1Ym1pdC5jbGljaygpOwogICAgICB9CiAgICB9KTsKICAgIG8ub2JzZXJ2ZShjb3VudGRv
d24sIHsKICAgICAgY2hpbGRMaXN0OiB0cnVlCiAgICB9KTsKICAgIGxldCBzY3JpcHQgPSBfQURTQllQQVN
TRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcm
lwdHMoLy4qZXZhbFwoZnVuY3Rpb25cKHAsYSxjLGssZSxkXCkuKi8pOwogICAgaWYgKHNjcmlwdC5sZW5nd
GggPiAwKSB7CiAgICAgIHNjcmlwdCA9IHNjcmlwdFswXS5yZXBsYWNlKCd8fGltcG9ydGFudCcsICd8MHxp
bXBvcnRhbnQnKTsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siXyJdLmV2aWwoc2NyaXB0KTsKICAgIH0KICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgI
CBob3N0OiAvXih3d3dcLik/ZW1iZWR1cGxvYWRcLmNvbSQvLAogICAgcGF0aDogL15cLyQvLAogICAgcXVl
cnk6IC9eXD9cd3syfT1cdyskLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGRvd25sb2F
kUGFnZSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTE
VfMF9fWyIkIl0pKCcuY2F0ZWdvcmllcyBhW3RhcmdldD1fYmxhbmtdJyk7CiAgICBhd2FpdCBfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoZG93
bmxvYWRQYWdlKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURUR
fTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnd3d1wuZmlsZXByb2
plY3RcLmNvbVwuYnIkLywKICAgIHBhdGg6IC9eXC9maWxlc1wvKy8sCiAgfSwKICBhc3luYyByZWFkeSAoK
SB7CiAgICBjb25zdCBtID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRzKC88YSBpZD0iZG93biIgaHJlZj0iKFteIl0rKSI+Lyk
7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF
9fWyIkIl0ub3BlbkxpbmsobVsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQ
UNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogWwog
ICAgICAvXih3d3dcLik/aW5kaXNoYXJlXC4ob3JnfG1lKSQvLAogICAgICAvXmJkdXBsb2FkXC4oaW5mb3x
hc2lhKSQvLAogICAgICAvXnVwZ3JhbmRcLnNpdGUkLywKICAgICAgL14zemZpbGVcLm5ldCQvLAogICAgIC
AvXnVwbG9hZHJhclwuY29tJC8sCiAgICBdLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgY
nRuID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIiQiXSkoJ2J1dHRvbiNkb3dubG9hZGJ0bi5kb3dubG9hZGJ0bicpOwogICAgYnRuLnJlbW92ZUF0dHJ
pYnV0ZSgnZGlzYWJsZWQnKTsKICAgIGJ0bi5jbGljaygpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKI
CAgIGhvc3Q6IC9eaW5zdXJhbmNlLXdhaWZ1XC5jZiQvLAogICAgcXVlcnk6IC91PSguKykkLywKICB9LAog
IGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGYgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9
fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnZm9ybScpOwogICAgY29uc3QgYXJncyA9IH
t9OwogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siX
yJdLmZvckVhY2goZiwgKHYpID0+IHsKICAgICAgYXJnc1t2Lm5hbWVdID0gdi52YWx1ZTsKICAgIH0pOwog
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVB
PUlRFRF9NT0RVTEVfMF9fWyIkIl0ucG9zdChmLmdldEF0dHJpYnV0ZSgnYWN0aW9uJyksIGFyZ3MpOwogIC
AgY29uc3QgbCA9IHJlc3BvbnNlLm1hdGNoKC93aW5kb3dcLmxvY2F0aW9uXC5ocmVmLicoW14nXSspJzsvK
TsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIiQiXS5vcGVuTGluayhsWzFdKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXi
h3d3dcLik/amhlYmVyZ1wubmV0JC8sCiAgICBwYXRoOiAvXlwvY2FwdGNoYVwvLywKICB9LAogIGFzeW5jI
HJlYWR5ICgpIHsKICAgIE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyIkIl0pKCcuZGwtYnV0dG9uJykuY2xpY2soKTsKICB9LAp9KTsKX0FEU0JZUEFTU0V
SX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydW
xlOiB7CiAgICBob3N0OiAvXih3d3dcLik/amhlYmVyZ1wubmV0JC8sCiAgICBwYXRoOiAvXlwvcmVkaXJlY
3RcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICAndXNlIHN0cmljdCc7CiAgICBfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlQWxsVGltZXI
oKTsKICAgIGNvbnN0IG1hdGNoZXMgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUl
RFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoLydzbHVnJzpccyonKFteJ10rKScsXHMqJ
2hvc3Rlcic6XHMqJyhbXiddKyknLyk7CiAgICBjb25zdCBzbHVnID0gbWF0Y2hlc1sxXTsKICAgIGNvbnN0
IGhvc3RlciA9IG1hdGNoZXNbMl07CiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5wb3N0KCcvZ2V0L2xpbmsvJy
wgewogICAgICBzbHVnLAogICAgICBob3N0ZXIsCiAgICB9KTsKICAgIGNvbnN0IHJlc3BKU09OID0gSlNPT
i5wYXJzZShyZXNwb25zZSk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocmVzcEpTT04udXJsKTsKICB9LAp9KTsKX0FEU0J
ZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKH
sKICBydWxlOiB7CiAgICBob3N0OiAvXm1pcnJvcmFjZVwuKGNvbXxvcmcpJC8sCiAgICBwYXRoOiAvXlwvb
VwvLitcL1xkKy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBtYSA9IE9iamVjdChfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdhLnVrLWJ
1dHRvbjpudGgtY2hpbGQoMiknKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhtYS5ocmVmKTsKICB9LAp9KTsKX0FEU0JZU
EFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsK
ICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKHd3d1wuKT9taXJyb3JjcmVhdG9yXC5jb20kLywKICA
gICAgL14od3d3XC4pP21pcnJvcmVkXC50byQvLAogICAgXSwKICAgIHBhdGg6IC9eXC9kb3dubGlua1wvLy
wKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BT
UVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnLmNvbC1zbS5jZW50ZXJlZC5o
aWdobGlnaHQgYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU
1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZToge
wogICAgaG9zdDogWwogICAgICAvXih3d3dcLik/bWlycm9yY3JlYXRvclwuY29tJC8sCiAgICAgIC9eKHd3
d1wuKT9taXJyb3JlZFwudG8kLywKICAgIF0sCiA
gICBwYXRoOiAvXlwvZmlsZXNcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBPYmplY3QoX0FEU0
JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2RsX2Zvc
m0nKS5zdWJtaXQoKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXm11bHRpZmlsZW1
pcnJvclwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBtID0gT2JqZWN0KF9BRF
NCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNsY29kZ
SBmb3JtIGJ1dHRvbicpOwogICAgbS5jbGljaygpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNF
X19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGh
vc3Q6IC9ed3d3XC5tdWx0aXVwZmlsZVwuY29tJC8sCiAgICBwYXRoOiAvXlwvZlwvLywKICB9LAogIGFzeW
5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGYgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI3l3MCcpOwogICAgZi5zdWJtaXQoKTsKICB9LAp9
KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJ
lZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXm15bGlua2dlblwuY29tJC8sCiAgICBwYXRoOiAvXl
wvcFwvKC4rKSQvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluaygnL2cvJyArIG0u
cGF0aFsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01
PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15teWxpbmtnZW5cLmNvbS
QvLAogICAgcGF0aDogL15cL2dcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT
2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQi
XSkoJyNtYWluLWNvbnRlbnQgYS5idG4uYnRuLWRlZmF1bHQnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhhLmhyZWYpOw
ogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9wdXRsb2NrZXJcLmNvbSQv
LAogICAgcGF0aDogL15cL2ZpbGVcL1swLTlBLUZdKyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICA
gY29uc3QgYyA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyIkIl0pKCcjY29uZmlybV9mb3JtJyk7CiAgICBjLnN1Ym1pdCgpOwogIH0sCn0pOwpfQURTQ
llQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIo
ewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9edXBsb2FkaGF2ZW5cLmNvbSQvLAogICAgcGF0aDogL15cL2Rvd25
sb2FkXC8vLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLndhaXQoNTAwMCk7CiAgICBjb25zdCBmI
D0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IiQiXSkoJy5jb250YWN0Rm9ybSAjZG93bmxvYWROb3dCdG4uYnRuLmJ0bi1wcmltYXJ5Jyk7CiAgICBmLmN
saWNrKCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRF
VMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pP3VwbWlycm9yX
C5pbmZvJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2V0Q29va2llKCd1c2VyJywgJ3BwcCcpOwogICA
gaWYgKF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS
4kKCcjY291bnREb3duVGV4dCcpKSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhkb2N1bWVudC5sb2NhdGlvbi50b1N0
cmluZygpKTsKICAgIH0KICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/dm
lkdG9cLm1lJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBmID0gT2JqZWN0KF9BRFNCW
VBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNidG5fZG93
bmxvYWQnKS5mb3JtOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siXyJdLndhaXQoNiAqIDEwMDApOwogICAgZi5zdWJtaXQoKTsKICB9LAp9KTsKX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzd
GVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eenVwbG9hZFwubWUkLywKICAgICAgL156ZWVm
aWxlc1wuZG93bmxvYWQkLywKICAgIF0sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCB6ID0
gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIi
QiXSkoJ2J1dHRvbiNsaW5rX2J1dHRvbicpOwogICAgei5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7C
iAgICB6LmNsaWNrKCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14wMVwubmwkLyw
KICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGYgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnaWZyYW1lI3JlZGlyZWN0ZnJhb
WUnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIiQiXS5vcGVuTGluayhmLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19
XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdD
ogL14xMGNvXC4oYml6fHh5enxjb3xtZSkkLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0I
GQgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siJCJdKSgnLmdvJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVB
PUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoZC5kYXRhc2V0LmhyZWYpOwogIH0sCn0pOwpfQURTQl
lQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoe
wogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT8oMWJlfDFkbClcLmJpeiQvLAogICAgcGF0aDogL15c
L3pcLnBocCQvLAogICAgcXVlcnk6IC9eXD8oLispLywKICB9LAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICB
hd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl
0ub3BlbkxpbmsobS5xdWVyeVsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQ
UNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14o
MWJlfDFkbClcLmJpeiQvLAogICAgcGF0aDogL15cL1tqdF1cLnBocCQvLAogICAgcXVlcnk6IC9eXD9zPS8
sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU
1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy5qLWxpbmsnKTsKICAgIGF3Y
Wl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5v
cGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVB
PUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eMWlua1wuKG
NjfGluZm8pJC8sCiAgICBwYXRoOiAvXlwvXHcrJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZ
XQgdXJsID0gZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1rZXl3b3Jkc10nKS5jb250ZW50
OwogICAgY29uc3QgdXJsQ2hlY2sgPSB1cmwubWF0Y2goL15odHRwcz86XC9cLy8pOwogICAgaWYgKCF1cmx
DaGVjaykgewogICAgICB1cmwgPSAnaHR0cDovLycgKyB1cmw7CiAgICB9CiAgICBhd2FpdCBfQURTQllQQV
NTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodXJsK
TsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/MXRpbnlcLm5ldCQvLAo
gICAgcGF0aDogL1wvXHcrLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGRpcmVjdFVybC
A9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZ
WFyY2hGcm9tU2NyaXB0cygvd2luZG93XC5sb2NhdGlvbj0nKFteJ10rKSc7Lyk7CiAgICBpZiAoIWRpcmVj
dFVybCkgewogICAgICB0aHJvdyBuZXcgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siXyJdLkFkc0J5cGFzc2VyRXJyb3IoJ3NjcmlwdCBjb250ZW50IGNoYW5nZWQnKT
sKICAgIH0KICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PR
FVMRV8wX19bIiQiXS5vcGVuTGluayhkaXJlY3RVcmxbMV0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFN
RVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHs
KICAgIGhvc3Q6IC9eMXZcLnRvJC8sCiAgICBwYXRoOiAvXlwvdFwvW2EtekEtWjAtOS89XSsvLAogIH0sCi
AgYXN5bmMgc3RhcnQgKCkgewogICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY
2UoJy90LycsICcvc2FsaWVuZG8vJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocGF0aCk7CiAgfSwKfSk7Cl9BRFNCWVB
BU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7Ci
AgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pPzRmdW5cLnR3JC8sCiAgfSwKICBhc3luYyByZWFkeSAoK
SB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIiQiXSkoJyNvcmlnaW5hbF91cmwnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhpLnZhbHVlKT
sKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX
1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmFkMmxpbmtzXC5jb20kLywKICAgIHBh
dGg6IC9eXC9cdy0uKyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUV
TUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgIC
Bhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkI
l0ub3Blbkxpbmsod2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCksIHsKICAgICAgcG9zdDogewogICAgICAg
IGltYWdlOiAnU2tpcCBBZC4nLAogICAgICB9LAogICAgfSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogew
ogICAgaG9zdDogL15hZDRcLmZyJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUn
KTsKICAgIGNvbnN0IHMgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0R
VTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoLyJzcmMiLCAiKFteIl0rKSIvKTsKICAgIGlmICghcy
kgewogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yJfIl0ud2FybignY2hhbmdlZCcpOwogICAgICByZXR1cm47CiAgICB9CiAgICBhd2FpdCBfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbmsoc1sxXSk
7CiAgfSwKfSk7CihmdW5jdGlvbiAoKSB7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15hZ
DdcLmJpeiQvLAogICAgICBwYXRoOiAvXlwvXGQrXC8oLiopJC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQg
KG0pIHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICAgIGxldCByZWRpcmVjdExpbmsgPSBtLnBhdGhbMV07Ci
AgICAgIGlmICghcmVkaXJlY3RMaW5rLm1hdGNoKC9eaHR0cHM/OlwvXC8vKSkgewogICAgICAgIHJlZGlyZ
WN0TGluayA9ICdodHRwOi8vJyArIHJlZGlyZWN0TGluazsKICAgICAgfQogICAgICBhd2FpdCBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocmV
kaXJlY3RMaW5rKTsKICAgIH0sCiAgfSk7CiAgX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzd
GVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15hZDdcLmJpeiQvLAogICAgICBwYXRoOiAvXlwvXHcr
JC8sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUnKTsKICAgICAgY29uc3
Qgc2NyaXB0ID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX
1siJCJdLnNlYXJjaEZyb21TY3JpcHRzKCdjb25zdCByX3VybCcpOwogICAgICBsZXQgdXJsID0gc2NyaXB0
Lm1hdGNoKC8mdXJsPShbXiZdKykvKTsKICAgICAgdXJsID0gdXJsWzFdOwogICAgICBhd2FpdCBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodX
JsKTsKICAgIH0sCiAgfSk7Cn0pKCk7CihmdW5jdGlvbiAoKSB7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDR
V9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAg
ICAgaG9zdDogWwogICAgICAgIC9eKHd3d1wuKT9hZGJcLnVnJC8sCiAgICAgICAgL14od3d3XC4pP2x5bmt
cLm15JC8sCiAgICAgICAgL14od3d3XC4pP2FkeW91XC4oY298bWUpJC8sCiAgICAgIF0sCiAgICAgIHBhdG
g6IC9eKD8hXC8oPzpwcml2YWN5fHRlcm1zfGNvbnRhY3QoXC8uKik/fCMuKik/JCkuKiQvLAogICAgfSwKI
CAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICAgIGNvbnN0IG0gPSBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbV
NjcmlwdHMoL3RvcFwubG9jYXRpb25cLmhyZWY9IihbXiJdKykiLyk7CiAgICAgIGlmIChtKSB7CiAgICAgI
CAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
JCJdLm9wZW5MaW5rKG1bMV0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBhcmdzID0
gYXdhaXQgZ2V0QXJndW1lbnRzKCk7CiAgICAgIHRyeUxpbmsoYXJncyk7CiAgICB9LAogIH0pOwogIGZ1bm
N0aW9uIGdldEFyZ3VtZW50cyAoKSB7CiAgICBjb25zdCBQQVRURVJOID0gL1x7XHMqX2FyZ3NbXn1dK1x9W
159XStcfS87CiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgbSA9
IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWF
yY2hGcm9tU2NyaXB0cyhQQVRURVJOKTsKICAgICAgaWYgKG0pIHsKICAgICAgICByZXNvbHZlKG0pOwogIC
AgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2Vyd
mVyKChtdXRhdGlvbnMpID0+IHsKICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHsK
ICAgICAgICAgIG11dGF0aW9uLmFkZGVkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4gewogICAgICAgICAgICB
pZiAobm9kZS5sb2NhbE5hbWUgPT09ICdzY3JpcHQnKSB7CiAgICAgICAgICAgICAgY29uc3QgbSA9IG5vZG
UudGV4dENvbnRlbnQubWF0Y2goUEFUVEVSTik7CiAgICAgICAgICAgICAgaWYgKG0pIHsKICAgICAgICAgI
CAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKICAgICAgICAgICAgICAgIHJlc29sdmUobSk7CiAgICAg
ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CiA
gICAgIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgewogICAgICAgIGNoaWxkTGlzdDogdHJ1ZS
wKICAgICAgfSk7CiAgICB9KS50aGVuKChtKSA9PiB7CiAgICAgIHJldHVybiBfQURTQllQQVNTRVJfTkFNR
VNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uZXZpbChgKCR7bVswXX0pYCk7CiAg
ICB9KTsKICB9CiAgZnVuY3Rpb24gdHJ5TGluayAoYXJncykgewogICAgY29uc3QgdXJsID0gd2luZG93Lmx
vY2F0aW9uLnBhdGhuYW1lICsgJy9za2lwX3RpbWVyJzsKICAgIGNvbnN0IGkgPSBzZXRJbnRlcnZhbCgoKS
A9PiB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXS5wb3N0KHVybCwgYXJncykudGhlbigodGV4dCkgPT4gewogICAgICAgIGNvbnN0IGpqID0gSlNP
Ti5wYXJzZSh0ZXh0KTsKICAgICAgICBpZiAoIWpqLmVycm9ycyAmJiBqai5tZXNzYWdlcykgewogICAgICA
gICAgY2xlYXJJbnRlcnZhbChpKTsKICAgICAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhqai5tZXNzYWdlcy51cmwpOwogICAgICAgI
H0KICAgICAgfSk7CiAgICB9LCAxMDAwKTsKICB9Cn0pKCk7CihmdW5jdGlvbiAoKSB7CiAgX0FEU0JZUEFT
U0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICA
gIHJ1bGU6IHsKICAgICAgaG9zdDogL15hZGZcLmx5JC8sCiAgICAgIHBhdGg6IC9eXC9yZWRpcmVjdGluZ1
wvKC4rKSQvLAogICAgfSwKICAgIGFzeW5jIHN0YXJ0IChtKSB7CiAgICAgIGNvbnN0IHVybCA9IGF0b2Iob
S5wYXRoWzFdKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydW
xlOiB7CiAgICAgIHBhdGg6IC9cL2xvY2tlZCQvLAogICAgICBxdWVyeTogL3VybD0oW14mXSspLywKICAgI
H0sCiAgICBhc3luYyBzdGFydCAobSkgewogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVzZXRDb29raWVzKCk7CiAgICAgIF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZXRDb29raWUoJ0ZMWVNFU1
NJRCcsIGdlbmVyYXRlUmFuZG9tU2Vzc2lvbkNvb2tpZSg0MCkpOwogICAgICBjb25zdCB1cmwgPSBkZWNvZ
GVVUklDb21wb25lbnQobS5xdWVyeVsxXSk7CiAgICAgIGlmICh1cmwubWF0Y2goL15odHRwLykpIHsKICAg
ICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9
fWyIkIl0ub3BlbkxpbmsodXJsKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNTRV
JfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoZG9jdW1lb
nQucmVmZXJyZXIpOwogICAgICB9CiAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIHB
hdGg6IC9wdXNocmVkaXJlY3QvLAogICAgICBxdWVyeTogLy4qZGVzdD0oW14mXSspLywKICAgIH0sCiAgIC
Bhc3luYyBzdGFydCAobSkgewogICAgICBjb25zdCB1cmwgPSBkZWNvZGVVUklDb21wb25lbnQobS5xdWVye
VsxXSk7CiAgICAgIGlmICh1cmwubWF0Y2goL15odHRwLykpIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodXJsKTs
KICAgICAgfQogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUl
RFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBxdWVyeTogL2xwPWFkZ
mx5X2FsbG93Ji4qaHJlZj0oW14mXSspLywKICAgIH0sCiAgICBhc3luYyBzdGFydCAobSkgewogICAgICBj
b25zdCB1cmwgPSBkZWNvZGVVUklDb21wb25lbnQobS5xdWVyeVsxXSk7CiAgICAgIGlmICh1cmwubWF0Y2g
oL15odHRwLykpIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodXJsKTsKICAgICAgfQogICAgfSwKICB9KTsKICBfQ
URTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0
ZXIoewogICAgcnVsZSAoKSB7CiAgICAgIGNvbnN0IGggPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0V
CUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnaHRtbFtpZD0ibWFpbl9odG1sIl0nKTsKICAgIC
AgaWYgKGgpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gb
nVsbDsKICAgICAgfQogICAgfSwKICAgIGFzeW5jIHN0YXJ0ICgpIHsKICAgICAgX0FEU0JZUEFTU0VSX05B
TUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy5kb2N1bWVudC53cml
0ZSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS
5ub3A7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXS53aW5kb3cuYnRvYSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIl8iXS5ub3A7CiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZn
JhbWUnKTsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFX
zBfX1siJCJdLnNldENvb2tpZSgnRkxZU0VTU0lEJywgZ2VuZXJhdGVSYW5kb21TZXNzaW9uQ29va2llKDQw
KSk7CiAgICAgIGNvbnN0IGNsb3NlID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siJCJdLiQoJ2RpdltvbmNsaWNrPSJjbG9zZV9iYXIoKTsiXScpOwogICAgICBpZi
AoY2xvc2UpIHsKICAgICAgICBjbG9zZS5jbGljaygpOwogICAgICB9CiAgICAgIGxldCBydiA9IGF3YWl0I
F9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5nZXQo
bG9jYXRpb24uaHJlZiwgJycsIHsKICAgICAgICAnT3JpZ2luJzogX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9
fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLm5vbmUsCiAgICAgICAgJ1JlZmVyZXInOiBfQU
RTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ubm9uZSwKI
CAgICAgICAnWC1SZXF1ZXN0ZWQtV2l0aCc6IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIl8iXS5ub25lLAogICAgICB9KTsKICAgICAgcnYgPSBfQURTQllQQVNTRVJ
fTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0udG9ET00ocnYpOwogICAgIC
BydiA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
S5zZWFyY2hGcm9tU2NyaXB0cygvdmFyIHlzbW0gPSAnKFteJ10rKScvLCBydik7CiAgICAgIHJ2ID0gcnZb
MV07CiAgICAgIHJ2ID0gZGVjb2RlVG9rZW4ocnYpOwogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVN
QQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocnYpOwogICAgfSwKIC
B9KTsKICBmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbVNlc3Npb25Db29raWUgKGxlbmd0aCkgewogICAgY29uc
3QgcnYgPSBbXTsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgcnYucHVz
aChNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5jaGFyQXQoMikpOwogICAgfQogICAgcmV0dXJuIHJ2Lmp
vaW4oJycpOwogIH0KICBmdW5jdGlvbiBkZWNvZGVUb2tlbiAodG9rZW4pIHsKICAgIGxldCBhID0gJyc7Ci
AgICBsZXQgYiA9ICcnOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5sZW5ndGg7ICsraSkgewogI
CAgICBpZiAoaSAlIDIgPT09IDApIHsKICAgICAgICBhID0gYSArIHRva2VuLmNoYXJBdChpKTsKICAgICAg
fSBlbHNlIHsKICAgICAgICBiID0gdG9rZW4uY2hhckF0KGkpICsgYjsKICAgICAgfQogICAgfQogICAgdG9
rZW4gPSBhICsgYjsKICAgIGEgPSB0b2tlbi5zcGxpdCgnJyk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG
EubGVuZ3RoOyArK2kpIHsKICAgICAgaWYgKC9cZC8udGVzdChhW2ldKSkgewogICAgICAgIGZvciAobGV0I
GogPSBpICsgMTsgaiA8IGEubGVuZ3RoOyArK2opIHsKICAgICAgICAgIGlmICgvXGQvLnRlc3QoYVtqXSkp
IHsKICAgICAgICAgICAgYiA9IGFbaV0gXiBhW2pdOwogICAgICAgICAgICBpZiAoYiA8IDEwKSB7CiAgICA
gICAgICAgICAgYVtpXSA9IGI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaSA9IGo7CiAgICAgICAgIC
AgIGogPSBhLmxlbmd0aDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHRva2VuI
D0gYS5qb2luKCcnKTsKICAgIHRva2VuID0gYXRvYih0b2tlbik7CiAgICB0b2tlbiA9IHRva2VuLnN1YnN0
cmluZygxNik7CiAgICB0b2tlbiA9IHRva2VuLnN1YnN0cmluZygwLCB0b2tlbi5sZW5ndGggLSAxNik7CiA
gICBpZiAobG9jYXRpb24uaGFzaCkgewogICAgICB0b2tlbiArPSBsb2NhdGlvbi5oYXNoOwogICAgfQogIC
AgcmV0dXJuIHRva2VuOwogIH0KfSkoKTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cDovL2FkZm9jLnVzLyonLAog
IGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4
gewogICAgICBjb25zdCByb290ID0gZG9jdW1lbnQuYm9keTsKICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZX
cgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7CiAgICAgICAgbGV0IG8gPSBfQURTQllQQVNTRVJfTkFNRVNQQ
UNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnI3Nob3dTa2lwJyk7CiAgICAgICAg
aWYgKG8pIHsKICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKICAgICAgICAgIG8gPSBvLnF1ZXJ
5U2VsZWN0b3IoJ2EnKTsKICAgICAgICAgIHJlc29sdmUoby5ocmVmKTsKICAgICAgICB9CiAgICAgIH0pOw
ogICAgICBvYnNlcnZlci5vYnNlcnZlKHJvb3QsI
HsKICAgICAgICBjaGlsZExpc3Q6IHRydWUsCiAgICAgICAgc3VidHJlZTogdHJ1ZSwKICAgICAgfSk7CiAg
ICB9KTsKICAgIGNvbnN0IHVybCA9IGF3YWl0IHByb21pc2U7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkF
NRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodXJsKTsKICB9LA
p9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdL
nJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/YWRsb3RcLnVzJC8sCiAgfSwKICBh
c3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUnKTsKICAgIGNvbnN0IHNjcmlwdCA9IF9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2Nya
XB0cygnZm9ybScpOwogICAgY29uc3QgcCA9IC9uYW1lPScoW14nXSspJyB2YWx1ZT0nKFteJ10rKScvZzsK
ICAgIGNvbnN0IG9wdCA9IHsKICAgICAgaW1hZ2U6ICcgJywKICAgIH07CiAgICBsZXQgdG1wID0gbnVsbDs
KICAgIHdoaWxlICgodG1wID0gcC5leGVjKHNjcmlwdCkpKSB7CiAgICAgIG9wdFt0bXBbMV1dID0gdG1wWz
JdOwogICAgfQogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfT
U9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKCcnLCB7CiAgICAgIHBhdGg6IG9wdCwKICAgIH0pOwogIH0sCn0p
OwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmV
naXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eYWRteVwubGluayQvLAogIH0sCiAgYXN5bmMgcmVhZH
kgKCkgewogICAgY29uc3QgZiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JT
VBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdmb3JtLmVkaXRfbGluaycpOwogICAgZi5zdWJtaXQoKTsKICB9
LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJ
dLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/YWgtaW5mb3JtYXRpcXVlXC5jb2
0kLywKICAgIHBhdGg6IC9eXC9aaXBVcmwvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgY
SA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyIkIl0pKCcjemlwMyBhJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19
JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYS5ocmVmKTsKICB9LAp9KTsKKGZ1bmN0aW9uIC
gpIHsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfI
l0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXmFoXC5wZSQvLAogICAgfSwKICAgIGFz
eW5jIHJlYWR5ICgpIHsKICAgICAgbGV0IHNjcmlwdCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygnZXZhbCcpOwogICAgIC
BzY3JpcHQgPSBkZWNvZGVTY3JpcHQoc2NyaXB0KTsKICAgICAgc2NyaXB0ID0gZGVjb2RlU2NyaXB0KHNjc
mlwdCk7CiAgICAgIHNjcmlwdCA9IGRlY29kZVNjcmlwdChzY3JpcHQpOwogICAgICBsZXQgcGF0aCA9IHNj
cmlwdC5tYXRjaCgvKFteOz0gXSspPShbXisgO10rKVwrIlwuIlwrKFteKyBdKylcKyJcLiJcKyhbXjsgXSs
pOy8pOwogICAgICBpZiAoIXBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLkFkc0J5cGFzc2VyRXJyb3IoJ3Njcmlwd
CBjaGFuZ2VkJyk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93W3BhdGhbMl1dID09PSAndW5kZWZpbmV
kJykgewogICAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIl8iXS5pbmZvKCdyZWNhcHRjaGEnKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgcGF0a
CA9IFtfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0u
d2luZG93W3BhdGhbMl1dLCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0R
VTEVfMF9fWyIkIl0ud2luZG93W3BhdGhbM11dLCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS1
9JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93W3BhdGhbNF1dXS5qb2luKCcuJyk7CiAgICAgIGF3Y
Wl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5v
cGVuTGluayhwYXRoKTsKICAgIH0sCiAgfSk7CiAgZnVuY3Rpb24gZGVjb2RlU2NyaXB0IChlbmNvZGVkKSB
7CiAgICBsZXQgYSA9IGVuY29kZWQubWF0Y2goL15ccyo7ZXZhbFwoKC4rKVwpO1xzKiQvKTsKICAgIGEgPS
BhWzFdOwogICAgY29uc3QgYiA9IGEubWF0Y2goL14oLispXCgnKFteJ10rKScsJyhbXiddKyknLCcoW14nX
SspJywnKFteJ10rKSdcKSQvKTsKICAgIGNvbnN0IGMgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uZXZpbChgKCR7YlsxXX0pYCk7CiAgICByZXR1cm4gYyh
iWzJdLCBiWzNdLCBiWzRdLCBiWzVdKTsKICB9Cn0pKCk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRU
JQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL
15ha2FcLmdyJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBsID0gT2JqZWN0KF9BRFNC
WVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2lmcmFtZSN
5b3VybHMtZnJhbWUnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE
9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhsLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTog
ewogICAgaG9zdDogWwogICAgICAvXmFsXC5seSQvLAogICAgICAvXmFsbHlcLnNoJC8sCiAgICAgIC9eYWx
seVwuc2hvcnRlbnNcLmNvJC8sCiAgICAgIC9eKGRhdXNlbHxvbmxlKVwuY28kLywKICAgIF0sCiAgfSwKIC
Bhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgaSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjaHRtbF9lbGVtZW50Jyk7CiAgICBpZiAoaSkgewogICAg
ICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmV
tb3ZlKCcjbWVzc2EnKTsKICAgICAgaS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAgICAgcmV0dX
JuOwogICAgfQogICAgaSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PR
FVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygvImhyZWYiLCIoW14iXSspIiBcKyBoYXNoXClcLnJl
bW92ZS8pOwogICAgaWYgKCFpKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YXJuKCdzaXRlIGNoYW5nZWQnKTsKICAgICAgcmV0dXJuOwogIC
AgfQogICAgaSA9IGlbMV0gKyBsb2NhdGlvbi5oYXNoOwogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX
1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGkpOwogIH0sCn0pOwpfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewo
gIHJ1bGU6IHsKICAgIGhvc3Q6IFsKICAgICAgL14od3d3XC4pP2FsbGtleXNob3BcLmNvbSQvLAogICAgIC
AvXmNzaG9ydFwub3JnJC8sCiAgICBdLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgbGV0IG1hdGNoZ
XMgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0u
c2VhcmNoRnJvbVNjcmlwdHMoL3dpbmRvd1wubG9jYXRpb25cLmhyZWYgPSAiKFteIl0rKSIvKTsKICAgIG1
hdGNoZXMgPSBtYXRjaGVzWzFdOwogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1
JURURfTU9EVUxFXzBfX1siJCJdLm51a2UobWF0Y2hlcyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNR
VNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsobWF0Y2hlcyk7CiAg
fSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8
iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15hcGttb2RpZlwuY29tJC8sCiAgfSwKICBhc3
luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ1tuYW1lPSJnZXR1cmwiXScpLmdldEF0dHJpYnV0
ZSgndmFsdWUnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhhKTsKICB9LAp9KTsKKGZ1bmN0aW9uICgpIHsKICBjb25zdC
BhamF4UGF0dGVybiA9IC9cJC5wb3N0XCgnKFteJ10qKSdbXntdKyhce1xzKm9wdDpccyonbWFrZV9sb2cnW
159XStcfVxzKlx9KSwvaTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXmJjXC52YyQvLAo
gICAgICBwYXRoOiAvXi4rKGh0dHBzPzpcL1wvLispJC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQgKG0pIH
sKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFX
zBfX1siJCJdLm9wZW5MaW5rKG0ucGF0aFsxXSArIGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCArIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0V
CUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3
N0OiAvXmJjXC52YyQvLAogICAgICBwYXRoOiAvXlwvLisvLAogICAgfSwKICAgIGFzeW5jIHJlYWR5ICgpI
HsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
JCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgZmluZEFKQVhUb2tlbig
pOwogICAgICBjb25zdCB0aW1lID0gZmFrZUFKQVhUb2tlbigpOwogICAgICBjb25zdCB1cmwgPSBgL2ZseS
9sbi5waHA/d2RzPSR7dG9rZW4ud2RzfSZ0aW1lPSR7dGltZX1gOwogICAgICBhd2FpdCBfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCg1MDAwKTsKICAg
ICAgbGV0IHJ2ID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siJCJdLnBvc3QodXJsLCB7CiAgICAgICAgeGRmOiB7CiAgICAgICAgICBhZmc6IDMwMCwKIC
AgICAgICAgIGJmZzogNjQwLAogICAgICAgICAgY2ZnOiA0ODAsCiAgICAgICAgICBqa2k6IHRva2VuLmpra
SwKICAgICAgICAgIGRmZzogNjQwLAogICAgICAgICAgZWZnOiA0ODAsCiAgICAgICAgICBydDogdG9rZW4u
cnQsCiAgICAgICAgfSwKICAgICAgICBvams6IHRva2VuLm9qaywKICAgICAgfSk7CiAgICAgIHJ2ID0gSlN
PTi5wYXJzZShydik7CiAgICAgIGlmIChydi5lcnJvcikgewogICAgICAgIHRocm93IG5ldyBfQURTQllQQV
NTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uQWRzQnlwYXNzZXJFc
nJvcignYXV0aCBlcnJvcicpOwogICAgICB9CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0Vf
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhydi5tZXNzYWdlLnVybCk7CiA
gICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IFsKICAgICAgICAvXm15bGlua
1wudXMkLywKICAgICAgICAvXnhhZm94XC5jb20kLywKICAgICAgICAvXnpwb3pcLm5ldCQvLAogICAgICAg
IC9ed3d3XC5hZGpldFwuZXUkLywKICAgICAgXSwKICAgICAgcGF0aDogL15cLy4rLywKICAgIH0sCiAgICB
yZWFkeTogcnVuLAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eeXNlYXJcLmNoJ
C8sCiAgICAgIHBhdGg6IC9eXC8uKy8sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICBjb25z
dCBhID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJ
dLiQoJ2Rpdi5mbHlfaGVhZCBhLmNsb3NlJyk7CiAgICAgIGNvbnN0IGYgPSBfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnaWZyYW1lLmZseV9mcmFtZScpO
wogICAgICBpZiAoYSAmJiBmKSB7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGYuc3JjKTsKICAgICAgfSBlbHNlIHs
KICAgICAgICBhd2FpdCBydW4oKTsKICAgICAgfQogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZToge
wogICAgICBob3N0OiAvXmFkNVwuZXUkLywKICAgICAgcGF0aDogL15cL1teLl0rJC8sCiAgICB9LAogICAg
YXN5bmMgcmVhZHkgKCkgewogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlR
FRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUnKTsKICAgICAgY29uc3QgcyA9IHNlYXJjaFNjcm
lwdCh0cnVlKTsKICAgICAgbGV0IG0gPSBzLnNjcmlwdC5tYXRjaCgvKDxmb3JtIG5hbWU9ImZvcm0xIm1ld
GhvZD0icG9zdCIuKig/ITxcXGZvcm0+KTxcL2Zv
cm0+KS8pOwogICAgICBpZiAoIW0pIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgbSA9IG1bMV0
7CiAgICAgIGNvbnN0IHR6ID0gLShuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCk7CiAgIC
AgIG0gPSBtLnJlcGxhY2UoJ1wnK3RpbWV6b25lK1wnJywgdHopOwogICAgICBjb25zdCBkID0gZG9jdW1lb
nQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIGQuc2V0QXR0cmlidXRlKCdpZCcsICdBZHNCeXBhc3Nl
ckZUVycpOwogICAgICBkLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpub25lOycpOwogICAgICB
kLmlubmVySFRNTCA9IG07CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCk7CiAgICAgIE9iam
VjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pK
CcjQWRzQnlwYXNzZXJGVFcgPiBmb3JtW25hbWU9Zm9ybTFdJykuc3VibWl0KCk7CiAgICB9LAogIH0pOwog
IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWd
pc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9edHI1XC5pbiQvLAogICAgICBwYXRoOiAvXlwvLi
svLAogICAgfSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgYXdhaXQgcnVuKHRydWUpOwogICAgfSwKI
CB9KTsKICBmdW5jdGlvbiBkZWNvbXByZXNzIChzY3JpcHQsIHVuemlwKSB7CiAgICBpZiAoIXVuemlwKSB7
CiAgICAgIHJldHVybiBzY3JpcHQ7CiAgICB9CiAgICBsZXQgbWF0Y2hlcyA9IHNjcmlwdC5tYXRjaCgvZXZ
hbCguKikvKTsKICAgIGlmICghbWF0Y2hlcykgewogICAgICB0aHJvdyBuZXcgX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLkFkc0J5cGFzc2VyRXJyb3IoJ25vI
HNjcmlwdCBtYXRjaGVzIC9ldmFsKC4qKS8nKTsKICAgIH0KICAgIG1hdGNoZXMgPSBtYXRjaGVzWzFdOwog
ICAgc2NyaXB0ID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siXyJdLmV2aWwobWF0Y2hlcyk7CiAgICByZXR1cm4gc2NyaXB0OwogIH0KICBmdW5jdGlvbiBzZWFyY2
hTY3JpcHQgKHVuemlwKSB7CiAgICBsZXQgY29udGVudCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygnbWFrZV9sb2cnKTsK
ICAgIGlmIChjb250ZW50KSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgZGlyZWN0OiBmYWxzZSwKICAgICA
gICBzY3JpcHQ6IGRlY29tcHJlc3MoY29udGVudCwgdW56aXApLAogICAgICB9OwogICAgfQogICAgY29udG
VudCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
S5zZWFyY2hGcm9tU2NyaXB0cygnY2xpY2tfbG9nJyk7CiAgICBpZiAoY29udGVudCkgewogICAgICByZXR1
cm4gewogICAgICAgIGRpcmVjdDogdHJ1ZSwKICAgICAgICBzY3JpcHQ6IGRlY29tcHJlc3MoY29udGVudCw
gdW56aXApLAogICAgICB9OwogICAgfQogICAgdGhyb3cgbmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX1
9XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCdzY3JpcHQgY2hhb
mdlZCcpOwogIH0KICBmdW5jdGlvbiBrbm9ja1NlcnZlciAoc2NyaXB0LCBkaXJ0eUZpeCkgewogICAgY29u
c3QgbWF0Y2hlcyA9IHNjcmlwdC5tYXRjaChhamF4UGF0dGVybik7CiAgICBpZiAoIW1hdGNoZXMpIHsKICA
gICAgdGhyb3cgbmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCcoaW4ga25vY2sgc2VydmVyKSBubyBzY3JpcHQgbWF0Y2hlc
yAkLnBvc3QnKTsKICAgIH0KICAgIGNvbnN0IG1ha2VfdXJsID0gbWF0Y2hlc1sxXTsKICAgIGNvbnN0IG1h
a2Vfb3B0cyA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19
bIl8iXS5ldmlsKGAoJHttYXRjaGVzWzJdfSlgKTsKICAgIGNvbnN0IGkgPSBzZXRJbnRlcnZhbChmdW5jdG
lvbiAoKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIiQiXS5wb3N0KG1ha2VfdXJsLCBtYWtlX29wdHMpLnRoZW4oZnVuY3Rpb24gKHRleHQpIHsKICAg
ICAgICBpZiAoZGlydHlGaXgpIHsKICAgICAgICAgIHRleHQgPSB0ZXh0Lm1hdGNoKC9cey4rXH0vKVswXTs
KICAgICAgICB9CiAgICAgICAgY29uc3QgamogPSBKU09OLnBhcnNlKHRleHQpOwogICAgICAgIGlmIChqai
5tZXNzYWdlKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKGkpOwogICAgICAgICAgcmV0dXJuIF9BRFNCW
VBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhq
ai5tZXNzYWdlLnVybCk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sIDEwMDApOwogIH0KICBhc3luYyB
mdW5jdGlvbiBydW4gKGRpcnR5Rml4KSB7CiAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS1
9JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUnKTsKICAgIGxldCByZXN1bHQgPSBzZ
WFyY2hTY3JpcHQodHJ1ZSk7CiAgICBpZiAoIXJlc3VsdC5kaXJlY3QpIHsKICAgICAga25vY2tTZXJ2ZXIo
cmVzdWx0LnNjcmlwdCxkaXJ0eUZpeCk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSByZXN1bHQuc2N
yaXB0Lm1hdGNoKC90b3BcLmxvY2F0aW9uXC5ocmVmPScoW14nXSspJy8pOwogICAgICBpZiAoIXJlc3VsdC
kgewogICAgICAgIHRocm93IG5ldyBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMF9fWyJfIl0uQWRzQnlwYXNzZXJFcnJvcignc2NyaXB0IGNoYW5nZWQnKTsKICAgICAgfQog
ICAgICByZXN1bHQgPSByZXN1bHRbMV07CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19
XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhyZXN1bHQpOwogICAgfQogIH0KIC
Bhc3luYyBmdW5jdGlvbiBmaW5kQUpBWFRva2VuICgpIHsKICAgIGNvbnN0IHJ2ID0gX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRz
KCd4eXonKTsKICAgIGlmICghcnYpIHsKICAgICAgdGhyb3cgbmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0V
fX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCdzY3JpcHQgY2
hhbmdlZCcpOwogICAgfQogICAgbGV0IHdkcyA9IHJ2Lm1hdGNoKC94eXpccyo9XHMqJyhbXiddKyknLyk7C
iAgICBpZiAoIXdkcykgewogICAgICB0aHJvdyBuZXcgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLkFkc0J5cGFzc2VyRXJyb3IoJ3NjcmlwdCBjaGFuZ2VkJyk
7CiAgICB9CiAgICB3ZHMgPSB3ZHNbMV07CiAgICBsZXQgamtpID0gcnYubWF0Y2goL3RrblxzKj1ccyonKF
teJ10rKScvKTsKICAgIGlmICghamtpKSB7CiAgICAgIHRocm93IG5ldyBfQURTQllQQVNTRVJfTkFNRVNQQ
UNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uQWRzQnlwYXNzZXJFcnJvcignc2NyaXB0
IGNoYW5nZWQnKTsKICAgIH0KICAgIGpraSA9IGpraVsxXTsKICAgIGNvbnN0IHJ0ID0gT2JqZWN0KF9BRFN
CWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNyZWNhcH
RjaGFUb2tlbicpOwogICAgd2hpbGUgKCFydC52YWx1ZSkgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfT
kFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCg1MDApOwogICAgfQog
ICAgcmV0dXJuIHsKICAgICAgd2RzOiB3ZHMsCiAgICAgIGpraTogamtpLAogICAgICBvams6ICdqZmhnJyw
KICAgICAgcnQ6IHJ0LnZhbHVlLAogICAgfTsKICB9CiAgZnVuY3Rpb24gZmFrZUFKQVhUb2tlbiAoKSB7Ci
AgICBjb25zdCBza2lwQWQgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2dldExpbmsnKS5wYXJlbnRFbGVtZW50OwogICAgY29uc3QgbWFy
Z2luID0gNjsKICAgIGNvbnN0IGZha2VQYWdlWCA9IHNraXBBZC5vZmZzZXRMZWZ0ICsgbWFyZ2luICsgNTA
gKyAoTWF0aC5yYW5kb20oKSAqIDEwKTsKICAgIGNvbnN0IGZha2VQYWdlWSA9IHNraXBBZC5vZmZzZXRUb3
AgKyBtYXJnaW4gKyAxNSArIChNYXRoLnJhbmRvbSgpICogMSk7CiAgICBjb25zdCBwbyA9IGZha2VQYWdlW
CArICcsJyArIGZha2VQYWdlWTsKICAgIGNvbnN0IHBvc1ggPSBqUXVlcnlPZmZzZXQoc2tpcEFkKS5sZWZ0
ICsgbWFyZ2luOwogICAgY29uc3QgcG9zWSA9IGpRdWVyeU9mZnNldChza2lwQWQpLnRvcCArIG1hcmdpbjs
KICAgIGNvbnN0IHBvcyA9IE1hdGguYWJzKGZha2VQYWdlWCAtIHBvc1gpICsgJywnICsgTWF0aC5hYnMoZm
FrZVBhZ2VZIC0gcG9zWSk7CiAgICBjb25zdCB0c3RhXyA9IE1hdGguZmxvb3IoKDUgKyBNYXRoLnJhbmRvb
SgpKSAqIDEwMDApOwogICAgY29uc3QgdGltZSA9IHBvICsgJzonICsgcG9zICsgJzonICsgdHN0YV87CiAg
ICByZXR1cm4gdGltZTsKICB9CiAgZnVuY3Rpb24galF1ZXJ5T2Zmc2V0IChlbGVtZW50KSB7CiAgICBjb25
zdCByID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHJldHVybiB7CiAgICAgIHRvcD
ogci50b3AgKyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCwKICAgICAgbGVmdDogci5sZWZ0ICsgZG9jdW1lb
nQuYm9keS5zY3JvbGxMZWZ0LAogICAgfTsKICB9Cn0pKCk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDo
gL14od3d3XC4pP2JpZ2xpc3RvZndlYnNpdGVzXC5jb20kLywKICAgIHBhdGg6IC9eXC9nb1wvKFx3K1wuXH
crKSQvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ
0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluaygnaHR0cDovLycgKyBtLnBh
dGhbMV0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0R
VTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6ICdodHRwOi8vd3d3LmJpbGQubWUvYmlsZC5waHA/Zm
lsZT0qJywKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNCaWxkJyk7CiAgICBhd2Fp
dCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3B
lbkxpbmsoaS5zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUl
RFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6ICdodHRwOi8vYmlsZHIubm8vdmlldy8qJ
ywKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BB
Q0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2ltZy5iaWxkZScpOwogICAgYXdhaXQ
gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW
5MaW5rKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiBbCiAgICB7CiAgICAgIGhvc3Q6IC9eKHd3
d1wuKT8oW2EtekEtWjAtOV0rXC4pP2JpbmJveFwuaW8kLywKICAgICAgcGF0aDogL1wvb1wvKFthLXpBLVo
wLTldKykvLAogICAgfSwKICAgIHsKICAgICAgaG9zdDogL15nc216b25lXC5zaXRlJC8sCiAgICAgIHBhdG
g6IC9cL2dvXC8oW2EtekEtWjAtOV0rKS8sCiAgICB9LAogIF0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgI
GNvbnN0IGRpcmVjdF9saW5rID0gd2luZG93LmF0b2IobS5wYXRoWzFdKTsKICAgIGF3YWl0IF9BRFNCWVBB
U1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhkaXJ
lY3RfbGluayk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15ibG9nXC5sYW5nd1wud
2ViXC5pZCQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgdXJsID0gZGVjb2RlVVJJQ29t
cG9uZW50KGRlY29kZVVSSUNvbXBvbmVudChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVB
PUlRFRF9NT0RVTEVfMF9fWyIkIl0uZ2V0Q29va2llKCd3cGJfdmlzaXRfdGltZScpKSk7CiAgICBpZiAodX
JsLm1hdGNoKC9eaHR0cC8pKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV8wX19bIiQiXS5yZXNldENvb2tpZXMoKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VS
X05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiA
gICB9CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15ibHVlbWVkaWFmaWxlc1wuY29tJ
C8sCiAgICBwYXRoOiAvXlwvY3JlYXRpbmdsaW5rcy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBj
b25zdCBiID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLnNlYXJjaEZyb21TY3JpcHRzKC9GaW5pc2hNZXNzYWdlID0gJzxhIGhyZWY9IihbXiJdKykiID4vKT
sKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXS5vcGVuTGluayhiWzFdKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmN
hdGN1dFwubmV0JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgYSA9IF9BRFNCWVBBU1NFUl
9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0c
ygvZGVjb2RlVVJJQ29tcG9uZW50XCgnKFteJ10rKSdcKS8pOwogICAgYSA9IGRlY29kZVVSSUNvbXBvbmVu
dChhWzFdKTsKICAgIGEgPSBuZXcgVVJMKGEpOwo
gICAgYSA9IGEuc2VhcmNoUGFyYW1zLmdldCgnYScpOwogICAgYSA9IGF0b2IoYSk7CiAgICBhd2FpdCBfQU
RTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpb
msoYSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pP2NsaVwuZ3MkLyw
KICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnYS5SZWRpcmVjdExpbmsnKTsKI
CAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IiQiXS5vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eY2
xrXC5pbSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX
1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICBjb25zdCBt
YXRjaGVzID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLnNlYXJjaEZyb21TY3JpcHRzKC9cJFwoIlwuY291bnRkb3duIlwpXC5hdHRyXCgiaHJlZiIsIihbXi
JdKykiXCkvKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhtYXRjaGVzWzFdKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05B
TUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB
7CiAgICBob3N0OiAvXmNvY29sZWVjaFwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb2
5zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIiQiXSkoJy5idG4uYnRuLWJsb2NrLmJ0bi1zdWNjZXNzJyk7CiAgICBhd2FpdCBfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYS5ocmV
mKTsKICB9LAp9KTsKKGZ1bmN0aW9uICgpIHsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS1
9JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiBbC
iAgICAgICAgL14oY29lZ3xkaXNpbmdrYXQpXC5pbiQvLAogICAgICAgIC9ed3d3XC4odGVsb25kYXNtdXxz
aW90b25nfHNpaGVycClcLmNvbSQvLAogICAgICAgIC9ed3d3XC5ncmVnZXRcLnNwYWNlJC8sCiAgICAgIF0
sCiAgICAgIHBhdGg6IC9eXC8uKyQvLAogICAgfSwKICAgIGFzeW5jIHJlYWR5IChtKSB7CiAgICAgIGNvbn
N0IG1hcHBlciA9IGhvc3RNYXBwZXIobS5ob3N0WzBdKTsKICAgICAgY29uc3QgYjY0ID0gbWFwcGVyKCkub
WF0Y2goL1w/cj0oW1x3L10rPXswLDJ9KS8pOwogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNF
X19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYXRvYihiNjRbMV0pKTsKICA
gIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXz
BfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15zaXBrdXJcLm5ldCQvLAogI
CAgICBwYXRoOiBbCiAgICAgICAgL15cL1x3KyQvLAogICAgICAgIC9eXC9tZW51anVsaW5rXC8vLAogICAg
ICBdLAogICAgfSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgbGV0IGQgPSBPYmplY3QoX0FEU0JZUEF
TU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI3Rlc3RhcGsgPi
BkaXYnKTsKICAgICAgZCA9IGQub25jbGljay50b1N0cmluZygpOwogICAgICBkID0gZC5tYXRjaCgvd2luZ
G93XC5vcGVuXCgnKFteJ10rKScvKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGRbMV0pOwogICAgfSwKICB9KTsKICB
mdW5jdGlvbiBob3N0TWFwcGVyIChob3N0KSB7CiAgICBzd2l0Y2ggKGhvc3QpIHsKICAgIGNhc2UgJ2Rpc2
luZ2thdC5pbic6CiAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgY29uc3QgYSA9IE9iamVjdChfQURTQ
llQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdhLmJ0bi1i
bG9jay5yZWRpcmVjdCcpOwogICAgICAgIHJldHVybiBhLmhyZWY7CiAgICAgIH07CiAgICBjYXNlICdjb2V
nLmluJzoKICAgIGNhc2UgJ3d3dy50ZWxvbmRhc211LmNvbSc6CiAgICBjYXNlICd3d3cuc2lvdG9uZy5jb2
0nOgogICAgY2FzZSAnd3d3LnNpaGVycC5jb20nOgogICAgY2FzZSAnd3d3LmdyZWdldC5zcGFjZSc6CiAgI
CAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgY29uc3QgYSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQ
QUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcuZG93bmxvYWQtbGluayBhJyk7CiA
gICAgICAgcmV0dXJuIGEuaHJlZjsKICAgICAgfTsKICAgIGRlZmF1bHQ6CiAgICAgIHJldHVybiBudWxsOw
ogICAgfQogIH0KfSkoKTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EV
UxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKD86KFx3Kylc
Lik/Y29pbnVybFwuY29tJC8sCiAgICAgIC9eKD86KFx3KylcLik/Y3VyXC5sdiQvLAogICAgXSwKICAgIHB
hdGg6IC9eXC8oWy1cd10rKSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKG0pIHsKICAgIF9BRFNCWVBBU1NFUl
9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2lmcmFtZScpO
wogICAgY29uc3QgaG9zdCA9ICdodHRwOi8vY3VyLmx2L3JlZGlyZWN0X2N1cmx2LnBocCc7CiAgICBjb25z
dCBwYXJhbSA9IG0uaG9zdFsxXSA9PT0gdW5kZWZpbmVkID8gewogICAgICBjb2RlOiBtLnBhdGhbMV0sCiA
gICB9IDogewogICAgICB6b25lOiBtLmhvc3RbMV0sCiAgICAgIG5hbWU6IG0ucGF0aFsxXSwKICAgIH07Ci
AgICBjb25zdCBtYWluRnJhbWVDb250ZW50ID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLmdldChob3N0LCBwYXJhbSk7CiAgICBsZXQgZG9jTWFp
bkZyYW1lID0gbnVsbDsKICAgIHRyeSB7CiAgICAgIGRvY01haW5GcmFtZSA9IF9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS50b0RPTShtYWluRnJhbWVDb250ZW
50KTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgdGhyb3cgbmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX
19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCdtYWluIGZyYW1l
IGNoYW5nZWQnKTsKICAgIH0KICAgIGNvbnN0IHJFeHRyYWN0TGluayA9IC9vbmNsaWNrPSJvcGVuX3VybFw
oJyhbXiddKyknLFxzKidnbydcKS87CiAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyJfIl0uZm9yRWFjaChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS
19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCQoJ2lmcmFtZScsIGRvY01haW5GcmFtZSksIChjdXJyRnJh
bWUpID0+IHsKICAgICAgY29uc3QgY3VyckZyYW1lQWRkciA9IGN1cnJGcmFtZS5nZXRBdHRyaWJ1dGUoJ3N
yYycpOwogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF
9fWyIkIl0uZ2V0KGN1cnJGcmFtZUFkZHIpLnRoZW4oKGN1cnJGcmFtZUNvbnRlbnQpID0+IHsKICAgICAgI
CBjb25zdCBhUmVhbExpbmsgPSByRXh0cmFjdExpbmsuZXhlYyhjdXJyRnJhbWVDb250ZW50KTsKICAgICAg
ICBpZiAoYVJlYWxMaW5rID09PSB1bmRlZmluZWQgfHwgYVJlYWxMaW5rWzFdID09PSB1bmRlZmluZWQpIHs
KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgcmVhbExpbmsgPSBhUmVhbExpbm
tbMV07CiAgICAgICAgcmV0dXJuIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhyZWFsTGluayk7CiAgICAgIH0pOwogICAgfSk7CiAgfSwKfSk7
Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWd
pc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15jb215b25ldFwuY29tJC8sCiAgfSwKICBhc3luYyByZW
FkeSAoKSB7CiAgICBjb25zdCBpbnB1dCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbnB1dFtuYW1lPSJlbnRlciJdJyk7CiAgICBpbnB1
dC5jbGljaygpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eY3JvY2tvbGlua3NcLm
NvbSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgYyA9IE9iamVjdChfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcuaGVhZCA+IGRpdjpu
dGgtY2hpbGQoMykgPiAuc2tpcCcpOwogICAgYy5jbGljaygpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkF
NRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IH
sKICAgIGhvc3Q6IC9eZGF3bnN0YXRpb25cLmNvbSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY
29uc3QgYSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyIkIl0pKCcjdGlkYWtha2Fuc2VsYW1hbnlhID4gYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0V
SX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZi
k7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15kdXJsXC5tZSQvLAogIH0sCiAgYXN5
bmMgcmVhZHkgKCkgewogICAgY29uc3QgYSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0V
CUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdhW2NsYXNzPSJwcm9jZWVkQnRuIl0nKTsKICAgIG
F3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
S5vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IFsKICAgICA
gL15lYXN5dXJsXC5uZXQkLywKICAgICAgL14oYXR1fGNsaWNrdGhydXxyZWRpcmVjdHN8cmVhZHRoaXMpXC
5jYSQvLAogICAgICAvXmdvc2hyaW5rXC5jb20kLywKICAgIF0sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7C
iAgICBjb25zdCBmID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIiQiXSkoJ2ZyYW1lW25hbWU9bWFpbl0nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhmLnNyYyk7Ci
AgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bI
l8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXih3d3dcLik/c2hpbmtcLm1l
JC8sCiAgICAgIC9eKHNob258bGlrbilcLnh5eiQvLAogICAgICAvXmZhc1wubGkkLywKICAgICAgL14od3d
3XC4pP2Nyb2NvXC4obWV8c2l0ZSkkLywKICAgICAgL15jcG1saW5rXC5uZXQkLywKICAgIF0sCiAgICBwYX
RoOiAvXlwvW1x3LV0rJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBpZiAoIV9BRFNCWVBBU1NFU
l9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjY2FwdGNoYScpKSB7
CiAgICAgIGxldCBmID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUx
FXzBfX1siJCJdLiQoJyNza2lwJyk7CiAgICAgIGlmIChmKSB7CiAgICAgICAgZi5zdWJtaXQoKTsKICAgIC
AgICByZXR1cm47CiAgICAgIH0KICAgICAgZiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV
0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjYnRuLW1haW4nKTsKICAgICAgYXdhaXQgX0FE
U0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5
rKGYuaHJlZik7CiAgICAgIHJldHVybjsKICAgIH0KICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRU
JQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2RpdltjbGFzcyQ9T3ZlcmxheV0nKTsKI
CAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5i
bG9jaygobm9kZSkgPT4gewogICAgICBpZiAobm9kZS5jbGFzc05hbWUubWF0Y2goL092ZXJsYXkkLykpIHs
KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBpZiAobm9kZS5sb2NhbE5hbWUgPT09ICdkaX
YnKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICcyMTQ3NDgzNjQ3JywKICAgICAgICAgICcyJywKI
CAgICAgICBdLnNvbWUoKHopID0+IHsKICAgICAgICAgIHJldHVybiB6ID09PSBub2RlLnN0eWxlLnpJbmRl
eDsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LCBkb2N1bWVudC5ib2R
5KTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXz
BfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiBbCiAgICB7CiAgICAgIGhvc3Q6IC9eY3BtbGlua1wubmV0J
C8sCiAgICAgIHBhdGg6IC9eXC9nb1wvW1x3LV0rJC8sCiAgICB9LAogICAgewogICAgICBob3N0OiAvXih3
d3dcLik/Y3JvY29cLihtZXxzaXRlKSQvLAogICAgICBwYXRoOiAvXlwvb2tcL1x3KyQvLAogICAgfSwKICB
dLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGxldC
BhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXSkoJyNidG4tbWFpbicpOwogICAgY29uc3QgaSA9IGEuaHJlZi5sYXN0SW5kZXhPZignaHR0cCcp
OwogICAgYSA9IGEuaHJlZi5zdWJzdHIoaSk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYSk7CiAgfSwKfSk7Cl9BRFNCWV
BBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7C
iAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXmZhc1wubGkkLywKICAgICAgL14od3d3XC4pP3NoaW5r
XC5tZSQvLAogICAgXSwKICAgIHBhdGg6IC9eXC9nb1wvXHcrJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB
7CiAgICBjb25zdCBmID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVE
VEX01PRFVMRV8wX19bIiQiXSkoJyNza2lwJyk7CiAgICBmLnN1Ym1pdCgpOwogIH0sCn0pOwpfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewog
IHJ1bGU6IHsKICAgIGhvc3Q6IC9eZmlsZW1lZGlhXC5uZXQkLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHs
KICAgIGNvbnN0IHNjcmlwdCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygvd2luZG93LmxvY2F0aW9uLmhyZWZccz89XHM/X
CgiKGh0dHAuKz8pIlwpLyk7CiAgICBpZiAoc2NyaXB0Lmxlbmd0aCA+IDEpIHsKICAgICAgYXdhaXQgX0FE
U0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5
rKHNjcmlwdFsxXSk7CiAgICB9CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0
lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3X
C4pP2ZpbG9vcHNcLmluZm8kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGEgPSBPYmpl
Y3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSg
nI3RleHQgPiBjZW50ZXIgYSwgI3RleHQgPiBkaXZbYWxpZ249Y2VudGVyXSBhJyk7CiAgICBhd2FpdCBfQU
RTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpb
msoYS5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3d8bGlua3MpXC5
maXV4eVwuKGNvfGJ6KSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgYXdhaXQgX0FEU0JZUEFTU0
VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKE9iamVjd
ChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdh
LmJ0bi5hJykuaHJlZik7CiAgfQp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmdhbWVtb2RcLn
BybyQvLAogICAgcGF0aDogL15cL2Rvd25sb2FkLWZpbGVcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7C
iAgICBjb25zdCBncCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyIkIl0pKCcjd2FpdC1kb25lID4gcCA+IGEnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhncC5ocm
VmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFX
zBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmdrdXJsXC51cyQvLAogIH0sCiAg
YXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaWZyYW1lID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1B
BQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNna3VybC1mcmFtZScpOwogICAgYX
dhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdL
m9wZW5MaW5rKGlmcmFtZS5zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZ29
0b1wubG9uY2F0XC5pbiQvLAogICAgcXVlcnk6IC9vcGVuPSguKykvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG
0pIHsKICAgIGNvbnN0IHVybCA9IGF0b2IoYXRvYihtLnF1ZXJ5WzFdKSk7CiAgICBhd2FpdCBfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodXJs
KTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eZ3N1cmxcLihtZXxpbi
kkLywKICAgICAgL14oZ3N1bHxnZXRzbHxnbGlua3MpXC5tZSQvLAogICAgICAvXmdzdXJcLmluJC8sCiAgI
CAgIC9eZzV1XC5wdyQvLAogICAgICAvXmd1cmxcLmx5JC8sCiAgICBdLAogIH0sCiAgYXN5bmMgcmVhZHkg
KCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLnJlbW92ZSgnI2NvbnRhaW5lcicpOwogICAgY29uc3QgYSA9IE9iamVjdChfQURTQllQQVNTRVJfTk
FNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjbGluaycpOwogICAgYXdha
XQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9w
ZW5MaW5rKGAke2EuaHJlZn0mYWI9JHtfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlR
FRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93Lnh9YCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0
VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAga
G9zdDogL15ndW50aW5nXC53ZWJcLmlkJC8sCiAgICBwYXRoOiAvXlwvXHcrJC8sCiAgfSwKICBhc3luYyBy
ZWFkeSAoKSB7CiAgICBjb25zdCBsID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2EuYnRuLWJsb2NrLnJlZGlyZWN0Jyk7CiAgICBhd2FpdC
BfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blb
kxpbmsobC5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmhlYWx0aHlra1w
uY29tJC8sCiAgICBwYXRoOiAvXlwvd29yZHByZXNzXC8vLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogIC
AgY29uc3QgaCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfMF9fWyIkIl0pKCcjY29udGVudCBjZW50ZXIgYnV0dG9uJyk7CiAgICBoLmNsaWNrKCk7CiAgfSwK
fSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5
yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15oZW4tdGF5XC5uZXQkLywKICAgIHBhdGg6IC9eXC
9nb1wvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGggPSBPYmplY3QoX0FEU0JZUEFTU
0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2Rvd25sb2FkX3Vy
bCBkaXYgYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURUR
fTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGguaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1
BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogI
CAgaG9zdDogL15ob3RzaG9ydHVybFwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25z
dCBmcmFtZSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0R
VTEVfMF9fWyIkIl0pKCdmcmFtZVtzY3JvbGxpbmc9eWVzXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX0
5BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGZyYW1lLnNyY
yk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15paXZcLnBsJC8sCiAgfSwKICBhc3l
uYyByZWFkeSAoKSB7CiAgICBsZXQgZCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjY291bnRpbmcnKTsKICAgIGxldCBydiA9IGF3YWl0I
F9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5wb3N0
KGxvY2F0aW9uLnBhdGhuYW1lLCB7CiAgICAgIGJsb2NrZXI6IDAsCiAgICAgIHNhbHQ6IGQuZGF0YXNldC5
zYWx0LAogICAgfSwgewogICAgICAnWC1PQ1RPQkVSLVJFUVVFU1QtSEFORExFUic6ICdvbkFmdGVyU2hvcn
RjdXRWaWV3JywKICAgICAgJ1gtT0NUT0JFUi1SRVFVRVNULVBBUlRJQUxTJzogJ3Nob3J0Y3V0L2xpbmtfc
2hvdycsCiAgICB9KTsKICAgIHJ2ID0gSlNPTi5wYXJzZShydik7CiAgICBkID0gX0FEU0JZUEFTU0VSX05B
TUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnRvRE9NKHJ2WydzaG9ydGN1dC9
saW5rX3Nob3cnXSk7CiAgICBydiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS1
9JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdhJywgZCk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNR
VNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocnYuaHJlZik7CiAg
fSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8
iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15pdHdcLm1lJC8sCiAgICBwYXRoOiAvXlwvcl
wvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGYgPSBPYmplY3QoX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnLmdvLWZvcm0nKTsKICAg
IGYuc3VibWl0KCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15pdHlcLmltJC8sCi
AgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgZiA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjbWFpbicpOwogICAgaWYgKGYpIHsKICAgICAg
YXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJ
dLm9wZW5MaW5rKGYuc3JjKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgWywgLCBmXSA9IF9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5maW5kKF9BRFNCWVBBU
1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kJCgnZnJhbWUnKSwg
KGZyYW1lKSA9PiB7CiAgICAgIGlmIChmcmFtZS5zcmMuaW5kZXhPZignaW50ZXJoZWFkZXIucGhwJykgPCA
wKSB7CiAgICAgICAgcmV0dXJuIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV8wX19bIl8iXS5ub25lOwogICAgICB9CiAgICAgIHJldHVybiBmcmFtZS5zcmM7CiAgICB9KTsKI
CAgIGlmIChmICE9PSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJfIl0ubm9uZSkgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19
JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoZik7CiAgICAgIHJldHVybjsKICAgIH0KICAgIG
YgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc
2VhcmNoRnJvbVNjcmlwdHMoL2tyeXB0ZWQ9KFteJl0rKS8pOwogICAgaWYgKCFmKSB7CiAgICAgIHRocm93
IG5ldyBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0
uQWRzQnlwYXNzZXJFcnJvcignc2l0ZSBjaGFuZ2VkJyk7CiAgICB9CiAgICBmID0gZlsxXTsKICAgIGNvbn
N0IGRhdGEgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yIkIl0ud2luZG93LmRlcygna3Nuc2xtdG1rMHY0UGR2aXVzYWpxdScsIF9BRFNCWVBBU1NFUl9OQU1FU1BB
Q0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS53aW5kb3cuaGV4VG9TdHJpbmcoZiksIDA
sIDApOwogICAgaWYgKGRhdGEpIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQl
BBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKCdodHRwOi8vaXR5LmltLzExMDRfMjFfN
TA4NDZfJyArIGRhdGEpOwogICAgfQogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd
3d1wuKT9raW5nb2ZzaHJpbmtcLmNvbSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgbC
A9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yIkIl0pKCcjdGV4dHJlc3VsdCA+IGEnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhsLmhyZWYpOwogIH0sCn0pOwpfQUR
TQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZX
IoewogIHJ1bGU6IFsKICAgIHsKICAgICAgaG9zd
DogL15zdFwua3Vyb2dhemVcLm5ldCQvLAogICAgICBxdWVyeTogL3I9KC4rKS8sCiAgICB9LAogICAgewog
ICAgICBob3N0OiAvXnNcLnl1a2lzdWJzXC5jb20kLywKICAgICAgcXVlcnk6IC9saW5rPSguKykvLAogICA
gfSwKICBdLAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICBjb25zdCByID0gYXRvYihtLnF1ZXJ5WzFdKTsKIC
AgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bI
iQiXS5vcGVuTGluayhyKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnN0XC5rdXJ
vZ2F6ZVwubmV0JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRF
NCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2EucmVka
XJlY3QnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIiQiXS5vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUN
FX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIG
hvc3Q6IC9eZGxcLmxheWFya2FjYTIxXC52aXAkLywKICAgIHBhdGg6IC9eXC9pZnJhbWVcLy8sCiAgfSwKI
CBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBsdiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNF
X19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcuY29udGVudCAjc2tpcCBhJyk7CiAgICB
hd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl
0ub3BlbkxpbmsobHYuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15kbFwu
bGF5YXJrYWNhMjFcLnZpcCQvLAogICAgcGF0aDogL15cLyguKylcLy8sCiAgfSwKICBhc3luYyBzdGFydCA
obSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdLm9wZW5MaW5rKCcvaWZyYW1lL3RvcC5waHA/c2x1Zz0nICsgbS5wYXRoWzFdKTsKICB9L
Ap9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJd
LnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmxlZWNoYWxsXC5kb3dubG9hZCQvLAogICAgcGF
0aDogL15cL2ZpbGVcLyhbYS16QS1aMC05Lz1dKykvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIG
F3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
S5vcGVuTGluayhkZWNvZGVVUklDb21wb25lbnQoYXRvYihtLnBhdGhbMV0pKSk7CiAgfSwKfSk7Cl9BRFNC
WVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih
7CiAgcnVsZTogJ2h0dHA6Ly93d3cubGllbnNjYXNoLmNvbS9sLyonLAogIGFzeW5jIHJlYWR5ICgpIHsKIC
AgIGNvbnN0IGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfT
U9EVUxFXzBfX1siJCJdKSgnI3JlZGlyX2J0bicpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFD
RV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfSk
7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZW
dpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pP2xpbmtcLmltJC8sCiAgICBwYXRoOiAvX
lwvXHcrJC8sCiAgfSwKICBhc3luYyBzdGFydCAoKSB7CiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgX0FEU0JZ
UEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnBvc3QoZG9jdW1
lbnQubG9jYXRpb24uaHJlZiwgewogICAgICBpbWFnZTogJ0NvbnRpbnVlJywKICAgIH0pOwogICAgY29uc3
QgbSA9IHRleHQubWF0Y2goL3dpbmRvd1wubG9jYXRpb25cLnJlcGxhY2VcKCcoW14nXSspJ1wpLyk7CiAgI
CBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIk
Il0ub3BlbkxpbmsobVsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15saW5rXC
50bCQvLAogICAgcGF0aDogL1wvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGxldCBtID0gX0FEU
0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZy
b21TY3JpcHRzKC9ldmFsXCgoLit9XCkpXCkvKTsKICAgIG0gPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uZXZpbChgKCR7bVsxXX0pYCk7CiAgICBsZXQgbC
A9IG0ubWF0Y2goLyg/OlwkXC5hamF4Lit8aHJlZj0nKShodHRwLitza2lwLit8aHR0cFteJ10rKScsZGF0Y
S8pOwogICAgbCA9IGxbMV07CiAgICBpZiAoIWwubWF0Y2goL3NraXAvKSkgewogICAgICBhd2FpdCBfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbms
obCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHRva2VuID0gbS5tYXRjaCgvJ1gtQ1NSRi1UT0
tFTic6JyhbXiddKyknfSwvKTsKICAgIGxldCBybCA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX
19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5wb3N0KGwsICcnLCB7CiAgICAgICdYLUNTUkYt
VE9LRU4nOiB0b2tlblsxXSwKICAgIH0pOwogICAgcmwgPSBKU09OLnBhcnNlKHJsKTsKICAgIGF3YWl0IF9
BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTG
luayhybC51cmwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ebGluazRhZFwuY29t
JC8sCiAgICBwYXRoOiAvXlwvKC4rKSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKG0pIHsKICAgIGxldCBkID0
gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIi
QiXSkoJ2RpdltpZF49bW9kdWxlX10nKTsKICAgIGQgPSBkLmlkLm1hdGNoKC9tb2R1bGVfKFxkKykvKTsKI
CAgIGQgPSBkWzFdOwogICAgY29uc3QgdXJsID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnBvc3QoJ2Zvcm0ucGhwP2Jsb2NrX2lkPScgKyBkLCB
7CiAgICAgIGNtZDogJ2dldF9zb3VyY2UnLAogICAgICBhY3Q6ICd3YWl0aW5nJywKICAgICAgaWQ6IG0ucG
F0aFsxXSwKICAgIH0pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiAgfSwKfSk7CihmdW5jdGlvbigpIHsKICBj
b25zdCBob3N0UnVsZXMgPSBbCiAgICAvXigoW1x3XXs4fXx3d3cpXC4pPyhhbGxhbmFscGFzc3xkcnN0aWN
reWZpbmdlcnN8d2hhY2t5dmlkeilcLmNvbSQvLAogICAgL14oKFtcd117OH18d3d3KVwuKT8obGlua2JhYm
VzfGxpbmtidWNrcylcLmNvbSQvLAogICAgL14oKFtcd117OH18d3d3KVwuKT90aGVzZWJsb2dzXC5jb20kL
ywKICAgIC9ed2FybmluZy10aGlzLWxpbmtjb2RlLXdpbGwtY2Vhc2Utd29ya2luZy1zb29uXC53d3dcLmxp
bmtidWNrc2Ruc1wuY29tJC8sCiAgICAvXigoW1x3XXs4fXx3d3cpXC4pPyhmaWxlc29udGhlfHBvb250b3d
ufHNlcmlvdXNkZWFsc3x1cmxiZWF0KVwubmV0JC8sCiAgICAvXigoW1x3XXs4fXx3d3cpXC4pPyh6YXRuYX
dxeXxyaHZnbXJpdG16aXdjbXxkd3Jmc2xzcXBkZnFmd3kpXC5uZXQkLywKICAgIC9eKChbXHddezh9fHd3d
ylcLik/ZnJlZWFuXC51cyQvLAogICAgL14oKFtcd117OH18d3d3KVwuKT8obWluaXVybHN8cXFjfHJxcXx0
aW55bGlua3N8eXl2KVwuY28kLywKICAgIC9eKChbXHddezh9fHd3dylcLik/eW91ZmFwXC5tZSQvLAogIF0
7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
JlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogaG9zdFJ1bGVzLAogICAgICBwYXRoOiAvXlwvX
HcrXC91cmxcLyguKykkLywKICAgIH0sCiAgICBhc3luYyByZWFkeShtKSB7CiAgICAgIF9BRFNCWVBBU1NF
Ul9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmVBbGxUaW1lcig
pOwogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWy
IkIl0ucmVzZXRDb29raWVzKCk7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2lmcmFtZScpOwogICAgICBsZXQgdXJsID0gbS5wYXRo
WzFdICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaDsKICAgICAgY29uc3QgbWF0Y2ggPSBfQURTQllQQVNTRVJ
fTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdH
MoL1VybEVuY29kZWQ6IChbXixdKykvKTsKICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdID09PSAndHJ1Z
ScpIHsKICAgICAgICB1cmwgPSBkZWNyeXB0KHVybCk7CiAgICAgIH0KICAgICAgYXdhaXQgX0FEU0JZUEFT
U0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk
7CiAgICB9CiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogaG9zdFJ1bGVzLAogICAgf
SwKICAgIGFzeW5jIHN0YXJ0ICgpIHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy5YTUxIdHRwUmVxdWVzdCA9IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5ub3A7CiAgICB9LAogICAgYX
N5bmMgcmVhZHkgKCkgewogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlQWxsVGltZXIoKTsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFD
RV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlc2V0Q29va2llcygpOwogICAgICBfQUR
TQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKC
dpZnJhbWUnKTsKICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCd2ZXJpZnknK
SA+PSAwKSB7CiAgICAgICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNl
KCcvdmVyaWZ5JywgJycpOwogICAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhwYXRoKTsKICAgICAgICByZXR1cm47CiAgIC
AgIH0KICAgICAgY29uc3QgdG9rZW4gPSBmaW5kVG9rZW4oZG9jdW1lbnQpOwogICAgICBjb25zdCB1cmwgP
SBhd2FpdCBzZW5kUmVxdWVzdCh0b2tlbik7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5udWtlKHVybCk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayh1cmwpOw
ogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBxdWVyeTogL14oLiopWz8mXV9sYkdh
dGU9XGQrJC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQgKG0pIHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUV
TUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNldENvb2tpZSgnX2xiR2F0ZVBhc3
NlZCcsICd0cnVlJyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBtLnF1
ZXJ5WzFdKTsKICAgIH0sCiAgfSk7CiAgZnVuY3Rpb24gZmluZFRva2VuIChjb250ZXh0KSB7CiAgICBjb25
zdCBzY3JpcHQgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF
9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoJyAgICB2YXIgZiA9IHdpbmRvd1tcJ2luaXRcJyArIFwnTGJcJ
yArIFwnanNcJyArIFwnXCddJywgY29udGV4dCk7CiAgICBpZiAoIXNjcmlwdCkgewogICAgICBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FybigncGF0dGV
ybiBjaGFuZ2VkJyk7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogICAgbGV0IGFkdXJsID0gc2NyaXB0Lm
1hdGNoKC9BZFVybFxzKjpccyonKFteJ10rKScvKTsKICAgIGlmICghYWR1cmwpIHsKICAgICAgcmV0dXJuI
G51bGw7CiAgICB9CiAgICBhZHVybCA9IGFkdXJsWzFdOwogICAgY29uc3QgbTEgPSBzY3JpcHQubWF0Y2go
L0FkUG9wVXJsXHMqOlxzKicuK1w/W149XSs9KFtcd1xkXSspJy8pOwogICAgY29uc3QgbTIgPSBzY3JpcHQ
ubWF0Y2goL1Rva2VuXHMqOlxzKicoW1x3XGRdKyknLyk7CiAgICBjb25zdCB0b2tlbiA9IG0xWzFdIHx8IG
0yWzFdOwogICAgbGV0IG0gPSBzY3JpcHQubWF0Y2goLz1ccyooXGQrKTsvKTsKICAgIGxldCBhayA9IHBhc
nNlSW50KG1bMV0sIDEwKTsKICAgIGNvbnN0IHJlID0gL1wrXHMqKFxkKyk7L2c7CiAgICBsZXQgdG1wID0g
bnVsbDsKICAgIHdoaWxlKChtID0gcmUuZXhlYyhzY3JpcHQpKSAhPT0gbnVsbCkgewogICAgICB0bXAgPSB
tWzFdOwogICAgfQogICAgYWsgKz0gcGFyc2VJbnQodG1wLCAxMCk7CiAgICByZXR1cm4gewogICAgICB0Oi
B0b2tlbiwKICAgICAgYUs6IGFrLAogICAgICBhZHVybDogYWR1cmwsCiAgICB9OwogIH0KICBhc3luYyBmd
W5jdGlvbiBzZW5kUmVxdWVzdCAodG9rZW4pIHsK
ICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5
nZXQodG9rZW4uYWR1cmwpOwogICAgZGVsZXRlIHRva2VuLmFkdXJsOwogICAgdG9rZW4uYV9iID0gZmFsc2
U7CiAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfI
l0uaW5mbygnd2FpdGluZyB0aGUgaW50ZXJ2YWwnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BB
Q0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YWl0KDUwMDApOwogICAgX0FEU0JZUEF
TU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLmluZm8oJ3NlbmRpbm
cgdG9rZW46ICVvJywgdG9rZW4pOwogICAgY29uc3QgdGV4dCA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU
1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5nZXQoJy9pbnRlcm1pc3Npb24vbG9h
ZFRhcmdldFVybCcsIHRva2VuLCB7CiAgICAgICdYLVJlcXVlc3RlZC1XaXRoJzogX0FEU0JZUEFTU0VSX05
BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLm5vbmUsCiAgICAgIE9yaWdpbj
ogX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLm5vb
mUsCiAgICB9KTsKICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHRleHQpOwogICAgX0FEU0JZUEFTU0VS
X05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLmluZm8oJ3Jlc3BvbnNlOiA
lbycsIGRhdGEpOwogICAgaWYgKCFkYXRhLlN1Y2Nlc3MgJiYgZGF0YS5FcnJvcnNbMF0gPT09ICdJbnZhbG
lkIHRva2VuJykgewogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfMF9fWyJfIl0ud2FybignZ290IGludmFsaWQgdG9rZW4nKTsKICAgICAgcmV0dXJuIGF3YWl0IHJl
dHJ5KCk7CiAgICB9CiAgICBpZiAoZGF0YS5BZEJsb2NrU3BvdHRlZCkgewogICAgICBfQURTQllQQVNTRVJ
fTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FybignYWRibG9jayBzcG
90dGVkJyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChkYXRhLlN1Y2Nlc3MgJiYgIWRhdGEuQWRCb
G9ja1Nwb3R0ZWQgJiYgZGF0YS5VcmwpIHsKICAgICAgcmV0dXJuIGRhdGEuVXJsOwogICAgfQogIH0KICBh
c3luYyBmdW5jdGlvbiByZXRyeSAoKSB7CiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgX0FEU0JZUEFTU0VSX05
BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLmdldCh3aW5kb3cubG9jYXRpb2
4udG9TdHJpbmcoKSwge30sIHsKICAgICAgJ1gtRm9yd2FyZGVkLUZvcic6IF9BRFNCWVBBU1NFUl9OQU1FU
1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5nZW5lcmF0ZVJhbmRvbUlQKCksCiAg
ICB9KTsKICAgIGNvbnN0IGQgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyIkIl0udG9ET00odGV4dCk7CiAgICBjb25zdCB0ID0gZmluZFRva2VuKGQpOwogICAgaW
YgKCF0KSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8wX19bIl8iXS53YWl0KDEwMDApOwogICAgICByZXR1cm4gYXdhaXQgcmV0cnkoKTsKICAgIH0K
ICAgIHJldHVybiBhd2FpdCBzZW5kUmVxdWVzdCh0KTsKICB9CiAgZnVuY3Rpb24gZGVjcnlwdCAodXJsKSB
7CiAgICB1cmwgPSBDb252ZXJ0RnJvbUhleCh1cmwpOwogICAgbGV0IHVuc2FmZSA9IGAoJHtFbmNvZGUudG
9TdHJpbmcoKX0pKCIke3VybH0iKWA7CiAgICB1bnNhZmUgPSAoMCwgZXZhbCkodW5zYWZlKTsKICAgIHJld
HVybiB1bnNhZmU7CiAgfQogIGZ1bmN0aW9uIENvbnZlcnRGcm9tSGV4IChzdHIpIHsKICAgIGNvbnN0IHJl
c3VsdCA9IFtdOwogICAgd2hpbGUgKHN0ci5sZW5ndGggPj0gMikgewogICAgICByZXN1bHQucHVzaChTdHJ
pbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoMCwgMiksIDE2KSkpOwogICAgICBzdH
IgPSBzdHIuc3Vic3RyaW5nKDIsIHN0ci5sZW5ndGgpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdC5qb2luK
CcnKTsKICB9CiAgY29uc3QgRW5jb2RlID0gZnVuY3Rpb24gKHN0cikgewogICAgdmFyIHMgPSBbXSwgaiA9
IDAsIHgsIHJlcyA9ICcnLCBrID0gYXJndW1lbnRzLmNhbGxlZS50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9
nLCAnJyk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgICAgIHNbaV0gPSBpOwogIC
AgfQogICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgICAgIGogPSAoaiArIHNbaV0gKyBrLmNoY
XJDb2RlQXQoaSAlIGsubGVuZ3RoKSkgJSAyNTY7CiAgICAgIHggPSBzW2ldOwogICAgICBzW2ldID0gc1tq
XTsKICAgICAgc1tqXSA9IHg7CiAgICB9CiAgICBpID0gMDsKICAgIGogPSAwOwogICAgZm9yICh2YXIgeSA
9IDA7IHkgPCBzdHIubGVuZ3RoOyB5KyspIHsKICAgICAgaSA9IChpICsgMSkgJSAyNTY7CiAgICAgIGogPS
AoaiArIHNbaV0pICUgMjU2OwogICAgICB4ID0gc1tpXTsKICAgICAgc1tpXSA9IHNbal07CiAgICAgIHNba
l0gPSB4OwogICAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShzdHIuY2hhckNvZGVBdCh5KSBeIHNb
KHNbaV0gKyBzW2pdKSAlIDI1Nl0pOwogICAgfQogICAgcmV0dXJuIHJlczsKICB9Owp9KSgpOwpfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoew
ogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed3d3XC5saW5rZGVjb2RlXC5jb20kLywKICAgIHBhdGg6IC9eXC8kL
ywKICAgIHF1ZXJ5OiAvXlw/KC4rKSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKG0pIHsKICAgIF9BRFNCWVBB
U1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2lmcmF
tZScpOwogICAgbGV0IGxuayA9IG0ucXVlcnlbMV07CiAgICBpZiAobS5xdWVyeVsxXS5tYXRjaCgvXmh0dH
BzPzpcL1wvLykpIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGxuayk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGxl
dCBiID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJ
dLiQoJyNwb3B1cCcpOwogICAgaWYgKGIgJiYgYi5ocmVmKSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl
9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhiLmhyZWYpO
wogICAgICByZXR1cm47CiAgICB9CiAgICBiID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNtID4gLlZpc2l0X0xpbmsnKTsKICAgIGIgPSB
iLm9uY2xpY2sudG9TdHJpbmcoKS5tYXRjaCgvd2luZG93XC5vcGVuXCgnKFteJ10rKScvKTsKICAgIGlmIC
ghYikgewogICAgICB0aHJvdyBuZXcgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siXyJdLkFkc0J5cGFzc2VyKCdwYXR0ZXJuIGNoYW5nZWQnKTsKICAgIH0KICAgIGxu
ayA9IGJbMV0ubWF0Y2goL1w/KGh0dHBzPzpcL1wvLiopJC8pOwogICAgaWYgKGxuaykgewogICAgICBhd2F
pdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3
BlbkxpbmsobG5rWzFdKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BT
UVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGJbMV0pOwogIH0s
Cn0pOwooZnVuY3Rpb24gKCkgewogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IFsKICAgICAgIC
AvXm1ldFwuYnokLywKICAgICAgICAvXnR1aVwuY2xpY2skLywKICAgICAgICAvXmVhcm4tZ3VpZGVcLmNvb
SQvLAogICAgICAgIC9eYWR1cmxcLmlkJC8sCiAgICAgICAgL14oY3V0d2l8Y3V0LXd8Y3V0bHxkbXVzKVwu
aW4kLywKICAgICAgICAvXih3d3dcLik/anVybFwuaW8kLywKICAgICAgICAvXmxhcGFrXC5saW5rJC8sCiA
gICAgICAgL14odWxzaGFyZXx1cmxpa2UpXC5uZXQkLywKICAgICAgXSwKICAgIH0sCiAgICBhc3luYyByZW
FkeSAoKSB7CiAgICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgTm9SZWNhcHRjaGFIYW5kbGVyKCk7CiAgICAgI
GF3YWl0IGhhbmRsZXIuY2FsbCgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICB
ob3N0OiBbCiAgICAgICAgL14oZHo0bGlua3xnb2NpdGxpbmt8M3JhYmN1dHxzaG9ydDJ3aW58YWRzcnR8c2
hvcnRnbG9iYWx8amFpbmppbnZhbml8YWdyYWRhcnBhbnxiaXJkdXJscylcLmNvbSQvLAogICAgICAgIC9eK
HBheXNob3J0dXJsfHVybHRpcHN8c2hyaW5rZWFybnxpdGlhZHxjdXRzb3VmfGVuZXdzdGFsa3xsbmtzNGFs
bHxqZWpha2xhZ3V8dXJsc2hvcnR4KVwuY29tJC8sCiAgICAgICAgL14oZWFybi11cmx8Yml0LXVybHxjdXQ
td2lufGxpbmstemVyb3xjdXQtZWFybnxvdHVybHxnbG9yeS1saW5rfGNvb2xtaXR0ZW58aG9zZXh4KVwuY2
9tJC8sCiAgICAgICAgL14oZW1waXJlc2hvcnR8ZW1wZWFybnx0YXJud2gyaXx0YWJlaWtofHlvdXJ3LWF5f
HJlYjdrb25saW5lfGZhY3R1cmFsfGFrbGE0fHRlY2hzYXBwYXJlbClcLmNvbSQvLAogICAgICAgIC9eKHNo
cmlua2J1Y2t8Y2xrcGF5fGxpbmtzaHR8aGF4cnN8Y2xpY2syLXVybHxjb29sdHh0Z2VufGFyYmE3Y298c2h
vcnRsaW5rb3xlejRsaW5rc3MpXC5jb20kLywKICAgICAgICAvXihwYXJ0cWIyaXxraHJhYmF8YWRscHV8dG
FiYWtoZWxvfGFtZW5pdGllZXN8Y29zbWljbW9ueXxpbGlua3Nob3J0eHxhLWVneXxhZHNhZmVsaW5rKVwuY
29tJC8sCiAgICAgICAgL14oYWR2YW5jZS13aXNoaW5nanN8Z292dHNtYXJ0am9ifGJsb2dnaW5ncmFqYXx0
ZWNoa3RpfHN4dHNxdWFkfGFkcGF5dG18cHVzdGthbGEpXC5jb20kLywKICAgICAgICAvXih0aGVneWFhbml
wb2ludHxkb3dubG9hZGRvb218bGlua2ZheXw1YnJnZWRpZHxlYXJ0aHBpY2xvdmVyfGFkaWdwfHRvbWllbn
R8ZHo0aW52ZXN0KVwuY29tJC8sCiAgICAgICAgL14odGVjaG1lbi13b3JsZHxyYXplcmZsaXhzfGdhbWVza
W5kaWFuc3xkaXNsb29rc3xlbGtoYnJlbDdzcnl8b25hYWh8dWx0cmFza29yYSlcLmNvbSQvLAogICAgICAg
IC9eKHdyYXAtdzBybGR8b21tYW50cmFtZWRpdGF0aW9ufG1hd2Rva3x0ZWNoZmluZGF8Y2xpeGd8Ym9hcmR
naWZ0fGJlYXN0LWJpcmRzfGNsaWNrLXBhaWQpXC5jb20kLywKICAgICAgICAvXih0YWxraXR0ZWNoeXxuZX
dzaW5qdWxlc3xrdXRwYXl8bmlra2Fycnx2ZWJsaW5rfGFsM2FtYWxsfDZhYmEyZGF5fG9wbG92ZXJ6aG9tZ
SlcLmNvbSQvLAogICAgICAgIC9eKGtvb3JhbXViYXNoaXJ8aGVhbHRoZmFyeXxqdXN0bGlrZXlvam5hfHNh
cmthcmlqb2JzcmVzdWx0c3N8emFsaXBheXx0aGVmcmVlY2gpXC5jb20kLywKICAgICAgICAvXihoaW5kaWJ
lZW58cGFzdGVrYW58ZTdrZWx5YW5hfGVhLWlzbHl8YXJpc3RvZGVyYXN8c2hvcnR6b258dHJhZGluZy1hcm
VhfGFsc2VvbylcLmNvbSQvLAogICAgICAgIC9eKHRlY2h0cmVtZW5kb3VzfGZyZWVzcGlud2luc3x3LXJha
mVtfHRpbWV0b2thfGZvb2RwdWZmfGxpbmtzb3B8Ym9sbHl3b29kZHJhbWFuZXdzKVwuY29tJC8sCiAgICAg
ICAgL14obGlua2V4YXxhZG1ld3xzaHJ0Zmx5fGt1eWxpbmt8Y3V0NGxpbmtzfGFkc2tpcG1lfHNraXB1cmx
zfGVseS1vbTd8YnJlbmhlYWx0aClcLmNvbSQvLAogICAgICAgIC9eKHNtYXJ0ZWFzeXN0dWR5fGN5YWhlYW
x0aHxlcnNoYWRhdHx6Mml8c3J0Zmx5fGFyYmE3a3Byb3xoZWFsdGgtZ29vb2R8c3RhdGVnb3NzaXApXC5jb
20kLywKICAgICAgICAvXihibG9nZ2luZ2d5YW5ib3h8eW91cnRlY2hndWlkZXJ8Z2lmc2lzfDNyYWItY2Fz
aHxwaW5raGluZGl8d2lzaGVzMnx3ZWF3cHxhNWJhcmZhd3JpYSlcLmNvbSQvLAogICAgICAgIC9eKG15a2l
uZ2dvfGxpLW5renx3aW40Y3V0fGtoYWJyYXRrfHByb2dyYW1zZnJlfHNhZmVsaW5rYmxvZ2dlcnxsaW5rd2
VhfG91cmNhcmVlcmJsb2cpXC5jb20kLywKICAgICAgICAvXihsaW5rb3JsaW5rfG1yZm91cnRlY2h8ZmFic
2RlYWxzfHRlY2g0dXRvZGF5fHVybHNhbW98ZWFybndpdGhzaG9ydGxpbmt8c3dpZ2d5Z29sZClcLmNvbSQv
LAogICAgICAgIC9eKGVhcm5tb25leXRhbGt8bmV3dXBkYXRlc29ubGluZXx1cHRvb3N8YmFraWxpbmt8Z29
zc2lwY29ybmVyc3xzbGVnbGV8ZnV0dXJlZm91bmRhdGlvbm5nbylcLmNvbSQvLAogICAgICAgIC9eKGxvb3
BkaWV0fGluZm90YXhjb3xuZXdzYXRmaXR8Z285OXRlY2h8ZnVsbHl0ZWNoMjR8YWRmbHl1cmx8a2Vrb2xpb
mt8cmlmdXJsfGFjLW1vKVwuY29tJC8sCiAgICAgICAgL14oYXBrc2hydClcLmNvbSQvLAogICAgICAgIC9e
KHZ5XC4pP2Fkc3Z5XC5jb20kLywKICAgICAgICAvXih3d3dcLik/KGNsa3BheXN8bG5ram9ifGVmc2hvcnQ
pXC5jb20kLywKICAgICAgICAvXnNocnQoOHwxMClcLmNvbSQvLAogICAgICAgIC9eKHRybGlua3x3b2xpbm
t8dG9jZG98Y3V0dXJsfGNvdW5zZWxsaW5ncmVzdWx0MjAxNnxpaXRqZWVtYWluZ3VpZGV8aGVhbHRoaGluZ
GlneWFuKVwuaW4kLywKICAgICAgICAvXih1dGltZXRhYmxlcmVzdWx0fGRhaWx5LXNhbGV8bGlua3N6b25l
fHZpcmFsdGVjaG5pY2FsKVwuaW4kLywKICAgICAgICAvXihva2V8Y3VvbnxjdWlvfGN1ZWV8Y3V1c3xjdXR
vfGxpbmt0b3J8Zmx5bGlua3x1aXp8dWlpfGV4ZXl8c2hyaW5rbWV8c2hvdGx5KVwuaW8kLywKICAgICAgIC
AvXmN1KDJ8M3w1fDZ8NylcLmlvJC8sCiAgICAgICAgL14oYWRiaWx0eXxhZHBvcHx1anZ8dHB4fGFkc3J0f
DJmbHl8bGluNjV8c2hvcnQyd2lufHN1YXJhbmtyaXxpbmZvdHJlbmR5KVwubWUkLywKICAgICAgICAvXihh
ZHZhbmNlZGF1dG9yZXBhaXJ0aXBzfHRha2VpdGZvcnxqZWxhamFoaW50ZXJuZXR8dmlydHVhbGRhdGF8bXV
oYW1tYWR5b2dhfHMydylcLm1lJC8sCiAgICAgICAgL14oY2VwbXV6aWtpbmRpcnxzaHJpbmtlKVwubWUkLy
wKICAgICAgICAvXmxpbmtcLmFrdW5vXC5uZXQkLywKICAgICAgICAvXihzYWZlbGlua3V8dGlueWxpbmtzf
GxpY2tsaW5rfGxpbmtyZXh8emxzaG9ydGV8dml2YWRzfGNsaWNrYXJ8YmlnYjBzcylcLm5ldCQvLAogICAg
ICAgIC9eKHZudXJsfHZpbmF1cmx8Zm94dXJsfHN
ob3J0MndpbnxjYXNoYXR8c2hydGZseXxzaG9ydHllfHZlbnRheClcLm5ldCQvLAogICAgICAgIC9eKGxpbm
s0d2lufGxpbmtzYWR8dG9wdXJsfHhlbWxpbmt8ZGlyZWN0ZWRsaW5rfGlsbGluaylcLm5ldCQvLAogICAgI
CAgIC9eKGNsaWNrMnVybHxsbjQzNXxtZXJkZWthaWQpXC5vbmxpbmUkLywKICAgICAgICAvXih3d3dcLik/
YmxvZ2dlcndvcmxkXC5vbmxpbmUkLywKICAgICAgICAvXihsb3RlY2hub2Nhbnx1cGRhdGV0cmlidW58dGV
tcGxpbmt8ZXo0bGlua3xzaG9ydGVhcm58YWRidWxsfG9uZXVybHN8YWRzcnR8ZnJlZWJjYylcLm9yZyQvLA
ogICAgICAgIC9edm94Y1wub3JnJC8sCiAgICAgICAgL14oY2xpa3x0b2tlbmZseXxnZXRsaW5rfHBzbHxwc
3N8c2hsbnxscGV8Y2hydHxzenN8bWluaXVybClcLnB3JC8sCiAgICAgICAgL14od3d3XC4pP2x3dFwucHck
LywKICAgICAgICAvXihlbDNpZHxhbGxyZXBvcnRzfGNsaWNrc2thcm8pXC5zaXRlJC8sCiAgICAgICAgL14
xMjNsaW5rXC5jYXJwYXJ0c3ZpZXQ5N1wuc2l0ZSQvLAogICAgICAgIC9eKHNoaW5rfHNocnRlbnxnZy1sfH
ZudXJsfGJsb2dnaW5nZGVraHxsbjExfHNoMTF8dHJhZGVndXJ1fG5ld3NrYXJ0fGtpZHNvcnN8eHoyKVwue
Hl6JC8sCiAgICAgICAgL14odGVjaGluaHVifHZpcmFsbm93fHNob3BoaXByb3x0ZWNobm9jYW52YXN8Z2V0
ZnJlc2hjbG91ZHxwcm9maXRzdHVkeXxpam9iYW5hbmEpXC54eXokLywKICAgICAgICAvXihhdXRvY2Fyc21
hZ3p8Z2V0cG9ja2V0fHlhc2luZXdzfGR1bnlhbmV3c3xrb21pdXBkYXRlc3xhbGxhcHB8c213ZWJzfG5ld3
MtdGVjaClcLnh5eiQvLAogICAgICAgIC9eY3V0ZGxcLnh5eiQvLAogICAgICAgIC9eKGNra3xpaXJ8dGlpK
VwuYWkkLywKICAgICAgICAvXnRoaW5cLmF0JC8sCiAgICAgICAgL14odGlwc1wuKT9hdHZcLnB3JC8sCiAg
ICAgICAgL15za2lwXC5heiQvLAogICAgICAgIC9eKGZ1bm55cXVpenxtZWRpYWtpdGF8a2FiYXJ2aXJhbCl
cLmJsb2ckLywKICAgICAgICAvXihpY3V0aXR8ZWFybmJpZ3xjdXRlYXJuKVwuY2EkLywKICAgICAgICAvXm
Uyc1wuY2MkLywKICAgICAgICAvXihhZHp1cmx8bGluazJsaW5rKVwuY2YkLywKICAgICAgICAvXihtbGlua
3xjbDI1MHx4cGlja2xlfGluZm9zZWhhdGt1KVwuY2x1YiQvLAogICAgICAgIC9eKDNic3R8Y29pbmxpbmt8
aXRpdXJsfGNvc2hpbmt8bGluazVzfGN1cnN8bWFrZXVybHxtb29kZGlzb3JkZXJ8Y3V0bHMpXC5jbyQvLAo
gICAgICAgIC9eYmVzdHNjaG9sYWVzaGlwZGVncmVlXC5kYXRlJC8sCiAgICAgICAgL15jbGljazJzZWVcLm
Rlc2kkLywKICAgICAgICAvXih0bnl8dGlueSlcLmVjJC8sCiAgICAgICAgL144b1wuZWUkLywKICAgICAgI
CAvXnBhNGxcLmVzeVwuZXMkLywKICAgICAgICAvXihzaG9ydGVhcm58ZW5ydClcLmV1JC8sCiAgICAgICAg
L14oc2NpZW5jZWxpZmV8Y3BtNGFsbClcLmdhJC8sCiAgICAgICAgL156YVwuZ2wkLywKICAgICAgICAvXnp
pXC5odCQvLAogICAgICAgIC9ec2hvcnRlZFwuaWQkLywKICAgICAgICAvXihpZ3JhbXxncmFtfHBpbmdpdC
lcLmltJC8sCiAgICAgICAgL15tZWdhdXJsXC4oaW58bGluaykkLywKICAgICAgICAvXihidXNpbmVzc2lzc
zJ8dGVjaGFuZHJldmlld3x5ZXNtb3ZpZXNhcHB8a3BzY3RodWxhc2lsb2dpbilcLmluZm8kLywKICAgICAg
ICAvXnN0Zmx5XC4oaW98cHJlc3MpJC8sCiAgICAgICAgL15seW9uXC5raW0kLywKICAgICAgICAvXmZjXC5
sYyQvLAogICAgICAgIC9eKHBldHR5fHNraXBzfHRyfGZsYXopXC5saW5rJC8sCiAgICAgICAgL15wYXlza2
lwXC4obWV8b3JnKSQvLAogICAgICAgIC9eYnRjXC5tcyQvLAogICAgICAgIC9ec3BsYXNobmV3c1wub29vJ
C8sCiAgICAgICAgL15leHByZXNzLWN1dFwub3ZoJC8sCiAgICAgICAgL15zaG9ydFwucGUkLywKICAgICAg
ICAvXihjbGt8Y2xsKVwuKHByZXNzfGlua3xzaHxpY3UpJC8sCiAgICAgICAgL14obG9wdGV8bWVnYWxpbms
pXC5wcm8kLywKICAgICAgICAvXjEyM2xpbmtcLihwd3x2aXApJC8sCiAgICAgICAgL15yb3lhbG93blwucm
V2aWV3JC8sCiAgICAgICAgL15lYXJuXC50aGVwbHVzaXRcLnJvJC8sCiAgICAgICAgL15zay1pcFwuKHJ1f
HRlY2gpJC8sCiAgICAgICAgL150aW55bGlua1wucnVuJC8sCiAgICAgICAgL14ob2tvfGFpaXxzaG9ydGVu
KVwuc2gkLywKICAgICAgICAvXihkdXRjaHljb3JwfGFib3V0dGVjaClcLnNwYWNlJC8sCiAgICAgICAgL15
idXlpdG9ubGluZVwuc3RvcmUkLywKICAgICAgICAvXmVhdGluZ3NcLnN0cmVhbSQvLAogICAgICAgIC9edG
xcLnRjJC8sCiAgICAgICAgL14oMTkyMTY4MTI1NHxnZWtpfHdlZ25lcnxncHNob3J0KVwudGVjaCQvLAogI
CAgICAgIC9eKGxpbmt2aXB8NHNob3J0KVwudGskLywKICAgICAgICAvXih3d3dcLik/cG5kXC50bCQvLAog
ICAgICAgIC9eZ2V0XC51anZcLmFsJC8sCiAgICAgICAgL14odXJsY2xvdWR8aW1hZ2VvcHRpbWl6ZXIpXC5
1cyQvLAogICAgICAgIC9eKGtveWxpbmtzfGJ1eS1pbi01OTlycylcLndpbiQvLAogICAgICAgIC9eZXhlXC
4oaW98YXBwKSQvLAogICAgICAgIC9ec2xpbmtcLmJpZCQvLAogICAgICBdLAogICAgfSwKICAgIGFzeW5jI
HJlYWR5ICgpIHsKICAgICAgY29uc3QgaGFuZGxlciA9IG5ldyBSZWNhcHRjaGFIYW5kbGVyKCk7CiAgICAg
IGF3YWl0IGhhbmRsZXIuY2FsbCgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgIC
Bob3N0OiBbCiAgICAgICAgL14oYXJhYnR2bGlua3xzYWZla3V8ZHo0bGluaylcLmNvbSQvLAogICAgICAgI
C9ebGlua3NvZmxpZmVcLmNvJC8sCiAgICAgICAgL153aVwuY3IkLywKICAgICAgICAvXihiaXRjb2lubHl8
Y2FzaHVybClcLmluJC8sCiAgICAgICAgL15saW5rc29mXC5saWZlJC8sCiAgICAgICAgL153aWNyXC5tZSQ
vLAogICAgICAgIC9ec2hydGl0XC50ZWNoJC8sCiAgICAgICAgL15maXJlc2hvcnRzXC50ayQvLAogICAgIC
AgIC9ebWl0bHlcLnVzJC8sCiAgICAgIF0sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICBjb
25zdCBoYW5kbGVyID0gbmV3IEludmlzaWJsZVJlY2FwdGNoYUhhbmRsZXIoKTsKICAgICAgYXdhaXQgaGFu
ZGxlci5jYWxsKCk7CiAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IFsKIC
AgICAgICAvXjEyM3Nob3J0XC5iaXokLywKICAgICAgICAvXihjdXRwYWlkfHRtZWFybnxpY3V0bGluaylcL
mNvbSQvLAogICAgICAgIC9eKGN0dWl8Y3V0aSlcLmluJC8sCiAgICAgICAgL156dXRyb3hcLmxpbmskLywK
ICAgICAgICAvXih0ZWNoY3JhemV8aGVhbHRoaW5zaWRlcilcLm9ubGluZSQvLAogICAgICAgIC9eY3V0d2l
uXC4odXN8Y29tKSQvLAogICAgICAgIC9eKHd3d1wuKT9zaHJpbmtcLnZpcCQvLAogICAgICBdLAogICAgfS
wKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3QgaGFuZGxlciA9IG5ldyBOb25EaXNhYmxlZFJlY
2FwdGNoYUhhbmRsZXIoKTsKICAgICAgYXdhaXQgaGFuZGxlci5jYWxsKCk7CiAgICB9LAogIH0pOwogIF9B
RFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3R
lcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eKHd3d1wuKT9vdXJsXC5pbyQvLAogICAgfSwKICAgIG
FzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3QgaGFuZGxlciA9IG5ldyBPVVJMSGFuZGxlcigpOwogICAgI
CBhd2FpdCBoYW5kbGVyLmNhbGwoKTsKICAgIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9f
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICA
gaG9zdDogL14od3d3XC4pP2xpbmtkcm9wXC5uZXQkLywKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7Ci
AgICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgTGlua0Ryb3BIYW5kbGVyKCk7CiAgICAgIGF3YWl0IGhhbmRsZ
XIuY2FsbCgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXnd3d1w
uc2hvcnRseVwueHl6JC8sCiAgICAgIHBhdGg6IC9eXC9saW5rJC8sCiAgICB9LAogICAgYXN5bmMgcmVhZH
kgKCkgewogICAgICBjb25zdCBoYW5kbGVyID0gbmV3IFNob3J0bHlIYW5kbGVyKCk7CiAgICAgIGF3YWl0I
GhhbmRsZXIuY2FsbCgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiB
bCiAgICAgICAgL14oY3V0LXVybHN8bGluY2xpa3xwcmVtaXVtemVufGJ5NmRrfG1pa3ltb29uc3xtYW4ycH
JvKVwuY29tJC8sCiAgICAgICAgL14obGluazR3aW58bG9hZHVybHxjdXQ0bGlua3xyYW9saW5rfGFkc2hvc
nRlKVwuY29tJC8sCiAgICAgICAgL15zaG9ydFwucGFzdGV3bWFcLmNvbSQvLAogICAgICAgIC9ebGlua2Zs
eVwuZ2Fvc21lZGlhXC5jb20kLywKICAgICAgICAvXih3d3dcLik/dmlyYWx1a2tcLmNvbSQvLAogICAgICA
gIC9eKHd3d1wuKT9uaWFnb3Nob3J0XC5jb20kLywKICAgICAgICAvXnd3d1wud29ybGRoYWNrXC5uZXQkLy
wKICAgICAgICAvXihla2xpbmspXC5uZXQkLywKICAgICAgICAvXnJveXVybHNcLmJpZCQvLAogICAgICAgI
C9ec2hvcnRpdFwuY2EkLywKICAgICAgICAvXih1cmxlfGFkc2hvcnQpXC5jbyQvLAogICAgICAgIC9eKDEp
P2lkc2x5XC4oY29tfGJpZHxuZXR8b3JnKSQvLAogICAgICAgIC9ec2hvcnRhZFwuY2YkLywKICAgICAgICA
vXihhZGJpbHR5fHRhaXZlKVwuaW4kLywKICAgICAgICAvXihjdXJzfGNydXN8NGN1dHx1MnN8bDJzKVwuaW
8kLywKICAgICAgICAvXjEyM2xpbmtcLihpb3xjb3xwcmVzc3xwcm8pJC8sCiAgICAgICAgL15wZXR0eVwub
GluayQvLAogICAgICAgIC9eKHdlZWZ5fGFkYnVsbHx6ZWl6fGxpbms0fGFkY29pbilcLm1lJC8sCiAgICAg
ICAgL15kenVybFwubWwkLywKICAgICAgICAvXnNwYW1saW5rXC5vcmckLywKICAgICAgICAvXih0d2lrfGF
kc2xpbmspXC5wdyQvLAogICAgICAgIC9eZ2l0XC50YyQvLAogICAgICAgIC9eKGFkZnV8bGlua3UpXC51cy
QvLAogICAgICBdLAogICAgfSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3QgaGFuZGxlciA9I
G5ldyBTdGFnZWRIYW5kbGVyKCk7CiAgICAgIGF3YWl0IGhhbmRsZXIuY2FsbCgpOwogICAgfSwKICB9KTsK
ICBjbGFzcyBBYnN0cmFjdEhhbmRsZXIgewogICAgY29uc3RydWN0b3IgKCkgewogICAgICB0aGlzLl9vdmV
ybGF5U2VsZWN0b3IgPSBbCiAgICAgICAgJ1tjbGFzcyQ9Ik92ZXJsYXkiXScsCiAgICAgICAgJyNfX3Jhbm
RvbV9jbGFzc19uYW1lX18nLAogICAgICAgICcjaGVhZGxpbmVhdGFzJywKICAgICAgICAnI215TW9kYWwnL
AogICAgICAgICcub3BhY2l0eV93cmFwcGVyJywKICAgICAgICAnI292ZXJsYXknLAogICAgICBdLmpvaW4o
JywgJyk7CiAgICAgIHRoaXMuX2Zvcm1TZWxlY3RvciA9IFsKICAgICAgICAnI2dvLWxpbmsnLAogICAgICA
gICcuZ28tbGluaycsCiAgICAgICAgJyNvcmlnaW5hbExpbmsuZ2V0LWxpbmsnLAogICAgICAgICdmb3JtW2
FjdGlvbj0iL2xpbmtzL2dvIl0nLAogICAgICAgICdmb3JtW2FjdGlvbj0iL2xpbmtzL2xpbmtkcm9wZ28iX
ScsCiAgICAgIF0uam9pbignLCAnKTsKICAgIH0KICAgIHJlbW92ZU92ZXJsYXkgKCkgewogICAgICBfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKHR
oaXMuX292ZXJsYXlTZWxlY3Rvcik7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0
lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5ibG9jayh0aGlzLl9vdmVybGF5U2VsZWN0b3IsIGRvY3VtZW50L
mJvZHkpOwogICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5v
dmVyZmxvdyA9ICdpbml0aWFsJzsKICAgICAgfSwgNTAwKTsKICAgIH0KICAgIHJlbW92ZUZyYW1lICgpIHs
KICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJC
JdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICB9CiAgICBhc3luYyBjYWxsICgpIHsKICAgICAgY29uc3Qgb2sgP
SBhd2FpdCB0aGlzLnByZXBhcmUoKTsKICAgICAgaWYgKCFvaykgewogICAgICAgIHJldHVybjsKICAgICAg
fQogICAgICBjb25zdCBtdyA9IGF3YWl0IHRoaXMuZ2V0TWlkZGxld2FyZSgpOwogICAgICBpZiAoIW13KSB
7CiAgICAgICAgdGhpcy53aXRob3V0TWlkZGxld2FyZSgpOwogICAgICAgIHJldHVybjsKICAgICAgfQogIC
AgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLmdldFVSTChtdyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFU
l9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayh1cmwpOwog
ICAgfQogIH0KICBjbGFzcyBOb1JlY2FwdGNoYUhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdEhhbmRsZXIgewo
gICAgcHJlcGFyZSAoKSB7CiAgICAgIHRoaXMucmVtb3ZlRnJhbWUoKTsKICAgICAgdGhpcy5yZW1vdmVPdm
VybGF5KCk7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgYXN5bmMgZ2V0TWlkZGxld2FyZSAoKSB7C
iAgICAgIHJldHVybiBhd2FpdCBnZXRKUXVlcnlGb3JtKHRoaXMuX2Zvcm1TZWxlY3Rvcik7CiAgICB9CiAg
ICB3aXRob3V0TWlkZGxld2FyZSAoKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5pbmZvKCdubyBmb3JtJyk7CiAgICB9CiAgICBhc3luYyBnZX
RVUkwgKGpGb3JtKSB7CiAgICAgIHJldHVybiBhd2FpdCBnZXRVUkxGcm9tSlF1ZXJ5Rm9ybShqRm9ybSk7C
iAgICB9CiAgfQogIGNsYXNzIFJlY2FwdGNoYUhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdEhhbmRsZXIgewog
ICAgYXN5bmMgcHJlcGFyZSAoKSB7CiAgICAgIHRoaXMucmVtb3ZlT3ZlcmxheSgpOwogICAgICBjb25zdCB
mID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLi
QoJyNjYXB0Y2hhU2hvcnRsaW5rLCBkaXYuZy1yZWNhcHRjaGEnKTsKICAgICAgaWYgKCFmKSB7CiAgICAgI
CAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siXyJdLmluZm8oJ3JlY2FwdGNoYSBkZXRlY3RlZCwgc3RvcCcpOwogICA
gICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0
VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uaW5mbygndHJ5aW5nIHRvIGxpc3RlbiBzdWJtaXQgY
nV0dG9uJyk7CiAgICAgIGNvbnN0IGIgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnI2ludmlzaWJsZUNhcHRjaGFTaG9ydGxpbmsnKTsKICAgICAgaWY
gKCFiKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGF3YWl0IHRoaXMuc3VibWl0TG
lzdGVuKGIsIGYpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBhc3luYyBzdWJtaXRMaXN0ZW4gK
GIpIHsKICAgICAgY29uc3QgbyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgICBpZiAo
IWIuZGlzYWJsZWQpIHsKICAgICAgICAgIGIuY2xpY2soKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB
vLm9ic2VydmUoYiwgewogICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsCiAgICAgIH0pOwogICAgfQogICAgYX
N5bmMgZ2V0TWlkZGxld2FyZSAoKSB7CiAgICAgIHJldHVybiBhd2FpdCBnZXRKUXVlcnlGb3JtKHRoaXMuX
2Zvcm1TZWxlY3Rvcik7CiAgICB9CiAgICB3aXRob3V0TWlkZGxld2FyZSAoKSB7CiAgICAgIGNvbnN0IGYg
PSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdKSgnI2xpbmstdmlldycpOwogICAgICBmLnN1Ym1pdCgpOwogICAgfQogICAgYXN5bmMgZ2V0VVJMIC
hqRm9ybSkgewogICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU
1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YWl0KDEwMDApOwogICAgICAgIHRy
eSB7CiAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCBnZXRVUkxGcm9tSlF1ZXJ5Rm9ybShqRm9ybSk7CiA
gICAgICAgICBpZiAodXJsKSB7CiAgICAgICAgICAgIHJldHVybiB1cmw7CiAgICAgICAgICB9CiAgICAgIC
AgfSBjYXRjaCAoZSkgewogICAgICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siXyJdLndhcm4oZSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQogIGNs
YXNzIEludmlzaWJsZVJlY2FwdGNoYUhhbmRsZXIgZXh0ZW5kcyBSZWNhcHRjaGFIYW5kbGVyIHsKICAgIGF
zeW5jIHN1Ym1pdExpc3RlbiAoYiwgZikgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX1
9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCgxMDAwKTsKICAgICAgY29uc3QgY2xpY
2sgPSBmLmNsaWVudFdpZHRoID09PSAwIHx8IGYuY2hpbGROb2Rlcy5sZW5ndGggPT09IDA7CiAgICAgIGlm
IChjbGljayAmJiAhYi5kaXNhYmxlZCkgewogICAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5pbmZvKCdjbGlja2luZyBzdWJtaXQgYnV0dG9uLCBiZW
NhdXNlIHJlY2FwdGNoYSB3YXMgZW1wdHknKTsKICAgICAgICBiLnNldEF0dHJpYnV0ZSgnb25jbGljaycsI
CcnKTsKICAgICAgICBiLmNsaWNrKCk7CiAgICAgIH0KICAgIH0KICB9CiAgY2xhc3MgTm9uRGlzYWJsZWRS
ZWNhcHRjaGFIYW5kbGVyIGV4dGVuZHMgUmVjYXB0Y2hhSGFuZGxlciB7CiAgICBhc3luYyBzdWJtaXRMaXN
0ZW4gKGIpIHsKICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCg1MDApOwogICAgICAgIGlmI
ChncmVjYXB0Y2hhICYmIGdyZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKS5sZW5ndGggIT09IDApIHsKICAgICAg
ICAgIGIuY2xpY2soKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KICB
jbGFzcyBPVVJMSGFuZGxlciBleHRlbmRzIFJlY2FwdGNoYUhhbmRsZXIgewogICAgYXN5bmMgZ2V0TWlkZG
xld2FyZSAoKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgdmVyaWZ5OiBhd2FpdCBnZXRKUXVlcnlGb3JtK
CcjZ2V0LWxpbmsnKSwKICAgICAgICBnbzogYXdhaXQgZ2V0SlF1ZXJ5Rm9ybSh0aGlzLl9mb3JtU2VsZWN0
b3IpLAogICAgICB9OwogICAgfQogICAgYXN5bmMgZ2V0VVJMIChqRm9ybU9iamVjdCkgewogICAgICBhd2F
pdCBnZXRVUkxGcm9tSlF1ZXJ5Rm9ybShqRm9ybU9iamVjdC52ZXJpZnkpOwogICAgICByZXR1cm4gYXdhaX
QgZ2V0VVJMRnJvbUpRdWVyeUZvcm0oakZvcm1PYmplY3QuZ28pOwogICAgfQogIH0KICBjbGFzcyBMaW5rR
HJvcEhhbmRsZXIgZXh0ZW5kcyBSZWNhcHRjaGFIYW5kbGVyIHsKICAgIGFzeW5jIGdldE1pZGRsZXdhcmUg
KCkgewogICAgICByZXR1cm4gYXdhaXQgZ2V0SlF1ZXJ5Rm9ybSgnI215bGluazEnKTsKICAgIH0KICB9CiA
gY2xhc3MgU3RhZ2VkSGFuZGxlciBleHRlbmRzIEFic3RyYWN0SGFuZGxlciB7CiAgICBwcmVwYXJlICgpIH
sKICAgICAgdGhpcy5yZW1vdmVGcmFtZSgpOwogICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTsKICAgICAgc
mV0dXJuIHRydWU7CiAgICB9CiAgICBhc3luYyBnZXRNaWRkbGV3YXJlICgpIHsKICAgICAgY29uc3QgZiA9
IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCc
jbGluay12aWV3Jyk7CiAgICAgIGlmICghZikgewogICAgICAgIHJldHVybiBkb2N1bWVudDsKICAgICAgfQ
ogICAgICBjb25zdCBhcmdzID0gZXh0cmFjdEFyZ3VtZW50KGYpOwogICAgICBjb25zdCB1cmwgPSBmLmdld
EF0dHJpYnV0ZSgnYWN0aW9uJyk7CiAgICAgIGxldCBwYWdlID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVT
UEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnBvc3QodXJsLCBhcmdzKTsKICAgICA
gcGFnZSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIi
QiXS50b0RPTShwYWdlKTsKICAgICAgcmV0dXJuIHBhZ2U7CiAgICB9CiAgICB3aXRob3V0TWlkZGxld2FyZ
SAoKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIl8iXS5pbmZvKCdubyBwYWdlJyk7CiAgICB9CiAgICBhc3luYyBnZXRVUkwgKHBhZ2UpIHsKICAgICA
gY29uc3QgZiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyIkIl0pKCcjZ28tbGluaycsIHBhZ2UpOwogICAgICBjb25zdCBhcmdzID0gZXh0cmFjdEFyZ
3VtZW50KGYpOwogICAgICBjb25zdCB1cmwgPSBmLmdldEF0dHJpYnV0ZSgnYWN0aW9uJyk7CiAgICAgIGxl
dCBkYXRhID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUx
FXzBfX1siJCJdLnBvc3QodXJsLCBhcmdzKTsKICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7CiAgIC
AgIGlmIChkYXRhICYmIGRhdGEudXJsKSB7CiAgICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm51a2UoZGF0YS51cmwpOwogICAgICAgIHJldHVybiBk
YXRhLnVybDsKICAgICAgfQogICAgICB0aHJvdyBuZXcgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLkFkc0J5cGFzc2VyRXJyb3IoJ3dyb25nIGRhdGEnKTsKIC
AgIH0KICB9CiAgY2xhc3MgU2hvcnRseUhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdEhhbmRsZXIgewogICAgc
HJlcGFyZSAoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgYXN5bmMgZ2V0TWlkZGxld2FyZSAo
KSB7CiAgICAgIGxldCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9
SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNteU1vZGFsIC5idG4tcHJpbWFyeScpOwogICAgICBhID0gYS5wYX
RobmFtZS5tYXRjaCgvXlwvclwvKC4rKS8pOwogICAgICByZXR1cm4gYVsxXTsKICAgIH0KICAgIHdpdGhvd
XRNaWRkbGV3YXJlICgpIHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siXyJdLmluZm8oJ25vIHBhZ2UnKTsKICAgIH0KICAgIGFzeW5jIGdldFVSTCAoaWQ
pIHsKICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93LmpRdWVyeS5wb3N0KCdnZXRsaW5rLnBocCcsI
HtpZDogaWR9KS5kb25lKGZ1bmN0aW9uICh1cmwpIHsKICAgICAgICAgIGlmICh1cmwubWF0Y2goL15odHRw
LykpIHsKICAgICAgICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgYX
dhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdL
ndhaXQoNTAwKTsKICAgICAgfQogICAgfQogIH0KICBmdW5jdGlvbiBleHRyYWN0QXJndW1lbnQgKGZvcm0p
IHsKICAgIGNvbnN0IGFyZ3MgPSB7fTsKICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8wX19bIl8iXS5mb3JFYWNoKF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kJCgnaW5wdXQnLCBmb3JtKSwgKHYpID0+IHsKICAgICAgY
XJnc1t2Lm5hbWVdID0gdi52YWx1ZTsKICAgIH0pOwogICAgcmV0dXJuIGFyZ3M7CiAgfQogIGFzeW5jIGZ1
bmN0aW9uIGdldEpRdWVyeUZvcm0gKHNlbGVjdG9yKSB7CiAgICBsZXQgalF1ZXJ5ID0gX0FEU0JZUEFTU0V
SX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy4kOwogICAgd2
hpbGUgKCFqUXVlcnkpIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfS
U1QT1JURURfTU9EVUxFXzBfX1siXyJdLndhaXQoNTApOwogICAgICBqUXVlcnkgPSBfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93LiQ7CiAgICB9CiA
gICBjb25zdCBmID0galF1ZXJ5KHNlbGVjdG9yKTsKICAgIGlmIChmLmxlbmd0aCA+IDApIHsKICAgICAgcm
V0dXJuIGY7CiAgICB9CiAgICByZXR1cm4gbnVsbDsKICB9CiAgZnVuY3Rpb24gZ2V0VVJMRnJvbUpRdWVye
UZvcm0gKGpGb3JtKSB7CiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewog
ICAgICBpZiAoakZvcm0uaXMoJ2EnKSAmJiBqRm9ybS5hdHRyKCdocmVmJykpIHsKICAgICAgICByZXNvbHZ
lKGpGb3JtLmF0dHIoJ2hyZWYnKSk7CiAgICAgIH0KICAgICAgY29uc3QgalF1ZXJ5ID0gX0FEU0JZUEFTU0
VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy4kOwogICAgI
CBqUXVlcnkuYWpheCh7CiAgICAgICAgZGF0YVR5cGU6ICdqc29uJywKICAgICAgICB0eXBlOiAnUE9TVCcs
CiAgICAgICAgdXJsOiBqRm9ybS5hdHRyKCdhY3Rpb24nKSwKICAgICAgICBkYXRhOiBqRm9ybS5zZXJpYWx
pemUoKSwKICAgICAgICBzdWNjZXNzOiAocmVzdWx0KSA9PiB7CiAgICAgICAgICBpZiAocmVzdWx0LnVybC
kgewogICAgICAgICAgICByZXNvbHZlKHJlc3VsdC51cmwpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgI
CAgICAgcmVqZWN0KG5ldyBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJfIl0uQWRzQnlwYXNzZXJFcnJvcihyZXN1bHQubWVzc2FnZSkpOwogICAgICAgICAgfQogICA
gICAgIH0sCiAgICAgICAgZXJyb3I6ICh4aHIsIHN0YXR1cywgZXJyb3IpID0+IHsKICAgICAgICAgIF9BRF
NCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YXJuKHhoc
iwgc3RhdHVzLCBlcnJvcik7CiAgICAgICAgICByZWplY3QobmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0Vf
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCdyZXF1ZXN0IGV
ycm9yJykpOwogICAgICAgIH0sCiAgICAgIH0pOwogICAgfSk7CiAgfQp9KSgpOwpfQURTQllQQVNTRVJfTk
FNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6I
HsKICAgIGhvc3Q6IC9ebGlua2R1aXRcLm5ldCQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29u
c3QgbCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEV
fMF9fWyIkIl0pKCcuY29sLWxnLTggaDEnKS50ZXh0Q29udGVudDsKICAgIGNvbnN0IGNoZWNrID0gbC5tYX
RjaCgvXmh0dHBzPzpcL1wvLyk7CiAgICBpZiAoY2hlY2spIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGwpOwogICAg
fSBlbHNlIHsKICAgICAgcmV0dXJuOwogICAgfQogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3
Q6IC9eKHd3d1wuKT9saW5rcGx1Z2FwcFwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb
25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIiQiXSkoJyNtY19lbWJlZF9zaWdudXBfc2Nyb2xsIGEnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhhLmhyZW
YpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM
F9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ebGlua3Nhc1wudXMkLywKICAgIHBh
dGg6IC9eKFwvXHcrKSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKG0pIHsKICAgIGNvbnN0IHJlY2FwdGNoYSA
9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl
8iXS50cnlFdmVyeSgxMDAwLCAoKSA9PiB7CiAgICAgIGNvbnN0IHJlY2FwdGNoYSA9IE9iamVjdChfQURTQ
llQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjZy1yZWNh
cHRjaGEtcmVzcG9uc2UnKTsKICAgICAgaWYgKCFyZWNhcHRjaGEpIHsKICAgICAgICByZXR1cm4gbnVsbDs
KICAgICAgfQogICAgICBpZiAoIXJlY2FwdGNoYS52YWx1ZSkgewogICAgICAgIHJldHVybiBfQURTQllQQV
NTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPU
lRFRF9NT0RVTEVfMF9fWyJfIl0ubm9uZTsKICAgICAgfQogICAgICByZXR1cm4gcmVjYXB0Y2hhLnZhbHVl
OwogICAgfSk7CiAgICBjb25zdCB1cmwgPSBgaHR0cDovL2lwaW5mby5pby8ke19BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5nZW5lcmF0ZVJhbmRvbUlQKCl9L2
pzb25gOwogICAgbGV0IGlwaW5mbyA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5nZXQodXJsKTsKICAgIGlwaW5mbyA9IEpTT04ucGFyc2UoaXBp
bmZvKTsKICAgIGNvbnN0IHBheWxvYWQgPSB7CiAgICAgIGNvZGVBZHM6IDEsCiAgICAgIGNvdW50cnk6IGl
waW5mby5jb3VudHJ5LAogICAgICBpcEFkZHJlc3M6IGlwaW5mby5pcCwKICAgICAgcmVjYXB0Y2hhOiByZW
NhcHRjaGEsCiAgICB9OwogICAgY29uc3QgdG9rZW4gPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uZ2V0Q29va2llKCdYU1JGLVRPS0VOJyk7CiAgICBsZXQg
ZGF0YSA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8
wX19bIiQiXS5wb3N0KCcvZ28nICsgbS5wYXRoWzFdLCBwYXlsb2FkLCB7CiAgICAgICdDb250ZW50LVR5cG
UnOiAnYXBwbGljYXRpb24vanNvbicsCiAgICAgICdYLVhTUkYtVE9LRU4nOiB0b2tlbiwKICAgIH0pOwogI
CAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoZGF0YS5tZXNzYWdlKTsKICB9LAp
9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
JlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmxpbmtzYXNcLnVzJC8sCiAgICBwYXRoOiAvXlwvZ
29cLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gX0FEU0JZUEFTU0VSX05BTUVT
UEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJyNidG5TdWJtaXQnKTsKICAgIGl
mICghYSkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCB1cmwgPSBhLmhyZWY7CiAgICBjb25zdC
BwYXR0ZXJuID0gL2h0dHBzPzpcL1wvL2c7CiAgICBsZXQgbGFzdFVSTCA9ICcnOwogICAgd2hpbGUgKHRyd
WUpIHsKICAgICAgY29uc3QgbWF0Y2hlZCA9IHBhdHRlcm4uZXhlYyh1cmwpOwogICAgICBpZiAoIW1hdGNo
ZWQpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBsYXN0VVJMID0gbWF0Y2hlZCArIHVybC5zdWJ
zdHJpbmcocGF0dGVybi5sYXN0SW5kZXgpOwogICAgfQogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGxhc3RVUkwpOwogIH0sC
n0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0u
cmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKGxpbmtzaHJpbmt8bG5rc2hybmspXC5uZXQkLyw
KICAgIHBhdGg6IC9eXC9bYS16QS1aMC05XSskLywKICB9LAogIGFzeW5jIHN0YXJ0ICgpIHsKICAgIF9BRF
NCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS53aW5kb3cuX
2ltcHNwY2FiZSA9IDA7CiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgbCA9IF9BRFNCWVBBU1NF
Ul9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB
0cygvcmV2Q1woIihbXiJdKykiXCkvKTsKICAgIGwgPSBhdG9iKGxbMV0pOwogICAgYXdhaXQgX0FEU0JZUE
FTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKCcvJ
yArIGwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKGxpbmtzaHJpbmt8bG5rc2h
ybmspXC5uZXQkLywKICAgIHBhdGg6IC89KC4rKSQvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIG
F3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
S5vcGVuTGluayhtLnBhdGhbMV0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZHd
pbmRseVwuaW8kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGxldCBsID0gX0FEU0JZUEFTU0VSX0
5BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRzK
C9lbmNEXCgiKFteIl0rKSJcKS8pOwogICAgaWYgKGwpIHsKICAgICAgbCA9IGF0b2IobFsxXSk7CiAgICAg
IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQ
iXS5vcGVuTGluaygnLycgKyBsKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgbCA9IF9BRFNCWVBBU1NFUl
9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0c
ygvZG9jdW1lbnRcLmxvY2F0aW9uXC5ocmVmID0gIihbXiJdKykiLyk7CiAgICBhd2FpdCBfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsobFsxXSk
7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX1
9bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXmxpbmtzdXB0b1wuY29tJ
C8sCiAgICAgIC9edXBsaW5rdG9cLm1lJC8sCiAgICBdLAogICAgcGF0aDogL15cL3ZpZXdcLy8sCiAgfSwK
ICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBsID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0V
fX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy5zdWJtaXQtY2FwdGNoYS5yb3cgLmNvbC
1zbS0zLmNvbC1zbS1vZmZzZXQtNCBidXR0b24nKTsKICAgIGwuY2xpY2soKTsKICB9LAp9KTsKX0FEU0JZU
EFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsK
ICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9ebGluay10b1wubmV0JC8sCiAgICAgIC9ebGlua3ZlcnR
pc2VcLmNvbSQvLAogICAgXSwKICAgIHF1ZXJ5OiAvXlw/cj0oW2EtekEtWjAtOS89XSspJC8sCiAgfSwKIC
Bhc3luYyBzdGFydCAobSkgewogICAgY29uc3QgdXJsID0gYXRvYihtLnF1ZXJ5WzFdKTsKICAgIGF3YWl0I
F9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVu
TGluayh1cmwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZGlyZWN0LWxpbmtcLm
5ldCQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgbHYgPSBfQURTQllQQVNTRVJfTkFNR
VNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoL3dp
bmRvdy5sb2NhdGlvbi5ocmVmID0gXCgiKFteIl0rKSJcKTsvKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhsdlsxXSk7Ci
AgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bI
l8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14ocmQ/KWxua1wuY28kLywKICAgIHBhdGg6
IC9eXC9bXi5dKyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgZiA9IF9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCdpZnJhbWUjZGVzdC
cpOwogICAgaWYgKGYpIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfS
U1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGYuc3JjKTsKICAgICAgcmV0dXJuOwogICAgfQog
ICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJ
lbW92ZSgnaWZyYW1lJyk7CiAgICBsZXQgbyA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0
lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjdXJsaG9sZGVyJyk7CiAgICBpZiAobykgewogICAgICBhd
2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0u
b3Blbkxpbmsoby52YWx1ZSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIG8gPSBfQURTQllQQVNTRVJfTkF
NRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnI3NraXBCdG4nKTsKICAgIG
lmIChvKSB7CiAgICAgIG8gPSBvLnF1ZXJ5U2VsZWN0b3IoJ2EnKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU
0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKG8uaHJl
Zik7CiAgICAgIHJldHVybjsKICAgIH0KICAgIG8gPSBkb2N1bWVudC50aXRsZS5yZXBsYWNlKC8oTE5LLmN
vfExpbmtiZWUpXHMqOlxzKi8sICcnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRU
JQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhvKTsKICB9LAp9KTsKX0FEU0JZUEFTU
0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBy
dWxlOiB7CiAgICBob3N0OiAvXnd3d1wubG9saW5lelwuY29tJC8sCiAgICBxdWVyeTogL1w/KC4rKS8sCiA
gfSwKICBhc3luYyBzdGFydCAobSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQl
BBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKG0ucXVlcnlbMV0pOwogIH0sCn0pOwpfQ
URTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0
ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed3d3XC5taWplXC5uZXQkLywKICAgIHBhdGg6IC9eXC9cdyt
cLyguKykkLywKICB9LAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICBjb25zdCB1cmwgPSBhdG9iKG0ucGF0aF
sxXSk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyIkIl0ub3BlbkxpbmsodXJsKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiB
bCiAgICAgIC9ebWluaWRyb2lkXC5uZXQkLywKICAgICAgL15saW5rcG9pXC5pbiQvLAogICAgXSwKICB9LA
ogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDR
V9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnYS5yZWRpcmVjdCwgYVt0YXJnZXQ9X2Js
YW5rXVtyZWw9bm9mb2xsb3ddJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYS5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUE
FTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKI
CBydWxlOiB7CiAgICBob3N0OiAvXm1pcnJvcmZpbGVob3N0XC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5
ICgpIHsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFV
MRV8wX19bIl8iXS53YWl0KDMgKiAxMDAwKTsKICAgIGNvbnN0IGZyYW1lID0gZnJhbWVzWzBdOwogICAgY2
9uc3QgZm9ybSA9IGZyYW1lLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKICAgIGZvcm0udGFyZ
2V0ID0gJ19wYXJlbnQnOwogICAgZm9ybS5hY3Rpb24gPSBsb2NhdGlvbi50b1N0cmluZygpOwogICAgY29u
c3QgaW5wdXQgPSBmcmFtZS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgaW5wdXQudmF
sdWUgPSAnRG93bmxvYWQnOwogICAgaW5wdXQudHlwZSA9ICdzdWJtaXQnOwogICAgZm9ybS5hcHBlbmRDaG
lsZChpbnB1dCk7CiAgICBmcmFtZS5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOwogICAgaW5wd
XQuY2xpY2soKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXm1vZXN1YnNcLmNvbSQ
vLAogICAgcGF0aDogL15cL3VybFwvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGxldCBhID0gT2
JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
SkoJy5nb3RvbGluayA+IGNlbnRlcjpudGgtY2hpbGQoMSkgPiBkaXY6bnRoLWNoaWxkKDEpID4gaTpudGgt
Y2hpbGQoMiknKTsKICAgIGEgPSBhLnRleHRDb250ZW50OwogICAgY29uc3QgaSA9IGEubGFzdEluZGV4T2Y
oJ2h0dHAnKTsKICAgIGEgPSBhLnN1YnN0cihpKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0
VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhhKTsKICB9LAp9KTsKX0FEU
0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVy
KHsKICBydWxlOiAnaHR0cDovL215LWxpbmsucHJvLyonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN
0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXz
BfX1siJCJdKSgnaWZyYW1lW3Njcm9sbGluZz1hdXRvXScpOwogICAgaWYgKGkpIHsKICAgICAgYXdhaXQgX
0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5M
aW5rKGkuc3JjKTsKICAgIH0KICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1
QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLi
k/bXlsaW5rXC56b25lJC8sCiAgICBwYXRoOiAvXlwvW14vXSskLywKICB9LAogIGFzeW5jIHJlYWR5ICgpI
HsKICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0Vf
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2lmcmFtZScpOwogICAgY29uc3Q
gbWF0Y2hlcyA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX1
9bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygvPGEgaHJlZj0iaHR0cHM6XC9cLyg/Ond3d1wuKT9teWxpbmtcL
npvbmVcL2xpbmtcL3JlZGlyZWN0XC9cP3VybD0oW14mXSspJi8pOwogICAgY29uc3QgdXJsID0gZGVjb2Rl
VVJJQ29tcG9uZW50KG1hdGNoZXNbMV0pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiAgfSwKfSk7Cl9BRFNCWV
BBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7C
iAgcnVsZTogewogICAgaG9zdDogL15vbmVwaWVjZS1leFwuY29tXC5iciQvLAogIH0sCiAgYXN5bmMgcmVh
ZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICBjb25zdCBtYXRjaGVzID0gX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRzKC88Y
SBocmVmPSIoW14mXSspKD89IiApLyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsobWF0Y2hlc1sxXSk7CiAgfSwKfSk7Cl9
BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3
Rlcih7CiAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXnd3d1wubmFtaXl0XC5jb20kLywKICAgICAgL
15yZWFsc2h0XC5tb2JpJC8sCiAgICBdLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgbiA9
IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyI
kIl0pKCcjc2VjdGlvbjEgZm9ybSBpbnB1dCNzZWN0aW9uMScpOwogICAgbi5jbGljaygpOwogIH0sCn0pOw
pfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVna
XN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ebm1hY1wudG8kLywKICAgIHBhdGg6IC9eXC9kb3dubG9h
ZFwvKC4rKS8sCiAgfSwKICBhc3luYyBzdGFydCAobSkgewogICAgY29uc3QgdXJsID0gYXRvYihtLnBhdGh
bMV0pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDog
L15uc2Z3XC5pbiQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgYSA9IE9iamVjdChfQUR
TQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjbG9uZ1
91cmwgYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfT
U9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BB
Q0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICA
gaG9zdDogL15udXRzaGVsbHVybFwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdC
BpZnJhbWUgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EV
UxFXzBfX1siJCJdKSgnaWZyYW1lJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoaWZyYW1lLnNyYyk7CiAgfSwKfSk7Cl9
BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3
Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL153d3dcLm9uaVwudm4kLywKICB9LAogIGFzeW5jIHJlYWR5I
CgpIHsKICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IiQiXS5yZW1vdmUoJ2lmcmFtZScpOwogICAgbGV0IGRhdGEgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoL2RhdGE6IihbXi
JdKykiLyk7CiAgICBpZiAoIWRhdGEpIHsKICAgICAgdGhyb3cgbmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ
0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCdwYXR0ZXJu
IGNoYW5nZWQnKTsKICAgIH0KICAgIGRhdGEgPSBkYXRhWzFdOwogICAgY29uc3QgdXJsID0gYXdhaXQgX0F
EU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLmdldCgnL2
NsaWNrLmh0bWwnLCBkYXRhKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayh1cmwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU
6IHsKICAgIGhvc3Q6IFsKICAgICAgL14od3d3XC4pP291b1wuKGlvfHByZXNzKSQvLAogICAgICAvXihzbG
9vbXB8bm92YWVucmV0YSlcLnNwYWNlJC8sCiAgICBdLAogICAgcGF0aDogL15cL2dvXC9cdyskLywKICB9L
AogIGFzeW5jIHJlYWR5ICgpIHsKICAgIE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdmb3JtJykuc3VibWl0KCk7CiAgfSwKfSk7Cl9BRFNCWVB
BU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7Ci
AgcnVsZTogewogICAgaG9zdDogL15wXC5wdyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU
0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgn
aWZyYW1lJyk7CiAgICBsZXQgbSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygvd2luZG93XC5sb2NhdGlvbiA9ICIoLiopIj
svKTsKICAgIG0gPSBtWzFdOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfS
U1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKG0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFN
RVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHs
KICAgIGhvc3Q6IC9ecGRpMlwubmV0JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgcyA9IF
9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY
2hGcm9tU2NyaXB0cygvdG9wXC5sb2NhdGlvbiA9ICcoW14nXSspJy8pOwogICAgcyA9IHNbMV07CiAgICBh
d2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0
ub3Blbkxpbmsocyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVE
VEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXihwc
m9idXNpbmVzc2h1Ynx0ZWNub2diKVwuY29tJC8sCiAgICAgIC9eKHRyYWNreXdlfHN0YXJ2YXRlKVwuaW4k
LywKICAgICAgL152aXJhbGNvbGxlY3RcLmluZm8kLywKICAgICAgL14odGVjaG5vZGlhfG91cnRlY2hub2V
3fG11dGhhcmFtbXNzfHRoYW5kYXx0aGluYW5hKVwueHl6JC8sCiAgICAgIC9eZW50cmV0ZW5kb25hd2ViXC
5nYSQvLAogICAgXSwKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGxldCBmID0gX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJ2Zvcm1baWQkPS1zdWJz
Y3JpYmVdJyk7CiAgICBpZiAoZikgewogICAgICBmLmFjdGlvbiA9IGYuYWN0aW9uLnJlcGxhY2UoJ2h0dHA
6JywgJ2h0dHBzOicpOwogICAgICBmLnN1Ym1pdCgpOwogICAgICByZXR1cm47CiAgICB9CiAgICBmID0gX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJja
EZyb21TY3JpcHRzKC9sb2NhdGlvblwuaHJlZj0iKFteIl0rKSIvKTsKICAgIGYgPSBmWzFdOwogICAgYXdh
aXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9
wZW5MaW5rKGYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF
9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ecHVjdWtcLnh5eiQvL
AogICAgcGF0aDogL15cL1x3Ky8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBweCA9IE9i
amVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0
pKCcjY29udGVudCBhcnRpY2xlIGNlbnRlciBhLmJ1dHRvbi5pY29uLmZhLWxpbmsnKTsKICAgIGF3YWl0IF
9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuT
GluayhweC5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cDovL3JpY2hsaW5rLmNvbS9hcHA
vd2Vic2NyP2NtZD1fY2xpY2sma2V5PSonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGxldCBmID0gT2JqZW
N0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ
2ZyYW1lc2V0Jyk7CiAgICBmID0gZi5vbmxvYWQudG9TdHJpbmcoKTsKICAgIGYgPSBmLm1hdGNoKC91cmw9
KFteJl0rKS8pOwogICAgaWYgKGYpIHsKICAgICAgZiA9IGRlY29kZVVSSUNvbXBvbmVudChmWzFdKTsKICA
gIH0gZWxzZSB7CiAgICAgIGYgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnZnJhbWVbbmFtZT1zaXRlXScpOwogICAgICBmID0gZi5zcmM7C
iAgICB9CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyIkIl0ub3BlbkxpbmsoZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL1
5wcmV2aWV3XC5ybHVcLnJ1JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZ
WN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSko
JyNjb250ZW50ID4gLmxvbmdfdXJsID4gYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9
fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfSk7Cl
9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc
3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL153d3dcLnJvblwudm4kLywKICB9LAogIGFzeW5jIHJlYWR5
ICgpIHsKICAgIGNvbnN0IHNjcmlwdCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9
SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygnbGlua25leHR0b3AnKTsKICAgIGNvbn
N0IGRhdGEgPSBzY3JpcHQubWF0Y2goL2RhdGE6IihbXiJdKykiLyk7CiAgICBsZXQgdXJsID0gX0FEU0JZU
EFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy5kb21h
aW4gKyAnY2xpY2suaHRtbD8nICsgZGF0YVsxXTsKICAgIHVybCA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5nZXQodXJsLCB7fSwgewogICAgIC
AnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnLAogICAgfSk7CiAgI
CBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIk
Il0ub3BlbkxpbmsodXJsKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1
QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLi
k/c2FcLmFlJC8sCiAgICBwYXRoOiAvXlwvXHcrXC8kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgI
GNvbnN0IG0gPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoL2NvbnN0IHJlYWxfbGluayA9ICcoW14nXSspJzsvKTsKICAgIGF
3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS
5vcGVuTGluayhtWzFdKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/
c2FmZXVybFwuZXUkLywKICAgIHBhdGg6IC9cL1x3Ky8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICB
sZXQgZGlyZWN0VXJsID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRzKC93aW5kb3dcLm9wZW5cKCIoW14iXSspIlwpOy8pOwogI
CAgaWYgKCFkaXJlY3RVcmwpIHsKICAgICAgdGhyb3cgbmV3IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5BZHNCeXBhc3NlckVycm9yKCdzY3JpcHQgY29udGV
udCBjaGFuZ2VkJyk7CiAgICB9CiAgICBkaXJlY3RVcmwgPSBkaXJlY3RVcmxbMV07CiAgICBhd2FpdCBfQU
RTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpb
msoZGlyZWN0VXJsKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHs
KICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9ec2VnbWVudG5leHRcLmNvbSQvLAogICAgICAvXih3d3
dcLik/dmlkZW9nYW1lc2Jsb2dnZXJcLmNvbSQvLAogICAgXSwKICAgIHBhdGg6IC9eXC9pbnRlcnN0aXRpY
WxcLmh0bWwkLywKICAgIHF1ZXJ5OiAvcmV0dXJuX3VybD0oW14mXSspLywKICB9LAogIGFzeW5jIHN0YXJ0
IChtKSB7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0R
VTEVfMF9fWyIkIl0ub3BlbkxpbmsoZGVjb2RlVVJJQ29tcG9uZW50KG0ucXVlcnlbMV0pKTsKICB9LAp9KT
sKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ
2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKHd3d1wuKT9zZW1wcm90XC5jb20kLywK
ICAgICAgL140NlwuMTY2XC4xNjdcLjE2JC8sCiAgICBdLAogICAgcGF0aDogL15cL2FobGlcLnBocC8sCiA
gICBxdWVyeTogL15cP3VybD0oLiopLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IHNlbS
A9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZ
WFyY2hGcm9tU2NyaXB0cygvdmFyIHRoZV91cmwgPSAnKFteJ10rKSc7Lyk7CiAgICBhd2FpdCBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbmsoc2V
tWzFdKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKHd3d1wuKT9hc
HBsb2FkelwucnUkLywKICAgICAgL14od3d3XC4pP3Nlb21hZmlhXC5uZXQkLywKICAgIF0sCiAgfSwKICBh
c3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUnKTsKICAgIGNvbnN0IGEgPSBPYmplY3QoX0FEU0JZUE
FTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgndGFibGUgYScpO
wogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfSk7CihmdW5jdGlvbiAoKSB7CiAgY29uc3QgaG9zdFJ
1bGVzID0gWwogICAgL14oam53MHxjbGxrbWV8Y2xrbWVpbnxjb3JuZWV5fGNlZXN0eSlcLmNvbSQvLAogIC
AgL14oZGVzdHl5fGZlc3R5eXxnZXN0eXkpXC5jb20kLywKICAgIC9ec2hcLnN0JC8sCiAgICAvXih2aWlkf
HdpaWR8Y2xrbWUpXC5tZSQvLAogIF07CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogaG9zdFJ
1bGVzLAogICAgICBwYXRoOiAvXlwvZnJlZXplXC8uKy8sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgew
ogICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgICBjb25zd
CBvID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4gewogICAgICAgICAgbXV0YXRpb25z
LmZvckVhY2goKG11dGF0aW9uKSA9PiB7CiAgICAgICAgICAgIGlmIChtdXRhdGlvbi50YXJnZXQuZ2V0QXR
0cmlidXRlKCdjbGFzcycpLm1hdGNoKC9hY3RpdmUvKSkgewogICAgICAgICAgICAgIG8uZGlzY29ubmVjdC
gpOwogICAgICAgICAgICAgIHJlc29sdmUobXV0YXRpb24udGFyZ2V0LmhyZWYpOwogICAgICAgICAgICB9C
iAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBvLm9ic2VydmUoT2JqZWN0KF9BRFNCWVBBU1NF
Ul9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNza2lwX2J1dHRvbic
pLCB7CiAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLAogICAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2
NsYXNzJ10sCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICBjb25zdCB1cmwgPSBhd2FpdCBwcm9taXNlO
wogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyIkIl0ub3BlbkxpbmsodXJsKTsKICAgIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9
fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgIC
AgaG9zdDogaG9zdFJ1bGVzLAogICAgICBwYXRoOiAvaHR0cHM/OlwvXC8vLAogICAgfSwKICAgIGFzeW5jI
HN0YXJ0ICgpIHsKICAgICAgbGV0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIHdpbmRvdy5s
b2NhdGlvbi5zZWFyY2ggKyB3aW5kb3cubG9jYXRpb24uaGFzaDsKICAgICAgdXJsID0gdXJsLm1hdGNoKC8
oaHR0cHM/OlwvXC8uKikkLyk7CiAgICAgIHVybCA9IHVybFsxXTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0
VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7C
iAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IGhvc3RSdWxlcywKICAgICA
gcGF0aDogL15cL1tcZFx3XSsvLAogICAgfSwKICAgIGFzeW5jIHN0YXJ0ICgpIHsKICAgICAgX0FEU0JZUE
FTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy5faW1wc
3BjYWJlID0gMDsKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1F
U1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2lmcmFtZScpOwogICA
gICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucm
Vtb3ZlQWxsVGltZXIoKTsKICAgICAgY29uc3QgbSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQ
UNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygvc2Vzc2lvbklkOiAiKFtc
ZFx3XSspIiwvKTsKICAgICAgaWYgKG0pIHsKICAgICAgICBhZnRlckdvdFNlc3Npb25JZChtWzFdKTsKICA
gICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdX
RhdGlvbnMpID0+IHsKICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgoKSA9PiB7CiAgICAgICAgICBjb25zd
CBtID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJd
LnNlYXJjaEZyb21TY3JpcHRzKC9zZXNzaW9uSWQ6ICIoW1xkXHddKykiLC8pOwogICAgICAgICAgaWYgKG0
pIHsKICAgICAgICAgICAgby5kaXNjb25uZWN0KCk7CiAgICAgICAgICAgIGFmdGVyR290U2Vzc2lvbklkKG
1bMV0pOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgby5vYnNlcnZlKGRvY3VtZ
W50LmJvZHksIHsKICAgICAgICBjaGlsZExpc3Q6IHRydWUsCiAgICAgIH0pOwogICAgfSwKICB9KTsKICBm
dW5jdGlvbiBhZnRlckdvdFNlc3Npb25JZCAoc2Vzc2lvbklkKSB7CiAgICBjb25zdCBYX05ld1JlbGljX0l
EID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLn
NlYXJjaEZyb21TY3JpcHRzKC94cGlkOiIoW14iXSspIi8pOwogICAgY29uc3QgZGF0YSA9IHsKICAgICAgY
WRTZXNzaW9uSWQ6IHNlc3Npb25JZCwKICAgIH07CiAgICBjb25zdCBoZWFkZXIgPSB7CiAgICAgIEFjY2Vw
dDogJ2FwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCcsCiAgICB9OwogICAgaWYgKFhfTmV3UmV
saWNfSUQpIHsKICAgICAgaGVhZGVyWydYLU5ld1JlbGljLUlEJ10gPSBYX05ld1JlbGljX0lEOwogICAgfQ
ogICAgY29uc3QgaSA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgX0FEU0JZUEFTU0VSX05BT
UVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLmdldCgnL3Nob3J0ZXN0LXVybC9l
bmQtYWRzZXNzaW9uJywgZGF0YSwgaGVhZGVyKS50aGVuKGZ1bmN0aW9uICh0ZXh0KSB7CiAgICAgICAgY29
uc3QgciA9IEpTT04ucGFyc2UodGV4dCk7CiAgICAgICAgaWYgKHIuc3RhdHVzID09ICdvaycgJiYgci5kZX
N0aW5hdGlvblVybCkgewogICAgICAgICAgY2xlYXJJbnRlcnZhbChpKTsKICAgICAgICAgIF9BRFNCWVBBU
1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmVBbGxUaW1l
cigpOwogICAgICAgICAgY29uc3QgdXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KHIuZGVzdGluYXRpb25Vcmw
pOwogICAgICAgICAgcmV0dXJuIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV8wX19bIiQiXS5vcGVuTGluayh1cmwpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LCAxMDAwK
TsKICB9Cn0pKCk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14oc2hvcnR8c3J0KVwuYW0kLywKICB
9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YWl0KDUwMDApOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKCcnLCB7CiAg
ICAgIHBvc3Q6IHsKICAgICAgICBfaW1hZ2U6ICdDb250aW51ZScsCiAgICAgIH0sCiAgICB9KTsKICB9LAp
9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
JlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/c2hvcnRpXC5nYSQvLAogICAgcGF0a
DogWwogICAgICAvXlwvXHcrJC8sCiAgICAgIC9eXC91cmxfcmVkaXJlY3RvclwuaHRtbCQvLAogICAgXSwK
ICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGYgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCQoJ2ZyYW1lJyk7CiAgICBjb25zdCBbLCB2LF
0gPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uZ
mluZChmLCAodmFsdWUpID0+IHsKICAgICAgaWYgKHZhbHVlLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSkgewog
ICAgICAgIHJldHVybiBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEV
fMF9fWyJfIl0ubm9uZTsKICAgICAgfQogICAgICByZXR1cm4gJ1RhcmdldCBmcmFtZSBmb3VuZCc7CiAgIC
B9KTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIiQiXS5vcGVuTGluayh2LnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDo
gL15zaG9ydGlkXC5jbyQvLAogICAgcGF0aDogL15cL1thLXpBLVowLTldKy8sCiAgfSwKICBhc3luYyByZW
FkeSAoKSB7CiAgICBjb25zdCBzID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2EjbWFraW5nZGlmZmVyZW50dGltZXInKTsKICAgIGF3YWl0
IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGV
uTGluayhzLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUl
RFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZ2V0XC5zaHJpb
mstc2VydmljZVwuaXQkLywKICAgIHBhdGg6IC9eXC8oLispLywKICB9LAogIGFzeW5jIHN0YXJ0IChtKSB7
CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9
fWyIkIl0ub3BlbkxpbmsoYC8vd3d3LnNocmluay1zZXJ2aWNlLml0L3Nocmlua2VkLyR7bS5wYXRoWzFdfW
ApOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM
F9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed3d3XC5zaHJpbmstc2VydmljZVwu
aXQkLywKICAgIHBhdGg6IC9eXC9zaHJpbmtlZFwvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGN
vbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdKSgnaW5wdXRbaWRdW25hbWVdJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQ
UNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoaS52YWx1ZSk7CiAgfSwK
fSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5
yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL153d3dcLnNocmluay1zZXJ2aWNlXC5pdCQvLAogIC
AgcGF0aDogL15cL1tzZV1cLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQQVNTRVJfT
kFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJhbWUnKTsK
ICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURUR
fTU9EVUxFXzBfX1siJCJdKSgnYm9keSA+IGlucHV0W2lkXVtuYW1lXScpOwogICAgX0FEU0JZUEFTU0VSX0
5BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGkudmFsdWUpO
wogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ec2h0XC5pbyQvLAogICAgcGF0aDogL15
cL1xkK1wvKC4rKSQvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIGxldCB1cmwgPSBhdG9iKG0ucG
F0aFsxXSk7CiAgICB1cmwgPSB1cmwubWF0Y2goL1x7c2h0LWlvXH0oLispXHtzaHQtaW9cfS4qXHtzaHQta
W9cfS8pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybFsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0V
fX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX1
9bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15zaHRsaW5rXC5jbyQvLAogICAgcGF0a
DogL15cL3Nob3J0LXVybFwvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IG1ldGEgPSBP
YmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJ
dKSgnbWV0YVtuYW1lPSJkZXNjcmlwdGlvbiJdJyk7CiAgICBjb25zdCB1cmwgPSBtZXRhLmNvbnRlbnQ7Ci
AgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yIkIl0ub3BlbkxpbmsodXJsKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnNodG1
lXC5jbyQvLAogICAgcGF0aDogL15cL1x3Ky8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdC
BzID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXSkoJy5jb250ZW50IGRpdiBhIGJ1dHRvbicpOwogICAgcy5jbGljaygpOwogIH0sCn0pOwpfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXI
oewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9zaW1pbGFyc2l0ZXNcLmNvbSQvLAogICAgcGF0aD
ogL15cL2dvdG9cLyhbXj9dKykvCiAgfSwKICBhc3luYyBzdGFydCAobSkgewogICAgbGV0IGwgPSBtLnBhd
GhbMV07CiAgICBpZiAoIS9eaHR0cHM/OlwvXC8vLnRlc3QobCkpIHsKICAgICAgbCA9ICdodHRwOi8vJyAr
IGw7CiAgICB9CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsobCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX1
9XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zd
DogL15zbGlua1wuYmlkJC8sCiAgICBwYXRoOiAvXlwvc2hvcnRcLy8sCiAgfSwKICBhc3luYyByZWFkeSAo
KSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9
SVEVEX01PRFVMRV8wX19bIiQiXSkoJy50ZXh0LWNlbnRlciBhI2J0bi1tYWluLmJ0bi5idG4tbWFpbicpOw
ogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX
1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15
3d3dcLnNwYXN0ZVwuY29tJC8sCiAgICBwYXRoOiAvXlwvZ29cL1x3KyQvLAogIH0sCiAgYXN5bmMgcmVhZH
kgKCkgewogICAgY29uc3QgaWQgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoL1x7aWQ6JyhcZCspJ1x9Lyk7CiAgICBhd2Fp
dCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2F
pdCgzMDAwKTsKICAgIGNvbnN0IHVybCA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5wb3N0KCcvc2l0ZS9nZXRSZWRpcmVjdExpbmsnLCB7CiAgI
CAgIGlkOiBpZFsxXSwKICAgIH0pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHVybCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcn
VsZTogewogICAgaG9zdDogL153d3dcLnNwYXN0ZVwuY29tJC8sCiAgICBwYXRoOiAvXlwvKHN8c2l0ZSlcL
1x3KyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgY2FwdGNoYSA9IE9iamVjdChfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjZ2xvYmF
sQ2FwdGNoYUNvbmZpcm0nKTsKICAgIGNhcHRjaGEuY2xpY2soKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl
9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YWl0KDEwMDApOwogICAgZ
m9yIChsZXQgaSA9IDA7IGkgPCAzOyArK2kpIHsKICAgICAgY29uc3Qgd29yZCA9IE9iamVjdChfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjY3VycmVudEN
hcFF1ZScpLnRleHRDb250ZW50OwogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCgxMDApOwogICAgICBPYmplY3QoX0FEU0JZUEFTU
0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKShgW2RhdGEtaWQ9JyR7
d29yZH0nXWApLmNsaWNrKCk7CiAgICB9CiAgICBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI3RlbXBsYXRlLWNvbnRhY3Rmb3JtLXN1Ym1pdC
cpLmNsaWNrKCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15zdWIydW5sb2NrXC5j
b20kLywKICAgIHBhdGg6IC9eXC9saW5rXC9nZXRcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICB
jb25zdCBzdSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyIkIl0pKCdhI2xpbmsudW5sb2NrLXN0ZXAtbGluay5nZXRsaW5rJyk7CiAgICBhd2FpdCBfQ
URTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxp
bmsoc3UuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15zdWIydW5sb2NrXC
5jb20kLywKICAgIHBhdGg6IC9eXC9bYS16QS1aMC05XSsvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogI
CAgY29uc3Qgc3UgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoLydocmVmJywgJyhbXiddKyknLyk7CiAgICBhd2FpdCBfQUR
TQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbm
soc3VbMV0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9zdXBlcmNo
ZWF0c1wuY29tJC8sCiAgICBwYXRoOiAvXlwvaW50ZXJzdGl0aWFsXC5odG1sJC8sCiAgICBxdWVyeTogLyg
/Olw/fCYpb2xkdXJsPShbXiZdKykoPzokfCYpLywKICB9LAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICBhd2
FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub
3BlbkxpbmsobS5xdWVyeVsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15zdXJ
mc2Vlc1wuY29tJC8sCiAgICBxdWVyeTogL15cP2dvPShbYS16QS1aMC05XSspJC8sCiAgfSwKICBhc3luYy
BzdGFydCAoKSB7CiAgICBjb25zdCBwYXRoID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgnZ28nL
CAnbGluaycpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHBhdGgpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUN
FX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIG
hvc3Q6IC9ec3VyZnNlZXNcLmNvbSQvLAogICAgcXVlcnk6IC9eXD9saW5rPShbYS16QS1aMC05XSspKGNsa
WNrYXJ1cmwpPyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgcyA9IE9iamVjdChfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbnB1dC5
idG4uYnRuLXByaW1hcnknKTsKICAgIHMuY2xpY2soKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgI
CBob3N0OiAvXnN1cmZzZWVzXC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IHN1
cmwgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdKSgnI3dwc2FmZS1saW5reiBhJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX1
9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbmsoc3VybC5ocmVmKTsKICB9LAp9K
TsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJl
Z2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnN3enpcLnh5eiQvLAogICAgcGF0aDogL15cL2xpbmt
cL1x3K1wvJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBnID0gT2JqZWN0KF9BRFNCWV
BBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2EuYnRuLXdyY
XBwZXIubGluaycpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGcuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogWw
ogICAgewogICAgICBob3N0OiAvXih3d3dcLik/c3lsbmtcLm5ldCQvLAogICAgICBxdWVyeTogL2xpbms9K
FteJl0rKS8sCiAgICB9LAogICAgewogICAgICBob3N0OiAvXih3d3dcLik/Y29tcHVsXC5pbiQvLAogICAg
ICBwYXRoOiAvXlwvW25wXVwucGhwJC8sCiAgICAgIHF1ZXJ5OiAvdj0oW14mXSspLywKICAgIH0sCiAgICB
7CiAgICAgIGhvc3Q6IFsKICAgICAgICAvXihzcG9ydHMxNHxtb3Rvc3BvcnQpXC5wdyQvLAogICAgICAgIC
9ebGluZHVuZ1wuaW4kLywKICAgICAgICAvXm1vdG9uZXdzXC5jbHViJC8sCiAgICAgICAgL153d1syM11cL
nBpY25pY3RyYW5zXC5jb20kLywKICAgICAgICAvXihhemhpZXxza2lubnljYXQpXC5uZXQkLywKICAgICAg
ICAvXnd3MlwuYXdzdWJzXC5jbyQvLAogICAgICAgIC9ecGxhbnRhaGVpbVwuKHdlYlwuaWR8Y29tKSQvLAo
gICAgICAgIC9eaXJpc3ZlcmFcLmNvbSQvLAogICAgICBdLAogICAgICBxdWVyeTogL15cP2Q9KFthLXpBLV
owLTkvPV0rKSQvLAogICAgfSwKICAgIHsKICAgICAgaG9zdDogWwogICAgICAgIC9eaVwuZ3RhaW5kXC5jb
20kLywKICAgICAgICAvXnBlYmlzbmlzLW11ZGFcLmNvbSQvLAogICAgICAgIC9eaGlrYXJpbm9ha2FyaW9z
dFwuaW5mbyQvLAogICAgICBdLAogICAgICBxdWVyeTogL15cPyhbYS16QS1aMC05Lz1dKykkLywKICAgIH0
sCiAgICB7CiAgICAgIGhvc3Q6IFsKICAgICAgICAvXC5ibG9nc3BvdFwuY29tPy8sCiAgICAgICAgL14od3
d3XC4pP2Rlc2lnbm15aG9tZWVcLmNvbSQvLAogICAgICAgIC9eKHd3d1wuKT9sb3NzdG9yXC5jb20kLywKI
CAgICAgICAvXigoa3Vyb3NhZmV8a3Vyb3NhZmV0eSlcLik/bWVuYW50aXNlbmphXC5jb20kLywKICAgICAg
ICAvXmRyaXZlXC5qZXBpdGtlcnRhc1wuY29tJC8sCiAgICAgICAgL15sZXdhdFwud2lidWluZG9cLmNvbSQ
vLAogICAgICAgIC9eKG9tZ211c2lrfG9tZ2x5cmljc3xrMm5ibG9nKVwuY29tJC8sCiAgICAgICAgL14oc2
ltYWhvbGluYXxhdXRlY2gpXC54eXokLywKICAgICAgICAvXih3d3dcLik/aWQtc2VjdXJlbGlua1wueHl6J
C8sCiAgICAgICAgL14od3d3XC4pP2NvbnZlcnRoaW5rc1wueHl6JC8sCiAgICAgICAgL14od3d3XC4pP21h
cml2ZWxrZWNlXC54eXokLywKICAgICAgICAvXih3d3dcLik/eWFtZXRlc2VucGFpXC54eXokLywKICAgICA
gICAvXih3d3dcLik/dG9qcm9zXC50ayQvLAogICAgICAgIC9eKHd3d1wuKT9hbmpheVwuaW5mbyQvLAogIC
AgICAgIC9eKHd3d1wuKT9rYWtrb2lpc2FmZVwudXMkLywKICAgICAgICAvXih3d3dcLik/a3Vyb3NhZmVcL
ih3ZWJzaXRlfG9ubGluZSkkLywKICAgICAgICAvXih3d3dcLik/ZHJha29yc2FmZVwudGVjaCQvLAogICAg
ICAgIC9eKGZtbGF3a2Vyc3xpbmRleG1vdmllKVwuY2x1YiQvLAogICAgICAgIC9ebWljaW5cLm9ubGluZSQ
vLAogICAgICAgIC9edW5kdWhcLmluLywKICAgICAgICAvXmFkNG1zYW5cLndpbiQvLAogICAgICAgIC9ebm
9veXVsXC5jbyQvLAogICAgICAgIC9ecGFmcGFmXC5pbmZvJC8sCiAgICAgICAgL15oaWdodGVjaFwud2ViX
C5pZCQvLAogICAgICBdLAogICAgICBxdWVyeTogWwogICAgICAgIC9eXD91cmw9KFthLXpBLVowLTkvPV0r
KSQvLAogICAgICAgIC9eXD9pZD0oW2EtekEtWjAtOS89XSspJC8sCiAgICAgICAgL15cP3NpdGU9KFthLXp
BLVowLTkvPV0rKSQvLAogICAgICBdLAogICAgfSwKICAgIHsKICAgICAgaG9zdDogWwogICAgICAgIC9eKH
NlaGF0bGVnYXxkYXZpbnN1cmFuY2V8aGVhbHRodG9kfGlyaXN2ZXJhfGFrYW5vc29yYXxzdWJldGVuZXdzK
VwuY29tJC8sCiAgICAgICAgL14od3d3XC4pP21lbmFudGlzZW5qYVwuY29tJC8sCiAgICAgICAgL14oYnVz
aW5lc3Nmb3J5b3VhbmR8dHJhdmVsd2l0aHRyaWNrc3xzaXR1c2JhcnUpXC5tZSQvLAogICAgICAgIC9ecGx
hbnRhaGVpbVwuKHdlYlwuaWR8Y29tKSQvLAogICAgICAgIC9eKHd3d1wuKT9zdGFyem9uZVwuY2MkLywKIC
AgICAgICAvXih3d3dcLik/a2Fra29paXNhZmVcLnVzJC8sCiAgICAgICAgL14od3d3XC4pP3BvbHJlY1wuc
2l0ZSQvLAogICAgICAgIC9eeXVtZWNoYW5cLmNsdWIkLywKICAgICAgICAvXmNla2xpbmt1XC54eXokLywK
ICAgICAgICAvXmxpbmR1bmdcLihpbnxtZSkkLywKICAgICAgICAvXih3d3dcLik/Ym9sYW9rZVwuY2x1YiQ
vLAogICAgICBdLAogICAgICBxdWVyeTogL15cP3I9KFthLXpBLVowLTkvPV0rKSQvLAogICAgfSwKICAgIH
sKICAgICAgaG9zdDogL153d3dcLmNvbXBhcnRpZ
W5kb2Z1bGxcLm5ldCQvLAogICAgICBwYXRoOiAvXlwvZ28yLywKICAgICAgcXVlcnk6IC9eXD9wPShbYS16
QS1aMC05Lz1dKykkLywKICAgIH0sCiAgICB7CiAgICAgIGhvc3Q6IC9eYW5pbWVmb3JjZVwuc3RyZWFtJC8
sCiAgICAgIHF1ZXJ5OiAvXlw/bD0oW2EtekEtWjAtOS89XSspJC8sCiAgICB9LAogICAgewogICAgICBob3
N0OiAvXih3d3dcLik/ZHVrdW4tY2l0XC5jb20kLywKICAgICAgcXVlcnk6IC9eXD9zPShbYS16QS1aMC05L
z1dKykkLywKICAgIH0sCiAgICB7CiAgICAgIGhvc3Q6IC9edWx0aW1hdGVcLnR1cmtkb3duXC5jb20kLywK
ICAgICAgcXVlcnk6IC9eXD9zdGVwb25lPShbYS16QS1aMC05Lz1dKykkLywKICAgIH0sCiAgICB7CiAgICA
gIGhvc3Q6IC9ebGVlY2hwcmVtaXVtXC5saW5rJC8sCiAgICAgIHBhdGg6IC9eXC9jaGVhdFwvLywKICAgIC
AgcXVlcnk6IC9eXD9saW5rPShbYS16QS1aMC05Lz1dKykkLywKICAgIH0sCiAgICB7CiAgICAgIGhvc3Q6I
C9eY2xvc2V0b3BpY1wuc2l0ZSQvLAogICAgICBxdWVyeTogL15cP2dvPShbYS16QS1aMC05Lz1dKykkLywK
ICAgIH0sCiAgICB7CiAgICAgIGhvc3Q6IC9eaW5mb3NpYVwueHl6JC8sCiAgICAgIHF1ZXJ5OiAvXlw/a2V
zZWhhdGFuPShbYS16QS1aMC05Lz0lXSspJC8sCiAgICB9LAogICAgewogICAgICBob3N0OiAvXnJlbWl5dV
wubWUkLywKICAgICAgcXVlcnk6IC9eXD9yZWZmPShbYS16QS1aMC05Lz1dKykkLywKICAgIH0sCiAgXSwKI
CBhc3luYyBzdGFydCAobSkgewogICAgY29uc3QgcmF3TGluayA9IGF0b2IoZGVjb2RlVVJJQ29tcG9uZW50
KG0ucXVlcnlbMV0pKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9
SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhyYXdMaW5rKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX0
5BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlO
iBbCiAgICB7CiAgICAgIGhvc3Q6IFsKICAgICAgICAvKF58XC4pc2FmZWxpbmsoY29udmVydGVyfHJldmll
d3g/KVwuY29tPyQvLAogICAgICAgIC9eZ2lnYTc0XC5jb20kLywKICAgICAgICAvXihhd3N1YnNjb3xhZDR
tc2FuKVwubWwkLywKICAgICAgICAvXm5la29wb2lcLmdhJC8sCiAgICAgIF0sCiAgICAgIHF1ZXJ5OiAvaW
Q9KFtcd1xcXSs9KikvLAogICAgfSwKICAgIHsKICAgICAgaG9zdDogWwogICAgICAgIC9eKG5haXNob3xma
Wxta3V8aGVucG9pKVwubG9tcGF0XC5pbiQvLAogICAgICAgIC9eZWRvZ2F3YVwubG9uXC5wdyQvLAogICAg
ICAgIC9edGVsb2xldFwuaW4kLywKICAgICAgXSwKICAgICAgcXVlcnk6IC9nbz0oW1x3XFxdKz0qKS8sCiA
gICB9LAogIF0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIGxldCBsID0gYXRvYihtLnF1ZXJ5WzFdKTsKIC
AgIGNvbnN0IHRhYmxlID0gewogICAgICAnISc6ICdhJywKICAgICAgJyknOiAnZScsCiAgICAgICdfJzogJ
2knLAogICAgICAnKCc6ICdvJywKICAgICAgJyonOiAndScsCiAgICB9OwogICAgbCA9IGwucmVwbGFjZSgv
WyEpXygqXS9nLCBmdW5jdGlvbiAobSkgewogICAgICByZXR1cm4gdGFibGVbbV07CiAgICB9KTsKICAgIGF
3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS
5vcGVuTGluayhsKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/c2Fm
ZWxpbmtyZXZpZXdcLmNvbSQvLAogICAgcGF0aDogL15cL1x3K1wvY29zdFwvKFtcdy5dKylcLz8kLywKICB
9LAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICBjb25zdCBsID0gJ2h0dHA6Ly8nICsgbS5wYXRoWzFdOwogIC
AgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJ
CJdLm9wZW5MaW5rKGwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IFsKICAgICAgL14
oZ2FtZWluZm98YXBhc2lofGF1dG9yaWRlKVwucHckLywKICAgICAgL14od3d3XC4pP2xpZmVzdXJhbmNlXC
5pbmZvJC8sCiAgICAgIC9ec3BlZWRjYXJcLmNsdWIkLywKICAgICAgL14od3d3XC4pP2JvbGFva2VcLmNsd
WIkLywKICAgICAgL14oaW50ZXJjZWxlc3RpYWx8c3dlZXRsYW50ZXJufGRhdmluc3VyYW5jZXx0ZWNobmxh
YilcLmNvbSQvLAogICAgICAvXmF3Y2FyXC5pY3UkLywKICAgICAgL15za3lpbnN1cmFuY2VcLm1sJC8sCiA
gICAgIC9eKGdldGluZm9zfHNlaGF0c2VnYXJ8bG9uZWx5bW9vbilcLm5ldCQvLAogICAgICAvXnN0dFwuYX
dzdWJzXC5jbyQvLAogICAgICAvXih3aWJ1aW5kb3xuYXR1cmFsaGVhbHRoeSlcLnh5eiQvLAogICAgICAvX
ndhaWZ1c2FmZVwub29vJC8sCiAgICBdLAogICAgcXVlcnk6IC9eXD8oaWR8Y3xrKT0oW2EtekEtWjAtOS89
XSspJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBmID0gT2JqZWN0KF9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2Zvcm0nKTsKICAgIG
Yuc3VibWl0KCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXihsaW5r
YWNofGF1dG9saW5rYWNoKVwuY29tJC8sCiAgICBdLAogICAgcXVlcnk6IC9eXD9pZD0oW2EtekEtWjAtOS8
9XSspJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBnID0gT2JqZWN0KF9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy5odW1hbmNoZWNrI
GZvcm0nKTsKICAgIGcuc3VibWl0KCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogWwogICAgewogICAgICB
ob3N0OiBbCiAgICAgICAgL15tb3RvbmV3c1wuY2x1YiQvLAogICAgICAgIC9eKHd3d1wuKT9ib2xhb2tlXC
5jbHViJC8sCiAgICAgICAgL14oYW5pLXNoYXJlfGF1dG9saW5rYWNoKVwuY29tJC8sCiAgICAgICAgL14oY
XV0b2ZhbnN8bGFuZHNjYXBlbmF0dXJlKVwucHckLywKICAgICAgICAvXih3d3dcLik/bGlmZXN1cmFuY2Vc
LmluZm8kLywKICAgICAgXSwKICAgICAgcXVlcnk6IC9nZXQ9KFteJl0rKS8sCiAgICB9LAogICAgewogICA
gICBob3N0OiBbCiAgICAgICAgL14oZ2FtZWluZm8pXC5wdyQvLAogICAgICAgIC9eKHd3d1wuKT9saWZlc3
VyYW5jZVwuaW5mbyQvLAogICAgICAgIC9ec3BlZWRjYXJcLmNsdWIkLywKICAgICAgICAvXih3d3dcLik/Y
m9sYW9rZVwuY2x1YiQvLAogICAgICAgIC9eKGF1dG9saW5rYWNofGRhdmluc3VyYW5jZSlcLmNvbSQvLAog
ICAgICAgIC9eYXdjYXJcLmljdSQvLAogICAgICAgIC9ec2t5aW5zdXJhbmNlXC5tbCQvLAogICAgICAgIC9
eKGdldGluZm9zKVwubmV0JC8sCiAgICAgICAgL15zdHRcLmF3c3Vic1wuY28kLywKICAgICAgICAvXndpYn
VpbmRvXC54eXokLywKICAgICAgXSwKICAgIH0sCiAgXSwKICBhc3luYyByZWFkeSAobSkgewogICAgbGV0I
HMgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0u
c2VhcmNoRnJvbVNjcmlwdHMoLyhjb25zdHx2YXIpIGE9JyhbXiddKyknLyk7CiAgICBpZiAocykgewogICA
gICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWy
IkIl0ub3Blbkxpbmsoc1syXSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHMgPSBhdG9iKG0ucXVlcnlbM
V0pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siJCJdLm9wZW5MaW5rKHMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IFsKIC
AgICAgL153YWlmdXNhZmVcLm9vbyQvLAogICAgICAvXm5hdHVyYWxoZWFsdGh5XC54eXokLywKICAgIF0sC
iAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCgxMDAwKTsKICAgIGNvbnN0IGxuID0gT2JqZWN
0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy
NsYW5kaW5nLnJ1cmFzYWZlY3RybCAudG8gYScpOwogICAgbG4uY2xpY2soKTsKICAgIGF3YWl0IF9BRFNCW
VBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YWl0KDEwMDAp
OwogICAgY29uc3QgdGwgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siJCJdKSgnLnJ1cmFzYWZlY3RybCBpbWcjc2hvd2xpbmsuc3BvaW50Jyk7CiAgIC
B0bC5jbGljaygpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IFsKICAgICAgL14oc2Vo
YXRzZWdhcnxsb25lbHltb29uKVwubmV0JC8sCiAgICAgIC9eKGludGVyY2VsZXN0aWFsfHN3ZWV0bGFudGV
ybilcLmNvbSQvLAogICAgXSwKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGF3YWl0IF9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS53YWl0KDEwMDApOwogI
CAgY29uc3QgbG4gPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siJCJdKSgnI2xhbmRpbmcuc29yYWN0cmwgLnRvIGEnKTsKICAgIGxuLmNsaWNrKCk7CiA
gICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWy
JfIl0ud2FpdCgyMDAwKTsgCiAgICBjb25zdCB0bCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX
19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcuc29yYWN0cmwgaW1nI3Nob3dsaW5rLnNw
b2ludCcpOwogICAgdGwuY2xpY2soKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCi
AgICAgIC9eKGxpbmthY2h8dGVjaG5sYWIpXC5jb20kLywKICAgICAgL14oYXBhc2lofGF1dG9yaWRlKVwuc
HckLywKICAgIF0sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFN
RVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCgxMDAwKTsKICAgIGNvbnN
0IGxuID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIiQiXSkoJyNsYW5kaW5nLnNvcmFjdHJsIC50byBhJyk7CiAgICBsbi5jbGljaygpOwogICAgYXdha
XQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLndh
aXQoNTAwMCk7IAogICAgY29uc3QgdGwgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnLnNvcmFjdHJsIGltZyNzaG93bGluay5zcG9pbnQnKT
sKICAgIHRsLmNsaWNrKCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15sZXdhdFwu
aW4kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGwgPSBPYmplY3QoX0FEU0JZUEFTU0V
SX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2xhbmp1dCA+ICNnb2
VzID4gYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfT
U9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGwuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BB
Q0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICA
gaG9zdDogL15zYXJkZWF0aFwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBzZC
A9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yIkIl0pKCcuZG93bmxvYWQtbGluayA+IGEnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0Vf
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhzZC5ocmVmKTsKICB9LAp9KTs
KX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2
lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmdvb3VcLmluJC8sCiAgfSwKICBhc3luYyByZWFkeSAoK
SB7CiAgICBjb25zdCBnID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIiQiXSkoJyNkb3dubG9hZF9saW5rID4gYScpOwogICAgYXdhaXQgX0FEU0JZUEF
TU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGcuaH
JlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogWwogICAgewogICAgICBob3N0OiAvXnRvdXQtZGVicmlk
XC5uZXQkLywKICAgICAgcGF0aDogL15cL2FwaVwvLywKICAgIH0sCiAgICB7CiAgICAgIGhvc3Q6IC9eMTY
zXC4xNzJcLjgzXC4xNDUkLywKICAgICAgcGF0aDogL15cL2RlYlwvYXBpXC8vLAogICAgfSwKICBdLAogIG
FzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IHQgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX
1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnLmRvd25sb2FkLWJveCA+IGRpdiA+IGEnKTsK
ICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19
bIiQiXS5vcGVuTGluayh0LmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZ
HJpdmVodWJcLmxpbmskLywKICAgIHBhdGg6IC9e
XC9maWxlXC5waHAvLAogICAgcXVlcnk6IC9eXD9pZD0oLispLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHs
KICAgIGNvbnN0IGQgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURU
RfTU9EVUxFXzBfX1siJCJdKSgnLmluZm9ib3ggPiBjZW50ZXIgPiBiID4gYSNwcm9jZWVkLmJ0bi5idG4tZ
GFuZ2VyJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoZC5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgIC
Bob3N0OiAvXmtvbWJhdGNoXC5sb25jYXRcLnB3JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZ
XQgcyA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQi
XS5zZWFyY2hGcm9tU2NyaXB0cygvXC5vcGVuXCgiKFteIl0rKSIsLyk7CiAgICBzID0gc1sxXS5tYXRjaCg
vZ289KFteJl0rKS8pOwogICAgcyA9IGF0b2Ioc1sxXSk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbmsocyk7CiAgfSwKfSk7C
l9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdp
c3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15za2lwbGlua1wuaW8kLywKICAgIHBhdGg6IC9eXC9nZXR
cL2xpbmtcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBzID0gT2JqZWN0KF9BRFNCWV
BBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy5wYW5lbC5wY
W5lbC1kZWZhdWx0LnBhbmVsLWJvZHkgPiBjZW50ZXIgPiBjZW50ZXIgPiBhJyk7CiAgICBhd2FpdCBfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbms
ocy5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKHYxXC4pP
2hleGFmaWxlXC5uZXQkLywKICAgICAgL15za2lwbGlua1wuaW8kLywKICAgIF0sCiAgICBwYXRoOiAvXlwv
W2EtekEtWjAtOV0rLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGggPSBfQURTQllQQVN
TRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcm
lwdHMoLz0iKFteIl0rKSIsZT0wLGY9YS8pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX
1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGhbMV0pOwogIH0sCn0pOwpfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXI
oewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZHJpdmVmaWxlc1wuYmlkJC8sCiAgfSwKICBhc3luYyByZWFkeS
AoKSB7CiAgICBjb25zdCBkID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfT
U9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3JpcHRzKC93aW5kb3dcLm9wZW5cKCcoW14nXSspJ1wpOy8p
OwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdLm9wZW5MaW5rKGRbMV0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eY
W5kcm9pZC0xXC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGEgPSBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVN
jcmlwdHMoL2lkPWRvd25sb2FkPjxcL2Rpdj48YSBocmVmPShbXj5dKyk+Lyk7CiAgICBhd2FpdCBfQURTQl
lQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoY
VsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15ib29zdFwuaW5rJC8sCiAgfSw
KICBhc3luYyBzdGFydCAoKSB7CiAgICBjb25zdCBiID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0
VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2JvZHknKS5nZXRBdHRyaWJ1dGUoJ3Jlc
3VsdCcpOwogICAgaWYgKGIpIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGF0b2IoYikpOwogICAgfSBlbHNlIHsKICA
gICAgcmV0dXJuOwogICAgfQogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eZG93bmxvY
WQtbWlycm9yXC5nYSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgZG0gPSBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVN
jcmlwdHMoL2EgaHJlZj0nKFteJ10rKScvKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX1
9XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhkbVsxXSk7CiAgfSwKfSk7Cl9BR
FNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rl
cih7CiAgcnVsZTogewogICAgaG9zdDogL151cmxcLmh1bGJsb2dcLmNvbSQvLAogICAgcGF0aDogL15cL1t
hLXpBLVowLTldKy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBoID0gX0FEU0JZUEFTU0
VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb21TY3Jpc
HRzKC8iaHJlZj0nKFteJ10rKScvKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhoWzFdKTsKICB9LAp9KTsKX0FEU0JZUEF
TU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKIC
BydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9ed3dbMjNdXC5waWNuaWN0cmFuc1wuY29tJC8sCiAgICAgI
C9ec2hvcnRcLmF3c3Vic1wuKGNvfG1lKSQvLAogICAgXSwKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAg
IGNvbnN0IGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siJCJdKSgnZGl2LmtpcmkgPiBjZW50ZXIgPiBhJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRV
JfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYS5ocmVmK
TsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKHd3d1wuKT9hbmpheVw
uaW5mbyQvLAogICAgICAvXih3d3dcLik/dGV0ZXdcLmluZm8kLywKICAgICAgL153d3dcLm5qaWlyXC5jb2
0kLywKICAgIF0sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgYSA9IE9iamVjdChfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdkaXYuZG93bmxv
YWQtbGluayA+IGEnKTsKICAgIGEgPSBhLmhyZWYubWF0Y2goL3I9KC4qKSQvKTsKICAgIGEgPSBhdG9iKGF
bMV0pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdLm9wZW5MaW5rKGEpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IFsK
ICAgICAgL15zcGFjZXRpY2FcLmNvbSQvLAogICAgICAvXnNraW5ueWNhdFwub3JnJC8sCiAgICBdLAogICA
gcGF0aDogL15cL1x3KyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgbCA9IE9iamVjdC
hfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcuY
nRuJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyIkIl0ub3BlbkxpbmsobC5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9
fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3
N0OiAvXmRhdW5zaG9ydGVcLnRla25vbG9naWxpbmtcLmNvbSQvLAogICAgcGF0aDogL15cL2xpbmtzaG9yd
GVsaW5rXC9zYWZlbGlua1wucGhwJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBsID0g
T2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQ
iXSkoJ2Rpdi5hcnRpY2xlID4gZGl2Om50aC1jaGlsZCgxKSA+IGNlbnRlciA+IGEnKTsKICAgIGF3YWl0IF
9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuT
GluayhsLmhyZWYsIHsKICAgICAgcmVmZXJlcjogZmFsc2UsCiAgICB9KTsKICB9LAp9KTsKX0FEU0JZUEFT
U0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICB
ydWxlOiB7CiAgICBob3N0OiAvXnRla25vc2FmZVwudGVrbm9sb2dpbGlua1wuY29tJC8sCiAgICBwYXRoOi
AvXlwvbGlua3Rla25vbGlua1wvc2FmZWxpbmtzY3JpcHRcLnBocCQvLAogIH0sCiAgYXN5bmMgcmVhZHkgK
CkgewogICAgY29uc3QgbCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjdGVtcGxhdGVtb19jb250ZW50ID4gZGl2ID4gYScpOwogICAgYXd
haXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm
9wZW5MaW5rKGwuaHJlZiwgewogICAgICByZWZlcmVyOiBmYWxzZSwKICAgIH0pOwogIH0sCn0pOwpfQURTQ
llQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIo
ewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eemFwXC5pbiQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICA
gY29uc3QgeiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyIkIl0pKCcucGFuZWwtYm9keSBidXR0b24nKTsKICAgIHouY2xpY2soKTsKICB9LAp9KTsKX
0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lz
dGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eKHNhdGFuaWFiYXRjaHxnZXQtY2xpY2syKVw
uYmxvZ3Nwb3RcLmNvbSQvLAogICAgICAvXih3d3dcLik/dmVoaWNsZS10ZWNobm9cLmNmJC8sCiAgICAgIC
9eKHd3d1wuKT90ZXRld2xpbmtcLm1lJC8sCiAgICBdLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY
29uc3QgY2xidCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyIkIl0pKCdidXR0b24jZ290b2xpbmsnKTsKICAgIGNsYnQucmVtb3ZlQXR0cmlidXRlKCd
kaXNhYmxlZCcpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURU
RfTU9EVUxFXzBfX1siXyJdLndhaXQoMSk7CiAgICBjbGJ0LmNsaWNrKCk7CiAgfSwKfSk7Cl9BRFNCWVBBU
1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAg
cnVsZTogewogICAgaG9zdDogL15pZG5hdGlvblwubmV0JC8sCiAgICBxdWVyeTogL15cP3BhZ2U9LywKICB
9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGwgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2xpbmtvJyk7CiAgICBhd2FpdCBfQ
URTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxp
bmsobC5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURUR
fTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnRlY2hmdW5kYVwubm
V0JC8sCiAgICBwYXRoOiBbCiAgICAgIC9eXC9saW5rXC8vLAogICAgICAvXlwvc2FmZVwvLywKICAgIF0sC
iAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1F
U1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy5oaWRlIGEuYnRuJyk7CiAgICB
hd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl
0ub3BlbkxpbmsoYS5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfS
U1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnRoaW5m
aVwuY29tJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVB
BU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2RpdiBwIGEnKT
sKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXS5vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9
eaGVsbG9cLnRyaWJ1bnRla25vXC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IG
EgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX
1siJCJdKSgnZGl2IHAgdSBiIGEnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5
vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IFsKICAgIHsKICAgICAgaG9zdDogL
150aW55YXJyb3dzXC5jb20kLywKICAgICAgcGF0aDogL15cL3ByZXZpZXdcLnBocCQvLAogICAgICBxdWVy
eTogL15cP3BhZ2U9KFteJl0rKS8sCiAgICB9LAogICAgewogICAgICBob3N0OiAvXnd3d1wuamF2bGlicmF
yeVwuY29tJC8sCiAgICAgIHF1ZXJ5OiAvdXJsPSguKykkLywKICAgIH0sCiAgXSwKICBhc3luYyBzdGFydC
AobSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EV
UxFXzBfX1siJCJdLm9wZW5MaW5rKGRlY29kZVVSSUNvbXBvbmVudChtLnF1ZXJ5WzFdKSk7CiAgfSwKfSk7
Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWd
pc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pP3RvdGFsZGVicmlkXC5vcmckLywKICAgIH
BhdGg6L1wvbFwvKGxcLnBocCk/JC8sCiAgICBxdWVyeTogL1w/YWRzPShbYS16QS1aMC05PV0rKSQvLAogI
H0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIGNvbnN0IGwgPSBhdG9iKG0ucXVlcnlbMV0pOwogICAgYXdh
aXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9
wZW5MaW5rKGwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF
9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9edHVya2Rvd25cLmNvb
SQvLAogICAgcGF0aDogL15cL2xpbmsvLAogICAgcXVlcnk6IC9eXD9pZD0oLispLywKICB9LAogIGFzeW5j
IHJlYWR5IChtKSB7CiAgICBsZXQgaHRtbCA9IGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5nZXQoYD9hamF4PSR7bS5xdWVyeVsxXX1gKTsKICAgIG
h0bWwgPSBKU09OLnBhcnNlKGh0bWwpOwogICAgY29uc3QgcmVzID0gL3N0ZXBvbmU9KC4rKS8uZXhlYyhod
G1sLnVybCk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYXRvYihyZXNbMV0pKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05
BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOi
B7CiAgICBob3N0OiAvXnVcLnRvJC8sCiAgICBwYXRoOiAvXlwvW1x3LV0rLywKICB9LAogIGFzeW5jIHJlY
WR5ICgpIHsKICAgIGNvbnN0IHUgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoL3dpbmRvdy5sb2NhdGlvbj0nKFteJ10rKSc
7Lyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTE
VfMF9fWyIkIl0ub3BlbkxpbmsodVsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDog
L151bmZha2VcLml0JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBmcmFtZSA9IE9iamV
jdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKC
dmcmFtZScpOwogICAgY29uc3QgaSA9IGZyYW1lLnNyYy5sYXN0SW5kZXhPZignaHR0cDovLycpOwogICAgY
XdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJd
Lm9wZW5MaW5rKGZyYW1lLnNyYy5zdWJzdHIoaSkpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUN
FX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIG
hvc3Q6IFsKICAgICAgL151clwubHkkLywKICAgICAgL151cmx5XC5tb2JpJC8sCiAgICBdLAogICAgcGF0a
DogL15cL3goLispLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IHBhdGggPSB3aW5kb3cu
bG9jYXRpb24uaHJlZi5yZXBsYWNlKCcveCcsICcvZ29paS8nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhwYXRoKTsKIC
B9Cn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfI
l0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9edXJsXC5mbSQvLAogIH0sCiAgYXN5bmMgcmVh
ZHkgKCkgewogICAgY29uc3QgYSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19
JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjY2xpY2tidG4gYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0
VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZ
ik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL151cmxcLmllJC8sCiAgfSwKICBhc3l
uYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRU
JQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2FbdGl0bGU9IkxpbmsgdG8gb3JpZ2luYWwgVVJMI
l0nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIiQiXS5vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19
fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3
Q6IFsKICAgICAgLyhefFwuKXVybGNhc2hcLihjb218bmV0fG9yZykkLywKICAgICAgL14oYmF0NXxkZXRvb
mF0aW5nfGNlbGViY2xrfGVpZ2h0dGVlbnxzbWlsaW5nbGlua3N8cGVla2F0bXlnaXJsZnJpZW5kfHBvcm55
aG9zdHxjbGIxfHVybGdhbGxlcmllcylcLmNvbSQvLAogICAgICAvXmxvb2JsZVwubmV0JC8sCiAgICAgIC9
eeHh4c1wub3JnJC8sCiAgICBdLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgaWYgKF9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS53aW5kb3cgJiYgX0FEU
0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy5s
aW5rRGVzdFVybCkgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVB
PUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0
tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLndpbmRvdy5saW5rRGVzdFVybCk7CiAgICAgIHJldHVybjsKI
CAgIH0KICAgIGNvbnN0IG1hdGNoZXMgPSBkb2N1bWVudC5ib2R5LmlubmVySFRNTC5tYXRjaCgvbGlua0Rl
c3RVcmwgPSAnKC4rKScvKTsKICAgIGlmIChtYXRjaGVzKSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhtYXRjaGVzWz
FdKTsKICAgICAgcmV0dXJuOwogICAgfQogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9e
dXJsaW5uXC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IG0gPSBPYmplY3QoX0F
EU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnTUVUQV
tIVFRQLUVRVUlWPXJlZnJlc2hdJykuZ2V0QXR0cmlidXRlKCdDT05URU5UJykubWF0Y2goL3VybD0nKFteJ
10rKScvKTsKICAgIGlmIChtKSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhtWzFdKTsKICAgIH0KICB9LAp9KTsKX0F
EU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdG
VyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnVybG1zXC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpI
HsKICAgIGNvbnN0IGlmcmFtZSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjY29udGVudCcpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05
BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGlmcmFtZS5zcm
MpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM
F9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT91cmx2MlwuY29tJC8s
CiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV
4T2YoJ2xvY2tlZCcpID49IDApIHsKICAgICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobm
FtZS5yZXBsYWNlKCcvbG9ja2VkJywgJycpOwogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX
19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocGF0aCk7CiAgICAgIHJldHVy
bjsKICAgIH0KICAgIGNvbnN0IG0gPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlR
FRF9NT0RVTEVfMF9fWyIkIl0uc2VhcmNoRnJvbVNjcmlwdHMoL2pldG9uPShbXHddKykvKTsKICAgIGNvbn
N0IGwgPSAnaHR0cDovL3VybHYyLmNvbS9hbGdvLnBocD9hY3Rpb249cGFzc2VyJnB4PTAmc289MSZqZXRvb
j0nICsgbVsxXTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIl8iXS53YWl0KDUgKiAxMDAwKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1B
BQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhsKTsKICB9LAp9KTsKX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzd
GVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/dXNraXBcLm1lJC8sCiAgICBwYXRoOiAvXlwv
Z29cL1x3KyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgYSA9IE9iamVjdChfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjYnRuLW1haW
4nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIiQiXS5vcGVuTGluayhhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q
6IC9edXg5XC5kZSQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgbWV0YSA9IE9iamVjdC
hfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdtZ
XRhW2h0dHAtZXF1aXY9InJlZnJlc2giXVtjb250ZW50Kj0idXJsPSJdJyk7CiAgICBjb25zdCB1cmwgPSBt
ZXRhLmdldEF0dHJpYnV0ZSgnY29udGVudCcpLm1hdGNoKC9odHRwLiovKVswXTsKICAgIGF3YWl0IF9BRFN
CWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluay
h1cmwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9edmF2aVwuY28kLywKICB9LAog
IGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGwgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9
fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2dvTGluaycpOwogICAgYXdhaXQgX0FEU0
JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rK
GwuaHJlZik7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL152Y3J5cHRcLm5ldCQvLAo
gICAgcGF0aDogL15cL2Zhc3RzaGllbGRcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdC
B2ID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIiQiXSkoJ2Zvcm0gaW5wdXQuYnRuY29udGludWUnKTsKICAgIHYuY2xpY2soKTsKICB9LAp9KTsKX0FE
U0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGV
yKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnd3d1wudmlpZGlpXC5pbmZvJC8sCiAgICBxdWVyeTogL3VybD
0oW14mXSspLywKICB9LAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICBjb25zdCB1cmwgPSBkZWNvZGVVUklDb
21wb25lbnQobS5xdWVyeVsxXSk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodXJsKTsKICB9LAp9KTsKX0FEU0JZUEFTU0V
SX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydW
xlOiB7CiAgICBob3N0OiAvXnd3d1wudmlpZGlpXC5pbmZvJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7C
iAgICBjb25zdCBvID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIiQiXSkoJy5iZ2xpbmsnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0V
fX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhvLmhyZWYpOwogIH0sCn0pOw
pfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVna
XN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT92aXJcLmFsJC8sCiAgfSwKICBhc3luYyBy
ZWFkeSAoKSB7CiAgICBjb25zdCBtID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzBfX1siJCJdLnNlYXJjaEZyb2
1TY3JpcHRzKC9jb25zdCB0YXJnZXRfdXJsID0gJyhbXiddKyknOy8pOwogICAgaWYgKCFtKSB7CiAgICAgI
HRocm93IG5ldyBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJfIl0uQWRzQnlwYXNzZXJFcnJvcignc2l0ZSBjaGFuZ2VkJyk7CiAgICB9CiAgICBhd2FpdCBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsobV
sxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pP3Z6dHVybFwuY29t
JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBmcmFtZSA9IE9iamVjdChfQURTQllQQVN
TRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdmcmFtZVtzY3JvbG
xpbmc9eWVzXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGZyYW1lLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9O
QU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTo
gewogICAgaG9zdDogL15zdFwud2FyZGhhbmltZVwubmV0JC8sCiAgICBwYXRoOiAvXlwvaVwvXGQrJC8sCi
AgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU
1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyN3cmFwcGVyID4gW2NsYXNzXj0i
dG9tYm8iXSA+IGFbdGFyZ2V0PSJfYmxhbmsiXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgfSwKfS
k7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZ
Wdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL153aWtpYWxsXC5vcmckLywKICB9LAogIGFzeW5jIHJl
YWR5ICgpIHsKICAgIGNvbnN0IGRpdiA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdkaXYjcGxhY2UuZ2V0LWJ0bicpOwogICAgY29uc3Qgby
A9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgY29uc3QgYSA9IF9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCdkaXYjcGxhY2UuZ2V0LWJ0
biA+IGFbaHJlZl0nKTsKICAgICAgaWYgKGEgJiYgYS5ocmVmKSB7CiAgICAgICAgX0FEU0JZUEFTU0VSX05
BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7Ci
AgICAgIH0KICAgIH0pOwogICAgby5vYnNlcnZlKGRpdiwgewogICAgICBjaGlsZExpc3Q6IHRydWUKICAgI
H0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed29uXC5wZSQvLAogIH0sCiAgYXN
5bmMgcmVhZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzBfX1siJCJdLnJlbW92ZSgnLnByb2dyZXNzLmNhcHRjaGFfbG9hZGVyLCBza2lwYm94Jyk7CiAgI
CBjb25zdCBjYXB0Y2hhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIiQiXSkoJyNyZWNhcHRjaGEnKTsKICAgIGNhcHRjaGEuc3R5bGUuZGlzcGxheSA
9ICdibG9jayc7CiAgICBjb25zdCBwID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3
Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7CiAgICAgICAgaWYgKGNhcHRjaGEuc
3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnKSB7CiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAg
ICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh
jYXB0Y2hhLCB7CiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSwKICAgICAgfSk7CiAgICB9KTsKICAgIGF3YW
l0IHA7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyIkIl0ub3BlbkxpbmsoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siJCJdLndpbmRvdy5sb25nVVJMKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cD
ovL3llcC5pdC9wcmV2aWV3LnBocD9wPSonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGxpbmsgP
SBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
JCJdKSgnZm9udFtjb2xvcj0iZ3JleSJdJykuaW5uZXJIVE1MOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05
BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGxpbmspOwogIH
0sCn0pOwooKCkgPT4gewogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PR
FVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiAnaHR0cDovL3d3dy55b29jbGljay5jb20vbC8q
JywKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0t
fSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICAgIGNvbnN0IHVuaXEgPS
BfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZ
G93LnVuaXEgfHwgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siJCJdLndpbmRvdy51bmlxaTsKICAgICAgaWYgKCF1bmlxKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB
9CiAgICAgIGNvbnN0IHBhdGggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CiAgICAgIGNvbnN0IHVybC
A9IGAke3BhdGh9P2FqYXg9dHJ1ZSZhZGJsb2NrPWZhbHNlJm9sZD1mYWxzZSZmcmFtZWQ9ZmFsc2UmdW5pc
T0ke3VuaXF9YDsKICAgICAgYXdhaXQgZ2V0VVJMKHVybCk7CiAgICB9LAogIH0pOwogIGFzeW5jIGZ1bmN0
aW9uIGdldFVSTCAodXJsKSB7CiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLmdldCh1cmwpOwogICAgY29uc3QgZ29vZF
VSTCA9IC9eKGh0dHBzP3xmdHApOlwvXC8oKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcd
UY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyEkJicoKSorLDs9XXw6KSpAKT8o
KChcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1
cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfD
FcZFxkfDJbMC00XVxkfDI1WzAtNV0pKXwoKChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ
0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAt
XHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx
1RkZFRl0pKihbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKV
wuKSsoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdf
FtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxb
XHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFtcdTAwQTAtXHVEN0Z
GXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4/KSg6XGQqKT8pKFwvKCgoW2Etel18XGR8LXxcLn
xffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8W
yEkJicoKSorLDs9XXw6fEApKyhcLygoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAt
XHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyEkJicoKSorLDs9XXw6fEApKikqKT8pPyh
cPygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRU
ZdKXwoJVtcZGEtZl17Mn0pfFshJCYnKCkqKyw7PV18OnxAKXxbXHVFMDAwLVx1RjhGRl18XC98XD8pKik/K
CMoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVG
XSl8KCVbXGRhLWZdezJ9KXxbISQmJygpKissOz1dfDp8QCl8XC98XD8pKik/JC9pLnRlc3QodGV4dCk7CiA
gICBpZiAoZ29vZFVSTCkgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS1
9JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsodGV4dCk7CiAgICAgIHJldHVybjsKICAgIH0KI
CAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
Il8iXS53YWl0KDUwMCk7CiAgICBhd2FpdCBnZXRVUkwodXJsKTsKICB9Cn0pKCk7CihmdW5jdGlvbiAoKSB
7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
JlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL14od3d3XC4pPyhbYS16QS1aMC05XStcLik/Y
mluYm94XC5pbyQvLAogICAgICBwYXRoOiAvXC8oW2EtekEtWjAtOV0rKS8sCiAgICAgIGhhc2g6IC8oPzoj
KFthLXpBLVowLTldKykpPy8sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKG0pIHsKICAgICAgY29uc3Qgc2p
jbCA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS
53aW5kb3cuc2pjbDsKICAgICAgY29uc3QgcGFzdGVfaWQgPSBtLnBhdGhbMV07CiAgICAgIGNvbnN0IHBhc
3RlX3NhbHQgPSBtLmhhc2hbMV07CiAgICAgIGNvbnN0IEFQSV9VUkwgPSBgaHR0cHM6Ly9iaW5ib3guaW8v
JHtwYXN0ZV9pZH0uanNvbmA7CiAgICAgIGxldCBwYXN0ZUluZm8gPSBhd2FpdCBfQURTQllQQVNTRVJfTkF
NRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uZ2V0KEFQSV9VUkwsIGZhbHNlLC
B7CiAgICAgICAgT3JpZ2luOiBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfMF9fWyJfIl0ubm9uZSwKICAgICAgICBSZWZlcmVyOiBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ubm9uZSwKICAgICAgICBDb29raWU6ICdyZWZlcnJ
lcj0xJywKICAgICAgICAnWC1SZXF1ZXN0ZWQtV2l0aCc6IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRU
JQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5ub25lLAogICAgICB9KTsKICAgICAgcGFzdGVJbmZvI
D0gSlNPTi5wYXJzZShwYXN0ZUluZm8pOwogICAgICBpZiAoIXBhc3RlSW5mby5vaykgewogICAgICAgIHRo
cm93IG5ldyBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ
fIl0uQWRzQnlwYXNzZXJFcnJvcignZXJyb3Igd2hlbiBnZXR0aW5nIHBhc3RlIGluZm9ybWF0aW9uJyk7Ci
AgICAgIH0KICAgICAgaWYgKHBhc3RlSW5mby5wYXN0ZS51cmwpIHsKICAgICAgICBhd2FpdCBfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocGFz
dGVJbmZvLnBhc3RlLnVybCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGNvbnN0IHJhd19wYXN
0ZSA9IHNqY2wuZGVjcnlwdChwYXN0ZV9zYWx0LCBwYXN0ZUluZm8ucGFzdGUudGV4dCk7CiAgICAgIGlmIC
hpc0xpbmsocmF3X3Bhc3RlKSkgewogICAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhyYXdfcGFzdGUpOwogICAgICAgIHJl
dHVybjsKICAgICAgfQogICAgICBjb25zdCBlbG0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwcmUnKTs
KICAgICAgZWxtLmlkID0gJ3Bhc3RlLXRleHQnOwogICAgICBlbG0uaW5uZXJIVE1MID0gbGlua2lmeShyYX
dfcGFzdGUpOwogICAgICBjb25zdCBmcmFtZSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV
0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjcGFzdGUtZnJhbWUsICNjYXB0Y2hhLXBhZ2Un
KTsKICAgICAgZnJhbWUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoZWxtLCBmcmFtZSk7CiAgICB9LAogIH0
pOwogIGNvbnN0IHNVcmwgPSAnKFxcYihodHRwcz98ZnRwfGZpbGUpOi8vWy1BLVowLTkrJkAjLyU/PX5ffC
E6LC47XSpbLUEtWjAtOSsmQCMvJT1+X3xdKSc7CiAgZnVuY3Rpb24gaXNMaW5rICh0ZXh0KSB7CiAgICBjb
25zdCByVXJsID0gbmV3IFJlZ0V4cChgXiR7c1VybH0kYCwgJ2knKTsKICAgIHJldHVybiByVXJsLnRlc3Qo
dGV4dCk7CiAgfQogIGZ1bmN0aW9uIGxpbmtpZnkgKHRleHQpIHsKICAgIGNvbnN0IHJVcmwgPSBuZXcgUmV
nRXhwKHNVcmwsICdpZycpOwogICAgcmV0dXJuIHRleHQucmVwbGFjZShyVXJsLCAobWF0Y2gpID0+IHsKIC
AgICAgcmV0dXJuIGA8YSBocmVmPSIke21hdGNofSI+JHttYXRjaH08L2E+YDsKICAgIH0pOwogIH0KfSkoK
TsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJl
Z2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXih3d3dcLik/cGFzdGVkXC5jbyQvLAogICAgcGF0aDo
gL15cL1x3KyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV
9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnI2NhcHRjaGFfb3ZlcmxheScpO
wogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed3d3XC4yaVwuKHNrfGN6KSQvLAogIH0
sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaW1nID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1
BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8wX19bIiQiXSkoJyN3cmFwMyBpbWcnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaW1nLnNyYyk7CiAgfSwKfSk7Cl9
BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3
Rlcih7CiAgcnVsZTogWwogICAgJ2h0dHA6Ly8qLmFibG9hZC5kZS9pbWFnZS5waHA/aW1nPSonLAogICAgJ
2h0dHA6Ly93d3cuaW1hZ2V1cC5ydS8qLyovKi5odG1sJywKICBdLAogIGFzeW5jIHJlYWR5ICgpIHsKICAg
IGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siJCJdKSgnI2ltYWdlJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0
VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU
0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVy
KHsKICBydWxlOiB7CiAgICBob3N0OiAvXmFsbC1wb3N0ZXJcLnJ1JC8sCiAgICBxdWVyeTogL15cP3Y9Lyw
KICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2ltYWdlbiBpbWcnKTsKICAgI
GF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQi
XS5vcGVuSW1hZ2UoaS5zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19
JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eYnVubn
lmb3J1bVwub3JnJC8sCiAgICBxdWVyeTogL15cP3Y9LywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgI
GNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siJCJdKSgnaW1nW3RpdGxlXj1DbGlja10nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMpOwogIH
0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfI
l0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eYmF5aW1nXC5jb20kLywKICB9LAogIGFzeW5j
IHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI21haW5JbWFnZScpOwogICAgYXdhaXQgX0FEU0JZUE
FTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpL
nNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15iZWVpbWdcLmNvbSQvLAogICA
gcGF0aDogL1wvdmlld1wvLiovLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaW1nID0gT2
JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
SkoJ2ltZy5pbWctcmVzcG9uc2l2ZScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpbWcuc3JjLCB7CiAgICAgIHJlcGx
hY2U6IHRydWUsCiAgICB9KTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cDovL3d3dy5iaWxkZXItd
XBsb2FkLmV1L3Nob3cucGhwP2ZpbGU9KicsCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IE9i
amVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0
pKCdpbnB1dFt0eXBlPWltYWdlXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQl
BBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCW
VBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7
CiAgcnVsZTogJ2h0dHA6Ly93d3cuY2FzaW1hZ2VzLmNvbS9pbWcucGhwPyonLAogIGFzeW5jIHJlYWR5ICg
pIHsKICAgIGNvbnN0IGltZyA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCd0ZCBhIGltZycpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BT
UVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpbWcuc3JjKTsK
ICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cDovL2N1YmV1cGxvYWQuY29tL2ltLyonLAogIGFzeW5jIH
JlYWR5ICgpIHsKICAgIGNvbnN0IGltZyA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbWcuZ2FsbGVyeUJpZ0ltZycpOwogICAgYXdhaXQg
X0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5
JbWFnZShpbWcuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1
JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmRlcGljXC5tZ
SQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjcGljJyk7CiAgICBhd2F
pdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3
BlbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXihpbWdkaW5v
fGltZ3RpZ2VyfGltZ3phcClcLmNvbSQvLAogICAgcGF0aDogL15cL3ZpZXdlclwucGhwJC8sCiAgICBxdWV
yeTogL15cP2ZpbGU9LywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IG8gPSBPYmplY3QoX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2N1c
nNvcl9sdXBhJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKG8uc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUV
TUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaH
R0cDovLyouZGlyZWN0dXBsb2FkLm5ldC9maWxlLyouaHRtJywKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb
25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIiQiXSkoJyNJbWdGcmFtZScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRF
NCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlc
ih7CiAgcnVsZTogewogICAgaG9zdDogWwogICAgICAvXmV3YVwuYWMkLywKICAgICAgL15lbGlsXC5jYyQv
LAogICAgXSwKICAgIHBhdGg6IC9eXC8oLiopJC8sCiAgfSwKICBhc3luYyByZWFkeSAobSkgewogICAgYXd
haXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
dhaXQoNTAwMCk7CiAgICBjb25zdCB1cmwgPSBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucG9zdCgnL3NpdGUvZ2V0LW5ldy1yZWRpcmVjdC1saW5r
JywgewogICAgICBjb2RlOiBtLnBhdGhbMV0sCiAgICAgIGFkc19ibG9ja2VkOiBmYWxzZSwKICAgIH0pOwo
gICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1
siJCJdLm9wZW5JbWFnZSh1cmwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS
19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eaW1n
KHZpdnxmc2h8YnJkfGtvcilcLnh5eiQvLAogICAgcGF0aDogL15cLy4qJC8sCiAgfSwKICBhc3luYyByZWF
keSAoKSB7CiAgICBjb25zdCBkID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0
lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJy5tYWluLWNvbnRlbnQtYm94Jyk7CiAgICBjb25zdCBydiA9I
F9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZWFy
Y2hGcm9tU2NyaXB0cygvZG9jdW1lbnRcLmxvY2F0aW9uXC5ocmVmPSIoW14iXSspIi8sIGQpOwogICAgYXd
haXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm
9wZW5JbWFnZShydlsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15mYXN0cGlj
XC5ydSQvLAogICAgcGF0aDogL15cL3ZpZXdcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25
zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIiQiXSkoJyNwaWNDb250YWluZXIgaW1nJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQ
UNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjLCB7CiAgICAg
IHJlZmVyZXI6IHRydWUsCiAgICB9KTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXm
ZvcGtvZGlha1wuc2l0ZSQvLAogICAgcGF0aDogL15cL2ltYWdlXC8vLAogIH0sCiAgYXN5bmMgcmVhZHkgK
CkgewogICAgY29uc3QgaW1nID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2hlYWQgPiBsaW5rW3JlbD1pbWFnZV9zcmNdJyk7CiAgICBhd2F
pdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3
BlbkltYWdlKGltZy5ocmVmKTsKICB9Cn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JT
VBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6ICdodHRwOi8vd3d3LmZvdG9saW5r
LnN1L3YucGhwP2lkPSonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0J
ZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2NvbnRlbn
QgaW1nJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFD
RV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cDo
vL3d3dy5mb3Rvc2lrLnBsL3Bva2F6X29icmF6ZWsvcGVsbnkvKi5odG1sJywKICBhc3luYyByZWFkeSAoKS
B7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SV
EVEX01PRFVMRV8wX19bIiQiXSkoJ2Eubm9ib3JkZXIgaW1nJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTs
KICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1
siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eZnJlYWtpbWFnZVwuY29tJ
C8sCiAgICAgIC9ed3d3XC5ob3N0cGljXC5vcmckLywKICAgIF0sCiAgICBwYXRoOiAvXlwvdmlld1wucGhw
JC8sCiAgICBxdWVyeTogL15cP2ZpbGVuYW1lPShbXiZdKykvLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHs
KICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX1
9bIiQiXS5vcGVuSW1hZ2UoJy9pbWFnZXMvJyArIG0ucXVlcnlbMV0pOwogIH0sCn0pOwpfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1
bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9mcmVlaW1ndXBcLmNvbSQvLAogICAgcGF0aDogL15cL3h4eFw
vLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGltZyA9IE9iamVjdChfQURTQllQQVNTRV
JfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjbWFpbmltYWdlJyk7C
iAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyIkIl0ub3BlbkltYWdlKGltZy5zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0V
CUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC
9eZnVsbGltZ1wuY29tJC8sCiAgICBxdWVyeTogL15cP3Y9KFteJl0rKS8sCiAgfSwKICBhc3luYyBzdGFyd
CAobSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siJCJdLm9wZW5JbWFnZSgnL2ltYWdlcy8nICsgbS5xdWVyeVsxXSk7CiAgfSwKfSk7Cl9BRFN
CWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlci
h7CiAgcnVsZTogewogICAgaG9zdDogL15pbWFnZXAycFwuY29tJC8sCiAgICBxdWVyeTogL15cP3Y9KFteJ
l0rKS8sCiAgfSwKICBhc3luYyBzdGFydCAobSkg
ewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdLm9wZW5JbWFnZSgnL2ltYWdlcy8nICsgbS5xdWVyeVsxXSArICcuanBlZycpOwogIH0sCn0pOw
pfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVna
XN0ZXIoewogIHJ1bGU6IFsKICAgICdodHRwOi8vZnVua3lpbWcuY29tL3ZpZXdlci5waHA/aW1nPSonLAog
ICAgJ2h0dHA6Ly9mdW5reWltZy5jb20vdmlldy8qJywKICBdLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGN
vbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdKSgnI3ZpZXdlciBpbWcnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX
19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMpOwogIH0sCn0pOwoo
ZnVuY3Rpb24gKCkgewogIGNvbnN0IGhvc3RSdWxlID0gL15nb2ltYWdlaG9zdFwuY29tJC87CiAgX0FEU0J
ZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKH
sKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogaG9zdFJ1bGUsCiAgICAgIHBhdGg6IC9eXC94eHhcL2ltYWdlc
1wvLywKICAgIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogaG9zdFJ1bGUsCiA
gICAgIHBhdGg6IC9eXC94eHhcLyguKykvLAogICAgfSwKICAgIGFzeW5jIHN0YXJ0IChtKSB7CiAgICAgIG
F3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
S5vcGVuSW1hZ2UoJy94eHgvaW1hZ2VzLycgKyBtLnBhdGhbMV0pOwogICAgfSwKICB9KTsKICBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewo
gICAgcnVsZTogewogICAgICBob3N0OiBob3N0UnVsZSwKICAgICAgcXVlcnk6IC9eXD92PSguKykvLAogIC
AgfSwKICAgIGFzeW5jIHN0YXJ0IChtKSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX
19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoJy94eHgvaW1hZ2VzLycgKyBt
LnF1ZXJ5WzFdKTsKICAgIH0sCiAgfSk7Cn0pKCk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogJ2h0dHA6Ly93d3cuaG9zdG
luZ3BpY3MubmV0L3ZpZXdlci5waHA/aWQ9KicsCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9I
E9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIk
Il0pKCcjaW1nX3ZpZXdlcicpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0t
fSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgc
nVsZTogWwogICAgJ2h0dHA6Ly9pZm90b3MucGwvem9iYWN6LyonLAogICAgJ2h0dHBzOi8vcG9zdGltZy5j
Yy8qJywKICBdLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IG0gPSBPYmplY3QoX0FEU0JZUEFTU0V
SX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnbWV0YVtwcm9wZXJ0eT
0ib2c6aW1hZ2UiXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT
1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShtLmNvbnRlbnQpOwogIH0sCn0pOwpfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ
1bGU6IHsKICAgIGhvc3Q6IC9eaW1hXC5zbyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3
QgYSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM
F9fWyIkIl0pKCcjaW1hZ2VfYmxvY2sgYScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9f
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShhLmhyZWYpOwogIH0sCn0pOwp
fQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaX
N0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eaW1hZHVsXC5jb20kLywKICAgIHF1ZXJ5OiAvXD9wW210X
T0oLispLywKICB9LAogIGFzeW5jIHN0YXJ0IChtKSB7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQ
QUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKCcvP2RpPScgKyBtLnF
1ZXJ5WzFdKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmltYWdlMnlvdVwucnUkL
ywKICAgIHBhdGg6IC9eXC9cZCtcL1xkKy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBp
ID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQ
oJ2Rpdi50X3RpcHMyIGRpdiA+IGltZycpOwogICAgaWYgKCFpKSB7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluaygnJywge
wogICAgICAgIHBvc3Q6IHsKICAgICAgICAgIF9jb25maXJtOiAnJywKICAgICAgICB9LAogICAgICB9KTsK
ICAgICAgcmV0dXJuOwogICAgfQogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0t
fSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1
NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgc
nVsZTogJ2h0dHA6Ly93d3cuaW1hZ2ViYW0uY29tL2ltYWdlLyonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAg
IGxldCBvID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLiQoJy5pbWFnZS1jb250YWluZXIgaW1nW2lkXScpOwogICAgaWYgKG8pIHsKICAgICAgYXdhaXQgX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5Jb
WFnZShvLnNyYywgewogICAgICAgIHJlcGxhY2U6IHRydWUsCiAgICAgIH0pOwogICAgICByZXR1cm47CiAg
ICB9CiAgICBvID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01
PRFVMRV8wX19bIiQiXSkoJ2JvZHkgPiBkaXYgPiBkaXYgPiBhJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRV
JfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkxpbmsoby5ocmVmK
TsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiAnaHR0cDovL3d3dy5pbWFnZWhvdXNpbmcuY29tL2ltYWdlLyo
nLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgndGQudGV4dF9pdGVtIGltZycpOwogI
CAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
JCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogJ2h0dHA6Ly9pbWFnZW5vLm
NvbS8qLmh0bWwnLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU
0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2ltYWdlX2RpdiBp
bWcnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFV
MRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMpOwogIH0sCn0pOwooZnVuY3Rpb24gKCkgewogIF9BRFNCWV
BBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7C
iAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eKHd3d1wuKT9pbWFnZXBvcnRlclwuY29tJC8sCiAgICAgIHBh
dGg6IC9eXC9cd3sxMn1cLy4qXC5odG1sJC8sCiAgICB9LAogICAgcmVhZHk6IHJ1biwKICB9KTsKICBfQUR
TQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZX
IoewogICAgcnVsZTogewogICAgICBob3N0OiBbCiAgICAgICAgL14od3d3XC4pPyhpbWFnZWNhcnJ5fGltY
WdlZHVua3xpbWFnZXBvcnRlcnxpbWFnZXN3aXRjaClcLmNvbSQvLAogICAgICAgIC9eKHd3d1wuKT8ocGlj
bGVldHxwaWN0dXJlZGlwfHBpY3R1cmV0dXJuKVwuY29tJC8sCiAgICAgICAgL14od3d3XC4pP2ltZ3NwaWN
lXC5jb20kLywKICAgICAgICAvXih3d3dcLik/KHBpY2xhbWJvfHlhbmtvaW1hZ2VzKVwubmV0JC8sCiAgIC
AgIF0sCiAgICB9LAogICAgcmVhZHk6IHJ1biwKICB9KTsKICBhc3luYyBmdW5jdGlvbiBydW4gKCkgewogI
CAgY29uc3QgbyA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyIkIl0pKCcjZG93bmxvYWRfYm94IGltZ1tpZF0nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1N
FUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2Uoby5zcm
MpOwogIH0KfSkoKTsKKGZ1bmN0aW9uICgpIHsKICBjb25zdCBob3N0ID0gL15pbWFnZXNoYWNrXC51cyQvO
wogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5y
ZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IGhvc3QsCiAgICAgIHBhdGg6IC9eXC9waG90b1w
vLitcLyguKylcLyhbXi9dKykvLAogICAgfSwKICAgIGFzeW5jIHN0YXJ0IChtKSB7CiAgICAgIGF3YWl0IF
9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuS
W1hZ2UoYC9mLyR7bS5wYXRoWzFdfS8ke20ucGF0aFsyXX0vYCk7CiAgICB9LAogIH0pOwogIF9BRFNCWVBB
U1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiA
gICBydWxlOiB7CiAgICAgIGhvc3Q6IGhvc3QsCiAgICAgIHBhdGg6IC9eXC9mXC8uK1wvW14vXSsvLAogIC
AgfSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJfT
kFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjZnVsbGltZycpOwogICAg
ICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyI
kIl0ub3BlbkltYWdlKGkuc3JjKTsKICAgIH0sCiAgfSk7Cn0pKCk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0
VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogJ2h0dHA6L
y9pbWFnZXNob3N0LnJ1L3Bob3RvLyovaWQqLmh0bWwnLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0
IGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdKSgnI2JwaG90byBhJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGEuaHJlZik7CiAgfSwKfSk7CihmdW5jd
GlvbiAoKSB7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IFsKICAgICAgewogICAgICAgIGhvc3Q6IFsKICAgICAgICA
gIC9ed3d3XC4oZnJlZWJ1bmtlcnxpbWdjYXJyeXxpbWdzaG90cylcLmNvbSQvLAogICAgICAgICAgL153d3
dcLmltYWdlc25ha2VcLihjb218b3JnKSQvLAogICAgICAgIF0sCiAgICAgICAgcGF0aDogL15cL3Nob3dcL
nBocCQvLAogICAgICAgIHF1ZXJ5OiAvXlw/LywKICAgICAgfSwKICAgICAgewogICAgICAgIGhvc3Q6IC9e
d3d3XC4oZnJlZWJ1bmtlcnxpbWdzaG90cylcLmNvbSQvLAogICAgICAgIHBhdGg6IC9eXC9zaG93XC8vLAo
gICAgICB9LAogICAgICB7CiAgICAgICAgaG9zdDogWwogICAgICAgICAgL153d3dcLmltYWdlc25ha2VcLi
hjb218b3JnKSQvLAogICAgICAgICAgL153d3dcLmltYWdlZnJ1aXRcLmNvbSQvLAogICAgICAgIF0sCiAgI
CAgICAgcGF0aDogL15cLyhpbWd8c2hvdylcLy4rLywKICAgICAgfSwKICAgICAgewogICAgICAgIGhvc3Q6
IC9eaW1hZ2ViYW5cLihydXxuZXQpJC8sCiAgICAgICAgcGF0aDogL15cL3Nob3dcL1xkezR9XC9cZHsyfVw
vXGR7Mn1cLy4rLywKICAgICAgfSwKICAgICAgJ2h0dHA6Ly9mb3Rvby5wbC9zaG93LnBocD9pbWc9Ki5odG
1sJywKICAgICAgewogICAgICAgIGhvc3Q6IC9ed3d3XC5pbWFnZXN0aW1lXC5jb20kLywKICAgICAgICBwY
XRoOiAvXlwvc2hvd1wucGhwXC8uKlwuaHRtbCQvLAogICAgICB9LAogICAgXSwKICAgIHJlYWR5OiBydW4s
CiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogWwogICAgICAgIC9ed3d3XC5pbWdjYX
JyeVwuY29tJC8sCiAgICAgICAgL153d3dcLnBvcm5idXNcLm9yZyQvLAogICAgICBdLAogICAgICBwYXRoO
iAvXlwvc2hvd1wvLywKICAgIH0sCiAgICByZWFkeTogcnVuMiwKICB9KTsKICBhc3luYyBmdW5jdGlvbiBy
dW4gKCkgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19
JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjaW1nX29iaicpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX0
5BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYywge
wogICAgICByZWZlcmVyOiB0cnVlLAogICAgfSk7CiAgfQogIGFzeW5jIGZ1bmN0aW9uIHJ1bjIgKCkgewog
ICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVN
TRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjaW1nX29iaicpOw
ogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX
1siJCJdLm9wZW5JbWFnZShpLnNyYywgewogICAgICByZXBsYWNlOiB0cnVlLAogICAgfSk7CiAgfQp9KSgp
OwooZnVuY3Rpb24gKCkgewogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01
PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiBbCiAgICAgIHsKICAgICAgICBob3N0OiAvXm
ltYWdlbnBpY1wuY29tJC8sCiAgICAgICAgcGF0aDogL15cLy4qXC8uK1wuaHRtbD8kLywKICAgICAgfSwKI
CAgICAgewogICAgICAgIGhvc3Q6IFsKICAgICAgICAgIC9eaW1hZ2V0d2lzdFwuY29tJC8sCiAgICAgICAg
ICAvXnZpcHJcLmltJC8sCiAgICAgICAgXQogICAgICB9LAogICAgXSwKICAgIHJlYWR5OiBydW4sCiAgfSk
7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
JlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL14oaW1hZ2V4cG9ydHxpbWFnZXNoaW1hZ2UpX
C5jb20kLywKICAgIH0sCiAgICByZWFkeTogcnVuLAogIH0pOwogIGFzeW5jIGZ1bmN0aW9uIHJ1biAoKSB7
CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIiQiXSkoJ2ltZy5waWMnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0
VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMpOwogIH0KfSkoK
TsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJl
Z2lzdGVyKHsKICBydWxlOiAnaHR0cDovL2ltYWdldXBwZXIuY29tL2kvPyonLAogIGFzeW5jIHJlYWR5ICg
pIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1
JURURfTU9EVUxFXzBfX1siJCJdKSgnI2ltZycpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDR
V9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7
Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWd
pc3Rlcih7CiAgcnVsZTogWwogICAgJ2h0dHBzOi8vKi5pbWFnZXZlbnVlLmNvbS8qJywKICBdLAogIGFzeW
5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnYVt0aXRsZV0gaW1nJyk7CiAgICBhd2FpdCBfQURT
QllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWd
lKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmltYWdlemlsbGFcLm5ld
CQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjcGhvdG8nKTsKICAgIGF
3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS
5vcGVuSW1hZ2UoaS5zcmMsIHsKICAgICAgcmVmZXJlcjogdHJ1ZSwKICAgIH0pOwogIH0sCn0pOwpfQURTQ
llQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIo
ewogIHJ1bGU6ICdodHRwOi8vaW1nLjNlenkubmV0LyouaHRtJywKICBhc3luYyByZWFkeSAoKSB7CiAgICB
jb25zdCBsID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRF
VMRV8wX19bIiQiXSkoJ2xpbmtbcmVsPSJpbWFnZV9zcmMiXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShsLmhyZWYp
OwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9
fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6ICdodHRwOi8vaW1nMS5pbWFnaWxpdmUuY29tLyovKicsCiAgYX
N5bmMgcmVhZHkgKCkgewogICAgY29uc3QgYSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjcGFnZSBhLmJ1dHRvbicpOwogICAgaWYgKGEpIHsKICAg
ICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IGkgPSBPYmplY3
QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI
3BhZ2UgPiBpbWc6bm90KFtpZF0pJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU0J
ZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKH
sKICBydWxlOiB7CiAgICBob3N0OiAvXnd3d1wuKGltZ2JhYmVzfGltZ2ZsYXJlKVwuY29tJC8sCiAgfSwKI
CBhc3luYyByZWFkeSAoKSB7CiAgICBsZXQgaSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCdpbnB1dFtvbmNsaWNrXScpOwogICAgaWYgKGkpIHsKICA
gICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLn
dpbmRvdy5EZWNvZGUoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaSA9IE9iamVjdChfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjdGhpc19pbWFnZScp
OwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRU
JQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL
15pbWdiYXJcLm5ldCQvLAogICAgcGF0aDogL15cL2ltZ19zaG93XC5waHAkLywKICAgIHF1ZXJ5OiAvXlw/
dmlld19pZD0vLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdjZW50ZXIgaW
1nJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9f
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N
0OiAvXmltZ2JhclwubmV0JC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBpID0gT2JqZW
N0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ
2Rpdi5wYW5lbC50b3AgZm9ybSBpbnB1dFtuYW1lPXNpZF0nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9O
QU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluaygnL2ltZ19zaG9
3LnBocD92aWV3X2lkPScgKyBpLnZhbHVlKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1
dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0O
iAvXmltZ2JveFwuY29tJC8sCiAgICBwYXRoOiAvXlwvW1xkXHddKyQvLAogIH0sCiAgYXN5bmMgcmVhZHkg
KCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1
BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNpbWcnKTsKICAgIGF3YWl0IF9BR
FNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1h
Z2UoaS5zcmMpOwogIH0sCn0pOwooZnVuY3Rpb24gKCkgewogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19
XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIG
hvc3Q6IFsKICAgICAgICAvXihpbWdmYW50YXN5fGltZ25lbW98aW1nY3VybHxpbWFnZWRvbWlubylcLmNvb
SQvLAogICAgICAgIC9eMGltZ1wubmV0JC8sCiAgICAgICAgL15idW5ueWZvcnVtXC5vcmckLywKICAgICAg
XSwKICAgICAgcXVlcnk6IC9eXD9bcHZdPS8sCiAgICB9LAogICAgcmVhZHk6IF9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5wYXJ0aWFsKGhlbHBlciwgZmFsc2
UpLAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX
19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eaW1nc2F5XC5jb20kLywKICAg
ICAgcXVlcnk6IC9eXD9bcHZdPS8sCiAgICB9LAogICAgcmVhZHk6IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0V
fX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5wYXJ0aWFsKGhlbHBlciwgdHJ1ZSksCiAgfS
k7CiAgYXN5bmMgZnVuY3Rpb24gaGVscGVyIChkb1JlcGxhY2UpIHsKICAgIGlmIChfQURTQllQQVNTRVJfT
kFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93LmNvbmZpcm1BZ2Up
IHsKICAgICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLndpbmRvdy5jb25maXJtQWdlKDEpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBpID0gT2
JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiX
SkoJyNjb250YWluZXItaG9tZSBpbWdbb25jbGlja10nKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1F
U1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMsIHsKICA
gICAgcmVwbGFjZTogZG9SZXBsYWNlLAogICAgfSk7CiAgfQp9KSgpOwpfQURTQllQQVNTRVJfTkFNRVNQQU
NFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgI
Ghvc3Q6IFsKICAgICAgL15jb3JlcGl4XC5vcmckLywKICAgICAgL14od3d3XC4pP3h4eGltYWdldHBiXC5v
cmckLywKICAgICAgL15pbWdob3N0XC4odG9wfGNsdWIpJC8sCiAgICAgIC9ecG9ybmJha2VyXC5tZW4kLyw
KICAgICAgL15zb21uYXRoMjAwM1wueHl6JC8sCiAgICBdLAogICAgcGF0aDogL15cL2ltYWdlXC8uKyQvLA
ogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNR
VNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbnB1dCNlbWJlZC1jb2RlLTIu
dGV4dC1pbnB1dCcpLmdldEF0dHJpYnV0ZSgndmFsdWUnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1
FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaSk7CiAgfSwKfS
k7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZ
Wdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15pbWdtYXNzXC5jb20kLywKICAgIHBhdGg6IC9eXC9p
bWFnZVwvW1xkXHddKyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUV
TUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnI2xvYWRpbmcyJyk7Ci
AgICBjb25zdCBkID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8wX19bIiQiXSkoJy5ib3gnKTsKICAgIGQuc3R5bGUuZGlzcGxheSA9ICdpbml0aWFsJzsKICAg
IGQuc3R5bGUub3BhY2l0eSA9ICdpbml0aWFsJzsKICB9LAp9KTsKKGZ1bmN0aW9uICgpIHsKICBjb25zdCB
QQVRIX1JVTEUgPSAvXlwvKFswLTlhLXpBLVotX10rKShcLnxcL3wkKS87CiAgX0FEU0JZUEFTU0VSX05BTU
VTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6I
HsKICAgICAgaG9zdDogWwogICAgICAgIC9eKGltZ21vbmtleXxpbWd0cmV4fGltZ3ZlfHVwbG9hZHJyfGlt
YWdlZWVyfHBpYy1tYW5pYWMpXC5jb20kLywKICAgICAgICAvXihodWxraW1nZXxpbWdzZW58aW1nc3RvfGt
2YWRvcnxrcm9waWN8cGljZG9sbGFyfHNpbHZlcnBpYylcLmNvbSQvLAogICAgICAgIC9ed3d3XC51aW1nc2
hhcmVcLmNvbSQvLAogICAgICAgIC9eKHd3d1wuKT9pbWdzZWVcLm1lJC8sCiAgICAgICAgL14oaW1nY2xpY
2t8cGljczR5b3UpXC5uZXQkLywKICAgICAgXSwKICAgICAgcGF0aDogUEFUSF9SVUxFLAogICAgfSwKICAg
IGFzeW5jIHJlYWR5IChtKSB7CiAgICAgIGF3YWl0IGhlbHBlcihtLnBhdGhbMV0sIGdldE5leHQxKTsKICA
gIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXz
BfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15pbWdvdXRsZXRcLmNvbSQvL
AogICAgICBwYXRoOiBQQVRIX1JVTEUsCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICBjb25z
dCBpID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJ
dLiQoJ2ltZy5waWMnKTsKICAgICAgaWYgKGkpIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICAgI
CAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgZCA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQ
QUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdkaXZbaWRePSJpbWFnZXZpZXdpIl0
nKTsKICAgICAgY29uc3Qgbm9kZSA9IGF3YWl0IH
dhaXRET00oZCwgKG5vZGUpID0+IHsKICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJ0ZPUk0nI
CYmIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4k
KCdpbnB1dFtuYW1lPSJpZCJdJywgbm9kZSk7CiAgICAgIH0pOwogICAgICBub2RlLnN1Ym1pdCgpOwogICA
gfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF
9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXmltZ3JvY2tcLmluZm8kLywKI
CAgICAgcGF0aDogUEFUSF9SVUxFLAogICAgfSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3Qg
aSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4
kKCdpbWcucGljdmlldycpOwogICAgICBpZiAoaSkgewogICAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU
1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMpOwogI
CAgICAgIHJldHVybjsKICAgICAgfQogICAgICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93Ll8weDMzN2M0YiA9IG51bGw7CiAgICAgIGNvbnN0IG5
vZGUgPSBhd2FpdCBnZXRBbWJpZ3VvdXNGb3JtKCdkaXZbaWRdICsgZGl2W2lkXSA+IHN0eWxlJywgKG5vZG
UpID0+IHsKICAgICAgICByZXR1cm4gbm9kZS5wYXJlbnRFbGVtZW50OwogICAgICB9KTsKICAgICAgbm9kZ
S5jbGljaygpOwogICAgICBub2RlLmNsaWNrKCk7CiAgICAgIG5vZGUuY2xpY2soKTsKICAgIH0sCiAgfSk7
CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJ
lZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15waWNyb2tcLmNvbSQvLAogICAgICBwYXRoOi
BQQVRIX1JVTEUsCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICBjb25zdCBpID0gX0FEU0JZU
EFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJ2ltZy5waWN2
aWV3Jyk7CiAgICAgIGlmIChpKSB7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgICAgICAgcmV0dX
JuOwogICAgICB9CiAgICAgIGNvbnN0IG5vZGUgPSBhd2FpdCBnZXRBbWJpZ3VvdXNGb3JtKCdib2R5ID4gZ
Gl2ID4gZGl2W2lkXSA+IHN0eWxlJywgKG5vZGUpID0+IHsKICAgICAgICByZXR1cm4gbm9kZS5wYXJlbnRF
bGVtZW50OwogICAgICB9KTsKICAgICAgbm9kZS5jbGljaygpOwogICAgICBub2RlLmNsaWNrKCk7CiAgICA
gIG5vZGUuY2xpY2soKTsKICAgIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0
tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL
15pbWdvdXRsZXRcLnB3JC8sCiAgICAgIHBhdGg6IFBBVEhfUlVMRSwKICAgIH0sCiAgICBhc3luYyByZWFk
eSAoKSB7CiAgICAgIGNvbnN0IGkgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlR
FRF9NT0RVTEVfMF9fWyIkIl0uJCgnaW1nLnBpY3ZpZXcnKTsKICAgICAgaWYgKGkpIHsKICAgICAgICBfQU
RTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93L
l8weDViNTBiNyA9IG51bGw7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgICAgICAgcmV0dXJuOwo
gICAgICB9CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIiQiXS53aW5kb3cuXzB4NWI1MGI3ID0gbnVsbDsKICAgICAgbGV0IG5vZGUgPSBudWxsOwogICAgI
CB3aGlsZSAoIW5vZGUpIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCg1MDApOwogICAgICAgIG5vZGUgPSBfQURTQllQQVN
TRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnYnV0dG9uW25hbW
U9Im5leHQiXScpOwogICAgICB9CiAgICAgIG5vZGUuY2xpY2soKTsKICAgICAgbm9kZS5jbGljaygpOwogI
CAgICBub2RlLmNsaWNrKCk7CiAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q
6IFsKICAgICAgICAvXihwaWNiYXJvbnxpbWdiYXJvbnxrdmFkb3J8Zm90b2tpeilcLmNvbSQvLAogICAgIC
AgIC9eaW1nZmlsZXNcLm9yZyQvLAogICAgICBdLAogICAgICBwYXRoOiBQQVRIX1JVTEUsCiAgICB9LAogI
CAgYXN5bmMgcmVhZHkgKCkgewogICAgICBjb25zdCBpID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJ2ltZy5waWMnKTsKICAgICAgaWYgKGkpIHsKICA
gICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF
9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgZ
iA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyIkIl0pKCdmb3JtJyk7CiAgICAgIGYuc3VibWl0KCk7CiAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydW
xlOiAvXmh0dHA6XC9cL2ltZ2RyYWdvblwuY29tXC8oZ2V0ZmlsXC5waHB8ZGwpJC8sCiAgICBhc3luYyByZ
WFkeSAoKSB7CiAgICAgIGNvbnN0IGkgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnaW1nLnBpYycpOwogICAgICBpZiAoaSkgewogICAgICAgIGF3YWl
0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcG
VuSW1hZ2UoaS5zcmMpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBhd2FpdCBfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ud2FpdCg1MDApOwogICAg
ICBjb25zdCBmID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01
PRFVMRV8wX19bIiQiXSkoJyNDb250aW51ZUZSTScpOwogICAgICBmLnN1Ym1pdCgpOwogICAgfSwKICB9KT
sKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uc
mVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXmltZ3JvY2tcLnB3JC8sCiAgICAgIHBhdGg6
IFBBVEhfUlVMRSwKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7CiAgICAgIGNvbnN0IGkgPSBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnaW1nLnBpY3
ZpZXcnKTsKICAgICAgaWYgKGkpIHsKICAgICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV
0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICAgICAgICByZXR1
cm47CiAgICAgIH0KICAgICAgY29uc3Qgbm9kZSA9IGF3YWl0IGdldEFtYmlndW91c0Zvcm0oCiAgICAgICA
gJ2RpdltpZF0gKyBkaXZbaWRdID4gaW5wdXQ6bm90KFtzdHlsZV0pJywKICAgICAgICAobm9kZSkgPT4gew
ogICAgICAgICAgY29uc3QgZCA9IG5vZGUucGFyZW50RWxlbWVudDsKICAgICAgICAgIG5vZGUuY2xpY2soK
TsKICAgICAgICAgIHJldHVybiBkOwogICAgICAgIH0pOwogICAgICBub2RlLmNsaWNrKCk7CiAgICB9LAog
IH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8
iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eKGltZ3ZpZXd8aW1ndG93bnxpbWdtYX
plfGltZ2RldylcLnB3JC8sCiAgICAgIHBhdGg6IFBBVEhfUlVMRSwKICAgIH0sCiAgICBhc3luYyByZWFke
SAoKSB7CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIiQiXS5yZW1vdmUoJ2lmcmFtZScpOwogICAgICBjb25zdCBpID0gX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJ2ltZy5waWN2aWV3Jyk7CiAgICAgIG
lmIChpKSB7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAg
ICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5
3aW5kb3cuXzB4NThmZjM1ID0gbnVsbDsKICAgICAgY29uc3Qgbm9kZSA9IGF3YWl0IGdldEFtYmlndW91c0
Zvcm0oCiAgICAgICAgJ3NjcmlwdCArIGRpdltpZF0gPiBpbnB1dDpub3QoW3N0eWxlXSknLAogICAgICAgI
Chub2RlKSA9PiB7CiAgICAgICAgICBjb25zdCBkID0gbm9kZS5wYXJlbnRFbGVtZW50OwogICAgICAgICAg
bm9kZS5jbGljaygpOwogICAgICAgICAgcmV0dXJuIGQ7CiAgICAgICAgfSk7CiAgICAgIG5vZGUuY2xpY2s
oKTsKICAgIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15pbWdhbnRcLmNvb
SQvLAogICAgICBwYXRoOiAvXlwvaW1nLShcZCspXC5odG1sJC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQg
KG0pIHsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGBpbWd2aWV3LSR7bS5wYXRoWzFdfS5odG1sYCk7CiAgICB9LAogIH
0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iX
S5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eaW1nYW50XC5jb20kLywKICAgICAgcGF0
aDogL15cL2ltZ3ZpZXctXGQrXC5odG1sJC8sCiAgICB9LAogICAgYXN5bmMgcmVhZHkgKCkgewogICAgICB
jb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRF
VMRV8wX19bIiQiXSkoJyNwaWNWaWV3Jyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX
19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5zcmMpOwogICAgfSwKICB9
KTsKICBmdW5jdGlvbiB3YWl0RE9NIChlbGVtZW50LCBmbikgewogICAgcmV0dXJuIG5ldyBQcm9taXNlKCh
yZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dG
F0aW9ucykgPT4gewogICAgICAgIG11dGF0aW9ucy5mb3JFYWNoKChtdXRhdGlvbikgPT4gewogICAgICAgI
CAgaWYgKG11dGF0aW9uLnR5cGUgIT09ICdjaGlsZExpc3QnKSB7CiAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgIH0KICAgICAgICAgIGNvbnN0IFtrLCAsIHJdID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLmZpbmQobXV0YXRpb24uYWRkZWROb2RlcywgKGNoaW
xkKSA9PiB7CiAgICAgICAgICAgIHJldHVybiBmbihjaGlsZCkgPyBjaGlsZCA6IF9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5ub25lOwogICAgICAgICAgfSk7
CiAgICAgICAgICBpZiAoayA9PT0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURUR
fTU9EVUxFXzBfX1siXyJdLm5vbmUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgIC
AgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOwogICAgICAgICAgcmVzb2x2ZShyKTsKICAgICAgICB9KTsKI
CAgICAgfSk7CiAgICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwgewogICAgICAgIGNoaWxkTGlzdDog
dHJ1ZSwKICAgICAgfSk7CiAgICB9KTsKICB9CiAgYXN5bmMgZnVuY3Rpb24gZ2V0QW1iaWd1b3VzRm9ybSA
oc2VsZWN0b3IsIHNoZWxsTm9ybWFsaXplcikgewogICAgY29uc3QgZCA9IGF3YWl0IHdhaXRGb3JtU2hlbG
woc2VsZWN0b3IsIHNoZWxsTm9ybWFsaXplcik7CiAgICBjb25zdCBzdHlsZSA9IE9iamVjdChfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdzdHlsZScsIGQp
OwogICAgbGV0IHZpc2libGVDbGFzc2VzID0gcGFyc2VTdHlsZShzdHlsZSk7CiAgICB2aXNpYmxlQ2xhc3N
lcyA9IGZpbHRlckR1cGxpY2F0ZWQodmlzaWJsZUNsYXNzZXMpOwogICAgd2hpbGUgKHRydWUpIHsKICAgIC
AgY29uc3QgYnV0dG9uID0gZmluZFZpc2libGVGb3JtKHZpc2libGVDbGFzc2VzKTsKICAgICAgaWYgKGJ1d
HRvbikgewogICAgICAgIHJldHVybiBidXR0b247CiAgICAgIH0KICAgICAgYXdhaXQgX0FEU0JZUEFTU0VS
X05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLndhaXQoNTAwKTsKICAgIH0
KICB9CiAgZnVuY3Rpb24gd2FpdEZvcm1TaGVsbCAoc2VsZWN0b3IsIG5vcm1hbGl6ZXIpIHsKICAgIHJldH
VybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgICBjb25zdCBoYW5kbGUgPSBzZXRJbnRlcnZhb
CgoKSA9PiB7CiAgICAgICAgbGV0IHNoZWxsID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoc2VsZWN0b3IpOwogICAgICAgIGlmICghc2hlbGwpIHsKICA
gICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2xlYXJJbnRlcnZhbChoYW5kbGUpOwogICAgIC
AgIHNoZWxsID0gbm9ybWFsaXplcihzaGVsbCk7CiAgICAgICAgcmVzb2x2ZShzaGVsbCk7CiAgICAgIH0sI
DUwMCk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gcGFyc2VTdHlsZSAoc3R5bGUpIHsKICAgIHN0eWxlID0g
c3R5bGUudGV4dENvbnRlbnQ7CiAgICBjb25zdCBwYXR0ZXJuID0gL1wuKFx3Kylce3Zpc2liaWxpdHk6aW5
pdGlhbDtcfS9nOwogICAgbGV0IHJ2ID0gbnVsbDsKICAgIGNvbnN0IGNsYXNzZXMgPSBbXTsKICAgIHdoaW
xlICgocnYgPSBwYXR0ZXJuLmV4ZWMoc3R5bGUpK
SAhPT0gbnVsbCkgewogICAgICBjbGFzc2VzLnB1c2gocnZbMV0pOwogICAgfQogICAgcmV0dXJuIGNsYXNz
ZXM7CiAgfQogIGZ1bmN0aW9uIGZpbHRlckR1cGxpY2F0ZWQgKGNsYXNzZXMpIHsKICAgIGNvbnN0IHRhYmx
lID0gbmV3IE1hcCgpOwogICAgZm9yIChjb25zdCBjIG9mIGNsYXNzZXMpIHsKICAgICAgaWYgKHRhYmxlLm
hhcyhjKSkgewogICAgICAgIHRhYmxlLnNldChjLCBmYWxzZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd
GFibGUuc2V0KGMsIHRydWUpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gQXJyYXkuZnJvbSh0YWJsZS5l
bnRyaWVzKCkpLmZpbHRlcigoW18sIHVuaXF1ZV0pID0+IHsKICAgICAgcmV0dXJuIHVuaXF1ZTsKICAgIH0
pLm1hcCgoW18sIGNdKSA9PiB7CiAgICAgIHJldHVybiBjOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGZpbm
RWaXNpYmxlRm9ybSAoY2xhc3NlcykgewogICAgZm9yIChjb25zdCBjbGFzc18gb2YgY2xhc3NlcykgewogI
CAgICBjb25zdCBmb3JtID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siJCJdLiQoYGZvcm0uJHtjbGFzc199YCk7CiAgICAgIGlmICghZm9ybSkgewogICAgICAgIGN
vbnRpbnVlOwogICAgICB9CiAgICAgIGNvbnN0IGJ1dHRvbiA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX1
9XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCdpbnB1dFt0eXBlPSJidXR0b24iXSwgYnV0d
G9uW3R5cGU9ImJ1dHRvbiJdLCBidXR0b25bY2xhc3NdJywgZm9ybSk7CiAgICAgIGlmICghYnV0dG9uKSB7
CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgY29uc3QgdiA9IGdldENvbXB1dGVkU3R5bGUoYnV
0dG9uKS5nZXRQcm9wZXJ0eVZhbHVlKCd2aXNpYmlsaXR5Jyk7CiAgICAgIGlmICh2ICE9PSAndmlzaWJsZS
cpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICByZXR1cm4gYnV0dG9uOwogICAgfQogICAgc
mV0dXJuIG51bGw7CiAgfQogIGZ1bmN0aW9uIGdldE5leHQxIChpKSB7CiAgICByZXR1cm4gaS52YWx1ZTsK
ICB9CiAgYXN5bmMgZnVuY3Rpb24gaGVscGVyIChpZCwgZ2V0TmV4dCkgewogICAgY29uc3QgcmVjYXB0Y2h
hID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLi
QoJyNyZWNhcHRjaGFfd2lkZ2V0LCAjY2FwdGNoYScpOwogICAgaWYgKHJlY2FwdGNoYSkgewogICAgICBfQ
URTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0uaW5mbygn
c3RvcCBiZWNhdXNlIHJlY2FwdGNoYScpOwogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgaSA9IF9BRFN
CWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCdpbnB1dF
tuYW1lPSJuZXh0Il0nKTsKICAgIGlmIChpKSB7CiAgICAgIGNvbnN0IG5leHQgPSBnZXROZXh0KGkpOwogI
CAgICBhd2FpdCBnbyhpZCwgT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIiQiXSkoJ2lucHV0W25hbWU9InByZSJdJykudmFsdWUsIG5leHQpOwogICAgICB
yZXR1cm47CiAgICB9CiAgICBpID0gX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURU
RfTU9EVUxFXzBfX1siJCJdLiQoJ2ltZy5waWN2aWV3LCBpbWcucGljJyk7CiAgICBpZiAoaSkgewogICAgI
CBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIk
Il0ub3BlbkltYWdlKGkuc3JjKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgX0FEU0JZUEFTU0VSX05BTUV
TUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLmluZm8oJ2RvIG5vdGhpbmcnKTsKIC
B9CiAgYXN5bmMgZnVuY3Rpb24gZ28gKGlkLCBwcmUsIG5leHQpIHsKICAgIGF3YWl0IF9BRFNCWVBBU1NFU
l9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluaygnJywgewog
ICAgICBwb3N0OiB7CiAgICAgICAgb3A6ICd2aWV3JywKICAgICAgICBpZDogaWQsCiAgICAgICAgcHJlOiB
wcmUsCiAgICAgICAgbmV4dDogbmV4dCwKICAgICAgICBhZGI6ICcwJywKICAgICAgfSwKICAgIH0pOwogIH
0KfSkoKTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siX
yJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXmltZ3RvcnJudFwuaW4kLywKICAgIHBhdGg6
IC9eXC92aWV3XC5waHAkLywKICAgIHF1ZXJ5OiAvXlw/aWQ9LiovLAogIH0sCiAgYXN5bmMgcmVhZHkgKCk
gewogICAgY29uc3QgaW1nID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE
9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2NlbnRlciBkaXYgdGFibGUudGcgdGJvZHkgdHIgdGQgY2VudGVyI
GltZycpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siJCJdLm9wZW5JbWFnZShpbWcuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgIC
Bob3N0OiAvXmltZ3ZhdWx0XC5wdyQvLAogICAgcGF0aDogL15cL3ZpZXctaW1hZ2VcLy8sCiAgfSwKICBhc
3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2FydGljbGUgZGl2LnNwYW43IGFbdGFyZ2V0PSJ
fYmxhbmsiXScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURU
RfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShhLmhyZWYpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNR
VNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsK
ICAgIGhvc3Q6IFsKICAgICAgL153d3dcLihpbWdza3l8aW1nZmlsZXxpbWdzZWUpXC5uZXQkLywKICAgICA
gL153d3dcLmltYWdlc3BpY3lcLnNpdGUkLywKICAgIF0sCiAgICBwYXRoOiAvXlwvc2l0ZVwvdlwvXGQrJC
8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBhID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQ
U1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNteVVuaXF1ZUltZycpLnBh
cmVudE5vZGU7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsoYS5ocmVmKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiBbCiAgI
CB7CiAgICAgIGhvc3Q6IFsKICAgICAgICAvXnd3d1wuKGltZ3NreXxpbWdmaWxlfGltZ3NlZSlcLm5ldCQv
LAogICAgICAgIC9ed3d3XC5pbWFnZXNwaWN5XC5zaXRlJC8sCiAgICAgICAgL14oaW1neGVufGltZ3dlbmd
8aW1ndGlnZXJ8aW1ndml2bylcLnh5eiQvLAogICAgICBdLAogICAgICBwYXRoOiAvXlwvW2EtenwwLTldez
QsMTB9JC8sCiAgICB9LAogICAgewogICAgICBob3N0OiBbCiAgICAgICAgL14od3d3XC4pP2ltZ2Fpclwub
mV0JC8sCiAgICAgICAgL14od3d3XC4pP2ltYWdla2luZ1wueHl6JC8sCiAgICAgICAgL153d3dcLmNsb3Vk
Z2FsbGVyeVwubmV0JC8sCiAgICAgIF0sCiAgICB9LAogIF0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29
uc3QgbWF0Y2hlcyA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV
8wX19bIiQiXS5zZWFyY2hGcm9tU2NyaXB0cygvZG9jdW1lbnRcLmdldEVsZW1lbnRCeUlkXCgic29EYUJ1Z
yJcKVwuc3JjID0gIihbXiJdKykiOy8pOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShtYXRjaGVzWzFdKTsKICB9LAp9KTs
KX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2
lzdGVyKHsKICBydWxlOiAnaHR0cDovL2lwaWMuc3UvP3BhZ2U9aW1nJnBpYz0qJywKICBhc3luYyByZWFke
SAoKSB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNmeicpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfS
k7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZ
Wdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15pXC5qYXZ0b3JcLmNvbSQvLAogICAgcGF0aDogL15c
L2ltYWdlXC8vLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjc2hvd19pbW
cgaW1nJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT
0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFD
RV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICB
ob3N0OiAvXmtlcHRhcm9sb1wuaHUkLywKICAgIHBhdGg6IC9eKFwvW14vXStcL1teL10rXC5qcGcpJC8sCi
AgfSwKICBhc3luYyBzdGFydCAobSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZSgnaHR0cDovL3d3dy5rZXB0YXJvbG8u
aHUva2VwJyArIG0ucGF0aFsxXSk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15sb3
N0cGljXC5uZXQkLywKICAgIHF1ZXJ5OiAvXlw/cGhvdG89XGQrJC8sCiAgfSwKICBhc3luYyByZWFkeSAoK
SB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIiQiXSkoJ2ltZy5ub3RpbmxpbmUuY2lyY2xlJyk7CiAgICBhd2FpdCBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKG
kuc3JjKTsKICB9LAp9KTsKKGZ1bmN0aW9uICgpIHsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0
OiBbCiAgICAgICAgL15taXJhZ2VwaWNzXC5jb20kLywKICAgICAgICAvXmZ1bmV4dHJhXC5ob3N0emlcLmN
vbSQvLAogICAgICAgIC9eYmlsZGVyXC5uaXhoZWxwXC5kZSQvLAogICAgICAgIC9eaW1hZ2VjdXJsXC4oY2
9tfG9yZykkLywKICAgICAgICAvXmZvdG8tcGljXC5uZXQkLywKICAgICAgXSwKICAgICAgcGF0aDogL15cL
3ZpZXdlclwucGhwJC8sCiAgICAgIHF1ZXJ5OiAvZmlsZT0oW14mXSspLywKICAgIH0sCiAgICBzdGFydDog
aGVscGVyLAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFV
MRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eaW1nc2luXC5jb20kLy
wKICAgICAgcGF0aDogL15cL3ZpZXdlclwucGhwJC8sCiAgICAgIHF1ZXJ5OiAvZmlsZT0oW14mXSspLywKI
CAgIH0sCiAgICBhc3luYyBzdGFydCAobSkgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNF
X19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKCcvZmlsZXMvJyArIG0ucXV
lcnlbMV0pOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUl
RFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXihpbWdua
XB8aW1nY2VudHJhbHxpbWdjcmVhbSlcLmNvbSQvLAogICAgICBwYXRoOiAvXlwvdmlld2Vyci4qXC5waHAk
LywKICAgICAgcXVlcnk6IC9maWxlPShbXiZdKykvLAogICAgfSwKICAgIHN0YXJ0OiBoZWxwZXIsCiAgfSk
7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLn
JlZ2lzdGVyKHsKICAgIHJ1bGU6IFsKICAgICAgJ2h0dHA6Ly93d3cub3ZlcnBpYy5uZXQvdmlld2VyLnBoc
D9maWxlPSonLAogICAgXSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3QgaSA9IE9iamVjdChf
QURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjbWF
pbl9pbWcnKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURU
RfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgICB9LAogIH0pOwogIF9BRFNCWVBBU1NFU
l9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBy
dWxlOiB7CiAgICAgIGhvc3Q6IC9eeHh4aG9zdFwubWUkLywKICAgICAgcGF0aDogL15cL3ZpZXdlclxkK1w
ucGhwJC8sCiAgICAgIHF1ZXJ5OiAvZmlsZT0oW14mXSspLywKICAgIH0sCiAgICBhc3luYyBzdGFydCAobS
kgewogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyIkIl0ub3BlbkltYWdlKCdmaWxlcy8nICsgbS5xdWVyeVsxXSk7CiAgICB9LAogIH0pOwogIGFz
eW5jIGZ1bmN0aW9uIGhlbHBlciAobSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZSgnL2ltYWdlcy8nICsgbS5xdWVyeV
sxXSk7CiAgfQp9KSgpOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed3d3XC5tcmpoXC5vcmckLywK
ICAgIHBhdGg6IC9eXC9nYWxsZXJ5XC5waHAkLywKICAgIHF1ZXJ5OiAvXlw/ZW50cnk9KC4rKSQvLAogIH0
sCiAgYXN5bmMgcmVhZHkgKG0pIHsKICAgIGNvbnN0IHVybCA9IG0ucXVlcnlbMV07CiAgICBhd2FpdCBfQU
RTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltY
WdlKCcvJyArIHVybCk7CiAgfSwKfSk7Cl9BRFNC
WVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih
7CiAgcnVsZTogewogICAgaG9zdDogL153d3dcLm5vZWxzaGFja1wuY29tJC8sCiAgfSwKICBhc3luYyByZW
FkeSAoKSB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX
0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNlbHRfdG9fYWZmJyk7CiAgICBhd2FpdCBfQURTQllQQVNT
RVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3J
jKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXz
BfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICAgIC9eb3ZlcmRyZWFtXC5je
iQvLAogICAgICAvXnBpY2xpY2tcLm9yZyQvLAogICAgXSwKICAgIHBhdGg6IC9eXC9pbWFnZVwvLywKICB9
LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGltZyA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVN
QQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjZnVsbF9pbWFnZScpOwogICAgYX
dhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdL
m9wZW5JbWFnZShpbWcuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiBbCiAgICA
gIC9eaW1nYXp1cmVcLmNvbSQvLAogICAgICAvXnNoYWdneWltZ1wucHJvJC8sCiAgICAgIC9ecGljLW1vbm
V5XC5ydSQvLAogICAgICAvXmRhaWx5aW1hZ2VzXC54eXokLywKICAgIF0sCiAgfSwKICBhc3luYyByZWFke
SAoKSB7CiAgICBjb25zdCBmID0gZG9jdW1lbnQuZm9ybXNbMF07CiAgICBjb25zdCBzaWcgPSBPYmplY3Qo
X0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnaW5
wdXRbbmFtZT0ic2lnIl0nLCBmKS52YWx1ZTsKICAgIGNvbnN0IHBpY19pZCA9IE9iamVjdChfQURTQllQQV
NTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbnB1dFtuYW1lP
SJwaWNfaWQiXScsIGYpLnZhbHVlOwogICAgY29uc3QgcmVmZXJlciA9IE9iamVjdChfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbnB1dFtuYW1lPSJyZWZ
lcmVyIl0nLCBmKS52YWx1ZTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0
lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoYC9waWMuanBlZz9waWNfaWQ9JHtwaWNfaWR9J
nNpZz0ke3NpZ30mcmVmZXJlcj0ke3JlZmVyZXJ9YCk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BB
Q0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogJ2h0dHA
6Ly93d3cucGljLXVwbG9hZC5kZS92aWV3LSouaHRtbCcsCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU0
JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnL
mFkdmVydCcpOwogICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbWcucHJldmlld19waWN0dXJlXzJiLCBpbWcub3JpZ2l
uYWxfcGljdHVyZV8yYicpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFU
l9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVs
ZTogewogICAgaG9zdDogWwogICAgICAvXnBpYzR5b3VcLnJ1JC8sCiAgICAgIC9ecGljNXlvdVwucnUkLyw
KICAgIF0sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBpZiAoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV
9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJyNkMSA+IGltZycpICE9IG51bGwpIHsKI
CAgICAgY29uc3QgVVJMcGFyYW1zID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnLycsIDUpOwogICAgICBsZXQg
bmV4dCA9IFVSTHBhcmFtcy5qb2luKCcvJyk7CiAgICAgIG5leHQgPSBuZXh0ICsgJy8xLyc7CiAgICAgIF9
BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5zZXRDb2
9raWUoJ3A0eWNsaWNrJywgJzEnKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKG5leHQpOwogICAgfSBlbHNlIHsKICAg
ICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyIkIl0pKCcjZDEgaW1nJykuc3JjOwogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRV
NQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkpOwogICAgfQogI
H0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJf
Il0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9waWNjYXNoXC5uZXQkLywKICB
9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnLmNvbnRhaW5lciA+IGltZycpOwogI
CAgY29uc3QgbSA9IGkub25jbGljay50b1N0cmluZygpLm1hdGNoKC9tc2hvd1woJyhbXiddKyknXCk7Lyk7
CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9
fWyIkIl0ub3BlbkltYWdlKG1bMV0pOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUE
FDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eK
HBpY2V4cG9zZWR8Y3JvZWEpXC5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkg
PSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdKSgnaW1nLnBpYycpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFU
l9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVs
ZTogWwogICAgJ2h0dHA6Ly9hbWF0ZXVyZnJlYWsub3JnL3NoYXJlLSouaHRtbCcsCiAgICAnaHR0cDovL2F
tYXRldXJmcmVhay5vcmcvc2hhcmUucGhwP2lkPSonLAogICAgJ2h0dHA6Ly9waWNmb3gub3JnLyonLAogIC
AgJ2h0dHA6Ly93d3cuZXVyby1waWMuZXUvc2hhcmUucGhwP2lkPSonLAogICAgJ2h0dHA6Ly94eHguZnJlZ
WltYWdlLnVzL3NoYXJlLnBocD9pZD0qJywKICAgICdodHRwOi8vd3d3LnBpeHNvci5jb20vc2hhcmUucGhw
P2lkPSonLAogICAgJ2h0dHA6Ly93d3cucGl4c29yLmNvbS9zaGFyZS0qLmh0bWwnLAogICAgJ2h0dHA6Ly9
waXhzb3IuY29tL1hYWC9zaGFyZS0qLmh0bWwnLAogICAgJ2h0dHA6Ly9ob2xkdGhlbW9hbi5uZXQveC9zaG
FyZS0qLmh0bWwnLAogICAgJ2h0dHA6Ly93d3cuaW1nei5wdy9zaGFyZS0qLmh0bWwnLAogICAgJ2h0dHBzO
i8vaW1ndXVyLnBpY3R1cmVzL3NoYXJlLSouaHRtbCcKICBdLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNv
bnN0IG8gPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUx
FXzBfX1siJCJdKSgnI2lpbWcnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2Uoby5zcmMpOwogIH0sCn0pOwpfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewog
IHJ1bGU6IHsKICAgIGhvc3Q6IFsKICAgICAgL15waWNwaWNcLm9ubGluZSQvLAogICAgICAvXnBpY2Nsb2N
rXC5ydSQvLAogICAgXSwKICAgIHBhdGg6IC9eXC9cZCtcL1xkK1wvJC8sCiAgfSwKICBhc3luYyByZWFkeS
AoKSB7CiAgICBsZXQgaSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPU
lRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjcGF5X3RodW1iX2ltZyBpbWcnKTsKICAgIGkgPSBpLmdldEF0dHJp
YnV0ZSgnb25jbGljaycpOwogICAgaSA9IGkubWF0Y2goL21zaG93XCgnKC4rKSdcKS8pOwogICAgaSA9IGl
bMV07CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTE
VfMF9fWyIkIl0ub3BlbkltYWdlKGkpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCU
EFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IFsKICAgICdodHRwOi8v
cGljcy1tb25leS5ydS9hbGxwaWNmcmVlLyonLAogICAgJ2h0dHA6Ly93d3cucGljcy1tb25leS5ydS9hbGx
pbWFnZS8qJywKICBdLAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU
9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnBpY3MtbW9uZXlcLnJ1J
C8sCiAgICBwYXRoOiAvXlwvdlwucGhwJC8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJ
hbWUnKTsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnY2VudGVyIGltZzpub3QoW2lkXSknKTsKICAgIGF3YWl0IF9BR
FNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1h
Z2UoaS5zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IFsKICAgICAgL153d3dcLn
BpY3MtbW9uZXlcLnJ1JC8sCiAgICAgIC9eKHBpY2tlci1jbGlja3xwMHhwaWNtb25leSlcLnJ1JC8sCiAgI
CBdLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSgnaWZyYW1lJyk7CiAgICBsZXQgaSA9IE9iamV
jdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKC
cjZDEgaW1nLCAjcGF5X3RodW1iX2ltZyA+IGltZycpOwogICAgaSA9IGkub25jbGljay50b1N0cmluZygpO
wogICAgaSA9IGkubWF0Y2goL21zaG93XCgnKC4rKSdcKS8pOwogICAgaSA9IGlbMV07CiAgICBhd2FpdCBf
QURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3Blbkl
tYWdlKGkpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6ICdodHRwOi8vcGljc2hhcmUuZ2VlbnphLmNvbS9wa
WNzLyonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05B
TUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI3BpY1NoYXJlX2ltYWdlX2N
vbnRhaW5lcicpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURU
RfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU
1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewog
ICAgaG9zdDogL15waWNzdHJlYW1cLnR2JC8sCiAgICBwYXRoOiAvXlwvLipcLy4qXC5odG1sJC8sCiAgfSw
KICBhc3luYyByZWFkeSAoKSB7CiAgICBjb25zdCBpbWcgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI3ZpZXcxID4gZGl2Om50aC1jaGlsZ
CgxKSA+IGltZzpudGgtY2hpbGQoMSknKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaW1nLnNyYyk7CiAgfSwKfSk7Cl9
BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3
Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL14od3d3XC4pP3BpbXBhbmRob3N0XC5jb20kLywKICAgIHBhd
Gg6IC9eXC9pbWFnZVwvXGQrLywKICAgIHF1ZXJ5OiAvXlw/c2l6ZT1vcmlnaW5hbC8sCiAgfSwKICBhc3lu
YyByZWFkeSAoKSB7CiAgICBjb25zdCBpbWcgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1d
FQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI292ZXJmbG93LXdyYXBwZXIgaW1nLm9yaWdpbm
FsJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVT
EVfMF9fWyIkIl0ub3BlbkltYWdlKGltZy5zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNF
X19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGh
vc3Q6IC9eKHd3d1wuKT9waW1wYW5kaG9zdFwuY29tJC8sCiAgICBwYXRoOiAvXlwvaW1hZ2VcL1xkKy8sCi
AgfSwKICBhc3luYyBzdGFydCAobSkgewogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQ
lBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKG0ucGF0aCArICc/c2l6ZT1vcmlnaW5h
bCcpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEV
fMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9waXhob3N0XC50by
QvLAogICAgcGF0aDogL15cL3Nob3dcLy8sCiAgfSwKICBhc3luYyByZWFkeSAoKSB7CiAgICBfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ucmVtb3ZlKCdpZnJh
bWUsICNhZCcpOwogICAgbGV0IG8gPSBfQURTQll
QQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnI2FsbCcpOw
ogICAgaWYgKG8pIHsKICAgICAgby5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICB9CiAgICBvID0gT2JqZWN0K
F9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNz
aG93X2ltYWdlLCAjaW1hZ2UnKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2Uoby5zcmMpOwogIH0sCn0pOwpfQURTQllQQV
NTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogI
HJ1bGU6IHsKICAgIGhvc3Q6IC9eKHd3d1wuKT9waXhyb3V0ZVwuY29tJC8sCiAgfSwKICBhc3luYyByZWFk
eSAoKSB7CiAgICBjb25zdCBvID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNkb3dubG9hZF9ib3ggaW1nI2ltZ3ByZXZpZXcucGljJyk7Ci
AgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fW
yIkIl0ub3BlbkltYWdlKG8uc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnB
peHh4ZWxzXC5jYyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaW1nID0gX0FEU0JZUE
FTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoJyNtYWluLWltY
WdlJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyIkIl0ub3BlbkltYWdlKGltZy5kYXRhc2V0LmZ1bGwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJ
fTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bG
U6IHsKICAgIGhvc3Q6IFsKICAgICAgL15wcm50c2NyXC5jb20kLywKICAgICAgL15wcm50XC5zYyQvLAogI
CAgXSwKICAgIHBhdGg6IC9cLmh0bWwkLywKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiB
bCiAgICAgIC9ecHJudHNjclwuY29tJC8sCiAgICAgIC9ecHJudFwuc2MkLywKICAgIF0sCiAgfSwKICBhc3
luYyByZWFkeSAoKSB7CiAgICBjb25zdCBpID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XR
UJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJyNzY3JlZW5zaG90LWltYWdlJyk7CiAgICBhd2Fp
dCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3B
lbkltYWdlKGkuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1
JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnByb25waWNcL
m9yZyQvLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgdXJsQmFzZUltZyA9IE9iamVjdChf
QURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCd0YWJ
sZS5uZXdfdGFibGUyOm50aC1jaGlsZCgxKSBpbWcubGluaycpOwogICAgY29uc3QgYmFzZVVybCA9IHVybE
Jhc2VJbWcuc3JjLnNwbGl0KCd0aF8nKVswXTsKICAgIGNvbnN0IGltZyA9IE9iamVjdChfQURTQllQQVNTR
VJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCd0YWJsZS5uZXdfdGFi
bGUyOm50aC1jaGlsZCgyKSBpbWcubGluaycpOwogICAgY29uc3QgdXJsID0gYmFzZVVybCArIGltZy5zcmM
uc3BsaXQoJ3RoXycpWzFdOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZSh1cmwpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfT
kFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6
IHsKICAgIGhvc3Q6IC9ecXJycm9cLmNvbSQvLAogICAgcGF0aDogL14oXC9pbWFnZXNcLy4rKVwuaHRtbCQ
vLAogIH0sCiAgYXN5bmMgc3RhcnQgKG0pIHsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX1
9XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UobS5wYXRoWzFdKTsKICB9LAp9K
TsKX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJl
Z2lzdGVyKHsKICBydWxlOiB7CiAgICBob3N0OiAvXnJhZGlrYWxcLnJ1JC8sCiAgICBwYXRoOiAvXlwvYml
nXC8vLAogIH0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaSA9IF9BRFNCWVBBU1NFUl9OQU1FU1
BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcuYmFzZS1wYWdlX2NlbnRlciA+I
GRpdjpudGgtY2hpbGQoMikgPiBpbWc6bnRoLWNoaWxkKDEpJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTs
KICB9LAp9KTsKKGZ1bmN0aW9uICgpIHsKICBjb25zdCBkZWZhdWx0QWN0aW9uID0gX0FEU0JZUEFTU0VSX0
5BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnBhcnRpYWwoYWN0aW9uLCAnI
2NvbnRpbnVldG9pbWFnZSA+IGZvcm0gaW5wdXQnLCAnaW1nW2NsYXNzXj1jZW50cmVkXScpOwogIF9BRFNC
WVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih
7CiAgICBydWxlOiBbCiAgICAgIHsKICAgICAgICBob3N0OiBbCiAgICAgICAgICAvXihpbWFnZWNvcm58aW
1hZ2VkZWNvZGV8aW1hZ2Vrb3xpbWFnZXNodG9ybXxpbWFnZXJhdmVuKVwuY29tJC8sCiAgICAgICAgICAvX
ihpbWdpY3l8aW1nc2F2dnl8aW1ndHphcnxpbWd0b3JuYWRvfGltZ2tpY2tzfGltZzJzaGFyZSlcLmNvbSQv
LAogICAgICAgICAgL14oaW1ndHJpYWx8aW1ncmVwdXRhfGltZ2ZhcHBlcnxpbWdwYXJ0fGltZ2JhbGFuYXx
pbWdqYXp6KVwuY29tJC8sCiAgICAgICAgICAvXihob3N0dXJpbWFnZXxncmVhc3lpbWFnZXxkYW1pbWFnZX
x4eHhzY3JlZW5zfHdwYzh8ZGltdHVzKVwuY29tJC8sCiAgICAgICAgICAvXihpbWdpeHh4fGltZ2hpdHxpb
WdtYWlufGltZy1wbGFuZXR8aW1nLXBheSlcLmNvbSQvLAogICAgICAgICAgL14odGluaXpvfGVyaW1nZXxu
aW16c2hhcmV8aGRtb3phfGltZ2Rhd2drbnV0dHopXC5jb20kLywKICAgICAgICAgIC9eKHd3d1wuKT8oaW1
nbGVtb258aW1hZ2VibGlua3N8bXVsdGlpbWcpXC5jb20kLywKICAgICAgICAgIC9eKGl8eHh4KVwuaGVudG
FpeW91dHViZVwuY29tJC8sCiAgICAgICAgICAvXihpXC4pP2ltZ3NlZWRzP1wuY29tJC8sCiAgICAgICAgI
CAvXmhvdGltYWdlc1wuZXUkLywKICAgICAgICAgIC8oXnxcLik1NTg4OFwuZXUkLywKICAgICAgICAgIC9e
KGltZ3NlcnZlfGltZ3Byb2plY3R8aW1ncHl0aG9ufGltZ3BpeHxuYXVnaHR5Z2F0ZXxnYWxsZXJ5Y2xvdWR
8eHhpbWd8aW1nLXZpZXcpXC5uZXQkLywKICAgICAgICAgIC9eKHh4eHdlYmRseHh4fHRlZW5zaG90fGltYW
dlb258aW1hZ2V0ZWFtfHZveWV1cmltYWdlfHRlZW5pbWFnZXxtZWdhaW1hZ2UpXC5vcmckLywKICAgICAgI
CAgIC9eKGltZ3N0dWRpb3xpbWdzcG90KVwub3JnJC8sCiAgICAgICAgICAvXihwaWN6fHVucG9ybilcLnNp
dGUkLywKICAgICAgICAgIC9ecGljXC5ob3RpbWdcLnNpdGUkLywKICAgICAgICAgIC9eKGRhbGV6b2J1eHx
lY29pbWFnZXN8dXZvbmFoYXplKVwueHl6JC8sCiAgICAgICAgICAvXnh4eFwuKHNleGV4fHBvcm5zY3JlZW
4pXC54eXokLywKICAgICAgICAgIC9eYWNpZGltZ1wuY2MkLywKICAgICAgICAgIC9edW5kZXJwaWNcLmNsd
WIkLywKICAgICAgICAgIC9eaW1nY2xvdWRcLmNvJC8sCiAgICAgICAgICAvXmRhcnBpeFwuZ2EkLywKICAg
ICAgICAgIC9eKHBvcC1pbWd8YWRzLWltZylcLmluZm8kLywKICAgICAgICAgIC9eY3Vib25hd1wubWwkLyw
KICAgICAgICAgIC9eKGRvbWFpbmt8cG9ybm8tcGlyYXQpXC5ydSQvLAogICAgICAgICAgL15pcGljdHVyZV
wuc3UkLywKICAgICAgICAgIC9eaW1hZ2VzcHVibGljXC50ayQvLAogICAgICAgICAgL15zXC5pbWdob3N0X
C50b3AkLywKICAgICAgICAgIC9ed3d3XC5ob3RpbWFnZVwudWskLywKICAgICAgICAgIC9ecGl4dXBcLnVz
JC8sCiAgICAgICAgXSwKICAgICAgICBwYXRoOiAvXC9pbWctLipcLmh0bWwvLAogICAgICB9LAogICAgICB
7CiAgICAgICAgaG9zdDogL14oaGVudGFpLXBvcHxzdGFyLWhlbnRhaSlcLmNvbSQvLAogICAgICAgIHBhdG
g6IC9eXC9bdGldXC9pbWctLipcLmh0bWwvLAogICAgICB9LAogICAgICB7CiAgICAgICAgaG9zdDogL15pb
WdraW5nXC5jbyQvLAogICAgICAgIHBhdGg6IC9eXC9pbWc0Py0uKlwuaHRtbC8sCiAgICAgIH0sCiAgICAg
IHsKICAgICAgICBob3N0OiAvXmltYVwuZ3kkLywKICAgICAgICBwYXRoOiAvXlwvaVwvLiskLywKICAgICA
gfSwKICAgICAgewogICAgICAgIGhvc3Q6IC9ecGljbW96YVwuY29tJC8sCiAgICAgICAgcGF0aDogL15cL1
wvP2ltZy0uKlwuaHRtbCQvLAogICAgICB9LAogICAgXSwKICAgIHJlYWR5OiBkZWZhdWx0QWN0aW9uLAogI
H0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8i
XS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eaW1ncmF0XC5jb20kLywKICAgICAgcGF
0aDogL15cL2ltZy0uKlwuaHRtbC8sCiAgICB9LAogICAgcmVhZHk6IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0
VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5wYXJ0aWFsKGFjdGlvbiwgJyNjbG9zZScsI
CcjbWFpbl9pbWFnZSBpbWcuY2VudGVyLWJsb2NrLmltZy1yZXNwb25zaXZlJyksCiAgfSk7CiAgX0FEU0JZ
UEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHs
KICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL14od3d3XC4pP2ltZ2ZyZXNoXC5pbmZvJC8sCiAgICAgIHBhdG
g6IC9eXC9pbWctLipcLmh0bWwkLywKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7CiAgICAgIF9BRFNCW
VBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5yZW1vdmUoJ2lm
cmFtZScpOwogICAgICBsZXQgbm9kZSA9IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9
SVEVEX01PRFVMRV8wX19bIiQiXS4kKCcjY29udGludWV0b2ltYWdlID4gZm9ybSBpbnB1dCcpOwogICAgIC
BpZiAobm9kZSkgewogICAgICAgIG5vZGUuY2xpY2soKTsKICAgICAgICBub2RlLmNsaWNrKCk7CiAgICAgI
CAgcmV0dXJuOwogICAgICB9CiAgICAgIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIiQiXS5yZXNldENvb2tpZXMoKTsKICAgICAgbm9kZSA9IF9BRFNCWVBBU1NFUl9
OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS4kKCdpbWdbY2xhc3NePWNlbn
RyZWRdJyk7CiAgICAgIGlmIChub2RlKSB7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDR
V9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShub2RlLnNyYyk7CiAgICAg
ICAgcmV0dXJuOwogICAgICB9CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5wb3N0KHdpbmRvdy5sb2NhdGlvbi5ocmVmLnRvU3RyaW5nKC
ksIHsKICAgICAgICBjdGk6IDEsCiAgICAgICAgcmVmOiAnJywKICAgICAgICByYzogMSwKICAgICAgICByc
DogMSwKICAgICAgICBidDogMCwKICAgICAgICBidzogJ2VkZ2UnLAogICAgICB9KTsKICAgICAgd2luZG93
LmxvY2F0aW9uLnJlbG9hZCgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0V
CUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogWwogICAgICB7Ci
AgICAgICAgaG9zdDogL15pbWdraW5nXC5jbyQvLAogICAgICAgIHBhdGg6IC9eXC9pbWdzLS4qXC5odG1sL
ywKICAgICAgfSwKICAgICAgewogICAgICAgIGhvc3Q6IC9eKGltZ2tpbmdzfGltYWdlcmFyKVwuY29tJC8s
CiAgICAgICAgcGF0aDogL15cL2ltZy0uKlwuaHRtbC8sCiAgICAgIH0sCiAgICBdLAogICAgYXN5bmMgcmV
hZHkgKCkgewogICAgICBjb25zdCB1cmwgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyIkIl0ud2luZG93LmxpbmtpZDsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX
05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZSh1cmwpOwog
ICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEV
fMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiAvXmltZ2tpbmdzXC5jb20kLy
wKICAgICAgcGF0aDogL15cL2ltZzItLipcLmh0bWwvLAogICAgfSwKICAgIHJlYWR5OiBkZWZhdWx0QWN0a
W9uLAogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eaW1ncHJpbWVcLmNvbSQvLAo
gICAgICBwYXRoOiAvXlwvaW1nYS11XC8oLispXC5qcGVnXC5odG1sLywKICAgIH0sCiAgICBhc3luYyBzdG
FydCAoKSB7CiAgICAgIGNvbnN0IHBhdGggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKCcvaW1nY
S11JywgJy91JykucmVwbGFjZSgnLmh0bWwnLCAnJyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1F
U1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhwYXRoKTsKICAgIH0
sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1
siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15wb3JueWZhcFwuY29tJC8sCiAgI
CAgIHBhdGg6IC9cL3BpY1wvLywKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7CiAgICAgIGNvbnN0IHAg
PSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdKSgnaW1nI215SW1nJyk7CiAgICAgIGF3YW
l0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vc
GVuSW1hZ2UocC5zcmMpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0OiA
vXmZ1bmltZ1wubmV0JC8sCiAgICAgIHBhdGg6IC9cL2ltZy0uKlwuaHRtbC8sCiAgICB9LAogICAgYXN5bm
Mgc3RhcnQgKCkgewogICAgICBjb25zdCBwYXRoID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgnL
2ltZy0nLCAnL2ltZzMtJyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhwYXRoKTsKICAgIH0sCiAgfSk7CiAgX0FEU0J
ZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKH
sKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15mdW5pbWdcLm5ldCQvLAogICAgICBwYXRoOiAvXC9pbWczL
S4qXC5odG1sLywKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7CiAgICAgIGNvbnN0IGkgPSBPYmplY3Qo
X0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2N
vbnRpbnVldG9pbWFnZSBpbWcnKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQl
BBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgICB9LAogIH0pOwogI
F9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdp
c3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eMjJwaXh4XC54eXokLywKICAgICAgcGF0aDogL15
cL2lhLVtpb11cLyguKylcLmpwZWdcLmh0bWwvLAogICAgfSwKICAgIGFzeW5jIHN0YXJ0ICgpIHsKICAgIC
AgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2UoJy9pYS0nLCAnLycpLnJlcGxhY
2UoJy5odG1sJywgJycpOwogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkxpbmsocGF0aCk7CiAgICB9LAogIH0pOwogIF9BRFNCWVB
BU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7Ci
AgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eMjJwaXh4XC54eXokLywKICAgICAgcGF0aDogL15cL3gtb1wvK
C4rKVwuanBlZ1wuaHRtbC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQgKCkgewogICAgICBjb25zdCBwYXRo
ID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgnL3gtJywgJy8nKS5yZXBsYWNlKCcuaHRtbCcsICc
nKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siJCJdLm9wZW5MaW5rKHBhdGgpOwogICAgfSwKICB9KTsKICAgIF9BRFNCWVBBU1NFUl9OQU1FU
1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7
CiAgICAgIGhvc3Q6IC9eMjJwaXh4XC54eXokLywKICAgICAgcGF0aDogL15cL3ktb1wvKC4rKVwuanBlZ1w
uaHRtbC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQgKCkgewogICAgICBjb25zdCBwYXRoID0gd2luZG93Lm
xvY2F0aW9uLmhyZWYucmVwbGFjZSgnL3ktJywgJy8nKS5yZXBsYWNlKCcuaHRtbCcsICcnKTsKICAgICAgY
XdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJd
Lm9wZW5MaW5rKHBhdGgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEF
DS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogewogICAgICBob3N0Oi
AvXjIycGl4eFwueHl6JC8sCiAgICAgIHBhdGg6IC9eXC94LWlcLyguKylcLmpwZWdcLmh0bWwvLAogICAgf
SwKICAgIGFzeW5jIHN0YXJ0ICgpIHsKICAgICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVm
LnJlcGxhY2UoJy94JywgJy95Jyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuTGluayhwYXRoKTsKICAgIH0sCiAgfSk7CiAgX0
FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzd
GVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL150cnVlaW1nXC54eXokLywKICAgICAgcGF0aDogL15c
L3UtYlwvKC4rKVwuanBlZ1wuaHRtbC8sCiAgICB9LAogICAgYXN5bmMgc3RhcnQgKCkgewogICAgICBjb25
zdCBwYXRoID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgnL3UtJywgJy8nKS5yZXBsYWNlKCcuaH
RtbCcsICcnKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKHBhdGgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJf
TkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnV
sZTogWwogICAgICB7CiAgICAgICAgaG9zdDogL15pbWFnZXJhclwuY29tJC8sCiAgICAgICAgcGF0aDogL1
5cL2ltZzItLywKICAgICAgfSwKICAgICAgewogICAgICAgIGhvc3Q6IC9eaW1na2luZ1wuY28kLywKICAgI
CAgICBwYXRoOiAvXlwvaW1nW3YzXS0uKlwuaHRtbC8sCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBob3N0
OiAvXnBpY3N0YXRlXC5jb20kLywKICAgICAgICBwYXRoOiAvXlwvdmlld1wvZnVsbFwvLiovLAogICAgICB
9LAogICAgXSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQV
NTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCdpbWdbYWx0XScpO
wogICAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyIkIl0ub3BlbkltYWdlKGkuc3JjKTsKICAgIH0sCiAgfSk7CiAgX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICAgIHJ1bGU6IHsKIC
AgICAgaG9zdDogL15pbWdwcmltZVwuY29tJC8sCiAgICAgIHBhdGg6IC9eXC9pbWcuKlwuaHRtbCQvLAogI
CAgfSwKICAgIGFzeW5jIHJlYWR5ICgpIHsKICAgICAgbGV0IGEgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNF
X19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnI2NvbnRpbnVldG9pbWFnZSBhJyk7CiA
gICAgIGlmIChhKSB7CiAgICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5MaW5rKGEuaHJlZik7CiAgICAgICAgcmV0dXJuOwogICAgI
CB9CiAgICAgIGEgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siJCJdKSgnaW1nW2FsdF0nKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEF
DRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShhLnNyYyk7CiAgICB9LA
ogIH0pOwogIF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bI
l8iXS5yZWdpc3Rlcih7CiAgICBydWxlOiB7CiAgICAgIGhvc3Q6IC9eaW14XC50byQvLAogICAgICBwYXRo
OiBbCiAgICAgICAgL15cL2ltZy0uKlwuaHRtbC8sCiAgICAgICAgL15cL2lcLy4qLywKICAgICAgXSwKICA
gIH0sCiAgICByZWFkeTogX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVU
xFXzBfX1siXyJdLnBhcnRpYWwoYWN0aW9uLCAnI2NvbnRpbnVlYnV0dG9uLCAjY29udGludWV0b2ltYWdlI
GlucHV0W3R5cGU9InN1Ym1pdCJdJywgJ2ltZ1tjbGFzc149Y2VudHJlZF0nKSwKICB9KTsKICBfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewo
gICAgcnVsZTogewogICAgICBob3N0OiBbCiAgICAgICAgL14od3d3XC4pP2ltZ2RyaXZlXC5uZXQkLywKIC
AgICAgICAvXih3d3dcLik/KGltZ3RheGl8aW1nd2FsbGV0fGltZ2FkdWx0KVwuY29tJC8sCiAgICAgIF0sC
iAgICAgIHBhdGg6IC9eXC9pbWctLipcLmh0bWwkLywKICAgIH0sCiAgICBhc3luYyByZWFkeSAoKSB7CiAg
ICAgIGxldCBtID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01
PRFVMRV8wX19bIiQiXSkoJ21ldGFbcHJvcGVydHk9Im9nOmltYWdlIl0nKTsKICAgICAgbSA9IG0uY29udG
VudC5yZXBsYWNlKCdzbWFsbCcsICdiaWcnKTsKICAgICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDR
V9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShtKTsKICAgIH0sCiAgfSk7
CiAgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJ
lZ2lzdGVyKHsKICAgIHJ1bGU6IHsKICAgICAgaG9zdDogL15pbWFnZXNjYW5uZXJcLmNjJC8sCiAgICAgIH
BhdGg6IC9eXC8uKlwuanBnXC5odG1sLywKICAgIH0sCiAgICBhc3luYyBzdGFydCAoKSB7CiAgICAgIGNvb
nN0IHBhdGggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKCcuaHRtbCcsICcnKTsKICAgICAgYXdh
aXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLm9
wZW5MaW5rKHBhdGgpOwogICAgfSwKICB9KTsKICBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS1
9JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewogICAgcnVsZTogJ2h0dHBzOi8vaW1nY2xvd
WQucHcvaW1hZ2UvKicsCiAgICBhc3luYyByZWFkeSAoKSB7CiAgICAgIGNvbnN0IGwgPSBPYmplY3QoX0FE
U0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnbGlua1t
yZWw9ImltYWdlX3NyYyJdJyk7CiAgICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UobC5ocmVmKTsKICAgIH0sCiAgfSk7CiAgY
XN5bmMgZnVuY3Rpb24gYWN0aW9uIChmaXJzdFNlbGVjdG9yLCBzZWNvbmRTZWxlY3RvcikgewogICAgX0FE
U0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLnJlbW92ZSg
naWZyYW1lLCAjYWRibG9ja19kZXRlY3QsIC5wb3B1cE92ZXJsYXknKTsKICAgIGxldCBub2RlID0gX0FEU0
JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdLiQoZmlyc3RTZ
WxlY3Rvcik7CiAgICBpZiAobm9kZSkgewogICAgICBub2RlID0gZmluZEZpcnN0Rm9ybShub2RlKTsKICAg
ICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBub2RlLm91dGVySFRNTDsKICAgICAgbm9kZSA9IE9iamV
jdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKC
dmb3JtIGlucHV0Jyk7CiAgICAgIG5vZGUuY2xpY2soKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgbm9kZ
SA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyIkIl0pKHNlY29uZFNlbGVjdG9yKTsKICAgIGF3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2Uobm9kZS5zcmMpOwogIH0KICBmdW5jdG
lvbiBmaW5kRmlyc3RGb3JtIChjaGlsZCkgewogICAgd2hpbGUgKGNoaWxkICYmIGNoaWxkLmxvY2FsTmFtZ
SAhPT0gJ2Zvcm0nKSB7CiAgICAgIGNoaWxkID0gY2hpbGQucGFyZW50RWxlbWVudDsKICAgIH0KICAgIHJl
dHVybiBjaGlsZDsKICB9Cn0pKCk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEV
EX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdDogL15waWNcLnMtamF2XC
5jb20kLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGltZyA9IE9iamVjdChfQURTQllQQ
VNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0pKCcud3AtcG9zdC1p
bWFnZScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9
EVUxFXzBfX1siJCJdLm9wZW5JbWFnZShpbWcuc3JjKTsKICB9LAp9KTsKX0FEU0JZUEFTU0VSX05BTUVTUE
FDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siXyJdLnJlZ2lzdGVyKHsKICBydWxlOiBbCiAgI
CAnaHR0cDovL3NjcmVlbmxpc3QucnUvZGV0YWlscy5waHA/aW1hZ2VfaWQ9KicsCiAgICAnaHR0cDovL3d3
dy5pbWFnZW5ldHouZGUvKi8qLmh0bWwnLAogIF0sCiAgYXN5bmMgcmVhZHkgKCkgewogICAgY29uc3QgaW1
nID0gT2JqZWN0KF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX1
9bIiQiXSkoJyNwaWN0dXJlJyk7CiAgICBhd2FpdCBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS
19JTVBPUlRFRF9NT0RVTEVfMF9fWyIkIl0ub3BlbkltYWdlKGltZy5zcmMpOwogIH0sCn0pOwpfQURTQllQ
QVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0ZXIoewo
gIHJ1bGU6ICdodHRwOi8vd3d3LnN1YmlyaW1hZ2VuZXMuY29tLyouaHRtbCcsCiAgYXN5bmMgcmVhZHkgKC
kgewogICAgY29uc3QgaSA9IE9iamVjdChfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPU
lRFRF9NT0RVTEVfMF9fWyIkIl0pKCcjSW1hZ2VuVmlzdWFsaXphZGEnKTsKICAgIGF3YWl0IF9BRFNCWVBB
U1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcGVuSW1hZ2UoaS5
zcmMpOwogIH0sCn0pOwpfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTE
VfMF9fWyJfIl0ucmVnaXN0ZXIoewogIHJ1bGU6ICdodHRwOi8vdGlueXBpYy5jb20vdmlldy5waHA/cGljP
SonLAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVT
UEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2ltZ0VsZW1lbnQnKTsKICAgIGF
3YWl0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS
5vcGVuSW1hZ2UoaS5zcmMpOwogIH0sCn0pOwpfQ
URTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJfIl0ucmVnaXN0
ZXIoewogIHJ1bGU6IHsKICAgIGhvc3Q6IC9ed3d3XC50dXJib2ltYWdlaG9zdFwuY29tJC8sCiAgICBwYXR
oOiAvXlwvcFwvLywKICB9LAogIGFzeW5jIHJlYWR5ICgpIHsKICAgIGNvbnN0IGkgPSBPYmplY3QoX0FEU0
JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siJCJdKSgnI3VJbWFnZ
ScpOwogICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siJCJdLm9wZW5JbWFnZShpLnNyYyk7CiAgfSwKfSk7Cl9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19
XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIl8iXS5yZWdpc3Rlcih7CiAgcnVsZTogewogICAgaG9zdD
ogWwogICAgICAvXnhhb3V0Y2hvdWNcLmxpdmUkLywKICAgICAgL154eHhcLmZvcGtvZGlha1wuc2l0ZSQvL
AogICAgICAvXmJsYW1lbGVzc1wud29yayQvLAogICAgXSwKICAgIHBhdGg6IC9eXC9pbWctLywKICB9LAog
IGFzeW5jIHJlYWR5ICgpIHsKICAgIGlmIChkb2N1bWVudC5yZWZlcnJlciA9PSBkb2N1bWVudC5sb2NhdGl
vbi5ocmVmKSB7CiAgICAgIGxldCBpbWcgPSBfQURTQllQQVNTRVJfTkFNRVNQQUNFX19fV0VCUEFDS19JTV
BPUlRFRF9NT0RVTEVfMF9fWyIkIl0uJCgnI2NvbnRhaW5lciA+IGEgPiBpbWcnKTsKICAgICAgaWYgKCFpb
WcpIHsKICAgICAgICBpbWcgPSBPYmplY3QoX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siJCJdKSgnI2NvbnRhaW5lciA+IGltZycpOwogICAgICB9CiAgICAgIGF3YWl
0IF9BRFNCWVBBU1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXS5vcG
VuSW1hZ2UoaW1nLnNyYyk7CiAgICB9IGVsc2UgewogICAgICBjb25zdCBmID0gT2JqZWN0KF9BRFNCWVBBU
1NFUl9OQU1FU1BBQ0VfX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIiQiXSkoJ2Zvcm0nKTsKICAg
ICAgYXdhaXQgX0FEU0JZUEFTU0VSX05BTUVTUEFDRV9fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1s
iJCJdLm9wZW5MaW5rKGYuYWN0aW9uLCB7IAogICAgICAgIHBvc3Q6IHsKICAgICAgICAgIGltZ0NvbnRpbn
VlOiAnQ29udGludWUgdG8gaW1hZ2UgLi4uJywKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogIH0KfSk7C
iB9KSwKIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKInVzZSBzdHJpY3QiOwpfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk
7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIl8iLCBmdW5jdGlvbigpIH
sgcmV0dXJuIF87IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICIkI
iwgZnVuY3Rpb24oKSB7IHJldHVybiAkOyB9KTsKIHZhciB1dGlsX2FqYXhfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CiB2YXIgdXRpbF9jb29raWVfX1dFQlBBQ0t
fSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7CiB2YXIgdXRpbF9jb3JlX1
9XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOwogdmFyIHV0a
WxfZGlzcGF0Y2hlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyKTsKIHZhciB1dGlsX2RvbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3J
lcXVpcmVfXygxMCk7CiB2YXIgdXRpbF9pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fID0gX1
93ZWJwYWNrX3JlcXVpcmVfXygxMSk7CiB2YXIgdXRpbF9saW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V82X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKIHZhciB1dGlsX2xvZ2dlcl9fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfN19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTsKIHZhciB1dGlsX21pc2NfX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOwogdmFyIHV0aWxfcG
xhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7C
mNvbnN0IF8gPSB7CiAgQWRzQnlwYXNzZXJFcnJvcjogdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX19bIkFkc0J5cGFzc2VyRXJyb3IiXSwKICBldmlsOiB1dGlsX21pc2NfX1dFQlBBQ0tfSU1QT1J
URURfTU9EVUxFXzhfX1siZXZpbCJdLAogIGZpbmQ6IHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfMl9fWyJmaW5kIl0sCiAgZm9yRWFjaDogdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMR
V8yX19bImZvckVhY2giXSwKICBnZW5lcmF0ZVJhbmRvbUlQOiB1dGlsX21pc2NfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzhfX1siZ2VuZXJhdGVSYW5kb21JUCJdLAogIGluZm86IHV0aWxfbG9nZ2VyX19XRUJQQUN
LX0lNUE9SVEVEX01PRFVMRV83X19bImluZm8iXSwKICBub25lOiB1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1
JURURfTU9EVUxFXzJfX1sibm9uZSJdLAogIHBhcnRpYWw6IHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFR
F9NT0RVTEVfMl9fWyJwYXJ0aWFsIl0sCiAgcmVnaXN0ZXI6IHV0aWxfZGlzcGF0Y2hlcl9fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfM19fWyJyZWdpc3RlciJdLAogIHRyeUV2ZXJ5OiB1dGlsX2NvcmVfX1dFQlBBQ0t
fSU1QT1JURURfTU9EVUxFXzJfX1sidHJ5RXZlcnkiXSwKICB3YWl0OiB1dGlsX2NvcmVfX1dFQlBBQ0tfSU
1QT1JURURfTU9EVUxFXzJfX1sid2FpdCJdLAogIHdhcm46IHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNUE9SV
EVEX01PRFVMRV83X19bIndhcm4iXSwKfTsKZnVuY3Rpb24gJCAoc2VsZWN0b3IsIGNvbnRleHQpIHsKICBy
ZXR1cm4gT2JqZWN0KHV0aWxfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bInF1ZXJ5U2VsZWN
0b3IiXSkoc2VsZWN0b3IsIGNvbnRleHQpOwp9CiQuJCA9IHV0aWxfZG9tX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV80X19bInF1ZXJ5U2VsZWN0b3JPck51bGwiXTsKJC4kJCA9IHV0aWxfZG9tX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV80X19bInF1ZXJ5U2VsZWN0b3JBbGwiXTsKJC5ibG9jayA9IHV0aWxfZG9tX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV80X19bImJsb2NrIl07CiQuZ2V0ID0gdXRpbF9hamF4X19XRUJQQUNLX0l
NUE9SVEVEX01PRFVMRV8wX19bImdldCJdOwokLmdldENvb2tpZSA9IHV0aWxfY29va2llX19XRUJQQUNLX0
lNUE9SVEVEX01PRFVMRV8xX19bImdldENvb2tpZSJdOwokLm51a2UgPSB1dGlsX21pc2NfX1dFQlBBQ0tfS
U1QT1JURURfTU9EVUxFXzhfX1sibnVrZSJdOwokLm9wZW5JbWFnZSA9IHV0aWxfaW1hZ2VfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfX1sib3BlbkltYWdlIl07CiQub3BlbkxpbmsgPSB1dGlsX2xpbmtfX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sib3BlbkxpbmsiXTsKJC5wb3N0ID0gdXRpbF9hamF4X19XRUJQQU
NLX0lNUE9SVEVEX01PRFVMRV8wX19bInBvc3QiXTsKJC5yZW1vdmUgPSB1dGlsX2RvbV9fV0VCUEFDS19JT
VBPUlRFRF9NT0RVTEVfNF9fWyJyZW1vdmUiXTsKJC5yZW1vdmVBbGxUaW1lciA9IHV0aWxfbWlzY19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJyZW1vdmVBbGxUaW1lciJdOwokLnJlc2V0Q29va2llcyA9IHV
0aWxfY29va2llX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJlc2V0Q29va2llcyJdOwokLnNlYX
JjaEZyb21TY3JpcHRzID0gdXRpbF9kb21fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1sic2VhcmNoR
nJvbVNjcmlwdHMiXTsKJC5zZXRDb29raWUgPSB1dGlsX2Nvb2tpZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJzZXRDb29raWUiXTsKJC50b0RPTSA9IHV0aWxfZG9tX19XRUJQQUNLX0lNUE9SVEVEX01PRFV
MRV80X19bInRvRE9NIl07CiQud2luZG93ID0gdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0
RVTEVfOV9fWyJ1c3ciXTsKIH0pLAogKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX
193ZWJwYWNrX3JlcXVpcmVfXykgewoidXNlIHN0cmljdCI7Cl9fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCA
iZ2V0IiwgZnVuY3Rpb24oKSB7IHJldHVybiBnZXQ7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2
VicGFja19leHBvcnRzX18sICJwb3N0IiwgZnVuY3Rpb24oKSB7IHJldHVybiBwb3N0OyB9KTsKIHZhciB1d
GlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7
CiB2YXIgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3J
lcXVpcmVfXygzKTsKIHZhciB1dGlsX2xvZ2dlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX1
93ZWJwYWNrX3JlcXVpcmVfXyg1KTsKY2xhc3MgQWpheEVycm9yIGV4dGVuZHMgdXRpbF9jb3JlX19XRUJQQ
UNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkFkc0J5cGFzc2VyRXJyb3IiXSB7CiAgY29uc3RydWN0b3IgKG1l
dGhvZCwgdXJsLCBkYXRhLCBoZWFkZXJzLCBzdGF0dXMsIHJlc3BvbnNlKSB7CiAgICBzdXBlcihgJHttZXR
ob2R9ICR7dXJsfSBnb3QgJHtzdGF0dXN9YCk7CiAgICB0aGlzLl9tZXRob2QgPSBtZXRob2Q7CiAgICB0aG
lzLl91cmwgPSB1cmw7CiAgICB0aGlzLl9kYXRhID0gZGF0YTsKICAgIHRoaXMuX2hlYWRlcnMgPSBoZWFkZ
XJzOwogICAgdGhpcy5fc3RhdHVzID0gc3RhdHVzOwogICAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZTsK
ICB9CiAgZ2V0IG5hbWUgKCkgewogICAgcmV0dXJuICdBamF4RXJyb3InOwogIH0KICBnZXQgbWV0aG9kICg
pIHsKICAgIHJldHVybiB0aGlzLl9tZXRob2Q7CiAgfQogIGdldCB1cmwgKCkgewogICAgcmV0dXJuIHRoaX
MuX3VybDsKICB9CiAgZ2V0IGRhdGEgKCkgewogICAgcmV0dXJuIHRoaXMuX2RhdGE7CiAgfQogIGdldCBoZ
WFkZXJzICgpIHsKICAgIHJldHVybiB0aGlzLl9oZWFkZXJzOwogIH0KICBnZXQgc3RhdHVzICgpIHsKICAg
IHJldHVybiB0aGlzLl9zdGF0dXM7CiAgfQogIGdldCByZXNwb25zZSAoKSB7CiAgICByZXR1cm4gdGhpcy5
fcmVzcG9uc2U7CiAgfQp9CmZ1bmN0aW9uICogZmxhdHRlbk9iamVjdCAob2JqZWN0KSB7CiAgaWYgKCFvYm
plY3QpIHsKICAgIHJldHVybjsKICB9CiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob
2JqZWN0KSkgewogICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsKICAgICAgZm9yIChjb25zdCB2XyBvZiB2
KSB7CiAgICAgICAgeWllbGQgW1trLCAnJ10sIHZfXTsKICAgICAgfQogICAgfSBlbHNlIGlmICh0eXBlb2Y
gdiA9PT0gJ29iamVjdCcpIHsKICAgICAgZm9yIChjb25zdCBba18sIHZfXSBvZiBmbGF0dGVuT2JqZWN0KH
YpKSB7CiAgICAgICAgeWllbGQgW1trLCAuLi5rX10sIHZfXTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgI
CAgeWllbGQgW1trXSwgdl07CiAgICB9CiAgfQp9CmZ1bmN0aW9uIGZsYXR0ZW5LZXkgKGtleUxpc3QpIHsK
ICBjb25zdCBbaGVhZCwgLi4ucmVzdF0gPSBrZXlMaXN0OwogIHJldHVybiBgJHtoZWFkfSR7cmVzdC5tYXA
oXyA9PiBgWyR7X31dYCl9YDsKfQpmdW5jdGlvbiBkZWVwSm9pbiAocHJlZml4LCBvYmplY3QpIHsKICBjb2
5zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsKICBjb25zdCBtYXBwZWQgP
SBPYmplY3QodXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm1hcCJdKShrZXlzLCAo
aykgPT4gewogICAgY29uc3QgdiA9IG9iamVjdFtrXTsKICAgIGNvbnN0IGtleSA9IGAke3ByZWZpeH1bJHt
rfV1gOwogICAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0JykgewogICAgICByZXR1cm4gZGVlcEpvaW4oa2
V5LCB2KTsKICAgIH0KICAgIGNvbnN0IHRtcCA9IFtrZXksIHZdLm1hcChlbmNvZGVVUklDb21wb25lbnQpO
wogICAgcmV0dXJuIHRtcC5qb2luKCc9Jyk7CiAgfSk7CiAgcmV0dXJuIG1hcHBlZC5qb2luKCcmJyk7Cn0K
ZnVuY3Rpb24gdG9RdWVyeSAoZGF0YSkgewogIGNvbnN0IHR5cGUgPSB0eXBlb2YgZGF0YTsKICBpZiAoZGF
0YSA9PT0gbnVsbCB8fCAodHlwZSAhPT0gJ3N0cmluZycgJiYgdHlwZSAhPT0gJ29iamVjdCcpKSB7CiAgIC
ByZXR1cm4gJyc7CiAgfQogIGlmICh0eXBlID09PSAnc3RyaW5nJykgewogICAgcmV0dXJuIGRhdGE7CiAgf
QogIGlmIChkYXRhIGluc3RhbmNlb2YgU3RyaW5nKSB7CiAgICByZXR1cm4gZGF0YS50b1N0cmluZygpOwog
IH0KICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZGF0YSk7CiAgcmV0dXJuIE9
iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibWFwIl0pKGtleXMsIChrKS
A9PiB7CiAgICBjb25zdCB2ID0gZGF0YVtrXTsKICAgIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHsKI
CAgICAgcmV0dXJuIGRlZXBKb2luKGssIHYpOwogICAgfQogICAgY29uc3QgdG1wID0gW2ssIHZdLm1hcChl
bmNvZGVVUklDb21wb25lbnQpOwogICAgcmV0dXJuIHRtcC5qb2luKCc9Jyk7CiAgfSkuam9pbignJicpOwp
9CmZ1bmN0aW9uIHRvRm9ybSAoZGF0YSkgewogIGNvbnN0IHR5cGUgPSB0eXBlb2YgZGF0YTsKICBpZiAoZG
F0YSA9PT0gbnVsbCB8fCAodHlwZSAhPT0gJ3N0cmluZycgJiYgdHlwZSAhPT0gJ29iamVjdCcpKSB7CiAgI
CByZXR1cm4gJyc7CiAgfQogIGlmICh0eXBlID09PSAnc3RyaW5nJykgewogICAgcmV0dXJuIGRhdGE7CiAg
fQogIGlmIChkYXRhIGluc3RhbmNlb2YgU3RyaW5nKSB7CiAgICByZXR1cm4gZGF0YS50b1N0cmluZygpOwo
gIH0KICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7CiAgZm9yIChjb25zdCBbaywgdl0gb2YgZmxhdH
Rlbk9iamVjdChkYXRhKSkgewogICAgZm9ybS5hcHBlbmQoZmxhdHRlbktleShrKSwgdik7CiAgfQogIHJld
HVybiBmb3JtOwp9CmZ1bmN0aW9uIGFqYXggKG1ldGhvZCwgdXJsLCBkYXRhLCBoZWFkZXJzKSB7CiAgT2Jq
ZWN0KHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImRlYnVnIl0pKCdhamF4Jyw
gbWV0aG9kLCB1cmwsIGRhdGEsIGhlYWRlcnMpOwogIGNvbnN0IGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW
50KCdhJyk7CiAgbC5ocmVmID0gdXJsOwogIGNvbnN0IHJlcUhvc3QgPSBsLmhvc3RuYW1lOwogIGNvbnN0I
G92ZXJyaWRlSGVhZGVycyA9IHsKICAgIEhvc3Q6
IHJlcUhvc3QgfHwgd2luZG93LmxvY2F0aW9uLmhvc3QsCiAgICBPcmlnaW46IHdpbmRvdy5sb2NhdGlvbi5
vcmlnaW4sCiAgICBSZWZlcmVyOiB3aW5kb3cubG9jYXRpb24uaHJlZiwKICAgICdYLVJlcXVlc3RlZC1XaX
RoJzogJ1hNTEh0dHBSZXF1ZXN0JywKICB9OwogIE9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JUR
URfTU9EVUxFXzBfX1siZm9yRWFjaCJdKShvdmVycmlkZUhlYWRlcnMsICh2LCBrKSA9PiB7CiAgICBpZiAo
aGVhZGVyc1trXSA9PT0gdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiXSk
gewogICAgICBkZWxldGUgaGVhZGVyc1trXTsKICAgIH0gZWxzZSB7CiAgICAgIGhlYWRlcnNba10gPSB2Ow
ogICAgfQogIH0pOwogIGlmIChkYXRhKSB7CiAgICBpZiAoaGVhZGVyc1snQ29udGVudC1UeXBlJ10uaW5kZ
XhPZignanNvbicpID49IDApIHsKICAgICAgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOwogICAgfSBl
bHNlIGlmIChoZWFkZXJzWydDb250ZW50LVR5cGUnXS5pbmRleE9mKCdtdWx0aXBhcnQnKSA+PSAwKSB7CiA
gICAgIGRhdGEgPSB0b0Zvcm0oZGF0YSk7CiAgICB9IGVsc2UgewogICAgICBkYXRhID0gdG9RdWVyeShkYX
RhKTsKICAgIH0KICAgIGhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10gPSBkYXRhLmxlbmd0aDsKICB9CiAgc
mV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgIHV0aWxfcGxhdGZvcm1fX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siR01BUEkiXS54bWxIdHRwUmVxdWVzdCh7CiAgICAgIG1ldGh
vZDogbWV0aG9kLAogICAgICB1cmw6IHVybCwKICAgICAgZGF0YTogZGF0YSwKICAgICAgaGVhZGVyczogaG
VhZGVycywKICAgICAgb25sb2FkIChyZXNwb25zZSkgewogICAgICAgIHJlc3BvbnNlID0gKHR5cGVvZiByZ
XNwb25zZS5yZXNwb25zZVRleHQgIT09ICd1bmRlZmluZWQnKSA/IHJlc3BvbnNlIDogdGhpczsKICAgICAg
ICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHsKICAgICAgICAgIHJlamVjdChuZXcgQWpheEVycm9
yKG1ldGhvZCwgdXJsLCBkYXRhLCBoZWFkZXJzLCByZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnJlc3Bvbn
NlVGV4dCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLnJlc3BvbnNlV
GV4dCk7CiAgICAgICAgfQogICAgICB9LAogICAgICBvbmVycm9yIChyZXNwb25zZSkgewogICAgICAgIHJl
c3BvbnNlID0gKHR5cGVvZiByZXNwb25zZS5yZXNwb25zZVRleHQgIT09ICd1bmRlZmluZWQnKSA/IHJlc3B
vbnNlIDogdGhpczsKICAgICAgICByZWplY3QobmV3IEFqYXhFcnJvcihtZXRob2QsIHVybCwgZGF0YSwgaG
VhZGVycywgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZS5yZXNwb25zZVRleHQpKTsKICAgICAgfSwKICAgI
H0pOwogIH0pOwp9CmZ1bmN0aW9uIGdldCAodXJsLCBkYXRhLCBoZWFkZXJzKSB7CiAgZGF0YSA9IHRvUXVl
cnkoZGF0YSk7CiAgZGF0YSA9IGRhdGEgPyAnPycgKyBkYXRhIDogJyc7CiAgaGVhZGVycyA9IGhlYWRlcnM
gfHwge307CiAgcmV0dXJuIGFqYXgoJ0dFVCcsIHVybCArIGRhdGEsICcnLCBoZWFkZXJzKTsKfQpmdW5jdG
lvbiBwb3N0ICh1cmwsIGRhdGEsIGhlYWRlcnMpIHsKICBjb25zdCBoID0gewogICAgJ0NvbnRlbnQtVHlwZ
Sc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgnLAogIH07CiAg
aWYgKGhlYWRlcnMpIHsKICAgIE9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzB
fX1siZm9yRWFjaCJdKShoZWFkZXJzLCAodiwgaykgPT4gewogICAgICBoW2tdID0gdjsKICAgIH0pOwogIH
0KICByZXR1cm4gYWpheCgnUE9TVCcsIHVybCwgZGF0YSwgaCk7Cn0KIH0pLAogKGZ1bmN0aW9uKG1vZHVsZ
SwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoidXNlIHN0cmljdCI7Cl9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIF9fd2VicGFja19yZXF1aXJlX18
uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic2V0Q29va2llIiwgZnVuY3Rpb24oKSB7IHJldHVybiBzZXRDb2
9raWU7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJnZXRDb29ra
WUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGdldENvb2tpZTsgfSk7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgInJlc2V0Q29va2llcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gcmVzZXR
Db29raWVzOyB9KTsKIHZhciB1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2
VicGFja19yZXF1aXJlX18oMSk7CmZ1bmN0aW9uIHNldENvb2tpZSAoa2V5LCB2YWx1ZSkgewogIGRvY3VtZ
W50LmNvb2tpZSA9IGAke2tleX09JHt2YWx1ZX07cGF0aD0ke2xvY2F0aW9uLnBhdGhuYW1lfTtgOwp9CmZ1
bmN0aW9uIGdldENvb2tpZSAoa2V5KSB7CiAgbGV0IFssIGMsXSA9IE9iamVjdCh1dGlsX2NvcmVfX1dFQlB
BQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siZmluZCJdKShkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKSwgKH
YpID0+IHsKICAgIGNvbnN0IGsgPSB2LnJlcGxhY2UoL15ccyooW2EtekEtWjAtOS1fXSspPS4rJC8sICckM
ScpOwogICAgaWYgKGsgIT09IGtleSkgewogICAgICByZXR1cm4gdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIm5vbmUiXTsKICAgIH0KICB9KTsKICBpZiAoYyA9PT0gdXRpbF9jb3JlX19XRUJ
QQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiXSkgewogICAgcmV0dXJuIG51bGw7CiAgfQogIGMgPS
BjLnJlcGxhY2UoL15ccypbYS16QS1aMC05LV9dKz0oW147XSspLj8kLywgJyQxJyk7CiAgaWYgKCFjKSB7C
iAgICByZXR1cm4gbnVsbDsKICB9CiAgcmV0dXJuIGM7Cn0KZnVuY3Rpb24gcmVzZXRDb29raWVzICgpIHsK
ICBjb25zdCBhID0gZG9jdW1lbnQuZG9tYWluOwogIGNvbnN0IGIgPSBkb2N1bWVudC5kb21haW4ucmVwbGF
jZSgvXnd3d1wuLywgJycpOwogIGNvbnN0IGMgPSBkb2N1bWVudC5kb21haW4ucmVwbGFjZSgvXihcdytcLi
krPyhcdytcLlx3KykkLywgJyQyJyk7CiAgY29uc3QgZCA9IChuZXcgRGF0ZSgxZTMpKS50b1VUQ1N0cmluZ
ygpOwogIE9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siZm9yRWFjaCJd
KShkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKSwgKHYpID0+IHsKICAgIGNvbnN0IGsgPSB2LnJlcGxhY2U
oL15ccyooXHcrKT0uKyQvLCAnJDEnKTsKICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke2t9PTtleHBpcmVzPS
R7ZH07YDsKICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke2t9PTtwYXRoPS87ZXhwaXJlcz0ke2R9O2A7CiAgI
CBjb25zdCBlID0gKGEsIGIsIGMpID0+IGAke2F9PTtwYXRoPS87ZG9tYWluPSR7Yn07ZXhwaXJlcz0ke2N9
O2A7CiAgICBkb2N1bWVudC5jb29raWUgPSBlKGssIGEsIGQpOwogICAgZG9jdW1lbnQuY29va2llID0gZSh
rLCBiLCBkKTsKICAgIGRvY3VtZW50LmNvb2tpZSA9IGUoaywgYywgZCk7CiAgfSk7Cn0KIH0pLAogKGZ1bm
N0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoidXNlI
HN0cmljdCI7Cl9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYmxvY2siLCBmdW5jdGlvbigpIHsgcmV0dXJ
uIGJsb2NrOyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicXVlcn
lTZWxlY3RvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gcXVlcnlTZWxlY3RvcjsgfSk7CiBfX3dlYnBhY2tfc
mVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInF1ZXJ5U2VsZWN0b3JBbGwiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGw7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGF
ja19leHBvcnRzX18sICJxdWVyeVNlbGVjdG9yT3JOdWxsIiwgZnVuY3Rpb24oKSB7IHJldHVybiBxdWVyeV
NlbGVjdG9yT3JOdWxsOyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fL
CAicmVtb3ZlIiwgZnVuY3Rpb24oKSB7IHJldHVybiByZW1vdmU7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJzZWFyY2hGcm9tU2NyaXB0cyIsIGZ1bmN0aW9uKCkgeyByZXR
1cm4gc2VhcmNoRnJvbVNjcmlwdHM7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leH
BvcnRzX18sICJ0b0RPTSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdG9ET007IH0pOwogdmFyIHV0aWxfY29yZ
V9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKIHZhciB1
dGlsX2xvZ2dlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg
1KTsKY2xhc3MgRG9tTm90Rm91bmRFcnJvciBleHRlbmRzIHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF
9NT0RVTEVfMF9fWyJBZHNCeXBhc3NlckVycm9yIl0gewogIGNvbnN0cnVjdG9yIChzZWxlY3RvcikgewogI
CAgc3VwZXIoYFxgJHtzZWxlY3Rvcn1cYCBub3QgZm91bmRgKTsKICB9CiAgZ2V0IG5hbWUgKCkgewogICAg
cmV0dXJuICdEb21Ob3RGb3VuZEVycm9yJzsKICB9Cn0KZnVuY3Rpb24gcXVlcnlTZWxlY3RvciAoc2VsZWN
0b3IsIGNvbnRleHQpIHsKICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQucXVlcnlTZWxlY3RvcikgewogIC
AgY29udGV4dCA9IGRvY3VtZW50OwogIH0KICBjb25zdCBuID0gY29udGV4dC5xdWVyeVNlbGVjdG9yKHNlb
GVjdG9yKTsKICBpZiAoIW4pIHsKICAgIHRocm93IG5ldyBEb21Ob3RGb3VuZEVycm9yKHNlbGVjdG9yKTsK
ICB9CiAgcmV0dXJuIG47Cn0KZnVuY3Rpb24gcXVlcnlTZWxlY3Rvck9yTnVsbCAoc2VsZWN0b3IsIGNvbnR
leHQpIHsKICB0cnkgewogICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IsIGNvbnRleHQpOwogIH
0gY2F0Y2ggKGUpIHsKICAgIHJldHVybiBudWxsOwogIH0KfQpmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsI
ChzZWxlY3RvciwgY29udGV4dCkgewogIGlmICghY29udGV4dCB8fCAhY29udGV4dC5xdWVyeVNlbGVjdG9y
QWxsKSB7CiAgICBjb250ZXh0ID0gZG9jdW1lbnQ7CiAgfQogIGNvbnN0IG5zID0gY29udGV4dC5xdWVyeVN
lbGVjdG9yQWxsKHNlbGVjdG9yKTsKICByZXR1cm4gbnM7Cn0KZnVuY3Rpb24gdG9ET00gKHJhd0hUTUwpIH
sKICB0cnkgewogICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpOwogICAgY29uc3QgRE9NSFRNT
CA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcocmF3SFRNTCwgJ3RleHQvaHRtbCcpOwogICAgcmV0dXJuIERP
TUhUTUw7CiAgfSBjYXRjaCAoZSkgewogICAgdGhyb3cgbmV3IHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlR
FRF9NT0RVTEVfMF9fWyJBZHNCeXBhc3NlckVycm9yIl0oJ2NvdWxkIG5vdCBwYXJzZSBIVE1MIHRvIERPTS
cpOwogIH0KfQpmdW5jdGlvbiByZW1vdmUgKHNlbGVjdG9yLCBjb250ZXh0KSB7CiAgY29uc3Qgbm9kZXMgP
SBxdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yLCBjb250ZXh0KTsKICBPYmplY3QodXRpbF9jb3JlX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bImZvckVhY2giXSkobm9kZXMsIChlKSA9PiB7CiAgICBPYmplY3Q
odXRpbF9sb2dnZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siZGVidWciXSkoJ3JlbW92ZWQnLC
BlKTsKICAgIGUucmVtb3ZlKCk7CiAgfSk7Cn0KZnVuY3Rpb24gYmxvY2sgKHNlbGVjdG9yLCBjb250ZXh0P
W51bGwpIHsKICBpZiAoIWNvbnRleHQpIHsKICAgIGNvbnRleHQgPSBkb2N1bWVudDsKICB9CiAgbGV0IGZu
ID0gbnVsbDsKICBpZiAoT2JqZWN0KHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ
pc1N0cmluZyJdKShzZWxlY3RvcikpIHsKICAgIGZuID0gKCkgPT4gewogICAgICByZW1vdmUoc2VsZWN0b3
IsIGNvbnRleHQpOwogICAgfTsKICB9IGVsc2UgaWYgKHR5cGVvZiBzZWxlY3RvciA9PT0gJ2Z1bmN0aW9uJ
ykgewogICAgZm4gPSAobXV0YXRpb24pID0+IHsKICAgICAgbXV0YXRpb24uYWRkZWROb2Rlcy5mb3JFYWNo
KChub2RlKSA9PiB7CiAgICAgICAgaWYgKHNlbGVjdG9yKG5vZGUpKSB7CiAgICAgICAgICBub2RlLnBhcmV
udE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH07CiAgfSBlbHNlIH
sKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dyb25nIHNlbGVjdG9yJyk7CiAgfQogIGNvbnN0IG8gPSBuZ
XcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7CiAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0
YXRpb24pID0+IHsKICAgICAgZm4obXV0YXRpb24pOwogICAgfSk7CiAgfSk7CiAgby5vYnNlcnZlKGNvbnR
leHQsIHsKICAgIGNoaWxkTGlzdDogdHJ1ZSwKICAgIHN1YnRyZWU6IHRydWUsCiAgfSk7Cn0KZnVuY3Rpb2
4gc2VhcmNoRnJvbVNjcmlwdHNCeVJlZ0V4cCAocGF0dGVybiwgY29udGV4dCkgewogIGNvbnN0IHNjcmlwd
HMgPSBxdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHQnLCBjb250ZXh0KTsKICBjb25zdCBbLCAsIG1dID0gT2Jq
ZWN0KHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJmaW5kIl0pKHNjcmlwdHMsICh
zKSA9PiB7CiAgICBjb25zdCBtID0gcy50ZXh0Q29udGVudC5tYXRjaChwYXR0ZXJuKTsKICAgIGlmICghbS
kgewogICAgICByZXR1cm4gdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiX
TsKICAgIH0KICAgIHJldHVybiBtOwogIH0pOwogIGlmIChtID09PSB1dGlsX2NvcmVfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1sibm9uZSJdKSB7CiAgICByZXR1cm4gbnVsbDsKICB9CiAgcmV0dXJuIG07Cn0
KZnVuY3Rpb24gc2VhcmNoRnJvbVNjcmlwdHNCeVN0cmluZyAocGF0dGVybiwgY29udGV4dCkgewogIGNvbn
N0IHNjcmlwdHMgPSBxdWVyeVNlbGVjdG9yQWxsKCdzY3JpcHQnLCBjb250ZXh0KTsKICBjb25zdCBbLCBtL
F0gPSBPYmplY3QodXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bImZpbmQiXSkoc2Ny
aXB0cywgKHMpID0+IHsKICAgIGNvbnN0IG0gPSBzLnRleHRDb250ZW50LmluZGV4T2YocGF0dGVybik7CiA
gICBpZiAobSA8IDApIHsKICAgICAgcmV0dXJuIHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTE
VfMF9fWyJub25lIl07CiAgICB9CiAgICByZXR1cm4gbTsKICB9KTsKICBpZiAobSA9PT0gdXRpbF9jb3JlX
19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIm5vbmUiXSkgewogICAgcmV0dXJuIG51bGw7CiAgfQog
IHJldHVybiBtLnRleHRDb250ZW50Owp9CmZ1bmN
0aW9uIHNlYXJjaEZyb21TY3JpcHRzIChwYXR0ZXJuLCBjb250ZXh0KSB7CiAgaWYgKHBhdHRlcm4gaW5zdG
FuY2VvZiBSZWdFeHApIHsKICAgIHJldHVybiBzZWFyY2hGcm9tU2NyaXB0c0J5UmVnRXhwKHBhdHRlcm4sI
GNvbnRleHQpOwogIH0gZWxzZSBpZiAoT2JqZWN0KHV0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJpc1N0cmluZyJdKShwYXR0ZXJuKSkgewogICAgcmV0dXJuIHNlYXJjaEZyb21TY3JpcHRzQnl
TdHJpbmcocGF0dGVybiwgY29udGV4dCk7CiAgfSBlbHNlIHsKICAgIHJldHVybiBudWxsOwogIH0KfQogfS
ksCiAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fK
SB7CiJ1c2Ugc3RyaWN0IjsKX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwog
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJvcGVuSW1hZ2UiLCBmdW5jdGl
vbigpIHsgcmV0dXJuIG9wZW5JbWFnZTsgfSk7CiB2YXIgdXRpbF9saW5rX19XRUJQQUNLX0lNUE9SVEVEX0
1PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKIHZhciB1dGlsX2RvbV9fV0VCUEFDS19JT
VBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CiB2YXIgdXRpbF9sb2dnZXJf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CiB2YXIgdXR
pbF9taXNjX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKT
sKIHZhciB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18gPSBfX3dlYnBhY2tfc
mVxdWlyZV9fKDMpOwphc3luYyBmdW5jdGlvbiBvcGVuSW1hZ2UgKGltZ1NyYywgb3B0aW9ucykgewogIG9w
dGlvbnMgPSBvcHRpb25zIHx8IHt9OwogIGNvbnN0IHJlcGxhY2UgPSAhIW9wdGlvbnMucmVwbGFjZTsKICB
jb25zdCByZWZlcmVyID0gISFvcHRpb25zLnJlZmVyZXI7CiAgaWYgKHJlcGxhY2UpIHsKICAgIGF3YWl0IH
JlcGxhY2VCb2R5KGltZ1NyYyk7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IHJlZGlyZWN0SW1hZ2UgPSBhd
2FpdCB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIkdNQVBJIl0uZ2V0VmFs
dWUoJ3JlZGlyZWN0X2ltYWdlJyk7CiAgaWYgKHJlZGlyZWN0SW1hZ2UpIHsKICAgIGF3YWl0IE9iamVjdCh
1dGlsX2xpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sib3BlbkxpbmsiXSkoaW1nU3JjLCB7Ci
AgICAgIHJlZmVyZXI6IHJlZmVyZXIsCiAgICB9KTsKICB9Cn0KZnVuY3Rpb24gZW5hYmxlU2Nyb2xsaW5nI
CgpIHsKICBjb25zdCBvID0gZG9jdW1lbnQuY29tcGF0TW9kZSA9PT0gJ0NTUzFDb21wYXQnID8gZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50IDogZG9jdW1lbnQuYm9keTsKICBvLnN0eWxlLm92ZXJmbG93ID0gJyc7Cn0
KZnVuY3Rpb24gdG9nZ2xlU2hyaW5raW5nICgpIHsKICB0aGlzLmNsYXNzTGlzdC50b2dnbGUoJ2Fkc2J5cG
Fzc2VyLXNocmlua2VkJyk7Cn0KZnVuY3Rpb24gY2hlY2tTY2FsaW5nICgpIHsKICBjb25zdCBudyA9IHRoa
XMubmF0dXJhbFdpZHRoOwogIGNvbnN0IG5oID0gdGhpcy5uYXR1cmFsSGVpZ2h0OwogIGNvbnN0IGN3ID0g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOwogIGNvbnN0IGNoID0gZG9jdW1lbnQuZG9
jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDsKICBpZiAoKG53ID4gY3cgfHwgbmggPiBjaCkgJiYgIXRoaX
MuY2xhc3NMaXN0LmNvbnRhaW5zKCdhZHNieXBhc3Nlci1yZXNpemFibGUnKSkgewogICAgdGhpcy5jbGFzc
0xpc3QuYWRkKCdhZHNieXBhc3Nlci1yZXNpemFibGUnKTsKICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnYWRz
YnlwYXNzZXItc2hyaW5rZWQnKTsKICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGV
TaHJpbmtpbmcpOwogIH0gZWxzZSBpZiAoKG53IDw9IGN3ICYmIG5oIDw9IGNoKSAmJiB0aGlzLmNsYXNzTG
lzdC5jb250YWlucygnYWRzYnlwYXNzZXItcmVzaXphYmxlJykpIHsKICAgIHRoaXMucmVtb3ZlRXZlbnRMa
XN0ZW5lcignY2xpY2snLCB0b2dnbGVTaHJpbmtpbmcpOwogICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCdh
ZHNieXBhc3Nlci1zaHJpbmtlZCcpOwogICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCdhZHNieXBhc3Nlci1
yZXNpemFibGUnKTsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gc2NhbGVJbWFnZSAoaSkgewogIGNvbnN0IHNpVV
JMID0gYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJHTUFQSSJdL
mdldFJlc291cmNlVXJsKCdzY2FsZUltYWdlJyk7CiAgYXBwZW5kU3R5bGVVUkwoc2lVUkwpOwogIGlmIChp
Lm5hdHVyYWxXaWR0aCAmJiBpLm5hdHVyYWxIZWlnaHQpIHsKICAgIGNoZWNrU2NhbGluZy5jYWxsKGkpOwo
gIH0gZWxzZSB7CiAgICBpLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjaGVja1NjYWxpbmcpOwogIH0KIC
BsZXQgaCA9IDA7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHsKICAgIHdpb
mRvdy5jbGVhclRpbWVvdXQoaCk7CiAgICBoID0gd2luZG93LnNldFRpbWVvdXQoY2hlY2tTY2FsaW5nLmJp
bmQoaSksIDEwMCk7CiAgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gY2hhbmdlQmFja2dyb3VuZCAoKSB7CiAgY29
uc3QgYmdJbWFnZSA9IGF3YWl0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1
siR01BUEkiXS5nZXRSZXNvdXJjZVVybCgnYmdJbWFnZScpOwogIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja
2dyb3VuZENvbG9yID0gJyMyMjIyMjInOwogIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZEltYWdl
ID0gYHVybCgnJHtiZ0ltYWdlfScpYDsKfQphc3luYyBmdW5jdGlvbiBhbGlnbkNlbnRlciAoKSB7CiAgY29
uc3QgYWNVUkwgPSBhd2FpdCB1dGlsX3BsYXRmb3JtX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIk
dNQVBJIl0uZ2V0UmVzb3VyY2VVcmwoJ2FsaWduQ2VudGVyJyk7CiAgYXBwZW5kU3R5bGVVUkwoYWNVUkwpO
wp9CmZ1bmN0aW9uIGluamVjdFN0eWxlIChkLCBpKSB7CiAgT2JqZWN0KHV0aWxfZG9tX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInJlbW92ZSJdKSgnc3R5bGUsIGxpbmtbcmVsPXN0eWxlc2hlZXRdJyk7CiA
gZC5pZCA9ICdhZHNieXBhc3Nlci13cmFwcGVyJzsKICBpLmlkID0gJ2Fkc2J5cGFzc2VyLWltYWdlJzsKfQ
pmdW5jdGlvbiBhcHBlbmRTdHlsZVVSTCAodXJsKSB7CiAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0Z
UVsZW1lbnQoJ2xpbmsnKTsKICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JzsKICBsaW5rLnR5cGUgPSAndGV4
dC9jc3MnOwogIGxpbmsuaHJlZiA9IHVybDsKICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspOwp
9CmFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VCb2R5IChpbWdTcmMpIHsKICBjb25zdCByZWRpcmVjdEltYWdlID
0gYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJHTUFQSSJdLmdld
FZhbHVlKCdyZWRpcmVjdF9pbWFnZScpOwogIGlmICghcmVkaXJlY3RJbWFnZSkgewogICAgcmV0dXJuOwog
IH0KICBpZiAoIWltZ1NyYykgewogICAgT2JqZWN0KHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNUE9SVEVEX01
PRFVMRV8yX19bIndhcm4iXSkoJ2ZhbHNlIHVybCcpOwogICAgcmV0dXJuOwogIH0KICBPYmplY3QodXRpbF
9sb2dnZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siaW5mbyJdKShgcmVwbGFjaW5nIGJvZHkgd
2l0aCBcYCR7aW1nU3JjfVxgIC4uLmApOwogIE9iamVjdCh1dGlsX21pc2NfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfX1sicmVtb3ZlQWxsVGltZXIiXSkoKTsKICBlbmFibGVTY3JvbGxpbmcoKTsKICBkb2N1bWV
udC5ib2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYm9keScpOwogIGNvbnN0IGQgPSBkb2N1bWVudC
5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGQpOwogIGNvbnN0I
GkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICBpLnNyYyA9IGltZ1NyYzsKICBkLmFwcGVu
ZENoaWxkKGkpOwogIGNvbnN0IGFjID0gYXdhaXQgdXRpbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9
NT0RVTEVfNF9fWyJHTUFQSSJdLmdldFZhbHVlKCdhbGlnbl9jZW50ZXInKTsKICBjb25zdCBzaSA9IGF3YW
l0IHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siR01BUEkiXS5nZXRWYWx1Z
Sgnc2NhbGVfaW1hZ2UnKTsKICBpZiAoYWMgfHwgc2kpIHsKICAgIGluamVjdFN0eWxlKGQsIGkpOwogIH0K
ICBpZiAoYWMpIHsKICAgIGF3YWl0IGFsaWduQ2VudGVyKCk7CiAgfQogIGNvbnN0IGNiID0gYXdhaXQgdXR
pbF9wbGF0Zm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJHTUFQSSJdLmdldFZhbHVlKCdjaG
FuZ2VfYmFja2dyb3VuZCcpOwogIGlmIChjYikgewogICAgYXdhaXQgY2hhbmdlQmFja2dyb3VuZCgpOwogI
H0KICBpZiAoc2kpIHsKICAgIGF3YWl0IHNjYWxlSW1hZ2UoaSk7CiAgfQp9CiB9KSwKIChmdW5jdGlvbiht
b2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKInVzZSBzdHJpY3Q
iOwpfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBfX3dlYnBhY2tfcmVxdW
lyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIm9wZW5MaW5rIiwgZnVuY3Rpb24oKSB7IHJldHVybiBvc
GVuTGluazsgfSk7CiB2YXIgdXRpbF9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDEpOwogdmFyIHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8
xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOwpmdW5jdGlvbiBwcmVwYXJlIChlKSB7CiAgaWYgKCFkb2
N1bWVudC5ib2R5KSB7CiAgICBkb2N1bWVudC5ib2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYm9ke
ScpOwogIH0KICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwogIHJldHVybiBPYmplY3QodXRpbF9j
b3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIndhaXQiXSkoMCk7Cn0KYXN5bmMgZnVuY3Rpb24
gZ2V0ICh1cmwpIHsKICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogIGEuaHJlZi
A9IHVybDsKICBsZXQgY2xpY2tlZCA9IGZhbHNlOwogIGEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZ
XZlbnQpID0+IHsKICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgY2xpY2tlZCA9IHRydWU7CiAg
fSwgdHJ1ZSk7CiAgYXdhaXQgcHJlcGFyZShhKTsKICBhLmNsaWNrKCk7CiAgY29uc3QgdGljayA9IHNldEl
udGVydmFsKCgpID0+IHsKICAgIGlmIChjbGlja2VkKSB7CiAgICAgIE9iamVjdCh1dGlsX2xvZ2dlcl9fV0
VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJpbmZvIl0pKCdhbHJlYWR5IGNsaWNrZWQnKTsKICAgICAgY
2xlYXJJbnRlcnZhbCh0aWNrKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgT2JqZWN0KHV0aWxfbG9nZ2Vy
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImluZm8iXSkoJ3RyeSBhZ2FpbicpOwogICAgYS5jbGl
jaygpOwogIH0sIDUwMCk7Cn0KYXN5bmMgZnVuY3Rpb24gcG9zdCAocGF0aCwgcGFyYW1zKSB7CiAgcGFyYW
1zID0gcGFyYW1zIHx8IHt9OwogIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJ
yk7CiAgZm9ybS5tZXRob2QgPSAncG9zdCc7CiAgZm9ybS5hY3Rpb24gPSBwYXRoOwogIE9iamVjdCh1dGls
X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siZm9yRWFjaCJdKShwYXJhbXMsICh2YWx1ZSw
ga2V5KSA9PiB7CiAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci
AgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7CiAgICBpbnB1dC5uYW1lID0ga2V5OwogICAgaW5wdXQudmFsd
WUgPSB2YWx1ZTsKICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQpOwogIH0pOwogIGF3YWl0IHByZXBhcmUo
Zm9ybSk7CiAgZm9ybS5zdWJtaXQoKTsKfQphc3luYyBmdW5jdGlvbiBvcGVuTGluayAodG8sIG9wdGlvbnM
pIHsKICBpZiAoIU9iamVjdCh1dGlsX2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siaXNTdH
JpbmciXSkodG8pICYmICF0bykgewogICAgT2JqZWN0KHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNUE9SVEVEX
01PRFVMRV8xX19bIndhcm4iXSkoJ2ZhbHNlIFVSTCcpOwogICAgcmV0dXJuOwogIH0KICBvcHRpb25zID0g
b3B0aW9ucyB8fCB7fTsKICBjb25zdCB3aXRoUmVmZXJlciA9IHR5cGVvZiBvcHRpb25zLnJlZmVyZXIgPT0
9ICd1bmRlZmluZWQnID8gdHJ1ZSA6IG9wdGlvbnMucmVmZXJlcjsKICBjb25zdCBwb3N0RGF0YSA9IG9wdG
lvbnMucG9zdDsKICBjb25zdCBmcm9tID0gd2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCk7CiAgT2JqZWN0K
HV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImluZm8iXSkoYCR7ZnJvbX0gLT4g
JHt0b31gKTsKICBpZiAocG9zdERhdGEpIHsKICAgIGF3YWl0IHBvc3QodG8sIHBvc3REYXRhKTsKICAgIHJ
ldHVybjsKICB9CiAgaWYgKHdpdGhSZWZlcmVyKSB7CiAgICBhd2FpdCBnZXQodG8pOwogICAgcmV0dXJuOw
ogIH0KICB3aW5kb3cudG9wLmxvY2F0aW9uLnJlcGxhY2UodG8pOwp9CiB9KSwKIChmdW5jdGlvbihtb2R1b
GUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKInVzZSBzdHJpY3QiOwpf
X3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBfX3dlYnBhY2tfcmVxdWlyZV9
fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInJlbW92ZUFsbFRpbWVyIiwgZnVuY3Rpb24oKSB7IHJldHVybi
ByZW1vdmVBbGxUaW1lcjsgfSk7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfX
ywgIm51a2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIG51a2U7IH0pOwogX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJnZW5lcmF0ZVJhbmRvbUlQIiwgZnVuY3Rpb24oKSB7IHJldHVybiB
nZW5lcmF0ZVJhbmRvbUlQOyB9KTsKIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c1
9fLCAiZXZpbCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZXZpbDsgfSk7CiB2YXIgdXRpbF9jb3JlX19XRUJQQ
UNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOwogdmFyIHV0aWxfcGxh
dGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CiB
2YXIgdXRpbF9sb2dnZXJfX1dFQlBBQ0tfSU1QT1
JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CmZ1bmN0aW9uIHJlbW92ZUFsbFRpb
WVyICgpIHsKICBsZXQgaGFuZGxlID0gd2luZG93LnNldEludGVydmFsKHV0aWxfY29yZV9fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJub3AiXSwgMTApOwogIHdoaWxlIChoYW5kbGUgPiAwKSB7CiAgICB3aW5
kb3cuY2xlYXJJbnRlcnZhbChoYW5kbGUtLSk7CiAgfQogIGhhbmRsZSA9IHdpbmRvdy5zZXRUaW1lb3V0KH
V0aWxfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJub3AiXSwgMTApOwogIHdoaWxlIChoY
W5kbGUgPiAwKSB7CiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGhhbmRsZS0tKTsKICB9Cn0KZnVuY3Rpb24g
bnVrZSAodXJsKSB7CiAgdHJ5IHsKICAgIHV0aWxfcGxhdGZvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUx
FXzFfX1sidXN3Il0uZG9jdW1lbnQud3JpdGUoJ251a2VkIGJ5IEFkc0J5cGFzc2VyLCBsZWFkaW5nIHRvIC
4uLjxici8+Jyk7CiAgfSBjYXRjaCAoZSkgewogICAgT2JqZWN0KHV0aWxfbG9nZ2VyX19XRUJQQUNLX0lNU
E9SVEVEX01PRFVMRV8yX19bIndhcm4iXSkoJ251a2UgZmFpbGVkJywgZSk7CiAgfQogIGNvbnN0IGEgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgYS5ocmVmID0gdXJsOwogIGEudGV4dENvbnRlbnQgPSB
1cmw7CiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTsKfQpmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbU
lQICgpIHsKICByZXR1cm4gWzAsIDAsIDAsIDBdLm1hcCgoKSA9PiB7CiAgICByZXR1cm4gTWF0aC5mbG9vc
ihNYXRoLnJhbmRvbSgpICogMjU2KTsKICB9KS5qb2luKCcuJyk7Cn0KZnVuY3Rpb24gZXZpbCAoc2NyaXB0
KSB7CiAgcmV0dXJuICgoCiAgICBHTSwKICAgIEdNX2RlbGV0ZVZhbHVlLAogICAgR01fZ2V0UmVzb3VyY2V
VUkwsCiAgICBHTV9nZXRWYWx1ZSwKICAgIEdNX29wZW5JblRhYiwKICAgIEdNX3JlZ2lzdGVyTWVudUNvbW
1hbmQsCiAgICBHTV9zZXRWYWx1ZSwKICAgIEdNX3htbGh0dHBSZXF1ZXN0LAogICAgdW5zYWZlV2luZG93L
AogICAgd2luZG93LAogICkgPT4gewogICAgcmV0dXJuIGV2YWwoc2NyaXB0KTsKICB9KSgpOwp9CiB9KQog
XSk7","resources":[{"meta":
{"name":"align_center.css","url":"https://raw.githubusercontent.com/adsbypasser/ads
bypasser/v7.17.0/resources/css/align_center.css","ts":1621519903111,"mimetype":"tex
t/css"},"source":"aHRtbCB7CiAgaGVpZ2h0OiAxMDAlOwp9Cgpib2R5IHsKICBoZWlnaHQ6IDEwMCU7C
iAgbWFyZ2luOiAwOwp9CgojYWRzYnlwYXNzZXItd3JhcHBlciB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0
OiAxMDAlOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgbGluZS1oZWl
naHQ6IDA7Cn0KCiNhZHNieXBhc3Nlci1pbWFnZSB7CiAgbWFyZ2luOiBhdXRvOwogIHRvcDogMDsKICBib3
R0b206IDA7CiAgbGVmdDogMDsKICByaWdodDogMDsKfQo="},{"meta":
{"name":"scale_image.css","url":"https://raw.githubusercontent.com/adsbypasser/adsb
ypasser/v7.17.0/resources/css/scale_image.css","ts":1621519903160,"mimetype":"text/
css"},"source":"I2Fkc2J5cGFzc2VyLWltYWdlLmFkc2J5cGFzc2VyLXJlc2l6YWJsZSB7CiAgY3Vyc29
yOiAtd2Via2l0LXpvb20tb3V0OwogIGN1cnNvcjogLW1vei16b29tLW91dDsKICBjdXJzb3I6IHpvb20tb3
V0Owp9CgojYWRzYnlwYXNzZXItaW1hZ2UuYWRzYnlwYXNzZXItcmVzaXphYmxlLmFkc2J5cGFzc2VyLXNoc
mlua2VkIHsKICBtYXgtd2lkdGg6IDEwMCU7CiAgbWF4LWhlaWdodDogMTAwJTsKICBjdXJzb3I6IC13ZWJr
aXQtem9vbS1pbjsKICBjdXJzb3I6IC1tb3otem9vbS1pbjsKICBjdXJzb3I6IHpvb20taW47Cn0K"},
{"meta":{"name":"imagedoc-
darknoise.png","url":"https://raw.githubusercontent.com/adsbypasser/adsbypasser/v7.
17.0/resources/img/imagedoc-
darknoise.png","ts":1621519903162,"mimetype":"image/png"},"source":"wolQTkcNChoKAAA
ADUlIRFIAAABYAAAAWAQDAAAAwoPCuy0HAAAAG1BMVEXDvsO+w74BAQHDv8O/w78KCgoDAwN/f3/DtcO1w7
XCgMKAwoDDvMO8w7zDoQ8Ew7YAAAAJdFJOUwUFBQUFBQUFBcKHDsOTw70AAAvDgklEQVR4Xg3DijljwrJaE
ADDkBnDtnIue3lxL0HCjUkJwpp8wrEEw6NWwoJLTAkaE0swbj/Du8K9w64UB37DhS1uKsOzwqLDsMOCWHzD
qMKfw4BICSlZwqjDvirCtsObw59Rw7MfQsKjc2tIwpfCtMKADcKlwpvCpcKQTxPCl13Cs8Kow4k3I13CjAz
CilrCp2vCoMKIwrFZFAhjwqE/wpDDpjvChMKHIi/Dtl/CrAPCt1zDv8O0w6gLwpQnecKSd8O8w73DpMOgfc
K8wobCpcOQM8OlacKVwoc/wrREw6gyF8KOYsKqKkvChsKvw6xNZylOwp49RkpVCsK+fFkME8KIw403w4x7R
8OJwoDCnsOcw7xiCDnDlS4rFjIEVQ7DjsO2OgAuQF8fEcO6wo5Ow6EtI8OTCsKBND3DhMKswoYmw71xw4Vt
CMOtH1MXD8KXVG7CnX04V2PCkDlywrPDocOSw4LCsGAdG8OLw7cFTcO+wpjCvFYjwojDgcOLw78PUcKRW8K
lLg7DskstADnClCI1w64lHcKwwqYpOsOmHzAEw4bCnsKZw79mw43DlsOqCi/Dp1HCvsO9Wz0DL8O/w4HDrm
TCh8OLwrDCvEPDrsKbwqo5HkDDjA3CvcOZWsOpw7DCtsKvwpTDjENUw7DDmmENw5bDrzbDksKMw55Jw7HDp
gjCulDDhMKQwpfDp8KGwrPDrcK7wprCtsKDwrcXwpZ0f8KTw6tlLMO8bMKlEsOaw7sKw58jwpXCt8KXKsOw
H8OmwonDscOwPcKuVsOdScO8ZsOlV8Olw5DDiMKlCMKcw6UGw6PCh8Oqwo3DizMrbsK6w4h1woABwoHCvXp
Ib8OLwol4McKmwrjDojYVw4ldwpEUS8KSw6fCh8K2HcOLMMK2Y13CqR/DvlfCg8O0O8OXwrheelbCgxVSQk
NXwqXCgwLDhMKeFXpdJcKaLnrCjnYIIMKQEDJ3RcO7NMOEwosrwqPDt2rDt8KKMlPDlMOtGsKUw7QnLWJvJ
MK0e18ew5fCg8OXw6bDtQPCqhbDryjDm8OZwrdBCsKFw4HCk3huSMK/RsKKazbDkwoqw5EET8OYwozCsMKc
worCpkjCoMK4CivCn2zCs8KSw70wG3M1EEVDJMO+VTfCucKuLjYCwoJcw50ZDsObwqHCgcKgRmorw44UQ8K
rw43DoMKCWDLClC/CoQTCsTLDi8KmUFjDnALCmmrCrcOow7vDhMOECsKGEA9Vw5lyE8Ojw7fDksO4wo3CnM
OHWcO5wrXDnznCkMOgwqMdw7PDlk4Ow7YUwp/DvsK8wqPCssKCC37CrytFbEDDiVjCv8KmPwpgw4PCocOtF
MKyB8Kawq4ow5ptZ2fDmxorCMKKEMOkw5Vmw5XCpcKewqHDjgzDu8K9w6PDlV8oP8Kzw47Cl8Oywp3Dn8OZ
ZU5IWcKdHcKCesKRHC4uOBpBwrE/DcOtwobDhScwA8KJbcKewqPDtMO9w6/Dk8KKFxY8w45Pw74dH8ONNEk
zwoEgbMKYDcO5ScKswrPDlm/Drm8YJmEDwqZ9w7zCkcKHw5gdw4fCjcKmUVXDucOXaipaR8OxAzzCrkgscc
OVw4zCsMOHeMOIXsOlw4kQRsOswrMpwqjDkxMyw60rJCVvQsOkwoPDmMKuwoPDsELDqcOtw63DvkUQw7PDl
yTCtcKRbGHDnC/ChDfCsx3DkywDelvCrsO2wq/DsjkIwqkLw6s0wrDDgk0AI8OPwqIEJMKvw5XCjsOQQMO+
UUrCgsOEw5tuw67Di8OLw6fDm2Y6dhLDgcKASxHCh18cTGjDiMK/fMK+w6tCwqbCt3YAZQXDvMKpw73DmyQ
1HMO/wppdwo7DmMK+KwAZw7Rsw7NDN3bDncOdSQQJw5LCvWkWB8OGH8KwwoHCpcKywpHDosK0w5jCjD3Cg8
OFfR/CjnnDhG4/LGB+woPDvcO8eRHDncOEdsOswoohwonCoMOXCk/Dt1TDk8O6wpTCjE/DtTBnwrDDh8KAA
UZlwqLCrsKPw7DCpREsGw0Ww6jCgMOcwrsNw73Dn2rCpCfCiijCgGBLOw3Dpk/Cq3Ydw67Ch0VbwrzDi8KO
IsKJwokPV8OBOiDCqiLDi8OkwpUuWzkITGnCqEkLw6Rcw7vCqXPDuUvDscKawq05Py/Ci8KgYhDClMKywq/
ClcOGwofCsFHCvVIuwrofw7rCnR8+wrvCsMO0RsKGwo/Cq8K4L3ZCA3kkQyYuw4ZREEjCicK7wr8FJcK8wr
NPw4FsdMKvdF7CgRx7OcO2R8KYwotTNmFzMmZ/XMKNY3gJNMKVEMK9wrpTw450w4BudXknw4jCi8Oiwq3Cj
lrDqEkSd1ZVPMKEwq/DgzlUZMOWwrbDs8KmUsKNQ8Kyc8KswqlxOWcywoTDsMKuP8Oxw4l8w7nDjVcCwrp1
RULCs8O6IsKPw7fCqMO2FcOFJgPDq8O0HnErw5IlHUrCtErDpcObwoDCj1FQamvDqcKJwqXDkcOYwpddD8K
oPMKfwoTCshcfw5/CjT4LwpAvwqDChMKXJMKPV8K1w4DDv8KDwqx6w6kiIxo8fkXDlsK3GkbDvBlZw7Enw6
nDvH7DvC7Dj3VwARjCs0rCjsK9VEnCnlfDiHjDrGnDtcOMEsKFw63CgsOgH8KPKQzCisKDDBzChMKXVAc9w
4kGOcKjwpQgw7DDgzTCnhXCggNhw6jCiEgBc1EHw7sGwqsuPEfDnMK5w7rDsMOPw5zCiFrCiMOVwrHCtMKY
E8KxwojDmsOeOsOkwqERw7/DvcKkwozDocKbUGHDmcOGw5hXGcO2IcKEO3pYw5jCpcKmw7/DpEdPF2PDksK
Zw4zCvsOraMO6e2HDgTzDlsOew7vDglUyw6RQBsK1wp0vw5vCgcKHwobDmG0GwpAnTsOFw4nDtykKw6vDks
K7FTJiM8O6asO7w7DDtgTDnAI9Lk1aIUsDwocMNsKHTsOPJ8OJwqchMBcWwqFQw5bCp3/DpVoKwp4IwrMne
AUhSsOoQ8OZEmnCucOyw45KLsOewpsTwpXChcKLDhrCicKVw5jCkMKEKjXCrsOuS8Kqw4LDp8KyFEnCg8KB
WFHDkl4oHn8Ww7PCtRnCuxbDvMKJw554SxHDlsKJKcOPKnMyAhzDncKGLcKwN8OwKB9zwpjDgMK2wqPCuyb
DgcOyH8OQeMKSYl9YCMK3w6dfwoo/wqDCr0DCiUV0NmNOEMOqwq8xHzfDlsKbw5FIwoHDiGJbT8KXw7PCq0
jCosOSBsONEcK1woBDWirCiRDCkMK5w74VdnbDh3LClHLCnsOdw7zDlSzCmMOpwoUIb8Oiw5N2AcOywpjCt
HojUsOgwrUIfA06AMKrw59CY8O/VAXDksOUA8O2wpMyfsO0wrAaTcKnw68XI8K7bz8Uw7TDoMKpwpXDncKq
w5XDocOGwrbDj8KZFsK7dMOgCcKIwpbDpsOOPMO+w5drJ8Oiw77CvS3CiX3CmmjDtMO9Dz4+TVPDgcKheyM
cPMOWfsK5wprDgMOrGX5gU8O+TcK+c8KrM8O+G8ODw6cIw6vCjT7Dl8KBGWcTM8OuZcOqw6bCi1jDqn1Kw4
TDnsKuw5V0V8OJwrvCmhPDtAd+VUh1fMKMCBYQcsOxOcKMwroSHl9lw6nCmsKIJsK9LULDncKbwrDCiyR8w
63ClMKrwo9Cb8OUOkQBwokbcMK9w5HCpjZXwpnCmk9XwonClx/DjMO8Nh8CS8Okfj7ClxPCnkhywq/ClQlp
KMKzw5MIw4rDm2EwwpfDrMOSw7rClMOuwoNDw5DDkCTCpyUOS33DlHvDrsO1WcK5w7gjwpEPw7J1w74Vw6c
6RGjDmsK+JcKZwqtAwq7ClnXCkFpyYwcvw5RmLnPDlMKzT8OMYwYFw47CjMKrXcKEDExxwoBQwpPCn8K6ZH
nCr8K/TGTDrcK8DMKBF0FUw7nDgGw9w7U2NU9Bwo4IL8OBw41rw7xEQAPDgMKAwp3DkMK4w5Q0wqnDhMOow
6RVa0lOwp7CqGg7S8O3w55cFnMBdMOKdMOgTsKRccOLw60OKcOaYTQ1wonClH8ubMKqBsOpYlfCtMKsQMOB
wrsiwpbCkEkHw6HCgcOCKcKvTsOAwqvCv1R7LSXDvRMZAMODwo4ZEcOMVMOcwr50OHnDigMiwpk1w61fwoo
fwqFWwqItRGDCg3/CuyHCusO5wp7DulTDlsK1w6XDucKhwovCnMOnw4NrCcKqwqNgworDiFdDw4XDiQfCoc
OZwpzDmRLCo1LDq0LDrsKGc8O5w4MHwozCkkbClMO3ekMDw7RWPMOXwobCpMOwwoHCgiUeDsO1dC9TX3UTw
78efmLDrsK1CsOuR8OtwpTChcKeIUIYbsOcw7MWX2fClMKHwpo1w7oXw7sfw6rDiWzDiAASw5NkNsOewqvD
uENmwpxgw5oJIcO4woDCn0lPDlLCknzDiWY1w67DpDkQZsK+GGXChcKaesOBd8Obw5fDnMKjwq15wokJaMO
KT8OAwp4Two8ww6NuGQ4wwqnCligpc1TCncKgw7NWBhZfw5zDkxPDiCp3ICRnVCrDtmhRQm7DkgYaIAh6E0
xNeQ15wqrCklfDjMOSE8KBw74Ww7sPw6hRwqLCjjPCngQxSMK1wo/CnMKvOCsEe8OCWMKnBUbCj8Kdw6U2I
8OMY8OUZcK2B3jCicOKfMOZw7vDjcOrw5zDpEgVCMOjScOJSRTDnh8+w6HDlMKFw7jDmCrDtMKSVcKjw4Yz
wrTDpMOEwpfDlMKGwpN4OcKTRGEeKsOwL8K1wqbCgWjCtCfCjcO7Ric/wrhyMXLDi8Kvw6IKMsOGF2/DoFv
DqMOQwoRFMWxAT8OJDMOXwovDoFvDokc9w4DCriMjA0tZwrwQAMOrWCkSw5rCisKQw4fDuX4TPMOzwobDsD
DCjWPCggLDtyBkw5bCpyJuOFTCgRnDg3HDvcO5wqZfXcOmwotbwr0Iw44heUTCu8KXVcK2bktFwqLCuSlnA
8O8w7XDui3CocKdw5vCkMKuNHHCv8K+B8KIB1kcwqQpwp7DuMKfInZXI3wQCwDClMKgwoM5w6wYccKOAMKY
HRnDm8KMwp3CmD5sBsKeGATChlfDlsOhw719wrA+w4VTwpgSw7HCmTTDkMKwEcKFwpBDwqRkwpTDrBgJwr4
ewrtMDcK1wrDCvTXDjsK6w5XDtcK7wrBxIsKvV8KJwr7Cg8KQUxtSK012wrYsUMK5GsKGw4AhBEh9FjdzL8
OQTQEcU0rCvsOTw57DrWsTw6IWUmDCiMKnBMOZHcKQwq7Dpl9THCvCgnDDqFnCqcO3wqTCuQxjQ8KxKMOIZ
QkDAMKvw77CrUk6w6JeCcOPw7fClknDm8OvwqzDgMKqw6PCvwwEISvDvsK2cMO/F8Oaw43DviASw4jChsOy
w7xEeinCoHpIAsKycsKxwoTDk8KYw4MewrnCs8OXwofDhcK7w6tALzFRw7rDrjrCoMKDTsK+w753wrkxwp7
Ct8OXPsKyRMOoZcKiHcOdPQjCq2bCgSnCr8ONMMKCw5/DnBHCuFsBBMOmRMK7RsKHw4lxCwDDgQXCvk54wp
4aEsKtwrlcE0xPasOzWcOnVsObMjPCj8OgwoIMwqlnwpciQcONPzXCqBXCqcOrw5h7wr5Ww7dOYRXDuDNmw
5rCusKjw5Ykw7sFC8KwVVsuPkwqw5XDrk/DssOYDcKNVsOIwpTDjMOwXcOjNcOWRmrCjx3DiihTwonDjcON
w4IDIVXChi8fw4VWeRbDuF0Aw45mM8KpEsOow6gKwrtewowWCWrDn8O2w79BUjB3DsOHUCzCnltOCT4wwrl
0w6/ChgvDk8KfwqnDsHhVf8Kww4LDqMKfwrfDq2HCs2TCrMOeLsKnwpDDoT4kXMKDw7sCwoUvw6XCjF/Cqc
Oww4A7w5rDkS1/O8ODJcKeJ1rDq8OTw6HDt8Knw64Ww7DCqETDi8OXwpwnw6wsw7PDpgvDuEDDpRnDjDROH
wzCrSlUw6Q4BHLDmhLCvMOvw78Aw73DtABmwozDlmTDkAAAAABJRU5Ewq5CYMKC"}]},
{"name":"Linkvertise Bypass","options":
{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":f
alse,"compat_prototypes":false,"compat_wrappedjsobject":false,"compatopts_for_requi
res":true,"noframes":null,"override":
{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":
true,"orig_connects":[],"orig_excludes":[],"orig_includes":[],"orig_matches":
["*://*.linkvertise.com/*","*://*.linkvertise.net/*","*://*.linkvertise.download/*"
,"*://*.link-to.net/*","*://*.file-link.net/*","*://*.direct-link.net/*","*://*.up-
to-down.net/*"],"orig_noframes":null,"orig_run_at":"document-idle","use_blockers":
[],"use_connects":["publisher.linkvertise.com"],"use_excludes":[],"use_includes":
[],"use_matches":[]},"run_at":null},"storage":{"ts":1618369396516,"data":
{}},"enabled":true,"position":2,"file_url":"https://greasyfork.org/scripts/409156-
linkvertise-bypass/code/Linkve
rtise%20Bypass.user.js","uuid":"a5a1bd9e-eb39-452a-a840-
d4c1427f242b","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICBMaW5rdmVydGl
zZSBCeXBhc3MKLy8gQG5hbWVzcGFjZSAgICBodHRwOi8vdGFtcGVybW9ua2V5Lm5ldC8KLy8gQHZlcnNpb2
4gICAgICAwLjQuNQovLyBAZGVzY3JpcHRpb24gIEJ5cGFzcyBsaW5rcyB0aGF0IGNhbm5vdCBiZSBieXBhc
3NlZCBieSBVbml2ZXJzYWwgQnlwYXNzCi8vIEBhdXRob3IgICAgICAgRmlyZU1hc3RlcksKLy8gQG1hdGNo
ICAgICAgICAqOi8vKi5saW5rdmVydGlzZS5jb20vKgovLyBAbWF0Y2ggICAgICAgICo6Ly8qLmxpbmt2ZXJ
0aXNlLm5ldC8qCi8vIEBtYXRjaCAgICAgICAgKjovLyoubGlua3ZlcnRpc2UuZG93bmxvYWQvKgovLyBAbW
F0Y2ggICAgICAgICo6Ly8qLmxpbmstdG8ubmV0LyoKLy8gQG1hdGNoICAgICAgICAqOi8vKi5maWxlLWxpb
msubmV0LyoKLy8gQG1hdGNoICAgICAgICAqOi8vKi5kaXJlY3QtbGluay5uZXQvKgovLyBAbWF0Y2ggICAg
ICAgICo6Ly8qLnVwLXRvLWRvd24ubmV0LyoKLy8gQGdyYW50ICAgICAgICBHTS54bWxIdHRwUmVxdWVzdAo
vLyA9PS9Vc2VyU2NyaXB0PT0KCmxldCBzZWFyY2hfcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW
5kb3cubG9jYXRpb24uc2VhcmNoKTsKCmlmIChzZWFyY2hfcGFyYW1zLmdldCgiciIpICE9PSBudWxsKSB7C
iAgICB3aW5kb3cubG9jYXRpb24gPSBhdG9iKGRlY29kZVVSSUNvbXBvbmVudChzZWFyY2hfcGFyYW1zLmdl
dCgiciIpKSk7Cn0gZWxzZSB7CgogICAgLy8gaWZyYW1lIGNoZWNrCiAgICBpZiAod2luZG93LnBhcmVudC5
sb2NhdGlvbiAhPSB3aW5kb3cubG9jYXRpb24pIHsgcmV0dXJuIH0KIAogICAgLy8gY2hlY2sgaWYgcGFnZS
BpcyBkb3dubG9hZCBwYWdlCiAgICBsZXQgcmVfZG93bmxvYWQgPSAvXlwvZG93bmxvYWQoXC9bMC05XStcL
1teXC9dKylcLy87CiAgICBsZXQgaXNfZG93bmxvYWQgPSByZV9kb3dubG9hZC5leGVjKHdpbmRvdy5sb2Nh
dGlvbi5wYXRobmFtZSk7CiAgICAKICAgIGlmIChpc19kb3dubG9hZCAhPT0gbnVsbCkgewogICAgICAgIHd
pbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9IGlzX2Rvd25sb2FkWzFdOwogICAgICAgIHJldHVybjsKICAgIH
0KCiAgICB2YXIgcGF0aHMgPSBbIi9jYXB0Y2hhIiwgIi9jb3VudGRvd25faW1wcmVzc2lvbj90cmFmZmljT
3JpZ2luPW5ldHdvcmsiLCAiL3RvZG9faW1wcmVzc2lvbj9tb2JpbGU9dHJ1ZSZ0cmFmZmljT3JpZ2luPW5l
dHdvcmsiXQoKICAgIHBhdGhzLm1hcChwYXRoID0+IHsKICAgICAgICBHTS54bWxIdHRwUmVxdWVzdCh7CiA
gICAgICAgICAgIG1ldGhvZDogIkdFVCIsCiAgICAgICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICAgIC
AgICJVc2VyLUFnZW50IjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfNCBsaWtlI
E1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTMu
MSBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgdXJsOiA
iaHR0cHM6Ly9wdWJsaXNoZXIubGlua3ZlcnRpc2UuY29tL2FwaS92MS9yZWRpcmVjdC9saW5rIiArIHdpbm
Rvdy5sb2NhdGlvbi5wYXRobmFtZSArIHBhdGgKICAgICAgICB9KTsKICAgIH0pCgoKICAgIGxldCBvID0ge
wogICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS5nZXRUaW1lKCksCiAgICAgICAgcmFuZG9tOiAiNjU0
ODMwNyIKICAgIH07CiAgICB2YXIgYnlwYXNzX3VybCA9ICJodHRwczovL3B1Ymxpc2hlci5saW5rdmVydGl
zZS5jb20vYXBpL3YxL3JlZGlyZWN0L2xpbmsvc3RhdGljIiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT
sKICAgIEdNLnhtbEh0dHBSZXF1ZXN0KHsKICAgICAgICBtZXRob2Q6ICJHRVQiLAogICAgICAgIGhlYWRlc
nM6IHsKICAgICAgICAgICAgIlVzZXItQWdlbnQiOiAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9u
ZSBPUyAxM180IGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWN
rbykgVmVyc2lvbi8xMy4xIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xIgogICAgICAgIH0sCiAgICAgIC
AgdXJsOiBieXBhc3NfdXJsLAogICAgICAgIG9ubG9hZDogZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgI
CAgICAgIHZhciBqc29uID0gSlNPTi5wYXJzZShyZXNwb25zZS5yZXNwb25zZVRleHQpOwogICAgICAgICAg
ICBvLmxpbmtfaWQgPSBqc29uLmRhdGEubGluay5pZAogICAgICAgICAgICBvID0geyBzZXJpYWw6IGJ0b2E
oSlNPTi5zdHJpbmdpZnkobykpIH0KICAgICAgICAgICAgYnlwYXNzX3VybCA9ICJodHRwczovL3B1Ymxpc2
hlci5saW5rdmVydGlzZS5jb20vYXBpL3YxL3JlZGlyZWN0L2xpbmsiICsgd2luZG93LmxvY2F0aW9uLnBhd
GhuYW1lICsgIi90YXJnZXQ/WC1MaW5rdmVydGlzZS1VVD0iICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oIlgt
TElOS1ZFUlRJU0UtVVQiKTsKCiAgICAgICAgICAgIEdNLnhtbEh0dHBSZXF1ZXN0KHsKICAgICAgICAgICA
gICAgIG1ldGhvZDogIlBPU1QiLAogICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgIC
AgICAgICJVc2VyLUFnZW50IjogIk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfNCBsa
WtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24v
MTMuMSBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMSIsCiAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQ
tVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIG
RhdGE6IEpTT04uc3RyaW5naWZ5KG8pLAogICAgICAgICAgICAgICAgdXJsOiBieXBhc3NfdXJsLAogICAgI
CAgICAgICAgICAgb25sb2FkOiBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICAgICB2
YXIganNvbiA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzcG9uc2VUZXh0KTsKICAgICAgICAgICAgICAgICA
gICB3aW5kb3cubG9jYXRpb24gPSBqc29uLmRhdGEudGFyZ2V0OwogICAgICAgICAgICAgICAgfQogICAgIC
AgICAgICB9KTsKICAgICAgICB9CiAgICB9KTsKfQ=="},{"name":"MoreCAPTCHA","options":
{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":f
alse,"compat_prototypes":false,"compat_wrappedjsobject":false,"compatopts_for_requi
res":true,"noframes":null,"override":
{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":
true,"orig_connects":[],"orig_excludes":[],"orig_includes":
["https://www.google.com/recaptcha/api2/bframe?*"],"orig_matches":
[],"orig_noframes":null,"orig_run_at":"document-start","use_blockers":
[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":
[]},"run_at":null},"storage":{"ts":1618373471751,"data":
{}},"enabled":true,"position":3,"file_url":"https://greasyfork.org/scripts/31088-
morecaptcha/code/MoreCAPTCHA.user.js","uuid":"01f5bdf0-3e4e-459b-a03e-
a42dac0ef5a5","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgIE1vcmVDQVBUQ0h
BCi8vIEBuYW1lc3BhY2UgICBodHRwczovL2V1Z2Vub3guYXBwc3BvdC5jb20vCi8vIEBkZXNjcmlwdGlvbi
BTcGVlZHMgdXAgc29sdmluZyBHb29nbGUgcmVDQVBUQ0hBIGNoYWxsZW5nZXMgYnkgc2hvcnRlbmluZyB0c
mFuc2l0aW9uIGVmZmVjdHMgYW5kIHByb3ZpZGluZyBjb250aW51b3VzIHNlbGVjdGlvbiBhYmlsaXR5Lgov
LyBAdmVyc2lvbiAgICAgMS4yCi8vIEBhdXRob3IgICAgICBFdWdlbmUgTm91dmVsbGlldSA8ZXVnZW5veF9
nbWFpbF9jb20+Ci8vIEBsaWNlbnNlICAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQovLyBAaW5jbH
VkZSAgICAgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpMi9iZnJhbWU/KgovLyBAcnVuL
WF0ICAgICAgZG9jdW1lbnQtc3RhcnQKLy8gQGdyYW50ICAgICAgIHVuc2FmZVdpbmRvdwovLyBAaG9tZXBh
Z2VVUkwgaHR0cHM6Ly9ldWdlbm94LmFwcHNwb3QuY29tL3NjcmlwdC9tb3JlY2FwdGNoYQovLyA9PS9Vc2V
yU2NyaXB0PT0KCi8vIENvcHlyaWdodCAoQykgMjAxNyBFdWdlbmUgTm91dmVsbGlldSA8ZXVnZW5veF9nbW
FpbF9jb20+Ci8vCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpY
nV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24
sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi8vIChhdCB5b3VyIG9wdGlvbikgYW55IG
xhdGVyIHZlcnNpb24uCi8vCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0a
GF0IGl0IHdpbGwgYmUgdXNlZnVsLAovLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgovLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSB
QQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi8vIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvci
Btb3JlIGRldGFpbHMuCi8vCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOV
SBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNl
ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgp2YXIgU1BFRUQgPSA1OwoKdmFyIHNlbGVjdG9
yID0gewogIHNlbGVjdGluZzogdW5kZWZpbmVkLAoKICBoYW5kbGU6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgIC
B2YXIgdGlsZXMgPSBuZXcgU2V0KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNyYy1pbWFnZXNlbGVjd
CB0ZCcpKSwgdGlsZSA9IGV2ZW50LnRhcmdldDsKCiAgICB3aGlsZSAodGlsZSAmJiAhIHRpbGVzLmhhcyh0
aWxlKSkgewogICAgICB0aWxlID0gdGlsZS5wYXJlbnROb2RlOwogICAgfQoKICAgIGlmICh0aWxlKSB7CiA
gICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKIC
AgICAgdmFyIHNlbGVjdGVkID0gJ3NlbGVjdGVkJyBpbiB0aWxlLmRhdGFzZXQgJiYgdGlsZS5kYXRhc2V0L
nNlbGVjdGVkID09ICd0cnVlJzsKCiAgICAgIGlmICh0aGlzW2V2ZW50LnR5cGVdKHNlbGVjdGVkKSkgewog
ICAgICAgIHRpbGUuZGF0YXNldC5zZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW5nOwoKICAgICAgICB0aWxlLmZ
pcnN0RWxlbWVudENoaWxkLmNsaWNrKCk7CiAgICAgIH0KICAgIH0KICB9LAoKICBtb3VzZW92ZXI6IGZ1bm
N0aW9uKHNlbGVjdGVkKSB7CiAgICByZXR1cm4gISAodGhpcy5zZWxlY3RpbmcgPT09IHVuZGVmaW5lZCB8f
CB0aGlzLnNlbGVjdGluZyA9PT0gc2VsZWN0ZWQpOwogIH0sCgogIG1vdXNlZG93bjogZnVuY3Rpb24oc2Vs
ZWN0ZWQpIHsKICAgIHRoaXMuc2VsZWN0aW5nID0gISBzZWxlY3RlZDsKCiAgICByZXR1cm4gdHJ1ZTsKICB
9LAoKICBtb3VzZXVwOiBmdW5jdGlvbihzZWxlY3RlZCkgewogICAgdGhpcy5zZWxlY3RpbmcgPSB1bmRlZm
luZWQ7CgogICAgcmV0dXJuIGZhbHNlOwogIH0KfTsKCndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJ
ywgZnVuY3Rpb24oZXZlbnQpIHsKICB2YXIgc2hlZXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykpLnNoZWV0OwoKICBzaGVldC5pbnNlcnRSdWxlKAogICA
gJy5yYy1pbWFnZXNlbGVjdC10YWJsZS0zMywgLnJjLWltYWdlc2VsZWN0LXRhYmxlLTQyLCAucmMtaW1hZ2
VzZWxlY3QtdGFibGUtNDQnICsKICAgICd7IHRyYW5zaXRpb24tZHVyYXRpb246ICcgKyAoMSAvIFNQRUVEK
SArICdzICFpbXBvcnRhbnQgfScsIDApOwogIHNoZWV0Lmluc2VydFJ1bGUoCiAgICAnLnJjLWltYWdlc2Vs
ZWN0LXRpbGUnICsKICAgICd7IHRyYW5zaXRpb24tZHVyYXRpb246ICcgKyAoNCAvIFNQRUVEKSArICdzICF
pbXBvcnRhbnQgfScsIDEpOwogIHNoZWV0Lmluc2VydFJ1bGUoCiAgICAnLnJjLWltYWdlc2VsZWN0LWR5bm
FtaWMtc2VsZWN0ZWQnICsKICAgICd7IHRyYW5zaXRpb24tZHVyYXRpb246ICcgKyAoMiAvIFNQRUVEKSArI
CdzICFpbXBvcnRhbnQgfScsIDIpOwogIHNoZWV0Lmluc2VydFJ1bGUoCiAgICAnLnJjLWltYWdlc2VsZWN0
LXByb2dyZXNzJyArCiAgICAneyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAnICsgKDEgLyBTUEVFRCkgKyAncyA
haW1wb3J0YW50IH0nLCAzKTsKICBzaGVldC5pbnNlcnRSdWxlKAogICAgJy5yYy1pbWFnZS10aWxlLW92ZX
JsYXknICsKICAgICd7IHRyYW5zaXRpb24tZHVyYXRpb246ICcgKyAoMSAvIFNQRUVEKSArICdzICFpbXBvc
nRhbnQgfScsIDQpOwoKICB2YXIgaGFuZGxlciA9IHNlbGVjdG9yLmhhbmRsZS5iaW5kKHNlbGVjdG9yKTsK
CiAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBoYW5kbGVyLCBmYWxzZSk
7CiAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVyLCBmYWxzZS
k7CiAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlciwgZmFsc2UpO
wp9KTsKCmZ1bmN0aW9uIHB1Ymxpc2goZnVuYykgewogIGlmICh0eXBlb2YgZXhwb3J0RnVuY3Rpb24gPT0g
J2Z1bmN0aW9uJykgewogICAgcmV0dXJuIGV4cG9ydEZ1bmN0aW9uKGZ1bmMsIHVuc2FmZVdpbmRvdyk7CiA
gfQoKICByZXR1cm4gZnVuYzsKfQoKdmFyIF9fc2V0VGltZW91dCA9IHVuc2FmZVdpbmRvdy5zZXRUaW1lb3
V0LmJpbmQodW5zYWZlV2luZG93KTsKCnVuc2FmZVdpbmRvdy5zZXRUaW1lb3V0ID0gcHVibGlzaChmdW5jd
GlvbihjYWxsYmFjaywgZGVsYXkpIHsKICByZXR1cm4gX19zZXRUaW1lb3V0KGNhbGxiYWNrLCBOdW1iZXIo
ZGVsYXkpIC8gU1BFRUQpOwp9KTsK"},{"name":"Solved Media","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_prototyp
es":false,"noframes":null,"run_at":null,"override":{"use_includes":[],"orig_inc
ludes":["*"],"merge_includes":true,"use_matches":[],"orig_matches":
[],"merge_matches":true,"use_excludes":[],"orig_excludes":
[],"merge_excludes":true,"use_connects":[],"merge_connects":true,"use_blockers":
[],"orig_run_at":"document-end","orig_noframes":null,"orig_connects":
[]}},"storage":{"ts":1622029067300,"data":
{}},"enabled":true,"position":4,"file_url":"https://eugenox.appspot.com/blob/solved
media/solvedmedia.user.js","uuid":"f8e52b3c-d372-412d-a632-
c791036f5aff","source":"Ly8gPT1Vc2VyU2NyaXB0PT0NCi8vIEBuYW1lICAgICAgICBTb2x2ZWQgTWV
kaWENCi8vIEBuYW1lc3BhY2UgICBodHRwczovL2V1Z2Vub3guYXBwc3BvdC5jb20vDQovLyBAZGVzY3JpcH
Rpb24gQXV0b2NvbXBsZXRpb24gZm9yIFNvbHZlIE1lZGlhIGltYWdlIENBUFRDSEFzLg0KLy8gQHZlcnNpb
24gICAgIDEuMg0KLy8gQGF1dGhvciAgICAgIEV1Z2VuZSBOb3V2ZWxsaWV1IDxldWdlbm94X2dtYWlsX2Nv
bT4NCi8vIEBsaWNlbnNlICAgICBNSVQNCi8vIEBpbmNsdWRlICAgICAqDQovLyBAcnVuLWF0ICAgICAgZG9
jdW1lbnQtZW5kDQovLyBAZ3JhbnQgICAgICAgbm9uZQ0KLy8gQGhvbWVwYWdlVVJMIGh0dHBzOi8vZXVnZW
5veC5hcHBzcG90LmNvbS9zY3JpcHQvc29sdmVkbWVkaWENCi8vIEB1cGRhdGVVUkwgICBodHRwczovL2V1Z
2Vub3guYXBwc3BvdC5jb20vYmxvYi9zb2x2ZWRtZWRpYS9zb2x2ZWRtZWRpYS5tZXRhLmpzDQovLyBAZG93
bmxvYWRVUkwgaHR0cHM6Ly9ldWdlbm94LmFwcHNwb3QuY29tL2Jsb2Ivc29sdmVkbWVkaWEvc29sdmVkbWV
kaWEudXNlci5qcw0KLy8gPT0vVXNlclNjcmlwdD09DQoNCi8vIENvcHlyaWdodCAoYykgMjAxOCBFdWdlbm
UgTm91dmVsbGlldSA8ZXVnZW5veF9nbWFpbF9jb20+DQovLw0KLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ
3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZg0KLy8g
dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJ
lIiksIHRvIGRlYWwgaW4NCi8vIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbm
cgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8NCi8vIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZ
SwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzDQovLyBvZiB0
aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJ
uaXNoZWQgdG8gZG8NCi8vIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCi8vDQ
ovLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsb
CBiZSBpbmNsdWRlZCBpbiBhbGwNCi8vIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
U29mdHdhcmUuDQovLw0KLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0F
SUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1INCi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIE
xJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLA0KLy8gRklUTkVTUyBGT1IgQ
SBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
DQovLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1
BR0VTIE9SIE9USEVSDQovLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULC
BUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLA0KLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV
0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUNCi8vIFNPRlRX
QVJFLg0KDQondXNlIHN0cmljdCc7DQoNCnZhciBQSFJBU0VTID0gWw0KICAiMS4yMSBnaWdhd2F0dHMiLA0
KICAiNSBkb2xsYXIgc2hha2UiLA0KICAiNiBmZWV0IG9mIHNub3ciLA0KICAiOHRoIGNoZXZyb24iLA0KIC
AiYSB3aWxkIGNhcHRjaGEgYXBwZWFycyIsDQogICJhYmVsaWFuIGdyYXBlIiwNCiAgImFiaWRlIHdpdGggb
WUiLA0KICAiYWJyYWNhZGFicmEiLA0KICAiYWJzZW50IHdpdGhvdXQgbGVhdmUiLA0KICAiYWJzb2x1dGUg
emVybyIsDQogICJhY2NpZGVudGFsbHkgb24gcHVycG9zZSIsDQogICJhY2Ugb2Ygc3BhZGVzIiwNCiAgImF
jcm9zcyB0aGUgYm9hcmQiLA0KICAiYWRhcHQgaW1wcm92ZSIsDQogICJhZGFwdCBpbXByb3ZlIHN1Y2NlZW
QiLA0KICAiYWdhaW5zdCB0aGUgZ3JhaW4iLA0KICAiYWdyZWUgdG8gZGlzYWdyZWUiLA0KICAiYWwgY2Fwb
25lIiwNCiAgImFsbCBkYW5jaW5nIiwNCiAgImFsbCBncm93biB1cCIsDQogICJhbGwgb2YgdGhlIGFib3Zl
IiwNCiAgImFsbCBzaW5naW5nIiwNCiAgImFsbCB5b3VyIGJhc2UiLA0KICAiYWxsZXJnaWMgcmVhY3Rpb24
iLA0KICAiYWxtb3N0IGdvdCBpdCIsDQogICJhbHdheXMgdGhlcmUiLA0KICAiYW0gaSBoYXBweSIsDQogIC
JhbmNob3JzIGF3YXkiLA0KICAiYW5kIHRoYXQncyB0aGUgd2F5IGl0IGlzIiwNCiAgImFuZ2VsIGZvb2QiL
A0KICAiYW5vdGhlciBjYXN0bGUiLA0KICAiYW50aSBkZW50aXRlIiwNCiAgImFwcGxlIGp1aWNlIiwNCiAg
ImFwcGxlIHBpZSIsDQogICJhcHBsZSBzYXVjZSIsDQogICJhcHJpbCBtYXkiLA0KICAiYXByaWwgc2hvd2V
ycyIsDQogICJhcmUgd2UgdGhlcmUgeWV0IiwNCiAgImFyZSB5b3UgcmVhZHkiLA0KICAiYXJlIHlvdSB0aG
Uga2V5bWFzdGVyIiwNCiAgImFybXkgdHJhaW5pbmciLA0KICAiYXJteSB0cmFpbmluZyBzaXIiLA0KICAiY
XJvdW5kIGhlcmUiLA0KICAiYXMgaSBzZWUgaXQiLA0KICAiYXMgeW91IHdpc2giLA0KICAiYXNrIHF1ZXN0
aW9ucyIsDQogICJhdHRpbGEgdGhlIGh1biIsDQogICJhdXRvIGRyaXZpbmciLA0KICAiYXdlc29tZSBkdWR
lIiwNCiAgImF3ZXNvbWUgc2F1Y2UiLA0KICAiYXpnb3RocyBvZiBrcmlhIiwNCiAgImJhYmVsIGZpc2giLA
0KICAiYmFieSBibHVlcyIsDQogICJiYWJ5IGJvb21lciIsDQogICJiYWJ5IHN0ZXBzIiwNCiAgImJhY2sgd
G8gYmFzaWNzIiwNCiAgImJhY2sgdHJhY2siLA0KICAiYmFja2dyb3VuZCBub2lzZSIsDQogICJiYWNvbiBh
bmQgZWdncyIsDQogICJiYWQgYm9va3MiLA0KICAiYmFkIGVnZyIsDQogICJiYWl0IHRoZSBsaW5lIiwNCiA
gImJha2VkIGluIGEgcGllIiwNCiAgImJhbGQgZWFnbGUiLA0KICAiYmFsbCBvZiBjb25mdXNpb24iLA0KIC
AiYmFuYW5hIGJyZWFkIiwNCiAgImJhbmFuYSBzcGxpdCIsDQogICJiYW5hbmEgc3RhbmQiLA0KICAiYmFuZ
2VycyBhbmQgbWFzaCIsDQogICJiYXJiZXIgY2hhaXIiLA0KICAiYmFya2luZyBtYWQiLA0KICAiYmFza2V0
IGNhc2UiLA0KICAiYmF0ZWQgYnJlYXRoIiwNCiAgImJhdGggdG93ZWwiLA0KICAiYmF0aCB3YXRlciIsDQo
gICJiYXR0bGUgcm95YWxlIiwNCiAgImJhemluZ2EiLA0KICAiYmUgY2FyZWZ1bCIsDQogICJiZSBtaW5lIi
wNCiAgImJlIG15IGZyaWVuZCIsDQogICJiZSBuaWNlIiwNCiAgImJlIG5pbWJsZSBiZSBxdWljayIsDQogI
CJiZSBzZXJpb3VzIG5vdyIsDQogICJiZWFjaCBiYWxsIiwNCiAgImJlYW4gdG93biIsDQogICJiZWFucyBh
bmQgcmljZSIsDQogICJiZWF1dGlmdWwgZnJpZW5kc2hpcCIsDQogICJiZWUgbGluZSIsDQogICJiZWVuIHR
oZXJlIiwNCiAgImJlZXIgaW4gYSBib3R0bGUiLA0KICAiYmVlciBpbiB0aGUgYm90dGxlIiwNCiAgImJlZX
Mga25lZXMiLA0KICAiYmVnIHRoZSBxdWVzdGlvbiIsDQogICJiZWxpZXZlIG1lIiwNCiAgImJlbHQgdXAiL
A0KICAiYmVybGluIHdhbGwiLA0KICAiYmVzdCBmaXQgbGluZSIsDQogICJiZXN0IHNlbGxlciIsDQogICJi
ZXR0ZXIgY2FsbCBzYXVsIiwNCiAgImJldHRlciBoYWxmIiwNCiAgImJldHRlciBuZXh0IHRpbWUiLA0KICA
iYmV5b25kIG1lIiwNCiAgImJpZyBicm90aGVyIiwNCiAgImJpZyBrYWh1bmEgYnVyZ2VyIiwNCiAgImJpZy
Bub3NlIiwNCiAgImJpZyBzY3JlZW4iLA0KICAiYmlnZ2VyIGluIHRleGFzIiwNCiAgImJpa2UgcmlkZXIiL
A0KICAiYmlyZCBjYWdlIiwNCiAgImJpcnRoZGF5IGJveSIsDQogICJiaXJ0aGRheSBnaXJsIiwNCiAgImJp
emFycm8gamVycnkiLA0KICAiYmxhY2sgYW5kIHdoaXRlIiwNCiAgImJsYWNrIGNvZmZlZSIsDQogICJibGF
jayBnb2xkIiwNCiAgImJsYWNrIGphY2siLA0KICAiYmxhY2sgbW9uZGF5IiwNCiAgImJsYWhibGFoYmxhaC
IsDQogICJibGF6ZSBhIHRyYWlsIiwNCiAgImJsZXNzIHlvdSIsDQogICJibGluZGVkIGJ5IHNjaWVuY2UiL
A0KICAiYmxvZyB0aGlzIiwNCiAgImJsb29kIHR5cGUiLA0KICAiYmx1ZSBjaGVlc2UiLA0KICAiYmx1ZSBy
aWJib24iLA0KICAiYmx1ZSBza3kiLA0KICAiYm9iIGxvYmxhdyIsDQogICJib2R5IHN1cmZpbmciLA0KICA
iYm9pbGVkIGNhYmJhZ2UiLA0KICAiYm9uIHZveWFnZSIsDQogICJib25kIGphbWVzIGJvbmQiLA0KICAiYm
9uZSBkcnkiLA0KICAiYm9udXMgcG9pbnRzIiwNCiAgImJvbnVzIHJvdW5kIiwNCiAgImJvb2sgcmVhZGluZ
yIsDQogICJib29rIHdvcm0iLA0KICAiYm9vbWVyYW5nIiwNCiAgImJvcm4gdG8gcnVuIiwNCiAgImJvdHMg
YXJlIGJhZCBtJ2theSIsDQogICJib3R0bGVkIHdhdGVyIiwNCiAgImJvd3RpZXMgYXJlIGNvb2wiLA0KICA
iYm94IGplbGx5IGZpc2giLA0KICAiYm94IGtpdHR5IiwNCiAgImJveCBvZiBjaG9jb2xhdGVzIiwNCiAgIm
JyYWFhaW5zIiwNCiAgImJyYW5kIHNwYW5raW5nIG5ldyIsDQogICJicmVhZCBvZiBsaWZlIiwNCiAgImJyZ
WFrIHRoZSBpY2UiLA0KICAiYnJpY2sgaG91c2UiLA0KICAiYnJva2VuIGhlYXJ0IiwNCiAgImJyb2tlbiBy
ZWNvcmQiLA0KICAiYnJ1Y2UgbGVlIiwNCiAgImJydXNoIHlvdXIgdGVldGgiLA0KICAiYnVja2xlIHlvdXI
gc2hvZSIsDQogICJidWZmYWxvIHdpbmciLA0KICAiYnVubnkgcmFiYml0IiwNCiAgImJ1cmdlciB3aXRoIG
ZyaWVzIiwNCiAgImJ1cm5pbmcgb2lsIiwNCiAgImJ1cm50IHNpZW5uYSIsDQogICJidXRsZXIgZGlkIGl0I
iwNCiAgImJ1dHRlciBzaWRlIGRvd24iLA0KICAiYnV0dG9uIGZseSIsDQogICJidXkgc29tZSB0aW1lIiwN
CiAgImJ5IGFuZCBsYXJnZSIsDQogICJieSB0aGUgYm9hcmQiLA0KICAiYnkgdGhlIGJvb2siLA0KICAiYnk
gdGhlIHNlYXNob3JlIiwNCiAgImNhYmJhZ2UgYm9yc2h0IiwNCiAgImNhYmJhZ2Ugc3RldyIsDQogICJjYW
VzYXIgc2FsYWQiLA0KICAiY2FsbCBtZSIsDQogICJjYWxsIG1lIG1heWJlIiwNCiAgImNhbiBpIGxvdmUiL
A0KICAiY2FuIHlvdSBzZWUiLA0KICAiY2FuZHkgYXBwbGUiLA0KICAiY2FuZHkgY2FuZSIsDQogICJjYXBp
dGFsIGdhaW4iLA0KICAiY2FwdGNoYSBpbiB0aGUgcnllIiwNCiAgImNhciB0cm91YmxlIiwNCiAgImNhcmJ
vbiBjb3B5IiwNCiAgImNhcmJvbiBmb290cHJpbnQiLA0KICAiY2FyZCBzaGFycCIsDQogICJjYXJwZSBkaW
VtIiwNCiAgImNhcnJ5IGEgdG93ZWwiLA0KICAiY2Fycnkgb24iLA0KICAiY2FyeSBncmFudCIsDQogICJjY
XNlIGNsb3NlZCIsDQogICJjYXQgZ290IHlvdXIgdG9uZ3VlIiwNCiAgImNhdGNoIHRoZSBtYW4iLA0KICAi
Y2F0cyBhbmQgZG9ncyIsDQogICJjYXRzIHBhamFtYXMiLA0KICAiY2hhaXNlIGxvdW5nZSIsDQogICJjaGF
sbGVuZ2UgYWNjZXB0ZWQiLA0KICAiY2hhbmdlIHRoZSB3b3JsZCIsDQogICJjaGFuZ2UgeW91cnNlbGYiLA
0KICAiY2hhbm5lbCBzdXJmaW5nIiwNCiAgImNoYXJsZXkgaG9yc2UiLA0KICAiY2hhcmxpZSBiaXQgbWUiL
A0KICAiY2hhcm0gb2ZmZW5zaXZlIiwNCiAgImNoYXJtZWQgbGlmZSIsDQogICJjaGVjayB5b3VyIGNvYXQi
LA0KICAiY2hlY2sgeW91ciB3b3JrIiwNCiAgImNoZWVzZSBidXJnZXIiLA0KICAiY2hlZXNlIGZyaWVzIiw
NCiAgImNoZWVzZSBzdGVhayIsDQogICJjaGVycnkgb24gdG9wIiwNCiAgImNoaWNrZW4gZmVlZCIsDQogIC
JjaGlja2VuIG5vb2RsZSIsDQogICJjaGlja2VuIHNhbGFkIiwNCiAgImNoaWNrZW4gc291cCIsDQogICJja
GluIGJveSIsDQogICJjaGl0IGNoYXQiLA0KICAiY2hvY28gbGF6ZXIgYm9vbSIsDQogICJjaG9jb2xhdGUg
Y29va2llIiwNCiAgImNob2NvbGF0ZSBtaWxrIiwNCiAgImNob3cgZG93biIsDQogICJjaHVjayBub3JyaXM
iLA0KICAiY2lyY2xlIG9mIGxpZmUiLA0KICAiY2l2aWwgd2FyIiwNCiAgImNsZWFuIGFuZCBzaGlueSIsDQ
ogICJjbGVhbiBoYW5kcyIsDQogICJjbGVhciBibHVlIHdhdGVyIiwNCiAgImNsZWFyIHNhaWxpbmciLA0KI
CAiY2xpY2ssIGNsaWNrLCBjbGljayIsDQogICJjbGlmZiBoYW5nZXIiLA0KICAiY2xvZCBob3BwZXIiLA0K
ICAiY2xvc2UgcXVhcnRlcnMiLA0KICAiY2xvdWQgbmluZSIsDQogICJjbG93biBhcm91bmQiLA0KICAiY29
mZmVlIGNhbiIsDQogICJjb2xkIGNvbWZvcnQiLA0KICAiY29sZCBmZWV0IiwNCiAgImNvbGQgaGF0IiwNCi
AgImNvbGQgc2hvdWxkZXIiLA0KICAiY29sZCB0dXJrZXkiLA0KICAiY29sZXNsYXciLA0KICAiY29sbGFib
3JhdGUgYW5kIGxpc3RlbiIsDQogICJjb2xvcmVkIHBhcGVyIiwNCiAgImNvbWUgYWxvbmciLA0KICAiY29t
ZSBhbG9uZyBwb25kIiwNCiAgImNvbWUgYmFjayIsDQogICJjb21lIGNsZWFuIiwNCiAgImNvbWUgb24gZG9
3biIsDQogICJjb21lIHdoYXQgbWF5IiwNCiAgImNvbWZvcnQgem9uZSIsDQogICJjb21tYSBjb21tYSIsDQ
ogICJjb21tb24gbGF3IiwNCiAgImNvbXBsZXggbnVtYmVyIiwNCiAgImNvbnN0cnVjdGlvbiBhaGVhZCIsD
QogICJjb29raWUgY3V0dGVyIiwNCiAgImNvb2wgaGVhZHMgcHJldmFpbCIsDQogICJjb3AgYW4gYXR0aXR1
ZGUiLA0KICAiY29yIGJsaW1leSIsDQogICJjb3Jkb24gYmxldSIsDQogICJjb3JuZWQgYmVlZiIsDQogICJ
jb3R0b24gb24iLA0KICAiY291bnQgeW91ciBjaGFuZ2UiLA0KICAiY291bnRpbmcgc2hlZXAiLA0KICAiY2
92ZXJlZCBicmlkZ2UiLA0KICAiY3JhYiBjYWtlIiwNCiAgImNyYXlvbGEiLA0KICAiY3JlYW0gYW5kIHN1Z
2FyIiwNCiAgImNyZWF0ZSBuZXcgdGhpbmdzIiwNCiAgImNyZWF0aXZlIHByb2Nlc3MiLA0KICAiY3JlYXRp
dmUgdmlzaW9uIiwNCiAgImNyZWVweSBjcmF3bGVyIiwNCiAgImNyaW1lIG9mIHBhc3Npb24iLA0KICAiY3J
vY29kaWxlIHRlYXJzIiwNCiAgImNyb3AgdXAiLA0KICAiY3Jvc3MgdGhlIHJvYWQiLA0KICAiY3Jvc3MgdG
hlIHJ1Ymljb24iLA0KICAiY3ViaWMgc3BsaW5lIiwNCiAgImN1Y3VtYmVyIHNhbmR3aWNoIiwNCiAgI
mN1cCBjYWtlIiwNCiAgImN1cGlkJ3MgYXJyb3ciLA0KICAiY3VyYXRlJ3MgZWdnIiwNCiAgImN1cnJ5IGZh
dm91ciIsDQogICJjdXQgYW5kIHJ1biIsDQogICJjdXQgdGhlIG11c3RhcmQiLA0KICAiZGFsZWsgYXN5bHV
tIiwNCiAgImRhbGxhcyB0ZXhhcyIsDQogICJkYW5jZSBhbGwgbmlnaHQiLA0KICAiZGFuaXNoIHJvYm90IG
RhbmNlcnMiLA0KICAiZGFyayBob3JzZSIsDQogICJkYXMgb29udHoiLA0KICAiZGF2aWQgYWZ0ZXIgZGVud
GlzdCIsDQogICJkZWFkIGJhdHRlcnkiLA0KICAiZGVhZCByaW5nZXIiLA0KICAiZGVhbCBtZSBpbiIsDQog
ICJkZWFyIGNvb2tpZSIsDQogICJkZWFyIG1yIHZlcm5vbiIsDQogICJkZWFyIHNpciIsDQogICJkZWVwIHR
ob3VnaHQiLA0KICAiZGVlcCB3YXRlcnMiLA0KICAiZGhhcm1hIGluaXRpYXRpdmUiLA0KICAiZGljZWQgb2
5pb24iLA0KICAiZGlkZGx5IHNxdWF0IiwNCiAgImRpZ2l0YWwgY2xvY2siLA0KICAiZGluZyBhIGxpbmciL
A0KICAiZGlubmVyIGJlbGwiLA0KICAiZGlub3NhdXIgc3BhY2VzaGlwIiwNCiAgImRpc2ggd2F0ZXIiLA0K
ICAiZG8gYSBsaXR0bGUgZGFuY2UiLA0KICAiZG8gYmUgZG8gYmUgZG8iLA0KICAiZG8gaXQgbm93IiwNCiA
gImRvIG1vcmUgc2l0dXBzIiwNCiAgImRvIG5vdCB0b3VjaCIsDQogICJkbyBvciBkbyBub3QiLA0KICAiZG
8gdW50byBvdGhlcnMiLA0KICAiZG8gd2FoIGRpdHR5IiwNCiAgImRvIHlvdSBiZWxpZXZlIGluIG1pcmFjb
GVzIiwNCiAgImRvIHlvdSBsb3ZlIG1lIiwNCiAgImRvY3RvciBjYWxpZ2FyaSIsDQogICJkb2N0b3Igd2hv
IiwNCiAgImRvZSBhIGRlZXIiLA0KICAiZG9nIGRheXMiLA0KICAiZG9nJ3MgYnJlYWtmYXN0IiwNCiAgImR
vZydzIGRpbm5lciIsDQogICJkb2dhcHVzIiwNCiAgImRvZ3MgYW5kIGNhdHMgbGl2aW5nIHRvZ2V0aGVyIi
wNCiAgImRvbGxhciBiaWxsIiwNCiAgImRvbGxhciBzaWducyIsDQogICJkb2xsYXJzIHRvIGRvbnV0cyIsD
QogICJkb21lc3RpYyBzcHlpbmciLA0KICAiZG9uJ3QgYmUgbGF0ZSIsDQogICJkb24ndCBjb3VudCBvbiBp
dCIsDQogICJkb24ndCBkYXdkbGUiLA0KICAiZG9uJ3Qgc3RvcCIsDQogICJkb24ndCB3YXN0ZSB0aW1lIiw
NCiAgImRvbmUgdGhhdCIsDQogICJkb25rZXkncyB5ZWFycyIsDQogICJkb29kYWggbWFuIiwNCiAgImRvdW
JsZSBjcm9zcyIsDQogICJkb3VibGUgY3Jvc3NlZCIsDQogICJkb3VibGUgZHV0Y2giLA0KICAiZG91YmxlI
Gp1bXAiLA0KICAiZG91YmxlIHJhaW5ib3ciLA0KICAiZG91YmxlIHRpbWUiLA0KICAiZG91YmxlIHdoYW1t
eSIsDQogICJkb3duIHRoZSBoYXRjaCIsDQogICJkb3duIHRoZSByYWJiaXQgaG9sZSIsDQogICJkb3dud2F
yZCBzbG9wZSIsDQogICJkcmFnIHJhY2UiLA0KICAiZHJhZ29uIHdpdGggbWF0Y2hlcyIsDQogICJkcmFnb2
5mbHkiLA0KICAiZHJhbWF0aWMgY2hpcG11bmsiLA0KICAiZHJhdyBhIGJsYW5rIiwNCiAgImRyYXdpbmcgY
m9hcmQiLA0KICAiZHJlYW0gYmlnIiwNCiAgImRyaW5rIG1pbGsiLA0KICAiZHJpdmUgbWUgdG8gZmlyZW56
ZSIsDQogICJkcm9wIHRhYmxlIHVzZXJzIiwNCiAgImRydW1oZWFkIiwNCiAgImRydW1tZXIgYm95IiwNCiA
gImRyeSBjbGVhbiBvbmx5IiwNCiAgImR1ZWxpbmcgYmFuam9zIiwNCiAgImR1c2sgdGlsbCBkYXduIiwNCi
AgImR1c3QgYnVubnkiLA0KICAiZHVzdCB1cCIsDQogICJkdXZldCBkYXkiLA0KICAiZHluYW1vIGNsb2NrI
iwNCiAgImVhciBjYW5keSIsDQogICJlYXIgbWFyayIsDQogICJlYXIgbXVmZnMiLA0KICAiZWFzeSBhcyBj
YWtlIiwNCiAgImVhc3kgYXMgcGllIiwNCiAgImVhc3kgcGVhc3kiLA0KICAiZWFzeSBzdHJlZXQiLA0KICA
iZWF0IGNvdXMgY291cyIsDQogICJlYXQgb3V0IiwNCiAgImVhdCB5b3VyIGRpbm5lciIsDQogICJlYXQgeW
91ciB2ZWdnaWVzIiwNCiAgImVhdCB5b3VyIHZpdGFtaW5zIiwNCiAgImVja3Mgd2h5IHplZSIsDQogICJlZ
GdhciBkZWdhcyIsDQogICJlZ2cgb24iLA0KICAiZWdncyB0ZXIgbWluYXRlIiwNCiAgImVpZ2h0eSBzaXgi
LA0KICAiZWxlY3RybyBoZWFkIiwNCiAgImVsZXZhdG9yIGdvaW5nIHVwIiwNCiAgImVtcGVyb3IncyBjbG9
0aGVzIiwNCiAgImVtcGlyZSBzdGF0ZSBvZiBtaW5kIiwNCiAgImVuZCBvZiBzdG9yeSIsDQogICJlbmdsaX
NoIG11ZmZpbiIsDQogICJlbmpveSBsaWZlIiwNCiAgImVybWFoZ2VyZCBjYXBjaGVyIiwNCiAgImV2aWwgZ
XllIiwNCiAgImV2aWwgZ2VuaXVzIiwNCiAgImV4Y2VlZGluZ2x5IHdlbGwgcmVhZCIsDQogICJleGNsYW1h
dGlvbiIsDQogICJleGVyY2lzZSBtb3JlIiwNCiAgImV4dHJhIGNoZWVzZSIsDQogICJmYWNlIHRoZSBtdXN
pYyIsDQogICJmYWNlIHRvIGZhY2UiLA0KICAiZmFkZSBhd2F5IiwNCiAgImZhaXIgYW5kIHNxdWFyZSIsDQ
ogICJmYWlyIHBsYXkiLA0KICAiZmFpcnkgZ29kbW90aGVyIiwNCiAgImZhaXJ5IHRhbGUiLA0KICAiZmFpd
CBhY2NvbXBsaSIsDQogICJmYWxsIGd1eSIsDQogICJmYWxsaW5nIHBpYW5vcyIsDQogICJmYW5jeSBmcmVl
IiwNCiAgImZhbmN5IHBhbnRzIiwNCiAgImZhciBhd2F5IiwNCiAgImZhcnNpY2FsIGFxdWF0aWMgY2VyZW1
vbnkiLA0KICAiZmFzaGlvbiB2aWN0aW0iLA0KICAiZmFzdCBhbmQgbG9vc2UiLA0KICAiZmFzdCBhc2xlZX
AiLA0KICAiZmF0aGVyIHRpbWUiLA0KICAiZmF0aGVyIHVuY2xlIiwNCiAgImZhdGhvbSBvdXQiLA0KICAiZ
mF2YSBiZWFucyIsDQogICJmZWVkaW5nIGZyZW56eSIsDQogICJmZWVsaW5nIGJsdWUiLA0KICAiZmVsbG93
IHRyYXZlbGxlciIsDQogICJmZXplcyBhcmUgY29vbCIsDQogICJmaWVsZCBkYXkiLA0KICAiZmlmdGggY29
sdW1uIiwNCiAgImZpbGwgaXQgdXAiLA0KICAiZmlsdGh5IGRpcnR5IG1lc3MiLA0KICAiZmlsdGh5IHJpY2
giLA0KICAiZmluYWdsZSdzIGxhdyIsDQogICJmaW5hbCBhbnN3ZXIiLA0KICAiZmluZ2VyIGxpY2tpbiBnb
29kIiwNCiAgImZpcmUgYnJpbSBzdG9uZSIsDQogICJmaXJlY3JhY2tlciIsDQogICJmaXJzdCBjb250YWN0
IiwNCiAgImZpcnN0IHBvc3QiLA0KICAiZmlyc3Qgd2F0ZXIiLA0KICAiZmlyc3Qgd29ybGQiLA0KICAiZml
zaCBhbmQgY2hpcHMiLA0KICAiZmlzaCBvbiIsDQogICJmaXNoeSBzbWVsbCIsDQogICJmbGFnIGRheSIsDQ
ogICJmbGF0IGZvb3QiLA0KICAiZmxhdCBvdXQiLA0KICAiZmxhdCB0aXJlIiwNCiAgImZsaXBhZGVscGhpY
SIsDQogICJmbGlwZmxvcHMiLA0KICAiZmx1eCBjYXBhY2l0b3IiLA0KICAiZm9sbG93IG1lIiwNCiAgImZv
bHNvbSBwcmlzb24iLA0KICAiZm9vbCdzIHBhcmFkaXNlIiwNCiAgImZvb2xzIGdvbGQiLA0KICAiZm9yIGt
lZXBzIiwNCiAgImZvciBzdXJlIiwNCiAgImZvciB0aGUgYmlyZHMiLA0KICAiZm9yIHRoZSBncmlwcGVyIi
wNCiAgImZvcmJpZGRlbiBmcnVpdCIsDQogICJmb3JlZ29uZSBjb25jbHVzaW9uIiwNCiAgImZvcmdldCB0a
GlzIiwNCiAgImZvcmdldCB5b3UiLA0KICAiZm9yayBrbmlmZSBzcG9vbiIsDQogICJmb3J0eSB0d28iLA0K
ICAiZm91bCBwbGF5IiwNCiAgImZvdXIgYnkgdHdvIiwNCiAgImZyYWJqb3VzIGRheSIsDQogICJmcmFuY2U
iLA0KICAiZnJhbmtseSBteSBkZWFyIiwNCiAgImZyZWUgaGF0IiwNCiAgImZyZWV6aW5nIHRlbXBlcmF0dX
JlcyIsDQogICJmcmVuY2ggZnJpZWQiLA0KICAiZnJlbmNoIGZyaWVzIiwNCiAgImZyZW5jaCBwaHJhc2VzI
iwNCiAgImZyZXNoIHdhdGVyIiwNCiAgImZyaWVkIGljZXMiLA0KICAiZnJpZWQgcmljZSIsDQogICJmcmll
bmQgem9uZSIsDQogICJmcm96ZW4gcGVhcyIsDQogICJmcnVpdCBzYWxhZCIsDQogICJmdWRkeSBkdWRkeSI
sDQogICJmdWxsIGhvdXNlIiwNCiAgImZ1bGwgbW9udHkiLA0KICAiZnVsbCBvZiBzdGFycyIsDQogICJmdW
xsIHN0b3AiLA0KICAiZnVsbCB0aWx0IiwNCiAgImZ1biB3aXRoIGZsYWdzIiwNCiAgImZ1bm55IGZhcm0iL
A0KICAiZnVzaWxsaSBqZXJyeSIsDQogICJmdXp6eSB3dXp6eSIsDQogICJnYWR6b29rcyIsDQogICJnYW1l
IGlzIHVwIiwNCiAgImdhbmduYW0gc3R5bGUiLA0KICAiZ2FyZGVuIG9mIGVkZW4iLA0KICAiZ2FybGljIHl
1bSIsDQogICJnYXRoZXJzIG1vc3MiLA0KICAiZ2VlIGxvdWlzZSIsDQogICJnZWUgd2hpeiIsDQogICJnZW
V6IGxvdWlzZSIsDQogICJnZW5lIHBhcm1lc2FuIiwNCiAgImdlbmVyYWwgdHNvIiwNCiAgImdlbmVyYXRpb
24geCIsDQogICJnZW5naGlzIGtoYW4iLA0KICAiZ2VvcmdlIHdhc2hpbmd0b24iLA0KICAiZ2V0IG91dCIs
DQogICJnZXQgb3ZlciBpdCIsDQogICJnZXQgd2VsbCIsDQogICJnZXQgeW91ciBnb2F0IiwNCiAgImdpYW5
0IGJ1bm55IHJhYmJpdCIsDQogICJnaWFudCBwYW5kYSIsDQogICJnaWRkeSBnb2F0IiwNCiAgImdpZnQgaG
9yc2UiLA0KICAiZ2ltbWUgcGl6emEiLA0KICAiZ2luZ2VyIGJyZWFkIiwNCiAgImdpdmUgb3IgdGFrZSIsD
QogICJnbGFzcyBjZWlsaW5nIiwNCiAgImdsYXplZCBkb251dCIsDQogICJnbG9iYWwgd2FybWluZyIsDQog
ICJnbyBiZXJzZXJrIiwNCiAgImdvIGZ1cnRoZXIiLA0KICAiZ28gZ2FkZ2V0IGdvIiwNCiAgImdvZXMgdG8
gZWxldmVuIiwNCiAgImdvbGQgbWVkYWwiLA0KICAiZ29sZCByZWNvcmQiLA0KICAiZ29sbHkgamVlcGVycy
IsDQogICJnb25lIGRvbGFsbHkiLA0KICAiZ29uZSBmaXNoaW5nIiwNCiAgImdvb2QgYWZ0ZXJub29uIiwNC
iAgImdvb2QgYXMgZ29sZCIsDQogICJnb29kIGJ1ZGR5IiwNCiAgImdvb2QgZGF5IiwNCiAgImdvb2QgZXZl
bmluZyIsDQogICJnb29kIGZvciBub3RoaW5nIiwNCiAgImdvb2QgZ3JpZWYiLA0KICAiZ29vZCBqb2IiLA0
KICAiZ29vZCBsdWNrIiwNCiAgImdvb2QgbW9ybmluZyIsDQogICJnb29kIG5pZ2h0IiwNCiAgImdvb2Qgbm
lnaHQgYW5kIGdvb2QgbHVjayIsDQogICJnb29kIHJpZGRhbmNlIiwNCiAgImdvb2Qgc2FtYXJpdGFuIiwNC
iAgImdvb2Qgd29yayIsDQogICJnb29keSBnb29keSBndW1kcm9wcyIsDQogICJnb29keSBndW1kcm9wIiwN
CiAgImdvb2R5IHR3byBzaG9lcyIsDQogICJnb29zZWJ1bXBzIiwNCiAgImdvcmRvbiBiZW5uZXR0IiwNCiA
gImdvdCBteSBtb2pvIiwNCiAgImdvdGhhbSBjaXR5IiwNCiAgImdvdGhpYyBhcmNoIiwNCiAgImdvdGhpYy
BjaHVyY2giLA0KICAiZ3JhaW4gb2Ygc2FsdCIsDQogICJncmFuZCBzbGFtIiwNCiAgImdyYXBlIHNvZGEiL
A0KICAiZ3Jhc3MgdXAiLA0KICAiZ3JhdmV5YXJkIHNoaWZ0IiwNCiAgImdyYXZ5IHRyYWluIiwNCiAgImdy
ZWFzZSB0aGUgc2tpZHMiLA0KICAiZ3JlYXNlZCBsaWdodG5pbmciLA0KICAiZ3JlYXQgc2NvdHQiLA0KICA
iZ3JlYXQgdW53YXNoZWQiLA0KICAiZ3JlZ29yeSBwZWNrIiwNCiAgImdyaWRsb2NrIiwNCiAgImdyaWxsZW
QgY2hlZXNlIiwNCiAgImdyb3VuZGhvZyBkYXkiLA0KICAiZ3J1bXB5IGNhdCIsDQogICJndWluZWEgcGlnI
iwNCiAgImd1aXRhciBwbGF5ZXIiLA0KICAiZ3VtIHNob2UiLA0KICAiZ3VuZyBobyIsDQogICJoYWJzb25z
IGNob2ljZSIsDQogICJoYWQgYSBncmVhdCBmYWxsIiwNCiAgImhhZCBtZSBhdCBoZWxsbyIsDQogICJoYWl
yeSBleWViYWxsIiwNCiAgImhhbGN5b24gZGF5cyIsDQogICJoYWxmIGRvbmUiLA0KICAiaGFsZiBlbXB0eS
IsDQogICJoYWxmIGZ1bGwiLA0KICAiaGFsZiBpbmNoIiwNCiAgImhhbGxvd2VkIGdyb3VuZCIsDQogICJoY
WxwIG1laCIsDQogICJoYW0gYW5kIGNoZWVzZSIsDQogICJoYW1idXJnZXIgYnVuIiwNCiAgImhhbW1lciB0
aW1lIiwNCiAgImhhbmQgb3ZlciBmaXN0IiwNCiAgImhhbmRzIGRvd24iLA0KICAiaGFuZ2VycyBhbmQgbWF
zaCIsDQogICJoYXBweSBhbm5pdmVyc2FyeSIsDQogICJoYXBweSBibGVzc2luZ3MiLA0KICAiaGFwcHkgY2
xhcHB5IiwNCiAgImhhcHB5IHJldGlyZW1lbnQiLA0KICAiaGFwcHkgdHJhaWxzIiwNCiAgImhhcmQgY2Fwd
GNoYSBpcyBoYXJkIiwNCiAgImhhcmQgY2hlZXNlIiwNCiAgImhhcmQgbGluZXMiLA0KICAiaGFyZCBzaGFy
cCIsDQogICJoYXJkZW5lZCBwcmVzdG9vcG5pY2tzIiwNCiAgImhhcnAgb24iLA0KICAiaGFzdGUgbWFrZXM
gd2FzdGUiLA0KICAiaGF0IGhlYWQiLA0KICAiaGF0IHRyaWNrIiwNCiAgImhhdmUgYSBwdXJwb3NlIiwNCi
AgImhhdmUgYW4gaW5rbGluZyIsDQogICJoYXZlIGNvdXJhZ2UiLA0KICAiaGF2ZSBmdW4iLA0KICAiaGUgb
G92ZXMgaGVyIiwNCiAgImhlYWQgY2FzZSIsDQogICJoZWFkIGhvbmNobyIsDQogICJoZWFkIG92ZXIgaGVl
bHMiLA0KICAiaGVhZHMgdXAiLA0KICAiaGVhbHRoeSBmb29kIiwNCiAgImhlYXIgaGVhciIsDQogICJoZWF
yIG1lIHJvYXIiLA0KICAiaGVhcnQgYnJlYWsiLA0KICAiaGVhcnQgc3RyaW5ncyIsDQogICJoZWFydCdzIG
NvbnRlbnQiLA0KICAiaGVhcnRhY2hlIiwNCiAgImhlYXQgdXAiLA0KICAiaGVhdGVkIGRlYmF0ZSIsDQogI
CJoZWF2ZW5zIHRvIGJldHN5IiwNCiAgImhlYXZ5IG1ldGFsIiwNCiAgImhlZWJpZSBqZWViaWVzIiwNCiAg
ImhlbGxvIG5ld21hbiIsDQogICJoZWxsbyBzd2VldGllIiwNCiAgImhlbGxvIHdhdHNvbiIsDQogICJoZWx
sbyB3b3JsZCIsDQogICJoZXJlIG9yIHRoZXJlIiwNCiAgImhlcmUncyBqb2hubnkiLA0KICAiaGV5IGJyb3
RoZXIiLA0KICAiaGlnZ2xlZHkgcGlnZ2xlZHkiLA0KICAiaGlnZ3MgYm9zb24iLA0KICAiaGlnaCBkZWYiL
A0KICAiaGlnaCBmaXZlIiwNCiAgImhpZ2ggZmx5ZXIiLA0KICAiaGlnaCBob3JzZSIsDQogICJoaWdoIHNs
ZWVwZXIiLA0KICAiaGlnaCB0aW1lIiwNCiAgImhpbSB3aXRoIGhlciIsDQogICJoaXNzeSBmaXQiLA0KICA
iaGlzdG9yeSByZXBlYXRzIGl0c2VsZiIsDQogICJoaXQgdGhlIGhheSIsDQogICJoaXQgdGhlIHNhY2siLA
0KICAiaG9hZ2llIHJvbGwiLA0KICAiaG9iYnkgaG9yc2UiLA0KICAiaG9ic29uJ3MgY2hvaWNlIiwNCiAgI
mhvY3VzIHBvY3VzIiwNCiAgImhvaSBwb2xsb2kiLA0KICAiaG9pdHktdG9pdHkiLA0KICAiaG9sZCB5b3Vy
IGhvcnNlcyIsDQogICJob2xkIHlvdXIgdG9uZ3VlIiwNCiAgImhvbWUgamFtZXMiLA0KICAiaG9uZXkgbXV
zdGFyZCIsDQogICJob29yYXkgaGVucnkiLA0KICAiaG9wcyBhIGRhaXN5IiwNCiAgImhvcnNlIGFuZCBjYX
J0IiwNCiAgImhvcnNlJ3MgbW91dGgiLA0KICAiaG90IGJsb29kZWQiLA0KICAiaG90IGRpZ2dpdHkgZG9nI
iwNCiAgImhvdCBkb2cgcm9sbCIsDQogICJob3QgcG9sYSIsDQogICJob3Qgc2F1Y2UiLA0KICAiaG92ZXIg
aGFuZCIsDQogICJob3cgYWJvdXQgbHVuY2giLA0KICAiaG93IGFib3V0IHRoYXQiLA0KICAiaG93IGFyZSB
5b3UiLA0KICAiaG93IGludGVyZXN0aW5nIiwNCiAgImhvdyBub3csIGJyb3duIGNvdyIsDQogICJob3cgcX
VhaW50IiwNCiAgImhvdyBzd2VldCIsDQogICJob3cncyBpdCBnb2luZyIsDQogICJob3dkeSBwYXJ0bmVyI
iwNCiAgImh1ZyBtZSIsDQogICJodWdnbGUgbXVn
Z2xlIiwNCiAgImh1bGsgc21hc2giLA0KICAiaHVua3ktZG9yeSIsDQogICJodXNoIHB1cHBpZXMiLA0KICA
iaSBhbSBjYXB0Y2hhIiwNCiAgImkgYW0gZmluZSIsDQogICJpIGFtIGhlcmUiLA0KICAiaSBjYW4gZG8gdG
hpcyIsDQogICJpIGNhbiBmaXggaXQiLA0KICAiaSBoYXZlIGZhbGxlbiIsDQogICJpIGtub3cgbm90aGluZ
yIsDQogICJpIGxpa2UgaHVtYW5zIiwNCiAgImkgbGlrZSBwZW9wbGUiLA0KICAiaSBsaWtlIHR1cnRsZXMi
LA0KICAiaSBsaWtlIHlvdSIsDQogICJpIGxvdmUgZGVhZGxpbmVzIiwNCiAgImkgbG92ZSBsYW1wIiwNCiA
gImkgbG92ZSB5b3UiLA0KICAiaSBtYWRlIHRlYSIsDQogICJpIG1vdXN0YWNoZSB5b3Ugd2h5IiwNCiAgIm
kgc2F3IHRoYXQiLA0KICAiaSBzZWUiLA0KICAiaSB0aGluayBpIGFtIiwNCiAgImkgdGhpbmsgaSBjYW4iL
A0KICAiaSB0aGluayBzbyIsDQogICJpIHdhbnQgY29udHJvbCIsDQogICJpJ2xsIG1ha2UgdGVhIiwNCiAg
ImknbSBiYXRtYW4iLA0KICAiaSdtIGJsZXNzZWQiLA0KICAiaSdtIGJsdXNoaW5nIiwNCiAgImknbSBjb2x
kIGJyciIsDQogICJpJ20gb25seSBodW1hbiIsDQogICJpJ20gc28gY29sZCIsDQogICJpJ20gc29ycnkiLA
0KICAiaSdtIHNvcnJ5IGRhdmUiLA0KICAiaSdtIHlvdXJzIiwNCiAgImljZSB0byBtZWV0IHlvdSIsDQogI
CJpZGsgbXkgYmZmIGppbGwiLA0KICAiaWYgaXQgZml0cyIsDQogICJpbSBjb2xkLiBicnIiLA0KICAiaW1h
Z2luZSBpbnNwaXJlIGNyZWF0ZSIsDQogICJpbiBhIGJveCIsDQogICJpbiBsaW1ibyIsDQogICJpbiBvdmV
yIG15IGhlYWQiLA0KICAiaW4gc3BhZGVzIiwNCiAgImluIHN0aXRjaGVzIiwNCiAgImluIHRoZSBhaXIiLA
0KICAiaW4gdGhlIGJveCIsDQogICJpbiB0aGUgY2FydCIsDQogICJpbiB0aGUgY2x1YiIsDQogICJpbiB0a
GUgZG9sZHJ1bXMiLA0KICAiaW4gdGhlIGxpbWVsaWdodCIsDQogICJpbmR1c3RyaWFsIHJldm9sdXRpb24i
LA0KICAiaW5mcmEgZGlnIiwNCiAgImluc2lkZSBvdXQiLA0KICAiaXMgaXQgZW5vdWdoIiwNCiAgImlzIGl
0IGhvdCIsDQogICJpcyBpdCBob3QgaW4gaGVyZSIsDQogICJpcyBpdCBwbHVnZ2VkIGluIiwNCiAgImlzIG
xvdyIsDQogICJpdCBkb2Vzbid0IGNvdW50IiwNCiAgIml0IGhhcHBlbnMiLA0KICAiaXQgaHVydHMiLA0KI
CAiaXQgaXMgY2VydGFpbiIsDQogICJpdCBpcyBlbm91Z2giLA0KICAiaXQgd2lsbCBwYXNzIiwNCiAgIml0
J3Mgb3ZlciIsDQogICJpdCdzIHN1cGVyIGVmZmVjdGl2ZSIsDQogICJpdm9yeSB0b3dlciIsDQogICJqYWJ
iZXIgd29ja3kiLA0KICAiamFjayBiZSBuaW1ibGUiLA0KICAiamFtIHRvbW9ycm93IiwNCiAgImpheSBnYX
RzYnkiLA0KICAiamVyayBzdG9yZSIsDQogICJqZXJyeSBidWlsdCIsDQogICJqaW1teSBjcmlja2V0IiwNC
iAgImppbW15IGhvcm5lciIsDQogICJqb2huIGxlbm5vbiIsDQogICJqb2huIHN0ZWluYmVjayIsDQogICJq
dW1wIGhpZ2hlciIsDQogICJqdW1wIG92ZXIiLA0KICAianVtcCB0aGUgY2FuZGxlc3RpY2siLA0KICAianV
tcCB0aGUgZ3VuIiwNCiAgImp1bXBpbmcgamFjayIsDQogICJqdW5lIGp1bHkiLA0KICAianVzdCBkYW5jZS
IsDQogICJqdXN0IGRlc2VydHMiLA0KICAianVzdCBkcml2ZSIsDQogICJqdXN0IGZyaWVuZHMiLA0KICAia
nVzdCBpbiB0aW1lIiwNCiAgImthbmdhcm9vIGNvdW50IiwNCiAgImthcm1hIHBvaW50cyIsDQogICJrZWVw
IGNhbG0iLA0KICAia2V5Ym9hcmQiLA0KICAia2V5Ym9hcmQgY2F0IiwNCiAgImtoeWJlciBwYXNzIiwNCiA
gImtpY2sgdGhlIGNhbiIsDQogICJraWNrIHlvdXIgaGVlbHMiLA0KICAia2luZG5lc3Mgb2Ygc3RyYW5nZX
JzIiwNCiAgImtpbmcgYXJ0aHVyIiwNCiAgImtpc3MgbWUiLA0KICAia2l0dGVuIG1pdHRlbnMiLA0KICAia
2l0dHkga2F0IiwNCiAgImtsYXR1IGJlcmFkYSBuaWt0byIsDQogICJrbmljayBrbmFjayIsDQogICJrbm9j
ayBhdCB0aGUgZG9vciIsDQogICJrbm9jayBiYWNrIiwNCiAgImtub2NrIGtub2NrIGtub2NrIHBlbm55Iiw
NCiAgImtub2NrIG9mZiIsDQogICJrbm9jayBvbiB3b29kIiwNCiAgImtub3cgdGhlIHJvcGVzIiwNCiAgIm
tub3cgdGh5IHNlbGYiLA0KICAia25vdyB5b3VyIHBhcmFkb3hlcyIsDQogICJrbm93IHlvdXIgcmlnaHRzI
iwNCiAgImtudWNrbGUgZG93biIsDQogICJrb3NoZXIgZGlsbCIsDQogICJrdW5kYWxpbmkgZXhwcmVzcyIs
DQogICJsYWJvdXIgb2YgbG92ZSIsDQogICJsYWRpZXMgZmlyc3QiLA0KICAibGFnZXIgZnJlbnp5IiwNCiA
gImxhbWUgZHVjayIsDQogICJsYXJkeS1kYXJkeSIsDQogICJsYXJrIGFib3V0IiwNCiAgImxhc2VyIGJlYW
1zIiwNCiAgImxhc3Qgc3RyYXciLA0KICAibGF0ZXIgZ2F0b3IiLA0KICAibGF1Z2ggYXQgbWUiLA0KICAib
GF3IG9mIHNpbmVzIiwNCiAgImxhd24gZ2lsYW5kIiwNCiAgImxhenkgc3VuZGF5IiwNCiAgImxlYXAgaGln
aGVyIiwNCiAgImxlYXBzIGFuZCBib3VuZHMiLA0KICAibGVhcm4gY2hhbGxlbmdlIGltcHJvdmUiLA0KICA
ibGVhcm4gZnJvbSBtaXN0YWtlcyIsDQogICJsZWFybiBzdWNjZWVkIiwNCiAgImxlYXJuIHRoZSByb3Blcy
IsDQogICJsZWFybiwgYWR2YW5jZSIsDQogICJsZWF2ZSBicml0bmV5IGFsb25lIiwNCiAgImxlYXZlIG1lI
GFsb25lIiwNCiAgImxlZnQgb3IgcmlnaHQiLA0KICAibGVmdCByaWdodCIsDQogICJsZWZ0eSBsb29zZXki
LA0KICAibGVzcyBpcyBtb3JlIiwNCiAgImxldCBnbyIsDQogICJsZXQgaXQgYmUiLA0KICAibGV0IG1lIGt
ub3ciLA0KICAibGV0IG1lIG91dCIsDQogICJsZXRzIGVhdCIsDQogICJsZXZlbCBwbGF5aW5nIGZpZWxkIi
wNCiAgImxpYmVydHkgYmVsbCIsDQogICJsaWJyYXJ5IGJvb2siLA0KICAibGlja2V0eSBzcGxpdCIsDQogI
CJsaWUgbG93IiwNCiAgImxpZ2h0IHNsZWVwZXIiLA0KICAibGlrZSBhIGJvc3MiLA0KICAibGlrZSB0aGUg
ZGlja2VucyIsDQogICJsaW5lYXIgYWxnZWJyYSIsDQogICJsaXR0bGUgYmlyZCB0b2xkIG1lIiwNCiAgImx
pdHRsZSBib2JieSB0YWJsZXMiLA0KICAibGl0dGxlIGRpZCBoZSBrbm93IiwNCiAgImxpdHRsZSBzaXN0ZX
IiLA0KICAibGl2ZSBmcmVlIiwNCiAgImxpdmUgaW4gdGhlIG1vbWVudCIsDQogICJsaXZlIGluIHRoZSBub
3ciLA0KICAibGl2ZSBsaWZlIiwNCiAgImxpdmUgbG9uZyArIHByb3NwZXIiLA0KICAibGl2ZSBsb3ZlIGlu
dGVybmV0IiwNCiAgImxpdmUgbG92ZSB0eXBlIiwNCiAgImxpdmUgdHJhbnNtaXNzaW9uIiwNCiAgImxpdmU
gd2l0aCBwdXJwb3NlIiwNCiAgImxpdmUgeW91ciBkcmVhbSIsDQogICJsaXZpbmcgZGF5bGlnaHRzIiwNCi
AgImxpdmluZyB0aGluZ3MiLA0KICAibGl6YXJkIHBvaXNvbnMgc3BvY2siLA0KICAibG8gYW5kIGJlaG9sZ
CIsDQogICJsb2FmIG9mIGJyZWFkIiwNCiAgImxvY2FsIGRlcmJ5IiwNCiAgImxvbCBjYXQiLA0KICAibG9s
bGVyc2thdGVzIiwNCiAgImxvbGx5IHBvcCIsDQogICJsb25kb24gY2FsbGluZyIsDQogICJsb25nIGRpdml
zaW9uIiwNCiAgImxvbmcgaW4gdGhlIHRvb3RoIiwNCiAgImxvb2sgYXdheSIsDQogICJsb29rIGJlZm9yZS
Bjcm9zc2luZyIsDQogICJsb29rIGJvdGggd2F5cyIsDQogICJsb29raW5nIGdsYXNzIiwNCiAgImxvc2UgZ
mFjZSIsDQogICJsb3N0IGxvdmUiLA0KICAibG91ZCBtdXNpYyIsDQogICJsb3ZlIGlzIGF1dG9tYXRpYyIs
DQogICJsb3ZlIGlzIGJsaW5kIiwNCiAgImxvdmUgbGlmZSIsDQogICJsb3ZlIG1lIiwNCiAgImxvdmUgeW9
1IiwNCiAgImxvdmUtaGF0ZSIsDQogICJsb3ZleSBkb3ZleSIsDQogICJsdWNpbGxlIDIiLA0KICAibHVja3
kgeW91IiwNCiAgImx1ZHdpZyB2YW4iLA0KICAibHVtcHkgZ3JhdnkiLA0KICAibHVuYXRpYyBmcmlkZ2UiL
A0KICAibHVuY2ggdGltZSIsDQogICJsdW5jaCB0dWVzZGF5IiwNCiAgIm1hZCBoYXR0ZXIiLA0KICAibWFk
IHNjaWVuY2UiLA0KICAibWFnaWMgZGVjb2RlciByaW5nIiwNCiAgIm1hZ2ljIGVpZ2h0IGJhbGwiLA0KICA
ibWFnaWNhbCByZWFsaXNtIiwNCiAgIm1hZ25ldGljIG1vbm9wb2xlIiwNCiAgIm1haW4gY2hhbmNlIiwNCi
AgIm1ham9yIGludGVyc2VjdGlvbiIsDQogICJtYWtlIGEgYmVlIGxpbmUiLA0KICAibWFrZSBoYXN0ZSIsD
QogICJtYWtlIGl0IHNvIiwNCiAgIm1ha2UgbXkgZGF5IiwNCiAgIm1hbnkgaGFwcHkgcmV0dXJucyIsDQog
ICJtYW55IHdpc2hlcyIsDQogICJtYXBsZSBzeXJ1cCIsDQogICJtYXJibGUgcnllIiwNCiAgIm1hcmNpYSB
tYXJjaWEgbWFyY2lhIiwNCiAgIm1hcmUncyBuZXN0IiwNCiAgIm1hcmdpbiBvZiBlcnJvciIsDQogICJtYX
JrIGl0IHplcm8iLA0KICAibWFya2V0IGZvcmNlcyIsDQogICJtYXJyeSBtZSIsDQogICJtYXJzIHJvdmVyI
iwNCiAgIm1hdGggdGVzdCIsDQogICJtYXlhbiBydWlucyIsDQogICJtZWEgY3VscGEiLA0KICAibWVhdCBh
bmQgZHJpbmsiLA0KICAibWVhdCB3aXRoIGdyYXZ5IiwNCiAgIm1lZGRsaW5nIGtpZHMiLA0KICAibWVkaWE
gZnJlbnp5IiwNCiAgIm1lbG9keSBwb25kIiwNCiAgIm1lbiBpbiBzdWl0cyIsDQogICJtZW5kIGZlbmNlcy
IsDQogICJtZW93IG1lb3ciLA0KICAibWV0cm9wb2xpcyIsDQogICJtZXhpY2FuIHdhdmUiLA0KICAibWlja
2V5IGZpbm4iLA0KICAibWlsZXMgdG8gZ28iLA0KICAibWlsayB3YXMgYSBiYWQgY2hvaWNlIiwNCiAgIm1p
bGtzaGFrZSIsDQogICJtaWxsaW9uIGRvbGxhcnMiLA0KICAibWlsb2tvIHBsdXMiLA0KICAibWlsb2tvIHB
sdXMgdmVsbG9jZXQiLA0KICAibWltc3kgYm9yb2dvdmVzIiwNCiAgIm1pbmNlZCBvYXRocyIsDQogICJtaW
5kIHRoZSBnYXAiLA0KICAibWludHkgZnJlc2giLA0KICAibWlzaC1tYXNoIiwNCiAgIm1pc3MgeW91IiwNC
iAgIm1pc3RlciB3aWxzb24iLA0KICAibW9kZXJuIGxvdmUiLA0KICAibW9lJ3MgdGF2ZXJuIiwNCiAgIm1v
bSBhbmQgZGFkIiwNCiAgIm1vbmV5IGxlbmRlciIsDQogICJtb28gc2hvbyBwb3JrIiwNCiAgIm1vb24gY2h
lZXNlIiwNCiAgIm1vb3QgcG9pbnQiLA0KICAibW9yZSBiZXR0ZXIiLA0KICAibW9yZSBjaG9jb2xhdGUiLA
0KICAibW9yZSBjb2ZmZWUiLA0KICAibW9yZSBjb3cgYmVsbCIsDQogICJtb3JlIGludGVybmV0cyIsDQogI
CJtb3JuaW5nIHBlcnNvbiIsDQogICJtb3N0IGludGVyZXN0aW5nIG1hbiIsDQogICJtb3N0IGxpa2VseSIs
DQogICJtb3RoZXIgY291bnRyeSIsDQogICJtb3RoZXIgZWFydGgiLA0KICAibW90bGV5IGNyZXciLA0KICA
ibW91dGggd2F0ZXJpbmciLA0KICAibW92ZSBhbG9uZyIsDQogICJtb3ZlIG1vdW50YWlucyIsDQogICJtb3
ZlIG92ZXIiLA0KICAibW92ZWFibGUgZmVhc3QiLA0KICAibW92ZXJzIGFuZCBzaGFrZXJzIiwNCiAgIm1vd
mllIHN0YXIiLA0KICAibXJzIHJvYmluc29uIiwNCiAgIm11ZmZsZWQgcmFwIG11c2ljIiwNCiAgIm11bHRp
IHBhc3MiLA0KICAibXVtJ3MgdGhlIHdvcmQiLA0KICAibXVtYm8ganVtYm8iLA0KICAibXVycGh5J3MgbGF
3IiwNCiAgIm11c2h5IHBlYXMiLA0KICAibXVzaWMgbWFjaGluZSIsDQogICJtdXN0YWNoaW9lZCIsDQogIC
JteSBiYWQiLA0KICAibXkgYmVhdGluZyBoZWFydCIsDQogICJteSBiZXR0ZXIgaGFsZiIsDQogICJteSBkZ
WFyIHdhdHNvbiIsDQogICJteSBmcmllbmRzIGNhbid0IGRhbmNlIiwNCiAgIm15IG1pbmQncyBleWUiLA0K
ICAibXkgc291cmNlcyBzYXkgbm8iLA0KICAibmFpc2UgY2FpbiIsDQogICJuYW1ieS1wYW1ieSIsDQogICJ
uYW1lIGRyb3AiLA0KICAibmFub28gbmFub28iLA0KICAibmFwIHRpbWUiLA0KICAibmFycm93IG1pbmRlZC
IsDQogICJuYXV0aWNhbCBwaHJhc2VzIiwNCiAgIm5lIHJlZ3JldHMiLA0KICAibmVhciB0YW5uaGF1c2VyI
GdhdGUiLA0KICAibmVhcnQgc3RyaW5ncyIsDQogICJuZWNrYmVhcmQiLA0KICAibmVlZCBhIGJpZ2dlciBi
b2F0IiwNCiAgIm5lZWRzIG11c3QiLA0KICAibmVyY29sYXMgY2VyZyIsDQogICJuZXN0IGVnZyIsDQogICJ
uZXZlciBnaXZlIHVwIiwNCiAgIm5ldmVyIGdvbm5hIGdpdmUgeW91IHVwIiwNCiAgIm5ldmVyIG1pbmQiLA
0KICAibmV2ZXIgcXVpdCIsDQogICJuZXcgeW9yayBjaXR5IiwNCiAgIm5pY2Ugam9iIiwNCiAgIm5pY2Ugb
WFybW90IiwNCiAgIm5pY2UgdG8gbWVldCB5b3UiLA0KICAibmlnaHQgb3dsIiwNCiAgIm5pcCBhbmQgdHVj
ayIsDQogICJuaXR0eSBncml0dHkiLA0KICAibm8gYnJhaW5lciIsDQogICJubyBjcnlpbmcgaW4gYmFzZWJ
hbGwiLA0KICAibm8gZGljZSIsDQogICJubyBmcmllbmQgb2YgbWluZSIsDQogICJubyBob2xkcyBiYXJyZW
QiLA0KICAibm8gbWVhbnMgbm8iLA0KICAibm8gcmVncmV0cyIsDQogICJubyBzb3VwIGZvciB5b3UiLA0KI
CAibm8gc3Bvb24iLA0KICAibm8gc3RpbmtpbmcgYmFkZ2VzIiwNCiAgIm5vIHRpbWUgdG8gZXhwbGFpbiIs
DQogICJubyB3YXkiLA0KICAibm9ib2R5IGhvbWUiLA0KICAibm9uZSBvZiB0aGUgYWJvdmUiLA0KICAibm9
wZSBjaHVjayB0ZXN0YSIsDQogICJub3NlIGJsZWVkIiwNCiAgIm5vc3kgcGFya2VyIiwNCiAgIm5vdCBhIG
JvdCIsDQogICJub3QgaW4ga2Fuc2FzIiwNCiAgIm5vdCB5ZXQiLA0KICAibm93IGFuZCBmb3JldmVyIiwNC
iAgIm5vdyBsb29rIGhlcmUiLA0KICAibnRoIGRlZ3JlZSIsDQogICJudWwgcG9pbnRzIiwNCiAgIm51bWEg
bnVtYSIsDQogICJudXQgY2FzZSIsDQogICJudXRyaXRpb24iLA0KICAibnlhbiBjYXQiLA0KICAibnlxdWl
zdCByYXRlIiwNCiAgIm9mIGNvdXJzZSIsDQogICJvZmYgdGhlIHJlY29yZCIsDQogICJvaCBicm90aGVyIi
wNCiAgIm9oIGVtIGdlZSIsDQogICJvaCBoYWkiLA0KICAib2ggc2lnaCIsDQogICJvaCBzbyBjbG9zZSIsD
QogICJvaCB5ZXMiLA0KICAib2ggeW91IiwNCiAgIm9oLCB3YWl0IiwNCiAgIm9rZXkgZG9rZXkiLA0KICAi
b2xkIGhhdCIsDQogICJvbGQgbWFuIHdpbnRlciIsDQogICJvbGQgc2hvZSIsDQogICJvbSBub20gbm9tIiw
NCiAgIm9uIGEgYm9hdCIsDQogICJvbiBjbG91ZCBuaW5lIiwNCiAgIm9uIHRoZSBiYWxsIiwNCiAgIm9uIH
RoZSBxdCIsDQogICJvbi1vZmYiLA0KICAib25jZSBhZ2FpbiIsDQogICJvbmNlIHVwb24gYSB0aW1lIiwNC
iAgIm9uZSBkYXkgbW9yZSIsDQogICJvbmUgZmVsbCBzd29vcCIsDQogICJvbmUgaGl0IHdvbmRlciIsDQog
ICJvbmUgc21hbGwgc3RlcCBmb3IgbWFuIiwNCiAgIm9uZSBzdG9wIHNob3AiLA0KICAib25lIHdheSIsDQo
gICJvbmUgd2F5IHN0cmVldCIsDQogICJvbmUsIHR3bywgdGhyZWUiLA0KICAib25seSB3YXkgdG8gYmUgc3
VyZSIsDQogICJvb250eiBvb250eiIsDQogICJvb3BzIGEgZGFpc3kiLA0KICAib3BlbiBzZWFzb24iLA0KI
CAib3BlbiBzZXNhbWUiLA0KICAib3JhbmdlIGp1aWNlIiwNCiAgIm90aGVyIHdvcmxkbHkiLA0KICAib3V0
IG9mIHNvcnRzIiwNCiAgIm91dCBvZiB0b25lciI
sDQogICJvdXRsb29rIGdvb2QiLA0KICAib3ZlciB0aGUgaGlsbCIsDQogICJvdmVyIHRoZSBtb29uIiwNCi
AgIm92ZXIgdGhlIHRvcCIsDQogICJvdmVyIHRoZXJlIiwNCiAgIm94Zm9yZCB1bml2ZXJzaXR5IiwNCiAgI
m94byBjdWJlIiwNCiAgInBhaW50IGl0IHJlZCIsDQogICJwYW5kb3JhJ3MgYm94IiwNCiAgInBhbnRzIG9u
IHRoZSBncm91bmQiLA0KICAicGFwZXIgamFtIiwNCiAgInBhcGVyIHBsYXRlIiwNCiAgInBhcnRpYWwgZGV
yaXZhdGl2ZSIsDQogICJwYXJ0bHkgY2xvdWR5IiwNCiAgInBhcnR5IG9uIGdhcnRoIiwNCiAgInBhc3Npbm
cgbGFuZSIsDQogICJwYXRjaCBvZiBncmFzcyIsDQogICJwYXRoIGxlc3MgdGFrZW4iLA0KICAicGF0aWVuY
2UgY2hpbGQiLA0KICAicGF0dHkgY2FrZSIsDQogICJwYXkgdGhlIGZlcnJ5bWFuIiwNCiAgInBlYSBicmFp
biIsDQogICJwZWFybHkgd2hpdGVzIiwNCiAgInBlZyBvdXQiLA0KICAicGVsbCBtZWxsIiwNCiAgInBlbm5
5IGxvYWZlciIsDQogICJwZW9wbGUgbGlrZSBtZSIsDQogICJwZXBlIHNpbHZpYSIsDQogICJwZXBwZXIgcG
90IiwNCiAgInBlcHBlcm9uaSBwaXp6YSIsDQogICJwZXBwZXJzIGFuZCBvbmlvbnMiLA0KICAicGVyZmVjd
CB3b3JsZCIsDQogICJwZXN0ZXIgcG93ZXIiLA0KICAicGV0ZXIgb3V0IiwNCiAgInBoaWxhZGVscGhpYSIs
DQogICJwaG9uZSBob21lIiwNCiAgInBpY2sgbWUiLA0KICAicGljayB1cCBzdGlja3MiLA0KICAicGlja2x
lIGp1aWNlIiwNCiAgInBpY2tsZWQgcGVwcGVycyIsDQogICJwaWN0dXJlIHBlcmZlY3QiLA0KICAicGllIG
FyZSByb3VuZCIsDQogICJwaWUgYXJlIHNxdWFyZWQiLA0KICAicGllIGNoYXJ0IiwNCiAgInBpZWNlIG9mI
GNha2UiLA0KICAicGlnJ3MgZWFyIiwNCiAgInBpZ2d5YmFjayIsDQogICJwaW4gbW9uZXkiLA0KICAicGlw
ZSBkb3duIiwNCiAgInBpcGUgZHJlYW0iLA0KICAicGlwaW5nIGhvdCIsDQogICJwaXR0ZXIgcGF0dGVyIiw
NCiAgInBpenphIHRvcHBpbmciLA0KICAicGxhaW4gc2FpbGluZyIsDQogICJwbGF5IGEgZ2FtZSIsDQogIC
JwbGF5IGFnYWluIiwNCiAgInBsYXkgYmFsbCIsDQogICJwbGF5IGhvb2tleSIsDQogICJwbGF5IGl0IGFnY
WluIHNhbSIsDQogICJwbGVhc2VkIGFzIHB1bmNoIiwNCiAgInBsZW50eSBvZiB0aW1lIiwNCiAgInBsdWdn
ZWQgbmlja2VsIiwNCiAgInBsdXMgb3IgbWludXMiLA0KICAicG9ja2V0IHNpemVkIiwNCiAgInBvZCBiYXk
gZG9vcnMiLA0KICAicG9ldGljIGp1c3RpY2UiLA0KICAicG9pbnQgYmxhbmsiLA0KICAicG9pbnQgdG8gcG
9pbnQiLA0KICAicG9pbnRzIGRvbnQgbWF0dGVyIiwNCiAgInBvaW50cyBmb250IG1hdHRlciIsDQogICJwb
2lzb24gYXBwbGUiLA0KICAicG9saXRpY2FsIHBhcnR5IiwNCiAgInBvbGl0aWNhbHkgY29ycmVjdCIsDQog
ICJwb2x5J3MgY3JhY2tlciIsDQogICJwb25kIGxpZmUiLA0KICAicG9vbCBib3kiLA0KICAicG9vbCBoYWx
sIiwNCiAgInBvb2wgaG91c2UiLA0KICAicG9vciBob3VzZSIsDQogICJwb3JrIHBpZXMiLA0KICAicG91bm
QgY2FrZSIsDQogICJwb3dlciBkcmVzc2luZyIsDQogICJwb3dlciB0b29sIiwNCiAgInByYWN0aWNlIG1ha
2VzIHBlcmZlY3QiLA0KICAicHJlc3MgaW50byBzZXJ2aWNlIiwNCiAgInByaW1lIHRpbWUiLA0KICAicHJp
bXJvc2UgcGF0aCIsDQogICJwcmludCBvdXQiLA0KICAicHJpbnQgcGFwZXIiLA0KICAicHJvcGFuZSBhY2N
lc3NvcmllcyIsDQogICJwdWJsaWMgZ29vZCIsDQogICJwdWRkaW5nIHBvcHMiLA0KICAicHVmZnkgc2hpcn
QiLA0KICAicHVtcGtpbiBwaWUiLA0KICAicHVwcHkgZG9nIiwNCiAgInB1cHB5IGxvdmUiLA0KICAicHVza
CBoYXJkZXIiLA0KICAicHVzaCBvbiIsDQogICJwdXNoIHRoZSBlZGdlIiwNCiAgInB1c2ggdGhlIGVudmVs
b3BlIiwNCiAgInB5cnJoaWMgdmljdG9yeSIsDQogICJxdWFsaXR5IHRpbWUiLA0KICAicXVlZW4gbmVmZXJ
0aXRpIiwNCiAgInF1ZWVuIG9mIGhlYXJ0cyIsDQogICJxdWVlbidzIHlhY2h0IiwNCiAgInF1ZXN0aW9uIG
V2ZXJ5dGhpbmciLA0KICAicXVlc3Rpb24gbWFyayIsDQogICJxdWlkIHBybyBxdW8iLA0KICAicXVvdGF0a
W9ucyIsDQogICJyYWNrIGFuZCBydWluIiwNCiAgInJhY2sgeW91ciBicmFpbnMiLA0KICAicmFpbiBnbyBh
d2F5IiwNCiAgInJhaW4gdG9uaWdodCIsDQogICJyYWlueSBkYXlzIiwNCiAgInJhaXNlIGNhaW4iLA0KICA
icmFzcGJlcnJ5IHRhcnQiLA0KICAicmVhY2ggaGlnaGVyIiwNCiAgInJlYWQgYWxsIG92ZXIiLA0KICAicm
VhZCBtZSwgd3JpdGUgbWUiLA0KICAicmVhZCBteSBtYWlsIiwNCiAgInJlYWR5IHNldCBnbyIsDQogICJyZ
WFsIGhvb3B5IGZyb29kIiwNCiAgInJlYWwgbWNjb3kiLA0KICAicmVkIGhlcnJpbmciLA0KICAicmVkIHRh
cGUiLA0KICAicmVkIHdoaXRlIGFuZCBibHVlIiwNCiAgInJlZC1oYW5kZWQiLA0KICAicmVkdXBsaWNhdGV
kIHBocmFzZXMiLA0KICAicmVtYWluIGNhbG0iLA0KICAicmVudC1hLXN3YWciLA0KICAicmVzcGVjdCBtZS
IsDQogICJyZXR1cm4gdG8gc2VuZGVyIiwNCiAgInJldmVyc2UgdGhlIHBvbGFyaXR5IiwNCiAgInJoaW5vI
GJlZXRsZSIsDQogICJyaG9kZWlzbGFuZCIsDQogICJyaHltZSBub3IgcmVhc29uIiwNCiAgInJoeW1pbmcg
c2xhbmciLA0KICAicmljZSBhbmQgYmVhbnMiLA0KICAicmlkZSB0aGUgc3Vid2F5IiwNCiAgInJpZmYtcmF
mZiIsDQogICJyaWdodCBoYW5kIHR1cm4iLA0KICAicmlnaHQgbGVmdCIsDQogICJyaWdodHkgdGlnaHR5Ii
wNCiAgInJpbmctZmVuY2luZyIsDQogICJyaW5reS1kaW5rIiwNCiAgInJpc2UgYW5kIHNoaW5lIiwNCiAgI
nJpdmVyIHNvbmciLA0KICAicml2ZXIgc3R5eCIsDQogICJyb2FkIGFwcGxlcyIsDQogICJyb2FkIGxlc3Mg
dHJhdmVsbGVkIiwNCiAgInJvYXN0IGJlZWYiLA0KICAicm9iZSBvZiBzYWZmcm9uIiwNCiAgInJvY2tldCB
zY2llbmNlIiwNCiAgInJvZGVudHMgb2YgdW51c3VhbCBzaXplIiwNCiAgInJvZmxjb3B0ZXIiLA0KICAicm
9sbCBhZ2FpbiIsDQogICJyb2xsIG92ZXIiLA0KICAicm9sbGVyIHNrYXRlcyIsDQogICJyb2xsaW5nIHN0b
25lIiwNCiAgInJvb2Z0b3AiLA0KICAicm9vbSBmb3IgYWN0aXZpdGllcyIsDQogICJyb29tbWF0ZSBhZ3Jl
ZW1lbnQiLA0KICAicm9vdCBiZWVyIGZsb2F0IiwNCiAgInJvcGUgYnVybiIsDQogICJyb3NlYnVkIiwNCiA
gInJvc2llIGxlYSIsDQogICJyb3VnaCBkaWFtb25kIiwNCiAgInJvdW5kIG9uZSIsDQogICJyb3VuZCByb2
JpbiIsDQogICJyb3VuZCB0YWIxZSIsDQogICJyb3V0ZSBvbmUiLA0KICAicm93IGJvYXQiLA0KICAicm95I
GcgYml2IiwNCiAgInJveWFsIGZsdXNoIiwNCiAgInJ1Ymljb24gY3Jvc3NlZCIsDQogICJydWxlIG9mIGNo
b21pbyIsDQogICJydWxlIG9mIHRodW1iIiwNCiAgInJ1bSBkbyIsDQogICJydW4gYW1vayIsDQogICJydW4
gYXdheSIsDQogICJydW4gZmFydGhlciIsDQogICJydW4gdGhlIGdhdW50bGV0IiwNCiAgInJ1biB0aHJvdW
doIiwNCiAgInJ1bm55IG5vc2UiLA0KICAic2FiZXIgdG9vdGgiLA0KICAic2FjcmVkIGNvdyIsDQogICJzY
WZlIHN0cmVldHMiLA0KICAic2FmZXR5IGZpcnN0IiwNCiAgInNhbGFkIGRheXMiLA0KICAic2FsdCBhbmQg
cGVwcGVyIiwNCiAgInNhbHR5IGNoZWVzZSIsDQogICJzYW1lIHNhbWUiLA0KICAic2FuZHkgYmVhY2giLA0
KICAic2F0dXJkYXkgZGV0ZW50aW9uIiwNCiAgInNhdWN5IiwNCiAgInNhdWVyIGtyYXV0IiwNCiAgInNhdX
NhZ2VzIiwNCiAgInNhdmUgZmFjZSIsDQogICJzYXZlIGl0IiwNCiAgInNhdmUgb3VyIGJsdXRocyIsDQogI
CJzYXZvaXIgZmFpcmUiLA0KICAic2F4IGFuZCB2aW9saW5zIiwNCiAgInNheSBjaGVlc2UiLA0KICAic2No
b29sIGlzIGNvb2wiLA0KICAic2NpZW5jZSBjbGFzcyIsDQogICJzY2llbmNlIGZhaXIiLA0KICAic2NpZW5
jZSBpdCB3b3JrcyIsDQogICJzY2llbmNlIHByb2plY3QiLA0KICAic2NvdCBmcmVlIiwNCiAgInNjcmV3IG
RyaXZlciIsDQogICJzZWEgY2hhbmdlIiwNCiAgInNlYSBzaGVsbCIsDQogICJzZWEgc2hvcmUiLA0KICAic
2VhdHRsZSIsDQogICJzZWUgcmVkIiwNCiAgInNlZSB5YSIsDQogICJzZWUtc2F3IiwNCiAgInNlZWsgYmVh
dXR5IiwNCiAgInNlZW1zIGxlZ2l0IiwNCiAgInNlaXplIHRoZSBkYXkiLA0KICAic2VsZWN0IGZyb20gdGF
ibGUiLA0KICAic2VuZCBwYWNraW5nIiwNCiAgInNlbmlvciBjaXRpemVuIiwNCiAgInNldmVuIGF0ZSBuaW
5lIiwNCiAgInNldmVuIHNpZ25zIiwNCiAgInNlemUgdGhlIGRheSIsDQogICJzaGFrZSBhIGxlZyIsDQogI
CJzaGFrZW4gbm90IHN0aXJyZWQiLA0KICAic2hha2VycyBhbmQgbW92ZXJzIiwNCiAgInNoYW5lIGNvbWUg
YmFjayIsDQogICJzaGFycCBwZW5jaWwiLA0KICAic2hhcnAgc3RpY2siLA0KICAic2hlIGxvdmVzIGhpbSI
sDQogICJzaGUgc2VsbHMiLA0KICAic2hlIHNlbGxzIHNlYXNoZWxscyIsDQogICJzaGUncyBhIHdpdGNoIi
wNCiAgInNoZWxkb24gYWxwaGEgZml2ZSIsDQogICJzaGlsbHktc2hhbGx5IiwNCiAgInNoaXAgc2hhcGUiL
A0KICAic2hvZSBzaGluZSIsDQogICJzaG9lcyBzaGluZSIsDQogICJzaG9vdCB0aHJvdWdoIiwNCiAgInNo
b3VsZGVyIG9mIG9yaW9uIiwNCiAgInNob3cgZG93biIsDQogICJzaHVmZmxlIHRoZSBkZWNrIiwNCiAgInN
pY2sgcHVwcHkiLA0KICAic2lnbmFsIHlvdXIgdHVybnMiLA0KICAic2lnbnMgcG9pbnQgdG8geWVzIiwNCi
AgInNpbGVuY2UgaXMgZ29sZGVuIiwNCiAgInNpbHZlciBiZWxscyIsDQogICJzaWx2ZXIgYnVsbGV0IiwNC
iAgInNpbHZlciBob2luZyIsDQogICJzaWx2ZXIgbGluaW5nIiwNCiAgInNpbHZlciBzcG9vbiIsDQogICJz
aW4gY29zIHRhbiIsDQogICJzaW5jZSB3aGVuIiwNCiAgInNpbmcgYSBzb25nIiwNCiAgInNpeGVzIGFuZCB
zZXZlbnMiLA0KICAic2l4dGVlbiBwb2ludCB0dXJuIiwNCiAgInNraWRyb3ciLA0KICAic2tpcCBhIHR1cm
4iLA0KICAic2t5J3MgdGhlIGxpbWl0IiwNCiAgInNreW5ldCBpcyB3YXRjaGluZyIsDQogICJza3luZXQga
25vd3MiLA0KICAic2t5bmV0IHdhdGNoZXMiLA0KICAic2xlZXAgdGlnaHQiLA0KICAic2xlZXB5IGhvbGxv
dyIsDQogICJzbGlteSBnb29wIiwNCiAgInNsaXBwZXJ5IHNsb3BlIiwNCiAgInNsb2FuZSByYW5nZXIiLA0
KICAic2xvdyBkb3duIiwNCiAgInNsb3cgbWlsZW5reSBsaXphcmRzIiwNCiAgInNsdXNoIGZ1bmQiLA0KIC
Aic2x5dGh5IHRvdmVzIiwNCiAgInNtYWxsIGZyaWVzIiwNCiAgInNtYWxsIGZyeSIsDQogICJzbWFydCBjY
XN1YWwiLA0KICAic21hcnQgcGhvbmUiLA0KICAic21hc2hlZCBwb3RhdG8iLA0KICAic21lbGwgdGhhdCIs
DQogICJzbWVsbGluZyBzYWx0IiwNCiAgInNtb2tlZCBzYWxtb24iLA0KICAic25ha2UgZXllcyIsDQogICJ
zbmFwc2hvdCIsDQogICJzbmFyZSBkcnVtIiwNCiAgInNuZWV6aW5nIGJhYnkgcGFuZGEiLA0KICAic25vb3
AgbGlvbiIsDQogICJzbm93IGRyaWZ0IiwNCiAgInNub3cgZmx1cnJ5IiwNCiAgInNub3cgc2hvdmVsIiwNC
iAgInNvIGZhciBhd2F5IiwNCiAgInNvIGxpZmUgbGlrZSIsDQogICJzbyBzbyIsDQogICJzb2QncyBsYXci
LA0KICAic29mdCBraXR0eSB3YXJtIGtpdHR5IiwNCiAgInNvbWVib2R5IHRoYXQgaSB1c2VkIHRvIGtub3c
iLA0KICAic29uaWMgc2NyZXcgZHJpdmVyIiwNCiAgInNvcnJ5IGRhdmUiLA0KICAic29ycnkgc2lnaHQiLA
0KICAic291ZmZsZSBnaXJsIiwNCiAgInNvdW5kIGJpdGUiLA0KICAic291bmQgb2Ygc2lyZW5zIiwNCiAgI
nNvdW5kIG91dCIsDQogICJzb3VyIGdyYXBlcyIsDQogICJzcGFjZSBpcyBiaWciLA0KICAic3BhY2UgcGx1
bWJlciIsDQogICJzcGFuZ2xlZCBiYW5uZXIiLA0KICAic3BlZWRpbmcgYnVsbGV0IiwNCiAgInNwZWxsaW5
nIGJlZSIsDQogICJzcGVuZCB0aW1lIiwNCiAgInNwaWNrIGFuZCBzcGFuIiwNCiAgInNwaWN5IiwNCiAgIn
NwaWN5IGhvdCIsDQogICJzcGluIGRvY3RvciIsDQogICJzcGl0dGluZyBmZWF0aGVycyIsDQogICJzcGl0d
GluZyBpbWFnZSIsDQogICJzcG9pbGVycyIsDQogICJzcHJlYWQgdGhlIG5ldCIsDQogICJzcHJpbmcgd2F0
ZXIiLA0KICAic3BydWNlIHVwIiwNCiAgInNxdWFyZSBtZWFsIiwNCiAgInNxdWFyZSBvbmUiLA0KICAic3F
1ZWFreSBjbGVhbiIsDQogICJzcXVpcnJlbCBmcmllbmQiLA0KICAic3Qgam9obnMgYmF5IiwNCiAgInN0YW
xsYSBzdGVsbGEiLA0KICAic3RhbmQgYW5kIGRlbGl2ZXIiLA0KICAic3RhbmQgYnkgbWUiLA0KICAic3Rhb
mQgdXAgZ3V5IiwNCiAgInN0YXIgc3BhbmdsZWQiLA0KICAic3RhciB3YXJzIGtpZCIsDQogICJzdGFydCBm
cm9tIHNjcmF0Y2giLA0KICAic3RheSBzYWZlIiwNCiAgInN0ZWFrIGFuZCBlZ2dzIiwNCiAgInN0ZWFtIHB
1bmsiLA0KICAic3RlZXJpbmcgd2hlZWwiLA0KICAic3RlcCBiYWNrIiwNCiAgInN0ZXAgb3ZlciIsDQogIC
JzdGV2ZSBob2x0IiwNCiAgInN0ZXZlIGpvYnMiLA0KICAic3RpY2t5IHdpY2tldCIsDQogICJzdGluZyBsa
WtlIGEgYmVlIiwNCiAgInN0aW5raW5nIHJpY2giLA0KICAic3Rpbmt5IGZlZXQiLA0KICAic3RvbmUgc291
cCIsDQogICJzdG9uZSdzIHRocm93IiwNCiAgInN0b255IGhlYXJ0ZWQiLA0KICAic3Rvb2wgcGlnZW9uIiw
NCiAgInN0b3Agd2Fpc3RpbmcgdGltZSIsDQogICJzdHJlYW1zIG9mIG9jZWFudXMiLA0KICAic3RyaWtlIG
EgbWF0Y2giLA0KICAic3RyaWtlIHRocmVlIiwNCiAgInN0cmluZyBhbG9uZyIsDQogICJzdHJpbmcgY2hlZ
XNlIiwNCiAgInN0dWNrIGluIG11ZCIsDQogICJzdHVtcCB1cCIsDQogICJzdWRvIG1ha2Ugc2FuZHdpY2gi
LA0KICAic3VscGh1ciBzbWVsbCIsDQogICJzdW1tb24gaW5nbGlwIiwNCiAgInN1biB0enUgc2F5cyIsDQo
gICJzdW5kYXkiLA0KICAic3Vuc2hpbmUiLA0KICAic3VwZXIgc3RhciIsDQogICJzdXJmIGFuZCB0dXJmIi
wNCiAgInN1cmZhY2UgaW50ZWdyYWwiLA0KICAic3dhbiBzb25nIiwNCiAgInN3ZWV0IGRyZWFtcyIsDQogI
CJzd2VldHkgcGllIiwNCiAgInN3aXJsaW5nIHZvcnRleCBvZiBlbnRyb3B5IiwNCiAgInRhY28gdHVlc2Rh
eSIsDQogICJ0YWtlIGEgbG9vayIsDQogICJ0YWtlIGFuIHVtYnJlbGxhIiwNCiAgInRha2UgY2FyZSIsDQo
gICJ0YWtlIGl0IGFsbCIsDQogICJ0YWtlIG91dCBmb29kIiwNCiAgInRha2UgcG90bHVjayIsDQogICJ0YW
tlIHRoZSBjYWtlIiwNCiAgInRha2UgdW1icmFnZSIsDQogICJ0YWtlIHdyb25nIHR1cm5zIiwNCiAgInRha
2VuIGFiYWNrIiwNCiAgInRhbGsgdGhlIHRhbGsiLA0KICAidGFsayB0byBzdHJhbmdlcnMiLA0KICAidGFs
ayB0dXJrZXkiLA0KICAidGFsbCBidWlsZGluZyIsDQogICJ0YWxsIHN0b3J5IiwNCiAgInRhc3RlcyBnb29
kIiwNCiAgInRhc3RlcyBsaWtlIGNoaWNrZW4iLA
0KICAidGVhIGVhcmwgZ3JheSBob3QiLA0KICAidGVhIGxlYWYiLA0KICAidGVhIHdpdGggamFtIiwNCiAgI
nRlYSB3aXRoIG1pbGsiLA0KICAidGVhciB1cyBhcGFydCIsDQogICJ0ZWNobmljb2xvciB5YXduIiwNCiAg
InRlZmxvbiBwcmVzaWRlbnQiLA0KICAidGVoIGludGVyIHdlYnMiLA0KICAidGVuIGZvdXIiLA0KICAidGV
zbGEgY29pbCIsDQogICJ0aGFuayB5b3UiLA0KICAidGhhbmsgeW91LCBjb21lIGFnYWluIiwNCiAgInRoYX
QgZXNjYWxhdGVkIHF1aWNrbHkiLA0KICAidGhhdCBodXJ0cyIsDQogICJ0aGF0IHdpbGwgbm90IHdvcmsiL
A0KICAidGhhdCdzIGEgZmFjdCBqYWNrIiwNCiAgInRoYXQncyBhbGwgZm9sa3MiLA0KICAidGhhdCdzIGVu
b3VnaCIsDQogICJ0aGF0J3MgaG90IiwNCiAgInRoYXQncyBpdCIsDQogICJ0aGF0J3MgbXkgc3BvdCIsDQo
gICJ0aGF0J3MgcmlnaHQiLA0KICAidGhlIGJlZSdzIGtuZWVzIiwNCiAgInRoZSBiaWJsZSIsDQogICJ0aG
UgYmlnIGFwcGxlIiwNCiAgInRoZSBiaWcgY2hlZXNlIiwNCiAgInRoZSBiaWcgZWFzeSIsDQogICJ0aGUgY
2F0IGxhZHkiLA0KICAidGhlIGNhdHMgY3JhZGxlIiwNCiAgInRoZSBkZW5uaXMgc3lzdGVtIiwNCiAgInRo
ZSBkdWRlIGFiaWRlcyIsDQogICJ0aGUgZXh0cmEgbWlsZSIsDQogICJ0aGUgbmV4dCBsZXZlbCIsDQogICJ
0aGUgbmlnaHRtYW4gY29tZXRoIiwNCiAgInRoZSBvbmUgZXllZCBtYW4gaXMgYSBraW5nIiwNCiAgInRoZS
BvdGhlciBzaWRlIiwNCiAgInRoZSB0cmliZSBoYXMgc3Bva2VuIiwNCiAgInRoZSB5ZWxsb3cga2luZyIsD
QogICJ0aGVyZSBpcyBubyBzcG9vbiIsDQogICJ0aGVyZSBpcyBvbmx5IHp1bCIsDQogICJ0aGVyZSBvbmNl
IHdhcyIsDQogICJ0aGVzZSBwYXJ0cyIsDQogICJ0aGV5IGFyZSB3YXRjaGluZyIsDQogICJ0aGV5IGF0ZSB
pdCIsDQogICJ0aGljayBhbmQgdGhpbiIsDQogICJ0aGluIGFpciIsDQogICJ0aGluayBjcmVhdGUgZG8iLA
0KICAidGhpbmsgZ3JlZW4iLA0KICAidGhpbmsgaGFyZCIsDQogICJ0aGluayB0d2ljZSIsDQogICJ0aGlua
2luZyBjYXAiLA0KICAidGhpcmQgZGVncmVlIiwNCiAgInRoaXJ0eSBvbmUgZGF5cyIsDQogICJ0aGlzIGlz
IGl0IiwNCiAgInRoaXMgaXMgbm90IGZha2UiLA0KICAidGhpcyBpcyBzcGFydGEiLA0KICAidGhpcyBvciB
0aGF0IiwNCiAgInRoaXMgc3RhdGVtZW50IGlzIGZhbHNlIiwNCiAgInRocmVlIHNob3J0IHdvcmRzIiwNCi
AgInRocmVlIHN0cmlrZXMiLA0KICAidGhyb3VnaCB0aGUgZ3JhcGV2aW5lIiwNCiAgInRodW1icyB1cCIsD
QogICJ0aHVuZGVyIHN0b3JtIiwNCiAgInRpY2tlZCBvZmYiLA0KICAidGlja2xlIHRoZSBpdm9yaWVzIiwN
CiAgInRpY2tsZWQgaXZvcmllcyIsDQogICJ0aWNrbGVkIHBpbmsiLA0KICAidGlkZSBvdmVyIiwNCiAgInR
pZ2h0IGxpcHBlZCIsDQogICJ0aW1lIGFuZCBwYXBlciIsDQogICJ0aW1lIGNpcmN1aXRzIiwNCiAgInRpbW
UgZmxpZXMiLA0KICAidGltZSBpcyBhbiBpbGx1c2lvbiIsDQogICJ0aW1lIGxvcmQiLA0KICAidGltZSBtY
WNoaW5lIiwNCiAgInRpbWUgd2lsbCB0ZWxsIiwNCiAgInRpbWVzIHNxdWFyZSIsDQogICJ0aW5rZXIncyBk
YW0iLA0KICAidG8gYm9vdCIsDQogICJ0b2FzdCBwb2ludHMiLA0KICAidG9lIHRoZSBsaW5lIiwNCiAgInR
vZS1jdXJsaW5nIiwNCiAgInRvZ2V0aGVyIGFnYWluIiwNCiAgInRvbyBiYWQiLA0KICAidG9vIGxhdGUiLA
0KICAidG9vIG1hbnkgY29va3MiLA0KICAidG9vIG1hbnkgc2VjcmV0cyIsDQogICJ0b28gc2FsdHkiLA0KI
CAidG9vZGxlIG9vIiwNCiAgInRvcCBkb2ciLA0KICAidG9wIGRyYXdlciIsDQogICJ0b3Agbm90Y2giLA0K
ICAidG9wIHRlbiIsDQogICJ0b3BzeSB0dXJ2eSIsDQogICJ0b3RhbCBzaGFtYmxlIiwNCiAgInRvd2VsIGR
yeSIsDQogICJ0b3dlciBvZiBzdHJlbmd0aCIsDQogICJ0b3kgc29sZGllciIsDQogICJ0cmFmZmljIGphbS
IsDQogICJ0cmFmZmljIGxpZ2h0IiwNCiAgInRyYWluIHN1cmZpbmciLA0KICAidHJhdmVsIHNpemUiLA0KI
CAidHJlYXQgeW9zZWxmIiwNCiAgInRyaWNrIG9yIHRyZWF0IiwNCiAgInRyaWNrbGUgZG93biIsDQogICJ0
cm9sb2xvbG9sIiwNCiAgInRydWUgYmx1ZSIsDQogICJ0cnVlIGxpZmUiLA0KICAidHJ1c3QgbWUiLA0KICA
idHVja2VyZWQgb3V0IiwNCiAgInR1bmEgZmlzaCIsDQogICJ0dW5lIGluIiwNCiAgInR1cmtleSBzYW5kd2
ljaCIsDQogICJ0dXJuIHNpZ25hbCIsDQogICJ0dXJuIHRoZSB0YWJsZXMiLA0KICAidHVybiB1cCB0cnVtc
HMiLA0KICAidHdlbnR5IGVpZ2h0IGRheXMiLA0KICAidHdlbnR5IGZvdXIgc2V2ZW4iLA0KICAidHdlbnR5
IG9uZSIsDQogICJ0d2VudHkgdGhyZWUiLA0KICAidHdvIGNlbnRzIHdvcnRoIiwNCiAgInR3byBoYW5kcyI
sDQogICJ0d28gbGVmdCBmZWV0IiwNCiAgInR3byB0b25lIiwNCiAgInUgamVsbHkiLA0KICAidW1icmVsbG
EgY29ycG9yYXRpb24iLA0KICAidW5jaGFydGVkIGlzbGFuZCIsDQogICJ1bmNsZSBsZW8iLA0KICAidW5kZ
XIgdGhlIHNlYSIsDQogICJ1bmRlcnBhbnRzIiwNCiAgInVuaW9uIGphY2siLA0KICAidW5saW1pdGVkIHdp
c2hlcyIsDQogICJ1bnRpZWQgbGFjZXMiLA0KICAidW50aWwgbmV4dCB0aW1lIiwNCiAgInVudGlsIHRvbW9
ycm93IiwNCiAgInVudGlsIHRvbmlnaHQiLA0KICAidXAgYW5kIGF3YXkiLA0KICAidXAgb3IgZG93biIsDQ
ogICJ1cHBlciBjcnVzdCIsDQogICJ1cHBlciBoYW5kIiwNCiAgInVwcyBhIGRhaXN5IiwNCiAgInVwc2lkZ
SBkb3duIiwNCiAgInVwdm90ZSB0aGlzIiwNCiAgInVwd2FyZCBzbG9wZSIsDQogICJ1cmJhbiBteXRoIiwN
CiAgInVzdWFsIHN1c3BlY3RzIiwNCiAgInV1IGRkIGxyIGxyIGJhIiwNCiAgInZhbiBzdXJmaW5nIiwNCiA
gInZhbmlsbGEgaWNlIGNyZWFtIiwNCiAgInZlZyBvdXQiLA0KICAidmVnYW4gZGlldCIsDQogICJ2ZWdhbi
B6b21iaWUgd2FudHMgZ3JhaW5zIiwNCiAgInZlZ2V0YXJpYW4iLA0KICAidmVyeSBkb3VidGZ1bCIsDQogI
CJ2ZXJ5IG5pY2UiLA0KICAidmljZSB2ZXJzYSIsDQogICJ2aWNpb3VzIGN5Y2xlIiwNCiAgInZpZGVvIHRh
cGUiLA0KICAidmllbm5hIGNhbGxpbmciLA0KICAidmlydHVlIG9mIG5lY2Vzc2l0eSIsDQogICJ2aXMgYSB
2aXMiLA0KICAidm9jYWwgbWlub3JpdHkiLA0KICAidm9nb24gcG9ldHJ5IiwNCiAgInZvaWd0IGthbXBmIi
wNCiAgInZvcnBhbCBzd29yZCIsDQogICJ2b3RlIHBhbmNha2VzIiwNCiAgIndhbGsgZnJlZSIsDQogICJ3Y
WxrIHRoZSBwbGFuayIsDQogICJ3YWxrIHRoZSB3YWxrIiwNCiAgIndhbnQgbW9yZSIsDQogICJ3YXJwIHNw
ZWVkIiwNCiAgIndhc2ggd2hpdGVzIHNlcGFyYXRlbHkiLA0KICAid2F0Y2ggYy1iZWFtcyBnbGl0dGVyIiw
NCiAgIndhdGNoIG1lIiwNCiAgIndhdGNoIG91dCIsDQogICJ3YXRlciBnYXRlIiwNCiAgIndheCBwb2V0aW
MiLA0KICAid2F5IHRvIGdvIiwNCiAgIndheSB0byBnbyBkb25ueSIsDQogICJ3ZSBnbyBmb3J3YXJkcyIsD
QogICJ3ZSBsaWtlIHRoZSBtb29uIiwNCiAgIndlYWtlc3QgbGluayIsDQogICJ3ZWFzZWwgd29yZHMiLA0K
ICAid2VsY29tZSB0byBlYXJ0aCIsDQogICJ3ZWxsIGRvbmUiLA0KICAid2VsbCBoZWVsZWQiLA0KICAid2V
sbCBpc24ndCB0aGF0IHNwZWNpYWwiLA0KICAid2VsbCBub3ciLA0KICAid2VsbCByZWFkIiwNCiAgIndleW
xhbiB5dXRhbmkiLA0KICAid2hhdCBldmVuIiwNCiAgIndoYXQgZXZlciIsDQogICJ3aGF0IGZvciIsDQogI
CJ3aGF0IGlmIiwNCiAgIndoYXQgaXMgZm9yIGRpbm5lciIsDQogICJ3aGF0IGlzIHlvdXIgcXVlc3QiLA0K
ICAid2hhdCBzaG91bGQgd2UgY2FsbCBtZSIsDQogICJ3aGF0IHRvIHNlZSIsDQogICJ3aGF0J3MgdGhhdCI
sDQogICJ3aGVlbCBncm91cCIsDQogICJ3aGVuIHdoZXJlIiwNCiAgIndoZXJlIHRvIGdvIiwNCiAgIndoZX
QgeW91ciBhcHBldGl0ZSIsDQogICJ3aGlzdGxlIGFuZCBmbHV0ZSIsDQogICJ3aGl0ZSBhcyBzbm93IiwNC
iAgIndoaXRlIGJyZWFkIiwNCiAgIndoaXRlIGVsZXBoYW50IiwNCiAgIndoaXRlIHJhYmJpdCIsDQogICJ3
aG8gYW0gaSIsDQogICJ3aG8gYXJlIHlvdSIsDQogICJ3aG8gaXMgaXQiLA0KICAid2hvIHlvdSBnb25uYSB
jYWxsIiwNCiAgIndobywgd2hhdCwgd2hlcmUiLA0KICAid2hvYSB0aGVyZSIsDQogICJ3aG9sZSBuaW5lIH
lhcmRzIiwNCiAgIndob2xlIHNoZWJhbmciLA0KICAid2hvb3BlZSBjdXNoaW9uIiwNCiAgIndob29wcyBhI
GRhaXN5IiwNCiAgIndpY2tlZCB3aXRjaCIsDQogICJ3aWRlIGJlcnRoIiwNCiAgIndpbGQgYW5kIGNyYXp5
IGd1eXMiLA0KICAid2lsZCBhbmQgd29vbGx5IiwNCiAgIndpbGQgZ29vc2UgY2hhc2UiLA0KICAid2lsZCB
3ZXN0IiwNCiAgIndpbGx5IG5pbGx5IiwNCiAgIndpbiBoYW5kcyBkb3duIiwNCiAgIndpbmRvdyBkcmVzc2
luZyIsDQogICJ3aW5nIGl0IiwNCiAgIndpbm5pbmciLA0KICAid2ludGVyIGlzIGNvbWluZyIsDQogICJ3a
W50ZXIgc25vdyIsDQogICJ3aXNkb20gb2YgaW5nbGlwIiwNCiAgIndpc2RvbSB0ZWV0aCIsDQogICJ3aXNo
eS13YXNoeSIsDQogICJ3aXRoIGJlbGxzIG9uIiwNCiAgIndpdGhvdXQgYSBkb3VidCIsDQogICJ3b29mIHd
vb2YiLA0KICAid29yZCBmb3Igd29yZCIsDQogICJ3b3JkcyBvZiB3aXNkb20iLA0KICAid29yayBvdXQiLA
0KICAid291bGQgeW91IGJlbGlldmUiLA0KICAid3JpZ2h0IGZseWVyIiwNCiAgIndyaXRpbmcgZGVzayIsD
QogICJ4IGFsbCB0aGUgeSIsDQogICJ4eWxvcGhvbmUiLA0KICAieWFkZGEgeWFkZGEgeWFkZGEiLA0KICAi
eWVhaCByaWdodCIsDQogICJ5ZWFyIGRvdCIsDQogICJ5ZWUgaGF3IiwNCiAgInllbGxpbmcgZ29hdCIsDQo
gICJ5ZWxsb3cgYmVsbHkiLA0KICAieWVzIGRlZmluaXRlbHkiLA0KICAieWVzIG1hJ2FtIiwNCiAgInllcy
BzaXIiLA0KICAieWVzIHRoaXMgaXMgZG9nIiwNCiAgInlvdSBhcmUgaGFwcHkiLA0KICAieW91IGFyZSBoZ
XJlIiwNCiAgInlvdSBjYW4gZG8gdGhpcyIsDQogICJ5b3UgZG9uJ3Qgc2F5IiwNCiAgInlvdSBmaXJzdCIs
DQogICJ5b3UgZ29vZCIsDQogICJ5b3UgaGF2ZSBteSBzdGFwbGVyIiwNCiAgInlvdSByb2NrIiwNCiAgInl
vdSB0aGUgbWFuIiwNCiAgInlvdSB3aW4iLA0KICAieW91J3JlIGluIG15IHNwb3QiLA0KICAieW91J3JlIG
5vdCBsaXN0ZW5pbmciLA0KICAieW91J3JlIHdlbGNvbWUiLA0KICAiemlnIHphZyIsDQogICJ6b21iaWUgY
XR0YWNrIiwNCiAgInpvbWJpZSBwcm9tIg0KXTsNCg0KZnVuY3Rpb24gc2V0dXAoaW5wdXQpIHsNCiAgdmFy
IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsNCiAgZGF0YWxpc3Quc2V
0QXR0cmlidXRlKCdpZCcsICdhZGNvcHlfcGhyYXNlcycpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgUE
hSQVNFUy5sZW5ndGg7ICsraSkgew0KICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0Z
UVsZW1lbnQoJ29wdGlvbicpKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShQSFJBU0VT
W2ldKSk7DQogIH0NCg0KICBpbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkYXRhbGlzdCwgaW5wdXQ
ubmV4dFNpYmxpbmcpOw0KICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCBkYXRhbGlzdC5pZCk7DQp9DQ
oNCnZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpOw0KDQpmb
3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsNCiAgaWYgKHNjcmlwdHNbaV0uc3Jj
LmluZGV4T2YoJ3NvbHZlbWVkaWEuY29tJykgPiAtMSkgew0KICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnR
MaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHsNCiAgICAgIGlmICgvXmFkY2
9weV9yZXNwb25zZS8udGVzdChldmVudC50YXJnZXQuaWQpKSB7DQogICAgICAgIHRoaXMucmVtb3ZlRXZlb
nRMaXN0ZW5lcihldmVudC50eXBlLCBoYW5kbGVyKTsNCg0KICAgICAgICB2YXIgaW5wdXQgPSBldmVudC50
YXJnZXQ7DQoNCiAgICAgICAgc2V0dXAoaW5wdXQpOw0KDQogICAgICAgIGlucHV0LmJsdXIoKTsNCiAgICA
gICAgaW5wdXQuZm9jdXMoKTsNCiAgICAgIH0NCiAgICB9KTsNCg0KICAgIGJyZWFrOw0KICB9DQp9DQo="}
,{"name":"[Captcha Skip]","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_prototyp
es":false,"noframes":null,"run_at":null,"override":{"use_includes":
[],"orig_includes":["*"],"merge_includes":true,"use_matches":[],"orig_matches":
["ebonus.gg google.com"],"merge_matches":true,"use_excludes":[],"orig_excludes":
[],"merge_excludes":true,"use_connects":[],"merge_connects":true,"use_blockers":
[],"orig_run_at":"document-idle","orig_noframes":null,"orig_connects":
[]}},"storage":{"ts":1622029141892,"data":
{}},"enabled":true,"position":5,"file_url":"https://greasyfork.org/scripts/384610-
captcha-skip/code/%5BCaptcha%20Skip%5D.user.js","uuid":"8dfdc7d0-a160-4169-b5be-
eac8d19647d2","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICBbQ2FwdGNoYSB
Ta2lwXQovLyBAdmVyc2lvbiAgICAgIDEuMC4wCi8vIEBkZXNjcmlwdGlvbiAgVGhpcyBzb2x2ZSBnb29nbG
UgcmVjYXB0Y2hhIGF1dG9tYXRpYyBhZnRlciBzZWMuCi8vIEBhdXRob3IgICAgICAgSmFuaWszMTMKLy8gQ
G1hdGNoCSBlYm9udXMuZ2cgZ29vZ2xlLmNvbQovLyBAaW5jbHVkZSAgICAgICoKLy8gQGdyYW50ICAgICAg
ICBub25lCi8vIEBuYW1lc3BhY2UgaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy91c2Vycy8yMDAwMTUKLy8gPT0
vVXNlclNjcmlwdD09Cgp2YXIgZG9tYWluID0gKHdpbmRvdy5sb2NhdGlvbiAhPSB3aW5kb3cucGFyZW50Lm
xvY2F0aW9uKSA/IGRvY3VtZW50LnJlZmVycmVyLnRvU3RyaW5nKCkgOiBkb2N1bWVudC5sb2NhdGlvbi50b
1N0cmluZygpOwppZiAoZG9tYWluLmluZGV4T2YoJ21pcGVkLnJ1JykgPT0gLTEgJiYgZG9tYWluLmluZGV4
T2YoJ2luZGllZ2FsYScpID09IC0xICYmIGRvbWFpbi5pbmRleE9mKCdnbGVhbS5pbycpID09IC0xKSB7IC8
vWW91IGNhbiBleGNsdWRlIGRvbWFpbnMgaGVyZSAoYWR2YW5jZWQpCiAgICBpZiAobG9jYXRpb24uaHJlZi
5pbmRleE9mKCdnb29nbGUuY29tL3JlY2FwdGNoYScpID4gLTEpIHsKICAgICAgICB2YXIgY2xpY2tDaGVja
yA9I
HNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnLnJlY2FwdGNoYS1jaGVja2JveC1jaGVja21hcmsnKS5sZW5ndGggPiAwKSB7CiAgICAgICAgICA
gICAgICBjbGVhckludGVydmFsKGNsaWNrQ2hlY2spOwogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcn
lTZWxlY3RvcignLnJlY2FwdGNoYS1jaGVja2JveC1jaGVja21hcmsnKS5jbGljaygpOwogICAgICAgICAgI
CB9CiAgICAgICAgfSwgNTAwMCk7CiAgICB9IGVsc2UgewogICAgICAgIHZhciBmb3JtcyA9IGRvY3VtZW50
LmZvcm1zOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybXMubGVuZ3RoOyBpKyspIHsKICAgICA
gICAgICAgaWYgKGZvcm1zW2ldLmlubmVySFRNTC5pbmRleE9mKCdnb29nbGUuY29tL3JlY2FwdGNoYScpID
4gLTEpIHsKICAgICAgICAgICAgICAgIHZhciByY19mb3JtID0gZm9ybXNbaV07CiAgICAgICAgICAgICAgI
CB2YXIgc29sdmVDaGVjayA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAg
IGlmIChncmVjYXB0Y2hhLmdldFJlc3BvbnNlKCkubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICA
gICAgICBjbGVhckludGVydmFsKHNvbHZlQ2hlY2spOwogICAgICAgICAgICAgICAgICAgICAgICByY19mb3
JtLnN1Ym1pdCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIDEwMCk7CiAgI
CAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0="},{"name":"Captcha Bypasser","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_prototyp
es":false,"noframes":null,"run_at":null,"override":{"use_includes":
[],"orig_includes":
["https://www.google.com/recaptcha/intro/android.html"],"merge_includes":true,"use_
matches":[],"orig_matches":[],"merge_matches":true,"use_excludes":
[],"orig_excludes":[],"merge_excludes":true,"use_connects":
[],"merge_connects":true,"use_blockers":[],"orig_run_at":"document-
idle","orig_noframes":null,"orig_connects":[]}},"storage":
{"ts":1622029380544,"data":
{}},"enabled":true,"position":6,"file_url":"https://openuserjs.org/install/miroslav
ets90/Captcha_Bypasser.user.js","uuid":"63bce175-27b8-4aea-9686-
acba9ca5bc8f","source":"Ly8gPT1Vc2VyU2NyaXB0PT0NCi8vIEBuYW1lc3BhY2UgICBodHRwczovL29
wZW51c2VyanMub3JnL3VzZXJzL21pcm9zbGF2ZXRzOTANCi8vIEBuYW1lCUNhcHRjaGEgQnlwYXNzZXINCi
8vIEBkZXNjcmlwdGlvbiBBdXRvZmlsbCBDYXB0Y2hhIGdvb2dsZSBJJ2FtIG5vdCByb2Jib3QNCi8vIEBjb
3B5cmlnaHQJMjAxOCwgbWlyb3NsYXZldHM5MCAoaHR0cHM6Ly9vcGVudXNlcmpzLm9yZy91c2Vycy9taXJv
c2xhdmV0czkwKQ0KLy8gQGxpY2Vuc2UgCUdQTC0zLjArOyBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXM
vZ3BsLTMuMC50eHQNCi8vIEB2ZXJzaW9uICAgICAxDQovLyBAaW5jbHVkZSAgICAgaHR0cHM6Ly93d3cuZ2
9vZ2xlLmNvbS9yZWNhcHRjaGEvaW50cm8vYW5kcm9pZC5odG1sDQovLyBAZ3JhbnQgICAgICAgbm9uZQ0KL
y8gPT0vVXNlclNjcmlwdD09DQoNCndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24o
KSB7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHh0SW5wdXQiKS52YWx1ZT1kb2N1bWVudC5nZXRFbGV
tZW50QnlJZCgidHh0Q2FwdGNoYSIpLnZhbHVlOw0KfSwgZmFsc2UpOw0KDQp2YXIgZSA9IGRvY3VtZW50Lm
dldEVsZW1lbnRCeUlkKCJidG5yZWZyZXNoIik7DQplLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbW9ka
WZ5VGV4dCwgZmFsc2UpOw0KZnVuY3Rpb24gbW9kaWZ5VGV4dCgpIHsNCmRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0eHRJbnB1dCIpLnZhbHVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eHRDYXB0Y2hhIikudmF
sdWU7DQp9"},{"name":"Anti-Adblock Killer | Reek","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":true,"compat_metadata":false,"compat_foreach":false,"compat_prototype
s":false,"noframes":null,"run_at":null,"override":{"use_includes":
[],"orig_includes":
["http://*/*","https://*/*"],"merge_includes":true,"use_matches":[],"orig_matches":
[],"merge_matches":true,"use_excludes":[],"orig_excludes":
[],"merge_excludes":true,"use_connects":
["raw.githubusercontent.com"],"merge_connects":true,"use_blockers":
[],"orig_run_at":"document-start","orig_noframes":null,"orig_connects":
["*"]}},"storage":{"ts":1622031623275,"data":
{"nextchecklist":"s1622118023108","nextcheckupdate":"s1622636423275"}},"enabled":tr
ue,"position":7,"file_url":"https://raw.githubusercontent.com/reek/anti-adblock-
killer/master/anti-adblock-killer.user.js","uuid":"cea8156d-f82c-4e3a-aba6-
619a42df8dcc","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgQW50aS1BZGJsb2NrIEtpbGx
lciB8IFJlZWsKLy8gQG5hbWVzcGFjZSBodHRwczovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3cvMT
U1ODQwCi8vIEBkZXNjcmlwdGlvbiBIZWxwcyB5b3Uga2VlcCB5b3VyIEFkLUJsb2NrZXIgYWN0aXZlLCB3a
GVuIHlvdSB2aXNpdCBhIHdlYnNpdGUgYW5kIGl0IGFza3MgeW91IHRvIGRpc2FibGUuCi8vIEBhdXRob3Ig
UmVlayB8IHJlZWtzaXRlLmNvbQovLyBAdmVyc2lvbiAxMC4wCi8vIEBlbmNvZGluZyB1dGYtOAovLyBAbGl
jZW5zZSBodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLwovLyBAaWNvbi
BodHRwczovL3Jhdy5naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9tYXN0ZXIvYW50aS1hZ
GJsb2NrLWtpbGxlci1pY29uLnBuZwovLyBAaG9tZXBhZ2UgaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50
aS1hZGJsb2NrLWtpbGxlci8KLy8gQHR3aXR0ZXJVUkwgaHR0cHM6Ly90d2l0dGVyLmNvbS9hbnRpYWRia2l
sbGVyCi8vIEBjb250YWN0VVJMIGh0dHBzOi8vcmVlay5naXRodWIuaW8vYW50aS1hZGJsb2NrLWtpbGxlci
8jY29udGFjdAovLyBAc3VwcG9ydFVSTCBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta
2lsbGVyL2lzc3VlcwovLyBAY29udHJpYnV0aW9uVVJMIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGkt
YWRibG9jay1raWxsZXIjZG9uYXRlCi8vIEB1cGRhdGVVUkwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnR
lbnQuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9tYXN0ZXIvYW50aS1hZGJsb2NrLWtpbGxlci51c2
VyLmpzCi8vIEBkb3dubG9hZFVSTCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmVlay9hb
nRpLWFkYmxvY2sta2lsbGVyL21hc3Rlci9hbnRpLWFkYmxvY2sta2lsbGVyLnVzZXIuanMKLy8gQGluY2x1
ZGUgaHR0cDovLyovKgovLyBAaW5jbHVkZSBodHRwczovLyovKgovLyBAZ3JhbnQgdW5zYWZlV2luZG93Ci8
vIEBncmFudCBHTV9hZGRTdHlsZQovLyBAZ3JhbnQgR01fZ2V0VmFsdWUKLy8gQGdyYW50IEdNX3NldFZhbH
VlCi8vIEBncmFudCBHTV94bWxodHRwUmVxdWVzdAovLyBAZ3JhbnQgR01fcmVnaXN0ZXJNZW51Q29tbWFuZ
AovLyBAZ3JhbnQgR01fZGVsZXRlVmFsdWUKLy8gQGdyYW50IEdNX2xpc3RWYWx1ZXMKLy8gQGdyYW50IEdN
X2dldFJlc291cmNlVGV4dAovLyBAZ3JhbnQgR01fZ2V0UmVzb3VyY2VVUkwKLy8gQGdyYW50IEdNX2xvZwo
vLyBAZ3JhbnQgR01fb3BlbkluVGFiCi8vIEBncmFudCBHTV9zZXRDbGlwYm9hcmQKLy8gQGdyYW50IEdNX2
luZm8KLy8gQGdyYW50IEdNX2dldE1ldGFkYXRhCi8vIEBydW4tYXQgZG9jdW1lbnQtc3RhcnQKLy8gQGNvb
m5lY3QgKgovLyA9PS9Vc2VyU2NyaXB0PT0KLypqc2hpbnQgZXZpbDp0cnVlIG5ld2NhcDpmYWxzZSovCi8q
Z2xvYmFsIHVuc2FmZVdpbmRvdywgR01fYWRkU3R5bGUsIEdNX2dldFZhbHVlLCBHTV9zZXRWYWx1ZSwgR01
feG1saHR0cFJlcXVlc3QsIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQsIEdNX2RlbGV0ZVZhbHVlLCBHTV9saX
N0VmFsdWVzLCBHTV9nZXRSZXNvdXJjZVRleHQsIEdNX2dldFJlc291cmNlVVJMLCBHTV9sb2csIEdNX29wZ
W5JblRhYiwgR01fc2V0Q2xpcGJvYXJkLCBHTV9pbmZvLCBHTV9nZXRNZXRhZGF0YSwgJCwgZG9jdW1lbnQs
IGNvbnNvbGUsIGxvY2F0aW9uLCBzZXRJbnRlcnZhbCwgc2V0VGltZW91dCwgY2xlYXJJbnRlcnZhbCovCi8
qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBUaGFua3
MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogIERvb
m9yczogTS4gSG93YXJkLCBTaHVuam91LCBDaGFybWluZSwgS2llcmVrOTMsIEcuIEJhcm5hcmQsIEguIFlv
dW5nLCBTZWluaG9yOSwgSW1HbG9kYXIsIEl2YW5vc2V2aXRjaCwgSG9tZURpcG8sIFIuIE1hcnRpbiwgRHJ
GaVosIFRpcHB5LCBCLiBSb2huZXIsIFAuIEtvemljYSwgTS4gUGF0ZWwsIFc0cmVsbCwgVHNjaGVja29mZi
wgQWRCbG9jayBQb2xza2EsIEFWRU5JUiBJTlRFUk5FVCwgY29vbE5BTywgQmVuLCBKLiBQYXJrLCBDLiBZb
3VuZywgSi4gQm91LCBNLiBDYW5vLCBKLiBKdW5nLCBBLiBTb25pbm8sIEouIExpdHRlbiwgTS4gU2NocnVt
cGYsIEcuIFBlcGUsIEEuIFRydWZhbm92LCBSLiBQYWxtZXIsIEouIFJhdXRpYWluZW4sIFMuIEJseXN0b25
lLCBNLiBTaWx2ZWlyYSwgSy4gTWFjQXJ0aHVyLCBNLiBJdmFub3YsIEEuIFNjaG1pZHQsIEEuIFdhYWdlLC
BGLiBUaXNtZXIsIFMuIEVobmVydCwgSi4gQ29ycHVzLCBKLiBEbHVob3MsIE1ha2xlbWVueiwgU3Ryb2Jlb
Gl4LCBNb2RlbGxwaWxvdC5FVSwgRS4gQmVuZWRldHRpLCBWLiBWZW5kaXR0aSwgU2hha29zLCBBLiBFbGlh
c29uLCBBLiBTYWxvcmFudGEsIFMuIEdlaWdlciwgQS4gT3R0ZXJsb28sIE0uIENvcHBlbiwgUy4gRmlzY2h
lciwgSC4gQmVja2VyLCBELiBBY2tlcm1hbiwgUy4gUGl0c2NoLCBLLiBQZXJ0Y2hlY2ssIFMuIEFiZWwsIE
suIE8nQ29ubm9yLCBCLiBPYnJpZW4sIFMuIFZvZ2xlciwgUy4gR29lYmwsIEEuIEJpYXIsIFMuIFNjb3R0L
CBCYXNzbW9iaWxlLm9yZywgUy4gR3Jvw59lLCBNLiBQZW90LCBSLiBDaGFuIEJhbGFtLCBMLiBCb25kLUtl
bm5lZHksIFIuIEVtb25kLCBBLiBQYXZsb3YsIFcuIFRyYWNleSwgQS4gU2VyZ2V5LCBSLiBMw7NwZXogTMO
zcGV6LCBSLiBSZWRkeSBLYXNpcmVkZHksIEEuIE1vdWplZXIsIE0uIEJldHosIE0uIExlZsOodnJlLCBSLi
BNY0N1cmR5LCBMUiBHZWVrcywgTS4gQmVhdXJlZ2FyZCwgQ2FzcGVyVGVjaCBMdGQsIE0uIER1ZGFzLCBTL
iBTY2hhcmYsIFMuIFByb2tob3JvdiwgSy4gUGFwYWxpYXMsIEouIFdvam5vd3NraSwgQi4gQ3VydGlzLCBE
LiBMYXdyZW5jZSwgRC4gSGUsIE4uIEtlbHNhbGwsIElkb2dld2FsbGV0LCBKLiBTcGF1bGRpbmcsIFMuIEx
hZm9uLCBNYXQsIEguIFJvYmVydHMsIEMuIEhlZGx1bmQsIEouIEhhd2tpbnMsIEouIEFuZGVyc2VuLCBNLi
BCam9ya3N0ZW4sIEIuIFdvbGZlIElJSSwgVC4gWW9jb20sIMWgLiBJbnRhcywgUy4gTW9lbmljaCwgSi4gQ
2hhbmcsIEMuIE11bmssIEEuIE5hcnV0YSwg0JEuINCc0LjRhdCw0LjQuywgSi4gQmVueiwgRi4gU2xvb3Qs
IEouIENyZWVkLCBNLiBHaWxsYW0sIEMuIExlaWNodCwgQS4gR25hbmEsIFMuIFN1bmRhcmFtLCBBLiBLb2x
sZXIsIE0uIEtvdGxhciwgUy4gQWJlbCwgVC4gRmxhbmFnYW4sIE0uIEFyZHVpbmksIFAuIFN0YWNraG91c2
UsIEIuIE9saXZlciwgTS4gSm9obnNvbiwgUi4gTWFubmVydCwgRS4gU2lvcmRpYQoKICBDb2xsYWJvcmF0b
3JzOiBJbmZpbml0eUNvZGluZywgQ291Y2h5LCBEaW5kb2csIEZsb3hmbG9iLCBVIEJsZXNzLCBXYXRpbGlu
LCBAcHJkb25haHVlLCBIb3NoaWUsIDNsZjNuTGkzZCwgQWxleG8sIENyaXRzLCBOb25hbWUxMjAsIENydDM
yLCBKaXh1bk1vZSwgQXRob3JjaXMsIEtpbGxlcmJhZGdlciwgU01lZDc5LCBBbGV4YW5kZXIyNTUsIEFub2
5zdWJtaXR0ZXIsIFJhcG9yTG9McHJvLCBNYXluYWswMCwgUm9ib3RleCwgVmluY3R1eCwgQmxhaHgsIE1ha
mtpSVQsIEY0eiwgQW5nZWxzbCwgTWlraGFlbGssIE1hcmVrLCBIYW1zdGVyYmFja2UsIEdvcmhpbGwsIEhh
Y2tlcjk5OSwgeHhjcml0aWN4eCwgU2tyNHRjaEdyM2F6eU1vbmtpQmFsbGxsbGxaenp6LCBHaXdheXVtZSw
gTXJTaGVybG9ja0hvbG1lcywgeERhcmtBUkcsIE5vYWhwNzgsIE1hcHgtCgogIFVzZXJzOiBUaGFuayB5b3
UgdG8gYWxsIHRob3NlIHdobyB1c2UgQW50aSBBZGJsb2NrIEtpbGxlciwgd2hvIHJlcG9ydCBwcm9ibGVtc
ywgd2hvIHdyaXRlIHRoZSByZXZpZXcsIHdoaWNoIGFkZCB0byB0aGVpciBmYXZvcml0ZXMsIG1ha2luZyBk
b25hdGlvbnMsIHdoaWNoIHN1cHBvcnQgdGhlIHByb2plY3QgYW5kIGhlbHAgaW4gaXRzIGRldmVsb3BtZW5
0IG9yIHByb21vdGUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT
09PT09PT09CiAgTWlycm9ycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09P
T09PT09PT09PT09CgogIEdpdGh1YjogaHR0cDovL3Rpbnl1cmwuY29tL21jcmEzZG4KICBHcmVhc3lmb3Jr
OiBodHRwOi8vdGlueXVybC5jb20vcGJiZG5oNgogIE9wZW51c2VyanM6IGh0dHA6Ly90aW55dXJsLmNvbS9
ubnFqZTMyCiAgTW9ua2V5R3V0czogaHR0cDovL3Rpbnl1cmwuY29tL2thNWZjcW0KICBVc2Vyc2NyaXB0cz
ogaHR0cDovL3Rpbnl1cmwuY29tL3E4eGNlamwKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09P
T09PT09PT09PT09PT09PT09PT09PT0KICBEb2N1bWVudGF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgR3JlYXNlbW9ua2V5OiBodHRwOi8vdGlueXV
ybC5jb20veWVlZm5qNQogIFNjcmlwdGlzaDogaHR0cDovL3Rpbnl1cmwuY29tL2NuZDlua2QKICBUYW1wZX
Jtb25rZXk6IGh0dHA6Ly90aW55dXJsLm
NvbS9wZHl0ZmRlCiAgVmlvbGVudG1vbmtleTogaHR0cDovL3Rpbnl1cmwuY29tL24zNHduNmoKICBOaW5qY
UtpdDogaHR0cDovL3Rpbnl1cmwuY29tL3Bra205dWcKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBTY3JpcHQKPT09PT09PT09PT09PT09PT09PT09PT09PT0
9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCihmdW5jdGlvbiAod2luZG93KSB7CiAgInVzZSBzdH
JpY3QiOwogIAogIHZhciBBYWsgPSB7CiAgICBuYW1lIDogJ0FudGktQWRibG9jayBLaWxsZXInLAogICAgd
mVyc2lvbiA6ICcxMC4wJywKICAgIHNjcmlwdGlkIDogJ2dKV0VwMHZCJywKICAgIGhvbWVVUkwgOiAnaHR0
cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci8nLAogICAgY2hhbmdlbG9nVVJMIDo
gJ2h0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIjY2hhbmdlbG9nJywKICAgIG
RvbmF0ZVVSTCA6ICdodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyI2RvbmF0Z
ScsCiAgICBmZWF0dXJlc1VSTCA6ICdodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2ls
bGVyI2ZlYXR1cmVzJywKICAgIHJlcG9ydFVSTCA6ICdodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWF
kYmxvY2sta2lsbGVyL3dpa2kvUmVwb3J0LUd1aWRlJywKICAgIGNvbnRhY3RVUkwgOiAnaHR0cHM6Ly9yZW
VrLmdpdGh1Yi5pby9hbnRpLWFkYmxvY2sta2lsbGVyLyNjb250YWN0JywKICAgIHNldHRpbmdzVVJMIDogJ
2h0dHBzOi8vcmVlay5naXRodWIuaW8vYW50aS1hZGJsb2NrLWtpbGxlci8jc2V0dGluZ3MnLAogICAgdHdp
dHRlclVSTCA6ICdodHRwczovL3R3aXR0ZXIuY29tL2FudGlhZGJraWxsZXInLAogICAgZG93bmxvYWRVUkw
gOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci
9tYXN0ZXIvYW50aS1hZGJsb2NrLWtpbGxlci51c2VyLmpzJywKICAgIHN1YnNjcmliZVVSTCA6ICdodHRwc
zovL3JlZWsuZ2l0aHViLmlvL2FudGktYWRibG9jay1raWxsZXIvI2ZpbHRlcmxpc3QnLAogICAgbGlzdFVS
TCA6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGV
yL21hc3Rlci9hbnRpLWFkYmxvY2sta2lsbGVyLWZpbHRlcnMudHh0IiwKICAgIG5hdGl2ZVVSTCA6ICdodH
RwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL3dpa2kvTmF0aXZlLU1vZGUnLAogI
CAgaWNvblVSTCA6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcmVlay9hbnRpLWFkYmxv
Y2sta2lsbGVyL21hc3Rlci9hbnRpLWFkYmxvY2sta2lsbGVyLWljb24ucG5nJywKICAgIGltZ0JhaXQgOiA
nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFnQ0FRQUFBRF
pjN0ovQUFBQUdrbEVRVlI0Mm1OZzBHQVlCYU5nRkl5Q1VUQUtSc0VvUUFZQVROOEFLWU5aL3g0QUFBQUFTV
VZPUks1Q1lJST0nLAogICAgaW5pdGlhbGl6ZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgQWFrLnJlZ2lzdGVy
U2V0dGluZ3MoKTsgLy8gcmVnaXN0ZXJpbmcgeW91ciBzZXR0aW5ncy4KICAgICAgQWFrLnJlZ2lzdGVyQ29
uc29sZSgpOyAvLyByZWdpc3RlcmluZyBjdXN0b216ZWQgY29uc29sZS4KICAgICAgQWFrLnJlZ2lzdGVyQ2
9tbWFuZHMoKTsgLy8gYWRkIGNvbW1hbmRzIHRvIG1lbnUKICAgICAgQWFrLmNoZWNrVXBkYXRlKHRydWUpO
yAvLyBjaGVjayBpZiBBYWtTY3JpcHQgaXMgdXAgdG8gZGF0ZS4KICAgICAgQWFrLmNoZWNrTGlzdCgpOyAv
LyBjaGVjayBpZiBBYWtMaXN0IGlzIGVuYWJsZWQuCiAgICAgIEFhay5ibG9ja0RldGVjdCgpOyAvLyBkZXR
lY3QgYW5kIGtpbGwgYW50aS1hZGJsb2Nrcy4KICAgIH0sCiAgICBhYWJzIDoge30sCiAgICBvcHRzIDoge3
0sCiAgICBvcHRpb25zIDogewogICAgICBhdXRvUGxheSA6IHsKICAgICAgICBncm91cCA6ICdnZW5lcmFsJ
ywKICAgICAgICB0eXBlIDogJ2NoZWNrYm94JywKICAgICAgICB2YWx1ZSA6IGZhbHNlLAogICAgICAgIGxh
YmVsIDogJ1BsYXkgdmlkZW8gYXV0b21hdGljYWxseS4gKicsCiAgICAgICAgaW5mbyA6ICcnCiAgICAgIH0
sCiAgICAgIHZpZGVvSEQgOiB7CiAgICAgICAgZ3JvdXAgOiAnZ2VuZXJhbCcsCiAgICAgICAgdHlwZSA6IC
djaGVja2JveCcsCiAgICAgICAgdmFsdWUgOiBmYWxzZSwKICAgICAgICBsYWJlbCA6ICdQbGF5IHZpZGVvI
GluIEhEIHF1YWxpdHkuICoqJywKICAgICAgICBpbmZvIDogJycKICAgICAgfSwKICAgICAgZm9yY2VWTEMg
OiB7CiAgICAgICAgZ3JvdXAgOiAnZ2VuZXJhbCcsCiAgICAgICAgdHlwZSA6ICdjaGVja2JveCcsCiAgICA
gICAgdmFsdWUgOiBmYWxzZSwKICAgICAgICBsYWJlbCA6ICdQbGF5IHZpZGVvIHdpdGggVkxDIHBsdWdpbi
4gKicsCiAgICAgICAgaW5mbyA6ICcnCiAgICAgIH0sCiAgICAgIGNoZWNrTGlzdCA6IHsKICAgICAgICBnc
m91cCA6ICdnZW5lcmFsJywKICAgICAgICB0eXBlIDogJ2NoZWNrYm94JywKICAgICAgICB2YWx1ZSA6IHRy
dWUsCiAgICAgICAgbGFiZWwgOiAnQ2hlY2sgQWFrTGlzdCBzdWJzY3JpcHRpb24uJywKICAgICAgICBpbmZ
vIDogJycKICAgICAgfSwKICAgICAgY2hlY2tVcGRhdGUgOiB7CiAgICAgICAgZ3JvdXAgOiAnZ2VuZXJhbC
csCiAgICAgICAgdHlwZSA6ICdjaGVja2JveCcsCiAgICAgICAgdmFsdWUgOiB0cnVlLAogICAgICAgIGxhY
mVsIDogJ0NoZWNrIG5ld2VyIEFha1NjcmlwdCB2ZXJzaW9uLicsCiAgICAgICAgaW5mbyA6ICcnCiAgICAg
IH0sCiAgICAgIGRlYnVnIDogewogICAgICAgIGdyb3VwIDogJ2RlYnVnJywKICAgICAgICB0eXBlIDogJ2N
oZWNrYm94JywKICAgICAgICB2YWx1ZSA6IGZhbHNlLAogICAgICAgIGxhYmVsIDogJ0VuYWJsZSBMb2dzLi
csCiAgICAgICAgaW5mbyA6ICcnCiAgICAgIH0sCiAgICAgIGxvZ0luc2VydGVkTm9kZXMgOiB7CiAgICAgI
CAgZ3JvdXAgOiAnZGVidWcnLAogICAgICAgIHR5cGUgOiAnY2hlY2tib3gnLAogICAgICAgIHZhbHVlIDog
ZmFsc2UsCiAgICAgICAgbGFiZWwgOiAnTG9nIGluc2VydGVkIG5vZGVzLicsCiAgICAgICAgaW5mbyA6ICc
nCiAgICAgIH0sCiAgICAgIGxvZ1JlbW92ZWROb2RlcyA6IHsKICAgICAgICBncm91cCA6ICdkZWJ1ZycsCi
AgICAgICAgdHlwZSA6ICdjaGVja2JveCcsCiAgICAgICAgdmFsdWUgOiBmYWxzZSwKICAgICAgICBsYWJlb
CA6ICdMb2cgcmVtb3ZlZCBub2Rlcy4nLAogICAgICAgIGluZm8gOiAnJwogICAgICB9LAogICAgICBsb2dF
eGNsdWRlZCA6IHsKICAgICAgICBncm91cCA6ICdkZWJ1ZycsCiAgICAgICAgdHlwZSA6ICdjaGVja2JveCc
sCiAgICAgICAgdmFsdWUgOiBmYWxzZSwKICAgICAgICBsYWJlbCA6ICdMb2cgZXhjbHVkZXMgZG9tYWlucy
4nLAogICAgICAgIGluZm8gOiAnJwogICAgICB9LAogICAgICBsb2dYaHIgOiB7CiAgICAgICAgZ3JvdXAgO
iAnZGVidWcnLAogICAgICAgIHR5cGUgOiAnY2hlY2tib3gnLAogICAgICAgIHZhbHVlIDogZmFsc2UsCiAg
ICAgICAgbGFiZWwgOiAnTG9nIEhUVFAgcmVxdWVzdHMnLAogICAgICAgIGluZm8gOiAnJwogICAgICB9LAo
gICAgICBsb2dQbGF5ZXIgOiB7CiAgICAgICAgZ3JvdXAgOiAnZGVidWcnLAogICAgICAgIHR5cGUgOiAnY2
hlY2tib3gnLAogICAgICAgIHZhbHVlIDogZmFsc2UsCiAgICAgICAgbGFiZWwgOiAnTG9nIHBsYXllciBpb
nN0YW5jZXMuJywKICAgICAgICBpbmZvIDogJycKICAgICAgfSwKICAgICAgbG9nSW50ZXJjZXB0ZWRTY3Jp
cHRzIDogewogICAgICAgIGdyb3VwIDogJ2RlYnVnJywKICAgICAgICB0eXBlIDogJ2NoZWNrYm94JywKICA
gICAgICB2YWx1ZSA6IGZhbHNlLAogICAgICAgIGxhYmVsIDogJ0xvZyBpbnRlcmNlcHRlZCBzY3JpcHRzLi
csCiAgICAgICAgaW5mbyA6ICcnCiAgICAgIH0sCiAgICAgIGxvZ0RldGVjdGVkIDogewogICAgICAgIGdyb
3VwIDogJ2RlYnVnJywKICAgICAgICB0eXBlIDogJ2NoZWNrYm94JywKICAgICAgICB2YWx1ZSA6IGZhbHNl
LAogICAgICAgIGxhYmVsIDogJ0xvZyBkZXRlY3RlZCBhbnRpLWFkYmxvY2tzLicsCiAgICAgICAgaW5mbyA
6ICcnCiAgICAgIH0KICAgIH0sCiAgICByZWdpc3RlclNldHRpbmdzIDogZnVuY3Rpb24gKCkgewogICAgIC
Bmb3IgKHZhciBvcHROYW1lIGluIEFhay5vcHRpb25zKSB7CiAgICAgICAgaWYgKEFhay5vcHRpb25zLmhhc
093blByb3BlcnR5KG9wdE5hbWUpKQogICAgICAgICAgQWFrLm9wdHNbb3B0TmFtZV0gPSBBYWsuZ2V0VmFs
dWUob3B0TmFtZSkgIT09IG51bGwgPyBBYWsuZ2V0VmFsdWUob3B0TmFtZSkgOiBBYWsub3B0aW9uc1tvcHR
OYW1lXS52YWx1ZTsKICAgICAgfQogICAgfSwKICAgIGNvbW1hbmRzIDogW3sKICAgICAgICBjYXB0aW9uID
ogJ0hvbWVwYWdlJywKICAgICAgICBleGVjdXRlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmdvK
EFhay5ob21lVVJMKTsKICAgICAgICB9CiAgICAgIH0sIHsKICAgICAgICBjYXB0aW9uIDogJ1NldHRpbmdz
JywKICAgICAgICBleGVjdXRlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmdvKEFhay5zZXR0aW5
nc1VSTCk7CiAgICAgICAgfQogICAgICB9LCB7CiAgICAgICAgY2FwdGlvbiA6ICdVcGRhdGUnLAogICAgIC
AgIGV4ZWN1dGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuY2hlY2tVcGRhdGUoKTsKICAgICAgI
CB9CiAgICAgIH0KICAgIF0sCiAgICBhZGRDb21tYW5kcyA6IGZ1bmN0aW9uIChjbWQpIHsKICAgICAgaWYg
KEFhay51c2VHTSAmJiBBYWsuaXNUb3BmcmFtZSAmJiB0eXBlb2YgR01fcmVnaXN0ZXJNZW51Q29tbWFuZCA
hPSAndW5kZWZpbmVkJykgewogICAgICAgIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQoW0Fhay5uYW1lLCBBYW
suZ2V0VmVyc2lvbigpLCBjbWQuY2FwdGlvbl0uam9pbignICcpLCBjbWQuZXhlY3V0ZSk7CiAgICAgIH0KI
CAgIH0sCiAgICByZWdpc3RlckNvbW1hbmRzIDogZnVuY3Rpb24gKCkgewogICAgICBBYWsucmVhZHkoZnVu
Y3Rpb24gKCkgewogICAgICAgIC8vIFNjcmlwdGlzaAogICAgICAgIC8vIG5vdGU6IE5vIG1lbnUgY29tbWF
uZCBpcyBjcmVhdGVkIHdoZW4gdGhlIHVzZXIgc2NyaXB0IGlzIHJ1biBpbiBhIGlmcmFtZSB3aW5kb3cuCi
AgICAgICAgLy8gZG9jOiBodHRwOi8vdGlueXVybC5jb20va3Z2djd5dAogICAgICAgIEFhay5jb21tYW5kc
y5mb3JFYWNoKGZ1bmN0aW9uIChjbWQpIHsKICAgICAgICAgIEFhay5hZGRDb21tYW5kcyhjbWQpOwogICAg
ICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICByZWdpc3RlckNvbnNvbGUgOiBmdW5jdGlvbiAoKSB7CiA
gICAgIHRoaXMubG9nID0gQWFrLm9wdHMuZGVidWcgPyBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpIDogZn
VuY3Rpb24gKCkge307CiAgICAgIHRoaXMuaW5mbyA9IEFhay5vcHRzLmRlYnVnID8gY29uc29sZS5pbmZvL
mJpbmQoY29uc29sZSkgOiBmdW5jdGlvbiAoKSB7fTsKICAgICAgdGhpcy5lcnJvciA9IEFhay5vcHRzLmRl
YnVnID8gY29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpIDogZnVuY3Rpb24gKCkge307CiAgICAgIHRoaXM
ud2FybiA9IEFhay5vcHRzLmRlYnVnID8gY29uc29sZS53YXJuLmJpbmQoY29uc29sZSkgOiBmdW5jdGlvbi
AoKSB7fTsKICAgIH0sCiAgICBpc1RvcGZyYW1lIDogKHdpbmRvdy5wYXJlbnQgPT0gd2luZG93LnNlbGYpL
AogICAgdXcgOiB0eXBlb2YgdW5zYWZlV2luZG93ICE9ICd1bmRlZmluZWQnID8gdW5zYWZlV2luZG93IDog
d2luZG93LAogICAgdXNlR00gOiB0eXBlb2YgR01fZ2V0VmFsdWUgIT0gJ3VuZGVmaW5lZCcsCiAgICBhcGl
HTSA6IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKEFhay5pc1RvcGZyYW1lKSB7CiAgICAgICAgLy8gR00gQV
BJIC0gaHR0cDovL3Rpbnl1cmwuY29tL3llZWZuajUKICAgICAgICByZXR1cm4gewogICAgICAgICAgR01fe
G1saHR0cFJlcXVlc3QgOiB0eXBlb2YgR01feG1saHR0cFJlcXVlc3QgIT0gJ3VuZGVmaW5lZCcsCiAgICAg
ICAgICBHTV9zZXRWYWx1ZSA6IHR5cGVvZiBHTV9zZXRWYWx1ZSAhPSAndW5kZWZpbmVkJywKICAgICAgICA
gIEdNX2dldFZhbHVlIDogdHlwZW9mIEdNX2dldFZhbHVlICE9ICd1bmRlZmluZWQnLAogICAgICAgICAgR0
1fYWRkU3R5bGUgOiB0eXBlb2YgR01fYWRkU3R5bGUgIT0gJ3VuZGVmaW5lZCcsCiAgICAgICAgICBHTV9yZ
Wdpc3Rlck1lbnVDb21tYW5kIDogdHlwZW9mIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQgIT0gJ3VuZGVmaW5l
ZCcsCiAgICAgICAgICBHTV9pbmZvIDogdHlwZW9mIEdNX2luZm8gIT0gJ3VuZGVmaW5lZCcsCiAgICAgICA
gICBHTV9nZXRNZXRhZGF0YSA6IHR5cGVvZiBHTV9nZXRNZXRhZGF0YSAhPSAndW5kZWZpbmVkJywKICAgIC
AgICAgIEdNX2RlbGV0ZVZhbHVlIDogdHlwZW9mIEdNX2RlbGV0ZVZhbHVlICE9ICd1bmRlZmluZWQnLAogI
CAgICAgICAgR01fbGlzdFZhbHVlcyA6IHR5cGVvZiBHTV9saXN0VmFsdWVzICE9ICd1bmRlZmluZWQnLAog
ICAgICAgICAgR01fZ2V0UmVzb3VyY2VUZXh0IDogdHlwZW9mIEdNX2dldFJlc291cmNlVGV4dCAhPSAndW5
kZWZpbmVkJywKICAgICAgICAgIEdNX2dldFJlc291cmNlVVJMIDogdHlwZW9mIEdNX2dldFJlc291cmNlVV
JMICE9ICd1bmRlZmluZWQnLAogICAgICAgICAgR01fbG9nIDogdHlwZW9mIEdNX2xvZyAhPSAndW5kZWZpb
mVkJywKICAgICAgICAgIEdNX29wZW5JblRhYiA6IHR5cGVvZiBHTV9vcGVuSW5UYWIgIT0gJ3VuZGVmaW5l
ZCcsCiAgICAgICAgICBHTV9zZXRDbGlwYm9hcmQgOiB0eXBlb2YgR01fc2V0Q2xpcGJvYXJkICE9ICd1bmR
lZmluZWQnCiAgICAgICAgfTsKICAgICAgfQogICAgfSwKICAgIGdvIDogZnVuY3Rpb24gKHVybCkgewogIC
AgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDsKICAgIH0sCiAgICByZWZyZXNoIDogZnVuY3Rpb24gK
CkgewogICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwogICAgfSwK
ICAgIHJlbG9hZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCh0cnVlKTs
KICAgIH0sCiAgICBjb250YWlucyA6IGZ1bmN0aW9uIChzdHJpbmcsIHNlYXJjaCkgewogICAgICByZXR1cm
4gc3RyaW5nLmluZGV4T2Yoc2VhcmNoKSAhPSAtMTsKICAgIH0sCiAgICBnZXRCcm93c2VyIDogZnVuY3Rpb
24gKCkgewogICAgICB2YXIgdWEgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgICAgaWYgKEFh
ay5jb250YWlucyh1YSwgJ0ZpcmVmb3gnKSkgewogICAgICAgIHJldHVybiAiRmlyZWZveCI7CiAgICAgIH0
gZWxzZSBpZiAoQWFrLmNvbnRhaW5zKHVhLCAnU2xlaXBuaXInKSkgewogICAgICAgIHJldHVybiAiU2xlaX
BuaXIiOyAvLyBNb2JpbGUKICAgICAgfSBlbHNlI
GlmIChBYWsuY29udGFpbnModWEsICdVQ0Jyb3dzZXInKSkgewogICAgICAgIHJldHVybiAiVUNCcm93c2Vy
IjsgLy8gTW9iaWxlCiAgICAgIH0gZWxzZSBpZiAoQWFrLmNvbnRhaW5zKHVhLCAnRG9sZmluJykpIHsKICA
gICAgICByZXR1cm4gIkRvbHBoaW4iOyAvLyBNb2JpbGUKICAgICAgfSBlbHNlIGlmIChBYWsuY29udGFpbn
ModWEsICdNU0lFJykpIHsKICAgICAgICByZXR1cm4gIkludGVybmV0RXhwbG9yZXIiOwogICAgICB9IGVsc
2UgaWYgKEFhay5jb250YWlucyh1YSwgJ01pZG9yaScpKSB7CiAgICAgICAgcmV0dXJuICJNaWRvcmkiOwog
ICAgICB9IGVsc2UgaWYgKEFhay5jb250YWlucyh1YSwgJ09wZXJhJykgfHwgQWFrLmNvbnRhaW5zKHVhLCA
nT1BSJykpIHsKICAgICAgICByZXR1cm4gIk9wZXJhIjsKICAgICAgfSBlbHNlIGlmIChBYWsuY29udGFpbn
ModWEsICdDaHJvbWUnKSkgewogICAgICAgIHJldHVybiAiQ2hyb21lIjsKICAgICAgfSBlbHNlIGlmIChBY
WsuY29udGFpbnModWEsICdTYWZhcmknKSkgewogICAgICAgIHJldHVybiAiU2FmYXJpIjsKICAgICAgfSBl
bHNlIGlmIChBYWsuY29udGFpbnModWEsICdLb25xdWVyb3InKSkgewogICAgICAgIHJldHVybiAiS29ucXV
lcm9yIjsKICAgICAgfSBlbHNlIGlmIChBYWsuY29udGFpbnModWEsICdQYWxlTW9vbicpKSB7CiAgICAgIC
AgcmV0dXJuICJQYWxlTW9vbiI7IC8vIGZvcmsgZmlyZWZveAogICAgICB9IGVsc2UgaWYgKEFhay5jb250Y
Wlucyh1YSwgJ0N5YmVyZm94JykpIHsKICAgICAgICByZXR1cm4gIkN5YmVyZm94IjsgLy8gZm9yayBmaXJl
Zm94CiAgICAgIH0gZWxzZSBpZiAoQWFrLmNvbnRhaW5zKHVhLCAnU2VhTW9ua2V5JykpIHsKICAgICAgICB
yZXR1cm4gIlNlYU1vbmtleSI7IC8vIGZvcmsgZmlyZWZveAogICAgICB9IGVsc2UgaWYgKEFhay5jb250YW
lucyh1YSwgJ0ljZXdlYXNlbCcpKSB7CiAgICAgICAgcmV0dXJuICJJY2V3ZWFzZWwiOyAvLyBmb3JrIGZpc
mVmb3gKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdWE7CiAgICAgIH0KICAgIH0sCiAgICBnZXRW
ZXJzaW9uIDogZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gTnVtYmVyKEFhay52ZXJzaW9uKTsKICAgIH0
sCiAgICBnZXRTY3JpcHRNYW5hZ2VyIDogZnVuY3Rpb24gKCkgewogICAgICBpZiAodHlwZW9mIEdNX2luZm
8gPT0gJ29iamVjdCcpIHsKICAgICAgICAvLyBHcmVhc2Vtb25rZXkgKEZpcmVmb3gpCiAgICAgICAgaWYgK
HR5cGVvZiBHTV9pbmZvLnV1aWQgIT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIHJldHVybiAnR3JlYXNl
bW9ua2V5JzsKICAgICAgICB9IC8vIFRhbXBlcm1vbmtleSAoQ2hyb21lL09wZXJhKQogICAgICAgIGVsc2U
gaWYgKHR5cGVvZiBHTV9pbmZvLnNjcmlwdEhhbmRsZXIgIT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIH
JldHVybiAnVGFtcGVybW9ua2V5JzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gU2Nya
XB0aXNoIChGaXJlZm94KQogICAgICAgIGlmICh0eXBlb2YgR01fZ2V0TWV0YWRhdGEgPT0gJ2Z1bmN0aW9u
JykgewogICAgICAgICAgcmV0dXJuICdTY3JpcHRpc2gnOwogICAgICAgIH0gLy8gTmluamFLaXQgKFNhZmF
yaS9DaHJvbWUpCiAgICAgICAgZWxzZSBpZiAodHlwZW9mIEdNX3NldFZhbHVlICE9ICd1bmRlZmluZWQnIC
YmCiAgICAgICAgICB0eXBlb2YgR01fZ2V0UmVzb3VyY2VUZXh0ID09ICd1bmRlZmluZWQnICYmCiAgICAgI
CAgICB0eXBlb2YgR01fZ2V0UmVzb3VyY2VVUkwgPT0gJ3VuZGVmaW5lZCcgJiYKICAgICAgICAgIHR5cGVv
ZiBHTV9vcGVuSW5UYWIgPT0gJ3VuZGVmaW5lZCcgJiYKICAgICAgICAgIHR5cGVvZiBHTV9zZXRDbGlwYm9
hcmQgPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIHJldHVybiAnTmluamFLaXQnOwogICAgICAgIH0gZW
xzZSB7IC8vIE5hdGl2ZQogICAgICAgICAgcmV0dXJuICdOYXRpdmUnOwogICAgICAgIH0KICAgICAgfQogI
CAgfSwKICAgIGdlbmVyYXRlSUQgOiBmdW5jdGlvbiAobGVuKSB7CiAgICAgIHZhciBzdHIgPSAnJzsKICAg
ICAgdmFyIGNoYXJzZXQgPSAiYWJjZGVmZ2hpamtsbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlN
UVVZXWFlaIjsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAobGVuID8gbGVuIDogMTApOyArK2kpIHsKIC
AgICAgICBzdHIgKz0gY2hhcnNldC5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnNld
C5sZW5ndGgpKTsKICAgICAgfQogICAgICByZXR1cm4gc3RyOwogICAgfSwKICAgIGdlbmVyYXRlVVVJRCA6
IGZ1bmN0aW9uICgpIHsKICAgICAgLy8gVW5pdmVyc2FsbHkgVW5pcXVlIElEZW50aWZpZXIKICAgICAgdmF
yIGQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgdmFyIHV1aWQgPSAneHh4eHh4eHgteHh4eC00eH
h4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uIChjKSB7CiAgICAgICAgI
CB2YXIgciA9IChkICsgTWF0aC5yYW5kb20oKSAqIDE2KSAlIDE2IHwgMDsKICAgICAgICAgIGQgPSBNYXRo
LmZsb29yKGQgLyAxNik7CiAgICAgICAgICByZXR1cm4gKGMgPT0gJ3gnID8gciA6IChyICYgMHg3IHwgMHg
4KSkudG9TdHJpbmcoMTYpOwogICAgICAgIH0pOwogICAgICByZXR1cm4gdXVpZDsKICAgIH0sCiAgICBnZX
RVVUlEIDogZnVuY3Rpb24gKCkgewogICAgICB2YXIgbmFtZSA9ICd1dWlkJzsKICAgICAgaWYgKEFhay5nZ
XRWYWx1ZShuYW1lKSA9PT0gbnVsbCkgewogICAgICAgIEFhay5zZXRWYWx1ZShuYW1lLCBBYWsuZ2VuZXJh
dGVVVUlEKCkpOwogICAgICB9CiAgICAgIHJldHVybiBBYWsuZ2V0VmFsdWUobmFtZSk7CiAgICB9LAogICA
gc2NoZWR1bGUgOiBmdW5jdGlvbiAoZGF5cywgbmFtZSwgY2FsbGJhY2spIHsKICAgICAgd2luZG93LnNldF
RpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBsYXRlciA9IGlzTmFOKEFhay5nZXRWYWx1ZShuY
W1lKSkgPyAxIDogTnVtYmVyKEFhay5nZXRWYWx1ZShuYW1lKSk7CiAgICAgICAgdmFyIG5vdyA9IG5ldyBE
YXRlKCkuZ2V0VGltZSgpOwogICAgICAgIGlmIChsYXRlciA8IG5vdykgewogICAgICAgICAgQWFrLnNldFZ
hbHVlKG5hbWUsIChub3cgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKS50b1N0cmluZygpKTsKIC
AgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9LCAxZTMpOwogICAgfSwKICAgIG5vdGlma
WNhdGlvbiA6IGZ1bmN0aW9uIChtZXNzYWdlLCBkZWxheSkgewogICAgICBpZiAoQWFrLmlzVG9wZnJhbWUp
IHsKCiAgICAgICAgLy8gcmVtb3ZlIG9sZCBub3RpZmljYXRpb24KICAgICAgICBBYWsucmVtb3ZlRWxlbWV
udCgnI2Fhay1ub3RpY2UtZnJhbWUnKTsKCiAgICAgICAgLy8gYWRkIG5ldyBub3RpZmljYXRpb24KICAgIC
AgICBBYWsuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICB0YWcgOiAnaWZyYW1lJywKICAgICAgICAgIGlkI
DogJ2Fhay1ub3RpY2UtZnJhbWUnLAogICAgICAgICAgc3R5bGUgOiAncG9zaXRpb246Zml4ZWQ7IHotaW5k
ZXg6OTk5OTk5OyB0b3A6MTBweDsgbGVmdDoxMHB4OycsCiAgICAgICAgICB3aWR0aCA6ICczNjBweCcsCiA
gICAgICAgICBoZWlnaHQgOiAnMTIwcHgnLAogICAgICAgICAgZnJhbWVib3JkZXIgOiAwLAogICAgICAgIC
Agc2Nyb2xsaW5nIDogJ25vJywKICAgICAgICAgIC8vc3JjIDogJy8vbG9jYWxob3N0L2dpdC9hbnRpLWFkY
mxvY2sta2lsbGVyLXBhZ2VzL25vdGlmaWNhdGlvbi5odG1sIycgKyBidG9hKG1lc3NhZ2UpLAogICAgICAg
ICAgc3JjIDogJy8vcmVlay5naXRodWIuaW8vYW50aS1hZGJsb2NrLWtpbGxlci9ub3RpZmljYXRpb24uaHR
tbCMnICsgd2luZG93LmJ0b2EobWVzc2FnZSksCiAgICAgICAgICBhcHBlbmQgOiAnYm9keScsCiAgICAgIC
AgICBjYWxsYmFjayA6IGZ1bmN0aW9uIChzZWxmKSB7CgogICAgICAgICAgICAvLyBtYW51YWxseSByZW1vd
mUKICAgICAgICAgICAgQWFrLm9uRXZlbnQod2luZG93LCAibWVzc2FnZSIsIGZ1bmN0aW9uIChldmVudCkg
ewogICAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09ICJyZW1vdmVOb3RpZmljYXRpb24iKSB7CiAgICA
gICAgICAgICAgICBzZWxmLnJlbW92ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgZmFsc2
UpOwoKICAgICAgICAgICAgLy8gYXV0b21hdGljYWxseSByZW1vdmUKICAgICAgICAgICAgd2luZG93LnNld
FRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHNlbGYucmVtb3ZlKCk7CiAgICAgICAgICAg
IH0sIGRlbGF5IHx8IDNlNCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICB9CiAgICB9LAogICA
gY2hlY2tMaXN0IDogZnVuY3Rpb24gKCkgewogICAgICBpZiAoQWFrLnVzZUdNICYmIEFhay5vcHRzLmNoZW
NrTGlzdCAmJiBBYWsuaXNUb3BmcmFtZSkgewogICAgICAgIEFhay5zY2hlZHVsZSgxLCAnbmV4dGNoZWNrb
GlzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgIEFhay5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgICB0YWcgOiAnc2NyaXB0JywKICAgICAgICA
gICAgICBzcmMgOiB3aW5kb3cuYXRvYignTHk5eVpXVnJMbWRwZEdoMVlpNXBieTloYm5ScExXRmtZbXh2WT
JzdGEybHNiR1Z5TDJzeVZYYzNhWE5JY2sxdE5VcFlVREZXZDJSNFl6VTJOMXBMWXpGaFdqUkpMbXB6JyksC
iAgICAgICAgICAgICAgYXBwZW5kIDogJ2JvZHknLAogICAgICAgICAgICAgIGV2ZW50IDogewogICAgICAg
ICAgICAgICAgZXJyb3IgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk
7CiAgICAgICAgICAgICAgICAgIEFhay5pbmZvKCdBYWtMaXN0IGRldGVjdGVkICEnKTsKICAgICAgICAgIC
AgICAgIH0sCiAgICAgICAgICAgICAgICBsb2FkIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgI
CB0aGlzLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICBBYWsud2FybignQWFrTGlzdCBub3QgZGV0ZWN0
ZWQgIScpOwogICAgICAgICAgICAgICAgICBBYWsubm90aWZpY2F0aW9uKCdJdCBzZWVtcyB0aGF0IHlvdSB
oYXZlIG5vdCBzdWJzY3JpYmVkIG9yIGRpc2FibGVkIDxiPkFha0xpc3Q8L2I+LiA8YSBocmVmPSInICsgQW
FrLnN1YnNjcmliZVVSTCArICciIHRhcmdldD0iX2JsYW5rIj5TdWJzY3JpYmU8L2E+IG9yIDxhIGhyZWY9I
icgKyBBYWsuc2V0dGluZ3NVUkwgKyAnIiB0YXJnZXQ9Il9ibGFuayI+RGlzYWJsZSB0aGlzIGFsZXJ0PC9h
PicpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICA
gICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGNoZWNrVXBkYXRlIDogZnVuY3Rpb24gKG
F1dG8pIHsKCiAgICAgIHZhciBjaGVjayA9IGZ1bmN0aW9uIChub3RpZnlGYWxzZSkgewogICAgICAgIEFha
y5yZXF1ZXN0KHsKICAgICAgICAgIHVybCA6IEFhay5kb3dubG9hZFVSTCwKICAgICAgICAgIG9ubG9hZCA6
IGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICB2YXIgcmVzID0gcmVzcG9uc2UucmVzcG9uc2V
UZXh0OwogICAgICAgICAgICB2YXIgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzOwogICAgICAgICAgICBpZi
Aoc3RhdHVzID09IDIwMCkgewogICAgICAgICAgICAgIHZhciBsb2NhbCA9IEFhay5nZXRWZXJzaW9uKCk7C
iAgICAgICAgICAgICAgdmFyIHJlbW90ZSA9IE51bWJlcihyZXMubWF0Y2goL0B2ZXJzaW9uXHMrKFxkK1wu
XGQrKS8pWzFdKTsKICAgICAgICAgICAgICBpZiAobG9jYWwgPCByZW1vdGUpIHsKICAgICAgICAgICAgICA
gIEFhay5ub3RpZmljYXRpb24oJ0FudGktQWRibG9jayBLaWxsZXIgdicgKyByZW1vdGUgKyAnIGlzIGF2YW
lsYWJsZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJyArIEFhay5kb3dubG9hZFVSTCArICciPkluc3Rhb
Gw8L2E+LicpOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAobm90aWZ5RmFsc2UpIHsKICAgICAgICAgICAg
ICAgIEFhay5ub3RpZmljYXRpb24oJ05vIHVwZGF0ZSBmb3VuZC4nKTsKICAgICAgICAgICAgICB9CiAgICA
gICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfTsKCiAgICAgIGlmIChhdXRvKSB7IC
8vIGF1dG8gbW9kZQogICAgICAgIGlmIChBYWsudXNlR00gJiYgQWFrLm9wdHMuY2hlY2tVcGRhdGUgJiYgQ
WFrLmlzVG9wZnJhbWUpIHsKICAgICAgICAgIEFhay5yZWFkeShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
IEFhay5zY2hlZHVsZSg3LCAnbmV4dGNoZWNrdXBkYXRlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICA
gIGNoZWNrKGZhbHNlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH
0gZWxzZSB7IC8vIG1hbnVhbCBtb2RlCiAgICAgICAgaWYgKEFhay5pc1RvcGZyYW1lKSB7CiAgICAgICAgI
CBjaGVjayh0cnVlKTsKICAgICAgICB9CiAgICAgIH0KCiAgICB9LAogICAgb3BlbkluVGFiIDogZnVuY3Rp
b24gKHVybCkgewogICAgICBpZiAodHlwZW9mIEdNX29wZW5JblRhYiAhPSAndW5kZWZpbmVkJykgewogICA
gICAgIEdNX29wZW5JblRhYih1cmwpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBuZXdXaW5kb3cgPS
B3aW5kb3cub3Blbih1cmwsICJfYmxhbmsiKTsKICAgICAgICBuZXdXaW5kb3cuZm9jdXMoKTsKICAgICAgf
QogICAgfSwKICAgIHJlcXVlc3QgOiBmdW5jdGlvbiAoc2V0dGluZ3MpIHsKICAgICAgc2V0dGluZ3MudXJs
ID0gc2V0dGluZ3MudXJsIHx8ICcnOwogICAgICBzZXR0aW5ncy5tZXRob2QgPSBzZXR0aW5ncy5tZXRob2Q
gfHwgJ0dFVCc7CiAgICAgIHNldHRpbmdzLmhlYWRlcnMgPSBzZXR0aW5ncy5oZWFkZXJzIHx8IHt9OwogIC
AgICBzZXR0aW5ncy50aW1lb3V0ID0gc2V0dGluZ3MudGltZW91dCB8fCAyZTQ7IC8vIDIwcwogICAgICBpZ
iAoc2V0dGluZ3MuZGF0YSB8fCBzZXR0aW5ncy5tZXRob2QgPT0gJ1BPU1QnKSB7CiAgICAgICAgc2V0dGlu
Z3MubWV0aG9kID0gJ1BPU1QnOwogICAgICAgIHNldHRpbmdzLmRhdGEgPSBBYWsuc2VyaWFsaXplKHNldHR
pbmdzLmRhdGEgfHwge30pOwogICAgICAgIHNldHRpbmdzLmhlYWRlcnMgPSBBYWsuc2V0UHJvcGVydGllcy
hzZXR0aW5ncy5oZWFkZXJzLCB7CiAgICAgICAgICAgICdYLVJlcXVlc3RlZC1XaXRoJyA6ICdYTUxIdHRwU
mVxdWVzdCcsCiAgICAgICAgICAgICdDb250ZW50LVR5cGUnIDogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0t
dXJsZW5jb2RlZCcKICAgICAgICAgIH0pOwogICAgICB9CgogICAgICAvLyBvdmVycmlkZSB0byBpbnRlZ3J
hdGUgbG9nCiAgICAgIHNldHRpbmdzLl9vbmxvYWQgPSBzZXR0aW5ncy5vbmxvYWQ7CiAgICAgIHNldHRpbm
dzLm9ubG9hZCA9IGZ1bmN0aW9uICh4aHIpIHsKICAgICAgICBpZiAoQWFrLm9wdHMubG9nWGhyKSB7CiAgI
CAgICAgICBBYWsubG9nKEFhay5nZXRTY3JpcHRN
YW5hZ2VyKCkgKyAnIHhocicsIHhocik7CiAgICAgICAgfQogICAgICAgIHNldHRpbmdzLl9vbmxvYWQoeGh
yKTsKICAgICAgfTsKCiAgICAgIGlmICh0eXBlb2YgR01feG1saHR0cFJlcXVlc3QgIT0gJ3VuZGVmaW5lZC
cpIHsKICAgICAgICAvLyBSZXF1ZXN0IHdpdGggR00gQVBJCiAgICAgICAgLy8gZG9jOiBodHRwOi8vdGlue
XVybC5jb20vMnQ3d2JyCiAgICAgICAgR01feG1saHR0cFJlcXVlc3Qoc2V0dGluZ3MpOwogICAgICB9IGVs
c2UgewogICAgICAgIC8vIFJlcXVlc3Qgd2l0aCBXZWIgQVBJCiAgICAgICAgLy8gVXNpbmcgcmVtb3RlIHN
lcnZlciB0byBhbGxvdyBjcm9zcy1vcmlnaW4gcmVxdWVzdHMuCiAgICAgICAgLy8gZG9jOiBodHRwOi8vdG
lueXVybC5jb20vb2R6NjY0YQogICAgICAgIC8vIGRvYzogaHR0cDovL3Rpbnl1cmwuY29tL3A5enJ1em4KI
CAgICAgICB2YXIgeGhyID0gbmV3IHdpbmRvdy5YTUxIdHRwUmVxdWVzdCgpOwogICAgICAgIHhoci5vcGVu
KCdQT1NUJywgJ2h0dHA6Ly9yZWVrc2l0ZS5jb20vcHVibGljL3hoci5waHAnLCB0cnVlKTsKICAgICAgICB
4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdX
JsZW5jb2RlZCcpOwogICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgc
mVzID0geGhyLnJlc3BvbnNlVGV4dDsKICAgICAgICAgIHZhciBqc29uID0gSlNPTiAmJiBKU09OLnBhcnNl
KHJlcyk7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeGhyLCAicmVzcG9uc2VUZXh0Iiwgewo
gICAgICAgICAgICBlbnVtZXJhYmxlIDogdHJ1ZSwKICAgICAgICAgICAgY29uZmlndXJhYmxlIDogdHJ1ZS
wKICAgICAgICAgICAgd3JpdGFibGUgOiB0cnVlLAogICAgICAgICAgICB2YWx1ZSA6IGpzb24ucmVzcG9uc
2UKICAgICAgICAgIH0pOwogICAgICAgICAgc2V0dGluZ3Mub25sb2FkKHhocik7CiAgICAgICAgfTsKICAg
ICAgICB4aHIuc2VuZChBYWsuc2VyaWFsaXplKHNldHRpbmdzKSk7CiAgICAgIH0KICAgIH0sCiAgICBkZWx
ldGVWYWx1ZSA6IGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgIGlmICh0eXBlb2YgR01fZGVsZXRlVmFsdWUgIT
09ICJ1bmRlZmluZWQiICYmICFuYW1lKSB7CiAgICAgICAgdmFyIHZhbHMgPSBHTV9saXN0VmFsdWVzKCk7C
iAgICAgICAgZm9yICh2YXIgaSBpbiB2YWxzKSB7CiAgICAgICAgICBpZiAodmFscy5oYXNPd25Qcm9wZXJ0
eShpKSkKICAgICAgICAgICAgR01fZGVsZXRlVmFsdWUodmFsc1tpXSk7CiAgICAgICAgfQogICAgICB9IGV
sc2UgaWYgKHR5cGVvZiBHTV9kZWxldGVWYWx1ZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICBHTV9kZW
xldGVWYWx1ZShuYW1lKTsKICAgICAgfQogICAgfSwKICAgIHNldFZhbHVlIDogZnVuY3Rpb24gKG5hbWUsI
HZhbHVlKSB7CiAgICAgIGlmICh0eXBlb2YgR01fc2V0VmFsdWUgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAg
ICAgR01fc2V0VmFsdWUobmFtZSwgdmFsdWUpOwogICAgICB9CiAgICB9LAogICAgZ2V0VmFsdWUgOiBmdW5
jdGlvbiAobmFtZSkgewogICAgICBpZiAodHlwZW9mIEdNX2xpc3RWYWx1ZXMgIT09ICJ1bmRlZmluZWQiIC
YmICFuYW1lKSB7CiAgICAgICAgdmFyIGxpc3QgPSB7fTsKICAgICAgICB2YXIgdmFscyA9IEdNX2xpc3RWY
Wx1ZXMoKTsKICAgICAgICBmb3IgKHZhciBpIGluIHZhbHMpIHsKICAgICAgICAgIGlmICh2YWxzLmhhc093
blByb3BlcnR5KGkpKQogICAgICAgICAgICBsaXN0W3ZhbHNbaV1dID0gR01fZ2V0VmFsdWUodmFsc1tpXSk
7CiAgICAgICAgfQogICAgICAgIHJldHVybiBsaXN0OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBHTV9nZX
RWYWx1ZSAhPT0gInVuZGVmaW5lZCIgJiYgdHlwZW9mIEdNX2dldFZhbHVlKG5hbWUpICE9PSAidW5kZWZpb
mVkIikgewogICAgICAgIHJldHVybiBHTV9nZXRWYWx1ZShuYW1lKTsKICAgICAgfSBlbHNlIHsKICAgICAg
ICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgfSwKICAgIHNldExvY2FsIDogZnVuY3Rpb24gKG5hbWUsIHZ
hbHVlKSB7CiAgICAgIHRyeSB7CiAgICAgICAgLy8gU2VjdXJpdHlFcnJvcjogVGhlIG9wZXJhdGlvbiBpcy
BpbnNlY3VyZS4KICAgICAgICAvLyBkb2M6IGh0dHA6Ly90aW55dXJsLmNvbS84cGVxd3ZkCiAgICAgICAga
WYgKHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgd2lu
ZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKG5hbWUsIHZhbHVlLnRvU3RyaW5nKCkpOwogICAgICAgIH0gZWx
zZSB7CiAgICAgICAgICBBYWsud2FybigiU29ycnkhIE5vIFdlYiBTdG9yYWdlIHN1cHBvcnQuIik7CiAgIC
AgICAgfQogICAgICB9IGNhdGNoIChlKSB7fQogICAgfSwKICAgIGdldExvY2FsIDogZnVuY3Rpb24gKG5hb
WUpIHsKICAgICAgdHJ5IHsKICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09ICJ1
bmRlZmluZWQiKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWU
pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBBYWsud2FybigiU29ycnkhIE5vIFdlYiBTdG9yYWdlIH
N1cHBvcnQuIik7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGUpI
HsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgfSwKICAgIHNldFNlc3Npb24gOiBmdW5jdGlv
biAobmFtZSwgdmFsdWUpIHsKICAgICAgdHJ5IHsKICAgICAgICAvLyBEb2M6IGh0dHA6Ly90aW55dXJsLmN
vbS84cGVxd3ZkCiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgIT09ICJ1bmRlZm
luZWQiKSB7CiAgICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShuYW1lLCB2YWx1ZS50b
1N0cmluZygpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgQWFrLndhcm4oIlNvcnJ5ISBObyBXZWIg
U3RvcmFnZSBzdXBwb3J0LiIpOwogICAgICAgIH0KICAgICAgfSBjYXRjaCAoZSkge30KICAgIH0sCiAgICB
nZXRTZXNzaW9uIDogZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgdHJ5IHsKICAgICAgICBpZiAodHlwZW9mIH
dpbmRvdy5zZXNzaW9uU3RvcmFnZSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgIHJldHVybiB3aW5kb
3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuYW1lKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgQWFr
Lndhcm4oIlNvcnJ5ISBObyBXZWIgU3RvcmFnZSBzdXBwb3J0LiIpOwogICAgICAgICAgcmV0dXJuIG51bGw
7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KIC
AgIH0sCiAgICBzZXRDb29raWUgOiBmdW5jdGlvbiAobmFtZSwgdmFsdWUsIHRpbWUsIHBhdGgpIHsKICAgI
CAgdmFyIGV4cGlyZXMgPSBuZXcgRGF0ZSgpOwogICAgICBleHBpcmVzLnNldFRpbWUobmV3IERhdGUoKS5n
ZXRUaW1lKCkgKyAodGltZSB8fCAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwKSk7CiAgICAgIGRvY3VtZW5
0LmNvb2tpZSA9IG5hbWUgKyAiPSIgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpICsgIjtleHBpcmVzPS
IgKyBleHBpcmVzLnRvR01UU3RyaW5nKCkgKyAiO3BhdGg9IiArIChwYXRoIHx8ICcvJyk7CiAgICB9LAogI
CAgZ2V0Q29va2llIDogZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3Vt
ZW50LmNvb2tpZTsKICAgICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwo
gICAgICBpZiAocGFydHMubGVuZ3RoID09IDIpCiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KC
I7Iikuc2hpZnQoKTsKICAgIH0sCiAgICBzZXRSZWFkT25seSA6IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge
wogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCBuYW1lLCB7CiAgICAgICAgdmFsdWUgOiB2
YWx1ZSwKICAgICAgICBjb25maWd1cmFibGUgOiBmYWxzZSwKICAgICAgICB3cml0YWJsZSA6IGZhbHNlCiA
gICAgIH0pOwogICAgfSwKICAgIHN0b3BSZWRpcmVjdCA6IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKCd3YX
RjaCcgaW4gd2luZG93KSB7CiAgICAgICAgQWFrLnV3LndhdGNoKCJsb2NhdGlvbiIsIGZ1bmN0aW9uICgpI
Ht9KTsKICAgICAgICBBYWsudXcubG9jYXRpb24ud2F0Y2goImhyZWYiLCBmdW5jdGlvbiAoKSB7fSk7CiAg
ICAgIH0gZWxzZSB7CiAgICAgICAgQWFrLnV3LmxvY2F0aW9uID0gIiMiOwogICAgICAgIHRocm93ICdTdG9
wIFJlZGlyZWN0JzsKICAgICAgfQogICAgfSwKICAgIGNvbmZpcm1MZWF2ZSA6IGZ1bmN0aW9uICgpIHsKIC
AgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiAnJzsKI
CAgICAgfTsKICAgIH0sCiAgICBjb25maXJtUmVwb3J0IDogZnVuY3Rpb24gKGVsZW0pIHsKICAgICAgZWxl
bS5pbm5lckhUTUwgPSAnUmVwb3J0JzsKICAgICAgZWxlbS50aXRsZSA9ICdSZXBvcnQgaXNzdWUgb3IgYW5
0aS1hZGJsb2NrJzsKICAgICAgZWxlbS5vbmNsaWNrID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBlLnByZX
ZlbnREZWZhdWx0KCk7CiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKCJEbyB5b3Ugd2FudCB0byByZXBvc
nQgaXNzdWUgb3IgYW50aS1hZGJsb2NrID8iKSkgeyAvLyBDbGljIG9uIE9LCiAgICAgICAgICBBYWsuZ28o
QWFrLnJlcG9ydFVSTCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIEFhay5nbyhlbGVtLmhyZWYpOwo
gICAgICAgIH0KICAgICAgfTsKICAgIH0sCiAgICB1bnBhY2tTY3JpcHQgOiBmdW5jdGlvbiAoc291cmNlKS
B7CiAgICAgIC8vIGRlb2JmdXNjYXRlOiBwYWMra2VkLCBwYWMra2VyLCBtdW4rZ2VkLCB3aStzZQogICAgI
CAvLyBub3RlOiAiRXhjZXB0aW9uIDQwMzAwOCIgc2VlIGdyZWFzZWZvcmsgUE0KICAgICAgdmFyIHN1YnN0
cmluZyA9IHNvdXJjZS5zdWJzdHJpbmcoc291cmNlLmluZGV4T2YoJ2V2YWwoJykrNCwgc291cmNlLmxhc3R
JbmRleE9mKCcpJykrMSk7CiAgICAgIHJldHVybiBuZXcgRnVuY3Rpb24oJ3JldHVybiAnK3N1YnN0cmluZy
koKTsKICAgIH0sCiAgICBoYXNTY3JpcHQgOiBmdW5jdGlvbiAoY29udGFpbnMsIGRvYykgewogICAgICAvL
yBieTogV2F0aWxpbgogICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKAogICAgICAg
IGRvYyAmJiBkb2Muc2NyaXB0cyB8fCBkb2N1bWVudC5zY3JpcHRzLAogICAgICAgIGZ1bmN0aW9uICgkc2N
yaXB0KSB7CiAgICAgICAgdmFyIHNvdXJjZSA9ICRzY3JpcHQuaW5uZXJIVE1MOwogICAgICAgIHJldHVybi
Bzb3VyY2UgJiYgc291cmNlLmluZGV4T2YoY29udGFpbnMpICE9IC0xOwogICAgICB9KVswXTsKICAgIH0sC
iAgICBhZGRTY3JpcHQgOiBmdW5jdGlvbiAoc291cmNlLCBib2R5KSB7CiAgICAgIHZhciBzY3JpcHQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgc2NyaXB0LnR5cGUgPSAidGV4dC9qYXZ
hc2NyaXB0IjsKICAgICAgc2NyaXB0LmlubmVySFRNTCA9ICh0eXBlb2Ygc291cmNlID09PSAnZnVuY3Rpb2
4nKSA/IEFhay5pbnRvU3RyaW5nKHNvdXJjZSkgOiBzb3VyY2UudG9TdHJpbmcoKTsKICAgICAgaWYgKGJvZ
HkpIHsKICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgIH0gZWxzZSB7
CiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICB9CiAgICAgIHNjcml
wdC5yZW1vdmUoKTsKICAgIH0sCiAgICBsb2FkU2NyaXB0IDogZnVuY3Rpb24gKHNyYywgYm9keSwgb25sb2
FkKSB7CiAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgI
CAgc2NyaXB0LnR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKICAgICAgc2NyaXB0LnNyYyA9IHNyYzsKICAg
ICAgaWYgKG9ubG9hZCkgewogICAgICAgIHNjcmlwdC5vbmxvYWQgPSBvbmxvYWQ7CiAgICAgIH0KICAgICA
gaWYgKGJvZHkpIHsKICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgIH
0gZWxzZSB7CiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICB9CiAgI
CB9LAogICAgaW1wb3J0U2NyaXB0IDogZnVuY3Rpb24gKHVybCwgY2FsbGJhY2spIHsKICAgICAgQWFrLnJl
cXVlc3QoewogICAgICAgIHVybCA6IHVybCwKICAgICAgICBvbmxvYWQgOiBmdW5jdGlvbiAocmVzdWx0KSB
7CiAgICAgICAgICB2YXIgcmF3U2NyaXB0ID0gcmVzdWx0LnJlc3BvbnNlVGV4dDsKICAgICAgICAgIChuZX
cgRnVuY3Rpb24oJ0FhaycsIHJhd1NjcmlwdCArICdcblxyJyArIEFhay5pbnRvU3RyaW5nKGNhbGxiYWNrK
SkpKEFhayk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBpbnRvU3RyaW5nIDogZnVuY3Rpb24g
KGEpIHsKICAgICAgaWYgKHR5cGVvZiBhID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgdmFyIHN0ciA9IGE
udG9TdHJpbmcoKTsKICAgICAgICB2YXIgZmlyc3QgPSBzdHIuaW5kZXhPZigieyIpICsgMTsKICAgICAgIC
B2YXIgbGFzdCA9IHN0ci5sYXN0SW5kZXhPZigifSIpOwogICAgICAgIHJldHVybiBzdHIuc3Vic3RyKGZpc
nN0LCBsYXN0IC0gZmlyc3QpLnRyaW0oKTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZW50cnkgPT09ICdv
YmplY3QnKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB9IGVsc2UgeyAvLyB
hcnJheSBvciBzdHJpbmcKICAgICAgICByZXR1cm4gYS50b1N0cmluZygpOwogICAgICB9CiAgICB9LAogIC
AgaW50b0FycmF5IDogZnVuY3Rpb24gKGEpIHsKICAgICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0Jykge
wogICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24gKGtleSkgewogICAgICAgICAg
cmV0dXJuIGFba2V5XTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYSA9PT0gJ3N0cml
uZycpIHsKICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShhKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0
FycmF5KGEpKSB7CiAgICAgICAgcmV0dXJuIGE7CiAgICAgIH0KICAgIH0sCiAgICBpbnRvT2JqZWN0IDogZ
nVuY3Rpb24gKGEpIHsKICAgICAgaWYgKHR5cGVvZiBhID09PSAnc3RyaW5nJykgewogICAgICAgIHJldHVy
biBKU09OLnBhcnNlKGEpOwogICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICB
mb3IgKHZhciBpID0gMCwgbyA9IHt9OyBpIDwgYS5sZW5ndGg7ICsraSkgewogICAgICAgICAgb1tpXSA9IG
FbaV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBvOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhID09P
SAnb2JqZWN0JykgewogICAgICAgIHJldHVybiBhOwogICAgICB9CiAgICB9LAogICAgaGFzRWxlbWVudCA6
IGZ1bmN0aW9uIChzZWxlY3RvciwgY2FsbGJhY2s
sIHRpbWVvdXQpIHsKICAgICAgdmFyIHJlcGVhdCA9IHRpbWVvdXQgfHwgMTA7CiAgICAgIHZhciBsb29wID
0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGVsZW0gPSBBYWsuZ2V0RWxlbWVud
ChzZWxlY3Rvcik7CiAgICAgICAgICBpZiAoZWxlbSkgewogICAgICAgICAgICBjYWxsYmFjayhlbGVtKTsK
ICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChsb29wKTsKICAgICAgICAgIH0KICAgICAgICAgIHJlcGVhdCA
9IChyZXBlYXQpID8gcmVwZWF0IC0gMSA6IGNsZWFySW50ZXJ2YWwobG9vcCk7CiAgICAgICAgfSwgMWUzKT
sKICAgIH0sCiAgICByZW1vdmVFbGVtZW50IDogZnVuY3Rpb24gKGVsZW0pIHsKICAgICAgaWYgKGVsZW0ga
W5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpIHsKICAgICAgICBlbGVtLnJlbW92ZSgpOwogICAgICB9
IGVsc2UgaWYgKHR5cGVvZiBlbGVtID09PSAic3RyaW5nIikgewogICAgICAgIGVsZW0gPSBkb2N1bWVudC5
xdWVyeVNlbGVjdG9yQWxsKGVsZW0pOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5sZW5ndG
g7IGkrKykgewogICAgICAgICAgZWxlbVtpXS5yZW1vdmUoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sC
iAgICBnZXRFbGVtZW50IDogZnVuY3Rpb24gKHNlbGVjdG9yLCBjb250ZXh0Tm9kZSkgewogICAgICBpZiAo
dHlwZW9mIHNlbGVjdG9yID09PSAnc3RyaW5nJykgewogICAgICAgIGlmIChzZWxlY3Rvci5pbmRleE9mKCc
vJykgPT09IDApIHsgLy8gZXg6IC8vaW1nW0BjbGFzcz0icGhvdG8iXQogICAgICAgICAgcmV0dXJuIGRvY3
VtZW50LmV2YWx1YXRlKHNlbGVjdG9yLCBjb250ZXh0Tm9kZSB8fCBkb2N1bWVudCwgbnVsbCwgd2luZG93L
lhQYXRoUmVzdWx0LkZJUlNUX09SREVSRURfTk9ERV9UWVBFLCBudWxsKS5zaW5nbGVOb2RlVmFsdWU7CiAg
ICAgICAgfQogICAgICAgIHJldHVybiAoY29udGV4dE5vZGUgfHwgZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3I
oc2VsZWN0b3IpOwogICAgICB9IGVsc2UgaWYgKHNlbGVjdG9yIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbG
VtZW50KSB7CiAgICAgICAgcmV0dXJuIHNlbGVjdG9yOwogICAgICB9CiAgICB9LAogICAgY3JlYXRlRWxlb
WVudCA6IGZ1bmN0aW9uIChwcm9wcykgewogICAgICB2YXIgZWxlbSwKICAgICAgbm9kZSA9IHt9OwogICAg
ICBmb3IgKHZhciBuYW1lIGluIHByb3BzKSB7CiAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KG5
hbWUpKSB7CiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgIGNhc2UgInRhZyI6CiAgICAgIC
AgICAgIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHByb3BzW25hbWVdKTsKICAgICAgICAgICAgY
nJlYWs7CiAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgdmFyIHRleHQgPSAoJ2lubmVyVGV4
dCcgaW4gZG9jdW1lbnQpID8gJ2lubmVyVGV4dCcgOiAndGV4dENvbnRlbnQnOwogICAgICAgICAgICBub2R
lW3RleHRdID0gcHJvcHNbbmFtZV07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaHRtbC
I6CiAgICAgICAgICAgIG5vZGUuaW5uZXJIVE1MID0gcHJvcHNbbmFtZV07CiAgICAgICAgICAgIGJyZWFrO
wogICAgICAgICAgY2FzZSAiY2xhc3NpZCI6CiAgICAgICAgICAgIG5vZGUuY2xhc3NOYW1lID0gcHJvcHNb
bmFtZV07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiYXBwZW5kIjoKICAgICAgICAgICA
gZWxlbSA9IEFhay5nZXRFbGVtZW50KHByb3BzW25hbWVdKTsKICAgICAgICAgICAgZWxlbS5hcHBlbmRDaG
lsZChub2RlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJwcmVwZW5kIjoKICAgICAgI
CAgICAgZWxlbSA9IEFhay5nZXRFbGVtZW50KHByb3BzW25hbWVdKTsKICAgICAgICAgICAgaWYgKGVsZW0u
Y2hpbGROb2Rlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICBlbGVtLmluc2VydEJlZm9yZShub2RlLCBlbGV
tLmNoaWxkTm9kZXNbMF0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGVsZW0uYXBwZW
5kQ2hpbGQobm9kZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlI
CJiZWZvcmUiOgogICAgICAgICAgICBlbGVtID0gQWFrLmdldEVsZW1lbnQocHJvcHNbbmFtZV0pOwogICAg
ICAgICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIGVsZW0pOwogICAgICAgICAgICB
icmVhazsKICAgICAgICAgIGNhc2UgImFmdGVyIjoKICAgICAgICAgICAgZWxlbSA9IEFhay5nZXRFbGVtZW
50KHByb3BzW25hbWVdKTsKICAgICAgICAgICAgZWxlbS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlL
CBlbGVtLm5leHRTaWJsaW5nKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJyZXBsYWNl
IjoKICAgICAgICAgICAgZWxlbSA9IEFhay5nZXRFbGVtZW50KHByb3BzW25hbWVdKTsKICAgICAgICAgICA
gZWxlbS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChub2RlLCBlbGVtKTsKICAgICAgICAgICAgYnJlYWs7Ci
AgICAgICAgICBjYXNlICJldmVudCI6CiAgICAgICAgICAgIGZvciAodmFyIGV2TmFtZSBpbiBwcm9wcy5ld
mVudCkgewogICAgICAgICAgICAgIGlmIChwcm9wcy5ldmVudC5oYXNPd25Qcm9wZXJ0eShldk5hbWUpKQog
ICAgICAgICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2TmFtZSwgcHJvcHMuZXZlbnRbZXZOYW1
lXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJjYWxsYmFjay
I6CiAgICAgICAgICAgIHByb3BzW25hbWVdKG5vZGUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgI
GRlZmF1bHQ6CiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsIHByb3BzW25hbWVdKTsKICAg
ICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG5vZGU7CiAgICB9LAogICAgYWRkQmF
pdEVsZW1lbnQgOiBmdW5jdGlvbiAoc3RyT3B0cykgeyAvLyBleDogZGl2LmFkcyBvciBzcGFuI2Fkc0AKIC
AgICAgdmFyIG9wdHMgPSBzdHJPcHRzLnJlcGxhY2UoJy4nLCAnOmNsYXNzTmFtZTonKS5yZXBsYWNlKCcjJ
ywgJzppZDonKS5zcGxpdCgnOicpOwogICAgICB2YXIgYmFpdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
b3B0c1swXSk7CiAgICAgIGJhaXQuc2V0QXR0cmlidXRlKG9wdHNbMV0sIG9wdHNbMl0pOwogICAgICBiYWl
0LmlubmVySFRNTCA9ICI8YnI+IjsKICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaW
xkKGJhaXQpOwogICAgICByZXR1cm4gYmFpdDsKICAgIH0sCiAgICByZXBsYWNlRWxlbWVudCA6IGZ1bmN0a
W9uIChvbGROb2RlLCBuZXdOb2RlKSB7CiAgICAgIG9sZE5vZGUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQo
bmV3Tm9kZSwgb2xkTm9kZSk7CiAgICB9LAogICAgc2V0RWxlbWVudCA6IGZ1bmN0aW9uIChzZWxlY3Rvciw
gcHJvcHMpIHsKICAgICAgdmFyIG5vZGUgPSBBYWsuZ2V0RWxlbWVudChzZWxlY3Rvcik7CiAgICAgIGlmIC
hub2RlKSB7CiAgICAgICAgZm9yICh2YXIgbmFtZSBpbiBwcm9wcykgewogICAgICAgICAgaWYgKHByb3BzL
mhhc093blByb3BlcnR5KG5hbWUpKSB7CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAg
ICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICB2YXIgdGV4dCA9ICgnaW5uZXJUZXh0JyBpbiBkb2N1bWV
udCkgPyAnaW5uZXJUZXh0JyA6ICd0ZXh0Q29udGVudCc7CiAgICAgICAgICAgICAgbm9kZVt0ZXh0XSA9IH
Byb3BzW25hbWVdOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJodG1sIjoKICAgI
CAgICAgICAgICBub2RlLmlubmVySFRNTCA9IHByb3BzW25hbWVdOwogICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICBjYXNlICJjbGFzcyI6CiAgICAgICAgICAgICAgbm9kZS5jbGFzc05hbWUgPSBwcm9wc1t
uYW1lXTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIC
Bub2RlLnNldEF0dHJpYnV0ZShuYW1lLCBwcm9wc1tuYW1lXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgI
H0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBhZGRTdHlsZSA6IGZ1bmN0aW9uIChjc3MpIHsKICAg
ICAgY3NzID0gY3NzLnJlcGxhY2UoLzsvZywgJyAhaW1wb3J0YW50OycpOwogICAgICBpZiAodHlwZW9mIEd
NX2FkZFN0eWxlICE9ICd1bmRlZmluZWQnKSB7CiAgICAgICAgR01fYWRkU3R5bGUoY3NzKTsKICAgICAgfS
BlbHNlIHsKICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lb
nQoJ3N0eWxlJykpLmlubmVySFRNTCA9IGNzczsKICAgICAgfQogICAgfSwKICAgIGxvYWRTdHlsZSA6IGZ1
bmN0aW9uIChzcmMpIHsKICAgICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluayc
pOwogICAgICBzdHlsZS5yZWwgPSAic3R5bGVzaGVldCI7CiAgICAgIHN0eWxlLmhyZWYgPSBzcmM7CiAgIC
AgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpOwogICAgfSwKICAgIGdldFN0eWxlIDogZnVuY
3Rpb24gKHNlbGVjdG9yLCBwcm9wKSB7CiAgICAgIHZhciBlbGVtID0gQWFrLmdldEVsZW1lbnQoc2VsZWN0
b3IpOwogICAgICBpZiAoZWxlbS5jdXJyZW50U3R5bGUpIHsKICAgICAgICByZXR1cm4gZWxlbS5jdXJyZW5
0U3R5bGVbcHJvcF07CiAgICAgIH0gZWxzZSBpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUpIHsKICAgIC
AgICByZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtLCBudWxsKS5nZ
XRQcm9wZXJ0eVZhbHVlKHByb3ApOwogICAgICB9CiAgICB9LAogICAgZGVjb2RlVVJJIDogZnVuY3Rpb24g
KHN0cikgewogICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cik7CiAgICB9LAogICAgZW5jb2R
lVVJJIDogZnVuY3Rpb24gKHN0cikgewogICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cik7Ci
AgICB9LAogICAgZW5jb2RlSFRNTCA6IGZ1bmN0aW9uIChzdHIpIHsKICAgICAgcmV0dXJuIFN0cmluZyhzd
HIpLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywg
JyZndDsnKS5yZXBsYWNlKC8iL2csICcmcXVvdDsnKTsKICAgIH0sCiAgICBkZWNvZGVIVE1MIDogZnVuY3R
pb24gKHN0cikgewogICAgICByZXR1cm4gU3RyaW5nKHN0cikucmVwbGFjZSgvJmFtcDsvZywgJyYnKS5yZX
BsYWNlKC8mbHQ7L2csICc8JykucmVwbGFjZSgvJmd0Oy9nLCAnPicpLnJlcGxhY2UoLyZxdW90Oy9nLCAnI
icpOwogICAgfSwKICAgIHNlcmlhbGl6ZSA6IGZ1bmN0aW9uIChvYmopIHsKICAgICAgaWYgKHR5cGVvZiBv
YmogPT0gJ29iamVjdCcpIHsKICAgICAgICB2YXIgYXJyID0gW107CiAgICAgICAgZm9yICh2YXIgcHJvcCB
pbiBvYmopIHsKICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcCkpCiAgICAgICAgICAgIG
Fyci5wdXNoKHByb3AgKyAnPScgKyBBYWsuZW5jb2RlVVJJKG9ialtwcm9wXSkpOwogICAgICAgIH0KICAgI
CAgICByZXR1cm4gYXJyLmpvaW4oJyYnKTsKICAgICAgfQogICAgICByZXR1cm4gb2JqOwogICAgfSwKICAg
IHVuc2VyaWFsaXplIDogZnVuY3Rpb24gKHN0cikgewogICAgICBzdHIgPSBBYWsuZGVjb2RlSFRNTChzdHI
pOwogICAgICB2YXIgYXJyID0gc3RyLnNwbGl0KCcmJyk7CiAgICAgIHZhciBvYmogPSB7fTsKICAgICAgYX
JyLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CiAgICAgICAgaWYgKGVudHJ5ICE9PSAnJyAmJiBlbnRye
S5zcGxpdCgnPScpKSB7CiAgICAgICAgICB2YXIgc3BsaXRzID0gZW50cnkuc3BsaXQoJz0nKTsKICAgICAg
ICAgIG9ialtzcGxpdHNbMF1dID0gQWFrLmRlY29kZVVSSShzcGxpdHNbMV0pOwogICAgICAgIH0KICAgICA
gfSk7CiAgICAgIHJldHVybiBvYmo7CiAgICB9LAogICAgdW5zZXRQcm9wZXJ0aWVzIDogZnVuY3Rpb24gKG
9iaiwgcHJvcHMpIHsKICAgICAgcHJvcHMgPSAodHlwZW9mIHByb3BzID09ICdzdHJpbmcnKSA/IHByb3BzL
nNwbGl0KCcsJykgOiBwcm9wczsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkr
KykgewogICAgICAgIHZhciBwcm9wID0gcHJvcHNbaV07CiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ
0eShwcm9wKSkgewogICAgICAgICAgZGVsZXRlIG9ialtwcm9wXTsKICAgICAgICB9CiAgICAgIH0KICAgIC
AgcmV0dXJuIG9iajsKICAgIH0sCiAgICBzZXRQcm9wZXJ0aWVzIDogZnVuY3Rpb24gKG9iajEsIG9iajIpI
HsKICAgICAgZm9yICh2YXIgcHJvcCBpbiBvYmoyKSB7CiAgICAgICAgaWYgKG9iajIuaGFzT3duUHJvcGVy
dHkocHJvcCkpCiAgICAgICAgICBvYmoxW3Byb3BdID0gb2JqMltwcm9wXTsKICAgICAgfQogICAgICByZXR
1cm4gb2JqMTsKICAgIH0sCiAgICBmaXhQcm90b2NvbFVSTCA6IGZ1bmN0aW9uICh1cmwpIHsKICAgICAgaW
YgKC9eaHR0cC8udGVzdCh1cmwpKSB7IC8vIGFic29sdXRlCiAgICAgICAgcmV0dXJuIHVybDsKICAgICAgf
SBlbHNlIGlmICgvXlwvXC8vLnRlc3QodXJsKSkgeyAvLyByZWxhdGl2ZQogICAgICAgIHJldHVybiAnaHR0
cDonICsgdXJsOwogICAgICB9IGVsc2UgeyAvLyBub25lCiAgICAgICAgcmV0dXJuICdodHRwOi8vJyArIHV
ybDsKICAgICAgfQogICAgfSwKICAgIGZha2VGdWNrQWRCbG9jayA6IGZ1bmN0aW9uIChpbnN0YW5jZU5hbW
UsIGNsYXNzTmFtZSkgewoKICAgICAgLy8gaW5qZWN0IGZha2UgZnVja2FkYmx1Y2sKICAgICAgQWFrLmFkZ
FNjcmlwdChBYWsuaW50b1N0cmluZyhmdW5jdGlvbiAoKSB7CgogICAgICAgICAgdmFyIENMQVNTTkFNRSA9
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgICAgICB2YXIgY2F
sbE5vdERldGVjdGVkID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMuZGVidWcgPSB7CiAgICAgICAgICAgIC
Agc2V0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY7CiAgICAgICAgICAgI
CAgfSwKICAgICAgICAgICAgICBnZXQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICB0aGlzLm9uRGV0ZWN
0ZWQgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKICAgICAgICAgICAgICB0aGlzLm9uKHRydWUsIGNhbGxiYW
NrKTsKICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdGhpc
y5vbk5vdERldGVjdGVkID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7CiAgICAgICAgICAgICAgdGhpcy5vbihm
YWxzZSwgY2FsbGJhY2spOwogICAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgICB9OwogICA
gICAgICAgICB0aGlzLm9uID0gZnVuY3Rpb24gKG
RldGVjdGVkLCBjYWxsYmFjaykgewogICAgICAgICAgICAgIGlmICghZGV0ZWN0ZWQpIHsKICAgICAgICAgI
CAgICAgIGNhbGxOb3REZXRlY3RlZCA9IGNhbGxiYWNrOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChj
YWxsYmFjaywgMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhbJ0FudGl
BZGJLaWxsZXInLCBsb2NhdGlvbi5ob3N0LCAnRnVja0FkQmxvY2snXSk7CiAgICAgICAgICAgICAgcmV0dX
JuIHRoaXM7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uID0gZnVuY3Rpb24gK
CkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgICB9OwogICAgICAgICAgICB0aGlz
Lm9wdGlvbnMgPSB7CiAgICAgICAgICAgICAgc2V0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICA
gcmV0dXJuIHRoaXM7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXQgOiBmdW5jdGlvbiAoKS
B7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07C
iAgICAgICAgICAgIHRoaXMuY2hlY2sgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgaWYgKGNhbGxO
b3REZXRlY3RlZCkKICAgICAgICAgICAgICAgIGNhbGxOb3REZXRlY3RlZCgpOwogICAgICAgICAgICB9Owo
gICAgICAgICAgICB0aGlzLmVtaXRFdmVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm
4gdGhpczsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdGhpcy5jbGVhckV2ZW50ID0gZnVuY3Rpb24gK
Ckge307CiAgICAgICAgICB9OwoKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHdpbmRvdywg
ewogICAgICAgICAgICBDTEFTU05BTUUgOiB7CiAgICAgICAgICAgICAgdmFsdWUgOiBDTEFTU05BTUUsCiA
gICAgICAgICAgICAgd3JpdGFibGUgOiBmYWxzZQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKCiAgIC
AgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3csIHsKICAgICAgICAgICAgSU5TVEFOQ0VOQ
U1FIDogewogICAgICAgICAgICAgIHZhbHVlIDogbmV3IENMQVNTTkFNRSgpLAogICAgICAgICAgICAgIHdy
aXRhYmxlIDogZmFsc2UKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgIH0pLnJlcGxhY2U
oL0lOU1RBTkNFTkFNRS9nLCBpbnN0YW5jZU5hbWUgfHwgJ2Z1Y2tBZEJsb2NrJykKICAgICAgICAucmVwbG
FjZSgvQ0xBU1NOQU1FL2csIGNsYXNzTmFtZSB8fCAnRnVja0FkQmxvY2snKSk7CgogICAgfSwgLy8gRXZlb
nRzCiAgICBvbkV2ZW50IDogZnVuY3Rpb24gKGVsZW1lbnQsIHR5cGUsIGxpc3RlbmVyLCBidWJibGVzKSB7
CiAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgeyAvLyBGb3IgYWxsIG1ham9yIGJyb3dzZXJ
zLCBleGNlcHQgSUUgOCBhbmQgZWFybGllcgogICAgICAgIChlbGVtZW50IHx8IHdpbmRvdykuYWRkRXZlbn
RMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgYnViYmxlcyB8fCBmYWxzZSk7CiAgICAgIH0gZWxzZSB7IC8vI
EZvciBJRSA4IGFuZCBlYXJsaWVyIHZlcnNpb25zCiAgICAgICAgKGVsZW1lbnQgfHwgd2luZG93KS5hdHRh
Y2hFdmVudCgnb24nICsgdHlwZSwgbGlzdGVuZXIpOwogICAgICB9CiAgICAgIHJldHVybiBhcmd1bWVudHM
7CiAgICB9LAogICAgb2ZmRXZlbnQgOiBmdW5jdGlvbiAoZWxlbWVudCwgdHlwZSwgbGlzdGVuZXIsIGJ1Ym
JsZXMpIHsKICAgICAgaWYgKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKSB7IC8vIEZvciBhbGwgbWFqb
3IgYnJvd3NlcnMsIGV4Y2VwdCBJRSA4IGFuZCBlYXJsaWVyCiAgICAgICAgKGVsZW1lbnQgfHwgd2luZG93
KS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBidWJibGVzIHx8IGZhbHNlKTsKICAgICA
gfSBlbHNlIHsgLy8gRm9yIElFIDggYW5kIGVhcmxpZXIgdmVyc2lvbnMKICAgICAgICAoZWxlbWVudCB8fC
B3aW5kb3cpLmRldGFjaEV2ZW50KCdvbicgKyB0eXBlLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgIH0sCiAgI
CBlbWl0RXZlbnQgOiBmdW5jdGlvbiAoZWxlbWVudCwgdHlwZSwgZGV0YWlsLCBidWJibGVzLCBjYW5jZWxh
YmxlKSB7CiAgICAgIHZhciBldmVudDsKICAgICAgaWYgKHdpbmRvdy5DdXN0b21FdmVudCkgewogICAgICA
gIGV2ZW50ID0gbmV3IHdpbmRvdy5DdXN0b21FdmVudCh0eXBlLCB7CiAgICAgICAgICAgICJkZXRhaWwiID
ogZGV0YWlsIHx8IHVuZGVmaW5lZAogICAgICAgICAgfSwgYnViYmxlcyB8fCBmYWxzZSwgY2FuY2VsYWJsZ
SB8fCBmYWxzZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVu
dCgnQ3VzdG9tRXZlbnQnKTsKICAgICAgICBldmVudC5pbml0Q3VzdG9tRXZlbnQoJ29uJyArIHR5cGUsIGJ
1YmJsZXMgfHwgZmFsc2UsIGNhbmNlbGFibGUgfHwgZmFsc2UsIHsKICAgICAgICAgICJkZXRhaWwiIDogZG
V0YWlsIHx8IHVuZGVmaW5lZAogICAgICAgIH0pOwogICAgICB9CiAgICAgIChlbGVtZW50IHx8IHdpbmRvd
ykuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICB9LAogICAgZGV0ZWN0ZWQgOiBmdW5jdGlvbiAobmFtZSkg
ewogICAgICBpZiAoQWFrLm9wdHMuZGVidWcgJiYgQWFrLm9wdHMubG9nRGV0ZWN0ZWQpIHsKICAgICAgICB
BYWsuZW1pdEV2ZW50KHdpbmRvdywgJ2RldGVjdGVkJywgbmFtZSk7CiAgICAgIH0KICAgIH0sCiAgICByZW
FkeSA6IGZ1bmN0aW9uIChjYWxsYmFjaykgewogICAgICBBYWsub25FdmVudCh3aW5kb3csICdsb2FkJywgY
2FsbGJhY2spOwogICAgfSwKICAgIHBsYXllciA6IGZ1bmN0aW9uICgpIHsKCiAgICAgIHZhciBQbGF5ZXIg
PSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdGhpcy50YXJnZXQgPSB7fTsKICAgICAgICB0aGlzLnBsYXllciA
9IHt9OwogICAgICAgIHRoaXMubmFtZSA9IG51bGw7CiAgICAgICAgdGhpcy52ZXJzaW9uID0gbnVsbDsKIC
AgICAgICB0aGlzLmxpYnJhcnkgPSBudWxsOwogICAgICAgIHRoaXMuZmFsbGJhY2sgPSAndmxjJzsKICAgI
CAgICB0aGlzLmF1dG9wbGF5ID0gQWFrLm9wdHMuYXV0b1BsYXk7CiAgICAgICAgdGhpcy5hcmdzID0gbnVs
bDsKICAgICAgICB0aGlzLnNldHVwID0ge307CiAgICAgICAgdGhpcy5vcHRpb25zID0gewogICAgICAgICA
gYnVpbGQgOiAnZW1iZWQnLAogICAgICAgICAgaW5zZXJ0IDogJ3JlcGxhY2UnLAogICAgICAgICAgY3Jvc3
NTZXR1cCA6IHRydWUKICAgICAgICB9OwogICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IHsgLy8gZmxhc2gKI
CAgICAgICAgIHdtb2RlIDogJ29wYXF1ZScsCiAgICAgICAgICBxdWFsaXR5IDogJ2hpZ2gnLAogICAgICAg
ICAgYmdjb2xvciA6ICcjMDAwMDAwJywKICAgICAgICAgIHR5cGUgOiAnYXBwbGljYXRpb24veC1zaG9ja3d
hdmUtZmxhc2gnLAogICAgICAgICAgcGx1Z2luc3BhZ2UgOiAnaHR0cDovL3d3dy5hZG9iZS5jb20vZ28vZ2
V0Zmxhc2gnLAogICAgICAgICAgYWxsb3dzY3JpcHRhY2Nlc3MgOiAnYWx3YXlzJywgLy8gbmV2ZXIgLyBhb
HdheXMKICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbiA6IHRydWUKICAgICAgICB9OwogICAgICB9OwoKICAg
ICAgUGxheWVyLnByb3RvdHlwZSA9IHsgLy8gaHR0cDovL3Rpbnl1cmwuY29tL3BiNmZ0aGoKICAgICAgICB
nZXRUYXJnZXROb2RlIDogZnVuY3Rpb24gKGVsZW1lbnQpIHsKCiAgICAgICAgICB0aGlzLnRhcmdldC5ub2
RlID0gQWFrLmdldEVsZW1lbnQoZWxlbWVudCk7CiAgICAgICAgICB0aGlzLnRhcmdldC5odG1sID0gdGhpc
y50YXJnZXQubm9kZS5vdXRlckhUTUw7CiAgICAgICAgICB0aGlzLnRhcmdldC5wYXJlbnQgPSB0aGlzLnRh
cmdldC5ub2RlLnBhcmVudE5vZGU7CiAgICAgICAgICB0aGlzLnRhcmdldC50YWcgPSB0aGlzLnRhcmdldC5
ub2RlLnRhZ05hbWU7CgogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLmlkID0gdGhpcy5hdHRyaWJ1dGVzLm
5hbWUgPSBBYWsuZ2VuZXJhdGVJRCgpOwogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLmhlaWdodCA9IHRoa
XMudGFyZ2V0Lm5vZGUuaGVpZ2h0IHx8IHRoaXMudGFyZ2V0Lm5vZGUuY2xpZW50SGVpZ2h0IHx8ICc0ODBw
eCc7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMud2lkdGggPSB0aGlzLnRhcmdldC5ub2RlLndpZHRoIHx
8IHRoaXMudGFyZ2V0Lm5vZGUuY2xpZW50V2lkdGggfHwgJzY0MHB4JzsKICAgICAgICB9LAogICAgICAgIG
dldE1pbWVUeXBlIDogZnVuY3Rpb24gKHR5cGUpIHsKICAgICAgICAgIC8vIGRvYzogaHR0cDovL3Rpbnl1c
mwuY29tL2pyczhmZ3oKICAgICAgICAgIHN3aXRjaCAodHlwZS50b0xvd2VyQ2FzZSgpKSB7CiAgICAgICAg
ICBjYXNlICdtcDQnOgogICAgICAgICAgICByZXR1cm4gJ3ZpZGVvL21wNCc7CiAgICAgICAgICBjYXNlICd
3ZWJtJzoKICAgICAgICAgICAgcmV0dXJuICd2aWRlby93ZWJtJzsKICAgICAgICAgIGNhc2UgJ29nZyc6Ci
AgICAgICAgICBjYXNlICdvZ3YnOgogICAgICAgICAgICByZXR1cm4gJ3ZpZGVvL29nZyc7CiAgICAgICAgI
CBjYXNlICdmbHYnOgogICAgICAgICAgICByZXR1cm4gJ3ZpZGVvL3gtZmx2JzsKICAgICAgICAgIGNhc2Ug
J2hscyc6CiAgICAgICAgICAgIHJldHVybiAnYXBwbGljYXRpb24veC1tcGVnVVJMJzsKICAgICAgICAgIGN
hc2UgJ2hkcyc6CiAgICAgICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vZjRtK3htbCc7CiAgICAgICAgIC
BkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gdHlwZTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgI
CAgIGJ1aWxkaW5nIDogZnVuY3Rpb24gKHRhZ05hbWUpIHsKICAgICAgICAgIHZhciBzZWxmID0gdGhpczsK
CiAgICAgICAgICBpZiAoQWFrLm9wdHMuZm9yY2VWTEMgJiYgdGhpcy5uYW1lICE9PSAndmxjJykgewogICA
gICAgICAgICBBYWsuaW5mbygnZm9yY2UgcGxheWluZyB3aXRoIFZMQycpOwogICAgICAgICAgICByZXR1cm
4gdGhpcy52bGMuYXBwbHkodGhpcywgdGhpcy5hcmdzKTsKICAgICAgICAgIH0KCiAgICAgICAgICBzd2l0Y
2ggKHRhZ05hbWUpIHsKICAgICAgICAgIGNhc2UgJ2lmcmFtZSc6CiAgICAgICAgICAgIHRoaXMucGxheWVy
Lm5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKICAgICAgICAgICAgdGhpcy5wbGF
5ZXIubm9kZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIHRoaXMuYXR0cmlidXRlcy5zcmMgfHwgbG9jYXRpb24ucH
JvdG9jb2wgKyAnLy8nICsgbG9jYXRpb24uaG9zdCArICcvJyk7CiAgICAgICAgICAgIGlmICh0aGlzLmF0d
HJpYnV0ZXMuc3JjZG9jKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMucGxheWVyLm5vZGUuaGFzQXR0cmli
dXRlKCJzcmNkb2MiKSB8fCAnc3JjZG9jJyBpbiB0aGlzLnBsYXllci5ub2RlKSB7CiAgICAgICAgICAgICA
gICB0aGlzLnBsYXllci5ub2RlLnNldEF0dHJpYnV0ZSgnc3JjZG9jJywgdGhpcy5hdHRyaWJ1dGVzLnNyY2
RvYyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGRvZXMgbm90IHdvcmsgY
29ycmVjdGx5IHdpdGggZmxvd3BsYXllcgogICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIubm9kZS5zZXRB
dHRyaWJ1dGUoJ3NyYycsICJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LCIgKyBlbmNvZGVVUklDb21
wb25lbnQodGhpcy5hdHRyaWJ1dGVzLnNyY2RvYykpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQ
ogICAgICAgICAgICB0aGlzLnBsYXllci5ub2RlLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCB0aGlzLnNldHVwL
ndpZHRoKTsKICAgICAgICAgICAgdGhpcy5wbGF5ZXIubm9kZS5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIHRo
aXMuc2V0dXAuaGVpZ2h0KTsKICAgICAgICAgICAgdGhpcy5wbGF5ZXIubm9kZS5zZXRBdHRyaWJ1dGUoJ3N
0eWxlJywgJ2hlaWdodDonICsgdGhpcy5zZXR1cC5oZWlnaHQgKyAncHg7IHdpZHRoOicgKyB0aGlzLnNldH
VwLndpZHRoICsgJ3B4OycpOwogICAgICAgICAgICB0aGlzLnBsYXllci5ub2RlLnNldEF0dHJpYnV0ZSgnZ
nJhbWVib3JkZXInLCAwKTsKICAgICAgICAgICAgdGhpcy5wbGF5ZXIubm9kZS5zZXRBdHRyaWJ1dGUoJ3Nj
cm9sbGluZycsICdubycpOwogICAgICAgICAgICB0aGlzLnBsYXllci5ub2RlLnNldEF0dHJpYnV0ZSgnYWx
sb3dmdWxsc2NyZWVuJywgdHJ1ZSk7IC8vIGh0dHA6Ly90aW55dXJsLmNvbS9veXllaGFiCiAgICAgICAgIC
AgIC8vIGFsbG93ZnVsbHNjcmVlbiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gbW96YWxsb3dmdWxsc2NyZWVuI
G9hbGxvd2Z1bGxzY3JlZW4gbXNhbGxvd2Z1bGxzY3JlZW4KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICBjYXNlICd2aWRlbyc6CiAgICAgICAgICAgIHZhciBhdHRyTmFtZTsKICAgICAgICAgICAgdGhpcy5wbGF
5ZXIubm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CiAgICAgICAgICAgIGZvciAoYX
R0ck5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuYXR0cmlidXRlc
y5oYXNPd25Qcm9wZXJ0eShhdHRyTmFtZSkpCiAgICAgICAgICAgICAgICB0aGlzLnBsYXllci5ub2RlLnNl
dEF0dHJpYnV0ZShhdHRyTmFtZSwgdGhpcy5hdHRyaWJ1dGVzW2F0dHJOYW1lXSk7CiAgICAgICAgICAgIH0
KCiAgICAgICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMuYXV0b3BsYXkpIHsgLy8gZml4IGJ1ZyBkdXBsaW
NhdGUgcGxheWluZyBvbiBmaXJlZm94L2Nocm9tZQogICAgICAgICAgICAgIHRoaXMucGxheWVyLm5vZGUub
25sb2Fkc3RhcnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAvL3RoaXMucGxheSgpOwogICAg
ICAgICAgICAgIH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMucGxheWVyLm5vZGUub25lcnJ
vciA9IGZ1bmN0aW9uICgpIHsgLy8gc3dpdGNoIHRvIHBsdWdpbiBwbGF5ZXIKICAgICAgICAgICAgICBzZX
RUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHNlbGYuYXJnc1swXSA9IHNlbGYucGxhe
WVyLm5vZGU7CiAgICAgICAgICAgICAgICBzZWxmLnZsY3BsYXllci5hcHBseShzZWxmLCBzZWxmLmFyZ3Mp
OwogICAgICAgICAgICAgIH0sIDUwMDApOwogICAgICAgICAgICB9OwogICAgICAgICAgICBicmVhazsKICA
gICAgICAgIGRlZmF1bHQ6IC8vIGVtYmVkCiAgICAgICAgICAgIHRoaXMucGxheWVyLm5vZGUgPSBkb2N1bW
VudC5jcmVhdGVFbGVtZW50KCdlbWJlZCcpOwogICAgICAgICAgICBmb3IgKGF0dHJOYW1lIGluIHRoaXMuY
XR0cmlidXRlcykgewogICAgICAgICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHko
YXR0ck5hbWUpKQogICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIubm9kZS5zZXRBdHRyaWJ1dGUoYXR0ck5
hbWUsIHRoaXMuYXR0cmlidXRlc1thdHRyTmFtZV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgIC
AgICAgICB0aGlzLnBsYXllci5odG1sID0gdGhpc
y5wbGF5ZXIubm9kZS5vdXRlckhUTUw7CiAgICAgICAgICB0aGlzLnBsYXllci50YWcgPSB0aGlzLnBsYXll
ci5ub2RlLnRhZ05hbWU7CiAgICAgICAgICB0aGlzLmluc2VydGluZygpOwogICAgICAgIH0sCiAgICAgICA
gaW5zZXJ0aW5nIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbnMuaW5zZX
J0KSB7CiAgICAgICAgICBjYXNlICdpbm5lcic6CiAgICAgICAgICAgIHRoaXMudGFyZ2V0Lm5vZGUuaW5uZ
XJIVE1MID0gdGhpcy5wbGF5ZXIuaHRtbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdh
cHBlbmQnOgogICAgICAgICAgICB0aGlzLnRhcmdldC5wYXJlbnQucmVwbGFjZUNoaWxkKHRoaXMucGxheWV
yLm5vZGUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGRlZmF1bHQ6IC8vIHJlcGxhY2UKICAgIC
AgICAgICAgdGhpcy50YXJnZXQucGFyZW50LnJlcGxhY2VDaGlsZCh0aGlzLnBsYXllci5ub2RlLCB0aGlzL
nRhcmdldC5ub2RlKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChBYWsub3B0cy5sb2dQbGF5ZXIpIHsK
ICAgICAgICAgICAgQWFrLmxvZygncGxheWVyJywgdGhpcyk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR
1cm4gdGhpczsKICAgICAgICB9LAogICAgICAgIGVkaXRpbmcgOiBmdW5jdGlvbiAoZWxlbSwgb3B0cykgey
AvLyByZXZpZXcKICAgICAgICAgIEFhay5oYXNFbGVtZW50KGVsZW0sIGZ1bmN0aW9uICh0aGlzRWxlbWVud
CkgewogICAgICAgICAgICB2YXIgb2JqLAogICAgICAgICAgICBzd2YsCiAgICAgICAgICAgIHZhbHVlLAog
ICAgICAgICAgICBwYXJ0cywKICAgICAgICAgICAgcGFyYW0sCiAgICAgICAgICAgIGF0dHJpYnV0ZXMsCiA
gICAgICAgICAgIGF0dHJOYW1lOwogICAgICAgICAgICB2YXIgc28gPSB0aGlzRWxlbWVudDsKICAgICAgIC
AgICAgdmFyIGNsb25lID0gc28uY2xvbmVOb2RlKHRydWUpOwoKICAgICAgICAgICAgLy8gc2V0IGF0dHJpa
WJ1dGVzCiAgICAgICAgICAgIGlmIChvcHRzLnNldEF0dHJpYnV0ZSkgewogICAgICAgICAgICAgIGF0dHJp
YnV0ZXMgPSBvcHRzLnNldEF0dHJpYnV0ZTsKICAgICAgICAgICAgICBmb3IgKGF0dHJOYW1lIGluIGF0dHJ
pYnV0ZXMpIHsKICAgICAgICAgICAgICAgIGlmIChjbG9uZS5xdWVyeVNlbGVjdG9yKCdwYXJhbVtuYW1lPS
InICsgYXR0ck5hbWUgKyAnIl0nKSkgewogICAgICAgICAgICAgICAgICBjbG9uZS5xdWVyeVNlbGVjdG9yK
CdwYXJhbVtuYW1lPSInICsgYXR0ck5hbWUgKyAnIl0nKS52YWx1ZSA9IGF0dHJpYnV0ZXNbYXR0ck5hbWVd
OwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjbG9uZS5nZXRBdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiA
gICAgICAgICAgICAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShhdHRyTmFtZSwgYXR0cmlidXRlc1thdHRyTm
FtZV0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgI
CAgICAgLy8gdW5zZXQgYXR0cmlidXRlcwogICAgICAgICAgICBpZiAob3B0cy51bnNldEF0dHJpYnV0ZXMp
IHsKICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gb3B0cy5kZWxBdHRyaWJ1dGVzOwogICAgICAgICAgICA
gIGZvciAoYXR0ck5hbWUgaW4gYXR0cmlidXRlcykgewogICAgICAgICAgICAgICAgaWYgKGNsb25lLnF1ZX
J5U2VsZWN0b3IoJ3BhcmFtW25hbWU9IicgKyBhdHRyTmFtZSArICciXScpKSB7CiAgICAgICAgICAgICAgI
CAgIEFhay5yZW1vdmVFbGVtZW50KGNsb25lLnF1ZXJ5U2VsZWN0b3IoJ3BhcmFtW25hbWU9IicgKyBhdHRy
TmFtZSArICciXScpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xvbmUuZ2V0QXR0cmlidXRlKGF
0dHJOYW1lKSkgewogICAgICAgICAgICAgICAgICBkZWxldGUgYXR0cmlidXRlc1thdHRyTmFtZV07CiAgIC
AgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAob
3B0cy5zZXRGbGFzaHZhcnMgfHwgb3B0cy51bnNldEZsYXNodmFycykgewogICAgICAgICAgICAgIGlmIChj
bG9uZS5xdWVyeVNlbGVjdG9yKCdwYXJhbVtuYW1lPSJmbGFzaHZhcnMiXScpKSB7CiAgICAgICAgICAgICA
gICBwYXJhbSA9IGNsb25lLnF1ZXJ5U2VsZWN0b3IoJ3BhcmFtW25hbWU9ImZsYXNodmFycyJdJyk7CiAgIC
AgICAgICAgICAgICB2YWx1ZSA9IHBhcmFtLnZhbHVlOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xvb
mUuZ2V0QXR0cmlidXRlKCdmbGFzaHZhcnMnKSkgewogICAgICAgICAgICAgICAgdmFsdWUgPSBjbG9uZS5n
ZXRBdHRyaWJ1dGUoJ2ZsYXNodmFycycpOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xvbmUuZ2V0QXR
0cmlidXRlKCdkYXRhJykgJiYgY2xvbmUuZ2V0QXR0cmlidXRlKCdkYXRhJykuaW5kZXhPZignPycpID49ID
ApIHsKICAgICAgICAgICAgICAgIHBhcnRzID0gY2xvbmUuZ2V0QXR0cmlidXRlKCdkYXRhJykuc3BsaXQoJ
z8nLCAyKTsKICAgICAgICAgICAgICAgIHN3ZiA9IHBhcnRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB2
YWx1ZSA9IHBhcnRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBvYmogPSBBYWs
udW5zZXJpYWxpemUodmFsdWUpOwogICAgICAgICAgICAgIGlmIChvcHRzLnNldEZsYXNodmFycykgewogIC
AgICAgICAgICAgICAgb2JqID0gQWFrLnNldFByb3BlcnRpZXMob2JqLCBvcHRzLnNldEZsYXNodmFycyk7C
iAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcHRzLnVuc2V0Rmxhc2h2YXJzKSB7CiAgICAg
ICAgICAgICAgICBvYmogPSBBYWsudW5zZXRQcm9wZXJ0aWVzKG9iaiwgb3B0cy51bnNldEZsYXNodmFycyk
7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhbHVlID0gQWFrLnNlcmlhbGl6ZShvYmopOwoKIC
AgICAgICAgICAgICBpZiAocGFyYW0pIHsKICAgICAgICAgICAgICAgIHBhcmFtLnZhbHVlID0gdmFsdWU7C
iAgICAgICAgICAgICAgfSBlbHNlIGlmIChzd2YpIHsKICAgICAgICAgICAgICAgIGNsb25lLnNldEF0dHJp
YnV0ZSgnZGF0YScsIHN3ZiArICc/JyArIHZhbHVlKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICA
gICAgICAgICAgY2xvbmUuc2V0QXR0cmlidXRlKCdmbGFzaHZhcnMnLCB2YWx1ZSk7CiAgICAgICAgICAgIC
AgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHJlcGxhY2UKICAgICAgICAgICAgQWFrLmxvZyhzb
ywgY2xvbmUsIG9iaik7CiAgICAgICAgICAgIEFhay5yZXBsYWNlRWxlbWVudChzbywgY2xvbmUpOwogICAg
ICAgICAgfSk7CiAgICAgICAgfSwKICAgICAgICBlbWJlZGRpbmcgOiBmdW5jdGlvbiAoaWQsIHNldHVwLCB
hdHRyaWJ1dGVzLCBvcHRpb25zKSB7IAogICAgICAgIAogICAgICAgICAgdGhpcy5nZXRUYXJnZXROb2RlKG
lkKTsKICAgICAgICAgIHRoaXMuYXJncyA9IGFyZ3VtZW50czsKICAgICAgICAgIHRoaXMuYXR0cmlidXRlc
yA9IEFhay5zZXRQcm9wZXJ0aWVzKHRoaXMuYXR0cmlidXRlcywgYXR0cmlidXRlcyB8fCB7fSk7CiAgICAg
ICAgICB0aGlzLm9wdGlvbnMgPSBBYWsuc2V0UHJvcGVydGllcyh0aGlzLm9wdGlvbnMsIG9wdGlvbnMgfHw
ge30pOwoKICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zcmMgPSBzZXR1cC5zd2Y7CiAgICAgICAgICB0aG
lzLmF0dHJpYnV0ZXMuaWQgPSB0aGlzLmF0dHJpYnV0ZXMubmFtZSA9IEFhay5nZW5lcmF0ZUlEKCk7CiAgI
CAgICAgICB0aGlzLmF0dHJpYnV0ZXMuaGVpZ2h0ID0gc2V0dXAuaGVpZ2h0IHx8IHRoaXMuYXR0cmlidXRl
cy5oZWlnaHQ7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMud2lkdGggPSBzZXR1cC53aWR0aCB8fCB0aGl
zLmF0dHJpYnV0ZXMud2lkdGg7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMuZmxhc2h2YXJzID0gQWFrLn
NlcmlhbGl6ZShzZXR1cCk7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBBYWsudW5zZXRQcm9wZXJ0a
WVzKHRoaXMuYXR0cmlidXRlcywgJ3N3ZicpOwoKICAgICAgICAgIHRoaXMuYnVpbGRpbmcoJ2VtYmVkJyk7
CiAgICAgICAgfSwKICAgICAgICBqd3BsYXllciA6IGZ1bmN0aW9uIChpZCwgc2V0dXAsIGF0dHJpYnV0ZXM
sIG9wdGlvbnMpIHsKICAgICAgICAgIC8vIEp3UGxheWVyIDcgKGZsYXNoL2h0bWw1KQogICAgICAgICAgLy
8gbm90ZTogcHJvYmxlbSB3aXRoIHNzbAogICAgICAgICAgLy8gc2V0dXA6IGh0dHA6Ly90aW55dXJsLmNvb
S9oaHJnamFwLCBodHRwOi8vdGlueXVybC5jb20vZ3FzNDZ0bQogICAgICAgICAgLy8gYXBpOiBodHRwczov
L2RldmVsb3Blci5qd3BsYXllci5jb20vanctcGxheWVyL2RvY3MvZGV2ZWxvcGVyLWd1aWRlL2FwaS9qYXZ
hc2NyaXB0X2FwaV9yZWZlcmVuY2UvCiAgICAgICAgICAvLyBobHM6IGh0dHA6Ly90aW55dXJsLmNvbS9weG
w5c2NxCiAgICAgICAgICAvLyBobHMtdGVzdGVyOiBodHRwOi8vZGVtby5qd3BsYXllci5jb20vc3RyZWFtL
XRlc3Rlci8KICAgICAgICAgIC8vIHJ0bXAtZGVtbzogaHR0cHM6Ly93d3cuc2NhbGVlbmdpbmUuY29tL2p3
NgogICAgICAgICAgLy8gaWZyYW1lOiBodHRwOi8vdGlueXVybC5jb20vODZhZ2c2OAoKICAgICAgICAgIHR
oaXMuZ2V0VGFyZ2V0Tm9kZShpZCk7CiAgICAgICAgICB0aGlzLmFyZ3MgPSBhcmd1bWVudHM7CiAgICAgIC
AgICB0aGlzLmF0dHJpYnV0ZXMgPSBBYWsuc2V0UHJvcGVydGllcyh0aGlzLmF0dHJpYnV0ZXMsIGF0dHJpY
nV0ZXMgfHwge30pOwogICAgICAgICAgdGhpcy5vcHRpb25zID0gQWFrLnNldFByb3BlcnRpZXModGhpcy5v
cHRpb25zLCBvcHRpb25zIHx8IHt9KTsKCiAgICAgICAgICB0aGlzLnNldHVwID0gc2V0dXA7CiAgICAgICA
gICBpZiAodGhpcy5vcHRpb25zLmNyb3NzU2V0dXAgPT09IHRydWUpIHsKICAgICAgICAgICAgdGhpcy5zZX
R1cCA9IHsKICAgICAgICAgICAgICBjb250cm9scyA6IHRydWUsCiAgICAgICAgICAgICAgZmlsZSA6IHNld
HVwLnNvdXJjZSwKICAgICAgICAgICAgICBhYm91dHRleHQgOiBBYWsubmFtZSwKICAgICAgICAgICAgICBh
Ym91dGxpbmsgOiBBYWsuaG9tZVVSTCwKICAgICAgICAgICAgICB3aWR0aCA6IHNldHVwLndpZHRoIHx8IHR
oaXMuYXR0cmlidXRlcy53aWR0aCwKICAgICAgICAgICAgICBoZWlnaHQgOiBzZXR1cC5oZWlnaHQgfHwgdG
hpcy5hdHRyaWJ1dGVzLmhlaWdodCwKICAgICAgICAgICAgICBhdXRvc3RhcnQgOiBzZXR1cC5hdXRvcGxhe
SB8fCB0aGlzLmF1dG9wbGF5LAogICAgICAgICAgICAgIHByaW1hcnkgOiAnaHRtbDUnLAogICAgICAgICAg
ICAgIHByZWxvYWQgOiAnYXV0bycsCiAgICAgICAgICAgICAgc2tpbiA6IHsgLy8gU2V2ZW4gfCBTaXggfCB
GaXZlIHwgR2xvdyB8IEJlZWxkZW4gfCBWYXBvciB8IEJla2xlIHwgUm91bmRzdGVyIHwgU3Rvcm10cm9vcG
VyCiAgICAgICAgICAgICAgICBuYW1lIDogc2V0dXAuc2tpbiB8fCAic2l4IiAvLyBkZWZhdWx0IHNraW4gS
ldQNgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKFsnbXA0JywgJ3dl
Ym0nLCAnb2dnJywgJ29ndiddLmluZGV4T2Yoc2V0dXAudHlwZSkgPT09IC0xKSB7CiAgICAgICAgICAgICA
gdGhpcy5zZXR1cC5wcmltYXJ5ID0gJ2ZsYXNoJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc2
V0dXAudHlwZSA9PT0gJ2hscycpIHsKICAgICAgICAgICAgICB0aGlzLnNldHVwLmhsc2h0bWwgPSB0cnVlO
wogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLnNyY2RvYyA9
ICc8aHRtbD48aGVhZD48c3R5bGUgdHlwZT0idGV4dC9jc3MiPkBmb250LWZhY2V7Zm9udC1mYW1pbHk6anc
taWNvbnM7c3JjOnVybCgnICsgbG9jYXRpb24ucHJvdG9jb2wgKyAnc3NsLnAuandwY2RuLmNvbS9wbGF5ZX
Ivdi83LjQuMy9qdy1pY29ucy53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoJyArIGxvY2F0aW9uLnByb3RvY
29sICsgJy8vc3NsLnAuandwY2RuLmNvbS9wbGF5ZXIvdi83LjQuMy9qdy1pY29ucy50dGYpIGZvcm1hdCgi
dHJ1ZXR5cGUiKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9PC9zdHlsZT48c2NyaXB0IHN
yYz0iJyArIGxvY2F0aW9uLnByb3RvY29sICsgJy8vY29udGVudC5qd3BsYXRmb3JtLmNvbS9saWJyYXJpZX
MvVjZOZkV6VDcuanMiPjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+aHRtbCwgYm9keXtwYWRka
W5nOjA7IG1hcmdpbjowO308L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2IGlkPSJqdy1tb3ZpZSI+PC9kaXY+
PHNjcmlwdD5qd3BsYXllcigianctbW92aWUiKS5zZXR1cCgnICsgSlNPTi5zdHJpbmdpZnkodGhpcy5zZXR
1cCkgKyAnKTs8L3NjcmlwdD48L2JvZHk+PC9odG1sPic7CgogICAgICAgICAgdGhpcy5idWlsZGluZygnaW
ZyYW1lJyk7CiAgICAgICAgfSwKICAgICAgICB2aWRlb2pzIDogZnVuY3Rpb24gKGlkLCBzZXR1cCwgYXR0c
mlidXRlcywgb3B0aW9ucykgeyAKICAgICAgICAgIC8vIFZpZGVvSnMgNSAoZmxhc2gvaHRtbDUpCiAgICAg
ICAgICAvLyBzZXR1cDogaHR0cDovL3Rpbnl1cmwuY29tL3BjZ3gyb2IKICAgICAgICAgIC8vIHBsYXliYWN
rOiBodHRwOi8vdGlueXVybC5jb20vbnNjenRtbQogICAgICAgICAgLy8gZGVtbzogaHR0cDovL2pzZmlkZG
xlLm5ldC9OOFpzNS8xOC8KICAgICAgICAgIC8vIHBsdWdpbnM6IGh0dHBzOi8vZ2l0aHViLmNvbS92aWRlb
2pzL3ZpZGVvLmpzL3dpa2kvUGx1Z2lucwoKICAgICAgICAgIHRoaXMuZ2V0VGFyZ2V0Tm9kZShpZCk7CiAg
ICAgICAgICB0aGlzLmFyZ3MgPSBhcmd1bWVudHM7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBBYWs
uc2V0UHJvcGVydGllcyh0aGlzLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMgfHwge30pOwogICAgICAgICAgdG
hpcy5vcHRpb25zID0gQWFrLnNldFByb3BlcnRpZXModGhpcy5vcHRpb25zLCBvcHRpb25zIHx8IHt9KTsKC
iAgICAgICAgICB0aGlzLnNldHVwID0gc2V0dXA7CiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmNyb3Nz
U2V0dXAgPT09IHRydWUpIHsKICAgICAgICAgICAgdGhpcy5zZXR1cCA9IHsKICAgICAgICAgICAgICBjb25
0cm9scyA6IHRydWUsCiAgICAgICAgICAgICAgcHJlbG9hZCA6ICdhdXRvJywKICAgICAgICAgICAgICB3aW
R0aCA6IHNldHVwLndpZHRoIHx8IHRoaXMuYXR0cmlidXRlcy53aWR0aCwKICAgICAgICAgICAgICBoZWlna
HQgOiBzZXR1cC5oZWlnaHQgfHwgdGhpcy5hdHRyaWJ1dGVzLmhlaWdodCwKICAgICAgICAgICAgICB0ZWNo
T3JkZXIgOiBbImh0bWw1IiwgImZsYXNoIl0sCiAgICAgICAgICAgICAgYXV0b3BsYXkgOiBzZXR1cC5hdXR
vcGxheSB8fCB0aGlzLmF1dG9wbGF5LAogICAgICAgICAgICAgIHNvdXJjZXMgOiBbewogICAgICAgICAgIC
AgICAgICB0eXBlIDogdGhpcy5nZXRNaW1lVHlwZShzZXR1cC50eXBlKSwKICAgICAgICAgICAgICAgICAgc
3JjIDogc2V0dXAuc291cmNlCiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9OwogICAgICAgICAgICAvKiBkb24ndCB3b3J
rIAogICAgICAgICAgICBpZiAoc2V0dXAudHlwZSA9PT0gJ2hscycpIHsKICAgICAgICAgICAgICB0ZWNoT3
JkZXIgOiBbImZsYXNoIiwgImh0bWw1Il0sCiAgICAgICAgICAgICAgdGhpcy5zZXR1cC5mbGFzaCA9IHsKI
CAgICAgICAgICAgICAgIC8vc3dmIDogIi8vcmVla3NpdGUuY29tL3B1YmxpYy9zd2YvdmlkZW9qcy1mbGFz
aGxzLnN3ZiIKICAgICAgICAgICAgICAgIHN3ZiA6ICdodHRwOi8vd3d3LmZsYXNobHMub3JnL3ZpZGVvanM
vdmlkZW8tanMuc3dmJwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKi8KIC
AgICAgICAgIH0KCiAgICAgICAgICAvLyAKICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zcmNkb2MgPSAnP
Gh0bWw+PGhlYWQ+PGxpbmsgaHJlZj0iJyArIGxvY2F0aW9uLnByb3RvY29sICsgJy8vY2RuanMuY2xvdWRm
bGFyZS5jb20vYWpheC9saWJzL3ZpZGVvLmpzLzUuMTAuNS9hbHQvdmlkZW8tanMtY2RuLm1pbi5jc3MiIHJ
lbD0ic3R5bGVzaGVldCI+PHNjcmlwdCBzcmM9IicgKyBsb2NhdGlvbi5wcm90b2NvbCArICcvL2NkbmpzLm
Nsb3VkZmxhcmUuY29tL2FqYXgvbGlicy92aWRlby5qcy81LjEwLjUvdmlkZW8ubWluLmpzIj48L3Njcmlwd
D48c2NyaXB0IHNyYz0iJyArIGxvY2F0aW9uLnByb3RvY29sICsgJy8vY2RuanMuY2xvdWRmbGFyZS5jb20v
YWpheC9saWJzL3ZpZGVvanMtY29udHJpYi1obHMvMy4xLjAvdmlkZW9qcy1jb250cmliLWhscy5taW4uanM
iPjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+aHRtbCwgYm9keXtwYWRkaW5nOjA7IG1hcmdpbj
owO30udmpzLWRlZmF1bHQtc2tpbntjb2xvcjojZWVlfS52anMtZGVmYXVsdC1za2luIC52anMtcGxheS1wc
m9ncmVzcywudmpzLWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1sZXZlbHtiYWNrZ3JvdW5kLWNvbG9yOiNl
ZWV9LnZqcy1kZWZhdWx0LXNraW4gLnZqcy1iaWctcGxheS1idXR0b24sLnZqcy1kZWZhdWx0LXNraW4gLnZ
qcy1jb250cm9sLWJhcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjIpfS52anMtZGVmYXVsdC1za2luIC52an
Mtc2xpZGVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMyl9PC9zdHlsZT48L2hlYWQ+PGJvZHk+PHZpZGVvI
GlkPSJ2anMtbW92aWUiIGNsYXNzPSJ2aWRlby1qcyB2anMtZGVmYXVsdC1za2luIHZqcy1iaWctcGxheS1j
ZW50ZXJlZCI+PC92aWRlbz48c2NyaXB0PnZpZGVvanMoInZqcy1tb3ZpZSIsICcgKyBKU09OLnN0cmluZ2l
meSh0aGlzLnNldHVwKSArICcpPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4nOwoKICAgICAgICAgIHRoaXMuYn
VpbGRpbmcoJ2lmcmFtZScpOwogICAgICAgIH0sCiAgICAgICAgZmxvd3BsYXllciA6IGZ1bmN0aW9uIChpZ
Cwgc2V0dXAsIGF0dHJpYnV0ZXMsIG9wdGlvbnMpIHsKICAgICAgICAgIC8vIEZsb3dQbGF5ZXIgNiAoZmxh
c2gpCiAgICAgICAgICAvLyBub3RlOiBwcm9ibGVtIHdpdGggZmxhc2hwbGF5ZXIKICAgICAgICAgIC8vIHN
1cHBvcnQ6IG1wNCwgZmx2LCBmNHYsIG00diwgbW92CiAgICAgICAgICAvLyBzZXR1cDogaHR0cHM6Ly9mbG
93cGxheWVyLm9yZy9kb2NzL3NldHVwLmh0bWwKICAgICAgICAgIC8vIGFwaTogaHR0cHM6Ly9mbG93cGxhe
WVyLm9yZy9kb2NzL2FwaS5odG1sCiAgICAgICAgICAvLyBkZW1vOiBodHRwOi8vZGVtb3MuZmxvd3BsYXll
ci5vcmcvYmFzaWNzL2pzLXNldHVwLWF1dG9wbGF5Lmh0bWwKICAgICAgICAgIC8vIGhkczogaHR0cHM6Ly9
mbG93cGxheWVyLmVsZWN0cm90ZXF1ZS5vcmcvaHR0cHN0cmVhbWluZy1oZHMvZnA2CiAgICAgICAgICAvLy
BobHM6IGh0dHA6Ly9kZW1vcy5mbG93cGxheWVyLm9yZy9hcGkvaGxzanMuaHRtbAogICAgICAgICAgLy8gZ
mx2OiBodHRwOi8vZGVtb3MuZmxvd3BsYXllci5vcmcvYmFzaWNzL2Zsdi5odG1sCgogICAgICAgICAgdGhp
cy5nZXRUYXJnZXROb2RlKGlkKTsKICAgICAgICAgIHRoaXMuYXJncyA9IGFyZ3VtZW50czsKICAgICAgICA
gIHRoaXMuYXR0cmlidXRlcyA9IEFhay5zZXRQcm9wZXJ0aWVzKHRoaXMuYXR0cmlidXRlcywgYXR0cmlidX
RlcyB8fCB7fSk7CiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBBYWsuc2V0UHJvcGVydGllcyh0aGlzLm9wd
GlvbnMsIG9wdGlvbnMgfHwge30pOwoKICAgICAgICAgIHRoaXMuc2V0dXAgPSBzZXR1cDsKICAgICAgICAg
IGlmICh0aGlzLm9wdGlvbnMuY3Jvc3NTZXR1cCA9PT0gdHJ1ZSkgewogICAgICAgICAgICB0aGlzLnNldHV
wID0gewogICAgICAgICAgICAgIHdpZHRoIDogc2V0dXAud2lkdGggfHwgdGhpcy5hdHRyaWJ1dGVzLndpZH
RoLAogICAgICAgICAgICAgIGhlaWdodCA6IHNldHVwLmhlaWdodCB8fCB0aGlzLmF0dHJpYnV0ZXMuaGVpZ
2h0LAogICAgICAgICAgICAgIGF1dG9wbGF5IDogc2V0dXAuYXV0b3BsYXkgfHwgdGhpcy5hdXRvcGxheSwK
ICAgICAgICAgICAgICBwcmVsb2FkIDogJ2F1dG8nCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmICh
zZXR1cC50eXBlID09PSAnaGxzJykgewogICAgICAgICAgICAgIHRoaXMuc2V0dXAuc3dmID0gbG9jYXRpb2
4ucHJvdG9jb2wgKyAnLy9yZWxlYXNlcy5mbG93cGxheWVyLm9yZy82LjAuNS9mbG93cGxheWVyaGxzLnN3Z
ic7CiAgICAgICAgICAgICAgdGhpcy5zZXR1cC5lbmdpbmUgPSAnaGxzanMnOwogICAgICAgICAgICB9IGVs
c2UgaWYgKFsnbXA0JywgJ3dlYm0nLCAnb2dnJywgJ29ndiddLmluZGV4T2Yoc2V0dXAudHlwZSkgPT09IC0
xKSB7CiAgICAgICAgICAgICAgdGhpcy5zZXR1cC5zd2YgPSBsb2NhdGlvbi5wcm90b2NvbCArICcvL3JlbG
Vhc2VzLmZsb3dwbGF5ZXIub3JnLzYuMC41L2Zsb3dwbGF5ZXIuc3dmJzsKICAgICAgICAgICAgICB0aGlzL
nNldHVwLmVuZ2luZSA9ICdmbGFzaCc7CiAgICAgICAgICAgICAgdGhpcy5zZXR1cC50eXBlID0gJ3ZpZGVv
L2ZsYXNoJzsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLnNldHVwLmNsaXAgPSB7CiAgICAgICA
gICAgICAgc291cmNlcyA6IFt7CiAgICAgICAgICAgICAgICAgIHR5cGUgOiB0aGlzLmdldE1pbWVUeXBlKH
RoaXMuc2V0dXAudHlwZSB8fCBzZXR1cC50eXBlKSwKICAgICAgICAgICAgICAgICAgc3JjIDogc2V0dXAuc
291cmNlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9OwogICAgICAg
ICAgfQoKICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy5zcmNkb2MgPSAnPGh0bWw+PGhlYWQ+PGxpbmsgcmV
sPSJzdHlsZXNoZWV0IiBocmVmPSInICsgbG9jYXRpb24ucHJvdG9jb2wgKyAnLy9yZWxlYXNlcy5mbG93cG
xheWVyLm9yZy82LjAuNS9za2luL2Z1bmN0aW9uYWwuY3NzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iJyArI
GxvY2F0aW9uLnByb3RvY29sICsgJy8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjExLjIubWluLmpzIj48
L3NjcmlwdD48c2NyaXB0IHNyYz0iJyArIGxvY2F0aW9uLnByb3RvY29sICsgJy8vcmVsZWFzZXMuZmxvd3B
sYXllci5vcmcvNi4wLjUvZmxvd3BsYXllci5taW4uanMiPjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2
NzcyI+aHRtbCwgYm9keXtwYWRkaW5nOjA7IG1hcmdpbjowO308L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2I
GlkPSJmcC1tb3ZpZSI+PC9kaXY+PHNjcmlwdD5mbG93cGxheWVyKCIjZnAtbW92aWUiLCAnICsgSlNPTi5z
dHJpbmdpZnkodGhpcy5zZXR1cCkgKyAnKTs8L3NjcmlwdD48L2JvZHk+PC9odG1sPic7CgogICAgICAgICA
gdGhpcy5idWlsZGluZygnaWZyYW1lJyk7CiAgICAgICAgfSwKICAgICAgICBncmluZHBsYXllciA6IGZ1bm
N0aW9uIChpZCwgc2V0dXAsIGF0dHJpYnV0ZXMsIG9wdGlvbnMpIHsKICAgICAgICAgIC8vIEdyaW5kUGxhe
WVyIDEgKGZsYXNoKQogICAgICAgICAgLy8gc2V0dXA6IGh0dHA6Ly9vc21maGxzLmt1dHUucnUvZG9jcy9n
cmluZC8KICAgICAgICAgIC8vIHN1cHBvcnQ6IGhscywgcnRtcAoKICAgICAgICAgIHRoaXMuZ2V0VGFyZ2V
0Tm9kZShpZCk7CiAgICAgICAgICB0aGlzLmFyZ3MgPSBhcmd1bWVudHM7CiAgICAgICAgICB0aGlzLmF0dH
JpYnV0ZXMgPSBBYWsuc2V0UHJvcGVydGllcyh0aGlzLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMgfHwge30pO
wogICAgICAgICAgdGhpcy5vcHRpb25zID0gQWFrLnNldFByb3BlcnRpZXModGhpcy5vcHRpb25zLCBvcHRp
b25zIHx8IHt9KTsKCiAgICAgICAgICB0aGlzLnNldHVwID0gc2V0dXA7CiAgICAgICAgICBpZiAodGhpcy5
vcHRpb25zLmNyb3NzU2V0dXAgPT09IHRydWUpIHsKICAgICAgICAgICAgdGhpcy5zZXR1cCA9IHsKICAgIC
AgICAgICAgICBzcmMgOiBzZXR1cC5zb3VyY2UsCiAgICAgICAgICAgICAgc3RyZWFtVHlwZSA6ICJsaXZlI
iwKICAgICAgICAgICAgICBzY2FsZU1vZGUgOiAibGV0dGVyYm94IiwKICAgICAgICAgICAgICBhdXRvUGxh
eSA6IHNldHVwLmF1dG9wbGF5IHx8IHRoaXMuYXV0b3BsYXkKICAgICAgICAgICAgfTsKICAgICAgICAgICA
gaWYgKHNldHVwLnR5cGUgPT09ICdobHMnKSB7CiAgICAgICAgICAgICAgdGhpcy5zZXR1cC5wbHVnaW5faG
xzID0gIi8vcmVla3NpdGUuY29tL3B1YmxpYy9zd2YvZmxhc2hsc09TTUYuc3dmIjsKICAgICAgICAgICAgf
QogICAgICAgICAgICBpZiAoc2V0dXAucHJveHkgPT09IHRydWUpIHsKICAgICAgICAgICAgICB0aGlzLnNl
dHVwLnNyYyA9ICcvL3d3dy5kaWFuc2hpYm8uY29tL2ZldGNoLnBocC8nICsgc2V0dXAuc291cmNlLnN1YnN
0cmluZyhzZXR1cC5zb3VyY2UuaW5kZXhPZignLy8nKSArIDIpOwogICAgICAgICAgICB9CiAgICAgICAgIC
B9CgogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLnNyYyA9IHNldHVwLnN3ZiB8fCB0aGlzLmF0dHJpYnV0Z
XMuc3JjIHx8ICIvL3JlZWtzaXRlLmNvbS9wdWJsaWMvc3dmL0dyaW5kUGxheWVyLnN3ZiI7CiAgICAgICAg
ICB0aGlzLmF0dHJpYnV0ZXMuaGVpZ2h0ID0gc2V0dXAuaGVpZ2h0IHx8IHRoaXMuYXR0cmlidXRlcy5oZWl
naHQ7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMud2lkdGggPSBzZXR1cC53aWR0aCB8fCB0aGlzLmF0dH
JpYnV0ZXMud2lkdGg7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMuZmxhc2h2YXJzID0gQWFrLnNlcmlhb
Gl6ZSh0aGlzLnNldHVwKTsKCiAgICAgICAgICB0aGlzLmJ1aWxkaW5nKCdlbWJlZCcpOwogICAgICAgIH0s
CiAgICAgICAgdmxjIDogZnVuY3Rpb24gKGlkLCBzZXR1cCwgYXR0cmlidXRlcywgb3B0aW9ucykgewogICA
gICAgICAgLy8gVkxDIFdlYiBQbHVnaW4gKHBsdWdpbikKICAgICAgICAgIC8vIGRvYzogaHR0cDovL3Rpbn
l1cmwuY29tL29tbHpwMzkKICAgICAgICAgIC8vIHBsdWdpbnM6IGFib3V0OnBsdWdpbnMKICAgICAgICAgI
C8vIGNocm9tZTovL2ZsYWdzLyNlbmFibGUtbnBhcGkKICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LmNocm9t
aXVtLm9yZy9kZXZlbG9wZXJzL25wYXBpLWRlcHJlY2F0aW9uCiAgICAgICAgICAvLyBJbiBTZXB0ZW1iZXI
gMjAxNSAoQ2hyb21lIDQ1KSB3ZSB3aWxsIHJlbW92ZSB0aGUgb3ZlcnJpZGUgYW5kIE5QQVBJIHN1cHBvcn
Qgd2lsbCBiZSBwZXJtYW5lbnRseSByZW1vdmVkIGZyb20gQ2hyb21lLiBJbnN0YWxsZWQgZXh0ZW5zaW9uc
yB0aGF0IHJlcXVpcmUgTlBBUEkgcGx1Z2lucyB3aWxsIG5vIGxvbmdlciBiZSBhYmxlIHRvIGxvYWQgdGhv
c2UgcGx1Z2lucy4KCiAgICAgICAgICB0aGlzLm5hbWUgPSAndmxjJzsKICAgICAgICAgIHRoaXMuZ2V0VGF
yZ2V0Tm9kZShpZCk7CiAgICAgICAgICB0aGlzLmFyZ3MgPSBhcmd1bWVudHM7CiAgICAgICAgICB0aGlzLm
F0dHJpYnV0ZXMgPSBBYWsuc2V0UHJvcGVydGllcyh0aGlzLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMgfHwge
30pOwogICAgICAgICAgdGhpcy5vcHRpb25zID0gQWFrLnNldFByb3BlcnRpZXModGhpcy5vcHRpb25zLCBv
cHRpb25zIHx8IHt9KTsKCiAgICAgICAgICB0aGlzLnNldHVwID0gc2V0dXA7CiAgICAgICAgICBpZiAodGh
pcy5vcHRpb25zLmNyb3NzU2V0dXAgPT09IHRydWUpIHsKICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLn
NyYyA9IHNldHVwLnNvdXJjZTsKICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLmhlaWdodCA9IHNldHVwL
mhlaWdodCB8fCB0aGlzLmF0dHJpYnV0ZXMuaGVpZ2h0OwogICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMu
d2lkdGggPSBzZXR1cC53aWR0aCB8fCB0aGlzLmF0dHJpYnV0ZXMud2lkdGg7CiAgICAgICAgICAgIHRoaXM
uYXR0cmlidXRlcy5jb250cm9scyA9IHRydWU7CiAgICAgICAgICAgIGlmIChzZXR1cC5hdXRvcGxheSB8fC
B0aGlzLmF1dG9wbGF5KSB7CiAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLmF1dG9wbGF5ID0gdHJ1Z
TsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIHRoaXMuYXR0cmlidXRlcy50eXBlID0g
ImFwcGxpY2F0aW9uL3gtdmxjLXBsdWdpbiI7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMucGx1Z2luc3B
hZ2UgPSAiaHR0cDovL3d3dy52aWRlb2xhbi5vcmciOwogICAgICAgICAgdGhpcy5idWlsZGluZygnZW1iZW
QnKTsKICAgICAgICB9LAogICAgICAgIGh0bWw1IDogZnVuY3Rpb24gKGlkLCBzZXR1cCwgYXR0cmlidXRlc
ywgb3B0aW9ucykgeyAKICAgICAgICAgIC8vIFZpZGVvIFRhZyAoaHRtbDUpCiAgICAgICAgICAvLyBiYXNp
Y3M6IGh0dHBzOi8vaHRtbDVyb2Nrcy5jb20vZW4vdHV0b3JpYWxzL3ZpZGVvL2Jhc2ljcy8KICAgICAgICA
gIC8vIHRhZzogaHR0cDovL3d3dy53M3NjaG9vbHMuY29tL3RhZ3MvdGFnX3ZpZGVvLmFzcAogICAgICAgIC
AgLy8gc3VwcG9ydDogbXA0LCB3ZWJtLCBvZ2cKICAgICAgICAgIC8vIHRlc3Q6IGh0dHA6Ly93d3cucXVpc
mtzbW9kZS5vcmcvaHRtbDUvdGVzdHMvdmlkZW8uaHRtbAoKICAgICAgICAgIHRoaXMub3B0aW9ucyA9IEFh
ay5zZXRQcm9wZXJ0aWVzKHRoaXMub3B0aW9ucywgb3B0aW9ucyB8fCB7fSk7CgogICAgICAgICAgdGhpcy5
nZXRUYXJnZXROb2RlKGlkKTsKICAgICAgICAgIHRoaXMuYXJncyA9IGFyZ3VtZW50czsKICAgICAgICAgIH
RoaXMuYXR0cmlidXRlcyA9IEFhay5zZXRQcm9wZXJ0aWVzKHt9LCBzZXR1cCB8fCB7fSk7CiAgICAgICAgI
CB0aGlzLmF0dHJpYnV0ZXMuc3JjID0gc2V0dXAuc291cmNlOwogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVz
LmlkID0gdGhpcy5hdHRyaWJ1dGVzLm5hbWUgPSBBYWsuZ2VuZXJhdGVJRCgpOwogICAgICAgICAgdGhpcy5
hdHRyaWJ1dGVzLmhlaWdodCA9IHRoaXMuYXR0cmlidXRlcy5oZWlnaHQgfHwgdGhpcy50YXJnZXQubm9kZS
5jbGllbnRIZWlnaHQgfHwgIjEwMCUiOwogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLndpZHRoID0gdGhpc
y5hdHRyaWJ1dGVzLndpZHRoIHx8IHRoaXMudGFyZ2V0Lm5vZGUuY2xpZW50V2lkdGggfHwgIjEwMCUiOwog
ICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLnR5cGU
gPSB0aGlzLmdldE1pbWVUeXBlKHRoaXMuYXR0cmlidXRlcy50eXBlKTsKICAgICAgICAgIHRoaXMuYXR0cm
lidXRlcy5jb250cm9scyA9ICdjb250cm9scyc7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMucHJlbG9hZ
CA9ICdub25lJzsKICAgICAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMuYXV0b3BsYXkgfHwgdGhpcy5hdXRv
cGxheSkgewogICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMuYXV0b3BsYXkgPSAnYXV0b3BsYXknOwogICA
gICAgICAgfQogICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzLnN0eWxlID0gJ2Rpc3BsYXk6IGJsb2NrOyBtYX
JnaW46MCBhdXRvOyc7CiAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBBYWsudW5zZXRQcm9wZXJ0aWVzK
HRoaXMuYXR0cmlidXRlcywgJ3NvdXJjZScpOwoKICAgICAgICAgIHRoaXMuYnVpbGRpbmcoJ3ZpZGVvJyk7
CiAgICAgICAgfQogICAgICB9OwogICAgICAKICAgICAgcmV0dXJuIG5ldyBQbGF5ZXIoKTsKICAgIH0sCiA
gICBydWxlcyA6IHsKICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS
0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLy8gQ
W50aS1BZGJsb2NrIEtpbGxlcgogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICA
gICBzZXR0aW5ncyA6IHsKICAgICAgICBob3N0IDogWydsb2NhbGhvc3QnLCAncmVlay5naXRodWIuaW8nLC
AncmVla3NpdGUuY29tJ10sCiAgICAgICAgb25FbmQgOiBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgaWYgK
C9cL2FudGktYWRibG9jay1raWxsZXIoLXBhZ2VzKT9cLyQvLnRlc3QobG9jYXRpb24ucGF0aG5hbWUpKSB7
CiAgICAgICAgICAgIHZhciBzZXR0aW5nc0JveCA9IEFhay5nZXRFbGVtZW50KCcjYWFrLXNldHRpbmdzLWJ
veCcpOwogICAgICAgICAgICB2YXIgc2V0dGluZ3NOb3RpY2UgPSBBYWsuZ2V0RWxlbWVudCgnI2Fhay1zZX
R0aW5ncy1ub3RpY2UnKTsKCiAgICAgICAgICAgIGlmICghQWFrLnVzZUdNKSB7CiAgICAgICAgICAgICAgc
2V0dGluZ3NOb3RpY2UucXVlcnlTZWxlY3RvcignZGl2JykuaW5uZXJIVE1MID0gJ0luIG5hdGl2ZSBtb2Rl
LCB5b3UgbXVzdCBlZGl0IHRoZSBvcHRpb25zIG1hbnVhbGx5OiA8YSBocmVmPSInICsgQWFrLm5hdGl2ZVV
STCArICciPlNlZTwvYT4nOwogICAgICAgICAgICB9IGVsc2UgaWYgKHNldHRpbmdzQm94ICYmIHNldHRpbm
dzTm90aWNlKSB7CiAgICAgICAgICAgICAgc2V0dGluZ3NOb3RpY2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJ
zsKICAgICAgICAgICAgICBzZXR0aW5nc0JveC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICAg
ICAgICBBYWsuaW5mbygnR00gc3RvcmFnZTonLCBBYWsuZ2V0VmFsdWUoKSk7CiAgICAgICAgICAgICAgQWF
rLmluZm8oJ0dNIG9wdGlvbnM6JywgQWFrLm9wdHMpOwogICAgICAgICAgICAgIEFhay5pbmZvKCdHTSBhcG
k6JywgQWFrLnVzZUdNICYmIEFhay5hcGlHTSgpKTsKCiAgICAgICAgICAgICAgLy8gdXNlciBjb25maWcKI
CAgICAgICAgICAgICBBYWsuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgICAgICB0YWcgOiAnZGl2JywK
ICAgICAgICAgICAgICAgIGh0bWwgOiAnVmVyc2lvbjogJyArIEFhay5nZXRWZXJzaW9uKCkgKyAnIDxicj5
BYWtTY3JpcHQ6IHRydWUgPGJyPkFha0xpc3Q6ICcgKyAoIUFhay5nZXRFbGVtZW50KCcjazJVdzdpc0hyTW
01SlhQMVZ3ZHhjNTY3WktjMWFaNEknKSkgKyAnIDxicj5Ccm93c2VyOiAnICsgQWFrLmdldEJyb3dzZXIoK
SArICcgPGJyPlNjcmlwdE1hbmFnZXI6ICcgKyBBYWsuZ2V0U2NyaXB0TWFuYWdlcigpLAogICAgICAgICAg
ICAgICAgYXBwZW5kIDogJyNhYWstc2V0dGluZ3MtY29uZmlnJwogICAgICAgICAgICAgIH0pOwoKICAgICA
gICAgICAgICAvLyBjcmVhdGUgb3B0aW9ucyAKICAgICAgICAgICAgICBmb3IgKHZhciBvcHROYW1lIGluIE
Fhay5vcHRpb25zKSB7CiAgICAgICAgICAgICAgICBpZiAoQWFrLm9wdGlvbnMuaGFzT3duUHJvcGVydHkob
3B0TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgdmFyIG9wdCA9IEFhay5vcHRpb25zW29wdE5hbWVdOwog
ICAgICAgICAgICAgICAgICB2YXIgY2hlY2tlZCA9IEFhay5vcHRzW29wdE5hbWVdID09PSB0cnVlID8gImN
oZWNrZWQiIDogJyc7CiAgICAgICAgICAgICAgICAgIEFhay5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgIC
AgICAgICAgICB0YWcgOiAnZGl2JywKICAgICAgICAgICAgICAgICAgICBodG1sIDogJzxpbnB1dCBpZD0iJ
yArIG9wdE5hbWUgKyAnIiBjbGFzcz0iY3NzLWNoZWNrYm94IiAnICsgY2hlY2tlZCArICcgdHlwZT0iJyAr
IG9wdC50eXBlICsgJyIvPjxsYWJlbCBmb3I9IicgKyBvcHROYW1lICsgJyIgdGl0bGU9IicgKyBvcHQuaW5
mbyArICciIGNsYXNzPSJjc3MtbGFiZWwiPicgKyBvcHQubGFiZWwgKyAnPC9sYWJlbD4nLAogICAgICAgIC
AgICAgICAgICAgIGFwcGVuZCA6ICcjYWFrLXNldHRpbmdzLScgKyBvcHQuZ3JvdXAKICAgICAgICAgICAgI
CAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAvLyBz
YXZlIG9wdGlvbnMgCiAgICAgICAgICAgICAgQWFrLm9uRXZlbnQoQWFrLmdldEVsZW1lbnQoIiNhYWstc2V
0dGluZ3Mtc2F2ZSIpLCAiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgZWxlbX
MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY3NzLWNoZWNrYm94Jyk7CiAgICAgICAgICAgICAgI
CBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIHZh
ciBlbGVtID0gZWxlbXNbaV07CiAgICAgICAgICAgICAgICAgIGlmIChlbGVtLmNoZWNrZWQpIHsKICAgICA
gICAgICAgICAgICAgICBBYWsuc2V0VmFsdWUoZWxlbS5pZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgIH
0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgQWFrLnNldFZhbHVlKGVsZW0uaWQsIGZhbHNlKTsKICAgI
CAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0
KCdTYXZlZCAhJyk7CiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgIC8vIENsZWFyIEdNIHN0b3J
hZ2UKICAgICAgICAgICAgICBBYWsuYWRkQ29tbWFuZHMoewogICAgICAgICAgICAgICAgY2FwdGlvbiA6IC
dDbGVhciBHTSBzdG9yYWdlJywKICAgICAgICAgICAgICAgIGV4ZWN1dGUgOiBmdW5jdGlvbiAoKSB7CiAgI
CAgICAgICAgICAgICAgIEFhay5kZWxldGVWYWx1ZSgpOwogICAgICAgICAgICAgICAgICB3aW5kb3cuYWxl
cnQoJ0NsZWFyZWQgIScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICA
gICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICB1c2Vyc2NyaXB0c19kb21haW5zID
ogeyAvLyBSZWRpcmVjdCB0byBHaXRodWIKICAgICAgICBob3N0IDogWyd1c2Vyc2NyaXB0cy5vcmcnLCAnd
XNlcnNjcmlwdHMub3JnOjgwODAnLCAndXNlcnNjcmlwdHMtbWlycm9yLm9yZyddLAogICAgICAgIG9uU3Rh
cnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoLzE1NTg0MCQvLnRlc3QobG9jYXRpb24ucGF0aG5
hbWUpKSB7CiAgICAgICAgICAgIEFhay5nbyhBYWsuaG9tZVVSTCk7CiAgICAgICAgICB9CiAgICAgICAgfQ
ogICAgICB9LAogICAgICBvcGVudXNlcmpzX29yZyA6IHsKICAgICAgICBob3N0IDogWydvcGVudXNlcmpzL
m9yZyddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlbGVtZW50ID0g
QWFrLmdldEVsZW1lbnQoJ2FbaHJlZiQ9Ii9pc3N1ZXMiXScpOwogICAgICAgICAgaWYgKC9BbnRpLUFkYmx
vY2tfS2lsbGVyX1JlZWsvLnRlc3QobG9jYXRpb24ucGF0aG5hbWUpICYmIGVsZW1lbnQpIHsKICAgICAgIC
AgICAgQWFrLmNvbmZpcm1SZXBvcnQoZWxlbWVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9L
AogICAgICBncmVhc3lmb3JrX29yZyA6IHsKICAgICAgICBob3N0IDogWydncmVhc3lmb3JrLm9yZyddLAog
ICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlbGVtZW50ID0gQWFrLmdldEV
sZW1lbnQoJ2FbaHJlZiQ9Ii9mZWVkYmFjayJdJyk7CiAgICAgICAgICBpZiAoLy1hbnRpLWFkYmxvY2sta2
lsbGVyLXJlZWsvLnRlc3QobG9jYXRpb24ucGF0aG5hbWUpICYmIGVsZW1lbnQpIHsKICAgICAgICAgICAgQ
WFrLmNvbmZpcm1SZXBvcnQoZWxlbWVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAg
ICBtb25rZXlndXRzX2NvbSA6IHsKICAgICAgICBob3N0IDogWydtb25rZXlndXRzLmNvbSddLAogICAgICA
gIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlbGVtZW50ID0gQWFrLmdldEVsZW1lbn
QoJ2FbaHJlZio9ImNvZGUucGhwP25hdj1mb3J1bSJdJyk7CiAgICAgICAgICBpZiAoL21vbmtleWd1dHMuY
29tXC9jb2RlLnBocFw/aWQ9MzUxLy50ZXN0KGxvY2F0aW9uLmhyZWYpICYmIGVsZW1lbnQpIHsKICAgICAg
ICAgICAgQWFrLmNvbmZpcm1SZXBvcnQoZWxlbWVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB
9LAogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS
0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyBTcGVjaWZpYwogI
CAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICBibG9nc3BvdCA6IHsKICAgICA
gICAvLyBObyBDb3VudHJ5IFJlZGlyZWN0IChOQ1IpCiAgICAgICAgLy8gUHJldmVudCBCbG9nZ2VyIGZyb2
0gUmVkaXJlY3RpbmcgdG8gQ291bnRyeS1TcGVjaWZpYyBEb21haW5zCiAgICAgICAgLy8gZG9jOiBodHRwO
i8vdGlueXVybC5jb20vN3JtMzRqbwogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dyZWFzeWZvcmsub3Jn
L2ZyL2ZvcnVtL2Rpc2N1c3Npb24vNTk1MwogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20
vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy80OTAKICAgICAgICAvLyB0ZXN0OiBodHRwOi8vdG
lueXVybC5jb20vbm9tY3hrYwogICAgICAgIGhvc3QgOiBbJy5ibG9nc3BvdC4nXSwKICAgICAgICBvblN0Y
XJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgaWYgKEFhay5pc1RvcGZyYW1lKSB7IC8vIGZpeCByZWRp
cmV0aW9uIGxvb3AKICAgICAgICAgICAgdmFyIGJsb2cgPSBsb2NhdGlvbi5ob3N0LnJlcGxhY2UoJ3d3dy4
nLCAnJykuc3BsaXQoIi4iKTsKICAgICAgICAgICAgaWYgKGJsb2dbYmxvZy5sZW5ndGggLSAxXSAhPSAiY2
9tIikgewogICAgICAgICAgICAgIHZhciBwYXRoID0gbG9jYXRpb24uaHJlZi5zcGxpdCgiLyIpLnNsaWNlK
DMpLmpvaW4oJy8nKTsKICAgICAgICAgICAgICBBYWsuZ28oImh0dHA6Ly8iICsgYmxvZ1swXSArICIuYmxv
Z3Nwb3QuY29tL25jci8iICsgcGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiA
gICAgIH0sCiAgICAgIGJsb2dzcG90X2tub3dsZXQzMzg5IDogewogICAgICAgIC8vIG5vdGU6IGFsc28gYW
RkZWQgYWJwIHJ1bGUKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZ
GJsb2NrLWtpbGxlci9pc3N1ZXMvODMKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20v
QTNtQ1hRNWkKICAgICAgICBob3N0IDogWydrbm93bGV0MzM4OS5ibG9nc3BvdC4nXSwKICAgICAgICBvblN
0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnNldExvY2FsKCdub2FkJywgZmFsc2UpOwogIC
AgICAgICAgQWFrLmFkZFN0eWxlKCIjZ0FkcyB7IGhlaWdodDogMTdweDsgfSAjZ0FkMiB7IGhlaWdodDogM
TdweDsgfSIpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgdXB0b2JveF91cHRvc3RyZWFtIDogewogICAg
ICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3V
lcy8zNTEKICAgICAgICBob3N0IDogWyd1cHRvYm94LmNvbScsICd1cHRvc3RyZWFtLmNvbSddLAogICAgIC
AgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBPbGQgc29sdXRpb24gW2RlcHJlY2F0Z
WRdCiAgICAgICAgICB2YXIgaWQgPSBsb2NhdGlvbi5wYXRobmFtZS5tYXRjaCgvWzAtOWEtel17MTJ9Lyk7
CiAgICAgICAgICBpZiAoaWQgIT09IG51bGwpIHsKICAgICAgICAgICAgQWFrLmFkZFN0eWxlKCIjIiArIGl
kWzBdICsgIiB7IGhlaWdodDogMTJweDsgfSIpOwogICAgICAgICAgfQogICAgICAgICAgLy8gTmV3IDEyLj
A1LjIwMTQKICAgICAgICAgIC8vICsgYWJwIHJ1bGUgKGFsdGVybmF0aXZlIHNvbHV0aW9uKQogICAgICAgI
CAgQWFrLmFkZFN0eWxlKCIjYWRibG9ja3RyYXAgeyBoZWlnaHQ6IDEycHg7IH0iKTsKICAgICAgICB9LAog
ICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIHJlbW92ZSBhZHMKICAgICAgICA
gIEFhay5yZW1vdmVFbGVtZW50KCcqW3NyY149Imh0dHA6Ly9hZHMudXB0b2JveC5jb20vIl0sKltocmVmXj
0iaHR0cDovL2Fkcy51cHRvYm94LmNvbS8iXScpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgYW5pc3Vic
2lhX2NvbSA6IHsKICAgICAgICBob3N0IDogWydhbmlzdWJzaWEuY29tJ10sCiAgICAgICAgb25TdGFydCA6
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vICsgYWJwIHJ1bGUgI0AjLmFkc2FudGlsb2sKICAgICAgICA
gIEFhay5hZGRTdHlsZSgiLmFkc2FudGlsb2sgeyBoZWlnaHQ6IDVweDsgfSIpOwogICAgICAgIH0sCiAgIC
AgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmpBbnRpQmxvY2sgPSBmdW5jd
GlvbiAoKSB7fTsKICAgICAgICAgIEFhay51dy5DZWtCbG9rID0gZnVuY3Rpb24gKCkge307CiAgICAgICAg
fQogICAgICB9LAogICAgICBmcmVlZ2FtZXNlcnZlcmhvc3RfY29tIDogewogICAgICAgIC8vIGlzc3VlOiB
odHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNTEyCiAgICAgIC
AgaG9zdCA6IFsnZnJlZWdhbWVzZXJ2ZXJob3N0LmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvb
iAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIiNmYWIxMyB7IGhlaWdodDogMTFweDsgfSIpOwogICAg
ICAgIH0KICAgICAgfSwKICAgICAgZWxhaG1hZF9jb20gOiB7CiAgICAgICAgaG9zdCA6IFsnZWxhaG1hZC5
jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3
Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjYWRibG9jayB7IGhlaWdodDogMXB4OyB9Iik7C
iAgICAgICAgfQogICAgICB9LAogICAgICBtcnR6Y21wM19uZXQgOiB7CiAgICAgICAgaG9zdCA6IFsnbXJ0
emNtcDMubmV0J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGR
TdHlsZSgiLnJ0bV9hZCB7IGhlaWdodDogMXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICBoZW
lnaHRfbXlUZXN0QWQgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2Fud
GktYWRibG9jay1raWxsZXIvaXNzdWVzLzEyNDEKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIu
Y29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvOTgzCiAgICAgICAgLy8gaXNzdWU6IGh0dHB
zOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzI5MQogICAgICAgIGhvc3
QgOiBbJ2JrbmltZS5jb20nLCAnZ280dXAuY29tJywgJ2RlYnJpZG8uY29tJ10sCiAgICAgICAgb25TdGFyd
CA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiLm15VGVzdEFkIHsgaGVpZ2h0OiAx
cHg7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRlYnJpZGZhc3RfbmV0d29yayA6IHsKICAgICA
gICAvLyBpc3N1ZTogaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9lbi9mb3J1bS9kaXNjdXNzaW9uLzk0MDYKIC
AgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9lbi9mb3J1bS9kaXNjdXNzaW9uLzcwM
TMKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxl
ci9pc3N1ZXMvMTI3MgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWF
kYmxvY2sta2lsbGVyL2lzc3Vlcy83NjkKICAgICAgICBob3N0IDogWydkZWJyaWRmYXN0LmNvbScsICdnZX
RkZWJyaWQuY29tJywgJ2RlYnJpZC51cycsICdsZWVjaGVyLnVzJ10sCiAgICAgICAgb25TdGFydCA6IGZ1b
mN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiLm15VGVzdEFkLCAubXkyNEFkLCAubmFiaWwg
eyBoZWlnaHQ6IDFweDsgfSIpOwogICAgICAgIH0sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewo
gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NpbXBsZUFkJykuaW5uZXJIVE1MID0gJzxwIH
N0eWxlPSJkaXNwbGF5Om5vbmU7Ij5kZWJyaWRmYXN0LmNvbTwvcD4nOwogICAgICAgIH0KICAgICAgfSwKI
CAgICAgYmdfZ2xlZGFpX3R2IDogewogICAgICAgIGhvc3QgOiBbJ2JnLWdsZWRhaS50diddLAogICAgICAg
IG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIi5teUFkIHsgaGVpZ2h
0OiAxcHg7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHRoZXBjc3B5X2NvbSA6IHsgLy8gaHR0cD
ovL3RoZXBjc3B5LmNvbS9yZWFkL2hvd190b19ibG9ja19hZGJsb2NrLwogICAgICAgIGhvc3QgOiBbJ3RoZ
XBjc3B5LmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRk
U3R5bGUoIi5teVRlc3RBZCB7IGhlaWdodDogMXB4OyB9Iik7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIi5
ibG9ja2VkIHsgZGlzcGxheTogbm9uZTsgfSIpOwogICAgICAgIH0sCiAgICAgICAgb25JZGxlIDogZnVuY3
Rpb24gKCkgewogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJy5ibG9ja2VkJyk7CiAgICAgICAgfQogI
CAgICB9LAogICAgICB2Z19lMjRfbm8gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNv
bS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzI5MgogICAgICAgIGhvc3QgOiBbJ3ZnLm5vJyw
gJ2UyNC5ubyddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBBZGQgdG
hpcyBydWxlLCBiZWNhdXNlIEVhc3lMaXN0IGFsbG93IGFsbCBoaWRkZW4gZWxlbWVudHMuCiAgICAgICAgI
CBBYWsuYWRkU3R5bGUoIi5hZCB7IGRpc3BsYXk6IG5vbmU7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAg
ICAgIGF1dG9tb2JpbGVfc3BvcnRpdmVfY29tIDogewogICAgICAgIGhvc3QgOiBbJ2F1dG9tb2JpbGUtc3B
vcnRpdmUuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZG
RTdHlsZSgiLm15VGVzdEFkIHsgaGVpZ2h0OiA1MXB4OyBkaXNwbGF5OiBub25lOyB9Iik7CiAgICAgICAgf
QogICAgICB9LAogICAgICBzbnN3X3VzIDogewogICAgICAgIGhvc3QgOiBbJ3Nuc3cudXMnXSwKICAgICAg
ICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjYWRfMSB7IGhlaWd
odDogMXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICB1cmxjaGVja2VyX25ldCA6IHsKICAgIC
AgICBob3N0IDogWyd1cmxjaGVja2VyLm5ldCddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7C
iAgICAgICAgICBBYWsuYWRkU3R5bGUoIiNhZGNoZWNrZXIgeyBoZWlnaHQ6IDIwcHg7IH0iKTsKICAgICAg
ICB9CiAgICAgIH0sCiAgICAgIHNraXBsaW1pdGVfdHYgOiB7CiAgICAgICAgaG9zdCA6IFsnc2tpcGxpbWl
0ZS50diddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bG
UoImRpdi5hZGR0aGlzX25hdGl2ZV90b29sYm94ICsgZGl2W2lkXSB7IGhlaWdodDogMTJweDsgfSIpOwogI
CAgICAgIH0KICAgICAgfSwKICAgICAgZmlsZWNvcmVfY29fbnogOiB7CiAgICAgICAgaG9zdCA6IFsnZmls
ZWNvcmUuY28ubnonXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmF
kZFN0eWxlKCIuYWRzZW5zZSB7IGhlaWdodDogNXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgIC
B0aG9tYXNfbl9ydXRoX2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZ
WsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTExMQogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bh
c3RlYmluLmNvbS9mdTd2a1VBMQogICAgICAgIGhvc3QgOiBbJ3Rob21hcy1uLXJ1dGguY29tJ10sCiAgICA
gICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiLkdvb2dsZSB7IG
hlaWdodDogNXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICBpbnRlcmZhbnNfb3JnIDogewogI
CAgICAgIC8vIHRlc3Q6IGh0dHA6Ly93d3cuaW50ZXJmYW5zLm9yZy9mb3J1bS8KICAgICAgICBob3N0IDog
WydpbnRlcmZhbnMub3JnJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEF
hay5hZGRTdHlsZSgiLmFkX2dsb2JhbF9oZWFkZXIgeyBoZWlnaHQ6IDFweDsgZGlzcGxheTogbm9uZTsgfS
IpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgbWF4ZGVicmlkZXVyX2NvbSA6IHsKICAgICAgICBob3N0I
DogWydtYXhkZWJyaWRldXIuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgIEFhay5hZGRTdHlsZSgiLmNsZWFyICsgZGl2W2lkXSB7IGhlaWdodDogMTJweDsgfSIpOwogICAgICA
gIH0KICAgICAgfSwKICAgICAgdG9wem9uZV9pdCA6IHsKICAgICAgICBob3N0IDogWyd0b3B6b25lLmx0J1
0sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiLmZvc
nVtQWQgeyBoZWlnaHQ6IDFweDsgZGlzcGxheTogbm9uZTsgfSIpOwogICAgICAgIH0KICAgICAgfSwKICAg
ICAgbmFuYTEwX2NvX2lsIDogewogICAgICAgIGhvc3QgOiBbJy5uYW5hMTAuJ10sCiAgICAgICAgb25TdGF
ydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI2FkdmVydC10cmFja2VyIHsgaG
VpZ2h0OiAxcHg7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHBsZWpfdHYgOiB7CiAgICAgICAga
G9zdCA6IFsncGxlai50diddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBB
YWsuYWRkU3R5bGUoIi5hZHZlcnRfYm94IHsgaGVpZ2h0OiAxcHg7IH0iKTsKICAgICAgICB9CiAgICAgIH0
sCiAgICAgIG1hbmdhbWludF9jb20gOiB7CiAgICAgICAgLy8gbm90ZTogYWRkZWQgcnVsZSB0byBhbGxvdy
AiLmFkNzI4IgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dyZWFzeWZvcmsub3JnL2lkL2ZvcnVtL2Rpc
2N1c3Npb24vODUyNAogICAgICAgIGhvc3QgOiBbJ21hbmdhbWludC5jb20nXSwKICAgICAgICBvblN0YXJ0
IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIuYWQ3MjggeyBoZWlnaHQ6IDMxcHg
7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRlYnJpZGV1cnN0cmVhbV9mciA6IHsKICAgICAgIC
Bob3N0IDogWydkZWJyaWRldXJzdHJlYW0uZnInXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkge
wogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjY29udGVudCBkaXZbaWRdW2FsaWduPWNlbnRlcl0geyBoZWln
aHQ6IDEycHg7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHByZWVtbGlua3NfY29tIDogewogICA
gICAgIGhvc3QgOiBbJ3ByZWVtbGlua3MuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIH
sKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI2RpdmFkcyB7IGhlaWdodDogMXB4OyB9Iik7CiAgICAgICAgf
QogICAgICB9LAogICAgICBoZW50YWlfdG8gOiB7CiAgICAgICAgaG9zdCA6IFsnaGVudGFpLnRvJ10sCiAg
ICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI2hlbnRhaXR
vMTIzIHsgaGVpZ2h0OiAxMXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICBwcm90b3R1cmtfY2
9tIDogewogICAgICAgIGhvc3QgOiBbJ3Byb3RvdHVyay5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY
3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjcmVrbGFtIHsgaGVpZ2h0OiAxcHg7IH0iKTsK
ICAgICAgICB9CiAgICAgIH0sCiAgICAgIG11ZmFfZGUgOiB7CiAgICAgICAgaG9zdCA6IFsnbXVmYS5kZSd
dLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIiNsZW
FkZXJib2FyZCB7IGhlaWdodDogNXB4OyB9Iik7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIiNsYXJnZS1yZ
WN0YW5nbGUgeyBoZWlnaHQ6IDVweDsgfSIpOwogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjYWQtaGVhZGVy
LTQ2OHg2MCB7IGhlaWdodDogNXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICB3YXRjaGFyYWJ
fY29tIDogewogICAgICAgIGhvc3QgOiBbJ3dhdGNoYXJhYi5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZn
VuY3Rpb24gKCkgewogICAgICAgICAgLy8gKyBhZHAgcnVsZSB3YXRjaGFyYWIuY29tI0AjI2FkYmxvY2sKI
CAgICAgICAgIEFhay5hZGRTdHlsZSgiI2FkYmxvY2sgeyBoZWlnaHQ6IDVweDsgfSIpOwogICAgICAgIH0K
ICAgICAgfSwKICAgICAgZnJlZWRvbWlwX2NvbSA6IHsKICAgICAgICBob3N0IDogWydmcmVlZG9tLWlwLmN
vbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIi
5wdWJfdmVydGljYWwgaW5zLCAucHViX3ZlcnRpY2FsIGRpdiB7IGhlaWdodDogMTFweDsgfSIpOwogICAgI
CAgIH0KICAgICAgfSwKICAgICAgd2FrYW5pbV90diA6IHsKICAgICAgICBob3N0IDogWyd3YWthbmltLnR2
J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI2R
ldGVjdG9yIHsgZGlzcGxheTogbm9uZTsgfSIpOwogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjbm9wdWIgey
BkaXNwbGF5OiBibG9jazsgfSIpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgc2ltcGx5X2RlYnJpZF9jb
20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1r
aWxsZXIvaXNzdWVzLzMzMgogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS9iN01BWVh
zNAogICAgICAgIGhvc3QgOiBbJ3NpbXBseS1kZWJyaWQuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bm
N0aW9uICgpIHsKICAgICAgICAgIEFhay51dy5hZHNieWdvb2dsZSA9IHt9OwogICAgICAgICAgQWFrLnV3L
mFkc2J5Z29vZ2xlLmxvYWRlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9LAogICAgICBtYW5nYTlfY29t
IDogewogICAgICAgIGhvc3QgOiBbJ21hbmdhOS5jb20nLCAnbWFuZ2FiZWUuY28nXSwKICAgICAgICBvblN
0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIuYWRibG9jayB7IGhlaWdodD
ogMzFweDsgfSIpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgb25lbWFuZ2EyX2NvbSA6IHsKICAgICAgI
CBob3N0IDogWydvbmVtYW5nYTIuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgIEFhay5hZGRTdHlsZSgiLmFmc19hZHMgeyBoZWlnaHQ6IDVweDsgfSIpOwogICAgICAgIH0KICA
gICAgfSwKICAgICAgbWFuZ2FiaXJkX2NvbSA6IHsKICAgICAgICBob3N0IDogWydtYW5nYWJpcmQuY29tJ1
0sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiLmFmc
19hZHMgeyBoZWlnaHQ6IDVweDsgfSIpOwogICAgICAgIH0KICAgICAgfSwKICAgICAga29kaWxpdmVfZXUg
OiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWx
sZXIvaXNzdWVzLzE1MjgKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vWnh2WEtxdG
MKICAgICAgICBob3N0IDogWydrb2RpbGl2ZS5ldSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoK
SB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIi5BZCB7IGhlaWdodDogNXB4OyB9Iik7CiAgICAgICAgfQog
ICAgICB9LAogICAgICBiYWNraW5fbmV0IDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5
jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPWJhY2tpbi5uZXQKICAgICAgICBob3N0ID
ogWydiYWNraW4ubmV0J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFha
y5hZGRTdHlsZSgiI2RpdmFkIHsgaGVpZ2h0OiAzMXB4OyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAg
ICBtb2JpbGVfdHJhY2tlcl9mcmVlX2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWI
uY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTA4MgogICAgICAgIGhvc3QgOiBbJ21vYm
lsZS10cmFja2VyLWZyZWUuY29tJ10sCiAgICAgI
CAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI215QWRzIHsgaGVp
Z2h0OiAxcHg7IH0iKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHdvcmt1cGxvYWRfY29tIDogewogICA
gICAgIC8vIG5vdGU6IG9iZnVzY2F0ZWQKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3
JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTMzNAogICAgICAgIC8vIGlzc3VlOiBodHRwczovL
2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMjkwCiAgICAgICAgLy8gc291
cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL0NQemQyU3d4CiAgICAgICAgaG9zdCA6IFsnd29ya3VwbG9hZC5
jb20nXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTdHlsZS
giLmFkQmxvY2ssIC5hZHNieWdvb2dsZSwgI3NhZCB7IGhlaWdodDogMTFweDsgfSIpOwogICAgICAgIH0KI
CAgICAgfSwKICAgICAgdG9kYXlfaW4gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNv
bS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9aW50b2RheS5pbgogICAgICAgIC8vIGlzc3V
lOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPWJ1c2luZX
NzdG9kYXkuaW4KICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vZ3o1MzlHN20KICAgI
CAgICBob3N0IDogWyJpbnRvZGF5LmluIiwgImJ1c2luZXNzdG9kYXkuaW4iXSwKICAgICAgICBvblN0YXJ0
IDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoJyNhZGJvY2tlcl9hbHQgeyBkaXNwbGF
5OiBub25lOyB9Jyk7CiAgICAgICAgICBBYWsudXcub3BlblBvcHVwID0gZnVuY3Rpb24oKXt9OwogICAgIC
AgIH0KICAgICAgfSwKICAgICAgamNfbXBfY29tIDogewogICAgICAgIC8vIGJ5OiBHaXdheXVtZQogICAgI
CAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vl
cy8xNTk3CiAgICAgICAgaG9zdCA6IFsiamMtbXAuY29tIl0sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9
uKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCcuYWRzZW5zZSB7d2lkdGg6IDFweDsgaGVpZ2h0OiAxcH
g7IHZpc2liaWxpdHk6IGhpZGRlbjsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTt9Jyk7C
iAgICAgICAgfQogICAgICB9LAogICAgICBtYXJpYWdlX2ZyYW5jb19tYXJvY2Fpbl9uZXQgOiB7CiAgICAg
ICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWV
zP3E9bWFyaWFnZS1mcmFuY28tbWFyb2NhaW4ubmV0CiAgICAgICAgaG9zdCA6IFsibWFyaWFnZS1mcmFuY2
8tbWFyb2NhaW4ubmV0Il0sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgQWFrL
mFkZFN0eWxlKCcjbXlfYWRfZGl2IHtoZWlnaHQ6IDFweDt9Jyk7CiAgICAgICAgfQogICAgICB9LAogICAg
ICBoYXBweV9oYWNrX3J1IDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9
hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPWhhcHB5LWhhY2sucnUKICAgICAgICBob3N0IDogWydoYX
BweS1oYWNrLnJ1J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZ
GRTdHlsZSgiI2Jsb2NrYmxvY2tGNCB7dmlzaWJpbGl0eTppbnZpc2libGU7ZGlzcGxheTpub25lO30gI2Js
b2NrYmxvY2tGNCB0ZCB7dmlzaWJpbGl0eTppbnZpc2libGU7ZGlzcGxheTpub25lO30gI2Jsb2NrYmxvY2t
GNCB0ZCBwIHt2aXNpYmlsaXR5OmludmlzaWJsZTtkaXNwbGF5Om5vbmU7fSAjYmxvY2tibG9ja0QzIHt2aX
NpYmlsaXR5OnZpc2libGU7ZGlzcGxheTpibG9jazt9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICBmb
3JiZXNfY29tIDogewogICAgICAgIC8vIGJ5OiBHaXdheXVtZQogICAgICAgIC8vIGlzc3VlOiBodHRwczov
L2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy84NjUKICAgICAgICBob3N0IDo
gWydmb3JiZXMuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmIC
h3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuaW5kZXhPZignL3dlbGNvbWUnKSA+IC0xKSB7CiAgICAgICAgI
CAgIEFhay5zZXRDb29raWUoJ3dlbGNvbWVBZCcsICd0cnVlJywgODY0MDAwMDAsICcvJyk7CiAgICAgICAg
ICAgIEFhay5zZXRDb29raWUoJ2RhaWx5V2VsY29tZUNvb2tpZScsICd0cnVlJywgODY0MDAwMDAsICcvJyk
7CiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IEFhay5nZXRDb29raWUoJ3RvVXJsJykgfHwgJ2h0dH
A6Ly93d3cuZm9yYmVzLmNvbS8nOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgYmFpd
F9hZHNieWdvb2dsZSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50
aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTQ3CiAgICAgICAgaG9zdCA6IFsnYml0Y29pbmFsaWVucy5jb20
nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW
50KCdpbnMuYWRzYnlnb29nbGUnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGJhaXRfdGVzdGVyIDoge
wogICAgICAgIGhvc3QgOiBbJ29zb2FyY2FkZS5jb20nLCAnZDNicmlkNHkwdS5pbmZvJywgJ2ZpbGVpY2Uu
bmV0JywgJ25vc3RlYW0ucm8nLCAnb3BlbnJ1bm5lci5jb20nLCAnZWFzeWJpbGxldHMuY29tJywgJ3Nwb3g
uZnInLCAneW92b3lhZ2VzLmNvbScsICd0djMuY28ubnonLCAnZnJlZWFsbG11c2ljLmluZm8nLCAncHV0bG
9ja2VyLmNvbScsICdzb2Nrc2hhcmUuY29tJywgJ2RyYW1hcGFzc2lvbi5jb20nLCAneW9vY2xpY2suY29tJ
ywgJ29ubGluZS51YSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsu
YWRkQmFpdEVsZW1lbnQoJ2RpdiN0ZXN0ZXInKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGJhaXRfYWR
kIDogewogICAgICAgIGhvc3QgOiBbJ2ZpbGVjb20ubmV0JywgJ3Vwc2hhcmUub3JnJywgJ3NraXBweWZpbG
UuY29tJywgJ213ZmlsZXMubmV0JywgJ3VwLWZsb3cub3JnJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0a
W9uICgpIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I2FkZCcpOwogICAgICAgIH0KICAg
ICAgfSwKICAgICAgYmFpdF9hZHBidGVzdCA6IHsKICAgICAgICBob3N0IDogWydsZWFndWVzZWNyZXRhcnk
uY29tJywgJ3Rla25vZ29kcy5jb20nLCAnaGVsbHNtZWRpYS5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZn
VuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjYWRwYnRlc3QnKTsKICAgI
CAgICB9CiAgICAgIH0sCiAgICAgIGJhaXRfYWR0ZXN0ZXIgOiB7CiAgICAgICAgaG9zdCA6IFsnZnJlZXNw
b3J0c2JldC5jb20nLCAnc3BvcnRzcGxheXMuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICg
pIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I2FkLXRlc3RlcicpOwogICAgICAgIH0KIC
AgICAgfSwKICAgICAgdGdvX3R2X2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY
29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMzAzCiAgICAgICAgaG9zdCA6IFsndGdvLXR2
LmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGU
oIiNhZGIsICNiYW5uZXJhZDEsIC5sb2FkX3N0cmVhbSB7IGRpc3BsYXk6IG5vbmU7IH0iKTsKICAgICAgIC
AgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I3Rlc3RlcicpOwogICAgICAgIH0sCiAgICAgICAgb25FbmQgO
iBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcudGhyZXNob2xkID0gMTAwMDsKICAgICAgICAgIEFh
ay5yZW1vdmVFbGVtZW50KCcuY2hhdF9mcmFtZScpOyAvLyBidWcgcmVsb2FkIGlmcmFtZQogICAgICAgIH0
KICAgICAgfSwKICAgICAgZnJlZWdhbWVob3N0aW5nX25sIDogewogICAgICAgIGhvc3QgOiBbJ2ZyZWVnYW
1laG9zdGluZy5ubCddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuY
WRkQmFpdEVsZW1lbnQoJ2RpdiNhZHRlc3QnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHRoZXdlYXRo
ZXJzcGFjZV9jb20gOiB7CiAgICAgICAgaG9zdCA6IFsndGhld2VhdGhlcnNwYWNlLmNvbSddLAogICAgICA
gIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkQmFpdEVsZW1lbnQoJ2RpdiNhYi
1ibC1hZHZlcnRpc2VtZW50Jyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBjbGVvZGVza3RvcF9jb20gO
iB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxs
ZXIvaXNzdWVzLzcxMQogICAgICAgIGhvc3QgOiBbJ2NsZW9kZXNrdG9wLmNvbSddLAogICAgICAgIG9uU3R
hcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkQmFpdEVsZW1lbnQoJ2RpdiNteVRlc3RBZC
cpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgaW1hZ2VyYWlkZXJfY29tIDogewogICAgICAgIC8vIGlzc
3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy84MjYKICAg
ICAgICBob3N0IDogWydpbWFnZXJhaWRlci5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCk
gewogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjbXlHQ29udGFpbmVyJyk7CiAgICAgICAgfQ
ogICAgICB9LAogICAgICB2b2ljaV9mciA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9ncmVhc3lmb
3JrLm9yZy9mci9mb3J1bS9kaXNjdXNzaW9uLzEwMDkzCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0
aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzgyNgogICAgICAgIC8vIHNvdXJjZTo
gaHR0cDovL3Bhc3RlYmluLmNvbS96RVZRSFRpRAogICAgICAgIGhvc3QgOiBbJ3ZvaWNpLmZyJywgJ3Byb2
dyYW1tZS10di5uZXQnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrL
mFkZEJhaXRFbGVtZW50KCdkaXYjc2FzX3NjcmlwdDInKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIG1p
bF9pbmsgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9
jay1raWxsZXIvaXNzdWVzLzE2NTIKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vND
c0Tlp6UEoKICAgICAgICBob3N0IDogWydtaWwuaW5rJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uI
CgpIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I2Fkc19kaXYnKTsKICAgICAgICB9CiAg
ICAgIH0sCiAgICAgIGN1YmV1cGxvYWRfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dyZWF
zeWZvcmsub3JnL2VuL2ZvcnVtL2Rpc2N1c3Npb24vNTkxOQogICAgICAgIGhvc3QgOiBbJ2N1YmV1cGxvYW
QuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5jcmVhdGVFb
GVtZW50KHsKICAgICAgICAgICAgdGFnIDogJ2lmcmFtZScsCiAgICAgICAgICAgIG5hbWUgOiAnaWZyYW1l
JywKICAgICAgICAgICAgc3JjIDogJ2Fib3V0OmJsYW5rJywKICAgICAgICAgICAgc3R5bGUgOiAnZGlzcGx
heTpub25lOycsCiAgICAgICAgICAgIGFwcGVuZCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudAogICAgIC
AgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBzdHJlYW00ZnJlZV9ldSA6IHsKICAgICAgICBob
3N0IDogWydzdHJlYW00ZnJlZS5ldSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAvLyArYWJwIGFsdCBzb2x1dGlvbgogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjanB
heWRheScpOwogICAgICAgICAgQWFrLnV3LmpwYXlkYXlfYWxlcnQgPSAxOwogICAgICAgIH0KICAgICAgfS
wKICAgICAgXzNkbmV3c19ydSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZ
y9ydS9mb3J1bS9kaXNjdXNzaW9uLzU3NTAKICAgICAgICBob3N0IDogWyczZG5ld3MucnUnXSwKICAgICAg
ICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnNldENvb2tpZSgnYWRibG9ja3dhcm4
nLCAxKTsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI2VhckFkcyB7IHdpZHRoOiA0MDFweDsgfSIpOwogIC
AgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjZWFyQWRzJyk7CiAgICAgICAgICBBYWsudXcuX19BV
F9kZXRlY3RlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9LAogICAgICBfM2RzdGhlbV9lcyA6IHsKICAg
ICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N
1ZXM/cT0zZHN0aGVtCiAgICAgICAgaG9zdCA6IFsnM2RzdGhlbS5lcyddLAogICAgICAgIG9uU3RhcnQgOi
BmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvL0Fhay5hZGRTY3JpcHQoZnVuY3Rpb24gKCkge30pOwogICAgI
CAgIH0sCiAgICAgICAgb25CZWZvcmVTY3JpcHQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgLyoKICAgICAg
ICAgIHJldHVybiBbewogICAgICAgICAgICAgIGNvbnRhaW5zIDogJ21haW4uanMnLAogICAgICAgICAgICA
gIGV4dGVybmFsIDogdHJ1ZSwKICAgICAgICAgICAgICBvdmVycmlkZSA6ICcvL3Bhc3RlYmluLmNvbS9yYX
cvMnlHUlBoUlonCiAgICAgICAgICAgIH0KICAgICAgICAgIF07CiAgICAgICAgKi8KICAgICAgICB9CiAgI
CAgIH0sCiAgICAgIF84bXVzZXNfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5j
b20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPThtdXNlcwogICAgICAgIC8vIGlzc3VlOiB
odHRwczovL2dyZWFzeWZvcmsub3JnL2ZvcnVtL2Rpc2N1c3Npb24vODUxNQogICAgICAgIC8vIGlzc3VlOi
BodHRwczovL2dyZWFzeWZvcmsub3JnL2VuL2ZvcnVtL2Rpc2N1c3Npb24vNjQwNwogICAgICAgIC8vIHNvd
XJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS9iTU5EeGVjcwogICAgICAgIGhvc3QgOiBbJzhtdXNlcy5jb20n
XSwKICAgICAgICBvbkJlZm9yZVNjcmlwdCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiBbewo
gICAgICAgICAgICAgIGNvbnRhaW5zIDogInR5cGVvZiBleG8iLAogICAgICAgICAgICAgIGV4dGVybmFsID
ogZmFsc2UsCiAgICAgICAgICAgICAgcmVtb3ZlIDogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdO
wogICAgICAgIH0KICAgICAgfSwKICAgICAgaGFw
cHl0cmlwc19jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGk
tYWRibG9jay1raWxsZXIvaXNzdWVzP3E9aGFwcHl0cmlwcwogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3
Bhc3RlYmluLmNvbS9FV1NFYm52dgogICAgICAgIGhvc3QgOiBbJ2hhcHB5dHJpcHMuY29tJ10sCiAgICAgI
CAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRSZWFkT25seSgnY2FuUnVuJywg
dHJ1ZSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBsZ19maXJtd2FyZV9yb21fY29tIDogewogICAgICA
gIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz
9xPWxnLWZpcm13YXJlLXJvbS5jb20KICAgICAgICBob3N0IDogWydsZy1maXJtd2FyZS1yb20uY29tJ10sC
iAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRSZWFkT25seSgna2ls
bGFkcycsIHRydWUpOwogICAgICAgIH0KICAgICAgfSwgICAgICAKICAgICAgbWlkX2RheV9jb20gOiB7CiA
gICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaX
NzdWVzP3E9bWlkLWRheS5jb20KICAgICAgICBob3N0IDogWydtaWQtZGF5LmNvbSddLAogICAgICAgIG9uU
3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0UmVhZE9ubHkoJ2NhblJ1bicsIHRydWUp
OwogICAgICAgIH0KICAgICAgfSwKICAgICAgYmFkdHZfbmV0d29yayA6IHsKICAgICAgICAvLyBpc3N1ZTo
gaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1iYWR0di5pdA
ogICAgICAgIGhvc3QgOiBbJ2JhZHR2Lml0JywgJ2JhZHRhc3RlLml0JywgJ2JhZGdhbWVzLml0JywgJ2JhZ
GNvbWljcy5pdCddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0
Q29va2llKCdhZEJsb2NrQ2hlY2tlZCcsICdkaXNhdHRpdm8nKTsKICAgICAgICB9CiAgICAgIH0sCiAgICA
gIGluZGVwZW5kZW50X2NvX3VrIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcm
Vlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPWluZGVwZW5kZW50LmNvLnVrCiAgICAgICAgaG9zd
CA6IFsnaW5kZXBlbmRlbnQuY28udWsnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAg
ICAgICAgQWFrLnNldENvb2tpZSgnYWRibG9ja19kZXRlY3RlZCcsICdpZ25vcmVkJyk7CiAgICAgICAgfQo
gICAgICB9LAogICAgICBlc21hc19jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLm
NvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9ZXNtYXMuY29tCiAgICAgICAgaG9zdCA6I
FsnZXNtYXMuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5z
ZXRSZWFkT25seSgnb3BlbmVkX2FkYmJsb2NrJywgZmFsc2UpOwogICAgICAgIH0KICAgICAgfSwKICAgICA
gcGlub3kxdHZfbmV0d29yayA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZW
svYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1waW5veTF0dgogICAgICAgIGhvc3QgOiBbJ3Bpbm95M
XR2LiddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0UmVhZE9u
bHkoJ2FsbG93YWRzJywgMSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBld2FsbHN0cmVldGVyX2NvbSA
6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbG
xlci9pc3N1ZXM/cT1ld2FsbHN0cmVldGVyLmNvbQogICAgICAgIGhvc3QgOiBbJ2V3YWxsc3RyZWV0ZXIuY
29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRSZWFkT25s
eSgnT0FTX3JkbCcsIDEpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgYnVzaW5lc3Nfc3RhbmRhcmRfY29
tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2
lsbGVyL2lzc3Vlcz9xPWJ1c2luZXNzLXN0YW5kYXJkLmNvbQogICAgICAgIGhvc3QgOiBbJ2J1c2luZXNzL
XN0YW5kYXJkLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsu
c2V0UmVhZE9ubHkoJ2Fkc0xvYWRlZCcsIDEpOwogICAgICAgICAgQWFrLnNldENvb2tpZSgnX3B3JywgJ3Q
nKTsgICAgICAgICAgCiAgICAgICAgfQogICAgICB9LAogICAgICBleHByZXNzX25ldHdvcmsgOiB7CiAgIC
AgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzd
WVzP3E9ZmluYW5jaWFsZXhwcmVzcy5jb20KICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29t
L3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1pbmRpYW5leHByZXNzLmNvbQogICAgICAgIGh
vc3QgOiBbJ2ZpbmFuY2lhbGV4cHJlc3MuY29tJywgJ2luZGlhbmV4cHJlc3MuY29tJ10sCiAgICAgICAgb2
5TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRSZWFkT25seSgnUnVuQWRzJywgMSk7C
iAgICAgICAgfQogICAgICB9LAogICAgICBpbmRpYXRpbWVzX2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTog
aHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1pbmRpYXRpbWV
zCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZX
IvaXNzdWVzP3E9bWFsYXlhbGFtLnNhbWF5YW0uY29tCiAgICAgICAgLy8gdGVzdDogaHR0cDovL3Rpbnl1c
mwuY29tL3p4dXN2eWYsIAogICAgICAgIGhvc3QgOiBbJ2luZGlhdGltZXMuY29tJywgJ3NhbWF5YW0uY29t
JywgJ2JhbmdhbG9yZW1pcnJvci5jb20nXSwKICAgICAgICBvbkJlZm9yZVNjcmlwdCA6IGZ1bmN0aW9uICg
pIHsKICAgICAgICAgIHJldHVybiBbewogICAgICAgICAgICAgIGNvbnRhaW5zIDogJ1xcXFx4NjFcXFxceD
Y0XFxcXHg2MicsCiAgICAgICAgICAgICAgZXh0ZXJuYWwgOiBmYWxzZSwKICAgICAgICAgICAgICByZW1vd
mUgOiB0cnVlCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBjb250YWlucyA6ICdmdW5jdGlvbiBp
bml0QmxvY2snLAogICAgICAgICAgICAgIGV4dGVybmFsIDogZmFsc2UsCiAgICAgICAgICAgICAgcmVtb3Z
lIDogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdOwogICAgICAgIH0KICAgICAgfSwKICAgICAgdG
hlY2hpdmVfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpL
WFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNDUzCiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4u
Y29tL1RkcFB5cmJiCiAgICAgICAgaG9zdCA6IFsndGhlY2hpdmUuY29tJ10sCiAgICAgICAgb25TdGFydCA
6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTY3JpcHQoZnVuY3Rpb24gKCkgewogICAgICAgIC
AgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3aW5kb3csIHsKICAgICAgICAgICAgICBzdGVwaGFuZURld
GVjdG9yIDogewogICAgICAgICAgICAgICAgdmFsdWUgOiB7CiAgICAgICAgICAgICAgICAgIGhvb2sgOiBm
dW5jdGlvbiAoY2IpIHsKICAgICAgICAgICAgICAgICAgICBjYihmYWxzZSk7CiAgICAgICAgICAgICAgICA
gIH0sCiAgICAgICAgICAgICAgICAgIGluaXQgOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgICAgICAgIC
AgYnJvYWRjYXN0UmVzdWx0IDogZnVuY3Rpb24gKCkge30KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgI
CAgICAgICB3cml0YWJsZSA6IGZhbHNlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAg
ICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcmljaG9ucmFpbHNfY29tIDogewogICAgICAgIC8
vIGJ5OiBHaXdheXVtZQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLW
FkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNDQ3CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY
29tL0V3ZndnOEJHCiAgICAgICAgaG9zdCA6IFsncmljaG9ucmFpbHMuY29tJ10sCiAgICAgICAgb25JZGxl
IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFNjcmlwdChmdW5jdGlvbiAoKSB7CiAgICAgICA
gICAgIHZhciBhZHNCeUdvb2dsZUh0bWwgPSAnIjxpbnMraWQ9ImFzd2lmdF8wX2V4cGFuZCIrc3R5bGU9Im
Rpc3BsYXk6aW5saW5lLXRhYmxlO2JvcmRlcjpub25lO2hlaWdodDo5MHB4O21hcmdpbjowO3BhZGRpbmc6M
Dtwb3NpdGlvbjpyZWxhdGl2ZTt2aXNpYmlsaXR5OnZpc2libGU7d2lkdGg6NzUwcHg7YmFja2dyb3VuZC1j
b2xvcjp0cmFuc3BhcmVudCI+PGlucytpZD0iYXN3aWZ0XzBfYW5jaG9yIitzdHlsZT0iZGlzcGxheTpibG9
jaztib3JkZXI6bm9uZTtoZWlnaHQ6OTBweDttYXJnaW46MDtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdm
U7dmlzaWJpbGl0eTp2aXNpYmxlO3dpZHRoOjc1MHB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQiP
jxpZnJhbWUrbWFyZ2lud2lkdGg9IjAiK21hcmdpbmhlaWdodD0iMCIrdnNwYWNlPSIwIitoc3BhY2U9IjAi
K2FsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIitzY3JvbGxpbmc9Im5vIithbGxvd2Z1bGxzY3JlZW49InRydWU
iK29ubG9hZD0idmFyK2k9dGhpcy5pZCxzPXdpbmRvdy5nb29nbGVfaWZyYW1lX29uY29weSxIPXMmYW1wOy
ZhbXA7cy5oYW5kbGVycyxoPUgmYW1wOyZhbXA7SFtpXSx3PXRoaXMuY29udGVudFdpbmRvdyxkO3RyeXtkP
XcuZG9jdW1lbnR9Y2F0Y2goZSl7fWlmKGgmYW1wOyZhbXA7ZCZhbXA7JmFtcDsoIWQuYm9keXx8IWQuYm9k
eS5maXJzdENoaWxkKSl7aWYoaC5jYWxsKXtzZXRUaW1lb3V0KGgsMCl9ZWxzZStpZihoLm1hdGNoKXt0cnl
7aD1zLnVwZChoLGkpfWNhdGNoKGUpe313LmxvY2F0aW9uLnJlcGxhY2UoaCl9fSIraWQ9ImFzd2lmdF8wIi
tuYW1lPSJhc3dpZnRfMCIrc3R5bGU9ImxlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDsiK3dpZHRoP
SI3NTAiK2ZyYW1lYm9yZGVyPSIwIitoZWlnaHQ9IjkwIj48L2lmcmFtZT48L2lucz48L2lucz4iJzsKICAg
ICAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgICB1cmwgOiAkKCIuYXJ0aWNsZS1jb250ZW50IikuZGF
0YSgidXJsIiksCiAgICAgICAgICAgICAgZGF0YVR5cGUgOiAic2NyaXB0IiwKICAgICAgICAgICAgICBtZX
Rob2QgOiAicG9zdCIsCiAgICAgICAgICAgICAgZGF0YSA6IHsKICAgICAgICAgICAgICAgIGh0bWwgOiBhZ
HNCeUdvb2dsZUh0bWwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHN1Y2Nlc3MgOiBmdW5jdGlv
biAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICB2YXIgZXhlYyA9IHJlc3VsdC5yZXBsYWNlKCIkKCcuYXJ
0aWNsZS1jb250ZW50JykiLCAiJCgnLmFydGljbGUtY29udGVudC0yJykiKTsKICAgICAgICAgICAgICAgIG
5ldyBGdW5jdGlvbihleGVjKSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgI
CAgICQoIi5hcnRpY2xlLWNvbnRlbnQiKS5hZnRlcignPGRpdiBjbGFzcz0iYXJ0aWNsZS1jb250ZW50LTIi
PjwvZGl2PicpLnJlbW92ZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBybXB
yZXB1c2JfY29tIDogewogICAgICAgIGhvc3QgOiBbJ3JtcHJlcHVzYi5jb20nXSwKICAgICAgICBvblN0YX
J0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnNldENvb2tpZSgnam90X3ZpZXdlcicsIDMpOwogI
CAgICAgIH0KICAgICAgfSwKICAgICAgbmVvZHJpdmVfY28gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEwMDEKICAgICAgICBob3N
0IDogWyduZW9kcml2ZS5jbyddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgIC
AgLy8gUHJldmVudCBwb3B1bmRlcgogICAgICAgICAgQWFrLnNldENvb2tpZSgnS2lmUG9wQ250JywgMSwgb
nVsbCwgJy9lbWJlZC8nKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGhlbnRhaWhhdmVuX29yZyA6IHsK
ICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2dvcmhpbGwvdUJsb2NrL2lzc3Vlcy8xMzQ
wCiAgICAgICAgaG9zdCA6IFsnaGVudGFpaGF2ZW4ub3JnJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdG
lvbiAoKSB7CiAgICAgICAgICAvLyBQcmV2ZW50IHBvcHVuZGVyCiAgICAgICAgICBBYWsuc2V0Q29va2llK
CdoaF9wcG5kcjEnLCAxKTsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ2hoX3BwbmRyMicsIDEpOwogICAg
ICAgIH0KICAgICAgfSwKICAgICAgcHJpbWVzaGFyZV90diA6IHsKICAgICAgICBob3N0IDogWydwcmltZXN
oYXJlLnR2J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRCYW
l0RWxlbWVudCgnZGl2I2FkYmxvY2snKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRlYnJpZG5ldF9hb
mRfbGl2ZWRlYnJpZCA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50
aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1kZWJyaWRuZXQKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9
naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1saXZlZGVicmlkCiAgICAgIC
AgaG9zdCA6IFsnZGVicmlkbmV0LmNvbScsICdsaXZlZGVicmlkLmNvbSddLAogICAgICAgIG9uU3RhcnQgO
iBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIi5teVRlc3RBZDIgeyBoZWlnaHQ6IDVw
eDsgfSIpOwogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYubXlUZXN0QWQyJyk7CiAgICAgICA
gfQogICAgICB9LAogICAgICBibHVlc2F0b3NoaV9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi
8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzg3MwogICAgICAgIGhvc3QgO
iBbJ2JsdWVzYXRvc2hpLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICBBYWsuYWRkU3R5bGUoIiN0ZXN0IHsgaGVpZ2h0OiAyODBweDsgfSIpOwogICAgICAgICAgQWFrLmFkZEJ
haXRFbGVtZW50KCdkaXYjdGVzdCcpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcmF6ZXJjcnlwdF9jb2
0gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1ra
WxsZXIvaXNzdWVzLzg3MAogICAgICAgIGhvc3QgOiBbJ3JhemVyY3J5cHQuY29tJ10sCiAgICAgICAgb25T
dGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICA
gIEFhay5hZGRTdHlsZSgiI3Rlc3QgeyBoZWlnaHQ6IDI1MHB4OyB9Iik7CiAgICAgICAgICBBYWsuYWRkQm
FpdEVsZW1lbnQoJ2RpdiN0ZXN0Jyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBzYXRvc2hpZW1waXJlX
2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2Nr
LWtpbGxlci9pc3N1ZXMvODcyCiAgICAgICAgaG9zdCA6IFsnc2F0b3NoaWVtcGlyZS5jb20nXSwKICAgICA
gICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjdGVzdCB7IGhlaW
dodDogMjUwcHg7IH0iKTsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I3Rlc3QnKTsKICAgI
CAgICB9CiAgICAgIH0sCiAgICAgIG9uZWFkZmF1Y2V0X2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0
cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvODcxCiAgICAgICAgaG9
zdCA6IFsnb25lYWRmYXVjZXQuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgIC
AgICAgIEFhay5hZGRTdHlsZSgiI3Rlc3QgeyBoZWlnaHQ6IDI1MHB4OyB9Iik7CiAgICAgICAgICBBYWsuY
WRkQmFpdEVsZW1lbnQoJ2RpdiN0ZXN0Jyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBqa2FuaW1lX25l
dCA6IHsKICAgICAgICBob3N0IDogWydqa2FuaW1lLm5ldCddLAogICAgICAgIC8vIEBAfHxqa2FuaW1lLm5
ldC9hc3NldHMvanMvYWR2ZXJ0aXNlbWVudDIuanMKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgew
ogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjcmVjbycpOwogICAgICAgIH0KICAgICAgfSwKI
CAgICAgXzcyMHBta3ZfY29tIDogewogICAgICAgIGhvc3QgOiBbJzcyMHBta3YuY29tJ10sCiAgICAgICAg
b25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I2FkdmV
ydCcpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcGFpZHZlcnRzX2NvbSA6IHsKICAgICAgICBob3N0ID
ogWydwYWlkdmVydHMuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgI
EFhay5hZGRCYWl0RWxlbWVudCgnZGl2LmFmc19hZHMnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGl0
YWxpYXR2X29yZyA6IHsKICAgICAgICBob3N0IDogWydpdGFsaWF0di5vcmcnXSwKICAgICAgICBvblN0YXJ
0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjZmFiMTMnKTsKIC
AgICAgICB9CiAgICAgIH0sCiAgICAgIGNocmlzc21vb3ZlX2NvbSA6IHsKICAgICAgICBob3N0IDogWydja
HJpc3Ntb292ZS5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy9B
YWsuYWRkQmFpdEVsZW1lbnQoJ2RpdiNhZHNlcnZlcicpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZXZ
lbnRodWJzX2NvbSA6IHsKICAgICAgICBob3N0IDogWydldmVudGh1YnMuY29tJ10sCiAgICAgICAgb25TdG
FydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I2JsYWh5YmxhY
2kxJyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBzdXBlcmFuaW1lc19jb20gOiB7CiAgICAgICAgLy8g
aXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEyOTU
KICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vRkRQQUtqVFEKICAgICAgICBob3N0ID
ogWydzdXBlcmFuaW1lcy5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgI
CAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjYmFubmVyTG9qYScpOwogICAgICAgIH0KICAgICAgfSwKICAg
ICAgZm9ydW1fcGFjX3JvbV9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9
yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzI0MwogICAgICAgIGhvc3QgOiBbJ2ZvcnVtLnBhYy
1yb20uY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRCY
Wl0RWxlbWVudCgnZGl2LmJhbm5lcl9hZHMnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGxpdHZfdHYg
OiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWx
sZXIvaXNzdWVzLzEyOTkKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vemNkZHZUdU
MKICAgICAgICBob3N0IDogWydsaXR2LnR2J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKI
CAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2LnBsYXllcl9tYXNrJyk7CiAgICAgICAgfQogICAg
ICB9LAogICAgICBsZXZlbGRvd25fZnIgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmN
vbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzU5NQogICAgICAgIGhvc3QgOiBbJ2xldmVsZG
93bi5mciddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkQmFpd
EVsZW1lbnQoJ2RpdiNhZGJsb2NrJyk7CiAgICAgICAgICBBYWsuYWRkQmFpdEVsZW1lbnQoJ2RpdiNhZGJs
b2NrdGVzdCcpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZ2xvYmVzbG90X2NvbSA6IHsKICAgICAgICA
vLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvOT
I0CiAgICAgICAgaG9zdCA6IFsnZ2xvYmVzbG90LmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvb
iAoKSB7CiAgICAgICAgICBBYWsuYWRkQmFpdEVsZW1lbnQoJ2RpdiNhZGQnKTsKICAgICAgICAgIEFhay5h
ZGRCYWl0RWxlbWVudCgnZGl2I2FkZDEnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGFudGVubmVzcG9
ydF9jb20gOiB7CiAgICAgICAgaG9zdCA6IFsnYW50ZW5uZXNwb3J0LmNvbScsICdzZXJ2ZXJoZC5ldSddLA
ogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsgLy8gZm9yIGFudGVubmVzcG9ydAogICAgICAgICAgL
y8gUmVtb3ZlIFB1YgogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoIiNwdWIgLnB1YmNsb3NlIik7CiAg
ICAgICAgICAvLyBSZWRpcmVjdCB0byBQbGF5ZXIKICAgICAgICAgIEFhay5zZXRFbGVtZW50KCcjcHViIC5
lbWJlZCBpZnJhbWUnLCB7CiAgICAgICAgICAgIHNyYyA6ICcvZW1iZWQvZW1iZWQucGhwJwogICAgICAgIC
AgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBkaXNhYmxlQWxlcnRib3ggOiB7CiAgICAgICAgLy8ga
XNzdWU6IGh0dHBzOi8vZ3JlYXN5Zm9yay5vcmcvZW4vZm9ydW0vZGlzY3Vzc2lvbi84NjExCiAgICAgICAg
aG9zdCA6IFsnZHJpdmVhcmFiaWEuY29tJywgJ3B1dGxvY2tlci5jb20nLCAnZG9hdG9vbHNpdGEuYWx0ZXJ
2aXN0YS5vcmcnLCAnc29ja3NoYXJlLmNvbScsICdmcmVlLW1vdmllLWhvbWUuY29tJywgJ3BjLm9ubGluZT
E0My5jb20nLCAna29vb3JhLmNvbScsICdzdHIzYW10di5jby5ucicsICdzdHIzYW10di5hbHRlcnZpc3RhL
m9yZycsICdzdHIzYW0uYWx0ZXJ2aXN0YS5vcmcnLCAnZmlsZWNvbS5uZXQnLCAncGlwb2Nhcy50dicsICdn
ZW5lcmF0dXByZW1pdW0uYml6JywgJ21lZ2EtZGVicmlkLmV1JywgJ3ByZW1pdW1zdDByZS5ibG9nc3BvdC5
jb20nLCAnZGwtcHJvdGVjdC5jb20nLCAnbmV3c2lubGV2ZWxzLmNvbScsICd2aXByYWNpbmcuYml6JywgJ2
J1c2luZXNzdG9kYXkuaW4nXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgI
EFhay51dy5hbGVydCA9IGZ1bmN0aW9uICgpIHt9OwogICAgICAgIH0KICAgICAgfSwKICAgICAgZ2VuZXJh
dHVwcmVtaXVtX2JpeiA6IHsKICAgICAgICBob3N0IDogWydnZW5lcmF0dXByZW1pdW0uYml6J10sCiAgICA
gICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIERpc2FibGUgQ29uZmlybSBCb3gKIC
AgICAgICAgIC8vQWFrLnV3LmNvbmZpcm0gPSBmdW5jdGlvbiAoKXt9OwogICAgICAgICAgQWFrLnNldENvb
2tpZSgnZ2VuZXJhJywgZmFsc2UpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgbmV3c3RhdGVzbWFuX2Nv
bSA6IHsKICAgICAgICBob3N0IDogWyduZXdzdGF0ZXNtYW4uY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ
1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ2RvbmF0aW9uUG9wdXAnLCAnaGlkZScpOw
ogICAgICAgIH0KICAgICAgfSwKICAgICAgYWRzd2l6el9jb20gOiB7CiAgICAgICAgLy8gYnk6IFNrcjR0Y
2hHcjNhenlNb25raUJhbGxsbGxsWnp6egogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20v
cmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy84MDkKICAgICAgICBob3N0IDogWyd5ZXMuZm0nXSw
KICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFNjcmlwdChmdW5jdG
lvbiAoKSB7CiAgICAgICAgICAgIHdpbmRvdy5jb21fYWRzd2l6el9zeW5jaHJvX2luaXRpYWxpemUgPSBmd
W5jdGlvbiAoKSB7fTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVyc3RhbmRh
cmRfYXQgOiB7CiAgICAgICAgLy8gYnk6IEFsZXhhbmRlcjI1NQogICAgICAgIC8vIHBhdGNoOiBodHRwOi8
vcGFzdGViaW4uY29tL3Jhdy5waHA/aT1yN1E0RHJmQgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdG
h1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPWRlcnN0YW5kYXJkCiAgICAgICAga
G9zdCA6IFsnZGVyc3RhbmRhcmQuYXQnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewoKICAg
ICAgICAgIHZhciBtYWtlSVNPVGltZXN0YW1wVVRDID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXI
gcGFkID0gZnVuY3Rpb24gKGFtb3VudCwgd2lkdGgpIHsKICAgICAgICAgICAgICB2YXIgcGFkZGluZyA9IC
IiOwogICAgICAgICAgICAgIHdoaWxlIChwYWRkaW5nLmxlbmd0aCA8IHdpZHRoIC0gMSAmJiBhbW91bnQgP
CBNYXRoLnBvdygxMCwgd2lkdGggLSBwYWRkaW5nLmxlbmd0aCAtIDEpKSB7CiAgICAgICAgICAgICAgICBw
YWRkaW5nICs9ICIwIjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHBhZGRpbmcgKyB
hbW91bnQudG9TdHJpbmcoKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHZhciBkYXRlID0gbmV3IE
RhdGUoKTsKICAgICAgICAgICAgcmV0dXJuIFtwYWQoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCA0KSwgIi0iL
AogICAgICAgICAgICAgIHBhZChkYXRlLmdldFVUQ01vbnRoKCkgKyAxLCAyKSwgIi0iLAogICAgICAgICAg
ICAgIHBhZChkYXRlLmdldFVUQ0RhdGUoKSwgMiksICJUIiwKICAgICAgICAgICAgICBwYWQoZGF0ZS5nZXR
VVENIb3VycygpLCAyKSwgIjoiLAogICAgICAgICAgICAgIHBhZChkYXRlLmdldFVUQ01pbnV0ZXMoKSwgMi
ksICI6IiwKICAgICAgICAgICAgICBwYWQoZGF0ZS5nZXRVVENTZWNvbmRzKCksIDIpXS5qb2luKCk7CiAgI
CAgICAgICB9OwoKICAgICAgICAgIGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5mb3JFYWNoKGZ1bmN0
aW9uIChjb29raWUpIHsKICAgICAgICAgICAgLy8gRmluZCBtYWluIHN0b3JhZ2UgY29va2llCiAgICAgICA
gICAgIGlmIChjb29raWUuc3Vic3RyKDAsIDYpID09ICJNR1VJRD0iKSB7CiAgICAgICAgICAgICAgLy8gRG
Vjb21wb3NlIGluZm9ybWF0aW9uIGZyb20gbWFpbiBzdG9yYWdlIGNvb2tpZQogICAgICAgICAgICAgIHZhc
iB2YWx1ZXMgPSB7fTsKICAgICAgICAgICAgICBjb29raWUuc3Vic3RyKDYpLnNwbGl0KCImIikuZm9yRWFj
aChmdW5jdGlvbiAoYXNzaWdubWVudCkgewogICAgICAgICAgICAgICAgdmFyIHBvcyA9IGFzc2lnbm1lbnQ
uaW5kZXhPZignPScpOwogICAgICAgICAgICAgICAgaWYgKHBvcyA+IC0xKSB7CiAgICAgICAgICAgICAgIC
AgIHZhbHVlc1thc3NpZ25tZW50LnN1YnN0cigwLCBwb3MpXSA9IGFzc2lnbm1lbnQuc3Vic3RyKHBvcyArI
DEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAvLyBVcGRh
dGUgImZpcnN0IHZpZXdlZCIgdGltZXN0YW1wCiAgICAgICAgICAgICAgdmFsdWVzLlRpbWVzdGFtcCA9IG1
ha2VJU09UaW1lc3RhbXBVVEMoKTsKCiAgICAgICAgICAgICAgLy8gUmVjb21wb3NlIGluZm9ybWF0aW9uIG
luIG1haW4gc3RvcmFnZSBjb29raWUKICAgICAgICAgICAgICBjb29raWUgPSAiTUdVSUQ9IjsKICAgICAgI
CAgICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWVzKSB7CiAgICAgICAgICAgICAgICBpZiAodmFsdWVzLmhh
c093blByb3BlcnR5KGtleSkpIHsKICAgICAgICAgICAgICAgICAgY29va2llICs9IGtleSArICI9IiArIHZ
hbHVlc1trZXldICsgIiYiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgIC
AgICBjb29raWUgPSBjb29raWUuc3Vic3RyKDAsIChjb29raWUubGVuZ3RoIC0gMSkpOwoKICAgICAgICAgI
CAgICAvLyBVcGRhdGUgY29va2llCiAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llOwog
ICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHRla19kb21haW5
zIDogewogICAgICAgIC8vIGJ5OiBSZWVrLCBBbGV4YW5kZXIyNTUKICAgICAgICAvLyBpc3N1ZTogaHR0cH
M6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNzg4CiAgICAgICAgLy8ga
XNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzUxMgog
ICAgICAgIGhvc3QgOiBbJ3Rlay5ubycsICdnYW1lci5ubycsICd0ZWtub2ZpbC5ubycsICdpbnNpZGV0ZWx
lY29tLm5vJywgJ3ByaXNndWlkZS5ubycsICdkaXNrdXNqb24ubm8nLCAndGVrbm9qb2JiLm5vJywgJ2FrYW
0ubm8nLCAnaGFyZHdhcmUubm8nLCAnYW1vYmlsLm5vJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gK
CkgewoKICAgICAgICAgIC8qCiAgICAgICAgICB2YXIgYWRfZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKICAgICAgICAgIGFkX2ZyYW1lLm5hbWUgPSAiX2ZyYW1lIjsKICAgICAgICAgIGF
kX2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZE
NoaWxkKGFkX2ZyYW1lKTsKICAgICAgICAgIGFkX2ZyYW1lLmNvbnRlbnRXaW5kb3cud3JhcHBlZEpTT2JqZ
WN0LmluRklGID0gdHJ1ZTsKICAgICAgICAgICAqLwoKICAgICAgICAgIC8vIGZpeCAyNy4xMS4yMDE1CiAg
ICAgICAgICBBYWsuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgIHRhZyA6ICdkaXYnLAogICAgICAgICA
gICBpZCA6ICdnb29nbGVfYWRzX2lmcmFtZV8nLA
ogICAgICAgICAgICBodG1sIDogJzxwPjwvcD4nLAogICAgICAgICAgICBhcHBlbmQgOiAnYm9keScKICAgI
CAgICAgIH0pOwoKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHBsYW5ldGF0dm9ubGluZWhkX25ldHdvcmsg
OiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWx
sZXIvaXNzdWVzLzE0NjcKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS
1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTU5CiAgICAgICAgaG9zdCA6IFsncGxhbmV0YXR2b25saW5laGQuY
mxvZ3Nwb3QuJywgJ3BsYW5ldGF0dm9ubGluZWhkLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlv
biAoKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoJy5hZHNhbnRpbG9rIHsgaGVpZ2h0OiAxcHg7IH0nKTs
KICAgICAgICAgIC8vQWFrLnV3LmpRQW50aUFkc0Jsb2NrID0gZnVuY3Rpb24gKCl7fTsgLy8gZG9uJ3Qgd2
9yawogICAgICAgIH0KICAgICAgfSwKICAgICAgYmV0YV9zcGVlZHRlc3RfbmV0IDogewogICAgICAgIC8vI
Glzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy82MjgK
ICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9
pc3N1ZXMvNTYyCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG
9jay1raWxsZXIvaXNzdWVzLzQ4NAogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlMi5vcmcvNTN5b
WdoWDEKICAgICAgICBob3N0IDogWydiZXRhLnNwZWVkdGVzdC5uZXQnXSwKICAgICAgICBvbkFsd2F5cyA6
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy5hZHNPb2tsYUNvbVJlYWNoYWJsZSA9IHRydWU7CiA
gICAgICAgICBBYWsudXcuc2NyaXB0c0xvYWRlZCA9IGZ1bmN0aW9uICgpIHt9OwogICAgICAgIH0KICAgIC
AgfSwKICAgICAgYmluYnVja3NfY29tIDogewogICAgICAgIC8vIGJ5OiBBbGV4YW5kZXIyNTUKICAgICAgI
CAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMv
NTQ1CiAgICAgICAgaG9zdCA6IFsnYmluYnVja3MuY29tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24
gKCkgewogICAgICAgICAgQWFrLnV3LnRlc3RKdWljeVBheSA9IHRydWU7CiAgICAgICAgICBBYWsudXcudG
VzdFNlbnNlUGF5ID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHdoaXNreXByaWNlc19kb21ha
W5zIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2st
a2lsbGVyL2lzc3Vlcy8xMjg0CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL0VwcjV
0UkVMCiAgICAgICAgaG9zdCA6IFsnd2hpc2t5cHJpanplbi5jb20nLCAnd2hpc2t5cHJpY2VzLmNvLnVrJy
wgJ3doaXNreXByZWlzZS5jb20nLCAnd2hpc2t5cHJpeC5mciddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY
3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3Lk9BX3Nob3cgPSB0cnVlOwogICAgICAgIH0KICAgICAgfSwK
ICAgICAgbmljb2Jsb2dfb3JnIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmV
lay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMTg0CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcG
FzdGViaW4uY29tL01OSHBMczJWCiAgICAgICAgaG9zdCA6IFsnbmljb2Jsb2cub3JnJ10sCiAgICAgICAgb
25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignLnNyYycpOwogICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpOwogICAgICAgIH0KICA
gICAgfSwKICAgICAgZGlfc2UgOiB7CiAgICAgICAgLy8gbm90ZTogYWRkIHRoaXMgcnVsZSBmb3IgY2hyb2
1lIHVzZXIKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrL
WtpbGxlci9pc3N1ZXMvMTMxOQogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS85YkRQ
UXpNWAogICAgICAgIGhvc3QgOiBbJ2RpLnNlJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewo
gICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJyNoZWFkZXJfb3ZlcmxheScpOwogICAgICAgICAgQWFrLn
JlbW92ZUVsZW1lbnQoJyNtZXNzYWdlX21vZGFsJyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBtZWdvZ
29fbmV0IDogewogICAgICAgIC8vIGlzc3VlOiBQTQogICAgICAgIC8vIHNvdXJjZTE6IGh0dHA6Ly9wYXN0
ZWJpbi5jb20vY2NIUWczaG4KICAgICAgICAvLyBzb3VyY2UyOiBodHRwOi8vcGFzdGViaW4uY29tL2drMHZ
FUUhOCiAgICAgICAgLy8gbm90ZTogdHdvIGFkYmxvY2sgY2hlY2sKICAgICAgICBob3N0IDogWydtZWdvZ2
8ubmV0J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIE9iamVjdC5kZWZpb
mVQcm9wZXJ0eShBYWsudXcsICJhZEJsb2NrIiwgewogICAgICAgICAgICBlbnVtZXJhYmxlIDogdHJ1ZSwK
ICAgICAgICAgICAgd3JpdGFibGUgOiBmYWxzZSwKICAgICAgICAgICAgdmFsdWUgOiBmYWxzZQogICAgICA
gICAgfSk7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAic2hvd0FkQmxvY2tNZX
NzYWdlIiwgewogICAgICAgICAgICBlbnVtZXJhYmxlIDogdHJ1ZSwKICAgICAgICAgICAgd3JpdGFibGUgO
iBmYWxzZSwKICAgICAgICAgICAgdmFsdWUgOiBmdW5jdGlvbiAoKSB7fQogICAgICAgICAgfSk7CiAgICAg
ICAgfQogICAgICB9LAogICAgICBsaWJlcnRhZGRpZ2l0YWxfY29tIDogewogICAgICAgIC8vIGlzc3VlOiB
odHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNjQyCiAgICAgIC
AgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tLzZGenAwdnJFCiAgICAgICAgaG9zdCA6IFsnbGliZ
XJ0YWRkaWdpdGFsLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAiYWRfYWxyZWFkeV9wbGF5ZWQiLCB7CiAgICAgICAgICA
gIGVudW1lcmFibGUgOiB0cnVlLAogICAgICAgICAgICB3cml0YWJsZSA6IGZhbHNlLAogICAgICAgICAgIC
B2YWx1ZSA6IHRydWUKICAgICAgICAgIH0pOwogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFha
y51dywgInB1ZWRlTW9zdHJhckFkcyIsIHsKICAgICAgICAgICAgZW51bWVyYWJsZSA6IHRydWUsCiAgICAg
ICAgICAgIHdyaXRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgIHZhbHVlIDogdHJ1ZQogICAgICAgICAgfSk
7CiAgICAgICAgfQogICAgICB9LCAgICAgCiAgICAgIGZvbGhhX3VvbF9jb21fYnIgOiB7CiAgICAgICAgLy
8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEzO
TYKICAgICAgICAvLyBzb3VyY2U6IGYoICggdHlwZW9mIHBheXdhbGxfYWNjZXNzID09ICJ1bmRlZmluZWQi
IHx8IHBheXdhbGxfYWNjZXNzICE9IHRydWUgKSAmJiAoIHR5cGVvZiBmb2xoYV9hZHMgPT0gInVuZGVmaW5
lZCIgfHwgZm9saGFfYWRzICE9IHRydWUgKSApIHsKICAgICAgICBob3N0IDogWydmb2xoYS51b2wuY29tLm
JyJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIE9iamVjdC5kZWZpbmVQc
m9wZXJ0eShBYWsudXcsICJwYXl3YWxsX2FjY2VzcyIsIHsKICAgICAgICAgICAgZW51bWVyYWJsZSA6IHRy
dWUsCiAgICAgICAgICAgIHdyaXRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgIHZhbHVlIDogdHJ1ZQogICA
gICAgICAgfSk7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAiZm9saGFfYWRzIi
wgewogICAgICAgICAgICBlbnVtZXJhYmxlIDogdHJ1ZSwKICAgICAgICAgICAgd3JpdGFibGUgOiBmYWxzZ
SwKICAgICAgICAgICAgdmFsdWUgOiB0cnVlCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAg
ICAgIGdhbWVyX2NvbV90dyA6IHsKICAgICAgICAvLyBieTogbW1pczEwMDAKICAgICAgICAvLyB1c2Vyc2N
yaXB0OiBodHRwczovL2dyZWFzeWZvcmsub3JnL2VuL3NjcmlwdHMvMTY1MjUKICAgICAgICAvLyBpc3N1ZT
ogOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy85NzUKICAgI
CAgICBob3N0IDogWydnYW1lci5jb20udHcnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewog
ICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFhay51dywgJ0FudGlBZCcsIHsKICAgICAgICAgICA
gZW51bWVyYWJsZSA6IHRydWUsCiAgICAgICAgICAgIHdyaXRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgIH
ZhbHVlIDogbnVsbAogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBhcm1vcmdhbWVzX
2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2Nr
LWtpbGxlci9pc3N1ZXMvODQ1CiAgICAgICAgaG9zdCA6IFsnYXJtb3JnYW1lcy5jb20nXSwKICAgICAgICB
vblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFhay51dy
wgJ2dhX2RldGVjdCcsIHsKICAgICAgICAgICAgZW51bWVyYWJsZSA6IHRydWUsCiAgICAgICAgICAgIHdya
XRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgIHZhbHVlIDogbnVsbAogICAgICAgICAgfSk7CiAgICAgICAg
fQogICAgICB9LAogICAgICBtYW5nYWhvc3RfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2d
pdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy85NTcKICAgICAgICAvLyBpc3N1ZT
ogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTU4CiAgICAgI
CAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL0dycGJKRU5BCiAgICAgICAgaG9zdCA6IFsnbWFu
Z2Fob3N0LmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBPYmplY3Q
uZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAidGVzdERpc3BsYXkiLCB7CiAgICAgICAgICAgIGVudW1lcmFibG
UgOiB0cnVlLAogICAgICAgICAgICB3cml0YWJsZSA6IGZhbHNlLAogICAgICAgICAgICB2YWx1ZSA6IGZhb
HNlCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHZpZGVvd29vZF90diA6IHsKICAg
ICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N
1ZXMvMTMzOQogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3ZpZGVvd29vZC50di9idWlsZC9hc3NldHMvan
MvcGVtYmVkLTk3YTY0MGY2MjUuanMKICAgICAgICBob3N0IDogWyd2aWRlb3dvb2QudHYnXSwKICAgICAgI
CBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3Lm9wZW4gPSBmdW5jdGlvbiAoKSB7
fTsgLy8gcHJldmVudCBwb3B1cAogICAgICAgICAgQWFrLnV3LmNvbmZpZyA9IHt9OwogICAgICAgICAgT2J
qZWN0LmRlZmluZVByb3BlcnR5KEFhay51dy5jb25maWcsICJhZGJfcmVtaW5kIiwgewogICAgICAgICAgIC
BlbnVtZXJhYmxlIDogdHJ1ZSwKICAgICAgICAgICAgd3JpdGFibGUgOiBmYWxzZSwKICAgICAgICAgICAgd
mFsdWUgOiBmYWxzZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBpbmZvam9ic19j
b21fYnIgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9
jay1raWxsZXIvaXNzdWVzLzEzMzkKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vTF
BnNjA5M1UKICAgICAgICAvLyByZWRpcmVjdDogaHR0cDovL3d3dy5pbmZvam9icy5jb20uYnIvbm9wdWJsa
WNpdHkuYXNweAogICAgICAgIGhvc3QgOiBbJ2luZm9qb2JzLmNvbS5iciddLAogICAgICAgIG9uU3RhcnQg
OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU2NyaXB0KGZ1bmN0aW9uICgpIHsKICAgICAgICA
gICAgdmFyIHdlYlVJID0gd2ViVUkgfHwge307CiAgICAgICAgICAgIHdlYlVJLlV0aWxzID0gd2ViVUkuVX
RpbHMgfHwge307CiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3ZWJVSS5VdGlscywgIlN0b
3BBZEJsb2NrIiwgewogICAgICAgICAgICAgIGVudW1lcmFibGUgOiB0cnVlLAogICAgICAgICAgICAgIHdy
aXRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgICAgdmFsdWUgOiBmdW5jdGlvbiAoKSB7fQogICAgICAgICA
gICB9KTsKICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGNsb3Vkd2ViY29weV9jb20gOi
B7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZ
XIvaXNzdWVzLzcxNAogICAgICAgIGhvc3QgOiBbJ2Nsb3Vkd2ViY29weS5jb20nXSwKICAgICAgICBvblN0
YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIHNldFRpbWVvdXRDbG9uZSA9IEFhay51dy5zZXR
UaW1lb3V0OwogICAgICAgICAgQWFrLnV3LnNldFRpbWVvdXQgPSBudWxsOwogICAgICAgICAgc2V0VGltZW
91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIEFhay51dy5zZXRUaW1lb3V0ID0gc2V0VGltZW91dENsb
25lOwogICAgICAgICAgfSwgNTAwMCk7CiAgICAgICAgfQogICAgICB9LAogICAgICBuYXJraXZlX2NvbSA6
IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGx
lci9pc3N1ZXMvNTY5CiAgICAgICAgaG9zdCA6IFsnbmFya2l2ZS5jb20nXSwKICAgICAgICBvbkFsd2F5cy
A6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy5hZGJsb2NrX3N0YXR1cyA9IGZ1bmN0aW9uICgpI
HsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0sCiAg
ICAgIHByZWdlbl9uZXQgOiB7CiAgICAgICAgaG9zdCA6IFsncHJlZ2VuLm5ldCddLAogICAgICAgIG9uU3R
hcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBza2lwIHBhZ2UgaW5mbwogICAgICAgICAgQWFrLn
NldENvb2tpZSgncGduJywgMSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBwaHlzX29yZyA6IHsKICAgI
CAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1
ZXMvNzY4CiAgICAgICAgaG9zdCA6IFsncGh5cy5vcmcnXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9
uICgpIHsKICAgICAgICAgIEFhay51dy5jaGtBQiA9IGZ1bmN0aW9uICgpIHt9OwogICAgICAgIH0KICAgIC
AgfSwKICAgICAgb252YXNvcnRpcl9jb20gOiB7C
iAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIv
aXNzdWVzP3E9b252YXNvcnRpci5jb20KICAgICAgICBob3N0IDogWydvbnZhc29ydGlyLmNvbSddLAogICA
gICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy8gK2FicCBydWxlIGFsdCBzb2x1dG
lvbgogICAgICAgICAgQWFrLnV3LkplQmxvcXVlID0gZnVuY3Rpb24gKCkge307CiAgICAgICAgfQogICAgI
CB9LAogICAgICBmdWxsaGR6ZXZraV9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9ZnVsbGhkemV2a2kuY29tCiAgICAgICA
gaG9zdCA6IFsnZnVsbGhkemV2a2kuY29tJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7Ci
AgICAgICAgICAvLyArYWJwIHJ1bGUgYWx0IHNvbHV0aW9uCiAgICAgICAgICBBYWsudXcuY2hlY2sgPSBmd
W5jdGlvbiAoKSB7fTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHZpbGxlX2lkZWFsZV9jb20gOiB7CiAg
ICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXN
zdWVzLzI1OAogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS8xNm1ubWVNYwogICAgIC
AgIGhvc3QgOiBbJ3ZpbGxlLWlkZWFsZS5jb20nXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpI
HsKICAgICAgICAgIC8vICthYnAgcnVsZSBhbHQgc29sdXRpb24KICAgICAgICAgIEFhay51dy5leGVjc3Ag
PSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIG5vdHJlX3BsYW5ldGVfaW5mbyA
6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbG
xlci9pc3N1ZXMvMjU4CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL3FyUzZRR0dFC
iAgICAgICAgaG9zdCA6IFsnbm90cmUtcGxhbmV0ZS5pbmZvJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAvLyArYWJwIHJ1bGUgYWx0IHNvbHV0aW9uCiAgICAgICAgICBBYWsudXc
ucHVicG9wID0gZnVuY3Rpb24gKCkge307CiAgICAgICAgfQogICAgICB9LAogICAgICBhcGttaXJyb3JfY2
9tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta
2lsbGVyL2lzc3Vlcy8zNzgKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50
aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMjI0CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmN
vbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzc4CiAgICAgICAgaG9zdCA6IFsnYXBrbWlycm
9yLmNvbSddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmRvQ
2hlY2sgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIG10bGJsb2dfY29tIDog
ewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGV
yL2lzc3Vlcy85NDgKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9mb3J1bS9kaX
NjdXNzaW9uLzc3NTMKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vQkZyRFBNNmIKI
CAgICAgICBob3N0IDogWydtdGxibG9nLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAncHVhYnMnLCB7CiAgICAgICAgICA
gIGVudW1lcmFibGUgOiB0cnVlLAogICAgICAgICAgICB2YWx1ZSA6IGZ1bmN0aW9uICgpIHt9CiAgICAgIC
AgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGFuaXptX2NvbSA6IHsKICAgICAgICAvLyBpc3N1Z
ToKICAgICAgICBob3N0IDogWydhbml6bS5jb20nXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgp
IHsKICAgICAgICAgIEFhay51dy5zdG9wQWRCbG9jayA9IHt9OwogICAgICAgIH0KICAgICAgfSwKICAgICA
gZGlhcmlvaW5mb3JtYWNpb25fY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb2
0vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNTUwCiAgICAgICAgaG9zdCA6IFsnZGlhcmlva
W5mb3JtYWNpb24uY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShBYWsudXcsICdwcl9va3ZhbGlkYScsIHsKICAgICAgICAgICAgZW51bWV
yYWJsZSA6IHRydWUsCiAgICAgICAgICAgIHZhbHVlIDogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgfQ
ogICAgICB9LAogICAgICBjbmJldGFfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Y
i5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMzAxCiAgICAgICAgLy8gc291cmNlOiBo
dHRwOi8vcGFzdGViaW4uY29tL3ZYTkN6dHd4CiAgICAgICAgaG9zdCA6IFsnY25iZXRhLmNvbSddLAogICA
gICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQW
FrLnV3LCAnSkInLCB7CiAgICAgICAgICAgIGVudW1lcmFibGUgOiB0cnVlLAogICAgICAgICAgICB2YWx1Z
SA6IGZ1bmN0aW9uICgpIHt9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHRoZW1h
cmtlcl9oYWFyZXR6IDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnR
pLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMjkyCiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW
4uY29tL20wOGRrRFQ0CiAgICAgICAgaG9zdCA6IFsndGhlbWFya2VyLmNvbScsICdoYWFyZXR6LmNvLmlsJ
10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShBYWsudXcsICdBZEJsb2NrVXRpbCcsIHsKICAgICAgICAgICAgZW51bWVyYWJsZSA6IHRydWUsCiA
gICAgICAgICAgIHZhbHVlIDoge30KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcG
lwb2Nhc190diA6IHsKICAgICAgICAvLyBpc3N1ZToKICAgICAgICBob3N0IDogWydwaXBvY2FzLnR2J10sC
iAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIEFsc28gYWRkZWQgaW4gZGlz
YWJsZUFsZXJ0Ym94CiAgICAgICAgICAvLyBObyBwb3B1cAogICAgICAgICAgQWFrLnNldENvb2tpZSgncG9
wdXBfdXNlcl9sb2dpbicsICd5ZXMnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIF8xNW1pbl9sdCA6IH
sKICAgICAgICAvLyBub3RlOiByZWd1bGFyeSB1cGRhdGUgc2NyaXB0CiAgICAgICAgLy8gaXNzdWU6IGh0d
HBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9MTVtaW4uaXQKICAg
ICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vWVdmM0hUcXIKICAgICAgICAvLyB0ZXN0OiB
odHRwOi8vdGlueXVybC5jb20vaDZjNDMzNgogICAgICAgIGhvc3QgOiBbJzE1bWluLmx0J10sCiAgICAgIC
Agb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBYWsud
XcsICdST1VURScsIHsKICAgICAgICAgICAgZW51bWVyYWJsZSA6IHRydWUsCiAgICAgICAgICAgIHdyaXRh
YmxlIDogZmFsc2UsCiAgICAgICAgICAgIHZhbHVlIDogJ19iZV9yZWtsYW1vcycKICAgICAgICAgIH0pOwo
gICAgICAgIH0KICAgICAgfSwKICAgICAgc2MyY2FzdHNfY29tIDogewogICAgICAgIC8vIGJ5OiBHaXdheX
VtZQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsb
GVyL2lzc3Vlcy8xNTk5CiAgICAgICAgaG9zdCA6IFsnc2MyY2FzdHMuY29tJ10sCiAgICAgICAgb25TdGFy
dCA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgQWFrLmFkZFNjcmlwdChmdW5jdGlvbigpIHsKICAgICAgICA
gICAgd2luZG93Ll9nYXEgPSB7IHB1c2g6ZnVuY3Rpb24oKSB7fSB9OwogICAgICAgICAgICBPYmplY3QuZG
VmaW5lUHJvcGVydHkod2luZG93LCAic2hvd2RpYWxvZyIsIHsKICAgICAgICAgICAgICB2YWx1ZTogZnVuY
3Rpb24oKSB7fSwKICAgICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLAogICAgICAgICAgICAgIHdy
aXRhYmxlOiBmYWxzZQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR
5KHdpbmRvdywgInNob3dQb3B1cDIiLCB7CiAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkge30sCi
AgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwKICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc
2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHZndW5l
dHdvcmtfY29tIDogewogICAgICAgIC8vIGlzc3VlOgogICAgICAgIGhvc3QgOiBbJ3ZndW5ldHdvcmsuY29
tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnNldENvb2tpZSgnc3
RvcEl0JywgMSk7CiAgICAgICAgICB2YXIgY2xvc2UgPSBBYWsuZ2V0RWxlbWVudCgnI3NvbWVfYWRfYmxvY
2tfa2V5X2Nsb3NlJyk7CiAgICAgICAgICBpZiAoY2xvc2UpIHsKICAgICAgICAgICAgY2xvc2UuY2xpY2so
KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIGxpbmtjcnlwdF93cyA6IHsKICAgICA
gICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZX
MvMjg2CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1ra
WxsZXIvcHVsbC82NwogICAgICAgIGhvc3QgOiBbJ2xpbmtjcnlwdC53cyddLAogICAgICAgIG9uSWRsZSA6
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRFbGVtZW50KCcjYWRfY29udCcsIHsKICAgICAgICA
gICAgaWQgOiAnJywKICAgICAgICAgICAgc3R5bGUgOiAnZGlzcGxheTpibG9jazsnCiAgICAgICAgICB9KT
sKICAgICAgICAgIEFhay5zZXRFbGVtZW50KCcjY29udGFpbmVyX2NoZWNrJywgewogICAgICAgICAgICBzd
HlsZSA6ICdkaXNwbGF5Om5vbmU7JwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBl
dmVudG9zcHB2X21lIDogewogICAgICAgIC8vIGlzc3VlOiAKICAgICAgICBob3N0IDogWydldmVudG9zcHB
2Lm1lJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnJlbW92ZUVsZW
1lbnQoJyNuZjM3Jyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBib2xvcl90b2xpX2NvbSA6IHsKICAgI
CAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1
ZXMvNTUyCiAgICAgICAgaG9zdCA6IFsnYm9sb3ItdG9saS5jb20nXSwKICAgICAgICBvbkVuZCA6IGZ1bmN
0aW9uICgpIHsKICAgICAgICAgIHZhciBhZHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKC
diYW5uZXInKTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWRzLmxlbmd0aDsgaSsrKSB7CiAgI
CAgICAgICAgIHZhciBhZCA9IGFkc1tpXTsKICAgICAgICAgICAgYWQuaW5uZXJIVE1MID0gJzxicj4nOwog
ICAgICAgICAgICBhZC5zdHlsZS5oZWlnaHQgPSAnMXB4JzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICA
gIH0sCiAgICAgIHZpdm9fc3ggOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZW
VrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzI4MAogICAgICAgIGhvc3QgOiBbJ3Zpdm8uc3gnXSwKI
CAgICAgICBvbkVuZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBhbGVydCA9IEFhay5nZXRFbGVt
ZW50KCcjYWxlcnQtdGhyb3R0bGUnKTsKICAgICAgICAgIGlmIChhbGVydCkgewogICAgICAgICAgICBBYWs
ucmVtb3ZlRWxlbWVudChhbGVydCk7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYnV0dG9uID0gQWFrLm
dldEVsZW1lbnQoJ2J1dHRvbiNhY2Nlc3MnKTsKICAgICAgICAgIGlmIChidXR0b24pIHsKICAgICAgICAgI
CAgYnV0dG9uLnJlbW92ZUF0dHJpYnV0ZSgnaWQnKTsKICAgICAgICAgICAgYnV0dG9uLnJlbW92ZUF0dHJp
YnV0ZSgnZGlzYWJsZWQnKTsKICAgICAgICAgICAgYnV0dG9uLmlubmVySFRNTCA9ICdDb250aW51ZSB0byB
2aWRlbyc7CiAgICAgICAgICB9CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgIC
AgICAgdmFyIGlucHV0ID0gQWFrLmdldEVsZW1lbnQoJ2lucHV0W25hbWU9InRocm90dGxlIl0nKTsKICAgI
CAgICAgICAgaWYgKGlucHV0KSB7CiAgICAgICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoaW5wdXQpOwog
ICAgICAgICAgICB9CiAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGx1eHl
hZF9jb20gOiB7IC8vIHNraXAgcmVkaXJlY3QgbXlhbmltZXMubGkKICAgICAgICAvLyBpc3N1ZToKICAgIC
AgICBob3N0IDogWydsdXh5YWQuY29tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgI
CAgICAgaWYgKCcvSW5mb3JtYXRpb24ucGhwJyA9PSBsb2NhdGlvbi5wYXRobmFtZSkgewogICAgICAgICAg
ICB2YXIgaHJlZiA9IGxvY2F0aW9uLmhyZWY7CiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBocmVmLnN
1YnN0cihocmVmLmluZGV4T2YoJ3VybD0nKSArIDQsIGhyZWYubGVuZ3RoKTsKICAgICAgICAgIH0KICAgIC
AgICB9CiAgICAgIH0sCiAgICAgIG1ycGlyYWN5X2RvbWFpbnMgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0d
HBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzE0MDUKICAgICAgICBo
b3N0IDogWydtcnBpcmFjeS54eXonLCAnbXJwaXJhY3kuY2x1YiddLAogICAgICAgIG9uQmVmb3JlU2NyaXB
0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIFt7CiAgICAgICAgICAgICAgY29udGFpbnMgOi
AnRGVzYXRpdmEgbyBBZEJsb2NrIHBhcmEgY29udGludWFyJywKICAgICAgICAgICAgICBleHRlcm5hbCA6I
GZhbHNlLAogICAgICAgICAgICAgIHJlbW92ZSA6IHRydWUKICAgICAgICAgICAgfQogICAgICAgICAgXTsK
ICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRicGxhbmV0X25ldCA6IHsKICAgICAgICAvLyBpc3N1ZTogUE0
KICAgICAgICBob3N0IDogWydkYnBsYW5ldC5uZXQnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKC
kgewogICAgICAgICAgQWFrLnNldENvb2tpZSgnbmV3bm9Nb3JlQWRzTm93JywgMSk7CiAgICAgICAgfQogI
CAgICB9LAogICAgICBhaWRlbXVfZnIgOiB7CiAg
ICAgICAgLy8gaXNzdWU6CiAgICAgICAgaG9zdCA6IFsnYWlkZW11LmZyJ10sCiAgICAgICAgb25TdGFydCA
6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ2FkYmxvY2tQb3B1cCcsIHRydWUpOw
ogICAgICAgIH0KICAgICAgfSwKICAgICAgZWFtaV9pbiA6IHsKICAgICAgICAvLyBpc3N1ZToKICAgICAgI
CBob3N0IDogWydlYW1pLmluJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICBBYWsuc2V0Q29va2llKCdhZF9sb2NrZWQnLCAxKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGJpZ2R
vd25sb2FkZXJfY29tIDogewogICAgICAgIC8vIGlzc3VlOgogICAgICAgIGhvc3QgOiBbJ2JpZ2Rvd25sb2
FkZXIuY29tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnJlbW92Z
UVsZW1lbnQoJyNhbnRpX2FkYmxvY2snKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGZyZWVza2llcl9j
b20gOiB7CiAgICAgICAgLy8gYnk6IEdvcmhpbGwKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWI
uY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNjM5CiAgICAgICAgLy8gbm90ZTogYWxzby
BhZGRlZCBsaXN0IHJ1bGUKICAgICAgICBob3N0IDogWydmcmVlc2tpZXIuY29tJ10sCiAgICAgICAgb25JZ
GxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFkYi1ub3QtZW5hYmxlZCIpOwogICAgICAgICAgaWYgKGVsICE9PSBudWxsKSB7CiAgICAgICAgICAgIGV
sLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5Iik7CiAgICAgICAgICB9CiAgICAgICAgICBlbCA9IG
RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWRlb0NvbnRhaW5lciIpOwogICAgICAgICAgaWYgKGVsICE9P
SBudWxsKSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5Iik7CiAgICAg
ICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICBnYW1ldHJhaWxlcnNfY29tIDogewogICAgICAgIC8
vIGlzc3VlOgogICAgICAgIGhvc3QgOiBbJ2dhbWV0cmFpbGVycy5jb20nXSwKICAgICAgICBvbklkbGUgOi
BmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVudCgnI2FkX2Jsb2NraW5nJyk7CiAgI
CAgICAgfQogICAgICB9LAogICAgICBzY2FuX29uZXBpZWNlX25hcnV0b19teCA6IHsKICAgICAgICAvLyBp
c3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTgyCiA
gICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaX
NzdWVzLzI3OQogICAgICAgIGhvc3QgOiBbJ3NjYW4tbXguY29tJywgJ29uZXBpZWNlLW14Lm5ldCcsICduY
XJ1dG8tbXgubmV0J10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsu
dXcuYWRfYmxvY2tfdGVzdCA9IGZ1bmN0aW9uICgpIHt9OwogICAgICAgIH0sCiAgICAgICAgb25JZGxlIDo
gZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnNldEVsZW1lbnQoJyN5b3AnLCB7CiAgICAgICAgICAgIG
lkIDogJycKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgLy8gQml0Y29pbnMKICAgI
CAgYml0Y29pbmtlcl9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVr
L2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzIzMAogICAgICAgIGhvc3QgOiBbJ2JpdGNvaW5rZXIuY29
tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy5jbGFpbSA9IG
Z1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9OwogICAgICAgIH0sC
iAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJyNF
MzNGQ0NjWDJmVycpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgbW9vbmRvZ2VfY29faW4gOiB7CiAgICA
gICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdW
VzLzM4NAogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta
2lsbGVyL2lzc3Vlcy8yMzIKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50
aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMjMzCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmN
vbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzIzNgogICAgICAgIGhvc3QgOiBbJ21vb25kb2
dlLmNvLmluJywgJ21vb25saXRlY28uaW4nLCAnbW9vbmJpdC5jby5pbicsICdiaXRjb2luemVicmEuY29tJ
10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQo
JyNBQiwgI0U0NDJEdiwgI2VDQzVoJyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBiaXRjb2luZXJfbmV
0IDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2
lsbGVyL2lzc3Vlcy8zNDkKICAgICAgICBob3N0IDogWydiaXRjb2luZXIubmV0JywgJ2xpdGVjb2luZXIub
mV0J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxl
bWVudCgnZGl2I3Rlc3RlcicpOwogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjYWQtdG9wJyk
7CiAgICAgICAgfQogICAgICB9LAogICAgICBiaXRjb2luc19ueF90YyA6IHsKICAgICAgICAvLyBpc3N1ZT
oKICAgICAgICBob3N0IDogWydmcmVlYml0Y29pbnMubngudGMnLCAnZ2V0Yml0Y29pbnMubngudGMnXSwKI
CAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy5hZF9ibG9ja190ZXN0
ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9OwogICAgICA
gIH0KICAgICAgfSwKICAgICAgZnJlZWNvaW5zNF9tZSA6IHsKICAgICAgICAvLyBpc3N1ZToKICAgICAgIC
Bob3N0IDogWydmcmVlY29pbnM0Lm1lJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7CiAgI
CAgICAgICBBYWsudXcuY2hlY2sgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgIH07CiAgICAgICAgfQogICAgICB9LAogICAgICB0b3JyZW50X3R2X3J1IDogewogICAgICA
gIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy
81MzcKICAgICAgICBob3N0IDogWyd0b3JyZW50LXR2LnJ1J10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jd
GlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuY19Pb19BZHZlcnRfU2hvd24gPSB0cnVlOwogICAgICAgIH0K
ICAgICAgfSwKICAgICAgY3d0dl9jb20gOiB7CiAgICAgICAgLy8gYnk6IEthbGJhc2l0CiAgICAgICAgLy8
gcHVsbDogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9wdWxsLzc2MwogIC
AgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc
3Vlcy8zNDAKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2Nr
LWtpbGxlci9pc3N1ZXMvNzYyCiAgICAgICAgaG9zdCA6IFsnY3d0di5jb20nXSwKICAgICAgICBvbkFsd2F
5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy5DV1RWSXNBZEJsb2NraW5nID0gdW5kZWZpbm
VkOwogICAgICAgIH0KICAgICAgfSwKICAgICAgYmlsZF9kZSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0c
HM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1iaWxkCiAgICAgICAg
aG9zdCA6IFsnYmlsZC5kZSddLAogICAgICAgIG9uQmVmb3JlU2NyaXB0IDogZnVuY3Rpb24gKCkgewogICA
gICAgICAgcmV0dXJuIFt7CiAgICAgICAgICAgICAgY29udGFpbnMgOiAnaHR0cDovL3d3dy5iaWxkLmRlL3
dhL2xsL2JpbGQtZGUvdW5hbmdlbWVsZGV0LTQyOTI1NTE2LmJpbGQuaHRtbCcsCiAgICAgICAgICAgICAgZ
Xh0ZXJuYWwgOiBmYWxzZSwKICAgICAgICAgICAgICByZXBsYWNlIDogWydqYXZhc2NyaXB0JywgJ3ZvaWQo
MCk7J10uam9pbignOicpCiAgICAgICAgICAgIH0KICAgICAgICAgIF07CiAgICAgICAgfQogICAgICB9LAo
gICAgICBpbm5fY29faWwgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2
FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzUzMgogICAgICAgIGhvc3QgOiBbJ2lubi5jby5pbCddLAogI
CAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuYWRkU2NyaXB0KGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgdmFyIFRSQyA9IHt9OwogICAgICAgICAgICBUUkMuYmxvY2tlciA9IHsKICA
gICAgICAgICAgICBzdGF0ZXMgOiB7CiAgICAgICAgICAgICAgICBBQlBfREVURUNUSU9OX0RJU0FCTEVEID
ogLTIsCiAgICAgICAgICAgICAgICBBQlBfTk9UX0RFVEVDVEVEIDogMCwKICAgICAgICAgICAgICAgIEFCU
F9ERVRFQ1RFRCA6IDEKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGNyZWF0ZUJsb2NrRGV0ZWN0
aW9uRGl2IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUV
sZW1lbnQoImRpdiIpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgaXNCbG9ja0RldGVjdGVkT2
5EaXYgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICB9L
AogICAgICAgICAgICAgIGlzQmxvY2tEZXRlY3RlZE9uQ2xhc3NOYW1lcyA6IGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0QmxvY2t
lZFN0YXRlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIC
AgfQogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBiaGFza
2FyX2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJs
b2NrLWtpbGxlci9pc3N1ZXM/cT1iaGFza2FyCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmN
vbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9ZGl2eWFiaGFza2FyLmNvLmluCiAgICAgIC
AgaG9zdCA6IFsnYmhhc2thci5jb20nLCAnZGl2eWFiaGFza2FyLmNvLmluJ10sCiAgICAgICAgb25BbHdhe
XMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcub3BlblBvcFVwRm9yQnJlYWtQYWdlID0gZnVu
Y3Rpb24gKCkge307CiAgICAgICAgICBBYWsudXcuY2FuQUJQID0gdHJ1ZTsKICAgICAgICAgIEFhay51dy5
jYW5SdW5BZHMgPSB0cnVlOwogICAgICAgICAgQWFrLnV3LmNhbkNoZWNrQWRzID0gdHJ1ZTsKICAgICAgIC
B9CiAgICAgIH0sCiAgICAgIHR1cmthbmltZV90diA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9na
XRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNDQ2CiAgICAgICAgLy8gaXNzdWU6
IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEzOQogICAgICA
gIC8vIGlzc3VlOiBodHRwczovL2dyZWFzeWZvcmsub3JnL3RyL2ZvcnVtL2Rpc2N1c3Npb24vNDI4Mi8KIC
AgICAgICBob3N0IDogWyd0dXJrYW5pbWUudHYnXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpI
HsKICAgICAgICAgIEFhay51dy5hZGJsb2NrYmxvY2sgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICAgIEFh
ay51dy5CbG9rS29udHJvbCA9IHt9OwogICAgICAgIH0KICAgICAgfSwKICAgICAgd3RmYml0X2NoIDogewo
gICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2
lzc3Vlcy80MDcKICAgICAgICBob3N0IDogWyd3dGZiaXQuY2gnXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1b
mN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy53cml0ZUhUTUxhc0pTID0gZnVuY3Rpb24gKCkge307CiAg
ICAgICAgfQogICAgICB9LAogICAgICBhcmFuenVsbGFfaXQgOiB7CiAgICAgICAgLy8gYnk6IFJvYm90ZXg
KICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci
9pc3N1ZXM/cT1hcmFuenVsbGEuaXQKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20ve
U1NNllneFcKICAgICAgICBob3N0IDogWydhcmFuenVsbGEuaXQnXSwKICAgICAgICBvblN0YXJ0IDogZnVu
Y3Rpb24oKSB7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoJyNhYnQxICsgU1RZTEUgKyBkaXZbaWRdW2NsYXN
zXSB7ZGlzcGxheTpub25lO30nKTsKICAgICAgICB9LAogICAgICAgIG9uQmVmb3JlU2NyaXB0IDogZnVuY3
Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIFt7CiAgICAgICAgICAgICAgY29udGFpbnMgOiAnbmF2aWdhd
G9yLnVzZXJBZ2VudHx8bmF2aWdhdG9yLnZlbmRvcnx8d2luZG93Lm9wZXJhJywKICAgICAgICAgICAgICBl
eHRlcm5hbCA6IGZhbHNlLAogICAgICAgICAgICAgIHJlbW92ZSA6IHRydWUKICAgICAgICAgICAgfQogICA
gICAgICAgXTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIG5kdHZfY29tIDogewogICAgICAgIC8vIG5vdG
U6IGNhblJ1bkFkcyBpbnZlcnRlZCB2YWx1ZQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb
20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPW5kdHYuY29tCiAgICAgICAgLy8gdGVzdDog
aHR0cDovL3Rpbnl1cmwuY29tL2hjZm5jZHYKICAgICAgICBob3N0IDogWyduZHR2LmNvbSddLAogICAgICA
gIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0UmVhZE9ubHkoJ19fX3BfX3AnLC
AxKTsKICAgICAgICAgIEFhay5zZXRSZWFkT25seSgnZ2V0Tm9Ub3BMYXRlc3ROZXdzJywgZnVuY3Rpb24gK
Ckge30pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgbGVzZWNob3NfZnIgOiB7CiAgICAgICAgLy8gUmVl
aywgR2l3YXl1bWUKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJ
sb2NrLWtpbGxlci9pc3N1ZXM/cT1sZXNlY2hvcy5mcgogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3
RlYmluLmNvbS9DTU04V0dMagogICAgICAgIGhvc3QgOiBbJ2xlc2VjaG9zLmZyJywgJ2xlc2VjaG9zLmNvb
SddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbigpIHsKICAgICAgICAgIEFhay5hZGRTY3JpcHQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgIE9iamVjdC5
kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICJjaGVja0FkQmxvY2siLCB7CiAgICAgICAgICAgICAgdmFsdWU6IG
Z1bmN0aW9uKCkge30sCiAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwKICAgICAgICAgICAgI
CB3cml0YWJsZTogZmFsc2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9LAogICAg
ICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmNhbGxfQWQgPSAxOwogICA
gICAgICAgQWFrLnV3LnBheXdhbGxfYWRibG9ja19hcnRpY2xlID0gZnVuY3Rpb24gKCkge307CiAgICAgIC
AgfQogICAgICB9LAogICAgICBiaXR2aXNpdHNfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL
2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8yNjYKICAgICAgICBob3N0IDog
WydiaXR2aXNpdHMuY29tJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB
BYWsudXcuYmxvY2tBZGJsb2NrVXNlciA9IGZ1bmN0aW9uICgpIHt9OwogICAgICAgIH0KICAgICAgfSwKIC
AgICAgZXhyYXBpZGxlZWNoX2luZm8gOiB7CiAgICAgICAgLy8gYnk6IEFsZXhhbmRlcjI1NSwgUmVlaywgR
2l3YXl1bWUKICAgICAgICAvLyBwYXRjaDogaHR0cDovL3Bhc3RlYmluLmNvbS9RNjY0ZGlRMgogICAgICAg
IC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9
xPWV4cmFwaWRsZWVjaAogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS81ZTI3c3lqQQ
ogICAgICAgIGhvc3QgOiBbJ2V4cmFwaWRsZWVjaC5pbmZvJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0a
W9uICgpIHsKCiAgICAgICAgICB2YXIgdG9tb3Jyb3cgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgdG9tb3Jy
b3cuc2V0RGF0ZSh0b21vcnJvdy5nZXREYXRlKCkgKyAxKTsKCiAgICAgICAgICAvLyBwcmV2ZW50IHBvcHV
wCiAgICAgICAgICBBYWsuc2V0Q29va2llKCdwb3BjYXNocHVDYXAnLCAxKTsKICAgICAgICAgIEFhay5zZX
RDb29raWUoJ3BvcGNhc2hwdScsIDEpOwogICAgICAgICAgQWFrLnNldENvb2tpZSgnbm9wb3BhdGFsbCcsI
HRvbW9ycm93LmdldFRpbWUoKS50b1N0cmluZygpKTsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ25vYWR2
dGRheScsIDApOwogICAgICAgICAgLy9BYWsuc2V0Q29va2llKCdidl9EU0tza2Rja19zMWQnLCAnYnZEU0t
za2Rja3MxZCcpOwoKICAgICAgICAgIC8vIGhpZGUgbm90aWNlCiAgICAgICAgICBBYWsuYWRkU3R5bGUoJ2
Rpdi5hbGVydC5hbGVydC1kYW5nZXIubGVhZCB7b3BhY2l0eTowO30nKTsKICAgICAgICAgIAogICAgICAgI
CAgLy8gcHJldmVudCByZWRpcmVjdCB0byB2ZXJpZnkgcGFnZQogICAgICAgICAgQWFrLnNldFJlYWRPbmx5
KCdiZHZibnJfcGlkJywgW10pOwogICAgICAgICAgQWFrLnNldFJlYWRPbmx5KCdQb3BBZHMnLCAxKTsKCiA
gICAgICAgICBBYWsuYWRkU2NyaXB0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uICgpIH
sKICAgICAgICAgICAgICAvLyBwcmV2ZW50IHBvcHVwCiAgICAgICAgICAgICAgd2luZG93Lm9wZW4gPSBmd
W5jdGlvbiAoKSB7fTsKCiAgICAgICAgICAgICAgLy8gcHJldmVudCByZWRpcmVjdCB0byB2ZXJpZnkgcGFn
ZQogICAgICAgICAgICAgIHZhciBmcmFtZTEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTs
KICAgICAgICAgICAgICBmcmFtZTEuc3JjID0gJ2h0dHA6Ly9iZGZybS5iaWR2ZXJ0aXNlci5jb20vQmlkVm
VydGlzZXIuZGJtP3BpZD0zODM4NjUmYmlkPTE3Mzc0MTgmUkQ9JzsKICAgICAgICAgICAgICBmcmFtZTEua
WQgPSAnYmR2aSc7CiAgICAgICAgICAgICAgZnJhbWUxLnN0eWxlID0gJ2Rpc3BsYXk6bm9uZSc7CiAgICAg
ICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGZyYW1lMSk7CiAgICAgICA
gICAgIH0pKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHZpcGxlYWd1ZV9kb2
1haW5zIDogewogICAgICAgIC8vIG5vdGU6IGFsc28ga2lsbGVkIGJ5IEFha0xpc3QKICAgICAgICAvLyBpc
3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT12aXBi
b3gKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGx
lci9pc3N1ZXM/cT12aXBsZWFndWUKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vTk
VSVnpIelMKICAgICAgICBob3N0IDogWyJ2aXBsZWFndWUuaXMiLCAidmlwbGVhZ3VlLndzIiwgInZpcGxlY
Wd1ZS50diIsICJ2aXBsZWFndWUuc2UiLCAidmlwbGVhZ3VlLnR2IiwgInZpcGxlYWd1ZS5tZSIsICJ2aXBs
ZWFndWUubW9iaSIsICJ2aXBsZWFndWUuY28iLCAidmlwbGVhZ3VlLnN4IiwgInZpcGxlYWd1ZS5jaCIsICJ
2aXBib3gudHYiLCAidmlwYm94LmNvIiwgInZpcGJveC5iaXoiLCAidmlwYm94LnN4IiwgInZpcGJveC5ldS
IsICJ2aXBib3guc28iLCAidmlwYm94Lm51IiwgInZpcGJveHNhLmNvIiwgInN0cmlrZW91dC5jbyIsICJzd
HJpa2VvdXQubWUiLCAiaG9tZXJ1bi5yZSIsICJ2aXBib3h0di5jbyIsICJ2aXBhcHAubWUiXSwKICAgICAg
ICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmlFeGlzdCA9IHRydWU7CiAgICA
gICAgICBBYWsuc2V0Q29va2llKCd4Y2xzdmlwJywgMSk7CiAgICAgICAgICBBYWsuYWRkU3R5bGUoIi52aX
BfMDUyeDAwMyB7IGhlaWdodDogMjUwcHg7IH0iKTsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiLnZpcF8wO
Xg4MjcgeyBoZWlnaHQ6IDI2cHg7IH0iKTsKICAgICAgICAgIEFhay5hZGRTdHlsZSgiI292ZXJsYXkgeyBk
aXNwbGF5OiBub25lOyB9Iik7CiAgICAgICAgfQogICAgICB9LAogICAgICB6b29tdHZfbWUgOiB7CiAgICA
gICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdW
VzP3E9em9vbXR2Lm1lCiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL200ekFYR2N3C
iAgICAgICAgaG9zdCA6IFsnem9vbXR2Lm1lJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICBBYWsudXcuaWF4cEVuYWJsZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgfSwKICAgICA
gdmdfbm8gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG
9jay1raWxsZXIvaXNzdWVzLzI5MgogICAgICAgIC8vICthYnAgcnVsZQogICAgICAgIGhvc3QgOiBbJ3ZnL
m5vJywgJ2UyNC5ubyddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFr
LnV3Ll9fQUJfXyA9IGZ1bmN0aW9uICgpIHt9OwogICAgICAgIH0KICAgICAgfSwKICAgICAgcG9ybnZlX2N
vbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLW
tpbGxlci9pc3N1ZXMvOTQ3CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tLzdUUFBrc
TEyCiAgICAgICAgaG9zdCA6IFsncG9ybnZlLmNvbSddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY3Rpb24g
KCkgewogICAgICAgICAgQWFrLnV3LmFkeGp3dXBkYXRlID0gMTsKICAgICAgICB9CiAgICAgIH0sCiAgICA
gIGxvbF9tb2FfdHcgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudG
ktYWRibG9jay1raWxsZXIvaXNzdWVzLzExMTQKICAgICAgICBob3N0IDogWydsb2wubW9hLnR3J10sCiAgI
CAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFNjcmlwdChmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgIHZhciBNb2FPYmogPSBNb2FPYmogfHwge307CiAgICAgICAgICAgIE1vYU9iai5
hZCA9IE1vYU9iai5hZCB8fCB7fTsJCQkKICAgICAgICAgICAgTW9hT2JqLmFkLmhhc0FkYmxvY2sgPSBmdW
5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9OwogICAgICAgI
CAgICBNb2FPYmouYWQuY2hlY2tBQlAgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBtdWx
0aXVwX29yZyA6IHsKICAgICAgICAvLyBieTogV2F0aWxpbgogICAgICAgIC8vIG5vdGU6IGFsdGVybmF0aX
ZlIHNvbHV0aW9uCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRib
G9jay1raWxsZXIvaXNzdWVzP3E9bXVsdGl1cC5vcmcKICAgICAgICBob3N0IDogWydtdWx0aXVwLm9yZydd
LAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0Q29va2llKCd2aXN
pdCcsIDEpOyAvLyBwcmV2ZW50IHBvcHVwCiAgICAgICAgICBBYWsuc2V0UmVhZE9ubHkoJ2hpJywgZnVuY3
Rpb24gKCkge30pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGFpbHliaXRjb2luc19vcmcgOiB7CiAgI
CAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNz
dWVzLzEwNwogICAgICAgIGhvc3QgOiBbJ2RhaWx5Yml0Y29pbnMub3JnJ10sCiAgICAgICAgb25JZGxlIDo
gZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJy5hZC1pbWcnKTsKICAgICAgIC
B9CiAgICAgIH0sCiAgICAgIGtvemFjemVrX3plYmVya2EgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzO
i8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzQxNAogICAgICAgIGhvc3Qg
OiBbJ2tvemFjemVrLnBsJywgJ3plYmVya2EucGwnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCk
gewogICAgICAgICAgQWFrLnNldENvb2tpZSgnYWJsYycsIDEpOwogICAgICAgICAgQWFrLnNldENvb2tpZS
gnY29va2llX3BvbGljeScsIDEpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgc3Bhbmt3aXJlX3NpdGVzI
DogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2ls
bGVyL2lzc3Vlcy84ODcKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vVEZCMWR0Z2I
KICAgICAgICBob3N0IDogWydzcGFua3dpcmUuY29tJywgJ2tlZXptb3ZpZXMuY29tJywgJ2V4dHJlbWV0dW
JlLmNvbScsICdtb2Zvc2V4LmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgI
CAgICBBYWsuc2V0Q29va2llKCJhYkNsb3NlZCIsICJ0cnVlIik7CiAgICAgICAgICBBYWsuc2V0Q29va2ll
KCJoaWRlX2FkX21zZyIsICIxIik7CiAgICAgICAgfQogICAgICB9LAogICAgICB5b3Vwb3JuX25ldHdvcms
gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raW
xsZXIvaXNzdWVzLzg4NwogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS9URkIxZHRnY
gogICAgICAgIGhvc3QgOiBbJ3lvdXBvcm4uY29tJywgJ3lvdXBvcm5nYXkuY29tJ10sCiAgICAgICAgb25T
dGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRDb29raWUoImFkYmxvY2tfbWVzc2FnZSI
sICJjbG9zZWQiKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGNpdGF0aW9ubWFjaGluZV9uZXQgOiB7Ci
AgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIva
XNzdWVzP3E9Y2l0YXRpb25tYWNoaW5lLm5ldAogICAgICAgIGhvc3QgOiBbJ2NpdGF0aW9ubWFjaGluZS5u
ZXQnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnNldENvb2tpZSg
ic2JtX2NtX2NpdGF0aW9ucyIsIDApOwogICAgICAgIH0KICAgICAgfSwgICAgICAKICAgICAgcHNhcmlwc1
9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9ja
y1raWxsZXIvaXNzdWVzLzE1MwogICAgICAgIGhvc3QgOiBbJ3BzYXJpcHMuY29tJ10sCiAgICAgICAgb25T
dGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRCYWl0RWxlbWVudCgnZGl2I2FkdmVydCc
pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZXh0cmF0b3JyZW50X2RvbWFpbnMgOiB7CiAgICAgICAgaG
9zdCA6IFsnZXh0cmF0b3JyZW50LmNjJywgJ2V4dHJhdG9ycmVudC5jb20nXSwKICAgICAgICBvblN0YXJ0I
DogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy8gcHJldmVudCBwb3B1cAogICAgICAgICAgLy8gc291cmNl
IGFyZSBvYmZ1c2NhdGVkIGluIGV4dGVybmFsIGpzCiAgICAgICAgICBBYWsuc2V0Q29va2llKCdwcHVfZGV
sYXknLCAxKTsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ3BwdV9tYWluJywgMSk7CiAgICAgICAgICBBYW
suc2V0Q29va2llKCdwcHVfc3ViJywgMSk7CiAgICAgICAgICBBYWsuc2V0Q29va2llKCdwcHVfc2hvd19vb
icsIDEpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgdG55X2N6IDogewogICAgICAgIGhvc3QgOiBbJ3Ru
eS5jeicsICdwYXN0ZWQuY28nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICA
gLy8gcHJldmVudCBwb3B1cAogICAgICAgICAgQWFrLnNldENvb2tpZSgnX18ucG9wdW5kZXJDYXAnLCAxKT
sKICAgICAgICAgIEFhay5zZXRDb29raWUoJ19fLnBvcHVuZGVyJywgMSk7CiAgICAgICAgfQogICAgICB9L
AogICAgICBjbHViZWRvaGFyZHdhcmVfY29tX2JyIDogeyAvLyB0d28gYW50aWFkYmxvY2sKICAgICAgICBo
b3N0IDogWydjbHViZWRvaGFyZHdhcmUuY29tLmJyJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICg
pIHsKICAgICAgICAgIGlmIChBYWsuY29udGFpbnMobG9jYXRpb24uaG9zdCwgJ2ZvcnVtJykpIHsKICAgIC
AgICAgICAgLy8gU29sdXRpb24gMQogICAgICAgICAgICBBYWsuYWRkU3R5bGUoIiNiYW5uZXIsIHNjcmlwd
CB7IGhlaWdodDogNTFweDsgfSIpOwogICAgICAgICAgICBBYWsuYWRkQmFpdEVsZW1lbnQoJ2RpdiNiYW5u
ZXInKTsKICAgICAgICAgIH0gZWxzZSB7IC8vIFdlYnNpdGUKICAgICAgICAgICAgLy8gU29sdXRpb24gMQo
gICAgICAgICAgICBBYWsuYWRkQmFpdEVsZW1lbnQoJ2Rpdi5iYW5uZXJfdG9wbycpOwogICAgICAgICAgfQ
ogICAgICAgIH0sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgaWYgKEFhay5jb
250YWlucyhsb2NhdGlvbi5ob3N0LCAnZm9ydW0nKSkgewogICAgICAgICAgICAvLyBTb2x1dGlvbiAyCiAg
ICAgICAgICAgIEFhay51dy5hZGRCbG9ja2luZy5oaWRlKCk7CiAgICAgICAgICAgIEFhay51dy5hZGRCbG9
ja2luZy5raWxsKCk7CiAgICAgICAgICB9IGVsc2
UgeyAvLyBXZWJzaXRlCiAgICAgICAgICAgIC8vIFNvbHV0aW9uIDIKICAgICAgICAgICAgZG9jdW1lbnQuY
m9keS5pZCA9ICcnOwogICAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVudCgnLmFkYmxvY2snKTsKICAgICAg
ICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRlYnJhc3RhZ2lfY29tIDogewogICAgICAgIGhvc3Q
gOiBbJ2RlYnJhc3RhZ2kuY29tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgIC
AgQWFrLnJlbW92ZUVsZW1lbnQoJyNzdHAtbWFpbicpOwogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJ
yNzdHAtYmcnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRkbGZyZW5jaF9vcmcgOiB7CiAgICAgICAg
aG9zdCA6IFsnZGRsZnJlbmNoLm9yZyddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICA
gICAgIC8vIEZpeCBidWcgZGlzcGxheSBjb250ZW50CiAgICAgICAgICBBYWsuc2V0RWxlbWVudCgnI2RsZS
1jb250ZW50IC5kLWNvbnRlbnQnLCB7CiAgICAgICAgICAgICdjbGFzcycgOiAnJwogICAgICAgICAgfSk7C
iAgICAgICAgICBBYWsuc2V0RWxlbWVudCgnI2NvbnRlbnQnLCB7CiAgICAgICAgICAgICdpZCcgOiAnJwog
ICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBtZWdhZGVicmlkX2V1IDogewogICAgICA
gIGhvc3QgOiBbJ21lZ2EtZGVicmlkLmV1J10sCiAgICAgICAgb25FbmQgOiBmdW5jdGlvbiAoKSB7CiAgIC
AgICAgICAvLyBBY3RpdmF0ZSBidXR0b24gZGVicmlkCiAgICAgICAgICBBYWsuc2V0RWxlbWVudCgnLnJlY
WxidXR0b24nLCB7CiAgICAgICAgICAgICdvbmNsaWNrJyA6ICcnLAogICAgICAgICAgICAndHlwZScgOiAn
c3VibWl0JwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBzbGlkZXBsYXllcl9kb21
haW5zIDogewogICAgICAgIC8vIGJ5OiBBbGV4YW5kZXIyNTUKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly
9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTMzMwogICAgICAgIC8vIGlzc
3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy81MTUKICAg
ICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N
1ZXMvMjk2CiAgICAgICAgLy8gZGVtbzogaHR0cDovL3NsaWRlcGxheWVyLmZyL3NsaWRlLzEzMDQwMjYvIw
ogICAgICAgIGhvc3QgOiBbJ3NsaWRlcGxheWVyLionXSwKICAgICAgICBvbkVuZCA6IGZ1bmN0aW9uICgpI
HsKCiAgICAgICAgICAvLyBEaXNhYmxlIGFudGktYWRibG9ja2VyCiAgICAgICAgICBBYWsudXcuZm9yY2Vf
cmVtb3ZlX2FkcyA9IHRydWU7CgogICAgICAgICAgLy8gQ2lyY3VtdmVudCAic2hhcmUgdG8gZG93bmxvYWQ
iIHJ1bGUKICAgICAgICAgIEFhay5hZGRTY3JpcHQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgc2
xpZGVfaWQgPSB3aW5kb3cuZ2V0X2N1cnJlbnRfc2xpZGVfaWQoKTsKICAgICAgICAgICAgdmFyIHNsaWRlX
3NydiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXJfZnJhbWUiKS5zcmMuc3BsaXQoIi8iKVsz
XTsKICAgICAgICAgICAgdmFyIHRpbWUgPSA4NjQwMCArIE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDA
pOwogICAgICAgICAgICB2YXIgc2VjcmV0ID0gZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5zdHJ0cih3aW
5kb3cuTUQ1LmJhc2U2NCgic2VjcmV0X3ByZXZlZCBzbGlkZXBsYXllciBuZXZlciBzb2x2ZWQgIiArIHRpb
WUgKyBzbGlkZV9pZCArICIucHB0IiksICIrLyIsICItICIpKTsKCiAgICAgICAgICAgIHZhciB1cmwgPSAi
aHR0cDovL3BsYXllci5zbGlkZXBsYXllci5vcmcvZG93bmxvYWQvIiArIHNsaWRlX3NydiArICIvIiArIHN
saWRlX2lkICsgIi8iICsgc2VjcmV0ICsgIi8iICsgdGltZSArICIvIiArIHNsaWRlX2lkICsgIi5wcHQiOw
ogICAgICAgICAgICB2YXIgbGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJhLmRvd25sb2FkX
2xpbmsiKTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5rcy5sZW5ndGg7IGkrKykgewog
ICAgICAgICAgICAgIC8qIFJlbW92ZSBvcmlnaW5hbCAic2hhcmUgdG8gZG93bmxvYWQiIHBvcHVwIGV2ZW5
0IGxpc3RlbmVyICovCiAgICAgICAgICAgICAgdmFyIGV2ZW50cyA9ICQuX2RhdGEobGlua3NbaV0pLmV2ZW
50cy5jbGljazsKICAgICAgICAgICAgICBldmVudHMuc3BsaWNlKDAsIGV2ZW50cy5sZW5ndGgpOwoKICAgI
CAgICAgICAgICAvKiBTZXQgbm9ybWFsIGxpbmsgaHJlZiBpbnN0ZWFkICovCiAgICAgICAgICAgICAgbGlu
a3NbaV0uaHJlZiA9IHVybDsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CgogICAgICAgIH0KICAgICA
gfSwKICAgICAgYm9rZXBzcG90X2NvbSA6IHsKICAgICAgICBob3N0IDogWydib2tlcHNwb3QuY29tJ10sCi
AgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIEhpZGUgRGlzY2xhaW1lcgogI
CAgICAgICAgQWFrLnNldENvb2tpZSgnaGlkZURpYWxvZycsICdoaWRlJyk7CiAgICAgICAgfSwKICAgICAg
ICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBSZW1vdmUgRGlzYWJsZSBBZEJsb2NrCiA
gICAgICAgICBBYWsucmVtb3ZlRWxlbWVudCgnI3R1cGlrbGFuJyk7CiAgICAgICAgfQogICAgICB9LAogIC
AgICBwaWNsb2FkX2NvbSA6IHsKICAgICAgICBob3N0IDogWydwaWNsb2FkLm9yZyddLAogICAgICAgIG9uU
3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0Q29va2llKCdwbF9hZGJsb2NrZXInLCBm
YWxzZSk7CiAgICAgICAgfSwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWs
udXcuYWRzX2xvYWRlZCA9IHRydWU7CiAgICAgICAgICBBYWsudXcuaW1hZ2VBZHMgPSBmYWxzZTsKICAgIC
AgICAgIEFhay5yZW1vdmVFbGVtZW50KCdkaXZbb25jb250ZXh0bWVudT0icmV0dXJuIGZhbHNlOyJdJyk7C
iAgICAgICAgfQogICAgICB9LAogICAgICBmcmVlemVkb3dubG9hZF9jb20gOiB7CiAgICAgICAgaG9zdCA6
IFsnZnJlZXplZG93bmxvYWQuY29tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICA
gICAgaWYgKC9mcmVlemVkb3dubG9hZC5jb21cL2Rvd25sb2FkXC8vLnRlc3QobG9jYXRpb24uaHJlZikpIH
sKICAgICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJ2JvZHkgPiBkaXZbaWRdJyk7CiAgICAgICAgICB9C
iAgICAgICAgfQogICAgICB9LAogICAgICBtb25uc3V0b2dhdHlhX2NvbSA6IHsKICAgICAgICAvLyBpc3N1
ZTogUE0KICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vMUx3NjBoNmsKICAgICAgICB
ob3N0IDogWydtb25uc3V0b2dhdHlhLmNvbSddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKIC
AgICAgICAgIEFhay5hZGRTdHlsZSgiI3NpdGUtYm94IHtkaXNwbGF5OmJsb2NrO30iKTsKICAgICAgICAgI
EFhay5yZW1vdmVFbGVtZW50KCcjZm9yLWFkLWJsb2NrZXInKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAg
IHJhcGlkOF9jb20gOiB7CiAgICAgICAgaG9zdCA6IFsncmFwaWQ4LmNvbSddLAogICAgICAgIG9uSWRsZSA
6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KCdkaXYuYmFja2sgKyAjYmxjb2
tNemcnKTsKICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KCdkaXYuYmFja2snKTsKICAgICAgICB9CiAgI
CAgIH0sCiAgICAgIHR1cmtkb3duX2NvbSA6IHsKICAgICAgICBob3N0IDogWyd0dXJrZG93bi5jb20nXSwK
ICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyByZW1vdmUgZmFjZWJvb2sgYm9
4CiAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVudCgnI2R1eXVydScpOwogICAgICAgIH0KICAgICAgfSwKIC
AgICAgZmlsbW92aXppamFfZG9tYWlucyA6IHsKICAgICAgICBob3N0IDogWydmaWxtb3ZpemlqYS5tZScsI
CdmaWxtb3ZpemlqYS5jb20nLCAnZmlsbW92aXppamEuaW4nLCAnZmlsbW92aXppamEubmV0J10sCiAgICAg
ICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLyoKICAgICAgICAgIHZhciBkID0gbmV3IER
hdGUoKTsKICAgICAgICAgIHZhciB3ZWVrZGF5ID0gWyJTdW5kYXkiLCAiTW9uZGF5IiwgIlR1ZXNkYXkiLC
AiV2VkbmVzZGF5IiwgIlRodXJzZGF5IiwgIkZyaWRheSIsICJTYXR1cmRheSJdOwogICAgICAgICAgdmFyI
G4gPSB3ZWVrZGF5W2QuZ2V0RGF5KCldOwogICAgICAgICAgQWFrLnNldEVsZW1lbnQoJyMnICsgbiwgewog
ICAgICAgICAgaHRtbCA6ICcnCiAgICAgICAgICB9KTsKICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KCc
jJyArIG4pOwogICAgICAgICAgICovCiAgICAgICAgfQogICAgICB9LAogICAgICBoYWNraW50b3NoX3pvbm
UgOiB7CiAgICAgICAgLy8gYnk6IEFsZXhhbmRlcjI1NQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpd
Gh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPWhhY2tpbnRvc2guem9uZQogICAg
ICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlMi5vcmcvRG5COU9qNGYKICAgICAgICBob3N0IDogWydoYWN
raW50b3NoLnpvbmUnXSwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgdmFyIG
hlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdOwogICAgICAgICAgLy8gR
mFrZSBHb29nbGUgYWQgZnJhbWUgY29udGVudAogICAgICAgICAgdmFyIGFkMSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucyIpOwogICAgICAgICAgYWQxLmNsYXNzTmFtZSA9ICJhZHNieWdvb2dsZSI7CiAgICA
gICAgICBhZDEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkFBSyIpKTsKICAgICAgIC
AgIGhlYWQuaW5zZXJ0QmVmb3JlKGFkMSwgaGVhZC5jaGlsZE5vZGVzWzBdKTsKCiAgICAgICAgICAvKgogI
CAgICAgICAgLy8gRmFrZSBDbGVhbk15TWFjIGFkIGZyYW1lIHNpemUKICAgICAgICAgIHZhciBhZDIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgIGFkMi5pZCAgPSAibnljdWhldmdxaSI
7CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYWQyLndyYXBwZWRKU09iamVjdCwgJ2NsaWVudE
hlaWdodCcsIHt2YWx1ZTogMX0pOwogICAgICAgICAgaGVhZC5pbnNlcnRCZWZvcmUoYWQyLCBoZWFkLmNoa
WxkTm9kZXNbMF0pOwogICAgICAgICAgICovCgogICAgICAgICAgdmFyIGVsZW1zID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnLmFkc2Vuc2VncmV5Jyk7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV
sZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbW
VudCgiaW1nIik7CiAgICAgICAgICAgIG5vZGUuc3JjID0gQWFrLmltZ0JhaXQ7CiAgICAgICAgICAgIGVsZ
W1zW2ldLmFwcGVuZENoaWxkKG5vZGUpOwogICAgICAgICAgfQoKICAgICAgICB9LAogICAgICAgIG9uQmVm
b3JlU2NyaXB0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIFt7CiAgICAgICAgICAgICAgY29
udGFpbnMgOiAnZGlzYWJsZSBBREJsb2NrIGNvbXBsZXRlbHknLAogICAgICAgICAgICAgIGV4dGVybmFsID
ogZmFsc2UsCiAgICAgICAgICAgICAgcmVtb3ZlIDogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdO
wogICAgICAgIH0KICAgICAgfSwKICAgICAgcHJpdmF0ZWluc3RhX2NvbSA6IHsKICAgICAgICBob3N0IDog
Wydwcml2YXRlaW5zdGEuY29tJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICA
gLy8gKyBhYnAgcnVsZQogICAgICAgICAgQWFrLnV3LmRvbnRfc2Nyb2xsID0gZmFsc2U7CiAgICAgICAgIC
BBYWsucmVtb3ZlRWxlbWVudCgiI292ZXJsYXlfZGl2Iik7CiAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVud
CgiI292ZXJsYXlfbWFpbl9kaXYiKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHJpc2lrb2dlc3VuZGhl
aXRfZGUgOiB7CiAgICAgICAgaG9zdCA6IFsncmlzaWtvLWdlc3VuZGhlaXQuZGUnXSwKICAgICAgICBvbkl
kbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgIC
AgICAgd2luZG93LnN0b3AoKTsKICAgICAgICAgIH0sIDUwMDApOwogICAgICAgIH0KICAgICAgfSwKICAgI
CAgb25lcGxheWxpc3RfZXVfcG4gOiB7CiAgICAgICAgaG9zdCA6IFsnb25lcGxheWxpc3QuZXUucG4nXSwK
ICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBraWxsIHBvcHVuZGVyCiAgICA
gICAgICBBYWsudXcubWFrZVBvcHVuZGVyID0gZmFsc2U7CiAgICAgICAgfQogICAgICB9LAogICAgICBvbm
1lZGFfZGUgOiB7CiAgICAgICAgLy8gbm90ZTogc2NyaXB0IG9iZnVzY2F0ZWQgbGluZSAxMTEwCiAgICAgI
CAgLy8gaXNzdWU6IGh0dHBzOi8vZ3JlYXN5Zm9yay5vcmcvZm9ydW0vZGlzY3Vzc2lvbi84NTc2CiAgICAg
ICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWV
zLzEwNjcKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vcWY0NmJOM3oKICAgICAgIC
AvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vUndIeUYwTkwKICAgICAgICBob3N0IDogWydvbm1lZ
GEuZGUnXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy4kQURQ
ID0gdHJ1ZTsKICAgICAgICAgIEFhay51dy5zYXNfY2FsbEFkID0gZnVuY3Rpb24gKCkge307CiAgICAgICA
gICBBYWsudXcuc2FzX2NhbGxBZHMgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICB9CiAgICAgIH0sCiAgIC
AgIHR1cmJvZGVicmlkZXVyX2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL
3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTk5CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8v
Z2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzU2MwogICAgICAgIC8vIGlzc3V
lOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy81MjYKICAgIC
AgICBob3N0IDogWyd0dXJib2RlYnJpZGV1ci5jb20nXSwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoK
SB7CiAgICAgICAgICBBYWsuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgIHRhZyA6ICdkaXYnLAogICAg
ICAgICAgICBpZCA6ICdwdWJkaXJlY3RlJywKICAgICAgICAgICAgaHRtbCA6ICc8aW1nICBzcmM9IicgKyB
BYWsuaW1nQmFpdCArICciLz48YSAgaHJlZj0iIyI+Jm5ic3A7PC9hPicsCiAgICAgICAgICAgIGFwcGVuZC
A6ICdib2R5JwogICAgICAgICAgfSk7CiAgICAgI
CAgfQogICAgICB9LAogICAgICByb2NrZmlsZV9ldSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9n
aXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTI1NgogICAgICAgIGhvc3QgOiB
bJ3JvY2tmaWxlLmV1J10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLm
NyZWF0ZUVsZW1lbnQoewogICAgICAgICAgICB0YWcgOiAnaWZyYW1lJywKICAgICAgICAgICAgc3JjIDogJ
2Fib3V0OmJsYW5rJywKICAgICAgICAgICAgc3R5bGUgOiAndmlzaWJpbGl0eTpoaWRkZW47JywKICAgICAg
ICAgICAgYXBwZW5kIDogJ2JvZHknCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGx
pbmtidWNrc19hbnRpYWRibG9jayA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3
JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvOTMyCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ
2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzQ2OQogICAgICAgIC8vIGlzc3Vl
OiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8yNzcKICAgICA
gICAvLyB2MzogaHR0cDovL3Bhc3RlYmluLmNvbS8wZ2g4TE1HSAogICAgICAgIC8vIG5vdGU6IG5vIHNvbH
V0aW9uLCBhbnRpLWFkYmxvY2sgZGlmZmljdWx0IHRvIGJ5cGFzcyAtLT4gaHR0cDovL3Bhc3RlYmluLmNvb
S8xTlJxN1d2WgogICAgICAgIGhvc3QgOiBbJ2xpbmtidWNrcy5jb20nLCAnbWluaXVybHMuY28nLCAncGlj
YnVja3MuY29tJywgJ3BpY3R1cmVzZXRjLm5ldCcsICdwbGFjZXBpY3R1cmVzLmNvbScsICdwb29udG93bi5
uZXQnLCAncXFjLmNvJywgJ3F2dm8uY29tJywgJ3JlYWxmaWxlcy5uZXQnLCAncnFxLmNvJywgJ3NlcmlvdX
NkZWFscy5uZXQnLCAnc2VyaW91c2ZpbGVzLmNvbScsICdzZXJpb3VzdXJscy5jb20nLCAnc2V4cGFsYWNlL
mdzJywgJ3RoZXNlYmxvZ3MuY29tJywgJ3RoZXNlZmlsZXMuY29tJywgJ3RoZXNlZm9ydW1zLmNvbScsICd0
aG9zZWdhbGxlcmllcy5jb20nLCAndGlueWJ1Y2tzLm5ldCcsICd0aW55bGlua3MuY28nLCAndG5hYnVja3M
uY29tJywgJ3R1YmV2aXJhbC5jb20nLCAndWJlcnBpY3ouY29tJywgJ3ViZXJ2aWR6LmNvbScsICd1YnVja3
MubmV0JywgJ3VnYWxsZXJpZXMubmV0JywgJ3VsdHJhZmlsZXMubmV0JywgJ3VybGJlYXQubmV0JywgJ3Vyb
HB1bHNlLm5ldCcsICd3aGFja3l2aWR6LmNvbScsICd5b3VmYXAubWUnLCAneXl2LmNvJywgJ3p4eG8ubmV0
JywgJ3pmZi5jbycsICdsaW5rYnVja3NkbnMuY28nLCAnbWluaXVybHMuY29tJywgJ2R5by5ncycsICdnb25
ldmlyYWwuY29tJywgJ2VhZnlmc3VoLm5ldCcsICdzYXNvbnRud2MubmV0J10sCiAgICAgICAgb25TdGFydC
A6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIGRvIG5vdGhpbmcuLi4KICAgICAgICB9CiAgICAgIH0sC
iAgICAgIGxpbmtidWNrc192aXNpdHNjcmlwdCA6IHsKICAgICAgICAvLyBpc3N1ZToKICAgICAgICBob3N0
IDogWydyZWZlcmVuY2VtZWdhLmNvbScsICdmcGFiZC5jb20nLCAnY3JhY2thY2MuY29tJ10sCiAgICAgICA
gb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIFNraXAgdmlzaXRTY3JpcHQgd2hlbiBzaX
RlIHVzZSBDbG91ZEZsYXJlIFJvY2tldCBTY3JpcHQKICAgICAgICAgIEFhay5zZXRDb29raWUoJ19sYkdhd
GVQYXNzZWQnLCB0cnVlKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGxpbmtfdGwgOiB7CiAgICAgICAg
Ly8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E
9bGluay50bAogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dyZWFzeWZvcmsub3JnL2ZyL2ZvcnVtL2Rpc2
N1c3Npb24vODQzNwogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS8xTWtDbm1MNwogI
CAgICAgIGhvc3QgOiBbJ2xpbmsudGwnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAg
ICAgICAgQWFrLmFkZFN0eWxlKCcuYWRibG9jayB7IGhlaWdodDoxcHg7IH0nKTsKICAgICAgICAgIEFhay5
1dy5hZGJsb2NrZXIgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHdzdHJlYW1fdmlkZW8gOi
B7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZ
XIvaXNzdWVzLzEzODIKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vRWlBUlZRWHQK
ICAgICAgICBob3N0IDogWyd3c3RyZWFtLnZpZGVvJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICg
pIHsKICAgICAgICAgIEFhay5hZGRTdHlsZSgnI2FkaXYgeyBoZWlnaHQ6NHB4OyB9Jyk7CiAgICAgICAgfQ
ogICAgICB9LAogICAgICBfNHNoYXJlZF9jb20gOiB7CiAgICAgICAgaG9zdCA6IFsnNHNoYXJlZC5jb20nX
SwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBIaWRlICJEaXNhYmxlIEFk
QmxvZGsiIG1lc3NhZ2VzCiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuY2xhc3N
MaXN0LnJlbW92ZSgianNCbG9ja0RldGVjdCIpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcHJvX2RvbW
FpbnMgOiB7CiAgICAgICAgaG9zdCA6IFsncHJvLXppay53cycsICdwcm8tdGVjdC53cycsICdwcm8tZGRsL
ndzJywgJ3Byby1zcG9ydC53cyddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICBBYWsuc2V0Q29va2llKCd2aXNpdGVkZicsIHRydWUpOwogICAgICAgICAgQWFrLnNldENvb2tpZSgndml
zaXRlZGgnLCB0cnVlKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGNvbXB0b2lyaGFyZHdhcmVfY29tID
ogewogICAgICAgIGhvc3QgOiBbJ2NvbXB0b2lyLWhhcmR3YXJlLmNvbSddLAogICAgICAgIG9uQWx3YXlzI
DogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmFkYmxvY2sgPSAnbm9uJzsKICAgICAgICB9CiAg
ICAgIH0sCiAgICAgIGJha2Vyc2ZpZWxkX2NvbSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXR
odWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNjU3CiAgICAgICAgLy8gbm90ZTogYW
xzbyBzb2x1dGlvbiB0byBBYWtMaXN0CiAgICAgICAgaG9zdCA6IFsnYmFrZXJzZmllbGQuY29tJ10sCiAgI
CAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuQURfU0xPVF9SRU5ERVJF
RCA9IHRydWU7CiAgICAgICAgfQogICAgICB9LAogICAgICBla3N0cmFibGFkZXRfZGsgOiB7CiAgICAgICA
gLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3
E9ZWtzdHJhYmxhZGV0CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL1IwMjlYcENyC
iAgICAgICAgaG9zdCA6IFsnZWtzdHJhYmxhZGV0LmRrJywgJ2ViLmRrJ10sCiAgICAgICAgb25BbHdheXMg
OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuQURURUNIID0ge307CiAgICAgICAgfQogICAgICB
9LAogICAgICBwY2dhbWVzX2Rvd25sb2FkX25ldCA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naX
RodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTQ1MQogICAgICAgIC8vIGlzc3VlO
iBodHRwczovL2dyZWFzeWZvcmsub3JnL2ZvcnVtL2Rpc2N1c3Npb24vOTMyOAogICAgICAgIC8vIHNvdXJj
ZTogaHR0cDovL3Bhc3RlYmluLmNvbS9FQlZaZzNWQgogICAgICAgIGhvc3QgOiBbJ3BjZ2FtZXMtZG93bmx
vYWQubmV0J10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsuc2V0Q2
9va2llKCdub0FkYmxvY2tOaWNlTWVzc2FnZScsIDEpOwogICAgICAgICAgQWFrLnV3Lm1nQ2FuTG9hZDMwN
TQ3ID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGxhY2hhaW5lbWV0ZW9fY29tIDogewogICAg
ICAgIC8vIG5vdGU6IGFsc28ga2lsbGVkIGJ5IEFha0xpc3QKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9
naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTkwCiAgICAgICAgLy8gaXNzdW
U6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzI0NQogICAgI
CAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vl
cy8yMTUKICAgICAgICBob3N0IDogWydsYWNoYWluZW1ldGVvLmNvbSddLAogICAgICAgIG9uQWx3YXlzIDo
gZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmpzX2xvYWRlZCA9IHRydWU7CiAgICAgICAgfQogIC
AgICB9LAogICAgICBtYWM0ZXZlcl9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViL
mNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzk5NwogICAgICAgIC8vIHNvdXJjZTogaHR0
cDovL3Bhc3RlYmluLmNvbS9SUW5DRVlLNgogICAgICAgIGhvc3QgOiBbJ21hYzRldmVyLmNvbSddLAogICA
gICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3LmNvcXVpbm91ID0gZnVuY3
Rpb24gKCkge307CiAgICAgICAgfQogICAgICB9LAogICAgICBfNTI3OGJic19jb20gOiB7CiAgICAgICAgL
y8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9
NTI3OGJicy5jb20KICAgICAgICBob3N0IDogWyc1Mjc4YmJzLmNvbSddLAogICAgICAgIG9uQWx3YXlzIDo
gZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLnV3Lm15YWFicGZ1bjEyID0gZnVuY3Rpb24gKCkge307Ci
AgICAgICAgfQogICAgICB9LAogICAgICB0aGVzaW1zcmVzb3VyY2VfY29tIDogewogICAgICAgIC8vIGlzc
3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPXRoZXNp
bXNyZXNvdXJjZS5jb20KICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vREU5cmJqeFk
KICAgICAgICBob3N0IDogWyd0aGVzaW1zcmVzb3VyY2UuY29tJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW
5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuZ2Fkc2l6ZSA9IHRydWU7CiAgICAgICAgICBBYWsudXcua
UhhdmVMb2FkZWRBZHMgPSB0cnVlOwogICAgICAgIH0KICAgICAgfSwKICAgICAgeWVsbG93YnJpZGdlX2Nv
bSA6IHsKICAgICAgICBob3N0IDogWyd5ZWxsb3dicmlkZ2UuY29tJ10sCiAgICAgICAgb25BbHdheXMgOiB
mdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuZmluYWxpemVQYWdlID0gZnVuY3Rpb24gKCkgewogIC
AgICAgICAgICByZXR1cm47CiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgfSwKICAgICAgZ2FtZV9kZ
WJhdGVfY29tIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFk
YmxvY2sta2lsbGVyL2lzc3Vlcy8xMzY2CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29
tL1V6c2lYMEZLCiAgICAgICAgaG9zdCA6IFsnZ2FtZS1kZWJhdGUuY29tJ10sCiAgICAgICAgb25BbHdheX
MgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuYWRfYmxvY2tfdGVzdCA9IGZ1bmN0aW9uICgpI
Ht9OwogICAgICAgIH0KICAgICAgfSwKICAgICAgYWRzY2VuZG1lZGlhIDogewogICAgICAgIGhvc3QgOiBb
J2Fkc2NlbmRtZWRpYS5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICA
gLy8gYWRzY2VuZG1lZGlhIC0gaHR0cHM6Ly93d3cuYWRzY2VuZG1lZGlhLmNvbS8KICAgICAgICAgIHZhci
ByZWYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykuaHJlZiA9IGRvY3VtZW50LnJlZmVycmVyOwogI
CAgICAgICAgdmFyIGhvc3QgPSBsb2NhdGlvbi5ob3N0OwogICAgICAgICAgdmFyIHBhdGggPSBsb2NhdGlv
bi5wYXRobmFtZTsKICAgICAgICAgIGlmIChBYWsuY29udGFpbnMocGF0aCwgJy93aWRnZXRfYWRibG9jay5
waHAnKSAmJiAhQWFrLmNvbnRhaW5zKHJlZi5ob3N0LCBob3N0KSkgewogICAgICAgICAgICAvLyBBdXRvIH
JlcG9ydAogICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ0Fkc2NlbmRtZWRpYScsIHJlZi5ob3N0LCBob3N0K
TsKICAgICAgICAgICAgLy8gTm90aWZpY2F0aW9uCiAgICAgICAgICAgIEFhay5ub3RpZmljYXRpb24oJ1lv
dSBtdXN0IHN1YnNjcmliZSB0byA8Yj5BYWtMaXN0IChBbnRpLUFkYmxvY2sgS2lsbGVyICk8L2I+IDxhIGh
yZWY9IicgKyBBYWsuc3Vic2NyaWJlVVJMICsgJyIgdGFyZ2V0PSJfYmxhbmsiPlN1YnNjcmliZTwvYT4nKT
sKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIGFkd29ya21lZGlhIDogewogICAgICAgI
Ghvc3QgOiBbJ2Fkd29ya21lZGlhLmNvbScsICdsb3h0ay5jb20nLCAnY29udGVudGxvY2tpbmduZXR3b3Jr
cy5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy8gQWRXb3JrTWV
kaWEgLSBodHRwczovL3d3dy5hZHdvcmttZWRpYS5jb20vCiAgICAgICAgICB2YXIgcmVmID0gZG9jdW1lbn
QuY3JlYXRlRWxlbWVudCgnYScpLmhyZWYgPSBkb2N1bWVudC5yZWZlcnJlcjsKICAgICAgICAgIHZhciBob
3N0ID0gbG9jYXRpb24uaG9zdDsKICAgICAgICAgIHZhciBwYXRoID0gbG9jYXRpb24ucGF0aG5hbWU7CiAg
ICAgICAgICBpZiAoQWFrLmNvbnRhaW5zKHBhdGgsICcvaGVscC9yZW1vdmVBQi5waHAnKSAmJiAhQWFrLmN
vbnRhaW5zKHJlZi5ob3N0LCBob3N0KSkgewogICAgICAgICAgICAvLyBBdXRvIHJlcG9ydAogICAgICAgIC
AgICBBYWsuaW5mbygnQWR3b3JrbWVkaWEnLCByZWYuaG9zdCwgaG9zdCk7CiAgICAgICAgICAgIC8vIE5vd
GlmaWNhdGlvbgogICAgICAgICAgICBBYWsubm90aWZpY2F0aW9uKCdZb3UgbXVzdCBzdWJzY3JpYmUgdG8g
PGI+QWFrTGlzdCAoQW50aS1BZGJsb2NrIEtpbGxlciApPC9iPiA8YSBocmVmPSInICsgQWFrLnN1YnNjcml
iZVVSTCArICciIHRhcmdldD0iX2JsYW5rIj5TdWJzY3JpYmU8L2E+Jyk7CiAgICAgICAgICB9CiAgICAgIC
AgfQogICAgICB9LAogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyBQ
bGF5ZXJzCiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0
tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIGtpc3NhbmltZV
9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9ja
y1raWxsZXIvaXNzdWVzLzQ1MQogICAgICAgIC8v
IGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8zODE
KICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci
9pc3N1ZXMvMzAyCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRib
G9jay1raWxsZXIvaXNzdWVzLzI1NwogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVl
ay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNzgKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXR
odWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTk2CiAgICAgICAgLy8gaXNzdWU6IG
h0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzU2CiAgICAgICAga
G9zdCA6IFsna2lzc2FuaW1lLmNvbScsICdraXNzYW5pbWUudG8nXSwKICAgICAgICBvblN0YXJ0IDogZnVu
Y3Rpb24gKCkgewogICAgICAgICAgLy8gTWFza2luZyBhZHMKICAgICAgICAgIEFhay5hZGRTdHlsZSgnaWZ
yYW1lW2lkXj0iYWRzSWZybWUiXSwgLmRpdkNsb3NlQnV0IHsgZGlzcGxheTpub25lOyB9Jyk7CiAgICAgIC
AgICAvLyBTb2x1dGlvbiAxCiAgICAgICAgICBBYWsudXcuRG9EZXRlY3QyID0gbnVsbDsKICAgICAgICB9L
AogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAvLyBTb2x1dGlvbiAxIGFicCBy
dWxlCiAgICAgICAgICAvLyBAQHx8a2lzc2FuaW1lLmNvbV4kZWxlbWhpZGUKCiAgICAgICAgICB2YXIgZGl
2Q29udGVudFZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2RpdkNvbnRlbnRWaWRlbycpOwoKIC
AgICAgICAgIC8vIFNvbHV0aW9uIDIKICAgICAgICAgIGlmIChBYWsudXcuRG9EZXRlY3QyKSB7CiAgICAgI
CAgICAgIEFhay51dy5Eb0RldGVjdDIgPSBudWxsOwogICAgICAgICAgICBBYWsudXcuQ2hlY2tBZEltYWdl
ID0gbnVsbDsKICAgICAgICAgICAgQWFrLmluZm8oJ1NvbHV0aW9uIDInKTsKICAgICAgICAgIH0gLy9Tb2x
1dGlvbiAzCiAgICAgICAgICBlbHNlIGlmIChkaXZDb250ZW50VmlkZW8pIHsKCiAgICAgICAgICAgIHZhci
BkaXZEb3dubG9hZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNkaXZEb3dubG9hZCcpLmNsb25lTm9kZ
Sh0cnVlKTsKCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGRp
dkNvbnRlbnRWaWRlby5pbm5lckhUTUwgPSAnJzsKICAgICAgICAgICAgICBBYWsudXcuRG9IaWRlRmFrZSg
pOwogICAgICAgICAgICAgIGRpdkNvbnRlbnRWaWRlby5hcHBlbmRDaGlsZChkaXZEb3dubG9hZCk7CiAgIC
AgICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJ2lmcmFtZVtpZF49ImFkc0lmcm1lIl0sIC5kaXZDbG9zZ
UJ1dCcpOwogICAgICAgICAgICAgIEFhay5pbmZvKCdTb2x1dGlvbiAzJyk7CiAgICAgICAgICAgIH0sIDU1
MDApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgS2lzc2NhcnRvb25fbWUgOiB7CiA
gICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaX
NzdWVzLzQ4OAogICAgICAgIGhvc3QgOiBbJ2tpc3NjYXJ0b29uLm1lJ10sCiAgICAgICAgb25BbHdheXMgO
iBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcueGFabEUgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAg
ICB9LAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW5
0KCdpZnJhbWVbaWRePSJhZHNJZnJtZSJdJyk7CiAgICAgICAgfQogICAgICB9LAogICAgICBvcGVubG9hZF
9kb21haW5zIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkY
mxvY2sta2lsbGVyL2lzc3Vlcz9xPW9wZW5sb2FkCiAgICAgICAgaG9zdCA6IFsnb3BlbmxvYWQuY28nLCAn
b3BlbmxvYWQuaW8nLCAnb3BlbmxvYWQudHYnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewo
gICAgICAgICAgQWFrLnV3LmFkYmxvY2sgPSBmYWxzZTsKICAgICAgICAgIEFhay51dy5hZGJsb2NrMiA9IG
ZhbHNlOwogICAgICAgICAgQWFrLnV3LnBvcEFkc0xvYWRlZCA9IHRydWU7CiAgICAgICAgICAvLyBoaWRlI
GZha2UgcGxheSBidXR0b24gdXNlZCB0byBvcGVuIHBvcHVuZGVyCiAgICAgICAgICAvL0Fhay5hZGRTdHls
ZSgnI3ZpZGVvb3ZlcmxheSB7IGRpc3BsYXk6bm9uZTsgfScpCiAgICAgICAgfQogICAgICB9LAogICAgICB
5b3V3YXRjaF9vcmcgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudG
ktYWRibG9jay1raWxsZXIvaXNzdWVzP3E9eW91d2F0Y2gKICAgICAgICAvLyB0ZXN0OiBodHRwOi8veW91d
2F0Y2gub3JnL2VtYmVkLTU5cDdpM2Nka3NlMC00NTN4MzIwLmh0bWwKICAgICAgICAvLyB0ZXN0OiBodHRw
Oi8veW91d2F0Y2gub3JnLzU5cDdpM2Nka3NlMAogICAgICAgIGhvc3QgOiBbJ3lvdXdhdGNoLm9yZycsICd
jaG91aGFhLmluZm8nLCAnYWh6YWhnNm9oYi5jb20nLCAnYWh6YWhnNm9oYi5jb20nXSwKICAgICAgICBvbl
N0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy8gc2tpcCBhbnRpLWFkYmxvY2sKICAgICAgICAgI
EFhay51dy5hZHNTaG93UG9wdXAxID0gMTsKICAgICAgICB9LAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgIC8vIHJlbm92ZSBhZHMgKyBmYWtlIHBsYXkgYnV0dG9uCiAgICAgICAgICBBYWs
ucmVtb3ZlRWxlbWVudCgnI3BsYXllcl9pbWosICNwbGF5ZXJfaW1qICsgZGl2W2lkXScpOwogICAgICAgIH
0KICAgICAgfSwKICAgICAgZXhhc2hhcmVfY29tIDogewogICAgICAgIC8vIGJ5OiBXYXRpbGluCiAgICAgI
CAgLy8gcHVsbDogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9wdWxsLzUx
OQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGV
yL2lzc3Vlcz9xPWV4YXNoYXJlLmNvbQogICAgICAgIC8vIHRlc3Q6ICBodHRwOi8vZXhhc2hhcmUuY29tL2
dhbHcyZ2Uya3pzdgogICAgICAgIGhvc3QgOiBbJ2V4YXNoYXJlLmNvbScsICdjaGVmdGkuaW5mbycsICdib
2plbTNhLmluZm8nLCAnYWppaGV6by5pbmZvJywgJ3lhaG1haWIzYWkuY29tJywgJ3lhaG1haWIzYWkuY29t
J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIHNraXAgYW50aS1hZGJ
sb2NrCiAgICAgICAgICBBYWsudXcuYWRzU2hvd1BvcHVwMSA9IDE7CiAgICAgICAgfSwKICAgICAgICBvbk
lkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyByZW5vdmUgYWRzICsgZmFrZSBwbGF5IGJ1dHRvb
gogICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJyNwbGF5ZXJfZ2F6LCAjcGxheWVyX2dheiArIGRpdltp
ZF0nKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGFuMW1lX3NlIDogewogICAgICAgIC8vIGlzc3VlOiB
odHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xOTAKICAgICAgIC
Bob3N0IDogWydhbjFtZS5zZSddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgI
HNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBBYWsudXcuaXNCbG9ja0FkczIgPSBmYWxz
ZTsKICAgICAgICAgIH0sIDEwMDAwKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGhxcV90diA6IHsgLy8
gcHV0bG9ja2VyLmlzCiAgICAgICAgaG9zdCA6IFsnaHFxLnR2J10sCiAgICAgICAgb25JZGxlIDogZnVuY3
Rpb24gKCkgewogICAgICAgICAgLy8gKyBhYnAgcnVsZQogICAgICAgICAgLy8gaHR0cDovL2hxcS50di9wb
GF5ZXIvZW1iZWRfcGxheWVyLnBocD92aWQ9UjNER0hHM0dLWFg3JmF1dG9wbGF5PW5vCiAgICAgICAgICBp
ZiAoJy9wbGF5ZXIvZW1iZWRfcGxheWVyLnBocCcgPT0gbG9jYXRpb24ucGF0aG5hbWUpIHsKICAgICAgICA
gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9ybVtpZF49ImZvcm0tIl0nKS5zdWJtaXQoKTsKICAgIC
AgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIC8vIFBvbGFuZAogICAgICB3cF9kb21haW5zIDoge
wogICAgICAgIC8vIE5vdGU6IGRpc2FibGUgRWFzeVByaXZhY3kKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6
Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvOTU2CiAgICAgICAgLy8gaXN
zdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzkwNQogIC
AgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc
3Vlcy8zMDAKICAgICAgICBob3N0IDogWydiaXp0b2sucGwnLCAnd3AudHYnLCAnd3AucGwnLCAnc3BvcnRv
d2VmYWt0eS5wbCcsICdrYWZldGVyaWEudHYnLCAna2FmZXRlcmlhLnBsJywgJy53cnp1dGEucGwnLCAncHV
kZWxlay50dicsICdrb21lZGlvd28ucGwnLCAnc2ZvcmEucGwnLCAnYXV0b2tyYXRhLnBsJywgJ3Nwb3J0Zm
FuLnBsJywgJ3dhd2Fsb3ZlLnBsJywgJ2hvdG1vbmV5LnBsJywgJ2FsZXNlcmlhbGUucGwnLCAnYmFib2wuc
GwnLCAnc25vYmthLnBsJywgJ25vY290eS5wbCcsICdtb25leS5wbCcsICdhYmN6ZHJvd2llLnBsJywgJ2dh
ZHpldG9tYW5pYS5wbCcsICdhdXRva3VsdC5wbCcsICdrb21vcmtvbWFuaWEucGwnXSwKICAgICAgICBvblN
0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy8gcHJldmVudCBwb3B1cCBhbnRpLWFkYmxvY2sgZn
JvbSBhYmN6ZHJvd2llLnBsCiAgICAgICAgICBBYWsuc2V0Q29va2llKCdBQkNBQkMnLCB0cnVlKTsKICAgI
CAgICB9LAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIAogICAgICAgICAgQWFr
Lmhhc0VsZW1lbnQoJy53cC1wbGF5ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAKICAgICAgICAgICA
gdmFyIHJlcGxhY2VQbGF5ZXJXUCA9IGZ1bmN0aW9uIChtaWQsIHBsYXllcikgewogICAgICAgICAgICAgIC
8qIFJlcXVlc3QKICAgICAgICAgICAgICBodHRwOi8vZ2V0LndwLnR2Lz9taWQ9MTY2MTA1NgogICAgICAgI
CAgICAgIGh0dHA6Ly93cC50di9wbGF5ZXIvbWlkLDE2NjEwNTYsZW1iZWQuanNvbgogICAgICAgICAgICAg
IGh0dHA6Ly9nZXQud3AudHYvP2Y9Mjg5NjQ2Mi4xNDI2MzI5MDU2OTA0Lmwud2VibSZybmQ9MQogICAgICA
gICAgICAgIGh0dHBzOi8vd3AudHYvcGxheWVyL21pZCwxNzQ3MTE3LGVtYmVkLmpzb24KICAgICAgICAgIC
AgICAgKi8KICAgICAgICAgICAgICBBYWsucmVxdWVzdCh7CiAgICAgICAgICAgICAgICB1cmwgOiAnaHR0c
DovL3dwLnR2L3BsYXllci9taWQsJyArIG1pZCArICcsZW1iZWQuanNvbicsCiAgICAgICAgICAgICAgICBv
bmxvYWQgOiBmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgIHZhciByZXMgPSByZXN1bHQ
ucmVzcG9uc2VUZXh0OwogICAgICAgICAgICAgICAgICB2YXIgb2JqID0gSlNPTi5wYXJzZShyZXMpOwogIC
AgICAgICAgICAgICAgICBBYWsubG9nKG9iaik7CgogICAgICAgICAgICAgICAgICB2YXIgUGxheWVyID0gb
mV3IEFhay5wbGF5ZXIoKTsKICAgICAgICAgICAgICAgICAgUGxheWVyLnZpZGVvanMocGxheWVyLCB7CiAg
ICAgICAgICAgICAgICAgICAgc291cmNlIDogQWFrLmZpeFByb3RvY29sVVJMKG9iai5jbGlwLnVybFsxXS5
1cmwpLCAvLyBIRAogICAgICAgICAgICAgICAgICAgIHR5cGUgOiAnbXA0JywKICAgICAgICAgICAgICAgIC
AgICBhdXRvcGxheSA6IGZhbHNlCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogI
CAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgdmFyIHJlcGxhY2VQbGF5ZXJX
cnp1dGEgPSBmdW5jdGlvbiAoa2V5LCBjaGFubmVsLCBlbGVtKSB7CiAgICAgICAgICAgICAgQWFrLnJlcXV
lc3QoewogICAgICAgICAgICAgICAgLy8gaHR0cDovL3d3dy53cnp1dGEucGwvbnBwL2VtYmVkL3dvbG5hcG
9sc2thMi8wSTBIUTJtdXRKYwogICAgICAgICAgICAgICAgdXJsIDogJ2h0dHA6Ly93d3cud3J6dXRhLnBsL
25wcC9lbWJlZC8nICsgY2hhbm5lbCArICcvJyArIGtleSwKICAgICAgICAgICAgICAgIG9ubG9hZCA6IGZ1
bmN0aW9uIChyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IHJlc3VsdC5yZXNwb25zZVR
leHQ7CiAgICAgICAgICAgICAgICAgIHZhciBvYmogPSBKU09OLnBhcnNlKHJlcyk7CiAgICAgICAgICAgIC
AgICAgIEFhay5sb2cob2JqKTsKCiAgICAgICAgICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsY
XllcigpOwogICAgICAgICAgICAgICAgICBQbGF5ZXIudmlkZW9qcyhlbGVtLCB7CiAgICAgICAgICAgICAg
ICAgICAgc291cmNlIDogQWFrLmZpeFByb3RvY29sVVJMKG9iai51cmxbMF0udXJsKSwgLy9IRAogICAgICA
gICAgICAgICAgICAgIHR5cGUgOiAnbXA0JywKICAgICAgICAgICAgICAgICAgICBhdXRvcGxheSA6IGZhbH
NlCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogI
CAgICAgICAgICB9OwoKICAgICAgICAgICAgLy8gVXNpbmcgYW4gZXh0ZXJuYWwgZmxhc2ggcGxheWVyIGlz
IGltcG9zc2libGUgYmVjYXVzZSBwcm90ZWN0ZWQgYnkgY3Jvc3Nkb21haW4ueG1sCiAgICAgICAgICAgIHZ
hciBwbGF5ZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLndwLXBsYXllcicpOyAvLyAgI1BsYX
llcjAsICNQbGF5ZXIxLCAjbWFpblBsYXllcgogICAgICAgICAgICBpZiAocGxheWVycy5sZW5ndGgpIHsKI
CAgICAgICAgICAgICAvLyBmaXhidWcgZ21feGhyIGxvb3AgcmVxdWVzdCAtIGh0dHA6Ly90aW55dXJsLmNv
bS9wcWE5aHRxCiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwbGF5ZXJzLmxlbmd0aDsgaSs
rKSB7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbnVsbDsKICAgICAgICAgICAgICAgIHZhciBwbGF5ZX
IgPSBwbGF5ZXJzW2ldOwogICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IHBsYXllci5wYXJlbnROb2RlO
wogICAgICAgICAgICAgICAgdmFyIHNjcmlwdCA9IHBsYXllci5wcmV2aW91c1NpYmxpbmc7CiAgICAgICAg
ICAgICAgICB2YXIgdGl0bGUgPSBwbGF5ZXIucXVlcnlTZWxlY3RvcignLnRpdGxlQ29udCBhLnRpdGxlJyk
7CiAgICAgICAgICAgICAgICB2YXIgZW1iZWR2aWRlb3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKC
dzY3JpcHRbc3JjKj0iL2VtYmVkX3ZpZGVvLmpzIl0nKTsKICAgICAgICAgICAgICAgIEFhay5sb2cocGxhe
WVyLCBwYXJlbnQsIHNjcmlwdCwgdGl0bGUpOwoKICAgICAgICAgICAgICAgIGlmIChlbWJlZHZpZGVvcy5s
ZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgLy8
gcHVkZWxlay53cnp1dGEucGw6IGh0dHA6Ly90aW55dXJsLmNvbS9sOGpvNXYyCiAgICAgICAgICAgICAgIC
AgIC8vIHB1ZGVsZWsudHY6IGh0dHA6Ly90aW55dXJsLmNvbS9rbHl6aDZyLCBodHRwOi8vdGlueXVybC5jb
20vejdmcjg5dgogICAgICAgICAgICAgICAgICAvLyBwdWRlbGVrLnR2ICh0cmlwbGUpOiBodHRwOi8vdGlu
eXVybC5jb20vbjliMjdvMgogICAgICAgICAgICAgICAgICAvLyBmaWxtLndwLnBsOiBodHRwOi8vdGlueXV
ybC5jb20vcTdrNWJ4cAogICAgICAgICAgICAgICAgICB2YXIgZW1iZWR2aWRlbyA9IGVtYmVkdmlkZW9zW2
ldOwogICAgICAgICAgICAgICAgICB2YXIga2V5ID0gL2tleT0oXHcrKS8uZXhlYyhlbWJlZHZpZGVvLnNyY
ylbMV07CiAgICAgICAgICAgICAgICAgIHZhciBjaGFubmVsID0gL2xvZ2luPShcdyspLy5leGVjKGVtYmVk
dmlkZW8uc3JjKVsxXTsKICAgICAgICAgICAgICAgICAgdmFyIGF1dG9zdGFydCA9IC9hdXRvcGxheS8udGV
zdChlbWJlZHZpZGVvLnNyYyk7CiAgICAgICAgICAgICAgICAgIHJlcGxhY2VQbGF5ZXJXcnp1dGEoa2V5LC
BjaGFubmVsLCBwbGF5ZXIsIGF1dG9zdGFydCk7CiAgICAgICAgICAgICAgICAgIEFhay5sb2coJ2VtYmVkX
3ZpZGVvLmpzJyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRpdGxlICYmIC9taWQvLnRlc3QodGl0
bGUuaHJlZikpIHsKICAgICAgICAgICAgICAgICAgLy8gc3BvcnRvd2VmYWt0eS5wbDogaHR0cDovL3Rpbnl
1cmwuY29tL2w2emFiY3gKICAgICAgICAgICAgICAgICAgbWlkID0gdGl0bGUuaHJlZi5tYXRjaCgvbWlkWz
0sXShbMC05XSspLyk7CiAgICAgICAgICAgICAgICAgIEFhay5sb2coJ3RpdGxlLmhyZWYnKTsKICAgICAgI
CAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50LmlkKSB7CiAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQu
ZGF0YXNldC51cmwpIHsKICAgICAgICAgICAgICAgICAgICAvLyB3cC50djogaHR0cDovL3Rpbnl1cmwuY29
tL3B6ZGUyOXQKICAgICAgICAgICAgICAgICAgICBtaWQgPSBwYXJlbnQuZGF0YXNldC51cmwubWF0Y2goL2
1pZFs9LF0oWzAtOV0rKS8pOwogICAgICAgICAgICAgICAgICAgIEFhay5sb2coJ3BhcmVudC5kYXRhc2V0L
nVybCcpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChwYXJl
bnQucHJldmlvdXNTaWJsaW5nLmlubmVySFRNTCkgewogICAgICAgICAgICAgICAgICAgICAgLy8gd2lhZG9
tb3NjaS53cC5wbDogaHR0cDovL3Rpbnl1cmwuY29tL2dxdHQ5Y2EKICAgICAgICAgICAgICAgICAgICAgIG
1pZCA9IHBhcmVudC5wcmV2aW91c1NpYmxpbmcuaW5uZXJIVE1MLm1hdGNoKC9taWRbPSxdKFswLTldKykvK
TsKICAgICAgICAgICAgICAgICAgICAgIEFhay5sb2coJ3NjcmlwdC5pbmxpbmUuaW5uZXJIVE1MJyk7CiAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgIC8vIGthZmV0ZXJpYS5
0djogaHR0cDovL3Rpbnl1cmwuY29tL25vZnA1OGEKICAgICAgICAgICAgICAgICAgICAgIC8vIGFiY3pkcm
93aWUucGw6IGh0dHA6Ly90aW55dXJsLmNvbS9oeDZzNWV0CiAgICAgICAgICAgICAgICAgICAgICBtaWQgP
SBwYXJlbnQuaW5uZXJIVE1MLm1hdGNoKC9taWRbPSxdKFswLTldKykvKTsKICAgICAgICAgICAgICAgICAg
ICAgIEFhay5sb2coJ3BhcmVudC5pbm5lckhUTUwnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICA
gICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0ICYmIHNjcmlwdC50YWdOYW
1lID09ICdTQ1JJUFQnKSB7CiAgICAgICAgICAgICAgICAgIC8vIGZpbG0ud3AucGw6IGh0dHA6Ly90aW55d
XJsLmNvbS9taDlvbmZ3CiAgICAgICAgICAgICAgICAgIC8vIHB1ZGVsZWsudHYgKGRvdWJsZSk6IGh0dHA6
Ly90aW55dXJsLmNvbS9sZWZ2d3R4CiAgICAgICAgICAgICAgICAgIG1pZCA9IHNjcmlwdC5pbm5lckhUTUw
ubWF0Y2goL21pZFs9LF0oWzAtOV0rKS8pOwogICAgICAgICAgICAgICAgICBBYWsubG9nKCdzY3JpcHQuc3
JjLmlubmVySFRNTCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1pZCAhPT0gb
nVsbCAmJiBtaWQubGVuZ3RoID09IDIpIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZVBsYXllcldQKG1p
ZFsxXSwgcGxheWVyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0
KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgbW9qZV9maWxteV9uZXR3b3JrOiB7Ci
AgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIva
XNzdWVzLzEwMTAKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vN0cyUkJucXEKICAg
ICAgICBob3N0IDogWydtb2plLWZpbG15LnRrJywgJ21vamUtZmlsbXkubGl2ZSddLAogICAgICAgIG9uSWR
sZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBzZWFyY2h2YWx1ZSA9IFsndmFyIHBsYXllckluc3
RhbmNlJywgJ30pOyddOwogICAgICAgICAgdmFyIHNjcmlwdCA9IEFhay5oYXNTY3JpcHQoc2VhcmNodmFsd
WVbMF0pOwoKICAgICAgICAgIGlmIChzY3JpcHQpIHsKICAgICAgICAgICAgdmFyIHNvdXJjZSA9IHNjcmlw
dC5pbm5lckhUTUw7CiAgICAgICAgICAgIHZhciBzdHIgPSBzb3VyY2Uuc3Vic3RyaW5nKHNvdXJjZS5sYXN
0SW5kZXhPZihzZWFyY2h2YWx1ZVswXSksIHNvdXJjZS5sYXN0SW5kZXhPZihzZWFyY2h2YWx1ZVsxXSkgKy
BzZWFyY2h2YWx1ZVsxXS5sZW5ndGgpOwogICAgICAgICAgICBBYWsuYWRkU2NyaXB0KHN0cik7CiAgICAgI
CAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICB0dm5fcGwgOiB7CiAgICAgICAgLy8gYnk6IFJlZWss
IE1hcmVrCiAgICAgICAgLy8gc29sdXRpb246IGh0dHA6Ly90aW55dXJsLmNvbS9vaGJ2ejRyLCBodHRwOi8
vdGlueXVybC5jb20vanE4czQ2MgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay
9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPXR2bi5wbAogICAgICAgIC8vIGlzc3VlOiBodHRwczovL
2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcz9xPXR2bjI0LnBsCiAgICAgICAg
Ly8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzP3E
9cGxheWVyLnBsCiAgICAgICAgLy8gdGVzdDogaHR0cDovL3Rpbnl1cmwuY29tL282ZDloNjYsIGh0dHA6Ly
90aW55dXJsLmNvbS96NzdtNHpoCiAgICAgICAgaG9zdCA6IFsndHZuLnBsJywgJ3R2bjI0LnBsJywgJ3BsY
Xllci5wbCddLAogICAgICAgIG9uRW5kIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmhhc0VsZW1l
bnQoJ2hlYWRlci5kZXRhaWxJbWFnZScsIGZ1bmN0aW9uICh0aGlzRWxlbWVudCkgewogICAgICAgICAgICB
pZiAoQWFrLmdldENvb2tpZSgnY291bnRyeV9jb2RlJykgJiYgQWFrLmdldFNlc3Npb24oJ2dlbmVyYXRlVG
9rZW4nKSkgewogICAgICAgICAgICAgICAgdmFyIHBhcnRzID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZi5zc
GxpdCgvWy4sXS8pOwogICAgICAgICAgICAgICAgdmFyIGlkID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMl07
CiAgICAgICAgICAgICAgICB2YXIgcGFyYW1zID0gewogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSA6ICJ
Nb2JpbGUiLAogICAgICAgICAgICAgICAgICB0ZXJtaW5hbCA6ICJBbmRyb2lkIiwKICAgICAgICAgICAgIC
AgICAgZm9ybWF0IDogImpzb24iLAogICAgICAgICAgICAgICAgICB2IDogIjIuMCIsCiAgICAgICAgICAgI
CAgICAgIGF1dGhLZXkgOiAiYjRiYzk3MTg0MGRlNjNkMTA1YjMxNjY0MDNhYTFiZWEiLAogICAgICAgICAg
ICAgICAgICB0eXBlIDogImVwaXNvZGUiLAogICAgICAgICAgICAgICAgICBpZCA6IGlkLAogICAgICAgICA
gICAgICAgICBzb3J0IDogIm5ld2VzdCIsCiAgICAgICAgICAgICAgICAgIG0gOiAiZ2V0SXRlbSIsCiAgIC
AgICAgICAgICAgICAgIGRldmljZVNjcmVlbkhlaWdodCA6IDE2MDAsCiAgICAgICAgICAgICAgICAgIGRld
mljZVNjcmVlbldpZHRoIDogMjU2MAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIHZhciBh
cGkgPSAnaHR0cHM6Ly9hcGkudHZucGxheWVyLnBsL2FwaS8/JyArIEFhay5zZXJpYWxpemUocGFyYW1zKTs
KICAgICAgICAgICAgICAgIHZhciBwcm94eSA9ICdodHRwOi8vd3d3LnByb3h5LnhtYy5wbC9pbmRleC5waH
A/aGw9M2U1JnE9JzsJCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vIEdldCB2aWRlb1Vyb
AogICAgICAgICAgICAgICAgQWFrLnJlcXVlc3QoewogICAgICAgICAgICAgICAgICB1cmwgOiBBYWsuZ2V0
Q29va2llKCdjb3VudHJ5X2NvZGUnKSAhPSAnUEwnID8gcHJveHkgKyBBYWsuZW5jb2RlVVJJKGFwaSkgOiB
hcGksCiAgICAgICAgICAgICAgICAgIGhlYWRlcnMgOiB7CiAgICAgICAgICAgICAgICAgICAgIlVzZXItQW
dlbnQiIDogIk1vemlsbGEvNS4wIChMaW51eDsgVTsgQW5kcm9pZCA0LjI7IGVuLXVzOyBOZXh1cyAxMCBCd
WlsZC9KVlAxNUkpIEFwcGxlV2ViS2l0LzUzNC4zMCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4w
IFNhZmFyaS81MzQuMzAiCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIG9ubG9hZCA
6IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gcmVzdWx0LnJlc3
BvbnNlVGV4dDsKICAgICAgICAgICAgICAgICAgICBBYWsubG9nKHJlcyk7CiAgICAgICAgICAgICAgICAgI
CAgdmFyIG8gPSBKU09OLnBhcnNlKHJlcyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvVXJsID0g
by5pdGVtLnZpZGVvcy5tYWluLnZpZGVvX2NvbnRlbnRbTnVtYmVyKEFhay5vcHRzLnZpZGVvSEQpXS51cmw
7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdlbmVyYXRlVG9rZW4gPSBuZXcgRnVuY3Rpb24oJ3ZpZGVvVX
JsJywgQWFrLmdldFNlc3Npb24oJ2dlbmVyYXRlVG9rZW4nKSk7CiAgICAgICAgICAgICAgICAgICAgdmFyI
HZpZGVvVXJsV2l0aFNlZWQgPSBnZW5lcmF0ZVRva2VuKHZpZGVvVXJsKTsKICAgICAgICAgICAgICAgICAg
ICB2YXIgUGxheWVyID0gbmV3IEFhay5wbGF5ZXIoKTsKICAgICAgICAgICAgICAgICAgICBQbGF5ZXIudml
kZW9qcyh0aGlzRWxlbWVudCwgewogICAgICAgICAgICAgICAgICAgICAgc291cmNlIDogdmlkZW9VcmxXaX
RoU2VlZCwKICAgICAgICAgICAgICAgICAgICAgIHR5cGUgOiAnbXA0JywKICAgICAgICAgICAgICAgICAgI
CAgIGF1dG9wbGF5OiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sIHt9LCB7aW5zZXJ0Oidpbm5lcid9
KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0gZWxzZSB
7CiAgICAgICAgICAgICAgQWFrLnJlcXVlc3QoeyAvLyBnZXQgYW5kIHN0b3JlIGdlbmVyYXRlVG9rZW4gZn
VuY3Rpb24KICAgICAgICAgICAgICAgIHVybCA6ICdodHRwOi8vcGFzdGViaW4uY29tL3Jhdy9EOXFNNERSM
ycsCiAgICAgICAgICAgICAgICBvbmxvYWQgOiBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAg
ICAgICAgdmFyIHJlcyA9IHJlc3BvbnNlLnJlc3BvbnNlVGV4dDsKICAgICAgICAgICAgICAgICAgQWFrLnN
ldFNlc3Npb24oJ2dlbmVyYXRlVG9rZW4nLCByZXMpOwogICAgICAgICAgICAgICAgICBBYWsucmVxdWVzdC
h7IC8vIGdldCB1c2VyIGlwCiAgICAgICAgICAgICAgICAgICAgdXJsIDogJ2h0dHA6Ly9pcC1hcGkuY29tL
2pzb24nLAogICAgICAgICAgICAgICAgICAgIG9ubG9hZCA6IGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAg
ICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IHJlc3BvbnNlLnJlc3BvbnNlVGV4dDsKICAgICAgICAgICA
gICAgICAgICAgIHZhciBqc29uID0gSlNPTi5wYXJzZShyZXMpOwogICAgICAgICAgICAgICAgICAgICAgQW
FrLnNldENvb2tpZSgnY291bnRyeV9jb2RlJywganNvbi5jb3VudHJ5Q29kZSk7CiAgICAgICAgICAgICAgI
CAgICAgICBBYWsucmVmcmVzaCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICA
gIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgaXBsYV90diA6IHsKICAgICAgICAvLyBieTogTWFyZW
sKICAgICAgICAvLyBzb2x1dGlvbjogaHR0cDovL3Rpbnl1cmwuY29tL3B0YjR5YmcKICAgICAgICAvLyBpc
3N1ZS4gaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTIyCiAg
ICAgICAgLy8gdGVzdDogaHR0cDovL3Rpbnl1cmwuY29tL2h6N2dweHgKICAgICAgICBob3N0IDogWydpcGx
hLnR2J10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKC
cuaHRtbDUtcGxheWVyLXdyYXBwZXIgeyBkaXNwbGF5Om5vbmU7IH0nKTsgLy8gY2hyb21lL29wZXJhCiAgI
CAgICAgICB2YXIgb2xkUGxheWVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmh0bWw1LXBsYXllci13
cmFwcGVyLCAjdm9kLXBsYXllcicpOwogICAgICAgICAgQWFrLnJlcXVlc3QoewogICAgICAgICAgICB1cmw
gOiAnL1ZPRC9wbGF5LWluLWlwbGEvJyArIGxvY2F0aW9uLmhyZWYubWF0Y2goL1wvdm9kLShcZCspLylbMV
0sCiAgICAgICAgICAgIG9ubG9hZCA6IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICAgICAgICAgICB2YXIgd
mlkZW9VUkw7CiAgICAgICAgICAgICAgdmFyIHJlcyA9IHJlc3VsdC5yZXNwb25zZVRleHQ7CiAgICAgICAg
ICAgICAgdmFyIGlkbiA9IHJlcy5tYXRjaCgvaXBsYTpcL1wvcGxheXZvZC0xXHwoW2EtejAtOV0rKS8pWzF
dOwogICAgICAgICAgICAgIEFhay5sb2coaWRuKTsKICAgICAgICAgICAgICBBYWsucmVxdWVzdCh7CiAgIC
AgICAgICAgICAgICB1cmwgOiAnaHR0cDovL2dldG1lZGlhLnJlZGVmaW5lLnBsL3ZvZHMvZ2V0X3ZvZC8/Y
3BpZD0xJnVhPW1pcGxhLzIzJm1lZGlhX2lkPScgKyBpZG4sCiAgICAgICAgICAgICAgICBvbmxvYWQgOiBm
dW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgIHZhciByZXMgPSByZXN1bHQucmVzcG9uc2V
UZXh0OwogICAgICAgICAgICAgICAgICB2YXIgbyA9IEpTT04ucGFyc2UocmVzKTsKICAgICAgICAgICAgIC
AgICAgQWFrLmxvZyhvKTsKICAgICAgICAgICAgICAgICAgaWYgKG8udm9kLnZpZGVvX2hkKSB7CiAgICAgI
CAgICAgICAgICAgICAgdmlkZW9VUkwgPSBvLnZvZC52aWRlb19oZDsKICAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChvLnZvZC52aWRlbykgewogICAgICAgICAgICAgICAgICAgIHZpZGVvVVJMID0gby52b2Qudml
kZW87CiAgICAgICAgICAgICAgICAgIH0gZWxzZS
B7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9VUkwgPSBvLnZvZC5jb3BpZXNbMF0udXJsOwogICAgICAgI
CAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICB2YXIgUGxheWVyID0gbmV3IEFhay5wbGF5ZXIoKTsK
ICAgICAgICAgICAgICAgICAgUGxheWVyLnZpZGVvanMob2xkUGxheWVyLCB7CiAgICAgICAgICAgICAgICA
gICAgc291cmNlIDogdmlkZW9VUkwsCiAgICAgICAgICAgICAgICAgICAgdHlwZSA6ICdtcDQnLAogICAgIC
AgICAgICAgICAgICAgIHdpZHRoIDogODIwLAogICAgICAgICAgICAgICAgICAgIGhlaWdodCA6IDQ1MCwKI
CAgICAgICAgICAgICAgICAgICBhdXRvcGxheSA6IGZhbHNlCiAgICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICA
gICAgICB9CiAgICAgIH0sCiAgICAgIGtvc2NpYW5fbmV0IDogewogICAgICAgIC8vIGlzc3VlOiBodHRwcz
ovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy85MTQKICAgICAgICAvLyBzb
3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20veUdTUEJScWUKICAgICAgICBob3N0IDogWydrb3NjaWFuLm5l
dCddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlbGVtcyA9IGRvY3V
tZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYW4nKTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW
xlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbXNbaV0ucmVtb3ZlKCk7CiAgICAgICAgICAgI
C8vZWxlbXNbaV0uaW5uZXJIVE1MID0gJzxicj4nOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwK
ICAgICAgLy8gRnJhbmNlCiAgICAgIHBsYXl0dl9mciA6IHsgLy8gcmVzZWFyY2ggc29sdXRpb24KICAgICA
gICBob3N0IDogWydwbGF5LnR2JywgJ3BsYXl0di5mciddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY3Rpb2
4gKCkge30sCiAgICAgICAgb25FbmQgOiBmdW5jdGlvbiAoKSB7fQogICAgICB9LAogICAgICBybWNzcG9yd
GJmbXR2X2NvbSA6IHsgLy8gd2VicmFkaW8KICAgICAgICBob3N0IDogWydybWNzcG9ydC5iZm10di5jb20n
XSwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgdmFyIGZsYXNodmFycyA9IHs
KICAgICAgICAgICAgdXJsUmFkaW8gOiAiaHR0cDovL21wM2xnNC50ZGYtY2RuLmNvbS8xMDE2MC9ybWMubX
AzIiwKICAgICAgICAgICAgbm9tIDogImxpdmUiLAogICAgICAgICAgICBjYXRlZ29yaWUgOiAibGl2ZSIsC
iAgICAgICAgICAgIHVybFNtYXJ0IDogIiIgLy8gc2V0IGVtcHR5IHRvIHJlbW92ZSBhdWRpbyBhZAogICAg
ICAgICAgfTsKICAgICAgICAgIHZhciBwYXJhbXMgPSB7CiAgICAgICAgICAgIHdtb2RlIDogInRyYW5zcGF
yZW50IgogICAgICAgICAgfTsKCiAgICAgICAgICBBYWsudXcuc3dmb2JqZWN0LmVtYmVkU1dGKCIvc3dmL1
JNQ0xJVkUuc3dmIiwgImxpdmVwbGF5ZXIiLCAiNzAiLCAiOTAiLCAiMTAuMC4wIiwgIiIsIGZsYXNodmFyc
ywgcGFyYW1zKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGVjbHlwc2lhX2NvbSA6IHsKICAgICAgICBo
b3N0IDogWydlY2x5cHNpYS5jb20nXSwKICAgICAgICBvbkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICA
gICAgIC8vIFNvbHV0aW9uIDEKICAgICAgICAgIC8vIGFicCBydWxlcwoKICAgICAgICAgIC8vIFNvbHV0aW
9uIDIKICAgICAgICAgIEFhay51dy5pc0FCQWN0aXZhdGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgI
CByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9OyAvLyBLaWxsIGFudGlhZGJsb2NrCiAgICAgICAgICBBYWsu
dXcucmVmcmVzaF9pZnJhbWUgPSBmdW5jdGlvbiAoKSB7fTsgLy8gU3RvcCBhZHMgdG8gYmUgbG9hZGVkCiA
gICAgICAgfSwKICAgICAgICBvbkVuZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIFNvbHV0aW9uID
MKICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2lkXj0id2Vid
HZfaWZyYW1lXyJdJyk7CiAgICAgICAgICBpZiAoZWxlbWVudCAhPT0gbnVsbCkgewogICAgICAgICAgICB2
YXIgdmlkZW9JZCA9IGVsZW1lbnQuaWQuc3BsaXQoJ18nKVsyXTsKICAgICAgICAgICAgc2V0VGltZW91dCh
mdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPGlmcmFtZSBmcmFtZW
JvcmRlcj0iMCIgd2lkdGg9IjgxMiIgaGVpZ2h0PSI1MDAiIHNyYz0iaHR0cDovL3d3dy5kYWlseW1vdGlvb
i5jb20vZW1iZWQvdmlkZW8vJyArIHZpZGVvSWQgKyAnP2xvZ289MCZhdXRvUGxheT0xJmF1dG9NdXRlPTAi
PjwvaWZyYW1lPic7CiAgICAgICAgICAgIH0sIDEwMDApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICA
gfSwKICAgICAgbTZ3ZWJfZnIgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZW
VrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzQ2MQogICAgICAgIC8vIHRlc3Q6IGh0dHA6Ly90aW55d
XJsLmNvbS9wdG4ydnJsCiAgICAgICAgaG9zdCA6IFsnbTZ3ZWIuZnInXSwKICAgICAgICBvbkVuZCA6IGZ1
bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdvYmp
lY3RbaWQkPSJfZmxhc2hfYXBpIl0nKTsKICAgICAgICAgIHZhciBzY3JpcHQgPSBBYWsuaGFzU2NyaXB0KC
dNNi5QbGF5ZXIuY29uZmlnJyk7CgogICAgICAgICAgaWYgKHBsYXllciAhPT0gbnVsbCAmJiBzY3JpcHQgI
T09IG51bGwpIHsKICAgICAgICAgICAgdmFyIGZvdW5kID0gc2NyaXB0LmlubmVySFRNTC5tYXRjaCgvTTYu
UGxheWVyLmNvbmZpZyA9IChcey4rXH0pOy8pOwogICAgICAgICAgICB2YXIgY29uZmlnID0gSlNPTi5wYXJ
zZShmb3VuZC5wb3AoKSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSZXBsYWNlIHBsYXllcgogIC
AgICAgICAgICB2YXIgUGxheWVyID0gbmV3IEFhay5wbGF5ZXIoKTsKICAgICAgICAgICAgUGxheWVyLnZpZ
GVvanMocGxheWVyLnBhcmVudE5vZGUsIHsKICAgICAgICAgICAgICBzb3VyY2UgOiBjb25maWcuc291cmNl
c1sxXS5zcmMsCiAgICAgICAgICAgICAgdHlwZSA6ICdtcDQnLAogICAgICAgICAgICAgIGF1dG9wbGF5IDo
gZmFsc2UKICAgICAgICAgICAgfSk7CgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgZ2
FtaW5ncm9vbV90diA6IHsKICAgICAgICBob3N0IDogWydnYW1pbmdyb29tLnR2J10sCiAgICAgICAgb25Bb
HdheXMgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuYWRibG9ja19kZXRlY3QgPSBmdW5jdGlv
biAoKSB7fTsKICAgICAgICAgIEFhay51dy5HUl9hZGJsb2NrX2hpZGVfdmlkZW8gPSBmdW5jdGlvbiAoKSB
7fTsKICAgICAgICAgIEFhay51dy5hZGJsb2NrX3ZpZGVvX21zZ19zdGFydCA9IGZ1bmN0aW9uICgpIHt9Ow
ogICAgICAgICAgQWFrLnV3LmFkYmxvY2tfdmlkZW9fbXNnX3N0b3AgPSBmdW5jdGlvbiAoKSB7fTsKICAgI
CAgICAgIEFhay51dy5kaXNhYmxlX2NoYXQgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICB9CiAgICAgIH0s
CiAgICAgIC8vIEdlcm1hbnkKICAgICAgbm93X2RvbWFpbnMgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHB
zOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzMzNgogICAgICAgIC8vIH
Rlc3Q6IGh0dHA6Ly90aW55dXJsLmNvbS9wZWVvYm91CiAgICAgICAgLy8gdGVzdDogaHR0cDovL2pzYmluL
mNvbS92dWNvYmVqb2ZvCiAgICAgICAgaG9zdCA6IFsndm94bm93LmRlJywgJ3J0bC1ub3cucnRsLmRlJywg
J3J0bDJub3cucnRsMi5kZScsICduLXR2bm93LmRlJywgJ3N1cGVycnRsbm93LmRlJywgJ3J0bG5pdHJvbm9
3LmRlJywgJ25vd3R2LmRlJ10sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgLy
oKICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsYXllcigpOwogICAgICAgICAgUGxheWVyLmVka
XRpbmcoJyN2aWRlb3BsYXllcicsIHsKICAgICAgICAgIHVuc2V0Rmxhc2h2YXJzIDogJ2FiY2hlY2tfZW5h
YmxlZCxhZGNhbGwsYWRjbGFzc2VzLGFkY29uZmlnLGFkbWV0YSxhZHNsb2csYWdvZixhbWEsYW5nZWJvdCx
hcyxhc3BhcnRzLGJyZWFrYWQsY29ubmVjdGlvbmNoZWNrLGNzbG9nLGRldixkaW1tZXIsZXJyb3Jsb2csZm
VlZGJhY2ssZm1zaWRlbnQsZ3R2LGhpZ2hsaWdodHMsaXZ3LGl2d19wbGF5LGpzLGpzX2V2ZW50X2Z1bmN0a
W9uLGxvZ28sbG9nb19iYXNld2lkdGgsbG9nb3BvcyxuaWVsc2VuLG9yZCxvc21mLHN2bSx0aWxlLHZpZGVv
cGxhemEsdmlkZW9wbGF6YV9iYXNlX3VybCx2aWRlb3BsYXphX3NoYXJlLHZpZGVvcGxhemFfdGFnLHZwRW5
2aXJvbm1lbnRVUkwseGwnCiAgICAgICAgICB9KTsKICAgICAgICAgICAqLwogICAgICAgIH0KICAgICAgfS
wKICAgICAgcnRsX2RlIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hb
nRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNTQxCiAgICAgICAgLy8gdGVzdDogaHR0cDovL3Rpbnl1cmwu
Y29tL2g3Y2N2cXEKICAgICAgICBob3N0IDogWydydGwuZGUnXSwKICAgICAgICBvbklkbGUgOiBmdW5jdGl
vbiAoKSB7CiAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbG
VjdG9yQWxsKCdkaXZbZGF0YS13aWRnZXQ9InZpZGVvIl0nKSkubWFwKGZ1bmN0aW9uICh2aWRlbykgewogI
CAgICAgICAgICB2YXIgY2ZnID0gQWFrLmludG9PYmplY3QodmlkZW8uZGF0YXNldC5wbGF5ZXJMYXllckNm
Zyk7CiAgICAgICAgICAgIHZhciBmaWxlID0gY2ZnLnZpZGVvaW5mby5tcDR1cmw7CiAgICAgICAgICAgIEF
hay5sb2codmlkZW8sIGNmZywgZmlsZSk7CgogICAgICAgICAgICAvLyBSZXBsYWNlIHBsYXllcgogICAgIC
AgICAgICB2YXIgUGxheWVyID0gbmV3IEFhay5wbGF5ZXIoKTsKICAgICAgICAgICAgUGxheWVyLnZpZGVva
nModmlkZW8sIHsKICAgICAgICAgICAgICBzb3VyY2UgOiBmaWxlLAogICAgICAgICAgICAgIHR5cGUgOiAn
bXA0JywKICAgICAgICAgICAgICBhdXRvcGxheSA6IGZhbHNlCiAgICAgICAgICAgIH0pOwogICAgICAgICA
gfSk7CiAgICAgICAgfQogICAgICB9LAogICAgICBteXNwYXNzX2RlIDogewogICAgICAgIC8vIGlzc3VlOi
BodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy83NgogICAgICAgI
C8vIHRlc3Q6IGh0dHA6Ly90aW55dXJsLmNvbS9sdG85cHlkCiAgICAgICAgaG9zdCA6IFsnbXlzcGFzcy5k
ZSddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciB2aWRlb2lkID0gbG9
jYXRpb24ucGF0aG5hbWUubWF0Y2goL1wvKFxkKylcLyQvKTsKCiAgICAgICAgICBpZiAodmlkZW9pZCAhPT
0gbnVsbCkgewogICAgICAgICAgICBBYWsucmVxdWVzdCh7CiAgICAgICAgICAgICAgdXJsIDogJ2h0dHA6L
y93d3cubXlzcGFzcy5kZS9teXNwYXNzL2luY2x1ZGVzL2FwcHMvdmlkZW8vZ2V0dmlkZW9tZXRhZGF0YXht
bC5waHA/aWQ9JyArIHZpZGVvaWRbMV0sCiAgICAgICAgICAgICAgb25sb2FkIDogZnVuY3Rpb24gKHJlc3V
sdCkgewogICAgICAgICAgICAgICAgdmFyIHJlcyA9IHJlc3VsdC5yZXNwb25zZVRleHQ7CiAgICAgICAgIC
AgICAgICBBYWsubG9nKHJlcyk7CgogICAgICAgICAgICAgICAgLy8gR2V0IHZpZGVvCiAgICAgICAgICAgI
CAgICB2YXIgcGFyc2VyID0gbmV3IHdpbmRvdy5ET01QYXJzZXIoKTsKICAgICAgICAgICAgICAgIHZhciBk
b20gPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHJlcywgImFwcGxpY2F0aW9uL3htbCIpOwogICAgICAgICA
gICAgICAgdmFyIGZpbGUgPSBkb20uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVybF9mbHYiKS5pdGVtKDApLn
RleHRDb250ZW50OwoKICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBlbGVtZW50cwogICAgICAgICAgICAgI
CAgQWFrLnJlbW92ZUVsZW1lbnQoJ2Rpdi5sb2FkaW5nR2lmJyk7CgogICAgICAgICAgICAgICAgLy8gUmVw
bGFjZSBwbGF5ZXIKICAgICAgICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsYXllcigpOwogICA
gICAgICAgICAgICAgUGxheWVyLnZpZGVvanMoJyNwbGF5ZXInLCB7CiAgICAgICAgICAgICAgICAgIHNvdX
JjZSA6IGZpbGUsCiAgICAgICAgICAgICAgICAgIHR5cGUgOiAnbXA0JywKICAgICAgICAgICAgICAgICAgY
XV0b3BsYXkgOiBmYWxzZQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICAvLyBOZWRlcmxhbmQKICAgICA
gcnRseGxfbmwgOiB7CiAgICAgICAgLy8gdGVzdDogaHR0cDovL3Rpbnl1cmwuY29tL2wyemt2M2QKICAgIC
AgICBob3N0IDogWydydGx4bC5ubCcsICdydGxuaWV1d3MubmwnXSwKICAgICAgICBvbkVuZCA6IGZ1bmN0a
W9uICgpIHsKICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsYXllcigpOwogICAgICAgICAgUGxh
eWVyLmVkaXRpbmcoJyNfcnRsb3NtZjAnLCB7CiAgICAgICAgICAgIHNldEZsYXNodmFycyA6IHsKICAgICA
gICAgICAgICBhZGJsb2NrIDogZmFsc2UKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQ
ogICAgICB9LAogICAgICAvLyBOb3J3YXkKICAgICAgdmd0dl9uZXR3b3JrIDogewogICAgICAgIC8vIG5vd
GU6IHNraXAgdmlkZW8gYWRzICsgYW50aS1hZGJsb2NrCiAgICAgICAgLy8gandwbGF5ZXI6IGh0dHA6Ly90
aW55dXJsLmNvbS96eXY3OWhnCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2F
udGktYWRibG9jay1raWxsZXIvaXNzdWVzLzE0MDIKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodW
IuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMzY3CiAgICAgICAgLy8gdGVzdDogaHR0c
DovL3Rpbnl1cmwuY29tL253cDg1dCwgaHR0cDovL3Rpbnl1cmwuY29tL253cDg1dAogICAgICAgIGhvc3Qg
OiBbJ3ZndHYubm8nLCAndmcubm8nXSwKICAgICAgICBvbkVuZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICA
gIHZhciBvbGRIYXNoID0gbnVsbDsKICAgICAgICAgIHZhciB2aWRlb0lkID0gbnVsbDsKICAgICAgICAgIH
ZhciB2aWRlb0lkUmVnZXggPSAvI1whXC92aWRlb1wvKFxkKylcLy87CgogICAgICAgICAgLy8gY2hlY2sga
WYgdGhlIGxvY2F0aW9uIGhhc2ggY2hhbmdlcwogICAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICB2YXIgcGxheWVyID0gQWFrLmdldEVsZW1lbnQoJy52aWRlby1wbGF5ZXInKTsKCiA
gICAgICAgICAgIGlmIChwbGF5ZXIgJiYgbG9jYXRpb24uaGFzaCAhPSBvbGRIYXNoICYmIHZpZGVvSWRSZW
dleC50ZXN0KGxvY2F0aW9uLmhhc2gpKSB7CiAgI
CAgICAgICAgICAgb2xkSGFzaCA9IGxvY2F0aW9uLmhhc2g7CiAgICAgICAgICAgICAgdmlkZW9JZCA9IG9s
ZEhhc2gubWF0Y2godmlkZW9JZFJlZ2V4KVsxXTsKLyoKICAgICAgICAgICAgICB2YXIgaGxzdXJsID0gJ2h
0dHBzOi8vc3Zwc2VjdXJlaGR2b2QtdmguYWthbWFpaGQubmV0L2kvMjAxNi8wMy8yMDE2MDMxMl81NmU0Mj
FmODZhZjQ1X3ZnMDEvLDEyODBfNzIwXzM1MDAsOTYwXzU0MF8xNTAwLDY0MF8zNjBfODAwLDQ4MF8yNzBfN
TAwLC5tcDQuY3NtaWwvbWFzdGVyLm0zdTgnOwogICAgICAgICAgICAgIGNvbnNvbGUubG9nKHBsYXllcikK
CiAgICAgICAgICAgICAgLy8gZG9uJ3Qgd29yayB3aXRoIGNocm9tZQogICAgICAgICAgICAgIC8vIHBsYXl
lci5pbm5lckhUTUwgPSAnPGRpdiBpZD0ibm9BZFBsYXllciI+VGhpcyB0ZXh0IHdpbGwgYmUgcmVwbGFjZW
Qgd2l0aCBhIHBsYXllci48L2Rpdj4nOwoKCiAgICAgICAgICAgICAgLy8gY2FuJ3QgbG9hZCBtM3U4IDQwM
zIgc3RhdHVzIGNvZGUKICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHVuc2FmZVdpbmRvdy5qd3BsYXll
cikKCiAgICAgICAgICAgICAgQWFrLnJlcXVlc3QoewogICAgICAgICAgICAgICAgdXJsIDogJ2h0dHA6Ly9
zdnAudmcubm8vc3ZwL2FwaS92MS92Z3R2L2Fzc2V0cy8nICsgdmlkZW9JZCArICc/YWRkaXRpb25hbD1zZX
R0aW5nc3xjaGFwdGVyc3xjdWVQb2ludHN8ZXh0ZXJuYWxJZHxiYXJyZWxzfGV4dGVybmFsQ2F0ZWdvcnlJZ
HxuZXh0QXNzZXQmYXBwTmFtZT12Z3R2LXdlYnNpdGUnLAogICAgICAgICAgICAgICAgb25sb2FkIDogZnVu
Y3Rpb24gKHJlc3VsdCkgewogICAgICAgICAgICAgICAgICB2YXIgcmVzID0gcmVzdWx0LnJlc3BvbnNlVGV
4dDsKICAgICAgICAgICAgICAgICAgdmFyIG9iaiA9IEpTT04ucGFyc2UocmVzKTsKICAgICAgICAgICAgIC
AgICAgQWFrLmxvZyhvYmopOwoKICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBwbGF5ZXIKICAgICAgI
CAgICAgICAgICAgdmFyIFBsYXllciA9IG5ldyBBYWsucGxheWVyKCk7CiAgICAgICAgICAgICAgICAgIFBs
YXllci52bGMocGxheWVyLCB7CiAgICAgICAgICAgICAgICAgICAgc291cmNlIDogb2JqLnN0cmVhbVVybHM
uaGxzLCAvLyBtM3U4CiAgICAgICAgICAgICAgICAgICAgdHlwZSA6ICdobHMnLAogICAgICAgICAgICAgIC
AgICAgIGF1dG9wbGF5IDogZmFsc2UKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9C
iAgICAgICAgICAgICAgfSwge30sIHsKICAgICAgICAgICAgICAgIGluc2VydCA6ICdpbm5lcicKICAgICAg
ICAgICAgICB9KTsKKi8KICAgICAgICAgICAgfQogICAgICAgICAgfSwgMWUzKTsKICAgICAgICB9CiAgICA
gIH0sCiAgICAgIG10Z19yYWRpbyA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3
JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTQ5NQogICAgICAgIGhvc3QgOiBbJ3BsYXkucmFka
W8xLnNlJywgJ3BsYXkuYmFuZGl0LnNlJywgJ3BsYXkubHVnbmFmYXZvcml0ZXIuY29tJywgJ3BsYXkucml4
Zm0uc2UnXSwKICAgICAgICBvbkVuZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTY3JpcHQ
oZnVuY3Rpb24gKCkgewogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC
AgICB3aW5kb3cucGxheWVyX2xvYWRfbGl2ZSh3aW5kb3cuc3RyZWFtX2lkKTsKICAgICAgICAgICAgfSwgM
TAwMCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRwbGF5X25ldHdvcmsgOiB7
CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXI
vaXNzdWVzLzE0NjMKICAgICAgICBob3N0IDogWydkcGxheS5jb20nLCAnZHBsYXkuZGsnLCAnZHBsYXkuc2
UnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGRhdGUgPSBuZXcgR
GF0ZSgpOwogICAgICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMzY1KTsKICAgICAgICAg
IHZhciB0aW1lc3RhbXAgPSBkYXRlLmdldFRpbWUoKS50b1N0cmluZygpOwogICAgICAgICAgdmFyIHZhbHV
lID0gSlNPTi5zdHJpbmdpZnkoewogICAgICAgICAgICAgICJub3RpZmljYXRpb25TdWJtaXNzaW9uIiA6IC
JzdWJtaXR0ZWQiLAogICAgICAgICAgICAgICJyZXBvcnRpbmdFeHBpcnkiIDogdGltZXN0YW1wLAogICAgI
CAgICAgICAgICJub3RpZmljYXRpb25FeHBpcnkiIDogdGltZXN0YW1wCiAgICAgICAgICAgIH0pOwogICAg
ICAgICAgQWFrLnNldENvb2tpZSgnZHNjLWFkYmxvY2snLCB2YWx1ZSk7CiAgICAgICAgfQogICAgICB9LAo
gICAgICB2aWFzYXRfdHYgOiB7CiAgICAgICAgLy8gbm90ZTogc2tpcCB2aWRlbyBhZHMgKyBhbnRpLWFkYm
xvY2sKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpb
Gxlci9pc3N1ZXM/cT10djNwbGF5CiAgICAgICAgLyogdGVzdDogaHR0cDovL3d3dy50djNwbGF5Lm5vL3By
b2dyYW1tZXIvcmVkbmluZ3Nza295dGEgaGRzL2hscwogICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5
0djNwbGF5LmRrL3Byb2dyYW1tZXIvbGluc2Utb2ctZGlkZGUtZWtzdHJhIGhkcy9obHMKICAgICAgICAgIC
AgICAgICAgIGh0dHA6Ly93d3cudHYzcGxheS5zZS9wcm9ncmFtL2dsYW1vdXJhbWEgaGRzL2hscwogICAgI
CAgICAgICAgICAgICAgaHR0cDovL3d3dy50djZwbGF5LnNlL3Byb2dyYW0vOTktc2FrZXItbWFuLW1hc3Rl
LWdvcmEtaW5uYW4tbWFuLWRvciBoZHMvaGxzCiAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LnR2OHB
sYXkuc2UvcHJvZ3JhbS9lZnRlcmx5c3QtLTEgaGRzL2hscwogICAgICAgICAgICAgICAgICAgaHR0cDovL3
d3dy50djEwcGxheS5zZS9wcm9ncmFtL2dhcnBlbnMtZXVyb3BhIGhkcy9obHMKICAgICAgICAgICAgICAgI
CAgIGh0dHA6Ly90dnBsYXkuc2thdGllcy5sdi9wYXJyYWlkZXMvdHYzLXppbmFzIGhkcy9obHMKICAgICAg
ICAgICAgICAgICAgIGh0dHA6Ly9wbGF5LnR2My5sdC9wcm9ncmFtb3MvYmVhdG9zLXZpcnR1dmUgcnRtcC9
obHMKICAgICAgICAgICAgICAgICAgIGh0dHA6Ly90djNwbGF5LnR2My5lZS9zaXN1L3B1aGFwYWV2LXNlcG
9nYSBydG1wL2hscyAqLwogICAgICAgIGhvc3QgOiBbJ3R2M3BsYXkubm8nLCAndHYzcGxheS5kaycsICd0d
jNwbGF5LnNlJywgJ3R2NnBsYXkuc2UnLCAndHY4cGxheS5zZScsICd0djEwcGxheS5zZScsICd0dnBsYXku
c2thdGllcy5sdicsICdwbGF5LnR2My5sdCcsICd0djNwbGF5LnR2My5lZSddLAogICAgICAgIG9uSWRsZSA
6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5oYXNFbGVtZW50KCcjdmlkZW8tcGxheWVyJywgZnVuY3
Rpb24gKHRoaXNFbGVtZW50KSB7CiAgICAgICAgICAgIHRoaXNFbGVtZW50LmlkID0gJyc7CiAgICAgICAgI
CAgIC8vdmFyIHZpZGVvSWQgPSBsb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpLnBvcCgpOwogICAgICAg
ICAgICB2YXIgdmlkZW9JZCA9IHRoaXNFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS12aWRlby1pZCcpOwo
gICAgICAgICAgICBBYWsubG9nKHRoaXNFbGVtZW50LCB2aWRlb0lkKTsKCiAgICAgICAgICAgIC8vIGdldC
B2aWRlbyBzb3VyY2VzCiAgICAgICAgICAgIEFhay5yZXF1ZXN0KHsKICAgICAgICAgICAgICB1cmwgOiAna
HR0cDovL3BsYXlhcGkubXRneC50di92My92aWRlb3Mvc3RyZWFtLycgKyB2aWRlb0lkLAogICAgICAgICAg
ICAgIG9ubG9hZCA6IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICAgICAgICAgICAgIHZhciByZXMgPSByZXN
1bHQucmVzcG9uc2VUZXh0OwogICAgICAgICAgICAgICAgdmFyIG9iaiA9IEpTT04ucGFyc2UocmVzKTsKIC
AgICAgICAgICAgICAgIEFhay5sb2cob2JqKTsKCiAgICAgICAgICAgICAgICAvKiBJbm5ob2xkZXQgZHUgc
HLDuHZlciDDpSBzZSBlciBrdW4gdGlsZ2plbmdlbGlnIGZvciBicnVrZXJlIGkgTm9yZ2UKICAgICAgICAg
ICAgICAgIFByb2dyYW1tZXQgZXIgYmxva2VyZXQgZm9yIHZpc25pbmcgZnJhIGRlbm5lIGdlb2dyYWZpc2t
lIHBvc2l0aW9uLgogICAgICAgICAgICAgICAgUHJvZ3JhbcSFIGdhbGl0ZSBtYXR5dGkgdGlrIGp1bmdkYW
1pZXNpIGnFoSBMaWV0dXZvcyBpbnRlcm5ldG8gdGlla8SXasWzIHRpbmtsxbMgKi8KICAgICAgICAgICAgI
CAgIGlmIChvYmoubXNnKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzRWxlbWVudC5pbm5lckhU
TUwgPSBvYmoubXNnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5
ob3N0ID09PSAndHYzcGxheS50djMuZWUnKSB7CiAgICAgICAgICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZX
cgQWFrLnBsYXllcigpOwogICAgICAgICAgICAgICAgICBQbGF5ZXIuZ3JpbmRwbGF5ZXIodGhpc0VsZW1lb
nQsIHsKICAgICAgICAgICAgICAgICAgICBzb3VyY2UgOiBvYmouc3RyZWFtcy5tZWRpdW0sCiAgICAgICAg
ICAgICAgICAgICAgdHlwZSA6ICdydG1wL21wNCcsCiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXkgOiB
0cnVlCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC
AgICAgICAgLy8gY3JlYXRlIHZpZGVvIHRhZyBmb3IgbmV3IHBsYXllcgogICAgICAgICAgICAgICAgICBBY
WsuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgICAgICAgICAgdGFnIDogJ3ZpZGVvJywKICAgICAgICAg
ICAgICAgICAgICBpZCA6ICdub0FkUGxheWVyJywKICAgICAgICAgICAgICAgICAgICBjbGFzc2lkIDogJ3Z
pZGVvLWpzIHZqcy1kZWZhdWx0LXNraW4nLAogICAgICAgICAgICAgICAgICAgIHdpZHRoIDogdGhpc0VsZW
1lbnQuY2xpZW50V2lkdGggfHwgNzMwLAogICAgICAgICAgICAgICAgICAgIGhlaWdodCA6IHRoaXNFbGVtZ
W50LmNsaWVudEhlaWdodCB8fCA0MTAsCiAgICAgICAgICAgICAgICAgICAgcHJlbG9hZCA6ICdhdXRvJywK
ICAgICAgICAgICAgICAgICAgICBjb250cm9scyA6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgYXV0b3B
sYXkgOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgOiB0aGlzRWxlbWVudAogICAgICAgIC
AgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgIC8vIHBhcnNlIHNvdXJjZXMKICAgICAgICAgICAgI
CAgICAgdmFyIHNyY0FycmF5ID0gW107CiAgICAgICAgICAgICAgICAgIGlmIChvYmouc3RyZWFtcy5oaWdo
ICYmIG9iai5zdHJlYW1zLmhpZ2ggIT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgc3JjQXJyYXkucHV
zaCh7CiAgICAgICAgICAgICAgICAgICAgICB0eXBlIDogInZpZGVvL21wNCIsIC8vIG1wNAogICAgICAgIC
AgICAgICAgICAgICAgc3JjIDogb2JqLnN0cmVhbXMuaGlnaAogICAgICAgICAgICAgICAgICAgIH0pOwogI
CAgICAgICAgICAgICAgICB9ICBpZiAob2JqLnN0cmVhbXMuaGxzICYmIG9iai5zdHJlYW1zLmhscyAhPT0g
JycpIHsKICAgICAgICAgICAgICAgICAgICBzcmNBcnJheS5wdXNoKHsKICAgICAgICAgICAgICAgICAgICA
gIHR5cGUgOiAiYXBwbGljYXRpb24veC1tcGVnVVJMIiwgLy8gbTN1OAogICAgICAgICAgICAgICAgICAgIC
Agc3JjIDogb2JqLnN0cmVhbXMuaGxzCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgI
CAgIH0gIGlmIChvYmouc3RyZWFtcy5tZWRpdW0gJiYgb2JqLnN0cmVhbXMubWVkaXVtICE9PSAnJykgewog
ICAgICAgICAgICAgICAgICAgIHZhciB0eXBlID0gb2JqLnN0cmVhbXMubWVkaXVtLmluZGV4T2YoJ3J0bXA
nKSA9PT0gMCA/ICdydG1wL21wNCcgOiAnYXBwbGljYXRpb24vZjRtK3htbCc7CiAgICAgICAgICAgICAgIC
AgICAgc3JjQXJyYXkucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICB0eXBlIDogdHlwZSwKICAgICAgI
CAgICAgICAgICAgICAgIHNyYyA6IG9iai5zdHJlYW1zLm1lZGl1bQogICAgICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIEFhay5sb2coc3JjQXJyYXksIEpTT04
uc3RyaW5naWZ5KHNyY0FycmF5KSk7CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAvLy
Bpbml0aWFsaXplIG5ldyBwbGF5ZXIKICAgICAgICAgICAgICAgICAgQWFrLmFkZFNjcmlwdChBYWsuaW50b
1N0cmluZyhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvblZqc1JlYWR5KCkgewogICAgICAgICAgICAgICAgICA
gICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnZpZGVvanMgIT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgIC
AgICAgICAgICAgICAgICAgIG9uVmpzUmVhZHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc
2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnZpZGVvanMoIm5vQWRQbGF5ZXIiKS5z
cmMoL19TT1VSQ0VTXy8pOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICA
gICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBvblZqc1JlYWR5KCk7CiAgICAgICAgICAgICAgIC
AgICAgICB9KSgpOwogICAgICAgICAgICAgICAgICAgIH0pLnJlcGxhY2UoIi9fU09VUkNFU18vIiwgSlNPT
i5zdHJpbmdpZnkoc3JjQXJyYXkpKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgLy8gUnVzc2lhCiA
gICAgIHJ1dHViZV9ydSA6IHsgLy8gcmVzZWFyY2ggc29sdXRpb24KICAgICAgICAvKiB0ZXN0OiBodHRwOi
8vcnV0dWJlLnJ1L3ZpZGVvL2JkNWY2MDQ3NjU3ZjBiZGNiZmJiMGVkYWQyYmI3YzYxLyAqLwogICAgICAgI
Ghvc3QgOiBbJ3J1dHViZS5ydSddLAogICAgICAgIG9uRW5kIDogZnVuY3Rpb24gKCkgewogICAgICAgICAg
QWFrLmhhc0VsZW1lbnQoJyNydXR1YmVQbGF5ZXJIb2xkZXInLCBmdW5jdGlvbiAoKSB7ICAgICAgICAgICA
gLy9kbUZ5SUc5d2RITWdQU0JCWVdzdVoyVjBSV3hsYldWdWRDZ2lJMjl3ZEdsdmJuTWlLVHNOQ2lBZ0lDQW
dJQ0FnSUNBZ0lIWmhjaUJ2SUQwZ1FXRnJMbWx1ZEc5UFltcGxZM1FvYjNCMGN5NWtZWFJoYzJWMExuWmhiS
FZsS1RzTkNpQWdJQ0FnSUNBZ0lDQWdJSFpoY2lCdE0zVTRWWEpzSUQwZ2J5NTJhV1JsYjE5aVlXeGhibU5s
Y2k1dE0zVTRPdzBLSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1c2IyY29iVE4xT0ZWeWJDazdEUW9OQ2l
BZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJRYkdGNVpYSWdQU0J1WlhjZ1FXRnJMbkJzWVhsbGNpZ3BPdzBLSUNBZ0
lDQWdJQ0FnSUNBZ1VHeGhlV1Z5TG5acFpHVnZhbk1vSnlOeWRYUjFZbVZRYkdGNVpYSkliMnhrWlhJbkxDQ
jdEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjMjkx
Y21ObElEb2diVE4xT0ZWeWJDd05DaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsSURvZ0oyaHNjeWNzRFF
vZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk5d2NtOTRlVG9nZEhKMVpTd05DaUFnSUNBZ0lDQWdJQ0FnSUNBZ0
lDQmhkWFJ2Y0d4aGVTQTZJSFJ5ZFdVTkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlRzZ0tUcz0KICAgICAgICAgI
H0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgLy8gSXRhbHkKICAgICAgcmFpX3R2IDogeyAvLyByZXNl
YXJjaCBzb2x1dGlvbgogICAgICAgIGhvc3QgOiBbJ3JhaS50diddLAogICAgICAgIG9uU3RhcnQgOiBmdW5
jdGlvbiAoKSB7fSwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7fQogICAgICB9LAogICAgICAvLy
BUViBTdHJlYW0KICAgICAgYmxvY2tfc3RyZWFtc190diA6IHsKICAgICAgICAvLyBub3RlOiByZWRpcmVjd
CB0byBodHRwOi8vYmxvY2suc3RyZWFtcy50di8KICAgICAgICBob3N0IDogWydmaXJzdHJvdy5jbycsICdm
aXJzdHJvd3MucnUnLCAnZmlyc3Ryb3dzLnR2JywgJ2ZpcnN0cm93cy5vcmcnLCAnZmlyc3Ryb3dzLmNvJyw
gJ2ZpcnN0cm93cy5iaXonLCAnZmlyc3Ryb3d1cy5ldScsICdmaXJzdHJvdzF1cy5ldScsICdmaXJzdHNyb3
dzcG9ydHMuZXUnLCAnZmlyc3Ryb3dzcG9ydGVzLnR2JywgJ2ZpcnN0cm93c3BvcnRlcy5jb20nLCAnanVzd
GZpcnN0cm93c3BvcnRzLmNvbScsICdoYWhhc3BvcnQubWUnLCAnd2l6aXdpZy5ydScsICd3aXppd2lnLnN4
JywgJ3dpeml3aWcudG8nLCAnd2l6aXdpZy50dicsICdteXAycC5iaXonLCAnbXlwMnAudHYnLCAnbXlwMnA
ubGEnLCAnbXlwMnAuZWMnLCAnbXlwMnAuZXUnLCAnbXlwMnAuc3gnLCAnbXlwMnAud3MnLCAnbXlwMnAuY2
9tJywgJ2F0ZGhlLnJ1JywgJ2F0ZGhlLnNlJywgJ2F0ZGhlLmJ6JywgJ2F0ZGhlLnRvcCcsICdhdGRoZS50b
ycsICdhdGRoZS5tZScsICdhdGRoZS5teCcsICcgYXRkaGUubGknLCAnYXRkaGUuYWwnXSwKICAgICAgICBv
bkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRDb29raWUoImFkYiIsIDEpOyAvLyB
wcmV2ZW50IGFudGktYWRibG9jawogICAgICAgICAgQWFrLnV3Lm9wZW4gPSBmdW5jdGlvbiAoKSB7fTsgLy
8gcHJldmVudCBwb3B1cAogICAgICAgICAgQWFrLmFkZFN0eWxlKCIjYmFubmVySW5DZW50ZXIsICNoaWRkZ
W5CYW5uZXJDYW52YXMgeyBkaXNwbGF5OiBub25lOyB9Iik7IC8vIGhpZGUgYWRzCiAgICAgICAgfQogICAg
ICB9LAogICAgICBidXppbmFfeHl6IDogewogICAgICAgIC8vIG5vdGU6IGRpc2FibGUgcmVmY29udHJvbCw
gdXNlZCBieSBmaXJzdHJvd3Nwb3J0cwogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcm
Vlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMjY4CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ
2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEyNDMKICAgICAgICAvLyBpc3N1
ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvODg5CiAgICA
gICAgLy8gaXNzdWU6IGh0dHBzOi8vZ3JlYXN5Zm9yay5vcmcvZm9ydW0vZGlzY3Vzc2lvbi84OTc1CiAgIC
AgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tLzhWVHJrdlM5CiAgICAgICAgaG9zdCA6IFsnY
nV6aW5hLnh5eicsICdmYXJtZXQuaW5mbycsICdyaW1sYWRpLmNvbScsICdraXRvcmVsby5jb20nLCAnb21u
aXBvbGEuY29tJywgJ3Bvcm9zaW4uY28udWsnLCAncmltbGVuby5jb20nLCAnc2ltcGxlNGFsbHMuY29tJyw
gJ2Fyc29wby5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLm
FkZFN0eWxlKCIjYWRzZnJhbWUgeyBoZWlnaHQ6IDE1MXB4OyB9Iik7CiAgICAgICAgfSwKICAgICAgICBvb
klkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoL2J1emluYS54eXovLnRlc3QobG9jYXRpb24u
aG9zdCkpIHsgLy8ga2VlcHMgc2FtZSBob3N0IHN0cmVhbQogICAgICAgICAgICBBYWsuaGFzRWxlbWVudCg
naWZyYW1lW3NyYyo9Ii5waHA/aGFzaD0iXScsIGZ1bmN0aW9uICh0aGlzRWxlbWVudCkgewogICAgICAgIC
AgICAgIC8vIGh0dHA6Ly9hcnNvcG8uY29tL3cyLnBocD9oYXNoPXBhbmRhNTgKICAgICAgICAgICAgICAvL
yBodHRwOi8vd3d3LmJ1emluYS54eXovbmFuYTF2MS5waHA/b250aGV0b3AKICAgICAgICAgICAgICB2YXIg
cGFydHMgPSB0aGlzRWxlbWVudC5zcmMuc3BsaXQoJy8nKTsKICAgICAgICAgICAgICBwYXJ0c1syXSA9IEF
hay5ydWxlcy5idXppbmFfeHl6Lmhvc3QucG9wKCk7CiAgICAgICAgICAgICAgQWFrLmxvZyh0aGlzRWxlbW
VudCwgcGFydHMpOwogICAgICAgICAgICAgIHRoaXNFbGVtZW50LnNyYyA9IHBhcnRzLmpvaW4oJy8nKTsKC
iAgICAgICAgICAgICAgICAvKglkbUZ5SUc4Z1BTQjdDZ2tKQ1NBZ0lDQWljR3hoZVd4cGMzUWlJRG9nVzNz
S0NRa0pJQ0FnSUNBZ0lDQWljSEp2ZG1sa1pYSWlJRG9nSW5KMGJYQWlMQW9KQ1FrZ0lDQWdJQ0FnSUNKMWN
td2lJRG9nSW5CaGJtUmhNVDlsSlRORU1UUTJOVEEzTURNeU5pVXlObk4wSlRORVVISjBTRmw1ZGtKNlpEbG
FaRGRvUkY5bVVraFVaekV4TVRFek1DSUtDUWtKSUNBZ0lDQWdmUW9KQ1FrZ0lDQWdYU3dLQ1FrSklDQWdJQ
0p3YkhWbmFXNXpJaUE2SUhzS0NRa0pJQ0FnSUNBZ0luSjBiWEFpSURvZ2V3b0pDUWtnSUNBZ0lDQWdJQ0ox
Y213aUlEb2dJbVpzYjNkd2JHRjVaWEl1Y25SdGNDMHpMakl1TVRFdWMzZG1JaXdnQ2drSkNRa0pMeThpZFh
Kc0lqb2dJbWgwZEhBNkx5OXlaV3hsWVhObGN5NW1iRzkzY0d4aGVXVnlMbTl5Wnk5emQyWXZabXh2ZDNCc1
lYbGxjaTV5ZEcxd0xUTXVNaTR4TVM1emQyWWlMQW9KQ1FrZ0lDQWdJQ0FnSUNKdVpYUkRiMjV1WldOMGFXO
XVWWEpzSWlBNklDSnlkRzF3T2k4dk1UZzFMamd5TGpJeE5TNDBOVG96TlRjNUwzWnZaQzhpQ2drSkNTQWdJ
Q0FnSUgwc0Nna0pDU0FnSUNBZ0lDSmpiMjUwY205c2N5SWdPaUI3Q2drSkNRa2dJQ0FnSW5WeWJDSTZJQ0p
vZEhSd09pOHZjbVZzWldGelpYTXVabXh2ZDNCc1lYbGxjaTV2Y21jdmMzZG1MMlpzYjNkd2JHRjVaWEl1WT
I5dWRISnZiSE10TXk0eUxqRTJMbk4zWmlJc0lDOHZJR0ZrWkdWa0lHSmxZMkYxYzJVZ2JXbHpjMmx1WndvS
kNRa2dJQ0FnSUNBZ0lDSndiR0Y1SWlBNklHWmhiSE5sTEFvSkNRa2dJQ0FnSUNBZ0lDSnpZM0oxWW1KbGNp
SWdPaUJtWVd4elpRb0pDUWtnSUNBZ0lDQjlDZ2tKQ1NBZ0lDQjlMQW9KQ1FrZ0lDQWdJbkJzWVhsbGNrbGt
JaUE2SUNKd2JHRjVaWElpTEFvSkNRa2dJQ0FnSW1Oc2FYQWlJRG9nZXdvSkNRa2dJQ0FnSUNBaWRYSnNJaU
E2SUNKd1lXNWtZVEUvWlNVelJERTBOalV3TnpBek1qWWxNalp6ZENVelJGQnlkRWhaZVhaQ2VtUTVXbVEzY
UVSZlpsSklWR2N4TVRFeE16QWlDZ2tKQ1NBZ0lDQjlDZ2tKQ1NBZ2ZRb0tDUWtKSUNCMllYSWdibVYzVlhK
c0lEMGdjR0Z5ZEhNdWMyeHBZMlVvTUN3Z015a3VhbTlwYmlnbkx5Y3BJQ3NnSnk5bWJHOTNjR3hoZVdWeUx
UTXVNaTR4Tmk1emQyWS9ZMjl1Wm1sblBTY2dLeUJsYzJOaGNHVW9TbE5QVGk1emRISnBibWRwWm5rb2J5a3
BPd29KQ1FrZ0lDOHZkbUZ5SUc1bGQxVnliQ0E5SUNkb2RIUndPaTh2Y21Wc1pXRnpaWE11Wm14dmQzQnNZW
GxsY2k1dmNtY3ZjM2RtTDJac2IzZHdiR0Y1WlhJdE15NHlMakUyTG5OM1pqOWpiMjVtYVdjOUp5QXJJR1Z6
WTJGd1pTaEtVMDlPTG5OMGNtbHVaMmxtZVNodktTazdDZ2tKQ1NBZ1kyOXVjMjlzWlM1c2IyY29ibVYzVlh
Kc0tUc0tDUWtKSUNCMGFHbHpSV3hsYldWdWRDNXpjbU1nUFNCdVpYZFZjbXc3CiAgICAgICAgICAgICAgIC
AqLwogICAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7IC8vIHNraXAgY
W50aS1hZGJsb2NrCiAgICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KCcjYWRzZnJhbWUnKTsKICAgICAg
ICAgICAgQWFrLmdldEVsZW1lbnQoJyNyZW1vdmUtb3ZlcicpLmNsaWNrKCk7CiAgICAgICAgICB9CiAgICA
gICAgfQogICAgICB9LAogICAgICBhbGxteXZpZGVvc19uZXQgOiB7CiAgICAgICAgLy8gbm90ZTogb2JmdX
NjYXRlZAogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta
2lsbGVyL2lzc3Vlcy8yNzQKICAgICAgICBob3N0IDogWydhbGxteXZpZGVvcy5uZXQnLCAnYW12dHYubmV0
J10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIHNraXAgZmFrZSBwbGF
5IGJ1dHRvbgogICAgICAgICAgQWFrLnNldENvb2tpZSgnX2ZhdmJ0MzMnLCAxKTsKICAgICAgICB9CiAgIC
AgIH0sCiAgICAgIGlsaXZlX2RvbWFpbnMgOiB7CiAgICAgICAgaG9zdCA6IFsnaWxpdmUudG8nLCAnc3RyZ
WFtbGl2ZS50byddLAogICAgICAgIG9uRW5kIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgaWYgKC9eXC9l
bWJlZHBsYXllci5waHAvaS50ZXN0KGxvY2F0aW9uLnBhdGhuYW1lKSkgewogICAgICAgICAgICBzZXRUaW1
lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAvLyBTa2lwIHRpbWVyCiAgICAgICAgICAgICAgQW
FrLnV3LnJlbW92ZU92ZXJsYXlIVE1MKCk7CiAgICAgICAgICAgIH0sIDEwMDApOwogICAgICAgICAgfQogI
CAgICAgIH0KICAgICAgfSwKICAgICAgbWljYXN0X3R2IDogewogICAgICAgIGhvc3QgOiBbJ21pY2FzdC50
diddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvLyBwcmV2ZW50IHBvcHV
uZGVyCiAgICAgICAgICBBYWsuc2V0Q29va2llKCd2aWRfbWFpbicsIHRydWUpOwogICAgICAgICAgQWFrLn
NldENvb2tpZSgndmlkX3N1YicsIHRydWUpOwogICAgICAgICAgLy8gcmVtb3ZlIG92ZXJsYXkKICAgICAgI
CAgIEFhay5hZGRTY3JpcHQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgIGlmICh3aW5kb3cucmVtb3ZlT3ZlcmxheUhUTUwpCiAgICAgICA
gICAgICAgICB3aW5kb3cucmVtb3ZlT3ZlcmxheUhUTUwoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH
0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgcHhzdHJlYW1fdHYgOiB7CiAgICAgICAgaG9zdCA6IFsnc
HhzdHJlYW0udHYnXSwKICAgICAgICBvbkVuZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmICgvXlwv
ZW1iZWRyb3V0ZXIucGhwLy50ZXN0KGxvY2F0aW9uLnBhdGhuYW1lKSkgewogICAgICAgICAgICBzZXRUaW1
lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAvLyBTa2lwIHRpbWVyIGFuZCBjbG9zZSBhZHMKIC
AgICAgICAgICAgICBBYWsudXcuY2xvc2VBZCgpOwogICAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICAgI
H0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIHNhd2xpdmVfdHYgOiB7CiAgICAgICAgaG9zdCA6IFsnc2F3
bGl2ZS50diddLAogICAgICAgIG9uSWRsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmICgvXlwvZW1
iZWRcL3dhdGNoXC8vaS50ZXN0KGxvY2F0aW9uLnBhdGhuYW1lKSkgewogICAgICAgICAgICAvLyBTa2lwIH
RpbWVyIGFuZCBjbG9zZSBhZHMKICAgICAgICAgICAgQWFrLnV3LmRpc3BsYXkgPSBmYWxzZTsKICAgICAgI
CAgICAgQWFrLnV3LmNsb3NlTXlBZCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAg
Z29vZGNhc3RfY28gOiB7CiAgICAgICAgaG9zdCA6IFsnZ29vZGNhc3QuY28nXSwKICAgICAgICBvbklkbGU
gOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoL15cL3N0cmVhbS5waHAvLnRlc3QobG9jYXRpb24ucG
F0aG5hbWUpKSB7CiAgICAgICAgICAgIC8vIHJlbW92ZSBhZHMgYWxsb3dlZCBieSBlYXN5bGlzdAogICAgI
CAgICAgICBBYWsudXcuJCgiLmFkdmVydGlzZW1lbnQiKS5oaWRlKCk7CiAgICAgICAgICAgIEFhay51dy4k
KCcuYWRza3kgaWZyYW1lJykuYXR0cigic3JjIiwgImFib3V0OmJsYW5rIik7CiAgICAgICAgICB9CiAgICA
gICAgfQogICAgICB9LAogICAgICBzaG93c3BvcnRfdHZfY29tIDogewogICAgICAgIGhvc3QgOiBbJ3Nob3
dzcG9ydC10di5jb20nXSwKICAgICAgICBvbklkbGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoL
15cL2NoLnBocC8udGVzdChsb2NhdGlvbi5wYXRobmFtZSkpIHsKICAgICAgICAgICAgLy8gcmVtb3ZlIGFk
cyBhbGxvd2VkIGJ5IGVhc3lsaXN0CiAgICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KCcjYWR2ZXJ0aXN
lbWVudCwgLmFkdmVydGlzZW1lbnQnKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIH
NoYXJlY2FzdF90byA6IHsKICAgICAgICBob3N0IDogWydzaGFyZWNhc3QudG8nXSwKICAgICAgICBvbklkb
GUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBpZiAoL15cL2VtYmVkLnBocC8udGVzdChsb2NhdGlvbi5w
YXRobmFtZSkpIHsKCiAgICAgICAgICAgIC8vIERpc2FibGUgcG9wdW5kZXJzCiAgICAgICAgICAgIHZhciB
pbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIEFhay5zZXRDb2
9raWUoJ3ZpZF9tYWluJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICBBYWsuc2V0Q29va2llKCd2aWRfc3ViJ
ywgMik7CiAgICAgICAgICAgICAgICBBYWsuc2V0Q29va2llKCd2aWRfZGVsYXknLCB0cnVlKTsKICAgICAg
ICAgICAgICB9LCAxMDApOwoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICA
gICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7CiAgICAgICAgICAgIH0sIDUwMDApOwoKICAgICAgIC
AgICAgLy8gUmVtb3ZlIHRyYW5zcGFyZW50IG92ZXJsYXkKICAgICAgICAgICAgQWFrLnJlbW92ZUVsZW1lb
nQoJyN0YWJsZTEnKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIHZpZGVvbWVnYV90
diA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWt
pbGxlci9pc3N1ZXM/cT12aWRlb21lZ2EKICAgICAgICBob3N0IDogWyd2aWRlb21lZ2EudHYnXSwKICAgIC
AgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgaWYgKC9eXC92aWV3LnBocC8udGVzdChsb
2NhdGlvbi5wYXRobmFtZSkpIHsKICAgICAgICAgICAgLy8gcHJldmVudCBwb3B1bmRlcgogICAgICAgICAg
ICBBYWsuc2V0Q29va2llKCd2aWRfbWFpbnB1JywgdHJ1ZSk7CiAgICAgICAgICAgIEFhay5zZXRDb29raWU
oJ3ZpZF9zdWJwdScsIHRydWUpOwogICAgICAgICAgICBBYWsuc2V0Q29va2llKCd2aWRfZGVsYXknLCB0cn
VlKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIG9uRW5kIDogZnVuY3Rpb24gKCkgewogICAgI
CAgICAgLy8ga2lsbCBhYmMKICAgICAgICAgIC8vIGZpeCBidWcgb24gZmlyZWZveDogVGhlIHZpZGVvIGNv
dWxkIG5vdCBiZSBsb2FkZWQsIGVpdGhlciBiZWN
hdXNlIHRoZSBzZXJ2ZXIgb3IgbmV0d29yayBmYWlsZWQgb3IgYmVjYXVzZSB0aGUgZm9ybWF0IGlzIG5vdC
BzdXBwb3J0ZWQuCiAgICAgICAgICB2YXIgc2NyaXB0ID0gQWFrLmhhc1NjcmlwdCgnUGxlYXNlIGRpc2Fib
GUgQWRCbG9jayBQbHVnaW4gdG8gd2F0Y2ggdGhlIHZpZGVvJyk7CiAgICAgICAgICBpZiAoc2NyaXB0KSB7
CiAgICAgICAgICAgIHZhciBzb3VyY2UgPSBzY3JpcHQuaW5uZXJIVE1MOwogICAgICAgICAgICB2YXIgc3V
ic3RyaW5nID0gc291cmNlLnN1YnN0cmluZyhzb3VyY2UubGFzdEluZGV4T2YoJ2V2YWwoJyksIHNvdXJjZS
5sYXN0SW5kZXhPZignKScpICsgMSk7CiAgICAgICAgICAgIHZhciBkZW9iZnVzY2F0ZWQgPSBBYWsudW5wY
WNrU2NyaXB0KHN1YnN0cmluZyk7CiAgICAgICAgICAgIHZhciBuZXdTY3JpcHQgPSAnaWYoJytkZW9iZnVz
Y2F0ZWQuc3Vic3RyaW5nKGRlb2JmdXNjYXRlZC5pbmRleE9mKCd0cnVlJykpOwogICAgICAgICAgICBBYWs
uYWRkU2NyaXB0KG5ld1NjcmlwdCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICBmbG
93cGxheWVyX2FudGlhZGJsb2NrIDogewogICAgICAgIGhvc3QgOiBbJ3ZpZGVvZnVuLm1lJywgJ3ZpZGVvY
nVnLm5ldCcsICd2aWRlbzQ0Lm5ldCcsICdwbGF5NDQubmV0JywgJ2J5em9vLm9yZycsICdwbGF5YmIubWUn
LCAndmlkZW93aW5nLm1lJywgJ3ZpZGVvem9vLm1lJywgJ2Vhc3l2aWRlby5tZScsICdwbGF5cGFuZGEubmV
0J10sCiAgICAgICAgb25FbmQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgCiAgICAgICAgICAvKgogICAgIC
AgICAgaHR0cDovL3d3dy5hbmltZXRvb24udHYvYmxhY2stbGFnb29uLWVwaXNvZGUtMQogICAgICAgICAga
HR0cDovL3ZpZGVvd2luZy5tZS9lbWJlZD93PTcxOCZoPTQzOCZ2aWRlbz1vbmdvaW5nL3l1LWdpLW9oX2Fy
Yy12Xy1fNTMubXA0CiAgICAgICAgICBodHRwOi8vcGxheWJiLm1lL2VtYmVkLnBocD93PTcxOCZoPTQzOCZ
2aWQ9YXQvbncveXUtZ2ktb2hfYXJjLXZfLV81My5tcDQKICAgICAgICAgIGh0dHA6Ly92aWRlb3pvby5tZS
9lbWJlZC5waHA/dz03MTgmaD00MzgmdmlkPWF0L253L3l1LWdpLW9oX2FyYy12Xy1fNTMubXA0CiAgICAgI
CAgICBodHRwOi8vd3d3LmVhc3l2aWRlby5tZS9nb2dvLz93PTcxOCZoPTQzOCZmaWxlPXl1LWdpLW9oX2Fy
Yy12Xy1fNTMubXA0JnN2PTEKICAgICAgICAgIGh0dHA6Ly9wbGF5cGFuZGEubmV0L2VtYmVkLnBocD93PTc
xOCZoPTQzOCZ2aWQ9YXQvbncveXUtZ2ktb2hfYXJjLXZfLV81My5tcDQKICAgICAgICAgICAqLwoKICAgIC
AgICAgIC8vIGFsbG93IGZ1bGxzY3JlZW4gd2hlbiBhYnAgaXMgZW5hYmxlZCBhbmQgcmVtb3ZlIGFkIGxhe
WVyCiAgICAgICAgICAvLyBhZHMgYmxvY2tlZCBieSBhYnAgcnVsZQogICAgICAgICAgaWYgKC9eXC8oZW1i
ZWR8Z29nb3xncGx1cykvLnRlc3QobG9jYXRpb24ucGF0aG5hbWUpKSB7CiAgICAgICAgICAgIHZhciBQbGF
5ZXIgPSBuZXcgQWFrLnBsYXllcigpOwogICAgICAgICAgICBQbGF5ZXIuZWRpdGluZygnI2Zsb3dwbGF5ZX
JfYXBpJywgewogICAgICAgICAgICAgIHNldEF0dHJpYnV0ZXMgOiB7CiAgICAgICAgICAgICAgICBhbGxvd
2Z1bGxzY3JlZW4gOiB0cnVlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0K
ICAgICAgICB9CiAgICAgIH0sCiAgICAgIHIzeiA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXR
odWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXM/cT1sYWJlbDpSM1oKICAgICAgICAvLy
Bzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vQzE1OWtldm4KICAgICAgICBob3N0IDogWydjaXR5YW0uY
29tJywgJ2NvbXB1dGVyd29ybGR1ay5jb20nLCAndGVjaHdvcmxkLmNvbScsICd2My5jby51ayddLAogICAg
ICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAvKiBkb24ndCB3b3JrIHdpdGggY2hyb21
lCiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAnX3IzeicsIHsKICAgICAgICAgIC
AgZW51bWVyYWJsZSA6IHRydWUsCiAgICAgICAgICAgIHdyaXRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgI
HZhbHVlIDoge30KICAgICAgICAgIH0pOwogICAgICAgICAgKi8KICAgICAgICB9LAogICAgICAgIG9uSWRs
ZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay51dy4kKCIjcjN6LXdhaXQiKS5yZW1vdmUoKTsKICA
gICAgICAgIEFhay51dy4kKCIucjN6LWhpZGUiKS5yZW1vdmVDbGFzcygicjN6LWhpZGUiKTsKICAgICAgIC
AgIEFhay51dy5fcjN6ID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGdvb2dsZV9qb2JydW5uZ
XIgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ3JlYXN5Zm9yay5vcmcvZW4vZm9ydW0vbWVzc2Fn
ZXMvNDA1CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1
raWxsZXIvaXNzdWVzLzEzNDMKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW
50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTM0MgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Y
i5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy84MzEKICAgICAgICAvLyBpc3N1ZTogaHR0
cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTI3NAogICAgICAgIC8
vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMj
YyCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZ
XIvaXNzdWVzLzU2MQogICAgICAgIGhvc3QgOiBbJ25leHQtZXBpc29kZS5uZXQnLCAna2luZ21ha2VyLm5l
d3MnLCAnZ2FtZXNwb3dlcml0YS5jb20nLCAndG9kYXlpZG9sLmNvbScsICdyZWNlaXZlLWEtc21zLmNvbSc
sICd3YWtldXBjYWxsbWUuY29tJywgJ3JpbmdteWNlbGxwaG9uZS5jb20nLCAnZmFxbW96aWxsYS5vcmcnLC
AndGhlbWVteXBjLmNvbSddLAogICAgICAgIG9uQWx3YXlzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQ
WFrLnV3Lmdvb2dsZV9qb2JydW5uZXIgPSB7fTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIC8vIGZ1Y2th
ZGJvY2sgY3VzdG9taXplZAogICAgICBmYWJfZGF3bl9jb20gOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHB
zOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzE3NDcKICAgICAgICBob3
N0IDogWydkYXduLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBY
WsuZmFrZUZ1Y2tBZEJsb2NrKCdkZXRlY3RBZEJsb2NrJywgJ0RldGVjdEFkQmxvY2snKTsKICAgICAgICB9
CiAgICAgIH0sCiAgICAgIGZhYl9zcG9ydHNfZnIgOiB7CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l
0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEyMTcKICAgICAgICAvLyBzb3VyY2
U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vU3BFTjVkdVMKICAgICAgICBob3N0IDogWydzcG9ydHMuZnInXSwKI
CAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmZha2VGdWNrQWRCbG9jaygn
ZmFiSW5zdGFuY2UnLCAnRmFiSW5zdGFuY2UnKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGZhYl9ldXJ
vcGUxX2ZyIDogewogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYm
xvY2sta2lsbGVyL2lzc3Vlcy8xMTg4CiAgICAgICAgLy8gc291cmNlOiBodHRwOi8vcGFzdGViaW4uY29tL
1VMZTF2elFSCiAgICAgICAgaG9zdCA6IFsnZXVyb3BlMS5mciddLAogICAgICAgIG9uU3RhcnQgOiBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICBBYWsuZmFrZUZ1Y2tBZEJsb2NrKCdmYWJJbnN0YW5jZScsICdGYWJJbnN
0YW5jZScpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZmFiX25ld3lvcmtlcl9jb20gOiB7CiAgICAgIC
AgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzL
zExNzcKICAgICAgICBob3N0IDogWyduZXd5b3JrZXIuY29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0
aW9uICgpIHsKICAgICAgICAgIEFhay5mYWtlRnVja0FkQmxvY2soJ3NuaWZmQWRCbG9jaycsICdTbmlmZkF
kQmxvY2snKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGZhYl93aXJlZF9jb20gOiB7CiAgICAgICAgLy
8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEwN
jEKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9mci9mb3J1bS9kaXNjdXNzaW9u
LzgyMzUKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vUHExNHY0RkMKICAgICAgICB
ob3N0IDogWyd3aXJlZC5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgIC
AgQWFrLmZha2VGdWNrQWRCbG9jaygnc25pZmZBZEJsb2NrJywgJ1NuaWZmQWRCbG9jaycpOwogICAgICAgI
H0KICAgICAgfSwKICAgICAgZmFiX21hbmdhc3Byb2plY3RfZG9tYWlucyA6IHsKICAgICAgICAvLyBub3Rl
OiBmdWNrYWRibG9jayB3aXRoIGN1c3RvbSBpbnN0YW5jZSBuYW1lCiAgICAgICAgLy8gbm90ZTogYWxzbyB
hZGRlZCBhYnAgcnVsZQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLW
FkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMTI3CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ3JlYXN5Zm9ya
y5vcmcvZnIvZm9ydW0vZGlzY3Vzc2lvbi80MTMyCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzg1OAogICAgICAgIC8vIHNvdXJjZTogaHR
0cHM6Ly9tYW5nYXMuemx4LmNvbS5ici9tYW5nYXpvcmRfbGliL2pzL2xpYi9jb250cm9sbGVycy9MZWl0b3
IvTGVpdG9yLm1pbi5qcwogICAgICAgIGhvc3QgOiBbJ21hbmdhc3Byb2plY3QuY29tLmJyJywgJ21hbmdhc
3Byb2plY3QubmV0LmJyJywgJ21hbmdhcy56bHguY29tLmJyJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0
aW9uICgpIHsKICAgICAgICAgIEFhay5mYWtlRnVja0FkQmxvY2soJ21hbmdhc0xlaXRvclNsaWRlcicsIEF
hay5nZW5lcmF0ZUlEKCkpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZmFiX3FuaW1hdGVfY29tIDogew
ogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL
2lzc3Vlcy83MzkKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJs
b2NrLWtpbGxlci9pc3N1ZXMvNzA1CiAgICAgICAgLy8gbm90ZTogZnVja2FkYmxvY2sgY3VzdG9taXplZAo
gICAgICAgIGhvc3QgOiBbJ3FuaW1hdGUuY29tJ10sCiAgICAgICAgb25BbHdheXMgOiBmdW5jdGlvbiAoKS
B7CiAgICAgICAgICBBYWsudXcuYWRCbG9ja0RldGVjdGVkID0gZnVuY3Rpb24gKCkge307CiAgICAgICAgf
QogICAgICB9LAogICAgICBmYWJfZXVyb3RyYW5zcG9ydF9kZSA6IHsKICAgICAgICAvLyBpc3N1ZTogaHR0
cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvODU4CiAgICAgICAgLy8
gbm90ZTogZnVja2FkYmxvY2sgd2l0aCBjdXN0b20gaW5zdGFuY2UgbmFtZQogICAgICAgIGhvc3QgOiBbJ2
V1cm90cmFuc3BvcnQuZGUnXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgQ
WFrLmZha2VGdWNrQWRCbG9jaygnYW50aUFkQmxvY2snLCBBYWsuZ2VuZXJhdGVJRCgpKTsKICAgICAgICB9
CiAgICAgIH0sCiAgICAgIGZhYl9jYWRldGVjdCA6IHsKICAgICAgICAvLyBieTogU2tyNHRjaEdyM2F6eU1
vbmtpQmFsbGxsbGxaenp6CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudG
ktYWRibG9jay1raWxsZXIvaXNzdWVzLzc4NAogICAgICAgIC8vIG5vdGU6IGZ1Y2thZGJsb2NrIHdpdGggY
3VzdG9tIGluc3RhbmNlIG5hbWUKICAgICAgICBob3N0IDogWyd0emV0emUuaXQnLCAnYmVwcGVncmlsbG8u
aXQnLCAnbGEtY29zYS5pdCddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB
BYWsuZmFrZUZ1Y2tBZEJsb2NrKCdjYWRldGVjdCcsICdDQURldGVjdCcpOwogICAgICAgIH0KICAgICAgfS
wKICAgICAgZmFiX2FnYXJfZ2FtZSA6IHsKICAgICAgICAvLyBub3RlOiBmdWNrYWRibG9jayB3aXRoIGN1c
3RvbSBpbnN0YW5jZSBuYW1lCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2Fu
dGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEyNTcKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWI
uY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTEzNQogICAgICAgIGhvc3QgOiBbJ2FnYX
Jpby5zeCcsICdhZ2FyYWJpLmNvbSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgI
CAgICBBYWsuZmFrZUZ1Y2tBZEJsb2NrKCdhZ2FyaW9fU1hfYWRzJywgQWFrLmdlbmVyYXRlSUQoKSk7CiAg
ICAgICAgfQogICAgICB9LAogICAgICBmYWJfZmlsZXNwYWNlX2NvbSA6IHsKICAgICAgICAvLyBub3RlOiB
mdWNrYWRibG9jayB3aXRoIGN1c3RvbSBpbnN0YW5jZSBuYW1lCiAgICAgICAgLy8gc291cmNlOiBodHRwOi
8vcGFzdGViaW4uY29tL1lBUzBBczg3CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZ
WVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzEwMzcKICAgICAgICBob3N0IDogWydmaWxlc3BhY2Uu
Y29tJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5mYWtlRnVja0F
kQmxvY2soJ2ZBQicsIEFhay5nZW5lcmF0ZUlEKCkpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZmFiX3
RvcHNlcmlhbHlfc2sgOiB7CiAgICAgICAgLy8gbm90ZTogZnVja2FkYmxvY2sgd2l0aCBjdXN0b20gaW5zd
GFuY2UgbmFtZQogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS80MnRVUTlhVgogICAg
ICAgIGhvc3QgOiBbJ3RvcHNlcmlhbHkuc2snXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCkgewo
gICAgICAgICAgQWFrLmZha2VGdWNrQWRCbG9jaygnc3JhdE5hVmFzJywgQWFrLmdlbmVyYXRlSUQoKSk7Ci
AgICAgICAgfQogICAgICB9LAogICAgICBmYWJfY3VzdG9taXplZCA6IHsKICAgICAgICAvLyBpc3N1ZToga
HR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTQ1NQogICAgICAg
IC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8
xNjU3CiAgICAgICAgLy8gc291cmNlOiBodHRwOi
8vcGFzdGViaW4uY29tL040MmE1QmpFCiAgICAgICAgaG9zdCA6IFsnZXBpY3VyaW91cy5jb20nLCAnZGVza
3RvcHNvbHV0aW9uLm9yZycsICdpbmRpYXRpbWVzLmNvbScsICdoaW5kdXN0YW50aW1lcy5jb20nLCAnaGFw
cHl0cmlwcy5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIEFhay5
hZGRTY3JpcHQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAoZnVuY3Rpb24gKCkgewogICAgICAgICAgIC
AgIHZhciBfc2V0QXR0cmlidXRlID0gd2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZTsKI
CAgICAgICAgICAgICB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlID0gZnVuY3Rpb24g
KG5hbWUsIHZhbHVlKSB7CiAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAnY2xhc3MnICYmIHZhbHVlLml
uZGV4T2YoJ3RleHRfYWRzJykgIT0gLTEpIHsKICAgICAgICAgICAgICAgICAgdmFsdWUgPSAnJzsKICAgIC
AgICAgICAgICAgICAgY29uc29sZS5pbmZvKHRoaXMsICdmYWIgaW50ZXJjZXB0ZWQgOi0pJyk7CiAgICAgI
CAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfc2V0QXR0cmlidXRlLmNhbGwodGhpcywgbmFtZSwgdmFs
dWUpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICB9KTsKICAgICAgICB
9CiAgICAgIH0sCiAgICAgIGQzeHQzZXJfYW50aWFkYmxvY2sgOiB7CiAgICAgICAgLy8gc2l0ZTogaHR0cD
ovL2QzeHQzci5jb20vYW50aS1hZGJsb2NrCiAgICAgICAgLy8gY2FzZTogaHR0cDovL3Nwb3J0LXNob3cuZ
nIvanMvYWR2ZXJ0aXNlbWVudC1BZEJsb2NrLmpzCiAgICAgICAgLy8gY2FzZTogaHR0cDovL3d3dy4yc2l0
ZS5tZS9hZHZlcnRpc2VtZW50LUFkQmxvY2suanMKICAgICAgICBob3N0IDogWydzcG9ydC1zaG93LmZyJyw
gJ3ZpcGZsYXNoLm5ldCcsICcyc2l0ZS5tZSddLAogICAgICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7Ci
AgICAgICAgICBBYWsuYWRkU3R5bGUoIiNibG9ja2Jsb2NrQSB7dmlzaWJpbGl0eTppbnZpc2libGU7ZGlzc
GxheTpub25lO30gI2Jsb2NrYmxvY2tBIHRkIHt2aXNpYmlsaXR5OmludmlzaWJsZTtkaXNwbGF5Om5vbmU7
fSAjYmxvY2tibG9ja0EgdGQgcCB7dmlzaWJpbGl0eTppbnZpc2libGU7ZGlzcGxheTpub25lO30gI2Jsb2N
rYmxvY2tCIHt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTpibG9jazt9Iik7CiAgICAgICAgfQogICAgIC
B9LAogICAgICBhZGJsb2NrX25vdGlmeSA6IHsKICAgICAgICAvLyBieTogU2tyNHRjaEdyM2F6eU1vbmtpQ
mFsbGxsbGxaenp6CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRi
bG9jay1raWxsZXIvaXNzdWVzLzE3NjYKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3J
lZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTM5MgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2
dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMDM5CiAgICAgICAgLy8gaXNzd
WU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzU5MgogICAg
ICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3V
lcy84MTMKICAgICAgICBob3N0IDogWydnYW1ldHJhbnNmZXJzLmNvbScsICd3aW5hbmRtYWMuY29tJywgJ2
ZyZWUtc3RlYW0tZ2l2ZWF3YXlzLmNvbScsICdjYW5hbHdwLmNvbScsICdhbHBoYWhpc3RvcnkuY29tJywgJ
25vcmRwcmVzc2UuYmUnLCAnc29zcGMubmFtZScsICdiYWJvby5jb20uYnInXSwKICAgICAgICBvbkFsd2F5
cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ2FuQ29va2llJywgdHJ1ZSk7CiA
gICAgICAgICBBYWsudXcuYW5PcHRpb25zID0ge307CiAgICAgICAgfQogICAgICB9LAogICAgICBsdXR0ZV
9hZGJsb2NrIDogewogICAgICAgIC8vIHNpdGU6IGh0dHA6Ly9sdXR0ZWFkYmxvY2suYmxvZ3Nwb3QuY29tL
zIwMTQvMTEvbGUtc2NyaXB0Lmh0bWwKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3Jl
ZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvOTM4CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l
0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzU4MAogICAgICAgIGhvc3QgOiBbJ2
xld2VidHZib3VxdWV0ZnJhbmNvcGhvbmUub3ZlcmJsb2cuY29tJywgJ3dlYnR2LmJsb2d1ZXouY29tJywgJ
2xhdGVsZWdyYXR1aXRlLmJsb2dzcG90LmNvbScsICd0b3RhbGRlYnJpZC5vcmcnLCAnMzcuMTg3LjE3My4y
MDUnLCAndHZncmF0dWl0ZS5ibG9nc3BvdC5jb20nXSwKICAgICAgICBvblN0YXJ0IDogZnVuY3Rpb24gKCk
gewogICAgICAgICAgQWFrLmFkZEJhaXRFbGVtZW50KCdkaXYjbXlfYWRfZGl2Jyk7CiAgICAgICAgICBBYW
sudXcuamFiYmFodWQgPSBmdW5jdGlvbiAoKSB7fTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGFudGlib
G9jayA6IHsKICAgICAgICAvLyBzaXRlOiBhbnRpYmxvY2sub3JnCiAgICAgICAgLy8gbm90ZTogY3VzdG9t
aXplZAogICAgICAgIC8vIGlzc3VlOiAKICAgICAgICBob3N0IDogWydteWJhbmsucGwnLCAncmFwaWRncmF
iLnBsJ10sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTY3JpcH
QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBfY
WRkRXZlbnRMaXN0ZW5lciA9IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyOwogICAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSB7CiAgICA
gICAgICAgICAgICBpZiAobGlzdGVuZXIudG9TdHJpbmcoKS5pbmRleE9mKCcubmV4dEZ1bmN0aW9uKCl9Jy
kgPiAtMSkgewogICAgICAgICAgICAgICAgICBsaXN0ZW5lciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgI
CAgICAgICAgICBjb25zb2xlLmluZm8oWydBbnRpQWRiS2lsbGVyJywgbG9jYXRpb24uaG9zdCwgJ0FudGlC
bG9ja3tjdXN0b21pemVkfSddKTsKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICA
gICAgICAgICAgICAgIF9hZGRFdmVudExpc3RlbmVyLmNhbGwodGhpcywgdHlwZSwgbGlzdGVuZXIsIG9wdG
lvbnMpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICB9KTsKICAgICAgI
CB9CiAgICAgIH0sCiAgICAgIGJsb2NrYWRibG9jayA6IHsKICAgICAgICAvLyBzaXRlOiBibG9ja2FkYmxv
Y2suY29tCiAgICAgICAgLy8gbm90ZTogcmFuZG9tIGluc3RhbmNlIG5hbWUKICAgICAgICAvLyBzb3VyY2U
6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL1dhdGlsaW4vYWY3NWUwYTJlODJhMmVmYjM4NGJkZTljN2I0MW
RlYzgKICAgICAgICAvLyBpc3N1ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1ra
WxsZXIvaXNzdWVzP3E9bGFiZWw6QmxvY2tBZEJsb2NrCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ3Jl
YXN5Zm9yay5vcmcvZm9ydW0vZGlzY3Vzc2lvbi84MjczCiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ3J
lYXN5Zm9yay5vcmcvZm9ydW0vZGlzY3Vzc2lvbi83NjI1CiAgICAgICAgaG9zdCA6IFsnYmxvY2thZGJsb2
NrLmNvbScsICdsaW5rZHJvcC5uZXQnLCAncmV2Y2xvdWRzLmNvbScsICdsZXBvcm5vLm9yZycsICd1cGxvY
WRzaHViLmNvbScsICdkYXNvbG8ub3JnJywgJ2Z1bGxzdHVmZi5uZXQnLCAnemV1c25ld3MuaXQnLCAnY2hl
bWlub3RzLm5ldCcsICdsb2xzeS50dicsICdhbmltZXMtbWFuZ2FzLWRkbC5jb20nLCAnbm90aWNpYXNhdXR
vbW90aXZhcy5jb20uYnInLCAnZGFya3N0YXJzLm9yZycsICdjb3JlcGFja3MuY29tJywgJ25hdHVyYWxiZC
5jb20nLCAnY29vbHNvZnQuYWx0ZXJ2aXN0YS5vcmcnLCAnb3BlbmxvYWQudXMnLCAnY2RhLW9ubGluZS5wb
CcsICd1cmJhbnBsYW5ldC5vcmcnLCAnbWFtYWhkLmNvbScsICdzYWRlZW1wYy5jb20nLCAnYXZtb28uY29t
JywgJ3RoYWlsYW5kZS1mci5jb20nLCAnYnRhaWEuY29tJywgJ3R1c29mdC5vcmcnLCAnaGlzc2UubmV0Jyw
gJ2V1cm9wZXVwLmNvbScsICducmouZnInLCAnc3Juay5jbycsICdhbmltbWV4LmNvJywgJ3NvY2tldGxvb3
AuY29tJywgJ2NyYWNraGV4LmNvbScsICdyZXZlYWxlZHRyaWNrczR1LmNvbScsICdwaXp6YW1ha2luZy5jb
20nLCAnY29tcHV0ZXJ3b3JtLm5ldCcsICd5b3VybGlmZXVwZGF0ZWQubmV0J10sCiAgICAgICAgb25TdGFy
dCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEFhay5hZGRTY3JpcHQoZnVuY3Rpb24gKCkgewogICAgICA
gICAgICAvLyB2YXJpYW50IDEKICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YX
IgX3NldFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dDsKICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZ
W91dCA9IGZ1bmN0aW9uIChmbiwgZGVsYXkpIHsKICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGZuLnRv
U3RyaW5nKCkpCiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZuID09PSAnc3RyaW5nJyAmJiBmbi5pbmR
leE9mKCdiYWJfZWxlbWVudGlkJykgPiAtMSkgewogICAgICAgICAgICAgICAgICBmbiA9IGZ1bmN0aW9uIC
gpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oWydBbnRpQWRiS2lsbGVyJywgbG9jYXRpb
24uaG9zdCwgJ0Jsb2NrQWRCbG9jayddKTsKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIF9zZXRUaW1lb3V0LmNhbGwodGhpcywgZm4sIGRlbGF5KTsKICAgICAgICA
gICAgICB9OwogICAgICAgICAgICB9KSgpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9LAogIC
AgICBncHRfc3AgOiB7CiAgICAgICAgLy8gYnk6IFJlZWssIEdpd2F5dW1lCiAgICAgICAgLy8gbm90ZTogd
2hlbiBhZGJsb2NrIGRldGVjdGVkIGluamVjdCBuZXcgYWRzLCByZWRpcmVjdCB0byBodHRwOi8vdGlueXVy
bC5jb20venEyejVvNgogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWF
kYmxvY2sta2lsbGVyL2lzc3Vlcy8xNjM2CiAgICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS
9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzE1OTYKICAgICAgICAvLyBpc3N1ZTogaHR0cHM6L
y9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvMTI5NwogICAgICAgIC8vIGlz
c3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMTQ0CiA
gICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaX
NzdWVzLzE1NDIKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vOEFqaXRmYjIKICAgI
CAgICBob3N0IDogWydtYXJrZXR3YXRjaC5jb20nLCAnZGVhZGxpbmUuY29tJywgJ3R3ZWFrdG93bi5jb20n
LCAnbnlwb3N0LmNvbScsICdyZWFsZ20uY29tJywgJ25hc2RhcS5jb20nXSwKICAgICAgICBvblN0YXJ0IDo
gZnVuY3Rpb24gKCkgewogICAgICAgICAgQWFrLmFkZFN0eWxlKCIuY29udGFpbmVyLS1iYW5uZXJBZCwgLm
NvbC0tYWQgeyBkaXNwbGF5OiBub25lOyB9Iik7CiAgICAgICAgICBBYWsuYWRkU2NyaXB0KGZ1bmN0aW9uI
CgpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAvLyBHaXdheXVtZSAKICAg
ICAgICAgICAgICB3aW5kb3cuX3NwXyA9IHdpbmRvdy5fc3BfIHx8IHt9OwogICAgICAgICAgICAgIHdpbmR
vdy5fc3BfLmNvbmZpZyA9IHdpbmRvdy5fc3BfLmNvbmZpZyB8fCB7fTsKICAgICAgICAgICAgICBPYmplY3
QuZGVmaW5lUHJvcGVydHkod2luZG93Ll9zcF8uY29uZmlnLCAiY29udGVudF9jb250cm9sX2NhbGxiYWNrI
iwgewogICAgICAgICAgICAgICAgdmFsdWUgOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgICAgICAgIHdy
aXRhYmxlIDogZmFsc2UsCiAgICAgICAgICAgICAgICBjb25maWd1cmFibGUgOiBmYWxzZQogICAgICAgICA
gICAgIH0pOwogICAgICAgICAgICAgIC8vIFJlZWsKICAgICAgICAgICAgICB2YXIgX2FkZEV2ZW50TGlzdG
VuZXIgPSB3aW5kb3cuRXZlbnRUYXJnZXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI7CiAgICAgICAgI
CAgICAgd2luZG93LkV2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24g
KHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSAnc3AuYmx
vY2tpbmcnKSB7CiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyID0gZnVuY3Rpb24gKCkgewogICAgICAgIC
AgICAgICAgICAgIGNvbnNvbGUuaW5mbyhbJ0FudGlBZGJLaWxsZXInLCBsb2NhdGlvbi5ob3N0LCAnR1BUe
3NwLWJsb2NraW5nfSddKTsKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIF9hZGRFdmVudExpc3RlbmVyLmNhbGwodGhpcywgdHlwZSwgbGlzdGVuZXIsIG9wdGlvbnM
pOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9Ci
AgICAgIH0sCiAgICAgIGtydXhfYXNsIDogewogICAgICAgIC8vIG5vdGU6IHdoZW4gYWRibG9jayBkZXRlY
3RlZCBpbmplY3QgbmV3IGFkcwogICAgICAgIC8vIHNvdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS8wSEQ3
Tjg0aQogICAgICAgIGhvc3QgOiBbJ2NvbW1lbnRjYW1hcmNoZS5uZXQnLCAnam91cm5hbGRlc2ZlbW1lcy5
jb20nLCAnbGludGVybmF1dGUuY29tJ10sCiAgICAgICAgb25CZWZvcmVTY3JpcHQgOiBmdW5jdGlvbiAoKS
B7CiAgICAgICAgICByZXR1cm4gW3sKICAgICAgICAgICAgICBkZXRlY3RlZCA6ICdLcnV4e2FzbH0nLAogI
CAgICAgICAgICAgIGNvbnRhaW5zIDogJ0FzbC5wcm90b3R5cGUuaW5qZWN0JywKICAgICAgICAgICAgICBl
eHRlcm5hbCA6IGZhbHNlLAogICAgICAgICAgICAgIHJlbW92ZSA6IHRydWUKICAgICAgICAgICAgfQogICA
gICAgICAgXTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGtydXhfYWRwIDogewogICAgICAgIC8vIG5vdG
U6IHdoZW4gYWRibG9jayBkZXRlY3RlZCBpbmplY3QgbmV3IGFkcwogICAgICAgIC8vIHNvdXJjZTogCiAgI
CAgICAgaG9zdCA6IFsnZm91cmNoZXR0ZS1ldC1iaWtpbmkuZnInLCAnbWV0ZW9jaXR5LmNvbSddLAogICAg
ICAgIG9uU3RhcnQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBBYWsudXcuYWRQcm90ZWN0ID0gMTsKICA
gICAgICB9CiAgICAgIH0sCSAKICAgICAgcGhvZW5peF9nb3lhdmVsYWIgOiB7CiAgICAgICAgLy8gbm90ZT
ogd2hlbiBhZGJsb2NrIGRldGVjdGVkIGluamVjd
CBuZXcgYWRzCiAgICAgICAgLy8gbm90ZTogc2NyaXB0IGFudGktYWRibG9jayBvYmZ1c2NhdGVkLAogICAg
ICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3V
lcy8KICAgICAgICAvLyBkb2M6IGh0dHA6Ly90aW55dXJsLmNvbS9nbDNnaHEyCiAgICAgICAgLy8gc291cm
NlOiBodHRwOi8vcGFzdGViaW4uY29tL2hzQW1kU3VmCiAgICAgICAgaG9zdCA6IFsnZGVtby1waG9lbml4L
mNvbScsICdkcHN0cmVhbS5uZXQnLCAnZ3VtLWd1bS1zdHJlYW1pbmcuY29tJywgJ2pldS5pbmZvJywgJ3Nv
Zm9vdC5jb20nLCAnZ2FhcmEtZnIuY29tJywgJ2dheXR1YmUuY29tJywgJ3R1eGJvYXJkLmNvbScsICd4c3R
vcnktZnIuY29tJywgJ2hlbnRhaWZyLm5ldCcsICdmaWxtc3RyZWFtaW5nLWhkLmNvbScsICdmaWxtdmYubm
V0JywgJ2hlbnRhaWhhdmVuLm9yZycsICduYXJ1dG9zaGlwcHVkZW52Zi5jb20nLCAndGhlYmFkYnV6ei5jb
20nLCAnbWFuZ2EtbmV3cy5jb20nLCAnamV1LnZpZGVvJywgJ21hbmdhcy1mci5jb20nXSwKICAgICAgICBv
bkFsd2F5cyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vQWFrLnV3Ll9fJGRjID0gZnVuY3Rpb24gKCk
ge307CiAgICAgICAgICBBYWsuYWRkU3R5bGUoJ2JvZHkge3Zpc2liaWxpdHk6IHZpc2libGU7fScpOwogIC
AgICAgIH0sCiAgICAgICAgb25CZWZvcmVTY3JpcHQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1c
m4gW3sgCiAgICAgICAgICAgICAgZGV0ZWN0ZWQgOiAnUGhvZW5peEdveWF2ZWxhYicsCiAgICAgICAgICAg
ICAgY29udGFpbnMgOiAnUEhFTlYnLAogICAgICAgICAgICAgIGV4dGVybmFsIDogZmFsc2UsCiAgICAgICA
gICAgICAgcmVtb3ZlOiB0cnVlCiAgICAgICAgICAgIH0KICAgICAgICAgIF07CiAgICAgICAgfQogICAgIC
B9LAogICAgICBhZF9kZWZlbmRfdWFicCA6IHsKICAgICAgICAvLyBub3RlOiB3aGVuIGFkYmxvY2sgZGV0Z
WN0ZWQgaW5qZWN0IG5ldyBhZHMKICAgICAgICAvLyBzb3VyY2U6IGh0dHA6Ly9wYXN0ZWJpbi5jb20vY0ZR
Q3A4MFcKICAgICAgICBob3N0IDogWyd0dnNwaWVsZmlsbS5kZScsICdmaW5hbnplbi5jaCddLAogICAgICA
gIG9uQmVmb3JlU2NyaXB0IDogZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIFt7CiAgICAgICAgIC
AgICAgZGV0ZWN0ZWQgOiAnQWREZWZlbmR7VUFCUEluamVjdH0nLAogICAgICAgICAgICAgIGNvbnRhaW5zI
DogJ1VBQlBJbmplY3QnLAogICAgICAgICAgICAgIGV4dGVybmFsIDogZmFsc2UsCiAgICAgICAgICAgICAg
cmVtb3ZlIDogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdOwogICAgICAgIH0KICAgICAgfSwKICA
gICAgYWRfZGVmZW5kX3VhYiA6IHsKICAgICAgICAvLyBub3RlOiB3aGVuIGFkYmxvY2sgZGV0ZWN0ZWQgaW
5qZWN0IG5ldyBhZHMKICAgICAgICAvLyB1c2Vyc2NyaXB0OiBodHRwczovL29wZW51c2VyanMub3JnL3Njc
mlwdHMvc2Nod2FyenRlZS9BZERlZmVuZF9LbGF0c2NoZQogICAgICAgIC8vIHVzZXJzY3JpcHQ6IGh0dHBz
Oi8vZ2lzdC5naXRodWIuY29tL2Fub255bW91cy9hOWI5OTU2YmFmMWQ1OWExMDdjNQogICAgICAgIC8vIHN
vdXJjZTogaHR0cDovL3Bhc3RlYmluLmNvbS8xVnlXMHU5bSwgaHR0cDovL3Bhc3RlYmluLmNvbS9BWnFoUn
hXVQogICAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsb
GVyL2lzc3Vlcz9xPWxhYmVsOkFkRGVmZW5kCiAgICAgICAgLy8gcHVsbDogaHR0cHM6Ly9naXRodWIuY29t
L3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9wdWxsLzQ2NwogICAgICAgIGhvc3QgOiBbJ3dhdGNoZ2VuZXJ
hdGlvbi5mcicsICd0dXJiby5mcicsICcyNG1hdGlucy5mcicsICdmb290MDEuY29tJywgJ2NsdWJpYy5jb2
0nLCAnbWFjZy5jbycsICdiZWdlZWsuZnInLCAnaWdlbi5mcicsICdnYW1lc3Rhci5kZScsICdmb2N1cy5kZ
ScsICdzdGVybi5kZScsICdzYXQxLicsICdwcm9zaWViZW4uJywgJ2thYmVsZWlucy4nLCAnc2F0MWdvbGQu
JywgJ3NpeHguJywgJ3Byb3NpZWJlbm1heHguJywgJ2ZlbS5jb20nLCAndGhlLXZvaWNlLW9mLWdlcm1hbnk
uJywgJ3dldHRlci5jb20nLCAnd2V0dGVyb25saW5lLmRlJywgJ3Bjd2VsdC5kZScsICdib2Vyc2Utb25saW
5lLmRlJywgJ3Nwb3J0YXV0by5kZScsICdhdXRvLW1vdG9yLXVuZC1zcG9ydC5kZScsICdtb3Rvci1rbGFzc
2lrLmRlJywgJzR3aGVlbGZ1bi5kZScsICdhdXRvc3RyYXNzZW52ZXJrZWhyLmRlJywgJ2x1c3RpY2guZGUn
LCAnc3BveC5jb20nLCAnc2h6LmRlJywgJ3RyYW5zZmVybWFya3QuZGUnLCAncnAtb25saW5lLmRlJywgJ21
vdG9ycmFkb25saW5lLmRlJywgJzIwbWluLmNoJywgJ21haW4tc3BpdHplLmRlJywgJ3dvcm1zZXItemVpdH
VuZy5kZScsICdsYW1wZXJ0aGVpbWVyLXplaXR1bmcuZGUnLCAnd2llc2JkZW5lci10YWdibGF0dC5kZScsI
CdidWVyc3RhZWR0ZXItemVpdHVuZy5kZScsICd3aWVzYmRlbmVyLWt1cmllci5kZScsICdyaGVpbi1tYWlu
LXByZXNzZS5kZScsICdhbGxnZW1laW5lLXplaXR1bmcuZGUnLCAnYXJpdmEuZGUnLCAnc3BpZWdlbC5kZSc
sICdicmlnaXR0ZS5kZScsICdkc2hpbmkubmV0JywgJ2dhbGEuZGUnLCAnZ2FtZXByby5kZScsICdnYW1vbm
EuZGUnLCAncG5uLmRlJywgJ3Byb21vYmlsLmRlJywgJ3Nwb3J0YWwuZGUnLCAnd2ViZmFpbC5jb20nLCAnY
29tcHV0ZXJiaWxkLmRlJywgJ2ZpbmFuemVuLm5ldCcsICdjb211bmlvLmRlJywgJ21lZGlzaXRlLmZyJ10s
CiAgICAgICAgb25CZWZvcmVTY3JpcHQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gW3sKICA
gICAgICAgICAgICBkZXRlY3RlZCA6ICdBZERlZmVuZHt1YWJJbmplY3R9JywKICAgICAgICAgICAgICBjb2
50YWlucyA6ICd1YWJJbmplY3QnLAogICAgICAgICAgICAgIGV4dGVybmFsIDogZmFsc2UsCiAgICAgICAgI
CAgICAgcmVtb3ZlIDogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdOwogICAgICAgIH0KICAgICAg
fSwKICAgICAgLyogc29sdmVkIGJ5IEFha0xJc3QKICAgICAgdGlzb29taV9pbmRpcmVrdCA6IHsKICAgICA
gLy8gaW5saW5lOiBodHRwOi8vcGFzdGViaW4uY29tL25wbVhUVUh3CiAgICAgIC8vIGV4dGVybmFsOiBodH
RwOi8vcGFzdGViaW4uY29tL2h2V25DdUR3CiAgICAgIGhvc3QgOiBbJ2VuZXJneS5kZScsICdnZXR2aWRzL
mRlJywgJ2dld2luZGUtbm9ybWVuLmRlJywgJ3BvZGNhc3QuZGUnLCAnc3BpZWxlc3BpZWxlbjI0LmRlJywg
J2RpYWxvLmRlJ10sCiAgICAgIG9uQmVmb3JlU2NyaXB0IDogZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIHR
hcmdldCA9IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudDsKICAgICAgdmFyIHRleHQgPSB0YXJnZXQudGV4dD
sKICAgICAgaWYgKEFhay5jb250YWlucyh0ZXh0LCAnbj0iYWJjZGVmZ2hpamtsbSIscj0ibm9wcXJzdHV2d
3h5eiIsaT0iMDEyMzQ1Njc4OSI7dmFyIHM9dD09MD9pOnQ9PTE/bicpKSB7CiAgICAgIEFhay5zdG9wU2Ny
aXB0KGUpOwogICAgICBBYWsubG9nKCdUaXNvb21pIEluZGlyZWt0Jyk7CiAgICAgIH0KICAgICAgfQogICA
gICB9LAogICAgICAgKi8KICAgICAgLyogc29sdmVkIGJ5IEFha0xJc3QKICAgICAgdGlzb29taV9kaXJla3
QgOiB7CiAgICAgIC8vIGlubGluZTogaHR0cDovL3Bhc3RlYmluLmNvbS8ydnEzOEpYWQogICAgICBob3N0I
DogWydhdXRvemVpdHVuZy5kZScsICdmb3JtZWwxLmRlJywgJ2ZyZW1kd29ydC5kZScsICdpbnNpZGUtaGFu
ZHkuZGUnLCAnbW90b3JzcG9ydC10b3RhbC5jb20nLCAnYXVzc2Vud2lydHNjaGFmdHNsdXBlLmRlJywgJ2R
vbm5lcndldHRlci5kZScsICd3aW50b3RhbC5kZSddLAogICAgICBvbkJlZm9yZVNjcmlwdCA6IGZ1bmN0aW
9uIChlKSB7CiAgICAgIHZhciB0YXJnZXQgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQ7CiAgICAgIHZhc
iB0ZXh0ID0gdGFyZ2V0LnRleHQ7CiAgICAgIGlmIChBYWsuY29udGFpbnModGV4dCwgJ2Z1bmN0aW9uIGRl
dGVjdCgpJykpIHsKICAgICAgQWFrLnN0b3BTY3JpcHQoZSk7CiAgICAgIEFhay5sb2coJ1Rpc29vbWkgRGl
yZWt0Jyk7CiAgICAgIH0KICAgICAgfQogICAgICB9LAogICAgICAgKi8KICAgICAgLy8gLS0tLS0tLS0tLS
0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
S0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLy8gR2VuZXJpYwogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0
tLS0tLS0tLS0tLS0tLQogICAgICBnZW5lcmljIDogewogICAgICAgIGhvc3QgOiBbJy4qPyddLAogICAgIC
AgIG9uUmVtb3ZlIDogZnVuY3Rpb24gKHJlbW92ZWROb2RlKSB7CiAgICAgICAgICBpZiAoQWFrLm9wdHMuc
mVtb3ZlZCkgewogICAgICAgICAgICBpZiAocmVtb3ZlZE5vZGUuc3JjIHx8CiAgICAgICAgICAgICAgcmVt
b3ZlZE5vZGUuaWQgfHwKICAgICAgICAgICAgICByZW1vdmVkTm9kZS5jbGFzc05hbWUgJiYKICAgICAgICA
gICAgICAhL15maXJlYnVnLy50ZXN0KHJlbW92ZWROb2RlLmNsYXNzTmFtZSkpIHsKICAgICAgICAgICAgIC
AvLyBOb2RlIHJlbW92ZWQKICAgICAgICAgICAgICBBYWsubG9nKHJlbW92ZWROb2RlKTsKICAgICAgICAgI
CAgfQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgb25TdGFydCA6IGZ1bmN0aW9uICgpIHsKCiAg
ICAgICAgICAvLyBGdWNrQWRCbG9jayAmIEJsb2NrQWRCbG9jayB2MyBhbmQgdjQKICAgICAgICAgIC8vIHN
pdGU6IGh0dHA6Ly93d3cuc2l0ZXh3LmZyL2Z1Y2thZGJsb2NrLwogICAgICAgICAgLy8gcmVwbzogaHR0cH
M6Ly9naXRodWIuY29tL3NpdGV4dy9GdWNrQWRCbG9jawogICAgICAgICAgLy8gcmVwbzogaHR0cHM6Ly9na
XRodWIuY29tL3NpdGV4dy9CbG9ja0FkQmxvY2sKICAgICAgICAgIC8vIG5vdGU6IHdoZW4gZnVja2FkYmxv
Y2suanMgb3IgYmxvY2thZGJsb2NrLmpzIGlzIGJsb2NrZWQKICAgICAgICAgIC8vIGRlbW8gdjM6IGh0dHA
6Ly9zaC5zdC92b3ZIRQogICAgICAgICAgLy8gZGVtbyB2NDogaHR0cDovL2FsLmx5L3FCYlhICiAgICAgIC
AgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1Z
XMvODg4CiAgICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2Nr
LWtpbGxlci9pc3N1ZXMvODI0CiAgICAgICAgICBBYWsuZmFrZUZ1Y2tBZEJsb2NrKCdmdWNrQWRCbG9jayc
sICdGdWNrQWRCbG9jaycpOwogICAgICAgICAgQWFrLmZha2VGdWNrQWRCbG9jaygnYmxvY2tBZEJsb2NrJy
wgJ0Jsb2NrQWRCbG9jaycpOwoKICAgICAgICAgIC8vIGNhblJ1bkFkcwogICAgICAgICAgLy8gcmVwbzoga
HR0cHM6Ly9naXRodWIuY29tL01hdHRoZXdHcm9zcy9DYW5SdW5BZHMKICAgICAgICAgIC8vIG5vdGU6IHVz
ZSBleHRlcm5hbGwgc2NyaXB0ICIvanMvYWRzLmpzIiAtPiB2YXIgY2FuUnVuQWRzID0gdHJ1ZTsKICAgICA
gICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBYWsudXcsICdjYW5SdW5BZHMnLCB7CiAgICAgICAgICAgIG
VudW1lcmFibGUgOiB0cnVlLAogICAgICAgICAgICB3cml0YWJsZSA6IGZhbHNlLAogICAgICAgICAgICB2Y
Wx1ZSA6IHRydWUKICAgICAgICAgIH0pOwoKICAgICAgICAgIC8vIGNhblNob3dBZHMKICAgICAgICAgIC8v
IGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMTk
3CiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAnY2FuU2hvd0FkcycsIHsKICAgIC
AgICAgICAgZW51bWVyYWJsZSA6IHRydWUsCiAgICAgICAgICAgIHdyaXRhYmxlIDogZmFsc2UsCiAgICAgI
CAgICAgIHZhbHVlIDogdHJ1ZQogICAgICAgICAgfSk7CgogICAgICAgICAgLy8gQWRibG9ja2VyIERldGVj
dGluZyBTY3JpcHRzOiBNZXRob2QgMgogICAgICAgICAgLy8gZ2lzdDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5
jb20vaXJhemFzeWVkLzNkMjQ3ZDNkMTIxZTc4MWEzODcyCiAgICAgICAgICAvLyBub3RlOiB1c2UgZXh0ZX
JuYWxsIHNjcmlwdCAiL2pzL2Fkcy5qcyIgLT4gaXNBZEJsb2NrQWN0aXZlID0gZmFsc2U7CiAgICAgICAgI
CBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWFrLnV3LCAnaXNBZEJsb2NrQWN0aXZlJywgewogICAgICAgICAg
ICBlbnVtZXJhYmxlIDogdHJ1ZSwKICAgICAgICAgICAgd3JpdGFibGUgOiBmYWxzZSwKICAgICAgICAgICA
gdmFsdWUgOiBmYWxzZQogICAgICAgICAgfSk7CgogICAgICAgICAgLyoKICAgICAgICAgIHdpbmRvdy5pSG
F2ZUxvYWRlZEFkcyA9IHRydWU7CiAgICAgICAgICB2YXIgbmljZUFkc0NoZWNrPXRydWU7CiAgICAgICAgI
CBhZGJsb2NrID0gZmFsc2UKICAgICAgICAgIGlzX2Jsb2NrZXIgPSBmYWxzZTsKICAgICAgICAgICAqLwog
ICAgICAgIH0sCiAgICAgICAgb25JZGxlIDogZnVuY3Rpb24gKCkgewoKICAgICAgICAgIC8vIEFkQmxvY2s
gRGV0ZWN0b3IgKFhlbkZvcm8gUmVsbGVjdCkKICAgICAgICAgIC8vIHNpdGU6IGh0dHA6Ly90aW55dXJsLm
NvbS9wYTI4eGRuCiAgICAgICAgICAvLyBjbG9uZUludG86IGh0dHA6Ly90aW55dXJsLmNvbS9rNnFwaG1lC
iAgICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxl
ci9pc3N1ZXMvODA1CiAgICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1
hZGJsb2NrLWtpbGxlci9pc3N1ZXMvODA0CiAgICAgICAgICAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY2
9tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvNTkxCiAgICAgICAgICBpZiAoQWFrLnV3Llhlb
kZvcm8gJiYgdHlwZW9mIEFhay51dy5YZW5Gb3JvLnJlbGxlY3QgPT0gJ29iamVjdCcpIHsKICAgICAgICAg
ICAgQWFrLnV3LlhlbkZvcm8ucmVsbGVjdCA9IHsKICAgICAgICAgICAgICBBZEJsb2NrRGV0ZWN0b3IgOiB
7CiAgICAgICAgICAgICAgICBzdGFydCA6IGZ1bmN0aW9uICgpIHt9CiAgICAgICAgICAgICAgfQogICAgIC
AgICAgICB9OwogICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ0FkQmxvY2sgRGV0ZWN0b3IgKFhlbkZvcm8gU
mVsbGVjdCknKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvKgogICAgICAgICAgLy8gQWR1bmJsb2NrIC0g
aHR0cDovL2FkdW5ibG9jay5jb20vCiAgICAgICAgICBpZiAoQWFrLmdldENvb2tpZSgnYWRibG9jaycpID0
9IDEpIHsKICAgICAgICAgIEFhay5zZXRDb29raWUoJ2FkYmxvY2snLCAwKTsKICAgICAgICAgIEFhay5zZX
RDb29raWUoJ2Jhcl9jbG9zZWQnLCAxKTsKICAgICAgICAgIH0KICAgICAgICAgICAqLwoKICAgICAgICAgI
C8vIEFkYmxvY2sgQmxvY2tlcgogICAgICAgICAg
Ly8gaHR0cHM6Ly93b3JkcHJlc3Mub3JnL3BsdWdpbnMvYWRkYmxvY2tibG9ja2VyLwogICAgICAgICAgLy8
gaHR0cDovL3Rpbnl1cmwuY29tL25zd242ZnoKICAgICAgICAgIC8vIGh0dHA6Ly9wYXN0ZWJpbi5jb20vZD
Y1enIzN20KICAgICAgICAgIC8qIGNhbiBjYXVzZSBhIGJ1ZwogICAgICAgICAgdmFyIGFkcyA9IGRvY3VtZ
W50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Fmc19hZHMnKTsKICAgICAgICAgIHZhciBhZCA9IGFkcy5s
ZW5ndGggJiYgYWRzW2Fkcy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChhZCAmJiBhZC5pbm5lckhUTUw
ubGVuZ3RoID09PSAwIHx8IGFkLmNsaWVudEhlaWdodCA9PT0gMCkgewogICAgICAgICAgQWFrLmFkZFNjcm
lwdChmdW5jdGlvbiAoKSB7CiAgICAgICAgICBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lTmF0aXZlID0gSFRNT
ERvY3VtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lOwogICAgICAgICAgSFRNTERvY3Vt
ZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lID0gZnVuY3Rpb24gKGNsYXNzTmFtZSkgewo
gICAgICAgICAgaWYgKGNsYXNzTmFtZSA9PSAnYWZzX2FkcycpIHsKICAgICAgICAgIGNvbnNvbGUuaW5mby
hbJ0FudGlBZGJLaWxsZXInLCBsb2NhdGlvbi5ob3N0LCAnQWRibG9ja0Jsb2NrZXInLCBjbGFzc05hbWVdK
TsKICAgICAgICAgIHZhciB1bmlxaWQgPSBEYXRlLm5vdygpOwogICAgICAgICAgdmFyIGJhaXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgIGJhaXQuaW5uZXJIVE1MID0gJzxicj4nOwo
gICAgICAgICAgYmFpdC5jbGFzc05hbWUgPSB1bmlxaWQ7CiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcG
VuZENoaWxkKGJhaXQpOwogICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hb
WUodW5pcWlkKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBnZXRFbGVtZW50c0J5Q2xhc3NOYW1l
TmF0aXZlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICA
gICAgICB9CiAgICAgICAgICAgKi8KCiAgICAgICAgICAvLyBBZGJ1ZGR5CiAgICAgICAgICBpZiAodHlwZW
9mIEFhay51dy5jbG9zZUFkYnVkZHkgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgQWFrLnV3LmNsb
3NlQWRidWRkeSgpOwogICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ0FkYnVkZHknKTsKICAgICAgICAgIH0K
CiAgICAgICAgICAvLyBBZEJsb2NrIEFsZXJ0ZXIgKFdQKQogICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWI
uY29tL3dwLXBsdWdpbnMvYWRibG9jay1hbGVydGVyCiAgICAgICAgICAvLwogICAgICAgICAgaWYgKEFhay
5nZXRFbGVtZW50KCdkaXYuYWRiX292ZXJsYXkgPiBkaXYuYWRiX21vZGFsX2ltZycpKSB7CiAgICAgICAgI
CAgIC8vIFJlbW92ZSBBbGVydCArIEFsbG93IFNjcm9sbAogICAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVu
dCgnZGl2LmFkYl9vdmVybGF5Jyk7CiAgICAgICAgICAgIEFhay5hZGRTdHlsZSgnaHRtbCxib2R5IHtoZWl
naHQ6YXV0bzsgb3ZlcmZsb3c6IGF1dG87fScpOwogICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ0FkQmxvY2
tBbGVydGVyJyk7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gVW5rbm93IEFudGkgQWRCbG9jayBzeXN0Z
W0KICAgICAgICAgIGlmIChBYWsuZ2V0RWxlbWVudCgnI2Jsb2NrZGl2JykgJiYgQWFrLmNvbnRhaW5zKEFh
ay5nZXRFbGVtZW50KCcjYmxvY2tkaXYnKS5pbm5lckhUTUwsICdkaXNhYmxlIGFkIGJsb2NraW5nIG9yIHV
zZSBhbm90aGVyIGJyb3dzZXIgd2l0aG91dCBhbnkgYWRibG9ja2VyIHdoZW4geW91IHZpc2l0JykpIHsKIC
AgICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoJyNibG9ja2RpdicpOwogICAgICAgICAgfQoKICAgICAgI
CAgIC8vIEFudGlibG9jay5vcmcgdjIKICAgICAgICAgIC8vIG5vdGU6IGRldGVjdCBhbmQgc3RvcmUgYmxv
Y2sgaWQKICAgICAgICAgIC8vIGRlbW86IGh0dHA6Ly90aW55dXJsLmNvbS9uaHlocHprCiAgICAgICAgICB
2YXIgc3R5bGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGUnKTsKICAgICAgICAgIGZvci
AodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBzdHlsZSA9I
HN0eWxlc1tpXTsKICAgICAgICAgICAgdmFyIGNzc1J1bGVzID0gc3R5bGUuc2hlZXQuY3NzUnVsZXM7CiAg
ICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY3NzUnVsZXMubGVuZ3RoOyBqKyspIHsKICAgICAgICA
gICAgICB2YXIgY3NzUnVsZSA9IGNzc1J1bGVzW2pdOwogICAgICAgICAgICAgIHZhciBjc3NUZXh0ID0gY3
NzUnVsZS5jc3NUZXh0OwogICAgICAgICAgICAgIHZhciBwYXR0ZXJuID0gL14jKFthLXowLTldezQsMTB9K
SB+IFwqIFx7IGRpc3BsYXk6IG5vbmU7IFx9LzsKICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGNz
c1RleHQpKSB7CiAgICAgICAgICAgICAgICB2YXIgaWQgPSBwYXR0ZXJuLmV4ZWMoY3NzVGV4dClbMV07CiA
gICAgICAgICAgICAgICBpZiAoQWFrLmhhc1NjcmlwdCgidy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywiIC
sgaWQgKyAiLGZhbHNlKSIpKSB7CiAgICAgICAgICAgICAgICAgIEFhay5hYWJzLmFibzIgPSBpZDsKICAgI
CAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAg
ICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIHdpbiA9IEFhay51dzsKICAgICAgICAgIGZvciA
odmFyIHByb3AgaW4gd2luKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKCEvXndlYm
tpdC8udGVzdChwcm9wKSAmJiAvXlthLXowLTldezQsMTJ9JC9pLnRlc3QocHJvcCkgJiYgcHJvcCAhPT0gJ
2RvY3VtZW50JyAmJiAod2luW3Byb3BdaW5zdGFuY2VvZiBIVE1MRG9jdW1lbnQpID09PSBmYWxzZSAmJiB3
aW4uaGFzT3duUHJvcGVydHkocHJvcCkgJiYgdHlwZW9mIHdpbltwcm9wXSA9PT0gJ29iamVjdCcpIHsKICA
gICAgICAgICAgICAgIHZhciBtZXRob2QgPSB3aW5bcHJvcF07CgogICAgICAgICAgICAgICAgLy8gQW50aW
Jsb2NrLm9yZyB2MyAmIEJldHRlclN0b3BBZGJsb2NrCiAgICAgICAgICAgICAgICAvLyBpc3N1ZTogaHR0c
HM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMvODMzCiAgICAgICAgICAg
ICAgICBpZiAobWV0aG9kLmRlZmVyRXhlY3V0aW9uICYmCiAgICAgICAgICAgICAgICAgIG1ldGhvZC5kaXN
wbGF5TWVzc2FnZSAmJgogICAgICAgICAgICAgICAgICBtZXRob2QuZ2V0RWxlbWVudEJ5ICYmCiAgICAgIC
AgICAgICAgICAgIG1ldGhvZC5nZXRTdHlsZSAmJgogICAgICAgICAgICAgICAgICBtZXRob2QuaW5zZXJ0I
CYmCiAgICAgICAgICAgICAgICAgIG1ldGhvZC5uZXh0RnVuY3Rpb24pIHsKICAgICAgICAgICAgICAgICAg
aWYgKG1ldGhvZC50b2dnbGUpIHsKICAgICAgICAgICAgICAgICAgICBBYWsuYWFicy5ic2EgPSBwcm9wOwo
gICAgICAgICAgICAgICAgICAgIEFhay5kZXRlY3RlZCgnQmV0dGVyU3RvcEFkYmxvY2t7ZG9tfScpOwogIC
AgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIEFhay5hYWJzLmFibzMgPSBwc
m9wOwogICAgICAgICAgICAgICAgICAgIEFhay5kZXRlY3RlZCgnQW50aWJsb2NrM3tkb219Jyk7CiAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgd2luW3Byb3BdID0gbnVsbDsgLy8ga2lsbCBpbnN
0YW5jZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIEJsb2NrQWRCbG9jawogICAgIC
AgICAgICAgICAgLy8gc2l0ZTogYmxvY2thZGJsb2NrLmNvbQogICAgICAgICAgICAgICAgLy8gbm90ZTogc
mFuZG9tIGluc3RhbmNlIG5hbWUKICAgICAgICAgICAgICAgIC8vIHNvdXJjZTogaHR0cHM6Ly9naXN0Lmdp
dGh1Yi5jb20vV2F0aWxpbi9hZjc1ZTBhMmU4MmEyZWZiMzg0YmRlOWM3YjQxZGVjOAogICAgICAgICAgICA
gICAgLy8gaXNzdWVzOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3
Vlcz9xPWxhYmVsJTNBQmxvY2tBZEJsb2NrCiAgICAgICAgICAgICAgICBpZiAobWV0aG9kLmJhYikgeyAvL
yB2YXJpYW50IDEKICAgICAgICAgICAgICAgICAgQWFrLmRldGVjdGVkKCdCbG9ja0FkQmxvY2t7ZG9tOnZh
cmlhbnQxfScpOwogICAgICAgICAgICAgICAgICB3aW5bcHJvcF0gPSBudWxsOwogICAgICAgICAgICAgICA
gfSBlbHNlIGlmIChPYmplY3Qua2V5cyhtZXRob2QpLmxlbmd0aCA9PT0gMyAmJiBPYmplY3Qua2V5cyhtZX
Rob2QpLm1hcChmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuI
HZhbHVlOwogICAgICAgICAgICAgICAgICB9KS5qb2luKCkubGVuZ3RoID09PSAzMikgeyAvLyB2YXJpYW50
IDIKICAgICAgICAgICAgICAgICAgQWFrLmRldGVjdGVkKCdCbG9ja0FkQmxvY2t7ZG9tOnZhcmlhbnQyfSc
pOwogICAgICAgICAgICAgICAgICB3aW5bcHJvcF0gPSBudWxsOwogICAgICAgICAgICAgICAgfQogICAgIC
AgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIC8vY29uc29sZS5sb
2coJ2Vycm9yJywgcHJvcCkKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIC8vIEFudGkt
QWRibG9ja2VycwogICAgICAgICAgdmFyIGFhYnMgPSB7CiAgICAgICAgICAgIC8vIFBsdWdpbnMgV29yZFB
yZXNzCiAgICAgICAgICAgIE5vQWRCbG9jayA6ICcoL3BsdWdpbnMvbm8tYWRibG9jay98L2Jsb2NrQmxvY2
svYmxvY2tCbG9jay5qcXVlcnkuanMpJywKICAgICAgICAgICAgQmV0dGVyU3RvcEFkYmxvY2sgOiAnKC9wb
HVnaW5zL2JldHRlci1zdG9wLWFkYmxvY2svfGJzYS1zY3JpcHQtZG9jdHlwZS5qc3xic2Etc2NyaXB0LW5v
LWRvY3R5cGUuanMpJywKICAgICAgICAgICAgQWRCbG9ja0Jsb2NrZXIgOiAnL3BsdWdpbnMvd29yZHByZXN
zLWFkYmxvY2stYmxvY2tlci8nLAogICAgICAgICAgICBBbnRpQmxvY2tCdWtzc2FBeW1hbiA6ICcvcGx1Z2
lucy9hbnRpLWJsb2NrLycsCiAgICAgICAgICAgIEJsb2NrQWx5emVyIDogJy9wbHVnaW5zL2Jsb2NrYWx5e
mVyLWFkYmxvY2stY291bnRlci8nLAogICAgICAgICAgICBBZEJsb2NraW5nRGV0ZWN0b3IgOiAnL3BsdWdp
bnMvYWQtYmxvY2tpbmctZGV0ZWN0b3IvJywKICAgICAgICAgICAgLy8gUGx1Z2lucyBXZWJzaXRlCiAgICA
gICAgICAgIEFkd29ya21lZGlhIDogJyhhZHdvcmttZWRpYXxsb3h0a3xjb250ZW50bG9ja2luZ25ldHdvcm
tzKS5jb20vZ0xvYWRlci5waHAnLAogICAgICAgICAgICBBZHNjZW5kbWVkaWEgOiAnYWRzY2VuZG1lZGlhL
mNvbS9nd2pzLnBocCcsCiAgICAgICAgICAgIEZ1Y2tBZEJsb2NrIDogJygvZnVja2FkYmxvY2suanN8L2Js
b2NrYWRibG9jay5qcyknLAogICAgICAgICAgICBqUXVlcnlBZEJsb2NrIDogJy9qcXVlcnkuYWRibG9jay5
qcycsCiAgICAgICAgICAgIGpRdWVyeUFkYmxvY2tEZXRlY3RvciA6ICcvanF1ZXJ5LmFkYmxvY2stZGV0ZW
N0b3IuanMnLAogICAgICAgICAgICBBZEJsb2NrQWR2ZXJ0aXNlbWVudCA6ICcvYWR2ZXJ0aXNlbWVudC5qc
ycsCiAgICAgICAgICAgIEFkQmxvY2tBZHZlcnQgOiAnL2FkdmVydC5qcycsCiAgICAgICAgICAgIEFkQmxv
Y2tBZHZDdXN0b20gOiAnL2FkdmVydGlzZW1lbnQoLispLmpzJywKICAgICAgICAgICAgQWRCbG9ja0FkZnJ
hbWUgOiAnL2FkZnJhbWUuanMnLAogICAgICAgICAgICBBbnRpQWRCdXN0ZXIgOiAnL2FudGktYWQtYnVzdG
VyLmpzJywKICAgICAgICAgICAgUlRLQW50aUFkYmxvY2sgOiAnL2Jsb2NrY2FrZS5qcycsCiAgICAgICAgI
CAgIEFkYmxvY2tEZXRlY3RvciA6ICcvQWRibG9ja0RldGVjdG9yL2hhbmRsZXIubWluLmpzJywKICAgICAg
ICAgICAgalF1ZXJ5QW50aUFkc0Jsb2NrIDogJy9qcXVlcnkuYW50aWFkc2Jsb2NrLmpzJywKICAgICAgICA
gICAgQWRidWRkeSA6ICcvanMvYWRidWRkeS5taW4uanMnLAogICAgICAgICAgICBBbnRpQURzQmxvY2tlci
A6ICcvYWFkYi9zY3JpcHQuanMnCiAgICAgICAgICB9OwoKICAgICAgICAgIHZhciBzY3JpcHRzID0gZG9jd
W1lbnQuc2NyaXB0czsKICAgICAgICAgIGZvciAodmFyIHkgPSAwOyB5IDwgc2NyaXB0cy5sZW5ndGg7IHkr
KykgewogICAgICAgICAgICB2YXIgc2NyaXB0ID0gc2NyaXB0c1t5XTsKICAgICAgICAgICAgaWYgKHNjcml
wdC5zcmMpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gYWFicykgewogICAgICAgICAgICAgIC
AgaWYgKG5ldyBSZWdFeHAoYWFic1trZXldLCAnaScpLnRlc3Qoc2NyaXB0LnNyYykpIHsKICAgICAgICAgI
CAgICAgICAgQWFrLmRldGVjdGVkKFtrZXksIHNjcmlwdC5zcmNdKTsKICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB
9CgogICAgICAgIH0sCiAgICAgICAgb25JbnNlcnQgOiBmdW5jdGlvbiAoaW5zZXJ0ZWROb2RlKSB7CgogIC
AgICAgICAgLy8gQWxsIE5vZGVzCiAgICAgICAgICBpZiAoQWFrLm9wdHMuaW5zZXJ0ZWQpIHsKICAgICAgI
CAgICAgaWYgKGluc2VydGVkTm9kZS5zcmMgfHwKICAgICAgICAgICAgICBpbnNlcnRlZE5vZGUuaWQgfHwK
ICAgICAgICAgICAgICBpbnNlcnRlZE5vZGUuY2xhc3NOYW1lICYmCiAgICAgICAgICAgICAgIS9maXJlYnV
nLy50ZXN0KGluc2VydGVkTm9kZS5pbm5lckhUTUwpKSB7CiAgICAgICAgICAgICAgLy8gTm9kZSBpbnNlcn
RlZAogICAgICAgICAgICAgIEFhay5sb2coaW5zZXJ0ZWROb2RlKTsKICAgICAgICAgICAgfQogICAgICAgI
CAgfQoKICAgICAgICAgIC8vIE5vLUFkYmxvY2sgLSBodHRwOi8vd3d3Lm5vLWFkYmxvY2suY29tLwogICAg
ICAgICAgaWYgKGluc2VydGVkTm9kZS5pZCAmJgogICAgICAgICAgICBpbnNlcnRlZE5vZGUuaWQubGVuZ3R
oID09IDQgJiYKICAgICAgICAgICAgL15bYS16MC05XXs0fSQvLnRlc3QoaW5zZXJ0ZWROb2RlLmlkKSAmJg
ogICAgICAgICAgICBpbnNlcnRlZE5vZGUubm9kZU5hbWUgPT0gJ0RJVicgJiYKICAgICAgICAgICAgaW5zZ
XJ0ZWROb2RlLmZpcnN0Q2hpbGQgJiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLmZpcnN0Q2hpbGQuaWQg
JiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLmZpcnN0Q2hpbGQuaWQgPT0gaW5zZXJ0ZWROb2RlLmlkICY
mCiAgICAgICAgICAgIEFhay5jb250YWlucyhpbnNlcnRlZE5vZGUuaW5uZXJIVE1MLCAnbm8tYWRibG9jay
5jb20nKSkgewogICAgICAgICAgICAvLyBSZW1vdmUKICAgICAgICAgICAgQWFrLmRldGVjdGVkKCdOby1BZ
GJsb2NrJywgZmFsc2UsIGxvY2F0aW9uLmhyZWYpOwogICAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVudChp
bnNlcnRlZE5vZGUpOwogICAgICAgICAgICAvL0F
hay5sb2coaW5zZXJ0ZWROb2RlKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBTdG9wQWRibG9jayAtIG
h0dHA6Ly9zdG9wYWRibG9jay5vcmcvZG93bmxvYWRzLwogICAgICAgICAgaWYgKGluc2VydGVkTm9kZS5pZ
CAmJgogICAgICAgICAgICBpbnNlcnRlZE5vZGUuaWQubGVuZ3RoID09IDcgJiYKICAgICAgICAgICAgL15h
W2EtejAtOV17Nn0kLy50ZXN0KGluc2VydGVkTm9kZS5pZCkgJiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2R
lLm5vZGVOYW1lID09ICdESVYnICYmCiAgICAgICAgICAgIGluc2VydGVkTm9kZS5wYXJlbnROb2RlICYmCi
AgICAgICAgICAgIGluc2VydGVkTm9kZS5wYXJlbnROb2RlLmlkICYmCiAgICAgICAgICAgIGluc2VydGVkT
m9kZS5wYXJlbnROb2RlLmlkID09IGluc2VydGVkTm9kZS5pZCArICcyJyAmJgogICAgICAgICAgICBBYWsu
Y29udGFpbnMoaW5zZXJ0ZWROb2RlLmlubmVySFRNTCwgJ3N0b3BhZGJsb2NrLm9yZycpKSB7CiAgICAgICA
gICAgIC8vIFJlbW92ZQogICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ1N0b3BBZEJsb2NrJywgZmFsc2UsIG
xvY2F0aW9uLmhyZWYpOwogICAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVudChpbnNlcnRlZE5vZGUpOwogI
CAgICAgICAgICAvL0Fhay5sb2coaW5zZXJ0ZWROb2RlKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBB
bnRpQWRibG9jayAoUGFja2VyKQogICAgICAgICAgdmFyIHJlSWZyYW1lSWQgPSAvXih6ZHx3ZCkkLzsKICA
gICAgICAgIHZhciByZUltZ0lkID0gL14oeGR8Z2QpJC87CiAgICAgICAgICB2YXIgcmVJbWdTcmMgPSAvXC
9hZHNcL2Jhbm5lci5qcGcvOwogICAgICAgICAgdmFyIHJlSWZyYW1lU3JjID0gLyhcL2FkaGFuZGxlclwvf
FwvYWRpbWFnZXNcL3xhZC5odG1sKS87CgogICAgICAgICAgLy8gQ29tbXVucwogICAgICAgICAgaWYgKGlu
c2VydGVkTm9kZS5pZCAmJgogICAgICAgICAgICByZUltZ0lkLnRlc3QoaW5zZXJ0ZWROb2RlLmlkKSAmJgo
gICAgICAgICAgICBpbnNlcnRlZE5vZGUubm9kZU5hbWUgPT0gJ0lNRycgJiYKICAgICAgICAgICAgcmVJbW
dTcmMudGVzdChpbnNlcnRlZE5vZGUuc3JjKSB8fAogICAgICAgICAgICBpbnNlcnRlZE5vZGUuaWQgJiYKI
CAgICAgICAgICAgcmVJZnJhbWVJZC50ZXN0KGluc2VydGVkTm9kZS5pZCkgJiYKICAgICAgICAgICAgaW5z
ZXJ0ZWROb2RlLm5vZGVOYW1lID09ICdJRlJBTUUnICYmCiAgICAgICAgICAgIHJlSWZyYW1lU3JjLnRlc3Q
oaW5zZXJ0ZWROb2RlLnNyYykpIHsKCiAgICAgICAgICAgIC8vIFZhcmlhbnQgMQogICAgICAgICAgICBpZi
AoaW5zZXJ0ZWROb2RlLmlkID09ICd4ZCcpIHsKICAgICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ0FudGlBZ
GJsb2NrUGFja2VyWmR4ZCcsIGZhbHNlLCBsb2NhdGlvbi5ocmVmKTsKICAgICAgICAgICAgfSAvLyBWYXJp
YW50IDIKICAgICAgICAgICAgZWxzZSBpZiAoaW5zZXJ0ZWROb2RlLmlkID09ICdnZCcpIHsKICAgICAgICA
gICAgICBBYWsuZGV0ZWN0ZWQoJ0FudGlBZGJsb2NrUGFja2VyV2RnZCcsIGZhbHNlLCBsb2NhdGlvbi5ocm
VmKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBSZW1vdmUKICAgICAgICAgICAgLy9BYWsubG9nK
Gluc2VydGVkTm9kZSk7CiAgICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KGluc2VydGVkTm9kZSk7CiAg
ICAgICAgICB9CgogICAgICAgICAgLy8gQWR1bmJsb2NrIC0gaHR0cDovL2FkdW5ibG9jay5jb20vCiAgICA
gICAgICB2YXIgcmVJZCA9IC9eW2Etel17OH0kLzsKICAgICAgICAgIHZhciByZUNsYXNzID0gL15bYS16XX
s4fSBbYS16XXs4fS87CiAgICAgICAgICB2YXIgcmVCZyA9IC9eW2Etel17OH0tYmckLzsKICAgICAgICAgI
HZhciByZU1lc3NhZ2UgPSAvSWwgc2VtYmxlcmFpdCBxdWUgdm91cyB1dGlsaXNpZXogdW4gYmxvcXVldXIg
ZGUgcHVibGljaXTDqSAhLzsKCiAgICAgICAgICAvLyBDb21tdW5zCiAgICAgICAgICBpZiAodHlwZW9mIEF
hay51dy52dGZhYiAhPSAndW5kZWZpbmVkJyAmJgogICAgICAgICAgICB0eXBlb2YgQWFrLnV3LmFkYmxvY2
tfYW50aWIgIT0gJ3VuZGVmaW5lZCcgJiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLnBhcmVudE5vZGUgJ
iYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLnBhcmVudE5vZGUubm9kZU5hbWUgPT0gJ0JPRFknICYmCiAg
ICAgICAgICAgIGluc2VydGVkTm9kZS5pZCAmJgogICAgICAgICAgICByZUlkLnRlc3QoaW5zZXJ0ZWROb2R
lLmlkKSAmJgogICAgICAgICAgICBpbnNlcnRlZE5vZGUubm9kZU5hbWUgPT0gJ0RJVicgJiYKICAgICAgIC
AgICAgaW5zZXJ0ZWROb2RlLm5leHRTaWJsaW5nICYmCiAgICAgICAgICAgIGluc2VydGVkTm9kZS5uZXh0U
2libGluZy5jbGFzc05hbWUgJiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLm5leHRTaWJsaW5nLm5vZGVO
YW1lID09ICdESVYnKSB7CgogICAgICAgICAgICAvLyBGdWxsIFNjcmVlbiBNZXNzYWdlIChQcmVtaXVtKQo
gICAgICAgICAgICAvLyA8ZGl2IGlkPSJsZnloc3ZkcSIgY2xhc3M9InR2d25vcWRmIHN2b25leHJrIiBzdH
lsZT0idG9wOiAxMDBweDsgb3BhY2l0eTogMTsgdmlzaWJpbGl0eTogdmlzaWJsZTsiPgogICAgICAgICAgI
CAvLyA8ZGl2IGNsYXNzPSJ0dndub3FkZi1iZyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+PC9kaXY+CiAg
ICAgICAgICAgIGlmIChpbnNlcnRlZE5vZGUuY2xhc3NOYW1lICYmCiAgICAgICAgICAgICAgcmVDbGFzcy5
0ZXN0KGluc2VydGVkTm9kZS5jbGFzc05hbWUpICYmCiAgICAgICAgICAgICAgcmVCZy50ZXN0KGluc2VydG
VkTm9kZS5uZXh0U2libGluZy5jbGFzc05hbWUpICYmCiAgICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLm5le
HRTaWJsaW5nLnN0eWxlICYmCiAgICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLm5leHRTaWJsaW5nLnN0eWxl
LmRpc3BsYXkgIT0gJ25vbmUnKSB7CgogICAgICAgICAgICAgIC8vIFJlbW92ZSBNZXNzYWdlCiAgICAgICA
gICAgICAgQWFrLmRldGVjdGVkKCJBZFVuQmxvY2tQcmVtaXVtIik7CiAgICAgICAgICAgICAgQWFrLnJlbW
92ZUVsZW1lbnQoaW5zZXJ0ZWROb2RlLm5leHRTaWJsaW5nKTsgLy8gb3ZlcmxheQogICAgICAgICAgICAgI
EFhay5yZW1vdmVFbGVtZW50KGluc2VydGVkTm9kZSk7IC8vIGJveAogICAgICAgICAgICB9CiAgICAgICAg
ICAgIC8vIFRvcCBiYXIgTWVzc2FnZSAoRnJlZSkKICAgICAgICAgICAgLy8gPGRpdiBpZD0idml4bWdybHk
iPgogICAgICAgICAgICAvLyA8ZGl2IGlkPSJtZm5oYWl5eCIgY2xhc3M9Imxrcm52Ynl0Ij4KICAgICAgIC
AgICAgZWxzZSBpZiAoaW5zZXJ0ZWROb2RlLm5leHRTaWJsaW5nLmlkICYmCiAgICAgICAgICAgICAgcmVJZ
C50ZXN0KGluc2VydGVkTm9kZS5uZXh0U2libGluZy5pZCkgJiYKICAgICAgICAgICAgICByZU1lc3NhZ2Uu
dGVzdChpbnNlcnRlZE5vZGUuaW5uZXJIVE1MKSkgewoKICAgICAgICAgICAgICAvLyBSZW1vdmUgTWVzc2F
nZQogICAgICAgICAgICAgIEFhay5kZXRlY3RlZCgiQWRVbkJsb2NrRnJlZSIpOwogICAgICAgICAgICAgIE
Fhay5yZW1vdmVFbGVtZW50KGluc2VydGVkTm9kZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgI
CAgICAgICAvLyBBbnRpYmxvY2sgLSBodHRwOi8vYW50aWJsb2NrLm9yZy8KICAgICAgICAgIHZhciByZU1z
Z0lkID0gL15bYS16MC05XXs0LDEwfSQvaTsKICAgICAgICAgIHZhciByZVRhZzEgPSAvXihkaXZ8c3Bhbnx
ifGl8Zm9udHxzdHJvbmd8Y2VudGVyKSQvaTsKICAgICAgICAgIHZhciByZVRhZzIgPSAvXihhfGJ8aXxzfH
V8cXxwfHN0cm9uZ3xjZW50ZXIpJC9pOwogICAgICAgICAgdmFyIHJlV29yZHMxID0gL2FkIGJsb2NrZXJ8Y
WQgYmxvY2t8YWQtYmxvY2t8YWRibG9ja2VyfGFkLWJsb2NrZXJ8YWRibG9ja3xibG9xdWV1cnxibG9xdWVh
ZG9yfFdlcmJlYmxvY2tlcnxhZGJsb2NrZXJ0fCYjMTU3MDsmIzE1ODM7JiMxNTc2OyYjMTYwNDsmIzE2MDg
7JiMxNjAzOyAmIzE1NzY7JiMxNjA0OyYjMTU4Nzt80LHQu9C+0LrQuNGA0L7QstGJ0LjQutC+0LwvaTsKIC
AgICAgICAgIHZhciByZVdvcmRzMiA9IC9rYXBhdHxkaXNhYmxlfGTDqXNhY3RpdmV6fGTDqXNhY3RpdmVyf
GRlc2FjdGl2ZXp8ZGVzYWN0aXZlcnxkZXNhdGl2ZXxkZXNhY3RpdmFyfGRlc2FjdGl2ZXxkZXNhY3RpdmF8
ZGVha3RpdmllcmV8ZGlzYWJpbGl0YXJlfCYjOTQ1OyYjOTYwOyYjOTQ5OyYjOTU3OyYjOTQ5OyYjOTYxOyY
jOTQ3OyYjOTU5OyYjOTYwOyYjOTU5OyYjOTQzOyYjOTUxOyYjOTYzOyYjOTUxO3wmIzEwNzk7JiMxMDcyOy
YjMTA4NzsmIzEwODg7JiMxMDc3OyYjMTA5NzsmIzEwNzI7JiMxMDkwOyYjMTEwMDt8w6FsbMOtdHNkIGxlf
HB1YmxpY2l0w6lzfNGA0LXQutC70LDQvNC1fHZlcmhpbmRlcnR8YWR2ZXJ0fGthcGF0xLFuxLF6L2k7Cgog
ICAgICAgICAgLy8gQW50aWJsb2NrLm9yZyAoYWxsIHZlcnNpb24pCiAgICAgICAgICBpZiAoaW5zZXJ0ZWR
Ob2RlLnBhcmVudE5vZGUgJiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLmlkICYmCiAgICAgICAgICAgIG
luc2VydGVkTm9kZS5zdHlsZSAmJgogICAgICAgICAgICBpbnNlcnRlZE5vZGUuY2hpbGROb2Rlcy5sZW5nd
GggJiYKICAgICAgICAgICAgaW5zZXJ0ZWROb2RlLmZpcnN0Q2hpbGQgJiYKICAgICAgICAgICAgIWluc2Vy
dGVkTm9kZS5maXJzdENoaWxkLmlkICYmCiAgICAgICAgICAgICFpbnNlcnRlZE5vZGUuZmlyc3RDaGlsZC5
jbGFzc05hbWUgJiYKICAgICAgICAgICAgcmVNc2dJZC50ZXN0KGluc2VydGVkTm9kZS5pZCkgJiYKICAgIC
AgICAgICAgcmVUYWcxLnRlc3QoaW5zZXJ0ZWROb2RlLm5vZGVOYW1lKSAmJgogICAgICAgICAgICByZVRhZ
zIudGVzdChpbnNlcnRlZE5vZGUuZmlyc3RDaGlsZC5ub2RlTmFtZSkpIHsKICAgICAgICAgICAgLy9BYWsu
bG9nKGluc2VydGVkTm9kZSk7CgogICAgICAgICAgICAvLyBLaWxsIGF1ZGlvIG1lc3NhZ2UKICAgICAgICA
gICAgdmFyIGF1ZGlvID0gaW5zZXJ0ZWROb2RlLnF1ZXJ5U2VsZWN0b3IoImF1ZGlvW2xvb3BdIik7CiAgIC
AgICAgICAgIGlmIChhdWRpbykgewogICAgICAgICAgICAgIGF1ZGlvLnBhdXNlKCk7CiAgICAgICAgICAgI
CAgQWFrLmRldGVjdGVkKCdBbnRpYmxvY2t7YXVkaW99Jyk7CiAgICAgICAgICAgICAgQWFrLnJlbW92ZUVs
ZW1lbnQoYXVkaW8pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFudGlibG9jay5vcmcgdjIKICA
gICAgICAgICAgLy8gZGVtbzogaHR0cDovL3Rpbnl1cmwuY29tL2gzbXd0YTQKICAgICAgICAgICAgZWxzZS
BpZiAoKEFhay5hYWJzLmFibzIgJiYgaW5zZXJ0ZWROb2RlLmlkID09IEFhay5hYWJzLmFibzIpIHx8CiAgI
CAgICAgICAgICAgKGluc2VydGVkTm9kZS5maXJzdENoaWxkLmhhc0NoaWxkTm9kZXMoKSAmJiByZVdvcmRz
MS50ZXN0KGluc2VydGVkTm9kZS5maXJzdENoaWxkLmlubmVySFRNTCkgJiYgcmVXb3JkczIudGVzdChpbnN
lcnRlZE5vZGUuZmlyc3RDaGlsZC5pbm5lckhUTUwpKSkgewogICAgICAgICAgICAgIEFhay5kZXRlY3RlZC
gnQW50aWJsb2NrMntpbnNlcnR9Jyk7CiAgICAgICAgICAgICAgQWFrLnJlbW92ZUVsZW1lbnQoaW5zZXJ0Z
WROb2RlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBbnRpYmxvY2sub3JnIHYzCiAgICAgICAg
ICAgIC8vIGRlbW86IGh0dHA6Ly90aW55dXJsLmNvbS9xZWNmYTd3CiAgICAgICAgICAgIC8vIGNhc2U6IGh
0dHA6Ly90aW55dXJsLmNvbS96YnJscjNhIC8qIGZvcmsgKi8KICAgICAgICAgICAgZWxzZSBpZiAoKEFhay
5hYWJzLmFibzMgJiYgaW5zZXJ0ZWROb2RlLmlkID09IEFhay5hYWJzLmFibzMpIHx8CiAgICAgICAgICAgI
CAgKGluc2VydGVkTm9kZS5maXJzdENoaWxkLmhhc0NoaWxkTm9kZXMoKSAmJiBpbnNlcnRlZE5vZGUuZmly
c3RDaGlsZC5maXJzdENoaWxkLm5vZGVOYW1lID09ICdJTUcnICYmIC9eZGF0YTppbWFnZVwvcG5nO2Jhc2U
2NC8udGVzdChpbnNlcnRlZE5vZGUuZmlyc3RDaGlsZC5maXJzdENoaWxkLnNyYykpKSB7CiAgICAgICAgIC
AgICAgQWFrLnV3W0Fhay5hYWJzLmFibzNdID0gbnVsbDsKICAgICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ
0FudGlibG9jazN7aW5zZXJ0fScpOwogICAgICAgICAgICAgIEFhay5yZW1vdmVFbGVtZW50KGluc2VydGVk
Tm9kZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQmV0dGVyU3RvcEFkYmxvY2sKICAgICAgICA
gICAgLy8gZGVtbzogaHR0cDovL3Rpbnl1cmwuY29tL2pzOXphdDQKICAgICAgICAgICAgLy8gc291cmNlOi
BodHRwOi8vcGFzdGViaW4uY29tL1lpbWtydEtCCiAgICAgICAgICAgIC8vIGlzc3VlOiBodHRwOi8vdGlue
XVybC5jb20vemV0Z2J0eAogICAgICAgICAgICBlbHNlIGlmIChBYWsuYWFicy5ic2EgJiYgaW5zZXJ0ZWRO
b2RlLmlkID09IEFhay5hYWJzLmJzYSkgewogICAgICAgICAgICAgIEFhay51d1tBYWsuYWFicy5ic2FdID0
gbnVsbDsKICAgICAgICAgICAgICBBYWsuZGV0ZWN0ZWQoJ0JldHRlclN0b3BBZGJsb2Nre2luc2VydH0nKT
sKICAgICAgICAgICAgICBBYWsucmVtb3ZlRWxlbWVudChpbnNlcnRlZE5vZGUpOwogICAgICAgICAgICB9C
iAgICAgICAgICAgIC8vICBNYW55IGZhbHNlIHBvc2l0aXZlCiAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgIC8vQWFrLnJlbW92ZUVsZW1lbnQoaW5zZXJ0ZWROb2RlKTsKICAgICAgICAgICAgfQogICAgICA
gICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGJsb2NrRGV0ZWN0IDogZnVuY3Rpb24gKCkgew
oKICAgICAgLy8gRXhjbHVkZSBkb21haW5zCiAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vc
mVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xNDY2CiAgICAgIC8vIGlzc3VlOiBodHRwczovL2dp
dGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGVyL2lzc3Vlcy8xMjYzCiAgICAgIC8vIGlzc3VlOiB
odHRwczovL2dyZWFzeWZvcmsub3JnL2VuL2ZvcnVtL2Rpc2N1c3Npb24vODQyMi8KICAgICAgLy8gaXNzdW
U6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVrL2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzk4NgogICAgI
CAvLyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlZWsvYW50aS1hZGJsb2NrLWtpbGxlci9pc3N1ZXMv
ODU3CiAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkYmxvY2sta2lsbGV
yL2lzc3Vlcy82MTcKICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ3JlYXN5Zm9yay5vcmcvZnIvZm9ydW0vZG
lzY3Vzc2lvbi81NDI2CiAgICAgIC8vIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVlay9hbnRpLWFkY
mxvY2sta2lsbGVyL2lzc3Vlcy80MTkKICAgICAgLy8gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWVr
L2FudGktYWRibG9jay1raWxsZXIvaXNzdWVzLzM3NwogICAgICB2YXIgZXhjbHVkZXMgPSBbIjM2MC5jbiI
sICJhbWF6b24uIiwgImFwcGxlLmNvbSIsICJhc2
suY29tIiwgImJhaWR1LmNvbSIsICJiaW5nLmNvbSIsICJidWZmZXJhcHAuY29tIiwgImNoYXRhbmdvLmNvb
SIsICJjaHJvbWVhY3Rpb25zLmNvbSIsICJlYXN5aW5wbGF5Lm5ldCIsICJlYmF5LmNvbSIsICJmYWNlYm9v
ay5jb20iLCAiZmxhdHRyLmNvbSIsICJmbGlja3IuY29tIiwgImdoYWNrcy5uZXQiLCAiZ29vZ2xlLiIsICJ
pbWRiLmNvbSIsICJpbWdib3guY29tIiwgImltZ3VyLmNvbSIsICJpbnN0YWdyYW0uY29tIiwgImpzYmluLm
NvbSIsICJqc2ZpZGRsZS5uZXQiLCAibGlua2VkaW4uY29tIiwgImxpdmUuY29tIiwgIm1haWwucnUiLCAib
Wljcm9zb2Z0LmNvbSIsICJtc24uY29tIiwgInBheXBhbC5jb20iLCAicGludGVyZXN0LmNvbSIsICJwcmVs
b2FkZXJzLm5ldCIsICJxcS5jb20iLCAicmVkZGl0LmNvbSIsICJzdGFja292ZXJmbG93LmNvbSIsICJ0YW1
wZXJtb25rZXkubmV0IiwgInR3aXR0ZXIuY29tIiwgInZpbWVvLmNvbSIsICJ3aWtpcGVkaWEub3JnIiwgIn
czc2Nob29scy5jb20iLCAieWFob28uIiwgInlhbmRleC5ydSIsICJ5b3V0dS5iZSIsICJ5b3V0dWJlLmNvb
SIsICJ4ZW12dHYubmV0IiwgInZvZC5wbCIsICJhZ2FyLmlvIiwgInBhbmRvb24uaW5mbyIsICJmc2Yub3Jn
IiwgImFkYmxvY2twbHVzLm9yZyIsICJwbG5rci5jbyIsICJleGFjdHRhcmdldC5jb20iLCAiZG9sbGRpdml
uZS5jb20iLCAicG9wbWVjaC5ydSIsICJjYWxtLmNvbSJdOwogICAgICB2YXIgaG9zdCA9IGxvY2F0aW9uLm
hvc3Q7CiAgICAgIHZhciBleGNsdWRlZCA9IGZhbHNlOwogICAgICBleGNsdWRlcy5mb3JFYWNoKGZ1bmN0a
W9uIChleGNsdWRlKSB7CiAgICAgICAgaWYgKG5ldyBSZWdFeHAoZXhjbHVkZSkudGVzdChob3N0KSkgewog
ICAgICAgICAgZXhjbHVkZWQgPSB0cnVlOwogICAgICAgICAgaWYgKEFhay5vcHRzLmxvZ0V4Y2x1ZGVkKSB
7CiAgICAgICAgICAgIEFhay53YXJuKCdFeGNsdWRlZCcpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dX
JuIGZhbHNlOwogICAgICAgIH0KICAgICAgfSk7CgogICAgICAvLyBJbmNsdWRlIGRvbWFpbnMKICAgICAgL
y8gSXNFdmVudHVwcG9ydGVkOiBodHRwOi8vdGlueXVybC5jb20vb2VlejhjNwogICAgICBpZiAoIWV4Y2x1
ZGVkKSB7CgogICAgICAgIHZhciBoYW5kbGVyRXZlbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgdmF
yIHJ1bGUgPSBBYWsucnVsZXNbbmFtZV07CgogICAgICAgICAgcnVsZS5ob3N0LmZvckVhY2goZnVuY3Rpb2
4gKGhvc3QpIHsKICAgICAgICAgICAgLy8gQ2hlY2sgaG9zdAogICAgICAgICAgICBpZiAobmV3IFJlZ0V4c
Chob3N0KS50ZXN0KGxvY2F0aW9uLmhvc3QpKSB7CgogICAgICAgICAgICAgIC8vIE5hdGl2ZSBtb2RlCiAg
ICAgICAgICAgICAgaWYgKCFBYWsudXNlR00gJiYgQWFrLmlzVG9wZnJhbWUpIHsKICAgICAgICAgICAgICA
gIEFhay53YXJuKCdSdW4gbmF0aXZlbHkuJyk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAvLy
BMb2cgcnVsZSB1c2VkCiAgICAgICAgICAgICAgaWYgKHJ1bGUuaG9zdFswXSAhPSAnLio/JykgewogICAgI
CAgICAgICAgICAgQWFrLmRldGVjdGVkKCdydWxlJywgcnVsZSk7CiAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgIAogICAgICAgICAgICAgIC8vIEJlZm9yZSBET00gbG9hZAogICAgICAgICAgICAgIGlmIChydWx
lLm9uU3RhcnQpIHsKICAgICAgICAgICAgICAgIHJ1bGUub25TdGFydCgpOwogICAgICAgICAgICAgIH0KIC
AgICAgICAgICAgICAvLyBPbiBhbGwgc3RhdGVtZW50cwogICAgICAgICAgICAgIGlmIChydWxlLm9uQWx3Y
XlzKSB7CiAgICAgICAgICAgICAgICBydWxlLm9uQWx3YXlzKCk7IC8vIHN0YXJ0CiAgICAgICAgICAgICAg
ICBBYWsub25FdmVudCh3aW5kb3csICdET01Db250ZW50TG9hZGVkJywgcnVsZS5vbkFsd2F5cyk7IC8vIGl
kbGUKICAgICAgICAgICAgICAgIEFhay5vbkV2ZW50KHdpbmRvdywgJ2xvYWQnLCBydWxlLm9uQWx3YXlzKT
sgLy8gZW5kCiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vIEJlZm9yZSBTY3JpcHQgRXhlY3V0Z
WQKICAgICAgICAgICAgICBpZiAocnVsZS5vbkJlZm9yZVNjcmlwdCkgewoKICAgICAgICAgICAgICAgIC8v
IG9wdGlvbnM6IGNvbnRhaW5zLCBzZWFyY2gsIHJlcGxhY2UsIG92ZXJyaWRlLCByZW1vdmUsIGV4dGVybmF
sCiAgICAgICAgICAgICAgICB2YXIgb3B0aW9uc0JlZm9yZVNjcmlwdCA9IHJ1bGUub25CZWZvcmVTY3JpcH
QoKTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc0JlZm9yZVNjcmlwdCA9PSAib2JqZWN0I
ikgewoKICAgICAgICAgICAgICAgICAgdmFyIGhhbmRsZXJCZWZvcmVTY3JpcHQgPSBmdW5jdGlvbiAoZSwg
b3B0aW9ucykgewogICAgICAgICAgICAgICAgICAgIHZhciBpc0V2ZW50ID0gZSBpbnN0YW5jZW9mIHdpbmR
vdy5FdmVudDsKICAgICAgICAgICAgICAgICAgICB2YXIgdGhpc1NjcmlwdCA9IChlLnRhcmdldCB8fCBlLn
NyY0VsZW1lbnQpIHx8IGU7CgogICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9yRWFjaChmdW5jdGlvb
iAobykgeyAvLyBoYXNBdHRyaWJ1dGUKICAgICAgICAgICAgICAgICAgICAgIHZhciBzcmMgPSBvLmV4dGVy
bmFsID8gJ3NyYycgOiAnaW5uZXJIVE1MJzsKICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWFyY2ggPSB
uZXcgUmVnRXhwKG8uY29udGFpbnMsIG8uZmxhZ3MgfHwgJycpOwoKICAgICAgICAgICAgICAgICAgICAgIG
lmICh0aGlzU2NyaXB0W3NyY10gJiYgdGhpc1NjcmlwdFtzcmNdLmxlbmd0aCAmJiBzZWFyY2gudGVzdCh0a
GlzU2NyaXB0W3NyY10pKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBTdG9wIHNjcmlwdCBleGVj
dXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXZlbnQpIHsKICAgICAgICAgICAgICAgICA
gICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUH
JvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgI
CAgLy8gQ3JlYXRlIG5ldyBzY3JpcHQKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IHRo
aXNTY3JpcHQucGFyZW50Tm9kZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1NjcmlwdCA9IGR
vY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUm
VwbGFjZSBhIHBhcnQgb2YgdGhlIHNjcmlwdAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoby5yZXBsY
WNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2NyaXB0W3NyY10gPSB0aGlzU2NyaXB0W3Ny
Y10ucmVwbGFjZShzZWFyY2gsIG8ucmVwbGFjZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW5
0LnJlcGxhY2VDaGlsZChuZXdTY3JpcHQsIHRoaXNTY3JpcHQpOwogICAgICAgICAgICAgICAgICAgICAgIC
B9IC8vIE92ZXJyaWRlIHNjcmlwdAogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvLm92ZXJya
WRlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2NyaXB0W3NyY10gPSBvLm92ZXJyaWRlOwog
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5yZXBsYWNlQ2hpbGQobmV3U2NyaXB0LCB0aGlzU2N
yaXB0KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSAvLyBSZW1vdmUgc2NyaXB0CiAgICAgICAgICAgIC
AgICAgICAgICAgIGVsc2UgaWYgKG8ucmVtb3ZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZ
W50LnJlbW92ZUNoaWxkKHRoaXNTY3JpcHQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoby5kZXRlY3RlZCkgewogICA
gICAgICAgICAgICAgICAgICAgICAgIEFhay5kZXRlY3RlZChvLmRldGVjdGVkKTsKICAgICAgICAgICAgIC
AgICAgICAgICAgfQkJCQkJCQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFhay5vcHRzLmxvZ0lud
GVyY2VwdGVkU2NyaXB0cykgewogICAgICAgICAgICAgICAgICAgICAgICAgIEFhay5sb2coc3JjLCBvLCB0
aGlzU2NyaXB0LCBuZXdTY3JpcHQpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICA
gICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIH07CgogICAgIC
AgICAgICAgICAgICAvLyBCcm93c2VyIHN1cHBvcnRpbmcgZXZlbnQgYmVmb3Jlc2NyaXB0ZXhlY3V0ZQogI
CAgICAgICAgICAgICAgICBpZiAoJ29uYmVmb3Jlc2NyaXB0ZXhlY3V0ZScgaW4gZG9jdW1lbnQpIHsKICAg
ICAgICAgICAgICAgICAgICBBYWsub25FdmVudCh3aW5kb3csICdiZWZvcmVzY3JpcHRleGVjdXRlJywgZnV
uY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJCZWZvcmVTY3JpcHQoZSwgb3B0aW
9uc0JlZm9yZVNjcmlwdCk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIH0gZ
WxzZSB7IC8vIEJyb3dzZXIgbm90IHN1cHBvdGluZyBiZWZvcmVzY3JpcHRleGVjdXRlCgogICAgICAgICAg
ICAgICAgICAgIHZhciBsb2FkRG9jdW1lbnQgPSBmdW5jdGlvbiAob3B0aW9uc0JlZm9yZVNjcmlwdCkgewo
gICAgICAgICAgICAgICAgICAgICAgLy9pZiAoZG9jdW1lbnQucmVmZXJyZXIgPT09ICcnKQogICAgICAgIC
AgICAgICAgICAgICAgLy9yZXR1cm47CgogICAgICAgICAgICAgICAgICAgICAgQWFrLndhcm4oJ29uYmVmb
3Jlc2NyaXB0LWNvbXBhdGlibGUnKTsKCiAgICAgICAgICAgICAgICAgICAgICAvLyBTdG9wIGxvYWRpbmcK
ICAgICAgICAgICAgICAgICAgICAgIEFhay5hZGRTY3JpcHQoJ3dpbmRvdy5zdG9wKCk7Jyk7IC8vIGNocm9
tZS9vcGVyYQogICAgICAgICAgICAgICAgICAgICAgLy9BYWsuYWRkU2NyaXB0KCdkb2N1bWVudC5vcGVuKC
k7Jyk7IC8vIGZpcmVmb3gKCiAgICAgICAgICAgICAgICAgICAgICAvLyBHZXQgY29udGVudAogICAgICAgI
CAgICAgICAgICAgICAgQWFrLnJlcXVlc3QoewogICAgICAgICAgICAgICAgICAgICAgICB1cmwgOiBsb2Nh
dGlvbi5ocmVmLAogICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzIDogewogICAgICAgICAgICAgICA
gICAgICAgICAgICJSZWZlcmVyIiA6IGRvY3VtZW50LnJlZmVycmVyCiAgICAgICAgICAgICAgICAgICAgIC
AgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIG9ubG9hZCA6IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgI
CAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHJlc3VsdC5yZXNwb25zZVRleHQ7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlciA9IG5ldyB3aW5kb3cuRE9NUGFyc2VyKCk7CiAgICAgICA
gICAgICAgICAgICAgICAgICAgdmFyIGRvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoaHRtbCwgInRleH
QvaHRtbCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHRzID0gZG9jLnNjcmlwdHM7C
gogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7
IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXNTY3JpcHQgPSBzY3JpcHRzW2l
dOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlckJlZm9yZVNjcmlwdCh0aGlzU2NyaXB0LC
BvcHRpb25zQmVmb3JlU2NyaXB0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgI
CAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAg
aHRtbCA9IGRvYy5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MOwoKICAgICAgICAgICAgICAgICAgICAgICA
gICAvLyBXcml0ZSBuZXcgY29udGVudCB0byBIVE1MIGRvY3VtZW50OgogICAgICAgICAgICAgICAgICAgIC
AgICAgIEFhay5hZGRTY3JpcHQoJ2RvY3VtZW50Lm9wZW4oKTsgZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoI
icgKyB3aW5kb3cuZXNjYXBlKGh0bWwpICsgJyIpKTsgZG9jdW1lbnQuY2xvc2UoKTsnKTsgLy8gY2hyb21l
L29wZXJhCiAgICAgICAgICAgICAgICAgICAgICAgICAgLy9BYWsuYWRkU2NyaXB0KCdkb2N1bWVudC53cml
0ZSh1bmVzY2FwZSgiJyArIGVzY2FwZShodG1sKSArICciKSk7IGRvY3VtZW50LmNsb3NlKCk7Jyk7IC8vIG
ZpcmVmb3gKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfSk7CiAgI
CAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICBsb2FkRG9jdW1lbnQob3B0aW9uc0Jl
Zm9yZVNjcmlwdCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICA
gICB9IC8vIEFmdGVyIFNjcmlwdCBFeGVjdXRlZAogICAgICAgICAgICAgIGlmIChydWxlLm9uQWZ0ZXJTY3
JpcHQpIHsKICAgICAgICAgICAgICAgIGlmICgnb25hZnRlcnNjcmlwdGV4ZWN1dGUnIGluIGRvY3VtZW50K
SB7IC8vIE1vemlsbGEgRmlyZWZveAogICAgICAgICAgICAgICAgICBBYWsub25FdmVudCh3aW5kb3csICdh
ZnRlcnNjcmlwdGV4ZWN1dGUnLCBydWxlLm9uQWZ0ZXJTY3JpcHQpOwogICAgICAgICAgICAgICAgfQogICA
gICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyBXaGVuIERPTSBMb2FkCiAgICAgICAgICAgICAgaWYgKH
J1bGUub25JZGxlKSB7CiAgICAgICAgICAgICAgICBpZiAoIUFhay51c2VHTSkgeyAvLyBOYXRpdmUgbW9kZ
QogICAgICAgICAgICAgICAgICBydWxlLm9uSWRsZSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAgLy9BYWsub25FdmVudCh3aW5kb3csICdET01Db250ZW50TG9hZGVkJywgcnVsZS5
vbklkbGUpOwogICAgICAgICAgICAgICAgICBBYWsub25FdmVudCh3aW5kb3csICdET01Db250ZW50TG9hZG
VkJywgcnVsZS5vbklkbGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgI
CAgICAvLyBXaGVuIFdpbmRvdyBMb2FkCiAgICAgICAgICAgICAgaWYgKHJ1bGUub25FbmQpIHsKICAgICAg
ICAgICAgICAgIGlmICghQWFrLnVzZUdNKSB7IC8vIE5hdGl2ZSBtb2RlCiAgICAgICAgICAgICAgICAgIHJ
1bGUub25FbmQoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIEFhay5vbk
V2ZW50KHdpbmRvdywgJ2xvYWQnLCBydWxlLm9uRW5kKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgI
CAgICB9CiAgICAgICAgICAgICAgLy8gV2hlbiBET00gQXR0ck1vZGlmaWVkCiAgICAgICAgICAgICAgaWYg
KHJ1bGUub25BdHRyTW9kaWZpZWQpIHsKICAgICAgICAgICAgICAgIEFhay5vbkV2ZW50KHdpbmRvdywgJ0R
PTUF0dHJNb2RpZmllZCcsIHJ1bGUub25BdHRyTW9kaWZpZWQsIGZhbHNlKTsKICAgICAgICAgICAgICB9Ci
AgICAgICAgICAgICAgLy8gV2hlbiBET00gU3Vid
HJlZU1vZGlmaWVkCiAgICAgICAgICAgICAgaWYgKHJ1bGUub25TdWJ0cmVlTW9kaWZpZWQpIHsKICAgICAg
ICAgICAgICAgIEFhay5vbkV2ZW50KHdpbmRvdywgJ0RPTVN1YnRyZWVNb2RpZmllZCcsIHJ1bGUub25TdWJ
0cmVlTW9kaWZpZWQsIGZhbHNlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gV2hlbiBET0
0gRWxlbWVudHMgYXJlIEluc2VydGVkIGluIERvY3VtZW50CiAgICAgICAgICAgICAgaWYgKHJ1bGUub25Jb
nNlcnQpIHsKCiAgICAgICAgICAgICAgICAvLyBNdXRhdGlvbiBPYnNlcnZlcgogICAgICAgICAgICAgICAg
Ly8gZG9jOiBodHRwOi8vdGlueXVybC5jb20vbXh4emVlNAogICAgICAgICAgICAgICAgLy8gc3VwcG9ydDo
gaHR0cDovL3Rpbnl1cmwuY29tL25lcG43dnkKICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93Lk
11dGF0aW9uT2JzZXJ2ZXIgIT0gJ3VuZGVmaW5lZCcgfHwKICAgICAgICAgICAgICAgICAgdHlwZW9mIFdlY
ktpdE11dGF0aW9uT2JzZXJ2ZXIgIT0gJ3VuZGVmaW5lZCcpIHsKCiAgICAgICAgICAgICAgICAgIC8vIE11
dGF0aW9uIE9ic2VydmVyCiAgICAgICAgICAgICAgICAgIHZhciBNdXRhdGlvbk9ic2VydmVyMSA9IHdpbmR
vdy5NdXRhdGlvbk9ic2VydmVyIHx8IHdpbmRvdy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyOwoKICAgICAgIC
AgICAgICAgICAgLy8gQ3JlYXRlIGFuIG9ic2VydmVyIGluc3RhbmNlCiAgICAgICAgICAgICAgICAgIHZhc
iBvYnMxID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIxKGZ1bmN0aW9uIChtdXRhdGlvbnMpIHsKICAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlIGNhbiBzYWZlbHkgdXNlIGBmb3JFYWNoYCBiZWNhdXNlIHdlIGFscmVhZHk
gdXNlIG11dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAvLyBvYnNlcnZlcnMgdGhhdCBhcmUgbW9yZS
ByZWNlbnQgdGhhbiBgZm9yRWFjaGAuIChzb3VyY2U6IE1ETikKICAgICAgICAgICAgICAgICAgICAgIG11d
GF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChtdXRhdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAv
LyB3ZSB3YW50IG9ubHkgYWRkZWQgbm9kZXMKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG11dGF0aW9
uLmFkZGVkTm9kZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucHJvdG90eX
BlLmZvckVhY2guY2FsbChtdXRhdGlvbi5hZGRlZE5vZGVzLCBmdW5jdGlvbiAoYWRkZWROb2RlKSB7CiAgI
CAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQWFrLm9wdHMubG9nSW5zZXJ0ZWROb2RlcykgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBYWsubG9nKGFkZGVkTm9kZSk7CiAgICAgICAgICAgICAgICA
gICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLm9uSW5zZXJ0KGFkZGVkTm
9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KI
CAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
ICAgICAvLyBPYnNlcnZlcgogICAgICAgICAgICAgICAgICBvYnMxLm9ic2VydmUoZG9jdW1lbnQsIHsKICA
gICAgICAgICAgICAgICAgICBjaGlsZExpc3QgOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHN1YnRyZW
UgOiB0cnVlCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgI
CAgLy8gTXV0YXRpb24gRXZlbnRzIChBbHRlcm5hdGl2ZSBTb2x1dGlvbikKICAgICAgICAgICAgICAgIC8v
IGRvYzogaHR0cDovL3Rpbnl1cmwuY29tL29wOTVyZnkKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICA
gICAgICAgICAgICBBYWsub25FdmVudCh3aW5kb3csICJET01Ob2RlSW5zZXJ0ZWQiLCBmdW5jdGlvbiAoZS
kgewogICAgICAgICAgICAgICAgICAgIGlmIChBYWsub3B0cy5sb2dJbnNlcnRlZE5vZGVzKSB7CiAgICAgI
CAgICAgICAgICAgICAgICBBYWsubG9nKGUudGFyZ2V0KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgcnVsZS5vbkluc2VydChlLnRhcmdldCk7CiAgICAgICAgICAgICAgICAgIH0sIGZ
hbHNlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gV2hlbi
BET00gRWxlbWVudHMgYXJlIFJlbW92ZWQgaW4gRG9jdW1lbnQKICAgICAgICAgICAgICBpZiAocnVsZS5vb
lJlbW92ZSkgewoKICAgICAgICAgICAgICAgIC8vIE11dGF0aW9uIE9ic2VydmVyCiAgICAgICAgICAgICAg
ICAvLyBkb2M6IGh0dHA6Ly90aW55dXJsLmNvbS9teHh6ZWU0CiAgICAgICAgICAgICAgICAvLyBzdXBwb3J
0OiBodHRwOi8vdGlueXVybC5jb20vbmVwbjd2eQogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3
cuTXV0YXRpb25PYnNlcnZlciAhPSAndW5kZWZpbmVkJyB8fAogICAgICAgICAgICAgICAgICB0eXBlb2YgV
2ViS2l0TXV0YXRpb25PYnNlcnZlciAhPSAndW5kZWZpbmVkJykgewoKICAgICAgICAgICAgICAgICAgLy8g
TXV0YXRpb24gT2JzZXJ2ZXIKICAgICAgICAgICAgICAgICAgdmFyIE11dGF0aW9uT2JzZXJ2ZXIyID0gd2l
uZG93Lk11dGF0aW9uT2JzZXJ2ZXIgfHwgd2luZG93LldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7CgogICAgIC
AgICAgICAgICAgICAvLyBDcmVhdGUgYW4gb2JzZXJ2ZXIgaW5zdGFuY2UKICAgICAgICAgICAgICAgICAgd
mFyIG9iczIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcjIoZnVuY3Rpb24gKG11dGF0aW9ucykgewogICAgICAg
ICAgICAgICAgICAgICAgLy8gV2UgY2FuIHNhZmVseSB1c2UgYGZvckVhY2hgIGJlY2F1c2Ugd2UgYWxyZWF
keSB1c2UgbXV0YXRpb24KICAgICAgICAgICAgICAgICAgICAgIC8vIG9ic2VydmVycyB0aGF0IGFyZSBtb3
JlIHJlY2VudCB0aGFuIGBmb3JFYWNoYC4gKHNvdXJjZTogTUROKQogICAgICAgICAgICAgICAgICAgICAgb
XV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24gKG11dGF0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IC8vIHdlIHdhbnQgb25seSByZW1vdmVkIG5vZGVzCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtdXR
hdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkucH
JvdG90eXBlLmZvckVhY2guY2FsbChtdXRhdGlvbi5yZW1vdmVkTm9kZXMsIGZ1bmN0aW9uIChyZW1vdmVkT
m9kZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFhay5vcHRzLmxvZ1JlbW92ZWROb2Rl
cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYWsubG9nKHJlbW92ZWROb2RlKTsKICAgICA
gICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUub25SZW
1vdmUocmVtb3ZlZE5vZGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgI
CAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgICAgICAgLy8gT2JzZXJ2ZXIKICAgICAgICAgICAgICAgICAgb2JzMi5vYnNlcnZlKGR
vY3VtZW50LCB7CiAgICAgICAgICAgICAgICAgICAgY2hpbGRMaXN0IDogdHJ1ZSwKICAgICAgICAgICAgIC
AgICAgICBzdWJ0cmVlIDogdHJ1ZQogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KI
CAgICAgICAgICAgICAgIC8vIE11dGF0aW9uIEV2ZW50cyAoQWx0ZXJuYXRpdmUgU29sdXRpb24pCiAgICAg
ICAgICAgICAgICAvLyBkb2M6IGh0dHA6Ly90aW55dXJsLmNvbS9vcDk1cmZ5CiAgICAgICAgICAgICAgICB
lbHNlIHsKICAgICAgICAgICAgICAgICAgQWFrLm9uRXZlbnQod2luZG93LCAiRE9NTm9kZVJlbW92ZWQiLC
BmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChBYWsub3B0cy5sb2dSZW1vdmVkTm9kZ
XMpIHsKICAgICAgICAgICAgICAgICAgICAgIEFhay5sb2coZS50YXJnZXQpOwogICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICBydWxlLm9uUmVtb3ZlKGUudGFyZ2V0KTsKICAgICAgICAgICA
gICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgIC
AgICAKICAgICAgICAgICAgICAvLyBBYWsgRXZlbnRzCiAgICAgICAgICAgICAgQWFrLm9uRXZlbnQod2luZ
G93LCAnZGV0ZWN0ZWQnLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgQWFrLmluZm8oWydBbnRp
QWRiS2lsbGVyJywgQWFrLmlzVG9wZnJhbWUgPyAndG9wZnJhbWUnIDogJ3N1YmZyYW1lJywgbG9jYXRpb24
uaG9zdCwgZS5kZXRhaWxdKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAKICAgICAgICAgIC
AgfQogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgLy8gQXBwbHkgcnVsZXMKICAgICAgICBmb
3IgKHZhciBuYW1lIGluIEFhay5ydWxlcykgewogICAgICAgICAgaWYgKEFhay5ydWxlcy5oYXNPd25Qcm9w
ZXJ0eShuYW1lKSkgewogICAgICAgICAgICBoYW5kbGVyRXZlbnRzKEFhaywgbmFtZSk7CiAgICAgICAgICB
9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfTsKCiAgQWFrLmluaXRpYWxpemUoKTsKCn0pKHdpbmRvdy
k7"},{"name":"ouo.io","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_prototyp
es":false,"noframes":null,"run_at":null,"override":{"use_includes":
[],"orig_includes":[],"merge_includes":true,"use_matches":[],"orig_matches":
["https://ouo.io/*","https://ouo.press/*","https://oko.sh/*"],"merge_matches":true,
"use_excludes":[],"orig_excludes":[],"merge_excludes":true,"use_connects":
[],"merge_connects":true,"use_blockers":[],"orig_run_at":"document-
idle","orig_noframes":null,"orig_connects":[]}},"storage":
{"ts":1622031754258,"data":
{}},"enabled":true,"position":8,"file_url":"https://greasyfork.org/scripts/412607-
ouo-io/code/ouoio.user.js","uuid":"6cfc15d6-b2f9-4fc5-aee3-
bf298d2e3afb","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICBvdW8uaW8KLy8
gQG5hbWVzcGFjZSAgICBodHRwOi8vdGFtcGVybW9ua2V5Lm5ldC8KLy8gQHZlcnNpb24gICAgICAxLjAuMg
ovLyBAZGVzY3JpcHRpb24gIFNraXAgYnV0dG9uIGF1dG9tYXR5Y2FsbHkKLy8gQGF1dGhvciAgICAgICBZb
3UKLy8gQG1hdGNoICAgICAgICBodHRwczovL291by5pby8qCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly9v
dW8ucHJlc3MvKgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vb2tvLnNoLyoKLy8gQGdyYW50ICAgICAgICB
ub25lCi8vID09L1VzZXJTY3JpcHQ9PQoKKGZ1bmN0aW9uKCkgewondXNlIHN0cmljdCc7Cgpkb2N1bWVudC
5nZXRFbGVtZW50QnlJZCgiYnRuLW1haW4iKS5jbGljaygpOwp9KSgpOw=="},{"name":"reCAPTCHA
Helper","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_prototyp
es":false,"noframes":null,"run_at":null,"override":{"use_includes":
[],"orig_includes":["*"],"merge_includes":true,"use_matches":[],"orig_matches":
[],"merge_matches":true,"use_excludes":[],"orig_excludes":
[],"merge_excludes":true,"use_connects":[],"merge_connects":true,"use_blockers":
[],"orig_run_at":"document-start","orig_noframes":null,"orig_connects":
[]}},"storage":{"ts":1622032155720,"data":
{}},"enabled":true,"position":9,"file_url":"https://greasyfork.org/scripts/18449-
recaptcha-helper/code/reCAPTCHA%20Helper.user.js","uuid":"04de0526-e9d3-4b65-9e93-
4b1b11c3b17e","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICByZUNBUFRDSEE
gSGVscGVyCi8vIEBpY29uICAgICAgICAgaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vcmVjYXB0Y2hhL2FkbW
luL2Zhdmljb24uaWNvCi8vIEB2ZXJzaW9uICAgICAgMS4xLjQKLy8gQGRlc2NyaXB0aW9uICBUaGlzIGF1d
G9tYXRpY2FsbHkgY2xpY2tzIG9yIGV4ZWN1dGVzIG9uIGFueSByZUNBUFRDSEEgb24gdGhlIHdlYnBhZ2Ug
YW5kIHN1Ym1pdHMgaXRzIGZvcm0gZGlyZWN0bHkgYWZ0ZXIgeW91IHNvbHZlZCBpdC4KLy8gQGF1dGhvciA
gICAgICBSb3lhbGdhbWVyMDYKLy8gQGluY2x1ZGUgICAgICAqCi8vIEBncmFudCAgICAgICAgbm9uZQovLy
BAcnVuLWF0ICAgICAgIGRvY3VtZW50LXN0YXJ0Ci8vIEBuYW1lc3BhY2UgICAgaHR0cHM6Ly9ncmVhc3lmb
3JrLm9yZy9zY3JpcHRzLzE4NDQ5LXJlY2FwdGNoYS1mb3JtLWF1dG9zdWJtaXQvCi8vIEBob21lcGFnZVVS
TCAgaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzE4NDQ5LXJlY2FwdGNoYS1mb3JtLWF1dG9zdWJ
taXQvCi8vIEBzdXBwb3J0VVJMICAgaHR0cHM6Ly9ncmVhc3lmb3JrLm9yZy9zY3JpcHRzLzE4NDQ5LXJlY2
FwdGNoYS1mb3JtLWF1dG9zdWJtaXQvZmVlZGJhY2svCi8vID09L1VzZXJTY3JpcHQ9PQoKLy8gPT1Db25ma
Wd1cmF0aW9uPT0KY29uc3QgYmxhY2tsaXN0ZWRVcmxzID0gWwogICAgIm1pcGVkLnJ1IiwKICAgICJ3d3cu
aW5kaWVnYWxhIiwKICAgICJodHRwczovL2dsZWFtLmlvLyIKXTsKLy8gPT0vQ29uZmlndXJhdGlvbj09Cgo
vLyA9PUNvZGU9PQpjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24gIT09IHdpbmRvdy5wYXJlbnQubG9jYX
Rpb24gPyBkb2N1bWVudC5yZWZlcnJlciA6IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7CmlmIChpc05vdEJsY
WNrTGlzdGVkKHVybCkpIHsKICAgIGlmIChsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJnb29nbGUuY29tL3Jl
Y2FwdGNoYSIpKSB7CiAgICAgICAgdmFyIGNsaWNrQ2hlY2sgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHs
KICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yZWNhcHRjaGEtY2hlY2tib3
gtY2hlY2ttYXJrIikubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjbGlja
0NoZWNrKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5yZWNhcHRjaGEtY2hl
Y
2tib3gtY2hlY2ttYXJrIikuY2xpY2soKTsKICAgICAgICAgICAgfQogICAgICAgIH0sIDUwKTsKICAgIH0g
ZWxzZSB7CiAgICAgICAgd2luZG93Lm9ubG9hZCA9IHJlYWR5VG9IZWxwOwogICAgfQp9CgpmdW5jdGlvbiB
yZWFkeVRvSGVscCgpIHsKICAgIHZhciBleGVjQ2hlY2sgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKIC
AgICAgICBpZiAod2luZG93LmdyZWNhcHRjaGEgJiYgd2luZG93LmdyZWNhcHRjaGEuZXhlY3V0ZSkgewogI
CAgICAgICAgICBjbGVhckludGVydmFsKGV4ZWNDaGVjayk7CiAgICAgICAgICAgIHRyeSB7IHdpbmRvdy5n
cmVjYXB0Y2hhLmV4ZWN1dGUoKTsgfSBjYXRjaChlKSB7fQogICAgICAgIH0KICAgIH0sIDUwKTsKICAgIFs
uLi5kb2N1bWVudC5mb3Jtc10uZm9yRWFjaChmb3JtID0+IHsKICAgICAgICBpZiAoZm9ybS5pbm5lckhUTU
wuaW5jbHVkZXMoImdvb2dsZS5jb20vcmVjYXB0Y2hhIikpIHsKICAgICAgICAgICAgdmFyIHNvbHZlQ2hlY
2sgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZ3JlY2Fw
dGNoYSAmJiAhIWdyZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKSkgewogICAgICAgICAgICAgICAgICAgIGNsZWF
ySW50ZXJ2YWwoc29sdmVDaGVjayk7CiAgICAgICAgICAgICAgICAgICAgZm9ybS5zdWJtaXQoKTsKICAgIC
AgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgNTApOwogICAgICAgIH0KICAgIH0pOwp9CgpmdW5jdGlvb
iBpc05vdEJsYWNrTGlzdGVkKHVybCkgewogICAgcmV0dXJuIGJsYWNrbGlzdGVkVXJscy5ldmVyeShidSA9
PiAhdXJsLmluY2x1ZGVzKGJ1KSk7Cn0KLy8gPT0vQ29kZT09"},{"name":"URL Shortener
Unshortener","options":
{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wra
ppedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_prototyp
es":false,"noframes":null,"run_at":null,"override":{"use_includes":
[],"orig_includes":["*"],"merge_includes":true,"use_matches":[],"orig_matches":
[],"merge_matches":true,"use_excludes":[],"orig_excludes":
[],"merge_excludes":true,"use_connects":[],"merge_connects":true,"use_blockers":
[],"orig_run_at":"document-idle","orig_noframes":null,"orig_connects":
[]}},"storage":{"ts":1622034635197,"data":
{"remindLaterV":"n0"}},"enabled":true,"position":10,"file_url":"https://greasyfork.
org/scripts/5359-url-shortener-unshortener/code/URL%20Shortener
%20Unshortener.user.js","uuid":"f3f4caad-7171-416d-b67d-
d108c4cc995f","source":"Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgIFVSTCBTaG9ydGV
uZXIgVW5zaG9ydGVuZXIKLy8gQG5hbWVzcGFjZSAgIFNtaXRocwovLyBAZGVzY3JpcHRpb24JQWRkcyBzbW
FsbCBidXR0b24gbmV4dCB0byBzaG9ydGVuZWQgVVJMcyAodC5jby9iaXQubHkvZ29vLmdsKSBvbiBUd2l0d
GVyIGFuZCBvdGhlciBzaXRlcyB0aGF0IHdpbGwgcmVwbGFjZSB0aGUgc2hvcnRlbmVkIFVSTHMgd2l0aCB0
aGVpciByZWFsIGxvY2F0aW9ucyBhbmQgdmljZS12ZXJzYS4gVXNlZnVsIGZvciB3aGVuIHlvdSBkb24ndCB
3YW50IHRvIGJsaW5kbHkgY2xpY2sgbGlua3MuCi8vIEBpbmNsdWRlICAgICAqCi8vIEB2ZXJzaW9uICAgIC
AxLjAuNQovLyBAZ3JhbnQJICAgICAgIEdNX2dldFZhbHVlCi8vIEBncmFudCAgIAkgICBHTV9zZXRWYWx1Z
QovLyBAZ3JhbnQJCSAgIEdNX2FkZFN0eWxlCi8vIEBncmFudCAgCQkgICBHTV94bWxodHRwUmVxdWVzdAov
LyBAZ3JhbnQgIAkJICAgR01fcmVnaXN0ZXJNZW51Q29tbWFuZAovLyBAYXR0cmlidXRpb24JY2hhbmdlcyB
bZDowMy4wNS4xNF1bdTo8dWw+PGxpPkZpeCBmb3Igb3ZlcnNpemVkIGJ1dHRvbnM7IG5lZWRlZCB0byBzcG
VjaWZ5IHNpemUuIE9vcHMuL2xpPjwvdWw+XQovLyA9PS9Vc2VyU2NyaXB0PT0KCi8vbm90ZSB0byBzZWxmO
iBnb3R0YSBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBvbmUgaW4gdGhlIG1ldGFkYXRhIHRvbyEKdmFyIHYg
PSAiMS4wLjUiOwp2YXIgc2NyaXB0TnVtID0gIjE0MDQxMSI7CnZhciBzY3JpcHROYW1lID0gIlVSTCBTaG9
ydGVuZXIgVW5zaG9ydGVuZXIiOwoKLy88LS1VcGRhdGVyIFN0dWZmCnZhciBpc0ZpcmVGb3ggPSBuYXZpZ2
F0b3IudXNlckFnZW50LmluZGV4T2YoIkZpcmVmb3giKSA+IC0xIHx8IG5hdmlnYXRvci51c2VyQWdlbnQua
W5kZXhPZigiSWNld2Vhc2VsIikgPiAtMTsKR01fYWRkU3R5bGUoIiNzbWdtX2JnZGl2eyB0ZXh0LWFsaWdu
OiBjZW50ZXI7cG9zaXRpb246Zml4ZWQ7dG9wOjBweDtsZWZ0OjBweDt6LWluZGV4Ojk5OTE7d2lkdGg6MTA
wJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO29wYWNpdHk6MC43O2Rpc3BsYXk6YmxvY2
s7dmlzaWJpbGl0eTp2aXNpYmxlO30iKTsKR01fYWRkU3R5bGUoIiNzbWdtX2RpYWxvZ2JveCB7IHZlcnRpY
2FsLWFsaWduOm1pZGRsZTtsZWZ0OjQwcHg7dG9wOjE1cHg7Ym9yZGVyOjNweCBzb2xpZCAjMDAwICFpbXBv
cnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9
ydGFudDtjb2xvcjojMDAwICFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6YXJpYWwsdmVyZGFuYSAhaW1wb3J0YW
50O3otSW5kZXg6OTk5OTtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxOCU7aGVpZ2h0OjUwJTttYXJnaW4tbGVmd
DphdXRvO21hcmdpbi1yaWdodDphdXRvO2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTp2aXNpYmxlO30iKTsK
R01fYWRkU3R5bGUoIi5zbWdtX2J1dHRvbnMgeyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7Zm9udDogOTAlICd
hcmlhbCcsJ3RyZWJ1Y2hldCBtcycsaGVsdmV0aWNhLHNhbnMtc2VyaWYgIWltcG9ydGFudDtiYWNrZ3JvdW
5kLWNvbG9yOiNCMkNDRkYgIWltcG9ydGFudDtib3JkZXI6MnB4IHNvbGlkICFpbXBvcnRhbnQ7Ym9yZGVyL
WNvbG9yOiAjRTBFQkZGICMwMDAgIzAwMCAjRTBFQkZGICFpbXBvcnRhbnQ7dmVydGljYWwtYWxpZ246IHRv
cCAhaW1wb3J0YW50O30iKTsKR01fYWRkU3R5bGUoIi5zbWdtX3RhYmxlIHsgbWFyZ2luLWJvdHRvbToxMHB
4ICFpbXBvcnRhbnQ7Ym9yZGVyOjBweCAhaW1wb3J0YW50O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSAhaW
1wb3J0YW50O21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87IH0iKTsKdmFyIHJlbWluZExhd
GVyViA9IEdNX2dldFZhbHVlKCdyZW1pbmRMYXRlclYnLCByZW1pbmRMYXRlclYpOwppZiAoIXJlbWluZExh
dGVyVikgeyByZW1pbmRMYXRlclYgPSAwOyBHTV9zZXRWYWx1ZSgncmVtaW5kTGF0ZXJWJyxyZW1pbmRMYXR
lclYpOyB9Cgp2YXIgaG9tZXBhZ2VVUkwgPSAiaHR0cDovL3VzZXJzY3JpcHRzLm9yZy9zY3JpcHRzL3Nob3
cvIiArIHNjcmlwdE51bSA7CnZhciBtZXRhVVJMID0gImh0dHA6Ly91c2Vyc2NyaXB0cy5vcmcvc2NyaXB0c
y9zb3VyY2UvIiArIHNjcmlwdE51bSArICIubWV0YS5qcyI7CnZhciBzY3JpcHRKU1VSTCA9ICJodHRwOi8v
dXNlcnNjcmlwdHMub3JnL3NjcmlwdHMvc291cmNlLyIgKyBzY3JpcHROdW0gKyAiLnVzZXIuanMiOwoKZnV
uY3Rpb24gZG9yZW1pbmRMYXRlcihjbGlja2VkLHNwYW4pCnsKCWlmIChjbGlja2VkKSAKCQlyZW1pbmRMYX
RlclYgPSBzcGFuOwoJZWxzZQoJCXJlbWluZExhdGVyVi0tOwoJR01fc2V0VmFsdWUoJ3JlbWluZExhdGVyV
icscmVtaW5kTGF0ZXJWKTsKfQoKZnVuY3Rpb24gaGlkZVVwZGF0ZSgpCnsKCWRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NtZ21fYmdkaXYnKSk7Cglkb2N1bWVudC5ib2R
5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzbWdtX2RpYWxvZ2JveCcpKTsKfQoKZn
VuY3Rpb24gY2hlY2tOZXcodmVyc2lvbikKewoJdmFyIHVwZ3JhZGUgPSAwOwoJdmFyIHZlcnN0cmluZyA9I
CIiOwoJdmFyIHRoZUhUTUwgPSAiIjsKCUdNX3htbGh0dHBSZXF1ZXN0KHsKCQltZXRob2Q6IkdFVCIsCgkJ
dXJsOm1ldGFVUkwsCgkJb25sb2FkOmZ1bmN0aW9uKGNvbnRlbnQpewoJCQl2YXIgYVJlc3BvbnNlID0gY29
udGVudC5yZXNwb25zZVRleHQ7CgkJCXZhciBVU3ZlcnNpb24gPSBhUmVzcG9uc2UubWF0Y2goL0B2ZXJzaW
9uLio/KFxkW148XSs/KVxuLyk7CgkJCWFSZXNwb25zZSA9IGFSZXNwb25zZS5yZXBsYWNlKC8gXC8+L2csJ
z4nKTsKCQkJYVJlc3BvbnNlID0gYVJlc3BvbnNlLnJlcGxhY2UoL1xuL2csJycpOwoJCQl2YXIgY2hhbmdl
RGF0ZSA9IGFSZXNwb25zZS5tYXRjaCgvXFtkOihbMC05XSs/XC5bMC05XSs/XC5bMC05XSs/KVxdL2kpWzF
dOwoJCQl2YXIgdGhlQ2hhbmdlcyA9IGFSZXNwb25zZS5tYXRjaCgvXFt1OiguKj8pXF0vaSlbMV07CgkJCX
ZTcGxpdCA9IHZlcnNpb24uc3BsaXQoIi4iKTsKCQkJCXZtYWluID0gTnVtYmVyKHZTcGxpdFswXSk7CgkJC
Ql2dnN1YiA9IE51bWJlcih2U3BsaXRbMV0pOwoJCQkJdnJzdWIgPSBOdW1iZXIodlNwbGl0WzJdKTsKCQkJ
VVNzcGxpdCA9IFVTdmVyc2lvblsxXS5zcGxpdCgiLiIpOwoJCQkJVVN2bWFpbiA9IE51bWJlcihVU3NwbGl
0WzBdKTsKCQkJCVVTdnN1YiA9IE51bWJlcihVU3NwbGl0WzFdKTsKCQkJCVVTcnN1YiA9IE51bWJlcihVU3
NwbGl0WzJdKTsKCQkJdmVyc3RyaW5nID0gIjxkaXYgc3R5bGU9J3BhZGRpbmc6NXB4O2JvcmRlci1ib3R0b
206MXB4IGRvdHRlZCAjMDAwOyc+TGF0ZXN0IFZlcnNpb24gb24gVXNlcnNjcmlwdHM6IDxhIGhyZWY9JyIg
KyBob21lcGFnZVVSTCArICInIHRhcmdldD0nX25ldycgdGl0bGU9J0NsaWNrIHRvIHZpc2l0IHNjcmlwdCd
zIHBhZ2UnPjxiPiIgKyBVU3ZtYWluICsgIi4iICsgVVN2c3ViICsgIi4iICsgVVNyc3ViICsgIjwvYj48L2
E+PGJyPllvdXIgSW5zdGFsbGVkIFZlcnNpb246IDxiPiIgKyB2bWFpbiArICIuIiArIHZ2c3ViICsgIi4iI
CsgdnJzdWIgKyAiPC9iPjwvZGl2PiI7CgkJCWlmIChVU3ZtYWluID4gdm1haW4pIHVwZ3JhZGUgPSAxOwoJ
CQlpZiAoIChVU3ZzdWIgPiB2dnN1YikgJiYgKFVTdm1haW4gPj0gdm1haW4pICkgdXBncmFkZSA9IDE7Cgk
JCWlmICggKFVTcnN1YiA+IHZyc3ViKSAmJiAoVVN2c3ViID09IHZ2c3ViKSAmJiAoVVN2bWFpbiA+PSB2bW
FpbikgKSB1cGdyYWRlID0gMTsKCQkJaWYgKHVwZ3JhZGUgPT0gMSkgLy91cGdyYWRlIGF2YWlsYWJsZSwgc
G9wIGEgYm94CgkJCXsKCQkJCXRoZUhUTUwgKz0gIjxkaXYgc3R5bGU9J3BhZGRpbmc6NXB4O2JvcmRlci1i
b3R0b206MXB4IGRvdHRlZCAjMDAwOyc+TmV3IHZlcnNpb24gb2YgIiArIHNjcmlwdE5hbWUgKyAiIGF2YWl
sYWJsZS48L2Rpdj4iOwoJCQkJdGhlSFRNTCArPSB2ZXJzdHJpbmcgKyAiPHA+IjsKCQkJCXRoZUhUTUwgKz
0gIjx0YWJsZSBjbGFzcz0nc21nbV90YWJsZSc+PHRyPjx0ZD48aW5wdXQgdHlwZT0nYnV0dG9uJyBjbGFzc
z0nc21nbV9idXR0b25zJyBpZD0nc21nbV9pbnN0YWxsQnV0dG9uJyBvbk1vdXNlVXA9XCJkb2N1bWVudC5s
b2NhdGlvbi5ocmVmPVwnIiArIHNjcmlwdEpTVVJMICsgIlwnO1wiIHZhbHVlPSdJbnN0YWxsJz48L3RkPiI
7CgkJCQl0aGVIVE1MICs9ICI8dGQgc3R5bGU9J3dpZHRoOjI1cHg7Jz4mbmJzcDs8L3RkPjx0ZD48aW5wdX
Qgc3R5bGU9JycgY2xhc3M9J3NtZ21fYnV0dG9ucycgdHlwZT0nYnV0dG9uJyBpZD0nc21nbV9yZW1pbmRCd
XR0b24nIHZhbHVlPSdSZW1pbmQgTWUgTGF0ZXInPjwvdGQ+IjsKCQkJCXRoZUhUTUwgKz0gIjwvdHI+PC90
YWJsZT48ZGl2IHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOndoaXRlICFpbXBvcnRhbnQ7b3ZlcmZsb3c6YXV
0byAhaW1wb3J0YW50O2hlaWdodDo1MCU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci10b3A6MXB4IGRvdHRlZC
AjMDAwO3BhZGRpbmc6N3B4OycgY29sc3Bhbj0nNSc+Q2hhbmdlcyAoIiArIGNoYW5nZURhdGUucmVwbGFjZ
SgvXC4vZywiLyIpICsgIik6PGJyPjxzcGFuIHN0eWxlPSdmb250LXN0eWxlOml0YWxpYzsnPiIgKyB0aGVD
aGFuZ2VzICsgIjwvc3Bhbj48L2Rpdj4iOwoJCQkJZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2R
pdicpOwoJCQkJZGl2MS5pZCA9ICdzbWdtX2RpYWxvZ2JveCc7CgkJCQlkaXYxLnN0eWxlLmRpc3BsYXkgPS
Aibm9uZSI7CgkJCQlkaXYxLmlubmVySFRNTCA9IHRoZUhUTUw7CgkJCQlkb2N1bWVudC5ib2R5LmFwcGVuZ
ENoaWxkKGRpdjEpOwoJCQkJZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCQkJZGl2
Mi5pZCA9ICdzbWdtX2JnZGl2JzsKCQkJCWRpdjIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJCWRpdjI
uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZG9yZW1pbmRMYXRlcih0cnVlLDE1KTtoaW
RlVXBkYXRlKCk7fSxmYWxzZSk7CgkJCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdjIpOwoJCQkJZ
G9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NtZ21fYmdkaXYnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7CgkJ
CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc21nbV9kaWFsb2dib3gnKS5zdHlsZS5kaXNwbGF5PSdibG9
jayc7CgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc21nbV9yZW1pbmRCdXR0b24nKS5hZGRFdmVudE
xpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCl7ZG9yZW1pbmRMYXRlcih0cnVlLDYwKTtoaWRlVXBkYXRlK
Ck7fSxmYWxzZSk7CgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc21nbV9pbnN0YWxsQnV0dG9uJyku
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpe2hpZGVVcGRhdGUoKTt9LGZhbHNlKTsKCQk
JfQoJCX0KCX0pCn0KCmlmIChpc0ZpcmVGb3gpIC8vb25seSBkbyB1cGRhdGUgb24gRkZveCwgQ2hyb21lL1
RhbXBlcm1vbmtleSBhcmUgd2VpcmQKewoJZG9yZW1pbmRMYXRlcihmYWxzZSk7CglpZiAocmVtaW5kTGF0Z
XJWIDwgMSkgCgkJY2hlY2tOZXcodik7Cn0KLy9lbmQgdXBkYXRlciBzdHVmZi0tPgoKCnZhciBiMSA9ICJk
YXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhDQUFJQU5VQUFBQUFBUC8vL3hhOUpoS2NIeEthSHc1Nkd
RMXdGd3huRlIzek1Sem9MeHJiTEJuU0toak1LUmE1SlJXdUl4S1hIZzkvR2gvOU5DUDlPQ1g5T1M3OVFUSD
lSRHY5VFQ3OVVFcjlXdzRzRVJRK0dCSTRGaGxOSGh0U0lCWkRHbGYrWjEzK2JHSCtjR24rZHkxaU1ubitoW
HYraDM3K2lvYitrVTk3VTFOK1YzbWJmSUtpaFlPaWhnc2pEUTBvRHhJMkZRd2tEZzhzRVQxdVFXMlNjSENV
Yy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0g1QkFFQUFEVUFMQUFBQUF
BSUFBZ0F
BQVkzd0ZwdHBacWhoRFhXcVJTNmpHbzBFMG1Fb1VRNEtkREhNa2t3TkxLS0JLRndERjRkeFVKQWdCZ3lOVS
9qVVRpMGtKdVlDeVlNQWdBNyI7CnZhciBiMiA9ICJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhDQ
UFJQU5VQUFBQUFBUC8vLzcwM0Zwd3VFcG90RW5va0RuQWhEV2NlRFBOSEhlaEVITnRBR3RJK0djdzhHTGsy
RnE0ekZaY3NFbjhsRC8xTEgvMU9JLzFRSmYxWEx2MVpNZjFoTy8xa1B2MXRTaU1RQ3l3VURqNGNGRGdhRWs
wakdWSW1HME1mRmpZWkVpUVJEUDU0Vi81OFhmNkFZZjZHYVdJM0xmNlRlZjZWZS82WGZ2NmVobjVjVTVKMG
JaUjNjSnVBZWFLSmd5Z1NEU3dVRDI1R1BYdFhUNktJZ3YvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ
UFBQUFBQUFBQUFBQUFBQ0g1QkFFQUFEVUFMQUFBQUFBSUFBZ0FBQVkzd0ZvdEJJdHhoTFhNb2ZCb2ZHb2FB
NFFnV0NnOG9JRkRnWkJVWkJ0R1ltSVJqVmFkQ0FWVE9xVmFOZE9GaEZLOWtET1dpeVlNQWdBNyI7CnZhciB
iMyA9ICJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhDQUFJQVBZRUFLS1VoNXVMZlpLQWNYdGxVdj
dFamY2N2dmNnhhUDJkUkdKSU1KU0RkUDYvaFA2NmYvNjFjUDJrVWYyV05mMk9KazB6RzM1cFZ2NnVaUDZyW
HYyY1FmMlJMT2lDSTh4eUhqNHBGbTVWUVAyWE9QMlFLdk9JSTl0NklLNWZHcHhYRmpZakUxSTJIZEoxSHIx
cEc1cFdGbjlIRW5BK0VDd2REME1zR0xsbkc1ZFNGbnBFRVdjNkR5TVhERGdsRkN3ZEVDZ2FEaVFZRGFHaWZ
KdWJjNUtTWjN0N1NxR2lmZnorZmY3K2NmditWL3I5TkdGaUtaU1VhdnorZFA3K2IvditYL3I5UVBuOUpQbj
lGVXhORm4xK1R2ditVL3YrVGZyOU1mbjlHK1RvRThuTUVEMCtFbTV1T2ZuOUovbjlHZS96RTlqYkVhNnVEc
HFjRERZMkVGSlNHTS9TRUxxOUQ1aWFESDEvQ201d0NTc3NERU5ERTdhNUQ1ZVhESGg2Q1dWbkNDTWpDamM0
RUN3ckRTZ29DeVFrQ3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNIL0
MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUZDZ0JsQUN3QUFBQUFDQUFJQUFBSFBJQmxaUUFBQWdPQ2d3U
UtCZzJIQUFRRURBMGFGUWdSQmhJSEZSWVhMaGthR3h3ZEhpUWdJUjBpS1NRbEppOWxDQjRxS3l3dGlDNHZM
MktDZ1FBaCtRUUZDZ0JsQUN3QUFBQUFDQUFJQUFBSE80QmxaVFkyTkRXQ2d6YzlPVUNITmpjM1AwQk5TRHR
FT1VVNlNFbEtZVXlVVDFCUlYxTlVVRlZXVjFoWldtVlVYRjFlWDJTSVUySmtVNEtCQURzPSI7CgpmdW5jdG
lvbiBnZXRSZWFsVVJMKHVybElEKSB7Cgl2YXIgdGhlVVJMLGxpbms7CglsaW5rID0gZG9jdW1lbnQucXVlc
nlTZWxlY3RvcignYVtzbElEPSInK3VybElEKyciXScpOwoJdGhlVVJMID0gbGluay5nZXRBdHRyaWJ1dGUo
J2RhdGEtZnVsbC11cmwnKTsKCXZhciBwbHVzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JzbCc
rdXJsSUQuc3Vic3RyKDIpKTsKCXBsdXNCb3guaW5uZXJIVE1MID0gJzxpbWcgdGl0bGU9IkNsaWNrIHRvIG
ZldGNoIGZ1bGwgVVJMIiBzdHlsZT0id2lkdGg6OHB4O2hlaWdodDo4cHg7cGFkZGluZzoycHg7Ym9yZGVyO
m5vbmUiIHNyYz0iJytiMysnIiBhbHQ9IlsrXSI+JzsKCUdNX3htbGh0dHBSZXF1ZXN0KHsKCQltZXRob2Q6
IkhFQUQiLAoJCXVybDp0aGVVUkwsCgkJaGVhZGVyczp7ICJVc2VyLUFnZW50IjoibW9ua2V5YWdlbnQiLCA
iQWNjZXB0IjoidGV4dC9tb25rZXksdGV4dC94bWwiIH0sCgkJb25sb2FkOmZ1bmN0aW9uKGNvbnRlbnQpew
oJCQl2YXIgbWludXNCb3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CgkJCQoJCQlsaW5rLnNld
EF0dHJpYnV0ZSgnc21nbV9vcmlnVVJMJyxsaW5rLmlubmVySFRNTCk7CgkJCWxpbmsuc2V0QXR0cmlidXRl
KCdzbWdtX29yaWdmVVJMJyx0aGVVUkwpOwoJCQl2YXIgbmV3TGluayA9IGxpbmsuY2xvbmVOb2RlKHRydWU
pOwoJCQluZXdMaW5rLmhyZWYgPSBjb250ZW50LmZpbmFsVXJsOwoJCQluZXdMaW5rLmlubmVySFRNTCA9IG
NvbnRlbnQuZmluYWxVcmw7CgkJCWxpbmsucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobmV3TGluayxsaW5rK
TsKCgkJCW1pbnVzQm94LmlubmVySFRNTCA9ICc8aW1nIHRpdGxlPSJDbGljayB0byBjb2xsYXBzZSBiYWNr
IHRvIHNob3J0ZW5lZCBVUkwiIHN0eWxlPSJ3aWR0aDo4cHg7aGVpZ2h0OjhweDtwYWRkaW5nOjJweDtib3J
kZXI6bm9uZSIgc3JjPSInK2IyKyciIGFsdD0iWy1dIj4nOwoJCQltaW51c0JveC5ocmVmPSJqYXZhc2NyaX
B0OnZvaWQoMCk7IjsKCQkJbWludXNCb3guaWQgPSAnYnNsJyt1cmxJRC5zdWJzdHIoMik7CgkJCW1pbnVzQ
m94LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpewoJCQkJdGhpcy5pbm5lckhUTUwgPSAn
PGltZyB0aXRsZT0iQ2xpY2sgdG8gZmV0Y2ggZnVsbCBVUkwiIHN0eWxlPSJ3aWR0aDo4cHg7aGVpZ2h0Ojh
weDtwYWRkaW5nOjJweDtib3JkZXI6bm9uZSIgc3JjPSInK2IxKyciIGFsdD0iWytdIj4nOwoJCQkJdmFyIG
FMaW5rID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYVtzbElEPSInK3RoaXMuaWQuc3Vic3RyKDEpKyciX
ScpOwoJCQkJYUxpbmsuc2V0QXR0cmlidXRlKCdkYXRhLWZ1bGwtdXJsJyxhTGluay5nZXRBdHRyaWJ1dGUo
J3NtZ21fb3JpZ2ZVUkwnKSk7CgkJCQlhTGluay5pbm5lckhUTUw9YUxpbmsuZ2V0QXR0cmlidXRlKCdzbWd
tX29yaWdVUkwnKTsKCQkJCWFMaW5rLmhyZWY9YUxpbmsuZ2V0QXR0cmlidXRlKCdzbWdtX29yaWdmVVJMJy
k7CgkJCQlhTGluay50YXJnZXQ9Il9ibGFuayI7CgkJCQl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrI
ixmdW5jdGlvbigpe2dldFJlYWxVUkwodGhpcy5pZC5zdWJzdHIoMSkpO30sZmFsc2UpOwoJCQl9LGZhbHNl
KTsKCQkJcGx1c0JveC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChtaW51c0JveCxwbHVzQm94KTsKCQl9Cgl
9KQp9CgpmdW5jdGlvbiB1bmVzY2FwZUhUTUwocyl7cmV0dXJuIHMucmVwbGFjZSgnJmFtcDsnLCAnJicpLn
JlcGxhY2UoJyZsdDsnLCI8IikucmVwbGFjZSgnJmd0OycsJz4nKS5yZXBsYWNlKCcmcXVvdDsnLCcxIicpL
nJlcGxhY2UoJyYjMzk7JywnXCcnKTt9Cgp2YXIgbGMgPSAwOwpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCdET01Ob2RlSW5zZXJ0ZWQnLGZ1bmN0aW9uKGUpewoJd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXs
KCQl2YXIgbmV3TGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWYqPSJwby5zdC8iXS
xhW2hyZWYqPSJpbWcubHkvIl0sYVtocmVmKj0iYml0Lmx5LyJdLGFbaHJlZio9Imdvby5nbC8iXSxhW2hyZ
WYqPSJ0LmNvLyJdLGFbaHJlZio9ImRiLnR0LyJdLGFbY2xhc3MqPSJleHRMaW5rIl0sYVtjbGFzcyo9InVy
bC1leHQiXSxhW2NsYXNzKj0idHdpdHRlci10aW1lbGluZS1saW5rIl0nKTsKCQlpZiAobmV3TGlua3MubGV
uZ3RoID4gMCkKCQl7CgkJCWZvciAodmFyIGkgPSAwOyBpIDwgbmV3TGlua3MubGVuZ3RoOyBpKyspIHsKCQ
kJCWlmIChuZXdMaW5rc1tpXS5jbGFzc05hbWUubWF0Y2goL1xic21nbV91c1RpdGxlXGIvKSA9PSBudWxsI
CYmIG5ld0xpbmtzW2ldLmlubmVySFRNTC5pbmRleE9mKCc8aW1nJykgPCAwKQoJCQkJewoJCQkJCWxjKys7
CgkJCQkJdmFyIHBsdXNCb3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CgkJCQkJbmV3TGlua3N
baV0uc2V0QXR0cmlidXRlKCdzbElEJywnc2wnK2xjKTsKCQkJCQlpZiAobmV3TGlua3NbaV0uZ2V0QXR0cm
lidXRlKCdkYXRhLWZ1bGwtdXJsJykgPT0gbnVsbCkgbmV3TGlua3NbaV0uc2V0QXR0cmlidXRlKCdkYXRhL
WZ1bGwtdXJsJyxuZXdMaW5rc1tpXS5ocmVmKTsgCgkJCQkJcGx1c0JveC5pbm5lckhUTUwgPSAnPGltZyB0
aXRsZT0iQ2xpY2sgdG8gZmV0Y2ggZnVsbCBVUkwiIHN0eWxlPSJ3aWR0aDo4cHg7aGVpZ2h0OjhweDtwYWR
kaW5nOjJweDtib3JkZXI6bm9uZSIgc3JjPSInK2IxKyciIGFsdD0iWytdIj4nOwoJCQkJCXBsdXNCb3guaH
JlZj0iamF2YXNjcmlwdDp2b2lkKDApOyI7CgkJCQkJcGx1c0JveC5pZCA9ICJic2wiICsgbGM7CgkJCQkJc
Gx1c0JveC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtnZXRSZWFsVVJMKHRoaXMuaWQu
c3Vic3RyKDEpKTt9LGZhbHNlKTsKCQkJCQluZXdMaW5rc1tpXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh
wbHVzQm94LG5ld0xpbmtzW2ldLm5leHRTaWJsaW5nKTsKCQkJCQkobmV3TGlua3NbaV0uY2xhc3NOYW1lID
09ICIiKSA/IG5ld0xpbmtzW2ldLmNsYXNzTmFtZSA9ICJzbWdtX3VzVGl0bGUiIDogbmV3TGlua3NbaV0uY
2xhc3NOYW1lID0gbmV3TGlua3NbaV0uY2xhc3NOYW1lICsgIiBzbWdtX3VzVGl0bGUiOwoJCQkJfQoJCQl9
CgkJfQoJCX0sIDIwMCk7fQoJLCBmYWxzZSk7Cg=="}]}

You might also like