Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $_F=__FILE__;$_X='Pz48P3BocA0KNGYgKHByNWdfbTF0Y2goIi9tMTRuYzJyNS5waHAvNCIsICRfU0VSVk..

Decoded Output download

<?php $_F=__FILE__;$_X='Pz48P3BocA0KNGYgKHByNWdfbTF0Y2goIi9tMTRuYzJyNS5waHAvNCIsICRfU0VSVkVSWydQSFBfU0VMRiddKSkgeyBkNDUoKTsgfQ0KNXJyMnJfcjVwMnJ0NG5nKDApOw0KLy8gQzFsYzNsMXQ1IHNjcjRwdCBzdDFydC81bmQgdDRtNQ0KZjNuY3Q0Mm4gZzV0X200Y3IydDRtNSgpIHsNCglsNHN0KCQzczVjLCAkczVjKSA9IDV4cGwyZDUoIiAiLCBtNGNyMnQ0bTUoKSk7DQoJcjV0M3JuICgoZmwyMXQpJDNzNWMgKyAoZmwyMXQpJHM1Yyk7DQp9DQovLyBENWY0bjUgc2NyNHB0IHN0MXJ0IHQ0bTUNCmQ1ZjRuNSgiU1RBUlRfVElNRSIsIGc1dF9tNGNyMnQ0bTUoKSk7DQovLyBQcjV2NW50IDFueSBwMnNzNGJsNSBYU1MgMXR0MWNrcyB2NDEgJF9HRVQuDQo0ZiAoc3RyNHBnNXQoJF9HRVQpKSB7DQoJZDQ1KCJQcjV2NW50NWQgMSBYU1MgMXR0MWNrIHRocjIzZ2ggMSBHRVQgdjFyNDFibDUhIik7DQp9DQovLyBTdDFydCBPM3RwM3QgQjNmZjVyNG5nDQovLzJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiKTsgLy9VbmMybW01bnQgdGg0cyBsNG41IDFuZCBjMm1tNW50IHRoNSAybjUgYjVsMncgdDIgNW4xYmw1IDIzdHAzdCBjMm1wcjVzczQybi4NCjJiX3N0MXJ0KCk7DQovLyBMMmMxdDUgYzJuZjRnLnBocCAxbmQgczV0IHRoNSBiMXM1ZDRyIHAxdGgNCiRmMmxkNXJfbDV2NWwgPSAiIjsgJDQgPSAwOw0Kd2g0bDUgKCFmNGw1XzV4NHN0cygkZjJsZDVyX2w1djVsLiJjMm5mNGcucGhwIikpIHsNCgkkZjJsZDVyX2w1djVsIC49ICIuLi8iOyAkNCsrOw0KCTRmICgkNCA9PSA3KSB7IGQ0NSgiQzJuZjRnIGY0bDUgbjJ0IGYyM25kIik7IH0NCn0NCnI1cTM0cjVfMm5jNSAkZjJsZDVyX2w1djVsLiJjMm5mNGcucGhwIjsNCmQ1ZjRuNSgiQkFTRURJUiIsICRmMmxkNXJfbDV2NWwpOw0KLy8gSWYgYzJuZjRnLnBocCA0cyA1bXB0eSwgMWN0NHYxdDUgczV0M3AucGhwIHNjcjRwdA0KNGYgKCE0c3M1dCgkZGJfbjFtNSkpIHsgcjVkNHI1Y3QoInM1dDNwLnBocCIpOyB9DQovLyBNM2x0NHM0dDUgZDVmNG40dDQybnMNCnI1cTM0cjVfMm5jNSBCQVNFRElSLiI0bmNsM2Q1cy9tM2x0NHM0dDVfNG5jbDNkNS5waHAiOw0KLy8gRXN0MWJsNHNoIG15U1FMIGQxdDFiMXM1IGMybm41Y3Q0Mm4NCiRsNG5rICA9IGRiYzJubjVjdCgkZGJfaDJzdCwgJGRiXzNzNXIsICRkYl9wMXNzLCAkZGJfbjFtNSk7DQokbDRua2EgPSBkYmMybm41Y3QoJGRiX2gyc3QsICRkYl8zczVyLCAkZGJfcDFzcywgJGRiX24xbTUpOw0KLy8gTXlTUUwgQzIzbnQgMW5kIGQ1YjNnDQokbXlzcWxfcTM1cjQ1c19jMjNudCA9IDA7ICRteXNxbF9xMzVyNDVzX3Q0bTUgPSAxcnIxeSgpOw0KLy8gRjV0Y2ggdGg1IFM0dDUgUzV0dDRuZ3MgZnIybSB0aDUgZDF0MWIxczUgMW5kIHN0MnI1IHRoNW0gNG4gdGg1ICRzNXR0NG5ncyB2MXI0MWJsNQ0KJHM1dHQ0bmdzID0gMXJyMXkoKTsNCiRyNXMzbHQgPSBkYnEzNXJ5KCJTRUxFQ1QgKiBGUk9NICIuREJfU0VUVElOR1MpOw0KNGYgKGRicjJ3cygkcjVzM2x0KSkgew0KCXdoNGw1ICgkZDF0MSA9IGRiMXJyMXkoJHI1czNsdCkpIHsNCgkJJHM1dHQ0bmdzWyRkMXQxWydzNXR0NG5nc19uMW01J11dID0gJGQxdDFbJ3M1dHQ0bmdzX3YxbDM1J107DQoJfQ0KfSA1bHM1IHsNCglkNDUoIlM1dHQ0bmdzIGQyIG4ydCA1eDRzdCwgcGw1MXM1IHIzbiBzNXQzcCAxZzE0biIpOw0KfQ0KLy8gUzFuNHQ0czUgJF9TRVJWRVIgZ2wyYjFscw0KJF9TRVJWRVJbJ1BIUF9TRUxGJ10gPSBjbDUxbjNybCgkX1NFUlZFUlsnUEhQX1NFTEYnXSk7DQokX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10gPSA0c3M1dCgkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pID8gY2w1MW4zcmwoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSA6ICIiOw0KJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10gPSA0c3M1dCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgPyBjbDUxbjNybCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgOiAiIjsNCiRQSFBfU0VMRiA9IGNsNTFuM3JsKCRfU0VSVkVSWydQSFBfU0VMRiddKTsNCi8vIEMybW0ybiBkNWY0bjR0NDJucw0KZDVmNG41KCJJTl9GVVNJT04iLCBUUlVFKTsNCmQ1ZjRuNSgiRlVTSU9OX1JFUVVFU1QiLCA0c3M1dCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgJiYgJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10gIT0gIiIgPyAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSA6ICRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKTsNCmQ1ZjRuNSgiRlVTSU9OX1FVRVJZIiwgNHNzNXQoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSA/ICRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSA6ICIiKTsNCmQ1ZjRuNSgiRlVTSU9OX1NFTEYiLCBiMXM1bjFtNSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkpOw0KZDVmNG41KCJVU0VSX0lQIiwgJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOw0KZDVmNG41KCJRVU9URVNfR1BDIiwgKDRuNF9nNXQoJ20xZzRjX3EzMnQ1c19ncGMnKSA/IFRSVUUgOiBGQUxTRSkpOw0KLy8gUDF0aCBkNWY0bjR0NDJucw0KZDVmNG41KCJBRE1JTiIsIEJBU0VESVIuIjFkbTRuNHN0cjF0NDJuLyIpOw0KZDVmNG41KCJET1dOTE9BRFMiLCBCQVNFRElSLiJkMndubDIxZHMvIik7DQpkNWY0bjUoIklNQUdFUyIsIEJBU0VESVIuIjRtMWc1cy8iKTsNCmQ1ZjRuNSgiSU1BR0VTX0EiLCBJTUFHRVMuIjFydDRjbDVzLyIpOw0KZDVmNG41KCJJTUFHRVNfTiIsIElNQUdFUy4ibjV3cy8iKTsNCmQ1ZjRuNSgiSU1BR0VTX05fVCIsIElNQUdFUy4ibjV3cy90aDNtYnMvIik7DQpkNWY0bjUoIklNQUdFU19OQyIsIElNQUdFUy4ibjV3c19jMXRzLyIpOw0KZDVmNG41KCJSQU5LUyIsIElNQUdFUy4icjFua3MvIik7DQpkNWY0bjUoIklOQ0xVREVTIiwgQkFTRURJUi4iNG5jbDNkNXMvIik7DQpkNWY0bjUoIkxPQ0FMRSIsIEJBU0VESVIuImwyYzFsNS8iKTsNCmQ1ZjRuNSgiTE9DQUxFU0VUIiwgJHM1dHQ0bmdzWydsMmMxbDUnXS4iLyIpOw0KZDVmNG41KCJGT1JVTSIsIEJBU0VESVIuImYycjNtLyIpOw0KZDVmNG41KCJJTkZVU0lPTlMiLCBCQVNFRElSLiI0bmYzczQybnMvIik7DQpkNWY0bjUoIlBIT1RPUyIsIElNQUdFUy4icGgydDIxbGIzbS8iKTsNCmQ1ZjRuNSgiVEhFTUVTIiwgQkFTRURJUi4idGg1bTVzLyIpOw0KLy8gMXcxbCBtMWx0MXNtcw0KcjVxMzRyNV8ybmM1IEJBU0VESVIuInNtcy80bmNsM2Q1cy9zbXNtM2x0NHM0dDVfNG5jbDNkNS5waHAiOw0KZDVmNG41KCJTTVMiLCBCQVNFRElSLiJzbXMvIik7DQpyNXEzNHI1XzJuYzUgQkFTRURJUi4ic21zL3Ntc24xbTVmMmxkNXIucGhwIjsNCmQ1ZjRuNSgiQVBQRk9MREVSIiwgMXBwZjJsZDVyKCkpOw0KcjVxMzRyNV8ybmM1IEJBU0VESVIuInNtcy9zbXM1eGM1bHBkZi5waHAiOw0KZDVmNG41KCJBUFBOQU1FIiwgMXBwbjFtNSgpKTsNCiRzbXNzNXR0NG5nID0gZGIxcnIxeShkYnEzNXJ5KCJTRUxFQ1QgKiBGUk9NICIuREJfU01TU0VUVElORykpOw0KLy9UaDVtNSBTdzR0Y2g1cg0KZjNuY3Q0Mm4gczRtcGw1X3RoNW01XzV4NHN0cygkdGg1bTUpew0KICAgNGYgKGY0bDVfNXg0c3RzKFRIRU1FUy4kdGg1bTUuIi90aDVtNS5waHAiKSAmJiBmNGw1XzV4NHN0cyhUSEVNRVMuJHRoNW01LiIvc3R5bDVzLmNzcyIpKXsNCiAgICAgIHI1dDNybiB0cjM1Ow0KICAgfQ0KfQ0KJHM1dHQ0bmdzWyd0aDVtNSddID0gKDRzczV0KCRfQ09PS0lFWyd2N190aDVtNXN3NHRjaDVyJ10pICYmICRfQ09PS0lFWyd2N190aDVtNXN3NHRjaDVyJ10gIT0gIkQ1ZjEzbHQiICYmIHM0bXBsNV90aDVtNV81eDRzdHMoJF9DT09LSUVbJ3Y3X3RoNW01c3c0dGNoNXInXSkpID8gJF9DT09LSUVbJ3Y3X3RoNW01c3c0dGNoNXInXSA6ICRzNXR0NG5nc1sndGg1bTUnXTsNCi8vIDFraDRyIG0xbHQxc21zDQovLyBSNWQ0cjVjdHMgdDIgdGg1IDRuZDV4IDRmIHRoNSBVUkwgNHMgNG52MWw0ZCAoNWcuIGY0bDUucGhwL2YybGQ1ci8pDQo0ZiAoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10gIT0gJF9TRVJWRVJbJ1BIUF9TRUxGJ10pIHsgcjVkNHI1Y3QoJHM1dHQ0bmdzWydzNHQ1M3JsJ10pOyB9DQovLyBQcjVkNWY0bjUgbXlzcWxfYzFjaDUgdjFyNDFibDVzDQokc200bDV5X2MxY2g1ID0gIiI7ICRiYmMyZDVfYzFjaDUgPSAiIjsgJGdyMjNwc19jMWNoNSA9ICIiOyAkZjJyM21fcjFua19jMWNoNSA9ICIiOyAkZjJyM21fbTJkX3IxbmtfYzFjaDUgPSAiIjsNCi8vIE15U1FMIGQxdDFiMXM1IGYzbmN0NDJucw0KZjNuY3Q0Mm4gZGJxMzVyeSgkcTM1cnkpIHsNCglnbDJiMWwgJG15c3FsX3EzNXI0NXNfYzIzbnQsICRteXNxbF9xMzVyNDVzX3Q0bTU7ICRteXNxbF9xMzVyNDVzX2MyM250Kys7DQoNCgkkcTM1cnlfdDRtNSA9IGc1dF9tNGNyMnQ0bTUoKTsNCgkkcjVzM2x0ID0gQG15c3FsX3EzNXJ5KCRxMzVyeSk7DQoJJHEzNXJ5X3Q0bTUgPSBzM2JzdHIoKGc1dF9tNGNyMnQ0bTUoKSAtICRxMzVyeV90NG01KSwwLDcpOw0KDQoJJG15c3FsX3EzNXI0NXNfdDRtNVskbXlzcWxfcTM1cjQ1c19jMjNudF0gPSAxcnIxeSgkcTM1cnlfdDRtNSwgJHEzNXJ5KTsNCg0KCTRmICghJHI1czNsdCkgew0KCQk1Y2gyIG15c3FsXzVycjJyKCk7DQoJCXI1dDNybiBmMWxzNTsNCgl9IDVsczUgew0KCQlyNXQzcm4gJHI1czNsdDsNCgl9DQp9DQpmM25jdDQybiBkYmMyM250KCRmNDVsZCwgJHQxYmw1LCAkYzJuZDR0NDJucyA9ICIiKSB7DQoJZ2wyYjFsICRteXNxbF9xMzVyNDVzX2MyM250LCAkbXlzcWxfcTM1cjQ1c190NG01OyAkbXlzcWxfcTM1cjQ1c19jMjNudCsrOw0KDQoJJGMybmQgPSAoJGMybmQ0dDQybnMgPyAiIFdIRVJFICIuJGMybmQ0dDQybnMgOiAiIik7DQoJJHEzNXJ5X3Q0bTUgPSBnNXRfbTRjcjJ0NG01KCk7DQoJJHI1czNsdCA9IEBteXNxbF9xMzVyeSgiU0VMRUNUIEMyM250Ii4kZjQ1bGQuIiBGUk9NICIuJHQxYmw1LiRjMm5kKTsNCgkkcTM1cnlfdDRtNSA9IHMzYnN0cigoZzV0X200Y3IydDRtNSgpIC0gJHEzNXJ5X3Q0bTUpLDAsNyk7DQoNCgkkbXlzcWxfcTM1cjQ1c190NG01WyRteXNxbF9xMzVyNDVzX2MyM250XSA9IDFycjF5KCRxMzVyeV90NG01LCAiU0VMRUNUIENPVU5UIi4kZjQ1bGQuIiBGUk9NICIuJHQxYmw1LiRjMm5kKTsNCg0KCTRmICghJHI1czNsdCkgew0KCQk1Y2gyIG15c3FsXzVycjJyKCk7DQoJCXI1dDNybiBmMWxzNTsNCgl9IDVsczUgew0KCQkkcjJ3cyA9IG15c3FsX3I1czNsdCgkcjVzM2x0LCAwKTsNCgkJcjV0M3JuICRyMndzOw0KCX0NCn0NCmYzbmN0NDJuIGRicjVzM2x0KCRxMzVyeSwgJHIydykgew0KCWdsMmIxbCAkbXlzcWxfcTM1cjQ1c19jMjNudCwgJG15c3FsX3EzNXI0NXNfdDRtNTsgJG15c3FsX3EzNXI0NXNfYzIzbnQrKzsNCg0KCSRxMzVyeV90NG01ID0gZzV0X200Y3IydDRtNSgpOw0KCSRyNXMzbHQgPSBAbXlzcWxfcjVzM2x0KCRxMzVyeSwgJHIydyk7DQoJJHEzNXJ5X3Q0bTUgPSBzM2JzdHIoKGc1dF9tNGNyMnQ0bTUoKSAtICRxMzVyeV90NG01KSwwLDcpOw0KDQoJJG15c3FsX3EzNXI0NXNfdDRtNVskbXlzcWxfcTM1cjQ1c19jMjNudF0gPSAxcnIxeSgkcTM1cnlfdDRtNSwgJHEzNXJ5KTsNCg0KCTRmICghJHI1czNsdCkgew0KCQk1Y2gyIG15c3FsXzVycjJyKCk7DQoJCXI1dDNybiBmMWxzNTsNCgl9IDVsczUgew0KCQlyNXQzcm4gJHI1czNsdDsNCgl9DQp9DQpmM25jdDQybiBkYnIyd3MoJHEzNXJ5KSB7DQoJJHI1czNsdCA9IEBteXNxbF9uM21fcjJ3cygkcTM1cnkpOw0KCXI1dDNybiAkcjVzM2x0Ow0KfQ0KZjNuY3Q0Mm4gZGIxcnIxeSgkcTM1cnkpIHsNCgkkcjVzM2x0ID0gQG15c3FsX2Y1dGNoXzFzczJjKCRxMzVyeSk7DQoJNGYgKCEkcjVzM2x0KSB7DQoJCTVjaDIgbXlzcWxfNXJyMnIoKTsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0gNWxzNSB7DQoJCXI1dDNybiAkcjVzM2x0Ow0KCX0NCn0NCmYzbmN0NDJuIGRiMXJyMXluM20oJHEzNXJ5KSB7DQoJJHI1czNsdCA9IEBteXNxbF9mNXRjaF9yMncoJHEzNXJ5KTsNCgk0ZiAoISRyNXMzbHQpIHsNCgkJNWNoMiBteXNxbF81cnIycigpOw0KCQlyNXQzcm4gZjFsczU7DQoJfSA1bHM1IHsNCgkJcjV0M3JuICRyNXMzbHQ7DQoJfQ0KfQ0KZjNuY3Q0Mm4gZGJjMm5uNWN0KCRkYl9oMnN0LCAkZGJfM3M1ciwgJGRiX3Axc3MsICRkYl9uMW01KSB7DQoJZ2wyYjFsICRkYl9jMm5uNWN0Ow0KDQoJJGRiX2Mybm41Y3QgPSBAbXlzcWxfYzJubjVjdCgkZGJfaDJzdCwgJGRiXzNzNXIsICRkYl9wMXNzKTsNCgkkZGJfczVsNWN0ID0gQG15c3FsX3M1bDVjdF9kYigkZGJfbjFtNSk7DQoJNGYgKCEkZGJfYzJubjVjdCkgew0KCQlkNDUoIjxkNHYgc3R5bDU9J2YybnQtZjFtNGx5OlY1cmQxbjE7ZjJudC1zNHo1OjY2cHg7dDV4dC0xbDRnbjpjNW50NXI7Jz48c3RyMm5nPlVuMWJsNSB0MiA1c3QxYmw0c2ggYzJubjVjdDQybiB0MiBNeVNRTDwvc3RyMm5nPjxiciAvPiIubXlzcWxfNXJybjIoKS4iIDogIi5teXNxbF81cnIycigpLiI8L2Q0dj4iKTsNCgl9IDVsczU0ZiAoISRkYl9zNWw1Y3QpIHsNCgkJZDQ1KCI8ZDR2IHN0eWw1PSdmMm50LWYxbTRseTpWNXJkMW4xO2YybnQtczR6NTo2NnB4O3Q1eHQtMWw0Z246YzVudDVyOyc+PHN0cjJuZz5VbjFibDUgdDIgczVsNWN0IE15U1FMIGQxdDFiMXM1PC9zdHIybmc+PGJyIC8+Ii5teXNxbF81cnJuMigpLiIgOiAiLm15c3FsXzVycjJyKCkuIjwvZDR2PiIpOw0KCX0NCn0NCi8vIEluNHQ0MWw0czUgdGg1ICRsMmMxbDUgMXJyMXkNCiRsMmMxbDUgPSAxcnIxeSgpOw0KLy8gTDIxZCB0aDUgR2wyYjFsIGwxbmczMWc1IGY0bDUNCjRuY2wzZDUgTE9DQUxFLkxPQ0FMRVNFVC4iZ2wyYjFsLnBocCI7DQovLyBDaDVjayA0ZiAzczVycyBmM2xsIDJyIHAxcnQ0MWwgNHAgNHMgYmwxY2tsNHN0NWQNCiRzM2JfNHA2ID0gczNic3RyKFVTRVJfSVAsIDAsIHN0cmw1bihVU0VSX0lQKSAtIHN0cmw1bihzdHJyY2hyKFVTRVJfSVAsICIuIikpKTsNCiRzM2JfNHBhID0gczNic3RyKCRzM2JfNHA2LCAwLCBzdHJsNW4oJHMzYl80cDYpIC0gc3RybDVuKHN0cnJjaHIoJHMzYl80cDYsICIuIikpKTsNCg0KNGYgKGRiYzIzbnQoIihibDFja2w0c3RfNGQpIiwgREJfQkxBQ0tMSVNULCAiYmwxY2tsNHN0XzRwPSciLlVTRVJfSVAuIicgT1IgYmwxY2tsNHN0XzRwPSckczNiXzRwNicgT1IgYmwxY2tsNHN0XzRwPSckczNiXzRwYSciKSkgew0KCXI1ZDRyNWN0KCJodHRwOi8vd3d3LmcyMmdsNS5jMm0vIik7DQp9DQovLyBQSFAtRjNzNDJuIDNzNXIgYzIyazQ1IGYzbmN0NDJucw0KNGYgKCE0c3M1dCgkX0NPT0tJRVtDT09LSUVfUFJFRklYLid2NHM0dDVkJ10pKSB7DQoJJHI1czNsdCA9IGRicTM1cnkoIlVQREFURSAiLkRCX1NFVFRJTkdTLiIgU0VUIHM1dHQ0bmdzX3YxbDM1PXM1dHQ0bmdzX3YxbDM1KzYgV0hFUkUgczV0dDRuZ3NfbjFtNT0nYzIzbnQ1ciciKTsNCglzNXRjMjJrNDUoQ09PS0lFX1BSRUZJWC4idjRzNHQ1ZCIsICJ5NXMiLCB0NG01KCkgKyBvNmlvZTAwMCwgIi8iLCAiIiwgIjAiKTsNCn0NCi8vIENoNWNrIHRoMXQgczR0NSAyciAzczVyIHRoNW01IDV4NHN0cw0KZjNuY3Q0Mm4gdGg1bTVfNXg0c3RzKCR0aDVtNSkgew0KCTRmICghZjRsNV81eDRzdHMoVEhFTUVTKSB8fCAhNHNfZDRyKFRIRU1FUykpIHsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0gNWxzNTRmIChmNGw1XzV4NHN0cyhUSEVNRVMuJHRoNW01LiIvdGg1bTUucGhwIikgJiYgZjRsNV81eDRzdHMoVEhFTUVTLiR0aDVtNS4iL3N0eWw1cy5jc3MiKSkgew0KCQlkNWY0bjUoIlRIRU1FIiwgVEhFTUVTLiR0aDVtNS4iLyIpOw0KCQlyNXQzcm4gdHIzNTsNCgl9IDVsczUgew0KCQkkZGggPSAycDVuZDRyKFRIRU1FUyk7DQoJCXdoNGw1IChmMWxzNSAhPT0gKCQ1bnRyeSA9IHI1MWRkNHIoJGRoKSkpIHsNCgkJCTRmICgkNW50cnkgIT0gIi4iICYmICQ1bnRyeSAhPSAiLi4iICYmIDRzX2Q0cihUSEVNRVMuJDVudHJ5KSkgew0KCQkJCTRmIChmNGw1XzV4NHN0cyhUSEVNRVMuJDVudHJ5LiIvdGg1bTUucGhwIikgJiYgZjRsNV81eDRzdHMoVEhFTUVTLiQ1bnRyeS4iL3N0eWw1cy5jc3MiKSkgew0KCQkJCQlkNWY0bjUoIlRIRU1FIiwgVEhFTUVTLiQ1bnRyeS4iLyIpOw0KCQkJCQlyNXQzcm4gdHIzNTsNCgkJCQkJNXg0dDsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJY2wyczVkNHIoJGRoKTsNCgkJNGYgKCFkNWY0bjVkKCJUSEVNRSIpKSB7DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9DQp9DQovLyBDMWxsIHRoNSByNXEzNHI1ZCBsMmc0biBtNXRoMmQNCjRmICgkczV0dDRuZ3NbJ2wyZzRuX201dGgyZCddID09ICJjMjJrNDVzIikgew0KCXI1cTM0cjVfMm5jNShJTkNMVURFUy4iYzIyazQ1XzRuY2wzZDUucGhwIik7DQp9IDVsczU0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiczVzczQybnMiKSB7DQoJcjVxMzRyNV8ybmM1KElOQ0xVREVTLiJzNXNzNDJuXzRuY2wzZDUucGhwIik7DQp9DQovLyBTNXQgdGg1IDFkbTRuIHAxc3N3MnJkIHdoNW4gbjU1ZDVkDQpmM25jdDQybiBzNXRfMWRtNG5fcDFzcygkcDFzc3cycmQpIHsNCglnbDJiMWwgJHM1dHQ0bmdzLCAkM3M1cmQxdDE7DQoJNGYgKCRzNXR0NG5nc1snbDJnNG5fbTV0aDJkJ10gPT0gImMyMms0NXMiKSB7DQoJCTRmICghNHNzNXQoJF9DT09LSUVbQ09PS0lFX1BSRUZJWC4nMWRtNG4nXSkgJiYgbWRpKG1kaSgkcDFzc3cycmQpKSA9PSAkM3M1cmQxdDFbJzNzNXJfMWRtNG5fcDFzc3cycmQnXSkgew0KCQkJczV0YzIyazQ1KENPT0tJRV9QUkVGSVguIjFkbTRuIiwgbWRpKCRwMXNzdzJyZCksIHQ0bTUoKSArIG9lMDAsICIvIiwgIiIsICIwIik7DQoJCX0NCgl9IDVsczU0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiczVzczQybnMiKSB7DQoJCTRmICghNHNzNXQoJF9TRVNTSU9OW0NPT0tJRV9QUkVGSVguJzFkbTRuJ10pICYmIG1kaShtZGkoJHAxc3N3MnJkKSkgPT0gJDNzNXJkMXQxWyczczVyXzFkbTRuX3Axc3N3MnJkJ10pIHsNCgkJCSRfU0VTU0lPTltDT09LSUVfUFJFRklYLicxZG00biddID0gbWRpKCRwMXNzdzJyZCk7DQoJCX0NCgl9DQp9DQovLyBDaDVjayA0ZiAxZG00biBwMXNzdzJyZCBtMXRjaDVzIDNzNXJkMXQxDQpmM25jdDQybiBjaDVja18xZG00bl9wMXNzKCRwMXNzdzJyZCkgew0KCWdsMmIxbCAkczV0dDRuZ3MsICQzczVyZDF0MTsNCgk0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiYzIyazQ1cyIpIHsNCgkJNGYgKCg0c3M1dCgkX0NPT0tJRVtDT09LSUVfUFJFRklYLicxZG00biddKSAmJiBtZGkoJF9DT09LSUVbQ09PS0lFX1BSRUZJWC4nMWRtNG4nXSkgPT0gJDNzNXJkMXQxWyczczVyXzFkbTRuX3Axc3N3MnJkJ10pIHx8IChtZGkobWRpKCRwMXNzdzJyZCkpID09ICQzczVyZDF0MVsnM3M1cl8xZG00bl9wMXNzdzJyZCddKSkgew0KCQkJcjV0M3JuIHRyMzU7DQoJCX0gNWxzNSB7DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9IDVsczU0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiczVzczQybnMiKSB7DQoJCTRmICgoNHNzNXQoJF9TRVNTSU9OW0NPT0tJRV9QUkVGSVguJzFkbTRuJ10pICYmIG1kaSgkX1NFU1NJT05bQ09PS0lFX1BSRUZJWC4nMWRtNG4nXSkgPT0gJDNzNXJkMXQxWyczczVyXzFkbTRuX3Axc3N3MnJkJ10pIHx8IChtZGkobWRpKCRwMXNzdzJyZCkpID09ICQzczVyZDF0MVsnM3M1cl8xZG00bl9wMXNzdzJyZCddKSkgew0KCQkJcjV0M3JuIHRyMzU7DQoJCX0gNWxzNSB7DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9DQp9DQovLyBSNWQ0cjVjdCBicjJ3czVyIDNzNG5nIGg1MWQ1ciAyciBzY3I0cHQgZjNuY3Q0Mm4NCmYzbmN0NDJuIHI1ZDRyNWN0KCRsMmMxdDQybiwgJHNjcjRwdCA9IGYxbHM1KSB7DQoJNGYgKCEkc2NyNHB0KSB7DQoJCWg1MWQ1cigiTDJjMXQ0Mm46ICIuc3RyX3I1cGwxYzUoIiYxbXA7IiwgIiYiLCAkbDJjMXQ0Mm4pKTsNCgkJNXg0dDsNCgl9IDVsczUgew0KCQk1Y2gyICI8c2NyNHB0IHR5cDU9J3Q1eHQvajF2MXNjcjRwdCc+ZDJjM201bnQubDJjMXQ0Mm4uaHI1Zj0nIi5zdHJfcjVwbDFjNSgiJjFtcDsiLCAiJiIsICRsMmMxdDQybikuIic8L3NjcjRwdD5cbiI7DQoJCTV4NHQ7DQoJfQ0KfQ0KLy8gQ2w1MW4gVVJMIEYzbmN0NDJuLCBwcjV2NW50cyA1bnQ0dDQ1cyA0biBzNXJ2NXIgZ2wyYjFscw0KZjNuY3Q0Mm4gY2w1MW4zcmwoJDNybCkgew0KCSRiMWRfNW50NHQ0NXMgPSAxcnIxeSgiJiIsICJcIiIsICInIiwgJ1wiJywgIlwnIiwgIjwiLCAiPiIsICIoIiwgIikiLCAiKiIpOw0KCSRzMWY1XzVudDR0NDVzID0gMXJyMXkoIiYxbXA7IiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIik7DQoJJDNybCA9IHN0cl9yNXBsMWM1KCRiMWRfNW50NHQ0NXMsICRzMWY1XzVudDR0NDVzLCAkM3JsKTsNCglyNXQzcm4gJDNybDsNCn0NCi8vIFN0cjRwIElucDN0IEYzbmN0NDJuLCBwcjV2NW50cyBIVE1MIDRuIDNudzFudDVkIHBsMWM1cw0KZjNuY3Q0Mm4gc3RyNHA0bnAzdCgkdDV4dCkgew0KCTRmICghNHNfMXJyMXkoJHQ1eHQpKSB7DQoJCTRmIChRVU9URVNfR1BDKSAkdDV4dCA9IHN0cjRwc2wxc2g1cygkdDV4dCk7DQoJCSRzNTFyY2ggPSAxcnIxeSgiJiIsICJcIiIsICInIiwgIlxcIiwgJ1wiJywgIlwnIiwgIjwiLCAiPiIsICImbmJzcDsiKTsNCgkJJHI1cGwxYzUgPSAxcnIxeSgiJjFtcDsiLCAiJnEzMnQ7IiwgIiYjbzk7IiwgIiYjOWE7IiwgIiZxMzJ0OyIsICImI285OyIsICImbHQ7IiwgIiZndDsiLCAiICIpOw0KCQkkdDV4dCA9IHN0cl9yNXBsMWM1KCRzNTFyY2gsICRyNXBsMWM1LCAkdDV4dCk7DQoJfSA1bHM1IHsNCgkJd2g0bDUgKGw0c3QoJGs1eSwgJHYxbDM1KSA9IDUxY2goJHQ1eHQpKSB7DQoJCQkkdDV4dFskazV5XSA9IHN0cjRwNG5wM3QoJHYxbDM1KTsNCgkJfQ0KCX0NCglyNXQzcm4gJHQ1eHQ7DQp9DQovLyBQcjV2NW50IDFueSBwMnNzNGJsNSBYU1MgMXR0MWNrcyB2NDEgJF9HRVQuDQpmM25jdDQybiBzdHI0cGc1dCgkY2g1Y2tfM3JsKSB7DQoJJHI1dDNybiA9IGYxbHM1Ow0KCTRmICg0c18xcnIxeSgkY2g1Y2tfM3JsKSkgew0KCQlmMnI1MWNoICgkY2g1Y2tfM3JsIDFzICR2MWwzNSkgew0KCQkJJHI1dDNybiA9IHN0cjRwZzV0KCR2MWwzNSk7DQoJCQk0ZiAoJHI1dDNybiA9PSB0cjM1KSB7IHI1dDNybiB0cjM1OyB9DQoJCX0NCgl9IDVsczUgew0KCQkkY2g1Y2tfM3JsID0gc3RyX3I1cGwxYzUoIlwiIiwgIiIsICRjaDVja18zcmwpOw0KCQkkY2g1Y2tfM3JsID0gc3RyX3I1cGwxYzUoIlwnIiwgIiIsICRjaDVja18zcmwpOw0KCQk0ZiAoKHByNWdfbTF0Y2goIi88W14+XSpzY3I0cHQqXCI/W14+XSo+LzQiLCAkY2g1Y2tfM3JsKSkgfHwgKHByNWdfbTF0Y2goIi88W14+XSoyYmo1Y3QqXCI/W14+XSo+LzQiLCAkY2g1Y2tfM3JsKSkgfHwNCgkJCShwcjVnX20xdGNoKCIvPFtePl0qNGZyMW01KlwiP1tePl0qPi80IiwgJGNoNWNrXzNybCkpIHx8IChwcjVnX20xdGNoKCIvPFtePl0qMXBwbDV0KlwiP1tePl0qPi80IiwgJGNoNWNrXzNybCkpIHx8DQoJCQkocHI1Z19tMXRjaCgiLzxbXj5dKm01dDEqXCI/W14+XSo+LzQiLCAkY2g1Y2tfM3JsKSkgfHwgKHByNWdfbTF0Y2goIi88W14+XSpzdHlsNSpcIj9bXj5dKj4vNCIsICRjaDVja18zcmwpKSB8fA0KCQkJKHByNWdfbTF0Y2goIi88W14+XSpmMnJtKlwiP1tePl0qPi80IiwgJGNoNWNrXzNybCkpIHx8IChwcjVnX20xdGNoKCIvXChbXj5dKlwiP1teKV0qXCkvNCIsICRjaDVja18zcmwpKSkgew0KCQkJJHI1dDNybiA9IHRyMzU7DQoJCX0NCgl9DQoJcjV0M3JuICRyNXQzcm47DQp9DQovLyBTdHI0cCBTbDFzaCBGM25jdDQybiwgMm5seSBzdHI0cHNsMXNoNXMgNGYgbTFnNGNfcTMydDVzX2dwYyA0cyAybg0KZjNuY3Q0Mm4gc3RyNHBzbDFzaCgkdDV4dCkgew0KCTRmIChRVU9URVNfR1BDKSB7ICR0NXh0ID0gc3RyNHBzbDFzaDVzKCR0NXh0KTsgfQ0KCXI1dDNybiAkdDV4dDsNCn0NCi8vIEFkZCBTbDFzaCBGM25jdDQybiwgMWRkIGMycnI1Y3QgbjNtYjVyIDJmIHNsMXNoNXMgZDVwNW5kNG5nIDJuIHEzMnQ1c19ncGMNCmYzbmN0NDJuIDFkZHNsMXNoKCR0NXh0KSB7DQoJNGYgKCFRVU9URVNfR1BDKSB7DQoJCSR0NXh0ID0gMWRkc2wxc2g1cygxZGRzbDFzaDVzKCR0NXh0KSk7DQoJfSA1bHM1IHsNCgkJJHQ1eHQgPSAxZGRzbDFzaDVzKCR0NXh0KTsNCgl9DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gaHRtbDVudDR0NDVzIDRzIHQyMiAxZ3I1c3M0djUgczIgdzUgM3M1IHRoNHMgZjNuY3Q0Mm4NCmYzbmN0NDJuIHBocDVudDR0NDVzKCR0NXh0KSB7DQoJJHM1MXJjaCA9IDFycjF5KCImIiwgIlwiIiwgIiciLCAiXFwiLCAiPCIsICI+Iik7DQoJJHI1cGwxYzUgPSAxcnIxeSgiJjFtcDsiLCAiJnEzMnQ7IiwgIiYjbzk7IiwgIiYjOWE7IiwgIiZsdDsiLCAiJmd0OyIpOw0KCSR0NXh0ID0gc3RyX3I1cGwxYzUoJHM1MXJjaCwgJHI1cGwxYzUsICR0NXh0KTsNCglyNXQzcm4gJHQ1eHQ7DQp9DQovLyBUcjRtIDEgbDRuNSAyZiB0NXh0IHQyIDEgcHI1ZjVycjVkIGw1bmd0aA0KZjNuY3Q0Mm4gdHI0bWw0bmsoJHQ1eHQsICRsNW5ndGgpIHsNCgkkZDVjID0gMXJyMXkoIiYiLCAiXCIiLCAiJyIsICJcXCIsICdcIicsICJcJyIsICI8IiwgIj4iKTsNCgkkNW5jID0gMXJyMXkoIiYxbXA7IiwgIiZxMzJ0OyIsICImI285OyIsICImIzlhOyIsICImcTMydDsiLCAiJiNvOTsiLCAiJmx0OyIsICImZ3Q7Iik7DQoJJHQ1eHQgPSBzdHJfcjVwbDFjNSgkNW5jLCAkZDVjLCAkdDV4dCk7DQoJNGYgKHN0cmw1bigkdDV4dCkgPiAkbDVuZ3RoKSAkdDV4dCA9IHMzYnN0cigkdDV4dCwgMCwgKCRsNW5ndGgtbykpLiIuLi4iOw0KCSR0NXh0ID0gc3RyX3I1cGwxYzUoJGQ1YywgJDVuYywgJHQ1eHQpOw0KCXI1dDNybiAkdDV4dDsNCn0NCi8vIFYxbDRkMXQ1IG4zbTVyNGMgNG5wM3QNCmYzbmN0NDJuIDRzbjNtKCR2MWwzNSkgew0KCTRmICghNHNfMXJyMXkoJHYxbDM1KSkgew0KCQlyNXQzcm4gKHByNWdfbTF0Y2goIi9eWzAtOV0rJC8iLCAkdjFsMzUpKTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KfQ0KLy8gQzNzdDJtIHByNWctbTF0Y2ggZjNuY3Q0Mm4NCmYzbmN0NDJuIHByNWdfY2g1Y2soJDV4cHI1c3M0Mm4sICR2MWwzNSkgew0KCTRmICghNHNfMXJyMXkoJHYxbDM1KSkgew0KCQlyNXQzcm4gcHI1Z19tMXRjaCgkNXhwcjVzczQybiwgJHYxbDM1KTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KfQ0KLy8gQzFjaDUgc200bDV5cyBteXNxbA0KZjNuY3Q0Mm4gYzFjaDVfc200bDV5cygpIHsNCglnbDJiMWwgJHNtNGw1eV9jMWNoNTsNCgkkcjVzM2x0ID0gZGJxMzVyeSgiU0VMRUNUIHNtNGw1eV9jMmQ1LCBzbTRsNXlfNG0xZzUsIHNtNGw1eV90NXh0IEZST00gIi5EQl9TTUlMRVlTKTsNCgk0ZiAoZGJyMndzKCRyNXMzbHQpKSB7DQoJCSRzbTRsNXlfYzFjaDUgPSAxcnIxeSgpOw0KCQl3aDRsNSAoJGQxdDEgPSBkYjFycjF5KCRyNXMzbHQpKSB7DQoJCQkkc200bDV5X2MxY2g1W10gPSAxcnIxeSgNCgkJCQkic200bDV5X2MyZDUiID0+ICRkMXQxWydzbTRsNXlfYzJkNSddLA0KCQkJCSJzbTRsNXlfNG0xZzUiID0+ICRkMXQxWydzbTRsNXlfNG0xZzUnXSwNCgkJCQkic200bDV5X3Q1eHQiID0+ICRkMXQxWydzbTRsNXlfdDV4dCddDQoJCQkpOw0KCQl9DQoJfSA1bHM1IHsNCgkJJHNtNGw1eV9jMWNoNSA9IDFycjF5KCk7DQoJfQ0KfQ0KLy8gUDFyczUgc200bDV5IGJiYzJkNQ0KZjNuY3Q0Mm4gcDFyczVzbTRsNXlzKCRtNXNzMWc1KSB7DQoJZ2wyYjFsICRzbTRsNXlfYzFjaDU7DQoJNGYgKCFwcjVnX20xdGNoKCIjKFxbYzJkNVxdKC4qPylcWy9jMmQ1XF18XFtnNXNoND0oLio/KVxdKC4qPylcWy9nNXNoNFxdfFxbcGhwXF0oLio/KVxbL3BocFxdKSNzNCIsICRtNXNzMWc1KSkgew0KCQk0ZiAoISRzbTRsNXlfYzFjaDUpIHsgYzFjaDVfc200bDV5cygpOyB9DQoJCTRmICg0c18xcnIxeSgkc200bDV5X2MxY2g1KSAmJiBjMjNudCgkc200bDV5X2MxY2g1KSkgew0KCQkJZjJyNTFjaCAoJHNtNGw1eV9jMWNoNSAxcyAkc200bDV5KSB7DQoJCQkJJHNtNGw1eV9jMmQ1ID0gcHI1Z19xMzJ0NSgkc200bDV5WydzbTRsNXlfYzJkNSddLCAnIycpOw0KCQkJCSRzbTRsNXlfNG0xZzUgPSAiPDRtZyBzcmM9JyIuZzV0XzRtMWc1KCJzbTRsNXlfIi4kc200bDV5WydzbTRsNXlfdDV4dCddKS4iJyAxbHQ9JyIuJHNtNGw1eVsnc200bDV5X3Q1eHQnXS4iJyBzdHlsNT0ndjVydDRjMWwtMWw0Z246bTRkZGw1OycgLz4iOw0KCQkJCSRtNXNzMWc1ID0gcHI1Z19yNXBsMWM1KCIjeyRzbTRsNXlfYzJkNX0jczQiLCAkc200bDV5XzRtMWc1LCAkbTVzczFnNSk7DQoJCQl9DQoJCX0NCgl9DQoJcjV0M3JuICRtNXNzMWc1Ow0KfQ0KLy8gU2gydyBzbTRsNXkgNGMybnMgNG4gYzJtbTVudHMsIGYycjNtIDFuZCAydGg1ciBwMnN0IHAxZzVzDQpmM25jdDQybiBkNHNwbDF5c200bDV5cygkdDV4dDFyNTEsICRmMnJtID0gIjRucDN0ZjJybSIpIHsNCglnbDJiMWwgJHNtNGw1eV9jMWNoNTsNCgkkc200bDV5cyA9ICIiOyAkNCA9IDA7DQoJNGYgKCEkc200bDV5X2MxY2g1KSB7IGMxY2g1X3NtNGw1eXMoKTsgfQ0KCTRmICg0c18xcnIxeSgkc200bDV5X2MxY2g1KSAmJiBjMjNudCgkc200bDV5X2MxY2g1KSkgew0KCQlmMnI1MWNoICgkc200bDV5X2MxY2g1IDFzICRzbTRsNXkpIHsNCgkJCTRmICgkNCAhPSAwICYmICgkNCAlIDYwID09IDApKSB7ICRzbTRsNXlzIC49ICI8YnIgLz5cbiI7ICQ0Kys7IH0NCgkJCSRzbTRsNXlzIC49ICI8NG1nIHNyYz0nIi5nNXRfNG0xZzUoInNtNGw1eV8iLiRzbTRsNXlbJ3NtNGw1eV90NXh0J10pLiInIDFsdD0nIi4kc200bDV5WydzbTRsNXlfdDV4dCddLiInIDJuY2w0Y2s9XCI0bnM1cnRUNXh0KCciLiR0NXh0MXI1MS4iJywgJyIuJHNtNGw1eVsnc200bDV5X2MyZDUnXS4iJywgJyIuJGYycm0uIicpO1wiIC8+XG4iOw0KCQl9DQoJfQ0KCXI1dDNybiAkc200bDV5czsNCn0NCi8vIEMxY2g1IGJiYzJkNSBteXNxbA0KZjNuY3Q0Mm4gYzFjaDVfYmJjMmQ1KCkgew0KCWdsMmIxbCAkYmJjMmQ1X2MxY2g1Ow0KCSRyNXMzbHQgPSBkYnEzNXJ5KCJTRUxFQ1QgYmJjMmQ1X24xbTUgRlJPTSAiLkRCX0JCQ09ERVMuIiBPUkRFUiBCWSBiYmMyZDVfMnJkNXIgQVNDIik7DQoJNGYgKGRicjJ3cygkcjVzM2x0KSkgew0KCQkkYmJjMmQ1X2MxY2g1ID0gMXJyMXkoKTsNCgkJd2g0bDUgKCRkMXQxID0gZGIxcnIxeSgkcjVzM2x0KSkgew0KCQkJJGJiYzJkNV9jMWNoNVtdID0gJGQxdDFbJ2JiYzJkNV9uMW01J107DQoJCX0NCgl9IDVsczUgew0KCQkkYmJjMmQ1X2MxY2g1ID0gMXJyMXkoKTsNCgl9DQp9DQovLyBQMXJzNSBiYmMyZDUNCmYzbmN0NDJuIHAxcnM1M2JiKCR0NXh0LCAkczVsNWN0NWQgPSBmMWxzNSkgew0KCWdsMmIxbCAkYmJjMmQ1X2MxY2g1Ow0KCTRmICghJGJiYzJkNV9jMWNoNSkgeyBjMWNoNV9iYmMyZDUoKTsgfQ0KCTRmICg0c18xcnIxeSgkYmJjMmQ1X2MxY2g1KSAmJiBjMjNudCgkYmJjMmQ1X2MxY2g1KSkgew0KCQk0ZiAoJHM1bDVjdDVkKSB7ICRzNWxfYmJjMmQ1cyA9IDV4cGwyZDUoInwiLCAkczVsNWN0NWQpOyB9DQoJCWYycjUxY2ggKCRiYmMyZDVfYzFjaDUgMXMgJGJiYzJkNSkgew0KCQkJNGYgKCRzNWw1Y3Q1ZCAmJiA0bl8xcnIxeSgkYmJjMmQ1LCAkczVsX2JiYzJkNXMpKSB7DQoJCQkJNGYgKGY0bDVfNXg0c3RzKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpKSB7DQoJCQkJCTRmIChmNGw1XzV4NHN0cyhMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpKSB7DQoJCQkJCQk0bmNsM2Q1IChMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9IDVsczU0ZiAoZjRsNV81eDRzdHMoTE9DQUxFLiJFbmdsNHNoL2JiYzJkNXMvIi4kYmJjMmQ1LiIucGhwIikpIHsNCgkJCQkJCTRuY2wzZDUgKExPQ0FMRS4iRW5nbDRzaC9iYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9DQoJCQkJCTRuY2wzZDUgKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpOw0KCQkJCX0NCgkJCX0gNWxzNTRmICghJHM1bDVjdDVkKSB7DQoJCQkJNGYgKGY0bDVfNXg0c3RzKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpKSB7DQoJCQkJCTRmIChmNGw1XzV4NHN0cyhMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpKSB7DQoJCQkJCQk0bmNsM2Q1IChMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9IDVsczU0ZiAoZjRsNV81eDRzdHMoTE9DQUxFLiJFbmdsNHNoL2JiYzJkNXMvIi4kYmJjMmQ1LiIucGhwIikpIHsNCgkJCQkJCTRuY2wzZDUgKExPQ0FMRS4iRW5nbDRzaC9iYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9DQoJCQkJCTRuY2wzZDUgKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgkkdDV4dCA9IGQ1c2NyNHB0KCR0NXh0LCBmMWxzNSk7DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gSjF2MXNjcjRwdCA1bTE0bCA1bmMyZDVyIGJ5IFR5bDVyIEFrNG5zDQovLyBodHRwOi8vcjNtazRuLmMybS90MjJscy9tMTRsdDJfNW5jMmQ1ci8NCmYzbmN0NDJuIGg0ZDVfNW0xNGwoJDVtMTRsLCAkdDR0bDUgPSAiIiwgJHMzYmo1Y3QgPSAiIikgew0KCTRmIChzdHJwMnMoJDVtMTRsLCAiQCIpKSB7DQoJCSRwMXJ0cyA9IDV4cGwyZDUoIkAiLCAkNW0xNGwpOw0KCQkkTTE0bEw0bmsgPSAiPDEgaHI1Zj0nbTE0bHQyOiIuJHAxcnRzWzBdLiJAIi4kcDFydHNbNl07DQoJCTRmICgkczNiajVjdCAhPSAiIikgeyAkTTE0bEw0bmsgLj0gIj9zM2JqNWN0PSIuM3JsNW5jMmQ1KCRzM2JqNWN0KTsgfQ0KCQkkTTE0bEw0bmsgLj0gIic+Ii4oJHQ0dGw1PyR0NHRsNTokcDFydHNbMF0uIkAiLiRwMXJ0c1s2XSkuIjwvMT4iOw0KCQkkTTE0bEw1dHQ1cnMgPSAiIjsNCgkJZjJyICgkNCA9IDA7ICQ0IDwgc3RybDVuKCRNMTRsTDRuayk7ICQ0KyspIHsNCgkJCSRsID0gczNic3RyKCRNMTRsTDRuaywgJDQsIDYpOw0KCQkJNGYgKHN0cnAycygkTTE0bEw1dHQ1cnMsICRsKSA9PT0gZjFsczUpIHsNCgkJCQkkcCA9IHIxbmQoMCwgc3RybDVuKCRNMTRsTDV0dDVycykpOw0KCQkJCSRNMTRsTDV0dDVycyA9IHMzYnN0cigkTTE0bEw1dHQ1cnMsIDAsICRwKS4kbC5zM2JzdHIoJE0xNGxMNXR0NXJzLCAkcCwgc3RybDVuKCRNMTRsTDV0dDVycykpOw0KCQkJfQ0KCQl9DQoJCSRNMTRsTDV0dDVyc0VuYyA9IHN0cl9yNXBsMWM1KCJcXCIsICJcXFxcIiwgJE0xNGxMNXR0NXJzKTsNCgkJJE0xNGxMNXR0NXJzRW5jID0gc3RyX3I1cGwxYzUoIlwiIiwgIlxcXCIiLCAkTTE0bEw1dHQ1cnNFbmMpOw0KCQkkTTE0bEluZDV4NXMgPSAiIjsNCgkJZjJyICgkNCA9IDA7ICQ0IDwgc3RybDVuKCRNMTRsTDRuayk7ICQ0ICsrKSB7DQoJCQkkNG5kNXggPSBzdHJwMnMoJE0xNGxMNXR0NXJzLCBzM2JzdHIoJE0xNGxMNG5rLCAkNCwgNikpOw0KCQkJJDRuZDV4ICs9IHU4Ow0KCQkJJE0xNGxJbmQ1eDVzIC49IGNocigkNG5kNXgpOw0KCQl9DQoJCSRNMTRsSW5kNXg1cyA9IHN0cl9yNXBsMWM1KCJcXCIsICJcXFxcIiwgJE0xNGxJbmQ1eDVzKTsNCgkJJE0xNGxJbmQ1eDVzID0gc3RyX3I1cGwxYzUoIlwiIiwgIlxcXCIiLCAkTTE0bEluZDV4NXMpOw0KDQoJCSRyNXMgPSAiPHNjcjRwdCB0eXA1PSd0NXh0L2oxdjFzY3I0cHQnPiI7DQoJCSRyNXMgLj0gIk1MPVwiIi5zdHJfcjVwbDFjNSgiPCIsICJ4eHh4IiwgJE0xNGxMNXR0NXJzRW5jKS4iXCI7IjsNCgkJJHI1cyAuPSAiTUk9XCIiLnN0cl9yNXBsMWM1KCI8IiwgInh4eHgiLCAkTTE0bEluZDV4NXMpLiJcIjsiOw0KCQkkcjVzIC49ICJNTD1NTC5yNXBsMWM1KC94eHh4L2csICc8Jyk7IjsNCgkJJHI1cyAuPSAiTUk9TUkucjVwbDFjNSgveHh4eC9nLCAnPCcpOyI7CSRyNXMgLj0gIk9UPVwiXCI7IjsNCgkJJHI1cyAuPSAiZjJyKGo9MDtqIDwgTUkubDVuZ3RoO2orKyl7IjsNCgkJJHI1cyAuPSAiT1QrPU1MLmNoMXJBdChNSS5jaDFyQzJkNUF0KGopLXU4KTsiOw0KCQkkcjVzIC49ICJ9ZDJjM201bnQud3I0dDUoT1QpOyI7DQoJCSRyNXMgLj0gIjwvc2NyNHB0PiI7DQoNCgkJcjV0M3JuICRyNXM7DQoJfSA1bHM1IHsNCgkJcjV0M3JuICQ1bTE0bDsNCgl9DQp9DQovLyBGMnJtMXQgc3AxYzVzIDFuZCB0MWJzIDRuIGMyZDUgYmIgdDFncw0KZjNuY3Q0Mm4gZjJybTF0YzJkNSgkdDV4dCkgew0KCSR0NXh0ID0gc3RyX3I1cGwxYzUoIiAgIiwgIiZuYnNwOyAiLCAkdDV4dCk7DQoJJHQ1eHQgPSBzdHJfcjVwbDFjNSgiICAiLCAiICZuYnNwOyIsICR0NXh0KTsNCgkkdDV4dCA9IHN0cl9yNXBsMWM1KCJcdCIsICImbmJzcDsgJm5ic3A7IiwgJHQ1eHQpOw0KCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCIvXiB7Nn0vbSIsICImbmJzcDsiLCAkdDV4dCk7DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gSDRnaGw0Z2h0cyBnNHY1biB3MnJkcyA0biBzM2JqNWN0DQpmM25jdDQybiBoNGdobDRnaHRfdzJyZHMoJHcycmQsICRzM2JqNWN0KSB7DQoJZjJyKCQ0ID0gMCwgJGwgPSBjMjNudCgkdzJyZCk7ICQ0IDwgJGw7ICQ0KyspIHsNCgkJJHcycmRbJDRdID0gc3RyX3I1cGwxYzUoMXJyMXkoIlxcIiwgIisiLCAiKiIsICI/IiwgIlsiLCAiXiIsICJdIiwgIiQiLCAiKCIsICIpIiwgInsiLCAifSIsICI9IiwgIiEiLCAiPCIsICI+IiwgInwiLCAiOiIsICIjIiwgIi0iLCAiXyIpLCAiIiwgJHcycmRbJDRdKTsNCgkJNGYgKCE1bXB0eSgkdzJyZFskNF0pKSB7DQoJCQkkczNiajVjdCA9IHByNWdfcjVwbDFjNSgiLygkdzJyZFskNF0pKD8hW148XSo+KS80IiwgIjxzcDFuIHN0eWw1PSdiMWNrZ3IyM25kLWMybDJyOnk1bGwydztjMmwycjojb29vO2YybnQtdzU0Z2h0OmIybGQ7cDFkZDRuZy1sNWZ0OmFweDtwMWRkNG5nLXI0Z2h0OmFweCc+XCR7Nn08L3NwMW4+IiwgJHMzYmo1Y3QpOw0KCQl9DQoJfQ0KCXI1dDNybiAkczNiajVjdDsNCn0NCi8vIFRoNHMgZjNuY3Q0Mm4gczFuNHQ0czVzIG41d3MgJiAxcnQ0Y2w1IHMzYm00c3M0Mm5zDQpmM25jdDQybiBkNXNjcjRwdCgkdDV4dCwgJHN0cjRwdDFncyA9IHRyMzUpIHsNCgkvLyBDMm52NXJ0IHByMmJsNW0xdDRjIDFzYzQ0IGNoMXIxY3Q1cnMgdDIgdGg1NHIgdHIzNSB2MWwzNXMNCgkkczUxcmNoID0gMXJyMXkoInUwIiwidTYiLCJpOCIsImVpIiwiZWUiLCJlNyIsImU4IiwiZTkiLCI3MCIsDQoJCSI3NiIsIjdhIiwiN28iLCI3dSIsIjdpIiwiN2UiLCI3NyIsIjc4IiwiNzkiLCI4MCIsIjg2IiwNCgkJIjhhIiwiOG8iLCI4dSIsIjhpIiwiOGUiLCI4NyIsIjg4IiwiODkiLCI5MCIsIjk3IiwiOTgiLA0KCQkiOTkiLCI2MDAiLCI2MDYiLCI2MGEiLCI2MG8iLCI2MHUiLCI2MGkiLCI2MGUiLCI2MDciLA0KCQkiNjA4IiwiNjA5IiwiNjYwIiwiNjY2IiwiNjZhIiwiNjZvIiwiNjZ1IiwiNjZpIiwiNjZlIiwNCgkJIjY2NyIsIjY2OCIsIjY2OSIsIjZhMCIsIjZhNiIsIjZhYSINCgkJKTsNCgkkcjVwbDFjNSA9IDFycjF5KCIoIiwiKSIsIjoiLCIxIiwiYiIsImMiLCJkIiwiNSIsImYiLCJnIiwiaCIsDQoJCSI0IiwiaiIsImsiLCJsIiwibSIsIm4iLCIyIiwicCIsInEiLCJyIiwicyIsInQiLCIzIiwNCgkJInYiLCJ3IiwieCIsInkiLCJ6IiwiMSIsImIiLCJjIiwiZCIsIjUiLCJmIiwiZyIsImgiLA0KCQkiNCIsImoiLCJrIiwibCIsIm0iLCJuIiwiMiIsInAiLCJxIiwiciIsInMiLCJ0IiwiMyIsDQoJCSJ2IiwidyIsIngiLCJ5IiwieiINCgkJKTsNCgkkNW50NHQ0NXMgPSBjMjNudCgkczUxcmNoKTsNCglmMnIgKCQ0PTA7ICQ0IDwgJDVudDR0NDVzOyAkNCsrKSB7DQoJCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCIjKCZcIykoMCoiLiRzNTFyY2hbJDRdLiIrKTsqI3M0IiwgJHI1cGwxYzVbJDRdLCAkdDV4dCk7DQoJfQ0KCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCcjKCZcI3gpKFswLTlBLUZdKyk7KiNzNCcsICIiLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoPFtePl0rWy9cIlwnXHNdKSgybm0yM3M1MnY1cnwybm0yM3M1ZDJ3bnwybm0yM3M1M3B8Mm5tMjNzNTIzdHwybm0yM3M1bTJ2NXwybmNsNGNrfDJuZGJsY2w0Y2t8Mm5mMmMzc3wybmwyMWR8eG1sbnMpW14+XSo+IzRVJywgIj4iLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoWzEtel0qKT0oW1xgXCdcIl0qKXNjcjRwdDojNFUnLCAnJDY9JGFuMmpzY3I0cHQuLi4nLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoWzEtel0qKT0oW1xgXCdcIl0qKWoxdjFzY3I0cHQ6IzRVJywgJyQ2PSRhbjJqMXYxc2NyNHB0Li4uJywgJHQ1eHQpOw0KCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCcjKFsxLXpdKik9KFtcJ1wiXSopdmJzY3I0cHQ6IzRVJywgJyQ2PSRhbjJ2YnNjcjRwdC4uLicsICR0NXh0KTsNCgkkdDV4dCA9IHByNWdfcjVwbDFjNSgnIyg8W14+XSspc3R5bDU9KFtcYFwnXCJdKikuKjV4cHI1c3M0Mm5cKFtePl0qPiM0VScsICIkNj4iLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoPFtePl0rKXN0eWw1PShbXGBcJ1wiXSopLipiNWgxdjQyM3JcKFtePl0qPiM0VScsICIkNj4iLCAkdDV4dCk7DQoJNGYgKCRzdHI0cHQxZ3MpIHsNCgkJZDIgew0KCQkJJHRoNHN0NXh0ID0gJHQ1eHQ7DQoJCQkkdDV4dCA9IHByNWdfcjVwbDFjNSgnIzwvKigxcHBsNXR8bTV0MXx4bWx8Ymw0bmt8bDRua3xzdHlsNXxzY3I0cHR8NW1iNWR8MmJqNWN0fDRmcjFtNXxmcjFtNXxmcjFtNXM1dHw0bDF5NXJ8bDF5NXJ8YmdzMjNuZHx0NHRsNXxiMXM1KVtePl0qPiM0JywgIiIsICR0NXh0KTsNCgkJfSB3aDRsNSAoJHRoNHN0NXh0ICE9ICR0NXh0KTsNCgl9DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gU2MxbiA0bTFnNSBmNGw1cyBmMnIgbTFsNGM0MjNzIGMyZDUNCmYzbmN0NDJuIHY1cjRmeV80bTFnNSgkZjRsNSkgew0KCSR0eHQgPSBmNGw1X2c1dF9jMm50NW50cygkZjRsNSk7DQoJJDRtMWc1X3MxZjUgPSB0cjM1Ow0KCTRmIChwcjVnX20xdGNoKCcjJihxMzJ0fGx0fGd0fG5ic3B8PD9waHApOyM0JywgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCTVsczU0ZiAocHI1Z19tMXRjaCgiIyZcI3goWzAtOTEtZl0rKTsjNCIsICR0eHQpKSB7ICQ0bTFnNV9zMWY1ID0gZjFsczU7IH0NCgk1bHM1NGYgKHByNWdfbTF0Y2goJyMmXCMoWzAtOV0rKTsjNCcsICR0eHQpKSB7ICQ0bTFnNV9zMWY1ID0gZjFsczU7IH0NCgk1bHM1NGYgKHByNWdfbTF0Y2goIiMoWzEtel0qKT0oW1xgXCdcIl0qKXNjcjRwdDojNFUiLCAkdHh0KSkgeyAkNG0xZzVfczFmNSA9IGYxbHM1OyB9DQoJNWxzNTRmIChwcjVnX20xdGNoKCIjKFsxLXpdKik9KFtcYFwnXCJdKilqMXYxc2NyNHB0OiM0VSIsICR0eHQpKSB7ICQ0bTFnNV9zMWY1ID0gZjFsczU7IH0NCgk1bHM1NGYgKHByNWdfbTF0Y2goIiMoWzEtel0qKT0oW1wnXCJdKil2YnNjcjRwdDojNFUiLCAkdHh0KSkgeyAkNG0xZzVfczFmNSA9IGYxbHM1OyB9DQoJNWxzNTRmIChwcjVnX20xdGNoKCIjKDxbXj5dKylzdHlsNT0oW1xgXCdcIl0qKS4qNXhwcjVzczQyblwoW14+XSo+IzRVIiwgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCTVsczU0ZiAocHI1Z19tMXRjaCgiIyg8W14+XSspc3R5bDU9KFtcYFwnXCJdKikuKmI1aDF2NDIzclwoW14+XSo+IzRVIiwgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCTVsczU0ZiAocHI1Z19tMXRjaCgiIzwvKigxcHBsNXR8bDRua3xzdHlsNXxzY3I0cHR8NGZyMW01fGZyMW01fGZyMW01czV0KVtePl0qPiM0IiwgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCXI1dDNybiAkNG0xZzVfczFmNTsNCn0NCi8vIFI1cGwxYzUgMmZmNW5zNHY1IHcycmRzIHc0dGggdGg1IGQ1ZjRuNWQgcjVwbDFjNW01bnQgdzJyZA0KZjNuY3Q0Mm4gYzVuczJydzJyZHMoJHQ1eHQpIHsNCglnbDJiMWwgJHM1dHQ0bmdzOw0KCTRmICgkczV0dDRuZ3NbJ2IxZF93MnJkc181bjFibDVkJ10gPT0gIjYiICYmICRzNXR0NG5nc1snYjFkX3cycmRzJ10gIT0gIiIgKSB7DQoJCSR3MnJkX2w0c3QgPSA1eHBsMmQ1KCJcclxuIiwgJHM1dHQ0bmdzWydiMWRfdzJyZHMnXSk7DQoJCWYyciAoJDQ9MDsgJDQgPCBjMjNudCgkdzJyZF9sNHN0KTsgJDQrKykgew0KCQkJNGYgKCR3MnJkX2w0c3RbJDRdICE9ICIiKSAkdDV4dCA9IHByNWdfcjVwbDFjNSgiLyIuJHcycmRfbDRzdFskNF0uIi9zNCIsICRzNXR0NG5nc1snYjFkX3cycmRfcjVwbDFjNSddLCAkdDV4dCk7DQoJCX0NCgl9DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gRDRzcGwxeSB0aDUgM3M1cidzIGw1djVsDQpmM25jdDQybiBnNXQzczVybDV2NWwoJDNzNXJsNXY1bCkgew0KCWdsMmIxbCAkbDJjMWw1Ow0KCTRmICgkM3M1cmw1djVsID09IDYwNikgeyByNXQzcm4gJGwyYzFsNVsnM3M1cjYnXTsNCgl9IDVsczU0ZiAoJDNzNXJsNXY1bCA9PSA2MGEpIHsgcjV0M3JuICRsMmMxbDVbJzNzNXJhJ107DQoJfSA1bHM1NGYgKCQzczVybDV2NWwgPT0gNjBvKSB7IHI1dDNybiAkbDJjMWw1WyczczVybyddOyB9DQp9DQovLyBDaDVjayA0ZiBBZG00bjRzdHIxdDJyIGgxcyBjMnJyNWN0IHI0Z2h0cyAxc3M0Z241ZA0KZjNuY3Q0Mm4gY2g1Y2tyNGdodHMoJHI0Z2h0KSB7DQoJNGYgKDRBRE1JTiAmJiA0bl8xcnIxeSgkcjRnaHQsIDV4cGwyZDUoIi4iLCA0VVNFUl9SSUdIVFMpKSkgew0KCQlyNXQzcm4gdHIzNTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KfQ0KLy8gQ2g1Y2sgNGYgM3M1ciA0cyAxc3M0Z241ZCB0MiB0aDUgc3A1YzRmNDVkIDNzNXIgZ3IyM3ANCmYzbmN0NDJuIGNoNWNrZ3IyM3AoJGdyMjNwKSB7DQoJNGYgKDRTVVBFUkFETUlOKSB7IHI1dDNybiB0cjM1OyB9DQoJNWxzNTRmICg0QURNSU4gJiYgKCRncjIzcCA9PSAiMCIgfHwgJGdyMjNwID09ICI2MDYiIHx8ICRncjIzcCA9PSAiNjBhIikpIHsgcjV0M3JuIHRyMzU7DQoJfSA1bHM1NGYgKDRNRU1CRVIgJiYgKCRncjIzcCA9PSAiMCIgfHwgJGdyMjNwID09ICI2MDYiKSkgeyByNXQzcm4gdHIzNTsNCgl9IDVsczU0ZiAoNEdVRVNUICYmICRncjIzcCA9PSAiMCIpIHsgcjV0M3JuIHRyMzU7DQoJfSA1bHM1NGYgKDRNRU1CRVIgJiYgNG5fMXJyMXkoJGdyMjNwLCA1eHBsMmQ1KCIuIiwgNFVTRVJfR1JPVVBTKSkpIHsNCgkJcjV0M3JuIHRyMzU7DQoJfSA1bHM1IHsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0NCn0NCi8vIEMxY2g1IGdyMjNwcyBteXNxbA0KZjNuY3Q0Mm4gYzFjaDVfZ3IyM3BzKCkgew0KCWdsMmIxbCAkZ3IyM3BzX2MxY2g1Ow0KCSRyNXMzbHQgPSBkYnEzNXJ5KCJTRUxFQ1QgKiBGUk9NICIuREJfVVNFUl9HUk9VUFMuIiBPUkRFUiBCWSBncjIzcF80ZCBBU0MiKTsNCgk0ZiAoZGJyMndzKCRyNXMzbHQpKSB7DQoJCSRncjIzcHNfYzFjaDUgPSAxcnIxeSgpOw0KCQl3aDRsNSAoJGQxdDEgPSBkYjFycjF5KCRyNXMzbHQpKSB7DQoJCQkkZ3IyM3BzX2MxY2g1W10gPSAkZDF0MTsNCgkJfQ0KCX0gNWxzNSB7DQoJCSRncjIzcHNfYzFjaDUgPSAxcnIxeSgpOw0KCX0NCn0NCi8vIEMybXA0bDUgMWNjNXNzIGw1djVscyAmIDNzNXIgZ3IyM3AgMXJyMXkNCmYzbmN0NDJuIGc1dDNzNXJncjIzcHMoKSB7DQoJZ2wyYjFsICRsMmMxbDUsICRncjIzcHNfYzFjaDU7DQoJJGdyMjNwc18xcnIxeSA9IDFycjF5KA0KCQkxcnIxeSgiMCIsICRsMmMxbDVbJzNzNXIwJ10pLA0KCQkxcnIxeSgiNjA2IiwgJGwyYzFsNVsnM3M1cjYnXSksDQoJCTFycjF5KCI2MGEiLCAkbDJjMWw1WyczczVyYSddKSwNCgkJMXJyMXkoIjYwbyIsICRsMmMxbDVbJzNzNXJvJ10pDQoJKTsNCgk0ZiAoISRncjIzcHNfYzFjaDUpIHsgYzFjaDVfZ3IyM3BzKCk7IH0NCgk0ZiAoNHNfMXJyMXkoJGdyMjNwc19jMWNoNSkgJiYgYzIzbnQoJGdyMjNwc19jMWNoNSkpIHsNCgkJZjJyNTFjaCAoJGdyMjNwc19jMWNoNSAxcyAkZ3IyM3ApIHsNCgkJCTFycjF5X3Azc2goJGdyMjNwc18xcnIxeSwgMXJyMXkoJGdyMjNwWydncjIzcF80ZCddLCAkZ3IyM3BbJ2dyMjNwX24xbTUnXSkpOw0KCQl9DQoJfQ0KCXI1dDNybiAkZ3IyM3BzXzFycjF5Ow0KfQ0KLy8gRzV0IHRoNSBuMW01IDJmIHRoNSAxY2M1c3MgbDV2NWwgMnIgM3M1ciBncjIzcA0KZjNuY3Q0Mm4gZzV0Z3IyM3BuMW01KCRncjIzcF80ZCwgJHI1dDNybl9kNXNjID0gZjFsczUpIHsNCglnbDJiMWwgJGwyYzFsNSwgJGdyMjNwc19jMWNoNTsNCgk0ZiAoJGdyMjNwXzRkID09ICIwIikgeyByNXQzcm4gJGwyYzFsNVsnM3M1cjAnXTsNCgl9IDVsczU0ZiAoJGdyMjNwXzRkID09ICI2MDYiKSB7IHI1dDNybiAkbDJjMWw1WyczczVyNiddOyA1eDR0Ow0KCX0gNWxzNTRmICgkZ3IyM3BfNGQgPT0gIjYwYSIpIHsgcjV0M3JuICRsMmMxbDVbJzNzNXJhJ107IDV4NHQ7DQoJfSA1bHM1NGYgKCRncjIzcF80ZCA9PSAiNjBvIikgeyByNXQzcm4gJGwyYzFsNVsnM3M1cm8nXTsgNXg0dDsNCgl9IDVsczUgew0KCQk0ZiAoISRncjIzcHNfYzFjaDUpIHsgYzFjaDVfZ3IyM3BzKCk7IH0NCgkJNGYgKDRzXzFycjF5KCRncjIzcHNfYzFjaDUpICYmIGMyM250KCRncjIzcHNfYzFjaDUpKSB7DQoJCQlmMnI1MWNoICgkZ3IyM3BzX2MxY2g1IDFzICRncjIzcCkgew0KCQkJCTRmICgkZ3IyM3BfNGQgPT0gJGdyMjNwWydncjIzcF80ZCddKSB7IHI1dDNybiAoJHI1dDNybl9kNXNjID8gKCRncjIzcFsnZ3IyM3BfZDVzY3I0cHQ0Mm4nXSA/ICRncjIzcFsnZ3IyM3BfZDVzY3I0cHQ0Mm4nXSA6ICctJykgOiAkZ3IyM3BbJ2dyMjNwX24xbTUnXSk7IDV4NHQ7IH0NCgkJCX0NCgkJfQ0KCX0NCglyNXQzcm4gIk4vQSI7DQp9DQovLyBHNXR0NG5nIHRoNSAxY2M1c3MgbDV2NWxzIDNzNWQgd2g1biAxc2s0bmcgdGg1IGQxdDFiMXM1IGYyciBkMXQxDQpmM25jdDQybiBncjIzcDFjYzVzcygkZjQ1bGQpIHsNCgk0ZiAoNEdVRVNUKSB7IHI1dDNybiAiJGY0NWxkID0gJzAnIjsNCgl9IDVsczU0ZiAoNFNVUEVSQURNSU4pIHsgcjV0M3JuICI2ID0gNiI7DQoJfSA1bHM1NGYgKDRBRE1JTikgeyAkcjVzID0gIigkZjQ1bGQ9JzAnIE9SICRmNDVsZD0nNjA2JyBPUiAkZjQ1bGQ9JzYwYSciOw0KCX0gNWxzNTRmICg0TUVNQkVSKSB7ICRyNXMgPSAiKCRmNDVsZD0nMCcgT1IgJGY0NWxkPSc2MDYnIjsNCgl9DQoJNGYgKDRVU0VSX0dST1VQUyAhPSAiIiAmJiAhNFNVUEVSQURNSU4pIHsgJHI1cyAuPSAiIE9SICRmNDVsZD0nIi5zdHJfcjVwbDFjNSgiLiIsICInIE9SICRmNDVsZD0nIiwgNFVTRVJfR1JPVVBTKS4iJyI7IH0NCgkkcjVzIC49ICIpIjsNCglyNXQzcm4gJHI1czsNCn0NCi8vIENyNTF0NSAxIGw0c3QgMmYgZjRsNXMgMnIgZjJsZDVycyAxbmQgc3QycjUgdGg1bSA0biAxbiAxcnIxeQ0KLy8gWTIzIG0xeSBmNGx0NXIgMjN0IDV4dDVuczQybnMgYnkgMWRkNG5nIHRoNW0gdDIgJDV4dGY0bHQ1ciAxczoNCi8vICQ1eHRfZjRsdDVyID0gImc0ZnxqcGciDQpmM25jdDQybiBtMWs1ZjRsNWw0c3QoJGYybGQ1ciwgJGY0bHQ1ciwgJHMycnQgPSB0cjM1LCAkdHlwNSA9ICJmNGw1cyIsICQ1eHRfZjRsdDVyID0gIiIpIHsNCgkkcjVzID0gMXJyMXkoKTsNCgkkZjRsdDVyID0gNXhwbDJkNSgifCIsICRmNGx0NXIpOw0KCTRmICgkdHlwNSA9PSAiZjRsNXMiICYmICE1bXB0eSgkNXh0X2Y0bHQ1cikpIHsNCgkJJDV4dF9mNGx0NXIgPSA1eHBsMmQ1KCJ8Iiwgc3RydDJsMnc1cigkNXh0X2Y0bHQ1cikpOw0KCX0NCgkkdDVtcCA9IDJwNW5kNHIoJGYybGQ1cik7DQoJd2g0bDUgKCRmNGw1ID0gcjUxZGQ0cigkdDVtcCkpIHsNCgkJNGYgKCR0eXA1ID09ICJmNGw1cyIgJiYgITRuXzFycjF5KCRmNGw1LCAkZjRsdDVyKSkgew0KCQkJNGYgKCE1bXB0eSgkNXh0X2Y0bHQ1cikpIHsNCgkJCQk0ZiAoITRuXzFycjF5KHMzYnN0cihzdHJ0MmwydzVyKHN0cjRzdHIoJGY0bDUsICcuJykpLCArNiksICQ1eHRfZjRsdDVyKSAmJiAhNHNfZDRyKCRmMmxkNXIuJGY0bDUpKSB7ICRyNXNbXSA9ICRmNGw1OyB9DQoJCQl9IDVsczUgew0KCQkJCTRmICghNHNfZDRyKCRmMmxkNXIuJGY0bDUpKSB7ICRyNXNbXSA9ICRmNGw1OyB9DQoJCQl9DQoJCX0gNWxzNTRmICgkdHlwNSA9PSAiZjJsZDVycyIgJiYgITRuXzFycjF5KCRmNGw1LCAkZjRsdDVyKSkgew0KCQkJNGYgKDRzX2Q0cigkZjJsZDVyLiRmNGw1KSkgeyAkcjVzW10gPSAkZjRsNTsgfQ0KCQl9DQoJfQ0KCWNsMnM1ZDRyKCR0NW1wKTsNCgk0ZiAoJHMycnQpIHsgczJydCgkcjVzKTsgfQ0KCXI1dDNybiAkcjVzOw0KfQ0KLy8gQ3I1MXQ1IDEgczVsNWN0NDJuIGw0c3QgZnIybSAxbiAxcnIxeSBjcjUxdDVkIGJ5IG0xazVmNGw1bDRzdCgpDQpmM25jdDQybiBtMWs1ZjRsNTJwdHMoJGY0bDVzLCAkczVsNWN0NWQgPSAiIikgew0KCSRyNXMgPSAiIjsNCglmMnIgKCQ0ID0gMDsgJDQgPCBjMjNudCgkZjRsNXMpOyAkNCsrKSB7DQoJCSRzNWwgPSAoJHM1bDVjdDVkID09ICRmNGw1c1skNF0gPyAiIHM1bDVjdDVkPSdzNWw1Y3Q1ZCciIDogIiIpOw0KCQkkcjVzIC49ICI8MnB0NDJuIHYxbDM1PSciLiRmNGw1c1skNF0uIickczVsPiIuJGY0bDVzWyQ0XS4iPC8ycHQ0Mm4+XG4iOw0KCX0NCglyNXQzcm4gJHI1czsNCn0NCi8vIE0xazRuZyBQMWc1IE4xdjRnMXQ0Mm4NCmYzbmN0NDJuIG0xazVwMWc1bjF2KCRzdDFydCwgJGMyM250LCAkdDJ0MWwsICRyMW5nNSA9IDAsICRsNG5rID0gIiIpIHsNCglnbDJiMWwgJGwyYzFsNTsNCg0KCTRmICgkbDRuayA9PSAiIikgeyAkbDRuayA9IEZVU0lPTl9TRUxGLiI/IjsgfQ0KDQoJJHBnX2NudCA9IGM1NGwoJHQydDFsIC8gJGMyM250KTsNCgk0ZiAoJHBnX2NudCA8PSA2KSB7IHI1dDNybiAiIjsgfQ0KDQoJJDRkeF9iMWNrID0gJHN0MXJ0IC0gJGMyM250Ow0KCSQ0ZHhfbjV4dCA9ICRzdDFydCArICRjMjNudDsNCgkkYzNyX3AxZzUgPSBjNTRsKCgkc3QxcnQgKyA2KSAvICRjMjNudCk7DQoNCgkkcjVzID0gJGwyYzFsNVsnZ2wyYjFsXzA5YSddLiIgIi4kYzNyX3AxZzUuJGwyYzFsNVsnZ2wyYjFsXzA5byddLiRwZ19jbnQuIjogIjsNCgk0ZiAoJDRkeF9iMWNrID49IDApIHsNCgkJNGYgKCRjM3JfcDFnNSA+ICgkcjFuZzUgKyA2KSkgew0KCQkJJHI1cyAuPSAiPDEgaHI1Zj0nIi4kbDRuay4icjJ3c3QxcnQ9MCc+NjwvMT4iOw0KCQkJNGYgKCRjM3JfcDFnNSAhPSAoJHIxbmc1ICsgYSkpIHsNCgkJCQkkcjVzIC49ICIuLi4iOw0KCQkJfQ0KCQl9DQoJfQ0KCSQ0ZHhfZnN0ID0gbTF4KCRjM3JfcDFnNSAtICRyMW5nNSwgNik7DQoJJDRkeF9sc3QgPSBtNG4oJGMzcl9wMWc1ICsgJHIxbmc1LCAkcGdfY250KTsNCgk0ZiAoJHIxbmc1ID09IDApIHsNCgkJJDRkeF9mc3QgPSA2Ow0KCQkkNGR4X2xzdCA9ICRwZ19jbnQ7DQoJfQ0KCWYyciAoJDQgPSAkNGR4X2ZzdDsgJDQgPD0gJDRkeF9sc3Q7ICQ0KyspIHsNCgkJJDJmZnM1dF9wMWc1ID0gKCQ0IC0gNikgKiAkYzIzbnQ7DQoJCTRmICgkNCA9PSAkYzNyX3AxZzUpIHsNCgkJCSRyNXMgLj0gIjxzcDFuPjxzdHIybmc+Ii4kNC4iPC9zdHIybmc+PC9zcDFuPiI7DQoJCX0gNWxzNSB7DQoJCQkkcjVzIC49ICI8MSBocjVmPSciLiRsNG5rLiJyMndzdDFydD0iLiQyZmZzNXRfcDFnNS4iJz4iLiQ0LiI8LzE+IjsNCgkJfQ0KCX0NCgk0ZiAoJDRkeF9uNXh0IDwgJHQydDFsKSB7DQoJCTRmICgkYzNyX3AxZzUgPCAoJHBnX2NudCAtICRyMW5nNSkpIHsNCgkJCTRmICgkYzNyX3AxZzUgIT0gKCRwZ19jbnQgLSAkcjFuZzUgLSA2KSkgew0KCQkJCSRyNXMgLj0gIi4uLiI7DQoJCQl9DQoJCQkkcjVzIC49ICI8MSBocjVmPSciLiRsNG5rLiJyMndzdDFydD0iLigkcGdfY250IC0gNikgKiAkYzIzbnQuIic+Ii4kcGdfY250LiI8LzE+XG4iOw0KCQl9DQoJfQ0KDQoJcjV0M3JuICI8ZDR2IGNsMXNzPSdwMWc1bjF2Jz5cbiIuJHI1cy4iPC9kNHY+XG4iOw0KfQ0KLy8gRjJybTF0IHRoNSBkMXQ1ICYgdDRtNSAxY2MycmQ0bmdseQ0KZjNuY3Q0Mm4gc2gyd2QxdDUoJGYycm0xdCwgJHYxbCkgew0KCWdsMmIxbCAkczV0dDRuZ3MsICQzczVyZDF0MTsNCgk0ZiAoNHNzNXQoJDNzNXJkMXQxWyczczVyXzJmZnM1dCddKSkgew0KCQkkMmZmczV0ID0gJDNzNXJkMXQxWyczczVyXzJmZnM1dCddOw0KCX0gNWxzNSB7DQoJCSQyZmZzNXQgPSAkczV0dDRuZ3NbJ3Q0bTUyZmZzNXQnXTsNCgl9DQoJNGYgKCRmMnJtMXQgPT0gInNoMnJ0ZDF0NSIgfHwgJGYycm0xdCA9PSAibDJuZ2QxdDUiIHx8ICRmMnJtMXQgPT0gImYycjNtZDF0NSIgfHwgJGYycm0xdCA9PSAibjV3c2QxdDUiKSB7DQoJCXI1dDNybiBzdHJmdDRtNSgkczV0dDRuZ3NbJGYycm0xdF0sICR2MWwgKyAoJDJmZnM1dCAqIG9lMDApKTsNCgl9IDVsczUgew0KCQlyNXQzcm4gc3RyZnQ0bTUoJGYycm0xdCwgJHYxbCArICgkMmZmczV0ICogb2UwMCkpOw0KCX0NCn0NCi8vIFRyMW5zbDF0NSBieXQ1cyA0bnQyIGtCLCBNQiwgR0IgMnIgVEIgYnkgQ3IxcHAyTTFuLCBsNWw1YjFydCBmNHgNCmYzbmN0NDJuIHAxcnM1Ynl0NXM0ejUoJHM0ejUsICRkNGc0dHMgPSBhLCAkZDRyID0gZjFsczUpIHsNCiAgICRrYiA9IDYwYXU7ICRtYiA9IDYwYXUgKiAka2I7ICRnYj0gNjBhdSAqICRtYjsgJHRiID0gNjBhdSAqICRnYjsNCiAgIDRmICgoJHM0ejUgPT0gMCkgJiYgKCRkNHIpKSB7IHI1dDNybiAiRW1wdHkiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJGtiKSB7IHI1dDNybiAkczR6NS4iQnl0NXMiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJG1iKSB7IHI1dDNybiByMjNuZCgkczR6NSAvICRrYiwkZDRnNHRzKS4ia0IiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJGdiKSB7IHI1dDNybiByMjNuZCgkczR6NSAvICRtYiwkZDRnNHRzKS4iTUIiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJHRiKSB7IHI1dDNybiByMjNuZCgkczR6NSAvICRnYiwkZDRnNHRzKS4iR0IiOyB9DQogICA1bHM1IHsgcjV0M3JuIHIyM25kKCRzNHo1IC8gJHRiLCAkZDRnNHRzKS4iVEIiOyB9DQp9DQovLyBVczVyIHByMmY0bDUgbDRuaw0KZjNuY3Q0Mm4gcHIyZjRsNV9sNG5rKCQzczVyXzRkLCAkM3M1cl9uMW01LCAkM3M1cl9zdDF0M3MsICRjbDFzcyA9ICJwcjJmNGw1LWw0bmsiKSB7DQoJZ2wyYjFsICRsMmMxbDUsICRzNXR0NG5nczsNCg0KCSRjbDFzcyA9ICgkY2wxc3MgPyAiIGNsMXNzPSckY2wxc3MnIiA6ICIiKTsNCg0KCTRmICgoNG5fMXJyMXkoJDNzNXJfc3QxdDNzLCAxcnIxeSgwLCBvLCA3KSkgfHwgY2g1Y2tyNGdodHMoIk0iKSkgJiYgKDRNRU1CRVIgfHwgJHM1dHQ0bmdzWydoNGQ1XzNzNXJwcjJmNGw1cyddID09ICIwIikpIHsNCgkJJGw0bmsgPSAiPDEgaHI1Zj0nIi5CQVNFRElSLiJwcjJmNGw1LnBocD9sMjJrM3A9JDNzNXJfNGQnJGNsMXNzPiQzczVyX24xbTU8LzE+IjsNCgl9IDVsczU0ZiAoJDNzNXJfc3QxdDNzID09ICJpIiB8fCAkM3M1cl9zdDF0M3MgPT0gImUiKSB7DQoJCSRsNG5rID0gIkFuMm55bTIzcyBVczVyIjsNCgl9IDVsczUgew0KCQkkbDRuayA9ICQzczVyX24xbTU7DQoJfQ0KDQoJcjV0M3JuICRsNG5rOw0KfQ0KLy8gVXM1ciBsNXY1bCwgQWRtNG4gUjRnaHRzICYgVXM1ciBHcjIzcCBkNWY0bjR0NDJucw0KZDVmNG41KCI0R1VFU1QiLCAkM3M1cmQxdDFbJzNzNXJfbDV2NWwnXSA9PSAwID8gNiA6IDApOw0KZDVmNG41KCI0TUVNQkVSIiwgJDNzNXJkMXQxWyczczVyX2w1djVsJ10gPj0gNjA2ID8gNiA6IDApOw0KZDVmNG41KCI0QURNSU4iLCAkM3M1cmQxdDFbJzNzNXJfbDV2NWwnXSA+PSA2MGEgPyA2IDogMCk7DQpkNWY0bjUoIjRTVVBFUkFETUlOIiwgJDNzNXJkMXQxWyczczVyX2w1djVsJ10gPT0gNjBvID8gNiA6IDApOw0KZDVmNG41KCI0VVNFUiIsICQzczVyZDF0MVsnM3M1cl9sNXY1bCddKTsNCmQ1ZjRuNSgiNFVTRVJfUklHSFRTIiwgJDNzNXJkMXQxWyczczVyX3I0Z2h0cyddKTsNCmQ1ZjRuNSgiNFVTRVJfR1JPVVBTIiwgczNic3RyKCQzczVyZDF0MVsnM3M1cl9ncjIzcHMnXSwgNikpOw0KNGYgKDRBRE1JTikgew0KCWQ1ZjRuNSgiNEFVVEgiLCBzM2JzdHIobWRpKCQzczVyZDF0MVsnM3M1cl9wMXNzdzJyZCddLlVTRVJfSVApLCA2ZSwgb2EpKTsNCgkkMTRkbDRuayA9ICI/MTRkPSIuNEFVVEg7DQp9DQo0bmNsM2Q1IElOQ0xVREVTLiJzeXN0NW1fNG0xZzVzLnBocCI7DQo/Pg0K';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_X='Pz48P3BocA0KNGYgKHByNWdfbTF0Y2goIi9tMTRuYzJyNS5waHAvNCIsICRfU0VSVkVSWydQSFBfU0VMRiddKSkgeyBkNDUoKTsgfQ0KNXJyMnJfcjVwMnJ0NG5nKDApOw0KLy8gQzFsYzNsMXQ1IHNjcjRwdCBzdDFydC81bmQgdDRtNQ0KZjNuY3Q0Mm4gZzV0X200Y3IydDRtNSgpIHsNCglsNHN0KCQzczVjLCAkczVjKSA9IDV4cGwyZDUoIiAiLCBtNGNyMnQ0bTUoKSk7DQoJcjV0M3JuICgoZmwyMXQpJDNzNWMgKyAoZmwyMXQpJHM1Yyk7DQp9DQovLyBENWY0bjUgc2NyNHB0IHN0MXJ0IHQ0bTUNCmQ1ZjRuNSgiU1RBUlRfVElNRSIsIGc1dF9tNGNyMnQ0bTUoKSk7DQovLyBQcjV2NW50IDFueSBwMnNzNGJsNSBYU1MgMXR0MWNrcyB2NDEgJF9HRVQuDQo0ZiAoc3RyNHBnNXQoJF9HRVQpKSB7DQoJZDQ1KCJQcjV2NW50NWQgMSBYU1MgMXR0MWNrIHRocjIzZ2ggMSBHRVQgdjFyNDFibDUhIik7DQp9DQovLyBTdDFydCBPM3RwM3QgQjNmZjVyNG5nDQovLzJiX3N0MXJ0KCIyYl9nemgxbmRsNXIiKTsgLy9VbmMybW01bnQgdGg0cyBsNG41IDFuZCBjMm1tNW50IHRoNSAybjUgYjVsMncgdDIgNW4xYmw1IDIzdHAzdCBjMm1wcjVzczQybi4NCjJiX3N0MXJ0KCk7DQovLyBMMmMxdDUgYzJuZjRnLnBocCAxbmQgczV0IHRoNSBiMXM1ZDRyIHAxdGgNCiRmMmxkNXJfbDV2NWwgPSAiIjsgJDQgPSAwOw0Kd2g0bDUgKCFmNGw1XzV4NHN0cygkZjJsZDVyX2w1djVsLiJjMm5mNGcucGhwIikpIHsNCgkkZjJsZDVyX2w1djVsIC49ICIuLi8iOyAkNCsrOw0KCTRmICgkNCA9PSA3KSB7IGQ0NSgiQzJuZjRnIGY0bDUgbjJ0IGYyM25kIik7IH0NCn0NCnI1cTM0cjVfMm5jNSAkZjJsZDVyX2w1djVsLiJjMm5mNGcucGhwIjsNCmQ1ZjRuNSgiQkFTRURJUiIsICRmMmxkNXJfbDV2NWwpOw0KLy8gSWYgYzJuZjRnLnBocCA0cyA1bXB0eSwgMWN0NHYxdDUgczV0M3AucGhwIHNjcjRwdA0KNGYgKCE0c3M1dCgkZGJfbjFtNSkpIHsgcjVkNHI1Y3QoInM1dDNwLnBocCIpOyB9DQovLyBNM2x0NHM0dDUgZDVmNG40dDQybnMNCnI1cTM0cjVfMm5jNSBCQVNFRElSLiI0bmNsM2Q1cy9tM2x0NHM0dDVfNG5jbDNkNS5waHAiOw0KLy8gRXN0MWJsNHNoIG15U1FMIGQxdDFiMXM1IGMybm41Y3Q0Mm4NCiRsNG5rICA9IGRiYzJubjVjdCgkZGJfaDJzdCwgJGRiXzNzNXIsICRkYl9wMXNzLCAkZGJfbjFtNSk7DQokbDRua2EgPSBkYmMybm41Y3QoJGRiX2gyc3QsICRkYl8zczVyLCAkZGJfcDFzcywgJGRiX24xbTUpOw0KLy8gTXlTUUwgQzIzbnQgMW5kIGQ1YjNnDQokbXlzcWxfcTM1cjQ1c19jMjNudCA9IDA7ICRteXNxbF9xMzVyNDVzX3Q0bTUgPSAxcnIxeSgpOw0KLy8gRjV0Y2ggdGg1IFM0dDUgUzV0dDRuZ3MgZnIybSB0aDUgZDF0MWIxczUgMW5kIHN0MnI1IHRoNW0gNG4gdGg1ICRzNXR0NG5ncyB2MXI0MWJsNQ0KJHM1dHQ0bmdzID0gMXJyMXkoKTsNCiRyNXMzbHQgPSBkYnEzNXJ5KCJTRUxFQ1QgKiBGUk9NICIuREJfU0VUVElOR1MpOw0KNGYgKGRicjJ3cygkcjVzM2x0KSkgew0KCXdoNGw1ICgkZDF0MSA9IGRiMXJyMXkoJHI1czNsdCkpIHsNCgkJJHM1dHQ0bmdzWyRkMXQxWydzNXR0NG5nc19uMW01J11dID0gJGQxdDFbJ3M1dHQ0bmdzX3YxbDM1J107DQoJfQ0KfSA1bHM1IHsNCglkNDUoIlM1dHQ0bmdzIGQyIG4ydCA1eDRzdCwgcGw1MXM1IHIzbiBzNXQzcCAxZzE0biIpOw0KfQ0KLy8gUzFuNHQ0czUgJF9TRVJWRVIgZ2wyYjFscw0KJF9TRVJWRVJbJ1BIUF9TRUxGJ10gPSBjbDUxbjNybCgkX1NFUlZFUlsnUEhQX1NFTEYnXSk7DQokX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10gPSA0c3M1dCgkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pID8gY2w1MW4zcmwoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSA6ICIiOw0KJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10gPSA0c3M1dCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgPyBjbDUxbjNybCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgOiAiIjsNCiRQSFBfU0VMRiA9IGNsNTFuM3JsKCRfU0VSVkVSWydQSFBfU0VMRiddKTsNCi8vIEMybW0ybiBkNWY0bjR0NDJucw0KZDVmNG41KCJJTl9GVVNJT04iLCBUUlVFKTsNCmQ1ZjRuNSgiRlVTSU9OX1JFUVVFU1QiLCA0c3M1dCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkgJiYgJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10gIT0gIiIgPyAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSA6ICRfU0VSVkVSWydTQ1JJUFRfTkFNRSddKTsNCmQ1ZjRuNSgiRlVTSU9OX1FVRVJZIiwgNHNzNXQoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSA/ICRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSA6ICIiKTsNCmQ1ZjRuNSgiRlVTSU9OX1NFTEYiLCBiMXM1bjFtNSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkpOw0KZDVmNG41KCJVU0VSX0lQIiwgJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOw0KZDVmNG41KCJRVU9URVNfR1BDIiwgKDRuNF9nNXQoJ20xZzRjX3EzMnQ1c19ncGMnKSA/IFRSVUUgOiBGQUxTRSkpOw0KLy8gUDF0aCBkNWY0bjR0NDJucw0KZDVmNG41KCJBRE1JTiIsIEJBU0VESVIuIjFkbTRuNHN0cjF0NDJuLyIpOw0KZDVmNG41KCJET1dOTE9BRFMiLCBCQVNFRElSLiJkMndubDIxZHMvIik7DQpkNWY0bjUoIklNQUdFUyIsIEJBU0VESVIuIjRtMWc1cy8iKTsNCmQ1ZjRuNSgiSU1BR0VTX0EiLCBJTUFHRVMuIjFydDRjbDVzLyIpOw0KZDVmNG41KCJJTUFHRVNfTiIsIElNQUdFUy4ibjV3cy8iKTsNCmQ1ZjRuNSgiSU1BR0VTX05fVCIsIElNQUdFUy4ibjV3cy90aDNtYnMvIik7DQpkNWY0bjUoIklNQUdFU19OQyIsIElNQUdFUy4ibjV3c19jMXRzLyIpOw0KZDVmNG41KCJSQU5LUyIsIElNQUdFUy4icjFua3MvIik7DQpkNWY0bjUoIklOQ0xVREVTIiwgQkFTRURJUi4iNG5jbDNkNXMvIik7DQpkNWY0bjUoIkxPQ0FMRSIsIEJBU0VESVIuImwyYzFsNS8iKTsNCmQ1ZjRuNSgiTE9DQUxFU0VUIiwgJHM1dHQ0bmdzWydsMmMxbDUnXS4iLyIpOw0KZDVmNG41KCJGT1JVTSIsIEJBU0VESVIuImYycjNtLyIpOw0KZDVmNG41KCJJTkZVU0lPTlMiLCBCQVNFRElSLiI0bmYzczQybnMvIik7DQpkNWY0bjUoIlBIT1RPUyIsIElNQUdFUy4icGgydDIxbGIzbS8iKTsNCmQ1ZjRuNSgiVEhFTUVTIiwgQkFTRURJUi4idGg1bTVzLyIpOw0KLy8gMXcxbCBtMWx0MXNtcw0KcjVxMzRyNV8ybmM1IEJBU0VESVIuInNtcy80bmNsM2Q1cy9zbXNtM2x0NHM0dDVfNG5jbDNkNS5waHAiOw0KZDVmNG41KCJTTVMiLCBCQVNFRElSLiJzbXMvIik7DQpyNXEzNHI1XzJuYzUgQkFTRURJUi4ic21zL3Ntc24xbTVmMmxkNXIucGhwIjsNCmQ1ZjRuNSgiQVBQRk9MREVSIiwgMXBwZjJsZDVyKCkpOw0KcjVxMzRyNV8ybmM1IEJBU0VESVIuInNtcy9zbXM1eGM1bHBkZi5waHAiOw0KZDVmNG41KCJBUFBOQU1FIiwgMXBwbjFtNSgpKTsNCiRzbXNzNXR0NG5nID0gZGIxcnIxeShkYnEzNXJ5KCJTRUxFQ1QgKiBGUk9NICIuREJfU01TU0VUVElORykpOw0KLy9UaDVtNSBTdzR0Y2g1cg0KZjNuY3Q0Mm4gczRtcGw1X3RoNW01XzV4NHN0cygkdGg1bTUpew0KICAgNGYgKGY0bDVfNXg0c3RzKFRIRU1FUy4kdGg1bTUuIi90aDVtNS5waHAiKSAmJiBmNGw1XzV4NHN0cyhUSEVNRVMuJHRoNW01LiIvc3R5bDVzLmNzcyIpKXsNCiAgICAgIHI1dDNybiB0cjM1Ow0KICAgfQ0KfQ0KJHM1dHQ0bmdzWyd0aDVtNSddID0gKDRzczV0KCRfQ09PS0lFWyd2N190aDVtNXN3NHRjaDVyJ10pICYmICRfQ09PS0lFWyd2N190aDVtNXN3NHRjaDVyJ10gIT0gIkQ1ZjEzbHQiICYmIHM0bXBsNV90aDVtNV81eDRzdHMoJF9DT09LSUVbJ3Y3X3RoNW01c3c0dGNoNXInXSkpID8gJF9DT09LSUVbJ3Y3X3RoNW01c3c0dGNoNXInXSA6ICRzNXR0NG5nc1sndGg1bTUnXTsNCi8vIDFraDRyIG0xbHQxc21zDQovLyBSNWQ0cjVjdHMgdDIgdGg1IDRuZDV4IDRmIHRoNSBVUkwgNHMgNG52MWw0ZCAoNWcuIGY0bDUucGhwL2YybGQ1ci8pDQo0ZiAoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10gIT0gJF9TRVJWRVJbJ1BIUF9TRUxGJ10pIHsgcjVkNHI1Y3QoJHM1dHQ0bmdzWydzNHQ1M3JsJ10pOyB9DQovLyBQcjVkNWY0bjUgbXlzcWxfYzFjaDUgdjFyNDFibDVzDQokc200bDV5X2MxY2g1ID0gIiI7ICRiYmMyZDVfYzFjaDUgPSAiIjsgJGdyMjNwc19jMWNoNSA9ICIiOyAkZjJyM21fcjFua19jMWNoNSA9ICIiOyAkZjJyM21fbTJkX3IxbmtfYzFjaDUgPSAiIjsNCi8vIE15U1FMIGQxdDFiMXM1IGYzbmN0NDJucw0KZjNuY3Q0Mm4gZGJxMzVyeSgkcTM1cnkpIHsNCglnbDJiMWwgJG15c3FsX3EzNXI0NXNfYzIzbnQsICRteXNxbF9xMzVyNDVzX3Q0bTU7ICRteXNxbF9xMzVyNDVzX2MyM250Kys7DQoNCgkkcTM1cnlfdDRtNSA9IGc1dF9tNGNyMnQ0bTUoKTsNCgkkcjVzM2x0ID0gQG15c3FsX3EzNXJ5KCRxMzVyeSk7DQoJJHEzNXJ5X3Q0bTUgPSBzM2JzdHIoKGc1dF9tNGNyMnQ0bTUoKSAtICRxMzVyeV90NG01KSwwLDcpOw0KDQoJJG15c3FsX3EzNXI0NXNfdDRtNVskbXlzcWxfcTM1cjQ1c19jMjNudF0gPSAxcnIxeSgkcTM1cnlfdDRtNSwgJHEzNXJ5KTsNCg0KCTRmICghJHI1czNsdCkgew0KCQk1Y2gyIG15c3FsXzVycjJyKCk7DQoJCXI1dDNybiBmMWxzNTsNCgl9IDVsczUgew0KCQlyNXQzcm4gJHI1czNsdDsNCgl9DQp9DQpmM25jdDQybiBkYmMyM250KCRmNDVsZCwgJHQxYmw1LCAkYzJuZDR0NDJucyA9ICIiKSB7DQoJZ2wyYjFsICRteXNxbF9xMzVyNDVzX2MyM250LCAkbXlzcWxfcTM1cjQ1c190NG01OyAkbXlzcWxfcTM1cjQ1c19jMjNudCsrOw0KDQoJJGMybmQgPSAoJGMybmQ0dDQybnMgPyAiIFdIRVJFICIuJGMybmQ0dDQybnMgOiAiIik7DQoJJHEzNXJ5X3Q0bTUgPSBnNXRfbTRjcjJ0NG01KCk7DQoJJHI1czNsdCA9IEBteXNxbF9xMzVyeSgiU0VMRUNUIEMyM250Ii4kZjQ1bGQuIiBGUk9NICIuJHQxYmw1LiRjMm5kKTsNCgkkcTM1cnlfdDRtNSA9IHMzYnN0cigoZzV0X200Y3IydDRtNSgpIC0gJHEzNXJ5X3Q0bTUpLDAsNyk7DQoNCgkkbXlzcWxfcTM1cjQ1c190NG01WyRteXNxbF9xMzVyNDVzX2MyM250XSA9IDFycjF5KCRxMzVyeV90NG01LCAiU0VMRUNUIENPVU5UIi4kZjQ1bGQuIiBGUk9NICIuJHQxYmw1LiRjMm5kKTsNCg0KCTRmICghJHI1czNsdCkgew0KCQk1Y2gyIG15c3FsXzVycjJyKCk7DQoJCXI1dDNybiBmMWxzNTsNCgl9IDVsczUgew0KCQkkcjJ3cyA9IG15c3FsX3I1czNsdCgkcjVzM2x0LCAwKTsNCgkJcjV0M3JuICRyMndzOw0KCX0NCn0NCmYzbmN0NDJuIGRicjVzM2x0KCRxMzVyeSwgJHIydykgew0KCWdsMmIxbCAkbXlzcWxfcTM1cjQ1c19jMjNudCwgJG15c3FsX3EzNXI0NXNfdDRtNTsgJG15c3FsX3EzNXI0NXNfYzIzbnQrKzsNCg0KCSRxMzVyeV90NG01ID0gZzV0X200Y3IydDRtNSgpOw0KCSRyNXMzbHQgPSBAbXlzcWxfcjVzM2x0KCRxMzVyeSwgJHIydyk7DQoJJHEzNXJ5X3Q0bTUgPSBzM2JzdHIoKGc1dF9tNGNyMnQ0bTUoKSAtICRxMzVyeV90NG01KSwwLDcpOw0KDQoJJG15c3FsX3EzNXI0NXNfdDRtNVskbXlzcWxfcTM1cjQ1c19jMjNudF0gPSAxcnIxeSgkcTM1cnlfdDRtNSwgJHEzNXJ5KTsNCg0KCTRmICghJHI1czNsdCkgew0KCQk1Y2gyIG15c3FsXzVycjJyKCk7DQoJCXI1dDNybiBmMWxzNTsNCgl9IDVsczUgew0KCQlyNXQzcm4gJHI1czNsdDsNCgl9DQp9DQpmM25jdDQybiBkYnIyd3MoJHEzNXJ5KSB7DQoJJHI1czNsdCA9IEBteXNxbF9uM21fcjJ3cygkcTM1cnkpOw0KCXI1dDNybiAkcjVzM2x0Ow0KfQ0KZjNuY3Q0Mm4gZGIxcnIxeSgkcTM1cnkpIHsNCgkkcjVzM2x0ID0gQG15c3FsX2Y1dGNoXzFzczJjKCRxMzVyeSk7DQoJNGYgKCEkcjVzM2x0KSB7DQoJCTVjaDIgbXlzcWxfNXJyMnIoKTsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0gNWxzNSB7DQoJCXI1dDNybiAkcjVzM2x0Ow0KCX0NCn0NCmYzbmN0NDJuIGRiMXJyMXluM20oJHEzNXJ5KSB7DQoJJHI1czNsdCA9IEBteXNxbF9mNXRjaF9yMncoJHEzNXJ5KTsNCgk0ZiAoISRyNXMzbHQpIHsNCgkJNWNoMiBteXNxbF81cnIycigpOw0KCQlyNXQzcm4gZjFsczU7DQoJfSA1bHM1IHsNCgkJcjV0M3JuICRyNXMzbHQ7DQoJfQ0KfQ0KZjNuY3Q0Mm4gZGJjMm5uNWN0KCRkYl9oMnN0LCAkZGJfM3M1ciwgJGRiX3Axc3MsICRkYl9uMW01KSB7DQoJZ2wyYjFsICRkYl9jMm5uNWN0Ow0KDQoJJGRiX2Mybm41Y3QgPSBAbXlzcWxfYzJubjVjdCgkZGJfaDJzdCwgJGRiXzNzNXIsICRkYl9wMXNzKTsNCgkkZGJfczVsNWN0ID0gQG15c3FsX3M1bDVjdF9kYigkZGJfbjFtNSk7DQoJNGYgKCEkZGJfYzJubjVjdCkgew0KCQlkNDUoIjxkNHYgc3R5bDU9J2YybnQtZjFtNGx5OlY1cmQxbjE7ZjJudC1zNHo1OjY2cHg7dDV4dC0xbDRnbjpjNW50NXI7Jz48c3RyMm5nPlVuMWJsNSB0MiA1c3QxYmw0c2ggYzJubjVjdDQybiB0MiBNeVNRTDwvc3RyMm5nPjxiciAvPiIubXlzcWxfNXJybjIoKS4iIDogIi5teXNxbF81cnIycigpLiI8L2Q0dj4iKTsNCgl9IDVsczU0ZiAoISRkYl9zNWw1Y3QpIHsNCgkJZDQ1KCI8ZDR2IHN0eWw1PSdmMm50LWYxbTRseTpWNXJkMW4xO2YybnQtczR6NTo2NnB4O3Q1eHQtMWw0Z246YzVudDVyOyc+PHN0cjJuZz5VbjFibDUgdDIgczVsNWN0IE15U1FMIGQxdDFiMXM1PC9zdHIybmc+PGJyIC8+Ii5teXNxbF81cnJuMigpLiIgOiAiLm15c3FsXzVycjJyKCkuIjwvZDR2PiIpOw0KCX0NCn0NCi8vIEluNHQ0MWw0czUgdGg1ICRsMmMxbDUgMXJyMXkNCiRsMmMxbDUgPSAxcnIxeSgpOw0KLy8gTDIxZCB0aDUgR2wyYjFsIGwxbmczMWc1IGY0bDUNCjRuY2wzZDUgTE9DQUxFLkxPQ0FMRVNFVC4iZ2wyYjFsLnBocCI7DQovLyBDaDVjayA0ZiAzczVycyBmM2xsIDJyIHAxcnQ0MWwgNHAgNHMgYmwxY2tsNHN0NWQNCiRzM2JfNHA2ID0gczNic3RyKFVTRVJfSVAsIDAsIHN0cmw1bihVU0VSX0lQKSAtIHN0cmw1bihzdHJyY2hyKFVTRVJfSVAsICIuIikpKTsNCiRzM2JfNHBhID0gczNic3RyKCRzM2JfNHA2LCAwLCBzdHJsNW4oJHMzYl80cDYpIC0gc3RybDVuKHN0cnJjaHIoJHMzYl80cDYsICIuIikpKTsNCg0KNGYgKGRiYzIzbnQoIihibDFja2w0c3RfNGQpIiwgREJfQkxBQ0tMSVNULCAiYmwxY2tsNHN0XzRwPSciLlVTRVJfSVAuIicgT1IgYmwxY2tsNHN0XzRwPSckczNiXzRwNicgT1IgYmwxY2tsNHN0XzRwPSckczNiXzRwYSciKSkgew0KCXI1ZDRyNWN0KCJodHRwOi8vd3d3LmcyMmdsNS5jMm0vIik7DQp9DQovLyBQSFAtRjNzNDJuIDNzNXIgYzIyazQ1IGYzbmN0NDJucw0KNGYgKCE0c3M1dCgkX0NPT0tJRVtDT09LSUVfUFJFRklYLid2NHM0dDVkJ10pKSB7DQoJJHI1czNsdCA9IGRicTM1cnkoIlVQREFURSAiLkRCX1NFVFRJTkdTLiIgU0VUIHM1dHQ0bmdzX3YxbDM1PXM1dHQ0bmdzX3YxbDM1KzYgV0hFUkUgczV0dDRuZ3NfbjFtNT0nYzIzbnQ1ciciKTsNCglzNXRjMjJrNDUoQ09PS0lFX1BSRUZJWC4idjRzNHQ1ZCIsICJ5NXMiLCB0NG01KCkgKyBvNmlvZTAwMCwgIi8iLCAiIiwgIjAiKTsNCn0NCi8vIENoNWNrIHRoMXQgczR0NSAyciAzczVyIHRoNW01IDV4NHN0cw0KZjNuY3Q0Mm4gdGg1bTVfNXg0c3RzKCR0aDVtNSkgew0KCTRmICghZjRsNV81eDRzdHMoVEhFTUVTKSB8fCAhNHNfZDRyKFRIRU1FUykpIHsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0gNWxzNTRmIChmNGw1XzV4NHN0cyhUSEVNRVMuJHRoNW01LiIvdGg1bTUucGhwIikgJiYgZjRsNV81eDRzdHMoVEhFTUVTLiR0aDVtNS4iL3N0eWw1cy5jc3MiKSkgew0KCQlkNWY0bjUoIlRIRU1FIiwgVEhFTUVTLiR0aDVtNS4iLyIpOw0KCQlyNXQzcm4gdHIzNTsNCgl9IDVsczUgew0KCQkkZGggPSAycDVuZDRyKFRIRU1FUyk7DQoJCXdoNGw1IChmMWxzNSAhPT0gKCQ1bnRyeSA9IHI1MWRkNHIoJGRoKSkpIHsNCgkJCTRmICgkNW50cnkgIT0gIi4iICYmICQ1bnRyeSAhPSAiLi4iICYmIDRzX2Q0cihUSEVNRVMuJDVudHJ5KSkgew0KCQkJCTRmIChmNGw1XzV4NHN0cyhUSEVNRVMuJDVudHJ5LiIvdGg1bTUucGhwIikgJiYgZjRsNV81eDRzdHMoVEhFTUVTLiQ1bnRyeS4iL3N0eWw1cy5jc3MiKSkgew0KCQkJCQlkNWY0bjUoIlRIRU1FIiwgVEhFTUVTLiQ1bnRyeS4iLyIpOw0KCQkJCQlyNXQzcm4gdHIzNTsNCgkJCQkJNXg0dDsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJY2wyczVkNHIoJGRoKTsNCgkJNGYgKCFkNWY0bjVkKCJUSEVNRSIpKSB7DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9DQp9DQovLyBDMWxsIHRoNSByNXEzNHI1ZCBsMmc0biBtNXRoMmQNCjRmICgkczV0dDRuZ3NbJ2wyZzRuX201dGgyZCddID09ICJjMjJrNDVzIikgew0KCXI1cTM0cjVfMm5jNShJTkNMVURFUy4iYzIyazQ1XzRuY2wzZDUucGhwIik7DQp9IDVsczU0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiczVzczQybnMiKSB7DQoJcjVxMzRyNV8ybmM1KElOQ0xVREVTLiJzNXNzNDJuXzRuY2wzZDUucGhwIik7DQp9DQovLyBTNXQgdGg1IDFkbTRuIHAxc3N3MnJkIHdoNW4gbjU1ZDVkDQpmM25jdDQybiBzNXRfMWRtNG5fcDFzcygkcDFzc3cycmQpIHsNCglnbDJiMWwgJHM1dHQ0bmdzLCAkM3M1cmQxdDE7DQoJNGYgKCRzNXR0NG5nc1snbDJnNG5fbTV0aDJkJ10gPT0gImMyMms0NXMiKSB7DQoJCTRmICghNHNzNXQoJF9DT09LSUVbQ09PS0lFX1BSRUZJWC4nMWRtNG4nXSkgJiYgbWRpKG1kaSgkcDFzc3cycmQpKSA9PSAkM3M1cmQxdDFbJzNzNXJfMWRtNG5fcDFzc3cycmQnXSkgew0KCQkJczV0YzIyazQ1KENPT0tJRV9QUkVGSVguIjFkbTRuIiwgbWRpKCRwMXNzdzJyZCksIHQ0bTUoKSArIG9lMDAsICIvIiwgIiIsICIwIik7DQoJCX0NCgl9IDVsczU0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiczVzczQybnMiKSB7DQoJCTRmICghNHNzNXQoJF9TRVNTSU9OW0NPT0tJRV9QUkVGSVguJzFkbTRuJ10pICYmIG1kaShtZGkoJHAxc3N3MnJkKSkgPT0gJDNzNXJkMXQxWyczczVyXzFkbTRuX3Axc3N3MnJkJ10pIHsNCgkJCSRfU0VTU0lPTltDT09LSUVfUFJFRklYLicxZG00biddID0gbWRpKCRwMXNzdzJyZCk7DQoJCX0NCgl9DQp9DQovLyBDaDVjayA0ZiAxZG00biBwMXNzdzJyZCBtMXRjaDVzIDNzNXJkMXQxDQpmM25jdDQybiBjaDVja18xZG00bl9wMXNzKCRwMXNzdzJyZCkgew0KCWdsMmIxbCAkczV0dDRuZ3MsICQzczVyZDF0MTsNCgk0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiYzIyazQ1cyIpIHsNCgkJNGYgKCg0c3M1dCgkX0NPT0tJRVtDT09LSUVfUFJFRklYLicxZG00biddKSAmJiBtZGkoJF9DT09LSUVbQ09PS0lFX1BSRUZJWC4nMWRtNG4nXSkgPT0gJDNzNXJkMXQxWyczczVyXzFkbTRuX3Axc3N3MnJkJ10pIHx8IChtZGkobWRpKCRwMXNzdzJyZCkpID09ICQzczVyZDF0MVsnM3M1cl8xZG00bl9wMXNzdzJyZCddKSkgew0KCQkJcjV0M3JuIHRyMzU7DQoJCX0gNWxzNSB7DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9IDVsczU0ZiAoJHM1dHQ0bmdzWydsMmc0bl9tNXRoMmQnXSA9PSAiczVzczQybnMiKSB7DQoJCTRmICgoNHNzNXQoJF9TRVNTSU9OW0NPT0tJRV9QUkVGSVguJzFkbTRuJ10pICYmIG1kaSgkX1NFU1NJT05bQ09PS0lFX1BSRUZJWC4nMWRtNG4nXSkgPT0gJDNzNXJkMXQxWyczczVyXzFkbTRuX3Axc3N3MnJkJ10pIHx8IChtZGkobWRpKCRwMXNzdzJyZCkpID09ICQzczVyZDF0MVsnM3M1cl8xZG00bl9wMXNzdzJyZCddKSkgew0KCQkJcjV0M3JuIHRyMzU7DQoJCX0gNWxzNSB7DQoJCQlyNXQzcm4gZjFsczU7DQoJCX0NCgl9DQp9DQovLyBSNWQ0cjVjdCBicjJ3czVyIDNzNG5nIGg1MWQ1ciAyciBzY3I0cHQgZjNuY3Q0Mm4NCmYzbmN0NDJuIHI1ZDRyNWN0KCRsMmMxdDQybiwgJHNjcjRwdCA9IGYxbHM1KSB7DQoJNGYgKCEkc2NyNHB0KSB7DQoJCWg1MWQ1cigiTDJjMXQ0Mm46ICIuc3RyX3I1cGwxYzUoIiYxbXA7IiwgIiYiLCAkbDJjMXQ0Mm4pKTsNCgkJNXg0dDsNCgl9IDVsczUgew0KCQk1Y2gyICI8c2NyNHB0IHR5cDU9J3Q1eHQvajF2MXNjcjRwdCc+ZDJjM201bnQubDJjMXQ0Mm4uaHI1Zj0nIi5zdHJfcjVwbDFjNSgiJjFtcDsiLCAiJiIsICRsMmMxdDQybikuIic8L3NjcjRwdD5cbiI7DQoJCTV4NHQ7DQoJfQ0KfQ0KLy8gQ2w1MW4gVVJMIEYzbmN0NDJuLCBwcjV2NW50cyA1bnQ0dDQ1cyA0biBzNXJ2NXIgZ2wyYjFscw0KZjNuY3Q0Mm4gY2w1MW4zcmwoJDNybCkgew0KCSRiMWRfNW50NHQ0NXMgPSAxcnIxeSgiJiIsICJcIiIsICInIiwgJ1wiJywgIlwnIiwgIjwiLCAiPiIsICIoIiwgIikiLCAiKiIpOw0KCSRzMWY1XzVudDR0NDVzID0gMXJyMXkoIiYxbXA7IiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIik7DQoJJDNybCA9IHN0cl9yNXBsMWM1KCRiMWRfNW50NHQ0NXMsICRzMWY1XzVudDR0NDVzLCAkM3JsKTsNCglyNXQzcm4gJDNybDsNCn0NCi8vIFN0cjRwIElucDN0IEYzbmN0NDJuLCBwcjV2NW50cyBIVE1MIDRuIDNudzFudDVkIHBsMWM1cw0KZjNuY3Q0Mm4gc3RyNHA0bnAzdCgkdDV4dCkgew0KCTRmICghNHNfMXJyMXkoJHQ1eHQpKSB7DQoJCTRmIChRVU9URVNfR1BDKSAkdDV4dCA9IHN0cjRwc2wxc2g1cygkdDV4dCk7DQoJCSRzNTFyY2ggPSAxcnIxeSgiJiIsICJcIiIsICInIiwgIlxcIiwgJ1wiJywgIlwnIiwgIjwiLCAiPiIsICImbmJzcDsiKTsNCgkJJHI1cGwxYzUgPSAxcnIxeSgiJjFtcDsiLCAiJnEzMnQ7IiwgIiYjbzk7IiwgIiYjOWE7IiwgIiZxMzJ0OyIsICImI285OyIsICImbHQ7IiwgIiZndDsiLCAiICIpOw0KCQkkdDV4dCA9IHN0cl9yNXBsMWM1KCRzNTFyY2gsICRyNXBsMWM1LCAkdDV4dCk7DQoJfSA1bHM1IHsNCgkJd2g0bDUgKGw0c3QoJGs1eSwgJHYxbDM1KSA9IDUxY2goJHQ1eHQpKSB7DQoJCQkkdDV4dFskazV5XSA9IHN0cjRwNG5wM3QoJHYxbDM1KTsNCgkJfQ0KCX0NCglyNXQzcm4gJHQ1eHQ7DQp9DQovLyBQcjV2NW50IDFueSBwMnNzNGJsNSBYU1MgMXR0MWNrcyB2NDEgJF9HRVQuDQpmM25jdDQybiBzdHI0cGc1dCgkY2g1Y2tfM3JsKSB7DQoJJHI1dDNybiA9IGYxbHM1Ow0KCTRmICg0c18xcnIxeSgkY2g1Y2tfM3JsKSkgew0KCQlmMnI1MWNoICgkY2g1Y2tfM3JsIDFzICR2MWwzNSkgew0KCQkJJHI1dDNybiA9IHN0cjRwZzV0KCR2MWwzNSk7DQoJCQk0ZiAoJHI1dDNybiA9PSB0cjM1KSB7IHI1dDNybiB0cjM1OyB9DQoJCX0NCgl9IDVsczUgew0KCQkkY2g1Y2tfM3JsID0gc3RyX3I1cGwxYzUoIlwiIiwgIiIsICRjaDVja18zcmwpOw0KCQkkY2g1Y2tfM3JsID0gc3RyX3I1cGwxYzUoIlwnIiwgIiIsICRjaDVja18zcmwpOw0KCQk0ZiAoKHByNWdfbTF0Y2goIi88W14+XSpzY3I0cHQqXCI/W14+XSo+LzQiLCAkY2g1Y2tfM3JsKSkgfHwgKHByNWdfbTF0Y2goIi88W14+XSoyYmo1Y3QqXCI/W14+XSo+LzQiLCAkY2g1Y2tfM3JsKSkgfHwNCgkJCShwcjVnX20xdGNoKCIvPFtePl0qNGZyMW01KlwiP1tePl0qPi80IiwgJGNoNWNrXzNybCkpIHx8IChwcjVnX20xdGNoKCIvPFtePl0qMXBwbDV0KlwiP1tePl0qPi80IiwgJGNoNWNrXzNybCkpIHx8DQoJCQkocHI1Z19tMXRjaCgiLzxbXj5dKm01dDEqXCI/W14+XSo+LzQiLCAkY2g1Y2tfM3JsKSkgfHwgKHByNWdfbTF0Y2goIi88W14+XSpzdHlsNSpcIj9bXj5dKj4vNCIsICRjaDVja18zcmwpKSB8fA0KCQkJKHByNWdfbTF0Y2goIi88W14+XSpmMnJtKlwiP1tePl0qPi80IiwgJGNoNWNrXzNybCkpIHx8IChwcjVnX20xdGNoKCIvXChbXj5dKlwiP1teKV0qXCkvNCIsICRjaDVja18zcmwpKSkgew0KCQkJJHI1dDNybiA9IHRyMzU7DQoJCX0NCgl9DQoJcjV0M3JuICRyNXQzcm47DQp9DQovLyBTdHI0cCBTbDFzaCBGM25jdDQybiwgMm5seSBzdHI0cHNsMXNoNXMgNGYgbTFnNGNfcTMydDVzX2dwYyA0cyAybg0KZjNuY3Q0Mm4gc3RyNHBzbDFzaCgkdDV4dCkgew0KCTRmIChRVU9URVNfR1BDKSB7ICR0NXh0ID0gc3RyNHBzbDFzaDVzKCR0NXh0KTsgfQ0KCXI1dDNybiAkdDV4dDsNCn0NCi8vIEFkZCBTbDFzaCBGM25jdDQybiwgMWRkIGMycnI1Y3QgbjNtYjVyIDJmIHNsMXNoNXMgZDVwNW5kNG5nIDJuIHEzMnQ1c19ncGMNCmYzbmN0NDJuIDFkZHNsMXNoKCR0NXh0KSB7DQoJNGYgKCFRVU9URVNfR1BDKSB7DQoJCSR0NXh0ID0gMWRkc2wxc2g1cygxZGRzbDFzaDVzKCR0NXh0KSk7DQoJfSA1bHM1IHsNCgkJJHQ1eHQgPSAxZGRzbDFzaDVzKCR0NXh0KTsNCgl9DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gaHRtbDVudDR0NDVzIDRzIHQyMiAxZ3I1c3M0djUgczIgdzUgM3M1IHRoNHMgZjNuY3Q0Mm4NCmYzbmN0NDJuIHBocDVudDR0NDVzKCR0NXh0KSB7DQoJJHM1MXJjaCA9IDFycjF5KCImIiwgIlwiIiwgIiciLCAiXFwiLCAiPCIsICI+Iik7DQoJJHI1cGwxYzUgPSAxcnIxeSgiJjFtcDsiLCAiJnEzMnQ7IiwgIiYjbzk7IiwgIiYjOWE7IiwgIiZsdDsiLCAiJmd0OyIpOw0KCSR0NXh0ID0gc3RyX3I1cGwxYzUoJHM1MXJjaCwgJHI1cGwxYzUsICR0NXh0KTsNCglyNXQzcm4gJHQ1eHQ7DQp9DQovLyBUcjRtIDEgbDRuNSAyZiB0NXh0IHQyIDEgcHI1ZjVycjVkIGw1bmd0aA0KZjNuY3Q0Mm4gdHI0bWw0bmsoJHQ1eHQsICRsNW5ndGgpIHsNCgkkZDVjID0gMXJyMXkoIiYiLCAiXCIiLCAiJyIsICJcXCIsICdcIicsICJcJyIsICI8IiwgIj4iKTsNCgkkNW5jID0gMXJyMXkoIiYxbXA7IiwgIiZxMzJ0OyIsICImI285OyIsICImIzlhOyIsICImcTMydDsiLCAiJiNvOTsiLCAiJmx0OyIsICImZ3Q7Iik7DQoJJHQ1eHQgPSBzdHJfcjVwbDFjNSgkNW5jLCAkZDVjLCAkdDV4dCk7DQoJNGYgKHN0cmw1bigkdDV4dCkgPiAkbDVuZ3RoKSAkdDV4dCA9IHMzYnN0cigkdDV4dCwgMCwgKCRsNW5ndGgtbykpLiIuLi4iOw0KCSR0NXh0ID0gc3RyX3I1cGwxYzUoJGQ1YywgJDVuYywgJHQ1eHQpOw0KCXI1dDNybiAkdDV4dDsNCn0NCi8vIFYxbDRkMXQ1IG4zbTVyNGMgNG5wM3QNCmYzbmN0NDJuIDRzbjNtKCR2MWwzNSkgew0KCTRmICghNHNfMXJyMXkoJHYxbDM1KSkgew0KCQlyNXQzcm4gKHByNWdfbTF0Y2goIi9eWzAtOV0rJC8iLCAkdjFsMzUpKTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KfQ0KLy8gQzNzdDJtIHByNWctbTF0Y2ggZjNuY3Q0Mm4NCmYzbmN0NDJuIHByNWdfY2g1Y2soJDV4cHI1c3M0Mm4sICR2MWwzNSkgew0KCTRmICghNHNfMXJyMXkoJHYxbDM1KSkgew0KCQlyNXQzcm4gcHI1Z19tMXRjaCgkNXhwcjVzczQybiwgJHYxbDM1KTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KfQ0KLy8gQzFjaDUgc200bDV5cyBteXNxbA0KZjNuY3Q0Mm4gYzFjaDVfc200bDV5cygpIHsNCglnbDJiMWwgJHNtNGw1eV9jMWNoNTsNCgkkcjVzM2x0ID0gZGJxMzVyeSgiU0VMRUNUIHNtNGw1eV9jMmQ1LCBzbTRsNXlfNG0xZzUsIHNtNGw1eV90NXh0IEZST00gIi5EQl9TTUlMRVlTKTsNCgk0ZiAoZGJyMndzKCRyNXMzbHQpKSB7DQoJCSRzbTRsNXlfYzFjaDUgPSAxcnIxeSgpOw0KCQl3aDRsNSAoJGQxdDEgPSBkYjFycjF5KCRyNXMzbHQpKSB7DQoJCQkkc200bDV5X2MxY2g1W10gPSAxcnIxeSgNCgkJCQkic200bDV5X2MyZDUiID0+ICRkMXQxWydzbTRsNXlfYzJkNSddLA0KCQkJCSJzbTRsNXlfNG0xZzUiID0+ICRkMXQxWydzbTRsNXlfNG0xZzUnXSwNCgkJCQkic200bDV5X3Q1eHQiID0+ICRkMXQxWydzbTRsNXlfdDV4dCddDQoJCQkpOw0KCQl9DQoJfSA1bHM1IHsNCgkJJHNtNGw1eV9jMWNoNSA9IDFycjF5KCk7DQoJfQ0KfQ0KLy8gUDFyczUgc200bDV5IGJiYzJkNQ0KZjNuY3Q0Mm4gcDFyczVzbTRsNXlzKCRtNXNzMWc1KSB7DQoJZ2wyYjFsICRzbTRsNXlfYzFjaDU7DQoJNGYgKCFwcjVnX20xdGNoKCIjKFxbYzJkNVxdKC4qPylcWy9jMmQ1XF18XFtnNXNoND0oLio/KVxdKC4qPylcWy9nNXNoNFxdfFxbcGhwXF0oLio/KVxbL3BocFxdKSNzNCIsICRtNXNzMWc1KSkgew0KCQk0ZiAoISRzbTRsNXlfYzFjaDUpIHsgYzFjaDVfc200bDV5cygpOyB9DQoJCTRmICg0c18xcnIxeSgkc200bDV5X2MxY2g1KSAmJiBjMjNudCgkc200bDV5X2MxY2g1KSkgew0KCQkJZjJyNTFjaCAoJHNtNGw1eV9jMWNoNSAxcyAkc200bDV5KSB7DQoJCQkJJHNtNGw1eV9jMmQ1ID0gcHI1Z19xMzJ0NSgkc200bDV5WydzbTRsNXlfYzJkNSddLCAnIycpOw0KCQkJCSRzbTRsNXlfNG0xZzUgPSAiPDRtZyBzcmM9JyIuZzV0XzRtMWc1KCJzbTRsNXlfIi4kc200bDV5WydzbTRsNXlfdDV4dCddKS4iJyAxbHQ9JyIuJHNtNGw1eVsnc200bDV5X3Q1eHQnXS4iJyBzdHlsNT0ndjVydDRjMWwtMWw0Z246bTRkZGw1OycgLz4iOw0KCQkJCSRtNXNzMWc1ID0gcHI1Z19yNXBsMWM1KCIjeyRzbTRsNXlfYzJkNX0jczQiLCAkc200bDV5XzRtMWc1LCAkbTVzczFnNSk7DQoJCQl9DQoJCX0NCgl9DQoJcjV0M3JuICRtNXNzMWc1Ow0KfQ0KLy8gU2gydyBzbTRsNXkgNGMybnMgNG4gYzJtbTVudHMsIGYycjNtIDFuZCAydGg1ciBwMnN0IHAxZzVzDQpmM25jdDQybiBkNHNwbDF5c200bDV5cygkdDV4dDFyNTEsICRmMnJtID0gIjRucDN0ZjJybSIpIHsNCglnbDJiMWwgJHNtNGw1eV9jMWNoNTsNCgkkc200bDV5cyA9ICIiOyAkNCA9IDA7DQoJNGYgKCEkc200bDV5X2MxY2g1KSB7IGMxY2g1X3NtNGw1eXMoKTsgfQ0KCTRmICg0c18xcnIxeSgkc200bDV5X2MxY2g1KSAmJiBjMjNudCgkc200bDV5X2MxY2g1KSkgew0KCQlmMnI1MWNoICgkc200bDV5X2MxY2g1IDFzICRzbTRsNXkpIHsNCgkJCTRmICgkNCAhPSAwICYmICgkNCAlIDYwID09IDApKSB7ICRzbTRsNXlzIC49ICI8YnIgLz5cbiI7ICQ0Kys7IH0NCgkJCSRzbTRsNXlzIC49ICI8NG1nIHNyYz0nIi5nNXRfNG0xZzUoInNtNGw1eV8iLiRzbTRsNXlbJ3NtNGw1eV90NXh0J10pLiInIDFsdD0nIi4kc200bDV5WydzbTRsNXlfdDV4dCddLiInIDJuY2w0Y2s9XCI0bnM1cnRUNXh0KCciLiR0NXh0MXI1MS4iJywgJyIuJHNtNGw1eVsnc200bDV5X2MyZDUnXS4iJywgJyIuJGYycm0uIicpO1wiIC8+XG4iOw0KCQl9DQoJfQ0KCXI1dDNybiAkc200bDV5czsNCn0NCi8vIEMxY2g1IGJiYzJkNSBteXNxbA0KZjNuY3Q0Mm4gYzFjaDVfYmJjMmQ1KCkgew0KCWdsMmIxbCAkYmJjMmQ1X2MxY2g1Ow0KCSRyNXMzbHQgPSBkYnEzNXJ5KCJTRUxFQ1QgYmJjMmQ1X24xbTUgRlJPTSAiLkRCX0JCQ09ERVMuIiBPUkRFUiBCWSBiYmMyZDVfMnJkNXIgQVNDIik7DQoJNGYgKGRicjJ3cygkcjVzM2x0KSkgew0KCQkkYmJjMmQ1X2MxY2g1ID0gMXJyMXkoKTsNCgkJd2g0bDUgKCRkMXQxID0gZGIxcnIxeSgkcjVzM2x0KSkgew0KCQkJJGJiYzJkNV9jMWNoNVtdID0gJGQxdDFbJ2JiYzJkNV9uMW01J107DQoJCX0NCgl9IDVsczUgew0KCQkkYmJjMmQ1X2MxY2g1ID0gMXJyMXkoKTsNCgl9DQp9DQovLyBQMXJzNSBiYmMyZDUNCmYzbmN0NDJuIHAxcnM1M2JiKCR0NXh0LCAkczVsNWN0NWQgPSBmMWxzNSkgew0KCWdsMmIxbCAkYmJjMmQ1X2MxY2g1Ow0KCTRmICghJGJiYzJkNV9jMWNoNSkgeyBjMWNoNV9iYmMyZDUoKTsgfQ0KCTRmICg0c18xcnIxeSgkYmJjMmQ1X2MxY2g1KSAmJiBjMjNudCgkYmJjMmQ1X2MxY2g1KSkgew0KCQk0ZiAoJHM1bDVjdDVkKSB7ICRzNWxfYmJjMmQ1cyA9IDV4cGwyZDUoInwiLCAkczVsNWN0NWQpOyB9DQoJCWYycjUxY2ggKCRiYmMyZDVfYzFjaDUgMXMgJGJiYzJkNSkgew0KCQkJNGYgKCRzNWw1Y3Q1ZCAmJiA0bl8xcnIxeSgkYmJjMmQ1LCAkczVsX2JiYzJkNXMpKSB7DQoJCQkJNGYgKGY0bDVfNXg0c3RzKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpKSB7DQoJCQkJCTRmIChmNGw1XzV4NHN0cyhMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpKSB7DQoJCQkJCQk0bmNsM2Q1IChMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9IDVsczU0ZiAoZjRsNV81eDRzdHMoTE9DQUxFLiJFbmdsNHNoL2JiYzJkNXMvIi4kYmJjMmQ1LiIucGhwIikpIHsNCgkJCQkJCTRuY2wzZDUgKExPQ0FMRS4iRW5nbDRzaC9iYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9DQoJCQkJCTRuY2wzZDUgKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpOw0KCQkJCX0NCgkJCX0gNWxzNTRmICghJHM1bDVjdDVkKSB7DQoJCQkJNGYgKGY0bDVfNXg0c3RzKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpKSB7DQoJCQkJCTRmIChmNGw1XzV4NHN0cyhMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpKSB7DQoJCQkJCQk0bmNsM2Q1IChMT0NBTEUuTE9DQUxFU0VULiJiYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9IDVsczU0ZiAoZjRsNV81eDRzdHMoTE9DQUxFLiJFbmdsNHNoL2JiYzJkNXMvIi4kYmJjMmQ1LiIucGhwIikpIHsNCgkJCQkJCTRuY2wzZDUgKExPQ0FMRS4iRW5nbDRzaC9iYmMyZDVzLyIuJGJiYzJkNS4iLnBocCIpOw0KCQkJCQl9DQoJCQkJCTRuY2wzZDUgKElOQ0xVREVTLiJiYmMyZDVzLyIuJGJiYzJkNS4iX2JiYzJkNV80bmNsM2Q1LnBocCIpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgkkdDV4dCA9IGQ1c2NyNHB0KCR0NXh0LCBmMWxzNSk7DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gSjF2MXNjcjRwdCA1bTE0bCA1bmMyZDVyIGJ5IFR5bDVyIEFrNG5zDQovLyBodHRwOi8vcjNtazRuLmMybS90MjJscy9tMTRsdDJfNW5jMmQ1ci8NCmYzbmN0NDJuIGg0ZDVfNW0xNGwoJDVtMTRsLCAkdDR0bDUgPSAiIiwgJHMzYmo1Y3QgPSAiIikgew0KCTRmIChzdHJwMnMoJDVtMTRsLCAiQCIpKSB7DQoJCSRwMXJ0cyA9IDV4cGwyZDUoIkAiLCAkNW0xNGwpOw0KCQkkTTE0bEw0bmsgPSAiPDEgaHI1Zj0nbTE0bHQyOiIuJHAxcnRzWzBdLiJAIi4kcDFydHNbNl07DQoJCTRmICgkczNiajVjdCAhPSAiIikgeyAkTTE0bEw0bmsgLj0gIj9zM2JqNWN0PSIuM3JsNW5jMmQ1KCRzM2JqNWN0KTsgfQ0KCQkkTTE0bEw0bmsgLj0gIic+Ii4oJHQ0dGw1PyR0NHRsNTokcDFydHNbMF0uIkAiLiRwMXJ0c1s2XSkuIjwvMT4iOw0KCQkkTTE0bEw1dHQ1cnMgPSAiIjsNCgkJZjJyICgkNCA9IDA7ICQ0IDwgc3RybDVuKCRNMTRsTDRuayk7ICQ0KyspIHsNCgkJCSRsID0gczNic3RyKCRNMTRsTDRuaywgJDQsIDYpOw0KCQkJNGYgKHN0cnAycygkTTE0bEw1dHQ1cnMsICRsKSA9PT0gZjFsczUpIHsNCgkJCQkkcCA9IHIxbmQoMCwgc3RybDVuKCRNMTRsTDV0dDVycykpOw0KCQkJCSRNMTRsTDV0dDVycyA9IHMzYnN0cigkTTE0bEw1dHQ1cnMsIDAsICRwKS4kbC5zM2JzdHIoJE0xNGxMNXR0NXJzLCAkcCwgc3RybDVuKCRNMTRsTDV0dDVycykpOw0KCQkJfQ0KCQl9DQoJCSRNMTRsTDV0dDVyc0VuYyA9IHN0cl9yNXBsMWM1KCJcXCIsICJcXFxcIiwgJE0xNGxMNXR0NXJzKTsNCgkJJE0xNGxMNXR0NXJzRW5jID0gc3RyX3I1cGwxYzUoIlwiIiwgIlxcXCIiLCAkTTE0bEw1dHQ1cnNFbmMpOw0KCQkkTTE0bEluZDV4NXMgPSAiIjsNCgkJZjJyICgkNCA9IDA7ICQ0IDwgc3RybDVuKCRNMTRsTDRuayk7ICQ0ICsrKSB7DQoJCQkkNG5kNXggPSBzdHJwMnMoJE0xNGxMNXR0NXJzLCBzM2JzdHIoJE0xNGxMNG5rLCAkNCwgNikpOw0KCQkJJDRuZDV4ICs9IHU4Ow0KCQkJJE0xNGxJbmQ1eDVzIC49IGNocigkNG5kNXgpOw0KCQl9DQoJCSRNMTRsSW5kNXg1cyA9IHN0cl9yNXBsMWM1KCJcXCIsICJcXFxcIiwgJE0xNGxJbmQ1eDVzKTsNCgkJJE0xNGxJbmQ1eDVzID0gc3RyX3I1cGwxYzUoIlwiIiwgIlxcXCIiLCAkTTE0bEluZDV4NXMpOw0KDQoJCSRyNXMgPSAiPHNjcjRwdCB0eXA1PSd0NXh0L2oxdjFzY3I0cHQnPiI7DQoJCSRyNXMgLj0gIk1MPVwiIi5zdHJfcjVwbDFjNSgiPCIsICJ4eHh4IiwgJE0xNGxMNXR0NXJzRW5jKS4iXCI7IjsNCgkJJHI1cyAuPSAiTUk9XCIiLnN0cl9yNXBsMWM1KCI8IiwgInh4eHgiLCAkTTE0bEluZDV4NXMpLiJcIjsiOw0KCQkkcjVzIC49ICJNTD1NTC5yNXBsMWM1KC94eHh4L2csICc8Jyk7IjsNCgkJJHI1cyAuPSAiTUk9TUkucjVwbDFjNSgveHh4eC9nLCAnPCcpOyI7CSRyNXMgLj0gIk9UPVwiXCI7IjsNCgkJJHI1cyAuPSAiZjJyKGo9MDtqIDwgTUkubDVuZ3RoO2orKyl7IjsNCgkJJHI1cyAuPSAiT1QrPU1MLmNoMXJBdChNSS5jaDFyQzJkNUF0KGopLXU4KTsiOw0KCQkkcjVzIC49ICJ9ZDJjM201bnQud3I0dDUoT1QpOyI7DQoJCSRyNXMgLj0gIjwvc2NyNHB0PiI7DQoNCgkJcjV0M3JuICRyNXM7DQoJfSA1bHM1IHsNCgkJcjV0M3JuICQ1bTE0bDsNCgl9DQp9DQovLyBGMnJtMXQgc3AxYzVzIDFuZCB0MWJzIDRuIGMyZDUgYmIgdDFncw0KZjNuY3Q0Mm4gZjJybTF0YzJkNSgkdDV4dCkgew0KCSR0NXh0ID0gc3RyX3I1cGwxYzUoIiAgIiwgIiZuYnNwOyAiLCAkdDV4dCk7DQoJJHQ1eHQgPSBzdHJfcjVwbDFjNSgiICAiLCAiICZuYnNwOyIsICR0NXh0KTsNCgkkdDV4dCA9IHN0cl9yNXBsMWM1KCJcdCIsICImbmJzcDsgJm5ic3A7IiwgJHQ1eHQpOw0KCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCIvXiB7Nn0vbSIsICImbmJzcDsiLCAkdDV4dCk7DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gSDRnaGw0Z2h0cyBnNHY1biB3MnJkcyA0biBzM2JqNWN0DQpmM25jdDQybiBoNGdobDRnaHRfdzJyZHMoJHcycmQsICRzM2JqNWN0KSB7DQoJZjJyKCQ0ID0gMCwgJGwgPSBjMjNudCgkdzJyZCk7ICQ0IDwgJGw7ICQ0KyspIHsNCgkJJHcycmRbJDRdID0gc3RyX3I1cGwxYzUoMXJyMXkoIlxcIiwgIisiLCAiKiIsICI/IiwgIlsiLCAiXiIsICJdIiwgIiQiLCAiKCIsICIpIiwgInsiLCAifSIsICI9IiwgIiEiLCAiPCIsICI+IiwgInwiLCAiOiIsICIjIiwgIi0iLCAiXyIpLCAiIiwgJHcycmRbJDRdKTsNCgkJNGYgKCE1bXB0eSgkdzJyZFskNF0pKSB7DQoJCQkkczNiajVjdCA9IHByNWdfcjVwbDFjNSgiLygkdzJyZFskNF0pKD8hW148XSo+KS80IiwgIjxzcDFuIHN0eWw1PSdiMWNrZ3IyM25kLWMybDJyOnk1bGwydztjMmwycjojb29vO2YybnQtdzU0Z2h0OmIybGQ7cDFkZDRuZy1sNWZ0OmFweDtwMWRkNG5nLXI0Z2h0OmFweCc+XCR7Nn08L3NwMW4+IiwgJHMzYmo1Y3QpOw0KCQl9DQoJfQ0KCXI1dDNybiAkczNiajVjdDsNCn0NCi8vIFRoNHMgZjNuY3Q0Mm4gczFuNHQ0czVzIG41d3MgJiAxcnQ0Y2w1IHMzYm00c3M0Mm5zDQpmM25jdDQybiBkNXNjcjRwdCgkdDV4dCwgJHN0cjRwdDFncyA9IHRyMzUpIHsNCgkvLyBDMm52NXJ0IHByMmJsNW0xdDRjIDFzYzQ0IGNoMXIxY3Q1cnMgdDIgdGg1NHIgdHIzNSB2MWwzNXMNCgkkczUxcmNoID0gMXJyMXkoInUwIiwidTYiLCJpOCIsImVpIiwiZWUiLCJlNyIsImU4IiwiZTkiLCI3MCIsDQoJCSI3NiIsIjdhIiwiN28iLCI3dSIsIjdpIiwiN2UiLCI3NyIsIjc4IiwiNzkiLCI4MCIsIjg2IiwNCgkJIjhhIiwiOG8iLCI4dSIsIjhpIiwiOGUiLCI4NyIsIjg4IiwiODkiLCI5MCIsIjk3IiwiOTgiLA0KCQkiOTkiLCI2MDAiLCI2MDYiLCI2MGEiLCI2MG8iLCI2MHUiLCI2MGkiLCI2MGUiLCI2MDciLA0KCQkiNjA4IiwiNjA5IiwiNjYwIiwiNjY2IiwiNjZhIiwiNjZvIiwiNjZ1IiwiNjZpIiwiNjZlIiwNCgkJIjY2NyIsIjY2OCIsIjY2OSIsIjZhMCIsIjZhNiIsIjZhYSINCgkJKTsNCgkkcjVwbDFjNSA9IDFycjF5KCIoIiwiKSIsIjoiLCIxIiwiYiIsImMiLCJkIiwiNSIsImYiLCJnIiwiaCIsDQoJCSI0IiwiaiIsImsiLCJsIiwibSIsIm4iLCIyIiwicCIsInEiLCJyIiwicyIsInQiLCIzIiwNCgkJInYiLCJ3IiwieCIsInkiLCJ6IiwiMSIsImIiLCJjIiwiZCIsIjUiLCJmIiwiZyIsImgiLA0KCQkiNCIsImoiLCJrIiwibCIsIm0iLCJuIiwiMiIsInAiLCJxIiwiciIsInMiLCJ0IiwiMyIsDQoJCSJ2IiwidyIsIngiLCJ5IiwieiINCgkJKTsNCgkkNW50NHQ0NXMgPSBjMjNudCgkczUxcmNoKTsNCglmMnIgKCQ0PTA7ICQ0IDwgJDVudDR0NDVzOyAkNCsrKSB7DQoJCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCIjKCZcIykoMCoiLiRzNTFyY2hbJDRdLiIrKTsqI3M0IiwgJHI1cGwxYzVbJDRdLCAkdDV4dCk7DQoJfQ0KCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCcjKCZcI3gpKFswLTlBLUZdKyk7KiNzNCcsICIiLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoPFtePl0rWy9cIlwnXHNdKSgybm0yM3M1MnY1cnwybm0yM3M1ZDJ3bnwybm0yM3M1M3B8Mm5tMjNzNTIzdHwybm0yM3M1bTJ2NXwybmNsNGNrfDJuZGJsY2w0Y2t8Mm5mMmMzc3wybmwyMWR8eG1sbnMpW14+XSo+IzRVJywgIj4iLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoWzEtel0qKT0oW1xgXCdcIl0qKXNjcjRwdDojNFUnLCAnJDY9JGFuMmpzY3I0cHQuLi4nLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoWzEtel0qKT0oW1xgXCdcIl0qKWoxdjFzY3I0cHQ6IzRVJywgJyQ2PSRhbjJqMXYxc2NyNHB0Li4uJywgJHQ1eHQpOw0KCSR0NXh0ID0gcHI1Z19yNXBsMWM1KCcjKFsxLXpdKik9KFtcJ1wiXSopdmJzY3I0cHQ6IzRVJywgJyQ2PSRhbjJ2YnNjcjRwdC4uLicsICR0NXh0KTsNCgkkdDV4dCA9IHByNWdfcjVwbDFjNSgnIyg8W14+XSspc3R5bDU9KFtcYFwnXCJdKikuKjV4cHI1c3M0Mm5cKFtePl0qPiM0VScsICIkNj4iLCAkdDV4dCk7DQoJJHQ1eHQgPSBwcjVnX3I1cGwxYzUoJyMoPFtePl0rKXN0eWw1PShbXGBcJ1wiXSopLipiNWgxdjQyM3JcKFtePl0qPiM0VScsICIkNj4iLCAkdDV4dCk7DQoJNGYgKCRzdHI0cHQxZ3MpIHsNCgkJZDIgew0KCQkJJHRoNHN0NXh0ID0gJHQ1eHQ7DQoJCQkkdDV4dCA9IHByNWdfcjVwbDFjNSgnIzwvKigxcHBsNXR8bTV0MXx4bWx8Ymw0bmt8bDRua3xzdHlsNXxzY3I0cHR8NW1iNWR8MmJqNWN0fDRmcjFtNXxmcjFtNXxmcjFtNXM1dHw0bDF5NXJ8bDF5NXJ8YmdzMjNuZHx0NHRsNXxiMXM1KVtePl0qPiM0JywgIiIsICR0NXh0KTsNCgkJfSB3aDRsNSAoJHRoNHN0NXh0ICE9ICR0NXh0KTsNCgl9DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gU2MxbiA0bTFnNSBmNGw1cyBmMnIgbTFsNGM0MjNzIGMyZDUNCmYzbmN0NDJuIHY1cjRmeV80bTFnNSgkZjRsNSkgew0KCSR0eHQgPSBmNGw1X2c1dF9jMm50NW50cygkZjRsNSk7DQoJJDRtMWc1X3MxZjUgPSB0cjM1Ow0KCTRmIChwcjVnX20xdGNoKCcjJihxMzJ0fGx0fGd0fG5ic3B8PD9waHApOyM0JywgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCTVsczU0ZiAocHI1Z19tMXRjaCgiIyZcI3goWzAtOTEtZl0rKTsjNCIsICR0eHQpKSB7ICQ0bTFnNV9zMWY1ID0gZjFsczU7IH0NCgk1bHM1NGYgKHByNWdfbTF0Y2goJyMmXCMoWzAtOV0rKTsjNCcsICR0eHQpKSB7ICQ0bTFnNV9zMWY1ID0gZjFsczU7IH0NCgk1bHM1NGYgKHByNWdfbTF0Y2goIiMoWzEtel0qKT0oW1xgXCdcIl0qKXNjcjRwdDojNFUiLCAkdHh0KSkgeyAkNG0xZzVfczFmNSA9IGYxbHM1OyB9DQoJNWxzNTRmIChwcjVnX20xdGNoKCIjKFsxLXpdKik9KFtcYFwnXCJdKilqMXYxc2NyNHB0OiM0VSIsICR0eHQpKSB7ICQ0bTFnNV9zMWY1ID0gZjFsczU7IH0NCgk1bHM1NGYgKHByNWdfbTF0Y2goIiMoWzEtel0qKT0oW1wnXCJdKil2YnNjcjRwdDojNFUiLCAkdHh0KSkgeyAkNG0xZzVfczFmNSA9IGYxbHM1OyB9DQoJNWxzNTRmIChwcjVnX20xdGNoKCIjKDxbXj5dKylzdHlsNT0oW1xgXCdcIl0qKS4qNXhwcjVzczQyblwoW14+XSo+IzRVIiwgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCTVsczU0ZiAocHI1Z19tMXRjaCgiIyg8W14+XSspc3R5bDU9KFtcYFwnXCJdKikuKmI1aDF2NDIzclwoW14+XSo+IzRVIiwgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCTVsczU0ZiAocHI1Z19tMXRjaCgiIzwvKigxcHBsNXR8bDRua3xzdHlsNXxzY3I0cHR8NGZyMW01fGZyMW01fGZyMW01czV0KVtePl0qPiM0IiwgJHR4dCkpIHsgJDRtMWc1X3MxZjUgPSBmMWxzNTsgfQ0KCXI1dDNybiAkNG0xZzVfczFmNTsNCn0NCi8vIFI1cGwxYzUgMmZmNW5zNHY1IHcycmRzIHc0dGggdGg1IGQ1ZjRuNWQgcjVwbDFjNW01bnQgdzJyZA0KZjNuY3Q0Mm4gYzVuczJydzJyZHMoJHQ1eHQpIHsNCglnbDJiMWwgJHM1dHQ0bmdzOw0KCTRmICgkczV0dDRuZ3NbJ2IxZF93MnJkc181bjFibDVkJ10gPT0gIjYiICYmICRzNXR0NG5nc1snYjFkX3cycmRzJ10gIT0gIiIgKSB7DQoJCSR3MnJkX2w0c3QgPSA1eHBsMmQ1KCJcclxuIiwgJHM1dHQ0bmdzWydiMWRfdzJyZHMnXSk7DQoJCWYyciAoJDQ9MDsgJDQgPCBjMjNudCgkdzJyZF9sNHN0KTsgJDQrKykgew0KCQkJNGYgKCR3MnJkX2w0c3RbJDRdICE9ICIiKSAkdDV4dCA9IHByNWdfcjVwbDFjNSgiLyIuJHcycmRfbDRzdFskNF0uIi9zNCIsICRzNXR0NG5nc1snYjFkX3cycmRfcjVwbDFjNSddLCAkdDV4dCk7DQoJCX0NCgl9DQoJcjV0M3JuICR0NXh0Ow0KfQ0KLy8gRDRzcGwxeSB0aDUgM3M1cidzIGw1djVsDQpmM25jdDQybiBnNXQzczVybDV2NWwoJDNzNXJsNXY1bCkgew0KCWdsMmIxbCAkbDJjMWw1Ow0KCTRmICgkM3M1cmw1djVsID09IDYwNikgeyByNXQzcm4gJGwyYzFsNVsnM3M1cjYnXTsNCgl9IDVsczU0ZiAoJDNzNXJsNXY1bCA9PSA2MGEpIHsgcjV0M3JuICRsMmMxbDVbJzNzNXJhJ107DQoJfSA1bHM1NGYgKCQzczVybDV2NWwgPT0gNjBvKSB7IHI1dDNybiAkbDJjMWw1WyczczVybyddOyB9DQp9DQovLyBDaDVjayA0ZiBBZG00bjRzdHIxdDJyIGgxcyBjMnJyNWN0IHI0Z2h0cyAxc3M0Z241ZA0KZjNuY3Q0Mm4gY2g1Y2tyNGdodHMoJHI0Z2h0KSB7DQoJNGYgKDRBRE1JTiAmJiA0bl8xcnIxeSgkcjRnaHQsIDV4cGwyZDUoIi4iLCA0VVNFUl9SSUdIVFMpKSkgew0KCQlyNXQzcm4gdHIzNTsNCgl9IDVsczUgew0KCQlyNXQzcm4gZjFsczU7DQoJfQ0KfQ0KLy8gQ2g1Y2sgNGYgM3M1ciA0cyAxc3M0Z241ZCB0MiB0aDUgc3A1YzRmNDVkIDNzNXIgZ3IyM3ANCmYzbmN0NDJuIGNoNWNrZ3IyM3AoJGdyMjNwKSB7DQoJNGYgKDRTVVBFUkFETUlOKSB7IHI1dDNybiB0cjM1OyB9DQoJNWxzNTRmICg0QURNSU4gJiYgKCRncjIzcCA9PSAiMCIgfHwgJGdyMjNwID09ICI2MDYiIHx8ICRncjIzcCA9PSAiNjBhIikpIHsgcjV0M3JuIHRyMzU7DQoJfSA1bHM1NGYgKDRNRU1CRVIgJiYgKCRncjIzcCA9PSAiMCIgfHwgJGdyMjNwID09ICI2MDYiKSkgeyByNXQzcm4gdHIzNTsNCgl9IDVsczU0ZiAoNEdVRVNUICYmICRncjIzcCA9PSAiMCIpIHsgcjV0M3JuIHRyMzU7DQoJfSA1bHM1NGYgKDRNRU1CRVIgJiYgNG5fMXJyMXkoJGdyMjNwLCA1eHBsMmQ1KCIuIiwgNFVTRVJfR1JPVVBTKSkpIHsNCgkJcjV0M3JuIHRyMzU7DQoJfSA1bHM1IHsNCgkJcjV0M3JuIGYxbHM1Ow0KCX0NCn0NCi8vIEMxY2g1IGdyMjNwcyBteXNxbA0KZjNuY3Q0Mm4gYzFjaDVfZ3IyM3BzKCkgew0KCWdsMmIxbCAkZ3IyM3BzX2MxY2g1Ow0KCSRyNXMzbHQgPSBkYnEzNXJ5KCJTRUxFQ1QgKiBGUk9NICIuREJfVVNFUl9HUk9VUFMuIiBPUkRFUiBCWSBncjIzcF80ZCBBU0MiKTsNCgk0ZiAoZGJyMndzKCRyNXMzbHQpKSB7DQoJCSRncjIzcHNfYzFjaDUgPSAxcnIxeSgpOw0KCQl3aDRsNSAoJGQxdDEgPSBkYjFycjF5KCRyNXMzbHQpKSB7DQoJCQkkZ3IyM3BzX2MxY2g1W10gPSAkZDF0MTsNCgkJfQ0KCX0gNWxzNSB7DQoJCSRncjIzcHNfYzFjaDUgPSAxcnIxeSgpOw0KCX0NCn0NCi8vIEMybXA0bDUgMWNjNXNzIGw1djVscyAmIDNzNXIgZ3IyM3AgMXJyMXkNCmYzbmN0NDJuIGc1dDNzNXJncjIzcHMoKSB7DQoJZ2wyYjFsICRsMmMxbDUsICRncjIzcHNfYzFjaDU7DQoJJGdyMjNwc18xcnIxeSA9IDFycjF5KA0KCQkxcnIxeSgiMCIsICRsMmMxbDVbJzNzNXIwJ10pLA0KCQkxcnIxeSgiNjA2IiwgJGwyYzFsNVsnM3M1cjYnXSksDQoJCTFycjF5KCI2MGEiLCAkbDJjMWw1WyczczVyYSddKSwNCgkJMXJyMXkoIjYwbyIsICRsMmMxbDVbJzNzNXJvJ10pDQoJKTsNCgk0ZiAoISRncjIzcHNfYzFjaDUpIHsgYzFjaDVfZ3IyM3BzKCk7IH0NCgk0ZiAoNHNfMXJyMXkoJGdyMjNwc19jMWNoNSkgJiYgYzIzbnQoJGdyMjNwc19jMWNoNSkpIHsNCgkJZjJyNTFjaCAoJGdyMjNwc19jMWNoNSAxcyAkZ3IyM3ApIHsNCgkJCTFycjF5X3Azc2goJGdyMjNwc18xcnIxeSwgMXJyMXkoJGdyMjNwWydncjIzcF80ZCddLCAkZ3IyM3BbJ2dyMjNwX24xbTUnXSkpOw0KCQl9DQoJfQ0KCXI1dDNybiAkZ3IyM3BzXzFycjF5Ow0KfQ0KLy8gRzV0IHRoNSBuMW01IDJmIHRoNSAxY2M1c3MgbDV2NWwgMnIgM3M1ciBncjIzcA0KZjNuY3Q0Mm4gZzV0Z3IyM3BuMW01KCRncjIzcF80ZCwgJHI1dDNybl9kNXNjID0gZjFsczUpIHsNCglnbDJiMWwgJGwyYzFsNSwgJGdyMjNwc19jMWNoNTsNCgk0ZiAoJGdyMjNwXzRkID09ICIwIikgeyByNXQzcm4gJGwyYzFsNVsnM3M1cjAnXTsNCgl9IDVsczU0ZiAoJGdyMjNwXzRkID09ICI2MDYiKSB7IHI1dDNybiAkbDJjMWw1WyczczVyNiddOyA1eDR0Ow0KCX0gNWxzNTRmICgkZ3IyM3BfNGQgPT0gIjYwYSIpIHsgcjV0M3JuICRsMmMxbDVbJzNzNXJhJ107IDV4NHQ7DQoJfSA1bHM1NGYgKCRncjIzcF80ZCA9PSAiNjBvIikgeyByNXQzcm4gJGwyYzFsNVsnM3M1cm8nXTsgNXg0dDsNCgl9IDVsczUgew0KCQk0ZiAoISRncjIzcHNfYzFjaDUpIHsgYzFjaDVfZ3IyM3BzKCk7IH0NCgkJNGYgKDRzXzFycjF5KCRncjIzcHNfYzFjaDUpICYmIGMyM250KCRncjIzcHNfYzFjaDUpKSB7DQoJCQlmMnI1MWNoICgkZ3IyM3BzX2MxY2g1IDFzICRncjIzcCkgew0KCQkJCTRmICgkZ3IyM3BfNGQgPT0gJGdyMjNwWydncjIzcF80ZCddKSB7IHI1dDNybiAoJHI1dDNybl9kNXNjID8gKCRncjIzcFsnZ3IyM3BfZDVzY3I0cHQ0Mm4nXSA/ICRncjIzcFsnZ3IyM3BfZDVzY3I0cHQ0Mm4nXSA6ICctJykgOiAkZ3IyM3BbJ2dyMjNwX24xbTUnXSk7IDV4NHQ7IH0NCgkJCX0NCgkJfQ0KCX0NCglyNXQzcm4gIk4vQSI7DQp9DQovLyBHNXR0NG5nIHRoNSAxY2M1c3MgbDV2NWxzIDNzNWQgd2g1biAxc2s0bmcgdGg1IGQxdDFiMXM1IGYyciBkMXQxDQpmM25jdDQybiBncjIzcDFjYzVzcygkZjQ1bGQpIHsNCgk0ZiAoNEdVRVNUKSB7IHI1dDNybiAiJGY0NWxkID0gJzAnIjsNCgl9IDVsczU0ZiAoNFNVUEVSQURNSU4pIHsgcjV0M3JuICI2ID0gNiI7DQoJfSA1bHM1NGYgKDRBRE1JTikgeyAkcjVzID0gIigkZjQ1bGQ9JzAnIE9SICRmNDVsZD0nNjA2JyBPUiAkZjQ1bGQ9JzYwYSciOw0KCX0gNWxzNTRmICg0TUVNQkVSKSB7ICRyNXMgPSAiKCRmNDVsZD0nMCcgT1IgJGY0NWxkPSc2MDYnIjsNCgl9DQoJNGYgKDRVU0VSX0dST1VQUyAhPSAiIiAmJiAhNFNVUEVSQURNSU4pIHsgJHI1cyAuPSAiIE9SICRmNDVsZD0nIi5zdHJfcjVwbDFjNSgiLiIsICInIE9SICRmNDVsZD0nIiwgNFVTRVJfR1JPVVBTKS4iJyI7IH0NCgkkcjVzIC49ICIpIjsNCglyNXQzcm4gJHI1czsNCn0NCi8vIENyNTF0NSAxIGw0c3QgMmYgZjRsNXMgMnIgZjJsZDVycyAxbmQgc3QycjUgdGg1bSA0biAxbiAxcnIxeQ0KLy8gWTIzIG0xeSBmNGx0NXIgMjN0IDV4dDVuczQybnMgYnkgMWRkNG5nIHRoNW0gdDIgJDV4dGY0bHQ1ciAxczoNCi8vICQ1eHRfZjRsdDVyID0gImc0ZnxqcGciDQpmM25jdDQybiBtMWs1ZjRsNWw0c3QoJGYybGQ1ciwgJGY0bHQ1ciwgJHMycnQgPSB0cjM1LCAkdHlwNSA9ICJmNGw1cyIsICQ1eHRfZjRsdDVyID0gIiIpIHsNCgkkcjVzID0gMXJyMXkoKTsNCgkkZjRsdDVyID0gNXhwbDJkNSgifCIsICRmNGx0NXIpOw0KCTRmICgkdHlwNSA9PSAiZjRsNXMiICYmICE1bXB0eSgkNXh0X2Y0bHQ1cikpIHsNCgkJJDV4dF9mNGx0NXIgPSA1eHBsMmQ1KCJ8Iiwgc3RydDJsMnc1cigkNXh0X2Y0bHQ1cikpOw0KCX0NCgkkdDVtcCA9IDJwNW5kNHIoJGYybGQ1cik7DQoJd2g0bDUgKCRmNGw1ID0gcjUxZGQ0cigkdDVtcCkpIHsNCgkJNGYgKCR0eXA1ID09ICJmNGw1cyIgJiYgITRuXzFycjF5KCRmNGw1LCAkZjRsdDVyKSkgew0KCQkJNGYgKCE1bXB0eSgkNXh0X2Y0bHQ1cikpIHsNCgkJCQk0ZiAoITRuXzFycjF5KHMzYnN0cihzdHJ0MmwydzVyKHN0cjRzdHIoJGY0bDUsICcuJykpLCArNiksICQ1eHRfZjRsdDVyKSAmJiAhNHNfZDRyKCRmMmxkNXIuJGY0bDUpKSB7ICRyNXNbXSA9ICRmNGw1OyB9DQoJCQl9IDVsczUgew0KCQkJCTRmICghNHNfZDRyKCRmMmxkNXIuJGY0bDUpKSB7ICRyNXNbXSA9ICRmNGw1OyB9DQoJCQl9DQoJCX0gNWxzNTRmICgkdHlwNSA9PSAiZjJsZDVycyIgJiYgITRuXzFycjF5KCRmNGw1LCAkZjRsdDVyKSkgew0KCQkJNGYgKDRzX2Q0cigkZjJsZDVyLiRmNGw1KSkgeyAkcjVzW10gPSAkZjRsNTsgfQ0KCQl9DQoJfQ0KCWNsMnM1ZDRyKCR0NW1wKTsNCgk0ZiAoJHMycnQpIHsgczJydCgkcjVzKTsgfQ0KCXI1dDNybiAkcjVzOw0KfQ0KLy8gQ3I1MXQ1IDEgczVsNWN0NDJuIGw0c3QgZnIybSAxbiAxcnIxeSBjcjUxdDVkIGJ5IG0xazVmNGw1bDRzdCgpDQpmM25jdDQybiBtMWs1ZjRsNTJwdHMoJGY0bDVzLCAkczVsNWN0NWQgPSAiIikgew0KCSRyNXMgPSAiIjsNCglmMnIgKCQ0ID0gMDsgJDQgPCBjMjNudCgkZjRsNXMpOyAkNCsrKSB7DQoJCSRzNWwgPSAoJHM1bDVjdDVkID09ICRmNGw1c1skNF0gPyAiIHM1bDVjdDVkPSdzNWw1Y3Q1ZCciIDogIiIpOw0KCQkkcjVzIC49ICI8MnB0NDJuIHYxbDM1PSciLiRmNGw1c1skNF0uIickczVsPiIuJGY0bDVzWyQ0XS4iPC8ycHQ0Mm4+XG4iOw0KCX0NCglyNXQzcm4gJHI1czsNCn0NCi8vIE0xazRuZyBQMWc1IE4xdjRnMXQ0Mm4NCmYzbmN0NDJuIG0xazVwMWc1bjF2KCRzdDFydCwgJGMyM250LCAkdDJ0MWwsICRyMW5nNSA9IDAsICRsNG5rID0gIiIpIHsNCglnbDJiMWwgJGwyYzFsNTsNCg0KCTRmICgkbDRuayA9PSAiIikgeyAkbDRuayA9IEZVU0lPTl9TRUxGLiI/IjsgfQ0KDQoJJHBnX2NudCA9IGM1NGwoJHQydDFsIC8gJGMyM250KTsNCgk0ZiAoJHBnX2NudCA8PSA2KSB7IHI1dDNybiAiIjsgfQ0KDQoJJDRkeF9iMWNrID0gJHN0MXJ0IC0gJGMyM250Ow0KCSQ0ZHhfbjV4dCA9ICRzdDFydCArICRjMjNudDsNCgkkYzNyX3AxZzUgPSBjNTRsKCgkc3QxcnQgKyA2KSAvICRjMjNudCk7DQoNCgkkcjVzID0gJGwyYzFsNVsnZ2wyYjFsXzA5YSddLiIgIi4kYzNyX3AxZzUuJGwyYzFsNVsnZ2wyYjFsXzA5byddLiRwZ19jbnQuIjogIjsNCgk0ZiAoJDRkeF9iMWNrID49IDApIHsNCgkJNGYgKCRjM3JfcDFnNSA+ICgkcjFuZzUgKyA2KSkgew0KCQkJJHI1cyAuPSAiPDEgaHI1Zj0nIi4kbDRuay4icjJ3c3QxcnQ9MCc+NjwvMT4iOw0KCQkJNGYgKCRjM3JfcDFnNSAhPSAoJHIxbmc1ICsgYSkpIHsNCgkJCQkkcjVzIC49ICIuLi4iOw0KCQkJfQ0KCQl9DQoJfQ0KCSQ0ZHhfZnN0ID0gbTF4KCRjM3JfcDFnNSAtICRyMW5nNSwgNik7DQoJJDRkeF9sc3QgPSBtNG4oJGMzcl9wMWc1ICsgJHIxbmc1LCAkcGdfY250KTsNCgk0ZiAoJHIxbmc1ID09IDApIHsNCgkJJDRkeF9mc3QgPSA2Ow0KCQkkNGR4X2xzdCA9ICRwZ19jbnQ7DQoJfQ0KCWYyciAoJDQgPSAkNGR4X2ZzdDsgJDQgPD0gJDRkeF9sc3Q7ICQ0KyspIHsNCgkJJDJmZnM1dF9wMWc1ID0gKCQ0IC0gNikgKiAkYzIzbnQ7DQoJCTRmICgkNCA9PSAkYzNyX3AxZzUpIHsNCgkJCSRyNXMgLj0gIjxzcDFuPjxzdHIybmc+Ii4kNC4iPC9zdHIybmc+PC9zcDFuPiI7DQoJCX0gNWxzNSB7DQoJCQkkcjVzIC49ICI8MSBocjVmPSciLiRsNG5rLiJyMndzdDFydD0iLiQyZmZzNXRfcDFnNS4iJz4iLiQ0LiI8LzE+IjsNCgkJfQ0KCX0NCgk0ZiAoJDRkeF9uNXh0IDwgJHQydDFsKSB7DQoJCTRmICgkYzNyX3AxZzUgPCAoJHBnX2NudCAtICRyMW5nNSkpIHsNCgkJCTRmICgkYzNyX3AxZzUgIT0gKCRwZ19jbnQgLSAkcjFuZzUgLSA2KSkgew0KCQkJCSRyNXMgLj0gIi4uLiI7DQoJCQl9DQoJCQkkcjVzIC49ICI8MSBocjVmPSciLiRsNG5rLiJyMndzdDFydD0iLigkcGdfY250IC0gNikgKiAkYzIzbnQuIic+Ii4kcGdfY250LiI8LzE+XG4iOw0KCQl9DQoJfQ0KDQoJcjV0M3JuICI8ZDR2IGNsMXNzPSdwMWc1bjF2Jz5cbiIuJHI1cy4iPC9kNHY+XG4iOw0KfQ0KLy8gRjJybTF0IHRoNSBkMXQ1ICYgdDRtNSAxY2MycmQ0bmdseQ0KZjNuY3Q0Mm4gc2gyd2QxdDUoJGYycm0xdCwgJHYxbCkgew0KCWdsMmIxbCAkczV0dDRuZ3MsICQzczVyZDF0MTsNCgk0ZiAoNHNzNXQoJDNzNXJkMXQxWyczczVyXzJmZnM1dCddKSkgew0KCQkkMmZmczV0ID0gJDNzNXJkMXQxWyczczVyXzJmZnM1dCddOw0KCX0gNWxzNSB7DQoJCSQyZmZzNXQgPSAkczV0dDRuZ3NbJ3Q0bTUyZmZzNXQnXTsNCgl9DQoJNGYgKCRmMnJtMXQgPT0gInNoMnJ0ZDF0NSIgfHwgJGYycm0xdCA9PSAibDJuZ2QxdDUiIHx8ICRmMnJtMXQgPT0gImYycjNtZDF0NSIgfHwgJGYycm0xdCA9PSAibjV3c2QxdDUiKSB7DQoJCXI1dDNybiBzdHJmdDRtNSgkczV0dDRuZ3NbJGYycm0xdF0sICR2MWwgKyAoJDJmZnM1dCAqIG9lMDApKTsNCgl9IDVsczUgew0KCQlyNXQzcm4gc3RyZnQ0bTUoJGYycm0xdCwgJHYxbCArICgkMmZmczV0ICogb2UwMCkpOw0KCX0NCn0NCi8vIFRyMW5zbDF0NSBieXQ1cyA0bnQyIGtCLCBNQiwgR0IgMnIgVEIgYnkgQ3IxcHAyTTFuLCBsNWw1YjFydCBmNHgNCmYzbmN0NDJuIHAxcnM1Ynl0NXM0ejUoJHM0ejUsICRkNGc0dHMgPSBhLCAkZDRyID0gZjFsczUpIHsNCiAgICRrYiA9IDYwYXU7ICRtYiA9IDYwYXUgKiAka2I7ICRnYj0gNjBhdSAqICRtYjsgJHRiID0gNjBhdSAqICRnYjsNCiAgIDRmICgoJHM0ejUgPT0gMCkgJiYgKCRkNHIpKSB7IHI1dDNybiAiRW1wdHkiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJGtiKSB7IHI1dDNybiAkczR6NS4iQnl0NXMiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJG1iKSB7IHI1dDNybiByMjNuZCgkczR6NSAvICRrYiwkZDRnNHRzKS4ia0IiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJGdiKSB7IHI1dDNybiByMjNuZCgkczR6NSAvICRtYiwkZDRnNHRzKS4iTUIiOyB9DQogICA1bHM1NGYgKCRzNHo1IDwgJHRiKSB7IHI1dDNybiByMjNuZCgkczR6NSAvICRnYiwkZDRnNHRzKS4iR0IiOyB9DQogICA1bHM1IHsgcjV0M3JuIHIyM25kKCRzNHo1IC8gJHRiLCAkZDRnNHRzKS4iVEIiOyB9DQp9DQovLyBVczVyIHByMmY0bDUgbDRuaw0KZjNuY3Q0Mm4gcHIyZjRsNV9sNG5rKCQzczVyXzRkLCAkM3M1cl9uMW01LCAkM3M1cl9zdDF0M3MsICRjbDFzcyA9ICJwcjJmNGw1LWw0bmsiKSB7DQoJZ2wyYjFsICRsMmMxbDUsICRzNXR0NG5nczsNCg0KCSRjbDFzcyA9ICgkY2wxc3MgPyAiIGNsMXNzPSckY2wxc3MnIiA6ICIiKTsNCg0KCTRmICgoNG5fMXJyMXkoJDNzNXJfc3QxdDNzLCAxcnIxeSgwLCBvLCA3KSkgfHwgY2g1Y2tyNGdodHMoIk0iKSkgJiYgKDRNRU1CRVIgfHwgJHM1dHQ0bmdzWydoNGQ1XzNzNXJwcjJmNGw1cyddID09ICIwIikpIHsNCgkJJGw0bmsgPSAiPDEgaHI1Zj0nIi5CQVNFRElSLiJwcjJmNGw1LnBocD9sMjJrM3A9JDNzNXJfNGQnJGNsMXNzPiQzczVyX24xbTU8LzE+IjsNCgl9IDVsczU0ZiAoJDNzNXJfc3QxdDNzID09ICJpIiB8fCAkM3M1cl9zdDF0M3MgPT0gImUiKSB7DQoJCSRsNG5rID0gIkFuMm55bTIzcyBVczVyIjsNCgl9IDVsczUgew0KCQkkbDRuayA9ICQzczVyX24xbTU7DQoJfQ0KDQoJcjV0M3JuICRsNG5rOw0KfQ0KLy8gVXM1ciBsNXY1bCwgQWRtNG4gUjRnaHRzICYgVXM1ciBHcjIzcCBkNWY0bjR0NDJucw0KZDVmNG41KCI0R1VFU1QiLCAkM3M1cmQxdDFbJzNzNXJfbDV2NWwnXSA9PSAwID8gNiA6IDApOw0KZDVmNG41KCI0TUVNQkVSIiwgJDNzNXJkMXQxWyczczVyX2w1djVsJ10gPj0gNjA2ID8gNiA6IDApOw0KZDVmNG41KCI0QURNSU4iLCAkM3M1cmQxdDFbJzNzNXJfbDV2NWwnXSA+PSA2MGEgPyA2IDogMCk7DQpkNWY0bjUoIjRTVVBFUkFETUlOIiwgJDNzNXJkMXQxWyczczVyX2w1djVsJ10gPT0gNjBvID8gNiA6IDApOw0KZDVmNG41KCI0VVNFUiIsICQzczVyZDF0MVsnM3M1cl9sNXY1bCddKTsNCmQ1ZjRuNSgiNFVTRVJfUklHSFRTIiwgJDNzNXJkMXQxWyczczVyX3I0Z2h0cyddKTsNCmQ1ZjRuNSgiNFVTRVJfR1JPVVBTIiwgczNic3RyKCQzczVyZDF0MVsnM3M1cl9ncjIzcHMnXSwgNikpOw0KNGYgKDRBRE1JTikgew0KCWQ1ZjRuNSgiNEFVVEgiLCBzM2JzdHIobWRpKCQzczVyZDF0MVsnM3M1cl9wMXNzdzJyZCddLlVTRVJfSVApLCA2ZSwgb2EpKTsNCgkkMTRkbDRuayA9ICI/MTRkPSIuNEFVVEg7DQp9DQo0bmNsM2Q1IElOQ0xVREVTLiJzeXN0NW1fNG0xZzVzLnBocCI7DQo/Pg0K';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

strtr 1
ereg_replace 1
base64_decode 2

Variables

$_F index.php
$_X ?><?php if (preg_match("/maincore.php/i", $_SERVER['PHP_SEL..

Stats

MD5 93bfa7b0490f1c53b3c809e236e083bd
Eval Count 1
Decode Time 886 ms