tx · D5NUkZEeMuTpBXah1PAMmWfW3MnvtjKgkJBANnVL75Cm

3N8iNNRC4UfDK4aJctSvHajiZ81fzSumCeP:  -0.04300000 Waves

2023.04.05 11:55 [2521031] smart account 3N8iNNRC4UfDK4aJctSvHajiZ81fzSumCeP > SELF 0.00000000 Waves

{ "type": 13, "id": "D5NUkZEeMuTpBXah1PAMmWfW3MnvtjKgkJBANnVL75Cm", "fee": 4300000, "feeAssetId": null, "timestamp": 1680684924510, "version": 2, "chainId": 84, "sender": "3N8iNNRC4UfDK4aJctSvHajiZ81fzSumCeP", "senderPublicKey": "F7NZd812aXMUyDcj1XaB3wgMJXJfUsq3RhPhrEZ9b6ND", "proofs": [ "3AwiVCW9SqFieSZV8Hjq8XS6J6fjoM9gav9hfuQ5Batcr6ZRbjmFFabDt6btbDRd9ULJPoJnZrnVbTqXRuwXuhjb" ], "script": "base64:BgK8NwgCEgASBQoDAQQBEgcKBQEEAQgBEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50Igxzd2FwQ29udHJhY3QiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIQa2V5U1dhdmVzQXNzZXRJZCIVa2V5U1dhdmVzUHJveHlBZGRyZXNzIhRrZXlBZGRpdGlvbmFsQmFsYW5jZSIHYXNzZXRJZCIWa2V5U3Rha2luZ0Fzc2V0QmFsYW5jZSIaZ2V0QWRkaXRpb25hbEJhbGFuY2VPclplcm8iHGdldFN0YWtpbmdBc3NldEJhbGFuY2VPclplcm8iEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIg1rZXlQb29sQ29uZmlnIglpQW10QXNzZXQiC2lQcmljZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiE2tleUFsbFBvb2xzU2h1dGRvd24iDWtleVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIPdGhyb3dPcmRlckVycm9yIgpvcmRlclZhbGlkIg5vcmRlclZhbGlkSW5mbyILc2VuZGVyVmFsaWQiDG1hdGNoZXJWYWxpZCIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIGZm10RXJyIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiBWluRmVlIgFAIgZvdXRGZWUiCHNXYXZlc0lkIgtzV2F2ZXNQcm94eSIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA5Mjk3OTQ2MyIOY2ZnUG9vbEFkZHJlc3MiDWNmZ1Bvb2xTdGF0dXMiDGNmZ0xwQXNzZXRJZCIQY2ZnQW1vdW50QXNzZXRJZCIPY2ZnUHJpY2VBc3NldElkIhZjZmdBbW91bnRBc3NldERlY2ltYWxzIhVjZmdQcmljZUFzc2V0RGVjaW1hbHMiEGdldEZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIh1zbGlwcGFnZVRvbGVyYW5jZVBhc3NlZEJ5VXNlciIVc2xpcHBhZ2VUb2xlcmFuY2VSZWFsIgh0eEhlaWdodCILdHhUaW1lc3RhbXAiEnNsaXBhZ2VBbXRBc3NldEFtdCIUc2xpcGFnZVByaWNlQXNzZXRBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSINYmFsYW5jZU9uUG9vbCIMdG90YWxCYWxhbmNlIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiB2dldFJhdGUiBXByb3h5IgNpbnYiByRtYXRjaDAiAXIiB2RlcG9zaXQiBmFtb3VudCIOc3Rha2luZ0Fzc2V0SWQiGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZSIaY3VycmVudFN0YWtpbmdBc3NldEJhbGFuY2UiBWFzc2V0Ig1kZXBvc2l0SW52b2tlIhRyZWNlaXZlZFN0YWtpbmdBc3NldCIUbmV3QWRkaXRpb25hbEJhbGFuY2UiFm5ld1N0YWtpbmdBc3NldEJhbGFuY2UiCHdpdGhkcmF3Igxwcm94eVJhdGVNdWwiDXByb2ZpdEFkZHJlc3MiEGN1cnJlbnRQcm94eVJhdGUiB29sZFJhdGUiDHN0YWtpbmdBc3NldCIUb2xkU2VuZFN0YWtpbmdBbW91bnQiFnNlbmRTdGFraW5nQXNzZXRBbW91bnQiDHByb2ZpdEFtb3VudCIOd2l0aGRyYXdJbnZva2UiDnJlY2VpdmVkQXNzZXRzIhNnZXRMZWFzZVByb3h5Q29uZmlnIhFyZWJhbGFuY2VJbnRlcm5hbCILdGFyZ2V0UmF0aW8iCm1pbkJhbGFuY2UiEGF2YWlsYWJsZUJhbGFuY2UiAWIiAXUiDHdob2xlQmFsYW5jZSIXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UiBGRpZmYiD3NlbmRBc3NldEFtb3VudCIOZ2V0QXNzZXRBbW91bnQiDnJlYmFsYW5jZUFzc2V0IgFhIg0kdDAxNTgxNDE1OTIzIgppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiFHN0YWtpbmdQcm9maXRBZGRyZXNzIhVnZXRXaXRoZHJhd0Fzc2V0U3RhdGUiCWdldEFtb3VudCINJHQwMTY1MTYxNjYyNSITbmV3VG90YWxDYWxjQmFsYW5jZSIOd2l0aGRyYXdBbW91bnQiEHByaXZhdGVDYWxjUHJpY2UiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IgNjZmciC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIghwcmljZVgxOCIIbHBBbXRYMTgiE2xwUHJpY2VJbkFtQXNzZXRYMTgiE2xwUHJpY2VJblByQXNzZXRYMTgiD2NhbGN1bGF0ZVByaWNlcyIGcHJpY2VzIhRlc3RpbWF0ZUdldE9wZXJhdGlvbiIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCIJbHBBc3NldElkIglhbUFzc2V0SWQiCXByQXNzZXRJZCIKcG9vbFN0YXR1cyIKbHBFbWlzc2lvbiIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4Ig1scEVtaXNzaW9uWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCISQW1BbXRXaXRoZHJhd1N0YXRlIhJQckFtdFdpdGhkcmF3U3RhdGUiBXN0YXRlIhRlc3RpbWF0ZVB1dE9wZXJhdGlvbiIRc2xpcHBhZ2VUb2xlcmFuY2UiDGluQW1Bc3NldEFtdCILaW5BbUFzc2V0SWQiDGluUHJBc3NldEFtdCILaW5QckFzc2V0SWQiCmlzRXZhbHVhdGUiBmVtaXRMcCIMYW1Bc3NldElkU3RyIgxwckFzc2V0SWRTdHIiC2lBbXRBc3NldElkIg1pUHJpY2VBc3NldElkIg5pbkFtQXNzZXRJZFN0ciIOaW5QckFzc2V0SWRTdHIiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiA3JlcyILc2xpcHBhZ2VYMTgiFHNsaXBwYWdlVG9sZXJhbmNlWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIgtjb21tb25TdGF0ZSIHY2FsY0tMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIhBhbW91bnRCYWxhbmNlWDE4Ig9wcmljZUJhbGFuY2VYMTgiCnVwZGF0ZWRLTHAiDmNhbGNDdXJyZW50S0xwIhBhbW91bnRBc3NldERlbHRhIg9wcmljZUFzc2V0RGVsdGEiFGxwQXNzZXRFbWlzc2lvbkRlbHRhIhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIg9scEFzc2V0RW1pc3Npb24iCmN1cnJlbnRLTHAiEnJlZnJlc2hLTHBJbnRlcm5hbCIXYW1vdW50QXNzZXRCYWxhbmNlRGVsdGEiFnByaWNlQXNzZXRCYWxhbmNlRGVsdGEiB2FjdGlvbnMiEnZhbGlkYXRlVXBkYXRlZEtMcCIGb2xkS0xwIht2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQiBW9yZGVyIhFhbW91bnRBc3NldEFtb3VudCIQcHJpY2VBc3NldEFtb3VudCINJHQwMjg3MDcyODkxOSIDa0xwIg0kdDAyOTM1OTI5NDU5Ig11bnVzZWRBY3Rpb25zIgZrTHBOZXciDGlzT3JkZXJWYWxpZCIEaW5mbyIJY29tbW9uR2V0IgFpIgNwbXQiBnBtdEFtdCIJY29tbW9uUHV0IgphbUFzc2V0UG10IgpwckFzc2V0UG10IgZlc3RQdXQiBGVtaXQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDMyNTcyMzI4NjUiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMzI4NjkzMzAxOCIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDMzMTUwMzMyMTQiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDM0ODk1MzUwNjIiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiGG91dEluQW1vdW50QXNzZXREZWNpbWFscyIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDM3MTQwMzcxOTYiC3RvdGFsQW1vdW50Ig0kdDAzNzIwMDM3NDI2IgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IhhhbW91bnRCb3RoSW5QYXltZW50QXNzZXQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0Iglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiDWNsZWFuQW1vdW50SW4iCWlzUmV2ZXJzZSINZmVlUG9vbEFtb3VudCINJHQwMzkzMTIzOTYxNyIIYXNzZXRPdXQiB2Fzc2V0SW4iEnBvb2xBc3NldEluQmFsYW5jZSITcG9vbEFzc2V0T3V0QmFsYW5jZSIJYW1vdW50T3V0IgRvbGRLIgRuZXdLIgZjaGVja0siDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCIIY2hlY2tNaW4iDXdpdGhkcmF3U3RhdGUiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52Ig0kdDA0NDU5MDQ1MDUyIhFyZWZyZXNoS0xwQWN0aW9ucyIRaXNVcGRhdGVkS0xwVmFsaWQiA3JlYiILbWF4U2xpcHBhZ2UiDSR0MDQ1NjY0NDU3MjkiDG1pbk91dEFtb3VudCIJYXV0b1N0YWtlIiBpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCINaXNQdXREaXNhYmxlZCIHcGF5bWVudCINJHQwNDY5MTc0NzA2OSIFYm9udXMiE2VtaXRBbW91bnRFc3RpbWF0ZWQiCmVtaXRBbW91bnQiCHN0YWtlSW52IgdzZW5kRmVlIg0kdDA0NzY1NTQ3ODUyIg0kdDA0Nzg1NTQ3OTYzIg0kdDA0ODMxODQ4NDc1Ig1vdXRBc3NldElkU3RyIg1pc0dldERpc2FibGVkIg0kdDA0OTM2MDQ5NTEzIg9hbW91bnRFc3RpbWF0ZWQiB2J1cm5JbnYiDWFzc2V0VHJhbnNmZXIiDSR0MDUwMDgzNTAzMzAiEGZlZUFtb3VudEZvckNhbGMiDSR0MDUwMzMzNTA0NDEiDSR0MDUwNzE5NTA4NzUiDXVuc3Rha2VBbW91bnQiCnVuc3Rha2VJbnYiDSR0MDUxNzgwNTE5MzEiDSR0MDUyNDk2NTI3NDMiDSR0MDUyNzQ2NTI4NTQiCW91dEFtdEFtdCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiDSR0MDUzODIxNTM5MDMiEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiDSR0MDU0ODUyNTQ5MzMiDWNoZWNrUGF5bWVudHMiD2NoZWNrUG9vbFN0YXR1cyINJHQwNTYwNTk1NjE0MCIVbm9MZXNzVGhlbkFtb3VudEFzc2V0IgxjaGVja0Ftb3VudHMiDSR0MDU3NDM1NTc1MTYiC2FtdEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhhsYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiHWNoZWNrTGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ig0kdDA1ODcwMzU4NzY3IhBrTHBVcGRhdGVBY3Rpb25zIgphbXRBc3NldElkIgxwcmljZUFzc2V0SWQiDXBvb2xMUEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiCnByaWNlc0xpc3QiD2xwQW10QXNzZXRTaGFyZSIRbHBQcmljZUFzc2V0U2hhcmUiCnBvb2xXZWlnaHQiDGN1clByaWNlQ2FsYyIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSIKbWF0Y2hlclB1YiINJHQwNjc0Mjk2NzQ5OCIHbmV3SGFzaCILYWxsb3dlZEhhc2giC2N1cnJlbnRIYXNoggEAAWEACAABYgCAwtcvAAFjCQC2AgEAgMLXLwABZAkAtgIBAICAkLu61q3wDQABZQkAtgIBAAAAAWYJALYCAQAAAAFnCQC2AgEAAQABaAkAtgIBAAIAAWkCBVdBVkVTAAFqAgJfXwABawABAAFsAAIAAW0AAwABbgAEAAFvAAEAAXAAAgABcQADAAFyAAQAAXMABQABdAAGAAF1AAcAAXYACAABdwAJAAF4AAoAAXkAAQABegACAAFBAAMAAUIAAQABQwAHAQFEAgFFAUYJALwCAwkAtgIBBQFFBQFkCQC2AgEFAUYBAUcCAUUBRgkAvAIDBQFFBQFkBQFGAQFIAgFJAUoJAKADAQkAvAIDBQFJCQC2AgEFAUoFAWQBAUsDAUkBSgFMCQCgAwEJAL0CBAUBSQkAtgIBBQFKBQFkBQFMAQFNAwFOAU8BUAkAawMFAU4FAU8FAVABAVEBAUkDCQBmAgAABQFJCQEBLQEFAUkFAUkBAVIBAUkDCQC/AgIFAWUFAUkJAL4CAQUBSQUBSQEBUwACECVzX19zd2FwQ29udHJhY3QBAVQAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFVAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVYAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVcAAhElcyVzX19wcmljZV9fbGFzdAEBWAIBWQFaCQC5CQIJAMwIAgIYJXMlcyVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIJAKQDAQUBWQkAzAgCCQCkAwEFAVoFA25pbAUBagECYWECAmFiAmFjCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX1BfXwUCYWICAl9fBQJhYwECYWQCAmFiAmFjCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX0dfXwUCYWICAl9fBQJhYwECYWUAAg8lc19fYW1vdW50QXNzZXQBAmFmAAIOJXNfX3ByaWNlQXNzZXQAAmFnAgclc19fZmVlAAJhaAkAawMACgUBYgCQTgACYWkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWcFAmFoAAJhagkAuQkCCQDMCAICAiVzCQDMCAICA2tMcAUDbmlsBQFqAAJhawkAuQkCCQDMCAICAiVzCQDMCAICEmtMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFqAAJhbAkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hLTHBEZWxheQUDbmlsBQFqAAJhbQAeAAJhbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhbAUCYW0BAmFvAAIRJXNfX3NXYXZlc0Fzc2V0SWQBAmFwAAIWJXNfX3NXYXZlc1Byb3h5QWRkcmVzcwECYXEBAmFyCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFhZGRpdGlvbmFsQmFsYW5jZQkAzAgCBQJhcgUDbmlsBQFqAQJhcwECYXIJALkJAgkAzAgCAgQlcyVzCQDMCAICE3N0YWtpbmdBc3NldEJhbGFuY2UJAMwIAgUCYXIFA25pbAUBagECYXQBAmFyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhcQEFAmFyAAABAmF1AQJhcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYXMBBQJhcgAAAQJhdgACESVzX19mYWN0b3J5Q29uZmlnAQJhdwACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXgBAmF5CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF5AiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYXoCAmFBAmFCCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhQQICX18FAmFCAghfX2NvbmZpZwECYUMBAmFECQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFEAQJhRQACDCVzX19zaHV0ZG93bgECYUYBAmFHCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYUcBAmFIAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gAAmFJAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUoEAmFLAmFMAmFNAmFOCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhSwICICgFAmFMAgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmFNAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhTgECYU8CAmFQAmFRCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVAFAmFRCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFQCQDMCAICAS4JAMwIAgUCYVEJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYVICAmFQAmFRCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYVAFAmFRCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFQCQDMCAICAS4JAMwIAgUCYVEJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYVMBAmFUCQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFUBQNuaWwCASABAmFVAQJhVAkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFUBQNuaWwCASAAAmFWCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYU8CBQR0aGlzCQEBVAAAAmFXCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYU8CBQJhVgUCYUkAAmFYCgACYVkJAPwHBAUCYVYCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhWQIDSW50BQJhWQkAAgEJAKwCAgkAAwEFAmFZAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFaCgACYVkJAPwHBAUCYVYCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCA0ludAUCYVkJAAIBCQCsAgIJAAMBBQJhWQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJiYQAJAQJhTwIFAmFWCQECYW8AAQJiYgAJAQJhTwIFAmFWCQECYXAAAQJiYwAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYVYJAQJhRQAHAQJiZAAJANkEAQkBAmFPAgUCYVYJAQJhdwABAmJlAAQCYmYJAQJhTwIFBHRoaXMJAQJhZQAEAmJnCQECYU8CBQR0aGlzCQECYWYABAJhQgkBAmFSAgUCYVYJAQJhQwEFAmJnBAJhQQkBAmFSAgUCYVYJAQJhQwEFAmJmCQC1CQIJAQJhTwIFAmFWCQECYXoCCQCkAwEFAmFBCQCkAwEFAmFCBQFqAQJiaAECYmkDCQAAAgUCYmkFAWkFBHVuaXQJANkEAQUCYmkBAmJqAQJiaQMJAAACBQJiaQUEdW5pdAUBaQkA2AQBCQEFdmFsdWUBBQJiaQECYmsBAmJsCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYmwFAW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJibAUBcAkA2QQBCQCRAwIFAmJsBQFxCQECYmgBCQCRAwIFAmJsBQFyCQECYmgBCQCRAwIFAmJsBQFzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmwFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJibAUBdQACYm0JAQJiawEJAQJiZQAAAmJuBQJibQACYm8IBQJibgJfMQACYnAIBQJibgJfMgACYnEIBQJibgJfMwACYnIIBQJibgJfNAACYnMIBQJibgJfNQACYnQIBQJibgJfNgACYnUIBQJibgJfNwECYnYACQC1CQIJAQJhTwIFAmFWCQECYXYABQFqAAJidwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJ2AAUBQgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYngJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJidgAFAUMCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmJ5CgJiegJiQQJiQgJiQwJiRAJiRQJiRgJiRwJiSAJiSQkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYnoJAMwIAgkApAMBBQJiQQkAzAgCCQCkAwEFAmJCCQDMCAIJAKQDAQUCYkMJAMwIAgkApAMBBQJiRAkAzAgCCQCkAwEFAmJFCQDMCAIJAKQDAQUCYkYJAMwIAgkApAMBBQJiRwkAzAgCCQCkAwEFAmJICQDMCAIJAKQDAQUCYkkFA25pbAUBagECYkoGAmJLAmJMAmJNAmJDAmJGAmJHCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYksJAMwIAgkApAMBBQJiTAkAzAgCCQCkAwEFAmJNCQDMCAIJAKQDAQUCYkMJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHBQNuaWwFAWoBAmJOAQJhcgQCYk8DCQAAAgUCYXICBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmFyBAJiUAkAZQIJAGQCBQJiTwkBAmF0AQUCYXIJAQJhdQEFAmFyCQCWAwEJAMwIAgAACQDMCAIFAmJQBQNuaWwBAmJRAgJiUgJiUwkAvAIDBQJiUgUBZAUCYlMBAmJUAwJiUgJiUwFMCQC9AgQFAmJSBQFkBQJiUwUBTAECYlUBAmJWBAJiVwkA/AcEBQJiVgIHZ2V0UmF0ZQUDbmlsBQNuaWwDCQAAAgUCYlcFAmJXBAJiWAUCYlcDCQABAgUCYlgCA0ludAQCYlkFAmJYBQJiWQkBAmFTAQIgcHJveHkuZ2V0UmF0ZSgpIHVuZXhwZWN0ZWQgdmFsdWUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJaBAJhcgJjYQJjYgJiVgQCY2MJAQJhdAEFAmFyAwkAAAIFAmNjBQJjYwQCY2QJAQJhdQEFAmNiAwkAAAIFAmNkBQJjZAQCY2UJAQJiaAEFAmFyAwkAZgIFAmNhAAAEAmNmCQD8BwQFAmJWAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNlBQJjYQUDbmlsAwkAAAIFAmNmBQJjZgQCYlgFAmNmAwkAAQIFAmJYAgNJbnQEAmNnBQJiWAQCY2gJAGQCBQJjYwUCY2EEAmNpCQBkAgUCY2QFAmNnCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXEBBQJhcgUCY2gJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcwEFAmNiBQJjaQUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2oGAmFyAmNhAmNiAmJWAmNrAmNsBAJjYwkBAmF0AQUCYXIDCQAAAgUCY2MFAmNjBAJjZAkBAmF1AQUCY2IDCQAAAgUCY2QFAmNkBAJjbQkBAmJVAQUCYlYDCQAAAgUCY20FAmNtBAJjbgkAawMFAmNrBQJjYwUCY2QEAmNvCQECYmgBBQJjYgQCY3AJAGsDBQJjawUCY2EFAmNuBAJjcQkAawMFAmNrBQJjYQUCY20EAmNyCQCWAwEJAMwIAgAACQDMCAIJAGUCBQJjcAUCY3EFA25pbAMJAGYCBQJjcQAABAJjcwkA/AcEBQJiVgIId2l0aGRyYXcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY28FAmNxBQNuaWwDCQAAAgUCY3MFAmNzBAJiWAUCY3MDCQABAgUCYlgCA0ludAQCY3QFAmJYBAJjaAkAZQIFAmNjBQJjdAQCY2kJAGUCCQBlAgUCY2QFAmNxBQJjcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAQUCYXIFAmNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXMBBQJjYgUCY2kJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY2wFAmNyCQECYmgBBQJjYgUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY3UBAmFyCQD8BwQFAmFWAhpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQkAzAgCCQClCAEFBHRoaXMJAMwIAgUCYXIFA25pbAUDbmlsAQJjdgcCY3cCYXICY2ICY3gCYlYCY2sCY2wEAmNjCQECYXQBBQJhcgMJAAACBQJjYwUCY2MEAmNkCQECYXUBBQJjYgMJAAACBQJjZAUCY2QEAmN5BAJiWAkBAmJoAQUCYXIDCQABAgUCYlgCCkJ5dGVWZWN0b3IEAmN6BQJiWAkA8AcCBQR0aGlzBQJjegMJAAECBQJiWAIEVW5pdAQCY0EFAmJYCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkAAgECC01hdGNoIGVycm9yAwkAAAIFAmN5BQJjeQQCY0IJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAGQCBQJjeQUCY2MFAmN4BQNuaWwEAmNDCQBrAwUCY3cFAmNCAGQEAmNECQBlAgUCY2MFAmNDAwkAAAIFAmNEAAAFA25pbAMJAGYCAAAFAmNEBAJjRQkBAS0BBQJjRAkBAmJaBAUCYXIFAmNFBQJjYgUCYlYEAmNGBQJjRAkBAmNqBgUCYXIFAmNGBQJjYgUCYlYFAmNrBQJjbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY0cBAmFyBAJiWAkBAmN1AQUCYXIDCQABAgUCYlgCMChCb29sZWFuLCBJbnQsIEludCwgU3RyaW5nLCBTdHJpbmcsIEludCwgU3RyaW5nKQQCY0gFAmJYBAJjSQUCY0gEAmNKCAUCY0kCXzEEAmNLCAUCY0kCXzIEAmN4CAUCY0kCXzMEAmNMCAUCY0kCXzQEAmNNCAUCY0kCXzUEAmNrCAUCY0kCXzYEAmNOCAUCY0kCXzcDBQJjSgkBAmN2BwUCY0sFAmFyBQJjTQUCY3gJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNMBQJjawkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY04FA25pbAkBAmFTAQkArAICCQCsAgICAVsFAmFyAhFdIFJlYmFsYW5jZSBlcnJvcgECY08CAmFyAmNQBAJiWAkBAmN1AQUCYXIDCQABAgUCYlgCMChCb29sZWFuLCBJbnQsIEludCwgU3RyaW5nLCBTdHJpbmcsIEludCwgU3RyaW5nKQQCY0gFAmJYBAJjUQUCY0gEAmNKCAUCY1ECXzEEAmNLCAUCY1ECXzIEAmN4CAUCY1ECXzMEAmNMCAUCY1ECXzQEAmNNCAUCY1ECXzUEAmNrCAUCY1ECXzYEAmNOCAUCY1ECXzcDBQJjSgQCY1IJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAGUCCQECYk4BBQJhcgUCY1AFAmN4BQNuaWwDCQAAAgUCY1IFAmNSBAJjaAkAawMFAmNLBQJjUgBkAwkAAAIFAmNoBQJjaAQCY1MJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAQJhdAEFAmFyBQJjaAUDbmlsAwkAAAIFAmNTBQJjUwkBAmNqBgUCYXIFAmNTBQJjTQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0wFAmNrCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQECYVMBCQCsAgIJAKwCAgIBWwUCYXICH10gZ2V0V2l0aGRyYXdBc3NldFN0YXRlKCkgZXJyb3IBAmNUBAJjVQJjVgJjVwJjWAQCY1kJAQFEAgUCY1cFAmNVBAJjWgkBAUQCBQJjWAUCY1YJAQJiUQIFAmNaBQJjWQECZGEDAmNXAmNYAmRiBAJkYwkBAmJlAAQCZGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdAQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdQQCZGYJAQJjVAQFAmRkBQJkZQUCY1cFAmNYBAJiUwkBAUQCBQJjVwUCZGQEAmJSCQEBRAIFAmNYBQJkZQQCZGcJAQFEAgUCZGIFAWIEAmRoCQECYlECBQJiUwUCZGcEAmRpCQECYlECBQJiUgUCZGcJAMwIAgUCZGYJAMwIAgUCZGgJAMwIAgUCZGkFA25pbAECZGoDAmNXAmNYAmRiBAJkawkBAmRhAwUCY1cFAmNYBQJkYgkAzAgCCQEBSAIJAJEDAgUCZGsAAAUBYgkAzAgCCQEBSAIJAJEDAgUCZGsAAQUBYgkAzAgCCQEBSAIJAJEDAgUCZGsAAgUBYgUDbmlsAQJkbAQCZG0CZG4CZG8CYWIEAmRjCQECYmUABAJkcAkAkQMCBQJkYwUBcQQCZHEJAJEDAgUCZGMFAXIEAmRyCQCRAwIFAmRjBQFzBAJjVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF0BAJjVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF1BAJkcwkAkQMCBQJkYwUBcAQCZHQICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJkcAkArAICCQCsAgICBkFzc2V0IAUCZHACDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5AwkBAiE9AgUCZHAFAmRuCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuBAJkdQkBAmJOAQUCZHEEAmR2CQEBRAIFAmR1BQJjVQQCZHcJAQJiTgEFAmRyBAJkeAkBAUQCBQJkdwUCY1YEAmR5CQECYlECBQJkeAUCZHYEAmR6CQEBSAIFAmR5BQFiBAJkQQkBAUQCBQJkbwUBYgQCZEIJAQFEAgUCZHQFAWIEAmRDCQC8AgMFAmR2BQJkQQUCZEIEAmRECQC8AgMFAmR4BQJkQQUCZEIEAmRFCQEBSwMFAmRDBQJjVQUFRkxPT1IEAmRGCQEBSwMFAmREBQJjVgUFRkxPT1IEAmRHCQECY08CBQJkcQUCZEUDCQAAAgUCZEcFAmRHBAJkSAkBAmNPAgUCZHIFAmRGAwkAAAIFAmRIBQJkSAQCZEkDCQAAAgUCZG0CAAUDbmlsCQDOCAIJAM4IAgUCZEcFAmRICQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJkRQMJAAACBQJkcQIFV0FWRVMFBHVuaXQJANkEAQUCZHEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmRGAwkAAAIFAmRyAgVXQVZFUwUEdW5pdAkA2QQBBQJkcgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEFAmFiBQJkbQkBAmJKBgUCZEUFAmRGBQJkbwUCZHoFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZHoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHoFA25pbAkAnAoKBQJkRQUCZEYFAmRxBQJkcgUCZHUFAmR3BQJkdAUCZHkFAmRzBQJkSQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZEoJAmRtAmRLAmRMAmRNAmROAmRPAmFiAmRQAmRRBAJkYwkBAmJlAAQCZHAJANkEAQkAkQMCBQJkYwUBcQQCZFIJAJEDAgUCZGMFAXIEAmRTCQCRAwIFAmRjBQFzBAJkVAkAkQMCBQJkYwUBdgQCZFUJAJEDAgUCZGMFAXcEAmRkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAXQEAmRlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAXUEAmRzCQCRAwIFAmRjBQFwBAJkdAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkcAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkcAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRWCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmRNCQDZBAECBVdBVkVTBAJkVwkA2AQBCQELdmFsdWVPckVsc2UCBQJkTwkA2QQBAgVXQVZFUwMDCQECIT0CBQJkUgUCZFYGCQECIT0CBQJkUwUCZFcJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJkdQMFAmRQCQECYk4BBQJkUgkAZQIJAQJiTgEFAmRSBQJkTAQCZHcDBQJkUAkBAmJOAQUCZFMJAGUCCQECYk4BBQJkUwUCZE4EAmRYCQEBRAIFAmRMBQJkZAQCZFkJAQFEAgUCZE4FAmRlBAJkWgkBAmJRAgUCZFkFAmRYBAJkdgkBAUQCBQJkdQUCZGQEAmR4CQEBRAIFAmR3BQJkZQQCZWEDCQAAAgUCZHQAAAQCZHkFAWUEAmViBQFlBAJkZwkAdgYJALkCAgUCZFgFAmRZAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBSAIFAmRnBQFiCQEBSAIFAmRYBQJkZAkBAUgCBQJkWQUCZGUJAQJiUQIJALcCAgUCZHgFAmRZCQC3AgIFAmR2BQJkWAUCZWIEAmR5CQECYlECBQJkeAUCZHYEAmViCQC8AgMJAQFSAQkAuAICBQJkeQUCZFoFAWQFAmR5BAJlYwkBAUQCBQJkSwUBYgMDCQECIT0CBQJkeQUBZQkAvwICBQJlYgUCZWMHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmViAh4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCZWMEAmRCCQEBRAIFAmR0BQFiBAJlZAkAvQIEBQJkWAkBAmJUAwUCZHgFAmR2BQdDRUlMSU5HBQFkBQdDRUlMSU5HBAJlZQkAvQIEBQJkWQUBZAkBAmJUAwUCZHgFAmR2BQVGTE9PUgUHQ0VJTElORwQCZWYDCQC/AgIFAmVkBQJkWQkAlAoCBQJlZQUCZFkJAJQKAgUCZFgFAmVkBAJlZwgFAmVmAl8xBAJlaAgFAmVmAl8yBAJkZwkAvQIEBQJkQgUCZWgFAmR4BQVGTE9PUgkAlwoFCQEBSwMFAmRnBQFiBQVGTE9PUgkBAUsDBQJlZwUCZGQFB0NFSUxJTkcJAQFLAwUCZWgFAmRlBQdDRUlMSU5HBQJkeQUCZWIEAmVpCAUCZWECXzEEAmVqCAUCZWECXzIEAmVrCAUCZWECXzMEAmR6CQEBSAIIBQJlYQJfNAUBYgQCZWwJAQFIAggFAmVhAl81BQFiAwkAZwIAAAUCZWkJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmVtAwkBASEBBQJkUQAABQJlaQQCZW4JAGUCBQJkTAUCZWoEAmVvCQBlAgUCZE4FAmVrBAJlcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJkegkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkegkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECBQJhYgUCZG0JAQJieQoFAmVqBQJlawUCZW0FAmR6BQJkSwUCZWwFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVuBQJlbwUDbmlsCQCfCg0FAmVpBQJlbQUCZHoFAmR1BQJkdwUCZHQFAmRwBQJkcwUCZXAFAmVuBQJlbwUCZE0FAmRPAQJlcQMCZXICZXMCZHQEAmV0CQEBRwIFAmVyCQC2AgEFAmJ0BAJldQkBAUcCBQJlcwkAtgIBBQJidQQCZXYJALwCAwkAdgYJALkCAgUCZXQFAmV1AAAJALYCAQAFAAEAEgUERE9XTgUBZwUCZHQDCQAAAgUCZHQFAWYFAWYFAmV2AQJldwMCZXgCZXkCZXoEAmVBCQC4AgIJALYCAQkBAmJOAQkBAmJqAQUCYnIFAmV4BAJlQgkAuAICCQC2AgEJAQJiTgEJAQJiagEFAmJzBQJleQQCZUMJALgCAgkAtgIBCAkBBXZhbHVlAQkA7AcBBQJicQhxdWFudGl0eQUCZXoEAmVECQECZXEDBQJlQQUCZUIFAmVDBQJlRAECZUUDAmVGAmVHAmV6BAJlQQkAZAIJAQJiTgEJAQJiagEFAmJyBQJlRgQCZUIJAGQCCQECYk4BCQECYmoBBQJicwUCZUcEAmVDCQBkAggJAQV2YWx1ZQEJAOwHAQUCYnEIcXVhbnRpdHkFAmV6BAJldgkBAmVxAwkAtgIBBQJlQQkAtgIBBQJlQgkAtgIBBQJlQwQCZUgJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFrBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWoJAKYDAQUCZXYFA25pbAkAlAoCBQJlSAUCZXYBAmVJAgJlSgJldgMJAMACAgUCZXYFAmVKBgkBAmFTAQkAuQkCCQDMCAICInVwZGF0ZWQgS0xwIGxvd2VyIHRoYW4gY3VycmVudCBLTHAJAMwIAgkApgMBBQJlSgkAzAgCCQCmAwEFAmV2BQNuaWwCASABAmVLAQJlTAQCZUEJAQJiTgEJAQJiagEFAmJyBAJlQgkBAmJOAQkBAmJqAQUCYnMEAmVNCAUCZUwGYW1vdW50BAJlTgkAbgQIBQJlTAZhbW91bnQIBQJlTAVwcmljZQUBYgUFRkxPT1IEAmVPAwkAAAIIBQJlTAlvcmRlclR5cGUFA0J1eQkAlAoCBQJlTQkBAS0BBQJlTgkAlAoCCQEBLQEFAmVNBQJlTgQCZUYIBQJlTwJfMQQCZUcIBQJlTwJfMgMDAwkBAmJjAAYJAAACBQJicAUBbQYJAAACBQJicAUBbgkAAgECHEV4Y2hhbmdlIG9wZXJhdGlvbnMgZGlzYWJsZWQDAwkBAiE9AggIBQJlTAlhc3NldFBhaXILYW1vdW50QXNzZXQFAmJyBgkBAiE9AggIBQJlTAlhc3NldFBhaXIKcHJpY2VBc3NldAUCYnMJAAIBAhNXcm9uZyBvcmRlciBhc3NldHMuBAJlUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYWoCATAJAQJhVQECC2ludmFsaWQga0xwBAJlUQkBAmVFAwUCZUYFAmVHAAAEAmVSCAUCZVECXzEEAmVTCAUCZVECXzIEAmVUCQDAAgIFAmVTBQJlUAQCZVUJALkJAgkAzAgCAgRrTHA9CQDMCAIJAKYDAQUCZVAJAMwIAgIIIGtMcE5ldz0JAMwIAgkApgMBBQJlUwkAzAgCAhQgYW1vdW50QXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVBCQDMCAICEyBwcmljZUFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJlQgkAzAgCAhkgYW1vdW50QXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZUYJAMwIAgIYIHByaWNlQXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZUcJAMwIAgIIIGhlaWdodD0JAMwIAgkApAMBBQZoZWlnaHQFA25pbAIACQCUCgIFAmVUBQJlVQECZVYBAmVXAwkBAiE9AgkAkAMBCAUCZVcIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJlWAkBBXZhbHVlAQkAkQMCCAUCZVcIcGF5bWVudHMAAAQCZG4JAQV2YWx1ZQEIBQJlWAdhc3NldElkBAJlWQgFAmVYBmFtb3VudAQCZWEJAQJkbAQJANgEAQgFAmVXDXRyYW5zYWN0aW9uSWQJANgEAQUCZG4FAmVZCAUCZVcGY2FsbGVyBAJkRQgFAmVhAl8xBAJkRggFAmVhAl8yBAJkcwkBDXBhcnNlSW50VmFsdWUBCAUCZWECXzkEAmRJCAUCZWEDXzEwAwMJAQJiYwAGCQAAAgUCZHMFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRzCQCXCgUFAmRFBQJkRgUCZVkFAmRuBQJkSQECZVoDAmVXAmRLAmRRAwkBAiE9AgkAkAMBCAUCZVcIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmZhCQEFdmFsdWUBCQCRAwIIBQJlVwhwYXltZW50cwAABAJmYgkBBXZhbHVlAQkAkQMCCAUCZVcIcGF5bWVudHMAAQQCZmMJAQJkSgkJANgEAQgFAmVXDXRyYW5zYWN0aW9uSWQFAmRLCAUCZmEGYW1vdW50CAUCZmEHYXNzZXRJZAgFAmZiBmFtb3VudAgFAmZiB2Fzc2V0SWQJAKUIAQgFAmVXBmNhbGxlcgcFAmRRBAJkcwkBDXBhcnNlSW50VmFsdWUBCAUCZmMCXzgDAwMJAQJiYwAGCQAAAgUCZHMFAWwGCQAAAgUCZHMFAW4JAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRzBQJmYwECZmQBAmNhBAJmZQkA/AcEBQJhVgIEZW1pdAkAzAgCBQJjYQUDbmlsBQNuaWwDCQAAAgUCZmUFAmZlBAJmZgQCYlgFAmZlAwkAAQIFAmJYAgdBZGRyZXNzBAJmZwUCYlgJAPwHBAUCZmcCBGVtaXQJAMwIAgUCY2EFA25pbAUDbmlsBQR1bml0AwkAAAIFAmZmBQJmZgUCY2EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZoAgJjYQJhaQQCZmkDCQAAAgUCYWkAAAAACQBrAwUCY2EFAmFpBQFiCQCUCgIJAGUCBQJjYQUCZmkFAmZpAQJmagQCZmsCZmwCYWICYWMEAmZtCQAAAgUCYWMFBHVuaXQEAmZuCQECYk4BCQECYmoBBQJicgQCZm8JAQJiTgEJAQJiagEFAmJzBAJmcAMJAAACBQJmbAUCYnIGAwkAAAIFAmZsBQJicwcJAQJhUwECDWludmFsaWQgYXNzZXQEAmZxAwUCZm0JAJQKAgUCZm4FAmZvAwUCZnAJAJQKAgkAZQIFAmZuBQJmawUCZm8JAJQKAgUCZm4JAGUCBQJmbwUCZmsEAmZyCAUCZnECXzEEAmZzCAUCZnECXzIEAmZ0AwUCZnAJAJQKAgUCZmsAAAkAlAoCAAAFAmZrBAJmdQgFAmZ0Al8xBAJmdggFAmZ0Al8yBAJlTQgJAQJmaAIFAmZ1BQJhWAJfMQQCZU4ICQECZmgCBQJmdgUCYVgCXzEEAmZ3CQECZmgCBQJmawUCYVgEAmZ4CAUCZncCXzEEAmZpCAUCZncCXzIEAmZ5CQBkAgUCZnIFAmVNBAJmegkAZAIFAmZzBQJlTgQCZkEJAQJiUQIJAQFEAgUCZnoFAmJ1CQEBRAIFAmZ5BQJidAQCZkIJAQFIAgUCZkEFAWIEAmZDAwUCZnAFAmZyBQJmcwQCZkQJALYCAQUCZkMEAmZFCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYnEJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYnECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmRgMJAL8CAgUCZkUFAWYGCQECYVMBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmZGBQJmRgQCZkcJALYCAQUCZngEAmZICQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmZFCQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFkCQC6AgIJALkCAgUCZkcFAWQFAmZEABIAEgUERE9XTgUBZAUBZAUDbmlsBAJlcAMFAmZtBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZkIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZkIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgkApQgBCQEFdmFsdWUBBQJhYgkA2AQBCQEFdmFsdWUBBQJhYwkBAmJ5CgUCZnUFAmZ2BQJmSAUCZkIAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJmSQkBAmJRAgkBAUQCBQJmcwUCYnUJAQFEAgUCZnIFAmJ0BAJmSgkBAUgCBQJmSQUBYgQCZksEAmZMAwUCZnAJAJQKAgUCZnUFAmZyCQCUCgIFAmZ2BQJmcwQCY2EIBQJmTAJfMQQCZk0IBQJmTAJfMgQCZk4JAKADAQkAvAIDBQJmRQkAtgIBCQBpAgUCY2EAAgkAtgIBBQJmTQkAawMJAGUCBQJmSAUCZk4FAWIFAmZOCQCXCgUFAmZIBQJlcAUCZmkFAmZLBQJmcAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZk8FAmZQAmZ4AmZsAmFiAmFjBAJmbQkAAAIFAmFjBQR1bml0BAJkYwkBAmJlAAQCZGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdAQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdQQCZlEJAMwIAgMJAAACBQJmbAUCYnEGCQECYVMBAhBpbnZhbGlkIGxwIGFzc2V0BQNuaWwDCQAAAgUCZlEFAmZRBAJmUgMJAAACBQJmUAUCYnIGAwkAAAIFAmZQBQJicwcJAQJhUwECDWludmFsaWQgYXNzZXQEAmZTAwUCZlIJALYCAQkBAmJOAQkBAmJqAQUCYnIJALYCAQkBAmJOAQkBAmJqAQUCYnMEAmZUAwUCZlIFAmRkBQJkZQQCZlUJAQJiTgEJAQJiagEFAmJyBAJmVgkBAmJOAQkBAmJqAQUCYnMEAmZXAwUCZlIFAmZVBQJmVgQCZlgJALYCAQUCZlcEAmZFCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYnEJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYnECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmWQkAtgIBBQJmeAQCZloJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZlMJALgCAgUBZAkAdgYJALgCAgUBZAkAugICCQC5AgIFAmZZBQFkBQJmRQASBQFoAAAAEgUERE9XTgUBZAUDbmlsBAJnYQkBAmZoAgUCZloFAmFaBAJnYggFAmdhAl8xBAJmaQgFAmdhAl8yBAJnYwMFAmZSCQCWCgQFAmdiAAAJAGUCBQJmVQUCZloFAmZWCQCWCgQAAAUCZ2IFAmZVCQBlAgUCZlYFAmZaBAJnZAgFAmdjAl8xBAJnZQgFAmdjAl8yBAJnZggFAmdjAl8zBAJnZwgFAmdjAl80BAJmQQkBAmJRAgkBAUQCBQJnZwUCYnUJAQFEAgUCZ2YFAmJ0BAJmQgkBAUgCBQJmQQUBYgQCZXADBQJmbQUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIJAKUIAQkBBXZhbHVlAQUCYWIJANgEAQkBBXZhbHVlAQUCYWMJAQJiSgYFAmdkBQJnZQUCZngFAmZCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmZCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZCBQNuaWwEAmZJCQECYlECCQEBRAIFAmZWBQJidQkBAUQCBQJmVQUCYnQEAmZKCQEBSAIFAmZJBQFiBAJmSwQCZ2gJAGgCCQCgAwEJALwCAwUCZlMFAmZZBQJmRQACCQBrAwkAZQIFAmdiBQJnaAUBYgUCZ2gJAJcKBQUCZ2IFAmVwBQJmaQUCZksFAmZSCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJnaQAEAmJYCQCiCAEJAQFVAAMJAAECBQJiWAIGU3RyaW5nBAJnagUCYlgJANkEAQUCZ2oDCQABAgUCYlgCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZ2sABAJiWAkAoggBCQEBVgADCQABAgUCYlgCBlN0cmluZwQCZ2oFAmJYCQDZBAEFAmdqAwkAAQIFAmJYAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmdsAQJlVwQCYlgJAQJnaQADCQABAgUCYlgCCkJ5dGVWZWN0b3IEAmdtBQJiWAkAAAIIBQJlVw9jYWxsZXJQdWJsaWNLZXkFAmdtAwkAAQIFAmJYAgRVbml0CQAAAggFAmVXBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJnbgECZVcEAmdvCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmJYCQECZ2kAAwkAAQIFAmJYAgpCeXRlVmVjdG9yBAJnbQUCYlgDCQAAAggFAmVXD2NhbGxlclB1YmxpY0tleQUCZ20GBQJnbwMJAAECBQJiWAIEVW5pdAMJAAACCAUCZVcGY2FsbGVyBQR0aGlzBgUCZ28JAAIBAgtNYXRjaCBlcnJvch4CZVcBCXJlYmFsYW5jZQAJAM4IAgkBAmNHAQkBAmFPAgUEdGhpcwkBAmFlAAkBAmNHAQkBAmFPAgUEdGhpcwkBAmFmAAJlVwEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJncAJncQJncgQCZ3MDCQAAAgUCZ3EHBAJndAkBAmFPAgUEdGhpcwkBAmFmAAQCZ3UJAQJhTwIFBHRoaXMJAQJhZQAJAJQKAgUCZ3QFAmd1BAJndAkBAmFPAgUEdGhpcwkBAmFlAAQCZ3UJAQJhTwIFBHRoaXMJAQJhZgAJAJQKAgUCZ3QFAmd1BAJndAgFAmdzAl8xBAJndQgFAmdzAl8yBAJndgkBAmJOAQUCZ3UEAmd3CQECYk4BBQJndAQCZ3gJAGsDBQJndwUCZ3AJAGQCBQJndgUCZ3AEAmd5CQC5AgIJALYCAQUCZ3YJALYCAQUCZ3cEAmd6CQC5AgIJALcCAgkAtwICCQC2AgEJAQJiTgEFAmd1CQC2AgEFAmdwCQC2AgEFAmdyCQC4AgIJALYCAQkBAmJOAQUCZ3QJALYCAQUCZ3gEAmdBAwkAwAICBQJnegUCZ3kGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ0EFAmdBCQCUCgIFA25pbAUCZ3gJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBJmNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBBbmRTZW5kVG9rZW5zBQJncAJncQJnQgJnQwJncgQCZ0QKAAJhWQkA/AcEBQJhVgIXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmFZAgZTdHJpbmcFAmFZCQACAQkArAICCQADAQUCYVkCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCZlEJAMwIAgMJAGcCCAkBBXZhbHVlAQkAkQMCCAUCZVcIcGF5bWVudHMAAAZhbW91bnQFAmdwBgkBAmFTAQIMV3JvbmcgYW1vdW50CQDMCAIDCQAAAggFAmVXBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0QGCQECYVMBAhFQZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFAmZRBQJmUQQCZVgJAQV2YWx1ZQEJAJEDAggFAmVXCHBheW1lbnRzAAAEAmd1CQECYmoBCAUCZVgHYXNzZXRJZAQCZ3QDCQAAAgUCZ3EHCQECYU8CBQR0aGlzCQECYWYACQECYU8CBQR0aGlzCQECYWUABAJndgkAZQIJAQJiTgEFAmd1CAkBBXZhbHVlAQkAkQMCCAUCZVcIcGF5bWVudHMAAAZhbW91bnQEAmd3CQECYk4BBQJndAQCZ3gJAGsDBQJndwUCZ3AJAGQCBQJndgUCZ3AEAmd5CQC5AgIJALYCAQUCZ3YJALYCAQUCZ3cEAmd6CQC5AgIJALcCAgkAtgIBCQECYk4BBQJndQkAtgIBBQJncgkAuAICCQC2AgEJAQJiTgEFAmd0CQC2AgEFAmd4BAJnQQMJAMACAgUCZ3oFAmd5BgkAAgECFG5ldyBLIGlzIGZld2VyIGVycm9yAwkAAAIFAmdBBQJnQQQCZ0UDCQBnAgUCZ3gFAmdCBgkAAgECLEV4Y2hhbmdlIHJlc3VsdCBpcyBmZXdlciBjb2lucyB0aGFuIGV4cGVjdGVkAwkAAAIFAmdFBQJnRQQCZ0YJAQJjTwIFAmd0BQJneAMJAAACBQJnRgUCZ0YJAJQKAgkAzggCBQJnRgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnQwUCZ3gJAQJiaAEFAmd0BQNuaWwFAmd4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVXAQpzZXRNYW5hZ2VyAQJnRwQCZ0gJAQJnbgEFAmVXAwkAAAIFAmdIBQJnSAQCZ0kJANkEAQUCZ0cDCQAAAgUCZ0kFAmdJCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAAUCZ0cFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVwEOY29uZmlybU1hbmFnZXIABAJnSgkBAmdrAAQCZ0sDCQEJaXNEZWZpbmVkAQUCZ0oGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdLBQJnSwQCZ0wDCQAAAggFAmVXD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZ0oGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdMBQJnTAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVQAJANgEAQkBBXZhbHVlAQUCZ0oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVYABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBA3B1dAICZEsCZ00DCQBmAgAABQJkSwkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJmYwkBAmVaAwUCZVcFAmRLBgQCZW0IBQJmYwJfMgQCZHAIBQJmYwJfNwQCZEkIBQJmYwJfOQQCZW4IBQJmYwNfMTAEAmVvCAUCZmMDXzExBAJnTggFAmZjA18xMgQCZ08IBQJmYwNfMTMEAmZhCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlVwhwYXltZW50cwAABmFtb3VudAQCZmIJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVXCHBheW1lbnRzAAEGYW1vdW50BAJlRAkBAmV3AwUCZmEFAmZiCQC2AgEAAAMJAAACBQJlRAUCZUQEAmZlCQD8BwQFAmFWAgRlbWl0CQDMCAIFAmVtBQNuaWwFA25pbAMJAAACBQJmZQUCZmUEAmZmBAJiWAUCZmUDCQABAgUCYlgCB0FkZHJlc3MEAmZnBQJiWAkA/AcEBQJmZwIEZW1pdAkAzAgCBQJlbQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmYFAmZmBAJnUAMJAGYCBQJlbgAACQD8BwQFAmJ4AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ04FAmVuBQNuaWwFA25pbAMJAAACBQJnUAUCZ1AEAmdRAwkAZgIFAmVvAAAJAPwHBAUCYngCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnTwUCZW8FA25pbAUDbmlsAwkAAAIFAmdRBQJnUQQCZ1IDBQJnTQQCZ1MJAPwHBAUCYncCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRwBQJlbQUDbmlsAwkAAAIFAmdTBQJnUwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlVwZjYWxsZXIFAmVtBQJkcAUDbmlsBAJnVAkBAmVFAwAAAAAAAAMJAAACBQJnVAUCZ1QEAmV2CAUCZ1QCXzIEAmdVCAUCZ1QCXzEEAmdWCQECZUkCBQJlRAUCZXYDCQAAAgUCZ1YFAmdWBAJnVwkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmdXBQJnVwkAzggCCQDOCAIFAmRJBQJnUgUCZ1UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBCnB1dEZvckZyZWUBAmdYAwkAZgIAAAUCZ1gJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZmMJAQJlWgMFAmVXBQJnWAcEAmRJCAUCZmMCXzkEAmZhCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlVwhwYXltZW50cwAABmFtb3VudAQCZmIJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVXCHBheW1lbnRzAAEGYW1vdW50BAJlRAkBAmV3AwUCZmEFAmZiCQC2AgEAAAMJAAACBQJlRAUCZUQEAmdZCQECZUUDAAAAAAAABAJnVQgFAmdZAl8xBAJldggFAmdZAl8yBAJnVgkBAmVJAgUCZUQFAmV2AwkAAAIFAmdWBQJnVgkAzggCBQJkSQUCZ1UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBCXB1dE9uZVRrbgICZ1oCaGEEAmhiCgACYVkJAPwHBAUCYVYCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhWQIHQm9vbGVhbgUCYVkJAAIBCQCsAgIJAAMBBQJhWQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGMDAwMJAQJiYwAGCQAAAgUCYnAFAWwGCQAAAgUCYnAFAW4GBQJoYgQCZlEJAMwIAgMDCQEBIQEFAmhjBgkBAmdsAQUCZVcGCQECYVMBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlVwhwYXltZW50cwABBgkBAmFTAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlEFAmZRBAJoZAkAkQMCCAUCZVcIcGF5bWVudHMAAAQCZmwIBQJoZAdhc3NldElkBAJmawgFAmhkBmFtb3VudAQCZUQDCQAAAgUCZmwFAmJyCQECZXcDCQC2AgEFAmZrCQC2AgEAAAkAtgIBAAADCQAAAgUCZmwFAmJzCQECZXcDCQC2AgEAAAkAtgIBBQJmawkAtgIBAAAJAQJhUwECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJlRAUCZUQEAmFiCAUCZVcGY2FsbGVyBAJhYwgFAmVXDXRyYW5zYWN0aW9uSWQEAmhlCQECZmoEBQJmawUCZmwFAmFiBQJhYwMJAAACBQJoZQUCaGUEAmZwCAUCaGUCXzUEAmhmCAUCaGUCXzQEAmZpCAUCaGUCXzMEAmVwCAUCaGUCXzIEAmhnCAUCaGUCXzEEAmhoAwMJAGYCBQJnWgAACQBmAgUCZ1oFAmhnBwkBAmFTAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnWgUDbmlsAgAFAmhnBAJmZQkBAmZkAQUCaGgDCQAAAgUCZmUFAmZlBAJnUgMFAmhhBAJoaQkA/AcEBQJidwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYnEFAmhoBQNuaWwDCQAAAgUCaGkFAmhpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVXBmNhbGxlcgUCaGgFAmJxBQNuaWwEAmhqAwkAZgIFAmZpAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVcFAmZpBQJmbAUDbmlsBQNuaWwEAmhrAwkAAAIFBHRoaXMFAmFXCQCUCgIAAAAAAwUCZnAJAJQKAgkBAS0BBQJmaQAACQCUCgIAAAkBAS0BBQJmaQQCZUYIBQJoawJfMQQCZUcIBQJoawJfMgQCaGwJAQJlRQMFAmVGBQJlRwAABAJnVQgFAmhsAl8xBAJldggFAmhsAl8yBAJlUAkBBXZhbHVlAQkAoggBBQJhagQCZ1YJAQJlSQIFAmVEBQJldgMJAAACBQJnVgUCZ1YEAmdXCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZ1cFAmdXCQCUCgIJAM4IAgkAzggCCQDOCAIFAmVwBQJnUgUCaGoFAmdVBQJoaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVwERcHV0T25lVGtuUkVBRE9OTFkCAmZsAmZrBAJobQkBAmZqBAUCZmsJAQJiaAEFAmZsBQR1bml0BQR1bml0BAJoZwgFAmhtAl8xBAJlcAgFAmhtAl8yBAJmaQgFAmhtAl8zBAJoZggFAmhtAl80BAJmcAgFAmhtAl81CQCUCgIFA25pbAkAlQoDBQJoZwUCZmkFAmhmAmVXAQlnZXRPbmVUa24CAmhuAmdaBAJoYgoAAmFZCQD8BwQFAmFWAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCB0Jvb2xlYW4FAmFZCQACAQkArAICCQADAQUCYVkCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhvAwMJAQJiYwAGCQAAAgUCYnAFAW4GBQJoYgQCZlEJAMwIAgMDCQEBIQEFAmhvBgkBAmdsAQUCZVcGCQECYVMBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlVwhwYXltZW50cwABBgkBAmFTAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlEFAmZRBAJmUAkBAmJoAQUCaG4EAmhkCQCRAwIIBQJlVwhwYXltZW50cwAABAJmbAgFAmhkB2Fzc2V0SWQEAmZ4CAUCaGQGYW1vdW50BAJlRAkBAmV3AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlRAUCZUQEAmFiCAUCZVcGY2FsbGVyBAJhYwgFAmVXDXRyYW5zYWN0aW9uSWQEAmhwCQECZk8FBQJmUAUCZngFAmZsBQJhYgUCYWMDCQAAAgUCaHAFAmhwBAJmUggFAmhwAl81BAJoZggFAmhwAl80BAJmaQgFAmhwAl8zBAJlcAgFAmhwAl8yBAJocQgFAmhwAl8xBAJjYQMDCQBmAgUCZ1oAAAkAZgIFAmdaBQJocQcJAQJhUwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1oFA25pbAIABQJocQQCaHIJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCZngFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZmwFAmZ4BQNuaWwDCQAAAgUCaHIFAmhyBAJnRgkBAmNPAgUCaG4FAmNhAwkAAAIFAmdGBQJnRgQCaHMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmNhBQJmUAUDbmlsBAJoagMJAGYCBQJmaQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFXBQJmaQUCZlAFA25pbAUDbmlsBAJodAQCaHUDCQAAAgUEdGhpcwUCYVcAAAUCZmkDBQJmUgkAlAoCCQEBLQEJAGQCBQJjYQUCaHUAAAkAlAoCAAAJAQEtAQkAZAIFAmNhBQJodQQCZUYIBQJodAJfMQQCZUcIBQJodAJfMgQCaHYJAQJlRQMFAmVGBQJlRwAABAJnVQgFAmh2Al8xBAJldggFAmh2Al8yBAJnVgkBAmVJAgUCZUQFAmV2AwkAAAIFAmdWBQJnVgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIFAmVwBQJnRgUCaHMFAmhqBQJnVQUCY2EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBEWdldE9uZVRrblJFQURPTkxZAgJmUAJmeAQCaHcJAQJmTwUJAQJiaAEFAmZQBQJmeAUCYnEFBHVuaXQFBHVuaXQEAmhxCAUCaHcCXzEEAmVwCAUCaHcCXzIEAmZpCAUCaHcCXzMEAmhmCAUCaHcCXzQEAmZSCAUCaHcCXzUJAJQKAgUDbmlsCQCVCgMFAmhxBQJmaQUCaGYCZVcBE3Vuc3Rha2VBbmRHZXRPbmVUa24DAmh4AmhuAmdaBAJoYgoAAmFZCQD8BwQFAmFWAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCB0Jvb2xlYW4FAmFZCQACAQkArAICCQADAQUCYVkCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhvAwMJAQJiYwAGCQAAAgUCYnAFAW4GBQJoYgQCZlEJAMwIAgMDCQEBIQEFAmhvBgkBAmdsAQUCZVcGCQECYVMBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlVwhwYXltZW50cwAABgkBAmFTAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlEFAmZRBAJmUAkBAmJoAQUCaG4EAmFiCAUCZVcGY2FsbGVyBAJhYwgFAmVXDXRyYW5zYWN0aW9uSWQEAmVECQECZXcDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVEBQJlRAQCaHkJAPwHBAUCYncCB3Vuc3Rha2UJAMwIAgkA2AQBBQJicQkAzAgCBQJoeAUDbmlsBQNuaWwDCQAAAgUCaHkFAmh5BAJoegkBAmZPBQUCZlAFAmh4BQJicQUCYWIFAmFjAwkAAAIFAmh6BQJoegQCZlIIBQJoegJfNQQCaGYIBQJoegJfNAQCZmkIBQJoegJfMwQCZXAIBQJoegJfMgQCaHEIBQJoegJfMQQCY2EDAwkAZgIFAmdaAAAJAGYCBQJnWgUCaHEHCQECYVMBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmdaBQNuaWwCAAUCaHEEAmhyCQD8BwQFAmFWAgRidXJuCQDMCAIFAmh4BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJxBQJoeAUDbmlsAwkAAAIFAmhyBQJocgQCZ0YJAQJjTwIFAmhuBQJjYQMJAAACBQJnRgUCZ0YEAmhzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlVwZjYWxsZXIFAmNhBQJmUAUDbmlsBAJoagMJAGYCBQJmaQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFXBQJmaQUCZlAFA25pbAUDbmlsBAJoQQQCaHUDCQAAAgUEdGhpcwUCYVcAAAUCZmkDBQJmUgkAlAoCCQEBLQEJAGQCBQJjYQUCaHUAAAkAlAoCAAAJAQEtAQkAZAIFAmNhBQJodQQCZUYIBQJoQQJfMQQCZUcIBQJoQQJfMgQCaEIJAQJlRQMFAmVGBQJlRwAABAJnVQgFAmhCAl8xBAJldggFAmhCAl8yBAJnVgkBAmVJAgUCZUQFAmV2AwkAAAIFAmdWBQJnVgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIFAmVwBQJnRgUCaHMFAmhqBQJnVQUCY2EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBA2dldAAEAmVhCQECZVYBBQJlVwQCaEMIBQJlYQJfMQQCZEYIBQJlYQJfMgQCZVkIBQJlYQJfMwQCZG4IBQJlYQJfNAQCZEkIBQJlYQJfNQQCZUQJAQJldwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUQFAmVEBAJoRAkA/AcEBQJhVgIEYnVybgkAzAgCBQJlWQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkbgUCZVkFA25pbAMJAAACBQJoRAUCaEQEAmhFCQECZUUDCQEBLQEFAmhDCQEBLQEFAmRGAAAEAmdVCAUCaEUCXzEEAmV2CAUCaEUCXzIEAmdWCQECZUkCBQJlRAUCZXYDCQAAAgUCZ1YFAmdWCQDOCAIFAmRJBQJnVQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVwEJZ2V0Tm9MZXNzAgJoRgJoRwQCZWEJAQJlVgEFAmVXBAJkRQgFAmVhAl8xBAJkRggFAmVhAl8yBAJlWQgFAmVhAl8zBAJkbggFAmVhAl80BAJkSQgFAmVhAl81AwkAZgIFAmhGBQJkRQkAAgEJAKwCAgkArAICCQCsAgICHG5vTGVzc1RoZW5BbXRBc3NldCBmYWlsZWQ6ICAJAKQDAQUCZEUCAyA8IAkApAMBBQJoRgMJAGYCBQJoRwUCZEYJAAIBCQCsAgIJAKwCAgkArAICAh1ub0xlc3NUaGVuUHJpY2VBc3NldCBmYWlsZWQ6IAkApAMBBQJkRgIDIDwgCQCkAwEFAmhHBAJlRAkBAmV3AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlRAUCZUQEAmhECQD8BwQFAmFWAgRidXJuCQDMCAIFAmVZBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRuBQJlWQUDbmlsAwkAAAIFAmhEBQJoRAQCaEgJAQJlRQMJAQEtAQUCZEUJAQEtAQUCZEYAAAQCZ1UIBQJoSAJfMQQCZXYIBQJoSAJfMgQCZ1YJAQJlSQIFAmVEBQJldgMJAAACBQJnVgUCZ1YJAM4IAgUCZEkFAmdVCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVXAQ11bnN0YWtlQW5kR2V0AQJjYQQCaEkDCQECIT0CCQCQAwEIBQJlVwhwYXltZW50cwAACQACAQIYTm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBgMJAAACBQJoSQUCaEkEAmRjCQECYmUABAJkcAkA2QQBCQCRAwIFAmRjBQFxBAJlRAkBAmV3AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlRAUCZUQEAmh5CQD8BwQFAmJ3Agd1bnN0YWtlCQDMCAIJANgEAQUCZHAJAMwIAgUCY2EFA25pbAUDbmlsAwkAAAIFAmh5BQJoeQQCZWEJAQJkbAQJANgEAQgFAmVXDXRyYW5zYWN0aW9uSWQJANgEAQUCZHAFAmNhCAUCZVcGY2FsbGVyBAJkRQgFAmVhAl8xBAJkRggFAmVhAl8yBAJkcwkBDXBhcnNlSW50VmFsdWUBCAUCZWECXzkEAmRJCAUCZWEDXzEwBAJoSgMDCQECYmMABgkAAAIFAmRzBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJkcwYDCQAAAgUCaEoFAmhKBAJoRAkA/AcEBQJhVgIEYnVybgkAzAgCBQJjYQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkcAUCY2EFA25pbAMJAAACBQJoRAUCaEQEAmhLCQECZUUDCQEBLQEFAmRFCQEBLQEFAmRGAAAEAmdVCAUCaEsCXzEEAmV2CAUCaEsCXzIEAmdWCQECZUkCBQJlRAUCZXYDCQAAAgUCZ1YFAmdWCQDOCAIFAmRJBQJnVQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVwETdW5zdGFrZUFuZEdldE5vTGVzcwMCaHgCaEwCaEcEAmhvAwkBAmJjAAYJAAACBQJicAUBbgQCZlEJAMwIAgMJAQEhAQUCaG8GCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZVcIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmUQUCZlEEAmVECQECZXcDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVEBQJlRAQCaHkJAPwHBAUCYncCB3Vuc3Rha2UJAMwIAgkA2AQBBQJicQkAzAgCBQJoeAUDbmlsBQNuaWwDCQAAAgUCaHkFAmh5BAJlYQkBAmRsBAkA2AQBCAUCZVcNdHJhbnNhY3Rpb25JZAkA2AQBBQJicQUCaHgIBQJlVwZjYWxsZXIEAmRFCAUCZWECXzEEAmRGCAUCZWECXzIEAmRJCAUCZWEDXzEwBAJoTQkAzAgCAwkAZwIFAmRFBQJoTAYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoTAUDbmlsAgAJAMwIAgMJAGcCBQJkRgUCaEcGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoRwUDbmlsAgAFA25pbAMJAAACBQJoTQUCaE0EAmhECQD8BwQFAmFWAgRidXJuCQDMCAIFAmh4BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJxBQJoeAUDbmlsAwkAAAIFAmhEBQJoRAQCaE4JAQJlRQMJAQEtAQUCZEUJAQEtAQUCZEYAAAQCZ1UIBQJoTgJfMQQCZXYIBQJoTgJfMgQCZ1YJAQJlSQIFAmVEBQJldgMJAAACBQJnVgUCZ1YJAM4IAgUCZEkFAmdVCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVXAQhhY3RpdmF0ZQICaE8CaFADCQECIT0CCQClCAEIBQJlVwZjYWxsZXIJAKUIAQUCYVYJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWUABQJoTwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYABQJoUAUDbmlsAgdzdWNjZXNzAmVXAQpyZWZyZXNoS0xwAAQCaFEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYWsAAAQCaFIDCQBnAgkAZQIFBmhlaWdodAUCaFEFAmFuBQR1bml0CQECYVMBCQC5CQIJAMwIAgkApAMBBQJhbgkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCaFIFAmhSBAJlUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYWoCATAJAQJhVQECC2ludmFsaWQga0xwBAJoUwkBAmVFAwAAAAAAAAQCaFQIBQJoUwJfMQQCZXYIBQJoUwJfMgQCZUgDCQECIT0CBQJlUAUCZXYFAmhUCQECYVMBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZUgJAKYDAQUCZXYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVcBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmJlAAJlVwEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECYXIJAJQKAgUDbmlsCQECYk4BBQJhcgJlVwEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCY1cCY1gCZGIEAmRrCQECZGEDBQJjVwUCY1gFAmRiCQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCZGsAAAkAzAgCCQCmAwEJAJEDAgUCZGsAAQkAzAgCCQCmAwEJAJEDAgUCZGsAAgUDbmlsAmVXARR0b1gxOFdyYXBwZXJSRUFET05MWQIBRQFGCQCUCgIFA25pbAkApgMBCQEBRAIFAUUFAUYCZVcBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUkBSgkAlAoCBQNuaWwJAQFIAgkApwMBBQFJBQFKAmVXAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJSAmJTCQCUCgIFA25pbAkApgMBCQECYlECCQCnAwEFAmJSCQCnAwEFAmJTAmVXASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCZG0CZEsCZEwCZE0CZE4CZE8CYWICZFACZFEJAJQKAgUDbmlsCQECZEoJBQJkbQUCZEsFAmRMBQJkTQUCZE4FAmRPBQJhYgUCZFAFAmRRAmVXASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCZG0CZG4CZG8CYWIEAmVhCQECZGwEBQJkbQUCZG4FAmRvCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhYgkAlAoCBQNuaWwJAJwKCggFAmVhAl8xCAUCZWECXzIIBQJlYQJfMwgFAmVhAl80CAUCZWECXzUIBQJlYQJfNggFAmVhAl83CQCmAwEIBQJlYQJfOAgFAmVhAl85CAUCZWEDXzEwAmVXAQ1zdGF0c1JFQURPTkxZAAQCZGMJAQJiZQAEAmRwCQDZBAEJAJEDAgUCZGMFAXEEAmhVCQCRAwIFAmRjBQFyBAJoVgkAkQMCBQJkYwUBcwQCZFQJAJEDAgUCZGMFAXYEAmRVCQCRAwIFAmRjBQF3BAJkZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF0BAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF1BAJoVwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkcAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkcAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmhYCQECYk4BBQJoVQQCaFkJAQJiTgEFAmhWBAJoWgMJAAACBQJoVwAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJkYQMFAmhYBQJoWQUCaFcEAmR6AAAEAmlhCQEBSAIJAJEDAgUCaFoAAQUBYgQCaWIJAQFIAgkAkQMCBQJoWgACBQFiBAJpYwkBBXZhbHVlAQkAmggCBQJhVgkBAmFGAQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCaFgJAMwIAgkApAMBBQJoWQkAzAgCCQCkAwEFAmhXCQDMCAIJAKQDAQUCZHoJAMwIAgkApAMBBQJpYQkAzAgCCQCkAwEFAmliCQDMCAIJAKQDAQUCaWMFA25pbAUBagJlVwEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmRMBAJkYwkBAmJlAAQCZHAJANkEAQkAkQMCBQJkYwUBcQQCZFIJAJEDAgUCZGMFAXIEAmRxCQDZBAEFAmRSBAJkUwkAkQMCBQJkYwUBcwQCZHIJANkEAQUCZFMEAmRkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAXQEAmRlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAXUEAmRzCQCRAwIFAmRjBQFwBAJoVwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkcAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkcAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmhYCQECYk4BBQJkUgQCaFkJAQJiTgEFAmRTBAJjWQkBAUQCBQJoWAUCZGQEAmNaCQEBRAIFAmhZBQJkZQQCZHkDCQAAAgUCaFcAAAUBZQkBAmJRAgUCY1oFAmNZBAJkWAkBAUQCBQJkTAUCZGQEAmRZCQC8AgMFAmRYBQJkeQUBZAQCZE4JAQFIAgUCZFkFAmRlBAJmYwkBAmRKCQIAAKDCHgUCZEwFAmRxBQJkTgUCZHICAAYHBAJlaQgFAmZjAl8xBAJpZAgFAmZjAl8zBAJkdQgFAmZjAl80BAJkdwgFAmZjAl81BAJkdAgFAmZjAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJlaQkAzAgCCQCkAwEJAQFIAgUCZHkFAWIJAMwIAgkApAMBBQJkdQkAzAgCCQCkAwEFAmR3CQDMCAIJAKQDAQUCZHQJAMwIAgUCZHMJAMwIAgkApAMBBQJkTAkAzAgCCQCkAwEFAmROBQNuaWwFAWoCZVcBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmROBAJkYwkBAmJlAAQCZHAJANkEAQkAkQMCBQJkYwUBcQQCZFIJAJEDAgUCZGMFAXIEAmRxCQDZBAEFAmRSBAJkUwkAkQMCBQJkYwUBcwQCZHIJANkEAQUCZFMEAmRkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAXQEAmRlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAXUEAmRzCQCRAwIFAmRjBQFwBAJoVwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkcAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkcAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmllCQECYk4BBQJkUgQCaWYJAQJiTgEFAmRTBAJpZwkBAUQCBQJpZQUCZGQEAmloCQEBRAIFAmlmBQJkZQQCZHkDCQAAAgUCaFcAAAUBZQkBAmJRAgUCaWgFAmlnBAJkWQkBAUQCBQJkTgUCZGUEAmRYCQC8AgMFAmRZBQFkBQJkeQQCZEwJAQFIAgUCZFgFAmRkBAJmYwkBAmRKCQIAAKDCHgUCZEwFAmRxBQJkTgUCZHICAAYHBAJlaQgFAmZjAl8xBAJpZAgFAmZjAl8zBAJkdQgFAmZjAl80BAJkdwgFAmZjAl81BAJkdAgFAmZjAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJlaQkAzAgCCQCkAwEJAQFIAgUCZHkFAWIJAMwIAgkApAMBBQJkdQkAzAgCCQCkAwEFAmR3CQDMCAIJAKQDAQUCZHQJAMwIAgUCZHMJAMwIAgkApAMBBQJkTAkAzAgCCQCkAwEFAmROBQNuaWwFAWoCZVcBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmlpAmlqBAJlYQkBAmRsBAIABQJpaQUCaWoFBHRoaXMEAmRFCAUCZWECXzEEAmRGCAUCZWECXzIEAmR1CAUCZWECXzUEAmR3CAUCZWECXzYEAmR0CAUCZWECXzcEAmR6CAUCZWECXzgEAmRzCQENcGFyc2VJbnRWYWx1ZQEIBQJlYQJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmRFCQDMCAIJAKQDAQUCZEYJAMwIAgkApAMBBQJkdQkAzAgCCQCkAwEFAmR3CQDMCAIJAKQDAQUCZHQJAMwIAgkApgMBBQJkegkAzAgCCQCkAwEFAmRzBQNuaWwFAWoBAmlrAQJpbAAEAmltBAJiWAkBAmdpAAMJAAECBQJiWAIKQnl0ZVZlY3RvcgQCZ20FAmJYBQJnbQMJAAECBQJiWAIEVW5pdAgFAmlrD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJiWAUCaWsDCQABAgUCYlgCBU9yZGVyBAJlTAUCYlgEAmluCQECYmQABAJpbwkBAmVLAQUCZUwEAmFLCAUCaW8CXzEEAmFMCAUCaW8CXzIEAmFNCQD0AwMIBQJlTAlib2R5Qnl0ZXMJAJEDAggFAmVMBnByb29mcwAACAUCZUwPc2VuZGVyUHVibGljS2V5BAJhTgkA9AMDCAUCZUwJYm9keUJ5dGVzCQCRAwIIBQJlTAZwcm9vZnMAAQUCaW4DAwMFAmFLBQJhTQcFAmFOBwYJAQJhSgQFAmFLBQJhTAUCYU0FAmFOAwkAAQIFAmJYAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZ2oFAmJYAwkA9AMDCAUCaWsJYm9keUJ5dGVzCQCRAwIIBQJpawZwcm9vZnMAAAUCaW0GBAJpcAkA9gMBCQEFdmFsdWUBCAUCZ2oGc2NyaXB0BAJpcQkA2wQBCQEFdmFsdWUBCQCdCAIFAmFWCQECYUgABAJpcgkA8QcBBQR0aGlzAwkAAAIFAmlxBQJpcAkBAiE9AgUCaXIFAmlwBwkA9AMDCAUCaWsJYm9keUJ5dGVzCQCRAwIIBQJpawZwcm9vZnMAAAUCaW2Yt2P0", "height": 2521031, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GpaGvbTm1qfTceWoVUGx3Kg3wLdDKeXb1dhshkhQ7RJ1 Next: 4yXW7aWGGeGZgqGqA5oDcPjdUFEKJh1JUyeJPBgK8X6M Diff:
OldNewDifferences
10111011 else throw("Exchange result is fewer coins than expected")
10121012 if ((gE == gE))
10131013 then {
1014- let gF = {
1015- let bX = cu(gt)
1016- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
1017- then {
1018- let cH = bX
1019- cH
1020- }
1021- else throw("error lease config")
1022- }
1023- let gG = cO(gt, gx)
1024- if ((gG == gG))
1025- then $Tuple2((gG ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
1014+ let gF = cO(gt, gx)
1015+ if ((gF == gF))
1016+ then $Tuple2((gF ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
10261017 else throw("Strict value is not equal to itself.")
10271018 }
10281019 else throw("Strict value is not equal to itself.")
10351026
10361027
10371028 @Callable(eW)
1038-func setManager (gH) = {
1039- let gI = gn(eW)
1040- if ((gI == gI))
1029+func setManager (gG) = {
1030+ let gH = gn(eW)
1031+ if ((gH == gH))
10411032 then {
1042- let gJ = fromBase58String(gH)
1043- if ((gJ == gJ))
1044- then [StringEntry(V(), gH)]
1033+ let gI = fromBase58String(gG)
1034+ if ((gI == gI))
1035+ then [StringEntry(V(), gG)]
10451036 else throw("Strict value is not equal to itself.")
10461037 }
10471038 else throw("Strict value is not equal to itself.")
10511042
10521043 @Callable(eW)
10531044 func confirmManager () = {
1054- let gK = gk()
1055- let gL = if (isDefined(gK))
1045+ let gJ = gk()
1046+ let gK = if (isDefined(gJ))
10561047 then true
10571048 else throw("No pending manager")
1058- if ((gL == gL))
1049+ if ((gK == gK))
10591050 then {
1060- let gM = if ((eW.callerPublicKey == value(gK)))
1051+ let gL = if ((eW.callerPublicKey == value(gJ)))
10611052 then true
10621053 else throw("You are not pending manager")
1063- if ((gM == gM))
1064- then [StringEntry(U(), toBase58String(value(gK))), DeleteEntry(V())]
1054+ if ((gL == gL))
1055+ then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
10651056 else throw("Strict value is not equal to itself.")
10661057 }
10671058 else throw("Strict value is not equal to itself.")
10701061
10711062
10721063 @Callable(eW)
1073-func put (dK,gN) = if ((0 > dK))
1064+func put (dK,gM) = if ((0 > dK))
10741065 then throw("Invalid slippageTolerance passed")
10751066 else {
10761067 let fc = eZ(eW, dK, true)
10791070 let dI = fc._9
10801071 let en = fc._10
10811072 let eo = fc._11
1082- let gO = fc._12
1083- let gP = fc._13
1073+ let gN = fc._12
1074+ let gO = fc._13
10841075 let fa = toBigInt(value(eW.payments[0]).amount)
10851076 let fb = toBigInt(value(eW.payments[1]).amount)
10861077 let eD = ew(fa, fb, toBigInt(0))
11001091 }
11011092 if ((ff == ff))
11021093 then {
1103- let gQ = if ((en > 0))
1104- then invoke(bx, "put", nil, [AttachedPayment(gO, en)])
1094+ let gP = if ((en > 0))
1095+ then invoke(bx, "put", nil, [AttachedPayment(gN, en)])
11051096 else nil
1106- if ((gQ == gQ))
1097+ if ((gP == gP))
11071098 then {
1108- let gR = if ((eo > 0))
1109- then invoke(bx, "put", nil, [AttachedPayment(gP, eo)])
1099+ let gQ = if ((eo > 0))
1100+ then invoke(bx, "put", nil, [AttachedPayment(gO, eo)])
11101101 else nil
1111- if ((gR == gR))
1102+ if ((gQ == gQ))
11121103 then {
1113- let gS = if (gN)
1104+ let gR = if (gM)
11141105 then {
1115- let gT = invoke(bw, "stake", nil, [AttachedPayment(dp, em)])
1116- if ((gT == gT))
1106+ let gS = invoke(bw, "stake", nil, [AttachedPayment(dp, em)])
1107+ if ((gS == gS))
11171108 then nil
11181109 else throw("Strict value is not equal to itself.")
11191110 }
11201111 else [ScriptTransfer(eW.caller, em, dp)]
1121- let gU = eE(0, 0, 0)
1122- if ((gU == gU))
1112+ let gT = eE(0, 0, 0)
1113+ if ((gT == gT))
11231114 then {
1124- let ev = gU._2
1125- let gV = gU._1
1126- let gW = eI(eD, ev)
1127- if ((gW == gW))
1115+ let ev = gT._2
1116+ let gU = gT._1
1117+ let gV = eI(eD, ev)
1118+ if ((gV == gV))
11281119 then {
1129- let gX = invoke(this, "rebalance", nil, nil)
1130- if ((gX == gX))
1131- then ((dI ++ gS) ++ gV)
1120+ let gW = invoke(this, "rebalance", nil, nil)
1121+ if ((gW == gW))
1122+ then ((dI ++ gR) ++ gU)
11321123 else throw("Strict value is not equal to itself.")
11331124 }
11341125 else throw("Strict value is not equal to itself.")
11491140
11501141
11511142 @Callable(eW)
1152-func putForFree (gY) = if ((0 > gY))
1143+func putForFree (gX) = if ((0 > gX))
11531144 then throw("Invalid value passed")
11541145 else {
1155- let fc = eZ(eW, gY, false)
1146+ let fc = eZ(eW, gX, false)
11561147 let dI = fc._9
11571148 let fa = toBigInt(value(eW.payments[0]).amount)
11581149 let fb = toBigInt(value(eW.payments[1]).amount)
11591150 let eD = ew(fa, fb, toBigInt(0))
11601151 if ((eD == eD))
11611152 then {
1162- let gZ = eE(0, 0, 0)
1163- let gV = gZ._1
1164- let ev = gZ._2
1165- let gW = eI(eD, ev)
1166- if ((gW == gW))
1167- then (dI ++ gV)
1153+ let gY = eE(0, 0, 0)
1154+ let gU = gY._1
1155+ let ev = gY._2
1156+ let gV = eI(eD, ev)
1157+ if ((gV == gV))
1158+ then (dI ++ gU)
11681159 else throw("Strict value is not equal to itself.")
11691160 }
11701161 else throw("Strict value is not equal to itself.")
11731164
11741165
11751166 @Callable(eW)
1176-func putOneTkn (ha,hb) = {
1177- let hc = {
1167+func putOneTkn (gZ,ha) = {
1168+ let hb = {
11781169 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11791170 if ($isInstanceOf(aY, "Boolean"))
11801171 then aY
11811172 else throw(($getType(aY) + " couldn't be cast to Boolean"))
11821173 }
1183- let hd = if (if (if (bc())
1174+ let hc = if (if (if (bc())
11841175 then true
11851176 else (bp == l))
11861177 then true
11871178 else (bp == n))
11881179 then true
1189- else hc
1190- let fQ = [if (if (!(hd))
1180+ else hb
1181+ let fQ = [if (if (!(hc))
11911182 then true
11921183 else gl(eW))
11931184 then true
11961187 else aS("exactly 1 payment are expected")]
11971188 if ((fQ == fQ))
11981189 then {
1199- let he = eW.payments[0]
1200- let fl = he.assetId
1201- let fk = he.amount
1190+ let hd = eW.payments[0]
1191+ let fl = hd.assetId
1192+ let fk = hd.amount
12021193 let eD = if ((fl == br))
12031194 then ew(toBigInt(fk), toBigInt(0), toBigInt(0))
12041195 else if ((fl == bs))
12081199 then {
12091200 let ab = eW.caller
12101201 let ac = eW.transactionId
1211- let hf = fj(fk, fl, ab, ac)
1212- if ((hf == hf))
1202+ let he = fj(fk, fl, ab, ac)
1203+ if ((he == he))
12131204 then {
1214- let fp = hf._5
1215- let hg = hf._4
1216- let fi = hf._3
1217- let ep = hf._2
1218- let hh = hf._1
1219- let hi = if (if ((ha > 0))
1220- then (ha > hh)
1205+ let fp = he._5
1206+ let hf = he._4
1207+ let fi = he._3
1208+ let ep = he._2
1209+ let hg = he._1
1210+ let hh = if (if ((gZ > 0))
1211+ then (gZ > hg)
12211212 else false)
1222- then aS(makeString(["amount to receive is less than ", toString(ha)], ""))
1223- else hh
1224- let fe = fd(hi)
1213+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1214+ else hg
1215+ let fe = fd(hh)
12251216 if ((fe == fe))
12261217 then {
1227- let gS = if (hb)
1218+ let gR = if (ha)
12281219 then {
1229- let hj = invoke(bw, "stake", nil, [AttachedPayment(bq, hi)])
1230- if ((hj == hj))
1220+ let hi = invoke(bw, "stake", nil, [AttachedPayment(bq, hh)])
1221+ if ((hi == hi))
12311222 then nil
12321223 else throw("Strict value is not equal to itself.")
12331224 }
1234- else [ScriptTransfer(eW.caller, hi, bq)]
1235- let hk = if ((fi > 0))
1225+ else [ScriptTransfer(eW.caller, hh, bq)]
1226+ let hj = if ((fi > 0))
12361227 then [ScriptTransfer(aW, fi, fl)]
12371228 else nil
1238- let hl = if ((this == aW))
1229+ let hk = if ((this == aW))
12391230 then $Tuple2(0, 0)
12401231 else if (fp)
12411232 then $Tuple2(-(fi), 0)
12421233 else $Tuple2(0, -(fi))
1243- let eF = hl._1
1244- let eG = hl._2
1245- let hm = eE(eF, eG, 0)
1246- let gV = hm._1
1247- let ev = hm._2
1234+ let eF = hk._1
1235+ let eG = hk._2
1236+ let hl = eE(eF, eG, 0)
1237+ let gU = hl._1
1238+ let ev = hl._2
12481239 let eP = value(getString(aj))
1249- let gW = eI(eD, ev)
1250- if ((gW == gW))
1240+ let gV = eI(eD, ev)
1241+ if ((gV == gV))
12511242 then {
1252- let gX = invoke(this, "rebalance", nil, nil)
1253- if ((gX == gX))
1254- then $Tuple2((((ep ++ gS) ++ hk) ++ gV), hi)
1243+ let gW = invoke(this, "rebalance", nil, nil)
1244+ if ((gW == gW))
1245+ then $Tuple2((((ep ++ gR) ++ hj) ++ gU), hh)
12551246 else throw("Strict value is not equal to itself.")
12561247 }
12571248 else throw("Strict value is not equal to itself.")
12691260
12701261 @Callable(eW)
12711262 func putOneTknREADONLY (fl,fk) = {
1272- let hn = fj(fk, bh(fl), unit, unit)
1273- let hh = hn._1
1274- let ep = hn._2
1275- let fi = hn._3
1276- let hg = hn._4
1277- let fp = hn._5
1278- $Tuple2(nil, $Tuple3(hh, fi, hg))
1263+ let hm = fj(fk, bh(fl), unit, unit)
1264+ let hg = hm._1
1265+ let ep = hm._2
1266+ let fi = hm._3
1267+ let hf = hm._4
1268+ let fp = hm._5
1269+ $Tuple2(nil, $Tuple3(hg, fi, hf))
12791270 }
12801271
12811272
12821273
12831274 @Callable(eW)
1284-func getOneTkn (ho,ha) = {
1285- let hc = {
1275+func getOneTkn (hn,gZ) = {
1276+ let hb = {
12861277 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12871278 if ($isInstanceOf(aY, "Boolean"))
12881279 then aY
12891280 else throw(($getType(aY) + " couldn't be cast to Boolean"))
12901281 }
1291- let hp = if (if (bc())
1282+ let ho = if (if (bc())
12921283 then true
12931284 else (bp == n))
12941285 then true
1295- else hc
1296- let fQ = [if (if (!(hp))
1286+ else hb
1287+ let fQ = [if (if (!(ho))
12971288 then true
12981289 else gl(eW))
12991290 then true
13021293 else aS("exactly 1 payment are expected")]
13031294 if ((fQ == fQ))
13041295 then {
1305- let fP = bh(ho)
1306- let he = eW.payments[0]
1307- let fl = he.assetId
1308- let fx = he.amount
1296+ let fP = bh(hn)
1297+ let hd = eW.payments[0]
1298+ let fl = hd.assetId
1299+ let fx = hd.amount
13091300 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
13101301 if ((eD == eD))
13111302 then {
13121303 let ab = eW.caller
13131304 let ac = eW.transactionId
1314- let hq = fO(fP, fx, fl, ab, ac)
1315- if ((hq == hq))
1305+ let hp = fO(fP, fx, fl, ab, ac)
1306+ if ((hp == hp))
13161307 then {
1317- let fR = hq._5
1318- let hg = hq._4
1319- let fi = hq._3
1320- let ep = hq._2
1321- let hr = hq._1
1322- let ca = if (if ((ha > 0))
1323- then (ha > hr)
1308+ let fR = hp._5
1309+ let hf = hp._4
1310+ let fi = hp._3
1311+ let ep = hp._2
1312+ let hq = hp._1
1313+ let ca = if (if ((gZ > 0))
1314+ then (gZ > hq)
13241315 else false)
1325- then aS(makeString(["amount to receive is less than ", toString(ha)], ""))
1326- else hr
1327- let gF = {
1328- let bX = cu(ho)
1329- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
1330- then {
1331- let cH = bX
1332- cH
1333- }
1334- else throw("error lease config")
1335- }
1336- let hs = invoke(aV, "burn", [fx], [AttachedPayment(fl, fx)])
1337- if ((hs == hs))
1316+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1317+ else hq
1318+ let hr = invoke(aV, "burn", [fx], [AttachedPayment(fl, fx)])
1319+ if ((hr == hr))
13381320 then {
1339- let gG = cO(ho, ca)
1340- if ((gG == gG))
1321+ let gF = cO(hn, ca)
1322+ if ((gF == gF))
13411323 then {
1342- let ht = [ScriptTransfer(ab, ca, fP)]
1343- let hk = if ((fi > 0))
1324+ let hs = [ScriptTransfer(ab, ca, fP)]
1325+ let hj = if ((fi > 0))
13441326 then [ScriptTransfer(aW, fi, fP)]
13451327 else nil
1346- let hu = {
1347- let hv = if ((this == aW))
1328+ let ht = {
1329+ let hu = if ((this == aW))
13481330 then 0
13491331 else fi
13501332 if (fR)
1351- then $Tuple2(-((ca + hv)), 0)
1352- else $Tuple2(0, -((ca + hv)))
1333+ then $Tuple2(-((ca + hu)), 0)
1334+ else $Tuple2(0, -((ca + hu)))
13531335 }
1354- let eF = hu._1
1355- let eG = hu._2
1356- let hw = eE(eF, eG, 0)
1357- let gV = hw._1
1358- let ev = hw._2
1359- let gW = eI(eD, ev)
1360- if ((gW == gW))
1361- then $Tuple2(((((ep ++ gG) ++ ht) ++ hk) ++ gV), ca)
1336+ let eF = ht._1
1337+ let eG = ht._2
1338+ let hv = eE(eF, eG, 0)
1339+ let gU = hv._1
1340+ let ev = hv._2
1341+ let gV = eI(eD, ev)
1342+ if ((gV == gV))
1343+ then $Tuple2(((((ep ++ gF) ++ hs) ++ hj) ++ gU), ca)
13621344 else throw("Strict value is not equal to itself.")
13631345 }
13641346 else throw("Strict value is not equal to itself.")
13761358
13771359 @Callable(eW)
13781360 func getOneTknREADONLY (fP,fx) = {
1379- let hx = fO(bh(fP), fx, bq, unit, unit)
1380- let hr = hx._1
1381- let ep = hx._2
1382- let fi = hx._3
1383- let hg = hx._4
1384- let fR = hx._5
1385- $Tuple2(nil, $Tuple3(hr, fi, hg))
1361+ let hw = fO(bh(fP), fx, bq, unit, unit)
1362+ let hq = hw._1
1363+ let ep = hw._2
1364+ let fi = hw._3
1365+ let hf = hw._4
1366+ let fR = hw._5
1367+ $Tuple2(nil, $Tuple3(hq, fi, hf))
13861368 }
13871369
13881370
13891371
13901372 @Callable(eW)
1391-func unstakeAndGetOneTkn (hy,ho,ha) = {
1392- let hc = {
1373+func unstakeAndGetOneTkn (hx,hn,gZ) = {
1374+ let hb = {
13931375 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13941376 if ($isInstanceOf(aY, "Boolean"))
13951377 then aY
13961378 else throw(($getType(aY) + " couldn't be cast to Boolean"))
13971379 }
1398- let hp = if (if (bc())
1380+ let ho = if (if (bc())
13991381 then true
14001382 else (bp == n))
14011383 then true
1402- else hc
1403- let fQ = [if (if (!(hp))
1384+ else hb
1385+ let fQ = [if (if (!(ho))
14041386 then true
14051387 else gl(eW))
14061388 then true
14091391 else aS("no payments are expected")]
14101392 if ((fQ == fQ))
14111393 then {
1412- let fP = bh(ho)
1394+ let fP = bh(hn)
14131395 let ab = eW.caller
14141396 let ac = eW.transactionId
14151397 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
14161398 if ((eD == eD))
14171399 then {
1418- let hz = invoke(bw, "unstake", [toBase58String(bq), hy], nil)
1419- if ((hz == hz))
1400+ let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1401+ if ((hy == hy))
14201402 then {
1421- let hA = fO(fP, hy, bq, ab, ac)
1422- if ((hA == hA))
1403+ let hz = fO(fP, hx, bq, ab, ac)
1404+ if ((hz == hz))
14231405 then {
1424- let fR = hA._5
1425- let hg = hA._4
1426- let fi = hA._3
1427- let ep = hA._2
1428- let hr = hA._1
1429- let ca = if (if ((ha > 0))
1430- then (ha > hr)
1406+ let fR = hz._5
1407+ let hf = hz._4
1408+ let fi = hz._3
1409+ let ep = hz._2
1410+ let hq = hz._1
1411+ let ca = if (if ((gZ > 0))
1412+ then (gZ > hq)
14311413 else false)
1432- then aS(makeString(["amount to receive is less than ", toString(ha)], ""))
1433- else hr
1434- let hs = invoke(aV, "burn", [hy], [AttachedPayment(bq, hy)])
1435- if ((hs == hs))
1414+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1415+ else hq
1416+ let hr = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1417+ if ((hr == hr))
14361418 then {
1437- let gG = cO(ho, ca)
1438- if ((gG == gG))
1419+ let gF = cO(hn, ca)
1420+ if ((gF == gF))
14391421 then {
1440- let ht = [ScriptTransfer(eW.caller, ca, fP)]
1441- let hk = if ((fi > 0))
1422+ let hs = [ScriptTransfer(eW.caller, ca, fP)]
1423+ let hj = if ((fi > 0))
14421424 then [ScriptTransfer(aW, fi, fP)]
14431425 else nil
1444- let hB = {
1445- let hv = if ((this == aW))
1426+ let hA = {
1427+ let hu = if ((this == aW))
14461428 then 0
14471429 else fi
14481430 if (fR)
1449- then $Tuple2(-((ca + hv)), 0)
1450- else $Tuple2(0, -((ca + hv)))
1431+ then $Tuple2(-((ca + hu)), 0)
1432+ else $Tuple2(0, -((ca + hu)))
14511433 }
1452- let eF = hB._1
1453- let eG = hB._2
1454- let hC = eE(eF, eG, 0)
1455- let gV = hC._1
1456- let ev = hC._2
1457- let gW = eI(eD, ev)
1458- if ((gW == gW))
1459- then $Tuple2(((((ep ++ gG) ++ ht) ++ hk) ++ gV), ca)
1434+ let eF = hA._1
1435+ let eG = hA._2
1436+ let hB = eE(eF, eG, 0)
1437+ let gU = hB._1
1438+ let ev = hB._2
1439+ let gV = eI(eD, ev)
1440+ if ((gV == gV))
1441+ then $Tuple2(((((ep ++ gF) ++ hs) ++ hj) ++ gU), ca)
14601442 else throw("Strict value is not equal to itself.")
14611443 }
14621444 else throw("Strict value is not equal to itself.")
14771459 @Callable(eW)
14781460 func get () = {
14791461 let ea = eV(eW)
1480- let hD = ea._1
1462+ let hC = ea._1
14811463 let dF = ea._2
14821464 let eY = ea._3
14831465 let dn = ea._4
14851467 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
14861468 if ((eD == eD))
14871469 then {
1488- let hE = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1489- if ((hE == hE))
1470+ let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1471+ if ((hD == hD))
14901472 then {
1491- let hF = eE(-(hD), -(dF), 0)
1492- let gV = hF._1
1493- let ev = hF._2
1494- let gW = eI(eD, ev)
1495- if ((gW == gW))
1496- then (dI ++ gV)
1473+ let hE = eE(-(hC), -(dF), 0)
1474+ let gU = hE._1
1475+ let ev = hE._2
1476+ let gV = eI(eD, ev)
1477+ if ((gV == gV))
1478+ then (dI ++ gU)
14971479 else throw("Strict value is not equal to itself.")
14981480 }
14991481 else throw("Strict value is not equal to itself.")
15041486
15051487
15061488 @Callable(eW)
1507-func getNoLess (hG,hH) = {
1489+func getNoLess (hF,hG) = {
15081490 let ea = eV(eW)
15091491 let dE = ea._1
15101492 let dF = ea._2
15111493 let eY = ea._3
15121494 let dn = ea._4
15131495 let dI = ea._5
1514- if ((hG > dE))
1515- then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hG)))
1516- else if ((hH > dF))
1517- then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hH)))
1496+ if ((hF > dE))
1497+ then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hF)))
1498+ else if ((hG > dF))
1499+ then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hG)))
15181500 else {
15191501 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
15201502 if ((eD == eD))
15211503 then {
1522- let hE = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1523- if ((hE == hE))
1504+ let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1505+ if ((hD == hD))
15241506 then {
1525- let hI = eE(-(dE), -(dF), 0)
1526- let gV = hI._1
1527- let ev = hI._2
1528- let gW = eI(eD, ev)
1529- if ((gW == gW))
1530- then (dI ++ gV)
1507+ let hH = eE(-(dE), -(dF), 0)
1508+ let gU = hH._1
1509+ let ev = hH._2
1510+ let gV = eI(eD, ev)
1511+ if ((gV == gV))
1512+ then (dI ++ gU)
15311513 else throw("Strict value is not equal to itself.")
15321514 }
15331515 else throw("Strict value is not equal to itself.")
15401522
15411523 @Callable(eW)
15421524 func unstakeAndGet (ca) = {
1543- let hJ = if ((size(eW.payments) != 0))
1525+ let hI = if ((size(eW.payments) != 0))
15441526 then throw("No payments are expected")
15451527 else true
1546- if ((hJ == hJ))
1528+ if ((hI == hI))
15471529 then {
15481530 let dc = be()
15491531 let dp = fromBase58String(dc[q])
15501532 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
15511533 if ((eD == eD))
15521534 then {
1553- let hz = invoke(bw, "unstake", [toBase58String(dp), ca], nil)
1554- if ((hz == hz))
1535+ let hy = invoke(bw, "unstake", [toBase58String(dp), ca], nil)
1536+ if ((hy == hy))
15551537 then {
15561538 let ea = dl(toBase58String(eW.transactionId), toBase58String(dp), ca, eW.caller)
15571539 let dE = ea._1
15581540 let dF = ea._2
15591541 let ds = parseIntValue(ea._9)
15601542 let dI = ea._10
1561- let hK = if (if (bc())
1543+ let hJ = if (if (bc())
15621544 then true
15631545 else (ds == n))
15641546 then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
15651547 else true
1566- if ((hK == hK))
1548+ if ((hJ == hJ))
15671549 then {
1568- let hE = invoke(aV, "burn", [ca], [AttachedPayment(dp, ca)])
1569- if ((hE == hE))
1550+ let hD = invoke(aV, "burn", [ca], [AttachedPayment(dp, ca)])
1551+ if ((hD == hD))
15701552 then {
1571- let hL = eE(-(dE), -(dF), 0)
1572- let gV = hL._1
1573- let ev = hL._2
1574- let gW = eI(eD, ev)
1575- if ((gW == gW))
1576- then (dI ++ gV)
1553+ let hK = eE(-(dE), -(dF), 0)
1554+ let gU = hK._1
1555+ let ev = hK._2
1556+ let gV = eI(eD, ev)
1557+ if ((gV == gV))
1558+ then (dI ++ gU)
15771559 else throw("Strict value is not equal to itself.")
15781560 }
15791561 else throw("Strict value is not equal to itself.")
15901572
15911573
15921574 @Callable(eW)
1593-func unstakeAndGetNoLess (hy,hM,hH) = {
1594- let hp = if (bc())
1575+func unstakeAndGetNoLess (hx,hL,hG) = {
1576+ let ho = if (bc())
15951577 then true
15961578 else (bp == n)
1597- let fQ = [if (!(hp))
1579+ let fQ = [if (!(ho))
15981580 then true
15991581 else throw("get operation is blocked by admin"), if ((size(eW.payments) == 0))
16001582 then true
16041586 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
16051587 if ((eD == eD))
16061588 then {
1607- let hz = invoke(bw, "unstake", [toBase58String(bq), hy], nil)
1608- if ((hz == hz))
1589+ let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1590+ if ((hy == hy))
16091591 then {
1610- let ea = dl(toBase58String(eW.transactionId), toBase58String(bq), hy, eW.caller)
1592+ let ea = dl(toBase58String(eW.transactionId), toBase58String(bq), hx, eW.caller)
16111593 let dE = ea._1
16121594 let dF = ea._2
16131595 let dI = ea._10
1614- let hN = [if ((dE >= hM))
1596+ let hM = [if ((dE >= hL))
16151597 then true
1616- else throw(makeString(["amount asset amount to receive is less than ", toString(hM)], "")), if ((dF >= hH))
1598+ else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dF >= hG))
16171599 then true
1618- else throw(makeString(["price asset amount to receive is less than ", toString(hH)], ""))]
1619- if ((hN == hN))
1600+ else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1601+ if ((hM == hM))
16201602 then {
1621- let hE = invoke(aV, "burn", [hy], [AttachedPayment(bq, hy)])
1622- if ((hE == hE))
1603+ let hD = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1604+ if ((hD == hD))
16231605 then {
1624- let hO = eE(-(dE), -(dF), 0)
1625- let gV = hO._1
1626- let ev = hO._2
1627- let gW = eI(eD, ev)
1628- if ((gW == gW))
1629- then (dI ++ gV)
1606+ let hN = eE(-(dE), -(dF), 0)
1607+ let gU = hN._1
1608+ let ev = hN._2
1609+ let gV = eI(eD, ev)
1610+ if ((gV == gV))
1611+ then (dI ++ gU)
16301612 else throw("Strict value is not equal to itself.")
16311613 }
16321614 else throw("Strict value is not equal to itself.")
16431625
16441626
16451627 @Callable(eW)
1646-func activate (hP,hQ) = if ((toString(eW.caller) != toString(aV)))
1628+func activate (hO,hP) = if ((toString(eW.caller) != toString(aV)))
16471629 then throw("permissions denied")
1648- else $Tuple2([StringEntry(ae(), hP), StringEntry(af(), hQ)], "success")
1630+ else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
16491631
16501632
16511633
16521634 @Callable(eW)
16531635 func refreshKLp () = {
1654- let hR = valueOrElse(getInteger(ak), 0)
1655- let hS = if (((height - hR) >= an))
1636+ let hQ = valueOrElse(getInteger(ak), 0)
1637+ let hR = if (((height - hQ) >= an))
16561638 then unit
16571639 else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1658- if ((hS == hS))
1640+ if ((hR == hR))
16591641 then {
16601642 let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1661- let hT = eE(0, 0, 0)
1662- let hU = hT._1
1663- let ev = hT._2
1643+ let hS = eE(0, 0, 0)
1644+ let hT = hS._1
1645+ let ev = hS._2
16641646 let eH = if ((eP != ev))
1665- then hU
1647+ then hT
16661648 else aS("nothing to refresh")
16671649 $Tuple2(eH, toString(ev))
16681650 }
17211703 func statsREADONLY () = {
17221704 let dc = be()
17231705 let dp = fromBase58String(dc[q])
1724- let hV = dc[r]
1725- let hW = dc[s]
1706+ let hU = dc[r]
1707+ let hV = dc[s]
17261708 let dT = dc[v]
17271709 let dU = dc[w]
17281710 let dd = parseIntValue(dc[t])
17291711 let de = parseIntValue(dc[u])
1730- let hX = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1712+ let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1713+ let hX = bN(hU)
17311714 let hY = bN(hV)
1732- let hZ = bN(hW)
1733- let ia = if ((hX == 0))
1715+ let hZ = if ((hW == 0))
17341716 then [e, e, e]
1735- else da(hY, hZ, hX)
1717+ else da(hX, hY, hW)
17361718 let dz = 0
1737- let ib = H(ia[1], b)
1738- let ic = H(ia[2], b)
1739- let id = value(getInteger(aV, aF(toString(this))))
1740- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hY), toString(hZ), toString(hX), toString(dz), toString(ib), toString(ic), toString(id)], j))
1719+ let ia = H(hZ[1], b)
1720+ let ib = H(hZ[2], b)
1721+ let ic = value(getInteger(aV, aF(toString(this))))
1722+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hX), toString(hY), toString(hW), toString(dz), toString(ia), toString(ib), toString(ic)], j))
17411723 }
17421724
17431725
17531735 let dd = parseIntValue(dc[t])
17541736 let de = parseIntValue(dc[u])
17551737 let ds = dc[p]
1756- let hX = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1757- let hY = bN(dR)
1758- let hZ = bN(dS)
1759- let cY = D(hY, dd)
1760- let cZ = D(hZ, de)
1761- let dy = if ((hX == 0))
1738+ let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1739+ let hX = bN(dR)
1740+ let hY = bN(dS)
1741+ let cY = D(hX, dd)
1742+ let cZ = D(hY, de)
1743+ let dy = if ((hW == 0))
17621744 then e
17631745 else bQ(cZ, cY)
17641746 let dX = D(dL, dd)
17661748 let dN = H(dY, de)
17671749 let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
17681750 let ei = fc._1
1769- let ie = fc._3
1751+ let id = fc._3
17701752 let du = fc._4
17711753 let dw = fc._5
17721754 let dt = fc._6
17861768 let dd = parseIntValue(dc[t])
17871769 let de = parseIntValue(dc[u])
17881770 let ds = dc[p]
1789- let hX = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1790- let if = bN(dR)
1791- let ig = bN(dS)
1792- let ih = D(if, dd)
1793- let ii = D(ig, de)
1794- let dy = if ((hX == 0))
1771+ let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1772+ let ie = bN(dR)
1773+ let if = bN(dS)
1774+ let ig = D(ie, dd)
1775+ let ih = D(if, de)
1776+ let dy = if ((hW == 0))
17951777 then e
1796- else bQ(ii, ih)
1778+ else bQ(ih, ig)
17971779 let dY = D(dN, de)
17981780 let dX = fraction(dY, d, dy)
17991781 let dL = H(dX, dd)
18001782 let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
18011783 let ei = fc._1
1802- let ie = fc._3
1784+ let id = fc._3
18031785 let du = fc._4
18041786 let dw = fc._5
18051787 let dt = fc._6
18091791
18101792
18111793 @Callable(eW)
1812-func evaluateGetREADONLY (ij,ik) = {
1813- let ea = dl("", ij, ik, this)
1794+func evaluateGetREADONLY (ii,ij) = {
1795+ let ea = dl("", ii, ij, this)
18141796 let dE = ea._1
18151797 let dF = ea._2
18161798 let du = ea._5
18221804 }
18231805
18241806
1825-@Verifier(il)
1826-func im () = {
1827- let in = {
1807+@Verifier(ik)
1808+func il () = {
1809+ let im = {
18281810 let bX = gi()
18291811 if ($isInstanceOf(bX, "ByteVector"))
18301812 then {
18321814 gm
18331815 }
18341816 else if ($isInstanceOf(bX, "Unit"))
1835- then il.senderPublicKey
1817+ then ik.senderPublicKey
18361818 else throw("Match error")
18371819 }
1838- let bX = il
1820+ let bX = ik
18391821 if ($isInstanceOf(bX, "Order"))
18401822 then {
18411823 let eL = bX
1842- let io = bd()
1843- let ip = eK(eL)
1844- let aK = ip._1
1845- let aL = ip._2
1824+ let in = bd()
1825+ let io = eK(eL)
1826+ let aK = io._1
1827+ let aL = io._2
18461828 let aM = sigVerify(eL.bodyBytes, eL.proofs[0], eL.senderPublicKey)
1847- let aN = sigVerify(eL.bodyBytes, eL.proofs[1], io)
1829+ let aN = sigVerify(eL.bodyBytes, eL.proofs[1], in)
18481830 if (if (if (aK)
18491831 then aM
18501832 else false)
18561838 else if ($isInstanceOf(bX, "SetScriptTransaction"))
18571839 then {
18581840 let gj = bX
1859- if (sigVerify(il.bodyBytes, il.proofs[0], in))
1841+ if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
18601842 then true
18611843 else {
1862- let iq = blake2b256(value(gj.script))
1863- let ir = fromBase64String(value(getString(aV, aH())))
1864- let is = scriptHash(this)
1865- if ((ir == iq))
1866- then (is != iq)
1844+ let ip = blake2b256(value(gj.script))
1845+ let iq = fromBase64String(value(getString(aV, aH())))
1846+ let ir = scriptHash(this)
1847+ if ((iq == ip))
1848+ then (ir != ip)
18671849 else false
18681850 }
18691851 }
1870- else sigVerify(il.bodyBytes, il.proofs[0], in)
1852+ else sigVerify(ik.bodyBytes, ik.proofs[0], im)
18711853 }
18721854
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6363
6464
6565 func G (E,F) = fraction(E, d, F)
6666
6767
6868 func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6969
7070
7171 func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
7272
7373
7474 func M (N,O,P) = fraction(N, O, P)
7575
7676
7777 func Q (I) = if ((0 > I))
7878 then -(I)
7979 else I
8080
8181
8282 func R (I) = if ((e > I))
8383 then -(I)
8484 else I
8585
8686
8787 func S () = "%s__swapContract"
8888
8989
9090 func T () = "%s__factoryContract"
9191
9292
9393 func U () = "%s__managerPublicKey"
9494
9595
9696 func V () = "%s__pendingManagerPublicKey"
9797
9898
9999 func W () = "%s%s__price__last"
100100
101101
102102 func X (Y,Z) = makeString(["%s%s%d%d__price__history", toString(Y), toString(Z)], j)
103103
104104
105105 func aa (ab,ac) = ((("%s%s%s__P__" + ab) + "__") + ac)
106106
107107
108108 func ad (ab,ac) = ((("%s%s%s__G__" + ab) + "__") + ac)
109109
110110
111111 func ae () = "%s__amountAsset"
112112
113113
114114 func af () = "%s__priceAsset"
115115
116116
117117 let ag = "%s__fee"
118118
119119 let ah = fraction(10, b, 10000)
120120
121121 let ai = valueOrElse(getInteger(this, ag), ah)
122122
123123 let aj = makeString(["%s", "kLp"], j)
124124
125125 let ak = makeString(["%s", "kLpRefreshedHeight"], j)
126126
127127 let al = makeString(["%s", "refreshKLpDelay"], j)
128128
129129 let am = 30
130130
131131 let an = valueOrElse(getInteger(this, al), am)
132132
133133 func ao () = "%s__sWavesAssetId"
134134
135135
136136 func ap () = "%s__sWavesProxyAddress"
137137
138138
139139 func aq (ar) = makeString(["%s%s", "additionalBalance", ar], j)
140140
141141
142142 func as (ar) = makeString(["%s%s", "stakingAssetBalance", ar], j)
143143
144144
145145 func at (ar) = valueOrElse(getInteger(this, aq(ar)), 0)
146146
147147
148148 func au (ar) = valueOrElse(getInteger(this, as(ar)), 0)
149149
150150
151151 func av () = "%s__factoryConfig"
152152
153153
154154 func aw () = "%s%s__matcher__publicKey"
155155
156156
157157 func ax (ay) = (("%s%s%s__" + ay) + "__mappings__poolContract2LpAsset")
158158
159159
160160 func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
161161
162162
163163 func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
164164
165165
166166 func aE () = "%s__shutdown"
167167
168168
169169 func aF (aG) = ("%s%s__poolWeight__" + aG)
170170
171171
172172 func aH () = "%s__allowedLpScriptHash"
173173
174174
175175 let aI = "%s__feeCollectorAddress"
176176
177177 func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
178178
179179
180180 func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
181181
182182
183183 func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
184184
185185
186186 func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
187187
188188
189189 func aU (aT) = makeString(["lp.ride:", aT], " ")
190190
191191
192192 let aV = addressFromStringValue(aO(this, T()))
193193
194194 let aW = addressFromStringValue(aO(aV, aI))
195195
196196 let aX = {
197197 let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
198198 if ($isInstanceOf(aY, "Int"))
199199 then aY
200200 else throw(($getType(aY) + " couldn't be cast to Int"))
201201 }
202202
203203 let aZ = {
204204 let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
205205 if ($isInstanceOf(aY, "Int"))
206206 then aY
207207 else throw(($getType(aY) + " couldn't be cast to Int"))
208208 }
209209
210210 func ba () = aO(aV, ao())
211211
212212
213213 func bb () = aO(aV, ap())
214214
215215
216216 func bc () = valueOrElse(getBoolean(aV, aE()), false)
217217
218218
219219 func bd () = fromBase58String(aO(aV, aw()))
220220
221221
222222 func be () = {
223223 let bf = aO(this, ae())
224224 let bg = aO(this, af())
225225 let aB = aR(aV, aC(bg))
226226 let aA = aR(aV, aC(bf))
227227 split(aO(aV, az(toString(aA), toString(aB))), j)
228228 }
229229
230230
231231 func bh (bi) = if ((bi == i))
232232 then unit
233233 else fromBase58String(bi)
234234
235235
236236 func bj (bi) = if ((bi == unit))
237237 then i
238238 else toBase58String(value(bi))
239239
240240
241241 func bk (bl) = $Tuple7(addressFromStringValue(bl[o]), parseIntValue(bl[p]), fromBase58String(bl[q]), bh(bl[r]), bh(bl[s]), parseIntValue(bl[t]), parseIntValue(bl[u]))
242242
243243
244244 let bm = bk(be())
245245
246246 let bn = bm
247247
248248 let bo = bn._1
249249
250250 let bp = bn._2
251251
252252 let bq = bn._3
253253
254254 let br = bn._4
255255
256256 let bs = bn._5
257257
258258 let bt = bn._6
259259
260260 let bu = bn._7
261261
262262 func bv () = split(aO(aV, av()), j)
263263
264264
265265 let bw = valueOrErrorMessage(addressFromString(bv()[B]), "incorrect staking address")
266266
267267 let bx = valueOrErrorMessage(addressFromString(bv()[C]), "incorrect staking address")
268268
269269 func by (bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI)], j)
270270
271271
272272 func bJ (bK,bL,bM,bC,bF,bG) = makeString(["%d%d%d%d%d%d", toString(bK), toString(bL), toString(bM), toString(bC), toString(bF), toString(bG)], j)
273273
274274
275275 func bN (ar) = {
276276 let bO = if ((ar == "WAVES"))
277277 then wavesBalance(this).available
278278 else assetBalance(this, fromBase58String(ar))
279279 let bP = ((bO + at(ar)) - au(ar))
280280 max([0, bP])
281281 }
282282
283283
284284 func bQ (bR,bS) = fraction(bR, d, bS)
285285
286286
287287 func bT (bR,bS,L) = fraction(bR, d, bS, L)
288288
289289
290290 func bU (bV) = {
291291 let bW = invoke(bV, "getRate", nil, nil)
292292 if ((bW == bW))
293293 then {
294294 let bX = bW
295295 if ($isInstanceOf(bX, "Int"))
296296 then {
297297 let bY = bX
298298 bY
299299 }
300300 else aS("proxy.getRate() unexpected value")
301301 }
302302 else throw("Strict value is not equal to itself.")
303303 }
304304
305305
306306 func bZ (ar,ca,cb,bV) = {
307307 let cc = at(ar)
308308 if ((cc == cc))
309309 then {
310310 let cd = au(cb)
311311 if ((cd == cd))
312312 then {
313313 let ce = bh(ar)
314314 if ((ca > 0))
315315 then {
316316 let cf = invoke(bV, "deposit", nil, [AttachedPayment(ce, ca)])
317317 if ((cf == cf))
318318 then {
319319 let bX = cf
320320 if ($isInstanceOf(bX, "Int"))
321321 then {
322322 let cg = bX
323323 let ch = (cc + ca)
324324 let ci = (cd + cg)
325325 [IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci)]
326326 }
327327 else nil
328328 }
329329 else throw("Strict value is not equal to itself.")
330330 }
331331 else nil
332332 }
333333 else throw("Strict value is not equal to itself.")
334334 }
335335 else throw("Strict value is not equal to itself.")
336336 }
337337
338338
339339 func cj (ar,ca,cb,bV,ck,cl) = {
340340 let cc = at(ar)
341341 if ((cc == cc))
342342 then {
343343 let cd = au(cb)
344344 if ((cd == cd))
345345 then {
346346 let cm = bU(bV)
347347 if ((cm == cm))
348348 then {
349349 let cn = fraction(ck, cc, cd)
350350 let co = bh(cb)
351351 let cp = fraction(ck, ca, cn)
352352 let cq = fraction(ck, ca, cm)
353353 let cr = max([0, (cp - cq)])
354354 if ((cq > 0))
355355 then {
356356 let cs = invoke(bV, "withdraw", nil, [AttachedPayment(co, cq)])
357357 if ((cs == cs))
358358 then {
359359 let bX = cs
360360 if ($isInstanceOf(bX, "Int"))
361361 then {
362362 let ct = bX
363363 let ch = (cc - ct)
364364 let ci = ((cd - cq) - cr)
365365 [IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci), ScriptTransfer(cl, cr, bh(cb))]
366366 }
367367 else nil
368368 }
369369 else throw("Strict value is not equal to itself.")
370370 }
371371 else nil
372372 }
373373 else throw("Strict value is not equal to itself.")
374374 }
375375 else throw("Strict value is not equal to itself.")
376376 }
377377 else throw("Strict value is not equal to itself.")
378378 }
379379
380380
381381 func cu (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
382382
383383
384384 func cv (cw,ar,cb,cx,bV,ck,cl) = {
385385 let cc = at(ar)
386386 if ((cc == cc))
387387 then {
388388 let cd = au(cb)
389389 if ((cd == cd))
390390 then {
391391 let cy = {
392392 let bX = bh(ar)
393393 if ($isInstanceOf(bX, "ByteVector"))
394394 then {
395395 let cz = bX
396396 assetBalance(this, cz)
397397 }
398398 else if ($isInstanceOf(bX, "Unit"))
399399 then {
400400 let cA = bX
401401 wavesBalance(this).available
402402 }
403403 else throw("Match error")
404404 }
405405 if ((cy == cy))
406406 then {
407407 let cB = max([0, ((cy + cc) - cx)])
408408 let cC = fraction(cw, cB, 100)
409409 let cD = (cc - cC)
410410 if ((cD == 0))
411411 then nil
412412 else if ((0 > cD))
413413 then {
414414 let cE = -(cD)
415415 bZ(ar, cE, cb, bV)
416416 }
417417 else {
418418 let cF = cD
419419 cj(ar, cF, cb, bV, ck, cl)
420420 }
421421 }
422422 else throw("Strict value is not equal to itself.")
423423 }
424424 else throw("Strict value is not equal to itself.")
425425 }
426426 else throw("Strict value is not equal to itself.")
427427 }
428428
429429
430430 func cG (ar) = {
431431 let bX = cu(ar)
432432 if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
433433 then {
434434 let cH = bX
435435 let cI = cH
436436 let cJ = cI._1
437437 let cK = cI._2
438438 let cx = cI._3
439439 let cL = cI._4
440440 let cM = cI._5
441441 let ck = cI._6
442442 let cN = cI._7
443443 if (cJ)
444444 then cv(cK, ar, cM, cx, addressFromStringValue(cL), ck, addressFromStringValue(cN))
445445 else nil
446446 }
447447 else aS((("[" + ar) + "] Rebalance error"))
448448 }
449449
450450
451451 func cO (ar,cP) = {
452452 let bX = cu(ar)
453453 if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
454454 then {
455455 let cH = bX
456456 let cQ = cH
457457 let cJ = cQ._1
458458 let cK = cQ._2
459459 let cx = cQ._3
460460 let cL = cQ._4
461461 let cM = cQ._5
462462 let ck = cQ._6
463463 let cN = cQ._7
464464 if (cJ)
465465 then {
466466 let cR = max([0, ((bN(ar) - cP) - cx)])
467467 if ((cR == cR))
468468 then {
469469 let ch = fraction(cK, cR, 100)
470470 if ((ch == ch))
471471 then {
472472 let cS = max([0, (at(ar) - ch)])
473473 if ((cS == cS))
474474 then cj(ar, cS, cM, addressFromStringValue(cL), ck, addressFromStringValue(cN))
475475 else throw("Strict value is not equal to itself.")
476476 }
477477 else throw("Strict value is not equal to itself.")
478478 }
479479 else throw("Strict value is not equal to itself.")
480480 }
481481 else nil
482482 }
483483 else aS((("[" + ar) + "] getWithdrawAssetState() error"))
484484 }
485485
486486
487487 func cT (cU,cV,cW,cX) = {
488488 let cY = D(cW, cU)
489489 let cZ = D(cX, cV)
490490 bQ(cZ, cY)
491491 }
492492
493493
494494 func da (cW,cX,db) = {
495495 let dc = be()
496496 let dd = parseIntValue(dc[t])
497497 let de = parseIntValue(dc[u])
498498 let df = cT(dd, de, cW, cX)
499499 let bS = D(cW, dd)
500500 let bR = D(cX, de)
501501 let dg = D(db, b)
502502 let dh = bQ(bS, dg)
503503 let di = bQ(bR, dg)
504504 [df, dh, di]
505505 }
506506
507507
508508 func dj (cW,cX,db) = {
509509 let dk = da(cW, cX, db)
510510 [H(dk[0], b), H(dk[1], b), H(dk[2], b)]
511511 }
512512
513513
514514 func dl (dm,dn,do,ab) = {
515515 let dc = be()
516516 let dp = dc[q]
517517 let dq = dc[r]
518518 let dr = dc[s]
519519 let cU = parseIntValue(dc[t])
520520 let cV = parseIntValue(dc[u])
521521 let ds = dc[p]
522522 let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
523523 if ((dp != dn))
524524 then throw("Invalid asset passed.")
525525 else {
526526 let du = bN(dq)
527527 let dv = D(du, cU)
528528 let dw = bN(dr)
529529 let dx = D(dw, cV)
530530 let dy = bQ(dx, dv)
531531 let dz = H(dy, b)
532532 let dA = D(do, b)
533533 let dB = D(dt, b)
534534 let dC = fraction(dv, dA, dB)
535535 let dD = fraction(dx, dA, dB)
536536 let dE = K(dC, cU, FLOOR)
537537 let dF = K(dD, cV, FLOOR)
538538 let dG = cO(dq, dE)
539539 if ((dG == dG))
540540 then {
541541 let dH = cO(dr, dF)
542542 if ((dH == dH))
543543 then {
544544 let dI = if ((dm == ""))
545545 then nil
546546 else ((dG ++ dH) ++ [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
547547 then unit
548548 else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
549549 then unit
550550 else fromBase58String(dr)), StringEntry(ad(toString(ab), dm), bJ(dE, dF, do, dz, height, lastBlock.timestamp)), IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz)])
551551 $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dI)
552552 }
553553 else throw("Strict value is not equal to itself.")
554554 }
555555 else throw("Strict value is not equal to itself.")
556556 }
557557 }
558558
559559
560560 func dJ (dm,dK,dL,dM,dN,dO,ab,dP,dQ) = {
561561 let dc = be()
562562 let dp = fromBase58String(dc[q])
563563 let dR = dc[r]
564564 let dS = dc[s]
565565 let dT = dc[v]
566566 let dU = dc[w]
567567 let dd = parseIntValue(dc[t])
568568 let de = parseIntValue(dc[u])
569569 let ds = dc[p]
570570 let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
571571 let dV = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
572572 let dW = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
573573 if (if ((dR != dV))
574574 then true
575575 else (dS != dW))
576576 then throw("Invalid amt or price asset passed.")
577577 else {
578578 let du = if (dP)
579579 then bN(dR)
580580 else (bN(dR) - dL)
581581 let dw = if (dP)
582582 then bN(dS)
583583 else (bN(dS) - dN)
584584 let dX = D(dL, dd)
585585 let dY = D(dN, de)
586586 let dZ = bQ(dY, dX)
587587 let dv = D(du, dd)
588588 let dx = D(dw, de)
589589 let ea = if ((dt == 0))
590590 then {
591591 let dy = e
592592 let eb = e
593593 let dg = pow((dX * dY), 0, toBigInt(5), 1, 0, DOWN)
594594 $Tuple5(H(dg, b), H(dX, dd), H(dY, de), bQ((dx + dY), (dv + dX)), eb)
595595 }
596596 else {
597597 let dy = bQ(dx, dv)
598598 let eb = fraction(R((dy - dZ)), d, dy)
599599 let ec = D(dK, b)
600600 if (if ((dy != e))
601601 then (eb > ec)
602602 else false)
603603 then throw(((("Price slippage " + toString(eb)) + " exceeded the passed limit of ") + toString(ec)))
604604 else {
605605 let dB = D(dt, b)
606606 let ed = fraction(dX, bT(dx, dv, CEILING), d, CEILING)
607607 let ee = fraction(dY, d, bT(dx, dv, FLOOR), CEILING)
608608 let ef = if ((ed > dY))
609609 then $Tuple2(ee, dY)
610610 else $Tuple2(dX, ed)
611611 let eg = ef._1
612612 let eh = ef._2
613613 let dg = fraction(dB, eh, dx, FLOOR)
614614 $Tuple5(K(dg, b, FLOOR), K(eg, dd, CEILING), K(eh, de, CEILING), dy, eb)
615615 }
616616 }
617617 let ei = ea._1
618618 let ej = ea._2
619619 let ek = ea._3
620620 let dz = H(ea._4, b)
621621 let el = H(ea._5, b)
622622 if ((0 >= ei))
623623 then throw("Invalid calculations. LP calculated is less than zero.")
624624 else {
625625 let em = if (!(dQ))
626626 then 0
627627 else ei
628628 let en = (dL - ej)
629629 let eo = (dN - ek)
630630 let ep = [IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz), StringEntry(aa(ab, dm), by(ej, ek, em, dz, dK, el, height, lastBlock.timestamp, en, eo))]
631631 $Tuple13(ei, em, dz, du, dw, dt, dp, ds, ep, en, eo, dM, dO)
632632 }
633633 }
634634 }
635635
636636
637637 func eq (er,es,dt) = {
638638 let et = G(er, toBigInt(bt))
639639 let eu = G(es, toBigInt(bu))
640640 let ev = fraction(pow((et * eu), 0, toBigInt(5), 1, 18, DOWN), g, dt)
641641 if ((dt == f))
642642 then f
643643 else ev
644644 }
645645
646646
647647 func ew (ex,ey,ez) = {
648648 let eA = (toBigInt(bN(bj(br))) - ex)
649649 let eB = (toBigInt(bN(bj(bs))) - ey)
650650 let eC = (toBigInt(value(assetInfo(bq)).quantity) - ez)
651651 let eD = eq(eA, eB, eC)
652652 eD
653653 }
654654
655655
656656 func eE (eF,eG,ez) = {
657657 let eA = (bN(bj(br)) + eF)
658658 let eB = (bN(bj(bs)) + eG)
659659 let eC = (value(assetInfo(bq)).quantity + ez)
660660 let ev = eq(toBigInt(eA), toBigInt(eB), toBigInt(eC))
661661 let eH = [IntegerEntry(ak, height), StringEntry(aj, toString(ev))]
662662 $Tuple2(eH, ev)
663663 }
664664
665665
666666 func eI (eJ,ev) = if ((ev >= eJ))
667667 then true
668668 else aS(makeString(["updated KLp lower than current KLp", toString(eJ), toString(ev)], " "))
669669
670670
671671 func eK (eL) = {
672672 let eA = bN(bj(br))
673673 let eB = bN(bj(bs))
674674 let eM = eL.amount
675675 let eN = fraction(eL.amount, eL.price, b, FLOOR)
676676 let eO = if ((eL.orderType == Buy))
677677 then $Tuple2(eM, -(eN))
678678 else $Tuple2(-(eM), eN)
679679 let eF = eO._1
680680 let eG = eO._2
681681 if (if (if (bc())
682682 then true
683683 else (bp == m))
684684 then true
685685 else (bp == n))
686686 then throw("Exchange operations disabled")
687687 else if (if ((eL.assetPair.amountAsset != br))
688688 then true
689689 else (eL.assetPair.priceAsset != bs))
690690 then throw("Wrong order assets.")
691691 else {
692692 let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
693693 let eQ = eE(eF, eG, 0)
694694 let eR = eQ._1
695695 let eS = eQ._2
696696 let eT = (eS >= eP)
697697 let eU = makeString(["kLp=", toString(eP), " kLpNew=", toString(eS), " amountAssetBalance=", toString(eA), " priceAssetBalance=", toString(eB), " amountAssetBalanceDelta=", toString(eF), " priceAssetBalanceDelta=", toString(eG), " height=", toString(height)], "")
698698 $Tuple2(eT, eU)
699699 }
700700 }
701701
702702
703703 func eV (eW) = if ((size(eW.payments) != 1))
704704 then throw("exactly 1 payment is expected")
705705 else {
706706 let eX = value(eW.payments[0])
707707 let dn = value(eX.assetId)
708708 let eY = eX.amount
709709 let ea = dl(toBase58String(eW.transactionId), toBase58String(dn), eY, eW.caller)
710710 let dE = ea._1
711711 let dF = ea._2
712712 let ds = parseIntValue(ea._9)
713713 let dI = ea._10
714714 if (if (bc())
715715 then true
716716 else (ds == n))
717717 then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
718718 else $Tuple5(dE, dF, eY, dn, dI)
719719 }
720720
721721
722722 func eZ (eW,dK,dQ) = if ((size(eW.payments) != 2))
723723 then throw("exactly 2 payments are expected")
724724 else {
725725 let fa = value(eW.payments[0])
726726 let fb = value(eW.payments[1])
727727 let fc = dJ(toBase58String(eW.transactionId), dK, fa.amount, fa.assetId, fb.amount, fb.assetId, toString(eW.caller), false, dQ)
728728 let ds = parseIntValue(fc._8)
729729 if (if (if (bc())
730730 then true
731731 else (ds == l))
732732 then true
733733 else (ds == n))
734734 then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
735735 else fc
736736 }
737737
738738
739739 func fd (ca) = {
740740 let fe = invoke(aV, "emit", [ca], nil)
741741 if ((fe == fe))
742742 then {
743743 let ff = {
744744 let bX = fe
745745 if ($isInstanceOf(bX, "Address"))
746746 then {
747747 let fg = bX
748748 invoke(fg, "emit", [ca], nil)
749749 }
750750 else unit
751751 }
752752 if ((ff == ff))
753753 then ca
754754 else throw("Strict value is not equal to itself.")
755755 }
756756 else throw("Strict value is not equal to itself.")
757757 }
758758
759759
760760 func fh (ca,ai) = {
761761 let fi = if ((ai == 0))
762762 then 0
763763 else fraction(ca, ai, b)
764764 $Tuple2((ca - fi), fi)
765765 }
766766
767767
768768 func fj (fk,fl,ab,ac) = {
769769 let fm = (ac == unit)
770770 let fn = bN(bj(br))
771771 let fo = bN(bj(bs))
772772 let fp = if ((fl == br))
773773 then true
774774 else if ((fl == bs))
775775 then false
776776 else aS("invalid asset")
777777 let fq = if (fm)
778778 then $Tuple2(fn, fo)
779779 else if (fp)
780780 then $Tuple2((fn - fk), fo)
781781 else $Tuple2(fn, (fo - fk))
782782 let fr = fq._1
783783 let fs = fq._2
784784 let ft = if (fp)
785785 then $Tuple2(fk, 0)
786786 else $Tuple2(0, fk)
787787 let fu = ft._1
788788 let fv = ft._2
789789 let eM = fh(fu, aX)._1
790790 let eN = fh(fv, aX)._1
791791 let fw = fh(fk, aX)
792792 let fx = fw._1
793793 let fi = fw._2
794794 let fy = (fr + eM)
795795 let fz = (fs + eN)
796796 let fA = bQ(D(fz, bu), D(fy, bt))
797797 let fB = H(fA, b)
798798 let fC = if (fp)
799799 then fr
800800 else fs
801801 let fD = toBigInt(fC)
802802 let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
803803 let fF = if ((fE > f))
804804 then true
805805 else aS("initial deposit requires all coins")
806806 if ((fF == fF))
807807 then {
808808 let fG = toBigInt(fx)
809809 let fH = max([0, toInt(((fE * (sqrtBigInt((d + ((fG * d) / fD)), 18, 18, DOWN) - d)) / d))])
810810 let ep = if (fm)
811811 then nil
812812 else [IntegerEntry(W(), fB), IntegerEntry(X(height, lastBlock.timestamp), fB), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), by(fu, fv, fH, fB, 0, 0, height, lastBlock.timestamp, 0, 0))]
813813 let fI = bQ(D(fs, bu), D(fr, bt))
814814 let fJ = H(fI, b)
815815 let fK = {
816816 let fL = if (fp)
817817 then $Tuple2(fu, fr)
818818 else $Tuple2(fv, fs)
819819 let ca = fL._1
820820 let fM = fL._2
821821 let fN = toInt(fraction(fE, toBigInt((ca / 2)), toBigInt(fM)))
822822 fraction((fH - fN), b, fN)
823823 }
824824 $Tuple5(fH, ep, fi, fK, fp)
825825 }
826826 else throw("Strict value is not equal to itself.")
827827 }
828828
829829
830830 func fO (fP,fx,fl,ab,ac) = {
831831 let fm = (ac == unit)
832832 let dc = be()
833833 let dd = parseIntValue(dc[t])
834834 let de = parseIntValue(dc[u])
835835 let fQ = [if ((fl == bq))
836836 then true
837837 else aS("invalid lp asset")]
838838 if ((fQ == fQ))
839839 then {
840840 let fR = if ((fP == br))
841841 then true
842842 else if ((fP == bs))
843843 then false
844844 else aS("invalid asset")
845845 let fS = if (fR)
846846 then toBigInt(bN(bj(br)))
847847 else toBigInt(bN(bj(bs)))
848848 let fT = if (fR)
849849 then dd
850850 else de
851851 let fU = bN(bj(br))
852852 let fV = bN(bj(bs))
853853 let fW = if (fR)
854854 then fU
855855 else fV
856856 let fX = toBigInt(fW)
857857 let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
858858 let fY = toBigInt(fx)
859859 let fZ = max([0, toInt(((fS * (d - pow((d - ((fY * d) / fE)), 18, h, 0, 18, DOWN))) / d))])
860860 let ga = fh(fZ, aZ)
861861 let gb = ga._1
862862 let fi = ga._2
863863 let gc = if (fR)
864864 then $Tuple4(gb, 0, (fU - fZ), fV)
865865 else $Tuple4(0, gb, fU, (fV - fZ))
866866 let gd = gc._1
867867 let ge = gc._2
868868 let gf = gc._3
869869 let gg = gc._4
870870 let fA = bQ(D(gg, bu), D(gf, bt))
871871 let fB = H(fA, b)
872872 let ep = if (fm)
873873 then nil
874874 else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bJ(gd, ge, fx, fB, height, lastBlock.timestamp)), IntegerEntry(W(), fB), IntegerEntry(X(height, lastBlock.timestamp), fB)]
875875 let fI = bQ(D(fV, bu), D(fU, bt))
876876 let fJ = H(fI, b)
877877 let fK = {
878878 let gh = (toInt(fraction(fS, fY, fE)) * 2)
879879 fraction((gb - gh), b, gh)
880880 }
881881 $Tuple5(gb, ep, fi, fK, fR)
882882 }
883883 else throw("Strict value is not equal to itself.")
884884 }
885885
886886
887887 func gi () = {
888888 let bX = getString(U())
889889 if ($isInstanceOf(bX, "String"))
890890 then {
891891 let gj = bX
892892 fromBase58String(gj)
893893 }
894894 else if ($isInstanceOf(bX, "Unit"))
895895 then unit
896896 else throw("Match error")
897897 }
898898
899899
900900 func gk () = {
901901 let bX = getString(V())
902902 if ($isInstanceOf(bX, "String"))
903903 then {
904904 let gj = bX
905905 fromBase58String(gj)
906906 }
907907 else if ($isInstanceOf(bX, "Unit"))
908908 then unit
909909 else throw("Match error")
910910 }
911911
912912
913913 func gl (eW) = {
914914 let bX = gi()
915915 if ($isInstanceOf(bX, "ByteVector"))
916916 then {
917917 let gm = bX
918918 (eW.callerPublicKey == gm)
919919 }
920920 else if ($isInstanceOf(bX, "Unit"))
921921 then (eW.caller == this)
922922 else throw("Match error")
923923 }
924924
925925
926926 func gn (eW) = {
927927 let go = throw("Permission denied")
928928 let bX = gi()
929929 if ($isInstanceOf(bX, "ByteVector"))
930930 then {
931931 let gm = bX
932932 if ((eW.callerPublicKey == gm))
933933 then true
934934 else go
935935 }
936936 else if ($isInstanceOf(bX, "Unit"))
937937 then if ((eW.caller == this))
938938 then true
939939 else go
940940 else throw("Match error")
941941 }
942942
943943
944944 @Callable(eW)
945945 func rebalance () = (cG(aO(this, ae())) ++ cG(aO(this, af())))
946946
947947
948948
949949 @Callable(eW)
950950 func calculateAmountOutForSwapREADONLY (gp,gq,gr) = {
951951 let gs = if ((gq == false))
952952 then {
953953 let gt = aO(this, af())
954954 let gu = aO(this, ae())
955955 $Tuple2(gt, gu)
956956 }
957957 else {
958958 let gt = aO(this, ae())
959959 let gu = aO(this, af())
960960 $Tuple2(gt, gu)
961961 }
962962 let gt = gs._1
963963 let gu = gs._2
964964 let gv = bN(gu)
965965 let gw = bN(gt)
966966 let gx = fraction(gw, gp, (gv + gp))
967967 let gy = (toBigInt(gv) * toBigInt(gw))
968968 let gz = (((toBigInt(bN(gu)) + toBigInt(gp)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
969969 let gA = if ((gz >= gy))
970970 then true
971971 else throw("new K is fewer error")
972972 if ((gA == gA))
973973 then $Tuple2(nil, gx)
974974 else throw("Strict value is not equal to itself.")
975975 }
976976
977977
978978
979979 @Callable(eW)
980980 func calculateAmountOutForSwapAndSendTokens (gp,gq,gB,gC,gr) = {
981981 let gD = {
982982 let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
983983 if ($isInstanceOf(aY, "String"))
984984 then aY
985985 else throw(($getType(aY) + " couldn't be cast to String"))
986986 }
987987 let fQ = [if ((value(eW.payments[0]).amount >= gp))
988988 then true
989989 else aS("Wrong amount"), if ((eW.caller == addressFromStringValue(gD)))
990990 then true
991991 else aS("Permission denied")]
992992 if ((fQ == fQ))
993993 then {
994994 let eX = value(eW.payments[0])
995995 let gu = bj(eX.assetId)
996996 let gt = if ((gq == false))
997997 then aO(this, af())
998998 else aO(this, ae())
999999 let gv = (bN(gu) - value(eW.payments[0]).amount)
10001000 let gw = bN(gt)
10011001 let gx = fraction(gw, gp, (gv + gp))
10021002 let gy = (toBigInt(gv) * toBigInt(gw))
10031003 let gz = ((toBigInt(bN(gu)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
10041004 let gA = if ((gz >= gy))
10051005 then true
10061006 else throw("new K is fewer error")
10071007 if ((gA == gA))
10081008 then {
10091009 let gE = if ((gx >= gB))
10101010 then true
10111011 else throw("Exchange result is fewer coins than expected")
10121012 if ((gE == gE))
10131013 then {
1014- let gF = {
1015- let bX = cu(gt)
1016- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
1017- then {
1018- let cH = bX
1019- cH
1020- }
1021- else throw("error lease config")
1022- }
1023- let gG = cO(gt, gx)
1024- if ((gG == gG))
1025- then $Tuple2((gG ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
1014+ let gF = cO(gt, gx)
1015+ if ((gF == gF))
1016+ then $Tuple2((gF ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
10261017 else throw("Strict value is not equal to itself.")
10271018 }
10281019 else throw("Strict value is not equal to itself.")
10291020 }
10301021 else throw("Strict value is not equal to itself.")
10311022 }
10321023 else throw("Strict value is not equal to itself.")
10331024 }
10341025
10351026
10361027
10371028 @Callable(eW)
1038-func setManager (gH) = {
1039- let gI = gn(eW)
1040- if ((gI == gI))
1029+func setManager (gG) = {
1030+ let gH = gn(eW)
1031+ if ((gH == gH))
10411032 then {
1042- let gJ = fromBase58String(gH)
1043- if ((gJ == gJ))
1044- then [StringEntry(V(), gH)]
1033+ let gI = fromBase58String(gG)
1034+ if ((gI == gI))
1035+ then [StringEntry(V(), gG)]
10451036 else throw("Strict value is not equal to itself.")
10461037 }
10471038 else throw("Strict value is not equal to itself.")
10481039 }
10491040
10501041
10511042
10521043 @Callable(eW)
10531044 func confirmManager () = {
1054- let gK = gk()
1055- let gL = if (isDefined(gK))
1045+ let gJ = gk()
1046+ let gK = if (isDefined(gJ))
10561047 then true
10571048 else throw("No pending manager")
1058- if ((gL == gL))
1049+ if ((gK == gK))
10591050 then {
1060- let gM = if ((eW.callerPublicKey == value(gK)))
1051+ let gL = if ((eW.callerPublicKey == value(gJ)))
10611052 then true
10621053 else throw("You are not pending manager")
1063- if ((gM == gM))
1064- then [StringEntry(U(), toBase58String(value(gK))), DeleteEntry(V())]
1054+ if ((gL == gL))
1055+ then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
10651056 else throw("Strict value is not equal to itself.")
10661057 }
10671058 else throw("Strict value is not equal to itself.")
10681059 }
10691060
10701061
10711062
10721063 @Callable(eW)
1073-func put (dK,gN) = if ((0 > dK))
1064+func put (dK,gM) = if ((0 > dK))
10741065 then throw("Invalid slippageTolerance passed")
10751066 else {
10761067 let fc = eZ(eW, dK, true)
10771068 let em = fc._2
10781069 let dp = fc._7
10791070 let dI = fc._9
10801071 let en = fc._10
10811072 let eo = fc._11
1082- let gO = fc._12
1083- let gP = fc._13
1073+ let gN = fc._12
1074+ let gO = fc._13
10841075 let fa = toBigInt(value(eW.payments[0]).amount)
10851076 let fb = toBigInt(value(eW.payments[1]).amount)
10861077 let eD = ew(fa, fb, toBigInt(0))
10871078 if ((eD == eD))
10881079 then {
10891080 let fe = invoke(aV, "emit", [em], nil)
10901081 if ((fe == fe))
10911082 then {
10921083 let ff = {
10931084 let bX = fe
10941085 if ($isInstanceOf(bX, "Address"))
10951086 then {
10961087 let fg = bX
10971088 invoke(fg, "emit", [em], nil)
10981089 }
10991090 else unit
11001091 }
11011092 if ((ff == ff))
11021093 then {
1103- let gQ = if ((en > 0))
1104- then invoke(bx, "put", nil, [AttachedPayment(gO, en)])
1094+ let gP = if ((en > 0))
1095+ then invoke(bx, "put", nil, [AttachedPayment(gN, en)])
11051096 else nil
1106- if ((gQ == gQ))
1097+ if ((gP == gP))
11071098 then {
1108- let gR = if ((eo > 0))
1109- then invoke(bx, "put", nil, [AttachedPayment(gP, eo)])
1099+ let gQ = if ((eo > 0))
1100+ then invoke(bx, "put", nil, [AttachedPayment(gO, eo)])
11101101 else nil
1111- if ((gR == gR))
1102+ if ((gQ == gQ))
11121103 then {
1113- let gS = if (gN)
1104+ let gR = if (gM)
11141105 then {
1115- let gT = invoke(bw, "stake", nil, [AttachedPayment(dp, em)])
1116- if ((gT == gT))
1106+ let gS = invoke(bw, "stake", nil, [AttachedPayment(dp, em)])
1107+ if ((gS == gS))
11171108 then nil
11181109 else throw("Strict value is not equal to itself.")
11191110 }
11201111 else [ScriptTransfer(eW.caller, em, dp)]
1121- let gU = eE(0, 0, 0)
1122- if ((gU == gU))
1112+ let gT = eE(0, 0, 0)
1113+ if ((gT == gT))
11231114 then {
1124- let ev = gU._2
1125- let gV = gU._1
1126- let gW = eI(eD, ev)
1127- if ((gW == gW))
1115+ let ev = gT._2
1116+ let gU = gT._1
1117+ let gV = eI(eD, ev)
1118+ if ((gV == gV))
11281119 then {
1129- let gX = invoke(this, "rebalance", nil, nil)
1130- if ((gX == gX))
1131- then ((dI ++ gS) ++ gV)
1120+ let gW = invoke(this, "rebalance", nil, nil)
1121+ if ((gW == gW))
1122+ then ((dI ++ gR) ++ gU)
11321123 else throw("Strict value is not equal to itself.")
11331124 }
11341125 else throw("Strict value is not equal to itself.")
11351126 }
11361127 else throw("Strict value is not equal to itself.")
11371128 }
11381129 else throw("Strict value is not equal to itself.")
11391130 }
11401131 else throw("Strict value is not equal to itself.")
11411132 }
11421133 else throw("Strict value is not equal to itself.")
11431134 }
11441135 else throw("Strict value is not equal to itself.")
11451136 }
11461137 else throw("Strict value is not equal to itself.")
11471138 }
11481139
11491140
11501141
11511142 @Callable(eW)
1152-func putForFree (gY) = if ((0 > gY))
1143+func putForFree (gX) = if ((0 > gX))
11531144 then throw("Invalid value passed")
11541145 else {
1155- let fc = eZ(eW, gY, false)
1146+ let fc = eZ(eW, gX, false)
11561147 let dI = fc._9
11571148 let fa = toBigInt(value(eW.payments[0]).amount)
11581149 let fb = toBigInt(value(eW.payments[1]).amount)
11591150 let eD = ew(fa, fb, toBigInt(0))
11601151 if ((eD == eD))
11611152 then {
1162- let gZ = eE(0, 0, 0)
1163- let gV = gZ._1
1164- let ev = gZ._2
1165- let gW = eI(eD, ev)
1166- if ((gW == gW))
1167- then (dI ++ gV)
1153+ let gY = eE(0, 0, 0)
1154+ let gU = gY._1
1155+ let ev = gY._2
1156+ let gV = eI(eD, ev)
1157+ if ((gV == gV))
1158+ then (dI ++ gU)
11681159 else throw("Strict value is not equal to itself.")
11691160 }
11701161 else throw("Strict value is not equal to itself.")
11711162 }
11721163
11731164
11741165
11751166 @Callable(eW)
1176-func putOneTkn (ha,hb) = {
1177- let hc = {
1167+func putOneTkn (gZ,ha) = {
1168+ let hb = {
11781169 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11791170 if ($isInstanceOf(aY, "Boolean"))
11801171 then aY
11811172 else throw(($getType(aY) + " couldn't be cast to Boolean"))
11821173 }
1183- let hd = if (if (if (bc())
1174+ let hc = if (if (if (bc())
11841175 then true
11851176 else (bp == l))
11861177 then true
11871178 else (bp == n))
11881179 then true
1189- else hc
1190- let fQ = [if (if (!(hd))
1180+ else hb
1181+ let fQ = [if (if (!(hc))
11911182 then true
11921183 else gl(eW))
11931184 then true
11941185 else aS("put operation is blocked by admin"), if ((size(eW.payments) == 1))
11951186 then true
11961187 else aS("exactly 1 payment are expected")]
11971188 if ((fQ == fQ))
11981189 then {
1199- let he = eW.payments[0]
1200- let fl = he.assetId
1201- let fk = he.amount
1190+ let hd = eW.payments[0]
1191+ let fl = hd.assetId
1192+ let fk = hd.amount
12021193 let eD = if ((fl == br))
12031194 then ew(toBigInt(fk), toBigInt(0), toBigInt(0))
12041195 else if ((fl == bs))
12051196 then ew(toBigInt(0), toBigInt(fk), toBigInt(0))
12061197 else aS("payment asset is not supported")
12071198 if ((eD == eD))
12081199 then {
12091200 let ab = eW.caller
12101201 let ac = eW.transactionId
1211- let hf = fj(fk, fl, ab, ac)
1212- if ((hf == hf))
1202+ let he = fj(fk, fl, ab, ac)
1203+ if ((he == he))
12131204 then {
1214- let fp = hf._5
1215- let hg = hf._4
1216- let fi = hf._3
1217- let ep = hf._2
1218- let hh = hf._1
1219- let hi = if (if ((ha > 0))
1220- then (ha > hh)
1205+ let fp = he._5
1206+ let hf = he._4
1207+ let fi = he._3
1208+ let ep = he._2
1209+ let hg = he._1
1210+ let hh = if (if ((gZ > 0))
1211+ then (gZ > hg)
12211212 else false)
1222- then aS(makeString(["amount to receive is less than ", toString(ha)], ""))
1223- else hh
1224- let fe = fd(hi)
1213+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1214+ else hg
1215+ let fe = fd(hh)
12251216 if ((fe == fe))
12261217 then {
1227- let gS = if (hb)
1218+ let gR = if (ha)
12281219 then {
1229- let hj = invoke(bw, "stake", nil, [AttachedPayment(bq, hi)])
1230- if ((hj == hj))
1220+ let hi = invoke(bw, "stake", nil, [AttachedPayment(bq, hh)])
1221+ if ((hi == hi))
12311222 then nil
12321223 else throw("Strict value is not equal to itself.")
12331224 }
1234- else [ScriptTransfer(eW.caller, hi, bq)]
1235- let hk = if ((fi > 0))
1225+ else [ScriptTransfer(eW.caller, hh, bq)]
1226+ let hj = if ((fi > 0))
12361227 then [ScriptTransfer(aW, fi, fl)]
12371228 else nil
1238- let hl = if ((this == aW))
1229+ let hk = if ((this == aW))
12391230 then $Tuple2(0, 0)
12401231 else if (fp)
12411232 then $Tuple2(-(fi), 0)
12421233 else $Tuple2(0, -(fi))
1243- let eF = hl._1
1244- let eG = hl._2
1245- let hm = eE(eF, eG, 0)
1246- let gV = hm._1
1247- let ev = hm._2
1234+ let eF = hk._1
1235+ let eG = hk._2
1236+ let hl = eE(eF, eG, 0)
1237+ let gU = hl._1
1238+ let ev = hl._2
12481239 let eP = value(getString(aj))
1249- let gW = eI(eD, ev)
1250- if ((gW == gW))
1240+ let gV = eI(eD, ev)
1241+ if ((gV == gV))
12511242 then {
1252- let gX = invoke(this, "rebalance", nil, nil)
1253- if ((gX == gX))
1254- then $Tuple2((((ep ++ gS) ++ hk) ++ gV), hi)
1243+ let gW = invoke(this, "rebalance", nil, nil)
1244+ if ((gW == gW))
1245+ then $Tuple2((((ep ++ gR) ++ hj) ++ gU), hh)
12551246 else throw("Strict value is not equal to itself.")
12561247 }
12571248 else throw("Strict value is not equal to itself.")
12581249 }
12591250 else throw("Strict value is not equal to itself.")
12601251 }
12611252 else throw("Strict value is not equal to itself.")
12621253 }
12631254 else throw("Strict value is not equal to itself.")
12641255 }
12651256 else throw("Strict value is not equal to itself.")
12661257 }
12671258
12681259
12691260
12701261 @Callable(eW)
12711262 func putOneTknREADONLY (fl,fk) = {
1272- let hn = fj(fk, bh(fl), unit, unit)
1273- let hh = hn._1
1274- let ep = hn._2
1275- let fi = hn._3
1276- let hg = hn._4
1277- let fp = hn._5
1278- $Tuple2(nil, $Tuple3(hh, fi, hg))
1263+ let hm = fj(fk, bh(fl), unit, unit)
1264+ let hg = hm._1
1265+ let ep = hm._2
1266+ let fi = hm._3
1267+ let hf = hm._4
1268+ let fp = hm._5
1269+ $Tuple2(nil, $Tuple3(hg, fi, hf))
12791270 }
12801271
12811272
12821273
12831274 @Callable(eW)
1284-func getOneTkn (ho,ha) = {
1285- let hc = {
1275+func getOneTkn (hn,gZ) = {
1276+ let hb = {
12861277 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12871278 if ($isInstanceOf(aY, "Boolean"))
12881279 then aY
12891280 else throw(($getType(aY) + " couldn't be cast to Boolean"))
12901281 }
1291- let hp = if (if (bc())
1282+ let ho = if (if (bc())
12921283 then true
12931284 else (bp == n))
12941285 then true
1295- else hc
1296- let fQ = [if (if (!(hp))
1286+ else hb
1287+ let fQ = [if (if (!(ho))
12971288 then true
12981289 else gl(eW))
12991290 then true
13001291 else aS("get operation is blocked by admin"), if ((size(eW.payments) == 1))
13011292 then true
13021293 else aS("exactly 1 payment are expected")]
13031294 if ((fQ == fQ))
13041295 then {
1305- let fP = bh(ho)
1306- let he = eW.payments[0]
1307- let fl = he.assetId
1308- let fx = he.amount
1296+ let fP = bh(hn)
1297+ let hd = eW.payments[0]
1298+ let fl = hd.assetId
1299+ let fx = hd.amount
13091300 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
13101301 if ((eD == eD))
13111302 then {
13121303 let ab = eW.caller
13131304 let ac = eW.transactionId
1314- let hq = fO(fP, fx, fl, ab, ac)
1315- if ((hq == hq))
1305+ let hp = fO(fP, fx, fl, ab, ac)
1306+ if ((hp == hp))
13161307 then {
1317- let fR = hq._5
1318- let hg = hq._4
1319- let fi = hq._3
1320- let ep = hq._2
1321- let hr = hq._1
1322- let ca = if (if ((ha > 0))
1323- then (ha > hr)
1308+ let fR = hp._5
1309+ let hf = hp._4
1310+ let fi = hp._3
1311+ let ep = hp._2
1312+ let hq = hp._1
1313+ let ca = if (if ((gZ > 0))
1314+ then (gZ > hq)
13241315 else false)
1325- then aS(makeString(["amount to receive is less than ", toString(ha)], ""))
1326- else hr
1327- let gF = {
1328- let bX = cu(ho)
1329- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
1330- then {
1331- let cH = bX
1332- cH
1333- }
1334- else throw("error lease config")
1335- }
1336- let hs = invoke(aV, "burn", [fx], [AttachedPayment(fl, fx)])
1337- if ((hs == hs))
1316+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1317+ else hq
1318+ let hr = invoke(aV, "burn", [fx], [AttachedPayment(fl, fx)])
1319+ if ((hr == hr))
13381320 then {
1339- let gG = cO(ho, ca)
1340- if ((gG == gG))
1321+ let gF = cO(hn, ca)
1322+ if ((gF == gF))
13411323 then {
1342- let ht = [ScriptTransfer(ab, ca, fP)]
1343- let hk = if ((fi > 0))
1324+ let hs = [ScriptTransfer(ab, ca, fP)]
1325+ let hj = if ((fi > 0))
13441326 then [ScriptTransfer(aW, fi, fP)]
13451327 else nil
1346- let hu = {
1347- let hv = if ((this == aW))
1328+ let ht = {
1329+ let hu = if ((this == aW))
13481330 then 0
13491331 else fi
13501332 if (fR)
1351- then $Tuple2(-((ca + hv)), 0)
1352- else $Tuple2(0, -((ca + hv)))
1333+ then $Tuple2(-((ca + hu)), 0)
1334+ else $Tuple2(0, -((ca + hu)))
13531335 }
1354- let eF = hu._1
1355- let eG = hu._2
1356- let hw = eE(eF, eG, 0)
1357- let gV = hw._1
1358- let ev = hw._2
1359- let gW = eI(eD, ev)
1360- if ((gW == gW))
1361- then $Tuple2(((((ep ++ gG) ++ ht) ++ hk) ++ gV), ca)
1336+ let eF = ht._1
1337+ let eG = ht._2
1338+ let hv = eE(eF, eG, 0)
1339+ let gU = hv._1
1340+ let ev = hv._2
1341+ let gV = eI(eD, ev)
1342+ if ((gV == gV))
1343+ then $Tuple2(((((ep ++ gF) ++ hs) ++ hj) ++ gU), ca)
13621344 else throw("Strict value is not equal to itself.")
13631345 }
13641346 else throw("Strict value is not equal to itself.")
13651347 }
13661348 else throw("Strict value is not equal to itself.")
13671349 }
13681350 else throw("Strict value is not equal to itself.")
13691351 }
13701352 else throw("Strict value is not equal to itself.")
13711353 }
13721354 else throw("Strict value is not equal to itself.")
13731355 }
13741356
13751357
13761358
13771359 @Callable(eW)
13781360 func getOneTknREADONLY (fP,fx) = {
1379- let hx = fO(bh(fP), fx, bq, unit, unit)
1380- let hr = hx._1
1381- let ep = hx._2
1382- let fi = hx._3
1383- let hg = hx._4
1384- let fR = hx._5
1385- $Tuple2(nil, $Tuple3(hr, fi, hg))
1361+ let hw = fO(bh(fP), fx, bq, unit, unit)
1362+ let hq = hw._1
1363+ let ep = hw._2
1364+ let fi = hw._3
1365+ let hf = hw._4
1366+ let fR = hw._5
1367+ $Tuple2(nil, $Tuple3(hq, fi, hf))
13861368 }
13871369
13881370
13891371
13901372 @Callable(eW)
1391-func unstakeAndGetOneTkn (hy,ho,ha) = {
1392- let hc = {
1373+func unstakeAndGetOneTkn (hx,hn,gZ) = {
1374+ let hb = {
13931375 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13941376 if ($isInstanceOf(aY, "Boolean"))
13951377 then aY
13961378 else throw(($getType(aY) + " couldn't be cast to Boolean"))
13971379 }
1398- let hp = if (if (bc())
1380+ let ho = if (if (bc())
13991381 then true
14001382 else (bp == n))
14011383 then true
1402- else hc
1403- let fQ = [if (if (!(hp))
1384+ else hb
1385+ let fQ = [if (if (!(ho))
14041386 then true
14051387 else gl(eW))
14061388 then true
14071389 else aS("get operation is blocked by admin"), if ((size(eW.payments) == 0))
14081390 then true
14091391 else aS("no payments are expected")]
14101392 if ((fQ == fQ))
14111393 then {
1412- let fP = bh(ho)
1394+ let fP = bh(hn)
14131395 let ab = eW.caller
14141396 let ac = eW.transactionId
14151397 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
14161398 if ((eD == eD))
14171399 then {
1418- let hz = invoke(bw, "unstake", [toBase58String(bq), hy], nil)
1419- if ((hz == hz))
1400+ let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1401+ if ((hy == hy))
14201402 then {
1421- let hA = fO(fP, hy, bq, ab, ac)
1422- if ((hA == hA))
1403+ let hz = fO(fP, hx, bq, ab, ac)
1404+ if ((hz == hz))
14231405 then {
1424- let fR = hA._5
1425- let hg = hA._4
1426- let fi = hA._3
1427- let ep = hA._2
1428- let hr = hA._1
1429- let ca = if (if ((ha > 0))
1430- then (ha > hr)
1406+ let fR = hz._5
1407+ let hf = hz._4
1408+ let fi = hz._3
1409+ let ep = hz._2
1410+ let hq = hz._1
1411+ let ca = if (if ((gZ > 0))
1412+ then (gZ > hq)
14311413 else false)
1432- then aS(makeString(["amount to receive is less than ", toString(ha)], ""))
1433- else hr
1434- let hs = invoke(aV, "burn", [hy], [AttachedPayment(bq, hy)])
1435- if ((hs == hs))
1414+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1415+ else hq
1416+ let hr = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1417+ if ((hr == hr))
14361418 then {
1437- let gG = cO(ho, ca)
1438- if ((gG == gG))
1419+ let gF = cO(hn, ca)
1420+ if ((gF == gF))
14391421 then {
1440- let ht = [ScriptTransfer(eW.caller, ca, fP)]
1441- let hk = if ((fi > 0))
1422+ let hs = [ScriptTransfer(eW.caller, ca, fP)]
1423+ let hj = if ((fi > 0))
14421424 then [ScriptTransfer(aW, fi, fP)]
14431425 else nil
1444- let hB = {
1445- let hv = if ((this == aW))
1426+ let hA = {
1427+ let hu = if ((this == aW))
14461428 then 0
14471429 else fi
14481430 if (fR)
1449- then $Tuple2(-((ca + hv)), 0)
1450- else $Tuple2(0, -((ca + hv)))
1431+ then $Tuple2(-((ca + hu)), 0)
1432+ else $Tuple2(0, -((ca + hu)))
14511433 }
1452- let eF = hB._1
1453- let eG = hB._2
1454- let hC = eE(eF, eG, 0)
1455- let gV = hC._1
1456- let ev = hC._2
1457- let gW = eI(eD, ev)
1458- if ((gW == gW))
1459- then $Tuple2(((((ep ++ gG) ++ ht) ++ hk) ++ gV), ca)
1434+ let eF = hA._1
1435+ let eG = hA._2
1436+ let hB = eE(eF, eG, 0)
1437+ let gU = hB._1
1438+ let ev = hB._2
1439+ let gV = eI(eD, ev)
1440+ if ((gV == gV))
1441+ then $Tuple2(((((ep ++ gF) ++ hs) ++ hj) ++ gU), ca)
14601442 else throw("Strict value is not equal to itself.")
14611443 }
14621444 else throw("Strict value is not equal to itself.")
14631445 }
14641446 else throw("Strict value is not equal to itself.")
14651447 }
14661448 else throw("Strict value is not equal to itself.")
14671449 }
14681450 else throw("Strict value is not equal to itself.")
14691451 }
14701452 else throw("Strict value is not equal to itself.")
14711453 }
14721454 else throw("Strict value is not equal to itself.")
14731455 }
14741456
14751457
14761458
14771459 @Callable(eW)
14781460 func get () = {
14791461 let ea = eV(eW)
1480- let hD = ea._1
1462+ let hC = ea._1
14811463 let dF = ea._2
14821464 let eY = ea._3
14831465 let dn = ea._4
14841466 let dI = ea._5
14851467 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
14861468 if ((eD == eD))
14871469 then {
1488- let hE = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1489- if ((hE == hE))
1470+ let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1471+ if ((hD == hD))
14901472 then {
1491- let hF = eE(-(hD), -(dF), 0)
1492- let gV = hF._1
1493- let ev = hF._2
1494- let gW = eI(eD, ev)
1495- if ((gW == gW))
1496- then (dI ++ gV)
1473+ let hE = eE(-(hC), -(dF), 0)
1474+ let gU = hE._1
1475+ let ev = hE._2
1476+ let gV = eI(eD, ev)
1477+ if ((gV == gV))
1478+ then (dI ++ gU)
14971479 else throw("Strict value is not equal to itself.")
14981480 }
14991481 else throw("Strict value is not equal to itself.")
15001482 }
15011483 else throw("Strict value is not equal to itself.")
15021484 }
15031485
15041486
15051487
15061488 @Callable(eW)
1507-func getNoLess (hG,hH) = {
1489+func getNoLess (hF,hG) = {
15081490 let ea = eV(eW)
15091491 let dE = ea._1
15101492 let dF = ea._2
15111493 let eY = ea._3
15121494 let dn = ea._4
15131495 let dI = ea._5
1514- if ((hG > dE))
1515- then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hG)))
1516- else if ((hH > dF))
1517- then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hH)))
1496+ if ((hF > dE))
1497+ then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hF)))
1498+ else if ((hG > dF))
1499+ then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hG)))
15181500 else {
15191501 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
15201502 if ((eD == eD))
15211503 then {
1522- let hE = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1523- if ((hE == hE))
1504+ let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1505+ if ((hD == hD))
15241506 then {
1525- let hI = eE(-(dE), -(dF), 0)
1526- let gV = hI._1
1527- let ev = hI._2
1528- let gW = eI(eD, ev)
1529- if ((gW == gW))
1530- then (dI ++ gV)
1507+ let hH = eE(-(dE), -(dF), 0)
1508+ let gU = hH._1
1509+ let ev = hH._2
1510+ let gV = eI(eD, ev)
1511+ if ((gV == gV))
1512+ then (dI ++ gU)
15311513 else throw("Strict value is not equal to itself.")
15321514 }
15331515 else throw("Strict value is not equal to itself.")
15341516 }
15351517 else throw("Strict value is not equal to itself.")
15361518 }
15371519 }
15381520
15391521
15401522
15411523 @Callable(eW)
15421524 func unstakeAndGet (ca) = {
1543- let hJ = if ((size(eW.payments) != 0))
1525+ let hI = if ((size(eW.payments) != 0))
15441526 then throw("No payments are expected")
15451527 else true
1546- if ((hJ == hJ))
1528+ if ((hI == hI))
15471529 then {
15481530 let dc = be()
15491531 let dp = fromBase58String(dc[q])
15501532 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
15511533 if ((eD == eD))
15521534 then {
1553- let hz = invoke(bw, "unstake", [toBase58String(dp), ca], nil)
1554- if ((hz == hz))
1535+ let hy = invoke(bw, "unstake", [toBase58String(dp), ca], nil)
1536+ if ((hy == hy))
15551537 then {
15561538 let ea = dl(toBase58String(eW.transactionId), toBase58String(dp), ca, eW.caller)
15571539 let dE = ea._1
15581540 let dF = ea._2
15591541 let ds = parseIntValue(ea._9)
15601542 let dI = ea._10
1561- let hK = if (if (bc())
1543+ let hJ = if (if (bc())
15621544 then true
15631545 else (ds == n))
15641546 then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
15651547 else true
1566- if ((hK == hK))
1548+ if ((hJ == hJ))
15671549 then {
1568- let hE = invoke(aV, "burn", [ca], [AttachedPayment(dp, ca)])
1569- if ((hE == hE))
1550+ let hD = invoke(aV, "burn", [ca], [AttachedPayment(dp, ca)])
1551+ if ((hD == hD))
15701552 then {
1571- let hL = eE(-(dE), -(dF), 0)
1572- let gV = hL._1
1573- let ev = hL._2
1574- let gW = eI(eD, ev)
1575- if ((gW == gW))
1576- then (dI ++ gV)
1553+ let hK = eE(-(dE), -(dF), 0)
1554+ let gU = hK._1
1555+ let ev = hK._2
1556+ let gV = eI(eD, ev)
1557+ if ((gV == gV))
1558+ then (dI ++ gU)
15771559 else throw("Strict value is not equal to itself.")
15781560 }
15791561 else throw("Strict value is not equal to itself.")
15801562 }
15811563 else throw("Strict value is not equal to itself.")
15821564 }
15831565 else throw("Strict value is not equal to itself.")
15841566 }
15851567 else throw("Strict value is not equal to itself.")
15861568 }
15871569 else throw("Strict value is not equal to itself.")
15881570 }
15891571
15901572
15911573
15921574 @Callable(eW)
1593-func unstakeAndGetNoLess (hy,hM,hH) = {
1594- let hp = if (bc())
1575+func unstakeAndGetNoLess (hx,hL,hG) = {
1576+ let ho = if (bc())
15951577 then true
15961578 else (bp == n)
1597- let fQ = [if (!(hp))
1579+ let fQ = [if (!(ho))
15981580 then true
15991581 else throw("get operation is blocked by admin"), if ((size(eW.payments) == 0))
16001582 then true
16011583 else throw("no payments are expected")]
16021584 if ((fQ == fQ))
16031585 then {
16041586 let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
16051587 if ((eD == eD))
16061588 then {
1607- let hz = invoke(bw, "unstake", [toBase58String(bq), hy], nil)
1608- if ((hz == hz))
1589+ let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1590+ if ((hy == hy))
16091591 then {
1610- let ea = dl(toBase58String(eW.transactionId), toBase58String(bq), hy, eW.caller)
1592+ let ea = dl(toBase58String(eW.transactionId), toBase58String(bq), hx, eW.caller)
16111593 let dE = ea._1
16121594 let dF = ea._2
16131595 let dI = ea._10
1614- let hN = [if ((dE >= hM))
1596+ let hM = [if ((dE >= hL))
16151597 then true
1616- else throw(makeString(["amount asset amount to receive is less than ", toString(hM)], "")), if ((dF >= hH))
1598+ else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dF >= hG))
16171599 then true
1618- else throw(makeString(["price asset amount to receive is less than ", toString(hH)], ""))]
1619- if ((hN == hN))
1600+ else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1601+ if ((hM == hM))
16201602 then {
1621- let hE = invoke(aV, "burn", [hy], [AttachedPayment(bq, hy)])
1622- if ((hE == hE))
1603+ let hD = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1604+ if ((hD == hD))
16231605 then {
1624- let hO = eE(-(dE), -(dF), 0)
1625- let gV = hO._1
1626- let ev = hO._2
1627- let gW = eI(eD, ev)
1628- if ((gW == gW))
1629- then (dI ++ gV)
1606+ let hN = eE(-(dE), -(dF), 0)
1607+ let gU = hN._1
1608+ let ev = hN._2
1609+ let gV = eI(eD, ev)
1610+ if ((gV == gV))
1611+ then (dI ++ gU)
16301612 else throw("Strict value is not equal to itself.")
16311613 }
16321614 else throw("Strict value is not equal to itself.")
16331615 }
16341616 else throw("Strict value is not equal to itself.")
16351617 }
16361618 else throw("Strict value is not equal to itself.")
16371619 }
16381620 else throw("Strict value is not equal to itself.")
16391621 }
16401622 else throw("Strict value is not equal to itself.")
16411623 }
16421624
16431625
16441626
16451627 @Callable(eW)
1646-func activate (hP,hQ) = if ((toString(eW.caller) != toString(aV)))
1628+func activate (hO,hP) = if ((toString(eW.caller) != toString(aV)))
16471629 then throw("permissions denied")
1648- else $Tuple2([StringEntry(ae(), hP), StringEntry(af(), hQ)], "success")
1630+ else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
16491631
16501632
16511633
16521634 @Callable(eW)
16531635 func refreshKLp () = {
1654- let hR = valueOrElse(getInteger(ak), 0)
1655- let hS = if (((height - hR) >= an))
1636+ let hQ = valueOrElse(getInteger(ak), 0)
1637+ let hR = if (((height - hQ) >= an))
16561638 then unit
16571639 else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1658- if ((hS == hS))
1640+ if ((hR == hR))
16591641 then {
16601642 let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1661- let hT = eE(0, 0, 0)
1662- let hU = hT._1
1663- let ev = hT._2
1643+ let hS = eE(0, 0, 0)
1644+ let hT = hS._1
1645+ let ev = hS._2
16641646 let eH = if ((eP != ev))
1665- then hU
1647+ then hT
16661648 else aS("nothing to refresh")
16671649 $Tuple2(eH, toString(ev))
16681650 }
16691651 else throw("Strict value is not equal to itself.")
16701652 }
16711653
16721654
16731655
16741656 @Callable(eW)
16751657 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, be())
16761658
16771659
16781660
16791661 @Callable(eW)
16801662 func getAccBalanceWrapperREADONLY (ar) = $Tuple2(nil, bN(ar))
16811663
16821664
16831665
16841666 @Callable(eW)
16851667 func calcPricesWrapperREADONLY (cW,cX,db) = {
16861668 let dk = da(cW, cX, db)
16871669 $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
16881670 }
16891671
16901672
16911673
16921674 @Callable(eW)
16931675 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16941676
16951677
16961678
16971679 @Callable(eW)
16981680 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16991681
17001682
17011683
17021684 @Callable(eW)
17031685 func calcPriceBigIntWrapperREADONLY (bR,bS) = $Tuple2(nil, toString(bQ(parseBigIntValue(bR), parseBigIntValue(bS))))
17041686
17051687
17061688
17071689 @Callable(eW)
17081690 func estimatePutOperationWrapperREADONLY (dm,dK,dL,dM,dN,dO,ab,dP,dQ) = $Tuple2(nil, dJ(dm, dK, dL, dM, dN, dO, ab, dP, dQ))
17091691
17101692
17111693
17121694 @Callable(eW)
17131695 func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
17141696 let ea = dl(dm, dn, do, addressFromStringValue(ab))
17151697 $Tuple2(nil, $Tuple10(ea._1, ea._2, ea._3, ea._4, ea._5, ea._6, ea._7, toString(ea._8), ea._9, ea._10))
17161698 }
17171699
17181700
17191701
17201702 @Callable(eW)
17211703 func statsREADONLY () = {
17221704 let dc = be()
17231705 let dp = fromBase58String(dc[q])
1724- let hV = dc[r]
1725- let hW = dc[s]
1706+ let hU = dc[r]
1707+ let hV = dc[s]
17261708 let dT = dc[v]
17271709 let dU = dc[w]
17281710 let dd = parseIntValue(dc[t])
17291711 let de = parseIntValue(dc[u])
1730- let hX = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1712+ let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1713+ let hX = bN(hU)
17311714 let hY = bN(hV)
1732- let hZ = bN(hW)
1733- let ia = if ((hX == 0))
1715+ let hZ = if ((hW == 0))
17341716 then [e, e, e]
1735- else da(hY, hZ, hX)
1717+ else da(hX, hY, hW)
17361718 let dz = 0
1737- let ib = H(ia[1], b)
1738- let ic = H(ia[2], b)
1739- let id = value(getInteger(aV, aF(toString(this))))
1740- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hY), toString(hZ), toString(hX), toString(dz), toString(ib), toString(ic), toString(id)], j))
1719+ let ia = H(hZ[1], b)
1720+ let ib = H(hZ[2], b)
1721+ let ic = value(getInteger(aV, aF(toString(this))))
1722+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hX), toString(hY), toString(hW), toString(dz), toString(ia), toString(ib), toString(ic)], j))
17411723 }
17421724
17431725
17441726
17451727 @Callable(eW)
17461728 func evaluatePutByAmountAssetREADONLY (dL) = {
17471729 let dc = be()
17481730 let dp = fromBase58String(dc[q])
17491731 let dR = dc[r]
17501732 let dq = fromBase58String(dR)
17511733 let dS = dc[s]
17521734 let dr = fromBase58String(dS)
17531735 let dd = parseIntValue(dc[t])
17541736 let de = parseIntValue(dc[u])
17551737 let ds = dc[p]
1756- let hX = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1757- let hY = bN(dR)
1758- let hZ = bN(dS)
1759- let cY = D(hY, dd)
1760- let cZ = D(hZ, de)
1761- let dy = if ((hX == 0))
1738+ let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1739+ let hX = bN(dR)
1740+ let hY = bN(dS)
1741+ let cY = D(hX, dd)
1742+ let cZ = D(hY, de)
1743+ let dy = if ((hW == 0))
17621744 then e
17631745 else bQ(cZ, cY)
17641746 let dX = D(dL, dd)
17651747 let dY = fraction(dX, dy, d)
17661748 let dN = H(dY, de)
17671749 let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
17681750 let ei = fc._1
1769- let ie = fc._3
1751+ let id = fc._3
17701752 let du = fc._4
17711753 let dw = fc._5
17721754 let dt = fc._6
17731755 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ei), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dL), toString(dN)], j))
17741756 }
17751757
17761758
17771759
17781760 @Callable(eW)
17791761 func evaluatePutByPriceAssetREADONLY (dN) = {
17801762 let dc = be()
17811763 let dp = fromBase58String(dc[q])
17821764 let dR = dc[r]
17831765 let dq = fromBase58String(dR)
17841766 let dS = dc[s]
17851767 let dr = fromBase58String(dS)
17861768 let dd = parseIntValue(dc[t])
17871769 let de = parseIntValue(dc[u])
17881770 let ds = dc[p]
1789- let hX = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1790- let if = bN(dR)
1791- let ig = bN(dS)
1792- let ih = D(if, dd)
1793- let ii = D(ig, de)
1794- let dy = if ((hX == 0))
1771+ let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1772+ let ie = bN(dR)
1773+ let if = bN(dS)
1774+ let ig = D(ie, dd)
1775+ let ih = D(if, de)
1776+ let dy = if ((hW == 0))
17951777 then e
1796- else bQ(ii, ih)
1778+ else bQ(ih, ig)
17971779 let dY = D(dN, de)
17981780 let dX = fraction(dY, d, dy)
17991781 let dL = H(dX, dd)
18001782 let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
18011783 let ei = fc._1
1802- let ie = fc._3
1784+ let id = fc._3
18031785 let du = fc._4
18041786 let dw = fc._5
18051787 let dt = fc._6
18061788 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ei), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dL), toString(dN)], j))
18071789 }
18081790
18091791
18101792
18111793 @Callable(eW)
1812-func evaluateGetREADONLY (ij,ik) = {
1813- let ea = dl("", ij, ik, this)
1794+func evaluateGetREADONLY (ii,ij) = {
1795+ let ea = dl("", ii, ij, this)
18141796 let dE = ea._1
18151797 let dF = ea._2
18161798 let du = ea._5
18171799 let dw = ea._6
18181800 let dt = ea._7
18191801 let dz = ea._8
18201802 let ds = parseIntValue(ea._9)
18211803 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dE), toString(dF), toString(du), toString(dw), toString(dt), toString(dz), toString(ds)], j))
18221804 }
18231805
18241806
1825-@Verifier(il)
1826-func im () = {
1827- let in = {
1807+@Verifier(ik)
1808+func il () = {
1809+ let im = {
18281810 let bX = gi()
18291811 if ($isInstanceOf(bX, "ByteVector"))
18301812 then {
18311813 let gm = bX
18321814 gm
18331815 }
18341816 else if ($isInstanceOf(bX, "Unit"))
1835- then il.senderPublicKey
1817+ then ik.senderPublicKey
18361818 else throw("Match error")
18371819 }
1838- let bX = il
1820+ let bX = ik
18391821 if ($isInstanceOf(bX, "Order"))
18401822 then {
18411823 let eL = bX
1842- let io = bd()
1843- let ip = eK(eL)
1844- let aK = ip._1
1845- let aL = ip._2
1824+ let in = bd()
1825+ let io = eK(eL)
1826+ let aK = io._1
1827+ let aL = io._2
18461828 let aM = sigVerify(eL.bodyBytes, eL.proofs[0], eL.senderPublicKey)
1847- let aN = sigVerify(eL.bodyBytes, eL.proofs[1], io)
1829+ let aN = sigVerify(eL.bodyBytes, eL.proofs[1], in)
18481830 if (if (if (aK)
18491831 then aM
18501832 else false)
18511833 then aN
18521834 else false)
18531835 then true
18541836 else aJ(aK, aL, aM, aN)
18551837 }
18561838 else if ($isInstanceOf(bX, "SetScriptTransaction"))
18571839 then {
18581840 let gj = bX
1859- if (sigVerify(il.bodyBytes, il.proofs[0], in))
1841+ if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
18601842 then true
18611843 else {
1862- let iq = blake2b256(value(gj.script))
1863- let ir = fromBase64String(value(getString(aV, aH())))
1864- let is = scriptHash(this)
1865- if ((ir == iq))
1866- then (is != iq)
1844+ let ip = blake2b256(value(gj.script))
1845+ let iq = fromBase64String(value(getString(aV, aH())))
1846+ let ir = scriptHash(this)
1847+ if ((iq == ip))
1848+ then (ir != ip)
18671849 else false
18681850 }
18691851 }
1870- else sigVerify(il.bodyBytes, il.proofs[0], in)
1852+ else sigVerify(ik.bodyBytes, ik.proofs[0], im)
18711853 }
18721854

github/deemru/w8io/873ac7e 
982.48 ms