<module>
<baseinfo>
name=UCenter模块
team=织梦官方
time=2009-08-11
email=card126@gmail.com
url=http://www.dedecms.com
hash=bea7dee377430430cc03219c827a4fb8
indexname=
indexurl=
ismember=0
autosetup=1
autodel=1
lang=utf-8
moduletype=soft
</baseinfo>
<systemfile>
<menustring>
PG06dG9wIG5hbWU9J1VDZW50ZXLmqKHlnZcnIGM9JzYsJyBkaXNwbGF5PSdibG9jaycgcmFuaz0nJz4NCjxtOml0ZW0gbmFtZT0nVUNlbnRlcumFjee9ricgbGluaz0nYXBpX3VjZW50ZXIucGhwJyByYW5rPScnIHRhcmdldD0nbWFpbicgLz4NCjwvbTp0b3A+
</menustring>
<readme>
PHAgc3R5bGU9J2xpbmUtaGVpZ2h0OjE1MCUnPjxwIHN0eWxlPSdsaW5lLWhlaWdodDoxNTAlJz48cCBzdHlsZT0nbGluZS1oZWlnaHQ6MTUwJSc+54mI5p2D5omA5pyJIDIwMDMtMjAwOO+8jERlZGVDbXMuY29tIOS/neeVmeaJgOacieadg+WIqeOAgiA8YnIgLz48YnIgLz48YnIgLz4NCuaEn+iwouaCqOmAieaLqee7h+aipuWGheWuueeuoeeQhuezu+e7n++8iOS7peS4i+eugOensERlZGVDbXPvvInvvIxEZWRlQ21z5piv55uu5YmN5Zu95YaF5pyA5by65aSn44CB5pyA56iz5a6a55qE5Lit5bCP5Z6L6Zeo5oi3572R56uZ5bu66K6+6Kej5Yaz5pa55qGI5LmL5LiA77yM5bGF5LqOIFBIUCArIE15U1FMIOeahOaKgOacr+W8gOWPke+8jOWFqOmDqOa6kOeggeW8gOaUvuOAgkRlZGVDbXMg55qE5a6Y5pa5572R5Z2A5piv77yaIHd3dy5kZWRlY21zLmNvbSDkuqTmtYHorrrlnZvvvJogYmJzLmRlZGVjbXMuY29tPGJyIC8+PGJyIC8+PGJyIC8+DQrkuLrkuobkvb/kvaDmraPnoa7lubblkIjms5XnmoTkvb/nlKjmnKzova/ku7bvvIzor7fkvaDlnKjkvb/nlKjliY3liqHlv4XpmIXor7vmuIXmpZrkuIvpnaLnmoTljY/orq7mnaHmrL7vvJo8YnIgLz48YnIgLz48YnIgLz4NCuS4gOOAgeacrOaOiOadg+WNj+iurumAgueUqOS4lOS7hemAgueUqOS6jiBEZWRlQ21zIDUueC54IOeJiOacrO+8jERlZGVDbXPlrpjmlrnlr7nmnKzmjojmnYPljY/orq7nmoTmnIDnu4jop6Pph4rmnYPjgIIgPGJyIC8+PGJyIC8+PGJyIC8+DQrkuozjgIHljY/orq7orrjlj6/nmoTmnYPliKkgPGJyIC8+PGJyIC8+PGJyIC8+DQox44CB5oKo5Y+v5Lul5Zyo5a6M5YWo6YG15a6I5pys5pyA57uI55So5oi35o6I5p2D5Y2P6K6u55qE5Z+656GA5LiK77yM5bCG5pys6L2v5Lu25bqU55So5LqO6Z2e5ZWG5Lia55So6YCU77yM6ICM5LiN5b+F5pSv5LuY6L2v5Lu254mI5p2D5o6I5p2D6LS555So44CCIDxiciAvPjxiciAvPjxiciAvPg0KMuOAgeaCqOWPr+S7peWcqOWNj+iuruinhOWumueahOe6puadn+WSjOmZkOWItuiMg+WbtOWGheS/ruaUuSBEZWRlQ21zIOa6kOS7o+eggeaIlueVjOmdoumjjuagvOS7pemAguW6lOaCqOeahOe9keermeimgeaxguOAgiA8YnIgLz48YnIgLz48YnIgLz4NCjPjgIHmgqjmi6XmnInkvb/nlKjmnKzova/ku7bmnoTlu7rnmoTnvZHnq5nlhajpg6jlhoXlrrnmiYDmnInmnYPvvIzlubbni6znq4vmib/mi4XkuI7ov5nkupvlhoXlrrnnmoTnm7jlhbPms5XlvovkuYnliqHjgIIgPGJyIC8+PGJyIC8+PGJyIC8+DQo044CB6I635b6X5ZWG5Lia5o6I5p2D5LmL5ZCO77yM5oKo5Y+v5Lul5bCG5pys6L2v5Lu25bqU55So5LqO5ZWG5Lia55So6YCU77yM5ZCM5pe25L6d5o2u5omA6LSt5Lmw55qE5o6I5p2D57G75Z6L5Lit56Gu5a6a55qE5oqA5pyv5pSv5oyB5YaF5a6577yM6Ieq6LSt5Lmw5pe25Yi76LW377yM5Zyo5oqA5pyv5pSv5oyB5pyf6ZmQ5YaF5oul5pyJ6YCa6L+H5oyH5a6a55qE5pa55byP6I635b6X5oyH5a6a6IyD5Zu05YaF55qE5oqA5pyv5pSv5oyB5pyN5Yqh44CC5ZWG5Lia5o6I5p2D55So5oi35Lqr5pyJ5Y+N5pig5ZKM5o+Q5Ye65oSP6KeB55qE5p2D5Yqb77yM55u45YWz5oSP6KeB5bCG6KKr5L2c5Li66aaW6KaB6ICD6JmR77yM5L2G5rKh5pyJ5LiA5a6a6KKr6YeH57qz55qE5om/6K+65oiW5L+d6K+B44CCIDxiciAvPjxiciAvPjxiciAvPg0K5LiJ44CB5Y2P6K6u6KeE5a6a55qE57qm5p2f5ZKM6ZmQ5Yi2IDxiciAvPjxiciAvPjxiciAvPg0KMeOAgeacquiOt+WVhuS4muaOiOadg+S5i+WJje+8jOS4jeW+l+WwhuacrOi9r+S7tueUqOS6juWVhuS4mueUqOmAlO+8iOWMheaLrOS9huS4jemZkOS6juS8geS4mue9keermeOAgee7j+iQpeaAp+e9keermeOAgeS7peiQpeWIqeS4uuebrueahOaIluWunueOsOebiOWIqeeahOe9keerme+8ieOAgui0reS5sOWVhuS4muaOiOadg+ivt+eZu+mZhiBiYnMuZGVkZWNtcy5jb20g5LqG6Kej5pyA5paw6K+05piO44CCIDxiciAvPjxiciAvPjxiciAvPg0KMuOAgeacque7j+WumOaWueiuuOWPr++8jOS4jeW+l+WvueacrOi9r+S7tuaIluS4juS5i+WFs+iBlOeahOWVhuS4muaOiOadg+i/m+ihjOWHuuenn+OAgeWHuuWUruOAgeaKteaKvOaIluWPkeaUvuWtkOiuuOWPr+ivgeOAgiA8YnIgLz48YnIgLz48YnIgLz4NCjPjgIHkuI3nrqHkvaDnmoTnvZHnq5nmmK/lkKbmlbTkvZPkvb/nlKggRGVkZUNtcyDvvIzov5jmmK/pg6jku73moI/nm67kvb/nlKggRGVkZUNtc++8jOWcqOS9oOS9v+eUqOS6hiBEZWRlQ21zIOeahOe9keermeS4u+mhteS4iuW/hemhu+WKoOS4iiBEZWRlQ21zIOWumOaWuee9keWdgCh3d3cuZGVkZWNtcy5jb20p55qE6ZO+5o6l44CCIDxiciAvPjxiciAvPjxiciAvPg0KNOOAgeacque7j+WumOaWueiuuOWPr++8jOemgeatouWcqCBEZWRlQ21zIOeahOaVtOS9k+aIluS7u+S9lemDqOWIhuWfuuehgOS4iuS7peWPkeWxleS7u+S9lea0vueUn+eJiOacrOOAgeS/ruaUueeJiOacrOaIluesrOS4ieaWueeJiOacrOeUqOS6jumHjeaWsOWIhuWPkeOAgiA8YnIgLz48YnIgLz48YnIgLz4NCjXjgIHlpoLmnpzmgqjmnKrog73pgbXlrojmnKzljY/orq7nmoTmnaHmrL7vvIzmgqjnmoTmjojmnYPlsIbooqvnu4jmraLvvIzmiYDooqvorrjlj6/nmoTmnYPliKnlsIbooqvmlLblm57vvIzlubbmib/mi4Xnm7jlupTms5XlvovotKPku7vjgIIgPGJyIC8+PGJyIC8+PGJyIC8+DQrlm5vjgIHmnInpmZDmi4Xkv53lkozlhY3otKPlo7DmmI4gPGJyIC8+PGJyIC8+PGJyIC8+DQox44CB5pys6L2v5Lu25Y+K5omA6ZmE5bim55qE5paH5Lu25piv5L2c5Li65LiN5o+Q5L6b5Lu75L2V5piO56Gu55qE5oiW6ZqQ5ZCr55qE6LWU5YG/5oiW5ouF5L+d55qE5b2i5byP5o+Q5L6b55qE44CCIDxiciAvPjxiciAvPjxiciAvPg0KMuOAgeeUqOaIt+WHuuS6juiHquaEv+iAjOS9v+eUqOacrOi9r+S7tu+8jOaCqOW/hemhu+S6huino+S9v+eUqOacrOi9r+S7tueahOmjjumZqe+8jOWcqOWwmuacqui0reS5sOS6p+WTgeaKgOacr+acjeWKoeS5i+WJje+8jOaIkeS7rOS4jeaJv+ivuuWvueWFjei0ueeUqOaIt+aPkOS+m+S7u+S9leW9ouW8j+eahOaKgOacr+aUr+aMgeOAgeS9v+eUqOaLheS/ne+8jOS5n+S4jeaJv+aLheS7u+S9leWboOS9v+eUqOacrOi9r+S7tuiAjOS6p+eUn+mXrumimOeahOebuOWFs+i0o+S7u+OAgiA8YnIgLz48YnIgLz48YnIgLz4NCjPjgIHnlLXlrZDmlofmnKzlvaLlvI/nmoTmjojmnYPljY/orq7lpoLlkIzlj4zmlrnkuabpnaLnrb7nvbLnmoTljY/orq7kuIDmoLfvvIzlhbfmnInlrozlhajnmoTlkoznrYnlkIznmoTms5XlvovmlYjlipvjgILmgqjkuIDml6blvIDlp4vnoa7orqTmnKzljY/orq7lubblronoo4UgRGVkZUNtc++8jOWNs+iiq+inhuS4uuWujOWFqOeQhuino+W5tuaOpeWPl+acrOWNj+iurueahOWQhOmhueadoeasvu+8jOWcqOS6q+acieS4iui/sOadoeasvuaOiOS6iOeahOadg+WKm+eahOWQjOaXtu+8jOWPl+WIsOebuOWFs+eahOe6puadn+WSjOmZkOWItuOAguWNj+iuruiuuOWPr+iMg+WbtOS7peWklueahOihjOS4uu+8jOWwhuebtOaOpei/neWPjeacrOaOiOadg+WNj+iuruW5tuaehOaIkOS+teadg++8jOaIkeS7rOacieadg+maj+aXtue7iOatouaOiOadg++8jOi0o+S7pOWBnOatouaNn+Wus++8jOW5tuS/neeVmei/veeptuebuOWFs+i0o+S7u+eahOadg+WKm+OAgiA8YnIgLz48YnIgLz48YnIgLz4NCjTjgIHlpoLmnpzmnKzova/ku7bluKbmnInlhbblroPova/ku7bnmoTmlbTlkIhBUEnnpLrojIPkvovlrZDljIXvvIzov5nkupvmlofku7bniYjmnYPkuI3lsZ7kuo7mnKzova/ku7blrpjmlrnvvIzlubbkuJTov5nkupvmlofku7bmmK/msqHnu4/ov4fmjojmnYPlj5HluIPnmoTvvIzor7flj4LogIPnm7jlhbPova/ku7bnmoTkvb/nlKjorrjlj6/lkIjms5XnmoTkvb/nlKjjgII8YnIgLz48YnIgLz48YnIgLz4NCuWNj+iuruWPkeW4g+aXtumXtO+8miAyMDA45bm0OOaciDIw5pelIEJ5IERlZGVDbXMuY29tPC9wPjwvcD48L3A+
</readme>
<setupsql40>

</setupsql40>
<delsql>

</delsql>
<setup>

</setup>
<uninstall>

</uninstall>
<oldfilelist>
api_ucenter.php
templets/api_ucenter_edit.htm
templets/api_ucenter_install.htm
../uc_client
../api
</oldfilelist>
</systemfile>

<modulefiles>
<file type='file' name='api_ucenter.php'>
PD9waHANCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4iL2NvbmZpZy5waHAiKTsNCkNoZWNrUHVydmlldygnYXBpX3VjZW50ZXInKTsNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJykpeyBmdW5jdGlvbiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRzKQ0Kew0KCSRmcCA9IEBmb3BlbigkZmlsZW5hbWUsICd3Jyk7DQoJQGZ3cml0ZSgkZnAsICRzKTsNCglAZmNsb3NlKCRmcCk7DQoJcmV0dXJuIFRSVUU7DQp9fQ0KcmVxdWlyZV9vbmNlKERFREVJTkMuJy9kZWRldGVtcGxhdGUuY2xhc3MucGhwJyk7DQppZihmaWxlX2V4aXN0cyhERURFUk9PVC4nL3VjX2NsaWVudC9jbGllbnQucGhwJykpDQp7DQoJaWYoIWRlZmluZWQoJ1VDX0FQSScpKSBkZWZpbmUoJ1VDX0FQSScsICcnKTsNCglpbmNsdWRlX29uY2UgREVERVJPT1QuJy91Y19jbGllbnQvY2xpZW50LnBocCc7DQp9DQplbHNlDQp7DQoJU2hvd01zZygn6K+35a6J6KOFVUNlbnRlcuaooeWdlyEnLC0xKTsNCglleGl0KCk7DQp9DQoNCiRkb3Bvc3QgPSBhcGlfZ3BjKCdkb3Bvc3QnLCdSJyk7DQoNCiR1YyA9IG5ldyBhcGlfdWNlbnRlcigkZG9wb3N0KTsNCg0KY2xhc3MgYXBpX3VjZW50ZXINCnsNCgl2YXIgJGFjdGlvbjsNCgl2YXIgJGR0cDsNCgl2YXIgJGNvbmZpZzsNCgkNCgkvL3BocDXmnoTpgKDlh73mlbBQSFA+PTUuMA0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCRhYyA9ICcnKQ0KCXsNCgkJJGFjdGlvbiA9ICd1Y18nLihlbXB0eSgkYWMpfHwoIWluX2FycmF5KCRhYyxhcnJheSgnaW5zdGFsbCcsJ2VkaXQnKSkpID8gJ3Nob3cnIDogdHJpbSgkYWMpKTsNCgkJJHRoaXMtPmR0cCA9IG5ldyBEZWRlVGVtcGxhdGUoKTsNCgkJJHRoaXMtPmNvbmZpZyA9IERFREVJTkMuJy9jb21tb24uaW5jLnBocCc7DQoJCSR0aGlzLT4kYWN0aW9uKCk7DQoJfQ0KCQ0KCS8v5p6E6YCg57G75oiQ5ZGYUEhQPDUuMA0KCWZ1bmN0aW9uIGFwaV91Y2VudGVyKCRhYyA9ICcnKQ0KCXsNCgkJJHRoaXMtPl9fY29uc3RydWN0KCRhYyk7DQoJfQ0KCQ0KCWZ1bmN0aW9uIHVjX2luc3RhbGwoKQ0KCXsNCgkJJHVjX3NldGluZ3MgPSBhcGlfZ3BjKCd1Y19zZXRpbmdzJywnUCcpOw0KCQkNCgkJaWYoIWlzc2V0KCR1Y19zZXRpbmdzWydhdXRoa2V5J10pIHx8IGVtcHR5KCR1Y19zZXRpbmdzWydhdXRoa2V5J10pKQ0KCQl7DQoJCQlTaG93TXNnKCfor7floavlhpl1Y+WIm+Wni+S6uuWvhueggSEnLC0xKTsNCgkJCWV4aXQoKTsNCgkJfQ0KCQkNCgkJJHVjX3NldGluZ3NbJ3VjYXBpJ10gPSBwcmVnX3JlcGxhY2UoIi9cLyQvIiwgJycsIHRyaW0oJHVjX3NldGluZ3NbJ3VjYXBpJ10pKTsNCgkJDQoJCWlmKGVtcHR5KCR1Y19zZXRpbmdzWyd1Y2FwaSddKSB8fCAhcHJlZ19tYXRjaCgiL14oaHR0cDpcL1wvKS9pIiwgJHVjX3NldGluZ3NbJ3VjYXBpJ10pKQ0KCQl7DQoJCQlTaG93TXNnKCfor7floavmraPnoa7nmoTmnI3liqHnq6/lnLDlnYDku6VodHRwOi8v5byA5aS0IScsLTEpOw0KCQkJZXhpdCgpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJaWYoISR1Y19zZXRpbmdzWyd1Y2lwJ10pDQoJCQl7DQoJCQkJJHRlbXAgPSBAcGFyc2VfdXJsKCR1Y19zZXRpbmdzWyd1Y2FwaSddKTsNCgkJCQkkdWNfc2V0aW5nc1sndWNhcGknXSA9IGdldGhvc3RieW5hbWUoJHRlbXBbJ2hvc3QnXSk7DQoJCQkJaWYoaXAybG9uZygkdWNfc2V0aW5nc1sndWNhcGknXSkgPT0gLTEgfHwgaXAybG9uZygkdWNfc2V0aW5nc1sndWNhcGknXSkgPT09IEZBTFNFKQ0KCQkJCXsNCgkJCQkJJHVjX3NldGluZ3NbJ3VjaXAnXSA9ICcxMjcuMC4wLjEnOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkNCgkJJHVjaW5mbyA9IGFwaV9mb3BlbigkdWNfc2V0aW5nc1sndWNhcGknXS4nL2luZGV4LnBocD9tPWFwcCZhPXVjaW5mbycsIDUwMCwgJycsICcnLCAxLCAkdWNfc2V0aW5nc1sndWNpcCddKTsNCgkJbGlzdCgkc3RhdHVzLCAkdWN2ZXJzaW9uLCAkdWNyZWxlYXNlLCAkdWNjaGFyc2V0LCAkdWNkYmNoYXJzZXQsICRhcHB0eXBlcykgPSBleHBsb2RlKCd8JywgJHVjaW5mbyk7DQoJCQ0KCQlpZigkc3RhdHVzICE9ICdVQ19TVEFUVVNfT0snKQ0KCQl7DQoJCQlTaG93TXNnKCd1Y+acjeWKoeerr+WcsOWdgOaXoOaViCzor7fku5Tnu4bmo4Dmn6Xmgqjlronoo4XnmoR1Y+acjeWKoeerr+WcsOWdgCEnLC0xKTsNCgkJCWV4aXQoKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSR1Y2RiY2hhcnNldCA9IHN0cnRvbG93ZXIoJHVjZGJjaGFyc2V0ID8gc3RyX3JlcGxhY2UoJy0nLCAnJywgJHVjZGJjaGFyc2V0KSA6ICR1Y2RiY2hhcnNldCk7DQoJCQlpZihVQ19DTElFTlRfVkVSU0lPTiA+ICR1Y3ZlcnNpb24pDQoJCQl7DQoJCQkJU2hvd01zZygndWPmnI3liqHnq6/niYjmnKzkuI3kuIDoh7Qs5oKo5b2T5YmN55qEdWPlrqLmnI3nq6/niYjmnKzkuLo6Jy5VQ19DTElFTlRfVkVSU0lPTi4nLOiAjOacjeWKoeerr+eJiOacrOS4ujonLiR1Y3ZlcnNpb24uJyEnLC0xKTsNCgkJCQlleGl0KCk7CQ0KCQkJfQ0KCQkJZWxzZWlmKCR1Y2RiY2hhcnNldCAhPSAndXRmOCcpDQoJCQl7DQoJCQkJU2hvd01zZygndWPmnI3liqHnq6/nvJbnoIHkuLo6Jy4kdWNkYmNoYXJzZXQuJ+S4jkRlZGVDTVPnvJbnoIHkuI3kuIDoh7Qh6KaB5rGC5oKo55qEdWPmnI3liqHnq6/nvJbnoIHkuLo6dXRmOOe8lueggS4nLC0xKTsNCgkJCQlleGl0KCk7CQ0KCQkJfQ0KCQkJLy/moIfnrb7lupTnlKjmqKHmnb8NCgkJCSRhcHBfdGFndGVtcGxhdGVzID0gJ2FwcHRhZ3RlbXBsYXRlc1t0ZW1wbGF0ZV09Jy51cmxlbmNvZGUoJzxhIGhyZWY9Int1cmx9IiB0YXJnZXQ9Il9ibGFuayI+e3RpdGxlfTwvYT4nKS4nJicuDQoJCQknYXBwdGFndGVtcGxhdGVzW2ZpZWxkc11bdGl0bGVdPScudXJsZW5jb2RlKCfmoIfpopgnKS4nJicuDQoJCQknYXBwdGFndGVtcGxhdGVzW2ZpZWxkc11bd3JpdGVyXT0nLnVybGVuY29kZSgn5L2c6ICFJykuJyYnLg0KCQkJJ2FwcHRhZ3RlbXBsYXRlc1tmaWVsZHNdW3B1YmRhdGVdPScudXJsZW5jb2RlKCfml7bpl7QnKS4nJicuDQoJCQknYXBwdGFndGVtcGxhdGVzW2ZpZWxkc11bdXJsXT0nLnVybGVuY29kZSgn5Zyw5Z2AJyk7DQoJCQkNCgkJCSRwb3N0ZGF0YSA9ICdtPWFwcCZhPWFkZCZ1Y2ZvdW5kZXI9JnVjZm91bmRlcnB3PScudXJsZW5jb2RlKCR1Y19zZXRpbmdzWydhdXRoa2V5J10pLicmYXBwdHlwZT1PVEhFUiZhcHBuYW1lPScudXJsZW5jb2RlKCRHTE9CQUxTWydjZmdfd2VibmFtZSddKS4nJmFwcHVybD0nLnVybGVuY29kZSgkR0xPQkFMU1snY2ZnX2Jhc2Vob3N0J10pLicmYXBwaXA9JmFwcGNoYXJzZXQ9dXRmLTgmYXBwZGJjaGFyc2V0PXV0ZjgmJy4kYXBwX3RhZ3RlbXBsYXRlcy4nJnJlbGVhc2U9Jy5VQ19DTElFTlRfUkVMRUFTRTsNCgkJDQoJCQkkdWNjb25maWcgPSBhcGlfZm9wZW4oJHVjX3NldGluZ3NbJ3VjYXBpJ10uJy9pbmRleC5waHAnLCA1MDAsICRwb3N0ZGF0YSwgJycsIDEsICR1Y19zZXRpbmdzWyd1Y2lwJ10pOw0KCQkJDQoJCQlpZihzdHJzdHIoJHVjY29uZmlnLCc8P3htbCcpKQ0KCQkJew0KCQkJCSR0ZW1wID0gZXhwbG9kZSgnPD94bWwnLCAkdWNjb25maWcpOw0KCQkJCSR1Y2NvbmZpZyA9ICR0ZW1wWzBdOyB1bnNldCgkdGVtcCk7DQoJCQl9DQoJCQkNCgkJCWlmKGVtcHR5KCR1Y2NvbmZpZykpDQoJCQl7DQoJCQkJU2hvd01zZygn6K+35aGr5YaZ5pyJ5pWI55qE6YWN572u5L+h5oGvIScsLTEpOw0KCQkJCWV4aXQoKTsNCgkJCX0NCgkJCWVsc2VpZigkdWNjb25maWcgPT0gJy0xJykNCgkJCXsNCgkJCQlTaG93TXNnKCfliJvlp4vkurrlr4bnoIHplJnor68hJywtMSk7DQoJCQkJZXhpdCgpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWxpc3QoJGFwcGF1dGhrZXksICRhcHBpZCkgPSBleHBsb2RlKCd8JywgJHVjY29uZmlnKTsNCgkJCQlpZihlbXB0eSgkYXBwYXV0aGtleSkgfHwgZW1wdHkoJGFwcGlkKSkNCgkJCQl7DQoJCQkJCVNob3dNc2coJ+aVsOaNruiOt+WPluWksei0pSEnLC0xKTsNCgkJCQkJZXhpdCgpOw0KCQkJCX0NCgkJCQllbHNlaWYoJHN1Y2NlZWQgPSBhcGlfd3JpdGVfY29uZmlnKCR1Y2NvbmZpZy4ifCIuJHVjX3NldGluZ3NbJ3VjYXBpJ10uInwiLiR1Y19zZXRpbmdzWyd1Y2lwJ10sICR0aGlzLT5jb25maWcpKQ0KCQkJCXsNCgkJCQkJU2hvd01zZygn5a6J6KOF5oiQ5YqfIScsLTEpOw0KCQkJCQlleGl0KCk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCVNob3dNc2coJ+WGmeWFpemFjee9ruaVsOaNruWksei0pSEnLiR0aGlzLT5jb25maWcuJyDor7forr7nva7lj6/lhpnmnYPpmZAhJywtMSk7DQoJCQkJCWV4aXQoKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoJDQoJZnVuY3Rpb24gdWNfZWRpdCgpDQoJew0KCQkkdWNfc2V0aW5ncyA9IGFwaV9ncGMoJ3VjX3NldGluZ3MnLCdQJyk7CQkNCgkJJHVjX2RicGFzcyA9ICR1Y19zZXRpbmdzWydkYnBhc3MnXSA9PSAnKioqKioqKionID8gVUNfREJQVyA6ICR1Y19zZXRpbmdzWydkYnBhc3MnXTsJDQoJCSRmcCA9IGZvcGVuKCR0aGlzLT5jb25maWcsICdyJyk7DQoJCSRjb250ZW50ID0gZnJlYWQoJGZwLCBmaWxlc2l6ZSgkdGhpcy0+Y29uZmlnKSk7DQoJCSRjb250ZW50ID0gdHJpbSgkY29udGVudCk7DQoJCSRjb250ZW50ID0gc3Vic3RyKCRjb250ZW50LCAtMikgPT0gJz8+JyA/IHN1YnN0cigkY29udGVudCwgMCwgLTIpIDogJGNvbnRlbnQ7DQoJCSRjb250ZW50ID0gc3Ryc3RyKCRjb250ZW50LCAnX3xjZmdffEdMT0JBTFMnKSA/IHN0cl9yZXBsYWNlKCdffGNmZ198R0xPQkFMUycsJ2NmZ198R0xPQkFMUycsJGNvbnRlbnQpIDogJGNvbnRlbnQ7DQoJCWZjbG9zZSgkZnApOw0KCQkNCgkJJGNvbm5lY3QgPSAnJzsJCQ0KCQlpZigkdWNfc2V0aW5nc1snY29ubmVjdCddKQ0KCQl7DQoJCQkkdWNfZGJsaW5rID0gQG15c3FsX2Nvbm5lY3QoJHVjX3NldGluZ3NbJ2RiaG9zdCddLCAkdWNfc2V0aW5nc1snZGJ1c2VyJ10sICR1Y19kYnBhc3MsIDEpOw0KCQkJaWYoISR1Y19kYmxpbmspDQoJCQl7DQoJCQkJU2hvd01zZygn5pWw5o2u5bqT6L+e5o6l5aSx6LSlIScsLTEpOw0KCQkJCWV4aXQoKTsNCgkJCX1lbHNlew0KCQkJCW15c3FsX2Nsb3NlKCR1Y19kYmxpbmspOw0KCQkJfQ0KCQkJDQoJCQkkY29ubmVjdCA9ICdteXNxbCc7DQoJCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCSE9TVCcsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0RCSE9TVCcsICciLiR1Y19zZXRpbmdzWydkYmhvc3QnXS4iJyk7Iik7DQoJCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCVVNFUicsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0RCVVNFUicsICciLiR1Y19zZXRpbmdzWydkYnVzZXInXS4iJyk7Iik7DQoJCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCUFcnLFxzKicuKj8nXCk7L2kiLCAiZGVmaW5lKCdVQ19EQlBXJywgJyIuJHVjX2RicGFzcy4iJyk7Iik7DQoJCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCTkFNRScsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0RCTkFNRScsICciLiR1Y19zZXRpbmdzWydkYm5hbWUnXS4iJyk7Iik7DQoJCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCVEFCTEVQUkUnLFxzKicuKj8nXCk7L2kiLCAiZGVmaW5lKCdVQ19EQlRBQkxFUFJFJywgJ2AiLiR1Y19zZXRpbmdzWydkYm5hbWUnXS4nYC4nLiR1Y19zZXRpbmdzWydkYnRhYmxlcHJlJ10uIicpOyIpOw0KCQl9DQoJCQ0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0NPTk5FQ1QnLFxzKicuKj8nXCk7L2kiLCAiZGVmaW5lKCdVQ19DT05ORUNUJywgJyRjb25uZWN0Jyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfS0VZJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfS0VZJywgJyIuJHVjX3NldGluZ3NbJ2F1dGhrZXknXS4iJyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfQVBJJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfQVBJJywgJyIuJHVjX3NldGluZ3NbJ3VjYXBpJ10uIicpOyIpOw0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0lQJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfSVAnLCAnIi4kdWNfc2V0aW5nc1sndWNpcCddLiInKTsiKTsNCgkJJGNvbnRlbnQgPSBhcGlfaW5zZXJ0X2NvbmZpZygkY29udGVudCwgIi9kZWZpbmVcKCdVQ19BUFBJRCcsXHMqJz8uKj8nP1wpOy9pIiwgImRlZmluZSgnVUNfQVBQSUQnLCAnIi5VQ19BUFBJRC4iJyk7Iik7DQoJCSRjb250ZW50IC49ICc/Pic7DQoJCQ0KCQlpZigkZnAgPSBAZm9wZW4oJHRoaXMtPmNvbmZpZywgJ3cnKSkNCgkJew0KCQkJQGZ3cml0ZSgkZnAsIHRyaW0oJGNvbnRlbnQpKTsNCgkJCUBmY2xvc2UoJGZwKTsNCgkJCVNob3dNc2coJ+mFjee9ruW3sue7j+abtOaUuSEnLC0xKTsNCgkJCWV4aXQoKTsNCgkJfWVsc2V7DQoJCQlTaG93TXNnKCflhpnlhaXphY3nva7mlbDmja7lpLHotKUhJy4kdGhpcy0+Y29uZmlnLicg6K+36K6+572u5Y+v5YaZ5p2D6ZmQIScsLTEpOw0KCQkJZXhpdCgpOw0KCQl9DQoJfQkNCgkNCglmdW5jdGlvbiB1Y19zaG93KCkNCgl7DQoJCSR0aGlzLT5kdHAtPkFzc2lnbigndWNfY29uZmlnX2ZpbGUnLCR0aGlzLT5jb25maWcpOw0KCQkNCgkJaWYoIWRlZmluZWQoJ1VDX0FQUElEJykpDQoJCXsNCgkJCSR0aGlzLT5kdHAtPkxvYWRUZW1wbGF0ZShERURFQURNSU4uJy90ZW1wbGV0cy9hcGlfdWNlbnRlcl9pbnN0YWxsLmh0bScpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHVjX2FwaV9vcGVuID0gZmFsc2U7CQkJDQoJCQkkdWNhcHBhcnJheSA9IHVjX2FwcF9scygpOw0KCQkJZm9yZWFjaCgkdWNhcHBhcnJheSBhcyAkYXBwYXJyYXkpDQoJCQl7DQoJCQkJaWYoJGFwcGFycmF5WydhcHBpZCddID09IFVDX0FQUElEKQ0KCQkJCXsNCgkJCQkJJHVjX2FwaV9vcGVuID0gdHJ1ZTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KCQ0KCQkJaWYoISR1Y19hcGlfb3BlbikNCgkJCXsNCgkJCQlTaG93TXNnKCJEZWRlQ01T5rKh5om+5Yiw5q2j56Gu55qEdWPphY3nva7vvIEiLC0xKTsNCgkJCQlleGl0KCk7DQoJCQl9DQoJCQkNCgkNCgkJCWxpc3QoJGRibmFtZSwkZGJ0YWJsZXByZSkgPSBleHBsb2RlKCcuJyxzdHJfcmVwbGFjZSgnYCcsJycsVUNfREJUQUJMRVBSRSkpOwkNCgkJCSR1Y19zZXRpbmdzID0gYXJyYXkoJ2FwcGlkJyA9PiBVQ19BUFBJRCwgJ3VjYXBpJyA9PiBVQ19BUEksICdjb25uZWN0JyA9PiBVQ19DT05ORUNULCAnZGJob3N0JyA9PiBVQ19EQkhPU1QsICdkYnVzZXInID0+IFVDX0RCVVNFUiwnZGJwYXNzJyA9PiBVQ19EQlBXLCAnZGJuYW1lJyA9PiAkZGJuYW1lLCAnZGJ0YWJsZXByZScgPT4gJGRidGFibGVwcmUsJ3VjaXAnID0+IFVDX0lQLCdhdXRoa2V5JyA9PiBVQ19LRVkpOw0KCQkNCgkJCSR0aGlzLT5kdHAtPkFzc2lnbigndWNfc2V0aW5ncycsJHVjX3NldGluZ3MpOw0KCQkJJHRoaXMtPmR0cC0+TG9hZFRlbXBsYXRlKERFREVBRE1JTi4nL3RlbXBsZXRzL2FwaV91Y2VudGVyX2VkaXQuaHRtJyk7DQoJCX0NCgkJJHRoaXMtPmR0cC0+RGlzcGxheSgpOw0KCQlleGl0KCk7DQoJfQ0KfQ0KLyoNCmNsYXNzIHVjX2Z1bmN0aW9uey4uLn0NCiovDQpmdW5jdGlvbiBhcGlfZm9wZW4oJHVybCwgJGxpbWl0ID0gMCwgJHBvc3QgPSAnJywgJGNvb2tpZSA9ICcnLCAkYnlzb2NrZXQgPSBGQUxTRSwgJGlwID0gJycsICR0aW1lb3V0ID0gMTUsICRibG9jayA9IFRSVUUpDQp7DQoJJHJldHVybiA9ICcnOw0KCSRtYXRjaGVzID0gcGFyc2VfdXJsKCR1cmwpOw0KCSRob3N0ID0gJG1hdGNoZXNbJ2hvc3QnXTsNCgkkcGF0aCA9ICRtYXRjaGVzWydwYXRoJ10gPyAkbWF0Y2hlc1sncGF0aCddLigkbWF0Y2hlc1sncXVlcnknXSA/ICc/Jy4kbWF0Y2hlc1sncXVlcnknXSA6ICcnKSA6ICcvJzsNCgkkcG9ydCA9ICFlbXB0eSgkbWF0Y2hlc1sncG9ydCddKSA/ICRtYXRjaGVzWydwb3J0J10gOiA4MDsNCg0KCWlmKCRwb3N0KQ0KCXsNCgkJJG91dCA9ICJQT1NUICRwYXRoIEhUVFAvMS4wXHJcbiI7DQoJCSRvdXQgLj0gIkFjY2VwdDogKi8qXHJcbiI7DQoJCS8vJG91dCAuPSAiUmVmZXJlcjogJGJvYXJkdXJsXHJcbiI7DQoJCSRvdXQgLj0gIkFjY2VwdC1MYW5ndWFnZTogemgtY25cclxuIjsNCgkJJG91dCAuPSAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcclxuIjsNCgkJJG91dCAuPSAiVXNlci1BZ2VudDogJF9TRVJWRVJbSFRUUF9VU0VSX0FHRU5UXVxyXG4iOw0KCQkkb3V0IC49ICJIb3N0OiAkaG9zdFxyXG4iOw0KCQkkb3V0IC49ICdDb250ZW50LUxlbmd0aDogJy5zdHJsZW4oJHBvc3QpLiJcclxuIjsNCgkJJG91dCAuPSAiQ29ubmVjdGlvbjogQ2xvc2VcclxuIjsNCgkJJG91dCAuPSAiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGVcclxuIjsNCgkJJG91dCAuPSAiQ29va2llOiAkY29va2llXHJcblxyXG4iOw0KCQkkb3V0IC49ICRwb3N0Ow0KCX1lbHNlew0KCQkkb3V0ID0gIkdFVCAkcGF0aCBIVFRQLzEuMFxyXG4iOw0KCQkkb3V0IC49ICJBY2NlcHQ6ICovKlxyXG4iOw0KCQkvLyRvdXQgLj0gIlJlZmVyZXI6ICRib2FyZHVybFxyXG4iOw0KCQkkb3V0IC49ICJBY2NlcHQtTGFuZ3VhZ2U6IHpoLWNuXHJcbiI7DQoJCSRvdXQgLj0gIlVzZXItQWdlbnQ6ICRfU0VSVkVSW0hUVFBfVVNFUl9BR0VOVF1cclxuIjsNCgkJJG91dCAuPSAiSG9zdDogJGhvc3RcclxuIjsNCgkJJG91dCAuPSAiQ29ubmVjdGlvbjogQ2xvc2VcclxuIjsNCgkJJG91dCAuPSAiQ29va2llOiAkY29va2llXHJcblxyXG4iOw0KCX0NCgkkZnAgPSBAZnNvY2tvcGVuKCgkaG9zdCA/ICRob3N0IDogJGlwKSwgJHBvcnQsICRlcnJubywgJGVycnN0ciwgJHRpbWVvdXQpOw0KCWlmKCEkZnApDQoJew0KCQlyZXR1cm4gJyc7DQoJfWVsc2V7DQoJCXN0cmVhbV9zZXRfYmxvY2tpbmcoJGZwLCAkYmxvY2spOw0KCQlzdHJlYW1fc2V0X3RpbWVvdXQoJGZwLCAkdGltZW91dCk7DQoJCUBmd3JpdGUoJGZwLCAkb3V0KTsNCgkJJHN0YXR1cyA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCRmcCk7DQoJCWlmKCEkc3RhdHVzWyd0aW1lZF9vdXQnXSkNCgkJew0KCQkJd2hpbGUgKCFmZW9mKCRmcCkpDQoJCQl7DQoJCQkJaWYoKCRoZWFkZXIgPSBAZmdldHMoJGZwKSkgJiYgKCRoZWFkZXIgPT0gIlxyXG4iIHx8ICAkaGVhZGVyID09ICJcbiIpKQ0KCQkJCXsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkkc3RvcCA9IGZhbHNlOw0KCQkJd2hpbGUoIWZlb2YoJGZwKSAmJiAhJHN0b3ApDQoJCQl7DQoJCQkJJGRhdGEgPSBmcmVhZCgkZnAsICgkbGltaXQgPT0gMCB8fCAkbGltaXQgPiA4MTkyID8gODE5MiA6ICRsaW1pdCkpOw0KCQkJCSRyZXR1cm4gLj0gJGRhdGE7DQoJCQkJaWYoJGxpbWl0KQ0KCQkJCXsNCgkJCQkJJGxpbWl0IC09IHN0cmxlbigkZGF0YSk7DQoJCQkJCSRzdG9wID0gJGxpbWl0IDw9IDA7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCUBmY2xvc2UoJGZwKTsNCgkJcmV0dXJuICRyZXR1cm47DQoJfQ0KfQ0KDQpmdW5jdGlvbiBhcGlfd3JpdGVfY29uZmlnKCRjb25maWcsICRmaWxlKQ0Kew0KCSRzdWNjZXNzID0gZmFsc2U7DQoJbGlzdCgkYXBwYXV0aGtleSwgJGFwcGlkLCAkdWNkYmhvc3QsICR1Y2RibmFtZSwgJHVjZGJ1c2VyLCAkdWNkYnB3LCAkdWNkYmNoYXJzZXQsICR1Y3RhYmxlcHJlLCAkdWNjaGFyc2V0LCAkdWNhcGksICR1Y2lwKSA9IGV4cGxvZGUoJ3wnLCAkY29uZmlnKTsNCgkJDQoJaWYoJGNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZSkpDQoJew0KCQkkY29udGVudCA9IHRyaW0oJGNvbnRlbnQpOw0KCQkkY29udGVudCA9IHN1YnN0cigkY29udGVudCwgLTIpID09ICc/PicgPyBzdWJzdHIoJGNvbnRlbnQsIDAsIC0yKSA6ICRjb250ZW50Ow0KCQkkY29udGVudCA9IHN0cnN0cigkY29udGVudCwgJ198Y2ZnX3xHTE9CQUxTJykgPyBzdHJfcmVwbGFjZSgnX3xjZmdffEdMT0JBTFMnLCdjZmdffEdMT0JBTFMnLCRjb250ZW50KSA6ICRjb250ZW50Ow0KCQkkbGluayA9IG15c3FsX2Nvbm5lY3QoJHVjZGJob3N0LCAkdWNkYnVzZXIsICR1Y2RicHcsIDEpOw0KCQkkdWNfY29ubm5lY3QgPSAkbGluayAmJiBteXNxbF9zZWxlY3RfZGIoJHVjZGJuYW1lLCAkbGluaykgPyAnbXlzcWwnIDogJyc7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfQ09OTkVDVCcsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0NPTk5FQ1QnLCAnJHVjX2Nvbm5uZWN0Jyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfREJIT1NUJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfREJIT1NUJywgJyR1Y2RiaG9zdCcpOyIpOw0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCVVNFUicsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0RCVVNFUicsICckdWNkYnVzZXInKTsiKTsNCgkJJGNvbnRlbnQgPSBhcGlfaW5zZXJ0X2NvbmZpZygkY29udGVudCwgIi9kZWZpbmVcKCdVQ19EQlBXJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfREJQVycsICckdWNkYnB3Jyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfREJOQU1FJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfREJOQU1FJywgJyR1Y2RibmFtZScpOyIpOw0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCQ0hBUlNFVCcsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0RCQ0hBUlNFVCcsICckdWNkYmNoYXJzZXQnKTsiKTsNCgkJJGNvbnRlbnQgPSBhcGlfaW5zZXJ0X2NvbmZpZygkY29udGVudCwgIi9kZWZpbmVcKCdVQ19EQlRBQkxFUFJFJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfREJUQUJMRVBSRScsICdgJHVjZGJuYW1lYC4kdWN0YWJsZXByZScpOyIpOw0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0RCQ09OTkVDVCcsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0RCQ09OTkVDVCcsICcwJyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfS0VZJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfS0VZJywgJyRhcHBhdXRoa2V5Jyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfQVBJJyxccyonLio/J1wpOy9pIiwgImRlZmluZSgnVUNfQVBJJywgJyR1Y2FwaScpOyIpOw0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX0NIQVJTRVQnLFxzKicuKj8nXCk7L2kiLCAiZGVmaW5lKCdVQ19DSEFSU0VUJywgJyR1Y2NoYXJzZXQnKTsiKTsNCgkJJGNvbnRlbnQgPSBhcGlfaW5zZXJ0X2NvbmZpZygkY29udGVudCwgIi9kZWZpbmVcKCdVQ19JUCcsXHMqJy4qPydcKTsvaSIsICJkZWZpbmUoJ1VDX0lQJywgJyR1Y2lwJyk7Iik7DQoJCSRjb250ZW50ID0gYXBpX2luc2VydF9jb25maWcoJGNvbnRlbnQsICIvZGVmaW5lXCgnVUNfQVBQSUQnLFxzKic/Lio/Jz9cKTsvaSIsICJkZWZpbmUoJ1VDX0FQUElEJywgJyRhcHBpZCcpOyIpOw0KCQkkY29udGVudCA9IGFwaV9pbnNlcnRfY29uZmlnKCRjb250ZW50LCAiL2RlZmluZVwoJ1VDX1BQUCcsXHMqJz8uKj8nP1wpOy9pIiwgImRlZmluZSgnVUNfUFBQJywgJzIwJyk7Iik7DQoJCSRjb250ZW50IC49ICJcclxuIi4nPz4nOw0KCQkNCgkJaWYoQGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCAkY29udGVudCkpDQoJCXsNCgkJCSRzdWNjZXNzID0gdHJ1ZTsNCgkJfQ0KCX0NCglyZXR1cm4gJHN1Y2Nlc3M7DQp9DQoNCmZ1bmN0aW9uIGFwaV9pbnNlcnRfY29uZmlnKCRzLCAkZmluZCwgJHJlcGxhY2UpDQp7DQoJaWYocHJlZ19tYXRjaCgkZmluZCwgJHMpKQ0KCXsNCgkJJHMgPSBwcmVnX3JlcGxhY2UoJGZpbmQsICRyZXBsYWNlLCAkcyk7DQoJfWVsc2V7DQoJCS8vIOaPkuWFpeWIsOacgOWQjuS4gOihjA0KCQkkcyAuPSAiXHJcbiIuJHJlcGxhY2U7DQoJfQ0KCXJldHVybiAkczsNCn0NCg0KZnVuY3Rpb24gYXBpX2dwYygkaywgJHZhcj0nUicpDQp7DQoJc3dpdGNoKCR2YXIpDQoJew0KCQljYXNlICdHJzogJHZhciA9ICYkX0dFVDsgYnJlYWs7DQoJCWNhc2UgJ1AnOiAkdmFyID0gJiRfUE9TVDsgYnJlYWs7DQoJCWNhc2UgJ0MnOiAkdmFyID0gJiRfQ09PS0lFOyBicmVhazsNCgkJY2FzZSAnUic6ICR2YXIgPSAmJF9SRVFVRVNUOyBicmVhazsNCgl9DQoJcmV0dXJuIGlzc2V0KCR2YXJbJGtdKSA/ICR2YXJbJGtdIDogTlVMTDsNCn0NCj8+
</file>
<file type='file' name='templets/api_ucenter_edit.htm'>
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+DQo8dGl0bGU+dWNlbnRlcjEuNS4w6YWN572u5ZCR5a+8PC90aXRsZT4NCjxzdHlsZSByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4NCjwhLS0NCip7IHdvcmQtd3JhcDpicmVhay13b3JkOyBvdXRsaW5lOm5vbmU7IH0NCmJvZHl7IGJhY2tncm91bmQ6I0ZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0NCmJvZHksIHRkLCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9ueyBjb2xvcjojNjY2OyBmb250OjEycHggIkx1Y2lkYSBHcmFuZGUiLCBWZXJkYW5hLCBMdWNpZGEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH0NCmJvZHksIHVsLCBkbCwgZGQsIHAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGZvcm0sIGZpZWxkc2V0IHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfQ0KaDEsIGgyLCBoMywgaDQsIGg1LCBoNnsgZm9udC1zaXplOjEycHg7IH0NCmF7IGNvbG9yOiMyMzY2QTg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9DQoJYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0NCglhIGltZ3sgYm9yZGVyOm5vbmU7IH0NCmVtLCBjaXRlLCB0aHsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfQ0KdGFibGV7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfQ0KLyogZm9ybSAqLw0KdGV4dGFyZWEsIGlucHV0eyBwYWRkaW5nOjJweDsgYm9yZGVyOjFweCBzb2xpZDsgYm9yZGVyLWNvbG9yOiM2NjYgI2VlZSAjZWVlICM2NjY7IH0NCmlucHV0LnR4dDpob3ZlciwgaW5wdXQudHh0OmZvY3VzLCB0ZXh0YXJlYTpob3ZlciwgdGV4dGFyZWE6Zm9jdXN7IGJvcmRlci1jb2xvcjojMDlDOyBiYWNrZ3JvdW5kOiNGNUY5RkQ7IH0NCi5yYWRpb3sgbWFyZ2luLXRvcDotMXB4OyBib3JkZXI6bm9uZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB9DQouY2hlY2tib3h7IGhlaWdodDoxNHB4OyBib3JkZXI6bm9uZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB9DQouYnRueyBtYXJnaW46M3B4IDA7IHBhZGRpbmc6MnB4IDVweDsgKnBhZGRpbmc6NHB4IDVweCAxcHg7IGJvcmRlci1jb2xvcjojZGRkICM2NjYgIzY2NiAjZGRkOyBiYWNrZ3JvdW5kOiNEREQ7IGNvbG9yOiMwMDA7IGN1cnNvcjpwb2ludGVyOyB9DQouc2didG57IG1hcmdpbi1sZWZ0OjIwcHg7IHBhZGRpbmc6M3B4IDdweDsgKnBhZGRpbmc6NHB4IDdweCAycHg7IGJvcmRlcjoxcHggc29saWQgI0I1Q0ZEOTsgYmFja2dyb3VuZDojRjJGOUZEOyBjb2xvcjojNjY2OyBmb250LXNpemU6MTJweDsgZm9udC13ZWlnaHQ6NDAwOyB9DQoJLnNnYnRuOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfQ0KLmJpZ2FyZWF7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjMwcHg7IGhlaWdodDoxMjBweDsgfQ0KLm9wdHsgY2xlYXI6Ym90aDsgb3ZlcmZsb3c6aGlkZGVuOyB9DQoJLm9wdCB0aHsgcGFkZGluZzo1cHggMDsgZm9udC13ZWlnaHQ6NzAwOyB0ZXh0LWFsaWduOmxlZnQ7IH0NCgkub3B0IHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9DQoJLm9wdCAudHh0LCAub3B0IHRleHRhcmVheyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IG1hcmdpbi1yaWdodDoxMHB4OyB3aWR0aDoxODBweDsgfQ0KCS5vcHQgc2VsZWN0eyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IG1hcmdpbi1yaWdodDoxMHB4OyB9DQoJLm9wdCAuYXJlYXsgaGVpZ2h0OjgwcHg7IH0NCgkub3B0IC5iaWdhcmVhIHsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDgwcHg7IH0NCgkub3B0IGxhYmVseyBtYXJnaW4tcmlnaHQ6MjBweDsgfQ0KCS5vcHQgcHsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MTgwJTsgfQ0KLyogdGl0bGUgKi8NCmgzeyBmb250LXNpemU6MTRweDsgfQ0KCWgzIC5idG57IG1hcmdpbi1sZWZ0OjEwcHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgfQ0KLm1haW5ib3h7IG1hcmdpbjoxMHB4IDA7IHBhZGRpbmc6MjBweDsgdGV4dC1hbGlnbjpsZWZ0O30NCi0tPg0KPC9zdHlsZT4NCg0KPC9oZWFkPg0KPGJvZHkgYmFja2dyb3VuZD0naW1nL2FsbGJnLmdpZicgbGVmdG1hcmdpbj0nOCcgdG9wbWFyZ2luPSc4Jz4NCjxkaXYgY2xhc3M9Im1haW5ib3giPg0KPGgzIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEwcHg7Ij7kv67mlLnmjqXlj6PphY3nva48YSBocmVmPSJtb2R1bGVfbWFpbi5waHAiIGNsYXNzPSJzZ2J0biI+6L+U5Zue5qih5Z2X5YiX6KGoPC9hPjwvaDM+DQo8Zm9ybSBhY3Rpb249ImFwaV91Y2VudGVyLnBocCIgbWV0aG9kPSJwb3N0Ij4NCgk8aW5wdXQgbmFtZT0iZG9wb3N0IiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJlZGl0IiAvPg0KICAgIDx0YWJsZSBjbGFzcz0ib3B0Ij4NCiAgICA8dHI+DQogICAgICAgIDx0aCBjb2xzcGFuPSIyIj5JRDoge2RlZGU6dmFyLnVjX3NldGluZ3MuYXBwaWQvfTwvdGg+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICAgIDx0aCBjb2xzcGFuPSIyIj7mnI3liqHnq6/lnLDlnYA6PC90aD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0idHh0IiBuYW1lPSJ1Y19zZXRpbmdzW3VjYXBpXSIgdmFsdWU9IntkZWRlOnZhci51Y19zZXRpbmdzLnVjYXBpL30iIC8+PC90ZD4NCiAgICAgICAgPHRkPuWcqOaCqCBVQ2VudGVyICAg5Zyw5Z2A5oiW6ICF55uu5b2V5pS55Y+Y55qE5oOF5Ya15LiL77yM5L+u5pS55q2k6aG577yM5LiA6Iis5oOF5Ya16K+35LiN6KaB5pS55YqoPGJyIC8+DQoJCQkJICDkvovlpoI6IGh0dHA6Ly93d3cuc2l0ZS5jb20vdWNfc2VydmVyICjmnIDlkI7kuI3opoHliqAnLycp44CCPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgICAgPHRoIGNvbHNwYW49IjIiPuacjeWKoeerryBJUDo8L3RoPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ0eHQiIG5hbWU9InVjX3NldGluZ3NbdWNpcF0iIHZhbHVlPSJ7ZGVkZTp2YXIudWNfc2V0aW5ncy51Y2lwL30iIC8+PC90ZD4NCiAgICAgICAgPHRkPuato+W4uOaDheWGteS4i+eVmeepuuWNs+WPr+OAguWmguaenOeUseS6juWfn+WQjeino+aekOmXrumimOWvvOiHtCBVQ2VudGVyIOS4juivpeW6lOeUqOmAmuS/oeWksei0pe+8jOivt+Wwneivleiuvue9ruS4uuivpeW6lOeUqOaJgOWcqOacjeWKoeWZqOeahCBJUCDlnLDlnYDjgII8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgICA8dGggY29sc3Bhbj0iMiI+6YCa5L+h5a+G6ZKlOjwvdGg+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InR4dCIgbmFtZT0idWNfc2V0aW5nc1thdXRoa2V5XSIgdmFsdWU9IntkZWRlOnZhci51Y19zZXRpbmdzLmF1dGhrZXkvfSIgLz48L3RkPg0KICAgICAgICA8dGQ+5Y+q5YWB6K645L2/55So6Iux5paH5a2X5q+N5Y+K5pWw5a2X77yM6ZmQIDY0IOWtl+iKguOAguW6lOeUqOerr+eahOmAmuS/oeWvhumSpeW/hemhu+S4juatpOiuvue9ruS/neaMgeS4gOiHtO+8jOWQpuWImeivpeW6lOeUqOWwhuaXoOazleS4jiBVQ2VudGVyIOato+W4uOmAmuS/oeOAgjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICAgIDx0aCBjb2xzcGFuPSIyIj7ov57mjqXmlrnlvI86PC90aD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgICAgPHRkPiAgICAgIA0KICAgICAgICA8c2VsZWN0IG5hbWU9InVjX3NldGluZ3NbY29ubmVjdF0iIG9uQ2hhbmdlPSJpZih0aGlzLnZhbHVlPT0nJyl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VjbXlzcWwnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO31lbHNle2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1Y215c3FsJykuc3R5bGUuZGlzcGxheSA9ICcnO30iPg0KCQkJPG9wdGlvbiB2YWx1ZT0ibXlzcWwiIDw/cGhwIGlmKCFlbXB0eSgkX3ZhcnNbJ3VjX3NldGluZ3MnXVsnY29ubmVjdCddKSkgZWNobyAnc2VsZWN0ZWQ9InNlbGVjdGVkIic7Pz4+IOaVsOaNruW6k+aWueW8jyhNeVNRTCkgPC9vcHRpb24+DQoJCQk8b3B0aW9uIHZhbHVlPSIiIDw/cGhwIGlmKGVtcHR5KCRfdmFyc1sndWNfc2V0aW5ncyddWydjb25uZWN0J10pKSBlY2hvICdzZWxlY3RlZD0ic2VsZWN0ZWQiJzs/Pj4g5o6l5Y+j5pa55byPKGZzb2Nrb3BlbikgPC9vcHRpb24+DQogICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICA8L3RkPg0KICAgICAgICA8dGQ+6K+35qC55o2u5oKo55qE5pyN5Yqh5Zmo572R57uc546v5aKD6YCJ5oup6YCC5b2T55qE6L+e5o6l5pa55byP44CCPC90ZD4NCiAgICA8L3RyPg0KDQogICAgPHRyPg0KICAgICAgICA8dGQgY29sc3Bhbj0iMiI+DQogICAgICAgICAgICA8dGFibGUgaWQ9InVjbXlzcWwiIGNsYXNzPSJvcHQiIDw/cGhwIGlmKGVtcHR5KCRfdmFyc1sndWNfc2V0aW5ncyddWydjb25uZWN0J10pKSBlY2hvICdzdHlsZT0iZGlzcGxheTpub25lOyInOz8+Pg0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRoIGNvbHNwYW49IjIiPuaVsOaNruW6k+acjeWKoeWZqDo8L3RoPg0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0idHh0IiBuYW1lPSJ1Y19zZXRpbmdzW2RiaG9zdF0iIHZhbHVlPSJ7ZGVkZTp2YXIudWNfc2V0aW5ncy5kYmhvc3QvfSIgLz4JCQkJDQogICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD7pu5jorqQ6bG9jYWxob3N0LCDlpoLmnpwgTXlTUUwg56uv5Y+j5LiN5piv6buY6K6k55qEIDMzMDbvvIzor7floavlhpnlpoLkuIvlvaLlvI/vvJoxMjcuMC4wLjE6NjAzM+OAgjwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0aCBjb2xzcGFuPSIyIj7mlbDmja7lupPnlKjmiLflkI06PC90aD4NCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InR4dCIgbmFtZT0idWNfc2V0aW5nc1tkYnVzZXJdIiB2YWx1ZT0ie2RlZGU6dmFyLnVjX3NldGluZ3MuZGJ1c2VyL30iIC8+CQ0KICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+55m75b2VdWPmnI3liqHnq6/nmoTmlbDmja7lupPnlKjmiLflkI3jgII8L3RkPgkJDQogICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0aCBjb2xzcGFuPSIyIj7mlbDmja7lupPlr4bnoIE6PC90aD4NCiAgICAgICAgICAgICAgICA8L3RyPiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ0eHQiIG5hbWU9InVjX3NldGluZ3NbZGJwYXNzXSIgdmFsdWU9IioqKioqKioqIiAvPgkNCiAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPHRkPueZu+W9lXVj5pyN5Yqh56uv5pWw5o2u5bqT5L2/55So55qE5a+G56CB44CCPC90ZD4JCQ0KICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGggY29sc3Bhbj0iMiI+5pWw5o2u5bqT5ZCNOjwvdGg+DQogICAgICAgICAgICAgICAgPC90cj4gICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0idHh0IiBuYW1lPSJ1Y19zZXRpbmdzW2RibmFtZV0iIHZhbHVlPSJ7ZGVkZTp2YXIudWNfc2V0aW5ncy5kYm5hbWUvfSIgLz4JDQogICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD7nmbvlvZV1Y+acjeWKoeerr+eahOaVsOaNruW6k+WQjeensOOAgjwvdGQ+CQkNCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRoIGNvbHNwYW49IjIiPuaVsOaNruW6k+ihqOWJjee8gDo8L3RoPg0KICAgICAgICAgICAgICAgIDwvdHI+ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InR4dCIgbmFtZT0idWNfc2V0aW5nc1tkYnRhYmxlcHJlXSIgdmFsdWU9IntkZWRlOnZhci51Y19zZXRpbmdzLmRidGFibGVwcmUvfSIgLz4JDQogICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDx0ZD51Y+acjeWKoeerr+S9v+eUqOeahOaVsOaNruW6k+ihqOWJjee8gCzkuIDkuI3oiKzkuLogdWNfIOOAgjwvdGQ+CQkNCiAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgPC90YWJsZT4gICAgICAgICAgICANCiAgICAgICAgPC90ZD4NCiAgICA8L3RyPiAgICANCiAgICANCiAgICA8dHI+DQogICAgICAgIDx0aCBjb2xzcGFuPSIyIj7mraPnoa7nmoTphY3nva7kv6Hmga86PC90aD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgICAgPHRoPg0KICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPSJhcmVhIiBvbkZvY3VzPSJ0aGlzLnNlbGVjdCgpIj4NCmRlZmluZSgnVUNfQ09OTkVDVCcsICd7ZGVkZTp2YXIudWNfc2V0aW5ncy5jb25uZWN0L30nKTsNCmRlZmluZSgnVUNfREJIT1NUJywgJ3tkZWRlOnZhci51Y19zZXRpbmdzLmRiaG9zdC99Jyk7DQpkZWZpbmUoJ1VDX0RCVVNFUicsICd7ZGVkZTp2YXIudWNfc2V0aW5ncy5kYnVzZXIvfScpOw0KZGVmaW5lKCdVQ19EQlBXJywgJyoqKioqKioqJyk7DQpkZWZpbmUoJ1VDX0RCTkFNRScsICd7ZGVkZTp2YXIudWNfc2V0aW5ncy5kYm5hbWUvfScpOw0KZGVmaW5lKCdVQ19EQkNIQVJTRVQnLCAnZ2JrJyk7DQpkZWZpbmUoJ1VDX0RCVEFCTEVQUkUnLCAnYHtkZWRlOnZhci51Y19zZXRpbmdzLmRibmFtZS99YC51Y18nKTsNCmRlZmluZSgnVUNfREJDT05ORUNUJywgJzAnKTsNCmRlZmluZSgnVUNfS0VZJywgJ3tkZWRlOnZhci51Y19zZXRpbmdzLmF1dGhrZXkvfScpOw0KZGVmaW5lKCdVQ19BUEknLCAne2RlZGU6dmFyLnVjX3NldGluZ3MudWNhcGkvfScpOw0KZGVmaW5lKCdVQ19DSEFSU0VUJywgJ2diaycpOw0KZGVmaW5lKCdVQ19JUCcsICd7ZGVkZTp2YXIudWNfc2V0aW5ncy51Y2lwL30nKTsNCmRlZmluZSgnVUNfQVBQSUQnLCAne2RlZGU6dmFyLnVjX3NldGluZ3MuYXBwaWQvfScpOw0KZGVmaW5lKCdVQ19QUFAnLCAnMjAnKTsNCiAgICAgICAgICAgIDwvdGV4dGFyZWE+DQogICAgICAgIDwvdGg+DQogICAgICAgIDx0ZD7lvZPlupTnlKjnmoQgVUNlbnRlciDphY3nva7kv6Hmga/kuKLlpLHml7blj6/lpI3liLblt6bkvqfnmoTku6PnoIHliLDlupTnlKjnmoTphY3nva7mlofku7bkuK08L3RkPg0KICAgIDwvdHI+DQo8L3RhYmxlPg0KPGRpdiBjbGFzcz0ib3B0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSIg5o+QIOS6pCAiIGNsYXNzPSJidG4iIHRhYmluZGV4PSIzIiAvPjwvZGl2Pg0KICAgIA0KPC9mb3JtPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+
</file>
<file type='file' name='templets/api_ucenter_install.htm'>
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+DQo8dGl0bGU+dWNlbnRlcjEuNS4w5a6J6KOF5ZCR5a+8PC90aXRsZT4NCjxzdHlsZSByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4NCjwhLS0NCip7IHdvcmQtd3JhcDpicmVhay13b3JkOyBvdXRsaW5lOm5vbmU7IH0NCmJvZHl7IGJhY2tncm91bmQ6I0ZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0NCmJvZHksIHRkLCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9ueyBjb2xvcjojNjY2OyBmb250OjEycHggIkx1Y2lkYSBHcmFuZGUiLCBWZXJkYW5hLCBMdWNpZGEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH0NCmJvZHksIHVsLCBkbCwgZGQsIHAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGZvcm0sIGZpZWxkc2V0IHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfQ0KaDEsIGgyLCBoMywgaDQsIGg1LCBoNnsgZm9udC1zaXplOjEycHg7IH0NCmF7IGNvbG9yOiMyMzY2QTg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9DQoJYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0NCglhIGltZ3sgYm9yZGVyOm5vbmU7IH0NCmVtLCBjaXRlLCB0aHsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfQ0KdGFibGV7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfQ0KLyogZm9ybSAqLw0KdGV4dGFyZWEsIGlucHV0eyBwYWRkaW5nOjJweDsgYm9yZGVyOjFweCBzb2xpZDsgYm9yZGVyLWNvbG9yOiM2NjYgI2VlZSAjZWVlICM2NjY7IH0NCmlucHV0LnR4dDpob3ZlciwgaW5wdXQudHh0OmZvY3VzLCB0ZXh0YXJlYTpob3ZlciwgdGV4dGFyZWE6Zm9jdXN7IGJvcmRlci1jb2xvcjojMDlDOyBiYWNrZ3JvdW5kOiNGNUY5RkQ7IH0NCi5yYWRpb3sgbWFyZ2luLXRvcDotMXB4OyBib3JkZXI6bm9uZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB9DQouY2hlY2tib3h7IGhlaWdodDoxNHB4OyBib3JkZXI6bm9uZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB9DQouYnRueyBtYXJnaW46M3B4IDA7IHBhZGRpbmc6MnB4IDVweDsgKnBhZGRpbmc6NHB4IDVweCAxcHg7IGJvcmRlci1jb2xvcjojZGRkICM2NjYgIzY2NiAjZGRkOyBiYWNrZ3JvdW5kOiNEREQ7IGNvbG9yOiMwMDA7IGN1cnNvcjpwb2ludGVyOyB9DQouc2didG57IG1hcmdpbi1sZWZ0OjIwcHg7IHBhZGRpbmc6M3B4IDdweDsgKnBhZGRpbmc6NHB4IDdweCAycHg7IGJvcmRlcjoxcHggc29saWQgI0I1Q0ZEOTsgYmFja2dyb3VuZDojRjJGOUZEOyBjb2xvcjojNjY2OyBmb250LXNpemU6MTJweDsgZm9udC13ZWlnaHQ6NDAwOyB9DQoJLnNnYnRuOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfQ0KLmJpZ2FyZWF7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjMwcHg7IGhlaWdodDoxMjBweDsgfQ0KLm9wdHsgY2xlYXI6Ym90aDsgb3ZlcmZsb3c6aGlkZGVuOyB9DQoJLm9wdCB0aHsgcGFkZGluZzo1cHggMDsgZm9udC13ZWlnaHQ6NzAwOyB0ZXh0LWFsaWduOmxlZnQ7IH0NCgkub3B0IHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9DQoJLm9wdCAudHh0LCAub3B0IHRleHRhcmVheyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IG1hcmdpbi1yaWdodDoxMHB4OyB3aWR0aDoxODBweDsgfQ0KCS5vcHQgc2VsZWN0eyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IG1hcmdpbi1yaWdodDoxMHB4OyB9DQoJLm9wdCAuYXJlYXsgaGVpZ2h0OjgwcHg7IH0NCgkub3B0IC5iaWdhcmVhIHsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDgwcHg7IH0NCgkub3B0IGxhYmVseyBtYXJnaW4tcmlnaHQ6MjBweDsgfQ0KCS5vcHQgcHsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MTgwJTsgfQ0KLyogdGl0bGUgKi8NCmgzeyBmb250LXNpemU6MTRweDsgfQ0KCWgzIC5idG57IG1hcmdpbi1sZWZ0OjEwcHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgfQ0KLm1haW5ib3h7IG1hcmdpbjoxMHB4IDA7IHBhZGRpbmc6MjBweDsgdGV4dC1hbGlnbjpsZWZ0O30NCi5ub3RleyBtYXJnaW46NXB4IDA7IHBhZGRpbmc6MTBweDsgd2lkdGg6NTgwcHg7IGJvcmRlcjoxcHggc29saWQgI0I1Q0ZEOTsgYmFja2dyb3VuZDojRjVGOUZEOyB9DQoJLml7IHBhZGRpbmctbGVmdDoyMnB4OyBsaW5lLWhlaWdodDoxOXB4OyBiYWNrZ3JvdW5kOnVybChpbWcvaGVscC5naWYpIG5vLXJlcGVhdDsgfQ0KCQkuaSBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9DQoJCS5pIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9DQouZml4d2lkdGh7IHdpZHRoOiAxMDAlOyB9DQoJLmZpeHdpZHRoZGVjeyB3aWR0aDo3MDBweDsgfQ0KLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHkgYmFja2dyb3VuZD0naW1nL2FsbGJnLmdpZicgbGVmdG1hcmdpbj0nOCcgdG9wbWFyZ2luPSc4Jz4NCjxkaXYgY2xhc3M9Im1haW5ib3giPg0KICAgIDxoMyBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMHB4OyI+5a6J6KOF5ZCR5a+8PGEgaHJlZj0ibW9kdWxlX21haW4ucGhwIiBjbGFzcz0ic2didG4iPui/lOWbnuaooeWdl+WIl+ihqDwvYT48L2gzPg0KICAgIDxkaXYgY2xhc3M9Im5vdGUgZml4d2lkdGhkZWMiPjxwIGNsYXNzPSJpIj7pppbmrKHlronoo4XliY3or7flpIfku73lpb17ZGVkZTp2YXIudWNfY29uZmlnX2ZpbGUvfemFjee9ruaWh+S7ti7ku6XpmLLmraLkv67mlLnplJnor6/lr7zoh7TnvZHnq5nml6Dms5Xov5DooYw8L3A+PC9kaXY+DQogICAgPGZvcm0gYWN0aW9uPSJhcGlfdWNlbnRlci5waHAiIG1ldGhvZD0icG9zdCI+DQoJPGlucHV0IG5hbWU9ImRvcG9zdCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iaW5zdGFsbCIgLz4NCgk8dGFibGUgY2xhc3M9Im9wdCI+DQogICAgPHRyPg0KICAgICAgICA8dGggY29sc3Bhbj0iMiI+5pyN5Yqh56uv5Zyw5Z2AOjwvdGg+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InR4dCIgbmFtZT0idWNfc2V0aW5nc1t1Y2FwaV0iIHZhbHVlPSIiIC8+PC90ZD4NCiAgICAgICAgPHRkPuivpeWAvOWcqOaCqOWuieijheWujCBVQ2VudGVyIOWQjuS8muiiq+WIneWni+WMlu+8jOWcqOaCqCBVQ2VudGVyICAg5Zyw5Z2A5oiW6ICF55uu5b2V5pS55Y+Y55qE5oOF5Ya15LiL77yM5L+u5pS55q2k6aG577yM5LiA6Iis5oOF5Ya16K+35LiN6KaB5pS55YqoPGJyIC8+DQoJCQkJICDkvovlpoI6IGh0dHA6Ly93d3cuc2l0ZS5jb20vdWNfc2VydmVyICjmnIDlkI7kuI3opoHliqAnLycp44CCPC90ZD4NCiAgICA8L3RyPg0KICAgIA0KICAgIDx0cj4NCiAgICAgICAgPHRoIGNvbHNwYW49IjIiPuWIm+Wni+S6uuWvhueggTo8L3RoPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ0eHQiIG5hbWU9InVjX3NldGluZ3NbYXV0aGtleV0iIHZhbHVlPSIiIC8+PC90ZD4NCiAgICAgICAgPHRkPuivpeWAvOWcqOaCqOWuieijheWujCBVQ2VudGVyIOWQjuS8muiiq+WIneWni+WMluS4gOS4queZu+W9leWvhueggSxVQ2VudGVy56ew5LmL5Li64oCc5Yib5aeL5Lq65a+G56CB4oCdPC90ZD4NCiAgICA8L3RyPg0KICAgIA0KICAgIDx0cj4NCiAgICAgICAgPHRoIGNvbHNwYW49IjIiPuacjeWKoeerr0lQ5Zyw5Z2AOjwvdGg+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9InR4dCIgbmFtZT0idWNfc2V0aW5nc1t1Y2lwXSIgdmFsdWU9IjEyNy4wLjAuMSIgLz48L3RkPg0KICAgICAgICA8dGQ+5aaC5p6c5oKo55qE5pyN5Yqh5Zmo5peg5rOV6YCa6L+H5Z+f5ZCN6K6/6ZeuIFVDZW50ZXLvvIzlj6/ku6XovpPlhaUgVUNlbnRlciDmnI3liqHlmajnmoQgSVAg5Zyw5Z2APC90ZD4NCiAgICA8L3RyPg0KICAgIA0KICAgIA0KICAgIDwvdGFibGU+DQogICAgPGRpdiBjbGFzcz0ib3B0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSIg56Gu6K6k5a6J6KOFICIgY2xhc3M9ImJ0biIgdGFiaW5kZXg9IjMiIC8+PC9kaXY+DQogICAgPC9mb3JtPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+
</file>
<file type='dir' name='../uc_client'>
</file>
<file type='file' name='../uc_client/client.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogY2xpZW50LnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjE3IGJsdCBFeHAgJA0KKi8NCg0KaWYoIWRlZmluZWQoJ1VDX0FQSScpKSB7DQoJZXhpdCgnQWNjZXNzIGRlbmllZCcpOw0KfQ0KDQplcnJvcl9yZXBvcnRpbmcoMCk7DQoNCmRlZmluZSgnSU5fVUMnLCBUUlVFKTsNCmRlZmluZSgnVUNfQ0xJRU5UX1ZFUlNJT04nLCAnMS41LjAnKTsNCmRlZmluZSgnVUNfQ0xJRU5UX1JFTEVBU0UnLCAnMjAwOTAxMjEnKTsNCmRlZmluZSgnVUNfUk9PVCcsIHN1YnN0cihfX0ZJTEVfXywgMCwgLTEwKSk7DQpkZWZpbmUoJ1VDX0RBVEFESVInLCBVQ19ST09ULicuL2RhdGEvJyk7DQpkZWZpbmUoJ1VDX0RBVEFVUkwnLCBVQ19BUEkuJy9kYXRhJyk7DQpkZWZpbmUoJ1VDX0FQSV9GVU5DJywgVUNfQ09OTkVDVCA9PSAnbXlzcWwnID8gJ3VjX2FwaV9teXNxbCcgOiAndWNfYXBpX3Bvc3QnKTsNCiRHTE9CQUxTWyd1Y19jb250cm9scyddID0gYXJyYXkoKTsNCg0KZnVuY3Rpb24gdWNfYWRkc2xhc2hlcygkc3RyaW5nLCAkZm9yY2UgPSAwLCAkc3RyaXAgPSBGQUxTRSkgew0KCSFkZWZpbmVkKCdNQUdJQ19RVU9URVNfR1BDJykgJiYgZGVmaW5lKCdNQUdJQ19RVU9URVNfR1BDJywgZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSk7DQoJaWYoIU1BR0lDX1FVT1RFU19HUEMgfHwgJGZvcmNlKSB7DQoJCWlmKGlzX2FycmF5KCRzdHJpbmcpKSB7DQoJCQlmb3JlYWNoKCRzdHJpbmcgYXMgJGtleSA9PiAkdmFsKSB7DQoJCQkJJHN0cmluZ1ska2V5XSA9IHVjX2FkZHNsYXNoZXMoJHZhbCwgJGZvcmNlLCAkc3RyaXApOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJJHN0cmluZyA9IGFkZHNsYXNoZXMoJHN0cmlwID8gc3RyaXBzbGFzaGVzKCRzdHJpbmcpIDogJHN0cmluZyk7DQoJCX0NCgl9DQoJcmV0dXJuICRzdHJpbmc7DQp9DQoNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2RhZGRzbGFzaGVzJykpIHsNCglmdW5jdGlvbiBkYWRkc2xhc2hlcygkc3RyaW5nLCAkZm9yY2UgPSAwKSB7DQoJCXJldHVybiB1Y19hZGRzbGFzaGVzKCRzdHJpbmcsICRmb3JjZSk7DQoJfQ0KfQ0KDQpmdW5jdGlvbiB1Y19zdHJpcHNsYXNoZXMoJHN0cmluZykgew0KCSFkZWZpbmVkKCdNQUdJQ19RVU9URVNfR1BDJykgJiYgZGVmaW5lKCdNQUdJQ19RVU9URVNfR1BDJywgZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSk7DQoJaWYoTUFHSUNfUVVPVEVTX0dQQykgew0KCQlyZXR1cm4gc3RyaXBzbGFzaGVzKCRzdHJpbmcpOw0KCX0gZWxzZSB7DQoJCXJldHVybiAkc3RyaW5nOw0KCX0NCn0NCg0KZnVuY3Rpb24gdWNfYXBpX3Bvc3QoJG1vZHVsZSwgJGFjdGlvbiwgJGFyZyA9IGFycmF5KCkpIHsNCgkkcyA9ICRzZXAgPSAnJzsNCglmb3JlYWNoKCRhcmcgYXMgJGsgPT4gJHYpIHsNCgkJJGsgPSB1cmxlbmNvZGUoJGspOw0KCQlpZihpc19hcnJheSgkdikpIHsNCgkJCSRzMiA9ICRzZXAyID0gJyc7DQoJCQlmb3JlYWNoKCR2IGFzICRrMiA9PiAkdjIpIHsNCgkJCQkkazIgPSB1cmxlbmNvZGUoJGsyKTsNCgkJCQkkczIgLj0gIiRzZXAyeyRrfVskazJdPSIudXJsZW5jb2RlKHVjX3N0cmlwc2xhc2hlcygkdjIpKTsNCgkJCQkkc2VwMiA9ICcmJzsNCgkJCX0NCgkJCSRzIC49ICRzZXAuJHMyOw0KCQl9IGVsc2Ugew0KCQkJJHMgLj0gIiRzZXAkaz0iLnVybGVuY29kZSh1Y19zdHJpcHNsYXNoZXMoJHYpKTsNCgkJfQ0KCQkkc2VwID0gJyYnOw0KCX0NCgkkcG9zdGRhdGEgPSB1Y19hcGlfcmVxdWVzdGRhdGEoJG1vZHVsZSwgJGFjdGlvbiwgJHMpOw0KCXJldHVybiB1Y19mb3BlbjIoVUNfQVBJLicvaW5kZXgucGhwJywgNTAwMDAwLCAkcG9zdGRhdGEsICcnLCBUUlVFLCBVQ19JUCwgMjApOw0KfQ0KDQpmdW5jdGlvbiB1Y19hcGlfcmVxdWVzdGRhdGEoJG1vZHVsZSwgJGFjdGlvbiwgJGFyZz0nJywgJGV4dHJhPScnKSB7DQoJJGlucHV0ID0gdWNfYXBpX2lucHV0KCRhcmcpOw0KCSRwb3N0ID0gIm09JG1vZHVsZSZhPSRhY3Rpb24maW5hamF4PTImcmVsZWFzZT0iLlVDX0NMSUVOVF9SRUxFQVNFLiImaW5wdXQ9JGlucHV0JmFwcGlkPSIuVUNfQVBQSUQuJGV4dHJhOw0KCXJldHVybiAkcG9zdDsNCn0NCg0KZnVuY3Rpb24gdWNfYXBpX3VybCgkbW9kdWxlLCAkYWN0aW9uLCAkYXJnPScnLCAkZXh0cmE9JycpIHsNCgkkdXJsID0gVUNfQVBJLicvaW5kZXgucGhwPycudWNfYXBpX3JlcXVlc3RkYXRhKCRtb2R1bGUsICRhY3Rpb24sICRhcmcsICRleHRyYSk7DQoJcmV0dXJuICR1cmw7DQp9DQoNCmZ1bmN0aW9uIHVjX2FwaV9pbnB1dCgkZGF0YSkgew0KCSRzID0gdXJsZW5jb2RlKHVjX2F1dGhjb2RlKCRkYXRhLicmYWdlbnQ9Jy5tZDUoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKS4iJnRpbWU9Ii50aW1lKCksICdFTkNPREUnLCBVQ19LRVkpKTsNCglyZXR1cm4gJHM7DQp9DQoNCmZ1bmN0aW9uIHVjX2FwaV9teXNxbCgkbW9kZWwsICRhY3Rpb24sICRhcmdzPWFycmF5KCkpIHsNCglnbG9iYWwgJHVjX2NvbnRyb2xzOw0KCWlmKGVtcHR5KCR1Y19jb250cm9sc1skbW9kZWxdKSkgew0KCQlpbmNsdWRlX29uY2UgVUNfUk9PVC4nLi9saWIvZGIuY2xhc3MucGhwJzsNCgkJaW5jbHVkZV9vbmNlIFVDX1JPT1QuJy4vbW9kZWwvYmFzZS5waHAnOw0KCQlpbmNsdWRlX29uY2UgVUNfUk9PVC4iLi9jb250cm9sLyRtb2RlbC5waHAiOw0KCQlldmFsKCJcJHVjX2NvbnRyb2xzWyckbW9kZWwnXSA9IG5ldyB7JG1vZGVsfWNvbnRyb2woKTsiKTsNCgl9DQoJaWYoJGFjdGlvbnswfSAhPSAnXycpIHsNCgkJJGFyZ3MgPSB1Y19hZGRzbGFzaGVzKCRhcmdzLCAxLCBUUlVFKTsNCgkJJGFjdGlvbiA9ICdvbicuJGFjdGlvbjsNCgkJJHVjX2NvbnRyb2xzWyRtb2RlbF0tPmlucHV0ID0gJGFyZ3M7DQoJCXJldHVybiAkdWNfY29udHJvbHNbJG1vZGVsXS0+JGFjdGlvbigkYXJncyk7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICcnOw0KCX0NCn0NCg0KZnVuY3Rpb24gdWNfc2VyaWFsaXplKCRhcnIsICRodG1sb24gPSAwKSB7DQoJaW5jbHVkZV9vbmNlIFVDX1JPT1QuJy4vbGliL3htbC5jbGFzcy5waHAnOw0KCXJldHVybiB4bWxfc2VyaWFsaXplKCRhcnIsICRodG1sb24pOw0KfQ0KDQpmdW5jdGlvbiB1Y191bnNlcmlhbGl6ZSgkcykgew0KCWluY2x1ZGVfb25jZSBVQ19ST09ULicuL2xpYi94bWwuY2xhc3MucGhwJzsNCglyZXR1cm4geG1sX3Vuc2VyaWFsaXplKCRzKTsNCn0NCg0KZnVuY3Rpb24gdWNfYXV0aGNvZGUoJHN0cmluZywgJG9wZXJhdGlvbiA9ICdERUNPREUnLCAka2V5ID0gJycsICRleHBpcnkgPSAwKSB7DQoNCgkkY2tleV9sZW5ndGggPSA0Ow0KDQoJJGtleSA9IG1kNSgka2V5ID8gJGtleSA6IFVDX0tFWSk7DQoJJGtleWEgPSBtZDUoc3Vic3RyKCRrZXksIDAsIDE2KSk7DQoJJGtleWIgPSBtZDUoc3Vic3RyKCRrZXksIDE2LCAxNikpOw0KCSRrZXljID0gJGNrZXlfbGVuZ3RoID8gKCRvcGVyYXRpb24gPT0gJ0RFQ09ERScgPyBzdWJzdHIoJHN0cmluZywgMCwgJGNrZXlfbGVuZ3RoKTogc3Vic3RyKG1kNShtaWNyb3RpbWUoKSksIC0kY2tleV9sZW5ndGgpKSA6ICcnOw0KDQoJJGNyeXB0a2V5ID0gJGtleWEubWQ1KCRrZXlhLiRrZXljKTsNCgkka2V5X2xlbmd0aCA9IHN0cmxlbigkY3J5cHRrZXkpOw0KDQoJJHN0cmluZyA9ICRvcGVyYXRpb24gPT0gJ0RFQ09ERScgPyBiYXNlNjRfZGVjb2RlKHN1YnN0cigkc3RyaW5nLCAkY2tleV9sZW5ndGgpKSA6IHNwcmludGYoJyUwMTBkJywgJGV4cGlyeSA/ICRleHBpcnkgKyB0aW1lKCkgOiAwKS5zdWJzdHIobWQ1KCRzdHJpbmcuJGtleWIpLCAwLCAxNikuJHN0cmluZzsNCgkkc3RyaW5nX2xlbmd0aCA9IHN0cmxlbigkc3RyaW5nKTsNCg0KCSRyZXN1bHQgPSAnJzsNCgkkYm94ID0gcmFuZ2UoMCwgMjU1KTsNCg0KCSRybmRrZXkgPSBhcnJheSgpOw0KCWZvcigkaSA9IDA7ICRpIDw9IDI1NTsgJGkrKykgew0KCQkkcm5ka2V5WyRpXSA9IG9yZCgkY3J5cHRrZXlbJGkgJSAka2V5X2xlbmd0aF0pOw0KCX0NCg0KCWZvcigkaiA9ICRpID0gMDsgJGkgPCAyNTY7ICRpKyspIHsNCgkJJGogPSAoJGogKyAkYm94WyRpXSArICRybmRrZXlbJGldKSAlIDI1NjsNCgkJJHRtcCA9ICRib3hbJGldOw0KCQkkYm94WyRpXSA9ICRib3hbJGpdOw0KCQkkYm94WyRqXSA9ICR0bXA7DQoJfQ0KDQoJZm9yKCRhID0gJGogPSAkaSA9IDA7ICRpIDwgJHN0cmluZ19sZW5ndGg7ICRpKyspIHsNCgkJJGEgPSAoJGEgKyAxKSAlIDI1NjsNCgkJJGogPSAoJGogKyAkYm94WyRhXSkgJSAyNTY7DQoJCSR0bXAgPSAkYm94WyRhXTsNCgkJJGJveFskYV0gPSAkYm94WyRqXTsNCgkJJGJveFskal0gPSAkdG1wOw0KCQkkcmVzdWx0IC49IGNocihvcmQoJHN0cmluZ1skaV0pIF4gKCRib3hbKCRib3hbJGFdICsgJGJveFskal0pICUgMjU2XSkpOw0KCX0NCg0KCWlmKCRvcGVyYXRpb24gPT0gJ0RFQ09ERScpIHsNCgkJaWYoKHN1YnN0cigkcmVzdWx0LCAwLCAxMCkgPT0gMCB8fCBzdWJzdHIoJHJlc3VsdCwgMCwgMTApIC0gdGltZSgpID4gMCkgJiYgc3Vic3RyKCRyZXN1bHQsIDEwLCAxNikgPT0gc3Vic3RyKG1kNShzdWJzdHIoJHJlc3VsdCwgMjYpLiRrZXliKSwgMCwgMTYpKSB7DQoJCQlyZXR1cm4gc3Vic3RyKCRyZXN1bHQsIDI2KTsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiAnJzsNCgkJfQ0KCX0gZWxzZSB7DQoJCXJldHVybiAka2V5Yy5zdHJfcmVwbGFjZSgnPScsICcnLCBiYXNlNjRfZW5jb2RlKCRyZXN1bHQpKTsNCgl9DQp9DQoNCmZ1bmN0aW9uIHVjX2ZvcGVuMigkdXJsLCAkbGltaXQgPSAwLCAkcG9zdCA9ICcnLCAkY29va2llID0gJycsICRieXNvY2tldCA9IEZBTFNFLCAkaXAgPSAnJywgJHRpbWVvdXQgPSAxNSwgJGJsb2NrID0gVFJVRSkgew0KCSRfX3RpbWVzX18gPSBpc3NldCgkX0dFVFsnX190aW1lc19fJ10pID8gaW50dmFsKCRfR0VUWydfX3RpbWVzX18nXSkgKyAxIDogMTsNCglpZigkX190aW1lc19fID4gMikgew0KCQlyZXR1cm4gJyc7DQoJfQ0KCSR1cmwgLj0gKHN0cnBvcygkdXJsLCAnPycpID09PSBGQUxTRSA/ICc/JyA6ICcmJykuIl9fdGltZXNfXz0kX190aW1lc19fIjsNCglyZXR1cm4gdWNfZm9wZW4oJHVybCwgJGxpbWl0LCAkcG9zdCwgJGNvb2tpZSwgJGJ5c29ja2V0LCAkaXAsICR0aW1lb3V0LCAkYmxvY2spOw0KfQ0KDQpmdW5jdGlvbiB1Y19mb3BlbigkdXJsLCAkbGltaXQgPSAwLCAkcG9zdCA9ICcnLCAkY29va2llID0gJycsICRieXNvY2tldCA9IEZBTFNFLCAkaXAgPSAnJywgJHRpbWVvdXQgPSAxNSwgJGJsb2NrID0gVFJVRSkgew0KCSRyZXR1cm4gPSAnJzsNCgkkbWF0Y2hlcyA9IHBhcnNlX3VybCgkdXJsKTsNCgkhaXNzZXQoJG1hdGNoZXNbJ2hvc3QnXSkgJiYgJG1hdGNoZXNbJ2hvc3QnXSA9ICcnOw0KCSFpc3NldCgkbWF0Y2hlc1sncGF0aCddKSAmJiAkbWF0Y2hlc1sncGF0aCddID0gJyc7DQoJIWlzc2V0KCRtYXRjaGVzWydxdWVyeSddKSAmJiAkbWF0Y2hlc1sncXVlcnknXSA9ICcnOw0KCSFpc3NldCgkbWF0Y2hlc1sncG9ydCddKSAmJiAkbWF0Y2hlc1sncG9ydCddID0gJyc7DQoJJGhvc3QgPSAkbWF0Y2hlc1snaG9zdCddOw0KCSRwYXRoID0gJG1hdGNoZXNbJ3BhdGgnXSA/ICRtYXRjaGVzWydwYXRoJ10uKCRtYXRjaGVzWydxdWVyeSddID8gJz8nLiRtYXRjaGVzWydxdWVyeSddIDogJycpIDogJy8nOw0KCSRwb3J0ID0gIWVtcHR5KCRtYXRjaGVzWydwb3J0J10pID8gJG1hdGNoZXNbJ3BvcnQnXSA6IDgwOw0KCWlmKCRwb3N0KSB7DQoJCSRvdXQgPSAiUE9TVCAkcGF0aCBIVFRQLzEuMFxyXG4iOw0KCQkkb3V0IC49ICJBY2NlcHQ6ICovKlxyXG4iOw0KCQkvLyRvdXQgLj0gIlJlZmVyZXI6ICRib2FyZHVybFxyXG4iOw0KCQkkb3V0IC49ICJBY2NlcHQtTGFuZ3VhZ2U6IHpoLWNuXHJcbiI7DQoJCSRvdXQgLj0gIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXHJcbiI7DQoJCSRvdXQgLj0gIlVzZXItQWdlbnQ6ICRfU0VSVkVSW0hUVFBfVVNFUl9BR0VOVF1cclxuIjsNCgkJJG91dCAuPSAiSG9zdDogJGhvc3RcclxuIjsNCgkJJG91dCAuPSAnQ29udGVudC1MZW5ndGg6ICcuc3RybGVuKCRwb3N0KS4iXHJcbiI7DQoJCSRvdXQgLj0gIkNvbm5lY3Rpb246IENsb3NlXHJcbiI7DQoJCSRvdXQgLj0gIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlXHJcbiI7DQoJCSRvdXQgLj0gIkNvb2tpZTogJGNvb2tpZVxyXG5cclxuIjsNCgkJJG91dCAuPSAkcG9zdDsNCgl9IGVsc2Ugew0KCQkkb3V0ID0gIkdFVCAkcGF0aCBIVFRQLzEuMFxyXG4iOw0KCQkkb3V0IC49ICJBY2NlcHQ6ICovKlxyXG4iOw0KCQkvLyRvdXQgLj0gIlJlZmVyZXI6ICRib2FyZHVybFxyXG4iOw0KCQkkb3V0IC49ICJBY2NlcHQtTGFuZ3VhZ2U6IHpoLWNuXHJcbiI7DQoJCSRvdXQgLj0gIlVzZXItQWdlbnQ6ICRfU0VSVkVSW0hUVFBfVVNFUl9BR0VOVF1cclxuIjsNCgkJJG91dCAuPSAiSG9zdDogJGhvc3RcclxuIjsNCgkJJG91dCAuPSAiQ29ubmVjdGlvbjogQ2xvc2VcclxuIjsNCgkJJG91dCAuPSAiQ29va2llOiAkY29va2llXHJcblxyXG4iOw0KCX0NCgkkZnAgPSBAZnNvY2tvcGVuKCgkaXAgPyAkaXAgOiAkaG9zdCksICRwb3J0LCAkZXJybm8sICRlcnJzdHIsICR0aW1lb3V0KTsNCglpZighJGZwKSB7DQoJCXJldHVybiAnJzsNCgl9IGVsc2Ugew0KCQlzdHJlYW1fc2V0X2Jsb2NraW5nKCRmcCwgJGJsb2NrKTsNCgkJc3RyZWFtX3NldF90aW1lb3V0KCRmcCwgJHRpbWVvdXQpOw0KCQlAZndyaXRlKCRmcCwgJG91dCk7DQoJCSRzdGF0dXMgPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZnApOw0KCQlpZighJHN0YXR1c1sndGltZWRfb3V0J10pIHsNCgkJCXdoaWxlICghZmVvZigkZnApKSB7DQoJCQkJaWYoKCRoZWFkZXIgPSBAZmdldHMoJGZwKSkgJiYgKCRoZWFkZXIgPT0gIlxyXG4iIHx8ICAkaGVhZGVyID09ICJcbiIpKSB7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCX0NCg0KCQkJJHN0b3AgPSBmYWxzZTsNCgkJCXdoaWxlKCFmZW9mKCRmcCkgJiYgISRzdG9wKSB7DQoJCQkJJGRhdGEgPSBmcmVhZCgkZnAsICgkbGltaXQgPT0gMCB8fCAkbGltaXQgPiA4MTkyID8gODE5MiA6ICRsaW1pdCkpOw0KCQkJCSRyZXR1cm4gLj0gJGRhdGE7DQoJCQkJaWYoJGxpbWl0KSB7DQoJCQkJCSRsaW1pdCAtPSBzdHJsZW4oJGRhdGEpOw0KCQkJCQkkc3RvcCA9ICRsaW1pdCA8PSAwOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlAZmNsb3NlKCRmcCk7DQoJCXJldHVybiAkcmV0dXJuOw0KCX0NCn0NCg0KZnVuY3Rpb24gdWNfYXBwX2xzKCkgew0KCSRyZXR1cm4gPSBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ2FwcCcsICdscycsIGFycmF5KCkpOw0KCXJldHVybiBVQ19DT05ORUNUID09ICdteXNxbCcgPyAkcmV0dXJuIDogdWNfdW5zZXJpYWxpemUoJHJldHVybik7DQp9DQoNCmZ1bmN0aW9uIHVjX2ZlZWRfYWRkKCRpY29uLCAkdWlkLCAkdXNlcm5hbWUsICR0aXRsZV90ZW1wbGF0ZT0nJywgJHRpdGxlX2RhdGE9JycsICRib2R5X3RlbXBsYXRlPScnLCAkYm9keV9kYXRhPScnLCAkYm9keV9nZW5lcmFsPScnLCAkdGFyZ2V0X2lkcz0nJywgJGltYWdlcyA9IGFycmF5KCkpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdmZWVkJywgJ2FkZCcsDQoJCWFycmF5KCAgJ2ljb24nPT4kaWNvbiwNCgkJCSdhcHBpZCc9PlVDX0FQUElELA0KCQkJJ3VpZCc9PiR1aWQsDQoJCQkndXNlcm5hbWUnPT4kdXNlcm5hbWUsDQoJCQkndGl0bGVfdGVtcGxhdGUnPT4kdGl0bGVfdGVtcGxhdGUsDQoJCQkndGl0bGVfZGF0YSc9PiR0aXRsZV9kYXRhLA0KCQkJJ2JvZHlfdGVtcGxhdGUnPT4kYm9keV90ZW1wbGF0ZSwNCgkJCSdib2R5X2RhdGEnPT4kYm9keV9kYXRhLA0KCQkJJ2JvZHlfZ2VuZXJhbCc9PiRib2R5X2dlbmVyYWwsDQoJCQkndGFyZ2V0X2lkcyc9PiR0YXJnZXRfaWRzLA0KCQkJJ2ltYWdlXzEnPT4kaW1hZ2VzWzBdWyd1cmwnXSwNCgkJCSdpbWFnZV8xX2xpbmsnPT4kaW1hZ2VzWzBdWydsaW5rJ10sDQoJCQknaW1hZ2VfMic9PiRpbWFnZXNbMV1bJ3VybCddLA0KCQkJJ2ltYWdlXzJfbGluayc9PiRpbWFnZXNbMV1bJ2xpbmsnXSwNCgkJCSdpbWFnZV8zJz0+JGltYWdlc1syXVsndXJsJ10sDQoJCQknaW1hZ2VfM19saW5rJz0+JGltYWdlc1syXVsnbGluayddLA0KCQkJJ2ltYWdlXzQnPT4kaW1hZ2VzWzNdWyd1cmwnXSwNCgkJCSdpbWFnZV80X2xpbmsnPT4kaW1hZ2VzWzNdWydsaW5rJ10NCgkJKQ0KCSk7DQp9DQoNCmZ1bmN0aW9uIHVjX2ZlZWRfZ2V0KCRsaW1pdCA9IDEwMCwgJGRlbGV0ZSA9IFRSVUUpIHsNCgkkcmV0dXJuID0gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdmZWVkJywgJ2dldCcsIGFycmF5KCdsaW1pdCc9PiRsaW1pdCwgJ2RlbGV0ZSc9PiRkZWxldGUpKTsNCglyZXR1cm4gVUNfQ09OTkVDVCA9PSAnbXlzcWwnID8gJHJldHVybiA6IHVjX3Vuc2VyaWFsaXplKCRyZXR1cm4pOw0KfQ0KDQpmdW5jdGlvbiB1Y19mcmllbmRfYWRkKCR1aWQsICRmcmllbmRpZCwgJGNvbW1lbnQ9JycpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdmcmllbmQnLCAnYWRkJywgYXJyYXkoJ3VpZCc9PiR1aWQsICdmcmllbmRpZCc9PiRmcmllbmRpZCwgJ2NvbW1lbnQnPT4kY29tbWVudCkpOw0KfQ0KDQpmdW5jdGlvbiB1Y19mcmllbmRfZGVsZXRlKCR1aWQsICRmcmllbmRpZHMpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdmcmllbmQnLCAnZGVsZXRlJywgYXJyYXkoJ3VpZCc9PiR1aWQsICdmcmllbmRpZHMnPT4kZnJpZW5kaWRzKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX2ZyaWVuZF90b3RhbG51bSgkdWlkLCAkZGlyZWN0aW9uID0gMCkgew0KCXJldHVybiBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ2ZyaWVuZCcsICd0b3RhbG51bScsIGFycmF5KCd1aWQnPT4kdWlkLCAnZGlyZWN0aW9uJz0+JGRpcmVjdGlvbikpOw0KfQ0KDQpmdW5jdGlvbiB1Y19mcmllbmRfbHMoJHVpZCwgJHBhZ2UgPSAxLCAkcGFnZXNpemUgPSAxMCwgJHRvdGFsbnVtID0gMTAsICRkaXJlY3Rpb24gPSAwKSB7DQoJJHJldHVybiA9IGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAnZnJpZW5kJywgJ2xzJywgYXJyYXkoJ3VpZCc9PiR1aWQsICdwYWdlJz0+JHBhZ2UsICdwYWdlc2l6ZSc9PiRwYWdlc2l6ZSwgJ3RvdGFsbnVtJz0+JHRvdGFsbnVtLCAnZGlyZWN0aW9uJz0+JGRpcmVjdGlvbikpOw0KCXJldHVybiBVQ19DT05ORUNUID09ICdteXNxbCcgPyAkcmV0dXJuIDogdWNfdW5zZXJpYWxpemUoJHJldHVybik7DQp9DQoNCmZ1bmN0aW9uIHVjX3VzZXJfcmVnaXN0ZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRlbWFpbCwgJHF1ZXN0aW9uaWQgPSAnJywgJGFuc3dlciA9ICcnKSB7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdyZWdpc3RlcicsIGFycmF5KCd1c2VybmFtZSc9PiR1c2VybmFtZSwgJ3Bhc3N3b3JkJz0+JHBhc3N3b3JkLCAnZW1haWwnPT4kZW1haWwsICdxdWVzdGlvbmlkJz0+JHF1ZXN0aW9uaWQsICdhbnN3ZXInPT4kYW5zd2VyKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX3VzZXJfbG9naW4oJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRpc3VpZCA9IDAsICRjaGVja3F1ZXMgPSAwLCAkcXVlc3Rpb25pZCA9ICcnLCAkYW5zd2VyID0gJycpIHsNCgkkaXN1aWQgPSBpbnR2YWwoJGlzdWlkKTsNCgkkcmV0dXJuID0gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICd1c2VyJywgJ2xvZ2luJywgYXJyYXkoJ3VzZXJuYW1lJz0+JHVzZXJuYW1lLCAncGFzc3dvcmQnPT4kcGFzc3dvcmQsICdpc3VpZCc9PiRpc3VpZCwgJ2NoZWNrcXVlcyc9PiRjaGVja3F1ZXMsICdxdWVzdGlvbmlkJz0+JHF1ZXN0aW9uaWQsICdhbnN3ZXInPT4kYW5zd2VyKSk7DQoJcmV0dXJuIFVDX0NPTk5FQ1QgPT0gJ215c3FsJyA/ICRyZXR1cm4gOiB1Y191bnNlcmlhbGl6ZSgkcmV0dXJuKTsNCn0NCg0KZnVuY3Rpb24gdWNfdXNlcl9zeW5sb2dpbigkdWlkKSB7DQoJJHVpZCA9IGludHZhbCgkdWlkKTsNCgkkcmV0dXJuID0gdWNfYXBpX3Bvc3QoJ3VzZXInLCAnc3lubG9naW4nLCBhcnJheSgndWlkJz0+JHVpZCkpOw0KCXJldHVybiAkcmV0dXJuOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX3N5bmxvZ291dCgpIHsNCgkkcmV0dXJuID0gdWNfYXBpX3Bvc3QoJ3VzZXInLCAnc3lubG9nb3V0JywgYXJyYXkoKSk7DQoJcmV0dXJuICRyZXR1cm47DQp9DQoNCmZ1bmN0aW9uIHVjX3VzZXJfZWRpdCgkdXNlcm5hbWUsICRvbGRwdywgJG5ld3B3LCAkZW1haWwsICRpZ25vcmVvbGRwdyA9IDAsICRxdWVzdGlvbmlkID0gJycsICRhbnN3ZXIgPSAnJykgew0KCXJldHVybiBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ3VzZXInLCAnZWRpdCcsIGFycmF5KCd1c2VybmFtZSc9PiR1c2VybmFtZSwgJ29sZHB3Jz0+JG9sZHB3LCAnbmV3cHcnPT4kbmV3cHcsICdlbWFpbCc9PiRlbWFpbCwgJ2lnbm9yZW9sZHB3Jz0+JGlnbm9yZW9sZHB3LCAncXVlc3Rpb25pZCc9PiRxdWVzdGlvbmlkLCAnYW5zd2VyJz0+JGFuc3dlcikpOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX2RlbGV0ZSgkdWlkKSB7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdkZWxldGUnLCBhcnJheSgndWlkJz0+JHVpZCkpOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX2RlbGV0ZWF2YXRhcigkdWlkKSB7DQoJdWNfYXBpX3Bvc3QoJ3VzZXInLCAnZGVsZXRlYXZhdGFyJywgYXJyYXkoJ3VpZCc9PiR1aWQpKTsNCn0NCg0KZnVuY3Rpb24gdWNfdXNlcl9jaGVja25hbWUoJHVzZXJuYW1lKSB7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdjaGVja191c2VybmFtZScsIGFycmF5KCd1c2VybmFtZSc9PiR1c2VybmFtZSkpOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX2NoZWNrZW1haWwoJGVtYWlsKSB7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdjaGVja19lbWFpbCcsIGFycmF5KCdlbWFpbCc9PiRlbWFpbCkpOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX2FkZHByb3RlY3RlZCgkdXNlcm5hbWUsICRhZG1pbj0nJykgew0KCXJldHVybiBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ3VzZXInLCAnYWRkcHJvdGVjdGVkJywgYXJyYXkoJ3VzZXJuYW1lJz0+JHVzZXJuYW1lLCAnYWRtaW4nPT4kYWRtaW4pKTsNCn0NCg0KZnVuY3Rpb24gdWNfdXNlcl9kZWxldGVwcm90ZWN0ZWQoJHVzZXJuYW1lKSB7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdkZWxldGVwcm90ZWN0ZWQnLCBhcnJheSgndXNlcm5hbWUnPT4kdXNlcm5hbWUpKTsNCn0NCg0KZnVuY3Rpb24gdWNfdXNlcl9nZXRwcm90ZWN0ZWQoKSB7DQoJJHJldHVybiA9IGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdnZXRwcm90ZWN0ZWQnLCBhcnJheSgnMSc9PjEpKTsNCglyZXR1cm4gVUNfQ09OTkVDVCA9PSAnbXlzcWwnID8gJHJldHVybiA6IHVjX3Vuc2VyaWFsaXplKCRyZXR1cm4pOw0KfQ0KDQpmdW5jdGlvbiB1Y19nZXRfdXNlcigkdXNlcm5hbWUsICRpc3VpZD0wKSB7DQoJJHJldHVybiA9IGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAndXNlcicsICdnZXRfdXNlcicsIGFycmF5KCd1c2VybmFtZSc9PiR1c2VybmFtZSwgJ2lzdWlkJz0+JGlzdWlkKSk7DQoJcmV0dXJuIFVDX0NPTk5FQ1QgPT0gJ215c3FsJyA/ICRyZXR1cm4gOiB1Y191bnNlcmlhbGl6ZSgkcmV0dXJuKTsNCn0NCg0KZnVuY3Rpb24gdWNfdXNlcl9tZXJnZSgkb2xkdXNlcm5hbWUsICRuZXd1c2VybmFtZSwgJHVpZCwgJHBhc3N3b3JkLCAkZW1haWwpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICd1c2VyJywgJ21lcmdlJywgYXJyYXkoJ29sZHVzZXJuYW1lJz0+JG9sZHVzZXJuYW1lLCAnbmV3dXNlcm5hbWUnPT4kbmV3dXNlcm5hbWUsICd1aWQnPT4kdWlkLCAncGFzc3dvcmQnPT4kcGFzc3dvcmQsICdlbWFpbCc9PiRlbWFpbCkpOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX21lcmdlX3JlbW92ZSgkdXNlcm5hbWUpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICd1c2VyJywgJ21lcmdlX3JlbW92ZScsIGFycmF5KCd1c2VybmFtZSc9PiR1c2VybmFtZSkpOw0KfQ0KDQpmdW5jdGlvbiB1Y191c2VyX2dldGNyZWRpdCgkYXBwaWQsICR1aWQsICRjcmVkaXQpIHsNCglyZXR1cm4gdWNfYXBpX3Bvc3QoJ3VzZXInLCAnZ2V0Y3JlZGl0JywgYXJyYXkoJ2FwcGlkJz0+JGFwcGlkLCAndWlkJz0+JHVpZCwgJ2NyZWRpdCc9PiRjcmVkaXQpKTsNCn0NCg0KZnVuY3Rpb24gdWNfcG1fbG9jYXRpb24oJHVpZCwgJG5ld3BtID0gMCkgew0KCSRhcGl1cmwgPSB1Y19hcGlfdXJsKCdwbV9jbGllbnQnLCAnbHMnLCAidWlkPSR1aWQiLCAoJG5ld3BtID8gJyZmb2xkZXI9bmV3Ym94JyA6ICcnKSk7DQoJQGhlYWRlcigiRXhwaXJlczogMCIpOw0KCUBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHByaXZhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAsIG1heC1hZ2U9MCIsIEZBTFNFKTsNCglAaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7DQoJQGhlYWRlcigibG9jYXRpb246ICRhcGl1cmwiKTsNCn0NCg0KZnVuY3Rpb24gdWNfcG1fY2hlY2tuZXcoJHVpZCwgJG1vcmUgPSAwKSB7DQoJJHJldHVybiA9IGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAncG0nLCAnY2hlY2tfbmV3cG0nLCBhcnJheSgndWlkJz0+JHVpZCwgJ21vcmUnPT4kbW9yZSkpOw0KCXJldHVybiAoISRtb3JlIHx8IFVDX0NPTk5FQ1QgPT0gJ215c3FsJykgPyAkcmV0dXJuIDogdWNfdW5zZXJpYWxpemUoJHJldHVybik7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX3NlbmQoJGZyb211aWQsICRtc2d0bywgJHN1YmplY3QsICRtZXNzYWdlLCAkaW5zdGFudGx5ID0gMSwgJHJlcGx5cG1pZCA9IDAsICRpc3VzZXJuYW1lID0gMCkgew0KCWlmKCRpbnN0YW50bHkpIHsNCgkJJHJlcGx5cG1pZCA9IEBpc19udW1lcmljKCRyZXBseXBtaWQpID8gJHJlcGx5cG1pZCA6IDA7DQoJCXJldHVybiBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ3BtJywgJ3NlbmRwbScsIGFycmF5KCdmcm9tdWlkJz0+JGZyb211aWQsICdtc2d0byc9PiRtc2d0bywgJ3N1YmplY3QnPT4kc3ViamVjdCwgJ21lc3NhZ2UnPT4kbWVzc2FnZSwgJ3JlcGx5cG1pZCc9PiRyZXBseXBtaWQsICdpc3VzZXJuYW1lJz0+JGlzdXNlcm5hbWUpKTsNCgl9IGVsc2Ugew0KCQkkZnJvbXVpZCA9IGludHZhbCgkZnJvbXVpZCk7DQoJCSRzdWJqZWN0ID0gdXJsZW5jb2RlKCRzdWJqZWN0KTsNCgkJJG1zZ3RvID0gdXJsZW5jb2RlKCRtc2d0byk7DQoJCSRtZXNzYWdlID0gdXJsZW5jb2RlKCRtZXNzYWdlKTsNCgkJJHJlcGx5cG1pZCA9IEBpc19udW1lcmljKCRyZXBseXBtaWQpID8gJHJlcGx5cG1pZCA6IDA7DQoJCSRyZXBseWFkZCA9ICRyZXBseXBtaWQgPyAiJnBtaWQ9JHJlcGx5cG1pZCZkbz1yZXBseSIgOiAnJzsNCgkJJGFwaXVybCA9IHVjX2FwaV91cmwoJ3BtX2NsaWVudCcsICdzZW5kJywgInVpZD0kZnJvbXVpZCIsICImbXNndG89JG1zZ3RvJnN1YmplY3Q9JHN1YmplY3QmbWVzc2FnZT0kbWVzc2FnZSRyZXBseWFkZCIpOw0KCQlAaGVhZGVyKCJFeHBpcmVzOiAwIik7DQoJCUBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHByaXZhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAsIG1heC1hZ2U9MCIsIEZBTFNFKTsNCgkJQGhlYWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOw0KCQlAaGVhZGVyKCJsb2NhdGlvbjogIi4kYXBpdXJsKTsNCgl9DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX2RlbGV0ZSgkdWlkLCAkZm9sZGVyLCAkcG1pZHMpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdwbScsICdkZWxldGUnLCBhcnJheSgndWlkJz0+JHVpZCwgJ2ZvbGRlcic9PiRmb2xkZXIsICdwbWlkcyc9PiRwbWlkcykpOw0KfQ0KDQpmdW5jdGlvbiB1Y19wbV9kZWxldGV1c2VyKCR1aWQsICR0b3VpZHMpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdwbScsICdkZWxldGV1c2VyJywgYXJyYXkoJ3VpZCc9PiR1aWQsICd0b3VpZHMnPT4kdG91aWRzKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX3JlYWRzdGF0dXMoJHVpZCwgJHVpZHMsICRwbWlkcyA9IGFycmF5KCksICRzdGF0dXMgPSAwKSB7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAncG0nLCAncmVhZHN0YXR1cycsIGFycmF5KCd1aWQnPT4kdWlkLCAndWlkcyc9PiR1aWRzLCAncG1pZHMnPT4kcG1pZHMsICdzdGF0dXMnPT4kc3RhdHVzKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX2xpc3QoJHVpZCwgJHBhZ2UgPSAxLCAkcGFnZXNpemUgPSAxMCwgJGZvbGRlciA9ICdpbmJveCcsICRmaWx0ZXIgPSAnbmV3cG0nLCAkbXNnbGVuID0gMCkgew0KCSR1aWQgPSBpbnR2YWwoJHVpZCk7DQoJJHBhZ2UgPSBpbnR2YWwoJHBhZ2UpOw0KCSRwYWdlc2l6ZSA9IGludHZhbCgkcGFnZXNpemUpOw0KCSRyZXR1cm4gPSBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ3BtJywgJ2xzJywgYXJyYXkoJ3VpZCc9PiR1aWQsICdwYWdlJz0+JHBhZ2UsICdwYWdlc2l6ZSc9PiRwYWdlc2l6ZSwgJ2ZvbGRlcic9PiRmb2xkZXIsICdmaWx0ZXInPT4kZmlsdGVyLCAnbXNnbGVuJz0+JG1zZ2xlbikpOw0KCXJldHVybiBVQ19DT05ORUNUID09ICdteXNxbCcgPyAkcmV0dXJuIDogdWNfdW5zZXJpYWxpemUoJHJldHVybik7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX2lnbm9yZSgkdWlkKSB7DQoJJHVpZCA9IGludHZhbCgkdWlkKTsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdwbScsICdpZ25vcmUnLCBhcnJheSgndWlkJz0+JHVpZCkpOw0KfQ0KDQpmdW5jdGlvbiB1Y19wbV92aWV3KCR1aWQsICRwbWlkLCAkdG91aWQgPSAwLCAkZGF0ZXJhbmdlID0gMSkgew0KCSR1aWQgPSBpbnR2YWwoJHVpZCk7DQoJJHRvdWlkID0gaW50dmFsKCR0b3VpZCk7DQoJJHBtaWQgPSBAaXNfbnVtZXJpYygkcG1pZCkgPyAkcG1pZCA6IDA7DQoJJHJldHVybiA9IGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAncG0nLCAndmlldycsIGFycmF5KCd1aWQnPT4kdWlkLCAncG1pZCc9PiRwbWlkLCAndG91aWQnPT4kdG91aWQsICdkYXRlcmFuZ2UnPT4kZGF0ZXJhbmdlKSk7DQoJcmV0dXJuIFVDX0NPTk5FQ1QgPT0gJ215c3FsJyA/ICRyZXR1cm4gOiB1Y191bnNlcmlhbGl6ZSgkcmV0dXJuKTsNCn0NCg0KZnVuY3Rpb24gdWNfcG1fdmlld25vZGUoJHVpZCwgJHR5cGUgPSAwLCAkcG1pZCA9IDApIHsNCgkkdWlkID0gaW50dmFsKCR1aWQpOw0KCSRwbWlkID0gQGlzX251bWVyaWMoJHBtaWQpID8gJHBtaWQgOiAwOw0KCSRyZXR1cm4gPSBjYWxsX3VzZXJfZnVuYyhVQ19BUElfRlVOQywgJ3BtJywgJ3ZpZXdub2RlJywgYXJyYXkoJ3VpZCc9PiR1aWQsICdwbWlkJz0+JHBtaWQsICd0eXBlJz0+JHR5cGUpKTsNCglyZXR1cm4gVUNfQ09OTkVDVCA9PSAnbXlzcWwnID8gJHJldHVybiA6IHVjX3Vuc2VyaWFsaXplKCRyZXR1cm4pOw0KfQ0KDQpmdW5jdGlvbiB1Y19wbV9ibGFja2xzX2dldCgkdWlkKSB7DQoJJHVpZCA9IGludHZhbCgkdWlkKTsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdwbScsICdibGFja2xzX2dldCcsIGFycmF5KCd1aWQnPT4kdWlkKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX2JsYWNrbHNfc2V0KCR1aWQsICRibGFja2xzKSB7DQoJJHVpZCA9IGludHZhbCgkdWlkKTsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdwbScsICdibGFja2xzX3NldCcsIGFycmF5KCd1aWQnPT4kdWlkLCAnYmxhY2tscyc9PiRibGFja2xzKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX2JsYWNrbHNfYWRkKCR1aWQsICR1c2VybmFtZSkgew0KCSR1aWQgPSBpbnR2YWwoJHVpZCk7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAncG0nLCAnYmxhY2tsc19hZGQnLCBhcnJheSgndWlkJz0+JHVpZCwgJ3VzZXJuYW1lJz0+JHVzZXJuYW1lKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX3BtX2JsYWNrbHNfZGVsZXRlKCR1aWQsICR1c2VybmFtZSkgew0KCSR1aWQgPSBpbnR2YWwoJHVpZCk7DQoJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKFVDX0FQSV9GVU5DLCAncG0nLCAnYmxhY2tsc19kZWxldGUnLCBhcnJheSgndWlkJz0+JHVpZCwgJ3VzZXJuYW1lJz0+JHVzZXJuYW1lKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX2RvbWFpbl9scygpIHsNCgkkcmV0dXJuID0gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdkb21haW4nLCAnbHMnLCBhcnJheSgnMSc9PjEpKTsNCglyZXR1cm4gVUNfQ09OTkVDVCA9PSAnbXlzcWwnID8gJHJldHVybiA6IHVjX3Vuc2VyaWFsaXplKCRyZXR1cm4pOw0KfQ0KDQpmdW5jdGlvbiB1Y19jcmVkaXRfZXhjaGFuZ2VfcmVxdWVzdCgkdWlkLCAkZnJvbSwgJHRvLCAkdG9hcHBpZCwgJGFtb3VudCkgew0KCSR1aWQgPSBpbnR2YWwoJHVpZCk7DQoJJGZyb20gPSBpbnR2YWwoJGZyb20pOw0KCSR0b2FwcGlkID0gaW50dmFsKCR0b2FwcGlkKTsNCgkkdG8gPSBpbnR2YWwoJHRvKTsNCgkkYW1vdW50ID0gaW50dmFsKCRhbW91bnQpOw0KCXJldHVybiB1Y19hcGlfcG9zdCgnY3JlZGl0JywgJ3JlcXVlc3QnLCBhcnJheSgndWlkJz0+JHVpZCwgJ2Zyb20nPT4kZnJvbSwgJ3RvJz0+JHRvLCAndG9hcHBpZCc9PiR0b2FwcGlkLCAnYW1vdW50Jz0+JGFtb3VudCkpOw0KfQ0KDQpmdW5jdGlvbiB1Y190YWdfZ2V0KCR0YWduYW1lLCAkbnVtcyA9IDApIHsNCgkkcmV0dXJuID0gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICd0YWcnLCAnZ2V0dGFnJywgYXJyYXkoJ3RhZ25hbWUnPT4kdGFnbmFtZSwgJ251bXMnPT4kbnVtcykpOw0KCXJldHVybiBVQ19DT05ORUNUID09ICdteXNxbCcgPyAkcmV0dXJuIDogdWNfdW5zZXJpYWxpemUoJHJldHVybik7DQp9DQoNCmZ1bmN0aW9uIHVjX2F2YXRhcigkdWlkLCAkdHlwZSA9ICd2aXJ0dWFsJywgJHJldHVybmh0bWwgPSAxKSB7DQoJJHVpZCA9IGludHZhbCgkdWlkKTsNCgkkdWNfaW5wdXQgPSB1Y19hcGlfaW5wdXQoInVpZD0kdWlkIik7DQoJJHVjX2F2YXRhcmZsYXNoID0gVUNfQVBJLicvaW1hZ2VzL2NhbWVyYS5zd2Y/aW5hamF4PTEmYXBwaWQ9Jy5VQ19BUFBJRC4nJmlucHV0PScuJHVjX2lucHV0LicmYWdlbnQ9Jy5tZDUoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKS4nJnVjYXBpPScudXJsZW5jb2RlKHN0cl9yZXBsYWNlKCdodHRwOi8vJywgJycsIFVDX0FQSSkpLicmYXZhdGFydHlwZT0nLiR0eXBlOw0KCWlmKCRyZXR1cm5odG1sKSB7DQoJCXJldHVybiAnPG9iamVjdCBjbGFzc2lkPSJjbHNpZDpkMjdjZGI2ZS1hZTZkLTExY2YtOTZiOC00NDQ1NTM1NDAwMDAiIGNvZGViYXNlPSJodHRwOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249OSwwLDAsMCIgd2lkdGg9IjQ0NyIgaGVpZ2h0PSI0NzciIGlkPSJteWNhbWVyYSIgYWxpZ249Im1pZGRsZSI+DQoJCQk8cGFyYW0gbmFtZT0iYWxsb3dTY3JpcHRBY2Nlc3MiIHZhbHVlPSJhbHdheXMiIC8+DQoJCQk8cGFyYW0gbmFtZT0ic2NhbGUiIHZhbHVlPSJleGFjdGZpdCIgLz4NCgkJCTxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50IiAvPg0KCQkJPHBhcmFtIG5hbWU9InF1YWxpdHkiIHZhbHVlPSJoaWdoIiAvPg0KCQkJPHBhcmFtIG5hbWU9ImJnY29sb3IiIHZhbHVlPSIjZmZmZmZmIiAvPg0KCQkJPHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iJy4kdWNfYXZhdGFyZmxhc2guJyIgLz4NCgkJCTxwYXJhbSBuYW1lPSJtZW51IiB2YWx1ZT0iZmFsc2UiIC8+DQoJCQk8ZW1iZWQgc3JjPSInLiR1Y19hdmF0YXJmbGFzaC4nIiBxdWFsaXR5PSJoaWdoIiBiZ2NvbG9yPSIjZmZmZmZmIiB3aWR0aD0iNDQ3IiBoZWlnaHQ9IjQ3NyIgbmFtZT0ibXljYW1lcmEiIGFsaWduPSJtaWRkbGUiIGFsbG93U2NyaXB0QWNjZXNzPSJhbHdheXMiIGFsbG93RnVsbFNjcmVlbj0iZmFsc2UiIHNjYWxlPSJleGFjdGZpdCIgIHdtb2RlPSJ0cmFuc3BhcmVudCIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiAvPg0KCQk8L29iamVjdD4nOw0KCX0gZWxzZSB7DQoJCXJldHVybiBhcnJheSgNCgkJCSd3aWR0aCcsICc0NDcnLA0KCQkJJ2hlaWdodCcsICc0NzcnLA0KCQkJJ3NjYWxlJywgJ2V4YWN0Zml0JywNCgkJCSdzcmMnLCAkdWNfYXZhdGFyZmxhc2gsDQoJCQknaWQnLCAnbXljYW1lcmEnLA0KCQkJJ25hbWUnLCAnbXljYW1lcmEnLA0KCQkJJ3F1YWxpdHknLCdoaWdoJywNCgkJCSdiZ2NvbG9yJywnI2ZmZmZmZicsDQoJCQknd21vZGUnLCd0cmFuc3BhcmVudCcsDQoJCQknbWVudScsICdmYWxzZScsDQoJCQknc3dMaXZlQ29ubmVjdCcsICd0cnVlJywNCgkJCSdhbGxvd1NjcmlwdEFjY2VzcycsICdhbHdheXMnDQoJCSk7DQoJfQ0KfQ0KDQpmdW5jdGlvbiB1Y19tYWlsX3F1ZXVlKCR1aWRzLCAkZW1haWxzLCAkc3ViamVjdCwgJG1lc3NhZ2UsICRmcm9tbWFpbCA9ICcnLCAkY2hhcnNldCA9ICdnYmsnLCAkaHRtbG9uID0gRkFMU0UsICRsZXZlbCA9IDEpIHsNCglyZXR1cm4gY2FsbF91c2VyX2Z1bmMoVUNfQVBJX0ZVTkMsICdtYWlsJywgJ2FkZCcsIGFycmF5KCd1aWRzJyA9PiAkdWlkcywgJ2VtYWlscycgPT4gJGVtYWlscywgJ3N1YmplY3QnID0+ICRzdWJqZWN0LCAnbWVzc2FnZScgPT4gJG1lc3NhZ2UsICdmcm9tbWFpbCcgPT4gJGZyb21tYWlsLCAnY2hhcnNldCcgPT4gJGNoYXJzZXQsICdodG1sb24nID0+ICRodG1sb24sICdsZXZlbCcgPT4gJGxldmVsKSk7DQp9DQoNCmZ1bmN0aW9uIHVjX2NoZWNrX2F2YXRhcigkdWlkLCAkc2l6ZSA9ICdtaWRkbGUnLCAkdHlwZSA9ICd2aXJ0dWFsJykgew0KCSR1cmwgPSBVQ19BUEkuIi9hdmF0YXIucGhwP3VpZD0kdWlkJnNpemU9JHNpemUmdHlwZT0kdHlwZSZjaGVja19maWxlX2V4aXN0cz0xIjsNCgkkcmVzID0gdWNfZm9wZW4yKCR1cmwsIDUwMDAwMCwgJycsICcnLCBUUlVFLCBVQ19JUCwgMjApOw0KCWlmKCRyZXMgPT0gMSkgew0KCQlyZXR1cm4gMTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gMDsNCgl9DQp9DQoNCmZ1bmN0aW9uIHVjX2NoZWNrX3ZlcnNpb24oKSB7DQoJJHJldHVybiA9IHVjX2FwaV9wb3N0KCd2ZXJzaW9uJywgJ2NoZWNrJywgYXJyYXkoKSk7DQoJJGRhdGEgPSB1Y191bnNlcmlhbGl6ZSgkcmV0dXJuKTsNCglyZXR1cm4gaXNfYXJyYXkoJGRhdGEpID8gJGRhdGEgOiAkcmV0dXJuOw0KfQ0KDQo/Pg==
</file>
<file type='dir' name='../uc_client/control'>
</file>
<file type='file' name='../uc_client/control/app.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogYXBwLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjE4IGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyBhcHBjb250cm9sIGV4dGVuZHMgYmFzZSB7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsNCgkJJHRoaXMtPmFwcGNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiBhcHBjb250cm9sKCkgew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5sb2FkKCdhcHAnKTsNCgl9DQoNCglmdW5jdGlvbiBvbmxzKCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkYXBwbGlzdCA9ICRfRU5WWydhcHAnXS0+Z2V0X2FwcHMoJ2FwcGlkLCB0eXBlLCBuYW1lLCB1cmwsIHRhZ3RlbXBsYXRlcywgdmlld3Byb3VybCwgc3lubG9naW4nKTsNCgkJJGFwcGxpc3QyID0gYXJyYXkoKTsNCgkJZm9yZWFjaCgkYXBwbGlzdCBhcyAka2V5ID0+ICRhcHApIHsNCgkJCSRhcHBbJ3RhZ3RlbXBsYXRlcyddID0gJHRoaXMtPnVuc2VyaWFsaXplKCRhcHBbJ3RhZ3RlbXBsYXRlcyddKTsNCgkJCSRhcHBsaXN0MlskYXBwWydhcHBpZCddXSA9ICRhcHA7DQoJCX0NCgkJcmV0dXJuICRhcHBsaXN0MjsNCgl9DQoNCglmdW5jdGlvbiBvbmFkZCgpIHsNCgl9DQoNCglmdW5jdGlvbiBvbnVjaW5mbygpIHsNCgl9DQoNCglmdW5jdGlvbiBfcmFuZG9tKCRsZW5ndGgsICRudW1lcmljID0gMCkgew0KCX0NCg0KCWZ1bmN0aW9uIF9nZW5lcmF0ZV9rZXkoKSB7DQoJfQ0KDQoJZnVuY3Rpb24gX2Zvcm1hdF9ub3RlZGF0YSgkbm90ZWRhdGEpIHsNCgl9DQp9DQoNCj8+
</file>
<file type='file' name='../uc_client/control/cache.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogY2FjaGUucGhwLHYgMS4xIDIwMDkvMDgvMTEgMDM6MjM6MTggYmx0IEV4cCAkDQoqLw0KDQohZGVmaW5lZCgnSU5fVUMnKSAmJiBleGl0KCdBY2Nlc3MgRGVuaWVkJyk7DQoNCmNsYXNzIGNhY2hlY29udHJvbCBleHRlbmRzIGJhc2Ugew0KDQoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7DQoJCSR0aGlzLT5jYWNoZWNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiBjYWNoZWNvbnRyb2woKSB7DQoJCXBhcmVudDo6X19jb25zdHJ1Y3QoKTsNCgl9DQoNCglmdW5jdGlvbiBvbnVwZGF0ZSgkYXJyKSB7DQoJCSR0aGlzLT5sb2FkKCJjYWNoZSIpOw0KCQkkX0VOVlsnY2FjaGUnXS0+dXBkYXRlZGF0YSgpOw0KCX0NCg0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/control/domain.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogZG9tYWluLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjE5IGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyBkb21haW5jb250cm9sIGV4dGVuZHMgYmFzZSB7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsNCgkJJHRoaXMtPmRvbWFpbmNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiBkb21haW5jb250cm9sKCkgew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR0aGlzLT5sb2FkKCdkb21haW4nKTsNCgl9DQoNCglmdW5jdGlvbiBvbmxzKCkgew0KCQlyZXR1cm4gJF9FTlZbJ2RvbWFpbiddLT5nZXRfbGlzdCgxLCA5OTk5LCA5OTk5KTsNCgl9DQp9DQoNCj8+
</file>
<file type='file' name='../uc_client/control/feed.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogZmVlZC5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoxOSBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KY2xhc3MgZmVlZGNvbnRyb2wgZXh0ZW5kcyBiYXNlIHsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCkgew0KCQkkdGhpcy0+ZmVlZGNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiBmZWVkY29udHJvbCgpIHsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCX0NCg0KCWZ1bmN0aW9uIG9uYWRkKCkgew0KCQkkdGhpcy0+bG9hZCgnbWlzYycpOw0KCQkkYXBwaWQgPSBpbnR2YWwoJHRoaXMtPmlucHV0KCdhcHBpZCcpKTsNCgkJJGljb24gPSAkdGhpcy0+aW5wdXQoJ2ljb24nKTsNCgkJJHVpZCA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3VpZCcpKTsNCgkJJHVzZXJuYW1lID0gJHRoaXMtPmlucHV0KCd1c2VybmFtZScpOw0KCQkkYm9keV9kYXRhID0gJF9FTlZbJ21pc2MnXS0+YXJyYXkyc3RyaW5nKCR0aGlzLT5pbnB1dCgnYm9keV9kYXRhJykpOw0KCQkkdGl0bGVfZGF0YSA9ICRfRU5WWydtaXNjJ10tPmFycmF5MnN0cmluZygkdGhpcy0+aW5wdXQoJ3RpdGxlX2RhdGEnKSk7DQoNCgkJJHRpdGxlX3RlbXBsYXRlID0gJHRoaXMtPl9wYXJzZXRlbXBsYXRlKCR0aGlzLT5pbnB1dCgndGl0bGVfdGVtcGxhdGUnKSk7DQoJCSRib2R5X3RlbXBsYXRlID0gJHRoaXMtPl9wYXJzZXRlbXBsYXRlKCR0aGlzLT5pbnB1dCgnYm9keV90ZW1wbGF0ZScpKTsNCgkJJGJvZHlfZ2VuZXJhbCA9ICR0aGlzLT5pbnB1dCgnYm9keV9nZW5lcmFsJyk7DQoJCSR0YXJnZXRfaWRzID0gJHRoaXMtPmlucHV0KCd0YXJnZXRfaWRzJyk7DQoJCSRpbWFnZV8xID0gJHRoaXMtPmlucHV0KCdpbWFnZV8xJyk7DQoJCSRpbWFnZV8xX2xpbmsgPSAkdGhpcy0+aW5wdXQoJ2ltYWdlXzFfbGluaycpOw0KCQkkaW1hZ2VfMiA9ICR0aGlzLT5pbnB1dCgnaW1hZ2VfMicpOw0KCQkkaW1hZ2VfMl9saW5rID0gJHRoaXMtPmlucHV0KCdpbWFnZV8yX2xpbmsnKTsNCgkJJGltYWdlXzMgPSAkdGhpcy0+aW5wdXQoJ2ltYWdlXzMnKTsNCgkJJGltYWdlXzNfbGluayA9ICR0aGlzLT5pbnB1dCgnaW1hZ2VfM19saW5rJyk7DQoJCSRpbWFnZV80ID0gJHRoaXMtPmlucHV0KCdpbWFnZV80Jyk7DQoJCSRpbWFnZV80X2xpbmsgPSAkdGhpcy0+aW5wdXQoJ2ltYWdlXzRfbGluaycpOw0KDQoJCSRoYXNoX3RlbXBsYXRlID0gbWQ1KCR0aXRsZV90ZW1wbGF0ZS4kYm9keV90ZW1wbGF0ZSk7DQoJCSRoYXNoX2RhdGEgPSBtZDUoJHRpdGxlX3RlbXBsYXRlLiR0aXRsZV9kYXRhLiRib2R5X3RlbXBsYXRlLiRib2R5X2RhdGEpOw0KCQkkZGF0ZWxpbmUgPSAkdGhpcy0+dGltZTsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiSU5TRVJUIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJmZWVkcyBTRVQgYXBwaWQ9JyRhcHBpZCcsIGljb249JyRpY29uJywgdWlkPSckdWlkJywgdXNlcm5hbWU9JyR1c2VybmFtZScsDQoJCQl0aXRsZV90ZW1wbGF0ZT0nJHRpdGxlX3RlbXBsYXRlJywgdGl0bGVfZGF0YT0nJHRpdGxlX2RhdGEnLCBib2R5X3RlbXBsYXRlPSckYm9keV90ZW1wbGF0ZScsIGJvZHlfZGF0YT0nJGJvZHlfZGF0YScsIGJvZHlfZ2VuZXJhbD0nJGJvZHlfZ2VuZXJhbCcsDQoJCQlpbWFnZV8xPSckaW1hZ2VfMScsIGltYWdlXzFfbGluaz0nJGltYWdlXzFfbGluaycsIGltYWdlXzI9JyRpbWFnZV8yJywgaW1hZ2VfMl9saW5rPSckaW1hZ2VfMl9saW5rJywNCgkJCWltYWdlXzM9JyRpbWFnZV8zJywgaW1hZ2VfM19saW5rPSckaW1hZ2VfM19saW5rJywgaW1hZ2VfND0nJGltYWdlXzQnLCBpbWFnZV80X2xpbms9JyRpbWFnZV80X2xpbmsnLA0KCQkJaGFzaF90ZW1wbGF0ZT0nJGhhc2hfdGVtcGxhdGUnLCBoYXNoX2RhdGE9JyRoYXNoX2RhdGEnLCB0YXJnZXRfaWRzPSckdGFyZ2V0X2lkcycsIGRhdGVsaW5lPSckZGF0ZWxpbmUnIik7DQoJCXJldHVybiAkdGhpcy0+ZGItPmluc2VydF9pZCgpOw0KCX0NCg0KCWZ1bmN0aW9uIG9uZGVsZXRlKCkgew0KCQkkc3RhcnQgPSAkdGhpcy0+aW5wdXQoJ3N0YXJ0Jyk7DQoJCSRsaW1pdCA9ICR0aGlzLT5pbnB1dCgnbGltaXQnKTsNCgkJJGVuZCA9ICRzdGFydCArICRsaW1pdDsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJmZWVkcyBXSEVSRSBmZWVkaWQ+JyRzdGFydCcgQU5EIGZlZWRpZDwnJGVuZCciKTsNCgl9DQoNCglmdW5jdGlvbiBvbmdldCgpIHsNCgkJJHRoaXMtPmxvYWQoJ21pc2MnKTsNCgkJJGxpbWl0ID0gaW50dmFsKCR0aGlzLT5pbnB1dCgnbGltaXQnKSk7DQoJCSRkZWxldGUgPSAkdGhpcy0+aW5wdXQoJ2RlbGV0ZScpOw0KCQkkZmVlZGxpc3QgPSAkdGhpcy0+ZGItPmZldGNoX2FsbCgiU0VMRUNUICogRlJPTSAiLlVDX0RCVEFCTEVQUkUuImZlZWRzIE9SREVSIEJZIGZlZWRpZCBERVNDIExJTUlUICRsaW1pdCIpOw0KCQlpZigkZmVlZGxpc3QpIHsNCgkJCSRtYXhmZWVkaWQgPSAkZmVlZGxpc3RbMF1bJ2ZlZWRpZCddOw0KCQkJZm9yZWFjaCgkZmVlZGxpc3QgYXMgJGtleSA9PiAkZmVlZCkgew0KCQkJCSRmZWVkWydib2R5X2RhdGEnXSA9ICRfRU5WWydtaXNjJ10tPnN0cmluZzJhcnJheSgkZmVlZFsnYm9keV9kYXRhJ10pOw0KCQkJCSRmZWVkWyd0aXRsZV9kYXRhJ10gPSAkX0VOVlsnbWlzYyddLT5zdHJpbmcyYXJyYXkoJGZlZWRbJ3RpdGxlX2RhdGEnXSk7DQoJCQkJJGZlZWRsaXN0WyRrZXldID0gJGZlZWQ7DQoJCQl9DQoJCX0NCgkJaWYoIWVtcHR5KCRmZWVkbGlzdCkpIHsNCgkJCWlmKCFpc3NldCgkZGVsZXRlKSB8fCAkZGVsZXRlKSB7DQoJCQkJJHRoaXMtPl9kZWxldGUoMCwgJG1heGZlZWRpZCk7DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRmZWVkbGlzdDsNCgl9DQoNCglmdW5jdGlvbiBfZGVsZXRlKCRzdGFydCwgJGVuZCkgew0KCQkkdGhpcy0+ZGItPnF1ZXJ5KCJERUxFVEUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuImZlZWRzIFdIRVJFIGZlZWRpZD49JyRzdGFydCcgQU5EIGZlZWRpZDw9JyRlbmQnIik7DQoJfQ0KDQoJZnVuY3Rpb24gX3BhcnNldGVtcGxhdGUoJHRlbXBsYXRlKSB7DQoJCSR0ZW1wbGF0ZSA9IHN0cl9yZXBsYWNlKGFycmF5KCJcciIsICJcbiIpLCAnJywgJHRlbXBsYXRlKTsNCgkJJHRlbXBsYXRlID0gc3RyX3JlcGxhY2UoYXJyYXkoJzxicj4nLCAnPGJyIC8+JywgJzxCUj4nLCAnPEJSIC8+JyksICJcbiIsICR0ZW1wbGF0ZSk7DQoJCSR0ZW1wbGF0ZSA9IHN0cl9yZXBsYWNlKGFycmF5KCc8Yj4nLCAnPEI+JyksICdbQl0nLCAkdGVtcGxhdGUpOw0KCQkkdGVtcGxhdGUgPSBzdHJfcmVwbGFjZShhcnJheSgnPGk+JywgJzxJPicpLCAnW0ldJywgJHRlbXBsYXRlKTsNCgkJJHRlbXBsYXRlID0gc3RyX3JlcGxhY2UoYXJyYXkoJzx1PicsICc8VT4nKSwgJ1tVXScsICR0ZW1wbGF0ZSk7DQoJCSR0ZW1wbGF0ZSA9IHN0cl9yZXBsYWNlKGFycmF5KCc8L2I+JywgJzwvQj4nKSwgJ1svQl0nLCAkdGVtcGxhdGUpOw0KCQkkdGVtcGxhdGUgPSBzdHJfcmVwbGFjZShhcnJheSgnPC9pPicsICc8L0k+JyksICdbL0ldJywgJHRlbXBsYXRlKTsNCgkJJHRlbXBsYXRlID0gc3RyX3JlcGxhY2UoYXJyYXkoJzwvdT4nLCAnPC9VPicpLCAnWy9VXScsICR0ZW1wbGF0ZSk7DQoJCSR0ZW1wbGF0ZSA9IGh0bWxzcGVjaWFsY2hhcnMoJHRlbXBsYXRlKTsNCgkJJHRlbXBsYXRlID0gbmwyYnIoJHRlbXBsYXRlKTsNCgkJJHRlbXBsYXRlID0gc3RyX3JlcGxhY2UoYXJyYXkoJ1tCXScsICdbSV0nLCAnW1VdJywgJ1svQl0nLCAnWy9JXScsICdbL1VdJyksIGFycmF5KCc8Yj4nLCAnPGk+JywgJzx1PicsICc8L2I+JywgJzwvaT4nLCAnPC91PicpLCAkdGVtcGxhdGUpOw0KCQlyZXR1cm4gJHRlbXBsYXRlOw0KCX0NCg0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/control/friend.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogZnJpZW5kLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjE5IGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyBmcmllbmRjb250cm9sIGV4dGVuZHMgYmFzZSB7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsNCgkJJHRoaXMtPmZyaWVuZGNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiBmcmllbmRjb250cm9sKCkgew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR0aGlzLT5sb2FkKCdmcmllbmQnKTsNCgl9DQoNCglmdW5jdGlvbiBvbmRlbGV0ZSgpIHsNCgkJJHVpZCA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3VpZCcpKTsNCgkJJGZyaWVuZGlkcyA9ICR0aGlzLT5pbnB1dCgnZnJpZW5kaWRzJyk7DQoJCSRpZCA9ICRfRU5WWydmcmllbmQnXS0+ZGVsZXRlKCR1aWQsICRmcmllbmRpZHMpOw0KCQlyZXR1cm4gJGlkOw0KCX0NCg0KCWZ1bmN0aW9uIG9uYWRkKCkgew0KCQkkdWlkID0gaW50dmFsKCR0aGlzLT5pbnB1dCgndWlkJykpOw0KCQkkZnJpZW5kaWQgPSAkdGhpcy0+aW5wdXQoJ2ZyaWVuZGlkJyk7DQoJCSRjb21tZW50ID0gJHRoaXMtPmlucHV0KCdjb21tZW50Jyk7DQoJCSRpZCA9ICRfRU5WWydmcmllbmQnXS0+YWRkKCR1aWQsICRmcmllbmRpZCwgJGNvbW1lbnQpOw0KCQlyZXR1cm4gJGlkOw0KCX0NCg0KCWZ1bmN0aW9uIG9udG90YWxudW0oKSB7DQoJCSR1aWQgPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd1aWQnKSk7DQoJCSRkaXJlY3Rpb24gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCdkaXJlY3Rpb24nKSk7DQoJCSR0b3RhbG51bSA9ICRfRU5WWydmcmllbmQnXS0+Z2V0X3RvdGFsbnVtX2J5X3VpZCgkdWlkLCAkZGlyZWN0aW9uKTsNCgkJcmV0dXJuICR0b3RhbG51bTsNCgl9DQoNCglmdW5jdGlvbiBvbmxzKCkgew0KCQkkdWlkID0gaW50dmFsKCR0aGlzLT5pbnB1dCgndWlkJykpOw0KCQkkcGFnZSA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3BhZ2UnKSk7DQoJCSRwYWdlc2l6ZSA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3BhZ2VzaXplJykpOw0KCQkkdG90YWxudW0gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd0b3RhbG51bScpKTsNCgkJJGRpcmVjdGlvbiA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ2RpcmVjdGlvbicpKTsNCgkJJHBhZ2VzaXplID0gJHBhZ2VzaXplID8gJHBhZ2VzaXplIDogVUNfUFBQOw0KCQkkdG90YWxudW0gPSAkdG90YWxudW0gPyAkdG90YWxudW0gOiAkX0VOVlsnZnJpZW5kJ10tPmdldF90b3RhbG51bV9ieV91aWQoJHVpZCk7DQoJCSRkYXRhID0gJF9FTlZbJ2ZyaWVuZCddLT5nZXRfbGlzdCgkdWlkLCAkcGFnZSwgJHBhZ2VzaXplLCAkdG90YWxudW0sICRkaXJlY3Rpb24pOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/control/index.htm'>
IA==
</file>
<file type='file' name='../uc_client/control/mail.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogbWFpbC5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoxOSBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KY2xhc3MgbWFpbGNvbnRyb2wgZXh0ZW5kcyBiYXNlIHsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCkgew0KCQkkdGhpcy0+bWFpbGNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiBtYWlsY29udHJvbCgpIHsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCX0NCg0KCWZ1bmN0aW9uIG9uYWRkKCkgew0KCQkkdGhpcy0+bG9hZCgnbWFpbCcpOw0KCQkkbWFpbCA9IGFycmF5KCk7DQoJCSRtYWlsWydhcHBpZCddCQk9IFVDX0FQUElEOw0KCQkkbWFpbFsndWlkcyddCQk9IGV4cGxvZGUoJywnLCAkdGhpcy0+aW5wdXQoJ3VpZHMnKSk7DQoJCSRtYWlsWydlbWFpbHMnXQkJPSBleHBsb2RlKCcsJywgJHRoaXMtPmlucHV0KCdlbWFpbHMnKSk7DQoJCSRtYWlsWydzdWJqZWN0J10JPSAkdGhpcy0+aW5wdXQoJ3N1YmplY3QnKTsNCgkJJG1haWxbJ21lc3NhZ2UnXQk9ICR0aGlzLT5pbnB1dCgnbWVzc2FnZScpOw0KCQkkbWFpbFsnY2hhcnNldCddCT0gJHRoaXMtPmlucHV0KCdjaGFyc2V0Jyk7DQoJCSRtYWlsWydodG1sb24nXQkJPSBpbnR2YWwoJHRoaXMtPmlucHV0KCdodG1sb24nKSk7DQoJCSRtYWlsWydsZXZlbCddCQk9IGFicyhpbnR2YWwoJHRoaXMtPmlucHV0KCdsZXZlbCcpKSk7DQoJCSRtYWlsWydmcm9tbWFpbCddCT0gJHRoaXMtPmlucHV0KCdmcm9tbWFpbCcpOw0KCQkkbWFpbFsnZGF0ZWxpbmUnXQk9ICR0aGlzLT50aW1lOw0KCQlyZXR1cm4gJF9FTlZbJ21haWwnXS0+YWRkKCRtYWlsKTsNCgl9DQoNCn0NCg0KPz4=
</file>
<file type='file' name='../uc_client/control/pm.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogcG0ucGhwLHYgMS4xIDIwMDkvMDgvMTEgMDM6MjM6MTkgYmx0IEV4cCAkDQoqLw0KDQohZGVmaW5lZCgnSU5fVUMnKSAmJiBleGl0KCdBY2Nlc3MgRGVuaWVkJyk7DQoNCmRlZmluZSgnUE1MSU1JVDFEQVlfRVJST1InLCAtMSk7DQpkZWZpbmUoJ1BNRkxPT0RDVFJMX0VSUk9SJywgLTIpOw0KZGVmaW5lKCdQTU1TR1RPTk9URlJJRU5EJywgLTMpOw0KZGVmaW5lKCdQTVNFTkRSRUdEQVlTJywgLTQpOw0KDQpjbGFzcyBwbWNvbnRyb2wgZXh0ZW5kcyBiYXNlIHsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCkgew0KCQkkdGhpcy0+cG1jb250cm9sKCk7DQoJfQ0KDQoJZnVuY3Rpb24gcG1jb250cm9sKCkgew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5sb2FkKCd1c2VyJyk7DQoJCSR0aGlzLT5sb2FkKCdwbScpOw0KCX0NCg0KCWZ1bmN0aW9uIG9uY2hlY2tfbmV3cG0oKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR0aGlzLT51c2VyWyd1aWQnXSA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3VpZCcpKTsNCgkJJG1vcmUgPSAkdGhpcy0+aW5wdXQoJ21vcmUnKTsNCgkJJHJlc3VsdCA9ICRfRU5WWydwbSddLT5jaGVja19uZXdwbSgkdGhpcy0+dXNlclsndWlkJ10sICRtb3JlKTsNCgkJaWYoJG1vcmUgPT0gMykgew0KCQkJcmVxdWlyZV9vbmNlIFVDX1JPT1QuJ2xpYi91Y2NvZGUuY2xhc3MucGhwJzsNCgkJCSR0aGlzLT51Y2NvZGUgPSBuZXcgdWNjb2RlKCk7DQoJCQkkcmVzdWx0WydsYXN0bXNnJ10gPSAkdGhpcy0+dWNjb2RlLT5jb21wbGllKCRyZXN1bHRbJ2xhc3Rtc2cnXSk7DQoJCX0NCgkJcmV0dXJuICRyZXN1bHQ7DQoJfQ0KDQoJZnVuY3Rpb24gb25zZW5kcG0oKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSRmcm9tdWlkID0gJHRoaXMtPmlucHV0KCdmcm9tdWlkJyk7DQoJCSRtc2d0byA9ICR0aGlzLT5pbnB1dCgnbXNndG8nKTsNCgkJJHN1YmplY3QgPSAkdGhpcy0+aW5wdXQoJ3N1YmplY3QnKTsNCgkJJG1lc3NhZ2UgPSAkdGhpcy0+aW5wdXQoJ21lc3NhZ2UnKTsNCgkJJHJlcGx5cG1pZCA9ICR0aGlzLT5pbnB1dCgncmVwbHlwbWlkJyk7DQoJCSRpc3VzZXJuYW1lID0gJHRoaXMtPmlucHV0KCdpc3VzZXJuYW1lJyk7DQoJCWlmKCRmcm9tdWlkKSB7DQoJCQkkdXNlciA9ICRfRU5WWyd1c2VyJ10tPmdldF91c2VyX2J5X3VpZCgkZnJvbXVpZCk7DQoJCQkkdXNlciA9IGRhZGRzbGFzaGVzKCR1c2VyLCAxKTsNCgkJCWlmKCEkdXNlcikgew0KCQkJCXJldHVybiAwOw0KCQkJfQ0KCQkJJHRoaXMtPnVzZXJbJ3VpZCddID0gJHVzZXJbJ3VpZCddOw0KCQkJJHRoaXMtPnVzZXJbJ3VzZXJuYW1lJ10gPSAkdXNlclsndXNlcm5hbWUnXTsNCgkJfSBlbHNlIHsNCgkJCSR0aGlzLT51c2VyWyd1aWQnXSA9IDA7DQoJCQkkdGhpcy0+dXNlclsndXNlcm5hbWUnXSA9ICcnOw0KCQl9DQoJCWlmKCRyZXBseXBtaWQpIHsNCgkJCSRpc3VzZXJuYW1lID0gMTsNCgkJCSRwbXMgPSAkX0VOVlsncG0nXS0+Z2V0X3BtX2J5X3BtaWQoJHRoaXMtPnVzZXJbJ3VpZCddLCAkcmVwbHlwbWlkKTsNCgkJCWlmKCRwbXNbMF1bJ21zZ2Zyb21pZCddID09ICR0aGlzLT51c2VyWyd1aWQnXSkgew0KCQkJCSR1c2VyID0gJF9FTlZbJ3VzZXInXS0+Z2V0X3VzZXJfYnlfdWlkKCRwbXNbMF1bJ21zZ3RvaWQnXSk7DQoJCQkJJG1zZ3RvID0gJHVzZXJbJ3VzZXJuYW1lJ107DQoJCQl9IGVsc2Ugew0KCQkJCSRtc2d0byA9ICRwbXNbMF1bJ21zZ2Zyb20nXTsNCgkJCX0NCgkJfQ0KDQoJCSRtc2d0byA9IGFycmF5X3VuaXF1ZShleHBsb2RlKCcsJywgJG1zZ3RvKSk7DQoJCSRpc3VzZXJuYW1lICYmICRtc2d0byA9ICRfRU5WWyd1c2VyJ10tPm5hbWUyaWQoJG1zZ3RvKTsNCgkJJGJsYWNrbHMgPSAkX0VOVlsncG0nXS0+Z2V0X2JsYWNrbHMoJHRoaXMtPnVzZXJbJ3VpZCddLCAkbXNndG8pOw0KDQoJCWlmKCRmcm9tdWlkKSB7DQoJCQlpZigkdGhpcy0+c2V0dGluZ3NbJ3Btc2VuZHJlZ2RheXMnXSkgew0KCQkJCWlmKCR1c2VyWydyZWdkYXRlJ10gPiAkdGhpcy0+dGltZSAtICR0aGlzLT5zZXR0aW5nc1sncG1zZW5kcmVnZGF5cyddICogODY0MDApIHsNCgkJCQkJcmV0dXJuIFBNU0VORFJFR0RBWVM7DQoJCQkJfQ0KCQkJfQ0KCQkJJHRoaXMtPmxvYWQoJ2ZyaWVuZCcpOw0KCQkJaWYoY291bnQoJG1zZ3RvKSA+IDEgJiYgISgkaXNfZnJpZW5kID0gJF9FTlZbJ2ZyaWVuZCddLT5pc19mcmllbmQoJGZyb211aWQsICRtc2d0bywgMykpKSB7DQoJCQkJcmV0dXJuIFBNTVNHVE9OT1RGUklFTkQ7DQoJCQl9DQoJCQkkcG1saW1pdDFkYXkgPSAkdGhpcy0+c2V0dGluZ3NbJ3BtbGltaXQxZGF5J10gJiYgJF9FTlZbJ3BtJ10tPmNvdW50X3BtX2J5X2Zyb211aWQoJHRoaXMtPnVzZXJbJ3VpZCddLCA4NjQwMCkgPiAkdGhpcy0+c2V0dGluZ3NbJ3BtbGltaXQxZGF5J107DQoJCQlpZigkcG1saW1pdDFkYXkgfHwgKCR0aGlzLT5zZXR0aW5nc1sncG1mbG9vZGN0cmwnXSAmJiAkX0VOVlsncG0nXS0+Y291bnRfcG1fYnlfZnJvbXVpZCgkdGhpcy0+dXNlclsndWlkJ10sICR0aGlzLT5zZXR0aW5nc1sncG1mbG9vZGN0cmwnXSkpKSB7DQoJCQkJaWYoISRfRU5WWydmcmllbmQnXS0+aXNfZnJpZW5kKCRmcm9tdWlkLCAkbXNndG8sIDMpKSB7DQoJCQkJCWlmKCEkX0VOVlsncG0nXS0+aXNfcmVwbHlfcG0oJGZyb211aWQsICRtc2d0bykpIHsNCgkJCQkJCWlmKCRwbWxpbWl0MWRheSkgew0KCQkJCQkJCXJldHVybiBQTUxJTUlUMURBWV9FUlJPUjsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJcmV0dXJuIFBNRkxPT0RDVFJMX0VSUk9SOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCSRsYXN0cG1pZCA9IDA7DQoJCWZvcmVhY2goJG1zZ3RvIGFzICR1aWQpIHsNCgkJCWlmKCEkZnJvbXVpZCB8fCAhaW5fYXJyYXkoJ3tBTEx9JywgJGJsYWNrbHNbJHVpZF0pKSB7DQoJCQkJJGJsYWNrbHNbJHVpZF0gPSAkX0VOVlsndXNlciddLT5uYW1lMmlkKCRibGFja2xzWyR1aWRdKTsNCgkJCQlpZighJGZyb211aWQgfHwgaXNzZXQoJGJsYWNrbHNbJHVpZF0pICYmICFpbl9hcnJheSgkdGhpcy0+dXNlclsndWlkJ10sICRibGFja2xzWyR1aWRdKSkgew0KCQkJCQkkbGFzdHBtaWQgPSAkX0VOVlsncG0nXS0+c2VuZHBtKCRzdWJqZWN0LCAkbWVzc2FnZSwgJHRoaXMtPnVzZXIsICR1aWQsICRyZXBseXBtaWQpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGxhc3RwbWlkOw0KCX0NCg0KCWZ1bmN0aW9uIG9uZGVsZXRlKCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkdGhpcy0+dXNlclsndWlkJ10gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd1aWQnKSk7DQoJCSRpZCA9ICRfRU5WWydwbSddLT5kZWxldGVwbSgkdGhpcy0+dXNlclsndWlkJ10sICR0aGlzLT5pbnB1dCgncG1pZHMnKSk7DQoJCXJldHVybiAkaWQ7DQoJfQ0KDQoJZnVuY3Rpb24gb25kZWxldGV1c2VyKCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkdGhpcy0+dXNlclsndWlkJ10gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd1aWQnKSk7DQoJCSRpZCA9ICRfRU5WWydwbSddLT5kZWxldGV1aWRwbSgkdGhpcy0+dXNlclsndWlkJ10sICR0aGlzLT5pbnB1dCgndG91aWRzJykpOw0KCQlyZXR1cm4gJGlkOw0KCX0NCgkNCglmdW5jdGlvbiBvbnJlYWRzdGF0dXMoKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR0aGlzLT51c2VyWyd1aWQnXSA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3VpZCcpKTsNCgkJJF9FTlZbJ3BtJ10tPnNldF9wbV9zdGF0dXMoJHRoaXMtPnVzZXJbJ3VpZCddLCAkdGhpcy0+aW5wdXQoJ3VpZHMnKSwgJHRoaXMtPmlucHV0KCdwbWlkcycpLCAkdGhpcy0+aW5wdXQoJ3N0YXR1cycpKTsNCgl9DQoNCglmdW5jdGlvbiBvbmlnbm9yZSgpIHsNCgkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCgkJJHRoaXMtPnVzZXJbJ3VpZCddID0gaW50dmFsKCR0aGlzLT5pbnB1dCgndWlkJykpOw0KCQlyZXR1cm4gJF9FTlZbJ3BtJ10tPnNldF9pZ25vcmUoJHRoaXMtPnVzZXJbJ3VpZCddKTsNCgl9DQoNCiAJZnVuY3Rpb24gb25scygpIHsNCiAJCSR0aGlzLT5pbml0X2lucHV0KCk7DQogCQkkcGFnZXNpemUgPSAkdGhpcy0+aW5wdXQoJ3BhZ2VzaXplJyk7DQogCQkkZm9sZGVyID0gJHRoaXMtPmlucHV0KCdmb2xkZXInKTsNCiAJCSRmaWx0ZXIgPSAkdGhpcy0+aW5wdXQoJ2ZpbHRlcicpOw0KIAkJJHBhZ2UgPSAkdGhpcy0+aW5wdXQoJ3BhZ2UnKTsNCiAJCSRmb2xkZXIgPSBpbl9hcnJheSgkZm9sZGVyLCBhcnJheSgnbmV3Ym94JywgJ2luYm94JywgJ291dGJveCcsICdzZWFyY2hib3gnKSkgPyAkZm9sZGVyIDogJ2luYm94JzsNCiAJCWlmKCRmb2xkZXIgIT0gJ3NlYXJjaGJveCcpIHsNCiAJCQkkZmlsdGVyID0gJGZpbHRlciA/IChpbl9hcnJheSgkZmlsdGVyLCBhcnJheSgnbmV3cG0nLCAncHJpdmF0ZXBtJywgJ3N5c3RlbXBtJywgJ2Fubm91bmNlcG0nKSkgPyAkZmlsdGVyIDogJycpIDogJyc7DQogCQl9DQogCQkkbXNnbGVuID0gJHRoaXMtPmlucHV0KCdtc2dsZW4nKTsNCiAJCSR0aGlzLT51c2VyWyd1aWQnXSA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3VpZCcpKTsNCgkJaWYoJGZvbGRlciAhPSAnc2VhcmNoYm94Jykgew0KIAkJCSRwbW51bSA9ICRfRU5WWydwbSddLT5nZXRfbnVtKCR0aGlzLT51c2VyWyd1aWQnXSwgJGZvbGRlciwgJGZpbHRlcik7DQogCQkJJHN0YXJ0ID0gJHRoaXMtPnBhZ2VfZ2V0X3N0YXJ0KCRwYWdlLCAkcGFnZXNpemUsICRwbW51bSk7DQogCQl9IGVsc2Ugew0KIAkJCSRwbW51bSA9ICRwYWdlc2l6ZTsNCiAJCQkkc3RhcnQgPSAoJHBhZ2UgLSAxKSAqICRwYWdlc2l6ZTsNCiAJCX0NCiAJCWlmKCRwYWdlc2l6ZSA+IDApIHsNCgkgCQkkcG1zID0gJF9FTlZbJ3BtJ10tPmdldF9wbV9saXN0KCR0aGlzLT51c2VyWyd1aWQnXSwgJHBtbnVtLCAkZm9sZGVyLCAkZmlsdGVyLCAkc3RhcnQsICRwYWdlc2l6ZSk7DQoJIAkJaWYoaXNfYXJyYXkoJHBtcykgJiYgIWVtcHR5KCRwbXMpKSB7DQoJCQkJZm9yZWFjaCgkcG1zIGFzICRrZXkgPT4gJHBtKSB7DQoJCQkJCWlmKCRtc2dsZW4pIHsNCgkJCQkJCSRwbXNbJGtleV1bJ21lc3NhZ2UnXSA9IGh0bWxzcGVjaWFsY2hhcnMoJF9FTlZbJ3BtJ10tPnJlbW92ZWNvZGUoJHBtc1ska2V5XVsnbWVzc2FnZSddLCAkbXNnbGVuKSk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQl1bnNldCgkcG1zWyRrZXldWydtZXNzYWdlJ10pOw0KCQkJCQl9DQoJCQkJCXVuc2V0KCRwbXNbJGtleV1bJ2ZvbGRlciddKTsNCgkJCQl9DQoJCQl9DQoJCQkkcmVzdWx0WydkYXRhJ10gPSAkcG1zOw0KCQl9DQoJCSRyZXN1bHRbJ2NvdW50J10gPSAkcG1udW07DQogCQlyZXR1cm4gJHJlc3VsdDsNCiAJfQ0KDQogCWZ1bmN0aW9uIG9udmlld25vZGUoKSB7DQogIAkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCiAgCQkkdGhpcy0+dXNlclsndWlkJ10gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd1aWQnKSk7DQogCQkkcG1pZCA9ICRfRU5WWydwbSddLT5wbWludHZhbCgkdGhpcy0+aW5wdXQoJ3BtaWQnKSk7DQogCQkkdHlwZSA9ICR0aGlzLT5pbnB1dCgndHlwZScpOw0KIAkJJHBtID0gJF9FTlZbJ3BtJ10tPmdldF9wbW5vZGVfYnlfcG1pZCgkdGhpcy0+dXNlclsndWlkJ10sICRwbWlkLCAkdHlwZSk7DQogCQlpZigkcG0pIHsNCgkJCXJlcXVpcmVfb25jZSBVQ19ST09ULidsaWIvdWNjb2RlLmNsYXNzLnBocCc7DQoJCQkkdGhpcy0+dWNjb2RlID0gbmV3IHVjY29kZSgpOw0KCQkJJHBtWydtZXNzYWdlJ10gPSAkdGhpcy0+dWNjb2RlLT5jb21wbGllKCRwbVsnbWVzc2FnZSddKTsNCgkJCXJldHVybiAkcG07DQoJCX0NCiAJfQ0KDQogCWZ1bmN0aW9uIG9udmlldygpIHsNCiAJCSR0aGlzLT5pbml0X2lucHV0KCk7DQogCQkkdGhpcy0+dXNlclsndWlkJ10gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd1aWQnKSk7DQoJCSR0b3VpZCA9ICR0aGlzLT5pbnB1dCgndG91aWQnKTsNCgkJJHBtaWQgPSAkX0VOVlsncG0nXS0+cG1pbnR2YWwoJHRoaXMtPmlucHV0KCdwbWlkJykpOw0KCQkkZGF0ZXJhbmdlID0gJHRoaXMtPmlucHV0KCdkYXRlcmFuZ2UnKTsNCiAJCWlmKGVtcHR5KCRwbWlkKSkgew0KCSAJCSRkYXRlcmFuZ2UgPSBlbXB0eSgkZGF0ZXJhbmdlKSA/IDEgOiAkZGF0ZXJhbmdlOw0KCSAJCSR0b2RheSA9ICR0aGlzLT50aW1lIC0gKCR0aGlzLT50aW1lICsgJHRoaXMtPnNldHRpbmdzWyd0aW1lb2Zmc2V0J10pICUgODY0MDA7DQoJIAkJaWYoJGRhdGVyYW5nZSA9PSAxKSB7DQoJIAkJCSRzdGFydHRpbWUgPSAkdG9kYXk7DQoJIAkJfSBlbHNlaWYoJGRhdGVyYW5nZSA9PSAyKSB7DQoJIAkJCSRzdGFydHRpbWUgPSAkdG9kYXkgLSA4NjQwMDsNCgkgCQl9IGVsc2VpZigkZGF0ZXJhbmdlID09IDMpIHsNCgkgCQkJJHN0YXJ0dGltZSA9ICR0b2RheSAtIDE3MjgwMDsNCgkgCQl9IGVsc2VpZigkZGF0ZXJhbmdlID09IDQpIHsNCgkgCQkJJHN0YXJ0dGltZSA9ICR0b2RheSAtIDYwNDgwMDsNCgkgCQl9IGVsc2VpZigkZGF0ZXJhbmdlID09IDUpIHsNCgkgCQkJJHN0YXJ0dGltZSA9IDA7DQoJIAkJfQ0KCSAJCSRlbmR0aW1lID0gJHRoaXMtPnRpbWU7DQoJIAkJJHBtcyA9ICRfRU5WWydwbSddLT5nZXRfcG1fYnlfdG91aWQoJHRoaXMtPnVzZXJbJ3VpZCddLCAkdG91aWQsICRzdGFydHRpbWUsICRlbmR0aW1lKTsNCgkgCX0gZWxzZSB7DQoJIAkJJHBtcyA9ICRfRU5WWydwbSddLT5nZXRfcG1fYnlfcG1pZCgkdGhpcy0+dXNlclsndWlkJ10sICRwbWlkKTsNCgkgCX0NCg0KIAkgCXJlcXVpcmVfb25jZSBVQ19ST09ULidsaWIvdWNjb2RlLmNsYXNzLnBocCc7DQoJCSR0aGlzLT51Y2NvZGUgPSBuZXcgdWNjb2RlKCk7DQoJCSRzdGF0dXMgPSBGQUxTRTsNCgkJZm9yZWFjaCgkcG1zIGFzICRrZXkgPT4gJHBtKSB7DQoJCQkkcG1zWyRrZXldWydtZXNzYWdlJ10gPSAkdGhpcy0+dWNjb2RlLT5jb21wbGllKCRwbXNbJGtleV1bJ21lc3NhZ2UnXSk7DQoJCQkhJHN0YXR1cyAmJiAkc3RhdHVzID0gJHBtWydtc2d0b2lkJ10gJiYgJHBtWyduZXcnXTsNCgkJfQ0KCQkkc3RhdHVzICYmICRfRU5WWydwbSddLT5zZXRfcG1fc3RhdHVzKCR0aGlzLT51c2VyWyd1aWQnXSwgJHRvdWlkLCAkcG1pZCk7DQoJCXJldHVybiAkcG1zOw0KIAl9DQoNCiAgCWZ1bmN0aW9uIG9uYmxhY2tsc19nZXQoKSB7DQogIAkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCiAJCSR0aGlzLT51c2VyWyd1aWQnXSA9IGludHZhbCgkdGhpcy0+aW5wdXQoJ3VpZCcpKTsNCiAJCXJldHVybiAkX0VOVlsncG0nXS0+Z2V0X2JsYWNrbHMoJHRoaXMtPnVzZXJbJ3VpZCddKTsNCiAJfQ0KDQogCWZ1bmN0aW9uIG9uYmxhY2tsc19zZXQoKSB7DQogCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KIAkJJHRoaXMtPnVzZXJbJ3VpZCddID0gaW50dmFsKCR0aGlzLT5pbnB1dCgndWlkJykpOw0KIAkJJGJsYWNrbHMgPSAkdGhpcy0+aW5wdXQoJ2JsYWNrbHMnKTsNCiAJCXJldHVybiAkX0VOVlsncG0nXS0+c2V0X2JsYWNrbHMoJHRoaXMtPnVzZXJbJ3VpZCddLCAkYmxhY2tscyk7DQogCX0NCg0KCWZ1bmN0aW9uIG9uYmxhY2tsc19hZGQoKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQogCQkkdGhpcy0+dXNlclsndWlkJ10gPSBpbnR2YWwoJHRoaXMtPmlucHV0KCd1aWQnKSk7DQogCQkkdXNlcm5hbWUgPSAkdGhpcy0+aW5wdXQoJ3VzZXJuYW1lJyk7DQogCQlyZXR1cm4gJF9FTlZbJ3BtJ10tPnVwZGF0ZV9ibGFja2xzKCR0aGlzLT51c2VyWyd1aWQnXSwgJHVzZXJuYW1lLCAxKTsNCiAJfQ0KDQogCWZ1bmN0aW9uIG9uYmxhY2tsc19kZWxldGUoJGFycikgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KIAkJJHRoaXMtPnVzZXJbJ3VpZCddID0gaW50dmFsKCR0aGlzLT5pbnB1dCgndWlkJykpOw0KIAkJJHVzZXJuYW1lID0gJHRoaXMtPmlucHV0KCd1c2VybmFtZScpOw0KIAkJcmV0dXJuICRfRU5WWydwbSddLT51cGRhdGVfYmxhY2tscygkdGhpcy0+dXNlclsndWlkJ10sICR1c2VybmFtZSwgMik7DQogCX0NCg0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/control/tag.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogdGFnLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjE5IGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyB0YWdjb250cm9sIGV4dGVuZHMgYmFzZSB7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsNCgkJJHRoaXMtPnRhZ2NvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiB0YWdjb250cm9sKCkgew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCk7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR0aGlzLT5sb2FkKCd0YWcnKTsNCgkJJHRoaXMtPmxvYWQoJ21pc2MnKTsNCgl9DQoNCglmdW5jdGlvbiBvbmdldHRhZygpIHsNCgkJJGFwcGlkID0gJHRoaXMtPmlucHV0KCdhcHBpZCcpOw0KCQkkdGFnbmFtZSA9ICR0aGlzLT5pbnB1dCgndGFnbmFtZScpOw0KCQkkbnVtcyA9ICR0aGlzLT5pbnB1dCgnbnVtcycpOw0KCQlpZihlbXB0eSgkdGFnbmFtZSkpIHsNCgkJCXJldHVybiBOVUxMOw0KCQl9DQoJCSRyZXR1cm4gPSAkYXBwYXJyYXkgPSAkYXBwYWRkID0gYXJyYXkoKTsNCg0KCQlpZigkbnVtcyAmJiBpc19hcnJheSgkbnVtcykpIHsNCgkJCWZvcmVhY2goJG51bXMgYXMgJGsgPT4gJG51bSkgew0KCQkJCSRhcHBhcnJheVska10gPSAkazsNCgkJCX0NCgkJfQ0KDQoJCSRkYXRhID0gJF9FTlZbJ3RhZyddLT5nZXRfdGFnX2J5X25hbWUoJHRhZ25hbWUpOw0KCQlpZigkZGF0YSkgew0KCQkJJGFwcGFycmF5bmV3ID0gYXJyYXkoKTsNCgkJCWZvcmVhY2goJGRhdGEgYXMgJHRhZ2RhdGEpIHsNCgkJCQkkcm93ID0gJHIgPSBhcnJheSgpOw0KCQkJCSR0bXAgPSBleHBsb2RlKCJcdCIsICR0YWdkYXRhWydkYXRhJ10pOw0KCQkJCSR0eXBlID0gJHRtcFswXTsNCgkJCQlhcnJheV9zaGlmdCgkdG1wKTsNCgkJCQlmb3JlYWNoKCR0bXAgYXMgJHRtcDEpIHsNCgkJCQkJJHRtcDEgIT0gJycgJiYgJHJbXSA9ICRfRU5WWydtaXNjJ10tPnN0cmluZzJhcnJheSgkdG1wMSk7DQoJCQkJfQ0KCQkJCWlmKGluX2FycmF5KCR0YWdkYXRhWydhcHBpZCddLCAkYXBwYXJyYXkpKSB7DQoJCQkJCWlmKCR0YWdkYXRhWydleHBpcmF0aW9uJ10gPiAwICYmICR0aGlzLT50aW1lIC0gJHRhZ2RhdGFbJ2V4cGlyYXRpb24nXSA+IDM2MDApIHsNCgkJCQkJCSRhcHBhZGRbXSA9ICR0YWdkYXRhWydhcHBpZCddOw0KCQkJCQkJJF9FTlZbJ3RhZyddLT5mb3JtYXRjYWNoZSgkdGFnZGF0YVsnYXBwaWQnXSwgJHRhZ25hbWUpOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJGFwcGFycmF5bmV3W10gPSAkdGFnZGF0YVsnYXBwaWQnXTsNCgkJCQkJfQ0KCQkJCQkkZGF0YWtleSA9IGFycmF5KCk7DQoJCQkJCSRjb3VudCA9IDA7DQoJCQkJCWZvcmVhY2goJHIgYXMgJGRhdGEpIHsNCgkJCQkJCSRyZXR1cm5bJHRhZ2RhdGFbJ2FwcGlkJ11dWydkYXRhJ11bXSA9ICRkYXRhOw0KCQkJCQkJJHJldHVyblskdGFnZGF0YVsnYXBwaWQnXV1bJ3R5cGUnXSA9ICR0eXBlOw0KCQkJCQkJJGNvdW50Kys7DQoJCQkJCQlpZigkY291bnQgPj0gJG51bXNbJHRhZ2RhdGFbJ2FwcGlkJ11dKSB7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQkkYXBwYXJyYXkgPSBhcnJheV9kaWZmKCRhcHBhcnJheSwgJGFwcGFycmF5bmV3KTsNCgkJfSBlbHNlIHsNCgkJCWZvcmVhY2goJGFwcGFycmF5IGFzICRhcHBpZCkgew0KCQkJCSRfRU5WWyd0YWcnXS0+Zm9ybWF0Y2FjaGUoJGFwcGlkLCAkdGFnbmFtZSk7DQoJCQl9DQoJCX0NCgkJaWYoJGFwcGFycmF5KSB7DQoJCQkkdGhpcy0+bG9hZCgnbm90ZScpOw0KCQkJJF9FTlZbJ25vdGUnXS0+YWRkKCdnZXR0YWcnLCAiaWQ9JHRhZ25hbWUiLCAnJywgJGFwcGFkZCwgLTEpOw0KCQl9DQoJCXJldHVybiAkcmV0dXJuOw0KCX0NCg0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/control/user.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogdXNlci5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoxOSBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KZGVmaW5lKCdVQ19VU0VSX0NIRUNLX1VTRVJOQU1FX0ZBSUxFRCcsIC0xKTsNCmRlZmluZSgnVUNfVVNFUl9VU0VSTkFNRV9CQURXT1JEJywgLTIpOw0KZGVmaW5lKCdVQ19VU0VSX1VTRVJOQU1FX0VYSVNUUycsIC0zKTsNCmRlZmluZSgnVUNfVVNFUl9FTUFJTF9GT1JNQVRfSUxMRUdBTCcsIC00KTsNCmRlZmluZSgnVUNfVVNFUl9FTUFJTF9BQ0NFU1NfSUxMRUdBTCcsIC01KTsNCmRlZmluZSgnVUNfVVNFUl9FTUFJTF9FWElTVFMnLCAtNik7DQoNCmNsYXNzIHVzZXJjb250cm9sIGV4dGVuZHMgYmFzZSB7DQoNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCkgew0KCQkkdGhpcy0+dXNlcmNvbnRyb2woKTsNCgl9DQoNCglmdW5jdGlvbiB1c2VyY29udHJvbCgpIHsNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgpOw0KCQkkdGhpcy0+bG9hZCgndXNlcicpOw0KCQkkdGhpcy0+YXBwID0gJHRoaXMtPmNhY2hlWydhcHBzJ11bVUNfQVBQSURdOw0KCX0NCg0KCS8vIC0xIM60v6rG9A0KCWZ1bmN0aW9uIG9uc3lubG9naW4oKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR1aWQgPSAkdGhpcy0+aW5wdXQoJ3VpZCcpOw0KCQlpZigkdGhpcy0+YXBwWydzeW5sb2dpbiddKSB7DQoJCQlpZigkdGhpcy0+dXNlciA9ICRfRU5WWyd1c2VyJ10tPmdldF91c2VyX2J5X3VpZCgkdWlkKSkgew0KCQkJCSRzeW5zdHIgPSAnJzsNCgkJCQlmb3JlYWNoKCR0aGlzLT5jYWNoZVsnYXBwcyddIGFzICRhcHBpZCA9PiAkYXBwKSB7DQoJCQkJCWlmKCRhcHBbJ3N5bmxvZ2luJ10gJiYgJGFwcFsnYXBwaWQnXSAhPSAkdGhpcy0+YXBwWydhcHBpZCddKSB7DQoJCQkJCQkkc3luc3RyIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRhcHBbJ3VybCddLicvYXBpL3VjLnBocD90aW1lPScuJHRoaXMtPnRpbWUuJyZjb2RlPScudXJsZW5jb2RlKCR0aGlzLT5hdXRoY29kZSgnYWN0aW9uPXN5bmxvZ2luJnVzZXJuYW1lPScuJHRoaXMtPnVzZXJbJ3VzZXJuYW1lJ10uJyZ1aWQ9Jy4kdGhpcy0+dXNlclsndWlkJ10uJyZwYXNzd29yZD0nLiR0aGlzLT51c2VyWydwYXNzd29yZCddLiImdGltZT0iLiR0aGlzLT50aW1lLCAnRU5DT0RFJywgJGFwcFsnYXV0aGtleSddKSkuJyI+PC9zY3JpcHQ+JzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXR1cm4gJHN5bnN0cjsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJyc7DQoJfQ0KDQoJZnVuY3Rpb24gb25zeW5sb2dvdXQoKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCWlmKCR0aGlzLT5hcHBbJ3N5bmxvZ2luJ10pIHsNCgkJCSRzeW5zdHIgPSAnJzsNCgkJCWZvcmVhY2goJHRoaXMtPmNhY2hlWydhcHBzJ10gYXMgJGFwcGlkID0+ICRhcHApIHsNCgkJCQlpZigkYXBwWydzeW5sb2dpbiddICYmICRhcHBbJ2FwcGlkJ10gIT0gJHRoaXMtPmFwcFsnYXBwaWQnXSkgew0KCQkJCQkkc3luc3RyIC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRhcHBbJ3VybCddLicvYXBpL3VjLnBocD90aW1lPScuJHRoaXMtPnRpbWUuJyZjb2RlPScudXJsZW5jb2RlKCR0aGlzLT5hdXRoY29kZSgnYWN0aW9uPXN5bmxvZ291dCZ0aW1lPScuJHRoaXMtPnRpbWUsICdFTkNPREUnLCAkYXBwWydhdXRoa2V5J10pKS4nIj48L3NjcmlwdD4nOw0KCQkJCX0NCgkJCX0NCgkJCXJldHVybiAkc3luc3RyOw0KCQl9DQoJCXJldHVybiAnJzsNCgl9DQoNCglmdW5jdGlvbiBvbnJlZ2lzdGVyKCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkdXNlcm5hbWUgPSAkdGhpcy0+aW5wdXQoJ3VzZXJuYW1lJyk7DQoJCSRwYXNzd29yZCA9ICAkdGhpcy0+aW5wdXQoJ3Bhc3N3b3JkJyk7DQoJCSRlbWFpbCA9ICR0aGlzLT5pbnB1dCgnZW1haWwnKTsNCgkJJHF1ZXN0aW9uaWQgPSAkdGhpcy0+aW5wdXQoJ3F1ZXN0aW9uaWQnKTsNCgkJJGFuc3dlciA9ICR0aGlzLT5pbnB1dCgnYW5zd2VyJyk7DQoNCgkJaWYoKCRzdGF0dXMgPSAkdGhpcy0+X2NoZWNrX3VzZXJuYW1lKCR1c2VybmFtZSkpIDwgMCkgew0KCQkJcmV0dXJuICRzdGF0dXM7DQoJCX0NCgkJaWYoKCRzdGF0dXMgPSAkdGhpcy0+X2NoZWNrX2VtYWlsKCRlbWFpbCkpIDwgMCkgew0KCQkJcmV0dXJuICRzdGF0dXM7DQoJCX0NCgkJJHVpZCA9ICRfRU5WWyd1c2VyJ10tPmFkZF91c2VyKCR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZW1haWwsIDAsICRxdWVzdGlvbmlkLCAkYW5zd2VyKTsNCgkJcmV0dXJuICR1aWQ7DQoJfQ0KDQoJZnVuY3Rpb24gb25lZGl0KCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkdXNlcm5hbWUgPSAkdGhpcy0+aW5wdXQoJ3VzZXJuYW1lJyk7DQoJCSRvbGRwdyA9ICR0aGlzLT5pbnB1dCgnb2xkcHcnKTsNCgkJJG5ld3B3ID0gJHRoaXMtPmlucHV0KCduZXdwdycpOw0KCQkkZW1haWwgPSAkdGhpcy0+aW5wdXQoJ2VtYWlsJyk7DQoJCSRpZ25vcmVvbGRwdyA9ICR0aGlzLT5pbnB1dCgnaWdub3Jlb2xkcHcnKTsNCgkJJHF1ZXN0aW9uaWQgPSAkdGhpcy0+aW5wdXQoJ3F1ZXN0aW9uaWQnKTsNCgkJJGFuc3dlciA9ICR0aGlzLT5pbnB1dCgnYW5zd2VyJyk7DQoNCgkJaWYoISRpZ25vcmVvbGRwdyAmJiAkZW1haWwgJiYgKCRzdGF0dXMgPSAkdGhpcy0+X2NoZWNrX2VtYWlsKCRlbWFpbCwgJHVzZXJuYW1lKSkgPCAwKSB7DQoJCQlyZXR1cm4gJHN0YXR1czsNCgkJfQ0KCQkkc3RhdHVzID0gJF9FTlZbJ3VzZXInXS0+ZWRpdF91c2VyKCR1c2VybmFtZSwgJG9sZHB3LCAkbmV3cHcsICRlbWFpbCwgJGlnbm9yZW9sZHB3LCAkcXVlc3Rpb25pZCwgJGFuc3dlcik7DQoNCgkJaWYoJG5ld3B3ICYmICRzdGF0dXMgPiAwKSB7DQoJCQkkdGhpcy0+bG9hZCgnbm90ZScpOw0KCQkJJF9FTlZbJ25vdGUnXS0+YWRkKCd1cGRhdGVwdycsICd1c2VybmFtZT0nLnVybGVuY29kZSgkdXNlcm5hbWUpLicmcGFzc3dvcmQ9Jyk7DQoJCQkkX0VOVlsnbm90ZSddLT5zZW5kKCk7DQoJCX0NCgkJcmV0dXJuICRzdGF0dXM7DQoJfQ0KDQoJZnVuY3Rpb24gb25sb2dpbigpIHsNCgkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCgkJJGlzdWlkID0gJHRoaXMtPmlucHV0KCdpc3VpZCcpOw0KCQkkdXNlcm5hbWUgPSAkdGhpcy0+aW5wdXQoJ3VzZXJuYW1lJyk7DQoJCSRwYXNzd29yZCA9ICR0aGlzLT5pbnB1dCgncGFzc3dvcmQnKTsNCgkJJGNoZWNrcXVlcyA9ICR0aGlzLT5pbnB1dCgnY2hlY2txdWVzJyk7DQoJCSRxdWVzdGlvbmlkID0gJHRoaXMtPmlucHV0KCdxdWVzdGlvbmlkJyk7DQoJCSRhbnN3ZXIgPSAkdGhpcy0+aW5wdXQoJ2Fuc3dlcicpOw0KCQlpZigkaXN1aWQpIHsNCgkJCSR1c2VyID0gJF9FTlZbJ3VzZXInXS0+Z2V0X3VzZXJfYnlfdWlkKCR1c2VybmFtZSk7DQoJCX0gZWxzZSB7DQoJCQkkdXNlciA9ICRfRU5WWyd1c2VyJ10tPmdldF91c2VyX2J5X3VzZXJuYW1lKCR1c2VybmFtZSk7DQoJCX0NCg0KCQkkcGFzc3dvcmRtZDUgPSBwcmVnX21hdGNoKCcvXlx3ezMyfSQvJywgJHBhc3N3b3JkKSA/ICRwYXNzd29yZCA6IG1kNSgkcGFzc3dvcmQpOw0KCQlpZihlbXB0eSgkdXNlcikpIHsNCgkJCSRzdGF0dXMgPSAtMTsNCgkJfSBlbHNlaWYoJHVzZXJbJ3Bhc3N3b3JkJ10gIT0gbWQ1KCRwYXNzd29yZG1kNS4kdXNlclsnc2FsdCddKSkgew0KCQkJJHN0YXR1cyA9IC0yOw0KCQl9IGVsc2VpZigkY2hlY2txdWVzICYmICR1c2VyWydzZWNxdWVzJ10gIT0gJycgJiYgJHVzZXJbJ3NlY3F1ZXMnXSAhPSAkX0VOVlsndXNlciddLT5xdWVzY3J5cHQoJHF1ZXN0aW9uaWQsICRhbnN3ZXIpKSB7DQoJCQkkc3RhdHVzID0gLTM7DQoJCX0gZWxzZSB7DQoJCQkkc3RhdHVzID0gJHVzZXJbJ3VpZCddOw0KCQl9DQoJCSRtZXJnZSA9ICRzdGF0dXMgIT0gLTEgJiYgISRpc3VpZCAmJiAkX0VOVlsndXNlciddLT5jaGVja19tZXJnZXVzZXIoJHVzZXJuYW1lKSA/IDEgOiAwOw0KCQlyZXR1cm4gYXJyYXkoJHN0YXR1cywgJHVzZXJbJ3VzZXJuYW1lJ10sICRwYXNzd29yZCwgJHVzZXJbJ2VtYWlsJ10sICRtZXJnZSk7DQoJfQ0KDQoJZnVuY3Rpb24gb25jaGVja19lbWFpbCgpIHsNCgkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCgkJJGVtYWlsID0gJHRoaXMtPmlucHV0KCdlbWFpbCcpOw0KCQlyZXR1cm4gJHRoaXMtPl9jaGVja19lbWFpbCgkZW1haWwpOw0KCX0NCg0KCWZ1bmN0aW9uIG9uY2hlY2tfdXNlcm5hbWUoKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR1c2VybmFtZSA9ICR0aGlzLT5pbnB1dCgndXNlcm5hbWUnKTsNCgkJaWYoKCRzdGF0dXMgPSAkdGhpcy0+X2NoZWNrX3VzZXJuYW1lKCR1c2VybmFtZSkpIDwgMCkgew0KCQkJcmV0dXJuICRzdGF0dXM7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gMTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIG9uZ2V0X3VzZXIoKSB7DQoJCSR0aGlzLT5pbml0X2lucHV0KCk7DQoJCSR1c2VybmFtZSA9ICR0aGlzLT5pbnB1dCgndXNlcm5hbWUnKTsNCgkJaWYoISR0aGlzLT5pbnB1dCgnaXN1aWQnKSkgew0KCQkJJHN0YXR1cyA9ICRfRU5WWyd1c2VyJ10tPmdldF91c2VyX2J5X3VzZXJuYW1lKCR1c2VybmFtZSk7DQoJCX0gZWxzZSB7DQoJCQkkc3RhdHVzID0gJF9FTlZbJ3VzZXInXS0+Z2V0X3VzZXJfYnlfdWlkKCR1c2VybmFtZSk7DQoJCX0NCgkJaWYoJHN0YXR1cykgew0KCQkJcmV0dXJuIGFycmF5KCRzdGF0dXNbJ3VpZCddLCRzdGF0dXNbJ3VzZXJuYW1lJ10sJHN0YXR1c1snZW1haWwnXSk7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gMDsNCgkJfQ0KCX0NCg0KDQoJZnVuY3Rpb24gb25nZXRwcm90ZWN0ZWQoKSB7DQoJCSRwcm90ZWN0ZWRtZW1iZXJzID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCB1aWQsdXNlcm5hbWUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuInByb3RlY3RlZG1lbWJlcnMgR1JPVVAgQlkgdXNlcm5hbWUiKTsNCgkJcmV0dXJuICRwcm90ZWN0ZWRtZW1iZXJzOw0KCX0NCg0KCWZ1bmN0aW9uIG9uZGVsZXRlKCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkdWlkID0gJHRoaXMtPmlucHV0KCd1aWQnKTsNCgkJcmV0dXJuICRfRU5WWyd1c2VyJ10tPmRlbGV0ZV91c2VyKCR1aWQpOw0KCX0NCg0KCWZ1bmN0aW9uIG9uYWRkcHJvdGVjdGVkKCkgew0KCQkkdGhpcy0+aW5pdF9pbnB1dCgpOw0KCQkkdXNlcm5hbWUgPSAkdGhpcy0+aW5wdXQoJ3VzZXJuYW1lJyk7DQoJCSRhZG1pbiA9ICR0aGlzLT5pbnB1dCgnYWRtaW4nKTsNCgkJJGFwcGlkID0gJHRoaXMtPmFwcFsnYXBwaWQnXTsNCgkJJHVzZXJuYW1lcyA9IChhcnJheSkkdXNlcm5hbWU7DQoJCWZvcmVhY2goJHVzZXJuYW1lcyBhcyAkdXNlcm5hbWUpIHsNCgkJCSR1c2VyID0gJF9FTlZbJ3VzZXInXS0+Z2V0X3VzZXJfYnlfdXNlcm5hbWUoJHVzZXJuYW1lKTsNCgkJCSR1aWQgPSAkdXNlclsndWlkJ107DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJSRVBMQUNFIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJwcm90ZWN0ZWRtZW1iZXJzIFNFVCB1aWQ9JyR1aWQnLCB1c2VybmFtZT0nJHVzZXJuYW1lJywgYXBwaWQ9JyRhcHBpZCcsIGRhdGVsaW5lPSd7JHRoaXMtPnRpbWV9JywgYWRtaW49JyRhZG1pbiciLCAnU0lMRU5UJyk7DQoJCX0NCgkJcmV0dXJuICR0aGlzLT5kYi0+ZXJybm8oKSA/IC0xIDogMTsNCgl9DQoNCglmdW5jdGlvbiBvbmRlbGV0ZXByb3RlY3RlZCgpIHsNCgkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCgkJJHVzZXJuYW1lID0gJHRoaXMtPmlucHV0KCd1c2VybmFtZScpOw0KCQkkYXBwaWQgPSAkdGhpcy0+YXBwWydhcHBpZCddOw0KCQkkdXNlcm5hbWVzID0gKGFycmF5KSR1c2VybmFtZTsNCgkJZm9yZWFjaCgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwcm90ZWN0ZWRtZW1iZXJzIFdIRVJFIHVzZXJuYW1lPSckdXNlcm5hbWUnIEFORCBhcHBpZD0nJGFwcGlkJyIpOw0KCQl9DQoJCXJldHVybiAkdGhpcy0+ZGItPmVycm5vKCkgPyAtMSA6IDE7DQoJfQ0KDQoJZnVuY3Rpb24gb25tZXJnZSgpIHsNCgkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCgkJJG9sZHVzZXJuYW1lID0gJHRoaXMtPmlucHV0KCdvbGR1c2VybmFtZScpOw0KCQkkbmV3dXNlcm5hbWUgPSAkdGhpcy0+aW5wdXQoJ25ld3VzZXJuYW1lJyk7DQoJCSR1aWQgPSAkdGhpcy0+aW5wdXQoJ3VpZCcpOw0KCQkkcGFzc3dvcmQgPSAkdGhpcy0+aW5wdXQoJ3Bhc3N3b3JkJyk7DQoJCSRlbWFpbCA9ICR0aGlzLT5pbnB1dCgnZW1haWwnKTsNCgkJaWYoKCRzdGF0dXMgPSAkdGhpcy0+X2NoZWNrX3VzZXJuYW1lKCRuZXd1c2VybmFtZSkpIDwgMCkgew0KCQkJcmV0dXJuICRzdGF0dXM7DQoJCX0NCgkJJHVpZCA9ICRfRU5WWyd1c2VyJ10tPmFkZF91c2VyKCRuZXd1c2VybmFtZSwgJHBhc3N3b3JkLCAkZW1haWwsICR1aWQpOw0KCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJwbXMgU0VUIG1zZ2Zyb209JyRuZXd1c2VybmFtZScgV0hFUkUgbXNnZnJvbWlkPSckdWlkJyBBTkQgbXNnZnJvbT0nJG9sZHVzZXJuYW1lJyIpOw0KCQkkdGhpcy0+ZGItPnF1ZXJ5KCJERUxFVEUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lcmdlbWVtYmVycyBXSEVSRSBhcHBpZD0nIi4kdGhpcy0+YXBwWydhcHBpZCddLiInIEFORCB1c2VybmFtZT0nJG9sZHVzZXJuYW1lJyIpOw0KCQlyZXR1cm4gJHVpZDsNCgl9DQoNCglmdW5jdGlvbiBvbm1lcmdlX3JlbW92ZSgpIHsNCgkJJHRoaXMtPmluaXRfaW5wdXQoKTsNCgkJJHVzZXJuYW1lID0gJHRoaXMtPmlucHV0KCd1c2VybmFtZScpOw0KCQkkdGhpcy0+ZGItPnF1ZXJ5KCJERUxFVEUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lcmdlbWVtYmVycyBXSEVSRSBhcHBpZD0nIi4kdGhpcy0+YXBwWydhcHBpZCddLiInIEFORCB1c2VybmFtZT0nJHVzZXJuYW1lJyIpOw0KCQlyZXR1cm4gTlVMTDsNCgl9DQoNCglmdW5jdGlvbiBfY2hlY2tfdXNlcm5hbWUoJHVzZXJuYW1lKSB7DQoJCSR1c2VybmFtZSA9IGFkZHNsYXNoZXModHJpbShzdHJpcHNsYXNoZXMoJHVzZXJuYW1lKSkpOw0KCQlpZighJF9FTlZbJ3VzZXInXS0+Y2hlY2tfdXNlcm5hbWUoJHVzZXJuYW1lKSkgew0KCQkJcmV0dXJuIFVDX1VTRVJfQ0hFQ0tfVVNFUk5BTUVfRkFJTEVEOw0KCQl9IGVsc2VpZighJF9FTlZbJ3VzZXInXS0+Y2hlY2tfdXNlcm5hbWVjZW5zb3IoJHVzZXJuYW1lKSkgew0KCQkJcmV0dXJuIFVDX1VTRVJfVVNFUk5BTUVfQkFEV09SRDsNCgkJfSBlbHNlaWYoJF9FTlZbJ3VzZXInXS0+Y2hlY2tfdXNlcm5hbWVleGlzdHMoJHVzZXJuYW1lKSkgew0KCQkJcmV0dXJuIFVDX1VTRVJfVVNFUk5BTUVfRVhJU1RTOw0KCQl9DQoJCXJldHVybiAxOw0KCX0NCg0KCWZ1bmN0aW9uIF9jaGVja19lbWFpbCgkZW1haWwsICR1c2VybmFtZSA9ICcnKSB7DQoJCWlmKGVtcHR5KCR0aGlzLT5zZXR0aW5ncykpIHsNCgkJCSR0aGlzLT5zZXR0aW5ncyA9ICR0aGlzLT5jYWNoZSgnc2V0dGluZ3MnKTsNCgkJfQ0KCQlpZighJF9FTlZbJ3VzZXInXS0+Y2hlY2tfZW1haWxmb3JtYXQoJGVtYWlsKSkgew0KCQkJcmV0dXJuIFVDX1VTRVJfRU1BSUxfRk9STUFUX0lMTEVHQUw7DQoJCX0gZWxzZWlmKCEkX0VOVlsndXNlciddLT5jaGVja19lbWFpbGFjY2VzcygkZW1haWwpKSB7DQoJCQlyZXR1cm4gVUNfVVNFUl9FTUFJTF9BQ0NFU1NfSUxMRUdBTDsNCgkJfSBlbHNlaWYoISR0aGlzLT5zZXR0aW5nc1snZG91YmxlZSddICYmICRfRU5WWyd1c2VyJ10tPmNoZWNrX2VtYWlsZXhpc3RzKCRlbWFpbCwgJHVzZXJuYW1lKSkgew0KCQkJcmV0dXJuIFVDX1VTRVJfRU1BSUxfRVhJU1RTOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIDE7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBvbnVwbG9hZGF2YXRhcigpIHsNCgl9DQoNCglmdW5jdGlvbiBvbnJlY3RhdmF0YXIoKSB7DQoJfQ0KCWZ1bmN0aW9uIGZsYXNoZGF0YV9kZWNvZGUoJHMpIHsNCgl9DQp9DQoNCj8+
</file>
<file type='dir' name='../uc_client/data'>
</file>
<file type='dir' name='../uc_client/data/cache'>
</file>
<file type='file' name='../uc_client/data/cache/index.htm'>
IA==
</file>
<file type='file' name='../uc_client/data/index.htm'>
IA==
</file>
<file type='file' name='../uc_client/index.htm'>
IA==
</file>
<file type='dir' name='../uc_client/lib'>
</file>
<file type='file' name='../uc_client/lib/db.class.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogZGIuY2xhc3MucGhwLHYgMS4xIDIwMDkvMDgvMTEgMDM6MjM6MjAgYmx0IEV4cCAkDQoqLw0KDQoNCmNsYXNzIGRiIHsNCgl2YXIgJHF1ZXJ5bnVtID0gMDsNCgl2YXIgJGxpbms7DQoJdmFyICRoaXN0b3JpZXM7DQoNCgl2YXIgJGRiaG9zdDsNCgl2YXIgJGRidXNlcjsNCgl2YXIgJGRicHc7DQoJdmFyICRkYmNoYXJzZXQ7DQoJdmFyICRwY29ubmVjdDsNCgl2YXIgJHRhYmxlcHJlOw0KCXZhciAkdGltZTsNCg0KCXZhciAkZ29uZWF3YXkgPSA1Ow0KDQoJZnVuY3Rpb24gY29ubmVjdCgkZGJob3N0LCAkZGJ1c2VyLCAkZGJwdywgJGRibmFtZSA9ICcnLCAkZGJjaGFyc2V0ID0gJycsICRwY29ubmVjdCA9IDAsICR0YWJsZXByZT0nJywgJHRpbWUgPSAwKSB7DQoJCSR0aGlzLT5kYmhvc3QgPSAkZGJob3N0Ow0KCQkkdGhpcy0+ZGJ1c2VyID0gJGRidXNlcjsNCgkJJHRoaXMtPmRicHcgPSAkZGJwdzsNCgkJJHRoaXMtPmRibmFtZSA9ICRkYm5hbWU7DQoJCSR0aGlzLT5kYmNoYXJzZXQgPSAkZGJjaGFyc2V0Ow0KCQkkdGhpcy0+cGNvbm5lY3QgPSAkcGNvbm5lY3Q7DQoJCSR0aGlzLT50YWJsZXByZSA9ICR0YWJsZXByZTsNCgkJJHRoaXMtPnRpbWUgPSAkdGltZTsNCg0KCQlpZigkcGNvbm5lY3QpIHsNCgkJCWlmKCEkdGhpcy0+bGluayA9IG15c3FsX3Bjb25uZWN0KCRkYmhvc3QsICRkYnVzZXIsICRkYnB3KSkgew0KCQkJCSR0aGlzLT5oYWx0KCdDYW4gbm90IGNvbm5lY3QgdG8gTXlTUUwgc2VydmVyJyk7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQlpZighJHRoaXMtPmxpbmsgPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsICRkYnVzZXIsICRkYnB3KSkgew0KCQkJCSR0aGlzLT5oYWx0KCdDYW4gbm90IGNvbm5lY3QgdG8gTXlTUUwgc2VydmVyJyk7DQoJCQl9DQoJCX0NCg0KCQlpZigkdGhpcy0+dmVyc2lvbigpID4gJzQuMScpIHsNCgkJCWlmKCRkYmNoYXJzZXQpIHsNCgkJCQlteXNxbF9xdWVyeSgiU0VUIGNoYXJhY3Rlcl9zZXRfY29ubmVjdGlvbj0iLiRkYmNoYXJzZXQuIiwgY2hhcmFjdGVyX3NldF9yZXN1bHRzPSIuJGRiY2hhcnNldC4iLCBjaGFyYWN0ZXJfc2V0X2NsaWVudD1iaW5hcnkiLCAkdGhpcy0+bGluayk7DQoJCQl9DQoNCgkJCWlmKCR0aGlzLT52ZXJzaW9uKCkgPiAnNS4wLjEnKSB7DQoJCQkJbXlzcWxfcXVlcnkoIlNFVCBzcWxfbW9kZT0nJyIsICR0aGlzLT5saW5rKTsNCgkJCX0NCgkJfQ0KDQoJCWlmKCRkYm5hbWUpIHsNCgkJCW15c3FsX3NlbGVjdF9kYigkZGJuYW1lLCAkdGhpcy0+bGluayk7DQoJCX0NCg0KCX0NCg0KCWZ1bmN0aW9uIGZldGNoX2FycmF5KCRxdWVyeSwgJHJlc3VsdF90eXBlID0gTVlTUUxfQVNTT0MpIHsNCgkJcmV0dXJuIG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSwgJHJlc3VsdF90eXBlKTsNCgl9DQoNCglmdW5jdGlvbiByZXN1bHRfZmlyc3QoJHNxbCkgew0KCQkkcXVlcnkgPSAkdGhpcy0+cXVlcnkoJHNxbCk7DQoJCXJldHVybiAkdGhpcy0+cmVzdWx0KCRxdWVyeSwgMCk7DQoJfQ0KDQoJZnVuY3Rpb24gZmV0Y2hfZmlyc3QoJHNxbCkgew0KCQkkcXVlcnkgPSAkdGhpcy0+cXVlcnkoJHNxbCk7DQoJCXJldHVybiAkdGhpcy0+ZmV0Y2hfYXJyYXkoJHF1ZXJ5KTsNCgl9DQoNCglmdW5jdGlvbiBmZXRjaF9hbGwoJHNxbCwgJGlkID0gJycpIHsNCgkJJGFyciA9IGFycmF5KCk7DQoJCSRxdWVyeSA9ICR0aGlzLT5xdWVyeSgkc3FsKTsNCgkJd2hpbGUoJGRhdGEgPSAkdGhpcy0+ZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KCQkJJGlkID8gJGFyclskZGF0YVskaWRdXSA9ICRkYXRhIDogJGFycltdID0gJGRhdGE7DQoJCX0NCgkJcmV0dXJuICRhcnI7DQoJfQ0KDQoJZnVuY3Rpb24gY2FjaGVfZ2MoKSB7DQoJCSR0aGlzLT5xdWVyeSgiREVMRVRFIEZST00geyR0aGlzLT50YWJsZXByZX1zcWxjYWNoZXMgV0hFUkUgZXhwaXJ5PCR0aGlzLT50aW1lIik7DQoJfQ0KDQoJZnVuY3Rpb24gcXVlcnkoJHNxbCwgJHR5cGUgPSAnJywgJGNhY2hldGltZSA9IEZBTFNFKSB7DQoJCSRmdW5jID0gJHR5cGUgPT0gJ1VOQlVGRkVSRUQnICYmIEBmdW5jdGlvbl9leGlzdHMoJ215c3FsX3VuYnVmZmVyZWRfcXVlcnknKSA/ICdteXNxbF91bmJ1ZmZlcmVkX3F1ZXJ5JyA6ICdteXNxbF9xdWVyeSc7DQoJCWlmKCEoJHF1ZXJ5ID0gJGZ1bmMoJHNxbCwgJHRoaXMtPmxpbmspKSAmJiAkdHlwZSAhPSAnU0lMRU5UJykgew0KCQkJJHRoaXMtPmhhbHQoJ015U1FMIFF1ZXJ5IEVycm9yJywgJHNxbCk7DQoJCX0NCgkJJHRoaXMtPnF1ZXJ5bnVtKys7DQoJCSR0aGlzLT5oaXN0b3JpZXNbXSA9ICRzcWw7DQoJCXJldHVybiAkcXVlcnk7DQoJfQ0KDQoJZnVuY3Rpb24gYWZmZWN0ZWRfcm93cygpIHsNCgkJcmV0dXJuIG15c3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPmxpbmspOw0KCX0NCg0KCWZ1bmN0aW9uIGVycm9yKCkgew0KCQlyZXR1cm4gKCgkdGhpcy0+bGluaykgPyBteXNxbF9lcnJvcigkdGhpcy0+bGluaykgOiBteXNxbF9lcnJvcigpKTsNCgl9DQoNCglmdW5jdGlvbiBlcnJubygpIHsNCgkJcmV0dXJuIGludHZhbCgoJHRoaXMtPmxpbmspID8gbXlzcWxfZXJybm8oJHRoaXMtPmxpbmspIDogbXlzcWxfZXJybm8oKSk7DQoJfQ0KDQoJZnVuY3Rpb24gcmVzdWx0KCRxdWVyeSwgJHJvdykgew0KCQkkcXVlcnkgPSBAbXlzcWxfcmVzdWx0KCRxdWVyeSwgJHJvdyk7DQoJCXJldHVybiAkcXVlcnk7DQoJfQ0KDQoJZnVuY3Rpb24gbnVtX3Jvd3MoJHF1ZXJ5KSB7DQoJCSRxdWVyeSA9IG15c3FsX251bV9yb3dzKCRxdWVyeSk7DQoJCXJldHVybiAkcXVlcnk7DQoJfQ0KDQoJZnVuY3Rpb24gbnVtX2ZpZWxkcygkcXVlcnkpIHsNCgkJcmV0dXJuIG15c3FsX251bV9maWVsZHMoJHF1ZXJ5KTsNCgl9DQoNCglmdW5jdGlvbiBmcmVlX3Jlc3VsdCgkcXVlcnkpIHsNCgkJcmV0dXJuIG15c3FsX2ZyZWVfcmVzdWx0KCRxdWVyeSk7DQoJfQ0KDQoJZnVuY3Rpb24gaW5zZXJ0X2lkKCkgew0KCQlyZXR1cm4gKCRpZCA9IG15c3FsX2luc2VydF9pZCgkdGhpcy0+bGluaykpID49IDAgPyAkaWQgOiAkdGhpcy0+cmVzdWx0KCR0aGlzLT5xdWVyeSgiU0VMRUNUIGxhc3RfaW5zZXJ0X2lkKCkiKSwgMCk7DQoJfQ0KDQoJZnVuY3Rpb24gZmV0Y2hfcm93KCRxdWVyeSkgew0KCQkkcXVlcnkgPSBteXNxbF9mZXRjaF9yb3coJHF1ZXJ5KTsNCgkJcmV0dXJuICRxdWVyeTsNCgl9DQoNCglmdW5jdGlvbiBmZXRjaF9maWVsZHMoJHF1ZXJ5KSB7DQoJCXJldHVybiBteXNxbF9mZXRjaF9maWVsZCgkcXVlcnkpOw0KCX0NCg0KCWZ1bmN0aW9uIHZlcnNpb24oKSB7DQoJCXJldHVybiBteXNxbF9nZXRfc2VydmVyX2luZm8oJHRoaXMtPmxpbmspOw0KCX0NCg0KCWZ1bmN0aW9uIGNsb3NlKCkgew0KCQlyZXR1cm4gbXlzcWxfY2xvc2UoJHRoaXMtPmxpbmspOw0KCX0NCg0KCWZ1bmN0aW9uIGhhbHQoJG1lc3NhZ2UgPSAnJywgJHNxbCA9ICcnKSB7DQoJCSRlcnJvciA9IG15c3FsX2Vycm9yKCk7DQoJCSRlcnJvcm5vID0gbXlzcWxfZXJybm8oKTsNCgkJaWYoJGVycm9ybm8gPT0gMjAwNiAmJiAkdGhpcy0+Z29uZWF3YXktLSA+IDApIHsNCgkJCSR0aGlzLT5jb25uZWN0KCR0aGlzLT5kYmhvc3QsICR0aGlzLT5kYnVzZXIsICR0aGlzLT5kYnB3LCAkdGhpcy0+ZGJuYW1lLCAkdGhpcy0+ZGJjaGFyc2V0LCAkdGhpcy0+cGNvbm5lY3QsICR0aGlzLT50YWJsZXByZSwgJHRoaXMtPnRpbWUpOw0KCQkJJHRoaXMtPnF1ZXJ5KCRzcWwpOw0KCQl9IGVsc2Ugew0KCQkJJHMgPSAnPGI+RXJyb3I6PC9iPicuJGVycm9yLic8YnIgLz4nOw0KCQkJJHMgLj0gJzxiPkVycm5vOjwvYj4nLiRlcnJvcm5vLic8YnIgLz4nOw0KCQkJJHMgLj0gJzxiPlNRTDo8L2I+OicuJHNxbDsNCgkJCWV4aXQoJHMpOw0KCQl9DQoJfQ0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/lib/index.htm'>
IA==
</file>
<file type='file' name='../uc_client/lib/sendmail.inc.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogc2VuZG1haWwuaW5jLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIwIGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQppZigkbWFpbF9zZXR0aW5nWydtYWlsc2lsZW50J10pIHsNCgllcnJvcl9yZXBvcnRpbmcoMCk7DQp9DQoNCiRtYWlsZGVsaW1pdGVyID0gJG1haWxfc2V0dGluZ1snbWFpbGRlbGltaXRlciddID09IDEgPyAiXHJcbiIgOiAoJG1haWxfc2V0dGluZ1snbWFpbGRlbGltaXRlciddID09IDIgPyAiXHIiIDogIlxuIik7DQokbWFpbHVzZXJuYW1lID0gaXNzZXQoJG1haWxfc2V0dGluZ1snbWFpbHVzZXJuYW1lJ10pID8gJG1haWxfc2V0dGluZ1snbWFpbHVzZXJuYW1lJ10gOiAxOw0KJGFwcG5hbWUgPSAkdGhpcy0+YmFzZS0+Y2FjaGVbJ2FwcHMnXVskbWFpbFsnYXBwaWQnXV1bJ25hbWUnXTsNCiRtYWlsWydzdWJqZWN0J10gPSAnPT8nLiRtYWlsWydjaGFyc2V0J10uJz9CPycuYmFzZTY0X2VuY29kZShzdHJfcmVwbGFjZSgiXHIiLCAnJywgc3RyX3JlcGxhY2UoIlxuIiwgJycsICdbJy4kYXBwbmFtZS4nXSAnLiRtYWlsWydzdWJqZWN0J10pKSkuJz89JzsNCiRtYWlsWydtZXNzYWdlJ10gPSBjaHVua19zcGxpdChiYXNlNjRfZW5jb2RlKHN0cl9yZXBsYWNlKCJcclxuLiIsICIgXHJcbi4uIiwgc3RyX3JlcGxhY2UoIlxuIiwgIlxyXG4iLCBzdHJfcmVwbGFjZSgiXHIiLCAiXG4iLCBzdHJfcmVwbGFjZSgiXHJcbiIsICJcbiIsIHN0cl9yZXBsYWNlKCJcblxyIiwgIlxyIiwgJG1haWxbJ21lc3NhZ2UnXSkpKSkpKSk7DQoNCiRlbWFpbF9mcm9tID0gJG1haWxbJ2Zyb21tYWlsJ10gPT0gJycgPyAnPT8nLiRtYWlsWydjaGFyc2V0J10uJz9CPycuYmFzZTY0X2VuY29kZSgkYXBwbmFtZSkuIj89IDwkbWFpbF9zZXR0aW5nW21haWxkZWZhdWx0XT4iIDogKHByZWdfbWF0Y2goJy9eKC4rPykgXDwoLis/KVw+JC8nLCRlbWFpbF9mcm9tLCAkZnJvbSkgPyAnPT8nLiRtYWlsWydjaGFyc2V0J10uJz9CPycuYmFzZTY0X2VuY29kZSgkZnJvbVsxXSkuIj89IDwkZnJvbVsyXT4iIDogJG1haWxbJ2Zyb21tYWlsJ10pOw0KDQpmb3JlYWNoKGV4cGxvZGUoJywnLCAkbWFpbFsnZW1haWxfdG8nXSkgYXMgJHRvdXNlcikgew0KCSR0b3VzZXJzW10gPSBwcmVnX21hdGNoKCcvXiguKz8pIFw8KC4rPylcPiQvJywkdG91c2VyLCAkdG8pID8gKCRtYWlsdXNlcm5hbWUgPyAnPT8nLiRtYWlsWydjaGFyc2V0J10uJz9CPycuYmFzZTY0X2VuY29kZSgkdG9bMV0pLiI/PSA8JHRvWzJdPiIgOiAkdG9bMl0pIDogJHRvdXNlcjsNCn0NCg0KJG1haWxbJ2VtYWlsX3RvJ10gPSBpbXBsb2RlKCcsJywgJHRvdXNlcnMpOw0KDQokaGVhZGVycyA9ICJGcm9tOiAkZW1haWxfZnJvbXskbWFpbGRlbGltaXRlcn1YLVByaW9yaXR5OiAzeyRtYWlsZGVsaW1pdGVyfVgtTWFpbGVyOiBEaXNjdXohICR2ZXJzaW9ueyRtYWlsZGVsaW1pdGVyfU1JTUUtVmVyc2lvbjogMS4weyRtYWlsZGVsaW1pdGVyfUNvbnRlbnQtdHlwZTogdGV4dC8iLigkbWFpbFsnaHRtbG9uJ10gPyAnaHRtbCcgOiAncGxhaW4nKS4iOyBjaGFyc2V0PSRtYWlsW2NoYXJzZXRdeyRtYWlsZGVsaW1pdGVyfUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NHskbWFpbGRlbGltaXRlcn0iOw0KDQokbWFpbF9zZXR0aW5nWydtYWlscG9ydCddID0gJG1haWxfc2V0dGluZ1snbWFpbHBvcnQnXSA/ICRtYWlsX3NldHRpbmdbJ21haWxwb3J0J10gOiAyNTsNCg0KaWYoJG1haWxfc2V0dGluZ1snbWFpbHNlbmQnXSA9PSAxICYmIGZ1bmN0aW9uX2V4aXN0cygnbWFpbCcpKSB7DQoNCgkgcmV0dXJuIEBtYWlsKCRtYWlsWydlbWFpbF90byddLCAkbWFpbFsnc3ViamVjdCddLCAkbWFpbFsnbWVzc2FnZSddLCAkaGVhZGVycyk7DQoNCn0gZWxzZWlmKCRtYWlsX3NldHRpbmdbJ21haWxzZW5kJ10gPT0gMikgew0KDQoJaWYoISRmcCA9IGZzb2Nrb3BlbigkbWFpbF9zZXR0aW5nWydtYWlsc2VydmVyJ10sICRtYWlsX3NldHRpbmdbJ21haWxwb3J0J10sICRlcnJubywgJGVycnN0ciwgMzApKSB7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCiAJc3RyZWFtX3NldF9ibG9ja2luZygkZnAsIHRydWUpOw0KDQoJJGxhc3RtZXNzYWdlID0gZmdldHMoJGZwLCA1MTIpOw0KCWlmKHN1YnN0cigkbGFzdG1lc3NhZ2UsIDAsIDMpICE9ICcyMjAnKSB7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCglmcHV0cygkZnAsICgkbWFpbF9zZXR0aW5nWydtYWlsYXV0aCddID8gJ0VITE8nIDogJ0hFTE8nKS4iIGRpc2N1elxyXG4iKTsNCgkkbGFzdG1lc3NhZ2UgPSBmZ2V0cygkZnAsIDUxMik7DQoJaWYoc3Vic3RyKCRsYXN0bWVzc2FnZSwgMCwgMykgIT0gMjIwICYmIHN1YnN0cigkbGFzdG1lc3NhZ2UsIDAsIDMpICE9IDI1MCkgew0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJd2hpbGUoMSkgew0KCQlpZihzdWJzdHIoJGxhc3RtZXNzYWdlLCAzLCAxKSAhPSAnLScgfHwgZW1wdHkoJGxhc3RtZXNzYWdlKSkgew0KIAkJCWJyZWFrOw0KIAkJfQ0KIAkJJGxhc3RtZXNzYWdlID0gZmdldHMoJGZwLCA1MTIpOw0KCX0NCg0KCWlmKCRtYWlsX3NldHRpbmdbJ21haWxhdXRoJ10pIHsNCgkJZnB1dHMoJGZwLCAiQVVUSCBMT0dJTlxyXG4iKTsNCgkJJGxhc3RtZXNzYWdlID0gZmdldHMoJGZwLCA1MTIpOw0KCQlpZihzdWJzdHIoJGxhc3RtZXNzYWdlLCAwLCAzKSAhPSAzMzQpIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWZwdXRzKCRmcCwgYmFzZTY0X2VuY29kZSgkbWFpbF9zZXR0aW5nWydtYWlsYXV0aF91c2VybmFtZSddKS4iXHJcbiIpOw0KCQkkbGFzdG1lc3NhZ2UgPSBmZ2V0cygkZnAsIDUxMik7DQoJCWlmKHN1YnN0cigkbGFzdG1lc3NhZ2UsIDAsIDMpICE9IDMzNCkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZnB1dHMoJGZwLCBiYXNlNjRfZW5jb2RlKCRtYWlsX3NldHRpbmdbJ21haWxhdXRoX3Bhc3N3b3JkJ10pLiJcclxuIik7DQoJCSRsYXN0bWVzc2FnZSA9IGZnZXRzKCRmcCwgNTEyKTsNCgkJaWYoc3Vic3RyKCRsYXN0bWVzc2FnZSwgMCwgMykgIT0gMjM1KSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkkZW1haWxfZnJvbSA9ICRtYWlsX3NldHRpbmdbJ21haWxmcm9tJ107DQoJfQ0KDQoJZnB1dHMoJGZwLCAiTUFJTCBGUk9NOiA8Ii5wcmVnX3JlcGxhY2UoIi8uKlw8KC4rPylcPi4qLyIsICJcXDEiLCAkZW1haWxfZnJvbSkuIj5cclxuIik7DQoJJGxhc3RtZXNzYWdlID0gZmdldHMoJGZwLCA1MTIpOw0KCWlmKHN1YnN0cigkbGFzdG1lc3NhZ2UsIDAsIDMpICE9IDI1MCkgew0KCQlmcHV0cygkZnAsICJNQUlMIEZST006IDwiLnByZWdfcmVwbGFjZSgiLy4qXDwoLis/KVw+LiovIiwgIlxcMSIsICRlbWFpbF9mcm9tKS4iPlxyXG4iKTsNCgkJJGxhc3RtZXNzYWdlID0gZmdldHMoJGZwLCA1MTIpOw0KCQlpZihzdWJzdHIoJGxhc3RtZXNzYWdlLCAwLCAzKSAhPSAyNTApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCX0NCg0KCSRlbWFpbF90b3MgPSBhcnJheSgpOw0KCWZvcmVhY2goZXhwbG9kZSgnLCcsICRtYWlsWydlbWFpbF90byddKSBhcyAkdG91c2VyKSB7DQoJCSR0b3VzZXIgPSB0cmltKCR0b3VzZXIpOw0KCQlpZigkdG91c2VyKSB7DQoJCQlmcHV0cygkZnAsICJSQ1BUIFRPOiA8Ii5wcmVnX3JlcGxhY2UoIi8uKlw8KC4rPylcPi4qLyIsICJcXDEiLCAkdG91c2VyKS4iPlxyXG4iKTsNCgkJCSRsYXN0bWVzc2FnZSA9IGZnZXRzKCRmcCwgNTEyKTsNCgkJCWlmKHN1YnN0cigkbGFzdG1lc3NhZ2UsIDAsIDMpICE9IDI1MCkgew0KCQkJCWZwdXRzKCRmcCwgIlJDUFQgVE86IDwiLnByZWdfcmVwbGFjZSgiLy4qXDwoLis/KVw+LiovIiwgIlxcMSIsICR0b3VzZXIpLiI+XHJcbiIpOw0KCQkJCSRsYXN0bWVzc2FnZSA9IGZnZXRzKCRmcCwgNTEyKTsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0NCgl9DQoNCglmcHV0cygkZnAsICJEQVRBXHJcbiIpOw0KCSRsYXN0bWVzc2FnZSA9IGZnZXRzKCRmcCwgNTEyKTsNCglpZihzdWJzdHIoJGxhc3RtZXNzYWdlLCAwLCAzKSAhPSAzNTQpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCSRoZWFkZXJzIC49ICdNZXNzYWdlLUlEOiA8Jy5nbWRhdGUoJ1ltZEhzJykuJy4nLnN1YnN0cihtZDUoJG1haWxbJ21lc3NhZ2UnXS5taWNyb3RpbWUoKSksIDAsIDYpLnJhbmQoMTAwMDAwLCA5OTk5OTkpLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIj57JG1haWxkZWxpbWl0ZXJ9IjsNCg0KCWZwdXRzKCRmcCwgIkRhdGU6ICIuZ21kYXRlKCdyJykuIlxyXG4iKTsNCglmcHV0cygkZnAsICJUbzogIi4kbWFpbFsnZW1haWxfdG8nXS4iXHJcbiIpOw0KCWZwdXRzKCRmcCwgIlN1YmplY3Q6ICIuJG1haWxbJ3N1YmplY3QnXS4iXHJcbiIpOw0KCWZwdXRzKCRmcCwgJGhlYWRlcnMuIlxyXG4iKTsNCglmcHV0cygkZnAsICJcclxuXHJcbiIpOw0KCWZwdXRzKCRmcCwgIiRtYWlsW21lc3NhZ2VdXHJcbi5cclxuIik7DQoJJGxhc3RtZXNzYWdlID0gZmdldHMoJGZwLCA1MTIpOw0KCWlmKHN1YnN0cigkbGFzdG1lc3NhZ2UsIDAsIDMpICE9IDI1MCkgew0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJZnB1dHMoJGZwLCAiUVVJVFxyXG4iKTsNCglyZXR1cm4gdHJ1ZTsNCg0KfSBlbHNlaWYoJG1haWxfc2V0dGluZ1snbWFpbHNlbmQnXSA9PSAzKSB7DQoNCglpbmlfc2V0KCdTTVRQJywgJG1haWxfc2V0dGluZ1snbWFpbHNlcnZlciddKTsNCglpbmlfc2V0KCdzbXRwX3BvcnQnLCAkbWFpbF9zZXR0aW5nWydtYWlscG9ydCddKTsNCglpbmlfc2V0KCdzZW5kbWFpbF9mcm9tJywgJGVtYWlsX2Zyb20pOw0KDQoJcmV0dXJuIEBtYWlsKCRtYWlsWydlbWFpbF90byddLCAkbWFpbFsnc3ViamVjdCddLCAkbWFpbFsnbWVzc2FnZSddLCAkaGVhZGVycyk7DQoNCn0NCg0KPz4=
</file>
<file type='file' name='../uc_client/lib/uccode.class.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogdWNjb2RlLmNsYXNzLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIwIGJsdCBFeHAgJA0KKi8NCg0KY2xhc3MgdWNjb2RlIHsNCgl2YXIgJHVjY29kZXM7DQoNCglmdW5jdGlvbiB1Y2NvZGUoKSB7DQoJCSR0aGlzLT51Y2NvZGUgPSBhcnJheSgNCgkJCSdwY29kZWNvdW50JyA9PiAtMSwNCgkJCSdjb2RlY291bnQnID0+IDAsDQoJCQknY29kZWh0bWwnID0+ICcnDQoJCSk7DQoJfQ0KDQoJZnVuY3Rpb24gY29kZWRpc3AoJGNvZGUpIHsNCgkJJHRoaXMtPnVjY29kZVsncGNvZGVjb3VudCddKys7DQoJCSRjb2RlID0gc3RyX3JlcGxhY2UoJ1xcIicsICciJywgcHJlZ19yZXBsYWNlKCIvXltcblxyXSooLis/KVtcblxyXSokL2lzIiwgIlxcMSIsICRjb2RlKSk7DQoJCSR0aGlzLT51Y2NvZGVbJ2NvZGVodG1sJ11bJHRoaXMtPnVjY29kZVsncGNvZGVjb3VudCddXSA9ICR0aGlzLT50cGxfY29kZWRpc3AoJGNvZGUpOw0KCQkkdGhpcy0+dWNjb2RlWydjb2RlY291bnQnXSsrOw0KCQlyZXR1cm4gIltcdFVDRU5URVJfQ09ERV8iLiR0aGlzLT51Y2NvZGVbcGNvZGVjb3VudF0uIlx0XSI7DQoJfQ0KDQoJZnVuY3Rpb24gY29tcGxpZSgkbWVzc2FnZSkgew0KCQkkbWVzc2FnZSA9IGh0bWxzcGVjaWFsY2hhcnMoJG1lc3NhZ2UpOw0KCQlpZihzdHJwb3MoJG1lc3NhZ2UsICdbL2NvZGVdJykgIT09IEZBTFNFKSB7DQoJCQkkbWVzc2FnZSA9IHByZWdfcmVwbGFjZSgiL1xzKlxbY29kZVxdKC4rPylcW1wvY29kZVxdXHMqL2llcyIsICJcJHRoaXMtPmNvZGVkaXNwKCdcXDEnKSIsICRtZXNzYWdlKTsNCgkJfQ0KCQlpZihzdHJwb3MoJG1lc3NhZ2UsICdbL3VybF0nKSAhPT0gRkFMU0UpIHsNCgkJCSRtZXNzYWdlID0gcHJlZ19yZXBsYWNlKCIvXFt1cmwoPSgoaHR0cHM/fGZ0cHxnb3BoZXJ8bmV3c3x0ZWxuZXR8cnRzcHxtbXN8Y2FsbHRvfGJjdHB8ZWQya3x0aHVuZGVyfHN5bmFjYXN0KXsxfTpcL1wvfHd3d1wuKShbXlxbXCInXSs/KSk/XF0oLis/KVxbXC91cmxcXS9pZXMiLCAiXCR0aGlzLT5wYXJzZXVybCgnXFwxJywgJ1xcNScpIiwgJG1lc3NhZ2UpOw0KCQl9DQoJCWlmKHN0cnBvcygkbWVzc2FnZSwgJ1svZW1haWxdJykgIT09IEZBTFNFKSB7DQoJCQkkbWVzc2FnZSA9IHByZWdfcmVwbGFjZSgiL1xbZW1haWwoPShbYS16MC05XC1fLitdKylAKFthLXowLTlcLV9dK1suXVthLXowLTlcLV8uXSspKT9cXSguKz8pXFtcL2VtYWlsXF0vaWVzIiwgIlwkdGhpcy0+cGFyc2VlbWFpbCgnXFwxJywgJ1xcNCcpIiwgJG1lc3NhZ2UpOw0KCQl9DQoJCSRtZXNzYWdlID0gc3RyX3JlcGxhY2UoYXJyYXkoDQoJCQknWy9jb2xvcl0nLCAnWy9zaXplXScsICdbL2ZvbnRdJywgJ1svYWxpZ25dJywgJ1tiXScsICdbL2JdJywNCgkJCSdbaV0nLCAnWy9pXScsICdbdV0nLCAnWy91XScsICdbbGlzdF0nLCAnW2xpc3Q9MV0nLCAnW2xpc3Q9YV0nLA0KCQkJJ1tsaXN0PUFdJywgJ1sqXScsICdbL2xpc3RdJywgJ1tpbmRlbnRdJywgJ1svaW5kZW50XScsICdbL2Zsb2F0XScNCgkJKSwgYXJyYXkoDQoJCQknPC9mb250PicsICc8L2ZvbnQ+JywgJzwvZm9udD4nLCAnPC9wPicsICc8c3Ryb25nPicsICc8L3N0cm9uZz4nLCAnPGk+JywNCgkJCSc8L2k+JywgJzx1PicsICc8L3U+JywgJzx1bD4nLCAnPHVsIHR5cGU9IjEiPicsICc8dWwgdHlwZT0iYSI+JywNCgkJCSc8dWwgdHlwZT0iQSI+JywgJzxsaT4nLCAnPC91bD4nLCAnPGJsb2NrcXVvdGU+JywgJzwvYmxvY2txdW90ZT4nLCAnPC9zcGFuPicNCgkJKSwgcHJlZ19yZXBsYWNlKGFycmF5KA0KCQkJIi9cW2NvbG9yPShbI1x3XSs/KVxdL2kiLA0KCQkJIi9cW3NpemU9KFxkKz8pXF0vaSIsDQoJCQkiL1xbc2l6ZT0oXGQrKFwuXGQrKT8ocHh8cHR8aW58Y218bW18cGN8ZW18ZXh8JSkrPylcXS9pIiwNCgkJCSIvXFtmb250PShbXlxbXDxdKz8pXF0vaSIsDQoJCQkiL1xbYWxpZ249KGxlZnR8Y2VudGVyfHJpZ2h0KVxdL2kiLA0KCQkJIi9cW2Zsb2F0PShsZWZ0fHJpZ2h0KVxdL2kiDQoJCSksIGFycmF5KA0KCQkJIjxmb250IGNvbG9yPVwiXFwxXCI+IiwNCgkJCSI8Zm9udCBzaXplPVwiXFwxXCI+IiwNCgkJCSI8Zm9udCBzdHlsZT1cImZvbnQtc2l6ZTogXFwxXCI+IiwNCgkJCSI8Zm9udCBmYWNlPVwiXFwxIFwiPiIsDQoJCQkiPHAgYWxpZ249XCJcXDFcIj4iLA0KCQkJIjxzcGFuIHN0eWxlPVwiZmxvYXQ6IFxcMTtcIj4iDQoJCSksICRtZXNzYWdlKSk7DQoJCWlmKHN0cnBvcygkbWVzc2FnZSwgJ1svcXVvdGVdJykgIT09IEZBTFNFKSB7DQoJCQkkbWVzc2FnZSA9IHByZWdfcmVwbGFjZSgiL1xzKlxbcXVvdGVcXVtcblxyXSooLis/KVtcblxyXSpcW1wvcXVvdGVcXVxzKi9pcyIsICR0aGlzLT50cGxfcXVvdGUoKSwgJG1lc3NhZ2UpOw0KCQl9DQoJCWlmKHN0cnBvcygkbWVzc2FnZSwgJ1svaW1nXScpICE9PSBGQUxTRSkgew0KCQkJJG1lc3NhZ2UgPSBwcmVnX3JlcGxhY2UoYXJyYXkoDQoJCQkJIi9cW2ltZ1xdXHMqKFteXFtcPFxyXG5dKz8pXHMqXFtcL2ltZ1xdL2llcyIsDQoJCQkJIi9cW2ltZz0oXGR7MSw0fSlbeHxcLF0oXGR7MSw0fSlcXVxzKihbXlxbXDxcclxuXSs/KVxzKlxbXC9pbWdcXS9pZXMiDQoJCQkpLCBhcnJheSgNCgkJCQkiXCR0aGlzLT5iYmNvZGV1cmwoJ1xcMScsICc8aW1nIHNyYz1cIiVzXCIgYm9yZGVyPVwiMFwiIGFsdD1cIlwiIC8+JykiLA0KCQkJCSJcJHRoaXMtPmJiY29kZXVybCgnXFwzJywgJzxpbWcgd2lkdGg9XCJcXDFcIiBoZWlnaHQ9XCJcXDJcIiBzcmM9XCIlc1wiIGJvcmRlcj1cIjBcIiBhbHQ9XCJcIiAvPicpIg0KCQkJKSwgJG1lc3NhZ2UpOw0KCQl9DQoJCWZvcigkaSA9IDA7ICRpIDw9ICR0aGlzLT51Y2NvZGVbJ3Bjb2RlY291bnQnXTsgJGkrKykgew0KCQkJJG1lc3NhZ2UgPSBzdHJfcmVwbGFjZSgiW1x0VUNFTlRFUl9DT0RFXyRpXHRdIiwgJHRoaXMtPnVjY29kZVsnY29kZWh0bWwnXVskaV0sICRtZXNzYWdlKTsNCgkJfQ0KCQlyZXR1cm4gbmwyYnIoc3RyX3JlcGxhY2UoYXJyYXkoIlx0IiwgJyAgICcsICcgICcpLCBhcnJheSgnJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICcsICcmbmJzcDsgJm5ic3A7JywgJyZuYnNwOyZuYnNwOycpLCAkbWVzc2FnZSkpOw0KCX0NCg0KCWZ1bmN0aW9uIHBhcnNldXJsKCR1cmwsICR0ZXh0KSB7DQoJCWlmKCEkdXJsICYmIHByZWdfbWF0Y2goIi8oKGh0dHBzP3xmdHB8Z29waGVyfG5ld3N8dGVsbmV0fHJ0c3B8bW1zfGNhbGx0b3xiY3RwfGVkMmt8dGh1bmRlcnxzeW5hY2FzdCl7MX06XC9cL3x3d3dcLilbXlxbXCInXSsvaSIsIHRyaW0oJHRleHQpLCAkbWF0Y2hlcykpIHsNCgkJCSR1cmwgPSAkbWF0Y2hlc1swXTsNCgkJCSRsZW5ndGggPSA2NTsNCgkJCWlmKHN0cmxlbigkdXJsKSA+ICRsZW5ndGgpIHsNCgkJCQkkdGV4dCA9IHN1YnN0cigkdXJsLCAwLCBpbnR2YWwoJGxlbmd0aCAqIDAuNSkpLicgLi4uICcuc3Vic3RyKCR1cmwsIC0gaW50dmFsKCRsZW5ndGggKiAwLjMpKTsNCgkJCX0NCgkJCXJldHVybiAnPGEgaHJlZj0iJy4oc3Vic3RyKHN0cnRvbG93ZXIoJHVybCksIDAsIDQpID09ICd3d3cuJyA/ICdodHRwOi8vJy4kdXJsIDogJHVybCkuJyIgdGFyZ2V0PSJfYmxhbmsiPicuJHRleHQuJzwvYT4nOw0KCQl9IGVsc2Ugew0KCQkJJHVybCA9IHN1YnN0cigkdXJsLCAxKTsNCgkJCWlmKHN1YnN0cihzdHJ0b2xvd2VyKCR1cmwpLCAwLCA0KSA9PSAnd3d3LicpIHsNCgkJCQkkdXJsID0gJ2h0dHA6Ly8nLiR1cmw7DQoJCQl9DQoJCQlyZXR1cm4gJzxhIGhyZWY9IicuJHVybC4nIiB0YXJnZXQ9Il9ibGFuayI+Jy4kdGV4dC4nPC9hPic7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBwYXJzZWVtYWlsKCRlbWFpbCwgJHRleHQpIHsNCgkJaWYoISRlbWFpbCAmJiBwcmVnX21hdGNoKCIvXHMqKFthLXowLTlcLV8uK10rKUAoW2EtejAtOVwtX10rWy5dW2EtejAtOVwtXy5dKylccyovaSIsICR0ZXh0LCAkbWF0Y2hlcykpIHsNCgkJCSRlbWFpbCA9IHRyaW0oJG1hdGNoZXNbMF0pOw0KCQkJcmV0dXJuICc8YSBocmVmPSJtYWlsdG86Jy4kZW1haWwuJyI+Jy4kZW1haWwuJzwvYT4nOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuICc8YSBocmVmPSJtYWlsdG86Jy5zdWJzdHIoJGVtYWlsLCAxKS4nIj4nLiR0ZXh0Lic8L2E+JzsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGJiY29kZXVybCgkdXJsLCAkdGFncykgew0KCQlpZighcHJlZ19tYXRjaCgiLzwuKz8+L3MiLCAkdXJsKSkgew0KCQkJaWYoIWluX2FycmF5KHN0cnRvbG93ZXIoc3Vic3RyKCR1cmwsIDAsIDYpKSwgYXJyYXkoJ2h0dHA6LycsICdodHRwczonLCAnZnRwOi8vJywgJ3J0c3A6LycsICdtbXM6Ly8nKSkpIHsNCgkJCQkkdXJsID0gJ2h0dHA6Ly8nLiR1cmw7DQoJCQl9DQoJCQlyZXR1cm4gc3RyX3JlcGxhY2UoYXJyYXkoJ3N1Ym1pdCcsICdsb2dnaW5nLnBocCcpLCBhcnJheSgnJywgJycpLCBzcHJpbnRmKCR0YWdzLCAkdXJsLCBhZGRzbGFzaGVzKCR1cmwpKSk7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gJyZuYnNwOycuJHVybDsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIHRwbF9jb2RlZGlzcCgkY29kZSkgew0KCQlyZXR1cm4gJzxkaXYgY2xhc3M9ImJsb2NrY29kZSI+PGNvZGUgaWQ9ImNvZGUnLiR0aGlzLT51Y2NvZGVzWydjb2RlY291bnQnXS4nIj4nLiRjb2RlLic8L2NvZGU+PC9kaXY+JzsNCgl9DQoNCglmdW5jdGlvbiB0cGxfcXVvdGUoKSB7DQoJCXJldHVybiAnPGRpdiBjbGFzcz0icXVvdGUiPjxibG9ja3F1b3RlPlxcMTwvYmxvY2txdW90ZT48L2Rpdj4nOw0KCX0NCn0NCg0KLyoNCg0KVXNhZ2U6DQokc3RyID0gPDw8RU9GDQoxDQoyDQozDQpFT0Y7DQpyZXF1aXJlX29uY2UgJ2xpYi91Y2NvZGUuY2xhc3MucGhwJzsNCiR0aGlzLT51Y2NvZGUgPSBuZXcgdWNjb2RlKCk7DQplY2hvICR0aGlzLT51Y2NvZGUtPmNvbXBsaWUoJHN0cik7DQoNCiovDQoNCj8+
</file>
<file type='file' name='../uc_client/lib/xml.class.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogeG1sLmNsYXNzLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIwIGJsdCBFeHAgJA0KKi8NCg0KZnVuY3Rpb24geG1sX3Vuc2VyaWFsaXplKCYkeG1sLCAkaXNub3JtYWwgPSBGQUxTRSkgew0KCSR4bWxfcGFyc2VyID0gbmV3IFhNTCgkaXNub3JtYWwpOw0KCSRkYXRhID0gJHhtbF9wYXJzZXItPnBhcnNlKCR4bWwpOw0KCSR4bWxfcGFyc2VyLT5kZXN0cnVjdCgpOw0KCXJldHVybiAkZGF0YTsNCn0NCg0KZnVuY3Rpb24geG1sX3NlcmlhbGl6ZSgkYXJyLCAkaHRtbG9uID0gRkFMU0UsICRpc25vcm1hbCA9IEZBTFNFLCAkbGV2ZWwgPSAxKSB7DQoJJHMgPSAkbGV2ZWwgPT0gMSA/ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJJU08tODg1OS0xXCI/PlxyXG48cm9vdD5cclxuIiA6ICcnOw0KCSRzcGFjZSA9IHN0cl9yZXBlYXQoIlx0IiwgJGxldmVsKTsNCglmb3JlYWNoKCRhcnIgYXMgJGsgPT4gJHYpIHsNCgkJaWYoIWlzX2FycmF5KCR2KSkgew0KCQkJJHMgLj0gJHNwYWNlLiI8aXRlbSBpZD1cIiRrXCI+Ii4oJGh0bWxvbiA/ICc8IVtDREFUQVsnIDogJycpLiR2LigkaHRtbG9uID8gJ11dPicgOiAnJykuIjwvaXRlbT5cclxuIjsNCgkJfSBlbHNlIHsNCgkJCSRzIC49ICRzcGFjZS4iPGl0ZW0gaWQ9XCIka1wiPlxyXG4iLnhtbF9zZXJpYWxpemUoJHYsICRodG1sb24sICRpc25vcm1hbCwgJGxldmVsICsgMSkuJHNwYWNlLiI8L2l0ZW0+XHJcbiI7DQoJCX0NCgl9DQoJJHMgPSBwcmVnX3JlcGxhY2UoIi8oW1x4MDEtXHgwOVx4MGItXHgwY1x4MGUtXHgxZl0pKy8iLCAnICcsICRzKTsNCglyZXR1cm4gJGxldmVsID09IDEgPyAkcy4iPC9yb290PiIgOiAkczsNCn0NCg0KY2xhc3MgWE1MIHsNCg0KCXZhciAkcGFyc2VyOw0KCXZhciAkZG9jdW1lbnQ7DQoJdmFyICRzdGFjazsNCgl2YXIgJGRhdGE7DQoJdmFyICRsYXN0X29wZW5lZF90YWc7DQoJdmFyICRpc25vcm1hbDsNCgl2YXIgJGF0dHJzID0gYXJyYXkoKTsNCgl2YXIgJGZhaWxlZCA9IEZBTFNFOw0KDQoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlzbm9ybWFsKSB7DQoJCSR0aGlzLT5YTUwoJGlzbm9ybWFsKTsNCgl9DQoNCglmdW5jdGlvbiBYTUwoJGlzbm9ybWFsKSB7DQoJCSR0aGlzLT5pc25vcm1hbCA9ICRpc25vcm1hbDsNCgkJJHRoaXMtPnBhcnNlciA9IHhtbF9wYXJzZXJfY3JlYXRlKCdJU08tODg1OS0xJyk7DQoJCXhtbF9wYXJzZXJfc2V0X29wdGlvbigkdGhpcy0+cGFyc2VyLCBYTUxfT1BUSU9OX0NBU0VfRk9MRElORywgZmFsc2UpOw0KCQl4bWxfc2V0X29iamVjdCgkdGhpcy0+cGFyc2VyLCAkdGhpcyk7DQoJCXhtbF9zZXRfZWxlbWVudF9oYW5kbGVyKCR0aGlzLT5wYXJzZXIsICdvcGVuJywnY2xvc2UnKTsNCgkJeG1sX3NldF9jaGFyYWN0ZXJfZGF0YV9oYW5kbGVyKCR0aGlzLT5wYXJzZXIsICdkYXRhJyk7DQoJfQ0KDQoJZnVuY3Rpb24gZGVzdHJ1Y3QoKSB7DQoJCXhtbF9wYXJzZXJfZnJlZSgkdGhpcy0+cGFyc2VyKTsNCgl9DQoNCglmdW5jdGlvbiBwYXJzZSgmJGRhdGEpIHsNCgkJJHRoaXMtPmRvY3VtZW50ID0gYXJyYXkoKTsNCgkJJHRoaXMtPnN0YWNrCT0gYXJyYXkoKTsNCgkJcmV0dXJuIHhtbF9wYXJzZSgkdGhpcy0+cGFyc2VyLCAkZGF0YSwgdHJ1ZSkgJiYgISR0aGlzLT5mYWlsZWQgPyAkdGhpcy0+ZG9jdW1lbnQgOiAnJzsNCgl9DQoNCglmdW5jdGlvbiBvcGVuKCYkcGFyc2VyLCAkdGFnLCAkYXR0cmlidXRlcykgew0KCQkkdGhpcy0+ZmFpbGVkID0gRkFMU0U7DQoJCWlmKCEkdGhpcy0+aXNub3JtYWwpIHsNCgkJCWlmKGlzc2V0KCRhdHRyaWJ1dGVzWydpZCddKSAmJiAhaXNfc3RyaW5nKCR0aGlzLT5kb2N1bWVudFskYXR0cmlidXRlc1snaWQnXV0pKSB7DQoJCQkJJHRoaXMtPmRvY3VtZW50ICA9ICYkdGhpcy0+ZG9jdW1lbnRbJGF0dHJpYnV0ZXNbJ2lkJ11dOw0KCQkJfSBlbHNlIHsNCgkJCQkkdGhpcy0+ZmFpbGVkID0gVFJVRTsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJCWlmKCFpc19zdHJpbmcoJHRoaXMtPmRvY3VtZW50WyR0YWddKSkgew0KCQkJCSR0aGlzLT5kb2N1bWVudCAgPSAmJHRoaXMtPmRvY3VtZW50WyR0YWddOw0KCQkJfSBlbHNlIHsNCgkJCQkkdGhpcy0+ZmFpbGVkID0gVFJVRTsNCgkJCX0NCgkJfQ0KCQkkdGhpcy0+c3RhY2tbXSA9ICYkdGhpcy0+ZG9jdW1lbnQ7DQoJCSR0aGlzLT5sYXN0X29wZW5lZF90YWcgPSAkdGFnOw0KCQkkdGhpcy0+YXR0cnMgPSAkYXR0cmlidXRlczsNCgl9DQoNCglmdW5jdGlvbiBkYXRhKCYkcGFyc2VyLCAkZGF0YSkgew0KCQlpZigkdGhpcy0+bGFzdF9vcGVuZWRfdGFnICE9IE5VTEwpIHsNCgkJCSR0aGlzLT5kYXRhID0gJGRhdGE7DQoJCX0gZWxzZSB7DQoJCQkkdGhpcy0+ZGF0YSA9ICcnOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gY2xvc2UoJiRwYXJzZXIsICR0YWcpIHsNCgkJaWYoJHRoaXMtPmxhc3Rfb3BlbmVkX3RhZyA9PSAkdGFnKSB7DQoJCQkkdGhpcy0+ZG9jdW1lbnQgPSAkdGhpcy0+ZGF0YTsNCgkJCSR0aGlzLT5sYXN0X29wZW5lZF90YWcgPSBOVUxMOw0KCQl9DQoJCWFycmF5X3BvcCgkdGhpcy0+c3RhY2spOw0KCQlpZigkdGhpcy0+c3RhY2spIHsNCgkJCSR0aGlzLT5kb2N1bWVudCA9ICYkdGhpcy0+c3RhY2tbY291bnQoJHRoaXMtPnN0YWNrKS0xXTsNCgkJfQ0KCX0NCg0KfQ0KDQo/Pg==
</file>
<file type='dir' name='../uc_client/model'>
</file>
<file type='file' name='../uc_client/model/app.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogYXBwLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIwIGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyBhcHBtb2RlbCB7DQoNCgl2YXIgJGRiOw0KCXZhciAkYmFzZTsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCYkYmFzZSkgew0KCQkkdGhpcy0+YXBwbW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIGFwcG1vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2FwcHMoJGNvbCA9ICcqJywgJHdoZXJlID0gJycpIHsNCgkJJGFyciA9ICR0aGlzLT5kYi0+ZmV0Y2hfYWxsKCJTRUxFQ1QgJGNvbCBGUk9NICIuVUNfREJUQUJMRVBSRS4iYXBwbGljYXRpb25zIi4oJHdoZXJlID8gJyBXSEVSRSAnLiR3aGVyZSA6ICcnKSwgJ2FwcGlkJyk7DQoJCWZvcmVhY2goJGFyciBhcyAkayA9PiAkdikgew0KCQkJaXNzZXQoJHZbJ2V4dHJhJ10pICYmICFlbXB0eSgkdlsnZXh0cmEnXSkgJiYgJHZbJ2V4dHJhJ10gPSB1bnNlcmlhbGl6ZSgkdlsnZXh0cmEnXSk7DQoJCQl1bnNldCgkdlsnYXV0aGtleSddKTsNCgkJCSRhcnJbJGtdID0gJHY7DQoJCX0NCgkJcmV0dXJuICRhcnI7DQoJfQ0KfQ0KPz4=
</file>
<file type='file' name='../uc_client/model/base.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogYmFzZS5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoyMCBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnZ2V0Z3BjJykpIHsNCglmdW5jdGlvbiBnZXRncGMoJGssICR2YXI9J0cnKSB7DQoJCXN3aXRjaCgkdmFyKSB7DQoJCQljYXNlICdHJzogJHZhciA9ICYkX0dFVDsgYnJlYWs7DQoJCQljYXNlICdQJzogJHZhciA9ICYkX1BPU1Q7IGJyZWFrOw0KCQkJY2FzZSAnQyc6ICR2YXIgPSAmJF9DT09LSUU7IGJyZWFrOw0KCQkJY2FzZSAnUic6ICR2YXIgPSAmJF9SRVFVRVNUOyBicmVhazsNCgkJfQ0KCQlyZXR1cm4gaXNzZXQoJHZhclska10pID8gJHZhclska10gOiBOVUxMOw0KCX0NCn0NCg0KY2xhc3MgYmFzZSB7DQoNCgl2YXIgJHRpbWU7DQoJdmFyICRvbmxpbmVpcDsNCgl2YXIgJGRiOw0KCXZhciAka2V5Ow0KCXZhciAkc2V0dGluZ3MgPSBhcnJheSgpOw0KCXZhciAkY2FjaGUgPSBhcnJheSgpOw0KCXZhciAkYXBwID0gYXJyYXkoKTsNCgl2YXIgJHVzZXIgPSBhcnJheSgpOw0KCXZhciAkaW5wdXQgPSBhcnJheSgpOw0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCkgew0KCQkkdGhpcy0+YmFzZSgpOw0KCX0NCg0KCWZ1bmN0aW9uIGJhc2UoKSB7DQoJCSR0aGlzLT5pbml0X3ZhcigpOw0KCQkkdGhpcy0+aW5pdF9kYigpOw0KCQkkdGhpcy0+aW5pdF9jYWNoZSgpOw0KCQkkdGhpcy0+aW5pdF9ub3RlKCk7DQoJCSR0aGlzLT5pbml0X21haWwoKTsNCgl9DQoNCglmdW5jdGlvbiBpbml0X3ZhcigpIHsNCgkJJHRoaXMtPnRpbWUgPSB0aW1lKCk7DQoJCSRjaXAgPSBnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJyk7DQoJCSR4aXAgPSBnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7DQoJCSRyaXAgPSBnZXRlbnYoJ1JFTU9URV9BRERSJyk7DQoJCSRzcmlwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107DQoJCWlmKCRjaXAgJiYgc3RyY2FzZWNtcCgkY2lwLCAndW5rbm93bicpKSB7DQoJCQkkdGhpcy0+b25saW5laXAgPSAkY2lwOw0KCQl9IGVsc2VpZigkeGlwICYmIHN0cmNhc2VjbXAoJHhpcCwgJ3Vua25vd24nKSkgew0KCQkJJHRoaXMtPm9ubGluZWlwID0gJHhpcDsNCgkJfSBlbHNlaWYoJHJpcCAmJiBzdHJjYXNlY21wKCRyaXAsICd1bmtub3duJykpIHsNCgkJCSR0aGlzLT5vbmxpbmVpcCA9ICRyaXA7DQoJCX0gZWxzZWlmKCRzcmlwICYmIHN0cmNhc2VjbXAoJHNyaXAsICd1bmtub3duJykpIHsNCgkJCSR0aGlzLT5vbmxpbmVpcCA9ICRzcmlwOw0KCQl9DQoJCXByZWdfbWF0Y2goIi9bXGRcLl17NywxNX0vIiwgJHRoaXMtPm9ubGluZWlwLCAkbWF0Y2gpOw0KCQkkdGhpcy0+b25saW5laXAgPSAkbWF0Y2hbMF0gPyAkbWF0Y2hbMF0gOiAndW5rbm93bic7DQoJCSR0aGlzLT5hcHBbJ2FwcGlkJ10gPSBVQ19BUFBJRDsNCgl9DQoNCglmdW5jdGlvbiBpbml0X2lucHV0KCkgew0KDQoJfQ0KDQoJZnVuY3Rpb24gaW5pdF9kYigpIHsNCgkJcmVxdWlyZV9vbmNlIFVDX1JPT1QuJ2xpYi9kYi5jbGFzcy5waHAnOw0KCQkkdGhpcy0+ZGIgPSBuZXcgZGIoKTsNCgkJJHRoaXMtPmRiLT5jb25uZWN0KFVDX0RCSE9TVCwgVUNfREJVU0VSLCBVQ19EQlBXLCAnJywgVUNfREJDSEFSU0VULCBVQ19EQkNPTk5FQ1QsIFVDX0RCVEFCTEVQUkUpOw0KCX0NCg0KCWZ1bmN0aW9uIGxvYWQoJG1vZGVsLCAkYmFzZSA9IE5VTEwpIHsNCgkJJGJhc2UgPSAkYmFzZSA/ICRiYXNlIDogJHRoaXM7DQoJCWlmKGVtcHR5KCRfRU5WWyRtb2RlbF0pKSB7DQoJCQlyZXF1aXJlX29uY2UgVUNfUk9PVC4iLi9tb2RlbC8kbW9kZWwucGhwIjsNCgkJCWV2YWwoJyRfRU5WWyRtb2RlbF0gPSBuZXcgJy4kbW9kZWwuJ21vZGVsKCRiYXNlKTsnKTsNCgkJfQ0KCQlyZXR1cm4gJF9FTlZbJG1vZGVsXTsNCgl9DQoNCglmdW5jdGlvbiBkYXRlKCR0aW1lLCAkdHlwZSA9IDMpIHsNCgkJaWYoISR0aGlzLT5zZXR0aW5ncykgew0KCQkJJHRoaXMtPnNldHRpbmdzID0gJHRoaXMtPmNhY2hlKCdzZXR0aW5ncycpOw0KCQl9DQoJCSRmb3JtYXRbXSA9ICR0eXBlICYgMiA/ICghZW1wdHkoJHRoaXMtPnNldHRpbmdzWydkYXRlZm9ybWF0J10pID8gJHRoaXMtPnNldHRpbmdzWydkYXRlZm9ybWF0J10gOiAnWS1uLWonKSA6ICcnOw0KCQkkZm9ybWF0W10gPSAkdHlwZSAmIDEgPyAoIWVtcHR5KCR0aGlzLT5zZXR0aW5nc1sndGltZWZvcm1hdCddKSA/ICR0aGlzLT5zZXR0aW5nc1sndGltZWZvcm1hdCddIDogJ0g6aScpIDogJyc7DQoJCXJldHVybiBnbWRhdGUoaW1wbG9kZSgnICcsICRmb3JtYXQpLCAkdGltZSArICR0aGlzLT5zZXR0aW5nc1sndGltZW9mZnNldCddKTsNCgl9DQoNCglmdW5jdGlvbiBwYWdlX2dldF9zdGFydCgkcGFnZSwgJHBwcCwgJHRvdGFsbnVtKSB7DQoJCSR0b3RhbHBhZ2UgPSBjZWlsKCR0b3RhbG51bSAvICRwcHApOw0KCQkkcGFnZSA9ICBtYXgoMSwgbWluKCR0b3RhbHBhZ2UsaW50dmFsKCRwYWdlKSkpOw0KCQlyZXR1cm4gKCRwYWdlIC0gMSkgKiAkcHBwOw0KCX0NCg0KCWZ1bmN0aW9uIGltcGxvZGUoJGFycikgew0KCQlyZXR1cm4gIiciLmltcGxvZGUoIicsJyIsIChhcnJheSkkYXJyKS4iJyI7DQoJfQ0KDQoJZnVuY3Rpb24gJmNhY2hlKCRjYWNoZWZpbGUpIHsNCgkJc3RhdGljICRfQ0FDSEUgPSBhcnJheSgpOw0KCQlpZighaXNzZXQoJF9DQUNIRVskY2FjaGVmaWxlXSkpIHsNCgkJCSRjYWNoZXBhdGggPSBVQ19EQVRBRElSLicuL2NhY2hlLycuJGNhY2hlZmlsZS4nLnBocCc7DQoJCQlpZighZmlsZV9leGlzdHMoJGNhY2hlcGF0aCkpIHsNCgkJCQkkdGhpcy0+bG9hZCgnY2FjaGUnKTsNCgkJCQkkX0VOVlsnY2FjaGUnXS0+dXBkYXRlZGF0YSgkY2FjaGVmaWxlKTsNCgkJCX0gZWxzZSB7DQoJCQkJaW5jbHVkZV9vbmNlICRjYWNoZXBhdGg7DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRfQ0FDSEVbJGNhY2hlZmlsZV07DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X3NldHRpbmcoJGsgPSBhcnJheSgpLCAkZGVjb2RlID0gRkFMU0UpIHsNCgkJJHJldHVybiA9IGFycmF5KCk7DQoJCSRzcWxhZGQgPSAkayA/ICJXSEVSRSBrIElOICgiLiR0aGlzLT5pbXBsb2RlKCRrKS4iKSIgOiAnJzsNCgkJJHNldHRpbmdzID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJzZXR0aW5ncyAkc3FsYWRkIik7DQoJCWlmKGlzX2FycmF5KCRzZXR0aW5ncykpIHsNCgkJCWZvcmVhY2goJHNldHRpbmdzIGFzICRhcnIpIHsNCgkJCQkkcmV0dXJuWyRhcnJbJ2snXV0gPSAkZGVjb2RlID8gdW5zZXJpYWxpemUoJGFyclsndiddKSA6ICRhcnJbJ3YnXTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHJldHVybjsNCgl9DQoNCglmdW5jdGlvbiBpbml0X2NhY2hlKCkgew0KCQkkdGhpcy0+c2V0dGluZ3MgPSAkdGhpcy0+Y2FjaGUoJ3NldHRpbmdzJyk7DQoJCSR0aGlzLT5jYWNoZVsnYXBwcyddID0gJHRoaXMtPmNhY2hlKCdhcHBzJyk7DQoNCgkJaWYoUEhQX1ZFUlNJT04gPiAnNS4xJykgew0KCQkJJHRpbWVvZmZzZXQgPSBpbnR2YWwoJHRoaXMtPnNldHRpbmdzWyd0aW1lb2Zmc2V0J10gLyAzNjAwKTsNCgkJCUBkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdFdGMvR01UJy4oJHRpbWVvZmZzZXQgPiAwID8gJy0nIDogJysnKS4oYWJzKCR0aW1lb2Zmc2V0KSkpOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gY3V0c3RyKCRzdHJpbmcsICRsZW5ndGgsICRkb3QgPSAnIC4uLicpIHsNCgkJaWYoc3RybGVuKCRzdHJpbmcpIDw9ICRsZW5ndGgpIHsNCgkJCXJldHVybiAkc3RyaW5nOw0KCQl9DQoNCgkJJHN0cmluZyA9IHN0cl9yZXBsYWNlKGFycmF5KCcmYW1wOycsICcmcXVvdDsnLCAnJmx0OycsICcmZ3Q7JyksIGFycmF5KCcmJywgJyInLCAnPCcsICc+JyksICRzdHJpbmcpOw0KDQoJCSRzdHJjdXQgPSAnJzsNCgkJaWYoc3RydG9sb3dlcihVQ19DSEFSU0VUKSA9PSAndXRmLTgnKSB7DQoNCgkJCSRuID0gJHRuID0gJG5vYyA9IDA7DQoJCQl3aGlsZSgkbiA8IHN0cmxlbigkc3RyaW5nKSkgew0KDQoJCQkJJHQgPSBvcmQoJHN0cmluZ1skbl0pOw0KCQkJCWlmKCR0ID09IDkgfHwgJHQgPT0gMTAgfHwgKDMyIDw9ICR0ICYmICR0IDw9IDEyNikpIHsNCgkJCQkJJHRuID0gMTsgJG4rKzsgJG5vYysrOw0KCQkJCX0gZWxzZWlmKDE5NCA8PSAkdCAmJiAkdCA8PSAyMjMpIHsNCgkJCQkJJHRuID0gMjsgJG4gKz0gMjsgJG5vYyArPSAyOw0KCQkJCX0gZWxzZWlmKDIyNCA8PSAkdCAmJiAkdCA8IDIzOSkgew0KCQkJCQkkdG4gPSAzOyAkbiArPSAzOyAkbm9jICs9IDI7DQoJCQkJfSBlbHNlaWYoMjQwIDw9ICR0ICYmICR0IDw9IDI0Nykgew0KCQkJCQkkdG4gPSA0OyAkbiArPSA0OyAkbm9jICs9IDI7DQoJCQkJfSBlbHNlaWYoMjQ4IDw9ICR0ICYmICR0IDw9IDI1MSkgew0KCQkJCQkkdG4gPSA1OyAkbiArPSA1OyAkbm9jICs9IDI7DQoJCQkJfSBlbHNlaWYoJHQgPT0gMjUyIHx8ICR0ID09IDI1Mykgew0KCQkJCQkkdG4gPSA2OyAkbiArPSA2OyAkbm9jICs9IDI7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJG4rKzsNCgkJCQl9DQoNCgkJCQlpZigkbm9jID49ICRsZW5ndGgpIHsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KDQoJCQl9DQoJCQlpZigkbm9jID4gJGxlbmd0aCkgew0KCQkJCSRuIC09ICR0bjsNCgkJCX0NCg0KCQkJJHN0cmN1dCA9IHN1YnN0cigkc3RyaW5nLCAwLCAkbik7DQoNCgkJfSBlbHNlIHsNCgkJCWZvcigkaSA9IDA7ICRpIDwgJGxlbmd0aDsgJGkrKykgew0KCQkJCSRzdHJjdXQgLj0gb3JkKCRzdHJpbmdbJGldKSA+IDEyNyA/ICRzdHJpbmdbJGldLiRzdHJpbmdbKyskaV0gOiAkc3RyaW5nWyRpXTsNCgkJCX0NCgkJfQ0KDQoJCSRzdHJjdXQgPSBzdHJfcmVwbGFjZShhcnJheSgnJicsICciJywgJzwnLCAnPicpLCBhcnJheSgnJmFtcDsnLCAnJnF1b3Q7JywgJyZsdDsnLCAnJmd0OycpLCAkc3RyY3V0KTsNCg0KCQlyZXR1cm4gJHN0cmN1dC4kZG90Ow0KCX0NCg0KCWZ1bmN0aW9uIGluaXRfbm90ZSgpIHsNCgkJaWYoJHRoaXMtPm5vdGVfZXhpc3RzKCkpIHsNCgkJCSR0aGlzLT5sb2FkKCdub3RlJyk7DQoJCQkkX0VOVlsnbm90ZSddLT5zZW5kKCk7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBub3RlX2V4aXN0cygpIHsNCgkJJG5vdGVleGlzdHMgPSAkdGhpcy0+ZGItPmZldGNoX2ZpcnN0KCJTRUxFQ1QgdmFsdWUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuInZhcnMgV0hFUkUgbmFtZT0nbm90ZWV4aXN0cyIuVUNfQVBQSUQuIiciKTsNCgkJaWYoZW1wdHkoJG5vdGVleGlzdHMpKSB7DQoJCQlyZXR1cm4gRkFMU0U7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gVFJVRTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGluaXRfbWFpbCgpIHsNCgkJaWYoJHRoaXMtPm1haWxfZXhpc3RzKCkgJiYgIWdldGdwYygnaW5hamF4JykpIHsNCgkJCSR0aGlzLT5sb2FkKCdtYWlsJyk7DQoJCQkkX0VOVlsnbWFpbCddLT5zZW5kKCk7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBhdXRoY29kZSgkc3RyaW5nLCAkb3BlcmF0aW9uID0gJ0RFQ09ERScsICRrZXkgPSAnJywgJGV4cGlyeSA9IDApIHsNCgkJcmV0dXJuIHVjX2F1dGhjb2RlKCRzdHJpbmcsICRvcGVyYXRpb24sICRrZXksICRleHBpcnkpOw0KCX0NCi8qDQoJZnVuY3Rpb24gc2VyaWFsaXplKCkgew0KDQoJfQ0KKi8NCglmdW5jdGlvbiB1bnNlcmlhbGl6ZSgkcykgew0KCQlyZXR1cm4gdWNfdW5zZXJpYWxpemUoJHMpOw0KCX0NCg0KCWZ1bmN0aW9uIGlucHV0KCRrKSB7DQoJCXJldHVybiBpc3NldCgkdGhpcy0+aW5wdXRbJGtdKSA/IChpc19hcnJheSgkdGhpcy0+aW5wdXRbJGtdKSA/ICR0aGlzLT5pbnB1dFska10gOiB0cmltKCR0aGlzLT5pbnB1dFska10pKSA6IE5VTEw7DQoJfQ0KDQoJZnVuY3Rpb24gbWFpbF9leGlzdHMoKSB7DQoJCSRtYWlsZXhpc3RzID0gJHRoaXMtPmRiLT5mZXRjaF9maXJzdCgiU0VMRUNUIHZhbHVlIEZST00gIi5VQ19EQlRBQkxFUFJFLiJ2YXJzIFdIRVJFIG5hbWU9J21haWxleGlzdHMnIik7DQoJCWlmKGVtcHR5KCRtYWlsZXhpc3RzKSkgew0KCQkJcmV0dXJuIEZBTFNFOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIFRSVUU7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBkc3RyaXBzbGFzaGVzKCRzdHJpbmcpIHsNCgkJaWYoaXNfYXJyYXkoJHN0cmluZykpIHsNCgkJCWZvcmVhY2goJHN0cmluZyBhcyAka2V5ID0+ICR2YWwpIHsNCgkJCQkkc3RyaW5nWyRrZXldID0gJHRoaXMtPmRzdHJpcHNsYXNoZXMoJHZhbCk7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQkkc3RyaW5nID0gc3RyaXBzbGFzaGVzKCRzdHJpbmcpOw0KCQl9DQoJCXJldHVybiAkc3RyaW5nOw0KCX0NCg0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/model/cache.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogY2FjaGUucGhwLHYgMS4xIDIwMDkvMDgvMTEgMDM6MjM6MjAgYmx0IEV4cCAkDQoqLw0KDQohZGVmaW5lZCgnSU5fVUMnKSAmJiBleGl0KCdBY2Nlc3MgRGVuaWVkJyk7DQoNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJykpIHsNCglmdW5jdGlvbiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsICRzKSB7DQoJCSRmcCA9IEBmb3BlbigkZmlsZW5hbWUsICd3Jyk7DQoJCUBmd3JpdGUoJGZwLCAkcyk7DQoJCUBmY2xvc2UoJGZwKTsNCgl9DQp9DQoNCmNsYXNzIGNhY2hlbW9kZWwgew0KDQoJdmFyICRkYjsNCgl2YXIgJGJhc2U7DQoJdmFyICRtYXA7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGJhc2UpIHsNCgkJJHRoaXMtPmNhY2hlbW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIGNhY2hlbW9kZWwoJiRiYXNlKSB7DQoJCSR0aGlzLT5iYXNlID0gJGJhc2U7DQoJCSR0aGlzLT5kYiA9ICRiYXNlLT5kYjsNCgkJJHRoaXMtPm1hcCA9IGFycmF5KA0KCQkJJ3NldHRpbmdzJyA9PiBhcnJheSgnc2V0dGluZ3MnKSwNCgkJCSdiYWR3b3JkcycgPT4gYXJyYXkoJ2JhZHdvcmRzJyksDQoJCQknYXBwcycgPT4gYXJyYXkoJ2FwcHMnKQ0KCQkpOw0KCX0NCg0KCS8vcHVibGljDQoJZnVuY3Rpb24gdXBkYXRlZGF0YSgkY2FjaGVmaWxlID0gJycpIHsNCgkJaWYoJGNhY2hlZmlsZSkgew0KCQkJZm9yZWFjaCgoYXJyYXkpJHRoaXMtPm1hcFskY2FjaGVmaWxlXSBhcyAkbW9kdWxlcykgew0KCQkJCSRzID0gIjw/cGhwXHJcbiI7DQoJCQkJZm9yZWFjaCgoYXJyYXkpJG1vZHVsZXMgYXMgJG0pIHsNCgkJCQkJJG1ldGhvZCA9ICJfZ2V0XyRtIjsNCgkJCQkJJHMgLj0gJyRfQ0FDSEVbXCcnLiRtLidcJ10gPSAnLnZhcl9leHBvcnQoJHRoaXMtPiRtZXRob2QoKSwgVFJVRSkuIjtcclxuIjsNCgkJCQl9DQoJCQkJJHMgLj0gIlxyXG4/PiI7DQoJCQkJQGZpbGVfcHV0X2NvbnRlbnRzKFVDX0RBVEFESVIuIi4vY2FjaGUvJGNhY2hlZmlsZS5waHAiLCAkcyk7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQlmb3JlYWNoKChhcnJheSkkdGhpcy0+bWFwIGFzICRmaWxlID0+ICRtb2R1bGVzKSB7DQoJCQkJJHMgPSAiPD9waHBcclxuIjsNCgkJCQlmb3JlYWNoKCRtb2R1bGVzIGFzICRtKSB7DQoJCQkJCSRtZXRob2QgPSAiX2dldF8kbSI7DQoJCQkJCSRzIC49ICckX0NBQ0hFW1wnJy4kbS4nXCddID0gJy52YXJfZXhwb3J0KCR0aGlzLT4kbWV0aG9kKCksIFRSVUUpLiI7XHJcbiI7DQoJCQkJfQ0KCQkJCSRzIC49ICJcclxuPz4iOw0KCQkJCUBmaWxlX3B1dF9jb250ZW50cyhVQ19EQVRBRElSLiIuL2NhY2hlLyRmaWxlLnBocCIsICRzKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIHVwZGF0ZXRwbCgpIHsNCg0KCX0NCg0KCS8vcHJpdmF0ZQ0KCWZ1bmN0aW9uIF9nZXRfYmFkd29yZHMoKSB7DQoJCSRkYXRhID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJiYWR3b3JkcyIpOw0KCQkkcmV0dXJuID0gYXJyYXkoKTsNCgkJaWYoaXNfYXJyYXkoJGRhdGEpKSB7DQoJCQlmb3JlYWNoKCRkYXRhIGFzICRrID0+ICR2KSB7DQoJCQkJJHJldHVyblsnZmluZHBhdHRlcm4nXVska10gPSAkdlsnZmluZHBhdHRlcm4nXTsNCgkJCQkkcmV0dXJuWydyZXBsYWNlJ11bJGtdID0gJHZbJ3JlcGxhY2VtZW50J107DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRyZXR1cm47DQoJfQ0KDQoJLy9wcml2YXRlDQoJZnVuY3Rpb24gX2dldF9hcHBzKCkgew0KCQkkdGhpcy0+YmFzZS0+bG9hZCgnYXBwJyk7DQoJCSRhcHBzID0gJF9FTlZbJ2FwcCddLT5nZXRfYXBwcygpOw0KCQkkYXBwczIgPSBhcnJheSgpOw0KCQlpZihpc19hcnJheSgkYXBwcykpIHsNCgkJCWZvcmVhY2goJGFwcHMgYXMgJHYpIHsNCgkJCQkkdlsnZXh0cmEnXSA9IHVuc2VyaWFsaXplKCR2WydleHRyYSddKTsNCgkJCQkkYXBwczJbJHZbJ2FwcGlkJ11dID0gJHY7DQoJCQl9DQoJCX0NCgkJcmV0dXJuICRhcHBzMjsNCgl9DQoNCglmdW5jdGlvbiBfZ2V0X3NldHRpbmdzKCkgew0KCQlyZXR1cm4gJHRoaXMtPmJhc2UtPmdldF9zZXR0aW5nKCk7DQoJfQ0KDQp9DQoNCj8+
</file>
<file type='file' name='../uc_client/model/domain.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogZG9tYWluLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIxIGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyBkb21haW5tb2RlbCB7DQoNCgl2YXIgJGRiOw0KCXZhciAkYmFzZTsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCYkYmFzZSkgew0KCQkkdGhpcy0+ZG9tYWlubW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIGRvbWFpbm1vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJfQ0KDQoJZnVuY3Rpb24gYWRkX2RvbWFpbigkZG9tYWluLCAkaXApIHsNCgkJaWYoJGRvbWFpbikgew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiSU5TRVJUIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJkb21haW5zIFNFVCBkb21haW49JyRkb21haW4nLCBpcD0nJGlwJyIpOw0KCQl9DQoJCXJldHVybiAkdGhpcy0+ZGItPmluc2VydF9pZCgpOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF90b3RhbF9udW0oKSB7DQoJCSRkYXRhID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBDT1VOVCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4iZG9tYWlucyIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2xpc3QoJHBhZ2UsICRwcHAsICR0b3RhbG51bSkgew0KCQkkc3RhcnQgPSAkdGhpcy0+YmFzZS0+cGFnZV9nZXRfc3RhcnQoJHBhZ2UsICRwcHAsICR0b3RhbG51bSk7DQoJCSRkYXRhID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJkb21haW5zIExJTUlUICRzdGFydCwgJHBwcCIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gZGVsZXRlX2RvbWFpbigkYXJyKSB7DQoJCSRkb21haW5pZHMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkYXJyKTsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJkb21haW5zIFdIRVJFIGlkIElOICgkZG9tYWluaWRzKSIpOw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5hZmZlY3RlZF9yb3dzKCk7DQoJfQ0KDQoJZnVuY3Rpb24gdXBkYXRlX2RvbWFpbigkZG9tYWluLCAkaXAsICRpZCkgew0KCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJkb21haW5zIFNFVCBkb21haW49JyRkb21haW4nLCBpcD0nJGlwJyBXSEVSRSBpZD0nJGlkJyIpOw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5hZmZlY3RlZF9yb3dzKCk7DQoJfQ0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/model/friend.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogZnJpZW5kLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIxIGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyBmcmllbmRtb2RlbCB7DQoNCgl2YXIgJGRiOw0KCXZhciAkYmFzZTsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCYkYmFzZSkgew0KCQkkdGhpcy0+ZnJpZW5kbW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIGZyaWVuZG1vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJfQ0KDQoJZnVuY3Rpb24gYWRkKCR1aWQsICRmcmllbmRpZCwgJGNvbW1lbnQ9JycpIHsNCgkJJGRpcmVjdGlvbiA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgZGlyZWN0aW9uIEZST00gIi5VQ19EQlRBQkxFUFJFLiJmcmllbmRzIFdIRVJFIHVpZD0nJGZyaWVuZGlkJyBBTkQgZnJpZW5kaWQ9JyR1aWQnIExJTUlUIDEiKTsNCgkJaWYoJGRpcmVjdGlvbiA9PSAxKSB7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJJTlNFUlQgSU5UTyAiLlVDX0RCVEFCTEVQUkUuImZyaWVuZHMgU0VUIHVpZD0nJHVpZCcsIGZyaWVuZGlkPSckZnJpZW5kaWQnLCBjb21tZW50PSckY29tbWVudCcsIGRpcmVjdGlvbj0nMyciLCAnU0lMRU5UJyk7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJmcmllbmRzIFNFVCBkaXJlY3Rpb249JzMnIFdIRVJFIHVpZD0nJGZyaWVuZGlkJyBBTkQgZnJpZW5kaWQ9JyR1aWQnIik7DQoJCQlyZXR1cm4gMTsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAyKSB7DQoJCQlyZXR1cm4gMTsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAzKSB7DQoJCQlyZXR1cm4gLTE7DQoJCX0gZWxzZSB7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJJTlNFUlQgSU5UTyAiLlVDX0RCVEFCTEVQUkUuImZyaWVuZHMgU0VUIHVpZD0nJHVpZCcsIGZyaWVuZGlkPSckZnJpZW5kaWQnLCBjb21tZW50PSckY29tbWVudCcsIGRpcmVjdGlvbj0nMSciLCAnU0lMRU5UJyk7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5pbnNlcnRfaWQoKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGRlbGV0ZSgkdWlkLCAkZnJpZW5kaWRzKSB7DQoJCSRmcmllbmRpZHMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkZnJpZW5kaWRzKTsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJmcmllbmRzIFdIRVJFIHVpZD0nJHVpZCcgQU5EIGZyaWVuZGlkIElOICgkZnJpZW5kaWRzKSIpOw0KCQkkYWZmZWN0ZWRyb3dzID0gJHRoaXMtPmRiLT5hZmZlY3RlZF9yb3dzKCk7DQoJCWlmKCRhZmZlY3RlZHJvd3MgPiAwKSB7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJmcmllbmRzIFNFVCBkaXJlY3Rpb249MSBXSEVSRSB1aWQgSU4gKCRmcmllbmRpZHMpIEFORCBmcmllbmRpZD0nJHVpZCcgQU5EIGRpcmVjdGlvbj0nMyciKTsNCgkJfQ0KCQlyZXR1cm4gJGFmZmVjdGVkcm93czsNCgl9DQoNCglmdW5jdGlvbiBnZXRfdG90YWxudW1fYnlfdWlkKCR1aWQsICRkaXJlY3Rpb24gPSAwKSB7DQoJCSRzcWxhZGQgPSAnJzsNCgkJaWYoJGRpcmVjdGlvbiA9PSAwKSB7DQoJCQkkc3FsYWRkID0gInVpZD0nJHVpZCciOw0KCQl9IGVsc2VpZigkZGlyZWN0aW9uID09IDEpIHsNCgkJCSRzcWxhZGQgPSAidWlkPSckdWlkJyBBTkQgZGlyZWN0aW9uPScxJyI7DQoJCX0gZWxzZWlmKCRkaXJlY3Rpb24gPT0gMikgew0KCQkJJHNxbGFkZCA9ICJmcmllbmRpZD0nJHVpZCcgQU5EIGRpcmVjdGlvbj0nMSciOw0KCQl9IGVsc2VpZigkZGlyZWN0aW9uID09IDMpIHsNCgkJCSRzcWxhZGQgPSAidWlkPSckdWlkJyBBTkQgZGlyZWN0aW9uPSczJyI7DQoJCX0NCgkJJHRvdGFsbnVtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBDT1VOVCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4iZnJpZW5kcyBXSEVSRSAkc3FsYWRkIik7DQoJCXJldHVybiAkdG90YWxudW07DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2xpc3QoJHVpZCwgJHBhZ2UsICRwYWdlc2l6ZSwgJHRvdGFsbnVtLCAkZGlyZWN0aW9uID0gMCkgew0KCQkkc3RhcnQgPSAkdGhpcy0+YmFzZS0+cGFnZV9nZXRfc3RhcnQoJHBhZ2UsICRwYWdlc2l6ZSwgJHRvdGFsbnVtKTsNCgkJJHNxbGFkZCA9ICcnOw0KCQlpZigkZGlyZWN0aW9uID09IDApIHsNCgkJCSRzcWxhZGQgPSAiZi51aWQ9JyR1aWQnIjsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAxKSB7DQoJCQkkc3FsYWRkID0gImYudWlkPSckdWlkJyBBTkQgZi5kaXJlY3Rpb249JzEnIjsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAyKSB7DQoJCQkkc3FsYWRkID0gImYuZnJpZW5kaWQ9JyR1aWQnIEFORCBmLmRpcmVjdGlvbj0nMSciOw0KCQl9IGVsc2VpZigkZGlyZWN0aW9uID09IDMpIHsNCgkJCSRzcWxhZGQgPSAiZi51aWQ9JyR1aWQnIEFORCBmLmRpcmVjdGlvbj0nMyciOw0KCQl9DQoJCWlmKCRzcWxhZGQpIHsNCgkJCSRkYXRhID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCBmLiosIG0udXNlcm5hbWUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuImZyaWVuZHMgZiBMRUZUIEpPSU4gIi5VQ19EQlRBQkxFUFJFLiJtZW1iZXJzIG0gT04gZi5mcmllbmRpZD1tLnVpZCBXSEVSRSAkc3FsYWRkIExJTUlUICRzdGFydCwgJHBhZ2VzaXplIik7DQoJCQlyZXR1cm4gJGRhdGE7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gYXJyYXkoKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGlzX2ZyaWVuZCgkdWlkLCAkZnJpZW5kaWRzLCAkZGlyZWN0aW9uID0gMCkgew0KCQkkZnJpZW5kaWRfc3RyID0gaW1wbG9kZSgiJywgJyIsICRmcmllbmRpZHMpOw0KCQkkc3FsYWRkID0gJyc7DQoJCWlmKCRkaXJlY3Rpb24gPT0gMCkgew0KCQkJJHNxbGFkZCA9ICJ1aWQ9JyR1aWQnIjsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAxKSB7DQoJCQkkc3FsYWRkID0gInVpZD0nJHVpZCcgQU5EIGZyaWVuZGlkIElOICgnJGZyaWVuZGlkX3N0cicpIEFORCBkaXJlY3Rpb249JzEnIjsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAyKSB7DQoJCQkkc3FsYWRkID0gImZyaWVuZGlkPSckdWlkJyBBTkQgdWlkIElOICgnJGZyaWVuZGlkX3N0cicpIEFORCBkaXJlY3Rpb249JzEnIjsNCgkJfSBlbHNlaWYoJGRpcmVjdGlvbiA9PSAzKSB7DQoJCQkkc3FsYWRkID0gInVpZD0nJHVpZCcgQU5EIGZyaWVuZGlkIElOICgnJGZyaWVuZGlkX3N0cicpIEFORCBkaXJlY3Rpb249JzMnIjsNCgkJfQ0KCQlpZigkdGhpcy0+ZGItPnJlc3VsdF9maXJzdCgiU0VMRUNUIENPVU5UKCopIEZST00gIi5VQ19EQlRBQkxFUFJFLiJmcmllbmRzIFdIRVJFICRzcWxhZGQiKSA9PSBjb3VudCgkZnJpZW5kaWRzKSkgew0KCQkJcmV0dXJuIHRydWU7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgl9DQp9DQoNCj8+
</file>
<file type='file' name='../uc_client/model/index.htm'>
IA==
</file>
<file type='file' name='../uc_client/model/mail.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogbWFpbC5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoyMSBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KZGVmaW5lKCdVQ19NQUlMX1JFUEVBVCcsIDUpOw0KDQpjbGFzcyBtYWlsbW9kZWwgew0KDQoJdmFyICRkYjsNCgl2YXIgJGJhc2U7DQoJdmFyICRhcHBzOw0KDQoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRiYXNlKSB7DQoJCSR0aGlzLT5tYWlsbW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIG1haWxtb2RlbCgmJGJhc2UpIHsNCgkJJHRoaXMtPmJhc2UgPSAkYmFzZTsNCgkJJHRoaXMtPmRiID0gJGJhc2UtPmRiOw0KCQkkdGhpcy0+YXBwcyA9ICYkdGhpcy0+YmFzZS0+Y2FjaGVbJ2FwcHMnXTsNCgl9DQoNCglmdW5jdGlvbiBnZXRfdG90YWxfbnVtKCkgew0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgQ09VTlQoKikgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1haWxxdWV1ZSIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2xpc3QoJHBhZ2UsICRwcHAsICR0b3RhbG51bSkgew0KCQkkc3RhcnQgPSAkdGhpcy0+YmFzZS0+cGFnZV9nZXRfc3RhcnQoJHBhZ2UsICRwcHAsICR0b3RhbG51bSk7DQoJCSRkYXRhID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCBtLiosIHUudXNlcm5hbWUsIHUuZW1haWwgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1haWxxdWV1ZSBtIExFRlQgSk9JTiAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgdSBPTiBtLnRvdWlkPXUudWlkIE9SREVSIEJZIGRhdGVsaW5lIERFU0MgTElNSVQgJHN0YXJ0LCAkcHBwIik7DQoJCWZvcmVhY2goKGFycmF5KSRkYXRhIGFzICRrID0+ICR2KSB7DQoJCQkkZGF0YVska11bJ3N1YmplY3QnXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHZbJ3N1YmplY3QnXSk7DQoJCQkkZGF0YVska11bJ3RvbWFpbCddID0gZW1wdHkoJHZbJ3RvbWFpbCddKSA/ICR2WydlbWFpbCddIDogJHZbJ3RvbWFpbCddOw0KCQkJJGRhdGFbJGtdWydkYXRlbGluZSddID0gJHZbJ2RhdGVsaW5lJ10gPyAkdGhpcy0+YmFzZS0+ZGF0ZSgkZGF0YVska11bJ2RhdGVsaW5lJ10pIDogJyc7DQoJCQkkZGF0YVska11bJ2FwcG5hbWUnXSA9ICR0aGlzLT5iYXNlLT5jYWNoZVsnYXBwcyddWyR2WydhcHBpZCddXVsnbmFtZSddOw0KCQl9DQoJCXJldHVybiAkZGF0YTsNCgl9DQoNCglmdW5jdGlvbiBkZWxldGVfbWFpbCgkaWRzKSB7DQoJCSRpZHMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkaWRzKTsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJtYWlscXVldWUgV0hFUkUgbWFpbGlkIElOICgkaWRzKSIpOw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5hZmZlY3RlZF9yb3dzKCk7DQoJfQ0KDQoJZnVuY3Rpb24gYWRkKCRtYWlsKSB7DQoJCWlmKCRtYWlsWydsZXZlbCddKSB7DQoJCQkkc3FsID0gIklOU0VSVCBJTlRPICIuVUNfREJUQUJMRVBSRS4ibWFpbHF1ZXVlICh0b3VpZCwgdG9tYWlsLCBzdWJqZWN0LCBtZXNzYWdlLCBmcm9tbWFpbCwgY2hhcnNldCwgaHRtbG9uLCBsZXZlbCwgZGF0ZWxpbmUsIGZhaWx1cmVzLCBhcHBpZCkgVkFMVUVTICI7DQoJCQkkdmFsdWVzX2FyciA9IGFycmF5KCk7DQoJCQlmb3JlYWNoKCRtYWlsWyd1aWRzJ10gYXMgJHVpZCkgew0KCQkJCWlmKGVtcHR5KCR1aWQpKSBjb250aW51ZTsNCgkJCQkkdmFsdWVzX2FycltdID0gIignJHVpZCcsICcnLCAnJG1haWxbc3ViamVjdF0nLCAnJG1haWxbbWVzc2FnZV0nLCAnJG1haWxbZnJvbW1haWxdJywgJyRtYWlsW2NoYXJzZXRdJywgJyRtYWlsW2h0bWxvbl0nLCAnJG1haWxbbGV2ZWxdJywgJyRtYWlsW2RhdGVsaW5lXScsICcwJywgJyRtYWlsW2FwcGlkXScpIjsNCgkJCX0NCgkJCWZvcmVhY2goJG1haWxbJ2VtYWlscyddIGFzICRlbWFpbCkgew0KCQkJCWlmKGVtcHR5KCRlbWFpbCkpIGNvbnRpbnVlOw0KCQkJCSR2YWx1ZXNfYXJyW10gPSAiKCcnLCAnJGVtYWlsJywgJyRtYWlsW3N1YmplY3RdJywgJyRtYWlsW21lc3NhZ2VdJywgJyRtYWlsW2Zyb21tYWlsXScsICckbWFpbFtjaGFyc2V0XScsICckbWFpbFtodG1sb25dJywgJyRtYWlsW2xldmVsXScsICckbWFpbFtkYXRlbGluZV0nLCAnMCcsICckbWFpbFthcHBpZF0nKSI7DQoJCQl9DQoJCQkkc3FsIC49IGltcGxvZGUoJywnLCAkdmFsdWVzX2Fycik7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCRzcWwpOw0KCQkJJGluc2VydF9pZCA9ICR0aGlzLT5kYi0+aW5zZXJ0X2lkKCk7DQoJCQkkaW5zZXJ0X2lkICYmICR0aGlzLT5kYi0+cXVlcnkoIlJFUExBQ0UgSU5UTyAiLlVDX0RCVEFCTEVQUkUuInZhcnMgU0VUIG5hbWU9J21haWxleGlzdHMnLCB2YWx1ZT0nMSciKTsNCgkJCXJldHVybiAkaW5zZXJ0X2lkOw0KCQl9IGVsc2Ugew0KCQkJJG1haWxbJ2VtYWlsX3RvJ10gPSBhcnJheSgpOw0KCQkJJHVpZHMgPSAwOw0KCQkJZm9yZWFjaCgkbWFpbFsndWlkcyddIGFzICR1aWQpIHsNCgkJCQlpZihlbXB0eSgkdWlkKSkgY29udGludWU7DQoJCQkJJHVpZHMgLj0gJywnLiR1aWQ7DQoJCQl9DQoJCQkkdXNlcnMgPSAkdGhpcy0+ZGItPmZldGNoX2FsbCgiU0VMRUNUIHVpZCwgdXNlcm5hbWUsIGVtYWlsIEZST00gIi5VQ19EQlRBQkxFUFJFLiJtZW1iZXJzIFdIRVJFIHVpZCBJTiAoJHVpZHMpIik7DQoJCQlmb3JlYWNoKCR1c2VycyBhcyAkdikgew0KCQkJCSRtYWlsWydlbWFpbF90byddW10gPSAkdlsndXNlcm5hbWUnXS4nPCcuJHZbJ2VtYWlsJ10uJz4nOw0KCQkJfQ0KCQkJZm9yZWFjaCgkbWFpbFsnZW1haWxzJ10gYXMgJGVtYWlsKSB7DQoJCQkJaWYoZW1wdHkoJGVtYWlsKSkgY29udGludWU7DQoJCQkJJG1haWxbJ2VtYWlsX3RvJ11bXSA9ICRlbWFpbDsNCgkJCX0NCgkJCSRtYWlsWydtZXNzYWdlJ10gPSBzdHJfcmVwbGFjZSgnXCInLCAnIicsICRtYWlsWydtZXNzYWdlJ10pOw0KCQkJJG1haWxbJ2VtYWlsX3RvJ10gPSBpbXBsb2RlKCcsJywgJG1haWxbJ2VtYWlsX3RvJ10pOw0KCQkJcmV0dXJuICR0aGlzLT5zZW5kX29uZV9tYWlsKCRtYWlsKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIHNlbmQoKSB7DQoJCXJlZ2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uKGFycmF5KCR0aGlzLCAnX3NlbmQnKSk7DQoJfQ0KDQoJZnVuY3Rpb24gX3NlbmQoKSB7DQoNCgkJJG1haWwgPSAkdGhpcy0+X2dldF9tYWlsKCk7DQoJCWlmKGVtcHR5KCRtYWlsKSkgew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiUkVQTEFDRSBJTlRPICIuVUNfREJUQUJMRVBSRS4idmFycyBTRVQgbmFtZT0nbWFpbGV4aXN0cycsIHZhbHVlPScwJyIpOw0KCQkJcmV0dXJuIE5VTEw7DQoJCX0gZWxzZSB7DQoJCQkkbWFpbFsnZW1haWxfdG8nXSA9ICRtYWlsWyd0b21haWwnXSA/ICRtYWlsWyd0b21haWwnXSA6ICRtYWlsWyd1c2VybmFtZSddLic8Jy4kbWFpbFsnZW1haWwnXS4nPic7DQoJCQlpZigkdGhpcy0+c2VuZF9vbmVfbWFpbCgkbWFpbCkpIHsNCgkJCQkkdGhpcy0+X2RlbGV0ZV9vbmVfbWFpbCgkbWFpbFsnbWFpbGlkJ10pOw0KCQkJCXJldHVybiB0cnVlOw0KCQkJfSBlbHNlIHsNCgkJCQkkdGhpcy0+X3VwZGF0ZV9mYWlsdXJlcygkbWFpbFsnbWFpbGlkJ10pOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJfQ0KDQoJZnVuY3Rpb24gc2VuZF9ieV9pZCgkbWFpbGlkKSB7DQoJCWlmICgkdGhpcy0+c2VuZF9vbmVfbWFpbCgkdGhpcy0+X2dldF9tYWlsX2J5X2lkKCRtYWlsaWQpKSkgew0KCQkJJHRoaXMtPl9kZWxldGVfb25lX21haWwoJG1haWxpZCk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIHNlbmRfb25lX21haWwoJG1haWwpIHsNCgkJaWYoZW1wdHkoJG1haWwpKSByZXR1cm47DQoJCSRtYWlsWydlbWFpbF90byddID0gJG1haWxbJ2VtYWlsX3RvJ10gPyAkbWFpbFsnZW1haWxfdG8nXSA6ICRtYWlsWyd1c2VybmFtZSddLic8Jy4kbWFpbFsnZW1haWwnXS4nPic7DQoJCSRtYWlsX3NldHRpbmcgPSAkdGhpcy0+YmFzZS0+c2V0dGluZ3M7DQoJCXJldHVybiBpbmNsdWRlIFVDX1JPT1QuJ2xpYi9zZW5kbWFpbC5pbmMucGhwJzsNCgl9DQoNCglmdW5jdGlvbiBfZ2V0X21haWwoKSB7DQoJCSRkYXRhID0gJHRoaXMtPmRiLT5mZXRjaF9maXJzdCgiU0VMRUNUIG0uKiwgdS51c2VybmFtZSwgdS5lbWFpbCBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWFpbHF1ZXVlIG0gTEVGVCBKT0lOICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyB1IE9OIG0udG91aWQ9dS51aWQgV0hFUkUgZmFpbHVyZXM8JyIuVUNfTUFJTF9SRVBFQVQuIicgT1JERVIgQlkgbGV2ZWwgREVTQywgbWFpbGlkIEFTQyBMSU1JVCAxIik7DQoJCXJldHVybiAkZGF0YTsNCgl9DQoNCglmdW5jdGlvbiBfZ2V0X21haWxfYnlfaWQoJG1haWxpZCkgew0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+ZmV0Y2hfZmlyc3QoIlNFTEVDVCBtLiosIHUudXNlcm5hbWUsIHUuZW1haWwgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1haWxxdWV1ZSBtIExFRlQgSk9JTiAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgdSBPTiBtLnRvdWlkPXUudWlkIFdIRVJFIG1haWxpZD0nJG1haWxpZCciKTsNCgkJcmV0dXJuICRkYXRhOw0KCX0NCg0KCWZ1bmN0aW9uIF9kZWxldGVfb25lX21haWwoJG1haWxpZCkgew0KCQkkbWFpbGlkID0gaW50dmFsKCRtYWlsaWQpOw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJtYWlscXVldWUgV0hFUkUgbWFpbGlkPSckbWFpbGlkJyIpOw0KCX0NCg0KCWZ1bmN0aW9uIF91cGRhdGVfZmFpbHVyZXMoJG1haWxpZCkgew0KCQkkbWFpbGlkID0gaW50dmFsKCRtYWlsaWQpOw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5xdWVyeSgiVVBEQVRFICIuVUNfREJUQUJMRVBSRS4ibWFpbHF1ZXVlIFNFVCBmYWlsdXJlcz1mYWlsdXJlcysxIFdIRVJFIG1haWxpZD0nJG1haWxpZCciKTsNCgl9DQp9DQoNCj8+
</file>
<file type='file' name='../uc_client/model/misc.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogbWlzYy5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoyMiBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KZGVmaW5lKCdVQ19BUlJBWV9TRVBfMScsICdVQ19BUlJBWV9TRVBfMScpOw0KZGVmaW5lKCdVQ19BUlJBWV9TRVBfMicsICdVQ19BUlJBWV9TRVBfMicpOw0KDQpjbGFzcyBtaXNjbW9kZWwgew0KDQoJdmFyICRkYjsNCgl2YXIgJGJhc2U7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGJhc2UpIHsNCgkJJHRoaXMtPm1pc2Ntb2RlbCgkYmFzZSk7DQoJfQ0KDQoJZnVuY3Rpb24gbWlzY21vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2FwcHMoJGNvbCA9ICcqJywgJHdoZXJlID0gJycpIHsNCgkJJGFyciA9ICR0aGlzLT5kYi0+ZmV0Y2hfYWxsKCJTRUxFQ1QgJGNvbCBGUk9NICIuVUNfREJUQUJMRVBSRS4iYXBwbGljYXRpb25zIi4oJHdoZXJlID8gJyBXSEVSRSAnLiR3aGVyZSA6ICcnKSk7DQoJCXJldHVybiAkYXJyOw0KCX0NCg0KCWZ1bmN0aW9uIGRlbGV0ZV9hcHBzKCRhcHBpZHMpIHsNCgl9DQoNCglmdW5jdGlvbiB1cGRhdGVfYXBwKCRhcHBpZCwgJG5hbWUsICR1cmwsICRhdXRoa2V5LCAkY2hhcnNldCwgJGRiY2hhcnNldCkgew0KCX0NCg0KCS8vcHJpdmF0ZQ0KCWZ1bmN0aW9uIGFsdGVyX2FwcF90YWJsZSgkYXBwaWQsICRvcGVyYXRpb24gPSAnQUREJykgew0KCX0NCg0KCWZ1bmN0aW9uIGdldF9ob3N0X2J5X3VybCgkdXJsKSB7DQoJfQ0KDQoJZnVuY3Rpb24gY2hlY2tfdXJsKCR1cmwpIHsNCgl9DQoNCglmdW5jdGlvbiBjaGVja19pcCgkdXJsKSB7DQoJfQ0KDQoJZnVuY3Rpb24gdGVzdF9hcGkoJHVybCwgJGlwID0gJycpIHsNCgl9DQoNCglmdW5jdGlvbiBkZm9wZW4yKCR1cmwsICRsaW1pdCA9IDAsICRwb3N0ID0gJycsICRjb29raWUgPSAnJywgJGJ5c29ja2V0ID0gRkFMU0UsICRpcCA9ICcnLCAkdGltZW91dCA9IDE1LCAkYmxvY2sgPSBUUlVFLCAkZW5jb2RldHlwZSAgPSAnVVJMRU5DT0RFJykgew0KCQkkX190aW1lc19fID0gaXNzZXQoJF9HRVRbJ19fdGltZXNfXyddKSA/IGludHZhbCgkX0dFVFsnX190aW1lc19fJ10pICsgMSA6IDE7DQoJCWlmKCRfX3RpbWVzX18gPiAyKSB7DQoJCQlyZXR1cm4gJyc7DQoJCX0NCgkJJHVybCAuPSAoc3RycG9zKCR1cmwsICc/JykgPT09IEZBTFNFID8gJz8nIDogJyYnKS4iX190aW1lc19fPSRfX3RpbWVzX18iOw0KCQlyZXR1cm4gJHRoaXMtPmRmb3BlbigkdXJsLCAkbGltaXQsICRwb3N0LCAkY29va2llLCAkYnlzb2NrZXQsICRpcCwgJHRpbWVvdXQsICRibG9jaywgJGVuY29kZXR5cGUpOw0KCX0NCg0KCWZ1bmN0aW9uIGRmb3BlbigkdXJsLCAkbGltaXQgPSAwLCAkcG9zdCA9ICcnLCAkY29va2llID0gJycsICRieXNvY2tldCA9IEZBTFNFCSwgJGlwID0gJycsICR0aW1lb3V0ID0gMTUsICRibG9jayA9IFRSVUUsICRlbmNvZGV0eXBlICA9ICdVUkxFTkNPREUnKSB7DQoJCS8vZXJyb3JfbG9nKCJbdWNfY2xpZW50XVxyXG51cmw6ICR1cmxcclxucG9zdDogJHBvc3RcclxuXHJcbiIsIDMsICdjOi9sb2cvcGhwX2ZvcGVuLnR4dCcpOw0KCQkkcmV0dXJuID0gJyc7DQoJCSRtYXRjaGVzID0gcGFyc2VfdXJsKCR1cmwpOw0KCQkkaG9zdCA9ICRtYXRjaGVzWydob3N0J107DQoJCSRwYXRoID0gJG1hdGNoZXNbJ3BhdGgnXSA/ICRtYXRjaGVzWydwYXRoJ10uKCRtYXRjaGVzWydxdWVyeSddID8gJz8nLiRtYXRjaGVzWydxdWVyeSddIDogJycpIDogJy8nOw0KCQkkcG9ydCA9ICFlbXB0eSgkbWF0Y2hlc1sncG9ydCddKSA/ICRtYXRjaGVzWydwb3J0J10gOiA4MDsNCg0KCQlpZigkcG9zdCkgew0KCQkJJG91dCA9ICJQT1NUICRwYXRoIEhUVFAvMS4wXHJcbiI7DQoJCQkkb3V0IC49ICJBY2NlcHQ6ICovKlxyXG4iOw0KCQkJLy8kb3V0IC49ICJSZWZlcmVyOiAkYm9hcmR1cmxcclxuIjsNCgkJCSRvdXQgLj0gIkFjY2VwdC1MYW5ndWFnZTogemgtY25cclxuIjsNCgkJCSRib3VuZGFyeSA9ICRlbmNvZGV0eXBlID09ICdVUkxFTkNPREUnID8gJycgOiAnOycuc3Vic3RyKCRwb3N0LCAwLCB0cmltKHN0cnBvcygkcG9zdCwgIlxuIikpKTsNCgkJCSRvdXQgLj0gJGVuY29kZXR5cGUgPT0gJ1VSTEVOQ09ERScgPyAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcclxuIiA6ICJDb250ZW50LVR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEkYm91bmRhcnlcclxuIjsNCgkJCSRvdXQgLj0gIlVzZXItQWdlbnQ6ICRfU0VSVkVSW0hUVFBfVVNFUl9BR0VOVF1cclxuIjsNCgkJCSRvdXQgLj0gIkhvc3Q6ICRob3N0XHJcbiI7DQoJCQkkb3V0IC49ICdDb250ZW50LUxlbmd0aDogJy5zdHJsZW4oJHBvc3QpLiJcclxuIjsNCgkJCSRvdXQgLj0gIkNvbm5lY3Rpb246IENsb3NlXHJcbiI7DQoJCQkkb3V0IC49ICJDYWNoZS1Db250cm9sOiBuby1jYWNoZVxyXG4iOw0KCQkJJG91dCAuPSAiQ29va2llOiAkY29va2llXHJcblxyXG4iOw0KCQkJJG91dCAuPSAkcG9zdDsNCgkJfSBlbHNlIHsNCgkJCSRvdXQgPSAiR0VUICRwYXRoIEhUVFAvMS4wXHJcbiI7DQoJCQkkb3V0IC49ICJBY2NlcHQ6ICovKlxyXG4iOw0KCQkJLy8kb3V0IC49ICJSZWZlcmVyOiAkYm9hcmR1cmxcclxuIjsNCgkJCSRvdXQgLj0gIkFjY2VwdC1MYW5ndWFnZTogemgtY25cclxuIjsNCgkJCSRvdXQgLj0gIlVzZXItQWdlbnQ6ICRfU0VSVkVSW0hUVFBfVVNFUl9BR0VOVF1cclxuIjsNCgkJCSRvdXQgLj0gIkhvc3Q6ICRob3N0XHJcbiI7DQoJCQkkb3V0IC49ICJDb25uZWN0aW9uOiBDbG9zZVxyXG4iOw0KCQkJJG91dCAuPSAiQ29va2llOiAkY29va2llXHJcblxyXG4iOw0KCQl9DQoJCSRmcCA9IEBmc29ja29wZW4oKCRpcCA/ICRpcCA6ICRob3N0KSwgJHBvcnQsICRlcnJubywgJGVycnN0ciwgJHRpbWVvdXQpOw0KCQlpZighJGZwKSB7DQoJCQlyZXR1cm4gJyc7DQoJCX0gZWxzZSB7DQoJCQlzdHJlYW1fc2V0X2Jsb2NraW5nKCRmcCwgJGJsb2NrKTsNCgkJCXN0cmVhbV9zZXRfdGltZW91dCgkZnAsICR0aW1lb3V0KTsNCgkJCUBmd3JpdGUoJGZwLCAkb3V0KTsNCgkJCSRzdGF0dXMgPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZnApOw0KCQkJaWYoISRzdGF0dXNbJ3RpbWVkX291dCddKSB7DQoJCQkJd2hpbGUgKCFmZW9mKCRmcCkpIHsNCgkJCQkJaWYoKCRoZWFkZXIgPSBAZmdldHMoJGZwKSkgJiYgKCRoZWFkZXIgPT0gIlxyXG4iIHx8ICAkaGVhZGVyID09ICJcbiIpKSB7DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCSRzdG9wID0gZmFsc2U7DQoJCQkJd2hpbGUoIWZlb2YoJGZwKSAmJiAhJHN0b3ApIHsNCgkJCQkJJGRhdGEgPSBmcmVhZCgkZnAsICgkbGltaXQgPT0gMCB8fCAkbGltaXQgPiA4MTkyID8gODE5MiA6ICRsaW1pdCkpOw0KCQkJCQkkcmV0dXJuIC49ICRkYXRhOw0KCQkJCQlpZigkbGltaXQpIHsNCgkJCQkJCSRsaW1pdCAtPSBzdHJsZW4oJGRhdGEpOw0KCQkJCQkJJHN0b3AgPSAkbGltaXQgPD0gMDsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJCUBmY2xvc2UoJGZwKTsNCgkJCXJldHVybiAkcmV0dXJuOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gYXJyYXkyc3RyaW5nKCRhcnIpIHsNCgkJJHMgPSAkc2VwID0gJyc7DQoJCWlmKCRhcnIgJiYgaXNfYXJyYXkoJGFycikpIHsNCgkJCWZvcmVhY2goJGFyciBhcyAkayA9PiAkdikgew0KCQkJCSRzIC49ICRzZXAuJGsuVUNfQVJSQVlfU0VQXzEuJHY7DQoJCQkJJHNlcCA9IFVDX0FSUkFZX1NFUF8yOw0KCQkJfQ0KCQl9DQoJCXJldHVybiAkczsNCgl9DQoNCglmdW5jdGlvbiBzdHJpbmcyYXJyYXkoJHMpIHsNCgkJJGFyciA9IGV4cGxvZGUoVUNfQVJSQVlfU0VQXzIsICRzKTsNCgkJJGFycjIgPSBhcnJheSgpOw0KCQlmb3JlYWNoKCRhcnIgYXMgJGsgPT4gJHYpIHsNCgkJCWxpc3QoJGtleSwgJHZhbCkgPSBleHBsb2RlKFVDX0FSUkFZX1NFUF8xLCAkdik7DQoJCQkkYXJyMlska2V5XSA9ICR2YWw7DQoJCX0NCgkJcmV0dXJuICRhcnIyOw0KCX0NCn0NCg0KPz4=
</file>
<file type='file' name='../uc_client/model/note.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogbm90ZS5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoyMiBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KZGVmaW5lKCdVQ19OT1RFX1JFUEVBVCcsIDUpOw0KZGVmaW5lKCdVQ19OT1RFX1RJTUVPVVQnLCAxNSk7DQpkZWZpbmUoJ1VDX05PVEVfR0MnLCAxMDAwMCk7DQoNCmRlZmluZSgnQVBJX1JFVFVSTl9GQUlMRUQnLCAnLTEnKTsNCg0KY2xhc3Mgbm90ZW1vZGVsIHsNCg0KCXZhciAkZGI7DQoJdmFyICRiYXNlOw0KCXZhciAkYXBwczsNCgl2YXIgJG9wZXJhdGlvbnMgPSBhcnJheSgpOw0KCXZhciAkbm90ZXR5cGUgPSAnSFRUUCc7DQoNCglmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJGJhc2UpIHsNCgkJJHRoaXMtPm5vdGVtb2RlbCgkYmFzZSk7DQoJfQ0KDQoJZnVuY3Rpb24gbm90ZW1vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJCSR0aGlzLT5hcHBzID0gJHRoaXMtPmJhc2UtPmNhY2hlKCdhcHBzJyk7DQoJCSR0aGlzLT5vcGVyYXRpb25zID0gYXJyYXkoDQoJCQkndGVzdCc9PmFycmF5KCcnLCAnYWN0aW9uPXRlc3QnKSwNCgkJCSdkZWxldGV1c2VyJz0+YXJyYXkoJycsICdhY3Rpb249ZGVsZXRldXNlcicpLA0KCQkJJ3JlbmFtZXVzZXInPT5hcnJheSgnJywgJ2FjdGlvbj1yZW5hbWV1c2VyJyksDQoJCQknZGVsZXRlZnJpZW5kJz0+YXJyYXkoJycsICdhY3Rpb249ZGVsZXRlZnJpZW5kJyksDQoJCQknZ2V0dGFnJz0+YXJyYXkoJycsICdhY3Rpb249Z2V0dGFnJywgJ3RhZycsICd1cGRhdGVkYXRhJyksDQoJCQknZ2V0Y3JlZGl0c2V0dGluZ3MnPT5hcnJheSgnJywgJ2FjdGlvbj1nZXRjcmVkaXRzZXR0aW5ncycpLA0KCQkJJ2dldGNyZWRpdCc9PmFycmF5KCcnLCAnYWN0aW9uPWdldGNyZWRpdCcpLA0KCQkJJ3VwZGF0ZWNyZWRpdHNldHRpbmdzJz0+YXJyYXkoJycsICdhY3Rpb249dXBkYXRlY3JlZGl0c2V0dGluZ3MnKSwNCgkJCSd1cGRhdGVjbGllbnQnPT5hcnJheSgnJywgJ2FjdGlvbj11cGRhdGVjbGllbnQnKSwNCgkJCSd1cGRhdGVwdyc9PmFycmF5KCcnLCAnYWN0aW9uPXVwZGF0ZXB3JyksDQoJCQkndXBkYXRlYmFkd29yZHMnPT5hcnJheSgnJywgJ2FjdGlvbj11cGRhdGViYWR3b3JkcycpLA0KCQkJJ3VwZGF0ZWhvc3RzJz0+YXJyYXkoJycsICdhY3Rpb249dXBkYXRlaG9zdHMnKSwNCgkJCSd1cGRhdGVhcHBzJz0+YXJyYXkoJycsICdhY3Rpb249dXBkYXRlYXBwcycpLA0KCQkJJ3VwZGF0ZWNyZWRpdCc9PmFycmF5KCcnLCAnYWN0aW9uPXVwZGF0ZWNyZWRpdCcpLA0KCQkpOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF90b3RhbF9udW0oJGFsbCA9IFRSVUUpIHsNCgl9DQoNCglmdW5jdGlvbiBnZXRfbGlzdCgkcGFnZSwgJHBwcCwgJHRvdGFsbnVtLCAkYWxsID0gVFJVRSkgew0KCX0NCg0KCWZ1bmN0aW9uIGRlbGV0ZV9ub3RlKCRpZHMpIHsNCgl9DQoNCglmdW5jdGlvbiBhZGQoJG9wZXJhdGlvbiwgJGdldGRhdGE9JycsICRwb3N0ZGF0YT0nJywgJGFwcGlkcz1hcnJheSgpLCAkcHJpID0gMCkgew0KCQkkZXh0cmEgPSAkdmFyZXh0cmEgPSAnJzsNCgkJJGFwcGFkZCA9ICR2YXJhZGQgPSBhcnJheSgpOw0KCQlmb3JlYWNoKChhcnJheSkkdGhpcy0+YXBwcyBhcyAkYXBwaWQgPT4gJGFwcCkgew0KCQkJJGFwcGlkID0gJGFwcFsnYXBwaWQnXTsNCgkJCWlmKCRhcHBpZCA9PSBpbnR2YWwoJGFwcGlkKSkgew0KCQkJCWlmKCRhcHBpZHMgJiYgIWluX2FycmF5KCRhcHBpZCwgJGFwcGlkcykpIHsNCgkJCQkJJGFwcGFkZFtdID0gJ2FwcCcuJGFwcGlkLiI9JzEnIjsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkdmFyYWRkW10gPSAiKCdub3RlZXhpc3RzeyRhcHBpZH0nLCAnMScpIjsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJaWYoJGFwcGFkZCkgew0KCQkJJGV4dHJhID0gaW1wbG9kZSgnLCcsICRhcHBhZGQpOw0KCQkJJGV4dHJhID0gJGV4dHJhID8gJywgJy4kZXh0cmEgOiAnJzsNCgkJfQ0KCQlpZigkdmFyYWRkKSB7DQoJCQkkdmFyZXh0cmEgPSBpbXBsb2RlKCcsICcsICR2YXJhZGQpOw0KCQkJJHZhcmV4dHJhID0gJHZhcmV4dHJhID8gJywgJy4kdmFyZXh0cmEgOiAnJzsNCgkJfQ0KDQoJCSRnZXRkYXRhID0gYWRkc2xhc2hlcygkZ2V0ZGF0YSk7DQoJCSRwb3N0ZGF0YSA9IGFkZHNsYXNoZXMoJHBvc3RkYXRhKTsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiSU5TRVJUIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJub3RlbGlzdCBTRVQgZ2V0ZGF0YT0nJGdldGRhdGEnLCBvcGVyYXRpb249JyRvcGVyYXRpb24nLCBwcmk9JyRwcmknLCBwb3N0ZGF0YT0nJHBvc3RkYXRhJyRleHRyYSIpOw0KCQkkaW5zZXJ0X2lkID0gJHRoaXMtPmRiLT5pbnNlcnRfaWQoKTsNCgkJJGluc2VydF9pZCAmJiAkdGhpcy0+ZGItPnF1ZXJ5KCJSRVBMQUNFIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJ2YXJzIChuYW1lLCB2YWx1ZSkgVkFMVUVTICgnbm90ZWV4aXN0cycsICcxJykkdmFyZXh0cmEiKTsNCgkJcmV0dXJuICRpbnNlcnRfaWQ7DQoJfQ0KDQoJZnVuY3Rpb24gc2VuZCgpIHsNCgkJcmVnaXN0ZXJfc2h1dGRvd25fZnVuY3Rpb24oYXJyYXkoJHRoaXMsICdfc2VuZCcpKTsNCgl9DQoNCglmdW5jdGlvbiBfc2VuZCgpIHsNCg0KDQoJCSRub3RlID0gJHRoaXMtPl9nZXRfbm90ZSgpOw0KCQlpZihlbXB0eSgkbm90ZSkpIHsNCgkJCSR0aGlzLT5kYi0+cXVlcnkoIlJFUExBQ0UgSU5UTyAiLlVDX0RCVEFCTEVQUkUuInZhcnMgU0VUIG5hbWU9J25vdGVleGlzdHMiLlVDX0FQUElELiInLCB2YWx1ZT0nMCciKTsNCgkJCXJldHVybiBOVUxMOw0KCQl9DQoNCgkJJHRoaXMtPnNlbmRvbmUoVUNfQVBQSUQsIDAsICRub3RlKTsNCg0KCQkkdGhpcy0+X2djKCk7DQoJfQ0KDQoJZnVuY3Rpb24gc2VuZG9uZSgkYXBwaWQsICRub3RlaWQgPSAwLCAkbm90ZSA9ICcnKSB7DQoJCXJlcXVpcmVfb25jZSBVQ19ST09ULicuL2xpYi94bWwuY2xhc3MucGhwJzsNCgkJJHJldHVybiA9IEZBTFNFOw0KCQkkYXBwID0gJHRoaXMtPmFwcHNbJGFwcGlkXTsNCgkJaWYoJG5vdGVpZCkgew0KCQkJJG5vdGUgPSAkdGhpcy0+X2dldF9ub3RlX2J5X2lkKCRub3RlaWQpOw0KCQl9DQoJCSR0aGlzLT5iYXNlLT5sb2FkKCdtaXNjJyk7DQoJCSRhcGlmaWxlbmFtZSA9IGlzc2V0KCRhcHBbJ2FwaWZpbGVuYW1lJ10pICYmICRhcHBbJ2FwaWZpbGVuYW1lJ10gPyAkYXBwWydhcGlmaWxlbmFtZSddIDogJ3VjLnBocCc7DQoJCWlmKCRhcHBbJ2V4dHJhJ11bJ2FwcHBhdGgnXSAmJiBAaW5jbHVkZSAkYXBwWydleHRyYSddWydhcHBwYXRoJ10uJy4vYXBpLycuJGFwaWZpbGVuYW1lKSB7DQoJCQkkdWNfbm90ZSA9IG5ldyB1Y19ub3RlKCk7DQoJCQkkbWV0aG9kID0gJG5vdGVbJ29wZXJhdGlvbiddOw0KCQkJaWYoaXNfc3RyaW5nKCRtZXRob2QpICYmICFlbXB0eSgkbWV0aG9kKSkgew0KCQkJCXBhcnNlX3N0cigkbm90ZVsnZ2V0ZGF0YSddLCAkbm90ZVsnZ2V0ZGF0YSddKTsNCgkJCQlpZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpKSB7DQoJCQkJCSRub3RlWydnZXRkYXRhJ10gPSAkdGhpcy0+YmFzZS0+ZHN0cmlwc2xhc2hlcygkbm90ZVsnZ2V0ZGF0YSddKTsNCgkJCQl9DQoJCQkJJG5vdGVbJ3Bvc3RkYXRhJ10gPSB4bWxfdW5zZXJpYWxpemUoJG5vdGVbJ3Bvc3RkYXRhJ10pOw0KCQkJCSRyZXNwb25zZSA9ICR1Y19ub3RlLT4kbWV0aG9kKCRub3RlWydnZXRkYXRhJ10sICRub3RlWydwb3N0ZGF0YSddKTsNCgkJCX0NCgkJCXVuc2V0KCR1Y19ub3RlKTsNCgkJfSBlbHNlIHsNCgkJCSR1cmwgPSAkdGhpcy0+Z2V0X3VybF9jb2RlKCRub3RlWydvcGVyYXRpb24nXSwgJG5vdGVbJ2dldGRhdGEnXSwgJGFwcGlkKTsNCgkJCSRub3RlWydwb3N0ZGF0YSddID0gc3RyX3JlcGxhY2UoYXJyYXkoIlxuIiwgIlxyIiksICcnLCAkbm90ZVsncG9zdGRhdGEnXSk7DQoJCQkkcmVzcG9uc2UgPSB0cmltKCRfRU5WWydtaXNjJ10tPmRmb3BlbjIoJHVybCwgMCwgJG5vdGVbJ3Bvc3RkYXRhJ10sICcnLCAxLCAkYXBwWydpcCddLCBVQ19OT1RFX1RJTUVPVVQsIFRSVUUpKTsNCgkJfQ0KDQoJCSRyZXR1cm5zdWNjZWVkID0gJHJlc3BvbnNlICE9ICcnICYmICgkcmVzcG9uc2UgPT0gMSB8fCBpc19hcnJheSh4bWxfdW5zZXJpYWxpemUoJHJlc3BvbnNlKSkpOw0KDQoJCSRjbG9zZWRzcWxhZGQgPSAkdGhpcy0+X2Nsb3NlX25vdGUoJG5vdGUsICR0aGlzLT5hcHBzLCAkcmV0dXJuc3VjY2VlZCwgJGFwcGlkKSA/ICIsY2xvc2VkPScxJyIgOiAnJzsvLw0KDQoJCWlmKCRyZXR1cm5zdWNjZWVkKSB7DQoJCQlpZigkdGhpcy0+b3BlcmF0aW9uc1skbm90ZVsnb3BlcmF0aW9uJ11dWzJdKSB7DQoJCQkJJHRoaXMtPmJhc2UtPmxvYWQoJHRoaXMtPm9wZXJhdGlvbnNbJG5vdGVbJ29wZXJhdGlvbiddXVsyXSk7DQoJCQkJJGZ1bmMgPSAkdGhpcy0+b3BlcmF0aW9uc1skbm90ZVsnb3BlcmF0aW9uJ11dWzNdOw0KCQkJCSRfRU5WWyR0aGlzLT5vcGVyYXRpb25zWyRub3RlWydvcGVyYXRpb24nXV1bMl1dLT4kZnVuYygkYXBwaWQsICRyZXNwb25zZSk7DQoJCQl9DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJub3RlbGlzdCBTRVQgYXBwJGFwcGlkPScxJywgdG90YWxudW09dG90YWxudW0rMSwgc3VjY2VlZG51bT1zdWNjZWVkbnVtKzEsIGRhdGVsaW5lPSd7JHRoaXMtPmJhc2UtPnRpbWV9JyAkY2xvc2Vkc3FsYWRkIFdIRVJFIG5vdGVpZD0nJG5vdGVbbm90ZWlkXSciLCAnU0lMRU5UJyk7DQoJCQkkcmV0dXJuID0gVFJVRTsNCgkJfSBlbHNlIHsNCgkJCSR0aGlzLT5kYi0+cXVlcnkoIlVQREFURSAiLlVDX0RCVEFCTEVQUkUuIm5vdGVsaXN0IFNFVCBhcHAkYXBwaWQgPSBhcHAkYXBwaWQtJzEnLCB0b3RhbG51bT10b3RhbG51bSsxLCBkYXRlbGluZT0neyR0aGlzLT5iYXNlLT50aW1lfScgJGNsb3NlZHNxbGFkZCBXSEVSRSBub3RlaWQ9JyRub3RlW25vdGVpZF0nIiwgJ1NJTEVOVCcpOw0KCQkJJHJldHVybiA9IEZBTFNFOw0KCQl9DQoJCXJldHVybiAkcmV0dXJuOw0KCX0NCg0KCWZ1bmN0aW9uIF9nZXRfbm90ZSgpIHsNCgkJJGFwcF9maWVsZCA9ICdhcHAnLlVDX0FQUElEOw0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+ZmV0Y2hfZmlyc3QoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJub3RlbGlzdCBXSEVSRSBjbG9zZWQ9JzAnIEFORCAkYXBwX2ZpZWxkPCcxJyBBTkQgJGFwcF9maWVsZD4nLSIuVUNfTk9URV9SRVBFQVQuIicgTElNSVQgMSIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gX2djKCkgew0KCQlyYW5kKDAsIFVDX05PVEVfR0MpID09IDAgJiYgJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJub3RlbGlzdCBXSEVSRSBjbG9zZWQ9JzEnIik7DQoJfQ0KDQoJZnVuY3Rpb24gX2Nsb3NlX25vdGUoJG5vdGUsICRhcHBzLCAkcmV0dXJuc3VjY2VlZCwgJGFwcGlkKSB7DQoJCSRub3RlWydhcHAnLiRhcHBpZF0gPSAkcmV0dXJuc3VjY2VlZCA/IDEgOiAkbm90ZVsnYXBwJy4kYXBwaWRdIC0gMTsNCgkJJGFwcGNvdW50ID0gY291bnQoJGFwcHMpOw0KCQlmb3JlYWNoKCRhcHBzIGFzICRrZXkgPT4gJGFwcCkgew0KCQkJJGFwcHN0YXR1cyA9ICRub3RlWydhcHAnLiRhcHBbJ2FwcGlkJ11dOw0KCQkJaWYoISRhcHBbJ3JlY3Zub3RlJ10gfHwgJGFwcHN0YXR1cyA9PSAxIHx8ICRhcHBzdGF0dXMgPD0gLVVDX05PVEVfUkVQRUFUKSB7DQoJCQkJJGFwcGNvdW50LS07DQoJCQl9DQoJCX0NCgkJaWYoJGFwcGNvdW50IDwgMSkgew0KCQkJcmV0dXJuIFRSVUU7DQoJCQkvLyRjbG9zZWRzcWxhZGQgPSAiLGNsb3NlZD0nMSciOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gX2dldF9ub3RlX2J5X2lkKCRub3RlaWQpIHsNCgkJJGRhdGEgPSAkdGhpcy0+ZGItPmZldGNoX2ZpcnN0KCJTRUxFQ1QgKiBGUk9NICIuVUNfREJUQUJMRVBSRS4ibm90ZWxpc3QgV0hFUkUgbm90ZWlkPSckbm90ZWlkJyIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X3VybF9jb2RlKCRvcGVyYXRpb24sICRnZXRkYXRhLCAkYXBwaWQpIHsNCgkJJGFwcCA9ICR0aGlzLT5hcHBzWyRhcHBpZF07DQoJCSRhdXRoa2V5ID0gVUNfS0VZOw0KCQkkdXJsID0gJGFwcFsndXJsJ107DQoJCSRhcGlmaWxlbmFtZSA9IGlzc2V0KCRhcHBbJ2FwaWZpbGVuYW1lJ10pICYmICRhcHBbJ2FwaWZpbGVuYW1lJ10gPyAkYXBwWydhcGlmaWxlbmFtZSddIDogJ3VjLnBocCc7DQoJCSRhY3Rpb24gPSAkdGhpcy0+b3BlcmF0aW9uc1skb3BlcmF0aW9uXVsxXTsNCgkJJGNvZGUgPSB1cmxlbmNvZGUoJHRoaXMtPmJhc2UtPmF1dGhjb2RlKCIkYWN0aW9uJiIuKCRnZXRkYXRhID8gIiRnZXRkYXRhJiIgOiAnJykuInRpbWU9Ii4kdGhpcy0+YmFzZS0+dGltZSwgJ0VOQ09ERScsICRhdXRoa2V5KSk7DQoJCXJldHVybiAkdXJsLiIvYXBpLyRhcGlmaWxlbmFtZT9jb2RlPSRjb2RlIjsNCgl9DQoNCn0NCg0KPz4=
</file>
<file type='file' name='../uc_client/model/pm.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogcG0ucGhwLHYgMS4xIDIwMDkvMDgvMTEgMDM6MjM6MjIgYmx0IEV4cCAkDQoqLw0KDQohZGVmaW5lZCgnSU5fVUMnKSAmJiBleGl0KCdBY2Nlc3MgRGVuaWVkJyk7DQoNCmNsYXNzIHBtbW9kZWwgew0KDQoJdmFyICRkYjsNCgl2YXIgJGJhc2U7DQoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRiYXNlKSB7DQoJCSR0aGlzLT5wbW1vZGVsKCRiYXNlKTsNCgl9DQoNCglmdW5jdGlvbiBwbW1vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJfQ0KDQoJZnVuY3Rpb24gcG1pbnR2YWwoJHBtaWQpIHsNCgkJcmV0dXJuIEBpc19udW1lcmljKCRwbWlkKSA/ICRwbWlkIDogMDsNCgl9DQoNCglmdW5jdGlvbiBnZXRfcG1fYnlfcG1pZCgkdWlkLCAkcG1pZCkgew0KCQkkYXJyID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgcG1pZD0nJHBtaWQnIEFORCAobXNndG9pZCBJTiAoJyR1aWQnLCcwJykgT1IgbXNnZnJvbWlkPSckdWlkJykiKTsNCgkJcmV0dXJuICRhcnI7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X3BtX2J5X3RvdWlkKCR1aWQsICR0b3VpZCwgJHN0YXJ0dGltZSwgJGVuZHRpbWUpIHsNCgkJJGFycjEgPSAkdGhpcy0+ZGItPmZldGNoX2FsbCgiU0VMRUNUICogRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcyBXSEVSRSBtc2dmcm9taWQ9JyR1aWQnIEFORCBtc2d0b2lkPSckdG91aWQnIEFORCBkYXRlbGluZT49JyRzdGFydHRpbWUnIEFORCBkYXRlbGluZTwnJGVuZHRpbWUnIEFORCByZWxhdGVkPicwJyBBTkQgZGVsc3RhdHVzIElOICgwLDIpIE9SREVSIEJZIGRhdGVsaW5lIik7DQoJCSRhcnIyID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgbXNnZnJvbWlkPSckdG91aWQnIEFORCBtc2d0b2lkPSckdWlkJyBBTkQgZGF0ZWxpbmU+PSckc3RhcnR0aW1lJyBBTkQgZGF0ZWxpbmU8JyRlbmR0aW1lJyBBTkQgcmVsYXRlZD4nMCcgQU5EIGRlbHN0YXR1cyBJTiAoMCwxKSBPUkRFUiBCWSBkYXRlbGluZSIpOw0KCQkkYXJyID0gYXJyYXlfbWVyZ2UoJGFycjEsICRhcnIyKTsNCgkJdWFzb3J0KCRhcnIsICdwbV9kYXRlbGluZXNvcnQnKTsNCgkJcmV0dXJuICRhcnI7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X3Btbm9kZV9ieV9wbWlkKCR1aWQsICRwbWlkLCAkdHlwZSA9IDApIHsNCgkJJGFyciA9IGFycmF5KCk7DQoJCWlmKCR0eXBlID09IDEpIHsNCgkJCSRhcnIgPSAkdGhpcy0+ZGItPmZldGNoX2ZpcnN0KCJTRUxFQ1QgKiBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIG1zZ2Zyb21pZD0nJHVpZCcgYW5kIGZvbGRlcj0naW5ib3gnIE9SREVSIEJZIGRhdGVsaW5lIERFU0MgTElNSVQgMSIpOw0KCQl9IGVsc2VpZigkdHlwZSA9PSAyKSB7DQoJCQkkYXJyID0gJHRoaXMtPmRiLT5mZXRjaF9maXJzdCgiU0VMRUNUICogRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcyBXSEVSRSBtc2d0b2lkPSckdWlkJyBhbmQgZm9sZGVyPSdpbmJveCcgT1JERVIgQlkgZGF0ZWxpbmUgREVTQyBMSU1JVCAxIik7DQoJCX0gZWxzZSB7DQoJCQkkYXJyID0gJHRoaXMtPmRiLT5mZXRjaF9maXJzdCgiU0VMRUNUICogRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcyBXSEVSRSBwbWlkPSckcG1pZCciKTsNCgkJfQ0KCQlyZXR1cm4gJGFycjsNCgl9DQoNCglmdW5jdGlvbiBzZXRfcG1fc3RhdHVzKCR1aWQsICR0b3VpZCwgJHBtaWQgPSAwLCAkc3RhdHVzID0gMCkgew0KCQlpZighJHN0YXR1cykgew0KCQkJJG9sZHN0YXR1cyA9IDE7DQoJCQkkbmV3c3RhdHVzID0gMDsNCgkJfSBlbHNlIHsNCgkJCSRvbGRzdGF0dXMgPSAwOw0KCQkJJG5ld3N0YXR1cyA9IDE7DQoJCX0NCgkJaWYoJHRvdWlkKSB7DQoJCQkkaWRzID0gaXNfYXJyYXkoJHRvdWlkKSA/ICR0aGlzLT5iYXNlLT5pbXBsb2RlKCR0b3VpZCkgOiAkdG91aWQ7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJwbXMgU0VUIG5ldz0nJG5ld3N0YXR1cycgV0hFUkUgbXNnZnJvbWlkIElOICgkaWRzKSBBTkQgbXNndG9pZD0nJHVpZCcgQU5EIG5ldz0nJG9sZHN0YXR1cyciLCAnVU5CVUZGRVJFRCcpOw0KCQl9DQoJCWlmKCRwbWlkKSB7DQoJCQkkaWRzID0gaXNfYXJyYXkoJHBtaWQpID8gJHRoaXMtPmJhc2UtPmltcGxvZGUoJHBtaWQpIDogJHBtaWQ7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJwbXMgU0VUIG5ldz0nJG5ld3N0YXR1cycgV0hFUkUgcG1pZCBJTiAoJGlkcykgQU5EIG1zZ3RvaWQ9JyR1aWQnIEFORCBuZXc9JyRvbGRzdGF0dXMnIiwgJ1VOQlVGRkVSRUQnKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGdldF9wbV9udW0oKSB7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X251bSgkdWlkLCAkZm9sZGVyLCAkZmlsdGVyID0gJycpIHsNCgkJc3dpdGNoKCRmb2xkZXIpIHsNCgkJCWNhc2UgJ25ld2JveCc6DQoJCQkJJHNxbCA9ICJTRUxFQ1QgY291bnQoKikgRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcyBXSEVSRSBtc2d0b2lkPSckdWlkJyBBTkQgKHJlbGF0ZWQ9JzAnIEFORCBtc2dmcm9taWQ+JzAnIE9SIG1zZ2Zyb21pZD0nMCcpIEFORCBmb2xkZXI9J2luYm94JyBBTkQgbmV3PScxJyI7DQoJCQkJJG51bSA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCRzcWwpOw0KCQkJCXJldHVybiAkbnVtOw0KCQkJY2FzZSAnb3V0Ym94JzoNCgkJCWNhc2UgJ2luYm94JzoNCgkJCQlpZigkZmlsdGVyID09ICduZXdwbScpIHsNCgkJCQkJJGZpbHRlcmFkZCA9ICJtc2d0b2lkPSckdWlkJyBBTkQgKHJlbGF0ZWQ9JzAnIEFORCBtc2dmcm9taWQ+JzAnIE9SIG1zZ2Zyb21pZD0nMCcpIEFORCBmb2xkZXI9J2luYm94JyBBTkQgbmV3PScxJyI7DQoJCQkJfSBlbHNlaWYoJGZpbHRlciA9PSAnc3lzdGVtcG0nKSB7DQoJCQkJCSRmaWx0ZXJhZGQgPSAibXNndG9pZD0nJHVpZCcgQU5EIG1zZ2Zyb21pZD0nMCcgQU5EIGZvbGRlcj0naW5ib3gnIjsNCgkJCQl9IGVsc2VpZigkZmlsdGVyID09ICdwcml2YXRlcG0nKSB7DQoJCQkJCSRmaWx0ZXJhZGQgPSAibXNndG9pZD0nJHVpZCcgQU5EIHJlbGF0ZWQ9JzAnIEFORCBtc2dmcm9taWQ+JzAnIEFORCBmb2xkZXI9J2luYm94JyI7DQoJCQkJfSBlbHNlaWYoJGZpbHRlciA9PSAnYW5ub3VuY2VwbScpIHsNCgkJCQkJJGZpbHRlcmFkZCA9ICJtc2d0b2lkPScwJyBBTkQgZm9sZGVyPSdpbmJveCciOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSRmaWx0ZXJhZGQgPSAibXNndG9pZD0nJHVpZCcgQU5EIHJlbGF0ZWQ9JzAnIEFORCBmb2xkZXI9J2luYm94JyI7DQoJCQkJfQ0KCQkJCSRzcWwgPSAiU0VMRUNUIGNvdW50KCopIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgJGZpbHRlcmFkZCI7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdzYXZlYm94JzoNCgkJCQlicmVhazsNCgkJfQ0KCQkkbnVtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoJHNxbCk7DQoJCXJldHVybiAkbnVtOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF9wbV9saXN0KCR1aWQsICRwbW51bSwgJGZvbGRlciwgJGZpbHRlciwgJHN0YXJ0LCAkcHBwID0gMTApIHsNCgkJJHBwcCA9ICRwcHAgPyAkcHBwIDogMTA7DQoJCXN3aXRjaCgkZm9sZGVyKSB7DQoJCQljYXNlICduZXdib3gnOg0KCQkJCSRmb2xkZXIgPSAnaW5ib3gnOw0KCQkJCSRmaWx0ZXIgPSAnbmV3cG0nOw0KCQkJY2FzZSAnb3V0Ym94JzoNCgkJCWNhc2UgJ2luYm94JzoNCgkJCQlpZigkZmlsdGVyID09ICduZXdwbScpIHsNCgkJCQkJJGZpbHRlcmFkZCA9ICJwbS5tc2d0b2lkPSckdWlkJyBBTkQgKHBtLnJlbGF0ZWQ9JzAnIEFORCBwbS5tc2dmcm9taWQ+JzAnIE9SIHBtLm1zZ2Zyb21pZD0nMCcpIEFORCBwbS5mb2xkZXI9J2luYm94JyBBTkQgcG0ubmV3PScxJyI7DQoJCQkJfSBlbHNlaWYoJGZpbHRlciA9PSAnc3lzdGVtcG0nKSB7DQoJCQkJCSRmaWx0ZXJhZGQgPSAicG0ubXNndG9pZD0nJHVpZCcgQU5EIHBtLm1zZ2Zyb21pZD0nMCcgQU5EIHBtLmZvbGRlcj0naW5ib3gnIjsNCgkJCQl9IGVsc2VpZigkZmlsdGVyID09ICdwcml2YXRlcG0nKSB7DQoJCQkJCSRmaWx0ZXJhZGQgPSAicG0ubXNndG9pZD0nJHVpZCcgQU5EIHBtLnJlbGF0ZWQ9JzAnIEFORCBwbS5tc2dmcm9taWQ+JzAnIEFORCBwbS5mb2xkZXI9J2luYm94JyI7DQoJCQkJfSBlbHNlaWYoJGZpbHRlciA9PSAnYW5ub3VuY2VwbScpIHsNCgkJCQkJJGZpbHRlcmFkZCA9ICJwbS5tc2d0b2lkPScwJyBBTkQgcG0uZm9sZGVyPSdpbmJveCciOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSRmaWx0ZXJhZGQgPSAicG0ubXNndG9pZD0nJHVpZCcgQU5EIHBtLnJlbGF0ZWQ9JzAnIEFORCBwbS5mb2xkZXI9J2luYm94JyI7DQoJCQkJfQ0KCQkJCSRzcWwgPSAiU0VMRUNUIHBtLiosbS51c2VybmFtZSBhcyBtc2dmcm9tIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgcG0NCgkJCQkJTEVGVCBKT0lOICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyBtIE9OIHBtLm1zZ2Zyb21pZCA9IG0udWlkDQoJCQkJCVdIRVJFICRmaWx0ZXJhZGQgT1JERVIgQlkgcG0uZGF0ZWxpbmUgREVTQyBMSU1JVCAkc3RhcnQsICRwcHAiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnc2VhcmNoYm94JzoNCgkJCQkkZmlsdGVyYWRkID0gIm1zZ3RvaWQ9JyR1aWQnIEFORCBmb2xkZXI9J2luYm94JyBBTkQgbWVzc2FnZSBMSUtFICclIi4oc3RyX3JlcGxhY2UoJ18nLCAnXF8nLCBhZGRjc2xhc2hlcygkZmlsdGVyLCAnJV8nKSkpLiIlJyI7DQoJCQkJJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zDQoJCQkJCVdIRVJFICRmaWx0ZXJhZGQgT1JERVIgQlkgZGF0ZWxpbmUgREVTQyBMSU1JVCAkc3RhcnQsICRwcHAiOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnc2F2ZWJveCc6DQoJCQkJYnJlYWs7DQoJCX0NCgkJJHF1ZXJ5ID0gJHRoaXMtPmRiLT5xdWVyeSgkc3FsKTsNCgkJJGFycmF5ID0gYXJyYXkoKTsNCgkJJHRvZGF5ID0gJHRoaXMtPmJhc2UtPnRpbWUgLSAkdGhpcy0+YmFzZS0+dGltZSAlIDg2NDAwOw0KCQl3aGlsZSgkZGF0YSA9ICR0aGlzLT5kYi0+ZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KCQkJJGRhdGVyYW5nZSA9IDU7DQoJCQlpZigkZGF0YVsnZGF0ZWxpbmUnXSA+PSAkdG9kYXkpIHsNCgkJCQkkZGF0ZXJhbmdlID0gMTsNCgkJCX0gZWxzZWlmKCRkYXRhWydkYXRlbGluZSddID49ICR0b2RheSAtIDg2NDAwKSB7DQoJCQkJJGRhdGVyYW5nZSA9IDI7DQoJCQl9IGVsc2VpZigkZGF0YVsnZGF0ZWxpbmUnXSA+PSAkdG9kYXkgLSAxNzI4MDApIHsNCgkJCQkkZGF0ZXJhbmdlID0gMzsNCgkJCX0gZWxzZWlmKCRkYXRhWydkYXRlbGluZSddID49ICR0b2RheSAtIDYwNDgwMCkgew0KCQkJCSRkYXRlcmFuZ2UgPSA0Ow0KCQkJfQ0KCQkJJGRhdGFbJ2RhdGVyYW5nZSddID0gJGRhdGVyYW5nZTsNCgkJCSRkYXRhWydzdWJqZWN0J10gPSBodG1sc3BlY2lhbGNoYXJzKCRkYXRhWydzdWJqZWN0J10pOw0KCQkJaWYoJGZpbHRlciA9PSAnYW5ub3VuY2VwbScpIHsNCgkJCQl1bnNldCgkZGF0YVsnbXNnZnJvbWlkJ10sICRkYXRhWydtc2dmcm9tJ10pOw0KCQkJfQ0KCQkJJGRhdGFbJ3RvdWlkJ10gPSAkdWlkID09ICRkYXRhWydtc2dmcm9taWQnXSA/ICRkYXRhWydtc2d0b2lkJ10gOiAkZGF0YVsnbXNnZnJvbWlkJ107DQoJCQkkYXJyYXlbXSA9ICRkYXRhOw0KCQl9DQoJCWlmKCRmb2xkZXIgPT0gJ2luYm94Jykgew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJuZXdwbSBXSEVSRSB1aWQ9JyR1aWQnIiwgJ1VOQlVGRkVSRUQnKTsNCgkJfQ0KCQlyZXR1cm4gJGFycmF5Ow0KCX0NCg0KCWZ1bmN0aW9uIHNlbmRwbSgkc3ViamVjdCwgJG1lc3NhZ2UsICRtc2dmcm9tLCAkbXNndG8sICRyZWxhdGVkID0gMCkgew0KCQlpZigkbXNnZnJvbVsndWlkJ10gJiYgJG1zZ2Zyb21bJ3VpZCddID09ICRtc2d0bykgew0KCQkJcmV0dXJuIDA7DQoJCX0NCgkJJF9DQUNIRVsnYmFkd29yZHMnXSA9ICR0aGlzLT5iYXNlLT5jYWNoZSgnYmFkd29yZHMnKTsNCgkJaWYoJF9DQUNIRVsnYmFkd29yZHMnXVsnZmluZHBhdHRlcm4nXSkgew0KCQkJJHN1YmplY3QgPSBAcHJlZ19yZXBsYWNlKCRfQ0FDSEVbJ2JhZHdvcmRzJ11bJ2ZpbmRwYXR0ZXJuJ10sICRfQ0FDSEVbJ2JhZHdvcmRzJ11bJ3JlcGxhY2UnXSwgJHN1YmplY3QpOw0KCQkJJG1lc3NhZ2UgPSBAcHJlZ19yZXBsYWNlKCRfQ0FDSEVbJ2JhZHdvcmRzJ11bJ2ZpbmRwYXR0ZXJuJ10sICRfQ0FDSEVbJ2JhZHdvcmRzJ11bJ3JlcGxhY2UnXSwgJG1lc3NhZ2UpOw0KCQl9DQoNCgkJJGJveCA9ICdpbmJveCc7DQoJCSRzdWJqZWN0ID0gdHJpbSgkc3ViamVjdCk7DQoJCWlmKCRzdWJqZWN0ID09ICcnICYmICEkcmVsYXRlZCkgew0KCQkJJHN1YmplY3QgPSAkdGhpcy0+cmVtb3ZlY29kZSh0cmltKCRtZXNzYWdlKSwgNzUpOw0KCQl9IGVsc2Ugew0KCQkJJHN1YmplY3QgPSAkdGhpcy0+YmFzZS0+Y3V0c3RyKHRyaW0oJHN1YmplY3QpLCA3NSwgJyAnKTsNCgkJfQ0KDQoJCWlmKCRtc2dmcm9tWyd1aWQnXSkgew0KCQkJJHNlc3Npb25leGlzdCA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgY291bnQoKikgRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcyBXSEVSRSBtc2dmcm9taWQ9JyRtc2dmcm9tW3VpZF0nIEFORCBtc2d0b2lkPSckbXNndG8nIEFORCBmb2xkZXI9J2luYm94JyBBTkQgcmVsYXRlZD0nMCciKTsNCgkJCWlmKCEkc2Vzc2lvbmV4aXN0IHx8ICRzZXNzaW9uZXhpc3QgPiAxKSB7DQoJCQkJaWYoJHNlc3Npb25leGlzdCA+IDEpIHsNCgkJCQkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgbXNnZnJvbWlkPSckbXNnZnJvbVt1aWRdJyBBTkQgbXNndG9pZD0nJG1zZ3RvJyBBTkQgZm9sZGVyPSdpbmJveCcgQU5EIHJlbGF0ZWQ9JzAnIik7DQoJCQkJfQ0KCQkJCSR0aGlzLT5kYi0+cXVlcnkoIklOU0VSVCBJTlRPICIuVUNfREJUQUJMRVBSRS4icG1zIChtc2dmcm9tLG1zZ2Zyb21pZCxtc2d0b2lkLGZvbGRlcixuZXcsc3ViamVjdCxkYXRlbGluZSxyZWxhdGVkLG1lc3NhZ2UsZnJvbWFwcGlkKSBWQUxVRVMNCgkJCQkJKCciLiRtc2dmcm9tWyd1c2VybmFtZSddLiInLCciLiRtc2dmcm9tWyd1aWQnXS4iJywnJG1zZ3RvJywnJGJveCcsJzEnLCckc3ViamVjdCcsJyIuJHRoaXMtPmJhc2UtPnRpbWUuIicsJzAnLCckbWVzc2FnZScsJyIuJHRoaXMtPmJhc2UtPmFwcFsnYXBwaWQnXS4iJykiKTsNCgkJCQkkbGFzdHBtaWQgPSAkdGhpcy0+ZGItPmluc2VydF9pZCgpOw0KCQkJfSBlbHNlIHsNCgkJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJwbXMgU0VUIHN1YmplY3Q9JyRzdWJqZWN0JywgbWVzc2FnZT0nJG1lc3NhZ2UnLCBkYXRlbGluZT0nIi4kdGhpcy0+YmFzZS0+dGltZS4iJywgbmV3PScxJywgZnJvbWFwcGlkPSciLiR0aGlzLT5iYXNlLT5hcHBbJ2FwcGlkJ10uIicNCgkJCQkJV0hFUkUgbXNnZnJvbWlkPSckbXNnZnJvbVt1aWRdJyBBTkQgbXNndG9pZD0nJG1zZ3RvJyBBTkQgZm9sZGVyPSdpbmJveCcgQU5EIHJlbGF0ZWQ9JzAnIik7DQoJCQl9DQoJCQlpZighJHNhdmVib3gpIHsNCgkJCQkkc2Vzc2lvbmV4aXN0ID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIG1zZ2Zyb21pZD0nJG1zZ3RvJyBBTkQgbXNndG9pZD0nJG1zZ2Zyb21bdWlkXScgQU5EIGZvbGRlcj0naW5ib3gnIEFORCByZWxhdGVkPScwJyIpOw0KCQkJCWlmKCRtc2dmcm9tWyd1aWQnXSAmJiAhJHNlc3Npb25leGlzdCkgew0KCQkJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJJTlNFUlQgSU5UTyAiLlVDX0RCVEFCTEVQUkUuInBtcyAobXNnZnJvbSxtc2dmcm9taWQsbXNndG9pZCxmb2xkZXIsbmV3LHN1YmplY3QsZGF0ZWxpbmUscmVsYXRlZCxtZXNzYWdlLGZyb21hcHBpZCkgVkFMVUVTDQoJCQkJCQkoJyIuJG1zZ2Zyb21bJ3VzZXJuYW1lJ10uIicsJyRtc2d0bycsJyIuJG1zZ2Zyb21bJ3VpZCddLiInLCckYm94JywnMCcsJyRzdWJqZWN0JywnIi4kdGhpcy0+YmFzZS0+dGltZS4iJywnMCcsJyRtZXNzYWdlJywnMCcpIik7DQoJCQkJfQ0KCQkJCSR0aGlzLT5kYi0+cXVlcnkoIklOU0VSVCBJTlRPICIuVUNfREJUQUJMRVBSRS4icG1zIChtc2dmcm9tLG1zZ2Zyb21pZCxtc2d0b2lkLGZvbGRlcixuZXcsc3ViamVjdCxkYXRlbGluZSxyZWxhdGVkLG1lc3NhZ2UsZnJvbWFwcGlkKSBWQUxVRVMNCgkJCQkJKCciLiRtc2dmcm9tWyd1c2VybmFtZSddLiInLCciLiRtc2dmcm9tWyd1aWQnXS4iJywnJG1zZ3RvJywnJGJveCcsJzEnLCckc3ViamVjdCcsJyIuJHRoaXMtPmJhc2UtPnRpbWUuIicsJzEnLCckbWVzc2FnZScsJyIuJHRoaXMtPmJhc2UtPmFwcFsnYXBwaWQnXS4iJykiKTsNCgkJCQkkbGFzdHBtaWQgPSAkdGhpcy0+ZGItPmluc2VydF9pZCgpOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiSU5TRVJUIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJwbXMgKG1zZ2Zyb20sbXNnZnJvbWlkLG1zZ3RvaWQsZm9sZGVyLG5ldyxzdWJqZWN0LGRhdGVsaW5lLHJlbGF0ZWQsbWVzc2FnZSxmcm9tYXBwaWQpIFZBTFVFUw0KCQkJCSgnIi4kbXNnZnJvbVsndXNlcm5hbWUnXS4iJywnIi4kbXNnZnJvbVsndWlkJ10uIicsJyRtc2d0bycsJyRib3gnLCcxJywnJHN1YmplY3QnLCciLiR0aGlzLT5iYXNlLT50aW1lLiInLCcwJywnJG1lc3NhZ2UnLCciLiR0aGlzLT5iYXNlLT5hcHBbJ2FwcGlkJ10uIicpIik7DQoJCQkkbGFzdHBtaWQgPSAkdGhpcy0+ZGItPmluc2VydF9pZCgpOw0KCQl9DQoJCSR0aGlzLT5kYi0+cXVlcnkoIlJFUExBQ0UgSU5UTyAiLlVDX0RCVEFCTEVQUkUuIm5ld3BtICh1aWQpIFZBTFVFUyAoJyRtc2d0bycpIik7DQoJCXJldHVybiAkbGFzdHBtaWQ7DQoJfQ0KDQoJZnVuY3Rpb24gc2V0X2lnbm9yZSgkdWlkKSB7DQoJCSR0aGlzLT5kYi0+cXVlcnkoIkRFTEVURSBGUk9NICIuVUNfREJUQUJMRVBSRS4ibmV3cG0gV0hFUkUgdWlkPSckdWlkJyIpOw0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrX25ld3BtKCR1aWQsICRtb3JlKSB7DQoJCWlmKCRtb3JlIDwgMikgew0KCQkJJG5ld3BtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4ibmV3cG0gV0hFUkUgdWlkPSckdWlkJyIpOw0KCQkJaWYoJG5ld3BtKSB7DQoJCQkJJG5ld3BtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIChyZWxhdGVkPScwJyBBTkQgbXNnZnJvbWlkPicwJyBPUiBtc2dmcm9taWQ9JzAnKSBBTkQgbXNndG9pZD0nJHVpZCcgQU5EIGZvbGRlcj0naW5ib3gnIEFORCBuZXc9JzEnIik7DQoJCQkJaWYoJG1vcmUpIHsNCgkJCQkJJG5ld3BydnBtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIHJlbGF0ZWQ9JzAnIEFORCBtc2dmcm9taWQ+JzAnIEFORCBtc2d0b2lkPSckdWlkJyBBTkQgZm9sZGVyPSdpbmJveCcgQU5EIG5ldz0nMSciKTsNCgkJCQkJcmV0dXJuIGFycmF5KCduZXdwbScgPT4gJG5ld3BtLCAnbmV3cHJpdmF0ZXBtJyA9PiAkbmV3cHJ2cG0pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCXJldHVybiAkbmV3cG07DQoJCQkJfQ0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJJG5ld3BtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIChyZWxhdGVkPScwJyBBTkQgbXNnZnJvbWlkPicwJyBPUiBtc2dmcm9taWQ9JzAnKSBBTkQgbXNndG9pZD0nJHVpZCcgQU5EIGZvbGRlcj0naW5ib3gnIEFORCBuZXc9JzEnIik7DQoJCQkkbmV3cHJ2cG0gPSAkdGhpcy0+ZGItPnJlc3VsdF9maXJzdCgiU0VMRUNUIGNvdW50KCopIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgcmVsYXRlZD0nMCcgQU5EIG1zZ2Zyb21pZD4nMCcgQU5EIG1zZ3RvaWQ9JyR1aWQnIEFORCBmb2xkZXI9J2luYm94JyBBTkQgbmV3PScxJyIpOw0KCQkJaWYoJG1vcmUgPT0gMiB8fCAkbW9yZSA9PSAzKSB7DQoJCQkJJGFubnBtID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIHJlbGF0ZWQ9JzAnIEFORCBtc2d0b2lkPScwJyBBTkQgZm9sZGVyPSdpbmJveCciKTsNCgkJCQkkc3lzcG0gPSAkdGhpcy0+ZGItPnJlc3VsdF9maXJzdCgiU0VMRUNUIGNvdW50KCopIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgcmVsYXRlZD0nMCcgQU5EIG1zZ3RvaWQ9JyR1aWQnIEFORCBmb2xkZXI9J2luYm94JyBBTkQgbXNnZnJvbWlkPScwJyIpOw0KCQkJfQ0KCQkJaWYoJG1vcmUgPT0gMikgew0KCQkJCXJldHVybiBhcnJheSgnbmV3cG0nID0+ICRuZXdwbSwgJ25ld3ByaXZhdGVwbScgPT4gJG5ld3BydnBtLCAnYW5ub3VuY2VwbScgPT4gJGFubnBtLCAnc3lzdGVtcG0nID0+ICRzeXNwbSk7DQoJCQl9IGlmKCRtb3JlID09IDQpIHsNCgkJCQlyZXR1cm4gYXJyYXkoJ25ld3BtJyA9PiAkbmV3cG0sICduZXdwcml2YXRlcG0nID0+ICRuZXdwcnZwbSk7DQoJCQl9IGVsc2Ugew0KCQkJCSRwbSA9ICR0aGlzLT5kYi0+ZmV0Y2hfZmlyc3QoIlNFTEVDVCBwbS5kYXRlbGluZSxwbS5tc2dmcm9taWQsbS51c2VybmFtZSBhcyBtc2dmcm9tLHBtLm1lc3NhZ2UgRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcyBwbSBMRUZUIEpPSU4gIi5VQ19EQlRBQkxFUFJFLiJtZW1iZXJzIG0gT04gcG0ubXNnZnJvbWlkID0gbS51aWQgV0hFUkUgKHBtLnJlbGF0ZWQ9JzAnIE9SIHBtLm1zZ2Zyb21pZD0nMCcpIEFORCBwbS5tc2d0b2lkPSckdWlkJyBBTkQgcG0uZm9sZGVyPSdpbmJveCcgT1JERVIgQlkgcG0uZGF0ZWxpbmUgREVTQyBMSU1JVCAxIik7DQoJCQkJcmV0dXJuIGFycmF5KCduZXdwbScgPT4gJG5ld3BtLCAnbmV3cHJpdmF0ZXBtJyA9PiAkbmV3cHJ2cG0sICdhbm5vdW5jZXBtJyA9PiAkYW5ucG0sICdzeXN0ZW1wbScgPT4gJHN5c3BtLCAnbGFzdGRhdGUnID0+ICRwbVsnZGF0ZWxpbmUnXSwgJ2xhc3Rtc2dmcm9taWQnID0+ICRwbVsnbXNnZnJvbWlkJ10sICdsYXN0bXNnZnJvbScgPT4gJHBtWydtc2dmcm9tJ10sICdsYXN0bXNnJyA9PiAkcG1bJ21lc3NhZ2UnXSk7DQoJCQl9DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBkZWxldGVwbSgkdWlkLCAkcG1pZHMpIHsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiREVMRVRFIEZST00gIi5VQ19EQlRBQkxFUFJFLiJwbXMgV0hFUkUgbXNndG9pZD0nJHVpZCcgQU5EIHBtaWQgSU4gKCIuJHRoaXMtPmJhc2UtPmltcGxvZGUoJHBtaWRzKS4iKSIpOw0KCQkkZGVsbnVtID0gJHRoaXMtPmRiLT5hZmZlY3RlZF9yb3dzKCk7DQoJCXJldHVybiAkZGVsbnVtOw0KCX0NCg0KCWZ1bmN0aW9uIGRlbGV0ZXVpZHBtKCR1aWQsICRpZHMpIHsNCgkJJGRlbG51bSA9IDA7DQoJCWlmKCRpZHMpIHsNCgkJCSRkZWxudW0gPSAxOw0KCQkJJGRlbHVpZHMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkaWRzKTsNCgkJCSR0aGlzLT5kYi0+cXVlcnkoIkRFTEVURSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zDQoJCQkJV0hFUkUgbXNnZnJvbWlkIElOICgkZGVsdWlkcykgQU5EIG1zZ3RvaWQ9JyR1aWQnIEFORCBmb2xkZXI9J2luYm94JyBBTkQgcmVsYXRlZD0nMCciLCAnVU5CVUZGRVJFRCcpOw0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiVVBEQVRFICIuVUNfREJUQUJMRVBSRS4icG1zIFNFVCBkZWxzdGF0dXM9Mg0KCQkJCVdIRVJFIG1zZ2Zyb21pZCBJTiAoJGRlbHVpZHMpIEFORCBtc2d0b2lkPSckdWlkJyBBTkQgZm9sZGVyPSdpbmJveCcgQU5EIGRlbHN0YXR1cz0wIiwgJ1VOQlVGRkVSRUQnKTsNCgkJCSR0aGlzLT5kYi0+cXVlcnkoIlVQREFURSAiLlVDX0RCVEFCTEVQUkUuInBtcyBTRVQgZGVsc3RhdHVzPTENCgkJCQlXSEVSRSBtc2d0b2lkIElOICgkZGVsdWlkcykgQU5EIG1zZ2Zyb21pZD0nJHVpZCcgQU5EIGZvbGRlcj0naW5ib3gnIEFORCBkZWxzdGF0dXM9MCIsICdVTkJVRkZFUkVEJyk7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJERUxFVEUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuInBtcw0KCQkJCVdIRVJFIG1zZ2Zyb21pZCBJTiAoJGRlbHVpZHMpIEFORCBtc2d0b2lkPSckdWlkJyBBTkQgZGVsc3RhdHVzPTEgQU5EIGZvbGRlcj0naW5ib3gnIiwgJ1VOQlVGRkVSRUQnKTsNCgkJCSR0aGlzLT5kYi0+cXVlcnkoIkRFTEVURSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zDQoJCQkJV0hFUkUgbXNndG9pZCBJTiAoJGRlbHVpZHMpIEFORCBtc2dmcm9taWQ9JyR1aWQnIEFORCBkZWxzdGF0dXM9MiBBTkQgZm9sZGVyPSdpbmJveCciLCAnVU5CVUZGRVJFRCcpOw0KCQl9DQoJCXJldHVybiAkZGVsbnVtOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF9ibGFja2xzKCR1aWQsICR1aWRzID0gYXJyYXkoKSkgew0KCQlpZighJHVpZHMpIHsNCgkJCSRibGFja2xzID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBibGFja2xpc3QgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcmZpZWxkcyBXSEVSRSB1aWQ9JyR1aWQnIik7DQoJCX0gZWxzZSB7DQoJCQkkdWlkcyA9ICR0aGlzLT5iYXNlLT5pbXBsb2RlKCR1aWRzKTsNCgkJCSRibGFja2xzID0gYXJyYXkoKTsNCgkJCSRxdWVyeSA9ICR0aGlzLT5kYi0+cXVlcnkoIlNFTEVDVCB1aWQsIGJsYWNrbGlzdCBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVyZmllbGRzIFdIRVJFIHVpZCBJTiAoJHVpZHMpIik7DQoJCQl3aGlsZSgkZGF0YSA9ICR0aGlzLT5kYi0+ZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KCQkJCSRibGFja2xzWyRkYXRhWyd1aWQnXV0gPSBleHBsb2RlKCcsJywgJGRhdGFbJ2JsYWNrbGlzdCddKTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJGJsYWNrbHM7DQoJfQ0KDQoJZnVuY3Rpb24gc2V0X2JsYWNrbHMoJHVpZCwgJGJsYWNrbHMpIHsNCgkJJHRoaXMtPmRiLT5xdWVyeSgiVVBEQVRFICIuVUNfREJUQUJMRVBSRS4ibWVtYmVyZmllbGRzIFNFVCBibGFja2xpc3Q9JyRibGFja2xzJyBXSEVSRSB1aWQ9JyR1aWQnIik7DQoJCXJldHVybiAkdGhpcy0+ZGItPmFmZmVjdGVkX3Jvd3MoKTsNCgl9DQoNCglmdW5jdGlvbiB1cGRhdGVfYmxhY2tscygkdWlkLCAkdXNlcm5hbWUsICRhY3Rpb24gPSAxKSB7DQoJCSR1c2VybmFtZSA9ICFpc19hcnJheSgkdXNlcm5hbWUpID8gYXJyYXkoJHVzZXJuYW1lKSA6ICR1c2VybmFtZTsNCgkJaWYoJGFjdGlvbiA9PSAxKSB7DQoJCQlpZighaW5fYXJyYXkoJ3tBTEx9JywgJHVzZXJuYW1lKSkgew0KCQkJCSR1c2VybmFtZXMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkdXNlcm5hbWUpOw0KCQkJCSRxdWVyeSA9ICR0aGlzLT5kYi0+cXVlcnkoIlNFTEVDVCB1c2VybmFtZSBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyBXSEVSRSB1c2VybmFtZSBJTiAoJHVzZXJuYW1lcykiKTsNCgkJCQkkdXNlcm5hbWVzID0gYXJyYXkoKTsNCgkJCQl3aGlsZSgkZGF0YSA9ICR0aGlzLT5kYi0+ZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgew0KCQkJCQkkdXNlcm5hbWVzW2FkZHNsYXNoZXMoJGRhdGFbJ3VzZXJuYW1lJ10pXSA9IGFkZHNsYXNoZXMoJGRhdGFbJ3VzZXJuYW1lJ10pOw0KCQkJCX0NCgkJCQlpZighJHVzZXJuYW1lcykgew0KCQkJCQlyZXR1cm4gMDsNCgkJCQl9DQoJCQkJJGJsYWNrbHMgPSBhZGRzbGFzaGVzKCR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgYmxhY2tsaXN0IEZST00gIi5VQ19EQlRBQkxFUFJFLiJtZW1iZXJmaWVsZHMgV0hFUkUgdWlkPSckdWlkJyIpKTsNCgkJCQlpZigkYmxhY2tscykgew0KCQkJCQkkbGlzdCA9IGV4cGxvZGUoJywnLCAkYmxhY2tscyk7DQoJCQkJCWZvcmVhY2goJGxpc3QgYXMgJGsgPT4gJHYpIHsNCgkJCQkJCWlmKGluX2FycmF5KCR2LCAkdXNlcm5hbWVzKSkgew0KCQkJCQkJCXVuc2V0KCR1c2VybmFtZXNbJHZdKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQlpZighJHVzZXJuYW1lcykgew0KCQkJCQlyZXR1cm4gMTsNCgkJCQl9DQoJCQkJJGxpc3RuZXcgPSBpbXBsb2RlKCcsJywgJHVzZXJuYW1lcyk7DQoJCQkJJGJsYWNrbHMgLj0gJGJsYWNrbHMgIT09ICcnID8gJywnLiRsaXN0bmV3IDogJGxpc3RuZXc7DQoJCQl9IGVsc2Ugew0KCQkJCSRibGFja2xzID0gYWRkc2xhc2hlcygkdGhpcy0+ZGItPnJlc3VsdF9maXJzdCgiU0VMRUNUIGJsYWNrbGlzdCBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVyZmllbGRzIFdIRVJFIHVpZD0nJHVpZCciKSk7DQoJCQkJJGJsYWNrbHMgLj0gJyx7QUxMfSc7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQkkYmxhY2tscyA9IGFkZHNsYXNoZXMoJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBibGFja2xpc3QgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcmZpZWxkcyBXSEVSRSB1aWQ9JyR1aWQnIikpOw0KCQkJJGxpc3QgPSAkYmxhY2tscyA9IGV4cGxvZGUoJywnLCAkYmxhY2tscyk7DQoJCQlmb3JlYWNoKCRsaXN0IGFzICRrID0+ICR2KSB7DQoJCQkJaWYoaW5fYXJyYXkoJHYsICR1c2VybmFtZSkpIHsNCgkJCQkJdW5zZXQoJGJsYWNrbHNbJGtdKTsNCgkJCQl9DQoJCQl9DQoJCQkkYmxhY2tscyA9IGltcGxvZGUoJywnLCAkYmxhY2tscyk7DQoJCX0NCgkJJHRoaXMtPmRiLT5xdWVyeSgiVVBEQVRFICIuVUNfREJUQUJMRVBSRS4ibWVtYmVyZmllbGRzIFNFVCBibGFja2xpc3Q9JyRibGFja2xzJyBXSEVSRSB1aWQ9JyR1aWQnIik7DQoJCXJldHVybiAxOw0KCX0NCg0KCWZ1bmN0aW9uIHJlbW92ZWNvZGUoJHN0ciwgJGxlbmd0aCkgew0KCQlyZXR1cm4gdHJpbSgkdGhpcy0+YmFzZS0+Y3V0c3RyKHByZWdfcmVwbGFjZShhcnJheSgNCgkJCQkiL1xbKGVtYWlsfGNvZGV8cXVvdGV8aW1nKT0/LipcXS4qP1xbXC8oZW1haWx8Y29kZXxxdW90ZXxpbWcpXF0vc2lVIiwNCgkJCQkiL1xbXC8/KGJ8aXx1cmx8dXxjb2xvcnxzaXplfGZvbnR8YWxpZ258bGlzdHxpbmRlbnR8ZmxvYXQpPT8uKlxdL3NpVSIsDQoJCQkJIi9cclxuLyIsDQoJCQkpLCAnJywgJHN0ciksICRsZW5ndGgpKTsNCgl9DQoNCglmdW5jdGlvbiBjb3VudF9wbV9ieV9mcm9tdWlkKCR1aWQsICR0aW1lb2Zmc2V0ID0gODY0MDApIHsNCgkJJGRhdGVsaW5lID0gJHRoaXMtPmJhc2UtPnRpbWUgLSBpbnR2YWwoJHRpbWVvZmZzZXQpOw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBDT1VOVCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIG1zZ2Zyb21pZD0nJHVpZCcgQU5EIGRhdGVsaW5lPickZGF0ZWxpbmUnIik7DQoJfQ0KDQoJZnVuY3Rpb24gaXNfcmVwbHlfcG0oJHVpZCwgJHRvdWlkcykgew0KCQkkdG91aWRfc3RyID0gaW1wbG9kZSgiJywgJyIsICR0b3VpZHMpOw0KCQkkcG1fcmVwbHkgPSAkdGhpcy0+ZGItPmZldGNoX2FsbCgiU0VMRUNUIG1zZ2Zyb21pZCwgbXNndG9pZCBGUk9NICIuVUNfREJUQUJMRVBSRS4icG1zIFdIRVJFIG1zZ2Zyb21pZCBJTiAoJyR0b3VpZF9zdHInKSBBTkQgbXNndG9pZD0nJHVpZCcgQU5EIHJlbGF0ZWQ9MSIsICdtc2dmcm9taWQnKTsNCgkJZm9yZWFjaCgkdG91aWRzIGFzICR2YWwpIHsNCgkJCWlmKCFpc3NldCgkcG1fcmVwbHlbJHZhbF0pKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiB0cnVlOw0KCX0NCg0KfQ0KDQpmdW5jdGlvbiBwbV9kYXRlbGluZXNvcnQoJGEsICRiKSB7DQoJaWYgKCRhWydkYXRlbGluZSddID09ICRiWydkYXRlbGluZSddKSB7DQoJCXJldHVybiAwOw0KCX0NCglyZXR1cm4gKCRhWydkYXRlbGluZSddIDwgJGJbJ2RhdGVsaW5lJ10pID8gLTEgOiAxOw0KfQ0KDQo/Pg==
</file>
<file type='file' name='../uc_client/model/tag.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogdGFnLnBocCx2IDEuMSAyMDA5LzA4LzExIDAzOjIzOjIyIGJsdCBFeHAgJA0KKi8NCg0KIWRlZmluZWQoJ0lOX1VDJykgJiYgZXhpdCgnQWNjZXNzIERlbmllZCcpOw0KDQpjbGFzcyB0YWdtb2RlbCB7DQoNCgl2YXIgJGRiOw0KCXZhciAkYmFzZTsNCg0KCWZ1bmN0aW9uIF9fY29uc3RydWN0KCYkYmFzZSkgew0KCQkkdGhpcy0+dGFnbW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIHRhZ21vZGVsKCYkYmFzZSkgew0KCQkkdGhpcy0+YmFzZSA9ICRiYXNlOw0KCQkkdGhpcy0+ZGIgPSAkYmFzZS0+ZGI7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X3RhZ19ieV9uYW1lKCR0YWduYW1lKSB7DQoJCSRhcnIgPSAkdGhpcy0+ZGItPmZldGNoX2FsbCgiU0VMRUNUICogRlJPTSAiLlVDX0RCVEFCTEVQUkUuInRhZ3MgV0hFUkUgdGFnbmFtZT0nJHRhZ25hbWUnIik7DQoJCXJldHVybiAkYXJyOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF90ZW1wbGF0ZSgkYXBwaWQpIHsNCgkJJHJlc3VsdCA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgdGFndGVtcGxhdGVzIEZST00gIi5VQ19EQlRBQkxFUFJFLiJhcHBsaWNhdGlvbnMgV0hFUkUgYXBwaWQ9JyRhcHBpZCciKTsNCgkJcmV0dXJuICRyZXN1bHQ7DQoJfQ0KDQoJZnVuY3Rpb24gdXBkYXRlZGF0YSgkYXBwaWQsICRkYXRhKSB7DQoJCSRhcHBpZCA9IGludHZhbCgkYXBwaWQpOw0KCQlpbmNsdWRlX29uY2UgVUNfUk9PVC4nbGliL3htbC5jbGFzcy5waHAnOw0KCQkkZGF0YSA9IHhtbF91bnNlcmlhbGl6ZSgkZGF0YSk7DQoJCSR0aGlzLT5iYXNlLT5sb2FkKCdhcHAnKTsNCgkJJGRhdGFbMF0gPSBhZGRzbGFzaGVzKCRkYXRhWzBdKTsNCgkJJGRhdGFuZXcgPSBhcnJheSgpOw0KCQlpZihpc19hcnJheSgkZGF0YVsxXSkpIHsNCgkJCWZvcmVhY2goJGRhdGFbMV0gYXMgJHIpIHsNCgkJCQkkZGF0YW5ld1tdID0gJF9FTlZbJ21pc2MnXS0+YXJyYXkyc3RyaW5nKCRyKTsNCgkJCX0NCgkJfQ0KCQkkdG1wID0gJF9FTlZbJ2FwcCddLT5nZXRfYXBwcygndHlwZScsICJhcHBpZD0nJGFwcGlkJyIpOw0KCQkkZGF0YW5ldyA9IGFkZHNsYXNoZXMoJHRtcFswXVsndHlwZSddLiJcdCIuaW1wbG9kZSgiXHQiLCAkZGF0YW5ldykpOw0KCQlpZighZW1wdHkoJGRhdGFbMF0pKSB7DQoJCQkkcmV0dXJuID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBjb3VudCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4idGFncyBXSEVSRSB0YWduYW1lPSckZGF0YVswXScgQU5EIGFwcGlkPSckYXBwaWQnIik7DQoJCQlpZigkcmV0dXJuKSB7DQoJCQkJJHRoaXMtPmRiLT5xdWVyeSgiVVBEQVRFICIuVUNfREJUQUJMRVBSRS4idGFncyBTRVQgZGF0YT0nJGRhdGFuZXcnLCBleHBpcmF0aW9uPSciLiR0aGlzLT5iYXNlLT50aW1lLiInIFdIRVJFIHRhZ25hbWU9JyRkYXRhWzBdJyBBTkQgYXBwaWQ9JyRhcHBpZCciKTsNCgkJCX0gZWxzZSB7DQoJCQkJJHRoaXMtPmRiLT5xdWVyeSgiSU5TRVJUIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJ0YWdzICh0YWduYW1lLCBhcHBpZCwgZGF0YSwgZXhwaXJhdGlvbikgVkFMVUVTICgnJGRhdGFbMF0nLCAnJGFwcGlkJywgJyRkYXRhbmV3JywgJyIuJHRoaXMtPmJhc2UtPnRpbWUuIicpIik7DQoJCQl9DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBmb3JtYXRjYWNoZSgkYXBwaWQsICR0YWduYW1lKSB7DQoJCSRyZXR1cm4gPSAkdGhpcy0+ZGItPnJlc3VsdF9maXJzdCgiU0VMRUNUIGNvdW50KCopIEZST00gIi5VQ19EQlRBQkxFUFJFLiJ0YWdzIFdIRVJFIHRhZ25hbWU9JyR0YWduYW1lJyBBTkQgYXBwaWQ9JyRhcHBpZCciKTsNCgkJaWYoJHJldHVybikgew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiVVBEQVRFICIuVUNfREJUQUJMRVBSRS4idGFncyBTRVQgZXhwaXJhdGlvbj0nMCcgV0hFUkUgdGFnbmFtZT0nJHRhZ25hbWUnIEFORCBhcHBpZD0nJGFwcGlkJyIpOw0KCQl9IGVsc2Ugew0KCQkJJHRoaXMtPmRiLT5xdWVyeSgiSU5TRVJUIElOVE8gIi5VQ19EQlRBQkxFUFJFLiJ0YWdzICh0YWduYW1lLCBhcHBpZCwgZXhwaXJhdGlvbikgVkFMVUVTICgnJHRhZ25hbWUnLCAnJGFwcGlkJywgJzAnKSIpOw0KCQl9DQoJfQ0KDQp9DQoNCj8+
</file>
<file type='file' name='../uc_client/model/user.php'>
PD9waHANCg0KLyoNCglbVUNlbnRlcl0gKEMpMjAwMS0yMDA5IENvbXNlbnogSW5jLg0KCVRoaXMgaXMgTk9UIGEgZnJlZXdhcmUsIHVzZSBpcyBzdWJqZWN0IHRvIGxpY2Vuc2UgdGVybXMNCg0KCSRJZDogdXNlci5waHAsdiAxLjEgMjAwOS8wOC8xMSAwMzoyMzoyMiBibHQgRXhwICQNCiovDQoNCiFkZWZpbmVkKCdJTl9VQycpICYmIGV4aXQoJ0FjY2VzcyBEZW5pZWQnKTsNCg0KY2xhc3MgdXNlcm1vZGVsIHsNCg0KCXZhciAkZGI7DQoJdmFyICRiYXNlOw0KDQoJZnVuY3Rpb24gX19jb25zdHJ1Y3QoJiRiYXNlKSB7DQoJCSR0aGlzLT51c2VybW9kZWwoJGJhc2UpOw0KCX0NCg0KCWZ1bmN0aW9uIHVzZXJtb2RlbCgmJGJhc2UpIHsNCgkJJHRoaXMtPmJhc2UgPSAkYmFzZTsNCgkJJHRoaXMtPmRiID0gJGJhc2UtPmRiOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF91c2VyX2J5X3VpZCgkdWlkKSB7DQoJCSRhcnIgPSAkdGhpcy0+ZGItPmZldGNoX2ZpcnN0KCJTRUxFQ1QgKiBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyBXSEVSRSB1aWQ9JyR1aWQnIik7DQoJCXJldHVybiAkYXJyOw0KCX0NCg0KCWZ1bmN0aW9uIGdldF91c2VyX2J5X3VzZXJuYW1lKCR1c2VybmFtZSkgew0KCQkkYXJyID0gJHRoaXMtPmRiLT5mZXRjaF9maXJzdCgiU0VMRUNUICogRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgV0hFUkUgdXNlcm5hbWU9JyR1c2VybmFtZSciKTsNCgkJcmV0dXJuICRhcnI7DQoJfQ0KDQoJZnVuY3Rpb24gY2hlY2tfdXNlcm5hbWUoJHVzZXJuYW1lKSB7DQoJCSRndWVzdGV4cCA9ICdceEExXHhBMXxceEFDXHhBM3xeR3Vlc3R8Xlx4RDNceENFXHhCRlx4Q0R8XHhCOVx4NDNceEFCXHhDOCc7DQoJCSRsZW4gPSBzdHJsZW4oJHVzZXJuYW1lKTsNCgkJaWYoJGxlbiA+IDE1IHx8ICRsZW4gPCAzIHx8IHByZWdfbWF0Y2goIi9ccyt8XmM6XFxjb25cXGNvbnxbJSxcKlwiXHNcPFw+XCZdfCRndWVzdGV4cC9pcyIsICR1c2VybmFtZSkpIHsNCgkJCXJldHVybiBGQUxTRTsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiBUUlVFOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gY2hlY2tfbWVyZ2V1c2VyKCR1c2VybmFtZSkgew0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgY291bnQoKikgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lcmdlbWVtYmVycyBXSEVSRSBhcHBpZD0nIi4kdGhpcy0+YmFzZS0+YXBwWydhcHBpZCddLiInIEFORCB1c2VybmFtZT0nJHVzZXJuYW1lJyIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gY2hlY2tfdXNlcm5hbWVjZW5zb3IoJHVzZXJuYW1lKSB7DQoJCSRfQ0FDSEVbJ2JhZHdvcmRzJ10gPSAkdGhpcy0+YmFzZS0+Y2FjaGUoJ2JhZHdvcmRzJyk7DQoJCSRjZW5zb3J1c2VybmFtZSA9ICR0aGlzLT5iYXNlLT5nZXRfc2V0dGluZygnY2Vuc29ydXNlcm5hbWUnKTsNCgkJJGNlbnNvcnVzZXJuYW1lID0gJGNlbnNvcnVzZXJuYW1lWydjZW5zb3J1c2VybmFtZSddOw0KCQkkY2Vuc29yZXhwID0gJy9eKCcuc3RyX3JlcGxhY2UoYXJyYXkoJ1xcKicsICJcclxuIiwgJyAnKSwgYXJyYXkoJy4qJywgJ3wnLCAnJyksIHByZWdfcXVvdGUoKCRjZW5zb3J1c2VybmFtZSA9IHRyaW0oJGNlbnNvcnVzZXJuYW1lKSksICcvJykpLicpJC9pJzsNCgkJJHVzZXJuYW1lcmVwbGFjZWQgPSBpc3NldCgkX0NBQ0hFWydiYWR3b3JkcyddWydmaW5kcGF0dGVybiddKSAmJiAhZW1wdHkoJF9DQUNIRVsnYmFkd29yZHMnXVsnZmluZHBhdHRlcm4nXSkgPyBAcHJlZ19yZXBsYWNlKCRfQ0FDSEVbJ2JhZHdvcmRzJ11bJ2ZpbmRwYXR0ZXJuJ10sICRfQ0FDSEVbJ2JhZHdvcmRzJ11bJ3JlcGxhY2UnXSwgJHVzZXJuYW1lKSA6ICR1c2VybmFtZTsNCgkJaWYoKCR1c2VybmFtZXJlcGxhY2VkICE9ICR1c2VybmFtZSkgfHwgKCRjZW5zb3J1c2VybmFtZSAmJiBwcmVnX21hdGNoKCRjZW5zb3JleHAsICR1c2VybmFtZSkpKSB7DQoJCQlyZXR1cm4gRkFMU0U7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gVFJVRTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrX3VzZXJuYW1lZXhpc3RzKCR1c2VybmFtZSkgew0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgdXNlcm5hbWUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgV0hFUkUgdXNlcm5hbWU9JyR1c2VybmFtZSciKTsNCgkJcmV0dXJuICRkYXRhOw0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrX2VtYWlsZm9ybWF0KCRlbWFpbCkgew0KCQlyZXR1cm4gc3RybGVuKCRlbWFpbCkgPiA2ICYmIHByZWdfbWF0Y2goIi9eW1x3XC1cLl0rQFtcd1wtXC5dKyhcLlx3KykrJC8iLCAkZW1haWwpOw0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrX2VtYWlsYWNjZXNzKCRlbWFpbCkgew0KCQkkc2V0dGluZyA9ICR0aGlzLT5iYXNlLT5nZXRfc2V0dGluZyhhcnJheSgnYWNjZXNzZW1haWwnLCAnY2Vuc29yZW1haWwnKSk7DQoJCSRhY2Nlc3NlbWFpbCA9ICRzZXR0aW5nWydhY2Nlc3NlbWFpbCddOw0KCQkkY2Vuc29yZW1haWwgPSAkc2V0dGluZ1snY2Vuc29yZW1haWwnXTsNCgkJJGFjY2Vzc2V4cCA9ICcvKCcuc3RyX3JlcGxhY2UoIlxyXG4iLCAnfCcsIHByZWdfcXVvdGUodHJpbSgkYWNjZXNzZW1haWwpLCAnLycpKS4nKSQvaSc7DQoJCSRjZW5zb3JleHAgPSAnLygnLnN0cl9yZXBsYWNlKCJcclxuIiwgJ3wnLCBwcmVnX3F1b3RlKHRyaW0oJGNlbnNvcmVtYWlsKSwgJy8nKSkuJykkL2knOw0KCQlpZigkYWNjZXNzZW1haWwgfHwgJGNlbnNvcmVtYWlsKSB7DQoJCQlpZigoJGFjY2Vzc2VtYWlsICYmICFwcmVnX21hdGNoKCRhY2Nlc3NleHAsICRlbWFpbCkpIHx8ICgkY2Vuc29yZW1haWwgJiYgcHJlZ19tYXRjaCgkY2Vuc29yZXhwLCAkZW1haWwpKSkgew0KCQkJCXJldHVybiBGQUxTRTsNCgkJCX0gZWxzZSB7DQoJCQkJcmV0dXJuIFRSVUU7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gVFJVRTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrX2VtYWlsZXhpc3RzKCRlbWFpbCwgJHVzZXJuYW1lID0gJycpIHsNCgkJJHNxbGFkZCA9ICR1c2VybmFtZSAhPT0gJycgPyAiQU5EIHVzZXJuYW1lPD4nJHVzZXJuYW1lJyIgOiAnJzsNCgkJJGVtYWlsID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBlbWFpbCBGUk9NICAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgV0hFUkUgZW1haWw9JyRlbWFpbCcgJHNxbGFkZCIpOw0KCQlyZXR1cm4gJGVtYWlsOw0KCX0NCg0KCWZ1bmN0aW9uIGNoZWNrX2xvZ2luKCR1c2VybmFtZSwgJHBhc3N3b3JkLCAmJHVzZXIpIHsNCgkJJHVzZXIgPSAkdGhpcy0+Z2V0X3VzZXJfYnlfdXNlcm5hbWUoJHVzZXJuYW1lKTsNCgkJaWYoZW1wdHkoJHVzZXJbJ3VzZXJuYW1lJ10pKSB7DQoJCQlyZXR1cm4gLTE7DQoJCX0gZWxzZWlmKCR1c2VyWydwYXNzd29yZCddICE9IG1kNShtZDUoJHBhc3N3b3JkKS4kdXNlclsnc2FsdCddKSkgew0KCQkJcmV0dXJuIC0yOw0KCQl9DQoJCXJldHVybiAkdXNlclsndWlkJ107DQoJfQ0KDQoJZnVuY3Rpb24gYWRkX3VzZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRlbWFpbCwgJHVpZCA9IDAsICRxdWVzdGlvbmlkID0gJycsICRhbnN3ZXIgPSAnJykgew0KCQkkc2FsdCA9IHN1YnN0cih1bmlxaWQocmFuZCgpKSwgLTYpOw0KCQkkcGFzc3dvcmQgPSBtZDUobWQ1KCRwYXNzd29yZCkuJHNhbHQpOw0KCQkkc3FsYWRkID0gJHVpZCA/ICJ1aWQ9JyIuaW50dmFsKCR1aWQpLiInLCIgOiAnJzsNCgkJJHNxbGFkZCAuPSAkcXVlc3Rpb25pZCA+IDAgPyAiIHNlY3F1ZXM9JyIuJHRoaXMtPnF1ZXNjcnlwdCgkcXVlc3Rpb25pZCwgJGFuc3dlcikuIicsIiA6ICIgc2VjcXVlcz0nJywiOw0KCQkkdGhpcy0+ZGItPnF1ZXJ5KCJJTlNFUlQgSU5UTyAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgU0VUICRzcWxhZGQgdXNlcm5hbWU9JyR1c2VybmFtZScsIHBhc3N3b3JkPSckcGFzc3dvcmQnLCBlbWFpbD0nJGVtYWlsJywgcmVnaXA9JyIuJHRoaXMtPmJhc2UtPm9ubGluZWlwLiInLCByZWdkYXRlPSciLiR0aGlzLT5iYXNlLT50aW1lLiInLCBzYWx0PSckc2FsdCciKTsNCgkJJHVpZCA9ICR0aGlzLT5kYi0+aW5zZXJ0X2lkKCk7DQoJCSR0aGlzLT5kYi0+cXVlcnkoIklOU0VSVCBJTlRPICIuVUNfREJUQUJMRVBSRS4ibWVtYmVyZmllbGRzIFNFVCB1aWQ9JyR1aWQnIik7DQoJCXJldHVybiAkdWlkOw0KCX0NCg0KCWZ1bmN0aW9uIGVkaXRfdXNlcigkdXNlcm5hbWUsICRvbGRwdywgJG5ld3B3LCAkZW1haWwsICRpZ25vcmVvbGRwdyA9IDAsICRxdWVzdGlvbmlkID0gJycsICRhbnN3ZXIgPSAnJykgew0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+ZmV0Y2hfZmlyc3QoIlNFTEVDVCB1c2VybmFtZSwgdWlkLCBwYXNzd29yZCwgc2FsdCBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyBXSEVSRSB1c2VybmFtZT0nJHVzZXJuYW1lJyIpOw0KDQoJCWlmKCRpZ25vcmVvbGRwdykgew0KCQkJJGlzcHJvdGVjdGVkID0gJHRoaXMtPmRiLT5yZXN1bHRfZmlyc3QoIlNFTEVDVCBDT1VOVCgqKSBGUk9NICIuVUNfREJUQUJMRVBSRS4icHJvdGVjdGVkbWVtYmVycyBXSEVSRSB1aWQgPSAnJGRhdGFbdWlkXSciKTsNCgkJCWlmKCRpc3Byb3RlY3RlZCkgew0KCQkJCXJldHVybiAtODsNCgkJCX0NCgkJfQ0KDQoJCWlmKCEkaWdub3Jlb2xkcHcgJiYgJGRhdGFbJ3Bhc3N3b3JkJ10gIT0gbWQ1KG1kNSgkb2xkcHcpLiRkYXRhWydzYWx0J10pKSB7DQoJCQlyZXR1cm4gLTE7DQoJCX0NCg0KCQkkc3FsYWRkID0gJG5ld3B3ID8gInBhc3N3b3JkPSciLm1kNShtZDUoJG5ld3B3KS4kZGF0YVsnc2FsdCddKS4iJyIgOiAnJzsNCgkJJHNxbGFkZCAuPSAkZW1haWwgPyAoJHNxbGFkZCA/ICcsJyA6ICcnKS4iIGVtYWlsPSckZW1haWwnIiA6ICcnOw0KCQlpZigkcXVlc3Rpb25pZCAhPT0gJycpIHsNCgkJCWlmKCRxdWVzdGlvbmlkID4gMCkgew0KCQkJCSRzcWxhZGQgLj0gKCRzcWxhZGQgPyAnLCcgOiAnJykuIiBzZWNxdWVzPSciLiR0aGlzLT5xdWVzY3J5cHQoJHF1ZXN0aW9uaWQsICRhbnN3ZXIpLiInIjsNCgkJCX0gZWxzZSB7DQoJCQkJJHNxbGFkZCAuPSAoJHNxbGFkZCA/ICcsJyA6ICcnKS4iIHNlY3F1ZXM9JyciOw0KCQkJfQ0KCQl9DQoJCWlmKCRzcWxhZGQgfHwgJGVtYWlsYWRkKSB7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJVUERBVEUgIi5VQ19EQlRBQkxFUFJFLiJtZW1iZXJzIFNFVCAkc3FsYWRkIFdIRVJFIHVzZXJuYW1lPSckdXNlcm5hbWUnIik7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5hZmZlY3RlZF9yb3dzKCk7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gLTc7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBkZWxldGVfdXNlcigkdWlkc2Fycikgew0KCQkkdWlkc2FyciA9IChhcnJheSkkdWlkc2FycjsNCgkJJHVpZHMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkdWlkc2Fycik7DQoJCSRhcnIgPSAkdGhpcy0+ZGItPmZldGNoX2FsbCgiU0VMRUNUIHVpZCBGUk9NICIuVUNfREJUQUJMRVBSRS4icHJvdGVjdGVkbWVtYmVycyBXSEVSRSB1aWQgSU4gKCR1aWRzKSIpOw0KCQkkcHVpZHMgPSBhcnJheSgpOw0KCQlmb3JlYWNoKChhcnJheSkkYXJyIGFzICRtZW1iZXIpIHsNCgkJCSRwdWlkc1tdID0gJG1lbWJlclsndWlkJ107DQoJCX0NCgkJJHVpZHMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZShhcnJheV9kaWZmKCR1aWRzYXJyLCAkcHVpZHMpKTsNCgkJaWYoJHVpZHMpIHsNCgkJCSR0aGlzLT5kYi0+cXVlcnkoIkRFTEVURSBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyBXSEVSRSB1aWQgSU4oJHVpZHMpIik7DQoJCQkkdGhpcy0+ZGItPnF1ZXJ5KCJERUxFVEUgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcmZpZWxkcyBXSEVSRSB1aWQgSU4oJHVpZHMpIik7DQoJCQl1Y191c2VyX2RlbGV0ZWF2YXRhcigkdWlkc2Fycik7DQoJCQkkdGhpcy0+YmFzZS0+bG9hZCgnbm90ZScpOw0KCQkJJF9FTlZbJ25vdGUnXS0+YWRkKCdkZWxldGV1c2VyJywgImlkcz0kdWlkcyIpOw0KCQkJcmV0dXJuICR0aGlzLT5kYi0+YWZmZWN0ZWRfcm93cygpOw0KCQl9IGVsc2Ugew0KCQkJcmV0dXJuIDA7DQoJCX0NCgl9DQoNCglmdW5jdGlvbiBnZXRfdG90YWxfbnVtKCRzcWxhZGQgPSAnJykgew0KCQkkZGF0YSA9ICR0aGlzLT5kYi0+cmVzdWx0X2ZpcnN0KCJTRUxFQ1QgQ09VTlQoKikgRlJPTSAiLlVDX0RCVEFCTEVQUkUuIm1lbWJlcnMgJHNxbGFkZCIpOw0KCQlyZXR1cm4gJGRhdGE7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0X2xpc3QoJHBhZ2UsICRwcHAsICR0b3RhbG51bSwgJHNxbGFkZCkgew0KCQkkc3RhcnQgPSAkdGhpcy0+YmFzZS0+cGFnZV9nZXRfc3RhcnQoJHBhZ2UsICRwcHAsICR0b3RhbG51bSk7DQoJCSRkYXRhID0gJHRoaXMtPmRiLT5mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gIi5VQ19EQlRBQkxFUFJFLiJtZW1iZXJzICRzcWxhZGQgTElNSVQgJHN0YXJ0LCAkcHBwIik7DQoJCXJldHVybiAkZGF0YTsNCgl9DQoNCglmdW5jdGlvbiBuYW1lMmlkKCR1c2VybmFtZXNhcnIpIHsNCgkJJHVzZXJuYW1lc2FyciA9IHVjX2FkZHNsYXNoZXMoJHVzZXJuYW1lc2FyciwgMSwgVFJVRSk7DQoJCSR1c2VybmFtZXMgPSAkdGhpcy0+YmFzZS0+aW1wbG9kZSgkdXNlcm5hbWVzYXJyKTsNCgkJJHF1ZXJ5ID0gJHRoaXMtPmRiLT5xdWVyeSgiU0VMRUNUIHVpZCBGUk9NICIuVUNfREJUQUJMRVBSRS4ibWVtYmVycyBXSEVSRSB1c2VybmFtZSBJTigkdXNlcm5hbWVzKSIpOw0KCQkkYXJyID0gYXJyYXkoKTsNCgkJd2hpbGUoJHVzZXIgPSAkdGhpcy0+ZGItPmZldGNoX2FycmF5KCRxdWVyeSkpIHsNCgkJCSRhcnJbXSA9ICR1c2VyWyd1aWQnXTsNCgkJfQ0KCQlyZXR1cm4gJGFycjsNCgl9DQoNCglmdW5jdGlvbiBxdWVzY3J5cHQoJHF1ZXN0aW9uaWQsICRhbnN3ZXIpIHsNCgkJcmV0dXJuICRxdWVzdGlvbmlkID4gMCAmJiAkYW5zd2VyICE9ICcnID8gc3Vic3RyKG1kNSgkYW5zd2VyLm1kNSgkcXVlc3Rpb25pZCkpLCAxNiwgOCkgOiAnJzsNCgl9DQoNCn0NCg0KPz4=
</file>
<file type='dir' name='../api'>
</file>
<file type='file' name='../api/uc.func.php'>
PD9waHANCmluY2x1ZGVfb25jZSAoZGlybmFtZShfX0ZJTEVfXykuIi8uLi9pbmNsdWRlL2NvbW1vbi5pbmMucGhwIik7DQppZighZGVmaW5lZCgnVUNfQVBQSUQnKSkgZXhpdCgnSW52YWxpZCBSZXF1ZXN0Jyk7DQppbmNsdWRlX29uY2UgREVERVJPT1QuJy91Y19jbGllbnQvY2xpZW50LnBocCc7DQoNCmZ1bmN0aW9uIHVjX2NyZWRpdF9ub3RlKCR1c2VybmFtZSwkYW1vdW50PTAsJGNyZWRpdHM9J3Njb3JlcycpDQp7DQoJbGlzdCgkdWlkKSA9IHVjX2dldF91c2VyKCR1c2VybmFtZSk7DQoJaWYoJHVpZCA8IDEgfHwgISRhbW91bnQpIHJldHVybiAwOw0KCWluY2x1ZGUgREVERURBVEEuJy9jcmVkaXRzLmluYy5waHAnOw0KCSRhcnIgPSBhcnJheSgnc2NvcmVzJyA9PiAxLCAnbW9uZXknID0+IDIpOw0KCSRjcmVkaXQgPSBpc3NldCgkYXJyWyRjcmVkaXRzXSkgPyAkYXJyWyRjcmVkaXRzXSA6IDE7DQoJDQoJaWYoaXNzZXQoJF9DQUNIRVsnY3JlZGl0J10pICYmIGlzX2FycmF5KCRfQ0FDSEVbJ2NyZWRpdCddKSkNCgl7DQoJCWZvcmVhY2goJF9DQUNIRVsnY3JlZGl0J10gYXMgJGFwcGlkID0+ICRjcmVkaXRzSXRlbXMpDQoJCXsNCgkJCWlmKCRjcmVkaXRzSXRlbXNbJ2NyZWRpdGRlc2MnXSE9JGNyZWRpdCkgY29udGludWU7DQoJCQkkYW1vdW50ID0gJGFtb3VudCokY3JlZGl0c0l0ZW1zWydyYXRpbyddOw0KCQkJdWNfY3JlZGl0X2V4Y2hhbmdlX3JlcXVlc3QoJHVpZCwkY3JlZGl0c0l0ZW1zWydjcmVkaXRkZXNjJ10sJGNyZWRpdHNJdGVtc1snY3JlZGl0c3JjJ10sJGFwcGlkLCRhbW91bnQpOw0KCQl9DQoJfQ0KfQ0KDQpmdW5jdGlvbiB1Y19mZWVkX25vdGUoJHVzZXJuYW1lLCRmZWVkKQ0Kew0KCSRkYXRhID0gdWNfZ2V0X3VzZXIoJHVzZXJuYW1lKTsNCglpZighJGRhdGEpIHJldHVybiAnJzsNCgkkdWlkID0gJGRhdGFbMF07DQoJcmV0dXJuIHVjX2ZlZWRfYWRkKCRmZWVkWydpY29uJ10sICR1aWQsICR1c2VybmFtZSwgJGZlZWRbJ3RpdGxlX3RlbXBsYXRlJ10sICRmZWVkWyd0aXRsZV9kYXRhJ10sICRmZWVkWydib2R5X3RlbXBsYXRlJ10sICRmZWVkWydib2R5X2RhdGEnXSwgJycsICcnLCAkZmVlZFsnaW1hZ2VzJ10pOw0KfQ0KPz4=
</file>
<file type='file' name='../api/uc.php'>
PD9waHANCmluY2x1ZGVfb25jZSAoZGlybmFtZShfX0ZJTEVfXykuIi8uLi9pbmNsdWRlL2NvbW1vbi5pbmMucGhwIik7DQpkZWZpbmUoJ0lOX0RJU0NVWicsIEZBTFNFKTsNCg0KZGVmaW5lKCdVQ19DTElFTlRfVkVSU0lPTicsICcxLjUuMCcpOwkvL25vdGUgVUNlbnRlciDniYjmnKzmoIfor4YNCmRlZmluZSgnVUNfQ0xJRU5UX1JFTEVBU0UnLCAnMjAwODEwMzEnKTsNCg0KZGVmaW5lKCdBUElfREVMRVRFVVNFUicsIDEpOwkJLy9ub3RlIOeUqOaIt+WIoOmZpCBBUEkg5o6l5Y+j5byA5YWzDQpkZWZpbmUoJ0FQSV9SRU5BTUVVU0VSJywgMSk7CQkvL25vdGUg55So5oi35pS55ZCNIEFQSSDmjqXlj6PlvIDlhbMNCmRlZmluZSgnQVBJX0dFVFRBRycsIDEpOwkJLy9ub3RlIOiOt+WPluagh+etviBBUEkg5o6l5Y+j5byA5YWzDQpkZWZpbmUoJ0FQSV9TWU5MT0dJTicsIDEpOwkJLy9ub3RlIOWQjOatpeeZu+W9lSBBUEkg5o6l5Y+j5byA5YWzDQpkZWZpbmUoJ0FQSV9TWU5MT0dPVVQnLCAxKTsJCS8vbm90ZSDlkIzmraXnmbvlh7ogQVBJIOaOpeWPo+W8gOWFsw0KZGVmaW5lKCdBUElfVVBEQVRFUFcnLCAxKTsJCS8vbm90ZSDmm7TmlLnnlKjmiLflr4bnoIEg5byA5YWzDQpkZWZpbmUoJ0FQSV9VUERBVEVCQURXT1JEUycsIDEpOwkvL25vdGUg5pu05paw5YWz6ZSu5a2X5YiX6KGoIOW8gOWFsw0KZGVmaW5lKCdBUElfVVBEQVRFSE9TVFMnLCAxKTsJCS8vbm90ZSDmm7TmlrDln5/lkI3op6PmnpDnvJPlrZgg5byA5YWzDQpkZWZpbmUoJ0FQSV9VUERBVEVBUFBTJywgMSk7CQkvL25vdGUg5pu05paw5bqU55So5YiX6KGoIOW8gOWFsw0KZGVmaW5lKCdBUElfVVBEQVRFQ0xJRU5UJywgMSk7CQkvL25vdGUg5pu05paw5a6i5oi356uv57yT5a2YIOW8gOWFsw0KZGVmaW5lKCdBUElfVVBEQVRFQ1JFRElUJywgMSk7CQkvL25vdGUg5pu05paw55So5oi356ev5YiGIOW8gOWFsw0KZGVmaW5lKCdBUElfR0VUQ1JFRElUU0VUVElOR1MnLCAxKTsJLy9ub3RlIOWQkSBVQ2VudGVyIOaPkOS+m+enr+WIhuiuvue9riDlvIDlhbMNCmRlZmluZSgnQVBJX0dFVENSRURJVCcsIDEpOwkJLy9ub3RlIOiOt+WPlueUqOaIt+eahOafkOmhueenr+WIhiDlvIDlhbMNCmRlZmluZSgnQVBJX1VQREFURUNSRURJVFNFVFRJTkdTJywgMSk7CS8vbm90ZSDmm7TmlrDlupTnlKjnp6/liIborr7nva4g5byA5YWzDQoNCmRlZmluZSgnQVBJX1JFVFVSTl9TVUNDRUVEJywgJzEnKTsNCmRlZmluZSgnQVBJX1JFVFVSTl9GQUlMRUQnLCAnLTEnKTsNCmRlZmluZSgnQVBJX1JFVFVSTl9GT1JCSURERU4nLCAnLTInKTsNCg0KZGVmaW5lKCdVQ19DTElFTlRfUk9PVCcsIERFREVST09ULicvdWNfY2xpZW50Jyk7DQoNCi8vbm90ZSDmma7pgJrnmoQgaHR0cCDpgJrnn6XmlrnlvI8NCmlmKCFkZWZpbmVkKCdJTl9VQycpKQ0Kew0KDQoJZXJyb3JfcmVwb3J0aW5nKDApOw0KCXNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsNCglkZWZpbmVkKCdNQUdJQ19RVU9URVNfR1BDJykgfHwgZGVmaW5lKCdNQUdJQ19RVU9URVNfR1BDJywgZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSk7DQoNCgkkX0RDQUNIRSA9ICRnZXQgPSAkcG9zdCA9IGFycmF5KCk7DQoNCgkkY29kZSA9IEAkX0dFVFsnY29kZSddOw0KDQoJcGFyc2Vfc3RyKF9hdXRoY29kZSgkY29kZSwgJ0RFQ09ERScsIFVDX0tFWSksICRnZXQpOw0KCQ0KCWlmKE1BR0lDX1FVT1RFU19HUEMpDQoJew0KCQkkZ2V0ID0gX3N0cmlwc2xhc2hlcygkZ2V0KTsNCgl9DQoNCgkkdGltZXN0YW1wID0gdGltZSgpOw0KCWlmKCR0aW1lc3RhbXAgLSAkZ2V0Wyd0aW1lJ10gPiAzNjAwKSB7DQoJCWV4aXQoJ0F1dGhyYWNhdGlvbiBoYXMgZXhwaXJpZWQnKTsNCgl9DQoJaWYoZW1wdHkoJGdldCkpIHsNCgkJZXhpdCgnSW52YWxpZCBSZXF1ZXN0Jyk7DQoJfQ0KCSRhY3Rpb24gPSAkZ2V0WydhY3Rpb24nXTsNCg0KCXJlcXVpcmVfb25jZSBVQ19DTElFTlRfUk9PVC4nL2xpYi94bWwuY2xhc3MucGhwJzsNCgkkcG9zdCA9IHhtbF91bnNlcmlhbGl6ZShmaWxlX2dldF9jb250ZW50cygncGhwOi8vaW5wdXQnKSk7DQoNCglpZihpbl9hcnJheSgkZ2V0WydhY3Rpb24nXSwgYXJyYXkoJ3Rlc3QnLCAnREVMRVRFIHVzZXInLCAncmVuYW1ldXNlcicsICdnZXR0YWcnLCAnc3lubG9naW4nLCAnc3lubG9nb3V0JywgJ3VwZGF0ZXB3JywgJ3VwZGF0ZWJhZHdvcmRzJywgJ3VwZGF0ZWhvc3RzJywgJ3VwZGF0ZWFwcHMnLCAndXBkYXRlY2xpZW50JywgJ3VwZGF0ZWNyZWRpdCcsICdnZXRjcmVkaXRzZXR0aW5ncycsICd1cGRhdGVjcmVkaXRzZXR0aW5ncycpKSkNCgl7DQoJCSR1Y19ub3RlID0gbmV3IHVjX25vdGUoKTsNCgkJZXhpdCgkdWNfbm90ZS0+JGdldFsnYWN0aW9uJ10oJGdldCwgJHBvc3QpKTsNCgl9ZWxzZXsNCgkJZXhpdChBUElfUkVUVVJOX0ZBSUxFRCk7DQoJfQ0KDQovL25vdGUgaW5jbHVkZSDpgJrnn6XmlrnlvI8NCn0gZWxzZSB7DQoNCglleGl0KCdJbnZhbGlkIFJlcXVlc3QnKTsNCn0NCg0KY2xhc3MgdWNfbm90ZQ0Kew0KDQoJdmFyICRkYmNvbmZpZyA9ICcnOw0KCXZhciAkZGIgPSAnJzsNCgl2YXIgJGFwcGRpciA9ICcnOw0KCXZhciAkdGFibGVwcmUgPSAnZGVkZV8nOw0KCQ0KCWZ1bmN0aW9uIF9zZXJpYWxpemUoJGFyciwgJGh0bWxvbiA9IDApDQoJew0KCQlpZighZnVuY3Rpb25fZXhpc3RzKCd4bWxfc2VyaWFsaXplJykpDQoJCXsNCgkJCWluY2x1ZGVfb25jZSBVQ19DTElFTlRfUk9PVC4nL2xpYi94bWwuY2xhc3MucGhwJzsNCgkJfQ0KCQlyZXR1cm4geG1sX3NlcmlhbGl6ZSgkYXJyLCAkaHRtbG9uKTsNCgl9DQoNCglmdW5jdGlvbiB1Y19ub3RlKCkNCgl7DQoJCSR0aGlzLT5hcHBkaXIgPSBERURFUk9PVDsNCgkJJHRoaXMtPmRiY29uZmlnID0gREVERUlOQy4nL2NvbW1vbi5pbmMucGhwJzsNCgkJJHRoaXMtPmRiID0gJEdMT0JBTFNbJ2RzcWwnXTsNCgkJJHRoaXMtPnRhYmxlcHJlID0gJEdMT0JBTFNbJ2NmZ19kYnByZWZpeCddOw0KCX0NCgkNCglmdW5jdGlvbiBnZXRfdWlkcygkdWlkcykNCgl7DQoJCWluY2x1ZGUgVUNfQ0xJRU5UX1JPT1QuJy9jbGllbnQucGhwJzsNCgkJDQoJCSRtZW1iZXJzID0gZXhwbG9kZSgiLCIsICR1aWRzKTsNCgkJZW1wdHkoJG1lbWJlcnMpICYmIGV4aXQoQVBJX1JFVFVSTl9GT1JCSURERU4pOw0KCQkNCgkJJG1lbWJlcnNfdXNlcm5hbWUgPSBhcnJheSgpOw0KCQkNCgkJZm9yZWFjaCgkbWVtYmVycyBhcyAkaWQpDQoJCXsNCgkJCSRyb3cgPSB1Y19nZXRfdXNlcigkaWQsMSk7DQoJCQkkbWVtYmVyc191c2VybmFtZVtdID0gICRyb3dbMV07CQkNCgkJfQ0KCQkNCgkJJGNvbW1hX3RlbXBzID0gaW1wbG9kZSgiLCIsICRtZW1iZXJzX3VzZXJuYW1lKTsNCgkJDQoJCWVtcHR5KCRjb21tYV90ZW1wcykgJiYgZXhpdChBUElfUkVUVVJOX0ZPUkJJRERFTik7DQoJCQ0KCQkkY29tbWFfdWlkcyA9IGFycmF5KCk7DQoJCQ0KCQkkcm93ID0gJHRoaXMtPmRiLT5TZXRRdWVyeSgiU0VMRUNUIG1pZCBGUk9NIGAjQF9fbWVtYmVyYCBXSEVSRSB1c2VyaWQgSU4gKCRjb21tYV90ZW1wcykiKTsNCgkJJHRoaXMtPmRiLT5FeGVjdXRlKCk7DQoJCXdoaWxlKCRyb3cgPSAkdGhpcy0+ZGItPkdldEFycmF5KCkpDQoJCXsNCgkJCSRjb21tYV91aWRzW10gPSAkcm93WydtaWQnXTsNCgkJfQ0KCQkNCgkJZW1wdHkoJGNvbW1hX3VpZHMpICYmIGV4aXQoQVBJX1JFVFVSTl9GT1JCSURERU4pOw0KCQkNCgkJcmV0dXJuIGltcGxvZGUoIiwiLCAkY29tbWFfdWlkcyk7DQoJfQ0KDQoJZnVuY3Rpb24gdGVzdCgkZ2V0LCAkcG9zdCkNCgl7DQoJCXJldHVybiBBUElfUkVUVVJOX1NVQ0NFRUQ7DQoJfQ0KDQoJZnVuY3Rpb24gZGVsZXRldXNlcigkZ2V0LCAkcG9zdCkNCgl7DQoJCSR1aWRzID0gJHRoaXMtPmdldF91aWRzKCRnZXRbJ2lkcyddKTsNCgkJIUFQSV9ERUxFVEVVU0VSICYmIGV4aXQoQVBJX1JFVFVSTl9GT1JCSURERU4pOw0KDQoJCS8vbm90ZSDnlKjmiLfliKDpmaQgQVBJIOaOpeWPow0KCQkkcnMgPSAkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkyKCJERUxFVEUgRlJPTSBgI0BfX21lbWJlcmAgV0hFUkUgbWlkIElOICgkdWlkcykgQU5EIG1hdHQ8PjEwIGxpbWl0IDEiKTsNCgkJaWYoJHJzID4gMCkNCgkJew0KCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJERUxFVEUgRlJPTSBgI0BfX21lbWJlcl90amAgV0hFUkUgbWlkIElOICgkdWlkcykgbGltaXQgMSIpOw0KCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJERUxFVEUgRlJPTSBgI0BfX21lbWJlcl9zcGFjZWAgV0hFUkUgbWlkIElOICgkdWlkcykgbGltaXQgMSIpOw0KCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJERUxFVEUgRlJPTSBgI0BfX21lbWJlcl9jb21wYW55YCBXSEVSRSBtaWQgSU4gKCR1aWRzKSBsaW1pdCAxIik7DQoJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIkRFTEVURSBGUk9NIGAjQF9fbWVtYmVyX3BlcnNvbmAgV0hFUkUgbWlkIElOICgkdWlkcykgbGltaXQgMSIpOw0KCQkNCgkJCS8v5Yig6Zmk55So5oi355u45YWz5pWw5o2uDQoJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIkRFTEVURSBGUk9NIGAjQF9fbWVtYmVyX3N0b3dgIFdIRVJFIG1pZCBJTiAoJHVpZHMpICIpOw0KCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJERUxFVEUgRlJPTSBgI0BfX21lbWJlcl9mbGlua2AgV0hFUkUgbWlkIElOICgkdWlkcykgIik7DQoJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIkRFTEVURSBGUk9NIGAjQF9fbWVtYmVyX2d1ZXN0Ym9va2AgV0hFUkUgbWlkIElOICgkdWlkcykgIik7DQoJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIkRFTEVURSBGUk9NIGAjQF9fbWVtYmVyX29wZXJhdGlvbmAgV0hFUkUgbWlkIElOICgkdWlkcykgIik7DQoJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIkRFTEVURSBGUk9NIGAjQF9fbWVtYmVyX3Btc2AgV0hFUkUgdG9pZCBJTiAoJHVpZHMpIE9SIGZyb21pZCBJTiAoJHVpZHMpICIpOw0KCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJERUxFVEUgRlJPTSBgI0BfX21lbWJlcl9mcmllbmRzYCBXSEVSRSBtaWQgSU4gKCR1aWRzKSBPUiBmaWQgSU4gKCR1aWRzKSAiKTsNCgkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiREVMRVRFIEZST00gYCNAX19tZW1iZXJfdmhpc3RvcnlgIFdIRVJFIG1pZCBJTiAoJHVpZHMpIE9SIHZpZCBJTiAoJHVpZHMpICIpOw0KCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJERUxFVEUgRlJPTSBgI0BfX2ZlZWRiYWNrYCBXSEVSRSBtaWQgSU4gKCR1aWRzKSAiKTsNCgkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fYXJjaGl2ZXNgIFNFVCBtaWQ9JzAnIFdIRVJFIG1pZCBJTiAoJHVpZHMpIik7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlleGl0KEFQSV9SRVRVUk5fRk9SQklEREVOKTsNCgkJfQ0KDQoJCXJldHVybiBBUElfUkVUVVJOX1NVQ0NFRUQ7DQoJfQ0KDQoJZnVuY3Rpb24gcmVuYW1ldXNlcigkZ2V0LCAkcG9zdCkNCgl7DQoJCSR1aWRzID0gJHRoaXMtPmdldF91aWRzKCRnZXRbJ2lkcyddKTsNCgkJDQoJCQ0KCQkkdXNlcm5hbWVvbGQgPSAkZ2V0WydvbGR1c2VybmFtZSddOw0KCQkkdXNlcm5hbWVuZXcgPSAkZ2V0WyduZXd1c2VybmFtZSddOw0KCQlpZighQVBJX1JFTkFNRVVTRVIpDQoJCXsNCgkJCXJldHVybiBBUElfUkVUVVJOX0ZPUkJJRERFTjsNCgkJfQ0KDQoJCS8vbm90ZSDojrflj5bmoIfnrb4gQVBJIOaOpeWPow0KCQkkcnMgPSAkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkyKCJVUERBVEUgYCNAX19tZW1iZXJgIFNFVCB1c2VyaWQ9JyR1c2VybmFtZW5ldycgV0hFUkUgdXNlcmlkPSckdXNlcm5hbWVuZXcnIEFORCBtYXR0PD4xMCBsaW1pdCAxIik7DQoJCWlmKCRycyA+IDApDQoJCXsNCgkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fYXJjaGl2ZXNgIFNFVCB3cml0ZXI9JyR1c2VybmFtZW5ldycgV0hFUkUgd3JpdGVyPSckdXNlcm5hbWVuZXcnIik7DQoJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIlVQREFURSBgI0BfX21lbWJlcl9wbXNgIFNFVCBmbG9naW5pZD1SRVBMQUNFKGZsb2dpbmlkLCAnXHQkdXNlcm5hbWVvbGQnLCAnXHQkdXNlcm5hbWVuZXcnKSx0b2xvZ2luaWQ9UkVQTEFDRSh0b2xvZ2luaWQsICdcdCR1c2VybmFtZW9sZCcsICdcdCR1c2VybmFtZW5ldycpIik7DQoJCQkNCgkJCQ0KCQkJJHJvdyA9ICR0aGlzLT5kYi0+R2V0T25lKCJTSE9XIFRBQkxFIFNUQVRVUyIpOw0KCQkJJGRiX3RhYmxlcyA9ICRyb3dbJ05hbWUnXTsgdW5zZXQoJHJvdyk7DQoJCQkNCgkJCWlmKGluX2FycmF5KCR0aGlzLT50YWJsZXByZS4nZ3Vlc3Rib29rJywkZGJfdGFibGVzKSkNCgkJCXsNCgkJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIlVQREFURSBgI0BfX2d1ZXN0Ym9va2AgU0VUIHVuYW1lPSckdXNlcm5hbWVuZXcnIFdIRVJFIHVuYW1lPSckdXNlcm5hbWVuZXcnIik7DQoJCQl9DQoJCQkNCgkJCWlmKGluX2FycmF5KCR0aGlzLT50YWJsZXByZS4nc3RvcnlfYm9va3MnLCRkYl90YWJsZXMpKQ0KCQkJew0KCQkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fc3RvcnlfYm9va3NgIFNFVCBhdXRob3I9JyR1c2VybmFtZW5ldycgV0hFUkUgYXV0aG9yPSckdXNlcm5hbWVuZXcnIik7DQoJCQl9DQoJCQkNCgkJCWlmKGluX2FycmF5KCR0aGlzLT50YWJsZXByZS4nZ3JvdXBzJywkZGJfdGFibGVzKSkNCgkJCXsNCgkJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIlVQREFURSBgI0BfX2dyb3Vwc2AgU0VUIGNyZWF0ZXI9JyR1c2VybmFtZW5ldycgV0hFUkUgY3JlYXRlcj0nJHVzZXJuYW1lbmV3JyIpOw0KCQkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fZ3JvdXBfdGhyZWFkc2AgU0VUIGF1dGhvcj0nJHVzZXJuYW1lbmV3JyBXSEVSRSBhdXRob3I9JyR1c2VybmFtZW5ldyciKTsNCgkJCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIlVQREFURSBgI0BfX2dyb3VwX3VzZXJgIFNFVCB1c2VybmFtZT0nJHVzZXJuYW1lbmV3JyBXSEVSRSB1c2VybmFtZT0nJHVzZXJuYW1lbmV3JyIpOw0KCQkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fZ3JvdXBfcG9zdHNgIFNFVCBhdXRob3I9JyR1c2VybmFtZW5ldycgV0hFUkUgYXV0aG9yPSckdXNlcm5hbWVuZXcnIik7DQoJCQkJJHRoaXMtPmRiLT5FeGVjdXRlTm9uZVF1ZXJ5KCJVUERBVEUgYCNAX19ncm91cF9ndWVzdGJvb2tgIFNFVCB1bmFtZT0nJHVzZXJuYW1lbmV3JyBXSEVSRSB1bmFtZT0nJHVzZXJuYW1lbmV3JyIpOw0KCQkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fZ3JvdXBzYCBTRVQgaXNtYXN0ZXI9UkVQTEFDRShpc21hc3RlciwgJ1x0JHVzZXJuYW1lb2xkJywgJ1x0JHVzZXJuYW1lbmV3JykiKTsNCgkJCX0NCgkJCQ0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fU1VDQ0VFRDsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCXJldHVybiBBUElfUkVUVVJOX0ZPUkJJRERFTjsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGdldHRhZygkZ2V0LCAkcG9zdCkNCgl7DQoJCSRuYW1lID0gJGdldFsnaWQnXTsNCgkJaWYoIUFQSV9HRVRUQUcpDQoJCXsNCgkJCXJldHVybiBBUElfUkVUVVJOX0ZPUkJJRERFTjsNCgkJfQ0KDQoJCS8vbm90ZSDojrflj5bmoIfnrb4gQVBJIOaOpeWPow0KDQoJCSRuYW1lID0gdHJpbSgkbmFtZSk7DQoJCWlmKGVtcHR5KCRuYW1lKSB8fCAhcHJlZ19tYXRjaCgnL14oW1x4N2YtXHhmZl8tXXxcd3xccykrJC8nLCAkbmFtZSkgfHwgc3RybGVuKCRuYW1lKSA+IDIwKQ0KCQl7DQoJCQlyZXR1cm4gQVBJX1JFVFVSTl9GQUlMRUQ7DQoJCX0NCg0KCQkkcm93ID0gJHRoaXMtPmRiLT5HZXRPbmUoIlNFTEVDVCBgdG90YWxgLGBpZGAgRlJPTSBgI0BfX3RhZ2luZGV4YCBXSEVSRSBgdGFnYD0nJG5hbWUnIik7DQoJCWlmKCFpc19hcnJheSgkcm93KSkNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRkFJTEVEOw0KCQl9DQoJCQ0KCQkkdHBwID0gJHJvd1sndG90YWwnXSA+IDEwID8gMTAgOiAkcm93Wyd0b3RhbCddOwkJDQoJCQ0KCQkkaWRzID0gYXJyYXkoKTsNCgkJDQoJCSR0aGlzLT5kYi0+U2V0UXVlcnkoIlNFTEVDVCBhaWQgRlJPTSBgI0BfX3RhZ2xpc3RgIFdIRVJFIGB0aWRgPSckcm93W2lkXScgQU5EIGFyY3Jhbms+LTEiKTsNCgkJJHRoaXMtPmRiLT5FeGVjdXRlKCk7DQoJCXdoaWxlKCRyb3cgPSAkdGhpcy0+ZGItPkdldEFycmF5KCkpDQoJCXsNCgkJCSRpZHNbXSA9ICRyb3dbJ2FpZCddOwkJCQ0KCQl9DQoJCQ0KCQlpZihlbXB0eSgkaWRzKSkNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRkFJTEVEOw0KCQl9DQoJCQ0KCQkkYWlkcyA9IGltcGxvZGUoIiwiLCAkaWRzKTsNCgkJDQoJCWluY2x1ZGVfb25jZSBERURFSU5DLicvY2hhbm5lbHVuaXQuZnVuYy5waHAnOw0KCQkNCgkJJGFyY2hpdmVzX2xpc3QgPSBhcnJheSgpOwkJDQoJCSR0aGlzLT5kYi0+U2V0UXVlcnkoIlNFTEVDVCBhcmMuKix0cC50eXBlZGlyLHRwLnR5cGVuYW1lLHRwLmlzZGVmYXVsdCx0cC5kZWZhdWx0bmFtZSx0cC5uYW1lcnVsZSx0cC5uYW1lcnVsZTIsdHAuaXNwYXJ0LHRwLm1vcmVzaXRlLHRwLnNpdGV1cmwsdHAuc2l0ZXBhdGggDQoJRlJPTSBgI0BfX2FyY2hpdmVzYCBhcmMgTEVGVCBKT0lOIGAjQF9fYXJjdHlwZWAgdHAgT04gYXJjLnR5cGVpZD10cC5pZCBXSEVSRSBhcmMuaWQgSU4oJGFpZHMpIE9SREVSIEJZIGlkIERFU0MgTElNSVQgJHRwcCIpOw0KCQkkdGhpcy0+ZGItPkV4ZWN1dGUoKTsNCgkJd2hpbGUoJHJvdyA9ICR0aGlzLT5kYi0+R2V0QXJyYXkoKSkNCgkJew0KCQkJJHJvd1sndXJsJ10gPSBHZXRGaWxlVXJsKCRyb3dbJ2lkJ10sJHJvd1sndHlwZWlkJ10sJHJvd1snc2VuZGRhdGUnXSwkcm93Wyd0aXRsZSddLCRyb3dbJ2lzbWFrZSddLCRyb3dbJ2FyY3JhbmsnXSwkcm93WyduYW1lcnVsZSddLCRyb3dbJ3R5cGVkaXInXSwkcm93Wydtb25leSddLCRyb3dbJ2ZpbGVuYW1lJ10sJHJvd1snbW9yZXNpdGUnXSwkcm93WydzaXRldXJsJ10sJHJvd1snc2l0ZXBhdGgnXSk7DQoNCgkJCSRyb3dbJ3VybCddID0gIWVyZWcoJ2h0dHA6Jywkcm93Wyd1cmwnXSkgPyAkR0xPQkFMU1snY2ZnX2Jhc2Vob3N0J10uJHJvd1sndXJsJ10gOiAkcm93Wyd1cmwnXTsNCgkJCQ0KCQkJaWYoIWVtcHR5KCRyb3dbJ3VybCddKSkNCgkJCXsNCgkJCQkkYXJjaGl2ZXNfbGlzdFtdID0gYXJyYXkoJ3RpdGxlJyA9PiAkcm93Wyd0aXRsZSddLCd3cml0ZXInID0+ICRyb3dbJ3dyaXRlciddLCdwdWJkYXRlJyA9PiAkcm93WydwdWJkYXRlJ10sJ3VybCcgPT4gJHJvd1sndXJsJ10pOw0KCQkJfQ0KCQl9DQoNCgkJJHJldHVybiA9IGFycmF5KCRuYW1lLCAkYXJjaGl2ZXNfbGlzdCk7DQoJCXJldHVybiAkdGhpcy0+X3NlcmlhbGl6ZSgkcmV0dXJuLCAxKTsNCgl9DQoNCglmdW5jdGlvbiBzeW5sb2dpbigkZ2V0LCAkcG9zdCkNCgl7DQoJCSR1aWQgPSAkZ2V0Wyd1aWQnXTsNCgkJJHVzZXJuYW1lID0gJGdldFsndXNlcm5hbWUnXTsNCgkJaWYoIUFQSV9TWU5MT0dJTikNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRk9SQklEREVOOw0KCQl9DQoNCgkJLy9ub3RlIOWQjOatpeeZu+W9lSBBUEkg5o6l5Y+jDQoJCWhlYWRlcignUDNQOiBDUD0iQ1VSYSBBRE1hIERFVmEgUFNBbyBQU0RvIE9VUiBCVVMgVU5JIFBVUiBJTlQgREVNIFNUQSBQUkUgQ09NIE5BViBPVEMgTk9JIERTUCBDT1IiJyk7DQoJCSRyZXN1bHQgPSAkdGhpcy0+ZGItPkdldE9uZSgiU0VMRUNUIG1pZCxwd2QgRlJPTSBgI0BfX21lbWJlcmAgV0hFUkUgYHVzZXJpZGAgbGlrZSAnJHVzZXJuYW1lJyBBTkQgbWF0dDw+MTAiKTsNCgkJaWYoaXNfYXJyYXkoJHJlc3VsdCkpDQoJCXsNCgkJCWluY2x1ZGVfb25jZSBERURFSU5DLicvbWVtYmVybG9naW4uY2xhc3MucGhwJzsNCgkJCSRjZmdfbWwgPSBuZXcgTWVtYmVyTG9naW4oODY0MDApOw0KCQkJJGNmZ19tbC0+UHV0TG9naW5JbmZvKCRyZXN1bHRbJ21pZCddKTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIHN5bmxvZ291dCgkZ2V0LCAkcG9zdCkNCgl7DQoJCWlmKCFBUElfU1lOTE9HT1VUKQ0KCQl7DQoJCQlyZXR1cm4gQVBJX1JFVFVSTl9GT1JCSURERU47DQoJCX0NCg0KCQkvL25vdGUg5ZCM5q2l55m75Ye6IEFQSSDmjqXlj6MNCgkJaGVhZGVyKCdQM1A6IENQPSJDVVJhIEFETWEgREVWYSBQU0FvIFBTRG8gT1VSIEJVUyBVTkkgUFVSIElOVCBERU0gU1RBIFBSRSBDT00gTkFWIE9UQyBOT0kgRFNQIENPUiInKTsNCgkJaW5jbHVkZV9vbmNlIERFREVJTkMuJy9tZW1iZXJsb2dpbi5jbGFzcy5waHAnOw0KCQkkY2ZnX21sID0gbmV3IE1lbWJlckxvZ2luKCk7DQoJCSRjZmdfbWwtPkV4aXRDb29raWUoKTsNCgl9DQoNCglmdW5jdGlvbiB1cGRhdGVwdygkZ2V0LCAkcG9zdCkNCgl7DQoJCWlmKCFBUElfVVBEQVRFUFcpDQoJCXsNCgkJCXJldHVybiBBUElfUkVUVVJOX0ZPUkJJRERFTjsNCgkJfQ0KCQkkdXNlcm5hbWUgPSAkZ2V0Wyd1c2VybmFtZSddOw0KCQkkcGFzc3dvcmQgPSAkZ2V0WydwYXNzd29yZCddOw0KCQkNCgkJLy9ub3RlIOS/ruaUueWvhueggSBBUEkg5o6l5Y+jDQoJCSRuZXdwdyA9IG1kNSgkcGFzc3dvcmQpOw0KCQkkdGhpcy0+ZGItPkV4ZWN1dGVOb25lUXVlcnkoIlVQREFURSBgI0BfX21lbWJlcmAgU0VUIGBwd2RgPSckbmV3cHcnIFdIRVJFIGB1c2VyaWRgPSckdXNlcm5hbWUnIik7DQoJCXJldHVybiBBUElfUkVUVVJOX1NVQ0NFRUQ7DQoJfQ0KDQoJZnVuY3Rpb24gdXBkYXRlYmFkd29yZHMoJGdldCwgJHBvc3QpDQoJew0KCQlpZighQVBJX1VQREFURUJBRFdPUkRTKQ0KCQl7DQoJCQlyZXR1cm4gQVBJX1JFVFVSTl9GT1JCSURERU47DQoJCX0NCg0KCQkkcm93ID0gJHRoaXMtPmRiLT5HZXRPbmUoIlNFTEVDVCBgdmFsdWVgIEZST00gYCNAX19zeXNjb25maWdgIFdIRVJFIGB2YXJuYW1lYD0nY2ZnX3JlcGxhY2VzdHInIik7DQoJCQ0KCQkkYmFkd29yZHMgPSBpc3NldCgkcm93Wyd2YWx1ZSddKSA/IGV4cGxvZGUoIiwiLCAkcm93Wyd2YWx1ZSddKSA6IGFycmF5KCk7DQoJCQ0KCQlpZihpc19hcnJheSgkcG9zdCkpDQoJCXsNCgkJCWZvcmVhY2goJHBvc3QgYXMgJGsgPT4gJHYpDQoJCQl7DQoJCQkJaWYoaW5fYXJyYXkoJHZbJ2ZpbmQnXSwkYmFkd29yZHMpKSBjb250aW51ZTsNCgkJCQkkYmFkd29yZHNbXSA9ICR2WydmaW5kJ107DQoJCQl9DQoJCX0NCg0KCQkkYmFkd29yZHNfY29tbWEgPSAhZW1wdHkoJGJhZHdvcmRzKSA/IGltcGxvZGUoIiwiLCAkYmFkd29yZHMpIDogJyc7DQoJCQ0KDQoJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fc3lzY29uZmlnYCBTRVQgYHZhbHVlYD0nJGJhZHdvcmRzX2NvbW1hJyBXSEVSRSBgdmFybmFtZWA9J2NmZ19yZXBsYWNlc3RyJyIpOw0KCQkNCgkJJGNhY2hlZmlsZSA9IERFREVEQVRBLicvY29uZmlnLmNhY2hlLmluYy5waHAnOw0KCQkNCgkJaWYoIWlzX3dyaXRlYWJsZSgkY2FjaGVmaWxlKSkNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRk9SQklEREVOOw0KCQl9DQoNCgkJJGZwID0gZm9wZW4oJGNhY2hlZmlsZSwgJ3cnKTsNCgkJJHRoaXMtPmRiLT5TZXRRdWVyeSgiU0VMRUNUIGB2YXJuYW1lYCxgdHlwZWAsYHZhbHVlYCxgZ3JvdXBpZGAgRnJvbSBgI0BfX3N5c2NvbmZpZ2Agb3JkZXIgYnkgYWlkIGFzYyAiKTsNCgkJJHRoaXMtPmRiLT5FeGVjdXRlKCk7DQoJCSRzID0gJzw/cGhwJy4iXHJcbiI7DQoJCXdoaWxlKCRyb3cgPSAkdGhpcy0+ZGItPkdldEFycmF5KCkpDQoJCXsNCgkJCSRzIC49ICckJy4kcm93Wyd2YXJuYW1lJ10uJyA9ICcuKCRyb3dbJ3R5cGUnXT09J251bWJlcicgPyAkcm93Wyd2YWx1ZSddIDogIiciLnN0cl9yZXBsYWNlKCInIiwnJywkcm93Wyd2YWx1ZSddKS4iJyIpLiI7XHJcbiI7DQoJCX0NCgkJJHMgLj0gJz8+JzsNCgkJZndyaXRlKCRmcCwgJHMpOw0KCQlmY2xvc2UoJGZwKTsNCgkJcmV0dXJuIEFQSV9SRVRVUk5fU1VDQ0VFRDsNCgl9DQoNCglmdW5jdGlvbiB1cGRhdGVob3N0cygkZ2V0LCAkcG9zdCkNCgl7DQoJCWlmKCFBUElfVVBEQVRFSE9TVFMpDQoJCXsNCgkJCXJldHVybiBBUElfUkVUVVJOX0ZPUkJJRERFTjsNCgkJfQ0KCQkvL25vdGUg55CG5pawSE9TVOe8k+WtmCBBUEkg5o6l5Y+jDQoJCSRjYWNoZWZpbGUgPSBVQ19DTElFTlRfUk9PVC4nL2RhdGEvY2FjaGUvaG9zdHMucGhwJzsNCgkJJGZwID0gZm9wZW4oJGNhY2hlZmlsZSwgJ3cnKTsNCgkJJHMgPSAiPD9waHBcclxuIjsNCgkJJHMgLj0gJyRfQ0FDSEVbXCdob3N0c1wnXSA9ICcudmFyX2V4cG9ydCgkcG9zdCwgVFJVRSkuIjtcclxuIjsNCgkJZndyaXRlKCRmcCwgJHMpOw0KCQlmY2xvc2UoJGZwKTsNCgkJcmV0dXJuIEFQSV9SRVRVUk5fU1VDQ0VFRDsNCgl9DQoNCglmdW5jdGlvbiB1cGRhdGVhcHBzKCRnZXQsICRwb3N0KQ0KCXsNCgkJaWYoIUFQSV9VUERBVEVBUFBTKQ0KCQl7DQoJCQlyZXR1cm4gQVBJX1JFVFVSTl9GT1JCSURERU47DQoJCX0NCgkJJFVDX0FQSSA9ICRwb3N0WydVQ19BUEknXTsNCg0KCQkvL25vdGUg5YaZIGFwcCDnvJPlrZjmlofku7YNCgkJJGNhY2hlZmlsZSA9IFVDX0NMSUVOVF9ST09ULicvZGF0YS9jYWNoZS9hcHBzLnBocCc7DQoJCSRmcCA9IGZvcGVuKCRjYWNoZWZpbGUsICd3Jyk7DQoJCSRzID0gIjw/cGhwXHJcbiI7DQoJCSRzIC49ICckX0NBQ0hFW1wnYXBwc1wnXSA9ICcudmFyX2V4cG9ydCgkcG9zdCwgVFJVRSkuIjtcclxuIjsNCgkJZndyaXRlKCRmcCwgJHMpOw0KCQlmY2xvc2UoJGZwKTsNCg0KCQlyZXR1cm4gQVBJX1JFVFVSTl9TVUNDRUVEOw0KCX0NCg0KCWZ1bmN0aW9uIHVwZGF0ZWNsaWVudCgkZ2V0LCAkcG9zdCkNCgl7DQoJCWlmKCFBUElfVVBEQVRFQ0xJRU5UKQ0KCQl7DQoJCQlyZXR1cm4gQVBJX1JFVFVSTl9GT1JCSURERU47DQoJCX0NCgkJJGNhY2hlZmlsZSA9IFVDX0NMSUVOVF9ST09ULicvZGF0YS9jYWNoZS9zZXR0aW5ncy5waHAnOw0KCQkkZnAgPSBmb3BlbigkY2FjaGVmaWxlLCAndycpOw0KCQkkcyA9ICc8P3BocCcuIlxyXG4iOw0KCQkkcyAuPSAnJF9DQUNIRVtcJ3NldHRpbmdzXCddID0gJy52YXJfZXhwb3J0KCRwb3N0LCBUUlVFKS4iO1xyXG4iOw0KCQlmd3JpdGUoJGZwLCAkcyk7DQoJCWZjbG9zZSgkZnApOw0KCQkNCgkJcmV0dXJuIEFQSV9SRVRVUk5fU1VDQ0VFRDsNCgl9DQoNCglmdW5jdGlvbiB1cGRhdGVjcmVkaXQoJGdldCwgJHBvc3QpDQoJew0KCQlpZighQVBJX1VQREFURUNSRURJVCkNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRk9SQklEREVOOw0KCQl9DQoJCS8qDQoJCW5vdGUg5pu05paw56ev5YiGDQoJCWRpc2N1eiDpu5jorqQ45Liq56ev5YiG6KGo6L6+LOiAjERlZGVDTVPlj6rmnInkuIDkuKrnp6/liIblrZfmrrUsc2NvcmVzLuazqOaEj21vbmV55LiN6IO95YGa56ev5YiG5p2l55SoLg0KCQlleHRjcmVkaXRzMSAgZXh0Y3JlZGl0czIgIGV4dGNyZWRpdHMzICBleHRjcmVkaXRzNCAgZXh0Y3JlZGl0czUgIGV4dGNyZWRpdHM2ICBleHRjcmVkaXRzNyAgZXh0Y3JlZGl0czgNCgkJKi8NCgkJCQkNCgkJJGNyZWRpdCA9IGludHZhbCgkZ2V0WydjcmVkaXQnXSk7DQoJCSRmaWxlZHMgPSAkY3JlZGl0ID4gMSA/ICdtb25leScgOiAnc2NvcmVzJzsNCgkJJGFtb3VudCA9ICRnZXRbJ2Ftb3VudCddOw0KCQkkdWlkID0gJGdldFsndWlkJ107DQoJCWluY2x1ZGUgVUNfQ0xJRU5UX1JPT1QuJy9jbGllbnQucGhwJzsNCgkJJGRhdGEgPSB1Y19nZXRfdXNlcigkdWlkLDEpOw0KCQkkdXNlcm5hbWUgPSAkZGF0YVsxXTsNCgkJDQoJCSRyZXN1bHQgPSAkdGhpcy0+ZGItPkdldE9uZSgiU0VMRUNUIG1pZCBGUk9NIGAjQF9fbWVtYmVyYCBXSEVSRSB1c2VyaWQ9JyR1c2VybmFtZSciKTsNCgkJaWYoaXNfYXJyYXkoJHJlc3VsdCkpDQoJCXsNCgkJCSR0aGlzLT5kYi0+RXhlY3V0ZU5vbmVRdWVyeSgiVVBEQVRFIGAjQF9fbWVtYmVyYCBTRVQgYCRmaWxlZHNgPWAkZmlsZWRzYCsnJGFtb3VudCcgV0hFUkUgbWlkPSckcmVzdWx0W21pZF0nIik7DQoJCX0NCgkJDQoJCXJldHVybiBBUElfUkVUVVJOX1NVQ0NFRUQ7DQoJfQ0KDQoJZnVuY3Rpb24gZ2V0Y3JlZGl0KCRnZXQsICRwb3N0KQ0KCXsNCgkJaWYoIUFQSV9HRVRDUkVESVQpDQoJCXsNCgkJCXJldHVybiBBUElfUkVUVVJOX0ZPUkJJRERFTjsNCgkJfQ0KCQkNCgkJaW5jbHVkZSBVQ19DTElFTlRfUk9PVC4nL2NsaWVudC5waHAnOw0KCQkkZGF0YSA9IHVjX2dldF91c2VyKCR1aWQsMSk7DQoJCSR1c2VybmFtZSA9ICRkYXRhWzFdOw0KCQkkY3JlZGl0ID0gaW50dmFsKCRnZXRbJ2NyZWRpdCddKTsNCgkJJGZpbGVkcyA9ICRjcmVkaXQgPiAxID8gJ21vbmV5JyA6ICdzY29yZXMnOw0KCQkkcmVzdWx0ID0gJHRoaXMtPmRiLT5HZXRPbmUoIlNFTEVDVCBgJGZpbGVkc2AgQVMgY3JlZGl0IEZST00gYCNAX19tZW1iZXJgIFdIRVJFIHVzZXJpZD0nJHVzZXJuYW1lJyIpOw0KCQkNCgkJZWNobyBpc19hcnJheSgkcmVzdWx0KSA/ICRyZXN1bHRbJ2NyZWRpdCddIDogMDsJCQ0KCX0NCg0KCWZ1bmN0aW9uIGdldGNyZWRpdHNldHRpbmdzKCRnZXQsICRwb3N0KQ0KCXsNCgkJaWYoIUFQSV9HRVRDUkVESVRTRVRUSU5HUykNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRk9SQklEREVOOw0KCQl9DQoJCQ0KCQkvL+i/memHjOaUr+aMgURlZGVDTVPnp6/liIYs6YeR5biB6K6+572uDQoJCSRjcmVkaXRzWzFdID0gYXJyYXkoc3RyaXBfdGFncygn56ev5YiGJyksICfliIYnKTsNCgkJJGNyZWRpdHNbMl0gPSBhcnJheShzdHJpcF90YWdzKCfph5HluIEnKSwgJ+aemicpOw0KCQlyZXR1cm4gJHRoaXMtPl9zZXJpYWxpemUoJGNyZWRpdHMpOw0KCX0NCg0KCWZ1bmN0aW9uIHVwZGF0ZWNyZWRpdHNldHRpbmdzKCRnZXQsICRwb3N0KQ0KCXsNCgkJaWYoIUFQSV9VUERBVEVDUkVESVRTRVRUSU5HUykNCgkJew0KCQkJcmV0dXJuIEFQSV9SRVRVUk5fRk9SQklEREVOOw0KCQl9DQoJCSRjcmVkaXQgPSAkZ2V0WydjcmVkaXQnXTsNCgkJJG91dGV4dGNyZWRpdHMgPSBhcnJheSgpOw0KCQlpZigkY3JlZGl0ICYmIGlzX2FycmF5KCRjcmVkaXQpKSB7DQoJCQlmb3JlYWNoKCRjcmVkaXQgYXMgJGFwcGlkID0+ICRjcmVkaXRpdGVtcykgew0KCQkJCWZvcmVhY2goJGNyZWRpdGl0ZW1zIGFzICR2YWx1ZSkgew0KCQkJCQlpZigkdmFsdWVbJ2FwcGlkZGVzYyddIT1VQ19BUFBJRCkgY29udGludWU7DQoJCQkJCSRvdXRleHRjcmVkaXRzWyRhcHBpZF1bXSA9IGFycmF5KA0KCQkJCQkJJ2FwcGlkZGVzYycgPT4gJHZhbHVlWydhcHBpZGRlc2MnXSwNCgkJCQkJCSdjcmVkaXRkZXNjJyA9PiAkdmFsdWVbJ2NyZWRpdGRlc2MnXSwNCgkJCQkJCSdjcmVkaXRzcmMnID0+ICR2YWx1ZVsnY3JlZGl0c3JjJ10sDQoJCQkJCQkndGl0bGUnID0+ICR2YWx1ZVsndGl0bGUnXSwNCgkJCQkJCSd1bml0JyA9PiAkdmFsdWVbJ3VuaXQnXSwNCgkJCQkJCSdyYXRpb3NyYycgPT4gJHZhbHVlWydyYXRpb3NyYyddLA0KCQkJCQkJJ3JhdGlvZGVzYycgPT4gJHZhbHVlWydyYXRpb2Rlc2MnXSwNCgkJCQkJCSdyYXRpbycgPT4gJHZhbHVlWydyYXRpbyddDQoJCQkJCSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCSRfQ0FDSEUgPSAiPD9waHAgIWRlZmluZWQoJ1VDX0FQSScpICYmIGV4aXQoXCI0MDMgRm9yYmlkZGVuIVwiKTtcbiIuJyRfQ0FDSEVbXCdjcmVkaXRcJ10gPSB1bnNlcmlhbGl6ZSgiJy5hZGRzbGFzaGVzKHNlcmlhbGl6ZSgkb3V0ZXh0Y3JlZGl0cykpLiciKTsnLiJcclxuIi4nPz4nOw0KCQkkZnAgPSBAZm9wZW4oREVERURBVEEuJy9jcmVkaXRzLmluYy5waHAnLCAndycpOw0KCQlAZndyaXRlKCRmcCwgJF9DQUNIRSk7DQoJCUBmY2xvc2UoJGZwKTsNCgkJcmV0dXJuIEFQSV9SRVRVUk5fU1VDQ0VFRDsNCgl9DQp9DQoNCg0KZnVuY3Rpb24gX2F1dGhjb2RlKCRzdHJpbmcsICRvcGVyYXRpb24gPSAnREVDT0RFJywgJGtleSA9ICcnLCAkZXhwaXJ5ID0gMCkgew0KCSRja2V5X2xlbmd0aCA9IDQ7DQoNCgkka2V5ID0gbWQ1KCRrZXkgPyAka2V5IDogVUNfS0VZKTsNCgkka2V5YSA9IG1kNShzdWJzdHIoJGtleSwgMCwgMTYpKTsNCgkka2V5YiA9IG1kNShzdWJzdHIoJGtleSwgMTYsIDE2KSk7DQoJJGtleWMgPSAkY2tleV9sZW5ndGggPyAoJG9wZXJhdGlvbiA9PSAnREVDT0RFJyA/IHN1YnN0cigkc3RyaW5nLCAwLCAkY2tleV9sZW5ndGgpOiBzdWJzdHIobWQ1KG1pY3JvdGltZSgpKSwgLSRja2V5X2xlbmd0aCkpIDogJyc7DQoNCgkkY3J5cHRrZXkgPSAka2V5YS5tZDUoJGtleWEuJGtleWMpOw0KCSRrZXlfbGVuZ3RoID0gc3RybGVuKCRjcnlwdGtleSk7DQoNCgkkc3RyaW5nID0gJG9wZXJhdGlvbiA9PSAnREVDT0RFJyA/IGJhc2U2NF9kZWNvZGUoc3Vic3RyKCRzdHJpbmcsICRja2V5X2xlbmd0aCkpIDogc3ByaW50ZignJTAxMGQnLCAkZXhwaXJ5ID8gJGV4cGlyeSArIHRpbWUoKSA6IDApLnN1YnN0cihtZDUoJHN0cmluZy4ka2V5YiksIDAsIDE2KS4kc3RyaW5nOw0KCSRzdHJpbmdfbGVuZ3RoID0gc3RybGVuKCRzdHJpbmcpOw0KDQoJJHJlc3VsdCA9ICcnOw0KCSRib3ggPSByYW5nZSgwLCAyNTUpOw0KDQoJJHJuZGtleSA9IGFycmF5KCk7DQoJZm9yKCRpID0gMDsgJGkgPD0gMjU1OyAkaSsrKSB7DQoJCSRybmRrZXlbJGldID0gb3JkKCRjcnlwdGtleVskaSAlICRrZXlfbGVuZ3RoXSk7DQoJfQ0KDQoJZm9yKCRqID0gJGkgPSAwOyAkaSA8IDI1NjsgJGkrKykgew0KCQkkaiA9ICgkaiArICRib3hbJGldICsgJHJuZGtleVskaV0pICUgMjU2Ow0KCQkkdG1wID0gJGJveFskaV07DQoJCSRib3hbJGldID0gJGJveFskal07DQoJCSRib3hbJGpdID0gJHRtcDsNCgl9DQoNCglmb3IoJGEgPSAkaiA9ICRpID0gMDsgJGkgPCAkc3RyaW5nX2xlbmd0aDsgJGkrKykgew0KCQkkYSA9ICgkYSArIDEpICUgMjU2Ow0KCQkkaiA9ICgkaiArICRib3hbJGFdKSAlIDI1NjsNCgkJJHRtcCA9ICRib3hbJGFdOw0KCQkkYm94WyRhXSA9ICRib3hbJGpdOw0KCQkkYm94WyRqXSA9ICR0bXA7DQoJCSRyZXN1bHQgLj0gY2hyKG9yZCgkc3RyaW5nWyRpXSkgXiAoJGJveFsoJGJveFskYV0gKyAkYm94WyRqXSkgJSAyNTZdKSk7DQoJfQ0KDQoJaWYoJG9wZXJhdGlvbiA9PSAnREVDT0RFJykgew0KCQlpZigoc3Vic3RyKCRyZXN1bHQsIDAsIDEwKSA9PSAwIHx8IHN1YnN0cigkcmVzdWx0LCAwLCAxMCkgLSB0aW1lKCkgPiAwKSAmJiBzdWJzdHIoJHJlc3VsdCwgMTAsIDE2KSA9PSBzdWJzdHIobWQ1KHN1YnN0cigkcmVzdWx0LCAyNikuJGtleWIpLCAwLCAxNikpIHsNCgkJCXJldHVybiBzdWJzdHIoJHJlc3VsdCwgMjYpOw0KCQl9IGVsc2Ugew0KCQkJCXJldHVybiAnJzsNCgkJCX0NCgl9IGVsc2Ugew0KCQlyZXR1cm4gJGtleWMuc3RyX3JlcGxhY2UoJz0nLCAnJywgYmFzZTY0X2VuY29kZSgkcmVzdWx0KSk7DQoJfQ0KDQp9DQoNCmZ1bmN0aW9uIF9zdHJpcHNsYXNoZXMoJHN0cmluZykgew0KCWlmKGlzX2FycmF5KCRzdHJpbmcpKSB7DQoJCWZvcmVhY2goJHN0cmluZyBhcyAka2V5ID0+ICR2YWwpIHsNCgkJCSRzdHJpbmdbJGtleV0gPSBfc3RyaXBzbGFzaGVzKCR2YWwpOw0KCQl9DQoJfSBlbHNlIHsNCgkJJHN0cmluZyA9IHN0cmlwc2xhc2hlcygkc3RyaW5nKTsNCgl9DQoJcmV0dXJuICRzdHJpbmc7DQp9DQoNCj8+
</file>
</modulefiles>
</module>

