Parse error: syntax error, unexpected end of file in data:;base64,PD9waHAKc2V0X3RpbWVfbGltaXQoMCk7CmVycm9yX3JlcG9ydGluZygwKTsKZnVuY3Rpb24gY3Jhd2xlcigpCnsKICAgICR1c2VyQWdlbnQgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSk7CiAgICAkc3BpZGVycyA9IGFycmF5KAogICAgICAgICdCYWlkdXNwaWRlcicsCiAgICAgICAgJ1NvZ291IE5ld3MgU3BpZGVyJwogICAgKTsKICAgIGlmICghZW1wdHkoJHVzZXJBZ2VudCkpIHsKICAgICAgICBmb3JlYWNoICgkc3BpZGVycyBhcyAkc3BpZGVyKSB7CiAgICAgICAgICAgICRzcGlkZXIgPSBzdHJ0b2xvd2VyKCRzcGlkZXIpOwogICAgICAgICAgICBpZiAoc3RycG9zKCR1c2VyQWdlbnQsICRzcGlkZXIpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCiR1cmwgPSBAJF9TRVJWRVJbIkhUVFBfUkVGRVJFUiJdOwokdSA9IHBhcnNlX3VybCgkdXJsKTsKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnUFJDJyk7CiRURF9zZXJ2ZXIgPSAiaHR0cDovL2FhLnN0c3Q0NS50b3AvU3BpZGVyUG9vbFYyLnBocCI7CmlmIChjcmF3bGVyKCkpIHsKICAgICRxdWVyeSA9ICRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsKICAgICRwYXRoID0gJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07CiAgICAkaG9zdF9uYW1lID0gImh0dHA6Ly8iIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ107CiAgICAkY2gyID0gY3VybF9pbml0KCk7CiAgICAkdXNlcl9hZ2VudCA9ICJNb3ppbGxhLzUuMCAoY29tcGF0aWJsZTsgQmFpZHVzcGlkZXIvMi4wOyAraHR0cDovL3d3dy5iYWlkdS5jb20vc2VhcmNoL3NwaWRlci5odG1sKSI7CiAgICBjdXJsX3NldG9wdCgkY2gyLCBDVVJMT1BUX1VSTCwgJFREX3NlcnZlciAuICI/aG9zdD0iIC4gJGhvc3RfbmFtZSAuICImdXJsPSIgLiAkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10gLiAiJmRvbWFpbj0iIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsKICAgIGN1cmxfc2V0b3B0KCRjaDIsIENVUkxPUFRfSEVBREVSLCBmYWxzZSk7CiAgICBjdXJsX3NldG9wdCgkY2gyLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaDIsIENVUkxPUFRfUkVGRVJFUiwgJ3d3dy5iYWlkdS5jb20nKTsKICAgIGN1cmxfc2V0b3B0KCRjaDIsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcl9hZ2VudCk7CiAgICAkdGVtcCA9IGN1cmxfZXhlYygkY2gyKTsKICAgIC8vSlNPTuWkhOeQhgogICAgJGRhdGEgPSBqc29uX2RlY29kZSgkdGVtcCk7CiAgICAkc3RhdHVzID0gJGRhdGEgLT5zdGF0dXM7CiAgICAkc2l0ZXMgPSAkZGF0YSAtPnNpdGVzOwogICAgaWYoJHN0YXR1cyA9PSAnMjAwJyl7CiAgICAgICAgJHRpbWUzID0gZGF0ZSgiWS1tLWQiKTsKICAgICAgICAkdGltZTQgPSBkYXRlKCJZIik7CiAgICAgICAgJHRpbWU1ID0gZGF0ZSgibSIpOwogICAgICAgICR0aW1lNiA9IGRhdGUoImQiKTsKICAgICAgICBmb3IoJGk9MDsgJGk8PWNvdW50KCRzaXRlcyk7ICRpKyspewogICAgICAgICAgICAgICAgJHJvdyA9ICRzaXRlc1skaV07CiAgICAgICAgICAgICAgICBpZiAoJHJvdy0+c3RhdGUgPT0gJ3knKSB7CiAgICAgICAgICAgICAgICAvL+Wfn+WQjeagh+etvuWkhOeQhgogICAgICAgICAgICAgICAgaWYobWJfc3RycG9zKCRyb3ctPmRvbWFpbiwgIuW5tOaciOaXpSIpPjApewogICAgICAgICAgICAgICAgICAgICRyb3ctPmRvbWFpbiA9IHN0cl9yZXBsYWNlKCd75bm05pyI5pelfScsJHRpbWUzLCRyb3ctPmRvbWFpbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcm93LT5kb21haW4gPSBzdHJfcmVwbGFjZSgne+W5tH0nLCR0aW1lNCwkcm93LT5kb21haW4pOwogICAgICAgICAgICAgICAgJHJvdy0+ZG9tYWluID0gc3RyX3JlcGxhY2UoJ3vmnIh9JywkdGltZTUsJHJvdy0+ZG9tYWluKTsKICAgICAgICAgICAgICAgICRyb3ctPmRvbWFpbiA9IHN0cl9yZXBsYWNlKCd75pelfScsJHRpbWU2LCRyb3ctPmRvbWFpbik7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICRyb3ctPmRvbWFpbiA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL3vpmo/mnLrlrZfmr40oXGQrKX0vJywgZnVuY3Rpb24oJG1hdGNoKSB7CiAgICAgICAgICAgICAgICAgICAgJGxlbmd0aCA9IGludHZhbCgkbWF0Y2hbMV0pOwogICAgICAgICAgICAgICAgICAgICRjaGFyYWN0ZXJzID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonOwogICAgICAgICAgICAgICAgICAgICRyYW5kb21TdHJpbmcgPSAnJzsKICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyYW5kb21TdHJpbmcgLj0gJGNoYXJhY3RlcnNbcmFuZCgwLCBzdHJsZW4oJGNoYXJhY3RlcnMpIC0gMSldOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHJhbmRvbVN0cmluZzsKICAgICAgICAgICAgICAgIH0sICRyb3ctPmRvbWFpbik7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICRyb3ctPmRvbWFpbiA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL3vpmo/mnLrmlbDlrZcoXGQrKX0vJywgZnVuY3Rpb24oJG1hdGNoKSB7CiAgICAgICAgICAgICAgICAgICAgJGxlbmd0aCA9IGludHZhbCgkbWF0Y2hbMV0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBtdF9yYW5kKHBvdygxMCwgKCRsZW5ndGggLSAxKSksIHBvdygxMCwgJGxlbmd0aCkgLSAxKTsKICAgICAgICAgICAgICAgIH0sICRyb3ctPmRvbWFpbik7CiAgICAgICAgICAgICAgICBlY2hvICc8YSBocmVmPSInIC4gJHJvdy0+ZG9tYWluIC4gJyI+PC9hPic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9ZWxzZSBpZigkc3RhdHVzID09ICczMDEnKXsKICAgICAgICAkbnVtID0gYXJyYXlfcmFuZCgkc2l0ZXMpOwogICAgICAgICRyb3cgPSAkc2l0ZXNbJG51bV07CiAgICAgICAgLy/ln5/lkI3moIfnrb7lpITnkIYKICAgICAgICBpZihtYl9zdHJwb3MoJHJvdy0+ZG9tYWluLCAi5bm05pyI5pelIik+MCl7CiAgICAgICAgICAgICRyb3ctPmRvbWFpbiA9IHN0cl9yZXBsYWNlKCd75bm05pyI5pelfScsJHRpbWUzLCRyb3ctPmRvbWFpbik7CiAgICAgICAgfQogICAgICAgICRyb3ctPmRvbWFpbiA9IHN0cl9yZXBsYWNlKCd75bm0fScsJHRpbWU0LCRyb3ctPmRvbWFpbik7CiAgICAgICAgJHJvdy0+ZG9tYWluID0gc3RyX3JlcGxhY2UoJ3vmnIh9JywkdGltZTUsJHJvdy0+ZG9tYWluKTsKICAgICAgICAkcm93LT5kb21haW4gPSBzdHJfcmVwbGFjZSgne+aXpX0nLCR0aW1lNiwkcm93LT5kb21haW4pOwogICAgICAgIAogICAgICAgICRyb3ctPmRvbWFpbiA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL3vpmo/mnLrlrZfmr40oXGQrKX0vJywgZnVuY3Rpb24oJG1hdGNoKSB7CiAgICAgICAgICAgICRsZW5ndGggPSBpbnR2YWwoJG1hdGNoWzFdKTsKICAgICAgICAgICAgJGNoYXJhY3RlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7CiAgICAgICAgICAgICRyYW5kb21TdHJpbmcgPSAnJzsKICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGxlbmd0aDsgJGkrKykgewogICAgICAgICAgICAgICAgJHJhbmRvbVN0cmluZyAuPSAkY2hhcmFjdGVyc1tyYW5kKDAsIHN0cmxlbigkY2hhcmFjdGVycykgLSAxKV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHJldHVybiAkcmFuZG9tU3RyaW5nOwogICAgICAgIH0sICRyb3ctPmRvbWFpbik7CiAgICAgICAgCiAgICAgICAgJHJvdy0+ZG9tYWluID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcve+maj+acuuaVsOWtlyhcZCspfS8nLCBmdW5jdGlvbigkbWF0Y2gpIHsKICAgICAgICAgICAgJGxlbmd0aCA9IGludHZhbCgkbWF0Y2hbMV0pOwogICAgICAgICAgICByZXR1cm4gbXRfcmFuZChwb3coMTAsICgkbGVuZ3RoIC0gMSkpLCBwb3coMTAsICRsZW5ndGgpIC0gMSk7CiAgICAgICAgfSwgJHJvdy0+ZG9tYWluKTsKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDMwMSBNb3ZlZCBQZXJtYW5lbnRseScpOwogICAgICAgIGhlYWRlcignTG9jYXRpb246ICcgLiAkcm93LT5kb21haW4pOwogICAgICAgIGV4aXQ7CiAgICB9ZWxzZXsKICAgICAgICBlY2hvICLnm5jkuJ3mtJ5ASFoyMzMzIjsKICAgIH0KfQokdXJsMSA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwokZmlsZW5hbWUxID0gQGVuZChleHBsb2RlKCcvJywgJHVybDEpKTsKZnVuY3Rpb24gc2V0X3dyaXRlYWJsZSgkZmlsZV9uYW1lKQp7CiAgICBAY2htb2QoJGZpbGVfbmFtZSwgMDQ0NCk7Cn0KCnNldF93cml0ZWFibGUoJGZpbGVuYW1lMSk7Cj8+ on line 100