Distribution Smart Contract

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"distribution","params":"","code":"Y29uc3QgRGlzdFN0cmF0ZWd5PVsiZml4ZWQiLCJwb29sIl07YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpe2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0JiZBcnJheS5pc0FycmF5KHRva2VuTWluUGF5b3V0KSwidG9rZW5NaW5QYXlvdXQgbXVzdCBiZSBhbiBhcnJheSIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0Lmxlbmd0aD49MSwic3BlY2lmeSBhdCBsZWFzdCBvbmUgbWluaW11bSBwYXlvdXQgY29uZmlndXJhdGlvbiIpKXJldHVybiExO2NvbnN0IHRva2VuTWluUGF5b3V0U3ltYm9scz1uZXcgU2V0O2ZvcihsZXQgaT0wO2k8dG9rZW5NaW5QYXlvdXQubGVuZ3RoO2krPTEpe2NvbnN0IHRva2VuTWluUGF5b3V0Q29uZmlnPXRva2VuTWluUGF5b3V0W2ldO2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0Q29uZmlnJiZ0b2tlbk1pblBheW91dENvbmZpZy5zeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgdG9rZW5NaW5QYXlvdXRDb25maWcuc3ltYm9sLCJ0b2tlbk1pblBheW91dCBpbnZhbGlkIikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQoIXRva2VuTWluUGF5b3V0U3ltYm9scy5oYXModG9rZW5NaW5QYXlvdXRDb25maWcuc3ltYm9sKSwidG9rZW5NaW5QYXlvdXQgY2Fubm90IGhhdmUgZHVwbGljYXRlIHN5bWJvbHMiKSlyZXR1cm4hMTtpZih0b2tlbk1pblBheW91dFN5bWJvbHMuYWRkKHRva2VuTWluUGF5b3V0Q29uZmlnLnN5bWJvbCksIWFwaS5hc3NlcnQodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkpLmRwKCk8PTMmJmFwaS5CaWdOdW1iZXIodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkpLmd0ZSgwKSwiaW52YWxpZCBxdWFudGl0eSIpKXJldHVybiExfXJldHVybiEwfWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUmVjaXBpZW50cyhwYXJhbXMsdG9rZW5SZWNpcGllbnRzKXtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHMmJkFycmF5LmlzQXJyYXkodG9rZW5SZWNpcGllbnRzKSwidG9rZW5SZWNpcGllbnRzIG11c3QgYmUgYW4gYXJyYXkiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHMubGVuZ3RoPj0xJiZ0b2tlblJlY2lwaWVudHMubGVuZ3RoPD1wYXJhbXMubWF4VHJhbnNmZXJMaW1pdCxgMS0ke3BhcmFtcy5tYXhUcmFuc2ZlckxpbWl0fSB0b2tlblJlY2lwaWVudHMgYXJlIHN1cHBvcnRlZGApKXJldHVybiExO2NvbnN0IHRva2VuUmVjaXBpZW50c0FjY291bnRzPW5ldyBTZXQ7bGV0IHRva2VuUmVjaXBpZW50c1RvdGFsU2hhcmU9MDtmb3IobGV0IGk9MDtpPHRva2VuUmVjaXBpZW50cy5sZW5ndGg7aSs9MSl7Y29uc3QgdG9rZW5SZWNpcGllbnRzQ29uZmlnPXRva2VuUmVjaXBpZW50c1tpXTtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHNDb25maWcmJnRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50JiYic3RyaW5nIj09dHlwZW9mIHRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50LCJ0b2tlblJlY2lwaWVudHMgaW52YWxpZCIpJiYhYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHNDb25maWcuYWNjb3VudC5sZW5ndGg+PTMmJnRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50Lmxlbmd0aDw9MTYsImludmFsaWQgYWNjb3VudCIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KCF0b2tlblJlY2lwaWVudHNBY2NvdW50cy5oYXModG9rZW5SZWNpcGllbnRzQ29uZmlnLmFjY291bnQpLCJ0b2tlblJlY2lwaWVudHMgY2Fubm90IGhhdmUgZHVwbGljYXRlIGFjY291bnRzIikpcmV0dXJuITE7aWYodG9rZW5SZWNpcGllbnRzQWNjb3VudHMuYWRkKHRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50KSwhYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHRva2VuUmVjaXBpZW50c0NvbmZpZy5wY3QpJiZ0b2tlblJlY2lwaWVudHNDb25maWcucGN0Pj0xJiZ0b2tlblJlY2lwaWVudHNDb25maWcucGN0PD0xMDAsInRva2VuUmVjaXBpZW50cyBwY3QgbXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMSB0byAxMDAiKSlyZXR1cm4hMTtpZih0b2tlblJlY2lwaWVudHNUb3RhbFNoYXJlKz10b2tlblJlY2lwaWVudHNDb25maWcucGN0LCFhcGkuYXNzZXJ0KFsidXNlciIsImNvbnRyYWN0Il0uaW5jbHVkZXModG9rZW5SZWNpcGllbnRzQ29uZmlnLnR5cGUpLCJ0b2tlblJlY2lwaWVudHMgdHlwZSBtdXN0IGJlIHVzZXIgb3IgY29udHJhY3QiKSlyZXR1cm4hMX1yZXR1cm4hIWFwaS5hc3NlcnQoMTAwPT09dG9rZW5SZWNpcGllbnRzVG90YWxTaGFyZSwidG9rZW5SZWNpcGllbnRzIHBjdCBtdXN0IHRvdGFsIDEwMCIpfWZ1bmN0aW9uIHZhbGlkYXRlSW5jb21pbmdUb2tlbihkaXN0LHN5bWJvbCl7Zm9yKGxldCBpPTA7aTxkaXN0LnRva2VuTWluUGF5b3V0Lmxlbmd0aDtpKz0xKWlmKGRpc3QudG9rZW5NaW5QYXlvdXRbaV0uc3ltYm9sPT09c3ltYm9sKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHZhbGlkYXRlQm9udXNDdXJ2ZShvYmope2lmKCFhcGkuYXNzZXJ0KCJvYmplY3QiPT10eXBlb2Ygb2JqJiYiT2JqZWN0Ij09PW9iai5jb25zdHJ1Y3Rvci5uYW1lLCJpbnZhbGlkIGJvbnVzQ3VydmUgc2V0dGluZ3MiKSlyZXR1cm4hMTtpZigicGVyaW9kQm9udXNQY3QiaW4gb2JqfHwibnVtUGVyaW9kcyJpbiBvYmope2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2Ygb2JqLnBlcmlvZEJvbnVzUGN0JiZhcGkuQmlnTnVtYmVyKG9iai5wZXJpb2RCb251c1BjdCkuaXNJbnRlZ2VyKCkmJmFwaS5CaWdOdW1iZXIob2JqLnBlcmlvZEJvbnVzUGN0KS5ndCgwKSYmYXBpLkJpZ051bWJlcihvYmoucGVyaW9kQm9udXNQY3QpLmx0KDEwMCkmJiJzdHJpbmciPT10eXBlb2Ygb2JqLm51bVBlcmlvZHMmJmFwaS5CaWdOdW1iZXIob2JqLm51bVBlcmlvZHMpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG9iai5udW1QZXJpb2RzKS5ndCgwKSYmYXBpLkJpZ051bWJlcihvYmoubnVtUGVyaW9kcykubHQoNTU1NSksImludmFsaWQgYm9udXNDdXJ2ZSBzZXR0aW5ncyIpKXJldHVybiExfWVsc2UgaWYoIWFwaS5hc3NlcnQoMD09PU9iamVjdC5rZXlzKG9iaikubGVuZ3RoLCJpbnZhbGlkIGJvbnVzQ3VydmUgc2V0dGluZ3MiKSlyZXR1cm4hMTtyZXR1cm4hMH1hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZVBvb2wodG9rZW5QYWlyKXtyZXR1cm4gbnVsbCE9PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0cG9vbHMiLCJwb29scyIse3Rva2VuUGFpcjp0b2tlblBhaXJ9KX1hc3luYyBmdW5jdGlvbiBnZXRFZmZlY3RpdmVTaGFyZXMocGFyYW1zLGRpc3QsbHApe2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLHRpbWVEaWZmPWFwaS5CaWdOdW1iZXIoYmxvY2tEYXRlLmdldFRpbWUoKSkubWludXMobHAudGltZUZhY3Rvcik7aWYodGltZURpZmYubHRlKDM2MDAqcGFyYW1zLmRpc3RUaWNrSG91cnMqMWUzKSlyZXR1cm4gbHAuc2hhcmVzO2xldCBtdWx0aXBsaWVyPWFwaS5CaWdOdW1iZXIoIjEiKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGRpc3QuYm9udXNDdXJ2ZS5udW1QZXJpb2RzJiYobXVsdGlwbGllcj10aW1lRGlmZi5sdChwYXJhbXMuZGlzdFRpY2tIb3VycypkaXN0LmJvbnVzQ3VydmUubnVtUGVyaW9kcyozNjAwKjFlMyk/YXBpLkJpZ051bWJlcihkaXN0LmJvbnVzQ3VydmUucGVyaW9kQm9udXNQY3QpLmRpdmlkZWRCeSgiMTAwIikudGltZXModGltZURpZmYuZGl2aWRlZEJ5KDM2MDAqcGFyYW1zLmRpc3RUaWNrSG91cnMqMWUzKS5kcCgwLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikpLnBsdXMobXVsdGlwbGllcik6YXBpLkJpZ051bWJlcihkaXN0LmJvbnVzQ3VydmUucGVyaW9kQm9udXNQY3QpLmRpdmlkZWRCeSgiMTAwIikudGltZXMoZGlzdC5ib251c0N1cnZlLm51bVBlcmlvZHMpLnBsdXMobXVsdGlwbGllcikpLGFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS50aW1lcyhtdWx0aXBsaWVyKX1hc3luYyBmdW5jdGlvbiBnZXRQb29sUmVjaXBpZW50cyhwYXJhbXMsZGlzdCl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksbWluSG9sZFRpbWU9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5taW51cygzNjAwKnBhcmFtcy5kaXN0VGlja0hvdXJzKjFlMykudG9OdW1iZXIoKSxyZXN1bHQ9W107bGV0IG9mZnNldD0wLHByb2Nlc3NRdWVyeT1bXTtjb25zdCBwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0cG9vbHMiLCJwb29scyIse3Rva2VuUGFpcjpkaXN0LnRva2VuUGFpcn0pO2lmKCFwb29sfHxwb29sLnRvdGFsU2hhcmVzPD0wKXJldHVybiByZXN1bHQ7Zm9yKDtudWxsIT09cHJvY2Vzc1F1ZXJ5JiZwcm9jZXNzUXVlcnkubGVuZ3RoPT09cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0fHwwPT09b2Zmc2V0Oyl7cHJvY2Vzc1F1ZXJ5PWF3YWl0IGFwaS5kYi5maW5kSW5UYWJsZSgibWFya2V0cG9vbHMiLCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0b2tlblBhaXI6ZGlzdC50b2tlblBhaXIsYWNjb3VudDp7JG5pbjpkaXN0LmV4Y2x1ZGVBY2NvdW50fSx0aW1lRmFjdG9yOnskbHRlOm1pbkhvbGRUaW1lfX0scGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0LG9mZnNldCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7Zm9yKGxldCBpPTA7aTxwcm9jZXNzUXVlcnkubGVuZ3RoO2krPTEpe2NvbnN0IGxwPXByb2Nlc3NRdWVyeVtpXTtscC5lZmZTaGFyZXM9YXdhaXQgZ2V0RWZmZWN0aXZlU2hhcmVzKHBhcmFtcyxkaXN0LGxwKSxyZXN1bHQucHVzaChscCl9b2Zmc2V0Kz1wYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXR9cmV0dXJuIHJlc3VsdH1hc3luYyBmdW5jdGlvbiBwYXlSZWNpcGllbnQoYWNjb3VudCxzeW1ib2wscXVhbnRpdHksdHlwZT0idXNlciIpe2lmKGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApKXtjb25zdCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFjY291bnQsc3ltYm9sLHF1YW50aXR5LHR5cGUpO3JldHVybiFyZXMuZXJyb3JzfHwoYXBpLmRlYnVnKGBFcnJvciBwYXlpbmcgb3V0IGRpc3RyaWJ1dGlvbiBvZiAke3F1YW50aXR5fSAke3N5bWJvbH0gdG8gJHthY2NvdW50fSAoVFhJRCAke2FwaS50cmFuc2FjdGlvbklkfSk6IFxuJHtyZXMuZXJyb3JzfWApLCExKX1yZXR1cm4hMX1hc3luYyBmdW5jdGlvbiBydW5EaXN0cmlidXRpb24oZGlzdCxwYXJhbXMsZmx1c2g9ITEpe2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLHVwRGlzdD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRpc3QpKSxwYXlUb2tlbnM9ZGlzdC50b2tlbkJhbGFuY2VzLmZpbHRlcihkPT5hcGkuQmlnTnVtYmVyKGQucXVhbnRpdHkpLmd0KDApKTtpZihwYXlUb2tlbnMubGVuZ3RoPjApaWYoImZpeGVkIj09PWRpc3Quc3RyYXRlZ3kpe2NvbnN0e3Rva2VuUmVjaXBpZW50czp0b2tlblJlY2lwaWVudHN9PWRpc3Q7Zm9yKDt0b2tlblJlY2lwaWVudHMubGVuZ3RoPjA7KXtjb25zdCB0cj10b2tlblJlY2lwaWVudHMuc2hpZnQoKTtmb3IobGV0IGk9MDtpPHBheVRva2Vucy5sZW5ndGg7aSs9MSl7Y29uc3QgcGF5VG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cGF5VG9rZW5zW2ldLnN5bWJvbH0pLG1pblBheW91dD1kaXN0LnRva2VuTWluUGF5b3V0LmZpbmQocD0+cC5zeW1ib2w9PT1wYXlUb2tlbnNbaV0uc3ltYm9sKTtpZihhcGkuQmlnTnVtYmVyKHBheVRva2Vuc1tpXS5xdWFudGl0eSkuZ3QobWluUGF5b3V0LnF1YW50aXR5KXx8Zmx1c2gpe2NvbnN0IHBheW91dFNoYXJlPWFwaS5CaWdOdW1iZXIocGF5VG9rZW5zW2ldLnF1YW50aXR5KS5tdWx0aXBsaWVkQnkodHIucGN0KS5kaXZpZGVkQnkoMTAwKS5kaXZpZGVkQnkoZGlzdC5udW1UaWNrc0xlZnQpLnRvRml4ZWQocGF5VG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7aWYoYXBpLkJpZ051bWJlcihwYXlvdXRTaGFyZSkuZ3QoMCkmJmF3YWl0IHBheVJlY2lwaWVudCh0ci5hY2NvdW50LHBheVRva2Vuc1tpXS5zeW1ib2wscGF5b3V0U2hhcmUsdHIudHlwZSkpe2NvbnN0IHRiSW5kZXg9dXBEaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KGI9PmIuc3ltYm9sPT09cGF5VG9rZW5zW2ldLnN5bWJvbCk7dXBEaXN0LnRva2VuQmFsYW5jZXNbdGJJbmRleF0ucXVhbnRpdHk9YXBpLkJpZ051bWJlcih1cERpc3QudG9rZW5CYWxhbmNlc1t0YkluZGV4XS5xdWFudGl0eSkubWludXMocGF5b3V0U2hhcmUpLnRvRml4ZWQocGF5VG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksYXBpLmVtaXQoInBheW1lbnQiLHtkaXN0SWQ6ZGlzdC5faWQsdG9rZW5QYWlyOmRpc3QudG9rZW5QYWlyLHN5bWJvbDpwYXlUb2tlbnNbaV0uc3ltYm9sLGFjY291bnQ6dHIuYWNjb3VudCxxdWFudGl0eTpwYXlvdXRTaGFyZX0pfX19fX1lbHNlIGlmKCJwb29sIj09PWRpc3Quc3RyYXRlZ3kpe2NvbnN0IHRva2VuUmVjaXBpZW50cz1hd2FpdCBnZXRQb29sUmVjaXBpZW50cyhwYXJhbXMsZGlzdCksc2hhcmVUb3RhbD10b2tlblJlY2lwaWVudHMucmVkdWNlKChhY2MsY3VyKT0+YWNjLnBsdXMoY3VyLmVmZlNoYXJlcyksYXBpLkJpZ051bWJlcigwKSk7aWYoYXBpLmFzc2VydChzaGFyZVRvdGFsLmd0KDApLCJubyBsaXF1aWRpdHkgc2hhcmVzIGZvciB0aGlzIHRva2VuUGFpciIpKXtsZXQgcGF5VHhDb3VudD0wO2NvbnN0IHN0b3JlUGVuZGluZz1bXTtmb3IoO3Rva2VuUmVjaXBpZW50cy5sZW5ndGg+MDspe2NvbnN0IHRyPXRva2VuUmVjaXBpZW50cy5zaGlmdCgpLHBheW91dFNoYXJlPWFwaS5CaWdOdW1iZXIodHIuZWZmU2hhcmVzKS5kaXZpZGVkQnkoc2hhcmVUb3RhbCk7Zm9yKGxldCBpPTA7aTxwYXlUb2tlbnMubGVuZ3RoO2krPTEpe2NvbnN0IHBheVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2x9KSxwYXlvdXRRdHk9YXBpLkJpZ051bWJlcihwYXlUb2tlbnNbaV0ucXVhbnRpdHkpLm11bHRpcGxpZWRCeShwYXlvdXRTaGFyZSkuZGl2aWRlZEJ5KGRpc3QubnVtVGlja3NMZWZ0KS50b0ZpeGVkKHBheVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2lmKGFwaS5CaWdOdW1iZXIocGF5b3V0UXR5KS5ndCgwKSl7bGV0IHBheVJlc3VsdD0hMCxwYXlOb3c9ITA7aWYocGF5VHhDb3VudDxwYXJhbXMubWF4VHJhbnNmZXJMaW1pdD9wYXlSZXN1bHQ9YXdhaXQgcGF5UmVjaXBpZW50KHRyLmFjY291bnQscGF5VG9rZW5zW2ldLnN5bWJvbCxwYXlvdXRRdHkpOihwYXlOb3c9ITEsc3RvcmVQZW5kaW5nLnB1c2goe2Rpc3RJZDpkaXN0Ll9pZCxhY2NvdW50OnRyLmFjY291bnQsc3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2wscXVhbnRpdHk6cGF5b3V0UXR5fSkpLHBheVJlc3VsdCl7Y29uc3QgdGJJbmRleD11cERpc3QudG9rZW5CYWxhbmNlcy5maW5kSW5kZXgoYj0+Yi5zeW1ib2w9PT1wYXlUb2tlbnNbaV0uc3ltYm9sKTt1cERpc3QudG9rZW5CYWxhbmNlc1t0YkluZGV4XS5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKHVwRGlzdC50b2tlbkJhbGFuY2VzW3RiSW5kZXhdLnF1YW50aXR5KS5taW51cyhwYXlvdXRRdHkpLnRvRml4ZWQocGF5VG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikscGF5Tm93JiZhcGkuZW1pdCgicGF5bWVudCIse2Rpc3RJZDpkaXN0Ll9pZCx0b2tlblBhaXI6ZGlzdC50b2tlblBhaXIsc3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2wsYWNjb3VudDp0ci5hY2NvdW50LHF1YW50aXR5OnBheW91dFF0eX0pfXBheVR4Q291bnQrPTF9fX1zdG9yZVBlbmRpbmcubGVuZ3RoPjAmJmF3YWl0IGFwaS5kYi5pbnNlcnQoInBlbmRpbmdQYXltZW50cyIse2R1ZVRpbWU6YmxvY2tEYXRlLmdldFRpbWUoKSxhY2NvdW50czpzdG9yZVBlbmRpbmd9KX19dXBEaXN0Lm51bVRpY2tzTGVmdC09MSx1cERpc3QubGFzdFRpY2tUaW1lPWJsb2NrRGF0ZS5nZXRUaW1lKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsdXBEaXN0KX1hc3luYyBmdW5jdGlvbiBydW5QZW5kaW5nUGF5KHBlbmRpbmdQYXkscGFyYW1zKXtmb3IobGV0IGk9TWF0aC5taW4ocGFyYW1zLm1heFRyYW5zZmVyTGltaXQscGVuZGluZ1BheS5hY2NvdW50cy5sZW5ndGgpLTE7aT49MDtpLT0xKXtjb25zdCBwPXBlbmRpbmdQYXkuYWNjb3VudHNbaV07YXdhaXQgcGF5UmVjaXBpZW50KHAuYWNjb3VudCxwLnN5bWJvbCxwLnF1YW50aXR5KSYmKHBlbmRpbmdQYXkuYWNjb3VudHMuc3BsaWNlKGksMSksYXBpLmVtaXQoInBheW1lbnQiLHtwOnAscGVuZGluZzohMH0pKX0wPT09cGVuZGluZ1BheS5hY2NvdW50cy5sZW5ndGg/YXBpLmRiLnJlbW92ZSgicGVuZGluZ1BheW1lbnRzIixwZW5kaW5nUGF5KTphcGkuZGIudXBkYXRlKCJwZW5kaW5nUGF5bWVudHMiLHBlbmRpbmdQYXkpfWFjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygiYmF0Y2hlcyIpKXthd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoImJhdGNoZXMiKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17ZGlzdENyZWF0aW9uRmVlOiI1MDAiLGRpc3RVcGRhdGVGZWU6IjI1MCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNle2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocGFyYW1zLnVwZGF0ZUluZGV4KXtpZigxPT09cGFyYW1zLnVwZGF0ZUluZGV4KXtjb25zdCBjbGVhclBlbmRpbmc9YXdhaXQgYXBpLmRiLmZpbmQoInBlbmRpbmdQYXltZW50cyIse30pO2ZvcihsZXQgaT0wO2k8Y2xlYXJQZW5kaW5nLmxlbmd0aDtpKz0xKWF3YWl0IGFwaS5kYi5yZW1vdmUoInBlbmRpbmdQYXltZW50cyIsY2xlYXJQZW5kaW5nW2ldKTtjb25zdCBzeW5jRGlzdHM9YXdhaXQgYXBpLmRiLmZpbmQoImJhdGNoZXMiLHt9KTtmb3IobGV0IGk9MDtpPHN5bmNEaXN0cy5sZW5ndGg7aSs9MSl7Y29uc3QgZGlzdD1zeW5jRGlzdHNbaV07aWYoZGlzdC50b2tlbkJhbGFuY2VzKXtsZXQgdXBkYXRlPSExO2NvbnN0IGhpdmVJbmRleD1kaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KHQ9PiJTV0FQLkhJVkUiPT09dC5zeW1ib2wpOy0xIT09aGl2ZUluZGV4JiYoZGlzdC50b2tlbkJhbGFuY2VzW2hpdmVJbmRleF0ucXVhbnRpdHk9YXBpLkJpZ051bWJlcigiMCIpLnRvRml4ZWQoOCksdXBkYXRlPSEwKTtjb25zdCBzaW1JbmRleD1kaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KHQ9PiJTSU0iPT09dC5zeW1ib2wpOy0xIT09c2ltSW5kZXgmJihkaXN0LnRva2VuQmFsYW5jZXNbc2ltSW5kZXhdLnF1YW50aXR5PWFwaS5CaWdOdW1iZXIoIjAiKS50b0ZpeGVkKDMpLHVwZGF0ZT0hMCksdXBkYXRlJiZhd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIixkaXN0KX19cGFyYW1zLnVwZGF0ZUluZGV4PTIsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfX1lbHNlIGF3YWl0IGFwaS5kYi5hZGRJbmRleGVzKCJiYXRjaGVzIixbe25hbWU6Imxhc3RUaWNrVGltZSIsaW5kZXg6e2xhc3RUaWNrVGltZToxfX1dKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBlbmRpbmdQYXltZW50cyIsWyJkdWVUaW1lIl0pLHBhcmFtcy5kaXN0VGlja0hvdXJzPSIyNCIscGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdD0xLHBhcmFtcy5tYXhUcmFuc2ZlckxpbWl0PTUwLHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdD0xZTMscGFyYW1zLnVwZGF0ZUluZGV4PTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfX0sYWN0aW9ucy51cGRhdGVQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2lmKGFwaS5zZW5kZXIhPT1hcGkub3duZXIpcmV0dXJuO2NvbnN0e2Rpc3RDcmVhdGlvbkZlZTpkaXN0Q3JlYXRpb25GZWUsZGlzdFVwZGF0ZUZlZTpkaXN0VXBkYXRlRmVlLGRpc3RUaWNrSG91cnM6ZGlzdFRpY2tIb3VycyxtYXhEaXN0cmlidXRpb25zTGltaXQ6bWF4RGlzdHJpYnV0aW9uc0xpbWl0LG1heFRyYW5zZmVyTGltaXQ6bWF4VHJhbnNmZXJMaW1pdCxwcm9jZXNzUXVlcnlMaW1pdDpwcm9jZXNzUXVlcnlMaW1pdH09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKGRpc3RDcmVhdGlvbkZlZSl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBkaXN0Q3JlYXRpb25GZWUmJiFhcGkuQmlnTnVtYmVyKGRpc3RDcmVhdGlvbkZlZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihkaXN0Q3JlYXRpb25GZWUpLmd0ZSgwKSwiaW52YWxpZCBkaXN0Q3JlYXRpb25GZWUiKSlyZXR1cm47cGFyYW1zLmRpc3RDcmVhdGlvbkZlZT1kaXN0Q3JlYXRpb25GZWV9aWYoZGlzdFVwZGF0ZUZlZSl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBkaXN0VXBkYXRlRmVlJiYhYXBpLkJpZ051bWJlcihkaXN0VXBkYXRlRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKGRpc3RVcGRhdGVGZWUpLmd0ZSgwKSwiaW52YWxpZCBkaXN0VXBkYXRlRmVlIikpcmV0dXJuO3BhcmFtcy5kaXN0VXBkYXRlRmVlPWRpc3RVcGRhdGVGZWV9aWYoZGlzdFRpY2tIb3Vycyl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBkaXN0VGlja0hvdXJzJiZhcGkuQmlnTnVtYmVyKGRpc3RUaWNrSG91cnMpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKGRpc3RUaWNrSG91cnMpLmd0ZSgxKSwiaW52YWxpZCBkaXN0VGlja0hvdXJzIikpcmV0dXJuO3BhcmFtcy5kaXN0VGlja0hvdXJzPWRpc3RUaWNrSG91cnN9aWYobWF4RGlzdHJpYnV0aW9uc0xpbWl0KXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG1heERpc3RyaWJ1dGlvbnNMaW1pdCYmYXBpLkJpZ051bWJlcihtYXhEaXN0cmlidXRpb25zTGltaXQpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG1heERpc3RyaWJ1dGlvbnNMaW1pdCkuZ3RlKDEpLCJpbnZhbGlkIG1heERpc3RyaWJ1dGlvbnNMaW1pdCIpKXJldHVybjtwYXJhbXMubWF4RGlzdHJpYnV0aW9uc0xpbWl0PWFwaS5CaWdOdW1iZXIobWF4RGlzdHJpYnV0aW9uc0xpbWl0KS50b051bWJlcigpfWlmKG1heFRyYW5zZmVyTGltaXQpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbWF4VHJhbnNmZXJMaW1pdCYmYXBpLkJpZ051bWJlcihtYXhUcmFuc2ZlckxpbWl0KS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihtYXhUcmFuc2ZlckxpbWl0KS5ndGUoMSksImludmFsaWQgbWF4VHJhbnNmZXJMaW1pdCIpKXJldHVybjtwYXJhbXMubWF4VHJhbnNmZXJMaW1pdD1hcGkuQmlnTnVtYmVyKG1heFRyYW5zZmVyTGltaXQpLnRvTnVtYmVyKCl9aWYocHJvY2Vzc1F1ZXJ5TGltaXQpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgcHJvY2Vzc1F1ZXJ5TGltaXQmJmFwaS5CaWdOdW1iZXIocHJvY2Vzc1F1ZXJ5TGltaXQpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKHByb2Nlc3NRdWVyeUxpbWl0KS5ndGUoMSksImludmFsaWQgcHJvY2Vzc1F1ZXJ5TGltaXQiKSlyZXR1cm47cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0PWFwaS5CaWdOdW1iZXIocHJvY2Vzc1F1ZXJ5TGltaXQpLnRvTnVtYmVyKCl9YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfSxhY3Rpb25zLmNyZWF0ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3RyYXRlZ3k6c3RyYXRlZ3ksbnVtVGlja3M6bnVtVGlja3MsZXhjbHVkZUFjY291bnQ6ZXhjbHVkZUFjY291bnQsdG9rZW5QYWlyOnRva2VuUGFpcixib251c0N1cnZlOmJvbnVzQ3VydmUsdG9rZW5NaW5QYXlvdXQ6dG9rZW5NaW5QYXlvdXQsdG9rZW5SZWNpcGllbnRzOnRva2VuUmVjaXBpZW50cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2Rpc3RDcmVhdGlvbkZlZTpkaXN0Q3JlYXRpb25GZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEoIWFwaS5CaWdOdW1iZXIoZGlzdENyZWF0aW9uRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGRpc3RDcmVhdGlvbkZlZSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkQ3JlYXRpb24sInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2Ygc3RyYXRlZ3kmJi0xIT09RGlzdFN0cmF0ZWd5LmluZGV4T2Yoc3RyYXRlZ3kpLCJpbnZhbGlkIHN0cmF0ZWd5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBudW1UaWNrcyYmYXBpLkJpZ051bWJlcihudW1UaWNrcykuaXNJbnRlZ2VyKCkmJmFwaS5CaWdOdW1iZXIobnVtVGlja3MpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG51bVRpY2tzKS5sdGUoNTU1NSksIm51bVRpY2tzIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCA1NTU1Iikpe2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLG5ld0Rpc3Q9e3N0cmF0ZWd5OnN0cmF0ZWd5LG51bVRpY2tzOm51bVRpY2tzLG51bVRpY2tzTGVmdDphcGkuQmlnTnVtYmVyKG51bVRpY2tzKS50b051bWJlcigpLGFjdGl2ZTohMSxjcmVhdG9yOmFwaS5zZW5kZXIsbGFzdFRpY2tUaW1lOmJsb2NrRGF0ZS5nZXRUaW1lKCl9O2lmKCJmaXhlZCI9PT1zdHJhdGVneSYmYXdhaXQgdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpJiZhd2FpdCB2YWxpZGF0ZVJlY2lwaWVudHMocGFyYW1zLHRva2VuUmVjaXBpZW50cykpbmV3RGlzdC50b2tlbk1pblBheW91dD10b2tlbk1pblBheW91dCxuZXdEaXN0LnRva2VuUmVjaXBpZW50cz10b2tlblJlY2lwaWVudHM7ZWxzZXtpZigicG9vbCIhPT1zdHJhdGVneSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoYXdhaXQgdmFsaWRhdGVQb29sKHRva2VuUGFpciksImludmFsaWQgdG9rZW5QYWlyIikpcmV0dXJuO2lmKHZvaWQgMCE9PWV4Y2x1ZGVBY2NvdW50JiYhYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGV4Y2x1ZGVBY2NvdW50KSwiZXhjbHVkZUFjY291bnQgbXVzdCBiZSBhbiBhcnJheSIpKXJldHVybjtpZih2b2lkIDAhPT1ib251c0N1cnZlJiYhdmFsaWRhdGVCb251c0N1cnZlKGJvbnVzQ3VydmUpKXJldHVybjtuZXdEaXN0LnRva2VuUGFpcj10b2tlblBhaXIsbmV3RGlzdC5leGNsdWRlQWNjb3VudD1leGNsdWRlQWNjb3VudHx8W10sbmV3RGlzdC5ib251c0N1cnZlPWJvbnVzQ3VydmV8fHt9fWNvbnN0IGNyZWF0ZWREaXN0PWF3YWl0IGFwaS5kYi5pbnNlcnQoImJhdGNoZXMiLG5ld0Rpc3QpO2FwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIoZGlzdENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6ZGlzdENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlIix7aWQ6Y3JlYXRlZERpc3QuX2lkfSl9fSxhY3Rpb25zLnVwZGF0ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7aWQ6aWQsbnVtVGlja3M6bnVtVGlja3MsZXhjbHVkZUFjY291bnQ6ZXhjbHVkZUFjY291bnQsdG9rZW5QYWlyOnRva2VuUGFpcixib251c0N1cnZlOmJvbnVzQ3VydmUsdG9rZW5NaW5QYXlvdXQ6dG9rZW5NaW5QYXlvdXQsdG9rZW5SZWNpcGllbnRzOnRva2VuUmVjaXBpZW50cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2Rpc3RVcGRhdGVGZWU6ZGlzdFVwZGF0ZUZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihkaXN0VXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGRpc3RVcGRhdGVGZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIHVwZGF0ZSBmZWUiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IGV4RGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDppZH0pO2lmKGFwaS5hc3NlcnQoZXhEaXN0LCJkaXN0cmlidXRpb24gbm90IGZvdW5kIikpe2lmKG51bVRpY2tzJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbnVtVGlja3MmJmFwaS5CaWdOdW1iZXIobnVtVGlja3MpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG51bVRpY2tzKS5ndCgwKSYmYXBpLkJpZ051bWJlcihudW1UaWNrcykubHRlKDU1NTUpLCJudW1UaWNrcyBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgNTU1NSIpJiYoZXhEaXN0Lm51bVRpY2tzPW51bVRpY2tzLGV4RGlzdC5udW1UaWNrc0xlZnQ9YXBpLkJpZ051bWJlcihudW1UaWNrcykudG9OdW1iZXIoKSksImZpeGVkIj09PWV4RGlzdC5zdHJhdGVneSl7aWYoIWF3YWl0IHZhbGlkYXRlTWluUGF5b3V0KHRva2VuTWluUGF5b3V0KXx8IWF3YWl0IHZhbGlkYXRlUmVjaXBpZW50cyhwYXJhbXMsdG9rZW5SZWNpcGllbnRzKSlyZXR1cm47ZXhEaXN0LnRva2VuTWluUGF5b3V0PXRva2VuTWluUGF5b3V0LGV4RGlzdC50b2tlblJlY2lwaWVudHM9dG9rZW5SZWNpcGllbnRzfWVsc2V7aWYoInBvb2wiIT09ZXhEaXN0LnN0cmF0ZWd5KXJldHVybjt2b2lkIDAhPT1leGNsdWRlQWNjb3VudCYmYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGV4Y2x1ZGVBY2NvdW50KSwiZXhjbHVkZUFjY291bnQgbXVzdCBiZSBhbiBhcnJheSIpJiYoZXhEaXN0LmV4Y2x1ZGVBY2NvdW50PWV4Y2x1ZGVBY2NvdW50KSx2b2lkIDAhPT10b2tlblBhaXImJmFwaS5hc3NlcnQoYXdhaXQgdmFsaWRhdGVQb29sKHRva2VuUGFpciksImludmFsaWQgdG9rZW5QYWlyIikmJihleERpc3QudG9rZW5QYWlyPXRva2VuUGFpciksdm9pZCAwIT09Ym9udXNDdXJ2ZSYmdmFsaWRhdGVCb251c0N1cnZlKGJvbnVzQ3VydmUpJiYoZXhEaXN0LmJvbnVzQ3VydmU9Ym9udXNDdXJ2ZSl9YXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsZXhEaXN0KSxhcGkuc2VuZGVyIT09YXBpLm93bmVyJiZhcGkuQmlnTnVtYmVyKGRpc3RVcGRhdGVGZWUpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTpkaXN0VXBkYXRlRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgidXBkYXRlIix7aWQ6ZXhEaXN0Ll9pZH0pfX19LGFjdGlvbnMuc2V0QWN0aXZlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxhY3RpdmU6YWN0aXZlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXJldHVybjtjb25zdCBkaXN0PWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYXRjaGVzIix7X2lkOmlkfSk7YXBpLmFzc2VydChkaXN0LCJkaXN0cmlidXRpb24gaWQgbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoZGlzdC5jcmVhdG9yPT09YXBpLnNlbmRlcnx8YXBpLm93bmVyPT09YXBpLnNlbmRlciwieW91IG11c3QgYmUgdGhlIGNyZWF0b3Igb2YgdGhpcyBkaXN0cmlidXRpb24iKSYmKGRpc3QuYWN0aXZlPSEhYWN0aXZlLGF3YWl0IGFwaS5kYi51cGRhdGUoImJhdGNoZXMiLGRpc3QpLGFwaS5lbWl0KCJzZXRBY3RpdmUiLHtpZDpkaXN0Ll9pZCxhY3RpdmU6ZGlzdC5hY3RpdmV9KSl9LGFjdGlvbnMuZGVwb3NpdD1hc3luYyBwYXlsb2FkPT57Y29uc3R7aWQ6aWQsc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLGRlcFRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKXx8IWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBxdWFudGl0eSYmYXBpLkJpZ051bWJlcihxdWFudGl0eSkuZ3QoMCksImludmFsaWQgcXVhbnRpdHkiKXx8IWFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihxdWFudGl0eSkuZHAoKTw9ZGVwVG9rZW4ucHJlY2lzaW9uLCJxdWFudGl0eSBwcmVjaXNpb24gbWlzbWF0Y2giKSlyZXR1cm47Y29uc3QgZGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDppZH0pO2lmKGFwaS5hc3NlcnQoZGlzdCwiZGlzdHJpYnV0aW9uIGlkIG5vdCBmb3VuZCIpJiZhcGkuYXNzZXJ0KGRpc3QuYWN0aXZlLCJkaXN0cmlidXRpb24gbXVzdCBiZSBhY3RpdmUgdG8gZGVwb3NpdCIpKXtpZigiZml4ZWQiPT09ZGlzdC5zdHJhdGVneSYmIWFwaS5hc3NlcnQodmFsaWRhdGVJbmNvbWluZ1Rva2VuKGRpc3Qsc3ltYm9sKSxzeW1ib2wrIiBpcyBub3QgYWNjZXB0ZWQgYnkgdGhpcyBkaXN0cmlidXRpb24iKSlyZXR1cm47Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXJUb0NvbnRyYWN0Iix7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSx0bzoiZGlzdHJpYnV0aW9uIn0pO2lmKHZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZChlbD0+InRva2VucyI9PT1lbC5jb250cmFjdCYmInRyYW5zZmVyVG9Db250cmFjdCI9PT1lbC5ldmVudCYmZWwuZGF0YS5mcm9tPT09YXBpLnNlbmRlciYmImRpc3RyaWJ1dGlvbiI9PT1lbC5kYXRhLnRvJiZlbC5kYXRhLnF1YW50aXR5PT09cXVhbnRpdHkpKXtpZihkaXN0LnRva2VuQmFsYW5jZXMpe2NvbnN0IHRJbmRleD1kaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KHQ9PnQuc3ltYm9sPT09c3ltYm9sKTstMT09PXRJbmRleD9kaXN0LnRva2VuQmFsYW5jZXMucHVzaCh7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pOmRpc3QudG9rZW5CYWxhbmNlc1t0SW5kZXhdLnF1YW50aXR5PWFwaS5CaWdOdW1iZXIoZGlzdC50b2tlbkJhbGFuY2VzW3RJbmRleF0ucXVhbnRpdHkpLnBsdXMocXVhbnRpdHkpLnRvRml4ZWQoZGVwVG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTil9ZWxzZSBkaXN0LnRva2VuQmFsYW5jZXM9W3tzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fV07YXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsZGlzdCksYXBpLmVtaXQoImRlcG9zaXQiLHtkaXN0SWQ6aWQsc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pfX19LGFjdGlvbnMuZmx1c2g9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2lkOmlkLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQsZGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDppZH0pO2lmKGFwaS5hc3NlcnQoZGlzdCwiZGlzdHJpYnV0aW9uIGlkIG5vdCBmb3VuZCIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChhcGkuc2VuZGVyPT09YXBpLm93bmVyfHxhcGkuc2VuZGVyPT09ZGlzdC5jcmVhdG9yLCJtdXN0IGJlIG93bmVyIG9yIGNyZWF0b3IiKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtkaXN0Lm51bVRpY2tzTGVmdD0xLGF3YWl0IGFwaS5kYi51cGRhdGUoImJhdGNoZXMiLGRpc3QpLGF3YWl0IHJ1bkRpc3RyaWJ1dGlvbihkaXN0LHBhcmFtcywhMCksYXBpLmVtaXQoImZsdXNoIix7ZGlzdElkOmRpc3QuX2lkfSl9fSxhY3Rpb25zLmNoZWNrUGVuZGluZ0Rpc3RyaWJ1dGlvbnM9YXN5bmMoKT0+e2lmKGFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwibm90IGF1dGhvcml6ZWQiKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSxibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSx0aWNrVGltZT1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLm1pbnVzKDM2MDAqcGFyYW1zLmRpc3RUaWNrSG91cnMqMWUzKS50b051bWJlcigpLHBlbmRpbmdEaXN0cz1hd2FpdCBhcGkuZGIuZmluZCgiYmF0Y2hlcyIse2FjdGl2ZTohMCxudW1UaWNrc0xlZnQ6eyRndDowfSwidG9rZW5CYWxhbmNlcy4wIjp7JGV4aXN0czohMH0sbGFzdFRpY2tUaW1lOnskbHRlOnRpY2tUaW1lfX0scGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdCwwLFt7aW5kZXg6Imxhc3RUaWNrVGltZSIsZGVzY2VuZGluZzohMX0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYocGVuZGluZ0Rpc3RzLmxlbmd0aD4wKWZvcihsZXQgaT0wO2k8cGVuZGluZ0Rpc3RzLmxlbmd0aDtpKz0xKWF3YWl0IHJ1bkRpc3RyaWJ1dGlvbihwZW5kaW5nRGlzdHNbaV0scGFyYW1zKTtlbHNle2NvbnN0IHBlbmRpbmdQYXk9YXdhaXQgYXBpLmRiLmZpbmQoInBlbmRpbmdQYXltZW50cyIse2R1ZVRpbWU6eyRsdDpibG9ja0RhdGUuZ2V0VGltZSgpfX0scGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdCwwLFt7aW5kZXg6ImR1ZVRpbWUiLGRlc2NlbmRpbmc6ITF9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2lmKHBlbmRpbmdQYXkubGVuZ3RoPjApZm9yKGxldCBpPTA7aTxwZW5kaW5nUGF5Lmxlbmd0aDtpKz0xKWF3YWl0IHJ1blBlbmRpbmdQYXkocGVuZGluZ1BheVtpXSxwYXJhbXMpfX19Ow=="}}}

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