tx · 4X13VRdECkXCzt99MBMHX1k6LgDjp9UMgNXyhs6JVxjg 3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1: -0.01000000 Waves 2020.11.06 14:03 [2317160] smart account 3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1 > SELF 0.00000000 Waves
{ "type": 13, "id": "4X13VRdECkXCzt99MBMHX1k6LgDjp9UMgNXyhs6JVxjg", "fee": 1000000, "feeAssetId": null, "timestamp": 1604660604713, "version": 2, "chainId": 87, "sender": "3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "senderPublicKey": "5aTg4oxM77iRmUGy3y8Zavn5fhVbgtUciAuSGfCJAYjn", "proofs": [ "5N565o1x4G2HHcMfstx7yp4etDcEn11rbkgUnhpxk4mDdS2qRejbDNiBRy33WB4mk2o9Si8XyberUxRnVy4AWx6r" ], "script": "base64:AAIEAAAAAAAAABsIAhIAEgMKAQESBAoCAQESABIECgIBARIAEgAAAAA3AAAAAAd2ZXJzaW9uAgAAAAUyLjAuMAAAAAAKa2V5VmVyc2lvbgIAAAAHdmVyc2lvbgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAAC2tleUFzc2V0SWRBAgAAAApBX2Fzc2V0X2lkAAAAAAtrZXlBc3NldElkQgIAAAAKQl9hc3NldF9pZAAAAAALa2V5QmFsYW5jZUECAAAAD0FfYXNzZXRfYmFsYW5jZQAAAAALa2V5QmFsYW5jZUICAAAAD0JfYXNzZXRfYmFsYW5jZQAAAAAPa2V5U2hhcmVBc3NldElkAgAAAA5zaGFyZV9hc3NldF9pZAAAAAATa2V5U2hhcmVBc3NldFN1cHBseQIAAAASc2hhcmVfYXNzZXRfc3VwcGx5AAAAAA1rZXlDb21taXNzaW9uAgAAAApjb21taXNzaW9uAAAAABtrZXlDb21taXNzaW9uU2NhbGVEZWxpbWl0ZXICAAAAGmNvbW1pc3Npb25fc2NhbGVfZGVsaW1pdGVyAAAAABdrZXlDb21taXNzaW9uR292ZXJuYW5jZQIAAAAVY29tbWlzc2lvbl9nb3Zlcm5hbmNlAAAAAAxrZXlJbnZhcmlhbnQCAAAACWludmFyaWFudAAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAAxhZG1pblB1YktleTEBAAAAILoJ1zuJWaTRXaD/8bsz0KrhOWkPy+K9kdY77k9eqOATAAAAAAxhZG1pblB1YktleTIBAAAAIMKRRJmz0rC0DSKlkVi9iLyhN7sIy//djOaU71sWDn5AAAAAAAxhZG1pblB1YktleTMBAAAAII4eFy54sQc79EhOejMoYHYod/yZ5ZIwoyDCz6ir6Q5VAAAAABFnb3Zlcm5hbmNlQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVy/kXyChDk0K0DSxrx6s2TL7zcR9Ux8M8QAAAAAIaXNBY3RpdmUJAQAAABFAZXh0ck5hdGl2ZSgxMDUxKQAAAAIFAAAABHRoaXMFAAAACWtleUFjdGl2ZQAAAAALc3RyQXNzZXRJZEEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAA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AAIFAAAAC3NjYWxlVmFsdWU4CQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgAAAAAAAAAAAEAAAAAAACYloAEAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQFAAAAFW1pblRva2VuUmVjZWl2ZUFtb3VudAQAAAARYW1vdW50VG9TZW5kU3RlcDEJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAQUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwMgkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAACBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAEWFtb3VudFRvU2VuZFN0ZXAzCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAMFAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDQJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAABAUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwNQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAFBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAAXkJAABkAAAAAgUAAAAMYW1vdW50VG9rZW5CBQAAABJ0b2tlblJlY2VpdmVBbW91bnQEAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvCQAAawAAAAMFAAAACWludmFyaWFudAUAAAALc2NhbGVWYWx1ZTgJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkEFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAUAAAABeQMJAABmAAAAAgAAAAAAAAAAAAkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5BBQAAABFhbW91bnRUb1NlbmRTdGVwNQUAAAABeQUAAAAJaW52YXJpYW50CQAAAgAAAAECAAAAJG1pblRva2VuUmVjZWl2ZUFtb3VudCB0b28gbGFyZ2UuZXJyMQMDCQAAZgAAAAIFAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvBQAAAA1zbGlwcGFnZVZhbHVlCQAAZgAAAAIFAAAAC3NjYWxlVmFsdWU4BQAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwcFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5BBQAAABFhbW91bnRUb1NlbmRTdGVwMQUAAAABeQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDEJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAADGFtb3VudFRva2VuQQUAAAARYW1vdW50VG9TZW5kU3RlcDIFAAAAAXkFAAAACWludmFyaWFudAAAAAAAAAAAAAkAAGkAAAACCQAAaAAAAAIFAAAAEWFtb3VudFRvU2VuZFN0ZXAyCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkEFAAAAEWFtb3VudFRvU2VuZFN0ZXAzBQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMwkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5BBQAAABFhbW91bnRUb1NlbmRTdGVwNAUAAAABeQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDQJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAADGFtb3VudFRva2VuQQUAAAARYW1vdW50VG9TZW5kU3RlcDUFAAAAAXkFAAAACWludmFyaWFudAAAAAAAAAAAAAkAAGkAAAACCQAAaAAAAAIFAAAAEWFtb3VudFRvU2VuZFN0ZXA1CQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyCQAAAgAAAAECAAAAPnNvbWV0aGluZyB3ZW50IHdyb25nIHdoaWxlIHdvcmtpbmcgd2l0aCBhbW91bnRUb1NlbmRTdGVwLiBlcnIyAQAAABpjYWxjdWxhdGVIb3dNYW55U2VuZFRva2VuQgAAAAUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkAAAAFW1pblRva2VuUmVjZWl2ZUFtb3VudAAAAAxhbW91bnRUb2tlbkEAAAAMYW1vdW50VG9rZW5CAAAAEnRva2VuUmVjZWl2ZUFtb3VudAQAAAANc2xpcHBhZ2VWYWx1ZQkAAGUAAAACBQAAAAtzY2FsZVZhbHVlOAkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4AAAAAAAAAAABAAAAAAAAmJaABAAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkBQAAABVtaW5Ub2tlblJlY2VpdmVBbW91bnQEAAAAEWFtb3VudFRvU2VuZFN0ZXAxCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAEFAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDIJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAgUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwMwkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAADBQAAAB5kZWx0YUJldHdlZW5NYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAEWFtb3VudFRvU2VuZFN0ZXA0CQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAQFAAAAHmRlbHRhQmV0d2Vlbk1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDUJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAABQUAAAAeZGVsdGFCZXR3ZWVuTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAAAF4CQAAZAAAAAIFAAAADGFtb3VudFRva2VuQQUAAAASdG9rZW5SZWNlaXZlQW1vdW50BAAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwkAAGsAAAADBQAAAAlpbnZhcmlhbnQFAAAAC3NjYWxlVmFsdWU4CQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAAXgJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5CBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQDCQAAZgAAAAIAAAAAAAAAAAAJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACBQAAAAF4CQAAZQAAAAIFAAAADGFtb3VudFRva2VuQgUAAAARYW1vdW50VG9TZW5kU3RlcDUFAAAACWludmFyaWFudAkAAAIAAAABAgAAACRtaW5Ub2tlblJlY2VpdmVBbW91bnQgdG9vIGxhcmdlLmVycjEDAwkAAGYAAAACBQAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwUAAAANc2xpcHBhZ2VWYWx1ZQkAAGYAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAAXaW52YXJpYW50RXN0aW1hdGVkUmF0aW8HBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACBQAAAAF4CQAAZQAAAAIFAAAADGFtb3VudFRva2VuQgUAAAARYW1vdW50VG9TZW5kU3RlcDEFAAAACWludmFyaWFudAAAAAAAAAAAAAkAAGkAAAACCQAAaAAAAAIFAAAAEWFtb3VudFRvU2VuZFN0ZXAxCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkIFAAAAEWFtb3VudFRvU2VuZFN0ZXAyBQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMgkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAAXgJAABlAAAAAgUAAAAMYW1vdW50VG9rZW5CBQAAABFhbW91bnRUb1NlbmRTdGVwMwUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDMJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACBQAAAAF4CQAAZQAAAAIFAAAADGFtb3VudFRva2VuQgUAAAARYW1vdW50VG9TZW5kU3RlcDQFAAAACWludmFyaWFudAAAAAAAAAAAAAkAAGkAAAACCQAAaAAAAAIFAAAAEWFtb3VudFRvU2VuZFN0ZXA0CQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkIFAAAAEWFtb3VudFRvU2VuZFN0ZXA1BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwNQkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgkAAAIAAAABAgAAAD5zb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSB3b3JraW5nIHdpdGggYW1vdW50VG9TZW5kU3RlcC4gZXJyMgEAAAAMZ2V0QXNzZXRJbmZvAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJpZAUAAAAHJG1hdGNoMAQAAAAIc3RyaW5nSWQJAAJYAAAAAQUAAAACaWQEAAAABGluZm8JAQAAABN2YWx1ZU9y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RGVjaW1hbHNBBQAAAAhIQUxGRE9XTgkAAGwAAAAGBQAAAApwbXRBbW91bnRCBQAAAAxwbXREZWNpbWFsc0IAAAAAAAAAAAUAAAAAAAAAAAEFAAAADHBtdERlY2ltYWxzQgUAAAAISEFMRkRPV04JAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAUAAAANc2hhcmVEZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAISEFMRkRPV04EAAAACnNoYXJlSXNzdWUJAARCAAAABQUAAAAJc2hhcmVOYW1lBQAAABBzaGFyZURlc2NyaXB0aW9uBQAAABJzaGFyZUluaXRpYWxTdXBwbHkFAAAADXNoYXJlRGVjaW1hbHMGBAAAAAxzaGFyZUlzc3VlSWQJAAQ4AAAAAQUAAAAKc2hhcmVJc3N1ZQQAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkBAAAADWludmFyaWFudENhbGMAAAACBQAAAApwbXRBbW91bnRBBQAAAApwbXRBbW91bnRCCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACmtleVZlcnNpb24FAAAAB3ZlcnNpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAALa2V5QXNzZXRJZEEFAAAADnBtdFN0ckFzc2V0SWRBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAC2tleUFzc2V0SWRCBQAAAA5wbXRTdHJBc3NldElkQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAACnBtdEFtb3VudEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAApwbXRBbW91bnRCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleUNvbW1pc3Npb24FAAAACmNvbW1pc3Npb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleUNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyCQAETAAAAAIFAAAACnNoYXJlSXNzdWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPa2V5U2hhcmVBc3NldElkCQACWAAAAAEFAAAADHNoYXJlSXNzdWVJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQUAAAASc2hhcmVJbml0aWFsU3VwcGx5CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAASc2hhcmVJbml0aWFsU3VwcGx5BQAAAAxzaGFyZUlzc3VlSWQFAAAAA25pbAAAAAFpAQAAABZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zAAAAAQAAABFzbGlwcGFnZVRvbGVyYW5jZQQAAAANJHQwMTEwNTYxMTEzMwkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACnBtdEFtb3VudEEIBQAAAA0kdDAxMTA1NjExMTMzAAAAAl8xBAAAAAtwbXRBc3NldElkQQgFAAAADSR0MDExMDU2MTExMzMAAAACXzIEAAAADSR0MDExMTM4MTEzMzIJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAdhc3NldElkBAAAAApwbXRBbW91bnRCCAUAAAANJHQwMTExMzgxMTMzMgAAAAJfMQQAAAALcG10QXNzZXRJZEIIBQAAAA0kdDAxMTEzODExMzMyAAAAAl8yBAAAAAp0b2tlblJhdGlvCQAAaQAAAAIJAABrAAAAAwUAAAAIYmFsYW5jZUEJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgFAAAAC3NjYWxlVmFsdWUzBQAAAApwbXRBbW91bnRBCQAAawAAAAMFAAAACGJhbGFuY2VCBQAAAAtzY2FsZVZhbHVlOAUAAAAKcG10QW1vdW50QgQAAAATcmF0aW9TaGFyZVRva2Vuc0luQQkAAGsAAAADBQAAAApwbXRBbW91bnRBBQAAAAtzY2FsZVZhbHVlOAUAAAAIYmFsYW5jZUEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwUAAAAKcG10QW1vdW50QgUAAAALc2NhbGVWYWx1ZTgFAAAACGJhbGFuY2VCBAAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAABrAAAAAwkAAZcAAAABCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAARMAAAAAgUAAAATcmF0aW9TaGFyZVRva2Vuc0luQgUAAAADbmlsBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAtzY2FsZVZhbHVlOAQAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkBAAAADWludmFyaWFudENhbGMAAAACCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAApwbXRBbW91bnRBCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAAApwbXRBbW91bnRCAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwMJAABmAAAAAgAAAAAAAAAAAAUAAAARc2xpcHBhZ2VUb2xlcmFuY2UGCQAAZgAAAAIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAClTbGlwcGFnZSB0b2xlcmFuY2UgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIAkAAaQAAAABBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgIAAAAWIGluY2x1c2l2ZWx5LiBBY3R1YWw6IAkAAaQAAAABBQAAABFzbGlwcGFnZVRvbGVyYW5jZQMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAIJAAACAAAAAQIAAAAcVHdvIGF0dGFjaGVkIGFzc2V0cyBleHBlY3RlZAMDCQEAAAACIT0AAAACBQAAAAtwbXRBc3NldElkQQUAAAAIYXNzZXRJZEEGCQEAAAACIT0AAAACBQAAAAtwbXRBc3NldElkQgUAAAAIYXNzZXRJZEIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAlSW5jb3JyZWN0IGFzc2V0cyBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAUAAAALc3RyQXNzZXRJZEECAAAABSBhbmQgBQAAAAtzdHJBc3NldElkQgMDCQAAZgAAAAIJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlMwkAAGUAAAACBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAAAp0b2tlblJhdGlvBgkAAGYAAAACBQAAAAp0b2tlblJhdGlvCQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTMJAABkAAAAAgUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgkAAAIAAAABAgAAAD1JbmNvcnJlY3QgYXNzZXRzIGFtb3VudDogYW1vdW50cyBtdXN0IGhhdmUgdGhlIGNvbnRyYWN0IHJhdGlvAwkAAAAAAAACBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAdVG9vIHNtYWxsIGFtb3VudCB0byByZXBsZW5pc2gDCQEAAAABIQAAAAEFAAAAEGhhc0Vub3VnaEJhbGFuY2UJAQAAAAdzdXNwZW5kAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAjU3VzcGljaW91cyBzdGF0ZS4gQWN0dWFsIGJhbGFuY2VzOiAJAAGkAAAAAQUAAAAIYmFsYW5jZUECAAAAASAFAAAACmFzc2V0TmFtZUECAAAAAiwgCQABpAAAAAEFAAAACGJhbGFuY2VCAgAAAAEgBQAAAAphc3NldE5hbWVCAgAAAAkuIFN0YXRlOiAJAAGkAAAAAQkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEECAAAAASAFAAAACmFzc2V0TmFtZUECAAAAAiwgCQABpAAAAAEJAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEFAAAACGFzc2V0SWRCAgAAAAEgBQAAAAphc3NldE5hbWVCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAKcG10QW1vdW50QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACnBtdEFtb3VudEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABkAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAxzaGFyZUFzc2V0SWQFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQFAAAADHNoYXJlQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAFXJlcGxlbmlzaFdpdGhPbmVUb2tlbgAAAAIAAAATdmlydHVhbFN3YXBUb2tlblBheQAAABN2aXJ0dWFsU3dhcFRva2VuR2V0BAAAAA0kdDAxMzY5NDEzNzY5CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAANJHQwMTM2OTQxMzc2OQAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAADSR0MDEzNjk0MTM3NjkAAAACXzIEAAAAEHNsaXBwYWdlVmFsdWVNaW4JAABlAAAAAgUAAAALc2NhbGVWYWx1ZTgJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAAAAAAAAAAAAQAAAAAAAJiWgAQAAAAQc2xpcHBhZ2VWYWx1ZU1heAkAAGQAAAACBQAAAAtzY2FsZVZhbHVlOAkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4AAAAAAAAAAABAAAAAAAAmJaAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAAB1PbmUgYXR0YWNoZWQgcGF5bWVudCBleHBlY3RlZAMJAQAAAAEhAAAAAQUAAAAQaGFzRW5vdWdoQmFsYW5jZQkBAAAAB3N1c3BlbmQAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACNTdXNwaWNpb3VzIHN0YXRlLiBBY3R1YWwgYmFsYW5jZXM6IAkAAaQAAAABBQAAAAhiYWxhbmNlQQIAAAABIAUAAAAKYXNzZXROYW1lQQIAAAACLCAJAAGkAAAAAQUAAAAIYmFsYW5jZUICAAAAASAFAAAACmFzc2V0TmFtZUICAAAACS4gU3RhdGU6IAkAAaQAAAABCQEAAAAOYWNjb3VudEJhbGFuY2UAAAABBQAAAAhhc3NldElkQQIAAAABIAUAAAAKYXNzZXROYW1lQQIAAAACLCAJAAGkAAAAAQkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEICAAAAASAFAAAACmFzc2V0TmFtZUIDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAACGFzc2V0SWRBBAAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5BCQAAZQAAAAIFAAAACXBtdEFtb3VudAUAAAATdmlydHVhbFN3YXBUb2tlblBheQQAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgUAAAATdmlydHVhbFN3YXBUb2tlbkdldAQAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBBCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAABN2aXJ0dWFsU3dhcFRva2VuUGF5BAAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAAE3ZpcnR1YWxTd2FwVG9rZW5HZXQEAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvCQAAawAAAAMFAAAACWludmFyaWFudAUAAAALc2NhbGVWYWx1ZTgJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBBBQAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEIDAwkAAGYAAAACBQAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwUAAAAQc2xpcHBhZ2VWYWx1ZU1pbgkAAGcAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAAXaW52YXJpYW50RXN0aW1hdGVkUmF0aW8HBAAAACVyYXRpb1ZpcnR1YWxCYWxhbmNlVG9WaXJ0dWFsUmVwbGVuaXNoCQAAaQAAAAIJAABrAAAAAwUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBBCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4BQAAAAtzY2FsZVZhbHVlOAUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBCCQAAawAAAAMFAAAAHGFtb3VudFZpcnR1YWxSZXBsZW5pc2hUb2tlbkEFAAAAC3NjYWxlVmFsdWU4BQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5CAwMJAABmAAAAAgUAAAAQc2xpcHBhZ2VWYWx1ZU1pbgUAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAYJAABmAAAAAgUAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAUAAAAQc2xpcHBhZ2VWYWx1ZU1heAkAAAIAAAABAgAAAGZzd29wIHdpdGggdmlydHVhbFN3YXBUb2tlblBheSBhbmQgdmlydHVhbFN3YXBUb2tlbkdldCBwb3NzaWJsZSwgYnV0IHJhdGlvIGFmdGVyIHZpcnR1YWwgc3dhcCBpbmNvcnJlY3QEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAABrAAAAAwUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQQUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQQAAAATcmF0aW9TaGFyZVRva2Vuc0luQgkAAGsAAAADBQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5CBQAAAAtzY2FsZVZhbHVlOAUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBCBAAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAABrAAAAAwkAAZcAAAABCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAARMAAAAAgUAAAATcmF0aW9TaGFyZVRva2Vuc0luQgUAAAADbmlsBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAtzY2FsZVZhbHVlOAQAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkBAAAADWludmFyaWFudENhbGMAAAACCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAAlwbXRBbW91bnQFAAAACGJhbGFuY2VCCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAMc2hhcmVBc3NldElkBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABkAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQFAAAAA25pbAkAAAIAAAABAgAAADppbmNvcnJlY3QgdmlydHVhbFN3YXBUb2tlblBheSBvciB2aXJ0dWFsU3dhcFRva2VuR2V0IHZhbHVlAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQgQAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgkAAGUAAAACBQAAAAlwbXRBbW91bnQFAAAAE3ZpcnR1YWxTd2FwVG9rZW5QYXkEAAAAHGFtb3VudFZpcnR1YWxSZXBsZW5pc2hUb2tlbkEFAAAAE3ZpcnR1YWxTd2FwVG9rZW5HZXQEAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAATdmlydHVhbFN3YXBUb2tlbkdldAQAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBCCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAABN2aXJ0dWFsU3dhcFRva2VuUGF5BAAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwkAAGsAAAADBQAAAAlpbnZhcmlhbnQFAAAAC3NjYWxlVmFsdWU4CQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQUAAAAYYmFsYW5jZUFmdGVyVmlydHVhbFN3YXBCAwMJAABmAAAAAgUAAAAXaW52YXJpYW50RXN0aW1hdGVkUmF0aW8FAAAAEHNsaXBwYWdlVmFsdWVNaW4JAABnAAAAAgUAAAALc2NhbGVWYWx1ZTgFAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvBwQAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAkAAGkAAAACCQAAawAAAAMFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQQkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQgkAAGsAAAADBQAAABxhbW91bnRWaXJ0dWFsUmVwbGVuaXNoVG9rZW5BBQAAAAtzY2FsZVZhbHVlOAUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgMDCQAAZgAAAAIFAAAAEHNsaXBwYWdlVmFsdWVNaW4FAAAAJXJhdGlvVmlydHVhbEJhbGFuY2VUb1ZpcnR1YWxSZXBsZW5pc2gGCQAAZgAAAAIFAAAAJXJhdGlvVmlydHVhbEJhbGFuY2VUb1ZpcnR1YWxSZXBsZW5pc2gFAAAAEHNsaXBwYWdlVmFsdWVNYXgJAAACAAAAAQIAAABmc3dvcCB3aXRoIHZpcnR1YWxTd2FwVG9rZW5QYXkgYW5kIHZpcnR1YWxTd2FwVG9rZW5HZXQgcG9zc2libGUsIGJ1dCByYXRpbyBhZnRlciB2aXJ0dWFsIHN3YXAgaW5jb3JyZWN0BAAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAAawAAAAMFAAAAHGFtb3VudFZpcnR1YWxSZXBsZW5pc2hUb2tlbkEFAAAAC3NjYWxlVmFsdWU4BQAAABhiYWxhbmNlQWZ0ZXJWaXJ0dWFsU3dhcEEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwUAAAAcYW1vdW50VmlydHVhbFJlcGxlbmlzaFRva2VuQgUAAAALc2NhbGVWYWx1ZTgFAAAAGGJhbGFuY2VBZnRlclZpcnR1YWxTd2FwQgQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAawAAAAMJAAGXAAAAAQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIFAAAAA25pbAUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAALc2NhbGVWYWx1ZTgEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAAIYmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAADHNoYXJlQXNzZXRJZAUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAUAAAAMc2hhcmVBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlTaGFyZUFzc2V0U3VwcGx5CQAAZAAAAAIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50BQAAABNpbnZhcmlhbnRDYWxjdWxhdGVkBQAAAANuaWwJAAACAAAAAQIAAAA6aW5jb3JyZWN0IHZpcnR1YWxTd2FwVG9rZW5QYXkgb3IgdmlydHVhbFN3YXBUb2tlbkdldCB2YWx1ZQkAAAIAAAABAgAAABtpbmNvcnJlY3QgYXNzZXRzIGluIHBheW1lbnQAAAABaQEAAAAId2l0aGRyYXcAAAAABAAAAA0kdDAxODc2MjE4ODM3CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAANJHQwMTg3NjIxODgzNwAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAADSR0MDE4NzYyMTg4MzcAAAACXzIEAAAADGFtb3VudFRvUGF5QQkAAGsAAAADBQAAAAlwbXRBbW91bnQFAAAACGJhbGFuY2VBBQAAABBzaGFyZUFzc2V0U3VwcGx5BAAAAAxhbW91bnRUb1BheUIJAABrAAAAAwUAAAAJcG10QW1vdW50BQAAAAhiYWxhbmNlQgUAAAAQc2hhcmVBc3NldFN1cHBseQQAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAACGJhbGFuY2VBBQAAAAxhbW91bnRUb1BheUEJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADGFtb3VudFRvUGF5QgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAAxzaGFyZUFzc2V0SWQJAAACAAAAAQkAASwAAAACAgAAACRJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQuIEV4cGVjdGVkOiAJAAJYAAAAAQUAAAAMc2hhcmVBc3NldElkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQEAAAAHc3VzcGVuZAAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAI1N1c3BpY2lvdXMgc3RhdGUuIEFjdHVhbCBiYWxhbmNlczogCQABpAAAAAEFAAAACGJhbGFuY2VBAgAAAAEgBQAAAAphc3NldE5hbWVBAgAAAAIsIAkAAaQAAAABBQAAAAhiYWxhbmNlQgIAAAABIAUAAAAKYXNzZXROYW1lQgIAAAAJLiBTdGF0ZTogCQABpAAAAAEJAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEFAAAACGFzc2V0SWRBAgAAAAEgBQAAAAphc3NldE5hbWVBAgAAAAIsIAkAAaQAAAABCQEAAAAOYWNjb3VudEJhbGFuY2UAAAABBQAAAAhhc3NldElkQgIAAAABIAUAAAAKYXNzZXROYW1lQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADGFtb3VudFRvUGF5QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADGFtb3VudFRvUGF5QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQkAAGUAAAACBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAlwbXRBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUludmFyaWFudAUAAAATaW52YXJpYW50Q2FsY3VsYXRlZAkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADHNoYXJlQXNzZXRJZAUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAMYW1vdW50VG9QYXlBBQAAAAhhc3NldElkQQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvUGF5QgUAAAAIYXNzZXRJZEIFAAAAA25pbAAAAAFpAQAAAAhleGNoYW5nZQAAAAIAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQQAAAANJHQwMjAyMDIyMDI3NwkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDIwMjAyMjAyNzcAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAyMDIwMjIwMjc3AAAAAl8yAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkAAGcAAAACAAAAAAAAAAAABQAAABhlc3RpbWF0ZWRBbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACAgAAACtFc3RpbWF0ZWQgYW1vdW50IG11c3QgYmUgcG9zaXRpdmUuIEFjdHVhbDogCQABpAAAAAEFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQMJAABmAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAABhlc3RpbWF0ZWRBbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA7TWluaW1hbCBhbW91bnQgY2FuJ3QgYmUgZ3JlYXRlciB0aGFuIGVzdGltYXRlZC4gRXN0aW1hdGVkOiAJAAGkAAAAAQUAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlAgAAAAsuIE1pbmltYWw6IAkAAaQAAAABBQAAABJtaW5BbW91bnRUb1JlY2VpdmUDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQEAAAAHc3VzcGVuZAAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAI1N1c3BpY2lvdXMgc3RhdGUuIEFjdHVhbCBiYWxhbmNlczogCQABpAAAAAEFAAAACGJhbGFuY2VBAgAAAAEgBQAAAAphc3NldE5hbWVBAgAAAAIsIAkAAaQAAAABBQAAAAhiYWxhbmNlQgIAAAABIAUAAAAKYXNzZXROYW1lQgIAAAAJLiBTdGF0ZTogCQABpAAAAAEJAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEFAAAACGFzc2V0SWRBAgAAAAEgBQAAAAphc3NldE5hbWVBAgAAAAIsIAkAAaQAAAABCQEAAAAOYWNjb3VudEJhbGFuY2UAAAABBQAAAAhhc3NldElkQgIAAAABIAUAAAAKYXNzZXROYW1lQgMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAIYXNzZXRJZEEEAAAAC2Fzc2V0SWRTZW5kBQAAAAhhc3NldElkQgQAAAAQYW1vdW50V2l0aG91dEZlZQkBAAAAGmNhbGN1bGF0ZUhvd01hbnlTZW5kVG9rZW5CAAAABQUAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAACGJhbGFuY2VBBQAAAAhiYWxhbmNlQgUAAAAJcG10QW1vdW50BAAAAA1hbW91bnRXaXRoRmVlCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIEAAAAEGdvdmVybmFuY2VSZXdhcmQJAABrAAAAAwUAAAAQYW1vdW50V2l0aG91dEZlZQUAAAAUY29tbWlzc2lvbkdvdmVybmFuY2UFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgQAAAAPbmV3QW1vdW50VG9rZW5BCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAAlwbXRBbW91bnQEAAAAD25ld0Ftb3VudFRva2VuQgkAAGUAAAACCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAA1hbW91bnRXaXRoRmVlBQAAABBnb3Zlcm5hbmNlUmV3YXJkBAAAABNkQXBwVGhyZXNob2xkQW1vdW50CQAAawAAAAMJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACGJhbGFuY2VCBQAAAA1kQXBwVGhyZXNob2xkCQAAaAAAAAIAAAAAAAAAAAIFAAAAFmRBcHBUaHJlc2hvbGREZWxpbWl0ZXIDAwkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAA9uZXdBbW91bnRUb2tlbkEGCQAAZgAAAAIFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAD25ld0Ftb3VudFRva2VuQgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAADlOZXcgYmFsYW5jZSBpbiBhc3NldHMgb2YgdGhlIERBcHAgaXMgbGVzcyB0aGFuIHRocmVzaG9sZCAJAAGkAAAAAQUAAAATZEFwcFRocmVzaG9sZEFtb3VudAIAAAACLiAFAAAACmFzc2V0TmFtZUECAAAAAjogCQABpAAAAAEFAAAAD25ld0Ftb3VudFRva2VuQQIAAAACLCAFAAAACmFzc2V0TmFtZUICAAAAAjogCQABpAAAAAEFAAAAD25ld0Ftb3VudFRva2VuQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAAD25ld0Ftb3VudFRva2VuQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAAD25ld0Ftb3VudFRva2VuQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50CQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACXBtdEFtb3VudAkAAGUAAAACCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAA1hbW91bnRXaXRoRmVlBQAAABBnb3Zlcm5hbmNlUmV3YXJkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYW1vdW50V2l0aEZlZQUAAAALYXNzZXRJZFNlbmQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARZ292ZXJuYW5jZUFkZHJlc3MFAAAAEGdvdmVybmFuY2VSZXdhcmQFAAAAC2Fzc2V0SWRTZW5kBQAAAANuaWwDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAACGFzc2V0SWRCBAAAAAthc3NldElkU2VuZAUAAAAIYXNzZXRJZEEEAAAAEGFtb3VudFdpdGhvdXRGZWUJAQAAABpjYWxjdWxhdGVIb3dNYW55U2VuZFRva2VuQQAAAAUFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAhiYWxhbmNlQQUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAANYW1vdW50V2l0aEZlZQkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZQAAAAIFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBAAAABBnb3Zlcm5hbmNlUmV3YXJkCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIEAAAAD25ld0Ftb3VudFRva2VuQQkAAGUAAAACCQAAZQAAAAIFAAAACGJhbGFuY2VBBQAAAA1hbW91bnRXaXRoRmVlBQAAABBnb3Zlcm5hbmNlUmV3YXJkBAAAAA9uZXdBbW91bnRUb2tlbkIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAATZEFwcFRocmVzaG9sZEFtb3VudAkAAGsAAAADCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAAAhiYWxhbmNlQgUAAAANZEFwcFRocmVzaG9sZAkAAGgAAAACAAAAAAAAAAACBQAAABZkQXBwVGhyZXNob2xkRGVsaW1pdGVyAwMJAABmAAAAAgUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAAPbmV3QW1vdW50VG9rZW5BBgkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAA9uZXdBbW91bnRUb2tlbkIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA5TmV3IGJhbGFuY2UgaW4gYXNzZXRzIG9mIHRoZSBEQXBwIGlzIGxlc3MgdGhhbiB0aHJlc2hvbGQgCQABpAAAAAEFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQCAAAAAi4gBQAAAAphc3NldE5hbWVBAgAAAAI6IAkAAaQAAAABBQAAAA9uZXdBbW91bnRUb2tlbkECAAAAAiwgBQAAAAphc3NldE5hbWVCAgAAAAI6IAkAAaQAAAABBQAAAA9uZXdBbW91bnRUb2tlbkIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBBQAAAA9uZXdBbW91bnRUb2tlbkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAA9uZXdBbW91bnRUb2tlbkIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUludmFyaWFudAkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADWFtb3VudFdpdGhGZWUFAAAAEGdvdmVybmFuY2VSZXdhcmQJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWdvdmVybmFuY2VBZGRyZXNzBQAAABBnb3Zlcm5hbmNlUmV3YXJkBQAAAAthc3NldElkU2VuZAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJEluY29ycmVjdCBhc3NldCBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAUAAAALc3RyQXNzZXRJZEECAAAABCBvciAFAAAAC3N0ckFzc2V0SWRCAAAAAWkBAAAACHNodXRkb3duAAAAAAMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAAB3N1c3BlbmQAAAABAgAAAA9QYXVzZWQgYnkgYWRtaW4JAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAAAAAWkBAAAACGFjdGl2YXRlAAAAAAMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAhrZXlDYXVzZQUAAAADbmlsCQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAEmFkbWluUHViS2V5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxhZG1pblB1YktleTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAxhZG1pblB1YktleTMAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAEmFkbWluUHViS2V5MVNpZ25lZAUAAAASYWRtaW5QdWJLZXkyU2lnbmVkBQAAABJhZG1pblB1YktleTNTaWduZWQAAAAAAAAAAAIZ0C1I", "height": 2317160, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 8j8Bvnp8bJY4Z93CjgxecJXuRHajXGLe6vG6KNn13CK Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "2.0.0" | |
5 | + | ||
6 | + | let b = "version" | |
7 | + | ||
8 | + | let c = "active" | |
9 | + | ||
10 | + | let d = "A_asset_id" | |
11 | + | ||
12 | + | let e = "B_asset_id" | |
13 | + | ||
14 | + | let f = "A_asset_balance" | |
15 | + | ||
16 | + | let g = "B_asset_balance" | |
17 | + | ||
18 | + | let h = "share_asset_id" | |
19 | + | ||
20 | + | let i = "share_asset_supply" | |
21 | + | ||
22 | + | let j = "commission" | |
23 | + | ||
24 | + | let k = "commission_scale_delimiter" | |
25 | + | ||
26 | + | let l = "commission_governance" | |
27 | + | ||
28 | + | let m = "invariant" | |
29 | + | ||
30 | + | let n = "shutdown_cause" | |
31 | + | ||
32 | + | let o = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA' | |
33 | + | ||
34 | + | let p = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7' | |
35 | + | ||
36 | + | let q = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ' | |
37 | + | ||
38 | + | let r = Address(base58'3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp') | |
39 | + | ||
40 | + | let s = getBooleanValue(this, c) | |
41 | + | ||
42 | + | let t = getStringValue(this, d) | |
43 | + | ||
44 | + | let u = getStringValue(this, e) | |
45 | + | ||
46 | + | let v = if ((t == "WAVES")) | |
47 | + | then unit | |
48 | + | else fromBase58String(t) | |
49 | + | ||
50 | + | let w = if ((u == "WAVES")) | |
51 | + | then unit | |
52 | + | else fromBase58String(u) | |
53 | + | ||
54 | + | let x = { | |
55 | + | let y = v | |
56 | + | if ($isInstanceOf(y, "ByteVector")) | |
57 | + | then { | |
58 | + | let z = y | |
59 | + | value(assetInfo(z)).name | |
60 | + | } | |
61 | + | else if ($isInstanceOf(y, "Unit")) | |
62 | + | then { | |
63 | + | let A = y | |
64 | + | "WAVES" | |
65 | + | } | |
66 | + | else throw("Match error") | |
67 | + | } | |
68 | + | ||
69 | + | let B = { | |
70 | + | let y = w | |
71 | + | if ($isInstanceOf(y, "ByteVector")) | |
72 | + | then { | |
73 | + | let z = y | |
74 | + | value(assetInfo(z)).name | |
75 | + | } | |
76 | + | else if ($isInstanceOf(y, "Unit")) | |
77 | + | then { | |
78 | + | let A = y | |
79 | + | "WAVES" | |
80 | + | } | |
81 | + | else throw("Match error") | |
82 | + | } | |
83 | + | ||
84 | + | let C = getIntegerValue(this, f) | |
85 | + | ||
86 | + | let D = getIntegerValue(this, g) | |
87 | + | ||
88 | + | let E = fromBase58String(getStringValue(this, h)) | |
89 | + | ||
90 | + | let F = getIntegerValue(this, i) | |
91 | + | ||
92 | + | let G = getIntegerValue(this, m) | |
93 | + | ||
94 | + | let H = 500 | |
95 | + | ||
96 | + | let I = 200 | |
97 | + | ||
98 | + | let J = 1000000 | |
99 | + | ||
100 | + | let K = 1000 | |
101 | + | ||
102 | + | let L = 100000000 | |
103 | + | ||
104 | + | let M = 1000000000000 | |
105 | + | ||
106 | + | let N = 1000 | |
107 | + | ||
108 | + | let O = 8 | |
109 | + | ||
110 | + | let P = 12 | |
111 | + | ||
112 | + | let Q = 80 | |
113 | + | ||
114 | + | let R = 100 | |
115 | + | ||
116 | + | let S = 100000000 | |
117 | + | ||
118 | + | let T = 99999000 | |
119 | + | ||
120 | + | let U = 50 | |
121 | + | ||
122 | + | let V = 2 | |
123 | + | ||
124 | + | let W = 46000000 | |
125 | + | ||
126 | + | let X = 8 | |
127 | + | ||
128 | + | func Y (Z) = { | |
129 | + | let y = Z | |
130 | + | if ($isInstanceOf(y, "ByteVector")) | |
131 | + | then { | |
132 | + | let z = y | |
133 | + | assetBalance(this, z) | |
134 | + | } | |
135 | + | else if ($isInstanceOf(y, "Unit")) | |
136 | + | then { | |
137 | + | let A = y | |
138 | + | wavesBalance(this).available | |
139 | + | } | |
140 | + | else throw("Match error") | |
141 | + | } | |
142 | + | ||
143 | + | ||
144 | + | let aa = if ((Y(v) >= C)) | |
145 | + | then (Y(w) >= D) | |
146 | + | else false | |
147 | + | ||
148 | + | func ab (ac,ad) = (((fraction(M, ac, ad) + fraction(M, ad, ac)) / 2) / 10000) | |
149 | + | ||
150 | + | ||
151 | + | func ae (ac,ad) = { | |
152 | + | let af = ab(ac, ad) | |
153 | + | (fraction((ac + ad), L, pow(af, O, U, V, O, UP)) + (2 * fraction(pow(fraction(ac, ad, L), 0, 5, 1, (O / 2), DOWN), pow((af - W), O, U, V, O, DOWN), L))) | |
154 | + | } | |
155 | + | ||
156 | + | ||
157 | + | func ag (ah,ai,aj,ak,al) = { | |
158 | + | let am = (L - ((L * 1) / 10000000)) | |
159 | + | let an = (ah - ai) | |
160 | + | let ao = (ah - ((1 * an) / 5)) | |
161 | + | let ap = (ah - ((2 * an) / 5)) | |
162 | + | let aq = (ah - ((3 * an) / 5)) | |
163 | + | let ar = (ah - ((4 * an) / 5)) | |
164 | + | let as = (ah - ((5 * an) / 5)) | |
165 | + | let ad = (ak + al) | |
166 | + | let at = fraction(G, L, ae((aj - ah), ad)) | |
167 | + | if ((0 > (ae((aj - as), ad) - G))) | |
168 | + | then throw("minTokenReceiveAmount too large.err1") | |
169 | + | else if (if ((at > am)) | |
170 | + | then (L > at) | |
171 | + | else false) | |
172 | + | then ah | |
173 | + | else if (((ae((aj - ao), ad) - G) > 0)) | |
174 | + | then ((ao * (J - H)) / J) | |
175 | + | else if (((ae((aj - ap), ad) - G) > 0)) | |
176 | + | then ((ap * (J - H)) / J) | |
177 | + | else if (((ae((aj - aq), ad) - G) > 0)) | |
178 | + | then ((aq * (J - H)) / J) | |
179 | + | else if (((ae((aj - ar), ad) - G) > 0)) | |
180 | + | then ((ar * (J - H)) / J) | |
181 | + | else if (((ae((aj - as), ad) - G) > 0)) | |
182 | + | then ((as * (J - H)) / J) | |
183 | + | else throw("something went wrong while working with amountToSendStep. err2") | |
184 | + | } | |
185 | + | ||
186 | + | ||
187 | + | func au (ah,ai,aj,ak,al) = { | |
188 | + | let am = (L - ((L * 1) / 10000000)) | |
189 | + | let an = (ah - ai) | |
190 | + | let ao = (ah - ((1 * an) / 5)) | |
191 | + | let ap = (ah - ((2 * an) / 5)) | |
192 | + | let aq = (ah - ((3 * an) / 5)) | |
193 | + | let ar = (ah - ((4 * an) / 5)) | |
194 | + | let as = (ah - ((5 * an) / 5)) | |
195 | + | let ac = (aj + al) | |
196 | + | let at = fraction(G, L, ae(ac, (ak - ah))) | |
197 | + | if ((0 > (ae(ac, (ak - as)) - G))) | |
198 | + | then throw("minTokenReceiveAmount too large.err1") | |
199 | + | else if (if ((at > am)) | |
200 | + | then (L > at) | |
201 | + | else false) | |
202 | + | then ah | |
203 | + | else if (((ae(ac, (ak - ao)) - G) > 0)) | |
204 | + | then ((ao * (J - H)) / J) | |
205 | + | else if (((ae(ac, (ak - ap)) - G) > 0)) | |
206 | + | then ((ap * (J - H)) / J) | |
207 | + | else if (((ae(ac, (ak - aq)) - G) > 0)) | |
208 | + | then ((aq * (J - H)) / J) | |
209 | + | else if (((ae(ac, (ak - ar)) - G) > 0)) | |
210 | + | then ((ar * (J - H)) / J) | |
211 | + | else if (((ae(ac, (ak - as)) - G) > 0)) | |
212 | + | then ((as * (J - H)) / J) | |
213 | + | else throw("something went wrong while working with amountToSendStep. err2") | |
214 | + | } | |
215 | + | ||
216 | + | ||
217 | + | func av (Z) = { | |
218 | + | let y = Z | |
219 | + | if ($isInstanceOf(y, "ByteVector")) | |
220 | + | then { | |
221 | + | let z = y | |
222 | + | let aw = toBase58String(z) | |
223 | + | let ax = valueOrErrorMessage(assetInfo(z), (("Asset " + aw) + " doesn't exist")) | |
224 | + | $Tuple3(aw, ax.name, ax.decimals) | |
225 | + | } | |
226 | + | else if ($isInstanceOf(y, "Unit")) | |
227 | + | then { | |
228 | + | let A = y | |
229 | + | $Tuple3("WAVES", "WAVES", 8) | |
230 | + | } | |
231 | + | else throw("Match error") | |
232 | + | } | |
233 | + | ||
234 | + | ||
235 | + | func ay (az) = [BooleanEntry(c, false), StringEntry(n, az)] | |
236 | + | ||
237 | + | ||
238 | + | @Callable(aA) | |
239 | + | func init () = { | |
240 | + | let aB = $Tuple2(aA.payments[0].amount, aA.payments[0].assetId) | |
241 | + | let aC = aB._1 | |
242 | + | let aD = aB._2 | |
243 | + | let aE = $Tuple2(aA.payments[1].amount, aA.payments[1].assetId) | |
244 | + | let aF = aE._1 | |
245 | + | let aG = aE._2 | |
246 | + | let aH = av(aD) | |
247 | + | let aI = aH._1 | |
248 | + | let aJ = aH._2 | |
249 | + | let aK = aH._3 | |
250 | + | let aL = av(aG) | |
251 | + | let aM = aL._1 | |
252 | + | let aN = aL._2 | |
253 | + | let aO = aL._3 | |
254 | + | if (isDefined(getBoolean(this, c))) | |
255 | + | then throw("DApp is already active") | |
256 | + | else if ((aD == aG)) | |
257 | + | then throw("Assets must be different") | |
258 | + | else { | |
259 | + | let aP = ((("s" + take(aJ, 7)) + "_") + take(aN, 7)) | |
260 | + | let aQ = ((((("ShareToken of SwopFi protocol for " + aJ) + " and ") + aN) + " at address ") + toString(this)) | |
261 | + | let aR = ((aK + aO) / 2) | |
262 | + | let aS = fraction(pow(aC, aK, 5, 1, aK, HALFDOWN), pow(aF, aO, 5, 1, aO, HALFDOWN), pow(10, 0, aR, 0, 0, HALFDOWN)) | |
263 | + | let aT = Issue(aP, aQ, aS, aR, true) | |
264 | + | let aU = calculateAssetId(aT) | |
265 | + | let aV = ae(aC, aF) | |
266 | + | [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aI), StringEntry(e, aM), IntegerEntry(f, aC), IntegerEntry(g, aF), IntegerEntry(m, aV), IntegerEntry(j, H), IntegerEntry(k, J), aT, StringEntry(h, toBase58String(aU)), IntegerEntry(i, aS), ScriptTransfer(aA.caller, aS, aU)] | |
267 | + | } | |
268 | + | } | |
269 | + | ||
270 | + | ||
271 | + | ||
272 | + | @Callable(aA) | |
273 | + | func replenishWithTwoTokens (aW) = { | |
274 | + | let aX = $Tuple2(aA.payments[0].amount, aA.payments[0].assetId) | |
275 | + | let aC = aX._1 | |
276 | + | let aD = aX._2 | |
277 | + | let aY = $Tuple2(aA.payments[1].amount, aA.payments[1].assetId) | |
278 | + | let aF = aY._1 | |
279 | + | let aG = aY._2 | |
280 | + | let aZ = (fraction(C, (L * K), aC) / fraction(D, L, aF)) | |
281 | + | let ba = fraction(aC, L, C) | |
282 | + | let bb = fraction(aF, L, D) | |
283 | + | let bc = fraction(min([ba, bb]), F, L) | |
284 | + | let aV = ae((C + aC), (D + aF)) | |
285 | + | if (!(s)) | |
286 | + | then throw("DApp is inactive at this moment") | |
287 | + | else if (if ((0 > aW)) | |
288 | + | then true | |
289 | + | else (aW > N)) | |
290 | + | then throw(((("Slippage tolerance must be between 0 and " + toString(N)) + " inclusively. Actual: ") + toString(aW))) | |
291 | + | else if ((size(aA.payments) != 2)) | |
292 | + | then throw("Two attached assets expected") | |
293 | + | else if (if ((aD != v)) | |
294 | + | then true | |
295 | + | else (aG != w)) | |
296 | + | then throw(((("Incorrect assets attached. Expected: " + t) + " and ") + u)) | |
297 | + | else if (if ((((K * (N - aW)) / N) > aZ)) | |
298 | + | then true | |
299 | + | else (aZ > ((K * (N + aW)) / N))) | |
300 | + | then throw("Incorrect assets amount: amounts must have the contract ratio") | |
301 | + | else if ((bc == 0)) | |
302 | + | then throw("Too small amount to replenish") | |
303 | + | else if (!(aa)) | |
304 | + | then ay(((((((((((((((("Suspicious state. Actual balances: " + toString(C)) + " ") + x) + ", ") + toString(D)) + " ") + B) + ". State: ") + toString(Y(v))) + " ") + x) + ", ") + toString(Y(w))) + " ") + B)) | |
305 | + | else [IntegerEntry(f, (C + aC)), IntegerEntry(g, (D + aF)), IntegerEntry(i, (F + bc)), IntegerEntry(m, aV), Reissue(E, bc, true), ScriptTransfer(aA.caller, bc, E)] | |
306 | + | } | |
307 | + | ||
308 | + | ||
309 | + | ||
310 | + | @Callable(aA) | |
311 | + | func replenishWithOneToken (bd,be) = { | |
312 | + | let bf = $Tuple2(aA.payments[0].amount, aA.payments[0].assetId) | |
313 | + | let bg = bf._1 | |
314 | + | let bh = bf._2 | |
315 | + | let bi = (L - ((L * 1) / 10000000)) | |
316 | + | let bj = (L + ((L * 1) / 10000000)) | |
317 | + | if (!(s)) | |
318 | + | then throw("DApp is inactive at this moment") | |
319 | + | else if ((size(aA.payments) != 1)) | |
320 | + | then throw("One attached payment expected") | |
321 | + | else if (!(aa)) | |
322 | + | then ay(((((((((((((((("Suspicious state. Actual balances: " + toString(C)) + " ") + x) + ", ") + toString(D)) + " ") + B) + ". State: ") + toString(Y(v))) + " ") + x) + ", ") + toString(Y(w))) + " ") + B)) | |
323 | + | else if ((bh == v)) | |
324 | + | then { | |
325 | + | let bk = (bg - bd) | |
326 | + | let bl = be | |
327 | + | let bm = (C + bd) | |
328 | + | let bn = (D - be) | |
329 | + | let at = fraction(G, L, ae(bm, bn)) | |
330 | + | if (if ((at > bi)) | |
331 | + | then (L >= at) | |
332 | + | else false) | |
333 | + | then { | |
334 | + | let bo = (fraction(bm, (L * L), bn) / fraction(bk, L, bl)) | |
335 | + | if (if ((bi > bo)) | |
336 | + | then true | |
337 | + | else (bo > bj)) | |
338 | + | then throw("swop with virtualSwapTokenPay and virtualSwapTokenGet possible, but ratio after virtual swap incorrect") | |
339 | + | else { | |
340 | + | let ba = fraction(bk, L, bm) | |
341 | + | let bb = fraction(bl, L, bn) | |
342 | + | let bc = fraction(min([ba, bb]), F, L) | |
343 | + | let aV = ae((C + bg), D) | |
344 | + | [Reissue(E, bc, true), ScriptTransfer(aA.caller, bc, E), IntegerEntry(i, (F + bc)), IntegerEntry(f, (C + bg)), IntegerEntry(m, aV)] | |
345 | + | } | |
346 | + | } | |
347 | + | else throw("incorrect virtualSwapTokenPay or virtualSwapTokenGet value") | |
348 | + | } | |
349 | + | else if ((bh == w)) | |
350 | + | then { | |
351 | + | let bl = (bg - bd) | |
352 | + | let bk = be | |
353 | + | let bm = (C - be) | |
354 | + | let bn = (D + bd) | |
355 | + | let at = fraction(G, L, ae(bm, bn)) | |
356 | + | if (if ((at > bi)) | |
357 | + | then (L >= at) | |
358 | + | else false) | |
359 | + | then { | |
360 | + | let bo = (fraction(bm, (L * L), bn) / fraction(bk, L, bl)) | |
361 | + | if (if ((bi > bo)) | |
362 | + | then true | |
363 | + | else (bo > bj)) | |
364 | + | then throw("swop with virtualSwapTokenPay and virtualSwapTokenGet possible, but ratio after virtual swap incorrect") | |
365 | + | else { | |
366 | + | let ba = fraction(bk, L, bm) | |
367 | + | let bb = fraction(bl, L, bn) | |
368 | + | let bc = fraction(min([ba, bb]), F, L) | |
369 | + | let aV = ae(C, (D + bg)) | |
370 | + | [Reissue(E, bc, true), ScriptTransfer(aA.caller, bc, E), IntegerEntry(i, (F + bc)), IntegerEntry(g, (D + bg)), IntegerEntry(m, aV)] | |
371 | + | } | |
372 | + | } | |
373 | + | else throw("incorrect virtualSwapTokenPay or virtualSwapTokenGet value") | |
374 | + | } | |
375 | + | else throw("incorrect assets in payment") | |
376 | + | } | |
377 | + | ||
378 | + | ||
379 | + | ||
380 | + | @Callable(aA) | |
381 | + | func withdraw () = { | |
382 | + | let bp = $Tuple2(aA.payments[0].amount, aA.payments[0].assetId) | |
383 | + | let bg = bp._1 | |
384 | + | let bh = bp._2 | |
385 | + | let bq = fraction(bg, C, F) | |
386 | + | let br = fraction(bg, D, F) | |
387 | + | let aV = ae((C - bq), (D - br)) | |
388 | + | if (!(s)) | |
389 | + | then throw("DApp is inactive at this moment") | |
390 | + | else if ((size(aA.payments) != 1)) | |
391 | + | then throw("One attached payment expected") | |
392 | + | else if ((bh != E)) | |
393 | + | then throw(("Incorrect asset attached. Expected: " + toBase58String(E))) | |
394 | + | else if (!(aa)) | |
395 | + | then ay(((((((((((((((("Suspicious state. Actual balances: " + toString(C)) + " ") + x) + ", ") + toString(D)) + " ") + B) + ". State: ") + toString(Y(v))) + " ") + x) + ", ") + toString(Y(w))) + " ") + B)) | |
396 | + | else [IntegerEntry(f, (C - bq)), IntegerEntry(g, (D - br)), IntegerEntry(i, (F - bg)), IntegerEntry(m, aV), Burn(E, bg), ScriptTransfer(aA.caller, bq, v), ScriptTransfer(aA.caller, br, w)] | |
397 | + | } | |
398 | + | ||
399 | + | ||
400 | + | ||
401 | + | @Callable(aA) | |
402 | + | func exchange (bs,bt) = { | |
403 | + | let bu = $Tuple2(aA.payments[0].amount, aA.payments[0].assetId) | |
404 | + | let bg = bu._1 | |
405 | + | let bh = bu._2 | |
406 | + | if (!(s)) | |
407 | + | then throw("DApp is inactive at this moment") | |
408 | + | else if ((0 >= bs)) | |
409 | + | then throw(("Estimated amount must be positive. Actual: " + toString(bs))) | |
410 | + | else if ((bt > bs)) | |
411 | + | then throw(((("Minimal amount can't be greater than estimated. Estimated: " + toString(bs)) + ". Minimal: ") + toString(bt))) | |
412 | + | else if ((size(aA.payments) != 1)) | |
413 | + | then throw("One attached payment expected") | |
414 | + | else if (!(aa)) | |
415 | + | then ay(((((((((((((((("Suspicious state. Actual balances: " + toString(C)) + " ") + x) + ", ") + toString(D)) + " ") + B) + ". State: ") + toString(Y(v))) + " ") + x) + ", ") + toString(Y(w))) + " ") + B)) | |
416 | + | else if ((bh == v)) | |
417 | + | then { | |
418 | + | let bv = w | |
419 | + | let bw = au(bs, bt, C, D, bg) | |
420 | + | let bx = fraction(bw, (J - H), J) | |
421 | + | let by = fraction(bw, I, J) | |
422 | + | let bz = (C + bg) | |
423 | + | let bA = ((D - bx) - by) | |
424 | + | let bB = fraction((C + D), Q, (2 * R)) | |
425 | + | if (if ((bB > bz)) | |
426 | + | then true | |
427 | + | else (bB > bA)) | |
428 | + | then throw(((((((((("New balance in assets of the DApp is less than threshold " + toString(bB)) + ". ") + x) + ": ") + toString(bz)) + ", ") + B) + ": ") + toString(bA))) | |
429 | + | else [IntegerEntry(f, bz), IntegerEntry(g, bA), IntegerEntry(m, ae((C + bg), ((D - bx) - by))), ScriptTransfer(aA.caller, bx, bv), ScriptTransfer(r, by, bv)] | |
430 | + | } | |
431 | + | else if ((bh == w)) | |
432 | + | then { | |
433 | + | let bv = v | |
434 | + | let bw = ag(bs, bt, C, D, bg) | |
435 | + | let bx = fraction(bw, (J - H), J) | |
436 | + | let by = fraction(bw, I, J) | |
437 | + | let bz = ((C - bx) - by) | |
438 | + | let bA = (D + bg) | |
439 | + | let bB = fraction((C + D), Q, (2 * R)) | |
440 | + | if (if ((bB > bz)) | |
441 | + | then true | |
442 | + | else (bB > bA)) | |
443 | + | then throw(((((((((("New balance in assets of the DApp is less than threshold " + toString(bB)) + ". ") + x) + ": ") + toString(bz)) + ", ") + B) + ": ") + toString(bA))) | |
444 | + | else [IntegerEntry(f, bz), IntegerEntry(g, bA), IntegerEntry(m, ae(((C - bx) - by), (D + bg))), ScriptTransfer(aA.caller, bx, bv), ScriptTransfer(r, by, bv)] | |
445 | + | } | |
446 | + | else throw(((("Incorrect asset attached. Expected: " + t) + " or ") + u)) | |
447 | + | } | |
448 | + | ||
449 | + | ||
450 | + | ||
451 | + | @Callable(aA) | |
452 | + | func shutdown () = if (containsElement([o, p, q], aA.callerPublicKey)) | |
453 | + | then ay("Paused by admin") | |
454 | + | else throw("Only admin can call this function") | |
455 | + | ||
456 | + | ||
457 | + | ||
458 | + | @Callable(aA) | |
459 | + | func activate () = if (containsElement([o, p, q], aA.callerPublicKey)) | |
460 | + | then [BooleanEntry(c, true), DeleteEntry(n)] | |
461 | + | else throw("Only admin can call this function") | |
462 | + | ||
463 | + | ||
464 | + | @Verifier(bC) | |
465 | + | func bD () = { | |
466 | + | let bE = if (sigVerify(bC.bodyBytes, bC.proofs[0], o)) | |
467 | + | then 1 | |
468 | + | else 0 | |
469 | + | let bF = if (sigVerify(bC.bodyBytes, bC.proofs[1], p)) | |
470 | + | then 1 | |
471 | + | else 0 | |
472 | + | let bG = if (sigVerify(bC.bodyBytes, bC.proofs[2], q)) | |
473 | + | then 1 | |
474 | + | else 0 | |
475 | + | (((bE + bF) + bG) >= 2) | |
476 | + | } | |
477 | + |
github/deemru/w8io/3ef1775 38.91 ms ◑