tx · BBAnX63Ve1aYqoA7CWJnecdA2zkxyJAt5QY8bLJtNjn

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.02300000 Waves

2023.12.26 15:40 [2903727] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "BBAnX63Ve1aYqoA7CWJnecdA2zkxyJAt5QY8bLJtNjn", "fee": 2300000, "feeAssetId": null, "timestamp": 1703594503322, "version": 2, "chainId": 84, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "5YAY3RuW1ka5iBH5ZUdZfEPiQZz7hUeXLR3wQRkhakVNv8NqWgUPB9WFhBoBUDWML8bZv4LKUJ21eKmhEWAtxqU3" ], "script": "base64:BgL6IAgCEgMKAQgSAwoBCBIECgIICBIJCgcBERERGAgYEgcKBRERERgIEgcKBQEBAQgIEgASAwoBCBIECgIIARIECgIIARIECgIIARIDCgEIEgYKBAgBCAESBQoDARgYEgMKARgiBlNDQUxFOCIFTVVMVDgiB1NDQUxFMTgiBk1VTFQxOCIDU0VQIg5QT09MV0VJR0hUTVVMVCIKemVyb0JpZ0ludCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIg9nZXRTdHJpbmdPckZhaWwiA2tleSIYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsIgdhZGRyZXNzIgxnZXRJbnRPclplcm8iDGdldEludE9yRmFpbCIJYXNBbnlMaXN0IgN2YWwiByRtYXRjaDAiCnZhbEFueUx5c3QiBWFzSW50IgZ2YWxJbnQiCGFzU3RyaW5nIgZ2YWxTdHIiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiDWtleUZhY3RvcnlDZmciGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nIgpscEFzc2V0U3RyIhBrZXlGYWN0b3J5THBMaXN0IiZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyIUa2V5RmFjdG9yeVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsIgpyZWFkTHBMaXN0IhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgRmQ2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIhxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzIgFzIgtrZXlCb29zdENmZyIfa2V5Qm9vc3RpbmdMb2NrUGFyYW1Ub3RhbEFtb3VudCIoa2V5Qm9vc3RpbmdTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcyIaa2V5Qm9vc3RpbmdTdGF0c0xvY2tzQ291bnQiGmtleUJvb3N0aW5nU3RhdHNVc2Vyc0NvdW50IhJrZXlVc2VyMk51bU1hcHBpbmciC3VzZXJBZGRyZXNzIhJrZXlOdW0yVXNlck1hcHBpbmciA251bSIWa2V5TG9ja1BhcmFtVXNlckFtb3VudCIHdXNlck51bSIWa2V5TG9ja1BhcmFtU3RhcnRCbG9jayIUa2V5TG9ja1BhcmFtRHVyYXRpb24iDWtleUxvY2tQYXJhbUsiDWtleUxvY2tQYXJhbUIiFWtleUxvY2tQYXJhbUJ5UGVyaW9kSyIGcGVyaW9kIhVrZXlMb2NrUGFyYW1CeVBlcmlvZEIiIGtleVVzZXJCb29zdEVtaXNzaW9uTGFzdElOVEVHUkFMIhdrZXlVc2VyTWF4Qm9vc3RJTlRFR1JBTCIYa2V5VG90YWxNYXhCb29zdElOVEVHUkFMIiFrZXlVc2VyQm9vc3RBdmFsYWlibGVUb0NsYWltVG90YWwiE2tleVVzZXJCb29zdENsYWltZWQiEWtleVRvdGFsQ2FjaGVkR3d4Ig9rZXlTdGFrZWRCeVVzZXIiDnVzZXJBZGRyZXNzU3RyIgxscEFzc2V0SWRTdHIiDmtleVN0YWtlZFRvdGFsIhBrZXlDbGFpbWVkQnlVc2VyIhlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkIhtrZXlDbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQiCnJlYWRTdGFrZWQiC3N0YWtpbmdEYXBwIh5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQiIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudCIVa2V5RW1pc3Npb25TdGFydEJsb2NrIhtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MiE2tleUVtaXNzaW9uRW5kQmxvY2siC2ZhY3RvcnlEYXBwIgpmYWN0b3J5Q2ZnIgxlbWlzc2lvbkRhcHAiDWd3eFJld2FyZERhcHAiDGJvb3N0aW5nRGFwcCIMZ2V0UG9vbEluRmVlIgtwb29sQWRkcmVzcyIBQCINZ2V0UG9vbE91dEZlZSIZaW50ZXJuYWxDdXJyZW50UmV3YXJkUmF0ZSIJbHBBc3NldElkIg5wb29sQWRkcmVzc1N0ciIOcG9vbFdlaWdodE11bHQiCnBvb2xXZWlnaHQiEnd4RW1pc3Npb25QZXJCbG9jayIVd3hFbWlzc2lvblBlckJsb2NrTWF4Ig1ib29zdE1heENvZWZmIhZwb29sV3hFbWlzc2lvblBlckJsb2NrIhlwb29sV3hFbWlzc2lvblBlckJsb2NrTWF4IgltYXhGYWN0b3IiDXRvdGFsTHBTdGFrZWQiGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZIgpsb2NrQW1vdW50Igxsb2NrRHVyYXRpb24iD21heExvY2tEdXJhdGlvbiIHY29lZmZYOCIOZ1d4QW1vdW50U3RhcnQiBmdldEtleSIEYWRkciIEdHlwZSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiDmZhY3RvcnlBZGRyZXNzIgtjaGVja0NhbGxlciIKcmV3YXJkRGF0YSISdm90aW5nUmVzdWx0U3Rha2VkIg5scFN0YWtlZEJ5VXNlciINdXNlckNsYWltSW5mbyINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0IgVkZWJ1ZyINYm9vc3RpbmdQb3dlciILY3VycmVudEl0ZXIiEWRlbHRhV3hBbW91bnRCdWxrIhtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsiEWRlbHRhTHBBbW91bnRCdWxrIhBscEFzc2V0SWRPcHRCdWxrIg51c2VyQWRkcmVzc09wdCIGcmVzQWNjIg1kZWx0YVd4QW1vdW50IhdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcyINZGVsdGFMcEFtb3VudCIMbHBBc3NldElkT3B0IgRpbmZvIgNyZXMiA2ludiIKYm9vc3RDb2VmZiIIbWF0aERhcHAiCEVNUFRZU1RSIhdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcyIKdXNlck51bVN0ciIKdXNlckFtb3VudCIJbG9ja1N0YXJ0Igdsb2NrRW5kIhFyZW1haW5pbmdEdXJhdGlvbiINdXNlckFtb3VudE5ldyIPbG9ja0R1cmF0aW9uTmV3IhF1c2VyQ3VycmdXeEFtb3VudCIRZ1d4QW1vdW50U3RhcnROZXciDnRvdGFsQ2FjaGVkR3d4IgVNVUxUMyIUd3hFbWlzc2lvblBlckJsb2NrWDMiD3N0YWtlZEJ5VXNlcktFWSIOc3Rha2VkVG90YWxLRVkiDHN0YWtlZEJ5VXNlciILc3Rha2VkVG90YWwiGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyIJd3hQZXJMcFgzIhB1c2VyV3hQZXJCbG9ja1gzIhdib29zdEVtaXNzaW9uUGVyQmxvY2tYMyIWdG1wVXNlckJvb3N0UGVyQmxvY2tYMyITdXNlckJvb3N0UGVyQmxvY2tYMyIOdXNlckJvb3N0Q29lZmYiB09ORU1VTFQiA09ORSISZW1pc3Npb25TdGFydEJsb2NrIgxwYXNzZWRCbG9ja3MiDnRlYW1FbUR1cmF0aW9uIgl0ZWFtRW1NYXgiBnRlYW1FbSIPdG90YWxXeFJlbGVhc2VkIg10b3RhbFd4TG9ja2VkIhhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiCmxvY2tzQ291bnQiB2xwQXNzZXQiBnN0YXR1cyIDdHBsIgNjZmciCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0IghjdXJQcmljZSIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIFaW5GZWUiBm91dEZlZSIecG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1wb29sT25lVG9rZW5PcGVyYXRpb25zRW5hYmxlZCIPcG9vbFN3YXBFbmFibGVkIgxpbkFtQXNzZXRBbXQiDGFtQXNzZXRJZFN0ciIJYW1Bc3NldElkIgxwckFzc2V0SWRTdHIiCXByQXNzZXRJZCIKcG9vbFN0YXR1cyIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiC2N1clByaWNlWDE4Ig9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMaW5QckFzc2V0QW10Ig0kdDAyMjg1MTIzMjA0IgljYWxjTHBBbXQiDGN1clByaWNlQ2FsYyIJYW1CYWxhbmNlIglwckJhbGFuY2UiCmxwRW1pc3Npb24iDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCINJHQwMjU3NzcyNjEzMCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10Ig0kdDAyNjgyNTI3MjQyIghvdXRBbUFtdCIIb3V0UHJBbXQiD2d3eFVzZXJJbmZvTElTVCIJZ3d4QW1vdW50Ig11bnN0YWtlQW1vdW50IgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiBGtleXMiAWsiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleV0AAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUCAl9fAAFmBQFiAAFnCQC2AgEAAAABaAABAAFpAAIAAWoAAwABawAEAAFsAAUAAW0ABgABbgAHAAFvAAgAAXAACQABcQAKAQFyAQFzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQUBcwkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBcwIPIGlzIG5vdCBkZWZpbmVkAQF0AgF1AXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQF1BQFzCQCsAgIJAKwCAgkArAICCQCsAgICCm1hbmRhdG9yeSAJAKUIAQUBdQIBLgUBcwIPIGlzIG5vdCBkZWZpbmVkAQF2AgF1AXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBdQUBcwAAAQF3AgF1AXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQF1BQFzCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFzAg8gaXMgbm90IGRlZmluZWQBAXgBAXkEAXoFAXkDCQABAgUBegIJTGlzdFtBbnldBAFBBQF6BQFBCQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQFCAQF5BAF6BQF5AwkAAQIFAXoCA0ludAQBQwUBegUBQwkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBRAEBeQQBegUBeQMJAAECBQF6AgZTdHJpbmcEAUUFAXoFAUUJAAIBAhhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBAUYAAhwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAAFHAAEAAUgAAgABSQADAAFKAAQAAUsABQABTAAGAAFNAAcAAU4ACAEBTwACESVzX19mYWN0b3J5Q29uZmlnAQFQAQFRCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAVEJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFAWUBAVIAAhAlc19fbHBUb2tlbnNMaXN0AQFTAQFRCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAVEJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFAWUBAVQBAVUJALkJAgkAzAgCAgQlcyVzCQDMCAICCnBvb2xXZWlnaHQJAMwIAgUBVQUDbmlsBQFlAQFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAVcAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBWAAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFyAQkBAUYAAQFZAAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIJAQFYAAkBAVIAAgAFAWUBAVoBAmFhCQC1CQIJAQF0AgUCYWEJAQFPAAUBZQECYWIBAmFjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFjBQFIAQJhZAECYWMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWMFAUsBAmFlAQJhYwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYwUBRwECYWYBAmFjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFjBQFOAQJhZwAEAXoJAKIIAQkBAVYAAwkAAQIFAXoCBlN0cmluZwQCYWgFAXoJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFoBQR0aGlzAQJhaQACCiVzX19jb25maWcBAmFqAAIeJXMlc19fc3RhdHNfX2FjdGl2ZVRvdGFsTG9ja2VkAQJhawACJSVzJXNfX3N0YXRzX19sb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MBAmFsAAIXJXMlc19fc3RhdHNfX2xvY2tzQ291bnQBAmFtAAIdJXMlc19fc3RhdHNfX2FjdGl2ZVVzZXJzQ291bnQBAmFuAQJhbwkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fdXNlcjJudW0JAMwIAgUCYW8FA25pbAUBZQECYXABAmFxCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX19udW0ydXNlcgkAzAgCBQJhcQUDbmlsBQFlAQJhcgECYXMJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFzCQDMCAICBmFtb3VudAUDbmlsBQFlAQJhdAECYXMJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFzCQDMCAICBXN0YXJ0BQNuaWwFAWUBAmF1AQJhcwkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYXMJAMwIAgIIZHVyYXRpb24FA25pbAUBZQECYXYBAmFzCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhcwkAzAgCAgFrBQNuaWwFAWUBAmF3AQJhcwkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYXMJAMwIAgIBYgUDbmlsBQFlAQJheAICYXMCYXkJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCBQJhcwkAzAgCAgFrCQDMCAIFAmF5BQNuaWwFAWUBAmF6AgJhcwJheQkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFzCQDMCAICAWIJAMwIAgUCYXkFA25pbAUBZQECYUEBAmFzCQC5CQIJAMwIAgIeJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50CQDMCAIFAmFzBQNuaWwFAWUBAmFCAQJhcwkAuQkCCQDMCAICESVzJWRfX21heEJvb3N0SW50CQDMCAIFAmFzBQNuaWwFAWUBAmFDAAIYJXMlc19fbWF4Qm9vc3RJbnRfX3RvdGFsAQJhRAECYXMJALkJAgkAzAgCAiQlcyVkX191c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWwJAMwIAgUCYXMFA25pbAUBZQECYUUBAmFzCQC5CQIJAMwIAgIWJXMlZF9fdXNlckJvb3N0Q2xhaW1lZAkAzAgCBQJhcwUDbmlsBQFlAQJhRgACFiVzJXNfX2d3eENhY2hlZF9fdG90YWwBAmFHAgJhSAJhSQkAuQkCCQDMCAICDiVzJXMlc19fc3Rha2VkCQDMCAIFAmFICQDMCAIFAmFJBQNuaWwFAWUBAmFKAQJhSQkArAICAhclcyVzJXNfX3N0YWtlZF9fdG90YWxfXwUCYUkBAmFLAgJhSQJhSAkAuQkCCQDMCAICDyVzJXMlc19fY2xhaW1lZAkAzAgCBQJhSAkAzAgCBQJhSQUDbmlsBQFlAQJhTAICYUkCYUgJALkJAgkAzAgCAhglcyVzJXNfX2NsYWltZWRNaW5SZXdhcmQJAMwIAgUCYUgJAMwIAgUCYUkFA25pbAUBZQECYU0CAmFJAmFICQC5CQIJAMwIAgIaJXMlcyVzX19jbGFpbWVkQm9vc3RSZXdhcmQJAMwIAgUCYUgJAMwIAgUCYUkFA25pbAUBZQECYU4CAmFPAXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYU8FAXMAAAECYVAAAhslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBAmFRAAIeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50AQJhUgACGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQJhUwACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYVQAAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sAAmFVCQEBWAAAAmFWCQEBWgEFAmFVAAJhVwkBAmFkAQUCYVYAAmFPCQECYWUBBQJhVgACYVgJAQJhZgEFAmFWAAJhWQkBAmFiAQUCYVYBAmFaAQJiYQoAAmJiCQD8BwQFAmFVAhBnZXRJbkZlZVJFQURPTkxZCQDMCAIJAKUIAQUCYmEFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECYmMBAmJhCgACYmIJAPwHBAUCYVUCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUCYmEFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECYmQBAmJlBAJiZgkBAXQCBQJhVQkBAVMBBQJiZQQCYmcFAWIEAmJoCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJhVQkBAVQBBQJiZgQCYmkJAQF3AgUCYVcJAQJhUAAEAmJqCQEBdwIFAmFXCQECYVEABAJiawoAAmJiCQD8BwQFAmFXAhVnZXRCb29zdENvZWZmUkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYmwJAGkCCQBrAwUCYmkFAmJoBQJiZwUCYmsEAmJtCQBrAwUCYmoFAmJoBQJiZwQCYm4JAGgCBQJiawUBYgQCYm8JAQF2AgUCYU8JAQJhSgEFAmJlCQDMCAIFAmJsCQDMCAIFAmJuCQDMCAIFAmJvBQNuaWwBAmJwAwJicQJicgJicwQCYnQJAGsDBQJicgUBYgUCYnMEAmJ1CQBrAwUCYnEFAmJ0BQFiCQDMCAIFAmJ1BQNuaWwBAmJ2AwJidwFzAmJ4AwkAAAIFAmJ4AgZzdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFAmJ3BQFzAwkAAAIFAmJ4AgdpbnRlZ2VyCQCkAwEJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmJ3BQFzAwkAAAIFAmJ4Agdib29sZWFuCQClAwEJARFAZXh0ck5hdGl2ZSgxMDUxKQIFAmJ3BQFzCQACAQItdW5rbm93biB0eXBlLiBleHBlY3RlZCBzdHJpbmcvaW50ZWdlci9ib29sZWFuAQJieQAEAmJ6CQECYWcABAF6CQCdCAIFAmJ6CQEBVwADCQABAgUBegIGU3RyaW5nBAJhaAUBegkA2QQBBQJhaAMJAAECBQF6AgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmJBAQJiQgQBegkBAmJ5AAMJAAECBQF6AgpCeXRlVmVjdG9yBAJiQwUBegkAAAIIBQJiQg9jYWxsZXJQdWJsaWNLZXkFAmJDAwkAAQIFAXoCBFVuaXQJAAACCAUCYkIGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmJEAQJiQgMJAQJiQQEFAmJCBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkDwJiQgELY29uc3RydWN0b3IBAmJFBAJiRgkBAmJEAQUCYkIDCQAAAgUCYkYFAmJGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAAUCYkUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiQgEZY3VycmVudFJld2FyZFJhdGVSRUFET05MWQECYmUEAmJHCQECYmQBBQJiZQQCYmkJAJEDAgUCYkcAAAQCYm4JAJEDAgUCYkcAAQQCYm8JAJEDAgUCYkcAAgQCYkgKAAJiYgkA/AcEBQJhWQIdZ2V0Vm90aW5nUmVzdWx0U3Rha2VkUkVBRE9OTFkJAMwIAgUCYmUFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkAlAoCBQNuaWwJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFAmJpCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJibwkAzAgCCQCkAwEFAmJIBQNuaWwFAWUCYkIBHWN1cnJlbnRVc2VyUmV3YXJkUmF0ZVJFQURPTkxZAgJiZQJhbwQCYkcJAQJiZAEFAmJlBAJiaQkAkQMCBQJiRwAABAJibgkAkQMCBQJiRwABBAJibwkAkQMCBQJiRwACBAJiSQkBAXYCBQJhTwkBAmFHAgUCYW8FAmJlBAJiSgkAtQkCCQEBRAEJAPwHBAUCYU8CD2NsYWltV3hSRUFET05MWQkAzAgCBQJiZQkAzAgCBQJhbwUDbmlsBQNuaWwFAWUEAmJLCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQJiSgAFAhxjb3VsZG4ndCBwYXJzZSBtaW5SZXdhcmRQYXJ0BAJiTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUCYkoABgIeY291bGRuJ3QgcGFyc2UgYm9vc3RSZXdhcmRQYXJ0BAJiTQkAkQMCBQJiSgAHBAJiTgMJAAACBQJiTAAACQBoAgABBQFiCQBrAwkAZAIFAmJLBQJiTAUBYgUCYksJAJQKAgUDbmlsCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVzCQDMCAIJAKQDAQUCYmkJAMwIAgkApAMBBQJibgkAzAgCCQCkAwEFAmJvCQDMCAIJAKQDAQUCYkkJAMwIAgkApAMBBQJiTgkAzAgCBQJiTQUDbmlsBQFlAmJCAR1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQcCYk8CYlACYlECYlICYlMCYlQCYlUDCQAAAgUCYk8JAJADAQUCYlAJAJQKAgUDbmlsBQJiVQQCYlYJAJEDAgUCYlAFAmJPBAJiVwkAkQMCBQJiUQUCYk8EAmJYCQCRAwIFAmJSBQJiTwQCYlkJAJEDAgUCYlMFAmJPBAJiWgoAAmJiCQD8BwQFBHRoaXMCEWNhbGNCb29zdFJFQURPTkxZCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJZCQDMCAIFAmJUBQNuaWwFA25pbAMJAAECBQJiYgIGU3RyaW5nBQJiYgkAAgEJAKwCAgkAAwEFAmJiAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmNhCQDNCAIFAmJVBQJiWgQCY2IKAAJiYgkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCCQBkAgUCYk8AAQkAzAgCBQJiUAkAzAgCBQJiUQkAzAgCBQJiUgkAzAgCBQJiUwkAzAgCBQJiVAkAzAgCBQJjYQUDbmlsBQNuaWwDCQABAgUCYmICCUxpc3RbQW55XQUCYmIJAAIBCQCsAgIJAAMBBQJiYgIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldAwkAAAIFAmNiBQJjYgkAlAoCBQNuaWwFAmNiCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJCARVjYWxjQm9vc3RCdWxrUkVBRE9OTFkFAmJWAmJXAmJYAmJZAmJUBAJjYQkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgUCYlkJAMwIAgUCYlQJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNhAmJCARFjYWxjQm9vc3RSRUFET05MWQUCYlYCYlcCYlgCYlkCYlQEAmNjCgACYmIJAPwHBAUCYVcCFWdldEJvb3N0Q29lZmZSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYmICA0ludAUCYmIJAAIBCQCsAgIJAAMBBQJiYgIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJjZAUCYVgEAmNlAgVlbXB0eQQCY2YJAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIJAQF0AgUCYVkJAQJhaQAFAWUABAQCYUkDCQAAAgUCYlkCAAUCY2UFAmJZBAJhSAMJAAACBQJiVAIABQJjZQUCYlQEAmNnCQELdmFsdWVPckVsc2UCCQCdCAIFAmFZCQECYW4BBQJiVAUCY2UEAmNoCQELdmFsdWVPckVsc2UCCQCaCAIFAmFZCQECYXIBBQJjZwAABAJjaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhWQkBAmF0AQUCY2cFBmhlaWdodAQCYnIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYVkJAQJhdQEFAmNnAAAEAmNqCQBkAgUCY2kFAmJyBAJjawkAlgMBCQDMCAIJAGUCBQJjagUGaGVpZ2h0CQDMCAIAAAUDbmlsBAJjbAkAZAIFAmNoBQJiVgQCY20JAJcDAQkAzAgCCQBkAgUCY2sFAmJXCQDMCAIFAmNmBQNuaWwEAmNuCQEBQgEJAJEDAgkBAXgBCQD8BwQFAmFZAhNnd3hVc2VySW5mb1JFQURPTkxZCQDMCAIFAmFIBQNuaWwFA25pbAAABAJjbwkAkQMCCQECYnADBQJjbAUCY20FAmNmAAAEAmNwCgACYmIJAPwHBAUCYVkCGWdldFRvdGFsQ2FjaGVkR3d4UkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCY3EA6AcEAmNyCQBoAgkBAXcCBQJhVwkBAmFQAAUCY3EEAmNzCQECYUcCBQJhSAUCYUkEAmN0CQECYUoBBQJhSQQCY3UJAQJhTgIFAmFPBQJjcwQCY3YJAQJhTgIFAmFPBQJjdAQCYmgDCQECIT0CBQJhSQUCY2UEAmJmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVUJAQFQAQUCYUkJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhSQkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVUJAQFUAQUCYmYAAAQCY3cJAGsDBQJjcgUCYmgJAGgCBQFmBQJjYwQCY3gDCQECIT0CBQJjdgAACQBrAwUCY3cFAWIFAmN2AAAEAmN5CQBrAwUCY3gFAmN1BQFiBAJjegkAaAIFAmN3CQBlAgUCY2MAAQQCY0EJAGsDBQJjbgUCY3oFAmNwBAJjQgkAlwMBCQDMCAIFAmNBCQDMCAIJAGgCBQJjeQkAZQIFAmNjAAEFA25pbAQCY0MDCQAAAgUCY3kAAAkAaAIAAQUBYgkAawMJAGQCBQJjQgUCY3kFAWIFAmN5CQCUCgIFA25pbAkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmNvCQDMCAIJAKQDAQUCY0MJAMwIAgIBZAUDbmlsBQFlAmJCARd3eEVtaXNzaW9uU3RhdHNSRUFET05MWQAEAmNECQCkAwEFAWIEAmNFAgExBAJiaQkBAXcCBQJhVwkBAmFQAAQCY0YJAQF3AgUCYVcJAQJhUgAEAmNHAwkAZgIFAmNGBQZoZWlnaHQAAAkAZQIFBmhlaWdodAUCY0YEAmNICQBoAgCgCwDtAgQCY0kJAGgCAMCI7F8FAWIEAmNKAwkAZgIFAmNHBQJjSAUCY0kJAGsDBQJjSQUCY0cFAmNIBAJjSwkAZAIJAGgCBQJiaQUCY0cFAmNKBAJjTAkBAXYCBQJhWQkBAmFqAAQCY00JAQF2AgUCYVkJAQJhawAEAmNOCQEBdgIFAmFZCQECYWwACQCUCgIFA25pbAkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUCY0sJAMwIAgkApAMBBQJjTAkAzAgCCQCkAwEFAmNNCQDMCAIJAKQDAQUCY04FA25pbAUBZQJiQgERcG9vbFN0YXRzUkVBRE9OTFkBAmNPBAJiYQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAXQCBQJhVQkBAVMBBQJjTwQCY1AKAAJiYgkA/AcEBQJhVQIVZ2V0UG9vbFN0YXR1c1JFQURPTkxZCQDMCAIJAKUIAQUCYmEFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCY1ECFCVkJWQlZCVkJWQlZCVkJWQlZCVzAwkAAAIFAmNQAAQJAJQKAgUDbmlsCQC5CQIJAMwIAgUCY1EJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApAMBAAAJAMwIAgkApQMBBwUDbmlsBQFlBAJjUgkBAXgBCQD8BwQFAmJhAhxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZBQNuaWwFA25pbAQCYmUJANkEAQkBAUQBCQCRAwIFAmNSBQFqBAJjUwkBAUQBCQCRAwIFAmNSBQFrBAJjVAkBAUQBCQCRAwIFAmNSBQFsBAJjVQkBAUQBCQCRAwIFAmNSBQFvBAJjVgkBAUQBCQCRAwIFAmNSBQFwBAJjVwkBDXBhcnNlSW50VmFsdWUBCQEBRAEJAJEDAgUCY1IFAW0EAmNYCQENcGFyc2VJbnRWYWx1ZQEJAQFEAQkAkQMCBQJjUgUBbgQCY1kICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYmUJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYmUCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjWgkBAUIBCQD8BwQFAmJhAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmNTBQNuaWwFA25pbAQCZGEJAQFCAQkA/AcEBQJiYQIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQJjVAUDbmlsBQNuaWwEAmRiAwkAAAIFAmNZAAAJAMwIAgkApgMBBQFnCQDMCAIJAKYDAQUBZwkAzAgCCQCmAwEFAWcFA25pbAkBAXgBCQD8BwQFAmJhAhljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZCQDMCAIFAmNaCQDMCAIFAmRhCQDMCAIFAmNZBQNuaWwFA25pbAQCZGMAAAQCZGQJAQFCAQkA/AcEBQJiYQIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCRAwIFAmRiAAEJAMwIAgUBYgUDbmlsBQNuaWwEAmRlCQEBQgEJAPwHBAUCYmECFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkAkQMCBQJkYgACCQDMCAIFAWIFA25pbAUDbmlsBAJiaAkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVUJAQFUAQkApQgBBQJiYQQCZGYJAQJhWgEFAmJhBAJkZwkBAmJjAQUCYmEEAmRoCgACYmIJAPwHBAUCYVUCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQJiYQUDbmlsBQNuaWwDCQABAgUCYmICB0Jvb2xlYW4FAmJiCQACAQkArAICCQADAQUCYmICHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmRpCQEBIQEFAmRoBAJkagkBASEBCgACYmIJAPwHBAUCYVUCGmlzUG9vbFN3YXBEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUCYmEFA25pbAUDbmlsAwkAAQIFAmJiAgdCb29sZWFuBQJiYgkAAgEJAKwCAgkAAwEFAmJiAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuCQCUCgIFA25pbAkAuQkCCQDMCAIFAmNRCQDMCAIJAKQDAQUCY1oJAMwIAgkApAMBBQJkYQkAzAgCCQCkAwEFAmNZCQDMCAIJAKQDAQUCZGMJAMwIAgkApAMBBQJkZAkAzAgCCQCkAwEFAmRlCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJkZgkAzAgCCQCkAwEFAmRnCQDMCAIJAKUDAQUCZGkJAMwIAgkApQMBBQJkagUDbmlsBQFlAmJCASRwb29sRXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkCAmNPAmRrBAJiYQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAXQCBQJhVQkBAVMBBQJjTwQCY1IJAQF4AQkA/AcEBQJiYQIcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQUDbmlsBQNuaWwEAmJlCQDZBAEJAQFEAQkAkQMCBQJjUgUBagQCZGwJAQFEAQkAkQMCBQJjUgUBawQCZG0JANkEAQUCZGwEAmRuCQEBRAEJAJEDAgUCY1IFAWwEAmRvCQDZBAEFAmRuBAJjVwkBDXBhcnNlSW50VmFsdWUBCQEBRAEJAJEDAgUCY1IFAW0EAmNYCQENcGFyc2VJbnRWYWx1ZQEJAQFEAQkAkQMCBQJjUgUBbgQCZHAJAQFEAQkAkQMCBQJjUgUBaQQCY1kICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYmUJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYmUCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjWgkBAUIBCQD8BwQFAmJhAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmRsBQNuaWwFA25pbAQCZGEJAQFCAQkA/AcEBQJiYQIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQJkbgUDbmlsBQNuaWwEAmRxCQCnAwEJAQFEAQkA/AcEBQJiYQIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUCY1oJAMwIAgUCY1cFA25pbAUDbmlsBAJkcgkApwMBCQEBRAEJAPwHBAUCYmECFHRvWDE4V3JhcHBlclJFQURPTkxZCQDMCAIFAmRhCQDMCAIFAmNYBQNuaWwFA25pbAQCZHMDCQAAAgUCY1kAAAUBZwkApwMBCQEBRAEJAPwHBAUCYmECHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFAmRyCQDMCAIJAKYDAQUCZHEFA25pbAUDbmlsBAJkYwkBAUIBCQD8BwQFAmJhAhZmcm9tWDE4V3JhcHBlclJFQURPTkxZCQDMCAIJAKYDAQUCZHMJAMwIAgUBYgUDbmlsBQNuaWwEAmR0CQCnAwEJAQFEAQkA/AcEBQJiYQIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZGsJAMwIAgUCY1cFA25pbAUDbmlsBAJkdQkAvAIDBQJkdAUCZHMFAWQEAmR2CQEBQgEJAPwHBAUCYmECFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkApgMBBQJkdQkAzAgCBQJjWAUDbmlsBQNuaWwEAmNhCQD8BwQFAmJhAiNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkAzAgCAgAJAMwIAgCgwh4JAMwIAgUCZGsJAMwIAgUCZG0JAMwIAgUCZHYJAMwIAgUCZG8JAMwIAgIACQDMCAIGCQDMCAIHBQNuaWwFA25pbAQCZHcEAXoFAmNhAwMDCQABAggFAXoCXzECA0ludAMGAwkAAQIIBQF6Al8zAgNJbnQDCQABAggFAXoCXzQCA0ludAMJAAECCAUBegJfNQIDSW50AwkAAQIIBQF6Al82AgNJbnQDBgMGAwYDBgMGAwYGBwcHBwcHBwcHBwcHCQAAAgkAxgoBBQF6AA0HBAJkeAgFAXoCXzEEAmR5CAUBegJfMwQCZHoIBQF6Al80BAJkQQgFAXoCXzUEAmRCCAUBegJfNgkAlwoFBQJkeAUCZHkFAmR6BQJkQQUCZEIJAAIBAhNDb3VsZG4ndCBjYXN0IHR5cGVzBAJkeAgFAmR3Al8xBAJkeQgFAmR3Al8yBAJkeggFAmR3Al8zBAJkQQgFAmR3Al80BAJkQggFAmR3Al81CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJkeAkAzAgCCQCkAwEFAmRjCQDMCAIJAKQDAQUCZHoJAMwIAgkApAMBBQJkQQkAzAgCCQCkAwEFAmRCCQDMCAIFAmRwCQDMCAIJAKQDAQUCZGsJAMwIAgkApAMBBQJkdgUDbmlsBQFlAmJCASNwb29sRXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQICY08CZHYEAmJhCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBdAIFAmFVCQEBUwEFAmNPBAJjUgkBAXgBCQD8BwQFAmJhAhxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZBQNuaWwFA25pbAQCYmUJANkEAQkBAUQBCQCRAwIFAmNSBQFqBAJkbAkBAUQBCQCRAwIFAmNSBQFrBAJkbQkA2QQBBQJkbAQCZG4JAQFEAQkAkQMCBQJjUgUBbAQCZG8JANkEAQUCZG4EAmNXCQENcGFyc2VJbnRWYWx1ZQEJAQFEAQkAkQMCBQJjUgUBbQQCY1gJAQ1wYXJzZUludFZhbHVlAQkBAUQBCQCRAwIFAmNSBQFuBAJkcAkBAUQBCQCRAwIFAmNSBQFpBAJjWQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiZQkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiZQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRDCQEBQgEJAPwHBAUCYmECHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZGwFA25pbAUDbmlsBAJkRAkBAUIBCQD8BwQFAmJhAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmRuBQNuaWwFA25pbAQCZEUJAKcDAQkBAUQBCQD8BwQFAmJhAhR0b1gxOFdyYXBwZXJSRUFET05MWQkAzAgCBQJkQwkAzAgCBQJjVwUDbmlsBQNuaWwEAmRGCQCnAwEJAQFEAQkA/AcEBQJiYQIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZEQJAMwIAgUCY1gFA25pbAUDbmlsBAJkcwMJAAACBQJjWQAABQFnCQCnAwEJAQFEAQkA/AcEBQJiYQIeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZCQDMCAIJAKYDAQUCZEYJAMwIAgkApgMBBQJkRQUDbmlsBQNuaWwEAmRjCQEBQgEJAPwHBAUCYmECFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkApgMBBQJkcwkAzAgCBQFiBQNuaWwFA25pbAQCZHUJAKcDAQkBAUQBCQD8BwQFAmJhAhR0b1gxOFdyYXBwZXJSRUFET05MWQkAzAgCBQJkdgkAzAgCBQJjWAUDbmlsBQNuaWwEAmR0CQC8AgMFAmR1BQFkBQJkcwQCZGsJAQFCAQkA/AcEBQJiYQIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFAmR0CQDMCAIFAmNXBQNuaWwFA25pbAQCY2EJAPwHBAUCYmECI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQDMCAICAAkAzAgCAKDCHgkAzAgCBQJkawkAzAgCBQJkbQkAzAgCBQJkdgkAzAgCBQJkbwkAzAgCAgAJAMwIAgYJAMwIAgcFA25pbAUDbmlsBAJkRwQBegUCY2EDAwMJAAECCAUBegJfMQIDSW50AwYDCQABAggFAXoCXzMCA0ludAMJAAECCAUBegJfNAIDSW50AwkAAQIIBQF6Al81AgNJbnQDCQABAggFAXoCXzYCA0ludAMGAwYDBgMGAwYDBgYHBwcHBwcHBwcHBwcJAAACCQDGCgEFAXoADQcEAmR4CAUBegJfMQQCZHkIBQF6Al8zBAJkeggFAXoCXzQEAmRBCAUBegJfNQQCZEIIBQF6Al82CQCXCgUFAmR4BQJkeQUCZHoFAmRBBQJkQgkAAgECE0NvdWxkbid0IGNhc3QgdHlwZXMEAmR4CAUCZEcCXzEEAmR5CAUCZEcCXzIEAmR6CAUCZEcCXzMEAmRBCAUCZEcCXzQEAmRCCAUCZEcCXzUJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmR4CQDMCAIJAKQDAQUCZGMJAMwIAgkApAMBBQJkegkAzAgCCQCkAwEFAmRBCQDMCAIJAKQDAQUCZEIJAMwIAgUCZHAJAMwIAgkApAMBBQJkawkAzAgCCQCkAwEFAmR2BQNuaWwFAWUCYkIBF3Bvb2xFdmFsdWF0ZUdldFJFQURPTkxZAgJkSAJkSQQCYmEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQF0AgUCYVUJAQFTAQUCZEgEAmNhCQD8BwQFAmJhAiNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkAzAgCAgAJAMwIAgUCZEgJAMwIAgUCZEkJAMwIAgkApQgBBQJiYQUDbmlsBQNuaWwEAmRKBAF6BQJjYQMDAwkAAQIIBQF6Al8xAgNJbnQDCQABAggFAXoCXzICA0ludAMGAwYDCQABAggFAXoCXzUCA0ludAMJAAECCAUBegJfNgIDSW50AwkAAQIIBQF6Al83AgNJbnQDCQABAggFAXoCXzgCBlN0cmluZwMJAAECCAUBegJfOQIGU3RyaW5nBgcHBwcHBwcHBwkAAAIJAMYKAQUBegAKBwQCZEsIBQF6Al8xBAJkTAgFAXoCXzIEAmR6CAUBegJfNQQCZEEIBQF6Al82BAJkQggFAXoCXzcEAmRjCAUBegJfOAQCZHAIBQF6Al85CQCZCgcFAmRLBQJkTAUCZHoFAmRBBQJkQgUCZGMFAmRwCQACAQITQ291bGRuJ3QgY2FzdCB0eXBlcwQCZEsIBQJkSgJfMQQCZEwIBQJkSgJfMgQCZHoIBQJkSgJfMwQCZEEIBQJkSgJfNAQCZEIIBQJkSgJfNQQCZGMIBQJkSgJfNgQCZHAIBQJkSgJfNwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmRLCQDMCAIJAKQDAQUCZEwJAMwIAgkApAMBBQJkegkAzAgCCQCkAwEFAmRBCQDMCAIJAKQDAQUCZEIJAMwIAgUCZGMJAMwIAgUCZHAFA25pbAUBZQJiQgETZ3d4VXNlckluZm9SRUFET05MWQECYW8EAmRNCQEBeAEJAPwHBAUCYVkCE2d3eFVzZXJJbmZvUkVBRE9OTFkJAMwIAgUCYW8FA25pbAUDbmlsBAJkTgkBAUIBCQCRAwIFAmRNAAAJAJQKAgUDbmlsCQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQJkTgUDbmlsBQFlAmJCARV1bnN0YWtlQW5kR2V0T25lVGtuVjIEAmJhAmRPAmRQAmRRBAJjYgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJiYQIVdW5zdGFrZUFuZEdldE9uZVRrblYyCQDMCAIFAmRPCQDMCAIFAmRQCQDMCAIFAmRRBQNuaWwFA25pbAMJAAACBQJjYgUCY2IJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJCARNnZXRLZXlzQnVsa0ludGVybmFsAwJiTwJkUgJiVQMJAAACBQJiTwkAkAMBBQJkUgkAlAoCBQNuaWwFAmJVBAJkUwkAtQkCCQCRAwIFAmRSBQJiTwICKysEAmJ3CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmRTAAAEAXMJAJEDAgUCZFMAAQQCYngJAJEDAgUCZFMAAgQBeQkBAmJ2AwUCYncFAXMFAmJ4BAJjYQkAzQgCBQJiVQUBeQQCY2IJAPwHBAUEdGhpcwITZ2V0S2V5c0J1bGtJbnRlcm5hbAkAzAgCCQBkAgUCYk8AAQkAzAgCBQJkUgkAzAgCBQJjYQUDbmlsBQNuaWwDCQAAAgUCY2IFAmNiCQCUCgIFA25pbAUCY2IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkIBC2dldEtleXNCdWxrAQJkUgQCY2EJAPwHBAUEdGhpcwITZ2V0S2V5c0J1bGtJbnRlcm5hbAkAzAgCAAAJAMwIAgUCZFIJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNhAQJkVAECZFUABAJkVgQBegkBAmJ5AAMJAAECBQF6AgpCeXRlVmVjdG9yBAJiQwUBegUCYkMDCQABAgUBegIEVW5pdAgFAmRUD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJkVAlib2R5Qnl0ZXMJAJEDAggFAmRUBnByb29mcwAABQJkVuGMOQI=", "height": 2903727, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9Y4qWsaqmDnRcXxdJeSz8TRMwAcVs45ZfvDm2Rh7RwdT Next: none Diff:
OldNewDifferences
587587 let dw = {
588588 let z = ca
589589 if (if (if ($isInstanceOf(z._1, "Int"))
590- then if ($isInstanceOf(z._3, "Int"))
591- then if ($isInstanceOf(z._4, "Int"))
592- then if ($isInstanceOf(z._5, "Int"))
593- then $isInstanceOf(z._6, "Int")
590+ then if (true)
591+ then if ($isInstanceOf(z._3, "Int"))
592+ then if ($isInstanceOf(z._4, "Int"))
593+ then if ($isInstanceOf(z._5, "Int"))
594+ then if ($isInstanceOf(z._6, "Int"))
595+ then if (true)
596+ then if (true)
597+ then if (true)
598+ then if (true)
599+ then if (true)
600+ then if (true)
601+ then true
602+ else false
603+ else false
604+ else false
605+ else false
606+ else false
607+ else false
608+ else false
609+ else false
594610 else false
595611 else false
596612 else false
645661 let dG = {
646662 let z = ca
647663 if (if (if ($isInstanceOf(z._1, "Int"))
648- then if ($isInstanceOf(z._3, "Int"))
649- then if ($isInstanceOf(z._4, "Int"))
650- then if ($isInstanceOf(z._5, "Int"))
651- then $isInstanceOf(z._6, "Int")
664+ then if (true)
665+ then if ($isInstanceOf(z._3, "Int"))
666+ then if ($isInstanceOf(z._4, "Int"))
667+ then if ($isInstanceOf(z._5, "Int"))
668+ then if ($isInstanceOf(z._6, "Int"))
669+ then if (true)
670+ then if (true)
671+ then if (true)
672+ then if (true)
673+ then if (true)
674+ then if (true)
675+ then true
676+ else false
677+ else false
678+ else false
679+ else false
680+ else false
681+ else false
682+ else false
683+ else false
652684 else false
653685 else false
654686 else false
683715 let z = ca
684716 if (if (if ($isInstanceOf(z._1, "Int"))
685717 then if ($isInstanceOf(z._2, "Int"))
686- then if ($isInstanceOf(z._5, "Int"))
687- then if ($isInstanceOf(z._6, "Int"))
688- then if ($isInstanceOf(z._7, "Int"))
689- then if ($isInstanceOf(z._8, "String"))
690- then $isInstanceOf(z._9, "String")
718+ then if (true)
719+ then if (true)
720+ then if ($isInstanceOf(z._5, "Int"))
721+ then if ($isInstanceOf(z._6, "Int"))
722+ then if ($isInstanceOf(z._7, "Int"))
723+ then if ($isInstanceOf(z._8, "String"))
724+ then if ($isInstanceOf(z._9, "String"))
725+ then true
726+ else false
727+ else false
728+ else false
691729 else false
692730 else false
693731 else false
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 = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = 1
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 5
2727
2828 let m = 6
2929
3030 let n = 7
3131
3232 let o = 8
3333
3434 let p = 9
3535
3636 let q = 10
3737
3838 func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3939
4040
4141 func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4242
4343
4444 func v (u,s) = valueOrElse(getInteger(u, s), 0)
4545
4646
4747 func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4848
4949
5050 func x (y) = {
5151 let z = y
5252 if ($isInstanceOf(z, "List[Any]"))
5353 then {
5454 let A = z
5555 A
5656 }
5757 else throw("fail to cast into List[Any]")
5858 }
5959
6060
6161 func B (y) = {
6262 let z = y
6363 if ($isInstanceOf(z, "Int"))
6464 then {
6565 let C = z
6666 C
6767 }
6868 else throw("fail to cast into Int")
6969 }
7070
7171
7272 func D (y) = {
7373 let z = y
7474 if ($isInstanceOf(z, "String"))
7575 then {
7676 let E = z
7777 E
7878 }
7979 else throw("fail to cast into String")
8080 }
8181
8282
8383 func F () = "%s%s__config__factoryAddress"
8484
8585
8686 let G = 1
8787
8888 let H = 2
8989
9090 let I = 3
9191
9292 let J = 4
9393
9494 let K = 5
9595
9696 let L = 6
9797
9898 let M = 7
9999
100100 let N = 8
101101
102102 func O () = "%s__factoryConfig"
103103
104104
105105 func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
106106
107107
108108 func R () = "%s__lpTokensList"
109109
110110
111111 func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
112112
113113
114114 func T (U) = makeString(["%s%s", "poolWeight", U], e)
115115
116116
117117 func V () = "%s__managerVaultAddress"
118118
119119
120120 func W () = "%s__managerPublicKey"
121121
122122
123123 func X () = addressFromStringValue(r(F()))
124124
125125
126126 func Y () = split(valueOrElse(getString(X(), R()), ""), e)
127127
128128
129129 func Z (aa) = split(t(aa, O()), e)
130130
131131
132132 func ab (ac) = addressFromStringValue(ac[H])
133133
134134
135135 func ad (ac) = addressFromStringValue(ac[K])
136136
137137
138138 func ae (ac) = addressFromStringValue(ac[G])
139139
140140
141141 func af (ac) = addressFromStringValue(ac[N])
142142
143143
144144 func ag () = {
145145 let z = getString(V())
146146 if ($isInstanceOf(z, "String"))
147147 then {
148148 let ah = z
149149 addressFromStringValue(ah)
150150 }
151151 else this
152152 }
153153
154154
155155 func ai () = "%s__config"
156156
157157
158158 func aj () = "%s%s__stats__activeTotalLocked"
159159
160160
161161 func ak () = "%s%s__stats__locksDurationSumInBlocks"
162162
163163
164164 func al () = "%s%s__stats__locksCount"
165165
166166
167167 func am () = "%s%s__stats__activeUsersCount"
168168
169169
170170 func an (ao) = makeString(["%s%s%s__mapping__user2num", ao], e)
171171
172172
173173 func ap (aq) = makeString(["%s%s%s__mapping__num2user", aq], e)
174174
175175
176176 func ar (as) = makeString(["%s%d%s__paramByUserNum", as, "amount"], e)
177177
178178
179179 func at (as) = makeString(["%s%d%s__paramByUserNum", as, "start"], e)
180180
181181
182182 func au (as) = makeString(["%s%d%s__paramByUserNum", as, "duration"], e)
183183
184184
185185 func av (as) = makeString(["%s%d%s__paramByUserNum", as, "k"], e)
186186
187187
188188 func aw (as) = makeString(["%s%d%s__paramByUserNum", as, "b"], e)
189189
190190
191191 func ax (as,ay) = makeString(["%s%d%s%d__paramByPeriod", as, "k", ay], e)
192192
193193
194194 func az (as,ay) = makeString(["%s%d%s%d__paramByPeriod", as, "b", ay], e)
195195
196196
197197 func aA (as) = makeString(["%s%d__userBoostEmissionLastInt", as], e)
198198
199199
200200 func aB (as) = makeString(["%s%d__maxBoostInt", as], e)
201201
202202
203203 func aC () = "%s%s__maxBoostInt__total"
204204
205205
206206 func aD (as) = makeString(["%s%d__userBoostAvaliableToClaimTotal", as], e)
207207
208208
209209 func aE (as) = makeString(["%s%d__userBoostClaimed", as], e)
210210
211211
212212 func aF () = "%s%s__gwxCached__total"
213213
214214
215215 func aG (aH,aI) = makeString(["%s%s%s__staked", aH, aI], e)
216216
217217
218218 func aJ (aI) = ("%s%s%s__staked__total__" + aI)
219219
220220
221221 func aK (aI,aH) = makeString(["%s%s%s__claimed", aH, aI], e)
222222
223223
224224 func aL (aI,aH) = makeString(["%s%s%s__claimedMinReward", aH, aI], e)
225225
226226
227227 func aM (aI,aH) = makeString(["%s%s%s__claimedBoostReward", aH, aI], e)
228228
229229
230230 func aN (aO,s) = valueOrElse(getInteger(aO, s), 0)
231231
232232
233233 func aP () = "%s%s__ratePerBlock__current"
234234
235235
236236 func aQ () = "%s%s__ratePerBlockMax__current"
237237
238238
239239 func aR () = "%s%s__emission__startBlock"
240240
241241
242242 func aS () = "%s%s__emission__duration"
243243
244244
245245 func aT () = "%s%s__emission__endBlock"
246246
247247
248248 let aU = X()
249249
250250 let aV = Z(aU)
251251
252252 let aW = ad(aV)
253253
254254 let aO = ae(aV)
255255
256256 let aX = af(aV)
257257
258258 let aY = ab(aV)
259259
260260 func aZ (ba) = {
261261 let bb = invoke(aU, "getInFeeREADONLY", [toString(ba)], nil)
262262 if ($isInstanceOf(bb, "Int"))
263263 then bb
264264 else throw(($getType(bb) + " couldn't be cast to Int"))
265265 }
266266
267267
268268 func bc (ba) = {
269269 let bb = invoke(aU, "getOutFeeREADONLY", [toString(ba)], nil)
270270 if ($isInstanceOf(bb, "Int"))
271271 then bb
272272 else throw(($getType(bb) + " couldn't be cast to Int"))
273273 }
274274
275275
276276 func bd (be) = {
277277 let bf = t(aU, S(be))
278278 let bg = b
279279 let bh = getIntegerValue(aU, T(bf))
280280 let bi = w(aW, aP())
281281 let bj = w(aW, aQ())
282282 let bk = {
283283 let bb = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
284284 if ($isInstanceOf(bb, "Int"))
285285 then bb
286286 else throw(($getType(bb) + " couldn't be cast to Int"))
287287 }
288288 let bl = (fraction(bi, bh, bg) / bk)
289289 let bm = fraction(bj, bh, bg)
290290 let bn = (bk * b)
291291 let bo = v(aO, aJ(be))
292292 [bl, bn, bo]
293293 }
294294
295295
296296 func bp (bq,br,bs) = {
297297 let bt = fraction(br, b, bs)
298298 let bu = fraction(bq, bt, b)
299299 [bu]
300300 }
301301
302302
303303 func bv (bw,s,bx) = if ((bx == "string"))
304304 then getStringValue(bw, s)
305305 else if ((bx == "integer"))
306306 then toString(getIntegerValue(bw, s))
307307 else if ((bx == "boolean"))
308308 then toString(getBooleanValue(bw, s))
309309 else throw("unknown type. expected string/integer/boolean")
310310
311311
312312 func by () = {
313313 let bz = ag()
314314 let z = getString(bz, W())
315315 if ($isInstanceOf(z, "String"))
316316 then {
317317 let ah = z
318318 fromBase58String(ah)
319319 }
320320 else if ($isInstanceOf(z, "Unit"))
321321 then unit
322322 else throw("Match error")
323323 }
324324
325325
326326 func bA (bB) = {
327327 let z = by()
328328 if ($isInstanceOf(z, "ByteVector"))
329329 then {
330330 let bC = z
331331 (bB.callerPublicKey == bC)
332332 }
333333 else if ($isInstanceOf(z, "Unit"))
334334 then (bB.caller == this)
335335 else throw("Match error")
336336 }
337337
338338
339339 func bD (bB) = if (bA(bB))
340340 then true
341341 else throw("permission denied")
342342
343343
344344 @Callable(bB)
345345 func constructor (bE) = {
346346 let bF = bD(bB)
347347 if ((bF == bF))
348348 then [StringEntry(F(), bE)]
349349 else throw("Strict value is not equal to itself.")
350350 }
351351
352352
353353
354354 @Callable(bB)
355355 func currentRewardRateREADONLY (be) = {
356356 let bG = bd(be)
357357 let bi = bG[0]
358358 let bn = bG[1]
359359 let bo = bG[2]
360360 let bH = {
361361 let bb = invoke(aY, "getVotingResultStakedREADONLY", [be], nil)
362362 if ($isInstanceOf(bb, "Int"))
363363 then bb
364364 else throw(($getType(bb) + " couldn't be cast to Int"))
365365 }
366366 $Tuple2(nil, makeString(["%d%d%d%d", toString(bi), toString(bn), toString(bo), toString(bH)], e))
367367 }
368368
369369
370370
371371 @Callable(bB)
372372 func currentUserRewardRateREADONLY (be,ao) = {
373373 let bG = bd(be)
374374 let bi = bG[0]
375375 let bn = bG[1]
376376 let bo = bG[2]
377377 let bI = v(aO, aG(ao, be))
378378 let bJ = split(D(invoke(aO, "claimWxREADONLY", [be, ao], nil)), e)
379379 let bK = valueOrErrorMessage(parseInt(bJ[5]), "couldn't parse minRewardPart")
380380 let bL = valueOrErrorMessage(parseInt(bJ[6]), "couldn't parse boostRewardPart")
381381 let bM = bJ[7]
382382 let bN = if ((bL == 0))
383383 then (1 * b)
384384 else fraction((bK + bL), b, bK)
385385 $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bi), toString(bn), toString(bo), toString(bI), toString(bN), bM], e))
386386 }
387387
388388
389389
390390 @Callable(bB)
391391 func calcBoostBulkInternalREADONLY (bO,bP,bQ,bR,bS,bT,bU) = if ((bO == size(bP)))
392392 then $Tuple2(nil, bU)
393393 else {
394394 let bV = bP[bO]
395395 let bW = bQ[bO]
396396 let bX = bR[bO]
397397 let bY = bS[bO]
398398 let bZ = {
399399 let bb = invoke(this, "calcBoostREADONLY", [bV, bW, bX, bY, bT], nil)
400400 if ($isInstanceOf(bb, "String"))
401401 then bb
402402 else throw(($getType(bb) + " couldn't be cast to String"))
403403 }
404404 let ca = (bU :+ bZ)
405405 let cb = {
406406 let bb = invoke(this, "calcBoostBulkInternalREADONLY", [(bO + 1), bP, bQ, bR, bS, bT, ca], nil)
407407 if ($isInstanceOf(bb, "List[Any]"))
408408 then bb
409409 else throw(($getType(bb) + " couldn't be cast to List[Any]"))
410410 }
411411 if ((cb == cb))
412412 then $Tuple2(nil, cb)
413413 else throw("Strict value is not equal to itself.")
414414 }
415415
416416
417417
418418 @Callable(bB)
419419 func calcBoostBulkREADONLY (bV,bW,bX,bY,bT) = {
420420 let ca = invoke(this, "calcBoostBulkInternalREADONLY", [0, bV, bW, bX, bY, bT, nil], nil)
421421 $Tuple2(nil, ca)
422422 }
423423
424424
425425
426426 @Callable(bB)
427427 func calcBoostREADONLY (bV,bW,bX,bY,bT) = {
428428 let cc = {
429429 let bb = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
430430 if ($isInstanceOf(bb, "Int"))
431431 then bb
432432 else throw(($getType(bb) + " couldn't be cast to Int"))
433433 }
434434 let cd = aX
435435 let ce = "empty"
436436 let cf = parseIntValue(split(t(aY, ai()), e)[4])
437437 let aI = if ((bY == ""))
438438 then ce
439439 else bY
440440 let aH = if ((bT == ""))
441441 then ce
442442 else bT
443443 let cg = valueOrElse(getString(aY, an(bT)), ce)
444444 let ch = valueOrElse(getInteger(aY, ar(cg)), 0)
445445 let ci = valueOrElse(getInteger(aY, at(cg)), height)
446446 let br = valueOrElse(getInteger(aY, au(cg)), 0)
447447 let cj = (ci + br)
448448 let ck = max([(cj - height), 0])
449449 let cl = (ch + bV)
450450 let cm = min([(ck + bW), cf])
451451 let cn = B(x(invoke(aY, "gwxUserInfoREADONLY", [aH], nil))[0])
452452 let co = bp(cl, cm, cf)[0]
453453 let cp = {
454454 let bb = invoke(aY, "getTotalCachedGwxREADONLY", nil, nil)
455455 if ($isInstanceOf(bb, "Int"))
456456 then bb
457457 else throw(($getType(bb) + " couldn't be cast to Int"))
458458 }
459459 let cq = 1000
460460 let cr = (w(aW, aP()) * cq)
461461 let cs = aG(aH, aI)
462462 let ct = aJ(aI)
463463 let cu = aN(aO, cs)
464464 let cv = aN(aO, ct)
465465 let bh = if ((aI != ce))
466466 then {
467467 let bf = valueOrErrorMessage(getString(aU, P(aI)), ("unsupported lp asset " + aI))
468468 getIntegerValue(aU, T(bf))
469469 }
470470 else 0
471471 let cw = fraction(cr, bh, (f * cc))
472472 let cx = if ((cv != 0))
473473 then fraction(cw, b, cv)
474474 else 0
475475 let cy = fraction(cx, cu, b)
476476 let cz = (cw * (cc - 1))
477477 let cA = fraction(cn, cz, cp)
478478 let cB = min([cA, (cy * (cc - 1))])
479479 let cC = if ((cy == 0))
480480 then (1 * b)
481481 else fraction((cB + cy), b, cy)
482482 $Tuple2(nil, makeString(["%d%d%s", toString(co), toString(cC), "d"], e))
483483 }
484484
485485
486486
487487 @Callable(bB)
488488 func wxEmissionStatsREADONLY () = {
489489 let cD = toString(b)
490490 let cE = "1"
491491 let bi = w(aW, aP())
492492 let cF = w(aW, aR())
493493 let cG = if ((cF > height))
494494 then 0
495495 else (height - cF)
496496 let cH = (1440 * 365)
497497 let cI = (201000000 * b)
498498 let cJ = if ((cG > cH))
499499 then cI
500500 else fraction(cI, cG, cH)
501501 let cK = ((bi * cG) + cJ)
502502 let cL = v(aY, aj())
503503 let cM = v(aY, ak())
504504 let cN = v(aY, al())
505505 $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
506506 }
507507
508508
509509
510510 @Callable(bB)
511511 func poolStatsREADONLY (cO) = {
512512 let ba = addressFromStringValue(t(aU, S(cO)))
513513 let cP = {
514514 let bb = invoke(aU, "getPoolStatusREADONLY", [toString(ba)], nil)
515515 if ($isInstanceOf(bb, "Int"))
516516 then bb
517517 else throw(($getType(bb) + " couldn't be cast to Int"))
518518 }
519519 let cQ = "%d%d%d%d%d%d%d%d%d%s"
520520 if ((cP == 4))
521521 then $Tuple2(nil, makeString([cQ, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
522522 else {
523523 let cR = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
524524 let be = fromBase58String(D(cR[j]))
525525 let cS = D(cR[k])
526526 let cT = D(cR[l])
527527 let cU = D(cR[o])
528528 let cV = D(cR[p])
529529 let cW = parseIntValue(D(cR[m]))
530530 let cX = parseIntValue(D(cR[n]))
531531 let cY = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
532532 let cZ = B(invoke(ba, "getAccBalanceWrapperREADONLY", [cS], nil))
533533 let da = B(invoke(ba, "getAccBalanceWrapperREADONLY", [cT], nil))
534534 let db = if ((cY == 0))
535535 then [toString(g), toString(g), toString(g)]
536536 else x(invoke(ba, "calcPricesWrapperREADONLY", [cZ, da, cY], nil))
537537 let dc = 0
538538 let dd = B(invoke(ba, "fromX18WrapperREADONLY", [db[1], b], nil))
539539 let de = B(invoke(ba, "fromX18WrapperREADONLY", [db[2], b], nil))
540540 let bh = getIntegerValue(aU, T(toString(ba)))
541541 let df = aZ(ba)
542542 let dg = bc(ba)
543543 let dh = {
544544 let bb = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(ba)], nil)
545545 if ($isInstanceOf(bb, "Boolean"))
546546 then bb
547547 else throw(($getType(bb) + " couldn't be cast to Boolean"))
548548 }
549549 let di = !(dh)
550550 let dj = !({
551551 let bb = invoke(aU, "isPoolSwapDisabledREADONLY", [toString(ba)], nil)
552552 if ($isInstanceOf(bb, "Boolean"))
553553 then bb
554554 else throw(($getType(bb) + " couldn't be cast to Boolean"))
555555 })
556556 $Tuple2(nil, makeString([cQ, toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(bh), toString(df), toString(dg), toString(di), toString(dj)], e))
557557 }
558558 }
559559
560560
561561
562562 @Callable(bB)
563563 func poolEvaluatePutByAmountAssetREADONLY (cO,dk) = {
564564 let ba = addressFromStringValue(t(aU, S(cO)))
565565 let cR = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
566566 let be = fromBase58String(D(cR[j]))
567567 let dl = D(cR[k])
568568 let dm = fromBase58String(dl)
569569 let dn = D(cR[l])
570570 let do = fromBase58String(dn)
571571 let cW = parseIntValue(D(cR[m]))
572572 let cX = parseIntValue(D(cR[n]))
573573 let dp = D(cR[i])
574574 let cY = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
575575 let cZ = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dl], nil))
576576 let da = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dn], nil))
577577 let dq = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [cZ, cW], nil)))
578578 let dr = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [da, cX], nil)))
579579 let ds = if ((cY == 0))
580580 then g
581581 else parseBigIntValue(D(invoke(ba, "calcPriceBigIntWrapperREADONLY", [toString(dr), toString(dq)], nil)))
582582 let dc = B(invoke(ba, "fromX18WrapperREADONLY", [toString(ds), b], nil))
583583 let dt = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dk, cW], nil)))
584584 let du = fraction(dt, ds, d)
585585 let dv = B(invoke(ba, "fromX18WrapperREADONLY", [toString(du), cX], nil))
586586 let ca = invoke(ba, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
587587 let dw = {
588588 let z = ca
589589 if (if (if ($isInstanceOf(z._1, "Int"))
590- then if ($isInstanceOf(z._3, "Int"))
591- then if ($isInstanceOf(z._4, "Int"))
592- then if ($isInstanceOf(z._5, "Int"))
593- then $isInstanceOf(z._6, "Int")
590+ then if (true)
591+ then if ($isInstanceOf(z._3, "Int"))
592+ then if ($isInstanceOf(z._4, "Int"))
593+ then if ($isInstanceOf(z._5, "Int"))
594+ then if ($isInstanceOf(z._6, "Int"))
595+ then if (true)
596+ then if (true)
597+ then if (true)
598+ then if (true)
599+ then if (true)
600+ then if (true)
601+ then true
602+ else false
603+ else false
604+ else false
605+ else false
606+ else false
607+ else false
608+ else false
609+ else false
594610 else false
595611 else false
596612 else false
597613 else false)
598614 then (size(z) == 13)
599615 else false)
600616 then {
601617 let dx = z._1
602618 let dy = z._3
603619 let dz = z._4
604620 let dA = z._5
605621 let dB = z._6
606622 $Tuple5(dx, dy, dz, dA, dB)
607623 }
608624 else throw("Couldn't cast types")
609625 }
610626 let dx = dw._1
611627 let dy = dw._2
612628 let dz = dw._3
613629 let dA = dw._4
614630 let dB = dw._5
615631 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dc), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
616632 }
617633
618634
619635
620636 @Callable(bB)
621637 func poolEvaluatePutByPriceAssetREADONLY (cO,dv) = {
622638 let ba = addressFromStringValue(t(aU, S(cO)))
623639 let cR = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
624640 let be = fromBase58String(D(cR[j]))
625641 let dl = D(cR[k])
626642 let dm = fromBase58String(dl)
627643 let dn = D(cR[l])
628644 let do = fromBase58String(dn)
629645 let cW = parseIntValue(D(cR[m]))
630646 let cX = parseIntValue(D(cR[n]))
631647 let dp = D(cR[i])
632648 let cY = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
633649 let dC = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dl], nil))
634650 let dD = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dn], nil))
635651 let dE = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dC, cW], nil)))
636652 let dF = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dD, cX], nil)))
637653 let ds = if ((cY == 0))
638654 then g
639655 else parseBigIntValue(D(invoke(ba, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
640656 let dc = B(invoke(ba, "fromX18WrapperREADONLY", [toString(ds), b], nil))
641657 let du = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dv, cX], nil)))
642658 let dt = fraction(du, d, ds)
643659 let dk = B(invoke(ba, "fromX18WrapperREADONLY", [toString(dt), cW], nil))
644660 let ca = invoke(ba, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
645661 let dG = {
646662 let z = ca
647663 if (if (if ($isInstanceOf(z._1, "Int"))
648- then if ($isInstanceOf(z._3, "Int"))
649- then if ($isInstanceOf(z._4, "Int"))
650- then if ($isInstanceOf(z._5, "Int"))
651- then $isInstanceOf(z._6, "Int")
664+ then if (true)
665+ then if ($isInstanceOf(z._3, "Int"))
666+ then if ($isInstanceOf(z._4, "Int"))
667+ then if ($isInstanceOf(z._5, "Int"))
668+ then if ($isInstanceOf(z._6, "Int"))
669+ then if (true)
670+ then if (true)
671+ then if (true)
672+ then if (true)
673+ then if (true)
674+ then if (true)
675+ then true
676+ else false
677+ else false
678+ else false
679+ else false
680+ else false
681+ else false
682+ else false
683+ else false
652684 else false
653685 else false
654686 else false
655687 else false)
656688 then (size(z) == 13)
657689 else false)
658690 then {
659691 let dx = z._1
660692 let dy = z._3
661693 let dz = z._4
662694 let dA = z._5
663695 let dB = z._6
664696 $Tuple5(dx, dy, dz, dA, dB)
665697 }
666698 else throw("Couldn't cast types")
667699 }
668700 let dx = dG._1
669701 let dy = dG._2
670702 let dz = dG._3
671703 let dA = dG._4
672704 let dB = dG._5
673705 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dc), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
674706 }
675707
676708
677709
678710 @Callable(bB)
679711 func poolEvaluateGetREADONLY (dH,dI) = {
680712 let ba = addressFromStringValue(t(aU, S(dH)))
681713 let ca = invoke(ba, "estimateGetOperationWrapperREADONLY", ["", dH, dI, toString(ba)], nil)
682714 let dJ = {
683715 let z = ca
684716 if (if (if ($isInstanceOf(z._1, "Int"))
685717 then if ($isInstanceOf(z._2, "Int"))
686- then if ($isInstanceOf(z._5, "Int"))
687- then if ($isInstanceOf(z._6, "Int"))
688- then if ($isInstanceOf(z._7, "Int"))
689- then if ($isInstanceOf(z._8, "String"))
690- then $isInstanceOf(z._9, "String")
718+ then if (true)
719+ then if (true)
720+ then if ($isInstanceOf(z._5, "Int"))
721+ then if ($isInstanceOf(z._6, "Int"))
722+ then if ($isInstanceOf(z._7, "Int"))
723+ then if ($isInstanceOf(z._8, "String"))
724+ then if ($isInstanceOf(z._9, "String"))
725+ then true
726+ else false
727+ else false
728+ else false
691729 else false
692730 else false
693731 else false
694732 else false
695733 else false
696734 else false)
697735 then (size(z) == 10)
698736 else false)
699737 then {
700738 let dK = z._1
701739 let dL = z._2
702740 let dz = z._5
703741 let dA = z._6
704742 let dB = z._7
705743 let dc = z._8
706744 let dp = z._9
707745 $Tuple7(dK, dL, dz, dA, dB, dc, dp)
708746 }
709747 else throw("Couldn't cast types")
710748 }
711749 let dK = dJ._1
712750 let dL = dJ._2
713751 let dz = dJ._3
714752 let dA = dJ._4
715753 let dB = dJ._5
716754 let dc = dJ._6
717755 let dp = dJ._7
718756 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dz), toString(dA), toString(dB), dc, dp], e))
719757 }
720758
721759
722760
723761 @Callable(bB)
724762 func gwxUserInfoREADONLY (ao) = {
725763 let dM = x(invoke(aY, "gwxUserInfoREADONLY", [ao], nil))
726764 let dN = B(dM[0])
727765 $Tuple2(nil, makeString(["%d", toString(dN)], e))
728766 }
729767
730768
731769
732770 @Callable(bB)
733771 func unstakeAndGetOneTknV2 (ba,dO,dP,dQ) = {
734772 let cb = invoke(addressFromStringValue(ba), "unstakeAndGetOneTknV2", [dO, dP, dQ], nil)
735773 if ((cb == cb))
736774 then $Tuple2(nil, unit)
737775 else throw("Strict value is not equal to itself.")
738776 }
739777
740778
741779
742780 @Callable(bB)
743781 func getKeysBulkInternal (bO,dR,bU) = if ((bO == size(dR)))
744782 then $Tuple2(nil, bU)
745783 else {
746784 let dS = split(dR[bO], "++")
747785 let bw = addressFromStringValue(dS[0])
748786 let s = dS[1]
749787 let bx = dS[2]
750788 let y = bv(bw, s, bx)
751789 let ca = (bU :+ y)
752790 let cb = invoke(this, "getKeysBulkInternal", [(bO + 1), dR, ca], nil)
753791 if ((cb == cb))
754792 then $Tuple2(nil, cb)
755793 else throw("Strict value is not equal to itself.")
756794 }
757795
758796
759797
760798 @Callable(bB)
761799 func getKeysBulk (dR) = {
762800 let ca = invoke(this, "getKeysBulkInternal", [0, dR, nil], nil)
763801 $Tuple2(nil, ca)
764802 }
765803
766804
767805 @Verifier(dT)
768806 func dU () = {
769807 let dV = {
770808 let z = by()
771809 if ($isInstanceOf(z, "ByteVector"))
772810 then {
773811 let bC = z
774812 bC
775813 }
776814 else if ($isInstanceOf(z, "Unit"))
777815 then dT.senderPublicKey
778816 else throw("Match error")
779817 }
780818 sigVerify(dT.bodyBytes, dT.proofs[0], dV)
781819 }
782820

github/deemru/w8io/873ac7e 
92.02 ms