Marketpools Smart Contract

Words
1
Reading
1 min
Listen
Play
5y

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"marketpools","params":"","code":"Y29uc3QgVHJhZGVUeXBlPVsiZXhhY3RJbnB1dCIsImV4YWN0T3V0cHV0Il07ZnVuY3Rpb24gZ2V0UXVvdGUoYW1vdW50LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7cmV0dXJuISghYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGFtb3VudCkuZ3QoMCksImluc3VmZmljaWVudCBhbW91bnQiKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsaXF1aWRpdHlJbikuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobGlxdWlkaXR5T3V0KS5ndCgwKSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKSYmYXBpLkJpZ051bWJlcihhbW91bnQpLnRpbWVzKGxpcXVpZGl0eU91dCkuZGl2aWRlZEJ5KGxpcXVpZGl0eUluKX1mdW5jdGlvbiBnZXRBbW91bnRJbihwYXJhbXMsYW1vdW50T3V0LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgb3V0cHV0IGFtb3VudCIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5ndCgwKSYmYXBpLkJpZ051bWJlcihsaXF1aWRpdHlPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKGFtb3VudE91dCkubHQobGlxdWlkaXR5T3V0KSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKXJldHVybiExO2NvbnN0IG51bT1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS50aW1lcyhhbW91bnRPdXQpLGRlbj1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkubWludXMoYW1vdW50T3V0KS50aW1lcyhwYXJhbXMudHJhZGVGZWVNdWwpO3JldHVybiBudW0uZGl2aWRlZEJ5KGRlbil9ZnVuY3Rpb24gZ2V0QW1vdW50T3V0KHBhcmFtcyxhbW91bnRJbixsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYW1vdW50SW4pLmd0KDApLCJpbnN1ZmZpY2llbnQgb3V0cHV0IGFtb3VudCIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5ndCgwKSYmYXBpLkJpZ051bWJlcihsaXF1aWRpdHlPdXQpLmd0KDApLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuITE7Y29uc3QgYW1vdW50SW5XaXRoRmVlPWFwaS5CaWdOdW1iZXIoYW1vdW50SW4pLnRpbWVzKHBhcmFtcy50cmFkZUZlZU11bCksbnVtPWFwaS5CaWdOdW1iZXIoYW1vdW50SW5XaXRoRmVlKS50aW1lcyhsaXF1aWRpdHlPdXQpLGRlbj1hcGkuQmlnTnVtYmVyKGxpcXVpZGl0eUluKS5wbHVzKGFtb3VudEluV2l0aEZlZSksYW1vdW50T3V0PW51bS5kaXZpZGVkQnkoZGVuKTtyZXR1cm4hIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmx0KGxpcXVpZGl0eU91dCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSYmYW1vdW50T3V0fWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlT3JhY2xlKHBvb2wsbmV3UHJpY2UsbWF4RGV2aWF0aW9uPWFwaS5CaWdOdW1iZXIoIjAuMDEiKSl7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09cG9vbC50b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlTWV0cmljcz0iU1dBUC5ISVZFIiE9PWJhc2VTeW1ib2w/YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtYXJrZXQiLCJtZXRyaWNzIix7c3ltYm9sOmJhc2VTeW1ib2x9KTp7bGFzdFByaWNlOjF9LHF1b3RlTWV0cmljcz0iU1dBUC5ISVZFIiE9PXF1b3RlU3ltYm9sP2F3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0IiwibWV0cmljcyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pOntsYXN0UHJpY2U6MX07aWYoIWJhc2VNZXRyaWNzfHwhcXVvdGVNZXRyaWNzKXJldHVybiBudWxsO2NvbnN0IG9yYWNsZT1hcGkuQmlnTnVtYmVyKGJhc2VNZXRyaWNzLmxhc3RQcmljZSkuZGl2aWRlZEJ5KHF1b3RlTWV0cmljcy5sYXN0UHJpY2UpLGRldj1hcGkuQmlnTnVtYmVyKG5ld1ByaWNlKS5taW51cyhvcmFjbGUpLmFicygpLmRpdmlkZWRCeShvcmFjbGUpO3JldHVybiEhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGRldikubHRlKG1heERldmlhdGlvbiksImV4Y2VlZGVkIG1heCBkZXZpYXRpb24gZnJvbSBvcmRlciBib29rIil9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuUGFpciYmLTEhPT10b2tlblBhaXIuaW5kZXhPZigiOiIpLCJpbnZhbGlkIHRva2VuUGFpciBmb3JtYXQiKSlyZXR1cm4hMTtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKTtyZXR1cm4hIShhcGkuYXNzZXJ0KGJhc2VTeW1ib2whPT1xdW90ZVN5bWJvbCwidG9rZW5QYWlyIGNhbm5vdCBiZSB0aGUgc2FtZSB0b2tlbiIpJiZhcGkuYXNzZXJ0KGF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSwiYmFzZVN5bWJvbCBkb2VzIG5vdCBleGlzdCIpJiZhcGkuYXNzZXJ0KGF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSksInF1b3RlU3ltYm9sIGRvZXMgbm90IGV4aXN0IikpfWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUG9vbCh0b2tlblBhaXIpe2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pLHJldlBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOltxdW90ZVN5bWJvbCxiYXNlU3ltYm9sXS5qb2luKCI6Iil9KTtyZXR1cm4hIWFwaS5hc3NlcnQobnVsbD09PXBvb2wmJm51bGw9PT1yZXZQb29sLCJhIHBvb2wgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgdG9rZW5QYWlyIil9YXN5bmMgZnVuY3Rpb24gdXBkYXRlUG9vbFN0YXRzKHBvb2wsYmFzZUFkanVzdGVkLHF1b3RlQWRqdXN0ZWQsc2hhcmVzQWRqdXN0ZWQsc3dhcCl7Y29uc3QgdVBvb2w9cG9vbDt1UG9vbC5iYXNlUXVhbnRpdHk9YXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkucGx1cyhiYXNlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSx1UG9vbC5xdW90ZVF1YW50aXR5PWFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5wbHVzKHF1b3RlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSxhcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VRdWFudGl0eSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIodVBvb2wucXVvdGVRdWFudGl0eSkuZ3QoMCkmJih1UG9vbC5iYXNlUHJpY2U9YXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkodVBvb2wuYmFzZVF1YW50aXR5KS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdVBvb2wucXVvdGVQcmljZT1hcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VRdWFudGl0eSkuZGl2aWRlZEJ5KHVQb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksc2hhcmVzQWRqdXN0ZWQmJih1UG9vbC50b3RhbFNoYXJlcz1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxTaGFyZXMpLnBsdXMoc2hhcmVzQWRqdXN0ZWQpKSxzd2FwJiYodVBvb2wuYmFzZVZvbHVtZT1hcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VWb2x1bWUpLnBsdXMoTWF0aC5hYnMoYmFzZUFkanVzdGVkKSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLHVQb29sLnF1b3RlVm9sdW1lPWFwaS5CaWdOdW1iZXIodVBvb2wucXVvdGVWb2x1bWUpLnBsdXMoTWF0aC5hYnMocXVvdGVBZGp1c3RlZCkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9vbHMiLHVQb29sKX1hY3Rpb25zLmNyZWF0ZVNTQz1hc3luYygpPT57aWYoITE9PT1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMoInBvb2xzIikpe2F3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicG9vbHMiLFsidG9rZW5QYWlyIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgibGlxdWlkaXR5UG9zaXRpb25zIixbImFjY291bnQiLCJ0b2tlblBhaXIiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwYXJhbXMiKTtjb25zdCBwYXJhbXM9e3Bvb2xDcmVhdGlvbkZlZToiMTAwMCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNle2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocGFyYW1zLnVwZGF0ZUluZGV4KTE9PT1wYXJhbXMudXBkYXRlSW5kZXgmJihwYXJhbXMudHJhZGVGZWVNdWw9IjAuOTk3NSIscGFyYW1zLnVwZGF0ZUluZGV4PTIsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpKTtlbHNle2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpO2xldCBscFVwZGF0ZT1hd2FpdCBhcGkuZGIuZmluZCgibGlxdWlkaXR5UG9zaXRpb25zIix7dGltZUZhY3Rvcjp7JGV4aXN0czohMX19KTtmb3IoO2xwVXBkYXRlLmxlbmd0aD4wOyl7Zm9yKGxldCBpPTA7aTxscFVwZGF0ZS5sZW5ndGg7aSs9MSl7Y29uc3QgbHA9bHBVcGRhdGVbaV07bHAudGltZUZhY3Rvcj1ibG9ja0RhdGUuZ2V0VGltZSgpLGF3YWl0IGFwaS5kYi51cGRhdGUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApfWxwVXBkYXRlPWF3YWl0IGFwaS5kYi5maW5kKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0aW1lRmFjdG9yOnskZXhpc3RzOiExfX0pfXBhcmFtcy51cGRhdGVJbmRleD0xLGF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX19fSxhY3Rpb25zLnVwZGF0ZVBhcmFtcz1hc3luYyBwYXlsb2FkPT57Y29uc3R7cG9vbENyZWF0aW9uRmVlOnBvb2xDcmVhdGlvbkZlZX09cGF5bG9hZDtpZihhcGkuc2VuZGVyIT09YXBpLm93bmVyKXJldHVybjtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKHBvb2xDcmVhdGlvbkZlZSl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBwb29sQ3JlYXRpb25GZWUmJiFhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihwb29sQ3JlYXRpb25GZWUpLmd0ZSgwKSwiaW52YWxpZCBwb29sQ3JlYXRpb25GZWUiKSlyZXR1cm47cGFyYW1zLnBvb2xDcmVhdGlvbkZlZT1wb29sQ3JlYXRpb25GZWV9YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfSxhY3Rpb25zLmNyZWF0ZVBvb2w9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtwb29sQ3JlYXRpb25GZWU6cG9vbENyZWF0aW9uRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRDcmVhdGlvbj0hKCFhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShwb29sQ3JlYXRpb25GZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpJiZhd2FpdCB2YWxpZGF0ZVBvb2wodG9rZW5QYWlyKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLGJhc2VUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpiYXNlU3ltYm9sfSkscXVvdGVUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pLG5ld1Bvb2w9e3Rva2VuUGFpcjp0b2tlblBhaXIsYmFzZVF1YW50aXR5OjAsYmFzZVZvbHVtZTowLGJhc2VQcmljZTowLHF1b3RlUXVhbnRpdHk6MCxxdW90ZVZvbHVtZTowLHF1b3RlUHJpY2U6MCx0b3RhbFNoYXJlczowLHByZWNpc2lvbjpNYXRoLm1heChiYXNlVG9rZW4ucHJlY2lzaW9uLHF1b3RlVG9rZW4ucHJlY2lzaW9uKSxjcmVhdG9yOmFwaS5zZW5kZXJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBvb2xzIixuZXdQb29sKSxhcGkuc2VuZGVyIT09YXBpLm93bmVyJiZhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkuZ3QoMCkmJmF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXIiLHt0bzoibnVsbCIsc3ltYm9sOiJCRUUiLHF1YW50aXR5OnBvb2xDcmVhdGlvbkZlZSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSksYXBpLmVtaXQoImNyZWF0ZVBvb2wiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSl9fSxhY3Rpb25zLmNyZWF0ZVJld2FyZFBvb2w9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsbG90dGVyeVdpbm5lcnM6bG90dGVyeVdpbm5lcnMsbG90dGVyeUludGVydmFsSG91cnM6bG90dGVyeUludGVydmFsSG91cnMsbG90dGVyeUFtb3VudDpsb3R0ZXJ5QW1vdW50LG1pbmVkVG9rZW46bWluZWRUb2tlbixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm1pbmluZyIsInBhcmFtcyIse30pLHtwb29sQ3JlYXRpb25GZWU6cG9vbENyZWF0aW9uRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRDcmVhdGlvbj0hKCFhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShwb29sQ3JlYXRpb25GZWUpLHBvb2xQb3NpdGlvbnM9YXdhaXQgYXBpLmRiLmZpbmQoImxpcXVpZGl0eVBvc2l0aW9ucyIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihhcGkuYXNzZXJ0KGF1dGhvcml6ZWRDcmVhdGlvbiwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSBjcmVhdGlvbiBmZWUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSYmYXBpLmFzc2VydChwb29sUG9zaXRpb25zJiZwb29sUG9zaXRpb25zLmxlbmd0aD4wLCJwb29sIG11c3QgaGF2ZSBsaXF1aWRpdHkgcG9zaXRpb25zIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXtjb25zdCByZXdhcmRQb29sSWQ9YCR7bWluZWRUb2tlbn06RVhULSR7dG9rZW5QYWlyLnJlcGxhY2UoIjoiLCIiKX1gLHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoIm1pbmluZyIsImNyZWF0ZVBvb2wiLHtsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnQsbWluZWRUb2tlbjptaW5lZFRva2VuLGV4dGVybmFsTWluZXJzOnRva2VuUGFpcn0pO3ZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZChlbD0+Im1pbmluZyI9PT1lbC5jb250cmFjdCYmImNyZWF0ZVBvb2wiPT09ZWwuZXZlbnQpJiYoYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJtaW5pbmciLCJzZXRBY3RpdmUiLHtpZDpyZXdhcmRQb29sSWQsYWN0aXZlOiEwfSksYXBpLmVtaXQoImNyZWF0ZVJld2FyZFBvb2wiLHt0b2tlblBhaXI6dG9rZW5QYWlyLHJld2FyZFBvb2xJZDpyZXdhcmRQb29sSWR9KSl9fSxhY3Rpb25zLnVwZGF0ZVJld2FyZFBvb2w9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsbG90dGVyeVdpbm5lcnM6bG90dGVyeVdpbm5lcnMsbG90dGVyeUludGVydmFsSG91cnM6bG90dGVyeUludGVydmFsSG91cnMsbG90dGVyeUFtb3VudDpsb3R0ZXJ5QW1vdW50LG1pbmVkVG9rZW46bWluZWRUb2tlbixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm1pbmluZyIsInBhcmFtcyIse30pLHtwb29sVXBkYXRlRmVlOnBvb2xVcGRhdGVGZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZFVwZGF0ZT0hKCFhcGkuQmlnTnVtYmVyKHBvb2xVcGRhdGVGZWUpLmx0ZSgwKSYmYXBpLnNlbmRlciE9PWFwaS5vd25lcil8fHV0aWxpdHlUb2tlbkJhbGFuY2UmJmFwaS5CaWdOdW1iZXIodXRpbGl0eVRva2VuQmFsYW5jZS5iYWxhbmNlKS5ndGUocG9vbFVwZGF0ZUZlZSkscG9vbFBvc2l0aW9ucz1hd2FpdCBhcGkuZGIuZmluZCgibGlxdWlkaXR5UG9zaXRpb25zIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZFVwZGF0ZSwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSB1cGRhdGUgZmVlIikmJmF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikmJmFwaS5hc3NlcnQocG9vbFBvc2l0aW9ucyYmcG9vbFBvc2l0aW9ucy5sZW5ndGg+MCwicG9vbCBtdXN0IGhhdmUgbGlxdWlkaXR5IHBvc2l0aW9ucyIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSl7Y29uc3QgcmV3YXJkUG9vbElkPWAke21pbmVkVG9rZW59OkVYVC0ke3Rva2VuUGFpci5yZXBsYWNlKCI6IiwiIil9YCxyZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJtaW5pbmciLCJ1cGRhdGVQb29sIix7aWQ6cmV3YXJkUG9vbElkLGxvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudH0pO3ZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZChlbD0+Im1pbmluZyI9PT1lbC5jb250cmFjdCYmInVwZGF0ZVBvb2wiPT09ZWwuZXZlbnQpJiZhcGkuZW1pdCgidXBkYXRlUmV3YXJkUG9vbCIse3Rva2VuUGFpcjp0b2tlblBhaXIscmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZH0pfX0sYWN0aW9ucy5zZXRSZXdhcmRQb29sQWN0aXZlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLG1pbmVkVG9rZW46bWluZWRUb2tlbixhY3RpdmU6YWN0aXZlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpfHwhYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSlyZXR1cm47Y29uc3QgcmV3YXJkUG9vbElkPWAke21pbmVkVG9rZW59OkVYVC0ke3Rva2VuUGFpci5yZXBsYWNlKCI6IiwiIil9YDt2b2lkIDA9PT0oYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJtaW5pbmciLCJzZXRBY3RpdmUiLHtpZDpyZXdhcmRQb29sSWQsYWN0aXZlOmFjdGl2ZX0pKS5lcnJvcnMmJmFwaS5lbWl0KCJzZXRSZXdhcmRQb29sQWN0aXZlIix7cmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZCxhY3RpdmU6YWN0aXZlfSl9LGFjdGlvbnMuYWRkTGlxdWlkaXR5PWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLGJhc2VRdWFudGl0eTpiYXNlUXVhbnRpdHkscXVvdGVRdWFudGl0eTpxdW90ZVF1YW50aXR5LG1heFByaWNlSW1wYWN0Om1heFByaWNlSW1wYWN0LG1heERldmlhdGlvbjptYXhEZXZpYXRpb24saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgYmFzZVF1YW50aXR5JiZhcGkuQmlnTnVtYmVyKGJhc2VRdWFudGl0eSkuZ3QoMCksImludmFsaWQgYmFzZVF1YW50aXR5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBxdW90ZVF1YW50aXR5JiZhcGkuQmlnTnVtYmVyKHF1b3RlUXVhbnRpdHkpLmd0KDApLCJpbnZhbGlkIHF1b3RlUXVhbnRpdHkiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSkpcmV0dXJuO2xldCBhZGRQcmljZUltcGFjdD1hcGkuQmlnTnVtYmVyKCIwLjAxIik7aWYobWF4UHJpY2VJbXBhY3Qpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbWF4UHJpY2VJbXBhY3QmJmFwaS5CaWdOdW1iZXIobWF4UHJpY2VJbXBhY3QpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG1heFByaWNlSW1wYWN0KS5kcCgpPD0zLCJtYXhQcmljZUltcGFjdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIikpcmV0dXJuO2FkZFByaWNlSW1wYWN0PWFwaS5CaWdOdW1iZXIobWF4UHJpY2VJbXBhY3QpLmRpdmlkZWRCeSgxMDApfWxldCBhZGREZXZpYXRpb249YXBpLkJpZ051bWJlcigiMC4wMSIpO2lmKG1heERldmlhdGlvbil7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhEZXZpYXRpb24mJmFwaS5CaWdOdW1iZXIobWF4RGV2aWF0aW9uKS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihtYXhEZXZpYXRpb24pLmd0ZSgwKSwibWF4RGV2aWF0aW9uIG11c3QgYmUgYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCIpKXJldHVybjthZGREZXZpYXRpb249YXBpLkJpZ051bWJlcihtYXhEZXZpYXRpb24pLmRpdmlkZWRCeSgxMDApfWNvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLGJhc2VUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpiYXNlU3ltYm9sfSkscXVvdGVUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZVF1YW50aXR5KS5kcCgpPD1iYXNlVG9rZW4ucHJlY2lzaW9uLCJiYXNlUXVhbnRpdHkgcHJlY2lzaW9uIG1pc21hdGNoIil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZHAoKTw9cXVvdGVUb2tlbi5wcmVjaXNpb24sInF1b3RlUXVhbnRpdHkgcHJlY2lzaW9uIG1pc21hdGNoIikpcmV0dXJuO2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQocG9vbCwibm8gZXhpc3RpbmcgcG9vbCBmb3IgdG9rZW5QYWlyIikpe2lmKGFwaS5CaWdOdW1iZXIocG9vbC5iYXNlUXVhbnRpdHkpLmVxKDApJiZhcGkuQmlnTnVtYmVyKHBvb2wucXVvdGVRdWFudGl0eSkuZXEoMCkmJmFkZERldmlhdGlvbi5ndCgwKSYmITE9PT1hd2FpdCB2YWxpZGF0ZU9yYWNsZShwb29sLGFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZGl2aWRlZEJ5KGJhc2VRdWFudGl0eSksYWRkRGV2aWF0aW9uKSlyZXR1cm47bGV0IGFtb3VudEFkanVzdGVkO2NvbnN0IGJhc2VNaW49YXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLnRpbWVzKGFwaS5CaWdOdW1iZXIoIjEiKS5taW51cyhhZGRQcmljZUltcGFjdCkpLHF1b3RlTWluPWFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkudGltZXMoYXBpLkJpZ051bWJlcigiMSIpLm1pbnVzKGFkZFByaWNlSW1wYWN0KSk7aWYoYXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5ndCgwKSl7Y29uc3QgcXVvdGVPcHRpbWFsPWdldFF1b3RlKGJhc2VRdWFudGl0eSxwb29sLmJhc2VRdWFudGl0eSxwb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocXVvdGVUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKTtpZihhcGkuQmlnTnVtYmVyKHF1b3RlT3B0aW1hbCkubHRlKHF1b3RlUXVhbnRpdHkpKXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1b3RlT3B0aW1hbCkuZ3RlKHF1b3RlTWluKSwiZXhjZWVkZWQgbWF4IHByaWNlIGltcGFjdCBmb3IgYWRkaW5nIGxpcXVpZGl0eSIpKXJldHVybjthbW91bnRBZGp1c3RlZD1bYmFzZVF1YW50aXR5LHF1b3RlT3B0aW1hbF19ZWxzZXtjb25zdCBiYXNlT3B0aW1hbD1nZXRRdW90ZShxdW90ZVF1YW50aXR5LHBvb2wucXVvdGVRdWFudGl0eSxwb29sLmJhc2VRdWFudGl0eSkudG9GaXhlZChiYXNlVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCk7aWYoYXBpLkJpZ051bWJlcihiYXNlT3B0aW1hbCkubHRlKGJhc2VRdWFudGl0eSkpe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZU9wdGltYWwpLmd0ZShiYXNlTWluKSwiZXhjZWVkZWQgbWF4IHByaWNlIGltcGFjdCBmb3IgYWRkaW5nIGxpcXVpZGl0eSIpKXJldHVybjthbW91bnRBZGp1c3RlZD1bYmFzZU9wdGltYWwscXVvdGVRdWFudGl0eV19fX1lbHNlIGFtb3VudEFkanVzdGVkPVtiYXNlUXVhbnRpdHkscXVvdGVRdWFudGl0eV07Y29uc3Qgc2VuZGVyQmFzZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpiYXNlU3ltYm9sfSksc2VuZGVyUXVvdGU9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6cXVvdGVTeW1ib2x9KSxzZW5kZXJGdW5kZWQ9c2VuZGVyQmFzZSYmc2VuZGVyUXVvdGUmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUoYW1vdW50QWRqdXN0ZWRbMF0pJiZhcGkuQmlnTnVtYmVyKHNlbmRlclF1b3RlLmJhbGFuY2UpLmd0ZShhbW91bnRBZGp1c3RlZFsxXSk7aWYoIWFwaS5hc3NlcnQoc2VuZGVyRnVuZGVkLCJpbnN1ZmZpY2llbnQgdG9rZW4gYmFsYW5jZSIpKXJldHVybjtsZXQgbmV3U2hhcmVzO2lmKG5ld1NoYXJlcz1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxTaGFyZXMpLmVxKDApP2FwaS5CaWdOdW1iZXIoYW1vdW50QWRqdXN0ZWRbMF0pLnRpbWVzKGFtb3VudEFkanVzdGVkWzFdKS5zcXJ0KCk6YXBpLkJpZ051bWJlci5taW4oYXBpLkJpZ051bWJlcihhbW91bnRBZGp1c3RlZFswXSkudGltZXMocG9vbC50b3RhbFNoYXJlcykuZGl2aWRlZEJ5KHBvb2wuYmFzZVF1YW50aXR5KSxhcGkuQmlnTnVtYmVyKGFtb3VudEFkanVzdGVkWzFdKS50aW1lcyhwb29sLnRvdGFsU2hhcmVzKS5kaXZpZGVkQnkocG9vbC5xdW90ZVF1YW50aXR5KSksIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihuZXdTaGFyZXMpLmd0KDApLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IGNyZWF0ZWQiKSlyZXR1cm47Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksbHA9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImxpcXVpZGl0eVBvc2l0aW9ucyIse2FjY291bnQ6YXBpLnNlbmRlcix0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYobHApe2NvbnN0IGV4aXN0aW5nU2hhcmVzPWxwLnNoYXJlcyxmaW5hbFNoYXJlcz1hcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykucGx1cyhuZXdTaGFyZXMpLHRpbWVQYXNzZWQ9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5taW51cyhscC50aW1lRmFjdG9yKS5hYnMoKSxkaWZmU2hhcmVzPWFwaS5CaWdOdW1iZXIoZmluYWxTaGFyZXMpLm1pbnVzKGV4aXN0aW5nU2hhcmVzKS5hYnMoKS5kaXZpZGVkQnkoYXBpLkJpZ051bWJlci5tYXgoZmluYWxTaGFyZXMsZXhpc3RpbmdTaGFyZXMpKSx0aW1lT2Zmc2V0PWFwaS5CaWdOdW1iZXIodGltZVBhc3NlZCkudGltZXMoZGlmZlNoYXJlcyk7bHAuc2hhcmVzPWZpbmFsU2hhcmVzLGxwLnRpbWVGYWN0b3I9YXBpLkJpZ051bWJlci5taW4oYXBpLkJpZ051bWJlcihscC50aW1lRmFjdG9yKS5wbHVzKHRpbWVPZmZzZXQpLmRwKDAsYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSxibG9ja0RhdGUuZ2V0VGltZSgpKS50b051bWJlcigpLGF3YWl0IGFwaS5kYi51cGRhdGUoImxpcXVpZGl0eVBvc2l0aW9ucyIsbHApfWVsc2V7Y29uc3QgbmV3bHA9e2FjY291bnQ6YXBpLnNlbmRlcix0b2tlblBhaXI6dG9rZW5QYWlyLHNoYXJlczpuZXdTaGFyZXMsdGltZUZhY3RvcjpibG9ja0RhdGUuZ2V0VGltZSgpfTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJsaXF1aWRpdHlQb3NpdGlvbnMiLG5ld2xwKX1jb25zdCBiYXNlUmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXJUb0NvbnRyYWN0Iix7c3ltYm9sOmJhc2VTeW1ib2wscXVhbnRpdHk6YW1vdW50QWRqdXN0ZWRbMF0sdG86Im1hcmtldHBvb2xzIn0pLHF1b3RlUmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXJUb0NvbnRyYWN0Iix7c3ltYm9sOnF1b3RlU3ltYm9sLHF1YW50aXR5OmFtb3VudEFkanVzdGVkWzFdLHRvOiJtYXJrZXRwb29scyJ9KTtpZighYXBpLmFzc2VydCh2b2lkIDA9PT1iYXNlUmVzLmVycm9ycyYmdm9pZCAwPT09cXVvdGVSZXMuZXJyb3JzLCJkZXBvc2l0IHRyYW5zZmVyIGVycm9ycyIpKXJldHVybjthd2FpdCB1cGRhdGVQb29sU3RhdHMocG9vbCxhbW91bnRBZGp1c3RlZFswXSxhbW91bnRBZGp1c3RlZFsxXSxuZXdTaGFyZXMsITEpLGFwaS5lbWl0KCJhZGRMaXF1aWRpdHkiLHtiYXNlU3ltYm9sOmJhc2VTeW1ib2wscXVvdGVTeW1ib2w6cXVvdGVTeW1ib2x9KX19LGFjdGlvbnMucmVtb3ZlTGlxdWlkaXR5PWFzeW5jIHBheWxvYWQ9Pntjb25zdHt0b2tlblBhaXI6dG9rZW5QYWlyLHNoYXJlc091dDpzaGFyZXNPdXQsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iil8fCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2Ygc2hhcmVzT3V0JiZhcGkuQmlnTnVtYmVyKHNoYXJlc091dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoc2hhcmVzT3V0KS5sdGUoMTAwKSYmYXBpLkJpZ051bWJlcihzaGFyZXNPdXQpLmRwKCk8PTMsImludmFsaWQgc2hhcmVzT3V0LCBtdXN0IGJlID4gMCA8PSAxMDAiKXx8IWF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikpcmV0dXJuO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLGJhc2VUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpiYXNlU3ltYm9sfSkscXVvdGVUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQocG9vbCwibm8gZXhpc3RpbmcgcG9vbCBmb3IgdG9rZW5QYWlyIikpe2NvbnN0IGxwPWF3YWl0IGFwaS5kYi5maW5kT25lKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHthY2NvdW50OmFwaS5zZW5kZXIsdG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQobHAsIm5vIGV4aXN0aW5nIGxpcXVpZGl0eSBwb3NpdGlvbiIpKXtjb25zdCBzaGFyZXNEZWx0YT1hcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykudGltZXMoc2hhcmVzT3V0KS5kaXZpZGVkQnkoMTAwKSxiYXNlT3V0PWFwaS5CaWdOdW1iZXIoc2hhcmVzRGVsdGEpLnRpbWVzKHBvb2wuYmFzZVF1YW50aXR5KS5kaXZpZGVkQnkocG9vbC50b3RhbFNoYXJlcykudG9GaXhlZChiYXNlVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikscXVvdGVPdXQ9YXBpLkJpZ051bWJlcihzaGFyZXNEZWx0YSkudGltZXMocG9vbC5xdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkocG9vbC50b3RhbFNoYXJlcykudG9GaXhlZChxdW90ZVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIoYmFzZU91dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIocXVvdGVPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS5ndGUoYmFzZU91dCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5ndGUocXVvdGVPdXQpLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuO2xwLnNoYXJlcz1hcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykubWludXMoc2hhcmVzRGVsdGEpLGFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS5lcSgwKT9hd2FpdCBhcGkuZGIucmVtb3ZlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLGxwKTphd2FpdCBhcGkuZGIudXBkYXRlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLGxwKTtjb25zdCBiYXNlUmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLGJhc2VTeW1ib2wsYmFzZU91dCwidXNlciIpLHF1b3RlUmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLHF1b3RlU3ltYm9sLHF1b3RlT3V0LCJ1c2VyIik7aWYoIWFwaS5hc3NlcnQodm9pZCAwPT09YmFzZVJlcy5lcnJvcnMmJnZvaWQgMD09PXF1b3RlUmVzLmVycm9ycywid2l0aGRyYXdhbCB0cmFuc2ZlciBlcnJvcnMiKSlyZXR1cm47YXdhaXQgdXBkYXRlUG9vbFN0YXRzKHBvb2wsYXBpLkJpZ051bWJlcihiYXNlT3V0KS5uZWdhdGVkKCksYXBpLkJpZ051bWJlcihxdW90ZU91dCkubmVnYXRlZCgpLGFwaS5CaWdOdW1iZXIoc2hhcmVzRGVsdGEpLm5lZ2F0ZWQoKSwhMSksYXBpLmVtaXQoInJlbW92ZUxpcXVpZGl0eSIse2Jhc2VTeW1ib2w6YmFzZVN5bWJvbCxxdW90ZVN5bWJvbDpxdW90ZVN5bWJvbH0pfX19LGFjdGlvbnMuc3dhcFRva2Vucz1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcix0b2tlblN5bWJvbDp0b2tlblN5bWJvbCx0b2tlbkFtb3VudDp0b2tlbkFtb3VudCx0cmFkZVR5cGU6dHJhZGVUeXBlLG1pbkFtb3VudE91dDptaW5BbW91bnRPdXQsbWF4QW1vdW50SW46bWF4QW1vdW50SW4saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdG9rZW5TeW1ib2wsImludmFsaWQgdG9rZW4iKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuQW1vdW50JiZhcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50KS5ndCgwKSwiaW5zdWZmaWNpZW50IHRva2VuQW1vdW50IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiB0cmFkZVR5cGUmJi0xIT09VHJhZGVUeXBlLmluZGV4T2YodHJhZGVUeXBlKSwiaW52YWxpZCB0cmFkZVR5cGUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSkpcmV0dXJuO2lmKG1pbkFtb3VudE91dCYmIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtaW5BbW91bnRPdXQmJmFwaS5CaWdOdW1iZXIobWluQW1vdW50T3V0KS5ndCgwKSwiaW5zdWZmaWNpZW50IG1pbkFtb3VudE91dCIpKXJldHVybjtpZihtYXhBbW91bnRJbiYmIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhBbW91bnRJbiYmYXBpLkJpZ051bWJlcihtYXhBbW91bnRJbikuZ3QoMCksImluc3VmZmljaWVudCBtYXhBbW91bnRJbiIpKXJldHVybjtpZighYXBpLmFzc2VydCghKG1pbkFtb3VudE91dCYmbWF4QW1vdW50SW4pLCJzcGVjaWZ5IG1pbkFtb3VudE91dCBvciBtYXhBbW91bnRJbiBidXQgbm90IGJvdGgiKSlyZXR1cm47Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IikscG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoIWFwaS5hc3NlcnQocG9vbCwibm8gZXhpc3RpbmcgcG9vbCBmb3IgdG9rZW5QYWlyIikpcmV0dXJuO2xldCBsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQsc3ltYm9sSW4sc3ltYm9sT3V0OygiZXhhY3RJbnB1dCI9PT10cmFkZVR5cGU/dG9rZW5TeW1ib2w9PT1iYXNlU3ltYm9sOnRva2VuU3ltYm9sIT09YmFzZVN5bWJvbCk/KGxpcXVpZGl0eUluPXBvb2wuYmFzZVF1YW50aXR5LGxpcXVpZGl0eU91dD1wb29sLnF1b3RlUXVhbnRpdHksc3ltYm9sSW49YmFzZVN5bWJvbCxzeW1ib2xPdXQ9cXVvdGVTeW1ib2wpOihsaXF1aWRpdHlJbj1wb29sLnF1b3RlUXVhbnRpdHksbGlxdWlkaXR5T3V0PXBvb2wuYmFzZVF1YW50aXR5LHN5bWJvbEluPXF1b3RlU3ltYm9sLHN5bWJvbE91dD1iYXNlU3ltYm9sKTtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHRva2VuSW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sSW59KSx0b2tlbk91dD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2xPdXR9KSxzZW5kZXJCYXNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOnN5bWJvbElufSk7bGV0IHRva2VuUGFpckRlbHRhLHRva2VuUGFpckZlZSx0b2tlblF1YW50aXR5LHNlbmRlckJhc2VGdW5kZWQ9ITE7aWYoImV4YWN0SW5wdXQiPT09dHJhZGVUeXBlKXtjb25zdCB0b2tlbkFtb3VudEFkanVzdGVkPWFwaS5CaWdOdW1iZXIoZ2V0QW1vdW50T3V0KHBhcmFtcyx0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnQpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bdG9rZW5BbW91bnQsYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudEFkanVzdGVkKS5uZWdhdGVkKCldOlthcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLm5lZ2F0ZWQoKSx0b2tlbkFtb3VudF0sdG9rZW5QYWlyRmVlPXtzeW1ib2w6c3ltYm9sT3V0LGFtb3VudDphcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLmRpdmlkZWRCeShwYXJhbXMudHJhZGVGZWVNdWwpLm1pbnVzKHRva2VuQW1vdW50QWRqdXN0ZWQpLnRvRml4ZWQodG9rZW5PdXQucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCl9LHRva2VuUXVhbnRpdHk9e2luOnRva2VuQW1vdW50LG91dDp0b2tlbkFtb3VudEFkanVzdGVkfSwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkuaW4pLmRwKCk8PXRva2VuSW4ucHJlY2lzaW9uLCJzeW1ib2xJbiBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm59ZWxzZSBpZigiZXhhY3RPdXRwdXQiPT09dHJhZGVUeXBlKXtjb25zdCB0b2tlbkFtb3VudEFkanVzdGVkPWFwaS5CaWdOdW1iZXIoZ2V0QW1vdW50SW4ocGFyYW1zLHRva2VuQW1vdW50LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCkpO2lmKCF0b2tlbkFtb3VudEFkanVzdGVkLmlzRmluaXRlKCkpcmV0dXJuO2lmKHNlbmRlckJhc2VGdW5kZWQ9c2VuZGVyQmFzZSYmYXBpLkJpZ051bWJlcihzZW5kZXJCYXNlLmJhbGFuY2UpLmd0ZSh0b2tlbkFtb3VudEFkanVzdGVkLnRvRml4ZWQodG9rZW5Jbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSksdG9rZW5QYWlyRGVsdGE9dG9rZW5TeW1ib2w9PT1iYXNlU3ltYm9sP1thcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50KS5uZWdhdGVkKCksdG9rZW5BbW91bnRBZGp1c3RlZF06W3Rva2VuQW1vdW50QWRqdXN0ZWQsYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudCkubmVnYXRlZCgpXSx0b2tlblBhaXJGZWU9e3N5bWJvbDpzeW1ib2xJbixhbW91bnQ6YXBpLkJpZ051bWJlcih0b2tlbkFtb3VudEFkanVzdGVkKS5kaXZpZGVkQnkocGFyYW1zLnRyYWRlRmVlTXVsKS5taW51cyh0b2tlbkFtb3VudEFkanVzdGVkKS50b0ZpeGVkKHRva2VuSW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCl9LHRva2VuUXVhbnRpdHk9e2luOnRva2VuQW1vdW50QWRqdXN0ZWQsb3V0OnRva2VuQW1vdW50fSwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkub3V0KS5kcCgpPD10b2tlbk91dC5wcmVjaXNpb24sInN5bWJvbE91dCBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm59aWYoIWFwaS5hc3NlcnQoc2VuZGVyQmFzZUZ1bmRlZCwiaW5zdWZmaWNpZW50IGlucHV0IGJhbGFuY2UiKSlyZXR1cm47aWYodG9rZW5RdWFudGl0eS5pbj1hcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkuaW4pLmRwKHRva2VuSW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfQ0VJTCksdG9rZW5RdWFudGl0eS5vdXQ9YXBpLkJpZ051bWJlcih0b2tlblF1YW50aXR5Lm91dCkuZHAodG9rZW5PdXQucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksIWFwaS5hc3NlcnQodG9rZW5RdWFudGl0eS5pbi5ndCgwKSwic3ltYm9sSW4gcHJlY2lzaW9uIG1pc21hdGNoIil8fCFhcGkuYXNzZXJ0KHRva2VuUXVhbnRpdHkub3V0Lmd0KDApLCJzeW1ib2xPdXQgcHJlY2lzaW9uIG1pc21hdGNoIikpcmV0dXJuO2lmKG1pbkFtb3VudE91dCl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihtaW5BbW91bnRPdXQpLmRwKCk8PXRva2VuT3V0LnByZWNpc2lvbiwibWluQW1vdW50T3V0IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybjt0b2tlblF1YW50aXR5Lm1pbk91dD1hcGkuQmlnTnVtYmVyKG1pbkFtb3VudE91dCl9aWYobWF4QW1vdW50SW4pe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobWF4QW1vdW50SW4pLmRwKCk8PXRva2VuSW4ucHJlY2lzaW9uLCJtYXhBbW91bnRJbiBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47dG9rZW5RdWFudGl0eS5tYXhJbj1hcGkuQmlnTnVtYmVyKG1heEFtb3VudEluKX1pZih2b2lkIDAhPT10b2tlblF1YW50aXR5Lm1pbk91dCYmIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcih0b2tlblF1YW50aXR5Lm91dCkuZ3RlKHRva2VuUXVhbnRpdHkubWluT3V0KSwiZXhjZWVkZWQgbWF4IHNsaXBwYWdlIGZvciBzd2FwIikpcmV0dXJuO2lmKHZvaWQgMCE9PXRva2VuUXVhbnRpdHkubWF4SW4mJiFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikubHRlKHRva2VuUXVhbnRpdHkubWF4SW4pLCJleGNlZWRlZCBtYXggc2xpcHBhZ2UgZm9yIHN3YXAiKSlyZXR1cm47Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXJUb0NvbnRyYWN0Iix7c3ltYm9sOnN5bWJvbEluLHF1YW50aXR5OnRva2VuUXVhbnRpdHkuaW4udG9GaXhlZCgpLHRvOiJtYXJrZXRwb29scyJ9KTt2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJiJ0cmFuc2ZlclRvQ29udHJhY3QiPT09ZWwuZXZlbnQmJmVsLmRhdGEuZnJvbT09PWFwaS5zZW5kZXImJiJtYXJrZXRwb29scyI9PT1lbC5kYXRhLnRvJiZlbC5kYXRhLnF1YW50aXR5PT09dG9rZW5RdWFudGl0eS5pbi50b0ZpeGVkKCkpJiYoYXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIsc3ltYm9sT3V0LHRva2VuUXVhbnRpdHkub3V0LnRvRml4ZWQoKSwidXNlciIpLGF3YWl0IHVwZGF0ZVBvb2xTdGF0cyhwb29sLHRva2VuUGFpckRlbHRhWzBdLHRva2VuUGFpckRlbHRhWzFdLCExLCEwKSxhcGkuZW1pdCgic3dhcFRva2VucyIse3N5bWJvbEluOnN5bWJvbEluLHN5bWJvbE91dDpzeW1ib2xPdXQsZmVlOnRva2VuUGFpckZlZX0pKX07"}}}

Marketpools Smart Contract | Ecency