tx · 2fhmSZLfZQPcFAL3sxduS5WikAZfmqJZ5ABJ79NKjzmP

3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT:  -0.04200000 Waves

2023.04.05 12:18 [2521051] smart account 3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT > SELF 0.00000000 Waves

{ "type": 13, "id": "2fhmSZLfZQPcFAL3sxduS5WikAZfmqJZ5ABJ79NKjzmP", "fee": 4200000, "feeAssetId": null, "timestamp": 1680686341609, "version": 2, "chainId": 84, "sender": "3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT", "senderPublicKey": "AYbpHveq7zviKTDV7SGTB1pZGFbkumgfq3jSwVv6BznT", "proofs": [ "4UaLHKmA67j8hyZBrvP86Mz5gkKxurd4uSquuDnk6S7HCLp9Wzcunf7bC5GJ43j4nvB18aJUQLh4GHeYUBMSG4FA" ], "script": "base64:BgL8NggCEgASBQoDAQQBEgcKBQEEAQgBEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50Igxzd2FwQ29udHJhY3QiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIUa2V5QWRkaXRpb25hbEJhbGFuY2UiB2Fzc2V0SWQiFmtleVN0YWtpbmdBc3NldEJhbGFuY2UiGmdldEFkZGl0aW9uYWxCYWxhbmNlT3JaZXJvIhxnZXRTdGFraW5nQXNzZXRCYWxhbmNlT3JaZXJvIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCIOb3JkZXJWYWxpZEluZm8iC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IgxnZXRJbnRPckZhaWwiCHRocm93RXJyIgNtc2ciBmZtdEVyciIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIgVpbkZlZSIBQCIGb3V0RmVlIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDg5NjI5MTI4Ig5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIg1iYWxhbmNlT25Qb29sIgx0b3RhbEJhbGFuY2UiD2NhbGNQcmljZUJpZ0ludCIIcHJBbXRYMTgiCGFtQW10WDE4IhRjYWxjUHJpY2VCaWdJbnRSb3VuZCIHZ2V0UmF0ZSIFcHJveHkiA2ludiIHJG1hdGNoMCIBciIHZGVwb3NpdCIGYW1vdW50Ig5zdGFraW5nQXNzZXRJZCIYY3VycmVudEFkZGl0aW9uYWxCYWxhbmNlIhpjdXJyZW50U3Rha2luZ0Fzc2V0QmFsYW5jZSIFYXNzZXQiDWRlcG9zaXRJbnZva2UiFHJlY2VpdmVkU3Rha2luZ0Fzc2V0IhRuZXdBZGRpdGlvbmFsQmFsYW5jZSIWbmV3U3Rha2luZ0Fzc2V0QmFsYW5jZSIId2l0aGRyYXciDHByb3h5UmF0ZU11bCINcHJvZml0QWRkcmVzcyIQY3VycmVudFByb3h5UmF0ZSIHb2xkUmF0ZSIMc3Rha2luZ0Fzc2V0IhRvbGRTZW5kU3Rha2luZ0Ftb3VudCIWc2VuZFN0YWtpbmdBc3NldEFtb3VudCIMcHJvZml0QW1vdW50Ig53aXRoZHJhd0ludm9rZSIOcmVjZWl2ZWRBc3NldHMiE2dldExlYXNlUHJveHlDb25maWciEXJlYmFsYW5jZUludGVybmFsIgt0YXJnZXRSYXRpbyIKbWluQmFsYW5jZSIQYXZhaWxhYmxlQmFsYW5jZSIBYiIBdSIMd2hvbGVCYWxhbmNlIhd0YXJnZXRBZGRpdGlvbmFsQmFsYW5jZSIEZGlmZiIPc2VuZEFzc2V0QW1vdW50Ig5nZXRBc3NldEFtb3VudCIOcmViYWxhbmNlQXNzZXQiAWEiDSR0MDE1NDc5MTU1ODgiCmlzTGVhc2FibGUiC2xlYXNlZFJhdGlvIgxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIUc3Rha2luZ1Byb2ZpdEFkZHJlc3MiFWdldFdpdGhkcmF3QXNzZXRTdGF0ZSIJZ2V0QW1vdW50Ig0kdDAxNjE4MTE2MjkwIhNuZXdUb3RhbENhbGNCYWxhbmNlIg53aXRoZHJhd0Ftb3VudCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IhJBbUFtdFdpdGhkcmF3U3RhdGUiElByQW10V2l0aGRyYXdTdGF0ZSIFc3RhdGUiFGVzdGltYXRlUHV0T3BlcmF0aW9uIhFzbGlwcGFnZVRvbGVyYW5jZSIMaW5BbUFzc2V0QW10IgtpbkFtQXNzZXRJZCIMaW5QckFzc2V0QW10IgtpblByQXNzZXRJZCIKaXNFdmFsdWF0ZSIGZW1pdExwIgxhbUFzc2V0SWRTdHIiDHByQXNzZXRJZFN0ciILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiDmluQW1Bc3NldElkU3RyIg5pblByQXNzZXRJZFN0ciIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIDcmVzIgtzbGlwcGFnZVgxOCIUc2xpcHBhZ2VUb2xlcmFuY2VYMTgiCnByVmlhQW1YMTgiCmFtVmlhUHJYMTgiDGV4cGVjdGVkQW10cyIRZXhwQW10QXNzZXRBbXRYMTgiE2V4cFByaWNlQXNzZXRBbXRYMTgiCWNhbGNMcEFtdCIOY2FsY0FtQXNzZXRQbXQiDmNhbGNQckFzc2V0UG10IgxzbGlwcGFnZUNhbGMiCWVtaXRMcEFtdCIGYW1EaWZmIgZwckRpZmYiC2NvbW1vblN0YXRlIgdjYWxjS0xwIg1hbW91bnRCYWxhbmNlIgxwcmljZUJhbGFuY2UiEGFtb3VudEJhbGFuY2VYMTgiD3ByaWNlQmFsYW5jZVgxOCIKdXBkYXRlZEtMcCIOY2FsY0N1cnJlbnRLTHAiEGFtb3VudEFzc2V0RGVsdGEiD3ByaWNlQXNzZXREZWx0YSIUbHBBc3NldEVtaXNzaW9uRGVsdGEiEmFtb3VudEFzc2V0QmFsYW5jZSIRcHJpY2VBc3NldEJhbGFuY2UiD2xwQXNzZXRFbWlzc2lvbiIKY3VycmVudEtMcCIScmVmcmVzaEtMcEludGVybmFsIhdhbW91bnRBc3NldEJhbGFuY2VEZWx0YSIWcHJpY2VBc3NldEJhbGFuY2VEZWx0YSIHYWN0aW9ucyISdmFsaWRhdGVVcGRhdGVkS0xwIgZvbGRLTHAiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiEWFtb3VudEFzc2V0QW1vdW50IhBwcmljZUFzc2V0QW1vdW50Ig0kdDAyODM3MjI4NTg0IgNrTHAiDSR0MDI5MDI0MjkxMjQiDXVudXNlZEFjdGlvbnMiBmtMcE5ldyIMaXNPcmRlclZhbGlkIgRpbmZvIgljb21tb25HZXQiAWkiA3BtdCIGcG10QW10Igljb21tb25QdXQiCmFtQXNzZXRQbXQiCnByQXNzZXRQbXQiBmVzdFB1dCIEZW1pdCIHZW1pdEludiINZW1pdEludkxlZ2FjeSIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0Igd0YWtlRmVlIglmZWVBbW91bnQiD2NhbGNQdXRPbmVUb2tlbiIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiBmlzRXZhbCIQYW1vdW50QmFsYW5jZVJhdyIPcHJpY2VCYWxhbmNlUmF3IhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwMzIyMzczMjUzMCIQYW1vdW50QmFsYW5jZU9sZCIPcHJpY2VCYWxhbmNlT2xkIg0kdDAzMjUzNDMyNjgzIhRhbW91bnRBc3NldEFtb3VudFJhdyITcHJpY2VBc3NldEFtb3VudFJhdyINJHQwMzI4MTUzMjg3OSINcGF5bWVudEFtb3VudCIQYW1vdW50QmFsYW5jZU5ldyIPcHJpY2VCYWxhbmNlTmV3IgtwcmljZU5ld1gxOCIIcHJpY2VOZXciDnBheW1lbnRCYWxhbmNlIhRwYXltZW50QmFsYW5jZUJpZ0ludCIMc3VwcGx5QmlnSW50IgtjaGVjaFN1cHBseSINZGVwb3NpdEJpZ0ludCILaXNzdWVBbW91bnQiC3ByaWNlT2xkWDE4IghwcmljZU9sZCIEbG9zcyINJHQwMzQ1NjAzNDcyNyIHYmFsYW5jZSIPaXNzdWVBbW91bnRCb3RoIg9jYWxjR2V0T25lVG9rZW4iCm91dEFzc2V0SWQiBmNoZWNrcyIQb3V0SW5BbW91bnRBc3NldCINYmFsYW5jZUJpZ0ludCIYb3V0SW5BbW91bnRBc3NldERlY2ltYWxzIgxhbUJhbGFuY2VPbGQiDHByQmFsYW5jZU9sZCIKb3V0QmFsYW5jZSIQb3V0QmFsYW5jZUJpZ0ludCIOcmVkZWVtZWRCaWdJbnQiCWFtb3VudFJhdyINJHQwMzY4MDUzNjg2MSILdG90YWxBbW91bnQiDSR0MDM2ODY1MzcwOTEiC291dEFtQW1vdW50IgtvdXRQckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciGGFtb3VudEJvdGhJblBheW1lbnRBc3NldCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiCWlzTWFuYWdlciICcGsiC211c3RNYW5hZ2VyIgJwZCINY2xlYW5BbW91bnRJbiIJaXNSZXZlcnNlIg1mZWVQb29sQW1vdW50Ig0kdDAzODk3NzM5MjgyIghhc3NldE91dCIHYXNzZXRJbiIScG9vbEFzc2V0SW5CYWxhbmNlIhNwb29sQXNzZXRPdXRCYWxhbmNlIglhbW91bnRPdXQiBG9sZEsiBG5ld0siBmNoZWNrSyIMYW1vdW50T3V0TWluIglhZGRyZXNzVG8iC3N3YXBDb250YWN0IghjaGVja01pbiINd2l0aGRyYXdTdGF0ZSIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiC2NoZWNrQ2FsbGVyIhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIPc2hvdWxkQXV0b1N0YWtlIgRhbUlkIgRwcklkIgxzbGlwcGFnZUFJbnYiDHNsaXBwYWdlUEludiIKbHBUcmFuc2ZlciILc2xwU3Rha2VJbnYiDSR0MDQ0MjU1NDQ3MTciEXJlZnJlc2hLTHBBY3Rpb25zIhFpc1VwZGF0ZWRLTHBWYWxpZCIDcmViIgttYXhTbGlwcGFnZSINJHQwNDUzMjk0NTM5NCIMbWluT3V0QW1vdW50IglhdXRvU3Rha2UiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg1pc1B1dERpc2FibGVkIgdwYXltZW50Ig0kdDA0NjU4MjQ2NzM0IgVib251cyITZW1pdEFtb3VudEVzdGltYXRlZCIKZW1pdEFtb3VudCIIc3Rha2VJbnYiB3NlbmRGZWUiDSR0MDQ3MzIwNDc1MTciDSR0MDQ3NTIwNDc2MjgiDSR0MDQ3OTgzNDgxNDAiDW91dEFzc2V0SWRTdHIiDWlzR2V0RGlzYWJsZWQiDSR0MDQ5MDI1NDkxNzgiD2Ftb3VudEVzdGltYXRlZCIHYnVybkludiINYXNzZXRUcmFuc2ZlciINJHQwNDk3NDg0OTk5NSIQZmVlQW1vdW50Rm9yQ2FsYyINJHQwNDk5OTg1MDEwNiINJHQwNTAzODQ1MDU0MCINdW5zdGFrZUFtb3VudCIKdW5zdGFrZUludiINJHQwNTE0NDU1MTU5NiINJHQwNTIxNjE1MjQwOCINJHQwNTI0MTE1MjUxOSIJb3V0QW10QW10IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTM0ODY1MzU2OCISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNTQ1MTc1NDU5OCINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA1NTcyNDU1ODA1IhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNTcxMDA1NzE4MSILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDU4MzY4NTg0MzIiEGtMcFVwZGF0ZUFjdGlvbnMiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCINcG9vbExQQmFsYW5jZSISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA2NzA5NDY3MTYzIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2h+AAFhAAgAAWIAgMLXLwABYwkAtgIBAIDC1y8AAWQJALYCAQCAgJC7utat8A0AAWUJALYCAQAAAAFmCQC2AgEAAAABZwkAtgIBAAEAAWgJALYCAQACAAFpAgVXQVZFUwABagICX18AAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAAKAAF5AAEAAXoAAgABQQADAAFCAAEAAUMABwEBRAIBRQFGCQC8AgMJALYCAQUBRQUBZAkAtgIBBQFGAQFHAgFFAUYJALwCAwUBRQUBZAUBRgEBSAIBSQFKCQCgAwEJALwCAwUBSQkAtgIBBQFKBQFkAQFLAwFJAUoBTAkAoAMBCQC9AgQFAUkJALYCAQUBSgUBZAUBTAEBTQMBTgFPAVAJAGsDBQFOBQFPBQFQAQFRAQFJAwkAZgIAAAUBSQkBAS0BBQFJBQFJAQFSAQFJAwkAvwICBQFlBQFJCQC+AgEFAUkFAUkBAVMAAhAlc19fc3dhcENvbnRyYWN0AQFUAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFXAAIRJXMlc19fcHJpY2VfX2xhc3QBAVgCAVkBWgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQFaBQNuaWwFAWoBAmFhAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFiAgJfXwUCYWMBAmFkAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFiAgJfXwUCYWMBAmFlAAIPJXNfX2Ftb3VudEFzc2V0AQJhZgACDiVzX19wcmljZUFzc2V0AAJhZwIHJXNfX2ZlZQACYWgJAGsDAAoFAWIAkE4AAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFnBQJhaAACYWoJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBagACYWsJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBagACYWwJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoS0xwRGVsYXkFA25pbAUBagACYW0AHgACYW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWwFAmFtAQJhbwECYXAJALkJAgkAzAgCAgQlcyVzCQDMCAICDXN0YWtlZEJhbGFuY2UJAMwIAgUCYXAFA25pbAUBagECYXEBAmFwCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFzaGFyZUFzc2V0QmFsYW5jZQkAzAgCBQJhcAUDbmlsBQFqAQJhcgECYXAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFvAQUCYXAAAAECYXMBAmFwCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhcQEFAmFwAAABAmF0AAIRJXNfX2ZhY3RvcnlDb25maWcBAmF1AAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhdgECYXcJAKwCAgkArAICAgglcyVzJXNfXwUCYXcCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJheAICYXkCYXoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmF5AgJfXwUCYXoCCF9fY29uZmlnAQJhQQECYUIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYUIBAmFDAAIMJXNfX3NodXRkb3duAQJhRAECYUUJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhRQECYUYAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYUcCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhSAQCYUkCYUoCYUsCYUwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIkb3JkZXIgdmFsaWRhdGlvbiBmYWlsZWQ6IG9yZGVyVmFsaWQ9CQClAwEFAmFJAgIgKAUCYUoCASkCDSBzZW5kZXJWYWxpZD0JAKUDAQUCYUsCDiBtYXRjaGVyVmFsaWQ9CQClAwEFAmFMAQJhTQICYU4CYU8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhTgUCYU8JALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYU4JAMwIAgIBLgkAzAgCBQJhTwkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhUAICYU4CYU8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJhTgUCYU8JALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYU4JAMwIAgIBLgkAzAgCBQJhTwkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhUQECYVIJAAIBCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYVIFA25pbAIBIAECYVMBAmFSCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYVIFA25pbAIBIAACYVQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhTQIFBHRoaXMJAQFUAAACYVUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhTQIFAmFUBQJhRwACYVYKAAJhVwkA/AcEBQJhVAIQZ2V0SW5GZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFXAgNJbnQFAmFXCQACAQkArAICCQADAQUCYVcCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAACYVgKAAJhVwkA/AcEBQJhVAIRZ2V0T3V0RmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIDSW50BQJhVwkAAgEJAKwCAgkAAwEFAmFXAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmFZAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhVAkBAmFDAAcBAmFaAAkA2QQBCQECYU0CBQJhVAkBAmF1AAECYmEABAJiYgkBAmFNAgUEdGhpcwkBAmFlAAQCYmMJAQJhTQIFBHRoaXMJAQJhZgAEAmF6CQECYVACBQJhVAkBAmFBAQUCYmMEAmF5CQECYVACBQJhVAkBAmFBAQUCYmIJALUJAgkBAmFNAgUCYVQJAQJheAIJAKQDAQUCYXkJAKQDAQUCYXoFAWoBAmJkAQJiZQMJAAACBQJiZQUBaQUEdW5pdAkA2QQBBQJiZQECYmYBAmJlAwkAAAIFAmJlBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmJlAQJiZwECYmgJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiaAUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJoBQFwCQDZBAEJAJEDAgUCYmgFAXEJAQJiZAEJAJEDAgUCYmgFAXIJAQJiZAEJAJEDAgUCYmgFAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiaAUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJoBQF1AAJiaQkBAmJnAQkBAmJhAAACYmoFAmJpAAJiawgFAmJqAl8xAAJibAgFAmJqAl8yAAJibQgFAmJqAl8zAAJibggFAmJqAl80AAJibwgFAmJqAl81AAJicAgFAmJqAl82AAJicQgFAmJqAl83AQJicgAJALUJAgkBAmFNAgUCYVQJAQJhdAAFAWoAAmJzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYnIABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJidAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJyAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYnUKAmJ2AmJ3AmJ4AmJ5AmJ6AmJBAmJCAmJDAmJEAmJFCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJidgkAzAgCCQCkAwEFAmJ3CQDMCAIJAKQDAQUCYngJAMwIAgkApAMBBQJieQkAzAgCCQCkAwEFAmJ6CQDMCAIJAKQDAQUCYkEJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJDCQDMCAIJAKQDAQUCYkQJAMwIAgkApAMBBQJiRQUDbmlsBQFqAQJiRgYCYkcCYkgCYkkCYnkCYkICYkMJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiRwkAzAgCCQCkAwEFAmJICQDMCAIJAKQDAQUCYkkJAMwIAgkApAMBBQJieQkAzAgCCQCkAwEFAmJCCQDMCAIJAKQDAQUCYkMFA25pbAUBagECYkoBAmFwBAJiSwMJAAACBQJhcAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYXAEAmJMCQBlAgkAZAIFAmJLCQECYXIBBQJhcAkBAmFzAQUCYXAJAJYDAQkAzAgCAAAJAMwIAgUCYkwFA25pbAECYk0CAmJOAmJPCQC8AgMFAmJOBQFkBQJiTwECYlADAmJOAmJPAUwJAL0CBAUCYk4FAWQFAmJPBQFMAQJiUQECYlIEAmJTCQD8BwQFAmJSAgdnZXRSYXRlBQNuaWwFA25pbAMJAAACBQJiUwUCYlMEAmJUBQJiUwMJAAECBQJiVAIDSW50BAJiVQUCYlQFAmJVCQECYVEBAiBwcm94eS5nZXRSYXRlKCkgdW5leHBlY3RlZCB2YWx1ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYlYEAmFwAmJXAmJYAmJSBAJiWQkBAmFyAQUCYXADCQAAAgUCYlkFAmJZBAJiWgkBAmFzAQUCYlgDCQAAAgUCYloFAmJaBAJjYQkBAmJkAQUCYXADCQBmAgUCYlcAAAQCY2IJAPwHBAUCYlICB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY2EFAmJXBQNuaWwDCQAAAgUCY2IFAmNiBAJiVAUCY2IDCQABAgUCYlQCA0ludAQCY2MFAmJUBAJjZAkAZAIFAmJZBQJiVwQCY2UJAGQCBQJiWgUCY2MJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbwEFAmFwBQJjZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAQUCYlgFAmNlBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjZgYCYXACYlcCYlgCYlICY2cCY2gEAmJZCQECYXIBBQJhcAMJAAACBQJiWQUCYlkEAmJaCQECYXMBBQJiWAMJAAACBQJiWgUCYloEAmNpCQECYlEBBQJiUgMJAAACBQJjaQUCY2kEAmNqCQBrAwUCY2cFAmJZBQJiWgQCY2sJAQJiZAEFAmJYBAJjbAkAawMFAmNnBQJiVwUCY2oEAmNtCQBrAwUCY2cFAmJXBQJjaQQCY24JAJYDAQkAzAgCAAAJAMwIAgkAZQIFAmNsBQJjbQUDbmlsAwkAZgIFAmNtAAAEAmNvCQD8BwQFAmJSAgh3aXRoZHJhdwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjawUCY20FA25pbAMJAAACBQJjbwUCY28EAmJUBQJjbwMJAAECBQJiVAIDSW50BAJjcAUCYlQEAmNkCQBlAgUCYlkFAmNwBAJjZQkAZQIJAGUCBQJiWgUCY20FAmNuCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8BBQJhcAUCY2QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQEFAmJYBQJjZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJjaAUCY24JAQJiZAEFAmJYBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjcQECYXAJAPwHBAUCYVQCGmdldFBvb2xMZWFzZUNvbmZpZ1JFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwkAzAgCBQJhcAUDbmlsBQNuaWwBAmNyBwJjcwJhcAJiWAJjdAJiUgJjZwJjaAQCYlkJAQJhcgEFAmFwAwkAAAIFAmJZBQJiWQQCYloJAQJhcwEFAmJYAwkAAAIFAmJaBQJiWgQCY3UEAmJUCQECYmQBBQJhcAMJAAECBQJiVAIKQnl0ZVZlY3RvcgQCY3YFAmJUCQDwBwIFBHRoaXMFAmN2AwkAAQIFAmJUAgRVbml0BAJjdwUCYlQICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQACAQILTWF0Y2ggZXJyb3IDCQAAAgUCY3UFAmN1BAJjeAkAlgMBCQDMCAIAAAkAzAgCCQBlAgkAZAIFAmN1BQJiWQUCY3QFA25pbAQCY3kJAGsDBQJjcwUCY3gAZAQCY3oJAGUCBQJiWQUCY3kDCQAAAgUCY3oAAAUDbmlsAwkAZgIAAAUCY3oEAmNBCQEBLQEFAmN6CQECYlYEBQJhcAUCY0EFAmJYBQJiUgQCY0IFAmN6CQECY2YGBQJhcAUCY0IFAmJYBQJiUgUCY2cFAmNoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjQwECYXAEAmJUCQECY3EBBQJhcAMJAAECBQJiVAIwKEJvb2xlYW4sIEludCwgSW50LCBTdHJpbmcsIFN0cmluZywgSW50LCBTdHJpbmcpBAJjRAUCYlQEAmNFBQJjRAQCY0YIBQJjRQJfMQQCY0cIBQJjRQJfMgQCY3QIBQJjRQJfMwQCY0gIBQJjRQJfNAQCY0kIBQJjRQJfNQQCY2cIBQJjRQJfNgQCY0oIBQJjRQJfNwMFAmNGCQECY3IHBQJjRwUCYXAFAmNJBQJjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0gFAmNnCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjSgUDbmlsCQECYVEBCQCsAgIJAKwCAgIBWwUCYXACEV0gUmViYWxhbmNlIGVycm9yAQJjSwICYXACY0wEAmJUCQECY3EBBQJhcAMJAAECBQJiVAIwKEJvb2xlYW4sIEludCwgSW50LCBTdHJpbmcsIFN0cmluZywgSW50LCBTdHJpbmcpBAJjRAUCYlQEAmNNBQJjRAQCY0YIBQJjTQJfMQQCY0cIBQJjTQJfMgQCY3QIBQJjTQJfMwQCY0gIBQJjTQJfNAQCY0kIBQJjTQJfNQQCY2cIBQJjTQJfNgQCY0oIBQJjTQJfNwMFAmNGBAJjTgkAlgMBCQDMCAIAAAkAzAgCCQBlAgkAZQIJAQJiSgEFAmFwBQJjTAUCY3QFA25pbAMJAAACBQJjTgUCY04EAmNkCQBrAwUCY0cFAmNOAGQDCQAAAgUCY2QFAmNkBAJjTwkAlgMBCQDMCAIAAAkAzAgCCQBlAgkBAmFyAQUCYXAFAmNkBQNuaWwDCQAAAgUCY08FAmNPCQECY2YGBQJhcAUCY08FAmNJCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjSAUCY2cJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNKCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwJAQJhUQEJAKwCAgkArAICAgFbBQJhcAIfXSBnZXRXaXRoZHJhd0Fzc2V0U3RhdGUoKSBlcnJvcgECY1AEAmNRAmNSAmNTAmNUBAJjVQkBAUQCBQJjUwUCY1EEAmNWCQEBRAIFAmNUBQJjUgkBAmJNAgUCY1YFAmNVAQJjVwMCY1MCY1QCY1gEAmNZCQECYmEABAJjWgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF0BAJkYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF1BAJkYgkBAmNQBAUCY1oFAmRhBQJjUwUCY1QEAmJPCQEBRAIFAmNTBQJjWgQCYk4JAQFEAgUCY1QFAmRhBAJkYwkBAUQCBQJjWAUBYgQCZGQJAQJiTQIFAmJPBQJkYwQCZGUJAQJiTQIFAmJOBQJkYwkAzAgCBQJkYgkAzAgCBQJkZAkAzAgCBQJkZQUDbmlsAQJkZgMCY1MCY1QCY1gEAmRnCQECY1cDBQJjUwUCY1QFAmNYCQDMCAIJAQFIAgkAkQMCBQJkZwAABQFiCQDMCAIJAQFIAgkAkQMCBQJkZwABBQFiCQDMCAIJAQFIAgkAkQMCBQJkZwACBQFiBQNuaWwBAmRoBAJkaQJkagJkawJhYgQCY1kJAQJiYQAEAmRsCQCRAwIFAmNZBQFxBAJkbQkAkQMCBQJjWQUBcgQCZG4JAJEDAgUCY1kFAXMEAmNRCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXQEAmNSCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXUEAmRvCQCRAwIFAmNZBQFwBAJkcAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmRsCQCsAgIJAKwCAgIGQXNzZXQgBQJkbAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJkbAUCZGoJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmRxCQECYkoBBQJkbQQCZHIJAQFEAgUCZHEFAmNRBAJkcwkBAmJKAQUCZG4EAmR0CQEBRAIFAmRzBQJjUgQCZHUJAQJiTQIFAmR0BQJkcgQCZHYJAQFIAgUCZHUFAWIEAmR3CQEBRAIFAmRrBQFiBAJkeAkBAUQCBQJkcAUBYgQCZHkJALwCAwUCZHIFAmR3BQJkeAQCZHoJALwCAwUCZHQFAmR3BQJkeAQCZEEJAQFLAwUCZHkFAmNRBQVGTE9PUgQCZEIJAQFLAwUCZHoFAmNSBQVGTE9PUgQCZEMJAQJjSwIFAmRtBQJkQQMJAAACBQJkQwUCZEMEAmRECQECY0sCBQJkbgUCZEIDCQAAAgUCZEQFAmREBAJkRQMJAAACBQJkaQIABQNuaWwJAM4IAgkAzggCBQJkQwUCZEQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmRBAwkAAAIFAmRtAgVXQVZFUwUEdW5pdAkA2QQBBQJkbQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCZEIDCQAAAgUCZG4CBVdBVkVTBQR1bml0CQDZBAEFAmRuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIJAKUIAQUCYWIFAmRpCQECYkYGBQJkQQUCZEIFAmRrBQJkdgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJkdgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkdgUDbmlsCQCcCgoFAmRBBQJkQgUCZG0FAmRuBQJkcQUCZHMFAmRwBQJkdQUCZG8FAmRFCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkRgkCZGkCZEcCZEgCZEkCZEoCZEsCYWICZEwCZE0EAmNZCQECYmEABAJkbAkA2QQBCQCRAwIFAmNZBQFxBAJkTgkAkQMCBQJjWQUBcgQCZE8JAJEDAgUCY1kFAXMEAmRQCQCRAwIFAmNZBQF2BAJkUQkAkQMCBQJjWQUBdwQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdAQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdQQCZG8JAJEDAgUCY1kFAXAEAmRwCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRsCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmRsAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZFIJANgEAQkBC3ZhbHVlT3JFbHNlAgUCZEkJANkEAQIFV0FWRVMEAmRTCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmRLCQDZBAECBVdBVkVTAwMJAQIhPQIFAmROBQJkUgYJAQIhPQIFAmRPBQJkUwkAAgECIkludmFsaWQgYW10IG9yIHByaWNlIGFzc2V0IHBhc3NlZC4EAmRxAwUCZEwJAQJiSgEFAmROCQBlAgkBAmJKAQUCZE4FAmRIBAJkcwMFAmRMCQECYkoBBQJkTwkAZQIJAQJiSgEFAmRPBQJkSgQCZFQJAQFEAgUCZEgFAmNaBAJkVQkBAUQCBQJkSgUCZGEEAmRWCQECYk0CBQJkVQUCZFQEAmRyCQEBRAIFAmRxBQJjWgQCZHQJAQFEAgUCZHMFAmRhBAJkVwMJAAACBQJkcAAABAJkdQUBZQQCZFgFAWUEAmRjCQB2BgkAuQICBQJkVAUCZFUAAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFIAgUCZGMFAWIJAQFIAgUCZFQFAmNaCQEBSAIFAmRVBQJkYQkBAmJNAgkAtwICBQJkdAUCZFUJALcCAgUCZHIFAmRUBQJkWAQCZHUJAQJiTQIFAmR0BQJkcgQCZFgJALwCAwkBAVIBCQC4AgIFAmR1BQJkVgUBZAUCZHUEAmRZCQEBRAIFAmRHBQFiAwMJAQIhPQIFAmR1BQFlCQC/AgIFAmRYBQJkWQcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCZFgCHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkApgMBBQJkWQQCZHgJAQFEAgUCZHAFAWIEAmRaCQC9AgQFAmRUCQECYlADBQJkdAUCZHIFB0NFSUxJTkcFAWQFB0NFSUxJTkcEAmVhCQC9AgQFAmRVBQFkCQECYlADBQJkdAUCZHIFBUZMT09SBQdDRUlMSU5HBAJlYgMJAL8CAgUCZFoFAmRVCQCUCgIFAmVhBQJkVQkAlAoCBQJkVAUCZFoEAmVjCAUCZWICXzEEAmVkCAUCZWICXzIEAmRjCQC9AgQFAmR4BQJlZAUCZHQFBUZMT09SCQCXCgUJAQFLAwUCZGMFAWIFBUZMT09SCQEBSwMFAmVjBQJjWgUHQ0VJTElORwkBAUsDBQJlZAUCZGEFB0NFSUxJTkcFAmR1BQJkWAQCZWUIBQJkVwJfMQQCZWYIBQJkVwJfMgQCZWcIBQJkVwJfMwQCZHYJAQFIAggFAmRXAl80BQFiBAJlaAkBAUgCCAUCZFcCXzUFAWIDCQBnAgAABQJlZQkAAgECNkludmFsaWQgY2FsY3VsYXRpb25zLiBMUCBjYWxjdWxhdGVkIGlzIGxlc3MgdGhhbiB6ZXJvLgQCZWkDCQEBIQEFAmRNAAAFAmVlBAJlagkAZQIFAmRIBQJlZgQCZWsJAGUCBQJkSgUCZWcEAmVsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmR2CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmR2CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIFAmFiBQJkaQkBAmJ1CgUCZWYFAmVnBQJlaQUCZHYFAmRHBQJlaAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWoFAmVrBQNuaWwJAJ8KDQUCZWUFAmVpBQJkdgUCZHEFAmRzBQJkcAUCZGwFAmRvBQJlbAUCZWoFAmVrBQJkSQUCZEsBAmVtAwJlbgJlbwJkcAQCZXAJAQFHAgUCZW4JALYCAQUCYnAEAmVxCQEBRwIFAmVvCQC2AgEFAmJxBAJlcgkAvAIDCQB2BgkAuQICBQJlcAUCZXEAAAkAtgIBAAUAAQASBQRET1dOBQFnBQJkcAMJAAACBQJkcAUBZgUBZgUCZXIBAmVzAwJldAJldQJldgQCZXcJALgCAgkAtgIBCQECYkoBCQECYmYBBQJibgUCZXQEAmV4CQC4AgIJALYCAQkBAmJKAQkBAmJmAQUCYm8FAmV1BAJleQkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmJtCHF1YW50aXR5BQJldgQCZXoJAQJlbQMFAmV3BQJleAUCZXkFAmV6AQJlQQMCZUICZUMCZXYEAmV3CQBkAgkBAmJKAQkBAmJmAQUCYm4FAmVCBAJleAkAZAIJAQJiSgEJAQJiZgEFAmJvBQJlQwQCZXkJAGQCCAkBBXZhbHVlAQkA7AcBBQJibQhxdWFudGl0eQUCZXYEAmVyCQECZW0DCQC2AgEFAmV3CQC2AgEFAmV4CQC2AgEFAmV5BAJlRAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYWsFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQJhagkApgMBBQJlcgUDbmlsCQCUCgIFAmVEBQJlcgECZUUCAmVGAmVyAwkAwAICBQJlcgUCZUYGCQECYVEBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmVGCQDMCAIJAKYDAQUCZXIFA25pbAIBIAECZUcBAmVIBAJldwkBAmJKAQkBAmJmAQUCYm4EAmV4CQECYkoBCQECYmYBBQJibwQCZUkIBQJlSAZhbW91bnQEAmVKCQBuBAgFAmVIBmFtb3VudAgFAmVIBXByaWNlBQFiBQVGTE9PUgQCZUsDCQAAAggFAmVICW9yZGVyVHlwZQUDQnV5CQCUCgIFAmVJCQEBLQEFAmVKCQCUCgIJAQEtAQUCZUkFAmVKBAJlQggFAmVLAl8xBAJlQwgFAmVLAl8yAwMDCQECYVkABgkAAAIFAmJsBQFtBgkAAAIFAmJsBQFuCQACAQIcRXhjaGFuZ2Ugb3BlcmF0aW9ucyBkaXNhYmxlZAMDCQECIT0CCAgFAmVICWFzc2V0UGFpcgthbW91bnRBc3NldAUCYm4GCQECIT0CCAgFAmVICWFzc2V0UGFpcgpwcmljZUFzc2V0BQJibwkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmVMCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhagIBMAkBAmFTAQILaW52YWxpZCBrTHAEAmVNCQECZUEDBQJlQgUCZUMAAAQCZU4IBQJlTQJfMQQCZU8IBQJlTQJfMgQCZVAJAMACAgUCZU8FAmVMBAJlUQkAuQkCCQDMCAICBGtMcD0JAMwIAgkApgMBBQJlTAkAzAgCAggga0xwTmV3PQkAzAgCCQCmAwEFAmVPCQDMCAICFCBhbW91bnRBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZXcJAMwIAgITIHByaWNlQXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmV4CQDMCAICGSBhbW91bnRBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlQgkAzAgCAhggcHJpY2VBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlQwkAzAgCAgggaGVpZ2h0PQkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgAJAJQKAgUCZVAFAmVRAQJlUgECZVMDCQECIT0CCQCQAwEIBQJlUwhwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmVUCQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwAABAJkagkBBXZhbHVlAQgFAmVUB2Fzc2V0SWQEAmVVCAUCZVQGYW1vdW50BAJkVwkBAmRoBAkA2AQBCAUCZVMNdHJhbnNhY3Rpb25JZAkA2AQBBQJkagUCZVUIBQJlUwZjYWxsZXIEAmRBCAUCZFcCXzEEAmRCCAUCZFcCXzIEAmRvCQENcGFyc2VJbnRWYWx1ZQEIBQJkVwJfOQQCZEUIBQJkVwNfMTADAwkBAmFZAAYJAAACBQJkbwUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZG8JAJcKBQUCZEEFAmRCBQJlVQUCZGoFAmRFAQJlVgMCZVMCZEcCZE0DCQECIT0CCQCQAwEIBQJlUwhwYXltZW50cwACCQACAQIfZXhhY3RseSAyIHBheW1lbnRzIGFyZSBleHBlY3RlZAQCZVcJAQV2YWx1ZQEJAJEDAggFAmVTCHBheW1lbnRzAAAEAmVYCQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwABBAJlWQkBAmRGCQkA2AQBCAUCZVMNdHJhbnNhY3Rpb25JZAUCZEcIBQJlVwZhbW91bnQIBQJlVwdhc3NldElkCAUCZVgGYW1vdW50CAUCZVgHYXNzZXRJZAkApQgBCAUCZVMGY2FsbGVyBwUCZE0EAmRvCQENcGFyc2VJbnRWYWx1ZQEIBQJlWQJfOAMDAwkBAmFZAAYJAAACBQJkbwUBbAYJAAACBQJkbwUBbgkAAgEJAKwCAgIsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZG8FAmVZAQJlWgECYlcEAmZhCQD8BwQFAmFUAgRlbWl0CQDMCAIFAmJXBQNuaWwFA25pbAMJAAACBQJmYQUCZmEEAmZiBAJiVAUCZmEDCQABAgUCYlQCB0FkZHJlc3MEAmZjBQJiVAkA/AcEBQJmYwIEZW1pdAkAzAgCBQJiVwUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmIFAmZiBQJiVwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZmQCAmJXAmFpBAJmZQMJAAACBQJhaQAAAAAJAGsDBQJiVwUCYWkFAWIJAJQKAgkAZQIFAmJXBQJmZQUCZmUBAmZmBAJmZwJmaAJhYgJhYwQCZmkJAAACBQJhYwUEdW5pdAQCZmoJAQJiSgEJAQJiZgEFAmJuBAJmawkBAmJKAQkBAmJmAQUCYm8EAmZsAwkAAAIFAmZoBQJibgYDCQAAAgUCZmgFAmJvBwkBAmFRAQINaW52YWxpZCBhc3NldAQCZm0DBQJmaQkAlAoCBQJmagUCZmsDBQJmbAkAlAoCCQBlAgUCZmoFAmZnBQJmawkAlAoCBQJmagkAZQIFAmZrBQJmZwQCZm4IBQJmbQJfMQQCZm8IBQJmbQJfMgQCZnADBQJmbAkAlAoCBQJmZwAACQCUCgIAAAUCZmcEAmZxCAUCZnACXzEEAmZyCAUCZnACXzIEAmVJCAkBAmZkAgUCZnEFAmFWAl8xBAJlSggJAQJmZAIFAmZyBQJhVgJfMQQCZnMJAQJmZAIFAmZnBQJhVgQCZnQIBQJmcwJfMQQCZmUIBQJmcwJfMgQCZnUJAGQCBQJmbgUCZUkEAmZ2CQBkAgUCZm8FAmVKBAJmdwkBAmJNAgkBAUQCBQJmdgUCYnEJAQFEAgUCZnUFAmJwBAJmeAkBAUgCBQJmdwUBYgQCZnkDBQJmbAUCZm4FAmZvBAJmegkAtgIBBQJmeQQCZkEJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJibQkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJibQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmZCAwkAvwICBQJmQQUBZgYJAQJhUQECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZkIFAmZCBAJmQwkAtgIBBQJmdAQCZkQJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZkEJALgCAgkBCnNxcnRCaWdJbnQECQC3AgIFAWQJALoCAgkAuQICBQJmQwUBZAUCZnoAEgASBQRET1dOBQFkBQFkBQNuaWwEAmVsAwUCZmkFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJmeAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmeAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECCQClCAEJAQV2YWx1ZQEFAmFiCQDYBAEJAQV2YWx1ZQEFAmFjCQECYnUKBQJmcQUCZnIFAmZEBQJmeAAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmZFCQECYk0CCQEBRAIFAmZvBQJicQkBAUQCBQJmbgUCYnAEAmZGCQEBSAIFAmZFBQFiBAJmRwQCZkgDBQJmbAkAlAoCBQJmcQUCZm4JAJQKAgUCZnIFAmZvBAJiVwgFAmZIAl8xBAJmSQgFAmZIAl8yBAJmSgkAoAMBCQC8AgMFAmZBCQC2AgEJAGkCBQJiVwACCQC2AgEFAmZJCQBrAwkAZQIFAmZEBQJmSgUBYgUCZkoJAJcKBQUCZkQFAmVsBQJmZQUCZkcFAmZsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmSwUCZkwCZnQCZmgCYWICYWMEAmZpCQAAAgUCYWMFBHVuaXQEAmNZCQECYmEABAJjWgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF0BAJkYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF1BAJmTQkAzAgCAwkAAAIFAmZoBQJibQYJAQJhUQECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJmTQUCZk0EAmZOAwkAAAIFAmZMBQJibgYDCQAAAgUCZkwFAmJvBwkBAmFRAQINaW52YWxpZCBhc3NldAQCZk8DBQJmTgkAtgIBCQECYkoBCQECYmYBBQJibgkAtgIBCQECYkoBCQECYmYBBQJibwQCZlADBQJmTgUCY1oFAmRhBAJmUQkBAmJKAQkBAmJmAQUCYm4EAmZSCQECYkoBCQECYmYBBQJibwQCZlMDBQJmTgUCZlEFAmZSBAJmVAkAtgIBBQJmUwQCZkEJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJibQkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJibQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmZVCQC2AgEFAmZ0BAJmVgkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJmTwkAuAICBQFkCQB2BgkAuAICBQFkCQC6AgIJALkCAgUCZlUFAWQFAmZBABIFAWgAAAASBQRET1dOBQFkBQNuaWwEAmZXCQECZmQCBQJmVgUCYVgEAmZYCAUCZlcCXzEEAmZlCAUCZlcCXzIEAmZZAwUCZk4JAJYKBAUCZlgAAAkAZQIFAmZRBQJmVgUCZlIJAJYKBAAABQJmWAUCZlEJAGUCBQJmUgUCZlYEAmZaCAUCZlkCXzEEAmdhCAUCZlkCXzIEAmdiCAUCZlkCXzMEAmdjCAUCZlkCXzQEAmZ3CQECYk0CCQEBRAIFAmdjBQJicQkBAUQCBQJnYgUCYnAEAmZ4CQEBSAIFAmZ3BQFiBAJlbAMFAmZpBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAgkApQgBCQEFdmFsdWUBBQJhYgkA2AQBCQEFdmFsdWUBBQJhYwkBAmJGBgUCZloFAmdhBQJmdAUCZngFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZngJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZngFA25pbAQCZkUJAQJiTQIJAQFEAgUCZlIFAmJxCQEBRAIFAmZRBQJicAQCZkYJAQFIAgUCZkUFAWIEAmZHBAJnZAkAaAIJAKADAQkAvAIDBQJmTwUCZlUFAmZBAAIJAGsDCQBlAgUCZlgFAmdkBQFiBQJnZAkAlwoFBQJmWAUCZWwFAmZlBQJmRwUCZk4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmdlAAQCYlQJAKIIAQkBAVUAAwkAAQIFAmJUAgZTdHJpbmcEAmdmBQJiVAkA2QQBBQJnZgMJAAECBQJiVAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJnZwAEAmJUCQCiCAEJAQFWAAMJAAECBQJiVAIGU3RyaW5nBAJnZgUCYlQJANkEAQUCZ2YDCQABAgUCYlQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZ2gBAmVTBAJiVAkBAmdlAAMJAAECBQJiVAIKQnl0ZVZlY3RvcgQCZ2kFAmJUCQAAAggFAmVTD2NhbGxlclB1YmxpY0tleQUCZ2kDCQABAgUCYlQCBFVuaXQJAAACCAUCZVMGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmdqAQJlUwQCZ2sJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCYlQJAQJnZQADCQABAgUCYlQCCkJ5dGVWZWN0b3IEAmdpBQJiVAMJAAACCAUCZVMPY2FsbGVyUHVibGljS2V5BQJnaQYFAmdrAwkAAQIFAmJUAgRVbml0AwkAAAIIBQJlUwZjYWxsZXIFBHRoaXMGBQJnawkAAgECC01hdGNoIGVycm9yHgJlUwEJcmViYWxhbmNlAAkAzggCCQECY0MBCQECYU0CBQR0aGlzCQECYWUACQECY0MBCQECYU0CBQR0aGlzCQECYWYAAmVTASFjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwUkVBRE9OTFkDAmdsAmdtAmduBAJnbwMJAAACBQJnbQcEAmdwCQECYU0CBQR0aGlzCQECYWYABAJncQkBAmFNAgUEdGhpcwkBAmFlAAkAlAoCBQJncAUCZ3EEAmdwCQECYU0CBQR0aGlzCQECYWUABAJncQkBAmFNAgUEdGhpcwkBAmFmAAkAlAoCBQJncAUCZ3EEAmdwCAUCZ28CXzEEAmdxCAUCZ28CXzIEAmdyCQECYkoBBQJncQQCZ3MJAQJiSgEFAmdwBAJndAkAawMFAmdzBQJnbAkAZAIFAmdyBQJnbAQCZ3UJALkCAgkAtgIBBQJncgkAtgIBBQJncwQCZ3YJALkCAgkAtwICCQC3AgIJALYCAQkBAmJKAQUCZ3EJALYCAQUCZ2wJALYCAQUCZ24JALgCAgkAtgIBCQECYkoBBQJncAkAtgIBBQJndAQCZ3cDCQDAAgIFAmd2BQJndQYJAAIBAhRuZXcgSyBpcyBmZXdlciBlcnJvcgMJAAACBQJndwUCZ3cJAJQKAgUDbmlsBQJndAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEmY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcEFuZFNlbmRUb2tlbnMFAmdsAmdtAmd4Amd5AmduBAJnegoAAmFXCQD8BwQFAmFUAhdnZXRTd2FwQ29udHJhY3RSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYVcCBlN0cmluZwUCYVcJAAIBCQCsAgIJAAMBBQJhVwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJmTQkAzAgCAwkAZwIICQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwAABmFtb3VudAUCZ2wGCQECYVEBAgxXcm9uZyBhbW91bnQJAMwIAgMJAAACCAUCZVMGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnegYJAQJhUQECEVBlcm1pc3Npb24gZGVuaWVkBQNuaWwDCQAAAgUCZk0FAmZNBAJlVAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAAQCZ3EJAQJiZgEIBQJlVAdhc3NldElkBAJncAMJAAACBQJnbQcJAQJhTQIFBHRoaXMJAQJhZgAJAQJhTQIFBHRoaXMJAQJhZQAEAmdyCQBlAgkBAmJKAQUCZ3EICQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwAABmFtb3VudAQCZ3MJAQJiSgEFAmdwBAJndAkAawMFAmdzBQJnbAkAZAIFAmdyBQJnbAQCZ3UJALkCAgkAtgIBBQJncgkAtgIBBQJncwQCZ3YJALkCAgkAtwICCQC2AgEJAQJiSgEFAmdxCQC2AgEFAmduCQC4AgIJALYCAQkBAmJKAQUCZ3AJALYCAQUCZ3QEAmd3AwkAwAICBQJndgUCZ3UGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ3cFAmd3BAJnQQMJAGcCBQJndAUCZ3gGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ0EFAmdBBAJnQgkBAmNLAgUCZ3AFAmd0AwkAAAIFAmdCBQJnQgkAlAoCCQDOCAIFAmdCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmd5BQJndAkBAmJkAQUCZ3AFA25pbAUCZ3QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBCnNldE1hbmFnZXIBAmdDBAJnRAkBAmdqAQUCZVMDCQAAAgUCZ0QFAmdEBAJnRQkA2QQBBQJnQwMJAAACBQJnRQUCZ0UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVYABQJnQwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTAQ5jb25maXJtTWFuYWdlcgAEAmdGCQECZ2cABAJnRwMJAQlpc0RlZmluZWQBBQJnRgYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZ0cFAmdHBAJnSAMJAAACCAUCZVMPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJnRgYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZ0gFAmdICQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFVAAkA2AQBCQEFdmFsdWUBBQJnRgkAzAgCCQELRGVsZXRlRW50cnkBCQEBVgAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEDcHV0AgJkRwJnSQMJAGYCAAAFAmRHCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmVZCQECZVYDBQJlUwUCZEcGBAJlaQgFAmVZAl8yBAJkbAgFAmVZAl83BAJkRQgFAmVZAl85BAJlaggFAmVZA18xMAQCZWsIBQJlWQNfMTEEAmdKCAUCZVkDXzEyBAJnSwgFAmVZA18xMwQCZVcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVTCHBheW1lbnRzAAAGYW1vdW50BAJlWAkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAQZhbW91bnQEAmV6CQECZXMDBQJlVwUCZVgJALYCAQAAAwkAAAIFAmV6BQJlegQCZmEJAPwHBAUCYVQCBGVtaXQJAMwIAgUCZWkFA25pbAUDbmlsAwkAAAIFAmZhBQJmYQQCZmIEAmJUBQJmYQMJAAECBQJiVAIHQWRkcmVzcwQCZmMFAmJUCQD8BwQFAmZjAgRlbWl0CQDMCAIFAmVpBQNuaWwFA25pbAUEdW5pdAMJAAACBQJmYgUCZmIEAmdMAwkAZgIFAmVqAAAJAPwHBAUCYnQCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnSgUCZWoFA25pbAUDbmlsAwkAAAIFAmdMBQJnTAQCZ00DCQBmAgUCZWsAAAkA/AcEBQJidAIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmdLBQJlawUDbmlsBQNuaWwDCQAAAgUCZ00FAmdNBAJnTgMFAmdJBAJnTwkA/AcEBQJicwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZGwFAmVpBQNuaWwDCQAAAgUCZ08FAmdPBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVTBmNhbGxlcgUCZWkFAmRsBQNuaWwEAmdQCQECZUEDAAAAAAAAAwkAAAIFAmdQBQJnUAQCZXIIBQJnUAJfMgQCZ1EIBQJnUAJfMQQCZ1IJAQJlRQIFAmV6BQJlcgMJAAACBQJnUgUCZ1IEAmdTCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZ1MFAmdTCQDOCAIJAM4IAgUCZEUFAmdOBQJnUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEKcHV0Rm9yRnJlZQECZ1QDCQBmAgAABQJnVAkAAgECFEludmFsaWQgdmFsdWUgcGFzc2VkBAJlWQkBAmVWAwUCZVMFAmdUBwQCZEUIBQJlWQJfOQQCZVcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVTCHBheW1lbnRzAAAGYW1vdW50BAJlWAkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAQZhbW91bnQEAmV6CQECZXMDBQJlVwUCZVgJALYCAQAAAwkAAAIFAmV6BQJlegQCZ1UJAQJlQQMAAAAAAAAEAmdRCAUCZ1UCXzEEAmVyCAUCZ1UCXzIEAmdSCQECZUUCBQJlegUCZXIDCQAAAgUCZ1IFAmdSCQDOCAIFAmRFBQJnUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEJcHV0T25lVGtuAgJnVgJnVwQCZ1gKAAJhVwkA/AcEBQJhVAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFXAgdCb29sZWFuBQJhVwkAAgEJAKwCAgkAAwEFAmFXAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnWQMDAwkBAmFZAAYJAAACBQJibAUBbAYJAAACBQJibAUBbgYFAmdYBAJmTQkAzAgCAwMJAQEhAQUCZ1kGCQECZ2gBBQJlUwYJAQJhUQECIXB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVTCHBheW1lbnRzAAEGCQECYVEBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmTQUCZk0EAmdaCQCRAwIIBQJlUwhwYXltZW50cwAABAJmaAgFAmdaB2Fzc2V0SWQEAmZnCAUCZ1oGYW1vdW50BAJlegMJAAACBQJmaAUCYm4JAQJlcwMJALYCAQUCZmcJALYCAQAACQC2AgEAAAMJAAACBQJmaAUCYm8JAQJlcwMJALYCAQAACQC2AgEFAmZnCQC2AgEAAAkBAmFRAQIecGF5bWVudCBhc3NldCBpcyBub3Qgc3VwcG9ydGVkAwkAAAIFAmV6BQJlegQCYWIIBQJlUwZjYWxsZXIEAmFjCAUCZVMNdHJhbnNhY3Rpb25JZAQCaGEJAQJmZgQFAmZnBQJmaAUCYWIFAmFjAwkAAAIFAmhhBQJoYQQCZmwIBQJoYQJfNQQCaGIIBQJoYQJfNAQCZmUIBQJoYQJfMwQCZWwIBQJoYQJfMgQCaGMIBQJoYQJfMQQCaGQDAwkAZgIFAmdWAAAJAGYCBQJnVgUCaGMHCQECYVEBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmdWBQNuaWwCAAUCaGMEAmZhCQECZVoBBQJoZAMJAAACBQJmYQUCZmEEAmdOAwUCZ1cEAmhlCQD8BwQFAmJzAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJibQUCaGQFA25pbAMJAAACBQJoZQUCaGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZVMGY2FsbGVyBQJoZAUCYm0FA25pbAQCaGYDCQBmAgUCZmUAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhVQUCZmUFAmZoBQNuaWwFA25pbAQCaGcDCQAAAgUEdGhpcwUCYVUJAJQKAgAAAAADBQJmbAkAlAoCCQEBLQEFAmZlAAAJAJQKAgAACQEBLQEFAmZlBAJlQggFAmhnAl8xBAJlQwgFAmhnAl8yBAJoaAkBAmVBAwUCZUIFAmVDAAAEAmdRCAUCaGgCXzEEAmVyCAUCaGgCXzIEAmVMCQEFdmFsdWUBCQCiCAEFAmFqBAJnUgkBAmVFAgUCZXoFAmVyAwkAAAIFAmdSBQJnUgQCZ1MJAPwHBAUEdGhpcwIJcmViYWxhbmNlBQNuaWwFA25pbAMJAAACBQJnUwUCZ1MJAJQKAgkAzggCCQDOCAIJAM4IAgUCZWwFAmdOBQJoZgUCZ1EFAmhkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTARFwdXRPbmVUa25SRUFET05MWQICZmgCZmcEAmhpCQECZmYEBQJmZwkBAmJkAQUCZmgFBHVuaXQFBHVuaXQEAmhjCAUCaGkCXzEEAmVsCAUCaGkCXzIEAmZlCAUCaGkCXzMEAmhiCAUCaGkCXzQEAmZsCAUCaGkCXzUJAJQKAgUDbmlsCQCVCgMFAmhjBQJmZQUCaGICZVMBCWdldE9uZVRrbgICaGoCZ1YEAmdYCgACYVcJAPwHBAUCYVQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIHQm9vbGVhbgUCYVcJAAIBCQCsAgIJAAMBBQJhVwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGsDAwkBAmFZAAYJAAACBQJibAUBbgYFAmdYBAJmTQkAzAgCAwMJAQEhAQUCaGsGCQECZ2gBBQJlUwYJAQJhUQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVTCHBheW1lbnRzAAEGCQECYVEBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmTQUCZk0EAmZMCQECYmQBBQJoagQCZ1oJAJEDAggFAmVTCHBheW1lbnRzAAAEAmZoCAUCZ1oHYXNzZXRJZAQCZnQIBQJnWgZhbW91bnQEAmV6CQECZXMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmV6BQJlegQCYWIIBQJlUwZjYWxsZXIEAmFjCAUCZVMNdHJhbnNhY3Rpb25JZAQCaGwJAQJmSwUFAmZMBQJmdAUCZmgFAmFiBQJhYwMJAAACBQJobAUCaGwEAmZOCAUCaGwCXzUEAmhiCAUCaGwCXzQEAmZlCAUCaGwCXzMEAmVsCAUCaGwCXzIEAmhtCAUCaGwCXzEEAmJXAwMJAGYCBQJnVgAACQBmAgUCZ1YFAmhtBwkBAmFRAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnVgUDbmlsAgAFAmhtBAJobgkA/AcEBQJhVAIEYnVybgkAzAgCBQJmdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJmaAUCZnQFA25pbAMJAAACBQJobgUCaG4EAmdCCQECY0sCBQJoagUCYlcDCQAAAgUCZ0IFAmdCBAJobwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCYlcFAmZMBQNuaWwEAmhmAwkAZgIFAmZlAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVUFAmZlBQJmTAUDbmlsBQNuaWwEAmhwBAJocQMJAAACBQR0aGlzBQJhVQAABQJmZQMFAmZOCQCUCgIJAQEtAQkAZAIFAmJXBQJocQAACQCUCgIAAAkBAS0BCQBkAgUCYlcFAmhxBAJlQggFAmhwAl8xBAJlQwgFAmhwAl8yBAJocgkBAmVBAwUCZUIFAmVDAAAEAmdRCAUCaHICXzEEAmVyCAUCaHICXzIEAmdSCQECZUUCBQJlegUCZXIDCQAAAgUCZ1IFAmdSCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgUCZWwFAmdCBQJobwUCaGYFAmdRBQJiVwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwERZ2V0T25lVGtuUkVBRE9OTFkCAmZMAmZ0BAJocwkBAmZLBQkBAmJkAQUCZkwFAmZ0BQJibQUEdW5pdAUEdW5pdAQCaG0IBQJocwJfMQQCZWwIBQJocwJfMgQCZmUIBQJocwJfMwQCaGIIBQJocwJfNAQCZk4IBQJocwJfNQkAlAoCBQNuaWwJAJUKAwUCaG0FAmZlBQJoYgJlUwETdW5zdGFrZUFuZEdldE9uZVRrbgMCaHQCaGoCZ1YEAmdYCgACYVcJAPwHBAUCYVQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIHQm9vbGVhbgUCYVcJAAIBCQCsAgIJAAMBBQJhVwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGsDAwkBAmFZAAYJAAACBQJibAUBbgYFAmdYBAJmTQkAzAgCAwMJAQEhAQUCaGsGCQECZ2gBBQJlUwYJAQJhUQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVTCHBheW1lbnRzAAAGCQECYVEBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmTQUCZk0EAmZMCQECYmQBBQJoagQCYWIIBQJlUwZjYWxsZXIEAmFjCAUCZVMNdHJhbnNhY3Rpb25JZAQCZXoJAQJlcwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZXoFAmV6BAJodQkA/AcEBQJicwIHdW5zdGFrZQkAzAgCCQDYBAEFAmJtCQDMCAIFAmh0BQNuaWwFA25pbAMJAAACBQJodQUCaHUEAmh2CQECZksFBQJmTAUCaHQFAmJtBQJhYgUCYWMDCQAAAgUCaHYFAmh2BAJmTggFAmh2Al81BAJoYggFAmh2Al80BAJmZQgFAmh2Al8zBAJlbAgFAmh2Al8yBAJobQgFAmh2Al8xBAJiVwMDCQBmAgUCZ1YAAAkAZgIFAmdWBQJobQcJAQJhUQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1YFA25pbAIABQJobQQCaG4JAPwHBAUCYVQCBGJ1cm4JAMwIAgUCaHQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYm0FAmh0BQNuaWwDCQAAAgUCaG4FAmhuBAJnQgkBAmNLAgUCaGoFAmJXAwkAAAIFAmdCBQJnQgQCaG8JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVTBmNhbGxlcgUCYlcFAmZMBQNuaWwEAmhmAwkAZgIFAmZlAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVUFAmZlBQJmTAUDbmlsBQNuaWwEAmh3BAJocQMJAAACBQR0aGlzBQJhVQAABQJmZQMFAmZOCQCUCgIJAQEtAQkAZAIFAmJXBQJocQAACQCUCgIAAAkBAS0BCQBkAgUCYlcFAmhxBAJlQggFAmh3Al8xBAJlQwgFAmh3Al8yBAJoeAkBAmVBAwUCZUIFAmVDAAAEAmdRCAUCaHgCXzEEAmVyCAUCaHgCXzIEAmdSCQECZUUCBQJlegUCZXIDCQAAAgUCZ1IFAmdSCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgUCZWwFAmdCBQJobwUCaGYFAmdRBQJiVwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEDZ2V0AAQCZFcJAQJlUgEFAmVTBAJoeQgFAmRXAl8xBAJkQggFAmRXAl8yBAJlVQgFAmRXAl8zBAJkaggFAmRXAl80BAJkRQgFAmRXAl81BAJlegkBAmVzAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlegUCZXoEAmh6CQD8BwQFAmFUAgRidXJuCQDMCAIFAmVVBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRqBQJlVQUDbmlsAwkAAAIFAmh6BQJoegQCaEEJAQJlQQMJAQEtAQUCaHkJAQEtAQUCZEIAAAQCZ1EIBQJoQQJfMQQCZXIIBQJoQQJfMgQCZ1IJAQJlRQIFAmV6BQJlcgMJAAACBQJnUgUCZ1IJAM4IAgUCZEUFAmdRCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTAQlnZXROb0xlc3MCAmhCAmhDBAJkVwkBAmVSAQUCZVMEAmRBCAUCZFcCXzEEAmRCCAUCZFcCXzIEAmVVCAUCZFcCXzMEAmRqCAUCZFcCXzQEAmRFCAUCZFcCXzUDCQBmAgUCaEIFAmRBCQACAQkArAICCQCsAgIJAKwCAgIcbm9MZXNzVGhlbkFtdEFzc2V0IGZhaWxlZDogIAkApAMBBQJkQQIDIDwgCQCkAwEFAmhCAwkAZgIFAmhDBQJkQgkAAgEJAKwCAgkArAICCQCsAgICHW5vTGVzc1RoZW5QcmljZUFzc2V0IGZhaWxlZDogCQCkAwEFAmRCAgMgPCAJAKQDAQUCaEMEAmV6CQECZXMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmV6BQJlegQCaHoJAPwHBAUCYVQCBGJ1cm4JAMwIAgUCZVUFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZGoFAmVVBQNuaWwDCQAAAgUCaHoFAmh6BAJoRAkBAmVBAwkBAS0BBQJkQQkBAS0BBQJkQgAABAJnUQgFAmhEAl8xBAJlcggFAmhEAl8yBAJnUgkBAmVFAgUCZXoFAmVyAwkAAAIFAmdSBQJnUgkAzggCBQJkRQUCZ1EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBDXVuc3Rha2VBbmRHZXQBAmJXBAJoRQMJAQIhPQIJAJADAQgFAmVTCHBheW1lbnRzAAAJAAIBAhhObyBwYXltZW50cyBhcmUgZXhwZWN0ZWQGAwkAAAIFAmhFBQJoRQQCY1kJAQJiYQAEAmRsCQDZBAEJAJEDAgUCY1kFAXEEAmV6CQECZXMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmV6BQJlegQCaHUJAPwHBAUCYnMCB3Vuc3Rha2UJAMwIAgkA2AQBBQJkbAkAzAgCBQJiVwUDbmlsBQNuaWwDCQAAAgUCaHUFAmh1BAJkVwkBAmRoBAkA2AQBCAUCZVMNdHJhbnNhY3Rpb25JZAkA2AQBBQJkbAUCYlcIBQJlUwZjYWxsZXIEAmRBCAUCZFcCXzEEAmRCCAUCZFcCXzIEAmRvCQENcGFyc2VJbnRWYWx1ZQEIBQJkVwJfOQQCZEUIBQJkVwNfMTAEAmhGAwMJAQJhWQAGCQAAAgUCZG8FAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRvBgMJAAACBQJoRgUCaEYEAmh6CQD8BwQFAmFUAgRidXJuCQDMCAIFAmJXBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRsBQJiVwUDbmlsAwkAAAIFAmh6BQJoegQCaEcJAQJlQQMJAQEtAQUCZEEJAQEtAQUCZEIAAAQCZ1EIBQJoRwJfMQQCZXIIBQJoRwJfMgQCZ1IJAQJlRQIFAmV6BQJlcgMJAAACBQJnUgUCZ1IJAM4IAgUCZEUFAmdRCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTARN1bnN0YWtlQW5kR2V0Tm9MZXNzAwJodAJoSAJoQwQCaGsDCQECYVkABgkAAAIFAmJsBQFuBAJmTQkAzAgCAwkBASEBBQJoawYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlUwhwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmZNBQJmTQQCZXoJAQJlcwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZXoFAmV6BAJodQkA/AcEBQJicwIHdW5zdGFrZQkAzAgCCQDYBAEFAmJtCQDMCAIFAmh0BQNuaWwFA25pbAMJAAACBQJodQUCaHUEAmRXCQECZGgECQDYBAEIBQJlUw10cmFuc2FjdGlvbklkCQDYBAEFAmJtBQJodAgFAmVTBmNhbGxlcgQCZEEIBQJkVwJfMQQCZEIIBQJkVwJfMgQCZEUIBQJkVwNfMTAEAmhJCQDMCAIDCQBnAgUCZEEFAmhIBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhIBQNuaWwCAAkAzAgCAwkAZwIFAmRCBQJoQwYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhDBQNuaWwCAAUDbmlsAwkAAAIFAmhJBQJoSQQCaHoJAPwHBAUCYVQCBGJ1cm4JAMwIAgUCaHQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYm0FAmh0BQNuaWwDCQAAAgUCaHoFAmh6BAJoSgkBAmVBAwkBAS0BBQJkQQkBAS0BBQJkQgAABAJnUQgFAmhKAl8xBAJlcggFAmhKAl8yBAJnUgkBAmVFAgUCZXoFAmVyAwkAAAIFAmdSBQJnUgkAzggCBQJkRQUCZ1EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBCGFjdGl2YXRlAgJoSwJoTAMJAQIhPQIJAKUIAQgFAmVTBmNhbGxlcgkApQgBBQJhVAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZQAFAmhLCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZgAFAmhMBQNuaWwCB3N1Y2Nlc3MCZVMBCnJlZnJlc2hLTHAABAJoTQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJhawAABAJoTgMJAGcCCQBlAgUGaGVpZ2h0BQJoTQUCYW4FBHVuaXQJAQJhUQEJALkJAgkAzAgCCQCkAwEFAmFuCQDMCAICLyBibG9ja3MgaGF2ZSBub3QgcGFzc2VkIHNpbmNlIHRoZSBwcmV2aW91cyBjYWxsBQNuaWwCAAMJAAACBQJoTgUCaE4EAmVMCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhagIBMAkBAmFTAQILaW52YWxpZCBrTHAEAmhPCQECZUEDAAAAAAAABAJoUAgFAmhPAl8xBAJlcggFAmhPAl8yBAJlRAMJAQIhPQIFAmVMBQJlcgUCaFAJAQJhUQECEm5vdGhpbmcgdG8gcmVmcmVzaAkAlAoCBQJlRAkApgMBBQJlcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYmEAAmVTARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJhcAkAlAoCBQNuaWwJAQJiSgEFAmFwAmVTARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJjUwJjVAJjWAQCZGcJAQJjVwMFAmNTBQJjVAUCY1gJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJkZwAACQDMCAIJAKYDAQkAkQMCBQJkZwABCQDMCAIJAKYDAQkAkQMCBQJkZwACBQNuaWwCZVMBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFFAUYJAJQKAgUDbmlsCQCmAwEJAQFEAgUBRQUBRgJlUwEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBSQFKCQCUCgIFA25pbAkBAUgCCQCnAwEFAUkFAUoCZVMBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICYk4CYk8JAJQKAgUDbmlsCQCmAwEJAQJiTQIJAKcDAQUCYk4JAKcDAQUCYk8CZVMBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJkaQJkRwJkSAJkSQJkSgJkSwJhYgJkTAJkTQkAlAoCBQNuaWwJAQJkRgkFAmRpBQJkRwUCZEgFAmRJBQJkSgUCZEsFAmFiBQJkTAUCZE0CZVMBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJkaQJkagJkawJhYgQCZFcJAQJkaAQFAmRpBQJkagUCZGsJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFiCQCUCgIFA25pbAkAnAoKCAUCZFcCXzEIBQJkVwJfMggFAmRXAl8zCAUCZFcCXzQIBQJkVwJfNQgFAmRXAl82CAUCZFcCXzcJAKYDAQgFAmRXAl84CAUCZFcCXzkIBQJkVwNfMTACZVMBDXN0YXRzUkVBRE9OTFkABAJjWQkBAmJhAAQCZGwJANkEAQkAkQMCBQJjWQUBcQQCaFEJAJEDAgUCY1kFAXIEAmhSCQCRAwIFAmNZBQFzBAJkUAkAkQMCBQJjWQUBdgQCZFEJAJEDAgUCY1kFAXcEAmNaCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXQEAmRhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXUEAmhTCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRsCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmRsAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCaFQJAQJiSgEFAmhRBAJoVQkBAmJKAQUCaFIEAmhWAwkAAAIFAmhTAAAJAMwIAgUBZQkAzAgCBQFlCQDMCAIFAWUFA25pbAkBAmNXAwUCaFQFAmhVBQJoUwQCZHYAAAQCaFcJAQFIAgkAkQMCBQJoVgABBQFiBAJoWAkBAUgCCQCRAwIFAmhWAAIFAWIEAmhZCQEFdmFsdWUBCQCaCAIFAmFUCQECYUQBCQClCAEFBHRoaXMJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJoVAkAzAgCCQCkAwEFAmhVCQDMCAIJAKQDAQUCaFMJAMwIAgkApAMBBQJkdgkAzAgCCQCkAwEFAmhXCQDMCAIJAKQDAQUCaFgJAMwIAgkApAMBBQJoWQUDbmlsBQFqAmVTASBldmFsdWF0ZVB1dEJ5QW1vdW50QXNzZXRSRUFET05MWQECZEgEAmNZCQECYmEABAJkbAkA2QQBCQCRAwIFAmNZBQFxBAJkTgkAkQMCBQJjWQUBcgQCZG0JANkEAQUCZE4EAmRPCQCRAwIFAmNZBQFzBAJkbgkA2QQBBQJkTwQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdAQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdQQCZG8JAJEDAgUCY1kFAXAEAmhTCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRsCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmRsAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCaFQJAQJiSgEFAmROBAJoVQkBAmJKAQUCZE8EAmNVCQEBRAIFAmhUBQJjWgQCY1YJAQFEAgUCaFUFAmRhBAJkdQMJAAACBQJoUwAABQFlCQECYk0CBQJjVgUCY1UEAmRUCQEBRAIFAmRIBQJjWgQCZFUJALwCAwUCZFQFAmR1BQFkBAJkSgkBAUgCBQJkVQUCZGEEAmVZCQECZEYJAgAAoMIeBQJkSAUCZG0FAmRKBQJkbgIABgcEAmVlCAUCZVkCXzEEAmhaCAUCZVkCXzMEAmRxCAUCZVkCXzQEAmRzCAUCZVkCXzUEAmRwCAUCZVkCXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmVlCQDMCAIJAKQDAQkBAUgCBQJkdQUBYgkAzAgCCQCkAwEFAmRxCQDMCAIJAKQDAQUCZHMJAMwIAgkApAMBBQJkcAkAzAgCBQJkbwkAzAgCCQCkAwEFAmRICQDMCAIJAKQDAQUCZEoFA25pbAUBagJlUwEfZXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQECZEoEAmNZCQECYmEABAJkbAkA2QQBCQCRAwIFAmNZBQFxBAJkTgkAkQMCBQJjWQUBcgQCZG0JANkEAQUCZE4EAmRPCQCRAwIFAmNZBQFzBAJkbgkA2QQBBQJkTwQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdAQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdQQCZG8JAJEDAgUCY1kFAXAEAmhTCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRsCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmRsAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCaWEJAQJiSgEFAmROBAJpYgkBAmJKAQUCZE8EAmljCQEBRAIFAmlhBQJjWgQCaWQJAQFEAgUCaWIFAmRhBAJkdQMJAAACBQJoUwAABQFlCQECYk0CBQJpZAUCaWMEAmRVCQEBRAIFAmRKBQJkYQQCZFQJALwCAwUCZFUFAWQFAmR1BAJkSAkBAUgCBQJkVAUCY1oEAmVZCQECZEYJAgAAoMIeBQJkSAUCZG0FAmRKBQJkbgIABgcEAmVlCAUCZVkCXzEEAmhaCAUCZVkCXzMEAmRxCAUCZVkCXzQEAmRzCAUCZVkCXzUEAmRwCAUCZVkCXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmVlCQDMCAIJAKQDAQkBAUgCBQJkdQUBYgkAzAgCCQCkAwEFAmRxCQDMCAIJAKQDAQUCZHMJAMwIAgkApAMBBQJkcAkAzAgCBQJkbwkAzAgCCQCkAwEFAmRICQDMCAIJAKQDAQUCZEoFA25pbAUBagJlUwETZXZhbHVhdGVHZXRSRUFET05MWQICaWUCaWYEAmRXCQECZGgEAgAFAmllBQJpZgUEdGhpcwQCZEEIBQJkVwJfMQQCZEIIBQJkVwJfMgQCZHEIBQJkVwJfNQQCZHMIBQJkVwJfNgQCZHAIBQJkVwJfNwQCZHYIBQJkVwJfOAQCZG8JAQ1wYXJzZUludFZhbHVlAQgFAmRXAl85CQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQgkAzAgCCQCkAwEFAmRxCQDMCAIJAKQDAQUCZHMJAMwIAgkApAMBBQJkcAkAzAgCCQCmAwEFAmR2CQDMCAIJAKQDAQUCZG8FA25pbAUBagECaWcBAmloAAQCaWkEAmJUCQECZ2UAAwkAAQIFAmJUAgpCeXRlVmVjdG9yBAJnaQUCYlQFAmdpAwkAAQIFAmJUAgRVbml0CAUCaWcPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmJUBQJpZwMJAAECBQJiVAIFT3JkZXIEAmVIBQJiVAQCaWoJAQJhWgAEAmlrCQECZUcBBQJlSAQCYUkIBQJpawJfMQQCYUoIBQJpawJfMgQCYUsJAPQDAwgFAmVICWJvZHlCeXRlcwkAkQMCCAUCZUgGcHJvb2ZzAAAIBQJlSA9zZW5kZXJQdWJsaWNLZXkEAmFMCQD0AwMIBQJlSAlib2R5Qnl0ZXMJAJEDAggFAmVIBnByb29mcwABBQJpagMDAwUCYUkFAmFLBwUCYUwHBgkBAmFIBAUCYUkFAmFKBQJhSwUCYUwDCQABAgUCYlQCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJnZgUCYlQDCQD0AwMIBQJpZwlib2R5Qnl0ZXMJAJEDAggFAmlnBnByb29mcwAABQJpaQYEAmlsCQD2AwEJAQV2YWx1ZQEIBQJnZgZzY3JpcHQEAmltCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYVQJAQJhRgAEAmluCQDxBwEFBHRoaXMDCQAAAgUCaW0FAmlsCQECIT0CBQJpbgUCaWwHCQD0AwMIBQJpZwlib2R5Qnl0ZXMJAJEDAggFAmlnBnByb29mcwAABQJpaSaPx1A=", "height": 2521051, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7RjAg7rL8259dTH8yJypLNPDY4cywphLdCsAaQvECTQr Next: 5VAsUxhN29eWP7bT5nEhc2phwg5hnJaoEmUJ9UFgfKTp Diff:
OldNewDifferences
130130
131131 let an = valueOrElse(getInteger(this, al), am)
132132
133-func ao () = "%s__sWavesAssetId"
133+func ao (ap) = makeString(["%s%s", "stakedBalance", ap], j)
134134
135135
136-func ap () = "%s__sWavesProxyAddress"
136+func aq (ap) = makeString(["%s%s", "shareAssetBalance", ap], j)
137137
138138
139-func aq (ar) = makeString(["%s%s", "additionalBalance", ar], j)
139+func ar (ap) = valueOrElse(getInteger(this, ao(ap)), 0)
140140
141141
142-func as (ar) = makeString(["%s%s", "stakingAssetBalance", ar], j)
142+func as (ap) = valueOrElse(getInteger(this, aq(ap)), 0)
143143
144144
145-func at (ar) = valueOrElse(getInteger(this, aq(ar)), 0)
145+func at () = "%s__factoryConfig"
146146
147147
148-func au (ar) = valueOrElse(getInteger(this, as(ar)), 0)
148+func au () = "%s%s__matcher__publicKey"
149149
150150
151-func av () = "%s__factoryConfig"
151+func av (aw) = (("%s%s%s__" + aw) + "__mappings__poolContract2LpAsset")
152152
153153
154-func aw () = "%s%s__matcher__publicKey"
154+func ax (ay,az) = (((("%d%d%s__" + ay) + "__") + az) + "__config")
155155
156156
157-func ax (ay) = (("%s%s%s__" + ay) + "__mappings__poolContract2LpAsset")
157+func aA (aB) = ("%s%s%s__mappings__baseAsset2internalId__" + aB)
158158
159159
160-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
160+func aC () = "%s__shutdown"
161161
162162
163-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
163+func aD (aE) = ("%s%s__poolWeight__" + aE)
164164
165165
166-func aE () = "%s__shutdown"
166+func aF () = "%s__allowedLpScriptHash"
167167
168168
169-func aF (aG) = ("%s%s__poolWeight__" + aG)
169+let aG = "%s__feeCollectorAddress"
170+
171+func aH (aI,aJ,aK,aL) = throw((((((((("order validation failed: orderValid=" + toString(aI)) + " (") + aJ) + ")") + " senderValid=") + toString(aK)) + " matcherValid=") + toString(aL)))
170172
171173
172-func aH () = "%s__allowedLpScriptHash"
174+func aM (aN,aO) = valueOrErrorMessage(getString(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
173175
174176
175-let aI = "%s__feeCollectorAddress"
176-
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
177+func aP (aN,aO) = valueOrErrorMessage(getInteger(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
178178
179179
180-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
180+func aQ (aR) = throw(makeString(["lp.ride:", aR], " "))
181181
182182
183-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
183+func aS (aR) = makeString(["lp.ride:", aR], " ")
184184
185185
186-func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
186+let aT = addressFromStringValue(aM(this, T()))
187+
188+let aU = addressFromStringValue(aM(aT, aG))
189+
190+let aV = {
191+ let aW = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
192+ if ($isInstanceOf(aW, "Int"))
193+ then aW
194+ else throw(($getType(aW) + " couldn't be cast to Int"))
195+ }
196+
197+let aX = {
198+ let aW = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
199+ if ($isInstanceOf(aW, "Int"))
200+ then aW
201+ else throw(($getType(aW) + " couldn't be cast to Int"))
202+ }
203+
204+func aY () = valueOrElse(getBoolean(aT, aC()), false)
187205
188206
189-func aU (aT) = makeString(["lp.ride:", aT], " ")
207+func aZ () = fromBase58String(aM(aT, au()))
190208
191209
192-let aV = addressFromStringValue(aO(this, T()))
193-
194-let aW = addressFromStringValue(aO(aV, aI))
195-
196-let aX = {
197- let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
198- if ($isInstanceOf(aY, "Int"))
199- then aY
200- else throw(($getType(aY) + " couldn't be cast to Int"))
201- }
202-
203-let aZ = {
204- let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
205- if ($isInstanceOf(aY, "Int"))
206- then aY
207- else throw(($getType(aY) + " couldn't be cast to Int"))
208- }
209-
210-func ba () = aO(aV, ao())
211-
212-
213-func bb () = aO(aV, ap())
214-
215-
216-func bc () = valueOrElse(getBoolean(aV, aE()), false)
217-
218-
219-func bd () = fromBase58String(aO(aV, aw()))
220-
221-
222-func be () = {
223- let bf = aO(this, ae())
224- let bg = aO(this, af())
225- let aB = aR(aV, aC(bg))
226- let aA = aR(aV, aC(bf))
227- split(aO(aV, az(toString(aA), toString(aB))), j)
210+func ba () = {
211+ let bb = aM(this, ae())
212+ let bc = aM(this, af())
213+ let az = aP(aT, aA(bc))
214+ let ay = aP(aT, aA(bb))
215+ split(aM(aT, ax(toString(ay), toString(az))), j)
228216 }
229217
230218
231-func bh (bi) = if ((bi == i))
219+func bd (be) = if ((be == i))
232220 then unit
233- else fromBase58String(bi)
221+ else fromBase58String(be)
234222
235223
236-func bj (bi) = if ((bi == unit))
224+func bf (be) = if ((be == unit))
237225 then i
238- else toBase58String(value(bi))
226+ else toBase58String(value(be))
239227
240228
241-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]))
229+func bg (bh) = $Tuple7(addressFromStringValue(bh[o]), parseIntValue(bh[p]), fromBase58String(bh[q]), bd(bh[r]), bd(bh[s]), parseIntValue(bh[t]), parseIntValue(bh[u]))
242230
243231
244-let bm = bk(be())
232+let bi = bg(ba())
245233
246-let bn = bm
234+let bj = bi
247235
248-let bo = bn._1
236+let bk = bj._1
249237
250-let bp = bn._2
238+let bl = bj._2
251239
252-let bq = bn._3
240+let bm = bj._3
253241
254-let br = bn._4
242+let bn = bj._4
255243
256-let bs = bn._5
244+let bo = bj._5
257245
258-let bt = bn._6
246+let bp = bj._6
259247
260-let bu = bn._7
248+let bq = bj._7
261249
262-func bv () = split(aO(aV, av()), j)
250+func br () = split(aM(aT, at()), j)
263251
264252
265-let bw = valueOrErrorMessage(addressFromString(bv()[B]), "incorrect staking address")
253+let bs = valueOrErrorMessage(addressFromString(br()[B]), "incorrect staking address")
266254
267-let bx = valueOrErrorMessage(addressFromString(bv()[C]), "incorrect staking address")
255+let bt = valueOrErrorMessage(addressFromString(br()[C]), "incorrect staking address")
268256
269-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)
257+func bu (bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bv), toString(bw), toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE)], j)
270258
271259
272-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)
260+func bF (bG,bH,bI,by,bB,bC) = makeString(["%d%d%d%d%d%d", toString(bG), toString(bH), toString(bI), toString(by), toString(bB), toString(bC)], j)
273261
274262
275-func bN (ar) = {
276- let bO = if ((ar == "WAVES"))
263+func bJ (ap) = {
264+ let bK = if ((ap == "WAVES"))
277265 then wavesBalance(this).available
278- else assetBalance(this, fromBase58String(ar))
279- let bP = ((bO + at(ar)) - au(ar))
280- max([0, bP])
266+ else assetBalance(this, fromBase58String(ap))
267+ let bL = ((bK + ar(ap)) - as(ap))
268+ max([0, bL])
281269 }
282270
283271
284-func bQ (bR,bS) = fraction(bR, d, bS)
272+func bM (bN,bO) = fraction(bN, d, bO)
285273
286274
287-func bT (bR,bS,L) = fraction(bR, d, bS, L)
275+func bP (bN,bO,L) = fraction(bN, d, bO, L)
288276
289277
290-func bU (bV) = {
291- let bW = invoke(bV, "getRate", nil, nil)
292- if ((bW == bW))
278+func bQ (bR) = {
279+ let bS = invoke(bR, "getRate", nil, nil)
280+ if ((bS == bS))
293281 then {
294- let bX = bW
295- if ($isInstanceOf(bX, "Int"))
282+ let bT = bS
283+ if ($isInstanceOf(bT, "Int"))
296284 then {
297- let bY = bX
298- bY
285+ let bU = bT
286+ bU
299287 }
300- else aS("proxy.getRate() unexpected value")
288+ else aQ("proxy.getRate() unexpected value")
301289 }
302290 else throw("Strict value is not equal to itself.")
303291 }
304292
305293
306-func bZ (ar,ca,cb,bV) = {
307- let cc = at(ar)
308- if ((cc == cc))
294+func bV (ap,bW,bX,bR) = {
295+ let bY = ar(ap)
296+ if ((bY == bY))
309297 then {
310- let cd = au(cb)
311- if ((cd == cd))
298+ let bZ = as(bX)
299+ if ((bZ == bZ))
312300 then {
313- let ce = bh(ar)
314- if ((ca > 0))
301+ let ca = bd(ap)
302+ if ((bW > 0))
315303 then {
316- let cf = invoke(bV, "deposit", nil, [AttachedPayment(ce, ca)])
317- if ((cf == cf))
304+ let cb = invoke(bR, "deposit", nil, [AttachedPayment(ca, bW)])
305+ if ((cb == cb))
318306 then {
319- let bX = cf
320- if ($isInstanceOf(bX, "Int"))
307+ let bT = cb
308+ if ($isInstanceOf(bT, "Int"))
321309 then {
322- let cg = bX
323- let ch = (cc + ca)
324- let ci = (cd + cg)
325-[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci)]
310+ let cc = bT
311+ let cd = (bY + bW)
312+ let ce = (bZ + cc)
313+[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce)]
326314 }
327315 else nil
328316 }
336324 }
337325
338326
339-func cj (ar,ca,cb,bV,ck,cl) = {
340- let cc = at(ar)
341- if ((cc == cc))
327+func cf (ap,bW,bX,bR,cg,ch) = {
328+ let bY = ar(ap)
329+ if ((bY == bY))
342330 then {
343- let cd = au(cb)
344- if ((cd == cd))
331+ let bZ = as(bX)
332+ if ((bZ == bZ))
345333 then {
346- let cm = bU(bV)
347- if ((cm == cm))
334+ let ci = bQ(bR)
335+ if ((ci == ci))
348336 then {
349- let cn = fraction(ck, cc, cd)
350- let co = bh(cb)
351- let cp = fraction(ck, ca, cn)
352- let cq = fraction(ck, ca, cm)
353- let cr = max([0, (cp - cq)])
354- if ((cq > 0))
337+ let cj = fraction(cg, bY, bZ)
338+ let ck = bd(bX)
339+ let cl = fraction(cg, bW, cj)
340+ let cm = fraction(cg, bW, ci)
341+ let cn = max([0, (cl - cm)])
342+ if ((cm > 0))
355343 then {
356- let cs = invoke(bV, "withdraw", nil, [AttachedPayment(co, cq)])
357- if ((cs == cs))
344+ let co = invoke(bR, "withdraw", nil, [AttachedPayment(ck, cm)])
345+ if ((co == co))
358346 then {
359- let bX = cs
360- if ($isInstanceOf(bX, "Int"))
347+ let bT = co
348+ if ($isInstanceOf(bT, "Int"))
361349 then {
362- let ct = bX
363- let ch = (cc - ct)
364- let ci = ((cd - cq) - cr)
365-[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci), ScriptTransfer(cl, cr, bh(cb))]
350+ let cp = bT
351+ let cd = (bY - cp)
352+ let ce = ((bZ - cm) - cn)
353+[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce), ScriptTransfer(ch, cn, bd(bX))]
366354 }
367355 else nil
368356 }
378366 }
379367
380368
381-func cu (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
369+func cq (ap) = invoke(aT, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
382370
383371
384-func cv (cw,ar,cb,cx,bV,ck,cl) = {
385- let cc = at(ar)
386- if ((cc == cc))
372+func cr (cs,ap,bX,ct,bR,cg,ch) = {
373+ let bY = ar(ap)
374+ if ((bY == bY))
387375 then {
388- let cd = au(cb)
389- if ((cd == cd))
376+ let bZ = as(bX)
377+ if ((bZ == bZ))
390378 then {
391- let cy = {
392- let bX = bh(ar)
393- if ($isInstanceOf(bX, "ByteVector"))
379+ let cu = {
380+ let bT = bd(ap)
381+ if ($isInstanceOf(bT, "ByteVector"))
394382 then {
395- let cz = bX
396- assetBalance(this, cz)
383+ let cv = bT
384+ assetBalance(this, cv)
397385 }
398- else if ($isInstanceOf(bX, "Unit"))
386+ else if ($isInstanceOf(bT, "Unit"))
399387 then {
400- let cA = bX
388+ let cw = bT
401389 wavesBalance(this).available
402390 }
403391 else throw("Match error")
404392 }
405- if ((cy == cy))
393+ if ((cu == cu))
406394 then {
407- let cB = max([0, ((cy + cc) - cx)])
408- let cC = fraction(cw, cB, 100)
409- let cD = (cc - cC)
410- if ((cD == 0))
395+ let cx = max([0, ((cu + bY) - ct)])
396+ let cy = fraction(cs, cx, 100)
397+ let cz = (bY - cy)
398+ if ((cz == 0))
411399 then nil
412- else if ((0 > cD))
400+ else if ((0 > cz))
413401 then {
414- let cE = -(cD)
415- bZ(ar, cE, cb, bV)
402+ let cA = -(cz)
403+ bV(ap, cA, bX, bR)
416404 }
417405 else {
418- let cF = cD
419- cj(ar, cF, cb, bV, ck, cl)
406+ let cB = cz
407+ cf(ap, cB, bX, bR, cg, ch)
420408 }
421409 }
422410 else throw("Strict value is not equal to itself.")
427415 }
428416
429417
430-func cG (ar) = {
431- let bX = cu(ar)
432- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
418+func cC (ap) = {
419+ let bT = cq(ap)
420+ if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
433421 then {
434- let cH = bX
435- let cI = cH
436- let cJ = cI._1
437- let cK = cI._2
438- let cx = cI._3
439- let cL = cI._4
440- let cM = cI._5
441- let ck = cI._6
442- let cN = cI._7
443- if (cJ)
444- then cv(cK, ar, cM, cx, addressFromStringValue(cL), ck, addressFromStringValue(cN))
422+ let cD = bT
423+ let cE = cD
424+ let cF = cE._1
425+ let cG = cE._2
426+ let ct = cE._3
427+ let cH = cE._4
428+ let cI = cE._5
429+ let cg = cE._6
430+ let cJ = cE._7
431+ if (cF)
432+ then cr(cG, ap, cI, ct, addressFromStringValue(cH), cg, addressFromStringValue(cJ))
445433 else nil
446434 }
447- else aS((("[" + ar) + "] Rebalance error"))
435+ else aQ((("[" + ap) + "] Rebalance error"))
448436 }
449437
450438
451-func cO (ar,cP) = {
452- let bX = cu(ar)
453- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
439+func cK (ap,cL) = {
440+ let bT = cq(ap)
441+ if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
454442 then {
455- let cH = bX
456- let cQ = cH
457- let cJ = cQ._1
458- let cK = cQ._2
459- let cx = cQ._3
460- let cL = cQ._4
461- let cM = cQ._5
462- let ck = cQ._6
463- let cN = cQ._7
464- if (cJ)
443+ let cD = bT
444+ let cM = cD
445+ let cF = cM._1
446+ let cG = cM._2
447+ let ct = cM._3
448+ let cH = cM._4
449+ let cI = cM._5
450+ let cg = cM._6
451+ let cJ = cM._7
452+ if (cF)
465453 then {
466- let cR = max([0, ((bN(ar) - cP) - cx)])
467- if ((cR == cR))
454+ let cN = max([0, ((bJ(ap) - cL) - ct)])
455+ if ((cN == cN))
468456 then {
469- let ch = fraction(cK, cR, 100)
470- if ((ch == ch))
457+ let cd = fraction(cG, cN, 100)
458+ if ((cd == cd))
471459 then {
472- let cS = max([0, (at(ar) - ch)])
473- if ((cS == cS))
474- then cj(ar, cS, cM, addressFromStringValue(cL), ck, addressFromStringValue(cN))
460+ let cO = max([0, (ar(ap) - cd)])
461+ if ((cO == cO))
462+ then cf(ap, cO, cI, addressFromStringValue(cH), cg, addressFromStringValue(cJ))
475463 else throw("Strict value is not equal to itself.")
476464 }
477465 else throw("Strict value is not equal to itself.")
480468 }
481469 else nil
482470 }
483- else aS((("[" + ar) + "] getWithdrawAssetState() error"))
471+ else aQ((("[" + ap) + "] getWithdrawAssetState() error"))
484472 }
485473
486474
487-func cT (cU,cV,cW,cX) = {
488- let cY = D(cW, cU)
489- let cZ = D(cX, cV)
490- bQ(cZ, cY)
475+func cP (cQ,cR,cS,cT) = {
476+ let cU = D(cS, cQ)
477+ let cV = D(cT, cR)
478+ bM(cV, cU)
491479 }
492480
493481
494-func da (cW,cX,db) = {
495- let dc = be()
496- let dd = parseIntValue(dc[t])
497- let de = parseIntValue(dc[u])
498- let df = cT(dd, de, cW, cX)
499- let bS = D(cW, dd)
500- let bR = D(cX, de)
501- let dg = D(db, b)
502- let dh = bQ(bS, dg)
503- let di = bQ(bR, dg)
504-[df, dh, di]
482+func cW (cS,cT,cX) = {
483+ let cY = ba()
484+ let cZ = parseIntValue(cY[t])
485+ let da = parseIntValue(cY[u])
486+ let db = cP(cZ, da, cS, cT)
487+ let bO = D(cS, cZ)
488+ let bN = D(cT, da)
489+ let dc = D(cX, b)
490+ let dd = bM(bO, dc)
491+ let de = bM(bN, dc)
492+[db, dd, de]
505493 }
506494
507495
508-func dj (cW,cX,db) = {
509- let dk = da(cW, cX, db)
510-[H(dk[0], b), H(dk[1], b), H(dk[2], b)]
496+func df (cS,cT,cX) = {
497+ let dg = cW(cS, cT, cX)
498+[H(dg[0], b), H(dg[1], b), H(dg[2], b)]
511499 }
512500
513501
514-func dl (dm,dn,do,ab) = {
515- let dc = be()
516- let dp = dc[q]
517- let dq = dc[r]
518- let dr = dc[s]
519- let cU = parseIntValue(dc[t])
520- let cV = parseIntValue(dc[u])
521- let ds = dc[p]
522- let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
523- if ((dp != dn))
502+func dh (di,dj,dk,ab) = {
503+ let cY = ba()
504+ let dl = cY[q]
505+ let dm = cY[r]
506+ let dn = cY[s]
507+ let cQ = parseIntValue(cY[t])
508+ let cR = parseIntValue(cY[u])
509+ let do = cY[p]
510+ let dp = valueOrErrorMessage(assetInfo(fromBase58String(dl)), (("Asset " + dl) + " doesn't exist")).quantity
511+ if ((dl != dj))
524512 then throw("Invalid asset passed.")
525513 else {
526- let du = bN(dq)
527- let dv = D(du, cU)
528- let dw = bN(dr)
529- let dx = D(dw, cV)
530- let dy = bQ(dx, dv)
531- let dz = H(dy, b)
532- let dA = D(do, b)
533- let dB = D(dt, b)
534- let dC = fraction(dv, dA, dB)
535- let dD = fraction(dx, dA, dB)
536- let dE = K(dC, cU, FLOOR)
537- let dF = K(dD, cV, FLOOR)
538- let dG = cO(dq, dE)
539- if ((dG == dG))
514+ let dq = bJ(dm)
515+ let dr = D(dq, cQ)
516+ let ds = bJ(dn)
517+ let dt = D(ds, cR)
518+ let du = bM(dt, dr)
519+ let dv = H(du, b)
520+ let dw = D(dk, b)
521+ let dx = D(dp, b)
522+ let dy = fraction(dr, dw, dx)
523+ let dz = fraction(dt, dw, dx)
524+ let dA = K(dy, cQ, FLOOR)
525+ let dB = K(dz, cR, FLOOR)
526+ let dC = cK(dm, dA)
527+ if ((dC == dC))
540528 then {
541- let dH = cO(dr, dF)
542- if ((dH == dH))
529+ let dD = cK(dn, dB)
530+ if ((dD == dD))
543531 then {
544- let dI = if ((dm == ""))
532+ let dE = if ((di == ""))
545533 then nil
546- else ((dG ++ dH) ++ [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
534+ else ((dC ++ dD) ++ [ScriptTransfer(ab, dA, if ((dm == "WAVES"))
547535 then unit
548- else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
536+ else fromBase58String(dm)), ScriptTransfer(ab, dB, if ((dn == "WAVES"))
549537 then unit
550- 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)])
551- $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dI)
538+ else fromBase58String(dn)), StringEntry(ad(toString(ab), di), bF(dA, dB, dk, dv, height, lastBlock.timestamp)), IntegerEntry(W(), dv), IntegerEntry(X(height, lastBlock.timestamp), dv)])
539+ $Tuple10(dA, dB, dm, dn, dq, ds, dp, du, do, dE)
552540 }
553541 else throw("Strict value is not equal to itself.")
554542 }
557545 }
558546
559547
560-func dJ (dm,dK,dL,dM,dN,dO,ab,dP,dQ) = {
561- let dc = be()
562- let dp = fromBase58String(dc[q])
563- let dR = dc[r]
564- let dS = dc[s]
565- let dT = dc[v]
566- let dU = dc[w]
567- let dd = parseIntValue(dc[t])
568- let de = parseIntValue(dc[u])
569- let ds = dc[p]
570- let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
571- let dV = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
572- let dW = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
573- if (if ((dR != dV))
548+func dF (di,dG,dH,dI,dJ,dK,ab,dL,dM) = {
549+ let cY = ba()
550+ let dl = fromBase58String(cY[q])
551+ let dN = cY[r]
552+ let dO = cY[s]
553+ let dP = cY[v]
554+ let dQ = cY[w]
555+ let cZ = parseIntValue(cY[t])
556+ let da = parseIntValue(cY[u])
557+ let do = cY[p]
558+ let dp = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
559+ let dR = toBase58String(valueOrElse(dI, fromBase58String("WAVES")))
560+ let dS = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
561+ if (if ((dN != dR))
574562 then true
575- else (dS != dW))
563+ else (dO != dS))
576564 then throw("Invalid amt or price asset passed.")
577565 else {
578- let du = if (dP)
579- then bN(dR)
580- else (bN(dR) - dL)
581- let dw = if (dP)
582- then bN(dS)
583- else (bN(dS) - dN)
584- let dX = D(dL, dd)
585- let dY = D(dN, de)
586- let dZ = bQ(dY, dX)
587- let dv = D(du, dd)
588- let dx = D(dw, de)
589- let ea = if ((dt == 0))
566+ let dq = if (dL)
567+ then bJ(dN)
568+ else (bJ(dN) - dH)
569+ let ds = if (dL)
570+ then bJ(dO)
571+ else (bJ(dO) - dJ)
572+ let dT = D(dH, cZ)
573+ let dU = D(dJ, da)
574+ let dV = bM(dU, dT)
575+ let dr = D(dq, cZ)
576+ let dt = D(ds, da)
577+ let dW = if ((dp == 0))
590578 then {
591- let dy = e
592- let eb = e
593- let dg = pow((dX * dY), 0, toBigInt(5), 1, 0, DOWN)
594- $Tuple5(H(dg, b), H(dX, dd), H(dY, de), bQ((dx + dY), (dv + dX)), eb)
579+ let du = e
580+ let dX = e
581+ let dc = pow((dT * dU), 0, toBigInt(5), 1, 0, DOWN)
582+ $Tuple5(H(dc, b), H(dT, cZ), H(dU, da), bM((dt + dU), (dr + dT)), dX)
595583 }
596584 else {
597- let dy = bQ(dx, dv)
598- let eb = fraction(R((dy - dZ)), d, dy)
599- let ec = D(dK, b)
600- if (if ((dy != e))
601- then (eb > ec)
585+ let du = bM(dt, dr)
586+ let dX = fraction(R((du - dV)), d, du)
587+ let dY = D(dG, b)
588+ if (if ((du != e))
589+ then (dX > dY)
602590 else false)
603- then throw(((("Price slippage " + toString(eb)) + " exceeded the passed limit of ") + toString(ec)))
591+ then throw(((("Price slippage " + toString(dX)) + " exceeded the passed limit of ") + toString(dY)))
604592 else {
605- let dB = D(dt, b)
606- let ed = fraction(dX, bT(dx, dv, CEILING), d, CEILING)
607- let ee = fraction(dY, d, bT(dx, dv, FLOOR), CEILING)
608- let ef = if ((ed > dY))
609- then $Tuple2(ee, dY)
610- else $Tuple2(dX, ed)
611- let eg = ef._1
612- let eh = ef._2
613- let dg = fraction(dB, eh, dx, FLOOR)
614- $Tuple5(K(dg, b, FLOOR), K(eg, dd, CEILING), K(eh, de, CEILING), dy, eb)
593+ let dx = D(dp, b)
594+ let dZ = fraction(dT, bP(dt, dr, CEILING), d, CEILING)
595+ let ea = fraction(dU, d, bP(dt, dr, FLOOR), CEILING)
596+ let eb = if ((dZ > dU))
597+ then $Tuple2(ea, dU)
598+ else $Tuple2(dT, dZ)
599+ let ec = eb._1
600+ let ed = eb._2
601+ let dc = fraction(dx, ed, dt, FLOOR)
602+ $Tuple5(K(dc, b, FLOOR), K(ec, cZ, CEILING), K(ed, da, CEILING), du, dX)
615603 }
616604 }
617- let ei = ea._1
618- let ej = ea._2
619- let ek = ea._3
620- let dz = H(ea._4, b)
621- let el = H(ea._5, b)
622- if ((0 >= ei))
605+ let ee = dW._1
606+ let ef = dW._2
607+ let eg = dW._3
608+ let dv = H(dW._4, b)
609+ let eh = H(dW._5, b)
610+ if ((0 >= ee))
623611 then throw("Invalid calculations. LP calculated is less than zero.")
624612 else {
625- let em = if (!(dQ))
613+ let ei = if (!(dM))
626614 then 0
627- else ei
628- let en = (dL - ej)
629- let eo = (dN - ek)
630- 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))]
631- $Tuple13(ei, em, dz, du, dw, dt, dp, ds, ep, en, eo, dM, dO)
615+ else ee
616+ let ej = (dH - ef)
617+ let ek = (dJ - eg)
618+ let el = [IntegerEntry(W(), dv), IntegerEntry(X(height, lastBlock.timestamp), dv), StringEntry(aa(ab, di), bu(ef, eg, ei, dv, dG, eh, height, lastBlock.timestamp, ej, ek))]
619+ $Tuple13(ee, ei, dv, dq, ds, dp, dl, do, el, ej, ek, dI, dK)
632620 }
633621 }
634622 }
635623
636624
637-func eq (er,es,dt) = {
638- let et = G(er, toBigInt(bt))
639- let eu = G(es, toBigInt(bu))
640- let ev = fraction(pow((et * eu), 0, toBigInt(5), 1, 18, DOWN), g, dt)
641- if ((dt == f))
625+func em (en,eo,dp) = {
626+ let ep = G(en, toBigInt(bp))
627+ let eq = G(eo, toBigInt(bq))
628+ let er = fraction(pow((ep * eq), 0, toBigInt(5), 1, 18, DOWN), g, dp)
629+ if ((dp == f))
642630 then f
643- else ev
631+ else er
644632 }
645633
646634
647-func ew (ex,ey,ez) = {
648- let eA = (toBigInt(bN(bj(br))) - ex)
649- let eB = (toBigInt(bN(bj(bs))) - ey)
650- let eC = (toBigInt(value(assetInfo(bq)).quantity) - ez)
651- let eD = eq(eA, eB, eC)
652- eD
635+func es (et,eu,ev) = {
636+ let ew = (toBigInt(bJ(bf(bn))) - et)
637+ let ex = (toBigInt(bJ(bf(bo))) - eu)
638+ let ey = (toBigInt(value(assetInfo(bm)).quantity) - ev)
639+ let ez = em(ew, ex, ey)
640+ ez
653641 }
654642
655643
656-func eE (eF,eG,ez) = {
657- let eA = (bN(bj(br)) + eF)
658- let eB = (bN(bj(bs)) + eG)
659- let eC = (value(assetInfo(bq)).quantity + ez)
660- let ev = eq(toBigInt(eA), toBigInt(eB), toBigInt(eC))
661- let eH = [IntegerEntry(ak, height), StringEntry(aj, toString(ev))]
662- $Tuple2(eH, ev)
644+func eA (eB,eC,ev) = {
645+ let ew = (bJ(bf(bn)) + eB)
646+ let ex = (bJ(bf(bo)) + eC)
647+ let ey = (value(assetInfo(bm)).quantity + ev)
648+ let er = em(toBigInt(ew), toBigInt(ex), toBigInt(ey))
649+ let eD = [IntegerEntry(ak, height), StringEntry(aj, toString(er))]
650+ $Tuple2(eD, er)
663651 }
664652
665653
666-func eI (eJ,ev) = if ((ev >= eJ))
654+func eE (eF,er) = if ((er >= eF))
667655 then true
668- else aS(makeString(["updated KLp lower than current KLp", toString(eJ), toString(ev)], " "))
656+ else aQ(makeString(["updated KLp lower than current KLp", toString(eF), toString(er)], " "))
669657
670658
671-func eK (eL) = {
672- let eA = bN(bj(br))
673- let eB = bN(bj(bs))
674- let eM = eL.amount
675- let eN = fraction(eL.amount, eL.price, b, FLOOR)
676- let eO = if ((eL.orderType == Buy))
677- then $Tuple2(eM, -(eN))
678- else $Tuple2(-(eM), eN)
679- let eF = eO._1
680- let eG = eO._2
681- if (if (if (bc())
659+func eG (eH) = {
660+ let ew = bJ(bf(bn))
661+ let ex = bJ(bf(bo))
662+ let eI = eH.amount
663+ let eJ = fraction(eH.amount, eH.price, b, FLOOR)
664+ let eK = if ((eH.orderType == Buy))
665+ then $Tuple2(eI, -(eJ))
666+ else $Tuple2(-(eI), eJ)
667+ let eB = eK._1
668+ let eC = eK._2
669+ if (if (if (aY())
682670 then true
683- else (bp == m))
671+ else (bl == m))
684672 then true
685- else (bp == n))
673+ else (bl == n))
686674 then throw("Exchange operations disabled")
687- else if (if ((eL.assetPair.amountAsset != br))
675+ else if (if ((eH.assetPair.amountAsset != bn))
688676 then true
689- else (eL.assetPair.priceAsset != bs))
677+ else (eH.assetPair.priceAsset != bo))
690678 then throw("Wrong order assets.")
691679 else {
692- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
693- let eQ = eE(eF, eG, 0)
694- let eR = eQ._1
695- let eS = eQ._2
696- let eT = (eS >= eP)
697- let eU = makeString(["kLp=", toString(eP), " kLpNew=", toString(eS), " amountAssetBalance=", toString(eA), " priceAssetBalance=", toString(eB), " amountAssetBalanceDelta=", toString(eF), " priceAssetBalanceDelta=", toString(eG), " height=", toString(height)], "")
698- $Tuple2(eT, eU)
680+ let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
681+ let eM = eA(eB, eC, 0)
682+ let eN = eM._1
683+ let eO = eM._2
684+ let eP = (eO >= eL)
685+ let eQ = makeString(["kLp=", toString(eL), " kLpNew=", toString(eO), " amountAssetBalance=", toString(ew), " priceAssetBalance=", toString(ex), " amountAssetBalanceDelta=", toString(eB), " priceAssetBalanceDelta=", toString(eC), " height=", toString(height)], "")
686+ $Tuple2(eP, eQ)
699687 }
700688 }
701689
702690
703-func eV (eW) = if ((size(eW.payments) != 1))
691+func eR (eS) = if ((size(eS.payments) != 1))
704692 then throw("exactly 1 payment is expected")
705693 else {
706- let eX = value(eW.payments[0])
707- let dn = value(eX.assetId)
708- let eY = eX.amount
709- let ea = dl(toBase58String(eW.transactionId), toBase58String(dn), eY, eW.caller)
710- let dE = ea._1
711- let dF = ea._2
712- let ds = parseIntValue(ea._9)
713- let dI = ea._10
714- if (if (bc())
694+ let eT = value(eS.payments[0])
695+ let dj = value(eT.assetId)
696+ let eU = eT.amount
697+ let dW = dh(toBase58String(eS.transactionId), toBase58String(dj), eU, eS.caller)
698+ let dA = dW._1
699+ let dB = dW._2
700+ let do = parseIntValue(dW._9)
701+ let dE = dW._10
702+ if (if (aY())
715703 then true
716- else (ds == n))
717- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
718- else $Tuple5(dE, dF, eY, dn, dI)
704+ else (do == n))
705+ then throw(("Get operation is blocked by admin. Status = " + toString(do)))
706+ else $Tuple5(dA, dB, eU, dj, dE)
719707 }
720708
721709
722-func eZ (eW,dK,dQ) = if ((size(eW.payments) != 2))
710+func eV (eS,dG,dM) = if ((size(eS.payments) != 2))
723711 then throw("exactly 2 payments are expected")
724712 else {
725- let fa = value(eW.payments[0])
726- let fb = value(eW.payments[1])
727- let fc = dJ(toBase58String(eW.transactionId), dK, fa.amount, fa.assetId, fb.amount, fb.assetId, toString(eW.caller), false, dQ)
728- let ds = parseIntValue(fc._8)
729- if (if (if (bc())
713+ let eW = value(eS.payments[0])
714+ let eX = value(eS.payments[1])
715+ let eY = dF(toBase58String(eS.transactionId), dG, eW.amount, eW.assetId, eX.amount, eX.assetId, toString(eS.caller), false, dM)
716+ let do = parseIntValue(eY._8)
717+ if (if (if (aY())
730718 then true
731- else (ds == l))
719+ else (do == l))
732720 then true
733- else (ds == n))
734- then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
735- else fc
721+ else (do == n))
722+ then throw(("Put operation is blocked by admin. Status = " + toString(do)))
723+ else eY
736724 }
737725
738726
739-func fd (ca) = {
740- let fe = invoke(aV, "emit", [ca], nil)
741- if ((fe == fe))
727+func eZ (bW) = {
728+ let fa = invoke(aT, "emit", [bW], nil)
729+ if ((fa == fa))
742730 then {
743- let ff = {
744- let bX = fe
745- if ($isInstanceOf(bX, "Address"))
731+ let fb = {
732+ let bT = fa
733+ if ($isInstanceOf(bT, "Address"))
746734 then {
747- let fg = bX
748- invoke(fg, "emit", [ca], nil)
735+ let fc = bT
736+ invoke(fc, "emit", [bW], nil)
749737 }
750738 else unit
751739 }
752- if ((ff == ff))
753- then ca
740+ if ((fb == fb))
741+ then bW
754742 else throw("Strict value is not equal to itself.")
755743 }
756744 else throw("Strict value is not equal to itself.")
757745 }
758746
759747
760-func fh (ca,ai) = {
761- let fi = if ((ai == 0))
748+func fd (bW,ai) = {
749+ let fe = if ((ai == 0))
762750 then 0
763- else fraction(ca, ai, b)
764- $Tuple2((ca - fi), fi)
751+ else fraction(bW, ai, b)
752+ $Tuple2((bW - fe), fe)
765753 }
766754
767755
768-func fj (fk,fl,ab,ac) = {
769- let fm = (ac == unit)
770- let fn = bN(bj(br))
771- let fo = bN(bj(bs))
772- let fp = if ((fl == br))
756+func ff (fg,fh,ab,ac) = {
757+ let fi = (ac == unit)
758+ let fj = bJ(bf(bn))
759+ let fk = bJ(bf(bo))
760+ let fl = if ((fh == bn))
773761 then true
774- else if ((fl == bs))
762+ else if ((fh == bo))
775763 then false
776- else aS("invalid asset")
777- let fq = if (fm)
778- then $Tuple2(fn, fo)
779- else if (fp)
780- then $Tuple2((fn - fk), fo)
781- else $Tuple2(fn, (fo - fk))
782- let fr = fq._1
783- let fs = fq._2
784- let ft = if (fp)
785- then $Tuple2(fk, 0)
786- else $Tuple2(0, fk)
787- let fu = ft._1
788- let fv = ft._2
789- let eM = fh(fu, aX)._1
790- let eN = fh(fv, aX)._1
791- let fw = fh(fk, aX)
792- let fx = fw._1
793- let fi = fw._2
794- let fy = (fr + eM)
795- let fz = (fs + eN)
796- let fA = bQ(D(fz, bu), D(fy, bt))
797- let fB = H(fA, b)
798- let fC = if (fp)
799- then fr
800- else fs
801- let fD = toBigInt(fC)
802- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
803- let fF = if ((fE > f))
764+ else aQ("invalid asset")
765+ let fm = if (fi)
766+ then $Tuple2(fj, fk)
767+ else if (fl)
768+ then $Tuple2((fj - fg), fk)
769+ else $Tuple2(fj, (fk - fg))
770+ let fn = fm._1
771+ let fo = fm._2
772+ let fp = if (fl)
773+ then $Tuple2(fg, 0)
774+ else $Tuple2(0, fg)
775+ let fq = fp._1
776+ let fr = fp._2
777+ let eI = fd(fq, aV)._1
778+ let eJ = fd(fr, aV)._1
779+ let fs = fd(fg, aV)
780+ let ft = fs._1
781+ let fe = fs._2
782+ let fu = (fn + eI)
783+ let fv = (fo + eJ)
784+ let fw = bM(D(fv, bq), D(fu, bp))
785+ let fx = H(fw, b)
786+ let fy = if (fl)
787+ then fn
788+ else fo
789+ let fz = toBigInt(fy)
790+ let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
791+ let fB = if ((fA > f))
804792 then true
805- else aS("initial deposit requires all coins")
806- if ((fF == fF))
793+ else aQ("initial deposit requires all coins")
794+ if ((fB == fB))
807795 then {
808- let fG = toBigInt(fx)
809- let fH = max([0, toInt(((fE * (sqrtBigInt((d + ((fG * d) / fD)), 18, 18, DOWN) - d)) / d))])
810- let ep = if (fm)
796+ let fC = toBigInt(ft)
797+ let fD = max([0, toInt(((fA * (sqrtBigInt((d + ((fC * d) / fz)), 18, 18, DOWN) - d)) / d))])
798+ let el = if (fi)
811799 then nil
812- 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))]
813- let fI = bQ(D(fs, bu), D(fr, bt))
814- let fJ = H(fI, b)
815- let fK = {
816- let fL = if (fp)
817- then $Tuple2(fu, fr)
818- else $Tuple2(fv, fs)
819- let ca = fL._1
820- let fM = fL._2
821- let fN = toInt(fraction(fE, toBigInt((ca / 2)), toBigInt(fM)))
822- fraction((fH - fN), b, fN)
800+ else [IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bu(fq, fr, fD, fx, 0, 0, height, lastBlock.timestamp, 0, 0))]
801+ let fE = bM(D(fo, bq), D(fn, bp))
802+ let fF = H(fE, b)
803+ let fG = {
804+ let fH = if (fl)
805+ then $Tuple2(fq, fn)
806+ else $Tuple2(fr, fo)
807+ let bW = fH._1
808+ let fI = fH._2
809+ let fJ = toInt(fraction(fA, toBigInt((bW / 2)), toBigInt(fI)))
810+ fraction((fD - fJ), b, fJ)
823811 }
824- $Tuple5(fH, ep, fi, fK, fp)
812+ $Tuple5(fD, el, fe, fG, fl)
825813 }
826814 else throw("Strict value is not equal to itself.")
827815 }
828816
829817
830-func fO (fP,fx,fl,ab,ac) = {
831- let fm = (ac == unit)
832- let dc = be()
833- let dd = parseIntValue(dc[t])
834- let de = parseIntValue(dc[u])
835- let fQ = [if ((fl == bq))
818+func fK (fL,ft,fh,ab,ac) = {
819+ let fi = (ac == unit)
820+ let cY = ba()
821+ let cZ = parseIntValue(cY[t])
822+ let da = parseIntValue(cY[u])
823+ let fM = [if ((fh == bm))
836824 then true
837- else aS("invalid lp asset")]
838- if ((fQ == fQ))
825+ else aQ("invalid lp asset")]
826+ if ((fM == fM))
839827 then {
840- let fR = if ((fP == br))
828+ let fN = if ((fL == bn))
841829 then true
842- else if ((fP == bs))
830+ else if ((fL == bo))
843831 then false
844- else aS("invalid asset")
845- let fS = if (fR)
846- then toBigInt(bN(bj(br)))
847- else toBigInt(bN(bj(bs)))
848- let fT = if (fR)
849- then dd
850- else de
851- let fU = bN(bj(br))
852- let fV = bN(bj(bs))
853- let fW = if (fR)
854- then fU
855- else fV
856- let fX = toBigInt(fW)
857- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
858- let fY = toBigInt(fx)
859- let fZ = max([0, toInt(((fS * (d - pow((d - ((fY * d) / fE)), 18, h, 0, 18, DOWN))) / d))])
860- let ga = fh(fZ, aZ)
861- let gb = ga._1
862- let fi = ga._2
863- let gc = if (fR)
864- then $Tuple4(gb, 0, (fU - fZ), fV)
865- else $Tuple4(0, gb, fU, (fV - fZ))
866- let gd = gc._1
867- let ge = gc._2
868- let gf = gc._3
869- let gg = gc._4
870- let fA = bQ(D(gg, bu), D(gf, bt))
871- let fB = H(fA, b)
872- let ep = if (fm)
832+ else aQ("invalid asset")
833+ let fO = if (fN)
834+ then toBigInt(bJ(bf(bn)))
835+ else toBigInt(bJ(bf(bo)))
836+ let fP = if (fN)
837+ then cZ
838+ else da
839+ let fQ = bJ(bf(bn))
840+ let fR = bJ(bf(bo))
841+ let fS = if (fN)
842+ then fQ
843+ else fR
844+ let fT = toBigInt(fS)
845+ let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
846+ let fU = toBigInt(ft)
847+ let fV = max([0, toInt(((fO * (d - pow((d - ((fU * d) / fA)), 18, h, 0, 18, DOWN))) / d))])
848+ let fW = fd(fV, aX)
849+ let fX = fW._1
850+ let fe = fW._2
851+ let fY = if (fN)
852+ then $Tuple4(fX, 0, (fQ - fV), fR)
853+ else $Tuple4(0, fX, fQ, (fR - fV))
854+ let fZ = fY._1
855+ let ga = fY._2
856+ let gb = fY._3
857+ let gc = fY._4
858+ let fw = bM(D(gc, bq), D(gb, bp))
859+ let fx = H(fw, b)
860+ let el = if (fi)
873861 then nil
874- 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)]
875- let fI = bQ(D(fV, bu), D(fU, bt))
876- let fJ = H(fI, b)
877- let fK = {
878- let gh = (toInt(fraction(fS, fY, fE)) * 2)
879- fraction((gb - gh), b, gh)
862+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bF(fZ, ga, ft, fx, height, lastBlock.timestamp)), IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx)]
863+ let fE = bM(D(fR, bq), D(fQ, bp))
864+ let fF = H(fE, b)
865+ let fG = {
866+ let gd = (toInt(fraction(fO, fU, fA)) * 2)
867+ fraction((fX - gd), b, gd)
880868 }
881- $Tuple5(gb, ep, fi, fK, fR)
869+ $Tuple5(fX, el, fe, fG, fN)
882870 }
883871 else throw("Strict value is not equal to itself.")
884872 }
885873
886874
887-func gi () = {
888- let bX = getString(U())
889- if ($isInstanceOf(bX, "String"))
875+func ge () = {
876+ let bT = getString(U())
877+ if ($isInstanceOf(bT, "String"))
890878 then {
891- let gj = bX
892- fromBase58String(gj)
879+ let gf = bT
880+ fromBase58String(gf)
893881 }
894- else if ($isInstanceOf(bX, "Unit"))
882+ else if ($isInstanceOf(bT, "Unit"))
895883 then unit
896884 else throw("Match error")
897885 }
898886
899887
900-func gk () = {
901- let bX = getString(V())
902- if ($isInstanceOf(bX, "String"))
888+func gg () = {
889+ let bT = getString(V())
890+ if ($isInstanceOf(bT, "String"))
903891 then {
904- let gj = bX
905- fromBase58String(gj)
892+ let gf = bT
893+ fromBase58String(gf)
906894 }
907- else if ($isInstanceOf(bX, "Unit"))
895+ else if ($isInstanceOf(bT, "Unit"))
908896 then unit
909897 else throw("Match error")
910898 }
911899
912900
913-func gl (eW) = {
914- let bX = gi()
915- if ($isInstanceOf(bX, "ByteVector"))
901+func gh (eS) = {
902+ let bT = ge()
903+ if ($isInstanceOf(bT, "ByteVector"))
916904 then {
917- let gm = bX
918- (eW.callerPublicKey == gm)
905+ let gi = bT
906+ (eS.callerPublicKey == gi)
919907 }
920- else if ($isInstanceOf(bX, "Unit"))
921- then (eW.caller == this)
908+ else if ($isInstanceOf(bT, "Unit"))
909+ then (eS.caller == this)
922910 else throw("Match error")
923911 }
924912
925913
926-func gn (eW) = {
927- let go = throw("Permission denied")
928- let bX = gi()
929- if ($isInstanceOf(bX, "ByteVector"))
914+func gj (eS) = {
915+ let gk = throw("Permission denied")
916+ let bT = ge()
917+ if ($isInstanceOf(bT, "ByteVector"))
930918 then {
931- let gm = bX
932- if ((eW.callerPublicKey == gm))
919+ let gi = bT
920+ if ((eS.callerPublicKey == gi))
933921 then true
934- else go
922+ else gk
935923 }
936- else if ($isInstanceOf(bX, "Unit"))
937- then if ((eW.caller == this))
924+ else if ($isInstanceOf(bT, "Unit"))
925+ then if ((eS.caller == this))
938926 then true
939- else go
927+ else gk
940928 else throw("Match error")
941929 }
942930
943931
944-@Callable(eW)
945-func rebalance () = (cG(aO(this, ae())) ++ cG(aO(this, af())))
932+@Callable(eS)
933+func rebalance () = (cC(aM(this, ae())) ++ cC(aM(this, af())))
946934
947935
948936
949-@Callable(eW)
950-func calculateAmountOutForSwapREADONLY (gp,gq,gr) = {
951- let gs = if ((gq == false))
937+@Callable(eS)
938+func calculateAmountOutForSwapREADONLY (gl,gm,gn) = {
939+ let go = if ((gm == false))
952940 then {
953- let gt = aO(this, af())
954- let gu = aO(this, ae())
955- $Tuple2(gt, gu)
941+ let gp = aM(this, af())
942+ let gq = aM(this, ae())
943+ $Tuple2(gp, gq)
956944 }
957945 else {
958- let gt = aO(this, ae())
959- let gu = aO(this, af())
960- $Tuple2(gt, gu)
946+ let gp = aM(this, ae())
947+ let gq = aM(this, af())
948+ $Tuple2(gp, gq)
961949 }
962- let gt = gs._1
963- let gu = gs._2
964- let gv = bN(gu)
965- let gw = bN(gt)
966- let gx = fraction(gw, gp, (gv + gp))
967- let gy = (toBigInt(gv) * toBigInt(gw))
968- let gz = (((toBigInt(bN(gu)) + toBigInt(gp)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
969- let gA = if ((gz >= gy))
950+ let gp = go._1
951+ let gq = go._2
952+ let gr = bJ(gq)
953+ let gs = bJ(gp)
954+ let gt = fraction(gs, gl, (gr + gl))
955+ let gu = (toBigInt(gr) * toBigInt(gs))
956+ let gv = (((toBigInt(bJ(gq)) + toBigInt(gl)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
957+ let gw = if ((gv >= gu))
970958 then true
971959 else throw("new K is fewer error")
972- if ((gA == gA))
973- then $Tuple2(nil, gx)
960+ if ((gw == gw))
961+ then $Tuple2(nil, gt)
974962 else throw("Strict value is not equal to itself.")
975963 }
976964
977965
978966
979-@Callable(eW)
980-func calculateAmountOutForSwapAndSendTokens (gp,gq,gB,gC,gr) = {
981- let gD = {
982- let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
983- if ($isInstanceOf(aY, "String"))
984- then aY
985- else throw(($getType(aY) + " couldn't be cast to String"))
967+@Callable(eS)
968+func calculateAmountOutForSwapAndSendTokens (gl,gm,gx,gy,gn) = {
969+ let gz = {
970+ let aW = invoke(aT, "getSwapContractREADONLY", nil, nil)
971+ if ($isInstanceOf(aW, "String"))
972+ then aW
973+ else throw(($getType(aW) + " couldn't be cast to String"))
986974 }
987- let fQ = [if ((value(eW.payments[0]).amount >= gp))
975+ let fM = [if ((value(eS.payments[0]).amount >= gl))
988976 then true
989- else aS("Wrong amount"), if ((eW.caller == addressFromStringValue(gD)))
977+ else aQ("Wrong amount"), if ((eS.caller == addressFromStringValue(gz)))
990978 then true
991- else aS("Permission denied")]
992- if ((fQ == fQ))
979+ else aQ("Permission denied")]
980+ if ((fM == fM))
993981 then {
994- let eX = value(eW.payments[0])
995- let gu = bj(eX.assetId)
996- let gt = if ((gq == false))
997- then aO(this, af())
998- else aO(this, ae())
999- let gv = (bN(gu) - value(eW.payments[0]).amount)
1000- let gw = bN(gt)
1001- let gx = fraction(gw, gp, (gv + gp))
1002- let gy = (toBigInt(gv) * toBigInt(gw))
1003- let gz = ((toBigInt(bN(gu)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
1004- let gA = if ((gz >= gy))
982+ let eT = value(eS.payments[0])
983+ let gq = bf(eT.assetId)
984+ let gp = if ((gm == false))
985+ then aM(this, af())
986+ else aM(this, ae())
987+ let gr = (bJ(gq) - value(eS.payments[0]).amount)
988+ let gs = bJ(gp)
989+ let gt = fraction(gs, gl, (gr + gl))
990+ let gu = (toBigInt(gr) * toBigInt(gs))
991+ let gv = ((toBigInt(bJ(gq)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
992+ let gw = if ((gv >= gu))
1005993 then true
1006994 else throw("new K is fewer error")
1007- if ((gA == gA))
995+ if ((gw == gw))
1008996 then {
1009- let gE = if ((gx >= gB))
997+ let gA = if ((gt >= gx))
1010998 then true
1011999 else throw("Exchange result is fewer coins than expected")
1012- if ((gE == gE))
1000+ if ((gA == gA))
10131001 then {
1014- let gF = cO(gt, gx)
1015- if ((gF == gF))
1016- then $Tuple2((gF ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
1002+ let gB = cK(gp, gt)
1003+ if ((gB == gB))
1004+ then $Tuple2((gB ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
10171005 else throw("Strict value is not equal to itself.")
10181006 }
10191007 else throw("Strict value is not equal to itself.")
10251013
10261014
10271015
1028-@Callable(eW)
1029-func setManager (gG) = {
1030- let gH = gn(eW)
1031- if ((gH == gH))
1016+@Callable(eS)
1017+func setManager (gC) = {
1018+ let gD = gj(eS)
1019+ if ((gD == gD))
10321020 then {
1033- let gI = fromBase58String(gG)
1034- if ((gI == gI))
1035- then [StringEntry(V(), gG)]
1021+ let gE = fromBase58String(gC)
1022+ if ((gE == gE))
1023+ then [StringEntry(V(), gC)]
10361024 else throw("Strict value is not equal to itself.")
10371025 }
10381026 else throw("Strict value is not equal to itself.")
10401028
10411029
10421030
1043-@Callable(eW)
1031+@Callable(eS)
10441032 func confirmManager () = {
1045- let gJ = gk()
1046- let gK = if (isDefined(gJ))
1033+ let gF = gg()
1034+ let gG = if (isDefined(gF))
10471035 then true
10481036 else throw("No pending manager")
1049- if ((gK == gK))
1037+ if ((gG == gG))
10501038 then {
1051- let gL = if ((eW.callerPublicKey == value(gJ)))
1039+ let gH = if ((eS.callerPublicKey == value(gF)))
10521040 then true
10531041 else throw("You are not pending manager")
1054- if ((gL == gL))
1055- then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
1042+ if ((gH == gH))
1043+ then [StringEntry(U(), toBase58String(value(gF))), DeleteEntry(V())]
10561044 else throw("Strict value is not equal to itself.")
10571045 }
10581046 else throw("Strict value is not equal to itself.")
10601048
10611049
10621050
1063-@Callable(eW)
1064-func put (dK,gM) = if ((0 > dK))
1051+@Callable(eS)
1052+func put (dG,gI) = if ((0 > dG))
10651053 then throw("Invalid slippageTolerance passed")
10661054 else {
1067- let fc = eZ(eW, dK, true)
1068- let em = fc._2
1069- let dp = fc._7
1070- let dI = fc._9
1071- let en = fc._10
1072- let eo = fc._11
1073- let gN = fc._12
1074- let gO = fc._13
1075- let fa = toBigInt(value(eW.payments[0]).amount)
1076- let fb = toBigInt(value(eW.payments[1]).amount)
1077- let eD = ew(fa, fb, toBigInt(0))
1078- if ((eD == eD))
1055+ let eY = eV(eS, dG, true)
1056+ let ei = eY._2
1057+ let dl = eY._7
1058+ let dE = eY._9
1059+ let ej = eY._10
1060+ let ek = eY._11
1061+ let gJ = eY._12
1062+ let gK = eY._13
1063+ let eW = toBigInt(value(eS.payments[0]).amount)
1064+ let eX = toBigInt(value(eS.payments[1]).amount)
1065+ let ez = es(eW, eX, toBigInt(0))
1066+ if ((ez == ez))
10791067 then {
1080- let fe = invoke(aV, "emit", [em], nil)
1081- if ((fe == fe))
1068+ let fa = invoke(aT, "emit", [ei], nil)
1069+ if ((fa == fa))
10821070 then {
1083- let ff = {
1084- let bX = fe
1085- if ($isInstanceOf(bX, "Address"))
1071+ let fb = {
1072+ let bT = fa
1073+ if ($isInstanceOf(bT, "Address"))
10861074 then {
1087- let fg = bX
1088- invoke(fg, "emit", [em], nil)
1075+ let fc = bT
1076+ invoke(fc, "emit", [ei], nil)
10891077 }
10901078 else unit
10911079 }
1092- if ((ff == ff))
1080+ if ((fb == fb))
10931081 then {
1094- let gP = if ((en > 0))
1095- then invoke(bx, "put", nil, [AttachedPayment(gN, en)])
1082+ let gL = if ((ej > 0))
1083+ then invoke(bt, "put", nil, [AttachedPayment(gJ, ej)])
10961084 else nil
1097- if ((gP == gP))
1085+ if ((gL == gL))
10981086 then {
1099- let gQ = if ((eo > 0))
1100- then invoke(bx, "put", nil, [AttachedPayment(gO, eo)])
1087+ let gM = if ((ek > 0))
1088+ then invoke(bt, "put", nil, [AttachedPayment(gK, ek)])
11011089 else nil
1102- if ((gQ == gQ))
1090+ if ((gM == gM))
11031091 then {
1104- let gR = if (gM)
1092+ let gN = if (gI)
11051093 then {
1106- let gS = invoke(bw, "stake", nil, [AttachedPayment(dp, em)])
1107- if ((gS == gS))
1094+ let gO = invoke(bs, "stake", nil, [AttachedPayment(dl, ei)])
1095+ if ((gO == gO))
11081096 then nil
11091097 else throw("Strict value is not equal to itself.")
11101098 }
1111- else [ScriptTransfer(eW.caller, em, dp)]
1112- let gT = eE(0, 0, 0)
1113- if ((gT == gT))
1099+ else [ScriptTransfer(eS.caller, ei, dl)]
1100+ let gP = eA(0, 0, 0)
1101+ if ((gP == gP))
11141102 then {
1115- let ev = gT._2
1116- let gU = gT._1
1117- let gV = eI(eD, ev)
1118- if ((gV == gV))
1103+ let er = gP._2
1104+ let gQ = gP._1
1105+ let gR = eE(ez, er)
1106+ if ((gR == gR))
11191107 then {
1120- let gW = invoke(this, "rebalance", nil, nil)
1121- if ((gW == gW))
1122- then ((dI ++ gR) ++ gU)
1108+ let gS = invoke(this, "rebalance", nil, nil)
1109+ if ((gS == gS))
1110+ then ((dE ++ gN) ++ gQ)
11231111 else throw("Strict value is not equal to itself.")
11241112 }
11251113 else throw("Strict value is not equal to itself.")
11391127
11401128
11411129
1142-@Callable(eW)
1143-func putForFree (gX) = if ((0 > gX))
1130+@Callable(eS)
1131+func putForFree (gT) = if ((0 > gT))
11441132 then throw("Invalid value passed")
11451133 else {
1146- let fc = eZ(eW, gX, false)
1147- let dI = fc._9
1148- let fa = toBigInt(value(eW.payments[0]).amount)
1149- let fb = toBigInt(value(eW.payments[1]).amount)
1150- let eD = ew(fa, fb, toBigInt(0))
1151- if ((eD == eD))
1134+ let eY = eV(eS, gT, false)
1135+ let dE = eY._9
1136+ let eW = toBigInt(value(eS.payments[0]).amount)
1137+ let eX = toBigInt(value(eS.payments[1]).amount)
1138+ let ez = es(eW, eX, toBigInt(0))
1139+ if ((ez == ez))
11521140 then {
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)
1141+ let gU = eA(0, 0, 0)
1142+ let gQ = gU._1
1143+ let er = gU._2
1144+ let gR = eE(ez, er)
1145+ if ((gR == gR))
1146+ then (dE ++ gQ)
11591147 else throw("Strict value is not equal to itself.")
11601148 }
11611149 else throw("Strict value is not equal to itself.")
11631151
11641152
11651153
1166-@Callable(eW)
1167-func putOneTkn (gZ,ha) = {
1168- let hb = {
1169- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1170- if ($isInstanceOf(aY, "Boolean"))
1171- then aY
1172- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1154+@Callable(eS)
1155+func putOneTkn (gV,gW) = {
1156+ let gX = {
1157+ let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1158+ if ($isInstanceOf(aW, "Boolean"))
1159+ then aW
1160+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
11731161 }
1174- let hc = if (if (if (bc())
1162+ let gY = if (if (if (aY())
11751163 then true
1176- else (bp == l))
1164+ else (bl == l))
11771165 then true
1178- else (bp == n))
1166+ else (bl == n))
11791167 then true
1180- else hb
1181- let fQ = [if (if (!(hc))
1168+ else gX
1169+ let fM = [if (if (!(gY))
11821170 then true
1183- else gl(eW))
1171+ else gh(eS))
11841172 then true
1185- else aS("put operation is blocked by admin"), if ((size(eW.payments) == 1))
1173+ else aQ("put operation is blocked by admin"), if ((size(eS.payments) == 1))
11861174 then true
1187- else aS("exactly 1 payment are expected")]
1188- if ((fQ == fQ))
1175+ else aQ("exactly 1 payment are expected")]
1176+ if ((fM == fM))
11891177 then {
1190- let hd = eW.payments[0]
1191- let fl = hd.assetId
1192- let fk = hd.amount
1193- let eD = if ((fl == br))
1194- then ew(toBigInt(fk), toBigInt(0), toBigInt(0))
1195- else if ((fl == bs))
1196- then ew(toBigInt(0), toBigInt(fk), toBigInt(0))
1197- else aS("payment asset is not supported")
1198- if ((eD == eD))
1178+ let gZ = eS.payments[0]
1179+ let fh = gZ.assetId
1180+ let fg = gZ.amount
1181+ let ez = if ((fh == bn))
1182+ then es(toBigInt(fg), toBigInt(0), toBigInt(0))
1183+ else if ((fh == bo))
1184+ then es(toBigInt(0), toBigInt(fg), toBigInt(0))
1185+ else aQ("payment asset is not supported")
1186+ if ((ez == ez))
11991187 then {
1200- let ab = eW.caller
1201- let ac = eW.transactionId
1202- let he = fj(fk, fl, ab, ac)
1203- if ((he == he))
1188+ let ab = eS.caller
1189+ let ac = eS.transactionId
1190+ let ha = ff(fg, fh, ab, ac)
1191+ if ((ha == ha))
12041192 then {
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)
1193+ let fl = ha._5
1194+ let hb = ha._4
1195+ let fe = ha._3
1196+ let el = ha._2
1197+ let hc = ha._1
1198+ let hd = if (if ((gV > 0))
1199+ then (gV > hc)
12121200 else false)
1213- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1214- else hg
1215- let fe = fd(hh)
1216- if ((fe == fe))
1201+ then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1202+ else hc
1203+ let fa = eZ(hd)
1204+ if ((fa == fa))
12171205 then {
1218- let gR = if (ha)
1206+ let gN = if (gW)
12191207 then {
1220- let hi = invoke(bw, "stake", nil, [AttachedPayment(bq, hh)])
1221- if ((hi == hi))
1208+ let he = invoke(bs, "stake", nil, [AttachedPayment(bm, hd)])
1209+ if ((he == he))
12221210 then nil
12231211 else throw("Strict value is not equal to itself.")
12241212 }
1225- else [ScriptTransfer(eW.caller, hh, bq)]
1226- let hj = if ((fi > 0))
1227- then [ScriptTransfer(aW, fi, fl)]
1213+ else [ScriptTransfer(eS.caller, hd, bm)]
1214+ let hf = if ((fe > 0))
1215+ then [ScriptTransfer(aU, fe, fh)]
12281216 else nil
1229- let hk = if ((this == aW))
1217+ let hg = if ((this == aU))
12301218 then $Tuple2(0, 0)
1231- else if (fp)
1232- then $Tuple2(-(fi), 0)
1233- else $Tuple2(0, -(fi))
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
1239- let eP = value(getString(aj))
1240- let gV = eI(eD, ev)
1241- if ((gV == gV))
1219+ else if (fl)
1220+ then $Tuple2(-(fe), 0)
1221+ else $Tuple2(0, -(fe))
1222+ let eB = hg._1
1223+ let eC = hg._2
1224+ let hh = eA(eB, eC, 0)
1225+ let gQ = hh._1
1226+ let er = hh._2
1227+ let eL = value(getString(aj))
1228+ let gR = eE(ez, er)
1229+ if ((gR == gR))
12421230 then {
1243- let gW = invoke(this, "rebalance", nil, nil)
1244- if ((gW == gW))
1245- then $Tuple2((((ep ++ gR) ++ hj) ++ gU), hh)
1231+ let gS = invoke(this, "rebalance", nil, nil)
1232+ if ((gS == gS))
1233+ then $Tuple2((((el ++ gN) ++ hf) ++ gQ), hd)
12461234 else throw("Strict value is not equal to itself.")
12471235 }
12481236 else throw("Strict value is not equal to itself.")
12581246
12591247
12601248
1261-@Callable(eW)
1262-func putOneTknREADONLY (fl,fk) = {
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))
1249+@Callable(eS)
1250+func putOneTknREADONLY (fh,fg) = {
1251+ let hi = ff(fg, bd(fh), unit, unit)
1252+ let hc = hi._1
1253+ let el = hi._2
1254+ let fe = hi._3
1255+ let hb = hi._4
1256+ let fl = hi._5
1257+ $Tuple2(nil, $Tuple3(hc, fe, hb))
12701258 }
12711259
12721260
12731261
1274-@Callable(eW)
1275-func getOneTkn (hn,gZ) = {
1276- let hb = {
1277- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1278- if ($isInstanceOf(aY, "Boolean"))
1279- then aY
1280- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1262+@Callable(eS)
1263+func getOneTkn (hj,gV) = {
1264+ let gX = {
1265+ let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1266+ if ($isInstanceOf(aW, "Boolean"))
1267+ then aW
1268+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
12811269 }
1282- let ho = if (if (bc())
1270+ let hk = if (if (aY())
12831271 then true
1284- else (bp == n))
1272+ else (bl == n))
12851273 then true
1286- else hb
1287- let fQ = [if (if (!(ho))
1274+ else gX
1275+ let fM = [if (if (!(hk))
12881276 then true
1289- else gl(eW))
1277+ else gh(eS))
12901278 then true
1291- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 1))
1279+ else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 1))
12921280 then true
1293- else aS("exactly 1 payment are expected")]
1294- if ((fQ == fQ))
1281+ else aQ("exactly 1 payment are expected")]
1282+ if ((fM == fM))
12951283 then {
1296- let fP = bh(hn)
1297- let hd = eW.payments[0]
1298- let fl = hd.assetId
1299- let fx = hd.amount
1300- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1301- if ((eD == eD))
1284+ let fL = bd(hj)
1285+ let gZ = eS.payments[0]
1286+ let fh = gZ.assetId
1287+ let ft = gZ.amount
1288+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1289+ if ((ez == ez))
13021290 then {
1303- let ab = eW.caller
1304- let ac = eW.transactionId
1305- let hp = fO(fP, fx, fl, ab, ac)
1306- if ((hp == hp))
1291+ let ab = eS.caller
1292+ let ac = eS.transactionId
1293+ let hl = fK(fL, ft, fh, ab, ac)
1294+ if ((hl == hl))
13071295 then {
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)
1296+ let fN = hl._5
1297+ let hb = hl._4
1298+ let fe = hl._3
1299+ let el = hl._2
1300+ let hm = hl._1
1301+ let bW = if (if ((gV > 0))
1302+ then (gV > hm)
13151303 else false)
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))
1304+ then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1305+ else hm
1306+ let hn = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1307+ if ((hn == hn))
13201308 then {
1321- let gF = cO(hn, ca)
1322- if ((gF == gF))
1309+ let gB = cK(hj, bW)
1310+ if ((gB == gB))
13231311 then {
1324- let hs = [ScriptTransfer(ab, ca, fP)]
1325- let hj = if ((fi > 0))
1326- then [ScriptTransfer(aW, fi, fP)]
1312+ let ho = [ScriptTransfer(ab, bW, fL)]
1313+ let hf = if ((fe > 0))
1314+ then [ScriptTransfer(aU, fe, fL)]
13271315 else nil
1328- let ht = {
1329- let hu = if ((this == aW))
1316+ let hp = {
1317+ let hq = if ((this == aU))
13301318 then 0
1331- else fi
1332- if (fR)
1333- then $Tuple2(-((ca + hu)), 0)
1334- else $Tuple2(0, -((ca + hu)))
1319+ else fe
1320+ if (fN)
1321+ then $Tuple2(-((bW + hq)), 0)
1322+ else $Tuple2(0, -((bW + hq)))
13351323 }
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)
1324+ let eB = hp._1
1325+ let eC = hp._2
1326+ let hr = eA(eB, eC, 0)
1327+ let gQ = hr._1
1328+ let er = hr._2
1329+ let gR = eE(ez, er)
1330+ if ((gR == gR))
1331+ then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
13441332 else throw("Strict value is not equal to itself.")
13451333 }
13461334 else throw("Strict value is not equal to itself.")
13561344
13571345
13581346
1359-@Callable(eW)
1360-func getOneTknREADONLY (fP,fx) = {
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))
1347+@Callable(eS)
1348+func getOneTknREADONLY (fL,ft) = {
1349+ let hs = fK(bd(fL), ft, bm, unit, unit)
1350+ let hm = hs._1
1351+ let el = hs._2
1352+ let fe = hs._3
1353+ let hb = hs._4
1354+ let fN = hs._5
1355+ $Tuple2(nil, $Tuple3(hm, fe, hb))
13681356 }
13691357
13701358
13711359
1372-@Callable(eW)
1373-func unstakeAndGetOneTkn (hx,hn,gZ) = {
1374- let hb = {
1375- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1376- if ($isInstanceOf(aY, "Boolean"))
1377- then aY
1378- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1360+@Callable(eS)
1361+func unstakeAndGetOneTkn (ht,hj,gV) = {
1362+ let gX = {
1363+ let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1364+ if ($isInstanceOf(aW, "Boolean"))
1365+ then aW
1366+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
13791367 }
1380- let ho = if (if (bc())
1368+ let hk = if (if (aY())
13811369 then true
1382- else (bp == n))
1370+ else (bl == n))
13831371 then true
1384- else hb
1385- let fQ = [if (if (!(ho))
1372+ else gX
1373+ let fM = [if (if (!(hk))
13861374 then true
1387- else gl(eW))
1375+ else gh(eS))
13881376 then true
1389- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1377+ else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 0))
13901378 then true
1391- else aS("no payments are expected")]
1392- if ((fQ == fQ))
1379+ else aQ("no payments are expected")]
1380+ if ((fM == fM))
13931381 then {
1394- let fP = bh(hn)
1395- let ab = eW.caller
1396- let ac = eW.transactionId
1397- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1398- if ((eD == eD))
1382+ let fL = bd(hj)
1383+ let ab = eS.caller
1384+ let ac = eS.transactionId
1385+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1386+ if ((ez == ez))
13991387 then {
1400- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1401- if ((hy == hy))
1388+ let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1389+ if ((hu == hu))
14021390 then {
1403- let hz = fO(fP, hx, bq, ab, ac)
1404- if ((hz == hz))
1391+ let hv = fK(fL, ht, bm, ab, ac)
1392+ if ((hv == hv))
14051393 then {
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)
1394+ let fN = hv._5
1395+ let hb = hv._4
1396+ let fe = hv._3
1397+ let el = hv._2
1398+ let hm = hv._1
1399+ let bW = if (if ((gV > 0))
1400+ then (gV > hm)
14131401 else false)
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))
1402+ then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1403+ else hm
1404+ let hn = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1405+ if ((hn == hn))
14181406 then {
1419- let gF = cO(hn, ca)
1420- if ((gF == gF))
1407+ let gB = cK(hj, bW)
1408+ if ((gB == gB))
14211409 then {
1422- let hs = [ScriptTransfer(eW.caller, ca, fP)]
1423- let hj = if ((fi > 0))
1424- then [ScriptTransfer(aW, fi, fP)]
1410+ let ho = [ScriptTransfer(eS.caller, bW, fL)]
1411+ let hf = if ((fe > 0))
1412+ then [ScriptTransfer(aU, fe, fL)]
14251413 else nil
1426- let hA = {
1427- let hu = if ((this == aW))
1414+ let hw = {
1415+ let hq = if ((this == aU))
14281416 then 0
1429- else fi
1430- if (fR)
1431- then $Tuple2(-((ca + hu)), 0)
1432- else $Tuple2(0, -((ca + hu)))
1417+ else fe
1418+ if (fN)
1419+ then $Tuple2(-((bW + hq)), 0)
1420+ else $Tuple2(0, -((bW + hq)))
14331421 }
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)
1422+ let eB = hw._1
1423+ let eC = hw._2
1424+ let hx = eA(eB, eC, 0)
1425+ let gQ = hx._1
1426+ let er = hx._2
1427+ let gR = eE(ez, er)
1428+ if ((gR == gR))
1429+ then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
14421430 else throw("Strict value is not equal to itself.")
14431431 }
14441432 else throw("Strict value is not equal to itself.")
14561444
14571445
14581446
1459-@Callable(eW)
1447+@Callable(eS)
14601448 func get () = {
1461- let ea = eV(eW)
1462- let hC = ea._1
1463- let dF = ea._2
1464- let eY = ea._3
1465- let dn = ea._4
1466- let dI = ea._5
1467- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1468- if ((eD == eD))
1449+ let dW = eR(eS)
1450+ let hy = dW._1
1451+ let dB = dW._2
1452+ let eU = dW._3
1453+ let dj = dW._4
1454+ let dE = dW._5
1455+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1456+ if ((ez == ez))
14691457 then {
1470- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1471- if ((hD == hD))
1458+ let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1459+ if ((hz == hz))
14721460 then {
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)
1461+ let hA = eA(-(hy), -(dB), 0)
1462+ let gQ = hA._1
1463+ let er = hA._2
1464+ let gR = eE(ez, er)
1465+ if ((gR == gR))
1466+ then (dE ++ gQ)
14791467 else throw("Strict value is not equal to itself.")
14801468 }
14811469 else throw("Strict value is not equal to itself.")
14851473
14861474
14871475
1488-@Callable(eW)
1489-func getNoLess (hF,hG) = {
1490- let ea = eV(eW)
1491- let dE = ea._1
1492- let dF = ea._2
1493- let eY = ea._3
1494- let dn = ea._4
1495- let dI = ea._5
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)))
1476+@Callable(eS)
1477+func getNoLess (hB,hC) = {
1478+ let dW = eR(eS)
1479+ let dA = dW._1
1480+ let dB = dW._2
1481+ let eU = dW._3
1482+ let dj = dW._4
1483+ let dE = dW._5
1484+ if ((hB > dA))
1485+ then throw(((("noLessThenAmtAsset failed: " + toString(dA)) + " < ") + toString(hB)))
1486+ else if ((hC > dB))
1487+ then throw(((("noLessThenPriceAsset failed: " + toString(dB)) + " < ") + toString(hC)))
15001488 else {
1501- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1502- if ((eD == eD))
1489+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1490+ if ((ez == ez))
15031491 then {
1504- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1505- if ((hD == hD))
1492+ let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1493+ if ((hz == hz))
15061494 then {
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)
1495+ let hD = eA(-(dA), -(dB), 0)
1496+ let gQ = hD._1
1497+ let er = hD._2
1498+ let gR = eE(ez, er)
1499+ if ((gR == gR))
1500+ then (dE ++ gQ)
15131501 else throw("Strict value is not equal to itself.")
15141502 }
15151503 else throw("Strict value is not equal to itself.")
15201508
15211509
15221510
1523-@Callable(eW)
1524-func unstakeAndGet (ca) = {
1525- let hI = if ((size(eW.payments) != 0))
1511+@Callable(eS)
1512+func unstakeAndGet (bW) = {
1513+ let hE = if ((size(eS.payments) != 0))
15261514 then throw("No payments are expected")
15271515 else true
1528- if ((hI == hI))
1516+ if ((hE == hE))
15291517 then {
1530- let dc = be()
1531- let dp = fromBase58String(dc[q])
1532- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1533- if ((eD == eD))
1518+ let cY = ba()
1519+ let dl = fromBase58String(cY[q])
1520+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1521+ if ((ez == ez))
15341522 then {
1535- let hy = invoke(bw, "unstake", [toBase58String(dp), ca], nil)
1536- if ((hy == hy))
1523+ let hu = invoke(bs, "unstake", [toBase58String(dl), bW], nil)
1524+ if ((hu == hu))
15371525 then {
1538- let ea = dl(toBase58String(eW.transactionId), toBase58String(dp), ca, eW.caller)
1539- let dE = ea._1
1540- let dF = ea._2
1541- let ds = parseIntValue(ea._9)
1542- let dI = ea._10
1543- let hJ = if (if (bc())
1526+ let dW = dh(toBase58String(eS.transactionId), toBase58String(dl), bW, eS.caller)
1527+ let dA = dW._1
1528+ let dB = dW._2
1529+ let do = parseIntValue(dW._9)
1530+ let dE = dW._10
1531+ let hF = if (if (aY())
15441532 then true
1545- else (ds == n))
1546- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
1533+ else (do == n))
1534+ then throw(("Get operation is blocked by admin. Status = " + toString(do)))
15471535 else true
1548- if ((hJ == hJ))
1536+ if ((hF == hF))
15491537 then {
1550- let hD = invoke(aV, "burn", [ca], [AttachedPayment(dp, ca)])
1551- if ((hD == hD))
1538+ let hz = invoke(aT, "burn", [bW], [AttachedPayment(dl, bW)])
1539+ if ((hz == hz))
15521540 then {
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)
1541+ let hG = eA(-(dA), -(dB), 0)
1542+ let gQ = hG._1
1543+ let er = hG._2
1544+ let gR = eE(ez, er)
1545+ if ((gR == gR))
1546+ then (dE ++ gQ)
15591547 else throw("Strict value is not equal to itself.")
15601548 }
15611549 else throw("Strict value is not equal to itself.")
15711559
15721560
15731561
1574-@Callable(eW)
1575-func unstakeAndGetNoLess (hx,hL,hG) = {
1576- let ho = if (bc())
1562+@Callable(eS)
1563+func unstakeAndGetNoLess (ht,hH,hC) = {
1564+ let hk = if (aY())
15771565 then true
1578- else (bp == n)
1579- let fQ = [if (!(ho))
1566+ else (bl == n)
1567+ let fM = [if (!(hk))
15801568 then true
1581- else throw("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1569+ else throw("get operation is blocked by admin"), if ((size(eS.payments) == 0))
15821570 then true
15831571 else throw("no payments are expected")]
1584- if ((fQ == fQ))
1572+ if ((fM == fM))
15851573 then {
1586- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1587- if ((eD == eD))
1574+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1575+ if ((ez == ez))
15881576 then {
1589- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1590- if ((hy == hy))
1577+ let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1578+ if ((hu == hu))
15911579 then {
1592- let ea = dl(toBase58String(eW.transactionId), toBase58String(bq), hx, eW.caller)
1593- let dE = ea._1
1594- let dF = ea._2
1595- let dI = ea._10
1596- let hM = [if ((dE >= hL))
1580+ let dW = dh(toBase58String(eS.transactionId), toBase58String(bm), ht, eS.caller)
1581+ let dA = dW._1
1582+ let dB = dW._2
1583+ let dE = dW._10
1584+ let hI = [if ((dA >= hH))
15971585 then true
1598- else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dF >= hG))
1586+ else throw(makeString(["amount asset amount to receive is less than ", toString(hH)], "")), if ((dB >= hC))
15991587 then true
1600- else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1601- if ((hM == hM))
1588+ else throw(makeString(["price asset amount to receive is less than ", toString(hC)], ""))]
1589+ if ((hI == hI))
16021590 then {
1603- let hD = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1604- if ((hD == hD))
1591+ let hz = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1592+ if ((hz == hz))
16051593 then {
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)
1594+ let hJ = eA(-(dA), -(dB), 0)
1595+ let gQ = hJ._1
1596+ let er = hJ._2
1597+ let gR = eE(ez, er)
1598+ if ((gR == gR))
1599+ then (dE ++ gQ)
16121600 else throw("Strict value is not equal to itself.")
16131601 }
16141602 else throw("Strict value is not equal to itself.")
16241612
16251613
16261614
1627-@Callable(eW)
1628-func activate (hO,hP) = if ((toString(eW.caller) != toString(aV)))
1615+@Callable(eS)
1616+func activate (hK,hL) = if ((toString(eS.caller) != toString(aT)))
16291617 then throw("permissions denied")
1630- else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
1618+ else $Tuple2([StringEntry(ae(), hK), StringEntry(af(), hL)], "success")
16311619
16321620
16331621
1634-@Callable(eW)
1622+@Callable(eS)
16351623 func refreshKLp () = {
1636- let hQ = valueOrElse(getInteger(ak), 0)
1637- let hR = if (((height - hQ) >= an))
1624+ let hM = valueOrElse(getInteger(ak), 0)
1625+ let hN = if (((height - hM) >= an))
16381626 then unit
1639- else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1640- if ((hR == hR))
1627+ else aQ(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1628+ if ((hN == hN))
16411629 then {
1642- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1643- let hS = eE(0, 0, 0)
1644- let hT = hS._1
1645- let ev = hS._2
1646- let eH = if ((eP != ev))
1647- then hT
1648- else aS("nothing to refresh")
1649- $Tuple2(eH, toString(ev))
1630+ let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
1631+ let hO = eA(0, 0, 0)
1632+ let hP = hO._1
1633+ let er = hO._2
1634+ let eD = if ((eL != er))
1635+ then hP
1636+ else aQ("nothing to refresh")
1637+ $Tuple2(eD, toString(er))
16501638 }
16511639 else throw("Strict value is not equal to itself.")
16521640 }
16531641
16541642
16551643
1656-@Callable(eW)
1657-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, be())
1644+@Callable(eS)
1645+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ba())
16581646
16591647
16601648
1661-@Callable(eW)
1662-func getAccBalanceWrapperREADONLY (ar) = $Tuple2(nil, bN(ar))
1649+@Callable(eS)
1650+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bJ(ap))
16631651
16641652
16651653
1666-@Callable(eW)
1667-func calcPricesWrapperREADONLY (cW,cX,db) = {
1668- let dk = da(cW, cX, db)
1669- $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
1654+@Callable(eS)
1655+func calcPricesWrapperREADONLY (cS,cT,cX) = {
1656+ let dg = cW(cS, cT, cX)
1657+ $Tuple2(nil, [toString(dg[0]), toString(dg[1]), toString(dg[2])])
16701658 }
16711659
16721660
16731661
1674-@Callable(eW)
1662+@Callable(eS)
16751663 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16761664
16771665
16781666
1679-@Callable(eW)
1667+@Callable(eS)
16801668 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16811669
16821670
16831671
1684-@Callable(eW)
1685-func calcPriceBigIntWrapperREADONLY (bR,bS) = $Tuple2(nil, toString(bQ(parseBigIntValue(bR), parseBigIntValue(bS))))
1672+@Callable(eS)
1673+func calcPriceBigIntWrapperREADONLY (bN,bO) = $Tuple2(nil, toString(bM(parseBigIntValue(bN), parseBigIntValue(bO))))
16861674
16871675
16881676
1689-@Callable(eW)
1690-func estimatePutOperationWrapperREADONLY (dm,dK,dL,dM,dN,dO,ab,dP,dQ) = $Tuple2(nil, dJ(dm, dK, dL, dM, dN, dO, ab, dP, dQ))
1677+@Callable(eS)
1678+func estimatePutOperationWrapperREADONLY (di,dG,dH,dI,dJ,dK,ab,dL,dM) = $Tuple2(nil, dF(di, dG, dH, dI, dJ, dK, ab, dL, dM))
16911679
16921680
16931681
1694-@Callable(eW)
1695-func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
1696- let ea = dl(dm, dn, do, addressFromStringValue(ab))
1697- $Tuple2(nil, $Tuple10(ea._1, ea._2, ea._3, ea._4, ea._5, ea._6, ea._7, toString(ea._8), ea._9, ea._10))
1682+@Callable(eS)
1683+func estimateGetOperationWrapperREADONLY (di,dj,dk,ab) = {
1684+ let dW = dh(di, dj, dk, addressFromStringValue(ab))
1685+ $Tuple2(nil, $Tuple10(dW._1, dW._2, dW._3, dW._4, dW._5, dW._6, dW._7, toString(dW._8), dW._9, dW._10))
16981686 }
16991687
17001688
17011689
1702-@Callable(eW)
1690+@Callable(eS)
17031691 func statsREADONLY () = {
1704- let dc = be()
1705- let dp = fromBase58String(dc[q])
1706- let hU = dc[r]
1707- let hV = dc[s]
1708- let dT = dc[v]
1709- let dU = dc[w]
1710- let dd = parseIntValue(dc[t])
1711- let de = parseIntValue(dc[u])
1712- let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1713- let hX = bN(hU)
1714- let hY = bN(hV)
1715- let hZ = if ((hW == 0))
1692+ let cY = ba()
1693+ let dl = fromBase58String(cY[q])
1694+ let hQ = cY[r]
1695+ let hR = cY[s]
1696+ let dP = cY[v]
1697+ let dQ = cY[w]
1698+ let cZ = parseIntValue(cY[t])
1699+ let da = parseIntValue(cY[u])
1700+ let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1701+ let hT = bJ(hQ)
1702+ let hU = bJ(hR)
1703+ let hV = if ((hS == 0))
17161704 then [e, e, e]
1717- else da(hX, hY, hW)
1718- let dz = 0
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))
1705+ else cW(hT, hU, hS)
1706+ let dv = 0
1707+ let hW = H(hV[1], b)
1708+ let hX = H(hV[2], b)
1709+ let hY = value(getInteger(aT, aD(toString(this))))
1710+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hT), toString(hU), toString(hS), toString(dv), toString(hW), toString(hX), toString(hY)], j))
17231711 }
17241712
17251713
17261714
1727-@Callable(eW)
1728-func evaluatePutByAmountAssetREADONLY (dL) = {
1729- let dc = be()
1730- let dp = fromBase58String(dc[q])
1731- let dR = dc[r]
1732- let dq = fromBase58String(dR)
1733- let dS = dc[s]
1734- let dr = fromBase58String(dS)
1735- let dd = parseIntValue(dc[t])
1736- let de = parseIntValue(dc[u])
1737- let ds = dc[p]
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))
1715+@Callable(eS)
1716+func evaluatePutByAmountAssetREADONLY (dH) = {
1717+ let cY = ba()
1718+ let dl = fromBase58String(cY[q])
1719+ let dN = cY[r]
1720+ let dm = fromBase58String(dN)
1721+ let dO = cY[s]
1722+ let dn = fromBase58String(dO)
1723+ let cZ = parseIntValue(cY[t])
1724+ let da = parseIntValue(cY[u])
1725+ let do = cY[p]
1726+ let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1727+ let hT = bJ(dN)
1728+ let hU = bJ(dO)
1729+ let cU = D(hT, cZ)
1730+ let cV = D(hU, da)
1731+ let du = if ((hS == 0))
17441732 then e
1745- else bQ(cZ, cY)
1746- let dX = D(dL, dd)
1747- let dY = fraction(dX, dy, d)
1748- let dN = H(dY, de)
1749- let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
1750- let ei = fc._1
1751- let id = fc._3
1752- let du = fc._4
1753- let dw = fc._5
1754- let dt = fc._6
1755- $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))
1733+ else bM(cV, cU)
1734+ let dT = D(dH, cZ)
1735+ let dU = fraction(dT, du, d)
1736+ let dJ = H(dU, da)
1737+ let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
1738+ let ee = eY._1
1739+ let hZ = eY._3
1740+ let dq = eY._4
1741+ let ds = eY._5
1742+ let dp = eY._6
1743+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(du, b)), toString(dq), toString(ds), toString(dp), do, toString(dH), toString(dJ)], j))
17561744 }
17571745
17581746
17591747
1760-@Callable(eW)
1761-func evaluatePutByPriceAssetREADONLY (dN) = {
1762- let dc = be()
1763- let dp = fromBase58String(dc[q])
1764- let dR = dc[r]
1765- let dq = fromBase58String(dR)
1766- let dS = dc[s]
1767- let dr = fromBase58String(dS)
1768- let dd = parseIntValue(dc[t])
1769- let de = parseIntValue(dc[u])
1770- let ds = dc[p]
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))
1748+@Callable(eS)
1749+func evaluatePutByPriceAssetREADONLY (dJ) = {
1750+ let cY = ba()
1751+ let dl = fromBase58String(cY[q])
1752+ let dN = cY[r]
1753+ let dm = fromBase58String(dN)
1754+ let dO = cY[s]
1755+ let dn = fromBase58String(dO)
1756+ let cZ = parseIntValue(cY[t])
1757+ let da = parseIntValue(cY[u])
1758+ let do = cY[p]
1759+ let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1760+ let ia = bJ(dN)
1761+ let ib = bJ(dO)
1762+ let ic = D(ia, cZ)
1763+ let id = D(ib, da)
1764+ let du = if ((hS == 0))
17771765 then e
1778- else bQ(ih, ig)
1779- let dY = D(dN, de)
1780- let dX = fraction(dY, d, dy)
1781- let dL = H(dX, dd)
1782- let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
1783- let ei = fc._1
1784- let id = fc._3
1785- let du = fc._4
1786- let dw = fc._5
1787- let dt = fc._6
1788- $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))
1766+ else bM(id, ic)
1767+ let dU = D(dJ, da)
1768+ let dT = fraction(dU, d, du)
1769+ let dH = H(dT, cZ)
1770+ let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
1771+ let ee = eY._1
1772+ let hZ = eY._3
1773+ let dq = eY._4
1774+ let ds = eY._5
1775+ let dp = eY._6
1776+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(du, b)), toString(dq), toString(ds), toString(dp), do, toString(dH), toString(dJ)], j))
17891777 }
17901778
17911779
17921780
1793-@Callable(eW)
1794-func evaluateGetREADONLY (ii,ij) = {
1795- let ea = dl("", ii, ij, this)
1796- let dE = ea._1
1797- let dF = ea._2
1798- let du = ea._5
1799- let dw = ea._6
1800- let dt = ea._7
1801- let dz = ea._8
1802- let ds = parseIntValue(ea._9)
1803- $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))
1781+@Callable(eS)
1782+func evaluateGetREADONLY (ie,if) = {
1783+ let dW = dh("", ie, if, this)
1784+ let dA = dW._1
1785+ let dB = dW._2
1786+ let dq = dW._5
1787+ let ds = dW._6
1788+ let dp = dW._7
1789+ let dv = dW._8
1790+ let do = parseIntValue(dW._9)
1791+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dA), toString(dB), toString(dq), toString(ds), toString(dp), toString(dv), toString(do)], j))
18041792 }
18051793
18061794
1807-@Verifier(ik)
1808-func il () = {
1809- let im = {
1810- let bX = gi()
1811- if ($isInstanceOf(bX, "ByteVector"))
1795+@Verifier(ig)
1796+func ih () = {
1797+ let ii = {
1798+ let bT = ge()
1799+ if ($isInstanceOf(bT, "ByteVector"))
18121800 then {
1813- let gm = bX
1814- gm
1801+ let gi = bT
1802+ gi
18151803 }
1816- else if ($isInstanceOf(bX, "Unit"))
1817- then ik.senderPublicKey
1804+ else if ($isInstanceOf(bT, "Unit"))
1805+ then ig.senderPublicKey
18181806 else throw("Match error")
18191807 }
1820- let bX = ik
1821- if ($isInstanceOf(bX, "Order"))
1808+ let bT = ig
1809+ if ($isInstanceOf(bT, "Order"))
18221810 then {
1823- let eL = bX
1824- let in = bd()
1825- let io = eK(eL)
1826- let aK = io._1
1827- let aL = io._2
1828- let aM = sigVerify(eL.bodyBytes, eL.proofs[0], eL.senderPublicKey)
1829- let aN = sigVerify(eL.bodyBytes, eL.proofs[1], in)
1830- if (if (if (aK)
1831- then aM
1811+ let eH = bT
1812+ let ij = aZ()
1813+ let ik = eG(eH)
1814+ let aI = ik._1
1815+ let aJ = ik._2
1816+ let aK = sigVerify(eH.bodyBytes, eH.proofs[0], eH.senderPublicKey)
1817+ let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ij)
1818+ if (if (if (aI)
1819+ then aK
18321820 else false)
1833- then aN
1821+ then aL
18341822 else false)
18351823 then true
1836- else aJ(aK, aL, aM, aN)
1824+ else aH(aI, aJ, aK, aL)
18371825 }
1838- else if ($isInstanceOf(bX, "SetScriptTransaction"))
1826+ else if ($isInstanceOf(bT, "SetScriptTransaction"))
18391827 then {
1840- let gj = bX
1841- if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
1828+ let gf = bT
1829+ if (sigVerify(ig.bodyBytes, ig.proofs[0], ii))
18421830 then true
18431831 else {
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)
1832+ let il = blake2b256(value(gf.script))
1833+ let im = fromBase64String(value(getString(aT, aF())))
1834+ let in = scriptHash(this)
1835+ if ((im == il))
1836+ then (in != il)
18491837 else false
18501838 }
18511839 }
1852- else sigVerify(ik.bodyBytes, ik.proofs[0], im)
1840+ else sigVerify(ig.bodyBytes, ig.proofs[0], ii)
18531841 }
18541842
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
133-func ao () = "%s__sWavesAssetId"
133+func ao (ap) = makeString(["%s%s", "stakedBalance", ap], j)
134134
135135
136-func ap () = "%s__sWavesProxyAddress"
136+func aq (ap) = makeString(["%s%s", "shareAssetBalance", ap], j)
137137
138138
139-func aq (ar) = makeString(["%s%s", "additionalBalance", ar], j)
139+func ar (ap) = valueOrElse(getInteger(this, ao(ap)), 0)
140140
141141
142-func as (ar) = makeString(["%s%s", "stakingAssetBalance", ar], j)
142+func as (ap) = valueOrElse(getInteger(this, aq(ap)), 0)
143143
144144
145-func at (ar) = valueOrElse(getInteger(this, aq(ar)), 0)
145+func at () = "%s__factoryConfig"
146146
147147
148-func au (ar) = valueOrElse(getInteger(this, as(ar)), 0)
148+func au () = "%s%s__matcher__publicKey"
149149
150150
151-func av () = "%s__factoryConfig"
151+func av (aw) = (("%s%s%s__" + aw) + "__mappings__poolContract2LpAsset")
152152
153153
154-func aw () = "%s%s__matcher__publicKey"
154+func ax (ay,az) = (((("%d%d%s__" + ay) + "__") + az) + "__config")
155155
156156
157-func ax (ay) = (("%s%s%s__" + ay) + "__mappings__poolContract2LpAsset")
157+func aA (aB) = ("%s%s%s__mappings__baseAsset2internalId__" + aB)
158158
159159
160-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
160+func aC () = "%s__shutdown"
161161
162162
163-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
163+func aD (aE) = ("%s%s__poolWeight__" + aE)
164164
165165
166-func aE () = "%s__shutdown"
166+func aF () = "%s__allowedLpScriptHash"
167167
168168
169-func aF (aG) = ("%s%s__poolWeight__" + aG)
169+let aG = "%s__feeCollectorAddress"
170+
171+func aH (aI,aJ,aK,aL) = throw((((((((("order validation failed: orderValid=" + toString(aI)) + " (") + aJ) + ")") + " senderValid=") + toString(aK)) + " matcherValid=") + toString(aL)))
170172
171173
172-func aH () = "%s__allowedLpScriptHash"
174+func aM (aN,aO) = valueOrErrorMessage(getString(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
173175
174176
175-let aI = "%s__feeCollectorAddress"
176-
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
177+func aP (aN,aO) = valueOrErrorMessage(getInteger(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
178178
179179
180-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
180+func aQ (aR) = throw(makeString(["lp.ride:", aR], " "))
181181
182182
183-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
183+func aS (aR) = makeString(["lp.ride:", aR], " ")
184184
185185
186-func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
186+let aT = addressFromStringValue(aM(this, T()))
187+
188+let aU = addressFromStringValue(aM(aT, aG))
189+
190+let aV = {
191+ let aW = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
192+ if ($isInstanceOf(aW, "Int"))
193+ then aW
194+ else throw(($getType(aW) + " couldn't be cast to Int"))
195+ }
196+
197+let aX = {
198+ let aW = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
199+ if ($isInstanceOf(aW, "Int"))
200+ then aW
201+ else throw(($getType(aW) + " couldn't be cast to Int"))
202+ }
203+
204+func aY () = valueOrElse(getBoolean(aT, aC()), false)
187205
188206
189-func aU (aT) = makeString(["lp.ride:", aT], " ")
207+func aZ () = fromBase58String(aM(aT, au()))
190208
191209
192-let aV = addressFromStringValue(aO(this, T()))
193-
194-let aW = addressFromStringValue(aO(aV, aI))
195-
196-let aX = {
197- let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
198- if ($isInstanceOf(aY, "Int"))
199- then aY
200- else throw(($getType(aY) + " couldn't be cast to Int"))
201- }
202-
203-let aZ = {
204- let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
205- if ($isInstanceOf(aY, "Int"))
206- then aY
207- else throw(($getType(aY) + " couldn't be cast to Int"))
208- }
209-
210-func ba () = aO(aV, ao())
211-
212-
213-func bb () = aO(aV, ap())
214-
215-
216-func bc () = valueOrElse(getBoolean(aV, aE()), false)
217-
218-
219-func bd () = fromBase58String(aO(aV, aw()))
220-
221-
222-func be () = {
223- let bf = aO(this, ae())
224- let bg = aO(this, af())
225- let aB = aR(aV, aC(bg))
226- let aA = aR(aV, aC(bf))
227- split(aO(aV, az(toString(aA), toString(aB))), j)
210+func ba () = {
211+ let bb = aM(this, ae())
212+ let bc = aM(this, af())
213+ let az = aP(aT, aA(bc))
214+ let ay = aP(aT, aA(bb))
215+ split(aM(aT, ax(toString(ay), toString(az))), j)
228216 }
229217
230218
231-func bh (bi) = if ((bi == i))
219+func bd (be) = if ((be == i))
232220 then unit
233- else fromBase58String(bi)
221+ else fromBase58String(be)
234222
235223
236-func bj (bi) = if ((bi == unit))
224+func bf (be) = if ((be == unit))
237225 then i
238- else toBase58String(value(bi))
226+ else toBase58String(value(be))
239227
240228
241-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]))
229+func bg (bh) = $Tuple7(addressFromStringValue(bh[o]), parseIntValue(bh[p]), fromBase58String(bh[q]), bd(bh[r]), bd(bh[s]), parseIntValue(bh[t]), parseIntValue(bh[u]))
242230
243231
244-let bm = bk(be())
232+let bi = bg(ba())
245233
246-let bn = bm
234+let bj = bi
247235
248-let bo = bn._1
236+let bk = bj._1
249237
250-let bp = bn._2
238+let bl = bj._2
251239
252-let bq = bn._3
240+let bm = bj._3
253241
254-let br = bn._4
242+let bn = bj._4
255243
256-let bs = bn._5
244+let bo = bj._5
257245
258-let bt = bn._6
246+let bp = bj._6
259247
260-let bu = bn._7
248+let bq = bj._7
261249
262-func bv () = split(aO(aV, av()), j)
250+func br () = split(aM(aT, at()), j)
263251
264252
265-let bw = valueOrErrorMessage(addressFromString(bv()[B]), "incorrect staking address")
253+let bs = valueOrErrorMessage(addressFromString(br()[B]), "incorrect staking address")
266254
267-let bx = valueOrErrorMessage(addressFromString(bv()[C]), "incorrect staking address")
255+let bt = valueOrErrorMessage(addressFromString(br()[C]), "incorrect staking address")
268256
269-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)
257+func bu (bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bv), toString(bw), toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE)], j)
270258
271259
272-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)
260+func bF (bG,bH,bI,by,bB,bC) = makeString(["%d%d%d%d%d%d", toString(bG), toString(bH), toString(bI), toString(by), toString(bB), toString(bC)], j)
273261
274262
275-func bN (ar) = {
276- let bO = if ((ar == "WAVES"))
263+func bJ (ap) = {
264+ let bK = if ((ap == "WAVES"))
277265 then wavesBalance(this).available
278- else assetBalance(this, fromBase58String(ar))
279- let bP = ((bO + at(ar)) - au(ar))
280- max([0, bP])
266+ else assetBalance(this, fromBase58String(ap))
267+ let bL = ((bK + ar(ap)) - as(ap))
268+ max([0, bL])
281269 }
282270
283271
284-func bQ (bR,bS) = fraction(bR, d, bS)
272+func bM (bN,bO) = fraction(bN, d, bO)
285273
286274
287-func bT (bR,bS,L) = fraction(bR, d, bS, L)
275+func bP (bN,bO,L) = fraction(bN, d, bO, L)
288276
289277
290-func bU (bV) = {
291- let bW = invoke(bV, "getRate", nil, nil)
292- if ((bW == bW))
278+func bQ (bR) = {
279+ let bS = invoke(bR, "getRate", nil, nil)
280+ if ((bS == bS))
293281 then {
294- let bX = bW
295- if ($isInstanceOf(bX, "Int"))
282+ let bT = bS
283+ if ($isInstanceOf(bT, "Int"))
296284 then {
297- let bY = bX
298- bY
285+ let bU = bT
286+ bU
299287 }
300- else aS("proxy.getRate() unexpected value")
288+ else aQ("proxy.getRate() unexpected value")
301289 }
302290 else throw("Strict value is not equal to itself.")
303291 }
304292
305293
306-func bZ (ar,ca,cb,bV) = {
307- let cc = at(ar)
308- if ((cc == cc))
294+func bV (ap,bW,bX,bR) = {
295+ let bY = ar(ap)
296+ if ((bY == bY))
309297 then {
310- let cd = au(cb)
311- if ((cd == cd))
298+ let bZ = as(bX)
299+ if ((bZ == bZ))
312300 then {
313- let ce = bh(ar)
314- if ((ca > 0))
301+ let ca = bd(ap)
302+ if ((bW > 0))
315303 then {
316- let cf = invoke(bV, "deposit", nil, [AttachedPayment(ce, ca)])
317- if ((cf == cf))
304+ let cb = invoke(bR, "deposit", nil, [AttachedPayment(ca, bW)])
305+ if ((cb == cb))
318306 then {
319- let bX = cf
320- if ($isInstanceOf(bX, "Int"))
307+ let bT = cb
308+ if ($isInstanceOf(bT, "Int"))
321309 then {
322- let cg = bX
323- let ch = (cc + ca)
324- let ci = (cd + cg)
325-[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci)]
310+ let cc = bT
311+ let cd = (bY + bW)
312+ let ce = (bZ + cc)
313+[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce)]
326314 }
327315 else nil
328316 }
329317 else throw("Strict value is not equal to itself.")
330318 }
331319 else nil
332320 }
333321 else throw("Strict value is not equal to itself.")
334322 }
335323 else throw("Strict value is not equal to itself.")
336324 }
337325
338326
339-func cj (ar,ca,cb,bV,ck,cl) = {
340- let cc = at(ar)
341- if ((cc == cc))
327+func cf (ap,bW,bX,bR,cg,ch) = {
328+ let bY = ar(ap)
329+ if ((bY == bY))
342330 then {
343- let cd = au(cb)
344- if ((cd == cd))
331+ let bZ = as(bX)
332+ if ((bZ == bZ))
345333 then {
346- let cm = bU(bV)
347- if ((cm == cm))
334+ let ci = bQ(bR)
335+ if ((ci == ci))
348336 then {
349- let cn = fraction(ck, cc, cd)
350- let co = bh(cb)
351- let cp = fraction(ck, ca, cn)
352- let cq = fraction(ck, ca, cm)
353- let cr = max([0, (cp - cq)])
354- if ((cq > 0))
337+ let cj = fraction(cg, bY, bZ)
338+ let ck = bd(bX)
339+ let cl = fraction(cg, bW, cj)
340+ let cm = fraction(cg, bW, ci)
341+ let cn = max([0, (cl - cm)])
342+ if ((cm > 0))
355343 then {
356- let cs = invoke(bV, "withdraw", nil, [AttachedPayment(co, cq)])
357- if ((cs == cs))
344+ let co = invoke(bR, "withdraw", nil, [AttachedPayment(ck, cm)])
345+ if ((co == co))
358346 then {
359- let bX = cs
360- if ($isInstanceOf(bX, "Int"))
347+ let bT = co
348+ if ($isInstanceOf(bT, "Int"))
361349 then {
362- let ct = bX
363- let ch = (cc - ct)
364- let ci = ((cd - cq) - cr)
365-[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci), ScriptTransfer(cl, cr, bh(cb))]
350+ let cp = bT
351+ let cd = (bY - cp)
352+ let ce = ((bZ - cm) - cn)
353+[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce), ScriptTransfer(ch, cn, bd(bX))]
366354 }
367355 else nil
368356 }
369357 else throw("Strict value is not equal to itself.")
370358 }
371359 else nil
372360 }
373361 else throw("Strict value is not equal to itself.")
374362 }
375363 else throw("Strict value is not equal to itself.")
376364 }
377365 else throw("Strict value is not equal to itself.")
378366 }
379367
380368
381-func cu (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
369+func cq (ap) = invoke(aT, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
382370
383371
384-func cv (cw,ar,cb,cx,bV,ck,cl) = {
385- let cc = at(ar)
386- if ((cc == cc))
372+func cr (cs,ap,bX,ct,bR,cg,ch) = {
373+ let bY = ar(ap)
374+ if ((bY == bY))
387375 then {
388- let cd = au(cb)
389- if ((cd == cd))
376+ let bZ = as(bX)
377+ if ((bZ == bZ))
390378 then {
391- let cy = {
392- let bX = bh(ar)
393- if ($isInstanceOf(bX, "ByteVector"))
379+ let cu = {
380+ let bT = bd(ap)
381+ if ($isInstanceOf(bT, "ByteVector"))
394382 then {
395- let cz = bX
396- assetBalance(this, cz)
383+ let cv = bT
384+ assetBalance(this, cv)
397385 }
398- else if ($isInstanceOf(bX, "Unit"))
386+ else if ($isInstanceOf(bT, "Unit"))
399387 then {
400- let cA = bX
388+ let cw = bT
401389 wavesBalance(this).available
402390 }
403391 else throw("Match error")
404392 }
405- if ((cy == cy))
393+ if ((cu == cu))
406394 then {
407- let cB = max([0, ((cy + cc) - cx)])
408- let cC = fraction(cw, cB, 100)
409- let cD = (cc - cC)
410- if ((cD == 0))
395+ let cx = max([0, ((cu + bY) - ct)])
396+ let cy = fraction(cs, cx, 100)
397+ let cz = (bY - cy)
398+ if ((cz == 0))
411399 then nil
412- else if ((0 > cD))
400+ else if ((0 > cz))
413401 then {
414- let cE = -(cD)
415- bZ(ar, cE, cb, bV)
402+ let cA = -(cz)
403+ bV(ap, cA, bX, bR)
416404 }
417405 else {
418- let cF = cD
419- cj(ar, cF, cb, bV, ck, cl)
406+ let cB = cz
407+ cf(ap, cB, bX, bR, cg, ch)
420408 }
421409 }
422410 else throw("Strict value is not equal to itself.")
423411 }
424412 else throw("Strict value is not equal to itself.")
425413 }
426414 else throw("Strict value is not equal to itself.")
427415 }
428416
429417
430-func cG (ar) = {
431- let bX = cu(ar)
432- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
418+func cC (ap) = {
419+ let bT = cq(ap)
420+ if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
433421 then {
434- let cH = bX
435- let cI = cH
436- let cJ = cI._1
437- let cK = cI._2
438- let cx = cI._3
439- let cL = cI._4
440- let cM = cI._5
441- let ck = cI._6
442- let cN = cI._7
443- if (cJ)
444- then cv(cK, ar, cM, cx, addressFromStringValue(cL), ck, addressFromStringValue(cN))
422+ let cD = bT
423+ let cE = cD
424+ let cF = cE._1
425+ let cG = cE._2
426+ let ct = cE._3
427+ let cH = cE._4
428+ let cI = cE._5
429+ let cg = cE._6
430+ let cJ = cE._7
431+ if (cF)
432+ then cr(cG, ap, cI, ct, addressFromStringValue(cH), cg, addressFromStringValue(cJ))
445433 else nil
446434 }
447- else aS((("[" + ar) + "] Rebalance error"))
435+ else aQ((("[" + ap) + "] Rebalance error"))
448436 }
449437
450438
451-func cO (ar,cP) = {
452- let bX = cu(ar)
453- if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
439+func cK (ap,cL) = {
440+ let bT = cq(ap)
441+ if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
454442 then {
455- let cH = bX
456- let cQ = cH
457- let cJ = cQ._1
458- let cK = cQ._2
459- let cx = cQ._3
460- let cL = cQ._4
461- let cM = cQ._5
462- let ck = cQ._6
463- let cN = cQ._7
464- if (cJ)
443+ let cD = bT
444+ let cM = cD
445+ let cF = cM._1
446+ let cG = cM._2
447+ let ct = cM._3
448+ let cH = cM._4
449+ let cI = cM._5
450+ let cg = cM._6
451+ let cJ = cM._7
452+ if (cF)
465453 then {
466- let cR = max([0, ((bN(ar) - cP) - cx)])
467- if ((cR == cR))
454+ let cN = max([0, ((bJ(ap) - cL) - ct)])
455+ if ((cN == cN))
468456 then {
469- let ch = fraction(cK, cR, 100)
470- if ((ch == ch))
457+ let cd = fraction(cG, cN, 100)
458+ if ((cd == cd))
471459 then {
472- let cS = max([0, (at(ar) - ch)])
473- if ((cS == cS))
474- then cj(ar, cS, cM, addressFromStringValue(cL), ck, addressFromStringValue(cN))
460+ let cO = max([0, (ar(ap) - cd)])
461+ if ((cO == cO))
462+ then cf(ap, cO, cI, addressFromStringValue(cH), cg, addressFromStringValue(cJ))
475463 else throw("Strict value is not equal to itself.")
476464 }
477465 else throw("Strict value is not equal to itself.")
478466 }
479467 else throw("Strict value is not equal to itself.")
480468 }
481469 else nil
482470 }
483- else aS((("[" + ar) + "] getWithdrawAssetState() error"))
471+ else aQ((("[" + ap) + "] getWithdrawAssetState() error"))
484472 }
485473
486474
487-func cT (cU,cV,cW,cX) = {
488- let cY = D(cW, cU)
489- let cZ = D(cX, cV)
490- bQ(cZ, cY)
475+func cP (cQ,cR,cS,cT) = {
476+ let cU = D(cS, cQ)
477+ let cV = D(cT, cR)
478+ bM(cV, cU)
491479 }
492480
493481
494-func da (cW,cX,db) = {
495- let dc = be()
496- let dd = parseIntValue(dc[t])
497- let de = parseIntValue(dc[u])
498- let df = cT(dd, de, cW, cX)
499- let bS = D(cW, dd)
500- let bR = D(cX, de)
501- let dg = D(db, b)
502- let dh = bQ(bS, dg)
503- let di = bQ(bR, dg)
504-[df, dh, di]
482+func cW (cS,cT,cX) = {
483+ let cY = ba()
484+ let cZ = parseIntValue(cY[t])
485+ let da = parseIntValue(cY[u])
486+ let db = cP(cZ, da, cS, cT)
487+ let bO = D(cS, cZ)
488+ let bN = D(cT, da)
489+ let dc = D(cX, b)
490+ let dd = bM(bO, dc)
491+ let de = bM(bN, dc)
492+[db, dd, de]
505493 }
506494
507495
508-func dj (cW,cX,db) = {
509- let dk = da(cW, cX, db)
510-[H(dk[0], b), H(dk[1], b), H(dk[2], b)]
496+func df (cS,cT,cX) = {
497+ let dg = cW(cS, cT, cX)
498+[H(dg[0], b), H(dg[1], b), H(dg[2], b)]
511499 }
512500
513501
514-func dl (dm,dn,do,ab) = {
515- let dc = be()
516- let dp = dc[q]
517- let dq = dc[r]
518- let dr = dc[s]
519- let cU = parseIntValue(dc[t])
520- let cV = parseIntValue(dc[u])
521- let ds = dc[p]
522- let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
523- if ((dp != dn))
502+func dh (di,dj,dk,ab) = {
503+ let cY = ba()
504+ let dl = cY[q]
505+ let dm = cY[r]
506+ let dn = cY[s]
507+ let cQ = parseIntValue(cY[t])
508+ let cR = parseIntValue(cY[u])
509+ let do = cY[p]
510+ let dp = valueOrErrorMessage(assetInfo(fromBase58String(dl)), (("Asset " + dl) + " doesn't exist")).quantity
511+ if ((dl != dj))
524512 then throw("Invalid asset passed.")
525513 else {
526- let du = bN(dq)
527- let dv = D(du, cU)
528- let dw = bN(dr)
529- let dx = D(dw, cV)
530- let dy = bQ(dx, dv)
531- let dz = H(dy, b)
532- let dA = D(do, b)
533- let dB = D(dt, b)
534- let dC = fraction(dv, dA, dB)
535- let dD = fraction(dx, dA, dB)
536- let dE = K(dC, cU, FLOOR)
537- let dF = K(dD, cV, FLOOR)
538- let dG = cO(dq, dE)
539- if ((dG == dG))
514+ let dq = bJ(dm)
515+ let dr = D(dq, cQ)
516+ let ds = bJ(dn)
517+ let dt = D(ds, cR)
518+ let du = bM(dt, dr)
519+ let dv = H(du, b)
520+ let dw = D(dk, b)
521+ let dx = D(dp, b)
522+ let dy = fraction(dr, dw, dx)
523+ let dz = fraction(dt, dw, dx)
524+ let dA = K(dy, cQ, FLOOR)
525+ let dB = K(dz, cR, FLOOR)
526+ let dC = cK(dm, dA)
527+ if ((dC == dC))
540528 then {
541- let dH = cO(dr, dF)
542- if ((dH == dH))
529+ let dD = cK(dn, dB)
530+ if ((dD == dD))
543531 then {
544- let dI = if ((dm == ""))
532+ let dE = if ((di == ""))
545533 then nil
546- else ((dG ++ dH) ++ [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
534+ else ((dC ++ dD) ++ [ScriptTransfer(ab, dA, if ((dm == "WAVES"))
547535 then unit
548- else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
536+ else fromBase58String(dm)), ScriptTransfer(ab, dB, if ((dn == "WAVES"))
549537 then unit
550- 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)])
551- $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dI)
538+ else fromBase58String(dn)), StringEntry(ad(toString(ab), di), bF(dA, dB, dk, dv, height, lastBlock.timestamp)), IntegerEntry(W(), dv), IntegerEntry(X(height, lastBlock.timestamp), dv)])
539+ $Tuple10(dA, dB, dm, dn, dq, ds, dp, du, do, dE)
552540 }
553541 else throw("Strict value is not equal to itself.")
554542 }
555543 else throw("Strict value is not equal to itself.")
556544 }
557545 }
558546
559547
560-func dJ (dm,dK,dL,dM,dN,dO,ab,dP,dQ) = {
561- let dc = be()
562- let dp = fromBase58String(dc[q])
563- let dR = dc[r]
564- let dS = dc[s]
565- let dT = dc[v]
566- let dU = dc[w]
567- let dd = parseIntValue(dc[t])
568- let de = parseIntValue(dc[u])
569- let ds = dc[p]
570- let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
571- let dV = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
572- let dW = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
573- if (if ((dR != dV))
548+func dF (di,dG,dH,dI,dJ,dK,ab,dL,dM) = {
549+ let cY = ba()
550+ let dl = fromBase58String(cY[q])
551+ let dN = cY[r]
552+ let dO = cY[s]
553+ let dP = cY[v]
554+ let dQ = cY[w]
555+ let cZ = parseIntValue(cY[t])
556+ let da = parseIntValue(cY[u])
557+ let do = cY[p]
558+ let dp = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
559+ let dR = toBase58String(valueOrElse(dI, fromBase58String("WAVES")))
560+ let dS = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
561+ if (if ((dN != dR))
574562 then true
575- else (dS != dW))
563+ else (dO != dS))
576564 then throw("Invalid amt or price asset passed.")
577565 else {
578- let du = if (dP)
579- then bN(dR)
580- else (bN(dR) - dL)
581- let dw = if (dP)
582- then bN(dS)
583- else (bN(dS) - dN)
584- let dX = D(dL, dd)
585- let dY = D(dN, de)
586- let dZ = bQ(dY, dX)
587- let dv = D(du, dd)
588- let dx = D(dw, de)
589- let ea = if ((dt == 0))
566+ let dq = if (dL)
567+ then bJ(dN)
568+ else (bJ(dN) - dH)
569+ let ds = if (dL)
570+ then bJ(dO)
571+ else (bJ(dO) - dJ)
572+ let dT = D(dH, cZ)
573+ let dU = D(dJ, da)
574+ let dV = bM(dU, dT)
575+ let dr = D(dq, cZ)
576+ let dt = D(ds, da)
577+ let dW = if ((dp == 0))
590578 then {
591- let dy = e
592- let eb = e
593- let dg = pow((dX * dY), 0, toBigInt(5), 1, 0, DOWN)
594- $Tuple5(H(dg, b), H(dX, dd), H(dY, de), bQ((dx + dY), (dv + dX)), eb)
579+ let du = e
580+ let dX = e
581+ let dc = pow((dT * dU), 0, toBigInt(5), 1, 0, DOWN)
582+ $Tuple5(H(dc, b), H(dT, cZ), H(dU, da), bM((dt + dU), (dr + dT)), dX)
595583 }
596584 else {
597- let dy = bQ(dx, dv)
598- let eb = fraction(R((dy - dZ)), d, dy)
599- let ec = D(dK, b)
600- if (if ((dy != e))
601- then (eb > ec)
585+ let du = bM(dt, dr)
586+ let dX = fraction(R((du - dV)), d, du)
587+ let dY = D(dG, b)
588+ if (if ((du != e))
589+ then (dX > dY)
602590 else false)
603- then throw(((("Price slippage " + toString(eb)) + " exceeded the passed limit of ") + toString(ec)))
591+ then throw(((("Price slippage " + toString(dX)) + " exceeded the passed limit of ") + toString(dY)))
604592 else {
605- let dB = D(dt, b)
606- let ed = fraction(dX, bT(dx, dv, CEILING), d, CEILING)
607- let ee = fraction(dY, d, bT(dx, dv, FLOOR), CEILING)
608- let ef = if ((ed > dY))
609- then $Tuple2(ee, dY)
610- else $Tuple2(dX, ed)
611- let eg = ef._1
612- let eh = ef._2
613- let dg = fraction(dB, eh, dx, FLOOR)
614- $Tuple5(K(dg, b, FLOOR), K(eg, dd, CEILING), K(eh, de, CEILING), dy, eb)
593+ let dx = D(dp, b)
594+ let dZ = fraction(dT, bP(dt, dr, CEILING), d, CEILING)
595+ let ea = fraction(dU, d, bP(dt, dr, FLOOR), CEILING)
596+ let eb = if ((dZ > dU))
597+ then $Tuple2(ea, dU)
598+ else $Tuple2(dT, dZ)
599+ let ec = eb._1
600+ let ed = eb._2
601+ let dc = fraction(dx, ed, dt, FLOOR)
602+ $Tuple5(K(dc, b, FLOOR), K(ec, cZ, CEILING), K(ed, da, CEILING), du, dX)
615603 }
616604 }
617- let ei = ea._1
618- let ej = ea._2
619- let ek = ea._3
620- let dz = H(ea._4, b)
621- let el = H(ea._5, b)
622- if ((0 >= ei))
605+ let ee = dW._1
606+ let ef = dW._2
607+ let eg = dW._3
608+ let dv = H(dW._4, b)
609+ let eh = H(dW._5, b)
610+ if ((0 >= ee))
623611 then throw("Invalid calculations. LP calculated is less than zero.")
624612 else {
625- let em = if (!(dQ))
613+ let ei = if (!(dM))
626614 then 0
627- else ei
628- let en = (dL - ej)
629- let eo = (dN - ek)
630- 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))]
631- $Tuple13(ei, em, dz, du, dw, dt, dp, ds, ep, en, eo, dM, dO)
615+ else ee
616+ let ej = (dH - ef)
617+ let ek = (dJ - eg)
618+ let el = [IntegerEntry(W(), dv), IntegerEntry(X(height, lastBlock.timestamp), dv), StringEntry(aa(ab, di), bu(ef, eg, ei, dv, dG, eh, height, lastBlock.timestamp, ej, ek))]
619+ $Tuple13(ee, ei, dv, dq, ds, dp, dl, do, el, ej, ek, dI, dK)
632620 }
633621 }
634622 }
635623
636624
637-func eq (er,es,dt) = {
638- let et = G(er, toBigInt(bt))
639- let eu = G(es, toBigInt(bu))
640- let ev = fraction(pow((et * eu), 0, toBigInt(5), 1, 18, DOWN), g, dt)
641- if ((dt == f))
625+func em (en,eo,dp) = {
626+ let ep = G(en, toBigInt(bp))
627+ let eq = G(eo, toBigInt(bq))
628+ let er = fraction(pow((ep * eq), 0, toBigInt(5), 1, 18, DOWN), g, dp)
629+ if ((dp == f))
642630 then f
643- else ev
631+ else er
644632 }
645633
646634
647-func ew (ex,ey,ez) = {
648- let eA = (toBigInt(bN(bj(br))) - ex)
649- let eB = (toBigInt(bN(bj(bs))) - ey)
650- let eC = (toBigInt(value(assetInfo(bq)).quantity) - ez)
651- let eD = eq(eA, eB, eC)
652- eD
635+func es (et,eu,ev) = {
636+ let ew = (toBigInt(bJ(bf(bn))) - et)
637+ let ex = (toBigInt(bJ(bf(bo))) - eu)
638+ let ey = (toBigInt(value(assetInfo(bm)).quantity) - ev)
639+ let ez = em(ew, ex, ey)
640+ ez
653641 }
654642
655643
656-func eE (eF,eG,ez) = {
657- let eA = (bN(bj(br)) + eF)
658- let eB = (bN(bj(bs)) + eG)
659- let eC = (value(assetInfo(bq)).quantity + ez)
660- let ev = eq(toBigInt(eA), toBigInt(eB), toBigInt(eC))
661- let eH = [IntegerEntry(ak, height), StringEntry(aj, toString(ev))]
662- $Tuple2(eH, ev)
644+func eA (eB,eC,ev) = {
645+ let ew = (bJ(bf(bn)) + eB)
646+ let ex = (bJ(bf(bo)) + eC)
647+ let ey = (value(assetInfo(bm)).quantity + ev)
648+ let er = em(toBigInt(ew), toBigInt(ex), toBigInt(ey))
649+ let eD = [IntegerEntry(ak, height), StringEntry(aj, toString(er))]
650+ $Tuple2(eD, er)
663651 }
664652
665653
666-func eI (eJ,ev) = if ((ev >= eJ))
654+func eE (eF,er) = if ((er >= eF))
667655 then true
668- else aS(makeString(["updated KLp lower than current KLp", toString(eJ), toString(ev)], " "))
656+ else aQ(makeString(["updated KLp lower than current KLp", toString(eF), toString(er)], " "))
669657
670658
671-func eK (eL) = {
672- let eA = bN(bj(br))
673- let eB = bN(bj(bs))
674- let eM = eL.amount
675- let eN = fraction(eL.amount, eL.price, b, FLOOR)
676- let eO = if ((eL.orderType == Buy))
677- then $Tuple2(eM, -(eN))
678- else $Tuple2(-(eM), eN)
679- let eF = eO._1
680- let eG = eO._2
681- if (if (if (bc())
659+func eG (eH) = {
660+ let ew = bJ(bf(bn))
661+ let ex = bJ(bf(bo))
662+ let eI = eH.amount
663+ let eJ = fraction(eH.amount, eH.price, b, FLOOR)
664+ let eK = if ((eH.orderType == Buy))
665+ then $Tuple2(eI, -(eJ))
666+ else $Tuple2(-(eI), eJ)
667+ let eB = eK._1
668+ let eC = eK._2
669+ if (if (if (aY())
682670 then true
683- else (bp == m))
671+ else (bl == m))
684672 then true
685- else (bp == n))
673+ else (bl == n))
686674 then throw("Exchange operations disabled")
687- else if (if ((eL.assetPair.amountAsset != br))
675+ else if (if ((eH.assetPair.amountAsset != bn))
688676 then true
689- else (eL.assetPair.priceAsset != bs))
677+ else (eH.assetPair.priceAsset != bo))
690678 then throw("Wrong order assets.")
691679 else {
692- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
693- let eQ = eE(eF, eG, 0)
694- let eR = eQ._1
695- let eS = eQ._2
696- let eT = (eS >= eP)
697- let eU = makeString(["kLp=", toString(eP), " kLpNew=", toString(eS), " amountAssetBalance=", toString(eA), " priceAssetBalance=", toString(eB), " amountAssetBalanceDelta=", toString(eF), " priceAssetBalanceDelta=", toString(eG), " height=", toString(height)], "")
698- $Tuple2(eT, eU)
680+ let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
681+ let eM = eA(eB, eC, 0)
682+ let eN = eM._1
683+ let eO = eM._2
684+ let eP = (eO >= eL)
685+ let eQ = makeString(["kLp=", toString(eL), " kLpNew=", toString(eO), " amountAssetBalance=", toString(ew), " priceAssetBalance=", toString(ex), " amountAssetBalanceDelta=", toString(eB), " priceAssetBalanceDelta=", toString(eC), " height=", toString(height)], "")
686+ $Tuple2(eP, eQ)
699687 }
700688 }
701689
702690
703-func eV (eW) = if ((size(eW.payments) != 1))
691+func eR (eS) = if ((size(eS.payments) != 1))
704692 then throw("exactly 1 payment is expected")
705693 else {
706- let eX = value(eW.payments[0])
707- let dn = value(eX.assetId)
708- let eY = eX.amount
709- let ea = dl(toBase58String(eW.transactionId), toBase58String(dn), eY, eW.caller)
710- let dE = ea._1
711- let dF = ea._2
712- let ds = parseIntValue(ea._9)
713- let dI = ea._10
714- if (if (bc())
694+ let eT = value(eS.payments[0])
695+ let dj = value(eT.assetId)
696+ let eU = eT.amount
697+ let dW = dh(toBase58String(eS.transactionId), toBase58String(dj), eU, eS.caller)
698+ let dA = dW._1
699+ let dB = dW._2
700+ let do = parseIntValue(dW._9)
701+ let dE = dW._10
702+ if (if (aY())
715703 then true
716- else (ds == n))
717- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
718- else $Tuple5(dE, dF, eY, dn, dI)
704+ else (do == n))
705+ then throw(("Get operation is blocked by admin. Status = " + toString(do)))
706+ else $Tuple5(dA, dB, eU, dj, dE)
719707 }
720708
721709
722-func eZ (eW,dK,dQ) = if ((size(eW.payments) != 2))
710+func eV (eS,dG,dM) = if ((size(eS.payments) != 2))
723711 then throw("exactly 2 payments are expected")
724712 else {
725- let fa = value(eW.payments[0])
726- let fb = value(eW.payments[1])
727- let fc = dJ(toBase58String(eW.transactionId), dK, fa.amount, fa.assetId, fb.amount, fb.assetId, toString(eW.caller), false, dQ)
728- let ds = parseIntValue(fc._8)
729- if (if (if (bc())
713+ let eW = value(eS.payments[0])
714+ let eX = value(eS.payments[1])
715+ let eY = dF(toBase58String(eS.transactionId), dG, eW.amount, eW.assetId, eX.amount, eX.assetId, toString(eS.caller), false, dM)
716+ let do = parseIntValue(eY._8)
717+ if (if (if (aY())
730718 then true
731- else (ds == l))
719+ else (do == l))
732720 then true
733- else (ds == n))
734- then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
735- else fc
721+ else (do == n))
722+ then throw(("Put operation is blocked by admin. Status = " + toString(do)))
723+ else eY
736724 }
737725
738726
739-func fd (ca) = {
740- let fe = invoke(aV, "emit", [ca], nil)
741- if ((fe == fe))
727+func eZ (bW) = {
728+ let fa = invoke(aT, "emit", [bW], nil)
729+ if ((fa == fa))
742730 then {
743- let ff = {
744- let bX = fe
745- if ($isInstanceOf(bX, "Address"))
731+ let fb = {
732+ let bT = fa
733+ if ($isInstanceOf(bT, "Address"))
746734 then {
747- let fg = bX
748- invoke(fg, "emit", [ca], nil)
735+ let fc = bT
736+ invoke(fc, "emit", [bW], nil)
749737 }
750738 else unit
751739 }
752- if ((ff == ff))
753- then ca
740+ if ((fb == fb))
741+ then bW
754742 else throw("Strict value is not equal to itself.")
755743 }
756744 else throw("Strict value is not equal to itself.")
757745 }
758746
759747
760-func fh (ca,ai) = {
761- let fi = if ((ai == 0))
748+func fd (bW,ai) = {
749+ let fe = if ((ai == 0))
762750 then 0
763- else fraction(ca, ai, b)
764- $Tuple2((ca - fi), fi)
751+ else fraction(bW, ai, b)
752+ $Tuple2((bW - fe), fe)
765753 }
766754
767755
768-func fj (fk,fl,ab,ac) = {
769- let fm = (ac == unit)
770- let fn = bN(bj(br))
771- let fo = bN(bj(bs))
772- let fp = if ((fl == br))
756+func ff (fg,fh,ab,ac) = {
757+ let fi = (ac == unit)
758+ let fj = bJ(bf(bn))
759+ let fk = bJ(bf(bo))
760+ let fl = if ((fh == bn))
773761 then true
774- else if ((fl == bs))
762+ else if ((fh == bo))
775763 then false
776- else aS("invalid asset")
777- let fq = if (fm)
778- then $Tuple2(fn, fo)
779- else if (fp)
780- then $Tuple2((fn - fk), fo)
781- else $Tuple2(fn, (fo - fk))
782- let fr = fq._1
783- let fs = fq._2
784- let ft = if (fp)
785- then $Tuple2(fk, 0)
786- else $Tuple2(0, fk)
787- let fu = ft._1
788- let fv = ft._2
789- let eM = fh(fu, aX)._1
790- let eN = fh(fv, aX)._1
791- let fw = fh(fk, aX)
792- let fx = fw._1
793- let fi = fw._2
794- let fy = (fr + eM)
795- let fz = (fs + eN)
796- let fA = bQ(D(fz, bu), D(fy, bt))
797- let fB = H(fA, b)
798- let fC = if (fp)
799- then fr
800- else fs
801- let fD = toBigInt(fC)
802- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
803- let fF = if ((fE > f))
764+ else aQ("invalid asset")
765+ let fm = if (fi)
766+ then $Tuple2(fj, fk)
767+ else if (fl)
768+ then $Tuple2((fj - fg), fk)
769+ else $Tuple2(fj, (fk - fg))
770+ let fn = fm._1
771+ let fo = fm._2
772+ let fp = if (fl)
773+ then $Tuple2(fg, 0)
774+ else $Tuple2(0, fg)
775+ let fq = fp._1
776+ let fr = fp._2
777+ let eI = fd(fq, aV)._1
778+ let eJ = fd(fr, aV)._1
779+ let fs = fd(fg, aV)
780+ let ft = fs._1
781+ let fe = fs._2
782+ let fu = (fn + eI)
783+ let fv = (fo + eJ)
784+ let fw = bM(D(fv, bq), D(fu, bp))
785+ let fx = H(fw, b)
786+ let fy = if (fl)
787+ then fn
788+ else fo
789+ let fz = toBigInt(fy)
790+ let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
791+ let fB = if ((fA > f))
804792 then true
805- else aS("initial deposit requires all coins")
806- if ((fF == fF))
793+ else aQ("initial deposit requires all coins")
794+ if ((fB == fB))
807795 then {
808- let fG = toBigInt(fx)
809- let fH = max([0, toInt(((fE * (sqrtBigInt((d + ((fG * d) / fD)), 18, 18, DOWN) - d)) / d))])
810- let ep = if (fm)
796+ let fC = toBigInt(ft)
797+ let fD = max([0, toInt(((fA * (sqrtBigInt((d + ((fC * d) / fz)), 18, 18, DOWN) - d)) / d))])
798+ let el = if (fi)
811799 then nil
812- 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))]
813- let fI = bQ(D(fs, bu), D(fr, bt))
814- let fJ = H(fI, b)
815- let fK = {
816- let fL = if (fp)
817- then $Tuple2(fu, fr)
818- else $Tuple2(fv, fs)
819- let ca = fL._1
820- let fM = fL._2
821- let fN = toInt(fraction(fE, toBigInt((ca / 2)), toBigInt(fM)))
822- fraction((fH - fN), b, fN)
800+ else [IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bu(fq, fr, fD, fx, 0, 0, height, lastBlock.timestamp, 0, 0))]
801+ let fE = bM(D(fo, bq), D(fn, bp))
802+ let fF = H(fE, b)
803+ let fG = {
804+ let fH = if (fl)
805+ then $Tuple2(fq, fn)
806+ else $Tuple2(fr, fo)
807+ let bW = fH._1
808+ let fI = fH._2
809+ let fJ = toInt(fraction(fA, toBigInt((bW / 2)), toBigInt(fI)))
810+ fraction((fD - fJ), b, fJ)
823811 }
824- $Tuple5(fH, ep, fi, fK, fp)
812+ $Tuple5(fD, el, fe, fG, fl)
825813 }
826814 else throw("Strict value is not equal to itself.")
827815 }
828816
829817
830-func fO (fP,fx,fl,ab,ac) = {
831- let fm = (ac == unit)
832- let dc = be()
833- let dd = parseIntValue(dc[t])
834- let de = parseIntValue(dc[u])
835- let fQ = [if ((fl == bq))
818+func fK (fL,ft,fh,ab,ac) = {
819+ let fi = (ac == unit)
820+ let cY = ba()
821+ let cZ = parseIntValue(cY[t])
822+ let da = parseIntValue(cY[u])
823+ let fM = [if ((fh == bm))
836824 then true
837- else aS("invalid lp asset")]
838- if ((fQ == fQ))
825+ else aQ("invalid lp asset")]
826+ if ((fM == fM))
839827 then {
840- let fR = if ((fP == br))
828+ let fN = if ((fL == bn))
841829 then true
842- else if ((fP == bs))
830+ else if ((fL == bo))
843831 then false
844- else aS("invalid asset")
845- let fS = if (fR)
846- then toBigInt(bN(bj(br)))
847- else toBigInt(bN(bj(bs)))
848- let fT = if (fR)
849- then dd
850- else de
851- let fU = bN(bj(br))
852- let fV = bN(bj(bs))
853- let fW = if (fR)
854- then fU
855- else fV
856- let fX = toBigInt(fW)
857- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
858- let fY = toBigInt(fx)
859- let fZ = max([0, toInt(((fS * (d - pow((d - ((fY * d) / fE)), 18, h, 0, 18, DOWN))) / d))])
860- let ga = fh(fZ, aZ)
861- let gb = ga._1
862- let fi = ga._2
863- let gc = if (fR)
864- then $Tuple4(gb, 0, (fU - fZ), fV)
865- else $Tuple4(0, gb, fU, (fV - fZ))
866- let gd = gc._1
867- let ge = gc._2
868- let gf = gc._3
869- let gg = gc._4
870- let fA = bQ(D(gg, bu), D(gf, bt))
871- let fB = H(fA, b)
872- let ep = if (fm)
832+ else aQ("invalid asset")
833+ let fO = if (fN)
834+ then toBigInt(bJ(bf(bn)))
835+ else toBigInt(bJ(bf(bo)))
836+ let fP = if (fN)
837+ then cZ
838+ else da
839+ let fQ = bJ(bf(bn))
840+ let fR = bJ(bf(bo))
841+ let fS = if (fN)
842+ then fQ
843+ else fR
844+ let fT = toBigInt(fS)
845+ let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
846+ let fU = toBigInt(ft)
847+ let fV = max([0, toInt(((fO * (d - pow((d - ((fU * d) / fA)), 18, h, 0, 18, DOWN))) / d))])
848+ let fW = fd(fV, aX)
849+ let fX = fW._1
850+ let fe = fW._2
851+ let fY = if (fN)
852+ then $Tuple4(fX, 0, (fQ - fV), fR)
853+ else $Tuple4(0, fX, fQ, (fR - fV))
854+ let fZ = fY._1
855+ let ga = fY._2
856+ let gb = fY._3
857+ let gc = fY._4
858+ let fw = bM(D(gc, bq), D(gb, bp))
859+ let fx = H(fw, b)
860+ let el = if (fi)
873861 then nil
874- 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)]
875- let fI = bQ(D(fV, bu), D(fU, bt))
876- let fJ = H(fI, b)
877- let fK = {
878- let gh = (toInt(fraction(fS, fY, fE)) * 2)
879- fraction((gb - gh), b, gh)
862+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bF(fZ, ga, ft, fx, height, lastBlock.timestamp)), IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx)]
863+ let fE = bM(D(fR, bq), D(fQ, bp))
864+ let fF = H(fE, b)
865+ let fG = {
866+ let gd = (toInt(fraction(fO, fU, fA)) * 2)
867+ fraction((fX - gd), b, gd)
880868 }
881- $Tuple5(gb, ep, fi, fK, fR)
869+ $Tuple5(fX, el, fe, fG, fN)
882870 }
883871 else throw("Strict value is not equal to itself.")
884872 }
885873
886874
887-func gi () = {
888- let bX = getString(U())
889- if ($isInstanceOf(bX, "String"))
875+func ge () = {
876+ let bT = getString(U())
877+ if ($isInstanceOf(bT, "String"))
890878 then {
891- let gj = bX
892- fromBase58String(gj)
879+ let gf = bT
880+ fromBase58String(gf)
893881 }
894- else if ($isInstanceOf(bX, "Unit"))
882+ else if ($isInstanceOf(bT, "Unit"))
895883 then unit
896884 else throw("Match error")
897885 }
898886
899887
900-func gk () = {
901- let bX = getString(V())
902- if ($isInstanceOf(bX, "String"))
888+func gg () = {
889+ let bT = getString(V())
890+ if ($isInstanceOf(bT, "String"))
903891 then {
904- let gj = bX
905- fromBase58String(gj)
892+ let gf = bT
893+ fromBase58String(gf)
906894 }
907- else if ($isInstanceOf(bX, "Unit"))
895+ else if ($isInstanceOf(bT, "Unit"))
908896 then unit
909897 else throw("Match error")
910898 }
911899
912900
913-func gl (eW) = {
914- let bX = gi()
915- if ($isInstanceOf(bX, "ByteVector"))
901+func gh (eS) = {
902+ let bT = ge()
903+ if ($isInstanceOf(bT, "ByteVector"))
916904 then {
917- let gm = bX
918- (eW.callerPublicKey == gm)
905+ let gi = bT
906+ (eS.callerPublicKey == gi)
919907 }
920- else if ($isInstanceOf(bX, "Unit"))
921- then (eW.caller == this)
908+ else if ($isInstanceOf(bT, "Unit"))
909+ then (eS.caller == this)
922910 else throw("Match error")
923911 }
924912
925913
926-func gn (eW) = {
927- let go = throw("Permission denied")
928- let bX = gi()
929- if ($isInstanceOf(bX, "ByteVector"))
914+func gj (eS) = {
915+ let gk = throw("Permission denied")
916+ let bT = ge()
917+ if ($isInstanceOf(bT, "ByteVector"))
930918 then {
931- let gm = bX
932- if ((eW.callerPublicKey == gm))
919+ let gi = bT
920+ if ((eS.callerPublicKey == gi))
933921 then true
934- else go
922+ else gk
935923 }
936- else if ($isInstanceOf(bX, "Unit"))
937- then if ((eW.caller == this))
924+ else if ($isInstanceOf(bT, "Unit"))
925+ then if ((eS.caller == this))
938926 then true
939- else go
927+ else gk
940928 else throw("Match error")
941929 }
942930
943931
944-@Callable(eW)
945-func rebalance () = (cG(aO(this, ae())) ++ cG(aO(this, af())))
932+@Callable(eS)
933+func rebalance () = (cC(aM(this, ae())) ++ cC(aM(this, af())))
946934
947935
948936
949-@Callable(eW)
950-func calculateAmountOutForSwapREADONLY (gp,gq,gr) = {
951- let gs = if ((gq == false))
937+@Callable(eS)
938+func calculateAmountOutForSwapREADONLY (gl,gm,gn) = {
939+ let go = if ((gm == false))
952940 then {
953- let gt = aO(this, af())
954- let gu = aO(this, ae())
955- $Tuple2(gt, gu)
941+ let gp = aM(this, af())
942+ let gq = aM(this, ae())
943+ $Tuple2(gp, gq)
956944 }
957945 else {
958- let gt = aO(this, ae())
959- let gu = aO(this, af())
960- $Tuple2(gt, gu)
946+ let gp = aM(this, ae())
947+ let gq = aM(this, af())
948+ $Tuple2(gp, gq)
961949 }
962- let gt = gs._1
963- let gu = gs._2
964- let gv = bN(gu)
965- let gw = bN(gt)
966- let gx = fraction(gw, gp, (gv + gp))
967- let gy = (toBigInt(gv) * toBigInt(gw))
968- let gz = (((toBigInt(bN(gu)) + toBigInt(gp)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
969- let gA = if ((gz >= gy))
950+ let gp = go._1
951+ let gq = go._2
952+ let gr = bJ(gq)
953+ let gs = bJ(gp)
954+ let gt = fraction(gs, gl, (gr + gl))
955+ let gu = (toBigInt(gr) * toBigInt(gs))
956+ let gv = (((toBigInt(bJ(gq)) + toBigInt(gl)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
957+ let gw = if ((gv >= gu))
970958 then true
971959 else throw("new K is fewer error")
972- if ((gA == gA))
973- then $Tuple2(nil, gx)
960+ if ((gw == gw))
961+ then $Tuple2(nil, gt)
974962 else throw("Strict value is not equal to itself.")
975963 }
976964
977965
978966
979-@Callable(eW)
980-func calculateAmountOutForSwapAndSendTokens (gp,gq,gB,gC,gr) = {
981- let gD = {
982- let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
983- if ($isInstanceOf(aY, "String"))
984- then aY
985- else throw(($getType(aY) + " couldn't be cast to String"))
967+@Callable(eS)
968+func calculateAmountOutForSwapAndSendTokens (gl,gm,gx,gy,gn) = {
969+ let gz = {
970+ let aW = invoke(aT, "getSwapContractREADONLY", nil, nil)
971+ if ($isInstanceOf(aW, "String"))
972+ then aW
973+ else throw(($getType(aW) + " couldn't be cast to String"))
986974 }
987- let fQ = [if ((value(eW.payments[0]).amount >= gp))
975+ let fM = [if ((value(eS.payments[0]).amount >= gl))
988976 then true
989- else aS("Wrong amount"), if ((eW.caller == addressFromStringValue(gD)))
977+ else aQ("Wrong amount"), if ((eS.caller == addressFromStringValue(gz)))
990978 then true
991- else aS("Permission denied")]
992- if ((fQ == fQ))
979+ else aQ("Permission denied")]
980+ if ((fM == fM))
993981 then {
994- let eX = value(eW.payments[0])
995- let gu = bj(eX.assetId)
996- let gt = if ((gq == false))
997- then aO(this, af())
998- else aO(this, ae())
999- let gv = (bN(gu) - value(eW.payments[0]).amount)
1000- let gw = bN(gt)
1001- let gx = fraction(gw, gp, (gv + gp))
1002- let gy = (toBigInt(gv) * toBigInt(gw))
1003- let gz = ((toBigInt(bN(gu)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
1004- let gA = if ((gz >= gy))
982+ let eT = value(eS.payments[0])
983+ let gq = bf(eT.assetId)
984+ let gp = if ((gm == false))
985+ then aM(this, af())
986+ else aM(this, ae())
987+ let gr = (bJ(gq) - value(eS.payments[0]).amount)
988+ let gs = bJ(gp)
989+ let gt = fraction(gs, gl, (gr + gl))
990+ let gu = (toBigInt(gr) * toBigInt(gs))
991+ let gv = ((toBigInt(bJ(gq)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
992+ let gw = if ((gv >= gu))
1005993 then true
1006994 else throw("new K is fewer error")
1007- if ((gA == gA))
995+ if ((gw == gw))
1008996 then {
1009- let gE = if ((gx >= gB))
997+ let gA = if ((gt >= gx))
1010998 then true
1011999 else throw("Exchange result is fewer coins than expected")
1012- if ((gE == gE))
1000+ if ((gA == gA))
10131001 then {
1014- let gF = cO(gt, gx)
1015- if ((gF == gF))
1016- then $Tuple2((gF ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
1002+ let gB = cK(gp, gt)
1003+ if ((gB == gB))
1004+ then $Tuple2((gB ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
10171005 else throw("Strict value is not equal to itself.")
10181006 }
10191007 else throw("Strict value is not equal to itself.")
10201008 }
10211009 else throw("Strict value is not equal to itself.")
10221010 }
10231011 else throw("Strict value is not equal to itself.")
10241012 }
10251013
10261014
10271015
1028-@Callable(eW)
1029-func setManager (gG) = {
1030- let gH = gn(eW)
1031- if ((gH == gH))
1016+@Callable(eS)
1017+func setManager (gC) = {
1018+ let gD = gj(eS)
1019+ if ((gD == gD))
10321020 then {
1033- let gI = fromBase58String(gG)
1034- if ((gI == gI))
1035- then [StringEntry(V(), gG)]
1021+ let gE = fromBase58String(gC)
1022+ if ((gE == gE))
1023+ then [StringEntry(V(), gC)]
10361024 else throw("Strict value is not equal to itself.")
10371025 }
10381026 else throw("Strict value is not equal to itself.")
10391027 }
10401028
10411029
10421030
1043-@Callable(eW)
1031+@Callable(eS)
10441032 func confirmManager () = {
1045- let gJ = gk()
1046- let gK = if (isDefined(gJ))
1033+ let gF = gg()
1034+ let gG = if (isDefined(gF))
10471035 then true
10481036 else throw("No pending manager")
1049- if ((gK == gK))
1037+ if ((gG == gG))
10501038 then {
1051- let gL = if ((eW.callerPublicKey == value(gJ)))
1039+ let gH = if ((eS.callerPublicKey == value(gF)))
10521040 then true
10531041 else throw("You are not pending manager")
1054- if ((gL == gL))
1055- then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
1042+ if ((gH == gH))
1043+ then [StringEntry(U(), toBase58String(value(gF))), DeleteEntry(V())]
10561044 else throw("Strict value is not equal to itself.")
10571045 }
10581046 else throw("Strict value is not equal to itself.")
10591047 }
10601048
10611049
10621050
1063-@Callable(eW)
1064-func put (dK,gM) = if ((0 > dK))
1051+@Callable(eS)
1052+func put (dG,gI) = if ((0 > dG))
10651053 then throw("Invalid slippageTolerance passed")
10661054 else {
1067- let fc = eZ(eW, dK, true)
1068- let em = fc._2
1069- let dp = fc._7
1070- let dI = fc._9
1071- let en = fc._10
1072- let eo = fc._11
1073- let gN = fc._12
1074- let gO = fc._13
1075- let fa = toBigInt(value(eW.payments[0]).amount)
1076- let fb = toBigInt(value(eW.payments[1]).amount)
1077- let eD = ew(fa, fb, toBigInt(0))
1078- if ((eD == eD))
1055+ let eY = eV(eS, dG, true)
1056+ let ei = eY._2
1057+ let dl = eY._7
1058+ let dE = eY._9
1059+ let ej = eY._10
1060+ let ek = eY._11
1061+ let gJ = eY._12
1062+ let gK = eY._13
1063+ let eW = toBigInt(value(eS.payments[0]).amount)
1064+ let eX = toBigInt(value(eS.payments[1]).amount)
1065+ let ez = es(eW, eX, toBigInt(0))
1066+ if ((ez == ez))
10791067 then {
1080- let fe = invoke(aV, "emit", [em], nil)
1081- if ((fe == fe))
1068+ let fa = invoke(aT, "emit", [ei], nil)
1069+ if ((fa == fa))
10821070 then {
1083- let ff = {
1084- let bX = fe
1085- if ($isInstanceOf(bX, "Address"))
1071+ let fb = {
1072+ let bT = fa
1073+ if ($isInstanceOf(bT, "Address"))
10861074 then {
1087- let fg = bX
1088- invoke(fg, "emit", [em], nil)
1075+ let fc = bT
1076+ invoke(fc, "emit", [ei], nil)
10891077 }
10901078 else unit
10911079 }
1092- if ((ff == ff))
1080+ if ((fb == fb))
10931081 then {
1094- let gP = if ((en > 0))
1095- then invoke(bx, "put", nil, [AttachedPayment(gN, en)])
1082+ let gL = if ((ej > 0))
1083+ then invoke(bt, "put", nil, [AttachedPayment(gJ, ej)])
10961084 else nil
1097- if ((gP == gP))
1085+ if ((gL == gL))
10981086 then {
1099- let gQ = if ((eo > 0))
1100- then invoke(bx, "put", nil, [AttachedPayment(gO, eo)])
1087+ let gM = if ((ek > 0))
1088+ then invoke(bt, "put", nil, [AttachedPayment(gK, ek)])
11011089 else nil
1102- if ((gQ == gQ))
1090+ if ((gM == gM))
11031091 then {
1104- let gR = if (gM)
1092+ let gN = if (gI)
11051093 then {
1106- let gS = invoke(bw, "stake", nil, [AttachedPayment(dp, em)])
1107- if ((gS == gS))
1094+ let gO = invoke(bs, "stake", nil, [AttachedPayment(dl, ei)])
1095+ if ((gO == gO))
11081096 then nil
11091097 else throw("Strict value is not equal to itself.")
11101098 }
1111- else [ScriptTransfer(eW.caller, em, dp)]
1112- let gT = eE(0, 0, 0)
1113- if ((gT == gT))
1099+ else [ScriptTransfer(eS.caller, ei, dl)]
1100+ let gP = eA(0, 0, 0)
1101+ if ((gP == gP))
11141102 then {
1115- let ev = gT._2
1116- let gU = gT._1
1117- let gV = eI(eD, ev)
1118- if ((gV == gV))
1103+ let er = gP._2
1104+ let gQ = gP._1
1105+ let gR = eE(ez, er)
1106+ if ((gR == gR))
11191107 then {
1120- let gW = invoke(this, "rebalance", nil, nil)
1121- if ((gW == gW))
1122- then ((dI ++ gR) ++ gU)
1108+ let gS = invoke(this, "rebalance", nil, nil)
1109+ if ((gS == gS))
1110+ then ((dE ++ gN) ++ gQ)
11231111 else throw("Strict value is not equal to itself.")
11241112 }
11251113 else throw("Strict value is not equal to itself.")
11261114 }
11271115 else throw("Strict value is not equal to itself.")
11281116 }
11291117 else throw("Strict value is not equal to itself.")
11301118 }
11311119 else throw("Strict value is not equal to itself.")
11321120 }
11331121 else throw("Strict value is not equal to itself.")
11341122 }
11351123 else throw("Strict value is not equal to itself.")
11361124 }
11371125 else throw("Strict value is not equal to itself.")
11381126 }
11391127
11401128
11411129
1142-@Callable(eW)
1143-func putForFree (gX) = if ((0 > gX))
1130+@Callable(eS)
1131+func putForFree (gT) = if ((0 > gT))
11441132 then throw("Invalid value passed")
11451133 else {
1146- let fc = eZ(eW, gX, false)
1147- let dI = fc._9
1148- let fa = toBigInt(value(eW.payments[0]).amount)
1149- let fb = toBigInt(value(eW.payments[1]).amount)
1150- let eD = ew(fa, fb, toBigInt(0))
1151- if ((eD == eD))
1134+ let eY = eV(eS, gT, false)
1135+ let dE = eY._9
1136+ let eW = toBigInt(value(eS.payments[0]).amount)
1137+ let eX = toBigInt(value(eS.payments[1]).amount)
1138+ let ez = es(eW, eX, toBigInt(0))
1139+ if ((ez == ez))
11521140 then {
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)
1141+ let gU = eA(0, 0, 0)
1142+ let gQ = gU._1
1143+ let er = gU._2
1144+ let gR = eE(ez, er)
1145+ if ((gR == gR))
1146+ then (dE ++ gQ)
11591147 else throw("Strict value is not equal to itself.")
11601148 }
11611149 else throw("Strict value is not equal to itself.")
11621150 }
11631151
11641152
11651153
1166-@Callable(eW)
1167-func putOneTkn (gZ,ha) = {
1168- let hb = {
1169- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1170- if ($isInstanceOf(aY, "Boolean"))
1171- then aY
1172- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1154+@Callable(eS)
1155+func putOneTkn (gV,gW) = {
1156+ let gX = {
1157+ let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1158+ if ($isInstanceOf(aW, "Boolean"))
1159+ then aW
1160+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
11731161 }
1174- let hc = if (if (if (bc())
1162+ let gY = if (if (if (aY())
11751163 then true
1176- else (bp == l))
1164+ else (bl == l))
11771165 then true
1178- else (bp == n))
1166+ else (bl == n))
11791167 then true
1180- else hb
1181- let fQ = [if (if (!(hc))
1168+ else gX
1169+ let fM = [if (if (!(gY))
11821170 then true
1183- else gl(eW))
1171+ else gh(eS))
11841172 then true
1185- else aS("put operation is blocked by admin"), if ((size(eW.payments) == 1))
1173+ else aQ("put operation is blocked by admin"), if ((size(eS.payments) == 1))
11861174 then true
1187- else aS("exactly 1 payment are expected")]
1188- if ((fQ == fQ))
1175+ else aQ("exactly 1 payment are expected")]
1176+ if ((fM == fM))
11891177 then {
1190- let hd = eW.payments[0]
1191- let fl = hd.assetId
1192- let fk = hd.amount
1193- let eD = if ((fl == br))
1194- then ew(toBigInt(fk), toBigInt(0), toBigInt(0))
1195- else if ((fl == bs))
1196- then ew(toBigInt(0), toBigInt(fk), toBigInt(0))
1197- else aS("payment asset is not supported")
1198- if ((eD == eD))
1178+ let gZ = eS.payments[0]
1179+ let fh = gZ.assetId
1180+ let fg = gZ.amount
1181+ let ez = if ((fh == bn))
1182+ then es(toBigInt(fg), toBigInt(0), toBigInt(0))
1183+ else if ((fh == bo))
1184+ then es(toBigInt(0), toBigInt(fg), toBigInt(0))
1185+ else aQ("payment asset is not supported")
1186+ if ((ez == ez))
11991187 then {
1200- let ab = eW.caller
1201- let ac = eW.transactionId
1202- let he = fj(fk, fl, ab, ac)
1203- if ((he == he))
1188+ let ab = eS.caller
1189+ let ac = eS.transactionId
1190+ let ha = ff(fg, fh, ab, ac)
1191+ if ((ha == ha))
12041192 then {
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)
1193+ let fl = ha._5
1194+ let hb = ha._4
1195+ let fe = ha._3
1196+ let el = ha._2
1197+ let hc = ha._1
1198+ let hd = if (if ((gV > 0))
1199+ then (gV > hc)
12121200 else false)
1213- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1214- else hg
1215- let fe = fd(hh)
1216- if ((fe == fe))
1201+ then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1202+ else hc
1203+ let fa = eZ(hd)
1204+ if ((fa == fa))
12171205 then {
1218- let gR = if (ha)
1206+ let gN = if (gW)
12191207 then {
1220- let hi = invoke(bw, "stake", nil, [AttachedPayment(bq, hh)])
1221- if ((hi == hi))
1208+ let he = invoke(bs, "stake", nil, [AttachedPayment(bm, hd)])
1209+ if ((he == he))
12221210 then nil
12231211 else throw("Strict value is not equal to itself.")
12241212 }
1225- else [ScriptTransfer(eW.caller, hh, bq)]
1226- let hj = if ((fi > 0))
1227- then [ScriptTransfer(aW, fi, fl)]
1213+ else [ScriptTransfer(eS.caller, hd, bm)]
1214+ let hf = if ((fe > 0))
1215+ then [ScriptTransfer(aU, fe, fh)]
12281216 else nil
1229- let hk = if ((this == aW))
1217+ let hg = if ((this == aU))
12301218 then $Tuple2(0, 0)
1231- else if (fp)
1232- then $Tuple2(-(fi), 0)
1233- else $Tuple2(0, -(fi))
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
1239- let eP = value(getString(aj))
1240- let gV = eI(eD, ev)
1241- if ((gV == gV))
1219+ else if (fl)
1220+ then $Tuple2(-(fe), 0)
1221+ else $Tuple2(0, -(fe))
1222+ let eB = hg._1
1223+ let eC = hg._2
1224+ let hh = eA(eB, eC, 0)
1225+ let gQ = hh._1
1226+ let er = hh._2
1227+ let eL = value(getString(aj))
1228+ let gR = eE(ez, er)
1229+ if ((gR == gR))
12421230 then {
1243- let gW = invoke(this, "rebalance", nil, nil)
1244- if ((gW == gW))
1245- then $Tuple2((((ep ++ gR) ++ hj) ++ gU), hh)
1231+ let gS = invoke(this, "rebalance", nil, nil)
1232+ if ((gS == gS))
1233+ then $Tuple2((((el ++ gN) ++ hf) ++ gQ), hd)
12461234 else throw("Strict value is not equal to itself.")
12471235 }
12481236 else throw("Strict value is not equal to itself.")
12491237 }
12501238 else throw("Strict value is not equal to itself.")
12511239 }
12521240 else throw("Strict value is not equal to itself.")
12531241 }
12541242 else throw("Strict value is not equal to itself.")
12551243 }
12561244 else throw("Strict value is not equal to itself.")
12571245 }
12581246
12591247
12601248
1261-@Callable(eW)
1262-func putOneTknREADONLY (fl,fk) = {
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))
1249+@Callable(eS)
1250+func putOneTknREADONLY (fh,fg) = {
1251+ let hi = ff(fg, bd(fh), unit, unit)
1252+ let hc = hi._1
1253+ let el = hi._2
1254+ let fe = hi._3
1255+ let hb = hi._4
1256+ let fl = hi._5
1257+ $Tuple2(nil, $Tuple3(hc, fe, hb))
12701258 }
12711259
12721260
12731261
1274-@Callable(eW)
1275-func getOneTkn (hn,gZ) = {
1276- let hb = {
1277- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1278- if ($isInstanceOf(aY, "Boolean"))
1279- then aY
1280- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1262+@Callable(eS)
1263+func getOneTkn (hj,gV) = {
1264+ let gX = {
1265+ let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1266+ if ($isInstanceOf(aW, "Boolean"))
1267+ then aW
1268+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
12811269 }
1282- let ho = if (if (bc())
1270+ let hk = if (if (aY())
12831271 then true
1284- else (bp == n))
1272+ else (bl == n))
12851273 then true
1286- else hb
1287- let fQ = [if (if (!(ho))
1274+ else gX
1275+ let fM = [if (if (!(hk))
12881276 then true
1289- else gl(eW))
1277+ else gh(eS))
12901278 then true
1291- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 1))
1279+ else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 1))
12921280 then true
1293- else aS("exactly 1 payment are expected")]
1294- if ((fQ == fQ))
1281+ else aQ("exactly 1 payment are expected")]
1282+ if ((fM == fM))
12951283 then {
1296- let fP = bh(hn)
1297- let hd = eW.payments[0]
1298- let fl = hd.assetId
1299- let fx = hd.amount
1300- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1301- if ((eD == eD))
1284+ let fL = bd(hj)
1285+ let gZ = eS.payments[0]
1286+ let fh = gZ.assetId
1287+ let ft = gZ.amount
1288+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1289+ if ((ez == ez))
13021290 then {
1303- let ab = eW.caller
1304- let ac = eW.transactionId
1305- let hp = fO(fP, fx, fl, ab, ac)
1306- if ((hp == hp))
1291+ let ab = eS.caller
1292+ let ac = eS.transactionId
1293+ let hl = fK(fL, ft, fh, ab, ac)
1294+ if ((hl == hl))
13071295 then {
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)
1296+ let fN = hl._5
1297+ let hb = hl._4
1298+ let fe = hl._3
1299+ let el = hl._2
1300+ let hm = hl._1
1301+ let bW = if (if ((gV > 0))
1302+ then (gV > hm)
13151303 else false)
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))
1304+ then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1305+ else hm
1306+ let hn = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1307+ if ((hn == hn))
13201308 then {
1321- let gF = cO(hn, ca)
1322- if ((gF == gF))
1309+ let gB = cK(hj, bW)
1310+ if ((gB == gB))
13231311 then {
1324- let hs = [ScriptTransfer(ab, ca, fP)]
1325- let hj = if ((fi > 0))
1326- then [ScriptTransfer(aW, fi, fP)]
1312+ let ho = [ScriptTransfer(ab, bW, fL)]
1313+ let hf = if ((fe > 0))
1314+ then [ScriptTransfer(aU, fe, fL)]
13271315 else nil
1328- let ht = {
1329- let hu = if ((this == aW))
1316+ let hp = {
1317+ let hq = if ((this == aU))
13301318 then 0
1331- else fi
1332- if (fR)
1333- then $Tuple2(-((ca + hu)), 0)
1334- else $Tuple2(0, -((ca + hu)))
1319+ else fe
1320+ if (fN)
1321+ then $Tuple2(-((bW + hq)), 0)
1322+ else $Tuple2(0, -((bW + hq)))
13351323 }
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)
1324+ let eB = hp._1
1325+ let eC = hp._2
1326+ let hr = eA(eB, eC, 0)
1327+ let gQ = hr._1
1328+ let er = hr._2
1329+ let gR = eE(ez, er)
1330+ if ((gR == gR))
1331+ then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
13441332 else throw("Strict value is not equal to itself.")
13451333 }
13461334 else throw("Strict value is not equal to itself.")
13471335 }
13481336 else throw("Strict value is not equal to itself.")
13491337 }
13501338 else throw("Strict value is not equal to itself.")
13511339 }
13521340 else throw("Strict value is not equal to itself.")
13531341 }
13541342 else throw("Strict value is not equal to itself.")
13551343 }
13561344
13571345
13581346
1359-@Callable(eW)
1360-func getOneTknREADONLY (fP,fx) = {
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))
1347+@Callable(eS)
1348+func getOneTknREADONLY (fL,ft) = {
1349+ let hs = fK(bd(fL), ft, bm, unit, unit)
1350+ let hm = hs._1
1351+ let el = hs._2
1352+ let fe = hs._3
1353+ let hb = hs._4
1354+ let fN = hs._5
1355+ $Tuple2(nil, $Tuple3(hm, fe, hb))
13681356 }
13691357
13701358
13711359
1372-@Callable(eW)
1373-func unstakeAndGetOneTkn (hx,hn,gZ) = {
1374- let hb = {
1375- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1376- if ($isInstanceOf(aY, "Boolean"))
1377- then aY
1378- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1360+@Callable(eS)
1361+func unstakeAndGetOneTkn (ht,hj,gV) = {
1362+ let gX = {
1363+ let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1364+ if ($isInstanceOf(aW, "Boolean"))
1365+ then aW
1366+ else throw(($getType(aW) + " couldn't be cast to Boolean"))
13791367 }
1380- let ho = if (if (bc())
1368+ let hk = if (if (aY())
13811369 then true
1382- else (bp == n))
1370+ else (bl == n))
13831371 then true
1384- else hb
1385- let fQ = [if (if (!(ho))
1372+ else gX
1373+ let fM = [if (if (!(hk))
13861374 then true
1387- else gl(eW))
1375+ else gh(eS))
13881376 then true
1389- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1377+ else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 0))
13901378 then true
1391- else aS("no payments are expected")]
1392- if ((fQ == fQ))
1379+ else aQ("no payments are expected")]
1380+ if ((fM == fM))
13931381 then {
1394- let fP = bh(hn)
1395- let ab = eW.caller
1396- let ac = eW.transactionId
1397- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1398- if ((eD == eD))
1382+ let fL = bd(hj)
1383+ let ab = eS.caller
1384+ let ac = eS.transactionId
1385+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1386+ if ((ez == ez))
13991387 then {
1400- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1401- if ((hy == hy))
1388+ let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1389+ if ((hu == hu))
14021390 then {
1403- let hz = fO(fP, hx, bq, ab, ac)
1404- if ((hz == hz))
1391+ let hv = fK(fL, ht, bm, ab, ac)
1392+ if ((hv == hv))
14051393 then {
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)
1394+ let fN = hv._5
1395+ let hb = hv._4
1396+ let fe = hv._3
1397+ let el = hv._2
1398+ let hm = hv._1
1399+ let bW = if (if ((gV > 0))
1400+ then (gV > hm)
14131401 else false)
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))
1402+ then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1403+ else hm
1404+ let hn = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1405+ if ((hn == hn))
14181406 then {
1419- let gF = cO(hn, ca)
1420- if ((gF == gF))
1407+ let gB = cK(hj, bW)
1408+ if ((gB == gB))
14211409 then {
1422- let hs = [ScriptTransfer(eW.caller, ca, fP)]
1423- let hj = if ((fi > 0))
1424- then [ScriptTransfer(aW, fi, fP)]
1410+ let ho = [ScriptTransfer(eS.caller, bW, fL)]
1411+ let hf = if ((fe > 0))
1412+ then [ScriptTransfer(aU, fe, fL)]
14251413 else nil
1426- let hA = {
1427- let hu = if ((this == aW))
1414+ let hw = {
1415+ let hq = if ((this == aU))
14281416 then 0
1429- else fi
1430- if (fR)
1431- then $Tuple2(-((ca + hu)), 0)
1432- else $Tuple2(0, -((ca + hu)))
1417+ else fe
1418+ if (fN)
1419+ then $Tuple2(-((bW + hq)), 0)
1420+ else $Tuple2(0, -((bW + hq)))
14331421 }
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)
1422+ let eB = hw._1
1423+ let eC = hw._2
1424+ let hx = eA(eB, eC, 0)
1425+ let gQ = hx._1
1426+ let er = hx._2
1427+ let gR = eE(ez, er)
1428+ if ((gR == gR))
1429+ then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
14421430 else throw("Strict value is not equal to itself.")
14431431 }
14441432 else throw("Strict value is not equal to itself.")
14451433 }
14461434 else throw("Strict value is not equal to itself.")
14471435 }
14481436 else throw("Strict value is not equal to itself.")
14491437 }
14501438 else throw("Strict value is not equal to itself.")
14511439 }
14521440 else throw("Strict value is not equal to itself.")
14531441 }
14541442 else throw("Strict value is not equal to itself.")
14551443 }
14561444
14571445
14581446
1459-@Callable(eW)
1447+@Callable(eS)
14601448 func get () = {
1461- let ea = eV(eW)
1462- let hC = ea._1
1463- let dF = ea._2
1464- let eY = ea._3
1465- let dn = ea._4
1466- let dI = ea._5
1467- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1468- if ((eD == eD))
1449+ let dW = eR(eS)
1450+ let hy = dW._1
1451+ let dB = dW._2
1452+ let eU = dW._3
1453+ let dj = dW._4
1454+ let dE = dW._5
1455+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1456+ if ((ez == ez))
14691457 then {
1470- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1471- if ((hD == hD))
1458+ let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1459+ if ((hz == hz))
14721460 then {
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)
1461+ let hA = eA(-(hy), -(dB), 0)
1462+ let gQ = hA._1
1463+ let er = hA._2
1464+ let gR = eE(ez, er)
1465+ if ((gR == gR))
1466+ then (dE ++ gQ)
14791467 else throw("Strict value is not equal to itself.")
14801468 }
14811469 else throw("Strict value is not equal to itself.")
14821470 }
14831471 else throw("Strict value is not equal to itself.")
14841472 }
14851473
14861474
14871475
1488-@Callable(eW)
1489-func getNoLess (hF,hG) = {
1490- let ea = eV(eW)
1491- let dE = ea._1
1492- let dF = ea._2
1493- let eY = ea._3
1494- let dn = ea._4
1495- let dI = ea._5
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)))
1476+@Callable(eS)
1477+func getNoLess (hB,hC) = {
1478+ let dW = eR(eS)
1479+ let dA = dW._1
1480+ let dB = dW._2
1481+ let eU = dW._3
1482+ let dj = dW._4
1483+ let dE = dW._5
1484+ if ((hB > dA))
1485+ then throw(((("noLessThenAmtAsset failed: " + toString(dA)) + " < ") + toString(hB)))
1486+ else if ((hC > dB))
1487+ then throw(((("noLessThenPriceAsset failed: " + toString(dB)) + " < ") + toString(hC)))
15001488 else {
1501- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1502- if ((eD == eD))
1489+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1490+ if ((ez == ez))
15031491 then {
1504- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dn, eY)])
1505- if ((hD == hD))
1492+ let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1493+ if ((hz == hz))
15061494 then {
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)
1495+ let hD = eA(-(dA), -(dB), 0)
1496+ let gQ = hD._1
1497+ let er = hD._2
1498+ let gR = eE(ez, er)
1499+ if ((gR == gR))
1500+ then (dE ++ gQ)
15131501 else throw("Strict value is not equal to itself.")
15141502 }
15151503 else throw("Strict value is not equal to itself.")
15161504 }
15171505 else throw("Strict value is not equal to itself.")
15181506 }
15191507 }
15201508
15211509
15221510
1523-@Callable(eW)
1524-func unstakeAndGet (ca) = {
1525- let hI = if ((size(eW.payments) != 0))
1511+@Callable(eS)
1512+func unstakeAndGet (bW) = {
1513+ let hE = if ((size(eS.payments) != 0))
15261514 then throw("No payments are expected")
15271515 else true
1528- if ((hI == hI))
1516+ if ((hE == hE))
15291517 then {
1530- let dc = be()
1531- let dp = fromBase58String(dc[q])
1532- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1533- if ((eD == eD))
1518+ let cY = ba()
1519+ let dl = fromBase58String(cY[q])
1520+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1521+ if ((ez == ez))
15341522 then {
1535- let hy = invoke(bw, "unstake", [toBase58String(dp), ca], nil)
1536- if ((hy == hy))
1523+ let hu = invoke(bs, "unstake", [toBase58String(dl), bW], nil)
1524+ if ((hu == hu))
15371525 then {
1538- let ea = dl(toBase58String(eW.transactionId), toBase58String(dp), ca, eW.caller)
1539- let dE = ea._1
1540- let dF = ea._2
1541- let ds = parseIntValue(ea._9)
1542- let dI = ea._10
1543- let hJ = if (if (bc())
1526+ let dW = dh(toBase58String(eS.transactionId), toBase58String(dl), bW, eS.caller)
1527+ let dA = dW._1
1528+ let dB = dW._2
1529+ let do = parseIntValue(dW._9)
1530+ let dE = dW._10
1531+ let hF = if (if (aY())
15441532 then true
1545- else (ds == n))
1546- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
1533+ else (do == n))
1534+ then throw(("Get operation is blocked by admin. Status = " + toString(do)))
15471535 else true
1548- if ((hJ == hJ))
1536+ if ((hF == hF))
15491537 then {
1550- let hD = invoke(aV, "burn", [ca], [AttachedPayment(dp, ca)])
1551- if ((hD == hD))
1538+ let hz = invoke(aT, "burn", [bW], [AttachedPayment(dl, bW)])
1539+ if ((hz == hz))
15521540 then {
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)
1541+ let hG = eA(-(dA), -(dB), 0)
1542+ let gQ = hG._1
1543+ let er = hG._2
1544+ let gR = eE(ez, er)
1545+ if ((gR == gR))
1546+ then (dE ++ gQ)
15591547 else throw("Strict value is not equal to itself.")
15601548 }
15611549 else throw("Strict value is not equal to itself.")
15621550 }
15631551 else throw("Strict value is not equal to itself.")
15641552 }
15651553 else throw("Strict value is not equal to itself.")
15661554 }
15671555 else throw("Strict value is not equal to itself.")
15681556 }
15691557 else throw("Strict value is not equal to itself.")
15701558 }
15711559
15721560
15731561
1574-@Callable(eW)
1575-func unstakeAndGetNoLess (hx,hL,hG) = {
1576- let ho = if (bc())
1562+@Callable(eS)
1563+func unstakeAndGetNoLess (ht,hH,hC) = {
1564+ let hk = if (aY())
15771565 then true
1578- else (bp == n)
1579- let fQ = [if (!(ho))
1566+ else (bl == n)
1567+ let fM = [if (!(hk))
15801568 then true
1581- else throw("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1569+ else throw("get operation is blocked by admin"), if ((size(eS.payments) == 0))
15821570 then true
15831571 else throw("no payments are expected")]
1584- if ((fQ == fQ))
1572+ if ((fM == fM))
15851573 then {
1586- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1587- if ((eD == eD))
1574+ let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1575+ if ((ez == ez))
15881576 then {
1589- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1590- if ((hy == hy))
1577+ let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1578+ if ((hu == hu))
15911579 then {
1592- let ea = dl(toBase58String(eW.transactionId), toBase58String(bq), hx, eW.caller)
1593- let dE = ea._1
1594- let dF = ea._2
1595- let dI = ea._10
1596- let hM = [if ((dE >= hL))
1580+ let dW = dh(toBase58String(eS.transactionId), toBase58String(bm), ht, eS.caller)
1581+ let dA = dW._1
1582+ let dB = dW._2
1583+ let dE = dW._10
1584+ let hI = [if ((dA >= hH))
15971585 then true
1598- else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dF >= hG))
1586+ else throw(makeString(["amount asset amount to receive is less than ", toString(hH)], "")), if ((dB >= hC))
15991587 then true
1600- else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1601- if ((hM == hM))
1588+ else throw(makeString(["price asset amount to receive is less than ", toString(hC)], ""))]
1589+ if ((hI == hI))
16021590 then {
1603- let hD = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1604- if ((hD == hD))
1591+ let hz = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1592+ if ((hz == hz))
16051593 then {
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)
1594+ let hJ = eA(-(dA), -(dB), 0)
1595+ let gQ = hJ._1
1596+ let er = hJ._2
1597+ let gR = eE(ez, er)
1598+ if ((gR == gR))
1599+ then (dE ++ gQ)
16121600 else throw("Strict value is not equal to itself.")
16131601 }
16141602 else throw("Strict value is not equal to itself.")
16151603 }
16161604 else throw("Strict value is not equal to itself.")
16171605 }
16181606 else throw("Strict value is not equal to itself.")
16191607 }
16201608 else throw("Strict value is not equal to itself.")
16211609 }
16221610 else throw("Strict value is not equal to itself.")
16231611 }
16241612
16251613
16261614
1627-@Callable(eW)
1628-func activate (hO,hP) = if ((toString(eW.caller) != toString(aV)))
1615+@Callable(eS)
1616+func activate (hK,hL) = if ((toString(eS.caller) != toString(aT)))
16291617 then throw("permissions denied")
1630- else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
1618+ else $Tuple2([StringEntry(ae(), hK), StringEntry(af(), hL)], "success")
16311619
16321620
16331621
1634-@Callable(eW)
1622+@Callable(eS)
16351623 func refreshKLp () = {
1636- let hQ = valueOrElse(getInteger(ak), 0)
1637- let hR = if (((height - hQ) >= an))
1624+ let hM = valueOrElse(getInteger(ak), 0)
1625+ let hN = if (((height - hM) >= an))
16381626 then unit
1639- else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1640- if ((hR == hR))
1627+ else aQ(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1628+ if ((hN == hN))
16411629 then {
1642- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1643- let hS = eE(0, 0, 0)
1644- let hT = hS._1
1645- let ev = hS._2
1646- let eH = if ((eP != ev))
1647- then hT
1648- else aS("nothing to refresh")
1649- $Tuple2(eH, toString(ev))
1630+ let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
1631+ let hO = eA(0, 0, 0)
1632+ let hP = hO._1
1633+ let er = hO._2
1634+ let eD = if ((eL != er))
1635+ then hP
1636+ else aQ("nothing to refresh")
1637+ $Tuple2(eD, toString(er))
16501638 }
16511639 else throw("Strict value is not equal to itself.")
16521640 }
16531641
16541642
16551643
1656-@Callable(eW)
1657-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, be())
1644+@Callable(eS)
1645+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ba())
16581646
16591647
16601648
1661-@Callable(eW)
1662-func getAccBalanceWrapperREADONLY (ar) = $Tuple2(nil, bN(ar))
1649+@Callable(eS)
1650+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bJ(ap))
16631651
16641652
16651653
1666-@Callable(eW)
1667-func calcPricesWrapperREADONLY (cW,cX,db) = {
1668- let dk = da(cW, cX, db)
1669- $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
1654+@Callable(eS)
1655+func calcPricesWrapperREADONLY (cS,cT,cX) = {
1656+ let dg = cW(cS, cT, cX)
1657+ $Tuple2(nil, [toString(dg[0]), toString(dg[1]), toString(dg[2])])
16701658 }
16711659
16721660
16731661
1674-@Callable(eW)
1662+@Callable(eS)
16751663 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16761664
16771665
16781666
1679-@Callable(eW)
1667+@Callable(eS)
16801668 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16811669
16821670
16831671
1684-@Callable(eW)
1685-func calcPriceBigIntWrapperREADONLY (bR,bS) = $Tuple2(nil, toString(bQ(parseBigIntValue(bR), parseBigIntValue(bS))))
1672+@Callable(eS)
1673+func calcPriceBigIntWrapperREADONLY (bN,bO) = $Tuple2(nil, toString(bM(parseBigIntValue(bN), parseBigIntValue(bO))))
16861674
16871675
16881676
1689-@Callable(eW)
1690-func estimatePutOperationWrapperREADONLY (dm,dK,dL,dM,dN,dO,ab,dP,dQ) = $Tuple2(nil, dJ(dm, dK, dL, dM, dN, dO, ab, dP, dQ))
1677+@Callable(eS)
1678+func estimatePutOperationWrapperREADONLY (di,dG,dH,dI,dJ,dK,ab,dL,dM) = $Tuple2(nil, dF(di, dG, dH, dI, dJ, dK, ab, dL, dM))
16911679
16921680
16931681
1694-@Callable(eW)
1695-func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
1696- let ea = dl(dm, dn, do, addressFromStringValue(ab))
1697- $Tuple2(nil, $Tuple10(ea._1, ea._2, ea._3, ea._4, ea._5, ea._6, ea._7, toString(ea._8), ea._9, ea._10))
1682+@Callable(eS)
1683+func estimateGetOperationWrapperREADONLY (di,dj,dk,ab) = {
1684+ let dW = dh(di, dj, dk, addressFromStringValue(ab))
1685+ $Tuple2(nil, $Tuple10(dW._1, dW._2, dW._3, dW._4, dW._5, dW._6, dW._7, toString(dW._8), dW._9, dW._10))
16981686 }
16991687
17001688
17011689
1702-@Callable(eW)
1690+@Callable(eS)
17031691 func statsREADONLY () = {
1704- let dc = be()
1705- let dp = fromBase58String(dc[q])
1706- let hU = dc[r]
1707- let hV = dc[s]
1708- let dT = dc[v]
1709- let dU = dc[w]
1710- let dd = parseIntValue(dc[t])
1711- let de = parseIntValue(dc[u])
1712- let hW = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1713- let hX = bN(hU)
1714- let hY = bN(hV)
1715- let hZ = if ((hW == 0))
1692+ let cY = ba()
1693+ let dl = fromBase58String(cY[q])
1694+ let hQ = cY[r]
1695+ let hR = cY[s]
1696+ let dP = cY[v]
1697+ let dQ = cY[w]
1698+ let cZ = parseIntValue(cY[t])
1699+ let da = parseIntValue(cY[u])
1700+ let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1701+ let hT = bJ(hQ)
1702+ let hU = bJ(hR)
1703+ let hV = if ((hS == 0))
17161704 then [e, e, e]
1717- else da(hX, hY, hW)
1718- let dz = 0
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))
1705+ else cW(hT, hU, hS)
1706+ let dv = 0
1707+ let hW = H(hV[1], b)
1708+ let hX = H(hV[2], b)
1709+ let hY = value(getInteger(aT, aD(toString(this))))
1710+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hT), toString(hU), toString(hS), toString(dv), toString(hW), toString(hX), toString(hY)], j))
17231711 }
17241712
17251713
17261714
1727-@Callable(eW)
1728-func evaluatePutByAmountAssetREADONLY (dL) = {
1729- let dc = be()
1730- let dp = fromBase58String(dc[q])
1731- let dR = dc[r]
1732- let dq = fromBase58String(dR)
1733- let dS = dc[s]
1734- let dr = fromBase58String(dS)
1735- let dd = parseIntValue(dc[t])
1736- let de = parseIntValue(dc[u])
1737- let ds = dc[p]
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))
1715+@Callable(eS)
1716+func evaluatePutByAmountAssetREADONLY (dH) = {
1717+ let cY = ba()
1718+ let dl = fromBase58String(cY[q])
1719+ let dN = cY[r]
1720+ let dm = fromBase58String(dN)
1721+ let dO = cY[s]
1722+ let dn = fromBase58String(dO)
1723+ let cZ = parseIntValue(cY[t])
1724+ let da = parseIntValue(cY[u])
1725+ let do = cY[p]
1726+ let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1727+ let hT = bJ(dN)
1728+ let hU = bJ(dO)
1729+ let cU = D(hT, cZ)
1730+ let cV = D(hU, da)
1731+ let du = if ((hS == 0))
17441732 then e
1745- else bQ(cZ, cY)
1746- let dX = D(dL, dd)
1747- let dY = fraction(dX, dy, d)
1748- let dN = H(dY, de)
1749- let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
1750- let ei = fc._1
1751- let id = fc._3
1752- let du = fc._4
1753- let dw = fc._5
1754- let dt = fc._6
1755- $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))
1733+ else bM(cV, cU)
1734+ let dT = D(dH, cZ)
1735+ let dU = fraction(dT, du, d)
1736+ let dJ = H(dU, da)
1737+ let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
1738+ let ee = eY._1
1739+ let hZ = eY._3
1740+ let dq = eY._4
1741+ let ds = eY._5
1742+ let dp = eY._6
1743+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(du, b)), toString(dq), toString(ds), toString(dp), do, toString(dH), toString(dJ)], j))
17561744 }
17571745
17581746
17591747
1760-@Callable(eW)
1761-func evaluatePutByPriceAssetREADONLY (dN) = {
1762- let dc = be()
1763- let dp = fromBase58String(dc[q])
1764- let dR = dc[r]
1765- let dq = fromBase58String(dR)
1766- let dS = dc[s]
1767- let dr = fromBase58String(dS)
1768- let dd = parseIntValue(dc[t])
1769- let de = parseIntValue(dc[u])
1770- let ds = dc[p]
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))
1748+@Callable(eS)
1749+func evaluatePutByPriceAssetREADONLY (dJ) = {
1750+ let cY = ba()
1751+ let dl = fromBase58String(cY[q])
1752+ let dN = cY[r]
1753+ let dm = fromBase58String(dN)
1754+ let dO = cY[s]
1755+ let dn = fromBase58String(dO)
1756+ let cZ = parseIntValue(cY[t])
1757+ let da = parseIntValue(cY[u])
1758+ let do = cY[p]
1759+ let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1760+ let ia = bJ(dN)
1761+ let ib = bJ(dO)
1762+ let ic = D(ia, cZ)
1763+ let id = D(ib, da)
1764+ let du = if ((hS == 0))
17771765 then e
1778- else bQ(ih, ig)
1779- let dY = D(dN, de)
1780- let dX = fraction(dY, d, dy)
1781- let dL = H(dX, dd)
1782- let fc = dJ("", 500000, dL, dq, dN, dr, "", true, false)
1783- let ei = fc._1
1784- let id = fc._3
1785- let du = fc._4
1786- let dw = fc._5
1787- let dt = fc._6
1788- $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))
1766+ else bM(id, ic)
1767+ let dU = D(dJ, da)
1768+ let dT = fraction(dU, d, du)
1769+ let dH = H(dT, cZ)
1770+ let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
1771+ let ee = eY._1
1772+ let hZ = eY._3
1773+ let dq = eY._4
1774+ let ds = eY._5
1775+ let dp = eY._6
1776+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(du, b)), toString(dq), toString(ds), toString(dp), do, toString(dH), toString(dJ)], j))
17891777 }
17901778
17911779
17921780
1793-@Callable(eW)
1794-func evaluateGetREADONLY (ii,ij) = {
1795- let ea = dl("", ii, ij, this)
1796- let dE = ea._1
1797- let dF = ea._2
1798- let du = ea._5
1799- let dw = ea._6
1800- let dt = ea._7
1801- let dz = ea._8
1802- let ds = parseIntValue(ea._9)
1803- $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))
1781+@Callable(eS)
1782+func evaluateGetREADONLY (ie,if) = {
1783+ let dW = dh("", ie, if, this)
1784+ let dA = dW._1
1785+ let dB = dW._2
1786+ let dq = dW._5
1787+ let ds = dW._6
1788+ let dp = dW._7
1789+ let dv = dW._8
1790+ let do = parseIntValue(dW._9)
1791+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dA), toString(dB), toString(dq), toString(ds), toString(dp), toString(dv), toString(do)], j))
18041792 }
18051793
18061794
1807-@Verifier(ik)
1808-func il () = {
1809- let im = {
1810- let bX = gi()
1811- if ($isInstanceOf(bX, "ByteVector"))
1795+@Verifier(ig)
1796+func ih () = {
1797+ let ii = {
1798+ let bT = ge()
1799+ if ($isInstanceOf(bT, "ByteVector"))
18121800 then {
1813- let gm = bX
1814- gm
1801+ let gi = bT
1802+ gi
18151803 }
1816- else if ($isInstanceOf(bX, "Unit"))
1817- then ik.senderPublicKey
1804+ else if ($isInstanceOf(bT, "Unit"))
1805+ then ig.senderPublicKey
18181806 else throw("Match error")
18191807 }
1820- let bX = ik
1821- if ($isInstanceOf(bX, "Order"))
1808+ let bT = ig
1809+ if ($isInstanceOf(bT, "Order"))
18221810 then {
1823- let eL = bX
1824- let in = bd()
1825- let io = eK(eL)
1826- let aK = io._1
1827- let aL = io._2
1828- let aM = sigVerify(eL.bodyBytes, eL.proofs[0], eL.senderPublicKey)
1829- let aN = sigVerify(eL.bodyBytes, eL.proofs[1], in)
1830- if (if (if (aK)
1831- then aM
1811+ let eH = bT
1812+ let ij = aZ()
1813+ let ik = eG(eH)
1814+ let aI = ik._1
1815+ let aJ = ik._2
1816+ let aK = sigVerify(eH.bodyBytes, eH.proofs[0], eH.senderPublicKey)
1817+ let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ij)
1818+ if (if (if (aI)
1819+ then aK
18321820 else false)
1833- then aN
1821+ then aL
18341822 else false)
18351823 then true
1836- else aJ(aK, aL, aM, aN)
1824+ else aH(aI, aJ, aK, aL)
18371825 }
1838- else if ($isInstanceOf(bX, "SetScriptTransaction"))
1826+ else if ($isInstanceOf(bT, "SetScriptTransaction"))
18391827 then {
1840- let gj = bX
1841- if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
1828+ let gf = bT
1829+ if (sigVerify(ig.bodyBytes, ig.proofs[0], ii))
18421830 then true
18431831 else {
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)
1832+ let il = blake2b256(value(gf.script))
1833+ let im = fromBase64String(value(getString(aT, aF())))
1834+ let in = scriptHash(this)
1835+ if ((im == il))
1836+ then (in != il)
18491837 else false
18501838 }
18511839 }
1852- else sigVerify(ik.bodyBytes, ik.proofs[0], im)
1840+ else sigVerify(ig.bodyBytes, ig.proofs[0], ii)
18531841 }
18541842

github/deemru/w8io/873ac7e 
2734.24 ms