You are viewing a single comment's thread from:

RE: beedollar Smart Contract

in #hive-engine2 months ago

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"botcontroller","params":"","code":"Y29uc3QgVVRJTElUWV9UT0tFTl9TWU1CT0w9IkJFRSIsQkFTRV9TWU1CT0w9IlNXQVAuSElWRSIsQkFTRV9TWU1CT0xfUFJFQ0lTSU9OPTgsQ0hBSU5fVFlQRT0iSElWRSI7YWN0aW9ucy51cGRhdGVQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2lmKGFwaS5zZW5kZXIhPT1hcGkub3duZXIpcmV0dXJuO2NvbnN0e2Jhc2ljRmVlOmJhc2ljRmVlLGJhc2ljU2V0dGluZ3NGZWU6YmFzaWNTZXR0aW5nc0ZlZSxwcmVtaXVtRmVlOnByZW1pdW1GZWUscHJlbWl1bUJhc2VTdGFrZTpwcmVtaXVtQmFzZVN0YWtlLHN0YWtlUGVyTWFya2V0OnN0YWtlUGVyTWFya2V0LGJhc2ljRHVyYXRpb25CbG9ja3M6YmFzaWNEdXJhdGlvbkJsb2NrcyxiYXNpY0Nvb2xkb3duQmxvY2tzOmJhc2ljQ29vbGRvd25CbG9ja3MsYmFzaWNNaW5UaWNrSW50ZXJ2YWxCbG9ja3M6YmFzaWNNaW5UaWNrSW50ZXJ2YWxCbG9ja3MscHJlbWl1bU1pblRpY2tJbnRlcnZhbEJsb2NrczpwcmVtaXVtTWluVGlja0ludGVydmFsQmxvY2tzLGJhc2ljTWF4VGlja3NQZXJCbG9jazpiYXNpY01heFRpY2tzUGVyQmxvY2sscHJlbWl1bU1heFRpY2tzUGVyQmxvY2s6cHJlbWl1bU1heFRpY2tzUGVyQmxvY2t9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtiYXNpY0ZlZSYmInN0cmluZyI9PXR5cGVvZiBiYXNpY0ZlZSYmIWFwaS5CaWdOdW1iZXIoYmFzaWNGZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIoYmFzaWNGZWUpLmd0ZSgwKSYmKHBhcmFtcy5iYXNpY0ZlZT1iYXNpY0ZlZSksYmFzaWNTZXR0aW5nc0ZlZSYmInN0cmluZyI9PXR5cGVvZiBiYXNpY1NldHRpbmdzRmVlJiYhYXBpLkJpZ051bWJlcihiYXNpY1NldHRpbmdzRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKGJhc2ljU2V0dGluZ3NGZWUpLmd0ZSgwKSYmKHBhcmFtcy5iYXNpY1NldHRpbmdzRmVlPWJhc2ljU2V0dGluZ3NGZWUpLHByZW1pdW1GZWUmJiJzdHJpbmciPT10eXBlb2YgcHJlbWl1bUZlZSYmIWFwaS5CaWdOdW1iZXIocHJlbWl1bUZlZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihwcmVtaXVtRmVlKS5ndGUoMCkmJihwYXJhbXMucHJlbWl1bUZlZT1wcmVtaXVtRmVlKSxwcmVtaXVtQmFzZVN0YWtlJiYic3RyaW5nIj09dHlwZW9mIHByZW1pdW1CYXNlU3Rha2UmJiFhcGkuQmlnTnVtYmVyKHByZW1pdW1CYXNlU3Rha2UpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocHJlbWl1bUJhc2VTdGFrZSkuZ3RlKDApJiYocGFyYW1zLnByZW1pdW1CYXNlU3Rha2U9cHJlbWl1bUJhc2VTdGFrZSksc3Rha2VQZXJNYXJrZXQmJiJzdHJpbmciPT10eXBlb2Ygc3Rha2VQZXJNYXJrZXQmJiFhcGkuQmlnTnVtYmVyKHN0YWtlUGVyTWFya2V0KS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHN0YWtlUGVyTWFya2V0KS5ndGUoMCkmJihwYXJhbXMuc3Rha2VQZXJNYXJrZXQ9c3Rha2VQZXJNYXJrZXQpLGJhc2ljRHVyYXRpb25CbG9ja3MmJiJudW1iZXIiPT10eXBlb2YgYmFzaWNEdXJhdGlvbkJsb2NrcyYmTnVtYmVyLmlzSW50ZWdlcihiYXNpY0R1cmF0aW9uQmxvY2tzKSYmYmFzaWNEdXJhdGlvbkJsb2Nrcz49MCYmKHBhcmFtcy5iYXNpY0R1cmF0aW9uQmxvY2tzPWJhc2ljRHVyYXRpb25CbG9ja3MpLGJhc2ljQ29vbGRvd25CbG9ja3MmJiJudW1iZXIiPT10eXBlb2YgYmFzaWNDb29sZG93bkJsb2NrcyYmTnVtYmVyLmlzSW50ZWdlcihiYXNpY0Nvb2xkb3duQmxvY2tzKSYmYmFzaWNDb29sZG93bkJsb2Nrcz49MCYmKHBhcmFtcy5iYXNpY0Nvb2xkb3duQmxvY2tzPWJhc2ljQ29vbGRvd25CbG9ja3MpLGJhc2ljTWluVGlja0ludGVydmFsQmxvY2tzJiYibnVtYmVyIj09dHlwZW9mIGJhc2ljTWluVGlja0ludGVydmFsQmxvY2tzJiZOdW1iZXIuaXNJbnRlZ2VyKGJhc2ljTWluVGlja0ludGVydmFsQmxvY2tzKSYmYmFzaWNNaW5UaWNrSW50ZXJ2YWxCbG9ja3M+PTAmJihwYXJhbXMuYmFzaWNNaW5UaWNrSW50ZXJ2YWxCbG9ja3M9YmFzaWNNaW5UaWNrSW50ZXJ2YWxCbG9ja3MpLHByZW1pdW1NaW5UaWNrSW50ZXJ2YWxCbG9ja3MmJiJudW1iZXIiPT10eXBlb2YgcHJlbWl1bU1pblRpY2tJbnRlcnZhbEJsb2NrcyYmTnVtYmVyLmlzSW50ZWdlcihwcmVtaXVtTWluVGlja0ludGVydmFsQmxvY2tzKSYmcHJlbWl1bU1pblRpY2tJbnRlcnZhbEJsb2Nrcz49MCYmKHBhcmFtcy5wcmVtaXVtTWluVGlja0ludGVydmFsQmxvY2tzPXByZW1pdW1NaW5UaWNrSW50ZXJ2YWxCbG9ja3MpLGJhc2ljTWF4VGlja3NQZXJCbG9jayYmIm51bWJlciI9PXR5cGVvZiBiYXNpY01heFRpY2tzUGVyQmxvY2smJk51bWJlci5pc0ludGVnZXIoYmFzaWNNYXhUaWNrc1BlckJsb2NrKSYmYmFzaWNNYXhUaWNrc1BlckJsb2NrPj0wJiYocGFyYW1zLmJhc2ljTWF4VGlja3NQZXJCbG9jaz1iYXNpY01heFRpY2tzUGVyQmxvY2spLHByZW1pdW1NYXhUaWNrc1BlckJsb2NrJiYibnVtYmVyIj09dHlwZW9mIHByZW1pdW1NYXhUaWNrc1BlckJsb2NrJiZOdW1iZXIuaXNJbnRlZ2VyKHByZW1pdW1NYXhUaWNrc1BlckJsb2NrKSYmcHJlbWl1bU1heFRpY2tzUGVyQmxvY2s+PTAmJihwYXJhbXMucHJlbWl1bU1heFRpY2tzUGVyQmxvY2s9cHJlbWl1bU1heFRpY2tzUGVyQmxvY2spLGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX07Y29uc3QgZ2V0Q3VycmVudFRpbWVzdGFtcD0oKT0+e2NvbnN0IGJsb2NrVGltZXN0YW1wPWFwaS5oaXZlQmxvY2tUaW1lc3RhbXA7cmV0dXJuIG5ldyBEYXRlKGAke2Jsb2NrVGltZXN0YW1wfS4wMDBaYCkuZ2V0VGltZSgpfSx1cGdyYWRlVXNlclNjaGVtYT1hc3luYygpPT57Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtsZXQgdXNlcnNUb0NoZWNrPWF3YWl0IGFwaS5kYi5maW5kKCJ1c2VycyIse3RpbWVMaW1pdEJsb2Nrczp7JGV4aXN0czohMH19KSxuYlVzZXJzPXVzZXJzVG9DaGVjay5sZW5ndGg7Zm9yKDtuYlVzZXJzPjA7KXtmb3IobGV0IGluZGV4PTA7aW5kZXg8bmJVc2VycztpbmRleCs9MSl7Y29uc3QgdXNlcj11c2Vyc1RvQ2hlY2tbaW5kZXhdO3VzZXIubGFzdFRpY2tUaW1lc3RhbXA9Z2V0Q3VycmVudFRpbWVzdGFtcCgpLHVzZXIubGFzdFRpY2tCbG9jaz1hcGkuYmxvY2tOdW1iZXIsdXNlci50aW1lTGltaXQ9MypwYXJhbXMuYmFzaWNEdXJhdGlvbkJsb2NrcyoxZTMsZGVsZXRlIHVzZXIudGltZUxpbWl0QmxvY2tzLGF3YWl0IGFwaS5kYi51cGRhdGUoInVzZXJzIix1c2VyLHt0aW1lTGltaXRCbG9ja3M6IiJ9KX11c2Vyc1RvQ2hlY2s9YXdhaXQgYXBpLmRiLmZpbmQoInVzZXJzIix7dGltZUxpbWl0QmxvY2tzOnskZXhpc3RzOiEwfX0pLG5iVXNlcnM9dXNlcnNUb0NoZWNrLmxlbmd0aH19LHVwZ3JhZGVNYXJrZXRTY2hlbWE9YXN5bmMoKT0+e2xldCBta3RzVG9DaGVjaz1hd2FpdCBhcGkuZGIuZmluZCgibWFya2V0cyIse3BsYWNlQXRCaWRXYWxsOnskZXhpc3RzOiExfX0pLG5iTWt0cz1ta3RzVG9DaGVjay5sZW5ndGg7Zm9yKDtuYk1rdHM+MDspe2ZvcihsZXQgaW5kZXg9MDtpbmRleDxuYk1rdHM7aW5kZXgrPTEpe2NvbnN0IG1hcmtldD1ta3RzVG9DaGVja1tpbmRleF07bWFya2V0LnBsYWNlQXRCaWRXYWxsPSIxMDAwMCIsbWFya2V0LnBsYWNlQXRTZWxsV2FsbD0iMTAwMDAiLGF3YWl0IGFwaS5kYi51cGRhdGUoIm1hcmtldHMiLG1hcmtldCl9bWt0c1RvQ2hlY2s9YXdhaXQgYXBpLmRiLmZpbmQoIm1hcmtldHMiLHtwbGFjZUF0QmlkV2FsbDp7JGV4aXN0czohMX19KSxuYk1rdHM9bWt0c1RvQ2hlY2subGVuZ3RofX0saXNUb2tlblRyYW5zZmVyVmVyaWZpZWQ9KHJlc3VsdCxmcm9tLHRvLHN5bWJvbCxxdWFudGl0eSxldmVudFN0cik9PiEodm9pZCAwIT09cmVzdWx0LmVycm9yc3x8IXJlc3VsdC5ldmVudHN8fHZvaWQgMD09PXJlc3VsdC5ldmVudHMuZmluZCgoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJmVsLmV2ZW50PT09ZXZlbnRTdHImJmVsLmRhdGEuZnJvbT09PWZyb20mJmVsLmRhdGEudG89PT10byYmYXBpLkJpZ051bWJlcihlbC5kYXRhLnF1YW50aXR5KS5lcShxdWFudGl0eSkmJmVsLmRhdGEuc3ltYm9sPT09c3ltYm9sKSkpLGNvdW50RGVjaW1hbHM9dmFsdWU9PmFwaS5CaWdOdW1iZXIodmFsdWUpLmRwKCksdmVyaWZ5VXRpbGl0eVRva2VuU3Rha2U9YXN5bmMoYW1vdW50LGFjY291bnQpPT57aWYoYXBpLkJpZ051bWJlcihhbW91bnQpLmx0ZSgwKSlyZXR1cm4hMDtjb25zdCB1dGlsaXR5VG9rZW5TdGFrZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphY2NvdW50LHN5bWJvbDoiQkVFIn0pO3JldHVybiEoIXV0aWxpdHlUb2tlblN0YWtlfHwhYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5TdGFrZS5zdGFrZSkuZ3RlKGFtb3VudCkpfSx2ZXJpZnlVdGlsaXR5VG9rZW5CYWxhbmNlPWFzeW5jKGFtb3VudCxhY2NvdW50KT0+e2lmKGFwaS5CaWdOdW1iZXIoYW1vdW50KS5sdGUoMCkpcmV0dXJuITA7Y29uc3QgdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphY2NvdW50LHN5bWJvbDoiQkVFIn0pO3JldHVybiEoIXV0aWxpdHlUb2tlbkJhbGFuY2V8fCFhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGFtb3VudCkpfSxidXJuRmVlPWFzeW5jKGFtb3VudCxpc1NpZ25lZFdpdGhBY3RpdmVLZXkpPT57aWYoYXBpLkJpZ051bWJlcihhbW91bnQpLmd0KDApKXtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6YW1vdW50LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTtpZighaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQocmVzLGFwaS5zZW5kZXIsIm51bGwiLCJCRUUiLGFtb3VudCwidHJhbnNmZXIiKSlyZXR1cm4hMX1yZXR1cm4hMH07YWN0aW9ucy5jcmVhdGVTU0M9YXN5bmMoKT0+e2lmKCExPT09YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKCJ1c2VycyIpKXthd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInVzZXJzIixbImFjY291bnQiLCJsYXN0VGlja0Jsb2NrIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgibWFya2V0cyIsWyJhY2NvdW50Iiwic3ltYm9sIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicGFyYW1zIik7Y29uc3QgcGFyYW1zPXtiYXNpY0ZlZToiMTAwIixiYXNpY1NldHRpbmdzRmVlOiIxIixwcmVtaXVtRmVlOiIxMDAiLHByZW1pdW1CYXNlU3Rha2U6IjEwMDAiLHN0YWtlUGVyTWFya2V0OiIyMDAiLGJhc2ljRHVyYXRpb25CbG9ja3M6NDAzMjAwLGJhc2ljQ29vbGRvd25CbG9ja3M6NDAzMjAwLGJhc2ljTWluVGlja0ludGVydmFsQmxvY2tzOjIwMCxwcmVtaXVtTWluVGlja0ludGVydmFsQmxvY2tzOjEwMCxiYXNpY01heFRpY2tzUGVyQmxvY2s6MjAscHJlbWl1bU1heFRpY2tzUGVyQmxvY2s6MzB9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNlIGF3YWl0IHVwZ3JhZGVVc2VyU2NoZW1hKCksYXdhaXQgdXBncmFkZU1hcmtldFNjaGVtYSgpfTtjb25zdCB0aWNrVXNlcnM9YXN5bmMocGFyYW1zLHVzZXJzLGN1cnJlbnRUaW1lc3RhbXAsdHhJZFByZWZpeCk9Pntjb25zdCBtYXJrZXRMaXN0PVtdO2ZvcihsZXQgaT0wO2k8dXNlcnMubGVuZ3RoO2krPTEpe2NvbnN0IHVzZXI9dXNlcnNbaV07bGV0IHVzZXJCYWxhbmNlPW51bGw7aWYodXNlci5pc1ByZW1pdW0pe3VzZXJCYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OnVzZXIuYWNjb3VudCxzeW1ib2w6IkJFRSJ9KTt1c2VyQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1c2VyQmFsYW5jZS5zdGFrZSkuZ3RlKHBhcmFtcy5wcmVtaXVtQmFzZVN0YWtlKXx8KHVzZXIuaXNQcmVtaXVtPSExKX1lbHNle2NvbnN0IHRpY2tJbnRlcnZhbD1jdXJyZW50VGltZXN0YW1wLXVzZXIubGFzdFRpY2tUaW1lc3RhbXA7dXNlci50aW1lTGltaXQtPXRpY2tJbnRlcnZhbCx1c2VyLnRpbWVMaW1pdDw9MCYmKHVzZXIudGltZUxpbWl0PTAsdXNlci5pc09uQ29vbGRvd249ITAsdXNlci5pc0VuYWJsZWQ9ITEpfWlmKHVzZXIubGFzdFRpY2tCbG9jaz1hcGkuYmxvY2tOdW1iZXIsdXNlci5sYXN0VGlja1RpbWVzdGFtcD1jdXJyZW50VGltZXN0YW1wLCF1c2VyLmlzRW5hYmxlZHx8dXNlci5lbmFibGVkTWFya2V0czwxKXthd2FpdCBhcGkuZGIudXBkYXRlKCJ1c2VycyIsdXNlcik7Y29udGludWV9Y29uc3QgYXV0aG9yaXplZEFjdGlvbj11c2VyLmlzUHJlbWl1bXx8MT09PXVzZXIubWFya2V0cztsZXQgaGFzRW5vdWdoU3Rha2VGb3JNYXJrZXRzPSExO2lmKGF1dGhvcml6ZWRBY3Rpb24pe3VzZXJCYWxhbmNlfHwodXNlckJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6dXNlci5hY2NvdW50LHN5bWJvbDoiQkVFIn0pKTtsZXQgcmVxdWlyZWRTdGFrZT1hcGkuQmlnTnVtYmVyKHBhcmFtcy5zdGFrZVBlck1hcmtldCkubXVsdGlwbGllZEJ5KHVzZXIubWFya2V0cyk7dXNlci5pc1ByZW1pdW0mJihyZXF1aXJlZFN0YWtlPXJlcXVpcmVkU3Rha2UucGx1cyhwYXJhbXMucHJlbWl1bUJhc2VTdGFrZSkpLGhhc0Vub3VnaFN0YWtlRm9yTWFya2V0cz11c2VyQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1c2VyQmFsYW5jZS5zdGFrZSkuZ3RlKHJlcXVpcmVkU3Rha2UpfWNvbnN0IG1hcmtldHM9YXdhaXQgYXBpLmRiLmZpbmQoIm1hcmtldHMiLHthY2NvdW50OnVzZXIuYWNjb3VudCxpc0VuYWJsZWQ6ITB9LHVzZXIubWFya2V0cywwLFt7aW5kZXg6InN5bWJvbCIsZGVzY2VuZGluZzohMX0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYoYXV0aG9yaXplZEFjdGlvbiYmaGFzRW5vdWdoU3Rha2VGb3JNYXJrZXRzKWF3YWl0IGFwaS5kYi51cGRhdGUoInVzZXJzIix1c2VyKSxtYXJrZXRzLmZvckVhY2goKG09Pnt1c2VyLmlzUHJlbWl1bXx8KG0uc3RyYXRlZ3k9MSksbWFya2V0TGlzdC5wdXNoKG0pfSkpO2Vsc2V7Zm9yKGxldCBqPTA7ajxtYXJrZXRzLmxlbmd0aDtqKz0xKXtjb25zdCBtYXJrZXQ9bWFya2V0c1tqXTttYXJrZXQuaXNFbmFibGVkPSExLHVzZXIuaXNQcmVtaXVtfHwobWFya2V0LnN0cmF0ZWd5PTEpLGF3YWl0IGFwaS5kYi51cGRhdGUoIm1hcmtldHMiLG1hcmtldCl9dXNlci5lbmFibGVkTWFya2V0cz0wLGF3YWl0IGFwaS5kYi51cGRhdGUoInVzZXJzIix1c2VyKX19bWFya2V0TGlzdC5sZW5ndGg+MCYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJtYXJrZXRtYWtlciIsInRpY2siLHttYXJrZXRzOm1hcmtldExpc3QsdHhJZEJhc2U6YCR7dHhJZFByZWZpeH0tJHthcGkuYmxvY2tOdW1iZXJ9LSR7YXBpLnRyYW5zYWN0aW9uSWR9YH0pfTthY3Rpb25zLnRpY2s9YXN5bmMoKT0+e2lmKGFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwibm90IGF1dGhvcml6ZWQiKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSxjdXJyZW50VGltZXN0YW1wPWdldEN1cnJlbnRUaW1lc3RhbXAoKSxjdXRvZmZCYXNpYz1jdXJyZW50VGltZXN0YW1wLTMqcGFyYW1zLmJhc2ljTWluVGlja0ludGVydmFsQmxvY2tzKjFlMyxjdXRvZmZQcmVtaXVtPWN1cnJlbnRUaW1lc3RhbXAtMypwYXJhbXMucHJlbWl1bU1pblRpY2tJbnRlcnZhbEJsb2NrcyoxZTMscGVuZGluZ0Jhc2ljVGlja3M9YXdhaXQgYXBpLmRiLmZpbmQoInVzZXJzIix7aXNFbmFibGVkOiEwLGlzUHJlbWl1bTohMSxsYXN0VGlja1RpbWVzdGFtcDp7JGx0ZTpjdXRvZmZCYXNpY319LHBhcmFtcy5iYXNpY01heFRpY2tzUGVyQmxvY2ssMCxbe2luZGV4OiJsYXN0VGlja0Jsb2NrIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTthd2FpdCB0aWNrVXNlcnMocGFyYW1zLHBlbmRpbmdCYXNpY1RpY2tzLGN1cnJlbnRUaW1lc3RhbXAsIk1NLUIiKTtjb25zdCBwZW5kaW5nUHJlbWl1bVRpY2tzPWF3YWl0IGFwaS5kYi5maW5kKCJ1c2VycyIse2lzRW5hYmxlZDohMCxpc1ByZW1pdW06ITAsbGFzdFRpY2tUaW1lc3RhbXA6eyRsdGU6Y3V0b2ZmUHJlbWl1bX19LHBhcmFtcy5wcmVtaXVtTWF4VGlja3NQZXJCbG9jaywwLFt7aW5kZXg6Imxhc3RUaWNrQmxvY2siLGRlc2NlbmRpbmc6ITF9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2F3YWl0IHRpY2tVc2VycyhwYXJhbXMscGVuZGluZ1ByZW1pdW1UaWNrcyxjdXJyZW50VGltZXN0YW1wLCJNTS1QIil9fSxhY3Rpb25zLnVwZ3JhZGU9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2lzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSxoYXNFbm91Z2hTdGFrZT1hd2FpdCB2ZXJpZnlVdGlsaXR5VG9rZW5TdGFrZShwYXJhbXMucHJlbWl1bUJhc2VTdGFrZSxhcGkuc2VuZGVyKTtpZihhcGkuYXNzZXJ0KGhhc0Vub3VnaFN0YWtlLCJ5b3UgZG8gbm90IGhhdmUgZW5vdWdoIHRva2VucyBzdGFrZWQiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHVzZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInVzZXJzIix7YWNjb3VudDphcGkuc2VuZGVyfSk7aWYoYXBpLmFzc2VydChudWxsIT09dXNlciwidXNlciBub3QgcmVnaXN0ZXJlZCIpJiZhcGkuYXNzZXJ0KCF1c2VyLmlzUHJlbWl1bSwidXNlciBpcyBhbHJlYWR5IHByZW1pdW0iKSl7aWYoIXVzZXIuaXNQcmVtaXVtRmVlUGFpZCl7Y29uc3QgYXV0aG9yaXplZFVwZ3JhZGU9YXdhaXQgdmVyaWZ5VXRpbGl0eVRva2VuQmFsYW5jZShwYXJhbXMucHJlbWl1bUZlZSxhcGkuc2VuZGVyKTtpZighYXBpLmFzc2VydChhdXRob3JpemVkVXBncmFkZSwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSBwcmVtaXVtIHVwZ3JhZGUgZmVlIikpcmV0dXJuITE7aWYoIWF3YWl0IGJ1cm5GZWUocGFyYW1zLnByZW1pdW1GZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5KSlyZXR1cm4hMX1yZXR1cm4gdXNlci5pc1ByZW1pdW1GZWVQYWlkPSEwLHVzZXIuaXNQcmVtaXVtPSEwLHVzZXIuaXNPbkNvb2xkb3duJiYodXNlci50aW1lTGltaXQ9MypwYXJhbXMuYmFzaWNEdXJhdGlvbkJsb2NrcyoxZTMpLHVzZXIuaXNPbkNvb2xkb3duPSExLHVzZXIubGFzdFRpY2tCbG9jaz1hcGkuYmxvY2tOdW1iZXIsdXNlci5sYXN0VGlja1RpbWVzdGFtcD1nZXRDdXJyZW50VGltZXN0YW1wKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgidXNlcnMiLHVzZXIpLGFwaS5lbWl0KCJ1cGdyYWRlIix7YWNjb3VudDphcGkuc2VuZGVyfSksITB9fXJldHVybiExfSxhY3Rpb25zLnR1cm5PZmY9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2lzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHVzZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInVzZXJzIix7YWNjb3VudDphcGkuc2VuZGVyfSk7aWYoYXBpLmFzc2VydChudWxsIT09dXNlciwidXNlciBub3QgcmVnaXN0ZXJlZCIpJiZhcGkuYXNzZXJ0KHVzZXIuaXNFbmFibGVkLCJhY2NvdW50IGFscmVhZHkgdHVybmVkIG9mZiIpKXtjb25zdCBjdXJyZW50VGltZXN0YW1wPWdldEN1cnJlbnRUaW1lc3RhbXAoKTtpZighdXNlci5pc1ByZW1pdW0pe2NvbnN0IHRpY2tJbnRlcnZhbD1jdXJyZW50VGltZXN0YW1wLXVzZXIubGFzdFRpY2tUaW1lc3RhbXA7dXNlci50aW1lTGltaXQtPXRpY2tJbnRlcnZhbCx1c2VyLnRpbWVMaW1pdDw9MCYmKHVzZXIudGltZUxpbWl0PTAsdXNlci5pc09uQ29vbGRvd249ITApfXVzZXIuaXNFbmFibGVkPSExLHVzZXIubGFzdFRpY2tCbG9jaz1hcGkuYmxvY2tOdW1iZXIsdXNlci5sYXN0VGlja1RpbWVzdGFtcD1jdXJyZW50VGltZXN0YW1wLGF3YWl0IGFwaS5kYi51cGRhdGUoInVzZXJzIix1c2VyKSxhcGkuZW1pdCgidHVybk9mZiIse2FjY291bnQ6YXBpLnNlbmRlcn0pfX19LGFjdGlvbnMudHVybk9uPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHVzZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInVzZXJzIix7YWNjb3VudDphcGkuc2VuZGVyfSk7aWYoYXBpLmFzc2VydChudWxsIT09dXNlciwidXNlciBub3QgcmVnaXN0ZXJlZCIpKXtjb25zdCBjdXJyZW50VGltZXN0YW1wPWdldEN1cnJlbnRUaW1lc3RhbXAoKSx0aWNrSW50ZXJ2YWw9Y3VycmVudFRpbWVzdGFtcC11c2VyLmxhc3RUaWNrVGltZXN0YW1wO2FwaS5hc3NlcnQoIXVzZXIuaXNFbmFibGVkLCJhY2NvdW50IGFscmVhZHkgdHVybmVkIG9uIikmJmFwaS5hc3NlcnQodXNlci5pc1ByZW1pdW18fCF1c2VyLmlzT25Db29sZG93bnx8dXNlci5pc09uQ29vbGRvd24mJnRpY2tJbnRlcnZhbD49MypwYXJhbXMuYmFzaWNDb29sZG93bkJsb2NrcyoxZTMsImNvb2xkb3duIGR1cmF0aW9uIG5vdCBleHBpcmVkIikmJih1c2VyLmlzRW5hYmxlZD0hMCx1c2VyLmlzT25Db29sZG93biYmKHVzZXIudGltZUxpbWl0PTMqcGFyYW1zLmJhc2ljRHVyYXRpb25CbG9ja3MqMWUzKSx1c2VyLmlzT25Db29sZG93bj0hMSx1c2VyLmxhc3RUaWNrQmxvY2s9YXBpLmJsb2NrTnVtYmVyLHVzZXIubGFzdFRpY2tUaW1lc3RhbXA9Y3VycmVudFRpbWVzdGFtcCxhd2FpdCBhcGkuZGIudXBkYXRlKCJ1c2VycyIsdXNlciksYXBpLmVtaXQoInR1cm5PbiIse2FjY291bnQ6YXBpLnNlbmRlcn0pKX19fSxhY3Rpb25zLmRpc2FibGVNYXJrZXQ9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiYiU1dBUC5ISVZFIiE9PXN5bWJvbCwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdXNlcj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidXNlcnMiLHthY2NvdW50OmFwaS5zZW5kZXJ9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT11c2VyLCJ1c2VyIG5vdCByZWdpc3RlcmVkIikpe2NvbnN0IG1hcmtldD1hd2FpdCBhcGkuZGIuZmluZE9uZSgibWFya2V0cyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sfSk7YXBpLmFzc2VydChudWxsIT09bWFya2V0LCJtYXJrZXQgbXVzdCBleGlzdCIpJiZtYXJrZXQuaXNFbmFibGVkJiYobWFya2V0LmlzRW5hYmxlZD0hMSxhd2FpdCBhcGkuZGIudXBkYXRlKCJtYXJrZXRzIixtYXJrZXQpLHVzZXIuZW5hYmxlZE1hcmtldHMtPTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgidXNlcnMiLHVzZXIpLGFwaS5lbWl0KCJkaXNhYmxlTWFya2V0Iix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpzeW1ib2x9KSl9fX0sYWN0aW9ucy5lbmFibGVNYXJrZXQ9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiYiU1dBUC5ISVZFIiE9PXN5bWJvbCwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdXNlcj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidXNlcnMiLHthY2NvdW50OmFwaS5zZW5kZXJ9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT11c2VyLCJ1c2VyIG5vdCByZWdpc3RlcmVkIikpe2NvbnN0IG1hcmtldD1hd2FpdCBhcGkuZGIuZmluZE9uZSgibWFya2V0cyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sfSk7aWYoYXBpLmFzc2VydChudWxsIT09bWFya2V0LCJtYXJrZXQgbXVzdCBleGlzdCIpJiYhbWFya2V0LmlzRW5hYmxlZCl7Y29uc3QgYXV0aG9yaXplZEFjdGlvbj11c2VyLmlzUHJlbWl1bXx8MT09PXVzZXIubWFya2V0cztpZihhcGkuYXNzZXJ0KGF1dGhvcml6ZWRBY3Rpb24sInVzZXIgaGFzIHRvbyBtYW55IG1hcmtldHM7IHByZW1pdW0gdXBncmFkZSByZXF1aXJlZCIpKXtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2xldCByZXF1aXJlZFN0YWtlPWFwaS5CaWdOdW1iZXIocGFyYW1zLnN0YWtlUGVyTWFya2V0KS5tdWx0aXBsaWVkQnkodXNlci5tYXJrZXRzKTt1c2VyLmlzUHJlbWl1bSYmKHJlcXVpcmVkU3Rha2U9cmVxdWlyZWRTdGFrZS5wbHVzKHBhcmFtcy5wcmVtaXVtQmFzZVN0YWtlKSk7Y29uc3QgaGFzRW5vdWdoU3Rha2U9YXdhaXQgdmVyaWZ5VXRpbGl0eVRva2VuU3Rha2UocmVxdWlyZWRTdGFrZSxhcGkuc2VuZGVyKTthcGkuYXNzZXJ0KGhhc0Vub3VnaFN0YWtlLCJtdXN0IHN0YWtlIG1vcmUgQkVFIHRvIGVuYWJsZSBtYXJrZXQiKSYmKG1hcmtldC5pc0VuYWJsZWQ9ITAsdXNlci5pc1ByZW1pdW18fChtYXJrZXQuc3RyYXRlZ3k9MSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgibWFya2V0cyIsbWFya2V0KSx1c2VyLmVuYWJsZWRNYXJrZXRzKz0xLGF3YWl0IGFwaS5kYi51cGRhdGUoInVzZXJzIix1c2VyKSxhcGkuZW1pdCgiZW5hYmxlTWFya2V0Iix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpzeW1ib2x9KSl9fX19fSxhY3Rpb25zLnJlbW92ZU1hcmtldD1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJiJTV0FQLkhJVkUiIT09c3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCB1c2VyPWF3YWl0IGFwaS5kYi5maW5kT25lKCJ1c2VycyIse2FjY291bnQ6YXBpLnNlbmRlcn0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PXVzZXIsInVzZXIgbm90IHJlZ2lzdGVyZWQiKSl7Y29uc3QgbWFya2V0PWF3YWl0IGFwaS5kYi5maW5kT25lKCJtYXJrZXRzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpzeW1ib2x9KTthcGkuYXNzZXJ0KG51bGwhPT1tYXJrZXQsIm1hcmtldCBtdXN0IGV4aXN0IikmJih1c2VyLm1hcmtldHMtPTEsbWFya2V0LmlzRW5hYmxlZCYmKHVzZXIuZW5hYmxlZE1hcmtldHMtPTEpLGF3YWl0IGFwaS5kYi51cGRhdGUoInVzZXJzIix1c2VyKSxhd2FpdCBhcGkuZGIucmVtb3ZlKCJtYXJrZXRzIixtYXJrZXQpLGFwaS5lbWl0KCJyZW1vdmVNYXJrZXQiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnN5bWJvbH0pKX19fTtjb25zdCB1cGRhdGVNYXJrZXRJbnRlcm5hbD1hc3luYyhwYXlsb2FkLG1hcmtldCxzaG91bGRQYXlGZWUscGFyYW1zKT0+e2NvbnN0e3N0cmF0ZWd5OnN0cmF0ZWd5LG1heEJpZFByaWNlOm1heEJpZFByaWNlLG1pblNlbGxQcmljZTptaW5TZWxsUHJpY2UsbWF4QmFzZVRvU3BlbmQ6bWF4QmFzZVRvU3BlbmQsbWluQmFzZVRvU3BlbmQ6bWluQmFzZVRvU3BlbmQsbWF4VG9rZW5zVG9TZWxsOm1heFRva2Vuc1RvU2VsbCxtaW5Ub2tlbnNUb1NlbGw6bWluVG9rZW5zVG9TZWxsLHByaWNlSW5jcmVtZW50OnByaWNlSW5jcmVtZW50LG1pblNwcmVhZDptaW5TcHJlYWQsbWF4RGlzdEZyb21OZXh0Om1heERpc3RGcm9tTmV4dCxpZ25vcmVPcmRlclF0eUx0Omlnbm9yZU9yZGVyUXR5THQscGxhY2VBdEJpZFdhbGw6cGxhY2VBdEJpZFdhbGwscGxhY2VBdFNlbGxXYWxsOnBsYWNlQXRTZWxsV2FsbH09cGF5bG9hZDtpZih2b2lkIDA9PT1zdHJhdGVneSYmdm9pZCAwPT09bWF4QmlkUHJpY2UmJnZvaWQgMD09PW1pblNlbGxQcmljZSYmdm9pZCAwPT09bWF4QmFzZVRvU3BlbmQmJnZvaWQgMD09PW1pbkJhc2VUb1NwZW5kJiZ2b2lkIDA9PT1tYXhUb2tlbnNUb1NlbGwmJnZvaWQgMD09PW1pblRva2Vuc1RvU2VsbCYmdm9pZCAwPT09cHJpY2VJbmNyZW1lbnQmJnZvaWQgMD09PW1pblNwcmVhZCYmdm9pZCAwPT09bWF4RGlzdEZyb21OZXh0JiZ2b2lkIDA9PT1pZ25vcmVPcmRlclF0eUx0JiZ2b2lkIDA9PT1wbGFjZUF0QmlkV2FsbCYmdm9pZCAwPT09cGxhY2VBdFNlbGxXYWxsKXJldHVybiExO2lmKGFwaS5hc3NlcnQodm9pZCAwPT09bWF4QmlkUHJpY2V8fG1heEJpZFByaWNlJiYic3RyaW5nIj09dHlwZW9mIG1heEJpZFByaWNlJiYhYXBpLkJpZ051bWJlcihtYXhCaWRQcmljZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihtYXhCaWRQcmljZSkuZ3QoMCkmJmNvdW50RGVjaW1hbHMobWF4QmlkUHJpY2UpPD04LCJpbnZhbGlkIG1heEJpZFByaWNlIikmJmFwaS5hc3NlcnQodm9pZCAwPT09bWluU2VsbFByaWNlfHxtaW5TZWxsUHJpY2UmJiJzdHJpbmciPT10eXBlb2YgbWluU2VsbFByaWNlJiYhYXBpLkJpZ051bWJlcihtaW5TZWxsUHJpY2UpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIobWluU2VsbFByaWNlKS5ndCgwKSYmY291bnREZWNpbWFscyhtaW5TZWxsUHJpY2UpPD04LCJpbnZhbGlkIG1pblNlbGxQcmljZSIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PW1heEJhc2VUb1NwZW5kfHxtYXhCYXNlVG9TcGVuZCYmInN0cmluZyI9PXR5cGVvZiBtYXhCYXNlVG9TcGVuZCYmIWFwaS5CaWdOdW1iZXIobWF4QmFzZVRvU3BlbmQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIobWF4QmFzZVRvU3BlbmQpLmd0KDApJiZjb3VudERlY2ltYWxzKG1heEJhc2VUb1NwZW5kKTw9OCwiaW52YWxpZCBtYXhCYXNlVG9TcGVuZCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PW1pbkJhc2VUb1NwZW5kfHxtaW5CYXNlVG9TcGVuZCYmInN0cmluZyI9PXR5cGVvZiBtaW5CYXNlVG9TcGVuZCYmIWFwaS5CaWdOdW1iZXIobWluQmFzZVRvU3BlbmQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIobWluQmFzZVRvU3BlbmQpLmd0KDApJiZjb3VudERlY2ltYWxzKG1pbkJhc2VUb1NwZW5kKTw9OCwiaW52YWxpZCBtaW5CYXNlVG9TcGVuZCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PW1heFRva2Vuc1RvU2VsbHx8bWF4VG9rZW5zVG9TZWxsJiYic3RyaW5nIj09dHlwZW9mIG1heFRva2Vuc1RvU2VsbCYmIWFwaS5CaWdOdW1iZXIobWF4VG9rZW5zVG9TZWxsKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKG1heFRva2Vuc1RvU2VsbCkuZ3QoMCkmJmNvdW50RGVjaW1hbHMobWF4VG9rZW5zVG9TZWxsKTw9bWFya2V0LnByZWNpc2lvbiwiaW52YWxpZCBtYXhUb2tlbnNUb1NlbGwiKSYmYXBpLmFzc2VydCh2b2lkIDA9PT1taW5Ub2tlbnNUb1NlbGx8fG1pblRva2Vuc1RvU2VsbCYmInN0cmluZyI9PXR5cGVvZiBtaW5Ub2tlbnNUb1NlbGwmJiFhcGkuQmlnTnVtYmVyKG1pblRva2Vuc1RvU2VsbCkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihtaW5Ub2tlbnNUb1NlbGwpLmd0KDApJiZjb3VudERlY2ltYWxzKG1pblRva2Vuc1RvU2VsbCk8PW1hcmtldC5wcmVjaXNpb24sImludmFsaWQgbWluVG9rZW5zVG9TZWxsIikmJmFwaS5hc3NlcnQodm9pZCAwPT09cHJpY2VJbmNyZW1lbnR8fHByaWNlSW5jcmVtZW50JiYic3RyaW5nIj09dHlwZW9mIHByaWNlSW5jcmVtZW50JiYhYXBpLkJpZ051bWJlcihwcmljZUluY3JlbWVudCkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihwcmljZUluY3JlbWVudCkuZ3QoMCkmJmNvdW50RGVjaW1hbHMocHJpY2VJbmNyZW1lbnQpPD04LCJpbnZhbGlkIHByaWNlSW5jcmVtZW50IikmJmFwaS5hc3NlcnQodm9pZCAwPT09bWluU3ByZWFkfHxtaW5TcHJlYWQmJiJzdHJpbmciPT10eXBlb2YgbWluU3ByZWFkJiYhYXBpLkJpZ051bWJlcihtaW5TcHJlYWQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIobWluU3ByZWFkKS5ndCgwKSYmY291bnREZWNpbWFscyhtaW5TcHJlYWQpPD04LCJpbnZhbGlkIG1pblNwcmVhZCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PW1heERpc3RGcm9tTmV4dHx8bWF4RGlzdEZyb21OZXh0JiYic3RyaW5nIj09dHlwZW9mIG1heERpc3RGcm9tTmV4dCYmIWFwaS5CaWdOdW1iZXIobWF4RGlzdEZyb21OZXh0KS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKG1heERpc3RGcm9tTmV4dCkuZ3QoMCkmJmNvdW50RGVjaW1hbHMobWF4RGlzdEZyb21OZXh0KTw9OCwiaW52YWxpZCBtYXhEaXN0RnJvbU5leHQiKSYmYXBpLmFzc2VydCh2b2lkIDA9PT1pZ25vcmVPcmRlclF0eUx0fHxpZ25vcmVPcmRlclF0eUx0JiYic3RyaW5nIj09dHlwZW9mIGlnbm9yZU9yZGVyUXR5THQmJiFhcGkuQmlnTnVtYmVyKGlnbm9yZU9yZGVyUXR5THQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIoaWdub3JlT3JkZXJRdHlMdCkuZ3QoMCkmJmNvdW50RGVjaW1hbHMoaWdub3JlT3JkZXJRdHlMdCk8PW1hcmtldC5wcmVjaXNpb24sImludmFsaWQgaWdub3JlT3JkZXJRdHlMdCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PXBsYWNlQXRCaWRXYWxsfHxwbGFjZUF0QmlkV2FsbCYmInN0cmluZyI9PXR5cGVvZiBwbGFjZUF0QmlkV2FsbCYmIWFwaS5CaWdOdW1iZXIocGxhY2VBdEJpZFdhbGwpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocGxhY2VBdEJpZFdhbGwpLmd0KDApJiZjb3VudERlY2ltYWxzKHBsYWNlQXRCaWRXYWxsKTw9bWFya2V0LnByZWNpc2lvbiwiaW52YWxpZCBwbGFjZUF0QmlkV2FsbCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PXBsYWNlQXRTZWxsV2FsbHx8cGxhY2VBdFNlbGxXYWxsJiYic3RyaW5nIj09dHlwZW9mIHBsYWNlQXRTZWxsV2FsbCYmIWFwaS5CaWdOdW1iZXIocGxhY2VBdFNlbGxXYWxsKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHBsYWNlQXRTZWxsV2FsbCkuZ3QoMCkmJmNvdW50RGVjaW1hbHMocGxhY2VBdFNlbGxXYWxsKTw9bWFya2V0LnByZWNpc2lvbiwiaW52YWxpZCBwbGFjZUF0U2VsbFdhbGwiKSl7aWYoc2hvdWxkUGF5RmVlJiYhYXdhaXQgYnVybkZlZShwYXJhbXMuYmFzaWNTZXR0aW5nc0ZlZSwhMCkpcmV0dXJuITE7Y29uc3QgdXBkYXRlPXthY2NvdW50Om1hcmtldC5hY2NvdW50LHN5bWJvbDptYXJrZXQuc3ltYm9sfTtyZXR1cm4gdm9pZCAwIT09c3RyYXRlZ3kmJnN0cmF0ZWd5PjAmJih1cGRhdGUub2xkU3RyYXRlZ3k9bWFya2V0LnN0cmF0ZWd5LG1hcmtldC5zdHJhdGVneT1zdHJhdGVneSx1cGRhdGUubmV3U3RyYXRlZ3k9c3RyYXRlZ3kpLG1heEJpZFByaWNlJiYodXBkYXRlLm9sZE1heEJpZFByaWNlPW1hcmtldC5tYXhCaWRQcmljZSxtYXJrZXQubWF4QmlkUHJpY2U9bWF4QmlkUHJpY2UsdXBkYXRlLm5ld01heEJpZFByaWNlPW1heEJpZFByaWNlKSxtaW5TZWxsUHJpY2UmJih1cGRhdGUub2xkTWluU2VsbFByaWNlPW1hcmtldC5taW5TZWxsUHJpY2UsbWFya2V0Lm1pblNlbGxQcmljZT1taW5TZWxsUHJpY2UsdXBkYXRlLm5ld01pblNlbGxQcmljZT1taW5TZWxsUHJpY2UpLG1heEJhc2VUb1NwZW5kJiYodXBkYXRlLm9sZE1heEJhc2VUb1NwZW5kPW1hcmtldC5tYXhCYXNlVG9TcGVuZCxtYXJrZXQubWF4QmFzZVRvU3BlbmQ9bWF4QmFzZVRvU3BlbmQsdXBkYXRlLm5ld01heEJhc2VUb1NwZW5kPW1heEJhc2VUb1NwZW5kKSxtaW5CYXNlVG9TcGVuZCYmKHVwZGF0ZS5vbGRNaW5CYXNlVG9TcGVuZD1tYXJrZXQubWluQmFzZVRvU3BlbmQsbWFya2V0Lm1pbkJhc2VUb1NwZW5kPW1pbkJhc2VUb1NwZW5kLHVwZGF0ZS5uZXdNaW5CYXNlVG9TcGVuZD1taW5CYXNlVG9TcGVuZCksbWF4VG9rZW5zVG9TZWxsJiYodXBkYXRlLm9sZE1heFRva2Vuc1RvU2VsbD1tYXJrZXQubWF4VG9rZW5zVG9TZWxsLG1hcmtldC5tYXhUb2tlbnNUb1NlbGw9bWF4VG9rZW5zVG9TZWxsLHVwZGF0ZS5uZXdNYXhUb2tlbnNUb1NlbGw9bWF4VG9rZW5zVG9TZWxsKSxtaW5Ub2tlbnNUb1NlbGwmJih1cGRhdGUub2xkTWluVG9rZW5zVG9TZWxsPW1hcmtldC5taW5Ub2tlbnNUb1NlbGwsbWFya2V0Lm1pblRva2Vuc1RvU2VsbD1taW5Ub2tlbnNUb1NlbGwsdXBkYXRlLm5ld01pblRva2Vuc1RvU2VsbD1taW5Ub2tlbnNUb1NlbGwpLHByaWNlSW5jcmVtZW50JiYodXBkYXRlLm9sZFByaWNlSW5jcmVtZW50PW1hcmtldC5wcmljZUluY3JlbWVudCxtYXJrZXQucHJpY2VJbmNyZW1lbnQ9cHJpY2VJbmNyZW1lbnQsdXBkYXRlLm5ld1ByaWNlSW5jcmVtZW50PXByaWNlSW5jcmVtZW50KSxtaW5TcHJlYWQmJih1cGRhdGUub2xkTWluU3ByZWFkPW1hcmtldC5taW5TcHJlYWQsbWFya2V0Lm1pblNwcmVhZD1taW5TcHJlYWQsdXBkYXRlLm5ld01pblNwcmVhZD1taW5TcHJlYWQpLG1heERpc3RGcm9tTmV4dCYmKHVwZGF0ZS5vbGRNYXhEaXN0RnJvbU5leHQ9bWFya2V0Lm1heERpc3RGcm9tTmV4dCxtYXJrZXQubWF4RGlzdEZyb21OZXh0PW1heERpc3RGcm9tTmV4dCx1cGRhdGUubmV3TWF4RGlzdEZyb21OZXh0PW1heERpc3RGcm9tTmV4dCksaWdub3JlT3JkZXJRdHlMdCYmKHVwZGF0ZS5vbGRJZ25vcmVPcmRlclF0eUx0PW1hcmtldC5pZ25vcmVPcmRlclF0eUx0LG1hcmtldC5pZ25vcmVPcmRlclF0eUx0PWlnbm9yZU9yZGVyUXR5THQsdXBkYXRlLm5ld0lnbm9yZU9yZGVyUXR5THQ9aWdub3JlT3JkZXJRdHlMdCkscGxhY2VBdEJpZFdhbGwmJih1cGRhdGUub2xkUGxhY2VBdEJpZFdhbGw9bWFya2V0LnBsYWNlQXRCaWRXYWxsLG1hcmtldC5wbGFjZUF0QmlkV2FsbD1wbGFjZUF0QmlkV2FsbCx1cGRhdGUubmV3UGxhY2VBdEJpZFdhbGw9cGxhY2VBdEJpZFdhbGwpLHBsYWNlQXRTZWxsV2FsbCYmKHVwZGF0ZS5vbGRQbGFjZUF0U2VsbFdhbGw9bWFya2V0LnBsYWNlQXRTZWxsV2FsbCxtYXJrZXQucGxhY2VBdFNlbGxXYWxsPXBsYWNlQXRTZWxsV2FsbCx1cGRhdGUubmV3UGxhY2VBdFNlbGxXYWxsPXBsYWNlQXRTZWxsV2FsbCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgibWFya2V0cyIsbWFya2V0KSxhcGkuZW1pdCgidXBkYXRlTWFya2V0Iix1cGRhdGUpLCEwfXJldHVybiExfTthY3Rpb25zLnVwZGF0ZU1hcmtldD1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxzdHJhdGVneTpzdHJhdGVneSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHN0cmF0VHlwZXM9WzEsMiwzXTtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiYiU1dBUC5ISVZFIiE9PXN5bWJvbCwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdXNlcj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidXNlcnMiLHthY2NvdW50OmFwaS5zZW5kZXJ9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT11c2VyLCJ1c2VyIG5vdCByZWdpc3RlcmVkIikmJmFwaS5hc3NlcnQodm9pZCAwPT09c3RyYXRlZ3l8fCJudW1iZXIiPT10eXBlb2Ygc3RyYXRlZ3kmJk51bWJlci5pc0ludGVnZXIoc3RyYXRlZ3kpJiZzdHJhdFR5cGVzLmluY2x1ZGVzKHN0cmF0ZWd5KSYmdXNlci5pc1ByZW1pdW0sImludmFsaWQgcGFyYW1zIG9yIHVzZXIgbm90IHByZW1pdW0iKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtsZXQgYXV0aG9yaXplZEFjdGlvbj0hMTtpZihhdXRob3JpemVkQWN0aW9uPSEhdXNlci5pc1ByZW1pdW18fGF3YWl0IHZlcmlmeVV0aWxpdHlUb2tlbkJhbGFuY2UocGFyYW1zLmJhc2ljU2V0dGluZ3NGZWUsYXBpLnNlbmRlciksYXBpLmFzc2VydChhdXRob3JpemVkQWN0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIHNldHRpbmdzIGNoYW5nZSBmZWUiKSl7Y29uc3QgbWFya2V0PWF3YWl0IGFwaS5kYi5maW5kT25lKCJtYXJrZXRzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT1tYXJrZXQsIm1hcmtldCBtdXN0IGV4aXN0Iikpe3JldHVybiBhd2FpdCB1cGRhdGVNYXJrZXRJbnRlcm5hbChwYXlsb2FkLG1hcmtldCwhdXNlci5pc1ByZW1pdW0scGFyYW1zKX19fX1yZXR1cm4hMX0sYWN0aW9ucy5hZGRNYXJrZXQ9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsc3RyYXRlZ3k6c3RyYXRlZ3ksaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxzdHJhdFR5cGVzPVsxLDIsM107aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmIlNXQVAuSElWRSIhPT1zeW1ib2wsImludmFsaWQgcGFyYW1zIikpe2NvbnN0IHVzZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInVzZXJzIix7YWNjb3VudDphcGkuc2VuZGVyfSk7aWYoYXBpLmFzc2VydChudWxsIT09dXNlciwidXNlciBub3QgcmVnaXN0ZXJlZCIpJiZhcGkuYXNzZXJ0KHZvaWQgMD09PXN0cmF0ZWd5fHwibnVtYmVyIj09dHlwZW9mIHN0cmF0ZWd5JiZOdW1iZXIuaXNJbnRlZ2VyKHN0cmF0ZWd5KSYmc3RyYXRUeXBlcy5pbmNsdWRlcyhzdHJhdGVneSkmJnVzZXIuaXNQcmVtaXVtLCJpbnZhbGlkIHBhcmFtcyBvciB1c2VyIG5vdCBwcmVtaXVtIikpe2NvbnN0IHRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PXRva2VuLCJzeW1ib2wgbXVzdCBleGlzdCIpKXtjb25zdCBtYXJrZXQ9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIm1hcmtldHMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbD09PW1hcmtldCwibWFya2V0IGFscmVhZHkgYWRkZWQiKSl7Y29uc3QgYXV0aG9yaXplZEFkZGl0aW9uPXVzZXIuaXNQcmVtaXVtfHwwPT09dXNlci5tYXJrZXRzO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZEFkZGl0aW9uLCJub3QgYWxsb3dlZCB0byBhZGQgYW5vdGhlciBtYXJrZXQiKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtsZXQgcmVxdWlyZWRTdGFrZT1hcGkuQmlnTnVtYmVyKHBhcmFtcy5zdGFrZVBlck1hcmtldCkubXVsdGlwbGllZEJ5KHVzZXIubWFya2V0cysxKTt1c2VyLmlzUHJlbWl1bSYmKHJlcXVpcmVkU3Rha2U9cmVxdWlyZWRTdGFrZS5wbHVzKHBhcmFtcy5wcmVtaXVtQmFzZVN0YWtlKSk7Y29uc3QgaGFzRW5vdWdoU3Rha2U9YXdhaXQgdmVyaWZ5VXRpbGl0eVRva2VuU3Rha2UocmVxdWlyZWRTdGFrZSxhcGkuc2VuZGVyKTtpZihhcGkuYXNzZXJ0KGhhc0Vub3VnaFN0YWtlLCJtdXN0IHN0YWtlIG1vcmUgQkVFIHRvIGFkZCBhIG1hcmtldCIpKXtjb25zdCBuZXdNYXJrZXQ9e2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sLHByZWNpc2lvbjp0b2tlbi5wcmVjaXNpb24sc3RyYXRlZ3k6MSxtYXhCaWRQcmljZToiMTAwMCIsbWluU2VsbFByaWNlOiIwLjAwMDAwMDAxIixtYXhCYXNlVG9TcGVuZDoiMTAwIixtaW5CYXNlVG9TcGVuZDoiMSIsbWF4VG9rZW5zVG9TZWxsOiIxMDAiLG1pblRva2Vuc1RvU2VsbDoiMSIscHJpY2VJbmNyZW1lbnQ6IjAuMDAwMDEiLG1pblNwcmVhZDoiMC4wMDAwMDAwMSIsbWF4RGlzdEZyb21OZXh0OiIwLjAwMDEiLGlnbm9yZU9yZGVyUXR5THQ6IjUwIixwbGFjZUF0QmlkV2FsbDoiMTAwMDAiLHBsYWNlQXRTZWxsV2FsbDoiMTAwMDAiLGlzRW5hYmxlZDohMCxjcmVhdGlvblRpbWVzdGFtcDpnZXRDdXJyZW50VGltZXN0YW1wKCksY3JlYXRpb25CbG9jazphcGkuYmxvY2tOdW1iZXJ9LGFkZGVkTWFya2V0PWF3YWl0IGFwaS5kYi5pbnNlcnQoIm1hcmtldHMiLG5ld01hcmtldCk7YXBpLmVtaXQoImFkZE1hcmtldCIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sfSksdXNlci5tYXJrZXRzKz0xLHVzZXIuZW5hYmxlZE1hcmtldHMrPTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgidXNlcnMiLHVzZXIpLGF3YWl0IHVwZGF0ZU1hcmtldEludGVybmFsKHBheWxvYWQsYWRkZWRNYXJrZXQsITEscGFyYW1zKX19fX19fX0sYWN0aW9ucy5yZWdpc3Rlcj1hc3luYyBwYXlsb2FkPT57Y29uc3R7aXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLGF1dGhvcml6ZWRSZWdpc3RyYXRpb249YXdhaXQgdmVyaWZ5VXRpbGl0eVRva2VuQmFsYW5jZShwYXJhbXMuYmFzaWNGZWUsYXBpLnNlbmRlcik7aWYoYXBpLmFzc2VydChhdXRob3JpemVkUmVnaXN0cmF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIHJlZ2lzdHJhdGlvbiBmZWUiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHVzZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInVzZXJzIix7YWNjb3VudDphcGkuc2VuZGVyfSk7aWYoYXBpLmFzc2VydChudWxsPT09dXNlciwidXNlciBhbHJlYWR5IHJlZ2lzdGVyZWQiKSl7aWYoIWF3YWl0IGJ1cm5GZWUocGFyYW1zLmJhc2ljRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleSkpcmV0dXJuITE7Y29uc3QgY3JlYXRpb25UaW1lc3RhbXA9Z2V0Q3VycmVudFRpbWVzdGFtcCgpLG5ld1VzZXI9e2FjY291bnQ6YXBpLnNlbmRlcixpc1ByZW1pdW06ITEsaXNQcmVtaXVtRmVlUGFpZDohMSxpc09uQ29vbGRvd246ITEsaXNFbmFibGVkOiEwLG1hcmtldHM6MCxlbmFibGVkTWFya2V0czowLHRpbWVMaW1pdDozKnBhcmFtcy5iYXNpY0R1cmF0aW9uQmxvY2tzKjFlMyxsYXN0VGlja1RpbWVzdGFtcDpjcmVhdGlvblRpbWVzdGFtcCxsYXN0VGlja0Jsb2NrOmFwaS5ibG9ja051bWJlcixjcmVhdGlvblRpbWVzdGFtcDpjcmVhdGlvblRpbWVzdGFtcCxjcmVhdGlvbkJsb2NrOmFwaS5ibG9ja051bWJlcn07cmV0dXJuIGF3YWl0IGFwaS5kYi5pbnNlcnQoInVzZXJzIixuZXdVc2VyKSxhcGkuZW1pdCgicmVnaXN0ZXIiLHthY2NvdW50OmFwaS5zZW5kZXJ9KSwhMH19cmV0dXJuITF9Ow=="}}}