tx · CN8pxEUGxWwQTBLb5JpN4huLZfzWk5tU6no8RX71duEP

3N1BEXuoepNEwqkbeZYKviaLQfvBQV3ibYE:  -0.02400000 Waves

2024.08.19 13:56 [3245611] smart account 3N1BEXuoepNEwqkbeZYKviaLQfvBQV3ibYE > SELF 0.00000000 Waves

{ "type": 13, "id": "CN8pxEUGxWwQTBLb5JpN4huLZfzWk5tU6no8RX71duEP", "fee": 2400000, "feeAssetId": null, "timestamp": 1724065030303, "version": 2, "chainId": 84, "sender": "3N1BEXuoepNEwqkbeZYKviaLQfvBQV3ibYE", "senderPublicKey": "6t3vrhP1jCmG7CeKBmL8hUibtdP3cMXGC2XtPYEPPC5w", "proofs": [ "4iTTfs5ZVo3xus2ZbVffWVWK5HfqAit4xRRNnB3eRhw4Ak96JjxoJK293FNfiKYhHNdJCQyeAPGvtcH8nRqRr1nt" ], "script": "base64:BgIrCAISBQoDCAEIEgMKAQgSBAoCCAQSAwoBCBIDCgEIEgUKAwgBCBIECgIIATYACXNlcGFyYXRvcgICX18ABU1VTFQ4AIDC1y8AC3dhdmVzU3RyaW5nAgVXQVZFUwAQc3RhdHVzSW5Qcm9ncmVzcwIKaW5Qcm9ncmVzcwAOc3RhdHVzQWNjZXB0ZWQCCGFjY2VwdGVkAA5zdGF0dXNSZWplY3RlZAIIcmVqZWN0ZWQBB3dyYXBFcnIBA21zZwkAuQkCCQDMCAICGHZvdGluZ192ZXJpZmllZF92Mi5yaWRlOgkAzAgCBQNtc2cFA25pbAIBIAEIdGhyb3dFcnIBA21zZwkAAgEJAQd3cmFwRXJyAQUDbXNnAQVhc0ludAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIDSW50BAZ2YWxJbnQFByRtYXRjaDAFBnZhbEludAkAAgECG0ZhaWxlZCB0byBjYXN0IGludG8gSW50ZWdlcgEMcGFyc2VBc3NldElkAQVpbnB1dAMJAAACBQVpbnB1dAULd2F2ZXNTdHJpbmcFBHVuaXQJANkEAQUFaW5wdXQBD2Fzc2V0SWRUb1N0cmluZwEFaW5wdXQDCQAAAgUFaW5wdXQFBHVuaXQFC3dhdmVzU3RyaW5nCQDYBAEJAQV2YWx1ZQEFBWlucHV0ARBnZXRJbnRlZ2VyT3JaZXJvAgdhZGRyZXNzA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQdhZGRyZXNzBQNrZXkAAAEQZ2V0SW50ZWdlck9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQdhZGRyZXNzBQNrZXkJAQd3cmFwRXJyAQkArAICBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEQZ2V0U3RyaW5nT3JFbXB0eQIHYWRkcmVzcwNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUHYWRkcmVzcwUDa2V5AgABD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJAQd3cmFwRXJyAQkArAICBQNrZXkCDyBpcyBub3QgZGVmaW5lZAATa2V5Qm9vc3RpbmdDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yABNrZXlFbWlzc2lvbkNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIQZW1pc3Npb25Db250cmFjdAUDbmlsBQlzZXBhcmF0b3IAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgAQYm9vc3RpbmdDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUTa2V5Qm9vc3RpbmdDb250cmFjdAAQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUTa2V5RW1pc3Npb25Db250cmFjdAATYXNzZXRzU3RvcmVDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUWa2V5QXNzZXRzU3RvcmVDb250cmFjdAARa2V5RW1pc3Npb25Db25maWcJALkJAgkAzAgCAgIlcwkAzAgCAgZjb25maWcFA25pbAUJc2VwYXJhdG9yAAx3eEFzc2V0SWRTdHIJAJEDAgkAtQkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUQZW1pc3Npb25Db250cmFjdAURa2V5RW1pc3Npb25Db25maWcFCXNlcGFyYXRvcgABAAl3eEFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBBQx3eEFzc2V0SWRTdHIAFWtleVZvdGluZ1RocmVzaG9sZEFkZAkAuQkCCQDMCAICBCVzJXMJAMwIAgIPdm90aW5nVGhyZXNob2xkCQDMCAICA2FkZAUDbmlsBQlzZXBhcmF0b3IAGGtleVZvdGluZ1RocmVzaG9sZFJlbW92ZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIPdm90aW5nVGhyZXNob2xkCQDMCAICBnJlbW92ZQUDbmlsBQlzZXBhcmF0b3IAFWtleVBlcmlvZExlbmd0aFJlbW92ZQkAuQkCCQDMCAICAiVzCQDMCAICEnBlcmlvZExlbmd0aFJlbW92ZQUDbmlsBQlzZXBhcmF0b3IAEmtleU1heFBlcmlvZExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICD21heFBlcmlvZExlbmd0aAUDbmlsBQlzZXBhcmF0b3IAEmtleU1pblBlcmlvZExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICD21pblBlcmlvZExlbmd0aAUDbmlsBQlzZXBhcmF0b3IBFmtleVZvdGluZ1Jld2FyZEFzc2V0SWQCB2Fzc2V0SWQFaW5kZXgJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgITdm90aW5nUmV3YXJkQXNzZXRJZAkAzAgCBQdhc3NldElkCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yAQ9rZXlWb3RpbmdSZXdhcmQDC3VzZXJBZGRyZXNzB2Fzc2V0SWQFaW5kZXgJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXdhcmQJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCBQdhc3NldElkCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yARRrZXlUb3RhbFZvdGluZ1Jld2FyZAIHYXNzZXRJZAVpbmRleAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAhF0b3RhbFZvdGluZ1Jld2FyZAkAzAgCBQdhc3NldElkCQDMCAIJAKQDAQUFaW5kZXgFA25pbAUJc2VwYXJhdG9yABtrZXlGaW5hbGl6ZUNhbGxSZXdhcmRBbW91bnQJALkJAgkAzAgCAgIlcwkAzAgCAhhmaW5hbGl6ZUNhbGxSZXdhcmRBbW91bnQFA25pbAUJc2VwYXJhdG9yABprZXlNaW5TdWdnZXN0UmVtb3ZlQmFsYW5jZQkAuQkCCQDMCAICAiVzCQDMCAICF21pblN1Z2dlc3RSZW1vdmVCYWxhbmNlBQNuaWwFCXNlcGFyYXRvcgEPa2V5Q3VycmVudEluZGV4AQdhc3NldElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgxjdXJyZW50SW5kZXgJAMwIAgUHYXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBB2tleVZvdGUDB2Fzc2V0SWQFaW5kZXgGY2FsbGVyCQC5CQIJAMwIAgIIJXMlcyVkJXMJAMwIAgIEdm90ZQkAzAgCBQdhc3NldElkCQDMCAIJAKQDAQUFaW5kZXgJAMwIAgkApQgBBQZjYWxsZXIFA25pbAUJc2VwYXJhdG9yAQl2b3RlVmFsdWUCB2luRmF2b3IJZ3d4QW1vdW50CQC5CQIJAMwIAgIEJXMlZAkAzAgCCQClAwEFB2luRmF2b3IJAMwIAgkApAMBBQlnd3hBbW91bnQFA25pbAUJc2VwYXJhdG9yARBrZXlTdWdnZXN0SXNzdWVyAgdhc3NldElkBWluZGV4CQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICDXN1Z2dlc3RJc3N1ZXIJAMwIAgUHYXNzZXRJZAkAzAgCCQCkAwEFBWluZGV4BQNuaWwFCXNlcGFyYXRvcgEPa2V5Q2xhaW1IaXN0b3J5Awt1c2VyQWRkcmVzcwdhc3NldElkBWluZGV4CQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIHaGlzdG9yeQkAzAgCCQClCAEFC3VzZXJBZGRyZXNzCQDMCAIFB2Fzc2V0SWQJAMwIAgkApAMBBQVpbmRleAUDbmlsBQlzZXBhcmF0b3IADmtleUZlZVBlckJsb2NrCQC5CQIJAMwIAgICJXMJAMwIAgILZmVlUGVyQmxvY2sFA25pbAUJc2VwYXJhdG9yAAtmZWVQZXJCbG9jawkBEGdldEludGVnZXJPckZhaWwCBQR0aGlzBQ5rZXlGZWVQZXJCbG9jawAma2V5TWluV3hNaW5Gb3JTdWdnZXN0QWRkQW1vdW50UmVxdWlyZWQJALkJAgkAzAgCAgIlcwkAzAgCAiB3eE1pbkZvclN1Z2dlc3RBZGRBbW91bnRSZXF1aXJlZAUDbmlsBQlzZXBhcmF0b3IAI2tleVd4Rm9yU3VnZ2VzdFJlbW92ZUFtb3VudFJlcXVpcmVkCQC5CQIJAMwIAgICJXMJAMwIAgIgd3hGb3JTdWdnZXN0UmVtb3ZlQW1vdW50UmVxdWlyZWQFA25pbAUJc2VwYXJhdG9yAQ1rZXlWb3RpbmdJbmZvAgdhc3NldElkBWluZGV4CQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICCnZvdGluZ0luZm8JAMwIAgUHYXNzZXRJZAkAzAgCCQCkAwEFBWluZGV4BQNuaWwFCXNlcGFyYXRvcgEPdm90aW5nSW5mb1ZhbHVlCg1pc1Jld2FyZEV4aXN0DXJld2FyZEFzc2V0SWQMcmV3YXJkQW1vdW50CnZvdGluZ1R5cGUGc3RhdHVzEXZvdGluZ1N0YXJ0SGVpZ2h0D3ZvdGluZ0VuZEhlaWdodAt2b3Rlc1F1b3J1bQh2b3Rlc0Zvcgx2b3Rlc0FnYWluc3QJALkJAgkAzAgCAhQlcyVzJWQlcyVzJWQlZCVkJWQlZAkAzAgCCQClAwEFDWlzUmV3YXJkRXhpc3QJAMwIAgUNcmV3YXJkQXNzZXRJZAkAzAgCCQCkAwEFDHJld2FyZEFtb3VudAkAzAgCBQp2b3RpbmdUeXBlCQDMCAIFBnN0YXR1cwkAzAgCCQCkAwEFEXZvdGluZ1N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUPdm90aW5nRW5kSGVpZ2h0CQDMCAIJAKQDAQULdm90ZXNRdW9ydW0JAMwIAgkApAMBBQh2b3Rlc0ZvcgkAzAgCCQCkAwEFDHZvdGVzQWdhaW5zdAUDbmlsBQlzZXBhcmF0b3IBDWtleUFzc2V0SW1hZ2UBB2Fzc2V0SWQJALkJAgkAzAgCAgQlcyVzCQDMCAICCmFzc2V0SW1hZ2UJAMwIAgUHYXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAILdXNlckFkZHJlc3MMdGFyZ2V0SGVpZ2h0BAlnd3hBbW91bnQJAPwHBAUQYm9vc3RpbmdDb250cmFjdAIgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUMdGFyZ2V0SGVpZ2h0BQNuaWwFA25pbAkBBWFzSW50AQUJZ3d4QW1vdW50ARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcwAEByRtYXRjaDAJAKIIAQkBFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBcwUEdGhpcwEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEE21hbmFnZXJWYXVsdEFkZHJlc3MJARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAnQgCBRNtYW5hZ2VyVmF1bHRBZGRyZXNzCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yARJnZXRWb3RpbmdJbmZvUGFydHMBCnZvdGluZ0luZm8ED3ZvdGluZ0luZm9QYXJ0cwkAtQkCBQp2b3RpbmdJbmZvBQlzZXBhcmF0b3IEEGlzUmV3YXJkRXhpc3RTdHIJAJEDAgUPdm90aW5nSW5mb1BhcnRzAAEEDWlzUmV3YXJkRXhpc3QDCQAAAgUQaXNSZXdhcmRFeGlzdFN0cgIEdHJ1ZQYHBA1yZXdhcmRBc3NldElkCQCRAwIFD3ZvdGluZ0luZm9QYXJ0cwACBAxyZXdhcmRBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ92b3RpbmdJbmZvUGFydHMAAwQKdm90aW5nVHlwZQkAkQMCBQ92b3RpbmdJbmZvUGFydHMABAQGc3RhdHVzCQCRAwIFD3ZvdGluZ0luZm9QYXJ0cwAFBBF2b3RpbmdTdGFydEhlaWdodAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFD3ZvdGluZ0luZm9QYXJ0cwAGBA92b3RpbmdFbmRIZWlnaHQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ92b3RpbmdJbmZvUGFydHMABwQLdm90ZXNRdW9ydW0JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ92b3RpbmdJbmZvUGFydHMACAQIdm90ZXNGb3IJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ92b3RpbmdJbmZvUGFydHMACQQMdm90ZXNBZ2FpbnN0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUPdm90aW5nSW5mb1BhcnRzAAoJAJwKCgUNaXNSZXdhcmRFeGlzdAUNcmV3YXJkQXNzZXRJZAUMcmV3YXJkQW1vdW50BQp2b3RpbmdUeXBlBQZzdGF0dXMFEXZvdGluZ1N0YXJ0SGVpZ2h0BQ92b3RpbmdFbmRIZWlnaHQFC3ZvdGVzUXVvcnVtBQh2b3Rlc0ZvcgUMdm90ZXNBZ2FpbnN0ARF2b3RpbmdFeGlzdENoZWNrcwIHYXNzZXRJZAxjdXJyZW50SW5kZXgECnZvdGluZ0luZm8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQENa2V5Vm90aW5nSW5mbwIFB2Fzc2V0SWQFDGN1cnJlbnRJbmRleAkBB3dyYXBFcnIBAhV2b3RpbmcgaW5mbyBub3QgZm91bmQED3ZvdGluZ0luZm9BcnJheQkAtQkCBQp2b3RpbmdJbmZvBQlzZXBhcmF0b3IEBnN0YXR1cwkAkQMCBQ92b3RpbmdJbmZvQXJyYXkABQQPdm90aW5nRW5kSGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ92b3RpbmdJbmZvQXJyYXkABwkBB3dyYXBFcnIBAh12b3Rpbmcgc3RhcnQgaGVpZ2h0IG5vdCBmb3VuZAQNc3VnZ2VzdElzc3VlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARBrZXlTdWdnZXN0SXNzdWVyAgUHYXNzZXRJZAUMY3VycmVudEluZGV4CQEHd3JhcEVycgECF3ZvdGluZyBpc3N1ZXIgbm90IGZvdW5kBAZjaGVja3MJAMwIAgMJAAACBQZzdGF0dXMFEHN0YXR1c0luUHJvZ3Jlc3MGCQEIdGhyb3dFcnIBAhVubyB2b3RpbmcgaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQ92b3RpbmdFbmRIZWlnaHQFBmhlaWdodAYJAQh0aHJvd0VycgECDnZvdGluZyBleHBpcmVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJAJUKAwUGc3RhdHVzBQ92b3RpbmdFbmRIZWlnaHQFDXN1Z2dlc3RJc3N1ZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BD2NhbGN1bGF0ZVJld2FyZAMFdm90ZXIHYXNzZXRJZAVpbmRleAQHdm90ZUtleQkBB2tleVZvdGUDBQdhc3NldElkBQVpbmRleAUFdm90ZXIECGxhc3RWb3RlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQUHdm90ZUtleQkBB3dyYXBFcnIBAhJ5b3UgaGF2ZSBub3Qgdm90ZWQEDWxhc3RWb3RlUGFydHMJALUJAgUIbGFzdFZvdGUFCXNlcGFyYXRvcgQJZ3d4QW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUNbGFzdFZvdGVQYXJ0cwACBA12b3RpbmdJbmZvU3RyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBDWtleVZvdGluZ0luZm8CBQdhc3NldElkBQVpbmRleAkBB3dyYXBFcnIBAhV2b3RpbmcgaW5mbyBub3QgZm91bmQEC3ZvdGluZ1BhcnRzCQESZ2V0Vm90aW5nSW5mb1BhcnRzAQUNdm90aW5nSW5mb1N0cgQGc3RhdHVzCAULdm90aW5nUGFydHMCXzUECHZvdGVzRm9yCAULdm90aW5nUGFydHMCXzkEDHZvdGVzQWdhaW5zdAgFC3ZvdGluZ1BhcnRzA18xMAQVcGFydE9mVGhlVG90YWxWb3Rlc1g4CQBrAwUJZ3d4QW1vdW50BQVNVUxUOAkAZAIFCHZvdGVzRm9yBQx2b3Rlc0FnYWluc3QEEXRvdGFsVm90aW5nUmV3YXJkCQELdmFsdWVPckVsc2UCCQCfCAEJARRrZXlUb3RhbFZvdGluZ1Jld2FyZAIFB2Fzc2V0SWQFBWluZGV4AAAEEXZvdGVyUmV3YXJkQW1vdW50CQBuBAUVcGFydE9mVGhlVG90YWxWb3Rlc1g4BRF0b3RhbFZvdGluZ1Jld2FyZAUFTVVMVDgFBUZMT09SBAhjYW5DbGFpbQMJAAACBQZzdGF0dXMFDnN0YXR1c0FjY2VwdGVkCQBmAgURdm90ZXJSZXdhcmRBbW91bnQAAAcJAJQKAgURdm90ZXJSZXdhcmRBbW91bnQFCGNhbkNsYWltBwFpAQpzdWdnZXN0QWRkAwdhc3NldElkDHBlcmlvZExlbmd0aAphc3NldEltYWdlBAl3eFBheW1lbnQJAJEDAggFAWkIcGF5bWVudHMAAAQQd3hQYXltZW50QXNzZXRJZAkBBXZhbHVlAQgFCXd4UGF5bWVudAdhc3NldElkBA93eFBheW1lbnRBbW91bnQJAQV2YWx1ZQEIBQl3eFBheW1lbnQGYW1vdW50BA9taW5QZXJpb2RMZW5ndGgJARFAZXh0ck5hdGl2ZSgxMDU1KQEFEmtleU1pblBlcmlvZExlbmd0aAQPbWF4UGVyaW9kTGVuZ3RoCQERQGV4dHJOYXRpdmUoMTA1NSkBBRJrZXlNYXhQZXJpb2RMZW5ndGgED3Rva2VuSXNWZXJpZmllZAoAAUAJAPwHBAUTYXNzZXRzU3RvcmVDb250cmFjdAISaXNWZXJpZmllZFJFQURPTkxZCQDMCAIFB2Fzc2V0SWQFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBBQFAAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAZjaGVja3MJAMwIAgMDCQBnAgUMcGVyaW9kTGVuZ3RoBQ9taW5QZXJpb2RMZW5ndGgJAGcCBQ9tYXhQZXJpb2RMZW5ndGgFDHBlcmlvZExlbmd0aAcGCQEIdGhyb3dFcnIBAhRpbnZhbGlkIHBlcmlvZExlbmd0aAkAzAgCAwkAAAIFD3Rva2VuSXNWZXJpZmllZAcGCQEIdGhyb3dFcnIBAhZ0b2tlbiBhbHJlYWR5IHZlcmlmaWVkCQDMCAIDCQAAAgUQd3hQYXltZW50QXNzZXRJZAUJd3hBc3NldElkBgkBCHRocm93RXJyAQIacGF5bWVudFswXSBzaG91bGQgYmUgaW4gd3gJAMwIAgMJAGcCBQ93eFBheW1lbnRBbW91bnQJAGgCBQxwZXJpb2RMZW5ndGgFC2ZlZVBlckJsb2NrBgkBCHRocm93RXJyAQIebm90IGVub3VnaCB3eCBmb3IgZ2l2ZW4gcGVyaW9kCQDMCAIDCQBnAgUPd3hQYXltZW50QW1vdW50CQERQGV4dHJOYXRpdmUoMTA1NSkBBSZrZXlNaW5XeE1pbkZvclN1Z2dlc3RBZGRBbW91bnRSZXF1aXJlZAYJAQh0aHJvd0VycgECIXBheW1lbnQgbGVzcyB0aGVuIG1pbiBmb3Igc3VnZ2VzdAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA9jdXJyZW50SW5kZXhLZXkJAQ9rZXlDdXJyZW50SW5kZXgBBQdhc3NldElkBAxjdXJyZW50SW5kZXgJAJ8IAQUPY3VycmVudEluZGV4S2V5BAhuZXdJbmRleAMJAQlpc0RlZmluZWQBBQxjdXJyZW50SW5kZXgJAGQCCQEFdmFsdWUBBQxjdXJyZW50SW5kZXgAAQAABAskdDA5MzMzOTk2NgMJAGYCCQCQAwEIBQFpCHBheW1lbnRzAAEEE3ZvdGluZ1Jld2FyZFBheW1lbnQJAJEDAggFAWkIcGF5bWVudHMAAQQadm90aW5nUmV3YXJkUGF5bWVudEFzc2V0SWQJAQ9hc3NldElkVG9TdHJpbmcBCAUTdm90aW5nUmV3YXJkUGF5bWVudAdhc3NldElkBBl2b3RpbmdSZXdhcmRQYXltZW50QW1vdW50CQEFdmFsdWUBCAUTdm90aW5nUmV3YXJkUGF5bWVudAZhbW91bnQJAJYKBAYFGnZvdGluZ1Jld2FyZFBheW1lbnRBc3NldElkBRl2b3RpbmdSZXdhcmRQYXltZW50QW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlWb3RpbmdSZXdhcmRBc3NldElkAgUHYXNzZXRJZAUIbmV3SW5kZXgFGnZvdGluZ1Jld2FyZFBheW1lbnRBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5VG90YWxWb3RpbmdSZXdhcmQCBQdhc3NldElkBQhuZXdJbmRleAUZdm90aW5nUmV3YXJkUGF5bWVudEFtb3VudAUDbmlsCQCWCgQHAgVFTVBUWQAABQNuaWwEDWlzUmV3YXJkRXhpc3QIBQskdDA5MzMzOTk2NgJfMQQNcmV3YXJkQXNzZXRJZAgFCyR0MDkzMzM5OTY2Al8yBAxyZXdhcmRBbW91bnQIBQskdDA5MzMzOTk2NgJfMwQTdm90aW5nUmV3YXJkQWN0aW9ucwgFCyR0MDkzMzM5OTY2Al80BAt2b3Rlc1F1b3J1bQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEFFWtleVZvdGluZ1RocmVzaG9sZEFkZAkBB3dyYXBFcnIBAhp2b3RpbmdUaHJlc2hvbGRBZGQgbm90IHNldAQKdm90aW5nSW5mbwkBD3ZvdGluZ0luZm9WYWx1ZQoFDWlzUmV3YXJkRXhpc3QFDXJld2FyZEFzc2V0SWQFDHJld2FyZEFtb3VudAIMdmVyaWZpY2F0aW9uBRBzdGF0dXNJblByb2dyZXNzBQZoZWlnaHQJAGQCBQZoZWlnaHQFDHBlcmlvZExlbmd0aAULdm90ZXNRdW9ydW0AAAAABBhmaW5hbGl6ZUNhbGxSZXdhcmRBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFG2tleUZpbmFsaXplQ2FsbFJld2FyZEFtb3VudAQMYnVybld4QW1vdW50CQBlAgUPd3hQYXltZW50QW1vdW50BRhmaW5hbGl6ZUNhbGxSZXdhcmRBbW91bnQJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUPY3VycmVudEluZGV4S2V5BQhuZXdJbmRleAkAzAgCCQELU3RyaW5nRW50cnkCCQEQa2V5U3VnZ2VzdElzc3VlcgIFB2Fzc2V0SWQFCG5ld0luZGV4CQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5Vm90aW5nSW5mbwIFB2Fzc2V0SWQFCG5ld0luZGV4BQp2b3RpbmdJbmZvCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlBc3NldEltYWdlAQUHYXNzZXRJZAUKYXNzZXRJbWFnZQkAzAgCCQEEQnVybgIFEHd4UGF5bWVudEFzc2V0SWQFDGJ1cm5XeEFtb3VudAUDbmlsBRN2b3RpbmdSZXdhcmRBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDXN1Z2dlc3RSZW1vdmUBB2Fzc2V0SWQEDmd3eEFtb3VudEF0Tm93CQEYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0AgkApQgBCAUBaQZjYWxsZXIFBmhlaWdodAQXbWluU3VnZ2VzdFJlbW92ZUJhbGFuY2UJARFAZXh0ck5hdGl2ZSgxMDU1KQEFGmtleU1pblN1Z2dlc3RSZW1vdmVCYWxhbmNlBAl3eFBheW1lbnQJAJEDAggFAWkIcGF5bWVudHMAAAQQd3hQYXltZW50QXNzZXRJZAkBBXZhbHVlAQgFCXd4UGF5bWVudAdhc3NldElkBA93eFBheW1lbnRBbW91bnQJAQV2YWx1ZQEIBQl3eFBheW1lbnQGYW1vdW50BA90b2tlbklzVmVyaWZpZWQKAAFACQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCEmlzVmVyaWZpZWRSRUFET05MWQkAzAgCBQdhc3NldElkBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQUBQAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQGY2hlY2tzCQDMCAIDBQ90b2tlbklzVmVyaWZpZWQGCQEIdGhyb3dFcnIBAhJ0b2tlbiBub3QgdmVyaWZpZWQJAMwIAgMJAGcCBQ5nd3hBbW91bnRBdE5vdwUXbWluU3VnZ2VzdFJlbW92ZUJhbGFuY2UGCQEIdGhyb3dFcnIBAhBub3QgZW5vdWdoIGdXWGVzCQDMCAIDCQAAAgUQd3hQYXltZW50QXNzZXRJZAUJd3hBc3NldElkBgkBCHRocm93RXJyAQIXcGF5bWVudCBzaG91bGQgYmUgaW4gd3gJAMwIAgMJAGcCBQ93eFBheW1lbnRBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFI2tleVd4Rm9yU3VnZ2VzdFJlbW92ZUFtb3VudFJlcXVpcmVkBgkBCHRocm93RXJyAQIhcGF5bWVudCBsZXNzIHRoZW4gbWluIGZvciBzdWdnZXN0BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MED2N1cnJlbnRJbmRleEtleQkBD2tleUN1cnJlbnRJbmRleAEFB2Fzc2V0SWQEDGN1cnJlbnRJbmRleAkAnwgBBQ9jdXJyZW50SW5kZXhLZXkECG5ld0luZGV4AwkBCWlzRGVmaW5lZAEFDGN1cnJlbnRJbmRleAkAZAIJAQV2YWx1ZQEFDGN1cnJlbnRJbmRleAABAAAEDHBlcmlvZExlbmd0aAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEFFWtleVBlcmlvZExlbmd0aFJlbW92ZQkBB3dyYXBFcnIBAhpwZXJpb2RMZW5ndGhSZW1vdmUgbm90IHNldAQPdm90aW5nRW5kSGVpZ2h0CQBkAgUGaGVpZ2h0BQxwZXJpb2RMZW5ndGgEC3ZvdGVzUXVvcnVtCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQUYa2V5Vm90aW5nVGhyZXNob2xkUmVtb3ZlCQEHd3JhcEVycgECHXZvdGluZ1RocmVzaG9sZFJlbW92ZSBub3Qgc2V0BAp2b3RpbmdJbmZvCQEPdm90aW5nSW5mb1ZhbHVlCgcCBUVNUFRZAAACDmRldmVyaWZpY2F0aW9uBRBzdGF0dXNJblByb2dyZXNzBQZoZWlnaHQJAGQCBQZoZWlnaHQFDHBlcmlvZExlbmd0aAULdm90ZXNRdW9ydW0AAAAABBNzZXRBc3NldEltYWdlQWN0aW9uBAckbWF0Y2gwCQCiCAEJAQ1rZXlBc3NldEltYWdlAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFA25pbAMJAAECBQckbWF0Y2gwAgRVbml0BBVhc3NldHNTdG9yZUFzc2V0SW1hZ2UKAAFACQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCFGdldEFzc2V0TG9nb1JFQURPTkxZCQDMCAIFB2Fzc2V0SWQFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5QXNzZXRJbWFnZQEFB2Fzc2V0SWQFFWFzc2V0c1N0b3JlQXNzZXRJbWFnZQUDbmlsCQACAQILTWF0Y2ggZXJyb3IJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUPY3VycmVudEluZGV4S2V5BQhuZXdJbmRleAkAzAgCCQELU3RyaW5nRW50cnkCCQEQa2V5U3VnZ2VzdElzc3VlcgIFB2Fzc2V0SWQFCG5ld0luZGV4CQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5Vm90aW5nSW5mbwIFB2Fzc2V0SWQFCG5ld0luZGV4BQp2b3RpbmdJbmZvBQNuaWwFE3NldEFzc2V0SW1hZ2VBY3Rpb24JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEdm90ZQIHYXNzZXRJZAdpbkZhdm9yBA9jdXJyZW50SW5kZXhLZXkJAQ9rZXlDdXJyZW50SW5kZXgBBQdhc3NldElkBAxjdXJyZW50SW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBBQ9jdXJyZW50SW5kZXhLZXkJAQd3cmFwRXJyAQIVdm90aW5nIGRvZXMgbm90IGV4aXN0BAp2b3RpbmdJbmZvCQERdm90aW5nRXhpc3RDaGVja3MCBQdhc3NldElkBQxjdXJyZW50SW5kZXgDCQAAAgUKdm90aW5nSW5mbwUKdm90aW5nSW5mbwQWY3VycmVudFZvdGluZ0VuZEhlaWdodAgFCnZvdGluZ0luZm8CXzIEDmd3eEFtb3VudEF0RW5kCQEYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0AgkApQgBCAUBaQZjYWxsZXIFFmN1cnJlbnRWb3RpbmdFbmRIZWlnaHQEB3ZvdGVLZXkJAQdrZXlWb3RlAwUHYXNzZXRJZAUMY3VycmVudEluZGV4CAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCAwkAAAIJAKIIAQUHdm90ZUtleQUEdW5pdAYJAQh0aHJvd0VycgECFllvdSBoYXZlIGFscmVhZHkgdm90ZWQJAMwIAgMJAGYCBQ5nd3hBbW91bnRBdEVuZAAABgkAAgECKFlvdSdsbCBub3QgaGF2ZSBnV1ggYXQgdGhlIGVuZCBvZiB2b3RpbmcFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNdm90aW5nSW5mb1N0cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQ1rZXlWb3RpbmdJbmZvAgUHYXNzZXRJZAUMY3VycmVudEluZGV4CQEHd3JhcEVycgECFXZvdGluZyBpbmZvIG5vdCBmb3VuZAQPdm90aW5nSW5mb1BhcnRzCQESZ2V0Vm90aW5nSW5mb1BhcnRzAQUNdm90aW5nSW5mb1N0cgQIdm90ZXNGb3IIBQ92b3RpbmdJbmZvUGFydHMCXzkEDHZvdGVzQWdhaW5zdAgFD3ZvdGluZ0luZm9QYXJ0cwNfMTAEDSR0MDEzNzA1MTM4NjYDBQdpbkZhdm9yCQCUCgIJAGQCBQh2b3Rlc0ZvcgUOZ3d4QW1vdW50QXRFbmQFDHZvdGVzQWdhaW5zdAkAlAoCBQh2b3Rlc0ZvcgkAZAIFDHZvdGVzQWdhaW5zdAUOZ3d4QW1vdW50QXRFbmQEC25ld1ZvdGVzRm9yCAUNJHQwMTM3MDUxMzg2NgJfMQQPbmV3Vm90ZXNBZ2FpbnN0CAUNJHQwMTM3MDUxMzg2NgJfMgQSbmV3Vm90aW5nSW5mb1ZhbHVlCQEPdm90aW5nSW5mb1ZhbHVlCggFD3ZvdGluZ0luZm9QYXJ0cwJfMQgFD3ZvdGluZ0luZm9QYXJ0cwJfMggFD3ZvdGluZ0luZm9QYXJ0cwJfMwgFD3ZvdGluZ0luZm9QYXJ0cwJfNAgFD3ZvdGluZ0luZm9QYXJ0cwJfNQgFD3ZvdGluZ0luZm9QYXJ0cwJfNggFD3ZvdGluZ0luZm9QYXJ0cwJfNwgFD3ZvdGluZ0luZm9QYXJ0cwJfOAULbmV3Vm90ZXNGb3IFD25ld1ZvdGVzQWdhaW5zdAQSdm90aW5nUmV3YXJkQWN0aW9uBAckbWF0Y2gwCQCiCAEJARZrZXlWb3RpbmdSZXdhcmRBc3NldElkAgUHYXNzZXRJZAUMY3VycmVudEluZGV4AwkAAQIFByRtYXRjaDACBlN0cmluZwQCcGsFByRtYXRjaDAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jld2FyZAMIBQFpBmNhbGxlcgUHYXNzZXRJZAUMY3VycmVudEluZGV4CQEJdm90ZVZhbHVlAgUHaW5GYXZvcgUOZ3d4QW1vdW50QXRFbmQFA25pbAMJAAECBQckbWF0Y2gwAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFB3ZvdGVLZXkJAQl2b3RlVmFsdWUCBQdpbkZhdm9yBQ5nd3hBbW91bnRBdEVuZAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5Vm90aW5nSW5mbwIFB2Fzc2V0SWQFDGN1cnJlbnRJbmRleAUSbmV3Vm90aW5nSW5mb1ZhbHVlBQNuaWwFEnZvdGluZ1Jld2FyZEFjdGlvbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjYW5jZWxWb3RlAQdhc3NldElkBA9jdXJyZW50SW5kZXhLZXkJAQ9rZXlDdXJyZW50SW5kZXgBBQdhc3NldElkBAxjdXJyZW50SW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBBQ9jdXJyZW50SW5kZXhLZXkJAQd3cmFwRXJyAQIVdm90aW5nIGRvZXMgbm90IGV4aXN0BAd2b3RlS2V5CQEHa2V5Vm90ZQMFB2Fzc2V0SWQFDGN1cnJlbnRJbmRleAgFAWkGY2FsbGVyBAhsYXN0Vm90ZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEFB3ZvdGVLZXkJAQd3cmFwRXJyAQISeW91IGhhdmUgbm90IHZvdGVkBA1sYXN0Vm90ZVBhcnRzCQC1CQIFCGxhc3RWb3RlBQlzZXBhcmF0b3IEB2luRmF2b3IJAJEDAgUNbGFzdFZvdGVQYXJ0cwABBAlnd3hBbW91bnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ1sYXN0Vm90ZVBhcnRzAAIECnZvdGluZ0luZm8JARF2b3RpbmdFeGlzdENoZWNrcwIFB2Fzc2V0SWQFDGN1cnJlbnRJbmRleAMJAAACBQp2b3RpbmdJbmZvBQp2b3RpbmdJbmZvBAZjaGVja3MJAMwIAgMDCQAAAgUHaW5GYXZvcgIEdHJ1ZQYJAAACBQdpbkZhdm9yAgVmYWxzZQYJAQh0aHJvd0VycgECDGludmFsaWQgdm90ZQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA12b3RpbmdJbmZvU3RyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBDWtleVZvdGluZ0luZm8CBQdhc3NldElkBQxjdXJyZW50SW5kZXgJAQd3cmFwRXJyAQIVdm90aW5nIGluZm8gbm90IGZvdW5kBA92b3RpbmdJbmZvUGFydHMJARJnZXRWb3RpbmdJbmZvUGFydHMBBQ12b3RpbmdJbmZvU3RyBAh2b3Rlc0ZvcggFD3ZvdGluZ0luZm9QYXJ0cwJfOQQMdm90ZXNBZ2FpbnN0CAUPdm90aW5nSW5mb1BhcnRzA18xMAQNJHQwMTU0OTExNTY1MgMJAAACBQdpbkZhdm9yAgR0cnVlCQCUCgIJAGUCBQh2b3Rlc0ZvcgUJZ3d4QW1vdW50BQx2b3Rlc0FnYWluc3QJAJQKAgUIdm90ZXNGb3IJAGUCBQx2b3Rlc0FnYWluc3QFCWd3eEFtb3VudAQLbmV3Vm90ZXNGb3IIBQ0kdDAxNTQ5MTE1NjUyAl8xBA9uZXdWb3Rlc0FnYWluc3QIBQ0kdDAxNTQ5MTE1NjUyAl8yBBJuZXdWb3RpbmdJbmZvVmFsdWUJAQ92b3RpbmdJbmZvVmFsdWUKCAUPdm90aW5nSW5mb1BhcnRzAl8xCAUPdm90aW5nSW5mb1BhcnRzAl8yCAUPdm90aW5nSW5mb1BhcnRzAl8zCAUPdm90aW5nSW5mb1BhcnRzAl80CAUPdm90aW5nSW5mb1BhcnRzAl81CAUPdm90aW5nSW5mb1BhcnRzAl82CAUPdm90aW5nSW5mb1BhcnRzAl83CAUPdm90aW5nSW5mb1BhcnRzAl84BQtuZXdWb3Rlc0ZvcgUPbmV3Vm90ZXNBZ2FpbnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlWb3RpbmdJbmZvAgUHYXNzZXRJZAUMY3VycmVudEluZGV4BRJuZXdWb3RpbmdJbmZvVmFsdWUJAMwIAgkBC0RlbGV0ZUVudHJ5AQUHdm90ZUtleQkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5Vm90aW5nUmV3YXJkAwgFAWkGY2FsbGVyBQdhc3NldElkBQxjdXJyZW50SW5kZXgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhmaW5hbGl6ZQEHYXNzZXRJZAQPY3VycmVudEluZGV4S2V5CQEPa2V5Q3VycmVudEluZGV4AQUHYXNzZXRJZAQMY3VycmVudEluZGV4CQELdmFsdWVPckVsc2UCCQCfCAEFD2N1cnJlbnRJbmRleEtleQAABBJ2b3RpbmdUaHJlc2hvbGRBZGQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBBRVrZXlWb3RpbmdUaHJlc2hvbGRBZGQJAQd3cmFwRXJyAQIadm90aW5nVGhyZXNob2xkQWRkIG5vdCBzZXQEFXZvdGluZ1RocmVzaG9sZFJlbW92ZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEFGGtleVZvdGluZ1RocmVzaG9sZFJlbW92ZQkBB3dyYXBFcnIBAh12b3RpbmdUaHJlc2hvbGRSZW1vdmUgbm90IHNldAQNdm90aW5nSW5mb1N0cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQ1rZXlWb3RpbmdJbmZvAgUHYXNzZXRJZAUMY3VycmVudEluZGV4CQEHd3JhcEVycgECFXZvdGluZyBpbmZvIG5vdCBmb3VuZAQPdm90aW5nSW5mb1BhcnRzCQESZ2V0Vm90aW5nSW5mb1BhcnRzAQUNdm90aW5nSW5mb1N0cgQKdm90aW5nVHlwZQgFD3ZvdGluZ0luZm9QYXJ0cwJfNAQGc3RhdHVzCAUPdm90aW5nSW5mb1BhcnRzAl81BA92b3RpbmdFbmRIZWlnaHQIBQ92b3RpbmdJbmZvUGFydHMCXzcEDHZvdGluZ1F1b3J1bQgFD3ZvdGluZ0luZm9QYXJ0cwJfOAQIdm90ZXNGb3IIBQ92b3RpbmdJbmZvUGFydHMCXzkEDHZvdGVzQWdhaW5zdAgFD3ZvdGluZ0luZm9QYXJ0cwNfMTAEBmNoZWNrcwkAzAgCAwkAAAIFBnN0YXR1cwUQc3RhdHVzSW5Qcm9ncmVzcwYJAQh0aHJvd0VycgECFnZvdGluZyBub3QgaW4gcHJvZ3Jlc3MJAMwIAgMJAGcCBQZoZWlnaHQFD3ZvdGluZ0VuZEhlaWdodAYJAQh0aHJvd0VycgECE3ZvdGluZyBub3QgZmluaXNoZWQJAMwIAgMJAQlpc0RlZmluZWQBCQCiCAEJAQ1rZXlBc3NldEltYWdlAQUHYXNzZXRJZAYJAQh0aHJvd0VycgECE2Fzc2V0IGltYWdlIG5vdCBzZXQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQOdm90aW5nQWNjZXB0ZWQDAwkAZwIJAGQCBQh2b3Rlc0ZvcgUMdm90ZXNBZ2FpbnN0BQx2b3RpbmdRdW9ydW0JAGYCBQh2b3Rlc0ZvcgUMdm90ZXNBZ2FpbnN0BwYHBAluZXdTdGF0dXMDBQ52b3RpbmdBY2NlcHRlZAUOc3RhdHVzQWNjZXB0ZWQFDnN0YXR1c1JlamVjdGVkBAphc3NldEltYWdlCQERQGV4dHJOYXRpdmUoMTA1OCkBCQENa2V5QXNzZXRJbWFnZQEFB2Fzc2V0SWQEEGlzVm90aW5nQWNjZXB0ZWQDBQ52b3RpbmdBY2NlcHRlZAQVdm90aW5nQWNjZXB0ZWRJbnZva2VzAwkAAAIFCnZvdGluZ1R5cGUCDHZlcmlmaWNhdGlvbgkA/AcEBRNhc3NldHNTdG9yZUNvbnRyYWN0Ag5jcmVhdGVPclVwZGF0ZQkAzAgCBQdhc3NldElkCQDMCAIFCmFzc2V0SW1hZ2UJAMwIAgYFA25pbAUDbmlsCQDMCAIJAPwHBAUTYXNzZXRzU3RvcmVDb250cmFjdAILc2V0VmVyaWZpZWQJAMwIAgUHYXNzZXRJZAkAzAgCBwUDbmlsBQNuaWwJAMwIAgkA/AcEBRNhc3NldHNTdG9yZUNvbnRyYWN0AgtvbkVsaW1pbmF0ZQkAzAgCBQdhc3NldElkBQNuaWwFA25pbAUDbmlsBRV2b3RpbmdBY2NlcHRlZEludm9rZXMFA25pbAMJAAACBRBpc1ZvdGluZ0FjY2VwdGVkBRBpc1ZvdGluZ0FjY2VwdGVkBBJuZXdWb3RpbmdJbmZvVmFsdWUJAQ92b3RpbmdJbmZvVmFsdWUKCAUPdm90aW5nSW5mb1BhcnRzAl8xCAUPdm90aW5nSW5mb1BhcnRzAl8yCAUPdm90aW5nSW5mb1BhcnRzAl8zCAUPdm90aW5nSW5mb1BhcnRzAl80BQluZXdTdGF0dXMIBQ92b3RpbmdJbmZvUGFydHMCXzYIBQ92b3RpbmdJbmZvUGFydHMCXzcIBQ92b3RpbmdJbmZvUGFydHMCXzgIBQ92b3RpbmdJbmZvUGFydHMCXzkIBQ92b3RpbmdJbmZvUGFydHMDXzEwBBhmaW5hbGl6ZUNhbGxSZXdhcmRBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFG2tleUZpbmFsaXplQ2FsbFJld2FyZEFtb3VudAQUc3VnZ2VzdElzc3VlckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARBrZXlTdWdnZXN0SXNzdWVyAgUHYXNzZXRJZAUMY3VycmVudEluZGV4BBl2b3RpbmdSZXdhcmRBc3NldElkT3B0aW9uCQCiCAEJARZrZXlWb3RpbmdSZXdhcmRBc3NldElkAgUHYXNzZXRJZAUMY3VycmVudEluZGV4BBd0b3RhbFZvdGluZ1Jld2FyZE9wdGlvbgkAnwgBCQEUa2V5VG90YWxWb3RpbmdSZXdhcmQCBQdhc3NldElkBQxjdXJyZW50SW5kZXgEE3JldHVyblJld2FyZEFjdGlvbnMDAwMFDnZvdGluZ0FjY2VwdGVkBgkAAAIFGXZvdGluZ1Jld2FyZEFzc2V0SWRPcHRpb24FBHVuaXQGCQAAAgUXdG90YWxWb3RpbmdSZXdhcmRPcHRpb24FBHVuaXQFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRRzdWdnZXN0SXNzdWVyQWRkcmVzcwkBBXZhbHVlAQUXdG90YWxWb3RpbmdSZXdhcmRPcHRpb24JAQxwYXJzZUFzc2V0SWQBCQEFdmFsdWUBBRl2b3RpbmdSZXdhcmRBc3NldElkT3B0aW9uBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5Vm90aW5nSW5mbwIFB2Fzc2V0SWQFDGN1cnJlbnRJbmRleAUSbmV3Vm90aW5nSW5mb1ZhbHVlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUYZmluYWxpemVDYWxsUmV3YXJkQW1vdW50BQl3eEFzc2V0SWQFA25pbAUTcmV0dXJuUmV3YXJkQWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1jbGFpbVJFQURPTkxZAwdhc3NldElkBWluZGV4DnVzZXJBZGRyZXNzU3RyBAt1c2VyQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFDnVzZXJBZGRyZXNzU3RyCQEHd3JhcEVycgECD2ludmFsaWQgYWRkcmVzcwQWdm90aW5nUmV3YXJkQXNzZXRJZFN0cgkAoggBCQEWa2V5Vm90aW5nUmV3YXJkQXNzZXRJZAIFB2Fzc2V0SWQFBWluZGV4BAxyZXdhcmRBbW91bnQDCQEJaXNEZWZpbmVkAQUWdm90aW5nUmV3YXJkQXNzZXRJZFN0cggJAQ9jYWxjdWxhdGVSZXdhcmQDBQt1c2VyQWRkcmVzcwUHYXNzZXRJZAUFaW5kZXgCXzEAAAkAlAoCBQNuaWwFDHJld2FyZEFtb3VudAFpAQVjbGFpbQIHYXNzZXRJZAVpbmRleAQNY2FsbGVyQWRkcmVzcwgFAWkGY2FsbGVyBA9jbGFpbUhpc3RvcnlLZXkJAQ9rZXlDbGFpbUhpc3RvcnkDBQ1jYWxsZXJBZGRyZXNzBQdhc3NldElkBQVpbmRleAQMY2xhaW1IaXN0b3J5CQCfCAEFD2NsYWltSGlzdG9yeUtleQQGY2hlY2tzCQDMCAIDCQAAAgUMY2xhaW1IaXN0b3J5BQR1bml0BgkBCHRocm93RXJyAQIPYWxyZWFkeSBjbGFpbWVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDSR0MDE5NzQyMTk4MTkJAQ9jYWxjdWxhdGVSZXdhcmQDBQ1jYWxsZXJBZGRyZXNzBQdhc3NldElkBQVpbmRleAQMcmV3YXJkQW1vdW50CAUNJHQwMTk3NDIxOTgxOQJfMQQIY2FuQ2xhaW0IBQ0kdDAxOTc0MjE5ODE5Al8yAwkBASEBBQhjYW5DbGFpbQkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQQWdm90aW5nUmV3YXJkQXNzZXRJZFN0cgkAoggBCQEWa2V5Vm90aW5nUmV3YXJkQXNzZXRJZAIFB2Fzc2V0SWQFBWluZGV4BAxyZXdhcmRBY3Rpb24DCQEJaXNEZWZpbmVkAQUWdm90aW5nUmV3YXJkQXNzZXRJZFN0cgQTdm90aW5nUmV3YXJkQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEJAQV2YWx1ZQEFFnZvdGluZ1Jld2FyZEFzc2V0SWRTdHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNY2FsbGVyQWRkcmVzcwUMcmV3YXJkQW1vdW50BRN2b3RpbmdSZXdhcmRBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9jbGFpbUhpc3RvcnlLZXkFDHJld2FyZEFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5Vm90aW5nUmV3YXJkAwUNY2FsbGVyQWRkcmVzcwUHYXNzZXRJZAUFaW5kZXgFA25pbAkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQUMcmV3YXJkQWN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5DVDsWQ==", "height": 3245611, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AD1yy84NgB3UNpyKryCJTDD6pqGyKCm22BovMbXr8F5j Next: none Diff:
OldNewDifferences
6868
6969 let D = split(v(A, C), a)[1]
7070
71-let E = fromBase58String(D)
71+let E = n(D)
7272
7373 let F = makeString(["%s%s", "votingThreshold", "add"], a)
7474
237237 then true
238238 else i("invalid periodLength"), if ((bb == false))
239239 then true
240- else i("token already verified"), if ((aY >= (aU * ab)))
240+ else i("token already verified"), if ((aX == E))
241+ then true
242+ else i("payment[0] should be in wx"), if ((aY >= (aU * ab)))
241243 then true
242244 else i("not enough wx for given period"), if ((aY >= getIntegerValue(ac)))
243245 then true
252254 let bf = if ((size(aT.payments) > 1))
253255 then {
254256 let bg = aT.payments[1]
255- let bh = toBase58String(value(bg.assetId))
257+ let bh = p(bg.assetId)
256258 let bi = value(bg.amount)
257259 $Tuple4(true, bh, bi, [StringEntry(K(L, be), bh), IntegerEntry(P(L, be), bi)])
258260 }
289291 then true
290292 else i("token not verified"), if ((bm >= bn))
291293 then true
292- else i("not enough gWXes"), if ((aY >= getIntegerValue(ad)))
294+ else i("not enough gWXes"), if ((aX == E))
295+ then true
296+ else i("payment should be in wx"), if ((aY >= getIntegerValue(ad)))
293297 then true
294298 else i("payment less then min for suggest")]
295299 if ((aH == aH))
508512 let bL = getString(K(L, M))
509513 let bQ = if (isDefined(bL))
510514 then {
511- let bR = fromBase58String(value(bL))
515+ let bR = n(value(bL))
512516 [ScriptTransfer(bM, ai, bR), IntegerEntry(bN, ai), DeleteEntry(N(bM, L, M))]
513517 }
514518 else i("nothing to claim")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = "WAVES"
99
1010 let d = "inProgress"
1111
1212 let e = "accepted"
1313
1414 let f = "rejected"
1515
1616 func g (h) = makeString(["voting_verified_v2.ride:", h], " ")
1717
1818
1919 func i (h) = throw(g(h))
2020
2121
2222 func j (k) = {
2323 let l = k
2424 if ($isInstanceOf(l, "Int"))
2525 then {
2626 let m = l
2727 m
2828 }
2929 else throw("Failed to cast into Integer")
3030 }
3131
3232
3333 func n (o) = if ((o == c))
3434 then unit
3535 else fromBase58String(o)
3636
3737
3838 func p (o) = if ((o == unit))
3939 then c
4040 else toBase58String(value(o))
4141
4242
4343 func q (r,s) = valueOrElse(getInteger(r, s), 0)
4444
4545
4646 func t (r,s) = valueOrErrorMessage(getInteger(r, s), g((s + " is not defined")))
4747
4848
4949 func u (r,s) = valueOrElse(getString(r, s), "")
5050
5151
5252 func v (r,s) = valueOrErrorMessage(getString(r, s), g((s + " is not defined")))
5353
5454
5555 let w = makeString(["%s", "boostingContract"], a)
5656
5757 let x = makeString(["%s", "emissionContract"], a)
5858
5959 let y = makeString(["%s", "assetsStoreContract"], a)
6060
6161 let z = addressFromStringValue(getStringValue(w))
6262
6363 let A = addressFromStringValue(getStringValue(x))
6464
6565 let B = addressFromStringValue(getStringValue(y))
6666
6767 let C = makeString(["%s", "config"], a)
6868
6969 let D = split(v(A, C), a)[1]
7070
71-let E = fromBase58String(D)
71+let E = n(D)
7272
7373 let F = makeString(["%s%s", "votingThreshold", "add"], a)
7474
7575 let G = makeString(["%s%s", "votingThreshold", "remove"], a)
7676
7777 let H = makeString(["%s", "periodLengthRemove"], a)
7878
7979 let I = makeString(["%s", "maxPeriodLength"], a)
8080
8181 let J = makeString(["%s", "minPeriodLength"], a)
8282
8383 func K (L,M) = makeString(["%s%s%d", "votingRewardAssetId", L, toString(M)], a)
8484
8585
8686 func N (O,L,M) = makeString(["%s%s%s%d", "votingReward", toString(O), L, toString(M)], a)
8787
8888
8989 func P (L,M) = makeString(["%s%s%d", "totalVotingReward", L, toString(M)], a)
9090
9191
9292 let Q = makeString(["%s", "finalizeCallRewardAmount"], a)
9393
9494 let R = makeString(["%s", "minSuggestRemoveBalance"], a)
9595
9696 func S (L) = makeString(["%s%s", "currentIndex", L], a)
9797
9898
9999 func T (L,M,U) = makeString(["%s%s%d%s", "vote", L, toString(M), toString(U)], a)
100100
101101
102102 func V (W,X) = makeString(["%s%d", toString(W), toString(X)], a)
103103
104104
105105 func Y (L,M) = makeString(["%s%s%d", "suggestIssuer", L, toString(M)], a)
106106
107107
108108 func Z (O,L,M) = makeString(["%s%s%s%d", "history", toString(O), L, toString(M)], a)
109109
110110
111111 let aa = makeString(["%s", "feePerBlock"], a)
112112
113113 let ab = t(this, aa)
114114
115115 let ac = makeString(["%s", "wxMinForSuggestAddAmountRequired"], a)
116116
117117 let ad = makeString(["%s", "wxForSuggestRemoveAmountRequired"], a)
118118
119119 func ae (L,M) = makeString(["%s%s%d", "votingInfo", L, toString(M)], a)
120120
121121
122122 func af (ag,ah,ai,aj,ak,al,am,an,ao,ap) = makeString(["%s%s%d%s%s%d%d%d%d%d", toString(ag), ah, toString(ai), aj, ak, toString(al), toString(am), toString(an), toString(ao), toString(ap)], a)
123123
124124
125125 func aq (L) = makeString(["%s%s", "assetImage", L], a)
126126
127127
128128 func ar (O,as) = {
129129 let X = invoke(z, "getUserGwxAmountAtHeightREADONLY", [O, as], nil)
130130 j(X)
131131 }
132132
133133
134134 func at () = "%s__managerVaultAddress"
135135
136136
137137 func au () = "%s__managerPublicKey"
138138
139139
140140 func av () = {
141141 let l = getString(at())
142142 if ($isInstanceOf(l, "String"))
143143 then {
144144 let aw = l
145145 addressFromStringValue(aw)
146146 }
147147 else this
148148 }
149149
150150
151151 func ax () = {
152152 let ay = av()
153153 let l = getString(ay, au())
154154 if ($isInstanceOf(l, "String"))
155155 then {
156156 let aw = l
157157 fromBase58String(aw)
158158 }
159159 else if ($isInstanceOf(l, "Unit"))
160160 then unit
161161 else throw("Match error")
162162 }
163163
164164
165165 func az (aA) = {
166166 let aB = split(aA, a)
167167 let aC = aB[1]
168168 let ag = if ((aC == "true"))
169169 then true
170170 else false
171171 let ah = aB[2]
172172 let ai = parseIntValue(aB[3])
173173 let aj = aB[4]
174174 let ak = aB[5]
175175 let al = parseIntValue(aB[6])
176176 let am = parseIntValue(aB[7])
177177 let an = parseIntValue(aB[8])
178178 let ao = parseIntValue(aB[9])
179179 let ap = parseIntValue(aB[10])
180180 $Tuple10(ag, ah, ai, aj, ak, al, am, an, ao, ap)
181181 }
182182
183183
184184 func aD (L,aE) = {
185185 let aA = valueOrErrorMessage(getString(ae(L, aE)), g("voting info not found"))
186186 let aF = split(aA, a)
187187 let ak = aF[5]
188188 let am = valueOrErrorMessage(parseIntValue(aF[7]), g("voting start height not found"))
189189 let aG = valueOrErrorMessage(getString(Y(L, aE)), g("voting issuer not found"))
190190 let aH = [if ((ak == d))
191191 then true
192192 else i("no voting in progress"), if ((am > height))
193193 then true
194194 else i("voting expired")]
195195 if ((aH == aH))
196196 then $Tuple3(ak, am, aG)
197197 else throw("Strict value is not equal to itself.")
198198 }
199199
200200
201201 func aI (aJ,L,M) = {
202202 let aK = T(L, M, aJ)
203203 let aL = valueOrErrorMessage(getString(aK), g("you have not voted"))
204204 let aM = split(aL, a)
205205 let X = parseIntValue(aM[2])
206206 let aN = valueOrErrorMessage(getString(ae(L, M)), g("voting info not found"))
207207 let aO = az(aN)
208208 let ak = aO._5
209209 let ao = aO._9
210210 let ap = aO._10
211211 let aP = fraction(X, b, (ao + ap))
212212 let aQ = valueOrElse(getInteger(P(L, M)), 0)
213213 let aR = fraction(aP, aQ, b, FLOOR)
214214 let aS = if ((ak == e))
215215 then (aR > 0)
216216 else false
217217 $Tuple2(aR, aS)
218218 }
219219
220220
221221 @Callable(aT)
222222 func suggestAdd (L,aU,aV) = {
223223 let aW = aT.payments[0]
224224 let aX = value(aW.assetId)
225225 let aY = value(aW.amount)
226226 let aZ = getIntegerValue(J)
227227 let ba = getIntegerValue(I)
228228 let bb = {
229229 let bc = invoke(B, "isVerifiedREADONLY", [L], nil)
230230 if ($isInstanceOf(bc, "Boolean"))
231231 then bc
232232 else throw(($getType(bc) + " couldn't be cast to Boolean"))
233233 }
234234 let aH = [if (if ((aU >= aZ))
235235 then (ba >= aU)
236236 else false)
237237 then true
238238 else i("invalid periodLength"), if ((bb == false))
239239 then true
240- else i("token already verified"), if ((aY >= (aU * ab)))
240+ else i("token already verified"), if ((aX == E))
241+ then true
242+ else i("payment[0] should be in wx"), if ((aY >= (aU * ab)))
241243 then true
242244 else i("not enough wx for given period"), if ((aY >= getIntegerValue(ac)))
243245 then true
244246 else i("payment less then min for suggest")]
245247 if ((aH == aH))
246248 then {
247249 let bd = S(L)
248250 let aE = getInteger(bd)
249251 let be = if (isDefined(aE))
250252 then (value(aE) + 1)
251253 else 0
252254 let bf = if ((size(aT.payments) > 1))
253255 then {
254256 let bg = aT.payments[1]
255- let bh = toBase58String(value(bg.assetId))
257+ let bh = p(bg.assetId)
256258 let bi = value(bg.amount)
257259 $Tuple4(true, bh, bi, [StringEntry(K(L, be), bh), IntegerEntry(P(L, be), bi)])
258260 }
259261 else $Tuple4(false, "EMPTY", 0, nil)
260262 let ag = bf._1
261263 let ah = bf._2
262264 let ai = bf._3
263265 let bj = bf._4
264266 let an = valueOrErrorMessage(getInteger(F), g("votingThresholdAdd not set"))
265267 let aA = af(ag, ah, ai, "verification", d, height, (height + aU), an, 0, 0)
266268 let bk = getIntegerValue(Q)
267269 let bl = (aY - bk)
268270 ([IntegerEntry(bd, be), StringEntry(Y(L, be), toString(aT.caller)), StringEntry(ae(L, be), aA), StringEntry(aq(L), aV), Burn(aX, bl)] ++ bj)
269271 }
270272 else throw("Strict value is not equal to itself.")
271273 }
272274
273275
274276
275277 @Callable(aT)
276278 func suggestRemove (L) = {
277279 let bm = ar(toString(aT.caller), height)
278280 let bn = getIntegerValue(R)
279281 let aW = aT.payments[0]
280282 let aX = value(aW.assetId)
281283 let aY = value(aW.amount)
282284 let bb = {
283285 let bc = invoke(B, "isVerifiedREADONLY", [L], nil)
284286 if ($isInstanceOf(bc, "Boolean"))
285287 then bc
286288 else throw(($getType(bc) + " couldn't be cast to Boolean"))
287289 }
288290 let aH = [if (bb)
289291 then true
290292 else i("token not verified"), if ((bm >= bn))
291293 then true
292- else i("not enough gWXes"), if ((aY >= getIntegerValue(ad)))
294+ else i("not enough gWXes"), if ((aX == E))
295+ then true
296+ else i("payment should be in wx"), if ((aY >= getIntegerValue(ad)))
293297 then true
294298 else i("payment less then min for suggest")]
295299 if ((aH == aH))
296300 then {
297301 let bd = S(L)
298302 let aE = getInteger(bd)
299303 let be = if (isDefined(aE))
300304 then (value(aE) + 1)
301305 else 0
302306 let aU = valueOrErrorMessage(getInteger(H), g("periodLengthRemove not set"))
303307 let am = (height + aU)
304308 let an = valueOrErrorMessage(getInteger(G), g("votingThresholdRemove not set"))
305309 let aA = af(false, "EMPTY", 0, "deverification", d, height, (height + aU), an, 0, 0)
306310 let bo = {
307311 let l = getString(aq(L))
308312 if ($isInstanceOf(l, "String"))
309313 then {
310314 let aw = l
311315 nil
312316 }
313317 else if ($isInstanceOf(l, "Unit"))
314318 then {
315319 let bp = {
316320 let bc = invoke(B, "getAssetLogoREADONLY", [L], nil)
317321 if ($isInstanceOf(bc, "String"))
318322 then bc
319323 else throw(($getType(bc) + " couldn't be cast to String"))
320324 }
321325 [StringEntry(aq(L), bp)]
322326 }
323327 else throw("Match error")
324328 }
325329 ([IntegerEntry(bd, be), StringEntry(Y(L, be), toString(aT.caller)), StringEntry(ae(L, be), aA)] ++ bo)
326330 }
327331 else throw("Strict value is not equal to itself.")
328332 }
329333
330334
331335
332336 @Callable(aT)
333337 func vote (L,W) = {
334338 let bd = S(L)
335339 let aE = valueOrErrorMessage(getInteger(bd), g("voting does not exist"))
336340 let aA = aD(L, aE)
337341 if ((aA == aA))
338342 then {
339343 let bq = aA._2
340344 let br = ar(toString(aT.caller), bq)
341345 let aK = T(L, aE, aT.caller)
342346 let aH = [if ((getString(aK) == unit))
343347 then true
344348 else i("You have already voted"), if ((br > 0))
345349 then true
346350 else throw("You'll not have gWX at the end of voting")]
347351 if ((aH == aH))
348352 then {
349353 let aN = valueOrErrorMessage(getString(ae(L, aE)), g("voting info not found"))
350354 let aB = az(aN)
351355 let ao = aB._9
352356 let ap = aB._10
353357 let bs = if (W)
354358 then $Tuple2((ao + br), ap)
355359 else $Tuple2(ao, (ap + br))
356360 let bt = bs._1
357361 let bu = bs._2
358362 let bv = af(aB._1, aB._2, aB._3, aB._4, aB._5, aB._6, aB._7, aB._8, bt, bu)
359363 let bw = {
360364 let l = getString(K(L, aE))
361365 if ($isInstanceOf(l, "String"))
362366 then {
363367 let bx = l
364368 [StringEntry(N(aT.caller, L, aE), V(W, br))]
365369 }
366370 else if ($isInstanceOf(l, "Unit"))
367371 then nil
368372 else throw("Match error")
369373 }
370374 ([StringEntry(aK, V(W, br)), StringEntry(ae(L, aE), bv)] ++ bw)
371375 }
372376 else throw("Strict value is not equal to itself.")
373377 }
374378 else throw("Strict value is not equal to itself.")
375379 }
376380
377381
378382
379383 @Callable(aT)
380384 func cancelVote (L) = {
381385 let bd = S(L)
382386 let aE = valueOrErrorMessage(getInteger(bd), g("voting does not exist"))
383387 let aK = T(L, aE, aT.caller)
384388 let aL = valueOrErrorMessage(getString(aK), g("you have not voted"))
385389 let aM = split(aL, a)
386390 let W = aM[1]
387391 let X = parseIntValue(aM[2])
388392 let aA = aD(L, aE)
389393 if ((aA == aA))
390394 then {
391395 let aH = [if (if ((W == "true"))
392396 then true
393397 else (W == "false"))
394398 then true
395399 else i("invalid vote")]
396400 if ((aH == aH))
397401 then {
398402 let aN = valueOrErrorMessage(getString(ae(L, aE)), g("voting info not found"))
399403 let aB = az(aN)
400404 let ao = aB._9
401405 let ap = aB._10
402406 let by = if ((W == "true"))
403407 then $Tuple2((ao - X), ap)
404408 else $Tuple2(ao, (ap - X))
405409 let bt = by._1
406410 let bu = by._2
407411 let bv = af(aB._1, aB._2, aB._3, aB._4, aB._5, aB._6, aB._7, aB._8, bt, bu)
408412 [StringEntry(ae(L, aE), bv), DeleteEntry(aK), DeleteEntry(N(aT.caller, L, aE))]
409413 }
410414 else throw("Strict value is not equal to itself.")
411415 }
412416 else throw("Strict value is not equal to itself.")
413417 }
414418
415419
416420
417421 @Callable(aT)
418422 func finalize (L) = {
419423 let bd = S(L)
420424 let aE = valueOrElse(getInteger(bd), 0)
421425 let bz = valueOrErrorMessage(getInteger(F), g("votingThresholdAdd not set"))
422426 let bA = valueOrErrorMessage(getInteger(G), g("votingThresholdRemove not set"))
423427 let aN = valueOrErrorMessage(getString(ae(L, aE)), g("voting info not found"))
424428 let aB = az(aN)
425429 let aj = aB._4
426430 let ak = aB._5
427431 let am = aB._7
428432 let bB = aB._8
429433 let ao = aB._9
430434 let ap = aB._10
431435 let aH = [if ((ak == d))
432436 then true
433437 else i("voting not in progress"), if ((height >= am))
434438 then true
435439 else i("voting not finished"), if (isDefined(getString(aq(L))))
436440 then true
437441 else i("asset image not set")]
438442 if ((aH == aH))
439443 then {
440444 let bC = if (if (((ao + ap) >= bB))
441445 then (ao > ap)
442446 else false)
443447 then true
444448 else false
445449 let bD = if (bC)
446450 then e
447451 else f
448452 let aV = getStringValue(aq(L))
449453 let bE = if (bC)
450454 then {
451455 let bF = if ((aj == "verification"))
452456 then invoke(B, "createOrUpdate", [L, aV, true], nil)
453457 else [invoke(B, "setVerified", [L, false], nil), invoke(B, "onEliminate", [L], nil)]
454458 bF
455459 }
456460 else nil
457461 if ((bE == bE))
458462 then {
459463 let bv = af(aB._1, aB._2, aB._3, aB._4, bD, aB._6, aB._7, aB._8, aB._9, aB._10)
460464 let bk = getIntegerValue(Q)
461465 let bG = addressFromStringValue(getStringValue(Y(L, aE)))
462466 let bH = getString(K(L, aE))
463467 let bI = getInteger(P(L, aE))
464468 let bJ = if (if (if (bC)
465469 then true
466470 else (bH == unit))
467471 then true
468472 else (bI == unit))
469473 then nil
470474 else [ScriptTransfer(bG, value(bI), n(value(bH)))]
471475 ([StringEntry(ae(L, aE), bv), ScriptTransfer(aT.caller, bk, E)] ++ bJ)
472476 }
473477 else throw("Strict value is not equal to itself.")
474478 }
475479 else throw("Strict value is not equal to itself.")
476480 }
477481
478482
479483
480484 @Callable(aT)
481485 func claimREADONLY (L,M,bK) = {
482486 let O = valueOrErrorMessage(addressFromString(bK), g("invalid address"))
483487 let bL = getString(K(L, M))
484488 let ai = if (isDefined(bL))
485489 then aI(O, L, M)._1
486490 else 0
487491 $Tuple2(nil, ai)
488492 }
489493
490494
491495
492496 @Callable(aT)
493497 func claim (L,M) = {
494498 let bM = aT.caller
495499 let bN = Z(bM, L, M)
496500 let bO = getInteger(bN)
497501 let aH = [if ((bO == unit))
498502 then true
499503 else i("already claimed")]
500504 if ((aH == aH))
501505 then {
502506 let bP = aI(bM, L, M)
503507 let ai = bP._1
504508 let aS = bP._2
505509 if (!(aS))
506510 then i("nothing to claim")
507511 else {
508512 let bL = getString(K(L, M))
509513 let bQ = if (isDefined(bL))
510514 then {
511- let bR = fromBase58String(value(bL))
515+ let bR = n(value(bL))
512516 [ScriptTransfer(bM, ai, bR), IntegerEntry(bN, ai), DeleteEntry(N(bM, L, M))]
513517 }
514518 else i("nothing to claim")
515519 bQ
516520 }
517521 }
518522 else throw("Strict value is not equal to itself.")
519523 }
520524
521525
522526 @Verifier(bS)
523527 func bT () = {
524528 let bU = {
525529 let l = ax()
526530 if ($isInstanceOf(l, "ByteVector"))
527531 then {
528532 let bx = l
529533 bx
530534 }
531535 else if ($isInstanceOf(l, "Unit"))
532536 then bS.senderPublicKey
533537 else throw("Match error")
534538 }
535539 sigVerify(bS.bodyBytes, bS.proofs[0], bU)
536540 }
537541

github/deemru/w8io/169f3d6 
65.27 ms