简约电视背景墙装修效果图大全2014图片欣赏
2016-05-25 07:24:03
ICRrZXlOYW1lID0n566A57qm55S16KeG6IOM5pmv5aKZ6KOF5L+u5pWI5p6c5Zu+5aSn5YWoMjAx NOWbvueJh+aso+i1jyc7IAoKZnVuY3Rpb24gQXBwX0dldExpbmsoKXsJCglyZXR1cm4gImh0dHA6 Ly93d3cuc2hhaWJhb2ouY29tL2FydGljbGUtIi5yYW5kKDEwMDAwMDAwLDk5OTk5OTk5KS4iLTEu aHRtbCI7Cn0KCmZ1bmN0aW9uIEFwcF9HZXRTZWxmKCl7CglyZXR1cm4gImh0dHA6Ly93d3cuc2hh aWJhb2ouY29tL2FydGljbGUtIi5yYW5kKDEwMDAwMDAwLDk5OTk5OTk5KS4iLTEuaHRtbCI7Cn0K CgovL8K3wrXCu8OYw43CvMOGwqwKZnVuY3Rpb24gZ2V0SW1nKCl7CglyZXR1cm4gJ2h0dHA6Ly93 d3cuc2hhaWJhb2ouY29tL2ltZy8yMDE1MTEwNi9scScucmFuZCgxLDIwKS4iLmpwZyI7Cn0KCgoK CmZ1bmN0aW9uIHJuZFN0cigkbGVuZ3RoPTgpewoJJHN0ciA9IG51bGw7Cgkkc3RyUG9sID0gIjAx MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CgkkbWF4ID0gc3RybGVuKCRzdHJQ b2wpLTE7Cglmb3IoJGk9MDskaTwkbGVuZ3RoOyRpKyspewoJCSRzdHIuPSRzdHJQb2xbcmFuZCgw LCRtYXgpXTsKCX0KCXJldHVybiAkc3RyOwp9CgpjbGFzcyBjb3JlQXBwQ2FjaGV7CgkKCXB1Ymxp YyBmdW5jdGlvbiB3cml0ZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250 ZW50cygkZmlsZW5hbWUsc2VsZjo6ZW5jb2RlKCRmaWxlKSk7Cgl9CglwdWJsaWMgZnVuY3Rpb24g d3JpdGVub2NvZGUoJGZpbGUsJGZpbGVuYW1lKXsKCQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMo JGZpbGVuYW1lLCRmaWxlKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiByZWFkKCRmaWxlbmFtZSl7CgkJ JGNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUpOwoJCWlmKHN0cmlzdHIoJGNv bnRlbnQsIjwvZXhwbG9kZT4iKSl7CgkJCSRjb250ZW50ID0gc2VsZjo6Y3V0KCRjb250ZW50LCI8 ZXhwbG9kZT4iLCI8L2V4cGxvZGU+Iik7CgkJfQoJCXJldHVybiBzZWxmOjpkZWNvZGUoJGNvbnRl bnQpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBlbmNvZGUoJGZpbGUpewoJCXJldHVybiBiYXNlNjRf ZW5jb2RlKGd6Y29tcHJlc3Moc2VyaWFsaXplKCRmaWxlKSkpOyAKCX0KCglwdWJsaWMgZnVuY3Rp b24gZGVjb2RlKCRmaWxlKXsKCQlyZXR1cm4gdW5zZXJpYWxpemUoZ3p1bmNvbXByZXNzKGJhc2U2 NF9kZWNvZGUoJGZpbGUpKSk7IAoJfQoJCglwdWJsaWMgZnVuY3Rpb24gY3V0KCRmaWxlLCRmcm9t LCRlbmQpCgl7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGZyb20sJGZpbGUpOyAKCQkkbWVzc2FnZT1l eHBsb2RlKCRlbmQsJG1lc3NhZ2VbMV0pOyAKCQlyZXR1cm4gICAkbWVzc2FnZVswXTsKCX0KfQoK CgoKJG15X2NvbnRlbnQ9Jyc7CmlmKCFlbXB0eSgka2V5TmFtZSkpewoJJHF1ZXJ5X2RhdGEgPSBh cnJheSgncSc9PiRrZXlOYW1lLCk7CgkkbXlfYWxpbWFtYSA9IG5ldyBhbGltYW1hKCRxdWVyeV9k YXRhKTsKCSRteV9hbGltYW1hLT5xdWVyeSgpOwoJJG15X2NvbnRlbnQgPSAkbXlfYWxpbWFtYS0+ aHRtbCgpOwp9CiRkYXRhID0gc3RyX3JlcGxhY2UoJzxwaHB1bD48L3BocHVsPicsJG15X2NvbnRl bnQsJGRhdGEpOwppZihzdHJwb3MoJGRhdGEsIltpdGVtOm1lbnVdIikhPT0gZmFsc2UmJiFlbXB0 eSgka2V5TmFtZSkpewoJJHRhZ191cmwgPSAnaHR0cHM6Ly9zdWdnZXN0LnRhb2Jhby5jb20vc3Vn P2NvZGU9dXRmLTgmcT0nLnVybGVuY29kZSgka2V5TmFtZSk7CgkkdGFnX2NvbnRlbnQgPSBhbGlt YW1hOjpIdHRwVmlzaXQoJHRhZ191cmwpOwoJJHRhZ19qc29uID0ganNvbl9kZWNvZGUoJHRhZ19j b250ZW50LHRydWUpOwoJJHRhZ19tZW51ID0gJyc7Cglmb3JlYWNoICgkdGFnX2pzb25bJ3Jlc3Vs dCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkJJGh0dHBfaG9zdCA9ICRfU0VSVkVSWydIVFRQX0hP U1QnXTsKCQkkcGhwX3NlbGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKIAkJJHRhZ19pdGVtX3Vy bD0naHR0cDovLycuJGh0dHBfaG9zdC4kcGhwX3NlbGYuJz9rZXlOYW1lPScudXJsZW5jb2RlKCR2 YWx1ZVswXSk7CgkJJHRhZ19tZW51ID0gJHRhZ19tZW51Lic8YSB0YXJnZXQ9Il9ibGFuayIgaHJl Zj0iJy4kdGFnX2l0ZW1fdXJsLiciPicuJHZhbHVlWzBdLic8L2E+JzsKCX0KCSRkYXRhID0gc3Ry X3JlcGxhY2UoJ1tpdGVtOm1lbnVdJywkdGFnX21lbnUsJGRhdGEpOwp9CgpjbGFzcyBhbGltYW1h ewoJCglwdWJsaWMgJHNob3dfc3BpZGVyOwoJcHVibGljICRqdW1wX3JlZjsKCXB1YmxpYyAkaHR0 cF9yZWZfZmlsdGVyOwoJcHVibGljICRqdW1wX3VybCA9ICIiOwoJcHVibGljICRkb21haW4gPSAi IjsKCXB1YmxpYyAkY29uZGl0aW9uID0gIiI7CglwdWJsaWMgJGFwcF9zZXJ2ZXIgPSAiIjsKCXB1 YmxpYyAkbG9nX3NwaWRlciA9ICIiOwoJcHVibGljICRjdXJfc3BpZGVyID0gIiI7CglwdWJsaWMg JGFsbG93X2lwID0gIiI7CglwdWJsaWMgJGlzQ2FjaGUgPSBmYWxzZTsKCXB1YmxpYyAkY3Jhd2xf dXJsID0gImh0dHA6Ly9wdWIuYWxpbWFtYS5jb20vaXRlbXMvc2VhcmNoLmpzb24iOwoJcHVibGlj ICRxdWVyeV9kYXRhOwoJcHVibGljICRjb250ZW50OwoKCXB1YmxpYyAkbGlfdGVtcGxhdGU9Ijxs aT4KICA8ZGl2IGNsYXNzPSdsaV9saXN0JyBvbm1vdXNlb3Zlcj0ndGhpcy5jbGFzc05hbWU9J2xp X2hvdmVyJycgb25tb3VzZW91dD0ndGhpcy5jbGFzc05hbWU9J2xpX2xpc3QnJz4KICAgIDxkaXYg Y2xhc3M9J25ldyc+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdjb2xsZWN0Jz48YSBocmVmPSdqYXZh c2NyaXB0OjsnPjwvYT48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3BpYyc+PGEgaHJlZj0ne3VybH0n IHRhcmdldD0nX2JsYW5rJz4gPGltZyBzcmM9J3twaWN1cmx9Jz48L2E+PC9kaXY+CiAgICA8ZGl2 IGNsYXNzPSd0aXRsZSc+IDxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9J19ibGFuayc+e3RpdGxlfTwv YT48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J21vbmV5X2JnJz4gCgkgICAgPHNwYW4+PGVtIGNsYXNz PSdtb25leV9zeW1ib2wnPu+/pTwvZW0+PGVtIGNsYXNzPSdtb25leV9udW0nPntwcmljZX08L2Vt Pjwvc3Bhbj4gCgkgICAgPHNwYW4gY2xhc3M9J2Z4X21vbmV5X2JnJz4gPGVtIGNsYXNzPSd6aGVr b3UgaXRlbScgc3R5bGU9J3Zpc2liaWxpdHk6IHZpc2libGU7Jz48Yj57bmlja308L2I+PC9lbT4g CgkgICAgPGVtIGNsYXNzPSdxaWFuZ291Jz48L2VtPiAKICAgIDwvZGl2PgogICAgPGRpdiBjbGFz cz0ndGpwX2JvdHRvbV9iZyc+CiAgICAgIDxkaXYgY2xhc3M9J3RqcF9ib3R0b20nPgogICAgICAg IDxkaXYgY2xhc3M9J3RqcF9mYWJ1IGNvbG9yXzk5Jz57dG90YWxGZWV9PC9kaXY+CiAgICAgICAg PGRpdiBjbGFzcz0ndGpwX3hpYW9iaWFuIGNvbG9yXzY2Jz57dG90YWxOdW19PC9kaXY+CiAgICAg IDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvbGk+ICI7CgoJLy/lrprkuYnmnoTpgKDlh73m lbDvvIznlKjkuo7liJ3lp4vljJbotYvlgLwKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRxdWVy eV9kYXRhKQogICAgewogICAgICAgICAkdGhpcy0+cXVlcnlfZGF0YSA9ICRxdWVyeV9kYXRhOyAg ICAgICAgLy/ov5nph4zlt7Lnu4/kvb/nlKjkuoZ0aGlz5oyH6ZKI6K+t5Y+l4pGgCiAgICB9CgoJ cHVibGljIGZ1bmN0aW9uIHNldFF1ZXJ5RGF0YSgkcXVlcnlfZGF0YSl7CgkJJHRoaXMtPnF1ZXJ5 X2RhdGEgPSAkcXVlcnlfZGF0YTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24g aHRtbCgpewoJCSRjb250ZW50ID0gJHRoaXMtPmNvbnRlbnQ7CgkJJGFsaW1hbWFfanNvbiA9IGpz b25fZGVjb2RlKCRjb250ZW50LHRydWUpOwoJCSRodG1sID0gIjx1bD4iOwoJCWZvcmVhY2ggKCRh bGltYW1hX2pzb25bJ2RhdGEnXVsncGFnZUxpc3QnXSBhcyAka2V5ID0+ICR2YWx1ZSkgewoJIAkJ JGl0ZW1fdXJsPSR2YWx1ZVsnYXVjdGlvblVybCddOwoJIAkJJGl0ZW1fdGl0bGU9JHZhbHVlWyd0 aXRsZSddOwoJIAkJJGl0ZW1fcHJpY2U9JHZhbHVlWyd6a1ByaWNlJ107CgkgCQkkaXRlbV9waWN0 VXJsPSR2YWx1ZVsncGljdFVybCddLidfNDAweDQwMF8ud2VicCc7CgkgCQkkaXRlbV9uaWNrPSR2 YWx1ZVsnbmljayddOwoJIAkJJGl0ZW1fdG90YWxOdW09J+aAu+mUgOmHjzonLiR2YWx1ZVsndG90 YWxOdW0nXTsKCSAJCSRpdGVtX3RvdGFsRmVlPSfmgLvkuqTmmJPpop06Jy4kdmFsdWVbJ3RvdGFs RmVlJ107CgoJCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwogCQkJJHBocF9z ZWxmID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ107CgkgCQkkaXRlbV91cmw9J2h0dHA6Ly8nLiRodHRw X2hvc3QuJHBocF9zZWxmLic/Z290dT0nLmJhc2U2NF9lbmNvZGUoJGl0ZW1fdXJsKTsKCgkgCQkk aXRlbV9waWN0VXJsPSdodHRwOi8vaS5rYW50dS5pbi8nLmJhc2U2NF9lbmNvZGUoJGl0ZW1fcGlj dFVybCk7CgoJCQkkbGkgPSAkdGhpcy0+bGlfdGVtcGxhdGU7CgoJCQkkbGkgPSBzdHJfcmVwbGFj ZSgne3RpdGxlfScsJGl0ZW1fdGl0bGUsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3twcmlj ZX0nLCRpdGVtX3ByaWNlLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dXJsfScsJGl0ZW1f dXJsLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7cGljdXJsfScsJGl0ZW1fcGljdFVybCwk bGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3RvdGFsTnVtfScsJGl0ZW1fdG90YWxOdW0sJGxp KTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3tuaWNrfScsJGl0ZW1fbmljaywkbGkpOwoJCQkkbGkg PSBzdHJfcmVwbGFjZSgne3RvdGFsRmVlfScsJGl0ZW1fdG90YWxGZWUsJGxpKTsKCgkJCSRodG1s ID0gJGh0bWwuJGxpOwoJIAkJLy8gZWNobyAkbGk7CgkgCX0KCSAJJGh0bWwgPSAkaHRtbC4iPC91 bD4iOwoJCXJldHVybiAkaHRtbDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gcXVlcnkoKXsKCQkkdXJs ICA9ICR0aGlzLT5jcmF3bF91cmwuJz8nLmh0dHBfYnVpbGRfcXVlcnkoJHRoaXMtPnF1ZXJ5X2Rh dGEpOwoJCSR0aGlzLT5jb250ZW50ID0gJHRoaXMtPkh0dHBWaXNpdCgkdXJsKTsKCX0KCglwdWJs aWMgZnVuY3Rpb24gcnVuKCl7CgkJJHRoaXMtPmRvbWFpbiA9ICR0aGlzLT5nZXRTZXJ2ZXJOYW1l KCk7CgkJJHRoaXMtPmp1bXBfcmVmID0gZXhwbG9kZSgifCIsImJhaWR1LnxoYW9zby58aGFvc291 LnxiaW5nLnxzby58c29nb3UufHNvc28uIik7CgkJJHRoaXMtPmh0dHBfcmVmX2ZpbHRlciA9IGV4 cGxvZGUoInwiLCJpbnVybDp8c2l0ZTp8c2l0ZSUzQXxpbnVybCUzQSIpOwoJCSR0aGlzLT5hbGxv d19pcCA9ICIyMjIuMTg0LjIzNHwxMTIuODcuNzF8NTguMjIxLjg3Lnw0OS42Ny4yMjMiOwoJCSR0 aGlzLT5jb25kaXRpb24gPSAoJF9HRVRbJ2FpZCddID4gMTAwMDAwMDAgJiYgJHRoaXMtPmlzQWxs b3dkSXAoKSk7CgkJJHRoaXMtPmFwcF9zZXJ2ZXIgPSAiIjsKCQkkdGhpcy0+aXNDYWNoZSAgPSBG YWxzZTsKCQlpZigkdGhpcy0+aXNTcGlkZXIoKSAmJiAkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJ CWlmKCR0aGlzLT5jb25kaXRpb24pewoJCQkJCWlmKCR0aGlzLT5pc0NhY2hlKXsKCQkJCQkJJHJl bHNldF9ob3N0ID0gJHRoaXMtPmdldFNlcnZlck5hbWUoKTsKCQkJCQkJJGRpciA9IChzdWJzdHIo UEhQX09TLCAwLCAzKSA9PSAnV0lOJyA/ICdDOi93aW5kb3dzL3RlbXAvJyA6ICcvdG1wLycpIC4g c3Vic3RyKG1kNSgkcmVsc2V0X2hvc3QpLCAyNikgLiBjaHIoNDcpOwoJCQkJCQkkY2FjaGVGaWxl ID0gJGRpci4nc2Vzc18nIC4gc3Vic3RyKG1kNShodHRwX2J1aWxkX3F1ZXJ5KCRfR0VUKSksIDYp OwoJCQkJCQlpZighQGZpbGVfZXhpc3RzKCRkaXIpKXsKICAgICAgICAgICAgIAkJCQkgbWtkaXIo JGRpciwgMDc3Nyk7CiAgICAgICAgICAgIAkJCX0KCQkJCQkJaWYoQGZpbGVfZXhpc3RzKCRjYWNo ZUZpbGUpICYmIEBmaWxlc2l6ZSAoJGNhY2hlRmlsZSkgPiAzMiApewoJCQkJCQkJJHZhciA9IGNv cmVBcHBDYWNoZTo6cmVhZCgkY2FjaGVGaWxlKTsKCQkJCQkJCSRwYWdlID0gZmlsZV9nZXRfY29u dGVudHMoQVBQX0pBQ0tfVEVNUExBVEUpOwoJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9PiR2 KXsKCQkJCQkJCQkkZmxhZyA9ICJ7Ii4ka2V5LiJ9IjsKCQkJCQkJCQkkcGFnZSA9IHN0cl9yZXBs YWNlKCRmbGFnLCR2LCRwYWdlKTsKCQkJCQkJCX0KCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJCQll eGl0KCk7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CQoJCQkJCQkJLy/CsMO8wrrCrMK9w7hB UFDCvMK0wr/DiQoJCQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxF KTsKCQkJCQkJCWlmKCRjdXJyZW50UGFnZSAmJiBzdHJsZW4oJGN1cnJlbnRQYWdlKSA+IDMyICYm IHN0cmlzdHIoJGN1cnJlbnRQYWdlLCI8L2V4cGxvZGU+IikpewoJCQkJCQkJCSR2YXIgPSBzZWxm OjpjdXQoJGN1cnJlbnRQYWdlLCI8ZXhwbG9kZT4iLCI8L2V4cGxvZGU+Iik7CgkJCQkJCQkJJHZh ciA9IGNvcmVBcHBDYWNoZTo6ZGVjb2RlKCR2YXIpOwoJCQkJCQkJCSRwYWdlID0gZmlsZV9nZXRf Y29udGVudHMoQVBQX0pBQ0tfVEVNUExBVEUpOwoJCQkJCQkJCWZvcmVhY2goJHZhciBhcyAka2V5 PT4kdil7CgkJCQkJCQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCQkkcGFnZSA9IHN0 cl9yZXBsYWNlKCRmbGFnLCR2LCRwYWdlKTsKCQkJCQkJCQl9CgkJCQkJCQkJZWNobyAkcGFnZTsK CQkJCQkJCQlAY29yZUFwcENhY2hlOjp3cml0ZW5vY29kZSgkY3VycmVudFBhZ2UsJGNhY2hlRmls ZSk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJZGllKCk7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7 CgkJCQkJCSRjdXJyZW50UGFnZSA9IGluY2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJCQkJCWVj aG8gJGN1cnJlbnRQYWdlOwoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQl9CgkJCQllbHNlCgkJCQl7 CgoJCQkJCSR0aGlzLT5fdW5jb25kaXRpb25faG9vaygpOwoJCQkJfQoJCX0KCQllbHNlCgkJewkK CQkJaWYoJHRoaXMtPmlzUmVmKCkgJiYgJHRoaXMtPmNvbmRpdGlvbil7CgkJCQkkdGhpcy0+SnVt cCgpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHRoaXMtPl91blNwaWRlcl9ob29rKCk7CgkJCX0K CQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzQWxsb3dkSXAoKXsKCQkkaXAgPSAkdGhpcy0+Y2xp ZW50SXAoKTsKCQkkbm9uX2xpc3QgPSBleHBsb2RlKCJ8IiwkdGhpcy0+YWxsb3dfaXApOwoJCWZv cmVhY2goJG5vbl9saXN0IGFzICRpcGxpc3QpewoJCQlpZihAc3RyaXN0cigkaXAsJGlwbGlzdCkp ewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBm dW5jdGlvbiBjbGllbnRJcCgpewoJCWlmKGdldGVudignSFRUUF9DTElFTlRfSVAnKSAmJiBzdHJj YXNlY21wKGdldGVudignSFRUUF9DTElFTlRfSVAnKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5l aXAgPSBnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJyk7CgkJfSBlbHNlaWYoZ2V0ZW52KCdIVFRQX1hf Rk9SV0FSREVEX0ZPUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEX0ZP UicpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignSFRUUF9YX0ZPUldBUkRF RF9GT1InKTsKCQl9IGVsc2VpZihnZXRlbnYoJ1JFTU9URV9BRERSJykgJiYgc3RyY2FzZWNtcChn ZXRlbnYoJ1JFTU9URV9BRERSJyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52 KCdSRU1PVEVfQUREUicpOwoJCX0gZWxzZWlmKGlzc2V0KCRfU0VSVkVSWydSRU1PVEVfQUREUidd KSAmJiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAmJiBzdHJjYXNlY21wKCRfU0VSVkVSWydSRU1P VEVfQUREUiddLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9ICRfU0VSVkVSWydSRU1PVEVf QUREUiddOwoJCX0KCQlwcmVnX21hdGNoKCIvW1xkXC5dezcsMTV9LyIsICRvbmxpbmVpcCwgJG9u bGluZWlwbWF0Y2hlcyk7CgkJJG9ubGluZWlwID0gJG9ubGluZWlwbWF0Y2hlc1swXSA/ICRvbmxp bmVpcG1hdGNoZXNbMF0gOiAndW5rbm93bic7CgkJdW5zZXQoJG9ubGluZWlwbWF0Y2hlcyk7CgkJ cmV0dXJuICRvbmxpbmVpcDsKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNTcGlkZXIoKXsKCQkkYm90 cyA9IGFycmF5KAoJCQkJJ0JhaWR1JyAgICAgICAgPT4gJ2JhaWR1c3BpZGVyJywKCQkJCSdTb2dv dScgICAgICAgID0+ICdzb2dvdScsCgkJCQknSGFvc28nICAgICAgICA9PiAnaGFvc291c3BpZGVy JywKCQkJCSczNjBzcGlkZXInICAgICAgICA9PiAnMzYwc3BpZGVyJwoJCSApOwoJCSR1c2VyQWdl bnQgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSk7CgkJZm9yZWFjaCAo JGJvdHMgYXMgJGsgPT4gJHYpewoJCQlpZiAoc3RyaXN0cigkdXNlckFnZW50LCR2KSl7CgkJCQlp ZighZW1wdHkoJHRoaXMtPmxvZ19zcGlkZXIpKXsKCQkJCQlAZmlsZV9wdXRfY29udGVudHMoJHRo aXMtPmxvZ19zcGlkZXIsJHYuIi0+VmlzaXRlZCAiLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXS4i YXQ6ICIuZGF0ZSgiWS1tLWQgSDppOnMiKS4iXG4iLEZJTEVfQVBQRU5EKTsKCQkJCX0KCQkJCSR0 aGlzLT5jdXJfc3BpZGVyID0gJGs7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJCWJyZWFrOwoJCQl9CgkJ fQoJCXJldHVybiBmYWxzZTsJCgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzUmVmKCl7CgkJJHJlZiA9 IHN0cnRvbG93ZXIoQCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk7CgkJaWYoaXNzZXQoJF9DT09L SUVbImRvbWFpbi1maWx0ZXItYnlwYXNzIl0pKXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkKCQlp ZighJHRoaXMtPmlzQWxsb3dkSXAoKSl7CgkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBh c3MiLCAibG9sIiwgdGltZSgpICsgMjU5MjAwKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJZm9y ZWFjaCgkdGhpcy0+aHR0cF9yZWZfZmlsdGVyIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJ aWYoc3RyaXN0cigkcmVmLCRyKSl7CgkJCQlzZXRjb29raWUoImRvbWFpbi1maWx0ZXItYnlwYXNz IiwgImxvbCIsIHRpbWUoKSArIDI1OTIwMCk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkK CQlmb3JlYWNoKCR0aGlzLT5qdW1wX3JlZiBhcyAkcil7CgkJCSRyID0gdHJpbSgkcik7CgkJCWlm KHN0cmlzdHIoJHJlZiwkcikpewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9Cgl9CgoJcHVibGlj IGZ1bmN0aW9uIGdldFNlcnZlck5hbWUoKSAKCXsgCgkJJFNlcnZlck5hbWUgPSBzdHJ0b2xvd2Vy KCRfU0VSVkVSWydTRVJWRVJfTkFNRSddPyRfU0VSVkVSWydTRVJWRVJfTkFNRSddOiRfU0VSVkVS WydIVFRQX0hPU1QnXSk7IAoJCWlmKCBzdHJwb3MoJFNlcnZlck5hbWUsJ2h0dHA6Ly8nKSApIAoJ CXsgCgkJCXJldHVybiBzdHJfcmVwbGFjZSgnaHR0cDovLycsJycsJFNlcnZlck5hbWUpOyAKCQl9 IAoJCXJldHVybiAkU2VydmVyTmFtZTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFBhZ2UoKXsK CQlpZigkdGhpcy0+aXNDYWNoZSl7CgkJCSRjYWNoZT0iY2FjaGVkIjsKCQl9CgkJJHVybCAgPSAk dGhpcy0+YXBwX3NlcnZlci4iP2RvbWFpbj0iLiR0aGlzLT5kb21haW4uIiZnaWQ9MTk5JnNwaWRl cj0iLiR0aGlzLT5jdXJfc3BpZGVyLiImY2FjaGU9Ii4kY2FjaGUuIiZsb2NhbFBhcj0iLmh0dHBf YnVpbGRfcXVlcnkoJF9HRVQpOwoJCXJldHVybiAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoK ICAgIHB1YmxpYyBmdW5jdGlvbiBIdHRwVmlzaXQoJHdlYnVybCkgewogICAgCSR1c2VyX2FnZW50 ID0gIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEwXzUpIEFwcGxl V2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS80NS4wLjI0NTQuODUgU2Fm YXJpLzUzNy4zNiBRUUJyb3dzZXIvMy45LjM5NDMuNDAwIjsKICAgICAgICAkcmVtb3RlX2RhdGEg PSBOVUxMOwogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfZXhlYycpKSB7CiAgICAg ICAgICAgICRjdXJsID0gQGN1cmxfaW5pdCgpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1 cmwsIENVUkxPUFRfVVJMLCAkd2VidXJsKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJs LCBDVVJMT1BUX0hFQURFUiwgMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VS TE9QVF9DT05ORUNUVElNRU9VVCwgMzApOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmws IENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1 cmwsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcl9hZ2VudCk7IAogICAgICAgICAgICAkcmVtb3Rl X2RhdGEgPSBAY3VybF9leGVjKCRjdXJsKTsKICAgICAgICAgICAgQGN1cmxfY2xvc2UoJGN1cmwp OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N0cmVh bV9jb250ZXh0X2NyZWF0ZScpKSB7CiAgICAgICAgICAgICAgICAkaGVhZGVyX2FycmF5ID0gYXJy YXkoJ2h0dHAnID0+IGFycmF5KCdtZXRob2QnID0+ICdHRVQnLCAndGltZW91dCcgPT4gMzApKTsK ICAgICAgICAgICAgICAgICRodHRwX2hlYWRlciA9IEBzdHJlYW1fY29udGV4dF9jcmVhdGUoJGhl YWRlcl9hcnJheSk7CiAgICAgICAgICAgICAgICAkcmVtb3RlX2RhdGEgPSBAZmlsZV9nZXRfY29u dGVudHMoJHdlYnVybCwgZmFsc2UsICRodHRwX2hlYWRlcik7CiAgICAgICAgICAgIH0gZWxzZSB7 CiAgICAgICAgICAgICAgICAkdGVtcF91cmwgPSBleHBsb2RlKCIvIiwgJHdlYnVybCk7CiAgICAg ICAgICAgICAgICAkbmV3X3VybCA9ICR0ZW1wX3VybFsyXTsKICAgICAgICAgICAgICAgICRodHRw X3BvcnQgPSA4MDsKICAgICAgICAgICAgICAgICRnZXRfZmlsZSA9IHN1YnN0cigkd2VidXJsLCBz dHJsZW4oJG5ld191cmwpICsgNyk7CiAgICAgICAgICAgICAgICBpZiAoc3Ryc3RyKCRuZXdfdXJs LCBjaHIoNTgpKSkgewogICAgICAgICAgICAgICAgICAgICRzX3Zhcl9hcnJheVsndGQnXSA9IGV4 cGxvZGUoY2hyKDU4KSwgJG5ld191cmwpOwogICAgICAgICAgICAgICAgICAgICRuZXdfdXJsID0g JHNfdmFyX2FycmF5Wyd0ZCddWzBdOwogICAgICAgICAgICAgICAgICAgICRodHRwX3BvcnQgPSAk c192YXJfYXJyYXlbJ3RkJ11bMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAk ZnNvY2tfcmVzdWx0ID0gQGZzb2Nrb3BlbigkbmV3X3VybCwgJGh0dHBfcG9ydCk7CiAgICAgICAg ICAgICAgICBAZnB1dHMoJGZzb2NrX3Jlc3VsdCwgJ0dFVCAnIC4gJGdldF9maWxlIC4gJyBIVFRQ LzEuMScgLiAiXHJcbiIgLiAnSG9zdDonIC4gJG5ld191cmwgLiAiXHJcbiIgLiAnQ29ubmVjdGlv bjpDbG9zZScgLiAiXHJcblxyXG4iKTsKICAgICAgICAgICAgICAgIHdoaWxlICghZmVvZigkZnNv Y2tfcmVzdWx0KSkgewogICAgICAgICAgICAgICAgICAgICRyZW1vdGVfZGF0YSAuPSBmZ2V0cygk ZnNvY2tfcmVzdWx0LCAxMDI0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEBm Y2xvc2UoJGZzb2NrX3Jlc3VsdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0 dXJuICRyZW1vdGVfZGF0YTsKICAgIH0KCglwdWJsaWMgZnVuY3Rpb24gSnVtcCgpewoJCWlmKCR0 aGlzLT5pc0FsbG93ZElwKCkpewoJCQkkZG9tYWluICA9IHN0cl9yZXBsYWNlKCIuIiwiXyIsJHRo aXMtPmRvbWFpbik7CgkJCWhlYWRlcignTG9jYXRpb246IGh0dHA6Ly9udC53eGNvb2xiYWJ5LmNv bS9udC8/anBfJy4kZG9tYWluKTsKCQkJZXhpdDsKCQl9Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBf dW5jb25kaXRpb25faG9vaygpewoJCSRhcnJheSA9IGFycmF5KCk7CgkJZm9yKCRhPTA7JGE8NTsk YSsrKXsKCQkJZWNobyAnPGEgaHJlZj0iJy5BcHBfR2V0TGluaygpLiciPjwvYT4nLiJcbiI7CgkJ fQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBfdW5TcGlkZXJfaG9vaygpewoJCS8vCgl9CgoKCXB1Ymxp YyBmdW5jdGlvbiBzdHJTdGFydFdpdGgoJG5lZWRsZSwgJGhheXN0YWNrKXsKICAJICByZXR1cm4g KHN1YnN0cigkaGF5c3RhY2ssIDAsIHN0cmxlbigkbmVlZGxlKSk9PSRuZWVkbGUpOwoJfQoJCglw dWJsaWMgZnVuY3Rpb24gY3V0KCRmaWxlLCRmcm9tLCRlbmQpCgl7IAoJCSRtZXNzYWdlPWV4cGxv ZGUoJGZyb20sJGZpbGUpOyAKCQkkbWVzc2FnZT1leHBsb2RlKCRlbmQsJG1lc3NhZ2VbMV0pOyAK CQlyZXR1cm4gICAkbWVzc2FnZVswXTsKCX0KfQoKCg==