Wit

in #hive-engine2 years ago (edited)

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"witnesses","params":"","code":"Y29uc3QgTkJfQVBQUk9WQUxTX0FMTE9XRUQ9MzAsTkJfVE9QX1dJVE5FU1NFUz0yMCxOQl9CQUNLVVBfV0lUTkVTU0VTPTEsTkJfV0lUTkVTU0VTPTIxLE5CX1dJVE5FU1NFU19TSUdOQVRVUkVTX1JFUVVJUkVEPTE0LE1BWF9ST1VORFNfTUlTU0VEX0lOX0FfUk9XPTMsTUFYX1JPVU5EX1BST1BPU0lUSU9OX1dBSVRJTkdfUEVSSU9EPTQwLE5CX1RPS0VOU19UT19SRVdBUkQ9IjAuMDA5NTEyOTMiLE5CX1RPS0VOU19ORUVERURfQkVGT1JFX1JFV0FSRElORz0iMC4wNDc1NjQ2NSIsVVRJTElUWV9UT0tFTl9TWU1CT0w9Iicke0NPTlNUQU5UUy5VVElMSVRZX1RPS0VOX1NZTUJPTH0kJyIsR09WRVJOQU5DRV9UT0tFTl9TWU1CT0w9IkJFRSIsR09WRVJOQU5DRV9UT0tFTl9QUkVDSVNJT049IiR7Q09OU1RBTlRTLkdPVkVSTkFOQ0VfVE9LRU5fUFJFQ0lTSU9OfSQiLEdPVkVSTkFOQ0VfVE9LRU5fTUlOX1ZBTFVFPSIke0NPTlNUQU5UUy5HT1ZFUk5BTkNFX1RPS0VOX01JTl9WQUxVRX0kIjthY3Rpb25zLmNyZWF0ZVNTQz1hc3luYygpPT57bGV0IGE9YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKCJ3aXRuZXNzZXMiKTtpZighMT09PWEpe2F3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgid2l0bmVzc2VzIixbImFwcHJvdmFsV2VpZ2h0Il0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgiYXBwcm92YWxzIixbImZyb20iLCJ0byJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoImFjY291bnRzIixbImFjY291bnQiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJzY2hlZHVsZXMiKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2xldCBiPXt0b3RhbEFwcHJvdmFsV2VpZ2h0OiIwIixudW1iZXJPZkFwcHJvdmVkV2l0bmVzc2VzOjAsbGFzdFZlcmlmaWVkQmxvY2tOdW1iZXI6MCxyb3VuZDowLGxhc3RCbG9ja1JvdW5kOjAsY3VycmVudFdpdG5lc3M6bnVsbCxibG9ja051bWJlcldpdG5lc3NDaGFuZ2U6MCxsYXN0V2l0bmVzc2VzOltdLG51bWJlck9mQXBwcm92YWxzUGVyQWNjb3VudDozMCxudW1iZXJPZlRvcFdpdG5lc3NlczoyMCxudW1iZXJPZldpdG5lc3NTbG90czoyMSx3aXRuZXNzU2lnbmF0dXJlc1JlcXVpcmVkOjE0LG1heFJvdW5kc01pc3NlZEluQVJvdzozLG1heFJvdW5kUHJvcG9zaXRpb25XYWl0aW5nUGVyaW9kOjQwfTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJwYXJhbXMiLGIpfX0sYWN0aW9ucy5yZXNldFNjaGVkdWxlPWFzeW5jKCk9PntpZihhcGkuc2VuZGVyIT09YXBpLm93bmVyKXJldHVybjtsZXQgYz1hd2FpdCBhcGkuZGIuZmluZCgic2NoZWR1bGVzIix7fSk7Zm9yKGxldCBiPTA7YjxjLmxlbmd0aDtiKz0xKXtsZXQgZD1jW2JdO2F3YWl0IGFwaS5kYi5yZW1vdmUoInNjaGVkdWxlcyIsZCl9bGV0IGE9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2EuY3VycmVudFdpdG5lc3M9bnVsbCxhLmJsb2NrTnVtYmVyV2l0bmVzc0NoYW5nZT0wLGEubGFzdFdpdG5lc3Nlcz1bXSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLGEpfSxhY3Rpb25zLnVwZGF0ZVBhcmFtcz1hc3luYyBpPT57aWYoYXBpLnNlbmRlciE9PWFwaS5vd25lcilyZXR1cm47bGV0e251bWJlck9mQXBwcm92YWxzUGVyQWNjb3VudDpjLG51bWJlck9mVG9wV2l0bmVzc2VzOmQsbnVtYmVyT2ZXaXRuZXNzU2xvdHM6Yix3aXRuZXNzU2lnbmF0dXJlc1JlcXVpcmVkOmUsbWF4Um91bmRzTWlzc2VkSW5BUm93OmYsbWF4Um91bmRQcm9wb3NpdGlvbldhaXRpbmdQZXJpb2Q6Z309aSxhPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSxoPSExO2MmJk51bWJlci5pc0ludGVnZXIoYykmJihhLm51bWJlck9mQXBwcm92YWxzUGVyQWNjb3VudD1jKSxkJiZOdW1iZXIuaXNJbnRlZ2VyKGQpJiYoYS5udW1iZXJPZlRvcFdpdG5lc3Nlcz1kKSxiJiZOdW1iZXIuaXNJbnRlZ2VyKGIpJiZhLm51bWJlck9mV2l0bmVzc1Nsb3RzIT09YiYmKGg9ITAsYS5udW1iZXJPZldpdG5lc3NTbG90cz1iKSxlJiZOdW1iZXIuaXNJbnRlZ2VyKGUpJiYoYS53aXRuZXNzU2lnbmF0dXJlc1JlcXVpcmVkPWUpLGYmJk51bWJlci5pc0ludGVnZXIoZikmJihhLm1heFJvdW5kc01pc3NlZEluQVJvdz1mKSxnJiZOdW1iZXIuaXNJbnRlZ2VyKGcpJiYoYS5tYXhSb3VuZFByb3Bvc2l0aW9uV2FpdGluZ1BlcmlvZD1nKSxhcGkuYXNzZXJ0KGEubnVtYmVyT2ZUb3BXaXRuZXNzZXMrMT09PWEubnVtYmVyT2ZXaXRuZXNzU2xvdHMsIm9ubHkgMSBiYWNrdXAgYWxsb3dlZCIpJiYoYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixhKSxoJiZhd2FpdCBhY3Rpb25zLnJlc2V0U2NoZWR1bGUoKSl9O2NvbnN0IHVwZGF0ZVdpdG5lc3NSYW5rPWFzeW5jKGUsYyk9PntsZXQgYT1hd2FpdCBhcGkuZGIuZmluZE9uZSgid2l0bmVzc2VzIix7YWNjb3VudDplfSk7aWYoYSl7bGV0IGQ9YS5hcHByb3ZhbFdlaWdodC4kbnVtYmVyRGVjaW1hbDthLmFwcHJvdmFsV2VpZ2h0LiRudW1iZXJEZWNpbWFsPWFwaS5CaWdOdW1iZXIoYS5hcHByb3ZhbFdlaWdodC4kbnVtYmVyRGVjaW1hbCkucGx1cyhjKS50b0ZpeGVkKEdPVkVSTkFOQ0VfVE9LRU5fUFJFQ0lTSU9OKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJ3aXRuZXNzZXMiLGEpO2xldCBiPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtiLnRvdGFsQXBwcm92YWxXZWlnaHQ9YXBpLkJpZ051bWJlcihiLnRvdGFsQXBwcm92YWxXZWlnaHQpLnBsdXMoYykudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTiksYXBpLkJpZ051bWJlcihkKS5lcSgwKSYmYXBpLkJpZ051bWJlcihhLmFwcHJvdmFsV2VpZ2h0LiRudW1iZXJEZWNpbWFsKS5ndCgwKT9iLm51bWJlck9mQXBwcm92ZWRXaXRuZXNzZXMrPTE6YXBpLkJpZ051bWJlcihkKS5ndCgwKSYmYXBpLkJpZ051bWJlcihhLmFwcHJvdmFsV2VpZ2h0LiRudW1iZXJEZWNpbWFsKS5lcSgwKSYmKGIubnVtYmVyT2ZBcHByb3ZlZFdpdG5lc3Nlcy09MSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixiKX19O2FjdGlvbnMudXBkYXRlV2l0bmVzc2VzQXBwcm92YWxzPWFzeW5jIGk9PntsZXR7YWNjb3VudDpkLGNhbGxpbmdDb250cmFjdEluZm86Zn09aTtpZih2b2lkIDA9PT1mfHwidG9rZW5zIiE9PWYubmFtZSlyZXR1cm47bGV0IGM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImFjY291bnRzIix7YWNjb3VudDpkfSk7aWYobnVsbCE9PWMpe2xldCBhPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmQsc3ltYm9sOiJCRUUifSksYj0wO2EmJmEuc3Rha2UmJihiPWEuc3Rha2UpLGEmJmEuZGVsZWdhdGlvbnNJbiYmKGI9YXBpLkJpZ051bWJlcihiKS5wbHVzKGEuZGVsZWdhdGlvbnNJbikudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTikpO2xldCBqPWMuYXBwcm92YWxXZWlnaHQsZz1hcGkuQmlnTnVtYmVyKGIpLm1pbnVzKGopLnRvRml4ZWQoR09WRVJOQU5DRV9UT0tFTl9QUkVDSVNJT04pO2lmKGMuYXBwcm92YWxXZWlnaHQ9YiwhYXBpLkJpZ051bWJlcihnKS5lcSgwKSl7YXdhaXQgYXBpLmRiLnVwZGF0ZSgiYWNjb3VudHMiLGMpO2xldCBoPWF3YWl0IGFwaS5kYi5maW5kKCJhcHByb3ZhbHMiLHtmcm9tOmR9KTtmb3IobGV0IGU9MDtlPGgubGVuZ3RoO2UrPTEpe2xldCBrPWhbZV07YXdhaXQgdXBkYXRlV2l0bmVzc1Jhbmsoay50byxnKX19fX0sYWN0aW9ucy5yZWdpc3Rlcj1hc3luYyBnPT57bGV0e0lQOmMsUlBDUG9ydDpkLFAyUFBvcnQ6YixzaWduaW5nS2V5OmUsZW5hYmxlZDpmLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTpofT1nO2lmKGFwaS5hc3NlcnQoITA9PT1oLCJhY3RpdmUga2V5IHJlcXVpcmVkIikmJmFwaS5hc3NlcnQoYyYmInN0cmluZyI9PXR5cGVvZiBjJiZhcGkudmFsaWRhdG9yLmlzSVAoYyksIklQIGlzIGludmFsaWQiKSYmYXBpLmFzc2VydChkJiZOdW1iZXIuaXNJbnRlZ2VyKGQpJiZkPj0wJiZkPD02NTUzNSwiUlBDUG9ydCBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA2NTUzNSIpJiZhcGkuYXNzZXJ0KGImJk51bWJlci5pc0ludGVnZXIoYikmJmI+PTAmJmI8PTY1NTM1LCJQMlBQb3J0IG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDY1NTM1IikmJmFwaS5hc3NlcnQoYXBpLnZhbGlkYXRvci5pc0FscGhhbnVtZXJpYyhlKSYmNTM9PT1lLmxlbmd0aCwiaW52YWxpZCBzaWduaW5nIGtleSIpJiZhcGkuYXNzZXJ0KCJib29sZWFuIj09dHlwZW9mIGYsImVuYWJsZWQgbXVzdCBiZSBhIGJvb2xlYW4iKSl7bGV0IGE9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIndpdG5lc3NlcyIse3NpZ25pbmdLZXk6ZX0pO2FwaS5hc3NlcnQobnVsbD09PWF8fGEuYWNjb3VudD09PWFwaS5zZW5kZXIsImEgd2l0bmVzcyBpcyBhbHJlYWR5IHVzaW5nIHRoaXMgc2lnbmluZyBrZXkiKSYmKGE9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIndpdG5lc3NlcyIse0lQOmMsUDJQUG9ydDpifSksYXBpLmFzc2VydChudWxsPT09YXx8YS5hY2NvdW50PT09YXBpLnNlbmRlciwiYSB3aXRuZXNzIGlzIGFscmVhZHkgdXNpbmcgdGhpcyBJUC9Qb3J0IikmJigoYT1hd2FpdCBhcGkuZGIuZmluZE9uZSgid2l0bmVzc2VzIix7YWNjb3VudDphcGkuc2VuZGVyfSkpPyhhLklQPWMsYS5SUENQb3J0PWQsYS5QMlBQb3J0PWIsYS5zaWduaW5nS2V5PWUsYS5lbmFibGVkPWYsYXdhaXQgYXBpLmRiLnVwZGF0ZSgid2l0bmVzc2VzIixhKSk6KGE9e2FjY291bnQ6YXBpLnNlbmRlcixhcHByb3ZhbFdlaWdodDp7JG51bWJlckRlY2ltYWw6IjAifSxzaWduaW5nS2V5OmUsSVA6YyxSUENQb3J0OmQsUDJQUG9ydDpiLGVuYWJsZWQ6ZixtaXNzZWRSb3VuZHM6MCxtaXNzZWRSb3VuZHNJbkFSb3c6MCx2ZXJpZmllZFJvdW5kczowLGxhc3RSb3VuZFZlcmlmaWVkOm51bGwsbGFzdEJsb2NrVmVyaWZpZWQ6bnVsbH0sYXdhaXQgYXBpLmRiLmluc2VydCgid2l0bmVzc2VzIixhKSkpKX19LGFjdGlvbnMuYXBwcm92ZT1hc3luYyBnPT57bGV0e3dpdG5lc3M6YX09ZyxmPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtpZihhcGkuYXNzZXJ0KGEmJiJzdHJpbmciPT10eXBlb2YgYSYmYS5sZW5ndGg+PTMmJmEubGVuZ3RoPD0xNiwiaW52YWxpZCB3aXRuZXNzIGFjY291bnQiKSl7bGV0IGg9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIndpdG5lc3NlcyIse2FjY291bnQ6YX0pO2lmKGFwaS5hc3NlcnQoaCwid2l0bmVzcyBkb2VzIG5vdCBleGlzdCIpKXtsZXQgYj1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYWNjb3VudHMiLHthY2NvdW50OmFwaS5zZW5kZXJ9KTtpZihudWxsPT09YiYmKGI9e2FjY291bnQ6YXBpLnNlbmRlcixhcHByb3ZhbHM6MCxhcHByb3ZhbFdlaWdodDp7JG51bWJlckRlY2ltYWw6IjAifX0sYj1hd2FpdCBhcGkuZGIuaW5zZXJ0KCJhY2NvdW50cyIsYikpLGFwaS5hc3NlcnQoYi5hcHByb3ZhbHM8Zi5udW1iZXJPZkFwcHJvdmFsc1BlckFjY291bnQsYHlvdSBjYW4gb25seSBhcHByb3ZlICR7Zi5udW1iZXJPZkFwcHJvdmFsc1BlckFjY291bnR9IHdpdG5lc3Nlc2ApKXtsZXQgZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYXBwcm92YWxzIix7ZnJvbTphcGkuc2VuZGVyLHRvOmF9KTtpZihhcGkuYXNzZXJ0KG51bGw9PT1lLCJ5b3UgYWxyZWFkeSBhcHByb3ZlZCB0aGlzIHdpdG5lc3MiKSl7ZT17ZnJvbTphcGkuc2VuZGVyLHRvOmF9LGF3YWl0IGFwaS5kYi5pbnNlcnQoImFwcHJvdmFscyIsZSk7bGV0IGM9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxkPTA7YyYmYy5zdGFrZSYmKGQ9Yy5zdGFrZSksYyYmYy5kZWxlZ2F0aW9uc0luJiYoZD1hcGkuQmlnTnVtYmVyKGQpLnBsdXMoYy5kZWxlZ2F0aW9uc0luKS50b0ZpeGVkKEdPVkVSTkFOQ0VfVE9LRU5fUFJFQ0lTSU9OKSksYi5hcHByb3ZhbHMrPTEsYi5hcHByb3ZhbFdlaWdodD1kLGF3YWl0IGFwaS5kYi51cGRhdGUoImFjY291bnRzIixiKSxhd2FpdCB1cGRhdGVXaXRuZXNzUmFuayhhLGQpfX19fX0sYWN0aW9ucy5kaXNhcHByb3ZlPWFzeW5jIGY9PntsZXR7d2l0bmVzczphfT1mO2lmKGFwaS5hc3NlcnQoYSYmInN0cmluZyI9PXR5cGVvZiBhJiZhLmxlbmd0aD49MyYmYS5sZW5ndGg8PTE2LCJpbnZhbGlkIHdpdG5lc3MgYWNjb3VudCIpKXtsZXQgZz1hd2FpdCBhcGkuZGIuZmluZE9uZSgid2l0bmVzc2VzIix7YWNjb3VudDphfSk7aWYoYXBpLmFzc2VydChnLCJ3aXRuZXNzIGRvZXMgbm90IGV4aXN0Iikpe2xldCBiPWF3YWl0IGFwaS5kYi5maW5kT25lKCJhY2NvdW50cyIse2FjY291bnQ6YXBpLnNlbmRlcn0pO2lmKG51bGw9PT1iJiYoYj17YWNjb3VudDphcGkuc2VuZGVyLGFwcHJvdmFsczowLGFwcHJvdmFsV2VpZ2h0OnskbnVtYmVyRGVjaW1hbDoiMCJ9fSxhd2FpdCBhcGkuZGIuaW5zZXJ0KCJhY2NvdW50cyIsYikpLGFwaS5hc3NlcnQoYi5hcHByb3ZhbHM+MCwibm8gYXBwcm92YWxzIGZvdW5kIikpe2xldCBlPWF3YWl0IGFwaS5kYi5maW5kT25lKCJhcHByb3ZhbHMiLHtmcm9tOmFwaS5zZW5kZXIsdG86YX0pO2lmKGFwaS5hc3NlcnQobnVsbCE9PWUsInlvdSBoYXZlIG5vdCBhcHByb3ZlZCB0aGlzIHdpdG5lc3MiKSl7YXdhaXQgYXBpLmRiLnJlbW92ZSgiYXBwcm92YWxzIixlKTtsZXQgYz1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGQ9MDtjJiZjLnN0YWtlJiYoZD1jLnN0YWtlKSxjJiZjLmRlbGVnYXRpb25zSW4mJihkPWFwaS5CaWdOdW1iZXIoZCkucGx1cyhjLmRlbGVnYXRpb25zSW4pLnRvRml4ZWQoR09WRVJOQU5DRV9UT0tFTl9QUkVDSVNJT04pKSxiLmFwcHJvdmFscy09MSxiLmFwcHJvdmFsV2VpZ2h0PWQsYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYWNjb3VudHMiLGIpLGF3YWl0IHVwZGF0ZVdpdG5lc3NSYW5rKGEsYC0ke2R9YCl9fX19fTtjb25zdCBjaGFuZ2VDdXJyZW50V2l0bmVzcz1hc3luYygpPT57bGV0IGE9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtjdXJyZW50V2l0bmVzczplLHRvdGFsQXBwcm92YWxXZWlnaHQ6dSxsYXN0V2l0bmVzc2VzOmosbGFzdEJsb2NrUm91bmQ6dixyb3VuZDpxLG1heFJvdW5kc01pc3NlZEluQVJvdzpyLG1heFJvdW5kUHJvcG9zaXRpb25XYWl0aW5nUGVyaW9kOnN9PWEsaD0hMSx3PWFwaS5yYW5kb20oKSx4PWFwaS5CaWdOdW1iZXIodSkudGltZXModykudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTiwxKSxrPTAsbD0wLGk9YXdhaXQgYXBpLmRiLmZpbmQoIndpdG5lc3NlcyIse2FwcHJvdmFsV2VpZ2h0OnskZ3Q6eyRudW1iZXJEZWNpbWFsOiIwIn19fSwxMDAsayxbe2luZGV4OiJhcHByb3ZhbFdlaWdodCIsZGVzY2VuZGluZzohMH0sXSksbT1hd2FpdCBhcGkuZGIuZmluZCgic2NoZWR1bGVzIix7cm91bmQ6cX0pLHQ9ai5sZW5ndGg+MT9qW2oubGVuZ3RoLTJdOiIiLGY9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInNjaGVkdWxlcyIse3JvdW5kOnEsd2l0bmVzczplLGJsb2NrTnVtYmVyOnZ9KTtkb3tmb3IobGV0IG49MDtuPGkubGVuZ3RoO24rPTEpe2xldCBiPWlbbl07aWYobD1hcGkuQmlnTnVtYmVyKGwpLnBsdXMoYi5hcHByb3ZhbFdlaWdodC4kbnVtYmVyRGVjaW1hbCkudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTiksITA9PT1iLmVuYWJsZWQmJmIuYWNjb3VudCE9PXQmJiB2b2lkIDA9PT1tLmZpbmQoYT0+YS53aXRuZXNzPT09Yi5hY2NvdW50KSYmYXBpLkJpZ051bWJlcih4KS5sdGUobCkpe2FwaS5kZWJ1ZyhgY2hhbmdlZCBjdXJyZW50IHdpdG5lc3MgZnJvbSAke2Yud2l0bmVzc30gdG8gJHtiLmFjY291bnR9YCksZi53aXRuZXNzPWIuYWNjb3VudCxhd2FpdCBhcGkuZGIudXBkYXRlKCJzY2hlZHVsZXMiLGYpLGEuY3VycmVudFdpdG5lc3M9Yi5hY2NvdW50LGEubGFzdFdpdG5lc3Nlcy5wdXNoKGIuYWNjb3VudCksYS5ibG9ja051bWJlcldpdG5lc3NDaGFuZ2U9YXBpLmJsb2NrTnVtYmVyK3MsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixhKTtsZXQgYz1hd2FpdCBhcGkuZGIuZmluZE9uZSgid2l0bmVzc2VzIix7YWNjb3VudDplfSk7Yy5taXNzZWRSb3VuZHMrPTEsYy5taXNzZWRSb3VuZHNJbkFSb3crPTEsYy5taXNzZWRSb3VuZHNJbkFSb3c+PXImJihjLm1pc3NlZFJvdW5kc0luQVJvdz0wLGMuZW5hYmxlZD0hMSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgid2l0bmVzc2VzIixjKSxoPSEwLGFwaS5lbWl0KCJjdXJyZW50V2l0bmVzc0NoYW5nZWQiLHt9KTticmVha319ITE9PT1oJiYoays9MTAwLGk9YXdhaXQgYXBpLmRiLmZpbmQoIndpdG5lc3NlcyIse2FwcHJvdmFsV2VpZ2h0OnskZ3Q6eyRudW1iZXJEZWNpbWFsOiIwIn19fSwxMDAsayxbe2luZGV4OiJhcHByb3ZhbFdlaWdodCIsZGVzY2VuZGluZzohMH0sXSkpfXdoaWxlKGkubGVuZ3RoPjAmJiAhMT09PWgpaWYoITE9PT1oKXthcGkuZGVidWcoIm5vIGJhY2t1cCB3aXRuZXNzIHdhcyBmb3VuZCwgaW50ZXJjaGFuZ2luZyB3aXRuZXNzZXMgd2l0aGluIHRoZSBjdXJyZW50IHNjaGVkdWxlIik7Zm9yKGxldCBvPTA7bzxtLmxlbmd0aC0xO28rPTEpe2xldCBwPW1bb10sZz1wLndpdG5lc3M7aWYoZyE9PXQpe2FwaS5kZWJ1ZyhgY2hhbmdlZCBjdXJyZW50IHdpdG5lc3MgZnJvbSAke2V9IHRvICR7Z31gKSxmLndpdG5lc3M9Zyxhd2FpdCBhcGkuZGIudXBkYXRlKCJzY2hlZHVsZXMiLGYpLHAud2l0bmVzcz1lLGF3YWl0IGFwaS5kYi51cGRhdGUoInNjaGVkdWxlcyIscCksYS5jdXJyZW50V2l0bmVzcz1nLGEubGFzdFdpdG5lc3Nlcy5wdXNoKGcpLGEuYmxvY2tOdW1iZXJXaXRuZXNzQ2hhbmdlPWFwaS5ibG9ja051bWJlcitzLGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIsYSk7bGV0IGQ9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIndpdG5lc3NlcyIse2FjY291bnQ6ZX0pO2QubWlzc2VkUm91bmRzKz0xLGQubWlzc2VkUm91bmRzSW5BUm93Kz0xLGQubWlzc2VkUm91bmRzSW5BUm93Pj1yJiYoZC5taXNzZWRSb3VuZHNJbkFSb3c9MCxkLmVuYWJsZWQ9ITEpLGF3YWl0IGFwaS5kYi51cGRhdGUoIndpdG5lc3NlcyIsZCksYXBpLmVtaXQoImN1cnJlbnRXaXRuZXNzQ2hhbmdlZCIse30pO2JyZWFrfX19fSxtYW5hZ2VXaXRuZXNzZXNTY2hlZHVsZT1hc3luYygpPT57aWYoIm51bGwiIT09YXBpLnNlbmRlcilyZXR1cm47bGV0IGI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtudW1iZXJPZkFwcHJvdmVkV2l0bmVzc2VzOncsdG90YWxBcHByb3ZhbFdlaWdodDp4LGxhc3RWZXJpZmllZEJsb2NrTnVtYmVyOmosYmxvY2tOdW1iZXJXaXRuZXNzQ2hhbmdlOnksbGFzdEJsb2NrUm91bmQ6eixudW1iZXJPZlRvcFdpdG5lc3Nlczp0LG51bWJlck9mV2l0bmVzc1Nsb3RzOmQsbWF4Um91bmRQcm9wb3NpdGlvbldhaXRpbmdQZXJpb2Q6dX09YixBPWorMSxhPWF3YWl0IGFwaS5kYi5maW5kT25lKCJzY2hlZHVsZXMiLHtibG9ja051bWJlcjpBfSk7aWYobnVsbD09PWEpe2lmKGFwaS5kZWJ1ZygiY2FsY3VsYXRpbmcgbmV3IHNjaGVkdWxlIiksYT1bXSx3Pj1kKXtsZXQgQj1hcGkucmFuZG9tKCksbD1udWxsLG09MCxnPTAsaD1hd2FpdCBhcGkuZGIuZmluZCgid2l0bmVzc2VzIix7YXBwcm92YWxXZWlnaHQ6eyRndDp7JG51bWJlckRlY2ltYWw6IjAifX19LDEwMCxtLFt7aW5kZXg6ImFwcHJvdmFsV2VpZ2h0IixkZXNjZW5kaW5nOiEwfSxdKTtkb3tmb3IobGV0IGs9MDtrPGgubGVuZ3RoO2srPTEpe2xldCBuPWhba107YS5sZW5ndGg+PXQmJm51bGw9PT1sJiYobD1hcGkuQmlnTnVtYmVyKGcpLnBsdXMoIiR7Q09OU1RBTlRTLkdPVkVSTkFOQ0VfVE9LRU5fTUlOX1ZBTFVFfSQiKS5wbHVzKGFwaS5CaWdOdW1iZXIoeCkubWludXMoZykudGltZXMoQikudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTiwxKSkudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTikpLGc9YXBpLkJpZ051bWJlcihnKS5wbHVzKG4uYXBwcm92YWxXZWlnaHQuJG51bWJlckRlY2ltYWwpLnRvRml4ZWQoR09WRVJOQU5DRV9UT0tFTl9QUkVDSVNJT04pLCEwPT09bi5lbmFibGVkJiYoYS5sZW5ndGg8dHx8YXBpLkJpZ051bWJlcihsKS5sdGUoZykpJiZhLnB1c2goe3dpdG5lc3M6bi5hY2NvdW50LGJsb2NrTnVtYmVyOm51bGx9KSxhLmxlbmd0aD49ZCYmKGs9aC5sZW5ndGgpfWEubGVuZ3RoPGQmJihtKz0xMDAsaD1hd2FpdCBhcGkuZGIuZmluZCgid2l0bmVzc2VzIix7YXBwcm92YWxXZWlnaHQ6eyRndDp7JG51bWJlckRlY2ltYWw6IjAifX19LDEwMCxtLFt7aW5kZXg6ImFwcHJvdmFsV2VpZ2h0IixkZXNjZW5kaW5nOiEwfSxdKSl9d2hpbGUoaC5sZW5ndGg+MCYmYS5sZW5ndGg8ZCl9aWYoYS5sZW5ndGg9PT1kKXtsZXQgbyx2O2ZvcihsZXQgaT1hLmxlbmd0aC0xO2k+MDtpLT0xKXtsZXQgQz1hcGkucmFuZG9tKCk7bz1NYXRoLmZsb29yKEMqKGkrMSkpLHY9YVtpXSxhW2ldPWFbb10sYVtvXT12fWxldCBjPWIubGFzdFdpdG5lc3NlcyxwPWMubGVuZ3RoPjA/Y1tjLmxlbmd0aC0xXToiIjtjLmxlbmd0aD49ZCYmKGM9W10pO2xldCBxPWFbYS5sZW5ndGgtMV0ud2l0bmVzcztpZihjLmluY2x1ZGVzKHEpfHxwPT09cSl7Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKz0xKWlmKCFjLmluY2x1ZGVzKGFbZV0ud2l0bmVzcykmJmFbZV0ud2l0bmVzcyE9PXApe2xldCBEPWFbZV0ud2l0bmVzczthW2VdLndpdG5lc3M9cSxhW2EubGVuZ3RoLTFdLndpdG5lc3M9RDticmVha319aWYoYVswXS53aXRuZXNzPT09cCl7bGV0IEU9YVswXS53aXRuZXNzLEY9YVsxXS53aXRuZXNzO2FbMF0ud2l0bmVzcz1GLGFbMV0ud2l0bmVzcz1FfWxldCByPTA9PT1qP2FwaS5ibG9ja051bWJlcjpqKzE7Yi5yb3VuZCs9MTtmb3IobGV0IGY9MDtmPGEubGVuZ3RoO2YrPTEpYVtmXS5ibG9ja051bWJlcj1yLGFbZl0ucm91bmQ9Yi5yb3VuZCxhcGkuZGVidWcoYHNjaGVkdWxlZCB3aXRuZXNzICR7YVtmXS53aXRuZXNzfSBmb3IgYmxvY2sgJHtyfSAocm91bmQgJHtiLnJvdW5kfSlgKSxhd2FpdCBhcGkuZGIuaW5zZXJ0KCJzY2hlZHVsZXMiLGFbZl0pLHIrPTE7MD09PWomJihiLmxhc3RWZXJpZmllZEJsb2NrTnVtYmVyPWFwaS5ibG9ja051bWJlci0xKTtsZXQgcz1hW2EubGVuZ3RoLTFdO2IubGFzdEJsb2NrUm91bmQ9cy5ibG9ja051bWJlcixiLmN1cnJlbnRXaXRuZXNzPXMud2l0bmVzcyxjLnB1c2gocy53aXRuZXNzKSxiLmxhc3RXaXRuZXNzZXM9YyxiLmJsb2NrTnVtYmVyV2l0bmVzc0NoYW5nZT1hcGkuYmxvY2tOdW1iZXIrdSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLGIpLGFwaS5lbWl0KCJuZXdTY2hlZHVsZSIse30pfX1lbHNlIGFwaS5ibG9ja051bWJlcj49eSYmKGFwaS5ibG9ja051bWJlcj56P2F3YWl0IGNoYW5nZUN1cnJlbnRXaXRuZXNzKCk6KGIuYmxvY2tOdW1iZXJXaXRuZXNzQ2hhbmdlPWFwaS5ibG9ja051bWJlcit1LGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIsYiksYXBpLmVtaXQoImF3YWl0aW5nUm91bmRFbmQiLHt9KSkpfTthY3Rpb25zLnByb3Bvc2VSb3VuZD1hc3luYyB4PT57bGV0e3JvdW5kSGFzaDpiLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTp5LHNpZ25hdHVyZXM6Y309eCxkPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7bGFzdFZlcmlmaWVkQmxvY2tOdW1iZXI6eixyb3VuZDpnLGxhc3RCbG9ja1JvdW5kOmksY3VycmVudFdpdG5lc3M6aH09ZCxlPWF3YWl0IGFwaS5kYi5maW5kKCJzY2hlZHVsZXMiLHtyb3VuZDpnfSwxZTMsMCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSksQT1lLmxlbmd0aCx7d2l0bmVzc1NpZ25hdHVyZXNSZXF1aXJlZDpwfT1kO2lmKCEwPT09eSYmYiYmInN0cmluZyI9PXR5cGVvZiBiJiY2ND09PWIubGVuZ3RoJiZBcnJheS5pc0FycmF5KGMpJiZjLmxlbmd0aDw9QSYmYy5sZW5ndGg+PXApe2xldCBqPXorMSxhPSIiO2lmKGFwaS5zZW5kZXI9PT1oKXtmb3IoO2o8PWk7KXtsZXQgcT1hd2FpdCBhcGkuZGIuZ2V0QmxvY2tJbmZvKGopO2lmKG51bGwhPT1xKWE9YXBpLlNIQTI1NihgJHthfSR7cS5oYXNofWApO2Vsc2V7YT0iIjticmVha31qKz0xfWlmKCIiIT09YSYmYT09PWIpe2xldCByPTAsaz1bXSxCPWF3YWl0IGFwaS5kYi5maW5kT25lKCJ3aXRuZXNzZXMiLHthY2NvdW50Omh9KSxDPWMuZmluZChhPT5hWzBdPT09aCk7Zm9yKGxldCBsPTA7bDxlLmxlbmd0aDtsKz0xKXtsZXQgcz1lW2xdLG09YXdhaXQgYXBpLmRiLmZpbmRPbmUoIndpdG5lc3NlcyIse2FjY291bnQ6cy53aXRuZXNzfSk7aWYobnVsbCE9PW0pe2xldCB0PWMuZmluZChhPT5hWzBdPT09bS5hY2NvdW50KTt0JiZhcGkuY2hlY2tTaWduYXR1cmUoYSx0WzFdLG0uc2lnbmluZ0tleSwhMCkmJihhcGkuZGVidWcoYHdpdG5lc3MgJHttLmFjY291bnR9IHNpZ25lZCByb3VuZCAke2d9YCkscis9MSksay5wdXNoKHtibG9ja051bWJlcjpzLmJsb2NrTnVtYmVyLHdpdG5lc3M6aCxzaWduaW5nS2V5OkIuc2lnbmluZ0tleSxyb3VuZFNpZ25hdHVyZTpDWzFdLHJvdW5kOmcscm91bmRIYXNoOmJ9KX19aWYocj49cCl7Zm9yKGxldCBuPTA7bjxrLmxlbmd0aDtuKz0xKWF3YWl0IGFwaS52ZXJpZnlCbG9jayhrW25dKTtsZXQgdT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImNvbnRyYWN0c0JhbGFuY2VzIix7YWNjb3VudDoid2l0bmVzc2VzIixzeW1ib2w6VVRJTElUWV9UT0tFTl9TWU1CT0x9KSx2PSExO3UmJmFwaS5CaWdOdW1iZXIodS5iYWxhbmNlKS5ndGUoIjAuMDQ3NTY0NjUiKSYmKHY9ITApO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7bys9MSl7bGV0IHc9ZVtvXTshMD09PXYmJmF3YWl0IGFwaS50cmFuc2ZlclRva2Vucyh3LndpdG5lc3MsVVRJTElUWV9UT0tFTl9TWU1CT0wsIjAuMDA5NTEyOTMiLCJ1c2VyIiksYXdhaXQgYXBpLmRiLnJlbW92ZSgic2NoZWR1bGVzIix3KX1kLmN1cnJlbnRXaXRuZXNzPW51bGwsZC5sYXN0VmVyaWZpZWRCbG9ja051bWJlcj1pLGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIsZCk7bGV0IGY9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIndpdG5lc3NlcyIse2FjY291bnQ6aH0pO2YubWlzc2VkUm91bmRzSW5BUm93PTAsZi5sYXN0Um91bmRWZXJpZmllZD1nLGYubGFzdEJsb2NrVmVyaWZpZWQ9aSxmLnZlcmlmaWVkUm91bmRzKz0xLGF3YWl0IGFwaS5kYi51cGRhdGUoIndpdG5lc3NlcyIsZiksYXdhaXQgbWFuYWdlV2l0bmVzc2VzU2NoZWR1bGUoKX19fX19LGFjdGlvbnMuc2NoZWR1bGVXaXRuZXNzZXM9YXN5bmMoKT0+eyJudWxsIj09PWFwaS5zZW5kZXImJmF3YWl0IG1hbmFnZVdpdG5lc3Nlc1NjaGVkdWxlKCl9"}}}

