{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"nftmarket","params":"","code":"Y29uc3QgQ09OVFJBQ1RfTkFNRT0ibmZ0bWFya2V0IixNQVhfTlVNX1VOSVRTX09QRVJBQkxFPTUwO2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PnshMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygicGFyYW1zIikmJmF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicGFyYW1zIixbInN5bWJvbCJdKX07Y29uc3QgaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQ9KHJlc3VsdCxmcm9tLHRvLHN5bWJvbCxxdWFudGl0eSxldmVudFN0cik9PiEodm9pZCAwIT09cmVzdWx0LmVycm9yc3x8IXJlc3VsdC5ldmVudHN8fHZvaWQgMD09PXJlc3VsdC5ldmVudHMuZmluZCgoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJmVsLmV2ZW50PT09ZXZlbnRTdHImJmVsLmRhdGEuZnJvbT09PWZyb20mJmVsLmRhdGEudG89PT10byYmYXBpLkJpZ051bWJlcihlbC5kYXRhLnF1YW50aXR5KS5lcShxdWFudGl0eSkmJmVsLmRhdGEuc3ltYm9sPT09c3ltYm9sKSkpLGNvdW50RGVjaW1hbHM9dmFsdWU9PmFwaS5CaWdOdW1iZXIodmFsdWUpLmRwKCksaXNWYWxpZEhpdmVBY2NvdW50TGVuZ3RoPWFjY291bnQ9PmFjY291bnQubGVuZ3RoPj0zJiZhY2NvdW50Lmxlbmd0aDw9MTYsbWFrZU1hcEtleT0oYWNjb3VudCx0eXBlKT0+YWNjb3VudCsiLSIrdHlwZSxtYWtlR3JvdXBpbmdLZXk9KGdyb3VwaW5nLGdyb3VwQnkpPT57bGV0IGtleT0iIjtyZXR1cm4gZ3JvdXBCeS5mb3JFYWNoKChuYW1lPT57a2V5PWtleSsiOiIrbmFtZSsiOiIrZ3JvdXBpbmdbbmFtZV19KSksa2V5fSxpc1ZhbGlkSWRBcnJheT1hcnI9Pnt0cnl7aWYoIWFwaS5hc3NlcnQoYXJyJiYib2JqZWN0Ij09dHlwZW9mIGFyciYmQXJyYXkuaXNBcnJheShhcnIpLCJpbnZhbGlkIGlkIGxpc3QiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChhcnIubGVuZ3RoPD01MCwiY2Fubm90IGFjdCBvbiBtb3JlIHRoYW4gNTAgSURzIGF0IG9uY2UiKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPGFyci5sZW5ndGg7aSs9MSl7Y29uc3QgaWQ9YXJyW2ldO2lmKCFhcGkuYXNzZXJ0KGlkJiYic3RyaW5nIj09dHlwZW9mIGlkJiYhYXBpLkJpZ051bWJlcihpZCkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihpZCkuZ3QoMCksImludmFsaWQgaWQgbGlzdCIpKXJldHVybiExfX1jYXRjaChlKXtyZXR1cm4hMX1yZXR1cm4hMH07YWN0aW9ucy5lbmFibGVNYXJrZXQ9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCBuZnQ9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJuZnQiLCJuZnRzIix7c3ltYm9sOnN5bWJvbH0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PW5mdCwic3ltYm9sIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQobmZ0Lmlzc3Vlcj09PWFwaS5zZW5kZXIsIm11c3QgYmUgdGhlIGlzc3VlciIpKXtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsbWV0cmljc1RhYmxlTmFtZT1zeW1ib2wrIm9wZW5JbnRlcmVzdCIsaGlzdG9yeVRhYmxlTmFtZT1zeW1ib2wrInRyYWRlc0hpc3RvcnkiLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2FwaS5hc3NlcnQoITE9PT10YWJsZUV4aXN0cywibWFya2V0IGFscmVhZHkgZW5hYmxlZCIpJiYoYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKG1hcmtldFRhYmxlTmFtZSxbIm93bmVkQnkiLCJhY2NvdW50IiwibmZ0SWQiLCJncm91cGluZyIsInByaWNlU3ltYm9sIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZShtZXRyaWNzVGFibGVOYW1lLFsic2lkZSIsInByaWNlU3ltYm9sIiwiZ3JvdXBpbmciXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKGhpc3RvcnlUYWJsZU5hbWUsWyJwcmljZVN5bWJvbCIsInRpbWVzdGFtcCJdKSxhcGkuZW1pdCgiZW5hYmxlTWFya2V0Iix7c3ltYm9sOnN5bWJvbH0pKX19fTtjb25zdCB1cGRhdGVPcGVuSW50ZXJlc3Q9YXN5bmMoc2lkZSxzeW1ib2wscHJpY2VTeW1ib2wsZ3JvdXBzLGdyb3VwQnkpPT57Y29uc3QgbWV0cmljc1RhYmxlTmFtZT1zeW1ib2wrIm9wZW5JbnRlcmVzdCIsZ3JvdXBLZXlzPVtdO2Zvcihjb25zdCBpbmZvIG9mIE9iamVjdC52YWx1ZXMoZ3JvdXBzKSlncm91cEtleXMucHVzaChpbmZvLmdyb3VwaW5nKTtpZihncm91cEtleXMubGVuZ3RoPD0wKXJldHVybjtjb25zdCBvcGVuSW50ZXJlc3Q9YXdhaXQgYXBpLmRiLmZpbmQobWV0cmljc1RhYmxlTmFtZSx7c2lkZTpzaWRlLHByaWNlU3ltYm9sOnByaWNlU3ltYm9sLGdyb3VwaW5nOnskaW46Z3JvdXBLZXlzfX0sNTAsMCxbe2luZGV4OiJzaWRlIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6InByaWNlU3ltYm9sIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Imdyb3VwaW5nIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8b3BlbkludGVyZXN0Lmxlbmd0aDtpKz0xKXtjb25zdCBtZXRyaWM9b3BlbkludGVyZXN0W2ldLGtleT1tYWtlR3JvdXBpbmdLZXkobWV0cmljLmdyb3VwaW5nLGdyb3VwQnkpO2tleSBpbiBncm91cHMmJihncm91cHNba2V5XS5pc0luQ29sbGVjdGlvbj0hMCxtZXRyaWMuY291bnQrPWdyb3Vwc1trZXldLmNvdW50LG1ldHJpYy5jb3VudDwwJiYobWV0cmljLmNvdW50PTApLGF3YWl0IGFwaS5kYi51cGRhdGUobWV0cmljc1RhYmxlTmFtZSxtZXRyaWMpKX1mb3IoY29uc3QgaW5mbyBvZiBPYmplY3QudmFsdWVzKGdyb3VwcykpaWYoIWluZm8uaXNJbkNvbGxlY3Rpb24pe2NvbnN0IGZpbmFsQ291bnQ9aW5mby5jb3VudD4wP2luZm8uY291bnQ6MCxuZXdNZXRyaWM9e3NpZGU6c2lkZSxwcmljZVN5bWJvbDpwcmljZVN5bWJvbCxncm91cGluZzppbmZvLmdyb3VwaW5nLGNvdW50OmZpbmFsQ291bnR9O2F3YWl0IGFwaS5kYi5pbnNlcnQobWV0cmljc1RhYmxlTmFtZSxuZXdNZXRyaWMpfX0sdXBkYXRlVHJhZGVzSGlzdG9yeT1hc3luYyh0eXBlLGFjY291bnQsb3duZWRCeSxjb3VudGVycGFydGllcyxzeW1ib2wscHJpY2VTeW1ib2wscHJpY2UsaXNNYXJrZXRGZWVQYWlkLG1hcmtldEFjY291bnQsZmVlLGlzQWdlbnRGZWVQYWlkLGFnZW50QWNjb3VudCxhZ2VudEZlZSx2b2x1bWUpPT57Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGAke2FwaS5oaXZlQmxvY2tUaW1lc3RhbXB9LjAwMFpgKSx0aW1lc3RhbXBTZWM9YmxvY2tEYXRlLmdldFRpbWUoKS8xZTMsdGltZXN0YW1wTWludXMyNGhycz1ibG9ja0RhdGUuc2V0VVRDRGF0ZShibG9ja0RhdGUuZ2V0VVRDRGF0ZSgpLTEpLzFlMyxoaXN0b3J5VGFibGVOYW1lPXN5bWJvbCsidHJhZGVzSGlzdG9yeSI7bGV0IHRyYWRlc1RvRGVsZXRlPWF3YWl0IGFwaS5kYi5maW5kKGhpc3RvcnlUYWJsZU5hbWUse3ByaWNlU3ltYm9sOnByaWNlU3ltYm9sLHRpbWVzdGFtcDp7JGx0OnRpbWVzdGFtcE1pbnVzMjRocnN9fSwxZTMsMCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSksbmJUcmFkZXNUb0RlbGV0ZT10cmFkZXNUb0RlbGV0ZS5sZW5ndGg7Zm9yKDtuYlRyYWRlc1RvRGVsZXRlPjA7KXtmb3IobGV0IGluZGV4PTA7aW5kZXg8bmJUcmFkZXNUb0RlbGV0ZTtpbmRleCs9MSl7Y29uc3QgdHJhZGU9dHJhZGVzVG9EZWxldGVbaW5kZXhdO2F3YWl0IGFwaS5kYi5yZW1vdmUoaGlzdG9yeVRhYmxlTmFtZSx0cmFkZSl9dHJhZGVzVG9EZWxldGU9YXdhaXQgYXBpLmRiLmZpbmQoaGlzdG9yeVRhYmxlTmFtZSx7cHJpY2VTeW1ib2w6cHJpY2VTeW1ib2wsdGltZXN0YW1wOnskbHQ6dGltZXN0YW1wTWludXMyNGhyc319LDFlMywwLFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKSxuYlRyYWRlc1RvRGVsZXRlPXRyYWRlc1RvRGVsZXRlLmxlbmd0aH1jb25zdCBuZXdUcmFkZT17fTtuZXdUcmFkZS50eXBlPXR5cGUsbmV3VHJhZGUuYWNjb3VudD1hY2NvdW50LG5ld1RyYWRlLm93bmVkQnk9b3duZWRCeSxuZXdUcmFkZS5jb3VudGVycGFydGllcz1jb3VudGVycGFydGllcyxuZXdUcmFkZS5wcmljZVN5bWJvbD1wcmljZVN5bWJvbCxuZXdUcmFkZS5wcmljZT1wcmljZSxpc01hcmtldEZlZVBhaWQmJihuZXdUcmFkZS5tYXJrZXRBY2NvdW50PW1hcmtldEFjY291bnQsbmV3VHJhZGUuZmVlPWZlZSksaXNBZ2VudEZlZVBhaWQmJihuZXdUcmFkZS5hZ2VudEFjY291bnQ9YWdlbnRBY2NvdW50LG5ld1RyYWRlLmFnZW50RmVlPWFnZW50RmVlKSxuZXdUcmFkZS50aW1lc3RhbXA9dGltZXN0YW1wU2VjLG5ld1RyYWRlLnZvbHVtZT12b2x1bWUsYXdhaXQgYXBpLmRiLmluc2VydChoaXN0b3J5VGFibGVOYW1lLG5ld1RyYWRlKX07YWN0aW9ucy5zZXRNYXJrZXRQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsb2ZmaWNpYWxNYXJrZXQ6b2ZmaWNpYWxNYXJrZXQsYWdlbnRDdXQ6YWdlbnRDdXQsbWluRmVlOm1pbkZlZSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wsImludmFsaWQgcGFyYW1zIikpcmV0dXJuITE7aWYodm9pZCAwPT09b2ZmaWNpYWxNYXJrZXQmJnZvaWQgMD09PWFnZW50Q3V0JiZ2b2lkIDA9PT1taW5GZWUpcmV0dXJuITE7Y29uc3QgbWFya2V0VGFibGVOYW1lPXN5bWJvbCsic2VsbEJvb2siLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHRhYmxlRXhpc3RzLCJtYXJrZXQgbm90IGVuYWJsZWQgZm9yIHN5bWJvbCIpJiZhcGkuYXNzZXJ0KCh2b2lkIDA9PT1vZmZpY2lhbE1hcmtldHx8b2ZmaWNpYWxNYXJrZXQmJiJzdHJpbmciPT10eXBlb2Ygb2ZmaWNpYWxNYXJrZXQmJmlzVmFsaWRIaXZlQWNjb3VudExlbmd0aChvZmZpY2lhbE1hcmtldC50cmltKCkudG9Mb3dlckNhc2UoKSkpJiYodm9pZCAwPT09YWdlbnRDdXR8fCJudW1iZXIiPT10eXBlb2YgYWdlbnRDdXQmJmFnZW50Q3V0Pj0wJiZhZ2VudEN1dDw9MWU0JiZOdW1iZXIuaXNJbnRlZ2VyKGFnZW50Q3V0KSkmJih2b2lkIDA9PT1taW5GZWV8fCJudW1iZXIiPT10eXBlb2YgbWluRmVlJiZtaW5GZWU+PTAmJm1pbkZlZTw9MWU0JiZOdW1iZXIuaXNJbnRlZ2VyKG1pbkZlZSkpLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCBuZnQ9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJuZnQiLCJuZnRzIix7c3ltYm9sOnN5bWJvbH0pO2lmKG5mdCYmYXBpLmFzc2VydChuZnQuaXNzdWVyPT09YXBpLnNlbmRlciwibXVzdCBiZSB0aGUgaXNzdWVyIikpe2xldCBzaG91bGRVcGRhdGU9ITEsaXNGaXJzdFRpbWVTZXQ9ITE7Y29uc3QgdXBkYXRlPXtzeW1ib2w6c3ltYm9sfTtsZXQgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHtzeW1ib2w6c3ltYm9sfSk7cGFyYW1zfHwoaXNGaXJzdFRpbWVTZXQ9ITAscGFyYW1zPXtzeW1ib2w6c3ltYm9sfSk7Y29uc3QgZmluYWxPZmZpY2lhbE1hcmtldD12b2lkIDAhPT1vZmZpY2lhbE1hcmtldD9vZmZpY2lhbE1hcmtldC50cmltKCkudG9Mb3dlckNhc2UoKTpudWxsO2lmKHZvaWQgMD09PW9mZmljaWFsTWFya2V0fHx2b2lkIDAhPT1wYXJhbXMub2ZmaWNpYWxNYXJrZXQmJmZpbmFsT2ZmaWNpYWxNYXJrZXQ9PT1wYXJhbXMub2ZmaWNpYWxNYXJrZXR8fCh2b2lkIDAhPT1wYXJhbXMub2ZmaWNpYWxNYXJrZXQmJih1cGRhdGUub2xkT2ZmaWNpYWxNYXJrZXQ9cGFyYW1zLm9mZmljaWFsTWFya2V0KSxwYXJhbXMub2ZmaWNpYWxNYXJrZXQ9ZmluYWxPZmZpY2lhbE1hcmtldCx1cGRhdGUub2ZmaWNpYWxNYXJrZXQ9ZmluYWxPZmZpY2lhbE1hcmtldCxzaG91bGRVcGRhdGU9ITApLHZvaWQgMD09PWFnZW50Q3V0fHx2b2lkIDAhPT1wYXJhbXMuYWdlbnRDdXQmJmFnZW50Q3V0PT09cGFyYW1zLmFnZW50Q3V0fHwodm9pZCAwIT09cGFyYW1zLmFnZW50Q3V0JiYodXBkYXRlLm9sZEFnZW50Q3V0PXBhcmFtcy5hZ2VudEN1dCkscGFyYW1zLmFnZW50Q3V0PWFnZW50Q3V0LHVwZGF0ZS5hZ2VudEN1dD1hZ2VudEN1dCxzaG91bGRVcGRhdGU9ITApLHZvaWQgMD09PW1pbkZlZXx8dm9pZCAwIT09cGFyYW1zLm1pbkZlZSYmbWluRmVlPT09cGFyYW1zLm1pbkZlZXx8KHZvaWQgMCE9PXBhcmFtcy5taW5GZWUmJih1cGRhdGUub2xkTWluRmVlPXBhcmFtcy5taW5GZWUpLHBhcmFtcy5taW5GZWU9bWluRmVlLHVwZGF0ZS5taW5GZWU9bWluRmVlLHNob3VsZFVwZGF0ZT0hMCksc2hvdWxkVXBkYXRlKXJldHVybiBpc0ZpcnN0VGltZVNldD9hd2FpdCBhcGkuZGIuaW5zZXJ0KCJwYXJhbXMiLHBhcmFtcyk6YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpLGFwaS5lbWl0KCJzZXRNYXJrZXRQYXJhbXMiLHVwZGF0ZSksITB9fXJldHVybiExfSxhY3Rpb25zLmNoYW5nZVByaWNlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLG5mdHM6bmZ0cyxwcmljZTpwcmljZSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wsImludmFsaWQgcGFyYW1zIikpcmV0dXJuO2NvbnN0IG1hcmtldFRhYmxlTmFtZT1zeW1ib2wrInNlbGxCb29rIix0YWJsZUV4aXN0cz1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMobWFya2V0VGFibGVOYW1lKTtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmaXNWYWxpZElkQXJyYXkobmZ0cykmJmFwaS5hc3NlcnQocHJpY2UmJiJzdHJpbmciPT10eXBlb2YgcHJpY2UmJiFhcGkuQmlnTnVtYmVyKHByaWNlKS5pc05hTigpLCJpbnZhbGlkIHBhcmFtcyIpJiZhcGkuYXNzZXJ0KHRhYmxlRXhpc3RzLCJtYXJrZXQgbm90IGVuYWJsZWQgZm9yIHN5bWJvbCIpKXtjb25zdCBvcmRlcnM9YXdhaXQgYXBpLmRiLmZpbmQobWFya2V0VGFibGVOYW1lLHtuZnRJZDp7JGluOm5mdHN9fSw1MCwwLFt7aW5kZXg6Im5mdElkIixkZXNjZW5kaW5nOiExfV0pO2lmKG9yZGVycy5sZW5ndGg+MCl7bGV0IHByaWNlU3ltYm9sPSIiO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV07aWYoIiI9PT1wcmljZVN5bWJvbCYmKHtwcmljZVN5bWJvbDpwcmljZVN5bWJvbH09b3JkZXIpLCFhcGkuYXNzZXJ0KG9yZGVyLmFjY291bnQ9PT1hcGkuc2VuZGVyJiYidSI9PT1vcmRlci5vd25lZEJ5LCJhbGwgb3JkZXJzIG11c3QgYmUgeW91ciBvd24iKXx8IWFwaS5hc3NlcnQocHJpY2VTeW1ib2w9PT1vcmRlci5wcmljZVN5bWJvbCwiYWxsIG9yZGVycyBtdXN0IGhhdmUgdGhlIHNhbWUgcHJpY2Ugc3ltYm9sIikpcmV0dXJufWNvbnN0IHRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnByaWNlU3ltYm9sfSk7aWYoYXBpLmFzc2VydCh0b2tlbiYmYXBpLkJpZ051bWJlcihwcmljZSkuZ3QoMCkmJmNvdW50RGVjaW1hbHMocHJpY2UpPD10b2tlbi5wcmVjaXNpb24sImludmFsaWQgcHJpY2UiKSl7Y29uc3QgZmluYWxQcmljZT1hcGkuQmlnTnVtYmVyKHByaWNlKS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbik7Zm9yKGxldCBpPTA7aTxvcmRlcnMubGVuZ3RoO2krPTEpe2NvbnN0IG9yZGVyPW9yZGVyc1tpXSxvbGRQcmljZT1vcmRlci5wcmljZTtvcmRlci5wcmljZT1maW5hbFByaWNlLG9yZGVyLnByaWNlRGVjPXskbnVtYmVyRGVjaW1hbDpmaW5hbFByaWNlfSxhd2FpdCBhcGkuZGIudXBkYXRlKG1hcmtldFRhYmxlTmFtZSxvcmRlciksYXBpLmVtaXQoImNoYW5nZVByaWNlIix7c3ltYm9sOnN5bWJvbCxuZnRJZDpvcmRlci5uZnRJZCxvbGRQcmljZTpvbGRQcmljZSxuZXdQcmljZTpvcmRlci5wcmljZSxwcmljZVN5bWJvbDpvcmRlci5wcmljZVN5bWJvbCxvcmRlcklkOm9yZGVyLl9pZH0pfX19fX0sYWN0aW9ucy5jYW5jZWw9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0czpuZnRzLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCwiaW52YWxpZCBwYXJhbXMiKSlyZXR1cm47Y29uc3QgbWFya2V0VGFibGVOYW1lPXN5bWJvbCsic2VsbEJvb2siLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZpc1ZhbGlkSWRBcnJheShuZnRzKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydChuZnQmJm5mdC5ncm91cEJ5JiZuZnQuZ3JvdXBCeS5sZW5ndGg+MCwibWFya2V0IGdyb3VwaW5nIG5vdCBzZXQiKSlyZXR1cm47Y29uc3Qgb3JkZXJzPWF3YWl0IGFwaS5kYi5maW5kKG1hcmtldFRhYmxlTmFtZSx7bmZ0SWQ6eyRpbjpuZnRzfX0sNTAsMCxbe2luZGV4OiJuZnRJZCIsZGVzY2VuZGluZzohMX1dKTtpZihvcmRlcnMubGVuZ3RoPjApe2NvbnN0IGlkcz1bXSxpZE1hcD17fTtsZXQgcHJpY2VTeW1ib2w9IiI7Zm9yKGxldCBpPTA7aTxvcmRlcnMubGVuZ3RoO2krPTEpe2NvbnN0IG9yZGVyPW9yZGVyc1tpXTtpZigiIj09PXByaWNlU3ltYm9sJiYoe3ByaWNlU3ltYm9sOnByaWNlU3ltYm9sfT1vcmRlciksIWFwaS5hc3NlcnQob3JkZXIuYWNjb3VudD09PWFwaS5zZW5kZXImJiJ1Ij09PW9yZGVyLm93bmVkQnksImFsbCBvcmRlcnMgbXVzdCBiZSB5b3VyIG93biIpfHwhYXBpLmFzc2VydChwcmljZVN5bWJvbD09PW9yZGVyLnByaWNlU3ltYm9sLCJhbGwgb3JkZXJzIG11c3QgaGF2ZSB0aGUgc2FtZSBwcmljZSBzeW1ib2wiKSlyZXR1cm47aWRzLnB1c2gob3JkZXIubmZ0SWQpLGlkTWFwW29yZGVyLm5mdElkXT1vcmRlcn1jb25zdCBuZnRBcnJheT1bXSx3cmFwcGVkTmZ0cz17c3ltYm9sOnN5bWJvbCxpZHM6aWRzfTtuZnRBcnJheS5wdXNoKHdyYXBwZWROZnRzKTtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJuZnQiLCJ0cmFuc2ZlciIse2Zyb21UeXBlOiJjb250cmFjdCIsdG86YXBpLnNlbmRlcix0b1R5cGU6InVzZXIiLG5mdHM6bmZ0QXJyYXksaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pO2lmKHJlcy5ldmVudHMpe2NvbnN0IGdyb3VwaW5nTWFwPXt9O2ZvcihsZXQgaj0wO2o8cmVzLmV2ZW50cy5sZW5ndGg7ais9MSl7Y29uc3QgZXY9cmVzLmV2ZW50c1tqXTtpZihldi5jb250cmFjdCYmZXYuZXZlbnQmJmV2LmRhdGEmJiJuZnQiPT09ZXYuY29udHJhY3QmJiJ0cmFuc2ZlciI9PT1ldi5ldmVudCYmIm5mdG1hcmtldCI9PT1ldi5kYXRhLmZyb20mJiJjIj09PWV2LmRhdGEuZnJvbVR5cGUmJmV2LmRhdGEudG89PT1hcGkuc2VuZGVyJiYidSI9PT1ldi5kYXRhLnRvVHlwZSYmZXYuZGF0YS5zeW1ib2w9PT1zeW1ib2wpe2NvbnN0IGluc3RhbmNlSWQ9ZXYuZGF0YS5pZDtpZihpbnN0YW5jZUlkIGluIGlkTWFwKXtjb25zdCBvcmRlcj1pZE1hcFtpbnN0YW5jZUlkXTthd2FpdCBhcGkuZGIucmVtb3ZlKG1hcmtldFRhYmxlTmFtZSxvcmRlciksYXBpLmVtaXQoImNhbmNlbE9yZGVyIix7YWNjb3VudDpvcmRlci5hY2NvdW50LG93bmVkQnk6b3JkZXIub3duZWRCeSxzeW1ib2w6c3ltYm9sLG5mdElkOm9yZGVyLm5mdElkLHRpbWVzdGFtcDpvcmRlci50aW1lc3RhbXAscHJpY2U6b3JkZXIucHJpY2UscHJpY2VTeW1ib2w6b3JkZXIucHJpY2VTeW1ib2wsZmVlOm9yZGVyLmZlZSxvcmRlcklkOm9yZGVyLl9pZH0pO2NvbnN0IGtleT1tYWtlR3JvdXBpbmdLZXkob3JkZXIuZ3JvdXBpbmcsbmZ0Lmdyb3VwQnkpLGdyb3VwSW5mbz1rZXkgaW4gZ3JvdXBpbmdNYXA/Z3JvdXBpbmdNYXBba2V5XTp7Z3JvdXBpbmc6b3JkZXIuZ3JvdXBpbmcsaXNJbkNvbGxlY3Rpb246ITEsY291bnQ6MH07Z3JvdXBJbmZvLmNvdW50LT0xLGdyb3VwaW5nTWFwW2tleV09Z3JvdXBJbmZvfX19YXdhaXQgdXBkYXRlT3BlbkludGVyZXN0KCJzZWxsIixzeW1ib2wscHJpY2VTeW1ib2wsZ3JvdXBpbmdNYXAsbmZ0Lmdyb3VwQnkpfX19fSxhY3Rpb25zLmJ1eT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxuZnRzOm5mdHMsbWFya2V0QWNjb3VudDptYXJrZXRBY2NvdW50LGV4cFByaWNlOmV4cFByaWNlLGV4cFByaWNlU3ltYm9sOmV4cFByaWNlU3ltYm9sLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCYmbWFya2V0QWNjb3VudCYmInN0cmluZyI9PXR5cGVvZiBtYXJrZXRBY2NvdW50JiYodm9pZCAwPT09ZXhwUHJpY2V8fGV4cFByaWNlJiYic3RyaW5nIj09dHlwZW9mIGV4cFByaWNlJiYhYXBpLkJpZ051bWJlcihleHBQcmljZSkuaXNOYU4oKSkmJih2b2lkIDA9PT1leHBQcmljZVN5bWJvbHx8ZXhwUHJpY2VTeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgZXhwUHJpY2VTeW1ib2wpLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybjtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsdGFibGVFeGlzdHM9YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKG1hcmtldFRhYmxlTmFtZSk7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmlzVmFsaWRJZEFycmF5KG5mdHMpJiZhcGkuYXNzZXJ0KHRhYmxlRXhpc3RzLCJtYXJrZXQgbm90IGVuYWJsZWQgZm9yIHN5bWJvbCIpKXtjb25zdCBmaW5hbE1hcmtldEFjY291bnQ9bWFya2V0QWNjb3VudC50cmltKCkudG9Mb3dlckNhc2UoKTtpZihhcGkuYXNzZXJ0KGlzVmFsaWRIaXZlQWNjb3VudExlbmd0aChmaW5hbE1hcmtldEFjY291bnQpLCJpbnZhbGlkIG1hcmtldCBhY2NvdW50IikmJmFwaS5hc3NlcnQoZmluYWxNYXJrZXRBY2NvdW50IT09YXBpLnNlbmRlciwibWFya2V0IGFjY291bnQgY2Fubm90IGJlIHNhbWUgYXMgYnV5ZXIiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydChuZnQmJm5mdC5ncm91cEJ5JiZuZnQuZ3JvdXBCeS5sZW5ndGg+MCwibWFya2V0IGdyb3VwaW5nIG5vdCBzZXQiKSlyZXR1cm47Y29uc3Qgb3JkZXJzPWF3YWl0IGFwaS5kYi5maW5kKG1hcmtldFRhYmxlTmFtZSx7bmZ0SWQ6eyRpbjpuZnRzfX0sNTAsMCxbe2luZGV4OiJuZnRJZCIsZGVzY2VuZGluZzohMX1dKTtpZihvcmRlcnMubGVuZ3RoPjApe2xldCBwcmljZVN5bWJvbD0iIjtmb3IobGV0IGk9MDtpPG9yZGVycy5sZW5ndGg7aSs9MSl7Y29uc3Qgb3JkZXI9b3JkZXJzW2ldO2lmKCIiPT09cHJpY2VTeW1ib2wmJih7cHJpY2VTeW1ib2w6cHJpY2VTeW1ib2x9PW9yZGVyKSwhYXBpLmFzc2VydCghKCJ1Ij09PW9yZGVyLm93bmVkQnkmJm9yZGVyLmFjY291bnQ9PT1hcGkuc2VuZGVyKSwiY2Fubm90IGZpbGwgeW91ciBvd24gb3JkZXJzIil8fCFhcGkuYXNzZXJ0KHByaWNlU3ltYm9sPT09b3JkZXIucHJpY2VTeW1ib2wsImFsbCBvcmRlcnMgbXVzdCBoYXZlIHRoZSBzYW1lIHByaWNlIHN5bWJvbCIpKXJldHVybn1pZighYXBpLmFzc2VydCh2b2lkIDA9PT1leHBQcmljZVN5bWJvbHx8ZXhwUHJpY2VTeW1ib2w9PT1wcmljZVN5bWJvbCxgdW5leHBlY3RlZCBwcmljZSBzeW1ib2wgJHtwcmljZVN5bWJvbH1gKSlyZXR1cm47Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cHJpY2VTeW1ib2x9KTtpZighdG9rZW4pcmV0dXJuO2xldCBmZWVUb3RhbD1hcGkuQmlnTnVtYmVyKDApLGFnZW50RmVlVG90YWw9YXBpLkJpZ051bWJlcigwKSxwYXltZW50VG90YWw9YXBpLkJpZ051bWJlcigwKSxzb2xkTmZ0cz1bXTtjb25zdCBzZWxsZXJzPVtdLHNlbGxlck1hcD17fTtmb3IobGV0IGk9MDtpPG9yZGVycy5sZW5ndGg7aSs9MSl7Y29uc3Qgb3JkZXI9b3JkZXJzW2ldLGZpbmFsUHJpY2U9YXBpLkJpZ051bWJlcihvcmRlci5wcmljZSksZmVlUGVyY2VudD1vcmRlci5mZWUvMWU0O2xldCBmaW5hbEZlZT1maW5hbFByaWNlLm11bHRpcGxpZWRCeShmZWVQZXJjZW50KS5kZWNpbWFsUGxhY2VzKHRva2VuLnByZWNpc2lvbik7ZmluYWxGZWUuZ3QoZmluYWxQcmljZSkmJihmaW5hbEZlZT1maW5hbFByaWNlKTtsZXQgZmluYWxQYXltZW50PWZpbmFsUHJpY2UubWludXMoZmluYWxGZWUpLmRlY2ltYWxQbGFjZXModG9rZW4ucHJlY2lzaW9uKTtmaW5hbFBheW1lbnQubHQoMCkmJihmaW5hbFBheW1lbnQ9YXBpLkJpZ051bWJlcigwKSkscGF5bWVudFRvdGFsPXBheW1lbnRUb3RhbC5wbHVzKGZpbmFsUGF5bWVudCksZmVlVG90YWw9ZmVlVG90YWwucGx1cyhmaW5hbEZlZSk7Y29uc3Qga2V5PW1ha2VNYXBLZXkob3JkZXIuYWNjb3VudCxvcmRlci5vd25lZEJ5KSxzZWxsZXJJbmZvPWtleSBpbiBzZWxsZXJNYXA/c2VsbGVyTWFwW2tleV06e2FjY291bnQ6b3JkZXIuYWNjb3VudCxvd25lZEJ5Om9yZGVyLm93bmVkQnksbmZ0SWRzOltdLG5mdFNhbGVzOltdLHBheW1lbnRUb3RhbDphcGkuQmlnTnVtYmVyKDApfTtzZWxsZXJJbmZvLnBheW1lbnRUb3RhbD1zZWxsZXJJbmZvLnBheW1lbnRUb3RhbC5wbHVzKGZpbmFsUGF5bWVudCksc2VsbGVySW5mby5uZnRJZHMucHVzaChvcmRlci5uZnRJZCksc2VsbGVyTWFwW2tleV09c2VsbGVySW5mbyxzZWxsZXJJbmZvLm5mdFNhbGVzLnB1c2goe2lkOm9yZGVyLm5mdElkLHByaWNlOmZpbmFsUHJpY2UsZmVlOmZpbmFsRmVlLHN5bWJvbDpwcmljZVN5bWJvbH0pfWNvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7c3ltYm9sOnN5bWJvbH0pLG9mZmljaWFsTWFya2V0QWNjb3VudD1wYXJhbXMmJnBhcmFtcy5vZmZpY2lhbE1hcmtldD9wYXJhbXMub2ZmaWNpYWxNYXJrZXQ6ZmluYWxNYXJrZXRBY2NvdW50O2lmKCFhcGkuYXNzZXJ0KG9mZmljaWFsTWFya2V0QWNjb3VudCE9PWFwaS5zZW5kZXIsIm9mZmljaWFsIG1hcmtldCBhY2NvdW50IGNhbm5vdCBiZSBzYW1lIGFzIGJ1eWVyIikpcmV0dXJuO2lmKHBhcmFtcyYmcGFyYW1zLm9mZmljaWFsTWFya2V0JiZ2b2lkIDAhPT1wYXJhbXMuYWdlbnRDdXQmJnBhcmFtcy5hZ2VudEN1dD4wJiZmZWVUb3RhbC5ndCgwKSl7Y29uc3QgYWdlbnRGZWVQZXJjZW50PXBhcmFtcy5hZ2VudEN1dC8xZTQ7YWdlbnRGZWVUb3RhbD1mZWVUb3RhbC5tdWx0aXBsaWVkQnkoYWdlbnRGZWVQZXJjZW50KS5kZWNpbWFsUGxhY2VzKHRva2VuLnByZWNpc2lvbiksYWdlbnRGZWVUb3RhbC5ndChmZWVUb3RhbCkmJihhZ2VudEZlZVRvdGFsPWFwaS5CaWdOdW1iZXIoZmVlVG90YWwpKSxmZWVUb3RhbD1mZWVUb3RhbC5taW51cyhhZ2VudEZlZVRvdGFsKS5kZWNpbWFsUGxhY2VzKHRva2VuLnByZWNpc2lvbiksZmVlVG90YWwubHQoMCkmJihmZWVUb3RhbD1hcGkuQmlnTnVtYmVyKDApKX1jb25zdCByZXF1aXJlZEJhbGFuY2U9cGF5bWVudFRvdGFsLnBsdXMoZmVlVG90YWwpLnBsdXMoYWdlbnRGZWVUb3RhbCkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2lmKCFhcGkuYXNzZXJ0KHZvaWQgMD09PWV4cFByaWNlfHxhcGkuQmlnTnVtYmVyKGV4cFByaWNlKS5lcShyZXF1aXJlZEJhbGFuY2UpLGB0b3RhbCByZXF1aXJlZCBwYXltZW50ICR7cmVxdWlyZWRCYWxhbmNlfSAke3ByaWNlU3ltYm9sfSBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCBhbW91bnRgKSlyZXR1cm47Y29uc3QgYnV5ZXJCYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnByaWNlU3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQoYnV5ZXJCYWxhbmNlJiZhcGkuQmlnTnVtYmVyKGJ1eWVyQmFsYW5jZS5iYWxhbmNlKS5ndGUocmVxdWlyZWRCYWxhbmNlKSwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIGZvciBwYXltZW50IikpcmV0dXJuO3BheW1lbnRUb3RhbD1wYXltZW50VG90YWwudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2xldCBpc01hcmtldEZlZVBhaWQ9ITE7aWYoZmVlVG90YWwuZ3QoMCkpe2lzTWFya2V0RmVlUGFpZD0hMCxmZWVUb3RhbD1mZWVUb3RhbC50b0ZpeGVkKHRva2VuLnByZWNpc2lvbik7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXIiLHt0bzpvZmZpY2lhbE1hcmtldEFjY291bnQsc3ltYm9sOnByaWNlU3ltYm9sLHF1YW50aXR5OmZlZVRvdGFsLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTtpZighYXBpLmFzc2VydChpc1Rva2VuVHJhbnNmZXJWZXJpZmllZChyZXMsYXBpLnNlbmRlcixvZmZpY2lhbE1hcmtldEFjY291bnQscHJpY2VTeW1ib2wsZmVlVG90YWwsInRyYW5zZmVyIiksInVuYWJsZSB0byB0cmFuc2ZlciBtYXJrZXQgZmVlcyIpKXJldHVybn1sZXQgaXNBZ2VudEZlZVBhaWQ9ITE7aWYoYWdlbnRGZWVUb3RhbC5ndCgwKSl7aXNBZ2VudEZlZVBhaWQ9ITAsYWdlbnRGZWVUb3RhbD1hZ2VudEZlZVRvdGFsLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKTtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOmZpbmFsTWFya2V0QWNjb3VudCxzeW1ib2w6cHJpY2VTeW1ib2wscXVhbnRpdHk6YWdlbnRGZWVUb3RhbCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSk7aWYoIWFwaS5hc3NlcnQoaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQocmVzLGFwaS5zZW5kZXIsZmluYWxNYXJrZXRBY2NvdW50LHByaWNlU3ltYm9sLGFnZW50RmVlVG90YWwsInRyYW5zZmVyIiksInVuYWJsZSB0byB0cmFuc2ZlciBhZ2VudCBmZWVzIikpcmV0dXJufWZvcihjb25zdCBpbmZvIG9mIE9iamVjdC52YWx1ZXMoc2VsbGVyTWFwKSlpZihpbmZvLnBheW1lbnRUb3RhbC5ndCgwKSl7Y29uc3QgY29udHJhY3RBY3Rpb249InUiPT09aW5mby5vd25lZEJ5PyJ0cmFuc2ZlciI6InRyYW5zZmVyVG9Db250cmFjdCI7aW5mby5wYXltZW50VG90YWw9aW5mby5wYXltZW50VG90YWwudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsY29udHJhY3RBY3Rpb24se3RvOmluZm8uYWNjb3VudCxzeW1ib2w6cHJpY2VTeW1ib2wscXVhbnRpdHk6aW5mby5wYXltZW50VG90YWwsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pO2FwaS5hc3NlcnQoaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQocmVzLGFwaS5zZW5kZXIsaW5mby5hY2NvdW50LHByaWNlU3ltYm9sLGluZm8ucGF5bWVudFRvdGFsLGNvbnRyYWN0QWN0aW9uKSxgdW5hYmxlIHRvIHRyYW5zZmVyIHBheW1lbnQgdG8gJHtpbmZvLmFjY291bnR9YCkmJihzb2xkTmZ0cz1zb2xkTmZ0cy5jb25jYXQoaW5mby5uZnRJZHMpLHNlbGxlcnMucHVzaChpbmZvKSl9ZWxzZSBzb2xkTmZ0cz1zb2xkTmZ0cy5jb25jYXQoaW5mby5uZnRJZHMpLHNlbGxlcnMucHVzaChpbmZvKTtjb25zdCBuZnRBcnJheT1bXSx3cmFwcGVkTmZ0cz17c3ltYm9sOnN5bWJvbCxpZHM6c29sZE5mdHN9O25mdEFycmF5LnB1c2god3JhcHBlZE5mdHMpLGF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToiY29udHJhY3QiLHRvOmFwaS5zZW5kZXIsdG9UeXBlOiJ1c2VyIixuZnRzOm5mdEFycmF5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTtjb25zdCBncm91cGluZ01hcD17fSxzb2xkU2V0PW5ldyBTZXQoc29sZE5mdHMpO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV07aWYoc29sZFNldC5oYXMob3JkZXIubmZ0SWQpKXthd2FpdCBhcGkuZGIucmVtb3ZlKG1hcmtldFRhYmxlTmFtZSxvcmRlcik7Y29uc3Qga2V5PW1ha2VHcm91cGluZ0tleShvcmRlci5ncm91cGluZyxuZnQuZ3JvdXBCeSksZ3JvdXBJbmZvPWtleSBpbiBncm91cGluZ01hcD9ncm91cGluZ01hcFtrZXldOntncm91cGluZzpvcmRlci5ncm91cGluZyxpc0luQ29sbGVjdGlvbjohMSxjb3VudDowfTtncm91cEluZm8uY291bnQtPTEsZ3JvdXBpbmdNYXBba2V5XT1ncm91cEluZm99fWF3YWl0IHVwZGF0ZVRyYWRlc0hpc3RvcnkoImJ1eSIsYXBpLnNlbmRlciwidSIsc2VsbGVycyxzeW1ib2wscHJpY2VTeW1ib2wscmVxdWlyZWRCYWxhbmNlLGlzTWFya2V0RmVlUGFpZCxvZmZpY2lhbE1hcmtldEFjY291bnQsZmVlVG90YWwsaXNBZ2VudEZlZVBhaWQsZmluYWxNYXJrZXRBY2NvdW50LGFnZW50RmVlVG90YWwsc29sZE5mdHMubGVuZ3RoKTtjb25zdCBhY2tQYWNrZXQ9e3N5bWJvbDpzeW1ib2wscHJpY2VTeW1ib2w6cHJpY2VTeW1ib2wsYWNjb3VudDphcGkuc2VuZGVyLG93bmVkQnk6InUiLHNlbGxlcnM6c2VsbGVycyxwYXltZW50VG90YWw6cGF5bWVudFRvdGFsfTtpc01hcmtldEZlZVBhaWQmJihhY2tQYWNrZXQubWFya2V0QWNjb3VudD1vZmZpY2lhbE1hcmtldEFjY291bnQsYWNrUGFja2V0LmZlZVRvdGFsPWZlZVRvdGFsKSxpc0FnZW50RmVlUGFpZCYmKGFja1BhY2tldC5hZ2VudEFjY291bnQ9ZmluYWxNYXJrZXRBY2NvdW50LGFja1BhY2tldC5hZ2VudEZlZVRvdGFsPWFnZW50RmVlVG90YWwpLGFwaS5lbWl0KCJoaXRTZWxsT3JkZXIiLGFja1BhY2tldCksYXdhaXQgdXBkYXRlT3BlbkludGVyZXN0KCJzZWxsIixzeW1ib2wscHJpY2VTeW1ib2wsZ3JvdXBpbmdNYXAsbmZ0Lmdyb3VwQnkpfX19fSxhY3Rpb25zLnNlbGw9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0czpuZnRzLHByaWNlOnByaWNlLHByaWNlU3ltYm9sOnByaWNlU3ltYm9sLGZlZTpmZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybjtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsaW5zdGFuY2VUYWJsZU5hbWU9c3ltYm9sKyJpbnN0YW5jZXMiLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KG5mdHMmJiJvYmplY3QiPT10eXBlb2YgbmZ0cyYmQXJyYXkuaXNBcnJheShuZnRzKSYmcHJpY2VTeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgcHJpY2VTeW1ib2wmJnByaWNlJiYic3RyaW5nIj09dHlwZW9mIHByaWNlJiYhYXBpLkJpZ051bWJlcihwcmljZSkuaXNOYU4oKSYmIm51bWJlciI9PXR5cGVvZiBmZWUmJmZlZT49MCYmZmVlPD0xZTQmJk51bWJlci5pc0ludGVnZXIoZmVlKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydChuZnRzLmxlbmd0aDw9NTAsImNhbm5vdCBzZWxsIG1vcmUgdGhhbiA1MCBORlQgaW5zdGFuY2VzIGF0IG9uY2UiKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydChuZnQmJm5mdC5ncm91cEJ5JiZuZnQuZ3JvdXBCeS5sZW5ndGg+MCwibWFya2V0IGdyb3VwaW5nIG5vdCBzZXQiKSlyZXR1cm47Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHtzeW1ib2w6c3ltYm9sfSk7aWYocGFyYW1zJiZ2b2lkIDAhPT1wYXJhbXMubWluRmVlJiYhYXBpLmFzc2VydChmZWU+PXBhcmFtcy5taW5GZWUsYGZlZSBtdXN0IGJlID49ICR7cGFyYW1zLm1pbkZlZX1gKSlyZXR1cm47Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cHJpY2VTeW1ib2x9KTtpZihhcGkuYXNzZXJ0KHRva2VuJiZhcGkuQmlnTnVtYmVyKHByaWNlKS5ndCgwKSYmY291bnREZWNpbWFscyhwcmljZSk8PXRva2VuLnByZWNpc2lvbiwiaW52YWxpZCBwcmljZSIpKXtjb25zdCBuZnRBcnJheT1bXSx3cmFwcGVkTmZ0cz17c3ltYm9sOnN5bWJvbCxpZHM6bmZ0c307bmZ0QXJyYXkucHVzaCh3cmFwcGVkTmZ0cyk7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToidXNlciIsdG86Im5mdG1hcmtldCIsdG9UeXBlOiJjb250cmFjdCIsbmZ0czpuZnRBcnJheSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSk7aWYocmVzLmV2ZW50cyl7Y29uc3QgdGltZXN0YW1wPW5ldyBEYXRlKGAke2FwaS5oaXZlQmxvY2tUaW1lc3RhbXB9LjAwMFpgKS5nZXRUaW1lKCksZmluYWxQcmljZT1hcGkuQmlnTnVtYmVyKHByaWNlKS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbiksbmZ0SW50ZWdlcklkTGlzdD1bXSxvcmRlckRhdGFNYXA9e307Zm9yKGxldCBpPTA7aTxyZXMuZXZlbnRzLmxlbmd0aDtpKz0xKXtjb25zdCBldj1yZXMuZXZlbnRzW2ldO2lmKGV2LmNvbnRyYWN0JiZldi5ldmVudCYmZXYuZGF0YSYmIm5mdCI9PT1ldi5jb250cmFjdCYmInRyYW5zZmVyIj09PWV2LmV2ZW50JiZldi5kYXRhLmZyb209PT1hcGkuc2VuZGVyJiYidSI9PT1ldi5kYXRhLmZyb21UeXBlJiYibmZ0bWFya2V0Ij09PWV2LmRhdGEudG8mJiJjIj09PWV2LmRhdGEudG9UeXBlJiZldi5kYXRhLnN5bWJvbD09PXN5bWJvbCl7Y29uc3QgaW5zdGFuY2VJZD1ldi5kYXRhLmlkLG9yZGVyRGF0YT17bmZ0SWQ6aW5zdGFuY2VJZCxncm91cGluZzp7fSxncm91cGluZ0tleToiIn0saW50ZWdlcklkPWFwaS5CaWdOdW1iZXIoaW5zdGFuY2VJZCkudG9OdW1iZXIoKTtuZnRJbnRlZ2VySWRMaXN0LnB1c2goaW50ZWdlcklkKSxvcmRlckRhdGFNYXBbaW50ZWdlcklkXT1vcmRlckRhdGF9fWNvbnN0IGluc3RhbmNlcz1hd2FpdCBhcGkuZGIuZmluZEluVGFibGUoIm5mdCIsaW5zdGFuY2VUYWJsZU5hbWUse19pZDp7JGluOm5mdEludGVnZXJJZExpc3R9fSw1MCwwLFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtmb3IobGV0IGo9MDtqPGluc3RhbmNlcy5sZW5ndGg7ais9MSl7Y29uc3QgaW5zdGFuY2U9aW5zdGFuY2VzW2pdLGdyb3VwaW5nPXt9O2xldCBncm91cGluZ0tleT0iIjtuZnQuZ3JvdXBCeS5mb3JFYWNoKChuYW1lPT57dm9pZCAwIT09aW5zdGFuY2UucHJvcGVydGllc1tuYW1lXSYmbnVsbCE9PWluc3RhbmNlLnByb3BlcnRpZXNbbmFtZV0/Z3JvdXBpbmdbbmFtZV09aW5zdGFuY2UucHJvcGVydGllc1tuYW1lXS50b1N0cmluZygpOmdyb3VwaW5nW25hbWVdPSIiLGdyb3VwaW5nS2V5PWdyb3VwaW5nS2V5KyI6IituYW1lKyI6Iitncm91cGluZ1tuYW1lXX0pKSxvcmRlckRhdGFNYXBbaW5zdGFuY2UuX2lkXS5ncm91cGluZz1ncm91cGluZyxvcmRlckRhdGFNYXBbaW5zdGFuY2UuX2lkXS5ncm91cGluZ0tleT1ncm91cGluZ0tleX1jb25zdCBncm91cGluZ01hcD17fTtmb3IobGV0IGs9MDtrPG5mdEludGVnZXJJZExpc3QubGVuZ3RoO2srPTEpe2NvbnN0IG9yZGVySW5mbz1vcmRlckRhdGFNYXBbbmZ0SW50ZWdlcklkTGlzdFtrXV0sb3JkZXI9e2FjY291bnQ6YXBpLnNlbmRlcixvd25lZEJ5OiJ1IixuZnRJZDpvcmRlckluZm8ubmZ0SWQsZ3JvdXBpbmc6b3JkZXJJbmZvLmdyb3VwaW5nLHRpbWVzdGFtcDp0aW1lc3RhbXAscHJpY2U6ZmluYWxQcmljZSxwcmljZURlYzp7JG51bWJlckRlY2ltYWw6ZmluYWxQcmljZX0scHJpY2VTeW1ib2w6cHJpY2VTeW1ib2wsZmVlOmZlZX0scmVzdWx0PWF3YWl0IGFwaS5kYi5pbnNlcnQobWFya2V0VGFibGVOYW1lLG9yZGVyKTthcGkuZW1pdCgic2VsbE9yZGVyIix7YWNjb3VudDpvcmRlci5hY2NvdW50LG93bmVkQnk6b3JkZXIub3duZWRCeSxzeW1ib2w6c3ltYm9sLG5mdElkOm9yZGVyLm5mdElkLHRpbWVzdGFtcDp0aW1lc3RhbXAscHJpY2U6b3JkZXIucHJpY2UscHJpY2VTeW1ib2w6b3JkZXIucHJpY2VTeW1ib2wsZmVlOmZlZSxvcmRlcklkOnJlc3VsdC5faWR9KTtjb25zdCBncm91cEluZm89b3JkZXJJbmZvLmdyb3VwaW5nS2V5IGluIGdyb3VwaW5nTWFwP2dyb3VwaW5nTWFwW29yZGVySW5mby5ncm91cGluZ0tleV06e2dyb3VwaW5nOm9yZGVySW5mby5ncm91cGluZyxpc0luQ29sbGVjdGlvbjohMSxjb3VudDowfTtncm91cEluZm8uY291bnQrPTEsZ3JvdXBpbmdNYXBbb3JkZXJJbmZvLmdyb3VwaW5nS2V5XT1ncm91cEluZm99YXdhaXQgdXBkYXRlT3BlbkludGVyZXN0KCJzZWxsIixzeW1ib2wscHJpY2VTeW1ib2wsZ3JvdXBpbmdNYXAsbmZ0Lmdyb3VwQnkpfX19fTs="}}}
RE: beedollar Smart Contract