0gIi4uLyIgLiAkaW1nX3NfdXJsOwoJCQkJfQoJCQkJJGltZ19tX3VybCA9ICRpbWdfdXJsOwoJCQkJJGltZ19sX3VybCA9ICIuLi8uLi9pbWcvbm9pbWFnZV9sLmpwZyI7CgkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCSRpbWdfbF91cmwgPSAiLi4vIiAuICRpbWdfbF91cmw7CgkJCQl9CgkJCQkkcHJpY2UgPSAiIjsKCQkJCSRkZXRhaWxzID0gIiI7CgkJCQkkaGFuYmFpbW90byA9ICIiOwoJCQkJJHNob3BfdXJsID0gIiI7CgkJCQkkcmF0aW5nID0gIiI7CgkJCQkkaG90ZWxObyA9ICIiOwoJCQkJJGhvdGVsTmFtZSA9ICIiOwoJCQkJJGFyZWFTdW0gPSAiIjsKCQkJCSRob3RlbFNwZWNpYWxTdW0gPSAiIjsKCQkJCSRhZmZpbGlhdGVfdXJsID0gIiI7CgkJCX0KCQkJaWYgKCRpdGVtX3RpdGxlX2xlbiAhPSAwICYmIG1iX3N0cmxlbigkdGl0bGUpID4gJGl0ZW1fdGl0bGVfbGVuKSB7CgkJCQkkdGl0bGUgPSBtYl9zdWJzdHIoJHRpdGxlLCAwLCAkaXRlbV90aXRsZV9sZW4pIC4gIi4uLiI7CgkJCX0KCQkJJG91dCA9ICRodG1faXRlbV9kZXRhaWxzOwoJCQlmb3JlYWNoICgkbmFtZXMgYXMgJG5hbWUpIHsKCQkJCWV2YWwoIlwkdmFsdWUgPSBcJCR7bmFtZX07Iik7CgkJCQlpZiAoJG5hbWUgPT0gImRldGFpbHMiICYmICRzdWZmaXggPT0gInhtbCIpIHsKCQkJCQkkdmFsdWUgPSBnZXRfY2RhdGEoJHZhbHVlKTsKCQkJCX0KCQkJCSRvdXQgPSBzdHJfcmVwbGFjZSgieyIgLiAkbmFtZSAuICJ9IiwgJHZhbHVlLCAkb3V0KTsKCQkJfQoJCQkkaHRtX2l0ZW1fZGV0YWlsc19hbGwgLj0gJG91dDsKCQl9CgkJJG91dCA9ICRodG1fbGlzdF9yb3c7CgkJJG91dCA9IHN0cl9yZXBsYWNlKCJ7TElTVF9DT0x9IiwgJGh0bV9pdGVtX2RldGFpbHNfYWxsLCAkb3V0KTsKCQkkaHRtX2l0ZW1zIC49ICRvdXQ7Cgl9Cn0KCiRodG0gPSBzdHJfcmVwbGFjZSgie0xJU1RfUk9XfSIsICRodG1faXRlbXMsICRodG0pOwoKaWYgKCRhc3AgIT0gInJha3V0ZW4iKSB7CgkkaHRtID0gcmVtb3ZlX3N0cl9zcGFuKCRodG0sICJSQUtVVEVOIik7Cn0KaWYgKCRhc3AgIT0gInJha3V0ZW5fdHJhdmVsIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiUkFLVVRFTl9UUkFWRUwiKTsKfQppZiAoJGFzcCAhPSAiYW1hem9uIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiQU1BWk9OIik7Cn0KaWYgKCRhc3AgIT0gImRlbm5vIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiREVOTk8iKTsKfQoKaWYgKCRzdWZmaXggPT0gInhtbCIpIHsKCWhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3htbDsgY2hhcnNldD1VVEYtOCIpOwp9CgpwcmludCBtYl9jb252ZXJ0X2VuY29kaW5nKCRodG0sICRvdXRfZW5jb2RpbmcpOwo="));?>4wXHJcbkhvc3Q6ICR7aG9zdF9uYW1lfVxyXG5cclxuIjsKCX0gZWxzZWlmICgkYXNwID09ICJyYWt1dGVuX3RyYXZlbCIpIHsKCQkkaG9zdF9uYW1lID0gImFwaS5yYWt1dGVuLmNvLmpwIjsKCQkkdmVyc2lvbiA9ICIyMDA3LTA0LTExIjsKCQkkZGV2ZWxvcGVyX2lkID0gZ2V0X3NldHRpbmcoIlJBS1VURU5fREVWRUxPUEVSX0lEIik7CgkJJGFmZmlsaWF0ZV9pZCA9IGdldF9zZXR0aW5nKCJSQUtVVEVOX0FGRklMSUFURV9JRCIpOwoJCWlmIChzdHJsZW4oJGFmZmlsaWF0ZV9pZCkgIT0gMCkgewoJCQkkYWZmaWxpYXRlX2lkID0gIiZhZmZpbGlhdGVJZD0iIC4gJGFmZmlsaWF0ZV9pZDsKCQl9CgkJaWYgKHN0cmxlbigkY2F0ZWdvcnkpICE9IDApIHsKCQkJJG1pZGRsZUNsYXNzQ29kZSA9ICImbWlkZGxlQ2xhc3NDb2RlPSIgLiAkY2F0ZWdvcnk7CgkJfSBlbHNlIHsKCQkJJG1pZGRsZUNsYXNzQ29kZSA9ICIiOwoJCX0KCQkkc29ydCA9IGdldF9zZXR0aW5nKCJSQUtVVEVOX1RSQVZFTF9TT1JUIik7CgkJaWYgKHN0cmxlbigkc29ydCkgIT0gMCkgewoJCQkkc29ydCA9ICImc29ydD0iIC4gdXJsZW5jb2RlKCRzb3J0KTsKCQl9CgkJJHJlcXVlc3QgPSAiR0VUIC9yd3MvMS43L3Jlc3Q/ZGV2ZWxvcGVySWQ9JHtkZXZlbG9wZXJfaWR9Jm9wZXJhdGlvbj1LZXl3b3JkSG90ZWxTZWFyY2gmdmVyc2lvbj0ke3ZlcnNpb259JmhpdHM9JHt3c3ZjX3BhZ2VfaXRlbV9jb3VudH0mcGFnZT0ke3dzdmNfcGFnZX0mc3VtRGlzcGxheUZsYWc9MSZrZXl3b3JkPSR7ZXF9JHttaWRkbGVDbGFzc0NvZGV9JHthZmZpbGlhdGVfaWR9JHtzb3J0fSBIVFRQLzEuMFxyXG5Ib3N0OiAke2hvc3RfbmFtZX1cclxuXHJcbiI7Cgl9IGVsc2VpZiAoJGFzcCA9PSAiYW1hem9uIikgewoJCWlmICgkd3N2Y19wYWdlID4gNDAwKSB7CgkJCWJyZWFrOwoJCX0KCQkkaG9zdF9uYW1lID0gImVjcy5hbWF6b25hd3MuanAiOwoJCSRzZWFyY2hfaW5kZXggPSAkY2F0ZWdvcnk7CgkJaWYgKHN0cmxlbigkc2VhcmNoX2luZGV4KSA9PSAwKSB7CgkJCSRzZWFyY2hfaW5kZXggPSAiQmxlbmRlZCI7CgkJfQoJCSRzb3J0ID0gZ2V0X3NldHRpbmcoIkFNQVpPTl9TT1JUXyIgLiAkc2VhcmNoX2luZGV4KTsKCQkkc2VjcmV0X2FjY2Vzc19rZXkgPSBnZXRfc2V0dGluZygiQU1BWk9OX1NFQ1JFVF9BQ0NFU1NfS0VZIik7CgkJJHAgPSBhcnJheSgpOwoJCSRwWydBc3NvY2lhdGVUYWcnXSA9IGdldF9zZXR0aW5nKCJBTUFaT05fQVNTT0NJQVRFX0lEIik7CgkJJHBbJ0FXU0FjY2Vzc0tleUlkJ10gPSBnZXRfc2V0dGluZygiQU1BWk9OX0FDQ0VTU19LRVlfSUQiKTsKCQkkcFsnSXRlbVBhZ2UnXSA9ICR3c3ZjX3BhZ2U7CgkJJHBbJ0tleXdvcmRzJ10gPSAkdXE7CgkJJHBbJ09wZXJhdGlvbiddID0gIkl0ZW1TZWFyY2giOwoJCSRwWydSZXNwb25zZUdyb3VwJ10gPSAiTWVkaXVtLFJldmlld3MsT2ZmZXJzIjsKCQkkcFsnU2VhcmNoSW5kZXgnXSA9ICRzZWFyY2hfaW5kZXg7CgkJJHBbJ1NlcnZpY2UnXSA9ICJBV1NFQ29tbWVyY2VTZXJ2aWNlIjsKCQlpZiAoc3RybGVuKCRzb3J0KSAhPSAwKSB7CgkJCSRwWydTb3J0J10gPSAkc29ydDsKCQl9CgkJJHBbJ1RpbWVzdGFtcCddID0gZ21kYXRlKCdZLW0tZFxUSDppOnNcWicpOwoJCSRwWydWZXJzaW9uJ10gPSAiMjAwOS0wMy0zMSI7CgkJa3NvcnQoJHApOwoJCSRjc3RyID0gJyc7CgkJZm9yZWFjaCAoJHAgYXMgJGsgPT4gJHYpIHsKCQkJJGNzdHIgLj0gJyYnIC4gJGsgLiAnPScgLiB1cmxlbmNvZGVfcmZjMzk4Nigkdik7CgkJfQoJCSRjc3RyID0gc3Vic3RyKCRjc3RyLCAxKTsKCQkkc3N0ciA9ICJHRVRcbiR7aG9zdF9uYW1lfVxuL29uY2EveG1sXG4ke2NzdHJ9IjsKCQkkc2lnbmF0dXJlID0gdXJsZW5jb2RlX3JmYzM5ODYoYmFzZTY0X2VuY29kZShoYXNoX2htYWMoJ3NoYTI1NicsICRzc3RyLCAkc2VjcmV0X2FjY2Vzc19rZXksIHRydWUpKSk7CgkJJHJlcXVlc3QgPSAiR0VUIC9vbmNhL3htbD8ke2NzdHJ9JlNpZ25hdHVyZT0ke3NpZ25hdHVyZX0gSFRUUC8xLjBcclxuSG9zdDogJHtob3N0X25hbWV9XHJcblxyXG4iOwoJfSBlbHNlaWYgKCRhc3AgPT0gImRlbm5vIikgewoJCSRob3N0X25hbWUgPSAid2Vic2VydmljZS5kLTA2NC5jb20iOwoJCSRoaWQgPSBnZXRfc2V0dGluZygiREVOTk9fSElEIik7CgkJJGVtYWlsID0gZ2V0X3NldHRpbmcoIkRFTk5PX0VNQUlMIik7CgkJaWYgKHN0cmxlbigkY2F0ZWdvcnkpICE9IDApIHsKCQkJJGNhdGVnb3J5X2lkID0gIiZjYXRlZ29yeV9pZD0ke2NhdGVnb3J5fSI7CgkJfQoJCSRzb3J0ID0gZ2V0X3NldHRpbmcoIkRFTk5PX1NPUlQiKTsKCQlpZiAoc3RybGVuKCRzb3J0KSAhPSAwKSB7CgkJCSRzb3J0ID0gIiZzb3J0PSIgLiAkc29ydDsKCQl9CgkJJHJlcXVlc3QgPSAiR0VUIC9nZXRfdGFnLnBocD9oaWQ9JHtoaWR9JmVtYWlsPSR7ZW1haWx9JnN3b3JkPSR7ZXF9JnR5cGU9aGVhdnkmcGFnZT0ke3dzdmNfcGFnZX0ke2NhdGVnb3J5X2lkfSR7c29ydH0gSFRUUC8xLjBcclxuSG9zdDogJHtob3N0X25hbWV9XHJcblxyXG4iOwoJfQoKCSRyZXN1bHQgPSBodHRwX2dldCgkaG9zdF9uYW1lLCAkcmVxdWVzdCwgJHJlc3BvbnNlLCAkYXNwLCAkZGV2ZWxvcGVyX2lkKTsKCglpZiAoJHJlc3VsdCkgewoJCSRkb2MgPSBzdWJzdHIoJHJlc3BvbnNlLCBzdHJwb3MoJHJlc3BvbnNlLCAiXHJcblxyXG4iKSArIDQpOwoJfSBlbHNlIHsKCQkkdXJsID0gZ2V0X3NldHRpbmcoIkVSUk9SX1VSTCIpOwoJCWlmIChzdHJsZW4oJHVybCkgIT0gMCkgewoJCQloZWFkZXIoIkxvY2F0aW9uOiAkdXJsIik7CgkJfSBlbHNlIHsKCQkJcHJpbnRfZXJyb3IoIkVSUk9SIik7CgkJfQoJCWV4aXQ7Cgl9CgoJJGRvYyA9IG1iX2NvbnZlcnRfZW5jb2RpbmcoJGRvYywgIkVVQy1KUCIsICJVVEYtOCIpOwoKCWlmICgkYXNwID09ICJyYWt1dGVuIikgewoJCSR0b3RhbF9wYWdlcyA9IGludHZhbChnZXRfbm9kZSgkZG9jLCAicGFnZUNvdW50IikpOwoJCSR0b3RhbF9yZXN1bHRzID0gaW50dmFsKGdldF9ub2RlKCRkb2MsICJjb3VudCIpKTsKCQkkSXRlbXNfID0gZ2V0X25vZGVzKCRkb2MsICJJdGVtIik7Cgl9IGVsc2VpZiAoJGFzcCA9PSAicmFrdXRlbl90cmF2ZWwiKSB7CgkJJHRvdGFsX3Jlc3VsdHMgPSBpbnR2YWwoZ2V0X25vZGUoJGRvYywgInJlY29yZENvdW50IikpOwoJCSR0b3RhbF9wYWdlcyA9IGNlaWwoJHRvdGFsX3Jlc3VsdHMgLyAkd3N2Y19wYWdlX2l0ZW1fY291bnQpOwoJCSRJdGVtc18gPSBnZXRfbm9kZXMoJGRvYywgImhvdGVsU2ltcGxlIik7Cgl9IGVsc2VpZiAoJGFzcCA9PSAiYW1hem9uIikgewoJCSR0b3RhbF9wYWdlcyA9IGludHZhbChnZXRfbm9kZSgkZG9jLCAiVG90YWxQYWdlcyIpKTsKCQkkdG90YWxfcGFnZXMgPSBtaW4oJHRvdGFsX3BhZ2VzLCAzMjAwKTsKCQkkdG90YWxfcmVzdWx0cyA9IGludHZhbChnZXRfbm9kZSgkZG9jLCAiVG90YWxSZXN1bHRzIikpOwoJCSRJdGVtc18gPSBnZXRfbm9kZXMoJGRvYywgIkl0ZW0iKTsKCQkkZXJyb3JzID0gZ2V0X25vZGVzKCRkb2MsICJFcnJvciIpOwoJCWlmIChjb3VudCgkZXJyb3JzKSAhPSAwKSB7CgkJCWZvcmVhY2ggKCRlcnJvcnMgYXMgJGVycm9yKSB7CgkJCQlwcmludCAiPGZvbnQgY29sb3I9cmVkPkVSUk9SOiIgLiBnZXRfbm9kZSgkZXJyb3IsICJDb2RlIikgLiAiPC9mb250Pjxicj4iOwoJCQl9CgkJfQoJfSBlbHNlaWYgKCRhc3AgPT0gImRlbm5vIikgewoJCSR0b3RhbF9wYWdlcyA9IGludHZhbChnZXRfbm9kZSgkZG9jLCAiVG90YWxQYWdlcyIpKTsKCQkkdG90YWxfcmVzdWx0cyA9IGludHZhbChnZXRfbm9kZSgkZG9jLCAiVG90YWxSZXN1bHRzIikpOwoJCSRJdGVtc18gPSBnZXRfbm9kZXMoJGRvYywgIkRldGFpbHMiKTsKCX0KCglpZiAoJHRvdGFsX3Jlc3VsdHMgPT0gMCkgewoJCSR1cmwgPSBnZXRfc2V0dGluZygiTk9fUkVTVUxUX1VSTCIpOwoJCWlmIChzdHJsZW4oJHVybCkgIT0gMCkgewoJCQloZWFkZXIoIkxvY2F0aW9uOiAkdXJsIik7CgkJCWV4aXQ7CgkJfQoJfQoJCglpZiAoJGZpcnN0X3RpbWUgPT0gVFJVRSkgewoJCWZvciAoJGkgPSAkd3N2Y19wYWdlX2luZGV4OyAkaSA8IGNvdW50KCRJdGVtc18pOyAkaSsrKSB7CgkJCSRJdGVtc1tdID0gJEl0ZW1zX1skaV07CgkJCSRwYWdlX2luZGV4XyA9IDA7CgkJCSRwYWdlc1tdID0gJHdzdmNfcGFnZTsKCQkJJHBhZ2VfaW5kZXhlc1tdID0gJGk7CgkJfQoJCSRmaXJzdF90aW1lID0gRkFMU0U7Cgl9IGVsc2UgewoJCWZvciAoJGl0ZW1faW5kZXggPSAwOyAkaXRlbV9pbmRleCA8IGNvdW50KCRJdGVtc18pOyAkaXRlbV9pbmRleCsrKSB7CgkJCSRJdGVtc1tdID0gJEl0ZW1zX1skaXRlbV9pbmRleF07CgkJCSRwYWdlc1tdID0gJHdzdmNfcGFnZTsKCQkJJHBhZ2VfaW5kZXhlc1tdID0gJGl0ZW1faW5kZXg7CgkJfQoJfQoJCglpZiAoY291bnQoJEl0ZW1zKSA+ICRwYWdlX2l0ZW1fY291bnQpIHsKCQkkYXJyYXlfY291bnQgPSBjb3VudCgkSXRlbXMpOwoJCWZvciAoJGkgPSAkcGFnZV9pdGVtX2NvdW50OyAkaSA8ICRhcnJheV9jb3VudDsgJGkrKykgewoJCQl1bnNldCgkSXRlbXNbJGldKTsKCQl9CgkJYnJlYWs7Cgl9CgkKCWlmICgkdG90YWxfcGFnZXMgPD0gJHdzdmNfcGFnZSkgewoJCWJyZWFrOwoJfQoJCgl1bnNldCgkSXRlbXNfKTsKCQoJJHdzdmNfcGFnZSsrOwoJCglzbGVlcCgxKTsKfQoKaWYgKGdldF9zZXR0aW5nKCJMSVNUX0lURU1fU0hVRkZMRSIpID09ICIxIikgewoJJGl0ZW1fY291bnQgPSBjb3VudCgkSXRlbXMpOwoJZm9yICgkaSA9IDA7ICRpIDwgJGl0ZW1fY291bnQ7ICRpKyspIHsKCQkkciA9IHJhbmQoMCwgJGl0ZW1fY291bnQgLSAxKTsKCQlpZiAoJGkgIT0gJHIpIHsKCQkJJHZhbCA9ICRJdGVtc1skaV07CgkJCSRJdGVtc1skaV0gPSAkSXRlbXNbJHJdOwoJCQkkSXRlbXNbJHJdID0gJHZhbDsKCQkJJHZhbCA9ICRwYWdlc1skaV07CgkJCSRwYWdlc1skaV0gPSAkcGFnZXNbJHJdOwoJCQkkcGFnZXNbJHJdID0gJHZhbDsKCQkJJHZhbCA9ICRwYWdlX2luZGV4ZXNbJGldOwoJCQkkcGFnZV9pbmRleGVzWyRpXSA9ICRwYWdlX2luZGV4ZXNbJHJdOwoJCQkkcGFnZV9pbmRleGVzWyRyXSA9ICR2YWw7CgkJfQoJfQp9CgppZiAoJGFzcCA9PSAicmFrdXRlbiIgfHwgJGFzcCA9PSAicmFrdXRlbl90cmF2ZWwiKSB7CgkkY2FuX2dldF9jb3VudCA9IG1pbigkdG90YWxfcmVzdWx0cywgJHdzdmNfcGFnZV9pdGVtX2NvdW50ICogJHRvdGFsX3BhZ2VzKTsKCSR0b3RhbF9wYWdlcyA9IGNlaWwoJGNhbl9nZXRfY291bnQgLyAkcGFnZV9pdGVtX2NvdW50KTsKfSBlbHNlaWYgKCRhc3AgPT0gImFtYXpvbiIpIHsKCSRjYW5fZ2V0X2NvdW50ID0gbWluKCR0b3RhbF9yZXN1bHRzLCAkd3N2Y19wYWdlX2l0ZW1fY291bnQgKiA0MDApOwoJJHRvdGFsX3BhZ2VzID0gY2VpbCgkY2FuX2dldF9jb3VudCAvICRwYWdlX2l0ZW1fY291bnQpOwp9IGVsc2UgewoJJHRvdGFsX3BhZ2VzID0gY2VpbCgkdG90YWxfcmVzdWx0cyAvICRwYWdlX2l0ZW1fY291bnQpOwp9CgppZiAoJHN1ZmZpeCA9PSAieG1sIikgewoJJGh0bSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCJyc3MueG1sIik7CgkkaHRtID0gbWJfY29udmVydF9lbmNvZGluZygkaHRtLCAiRVVDLUpQIiwgIlVURi04Iik7CgkkaHRtID0gc3RyX3JlcGxhY2UoIjwhLS1JVEVNXy0tPiIsICI8IS0tTElTVF9ST1dfLS0+PCEtLUxJU1RfQ09MXy0tPiIsICRodG0pOwoJJGh0bSA9IHN0cl9yZXBsYWNlKCI8IS0tX0lURU0tLT4iLCAiPCEtLV9MSVNUX0NPTC0tPjwhLS1fTElTVF9ST1ctLT4iLCAkaHRtKTsKCSRjb2xzID0gMTsKCSRvdXRfZW5jb2RpbmcgPSAiVVRGLTgiOwp9IGVsc2UgewoJaWYgKCRhc3AgPT0gInJha3V0ZW5fdHJhdmVsIikgewoJCSRodG0gPSBmaWxlX2dldF9jb250ZW50cygibGlzdF9yYWt1dGVuX3RyYXZlbC5odG1sIik7Cgl9IGVsc2UgewoJCSRodG0gPSBmaWxlX2dldF9jb250ZW50cygibGlzdC5odG1sIik7Cgl9CgkkaHRtID0gbWJfY29udmVydF9lbmNvZGluZygkaHRtLCAiRVVDLUpQIiwgIlNKSVMiKTsKCSRvdXRfZW5jb2RpbmcgPSAiU0pJUyI7Cn0KCiRodG0gPSBnZXRfc3RyX3NwYW4oIkxJU1RfUk9XIiwgJGh0bSwgJGh0bV9saXN0X3Jvdyk7CiRodG1fbGlzdF9yb3cgPSBnZXRfc3RyX3NwYW4oIkxJU1RfQ09MIiwgJGh0bV9saXN0X3JvdywgJGh0bV9pdGVtX2RldGFpbHMpOwoKJGh0bSA9IGdldF9zdHJfc3BhbigiUFJFVl9QQUdFX0xJTksiLCAkaHRtLCAkaHRtX3ByZXZfcGFnZV9saW5rKTsKCiRodG0gPSBnZXRfc3RyX3NwYW4oIk5FWFRfUEFHRV9MSU5LIiwgJGh0bSwgJGh0bV9uZXh0X3BhZ2VfbGluayk7CgokaHRtID0gZ2V0X3N0cl9zcGFuKCJQUkVWX1BBR0VfTElOSzIiLCAkaHRtLCAkaHRtX3ByZXZfcGFnZV9saW5rMik7CgokaHRtID0gZ2V0X3N0cl9zcGFuKCJORVhUX1BBR0VfTElOSzIiLCAkaHRtLCAkaHRtX25leHRfcGFnZV9saW5rMik7CgokaHRtID0gc3RyX3JlcGxhY2UoIntwYWdlX3RpdGxlfSIsICRxLCAkaHRtKTsKCiRodG0gPSBzdHJfcmVwbGFjZSgie2N1cnJlbnRfcGFnZX0iLCAkcGFnZSwgJGh0bSk7CiRodG0gPSBzdHJfcmVwbGFjZSgie2N1cnJlbnRfcGFnZV9mfSIsIG51bWJlcl9mb3JtYXQoJHBhZ2UpLCAkaHRtKTsKCiRodG0gPSBzdHJfcmVwbGFjZSgie3RvdGFsX3BhZ2VzfSIsICR0b3RhbF9wYWdlcywgJGh0bSk7CiRodG0gPSBzdHJfcmVwbGFjZSgie3RvdGFsX3BhZ2VzX2Z9IiwgbnVtYmVyX2Zvcm1hdCgkdG90YWxfcGFnZXMpLCAkaHRtKTsKCiRodG0gPSBzdHJfcmVwbGFjZSgie3RvdGFsX3Jlc3VsdHN9IiwgJHRvdGFsX3Jlc3VsdHMsICRodG0pOwokaHRtID0gc3RyX3JlcGxhY2UoInt0b3RhbF9yZXN1bHRzX2Z9IiwgbnVtYmVyX2Zvcm1hdCgkdG90YWxfcmVzdWx0cyksICRodG0pOwoKJGh0bSA9IHN0cl9yZXBsYWNlKCJ7cHViX2RhdGV9IiwgZ2V0X2RhdGVfc3RyaW5nKCksICRodG0pOwoKJGh0bSA9IHJlcGxhY2VfbGluaygkaHRtKTsKCmlmICgkcGFnZSA+IDEpIHsKCWlmICgkcGFnZSA9PSAyKSB7CgkJJGh0bV9wcmV2X3BhZ2VfbGluayA9IHN0cl9yZXBsYWNlKCJ7cHJldl9wYWdlfSIsICRlcSAuICIuaHRtbCIsICRodG1fcHJldl9wYWdlX2xpbmspOwoJCSRodG1fcHJldl9wYWdlX2xpbmsyID0gc3RyX3JlcGxhY2UoIntwcmV2X3BhZ2V9IiwgJGVxIC4gIi5odG1sIiwgJGh0bV9wcmV2X3BhZ2VfbGluazIpOwoJfSBlbHNlIHsKCQkkaHRtX3ByZXZfcGFnZV9saW5rID0gc3RyX3JlcGxhY2UoIntwcmV2X3BhZ2V9IiwgJGVxIC4gIl8iIC4gc3RydmFsKCRwYWdlIC0gMSkgLiAiLmh0bWwiLCAkaHRtX3ByZXZfcGFnZV9saW5rKTsKCQkkaHRtX3ByZXZfcGFnZV9saW5rMiA9IHN0cl9yZXBsYWNlKCJ7cHJldl9wYWdlfSIsICRlcSAuICJfIiAuIHN0cnZhbCgkcGFnZSAtIDEpIC4gIi5odG1sIiwgJGh0bV9wcmV2X3BhZ2VfbGluazIpOwoJfQoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7UFJFVl9QQUdFX0xJTkt9IiwgJGh0bV9wcmV2X3BhZ2VfbGluaywgJGh0bSk7CgkkaHRtID0gc3RyX3JlcGxhY2UoIntQUkVWX1BBR0VfTElOSzJ9IiwgJGh0bV9wcmV2X3BhZ2VfbGluazIsICRodG0pOwp9IGVsc2UgewoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7UFJFVl9QQUdFX0xJTkt9IiwgIiIsICRodG0pOwoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7UFJFVl9QQUdFX0xJTksyfSIsICIiLCAkaHRtKTsKfQoKaWYgKGludHZhbCgkcGFnZSkgPCAkdG90YWxfcGFnZXMpIHsKCSRodG1fbmV4dF9wYWdlX2xpbmsgPSBzdHJfcmVwbGFjZSgie25leHRfcGFnZX0iLCAkZXEgLiAiXyIgLiBzdHJ2YWwoJHBhZ2UgKyAxKSAuICIuaHRtbCIsICRodG1fbmV4dF9wYWdlX2xpbmspOwoJJGh0bV9uZXh0X3BhZ2VfbGluazIgPSBzdHJfcmVwbGFjZSgie25leHRfcGFnZX0iLCAkZXEgLiAiXyIgLiBzdHJ2YWwoJHBhZ2UgKyAxKSAuICIuaHRtbCIsICRodG1fbmV4dF9wYWdlX2xpbmsyKTsKCSRodG0gPSBzdHJfcmVwbGFjZSgie05FWFRfUEFHRV9MSU5LfSIsICRodG1fbmV4dF9wYWdlX2xpbmssICRodG0pOwoJJGh0bSA9IHN0cl9yZXBsYWNlKCJ7TkVYVF9QQUdFX0xJTksyfSIsICRodG1fbmV4dF9wYWdlX2xpbmsyLCAkaHRtKTsKfSBlbHNlIHsKCSRodG0gPSBzdHJfcmVwbGFjZSgie05FWFRfUEFHRV9MSU5LfSIsICIiLCAkaHRtKTsKCSRodG0gPSBzdHJfcmVwbGFjZSgie05FWFRfUEFHRV9MSU5LMn0iLCAiIiwgJGh0bSk7Cn0KCiRuYW1lcyA9IGFycmF5KAoJInRpdGxlIiwKCSJkZXRhaWxfcGFnZV91cmwiLAoJImltZ191cmwiLAoJImltZ19zX3VybCIsCgkiaW1nX21fdXJsIiwKCSJpbWdfbF91cmwiLAoJInByaWNlIiwKCSJkZXRhaWxzIiwKCSJoYW5iYWltb3RvIiwKCSJyYXRpbmciLAoJInB1Yl9kYXRlIiwKCSJhZmZpbGlhdGVfdXJsIgopOwoKJGh0bV9pdGVtcyA9ICIiOwppZiAoY291bnQoJEl0ZW1zKSAhPSAwKSB7Cglmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkSXRlbXMpOyAkaSs9JGNvbHMpIHsKCQkkaHRtX2l0ZW1fZGV0YWlsc19hbGwgPSAiIjsKCQlmb3IgKCRqID0gMDsgJGogPCAkY29sczsgJGorKykgewoJCQlpZiAoY291bnQoJEl0ZW1zKSA+ICRpICsgJGopIHsKCQkJCSRpdGVtID0gJEl0ZW1zWyRpICsgJGpdOwoJCQkJaWYgKCRhc3AgPT0gInJha3V0ZW4iKSB7CgkJCQkJJHRpdGxlID0gZ2V0X25vZGUoJGl0ZW0sICJpdGVtTmFtZSIpOwoJCQkJCSRpdGVtQ29kZSA9IGdldF9ub2RlKCRpdGVtLCAiaXRlbUNvZGUiKTsKCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uL2RldGFpbHMvIiAuICRpdGVtQ29kZSAuICIuaHRtbCI7CgkJCQkJaWYgKHN0cmxlbigkY2F0ZWdvcnkpICE9IDApIHsKCQkJCQkJJGRldGFpbF9wYWdlX3VybCA9ICIuLi8iIC4gJGRldGFpbF9wYWdlX3VybDsKCQkJCQl9CgkJCQkJJGRldGFpbF9wYWdlX3VybCA9IGdldF9mdWxsX3VybCgkZGV0YWlsX3BhZ2VfdXJsKTsKCQkJCQkkaW1nX3VybCA9IGdldF9ub2RlKCRpdGVtLCAibWVkaXVtSW1hZ2VVcmwiKTsKCQkJCQkkaW1nX3NfdXJsID0gZ2V0X25vZGUoJGl0ZW0sICJzbWFsbEltYWdlVXJsIik7CgkJCQkJJGltZ19tX3VybCA9ICRpbWdfdXJsOwoJCQkJCSRpbWdfbF91cmwgPSAkaW1nX3VybDsKCQkJCQkkZGV0YWlscyA9IGdldF9ub2RlKCRpdGVtLCAiaXRlbUNhcHRpb24iKTsKCQkJCQkkZGV0YWlscyA9IGh0bWxfdG9fdGV4dCgkZGV0YWlscyk7CgkJCQkJaWYgKG1iX3N0cmxlbigkZGV0YWlscykgPiAkaXRlbV90ZXh0X2xlbikgewoJCQkJCQkkZGV0YWlscyA9IG1iX3N1YnN0cigkZGV0YWlscywgMCwgJGl0ZW1fdGV4dF9sZW4pIC4gIi4uLiI7CgkJCQkJfQoJCQkJCSRwcmljZSA9IG51bWJlcl9mb3JtYXQoZ2V0X25vZGUoJGl0ZW0sICJpdGVtUHJpY2UiKSkgLiAisd8iOwoJCQkJCSRoYW5iYWltb3RvID0gZ2V0X25vZGUoJGl0ZW0sICJzaG9wTmFtZSIpOwoJCQkJCSRyYXRpbmcgPSBnZXRfbm9kZSgkaXRlbSwgInJldmlld0F2ZXJhZ2UiKTsKCQkJCQkkYWZmaWxpYXRlX3VybCA9IGdldF9ub2RlKCRpdGVtLCAiYWZmaWxpYXRlVXJsIik7CgkJCQl9IGVsc2VpZiAoJGFzcCA9PSAicmFrdXRlbl90cmF2ZWwiKSB7CgkJCQkJJHRhZ3MgPSBhcnJheSgiaG90ZWxOYW1lIiwgImhvdGVsTm8iLCAiYXJlYVN1bSIsICJob3RlbFNwZWNpYWxTdW0iKTsKCQkJCQlmb3JlYWNoICgkdGFncyBhcyAkdGFnKSB7CgkJCQkJCWV2YWwoIlwkJHt0YWd9ID0gZ2V0X25vZGUoXCRpdGVtLCAnJHt0YWd9Jyk7Iik7CgkJCQkJCWV2YWwoIlwkJHt0YWd9ID0gaHRtbHVuZXNjYXBlKFwkJHt0YWd9KTsiKTsKCQkJCQkJJG5hbWVzW10gPSAkdGFnOwoJCQkJCX0KCQkJCQkkdGl0bGUgPSAkaG90ZWxOYW1lOwoJCQkJCSRpdGVtQ29kZSA9ICRob3RlbE5vOwoJCQkJCSRkZXRhaWxfcGFnZV91cmwgPSAiLi4vZGV0YWlscy8iIC4gJGl0ZW1Db2RlIC4gIi5odG1sIjsKCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uLyIgLiAkZGV0YWlsX3BhZ2VfdXJsOwoJCQkJCX0KCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gZ2V0X2Z1bGxfdXJsKCRkZXRhaWxfcGFnZV91cmwpOwoJCQkJCSRpbWdfdXJsID0gIiI7CgkJCQkJJGltZ19zX3VybCA9ICIiOwoJCQkJCSRpbWdfbV91cmwgPSAiIjsKCQkJCQkkaW1nX2xfdXJsID0gIiI7CgkJCQkJJGRldGFpbHMgPSBodG1sX3RvX3RleHQoJGhvdGVsU3BlY2lhbFN1bSk7CgkJCQkJaWYgKG1iX3N0cmxlbigkZGV0YWlscykgPiAkaXRlbV90ZXh0X2xlbikgewoJCQkJCQkkZGV0YWlscyA9IG1iX3N1YnN0cigkZGV0YWlscywgMCwgJGl0ZW1fdGV4dF9sZW4pIC4gIi4uLiI7CgkJCQkJfQoJCQkJCSRwcmljZSA9ICIiOwoJCQkJCSRoYW5iYWltb3RvID0gIiI7CgkJCQkJJHJhdGluZyA9ICIiOwoJCQkJCSRhZmZpbGlhdGVfdXJsID0gZ2V0X25vZGUoJGl0ZW0sICJob3RlbEFmZmlsaWF0ZVVybCIpOwoJCQkJfSBlbHNlaWYgKCRhc3AgPT0gImFtYXpvbiIpIHsKCQkJCQkkdGl0bGUgPSBnZXRfbm9kZSgkaXRlbSwgIlRpdGxlIik7CgkJCQkJJEFTSU4gPSBnZXRfbm9kZSgkaXRlbSwgIkFTSU4iKTsKCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uL2RldGFpbHMvIiAuICRBU0lOIC4gIi5odG1sIjsKCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uLyIgLiAkZGV0YWlsX3BhZ2VfdXJsOwoJCQkJCX0KCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gZ2V0X2Z1bGxfdXJsKCRkZXRhaWxfcGFnZV91cmwpOwoJCQkJCSRpbWdfdXJsID0gZ2V0X25vZGUoZ2V0X25vZGUoJGl0ZW0sICJNZWRpdW1JbWFnZSIpLCAiVVJMIik7CgkJCQkJaWYgKHN0cmxlbigkaW1nX3VybCkgPT0gMCkgewoJCQkJCQkkaW1nX3VybCA9ICIuLi8uLi9pbWcvbm9pbWFnZV9tLmpwZyI7CgkJCQkJCWlmIChzdHJsZW4oJGNhdGVnb3J5KSAhPSAwKSB7CgkJCQkJCQkkaW1nX3VybCA9ICIuLi8iIC4gJGltZ191cmw7CgkJCQkJCX0KCQkJCQl9CgkJCQkJJGltZ19zX3VybCA9IGdldF9ub2RlKGdldF9ub2RlKCRpdGVtLCAiU21hbGxJbWFnZSIpLCAiVVJMIik7CgkJCQkJaWYgKHN0cmxlbigkaW1nX3NfdXJsKSA9PSAwKSB7CgkJCQkJCSRpbWdfc191cmwgPSAiLi4vLi4vaW1nL25vaW1hZ2Vfcy5qcGciOwoJCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkJJGltZ19zX3VybCA9ICIuLi8iIC4gJGltZ19zX3VybDsKCQkJCQkJfQoJCQkJCX0KCQkJCQkkaW1nX21fdXJsID0gJGltZ191cmw7CgkJCQkJJGltZ19sX3VybCA9IGdldF9ub2RlKGdldF9ub2RlKCRpdGVtLCAiTGFyZ2VJbWFnZSIpLCAiVVJMIik7CgkJCQkJaWYgKHN0cmxlbigkaW1nX2xfdXJsKSA9PSAwKSB7CgkJCQkJCSRpbWdfbF91cmwgPSAiLi4vLi4vaW1nL25vaW1hZ2VfbC5qcGciOwoJCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkJJGltZ19sX3VybCA9ICIuLi8iIC4gJGltZ19sX3VybDsKCQkJCQkJfQoJCQkJCX0KCQkJCQkkZGV0YWlscyA9IGdldF9ub2RlKGdldF9ub2RlKCRpdGVtLCAiRWRpdG9yaWFsUmV2aWV3IiksICJDb250ZW50Iik7CgkJCQkJaWYgKHN0cmxlbigkZGV0YWlscykgPT0gMCkgewoJCQkJCQkkZmVhdHVyZXMgPSBnZXRfbm9kZXMoJGl0ZW0sICJGZWF0dXJlIik7CgkJCQkJCWZvciAoJHogPSAwOyAkeiA8IGNvdW50KCRmZWF0dXJlcyk7ICR6KyspIHsKCQkJCQkJCSRkZXRhaWxzIC49ICRmZWF0dXJlc1skaV0gLiAiXG4iOwoJCQkJCQl9CgkJCQkJfQoJCQkJCSRkZXRhaWxzID0gaHRtbF90b190ZXh0KCRkZXRhaWxzKTsKCQkJCQlpZiAobWJfc3RybGVuKCRkZXRhaWxzKSA+ICRpdGVtX3RleHRfbGVuKSB7CgkJCQkJCSRkZXRhaWxzID0gbWJfc3Vic3RyKCRkZXRhaWxzLCAwLCAkaXRlbV90ZXh0X2xlbikgLiAiLi4uIjsKCQkJCQl9CgkJCQkJJGRldGFpbHMgPSBzdHJfcmVwbGFjZSgiXG4iLCAiPGJyPiIsICRkZXRhaWxzKTsKCQkJCQkkcHJpY2UgPSBnZXRfbm9kZShnZXRfbm9kZSgkaXRlbSwgIkxpc3RQcmljZSIpLCAiQW1vdW50Iik7CgkJCQkJaWYgKHN0cmxlbigkcHJpY2UpID09IDApIHsKCQkJCQkJJHByaWNlID0gIqWqobyl16Xzpdel6aWkpbkiOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRwcmljZSA9IG51bWJlcl9mb3JtYXQoJHByaWNlKSAuICKx3yI7CgkJCQkJfQoJCQkJCSRoYW5iYWltb3RvID0gZ2V0X25vZGUoJGl0ZW0sICJQdWJsaXNoZXIiKTsKCQkJCQkkcmF0aW5nID0gZ2V0X25vZGUoZ2V0X25vZGUoJGl0ZW0sICJDdXN0b21lclJldmlld3MiKSwgIkF2ZXJhZ2VSYXRpbmciKTsKCQkJCQkkYWZmaWxpYXRlX3VybCA9IGdldF9ub2RlKCRpdGVtLCAiRGV0YWlsUGFnZVVSTCIpOwoJCQkJfSBlbHNlaWYgKCRhc3AgPT0gImRlbm5vIikgewoJCQkJCSR0aXRsZSA9IGdldF9ub2RlKCRpdGVtLCAiUHJvZHVjdE5hbWUiKTsKCQkJCQkkcHJvZHVjdF9waHAgPSBnZXRfbm9kZSgkZG9jLCAiUHJvZHVjdFBIUCIpOwoJCQkJCSRpdGVtX2lkID0gZ2V0X25vZGUoJGl0ZW0sICJJdGVtSUQiKTsKCQkJCQkkb3JpZCA9IGdldF9ub2RlKCRpdGVtLCAiT1JJRCIpOwoJCQkJCSRkZXRhaWxfcGFnZV91cmwgPSAiLi4vZGV0YWlscy8iIC4gJGNhdGVnb3J5IC4gIl8iIC4gJGVxIC4gIl8iICAgICAuIHN0cnZhbCgkcGFnZXNbJGkgKyAkal0pIC4gIl8iIC4gc3RydmFsKCRwYWdlX2luZGV4ZXNbJGkgKyAkal0pIC4gIi5odG1sIjsKCQkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gIi4uLyIgLiAkZGV0YWlsX3BhZ2VfdXJsOwoJCQkJCX0KCQkJCQkkZGV0YWlsX3BhZ2VfdXJsID0gZ2V0X2Z1bGxfdXJsKCRkZXRhaWxfcGFnZV91cmwpOwoJCQkJCSRhZmZpbGlhdGVfdXJsID0gJHByb2R1Y3RfcGhwIC4gIj9waWQ9IiAuICRpdGVtX2lkIC4gIiZvaWQ9IiAuICRvcmlkOwoJCQkJCWlmIChzdHJsZW4oJGhpZCkgIT0gMCkgewoJCQkJCQkkYWZmaWxpYXRlX3VybCAuPSAiJmhpZD0iIC4gJGhpZDsKCQkJCQl9CgkJCQkJJGltZ191cmwgPSBnZXRfbm9kZSgkaXRlbSwgIkltYWdlVXJsTWVkaXVtIik7CgkJCQkJJGltZ19zX3VybCA9IGdldF9ub2RlKCRpdGVtLCAiSW1hZ2VVcmxTbWFsbCIpOwoJCQkJCSRpbWdfbV91cmwgPSAkaW1nX3VyOwoJCQkJCSRpbWdfbF91cmwgPSBnZXRfbm9kZSgkaXRlbSwgIkltYWdlVXJsTGFyZ2UiKTsKCQkJCQkkZGV0YWlscyA9IGdldF9ub2RlKCRpdGVtLCAiSXRlbURldGFpbCIpOwoJCQkJCSRkZXRhaWxzID0gaHRtbF90b190ZXh0KCRkZXRhaWxzKTsKCQkJCQlpZiAobWJfc3RybGVuKCRkZXRhaWxzKSA+ICRpdGVtX3RleHRfbGVuKSB7CgkJCQkJCSRkZXRhaWxzID0gbWJfc3Vic3RyKCRkZXRhaWxzLCAwLCAkaXRlbV90ZXh0X2xlbikgLiAiLi4uIjsKCQkJCQl9CgkJCQkJJHByaWNlID0gbnVtYmVyX2Zvcm1hdChnZXRfbm9kZSgkaXRlbSwgIlByaWNlIikpIC4gIrHfIjsKCQkJCQkkaGFuYmFpbW90byA9IGdldF9ub2RlKCRpdGVtLCAiTWFudWZhY3R1cmVyIik7CgkJCQkJJHJhdGluZyA9ICIiOwoJCQkJfQoJCQkJJHRpdGxlID0gaHRtbHVuZXNjYXBlKCR0aXRsZSk7CgkJCX0gZWxzZSB7CgkJCQkkdGl0bGUgPSAiIjsKCQkJCSRkZXRhaWxfcGFnZV91cmwgPSAiIjsKCQkJCSRpbWdfdXJsID0gIi4uLy4uL2ltZy9ub2ltYWdlX20uanBnIjsKCQkJCWlmIChzdHJsZW4oJGNhdGVnb3J5KSAhPSAwKSB7CgkJCQkJJGltZ191cmwgPSAiLi4vIiAuICRpbWdfdXJsOwoJCQkJfQoJCQkJJGltZ19zX3VybCA9ICIuLi8uLi9pbWcvbm9pbWFnZV9zLmpwZyI7CgkJCQlpZiAoc3RybGVuKCRjYXRlZ29yeSkgIT0gMCkgewoJCQkJCSRpbWdfc191cmwgPSAiLi4vIiAuICRpbWdfc191cmw7CgkJCQl9CgkJCQkkaW1nX21fdXJsID0gJGltZ191cmw7CgkJCQkkaW1nX2xfdXJsID0gIi4uLy4uL2ltZy9ub2ltYWdlX2wuanBnIjsKCQkJCWlmIChzdHJsZW4oJGNhdGVnb3J5KSAhPSAwKSB7CgkJCQkJJGltZ19sX3VybCA9ICIuLi8iIC4gJGltZ19sX3VybDsKCQkJCX0KCQkJCSRwcmljZSA9ICIiOwoJCQkJJGRldGFpbHMgPSAiIjsKCQkJCSRoYW5iYWltb3RvID0gIiI7CgkJCQkkcmF0aW5nID0gIiI7CgkJCQkkaG90ZWxObyA9ICIiOwoJCQkJJGhvdGVsTmFtZSA9ICIiOwoJCQkJJGFyZWFTdW0gPSAiIjsKCQkJCSRob3RlbFNwZWNpYWxTdW0gPSAiIjsKCQkJCSRhZmZpbGlhdGVfdXJsID0gIiI7CgkJCX0KCQkJaWYgKCRpdGVtX3RpdGxlX2xlbiAhPSAwICYmIG1iX3N0cmxlbigkdGl0bGUpID4gJGl0ZW1fdGl0bGVfbGVuKSB7CgkJCQkkdGl0bGUgPSBtYl9zdWJzdHIoJHRpdGxlLCAwLCAkaXRlbV90aXRsZV9sZW4pIC4gIi4uLiI7CgkJCX0KCQkJJG91dCA9ICRodG1faXRlbV9kZXRhaWxzOwoJCQlmb3JlYWNoICgkbmFtZXMgYXMgJG5hbWUpIHsKCQkJCWV2YWwoIlwkdmFsdWUgPSBcJCR7bmFtZX07Iik7CgkJCQlpZiAoJG5hbWUgPT0gImRldGFpbHMiICYmICRzdWZmaXggPT0gInhtbCIpIHsKCQkJCQkkdmFsdWUgPSBnZXRfY2RhdGEoJHZhbHVlKTsKCQkJCX0KCQkJCSRvdXQgPSBzdHJfcmVwbGFjZSgieyIgLiAkbmFtZSAuICJ9IiwgJHZhbHVlLCAkb3V0KTsKCQkJfQoJCQkkaHRtX2l0ZW1fZGV0YWlsc19hbGwgLj0gJG91dDsKCQl9CgkJJG91dCA9ICRodG1fbGlzdF9yb3c7CgkJJG91dCA9IHN0cl9yZXBsYWNlKCJ7TElTVF9DT0x9IiwgJGh0bV9pdGVtX2RldGFpbHNfYWxsLCAkb3V0KTsKCQkkaHRtX2l0ZW1zIC49ICRvdXQ7Cgl9Cn0KCiRodG0gPSBzdHJfcmVwbGFjZSgie0xJU1RfUk9XfSIsICRodG1faXRlbXMsICRodG0pOwoKaWYgKCRhc3AgIT0gInJha3V0ZW4iKSB7CgkkaHRtID0gcmVtb3ZlX3N0cl9zcGFuKCRodG0sICJSQUtVVEVOIik7Cn0KaWYgKCRhc3AgIT0gInJha3V0ZW5fdHJhdmVsIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiUkFLVVRFTl9UUkFWRUwiKTsKfQppZiAoJGFzcCAhPSAiYW1hem9uIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiQU1BWk9OIik7Cn0KaWYgKCRhc3AgIT0gImRlbm5vIikgewoJJGh0bSA9IHJlbW92ZV9zdHJfc3BhbigkaHRtLCAiREVOTk8iKTsKfQoKaWYgKCRzdWZmaXggPT0gInhtbCIpIHsKCWhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3htbDsgY2hhcnNldD1VVEYtOCIpOwp9CgpwcmludCBtYl9jb252ZXJ0X2VuY29kaW5nKCRodG0sICRvdXRfZW5jb2RpbmcpOwo="));?>