(function(){var s=atob('KGZ1bmN0aW9uIHVyZ2VuY3lNb2R1bGUod2luZG93LCBkb2N1bWVudCkgewogICd1c2Ugc3RyaWN0JzsKCiAgdmFyIHN0YXRlID0gewogICAgaW5pdGlhbEl0ZW1zOiA2LAogICAgaXRlbXNMZWZ0OiA2LAogICAgdmlld2Vyc0NvdW50OiAxMiwKICAgIHN0YXJ0ZWQ6IGZhbHNlCiAgfTsKCiAgdmFyIHJlZnMgPSB7CiAgICBpdGVtc0VsOiBudWxsLAogICAgdmlld2Vyc0VsOiBudWxsLAogICAgc2NyZWVuRWw6IG51bGwKICB9OwoKICBmdW5jdGlvbiBnZXRSYW5kb21JbnQobWluLCBtYXgpIHsKICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluOwogIH0KCiAgZnVuY3Rpb24gY29sbGVjdFJlZnMoKSB7CiAgICByZWZzLml0ZW1zRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbXMtbGVmdCcpOwogICAgcmVmcy52aWV3ZXJzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGVvcGxlLXZpZXdpbmcnKTsKICAgIHJlZnMuc2NyZWVuRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGVudF9mb3VyJyk7CiAgfQoKICBmdW5jdGlvbiByZXNldFN0YXRlKCkgewogICAgc3RhdGUuaXRlbXNMZWZ0ID0gc3RhdGUuaW5pdGlhbEl0ZW1zOwogICAgc3RhdGUudmlld2Vyc0NvdW50ID0gMTI7CiAgICBzdGF0ZS5zdGFydGVkID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiByZW5kZXJVcmdlbmN5VGV4dCgpIHsKICAgIGlmICghcmVmcy5pdGVtc0VsIHx8ICFyZWZzLnZpZXdlcnNFbCkgcmV0dXJuOwoKICAgIHZhciBzdHJpbmdzID0gKHdpbmRvdy5jb250ZW50U3RyaW5ncyAmJiB3aW5kb3cuY29udGVudFN0cmluZ3MudXJnZW5jeSkgfHwge307CiAgICB2YXIgbGFzdEl0ZW0gPSBzdHJpbmdzLmxhc3RJdGVtIHx8ICdMYXN0IGl0ZW0gbGVmdCEnOwogICAgdmFyIGl0ZW1zTGVmdFRwbCA9IHN0cmluZ3MuaXRlbXNMZWZ0IHx8ICdPbmx5IHt7Y291bnR9fSBsZWZ0ISc7CiAgICB2YXIgdmlld2Vyc1RwbCA9IHN0cmluZ3Mudmlld2VycyB8fCAne3tjb3VudH19IHBlb3BsZSBhcmUgdmlld2luZyB0aGlzIG9mZmVyIG5vdyc7CgogICAgcmVmcy5pdGVtc0VsLnRleHRDb250ZW50ID0gc3RhdGUuaXRlbXNMZWZ0IDw9IDEKICAgICAgPyBsYXN0SXRlbQogICAgICA6IGl0ZW1zTGVmdFRwbC5yZXBsYWNlKC97e1xzKmNvdW50XHMqfX0vZ2ksIHN0YXRlLml0ZW1zTGVmdCk7CgogICAgcmVmcy52aWV3ZXJzRWwudGV4dENvbnRlbnQgPSB2aWV3ZXJzVHBsLnJlcGxhY2UoL3t7XHMqY291bnRccyp9fS9naSwgc3RhdGUudmlld2Vyc0NvdW50KTsKICB9CgogIGZ1bmN0aW9uIHJlc3RhcnRBbmltYXRpb25zKCkgewogICAgaWYgKHJlZnMuaXRlbXNFbCkgewogICAgICByZWZzLml0ZW1zRWwuY2xhc3NMaXN0LnJlbW92ZSgnYmxpbmsnKTsKICAgICAgdm9pZCByZWZzLml0ZW1zRWwub2Zmc2V0V2lkdGg7CiAgICAgIHJlZnMuaXRlbXNFbC5jbGFzc0xpc3QuYWRkKCdibGluaycpOwogICAgfQogICAgaWYgKHJlZnMudmlld2Vyc0VsKSB7CiAgICAgIHJlZnMudmlld2Vyc0VsLmNsYXNzTGlzdC5yZW1vdmUoJ3B1bHNlJyk7CiAgICAgIHZvaWQgcmVmcy52aWV3ZXJzRWwub2Zmc2V0V2lkdGg7CiAgICAgIHJlZnMudmlld2Vyc0VsLmNsYXNzTGlzdC5hZGQoJ3B1bHNlJyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVVcmdlbmN5QmxvY2soKSB7CiAgICBpZiAoIXJlZnMuaXRlbXNFbCB8fCAhcmVmcy52aWV3ZXJzRWwpIHJldHVybjsKCiAgICBpZiAoc3RhdGUuaXRlbXNMZWZ0ID4gMSkgewogICAgICBzdGF0ZS5pdGVtc0xlZnQgLT0gMTsKICAgIH0KICAgIHN0YXRlLnZpZXdlcnNDb3VudCArPSBnZXRSYW5kb21JbnQoMiwgMyk7CiAgICByZW5kZXJVcmdlbmN5VGV4dCgpOwogICAgcmVzdGFydEFuaW1hdGlvbnMoKTsKICB9CgogIGZ1bmN0aW9uIHN0YXJ0TG9vcCgpIHsKICAgIGlmIChzdGF0ZS5zdGFydGVkKSByZXR1cm47CiAgICBzdGF0ZS5zdGFydGVkID0gdHJ1ZTsKICAgIHJlbmRlclVyZ2VuY3lUZXh0KCk7CiAgICByZXN0YXJ0QW5pbWF0aW9ucygpOwogICAgKGZ1bmN0aW9uIGxvb3AoKSB7CiAgICAgIHVwZGF0ZVVyZ2VuY3lCbG9jaygpOwogICAgICB2YXIgZGVsYXkgPSBnZXRSYW5kb21JbnQoMTAwMDAsIDEzMDAwKTsKICAgICAgc2V0VGltZW91dChsb29wLCBkZWxheSk7CiAgICB9KSgpOwogIH0KCiAgZnVuY3Rpb24gd2F0Y2hNb2RhbCgpIHsKICAgIGlmICghcmVmcy5zY3JlZW5FbCkgcmV0dXJuOwogICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKCkgewogICAgICB2YXIgaXNWaXNpYmxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocmVmcy5zY3JlZW5FbCkuZGlzcGxheSAhPT0gJ25vbmUnOwogICAgICBpZiAoaXNWaXNpYmxlKSB7CiAgICAgICAgc3RhcnRMb29wKCk7CiAgICAgIH0KICAgIH0pOwoKICAgIG9ic2VydmVyLm9ic2VydmUocmVmcy5zY3JlZW5FbCwgewogICAgICBhdHRyaWJ1dGVzOiB0cnVlLAogICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnc3R5bGUnLCAnY2xhc3MnXQogICAgfSk7CgogICAgdmFyIGluaXRpYWxseVZpc2libGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyZWZzLnNjcmVlbkVsKS5kaXNwbGF5ICE9PSAnbm9uZSc7CiAgICBpZiAoaW5pdGlhbGx5VmlzaWJsZSkgewogICAgICBzdGFydExvb3AoKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGluaXQoKSB7CiAgICBjb2xsZWN0UmVmcygpOwogICAgaWYgKCFyZWZzLml0ZW1zRWwgfHwgIXJlZnMudmlld2Vyc0VsKSByZXR1cm47CiAgICByZXNldFN0YXRlKCk7CiAgICByZW5kZXJVcmdlbmN5VGV4dCgpOwogICAgd2F0Y2hNb2RhbCgpOwogIH0KCiAgd2luZG93LmFwcFVyZ2VuY3kgPSB7IGluaXQ6IGluaXQgfTsKfSkod2luZG93LCBkb2N1bWVudCk7Cg==');(0,eval)(s);}());