5lZCcgJiYgX1pQVHY3bjdrWlk3WDd0eE0gIT09IG51bGwpIHsKICAgICAgICB2YXIgX1B0MWJLQ3ZxOHJMTjZkTkYgPSBKU09OLnBhcnNlKF9aUFR2N243a1pZN1g3dHhNKTsKICAgICAgICB2YXIgX1hQbWREY013VGZTWENrcEYgPSBNYXRoLnJvdW5kKCtuZXcgRGF0ZSgpLzEwMDApOwogICAgICAgIGlmIChfUHQxYktDdnE4ckxONmRORi5jcmVhdGVkX2F0ICsgd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLnR0bCA8IF9YUG1kRGNNd1RmU1hDa3BGKSB7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdWJJZCcpOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG9rZW4nKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NvbmZpZycpOwogICAgICAgIH0KICAgIH0KICAgIHZhciBfSjRjTURyZE03eHI2UENudiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJJZCcpOwogICAgdmFyIF96eG1zU25Ed1BnaFFkS3RxID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJyk7CiAgICB2YXIgX1ZaN2t3cnMzeG1KVlBHTksgPSAnP3JldHVybj1qcy5jbGllbnQnOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmJyArIGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnJlcGxhY2UoJz8nLCAnJykpOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmc2VfcmVmZXJyZXI9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5yZWZlcnJlcik7CiAgICAgICAgX1ZaN2t3cnMzeG1KVlBHTksgKz0gJyZkZWZhdWx0X2tleXdvcmQ9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC50aXRsZSk7CiAgICAgICAgX1ZaN2t3cnMzeG1KVlBHTksgKz0gJyZsYW5kaW5nX3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lICsgZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUpOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmbmFtZT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmaG9zdD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5feUcyTUtZZkpzUmZ6TnJMbS5SX1BBVEgpOwogICAgaWYgKHR5cGVvZiBfSjRjTURyZE03eHI2UENudiAhPT0gJ3VuZGVmaW5lZCcgJiYgX0o0Y01EcmRNN3hyNlBDbnYgJiYgd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLnVuaXF1ZSkgewogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmc3ViX2lkPScgKyBlbmNvZGVVUklDb21wb25lbnQoX0o0Y01EcmRNN3hyNlBDbnYpOwogICAgfQogICAgaWYgKHR5cGVvZiBfenhtc1NuRHdQZ2hRZEt0cSAhPT0gJ3VuZGVmaW5lZCcgJiYgX3p4bXNTbkR3UGdoUWRLdHEgJiYgd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLnVuaXF1ZSkgewogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmdG9rZW49JyArIGVuY29kZVVSSUNvbXBvbmVudChfenhtc1NuRHdQZ2hRZEt0cSk7CiAgICB9CiAgICBpZiAoJycgIT09ICcnKSB7CiAgICAgICAgX1ZaN2t3cnMzeG1KVlBHTksgKz0gJyZieXBhc3NfY2FjaGU9JzsKICAgIH0KICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgYS50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnOwogICAgICAgIGEuc3JjID0gd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLlJfUEFUSCArIF9WWjdrd3JzM3htSlZQR05LOwogICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsIHMpCiAgICB9KSgpOw==">