分身AI.com × クイズフロー
あなたの「抱え込みタイプ」診断
5問で、ひとり社長として抱え込みやすい働き方の癖を可視化。責めるための診断ではなく、相棒AIを見つけるためのヒントです。
所要時間:約1分
Q1 / 5
20%
診断中…
あなたの抱え込みタイプを診断しています
CiAgICAoZnVuY3Rpb24gKCkgewogICAgICB2YXIgcWZTY3JpcHQgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0OwogICAgICB2YXIgcWZDb250YWluZXIgPSBxZlNjcmlwdCA/IHFmU2NyaXB0LmNsb3Nlc3QoJy5xZi1xdWl6LWNvbnRhaW5lcicpIDogbnVsbDsKICAgICAgaWYgKCFxZkNvbnRhaW5lcikgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZPbmUoc2VsZWN0b3IpIHsKICAgICAgICByZXR1cm4gcWZDb250YWluZXIucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHFmQWxsKHNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIHFmQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgICB9CgogICAgICB2YXIgUUZfVFlQRVMgPSB7CiAgICAgICAgY2xhdWRlOiB7CiAgICAgICAgICBrZXk6ICdjbGF1ZGUnLAogICAgICAgICAgbmFtZTogJ0NsYXVkZeWeiycsCiAgICAgICAgICBzdWI6ICfogbfkurrmsJfos6rjga7lroznkqfkuLvnvqnnpL7plbcnLAogICAgICAgICAgaWNvbjogJ/Cfm6DvuI8nLAogICAgICAgICAgaG9sZDogJ+WTgeizquOBp+aKseOBiOi+vOOCgCcsCiAgICAgICAgICBkZXNjOiAn5LuV5LiK44GM44KK44KS5aal5Y2U44Gb44Ga5pyA5b6M44G+44Gn5o+h44KL5YK+5ZCR44CC5by344G/44Gv5ZOB6LOq44Gu6auY44GV44Gn44GZ44GM44CB5Lu744Gb44KL44K/44Kk44Of44Oz44Kw44GM6YGF44KM44KL44Go55ay5byK44GX44KE44GZ44GP44Gq44KK44G+44GZ44CCJywKICAgICAgICAgIGFkdmljZTogJ0FJ44Gr44CM5Yid56i/5L2c5oiQ44O744OB44Kn44OD44Kv44Oq44K544OI5YyW44O75ZOB6LOq5Z+65rqW44Gu6KaL44GI44KL5YyW44CN44KS5Lu744Gb44KL44Go44CB5ZOB6LOq44KS5a6I44KK44Gq44GM44KJ5omL5pS+44GX44KE44GZ44GP44Gq44KK44G+44GZ44CCJywKICAgICAgICAgIGNvbG9yOiBbJyM2MzY2ZjEnLCAnIzgxOGNmOCddLAogICAgICAgICAgc2hhcmVUZXh0OiAnNeWVj+iouuaWreOBrue1kOaenOOBr+OAkENsYXVkZeWei+OAkeOAguaKseOBiOi+vOOBv+OBruebsueCueOAgeOBguOBquOBn+OCgjHliIbjgafjg4Hjgqfjg4Pjgq/jgIInCiAgICAgICAgfSwKICAgICAgICBnZW1pbmk6IHsKICAgICAgICAgIGtleTogJ2dlbWluaScsCiAgICAgICAgICBuYW1lOiAnR2VtaW5p5Z6LJywKICAgICAgICAgIHN1YjogJ+ODr+OCr+ODr+OCr+WFqOmDqOOChOOCiuOBn+OBhOekvumVtycsCiAgICAgICAgICBpY29uOiAn8J+OoicsCiAgICAgICAgICBob2xkOiAn6IiI5ZGz44Gn5oqx44GI6L6844KAJywKICAgICAgICAgIGRlc2M6ICfmlrDjgZfjgYTlj6/og73mgKfjgpLmrKHjgIXjgajopovjgaTjgZHjgovlgr7lkJHjgILlvLfjgb/jga/nmbrmg7PlipvjgafjgZnjgYzjgIHnnYDlnLDnrqHnkIbjgYzov73jgYTjgaTjgYvjgarjgYTjgajmt7fnt5rjgZfjgYzjgaHjgafjgZnjgIInLAogICAgICAgICAgYWR2aWNlOiAnQUnjgavjgIzjgqLjgqTjg4fjgqLmlbTnkIbjg7vlhKrlhYjpoIbkvY3jgaXjgZHjg7vlrp/ooYzjgrnjg4bjg4Pjg5fliIbop6PjgI3jgpLkvp3poLzjgZnjgovjgajjgIHjg6/jgq/jg6/jgq/jgpLmiJDmnpzjgavlpInjgYjjgoTjgZnjgY/jgarjgorjgb7jgZnjgIInLAogICAgICAgICAgY29sb3I6IFsnIzEwYjk4MScsICcjMzRkMzk5J10sCiAgICAgICAgICBzaGFyZVRleHQ6ICc15ZWP6Ki65pat44Gu57WQ5p6c44Gv44CQR2VtaW5p5Z6L44CR44CC5oqx44GI6L6844G/44Gu55uy54K544CB44GC44Gq44Gf44KCMeWIhuOBp+ODgeOCp+ODg+OCr+OAgicKICAgICAgICB9LAogICAgICAgIGNoYXRncHQ6IHsKICAgICAgICAgIGtleTogJ2NoYXRncHQnLAogICAgICAgICAgbmFtZTogJ0NoYXRHUFTlnosnLAogICAgICAgICAgc3ViOiAn44G/44KT44Gq44Gr6aC844KJ44KM44KL44GK5Lq65aW944GX56S+6ZW3JywKICAgICAgICAgIGljb246ICfwn6SdJywKICAgICAgICAgIGhvbGQ6ICfkurrplpPplqLkv4LjgafmirHjgYjovrzjgoAnLAogICAgICAgICAgZGVzYzogJ+acn+W+heOBq+W/nOOBiOOCi+WKm+OBjOmrmOOBj+S/oemgvOOBleOCjOOCi+WCvuWQkeOAguW8t+OBv+OBr+mWouS/guani+evieOBp+OBmeOBjOOAgeaWreOCjOOBmuOBq+iHquWIhuOBruaZgumWk+OCkuWJiuOCiuOBjOOBoeOBp+OBmeOAgicsCiAgICAgICAgICBhZHZpY2U6ICdBSeOBq+OAjOi/lOS/oeOBn+OBn+OBjeWPsOODu+aWreOCiuaWh+ODhuODs+ODl+ODrOODu+ebuOirh+OBruWEquWFiOWIpOWumuOAjeOCkuS7u+OBm+OCi+OBqOOAgemWouS/guOCkuWjiuOBleOBmuiyoOiNt+OCkua4m+OCieOBm+OBvuOBmeOAgicsCiAgICAgICAgICBjb2xvcjogWycjZjk3MzE2JywgJyNmYjkyM2MnXSwKICAgICAgICAgIHNoYXJlVGV4dDogJzXllY/oqLrmlq3jga7ntZDmnpzjga/jgJBDaGF0R1BU5Z6L44CR44CC5oqx44GI6L6844G/44Gu55uy54K544CB44GC44Gq44Gf44KCMeWIhuOBp+ODgeOCp+ODg+OCr+OAgicKICAgICAgICB9LAogICAgICAgIGdyb2s6IHsKICAgICAgICAgIGtleTogJ2dyb2snLAogICAgICAgICAgbmFtZTogJ0dyb2vlnosnLAogICAgICAgICAgc3ViOiAn5oiR44GM6YGT44KS6KGM44GP56qB56C05Yqb56S+6ZW3JywKICAgICAgICAgIGljb246ICfwn5qAJywKICAgICAgICAgIGhvbGQ6ICflraTni6zjgafmirHjgYjovrzjgoAnLAogICAgICAgICAgZGVzYzogJ+axuuaWreOBqOeqgeegtOOBjOmAn+OBhOWCvuWQkeOAguW8t+OBv+OBr+aOqOmAsuWKm+OBp+OBmeOBjOOAgeebuOirh+S4jei2s+OBp+mBoOWbnuOCiuOChOWGjeWun+ijheOBjOWil+OBiOOCi+OBk+OBqOOBjOOBguOCiuOBvuOBmeOAgicsCiAgICAgICAgICBhZHZpY2U6ICdBSeOCkuOAjOWjgeaJk+OBoeebuOaJi+ODu+mAhuW8teOCiuODgeOCp+ODg+OCr+ODu+ODquOCueOCr+aXqeacn+eZuuimi+OAjeOBq+S9v+OBhuOBqOOAgeOCueODlOODvOODieOCkuiQveOBqOOBleOBmueyvuW6puOCkuS4iuOBkuOCieOCjOOBvuOBmeOAgicsCiAgICAgICAgICBjb2xvcjogWycjYTg1NWY3JywgJyNjMDg0ZmMnXSwKICAgICAgICAgIHNoYXJlVGV4dDogJzXllY/oqLrmlq3jga7ntZDmnpzjga/jgJBHcm9r5Z6L44CR44CC5oqx44GI6L6844G/44Gu55uy54K544CB44GC44Gq44Gf44KCMeWIhuOBp+ODgeOCp+ODg+OCr+OAgicKICAgICAgICB9CiAgICAgIH07CgogICAgICB2YXIgUUZfT1BUSU9OX0xBQkVMUyA9IFsnQScsICdCJywgJ0MnLCAnRCddOwoKICAgICAgdmFyIFFGX1FVRVNUSU9OUyA9IFsKICAgICAgICB7CiAgICAgICAgICBxOiAn5paw44K144O844OT44K544Gu5YWs6ZaL5YmN5pel44CC44G+44Gg5bCR44GX5LiN5a6J44GM5q6L44Gj44Gm44GE44G+44GZ44CC44GC44Gq44Gf44Gu6KGM5YuV44Gv77yfJywKICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgeyB0ZXh0OiAn57Sw6YOo44KS5b655bqV6KaL55u044GX44CC57SN5b6X44GZ44KL44G+44Gn6Ieq5YiG44Gn5LuV5LiK44GS44KLJywgdHlwZTogJ2NsYXVkZScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn5oCl44Gr5Yil44Ki44Kk44OH44Ki44GM5rWu44GL44Gz44CB6L+95Yqg44Gn6Kmm44GX44Gf44GP44Gq44KLJywgdHlwZTogJ2dlbWluaScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn5ZGo5Zuy44Gu6KaB5pyb44KS5YWo6YOo5Y+N5pig44GX44KI44GG44Go44GX44Gm5aSc5pu044GL44GX44GZ44KLJywgdHlwZTogJ2NoYXRncHQnIH0sCiAgICAgICAgICAgIHsgdGV4dDogJ+iqsOOBq+OCguebuOirh+OBm+OBmuOAgeebtOaEn+OBp+acgOe1guWIpOaWreOBl+OBpumAsuOCgeOCiycsIHR5cGU6ICdncm9rJyB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxOiAn44K/44K544Kv44GM5aKX44GI44GZ44GO44Gf6YCx44CC5L2V44GL44KJ5omL44KS44Gk44GR44KL77yfJywKICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgeyB0ZXh0OiAn44G+44Ga5ZOB6LOq44GM6JC944Gh44KL44Go44G+44Ga44GE5LuV5LqL44GL44KJ6Ieq5YiG44Gn5o+h44KLJywgdHlwZTogJ2NsYXVkZScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn6Z2i55m944Gd44GG44Gq5qGI5Lu244GL44KJ552A5omL44GX44Gm5Yui44GE44KS44Gk44GP44KLJywgdHlwZTogJ2dlbWluaScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn6aC844G+44KM44Gf6aCG44Gn5a++5b+c44GX44CB5b6M5Zue44GX44KS5L2c44KJ44Gq44GEJywgdHlwZTogJ2NoYXRncHQnIH0sCiAgICAgICAgICAgIHsgdGV4dDogJ+mHjeimgeOCv+OCueOCr+OBoOOBkeaui+OBl+OBpuOAgeS7luOBr+S4gOawl+OBq+WIh+OCiuaNqOOBpuOCiycsIHR5cGU6ICdncm9rJyB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxOiAn5aSW5rOo44KE5aeU6KiX44KS6ICD44GI44KL44Go44GN44CB44GE44Gh44Gw44KT5byV44Gj44GL44GL44KL44Gu44Gv77yfJywKICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgeyB0ZXh0OiAn6Ieq5YiG44Gu5Z+65rqW44G+44Gn5ZOB6LOq44GM5bGK44GP44GL5LiN5a6JJywgdHlwZTogJ2NsYXVkZScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn6Kqs5piO44GX44Gm44KL6ZaT44Gr6Ieq5YiG44Gn44KE44Gj44Gf5pa544GM5pep44Gd44GGJywgdHlwZTogJ2dlbWluaScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn44GK6aGY44GE44GX44Gm6Zai5L+C44GM5rCX44G+44Ga44GP44Gq44KL44Gu44GM5oCW44GEJywgdHlwZTogJ2NoYXRncHQnIH0sCiAgICAgICAgICAgIHsgdGV4dDogJ+S7luS6uuOBruODmuODvOOCueOBq+WQiOOCj+OBm+OCi+OBruOBjOOCueODiOODrOOCuScsIHR5cGU6ICdncm9rJyB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxOiAn5aOy5LiK44GM6JC944Gh44Gf5pyI44CB5pyA5Yid44Gr44KE44KK44GM44Gh44Gq44GT44Go44Gv77yfJywKICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgeyB0ZXh0OiAn5Y6f5Zug5YiG5p6Q44KS57Sw44GL44GP6KGM44GE44CB5pS55ZaE5qGI44KS5L2c44KK6L6844KAJywgdHlwZTogJ2NsYXVkZScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn5paw5LyB55S744KS6KSH5pWw56uL44Gh5LiK44GS44Gm5omT5bit5pWw44KS5aKX44KE44GZJywgdHlwZTogJ2dlbWluaScgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn5pei5a2Y6aGn5a6i44G444Gu44OV44Kp44Ot44O844KS5pyA5YSq5YWI44Gn6Kmw44KB6L6844KAJywgdHlwZTogJ2NoYXRncHQnIH0sCiAgICAgICAgICAgIHsgdGV4dDogJ+S4gOS6uuOBp+aIpueVpeOCkue3tOOCiuebtOOBl+OAgeWNs+aWreOBp+aWueWQkei7ouaPm+OBmeOCiycsIHR5cGU6ICdncm9rJyB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBxOiAn55CG5oOz44Gu44CM55u45qOSQUnjgI3jgavmsYLjgoHjgovlvbnlibLjga/vvJ8nLAogICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICB7IHRleHQ6ICflk4Hos6rjgpLlrojjgovjg6zjg5Pjg6Xjg7zmi4XlvZPjgajjgZfjgabmqZ/og73jgZfjgabjgbvjgZfjgYQnLCB0eXBlOiAnY2xhdWRlJyB9LAogICAgICAgICAgICB7IHRleHQ6ICfjgqLjgqTjg4fjgqLjga7mlbTnkIblvbnjgajjgZfjgabkuIDnt5LjgavluoPjgZLjgabjgbvjgZfjgYQnLCB0eXBlOiAnZ2VtaW5pJyB9LAogICAgICAgICAgICB7IHRleHQ6ICflr77kurrjgrPjg5/jg6Xjg4vjgrHjg7zjgrfjg6fjg7Pjga7kuIvmlK/jgYjjgpLjgZfjgabjgbvjgZfjgYQnLCB0eXBlOiAnY2hhdGdwdCcgfSwKICAgICAgICAgICAgeyB0ZXh0OiAn6Ieq5YiG44Gu5oCd6ICD44KS5qSc6Ki844GZ44KL5aOB5omT44Gh5b2544Gr44Gq44Gj44Gm44G744GX44GEJywgdHlwZTogJ2dyb2snIH0KICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIF07CgogICAgICB2YXIgcWZTY3JlZW5zID0gewogICAgICAgIHdlbGNvbWU6IHFmT25lKCdbZGF0YS1xZi1zY3JlZW49IndlbGNvbWUiXScpLAogICAgICAgIHF1aXo6IHFmT25lKCdbZGF0YS1xZi1zY3JlZW49InF1aXoiXScpLAogICAgICAgIGxvYWRpbmc6IHFmT25lKCdbZGF0YS1xZi1zY3JlZW49ImxvYWRpbmciXScpLAogICAgICAgIHJlc3VsdDogcWZPbmUoJ1tkYXRhLXFmLXNjcmVlbj0icmVzdWx0Il0nKQogICAgICB9OwoKICAgICAgdmFyIHFmVUkgPSB7CiAgICAgICAgc3RhcnRCdXR0b246IHFmT25lKCdbZGF0YS1xZi1hY3Rpb249InN0YXJ0Il0nKSwKICAgICAgICBiYWNrQnV0dG9uOiBxZk9uZSgnW2RhdGEtcWYtYWN0aW9uPSJiYWNrIl0nKSwKICAgICAgICBjb3VudGVyOiBxZk9uZSgnW2RhdGEtcWYtY291bnRlcl0nKSwKICAgICAgICBwZXJjZW50OiBxZk9uZSgnW2RhdGEtcWYtcGVyY2VudF0nKSwKICAgICAgICBwcm9ncmVzc0JhcjogcWZPbmUoJ1tkYXRhLXFmLXByb2dyZXNzXScpLAogICAgICAgIHF1ZXN0aW9uQm94OiBxZk9uZSgnW2RhdGEtcWYtcXVlc3Rpb24tYm94XScpLAogICAgICAgIHF1ZXN0aW9uVGV4dDogcWZPbmUoJ1tkYXRhLXFmLXF1ZXN0aW9uLXRleHRdJyksCiAgICAgICAgb3B0aW9uczogcWZPbmUoJ1tkYXRhLXFmLW9wdGlvbnNdJyksCiAgICAgICAgbG9hZGluZ0ZpbGw6IHFmT25lKCdbZGF0YS1xZi1sb2FkaW5nLWZpbGxdJyksCiAgICAgICAgcmVzdWx0Q2FyZDogcWZPbmUoJ1tkYXRhLXFmLXJlc3VsdC1jYXJkXScpCiAgICAgIH07CgogICAgICB2YXIgcWZTdGF0ZSA9IHsKICAgICAgICBjdXJyZW50OiAwLAogICAgICAgIHNjb3JlczogeyBjbGF1ZGU6IDAsIGdlbWluaTogMCwgY2hhdGdwdDogMCwgZ3JvazogMCB9LAogICAgICAgIG1pbGVzdG9uZXM6IHsgY2xhdWRlOiBbXSwgZ2VtaW5pOiBbXSwgY2hhdGdwdDogW10sIGdyb2s6IFtdIH0sCiAgICAgICAgYW5zd2VyczogW10KICAgICAgfTsKCiAgICAgIGZ1bmN0aW9uIHFmU2hvd1NjcmVlbihuYW1lKSB7CiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhxZlNjcmVlbnMpOwogICAgICAgIHZhciBpOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSArPSAxKSB7CiAgICAgICAgICBxZlNjcmVlbnNba2V5c1tpXV0uY2xhc3NMaXN0LnJlbW92ZSgncWYtYWN0aXZlJyk7CiAgICAgICAgfQogICAgICAgIHFmU2NyZWVuc1tuYW1lXS5jbGFzc0xpc3QuYWRkKCdxZi1hY3RpdmUnKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZVcGRhdGVQcm9ncmVzcygpIHsKICAgICAgICB2YXIgY3VycmVudE51bWJlciA9IHFmU3RhdGUuY3VycmVudCArIDE7CiAgICAgICAgdmFyIHBlcmNlbnQgPSBNYXRoLnJvdW5kKChjdXJyZW50TnVtYmVyIC8gUUZfUVVFU1RJT05TLmxlbmd0aCkgKiAxMDApOwogICAgICAgIHFmVUkuY291bnRlci50ZXh0Q29udGVudCA9ICdRJyArIGN1cnJlbnROdW1iZXIgKyAnIC8gJyArIFFGX1FVRVNUSU9OUy5sZW5ndGg7CiAgICAgICAgcWZVSS5wZXJjZW50LnRleHRDb250ZW50ID0gcGVyY2VudCArICclJzsKICAgICAgICBxZlVJLnByb2dyZXNzQmFyLnN0eWxlLndpZHRoID0gcGVyY2VudCArICclJzsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZVcGRhdGVCYWNrQnV0dG9uKCkgewogICAgICAgIGlmIChxZlN0YXRlLmN1cnJlbnQgPiAwKSB7CiAgICAgICAgICBxZlVJLmJhY2tCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgncWYtaGlkZScpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBxZlVJLmJhY2tCdXR0b24uY2xhc3NMaXN0LmFkZCgncWYtaGlkZScpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZSZW5kZXJRdWVzdGlvbigpIHsKICAgICAgICB2YXIgaXRlbSA9IFFGX1FVRVNUSU9OU1txZlN0YXRlLmN1cnJlbnRdOwogICAgICAgIHFmVXBkYXRlUHJvZ3Jlc3MoKTsKICAgICAgICBxZlVwZGF0ZUJhY2tCdXR0b24oKTsKICAgICAgICBxZlVJLnF1ZXN0aW9uVGV4dC50ZXh0Q29udGVudCA9IGl0ZW0ucTsKICAgICAgICBxZlVJLm9wdGlvbnMuaW5uZXJIVE1MID0gJyc7CgogICAgICAgIGl0ZW0ub3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChvcHQsIGlkeCkgewogICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgICAgICAgYnV0dG9uLnR5cGUgPSAnYnV0dG9uJzsKICAgICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAncWYtYnRuIHFmLWJ0bi1vcHRpb24nOwoKICAgICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgICAgICAgIGxhYmVsLmNsYXNzTmFtZSA9ICdxZi1vcHRpb24tbGFiZWwnOwogICAgICAgICAgbGFiZWwudGV4dENvbnRlbnQgPSBRRl9PUFRJT05fTEFCRUxTW2lkeF0gfHwgJyc7CgogICAgICAgICAgdmFyIHRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgICAgICAgdGV4dFNwYW4udGV4dENvbnRlbnQgPSBvcHQudGV4dDsKCiAgICAgICAgICBidXR0b24uYXBwZW5kQ2hpbGQobGFiZWwpOwogICAgICAgICAgYnV0dG9uLmFwcGVuZENoaWxkKHRleHRTcGFuKTsKCiAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHFmU2VsZWN0QW5zd2VyKG9wdC50eXBlKTsKICAgICAgICAgIH0pOwogICAgICAgICAgcWZVSS5vcHRpb25zLmFwcGVuZENoaWxkKGJ1dHRvbik7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHFmU2VsZWN0QW5zd2VyKHR5cGUpIHsKICAgICAgICBxZlN0YXRlLmFuc3dlcnMucHVzaCh0eXBlKTsKICAgICAgICBxZlN0YXRlLnNjb3Jlc1t0eXBlXSArPSAxOwogICAgICAgIHFmU3RhdGUubWlsZXN0b25lc1t0eXBlXS5wdXNoKHFmU3RhdGUuY3VycmVudCArIDEpOwoKICAgICAgICBxZlVJLnF1ZXN0aW9uQm94LmNsYXNzTGlzdC5hZGQoJ3FmLWxlYXZpbmcnKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHFmVUkucXVlc3Rpb25Cb3guY2xhc3NMaXN0LnJlbW92ZSgncWYtbGVhdmluZycpOwogICAgICAgICAgcWZTdGF0ZS5jdXJyZW50ICs9IDE7CgogICAgICAgICAgaWYgKHFmU3RhdGUuY3VycmVudCA8IFFGX1FVRVNUSU9OUy5sZW5ndGgpIHsKICAgICAgICAgICAgcWZSZW5kZXJRdWVzdGlvbigpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CgogICAgICAgICAgcWZTaG93TG9hZGluZ1RoZW5SZXN1bHQoKTsKICAgICAgICB9LCAyMjApOwogICAgICB9CgogICAgICBmdW5jdGlvbiBxZkdvQmFjaygpIHsKICAgICAgICBpZiAocWZTdGF0ZS5jdXJyZW50IDw9IDApIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHZhciBwcmV2QW5zd2VyID0gcWZTdGF0ZS5hbnN3ZXJzLnBvcCgpOwogICAgICAgIGlmIChwcmV2QW5zd2VyKSB7CiAgICAgICAgICBxZlN0YXRlLnNjb3Jlc1twcmV2QW5zd2VyXSAtPSAxOwogICAgICAgICAgdmFyIG1zID0gcWZTdGF0ZS5taWxlc3RvbmVzW3ByZXZBbnN3ZXJdOwogICAgICAgICAgdmFyIGlkeCA9IG1zLmxhc3RJbmRleE9mKHFmU3RhdGUuY3VycmVudCk7CiAgICAgICAgICBpZiAoaWR4ICE9PSAtMSkgewogICAgICAgICAgICBtcy5zcGxpY2UoaWR4LCAxKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHFmVUkucXVlc3Rpb25Cb3guY2xhc3NMaXN0LmFkZCgncWYtbGVhdmluZycpOwogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgcWZVSS5xdWVzdGlvbkJveC5jbGFzc0xpc3QucmVtb3ZlKCdxZi1sZWF2aW5nJyk7CiAgICAgICAgICBxZlN0YXRlLmN1cnJlbnQgLT0gMTsKICAgICAgICAgIHFmUmVuZGVyUXVlc3Rpb24oKTsKICAgICAgICB9LCAyMjApOwogICAgICB9CgogICAgICBmdW5jdGlvbiBxZlBpY2tXaW5uZXIoKSB7CiAgICAgICAgdmFyIGVudHJpZXMgPSBPYmplY3Qua2V5cyhxZlN0YXRlLnNjb3JlcykubWFwKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgIHJldHVybiBba2V5LCBxZlN0YXRlLnNjb3Jlc1trZXldXTsKICAgICAgICB9KTsKCiAgICAgICAgdmFyIG1heCA9IC1JbmZpbml0eTsKICAgICAgICBlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CiAgICAgICAgICBpZiAoZW50cnlbMV0gPiBtYXgpIHsKICAgICAgICAgICAgbWF4ID0gZW50cnlbMV07CiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIHZhciBjYW5kaWRhdGVzID0gZW50cmllcwogICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAoZW50cnkpIHsKICAgICAgICAgICAgcmV0dXJuIGVudHJ5WzFdID09PSBtYXg7CiAgICAgICAgICB9KQogICAgICAgICAgLm1hcChmdW5jdGlvbiAoZW50cnkpIHsKICAgICAgICAgICAgcmV0dXJuIGVudHJ5WzBdOwogICAgICAgICAgfSk7CgogICAgICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA9PT0gMSkgewogICAgICAgICAgcmV0dXJuIFFGX1RZUEVTW2NhbmRpZGF0ZXNbMF1dOwogICAgICAgIH0KCiAgICAgICAgdmFyIHdpbm5lciA9IGNhbmRpZGF0ZXNbMF07CiAgICAgICAgdmFyIGVhcmxpZXN0ID0gcWZTdGF0ZS5taWxlc3RvbmVzW3dpbm5lcl1bbWF4IC0gMV0gfHwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwoKICAgICAgICBjYW5kaWRhdGVzLnNsaWNlKDEpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgdmFyIHJlYWNoZWRBdCA9IHFmU3RhdGUubWlsZXN0b25lc1trZXldW21heCAtIDFdIHx8IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKICAgICAgICAgIGlmIChyZWFjaGVkQXQgPCBlYXJsaWVzdCkgewogICAgICAgICAgICB3aW5uZXIgPSBrZXk7CiAgICAgICAgICAgIGVhcmxpZXN0ID0gcmVhY2hlZEF0OwogICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gUUZfVFlQRVNbd2lubmVyXTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZTaGFyZVRleHQocmVzdWx0KSB7CiAgICAgICAgcmV0dXJuIHJlc3VsdC5zaGFyZVRleHQgKyAnICPmirHjgYjovrzjgb/jgr/jgqTjg5foqLrmlq0gI+WIhui6q0FJ6Ki65patJzsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZSZW5kZXJSZXN1bHQocmVzdWx0KSB7CiAgICAgICAgdmFyIHNoYXJlVGV4dCA9IHFmU2hhcmVUZXh0KHJlc3VsdCk7CiAgICAgICAgdmFyIHBhZ2VVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgICAgICB2YXIgeFVybCA9ICdodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD90ZXh0PScgKyBlbmNvZGVVUklDb21wb25lbnQoc2hhcmVUZXh0KSArICcmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQocGFnZVVybCk7CiAgICAgICAgdmFyIGxpbmVQYXlsb2FkID0gc2hhcmVUZXh0ICsgJyAnICsgcGFnZVVybDsKICAgICAgICB2YXIgbGluZVVybCA9ICdodHRwczovL2xpbmUubWUvUi9tc2cvdGV4dC8/JyArIGVuY29kZVVSSUNvbXBvbmVudChsaW5lUGF5bG9hZCk7CgogICAgICAgIHZhciBjb2xvckEgPSByZXN1bHQuY29sb3JbMF07CiAgICAgICAgdmFyIGNvbG9yQiA9IHJlc3VsdC5jb2xvclsxXTsKCiAgICAgICAgcWZVSS5yZXN1bHRDYXJkLmlubmVySFRNTCA9ICcnICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJxZi10eXBlLWNvbG9yLWJhciIgc3R5bGU9ImJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEyMGRlZywnICsgY29sb3JBICsgJywnICsgY29sb3JCICsgJykiPjwvZGl2PicgKwogICAgICAgICAgJzxkaXYgY2xhc3M9InFmLXR5cGUtaGVhZCI+JyArCiAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJxZi10eXBlLWljb24iIHN0eWxlPSJiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDBkZWcsJyArIGNvbG9yQSArICcsJyArIGNvbG9yQiArICcpO2JvcmRlci1jb2xvcjonICsgY29sb3JBICsgJyI+JyArCiAgICAgICAgICAnICAgIDxzcGFuIHN0eWxlPSJmaWx0ZXI6YnJpZ2h0bmVzcygxMCkiPicgKyByZXN1bHQuaWNvbiArICc8L3NwYW4+JyArCiAgICAgICAgICAnICA8L2Rpdj4nICsKICAgICAgICAgICcgIDxkaXY+JyArCiAgICAgICAgICAnICAgIDxoMyBjbGFzcz0icWYtdHlwZS10aXRsZSI+JyArIHJlc3VsdC5uYW1lICsgJzwvaDM+JyArCiAgICAgICAgICAnICAgIDxkaXYgY2xhc3M9InFmLXBpbGwiPicgKyByZXN1bHQuc3ViICsgJzwvZGl2PicgKwogICAgICAgICAgJyAgPC9kaXY+JyArCiAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAnPHAgY2xhc3M9InFmLXJlc3VsdC1ibG9jayI+JyArIHJlc3VsdC5kZXNjICsgJzwvcD4nICsKICAgICAgICAgICc8cCBjbGFzcz0icWYtcmVzdWx0LWJsb2NrIj48c3Ryb25nPuaKseOBiOi+vOOBv+ODkeOCv+ODvOODs++8mjwvc3Ryb25nPicgKyByZXN1bHQuaG9sZCArICc8L3A+JyArCiAgICAgICAgICAnPHAgY2xhc3M9InFmLXJlc3VsdC1ibG9jayI+PHN0cm9uZz5BSeODkeODvOODiOODiuODvOOCouODieODkOOCpOOCue+8mjwvc3Ryb25nPicgKyByZXN1bHQuYWR2aWNlICsgJzwvcD4nICsKICAgICAgICAgICc8cCBjbGFzcz0icWYtY29yZS1tZXNzYWdlIiBzdHlsZT0iYm9yZGVyLWNvbG9yOicgKyBjb2xvckIgKyAnIj4nICsKICAgICAgICAgICflhajjgr/jgqTjg5fjga7nm7Lngrnjga/jgIzmirHjgYjovrzjgb/jgI3jga7kupznqK7jgILjganjga7jgr/jgqTjg5fjgafjgoLjgIznm7jmo5LjgI3jgYzlv4XopoHjgII8L3A+JyArCiAgICAgICAgICAnPHAgY2xhc3M9InFmLXVyZ2VudC1ub3RlIj7jgZPjga7ntZDmnpzjga/jg5rjg7zjgrjjgpLplonjgZjjgovjgagy5bqm44Go6KaL44Gk44GL44KJ44Gq44GE5Y+v6IO95oCn44GM44GC44KK44G+44GZ44CC4pGg44CM57WQ5p6cVVJM44KS5L+d5a2Y77yI44Kz44OU44O877yJ44CN4oaSIOKRoVgvTElOReOBp+OCt+OCp+OCoiDjga7poIbjgafpgLLjgoHjgabjgY/jgaDjgZXjgYTjgII8L3A+JyArCiAgICAgICAgICAnPGRpdiBjbGFzcz0icWYtc2hhcmUtZ3JpZCI+JyArCiAgICAgICAgICAnICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFmLWJ0biBxZi1idG4tc2hhcmUteCIgZGF0YS1xZi1zaGFyZT0ieCI+4pGhIFjjgafntZDmnpzjgpLjgrfjgqfjgqLjgZnjgos8L2J1dHRvbj4nICsKICAgICAgICAgICcgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWYtYnRuIHFmLWJ0bi1zaGFyZS1saW5lIiBkYXRhLXFmLXNoYXJlPSJsaW5lIj7ikaEgTElOReOBp+e1kOaenOOCkuOCt+OCp+OCouOBmeOCizwvYnV0dG9uPicgKwogICAgICAgICAgJyAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxZi1idG4gcWYtYnRuLXNoYXJlLWNvcHkiIGRhdGEtcWYtc2hhcmU9ImNvcHkiPuKRoCDlhYjjgavntZDmnpxVUkzjgpLkv53lrZjvvIjjgrPjg5Tjg7zvvIk8L2J1dHRvbj4nICsKICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJxZi1jdGEtYXJlYSI+JyArCiAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJxZi1jdGEtY2FyZCI+JyArCiAgICAgICAgICAnICAgIDxkaXYgY2xhc3M9InFmLWN0YS1jYXJkLWhlYWQiPicgKwogICAgICAgICAgJyAgICAgIDxkaXYgY2xhc3M9InFmLWN0YS1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj7wn5SNPC9kaXY+JyArCiAgICAgICAgICAnICAgICAgPGg0IGNsYXNzPSJxZi1jdGEtY2FyZC10aXRsZSI+44GC44Gq44Gf44Gu44CM5pys5b2T44Gu55uy54K544CN44KSMTXllY/jgafngpnjgorlh7rjgZk8L2g0PicgKwogICAgICAgICAgJyAgICA8L2Rpdj4nICsKICAgICAgICAgICcgICAgPHAgY2xhc3M9InFmLWN0YS1jYXJkLWRlc2MiPuOBk+OBrjXllY/jgafjga/opovjgYjjgarjgYvjgaPjgZ/jgIHmirHjgYjovrzjgb/jga7moLnmnKzljp/lm6DjgajpmqDjgozjgZ/lvLfjgb/jgpLlj6/oppbljJbjgZfjgb7jgZnjgII8L3A+JyArCiAgICAgICAgICAnICAgIDxhIGNsYXNzPSJxZi1idG4tY3RhLXByaW1hcnkiIGhyZWY9Ii9kZWVwLWRpYWdub3Npcy8/dHlwZT0nICsgcmVzdWx0LmtleSArICciPua3seWxpOiouuaWreOCkuWPl+OBkeOCi++8iOeEoeaWme+8iTwvYT4nICsKICAgICAgICAgICcgIDwvZGl2PicgKwogICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgJzxzZWN0aW9uIGNsYXNzPSJxZi1yZWctc2VjdGlvbiI+JyArCiAgICAgICAgICAnICA8aDQgY2xhc3M9InFmLXJlZy10aXRsZSI+6Ki65pat57WQ5p6c44KS44KC44Gj44Go5rS755So44GZ44KLPC9oND4nICsKICAgICAgICAgICcgIDxkaXYgY2xhc3M9InFmLXJlZy1ncmlkIj4nICsKICAgICAgICAgICcgICAgPGFydGljbGUgY2xhc3M9InFmLXJlZy1jYXJkIj4nICsKICAgICAgICAgICcgICAgICA8aDUgY2xhc3M9InFmLXJlZy1jYXJkLXRpdGxlIj5MSU5F44Gn5Y+X44GR5Y+W44KLPC9oNT4nICsKICAgICAgICAgICcgICAgICA8YSBjbGFzcz0icWYtcmVnLWxpbmUtYnRuIiBocmVmPSJodHRwczovL2xpbmUubWUvUi90aS9wL0Bxb3Y1NjUyZiI+PHNwYW4gY2xhc3M9InFmLXJlZy1saW5lLWljb24iPkxJTkU8L3NwYW4+TElORSDjgaflj4vjgaDjgaHjgavjgarjgos8L2E+JyArCiAgICAgICAgICAnICAgICAgPHAgY2xhc3M9InFmLXJlZy1zdWJ0ZXh0Ij7oqLrmlq3ntZDmnpzjga7oqbPjgZfjgYTop6PoqqzjgpJMSU5F44Gn44GK5bGK44GRPC9wPicgKwogICAgICAgICAgJyAgICA8L2FydGljbGU+JyArCiAgICAgICAgICAnICAgIDxhcnRpY2xlIGNsYXNzPSJxZi1yZWctY2FyZCI+JyArCiAgICAgICAgICAnICAgICAgPGg1IGNsYXNzPSJxZi1yZWctY2FyZC10aXRsZSI+44Oh44O844Or44Gn5Y+X44GR5Y+W44KLPC9oNT4nICsKICAgICAgICAgICcgICAgICA8Zm9ybSBjbGFzcz0icWYtcmVnLWZvcm0iIGFjdGlvbj0iI0FDVElWRUNBTVBBSUdOX0ZPUk1fQUNUSU9OIiBtZXRob2Q9IlBPU1QiPicgKwogICAgICAgICAgJyAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idSIgdmFsdWU9IkFDVElWRUNBTVBBSUdOX0ZPUk1fSUQiPicgKwogICAgICAgICAgJyAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZiIgdmFsdWU9IkFDVElWRUNBTVBBSUdOX0ZPUk1fSUQiPicgKwogICAgICAgICAgJyAgICAgICAgPGlucHV0IGNsYXNzPSJxZi1yZWctaW5wdXQiIHR5cGU9ImVtYWlsIiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IuODoeODvOODq+OCouODieODrOOCuSIgcmVxdWlyZWQ+JyArCiAgICAgICAgICAnICAgICAgICA8YnV0dG9uIGNsYXNzPSJxZi1yZWctc3VibWl0IiB0eXBlPSJzdWJtaXQiPuODoeODvOODq+OBp+WPl+OBkeWPluOCizwvYnV0dG9uPicgKwogICAgICAgICAgJyAgICAgIDwvZm9ybT4nICsKICAgICAgICAgICcgICAgICA8cCBjbGFzcz0icWYtcmVnLXN1YnRleHQiPkFJ44OR44O844OI44OK44O85rS755So6KGT44KS54Sh5paZ44Gn44Oh44O844Or6YWN5L+hPC9wPicgKwogICAgICAgICAgJyAgICAgIDxwIGNsYXNzPSJxZi1yZWctcHJpdmFjeSI+4oC7IOOBhOOBpOOBp+OCguino+mZpOOBp+OBjeOBvuOBmTwvcD4nICsKICAgICAgICAgICcgICAgPC9hcnRpY2xlPicgKwogICAgICAgICAgJyAgPC9kaXY+JyArCiAgICAgICAgICAnPC9zZWN0aW9uPicgKwogICAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWYtYnRuLXJlc3RhcnQiIGRhdGEtcWYtYWN0aW9uPSJyZXN0YXJ0Ij7jgoLjgYbkuIDluqboqLrmlq3jgZnjgos8L2J1dHRvbj4nICsKICAgICAgICAgICc8cCBjbGFzcz0icWYtc2hhcmUtbm90ZSI+44K344Kn44Ki5paH44Gr44Gv6Ki65pat44K/44Kk44OX44GM6Ieq5YuV5YWl5Yqb44GV44KM44G+44GZ44CC5L+d5a2Y5riI44G/44Gq44KJ44Gd44Gu44G+44G+5oqV56i/44Gn44GN44G+44GZ44CCPC9wPicgKwogICAgICAgICAgJzxwIGNsYXNzPSJxZi1mb290bm90ZSI+5YiG6LqrQUkuY29tIMOXIOOCr+OCpOOCuuODleODreODvDwvcD4nOwoKICAgICAgICB2YXIgc2hhcmVCdXR0b25zID0gcWZBbGwoJ1tkYXRhLXFmLXNoYXJlXScpOwogICAgICAgIHNoYXJlQnV0dG9ucy5mb3JFYWNoKGZ1bmN0aW9uIChidXR0b24pIHsKICAgICAgICAgIHZhciBraW5kID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnZGF0YS1xZi1zaGFyZScpOwoKICAgICAgICAgIGlmIChraW5kID09PSAneCcpIHsKICAgICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHhVcmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KCiAgICAgICAgICBpZiAoa2luZCA9PT0gJ2xpbmUnKSB7CiAgICAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB3aW5kb3cub3BlbihsaW5lVXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CgogICAgICAgICAgaWYgKGtpbmQgPT09ICdjb3B5JykgewogICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGRvbmVUZXh0ID0gJ+e1kOaenFVSTOOCkuS/neWtmOOBl+OBvuOBl+OBn+OAguasoeOBr+KRoVgvTElOReOBp+OCt+OCp+OCoic7CiAgICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpIHsKICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHBhZ2VVcmwpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSBkb25lVGV4dDsKICAgICAgICAgICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgcWZGYWxsYmFja0NvcHkocGFnZVVybCwgYnV0dG9uLCBkb25lVGV4dCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcWZGYWxsYmFja0NvcHkocGFnZVVybCwgYnV0dG9uLCBkb25lVGV4dCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgdmFyIHJlc3RhcnRCdXR0b24gPSBxZk9uZSgnW2RhdGEtcWYtYWN0aW9uPSJyZXN0YXJ0Il0nKTsKICAgICAgICBpZiAocmVzdGFydEJ1dHRvbikgewogICAgICAgICAgcmVzdGFydEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcWZSZXNldFN0YXRlKCk7CiAgICAgICAgICAgIHFmU2hvd1NjcmVlbignd2VsY29tZScpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBxZkZhbGxiYWNrQ29weSh0ZXh0LCBidXR0b24sIGRvbmVUZXh0KSB7CiAgICAgICAgdmFyIHRlbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOwogICAgICAgIHRlbXAudmFsdWUgPSB0ZXh0OwogICAgICAgIHFmQ29udGFpbmVyLmFwcGVuZENoaWxkKHRlbXApOwogICAgICAgIHRlbXAuZm9jdXMoKTsKICAgICAgICB0ZW1wLnNlbGVjdCgpOwogICAgICAgIHRyeSB7CiAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOwogICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gZG9uZVRleHQ7CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSAn44Kz44OU44O844Gr5aSx5pWX44GX44G+44GX44GfJzsKICAgICAgICB9CiAgICAgICAgdGVtcC5yZW1vdmUoKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZTaG93TG9hZGluZ1RoZW5SZXN1bHQoKSB7CiAgICAgICAgcWZTaG93U2NyZWVuKCdsb2FkaW5nJyk7CiAgICAgICAgaWYgKHFmVUkubG9hZGluZ0ZpbGwpIHsKICAgICAgICAgIHFmVUkubG9hZGluZ0ZpbGwuc3R5bGUud2lkdGggPSAnODglJzsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBxZlVJLmxvYWRpbmdGaWxsLnN0eWxlLndpZHRoID0gJzEwMCUnOwogICAgICAgICAgfSwgNDIwKTsKICAgICAgICB9CgogICAgICAgIHZhciByZXN1bHQgPSBxZlBpY2tXaW5uZXIoKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHFmUmVuZGVyUmVzdWx0KHJlc3VsdCk7CiAgICAgICAgICBxZlNob3dTY3JlZW4oJ3Jlc3VsdCcpOwogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHFmVUkucmVzdWx0Q2FyZC5jbGFzc0xpc3QuYWRkKCdxZi1yZXZlYWwnKTsKICAgICAgICAgIH0sIDMwKTsKICAgICAgICB9LCAxMjAwKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcWZSZXNldFN0YXRlKCkgewogICAgICAgIHFmU3RhdGUuY3VycmVudCA9IDA7CiAgICAgICAgcWZTdGF0ZS5zY29yZXMgPSB7IGNsYXVkZTogMCwgZ2VtaW5pOiAwLCBjaGF0Z3B0OiAwLCBncm9rOiAwIH07CiAgICAgICAgcWZTdGF0ZS5taWxlc3RvbmVzID0geyBjbGF1ZGU6IFtdLCBnZW1pbmk6IFtdLCBjaGF0Z3B0OiBbXSwgZ3JvazogW10gfTsKICAgICAgICBxZlN0YXRlLmFuc3dlcnMgPSBbXTsKICAgICAgICBxZlVJLnJlc3VsdENhcmQuY2xhc3NMaXN0LnJlbW92ZSgncWYtcmV2ZWFsJyk7CiAgICAgICAgcWZVSS5yZXN1bHRDYXJkLmlubmVySFRNTCA9ICcnOwogICAgICAgIGlmIChxZlVJLmxvYWRpbmdGaWxsKSB7CiAgICAgICAgICBxZlVJLmxvYWRpbmdGaWxsLnN0eWxlLndpZHRoID0gJzcyJSc7CiAgICAgICAgfQogICAgICAgIHFmVUkucHJvZ3Jlc3NCYXIuc3R5bGUud2lkdGggPSAnMCc7CiAgICAgIH0KCiAgICAgIHFmVUkuc3RhcnRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgcWZSZXNldFN0YXRlKCk7CiAgICAgICAgcWZTaG93U2NyZWVuKCdxdWl6Jyk7CiAgICAgICAgcWZSZW5kZXJRdWVzdGlvbigpOwogICAgICB9KTsKCiAgICAgIHFmVUkuYmFja0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICBxZkdvQmFjaygpOwogICAgICB9KTsKICAgIH0pKCk7CiAg
