Marketpools Smart Contract

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"marketpools","params":"","code":"Y29uc3QgVHJhZGVUeXBlPVsiZXhhY3RJbnB1dCIsImV4YWN0T3V0cHV0Il07ZnVuY3Rpb24gZ2V0UXVvdGUoYW1vdW50LGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7cmV0dXJuISghYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGFtb3VudCkuZ3QoMCksImluc3VmZmljaWVudCBhbW91bnQiKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsaXF1aWRpdHlJbikuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobGlxdWlkaXR5T3V0KS5ndCgwKSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKSYmYXBpLkJpZ051bWJlcihhbW91bnQpLnRpbWVzKGxpcXVpZGl0eU91dCkuZGl2aWRlZEJ5KGxpcXVpZGl0eUluKX1mdW5jdGlvbiBnZXRBbW91bnRJbihhbW91bnRPdXQsbGlxdWlkaXR5SW4sbGlxdWlkaXR5T3V0KXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGFtb3VudE91dCkuZ3QoMCksImluc3VmZmljaWVudCBvdXRwdXQgYW1vdW50Iil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLmd0KDApJiZhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoYW1vdW50T3V0KS5sdChsaXF1aWRpdHlPdXQpLCJpbnN1ZmZpY2llbnQgbGlxdWlkaXR5IikpcmV0dXJuITE7Y29uc3QgbnVtPWFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLnRpbWVzKGFtb3VudE91dCksZGVuPWFwaS5CaWdOdW1iZXIobGlxdWlkaXR5T3V0KS5taW51cyhhbW91bnRPdXQpO3JldHVybiBudW0uZGl2aWRlZEJ5KGRlbil9ZnVuY3Rpb24gZ2V0QW1vdW50T3V0KGFtb3VudEluLGxpcXVpZGl0eUluLGxpcXVpZGl0eU91dCl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRJbikuZ3QoMCksImluc3VmZmljaWVudCBvdXRwdXQgYW1vdW50Iil8fCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIobGlxdWlkaXR5SW4pLmd0KDApJiZhcGkuQmlnTnVtYmVyKGxpcXVpZGl0eU91dCkuZ3QoMCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSlyZXR1cm4hMTtjb25zdCBudW09YXBpLkJpZ051bWJlcihhbW91bnRJbikudGltZXMobGlxdWlkaXR5T3V0KSxkZW49YXBpLkJpZ051bWJlcihsaXF1aWRpdHlJbikucGx1cyhhbW91bnRJbiksYW1vdW50T3V0PW51bS5kaXZpZGVkQnkoZGVuKTtyZXR1cm4hIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihhbW91bnRPdXQpLmx0KGxpcXVpZGl0eU91dCksImluc3VmZmljaWVudCBsaXF1aWRpdHkiKSYmYW1vdW50T3V0fWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlT3JhY2xlKHBvb2wsbmV3UHJpY2UsbWF4RGV2aWF0aW9uPWFwaS5CaWdOdW1iZXIoIjAuMDEiKSl7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09cG9vbC50b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlTWV0cmljcz0iU1dBUC5ISVZFIiE9PWJhc2VTeW1ib2w/YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJtYXJrZXQiLCJtZXRyaWNzIix7c3ltYm9sOmJhc2VTeW1ib2x9KTp7bGFzdFByaWNlOjF9LHF1b3RlTWV0cmljcz0iU1dBUC5ISVZFIiE9PXF1b3RlU3ltYm9sP2F3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0IiwibWV0cmljcyIse3N5bWJvbDpxdW90ZVN5bWJvbH0pOntsYXN0UHJpY2U6MX07aWYoIWJhc2VNZXRyaWNzfHwhcXVvdGVNZXRyaWNzKXJldHVybiBudWxsO2NvbnN0IG9yYWNsZT1hcGkuQmlnTnVtYmVyKGJhc2VNZXRyaWNzLmxhc3RQcmljZSkuZGl2aWRlZEJ5KHF1b3RlTWV0cmljcy5sYXN0UHJpY2UpLGRldj1hcGkuQmlnTnVtYmVyKG5ld1ByaWNlKS5taW51cyhvcmFjbGUpLmFicygpLmRpdmlkZWRCeShvcmFjbGUpO3JldHVybiEhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGRldikubHRlKG1heERldmlhdGlvbiksImV4Y2VlZGVkIG1heCBkZXZpYXRpb24gZnJvbSBvcmRlciBib29rIil9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuUGFpciYmLTEhPT10b2tlblBhaXIuaW5kZXhPZigiOiIpLCJpbnZhbGlkIHRva2VuUGFpciBmb3JtYXQiKSlyZXR1cm4hMTtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKTtyZXR1cm4hIShhcGkuYXNzZXJ0KGJhc2VTeW1ib2whPT1xdW90ZVN5bWJvbCwidG9rZW5QYWlyIGNhbm5vdCBiZSB0aGUgc2FtZSB0b2tlbiIpJiZhcGkuYXNzZXJ0KGF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSwiYmFzZVN5bWJvbCBkb2VzIG5vdCBleGlzdCIpJiZhcGkuYXNzZXJ0KGF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSksInF1b3RlU3ltYm9sIGRvZXMgbm90IGV4aXN0IikpfWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUG9vbCh0b2tlblBhaXIpe2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pLHJldlBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOltxdW90ZVN5bWJvbCxiYXNlU3ltYm9sXS5qb2luKCI6Iil9KTtyZXR1cm4hIWFwaS5hc3NlcnQobnVsbD09PXBvb2wmJm51bGw9PT1yZXZQb29sLCJhIHBvb2wgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgdG9rZW5QYWlyIil9YXN5bmMgZnVuY3Rpb24gdXBkYXRlUG9vbFN0YXRzKHBvb2wsYmFzZUFkanVzdGVkLHF1b3RlQWRqdXN0ZWQsc2hhcmVzQWRqdXN0ZWQsc3dhcCl7Y29uc3QgdVBvb2w9cG9vbDt1UG9vbC5iYXNlUXVhbnRpdHk9YXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkucGx1cyhiYXNlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSx1UG9vbC5xdW90ZVF1YW50aXR5PWFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5wbHVzKHF1b3RlQWRqdXN0ZWQpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKSxhcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VRdWFudGl0eSkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIodVBvb2wucXVvdGVRdWFudGl0eSkuZ3QoMCkmJih1UG9vbC5iYXNlUHJpY2U9YXBpLkJpZ051bWJlcih1UG9vbC5xdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkodVBvb2wuYmFzZVF1YW50aXR5KS50b0ZpeGVkKHBvb2wucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdVBvb2wucXVvdGVQcmljZT1hcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VRdWFudGl0eSkuZGl2aWRlZEJ5KHVQb29sLnF1b3RlUXVhbnRpdHkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksc2hhcmVzQWRqdXN0ZWQmJih1UG9vbC50b3RhbFNoYXJlcz1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxTaGFyZXMpLnBsdXMoc2hhcmVzQWRqdXN0ZWQpKSxzd2FwJiYodVBvb2wuYmFzZVZvbHVtZT1hcGkuQmlnTnVtYmVyKHVQb29sLmJhc2VWb2x1bWUpLnBsdXMoTWF0aC5hYnMoYmFzZUFkanVzdGVkKSkudG9GaXhlZChwb29sLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLHVQb29sLnF1b3RlVm9sdW1lPWFwaS5CaWdOdW1iZXIodVBvb2wucXVvdGVWb2x1bWUpLnBsdXMoTWF0aC5hYnMocXVvdGVBZGp1c3RlZCkpLnRvRml4ZWQocG9vbC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9vbHMiLHVQb29sKX1hY3Rpb25zLmNyZWF0ZVNTQz1hc3luYygpPT57aWYoITE9PT1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMoInBvb2xzIikpe2F3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicG9vbHMiLFsidG9rZW5QYWlyIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgibGlxdWlkaXR5UG9zaXRpb25zIixbImFjY291bnQiLCJ0b2tlblBhaXIiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwYXJhbXMiKTtjb25zdCBwYXJhbXM9e3Bvb2xDcmVhdGlvbkZlZToiMTAwMCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNle2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYoIXBhcmFtcy51cGRhdGVJbmRleCl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIik7bGV0IGxwVXBkYXRlPWF3YWl0IGFwaS5kYi5maW5kKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0aW1lRmFjdG9yOnskZXhpc3RzOiExfX0pO2Zvcig7bHBVcGRhdGUubGVuZ3RoPjA7KXtmb3IobGV0IGk9MDtpPGxwVXBkYXRlLmxlbmd0aDtpKz0xKXtjb25zdCBscD1scFVwZGF0ZVtpXTtscC50aW1lRmFjdG9yPWJsb2NrRGF0ZS5nZXRUaW1lKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgibGlxdWlkaXR5UG9zaXRpb25zIixscCl9bHBVcGRhdGU9YXdhaXQgYXBpLmRiLmZpbmQoImxpcXVpZGl0eVBvc2l0aW9ucyIse3RpbWVGYWN0b3I6eyRleGlzdHM6ITF9fSl9cGFyYW1zLnVwZGF0ZUluZGV4PTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfX19LGFjdGlvbnMudXBkYXRlUGFyYW1zPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtwb29sQ3JlYXRpb25GZWU6cG9vbENyZWF0aW9uRmVlfT1wYXlsb2FkO2lmKGFwaS5zZW5kZXIhPT1hcGkub3duZXIpcmV0dXJuO2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocG9vbENyZWF0aW9uRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvb2xDcmVhdGlvbkZlZSYmIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkuZ3RlKDApLCJpbnZhbGlkIHBvb2xDcmVhdGlvbkZlZSIpKXJldHVybjtwYXJhbXMucG9vbENyZWF0aW9uRmVlPXBvb2xDcmVhdGlvbkZlZX1hd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLHBhcmFtcyl9LGFjdGlvbnMuY3JlYXRlUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse3Bvb2xDcmVhdGlvbkZlZTpwb29sQ3JlYXRpb25GZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEoIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xDcmVhdGlvbkZlZSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkQ3JlYXRpb24sInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlIikmJmF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikmJmF3YWl0IHZhbGlkYXRlUG9vbCh0b2tlblBhaXIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSl7Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSxxdW90ZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSksbmV3UG9vbD17dG9rZW5QYWlyOnRva2VuUGFpcixiYXNlUXVhbnRpdHk6MCxiYXNlVm9sdW1lOjAsYmFzZVByaWNlOjAscXVvdGVRdWFudGl0eTowLHF1b3RlVm9sdW1lOjAscXVvdGVQcmljZTowLHRvdGFsU2hhcmVzOjAscHJlY2lzaW9uOk1hdGgubWF4KGJhc2VUb2tlbi5wcmVjaXNpb24scXVvdGVUb2tlbi5wcmVjaXNpb24pLGNyZWF0b3I6YXBpLnNlbmRlcn07YXdhaXQgYXBpLmRiLmluc2VydCgicG9vbHMiLG5ld1Bvb2wpLGFwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6cG9vbENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlUG9vbCIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KX19LGFjdGlvbnMuY3JlYXRlUmV3YXJkUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnQsbWluZWRUb2tlbjptaW5lZFRva2VuLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWluaW5nIiwicGFyYW1zIix7fSkse3Bvb2xDcmVhdGlvbkZlZTpwb29sQ3JlYXRpb25GZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEoIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xDcmVhdGlvbkZlZSkscG9vbFBvc2l0aW9ucz1hd2FpdCBhcGkuZGIuZmluZCgibGlxdWlkaXR5UG9zaXRpb25zIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpJiZhcGkuYXNzZXJ0KHBvb2xQb3NpdGlvbnMmJnBvb2xQb3NpdGlvbnMubGVuZ3RoPjAsInBvb2wgbXVzdCBoYXZlIGxpcXVpZGl0eSBwb3NpdGlvbnMiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IHJld2FyZFBvb2xJZD1gJHttaW5lZFRva2VufTpFWFQtJHt0b2tlblBhaXIucmVwbGFjZSgiOiIsIiIpfWAscmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibWluaW5nIiwiY3JlYXRlUG9vbCIse2xvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCxtaW5lZFRva2VuOm1pbmVkVG9rZW4sZXh0ZXJuYWxNaW5lcnM6dG9rZW5QYWlyfSk7dm9pZCAwPT09cmVzLmVycm9ycyYmcmVzLmV2ZW50cyYmdm9pZCAwIT09cmVzLmV2ZW50cy5maW5kKGVsPT4ibWluaW5nIj09PWVsLmNvbnRyYWN0JiYiY3JlYXRlUG9vbCI9PT1lbC5ldmVudCkmJihhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoIm1pbmluZyIsInNldEFjdGl2ZSIse2lkOnJld2FyZFBvb2xJZCxhY3RpdmU6ITB9KSxhcGkuZW1pdCgiY3JlYXRlUmV3YXJkUG9vbCIse3Rva2VuUGFpcjp0b2tlblBhaXIscmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZH0pKX19LGFjdGlvbnMudXBkYXRlUmV3YXJkUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnQsbWluZWRUb2tlbjptaW5lZFRva2VuLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWluaW5nIiwicGFyYW1zIix7fSkse3Bvb2xVcGRhdGVGZWU6cG9vbFVwZGF0ZUZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkVXBkYXRlPSEoIWFwaS5CaWdOdW1iZXIocG9vbFVwZGF0ZUZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShwb29sVXBkYXRlRmVlKSxwb29sUG9zaXRpb25zPWF3YWl0IGFwaS5kYi5maW5kKCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkVXBkYXRlLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIHVwZGF0ZSBmZWUiKSYmYXdhaXQgdmFsaWRhdGVUb2tlblBhaXIodG9rZW5QYWlyKSYmYXBpLmFzc2VydChwb29sUG9zaXRpb25zJiZwb29sUG9zaXRpb25zLmxlbmd0aD4wLCJwb29sIG11c3QgaGF2ZSBsaXF1aWRpdHkgcG9zaXRpb25zIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXtjb25zdCByZXdhcmRQb29sSWQ9YCR7bWluZWRUb2tlbn06RVhULSR7dG9rZW5QYWlyLnJlcGxhY2UoIjoiLCIiKX1gLHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoIm1pbmluZyIsInVwZGF0ZVBvb2wiLHtpZDpyZXdhcmRQb29sSWQsbG90dGVyeVdpbm5lcnM6bG90dGVyeVdpbm5lcnMsbG90dGVyeUludGVydmFsSG91cnM6bG90dGVyeUludGVydmFsSG91cnMsbG90dGVyeUFtb3VudDpsb3R0ZXJ5QW1vdW50fSk7dm9pZCAwPT09cmVzLmVycm9ycyYmcmVzLmV2ZW50cyYmdm9pZCAwIT09cmVzLmV2ZW50cy5maW5kKGVsPT4ibWluaW5nIj09PWVsLmNvbnRyYWN0JiYidXBkYXRlUG9vbCI9PT1lbC5ldmVudCkmJmFwaS5lbWl0KCJ1cGRhdGVSZXdhcmRQb29sIix7dG9rZW5QYWlyOnRva2VuUGFpcixyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkfSl9fSxhY3Rpb25zLnNldFJld2FyZFBvb2xBY3RpdmU9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsbWluZWRUb2tlbjptaW5lZFRva2VuLGFjdGl2ZTphY3RpdmUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iil8fCFhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpKXJldHVybjtjb25zdCByZXdhcmRQb29sSWQ9YCR7bWluZWRUb2tlbn06RVhULSR7dG9rZW5QYWlyLnJlcGxhY2UoIjoiLCIiKX1gO3ZvaWQgMD09PShhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoIm1pbmluZyIsInNldEFjdGl2ZSIse2lkOnJld2FyZFBvb2xJZCxhY3RpdmU6YWN0aXZlfSkpLmVycm9ycyYmYXBpLmVtaXQoInNldFJld2FyZFBvb2xBY3RpdmUiLHtyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkLGFjdGl2ZTphY3RpdmV9KX0sYWN0aW9ucy5hZGRMaXF1aWRpdHk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsYmFzZVF1YW50aXR5OmJhc2VRdWFudGl0eSxxdW90ZVF1YW50aXR5OnF1b3RlUXVhbnRpdHksbWF4UHJpY2VJbXBhY3Q6bWF4UHJpY2VJbXBhY3QsbWF4RGV2aWF0aW9uOm1heERldmlhdGlvbixpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCEoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBiYXNlUXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIoYmFzZVF1YW50aXR5KS5ndCgwKSwiaW52YWxpZCBiYXNlUXVhbnRpdHkiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHF1b3RlUXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIocXVvdGVRdWFudGl0eSkuZ3QoMCksImludmFsaWQgcXVvdGVRdWFudGl0eSIpJiZhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpKSlyZXR1cm47bGV0IGFkZFByaWNlSW1wYWN0PWFwaS5CaWdOdW1iZXIoIjAuMDEiKTtpZihtYXhQcmljZUltcGFjdCl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBtYXhQcmljZUltcGFjdCYmYXBpLkJpZ051bWJlcihtYXhQcmljZUltcGFjdCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobWF4UHJpY2VJbXBhY3QpLmRwKCk8PTMsIm1heFByaWNlSW1wYWN0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAiKSlyZXR1cm47YWRkUHJpY2VJbXBhY3Q9YXBpLkJpZ051bWJlcihtYXhQcmljZUltcGFjdCkuZGl2aWRlZEJ5KDEwMCl9bGV0IGFkZERldmlhdGlvbj1hcGkuQmlnTnVtYmVyKCIwLjAxIik7aWYobWF4RGV2aWF0aW9uKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG1heERldmlhdGlvbiYmYXBpLkJpZ051bWJlcihtYXhEZXZpYXRpb24pLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG1heERldmlhdGlvbikuZ3RlKDApLCJtYXhEZXZpYXRpb24gbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIikpcmV0dXJuO2FkZERldmlhdGlvbj1hcGkuQmlnTnVtYmVyKG1heERldmlhdGlvbikuZGl2aWRlZEJ5KDEwMCl9Y29uc3RbYmFzZVN5bWJvbCxxdW90ZVN5bWJvbF09dG9rZW5QYWlyLnNwbGl0KCI6IiksYmFzZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmJhc2VTeW1ib2x9KSxxdW90ZVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnF1b3RlU3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYXNlUXVhbnRpdHkpLmRwKCk8PWJhc2VUb2tlbi5wcmVjaXNpb24sImJhc2VRdWFudGl0eSBwcmVjaXNpb24gbWlzbWF0Y2giKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihxdW90ZVF1YW50aXR5KS5kcCgpPD1xdW90ZVRva2VuLnByZWNpc2lvbiwicXVvdGVRdWFudGl0eSBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47Y29uc3QgcG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSk7aWYoYXBpLmFzc2VydChwb29sLCJubyBleGlzdGluZyBwb29sIGZvciB0b2tlblBhaXIiKSl7aWYoYXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkuZXEoMCkmJmFwaS5CaWdOdW1iZXIocG9vbC5xdW90ZVF1YW50aXR5KS5lcSgwKSYmYWRkRGV2aWF0aW9uLmd0KDApJiYhMT09PWF3YWl0IHZhbGlkYXRlT3JhY2xlKHBvb2wsYXBpLkJpZ051bWJlcihxdW90ZVF1YW50aXR5KS5kaXZpZGVkQnkoYmFzZVF1YW50aXR5KSxhZGREZXZpYXRpb24pKXJldHVybjtsZXQgYW1vdW50QWRqdXN0ZWQ7Y29uc3QgYmFzZU1pbj1hcGkuQmlnTnVtYmVyKGJhc2VRdWFudGl0eSkudGltZXMoYXBpLkJpZ051bWJlcigiMSIpLm1pbnVzKGFkZFByaWNlSW1wYWN0KSkscXVvdGVNaW49YXBpLkJpZ051bWJlcihxdW90ZVF1YW50aXR5KS50aW1lcyhhcGkuQmlnTnVtYmVyKCIxIikubWludXMoYWRkUHJpY2VJbXBhY3QpKTtpZihhcGkuQmlnTnVtYmVyKHBvb2wuYmFzZVF1YW50aXR5KS5ndCgwKSYmYXBpLkJpZ051bWJlcihwb29sLnF1b3RlUXVhbnRpdHkpLmd0KDApKXtjb25zdCBxdW90ZU9wdGltYWw9Z2V0UXVvdGUoYmFzZVF1YW50aXR5LHBvb2wuYmFzZVF1YW50aXR5LHBvb2wucXVvdGVRdWFudGl0eSkudG9GaXhlZChxdW90ZVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0hBTEZfVVApO2lmKGFwaS5CaWdOdW1iZXIocXVvdGVPcHRpbWFsKS5sdGUocXVvdGVRdWFudGl0eSkpe2lmKCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXVvdGVPcHRpbWFsKS5ndGUocXVvdGVNaW4pLCJleGNlZWRlZCBtYXggcHJpY2UgaW1wYWN0IGZvciBhZGRpbmcgbGlxdWlkaXR5IikpcmV0dXJuO2Ftb3VudEFkanVzdGVkPVtiYXNlUXVhbnRpdHkscXVvdGVPcHRpbWFsXX1lbHNle2NvbnN0IGJhc2VPcHRpbWFsPWdldFF1b3RlKHF1b3RlUXVhbnRpdHkscG9vbC5xdW90ZVF1YW50aXR5LHBvb2wuYmFzZVF1YW50aXR5KS50b0ZpeGVkKGJhc2VUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9IQUxGX1VQKTtpZihhcGkuQmlnTnVtYmVyKGJhc2VPcHRpbWFsKS5sdGUoYmFzZVF1YW50aXR5KSl7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihiYXNlT3B0aW1hbCkuZ3RlKGJhc2VNaW4pLCJleGNlZWRlZCBtYXggcHJpY2UgaW1wYWN0IGZvciBhZGRpbmcgbGlxdWlkaXR5IikpcmV0dXJuO2Ftb3VudEFkanVzdGVkPVtiYXNlT3B0aW1hbCxxdW90ZVF1YW50aXR5XX19fWVsc2UgYW1vdW50QWRqdXN0ZWQ9W2Jhc2VRdWFudGl0eSxxdW90ZVF1YW50aXR5XTtjb25zdCBzZW5kZXJCYXNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOmJhc2VTeW1ib2x9KSxzZW5kZXJRdW90ZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpxdW90ZVN5bWJvbH0pLHNlbmRlckZ1bmRlZD1zZW5kZXJCYXNlJiZzZW5kZXJRdW90ZSYmYXBpLkJpZ051bWJlcihzZW5kZXJCYXNlLmJhbGFuY2UpLmd0ZShhbW91bnRBZGp1c3RlZFswXSkmJmFwaS5CaWdOdW1iZXIoc2VuZGVyUXVvdGUuYmFsYW5jZSkuZ3RlKGFtb3VudEFkanVzdGVkWzFdKTtpZighYXBpLmFzc2VydChzZW5kZXJGdW5kZWQsImluc3VmZmljaWVudCB0b2tlbiBiYWxhbmNlIikpcmV0dXJuO2xldCBuZXdTaGFyZXM7aWYobmV3U2hhcmVzPWFwaS5CaWdOdW1iZXIocG9vbC50b3RhbFNoYXJlcykuZXEoMCk/YXBpLkJpZ051bWJlcihhbW91bnRBZGp1c3RlZFswXSkudGltZXMoYW1vdW50QWRqdXN0ZWRbMV0pLnNxcnQoKTphcGkuQmlnTnVtYmVyLm1pbihhcGkuQmlnTnVtYmVyKGFtb3VudEFkanVzdGVkWzBdKS50aW1lcyhwb29sLnRvdGFsU2hhcmVzKS5kaXZpZGVkQnkocG9vbC5iYXNlUXVhbnRpdHkpLGFwaS5CaWdOdW1iZXIoYW1vdW50QWRqdXN0ZWRbMV0pLnRpbWVzKHBvb2wudG90YWxTaGFyZXMpLmRpdmlkZWRCeShwb29sLnF1b3RlUXVhbnRpdHkpKSwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKG5ld1NoYXJlcykuZ3QoMCksImluc3VmZmljaWVudCBsaXF1aWRpdHkgY3JlYXRlZCIpKXJldHVybjtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSxscD1hd2FpdCBhcGkuZGIuZmluZE9uZSgibGlxdWlkaXR5UG9zaXRpb25zIix7YWNjb3VudDphcGkuc2VuZGVyLHRva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihscCl7Y29uc3QgZXhpc3RpbmdTaGFyZXM9bHAuc2hhcmVzLGZpbmFsU2hhcmVzPWFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS5wbHVzKG5ld1NoYXJlcyksdGltZU9mZnNldD1hcGkuQmlnTnVtYmVyKGZpbmFsU2hhcmVzKS5taW51cyhleGlzdGluZ1NoYXJlcykuYWJzKCkuZGl2aWRlZEJ5KGV4aXN0aW5nU2hhcmVzKTtscC5zaGFyZXM9ZmluYWxTaGFyZXMsbHAudGltZUZhY3Rvcj1hcGkuQmlnTnVtYmVyLm1pbihhcGkuQmlnTnVtYmVyKGxwLnRpbWVGYWN0b3IpLnRpbWVzKGFwaS5CaWdOdW1iZXIoIjEiKS5wbHVzKHRpbWVPZmZzZXQpKS5kcCgwLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCksYmxvY2tEYXRlLmdldFRpbWUoKSkudG9OdW1iZXIoKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJsaXF1aWRpdHlQb3NpdGlvbnMiLGxwKX1lbHNle2NvbnN0IG5ld2xwPXthY2NvdW50OmFwaS5zZW5kZXIsdG9rZW5QYWlyOnRva2VuUGFpcixzaGFyZXM6bmV3U2hhcmVzLHRpbWVGYWN0b3I6YmxvY2tEYXRlLmdldFRpbWUoKX07YXdhaXQgYXBpLmRiLmluc2VydCgibGlxdWlkaXR5UG9zaXRpb25zIixuZXdscCl9Y29uc3QgYmFzZVJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDpiYXNlU3ltYm9sLHF1YW50aXR5OmFtb3VudEFkanVzdGVkWzBdLHRvOiJtYXJrZXRwb29scyJ9KSxxdW90ZVJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDpxdW90ZVN5bWJvbCxxdWFudGl0eTphbW91bnRBZGp1c3RlZFsxXSx0bzoibWFya2V0cG9vbHMifSk7aWYoIWFwaS5hc3NlcnQodm9pZCAwPT09YmFzZVJlcy5lcnJvcnMmJnZvaWQgMD09PXF1b3RlUmVzLmVycm9ycywiZGVwb3NpdCB0cmFuc2ZlciBlcnJvcnMiKSlyZXR1cm47YXdhaXQgdXBkYXRlUG9vbFN0YXRzKHBvb2wsYW1vdW50QWRqdXN0ZWRbMF0sYW1vdW50QWRqdXN0ZWRbMV0sbmV3U2hhcmVzLCExKSxhcGkuZW1pdCgiYWRkTGlxdWlkaXR5Iix7YmFzZVN5bWJvbDpiYXNlU3ltYm9sLHF1b3RlU3ltYm9sOnF1b3RlU3ltYm9sfSl9fSxhY3Rpb25zLnJlbW92ZUxpcXVpZGl0eT1hc3luYyBwYXlsb2FkPT57Y29uc3R7dG9rZW5QYWlyOnRva2VuUGFpcixzaGFyZXNPdXQ6c2hhcmVzT3V0LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpfHwhYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHNoYXJlc091dCYmYXBpLkJpZ051bWJlcihzaGFyZXNPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKHNoYXJlc091dCkubHRlKDEwMCkmJmFwaS5CaWdOdW1iZXIoc2hhcmVzT3V0KS5kcCgpPD0zLCJpbnZhbGlkIHNoYXJlc091dCwgbXVzdCBiZSA+IDAgPD0gMTAwIil8fCFhd2FpdCB2YWxpZGF0ZVRva2VuUGFpcih0b2tlblBhaXIpKXJldHVybjtjb25zdFtiYXNlU3ltYm9sLHF1b3RlU3ltYm9sXT10b2tlblBhaXIuc3BsaXQoIjoiKSxiYXNlVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6YmFzZVN5bWJvbH0pLHF1b3RlVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cXVvdGVTeW1ib2x9KSxwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwb29scyIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihhcGkuYXNzZXJ0KHBvb2wsIm5vIGV4aXN0aW5nIHBvb2wgZm9yIHRva2VuUGFpciIpKXtjb25zdCBscD1hd2FpdCBhcGkuZGIuZmluZE9uZSgibGlxdWlkaXR5UG9zaXRpb25zIix7YWNjb3VudDphcGkuc2VuZGVyLHRva2VuUGFpcjp0b2tlblBhaXJ9KTtpZihhcGkuYXNzZXJ0KGxwLCJubyBleGlzdGluZyBsaXF1aWRpdHkgcG9zaXRpb24iKSl7Y29uc3Qgc2hhcmVzRGVsdGE9YXBpLkJpZ051bWJlcihscC5zaGFyZXMpLnRpbWVzKHNoYXJlc091dCkuZGl2aWRlZEJ5KDEwMCksYmFzZU91dD1hcGkuQmlnTnVtYmVyKHNoYXJlc0RlbHRhKS50aW1lcyhwb29sLmJhc2VRdWFudGl0eSkuZGl2aWRlZEJ5KHBvb2wudG90YWxTaGFyZXMpLnRvRml4ZWQoYmFzZVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLHF1b3RlT3V0PWFwaS5CaWdOdW1iZXIoc2hhcmVzRGVsdGEpLnRpbWVzKHBvb2wucXVvdGVRdWFudGl0eSkuZGl2aWRlZEJ5KHBvb2wudG90YWxTaGFyZXMpLnRvRml4ZWQocXVvdGVUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKGJhc2VPdXQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKHF1b3RlT3V0KS5ndCgwKSYmYXBpLkJpZ051bWJlcihwb29sLmJhc2VRdWFudGl0eSkuZ3RlKGJhc2VPdXQpJiZhcGkuQmlnTnVtYmVyKHBvb2wucXVvdGVRdWFudGl0eSkuZ3RlKHF1b3RlT3V0KSwiaW5zdWZmaWNpZW50IGxpcXVpZGl0eSIpKXJldHVybjtscC5zaGFyZXM9YXBpLkJpZ051bWJlcihscC5zaGFyZXMpLm1pbnVzKHNoYXJlc0RlbHRhKSxhcGkuQmlnTnVtYmVyKGxwLnNoYXJlcykuZXEoMCk/YXdhaXQgYXBpLmRiLnJlbW92ZSgibGlxdWlkaXR5UG9zaXRpb25zIixscCk6YXdhaXQgYXBpLmRiLnVwZGF0ZSgibGlxdWlkaXR5UG9zaXRpb25zIixscCk7Y29uc3QgYmFzZVJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlcixiYXNlU3ltYm9sLGJhc2VPdXQsInVzZXIiKSxxdW90ZVJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlcixxdW90ZVN5bWJvbCxxdW90ZU91dCwidXNlciIpO2lmKCFhcGkuYXNzZXJ0KHZvaWQgMD09PWJhc2VSZXMuZXJyb3JzJiZ2b2lkIDA9PT1xdW90ZVJlcy5lcnJvcnMsIndpdGhkcmF3YWwgdHJhbnNmZXIgZXJyb3JzIikpcmV0dXJuO2F3YWl0IHVwZGF0ZVBvb2xTdGF0cyhwb29sLGFwaS5CaWdOdW1iZXIoYmFzZU91dCkubmVnYXRlZCgpLGFwaS5CaWdOdW1iZXIocXVvdGVPdXQpLm5lZ2F0ZWQoKSxhcGkuQmlnTnVtYmVyKHNoYXJlc0RlbHRhKS5uZWdhdGVkKCksITEpLGFwaS5lbWl0KCJyZW1vdmVMaXF1aWRpdHkiLHtiYXNlU3ltYm9sOmJhc2VTeW1ib2wscXVvdGVTeW1ib2w6cXVvdGVTeW1ib2x9KX19fSxhY3Rpb25zLnN3YXBUb2tlbnM9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3Rva2VuUGFpcjp0b2tlblBhaXIsdG9rZW5TeW1ib2w6dG9rZW5TeW1ib2wsdG9rZW5BbW91bnQ6dG9rZW5BbW91bnQsdHJhZGVUeXBlOnRyYWRlVHlwZSxtaW5BbW91bnRPdXQ6bWluQW1vdW50T3V0LG1heEFtb3VudEluOm1heEFtb3VudEluLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIShhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHRva2VuU3ltYm9sLCJpbnZhbGlkIHRva2VuIikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiB0b2tlbkFtb3VudCYmYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudCkuZ3QoMCksImluc3VmZmljaWVudCB0b2tlbkFtb3VudCIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdHJhZGVUeXBlJiYtMSE9PVRyYWRlVHlwZS5pbmRleE9mKHRyYWRlVHlwZSksImludmFsaWQgdHJhZGVUeXBlIikmJmF3YWl0IHZhbGlkYXRlVG9rZW5QYWlyKHRva2VuUGFpcikpKXJldHVybjtpZihtaW5BbW91bnRPdXQmJiFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbWluQW1vdW50T3V0JiZhcGkuQmlnTnVtYmVyKG1pbkFtb3VudE91dCkuZ3QoMCksImluc3VmZmljaWVudCBtaW5BbW91bnRPdXQiKSlyZXR1cm47aWYobWF4QW1vdW50SW4mJiFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbWF4QW1vdW50SW4mJmFwaS5CaWdOdW1iZXIobWF4QW1vdW50SW4pLmd0KDApLCJpbnN1ZmZpY2llbnQgbWF4QW1vdW50SW4iKSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoIShtaW5BbW91bnRPdXQmJm1heEFtb3VudEluKSwic3BlY2lmeSBtaW5BbW91bnRPdXQgb3IgbWF4QW1vdW50SW4gYnV0IG5vdCBib3RoIikpcmV0dXJuO2NvbnN0W2Jhc2VTeW1ib2wscXVvdGVTeW1ib2xdPXRva2VuUGFpci5zcGxpdCgiOiIpLHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7dG9rZW5QYWlyOnRva2VuUGFpcn0pO2lmKCFhcGkuYXNzZXJ0KHBvb2wsIm5vIGV4aXN0aW5nIHBvb2wgZm9yIHRva2VuUGFpciIpKXJldHVybjtsZXQgbGlxdWlkaXR5SW4sbGlxdWlkaXR5T3V0LHN5bWJvbEluLHN5bWJvbE91dDsoImV4YWN0SW5wdXQiPT09dHJhZGVUeXBlP3Rva2VuU3ltYm9sPT09YmFzZVN5bWJvbDp0b2tlblN5bWJvbCE9PWJhc2VTeW1ib2wpPyhsaXF1aWRpdHlJbj1wb29sLmJhc2VRdWFudGl0eSxsaXF1aWRpdHlPdXQ9cG9vbC5xdW90ZVF1YW50aXR5LHN5bWJvbEluPWJhc2VTeW1ib2wsc3ltYm9sT3V0PXF1b3RlU3ltYm9sKToobGlxdWlkaXR5SW49cG9vbC5xdW90ZVF1YW50aXR5LGxpcXVpZGl0eU91dD1wb29sLmJhc2VRdWFudGl0eSxzeW1ib2xJbj1xdW90ZVN5bWJvbCxzeW1ib2xPdXQ9YmFzZVN5bWJvbCk7Y29uc3QgdG9rZW5Jbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2xJbn0pLHRva2VuT3V0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbE91dH0pLHNlbmRlckJhc2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6c3ltYm9sSW59KTtsZXQgdG9rZW5QYWlyRGVsdGEsdG9rZW5RdWFudGl0eSxzZW5kZXJCYXNlRnVuZGVkPSExO2lmKCJleGFjdElucHV0Ij09PXRyYWRlVHlwZSl7Y29uc3QgdG9rZW5BbW91bnRBZGp1c3RlZD1hcGkuQmlnTnVtYmVyKGdldEFtb3VudE91dCh0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnQpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bdG9rZW5BbW91bnQsYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudEFkanVzdGVkKS5uZWdhdGVkKCldOlthcGkuQmlnTnVtYmVyKHRva2VuQW1vdW50QWRqdXN0ZWQpLm5lZ2F0ZWQoKSx0b2tlbkFtb3VudF0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnQsb3V0OnRva2VuQW1vdW50QWRqdXN0ZWR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAoKTw9dG9rZW5Jbi5wcmVjaXNpb24sInN5bWJvbEluIHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1lbHNlIGlmKCJleGFjdE91dHB1dCI9PT10cmFkZVR5cGUpe2NvbnN0IHRva2VuQW1vdW50QWRqdXN0ZWQ9YXBpLkJpZ051bWJlcihnZXRBbW91bnRJbih0b2tlbkFtb3VudCxsaXF1aWRpdHlJbixsaXF1aWRpdHlPdXQpKTtpZighdG9rZW5BbW91bnRBZGp1c3RlZC5pc0Zpbml0ZSgpKXJldHVybjtpZihzZW5kZXJCYXNlRnVuZGVkPXNlbmRlckJhc2UmJmFwaS5CaWdOdW1iZXIoc2VuZGVyQmFzZS5iYWxhbmNlKS5ndGUodG9rZW5BbW91bnRBZGp1c3RlZC50b0ZpeGVkKHRva2VuSW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfSEFMRl9VUCkpLHRva2VuUGFpckRlbHRhPXRva2VuU3ltYm9sPT09YmFzZVN5bWJvbD9bYXBpLkJpZ051bWJlcih0b2tlbkFtb3VudCkubmVnYXRlZCgpLHRva2VuQW1vdW50QWRqdXN0ZWRdOlt0b2tlbkFtb3VudEFkanVzdGVkLGFwaS5CaWdOdW1iZXIodG9rZW5BbW91bnQpLm5lZ2F0ZWQoKV0sdG9rZW5RdWFudGl0eT17aW46dG9rZW5BbW91bnRBZGp1c3RlZCxvdXQ6dG9rZW5BbW91bnR9LCFhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5vdXQpLmRwKCk8PXRva2VuT3V0LnByZWNpc2lvbiwic3ltYm9sT3V0IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybn1pZighYXBpLmFzc2VydChzZW5kZXJCYXNlRnVuZGVkLCJpbnN1ZmZpY2llbnQgaW5wdXQgYmFsYW5jZSIpKXJldHVybjtpZih0b2tlblF1YW50aXR5LmluPWFwaS5CaWdOdW1iZXIodG9rZW5RdWFudGl0eS5pbikuZHAodG9rZW5Jbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9DRUlMKSx0b2tlblF1YW50aXR5Lm91dD1hcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkub3V0KS5kcCh0b2tlbk91dC5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSwhYXBpLmFzc2VydCh0b2tlblF1YW50aXR5LmluLmd0KDApLCJzeW1ib2xJbiBwcmVjaXNpb24gbWlzbWF0Y2giKXx8IWFwaS5hc3NlcnQodG9rZW5RdWFudGl0eS5vdXQuZ3QoMCksInN5bWJvbE91dCBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47aWYobWluQW1vdW50T3V0KXtpZighYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKG1pbkFtb3VudE91dCkuZHAoKTw9dG9rZW5PdXQucHJlY2lzaW9uLCJtaW5BbW91bnRPdXQgcHJlY2lzaW9uIG1pc21hdGNoIikpcmV0dXJuO3Rva2VuUXVhbnRpdHkubWluT3V0PWFwaS5CaWdOdW1iZXIobWluQW1vdW50T3V0KX1pZihtYXhBbW91bnRJbil7aWYoIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihtYXhBbW91bnRJbikuZHAoKTw9dG9rZW5Jbi5wcmVjaXNpb24sIm1heEFtb3VudEluIHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybjt0b2tlblF1YW50aXR5Lm1heEluPWFwaS5CaWdOdW1iZXIobWF4QW1vdW50SW4pfWlmKHZvaWQgMCE9PXRva2VuUXVhbnRpdHkubWluT3V0JiYhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHRva2VuUXVhbnRpdHkub3V0KS5ndGUodG9rZW5RdWFudGl0eS5taW5PdXQpLCJleGNlZWRlZCBtYXggc2xpcHBhZ2UgZm9yIHN3YXAiKSlyZXR1cm47aWYodm9pZCAwIT09dG9rZW5RdWFudGl0eS5tYXhJbiYmIWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcih0b2tlblF1YW50aXR5LmluKS5sdGUodG9rZW5RdWFudGl0eS5tYXhJbiksImV4Y2VlZGVkIG1heCBzbGlwcGFnZSBmb3Igc3dhcCIpKXJldHVybjtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6c3ltYm9sSW4scXVhbnRpdHk6dG9rZW5RdWFudGl0eS5pbi50b0ZpeGVkKCksdG86Im1hcmtldHBvb2xzIn0pO3ZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZChlbD0+InRva2VucyI9PT1lbC5jb250cmFjdCYmInRyYW5zZmVyVG9Db250cmFjdCI9PT1lbC5ldmVudCYmZWwuZGF0YS5mcm9tPT09YXBpLnNlbmRlciYmIm1hcmtldHBvb2xzIj09PWVsLmRhdGEudG8mJmVsLmRhdGEucXVhbnRpdHk9PT10b2tlblF1YW50aXR5LmluLnRvRml4ZWQoKSkmJihhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlcixzeW1ib2xPdXQsdG9rZW5RdWFudGl0eS5vdXQudG9GaXhlZCgpLCJ1c2VyIiksYXdhaXQgdXBkYXRlUG9vbFN0YXRzKHBvb2wsdG9rZW5QYWlyRGVsdGFbMF0sdG9rZW5QYWlyRGVsdGFbMV0sITEsITApLGFwaS5lbWl0KCJzd2FwVG9rZW5zIix7c3ltYm9sSW46c3ltYm9sSW4sc3ltYm9sT3V0OnN5bWJvbE91dH0pKX07"}}}

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Ecency