Sort:  

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"witnesses","params":"","code":"LyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqLwovKiBnbG9iYWwgYWN0aW9ucywgYXBpICovCgpjb25zdCBOQl9BUFBST1ZBTFNfQUxMT1dFRCA9IDMwOwpjb25zdCBOQl9UT1BfV0lUTkVTU0VTID0gMjA7CmNvbnN0IE5CX0JBQ0tVUF9XSVRORVNTRVMgPSAxOwpjb25zdCBOQl9XSVRORVNTRVMgPSBOQl9UT1BfV0lUTkVTU0VTICsgTkJfQkFDS1VQX1dJVE5FU1NFUzsKY29uc3QgTkJfV0lUTkVTU0VTX1NJR05BVFVSRVNfUkVRVUlSRUQgPSAxNDsKY29uc3QgTUFYX1JPVU5EU19NSVNTRURfSU5fQV9ST1cgPSAzOyAvLyBhZnRlciB0aGF0IHRoZSB3aXRuZXNzIGlzIGRpc2FibGVkCmNvbnN0IE1BWF9ST1VORF9QUk9QT1NJVElPTl9XQUlUSU5HX1BFUklPRCA9IDQwOyAvLyBudW1iZXIgb2YgYmxvY2tzCmNvbnN0IE5CX1RPS0VOU19UT19SRVdBUkQgPSAnMC4wMDk1MTI5Myc7IC8vIGluZmxhdGlvbi5qcyB0b2tlbnMgcGVyIGJsb2NrCmNvbnN0IE5CX1RPS0VOU19ORUVERURfQkVGT1JFX1JFV0FSRElORyA9ICcwLjA0NzU2NDY1JzsgLy8gNXggdG8gcmV3YXJkCi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcKY29uc3QgVVRJTElUWV9UT0tFTl9TWU1CT0wgPSAiJyR7Q09OU1RBTlRTLlVUSUxJVFlfVE9LRU5fU1lNQk9MfSQnIjsKLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZwpjb25zdCBHT1ZFUk5BTkNFX1RPS0VOX1NZTUJPTCA9ICJCRUUiOwovLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nCmNvbnN0IEdPVkVSTkFOQ0VfVE9LRU5fUFJFQ0lTSU9OID0gJyR7Q09OU1RBTlRTLkdPVkVSTkFOQ0VfVE9LRU5fUFJFQ0lTSU9OfSQnOwovLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nCmNvbnN0IEdPVkVSTkFOQ0VfVE9LRU5fTUlOX1ZBTFVFID0gJyR7Q09OU1RBTlRTLkdPVkVSTkFOQ0VfVE9LRU5fTUlOX1ZBTFVFfSQnOwoKYWN0aW9ucy5jcmVhdGVTU0MgPSBhc3luYyAoKSA9PiB7CiAgY29uc3QgdGFibGVFeGlzdHMgPSBhd2FpdCBhcGkuZGIudGFibGVFeGlzdHMoJ3dpdG5lc3NlcycpOwoKICBpZiAodGFibGVFeGlzdHMgPT09IGZhbHNlKSB7CiAgICBhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoJ3dpdG5lc3NlcycsIFsnYXBwcm92YWxXZWlnaHQnXSk7CiAgICBhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoJ2FwcHJvdmFscycsIFsnZnJvbScsICd0byddKTsKICAgIGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgnYWNjb3VudHMnLCBbJ2FjY291bnQnXSk7CiAgICBhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoJ3NjaGVkdWxlcycpOwogICAgYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCdwYXJhbXMnKTsKCiAgICBjb25zdCBwYXJhbXMgPSB7CiAgICAgIHRvdGFsQXBwcm92YWxXZWlnaHQ6ICcwJywKICAgICAgbnVtYmVyT2ZBcHByb3ZlZFdpdG5lc3NlczogMCwKICAgICAgbGFzdFZlcmlmaWVkQmxvY2tOdW1iZXI6IDAsCiAgICAgIHJvdW5kOiAwLAogICAgICBsYXN0QmxvY2tSb3VuZDogMCwKICAgICAgY3VycmVudFdpdG5lc3M6IG51bGwsCiAgICAgIGJsb2NrTnVtYmVyV2l0bmVzc0NoYW5nZTogMCwKICAgICAgbGFzdFdpdG5lc3NlczogW10sCiAgICAgIG51bWJlck9mQXBwcm92YWxzUGVyQWNjb3VudDogTkJfQVBQUk9WQUxTX0FMTE9XRUQsCiAgICAgIG51bWJlck9mVG9wV2l0bmVzc2VzOiBOQl9UT1BfV0lUTkVTU0VTLAogICAgICBudW1iZXJPZldpdG5lc3NTbG90czogTkJfV0lUTkVTU0VTLAogICAgICB3aXRuZXNzU2lnbmF0dXJlc1JlcXVpcmVkOiBOQl9XSVRORVNTRVNfU0lHTkFUVVJFU19SRVFVSVJFRCwKICAgICAgbWF4Um91bmRzTWlzc2VkSW5BUm93OiBNQVhfUk9VTkRTX01JU1NFRF9JTl9BX1JPVywKICAgICAgbWF4Um91bmRQcm9wb3NpdGlvbldhaXRpbmdQZXJpb2Q6IE1BWF9ST1VORF9QUk9QT1NJVElPTl9XQUlUSU5HX1BFUklPRCwKICAgIH07CgogICAgYXdhaXQgYXBpLmRiLmluc2VydCgncGFyYW1zJywgcGFyYW1zKTsKICB9Cn07CgphY3Rpb25zLnJlc2V0U2NoZWR1bGUgPSBhc3luYyAoKSA9PiB7CiAgaWYgKGFwaS5zZW5kZXIgIT09IGFwaS5vd25lcikgcmV0dXJuOwoKICBjb25zdCBzY2hlZHVsZXMgPSBhd2FpdCBhcGkuZGIuZmluZCgnc2NoZWR1bGVzJywgeyB9KTsKCiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNjaGVkdWxlcy5sZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIGNvbnN0IHNjaGVkdWxlID0gc2NoZWR1bGVzW2luZGV4XTsKICAgIGF3YWl0IGFwaS5kYi5yZW1vdmUoJ3NjaGVkdWxlcycsIHNjaGVkdWxlKTsKICB9CgogIGNvbnN0IHBhcmFtcyA9IGF3YWl0IGFwaS5kYi5maW5kT25lKCdwYXJhbXMnLCB7fSk7CiAgcGFyYW1zLmN1cnJlbnRXaXRuZXNzID0gbnVsbDsKICBwYXJhbXMuYmxvY2tOdW1iZXJXaXRuZXNzQ2hhbmdlID0gMDsKICBwYXJhbXMubGFzdFdpdG5lc3NlcyA9IFtdOwogIGF3YWl0IGFwaS5kYi51cGRhdGUoJ3BhcmFtcycsIHBhcmFtcyk7Cn07CgphY3Rpb25zLnVwZGF0ZVBhcmFtcyA9IGFzeW5jIChwYXlsb2FkKSA9PiB7CiAgaWYgKGFwaS5zZW5kZXIgIT09IGFwaS5vd25lcikgcmV0dXJuOwoKICBjb25zdCB7CiAgICBudW1iZXJPZkFwcHJvdmFsc1BlckFjY291bnQsCiAgICBudW1iZXJPZlRvcFdpdG5lc3NlcywKICAgIG51bWJlck9mV2l0bmVzc1Nsb3RzLAogICAgd2l0bmVzc1NpZ25hdHVyZXNSZXF1aXJlZCwKICAgIG1heFJvdW5kc01pc3NlZEluQVJvdywKICAgIG1heFJvdW5kUHJvcG9zaXRpb25XYWl0aW5nUGVyaW9kLAogIH0gPSBwYXlsb2FkOwoKICBjb25zdCBwYXJhbXMgPSBhd2FpdCBhcGkuZGIuZmluZE9uZSgncGFyYW1zJywge30pOwogIGxldCBzaG91bGRSZXNldFNjaGVkdWxlID0gZmFsc2U7CgogIGlmIChudW1iZXJPZkFwcHJvdmFsc1BlckFjY291bnQgJiYgTnVtYmVyLmlzSW50ZWdlcihudW1iZXJPZkFwcHJvdmFsc1BlckFjY291bnQpKSB7CiAgICBwYXJhbXMubnVtYmVyT2ZBcHByb3ZhbHNQZXJBY2NvdW50ID0gbnVtYmVyT2ZBcHByb3ZhbHNQZXJBY2NvdW50OwogIH0KICBpZiAobnVtYmVyT2ZUb3BXaXRuZXNzZXMgJiYgTnVtYmVyLmlzSW50ZWdlcihudW1iZXJPZlRvcFdpdG5lc3NlcykpIHsKICAgIHBhcmFtcy5udW1iZXJPZlRvcFdpdG5lc3NlcyA9IG51bWJlck9mVG9wV2l0bmVzc2VzOwogIH0KICBpZiAobnVtYmVyT2ZXaXRuZXNzU2xvdHMgJiYgTnVtYmVyLmlzSW50ZWdlcihudW1iZXJPZldpdG5lc3NTbG90cykKICAgICAgJiYgcGFyYW1zLm51bWJlck9mV2l0bmVzc1Nsb3RzICE9PSBudW1iZXJPZldpdG5lc3NTbG90cykgewogICAgc2hvdWxkUmVzZXRTY2hlZHVsZSA9IHRydWU7CiAgICBwYXJhbXMubnVtYmVyT2ZXaXRuZXNzU2xvdHMgPSBudW1iZXJPZldpdG5lc3NTbG90czsKICB9CiAgaWYgKHdpdG5lc3NTaWduYXR1cmVzUmVxdWlyZWQgJiYgTnVtYmVyLmlzSW50ZWdlcih3aXRuZXNzU2lnbmF0dXJlc1JlcXVpcmVkKSkgewogICAgcGFyYW1zLndpdG5lc3NTaWduYXR1cmVzUmVxdWlyZWQgPSB3aXRuZXNzU2lnbmF0dXJlc1JlcXVpcmVkOwogIH0KICBpZiAobWF4Um91bmRzTWlzc2VkSW5BUm93ICYmIE51bWJlci5pc0ludGVnZXIobWF4Um91bmRzTWlzc2VkSW5BUm93KSkgewogICAgcGFyYW1zLm1heFJvdW5kc01pc3NlZEluQVJvdyA9IG1heFJvdW5kc01pc3NlZEluQVJvdzsKICB9CiAgaWYgKG1heFJvdW5kUHJvcG9zaXRpb25XYWl0aW5nUGVyaW9kICYmIE51bWJlci5pc0ludGVnZXIobWF4Um91bmRQcm9wb3NpdGlvbldhaXRpbmdQZXJpb2QpKSB7CiAgICBwYXJhbXMubWF4Um91bmRQcm9wb3NpdGlvbldhaXRpbmdQZXJpb2QgPSBtYXhSb3VuZFByb3Bvc2l0aW9uV2FpdGluZ1BlcmlvZDsKICB9CiAgaWYgKCFhcGkuYXNzZXJ0KHBhcmFtcy5udW1iZXJPZlRvcFdpdG5lc3NlcyArIDEgPT09IHBhcmFtcy5udW1iZXJPZldpdG5lc3NTbG90cywgJ29ubHkgMSBiYWNrdXAgYWxsb3dlZCcpKSB7CiAgICByZXR1cm47CiAgfQogIGF3YWl0IGFwaS5kYi51cGRhdGUoJ3BhcmFtcycsIHBhcmFtcyk7CiAgaWYgKHNob3VsZFJlc2V0U2NoZWR1bGUpIHsKICAgIGF3YWl0IGFjdGlvbnMucmVzZXRTY2hlZHVsZSgpOwogIH0KfTsKCmNvbnN0IHVwZGF0ZVdpdG5lc3NSYW5rID0gYXN5bmMgKHdpdG5lc3MsIGFwcHJvdmFsV2VpZ2h0KSA9PiB7CiAgLy8gY2hlY2sgaWYgd2l0bmVzcyBleGlzdHMKICBjb25zdCB3aXRuZXNzUmVjID0gYXdhaXQgYXBpLmRiLmZpbmRPbmUoJ3dpdG5lc3NlcycsIHsgYWNjb3VudDogd2l0bmVzcyB9KTsKCiAgaWYgKHdpdG5lc3NSZWMpIHsKICAgIC8vIHVwZGF0ZSB3aXRuZXNzIGFwcHJvdmFsV2VpZ2h0CiAgICBjb25zdCBvbGRBcHByb3ZhbFdlaWdodCA9IHdpdG5lc3NSZWMuYXBwcm92YWxXZWlnaHQuJG51bWJlckRlY2ltYWw7CiAgICB3aXRuZXNzUmVjLmFwcHJvdmFsV2VpZ2h0LiRudW1iZXJEZWNpbWFsID0gYXBpLkJpZ051bWJlcigKICAgICAgd2l0bmVzc1JlYy5hcHByb3ZhbFdlaWdodC4kbnVtYmVyRGVjaW1hbCwKICAgICkKICAgICAgLnBsdXMoYXBwcm92YWxXZWlnaHQpCiAgICAgIC50b0ZpeGVkKEdPVkVSTkFOQ0VfVE9LRU5fUFJFQ0lTSU9OKTsKCiAgICBhd2FpdCBhcGkuZGIudXBkYXRlKCd3aXRuZXNzZXMnLCB3aXRuZXNzUmVjKTsKCiAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCBhcGkuZGIuZmluZE9uZSgncGFyYW1zJywge30pOwoKICAgIC8vIHVwZGF0ZSB0b3RhbEFwcHJvdmFsV2VpZ2h0CiAgICBwYXJhbXMudG90YWxBcHByb3ZhbFdlaWdodCA9IGFwaS5CaWdOdW1iZXIocGFyYW1zLnRvdGFsQXBwcm92YWxXZWlnaHQpCiAgICAgIC5wbHVzKGFwcHJvdmFsV2VpZ2h0KQogICAgICAudG9GaXhlZChHT1ZFUk5BTkNFX1RPS0VOX1BSRUNJU0lPTik7CgogICAgLy8gdXBkYXRlIG51bWJlck9mQXBwcm92ZWRXaXRuZXNzZXMKICAgIGlmIChhcGkuQmlnTnVtYmVyKG9sZEFwcHJvdmFsV2VpZ2h0KS5lcSgwKQogICAgICAmJiBhcGkuQmlnTnVtYmVyKHdpdG5lc3NSZWMuYXBwcm92YWxXZWlnaHQuJG51bWJlckRlY2ltYWwpLmd0KDApKSB7CiAgICAgIHBhcmFtcy5udW1iZXJPZkFwcHJvdmVkV2l0bmVzc2VzICs9IDE7CiAgICB9IGVsc2UgaWYgKGFwaS5CaWdOdW1iZXIob2xkQXBwcm92YWxXZWlnaHQpLmd0KDApCiAgICAgICYmIGFwaS5CaWdOdW1iZXIod2l0bmVzc1JlYy5hcHByb3ZhbFdlaWdodC4kbnVtYmVyRGVjaW1hbCkuZXEoMCkpIHsKICAgICAgcGFyYW1zLm51bWJlck9mQXBwcm92ZWRXaXRuZXNzZXMgLT0gMTsKICAgIH0KCiAgICBhd2FpdCBhcGkuZGIudXBkYXRlKCdwYXJhbXMnLCBwYXJhbXMpOwogIH0KfTsKCmFjdGlvbnMudXBkYXRlV2l0bmVzc2VzQXBwcm92YWxzID0gYXN5bmMgKHBheWxvYWQpID0"}}}