tx · UjJCzcnHprUqHuKsr9t26qme7EGxkVFTk6RhRg3UjwU

3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP:  -0.03400000 Waves

2023.08.23 09:43 [2722925] smart account 3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP > SELF 0.00000000 Waves

{ "type": 13, "id": "UjJCzcnHprUqHuKsr9t26qme7EGxkVFTk6RhRg3UjwU", "fee": 3400000, "feeAssetId": null, "timestamp": 1692773059004, "version": 1, "sender": "3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP", "senderPublicKey": "AoKo4segKHU4DeJnxXQYJj2u7J6XJeux6r8KLW52cd2Q", "proofs": [ "4BaZxHn9tJHbF84X6r6JYEbd19yGM2shQDCzKHTqMQJxRJNaSTwAnA9TBKtNi4hgGQn3Vb3cPSDA3iYkzKyGAC8L" ], "script": "base64:BwJHCAISABIDCgECEgcKBQIBAQEBEgYKBAEBAQESAwoBAhIDCgECEgQKAgICEgQKAgIIEgQKAgIYEgQKAgIIEgQKAgIYEgMKAQJAAANTRVACAl9fAA1DT05UUkFDVF9OQU1FAg9jYWxjdWxhdG9yLnJpZGUABlNDQUxFOACAwtcvAAdQRU5ESU5HAgdQRU5ESU5HAAVXQVZFUwIFV0FWRVMAHGJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemVNYXgACgEHd3JhcEVycgEBcwkArAICCQCsAgIFDUNPTlRSQUNUX05BTUUCAjogBQFzAQh0aHJvd0VycgEBcwkAAgEJAQd3cmFwRXJyAQUBcwEPYXNzZXRJZFRvU3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgMJAAECBQckbWF0Y2gwAgRVbml0BQVXQVZFUwkAAgECC01hdGNoIGVycm9yAQ9zdHJpbmdUb0Fzc2V0SWQBAXMDCQAAAgUBcwUFV0FWRVMFBHVuaXQJANkEAQUBcwEDYWJzAQFuAwkAZgIAAAUBbgkBAS0BBQFuBQFuARFrZXlGYWN0b3J5QWRkcmVzcwAJALkJAgkAzAgCAgIlcwkAzAgCAgdmYWN0b3J5BQNuaWwFA1NFUAETa2V5TWFuYWdlclB1YmxpY0tleQAJALkJAgkAzAgCAgIlcwkAzAgCAhBtYW5hZ2VyUHVibGljS2V5BQNuaWwFA1NFUAEMa2V5THBBc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICCWxwQXNzZXRJZAUDbmlsBQNTRVABF2tleVByb3h5VHJlYXN1cnlBZGRyZXNzAAkAuQkCCQDMCAICAiVzCQDMCAICDXByb3h5VHJlYXN1cnkFA25pbAUDU0VQARZrZXlNYWluVHJlYXN1cnlBZGRyZXNzAAkAuQkCCQDMCAICAiVzCQDMCAICDG1haW5UcmVhc3VyeQUDbmlsBQNTRVABGmtleUJ1c2luZXNzVHJlYXN1cnlBZGRyZXNzAAkAuQkCCQDMCAICAiVzCQDMCAICEGJ1c2luZXNzVHJlYXN1cnkFA25pbAUDU0VQARdrZXlCdXNpbmVzc1RyZWFzdXJ5UGFydAAJALkJAgkAzAgCAgIlcwkAzAgCAhRidXNpbmVzc1RyZWFzdXJ5UGFydAUDbmlsBQNTRVABF2tleVBvd2VyQ29udHJhY3RBZGRyZXNzAAkAuQkCCQDMCAICAiVzCQDMCAICDXBvd2VyQ29udHJhY3QFA25pbAUDU0VQARJrZXlQb3dlclNoYXJlUmF0aW8ACQC5CQIJAMwIAgICJXMJAMwIAgIPcG93ZXJTaGFyZVJhdGlvBQNuaWwFA1NFUAEPa2V5UG93ZXJBc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICDHBvd2VyQXNzZXRJZAUDbmlsBQNTRVABC2tleUludmVzdGVkAQdhc3NldElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghpbnZlc3RlZAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUHYXNzZXRJZAUDbmlsBQNTRVABCmtleURvbmF0ZWQBB2Fzc2V0SWQJALkJAgkAzAgCAgQlcyVzCQDMCAICB2RvbmF0ZWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFB2Fzc2V0SWQFA25pbAUDU0VQAQxrZXlBdmFpbGFibGUBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAglhdmFpbGFibGUJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABCmtleUNsYWltZWQBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgdjbGFpbWVkCQDMCAIJAKUIAQULdXNlckFkZHJlc3MFA25pbAUDU0VQARBrZXlDdXJyZW50UGVyaW9kAAkAuQkCCQDMCAICAiVzCQDMCAICDWN1cnJlbnRQZXJpb2QFA25pbAUDU0VQARFrZXlQcmljZUZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgVwcmljZQkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABDmtleVN0YXJ0SGVpZ2h0AQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEUa2V5UG93ZXJNYW5hZ2VyQm9udXMBBnBlcmlvZAkAuQkCCQDMCAICBCVzJWQJAMwIAgIRcG93ZXJNYW5hZ2VyQm9udXMJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARNrZXlDbGFpbVdhdmVzQW1vdW50AQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICEGNsYWltV2F2ZXNBbW91bnQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQAQ9rZXlQZXJpb2RMZW5ndGgAAhAlc19fcGVyaW9kTGVuZ3RoARVrZXlJbnZlc3RQZXJpb2RMZW5ndGgAAhYlc19faW52ZXN0UGVyaW9kTGVuZ3RoARhrZXlCbG9ja1Byb2Nlc3NpbmdSZXdhcmQAAhklc19fYmxvY2tQcm9jZXNzaW5nUmV3YXJkARVrZXlOZXh0QmxvY2tUb1Byb2Nlc3MAAhYlc19fbmV4dEJsb2NrVG9Qcm9jZXNzARFrZXlCbG9ja1Byb2Nlc3NlZAEGaGVpZ2h0CQC5CQIJAMwIAgIEJXMlZAkAzAgCAg5ibG9ja1Byb2Nlc3NlZAkAzAgCCQCkAwEFBmhlaWdodAUDbmlsBQNTRVABDWtleVdpdGhkcmF3YWwAAg4lc19fd2l0aGRyYXdhbAEUa2V5V2l0aGRyYXdhbFJlcXVlc3QCC3VzZXJBZGRyZXNzBHR4SWQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIKd2l0aGRyYXdhbAkAzAgCCQClCAEFC3VzZXJBZGRyZXNzCQDMCAIJANgEAQUEdHhJZAUDbmlsBQNTRVABFnZhbHVlV2l0aGRyYXdhbFJlcXVlc3QEBnN0YXR1cw1scEFzc2V0QW1vdW50DHRhcmdldFBlcmlvZAljbGFpbVR4SWQEDGNsYWltVHhJZFN0cgQHJG1hdGNoMAUJY2xhaW1UeElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgMJAAECBQckbWF0Y2gwAgRVbml0AgRTT09OCQACAQILTWF0Y2ggZXJyb3IJALkJAgkAzAgCAgglcyVkJWQlcwkAzAgCBQZzdGF0dXMJAMwIAgkApAMBBQ1scEFzc2V0QW1vdW50CQDMCAIJAKQDAQUMdGFyZ2V0UGVyaW9kCQDMCAIFDGNsYWltVHhJZFN0cgUDbmlsBQNTRVABFGtleVdpdGhkcmF3YWxIaXN0b3J5Agt1c2VyQWRkcmVzcwR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEXdpdGhkcmF3YWxIaXN0b3J5CQDMCAIJAKUIAQULdXNlckFkZHJlc3MJAMwIAgkA2AQBBQR0eElkBQNuaWwFA1NFUAEba2V5UGVyaW9kV2l0aGRyYXdhbEFzc2V0SWRzAQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICDHBlcmlvZFJld2FyZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABGmtleVBlcmlvZFdpdGhkcmF3YWxBbW91bnRzAQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICEnBlcmlvZFJld2FyZEFtb3VudAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABIXBhcnNlV2l0aGRyYXdhbFJlcXVlc3RWYWx1ZU9yRmFpbAEBcwQFcGFydHMJALUJAgUBcwUDU0VQAwkAAAIJAJADAQUFcGFydHMABQQGc3RhdHVzCQCRAwIFBXBhcnRzAAEEDWxwQXNzZXRBbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBXBhcnRzAAIJAQd3cmFwRXJyAQIVaW52YWxpZCBscEFzc2V0QW1vdW50BAx0YXJnZXRQZXJpb2QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBXBhcnRzAAMJAQd3cmFwRXJyAQIUaW52YWxpZCB0YXJnZXRQZXJpb2QECWNsYWltVHhJZAkAkQMCBQVwYXJ0cwAECQCWCgQFBnN0YXR1cwUNbHBBc3NldEFtb3VudAUMdGFyZ2V0UGVyaW9kBQljbGFpbVR4SWQJAQh0aHJvd0VycgECIGludmFsaWQgd2l0aGRyYXdhbCByZXF1ZXN0IHZhbHVlABRmYWN0b3J5QWRkcmVzc09wdGlvbgQHJG1hdGNoMAkAnQgCBQR0aGlzCQERa2V5RmFjdG9yeUFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkApggBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAUZmFjdG9yeUFkZHJlc3NPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUUZmFjdG9yeUFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIXaW52YWxpZCBmYWN0b3J5IGFkZHJlc3MAD2xwQXNzZXRJZE9wdGlvbgQHJG1hdGNoMAUUZmFjdG9yeUFkZHJlc3NPcHRpb24DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAQHJG1hdGNoMQkAnQgCBQFhCQEMa2V5THBBc3NldElkAAMJAAECBQckbWF0Y2gxAgZTdHJpbmcEAXMFByRtYXRjaDEJANkEAQUBcwMJAAECBQckbWF0Y2gxAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAA9scEFzc2V0SWRPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUPbHBBc3NldElkT3B0aW9uCQEHd3JhcEVycgECEWludmFsaWQgbHBBc3NldElkABpwcm94eVRyZWFzdXJ5QWRkcmVzc09wdGlvbgQHJG1hdGNoMAUUZmFjdG9yeUFkZHJlc3NPcHRpb24DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAQHJG1hdGNoMQkAnQgCBQFhCQEXa2V5UHJveHlUcmVhc3VyeUFkZHJlc3MAAwkAAQIFByRtYXRjaDECBlN0cmluZwQBcwUHJG1hdGNoMQkApggBBQFzAwkAAQIFByRtYXRjaDECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAGnByb3h5VHJlYXN1cnlBZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFGnByb3h5VHJlYXN1cnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECHmludmFsaWQgcHJveHkgdHJlYXN1cnkgYWRkcmVzcwAZbWFpblRyZWFzdXJ5QWRkcmVzc09wdGlvbgQHJG1hdGNoMAUUZmFjdG9yeUFkZHJlc3NPcHRpb24DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAQHJG1hdGNoMQkAnQgCBQFhCQEWa2V5TWFpblRyZWFzdXJ5QWRkcmVzcwADCQABAgUHJG1hdGNoMQIGU3RyaW5nBAFzBQckbWF0Y2gxCQCmCAEFAXMDCQABAgUHJG1hdGNoMQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAdYnVzaW5lc3NUcmVhc3VyeUFkZHJlc3NPcHRpb24EByRtYXRjaDAFFGZhY3RvcnlBZGRyZXNzT3B0aW9uAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAEByRtYXRjaDEJAJ0IAgUBYQkBGmtleUJ1c2luZXNzVHJlYXN1cnlBZGRyZXNzAAMJAAECBQckbWF0Y2gxAgZTdHJpbmcEAXMFByRtYXRjaDEJAKYIAQUBcwMJAAECBQckbWF0Y2gxAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yABltYWluVHJlYXN1cnlBZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFGW1haW5UcmVhc3VyeUFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIdaW52YWxpZCBtYWluIHRyZWFzdXJ5IGFkZHJlc3MAHWJ1c2luZXNzVHJlYXN1cnlBZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFHWJ1c2luZXNzVHJlYXN1cnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECIWludmFsaWQgYnVzaW5lc3MgdHJlYXN1cnkgYWRkcmVzcwAacG93ZXJDb250cmFjdEFkZHJlc3NPcHRpb24EByRtYXRjaDAFFGZhY3RvcnlBZGRyZXNzT3B0aW9uAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAEByRtYXRjaDEJAJ0IAgUBYQkBF2tleVBvd2VyQ29udHJhY3RBZGRyZXNzAAMJAAECBQckbWF0Y2gxAgZTdHJpbmcEAXMFByRtYXRjaDEJAKYIAQUBcwMJAAECBQckbWF0Y2gxAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yABpwb3dlckNvbnRyYWN0QWRkcmVzc09yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRpwb3dlckNvbnRyYWN0QWRkcmVzc09wdGlvbgkBB3dyYXBFcnIBAh5pbnZhbGlkIHBvd2VyIGNvbnRyYWN0IGFkZHJlc3MAGHBvd2VyQXNzZXRJZFN0cmluZ09yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEPa2V5UG93ZXJBc3NldElkAAkBB3dyYXBFcnIBAhhwb3dlciBhc3NldCBpZCBub3QgZm91bmQBGWdldE1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwBRRmYWN0b3J5QWRkcmVzc09wdGlvbgMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAJmYQUHJG1hdGNoMAQHJG1hdGNoMQkAnQgCBQJmYQkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDECBlN0cmluZwQDcHViBQckbWF0Y2gxCQDZBAEFA3B1YgUEdW5pdAUEdW5pdAELb25seUFkZHJlc3MCAWkHYWRkcmVzcwMJAAACCAUBaQZjYWxsZXIFB2FkZHJlc3MGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAELb25seUZhY3RvcnkBAWkJAQtvbmx5QWRkcmVzcwIFAWkFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAQ9yZXdhcmRGb3JPcHRpb24CB3Jld2FyZHMGdGFyZ2V0BAFzCQCQAwEFB3Jld2FyZHMECyR0MDY2Njk2Njk0CQCRAwIFB3Jld2FyZHMAAAQCYTAIBQskdDA2NjY5NjY5NAJfMQQCcjAIBQskdDA2NjY5NjY5NAJfMgQLJHQwNjY5NzY3MjIJAJEDAgUHcmV3YXJkcwABBAJhMQgFCyR0MDY2OTc2NzIyAl8xBAJyMQgFCyR0MDY2OTc2NzIyAl8yBAskdDA2NzI1Njc1MAkAkQMCBQdyZXdhcmRzAAIEAmEyCAULJHQwNjcyNTY3NTACXzEEAnIyCAULJHQwNjcyNTY3NTACXzIDAwkAZgIFAXMAAAkAAAIFAmEwBQZ0YXJnZXQHBQJyMAMDCQBmAgUBcwABCQAAAgUCYTEFBnRhcmdldAcFAnIxAwMJAGYCBQFzAAIJAAACBQJhMgUGdGFyZ2V0BwUCcjIFBHVuaXQBDmNhbGN1bGF0ZVByaWNlAQ1scFBhcnRJbldhdmVzBBNscEFzc2V0QW1vdW50VG9CdXJuCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQENa2V5V2l0aGRyYXdhbAAAAAQPbHBBc3NldFF1YW50aXR5CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFD2xwQXNzZXRJZE9yRmFpbAkBB3dyYXBFcnIBAhRpbnZhbGlkIGxwQXNzZXQgaW5mbwhxdWFudGl0eQQIbmV3UHJpY2UJAGsDBQ1scFBhcnRJbldhdmVzBQZTQ0FMRTgJAGUCBQ9scEFzc2V0UXVhbnRpdHkFE2xwQXNzZXRBbW91bnRUb0J1cm4EE2NoZWNrSWZQcmljZU5vdFplcm8DCQECIT0CBQhuZXdQcmljZQAABgkBCHRocm93RXJyAQIUTFAgcHJpY2UgY2Fubm90IGJlIDADCQAAAgUTY2hlY2tJZlByaWNlTm90WmVybwUTY2hlY2tJZlByaWNlTm90WmVybwQUbHBBc3NldEZpbmFsUXVhbnRpdHkJAGUCBQ9scEFzc2V0UXVhbnRpdHkFE2xwQXNzZXRBbW91bnRUb0J1cm4JAJUKAwUIbmV3UHJpY2UFE2xwQXNzZXRBbW91bnRUb0J1cm4FFGxwQXNzZXRGaW5hbFF1YW50aXR5CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARdjbGFpbUNvbGxhdGVyYWxJTlRFUk5BTAIQdXNlckFkZHJlc3NCeXRlcwR0eElkBAt1c2VyQWRkcmVzcwkBB0FkZHJlc3MBBRB1c2VyQWRkcmVzc0J5dGVzBBNjdXJyZW50UGVyaW9kT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARBrZXlDdXJyZW50UGVyaW9kAAkBB3dyYXBFcnIBAg5pbnZhbGlkIHBlcmlvZAQXd2l0aGRyYXdhbFJlcXVlc3RPcHRpb24JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBFGtleVdpdGhkcmF3YWxSZXF1ZXN0AgULdXNlckFkZHJlc3MFBHR4SWQJAQd3cmFwRXJyAQIaaW52YWxpZCB3aXRoZHJhd2FsIHJlcXVlc3QECyR0MDc5MTc4MDMwCQEhcGFyc2VXaXRoZHJhd2FsUmVxdWVzdFZhbHVlT3JGYWlsAQUXd2l0aGRyYXdhbFJlcXVlc3RPcHRpb24EBnN0YXR1cwgFCyR0MDc5MTc4MDMwAl8xBA1scEFzc2V0QW1vdW50CAULJHQwNzkxNzgwMzACXzIEDHRhcmdldFBlcmlvZAgFCyR0MDc5MTc4MDMwAl8zBAljbGFpbVR4SWQIBQskdDA3OTE3ODAzMAJfNAMJAGYCBQx0YXJnZXRQZXJpb2QFE2N1cnJlbnRQZXJpb2RPckZhaWwJAQh0aHJvd0VycgECIWludmFsaWQgd2l0aGRyYXdhbCByZXF1ZXN0IHBlcmlvZAQLcHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUMdGFyZ2V0UGVyaW9kCQEHd3JhcEVycgECDWludmFsaWQgcHJpY2UEC3dhdmVzQW1vdW50AwkAZgIFC3ByaWNlT3JGYWlsAAAJAGsDBQ1scEFzc2V0QW1vdW50BQtwcmljZU9yRmFpbAUGU0NBTEU4AAAEDGFzc2V0c1N0cmluZwkBEUBleHRyTmF0aXZlKDEwNTMpAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARtrZXlQZXJpb2RXaXRoZHJhd2FsQXNzZXRJZHMBBRNjdXJyZW50UGVyaW9kT3JGYWlsBA1hbW91bnRzU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBGmtleVBlcmlvZFdpdGhkcmF3YWxBbW91bnRzAQUTY3VycmVudFBlcmlvZE9yRmFpbAkAmAoGBQt1c2VyQWRkcmVzcwUNbHBBc3NldEFtb3VudAUMdGFyZ2V0UGVyaW9kBQt3YXZlc0Ftb3VudAUMYXNzZXRzU3RyaW5nBQ1hbW91bnRzU3RyaW5nASVjbGFpbUNvbGxhdGVyYWxSRUFET05MWVN0cmluZ1Jlc3BvbnNlAhB1c2VyQWRkcmVzc0J5dGVzBHR4SWQECyR0MDg4MTc4OTgzCQEXY2xhaW1Db2xsYXRlcmFsSU5URVJOQUwCBRB1c2VyQWRkcmVzc0J5dGVzBQR0eElkBAt1c2VyQWRkcmVzcwgFCyR0MDg4MTc4OTgzAl8xBA1scEFzc2V0QW1vdW50CAULJHQwODgxNzg5ODMCXzIEDHRhcmdldFBlcmlvZAgFCyR0MDg4MTc4OTgzAl8zBAt3YXZlc0Ftb3VudAgFCyR0MDg4MTc4OTgzAl80BAxhc3NldHNTdHJpbmcIBQskdDA4ODE3ODk4MwJfNQQNYW1vdW50c1N0cmluZwgFCyR0MDg4MTc4OTgzAl82BAZhc3NldHMJALkJAgkA0QgCCQC9CQIFDGFzc2V0c1N0cmluZwUDU0VQAAACAToEB2Ftb3VudHMJALkJAgkA0QgCCQC9CQIFDWFtb3VudHNTdHJpbmcFA1NFUAAAAgE6CQC5CQIJAMwIAgIGJWQlcyVzCQDMCAIJAKQDAQULd2F2ZXNBbW91bnQJAMwIAgUGYXNzZXRzCQDMCAIFB2Ftb3VudHMFA25pbAUDU0VQAQ5nZXRSZXdhcmRTcGxpdAEVZ2VuZXJhdG9yUmV3YXJkQW1vdW50BA9wb3dlclNoYXJlUmF0aW8JAJYDAQkAzAgCAAAJAMwIAgkAlwMBCQDMCAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARJrZXlQb3dlclNoYXJlUmF0aW8AAAAJAMwIAgUGU0NBTEU4BQNuaWwFA25pbAQRYnVzaW5lc3NQYXJ0UmF0aW8JAJYDAQkAzAgCAAAJAMwIAgkAlwMBCQDMCAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARdrZXlCdXNpbmVzc1RyZWFzdXJ5UGFydAAAAAkAzAgCBQZTQ0FMRTgFA25pbAUDbmlsBBFhbW91bnRUb1Bvd2VyUGFydAkAawMFFWdlbmVyYXRvclJld2FyZEFtb3VudAUPcG93ZXJTaGFyZVJhdGlvBQZTQ0FMRTgEGmJ1c2luZXNzVHJlYXN1cnlBbW91bnRQYXJ0CQBrAwUVZ2VuZXJhdG9yUmV3YXJkQW1vdW50BRFidXNpbmVzc1BhcnRSYXRpbwUGU0NBTEU4BA9yZXdhcmRSZW1haW5kZXIJAGUCCQBlAgUVZ2VuZXJhdG9yUmV3YXJkQW1vdW50BRFhbW91bnRUb1Bvd2VyUGFydAUaYnVzaW5lc3NUcmVhc3VyeUFtb3VudFBhcnQDCQBmAgUPcmV3YXJkUmVtYWluZGVyAAAJAJUKAwURYW1vdW50VG9Qb3dlclBhcnQFGmJ1c2luZXNzVHJlYXN1cnlBbW91bnRQYXJ0BQ9yZXdhcmRSZW1haW5kZXIJAQh0aHJvd0VycgECKmFtb3VudCB0byBtYWluIHRyZWFzdXJ5IGNhbm5vdCBiZSBuZWdhdGl2ZQEYY2FsY1Jld2FyZFNwbGl0Rm9yQW1vdW50AQZhbW91bnQEDSR0MDEwMDgyMTAxNzUJAQ5nZXRSZXdhcmRTcGxpdAEFBmFtb3VudAQRYW1vdW50VG9Qb3dlclBhcnQIBQ0kdDAxMDA4MjEwMTc1Al8xBBpidXNpbmVzc1RyZWFzdXJ5QW1vdW50UGFydAgFDSR0MDEwMDgyMTAxNzUCXzIED3Jld2FyZFJlbWFpbmRlcggFDSR0MDEwMDgyMTAxNzUCXzMEFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEYa2V5QmxvY2tQcm9jZXNzaW5nUmV3YXJkAAkBB3dyYXBFcnIBAh9pbnZhbGlkIGJsb2NrIHByb2Nlc3NpbmcgcmV3YXJkBCBibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvcgkAaQIFFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAUcYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZU1heAQKdG9McEFtb3VudAkAZQIFD3Jld2FyZFJlbWFpbmRlcgUVYmxvY2tQcm9jZXNzaW5nUmV3YXJkCQCXCgUFEWFtb3VudFRvUG93ZXJQYXJ0BRpidXNpbmVzc1RyZWFzdXJ5QW1vdW50UGFydAUVYmxvY2tQcm9jZXNzaW5nUmV3YXJkBQp0b0xwQW1vdW50BQZhbW91bnQMAWkBE3Jld2FyZFNwbGl0UkVBRE9OTFkABBF0YXJnZXRCbG9ja0hlaWdodAkAZQIFBmhlaWdodAABBA90YXJnZXRCbG9ja0luZm8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7QcBBRF0YXJnZXRCbG9ja0hlaWdodAkBB3dyYXBFcnIBAhJpbnZhbGlkIGJsb2NrIGluZm8EFHRyZWFzdXJ5UmV3YXJkT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQ9yZXdhcmRGb3JPcHRpb24CCAUPdGFyZ2V0QmxvY2tJbmZvB3Jld2FyZHMFGnByb3h5VHJlYXN1cnlBZGRyZXNzT3JGYWlsCQEHd3JhcEVycgEJAKwCAgIjaW52YWxpZCB0cmVhc3VyeSByZXdhcmQgZm9yIGhlaWdodCAJAKQDAQURdGFyZ2V0QmxvY2tIZWlnaHQJAJQKAgUDbmlsCQEYY2FsY1Jld2FyZFNwbGl0Rm9yQW1vdW50AQUUdHJlYXN1cnlSZXdhcmRPckZhaWwBaQEHY2xhaW1MUAEQdXNlckFkZHJlc3NCeXRlcwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt1c2VyQWRkcmVzcwkBB0FkZHJlc3MBBRB1c2VyQWRkcmVzc0J5dGVzBAlhdmFpbGFibGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQxrZXlBdmFpbGFibGUBBQt1c2VyQWRkcmVzcwAABAdjbGFpbWVkCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEKa2V5Q2xhaW1lZAEFC3VzZXJBZGRyZXNzAAAEDmZhY3RvcnlBY3Rpb25zAwkAZgIFCWF2YWlsYWJsZQAACQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyQXNzZXQJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBQlhdmFpbGFibGUJAMwIAgUPbHBBc3NldElkT3JGYWlsBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDGtleUF2YWlsYWJsZQEFC3VzZXJBZGRyZXNzCQDMCAIAAAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQprZXlDbGFpbWVkAQULdXNlckFkZHJlc3MJAMwIAgkAZAIFB2NsYWltZWQFCWF2YWlsYWJsZQUDbmlsBQNuaWwFA25pbAkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGZpbmFsaXplBRB1c2VyQWRkcmVzc0J5dGVzE2RvbmF0aW9uUGFydEluV2F2ZXMNbHBQYXJ0SW5XYXZlcxBjbGFpbVBhcnRJbldhdmVzFXBvd2VyU3Rha2VQYXJ0SW5XYXZlcwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBNjdXJyZW50UGVyaW9kT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARBrZXlDdXJyZW50UGVyaW9kAAkBB3dyYXBFcnIBAg5pbnZhbGlkIHBlcmlvZAQMcGVyaW9kTGVuZ3RoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQ9rZXlQZXJpb2RMZW5ndGgACQEHd3JhcEVycgECFWludmFsaWQgcGVyaW9kIGxlbmd0aAQSY3VycmVudFN0YXJ0SGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQ5rZXlTdGFydEhlaWdodAEFE2N1cnJlbnRQZXJpb2RPckZhaWwJAQd3cmFwRXJyAQIUaW52YWxpZCBzdGFydCBoZWlnaHQEEmN1cnJlbnRQcmljZU9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQERa2V5UHJpY2VGb3JQZXJpb2QBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQEHd3JhcEVycgECDWludmFsaWQgcHJpY2UEEm5leHRCbG9ja1RvUHJvY2VzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEVa2V5TmV4dEJsb2NrVG9Qcm9jZXNzAAkBB3dyYXBFcnIBAh1pbnZhbGlkIG5leHQgYmxvY2sgdG8gcHJvY2VzcwQPcGVyaW9kRW5kSGVpZ2h0CQBlAgkAZAIFEmN1cnJlbnRTdGFydEhlaWdodAUMcGVyaW9kTGVuZ3RoAAEEBmNoZWNrcwkAzAgCAwkAAAIIBQFpDG9yaWdpbkNhbGxlcgUZbWFpblRyZWFzdXJ5QWRkcmVzc09yRmFpbAYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkCQDMCAIDCQBmAgUSbmV4dEJsb2NrVG9Qcm9jZXNzBQ9wZXJpb2RFbmRIZWlnaHQGCQEIdGhyb3dFcnIBAhJ1bnByb2Nlc3NlZCBibG9ja3MJAMwIAgMJAGcCBRNkb25hdGlvblBhcnRJbldhdmVzAAAGCQEIdGhyb3dFcnIBAhVpbnZhbGlkIGRvbmF0aW9uIHBhcnQJAMwIAgMJAGcCBQ1scFBhcnRJbldhdmVzAAAGCQEIdGhyb3dFcnIBAg9pbnZhbGlkIGxwIHBhcnQJAMwIAgMJAGcCBRBjbGFpbVBhcnRJbldhdmVzAAAGCQEIdGhyb3dFcnIBAhJpbnZhbGlkIGNsYWltIHBhcnQJAMwIAgMJAGcCBRVwb3dlclN0YWtlUGFydEluV2F2ZXMAAAYJAQh0aHJvd0VycgECFmludmFsaWQgUFdSIHN0YWtlIHBhcnQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNJHQwMTM1MTMxMzYxOAkBDmNhbGN1bGF0ZVByaWNlAQUNbHBQYXJ0SW5XYXZlcwQIbmV3UHJpY2UIBQ0kdDAxMzUxMzEzNjE4Al8xBBNscEFzc2V0QW1vdW50VG9CdXJuCAUNJHQwMTM1MTMxMzYxOAJfMgQUbHBBc3NldEZpbmFsUXVhbnRpdHkIBQ0kdDAxMzUxMzEzNjE4Al8zBAluZXdQZXJpb2QJAGQCBRNjdXJyZW50UGVyaW9kT3JGYWlsAAEKAQxhZGROZXdBY3Rpb24CB2FjdGlvbnMHcGF5bWVudAQNJHQwMTM3NjYxMzgyOAUHYWN0aW9ucwQPc2NyaXB0VHJhbnNmZXJzCAUNJHQwMTM3NjYxMzgyOAJfMQQOYXNzZXRJZHNTdHJpbmcIBQ0kdDAxMzc2NjEzODI4Al8yBA1hbW91bnRzU3RyaW5nCAUNJHQwMTM3NjYxMzgyOAJfMwQNcGF5bWVudEFtb3VudAgFB3BheW1lbnQGYW1vdW50BA5wYXltZW50QXNzZXRJZAgFB3BheW1lbnQHYXNzZXRJZAQRbmV3QXNzZXRJZHNTdHJpbmcJAKwCAgICJXMJALkJAgkAzAgCBQ5hc3NldElkc1N0cmluZwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUOcGF5bWVudEFzc2V0SWQFA25pbAUDU0VQBBBuZXdBbW91bnRzU3RyaW5nCQCsAgICAiVkCQC5CQIJAMwIAgUNYW1vdW50c1N0cmluZwkAzAgCCQCkAwEFDXBheW1lbnRBbW91bnQFA25pbAUDU0VQBBFuZXdTY3JpcHRUcmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwUUZmFjdG9yeUFkZHJlc3NPckZhaWwFDXBheW1lbnRBbW91bnQFDnBheW1lbnRBc3NldElkCQCVCgMJAM0IAgUPc2NyaXB0VHJhbnNmZXJzBRFuZXdTY3JpcHRUcmFuc2ZlcgURbmV3QXNzZXRJZHNTdHJpbmcFEG5ld0Ftb3VudHNTdHJpbmcEDSR0MDE0Mjg4MTQzNzkKAAIkbAgFAWkIcGF5bWVudHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCVCgMFA25pbAIAAgAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGFkZE5ld0FjdGlvbgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQPc2NyaXB0VHJhbnNmZXJzCAUNJHQwMTQyODgxNDM3OQJfMQQIQXNzZXRJZHMIBQ0kdDAxNDI4ODE0Mzc5Al8yBAdBbW91bnRzCAUNJHQwMTQyODgxNDM3OQJfMwQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJARRrZXlQb3dlck1hbmFnZXJCb251cwEFE2N1cnJlbnRQZXJpb2RPckZhaWwJAMwIAgUVcG93ZXJTdGFrZVBhcnRJbldhdmVzBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBE2tleUNsYWltV2F2ZXNBbW91bnQBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQDMCAIFEGNsYWltUGFydEluV2F2ZXMFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQEQa2V5Q3VycmVudFBlcmlvZAAJAMwIAgUJbmV3UGVyaW9kBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBEWtleVByaWNlRm9yUGVyaW9kAQUJbmV3UGVyaW9kCQDMCAIFCG5ld1ByaWNlBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDmtleVN0YXJ0SGVpZ2h0AQUJbmV3UGVyaW9kCQDMCAIJAGQCBQ9wZXJpb2RFbmRIZWlnaHQAAQUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIEYnVybgkAzAgCBRNscEFzc2V0QW1vdW50VG9CdXJuBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDWtleVdpdGhkcmF3YWwACQDMCAIAAAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQtrZXlJbnZlc3RlZAEFBHVuaXQJAMwIAgUNbHBQYXJ0SW5XYXZlcwUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQprZXlEb25hdGVkAQUEdW5pdAkAzAgCBRNkb25hdGlvblBhcnRJbldhdmVzBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgtzdHJpbmdFbnRyeQkAzAgCCQEba2V5UGVyaW9kV2l0aGRyYXdhbEFzc2V0SWRzAQUJbmV3UGVyaW9kCQDMCAIFCEFzc2V0SWRzBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgtzdHJpbmdFbnRyeQkAzAgCCQEaa2V5UGVyaW9kV2l0aGRyYXdhbEFtb3VudHMBBQluZXdQZXJpb2QJAMwIAgUHQW1vdW50cwUDbmlsBQNuaWwFA25pbAkAlAoCBQ9zY3JpcHRUcmFuc2ZlcnMFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGZpbmFsaXplUkVBRE9OTFkEE2RvbmF0aW9uUGFydEluV2F2ZXMNbHBQYXJ0SW5XYXZlcxBjbGFpbVBhcnRJbldhdmVzFXBvd2VyU3Rha2VQYXJ0SW5XYXZlcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEDHBlcmlvZExlbmd0aAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEPa2V5UGVyaW9kTGVuZ3RoAAkBB3dyYXBFcnIBAhVpbnZhbGlkIHBlcmlvZCBsZW5ndGgEEmN1cnJlbnRTdGFydEhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEOa2V5U3RhcnRIZWlnaHQBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQEHd3JhcEVycgECFGludmFsaWQgc3RhcnQgaGVpZ2h0BBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBBJuZXh0QmxvY2tUb1Byb2Nlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBFWtleU5leHRCbG9ja1RvUHJvY2VzcwAJAQd3cmFwRXJyAQIdaW52YWxpZCBuZXh0IGJsb2NrIHRvIHByb2Nlc3MED3BlcmlvZEVuZEhlaWdodAkAZQIJAGQCBRJjdXJyZW50U3RhcnRIZWlnaHQFDHBlcmlvZExlbmd0aAABBAZjaGVja3MJAMwIAgMJAGYCBRJuZXh0QmxvY2tUb1Byb2Nlc3MFD3BlcmlvZEVuZEhlaWdodAYJAQh0aHJvd0VycgECEnVucHJvY2Vzc2VkIGJsb2NrcwkAzAgCAwkAZwIFE2RvbmF0aW9uUGFydEluV2F2ZXMAAAYJAQh0aHJvd0VycgECFWludmFsaWQgZG9uYXRpb24gcGFydAkAzAgCAwkAZwIFDWxwUGFydEluV2F2ZXMAAAYJAQh0aHJvd0VycgECD2ludmFsaWQgbHAgcGFydAkAzAgCAwkAZwIFEGNsYWltUGFydEluV2F2ZXMAAAYJAQh0aHJvd0VycgECEmludmFsaWQgY2xhaW0gcGFydAkAzAgCAwkAZwIFFXBvd2VyU3Rha2VQYXJ0SW5XYXZlcwAABgkBCHRocm93RXJyAQIWaW52YWxpZCBQV1Igc3Rha2UgcGFydAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA0kdDAxNzI1ODE3MzYzCQEOY2FsY3VsYXRlUHJpY2UBBQ1scFBhcnRJbldhdmVzBAhuZXdQcmljZQgFDSR0MDE3MjU4MTczNjMCXzEEE2xwQXNzZXRBbW91bnRUb0J1cm4IBQ0kdDAxNzI1ODE3MzYzAl8yBBRscEFzc2V0RmluYWxRdWFudGl0eQgFDSR0MDE3MjU4MTczNjMCXzMJAJQKAgUDbmlsCQCYCgYFEGNsYWltUGFydEluV2F2ZXMFDWxwUGFydEluV2F2ZXMFE2RvbmF0aW9uUGFydEluV2F2ZXMFCG5ld1ByaWNlBRNscEFzc2V0QW1vdW50VG9CdXJuBRRscEFzc2V0RmluYWxRdWFudGl0eQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZpbnZlc3QBEHVzZXJBZGRyZXNzQnl0ZXMEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAQdBZGRyZXNzAQUQdXNlckFkZHJlc3NCeXRlcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEEmN1cnJlbnRTdGFydEhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEOa2V5U3RhcnRIZWlnaHQBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQEHd3JhcEVycgECFGludmFsaWQgc3RhcnQgaGVpZ2h0BBJpbnZlc3RQZXJpb2RMZW5ndGgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEVa2V5SW52ZXN0UGVyaW9kTGVuZ3RoAAQLaGVpZ2h0Q2hlY2sDCQBmAgkAZAIFEmN1cnJlbnRTdGFydEhlaWdodAUSaW52ZXN0UGVyaW9kTGVuZ3RoBQZoZWlnaHQGCQEIdGhyb3dFcnIBAiF0b28gbGF0ZSB0byBpbnZlc3QgaW4gdGhpcyBwZXJpb2QDCQAAAgULaGVpZ2h0Q2hlY2sFC2hlaWdodENoZWNrBBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBAdwYXltZW50AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQEIdGhyb3dFcnIBAhBpbnZhbGlkIHBheW1lbnRzBA0kdDAxODQ3MjE4NjQ5AwMJAAACCAUHcGF5bWVudAdhc3NldElkBQR1bml0CQBmAggFB3BheW1lbnQGYW1vdW50AAAHCQCUCgIIBQdwYXltZW50BmFtb3VudAgFB3BheW1lbnQHYXNzZXRJZAkBCHRocm93RXJyAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAQNcGF5bWVudEFtb3VudAgFDSR0MDE4NDcyMTg2NDkCXzEEDnBheW1lbnRBc3NldElkCAUNJHQwMTg0NzIxODY0OQJfMgQMdHJlYXN1cnlQYXJ0CQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEXa2V5QnVzaW5lc3NUcmVhc3VyeVBhcnQAAAAEG3BheW1lbnRzV2l0aG91dFRyZWFzdXJ5UGFydAkAawMFDXBheW1lbnRBbW91bnQJAGUCBQZTQ0FMRTgFDHRyZWFzdXJ5UGFydAUGU0NBTEU4BA1scEFzc2V0QW1vdW50AwkAZgIFEmN1cnJlbnRQcmljZU9yRmFpbAAACQBrAwUbcGF5bWVudHNXaXRob3V0VHJlYXN1cnlQYXJ0BQZTQ0FMRTgFEmN1cnJlbnRQcmljZU9yRmFpbAAABAhpbnZlc3RlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBC2tleUludmVzdGVkAQUEdW5pdAAABAdhY3Rpb25zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFGW1haW5UcmVhc3VyeUFkZHJlc3NPckZhaWwFG3BheW1lbnRzV2l0aG91dFRyZWFzdXJ5UGFydAUOcGF5bWVudEFzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUdYnVzaW5lc3NUcmVhc3VyeUFkZHJlc3NPckZhaWwFDHRyZWFzdXJ5UGFydAUOcGF5bWVudEFzc2V0SWQFA25pbAQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQtrZXlJbnZlc3RlZAEFBHVuaXQJAMwIAgkAZAIFCGludmVzdGVkBRtwYXltZW50c1dpdGhvdXRUcmVhc3VyeVBhcnQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCB3JlaXNzdWUJAMwIAgUNbHBBc3NldEFtb3VudAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAINdHJhbnNmZXJBc3NldAkAzAgCBRB1c2VyQWRkcmVzc0J5dGVzCQDMCAIFDWxwQXNzZXRBbW91bnQJAMwIAgUPbHBBc3NldElkT3JGYWlsBQNuaWwFA25pbAUDbmlsCQCUCgIFB2FjdGlvbnMFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHdpdGhkcmF3ARB1c2VyQWRkcmVzc0J5dGVzBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBAxwZXJpb2RMZW5ndGgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBD2tleVBlcmlvZExlbmd0aAAJAQd3cmFwRXJyAQIVaW52YWxpZCBwZXJpb2QgbGVuZ3RoBBJjdXJyZW50U3RhcnRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBDmtleVN0YXJ0SGVpZ2h0AQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAhRpbnZhbGlkIHN0YXJ0IGhlaWdodAQLaGVpZ2h0Q2hlY2sDCQBmAgkAZAIFEmN1cnJlbnRTdGFydEhlaWdodAUMcGVyaW9kTGVuZ3RoBQZoZWlnaHQGCQEIdGhyb3dFcnIBAiN0b28gbGF0ZSB0byB3aXRoZHJhdyBpbiB0aGlzIHBlcmlvZAMJAAACBQtoZWlnaHRDaGVjawULaGVpZ2h0Q2hlY2sEB3BheW1lbnQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAQh0aHJvd0VycgEJAQd3cmFwRXJyAQIQaW52YWxpZCBwYXltZW50cwQOcGF5bWVudEFzc2V0SWQDCQAAAggFB3BheW1lbnQHYXNzZXRJZAUPbHBBc3NldElkT3JGYWlsBQ9scEFzc2V0SWRPckZhaWwJAQh0aHJvd0VycgECFWludmFsaWQgcGF5bWVudCBhc3NldAQNcGF5bWVudEFtb3VudAMJAGYCCAUHcGF5bWVudAZhbW91bnQAAAgFB3BheW1lbnQGYW1vdW50CQEIdGhyb3dFcnIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50BAp3aXRoZHJhd2FsCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQENa2V5V2l0aGRyYXdhbAAAAAQHYWN0aW9ucwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRRmYWN0b3J5QWRkcmVzc09yRmFpbAUNcGF5bWVudEFtb3VudAUOcGF5bWVudEFzc2V0SWQFA25pbAQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQ1rZXlXaXRoZHJhd2FsAAkAzAgCCQBkAgUKd2l0aGRyYXdhbAUNcGF5bWVudEFtb3VudAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAILc3RyaW5nRW50cnkJAMwIAgkBFGtleVdpdGhkcmF3YWxSZXF1ZXN0AgULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgkBFnZhbHVlV2l0aGRyYXdhbFJlcXVlc3QEBQdQRU5ESU5HBQ1wYXltZW50QW1vdW50CQBkAgUTY3VycmVudFBlcmlvZE9yRmFpbAABBQR1bml0BQNuaWwFA25pbAUDbmlsAwkAAAIFDmZhY3RvcnlBY3Rpb25zBQ5mYWN0b3J5QWN0aW9ucwkAlAoCBQdhY3Rpb25zBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jYW5jZWxXaXRoZHJhdwIQdXNlckFkZHJlc3NCeXRlcwR0eElkBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAQh0aHJvd0VycgECHGNhbmNlbFdpdGhkcmF3IGlzIGRlcHJlY2F0ZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPY2xhaW1Db2xsYXRlcmFsAhB1c2VyQWRkcmVzc0J5dGVzBHR4SWQEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQNJHQwMjE2MTYyMTgwMQkBF2NsYWltQ29sbGF0ZXJhbElOVEVSTkFMAgUQdXNlckFkZHJlc3NCeXRlcwkA2QQBBQR0eElkBAt1c2VyQWRkcmVzcwgFDSR0MDIxNjE2MjE4MDECXzEEDWxwQXNzZXRBbW91bnQIBQ0kdDAyMTYxNjIxODAxAl8yBAx0YXJnZXRQZXJpb2QIBQ0kdDAyMTYxNjIxODAxAl8zBAt3YXZlc0Ftb3VudAgFDSR0MDIxNjE2MjE4MDECXzQEDGFzc2V0c1N0cmluZwgFDSR0MDIxNjE2MjE4MDECXzUEDWFtb3VudHNTdHJpbmcIBQ0kdDAyMTYxNjIxODAxAl82BAphc3NldHNMaXN0CQDRCAIJAL0JAgUMYXNzZXRzU3RyaW5nBQNTRVAAAAQLYW1vdW50c0xpc3QJANEIAgkAvQkCBQ1hbW91bnRzU3RyaW5nBQNTRVAAAAQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAILZGVsZXRlRW50cnkJAMwIAgkBFGtleVdpdGhkcmF3YWxSZXF1ZXN0AgULdXNlckFkZHJlc3MJANkEAQUEdHhJZAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJARRrZXlXaXRoZHJhd2FsSGlzdG9yeQIFC3VzZXJBZGRyZXNzCQDZBAEFBHR4SWQJAMwIAgUNbHBBc3NldEFtb3VudAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIOdHJhbnNmZXJBc3NldHMJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBQphc3NldHNMaXN0CQDMCAIFC2Ftb3VudHNMaXN0BQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETY2xhaW1Db2xsYXRlcmFsQnVsawIQdXNlckFkZHJlc3NCeXRlcwV0eElkcwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCgEMYWRkTmV3QWN0aW9uAgVzdGF0ZQR0eElkBA0kdDAyMjU1OTIyNzU4CQEXY2xhaW1Db2xsYXRlcmFsSU5URVJOQUwCBRB1c2VyQWRkcmVzc0J5dGVzCQDZBAEFBHR4SWQEC3VzZXJBZGRyZXNzCAUNJHQwMjI1NTkyMjc1OAJfMQQNbHBBc3NldEFtb3VudAgFDSR0MDIyNTU5MjI3NTgCXzIEDHRhcmdldFBlcmlvZAgFDSR0MDIyNTU5MjI3NTgCXzMEC3dhdmVzQW1vdW50CAUNJHQwMjI1NTkyMjc1OAJfNAQMYXNzZXRzU3RyaW5nCAUNJHQwMjI1NTkyMjc1OAJfNQQNYW1vdW50c1N0cmluZwgFDSR0MDIyNTU5MjI3NTgCXzYECmFzc2V0c0xpc3QJANEIAgkAvQkCBQxhc3NldHNTdHJpbmcFA1NFUAAABAthbW91bnRzTGlzdAkA0QgCCQC9CQIFDWFtb3VudHNTdHJpbmcFA1NFUAAABApuZXdBY3Rpb25zCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCC2RlbGV0ZUVudHJ5CQDMCAIJARRrZXlXaXRoZHJhd2FsUmVxdWVzdAIFC3VzZXJBZGRyZXNzCQDZBAEFBHR4SWQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQEUa2V5V2l0aGRyYXdhbEhpc3RvcnkCBQt1c2VyQWRkcmVzcwkA2QQBBQR0eElkCQDMCAIFDWxwQXNzZXRBbW91bnQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDnRyYW5zZmVyQXNzZXRzCQDMCAIFEHVzZXJBZGRyZXNzQnl0ZXMJAMwIAgUKYXNzZXRzTGlzdAkAzAgCBQthbW91bnRzTGlzdAUDbmlsBQNuaWwFA25pbAkAzggCBQVzdGF0ZQUKbmV3QWN0aW9ucwQRYWxsRmFjdG9yeUFjdGlvbnMKAAIkbAUFdHhJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGFkZE5ld0FjdGlvbgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAlAoCBQNuaWwFEWFsbEZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBF2NsYWltQ29sbGF0ZXJhbFJFQURPTkxZAhB1c2VyQWRkcmVzc0J5dGVzBHR4SWQECHJlc3BvbnNlCQElY2xhaW1Db2xsYXRlcmFsUkVBRE9OTFlTdHJpbmdSZXNwb25zZQIFEHVzZXJBZGRyZXNzQnl0ZXMJANkEAQUEdHhJZAkAlAoCBQNuaWwFCHJlc3BvbnNlAWkBG2NsYWltQ29sbGF0ZXJhbEJ1bGtSRUFET05MWQIQdXNlckFkZHJlc3NCeXRlcwV0eElkcwoBC3Byb2Nlc3NUeElkAgVzdGF0ZQR0eElkBAhyZXNwb25zZQkBJWNsYWltQ29sbGF0ZXJhbFJFQURPTkxZU3RyaW5nUmVzcG9uc2UCBRB1c2VyQWRkcmVzc0J5dGVzCQDZBAEFBHR4SWQJAM0IAgUFc3RhdGUFCHJlc3BvbnNlBAxhbGxSZXNwb25zZXMKAAIkbAUFdHhJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBC3Byb2Nlc3NUeElkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQCUCgIFA25pbAUMYWxsUmVzcG9uc2VzAWkBDXByb2Nlc3NCbG9ja3MBEHVzZXJBZGRyZXNzQnl0ZXMEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAQdBZGRyZXNzAQUQdXNlckFkZHJlc3NCeXRlcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEDHBlcmlvZExlbmd0aAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEPa2V5UGVyaW9kTGVuZ3RoAAkBB3dyYXBFcnIBAhVpbnZhbGlkIHBlcmlvZCBsZW5ndGgEEmN1cnJlbnRTdGFydEhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEOa2V5U3RhcnRIZWlnaHQBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQEHd3JhcEVycgECFGludmFsaWQgc3RhcnQgaGVpZ2h0BBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBBJuZXh0QmxvY2tUb1Byb2Nlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBFWtleU5leHRCbG9ja1RvUHJvY2VzcwAJAQd3cmFwRXJyAQIdaW52YWxpZCBuZXh0IGJsb2NrIHRvIHByb2Nlc3MED3BlcmlvZEVuZEhlaWdodAkAZQIJAGQCBRJjdXJyZW50U3RhcnRIZWlnaHQFDHBlcmlvZExlbmd0aAABBBlibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplAwMDCQBnAgUGaGVpZ2h0BRJuZXh0QmxvY2tUb1Byb2Nlc3MDCQBnAgUSbmV4dEJsb2NrVG9Qcm9jZXNzBRJjdXJyZW50U3RhcnRIZWlnaHQGCQAAAgUTY3VycmVudFBlcmlvZE9yRmFpbAAABwkAZwIFD3BlcmlvZEVuZEhlaWdodAUSbmV4dEJsb2NrVG9Qcm9jZXNzBwkAlwMBCQDMCAIJAGQCCQBlAgUPcGVyaW9kRW5kSGVpZ2h0BRJuZXh0QmxvY2tUb1Byb2Nlc3MAAQkAzAgCBRxibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplTWF4BQNuaWwJAQh0aHJvd0VycgEJAQd3cmFwRXJyAQIUaW52YWxpZCB0YXJnZXQgYmxvY2sEFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEYa2V5QmxvY2tQcm9jZXNzaW5nUmV3YXJkAAkBB3dyYXBFcnIBAh9pbnZhbGlkIGJsb2NrIHByb2Nlc3NpbmcgcmV3YXJkBCBibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvcgkAaQIFFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQQpYmxvY2tQcm9jZXNzaW5nUmV3YXJkQnlHZW5lcmF0b3JSZW1haW5kZXIJAGUCBRVibG9ja1Byb2Nlc3NpbmdSZXdhcmQJAGgCBSBibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvcgUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQoBA21hcAIDYWNjA2luYwMJAGcCBQNpbmMFGWJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemUFA2FjYwQRdGFyZ2V0QmxvY2tIZWlnaHQJAGQCBRJuZXh0QmxvY2tUb1Byb2Nlc3MFA2luYwQPdGFyZ2V0QmxvY2tJbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAO0HAQURdGFyZ2V0QmxvY2tIZWlnaHQJAQd3cmFwRXJyAQISaW52YWxpZCBibG9jayBpbmZvBBR0cmVhc3VyeVJld2FyZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQEPcmV3YXJkRm9yT3B0aW9uAggFD3RhcmdldEJsb2NrSW5mbwdyZXdhcmRzBRpwcm94eVRyZWFzdXJ5QWRkcmVzc09yRmFpbAkBB3dyYXBFcnIBCQCsAgICI2ludmFsaWQgdHJlYXN1cnkgcmV3YXJkIGZvciBoZWlnaHQgCQCkAwEFEXRhcmdldEJsb2NrSGVpZ2h0BAlnZW5lcmF0b3IIBQ90YXJnZXRCbG9ja0luZm8JZ2VuZXJhdG9yBAlhdmFpbGFibGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQxrZXlBdmFpbGFibGUBBQlnZW5lcmF0b3IAAAQMY2FsbGVyUmV3YXJkAwkAAAIFA2luYwkAZQIFGWJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemUAAQkAZAIFIGJsb2NrUHJvY2Vzc2luZ1Jld2FyZEJ5R2VuZXJhdG9yBSlibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvclJlbWFpbmRlcgUgYmxvY2tQcm9jZXNzaW5nUmV3YXJkQnlHZW5lcmF0b3IEDSR0MDI2NjU4MjY3NjYJAQ5nZXRSZXdhcmRTcGxpdAEFFHRyZWFzdXJ5UmV3YXJkT3JGYWlsBBJzaGFyZUFtb3VudFRvUG93ZXIIBQ0kdDAyNjY1ODI2NzY2Al8xBBpidXNpbmVzc1RyZWFzdXJ5QW1vdW50UGFydAgFDSR0MDI2NjU4MjY3NjYCXzIED3Jld2FyZFJlbWFpbmRlcggFDSR0MDI2NjU4MjY3NjYCXzMEDWxwQXNzZXRBbW91bnQDCQBmAgUSY3VycmVudFByaWNlT3JGYWlsAAAJAGsDCQBlAgUPcmV3YXJkUmVtYWluZGVyBQxjYWxsZXJSZXdhcmQFBlNDQUxFOAUSY3VycmVudFByaWNlT3JGYWlsAAAEFGZhY3RvcnlBY3Rpb25zU2luZ2xlCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCC3N0cmluZ0VudHJ5CQDMCAIJARFrZXlCbG9ja1Byb2Nlc3NlZAEFEXRhcmdldEJsb2NrSGVpZ2h0CQDMCAIJALkJAgkAzAgCCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQDMCAIJAKUIAQUJZ2VuZXJhdG9yCQDMCAIJANgEAQUQdXNlckFkZHJlc3NCeXRlcwkAzAgCCQCkAwEFFHRyZWFzdXJ5UmV3YXJkT3JGYWlsCQDMCAIJAKQDAQUMY2FsbGVyUmV3YXJkCQDMCAIJAKQDAQUNbHBBc3NldEFtb3VudAkAzAgCCQCkAwEFEnNoYXJlQW1vdW50VG9Qb3dlcgUDbmlsBQNTRVAFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQEMa2V5QXZhaWxhYmxlAQUJZ2VuZXJhdG9yCQDMCAIJAGQCBQlhdmFpbGFibGUFDWxwQXNzZXRBbW91bnQFA25pbAUDbmlsBQNuaWwDCQAAAgUUZmFjdG9yeUFjdGlvbnNTaW5nbGUFFGZhY3RvcnlBY3Rpb25zU2luZ2xlBA0kdDAyNzYxNDI3Njg5BQNhY2MECmxwQXNzZXRBY2MIBQ0kdDAyNzYxNDI3Njg5Al8xBAlyZXdhcmRBY2MIBQ0kdDAyNzYxNDI3Njg5Al8yBBNidXNpbmVzc1RyZWFzdXJ5QWNjCAUNJHQwMjc2MTQyNzY4OQJfMwQTcG93ZXJTaGFyZURhdGFUdXBsZQgFDSR0MDI3NjE0Mjc2ODkCXzQEDSR0MDI3Njk2Mjc3NjIFE3Bvd2VyU2hhcmVEYXRhVHVwbGUEDXBvd2VyU2hhcmVBY2MIBQ0kdDAyNzY5NjI3NzYyAl8xBBdnZW5lcmF0b3JQb3dlclNoYXJlTGlzdAgFDSR0MDI3Njk2Mjc3NjICXzIEGm5ld0dlbmVyYXRvclBvd2VyU2hhcmVMaXN0CQDNCAIFF2dlbmVyYXRvclBvd2VyU2hhcmVMaXN0CQCUCgIJAKUIAQUJZ2VuZXJhdG9yBRJzaGFyZUFtb3VudFRvUG93ZXIJAJYKBAkAZAIFCmxwQXNzZXRBY2MFDWxwQXNzZXRBbW91bnQJAGQCBQlyZXdhcmRBY2MFFHRyZWFzdXJ5UmV3YXJkT3JGYWlsCQBkAgUTYnVzaW5lc3NUcmVhc3VyeUFjYwUaYnVzaW5lc3NUcmVhc3VyeUFtb3VudFBhcnQJAJQKAgkAZAIFDXBvd2VyU2hhcmVBY2MFEnNoYXJlQW1vdW50VG9Qb3dlcgUabmV3R2VuZXJhdG9yUG93ZXJTaGFyZUxpc3QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EBGxpc3QJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwUDbmlsBA0kdDAyODIxMDI4MzcyCgACJGwFBGxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQAAAAAAAAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBA21hcAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUAwkAAAIFDSR0MDI4MjEwMjgzNzIFDSR0MDI4MjEwMjgzNzIEE3Bvd2VyU2hhcmVEYXRhVHVwbGUIBQ0kdDAyODIxMDI4MzcyAl80BB5yZXdhcmRUb0J1c2luZXNzVHJlYXN1cnlBbW91bnQIBQ0kdDAyODIxMDI4MzcyAl8zBBFyZXdhcmRBbW91bnRUb3RhbAgFDSR0MDI4MjEwMjgzNzICXzIEEmxwQXNzZXRBbW91bnRUb3RhbAgFDSR0MDI4MjEwMjgzNzICXzEEDSR0MDI4Mzc2Mjg0NDUFE3Bvd2VyU2hhcmVEYXRhVHVwbGUEEmFtb3VudFRvUG93ZXJUb3RhbAgFDSR0MDI4Mzc2Mjg0NDUCXzEEFXBvd2VyU2hhcmVBbW91bnRzTGlzdAgFDSR0MDI4Mzc2Mjg0NDUCXzIEGnJld2FyZFRvTWFpblRyZWFzdXJ5QW1vdW50CQBlAgkAZQIJAGUCBRFyZXdhcmRBbW91bnRUb3RhbAUecmV3YXJkVG9CdXNpbmVzc1RyZWFzdXJ5QW1vdW50BRVibG9ja1Byb2Nlc3NpbmdSZXdhcmQFEmFtb3VudFRvUG93ZXJUb3RhbAQIaW52ZXN0ZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQtrZXlJbnZlc3RlZAEFBHVuaXQAAAQRcG93ZXJTaGFyZUFjdGlvbnMDCQBmAgUSYW1vdW50VG9Qb3dlclRvdGFsAAAEDnRyYW5zZmVyQWN0aW9uCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCGXRyYW5zZmVyRnJvbVByb3h5VHJlYXN1cnkJAMwIAggFFGZhY3RvcnlBZGRyZXNzT3JGYWlsBWJ5dGVzCQDMCAIFEmFtb3VudFRvUG93ZXJUb3RhbAUDbmlsBQNuaWwFA25pbAMJAAACBQ50cmFuc2ZlckFjdGlvbgUOdHJhbnNmZXJBY3Rpb24EEHRvdGFsUG93ZXJBbW91bnQJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCBHN3YXAJAMwIAgUYcG93ZXJBc3NldElkU3RyaW5nT3JGYWlsCQDMCAIFBVdBVkVTCQDMCAIFEmFtb3VudFRvUG93ZXJUb3RhbAUDbmlsBQNuaWwDCQAAAgUQdG90YWxQb3dlckFtb3VudAUQdG90YWxQb3dlckFtb3VudAQTdG90YWxQb3dlckFtb3VudEludAQHJG1hdGNoMAUQdG90YWxQb3dlckFtb3VudAMJAAECBQckbWF0Y2gwAgNJbnQEB3BBbW91bnQFByRtYXRjaDAFB3BBbW91bnQAAAoBEHN0YWtlUG93ZXJJbnZva2UCA2FjYwRuZXh0BA0kdDAyOTMxOTI5MzU0BQRuZXh0BAlnZW5lcmF0b3IIBQ0kdDAyOTMxOTI5MzU0Al8xBAtzaGFyZUFtb3VudAgFDSR0MDI5MzE5MjkzNTQCXzIDCQBmAgUSYW1vdW50VG9Qb3dlclRvdGFsAAAEC3Bvd2VyQW1vdW50CQBrAwULc2hhcmVBbW91bnQFE3RvdGFsUG93ZXJBbW91bnRJbnQFEmFtb3VudFRvUG93ZXJUb3RhbAQDaW52CQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgpwb3dlclN0YWtlCQDMCAIJANkEAQUJZ2VuZXJhdG9yCQDMCAIJANkEAQUYcG93ZXJBc3NldElkU3RyaW5nT3JGYWlsCQDMCAIFC3Bvd2VyQW1vdW50BQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwEEnBvd2VyU3Rha2VzQWN0aW9ucwoAAiRsBRVwb3dlclNoYXJlQW1vdW50c0xpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEHN0YWtlUG93ZXJJbnZva2UCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAMJAAACBRJwb3dlclN0YWtlc0FjdGlvbnMFEnBvd2VyU3Rha2VzQWN0aW9ucwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwDCQAAAgURcG93ZXJTaGFyZUFjdGlvbnMFEXBvd2VyU2hhcmVBY3Rpb25zBAdhY3Rpb25zCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCB3JlaXNzdWUJAMwIAgUSbHBBc3NldEFtb3VudFRvdGFsBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBFWtleU5leHRCbG9ja1RvUHJvY2VzcwAJAMwIAgkAZAIFEm5leHRCbG9ja1RvUHJvY2VzcwUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIZdHJhbnNmZXJGcm9tUHJveHlUcmVhc3VyeQkAzAgCCAUZbWFpblRyZWFzdXJ5QWRkcmVzc09yRmFpbAVieXRlcwkAzAgCBRpyZXdhcmRUb01haW5UcmVhc3VyeUFtb3VudAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIZdHJhbnNmZXJGcm9tUHJveHlUcmVhc3VyeQkAzAgCBRB1c2VyQWRkcmVzc0J5dGVzCQDMCAIFFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIZdHJhbnNmZXJGcm9tUHJveHlUcmVhc3VyeQkAzAgCCAUdYnVzaW5lc3NUcmVhc3VyeUFkZHJlc3NPckZhaWwFYnl0ZXMJAMwIAgUecmV3YXJkVG9CdXNpbmVzc1RyZWFzdXJ5QW1vdW50BQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tleUludmVzdGVkAQUEdW5pdAkAzAgCCQBkAgUIaW52ZXN0ZWQFGnJld2FyZFRvTWFpblRyZWFzdXJ5QW1vdW50BQNuaWwFA25pbAUDbmlsAwkAAAIFB2FjdGlvbnMFB2FjdGlvbnMJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQJcHVibGljS2V5BAckbWF0Y2gwCQEZZ2V0TWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDcHViBQckbWF0Y2gwBQNwdWIIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCXB1YmxpY0tleW96YJ0=", "chainId": 84, "height": 2722925, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CphUDDL8wy6DDW4P13GA5Up16NHqiMwP9TkSLAjEchGk Next: 3g5NWKChUxZLhL17CbHBmZMnV1BRvXJFmTcYPsH2vsiT Diff:
OldNewDifferences
1111
1212 let e = "WAVES"
1313
14-func f (g) = ((b + ": ") + g)
14+let f = 10
15+
16+func g (h) = ((b + ": ") + h)
1517
1618
17-func h (g) = throw(f(g))
19+func i (h) = throw(g(h))
1820
1921
20-func i (j) = {
21- let k = j
22- if ($isInstanceOf(k, "ByteVector"))
22+func j (k) = {
23+ let l = k
24+ if ($isInstanceOf(l, "ByteVector"))
2325 then {
24- let l = k
25- toBase58String(l)
26+ let m = l
27+ toBase58String(m)
2628 }
27- else if ($isInstanceOf(k, "Unit"))
29+ else if ($isInstanceOf(l, "Unit"))
2830 then e
2931 else throw("Match error")
3032 }
3133
3234
33-func m (g) = if ((g == e))
35+func n (h) = if ((h == e))
3436 then unit
35- else fromBase58String(g)
37+ else fromBase58String(h)
3638
3739
38-func n (o) = if ((0 > o))
39- then -(o)
40- else o
40+func o (p) = if ((0 > p))
41+ then -(p)
42+ else p
4143
4244
43-func p () = makeString(["%s", "factory"], a)
45+func q () = makeString(["%s", "factory"], a)
4446
4547
46-func q () = makeString(["%s", "managerPublicKey"], a)
48+func r () = makeString(["%s", "managerPublicKey"], a)
4749
4850
49-func r () = makeString(["%s", "lpAssetId"], a)
51+func s () = makeString(["%s", "lpAssetId"], a)
5052
5153
52-func s () = makeString(["%s", "proxyTreasury"], a)
54+func t () = makeString(["%s", "proxyTreasury"], a)
5355
5456
55-func t () = makeString(["%s", "mainTreasury"], a)
57+func u () = makeString(["%s", "mainTreasury"], a)
5658
5759
58-func u () = makeString(["%s", "businessTreasury"], a)
60+func v () = makeString(["%s", "businessTreasury"], a)
5961
6062
61-func v () = makeString(["%s", "businessTreasuryPart"], a)
63+func w () = makeString(["%s", "businessTreasuryPart"], a)
6264
6365
64-func w () = makeString(["%s", "powerContract"], a)
66+func x () = makeString(["%s", "powerContract"], a)
6567
6668
67-func x () = makeString(["%s", "powerShareRatio"], a)
69+func y () = makeString(["%s", "powerShareRatio"], a)
6870
6971
70-func y () = makeString(["%s", "powerAssetId"], a)
72+func z () = makeString(["%s", "powerAssetId"], a)
7173
7274
73-func z (j) = makeString(["%s%s", "invested", i(j)], a)
75+func A (k) = makeString(["%s%s", "invested", j(k)], a)
7476
7577
76-func A (j) = makeString(["%s%s", "donated", i(j)], a)
78+func B (k) = makeString(["%s%s", "donated", j(k)], a)
7779
7880
79-func B (C) = makeString(["%s%s", "available", toString(C)], a)
81+func C (D) = makeString(["%s%s", "available", toString(D)], a)
8082
8183
82-func D (C) = makeString(["%s%s", "claimed", toString(C)], a)
84+func E (D) = makeString(["%s%s", "claimed", toString(D)], a)
8385
8486
85-func E () = makeString(["%s", "currentPeriod"], a)
87+func F () = makeString(["%s", "currentPeriod"], a)
8688
8789
88-func F (G) = makeString(["%s%d", "price", toString(G)], a)
90+func G (H) = makeString(["%s%d", "price", toString(H)], a)
8991
9092
91-func H (G) = makeString(["%s%d", "startHeight", toString(G)], a)
93+func I (H) = makeString(["%s%d", "startHeight", toString(H)], a)
9294
9395
94-func I (G) = makeString(["%s%d", "powerManagerBonus", toString(G)], a)
96+func J (H) = makeString(["%s%d", "powerManagerBonus", toString(H)], a)
9597
9698
97-func J (G) = makeString(["%s%d", "claimWavesAmount", toString(G)], a)
99+func K (H) = makeString(["%s%d", "claimWavesAmount", toString(H)], a)
98100
99101
100-func K () = "%s__periodLength"
102+func L () = "%s__periodLength"
101103
102104
103-func L () = "%s__investPeriodLength"
105+func M () = "%s__investPeriodLength"
104106
105107
106-func M () = "%s__blockProcessingReward"
108+func N () = "%s__blockProcessingReward"
107109
108110
109-func N () = "%s__nextBlockToProcess"
111+func O () = "%s__nextBlockToProcess"
110112
111113
112-func O (P) = makeString(["%s%d", "blockProcessed", toString(P)], a)
114+func P (Q) = makeString(["%s%d", "blockProcessed", toString(Q)], a)
113115
114116
115-func Q () = "%s__withdrawal"
117+func R () = "%s__withdrawal"
116118
117119
118-func R (C,S) = makeString(["%s%s%s", "withdrawal", toString(C), toBase58String(S)], a)
120+func S (D,T) = makeString(["%s%s%s", "withdrawal", toString(D), toBase58String(T)], a)
119121
120122
121-func T (U,V,W,X) = {
122- let Y = {
123- let k = X
124- if ($isInstanceOf(k, "ByteVector"))
123+func U (V,W,X,Y) = {
124+ let Z = {
125+ let l = Y
126+ if ($isInstanceOf(l, "ByteVector"))
125127 then {
126- let l = k
127- toBase58String(l)
128+ let m = l
129+ toBase58String(m)
128130 }
129- else if ($isInstanceOf(k, "Unit"))
131+ else if ($isInstanceOf(l, "Unit"))
130132 then "SOON"
131133 else throw("Match error")
132134 }
133- makeString(["%s%d%d%s", U, toString(V), toString(W), Y], a)
135+ makeString(["%s%d%d%s", V, toString(W), toString(X), Z], a)
134136 }
135137
136138
137-func Z (C,S) = makeString(["%s%s%s", "withdrawalHistory", toString(C), toBase58String(S)], a)
139+func aa (D,T) = makeString(["%s%s%s", "withdrawalHistory", toString(D), toBase58String(T)], a)
138140
139141
140-func aa (G) = makeString(["%s%d", "periodReward", toString(G)], a)
142+func ab (H) = makeString(["%s%d", "periodReward", toString(H)], a)
141143
142144
143-func ab (G) = makeString(["%s%d", "periodRewardAmount", toString(G)], a)
145+func ac (H) = makeString(["%s%d", "periodRewardAmount", toString(H)], a)
144146
145147
146-func ac (g) = {
147- let ad = split(g, a)
148- if ((size(ad) == 5))
148+func ad (h) = {
149+ let ae = split(h, a)
150+ if ((size(ae) == 5))
149151 then {
150- let U = ad[1]
151- let V = valueOrErrorMessage(parseInt(ad[2]), f("invalid lpAssetAmount"))
152- let W = valueOrErrorMessage(parseInt(ad[3]), f("invalid targetPeriod"))
153- let X = ad[4]
154- $Tuple4(U, V, W, X)
152+ let V = ae[1]
153+ let W = valueOrErrorMessage(parseInt(ae[2]), g("invalid lpAssetAmount"))
154+ let X = valueOrErrorMessage(parseInt(ae[3]), g("invalid targetPeriod"))
155+ let Y = ae[4]
156+ $Tuple4(V, W, X, Y)
155157 }
156- else h("invalid withdrawal request value")
158+ else i("invalid withdrawal request value")
157159 }
158160
159161
160-let ae = {
161- let k = getString(this, p())
162- if ($isInstanceOf(k, "String"))
162+let af = {
163+ let l = getString(this, q())
164+ if ($isInstanceOf(l, "String"))
163165 then {
164- let g = k
165- addressFromString(g)
166+ let h = l
167+ addressFromString(h)
166168 }
167- else if ($isInstanceOf(k, "Unit"))
169+ else if ($isInstanceOf(l, "Unit"))
168170 then unit
169171 else throw("Match error")
170172 }
171173
172-let af = valueOrErrorMessage(ae, f("invalid factory address"))
174+let ag = valueOrErrorMessage(af, g("invalid factory address"))
173175
174-let ag = {
175- let k = ae
176- if ($isInstanceOf(k, "Address"))
176+let ah = {
177+ let l = af
178+ if ($isInstanceOf(l, "Address"))
177179 then {
178- let ah = k
179- let ai = getString(ah, r())
180- if ($isInstanceOf(ai, "String"))
180+ let ai = l
181+ let aj = getString(ai, s())
182+ if ($isInstanceOf(aj, "String"))
181183 then {
182- let g = ai
183- fromBase58String(g)
184+ let h = aj
185+ fromBase58String(h)
184186 }
185- else if ($isInstanceOf(ai, "Unit"))
187+ else if ($isInstanceOf(aj, "Unit"))
186188 then unit
187189 else throw("Match error")
188190 }
189- else if ($isInstanceOf(k, "Unit"))
191+ else if ($isInstanceOf(l, "Unit"))
190192 then unit
191193 else throw("Match error")
192194 }
193195
194-let aj = valueOrErrorMessage(ag, f("invalid lpAssetId"))
196+let ak = valueOrErrorMessage(ah, g("invalid lpAssetId"))
195197
196-let ak = {
197- let k = ae
198- if ($isInstanceOf(k, "Address"))
198+let al = {
199+ let l = af
200+ if ($isInstanceOf(l, "Address"))
199201 then {
200- let ah = k
201- let ai = getString(ah, s())
202- if ($isInstanceOf(ai, "String"))
202+ let ai = l
203+ let aj = getString(ai, t())
204+ if ($isInstanceOf(aj, "String"))
203205 then {
204- let g = ai
205- addressFromString(g)
206+ let h = aj
207+ addressFromString(h)
206208 }
207- else if ($isInstanceOf(ai, "Unit"))
209+ else if ($isInstanceOf(aj, "Unit"))
208210 then unit
209211 else throw("Match error")
210212 }
211- else if ($isInstanceOf(k, "Unit"))
213+ else if ($isInstanceOf(l, "Unit"))
212214 then unit
213215 else throw("Match error")
214216 }
215217
216-let al = valueOrErrorMessage(ak, f("invalid proxy treasury address"))
218+let am = valueOrErrorMessage(al, g("invalid proxy treasury address"))
217219
218-let am = {
219- let k = ae
220- if ($isInstanceOf(k, "Address"))
220+let an = {
221+ let l = af
222+ if ($isInstanceOf(l, "Address"))
221223 then {
222- let ah = k
223- let ai = getString(ah, t())
224- if ($isInstanceOf(ai, "String"))
224+ let ai = l
225+ let aj = getString(ai, u())
226+ if ($isInstanceOf(aj, "String"))
225227 then {
226- let g = ai
227- addressFromString(g)
228+ let h = aj
229+ addressFromString(h)
228230 }
229- else if ($isInstanceOf(ai, "Unit"))
231+ else if ($isInstanceOf(aj, "Unit"))
230232 then unit
231233 else throw("Match error")
232234 }
233- else if ($isInstanceOf(k, "Unit"))
235+ else if ($isInstanceOf(l, "Unit"))
234236 then unit
235237 else throw("Match error")
236238 }
237239
238-let an = {
239- let k = ae
240- if ($isInstanceOf(k, "Address"))
240+let ao = {
241+ let l = af
242+ if ($isInstanceOf(l, "Address"))
241243 then {
242- let ah = k
243- let ai = getString(ah, u())
244- if ($isInstanceOf(ai, "String"))
244+ let ai = l
245+ let aj = getString(ai, v())
246+ if ($isInstanceOf(aj, "String"))
245247 then {
246- let g = ai
247- addressFromString(g)
248+ let h = aj
249+ addressFromString(h)
248250 }
249- else if ($isInstanceOf(ai, "Unit"))
251+ else if ($isInstanceOf(aj, "Unit"))
250252 then unit
251253 else throw("Match error")
252254 }
253- else if ($isInstanceOf(k, "Unit"))
255+ else if ($isInstanceOf(l, "Unit"))
254256 then unit
255257 else throw("Match error")
256258 }
257259
258-let ao = valueOrErrorMessage(am, f("invalid main treasury address"))
260+let ap = valueOrErrorMessage(an, g("invalid main treasury address"))
259261
260-let ap = valueOrErrorMessage(an, f("invalid business treasury address"))
262+let aq = valueOrErrorMessage(ao, g("invalid business treasury address"))
261263
262-let aq = {
263- let k = ae
264- if ($isInstanceOf(k, "Address"))
264+let ar = {
265+ let l = af
266+ if ($isInstanceOf(l, "Address"))
265267 then {
266- let ah = k
267- let ai = getString(ah, w())
268- if ($isInstanceOf(ai, "String"))
268+ let ai = l
269+ let aj = getString(ai, x())
270+ if ($isInstanceOf(aj, "String"))
269271 then {
270- let g = ai
271- addressFromString(g)
272+ let h = aj
273+ addressFromString(h)
272274 }
273- else if ($isInstanceOf(ai, "Unit"))
275+ else if ($isInstanceOf(aj, "Unit"))
274276 then unit
275277 else throw("Match error")
276278 }
277- else if ($isInstanceOf(k, "Unit"))
279+ else if ($isInstanceOf(l, "Unit"))
278280 then unit
279281 else throw("Match error")
280282 }
281283
282-let ar = valueOrErrorMessage(aq, f("invalid power contract address"))
284+let as = valueOrErrorMessage(ar, g("invalid power contract address"))
283285
284-let as = valueOrErrorMessage(getString(af, y()), f("power asset id not found"))
286+let at = valueOrErrorMessage(getString(ag, z()), g("power asset id not found"))
285287
286-func at () = {
287- let k = ae
288- if ($isInstanceOf(k, "Address"))
288+func au () = {
289+ let l = af
290+ if ($isInstanceOf(l, "Address"))
289291 then {
290- let au = k
291- let ai = getString(au, q())
292- if ($isInstanceOf(ai, "String"))
292+ let av = l
293+ let aj = getString(av, r())
294+ if ($isInstanceOf(aj, "String"))
293295 then {
294- let av = ai
295- fromBase58String(av)
296+ let aw = aj
297+ fromBase58String(aw)
296298 }
297299 else unit
298300 }
300302 }
301303
302304
303-func aw (ax,ay) = if ((ax.caller == ay))
305+func ax (ay,az) = if ((ay.caller == az))
304306 then true
305- else h("permission denied")
307+ else i("permission denied")
306308
307309
308-func az (ax) = aw(ax, af)
310+func aA (ay) = ax(ay, ag)
309311
310312
311-func aA (aB,aC) = {
312- let g = size(aB)
313- let aD = aB[0]
314- let aE = aD._1
315- let aF = aD._2
316- let aG = aB[1]
317- let aH = aG._1
318- let aI = aG._2
319- let aJ = aB[2]
320- let aK = aJ._1
321- let aL = aJ._2
322- if (if ((g > 0))
323- then (aE == aC)
313+func aB (aC,aD) = {
314+ let h = size(aC)
315+ let aE = aC[0]
316+ let aF = aE._1
317+ let aG = aE._2
318+ let aH = aC[1]
319+ let aI = aH._1
320+ let aJ = aH._2
321+ let aK = aC[2]
322+ let aL = aK._1
323+ let aM = aK._2
324+ if (if ((h > 0))
325+ then (aF == aD)
324326 else false)
325- then aF
326- else if (if ((g > 1))
327- then (aH == aC)
327+ then aG
328+ else if (if ((h > 1))
329+ then (aI == aD)
328330 else false)
329- then aI
330- else if (if ((g > 2))
331- then (aK == aC)
331+ then aJ
332+ else if (if ((h > 2))
333+ then (aL == aD)
332334 else false)
333- then aL
335+ then aM
334336 else unit
335337 }
336338
337339
338-func aM (aN) = {
339- let aO = valueOrElse(getInteger(af, Q()), 0)
340- let aP = valueOrErrorMessage(assetInfo(aj), f("invalid lpAsset info")).quantity
341- let aQ = fraction(aN, c, (aP - aO))
342- let aR = if ((aQ != 0))
340+func aN (aO) = {
341+ let aP = valueOrElse(getInteger(ag, R()), 0)
342+ let aQ = valueOrErrorMessage(assetInfo(ak), g("invalid lpAsset info")).quantity
343+ let aR = fraction(aO, c, (aQ - aP))
344+ let aS = if ((aR != 0))
343345 then true
344- else h("LP price cannot be 0")
345- if ((aR == aR))
346+ else i("LP price cannot be 0")
347+ if ((aS == aS))
346348 then {
347- let aS = (aP - aO)
348- $Tuple3(aQ, aO, aS)
349+ let aT = (aQ - aP)
350+ $Tuple3(aR, aP, aT)
349351 }
350352 else throw("Strict value is not equal to itself.")
351353 }
352354
353355
354-func aT (aU,S) = {
355- let C = Address(aU)
356- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
357- let aW = valueOrErrorMessage(getString(af, R(C, S)), f("invalid withdrawal request"))
358- let aX = ac(aW)
359- let U = aX._1
360- let V = aX._2
361- let W = aX._3
362- let X = aX._4
363- if ((W > aV))
364- then h("invalid withdrawal request period")
356+func aU (aV,T) = {
357+ let D = Address(aV)
358+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
359+ let aX = valueOrErrorMessage(getString(ag, S(D, T)), g("invalid withdrawal request"))
360+ let aY = ad(aX)
361+ let V = aY._1
362+ let W = aY._2
363+ let X = aY._3
364+ let Y = aY._4
365+ if ((X > aW))
366+ then i("invalid withdrawal request period")
365367 else {
366- let aY = valueOrErrorMessage(getInteger(af, F(W)), f("invalid price"))
367- let aZ = if ((aY > 0))
368- then fraction(V, aY, c)
368+ let aZ = valueOrErrorMessage(getInteger(ag, G(X)), g("invalid price"))
369+ let ba = if ((aZ > 0))
370+ then fraction(W, aZ, c)
369371 else 0
370- let ba = getStringValue(af, aa(aV))
371- let bb = getStringValue(af, ab(aV))
372- $Tuple6(C, V, W, aZ, ba, bb)
372+ let bb = getStringValue(ag, ab(aW))
373+ let bc = getStringValue(ag, ac(aW))
374+ $Tuple6(D, W, X, ba, bb, bc)
373375 }
374376 }
375377
376378
377-func bc (aU,S) = {
378- let bd = aT(aU, S)
379- let C = bd._1
380- let V = bd._2
381- let W = bd._3
382- let aZ = bd._4
383- let ba = bd._5
384- let bb = bd._6
385- let be = makeString(removeByIndex(split_51C(ba, a), 0), ":")
379+func bd (aV,T) = {
380+ let be = aU(aV, T)
381+ let D = be._1
382+ let W = be._2
383+ let X = be._3
384+ let ba = be._4
385+ let bb = be._5
386+ let bc = be._6
386387 let bf = makeString(removeByIndex(split_51C(bb, a), 0), ":")
387- makeString(["%d%s%s", toString(aZ), be, bf], a)
388+ let bg = makeString(removeByIndex(split_51C(bc, a), 0), ":")
389+ makeString(["%d%s%s", toString(ba), bf, bg], a)
388390 }
389391
390392
391-func bg (bh) = {
392- let bi = max([0, min([valueOrElse(getInteger(af, x()), 0), c])])
393- let bj = max([0, min([valueOrElse(getInteger(af, v()), 0), c])])
394- let bk = fraction(bh, bi, c)
395- let bl = fraction(bh, bj, c)
396- let bm = ((bh - bk) - bl)
397- if ((bm > 0))
398- then $Tuple3(bk, bl, bm)
399- else h("amount to main treasury cannot be negative")
393+func bh (bi) = {
394+ let bj = max([0, min([valueOrElse(getInteger(ag, y()), 0), c])])
395+ let bk = max([0, min([valueOrElse(getInteger(ag, w()), 0), c])])
396+ let bl = fraction(bi, bj, c)
397+ let bm = fraction(bi, bk, c)
398+ let bn = ((bi - bl) - bm)
399+ if ((bn > 0))
400+ then $Tuple3(bl, bm, bn)
401+ else i("amount to main treasury cannot be negative")
400402 }
401403
402404
403-func bn (bo) = {
404- let bp = 20
405- let bq = bg(bo)
406- let bk = bq._1
407- let bl = bq._2
408- let bm = bq._3
409- let br = valueOrErrorMessage(getInteger(af, M()), f("invalid block processing reward"))
410- let bs = (br / bp)
411- let bt = (bm - br)
412- $Tuple5(bk, bl, br, bt, bo)
405+func bo (bp) = {
406+ let bq = bh(bp)
407+ let bl = bq._1
408+ let bm = bq._2
409+ let bn = bq._3
410+ let br = valueOrErrorMessage(getInteger(ag, N()), g("invalid block processing reward"))
411+ let bs = (br / f)
412+ let bt = (bn - br)
413+ $Tuple5(bl, bm, br, bt, bp)
413414 }
414415
415416
416-@Callable(ax)
417+@Callable(ay)
417418 func rewardSplitREADONLY () = {
418419 let bu = (height - 1)
419- let bv = valueOrErrorMessage(blockInfoByHeight(bu), f("invalid block info"))
420- let bw = valueOrErrorMessage(aA(bv.rewards, al), f(("invalid treasury reward for height " + toString(bu))))
421- $Tuple2(nil, bn(bw))
420+ let bv = valueOrErrorMessage(blockInfoByHeight(bu), g("invalid block info"))
421+ let bw = valueOrErrorMessage(aB(bv.rewards, am), g(("invalid treasury reward for height " + toString(bu))))
422+ $Tuple2(nil, bo(bw))
422423 }
423424
424425
425426
426-@Callable(ax)
427-func claimLP (aU) = {
428- let bx = az(ax)
427+@Callable(ay)
428+func claimLP (aV) = {
429+ let bx = aA(ay)
429430 if ((bx == bx))
430431 then {
431- let C = Address(aU)
432- let by = valueOrElse(getInteger(af, B(C)), 0)
433- let bz = valueOrElse(getInteger(af, D(C)), 0)
432+ let D = Address(aV)
433+ let by = valueOrElse(getInteger(ag, C(D)), 0)
434+ let bz = valueOrElse(getInteger(ag, E(D)), 0)
434435 let bA = if ((by > 0))
435- then [invoke(af, "transferAsset", [aU, by, aj], nil), invoke(af, "integerEntry", [B(C), 0], nil), invoke(af, "integerEntry", [D(C), (bz + by)], nil)]
436- else h("nothing to claim")
436+ then [invoke(ag, "transferAsset", [aV, by, ak], nil), invoke(ag, "integerEntry", [C(D), 0], nil), invoke(ag, "integerEntry", [E(D), (bz + by)], nil)]
437+ else i("nothing to claim")
437438 $Tuple2(nil, bA)
438439 }
439440 else throw("Strict value is not equal to itself.")
441442
442443
443444
444-@Callable(ax)
445-func finalize (aU,bB,aN,bC,bD) = {
446- let bx = az(ax)
445+@Callable(ay)
446+func finalize (aV,bB,aO,bC,bD) = {
447+ let bx = aA(ay)
447448 if ((bx == bx))
448449 then {
449- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
450- let bE = valueOrErrorMessage(getInteger(af, K()), f("invalid period length"))
451- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
452- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
453- let bH = valueOrErrorMessage(getInteger(af, N()), f("invalid next block to process"))
450+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
451+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
452+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
453+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
454+ let bH = valueOrErrorMessage(getInteger(ag, O()), g("invalid next block to process"))
454455 let bI = ((bF + bE) - 1)
455- let bJ = [if ((ax.originCaller == ao))
456+ let bJ = [if ((ay.originCaller == ap))
456457 then true
457- else h("permission denied"), if ((bH > bI))
458+ else i("permission denied"), if ((bH > bI))
458459 then true
459- else h("unprocessed blocks"), if ((bB >= 0))
460+ else i("unprocessed blocks"), if ((bB >= 0))
460461 then true
461- else h("invalid donation part"), if ((aN >= 0))
462+ else i("invalid donation part"), if ((aO >= 0))
462463 then true
463- else h("invalid lp part"), if ((bC >= 0))
464+ else i("invalid lp part"), if ((bC >= 0))
464465 then true
465- else h("invalid claim part"), if ((bD >= 0))
466+ else i("invalid claim part"), if ((bD >= 0))
466467 then true
467- else h("invalid PWR stake part")]
468+ else i("invalid PWR stake part")]
468469 if ((bJ == bJ))
469470 then {
470- let bK = aM(aN)
471- let aQ = bK._1
472- let aO = bK._2
473- let aS = bK._3
474- let bL = (aV + 1)
471+ let bK = aN(aO)
472+ let aR = bK._1
473+ let aP = bK._2
474+ let aT = bK._3
475+ let bL = (aW + 1)
475476 func bM (bN,bO) = {
476477 let bP = bN
477478 let bQ = bP._1
478479 let bR = bP._2
479- let bb = bP._3
480+ let bc = bP._3
480481 let bS = bO.amount
481482 let bT = bO.assetId
482- let bU = ("%s" + makeString([bR, i(bT)], a))
483- let bV = ("%d" + makeString([bb, toString(bS)], a))
484- let bW = ScriptTransfer(af, bS, bT)
483+ let bU = ("%s" + makeString([bR, j(bT)], a))
484+ let bV = ("%d" + makeString([bc, toString(bS)], a))
485+ let bW = ScriptTransfer(ag, bS, bT)
485486 $Tuple3((bQ :+ bW), bU, bV)
486487 }
487488
488489 let bX = {
489- let bY = ax.payments
490+ let bY = ay.payments
490491 let bZ = size(bY)
491492 let ca = $Tuple3(nil, "", "")
492493 func cb (cc,cd) = if ((cd >= bZ))
502503 let bQ = bX._1
503504 let cf = bX._2
504505 let cg = bX._3
505- let bA = [invoke(af, "integerEntry", [I(aV), bD], nil), invoke(af, "integerEntry", [J(aV), bC], nil), invoke(af, "integerEntry", [E(), bL], nil), invoke(af, "integerEntry", [F(bL), aQ], nil), invoke(af, "integerEntry", [H(bL), (bI + 1)], nil), invoke(af, "burn", [aO], nil), invoke(af, "integerEntry", [Q(), 0], nil), invoke(af, "integerEntry", [z(unit), aN], nil), invoke(af, "integerEntry", [A(unit), bB], nil), invoke(af, "stringEntry", [aa(bL), cf], nil), invoke(af, "stringEntry", [ab(bL), cg], nil)]
506+ let bA = [invoke(ag, "integerEntry", [J(aW), bD], nil), invoke(ag, "integerEntry", [K(aW), bC], nil), invoke(ag, "integerEntry", [F(), bL], nil), invoke(ag, "integerEntry", [G(bL), aR], nil), invoke(ag, "integerEntry", [I(bL), (bI + 1)], nil), invoke(ag, "burn", [aP], nil), invoke(ag, "integerEntry", [R(), 0], nil), invoke(ag, "integerEntry", [A(unit), aO], nil), invoke(ag, "integerEntry", [B(unit), bB], nil), invoke(ag, "stringEntry", [ab(bL), cf], nil), invoke(ag, "stringEntry", [ac(bL), cg], nil)]
506507 $Tuple2(bQ, bA)
507508 }
508509 else throw("Strict value is not equal to itself.")
512513
513514
514515
515-@Callable(ax)
516-func finalizeREADONLY (bB,aN,bC,bD) = {
517- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
518- let bE = valueOrErrorMessage(getInteger(af, K()), f("invalid period length"))
519- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
520- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
521- let bH = valueOrErrorMessage(getInteger(af, N()), f("invalid next block to process"))
516+@Callable(ay)
517+func finalizeREADONLY (bB,aO,bC,bD) = {
518+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
519+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
520+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
521+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
522+ let bH = valueOrErrorMessage(getInteger(ag, O()), g("invalid next block to process"))
522523 let bI = ((bF + bE) - 1)
523524 let bJ = [if ((bH > bI))
524525 then true
525- else h("unprocessed blocks"), if ((bB >= 0))
526+ else i("unprocessed blocks"), if ((bB >= 0))
526527 then true
527- else h("invalid donation part"), if ((aN >= 0))
528+ else i("invalid donation part"), if ((aO >= 0))
528529 then true
529- else h("invalid lp part"), if ((bC >= 0))
530+ else i("invalid lp part"), if ((bC >= 0))
530531 then true
531- else h("invalid claim part"), if ((bD >= 0))
532+ else i("invalid claim part"), if ((bD >= 0))
532533 then true
533- else h("invalid PWR stake part")]
534+ else i("invalid PWR stake part")]
534535 if ((bJ == bJ))
535536 then {
536- let ch = aM(aN)
537- let aQ = ch._1
538- let aO = ch._2
539- let aS = ch._3
540- $Tuple2(nil, $Tuple6(bC, aN, bB, aQ, aO, aS))
537+ let ch = aN(aO)
538+ let aR = ch._1
539+ let aP = ch._2
540+ let aT = ch._3
541+ $Tuple2(nil, $Tuple6(bC, aO, bB, aR, aP, aT))
541542 }
542543 else throw("Strict value is not equal to itself.")
543544 }
544545
545546
546547
547-@Callable(ax)
548-func invest (aU) = {
549- let bx = az(ax)
548+@Callable(ay)
549+func invest (aV) = {
550+ let bx = aA(ay)
550551 if ((bx == bx))
551552 then {
552- let C = Address(aU)
553- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
554- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
555- let ci = getIntegerValue(af, L())
553+ let D = Address(aV)
554+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
555+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
556+ let ci = getIntegerValue(ag, M())
556557 let cj = if (((bF + ci) > height))
557558 then true
558- else h("too late to invest in this period")
559+ else i("too late to invest in this period")
559560 if ((cj == cj))
560561 then {
561- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
562- let bO = if ((size(ax.payments) == 1))
563- then ax.payments[0]
564- else h("invalid payments")
562+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
563+ let bO = if ((size(ay.payments) == 1))
564+ then ay.payments[0]
565+ else i("invalid payments")
565566 let ck = if (if ((bO.assetId == unit))
566567 then (bO.amount > 0)
567568 else false)
568569 then $Tuple2(bO.amount, bO.assetId)
569- else h("invalid payment amount")
570+ else i("invalid payment amount")
570571 let bS = ck._1
571572 let bT = ck._2
572- let cl = valueOrElse(getInteger(af, v()), 0)
573+ let cl = valueOrElse(getInteger(ag, w()), 0)
573574 let cm = fraction(bS, (c - cl), c)
574- let V = if ((bG > 0))
575+ let W = if ((bG > 0))
575576 then fraction(cm, c, bG)
576577 else 0
577- let cn = valueOrElse(getInteger(af, z(unit)), 0)
578- let bN = [ScriptTransfer(ao, cm, bT), ScriptTransfer(ap, cl, bT)]
579- let bA = [invoke(af, "integerEntry", [z(unit), (cn + cm)], nil), invoke(af, "reissue", [V], nil), invoke(af, "transferAsset", [aU, V, aj], nil)]
578+ let cn = valueOrElse(getInteger(ag, A(unit)), 0)
579+ let bN = [ScriptTransfer(ap, cm, bT), ScriptTransfer(aq, cl, bT)]
580+ let bA = [invoke(ag, "integerEntry", [A(unit), (cn + cm)], nil), invoke(ag, "reissue", [W], nil), invoke(ag, "transferAsset", [aV, W, ak], nil)]
580581 $Tuple2(bN, bA)
581582 }
582583 else throw("Strict value is not equal to itself.")
586587
587588
588589
589-@Callable(ax)
590-func withdraw (aU) = {
591- let bx = az(ax)
590+@Callable(ay)
591+func withdraw (aV) = {
592+ let bx = aA(ay)
592593 if ((bx == bx))
593594 then {
594- let C = Address(aU)
595- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
596- let bO = if ((size(ax.payments) == 1))
597- then ax.payments[0]
598- else h(f("invalid payments"))
599- let bT = if ((bO.assetId == aj))
600- then aj
601- else h("invalid payment asset")
602- let bS = if ((bO.amount > 0))
603- then bO.amount
604- else h("invalid payment amount")
605- let co = valueOrElse(getInteger(af, Q()), 0)
606- let bN = [ScriptTransfer(af, bS, bT)]
607- let bA = [invoke(af, "integerEntry", [Q(), (co + bS)], nil), invoke(af, "stringEntry", [R(C, ax.transactionId), T(d, bS, (aV + 1), unit)], nil)]
608- if ((bA == bA))
609- then $Tuple2(bN, bA)
610- else throw("Strict value is not equal to itself.")
611- }
612- else throw("Strict value is not equal to itself.")
613- }
614-
615-
616-
617-@Callable(ax)
618-func cancelWithdraw (aU,S) = {
619- let bx = az(ax)
620- if ((bx == bx))
621- then {
622- let C = Address(aU)
623- let aW = valueOrErrorMessage(getString(af, R(C, S)), f("invalid withdrawal request"))
624- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
625- let cp = ac(aW)
626- let U = cp._1
627- let V = cp._2
628- let W = cp._3
629- let X = cp._4
630- let bJ = [if ((U == d))
595+ let D = Address(aV)
596+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
597+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
598+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
599+ let cj = if (((bF + bE) > height))
631600 then true
632- else h("invalid withdrawal request status"), if ((W > aV))
633- then true
634- else h("invalid withdrawal request period")]
635- if ((bJ == bJ))
601+ else i("too late to withdraw in this period")
602+ if ((cj == cj))
636603 then {
637- let co = valueOrErrorMessage(getInteger(af, Q()), f("invalid total withdrawal amount"))
638- let bA = [invoke(af, "integerEntry", [Q(), if ((co >= V))
639- then (co - V)
640- else h("invalid withdrawal amount")], nil), invoke(af, "deleteEntry", [R(C, S)], nil), invoke(af, "transferAsset", [aU, V, aj], nil)]
604+ let bO = if ((size(ay.payments) == 1))
605+ then ay.payments[0]
606+ else i(g("invalid payments"))
607+ let bT = if ((bO.assetId == ak))
608+ then ak
609+ else i("invalid payment asset")
610+ let bS = if ((bO.amount > 0))
611+ then bO.amount
612+ else i("invalid payment amount")
613+ let co = valueOrElse(getInteger(ag, R()), 0)
614+ let bN = [ScriptTransfer(ag, bS, bT)]
615+ let bA = [invoke(ag, "integerEntry", [R(), (co + bS)], nil), invoke(ag, "stringEntry", [S(D, ay.transactionId), U(d, bS, (aW + 1), unit)], nil)]
641616 if ((bA == bA))
642- then $Tuple2(nil, bA)
617+ then $Tuple2(bN, bA)
643618 else throw("Strict value is not equal to itself.")
644619 }
645620 else throw("Strict value is not equal to itself.")
649624
650625
651626
652-@Callable(ax)
653-func claimCollateral (aU,S) = {
654- let bx = az(ax)
627+@Callable(ay)
628+func cancelWithdraw (aV,T) = {
629+ let bx = aA(ay)
630+ if ((bx == bx))
631+ then i("cancelWithdraw is deprecated")
632+ else throw("Strict value is not equal to itself.")
633+ }
634+
635+
636+
637+@Callable(ay)
638+func claimCollateral (aV,T) = {
639+ let bx = aA(ay)
655640 if ((bx == bx))
656641 then {
657- let cq = aT(aU, fromBase58String(S))
658- let C = cq._1
659- let V = cq._2
660- let W = cq._3
661- let aZ = cq._4
662- let ba = cq._5
663- let bb = cq._6
664- let cr = removeByIndex(split_51C(ba, a), 0)
665- let cs = removeByIndex(split_51C(bb, a), 0)
666- let bA = [invoke(af, "deleteEntry", [R(C, fromBase58String(S))], nil), invoke(af, "integerEntry", [Z(C, fromBase58String(S)), V], nil), invoke(af, "transferAssets", [aU, cr, cs], nil)]
642+ let cp = aU(aV, fromBase58String(T))
643+ let D = cp._1
644+ let W = cp._2
645+ let X = cp._3
646+ let ba = cp._4
647+ let bb = cp._5
648+ let bc = cp._6
649+ let cq = removeByIndex(split_51C(bb, a), 0)
650+ let cr = removeByIndex(split_51C(bc, a), 0)
651+ let bA = [invoke(ag, "deleteEntry", [S(D, fromBase58String(T))], nil), invoke(ag, "integerEntry", [aa(D, fromBase58String(T)), W], nil), invoke(ag, "transferAssets", [aV, cq, cr], nil)]
667652 $Tuple2(nil, bA)
668653 }
669654 else throw("Strict value is not equal to itself.")
671656
672657
673658
674-@Callable(ax)
675-func claimCollateralBulk (aU,ct) = {
676- let bx = az(ax)
659+@Callable(ay)
660+func claimCollateralBulk (aV,cs) = {
661+ let bx = aA(ay)
677662 if ((bx == bx))
678663 then {
679- func bM (cu,S) = {
680- let cv = aT(aU, fromBase58String(S))
681- let C = cv._1
682- let V = cv._2
683- let W = cv._3
684- let aZ = cv._4
685- let ba = cv._5
686- let bb = cv._6
687- let cr = removeByIndex(split_51C(ba, a), 0)
688- let cs = removeByIndex(split_51C(bb, a), 0)
689- let cw = [invoke(af, "deleteEntry", [R(C, fromBase58String(S))], nil), invoke(af, "integerEntry", [Z(C, fromBase58String(S)), V], nil), invoke(af, "transferAssets", [aU, cr, cs], nil)]
690- (cu ++ cw)
664+ func bM (ct,T) = {
665+ let cu = aU(aV, fromBase58String(T))
666+ let D = cu._1
667+ let W = cu._2
668+ let X = cu._3
669+ let ba = cu._4
670+ let bb = cu._5
671+ let bc = cu._6
672+ let cq = removeByIndex(split_51C(bb, a), 0)
673+ let cr = removeByIndex(split_51C(bc, a), 0)
674+ let cv = [invoke(ag, "deleteEntry", [S(D, fromBase58String(T))], nil), invoke(ag, "integerEntry", [aa(D, fromBase58String(T)), W], nil), invoke(ag, "transferAssets", [aV, cq, cr], nil)]
675+ (ct ++ cv)
691676 }
692677
693- let cx = {
694- let bY = ct
678+ let cw = {
679+ let bY = cs
695680 let bZ = size(bY)
696681 let ca = nil
697682 func cb (cc,cd) = if ((cd >= bZ))
704689
705690 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
706691 }
707- $Tuple2(nil, cx)
692+ $Tuple2(nil, cw)
708693 }
709694 else throw("Strict value is not equal to itself.")
710695 }
711696
712697
713698
714-@Callable(ax)
715-func claimCollateralREADONLY (aU,S) = {
716- let cy = bc(aU, fromBase58String(S))
717- $Tuple2(nil, cy)
699+@Callable(ay)
700+func claimCollateralREADONLY (aV,T) = {
701+ let cx = bd(aV, fromBase58String(T))
702+ $Tuple2(nil, cx)
718703 }
719704
720705
721706
722-@Callable(ax)
723-func claimCollateralBulkREADONLY (aU,ct) = {
724- func cz (cu,S) = {
725- let cy = bc(aU, fromBase58String(S))
726- (cu :+ cy)
707+@Callable(ay)
708+func claimCollateralBulkREADONLY (aV,cs) = {
709+ func cy (ct,T) = {
710+ let cx = bd(aV, fromBase58String(T))
711+ (ct :+ cx)
727712 }
728713
729- let cA = {
730- let bY = ct
714+ let cz = {
715+ let bY = cs
731716 let bZ = size(bY)
732717 let ca = nil
733718 func cb (cc,cd) = if ((cd >= bZ))
734719 then cc
735- else cz(cc, bY[cd])
720+ else cy(cc, bY[cd])
736721
737722 func ce (cc,cd) = if ((cd >= bZ))
738723 then cc
740725
741726 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
742727 }
743- $Tuple2(nil, cA)
728+ $Tuple2(nil, cz)
744729 }
745730
746731
747732
748-@Callable(ax)
749-func processBlocks (aU) = {
750- let bx = az(ax)
733+@Callable(ay)
734+func processBlocks (aV) = {
735+ let bx = aA(ay)
751736 if ((bx == bx))
752737 then {
753- let C = Address(aU)
754- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
755- let bE = valueOrErrorMessage(getInteger(af, K()), f("invalid period length"))
756- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
757- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
758- let bH = valueOrErrorMessage(getInteger(af, N()), f("invalid next block to process"))
738+ let D = Address(aV)
739+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
740+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
741+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
742+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
743+ let bH = valueOrErrorMessage(getInteger(ag, O()), g("invalid next block to process"))
759744 let bI = ((bF + bE) - 1)
760- let bp = 20
761- let cB = if (if (if ((height >= bH))
745+ let cA = if (if (if ((height >= bH))
762746 then if ((bH >= bF))
763747 then true
764- else (aV == 0)
748+ else (aW == 0)
765749 else false)
766750 then (bI >= bH)
767751 else false)
768- then min([((bI - bH) + 1), bp])
769- else h(f("invalid target block"))
770- let br = valueOrErrorMessage(getInteger(af, M()), f("invalid block processing reward"))
771- let bs = (br / cB)
772- let cC = (br - (bs * cB))
773- func cD (cE,cF) = if ((cF >= cB))
774- then cE
752+ then min([((bI - bH) + 1), f])
753+ else i(g("invalid target block"))
754+ let br = valueOrErrorMessage(getInteger(ag, N()), g("invalid block processing reward"))
755+ let bs = (br / cA)
756+ let cB = (br - (bs * cA))
757+ func cC (cD,cE) = if ((cE >= cA))
758+ then cD
775759 else {
776- let bu = (bH + cF)
777- let bv = valueOrErrorMessage(blockInfoByHeight(bu), f("invalid block info"))
778- let bw = valueOrErrorMessage(aA(bv.rewards, al), f(("invalid treasury reward for height " + toString(bu))))
779- let cG = bv.generator
780- let by = valueOrElse(getInteger(af, B(cG)), 0)
781- let cH = if ((cF == (cB - 1)))
782- then (bs + cC)
760+ let bu = (bH + cE)
761+ let bv = valueOrErrorMessage(blockInfoByHeight(bu), g("invalid block info"))
762+ let bw = valueOrErrorMessage(aB(bv.rewards, am), g(("invalid treasury reward for height " + toString(bu))))
763+ let cF = bv.generator
764+ let by = valueOrElse(getInteger(ag, C(cF)), 0)
765+ let cG = if ((cE == (cA - 1)))
766+ then (bs + cB)
783767 else bs
784- let cI = bg(bw)
785- let cJ = cI._1
786- let bl = cI._2
787- let bm = cI._3
788- let V = if ((bG > 0))
789- then fraction((bm - cH), c, bG)
768+ let cH = bh(bw)
769+ let cI = cH._1
770+ let bm = cH._2
771+ let bn = cH._3
772+ let W = if ((bG > 0))
773+ then fraction((bn - cG), c, bG)
790774 else 0
791- let cK = [invoke(af, "stringEntry", [O(bu), makeString([toBase58String(ax.transactionId), toString(aV), toString(cG), toBase58String(aU), toString(bw), toString(cH), toString(V), toString(cJ)], a)], nil), invoke(af, "integerEntry", [B(cG), (by + V)], nil)]
792- if ((cK == cK))
775+ let cJ = [invoke(ag, "stringEntry", [P(bu), makeString([toBase58String(ay.transactionId), toString(aW), toString(cF), toBase58String(aV), toString(bw), toString(cG), toString(W), toString(cI)], a)], nil), invoke(ag, "integerEntry", [C(cF), (by + W)], nil)]
776+ if ((cJ == cJ))
793777 then {
794- let cL = cE
795- let cM = cL._1
796- let cN = cL._2
797- let cO = cL._3
798- let cP = cL._4
799- let cQ = cP
800- let cR = cQ._1
801- let cS = cQ._2
802- let cT = (cS :+ $Tuple2(toString(cG), cJ))
803- $Tuple4((cM + V), (cN + bw), (cO + bl), $Tuple2((cR + cJ), cT))
778+ let cK = cD
779+ let cL = cK._1
780+ let cM = cK._2
781+ let cN = cK._3
782+ let cO = cK._4
783+ let cP = cO
784+ let cQ = cP._1
785+ let cR = cP._2
786+ let cS = (cR :+ $Tuple2(toString(cF), cI))
787+ $Tuple4((cL + W), (cM + bw), (cN + bm), $Tuple2((cQ + cI), cS))
804788 }
805789 else throw("Strict value is not equal to itself.")
806790 }
807791
808- let cU = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
809- let cV = {
810- let bY = cU
792+ let cT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
793+ let cU = {
794+ let bY = cT
811795 let bZ = size(bY)
812796 let ca = $Tuple4(0, 0, 0, $Tuple2(0, nil))
813797 func cb (cc,cd) = if ((cd >= bZ))
814798 then cc
815- else cD(cc, bY[cd])
799+ else cC(cc, bY[cd])
816800
817801 func ce (cc,cd) = if ((cd >= bZ))
818802 then cc
820804
821805 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
822806 }
823- if ((cV == cV))
807+ if ((cU == cU))
824808 then {
825- let cP = cV._4
826- let cW = cV._3
827- let cX = cV._2
828- let cY = cV._1
829- let cZ = cP
830- let da = cZ._1
831- let db = cZ._2
832- let dc = (((cX - cW) - br) - da)
833- let cn = valueOrElse(getInteger(af, z(unit)), 0)
834- let dd = if ((da > 0))
809+ let cO = cU._4
810+ let cV = cU._3
811+ let cW = cU._2
812+ let cX = cU._1
813+ let cY = cO
814+ let cZ = cY._1
815+ let da = cY._2
816+ let db = (((cW - cV) - br) - cZ)
817+ let cn = valueOrElse(getInteger(ag, A(unit)), 0)
818+ let dc = if ((cZ > 0))
835819 then {
836- let de = [invoke(af, "transferFromProxyTreasury", [af.bytes, da], nil)]
837- if ((de == de))
820+ let dd = [invoke(ag, "transferFromProxyTreasury", [ag.bytes, cZ], nil)]
821+ if ((dd == dd))
838822 then {
839- let df = invoke(af, "swap", [as, e, da], nil)
840- if ((df == df))
823+ let de = invoke(ag, "swap", [at, e, cZ], nil)
824+ if ((de == de))
841825 then {
842- let dg = {
843- let k = df
844- if ($isInstanceOf(k, "Int"))
826+ let df = {
827+ let l = de
828+ if ($isInstanceOf(l, "Int"))
845829 then {
846- let dh = k
847- dh
830+ let dg = l
831+ dg
848832 }
849833 else 0
850834 }
851- func di (cE,dj) = {
852- let dk = dj
853- let cG = dk._1
854- let dl = dk._2
855- if ((da > 0))
835+ func dh (cD,di) = {
836+ let dj = di
837+ let cF = dj._1
838+ let dk = dj._2
839+ if ((cZ > 0))
856840 then {
857- let dm = fraction(dl, dg, da)
858- let dn = invoke(af, "powerStake", [fromBase58String(cG), fromBase58String(as), dm], nil)
859- if ((dn == dn))
841+ let dl = fraction(dk, df, cZ)
842+ let dm = invoke(ag, "powerStake", [fromBase58String(cF), fromBase58String(at), dl], nil)
843+ if ((dm == dm))
860844 then nil
861845 else throw("Strict value is not equal to itself.")
862846 }
863847 else nil
864848 }
865849
866- let do = {
867- let bY = db
850+ let dn = {
851+ let bY = da
868852 let bZ = size(bY)
869853 let ca = 0
854+ func do (cc,cd) = if ((cd >= bZ))
855+ then cc
856+ else dh(cc, bY[cd])
857+
870858 func dp (cc,cd) = if ((cd >= bZ))
871- then cc
872- else di(cc, bY[cd])
873-
874- func dq (cc,cd) = if ((cd >= bZ))
875859 then cc
876860 else throw("List size exceeds 20")
877861
878- dq(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
862+ dp(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
879863 }
880- if ((do == do))
864+ if ((dn == dn))
881865 then nil
882866 else throw("Strict value is not equal to itself.")
883867 }
886870 else throw("Strict value is not equal to itself.")
887871 }
888872 else nil
889- if ((dd == dd))
873+ if ((dc == dc))
890874 then {
891- let bN = [invoke(af, "reissue", [cY], nil), invoke(af, "integerEntry", [N(), (bH + cB)], nil), invoke(af, "transferFromProxyTreasury", [ao.bytes, dc], nil), invoke(af, "transferFromProxyTreasury", [aU, br], nil), invoke(af, "transferFromProxyTreasury", [ap.bytes, cW], nil), invoke(af, "integerEntry", [z(unit), (cn + dc)], nil)]
875+ let bN = [invoke(ag, "reissue", [cX], nil), invoke(ag, "integerEntry", [O(), (bH + cA)], nil), invoke(ag, "transferFromProxyTreasury", [ap.bytes, db], nil), invoke(ag, "transferFromProxyTreasury", [aV, br], nil), invoke(ag, "transferFromProxyTreasury", [aq.bytes, cV], nil), invoke(ag, "integerEntry", [A(unit), (cn + db)], nil)]
892876 if ((bN == bN))
893877 then $Tuple2(nil, unit)
894878 else throw("Strict value is not equal to itself.")
901885 }
902886
903887
904-@Verifier(dr)
905-func ds () = {
906- let dt = {
907- let k = at()
908- if ($isInstanceOf(k, "ByteVector"))
888+@Verifier(dq)
889+func dr () = {
890+ let ds = {
891+ let l = au()
892+ if ($isInstanceOf(l, "ByteVector"))
909893 then {
910- let av = k
911- av
894+ let aw = l
895+ aw
912896 }
913- else dr.senderPublicKey
897+ else dq.senderPublicKey
914898 }
915- sigVerify(dr.bodyBytes, dr.proofs[0], dt)
899+ sigVerify(dq.bodyBytes, dq.proofs[0], ds)
916900 }
917901
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "calculator.ride"
77
88 let c = 100000000
99
1010 let d = "PENDING"
1111
1212 let e = "WAVES"
1313
14-func f (g) = ((b + ": ") + g)
14+let f = 10
15+
16+func g (h) = ((b + ": ") + h)
1517
1618
17-func h (g) = throw(f(g))
19+func i (h) = throw(g(h))
1820
1921
20-func i (j) = {
21- let k = j
22- if ($isInstanceOf(k, "ByteVector"))
22+func j (k) = {
23+ let l = k
24+ if ($isInstanceOf(l, "ByteVector"))
2325 then {
24- let l = k
25- toBase58String(l)
26+ let m = l
27+ toBase58String(m)
2628 }
27- else if ($isInstanceOf(k, "Unit"))
29+ else if ($isInstanceOf(l, "Unit"))
2830 then e
2931 else throw("Match error")
3032 }
3133
3234
33-func m (g) = if ((g == e))
35+func n (h) = if ((h == e))
3436 then unit
35- else fromBase58String(g)
37+ else fromBase58String(h)
3638
3739
38-func n (o) = if ((0 > o))
39- then -(o)
40- else o
40+func o (p) = if ((0 > p))
41+ then -(p)
42+ else p
4143
4244
43-func p () = makeString(["%s", "factory"], a)
45+func q () = makeString(["%s", "factory"], a)
4446
4547
46-func q () = makeString(["%s", "managerPublicKey"], a)
48+func r () = makeString(["%s", "managerPublicKey"], a)
4749
4850
49-func r () = makeString(["%s", "lpAssetId"], a)
51+func s () = makeString(["%s", "lpAssetId"], a)
5052
5153
52-func s () = makeString(["%s", "proxyTreasury"], a)
54+func t () = makeString(["%s", "proxyTreasury"], a)
5355
5456
55-func t () = makeString(["%s", "mainTreasury"], a)
57+func u () = makeString(["%s", "mainTreasury"], a)
5658
5759
58-func u () = makeString(["%s", "businessTreasury"], a)
60+func v () = makeString(["%s", "businessTreasury"], a)
5961
6062
61-func v () = makeString(["%s", "businessTreasuryPart"], a)
63+func w () = makeString(["%s", "businessTreasuryPart"], a)
6264
6365
64-func w () = makeString(["%s", "powerContract"], a)
66+func x () = makeString(["%s", "powerContract"], a)
6567
6668
67-func x () = makeString(["%s", "powerShareRatio"], a)
69+func y () = makeString(["%s", "powerShareRatio"], a)
6870
6971
70-func y () = makeString(["%s", "powerAssetId"], a)
72+func z () = makeString(["%s", "powerAssetId"], a)
7173
7274
73-func z (j) = makeString(["%s%s", "invested", i(j)], a)
75+func A (k) = makeString(["%s%s", "invested", j(k)], a)
7476
7577
76-func A (j) = makeString(["%s%s", "donated", i(j)], a)
78+func B (k) = makeString(["%s%s", "donated", j(k)], a)
7779
7880
79-func B (C) = makeString(["%s%s", "available", toString(C)], a)
81+func C (D) = makeString(["%s%s", "available", toString(D)], a)
8082
8183
82-func D (C) = makeString(["%s%s", "claimed", toString(C)], a)
84+func E (D) = makeString(["%s%s", "claimed", toString(D)], a)
8385
8486
85-func E () = makeString(["%s", "currentPeriod"], a)
87+func F () = makeString(["%s", "currentPeriod"], a)
8688
8789
88-func F (G) = makeString(["%s%d", "price", toString(G)], a)
90+func G (H) = makeString(["%s%d", "price", toString(H)], a)
8991
9092
91-func H (G) = makeString(["%s%d", "startHeight", toString(G)], a)
93+func I (H) = makeString(["%s%d", "startHeight", toString(H)], a)
9294
9395
94-func I (G) = makeString(["%s%d", "powerManagerBonus", toString(G)], a)
96+func J (H) = makeString(["%s%d", "powerManagerBonus", toString(H)], a)
9597
9698
97-func J (G) = makeString(["%s%d", "claimWavesAmount", toString(G)], a)
99+func K (H) = makeString(["%s%d", "claimWavesAmount", toString(H)], a)
98100
99101
100-func K () = "%s__periodLength"
102+func L () = "%s__periodLength"
101103
102104
103-func L () = "%s__investPeriodLength"
105+func M () = "%s__investPeriodLength"
104106
105107
106-func M () = "%s__blockProcessingReward"
108+func N () = "%s__blockProcessingReward"
107109
108110
109-func N () = "%s__nextBlockToProcess"
111+func O () = "%s__nextBlockToProcess"
110112
111113
112-func O (P) = makeString(["%s%d", "blockProcessed", toString(P)], a)
114+func P (Q) = makeString(["%s%d", "blockProcessed", toString(Q)], a)
113115
114116
115-func Q () = "%s__withdrawal"
117+func R () = "%s__withdrawal"
116118
117119
118-func R (C,S) = makeString(["%s%s%s", "withdrawal", toString(C), toBase58String(S)], a)
120+func S (D,T) = makeString(["%s%s%s", "withdrawal", toString(D), toBase58String(T)], a)
119121
120122
121-func T (U,V,W,X) = {
122- let Y = {
123- let k = X
124- if ($isInstanceOf(k, "ByteVector"))
123+func U (V,W,X,Y) = {
124+ let Z = {
125+ let l = Y
126+ if ($isInstanceOf(l, "ByteVector"))
125127 then {
126- let l = k
127- toBase58String(l)
128+ let m = l
129+ toBase58String(m)
128130 }
129- else if ($isInstanceOf(k, "Unit"))
131+ else if ($isInstanceOf(l, "Unit"))
130132 then "SOON"
131133 else throw("Match error")
132134 }
133- makeString(["%s%d%d%s", U, toString(V), toString(W), Y], a)
135+ makeString(["%s%d%d%s", V, toString(W), toString(X), Z], a)
134136 }
135137
136138
137-func Z (C,S) = makeString(["%s%s%s", "withdrawalHistory", toString(C), toBase58String(S)], a)
139+func aa (D,T) = makeString(["%s%s%s", "withdrawalHistory", toString(D), toBase58String(T)], a)
138140
139141
140-func aa (G) = makeString(["%s%d", "periodReward", toString(G)], a)
142+func ab (H) = makeString(["%s%d", "periodReward", toString(H)], a)
141143
142144
143-func ab (G) = makeString(["%s%d", "periodRewardAmount", toString(G)], a)
145+func ac (H) = makeString(["%s%d", "periodRewardAmount", toString(H)], a)
144146
145147
146-func ac (g) = {
147- let ad = split(g, a)
148- if ((size(ad) == 5))
148+func ad (h) = {
149+ let ae = split(h, a)
150+ if ((size(ae) == 5))
149151 then {
150- let U = ad[1]
151- let V = valueOrErrorMessage(parseInt(ad[2]), f("invalid lpAssetAmount"))
152- let W = valueOrErrorMessage(parseInt(ad[3]), f("invalid targetPeriod"))
153- let X = ad[4]
154- $Tuple4(U, V, W, X)
152+ let V = ae[1]
153+ let W = valueOrErrorMessage(parseInt(ae[2]), g("invalid lpAssetAmount"))
154+ let X = valueOrErrorMessage(parseInt(ae[3]), g("invalid targetPeriod"))
155+ let Y = ae[4]
156+ $Tuple4(V, W, X, Y)
155157 }
156- else h("invalid withdrawal request value")
158+ else i("invalid withdrawal request value")
157159 }
158160
159161
160-let ae = {
161- let k = getString(this, p())
162- if ($isInstanceOf(k, "String"))
162+let af = {
163+ let l = getString(this, q())
164+ if ($isInstanceOf(l, "String"))
163165 then {
164- let g = k
165- addressFromString(g)
166+ let h = l
167+ addressFromString(h)
166168 }
167- else if ($isInstanceOf(k, "Unit"))
169+ else if ($isInstanceOf(l, "Unit"))
168170 then unit
169171 else throw("Match error")
170172 }
171173
172-let af = valueOrErrorMessage(ae, f("invalid factory address"))
174+let ag = valueOrErrorMessage(af, g("invalid factory address"))
173175
174-let ag = {
175- let k = ae
176- if ($isInstanceOf(k, "Address"))
176+let ah = {
177+ let l = af
178+ if ($isInstanceOf(l, "Address"))
177179 then {
178- let ah = k
179- let ai = getString(ah, r())
180- if ($isInstanceOf(ai, "String"))
180+ let ai = l
181+ let aj = getString(ai, s())
182+ if ($isInstanceOf(aj, "String"))
181183 then {
182- let g = ai
183- fromBase58String(g)
184+ let h = aj
185+ fromBase58String(h)
184186 }
185- else if ($isInstanceOf(ai, "Unit"))
187+ else if ($isInstanceOf(aj, "Unit"))
186188 then unit
187189 else throw("Match error")
188190 }
189- else if ($isInstanceOf(k, "Unit"))
191+ else if ($isInstanceOf(l, "Unit"))
190192 then unit
191193 else throw("Match error")
192194 }
193195
194-let aj = valueOrErrorMessage(ag, f("invalid lpAssetId"))
196+let ak = valueOrErrorMessage(ah, g("invalid lpAssetId"))
195197
196-let ak = {
197- let k = ae
198- if ($isInstanceOf(k, "Address"))
198+let al = {
199+ let l = af
200+ if ($isInstanceOf(l, "Address"))
199201 then {
200- let ah = k
201- let ai = getString(ah, s())
202- if ($isInstanceOf(ai, "String"))
202+ let ai = l
203+ let aj = getString(ai, t())
204+ if ($isInstanceOf(aj, "String"))
203205 then {
204- let g = ai
205- addressFromString(g)
206+ let h = aj
207+ addressFromString(h)
206208 }
207- else if ($isInstanceOf(ai, "Unit"))
209+ else if ($isInstanceOf(aj, "Unit"))
208210 then unit
209211 else throw("Match error")
210212 }
211- else if ($isInstanceOf(k, "Unit"))
213+ else if ($isInstanceOf(l, "Unit"))
212214 then unit
213215 else throw("Match error")
214216 }
215217
216-let al = valueOrErrorMessage(ak, f("invalid proxy treasury address"))
218+let am = valueOrErrorMessage(al, g("invalid proxy treasury address"))
217219
218-let am = {
219- let k = ae
220- if ($isInstanceOf(k, "Address"))
220+let an = {
221+ let l = af
222+ if ($isInstanceOf(l, "Address"))
221223 then {
222- let ah = k
223- let ai = getString(ah, t())
224- if ($isInstanceOf(ai, "String"))
224+ let ai = l
225+ let aj = getString(ai, u())
226+ if ($isInstanceOf(aj, "String"))
225227 then {
226- let g = ai
227- addressFromString(g)
228+ let h = aj
229+ addressFromString(h)
228230 }
229- else if ($isInstanceOf(ai, "Unit"))
231+ else if ($isInstanceOf(aj, "Unit"))
230232 then unit
231233 else throw("Match error")
232234 }
233- else if ($isInstanceOf(k, "Unit"))
235+ else if ($isInstanceOf(l, "Unit"))
234236 then unit
235237 else throw("Match error")
236238 }
237239
238-let an = {
239- let k = ae
240- if ($isInstanceOf(k, "Address"))
240+let ao = {
241+ let l = af
242+ if ($isInstanceOf(l, "Address"))
241243 then {
242- let ah = k
243- let ai = getString(ah, u())
244- if ($isInstanceOf(ai, "String"))
244+ let ai = l
245+ let aj = getString(ai, v())
246+ if ($isInstanceOf(aj, "String"))
245247 then {
246- let g = ai
247- addressFromString(g)
248+ let h = aj
249+ addressFromString(h)
248250 }
249- else if ($isInstanceOf(ai, "Unit"))
251+ else if ($isInstanceOf(aj, "Unit"))
250252 then unit
251253 else throw("Match error")
252254 }
253- else if ($isInstanceOf(k, "Unit"))
255+ else if ($isInstanceOf(l, "Unit"))
254256 then unit
255257 else throw("Match error")
256258 }
257259
258-let ao = valueOrErrorMessage(am, f("invalid main treasury address"))
260+let ap = valueOrErrorMessage(an, g("invalid main treasury address"))
259261
260-let ap = valueOrErrorMessage(an, f("invalid business treasury address"))
262+let aq = valueOrErrorMessage(ao, g("invalid business treasury address"))
261263
262-let aq = {
263- let k = ae
264- if ($isInstanceOf(k, "Address"))
264+let ar = {
265+ let l = af
266+ if ($isInstanceOf(l, "Address"))
265267 then {
266- let ah = k
267- let ai = getString(ah, w())
268- if ($isInstanceOf(ai, "String"))
268+ let ai = l
269+ let aj = getString(ai, x())
270+ if ($isInstanceOf(aj, "String"))
269271 then {
270- let g = ai
271- addressFromString(g)
272+ let h = aj
273+ addressFromString(h)
272274 }
273- else if ($isInstanceOf(ai, "Unit"))
275+ else if ($isInstanceOf(aj, "Unit"))
274276 then unit
275277 else throw("Match error")
276278 }
277- else if ($isInstanceOf(k, "Unit"))
279+ else if ($isInstanceOf(l, "Unit"))
278280 then unit
279281 else throw("Match error")
280282 }
281283
282-let ar = valueOrErrorMessage(aq, f("invalid power contract address"))
284+let as = valueOrErrorMessage(ar, g("invalid power contract address"))
283285
284-let as = valueOrErrorMessage(getString(af, y()), f("power asset id not found"))
286+let at = valueOrErrorMessage(getString(ag, z()), g("power asset id not found"))
285287
286-func at () = {
287- let k = ae
288- if ($isInstanceOf(k, "Address"))
288+func au () = {
289+ let l = af
290+ if ($isInstanceOf(l, "Address"))
289291 then {
290- let au = k
291- let ai = getString(au, q())
292- if ($isInstanceOf(ai, "String"))
292+ let av = l
293+ let aj = getString(av, r())
294+ if ($isInstanceOf(aj, "String"))
293295 then {
294- let av = ai
295- fromBase58String(av)
296+ let aw = aj
297+ fromBase58String(aw)
296298 }
297299 else unit
298300 }
299301 else unit
300302 }
301303
302304
303-func aw (ax,ay) = if ((ax.caller == ay))
305+func ax (ay,az) = if ((ay.caller == az))
304306 then true
305- else h("permission denied")
307+ else i("permission denied")
306308
307309
308-func az (ax) = aw(ax, af)
310+func aA (ay) = ax(ay, ag)
309311
310312
311-func aA (aB,aC) = {
312- let g = size(aB)
313- let aD = aB[0]
314- let aE = aD._1
315- let aF = aD._2
316- let aG = aB[1]
317- let aH = aG._1
318- let aI = aG._2
319- let aJ = aB[2]
320- let aK = aJ._1
321- let aL = aJ._2
322- if (if ((g > 0))
323- then (aE == aC)
313+func aB (aC,aD) = {
314+ let h = size(aC)
315+ let aE = aC[0]
316+ let aF = aE._1
317+ let aG = aE._2
318+ let aH = aC[1]
319+ let aI = aH._1
320+ let aJ = aH._2
321+ let aK = aC[2]
322+ let aL = aK._1
323+ let aM = aK._2
324+ if (if ((h > 0))
325+ then (aF == aD)
324326 else false)
325- then aF
326- else if (if ((g > 1))
327- then (aH == aC)
327+ then aG
328+ else if (if ((h > 1))
329+ then (aI == aD)
328330 else false)
329- then aI
330- else if (if ((g > 2))
331- then (aK == aC)
331+ then aJ
332+ else if (if ((h > 2))
333+ then (aL == aD)
332334 else false)
333- then aL
335+ then aM
334336 else unit
335337 }
336338
337339
338-func aM (aN) = {
339- let aO = valueOrElse(getInteger(af, Q()), 0)
340- let aP = valueOrErrorMessage(assetInfo(aj), f("invalid lpAsset info")).quantity
341- let aQ = fraction(aN, c, (aP - aO))
342- let aR = if ((aQ != 0))
340+func aN (aO) = {
341+ let aP = valueOrElse(getInteger(ag, R()), 0)
342+ let aQ = valueOrErrorMessage(assetInfo(ak), g("invalid lpAsset info")).quantity
343+ let aR = fraction(aO, c, (aQ - aP))
344+ let aS = if ((aR != 0))
343345 then true
344- else h("LP price cannot be 0")
345- if ((aR == aR))
346+ else i("LP price cannot be 0")
347+ if ((aS == aS))
346348 then {
347- let aS = (aP - aO)
348- $Tuple3(aQ, aO, aS)
349+ let aT = (aQ - aP)
350+ $Tuple3(aR, aP, aT)
349351 }
350352 else throw("Strict value is not equal to itself.")
351353 }
352354
353355
354-func aT (aU,S) = {
355- let C = Address(aU)
356- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
357- let aW = valueOrErrorMessage(getString(af, R(C, S)), f("invalid withdrawal request"))
358- let aX = ac(aW)
359- let U = aX._1
360- let V = aX._2
361- let W = aX._3
362- let X = aX._4
363- if ((W > aV))
364- then h("invalid withdrawal request period")
356+func aU (aV,T) = {
357+ let D = Address(aV)
358+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
359+ let aX = valueOrErrorMessage(getString(ag, S(D, T)), g("invalid withdrawal request"))
360+ let aY = ad(aX)
361+ let V = aY._1
362+ let W = aY._2
363+ let X = aY._3
364+ let Y = aY._4
365+ if ((X > aW))
366+ then i("invalid withdrawal request period")
365367 else {
366- let aY = valueOrErrorMessage(getInteger(af, F(W)), f("invalid price"))
367- let aZ = if ((aY > 0))
368- then fraction(V, aY, c)
368+ let aZ = valueOrErrorMessage(getInteger(ag, G(X)), g("invalid price"))
369+ let ba = if ((aZ > 0))
370+ then fraction(W, aZ, c)
369371 else 0
370- let ba = getStringValue(af, aa(aV))
371- let bb = getStringValue(af, ab(aV))
372- $Tuple6(C, V, W, aZ, ba, bb)
372+ let bb = getStringValue(ag, ab(aW))
373+ let bc = getStringValue(ag, ac(aW))
374+ $Tuple6(D, W, X, ba, bb, bc)
373375 }
374376 }
375377
376378
377-func bc (aU,S) = {
378- let bd = aT(aU, S)
379- let C = bd._1
380- let V = bd._2
381- let W = bd._3
382- let aZ = bd._4
383- let ba = bd._5
384- let bb = bd._6
385- let be = makeString(removeByIndex(split_51C(ba, a), 0), ":")
379+func bd (aV,T) = {
380+ let be = aU(aV, T)
381+ let D = be._1
382+ let W = be._2
383+ let X = be._3
384+ let ba = be._4
385+ let bb = be._5
386+ let bc = be._6
386387 let bf = makeString(removeByIndex(split_51C(bb, a), 0), ":")
387- makeString(["%d%s%s", toString(aZ), be, bf], a)
388+ let bg = makeString(removeByIndex(split_51C(bc, a), 0), ":")
389+ makeString(["%d%s%s", toString(ba), bf, bg], a)
388390 }
389391
390392
391-func bg (bh) = {
392- let bi = max([0, min([valueOrElse(getInteger(af, x()), 0), c])])
393- let bj = max([0, min([valueOrElse(getInteger(af, v()), 0), c])])
394- let bk = fraction(bh, bi, c)
395- let bl = fraction(bh, bj, c)
396- let bm = ((bh - bk) - bl)
397- if ((bm > 0))
398- then $Tuple3(bk, bl, bm)
399- else h("amount to main treasury cannot be negative")
393+func bh (bi) = {
394+ let bj = max([0, min([valueOrElse(getInteger(ag, y()), 0), c])])
395+ let bk = max([0, min([valueOrElse(getInteger(ag, w()), 0), c])])
396+ let bl = fraction(bi, bj, c)
397+ let bm = fraction(bi, bk, c)
398+ let bn = ((bi - bl) - bm)
399+ if ((bn > 0))
400+ then $Tuple3(bl, bm, bn)
401+ else i("amount to main treasury cannot be negative")
400402 }
401403
402404
403-func bn (bo) = {
404- let bp = 20
405- let bq = bg(bo)
406- let bk = bq._1
407- let bl = bq._2
408- let bm = bq._3
409- let br = valueOrErrorMessage(getInteger(af, M()), f("invalid block processing reward"))
410- let bs = (br / bp)
411- let bt = (bm - br)
412- $Tuple5(bk, bl, br, bt, bo)
405+func bo (bp) = {
406+ let bq = bh(bp)
407+ let bl = bq._1
408+ let bm = bq._2
409+ let bn = bq._3
410+ let br = valueOrErrorMessage(getInteger(ag, N()), g("invalid block processing reward"))
411+ let bs = (br / f)
412+ let bt = (bn - br)
413+ $Tuple5(bl, bm, br, bt, bp)
413414 }
414415
415416
416-@Callable(ax)
417+@Callable(ay)
417418 func rewardSplitREADONLY () = {
418419 let bu = (height - 1)
419- let bv = valueOrErrorMessage(blockInfoByHeight(bu), f("invalid block info"))
420- let bw = valueOrErrorMessage(aA(bv.rewards, al), f(("invalid treasury reward for height " + toString(bu))))
421- $Tuple2(nil, bn(bw))
420+ let bv = valueOrErrorMessage(blockInfoByHeight(bu), g("invalid block info"))
421+ let bw = valueOrErrorMessage(aB(bv.rewards, am), g(("invalid treasury reward for height " + toString(bu))))
422+ $Tuple2(nil, bo(bw))
422423 }
423424
424425
425426
426-@Callable(ax)
427-func claimLP (aU) = {
428- let bx = az(ax)
427+@Callable(ay)
428+func claimLP (aV) = {
429+ let bx = aA(ay)
429430 if ((bx == bx))
430431 then {
431- let C = Address(aU)
432- let by = valueOrElse(getInteger(af, B(C)), 0)
433- let bz = valueOrElse(getInteger(af, D(C)), 0)
432+ let D = Address(aV)
433+ let by = valueOrElse(getInteger(ag, C(D)), 0)
434+ let bz = valueOrElse(getInteger(ag, E(D)), 0)
434435 let bA = if ((by > 0))
435- then [invoke(af, "transferAsset", [aU, by, aj], nil), invoke(af, "integerEntry", [B(C), 0], nil), invoke(af, "integerEntry", [D(C), (bz + by)], nil)]
436- else h("nothing to claim")
436+ then [invoke(ag, "transferAsset", [aV, by, ak], nil), invoke(ag, "integerEntry", [C(D), 0], nil), invoke(ag, "integerEntry", [E(D), (bz + by)], nil)]
437+ else i("nothing to claim")
437438 $Tuple2(nil, bA)
438439 }
439440 else throw("Strict value is not equal to itself.")
440441 }
441442
442443
443444
444-@Callable(ax)
445-func finalize (aU,bB,aN,bC,bD) = {
446- let bx = az(ax)
445+@Callable(ay)
446+func finalize (aV,bB,aO,bC,bD) = {
447+ let bx = aA(ay)
447448 if ((bx == bx))
448449 then {
449- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
450- let bE = valueOrErrorMessage(getInteger(af, K()), f("invalid period length"))
451- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
452- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
453- let bH = valueOrErrorMessage(getInteger(af, N()), f("invalid next block to process"))
450+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
451+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
452+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
453+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
454+ let bH = valueOrErrorMessage(getInteger(ag, O()), g("invalid next block to process"))
454455 let bI = ((bF + bE) - 1)
455- let bJ = [if ((ax.originCaller == ao))
456+ let bJ = [if ((ay.originCaller == ap))
456457 then true
457- else h("permission denied"), if ((bH > bI))
458+ else i("permission denied"), if ((bH > bI))
458459 then true
459- else h("unprocessed blocks"), if ((bB >= 0))
460+ else i("unprocessed blocks"), if ((bB >= 0))
460461 then true
461- else h("invalid donation part"), if ((aN >= 0))
462+ else i("invalid donation part"), if ((aO >= 0))
462463 then true
463- else h("invalid lp part"), if ((bC >= 0))
464+ else i("invalid lp part"), if ((bC >= 0))
464465 then true
465- else h("invalid claim part"), if ((bD >= 0))
466+ else i("invalid claim part"), if ((bD >= 0))
466467 then true
467- else h("invalid PWR stake part")]
468+ else i("invalid PWR stake part")]
468469 if ((bJ == bJ))
469470 then {
470- let bK = aM(aN)
471- let aQ = bK._1
472- let aO = bK._2
473- let aS = bK._3
474- let bL = (aV + 1)
471+ let bK = aN(aO)
472+ let aR = bK._1
473+ let aP = bK._2
474+ let aT = bK._3
475+ let bL = (aW + 1)
475476 func bM (bN,bO) = {
476477 let bP = bN
477478 let bQ = bP._1
478479 let bR = bP._2
479- let bb = bP._3
480+ let bc = bP._3
480481 let bS = bO.amount
481482 let bT = bO.assetId
482- let bU = ("%s" + makeString([bR, i(bT)], a))
483- let bV = ("%d" + makeString([bb, toString(bS)], a))
484- let bW = ScriptTransfer(af, bS, bT)
483+ let bU = ("%s" + makeString([bR, j(bT)], a))
484+ let bV = ("%d" + makeString([bc, toString(bS)], a))
485+ let bW = ScriptTransfer(ag, bS, bT)
485486 $Tuple3((bQ :+ bW), bU, bV)
486487 }
487488
488489 let bX = {
489- let bY = ax.payments
490+ let bY = ay.payments
490491 let bZ = size(bY)
491492 let ca = $Tuple3(nil, "", "")
492493 func cb (cc,cd) = if ((cd >= bZ))
493494 then cc
494495 else bM(cc, bY[cd])
495496
496497 func ce (cc,cd) = if ((cd >= bZ))
497498 then cc
498499 else throw("List size exceeds 10")
499500
500501 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
501502 }
502503 let bQ = bX._1
503504 let cf = bX._2
504505 let cg = bX._3
505- let bA = [invoke(af, "integerEntry", [I(aV), bD], nil), invoke(af, "integerEntry", [J(aV), bC], nil), invoke(af, "integerEntry", [E(), bL], nil), invoke(af, "integerEntry", [F(bL), aQ], nil), invoke(af, "integerEntry", [H(bL), (bI + 1)], nil), invoke(af, "burn", [aO], nil), invoke(af, "integerEntry", [Q(), 0], nil), invoke(af, "integerEntry", [z(unit), aN], nil), invoke(af, "integerEntry", [A(unit), bB], nil), invoke(af, "stringEntry", [aa(bL), cf], nil), invoke(af, "stringEntry", [ab(bL), cg], nil)]
506+ let bA = [invoke(ag, "integerEntry", [J(aW), bD], nil), invoke(ag, "integerEntry", [K(aW), bC], nil), invoke(ag, "integerEntry", [F(), bL], nil), invoke(ag, "integerEntry", [G(bL), aR], nil), invoke(ag, "integerEntry", [I(bL), (bI + 1)], nil), invoke(ag, "burn", [aP], nil), invoke(ag, "integerEntry", [R(), 0], nil), invoke(ag, "integerEntry", [A(unit), aO], nil), invoke(ag, "integerEntry", [B(unit), bB], nil), invoke(ag, "stringEntry", [ab(bL), cf], nil), invoke(ag, "stringEntry", [ac(bL), cg], nil)]
506507 $Tuple2(bQ, bA)
507508 }
508509 else throw("Strict value is not equal to itself.")
509510 }
510511 else throw("Strict value is not equal to itself.")
511512 }
512513
513514
514515
515-@Callable(ax)
516-func finalizeREADONLY (bB,aN,bC,bD) = {
517- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
518- let bE = valueOrErrorMessage(getInteger(af, K()), f("invalid period length"))
519- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
520- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
521- let bH = valueOrErrorMessage(getInteger(af, N()), f("invalid next block to process"))
516+@Callable(ay)
517+func finalizeREADONLY (bB,aO,bC,bD) = {
518+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
519+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
520+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
521+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
522+ let bH = valueOrErrorMessage(getInteger(ag, O()), g("invalid next block to process"))
522523 let bI = ((bF + bE) - 1)
523524 let bJ = [if ((bH > bI))
524525 then true
525- else h("unprocessed blocks"), if ((bB >= 0))
526+ else i("unprocessed blocks"), if ((bB >= 0))
526527 then true
527- else h("invalid donation part"), if ((aN >= 0))
528+ else i("invalid donation part"), if ((aO >= 0))
528529 then true
529- else h("invalid lp part"), if ((bC >= 0))
530+ else i("invalid lp part"), if ((bC >= 0))
530531 then true
531- else h("invalid claim part"), if ((bD >= 0))
532+ else i("invalid claim part"), if ((bD >= 0))
532533 then true
533- else h("invalid PWR stake part")]
534+ else i("invalid PWR stake part")]
534535 if ((bJ == bJ))
535536 then {
536- let ch = aM(aN)
537- let aQ = ch._1
538- let aO = ch._2
539- let aS = ch._3
540- $Tuple2(nil, $Tuple6(bC, aN, bB, aQ, aO, aS))
537+ let ch = aN(aO)
538+ let aR = ch._1
539+ let aP = ch._2
540+ let aT = ch._3
541+ $Tuple2(nil, $Tuple6(bC, aO, bB, aR, aP, aT))
541542 }
542543 else throw("Strict value is not equal to itself.")
543544 }
544545
545546
546547
547-@Callable(ax)
548-func invest (aU) = {
549- let bx = az(ax)
548+@Callable(ay)
549+func invest (aV) = {
550+ let bx = aA(ay)
550551 if ((bx == bx))
551552 then {
552- let C = Address(aU)
553- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
554- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
555- let ci = getIntegerValue(af, L())
553+ let D = Address(aV)
554+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
555+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
556+ let ci = getIntegerValue(ag, M())
556557 let cj = if (((bF + ci) > height))
557558 then true
558- else h("too late to invest in this period")
559+ else i("too late to invest in this period")
559560 if ((cj == cj))
560561 then {
561- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
562- let bO = if ((size(ax.payments) == 1))
563- then ax.payments[0]
564- else h("invalid payments")
562+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
563+ let bO = if ((size(ay.payments) == 1))
564+ then ay.payments[0]
565+ else i("invalid payments")
565566 let ck = if (if ((bO.assetId == unit))
566567 then (bO.amount > 0)
567568 else false)
568569 then $Tuple2(bO.amount, bO.assetId)
569- else h("invalid payment amount")
570+ else i("invalid payment amount")
570571 let bS = ck._1
571572 let bT = ck._2
572- let cl = valueOrElse(getInteger(af, v()), 0)
573+ let cl = valueOrElse(getInteger(ag, w()), 0)
573574 let cm = fraction(bS, (c - cl), c)
574- let V = if ((bG > 0))
575+ let W = if ((bG > 0))
575576 then fraction(cm, c, bG)
576577 else 0
577- let cn = valueOrElse(getInteger(af, z(unit)), 0)
578- let bN = [ScriptTransfer(ao, cm, bT), ScriptTransfer(ap, cl, bT)]
579- let bA = [invoke(af, "integerEntry", [z(unit), (cn + cm)], nil), invoke(af, "reissue", [V], nil), invoke(af, "transferAsset", [aU, V, aj], nil)]
578+ let cn = valueOrElse(getInteger(ag, A(unit)), 0)
579+ let bN = [ScriptTransfer(ap, cm, bT), ScriptTransfer(aq, cl, bT)]
580+ let bA = [invoke(ag, "integerEntry", [A(unit), (cn + cm)], nil), invoke(ag, "reissue", [W], nil), invoke(ag, "transferAsset", [aV, W, ak], nil)]
580581 $Tuple2(bN, bA)
581582 }
582583 else throw("Strict value is not equal to itself.")
583584 }
584585 else throw("Strict value is not equal to itself.")
585586 }
586587
587588
588589
589-@Callable(ax)
590-func withdraw (aU) = {
591- let bx = az(ax)
590+@Callable(ay)
591+func withdraw (aV) = {
592+ let bx = aA(ay)
592593 if ((bx == bx))
593594 then {
594- let C = Address(aU)
595- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
596- let bO = if ((size(ax.payments) == 1))
597- then ax.payments[0]
598- else h(f("invalid payments"))
599- let bT = if ((bO.assetId == aj))
600- then aj
601- else h("invalid payment asset")
602- let bS = if ((bO.amount > 0))
603- then bO.amount
604- else h("invalid payment amount")
605- let co = valueOrElse(getInteger(af, Q()), 0)
606- let bN = [ScriptTransfer(af, bS, bT)]
607- let bA = [invoke(af, "integerEntry", [Q(), (co + bS)], nil), invoke(af, "stringEntry", [R(C, ax.transactionId), T(d, bS, (aV + 1), unit)], nil)]
608- if ((bA == bA))
609- then $Tuple2(bN, bA)
610- else throw("Strict value is not equal to itself.")
611- }
612- else throw("Strict value is not equal to itself.")
613- }
614-
615-
616-
617-@Callable(ax)
618-func cancelWithdraw (aU,S) = {
619- let bx = az(ax)
620- if ((bx == bx))
621- then {
622- let C = Address(aU)
623- let aW = valueOrErrorMessage(getString(af, R(C, S)), f("invalid withdrawal request"))
624- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
625- let cp = ac(aW)
626- let U = cp._1
627- let V = cp._2
628- let W = cp._3
629- let X = cp._4
630- let bJ = [if ((U == d))
595+ let D = Address(aV)
596+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
597+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
598+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
599+ let cj = if (((bF + bE) > height))
631600 then true
632- else h("invalid withdrawal request status"), if ((W > aV))
633- then true
634- else h("invalid withdrawal request period")]
635- if ((bJ == bJ))
601+ else i("too late to withdraw in this period")
602+ if ((cj == cj))
636603 then {
637- let co = valueOrErrorMessage(getInteger(af, Q()), f("invalid total withdrawal amount"))
638- let bA = [invoke(af, "integerEntry", [Q(), if ((co >= V))
639- then (co - V)
640- else h("invalid withdrawal amount")], nil), invoke(af, "deleteEntry", [R(C, S)], nil), invoke(af, "transferAsset", [aU, V, aj], nil)]
604+ let bO = if ((size(ay.payments) == 1))
605+ then ay.payments[0]
606+ else i(g("invalid payments"))
607+ let bT = if ((bO.assetId == ak))
608+ then ak
609+ else i("invalid payment asset")
610+ let bS = if ((bO.amount > 0))
611+ then bO.amount
612+ else i("invalid payment amount")
613+ let co = valueOrElse(getInteger(ag, R()), 0)
614+ let bN = [ScriptTransfer(ag, bS, bT)]
615+ let bA = [invoke(ag, "integerEntry", [R(), (co + bS)], nil), invoke(ag, "stringEntry", [S(D, ay.transactionId), U(d, bS, (aW + 1), unit)], nil)]
641616 if ((bA == bA))
642- then $Tuple2(nil, bA)
617+ then $Tuple2(bN, bA)
643618 else throw("Strict value is not equal to itself.")
644619 }
645620 else throw("Strict value is not equal to itself.")
646621 }
647622 else throw("Strict value is not equal to itself.")
648623 }
649624
650625
651626
652-@Callable(ax)
653-func claimCollateral (aU,S) = {
654- let bx = az(ax)
627+@Callable(ay)
628+func cancelWithdraw (aV,T) = {
629+ let bx = aA(ay)
630+ if ((bx == bx))
631+ then i("cancelWithdraw is deprecated")
632+ else throw("Strict value is not equal to itself.")
633+ }
634+
635+
636+
637+@Callable(ay)
638+func claimCollateral (aV,T) = {
639+ let bx = aA(ay)
655640 if ((bx == bx))
656641 then {
657- let cq = aT(aU, fromBase58String(S))
658- let C = cq._1
659- let V = cq._2
660- let W = cq._3
661- let aZ = cq._4
662- let ba = cq._5
663- let bb = cq._6
664- let cr = removeByIndex(split_51C(ba, a), 0)
665- let cs = removeByIndex(split_51C(bb, a), 0)
666- let bA = [invoke(af, "deleteEntry", [R(C, fromBase58String(S))], nil), invoke(af, "integerEntry", [Z(C, fromBase58String(S)), V], nil), invoke(af, "transferAssets", [aU, cr, cs], nil)]
642+ let cp = aU(aV, fromBase58String(T))
643+ let D = cp._1
644+ let W = cp._2
645+ let X = cp._3
646+ let ba = cp._4
647+ let bb = cp._5
648+ let bc = cp._6
649+ let cq = removeByIndex(split_51C(bb, a), 0)
650+ let cr = removeByIndex(split_51C(bc, a), 0)
651+ let bA = [invoke(ag, "deleteEntry", [S(D, fromBase58String(T))], nil), invoke(ag, "integerEntry", [aa(D, fromBase58String(T)), W], nil), invoke(ag, "transferAssets", [aV, cq, cr], nil)]
667652 $Tuple2(nil, bA)
668653 }
669654 else throw("Strict value is not equal to itself.")
670655 }
671656
672657
673658
674-@Callable(ax)
675-func claimCollateralBulk (aU,ct) = {
676- let bx = az(ax)
659+@Callable(ay)
660+func claimCollateralBulk (aV,cs) = {
661+ let bx = aA(ay)
677662 if ((bx == bx))
678663 then {
679- func bM (cu,S) = {
680- let cv = aT(aU, fromBase58String(S))
681- let C = cv._1
682- let V = cv._2
683- let W = cv._3
684- let aZ = cv._4
685- let ba = cv._5
686- let bb = cv._6
687- let cr = removeByIndex(split_51C(ba, a), 0)
688- let cs = removeByIndex(split_51C(bb, a), 0)
689- let cw = [invoke(af, "deleteEntry", [R(C, fromBase58String(S))], nil), invoke(af, "integerEntry", [Z(C, fromBase58String(S)), V], nil), invoke(af, "transferAssets", [aU, cr, cs], nil)]
690- (cu ++ cw)
664+ func bM (ct,T) = {
665+ let cu = aU(aV, fromBase58String(T))
666+ let D = cu._1
667+ let W = cu._2
668+ let X = cu._3
669+ let ba = cu._4
670+ let bb = cu._5
671+ let bc = cu._6
672+ let cq = removeByIndex(split_51C(bb, a), 0)
673+ let cr = removeByIndex(split_51C(bc, a), 0)
674+ let cv = [invoke(ag, "deleteEntry", [S(D, fromBase58String(T))], nil), invoke(ag, "integerEntry", [aa(D, fromBase58String(T)), W], nil), invoke(ag, "transferAssets", [aV, cq, cr], nil)]
675+ (ct ++ cv)
691676 }
692677
693- let cx = {
694- let bY = ct
678+ let cw = {
679+ let bY = cs
695680 let bZ = size(bY)
696681 let ca = nil
697682 func cb (cc,cd) = if ((cd >= bZ))
698683 then cc
699684 else bM(cc, bY[cd])
700685
701686 func ce (cc,cd) = if ((cd >= bZ))
702687 then cc
703688 else throw("List size exceeds 10")
704689
705690 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
706691 }
707- $Tuple2(nil, cx)
692+ $Tuple2(nil, cw)
708693 }
709694 else throw("Strict value is not equal to itself.")
710695 }
711696
712697
713698
714-@Callable(ax)
715-func claimCollateralREADONLY (aU,S) = {
716- let cy = bc(aU, fromBase58String(S))
717- $Tuple2(nil, cy)
699+@Callable(ay)
700+func claimCollateralREADONLY (aV,T) = {
701+ let cx = bd(aV, fromBase58String(T))
702+ $Tuple2(nil, cx)
718703 }
719704
720705
721706
722-@Callable(ax)
723-func claimCollateralBulkREADONLY (aU,ct) = {
724- func cz (cu,S) = {
725- let cy = bc(aU, fromBase58String(S))
726- (cu :+ cy)
707+@Callable(ay)
708+func claimCollateralBulkREADONLY (aV,cs) = {
709+ func cy (ct,T) = {
710+ let cx = bd(aV, fromBase58String(T))
711+ (ct :+ cx)
727712 }
728713
729- let cA = {
730- let bY = ct
714+ let cz = {
715+ let bY = cs
731716 let bZ = size(bY)
732717 let ca = nil
733718 func cb (cc,cd) = if ((cd >= bZ))
734719 then cc
735- else cz(cc, bY[cd])
720+ else cy(cc, bY[cd])
736721
737722 func ce (cc,cd) = if ((cd >= bZ))
738723 then cc
739724 else throw("List size exceeds 10")
740725
741726 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
742727 }
743- $Tuple2(nil, cA)
728+ $Tuple2(nil, cz)
744729 }
745730
746731
747732
748-@Callable(ax)
749-func processBlocks (aU) = {
750- let bx = az(ax)
733+@Callable(ay)
734+func processBlocks (aV) = {
735+ let bx = aA(ay)
751736 if ((bx == bx))
752737 then {
753- let C = Address(aU)
754- let aV = valueOrErrorMessage(getInteger(af, E()), f("invalid period"))
755- let bE = valueOrErrorMessage(getInteger(af, K()), f("invalid period length"))
756- let bF = valueOrErrorMessage(getInteger(af, H(aV)), f("invalid start height"))
757- let bG = valueOrErrorMessage(getInteger(af, F(aV)), f("invalid price"))
758- let bH = valueOrErrorMessage(getInteger(af, N()), f("invalid next block to process"))
738+ let D = Address(aV)
739+ let aW = valueOrErrorMessage(getInteger(ag, F()), g("invalid period"))
740+ let bE = valueOrErrorMessage(getInteger(ag, L()), g("invalid period length"))
741+ let bF = valueOrErrorMessage(getInteger(ag, I(aW)), g("invalid start height"))
742+ let bG = valueOrErrorMessage(getInteger(ag, G(aW)), g("invalid price"))
743+ let bH = valueOrErrorMessage(getInteger(ag, O()), g("invalid next block to process"))
759744 let bI = ((bF + bE) - 1)
760- let bp = 20
761- let cB = if (if (if ((height >= bH))
745+ let cA = if (if (if ((height >= bH))
762746 then if ((bH >= bF))
763747 then true
764- else (aV == 0)
748+ else (aW == 0)
765749 else false)
766750 then (bI >= bH)
767751 else false)
768- then min([((bI - bH) + 1), bp])
769- else h(f("invalid target block"))
770- let br = valueOrErrorMessage(getInteger(af, M()), f("invalid block processing reward"))
771- let bs = (br / cB)
772- let cC = (br - (bs * cB))
773- func cD (cE,cF) = if ((cF >= cB))
774- then cE
752+ then min([((bI - bH) + 1), f])
753+ else i(g("invalid target block"))
754+ let br = valueOrErrorMessage(getInteger(ag, N()), g("invalid block processing reward"))
755+ let bs = (br / cA)
756+ let cB = (br - (bs * cA))
757+ func cC (cD,cE) = if ((cE >= cA))
758+ then cD
775759 else {
776- let bu = (bH + cF)
777- let bv = valueOrErrorMessage(blockInfoByHeight(bu), f("invalid block info"))
778- let bw = valueOrErrorMessage(aA(bv.rewards, al), f(("invalid treasury reward for height " + toString(bu))))
779- let cG = bv.generator
780- let by = valueOrElse(getInteger(af, B(cG)), 0)
781- let cH = if ((cF == (cB - 1)))
782- then (bs + cC)
760+ let bu = (bH + cE)
761+ let bv = valueOrErrorMessage(blockInfoByHeight(bu), g("invalid block info"))
762+ let bw = valueOrErrorMessage(aB(bv.rewards, am), g(("invalid treasury reward for height " + toString(bu))))
763+ let cF = bv.generator
764+ let by = valueOrElse(getInteger(ag, C(cF)), 0)
765+ let cG = if ((cE == (cA - 1)))
766+ then (bs + cB)
783767 else bs
784- let cI = bg(bw)
785- let cJ = cI._1
786- let bl = cI._2
787- let bm = cI._3
788- let V = if ((bG > 0))
789- then fraction((bm - cH), c, bG)
768+ let cH = bh(bw)
769+ let cI = cH._1
770+ let bm = cH._2
771+ let bn = cH._3
772+ let W = if ((bG > 0))
773+ then fraction((bn - cG), c, bG)
790774 else 0
791- let cK = [invoke(af, "stringEntry", [O(bu), makeString([toBase58String(ax.transactionId), toString(aV), toString(cG), toBase58String(aU), toString(bw), toString(cH), toString(V), toString(cJ)], a)], nil), invoke(af, "integerEntry", [B(cG), (by + V)], nil)]
792- if ((cK == cK))
775+ let cJ = [invoke(ag, "stringEntry", [P(bu), makeString([toBase58String(ay.transactionId), toString(aW), toString(cF), toBase58String(aV), toString(bw), toString(cG), toString(W), toString(cI)], a)], nil), invoke(ag, "integerEntry", [C(cF), (by + W)], nil)]
776+ if ((cJ == cJ))
793777 then {
794- let cL = cE
795- let cM = cL._1
796- let cN = cL._2
797- let cO = cL._3
798- let cP = cL._4
799- let cQ = cP
800- let cR = cQ._1
801- let cS = cQ._2
802- let cT = (cS :+ $Tuple2(toString(cG), cJ))
803- $Tuple4((cM + V), (cN + bw), (cO + bl), $Tuple2((cR + cJ), cT))
778+ let cK = cD
779+ let cL = cK._1
780+ let cM = cK._2
781+ let cN = cK._3
782+ let cO = cK._4
783+ let cP = cO
784+ let cQ = cP._1
785+ let cR = cP._2
786+ let cS = (cR :+ $Tuple2(toString(cF), cI))
787+ $Tuple4((cL + W), (cM + bw), (cN + bm), $Tuple2((cQ + cI), cS))
804788 }
805789 else throw("Strict value is not equal to itself.")
806790 }
807791
808- let cU = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
809- let cV = {
810- let bY = cU
792+ let cT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
793+ let cU = {
794+ let bY = cT
811795 let bZ = size(bY)
812796 let ca = $Tuple4(0, 0, 0, $Tuple2(0, nil))
813797 func cb (cc,cd) = if ((cd >= bZ))
814798 then cc
815- else cD(cc, bY[cd])
799+ else cC(cc, bY[cd])
816800
817801 func ce (cc,cd) = if ((cd >= bZ))
818802 then cc
819803 else throw("List size exceeds 20")
820804
821805 ce(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
822806 }
823- if ((cV == cV))
807+ if ((cU == cU))
824808 then {
825- let cP = cV._4
826- let cW = cV._3
827- let cX = cV._2
828- let cY = cV._1
829- let cZ = cP
830- let da = cZ._1
831- let db = cZ._2
832- let dc = (((cX - cW) - br) - da)
833- let cn = valueOrElse(getInteger(af, z(unit)), 0)
834- let dd = if ((da > 0))
809+ let cO = cU._4
810+ let cV = cU._3
811+ let cW = cU._2
812+ let cX = cU._1
813+ let cY = cO
814+ let cZ = cY._1
815+ let da = cY._2
816+ let db = (((cW - cV) - br) - cZ)
817+ let cn = valueOrElse(getInteger(ag, A(unit)), 0)
818+ let dc = if ((cZ > 0))
835819 then {
836- let de = [invoke(af, "transferFromProxyTreasury", [af.bytes, da], nil)]
837- if ((de == de))
820+ let dd = [invoke(ag, "transferFromProxyTreasury", [ag.bytes, cZ], nil)]
821+ if ((dd == dd))
838822 then {
839- let df = invoke(af, "swap", [as, e, da], nil)
840- if ((df == df))
823+ let de = invoke(ag, "swap", [at, e, cZ], nil)
824+ if ((de == de))
841825 then {
842- let dg = {
843- let k = df
844- if ($isInstanceOf(k, "Int"))
826+ let df = {
827+ let l = de
828+ if ($isInstanceOf(l, "Int"))
845829 then {
846- let dh = k
847- dh
830+ let dg = l
831+ dg
848832 }
849833 else 0
850834 }
851- func di (cE,dj) = {
852- let dk = dj
853- let cG = dk._1
854- let dl = dk._2
855- if ((da > 0))
835+ func dh (cD,di) = {
836+ let dj = di
837+ let cF = dj._1
838+ let dk = dj._2
839+ if ((cZ > 0))
856840 then {
857- let dm = fraction(dl, dg, da)
858- let dn = invoke(af, "powerStake", [fromBase58String(cG), fromBase58String(as), dm], nil)
859- if ((dn == dn))
841+ let dl = fraction(dk, df, cZ)
842+ let dm = invoke(ag, "powerStake", [fromBase58String(cF), fromBase58String(at), dl], nil)
843+ if ((dm == dm))
860844 then nil
861845 else throw("Strict value is not equal to itself.")
862846 }
863847 else nil
864848 }
865849
866- let do = {
867- let bY = db
850+ let dn = {
851+ let bY = da
868852 let bZ = size(bY)
869853 let ca = 0
854+ func do (cc,cd) = if ((cd >= bZ))
855+ then cc
856+ else dh(cc, bY[cd])
857+
870858 func dp (cc,cd) = if ((cd >= bZ))
871- then cc
872- else di(cc, bY[cd])
873-
874- func dq (cc,cd) = if ((cd >= bZ))
875859 then cc
876860 else throw("List size exceeds 20")
877861
878- dq(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(dp(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
862+ dp(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(do(ca, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
879863 }
880- if ((do == do))
864+ if ((dn == dn))
881865 then nil
882866 else throw("Strict value is not equal to itself.")
883867 }
884868 else throw("Strict value is not equal to itself.")
885869 }
886870 else throw("Strict value is not equal to itself.")
887871 }
888872 else nil
889- if ((dd == dd))
873+ if ((dc == dc))
890874 then {
891- let bN = [invoke(af, "reissue", [cY], nil), invoke(af, "integerEntry", [N(), (bH + cB)], nil), invoke(af, "transferFromProxyTreasury", [ao.bytes, dc], nil), invoke(af, "transferFromProxyTreasury", [aU, br], nil), invoke(af, "transferFromProxyTreasury", [ap.bytes, cW], nil), invoke(af, "integerEntry", [z(unit), (cn + dc)], nil)]
875+ let bN = [invoke(ag, "reissue", [cX], nil), invoke(ag, "integerEntry", [O(), (bH + cA)], nil), invoke(ag, "transferFromProxyTreasury", [ap.bytes, db], nil), invoke(ag, "transferFromProxyTreasury", [aV, br], nil), invoke(ag, "transferFromProxyTreasury", [aq.bytes, cV], nil), invoke(ag, "integerEntry", [A(unit), (cn + db)], nil)]
892876 if ((bN == bN))
893877 then $Tuple2(nil, unit)
894878 else throw("Strict value is not equal to itself.")
895879 }
896880 else throw("Strict value is not equal to itself.")
897881 }
898882 else throw("Strict value is not equal to itself.")
899883 }
900884 else throw("Strict value is not equal to itself.")
901885 }
902886
903887
904-@Verifier(dr)
905-func ds () = {
906- let dt = {
907- let k = at()
908- if ($isInstanceOf(k, "ByteVector"))
888+@Verifier(dq)
889+func dr () = {
890+ let ds = {
891+ let l = au()
892+ if ($isInstanceOf(l, "ByteVector"))
909893 then {
910- let av = k
911- av
894+ let aw = l
895+ aw
912896 }
913- else dr.senderPublicKey
897+ else dq.senderPublicKey
914898 }
915- sigVerify(dr.bodyBytes, dr.proofs[0], dt)
899+ sigVerify(dq.bodyBytes, dq.proofs[0], ds)
916900 }
917901

github/deemru/w8io/169f3d6 
319.17 ms