tx · 5jKFfKGXisRRwPZWTzWMaWd65RF2gEkYvZz5ghmjyy2U

3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP:  -0.01900000 Waves

2023.06.23 14:18 [2635187] smart account 3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP > SELF 0.00000000 Waves

{ "type": 13, "id": "5jKFfKGXisRRwPZWTzWMaWd65RF2gEkYvZz5ghmjyy2U", "fee": 1900000, "feeAssetId": null, "timestamp": 1687519186064, "version": 2, "chainId": 84, "sender": "3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP", "senderPublicKey": "AoKo4segKHU4DeJnxXQYJj2u7J6XJeux6r8KLW52cd2Q", "proofs": [ "5sLMPDU9YDuN2KZZ415bPoxaxWeJNZbAzxz7mPqmTQNk4S1tnB84nE12bKcCnRZVpF18gMX6M5h7e9WrrqoL75Gz" ], "script": "base64:BwIrCAISAwoBAhIHCgUCAQEBARIDCgECEgMKAQISBAoCAgISBAoCAgISAwoBAigAA1NFUAICX18ADUNPTlRSQUNUX05BTUUCD2NhbGN1bGF0b3IucmlkZQAGU0NBTEU4AIDC1y8ABlNDQUxFNgDAhD0AB1BFTkRJTkcCB1BFTkRJTkcACEZJTklTSEVEAghGSU5JU0hFRAAFV0FWRVMCBVdBVkVTAQd3cmFwRXJyAQFzCQCsAgIJAKwCAgUNQ09OVFJBQ1RfTkFNRQICOiAFAXMBCHRocm93RXJyAQFzCQACAQkBB3dyYXBFcnIBBQFzAQ9hc3NldElkVG9TdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAwkAAQIFByRtYXRjaDACBFVuaXQFBVdBVkVTCQACAQILTWF0Y2ggZXJyb3IBA2FicwEBbgMJAGYCAAAFAW4JAQEtAQUBbgUBbgERa2V5RmFjdG9yeUFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIHZmFjdG9yeQUDbmlsBQNTRVABDGtleUxwQXNzZXRJZAAJALkJAgkAzAgCAgIlcwkAzAgCAglscEFzc2V0SWQFA25pbAUDU0VQAQ1rZXlYdG5Bc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICCnh0bkFzc2V0SWQFA25pbAUDU0VQARJrZXlUcmVhc3VyeUFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIIdHJlYXN1cnkFA25pbAUDU0VQAQtrZXlJbnZlc3RlZAEHYXNzZXRJZAkAuQkCCQDMCAICBCVzJXMJAMwIAgIIaW52ZXN0ZWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFB2Fzc2V0SWQFA25pbAUDU0VQAQxrZXlBdmFpbGFibGUBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAglhdmFpbGFibGUJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABCmtleUNsYWltZWQBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgdjbGFpbWVkCQDMCAIJAKUIAQULdXNlckFkZHJlc3MFA25pbAUDU0VQARBrZXlDdXJyZW50UGVyaW9kAAkAuQkCCQDMCAICAiVzCQDMCAICDWN1cnJlbnRQZXJpb2QFA25pbAUDU0VQARFrZXlQcmljZUZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgVwcmljZQkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABDmtleVN0YXJ0SGVpZ2h0AQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEPa2V5UGVyaW9kTGVuZ3RoAAIQJXNfX3BlcmlvZExlbmd0aAEYa2V5QmxvY2tQcm9jZXNzaW5nUmV3YXJkAAIZJXNfX2Jsb2NrUHJvY2Vzc2luZ1Jld2FyZAEVa2V5TmV4dEJsb2NrVG9Qcm9jZXNzAAIWJXNfX25leHRCbG9ja1RvUHJvY2VzcwERa2V5QmxvY2tQcm9jZXNzZWQBBmhlaWdodAkAuQkCCQDMCAICBCVzJWQJAMwIAgIOYmxvY2tQcm9jZXNzZWQJAMwIAgkApAMBBQZoZWlnaHQFA25pbAUDU0VQAQ1rZXlXaXRoZHJhd2FsAAIOJXNfX3dpdGhkcmF3YWwBFGtleVdpdGhkcmF3YWxSZXF1ZXN0Agt1c2VyQWRkcmVzcwR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCndpdGhkcmF3YWwJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCCQDYBAEFBHR4SWQFA25pbAUDU0VQARZ2YWx1ZVdpdGhkcmF3YWxSZXF1ZXN0BAZzdGF0dXMNbHBBc3NldEFtb3VudAx0YXJnZXRQZXJpb2QJY2xhaW1UeElkBAxjbGFpbVR4SWRTdHIEByRtYXRjaDAFCWNsYWltVHhJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWIDCQABAgUHJG1hdGNoMAIEVW5pdAIEU09PTgkAAgECC01hdGNoIGVycm9yCQC5CQIJAMwIAgIIJXMlZCVkJXMJAMwIAgUGc3RhdHVzCQDMCAIJAKQDAQUNbHBBc3NldEFtb3VudAkAzAgCCQCkAwEFDHRhcmdldFBlcmlvZAkAzAgCBQxjbGFpbVR4SWRTdHIFA25pbAUDU0VQASFwYXJzZVdpdGhkcmF3YWxSZXF1ZXN0VmFsdWVPckZhaWwBAXMEBXBhcnRzCQC1CQIFAXMFA1NFUAMJAAACCQCQAwEFBXBhcnRzAAUEBnN0YXR1cwkAkQMCBQVwYXJ0cwABBA1scEFzc2V0QW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwACCQEHd3JhcEVycgECFWludmFsaWQgbHBBc3NldEFtb3VudAQMdGFyZ2V0UGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwADCQEHd3JhcEVycgECFGludmFsaWQgdGFyZ2V0UGVyaW9kBAljbGFpbVR4SWQJAJEDAgUFcGFydHMABAkAlgoEBQZzdGF0dXMFDWxwQXNzZXRBbW91bnQFDHRhcmdldFBlcmlvZAUJY2xhaW1UeElkCQEIdGhyb3dFcnIBAiBpbnZhbGlkIHdpdGhkcmF3YWwgcmVxdWVzdCB2YWx1ZQAUZmFjdG9yeUFkZHJlc3NPcHRpb24EByRtYXRjaDAJAJ0IAgUEdGhpcwkBEWtleUZhY3RvcnlBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFGZhY3RvcnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAA9scEFzc2V0SWRPcHRpb24EByRtYXRjaDAFFGZhY3RvcnlBZGRyZXNzT3B0aW9uAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAEByRtYXRjaDEJAJ0IAgUBYQkBDGtleUxwQXNzZXRJZAADCQABAgUHJG1hdGNoMQIGU3RyaW5nBAFzBQckbWF0Y2gxCQDZBAEFAXMDCQABAgUHJG1hdGNoMQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAPbHBBc3NldElkT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFD2xwQXNzZXRJZE9wdGlvbgkBB3dyYXBFcnIBAhFpbnZhbGlkIGxwQXNzZXRJZAAQeHRuQXNzZXRJZE9wdGlvbgQHJG1hdGNoMAUUZmFjdG9yeUFkZHJlc3NPcHRpb24DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAQHJG1hdGNoMQkAnQgCBQFhCQENa2V5WHRuQXNzZXRJZAADCQABAgUHJG1hdGNoMQIGU3RyaW5nBAFzBQckbWF0Y2gxCQDZBAEFAXMDCQABAgUHJG1hdGNoMQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAQeHRuQXNzZXRJZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRB4dG5Bc3NldElkT3B0aW9uCQEHd3JhcEVycgECEmludmFsaWQgeHRuQXNzZXRJZAAVdHJlYXN1cnlBZGRyZXNzT3B0aW9uBAckbWF0Y2gwBRRmYWN0b3J5QWRkcmVzc09wdGlvbgMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBAckbWF0Y2gxCQCdCAIFAWEJARJrZXlUcmVhc3VyeUFkZHJlc3MAAwkAAQIFByRtYXRjaDECBlN0cmluZwQBcwUHJG1hdGNoMQkApggBBQFzAwkAAQIFByRtYXRjaDECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFXRyZWFzdXJ5QWRkcmVzc09yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRV0cmVhc3VyeUFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIYaW52YWxpZCB0cmVhc3VyeSBhZGRyZXNzAQtvbmx5QWRkcmVzcwIBaQdhZGRyZXNzAwkAAAIIBQFpBmNhbGxlcgUHYWRkcmVzcwYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkAQtvbmx5RmFjdG9yeQEBaQkBC29ubHlBZGRyZXNzAgUBaQUUZmFjdG9yeUFkZHJlc3NPckZhaWwBD3Jld2FyZEZvck9wdGlvbgIHcmV3YXJkcwZ0YXJnZXQEAXMJAJADAQUHcmV3YXJkcwQLJHQwNDA5NjQxMjEJAJEDAgUHcmV3YXJkcwAABAJhMAgFCyR0MDQwOTY0MTIxAl8xBAJyMAgFCyR0MDQwOTY0MTIxAl8yBAskdDA0MTI0NDE0OQkAkQMCBQdyZXdhcmRzAAEEAmExCAULJHQwNDEyNDQxNDkCXzEEAnIxCAULJHQwNDEyNDQxNDkCXzIECyR0MDQxNTI0MTc3CQCRAwIFB3Jld2FyZHMAAgQCYTIIBQskdDA0MTUyNDE3NwJfMQQCcjIIBQskdDA0MTUyNDE3NwJfMgMDCQBmAgUBcwAACQAAAgUCYTAFBnRhcmdldAcFAnIwAwMJAGYCBQFzAAEJAAACBQJhMQUGdGFyZ2V0BwUCcjEDAwkAZgIFAXMAAgkAAAIFAmEyBQZ0YXJnZXQHBQJyMgUEdW5pdAcBaQEHY2xhaW1MUAEQdXNlckFkZHJlc3NCeXRlcwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt1c2VyQWRkcmVzcwkBB0FkZHJlc3MBBRB1c2VyQWRkcmVzc0J5dGVzBAlhdmFpbGFibGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQxrZXlBdmFpbGFibGUBBQt1c2VyQWRkcmVzcwAABAdjbGFpbWVkCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEKa2V5Q2xhaW1lZAEFC3VzZXJBZGRyZXNzAAAEDmZhY3RvcnlBY3Rpb25zAwkAZgIFCWF2YWlsYWJsZQAACQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyQXNzZXQJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBQlhdmFpbGFibGUJAMwIAgUPbHBBc3NldElkT3JGYWlsBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDGtleUF2YWlsYWJsZQEFC3VzZXJBZGRyZXNzCQDMCAIAAAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQprZXlDbGFpbWVkAQULdXNlckFkZHJlc3MJAMwIAgkAZAIFB2NsYWltZWQFCWF2YWlsYWJsZQUDbmlsBQNuaWwFA25pbAkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGZpbmFsaXplBRB1c2VyQWRkcmVzc0J5dGVzGG5ld1RyZWFzdXJ5Vm9sdW1lSW5XYXZlcwh4dG5QcmljZRBwd3JNYW5hZ2Vyc0JvbnVzIHRyZWFzdXJ5Vm9sdW1lRGlmZkFsbG9jYXRpb25Db2VmBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBAxwZXJpb2RMZW5ndGgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBD2tleVBlcmlvZExlbmd0aAAJAQd3cmFwRXJyAQIVaW52YWxpZCBwZXJpb2QgbGVuZ3RoBBJjdXJyZW50U3RhcnRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBDmtleVN0YXJ0SGVpZ2h0AQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAhRpbnZhbGlkIHN0YXJ0IGhlaWdodAQSY3VycmVudFByaWNlT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARFrZXlQcmljZUZvclBlcmlvZAEFE2N1cnJlbnRQZXJpb2RPckZhaWwJAQd3cmFwRXJyAQINaW52YWxpZCBwcmljZQQSbmV4dEJsb2NrVG9Qcm9jZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARVrZXlOZXh0QmxvY2tUb1Byb2Nlc3MACQEHd3JhcEVycgECHWludmFsaWQgbmV4dCBibG9jayB0byBwcm9jZXNzBA9wZXJpb2RFbmRIZWlnaHQJAGUCCQBkAgUSY3VycmVudFN0YXJ0SGVpZ2h0BQxwZXJpb2RMZW5ndGgAAQQGY2hlY2tzCQDMCAIDCQAAAggFAWkMb3JpZ2luQ2FsbGVyBRV0cmVhc3VyeUFkZHJlc3NPckZhaWwGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAkAzAgCAwkAZgIFEm5leHRCbG9ja1RvUHJvY2VzcwUPcGVyaW9kRW5kSGVpZ2h0BgkBCHRocm93RXJyAQISdW5wcm9jZXNzZWQgYmxvY2tzCQDMCAIDCQBnAgUYbmV3VHJlYXN1cnlWb2x1bWVJbldhdmVzAAAGCQEIdGhyb3dFcnIBAhtpbnZhbGlkIG5ldyB0cmVhc3VyeSB2b2x1bWUJAMwIAgMJAGcCBQh4dG5QcmljZQAABgkBCHRocm93RXJyAQIRaW52YWxpZCBYVE4gcHJpY2UJAMwIAgMDCQBnAgUQcHdyTWFuYWdlcnNCb251cwAACQBnAgUGU0NBTEU4BRBwd3JNYW5hZ2Vyc0JvbnVzBwYJAQh0aHJvd0VycgECGmludmFsaWQgUFdSIG1hbmFnZXJzIGJvbnVzCQDMCAIDAwkAZwIFIHRyZWFzdXJ5Vm9sdW1lRGlmZkFsbG9jYXRpb25Db2VmCQEBLQEFBlNDQUxFOAkAZwIFBlNDQUxFOAUgdHJlYXN1cnlWb2x1bWVEaWZmQWxsb2NhdGlvbkNvZWYHBgkBCHRocm93RXJyAQIzaW52YWxpZCB0cmVhc3VyeSB2b2x1bWUgZGlmZiBhbGxvY2F0aW9uIGNvZWZmaWNpZW50BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEEWludmVzdGVkWHRuQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQELa2V5SW52ZXN0ZWQBBRB4dG5Bc3NldElkT3JGYWlsAAAEE2ludmVzdGVkV2F2ZXNBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQtrZXlJbnZlc3RlZAEFBHVuaXQAAAQYaW52ZXN0ZWRYdG5BbW91bnRJbldhdmVzCQBrAwURaW52ZXN0ZWRYdG5BbW91bnQFCHh0blByaWNlBQZTQ0FMRTYEHGN1cnJlbnRUcmVhc3VyeVZvbHVtZUluV2F2ZXMJAGQCBRhpbnZlc3RlZFh0bkFtb3VudEluV2F2ZXMFE2ludmVzdGVkV2F2ZXNBbW91bnQECXByb2ZpdFJhdwkAZQIFGG5ld1RyZWFzdXJ5Vm9sdW1lSW5XYXZlcwUcY3VycmVudFRyZWFzdXJ5Vm9sdW1lSW5XYXZlcwQWcHdyTWFuYWdlcnNCb251c0Ftb3VudAMJAGYCBQlwcm9maXRSYXcAAAkAawMFCXByb2ZpdFJhdwUQcHdyTWFuYWdlcnNCb251cwUGU0NBTEU4AAAEBnByb2ZpdAkAZQIFCXByb2ZpdFJhdwUWcHdyTWFuYWdlcnNCb251c0Ftb3VudAQMZG9uYXRpb25QYXJ0AwkAZgIFHGN1cnJlbnRUcmVhc3VyeVZvbHVtZUluV2F2ZXMAAAkAawMFGGludmVzdGVkWHRuQW1vdW50SW5XYXZlcwUGU0NBTEU4BRxjdXJyZW50VHJlYXN1cnlWb2x1bWVJbldhdmVzAAAEFWRvbmF0aW9uUHJvZml0UGFydFJhdwkAawMFBnByb2ZpdAUMZG9uYXRpb25QYXJ0BQZTQ0FMRTgEF2ludmVzdG1lbnRQcm9maXRQYXJ0UmF3CQBlAgUGcHJvZml0BRVkb25hdGlvblByb2ZpdFBhcnRSYXcEI3RyZWFzdXJ5Vm9sdW1lRGlmZkFsbG9jYXRpb25Db2VmQWJzCQEDYWJzAQUgdHJlYXN1cnlWb2x1bWVEaWZmQWxsb2NhdGlvbkNvZWYEEGFtb3VudFRvRG9uYXRpb24JAGsDBRdpbnZlc3RtZW50UHJvZml0UGFydFJhdwMJAGYCAAAFIHRyZWFzdXJ5Vm9sdW1lRGlmZkFsbG9jYXRpb25Db2VmBSN0cmVhc3VyeVZvbHVtZURpZmZBbGxvY2F0aW9uQ29lZkFicwAABQZTQ0FMRTgEEmFtb3VudFRvSW52ZXN0bWVudAkAawMFFWRvbmF0aW9uUHJvZml0UGFydFJhdwMJAGYCBSB0cmVhc3VyeVZvbHVtZURpZmZBbGxvY2F0aW9uQ29lZgAABSN0cmVhc3VyeVZvbHVtZURpZmZBbGxvY2F0aW9uQ29lZkFicwAABQZTQ0FMRTgEEmRvbmF0aW9uUHJvZml0UGFydAkAZAIJAGUCBRVkb25hdGlvblByb2ZpdFBhcnRSYXcFEmFtb3VudFRvSW52ZXN0bWVudAUQYW1vdW50VG9Eb25hdGlvbgQUaW52ZXN0bWVudFByb2ZpdFBhcnQJAGQCCQBlAgUXaW52ZXN0bWVudFByb2ZpdFBhcnRSYXcFEGFtb3VudFRvRG9uYXRpb24FEmFtb3VudFRvSW52ZXN0bWVudAQWaW52ZXN0ZWRXYXZlc0Ftb3VudE5ldwkAZAIFE2ludmVzdGVkV2F2ZXNBbW91bnQFFGludmVzdG1lbnRQcm9maXRQYXJ0BBRpbnZlc3RlZFh0bkFtb3VudE5ldwkAawMJAGQCBRhpbnZlc3RlZFh0bkFtb3VudEluV2F2ZXMFEmRvbmF0aW9uUHJvZml0UGFydAUGU0NBTEU2BQh4dG5QcmljZQQJbmV3UGVyaW9kCQBkAgUTY3VycmVudFBlcmlvZE9yRmFpbAABBA9scEFzc2V0UXVhbnRpdHkICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUPbHBBc3NldElkT3JGYWlsCQEHd3JhcEVycgECFGludmFsaWQgbHBBc3NldCBpbmZvCHF1YW50aXR5BAhuZXdQcmljZQkAawMFFmludmVzdGVkV2F2ZXNBbW91bnROZXcFBlNDQUxFOAUPbHBBc3NldFF1YW50aXR5BBNscEFzc2V0QW1vdW50VG9CdXJuCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQENa2V5V2l0aGRyYXdhbAAAAAQQcGF5bWVudEFtb3VudE1pbgkAlgMBCQDMCAIAAAkAzAgCCQBrAwUTbHBBc3NldEFtb3VudFRvQnVybgUIbmV3UHJpY2UFBlNDQUxFOAUDbmlsBA1wYXltZW50T3B0aW9uAwkAZgIJAJADAQgFAWkIcGF5bWVudHMAAAkAkQMCCAUBaQhwYXltZW50cwAABQR1bml0BA1wYXltZW50QW1vdW50CAkBBXZhbHVlAQUNcGF5bWVudE9wdGlvbgZhbW91bnQEDnBheW1lbnRBc3NldElkCAkBBXZhbHVlAQUNcGF5bWVudE9wdGlvbgdhc3NldElkBAxjaGVja1BheW1lbnQDAwkAAAIFEHBheW1lbnRBbW91bnRNaW4AAAYDAwkBAiE9AgUNcGF5bWVudE9wdGlvbgUEdW5pdAkAAAIFDnBheW1lbnRBc3NldElkBQR1bml0BwkAZwIFDXBheW1lbnRBbW91bnQFEHBheW1lbnRBbW91bnRNaW4HBgkBCHRocm93RXJyAQkArAICAiZpbnZhbGlkIHBheW1lbnRzLCBwYXltZW50IGFtb3VudCBtaW46IAkApAMBBRBwYXltZW50QW1vdW50TWluAwkAAAIFDGNoZWNrUGF5bWVudAUMY2hlY2tQYXltZW50BAdhY3Rpb25zAwkBAiE9AgUNcGF5bWVudE9wdGlvbgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRRmYWN0b3J5QWRkcmVzc09yRmFpbAUNcGF5bWVudEFtb3VudAUOcGF5bWVudEFzc2V0SWQFA25pbAUDbmlsBA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBEGtleUN1cnJlbnRQZXJpb2QACQDMCAIFCW5ld1BlcmlvZAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJARFrZXlQcmljZUZvclBlcmlvZAEFCW5ld1BlcmlvZAkAzAgCBQhuZXdQcmljZQUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQ5rZXlTdGFydEhlaWdodAEFCW5ld1BlcmlvZAkAzAgCCQBkAgUPcGVyaW9kRW5kSGVpZ2h0AAEFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCBGJ1cm4JAMwIAgUTbHBBc3NldEFtb3VudFRvQnVybgUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJAQ1rZXlXaXRoZHJhd2FsAAkAzAgCAAAFA25pbAUDbmlsBQNuaWwJAJQKAgUHYWN0aW9ucwUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGaW52ZXN0ARB1c2VyQWRkcmVzc0J5dGVzBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBAdwYXltZW50AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQEIdGhyb3dFcnIBAhBpbnZhbGlkIHBheW1lbnRzBA0kdDAxMTAzNTExMjEyAwMJAAACCAUHcGF5bWVudAdhc3NldElkBQR1bml0CQBmAggFB3BheW1lbnQGYW1vdW50AAAHCQCUCgIIBQdwYXltZW50BmFtb3VudAgFB3BheW1lbnQHYXNzZXRJZAkBCHRocm93RXJyAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAQNcGF5bWVudEFtb3VudAgFDSR0MDExMDM1MTEyMTICXzEEDnBheW1lbnRBc3NldElkCAUNJHQwMTEwMzUxMTIxMgJfMgQNbHBBc3NldEFtb3VudAMJAGYCBRJjdXJyZW50UHJpY2VPckZhaWwAAAkAawMFDXBheW1lbnRBbW91bnQFBlNDQUxFOAUSY3VycmVudFByaWNlT3JGYWlsAAAECGludmVzdGVkCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQELa2V5SW52ZXN0ZWQBBQR1bml0AAAEB2FjdGlvbnMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUVdHJlYXN1cnlBZGRyZXNzT3JGYWlsBQ1wYXltZW50QW1vdW50BQ5wYXltZW50QXNzZXRJZAUDbmlsBA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBC2tleUludmVzdGVkAQUEdW5pdAkAzAgCCQBkAgUIaW52ZXN0ZWQFDXBheW1lbnRBbW91bnQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCB3JlaXNzdWUJAMwIAgUNbHBBc3NldEFtb3VudAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAINdHJhbnNmZXJBc3NldAkAzAgCBRB1c2VyQWRkcmVzc0J5dGVzCQDMCAIFDWxwQXNzZXRBbW91bnQJAMwIAgUPbHBBc3NldElkT3JGYWlsBQNuaWwFA25pbAUDbmlsCQCUCgIFB2FjdGlvbnMFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHdpdGhkcmF3ARB1c2VyQWRkcmVzc0J5dGVzBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBAdwYXltZW50AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQEIdGhyb3dFcnIBCQEHd3JhcEVycgECEGludmFsaWQgcGF5bWVudHMEDnBheW1lbnRBc3NldElkAwkAAAIIBQdwYXltZW50B2Fzc2V0SWQFD2xwQXNzZXRJZE9yRmFpbAUPbHBBc3NldElkT3JGYWlsCQEIdGhyb3dFcnIBAhVpbnZhbGlkIHBheW1lbnQgYXNzZXQEDXBheW1lbnRBbW91bnQDCQBmAggFB3BheW1lbnQGYW1vdW50AAAIBQdwYXltZW50BmFtb3VudAkBCHRocm93RXJyAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAQKd2l0aGRyYXdhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBDWtleVdpdGhkcmF3YWwAAAAEB2FjdGlvbnMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUUZmFjdG9yeUFkZHJlc3NPckZhaWwFDXBheW1lbnRBbW91bnQFDnBheW1lbnRBc3NldElkBQNuaWwEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQENa2V5V2l0aGRyYXdhbAAJAMwIAgkAZAIFCndpdGhkcmF3YWwFDXBheW1lbnRBbW91bnQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCC3N0cmluZ0VudHJ5CQDMCAIJARRrZXlXaXRoZHJhd2FsUmVxdWVzdAIFC3VzZXJBZGRyZXNzCAUBaQ10cmFuc2FjdGlvbklkCQDMCAIJARZ2YWx1ZVdpdGhkcmF3YWxSZXF1ZXN0BAUHUEVORElORwUNcGF5bWVudEFtb3VudAkAZAIFE2N1cnJlbnRQZXJpb2RPckZhaWwAAQUEdW5pdAUDbmlsBQNuaWwFA25pbAMJAAACBQ5mYWN0b3J5QWN0aW9ucwUOZmFjdG9yeUFjdGlvbnMJAJQKAgUHYWN0aW9ucwUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY2FuY2VsV2l0aGRyYXcCEHVzZXJBZGRyZXNzQnl0ZXMEdHhJZAQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt1c2VyQWRkcmVzcwkBB0FkZHJlc3MBBRB1c2VyQWRkcmVzc0J5dGVzBBd3aXRoZHJhd2FsUmVxdWVzdE9wdGlvbgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEUa2V5V2l0aGRyYXdhbFJlcXVlc3QCBQt1c2VyQWRkcmVzcwUEdHhJZAkBB3dyYXBFcnIBAhppbnZhbGlkIHdpdGhkcmF3YWwgcmVxdWVzdAQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEDSR0MDEzNjE1MTM3MjgJASFwYXJzZVdpdGhkcmF3YWxSZXF1ZXN0VmFsdWVPckZhaWwBBRd3aXRoZHJhd2FsUmVxdWVzdE9wdGlvbgQGc3RhdHVzCAUNJHQwMTM2MTUxMzcyOAJfMQQNbHBBc3NldEFtb3VudAgFDSR0MDEzNjE1MTM3MjgCXzIEDHRhcmdldFBlcmlvZAgFDSR0MDEzNjE1MTM3MjgCXzMECWNsYWltVHhJZAgFDSR0MDEzNjE1MTM3MjgCXzQEBmNoZWNrcwkAzAgCAwkAAAIFBnN0YXR1cwUHUEVORElORwYJAQh0aHJvd0VycgECIWludmFsaWQgd2l0aGRyYXdhbCByZXF1ZXN0IHN0YXR1cwkAzAgCAwkAZgIFDHRhcmdldFBlcmlvZAUTY3VycmVudFBlcmlvZE9yRmFpbAYJAQh0aHJvd0VycgECIWludmFsaWQgd2l0aGRyYXdhbCByZXF1ZXN0IHBlcmlvZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAp3aXRoZHJhd2FsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQ1rZXlXaXRoZHJhd2FsAAkBB3dyYXBFcnIBAh9pbnZhbGlkIHRvdGFsIHdpdGhkcmF3YWwgYW1vdW50BA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDWtleVdpdGhkcmF3YWwACQDMCAIDCQBnAgUKd2l0aGRyYXdhbAUNbHBBc3NldEFtb3VudAkAZQIFCndpdGhkcmF3YWwFDWxwQXNzZXRBbW91bnQJAQh0aHJvd0VycgECGWludmFsaWQgd2l0aGRyYXdhbCBhbW91bnQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCC2RlbGV0ZUVudHJ5CQDMCAIJARRrZXlXaXRoZHJhd2FsUmVxdWVzdAIFC3VzZXJBZGRyZXNzBQR0eElkBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAg10cmFuc2ZlckFzc2V0CQDMCAIFEHVzZXJBZGRyZXNzQnl0ZXMJAMwIAgUNbHBBc3NldEFtb3VudAkAzAgCBQ9scEFzc2V0SWRPckZhaWwFA25pbAUDbmlsBQNuaWwDCQAAAgUOZmFjdG9yeUFjdGlvbnMFDmZhY3RvcnlBY3Rpb25zCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKY2xhaW1XYXZlcwIQdXNlckFkZHJlc3NCeXRlcwR0eElkBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBBd3aXRoZHJhd2FsUmVxdWVzdE9wdGlvbgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEUa2V5V2l0aGRyYXdhbFJlcXVlc3QCBQt1c2VyQWRkcmVzcwUEdHhJZAkBB3dyYXBFcnIBAhppbnZhbGlkIHdpdGhkcmF3YWwgcmVxdWVzdAQNJHQwMTUwNjAxNTE3MwkBIXBhcnNlV2l0aGRyYXdhbFJlcXVlc3RWYWx1ZU9yRmFpbAEFF3dpdGhkcmF3YWxSZXF1ZXN0T3B0aW9uBAZzdGF0dXMIBQ0kdDAxNTA2MDE1MTczAl8xBA1scEFzc2V0QW1vdW50CAUNJHQwMTUwNjAxNTE3MwJfMgQMdGFyZ2V0UGVyaW9kCAUNJHQwMTUwNjAxNTE3MwJfMwQJY2xhaW1UeElkCAUNJHQwMTUwNjAxNTE3MwJfNAMJAAACBQZzdGF0dXMFCEZJTklTSEVECQEIdGhyb3dFcnIBAiFpbnZhbGlkIHdpdGhkcmF3YWwgcmVxdWVzdCBzdGF0dXMDCQBmAgUMdGFyZ2V0UGVyaW9kBRNjdXJyZW50UGVyaW9kT3JGYWlsCQEIdGhyb3dFcnIBAiFpbnZhbGlkIHdpdGhkcmF3YWwgcmVxdWVzdCBwZXJpb2QEC3ByaWNlT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARFrZXlQcmljZUZvclBlcmlvZAEFDHRhcmdldFBlcmlvZAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBAZhbW91bnQDCQBmAgULcHJpY2VPckZhaWwAAAkAawMFDWxwQXNzZXRBbW91bnQFC3ByaWNlT3JGYWlsBQZTQ0FMRTgAAAQOZmFjdG9yeUFjdGlvbnMJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAILc3RyaW5nRW50cnkJAMwIAgkBFGtleVdpdGhkcmF3YWxSZXF1ZXN0AgULdXNlckFkZHJlc3MFBHR4SWQJAMwIAgkBFnZhbHVlV2l0aGRyYXdhbFJlcXVlc3QEBQhGSU5JU0hFRAUNbHBBc3NldEFtb3VudAUMdGFyZ2V0UGVyaW9kCAUBaQ10cmFuc2FjdGlvbklkBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgRidXJuCQDMCAIFDWxwQXNzZXRBbW91bnQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyV2F2ZXMJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBQZhbW91bnQFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQ5mYWN0b3J5QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1wcm9jZXNzQmxvY2tzARB1c2VyQWRkcmVzc0J5dGVzBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBAxwZXJpb2RMZW5ndGgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBD2tleVBlcmlvZExlbmd0aAAJAQd3cmFwRXJyAQIVaW52YWxpZCBwZXJpb2QgbGVuZ3RoBBJjdXJyZW50U3RhcnRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBDmtleVN0YXJ0SGVpZ2h0AQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAhRpbnZhbGlkIHN0YXJ0IGhlaWdodAQSY3VycmVudFByaWNlT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARFrZXlQcmljZUZvclBlcmlvZAEFE2N1cnJlbnRQZXJpb2RPckZhaWwJAQd3cmFwRXJyAQINaW52YWxpZCBwcmljZQQSbmV4dEJsb2NrVG9Qcm9jZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARVrZXlOZXh0QmxvY2tUb1Byb2Nlc3MACQEHd3JhcEVycgECHWludmFsaWQgbmV4dCBibG9jayB0byBwcm9jZXNzBA9wZXJpb2RFbmRIZWlnaHQJAGUCCQBkAgUSY3VycmVudFN0YXJ0SGVpZ2h0BQxwZXJpb2RMZW5ndGgAAQQcYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZU1heAAoBBlibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplAwMDCQBnAgUGaGVpZ2h0BRJuZXh0QmxvY2tUb1Byb2Nlc3MDCQBnAgUSbmV4dEJsb2NrVG9Qcm9jZXNzBRJjdXJyZW50U3RhcnRIZWlnaHQGCQAAAgUTY3VycmVudFBlcmlvZE9yRmFpbAAABwkAZwIFD3BlcmlvZEVuZEhlaWdodAUSbmV4dEJsb2NrVG9Qcm9jZXNzBwkAlwMBCQDMCAIJAGQCCQBlAgUPcGVyaW9kRW5kSGVpZ2h0BRJuZXh0QmxvY2tUb1Byb2Nlc3MAAQkAzAgCBRxibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplTWF4BQNuaWwJAQh0aHJvd0VycgEJAQd3cmFwRXJyAQIUaW52YWxpZCB0YXJnZXQgYmxvY2sEFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEYa2V5QmxvY2tQcm9jZXNzaW5nUmV3YXJkAAkBB3dyYXBFcnIBAh9pbnZhbGlkIGJsb2NrIHByb2Nlc3NpbmcgcmV3YXJkBCBibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvcgkAaQIFFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQQpYmxvY2tQcm9jZXNzaW5nUmV3YXJkQnlHZW5lcmF0b3JSZW1haW5kZXIJAGUCBRVibG9ja1Byb2Nlc3NpbmdSZXdhcmQJAGgCBSBibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvcgUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQoBA21hcAIDYWNjA2luYwMJAGcCBQNpbmMFGWJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemUFA2FjYwQRdGFyZ2V0QmxvY2tIZWlnaHQJAGQCBRJuZXh0QmxvY2tUb1Byb2Nlc3MFA2luYwQPdGFyZ2V0QmxvY2tJbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAO0HAQURdGFyZ2V0QmxvY2tIZWlnaHQJAQd3cmFwRXJyAQISaW52YWxpZCBibG9jayBpbmZvBBR0cmVhc3VyeVJld2FyZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQEPcmV3YXJkRm9yT3B0aW9uAggFD3RhcmdldEJsb2NrSW5mbwdyZXdhcmRzBRV0cmVhc3VyeUFkZHJlc3NPckZhaWwJAQd3cmFwRXJyAQkArAICAiNpbnZhbGlkIHRyZWFzdXJ5IHJld2FyZCBmb3IgaGVpZ2h0IAkApAMBBRF0YXJnZXRCbG9ja0hlaWdodAQJZ2VuZXJhdG9yCAUPdGFyZ2V0QmxvY2tJbmZvCWdlbmVyYXRvcgQJYXZhaWxhYmxlCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEMa2V5QXZhaWxhYmxlAQUJZ2VuZXJhdG9yAAAEDGNhbGxlclJld2FyZAMJAAACBQNpbmMJAGUCBRlibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplAAEJAGQCBSBibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvcgUpYmxvY2tQcm9jZXNzaW5nUmV3YXJkQnlHZW5lcmF0b3JSZW1haW5kZXIFIGJsb2NrUHJvY2Vzc2luZ1Jld2FyZEJ5R2VuZXJhdG9yBA1scEFzc2V0QW1vdW50AwkAZgIFEmN1cnJlbnRQcmljZU9yRmFpbAAACQBrAwkAZQIFFHRyZWFzdXJ5UmV3YXJkT3JGYWlsBQxjYWxsZXJSZXdhcmQFBlNDQUxFOAUSY3VycmVudFByaWNlT3JGYWlsAAAEFGZhY3RvcnlBY3Rpb25zU2luZ2xlCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCC3N0cmluZ0VudHJ5CQDMCAIJARFrZXlCbG9ja1Byb2Nlc3NlZAEFEXRhcmdldEJsb2NrSGVpZ2h0CQDMCAIJALkJAgkAzAgCCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQDMCAIJAKUIAQUJZ2VuZXJhdG9yCQDMCAIJANgEAQUQdXNlckFkZHJlc3NCeXRlcwkAzAgCCQCkAwEFFHRyZWFzdXJ5UmV3YXJkT3JGYWlsCQDMCAIJAKQDAQUMY2FsbGVyUmV3YXJkCQDMCAIJAKQDAQUNbHBBc3NldEFtb3VudAUDbmlsBQNTRVAFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQEMa2V5QXZhaWxhYmxlAQUJZ2VuZXJhdG9yCQDMCAIJAGQCBQlhdmFpbGFibGUFDWxwQXNzZXRBbW91bnQFA25pbAUDbmlsBQNuaWwDCQAAAgUUZmFjdG9yeUFjdGlvbnNTaW5nbGUFFGZhY3RvcnlBY3Rpb25zU2luZ2xlCQBkAgUDYWNjBQ1scEFzc2V0QW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBARsaXN0CQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOCQDMCAIADwkAzAgCABAJAMwIAgARCQDMCAIAEgkAzAgCABMJAMwIAgAUCQDMCAIAFQkAzAgCABYJAMwIAgAXCQDMCAIAGAkAzAgCABkJAMwIAgAaCQDMCAIAGwkAzAgCABwJAMwIAgAdCQDMCAIAHgkAzAgCAB8JAMwIAgAgCQDMCAIAIQkAzAgCACIJAMwIAgAjCQDMCAIAJAkAzAgCACUJAMwIAgAmCQDMCAIAJwUDbmlsBBJscEFzc2V0QW1vdW50VG90YWwKAAIkbAUEbGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEDbWFwAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA0MAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoAwkAAAIFEmxwQXNzZXRBbW91bnRUb3RhbAUSbHBBc3NldEFtb3VudFRvdGFsBAdhY3Rpb25zCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyV2F2ZXMJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBRVibG9ja1Byb2Nlc3NpbmdSZXdhcmQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCB3JlaXNzdWUJAMwIAgUSbHBBc3NldEFtb3VudFRvdGFsBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBFWtleU5leHRCbG9ja1RvUHJvY2VzcwAJAMwIAgkAZAIFEm5leHRCbG9ja1RvUHJvY2VzcwUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQUDbmlsBQNuaWwFA25pbAMJAAACBQdhY3Rpb25zBQdhY3Rpb25zCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXnAMJ6K", "height": 2635187, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2exwXVqToTEqykJyzsPpZ5H9hRhvUQxk17HzDyuyARnJ Next: CK4sYcu67kpWrryazaT54bguTXR2LWzHnenFWnhhvLGn Diff:
OldNewDifferences
310310 let bb = fraction(aX, c, ba)
311311 let bc = valueOrElse(getInteger(T, H()), 0)
312312 let bd = max([0, fraction(bc, bb, c)])
313- let be = if (if ((bd == 0))
313+ let be = if ((size(ad.payments) > 0))
314+ then ad.payments[0]
315+ else unit
316+ let bf = value(be).amount
317+ let bg = value(be).assetId
318+ let bh = if (if ((bd == 0))
314319 then true
315- else if (if ((size(ad.payments) == 1))
316- then (ad.payments[0].assetId == unit)
320+ else if (if ((be != unit))
321+ then (bg == unit)
317322 else false)
318- then (ad.payments[0].amount >= bd)
323+ then (bf >= bd)
319324 else false)
320325 then true
321326 else j(("invalid payments, payment amount min: " + toString(bd)))
322- if ((be == be))
327+ if ((bh == bh))
323328 then {
329+ let bi = if ((be != unit))
330+ then [ScriptTransfer(T, bf, bg)]
331+ else nil
324332 let aw = [invoke(T, "integerEntry", [y(), aZ], nil), invoke(T, "integerEntry", [z(aZ), bb], nil), invoke(T, "integerEntry", [B(aZ), (aG + 1)], nil), invoke(T, "burn", [bc], nil), invoke(T, "integerEntry", [H(), 0], nil)]
325- $Tuple2(nil, aw)
333+ $Tuple2(bi, aw)
326334 }
327335 else throw("Strict value is not equal to itself.")
328336 }
341349 let w = Address(as)
342350 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
343351 let aE = valueOrErrorMessage(getInteger(T, z(aB)), h("invalid price"))
344- let bf = if ((size(ad.payments) == 1))
352+ let bj = if ((size(ad.payments) == 1))
345353 then ad.payments[0]
346354 else j("invalid payments")
347- let bg = if (if ((bf.assetId == unit))
348- then (bf.amount > 0)
355+ let bk = if (if ((bj.assetId == unit))
356+ then (bj.amount > 0)
349357 else false)
350- then bf.amount
358+ then $Tuple2(bj.amount, bj.assetId)
351359 else j("invalid payment amount")
360+ let bf = bk._1
361+ let bg = bk._2
352362 let M = if ((aE > 0))
353- then fraction(bg, c, aE)
363+ then fraction(bf, c, aE)
354364 else 0
355- let bh = valueOrElse(getInteger(T, u(unit)), 0)
356- let aw = [invoke(T, "integerEntry", [u(unit), (bh + bg)], nil), invoke(T, "reissue", [M], nil), invoke(T, "transferAsset", [as, M, X], nil), invoke(T, "transferWaves", [ab.bytes, bg], [AttachedPayment(unit, bg)])]
357- $Tuple2(nil, aw)
365+ let bl = valueOrElse(getInteger(T, u(unit)), 0)
366+ let bi = [ScriptTransfer(ab, bf, bg)]
367+ let aw = [invoke(T, "integerEntry", [u(unit), (bl + bf)], nil), invoke(T, "reissue", [M], nil), invoke(T, "transferAsset", [as, M, X], nil)]
368+ $Tuple2(bi, aw)
358369 }
359370 else throw("Strict value is not equal to itself.")
360371 }
368379 then {
369380 let w = Address(as)
370381 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
371- let bf = if ((size(ad.payments) == 1))
382+ let bj = if ((size(ad.payments) == 1))
372383 then ad.payments[0]
373384 else j(h("invalid payments"))
374- let bi = if ((bf.assetId == X))
385+ let bg = if ((bj.assetId == X))
375386 then X
376387 else j("invalid payment asset")
377- let bg = if ((bf.amount > 0))
378- then bf.amount
388+ let bf = if ((bj.amount > 0))
389+ then bj.amount
379390 else j("invalid payment amount")
380- let bj = valueOrElse(getInteger(T, H()), 0)
381- let aw = [invoke(T, "integerEntry", [H(), (bj + bg)], nil), invoke(T, "stringEntry", [I(w, ad.transactionId), K(e, bg, (aB + 1), unit)], nil)]
391+ let bm = valueOrElse(getInteger(T, H()), 0)
392+ let bi = [ScriptTransfer(T, bf, bg)]
393+ let aw = [invoke(T, "integerEntry", [H(), (bm + bf)], nil), invoke(T, "stringEntry", [I(w, ad.transactionId), K(e, bf, (aB + 1), unit)], nil)]
382394 if ((aw == aw))
383- then $Tuple2([ScriptTransfer(T, bg, bi)], aw)
395+ then $Tuple2(bi, aw)
384396 else throw("Strict value is not equal to itself.")
385397 }
386398 else throw("Strict value is not equal to itself.")
394406 if ((at == at))
395407 then {
396408 let w = Address(as)
397- let bk = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
409+ let bn = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
398410 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
399- let bl = Q(bk)
400- let L = bl._1
401- let M = bl._2
402- let N = bl._3
403- let O = bl._4
411+ let bo = Q(bn)
412+ let L = bo._1
413+ let M = bo._2
414+ let N = bo._3
415+ let O = bo._4
404416 let aH = [if ((L == e))
405417 then true
406418 else j("invalid withdrawal request status"), if ((N > aB))
408420 else j("invalid withdrawal request period")]
409421 if ((aH == aH))
410422 then {
411- let bj = valueOrErrorMessage(getInteger(T, H()), h("invalid total withdrawal amount"))
412- let aw = [invoke(T, "integerEntry", [H(), if ((bj >= M))
413- then (bj - M)
423+ let bm = valueOrErrorMessage(getInteger(T, H()), h("invalid total withdrawal amount"))
424+ let aw = [invoke(T, "integerEntry", [H(), if ((bm >= M))
425+ then (bm - M)
414426 else j("invalid withdrawal amount")], nil), invoke(T, "deleteEntry", [I(w, J)], nil), invoke(T, "transferAsset", [as, M, X], nil)]
415427 if ((aw == aw))
416428 then $Tuple2(nil, aw)
430442 then {
431443 let w = Address(as)
432444 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
433- let bk = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
434- let bm = Q(bk)
435- let L = bm._1
436- let M = bm._2
437- let N = bm._3
438- let O = bm._4
445+ let bn = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
446+ let bp = Q(bn)
447+ let L = bp._1
448+ let M = bp._2
449+ let N = bp._3
450+ let O = bp._4
439451 if ((L == f))
440452 then j("invalid withdrawal request status")
441453 else if ((N > aB))
442454 then j("invalid withdrawal request period")
443455 else {
444- let bn = valueOrErrorMessage(getInteger(T, z(N)), h("invalid price"))
445- let bo = if ((bn > 0))
446- then fraction(M, bn, c)
456+ let bq = valueOrErrorMessage(getInteger(T, z(N)), h("invalid price"))
457+ let br = if ((bq > 0))
458+ then fraction(M, bq, c)
447459 else 0
448- let aw = [invoke(T, "stringEntry", [I(w, J), K(f, M, N, ad.transactionId)], nil), invoke(T, "burn", [M], nil), invoke(T, "transferWaves", [as, bo], nil)]
460+ let aw = [invoke(T, "stringEntry", [I(w, J), K(f, M, N, ad.transactionId)], nil), invoke(T, "burn", [M], nil), invoke(T, "transferWaves", [as, br], nil)]
449461 $Tuple2(nil, aw)
450462 }
451463 }
466478 let aE = valueOrErrorMessage(getInteger(T, z(aB)), h("invalid price"))
467479 let aF = valueOrErrorMessage(getInteger(T, E()), h("invalid next block to process"))
468480 let aG = ((aD + aC) - 1)
469- let bp = 40
470- let bq = if (if (if ((height >= aF))
481+ let bs = 40
482+ let bt = if (if (if ((height >= aF))
471483 then if ((aF >= aD))
472484 then true
473485 else (aB == 0)
474486 else false)
475487 then (aG >= aF)
476488 else false)
477- then min([((aG - aF) + 1), bp])
489+ then min([((aG - aF) + 1), bs])
478490 else j(h("invalid target block"))
479- let br = valueOrErrorMessage(getInteger(T, D()), h("invalid block processing reward"))
480- let bs = (br / bq)
481- let bt = (br - (bs * bq))
482- func bu (bv,bw) = if ((bw >= bq))
483- then bv
491+ let bu = valueOrErrorMessage(getInteger(T, D()), h("invalid block processing reward"))
492+ let bv = (bu / bt)
493+ let bw = (bu - (bv * bt))
494+ func bx (by,bz) = if ((bz >= bt))
495+ then by
484496 else {
485- let bx = (aF + bw)
486- let by = valueOrErrorMessage(blockInfoByHeight(bx), h("invalid block info"))
487- let bz = valueOrErrorMessage(ag(by.rewards, ab), h(("invalid treasury reward for height " + toString(bx))))
488- let bA = by.generator
489- let au = valueOrElse(getInteger(T, v(bA)), 0)
490- let bB = if ((bw == (bq - 1)))
491- then (bs + bt)
492- else bs
497+ let bA = (aF + bz)
498+ let bB = valueOrErrorMessage(blockInfoByHeight(bA), h("invalid block info"))
499+ let bC = valueOrErrorMessage(ag(bB.rewards, ab), h(("invalid treasury reward for height " + toString(bA))))
500+ let bD = bB.generator
501+ let au = valueOrElse(getInteger(T, v(bD)), 0)
502+ let bE = if ((bz == (bt - 1)))
503+ then (bv + bw)
504+ else bv
493505 let M = if ((aE > 0))
494- then fraction((bz - bB), c, aE)
506+ then fraction((bC - bE), c, aE)
495507 else 0
496- let bC = [invoke(T, "stringEntry", [F(bx), makeString([toBase58String(ad.transactionId), toString(aB), toString(bA), toBase58String(as), toString(bz), toString(bB), toString(M)], a)], nil), invoke(T, "integerEntry", [v(bA), (au + M)], nil)]
497- if ((bC == bC))
498- then (bv + M)
508+ let bF = [invoke(T, "stringEntry", [F(bA), makeString([toBase58String(ad.transactionId), toString(aB), toString(bD), toBase58String(as), toString(bC), toString(bE), toString(M)], a)], nil), invoke(T, "integerEntry", [v(bD), (au + M)], nil)]
509+ if ((bF == bF))
510+ then (by + M)
499511 else throw("Strict value is not equal to itself.")
500512 }
501513
502- let bD = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
503- let bE = {
504- let bF = bD
505- let bG = size(bF)
506- let bH = 0
507- func bI (bJ,bK) = if ((bK >= bG))
508- then bJ
509- else bu(bJ, bF[bK])
514+ let bG = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
515+ let bH = {
516+ let bI = bG
517+ let bJ = size(bI)
518+ let bK = 0
519+ func bL (bM,bN) = if ((bN >= bJ))
520+ then bM
521+ else bx(bM, bI[bN])
510522
511- func bL (bJ,bK) = if ((bK >= bG))
512- then bJ
523+ func bO (bM,bN) = if ((bN >= bJ))
524+ then bM
513525 else throw("List size exceeds 40")
514526
515- bL(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
527+ bO(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
516528 }
517- if ((bE == bE))
529+ if ((bH == bH))
518530 then {
519- let bM = [invoke(T, "transferWaves", [as, br], nil), invoke(T, "reissue", [bE], nil), invoke(T, "integerEntry", [E(), (aF + bq)], nil)]
520- if ((bM == bM))
531+ let bi = [invoke(T, "transferWaves", [as, bu], nil), invoke(T, "reissue", [bH], nil), invoke(T, "integerEntry", [E(), (aF + bt)], nil)]
532+ if ((bi == bi))
521533 then $Tuple2(nil, unit)
522534 else throw("Strict value is not equal to itself.")
523535 }
527539 }
528540
529541
530-@Verifier(bN)
531-func bO () = sigVerify(bN.bodyBytes, bN.proofs[0], bN.senderPublicKey)
542+@Verifier(bP)
543+func bQ () = sigVerify(bP.bodyBytes, bP.proofs[0], bP.senderPublicKey)
532544
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 = 1000000
1111
1212 let e = "PENDING"
1313
1414 let f = "FINISHED"
1515
1616 let g = "WAVES"
1717
1818 func h (i) = ((b + ": ") + i)
1919
2020
2121 func j (i) = throw(h(i))
2222
2323
2424 func k (l) = {
2525 let m = l
2626 if ($isInstanceOf(m, "ByteVector"))
2727 then {
2828 let n = m
2929 toBase58String(n)
3030 }
3131 else if ($isInstanceOf(m, "Unit"))
3232 then g
3333 else throw("Match error")
3434 }
3535
3636
3737 func o (p) = if ((0 > p))
3838 then -(p)
3939 else p
4040
4141
4242 func q () = makeString(["%s", "factory"], a)
4343
4444
4545 func r () = makeString(["%s", "lpAssetId"], a)
4646
4747
4848 func s () = makeString(["%s", "xtnAssetId"], a)
4949
5050
5151 func t () = makeString(["%s", "treasury"], a)
5252
5353
5454 func u (l) = makeString(["%s%s", "invested", k(l)], a)
5555
5656
5757 func v (w) = makeString(["%s%s", "available", toString(w)], a)
5858
5959
6060 func x (w) = makeString(["%s%s", "claimed", toString(w)], a)
6161
6262
6363 func y () = makeString(["%s", "currentPeriod"], a)
6464
6565
6666 func z (A) = makeString(["%s%d", "price", toString(A)], a)
6767
6868
6969 func B (A) = makeString(["%s%d", "startHeight", toString(A)], a)
7070
7171
7272 func C () = "%s__periodLength"
7373
7474
7575 func D () = "%s__blockProcessingReward"
7676
7777
7878 func E () = "%s__nextBlockToProcess"
7979
8080
8181 func F (G) = makeString(["%s%d", "blockProcessed", toString(G)], a)
8282
8383
8484 func H () = "%s__withdrawal"
8585
8686
8787 func I (w,J) = makeString(["%s%s%s", "withdrawal", toString(w), toBase58String(J)], a)
8888
8989
9090 func K (L,M,N,O) = {
9191 let P = {
9292 let m = O
9393 if ($isInstanceOf(m, "ByteVector"))
9494 then {
9595 let n = m
9696 toBase58String(n)
9797 }
9898 else if ($isInstanceOf(m, "Unit"))
9999 then "SOON"
100100 else throw("Match error")
101101 }
102102 makeString(["%s%d%d%s", L, toString(M), toString(N), P], a)
103103 }
104104
105105
106106 func Q (i) = {
107107 let R = split(i, a)
108108 if ((size(R) == 5))
109109 then {
110110 let L = R[1]
111111 let M = valueOrErrorMessage(parseInt(R[2]), h("invalid lpAssetAmount"))
112112 let N = valueOrErrorMessage(parseInt(R[3]), h("invalid targetPeriod"))
113113 let O = R[4]
114114 $Tuple4(L, M, N, O)
115115 }
116116 else j("invalid withdrawal request value")
117117 }
118118
119119
120120 let S = {
121121 let m = getString(this, q())
122122 if ($isInstanceOf(m, "String"))
123123 then {
124124 let i = m
125125 addressFromString(i)
126126 }
127127 else if ($isInstanceOf(m, "Unit"))
128128 then unit
129129 else throw("Match error")
130130 }
131131
132132 let T = valueOrErrorMessage(S, h("invalid factory address"))
133133
134134 let U = {
135135 let m = S
136136 if ($isInstanceOf(m, "Address"))
137137 then {
138138 let V = m
139139 let W = getString(V, r())
140140 if ($isInstanceOf(W, "String"))
141141 then {
142142 let i = W
143143 fromBase58String(i)
144144 }
145145 else if ($isInstanceOf(W, "Unit"))
146146 then unit
147147 else throw("Match error")
148148 }
149149 else if ($isInstanceOf(m, "Unit"))
150150 then unit
151151 else throw("Match error")
152152 }
153153
154154 let X = valueOrErrorMessage(U, h("invalid lpAssetId"))
155155
156156 let Y = {
157157 let m = S
158158 if ($isInstanceOf(m, "Address"))
159159 then {
160160 let V = m
161161 let W = getString(V, s())
162162 if ($isInstanceOf(W, "String"))
163163 then {
164164 let i = W
165165 fromBase58String(i)
166166 }
167167 else if ($isInstanceOf(W, "Unit"))
168168 then unit
169169 else throw("Match error")
170170 }
171171 else if ($isInstanceOf(m, "Unit"))
172172 then unit
173173 else throw("Match error")
174174 }
175175
176176 let Z = valueOrErrorMessage(Y, h("invalid xtnAssetId"))
177177
178178 let aa = {
179179 let m = S
180180 if ($isInstanceOf(m, "Address"))
181181 then {
182182 let V = m
183183 let W = getString(V, t())
184184 if ($isInstanceOf(W, "String"))
185185 then {
186186 let i = W
187187 addressFromString(i)
188188 }
189189 else if ($isInstanceOf(W, "Unit"))
190190 then unit
191191 else throw("Match error")
192192 }
193193 else if ($isInstanceOf(m, "Unit"))
194194 then unit
195195 else throw("Match error")
196196 }
197197
198198 let ab = valueOrErrorMessage(aa, h("invalid treasury address"))
199199
200200 func ac (ad,ae) = if ((ad.caller == ae))
201201 then true
202202 else j("permission denied")
203203
204204
205205 func af (ad) = ac(ad, T)
206206
207207
208208 func ag (ah,ai) = {
209209 let i = size(ah)
210210 let aj = ah[0]
211211 let ak = aj._1
212212 let al = aj._2
213213 let am = ah[1]
214214 let an = am._1
215215 let ao = am._2
216216 let ap = ah[2]
217217 let aq = ap._1
218218 let ar = ap._2
219219 if (if ((i > 0))
220220 then (ak == ai)
221221 else false)
222222 then al
223223 else if (if ((i > 1))
224224 then (an == ai)
225225 else false)
226226 then ao
227227 else if (if ((i > 2))
228228 then (aq == ai)
229229 else false)
230230 then ar
231231 else unit
232232 }
233233
234234
235235 @Callable(ad)
236236 func claimLP (as) = {
237237 let at = af(ad)
238238 if ((at == at))
239239 then {
240240 let w = Address(as)
241241 let au = valueOrElse(getInteger(T, v(w)), 0)
242242 let av = valueOrElse(getInteger(T, x(w)), 0)
243243 let aw = if ((au > 0))
244244 then [invoke(T, "transferAsset", [as, au, X], nil), invoke(T, "integerEntry", [v(w), 0], nil), invoke(T, "integerEntry", [x(w), (av + au)], nil)]
245245 else j("nothing to claim")
246246 $Tuple2(nil, aw)
247247 }
248248 else throw("Strict value is not equal to itself.")
249249 }
250250
251251
252252
253253 @Callable(ad)
254254 func finalize (as,ax,ay,az,aA) = {
255255 let at = af(ad)
256256 if ((at == at))
257257 then {
258258 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
259259 let aC = valueOrErrorMessage(getInteger(T, C()), h("invalid period length"))
260260 let aD = valueOrErrorMessage(getInteger(T, B(aB)), h("invalid start height"))
261261 let aE = valueOrErrorMessage(getInteger(T, z(aB)), h("invalid price"))
262262 let aF = valueOrErrorMessage(getInteger(T, E()), h("invalid next block to process"))
263263 let aG = ((aD + aC) - 1)
264264 let aH = [if ((ad.originCaller == ab))
265265 then true
266266 else j("permission denied"), if ((aF > aG))
267267 then true
268268 else j("unprocessed blocks"), if ((ax >= 0))
269269 then true
270270 else j("invalid new treasury volume"), if ((ay >= 0))
271271 then true
272272 else j("invalid XTN price"), if (if ((az >= 0))
273273 then (c >= az)
274274 else false)
275275 then true
276276 else j("invalid PWR managers bonus"), if (if ((aA >= -(c)))
277277 then (c >= aA)
278278 else false)
279279 then true
280280 else j("invalid treasury volume diff allocation coefficient")]
281281 if ((aH == aH))
282282 then {
283283 let aI = valueOrElse(getInteger(T, u(Z)), 0)
284284 let aJ = valueOrElse(getInteger(T, u(unit)), 0)
285285 let aK = fraction(aI, ay, d)
286286 let aL = (aK + aJ)
287287 let aM = (ax - aL)
288288 let aN = if ((aM > 0))
289289 then fraction(aM, az, c)
290290 else 0
291291 let aO = (aM - aN)
292292 let aP = if ((aL > 0))
293293 then fraction(aK, c, aL)
294294 else 0
295295 let aQ = fraction(aO, aP, c)
296296 let aR = (aO - aQ)
297297 let aS = o(aA)
298298 let aT = fraction(aR, if ((0 > aA))
299299 then aS
300300 else 0, c)
301301 let aU = fraction(aQ, if ((aA > 0))
302302 then aS
303303 else 0, c)
304304 let aV = ((aQ - aU) + aT)
305305 let aW = ((aR - aT) + aU)
306306 let aX = (aJ + aW)
307307 let aY = fraction((aK + aV), d, ay)
308308 let aZ = (aB + 1)
309309 let ba = valueOrErrorMessage(assetInfo(X), h("invalid lpAsset info")).quantity
310310 let bb = fraction(aX, c, ba)
311311 let bc = valueOrElse(getInteger(T, H()), 0)
312312 let bd = max([0, fraction(bc, bb, c)])
313- let be = if (if ((bd == 0))
313+ let be = if ((size(ad.payments) > 0))
314+ then ad.payments[0]
315+ else unit
316+ let bf = value(be).amount
317+ let bg = value(be).assetId
318+ let bh = if (if ((bd == 0))
314319 then true
315- else if (if ((size(ad.payments) == 1))
316- then (ad.payments[0].assetId == unit)
320+ else if (if ((be != unit))
321+ then (bg == unit)
317322 else false)
318- then (ad.payments[0].amount >= bd)
323+ then (bf >= bd)
319324 else false)
320325 then true
321326 else j(("invalid payments, payment amount min: " + toString(bd)))
322- if ((be == be))
327+ if ((bh == bh))
323328 then {
329+ let bi = if ((be != unit))
330+ then [ScriptTransfer(T, bf, bg)]
331+ else nil
324332 let aw = [invoke(T, "integerEntry", [y(), aZ], nil), invoke(T, "integerEntry", [z(aZ), bb], nil), invoke(T, "integerEntry", [B(aZ), (aG + 1)], nil), invoke(T, "burn", [bc], nil), invoke(T, "integerEntry", [H(), 0], nil)]
325- $Tuple2(nil, aw)
333+ $Tuple2(bi, aw)
326334 }
327335 else throw("Strict value is not equal to itself.")
328336 }
329337 else throw("Strict value is not equal to itself.")
330338 }
331339 else throw("Strict value is not equal to itself.")
332340 }
333341
334342
335343
336344 @Callable(ad)
337345 func invest (as) = {
338346 let at = af(ad)
339347 if ((at == at))
340348 then {
341349 let w = Address(as)
342350 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
343351 let aE = valueOrErrorMessage(getInteger(T, z(aB)), h("invalid price"))
344- let bf = if ((size(ad.payments) == 1))
352+ let bj = if ((size(ad.payments) == 1))
345353 then ad.payments[0]
346354 else j("invalid payments")
347- let bg = if (if ((bf.assetId == unit))
348- then (bf.amount > 0)
355+ let bk = if (if ((bj.assetId == unit))
356+ then (bj.amount > 0)
349357 else false)
350- then bf.amount
358+ then $Tuple2(bj.amount, bj.assetId)
351359 else j("invalid payment amount")
360+ let bf = bk._1
361+ let bg = bk._2
352362 let M = if ((aE > 0))
353- then fraction(bg, c, aE)
363+ then fraction(bf, c, aE)
354364 else 0
355- let bh = valueOrElse(getInteger(T, u(unit)), 0)
356- let aw = [invoke(T, "integerEntry", [u(unit), (bh + bg)], nil), invoke(T, "reissue", [M], nil), invoke(T, "transferAsset", [as, M, X], nil), invoke(T, "transferWaves", [ab.bytes, bg], [AttachedPayment(unit, bg)])]
357- $Tuple2(nil, aw)
365+ let bl = valueOrElse(getInteger(T, u(unit)), 0)
366+ let bi = [ScriptTransfer(ab, bf, bg)]
367+ let aw = [invoke(T, "integerEntry", [u(unit), (bl + bf)], nil), invoke(T, "reissue", [M], nil), invoke(T, "transferAsset", [as, M, X], nil)]
368+ $Tuple2(bi, aw)
358369 }
359370 else throw("Strict value is not equal to itself.")
360371 }
361372
362373
363374
364375 @Callable(ad)
365376 func withdraw (as) = {
366377 let at = af(ad)
367378 if ((at == at))
368379 then {
369380 let w = Address(as)
370381 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
371- let bf = if ((size(ad.payments) == 1))
382+ let bj = if ((size(ad.payments) == 1))
372383 then ad.payments[0]
373384 else j(h("invalid payments"))
374- let bi = if ((bf.assetId == X))
385+ let bg = if ((bj.assetId == X))
375386 then X
376387 else j("invalid payment asset")
377- let bg = if ((bf.amount > 0))
378- then bf.amount
388+ let bf = if ((bj.amount > 0))
389+ then bj.amount
379390 else j("invalid payment amount")
380- let bj = valueOrElse(getInteger(T, H()), 0)
381- let aw = [invoke(T, "integerEntry", [H(), (bj + bg)], nil), invoke(T, "stringEntry", [I(w, ad.transactionId), K(e, bg, (aB + 1), unit)], nil)]
391+ let bm = valueOrElse(getInteger(T, H()), 0)
392+ let bi = [ScriptTransfer(T, bf, bg)]
393+ let aw = [invoke(T, "integerEntry", [H(), (bm + bf)], nil), invoke(T, "stringEntry", [I(w, ad.transactionId), K(e, bf, (aB + 1), unit)], nil)]
382394 if ((aw == aw))
383- then $Tuple2([ScriptTransfer(T, bg, bi)], aw)
395+ then $Tuple2(bi, aw)
384396 else throw("Strict value is not equal to itself.")
385397 }
386398 else throw("Strict value is not equal to itself.")
387399 }
388400
389401
390402
391403 @Callable(ad)
392404 func cancelWithdraw (as,J) = {
393405 let at = af(ad)
394406 if ((at == at))
395407 then {
396408 let w = Address(as)
397- let bk = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
409+ let bn = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
398410 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
399- let bl = Q(bk)
400- let L = bl._1
401- let M = bl._2
402- let N = bl._3
403- let O = bl._4
411+ let bo = Q(bn)
412+ let L = bo._1
413+ let M = bo._2
414+ let N = bo._3
415+ let O = bo._4
404416 let aH = [if ((L == e))
405417 then true
406418 else j("invalid withdrawal request status"), if ((N > aB))
407419 then true
408420 else j("invalid withdrawal request period")]
409421 if ((aH == aH))
410422 then {
411- let bj = valueOrErrorMessage(getInteger(T, H()), h("invalid total withdrawal amount"))
412- let aw = [invoke(T, "integerEntry", [H(), if ((bj >= M))
413- then (bj - M)
423+ let bm = valueOrErrorMessage(getInteger(T, H()), h("invalid total withdrawal amount"))
424+ let aw = [invoke(T, "integerEntry", [H(), if ((bm >= M))
425+ then (bm - M)
414426 else j("invalid withdrawal amount")], nil), invoke(T, "deleteEntry", [I(w, J)], nil), invoke(T, "transferAsset", [as, M, X], nil)]
415427 if ((aw == aw))
416428 then $Tuple2(nil, aw)
417429 else throw("Strict value is not equal to itself.")
418430 }
419431 else throw("Strict value is not equal to itself.")
420432 }
421433 else throw("Strict value is not equal to itself.")
422434 }
423435
424436
425437
426438 @Callable(ad)
427439 func claimWaves (as,J) = {
428440 let at = af(ad)
429441 if ((at == at))
430442 then {
431443 let w = Address(as)
432444 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
433- let bk = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
434- let bm = Q(bk)
435- let L = bm._1
436- let M = bm._2
437- let N = bm._3
438- let O = bm._4
445+ let bn = valueOrErrorMessage(getString(T, I(w, J)), h("invalid withdrawal request"))
446+ let bp = Q(bn)
447+ let L = bp._1
448+ let M = bp._2
449+ let N = bp._3
450+ let O = bp._4
439451 if ((L == f))
440452 then j("invalid withdrawal request status")
441453 else if ((N > aB))
442454 then j("invalid withdrawal request period")
443455 else {
444- let bn = valueOrErrorMessage(getInteger(T, z(N)), h("invalid price"))
445- let bo = if ((bn > 0))
446- then fraction(M, bn, c)
456+ let bq = valueOrErrorMessage(getInteger(T, z(N)), h("invalid price"))
457+ let br = if ((bq > 0))
458+ then fraction(M, bq, c)
447459 else 0
448- let aw = [invoke(T, "stringEntry", [I(w, J), K(f, M, N, ad.transactionId)], nil), invoke(T, "burn", [M], nil), invoke(T, "transferWaves", [as, bo], nil)]
460+ let aw = [invoke(T, "stringEntry", [I(w, J), K(f, M, N, ad.transactionId)], nil), invoke(T, "burn", [M], nil), invoke(T, "transferWaves", [as, br], nil)]
449461 $Tuple2(nil, aw)
450462 }
451463 }
452464 else throw("Strict value is not equal to itself.")
453465 }
454466
455467
456468
457469 @Callable(ad)
458470 func processBlocks (as) = {
459471 let at = af(ad)
460472 if ((at == at))
461473 then {
462474 let w = Address(as)
463475 let aB = valueOrErrorMessage(getInteger(T, y()), h("invalid period"))
464476 let aC = valueOrErrorMessage(getInteger(T, C()), h("invalid period length"))
465477 let aD = valueOrErrorMessage(getInteger(T, B(aB)), h("invalid start height"))
466478 let aE = valueOrErrorMessage(getInteger(T, z(aB)), h("invalid price"))
467479 let aF = valueOrErrorMessage(getInteger(T, E()), h("invalid next block to process"))
468480 let aG = ((aD + aC) - 1)
469- let bp = 40
470- let bq = if (if (if ((height >= aF))
481+ let bs = 40
482+ let bt = if (if (if ((height >= aF))
471483 then if ((aF >= aD))
472484 then true
473485 else (aB == 0)
474486 else false)
475487 then (aG >= aF)
476488 else false)
477- then min([((aG - aF) + 1), bp])
489+ then min([((aG - aF) + 1), bs])
478490 else j(h("invalid target block"))
479- let br = valueOrErrorMessage(getInteger(T, D()), h("invalid block processing reward"))
480- let bs = (br / bq)
481- let bt = (br - (bs * bq))
482- func bu (bv,bw) = if ((bw >= bq))
483- then bv
491+ let bu = valueOrErrorMessage(getInteger(T, D()), h("invalid block processing reward"))
492+ let bv = (bu / bt)
493+ let bw = (bu - (bv * bt))
494+ func bx (by,bz) = if ((bz >= bt))
495+ then by
484496 else {
485- let bx = (aF + bw)
486- let by = valueOrErrorMessage(blockInfoByHeight(bx), h("invalid block info"))
487- let bz = valueOrErrorMessage(ag(by.rewards, ab), h(("invalid treasury reward for height " + toString(bx))))
488- let bA = by.generator
489- let au = valueOrElse(getInteger(T, v(bA)), 0)
490- let bB = if ((bw == (bq - 1)))
491- then (bs + bt)
492- else bs
497+ let bA = (aF + bz)
498+ let bB = valueOrErrorMessage(blockInfoByHeight(bA), h("invalid block info"))
499+ let bC = valueOrErrorMessage(ag(bB.rewards, ab), h(("invalid treasury reward for height " + toString(bA))))
500+ let bD = bB.generator
501+ let au = valueOrElse(getInteger(T, v(bD)), 0)
502+ let bE = if ((bz == (bt - 1)))
503+ then (bv + bw)
504+ else bv
493505 let M = if ((aE > 0))
494- then fraction((bz - bB), c, aE)
506+ then fraction((bC - bE), c, aE)
495507 else 0
496- let bC = [invoke(T, "stringEntry", [F(bx), makeString([toBase58String(ad.transactionId), toString(aB), toString(bA), toBase58String(as), toString(bz), toString(bB), toString(M)], a)], nil), invoke(T, "integerEntry", [v(bA), (au + M)], nil)]
497- if ((bC == bC))
498- then (bv + M)
508+ let bF = [invoke(T, "stringEntry", [F(bA), makeString([toBase58String(ad.transactionId), toString(aB), toString(bD), toBase58String(as), toString(bC), toString(bE), toString(M)], a)], nil), invoke(T, "integerEntry", [v(bD), (au + M)], nil)]
509+ if ((bF == bF))
510+ then (by + M)
499511 else throw("Strict value is not equal to itself.")
500512 }
501513
502- let bD = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
503- let bE = {
504- let bF = bD
505- let bG = size(bF)
506- let bH = 0
507- func bI (bJ,bK) = if ((bK >= bG))
508- then bJ
509- else bu(bJ, bF[bK])
514+ let bG = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
515+ let bH = {
516+ let bI = bG
517+ let bJ = size(bI)
518+ let bK = 0
519+ func bL (bM,bN) = if ((bN >= bJ))
520+ then bM
521+ else bx(bM, bI[bN])
510522
511- func bL (bJ,bK) = if ((bK >= bG))
512- then bJ
523+ func bO (bM,bN) = if ((bN >= bJ))
524+ then bM
513525 else throw("List size exceeds 40")
514526
515- bL(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bI(bH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
527+ bO(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
516528 }
517- if ((bE == bE))
529+ if ((bH == bH))
518530 then {
519- let bM = [invoke(T, "transferWaves", [as, br], nil), invoke(T, "reissue", [bE], nil), invoke(T, "integerEntry", [E(), (aF + bq)], nil)]
520- if ((bM == bM))
531+ let bi = [invoke(T, "transferWaves", [as, bu], nil), invoke(T, "reissue", [bH], nil), invoke(T, "integerEntry", [E(), (aF + bt)], nil)]
532+ if ((bi == bi))
521533 then $Tuple2(nil, unit)
522534 else throw("Strict value is not equal to itself.")
523535 }
524536 else throw("Strict value is not equal to itself.")
525537 }
526538 else throw("Strict value is not equal to itself.")
527539 }
528540
529541
530-@Verifier(bN)
531-func bO () = sigVerify(bN.bodyBytes, bN.proofs[0], bN.senderPublicKey)
542+@Verifier(bP)
543+func bQ () = sigVerify(bP.bodyBytes, bP.proofs[0], bP.senderPublicKey)
532544

github/deemru/w8io/c3f4982 
103.73 ms