{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"deploy","contractPayload":{"name":"comments","params":"","code":"Y29uc3QgU01UX1BSRUNJU0lPTj0xMCxNQVhfVk9USU5HX1BPV0VSPTFlNCxNQVhfV0VJR0hUPTFlNDtmdW5jdGlvbiBjYWxjdWxhdGVXZWlnaHRSc2hhcmVzKHJld2FyZFBvb2wsdm90ZVJzaGFyZVN1bSl7aWYoYXBpLkJpZ051bWJlcih2b3RlUnNoYXJlU3VtKS5sdGUoMCkpcmV0dXJuIGFwaS5CaWdOdW1iZXIoMCk7aWYoInBvd2VyIj09PXJld2FyZFBvb2wuY29uZmlnLnBvc3RSZXdhcmRDdXJ2ZSl7Y29uc3QgcG9zdFJld2FyZEV4cG9uZW50PWFwaS5CaWdOdW1iZXIocmV3YXJkUG9vbC5jb25maWcucG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyKTtyZXR1cm4gcG9zdFJld2FyZEV4cG9uZW50LmVxKCIxIil8fHBvc3RSZXdhcmRFeHBvbmVudC5lcSgiMiIpP2FwaS5CaWdOdW1iZXIodm90ZVJzaGFyZVN1bSkucG93KHJld2FyZFBvb2wuY29uZmlnLnBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlcikudG9GaXhlZCgxMCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pOmFwaS5CaWdOdW1iZXIocGFyc2VGbG9hdCh2b3RlUnNoYXJlU3VtKSoqcGFyc2VGbG9hdChyZXdhcmRQb29sLmNvbmZpZy5wb3N0UmV3YXJkQ3VydmVQYXJhbWV0ZXIpKS50b0ZpeGVkKDEwLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTil9cmV0dXJuIGFwaS5CaWdOdW1iZXIodm90ZVJzaGFyZVN1bSl9ZnVuY3Rpb24gY2FsY3VsYXRlQ3VyYXRpb25XZWlnaHRSc2hhcmVzKHJld2FyZFBvb2wsdm90ZVJzaGFyZVN1bSl7aWYoYXBpLkJpZ051bWJlcih2b3RlUnNoYXJlU3VtKS5sdGUoMCkpcmV0dXJuIGFwaS5CaWdOdW1iZXIoMCk7aWYoInBvd2VyIj09PXJld2FyZFBvb2wuY29uZmlnLmN1cmF0aW9uUmV3YXJkQ3VydmUpe2NvbnN0IGN1cmF0aW9uUmV3YXJkRXhwb25lbnQ9YXBpLkJpZ051bWJlcihyZXdhcmRQb29sLmNvbmZpZy5jdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyKTtyZXR1cm4gY3VyYXRpb25SZXdhcmRFeHBvbmVudC5lcSgiMC41Iik/YXBpLkJpZ051bWJlcih2b3RlUnNoYXJlU3VtKS5zcXJ0KCkudG9GaXhlZCgxMCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pOmN1cmF0aW9uUmV3YXJkRXhwb25lbnQuZXEoIjEiKT9hcGkuQmlnTnVtYmVyKHZvdGVSc2hhcmVTdW0pLnRvRml4ZWQoMTAsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTphcGkuQmlnTnVtYmVyKHBhcnNlRmxvYXQodm90ZVJzaGFyZVN1bSkqKnBhcnNlRmxvYXQocmV3YXJkUG9vbC5jb25maWcuY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcikpLnRvRml4ZWQoMTAsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKX1yZXR1cm4gYXBpLkJpZ051bWJlcih2b3RlUnNoYXJlU3VtKX1hc3luYyBmdW5jdGlvbiBwYXlVc2VyKHN5bWJvbCxxdWFudGl0eSx1c2VyLHN0YWtlZFJld2FyZFBlcmNlbnRhZ2Upe2NvbnN0IHF1YW50aXR5QmlnbnVtPWFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLHN0YWtlZFF1YW50aXR5PXF1YW50aXR5QmlnbnVtLm11bHRpcGxpZWRCeShzdGFrZWRSZXdhcmRQZXJjZW50YWdlKS5kaXZpZGVkQnkoMTAwKS50b0ZpeGVkKHF1YW50aXR5QmlnbnVtLmRwKCksYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxsaXF1aWRRdWFudGl0eT1xdWFudGl0eUJpZ251bS5taW51cyhzdGFrZWRRdWFudGl0eSkudG9GaXhlZChxdWFudGl0eUJpZ251bS5kcCgpLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7bGV0IHJlczthcGkuQmlnTnVtYmVyKGxpcXVpZFF1YW50aXR5KS5ndCgwKSYmKHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnModXNlcixzeW1ib2wsbGlxdWlkUXVhbnRpdHksInVzZXIiKSxyZXMuZXJyb3JzJiZhcGkuZGVidWcoYEVycm9yIHBheWluZyBvdXQgbGlxdWlkICR7bGlxdWlkUXVhbnRpdHl9ICR7c3ltYm9sfSB0byAke3VzZXJ9IChUWElEICR7YXBpLnRyYW5zYWN0aW9uSWR9KTogXG4ke3Jlcy5lcnJvcnN9YCkpLGFwaS5CaWdOdW1iZXIoc3Rha2VkUXVhbnRpdHkpLmd0KDApJiYocmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwic3Rha2VGcm9tQ29udHJhY3QiLHt0bzp1c2VyLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6c3Rha2VkUXVhbnRpdHl9KSxyZXMuZXJyb3JzJiZhcGkuZGVidWcoYEVycm9yIHBheWluZyBvdXQgc3Rha2VkICR7c3Rha2VkUXVhbnRpdHl9ICR7c3ltYm9sfSB0byAke3VzZXJ9IChUWElEICR7YXBpLnRyYW5zYWN0aW9uSWR9KTogXG4ke3Jlcy5lcnJvcnN9YCkpfWFzeW5jIGZ1bmN0aW9uIHBheU91dEJlbmVmaWNpYXJpZXMocmV3YXJkUG9vbCx0b2tlbixwb3N0LGF1dGhvckJlbmVQb3J0aW9uKXtjb25zdHthdXRob3JwZXJtOmF1dGhvcnBlcm0sc3ltYm9sOnN5bWJvbCxyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkLGJlbmVmaWNpYXJpZXM6YmVuZWZpY2lhcmllc309cG9zdDtpZighYmVuZWZpY2lhcmllc3x8MD09PWJlbmVmaWNpYXJpZXMubGVuZ3RoKXJldHVybiBhcGkuQmlnTnVtYmVyKDApO2xldCB0b3RhbEJlbmVQYXk9YXBpLkJpZ051bWJlcigwKTtmb3IobGV0IGk9MDtpPGJlbmVmaWNpYXJpZXMubGVuZ3RoO2krPTEpe2NvbnN0IGJlbmVmaWNpYXJ5PWJlbmVmaWNpYXJpZXNbaV0sYmVuZVBheT1hcGkuQmlnTnVtYmVyKGF1dGhvckJlbmVQb3J0aW9uKS5tdWx0aXBsaWVkQnkoYmVuZWZpY2lhcnkud2VpZ2h0KS5kaXZpZGVkQnkoMWU0KS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2FwaS5lbWl0KCJiZW5lZmljaWFyeVJld2FyZCIse3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsYXV0aG9ycGVybTphdXRob3JwZXJtLHN5bWJvbDpzeW1ib2wsYWNjb3VudDpiZW5lZmljaWFyeS5hY2NvdW50LHF1YW50aXR5OmJlbmVQYXl9KSxhd2FpdCBwYXlVc2VyKHN5bWJvbCxiZW5lUGF5LGJlbmVmaWNpYXJ5LmFjY291bnQscmV3YXJkUG9vbC5jb25maWcuc3Rha2VkUmV3YXJkUGVyY2VudGFnZSksdG90YWxCZW5lUGF5PWFwaS5CaWdOdW1iZXIodG90YWxCZW5lUGF5KS5wbHVzKGJlbmVQYXkpfXJldHVybiB0b3RhbEJlbmVQYXl9YXN5bmMgZnVuY3Rpb24gcGF5T3V0Q3VyYXRvcnMocmV3YXJkUG9vbCx0b2tlbixwb3N0LGN1cmF0b3JQb3J0aW9uLHBhcmFtcyl7Y29uc3R7YXV0aG9ycGVybTphdXRob3JwZXJtLHN5bWJvbDpzeW1ib2wscmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZH09cG9zdCx7dm90ZVF1ZXJ5TGltaXQ6dm90ZVF1ZXJ5TGltaXR9PXBhcmFtcztsZXQgdm90ZXNUb1BheW91dD1hd2FpdCBhcGkuZGIuZmluZCgidm90ZXMiLHthdXRob3JwZXJtOmF1dGhvcnBlcm0sc3ltYm9sOnN5bWJvbCxyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkfSx2b3RlUXVlcnlMaW1pdCwwLFt7aW5kZXg6ImJ5VGltZXN0YW1wIixkZXNjZW5kaW5nOiExfV0pO2Zvcig7dm90ZXNUb1BheW91dC5sZW5ndGg+MDspe2ZvcihsZXQgaT0wO2k8dm90ZXNUb1BheW91dC5sZW5ndGg7aSs9MSl7Y29uc3Qgdm90ZT12b3Rlc1RvUGF5b3V0W2ldO2lmKGFwaS5CaWdOdW1iZXIodm90ZS5jdXJhdGlvbldlaWdodCk+MCl7Y29uc3QgdG90YWxDdXJhdGlvbldlaWdodD1jYWxjdWxhdGVDdXJhdGlvbldlaWdodFJzaGFyZXMocmV3YXJkUG9vbCxwb3N0LnZvdGVQb3NpdGl2ZVJzaGFyZVN1bSksdm90ZVBheT1hcGkuQmlnTnVtYmVyKGN1cmF0b3JQb3J0aW9uKS5tdWx0aXBsaWVkQnkodm90ZS5jdXJhdGlvbldlaWdodCkuZGl2aWRlZEJ5KHRvdGFsQ3VyYXRpb25XZWlnaHQpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7YXBpLmVtaXQoImN1cmF0aW9uUmV3YXJkIix7cmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZCxhdXRob3JwZXJtOmF1dGhvcnBlcm0sc3ltYm9sOnN5bWJvbCxhY2NvdW50OnZvdGUudm90ZXIscXVhbnRpdHk6dm90ZVBheX0pLGF3YWl0IHBheVVzZXIoc3ltYm9sLHZvdGVQYXksdm90ZS52b3RlcixyZXdhcmRQb29sLmNvbmZpZy5zdGFrZWRSZXdhcmRQZXJjZW50YWdlKX1hd2FpdCBhcGkuZGIucmVtb3ZlKCJ2b3RlcyIsdm90ZSl9aWYodm90ZXNUb1BheW91dC5sZW5ndGg8dm90ZVF1ZXJ5TGltaXQpYnJlYWs7dm90ZXNUb1BheW91dD1hd2FpdCBhcGkuZGIuZmluZCgidm90ZXMiLHthdXRob3JwZXJtOmF1dGhvcnBlcm0sc3ltYm9sOnN5bWJvbH0sdm90ZVF1ZXJ5TGltaXQsMCxbe2luZGV4OiJieVRpbWVzdGFtcCIsZGVzY2VuZGluZzohMX1dKX19YXN5bmMgZnVuY3Rpb24gcGF5T3V0UG9zdChyZXdhcmRQb29sLHRva2VuLHBvc3QsdGltZXN0YW1wLHBhcmFtcyl7aWYocG9zdC5kZWNsaW5lUGF5b3V0KXJldHVybiBhcGkuZW1pdCgiYXV0aG9yUmV3YXJkIix7cmV3YXJkUG9vbElkOnBvc3QucmV3YXJkUG9vbElkLGF1dGhvcnBlcm06cG9zdC5hdXRob3JwZXJtLHN5bWJvbDpwb3N0LnN5bWJvbCxhY2NvdW50OnBvc3QuYXV0aG9yLHF1YW50aXR5OiIwIn0pLGF3YWl0IGFwaS5kYi5yZW1vdmUoInBvc3RzIixwb3N0KSwiMCI7Y29uc3QgcG9zdENsYWltcz1jYWxjdWxhdGVXZWlnaHRSc2hhcmVzKHJld2FyZFBvb2wscG9zdC52b3RlUnNoYXJlU3VtKSxwb3N0UGVuZGluZ1Rva2VuPWFwaS5CaWdOdW1iZXIocmV3YXJkUG9vbC5wZW5kaW5nQ2xhaW1zKS5ndCgwKT9hcGkuQmlnTnVtYmVyKHJld2FyZFBvb2wucmV3YXJkUG9vbCkubXVsdGlwbGllZEJ5KHBvc3RDbGFpbXMpLmRpdmlkZWRCeShyZXdhcmRQb29sLnBlbmRpbmdDbGFpbXMpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik6IjAiLGN1cmF0b3JQb3J0aW9uPWFwaS5CaWdOdW1iZXIocG9zdFBlbmRpbmdUb2tlbikubXVsdGlwbGllZEJ5KHJld2FyZFBvb2wuY29uZmlnLmN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZSkuZGl2aWRlZEJ5KDEwMCkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxhdXRob3JCZW5lUG9ydGlvbj1hcGkuQmlnTnVtYmVyKHBvc3RQZW5kaW5nVG9rZW4pLm1pbnVzKGN1cmF0b3JQb3J0aW9uKS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLGJlbmVmaWNpYXJpZXNQYXlvdXRWYWx1ZT1hd2FpdCBwYXlPdXRCZW5lZmljaWFyaWVzKHJld2FyZFBvb2wsdG9rZW4scG9zdCxhdXRob3JCZW5lUG9ydGlvbiksYXV0aG9yUG9ydGlvbj1hcGkuQmlnTnVtYmVyKGF1dGhvckJlbmVQb3J0aW9uKS5taW51cyhiZW5lZmljaWFyaWVzUGF5b3V0VmFsdWUpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7cmV0dXJuIGF3YWl0IHBheU91dEN1cmF0b3JzKHJld2FyZFBvb2wsdG9rZW4scG9zdCxjdXJhdG9yUG9ydGlvbixwYXJhbXMpLGFwaS5lbWl0KCJhdXRob3JSZXdhcmQiLHtyZXdhcmRQb29sSWQ6cG9zdC5yZXdhcmRQb29sSWQsYXV0aG9ycGVybTpwb3N0LmF1dGhvcnBlcm0sc3ltYm9sOnBvc3Quc3ltYm9sLGFjY291bnQ6cG9zdC5hdXRob3IscXVhbnRpdHk6YXV0aG9yUG9ydGlvbn0pLGF3YWl0IHBheVVzZXIocG9zdC5zeW1ib2wsYXV0aG9yUG9ydGlvbixwb3N0LmF1dGhvcixyZXdhcmRQb29sLmNvbmZpZy5zdGFrZWRSZXdhcmRQZXJjZW50YWdlKSxhd2FpdCBhcGkuZGIucmVtb3ZlKCJwb3N0cyIscG9zdCkscG9zdFBlbmRpbmdUb2tlbn1hc3luYyBmdW5jdGlvbiBjb21wdXRlUG9zdFJld2FyZHMocGFyYW1zLHJld2FyZFBvb2wsdG9rZW4pe2NvbnN0e2xhc3RDbGFpbURlY2F5VGltZXN0YW1wOmxhc3RDbGFpbURlY2F5VGltZXN0YW1wLGxhc3RQb3N0UmV3YXJkVGltZXN0YW1wOmxhc3RQb3N0UmV3YXJkVGltZXN0YW1wLGNvbmZpZzpjb25maWcscGVuZGluZ0NsYWltczpwZW5kaW5nQ2xhaW1zfT1yZXdhcmRQb29sLHtjYXNob3V0V2luZG93RGF5czpjYXNob3V0V2luZG93RGF5c309Y29uZmlnLHttYXhQb3N0c1Byb2Nlc3NlZFBlclJvdW5kOm1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmR9PXBhcmFtcyx0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCksYWRqdXN0TnVtZXI9dGltZXN0YW1wLWxhc3RDbGFpbURlY2F5VGltZXN0YW1wLGFkanVzdERlbm9tPTI0KigyKmNhc2hvdXRXaW5kb3dEYXlzKzEpKjM2MDAqMWUzO2xldCBuZXdQZW5kaW5nQ2xhaW1zPWFwaS5CaWdOdW1iZXIocGVuZGluZ0NsYWltcykubWludXMoYXBpLkJpZ051bWJlcihwZW5kaW5nQ2xhaW1zKS5tdWx0aXBsaWVkQnkoYWRqdXN0TnVtZXIpLmRpdmlkZWRCeShhZGp1c3REZW5vbSkpLnRvRml4ZWQoMTAsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTtyZXdhcmRQb29sLmxhc3RDbGFpbURlY2F5VGltZXN0YW1wPXRpbWVzdGFtcDtjb25zdCBwb3N0c1RvUGF5b3V0PWF3YWl0IGFwaS5kYi5maW5kKCJwb3N0cyIse3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sLl9pZCxsYXN0UGF5b3V0OnskZXhpc3RzOiExfSxjYXNob3V0VGltZTp7JGd0ZTpsYXN0UG9zdFJld2FyZFRpbWVzdGFtcCwkbHRlOnRpbWVzdGFtcH19LG1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmQsMCxbe2luZGV4OiJieUNhc2hvdXRUaW1lIixkZXNjZW5kaW5nOiExfV0pO2lmKHBvc3RzVG9QYXlvdXQpe25ld1BlbmRpbmdDbGFpbXM9YXBpLkJpZ051bWJlcihuZXdQZW5kaW5nQ2xhaW1zKS5wbHVzKHBvc3RzVG9QYXlvdXQucmVkdWNlKCh4LHkpPT54LnBsdXMoY2FsY3VsYXRlV2VpZ2h0UnNoYXJlcyhyZXdhcmRQb29sLHkudm90ZVJzaGFyZVN1bSkpLGFwaS5CaWdOdW1iZXIoMCkpKS50b0ZpeGVkKDEwLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikscmV3YXJkUG9vbC5wZW5kaW5nQ2xhaW1zPW5ld1BlbmRpbmdDbGFpbXM7bGV0IGRlZHVjdEZyb21SZXdhcmRQb29sPWFwaS5CaWdOdW1iZXIoMCksbGFzdFBvc3RDYXNob3V0PWxhc3RQb3N0UmV3YXJkVGltZXN0YW1wO2ZvcihsZXQgaT0wO2k8cG9zdHNUb1BheW91dC5sZW5ndGg7aSs9MSl7Y29uc3QgcG9zdD1wb3N0c1RvUGF5b3V0W2ldLHRvdGFsUGF5b3V0VmFsdWU9YXdhaXQgcGF5T3V0UG9zdChyZXdhcmRQb29sLHRva2VuLHBvc3QsdGltZXN0YW1wLHBhcmFtcyk7ZGVkdWN0RnJvbVJld2FyZFBvb2w9ZGVkdWN0RnJvbVJld2FyZFBvb2wucGx1cyh0b3RhbFBheW91dFZhbHVlKSxsYXN0UG9zdENhc2hvdXQ9cG9zdC5jYXNob3V0VGltZX1yZXdhcmRQb29sLmxhc3RQb3N0UmV3YXJkVGltZXN0YW1wPWxhc3RQb3N0Q2FzaG91dCxyZXdhcmRQb29sLnJld2FyZFBvb2w9YXBpLkJpZ051bWJlcihyZXdhcmRQb29sLnJld2FyZFBvb2wpLm1pbnVzKGRlZHVjdEZyb21SZXdhcmRQb29sKS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pfX1hc3luYyBmdW5jdGlvbiB0b2tlbk1haW50ZW5hbmNlKCl7Y29uc3QgdGltZXN0YW1wPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2xhc3RNYWludGVuYW5jZUJsb2NrOmxhc3RNYWludGVuYW5jZUJsb2NrLG1haW50ZW5hbmNlVG9rZW5zUGVyQmxvY2s6bWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9ja309cGFyYW1zO2lmKGxhc3RNYWludGVuYW5jZUJsb2NrPj1hcGkuYmxvY2tOdW1iZXIpcmV0dXJuO3BhcmFtcy5sYXN0TWFpbnRlbmFuY2VCbG9jaz1hcGkuYmxvY2tOdW1iZXI7Y29uc3QgcmV3YXJkUG9vbHM9YXdhaXQgYXBpLmRiLmZpbmQoInJld2FyZFBvb2xzIix7YWN0aXZlOiEwLGxhc3RDbGFpbURlY2F5VGltZXN0YW1wOnskbHRlOnRpbWVzdGFtcC0zZTN9fSxtYWludGVuYW5jZVRva2Vuc1BlckJsb2NrLDAsW3tpbmRleDoibGFzdENsYWltRGVjYXlUaW1lc3RhbXAiLGRlc2NlbmRpbmc6ITF9XSk7aWYocmV3YXJkUG9vbHMpZm9yKGxldCBpPTA7aTxyZXdhcmRQb29scy5sZW5ndGg7aSs9MSl7Y29uc3QgcmV3YXJkUG9vbD1yZXdhcmRQb29sc1tpXSx0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpyZXdhcmRQb29sLnN5bWJvbH0pO2lmKHRpbWVzdGFtcC1yZXdhcmRQb29sLmxhc3RSZXdhcmRUaW1lc3RhbXA+PTFlMypyZXdhcmRQb29sLmNvbmZpZy5yZXdhcmRJbnRlcnZhbFNlY29uZHMpe2NvbnN0IHJld2FyZFRvQWRkPWFwaS5CaWdOdW1iZXIocmV3YXJkUG9vbC5jb25maWcucmV3YXJkUGVySW50ZXJ2YWwpLm11bHRpcGxpZWRCeSh0aW1lc3RhbXAtcmV3YXJkUG9vbC5sYXN0UmV3YXJkVGltZXN0YW1wKS5kaXZpZGVkQnkoMWUzKnJld2FyZFBvb2wuY29uZmlnLnJld2FyZEludGVydmFsU2Vjb25kcykudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTthcGkuQmlnTnVtYmVyKHJld2FyZFRvQWRkKS5ndCgwKSYmKGF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwiaXNzdWVUb0NvbnRyYWN0Iix7c3ltYm9sOnJld2FyZFBvb2wuc3ltYm9sLHF1YW50aXR5OnJld2FyZFRvQWRkLHRvOiJjb21tZW50cyIsaXNTaWduZWRXaXRoQWN0aXZlS2V5OiEwfSkscmV3YXJkUG9vbC5yZXdhcmRQb29sPWFwaS5CaWdOdW1iZXIocmV3YXJkUG9vbC5yZXdhcmRQb29sKS5wbHVzKHJld2FyZFRvQWRkKS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxyZXdhcmRQb29sLmxhc3RSZXdhcmRUaW1lc3RhbXA9dGltZXN0YW1wfWF3YWl0IGNvbXB1dGVQb3N0UmV3YXJkcyhwYXJhbXMscmV3YXJkUG9vbCx0b2tlbiksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicmV3YXJkUG9vbHMiLHJld2FyZFBvb2wpfWF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX1hc3luYyBmdW5jdGlvbiBnZXRSZXdhcmRQb29sSWRzKHBheWxvYWQpe2NvbnN0e3Jld2FyZFBvb2xzOnJld2FyZFBvb2xzLGpzb25NZXRhZGF0YTpqc29uTWV0YWRhdGEscGFyZW50QXV0aG9yOnBhcmVudEF1dGhvcixwYXJlbnRQZXJtbGluazpwYXJlbnRQZXJtbGlua309cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKHBhcmVudEF1dGhvciYmcGFyZW50UGVybWxpbmspe2NvbnN0IHBhcmVudEF1dGhvcnBlcm09YEAke3BhcmVudEF1dGhvcn0vJHtwYXJlbnRQZXJtbGlua31gLHBhcmVudFBvc3RzPWF3YWl0IGFwaS5kYi5maW5kKCJwb3N0cyIse2F1dGhvcnBlcm06cGFyZW50QXV0aG9ycGVybX0pO3JldHVybiBwYXJlbnRQb3N0cyYmcGFyZW50UG9zdHMubGVuZ3RoPjA/cGFyZW50UG9zdHMubWFwKHA9PnAucmV3YXJkUG9vbElkKTpbXX1pZihqc29uTWV0YWRhdGEmJmpzb25NZXRhZGF0YS50YWdzJiZBcnJheS5pc0FycmF5KGpzb25NZXRhZGF0YS50YWdzKSYmanNvbk1ldGFkYXRhLnRhZ3MuZXZlcnkodD0+InN0cmluZyI9PXR5cGVvZiB0KSl7Y29uc3Qgc2VhcmNoVGFncz1wYXJlbnRQZXJtbGluaz9qc29uTWV0YWRhdGEudGFncy5jb25jYXQoW3BhcmVudFBlcm1saW5rXSk6anNvbk1ldGFkYXRhLnRhZ3MsdGFnUmV3YXJkUG9vbHM9YXdhaXQgYXBpLmRiLmZpbmQoInJld2FyZFBvb2xzIix7ImNvbmZpZy50YWdzIjp7JGluOnNlYXJjaFRhZ3N9fSxwYXJhbXMubWF4UG9vbHNQZXJQb3N0LDAsW3tpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2lmKHRhZ1Jld2FyZFBvb2xzJiZ0YWdSZXdhcmRQb29scy5sZW5ndGg+MClyZXR1cm4gdGFnUmV3YXJkUG9vbHMubWFwKHI9PnIuX2lkKX1yZXR1cm4gcmV3YXJkUG9vbHMmJkFycmF5LmlzQXJyYXkocmV3YXJkUG9vbHMpJiZyZXdhcmRQb29scy5sZW5ndGg+MD9yZXdhcmRQb29scy5zbGljZSgwLHBhcmFtcy5tYXhQb29sc1BlclBvc3QpOltdfWFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NWb3RlKHBvc3Qsdm90ZXIsd2VpZ2h0LHRpbWVzdGFtcCl7Y29uc3R7cmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZCxzeW1ib2w6c3ltYm9sLGF1dGhvcnBlcm06YXV0aG9ycGVybSxjYXNob3V0VGltZTpjYXNob3V0VGltZX09cG9zdDtpZihjYXNob3V0VGltZTx0aW1lc3RhbXApcmV0dXJuO2NvbnN0IHJld2FyZFBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInJld2FyZFBvb2xzIix7X2lkOnJld2FyZFBvb2xJZH0pO2lmKCFyZXdhcmRQb29sfHwhcmV3YXJkUG9vbC5hY3RpdmUpcmV0dXJuO2xldCB2b3RpbmdQb3dlcj1hd2FpdCBhcGkuZGIuZmluZE9uZSgidm90aW5nUG93ZXIiLHtyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkLGFjY291bnQ6dm90ZXJ9KTt2b3RpbmdQb3dlcj8odm90aW5nUG93ZXIudm90aW5nUG93ZXIrPSh0aW1lc3RhbXAtdm90aW5nUG93ZXIubGFzdFZvdGVUaW1lc3RhbXApLygyNCpyZXdhcmRQb29sLmNvbmZpZy52b3RlUmVnZW5lcmF0aW9uRGF5cyozNjAwKjFlMyksdm90aW5nUG93ZXIudm90aW5nUG93ZXI9TWF0aC5mbG9vcih2b3RpbmdQb3dlci52b3RpbmdQb3dlciksdm90aW5nUG93ZXIudm90aW5nUG93ZXI9TWF0aC5taW4odm90aW5nUG93ZXIudm90aW5nUG93ZXIsMWU0KSx2b3RpbmdQb3dlci5kb3dudm90aW5nUG93ZXIrPSh0aW1lc3RhbXAtdm90aW5nUG93ZXIubGFzdFZvdGVUaW1lc3RhbXApLygyNCpyZXdhcmRQb29sLmNvbmZpZy5kb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMqMzYwMCoxZTMpLHZvdGluZ1Bvd2VyLmRvd252b3RpbmdQb3dlcj1NYXRoLmZsb29yKHZvdGluZ1Bvd2VyLmRvd252b3RpbmdQb3dlciksdm90aW5nUG93ZXIuZG93bnZvdGluZ1Bvd2VyPU1hdGgubWluKHZvdGluZ1Bvd2VyLmRvd252b3RpbmdQb3dlciwxZTQpLHZvdGluZ1Bvd2VyLmxhc3RWb3RlVGltZXN0YW1wPXRpbWVzdGFtcCk6KHZvdGluZ1Bvd2VyPXtyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkLGFjY291bnQ6dm90ZXIsbGFzdFZvdGVUaW1lc3RhbXA6dGltZXN0YW1wLHZvdGluZ1Bvd2VyOjFlNCxkb3dudm90aW5nUG93ZXI6MWU0fSx2b3RpbmdQb3dlcj1hd2FpdCBhcGkuZGIuaW5zZXJ0KCJ2b3RpbmdQb3dlciIsdm90aW5nUG93ZXIpKTtjb25zdCB2b3RlclRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7c3ltYm9sOnN5bWJvbCxhY2NvdW50OnZvdGVyfSk7bGV0IHN0YWtlPXZvdGVyVG9rZW5CYWxhbmNlP3ZvdGVyVG9rZW5CYWxhbmNlLnN0YWtlOiIwIjt2b3RlclRva2VuQmFsYW5jZSYmdm90ZXJUb2tlbkJhbGFuY2UuZGVsZWdhdGlvbnNJbiYmYXBpLkJpZ051bWJlcih2b3RlclRva2VuQmFsYW5jZS5kZWxlZ2F0aW9uc0luKS5pc0Zpbml0ZSgpJiYoc3Rha2U9YXBpLkJpZ051bWJlcihzdGFrZSkucGx1cyh2b3RlclRva2VuQmFsYW5jZS5kZWxlZ2F0aW9uc0luKSk7bGV0IHZvdGVSc2hhcmVzPSIwIix1cGRhdGVkUG9zdFJzaGFyZXM9IjAiLHVzZWRQb3dlcj0wLHVzZWREb3dudm90ZVBvd2VyPTAsY3VyYXRpb25XZWlnaHQ9IjAiO2lmKHdlaWdodD4wKXt2b3RlUnNoYXJlcz1hcGkuQmlnTnVtYmVyKHN0YWtlKS5tdWx0aXBsaWVkQnkod2VpZ2h0KS5tdWx0aXBsaWVkQnkodm90aW5nUG93ZXIudm90aW5nUG93ZXIpLmRpdmlkZWRCeSgxZTQpLmRpdmlkZWRCeSgxZTQpLnRvRml4ZWQoMTAsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSx1c2VkUG93ZXI9TWF0aC5mbG9vcih2b3RpbmdQb3dlci52b3RpbmdQb3dlcipNYXRoLmFicyh3ZWlnaHQpKjYwKjYwKjI0LzFlNCk7Y29uc3QgdXNlZFBvd2VyRGVub209TWF0aC5mbG9vcig4NjRlNi9yZXdhcmRQb29sLmNvbmZpZy52b3RlUG93ZXJDb25zdW1wdGlvbik7dXNlZFBvd2VyPU1hdGguZmxvb3IoKHVzZWRQb3dlcit1c2VkUG93ZXJEZW5vbS0xKS91c2VkUG93ZXJEZW5vbSksdm90aW5nUG93ZXIudm90aW5nUG93ZXI9TWF0aC5tYXgoMCxNYXRoLmZsb29yKHZvdGluZ1Bvd2VyLnZvdGluZ1Bvd2VyLXVzZWRQb3dlcikpLGN1cmF0aW9uV2VpZ2h0PWFwaS5CaWdOdW1iZXIoY2FsY3VsYXRlQ3VyYXRpb25XZWlnaHRSc2hhcmVzKHJld2FyZFBvb2wsYXBpLkJpZ051bWJlcih2b3RlUnNoYXJlcykucGx1cyhwb3N0LnZvdGVQb3NpdGl2ZVJzaGFyZVN1bSkpKS5taW51cyhjYWxjdWxhdGVDdXJhdGlvbldlaWdodFJzaGFyZXMocmV3YXJkUG9vbCxwb3N0LnZvdGVQb3NpdGl2ZVJzaGFyZVN1bSkpLnRvRml4ZWQoMTAsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKX1lbHNlIGlmKHdlaWdodDwwKXt2b3RlUnNoYXJlcz1hcGkuQmlnTnVtYmVyKHN0YWtlKS5tdWx0aXBsaWVkQnkod2VpZ2h0KS5tdWx0aXBsaWVkQnkodm90aW5nUG93ZXIuZG93bnZvdGluZ1Bvd2VyKS5kaXZpZGVkQnkoMWU0KS5kaXZpZGVkQnkoMWU0KS50b0ZpeGVkKDEwLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdXNlZERvd252b3RlUG93ZXI9TWF0aC5mbG9vcih2b3RpbmdQb3dlci5kb3dudm90aW5nUG93ZXIqTWF0aC5hYnMod2VpZ2h0KSo2MCo2MCoyNC8xZTQpO2NvbnN0IHVzZWREb3dudm90ZVBvd2VyRGVub209TWF0aC5mbG9vcig4NjRlNi9yZXdhcmRQb29sLmNvbmZpZy5kb3dudm90ZVBvd2VyQ29uc3VtcHRpb24pO3VzZWREb3dudm90ZVBvd2VyPU1hdGguZmxvb3IoKHVzZWREb3dudm90ZVBvd2VyK3VzZWREb3dudm90ZVBvd2VyRGVub20tMSkvdXNlZERvd252b3RlUG93ZXJEZW5vbSksdm90aW5nUG93ZXIuZG93bnZvdGluZ1Bvd2VyPU1hdGgubWF4KDAsTWF0aC5mbG9vcih2b3RpbmdQb3dlci5kb3dudm90aW5nUG93ZXItdXNlZERvd252b3RlUG93ZXIpKX1hd2FpdCBhcGkuZGIudXBkYXRlKCJ2b3RpbmdQb3dlciIsdm90aW5nUG93ZXIpO2xldCB2b3RlPWF3YWl0IGFwaS5kYi5maW5kT25lKCJ2b3RlcyIse3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsYXV0aG9ycGVybTphdXRob3JwZXJtLHZvdGVyOnZvdGVyfSk7aWYodm90ZSl7dm90ZS50aW1lc3RhbXA9dGltZXN0YW1wLHZvdGUud2VpZ2h0PXdlaWdodCx2b3RlLmN1cmF0aW9uV2VpZ2h0PSIwIjtjb25zdCBvbGRWb3RlUnNoYXJlcz12b3RlLnJzaGFyZXM7dm90ZS5yc2hhcmVzPXZvdGVSc2hhcmVzLHVwZGF0ZWRQb3N0UnNoYXJlcz1hcGkuQmlnTnVtYmVyKHZvdGVSc2hhcmVzKS5taW51cyhvbGRWb3RlUnNoYXJlcykudG9GaXhlZCgxMCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLGF3YWl0IGFwaS5kYi51cGRhdGUoInZvdGVzIix2b3RlKSxhcGkuZW1pdCgidXBkYXRlVm90ZSIse3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsc3ltYm9sOnJld2FyZFBvb2wuc3ltYm9sLHJzaGFyZXM6dm90ZVJzaGFyZXN9KX1lbHNlIHZvdGU9e3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsc3ltYm9sOnN5bWJvbCxhdXRob3JwZXJtOmF1dGhvcnBlcm0sd2VpZ2h0OndlaWdodCxyc2hhcmVzOnZvdGVSc2hhcmVzLGN1cmF0aW9uV2VpZ2h0OmN1cmF0aW9uV2VpZ2h0LHRpbWVzdGFtcDp0aW1lc3RhbXAsdm90ZXI6dm90ZXJ9LHVwZGF0ZWRQb3N0UnNoYXJlcz12b3RlUnNoYXJlcyxhd2FpdCBhcGkuZGIuaW5zZXJ0KCJ2b3RlcyIsdm90ZSksYXBpLmVtaXQoIm5ld1ZvdGUiLHtyZXdhcmRQb29sSWQ6cmV3YXJkUG9vbElkLHN5bWJvbDpyZXdhcmRQb29sLnN5bWJvbCxyc2hhcmVzOnZvdGVSc2hhcmVzfSk7Y29uc3Qgb2xkUG9zdENsYWltcz1jYWxjdWxhdGVXZWlnaHRSc2hhcmVzKHJld2FyZFBvb2wscG9zdC52b3RlUnNoYXJlU3VtKTtpZihwb3N0LnZvdGVSc2hhcmVTdW09YXBpLkJpZ051bWJlcihwb3N0LnZvdGVSc2hhcmVTdW0pLnBsdXModXBkYXRlZFBvc3RSc2hhcmVzKS50b0ZpeGVkKDEwLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksYXBpLkJpZ051bWJlcih1cGRhdGVkUG9zdFJzaGFyZXMpLmd0KDApJiYocG9zdC52b3RlUG9zaXRpdmVSc2hhcmVTdW09YXBpLkJpZ051bWJlcihwb3N0LnZvdGVQb3NpdGl2ZVJzaGFyZVN1bSkucGx1cyh1cGRhdGVkUG9zdFJzaGFyZXMpLnRvRml4ZWQoMTAsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSx0aW1lc3RhbXA8cmV3YXJkUG9vbC5jcmVhdGVkVGltZXN0YW1wKzI0KigyKnJld2FyZFBvb2wuY29uZmlnLmNhc2hvdXRXaW5kb3dEYXlzKzEpKjM2MDAqMWUzKSl7Y29uc3QgbmV3UG9zdENsYWltcz1jYWxjdWxhdGVXZWlnaHRSc2hhcmVzKHJld2FyZFBvb2wscG9zdC52b3RlUnNoYXJlU3VtKTtyZXdhcmRQb29sLnBlbmRpbmdDbGFpbXM9YXBpLkJpZ051bWJlcihyZXdhcmRQb29sLnBlbmRpbmdDbGFpbXMpLnBsdXMobmV3UG9zdENsYWltcykubWludXMob2xkUG9zdENsYWltcykudG9GaXhlZCgxMCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLGF3YWl0IGFwaS5kYi51cGRhdGUoInJld2FyZFBvb2xzIixyZXdhcmRQb29sKX1hd2FpdCBhcGkuZGIudXBkYXRlKCJwb3N0cyIscG9zdCl9YWN0aW9ucy5jcmVhdGVTU0M9YXN5bmMoKT0+e2lmKCExPT09YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKCJyZXdhcmRQb29scyIpKXthd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicmV3YXJkUG9vbHMiLFsiY29uZmlnLnRhZ3MiLCJsYXN0Q2xhaW1EZWNheVRpbWVzdGFtcCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBvc3RzIixbImF1dGhvcnBlcm0iLHtuYW1lOiJieUNhc2hvdXRUaW1lIixpbmRleDp7cmV3YXJkUG9vbElkOjEsY2FzaG91dFRpbWU6MX19XSx7cHJpbWFyeUtleTpbImF1dGhvcnBlcm0iLCJyZXdhcmRQb29sSWQiXX0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgidm90ZXMiLFt7bmFtZToiYnlUaW1lc3RhbXAiLGluZGV4OntyZXdhcmRQb29sSWQ6MSxhdXRob3JwZXJtOjEsdGltZXN0YW1wOjF9fV0se3ByaW1hcnlLZXk6WyJyZXdhcmRQb29sSWQiLCJhdXRob3JwZXJtIiwidm90ZXIiXX0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgidm90aW5nUG93ZXIiLFtdLHtwcmltYXJ5S2V5OlsicmV3YXJkUG9vbElkIiwiYWNjb3VudCJdfSk7Y29uc3QgcGFyYW1zPXtzZXR1cEZlZToiMTAwMCIsdXBkYXRlRmVlOiIyMCIsbWF4UG9vbHNQZXJQb3N0OjIwLG1heFRhZ3NQZXJQb29sOjUsbWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jazoyLGxhc3RNYWludGVuYW5jZUJsb2NrOmFwaS5ibG9ja051bWJlcixtYXhQb3N0c1Byb2Nlc3NlZFBlclJvdW5kOjIwLHZvdGVRdWVyeUxpbWl0OjFlM307YXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixwYXJhbXMpfX0sYWN0aW9ucy51cGRhdGVQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2lmKGFwaS5zZW5kZXIhPT1hcGkub3duZXIpcmV0dXJuO2NvbnN0e3NldHVwRmVlOnNldHVwRmVlLHVwZGF0ZUZlZTp1cGRhdGVGZWUsbWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jazptYWludGVuYW5jZVRva2Vuc1BlckJsb2NrLG1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmQ6bWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZCx2b3RlUXVlcnlMaW1pdDp2b3RlUXVlcnlMaW1pdH09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKHNldHVwRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHNldHVwRmVlJiYhYXBpLkJpZ051bWJlcihzZXR1cEZlZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihzZXR1cEZlZSkuZ3RlKDApLCJpbnZhbGlkIHNldHVwRmVlIikpcmV0dXJuO3BhcmFtcy5zZXR1cEZlZT1zZXR1cEZlZX1pZih1cGRhdGVGZWUpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdXBkYXRlRmVlJiYhYXBpLkJpZ051bWJlcih1cGRhdGVGZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIodXBkYXRlRmVlKS5ndGUoMCksImludmFsaWQgdXBkYXRlRmVlIikpcmV0dXJuO3BhcmFtcy51cGRhdGVGZWU9dXBkYXRlRmVlfWlmKG1haW50ZW5hbmNlVG9rZW5zUGVyQmxvY2spe2lmKCFhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jaykmJm1haW50ZW5hbmNlVG9rZW5zUGVyQmxvY2s+PTEsImludmFsaWQgbWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jayIpKXJldHVybjtwYXJhbXMubWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jaz1tYWludGVuYW5jZVRva2Vuc1BlckJsb2NrfWlmKG1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmQpe2lmKCFhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZCkmJm1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmQ+PTEsImludmFsaWQgbWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZCIpKXJldHVybjtwYXJhbXMubWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZD1tYXhQb3N0c1Byb2Nlc3NlZFBlclJvdW5kfWlmKHZvdGVRdWVyeUxpbWl0KXtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHZvdGVRdWVyeUxpbWl0KSYmdm90ZVF1ZXJ5TGltaXQ+PTEsImludmFsaWQgdm90ZVF1ZXJ5TGltaXQiKSlyZXR1cm47cGFyYW1zLnZvdGVRdWVyeUxpbWl0PXZvdGVRdWVyeUxpbWl0fWF3YWl0IGFwaS5kYi51cGRhdGUoInBhcmFtcyIscGFyYW1zKX0sYWN0aW9ucy5jcmVhdGVSZXdhcmRQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLGNvbmZpZzpjb25maWcsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhd2FpdCB0b2tlbk1haW50ZW5hbmNlKCksIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksIm9wZXJhdGlvbiBtdXN0IGJlIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXJldHVybjtjb25zdCBwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtzZXR1cEZlZTpzZXR1cEZlZSxtYXhUYWdzUGVyUG9vbDptYXhUYWdzUGVyUG9vbH09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihzZXR1cEZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShzZXR1cEZlZSk7aWYoIWFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpKXJldHVybjtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydCh0b2tlbiwidG9rZW4gbm90IGZvdW5kIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KGNvbmZpZyYmIm9iamVjdCI9PXR5cGVvZiBjb25maWcsImNvbmZpZyBpbnZhbGlkIikpcmV0dXJuO2NvbnN0e3Bvc3RSZXdhcmRDdXJ2ZTpwb3N0UmV3YXJkQ3VydmUscG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyOnBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlcixjdXJhdGlvblJld2FyZEN1cnZlOmN1cmF0aW9uUmV3YXJkQ3VydmUsY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcjpjdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyLGN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZTpjdXJhdGlvblJld2FyZFBlcmNlbnRhZ2UsY2FzaG91dFdpbmRvd0RheXM6Y2FzaG91dFdpbmRvd0RheXMscmV3YXJkUGVySW50ZXJ2YWw6cmV3YXJkUGVySW50ZXJ2YWwscmV3YXJkSW50ZXJ2YWxTZWNvbmRzOnJld2FyZEludGVydmFsU2Vjb25kcyx2b3RlUmVnZW5lcmF0aW9uRGF5czp2b3RlUmVnZW5lcmF0aW9uRGF5cyxkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXM6ZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzLHN0YWtlZFJld2FyZFBlcmNlbnRhZ2U6c3Rha2VkUmV3YXJkUGVyY2VudGFnZSx2b3RlUG93ZXJDb25zdW1wdGlvbjp2b3RlUG93ZXJDb25zdW1wdGlvbixkb3dudm90ZVBvd2VyQ29uc3VtcHRpb246ZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uLHRhZ3M6dGFnc309Y29uZmlnO2lmKCFhcGkuYXNzZXJ0KHBvc3RSZXdhcmRDdXJ2ZSYmInBvd2VyIj09PXBvc3RSZXdhcmRDdXJ2ZSwicG9zdFJld2FyZEN1cnZlIHNob3VsZCBiZSBvbmUgb2Y6IFtwb3dlcl0iKSlyZXR1cm47Y29uc3QgcG9zdEV4cG9uZW50PWFwaS5CaWdOdW1iZXIocG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyKTtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlciYmcG9zdEV4cG9uZW50LmlzRmluaXRlKCkmJnBvc3RFeHBvbmVudC5ndGUoIjEiKSYmcG9zdEV4cG9uZW50Lmx0ZSgiMiIpJiZwb3N0RXhwb25lbnQuZHAoKTw9MiwncG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyIHNob3VsZCBiZSBiZXR3ZWVuICIxIiBhbmQgIjIiIHdpdGggcHJlY2lzaW9uIGF0IG1vc3QgMicpKXJldHVybjtpZighYXBpLmFzc2VydChjdXJhdGlvblJld2FyZEN1cnZlJiYicG93ZXIiPT09Y3VyYXRpb25SZXdhcmRDdXJ2ZSwiY3VyYXRpb25SZXdhcmRDdXJ2ZSBzaG91bGQgYmUgb25lIG9mOiBbcG93ZXJdIikpcmV0dXJuO2NvbnN0IGN1cmF0aW9uRXhwb25lbnQ9YXBpLkJpZ051bWJlcihjdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyKTtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIGN1cmF0aW9uUmV3YXJkQ3VydmVQYXJhbWV0ZXImJmN1cmF0aW9uRXhwb25lbnQuaXNGaW5pdGUoKSYmY3VyYXRpb25FeHBvbmVudC5ndGUoIjAuNSIpJiZjdXJhdGlvbkV4cG9uZW50Lmx0ZSgiMSIpJiZjdXJhdGlvbkV4cG9uZW50LmRwKCk8PTIsJ2N1cmF0aW9uUmV3YXJkQ3VydmVQYXJhbWV0ZXIgY2FuIG9ubHkgYmUgYmV0d2VlbiAiMC41IiBhbmQgIjEiIHdpdGggcHJlY2lzaW9uIGF0IG1vc3QgMicpKXJldHVybjtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKGN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZSkmJmN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZT49MCYmY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlPD0xMDAsImN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZSBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDEwMCIpKXJldHVybjtpZighYXBpLmFzc2VydChjYXNob3V0V2luZG93RGF5cyYmTnVtYmVyLmlzSW50ZWdlcihjYXNob3V0V2luZG93RGF5cykmJmNhc2hvdXRXaW5kb3dEYXlzPj0xJiZjYXNob3V0V2luZG93RGF5czw9MzAsImNhc2hvdXRXaW5kb3dEYXlzIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMzAiKSlyZXR1cm47Y29uc3QgcGFyc2VkUmV3YXJkUGVySW50ZXJ2YWw9YXBpLkJpZ051bWJlcihyZXdhcmRQZXJJbnRlcnZhbCk7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiByZXdhcmRQZXJJbnRlcnZhbCYmcGFyc2VkUmV3YXJkUGVySW50ZXJ2YWwuaXNGaW5pdGUoKSYmcGFyc2VkUmV3YXJkUGVySW50ZXJ2YWwuZ3QoMCksInJld2FyZFBlckludGVydmFsIGludmFsaWQiKXx8IWFwaS5hc3NlcnQocGFyc2VkUmV3YXJkUGVySW50ZXJ2YWwuZHAoKTw9dG9rZW4ucHJlY2lzaW9uLCJ0b2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIHJld2FyZFBlckludGVydmFsIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KHJld2FyZEludGVydmFsU2Vjb25kcyYmTnVtYmVyLmlzSW50ZWdlcihyZXdhcmRJbnRlcnZhbFNlY29uZHMpJiZyZXdhcmRJbnRlcnZhbFNlY29uZHM+PTMmJnJld2FyZEludGVydmFsU2Vjb25kczw9ODY0MDAsInJld2FyZEludGVydmFsU2Vjb25kcyBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDMgYW5kIDg2NDAwIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KHZvdGVSZWdlbmVyYXRpb25EYXlzJiZOdW1iZXIuaXNJbnRlZ2VyKHZvdGVSZWdlbmVyYXRpb25EYXlzKSYmdm90ZVJlZ2VuZXJhdGlvbkRheXM+PTEmJnZvdGVSZWdlbmVyYXRpb25EYXlzPD0zMCwidm90ZVJlZ2VuZXJhdGlvbkRheXMgc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMCIpKXJldHVybjtpZighYXBpLmFzc2VydChkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMmJk51bWJlci5pc0ludGVnZXIoZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzKSYmZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzPj0xJiZkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXM8PTMwLCJkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMgc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMCIpKXJldHVybjtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHN0YWtlZFJld2FyZFBlcmNlbnRhZ2UpJiZzdGFrZWRSZXdhcmRQZXJjZW50YWdlPj0wJiZzdGFrZWRSZXdhcmRQZXJjZW50YWdlPD0xMDAsInN0YWtlZFJld2FyZFBlcmNlbnRhZ2Ugc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDAiKSlyZXR1cm47aWYoIWFwaS5hc3NlcnQodm90ZVBvd2VyQ29uc3VtcHRpb24mJk51bWJlci5pc0ludGVnZXIodm90ZVBvd2VyQ29uc3VtcHRpb24pJiZ2b3RlUG93ZXJDb25zdW1wdGlvbj49MSYmdm90ZVBvd2VyQ29uc3VtcHRpb248PTFlNCwidm90ZVBvd2VyQ29uc3VtcHRpb24gc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAxMDAwMCIpKXJldHVybjtpZighYXBpLmFzc2VydChkb3dudm90ZVBvd2VyQ29uc3VtcHRpb24mJk51bWJlci5pc0ludGVnZXIoZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uKSYmZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uPj0xJiZkb3dudm90ZVBvd2VyQ29uc3VtcHRpb248PTFlNCwiZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMTAwMDAiKSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoQXJyYXkuaXNBcnJheSh0YWdzKSYmdGFncy5sZW5ndGg+PTEmJnRhZ3MubGVuZ3RoPD1tYXhUYWdzUGVyUG9vbCYmdGFncy5ldmVyeSh0PT4ic3RyaW5nIj09dHlwZW9mIHQpLCJ0YWdzIHNob3VsZCBiZSBhIG5vbi1lbXB0eSBhcnJheSBvZiBzdHJpbmdzIG9mIGxlbmd0aCBhdCBtb3N0ICIrbWF4VGFnc1BlclBvb2wpKXJldHVybjtpZighYXBpLmFzc2VydChhcGkuc2VuZGVyPT09dG9rZW4uaXNzdWVyLCJtdXN0IGJlIGlzc3VlciBvZiB0b2tlbiIpKXJldHVybjtpZighYXBpLmFzc2VydCh0b2tlbi5zdGFraW5nRW5hYmxlZCwidG9rZW4gbXVzdCBoYXZlIHN0YWtpbmcgZW5hYmxlZCIpKXJldHVybjtjb25zdCBleGlzdGluZ1Jld2FyZFBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInJld2FyZFBvb2xzIix7c3ltYm9sOnN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KCFleGlzdGluZ1Jld2FyZFBvb2wsImNhbm5vdCBjcmVhdGUgbXVsdGlwbGUgcmV3YXJkIHBvb2xzIHBlciB0b2tlbiIpKXJldHVybjtjb25zdCB0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCkscmV3YXJkUG9vbD17c3ltYm9sOnN5bWJvbCxyZXdhcmRQb29sOiIwIixsYXN0UmV3YXJkVGltZXN0YW1wOnRpbWVzdGFtcCxsYXN0UG9zdFJld2FyZFRpbWVzdGFtcDp0aW1lc3RhbXAsbGFzdENsYWltRGVjYXlUaW1lc3RhbXA6dGltZXN0YW1wLGNyZWF0ZWRUaW1lc3RhbXA6dGltZXN0YW1wLGNvbmZpZzp7cG9zdFJld2FyZEN1cnZlOnBvc3RSZXdhcmRDdXJ2ZSxwb3N0UmV3YXJkQ3VydmVQYXJhbWV0ZXI6cG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyLGN1cmF0aW9uUmV3YXJkQ3VydmU6Y3VyYXRpb25SZXdhcmRDdXJ2ZSxjdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyOmN1cmF0aW9uUmV3YXJkQ3VydmVQYXJhbWV0ZXIsY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlOmN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZSxjYXNob3V0V2luZG93RGF5czpjYXNob3V0V2luZG93RGF5cyxyZXdhcmRQZXJJbnRlcnZhbDpyZXdhcmRQZXJJbnRlcnZhbCxyZXdhcmRJbnRlcnZhbFNlY29uZHM6cmV3YXJkSW50ZXJ2YWxTZWNvbmRzLHZvdGVSZWdlbmVyYXRpb25EYXlzOnZvdGVSZWdlbmVyYXRpb25EYXlzLGRvd252b3RlUmVnZW5lcmF0aW9uRGF5czpkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMsc3Rha2VkUmV3YXJkUGVyY2VudGFnZTpzdGFrZWRSZXdhcmRQZXJjZW50YWdlLHZvdGVQb3dlckNvbnN1bXB0aW9uOnZvdGVQb3dlckNvbnN1bXB0aW9uLGRvd252b3RlUG93ZXJDb25zdW1wdGlvbjpkb3dudm90ZVBvd2VyQ29uc3VtcHRpb24sdGFnczp0YWdzfSxwZW5kaW5nQ2xhaW1zOiIwIixhY3RpdmU6ITB9LGluc2VydGVkUmV3YXJkUG9vbD1hd2FpdCBhcGkuZGIuaW5zZXJ0KCJyZXdhcmRQb29scyIscmV3YXJkUG9vbCk7YXBpLnNlbmRlciE9PWFwaS5vd25lciYmYXBpLkJpZ051bWJlcihzZXR1cEZlZSkuZ3QoMCkmJmF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXIiLHt0bzoibnVsbCIsc3ltYm9sOiJCRUUiLHF1YW50aXR5OnNldHVwRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlUmV3YXJkUG9vbCIse19pZDppbnNlcnRlZFJld2FyZFBvb2wuX2lkfSl9LGFjdGlvbnMudXBkYXRlUmV3YXJkUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7cmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZCxjb25maWc6Y29uZmlnLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXdhaXQgdG9rZW5NYWludGVuYW5jZSgpLCFhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJvcGVyYXRpb24gbXVzdCBiZSBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSlyZXR1cm47Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7dXBkYXRlRmVlOnVwZGF0ZUZlZSxtYXhUYWdzUGVyUG9vbDptYXhUYWdzUGVyUG9vbH09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkPSEoIWFwaS5CaWdOdW1iZXIodXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHVwZGF0ZUZlZSk7aWYoIWFwaS5hc3NlcnQoYXV0aG9yaXplZCwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSB1cGRhdGUgZmVlIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KGNvbmZpZyYmIm9iamVjdCI9PXR5cGVvZiBjb25maWcsImNvbmZpZyBpbnZhbGlkIikpcmV0dXJuO2NvbnN0e3Bvc3RSZXdhcmRDdXJ2ZTpwb3N0UmV3YXJkQ3VydmUscG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyOnBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlcixjdXJhdGlvblJld2FyZEN1cnZlOmN1cmF0aW9uUmV3YXJkQ3VydmUsY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcjpjdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyLGN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZTpjdXJhdGlvblJld2FyZFBlcmNlbnRhZ2UsY2FzaG91dFdpbmRvd0RheXM6Y2FzaG91dFdpbmRvd0RheXMscmV3YXJkUGVySW50ZXJ2YWw6cmV3YXJkUGVySW50ZXJ2YWwscmV3YXJkSW50ZXJ2YWxTZWNvbmRzOnJld2FyZEludGVydmFsU2Vjb25kcyx2b3RlUmVnZW5lcmF0aW9uRGF5czp2b3RlUmVnZW5lcmF0aW9uRGF5cyxkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXM6ZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzLHN0YWtlZFJld2FyZFBlcmNlbnRhZ2U6c3Rha2VkUmV3YXJkUGVyY2VudGFnZSx2b3RlUG93ZXJDb25zdW1wdGlvbjp2b3RlUG93ZXJDb25zdW1wdGlvbixkb3dudm90ZVBvd2VyQ29uc3VtcHRpb246ZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uLHRhZ3M6dGFnc309Y29uZmlnLGV4aXN0aW5nUmV3YXJkUG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicmV3YXJkUG9vbHMiLHtfaWQ6cmV3YXJkUG9vbElkfSk7aWYoIWFwaS5hc3NlcnQoZXhpc3RpbmdSZXdhcmRQb29sLCJyZXdhcmQgcG9vbCBub3QgZm91bmQiKSlyZXR1cm47Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6ZXhpc3RpbmdSZXdhcmRQb29sLnN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KHBvc3RSZXdhcmRDdXJ2ZSYmInBvd2VyIj09PXBvc3RSZXdhcmRDdXJ2ZSwicG9zdFJld2FyZEN1cnZlIHNob3VsZCBiZSBvbmUgb2Y6IFtwb3dlcl0iKSlyZXR1cm47ZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy5wb3N0UmV3YXJkQ3VydmU9cG9zdFJld2FyZEN1cnZlO2NvbnN0IHBvc3RFeHBvbmVudD1hcGkuQmlnTnVtYmVyKHBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlcik7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBwb3N0UmV3YXJkQ3VydmVQYXJhbWV0ZXImJnBvc3RFeHBvbmVudC5pc0Zpbml0ZSgpJiZwb3N0RXhwb25lbnQuZ3RlKCIxIikmJnBvc3RFeHBvbmVudC5sdGUoIjIiKSYmcG9zdEV4cG9uZW50LmRwKCk8PTIsJ3Bvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlciBzaG91bGQgYmUgYmV0d2VlbiAiMSIgYW5kICIyIiB3aXRoIHByZWNpc2lvbiBhdCBtb3N0IDInKSlyZXR1cm47aWYoZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy5wb3N0UmV3YXJkQ3VydmVQYXJhbWV0ZXI9cG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyLCFhcGkuYXNzZXJ0KGN1cmF0aW9uUmV3YXJkQ3VydmUmJiJwb3dlciI9PT1jdXJhdGlvblJld2FyZEN1cnZlLCJjdXJhdGlvblJld2FyZEN1cnZlIHNob3VsZCBiZSBvbmUgb2Y6IFtwb3dlcl0iKSlyZXR1cm47Y29uc3QgY3VyYXRpb25FeHBvbmVudD1hcGkuQmlnTnVtYmVyKGN1cmF0aW9uUmV3YXJkQ3VydmVQYXJhbWV0ZXIpO2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlciYmY3VyYXRpb25FeHBvbmVudC5pc0Zpbml0ZSgpJiZjdXJhdGlvbkV4cG9uZW50Lmd0ZSgiMC41IikmJmN1cmF0aW9uRXhwb25lbnQubHRlKCIxIikmJmN1cmF0aW9uRXhwb25lbnQuZHAoKTw9MiwnY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlciBjYW4gb25seSBiZSBiZXR3ZWVuICIwLjUiIGFuZCAiMSIgd2l0aCBwcmVjaXNpb24gYXQgbW9zdCAyJykpcmV0dXJuO2lmKGV4aXN0aW5nUmV3YXJkUG9vbC5jb25maWcuY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcj1jdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyLCFhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIoY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlKSYmY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlPj0wJiZjdXJhdGlvblJld2FyZFBlcmNlbnRhZ2U8PTEwMCwiY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgMTAwIikpcmV0dXJuO2lmKGV4aXN0aW5nUmV3YXJkUG9vbC5jb25maWcuY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlPWN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZSwhYXBpLmFzc2VydChjYXNob3V0V2luZG93RGF5cyYmTnVtYmVyLmlzSW50ZWdlcihjYXNob3V0V2luZG93RGF5cykmJmNhc2hvdXRXaW5kb3dEYXlzPj0xJiZjYXNob3V0V2luZG93RGF5czw9MzAsImNhc2hvdXRXaW5kb3dEYXlzIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMzAiKSlyZXR1cm47ZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy5jYXNob3V0V2luZG93RGF5cz1jYXNob3V0V2luZG93RGF5cztjb25zdCBwYXJzZWRSZXdhcmRQZXJJbnRlcnZhbD1hcGkuQmlnTnVtYmVyKHJld2FyZFBlckludGVydmFsKTthcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgcmV3YXJkUGVySW50ZXJ2YWwmJnBhcnNlZFJld2FyZFBlckludGVydmFsLmlzRmluaXRlKCkmJnBhcnNlZFJld2FyZFBlckludGVydmFsLmd0KDApLCJyZXdhcmRQZXJJbnRlcnZhbCBpbnZhbGlkIikmJmFwaS5hc3NlcnQocGFyc2VkUmV3YXJkUGVySW50ZXJ2YWwuZHAoKTw9dG9rZW4ucHJlY2lzaW9uLCJ0b2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIHJld2FyZFBlckludGVydmFsIikmJihleGlzdGluZ1Jld2FyZFBvb2wuY29uZmlnLnJld2FyZFBlckludGVydmFsPXJld2FyZFBlckludGVydmFsLGFwaS5hc3NlcnQocmV3YXJkSW50ZXJ2YWxTZWNvbmRzJiZOdW1iZXIuaXNJbnRlZ2VyKHJld2FyZEludGVydmFsU2Vjb25kcykmJnJld2FyZEludGVydmFsU2Vjb25kcz49MyYmcmV3YXJkSW50ZXJ2YWxTZWNvbmRzPD04NjQwMCwicmV3YXJkSW50ZXJ2YWxTZWNvbmRzIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMyBhbmQgODY0MDAiKSYmKGV4aXN0aW5nUmV3YXJkUG9vbC5jb25maWcucmV3YXJkSW50ZXJ2YWxTZWNvbmRzPXJld2FyZEludGVydmFsU2Vjb25kcyxhcGkuYXNzZXJ0KHZvdGVSZWdlbmVyYXRpb25EYXlzJiZOdW1iZXIuaXNJbnRlZ2VyKHZvdGVSZWdlbmVyYXRpb25EYXlzKSYmdm90ZVJlZ2VuZXJhdGlvbkRheXM+PTEmJnZvdGVSZWdlbmVyYXRpb25EYXlzPD0zMCwidm90ZVJlZ2VuZXJhdGlvbkRheXMgc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMCIpJiYoZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy52b3RlUmVnZW5lcmF0aW9uRGF5cz12b3RlUmVnZW5lcmF0aW9uRGF5cyxhcGkuYXNzZXJ0KGRvd252b3RlUmVnZW5lcmF0aW9uRGF5cyYmTnVtYmVyLmlzSW50ZWdlcihkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMpJiZkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXM+PTEmJmRvd252b3RlUmVnZW5lcmF0aW9uRGF5czw9MzAsImRvd252b3RlUmVnZW5lcmF0aW9uRGF5cyBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDMwIikmJihleGlzdGluZ1Jld2FyZFBvb2wuY29uZmlnLmRvd252b3RlUmVnZW5lcmF0aW9uRGF5cz1kb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMsYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHN0YWtlZFJld2FyZFBlcmNlbnRhZ2UpJiZzdGFrZWRSZXdhcmRQZXJjZW50YWdlPj0wJiZzdGFrZWRSZXdhcmRQZXJjZW50YWdlPD0xMDAsInN0YWtlZFJld2FyZFBlcmNlbnRhZ2Ugc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDAiKSYmKGV4aXN0aW5nUmV3YXJkUG9vbC5jb25maWcuc3Rha2VkUmV3YXJkUGVyY2VudGFnZT1zdGFrZWRSZXdhcmRQZXJjZW50YWdlLGFwaS5hc3NlcnQodm90ZVBvd2VyQ29uc3VtcHRpb24mJk51bWJlci5pc0ludGVnZXIodm90ZVBvd2VyQ29uc3VtcHRpb24pJiZ2b3RlUG93ZXJDb25zdW1wdGlvbj49MSYmdm90ZVBvd2VyQ29uc3VtcHRpb248PTFlNCwidm90ZVBvd2VyQ29uc3VtcHRpb24gc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAxMDAwMCIpJiYoZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy52b3RlUG93ZXJDb25zdW1wdGlvbj12b3RlUG93ZXJDb25zdW1wdGlvbixhcGkuYXNzZXJ0KGRvd252b3RlUG93ZXJDb25zdW1wdGlvbiYmTnVtYmVyLmlzSW50ZWdlcihkb3dudm90ZVBvd2VyQ29uc3VtcHRpb24pJiZkb3dudm90ZVBvd2VyQ29uc3VtcHRpb24+PTEmJmRvd252b3RlUG93ZXJDb25zdW1wdGlvbjw9MWU0LCJkb3dudm90ZVBvd2VyQ29uc3VtcHRpb24gc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAxMDAwMCIpJiYoZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy5kb3dudm90ZVBvd2VyQ29uc3VtcHRpb249ZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uLGFwaS5hc3NlcnQoQXJyYXkuaXNBcnJheSh0YWdzKSYmdGFncy5sZW5ndGg+PTEmJnRhZ3MubGVuZ3RoPD1tYXhUYWdzUGVyUG9vbCYmdGFncy5ldmVyeSh0PT4ic3RyaW5nIj09dHlwZW9mIHQpLCJ0YWdzIHNob3VsZCBiZSBhIG5vbi1lbXB0eSBhcnJheSBvZiBzdHJpbmdzIG9mIGxlbmd0aCBhdCBtb3N0ICIrbWF4VGFnc1BlclBvb2wpJiYoZXhpc3RpbmdSZXdhcmRQb29sLmNvbmZpZy50YWdzPXRhZ3MsYXBpLmFzc2VydChhcGkuc2VuZGVyPT09dG9rZW4uaXNzdWVyLCJtdXN0IGJlIGlzc3VlciBvZiB0b2tlbiIpJiYoYXBpLnNlbmRlciE9PWFwaS5vd25lciYmYXBpLkJpZ051bWJlcih1cGRhdGVGZWUpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTp1cGRhdGVGZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pLGF3YWl0IGFwaS5kYi51cGRhdGUoInJld2FyZFBvb2xzIixleGlzdGluZ1Jld2FyZFBvb2wpKSkpKSkpKSkpfSxhY3Rpb25zLnNldEFjdGl2ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7cmV3YXJkUG9vbElkOnJld2FyZFBvb2xJZCxhY3RpdmU6YWN0aXZlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXdhaXQgdG9rZW5NYWludGVuYW5jZSgpLCFhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJvcGVyYXRpb24gbXVzdCBiZSBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSlyZXR1cm47Y29uc3QgZXhpc3RpbmdSZXdhcmRQb29sPWF3YWl0IGFwaS5kYi5maW5kT25lKCJyZXdhcmRQb29scyIse19pZDpyZXdhcmRQb29sSWR9KTtpZighYXBpLmFzc2VydChleGlzdGluZ1Jld2FyZFBvb2wsInJld2FyZCBwb29sIG5vdCBmb3VuZCIpKXJldHVybjtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpleGlzdGluZ1Jld2FyZFBvb2wuc3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PXRva2VuLmlzc3VlciwibXVzdCBiZSBpc3N1ZXIgb2YgdG9rZW4iKSlyZXR1cm47ZXhpc3RpbmdSZXdhcmRQb29sLmFjdGl2ZT1hY3RpdmU7Y29uc3QgdGltZXN0YW1wPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpO2FjdGl2ZSYmKGV4aXN0aW5nUmV3YXJkUG9vbC5sYXN0UmV3YXJkVGltZXN0YW1wPXRpbWVzdGFtcCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicmV3YXJkUG9vbHMiLGV4aXN0aW5nUmV3YXJkUG9vbCl9LGFjdGlvbnMuY29tbWVudD1hc3luYyBwYXlsb2FkPT57Y29uc3R7YXV0aG9yOmF1dGhvcixwZXJtbGluazpwZXJtbGluayxyZXdhcmRQb29sczpyZXdhcmRQb29sc309cGF5bG9hZDtpZihhd2FpdCB0b2tlbk1haW50ZW5hbmNlKCksIWFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwiYWN0aW9uIG11c3QgdXNlIGNvbW1lbnQgb3BlcmF0aW9uIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KCFyZXdhcmRQb29sc3x8QXJyYXkuaXNBcnJheShyZXdhcmRQb29scykmJnJld2FyZFBvb2xzLmV2ZXJ5KHJwPT5OdW1iZXIuaXNJbnRlZ2VyKHJwKSksInJld2FyZFBvb2xzIG11c3QgYmUgYW4gYXJyYXkgb2YgaW50ZWdlcnMiKSlyZXR1cm47Y29uc3QgcmV3YXJkUG9vbElkcz1hd2FpdCBnZXRSZXdhcmRQb29sSWRzKHBheWxvYWQpLGF1dGhvcnBlcm09YEAke2F1dGhvcn0vJHtwZXJtbGlua31gO2lmKGF3YWl0IGFwaS5kYi5maW5kT25lKCJwb3N0cyIse2F1dGhvcnBlcm06YXV0aG9ycGVybX0pKXJldHVybjtjb25zdCB0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCk7Zm9yKGxldCBpPTA7aTxyZXdhcmRQb29sSWRzLmxlbmd0aDtpKz0xKXtjb25zdCByZXdhcmRQb29sSWQ9cmV3YXJkUG9vbElkc1tpXSxyZXdhcmRQb29sPWF3YWl0IGFwaS5kYi5maW5kT25lKCJyZXdhcmRQb29scyIse19pZDpyZXdhcmRQb29sSWR9KTtpZihyZXdhcmRQb29sJiZyZXdhcmRQb29sLmFjdGl2ZSl7Y29uc3QgY2FzaG91dFRpbWU9dGltZXN0YW1wKzI0KnJld2FyZFBvb2wuY29uZmlnLmNhc2hvdXRXaW5kb3dEYXlzKjM2MDAqMWUzLHBvc3Q9e3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsc3ltYm9sOnJld2FyZFBvb2wuc3ltYm9sLGF1dGhvcnBlcm06YXV0aG9ycGVybSxhdXRob3I6YXV0aG9yLGNyZWF0ZWQ6dGltZXN0YW1wLGNhc2hvdXRUaW1lOmNhc2hvdXRUaW1lLHZvdGVQb3NpdGl2ZVJzaGFyZVN1bToiMCIsdm90ZVJzaGFyZVN1bToiMCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBvc3RzIixwb3N0KSxhcGkuZW1pdCgibmV3Q29tbWVudCIse3Jld2FyZFBvb2xJZDpyZXdhcmRQb29sSWQsc3ltYm9sOnJld2FyZFBvb2wuc3ltYm9sfSl9fX0sYWN0aW9ucy5jb21tZW50T3B0aW9ucz1hc3luYyBwYXlsb2FkPT57Y29uc3R7YXV0aG9yOmF1dGhvcixwZXJtbGluazpwZXJtbGluayxtYXhBY2NlcHRlZFBheW91dDptYXhBY2NlcHRlZFBheW91dCxiZW5lZmljaWFyaWVzOmJlbmVmaWNpYXJpZXN9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwiYWN0aW9uIG11c3QgdXNlIGNvbW1lbnRPcHRpb25zIG9wZXJhdGlvbiIpKXJldHVybjtjb25zdCBhdXRob3JwZXJtPWBAJHthdXRob3J9LyR7cGVybWxpbmt9YCxleGlzdGluZ1Bvc3RzPWF3YWl0IGFwaS5kYi5maW5kKCJwb3N0cyIse2F1dGhvcnBlcm06YXV0aG9ycGVybX0pO2lmKCFleGlzdGluZ1Bvc3RzKXJldHVybjtjb25zdCBkZWNsaW5lUGF5b3V0PW1heEFjY2VwdGVkUGF5b3V0LnN0YXJ0c1dpdGgoIjAuMDAwIik7Zm9yKGxldCBpPTA7aTxleGlzdGluZ1Bvc3RzLmxlbmd0aDtpKz0xKXtjb25zdCBwb3N0PWV4aXN0aW5nUG9zdHNbaV07cG9zdC5kZWNsaW5lUGF5b3V0PWRlY2xpbmVQYXlvdXQscG9zdC5iZW5lZmljaWFyaWVzPWJlbmVmaWNpYXJpZXMsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9zdHMiLHBvc3QpfX0sYWN0aW9ucy52b3RlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHt2b3Rlcjp2b3RlcixhdXRob3I6YXV0aG9yLHBlcm1saW5rOnBlcm1saW5rLHdlaWdodDp3ZWlnaHR9PXBheWxvYWQ7aWYoYXdhaXQgdG9rZW5NYWludGVuYW5jZSgpLCFhcGkuYXNzZXJ0KCJudWxsIj09PWFwaS5zZW5kZXIsImNhbiBvbmx5IHZvdGUgd2l0aCB2b3Rpbmcgb3AiKSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcih3ZWlnaHQpJiZ3ZWlnaHQ+PS0xZTQmJndlaWdodDw9MWU0LCJ3ZWlnaHQgbXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gLTEwMDAwIHRvIDEwMDAwIikpcmV0dXJuO2NvbnN0IHRpbWVzdGFtcD1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLmdldFRpbWUoKSxhdXRob3JwZXJtPWBAJHthdXRob3J9LyR7cGVybWxpbmt9YCxwb3N0cz1hd2FpdCBhcGkuZGIuZmluZCgicG9zdHMiLHthdXRob3JwZXJtOmF1dGhvcnBlcm19KTtpZihwb3N0cylmb3IobGV0IGk9MDtpPHBvc3RzLmxlbmd0aDtpKz0xKXtjb25zdCBwb3N0PXBvc3RzW2ldO2F3YWl0IHByb2Nlc3NWb3RlKHBvc3Qsdm90ZXIsd2VpZ2h0LHRpbWVzdGFtcCl9fTs="}}}
Congratulations @hive-engine! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :
Your next target is to reach 50 replies.
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Check out the last post from @hivebuzz:
Support the HiveBuzz project. Vote for our proposal!