tx · 5Vt1ck5h372rkZZygYurNDvsyYTmmU86Mr36M47uwcr9

3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY:  -0.02600000 Waves

2023.10.10 07:34 [2792058] smart account 3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY > SELF 0.00000000 Waves

{ "type": 13, "id": "5Vt1ck5h372rkZZygYurNDvsyYTmmU86Mr36M47uwcr9", "fee": 2600000, "feeAssetId": null, "timestamp": 1696912504602, "version": 2, "chainId": 84, "sender": "3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY", "senderPublicKey": "J9DCtJJxJBWZdtDR12BA1U94Q3cZzMi4R6k5hYkAzmzC", "proofs": [ "5k6QtyDb8SPBrTiqqQWyDsJwM1a2n4DurhXbVdhSk6MNfpbLvF2LopFGbvUPfFHp25ptDexasCs3sELkttXrZyEg" ], "script": "base64:BgJeCAISBAoCCAgSDgoMCAgICAgICAgICAEIEg8KDQgICAgICAgICAgIAQgSBgoECAgICBIECgIICBIICgYIAQEIAQgSBAoCCAgSBAoCCAgSBwoFCAgICAgSBgoECAgICFsAB1ZFUlNJT04CBTIuMC4wAQ5nZXRTdHJpbmdCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAh1bml0VGVzdAcACW9yYWNsZUZlZQkBBXZhbHVlAQkApggBCQEOZ2V0U3RyaW5nQnlLZXkBAg9jb25mX29yYWNsZV9mZWUACHNpZ25EYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECEWNvbmZfc2lnbndlYl9kYXBwAAtmZWVSZWNlaXZlcgkBDmdldFN0cmluZ0J5S2V5AQIRY29uZl9mZWVfcmVjZWl2ZXIACHVzZXJEYXBwAwUIdW5pdFRlc3QJAQV2YWx1ZQEJAKYIAQIjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQIPY29uZl91c2Vyc19kYXBwAA13aGl0ZWxpc3REYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECE2NvbmZfd2hpdGVsaXN0X2RhcHAAD3B1enpsZV9hcnRfcG9vbAkBDmdldFN0cmluZ0J5S2V5AQIUY29uZl9wdXp6bGVfYXJ0X3Bvb2wAEXVzZHRQUEFzc2V0SWRfc3RyCQEOZ2V0U3RyaW5nQnlLZXkBAhtjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFRfUFAADmFydEFzc2V0SWRfc3RyCQEOZ2V0U3RyaW5nQnlLZXkBAhdjb25mX2FjY2VwdGVkX2Fzc2V0X0FSVAARdXNkY1BQQXNzZXRJZF9zdHIJAQ5nZXRTdHJpbmdCeUtleQECG2NvbmZfYWNjZXB0ZWRfYXNzZXRfVVNEQ19QUAAPZWFzdEFzc2V0SWRfc3RyCQEOZ2V0U3RyaW5nQnlLZXkBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X0VBU1QAEXB1enpsZUFzc2V0SWRfc3RyCQEOZ2V0U3RyaW5nQnlLZXkBAhpjb25mX2FjY2VwdGVkX2Fzc2V0X1BVWlpMRQAQZXRoUFBBc3NldElkX3N0cgkBDmdldFN0cmluZ0J5S2V5AQIaY29uZl9hY2NlcHRlZF9hc3NldF9FVEhfUFAAEHdhdmVzQXNzZXRJZF9zdHICBVdBVkVTAA11c2R0UFBBc3NldElkCQDZBAEFEXVzZHRQUEFzc2V0SWRfc3RyAAphcnRBc3NldElkCQDZBAEFDmFydEFzc2V0SWRfc3RyAA11c2RjUFBBc3NldElkCQDZBAEFEXVzZGNQUEFzc2V0SWRfc3RyAAtlYXN0QXNzZXRJZAkA2QQBBQ9lYXN0QXNzZXRJZF9zdHIADXB1enpsZUFzc2V0SWQJANkEAQURcHV6emxlQXNzZXRJZF9zdHIADGV0aFBQQXNzZXRJZAkA2QQBBRBldGhQUEFzc2V0SWRfc3RyAAx3YXZlc0Fzc2V0SWQBAAATYWxsX2FjY2VwdGVkX2Fzc2V0cwkAzAgCBRF1c2R0UFBBc3NldElkX3N0cgkAzAgCBQ5hcnRBc3NldElkX3N0cgkAzAgCBRF1c2RjUFBBc3NldElkX3N0cgkAzAgCBQ9lYXN0QXNzZXRJZF9zdHIJAMwIAgURcHV6emxlQXNzZXRJZF9zdHIJAMwIAgUQd2F2ZXNBc3NldElkX3N0cgkAzAgCBRBldGhQUEFzc2V0SWRfc3RyBQNuaWwABWNocmlzCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzEBGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCW9yYWNsZUZlZQUDa2V5Ah9JbnRlZ2VyIHVuZGVmaW5lIG9yIDAgaW4gb3JhY2xlAQ9nZXRJbnRlZ2VyQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEOY2hlY2tXaGl0ZWxpc3QBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQ13aGl0ZWxpc3REYXBwBQNrZXkAAAEPZ2V0Qm9vbGVhbkJ5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUDa2V5BwAOY29tbWlzc2lvbl9mZWUACAAOZGVmYXVsdExpY2VuY2UJAQ5nZXRTdHJpbmdCeUtleQECFGNvbmZfZGVmYXVsdF9saWNlbmNlABJkZWZhdWx0SGFzaExpY2VuY2UJAQ5nZXRTdHJpbmdCeUtleQECGWNvbmZfZGVmYXVsdF9saWNlbmNlX2hhc2gAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFCHVzZXJEYXBwAhRjb25mX2RhcHBfaXNfcnVubmluZwYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFCHVzZXJEYXBwAhRjb25mX21haW50ZW5hbmNlX21zZwIAAA11c2VyU3VzcGVuZGVkAglTVVNQRU5ERUQAC3VzZXJSZW1vdmVkAgdSRU1PVkVEABB1c2VyVW5yZWdpc3RlcmVkAgxVTlJFR0lTVEVSRUQAC3VzZXJBbGxvd2VkAgdBTExPV0VEABljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlCQEZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQEJAKwCAgISY2VydGlmaWNhdGlvbl9mZWVfCQDYBAEFCmFydEFzc2V0SWQACG1pbnRfZmVlCQEZZ2V0SW50ZWdlckJ5S2V5RnJvbU9yYWNsZQEJAKwCAgIJbWludF9mZWVfCQDYBAEFCmFydEFzc2V0SWQBE2dldEFydHdvcmtSb3lhbHRpZXMBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkA6AcBC3ZhbGlkYXRlQ0lEAQNjaWQDCQEIY29udGFpbnMCBQNjaWQCAS8DAwkAZgIATAkAsQIBBQNjaWQJAAACCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAAA7BwkAZgIAEAkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAEHBwEMdmFsaWRhdGVIYXNoAQRoYXNoCQAAAgkAsQIBBQRoYXNoAEABDWtleVVzZXJTdGF0dXMBBmNhbGxlcgkArAICAgx1c2VyX3N0YXR1c18FBmNhbGxlcgEHa2V5RGF0ZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfZGF0ZV8FBWFydElkAgFfBQZjYWxsZXIBB2tleU5hbWUCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X25hbWVfBQVhcnRJZAIBXwUGY2FsbGVyAQdrZXlEZXNjAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICCWFydF9kZXNjXwUFYXJ0SWQCAV8FBmNhbGxlcgENa2V5RGlzcGxheUNpZAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhBhcnRfZGlzcGxheV9jaWRfBQVhcnRJZAIBXwUGY2FsbGVyAQ1rZXlFeHBvcnRIYXNoAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICEGFydF9leHBvcnRfaGFzaF8FBWFydElkAgFfBQZjYWxsZXIBDGtleUV4cG9ydENpZAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAg9hcnRfZXhwb3J0X2NpZF8FBWFydElkAgFfBQZjYWxsZXIBCmtleU1heE1pbnQCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIMYXJ0X21heG1pbnRfBQVhcnRJZAIBXwUGY2FsbGVyAQlrZXlTaWduSUQCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgILYXJ0X3NpZ25pZF8FBWFydElkAgFfBQZjYWxsZXIBCWtleUlzc3VlZAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgthcnRfaXNzdWVkXwUFYXJ0SWQCAV8FBmNhbGxlcgEJa2V5T25TYWxlAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICC2FydF9vbnNhbGVfBQVhcnRJZAIBXwUGY2FsbGVyAQ5rZXlMaWNlbmNlSGFzaAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhFhcnRfbGljZW5jZV9oYXNoXwUFYXJ0SWQCAV8FBmNhbGxlcgENa2V5TGljZW5jZUNpZAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhBhcnRfbGljZW5jZV9jaWRfBQVhcnRJZAIBXwUGY2FsbGVyAQdrZXlUYWdzAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICCWFydF90YWdzXwUFYXJ0SWQCAV8FBmNhbGxlcgEHa2V5VHlwZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfdHlwZV8FBWFydElkAgFfBQZjYWxsZXIBB2tleU5vdGUCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X25vdGVfBQVhcnRJZAIBXwUGY2FsbGVyAQprZXlDcmF3bGVyAgZjYWxsZXIFYXJ0SWQJAKwCAgkArAICCQCsAgICEGFydF9jcmF3bGVyX2NpZF8FBWFydElkAgFfBQZjYWxsZXIBDGtleVJveWFsdGllcwIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAg5hcnRfcm95YWx0aWVzXwUFYXJ0SWQCAV8FBmNhbGxlcgEIa2V5UHJpY2UCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIKYXJ0X3ByaWNlXwUFYXJ0SWQCAV8FBmNhbGxlcgEKa2V5RW5kU2FsZQIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAgxhcnRfZW5kc2FsZV8FBWFydElkAgFfBQZjYWxsZXIBEmtleUFzc2V0SWRBY2NlcHRlZAIGY2FsbGVyBWFydElkCQCsAgIJAKwCAgkArAICAhJhcnRfYXNzZXRBY2NlcHRlZF8FBWFydElkAgFfBQZjYWxsZXIBB2tleUZsYWcCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIJYXJ0X2ZsYWdfBQVhcnRJZAIBXwUGY2FsbGVyARJrZXlBcnRpc3RBZ2VudEFkZHIBCmFydGlzdEFkZHIJAKwCAgINYXJ0aXN0X2FnZW50XwUKYXJ0aXN0QWRkcgEUa2V5UHJpbWFyeVNoYXJlQWdlbnQBCmFydGlzdEFkZHIJAKwCAgIVYXJ0aXN0X2FnZW50X3ByaW1hcnlfBQphcnRpc3RBZGRyARhrZXlBcnRpc3RQdWJsaWNBZ2VudEFkZHIBCmFydGlzdEFkZHIJAKwCAgIUYXJ0aXN0X3B1YmxpY19hZ2VudF8FCmFydGlzdEFkZHIBGmtleVByaW1hcnlTaGFyZVB1YmxpY0FnZW50AQphcnRpc3RBZGRyCQCsAgICHGFydGlzdF9wdWJsaWNfYWdlbnRfcHJpbWFyeV8FCmFydGlzdEFkZHIBEWtleUhhc2hCeVR4aWRBZGRyAgZjYWxsZXIEdHhpZAkArAICCQCsAgIJAKwCAgITZ2V0X2hhc2hieXR4aWRhZGRyXwUEdHhpZAIBXwUGY2FsbGVyAQ5rZXlPd25lckJ5SGFzaAEKc2hhMjU2SGFzaAkArAICAhJnZXRfb3duZXJfYnlfaGFzaF8FCnNoYTI1Nkhhc2gBDWtleWlkQnlTaWduaWQCBmNhbGxlcgZzaWduSWQJAKwCAgkArAICCQCsAgICEmdldF9hcnRpZGJ5c2lnbmlkXwUGc2lnbklkAgFfBQZjYWxsZXIBDnZhbGlkYXRlQWxsQ0lEAwpjaWREaXNwbGF5CWNpZEV4cG9ydApjaWRMaWNlbmNlAwkBASEBCQELdmFsaWRhdGVDSUQBBQpjaWREaXNwbGF5CQACAQIRV3JvbmcgRGlzcGxheSBDSUQDCQEBIQEJAQt2YWxpZGF0ZUNJRAEFCWNpZEV4cG9ydAkAAgECEFdyb25nIEV4cG9ydCBDSUQDAwkBAiE9AgUKY2lkTGljZW5jZQIACQEBIQEJAQt2YWxpZGF0ZUNJRAEFCmNpZExpY2VuY2UHCQACAQIRV3JvbmcgTGljZW5jZSBDSUQGAQ92YWxpZGF0ZUFsbEhhc2gCDHNoYTI1NkV4cG9ydA1zaGEyNTZMaWNlbmNlAwkBASEBCQEMdmFsaWRhdGVIYXNoAQUMc2hhMjU2RXhwb3J0CQACAQIYRXhwb3J0IEhhc2ggNjQgY2hhci4gbWF4AwkBASEBCQEMdmFsaWRhdGVIYXNoAQUNc2hhMjU2TGljZW5jZQkAAgECGUxpY2VuY2UgSGFzaCA2NCBjaGFyLiBtYXgGAQ52YWxpZGF0ZVN0cmluZwIDc3RyA21heAMJAAACCQCxAgEFA3N0cgAACQACAQIYRmllbGQgY2Fubm90IGJlIGlzIGVtcHR5AwkAZgIJALECAQUDc3RyBQNtYXgJAAIBCQCsAgIFA3N0cgIMIGlzIHRvbyBsb25nBgEMdmFsaWRhdGVVc2VyAQZjYWxsZXIECnVzZXJTdGF0dXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyBRB1c2VyVW5yZWdpc3RlcmVkAwMJAAACBQp1c2VyU3RhdHVzBRB1c2VyVW5yZWdpc3RlcmVkBgkAAAIFCnVzZXJTdGF0dXMFC3VzZXJBbGxvd2VkAi5SZWdpc3RlciB0aGlzIGFjY291bnQgZmlyc3Qgd2l0aCAiQWNjb3VudCIgdGFiAwkAAAIFCnVzZXJTdGF0dXMFDXVzZXJTdXNwZW5kZWQCEUFjY291bnQgc3VzcGVuZGVkAwkAAAIFCnVzZXJTdGF0dXMFC3VzZXJSZW1vdmVkAg9BY2NvdW50IHJlbW92ZWQCAAEKc2V0TEljZW5jZQIKY2lkTGljZW5jZQ1zaGEyNTZMaWNlbmNlBANjaWQDCQAAAgkAsQIBBQpjaWRMaWNlbmNlAAAFDmRlZmF1bHRMaWNlbmNlBQpjaWRMaWNlbmNlBARoYXNoAwkAAAIJALECAQUNc2hhMjU2TGljZW5jZQAABRJkZWZhdWx0SGFzaExpY2VuY2UFDXNoYTI1NkxpY2VuY2UJAJQKAgUDY2lkBQRoYXNoARN2YWxpZGF0ZUFydHdvcmtEYXRhCgZjYWxsZXIKY2lkRGlzcGxheQljaWRFeHBvcnQKbGljZW5jZUNJRAxzaGEyNTZFeHBvcnQLbGljZW5jZUhhc2gEbmFtZQtkZXNjcmlwdGlvbgR0YWdzCXJveWFsdGllcwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQAAAgkAsQIBBQpjaWREaXNwbGF5AAAJAAIBAhtEaXNwbGF5IENJRCBjYW5ub3QgYmUgZW1wdHkDCQEBIQEJAQ52YWxpZGF0ZUFsbENJRAMFCmNpZERpc3BsYXkFCWNpZEV4cG9ydAUKbGljZW5jZUNJRAkAAgECEFByb2JsZW0gd2l0aCBDSUQDCQEBIQEJAQ92YWxpZGF0ZUFsbEhhc2gCBQxzaGEyNTZFeHBvcnQFC2xpY2VuY2VIYXNoCQACAQITUHJvYmxlbSB3aXRoIEhhc2hlcwMJAQEhAQkBDnZhbGlkYXRlU3RyaW5nAgUEbmFtZQBkCQACAQISMTAwIENoYXIuIG1heCBuYW1lAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQtkZXNjcmlwdGlvbgDoBwkAAgECGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwMJAGYCAAAFCXJveWFsdGllcwYJAGYCBQlyb3lhbHRpZXMA6AcJAAIBAjNSb3lhbHRpZXMgY2Fubm90IGJlIGxlc3MgdGhhbiAwJSBvciBoaWdoZXIgdGhhbiAxMCUDCQBmAgkAkAMBCQC1CQIFBHRhZ3MCASwABQkAAgECCzUgdGFncyBtYXguAgABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEPdmFsaWRhdGVQYXltZW50AQFpBA0kdDAxMDE1NjEwMTkyCQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDEwMTU2MTAxOTICXzEEBmFtb3VudAgFDSR0MDEwMTU2MTAxOTICXzIEB2Fzc2V0SWQDAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAACCAUHcGF5bWVudAdhc3NldElkBQphcnRBc3NldElkBwgFB3BheW1lbnQHYXNzZXRJZAkAAgECK09ubHkgU0lHTiB0b2tlbiBhY2NlcHRlZCBhcyB0cmFuc2FjdGlvbiBmZWUDCQECIT0CBQZhbW91bnQFGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJAAIBCQCsAgICGVBheW1lbnQgYW1vdW50IHNob3VsZCBiZSAJAKQDAQUZY3VycmVudENlcnRpZmljYXRpb25QcmljZQkAlAoCBQZhbW91bnQFB2Fzc2V0SWQBC2lzQXJ0TWludGVkAglhZGRyVG9Vc2UFYXJ0SWQEByRtYXRjaDAJAJoIAgUEdGhpcwkBCWtleUlzc3VlZAIFCWFkZHJUb1VzZQUFYXJ0SWQDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwAwkBAiE9AgUBYgAABgcHARR2YWxpZGF0ZVByaWNlQXNzZXRJZAMBaQxwcmljZUFzc2V0SWQMYXJ0d29ya1ByaWNlBA0kdDAxMDc3OTEwODE1CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDEwNzc5MTA4MTUCXzEEBmFtb3VudAgFDSR0MDEwNzc5MTA4MTUCXzIEB2Fzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkBQR1bml0AwMJAGYCCQCxAgEFDHByaWNlQXNzZXRJZAAACQAAAgkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBQxwcmljZUFzc2V0SWQHCAUHcGF5bWVudAdhc3NldElkCQACAQIOV3JvbmcgYXNzZXQgaWQDAwkAAAIFB2Fzc2V0SWQFBHVuaXQJAQIhPQIFDHByaWNlQXNzZXRJZAIABwkAAgECDldyb25nIGFzc2V0IGlkAwkBAiE9AgUMYXJ0d29ya1ByaWNlBQZhbW91bnQJAAIBAhNQYXltZW50IGRvbid0IG1hdGNoCQCUCgIFBmFtb3VudAUHYXNzZXRJZAEQYWNjZXB0ZWRBc3NldElkcwEHYXNzZXRJZAMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIFE2FsbF9hY2NlcHRlZF9hc3NldHMFB2Fzc2V0SWQJAAIBAkBPbmx5ICRBUlQsIFVTRFQtUFAsIFVTREMtUFAsIEVBU1QsIFBVWlpMRSwgRVRIIG9yIFdBVkVTIGFjY2VwdGVkBgEPdmFsaWRhdGVNaW5TZWxsAQVwcmljZQMJAGcCAAAFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBgENZ2V0QmlkQXNzZXRJZAEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQdhc3NldElkARZnZXRQcmljZUFzc2V0SWRGcm9tQmlkAQpiaWREYXRhS2V5BAdiaWREYXRhCQEOZ2V0U3RyaW5nQnlLZXkBCQCsAgIFCmJpZERhdGFLZXkCBV9PUEVOAwkAAAIFB2JpZERhdGECAAkAAgECDUJpZCBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQJYmlkQW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKYmlkRGF0YUFycgABBApiaWRBc3NldElkCQENZ2V0QmlkQXNzZXRJZAEJAJEDAgUKYmlkRGF0YUFycgAAAwkAZwIAAAUJYmlkQW1vdW50CQACAQIMV3JvbmcgYW1vdW50CQCUCgIFCWJpZEFtb3VudAUKYmlkQXNzZXRJZAEVaWRDYWxsZXJEYXRlU3BvbnNvcmVkAgFpBnB1YktleQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQLaXNTcG9uc29yZWQDCQECIT0CBQZwdWJLZXkCAAkBC3ZhbHVlT3JFbHNlAgkBDmNoZWNrV2hpdGVsaXN0AQkArAICCQClCAEJAKcIAQkA2QQBBQZwdWJLZXkCCV9mcmVlX3R4cwAAAAAEBmNhbGxlcgMDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQClCAEFBHRoaXMJAGYCBQtpc1Nwb25zb3JlZAAABwkApQgBCQCnCAEJANkEAQUGcHViS2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEE2dldF9zcG9uc29yZWRfd2F2ZXMDAwkBAiE9AgUGcHViS2V5AgAJAGYCBQtpc1Nwb25zb3JlZAAABwkA/AcEBQ13aGl0ZWxpc3REYXBwAgl1c2VGcmVlVHgJAMwIAgkApQgBCQCnCAEJANkEAQUGcHViS2V5BQNuaWwFA25pbAUEdW5pdAMJAAACBRNnZXRfc3BvbnNvcmVkX3dhdmVzBRNnZXRfc3BvbnNvcmVkX3dhdmVzCQCWCgQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAUGY2FsbGVyCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAZgIFC2lzU3BvbnNvcmVkAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABCmdldEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA8AcCBQR0aGlzBQFiCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQEHYnV5TWludAYBaQVhcnRJZAZpc3N1ZXIFYmlkSWQIYmlkT3duZXIGcHViS2V5BA0kdDAxMzQyMDEzNTA5CQEVaWRDYWxsZXJEYXRlU3BvbnNvcmVkAgUBaQUGcHViS2V5BAJpZAgFDSR0MDEzNDIwMTM1MDkCXzEEBmNhbGxlcggFDSR0MDEzNDIwMTM1MDkCXzIEBGRhdGUIBQ0kdDAxMzQyMDEzNTA5Al8zBAtpc1Nwb25zb3JlZAgFDSR0MDEzNDIwMTM1MDkCXzQEBWlzQmlkAwMDCQAAAgUGY2FsbGVyBQZpc3N1ZXIJAQIhPQIFCGJpZE93bmVyAgAHCQECIT0CBQViaWRJZAIABwYHAwMFBWlzQmlkCQECIT0CBQZjYWxsZXIFBmlzc3VlcgcJAAIBAhlZb3UgY2Fubm90IGRvIHRoaXMgYWN0aW9uBAhibG9ja0VuZAkBD2dldEludGVnZXJCeUtleQEJAQprZXlFbmRTYWxlAgUGY2FsbGVyBQVhcnRJZAMDAwkBAiE9AgUIYmxvY2tFbmQAAAkAZwIFBmhlaWdodAUIYmxvY2tFbmQHCQEBIQEFBWlzQmlkBwkAAgECC1NhbGUgZW5kZWQuBA5jYWxsZXJJc0lzc3VlcgkAAAIFBmNhbGxlcgUGaXNzdWVyBAh0b3RhbE5GVAkBD2dldEludGVnZXJCeUtleQECEHRvdGFsX25mdF9pc3N1ZWQEC2FydHdvcmtOYW1lCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5TmFtZQIFBmlzc3VlcgUFYXJ0SWQDCQAAAgULYXJ0d29ya05hbWUCAAkAAgECEUFydCBkb2Vzbid0IGV4aXN0BAhpc09uU2FsZQkBD2dldEJvb2xlYW5CeUtleQEJAQlrZXlPblNhbGUCBQZpc3N1ZXIFBWFydElkBAphbW91bnRTb2xkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCWtleUlzc3VlZAIFBmlzc3VlcgUFYXJ0SWQEDGFydHdvcmtQcmljZQMFDmNhbGxlcklzSXNzdWVyBQhtaW50X2ZlZQkBD2dldEludGVnZXJCeUtleQEJAQhrZXlQcmljZQIFBmlzc3VlcgUFYXJ0SWQEDHByaWNlQXNzZXRJZAMFDmNhbGxlcklzSXNzdWVyCQDYBAEFCmFydEFzc2V0SWQJAQ5nZXRTdHJpbmdCeUtleQEJARJrZXlBc3NldElkQWNjZXB0ZWQCBQZpc3N1ZXIFBWFydElkBAptYXhDYW5TZWxsCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCmtleU1heE1pbnQCBQZpc3N1ZXIFBWFydElkAwMDCQEBIQEFBWlzQmlkCQEBIQEFDmNhbGxlcklzSXNzdWVyBwMDCQBnAgAABQxhcnR3b3JrUHJpY2UGCQEBIQEFCGlzT25TYWxlBgkAZwIAAAUKbWF4Q2FuU2VsbAcJAAIBAhBBcnQgbm90IGZvciBzYWxlAwMDCQEBIQEFBWlzQmlkBQ5jYWxsZXJJc0lzc3VlcgcJAGcCAAAFCm1heENhblNlbGwHCQACAQIUTWF4IGlzc3VhYmxlIG5vdCBzZXQECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmlzc3VlcgMDBQVpc0JpZAkBAiE9AgUJY2hlY2tVc2VyAgAHCQACAQUJY2hlY2tVc2VyBApiaWREYXRhS2V5CQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICBGJpZF8FBWFydElkAgFfBQZpc3N1ZXICAV8FCGJpZE93bmVyAgFfBQViaWRJZAQNJHQwMTUwODYxNTI3OAMFBWlzQmlkCQEWZ2V0UHJpY2VBc3NldElkRnJvbUJpZAEFCmJpZERhdGFLZXkJARR2YWxpZGF0ZVByaWNlQXNzZXRJZAMFAWkFDHByaWNlQXNzZXRJZAUMYXJ0d29ya1ByaWNlBAZhbW91bnQIBQ0kdDAxNTA4NjE1Mjc4Al8xBAdhc3NldElkCAUNJHQwMTUwODYxNTI3OAJfMgQFYWdlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQZpc3N1ZXIFC2ZlZVJlY2VpdmVyBAphZ2VudFNoYXJlCQELdmFsdWVPckVsc2UCCQCaCAIFCHVzZXJEYXBwCQEUa2V5UHJpbWFyeVNoYXJlQWdlbnQBBQZpc3N1ZXIAAAQLcHVibGljQWdlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJARhrZXlBcnRpc3RQdWJsaWNBZ2VudEFkZHIBBQZpc3N1ZXIFC2ZlZVJlY2VpdmVyBBBwdWJsaWNBZ2VudFNoYXJlCQELdmFsdWVPckVsc2UCCQCaCAIFCHVzZXJEYXBwCQEaa2V5UHJpbWFyeVNoYXJlUHVibGljQWdlbnQBBQZpc3N1ZXIAAAQNaXNXaGl0ZWxpc3RlZAkBDmNoZWNrV2hpdGVsaXN0AQUGaXNzdWVyBA1hbW91bnRGb3JTaWduCQBrAwUGYW1vdW50BQ5jb21taXNzaW9uX2ZlZQBkBA5hbW91bnRGb3JBZ2VudAMDAwkBAiE9AgUFYWdlbnQFC2ZlZVJlY2VpdmVyCQBmAgUKYWdlbnRTaGFyZQAABwkAZgIFBmhlaWdodAUNaXNXaGl0ZWxpc3RlZAcJAGsDBQZhbW91bnQFCmFnZW50U2hhcmUAkE4AAAQUYW1vdW50Rm9yUHVibGljQWdlbnQDAwMJAQIhPQIFC3B1YmxpY0FnZW50BQtmZWVSZWNlaXZlcgkAZgIFEHB1YmxpY0FnZW50U2hhcmUAAAcJAGYCBQZoZWlnaHQFDWlzV2hpdGVsaXN0ZWQHCQBrAwUGYW1vdW50BRBwdWJsaWNBZ2VudFNoYXJlAJBOAAAEEGFtb3VudEZvckNyZWF0b3IJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24DCQAAAgUKYW1vdW50U29sZAUKbWF4Q2FuU2VsbAkAAgECDEFydCBzb2xkIG91dAQNbmV3QW1vdW50U29sZAkAZAIFCmFtb3VudFNvbGQAAQQJaXNzdWVNZXRhCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglDcmVhdG9yOiAFBmlzc3VlcgIKLAogQXJ0SUQ6IAUFYXJ0SWQCESwKIEFydHdvcmsgbmFtZTogBQthcnR3b3JrTmFtZQIKLAogSXNzdWU6IAkApAMBBQ1uZXdBbW91bnRTb2xkAgEvCQCkAwEFCm1heENhblNlbGwECGlzc3VlTkZUCQDCCAUJAKwCAgIDU0FfCQCkAwEJAGQCBQh0b3RhbE5GVAABBQlpc3N1ZU1ldGEAAQAABwQFaWRORlQJALgIAQUIaXNzdWVORlQECnNlbGxTdGF0dXMDAwkAAAIFDW5ld0Ftb3VudFNvbGQFCm1heENhblNlbGwGCQEBIQEFCGlzT25TYWxlBwYECnJlY2VpdmVORlQDAwMJAAACBQZjYWxsZXIFBmlzc3VlcgkBAiE9AgUIYmlkT3duZXICAAcJAQIhPQIFBWJpZElkAgAHCQERQGV4dHJOYXRpdmUoMTA2MikBBQhiaWRPd25lcggFAWkGY2FsbGVyBAphc3NldElkQmlkAwkBASEBCQEJaXNEZWZpbmVkAQUHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQUHYXNzZXRJZAQHYmlkRGF0YQkBDmdldFN0cmluZ0J5S2V5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgQJYmlkRGVsT2xkCQELRGVsZXRlRW50cnkBCQCsAgIFCmJpZERhdGFLZXkCBV9PUEVOBAliaWRVcGRhdGUJAQtTdHJpbmdFbnRyeQIJAKwCAgUKYmlkRGF0YUtleQIHX0NMT1NFRAkArAICCQCsAgIFB2JpZERhdGECAV8JAKQDAQUEZGF0ZQQHc29sZEtleQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglhcnRfc29sZF8JAKQDAQUNbmV3QW1vdW50U29sZAIEX29mXwkApAMBBQptYXhDYW5TZWxsAgFfBQVhcnRJZAIBXwUGaXNzdWVyBAlzb2xkVmFsdWUDCQEBIQEFBWlzQmlkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBmNhbGxlcgIBXwkApAMBBQRkYXRlAgFfBQJpZAIBXwkApAMBBQxhcnR3b3JrUHJpY2UCAV8FDHByaWNlQXNzZXRJZAIBXwkA2AQBBQVpZE5GVAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQClCAEFCnJlY2VpdmVORlQCAV8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkQmlkAgFfCQDYBAEFBWlkTkZUBAhzb2xkRGF0YQkBC1N0cmluZ0VudHJ5AgUHc29sZEtleQUJc29sZFZhbHVlBCJhbW91bnRfY29tbWlzc2lvbl9mb3Jfc2lnbl90b19zd2FwAwkBAiE9AgUOYW1vdW50Rm9yQWdlbnQAAAkAZQIFDWFtb3VudEZvclNpZ24FDmFtb3VudEZvckFnZW50BQ1hbW91bnRGb3JTaWduBBFhbW91bnRfYXJ0X2JlZm9yZQkBCmdldEJhbGFuY2UBBQphcnRBc3NldElkAwkAAAIFEWFtb3VudF9hcnRfYmVmb3JlBRFhbW91bnRfYXJ0X2JlZm9yZQQPc3dhcF9mZWVfdG9fYXJ0AwkBAiE9AgUHYXNzZXRJZAUKYXJ0QXNzZXRJZAkA/AcECQEHQWRkcmVzcwEJANkEAQUPcHV6emxlX2FydF9wb29sAgRzd2FwCQDMCAIFDmFydEFzc2V0SWRfc3RyCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBSJhbW91bnRfY29tbWlzc2lvbl9mb3Jfc2lnbl90b19zd2FwBQNuaWwFBHVuaXQDCQAAAgUPc3dhcF9mZWVfdG9fYXJ0BQ9zd2FwX2ZlZV90b19hcnQEEGFtb3VudF9hcnRfYWZ0ZXIJAQpnZXRCYWxhbmNlAQUKYXJ0QXNzZXRJZAMJAAACBRBhbW91bnRfYXJ0X2FmdGVyBRBhbW91bnRfYXJ0X2FmdGVyBBRjb21taXNzaW9uc1dpdGhBZ2VudAMJAQIhPQIFDmFtb3VudEZvckFnZW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2ZlZVJlY2VpdmVyAwkAAAIFB2Fzc2V0SWQFCmFydEFzc2V0SWQJAGUCBQ1hbW91bnRGb3JTaWduBQ5hbW91bnRGb3JBZ2VudAkAZQIFEGFtb3VudF9hcnRfYWZ0ZXIFEWFtb3VudF9hcnRfYmVmb3JlBQphcnRBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQVhZ2VudAUOYW1vdW50Rm9yQWdlbnQFB2Fzc2V0SWQFA25pbAMGCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFDWFtb3VudEZvclNpZ24CASAJAKQDAQUOYW1vdW50Rm9yQWdlbnQCASAJAKQDAQUQYW1vdW50Rm9yQ3JlYXRvcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIFDWFtb3VudEZvclNpZ24FB2Fzc2V0SWQFA25pbAQaY29tbWlzc2lvbnNXaXRoUHVibGljQWdlbnQDCQECIT0CBRRhbW91bnRGb3JQdWJsaWNBZ2VudAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtwdWJsaWNBZ2VudAUUYW1vdW50Rm9yUHVibGljQWdlbnQFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmlzc3VlcgkAZQIFEGFtb3VudEZvckNyZWF0b3IFFGFtb3VudEZvclB1YmxpY0FnZW50BQdhc3NldElkBQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmlzc3VlcgUQYW1vdW50Rm9yQ3JlYXRvcgUHYXNzZXRJZAUDbmlsBAp0eFRvQ2FsbGVyAwULaXNTcG9uc29yZWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgAABQR1bml0BQNuaWwFA25pbAQGYnV5UmVzCQDOCAIJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEJa2V5SXNzdWVkAgUGaXNzdWVyBQVhcnRJZAUNbmV3QW1vdW50U29sZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICBG5mdF8JANgEAQUFaWRORlQFB3NvbGRLZXkJAMwIAgkBDEludGVnZXJFbnRyeQICEHRvdGFsX25mdF9pc3N1ZWQJAGQCBQh0b3RhbE5GVAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEKa2V5RW5kU2FsZQIFBmlzc3VlcgUFYXJ0SWQAAAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCWtleU9uU2FsZQIFBmlzc3VlcgUFYXJ0SWQFCnNlbGxTdGF0dXMJAMwIAgUIaXNzdWVORlQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUKcmVjZWl2ZU5GVAABBQVpZE5GVAUDbmlsBRRjb21taXNzaW9uc1dpdGhBZ2VudAUaY29tbWlzc2lvbnNXaXRoUHVibGljQWdlbnQFCnR4VG9DYWxsZXIDBQVpc0JpZAkAzAgCBQhzb2xkRGF0YQkAzAgCBQliaWRVcGRhdGUJAMwIAgUJYmlkRGVsT2xkBQZidXlSZXMJAMwIAgUIc29sZERhdGEFBmJ1eVJlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEIYXNTdHJpbmcBAmJ2BAckbWF0Y2gwBQJidgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA2J2MAUHJG1hdGNoMAUDYnYwCQACAQIkU3BvbnNvcmVkIFB1YmxpYyBLZXkgU3RyaW5nIGV4cGVjdGVkCgZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQNrZXkCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMBaQEKYWRkQXJ0d29yawwEbmFtZQtkZXNjcmlwdGlvbgR0YWdzBHR5cGUKY2lkRGlzcGxheQxzaGEyNTZFeHBvcnQJY2lkRXhwb3J0DXNoYTI1NkxpY2VuY2UKY2lkTGljZW5jZQdjcmF3bGVyCXJveWFsdGllcwZwdWJLZXkEDSR0MDIxMTU4MjEyMzEJARVpZENhbGxlckRhdGVTcG9uc29yZWQCBQFpBQZwdWJLZXkEBWFydElkCAUNJHQwMjExNTgyMTIzMQJfMQQGY2FsbGVyCAUNJHQwMjExNTgyMTIzMQJfMgQEZGF0ZQgFDSR0MDIxMTU4MjEyMzECXzMEC2lzU3BvbnNvcmVkCAUNJHQwMjExNTgyMTIzMQJfNAQNJHQwMjEyNDEyMTMxMAkBCnNldExJY2VuY2UCBQpjaWRMaWNlbmNlBQ1zaGEyNTZMaWNlbmNlBApsaWNlbmNlQ0lECAUNJHQwMjEyNDEyMTMxMAJfMQQLbGljZW5jZUhhc2gIBQ0kdDAyMTI0MTIxMzEwAl8yBA92YWxpZGF0ZUFydHdvcmsJARN2YWxpZGF0ZUFydHdvcmtEYXRhCgUGY2FsbGVyBQpjaWREaXNwbGF5BQljaWRFeHBvcnQFCmxpY2VuY2VDSUQFDHNoYTI1NkV4cG9ydAULbGljZW5jZUhhc2gFBG5hbWUFC2Rlc2NyaXB0aW9uBQR0YWdzBQlyb3lhbHRpZXMDCQECIT0CBQ92YWxpZGF0ZUFydHdvcmsCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQQd2hpdGVsaXN0ZWRfZHJvcAkAZgIJAQ5jaGVja1doaXRlbGlzdAEJAKwCAgUGY2FsbGVyAgtfZnJlZV9kcm9wcwAABA0kdDAyMTYwOTIxNjk3AwUQd2hpdGVsaXN0ZWRfZHJvcAkAlAoCAAAFCmFydEFzc2V0SWQJAQ92YWxpZGF0ZVBheW1lbnQBBQFpBAZhbW91bnQIBQ0kdDAyMTYwOTIxNjk3Al8xBAdhc3NldElkCAUNJHQwMjE2MDkyMTY5NwJfMgMJAQEhAQkBCWlzRGVmaW5lZAEFBmFtb3VudAkAAgECFFNvbWV0aGluZyB3ZW50IHdyb25nBBdkZWNyZWFzZV93aGl0ZWxpc3RfZHJvcAMFEHdoaXRlbGlzdGVkX2Ryb3AJAPwHBAUNd2hpdGVsaXN0RGFwcAILdXNlRnJlZURyb3AJAMwIAgUGY2FsbGVyBQNuaWwFA25pbAUEdW5pdAMJAAACBRdkZWNyZWFzZV93aGl0ZWxpc3RfZHJvcAUXZGVjcmVhc2Vfd2hpdGVsaXN0X2Ryb3AECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlEYXRlAgUGY2FsbGVyBQVhcnRJZAUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5TmFtZQIFBmNhbGxlcgUFYXJ0SWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleURlc2MCBQZjYWxsZXIFBWFydElkBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5RGlzcGxheUNpZAIFBmNhbGxlcgUFYXJ0SWQFCmNpZERpc3BsYXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV4cG9ydENpZAIFBmNhbGxlcgUFYXJ0SWQFCWNpZEV4cG9ydAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5RXhwb3J0SGFzaAIFBmNhbGxlcgUFYXJ0SWQFDHNoYTI1NkV4cG9ydAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5TGljZW5jZUhhc2gCBQZjYWxsZXIFBWFydElkBQtsaWNlbmNlSGFzaAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5TGljZW5jZUNpZAIFBmNhbGxlcgUFYXJ0SWQFCmxpY2VuY2VDSUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleVR5cGUCBQZjYWxsZXIFBWFydElkBQR0eXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQdrZXlUYWdzAgUGY2FsbGVyBQVhcnRJZAUEdGFncwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCmtleU1heE1pbnQCBQZjYWxsZXIFBWFydElkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQlrZXlJc3N1ZWQCBQZjYWxsZXIFBWFydElkAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQlrZXlPblNhbGUCBQZjYWxsZXIFBWFydElkBwkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5Q3Jhd2xlcgIFBmNhbGxlcgUFYXJ0SWQFB2NyYXdsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxrZXlSb3lhbHRpZXMCBQZjYWxsZXIFBWFydElkBQlyb3lhbHRpZXMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2ZlZVJlY2VpdmVyBQZhbW91bnQFCmFydEFzc2V0SWQFA25pbAUKdHhUb0NhbGxlcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ11cGRhdGVBcnR3b3JrDQR0eGlkBG5hbWULZGVzY3JpcHRpb24EdGFncwR0eXBlCmNpZERpc3BsYXkMc2hhMjU2RXhwb3J0CWNpZEV4cG9ydA1zaGEyNTZMaWNlbmNlCmNpZExpY2VuY2UHY3Jhd2xlcglyb3lhbHRpZXMGcHViS2V5AwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHBA0kdDAyMzYxMjIzNjgyCQEVaWRDYWxsZXJEYXRlU3BvbnNvcmVkAgUBaQUGcHViS2V5BAJpZAgFDSR0MDIzNjEyMjM2ODICXzEEBmNhbGxlcggFDSR0MDIzNjEyMjM2ODICXzIEBGRhdGUIBQ0kdDAyMzYxMjIzNjgyAl8zBAtpc1Nwb25zb3JlZAgFDSR0MDIzNjEyMjM2ODICXzQEDSR0MDIzNjkyMjM3NjEJAQpzZXRMSWNlbmNlAgUKY2lkTGljZW5jZQUNc2hhMjU2TGljZW5jZQQKbGljZW5jZUNJRAgFDSR0MDIzNjkyMjM3NjECXzEEC2xpY2VuY2VIYXNoCAUNJHQwMjM2OTIyMzc2MQJfMgQPdmFsaWRhdGVBcnR3b3JrCQETdmFsaWRhdGVBcnR3b3JrRGF0YQoFBmNhbGxlcgUKY2lkRGlzcGxheQUJY2lkRXhwb3J0BQpsaWNlbmNlQ0lEBQxzaGEyNTZFeHBvcnQFC2xpY2VuY2VIYXNoBQRuYW1lBQtkZXNjcmlwdGlvbgUEdGFncwUJcm95YWx0aWVzAwkBAiE9AgUPdmFsaWRhdGVBcnR3b3JrAgAJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEECmVudHJ5RXhpc3QJAQ5nZXRTdHJpbmdCeUtleQEJAQdrZXlOYW1lAgUGY2FsbGVyBQR0eGlkAwkAAAIFCmVudHJ5RXhpc3QCAAkAAgECD0VudHJ5IG5vdCBmb3VuZAQEZmxhZwkBDmdldFN0cmluZ0J5S2V5AQkBB2tleUZsYWcCBQZjYWxsZXIFBHR4aWQDCQAAAgUEZmxhZwIHSUxMRUdBTAkAAgECHUNhbm5vdCB1cGRhdGUgSUxMRUdBTCBhcnR3b3JrAwkBASEBCQELaXNBcnRNaW50ZWQCBQZjYWxsZXIFBHR4aWQECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleU5hbWUCBQZjYWxsZXIFBHR4aWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleURlc2MCBQZjYWxsZXIFBHR4aWQFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlEaXNwbGF5Q2lkAgUGY2FsbGVyBQR0eGlkBQpjaWREaXNwbGF5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFeHBvcnRDaWQCBQZjYWxsZXIFBHR4aWQFCWNpZEV4cG9ydAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5RXhwb3J0SGFzaAIFBmNhbGxlcgUEdHhpZAUMc2hhMjU2RXhwb3J0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlMaWNlbmNlQ2lkAgUGY2FsbGVyBQR0eGlkBQpsaWNlbmNlQ0lECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlMaWNlbmNlSGFzaAIFBmNhbGxlcgUEdHhpZAULbGljZW5jZUhhc2gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleVRhZ3MCBQZjYWxsZXIFBHR4aWQFBHRhZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBB2tleVR5cGUCBQZjYWxsZXIFBHR4aWQFBHR5cGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleUNyYXdsZXICBQZjYWxsZXIFBHR4aWQFB2NyYXdsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxrZXlSb3lhbHRpZXMCBQZjYWxsZXIFBHR4aWQFCXJveWFsdGllcwUDbmlsBQp0eFRvQ2FsbGVyCQACAQIOQWxyZWFkeSBtaW50ZWQBaQELZmxhZ0FydHdvcmsEBWFydElkBGFkZHIEZmxhZwRub3RlBA0kdDAyNTM4ODI1NDIyCQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAyNTM4ODI1NDIyAl8xBAZjYWxsZXIIBQ0kdDAyNTM4ODI1NDIyAl8yAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICB0NPTlNFTlQJAMwIAgIACQDMCAICD0NIQU5HRV9SRVFVSVJFRAkAzAgCAgdGTEFHR0VECQDMCAICB0lMTEVHQUwFA25pbAUEZmxhZwkAzAgCCQELU3RyaW5nRW50cnkCCQEHa2V5RmxhZwIFBGFkZHIFBWFydElkBQRmbGFnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQdrZXlOb3RlAgUEYWRkcgUFYXJ0SWQFBG5vdGUFA25pbAkAAgEJAKwCAgIOVW5rbm93IHN0YXR1cyAFBGZsYWcJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBDWRlbGV0ZUFydHdvcmsCBWFydElkBGFkZHIEDSR0MDI1ODU4MjU4OTIJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDI1ODU4MjU4OTICXzEEBmNhbGxlcggFDSR0MDI1ODU4MjU4OTICXzIECWFkZHJUb1VzZQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIFBGFkZHIFBmNhbGxlcgQKZW50cnlFeGlzdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQEOZ2V0U3RyaW5nQnlLZXkBCQEHa2V5TmFtZQIFCWFkZHJUb1VzZQUFYXJ0SWQCIE5vIGFydCBtYXRjaGluZyBmb3IgdGhpcyBhZGRyZXNzAwkAAAIFCmVudHJ5RXhpc3QCAAkAAgECIE5vIGFydCBtYXRjaGluZyBmb3IgdGhpcyBhZGRyZXNzBApzaGEyNTZIYXNoCQEOZ2V0U3RyaW5nQnlLZXkBCQERa2V5SGFzaEJ5VHhpZEFkZHICBQlhZGRyVG9Vc2UFBWFydElkBAZzaWduSUQDCQAAAgUKc2hhMjU2SGFzaAIACQEOZ2V0U3RyaW5nQnlLZXkBCQEJa2V5U2lnbklEAgUJYWRkclRvVXNlBQVhcnRJZAIABA1zaWduSURfbGVnYWN5AwkAAAIFBnNpZ25JRAIABQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleWlkQnlTaWduaWQCBQlhZGRyVG9Vc2UFBnNpZ25JRAUDbmlsBAxkYXRhVG9EZWxldGUJAM4IAgkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5RGF0ZQIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleU5hbWUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlEZXNjAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5RGlzcGxheUNpZAIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV4cG9ydENpZAIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleUV4cG9ydEhhc2gCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ5rZXlMaWNlbmNlSGFzaAIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleUxpY2VuY2VDaWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlUeXBlAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5VGFncwIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCmtleU1heE1pbnQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlTaWduSUQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlJc3N1ZWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlPblNhbGUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlGbGFnAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEIa2V5UHJpY2UCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlBc3NldElkQWNjZXB0ZWQCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ5rZXlPd25lckJ5SGFzaAEFCnNoYTI1Nkhhc2gJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCmtleUVuZFNhbGUCBQlhZGRyVG9Vc2UFBWFydElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlOb3RlAgUJYWRkclRvVXNlBQVhcnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEKa2V5Q3Jhd2xlcgIFCWFkZHJUb1VzZQUFYXJ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleVJveWFsdGllcwIFCWFkZHJUb1VzZQUFYXJ0SWQFA25pbAUNc2lnbklEX2xlZ2FjeQMJAQEhAQkBC2lzQXJ0TWludGVkAgUJYWRkclRvVXNlBQVhcnRJZAMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwUMZGF0YVRvRGVsZXRlAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgUMZGF0YVRvRGVsZXRlCQACAQIoQXJ0IGFscmVhZHkgbWludGVkLCB5b3UgY2Fubm90IGRlbGV0ZSBpdAFpAQtzZWxsQXJ0d29yawYFYXJ0SWQFcHJpY2UHbWF4TWludAdhc3NldElkCGJsb2NrRW5kBnB1YktleQQNJHQwMjg2NzEyODc0MQkBFWlkQ2FsbGVyRGF0ZVNwb25zb3JlZAIFAWkFBnB1YktleQQCaWQIBQ0kdDAyODY3MTI4NzQxAl8xBAZjYWxsZXIIBQ0kdDAyODY3MTI4NzQxAl8yBARkYXRlCAUNJHQwMjg2NzEyODc0MQJfMwQLaXNTcG9uc29yZWQIBQ0kdDAyODY3MTI4NzQxAl80BAthcnR3b3JrTmFtZQkBDmdldFN0cmluZ0J5S2V5AQkBB2tleU5hbWUCBQZjYWxsZXIFBWFydElkAwkAAAIFC2FydHdvcmtOYW1lAgAJAAIBAiNUaGlzIGFydCBkb2Vzbid0IG1hdGNoIHlvdXIgYWNjb3VudAQEZmxhZwkBDmdldFN0cmluZ0J5S2V5AQkBB2tleUZsYWcCBQZjYWxsZXIFBWFydElkAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIPQ0hBTkdFX1JFUVVJUkVECQDMCAICB0ZMQUdHRUQJAMwIAgIHSUxMRUdBTAUDbmlsBQRmbGFnCQACAQIPRmxhZ2dlZCBhcnR3b3JrBAZiaWROYnIJAQ9nZXRJbnRlZ2VyQnlLZXkBCQCsAgICEmN1cnJlbnRfYmlkYW1vdW50XwUFYXJ0SWQDCQBmAgAABQhibG9ja0VuZAkAAgECDE5lZ2F0aXZlIGVuZAMDCQBmAgUIYmxvY2tFbmQAAAMJAQIhPQIFB21heE1pbnQAAQYJAQIhPQIFBXByaWNlAAAHCQACAQI6VGltZWQgb2ZmZXIgb25seSBhbGxvd2VkIGZvciB1bmlxdWUgZWRpdGlvbiBhbmQgb2ZmZXIgb25seQQKYmFzZUhlaWdodAMJAAACBQhibG9ja0VuZAAAAAAFBmhlaWdodAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAQUFcHJpY2UJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyBAphbW91bnRTb2xkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBCWtleUlzc3VlZAIFBmNhbGxlcgUFYXJ0SWQECm1heENhblNlbGwJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEKa2V5TWF4TWludAIFBmNhbGxlcgUFYXJ0SWQDCQBmAgUHbWF4TWludABkCQACAQIcMTAwIGVkaXRpb25zIG1heCBwZXIgYXJ0d29yawMDCQECIT0CBQphbW91bnRTb2xkAAAJAAACBQphbW91bnRTb2xkBQptYXhDYW5TZWxsBwkAAgECFE1heCBlZGl0aW9uIHJlYWNoZWQuAwMJAGYCBQphbW91bnRTb2xkAAAJAQIhPQIFCm1heENhblNlbGwFB21heE1pbnQHCQACAQImQ2Fubm90IGNoYW5nZSBtYXhpbXVtIGlzc3VhYmxlIGFueW1vcmUDAwkAZgIFBmJpZE5icgAACQECIT0CBQptYXhDYW5TZWxsBQdtYXhNaW50BwkAAgECMUNhbm5vdCBjaGFuZ2UgbWF4aW11bSBpc3N1YWJsZSB3aXRoIGFjdGl2ZSBvcmRlcnMECnNlbGxTdGF0dXMDAwkAZgIFBXByaWNlAAAJAGYCBQdtYXhNaW50AAAHBgcECnR4VG9DYWxsZXIDBQtpc1Nwb25zb3JlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAAFBHVuaXQFA25pbAUDbmlsCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQlrZXlPblNhbGUCBQZjYWxsZXIFBWFydElkBQpzZWxsU3RhdHVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEIa2V5UHJpY2UCBQZjYWxsZXIFBWFydElkBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCmtleU1heE1pbnQCBQZjYWxsZXIFBWFydElkBQdtYXhNaW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlBc3NldElkQWNjZXB0ZWQCBQZjYWxsZXIFBWFydElkBQdhc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEKa2V5RW5kU2FsZQIFBmNhbGxlcgUFYXJ0SWQJAGQCBQpiYXNlSGVpZ2h0BQhibG9ja0VuZAUDbmlsBQp0eFRvQ2FsbGVyAWkBCmJ1eUFydHdvcmsCBWFydElkBmlzc3VlcgkBB2J1eU1pbnQGBQFpBQVhcnRJZAUGaXNzdWVyAgACAAIAAWkBBnNldEJpZAIFYXJ0SWQGaXNzdWVyBA0kdDAzMTExNDMxMTU0CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAzMTExNDMxMTU0Al8xBAZjYWxsZXIIBQ0kdDAzMTExNDMxMTU0Al8yBARkYXRlCAUNJHQwMzExMTQzMTE1NAJfMwQNJHQwMzExNTkzMTE5NQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAzMTE1OTMxMTk1Al8xBAZhbW91bnQIBQ0kdDAzMTE1OTMxMTk1Al8yBAdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAQIYmxvY2tFbmQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEKa2V5RW5kU2FsZQIFBmlzc3VlcgUFYXJ0SWQDAwkBAiE9AgUIYmxvY2tFbmQAAAkAZwIFBmhlaWdodAUIYmxvY2tFbmQHCQACAQILU2FsZSBlbmRlZC4EBmJpZE5icgkBD2dldEludGVnZXJCeUtleQEJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQVhcnRJZAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQISYXNzZXQgbm90IGFjY2VwdGVkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAQUGYW1vdW50CQACAQIOV3JvbmcgbWluIHNlbGwECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEJa2V5SXNzdWVkAgUGaXNzdWVyBQVhcnRJZAQKbWF4Q2FuU2VsbAkBD2dldEludGVnZXJCeUtleQEJAQprZXlNYXhNaW50AgUGaXNzdWVyBQVhcnRJZAMJAGcCAAAFCm1heENhblNlbGwJAAIBAiNObyBtYXggZWRpdGlvbiBzZXQgZm9yIHRoaXMgYXJ0d29yawMJAGcCBQphbW91bnRTb2xkBQptYXhDYW5TZWxsCQACAQIYU29sZCBvdXQsIHlvdSBjYW5ub3QgYmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgRiaWRfBQVhcnRJZAIBXwUGaXNzdWVyAgFfBQZjYWxsZXICAV8FAmlkAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICBQdhc3NldElkAgFfCQCkAwEFBmFtb3VudAIBXwkApAMBBQRkYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICEmN1cnJlbnRfYmlkYW1vdW50XwUFYXJ0SWQJAGQCBQZiaWROYnIAAQUDbmlsAWkBCWFjY2VwdEJpZAUFYXJ0SWQGaXNzdWVyBWJpZElkCGJpZE93bmVyBnB1YktleQkBB2J1eU1pbnQGBQFpBQVhcnRJZAUGaXNzdWVyBQViaWRJZAUIYmlkT3duZXIFBnB1YktleQFpAQljYW5jZWxCaWQEBWFydElkBmlzc3VlcgViaWRJZAhiaWRPd25lcgQNJHQwMzI1MTkzMjU4MAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMzI1MTkzMjU4MAJfMQQGY2FsbGVyCAUNJHQwMzI1MTkzMjU4MAJfMgQEZGF0ZQgFDSR0MDMyNTE5MzI1ODACXzMDAwkBAiE9AgUGY2FsbGVyBQhiaWRPd25lcgkBAiE9AgUGY2FsbGVyBQZpc3N1ZXIHCQACAQIZWW91IGNhbm5vdCBkbyB0aGlzIGFjdGlvbgQNcmV0dXJuTW9uZXlUbwMJAAACBQZjYWxsZXIFBmlzc3VlcgUIYmlkT3duZXIFBmNhbGxlcgQGYmlkTmJyCQEPZ2V0SW50ZWdlckJ5S2V5AQkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FBWFydElkBApiaWREYXRhS2V5CQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICBGJpZF8FBWFydElkAgFfBQZpc3N1ZXICAV8FCGJpZE93bmVyAgFfBQViaWRJZAQHYmlkRGF0YQkBDmdldFN0cmluZ0J5S2V5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg1CaWQgbm90IGZvdW5kBApiaWREYXRhQXJyCQC1CQIFB2JpZERhdGECAV8EB2Fzc2V0SWQJAQ1nZXRCaWRBc3NldElkAQkAkQMCBQpiaWREYXRhQXJyAAAECWJpZFN0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQpiaWREYXRhS2V5AgVfT1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUKYmlkRGF0YUtleQIBXwUJYmlkU3RhdHVzCQCsAgIJAKwCAgUHYmlkRGF0YQIBXwkApAMBBQRkYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgICEmN1cnJlbnRfYmlkYW1vdW50XwUFYXJ0SWQJAGUCBQZiaWROYnIAAQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUNcmV0dXJuTW9uZXlUbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmJpZERhdGFBcnIAAQUHYXNzZXRJZAUDbmlsAQJ0eAEIdmVyaWZpZXIABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwAwMDAwkAAAIIBQNpbnYIZnVuY3Rpb24CCmFkZEFydHdvcmsJAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MACwMDAwMJAAACCAUDaW52CGZ1bmN0aW9uAg11cGRhdGVBcnR3b3JrCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAwDAwMDCQAAAggFA2ludghmdW5jdGlvbgILc2VsbEFydHdvcmsJAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MABQMDAwMJAAACCAUDaW52CGZ1bmN0aW9uAglhY2NlcHRCaWQJAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAMgTAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MABAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQPuQ30=", "height": 2792058, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BTj7h45K9FXppD4mCBQtQb4exvYv6cbp6jzd8eh26ecS Next: ABWxagGLcsdqJyrPGkwc5k9pchNviF2FjZasR5GfntcT Diff:
OldNewDifferences
532532 then [ScriptTransfer(Address(fromBase58String(g)), if ((be == s))
533533 then (bY - bZ)
534534 else (cr - cp), s), ScriptTransfer(Address(fromBase58String(bT)), bZ, be)]
535- else [ScriptTransfer(Address(fromBase58String(g)), bY, be)]
535+ else if (true)
536+ then throw(((((toString(bY) + " ") + toString(bZ)) + " ") + toString(cb)))
537+ else [ScriptTransfer(Address(fromBase58String(g)), bY, be)]
536538 let ct = if ((ca != 0))
537539 then [ScriptTransfer(Address(fromBase58String(bV)), ca, be), ScriptTransfer(Address(fromBase58String(bE)), (cb - ca), be)]
538540 else [ScriptTransfer(Address(fromBase58String(bE)), cb, be)]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "2.0.0"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 let d = false
1010
1111 let e = value(addressFromString(b("conf_oracle_fee")))
1212
1313 let f = value(addressFromString(b("conf_signweb_dapp")))
1414
1515 let g = b("conf_fee_receiver")
1616
1717 let h = if (d)
1818 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1919 else value(addressFromString(b("conf_users_dapp")))
2020
2121 let i = value(addressFromString(b("conf_whitelist_dapp")))
2222
2323 let j = b("conf_puzzle_art_pool")
2424
2525 let k = b("conf_accepted_asset_USDT_PP")
2626
2727 let l = b("conf_accepted_asset_ART")
2828
2929 let m = b("conf_accepted_asset_USDC_PP")
3030
3131 let n = b("conf_accepted_asset_EAST")
3232
3333 let o = b("conf_accepted_asset_PUZZLE")
3434
3535 let p = b("conf_accepted_asset_ETH_PP")
3636
3737 let q = "WAVES"
3838
3939 let r = fromBase58String(k)
4040
4141 let s = fromBase58String(l)
4242
4343 let t = fromBase58String(m)
4444
4545 let u = fromBase58String(n)
4646
4747 let v = fromBase58String(o)
4848
4949 let w = fromBase58String(p)
5050
5151 let x = base58''
5252
5353 let y = [k, l, m, n, o, q, p]
5454
5555 let z = b("conf_admin_1")
5656
5757 func A (c) = valueOrErrorMessage(getInteger(e, c), "Integer undefine or 0 in oracle")
5858
5959
6060 func B (c) = valueOrElse(getInteger(this, c), 0)
6161
6262
6363 func C (c) = valueOrElse(getInteger(i, c), 0)
6464
6565
6666 func D (c) = valueOrElse(getBoolean(this, c), false)
6767
6868
6969 let E = 8
7070
7171 let F = b("conf_default_licence")
7272
7373 let G = b("conf_default_licence_hash")
7474
7575 let H = valueOrElse(getBoolean(h, "conf_dapp_is_running"), true)
7676
7777 let I = valueOrElse(getString(h, "conf_maintenance_msg"), "")
7878
7979 let J = "SUSPENDED"
8080
8181 let K = "REMOVED"
8282
8383 let L = "UNREGISTERED"
8484
8585 let M = "ALLOWED"
8686
8787 let N = A(("certification_fee_" + toBase58String(s)))
8888
8989 let O = A(("mint_fee_" + toBase58String(s)))
9090
9191 func P (c) = valueOrElse(getInteger(this, c), 1000)
9292
9393
9494 func Q (R) = if (contains(R, "/"))
9595 then if (if ((76 > size(R)))
9696 then (size(split(R, "/")[0]) == 59)
9797 else false)
9898 then (16 > size(split(R, "/")[1]))
9999 else false
100100 else false
101101
102102
103103 func S (T) = (size(T) == 64)
104104
105105
106106 func U (V) = ("user_status_" + V)
107107
108108
109109 func W (V,X) = ((("art_date_" + X) + "_") + V)
110110
111111
112112 func Y (V,X) = ((("art_name_" + X) + "_") + V)
113113
114114
115115 func Z (V,X) = ((("art_desc_" + X) + "_") + V)
116116
117117
118118 func aa (V,X) = ((("art_display_cid_" + X) + "_") + V)
119119
120120
121121 func ab (V,X) = ((("art_export_hash_" + X) + "_") + V)
122122
123123
124124 func ac (V,X) = ((("art_export_cid_" + X) + "_") + V)
125125
126126
127127 func ad (V,X) = ((("art_maxmint_" + X) + "_") + V)
128128
129129
130130 func ae (V,X) = ((("art_signid_" + X) + "_") + V)
131131
132132
133133 func af (V,X) = ((("art_issued_" + X) + "_") + V)
134134
135135
136136 func ag (V,X) = ((("art_onsale_" + X) + "_") + V)
137137
138138
139139 func ah (V,X) = ((("art_licence_hash_" + X) + "_") + V)
140140
141141
142142 func ai (V,X) = ((("art_licence_cid_" + X) + "_") + V)
143143
144144
145145 func aj (V,X) = ((("art_tags_" + X) + "_") + V)
146146
147147
148148 func ak (V,X) = ((("art_type_" + X) + "_") + V)
149149
150150
151151 func al (V,X) = ((("art_note_" + X) + "_") + V)
152152
153153
154154 func am (V,X) = ((("art_crawler_cid_" + X) + "_") + V)
155155
156156
157157 func an (V,X) = ((("art_royalties_" + X) + "_") + V)
158158
159159
160160 func ao (V,X) = ((("art_price_" + X) + "_") + V)
161161
162162
163163 func ap (V,X) = ((("art_endsale_" + X) + "_") + V)
164164
165165
166166 func aq (V,X) = ((("art_assetAccepted_" + X) + "_") + V)
167167
168168
169169 func ar (V,X) = ((("art_flag_" + X) + "_") + V)
170170
171171
172172 func as (at) = ("artist_agent_" + at)
173173
174174
175175 func au (at) = ("artist_agent_primary_" + at)
176176
177177
178178 func av (at) = ("artist_public_agent_" + at)
179179
180180
181181 func aw (at) = ("artist_public_agent_primary_" + at)
182182
183183
184184 func ax (V,ay) = ((("get_hashbytxidaddr_" + ay) + "_") + V)
185185
186186
187187 func az (aA) = ("get_owner_by_hash_" + aA)
188188
189189
190190 func aB (V,aC) = ((("get_artidbysignid_" + aC) + "_") + V)
191191
192192
193193 func aD (aE,aF,aG) = if (!(Q(aE)))
194194 then throw("Wrong Display CID")
195195 else if (!(Q(aF)))
196196 then throw("Wrong Export CID")
197197 else if (if ((aG != ""))
198198 then !(Q(aG))
199199 else false)
200200 then throw("Wrong Licence CID")
201201 else true
202202
203203
204204 func aH (aI,aJ) = if (!(S(aI)))
205205 then throw("Export Hash 64 char. max")
206206 else if (!(S(aJ)))
207207 then throw("Licence Hash 64 char. max")
208208 else true
209209
210210
211211 func aK (aL,aM) = if ((size(aL) == 0))
212212 then throw("Field cannot be is empty")
213213 else if ((size(aL) > aM))
214214 then throw((aL + " is too long"))
215215 else true
216216
217217
218218 func aN (V) = {
219219 let aO = valueOrElse(getString(h, U(V)), L)
220220 if (if ((aO == L))
221221 then true
222222 else (aO == M))
223223 then "Register this account first with \"Account\" tab"
224224 else if ((aO == J))
225225 then "Account suspended"
226226 else if ((aO == K))
227227 then "Account removed"
228228 else ""
229229 }
230230
231231
232232 func aP (aG,aJ) = {
233233 let R = if ((size(aG) == 0))
234234 then F
235235 else aG
236236 let T = if ((size(aJ) == 0))
237237 then G
238238 else aJ
239239 $Tuple2(R, T)
240240 }
241241
242242
243243 func aQ (V,aE,aF,aR,aI,aS,aT,aU,aV,aW) = {
244244 let aX = aN(V)
245245 if ((aX != ""))
246246 then throw(aX)
247247 else if ((size(aE) == 0))
248248 then throw("Display CID cannot be empty")
249249 else if (!(aD(aE, aF, aR)))
250250 then throw("Problem with CID")
251251 else if (!(aH(aI, aS)))
252252 then throw("Problem with Hashes")
253253 else if (!(aK(aT, 100)))
254254 then throw("100 Char. max name")
255255 else if (!(aK(aU, 1000)))
256256 then throw("1000 Char. max description")
257257 else if (if ((0 > aW))
258258 then true
259259 else (aW > 1000))
260260 then throw("Royalties cannot be less than 0% or higher than 10%")
261261 else if ((size(split(aV, ",")) > 5))
262262 then throw("5 tags max.")
263263 else ""
264264 }
265265
266266
267267 func aY (aZ) = if ((size(aZ.payments) == 0))
268268 then throw("No payment attached")
269269 else {
270270 let ba = value(aZ.payments[0])
271271 let bb = value(ba.amount)
272272 $Tuple2(ba, bb)
273273 }
274274
275275
276276 func bc (aZ) = {
277277 let bd = aY(aZ)
278278 let ba = bd._1
279279 let bb = bd._2
280280 let be = if (if (isDefined(ba.assetId))
281281 then (ba.assetId == s)
282282 else false)
283283 then ba.assetId
284284 else throw("Only SIGN token accepted as transaction fee")
285285 if ((bb != N))
286286 then throw(("Payment amount should be " + toString(N)))
287287 else $Tuple2(bb, be)
288288 }
289289
290290
291291 func bf (bg,X) = {
292292 let bh = getInteger(this, af(bg, X))
293293 if ($isInstanceOf(bh, "Int"))
294294 then {
295295 let bi = bh
296296 if ((bi != 0))
297297 then true
298298 else false
299299 }
300300 else false
301301 }
302302
303303
304304 func bj (aZ,bk,bl) = {
305305 let bm = aY(aZ)
306306 let ba = bm._1
307307 let bb = bm._2
308308 let be = if (!(isDefined(ba.assetId)))
309309 then unit
310310 else if (if ((size(bk) > 0))
311311 then (toBase58String(value(ba.assetId)) == bk)
312312 else false)
313313 then ba.assetId
314314 else throw("Wrong asset id")
315315 if (if ((be == unit))
316316 then (bk != "")
317317 else false)
318318 then throw("Wrong asset id")
319319 else if ((bl != bb))
320320 then throw("Payment don't match")
321321 else $Tuple2(bb, be)
322322 }
323323
324324
325325 func bn (be) = if (!(containsElement(y, be)))
326326 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
327327 else true
328328
329329
330330 func bo (bp) = if ((0 >= bp))
331331 then throw("Wrong minimum sell price")
332332 else true
333333
334334
335335 func bq (be) = if ((be == "WAVES"))
336336 then unit
337337 else fromBase58String(be)
338338
339339
340340 func br (bs) = {
341341 let bt = b((bs + "_OPEN"))
342342 if ((bt == ""))
343343 then throw("Bid not found")
344344 else {
345345 let bu = split(bt, "_")
346346 let bv = parseIntValue(bu[1])
347347 let bw = bq(bu[0])
348348 if ((0 >= bv))
349349 then throw("Wrong amount")
350350 else $Tuple2(bv, bw)
351351 }
352352 }
353353
354354
355355 func bx (aZ,by) = if (!(H))
356356 then throw(I)
357357 else {
358358 let bz = if ((by != ""))
359359 then valueOrElse(C((toString(addressFromPublicKey(fromBase58String(by))) + "_free_txs")), 0)
360360 else 0
361361 let V = if (if ((toBase58String(aZ.caller.bytes) == toString(this)))
362362 then (bz > 0)
363363 else false)
364364 then toString(addressFromPublicKey(fromBase58String(by)))
365365 else toBase58String(aZ.caller.bytes)
366366 let bA = if (if ((by != ""))
367367 then (bz > 0)
368368 else false)
369369 then invoke(i, "useFreeTx", [toString(addressFromPublicKey(fromBase58String(by)))], nil)
370370 else unit
371371 if ((bA == bA))
372372 then $Tuple4(toBase58String(aZ.transactionId), V, lastBlock.timestamp, (bz > 0))
373373 else throw("Strict value is not equal to itself.")
374374 }
375375
376376
377377 func bB (aZ) = if (!(H))
378378 then throw(I)
379379 else $Tuple3(toBase58String(aZ.transactionId), toBase58String(aZ.caller.bytes), lastBlock.timestamp)
380380
381381
382382 func bC (be) = {
383383 let bh = be
384384 if ($isInstanceOf(bh, "ByteVector"))
385385 then {
386386 let bi = bh
387387 assetBalance(this, bi)
388388 }
389389 else wavesBalance(this).available
390390 }
391391
392392
393393 func bD (aZ,X,bE,bF,bG,by) = {
394394 let bH = bx(aZ, by)
395395 let bI = bH._1
396396 let V = bH._2
397397 let bJ = bH._3
398398 let bz = bH._4
399399 let bK = if (if (if ((V == bE))
400400 then (bG != "")
401401 else false)
402402 then (bF != "")
403403 else false)
404404 then true
405405 else false
406406 if (if (bK)
407407 then (V != bE)
408408 else false)
409409 then throw("You cannot do this action")
410410 else {
411411 let bL = B(ap(V, X))
412412 if (if (if ((bL != 0))
413413 then (height >= bL)
414414 else false)
415415 then !(bK)
416416 else false)
417417 then throw("Sale ended.")
418418 else {
419419 let bM = (V == bE)
420420 let bN = B("total_nft_issued")
421421 let bO = b(Y(bE, X))
422422 if ((bO == ""))
423423 then throw("Art doesn't exist")
424424 else {
425425 let bP = D(ag(bE, X))
426426 let bQ = B(af(bE, X))
427427 let bl = if (bM)
428428 then O
429429 else B(ao(bE, X))
430430 let bk = if (bM)
431431 then toBase58String(s)
432432 else b(aq(bE, X))
433433 let bR = B(ad(bE, X))
434434 if (if (if (!(bK))
435435 then !(bM)
436436 else false)
437437 then if (if ((0 >= bl))
438438 then true
439439 else !(bP))
440440 then true
441441 else (0 >= bR)
442442 else false)
443443 then throw("Art not for sale")
444444 else if (if (if (!(bK))
445445 then bM
446446 else false)
447447 then (0 >= bR)
448448 else false)
449449 then throw("Max issuable not set")
450450 else {
451451 let aX = aN(bE)
452452 if (if (bK)
453453 then (aX != "")
454454 else false)
455455 then throw(aX)
456456 else {
457457 let bs = ((((((("bid_" + X) + "_") + bE) + "_") + bG) + "_") + bF)
458458 let bS = if (bK)
459459 then br(bs)
460460 else bj(aZ, bk, bl)
461461 let bb = bS._1
462462 let be = bS._2
463463 let bT = valueOrElse(getString(h, as(bE)), g)
464464 let bU = valueOrElse(getInteger(h, au(bE)), 0)
465465 let bV = valueOrElse(getString(h, av(bE)), g)
466466 let bW = valueOrElse(getInteger(h, aw(bE)), 0)
467467 let bX = C(bE)
468468 let bY = fraction(bb, E, 100)
469469 let bZ = if (if (if ((bT != g))
470470 then (bU > 0)
471471 else false)
472472 then (height > bX)
473473 else false)
474474 then fraction(bb, bU, 10000)
475475 else 0
476476 let ca = if (if (if ((bV != g))
477477 then (bW > 0)
478478 else false)
479479 then (height > bX)
480480 else false)
481481 then fraction(bb, bW, 10000)
482482 else 0
483483 let cb = (bb - bY)
484484 if ((bQ == bR))
485485 then throw("Art sold out")
486486 else {
487487 let cc = (bQ + 1)
488488 let cd = ((((((((("Creator: " + bE) + ",
489489 ArtID: ") + X) + ",
490490 Artwork name: ") + bO) + ",
491491 Issue: ") + toString(cc)) + "/") + toString(bR))
492492 let ce = Issue(("SA_" + toString((bN + 1))), cd, 1, 0, false)
493493 let cf = calculateAssetId(ce)
494494 let cg = if (if ((cc == bR))
495495 then true
496496 else !(bP))
497497 then false
498498 else true
499499 let ch = if (if (if ((V == bE))
500500 then (bG != "")
501501 else false)
502502 then (bF != "")
503503 else false)
504504 then addressFromStringValue(bG)
505505 else aZ.caller
506506 let ci = if (!(isDefined(be)))
507507 then "WAVES"
508508 else toBase58String(value(be))
509509 let bt = b((bs + "_OPEN"))
510510 let cj = DeleteEntry((bs + "_OPEN"))
511511 let ck = StringEntry((bs + "_CLOSED"), ((bt + "_") + toString(bJ)))
512512 let cl = ((((((("art_sold_" + toString(cc)) + "_of_") + toString(bR)) + "_") + X) + "_") + bE)
513513 let cm = if (!(bK))
514514 then ((((((((((V + "_") + toString(bJ)) + "_") + bI) + "_") + toString(bl)) + "_") + bk) + "_") + toBase58String(cf))
515515 else ((((((((((toString(ch) + "_") + toString(bJ)) + "_") + bI) + "_") + toString(bb)) + "_") + ci) + "_") + toBase58String(cf))
516516 let cn = StringEntry(cl, cm)
517517 let co = if ((bZ != 0))
518518 then (bY - bZ)
519519 else bY
520520 let cp = bC(s)
521521 if ((cp == cp))
522522 then {
523523 let cq = if ((be != s))
524524 then invoke(Address(fromBase58String(j)), "swap", [l, 1], [AttachedPayment(be, co)])
525525 else unit
526526 if ((cq == cq))
527527 then {
528528 let cr = bC(s)
529529 if ((cr == cr))
530530 then {
531531 let cs = if ((bZ != 0))
532532 then [ScriptTransfer(Address(fromBase58String(g)), if ((be == s))
533533 then (bY - bZ)
534534 else (cr - cp), s), ScriptTransfer(Address(fromBase58String(bT)), bZ, be)]
535- else [ScriptTransfer(Address(fromBase58String(g)), bY, be)]
535+ else if (true)
536+ then throw(((((toString(bY) + " ") + toString(bZ)) + " ") + toString(cb)))
537+ else [ScriptTransfer(Address(fromBase58String(g)), bY, be)]
536538 let ct = if ((ca != 0))
537539 then [ScriptTransfer(Address(fromBase58String(bV)), ca, be), ScriptTransfer(Address(fromBase58String(bE)), (cb - ca), be)]
538540 else [ScriptTransfer(Address(fromBase58String(bE)), cb, be)]
539541 let cu = if (bz)
540542 then [ScriptTransfer(Address(fromBase58String(V)), 0, unit)]
541543 else nil
542544 let cv = ((([IntegerEntry(af(bE, X), cc), StringEntry(("nft_" + toBase58String(cf)), cl), IntegerEntry("total_nft_issued", (bN + 1)), IntegerEntry(ap(bE, X), 0), BooleanEntry(ag(bE, X), cg), ce, ScriptTransfer(ch, 1, cf)] ++ cs) ++ ct) ++ cu)
543545 if (bK)
544546 then [cn, ck, cj] :: cv
545547 else cn :: cv
546548 }
547549 else throw("Strict value is not equal to itself.")
548550 }
549551 else throw("Strict value is not equal to itself.")
550552 }
551553 else throw("Strict value is not equal to itself.")
552554 }
553555 }
554556 }
555557 }
556558 }
557559 }
558560 }
559561
560562
561563 func cw (cx) = {
562564 let bh = cx
563565 if ($isInstanceOf(bh, "String"))
564566 then {
565567 let cy = bh
566568 cy
567569 }
568570 else throw("Sponsored Public Key String expected")
569571 }
570572
571573
572574 @Callable(cz)
573575 func setConf (c,cA) = {
574576 let V = toString(cz.caller)
575577 if (containsElement([z, toString(this)], V))
576578 then if (contains(c, "conf_"))
577579 then [StringEntry(c, cA)]
578580 else throw("Entries starting with conf_ only")
579581 else throw("You are not allowed to change this")
580582 }
581583
582584
583585
584586 @Callable(aZ)
585587 func addArtwork (aT,aU,aV,cB,aE,aI,aF,aJ,aG,cC,aW,by) = {
586588 let cD = bx(aZ, by)
587589 let X = cD._1
588590 let V = cD._2
589591 let bJ = cD._3
590592 let bz = cD._4
591593 let cE = aP(aG, aJ)
592594 let aR = cE._1
593595 let aS = cE._2
594596 let cF = aQ(V, aE, aF, aR, aI, aS, aT, aU, aV, aW)
595597 if ((cF != ""))
596598 then throw("Something went wrong!")
597599 else {
598600 let cG = (C((V + "_free_drops")) > 0)
599601 let cH = if (cG)
600602 then $Tuple2(0, s)
601603 else bc(aZ)
602604 let bb = cH._1
603605 let be = cH._2
604606 if (!(isDefined(bb)))
605607 then throw("Something went wrong")
606608 else {
607609 let cI = if (cG)
608610 then invoke(i, "useFreeDrop", [V], nil)
609611 else unit
610612 if ((cI == cI))
611613 then {
612614 let cu = if (bz)
613615 then [ScriptTransfer(Address(fromBase58String(V)), 0, unit)]
614616 else nil
615617 ([IntegerEntry(W(V, X), bJ), StringEntry(Y(V, X), aT), StringEntry(Z(V, X), aU), StringEntry(aa(V, X), aE), StringEntry(ac(V, X), aF), StringEntry(ab(V, X), aI), StringEntry(ah(V, X), aS), StringEntry(ai(V, X), aR), StringEntry(ak(V, X), cB), StringEntry(aj(V, X), aV), IntegerEntry(ad(V, X), 0), IntegerEntry(af(V, X), 0), BooleanEntry(ag(V, X), false), StringEntry(am(V, X), cC), IntegerEntry(an(V, X), aW), ScriptTransfer(Address(fromBase58String(g)), bb, s)] ++ cu)
616618 }
617619 else throw("Strict value is not equal to itself.")
618620 }
619621 }
620622 }
621623
622624
623625
624626 @Callable(aZ)
625627 func updateArtwork (ay,aT,aU,aV,cB,aE,aI,aF,aJ,aG,cC,aW,by) = if (!(H))
626628 then throw(I)
627629 else {
628630 let cJ = bx(aZ, by)
629631 let bI = cJ._1
630632 let V = cJ._2
631633 let bJ = cJ._3
632634 let bz = cJ._4
633635 let cK = aP(aG, aJ)
634636 let aR = cK._1
635637 let aS = cK._2
636638 let cF = aQ(V, aE, aF, aR, aI, aS, aT, aU, aV, aW)
637639 if ((cF != ""))
638640 then throw("Something went wrong!")
639641 else {
640642 let cL = b(Y(V, ay))
641643 if ((cL == ""))
642644 then throw("Entry not found")
643645 else {
644646 let cM = b(ar(V, ay))
645647 if ((cM == "ILLEGAL"))
646648 then throw("Cannot update ILLEGAL artwork")
647649 else if (!(bf(V, ay)))
648650 then {
649651 let cu = if (bz)
650652 then [ScriptTransfer(Address(fromBase58String(V)), 0, unit)]
651653 else nil
652654 ([StringEntry(Y(V, ay), aT), StringEntry(Z(V, ay), aU), StringEntry(aa(V, ay), aE), StringEntry(ac(V, ay), aF), StringEntry(ab(V, ay), aI), StringEntry(ai(V, ay), aR), StringEntry(ah(V, ay), aS), StringEntry(aj(V, ay), aV), StringEntry(ak(V, ay), cB), StringEntry(am(V, ay), cC), IntegerEntry(an(V, ay), aW)] ++ cu)
653655 }
654656 else throw("Already minted")
655657 }
656658 }
657659 }
658660
659661
660662
661663 @Callable(aZ)
662664 func flagArtwork (X,cN,cM,cO) = {
663665 let cP = bB(aZ)
664666 let bI = cP._1
665667 let V = cP._2
666668 if (containsElement([z, toString(this)], V))
667669 then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cM))
668670 then [StringEntry(ar(cN, X), cM), StringEntry(al(cN, X), cO)]
669671 else throw(("Unknow status " + cM))
670672 else throw("You are not allowed")
671673 }
672674
673675
674676
675677 @Callable(aZ)
676678 func deleteArtwork (X,cN) = {
677679 let cQ = bB(aZ)
678680 let bI = cQ._1
679681 let V = cQ._2
680682 let bg = if (containsElement([z, toString(this)], V))
681683 then cN
682684 else V
683685 let cL = valueOrErrorMessage(b(Y(bg, X)), "No art matching for this address")
684686 if ((cL == ""))
685687 then throw("No art matching for this address")
686688 else {
687689 let aA = b(ax(bg, X))
688690 let cR = if ((aA == ""))
689691 then b(ae(bg, X))
690692 else ""
691693 let cS = if ((cR == ""))
692694 then nil
693695 else [DeleteEntry(aB(bg, cR))]
694696 let cT = ([DeleteEntry(W(bg, X)), DeleteEntry(Y(bg, X)), DeleteEntry(Z(bg, X)), DeleteEntry(aa(bg, X)), DeleteEntry(ac(bg, X)), DeleteEntry(ab(bg, X)), DeleteEntry(ah(bg, X)), DeleteEntry(ai(bg, X)), DeleteEntry(ak(bg, X)), DeleteEntry(aj(bg, X)), DeleteEntry(ad(bg, X)), DeleteEntry(ae(bg, X)), DeleteEntry(af(bg, X)), DeleteEntry(ag(bg, X)), DeleteEntry(ar(bg, X)), DeleteEntry(ao(bg, X)), DeleteEntry(aq(bg, X)), DeleteEntry(az(aA)), DeleteEntry(ap(bg, X)), DeleteEntry(al(bg, X)), DeleteEntry(am(bg, X)), DeleteEntry(an(bg, X))] ++ cS)
695697 if (!(bf(bg, X)))
696698 then if (!(H))
697699 then throw(I)
698700 else cT
699701 else if (containsElement([z, toString(this)], V))
700702 then cT
701703 else throw("Art already minted, you cannot delete it")
702704 }
703705 }
704706
705707
706708
707709 @Callable(aZ)
708710 func sellArtwork (X,bp,cU,be,bL,by) = {
709711 let cV = bx(aZ, by)
710712 let bI = cV._1
711713 let V = cV._2
712714 let bJ = cV._3
713715 let bz = cV._4
714716 let bO = b(Y(V, X))
715717 if ((bO == ""))
716718 then throw("This art doesn't match your account")
717719 else {
718720 let cM = b(ar(V, X))
719721 if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cM))
720722 then throw("Flagged artwork")
721723 else {
722724 let cW = B(("current_bidamount_" + X))
723725 if ((0 > bL))
724726 then throw("Negative end")
725727 else if (if ((bL > 0))
726728 then if ((cU != 1))
727729 then true
728730 else (bp != 0)
729731 else false)
730732 then throw("Timed offer only allowed for unique edition and offer only")
731733 else {
732734 let cX = if ((bL == 0))
733735 then 0
734736 else height
735737 if (!(bn(be)))
736738 then throw("Something went wrong!")
737739 else if (!(bo(bp)))
738740 then throw("Something went wrong!")
739741 else {
740742 let aX = aN(V)
741743 if ((aX != ""))
742744 then throw(aX)
743745 else {
744746 let bQ = B(af(V, X))
745747 let bR = B(ad(V, X))
746748 if ((cU > 100))
747749 then throw("100 editions max per artwork")
748750 else if (if ((bQ != 0))
749751 then (bQ == bR)
750752 else false)
751753 then throw("Max edition reached.")
752754 else if (if ((bQ > 0))
753755 then (bR != cU)
754756 else false)
755757 then throw("Cannot change maximum issuable anymore")
756758 else if (if ((cW > 0))
757759 then (bR != cU)
758760 else false)
759761 then throw("Cannot change maximum issuable with active orders")
760762 else {
761763 let cg = if (if ((bp > 0))
762764 then (cU > 0)
763765 else false)
764766 then true
765767 else false
766768 let cu = if (bz)
767769 then [ScriptTransfer(Address(fromBase58String(V)), 0, unit)]
768770 else nil
769771 ([BooleanEntry(ag(V, X), cg), IntegerEntry(ao(V, X), bp), IntegerEntry(ad(V, X), cU), StringEntry(aq(V, X), be), IntegerEntry(ap(V, X), (cX + bL))] ++ cu)
770772 }
771773 }
772774 }
773775 }
774776 }
775777 }
776778 }
777779
778780
779781
780782 @Callable(aZ)
781783 func buyArtwork (X,bE) = bD(aZ, X, bE, "", "", "")
782784
783785
784786
785787 @Callable(aZ)
786788 func setBid (X,bE) = {
787789 let cY = bB(aZ)
788790 let bI = cY._1
789791 let V = cY._2
790792 let bJ = cY._3
791793 let cZ = aY(aZ)
792794 let ba = cZ._1
793795 let bb = cZ._2
794796 let be = if (!(isDefined(ba.assetId)))
795797 then "WAVES"
796798 else toBase58String(value(ba.assetId))
797799 let bL = B(ap(bE, X))
798800 if (if ((bL != 0))
799801 then (height >= bL)
800802 else false)
801803 then throw("Sale ended.")
802804 else {
803805 let cW = B(("current_bidamount_" + X))
804806 if (!(bn(be)))
805807 then throw("asset not accepted")
806808 else if (!(bo(bb)))
807809 then throw("Wrong min sell")
808810 else {
809811 let bQ = B(af(bE, X))
810812 let bR = B(ad(bE, X))
811813 if ((0 >= bR))
812814 then throw("No max edition set for this artwork")
813815 else if ((bQ >= bR))
814816 then throw("Sold out, you cannot bid")
815817 else [StringEntry((((((((("bid_" + X) + "_") + bE) + "_") + V) + "_") + bI) + "_OPEN"), ((((be + "_") + toString(bb)) + "_") + toString(bJ))), IntegerEntry(("current_bidamount_" + X), (cW + 1))]
816818 }
817819 }
818820 }
819821
820822
821823
822824 @Callable(aZ)
823825 func acceptBid (X,bE,bF,bG,by) = bD(aZ, X, bE, bF, bG, by)
824826
825827
826828
827829 @Callable(aZ)
828830 func cancelBid (X,bE,bF,bG) = {
829831 let da = bB(aZ)
830832 let bI = da._1
831833 let V = da._2
832834 let bJ = da._3
833835 if (if ((V != bG))
834836 then (V != bE)
835837 else false)
836838 then throw("You cannot do this action")
837839 else {
838840 let db = if ((V == bE))
839841 then bG
840842 else V
841843 let cW = B(("current_bidamount_" + X))
842844 let bs = ((((((("bid_" + X) + "_") + bE) + "_") + bG) + "_") + bF)
843845 let bt = b((bs + "_OPEN"))
844846 if ((bt == ""))
845847 then throw("Bid not found")
846848 else {
847849 let bu = split(bt, "_")
848850 let be = bq(bu[0])
849851 let dc = "CANCELED"
850852 [DeleteEntry((bs + "_OPEN")), StringEntry(((bs + "_") + dc), ((bt + "_") + toString(bJ))), IntegerEntry(("current_bidamount_" + X), (cW - 1)), ScriptTransfer(Address(fromBase58String(db)), parseIntValue(bu[1]), be)]
851853 }
852854 }
853855 }
854856
855857
856858 @Verifier(dd)
857859 func de () = {
858860 let bh = dd
859861 if ($isInstanceOf(bh, "InvokeScriptTransaction"))
860862 then {
861863 let df = bh
862864 if (if (if (if ((df.function == "addArtwork"))
863865 then (df.dApp == this)
864866 else false)
865867 then (df.fee == 500000)
866868 else false)
867869 then (df.feeAssetId == unit)
868870 else false)
869871 then sigVerify(dd.bodyBytes, dd.proofs[0], fromBase58String(cw(df.args[11])))
870872 else if (if (if (if ((df.function == "updateArtwork"))
871873 then (df.dApp == this)
872874 else false)
873875 then (df.fee == 500000)
874876 else false)
875877 then (df.feeAssetId == unit)
876878 else false)
877879 then sigVerify(dd.bodyBytes, dd.proofs[0], fromBase58String(cw(df.args[12])))
878880 else if (if (if (if ((df.function == "sellArtwork"))
879881 then (df.dApp == this)
880882 else false)
881883 then (df.fee == 500000)
882884 else false)
883885 then (df.feeAssetId == unit)
884886 else false)
885887 then sigVerify(dd.bodyBytes, dd.proofs[0], fromBase58String(cw(df.args[5])))
886888 else if (if (if (if ((df.function == "acceptBid"))
887889 then (df.dApp == this)
888890 else false)
889891 then (df.fee == 500000)
890892 else false)
891893 then (df.feeAssetId == unit)
892894 else false)
893895 then sigVerify_128Kb(dd.bodyBytes, dd.proofs[0], fromBase58String(cw(df.args[4])))
894896 else sigVerify(dd.bodyBytes, dd.proofs[0], dd.senderPublicKey)
895897 }
896898 else sigVerify(dd.bodyBytes, dd.proofs[0], dd.senderPublicKey)
897899 }
898900

github/deemru/w8io/873ac7e 
78.49 ms