tx · PE4tLuUYYF8BFhsCTDYKRdA1JTDG7aSBwn1ZnA6G2Zn

3N55kCyUFy8M2ooKRwierKnP7L6viqzScNn:  -0.03500000 Waves

2022.12.07 18:20 [2350087] smart account 3N55kCyUFy8M2ooKRwierKnP7L6viqzScNn > SELF 0.00000000 Waves

{ "type": 13, "id": "PE4tLuUYYF8BFhsCTDYKRdA1JTDG7aSBwn1ZnA6G2Zn", "fee": 3500000, "feeAssetId": null, "timestamp": 1670426452598, "version": 1, "sender": "3N55kCyUFy8M2ooKRwierKnP7L6viqzScNn", "senderPublicKey": "HpuFV1RhaXZ5gaJNgeLjyAKy3D5q7fMKdNFYYbPDafnb", "proofs": [ "uQQZcTWsRYzUH95ahVHaTmYJJmRd6yKbYeZt7hX5GUyizYmuewYUKoFvRBN9yeRKbNkJtPzYCXV6hfRtjLe85Pn" ], "script": "base64:BgKSLQgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIQa2V5RmFjdG9yeUNvbmZpZyINa2V5TWF0Y2hlclB1YiIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IgxnZXRJbnRPckZhaWwiCHRocm93RXJyIgNtc2ciBmZtdEVyciIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDc5MTU4MDgxIg5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiBXJvdW5kIhBwcml2YXRlQ2FsY1ByaWNlIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiDmFtdEFzc2V0QW10WDE4IhBwcmljZUFzc2V0QW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIgthbXRBc3NldERjbSINcHJpY2VBc3NldERjbSIIcHJpY2VYMTgiCGxwQW10WDE4IhNscFByaWNlSW5BbUFzc2V0WDE4IhNscFByaWNlSW5QckFzc2V0WDE4Ig9jYWxjdWxhdGVQcmljZXMiBnByaWNlcyIUZXN0aW1hdGVHZXRPcGVyYXRpb24iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiCWxwQXNzZXRJZCIJYW1Bc3NldElkIglwckFzc2V0SWQiCnBvb2xTdGF0dXMiCmxwRW1pc3Npb24iCWFtQmFsYW5jZSIMYW1CYWxhbmNlWDE4IglwckJhbGFuY2UiDHByQmFsYW5jZVgxOCILY3VyUHJpY2VYMTgiCGN1clByaWNlIgtwbXRMcEFtdFgxOCINbHBFbWlzc2lvblgxOCILb3V0QW1BbXRYMTgiC291dFByQW10WDE4IghvdXRBbUFtdCIIb3V0UHJBbXQiBXN0YXRlIhRlc3RpbWF0ZVB1dE9wZXJhdGlvbiIRc2xpcHBhZ2VUb2xlcmFuY2UiDGluQW1Bc3NldEFtdCILaW5BbUFzc2V0SWQiDGluUHJBc3NldEFtdCILaW5QckFzc2V0SWQiCmlzRXZhbHVhdGUiBmVtaXRMcCIMYW1Bc3NldElkU3RyIgxwckFzc2V0SWRTdHIiC2lBbXRBc3NldElkIg1pUHJpY2VBc3NldElkIg5pbkFtQXNzZXRJZFN0ciIOaW5QckFzc2V0SWRTdHIiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiA3JlcyILc2xpcHBhZ2VYMTgiFHNsaXBwYWdlVG9sZXJhbmNlWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIgtjb21tb25TdGF0ZSIHY2FsY0tMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIgp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIwNjE1MjA4MjciA2tMcCINJHQwMjEyOTgyMTM5OCINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDI0MDgzMjQzNzYiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjQzODAyNDUyOSIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDI0NjUxMjQ3MTAiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI2MTg3MjYzNTQiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAyNzk1NjI4MDA2Igt0b3RhbEFtb3VudCINJHQwMjgwMTAyODIzNiILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIJaXNNYW5hZ2VyIgJwayILbXVzdE1hbmFnZXIiAnBkIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiIUbHBBc3NldEVtaXNzaW9uQWZ0ZXIiDSR0MDMyNzU2MzI4MjQiEXJlZnJlc2hLTHBBY3Rpb25zIgVlcnJvciIRaXNVcGRhdGVkS0xwVmFsaWQiC21heFNsaXBwYWdlIg0kdDAzMzc1NjMzODIxIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiAUAiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDM1MDA2MzUxNTgiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwMzU3NDQzNTk0MSINJHQwMzU5NDQzNjA1MiINJHQwMzYzNTgzNjUxNSINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwMzc0MDkzNzU2MiIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDAzODA2MjM4MzA5IhBmZWVBbW91bnRGb3JDYWxjIg0kdDAzODMxMjM4NDIwIg0kdDAzODY3NzM4ODMzIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDAzOTczNTM5ODg2Ig0kdDA0MDM4MTQwNjI4Ig0kdDA0MDYzMTQwNzM5IglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA0MTY4NzQxNzY5IhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig0kdDA0MjcyMDQyODAxIg1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiDSR0MDQzOTI0NDQwMDUiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIg0kdDA0NTI5NzQ1Mzc4IgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDY1NjU0NjYyOSIQa0xwVXBkYXRlQWN0aW9ucyIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0Ig9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgpwb29sV2VpZ2h0IgxjdXJQcmljZUNhbGMiDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaG4AAWEACAABYgCAwtcvAAFjCQC2AgEAgMLXLwABZAkAtgIBAICAkLu61q3wDQABZQkAtgIBAAAAAWYJALYCAQAAAAFnCQC2AgEAAQABaAkAtgIBAAIAAWkCBVdBVkVTAAFqAgJfXwABawABAAFsAAIAAW0AAwABbgAEAAFvAAEAAXAAAgABcQADAAFyAAQAAXMABQABdAAGAAF1AAcAAXYACAABdwAJAAF4AAoAAXkAAQABegACAAFBAAMAAUIAAQABQwAHAQFEAgFFAUYJALwCAwkAtgIBBQFFBQFkCQC2AgEFAUYBAUcCAUgBSQkAoAMBCQC8AgMFAUgJALYCAQUBSQUBZAEBSgMBSwFMAU0JAGsDBQFLBQFMBQFNAQFOAQFIAwkAZgIAAAUBSAkBAS0BBQFIBQFIAQFPAQFIAwkAvwICBQFlBQFICQC+AgEFAUgFAUgBAVAAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFRAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVIAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVMAAhElcyVzX19wcmljZV9fbGFzdAEBVAIBVQFWCQC5CQIJAMwIAgIYJXMlcyVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIJAKQDAQUBVQkAzAgCCQCkAwEFAVYFA25pbAUBagEBVwIBWAFZCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX1BfXwUBWAICX18FAVkBAVoCAVgBWQkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAVgCAl9fBQFZAQJhYQACDyVzX19hbW91bnRBc3NldAECYWIAAg4lc19fcHJpY2VBc3NldAACYWMCByVzX19mZWUAAmFkCQBrAwAKBQFiAJBOAAJhZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhYwUCYWQAAmFmCQC5CQIJAMwIAgICJXMJAMwIAgIDa0xwBQNuaWwFAWoAAmFnCQC5CQIJAMwIAgICJXMJAMwIAgISa0xwUmVmcmVzaGVkSGVpZ2h0BQNuaWwFAWoAAmFoCQC5CQIJAMwIAgICJXMJAMwIAgIPcmVmcmVzaEtMcERlbGF5BQNuaWwFAWoAAmFpAB4AAmFqCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFoBQJhaQECYWsAAhElc19fZmFjdG9yeUNvbmZpZwECYWwAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAmFtAQJhbgkArAICCQCsAgICCCVzJXMlc19fBQJhbgIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFvAgJhcAJhcQkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYXACAl9fBQJhcQIIX19jb25maWcBAmFyAQJhcwkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhcwECYXQAAgwlc19fc2h1dGRvd24BAmF1AQJhdgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmF2AQJhdwACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAAJheAIXJXNfX2ZlZUNvbGxlY3RvckFkZHJlc3MBAmF5AwJhegJhQQJhQgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYXoCDSBzZW5kZXJWYWxpZD0JAKUDAQUCYUECDiBtYXRjaGVyVmFsaWQ9CQClAwEFAmFCAQJhQwICYUQCYUUJARN2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BQF1BAJiUAkBAmJEBAUCYk4FAmJPBQJiRwUCYkgEAmJBCQEBRAIFAmJHBQJiTgQCYnoJAQFEAgUCYkgFAmJPBAJiUQkBAUQCBQJiTAUBYgQCYlIJAQJieQIFAmJBBQJiUQQCYlMJAQJieQIFAmJ6BQJiUQkAzAgCBQJiUAkAzAgCBQJiUgkAzAgCBQJiUwUDbmlsAQJiVAMCYkcCYkgCYkwEAmJVCQECYksDBQJiRwUCYkgFAmJMCQDMCAIJAQFHAgkAkQMCBQJiVQAABQFiCQDMCAIJAQFHAgkAkQMCBQJiVQABBQFiCQDMCAIJAQFHAgkAkQMCBQJiVQACBQFiBQNuaWwBAmJWBAJiVwJiWAJiWQFYBAJiTQkBAmFOAAQCYloJAJEDAgUCYk0FAXEEAmNhCQCRAwIFAmJNBQFyBAJjYgkAkQMCBQJiTQUBcwQCYkUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdAQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdQQCY2MJAJEDAgUCYk0FAXAEAmNkCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYloJAKwCAgkArAICAgZBc3NldCAFAmJaAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmJaBQJiWAkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCY2UJAQJidwEFAmNhBAJjZgkBAUQCBQJjZQUCYkUEAmNnCQECYncBBQJjYgQCY2gJAQFEAgUCY2cFAmJGBAJjaQkBAmJ5AgUCY2gFAmNmBAJjagkBAUcCBQJjaQUBYgQCY2sJAQFEAgUCYlkFAWIEAmNsCQEBRAIFAmNkBQFiBAJjbQkAvAIDBQJjZgUCY2sFAmNsBAJjbgkAvAIDBQJjaAUCY2sFAmNsBAJjbwkBAUcCBQJjbQUCYkUEAmNwCQEBRwIFAmNuBQJiRgQCY3EDCQAAAgUCYlcCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVgFAmNvAwkAAAIFAmNhAgVXQVZFUwUEdW5pdAkA2QQBBQJjYQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFYBQJjcAMJAAACBQJjYgIFV0FWRVMFBHVuaXQJANkEAQUCY2IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoCCQClCAEFAVgFAmJXCQECYnMGBQJjbwUCY3AFAmJZBQJjagUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJjagkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjagUDbmlsCQCcCgoFAmNvBQJjcAUCY2EFAmNiBQJjZQUCY2cFAmNkBQJjaQUCY2MFAmNxAQJjcgkCYlcCY3MCY3QCY3UCY3YCY3cBWAJjeAJjeQQCYk0JAQJhTgAEAmJaCQDZBAEJAJEDAgUCYk0FAXEEAmN6CQCRAwIFAmJNBQFyBAJjQQkAkQMCBQJiTQUBcwQCY0IJAJEDAgUCYk0FAXYEAmNDCQCRAwIFAmJNBQF3BAJiTgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJNBQF0BAJiTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJNBQF1BAJjYwkAkQMCBQJiTQUBcAQCY2QICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYloJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYloCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjRAkA2AQBCQELdmFsdWVPckVsc2UCBQJjdQkA2QQBAgVXQVZFUwQCY0UJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY3cJANkEAQIFV0FWRVMDAwkBAiE9AgUCY3oFAmNEBgkBAiE9AgUCY0EFAmNFCQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCY2UDBQJjeAkBAmJ3AQUCY3oJAGUCCQECYncBBQJjegUCY3QEAmNnAwUCY3gJAQJidwEFAmNBCQBlAgkBAmJ3AQUCY0EFAmN2BAJjRgkBAUQCBQJjdAUCYk4EAmNHCQEBRAIFAmN2BQJiTwQCY0gJAQJieQIFAmNHBQJjRgQCY2YJAQFEAgUCY2UFAmJOBAJjaAkBAUQCBQJjZwUCYk8EAmNJAwkAAAIFAmNkAAAEAmNpBQFlBAJjSgUBZQQCYlEJAHYGCQC5AgIFAmNGBQJjRwAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUcCBQJiUQUBYgkBAUcCBQJjRgUCYk4JAQFHAgUCY0cFAmJPCQECYnkCCQC3AgIFAmNoBQJjRwkAtwICBQJjZgUCY0YFAmNKBAJjaQkBAmJ5AgUCY2gFAmNmBAJjSgkAvAIDCQEBTwEJALgCAgUCY2kFAmNIBQFkBQJjaQQCY0sJAQFEAgUCY3MFAWIDAwkBAiE9AgUCY2kFAWUJAL8CAgUCY0oFAmNLBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJjSgIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmNLBAJjbAkBAUQCBQJjZAUBYgQCY0wJAL0CBAUCY0YJAQJiQgMFAmNoBQJjZgUHQ0VJTElORwUBZAUHQ0VJTElORwQCY00JAL0CBAUCY0cFAWQJAQJiQgMFAmNoBQJjZgUFRkxPT1IFB0NFSUxJTkcEAmNOAwkAvwICBQJjTAUCY0cJAJQKAgUCY00FAmNHCQCUCgIFAmNGBQJjTAQCY08IBQJjTgJfMQQCY1AIBQJjTgJfMgQCYlEJAL0CBAUCY2wFAmNQBQJjaAUFRkxPT1IJAJcKBQkBAUcCBQJiUQUBYgkBAUcCBQJjTwUCYk4JAQFHAgUCY1AFAmJPBQJjaQUCY0oEAmNRCAUCY0kCXzEEAmNSCAUCY0kCXzIEAmNTCAUCY0kCXzMEAmNqCQEBRwIIBQJjSQJfNAUBYgQCY1QJAQFHAggFAmNJAl81BQFiAwkAZwIAAAUCY1EJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmNVAwkBASEBBQJjeQAABQJjUQQCY1YJAGUCBQJjdAUCY1IEAmNXCQBlAgUCY3YFAmNTBAJjWAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJjagkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjagkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwIFAVgFAmJXCQECYmgKBQJjUgUCY1MFAmNVBQJjagUCY3MFAmNUBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjVgUCY1cFA25pbAkAnwoNBQJjUQUCY1UFAmNqBQJjZQUCY2cFAmNkBQJiWgUCY2MFAmNYBQJjVgUCY1cFAmN1BQJjdwECY1kDAmNaAmRhAmNkBAJkYgkAvAIDCQB2BgkAuQICBQJjWgUCZGEAAAkAtgIBAAUAAQASBQRET1dOBQFnBQJjZAMJAAACBQJjZAUBZgUBZgUCZGIBAmRjAwJkZAJkZQJkZgQCZGcJALgCAgkAtgIBCQECYncBCQECYVMBBQJiYQUCZGQEAmRoCQC4AgIJALYCAQkBAmJ3AQkBAmFTAQUCYmIFAmRlBAJkaQkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmFaCHF1YW50aXR5BQJkZgQCZGoJAQJjWQMFAmRnBQJkaAUCZGkFAmRqAQJkawMCZGwCZG0CZGYEAmRnCQBkAgkBAmJ3AQkBAmFTAQUCYmEFAmRsBAJkaAkAZAIJAQJidwEJAQJhUwEFAmJiBQJkbQQCZGkJAGQCCAkBBXZhbHVlAQkA7AcBBQJhWghxdWFudGl0eQUCZGYEAmRiCQECY1kDCQC2AgEFAmRnCQC2AgEFAmRoCQC2AgEFAmRpBAJkbgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYWcFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQJhZgkApgMBBQJkYgUDbmlsCQCUCgIFAmRuBQJkYgECZG8CAmRwAmRiAwkAwAICBQJkYgUCZHAGCQECYUcBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmRwCQDMCAIJAKYDAQUCZGIFA25pbAIBIAECZHEBAmRyBAJkcwgFAmRyBmFtb3VudAQCZHQJAG4ECAUCZHIGYW1vdW50CAUCZHIFcHJpY2UFAWIFBUZMT09SBAJkdQMJAAACCAUCZHIJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZHMJAQEtAQUCZHQJAJQKAgkBAS0BBQJkcwUCZHQEAmRsCAUCZHUCXzEEAmRtCAUCZHUCXzIDAwMJAQJhTAAGCQAAAgUCYVkFAW0GCQAAAgUCYVkFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkAwMJAQIhPQIICAUCZHIJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJiYQYJAQIhPQIICAUCZHIJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJiCQACAQITV3Jvbmcgb3JkZXIgYXNzZXRzLgQCZHYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYWYJAQJhSQECD2tMcCBpcyByZXF1aXJlZAkBAmFJAQILaW52YWxpZCBrTHAEAmR3CQECZGsDBQJkbAUCZG0AAAQCZHgIBQJkdwJfMQQCZHkIBQJkdwJfMgQCZHoJAMACAgUCZHkFAmR2BQJkegECZEEBAmRCAwkBAiE9AgkAkAMBCAUCZEIIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJkQwkBBXZhbHVlAQkAkQMCCAUCZEIIcGF5bWVudHMAAAQCYlgJAQV2YWx1ZQEIBQJkQwdhc3NldElkBAJkRAgFAmRDBmFtb3VudAQCY0kJAQJiVgQJANgEAQgFAmRCDXRyYW5zYWN0aW9uSWQJANgEAQUCYlgFAmRECAUCZEIGY2FsbGVyBAJjbwgFAmNJAl8xBAJjcAgFAmNJAl8yBAJjYwkBDXBhcnNlSW50VmFsdWUBCAUCY0kCXzkEAmNxCAUCY0kDXzEwAwMJAQJhTAAGCQAAAgUCY2MFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmNjCQCXCgUFAmNvBQJjcAUCZEQFAmJYBQJjcQECZEUDAmRCAmNzAmN5AwkBAiE9AgkAkAMBCAUCZEIIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmRGCQEFdmFsdWUBCQCRAwIIBQJkQghwYXltZW50cwAABAJkRwkBBXZhbHVlAQkAkQMCCAUCZEIIcGF5bWVudHMAAQQCZEgJAQJjcgkJANgEAQgFAmRCDXRyYW5zYWN0aW9uSWQFAmNzCAUCZEYGYW1vdW50CAUCZEYHYXNzZXRJZAgFAmRHBmFtb3VudAgFAmRHB2Fzc2V0SWQJAKUIAQgFAmRCBmNhbGxlcgcFAmN5BAJjYwkBDXBhcnNlSW50VmFsdWUBCAUCZEgCXzgDAwMJAQJhTAAGCQAAAgUCY2MFAWwGCQAAAgUCY2MFAW4JAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmNjBQJkSAECZEkBAmRKBAJkSwkA/AcEBQJhSgIEZW1pdAkAzAgCBQJkSgUDbmlsBQNuaWwDCQAAAgUCZEsFAmRLBAJkTAQCZE0FAmRLAwkAAQIFAmRNAgdBZGRyZXNzBAJkTgUCZE0JAPwHBAUCZE4CBGVtaXQJAMwIAgUCZEoFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRMBQJkTAUCZEoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmRPAQJkSgQCZFAJAGsDBQJkSgUCYWUFAWIJAJQKAgkAZQIFAmRKBQJkUAUCZFABAmRRBAJkUgJkUwFYAVkEAmRUCQAAAgUBWQUEdW5pdAQCZFUJAQJidwEJAQJhUwEFAmJhBAJkVgkBAmJ3AQkBAmFTAQUCYmIEAmRXAwkAAAIFAmRTBQJiYQYDCQAAAgUCZFMFAmJiBwkBAmFHAQINaW52YWxpZCBhc3NldAQCZFgDBQJkVAkAlAoCBQJkVQUCZFYDBQJkVwkAlAoCCQBlAgUCZFUFAmRSBQJkVgkAlAoCBQJkVQkAZQIFAmRWBQJkUgQCZFkIBQJkWAJfMQQCZFoIBQJkWAJfMgQCZWEDBQJkVwkAlAoCBQJkUgAACQCUCgIAAAUCZFIEAmViCAUCZWECXzEEAmVjCAUCZWECXzIEAmRzCAkBAmRPAQUCZWICXzEEAmR0CAkBAmRPAQUCZWMCXzEEAmVkCQECZE8BBQJkUgQCZWUIBQJlZAJfMQQCZFAIBQJlZAJfMgQCZWYJAGQCBQJkWQUCZHMEAmVnCQBkAgUCZFoFAmR0BAJlaAkBAmJ5AgkBAUQCBQJlZwUCYmQJAQFEAgUCZWYFAmJjBAJlaQkBAUcCBQJlaAUBYgQCZWoDBQJkVwUCZFkFAmRaBAJlawkAtgIBBQJlagQCZWwJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhWgkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJhWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVtAwkAvwICBQJlbAUBZgYJAQJhRwECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZW0FAmVtBAJlbgkAtgIBBQJlZQQCZW8JAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZWwJALgCAgkBCnNxcnRCaWdJbnQECQC3AgIFAWQJALoCAgkAuQICBQJlbgUBZAUCZWsAEgASBQRET1dOBQFkBQFkBQNuaWwEAmNYAwUCZFQFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJlaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlaQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwIJAKUIAQkBBXZhbHVlAQUBWAkA2AQBCQEFdmFsdWUBBQFZCQECYmgKBQJlYgUCZWMFAmVvBQJlaQAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmVwCQECYnkCCQEBRAIFAmRaBQJiZAkBAUQCBQJkWQUCYmMEAmVxCQEBRwIFAmVwBQFiBAJlcgQCZXMDBQJkVwkAlAoCBQJlYgUCZFkJAJQKAgUCZWMFAmRaBAJkSggFAmVzAl8xBAJldAgFAmVzAl8yBAJldQkAoAMBCQC8AgMFAmVsCQC2AgEJAGkCBQJkSgACCQC2AgEFAmV0CQBrAwkAZQIFAmVvBQJldQUBYgUCZXUJAJcKBQUCZW8FAmNYBQJkUAUCZXIFAmRXCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJldgUCZXcCZWUCZFMBWAFZBAJkVAkAAAIFAVkFBHVuaXQEAmV4CQDMCAIDCQAAAgUCZFMFAmFaBgkBAmFHAQIQaW52YWxpZCBscCBhc3NldAUDbmlsAwkAAAIFAmV4BQJleAQCZXkDCQAAAgUCZXcFAmJhBgMJAAACBQJldwUCYmIHCQECYUcBAg1pbnZhbGlkIGFzc2V0BAJlegMFAmV5CQC2AgEJAQJidwEJAQJhUwEFAmJhCQC2AgEJAQJidwEJAQJhUwEFAmJiBAJlQQkBAmJ3AQkBAmFTAQUCYmEEAmVCCQECYncBCQECYVMBBQJiYgQCZUMDBQJleQUCZUEFAmVCBAJlRAkAtgIBBQJlQwQCZWwJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhWgkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJhWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVFCQC2AgEFAmVlBAJlRgkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJlegkAuAICBQFkCQB2BgkAuAICBQFkCQC6AgIJALkCAgUCZUUFAWQFAmVsABIFAWgAAAASBQRET1dOBQFkBQNuaWwEAmVHCQECZE8BBQJlRgQCZUgIBQJlRwJfMQQCZFAIBQJlRwJfMgQCZUkDBQJleQkAlgoEBQJlSAAACQBlAgUCZUEFAmVGBQJlQgkAlgoEAAAFAmVIBQJlQQkAZQIFAmVCBQJlRgQCZUoIBQJlSQJfMQQCZUsIBQJlSQJfMgQCZUwIBQJlSQJfMwQCZU0IBQJlSQJfNAQCZWgJAQJieQIJAQFEAgUCZU0FAmJkCQEBRAIFAmVMBQJiYwQCZWkJAQFHAgUCZWgFAWIEAmNYAwUCZFQFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgIJAKUIAQkBBXZhbHVlAQUBWAkA2AQBCQEFdmFsdWUBBQFZCQECYnMGBQJlSgUCZUsFAmVlBQJlaQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJlaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlaQUDbmlsBAJlcAkBAmJ5AgkBAUQCBQJlQgUCYmQJAQFEAgUCZUEFAmJjBAJlcQkBAUcCBQJlcAUBYgQCZXIEAmVOCQBoAgkAoAMBCQC8AgMFAmV6BQJlRQUCZWwAAgkAawMJAGUCBQJlSAUCZU4FAWIFAmVOCQCXCgUFAmVIBQJjWAUCZFAFAmVyBQJleQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZU8ABAJkTQkAoggBCQEBUQADCQABAgUCZE0CBlN0cmluZwQCZVAFAmRNCQDZBAEFAmVQAwkAAQIFAmRNAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmVRAAQCZE0JAKIIAQkBAVIAAwkAAQIFAmRNAgZTdHJpbmcEAmVQBQJkTQkA2QQBBQJlUAMJAAECBQJkTQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJlUgECZEIEAmRNCQECZU8AAwkAAQIFAmRNAgpCeXRlVmVjdG9yBAJlUwUCZE0JAAACCAUCZEIPY2FsbGVyUHVibGljS2V5BQJlUwMJAAECBQJkTQIEVW5pdAkAAAIIBQJkQgZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECZVQBAmRCBAJlVQkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAJkTQkBAmVPAAMJAAECBQJkTQIKQnl0ZVZlY3RvcgQCZVMFAmRNAwkAAAIIBQJkQg9jYWxsZXJQdWJsaWNLZXkFAmVTBgUCZVUDCQABAgUCZE0CBFVuaXQDCQAAAggFAmRCBmNhbGxlcgUEdGhpcwYFAmVVCQACAQILTWF0Y2ggZXJyb3IbAmRCAQpzZXRNYW5hZ2VyAQJlVgQCZVcJAQJlVAEFAmRCAwkAAAIFAmVXBQJlVwQCZVgJANkEAQUCZVYDCQAAAgUCZVgFAmVYCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZVYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgEOY29uZmlybU1hbmFnZXIABAJlWQkBAmVRAAQCZVoDCQEJaXNEZWZpbmVkAQUCZVkGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmVaBQJlWgQCZmEDCQAAAggFAmRCD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZVkGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmZhBQJmYQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQAJANgEAQkBBXZhbHVlAQUCZVkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVIABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEIBA3B1dAICY3MCZmIDCQBmAgAABQJjcwkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJkSAkBAmRFAwUCZEIFAmNzBgQCY1UIBQJkSAJfMgQCYloIBQJkSAJfNwQCY3EIBQJkSAJfOQQCY1YIBQJkSANfMTAEAmNXCAUCZEgDXzExBAJmYwgFAmRIA18xMgQCZmQIBQJkSANfMTMEAmRGCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQghwYXltZW50cwAABmFtb3VudAQCZEcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRCCHBheW1lbnRzAAEGYW1vdW50BAJkZwkAuAICCQC2AgEJAQJidwEJAQJhUwEFAmJhBQJkRgMJAAACBQJkZwUCZGcEAmRoCQC4AgIJALYCAQkBAmJ3AQkBAmFTAQUCYmIFAmRHAwkAAAIFAmRoBQJkaAQCZGkJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYVoIcXVhbnRpdHkDCQAAAgUCZGkFAmRpBAJkagkBAmRjAwUCZEYFAmRHCQC2AgEAAAMJAAACBQJkagUCZGoEAmRLCQD8BwQFAmFKAgRlbWl0CQDMCAIFAmNVBQNuaWwFA25pbAMJAAACBQJkSwUCZEsEAmRMBAJkTQUCZEsDCQABAgUCZE0CB0FkZHJlc3MEAmROBQJkTQkA/AcEBQJkTgIEZW1pdAkAzAgCBQJjVQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZEwFAmRMBAJmZQMJAGYCBQJjVgAACQD8BwQFAmJnAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZmMFAmNWBQNuaWwFA25pbAMJAAACBQJmZQUCZmUEAmZmAwkAZgIFAmNXAAAJAPwHBAUCYmcCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJmZAUCY1cFA25pbAUDbmlsAwkAAAIFAmZmBQJmZgQCZmcDBQJmYgQCZmgJAPwHBAUCYmYCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJaBQJjVQUDbmlsAwkAAAIFAmZoBQJmaAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkQgZjYWxsZXIFAmNVBQJiWgUDbmlsBAJmaQgJAQV2YWx1ZQEJAOwHAQUCYVoIcXVhbnRpdHkDCQAAAgUCZmkFAmZpBAJmagkBAmRrAwAAAAAAAAMJAAACBQJmagUCZmoEAmRiCAUCZmoCXzIEAmZrCAUCZmoCXzEEAmZsCQECYUcBCQC5CQIJAMwIAgkApgMBBQJkZwkAzAgCCQCmAwEFAmRoCQDMCAIJAKYDAQUCZGkJAMwIAgkApgMBBQJkagkAzAgCCQCmAwEFAmRiCQDMCAIJAKQDAQUCY1UJAMwIAgkApAMBBQJjVgkAzAgCCQCkAwEFAmNXCQDMCAIJAKYDAQUCZGkJAMwIAgkApAMBBQJmaQUDbmlsAgEgAwkAAAIFAmZsBQJmbAQCZm0JAQJkbwIFAmRqBQJkYgMJAAACBQJmbQUCZm0JAM4IAgkAzggCBQJjcQUCZmcFAmZrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCAQpwdXRGb3JGcmVlAQJmbgMJAGYCAAAFAmZuCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRICQECZEUDBQJkQgUCZm4HBAJjcQgFAmRIAl85BAJkRgkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEIIcGF5bWVudHMAAAZhbW91bnQEAmRHCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQghwYXltZW50cwABBmFtb3VudAQCZGoJAQJkYwMFAmRGBQJkRwkAtgIBAAADCQAAAgUCZGoFAmRqBAJmbwkBAmRrAwAAAAAAAAQCZmsIBQJmbwJfMQQCZGIIBQJmbwJfMgQCZm0JAQJkbwIFAmRqBQJkYgMJAAACBQJmbQUCZm0JAM4IAgUCY3EFAmZrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCAQlwdXRPbmVUa24CAmZwAmZxBAJmcgoAAmZzCQD8BwQFAmFKAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCZnMCB0Jvb2xlYW4FAmZzCQACAQkArAICCQADAQUCZnMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZ0AwMDCQECYUwABgkAAAIFAmFZBQFsBgkAAAIFAmFZBQFuBgUCZnIEAmV4CQDMCAIDAwkBASEBBQJmdAYJAQJlUgEFAmRCBgkBAmFHAQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEIIcGF5bWVudHMAAQYJAQJhRwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV4BQJleAQCZnUJAJEDAggFAmRCCHBheW1lbnRzAAAEAmRTCAUCZnUHYXNzZXRJZAQCZFIIBQJmdQZhbW91bnQEAmRqAwkAAAIFAmRTBQJiYQkBAmRjAwkAtgIBBQJkUgkAtgIBAAAJALYCAQAAAwkAAAIFAmRTBQJiYgkBAmRjAwkAtgIBAAAJALYCAQUCZFIJALYCAQAACQECYUcBAh5wYXltZW50IGFzc2V0IGlzIG5vdCBzdXBwb3J0ZWQEAVgIBQJkQgZjYWxsZXIEAVkIBQJkQg10cmFuc2FjdGlvbklkBAJmdgkBAmRRBAUCZFIFAmRTBQFYBQFZAwkAAAIFAmZ2BQJmdgQCZFcIBQJmdgJfNQQCZncIBQJmdgJfNAQCZFAIBQJmdgJfMwQCY1gIBQJmdgJfMgQCZngIBQJmdgJfMQQCZnkDAwkAZgIFAmZwAAAJAGYCBQJmcAUCZngHCQECYUcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZwBQNuaWwCAAUCZngEAmRLCQECZEkBBQJmeQMJAAACBQJkSwUCZEsEAmZnAwUCZnEEAmZ6CQD8BwQFAmJmAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhWgUCZnkFA25pbAMJAAACBQJmegUCZnoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEIGY2FsbGVyBQJmeQUCYVoFA25pbAQCZkEDCQBmAgUCZFAAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhSwUCZFAFAmRTBQNuaWwFA25pbAQCZkIDCQAAAgUEdGhpcwUCYUsJAJQKAgAAAAADBQJkVwkAlAoCCQEBLQEFAmRQAAAJAJQKAgAACQEBLQEFAmRQBAJkbAgFAmZCAl8xBAJkbQgFAmZCAl8yBAJmQwkBAmRrAwUCZGwFAmRtAAAEAmZrCAUCZkMCXzEEAmRiCAUCZkMCXzIEAmR2CQEFdmFsdWUBCQCiCAEFAmFmBAJmbQkBAmRvAgUCZGoFAmRiAwkAAAIFAmZtBQJmbQkAlAoCCQDOCAIJAM4IAgkAzggCBQJjWAUCZmcFAmZBBQJmawUCZnkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEIBEXB1dE9uZVRrblJFQURPTkxZAgJkUwJkUgQCZkQJAQJkUQQFAmRSCQECYVEBBQJkUwUEdW5pdAUEdW5pdAQCZngIBQJmRAJfMQQCY1gIBQJmRAJfMgQCZFAIBQJmRAJfMwQCZncIBQJmRAJfNAQCZFcIBQJmRAJfNQkAlAoCBQNuaWwJAJUKAwUCZngFAmRQBQJmdwJkQgEJZ2V0T25lVGtuAgJmRQJmcAQCZnIKAAJmcwkA/AcEBQJhSgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZzAgdCb29sZWFuBQJmcwkAAgEJAKwCAgkAAwEFAmZzAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmRgMDCQECYUwABgkAAAIFAmFZBQFuBgUCZnIEAmV4CQDMCAIDAwkBASEBBQJmRgYJAQJlUgEFAmRCBgkBAmFHAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEIIcGF5bWVudHMAAQYJAQJhRwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV4BQJleAQCZXcJAQJhUQEFAmZFBAJmdQkAkQMCCAUCZEIIcGF5bWVudHMAAAQCZFMIBQJmdQdhc3NldElkBAJlZQgFAmZ1BmFtb3VudAQCZGoJAQJkYwMJALYCAQAACQC2AgEAAAkAtgIBBQJlZQQBWAgFAmRCBmNhbGxlcgQBWQgFAmRCDXRyYW5zYWN0aW9uSWQEAmZHCQECZXYFBQJldwUCZWUFAmRTBQFYBQFZAwkAAAIFAmZHBQJmRwQCZXkIBQJmRwJfNQQCZncIBQJmRwJfNAQCZFAIBQJmRwJfMwQCY1gIBQJmRwJfMgQCZkgIBQJmRwJfMQQCZEoDAwkAZgIFAmZwAAAJAGYCBQJmcAUCZkgHCQECYUcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZwBQNuaWwCAAUCZkgEAmZJCQD8BwQFAmFKAgRidXJuCQDMCAIFAmVlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRTBQJlZQUDbmlsAwkAAAIFAmZJBQJmSQQCZkoJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBWAUCZEoFAmV3BQNuaWwEAmZBAwkAZgIFAmRQAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUsFAmRQBQJldwUDbmlsBQNuaWwEAmZLBAJmTAMJAAACBQR0aGlzBQJhSwAABQJkUAMFAmV5CQCUCgIJAQEtAQkAZAIFAmRKBQJmTAAACQCUCgIAAAkBAS0BCQBkAgUCZEoFAmZMBAJkbAgFAmZLAl8xBAJkbQgFAmZLAl8yBAJmTQkBAmRrAwUCZGwFAmRtAAAEAmZrCAUCZk0CXzEEAmRiCAUCZk0CXzIEAmZtCQECZG8CBQJkagUCZGIDCQAAAgUCZm0FAmZtCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNYBQJmSgUCZkEFAmZrBQJkSgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgERZ2V0T25lVGtuUkVBRE9OTFkCAmV3AmVlBAJmTgkBAmV2BQkBAmFRAQUCZXcFAmVlBQJhWgUEdW5pdAUEdW5pdAQCZkgIBQJmTgJfMQQCY1gIBQJmTgJfMgQCZFAIBQJmTgJfMwQCZncIBQJmTgJfNAQCZXkIBQJmTgJfNQkAlAoCBQNuaWwJAJUKAwUCZkgFAmRQBQJmdwJkQgETdW5zdGFrZUFuZEdldE9uZVRrbgMCZk8CZkUCZnAEAmZyCgACZnMJAPwHBAUCYUoCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJmcwIHQm9vbGVhbgUCZnMJAAIBCQCsAgIJAAMBBQJmcwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZkYDAwkBAmFMAAYJAAACBQJhWQUBbgYFAmZyBAJleAkAzAgCAwMJAQEhAQUCZkYGCQECZVIBBQJkQgYJAQJhRwECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRCCHBheW1lbnRzAAAGCQECYUcBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJleAUCZXgEAmV3CQECYVEBBQJmRQQBWAgFAmRCBmNhbGxlcgQBWQgFAmRCDXRyYW5zYWN0aW9uSWQEAmRqCQECZGMDCQC2AgEAAAkAtgIBAAAJALYCAQAABAJmUAkA/AcEBQJiZgIHdW5zdGFrZQkAzAgCCQDYBAEFAmFaCQDMCAIFAmZPBQNuaWwFA25pbAMJAAACBQJmUAUCZlAEAmZRCQECZXYFBQJldwUCZk8FAmFaBQFYBQFZAwkAAAIFAmZRBQJmUQQCZXkIBQJmUQJfNQQCZncIBQJmUQJfNAQCZFAIBQJmUQJfMwQCY1gIBQJmUQJfMgQCZkgIBQJmUQJfMQQCZEoDAwkAZgIFAmZwAAAJAGYCBQJmcAUCZkgHCQECYUcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZwBQNuaWwCAAUCZkgEAmZJCQD8BwQFAmFKAgRidXJuCQDMCAIFAmZPBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFaBQJmTwUDbmlsAwkAAAIFAmZJBQJmSQQCZkoJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRCBmNhbGxlcgUCZEoFAmV3BQNuaWwEAmZBAwkAZgIFAmRQAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUsFAmRQBQJldwUDbmlsBQNuaWwEAmZSBAJmTAMJAAACBQR0aGlzBQJhSwAABQJkUAMFAmV5CQCUCgIJAQEtAQkAZAIFAmRKBQJmTAAACQCUCgIAAAkBAS0BCQBkAgUCZEoFAmZMBAJkbAgFAmZSAl8xBAJkbQgFAmZSAl8yBAJmUwkBAmRrAwUCZGwFAmRtAAAEAmZrCAUCZlMCXzEEAmRiCAUCZlMCXzIEAmZtCQECZG8CBQJkagUCZGIDCQAAAgUCZm0FAmZtCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNYBQJmSgUCZkEFAmZrBQJkSgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgEDZ2V0AAQCY0kJAQJkQQEFAmRCBAJmVAgFAmNJAl8xBAJjcAgFAmNJAl8yBAJkRAgFAmNJAl8zBAJiWAgFAmNJAl80BAJjcQgFAmNJAl81BAJkagkBAmRjAwkAtgIBAAAJALYCAQAACQC2AgEFAmREBAJmVQkA/AcEBQJhSgIEYnVybgkAzAgCBQJkRAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiWAUCZEQFA25pbAMJAAACBQJmVQUCZlUEAmZWCQECZGsDCQEBLQEFAmZUCQEBLQEFAmNwAAAEAmZrCAUCZlYCXzEEAmRiCAUCZlYCXzIEAmZtCQECZG8CBQJkagUCZGIDCQAAAgUCZm0FAmZtCQDOCAIFAmNxBQJmawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgEJZ2V0Tm9MZXNzAgJmVwJmWAQCY0kJAQJkQQEFAmRCBAJjbwgFAmNJAl8xBAJjcAgFAmNJAl8yBAJkRAgFAmNJAl8zBAJiWAgFAmNJAl80BAJjcQgFAmNJAl81AwkAZgIFAmZXBQJjbwkAAgEJAKwCAgkArAICCQCsAgICHG5vTGVzc1RoZW5BbXRBc3NldCBmYWlsZWQ6ICAJAKQDAQUCY28CAyA8IAkApAMBBQJmVwMJAGYCBQJmWAUCY3AJAAIBCQCsAgIJAKwCAgkArAICAh1ub0xlc3NUaGVuUHJpY2VBc3NldCBmYWlsZWQ6IAkApAMBBQJjcAIDIDwgCQCkAwEFAmZYBAJkagkBAmRjAwkAtgIBAAAJALYCAQAACQC2AgEFAmREBAJmVQkA/AcEBQJhSgIEYnVybgkAzAgCBQJkRAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiWAUCZEQFA25pbAMJAAACBQJmVQUCZlUEAmZZCQECZGsDCQEBLQEFAmNvCQEBLQEFAmNwAAAEAmZrCAUCZlkCXzEEAmRiCAUCZlkCXzIEAmZtCQECZG8CBQJkagUCZGIDCQAAAgUCZm0FAmZtCQDOCAIFAmNxBQJmawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgENdW5zdGFrZUFuZEdldAECZEoEAmZaAwkBAiE9AgkAkAMBCAUCZEIIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCZloFAmZaBAJiTQkBAmFOAAQCYloJANkEAQkAkQMCBQJiTQUBcQQCZGoJAQJkYwMJALYCAQAACQC2AgEAAAkAtgIBAAAEAmZQCQD8BwQFAmJmAgd1bnN0YWtlCQDMCAIJANgEAQUCYloJAMwIAgUCZEoFA25pbAUDbmlsAwkAAAIFAmZQBQJmUAQCY0kJAQJiVgQJANgEAQgFAmRCDXRyYW5zYWN0aW9uSWQJANgEAQUCYloFAmRKCAUCZEIGY2FsbGVyBAJjbwgFAmNJAl8xBAJjcAgFAmNJAl8yBAJjYwkBDXBhcnNlSW50VmFsdWUBCAUCY0kCXzkEAmNxCAUCY0kDXzEwBAJnYQMDCQECYUwABgkAAAIFAmNjBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJjYwYDCQAAAgUCZ2EFAmdhBAJmVQkA/AcEBQJhSgIEYnVybgkAzAgCBQJkSgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiWgUCZEoFA25pbAMJAAACBQJmVQUCZlUEAmdiCQECZGsDCQEBLQEFAmNvCQEBLQEFAmNwAAAEAmZrCAUCZ2ICXzEEAmRiCAUCZ2ICXzIEAmZtCQECZG8CBQJkagUCZGIDCQAAAgUCZm0FAmZtCQDOCAIFAmNxBQJmawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgETdW5zdGFrZUFuZEdldE5vTGVzcwMCZk8CZ2MCZlgEAmZGAwkBAmFMAAYJAAACBQJhWQUBbgQCZXgJAMwIAgMJAQEhAQUCZkYGCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEIIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJleAUCZXgEAmRqCQECZGMDCQC2AgEAAAkAtgIBAAAJALYCAQAABAJmUAkA/AcEBQJiZgIHdW5zdGFrZQkAzAgCCQDYBAEFAmFaCQDMCAIFAmZPBQNuaWwFA25pbAMJAAACBQJmUAUCZlAEAmNJCQECYlYECQDYBAEIBQJkQg10cmFuc2FjdGlvbklkCQDYBAEFAmFaBQJmTwgFAmRCBmNhbGxlcgQCY28IBQJjSQJfMQQCY3AIBQJjSQJfMgQCY3EIBQJjSQNfMTAEAmdkCQDMCAIDCQBnAgUCY28FAmdjBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmdjBQNuaWwCAAkAzAgCAwkAZwIFAmNwBQJmWAYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZYBQNuaWwCAAUDbmlsAwkAAAIFAmdkBQJnZAQCZlUJAPwHBAUCYUoCBGJ1cm4JAMwIAgUCZk8FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVoFAmZPBQNuaWwDCQAAAgUCZlUFAmZVBAJnZQkBAmRrAwkBAS0BBQJjbwkBAS0BBQJjcAAABAJmawgFAmdlAl8xBAJkYggFAmdlAl8yBAJmbQkBAmRvAgUCZGoFAmRiAwkAAAIFAmZtBQJmbQkAzggCBQJjcQUCZmsJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEIBCGFjdGl2YXRlAgJnZgJnZwMJAQIhPQIJAKUIAQgFAmRCBmNhbGxlcgkApQgBBQJhSgkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQAFAmdmCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYgAFAmdnBQNuaWwCB3N1Y2Nlc3MCZEIBCnJlZnJlc2hLTHAABAJnaAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJhZwAABAJnaQMJAGcCCQBlAgUGaGVpZ2h0BQJnaAUCYWoFBHVuaXQJAQJhRwEJALkJAgkAzAgCCQCkAwEFAmFqCQDMCAICLyBibG9ja3MgaGF2ZSBub3QgcGFzc2VkIHNpbmNlIHRoZSBwcmV2aW91cyBjYWxsBQNuaWwCAAMJAAACBQJnaQUCZ2kEAmR2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhZgIBMAkBAmFJAQILaW52YWxpZCBrTHAEAmdqCQECZGsDAAAAAAAABAJnawgFAmdqAl8xBAJkYggFAmdqAl8yBAJkbgMJAQIhPQIFAmR2BQJkYgUCZ2sJAQJhRwECEm5vdGhpbmcgdG8gcmVmcmVzaAkAlAoCBQJkbgkApgMBBQJkYgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYU4AAmRCARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJieAkAlAoCBQNuaWwJAQJidwEFAmJ4AmRCARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJiRwJiSAJiTAQCYlUJAQJiSwMFAmJHBQJiSAUCYkwJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJiVQAACQDMCAIJAKYDAQkAkQMCBQJiVQABCQDMCAIJAKYDAQkAkQMCBQJiVQACBQNuaWwCZEIBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFFAUYJAJQKAgUDbmlsCQCmAwEJAQFEAgUBRQUBRgJkQgEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBSAFJCQCUCgIFA25pbAkBAUcCCQCnAwEFAUgFAUkCZEIBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICYnoCYkEJAJQKAgUDbmlsCQCmAwEJAQJieQIJAKcDAQUCYnoJAKcDAQUCYkECZEIBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJiVwJjcwJjdAJjdQJjdgJjdwFYAmN4AmN5CQCUCgIFA25pbAkBAmNyCQUCYlcFAmNzBQJjdAUCY3UFAmN2BQJjdwUBWAUCY3gFAmN5AmRCASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYlcCYlgCYlkBWAQCY0kJAQJiVgQFAmJXBQJiWAUCYlkJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVgJAJQKAgUDbmlsCQCcCgoIBQJjSQJfMQgFAmNJAl8yCAUCY0kCXzMIBQJjSQJfNAgFAmNJAl81CAUCY0kCXzYIBQJjSQJfNwkApgMBCAUCY0kCXzgIBQJjSQJfOQgFAmNJA18xMAJkQgENc3RhdHNSRUFET05MWQAEAmJNCQECYU4ABAJiWgkA2QQBCQCRAwIFAmJNBQFxBAJnbAkAkQMCBQJiTQUBcgQCZ20JAJEDAgUCYk0FAXMEAmNCCQCRAwIFAmJNBQF2BAJjQwkAkQMCBQJiTQUBdwQCYk4JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdAQCYk8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdQQCZ24ICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYloJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYloCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJnbwkBAmJ3AQUCZ2wEAmdwCQECYncBBQJnbQQCZ3EDCQAAAgUCZ24AAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECYksDBQJnbwUCZ3AFAmduBAJjagAABAJncgkBAUcCCQCRAwIFAmdxAAEFAWIEAmdzCQEBRwIJAJEDAgUCZ3EAAgUBYgQCZ3QJAQV2YWx1ZQEJAJoIAgUCYUoJAQJhdQEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmdvCQDMCAIJAKQDAQUCZ3AJAMwIAgkApAMBBQJnbgkAzAgCCQCkAwEFAmNqCQDMCAIJAKQDAQUCZ3IJAMwIAgkApAMBBQJncwkAzAgCCQCkAwEFAmd0BQNuaWwFAWoCZEIBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJjdAQCYk0JAQJhTgAEAmJaCQDZBAEJAJEDAgUCYk0FAXEEAmN6CQCRAwIFAmJNBQFyBAJjYQkA2QQBBQJjegQCY0EJAJEDAgUCYk0FAXMEAmNiCQDZBAEFAmNBBAJiTgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJNBQF0BAJiTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJNBQF1BAJjYwkAkQMCBQJiTQUBcAQCZ24ICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYloJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYloCDiBk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", "chainId": 84, "height": 2350087, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AeukvaENSPXmpA8PupDpXuhrQMXNg7CJoVWzfKv1mjEu Next: HFFU13jfiXox59oXv3TsyqH8vUWCw97q1z3QfDH8ru9f Diff:
OldNewDifferences
719719 let fd = dH._13
720720 let dF = toBigInt(value(dB.payments[0]).amount)
721721 let dG = toBigInt(value(dB.payments[1]).amount)
722- let dj = dc(dF, dG, toBigInt(0))
723- if ((dj == dj))
722+ let dg = (toBigInt(bw(aS(ba))) - dF)
723+ if ((dg == dg))
724724 then {
725- let dK = invoke(aJ, "emit", [cU], nil)
726- if ((dK == dK))
725+ let dh = (toBigInt(bw(aS(bb))) - dG)
726+ if ((dh == dh))
727727 then {
728- let dL = {
729- let dM = dK
730- if ($isInstanceOf(dM, "Address"))
731- then {
732- let dN = dM
733- invoke(dN, "emit", [cU], nil)
734- }
735- else unit
736- }
737- if ((dL == dL))
728+ let di = toBigInt(value(assetInfo(aZ)).quantity)
729+ if ((di == di))
738730 then {
739- let fe = if ((cV > 0))
740- then invoke(bg, "put", nil, [AttachedPayment(fc, cV)])
741- else nil
742- if ((fe == fe))
731+ let dj = dc(dF, dG, toBigInt(0))
732+ if ((dj == dj))
743733 then {
744- let ff = if ((cW > 0))
745- then invoke(bg, "put", nil, [AttachedPayment(fd, cW)])
746- else nil
747- if ((ff == ff))
734+ let dK = invoke(aJ, "emit", [cU], nil)
735+ if ((dK == dK))
748736 then {
749- let fg = if (fb)
737+ let dL = {
738+ let dM = dK
739+ if ($isInstanceOf(dM, "Address"))
740+ then {
741+ let dN = dM
742+ invoke(dN, "emit", [cU], nil)
743+ }
744+ else unit
745+ }
746+ if ((dL == dL))
750747 then {
751- let fh = invoke(bf, "stake", nil, [AttachedPayment(bZ, cU)])
752- if ((fh == fh))
753- then nil
754- else throw("Strict value is not equal to itself.")
755- }
756- else [ScriptTransfer(dB.caller, cU, bZ)]
757- let fi = dk(0, 0, 0)
758- if ((fi == fi))
759- then {
760- let db = fi._2
761- let fj = fi._1
762- let fk = do(dj, db)
763- if ((fk == fk))
764- then ((cq ++ fg) ++ fj)
748+ let fe = if ((cV > 0))
749+ then invoke(bg, "put", nil, [AttachedPayment(fc, cV)])
750+ else nil
751+ if ((fe == fe))
752+ then {
753+ let ff = if ((cW > 0))
754+ then invoke(bg, "put", nil, [AttachedPayment(fd, cW)])
755+ else nil
756+ if ((ff == ff))
757+ then {
758+ let fg = if (fb)
759+ then {
760+ let fh = invoke(bf, "stake", nil, [AttachedPayment(bZ, cU)])
761+ if ((fh == fh))
762+ then nil
763+ else throw("Strict value is not equal to itself.")
764+ }
765+ else [ScriptTransfer(dB.caller, cU, bZ)]
766+ let fi = value(assetInfo(aZ)).quantity
767+ if ((fi == fi))
768+ then {
769+ let fj = dk(0, 0, 0)
770+ if ((fj == fj))
771+ then {
772+ let db = fj._2
773+ let fk = fj._1
774+ let fl = aG(makeString([toString(dg), toString(dh), toString(di), toString(dj), toString(db), toString(cU), toString(cV), toString(cW), toString(di), toString(fi)], " "))
775+ if ((fl == fl))
776+ then {
777+ let fm = do(dj, db)
778+ if ((fm == fm))
779+ then ((cq ++ fg) ++ fk)
780+ else throw("Strict value is not equal to itself.")
781+ }
782+ else throw("Strict value is not equal to itself.")
783+ }
784+ else throw("Strict value is not equal to itself.")
785+ }
786+ else throw("Strict value is not equal to itself.")
787+ }
788+ else throw("Strict value is not equal to itself.")
789+ }
765790 else throw("Strict value is not equal to itself.")
766791 }
767792 else throw("Strict value is not equal to itself.")
780805
781806
782807 @Callable(dB)
783-func putForFree (fl) = if ((0 > fl))
808+func putForFree (fn) = if ((0 > fn))
784809 then throw("Invalid value passed")
785810 else {
786- let dH = dE(dB, fl, false)
811+ let dH = dE(dB, fn, false)
787812 let cq = dH._9
788813 let dF = toBigInt(value(dB.payments[0]).amount)
789814 let dG = toBigInt(value(dB.payments[1]).amount)
790815 let dj = dc(dF, dG, toBigInt(0))
791816 if ((dj == dj))
792817 then {
793- let fm = dk(0, 0, 0)
794- let fj = fm._1
795- let db = fm._2
796- let fk = do(dj, db)
797- if ((fk == fk))
798- then (cq ++ fj)
818+ let fo = dk(0, 0, 0)
819+ let fk = fo._1
820+ let db = fo._2
821+ let fm = do(dj, db)
822+ if ((fm == fm))
823+ then (cq ++ fk)
799824 else throw("Strict value is not equal to itself.")
800825 }
801826 else throw("Strict value is not equal to itself.")
804829
805830
806831 @Callable(dB)
807-func putOneTkn (fn,fo) = {
808- let fp = {
809- let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810- if ($isInstanceOf(fq, "Boolean"))
811- then fq
812- else throw(($getType(fq) + " couldn't be cast to Boolean"))
832+func putOneTkn (fp,fq) = {
833+ let fr = {
834+ let fs = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
835+ if ($isInstanceOf(fs, "Boolean"))
836+ then fs
837+ else throw(($getType(fs) + " couldn't be cast to Boolean"))
813838 }
814- let fr = if (if (if (aL())
839+ let ft = if (if (if (aL())
815840 then true
816841 else (aY == l))
817842 then true
818843 else (aY == n))
819844 then true
820- else fp
821- let ex = [if (if (!(fr))
845+ else fr
846+ let ex = [if (if (!(ft))
822847 then true
823848 else eR(dB))
824849 then true
827852 else aG("exactly 1 payment are expected")]
828853 if ((ex == ex))
829854 then {
830- let fs = dB.payments[0]
831- let dS = fs.assetId
832- let dR = fs.amount
855+ let fu = dB.payments[0]
856+ let dS = fu.assetId
857+ let dR = fu.amount
833858 let dj = if ((dS == ba))
834859 then dc(toBigInt(dR), toBigInt(0), toBigInt(0))
835860 else if ((dS == bb))
837862 else aG("payment asset is not supported")
838863 let X = dB.caller
839864 let Y = dB.transactionId
840- let ft = dQ(dR, dS, X, Y)
841- if ((ft == ft))
865+ let fv = dQ(dR, dS, X, Y)
866+ if ((fv == fv))
842867 then {
843- let dW = ft._5
844- let fu = ft._4
845- let dP = ft._3
846- let cX = ft._2
847- let fv = ft._1
848- let fw = if (if ((fn > 0))
849- then (fn > fv)
868+ let dW = fv._5
869+ let fw = fv._4
870+ let dP = fv._3
871+ let cX = fv._2
872+ let fx = fv._1
873+ let fy = if (if ((fp > 0))
874+ then (fp > fx)
850875 else false)
851- then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
852- else fv
853- let dK = dI(fw)
876+ then aG(makeString(["amount to receive is less than ", toString(fp)], ""))
877+ else fx
878+ let dK = dI(fy)
854879 if ((dK == dK))
855880 then {
856- let fg = if (fo)
881+ let fg = if (fq)
857882 then {
858- let fx = invoke(bf, "stake", nil, [AttachedPayment(aZ, fw)])
859- if ((fx == fx))
883+ let fz = invoke(bf, "stake", nil, [AttachedPayment(aZ, fy)])
884+ if ((fz == fz))
860885 then nil
861886 else throw("Strict value is not equal to itself.")
862887 }
863- else [ScriptTransfer(dB.caller, fw, aZ)]
864- let fy = if ((dP > 0))
888+ else [ScriptTransfer(dB.caller, fy, aZ)]
889+ let fA = if ((dP > 0))
865890 then [ScriptTransfer(aK, dP, dS)]
866891 else nil
867- let fz = if ((this == aK))
892+ let fB = if ((this == aK))
868893 then $Tuple2(0, 0)
869894 else if (dW)
870895 then $Tuple2(-(dP), 0)
871896 else $Tuple2(0, -(dP))
872- let dl = fz._1
873- let dm = fz._2
874- let fA = dk(dl, dm, 0)
875- let fj = fA._1
876- let db = fA._2
897+ let dl = fB._1
898+ let dm = fB._2
899+ let fC = dk(dl, dm, 0)
900+ let fk = fC._1
901+ let db = fC._2
877902 let dv = value(getString(af))
878- let fk = do(dj, db)
879- if ((fk == fk))
880- then $Tuple2((((cX ++ fg) ++ fy) ++ fj), fw)
903+ let fm = do(dj, db)
904+ if ((fm == fm))
905+ then $Tuple2((((cX ++ fg) ++ fA) ++ fk), fy)
881906 else throw("Strict value is not equal to itself.")
882907 }
883908 else throw("Strict value is not equal to itself.")
891916
892917 @Callable(dB)
893918 func putOneTknREADONLY (dS,dR) = {
894- let fB = dQ(dR, aQ(dS), unit, unit)
895- let fv = fB._1
896- let cX = fB._2
897- let dP = fB._3
898- let fu = fB._4
899- let dW = fB._5
900- $Tuple2(nil, $Tuple3(fv, dP, fu))
919+ let fD = dQ(dR, aQ(dS), unit, unit)
920+ let fx = fD._1
921+ let cX = fD._2
922+ let dP = fD._3
923+ let fw = fD._4
924+ let dW = fD._5
925+ $Tuple2(nil, $Tuple3(fx, dP, fw))
901926 }
902927
903928
904929
905930 @Callable(dB)
906-func getOneTkn (fC,fn) = {
907- let fp = {
908- let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
909- if ($isInstanceOf(fq, "Boolean"))
910- then fq
911- else throw(($getType(fq) + " couldn't be cast to Boolean"))
931+func getOneTkn (fE,fp) = {
932+ let fr = {
933+ let fs = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
934+ if ($isInstanceOf(fs, "Boolean"))
935+ then fs
936+ else throw(($getType(fs) + " couldn't be cast to Boolean"))
912937 }
913- let fD = if (if (aL())
938+ let fF = if (if (aL())
914939 then true
915940 else (aY == n))
916941 then true
917- else fp
918- let ex = [if (if (!(fD))
942+ else fr
943+ let ex = [if (if (!(fF))
919944 then true
920945 else eR(dB))
921946 then true
924949 else aG("exactly 1 payment are expected")]
925950 if ((ex == ex))
926951 then {
927- let ew = aQ(fC)
928- let fs = dB.payments[0]
929- let dS = fs.assetId
930- let ee = fs.amount
952+ let ew = aQ(fE)
953+ let fu = dB.payments[0]
954+ let dS = fu.assetId
955+ let ee = fu.amount
931956 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(ee))
932957 let X = dB.caller
933958 let Y = dB.transactionId
934- let fE = ev(ew, ee, dS, X, Y)
935- if ((fE == fE))
959+ let fG = ev(ew, ee, dS, X, Y)
960+ if ((fG == fG))
936961 then {
937- let ey = fE._5
938- let fu = fE._4
939- let dP = fE._3
940- let cX = fE._2
941- let fF = fE._1
942- let dJ = if (if ((fn > 0))
943- then (fn > fF)
962+ let ey = fG._5
963+ let fw = fG._4
964+ let dP = fG._3
965+ let cX = fG._2
966+ let fH = fG._1
967+ let dJ = if (if ((fp > 0))
968+ then (fp > fH)
944969 else false)
945- then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
946- else fF
947- let fG = invoke(aJ, "burn", [ee], [AttachedPayment(dS, ee)])
948- if ((fG == fG))
970+ then aG(makeString(["amount to receive is less than ", toString(fp)], ""))
971+ else fH
972+ let fI = invoke(aJ, "burn", [ee], [AttachedPayment(dS, ee)])
973+ if ((fI == fI))
949974 then {
950- let fH = [ScriptTransfer(X, dJ, ew)]
951- let fy = if ((dP > 0))
975+ let fJ = [ScriptTransfer(X, dJ, ew)]
976+ let fA = if ((dP > 0))
952977 then [ScriptTransfer(aK, dP, ew)]
953978 else nil
954- let fI = {
955- let fJ = if ((this == aK))
979+ let fK = {
980+ let fL = if ((this == aK))
956981 then 0
957982 else dP
958983 if (ey)
959- then $Tuple2(-((dJ + fJ)), 0)
960- else $Tuple2(0, -((dJ + fJ)))
984+ then $Tuple2(-((dJ + fL)), 0)
985+ else $Tuple2(0, -((dJ + fL)))
961986 }
962- let dl = fI._1
963- let dm = fI._2
964- let fK = dk(dl, dm, 0)
965- let fj = fK._1
966- let db = fK._2
967- let fk = do(dj, db)
968- if ((fk == fk))
969- then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
987+ let dl = fK._1
988+ let dm = fK._2
989+ let fM = dk(dl, dm, 0)
990+ let fk = fM._1
991+ let db = fM._2
992+ let fm = do(dj, db)
993+ if ((fm == fm))
994+ then $Tuple2((((cX ++ fJ) ++ fA) ++ fk), dJ)
970995 else throw("Strict value is not equal to itself.")
971996 }
972997 else throw("Strict value is not equal to itself.")
9801005
9811006 @Callable(dB)
9821007 func getOneTknREADONLY (ew,ee) = {
983- let fL = ev(aQ(ew), ee, aZ, unit, unit)
984- let fF = fL._1
985- let cX = fL._2
986- let dP = fL._3
987- let fu = fL._4
988- let ey = fL._5
989- $Tuple2(nil, $Tuple3(fF, dP, fu))
1008+ let fN = ev(aQ(ew), ee, aZ, unit, unit)
1009+ let fH = fN._1
1010+ let cX = fN._2
1011+ let dP = fN._3
1012+ let fw = fN._4
1013+ let ey = fN._5
1014+ $Tuple2(nil, $Tuple3(fH, dP, fw))
9901015 }
9911016
9921017
9931018
9941019 @Callable(dB)
995-func unstakeAndGetOneTkn (fM,fC,fn) = {
996- let fp = {
997- let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
998- if ($isInstanceOf(fq, "Boolean"))
999- then fq
1000- else throw(($getType(fq) + " couldn't be cast to Boolean"))
1020+func unstakeAndGetOneTkn (fO,fE,fp) = {
1021+ let fr = {
1022+ let fs = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1023+ if ($isInstanceOf(fs, "Boolean"))
1024+ then fs
1025+ else throw(($getType(fs) + " couldn't be cast to Boolean"))
10011026 }
1002- let fD = if (if (aL())
1027+ let fF = if (if (aL())
10031028 then true
10041029 else (aY == n))
10051030 then true
1006- else fp
1007- let ex = [if (if (!(fD))
1031+ else fr
1032+ let ex = [if (if (!(fF))
10081033 then true
10091034 else eR(dB))
10101035 then true
10131038 else aG("no payments are expected")]
10141039 if ((ex == ex))
10151040 then {
1016- let ew = aQ(fC)
1041+ let ew = aQ(fE)
10171042 let X = dB.caller
10181043 let Y = dB.transactionId
10191044 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1020- let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1021- if ((fN == fN))
1045+ let fP = invoke(bf, "unstake", [toBase58String(aZ), fO], nil)
1046+ if ((fP == fP))
10221047 then {
1023- let fO = ev(ew, fM, aZ, X, Y)
1024- if ((fO == fO))
1048+ let fQ = ev(ew, fO, aZ, X, Y)
1049+ if ((fQ == fQ))
10251050 then {
1026- let ey = fO._5
1027- let fu = fO._4
1028- let dP = fO._3
1029- let cX = fO._2
1030- let fF = fO._1
1031- let dJ = if (if ((fn > 0))
1032- then (fn > fF)
1051+ let ey = fQ._5
1052+ let fw = fQ._4
1053+ let dP = fQ._3
1054+ let cX = fQ._2
1055+ let fH = fQ._1
1056+ let dJ = if (if ((fp > 0))
1057+ then (fp > fH)
10331058 else false)
1034- then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
1035- else fF
1036- let fG = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1037- if ((fG == fG))
1059+ then aG(makeString(["amount to receive is less than ", toString(fp)], ""))
1060+ else fH
1061+ let fI = invoke(aJ, "burn", [fO], [AttachedPayment(aZ, fO)])
1062+ if ((fI == fI))
10381063 then {
1039- let fH = [ScriptTransfer(dB.caller, dJ, ew)]
1040- let fy = if ((dP > 0))
1064+ let fJ = [ScriptTransfer(dB.caller, dJ, ew)]
1065+ let fA = if ((dP > 0))
10411066 then [ScriptTransfer(aK, dP, ew)]
10421067 else nil
1043- let fP = {
1044- let fJ = if ((this == aK))
1068+ let fR = {
1069+ let fL = if ((this == aK))
10451070 then 0
10461071 else dP
10471072 if (ey)
1048- then $Tuple2(-((dJ + fJ)), 0)
1049- else $Tuple2(0, -((dJ + fJ)))
1073+ then $Tuple2(-((dJ + fL)), 0)
1074+ else $Tuple2(0, -((dJ + fL)))
10501075 }
1051- let dl = fP._1
1052- let dm = fP._2
1053- let fQ = dk(dl, dm, 0)
1054- let fj = fQ._1
1055- let db = fQ._2
1056- let fk = do(dj, db)
1057- if ((fk == fk))
1058- then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
1076+ let dl = fR._1
1077+ let dm = fR._2
1078+ let fS = dk(dl, dm, 0)
1079+ let fk = fS._1
1080+ let db = fS._2
1081+ let fm = do(dj, db)
1082+ if ((fm == fm))
1083+ then $Tuple2((((cX ++ fJ) ++ fA) ++ fk), dJ)
10591084 else throw("Strict value is not equal to itself.")
10601085 }
10611086 else throw("Strict value is not equal to itself.")
10721097 @Callable(dB)
10731098 func get () = {
10741099 let cI = dA(dB)
1075- let fR = cI._1
1100+ let fT = cI._1
10761101 let cp = cI._2
10771102 let dD = cI._3
10781103 let bX = cI._4
10791104 let cq = cI._5
10801105 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1081- let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1082- if ((fS == fS))
1106+ let fU = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1107+ if ((fU == fU))
10831108 then {
1084- let fT = dk(-(fR), -(cp), 0)
1085- let fj = fT._1
1086- let db = fT._2
1087- let fk = do(dj, db)
1088- if ((fk == fk))
1089- then (cq ++ fj)
1109+ let fV = dk(-(fT), -(cp), 0)
1110+ let fk = fV._1
1111+ let db = fV._2
1112+ let fm = do(dj, db)
1113+ if ((fm == fm))
1114+ then (cq ++ fk)
10901115 else throw("Strict value is not equal to itself.")
10911116 }
10921117 else throw("Strict value is not equal to itself.")
10951120
10961121
10971122 @Callable(dB)
1098-func getNoLess (fU,fV) = {
1123+func getNoLess (fW,fX) = {
10991124 let cI = dA(dB)
11001125 let co = cI._1
11011126 let cp = cI._2
11021127 let dD = cI._3
11031128 let bX = cI._4
11041129 let cq = cI._5
1105- if ((fU > co))
1106- then throw(((("noLessThenAmtAsset failed: " + toString(co)) + " < ") + toString(fU)))
1107- else if ((fV > cp))
1108- then throw(((("noLessThenPriceAsset failed: " + toString(cp)) + " < ") + toString(fV)))
1130+ if ((fW > co))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(co)) + " < ") + toString(fW)))
1132+ else if ((fX > cp))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(cp)) + " < ") + toString(fX)))
11091134 else {
11101135 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1111- let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1112- if ((fS == fS))
1136+ let fU = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1137+ if ((fU == fU))
11131138 then {
1114- let fW = dk(-(co), -(cp), 0)
1115- let fj = fW._1
1116- let db = fW._2
1117- let fk = do(dj, db)
1118- if ((fk == fk))
1119- then (cq ++ fj)
1139+ let fY = dk(-(co), -(cp), 0)
1140+ let fk = fY._1
1141+ let db = fY._2
1142+ let fm = do(dj, db)
1143+ if ((fm == fm))
1144+ then (cq ++ fk)
11201145 else throw("Strict value is not equal to itself.")
11211146 }
11221147 else throw("Strict value is not equal to itself.")
11271152
11281153 @Callable(dB)
11291154 func unstakeAndGet (dJ) = {
1130- let fX = if ((size(dB.payments) != 0))
1155+ let fZ = if ((size(dB.payments) != 0))
11311156 then throw("No payments are expected")
11321157 else true
1133- if ((fX == fX))
1158+ if ((fZ == fZ))
11341159 then {
11351160 let bM = aN()
11361161 let bZ = fromBase58String(bM[q])
11371162 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1138- let fN = invoke(bf, "unstake", [toBase58String(bZ), dJ], nil)
1139- if ((fN == fN))
1163+ let fP = invoke(bf, "unstake", [toBase58String(bZ), dJ], nil)
1164+ if ((fP == fP))
11401165 then {
11411166 let cI = bV(toBase58String(dB.transactionId), toBase58String(bZ), dJ, dB.caller)
11421167 let co = cI._1
11431168 let cp = cI._2
11441169 let cc = parseIntValue(cI._9)
11451170 let cq = cI._10
1146- let fY = if (if (aL())
1171+ let ga = if (if (aL())
11471172 then true
11481173 else (cc == n))
11491174 then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
11501175 else true
1151- if ((fY == fY))
1176+ if ((ga == ga))
11521177 then {
1153- let fS = invoke(aJ, "burn", [dJ], [AttachedPayment(bZ, dJ)])
1154- if ((fS == fS))
1178+ let fU = invoke(aJ, "burn", [dJ], [AttachedPayment(bZ, dJ)])
1179+ if ((fU == fU))
11551180 then {
1156- let fZ = dk(-(co), -(cp), 0)
1157- let fj = fZ._1
1158- let db = fZ._2
1159- let fk = do(dj, db)
1160- if ((fk == fk))
1161- then (cq ++ fj)
1181+ let gb = dk(-(co), -(cp), 0)
1182+ let fk = gb._1
1183+ let db = gb._2
1184+ let fm = do(dj, db)
1185+ if ((fm == fm))
1186+ then (cq ++ fk)
11621187 else throw("Strict value is not equal to itself.")
11631188 }
11641189 else throw("Strict value is not equal to itself.")
11731198
11741199
11751200 @Callable(dB)
1176-func unstakeAndGetNoLess (fM,ga,fV) = {
1177- let fD = if (aL())
1201+func unstakeAndGetNoLess (fO,gc,fX) = {
1202+ let fF = if (aL())
11781203 then true
11791204 else (aY == n)
1180- let ex = [if (!(fD))
1205+ let ex = [if (!(fF))
11811206 then true
11821207 else throw("get operation is blocked by admin"), if ((size(dB.payments) == 0))
11831208 then true
11851210 if ((ex == ex))
11861211 then {
11871212 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1188- let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1189- if ((fN == fN))
1213+ let fP = invoke(bf, "unstake", [toBase58String(aZ), fO], nil)
1214+ if ((fP == fP))
11901215 then {
1191- let cI = bV(toBase58String(dB.transactionId), toBase58String(aZ), fM, dB.caller)
1216+ let cI = bV(toBase58String(dB.transactionId), toBase58String(aZ), fO, dB.caller)
11921217 let co = cI._1
11931218 let cp = cI._2
11941219 let cq = cI._10
1195- let gb = [if ((co >= ga))
1220+ let gd = [if ((co >= gc))
11961221 then true
1197- else throw(makeString(["amount asset amount to receive is less than ", toString(ga)], "")), if ((cp >= fV))
1222+ else throw(makeString(["amount asset amount to receive is less than ", toString(gc)], "")), if ((cp >= fX))
11981223 then true
1199- else throw(makeString(["price asset amount to receive is less than ", toString(fV)], ""))]
1200- if ((gb == gb))
1224+ else throw(makeString(["price asset amount to receive is less than ", toString(fX)], ""))]
1225+ if ((gd == gd))
12011226 then {
1202- let fS = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1203- if ((fS == fS))
1227+ let fU = invoke(aJ, "burn", [fO], [AttachedPayment(aZ, fO)])
1228+ if ((fU == fU))
12041229 then {
1205- let gc = dk(-(co), -(cp), 0)
1206- let fj = gc._1
1207- let db = gc._2
1208- let fk = do(dj, db)
1209- if ((fk == fk))
1210- then (cq ++ fj)
1230+ let ge = dk(-(co), -(cp), 0)
1231+ let fk = ge._1
1232+ let db = ge._2
1233+ let fm = do(dj, db)
1234+ if ((fm == fm))
1235+ then (cq ++ fk)
12111236 else throw("Strict value is not equal to itself.")
12121237 }
12131238 else throw("Strict value is not equal to itself.")
12221247
12231248
12241249 @Callable(dB)
1225-func activate (gd,ge) = if ((toString(dB.caller) != toString(aJ)))
1250+func activate (gf,gg) = if ((toString(dB.caller) != toString(aJ)))
12261251 then throw("permissions denied")
1227- else $Tuple2([StringEntry(aa(), gd), StringEntry(ab(), ge)], "success")
1252+ else $Tuple2([StringEntry(aa(), gf), StringEntry(ab(), gg)], "success")
12281253
12291254
12301255
12311256 @Callable(dB)
12321257 func refreshKLp () = {
1233- let gf = valueOrElse(getInteger(ag), 0)
1234- let gg = if (((height - gf) >= aj))
1258+ let gh = valueOrElse(getInteger(ag), 0)
1259+ let gi = if (((height - gh) >= aj))
12351260 then unit
12361261 else aG(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1237- if ((gg == gg))
1262+ if ((gi == gi))
12381263 then {
12391264 let dv = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aI("invalid kLp"))
1240- let gh = dk(0, 0, 0)
1241- let gi = gh._1
1242- let db = gh._2
1265+ let gj = dk(0, 0, 0)
1266+ let gk = gj._1
1267+ let db = gj._2
12431268 let dn = if ((dv != db))
1244- then gi
1269+ then gk
12451270 else aG("nothing to refresh")
12461271 $Tuple2(dn, toString(db))
12471272 }
13001325 func statsREADONLY () = {
13011326 let bM = aN()
13021327 let bZ = fromBase58String(bM[q])
1303- let gj = bM[r]
1304- let gk = bM[s]
1328+ let gl = bM[r]
1329+ let gm = bM[s]
13051330 let cB = bM[v]
13061331 let cC = bM[w]
13071332 let bN = parseIntValue(bM[t])
13081333 let bO = parseIntValue(bM[u])
1309- let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1310- let gm = bw(gj)
1311- let gn = bw(gk)
1312- let go = if ((gl == 0))
1334+ let gn = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1335+ let go = bw(gl)
1336+ let gp = bw(gm)
1337+ let gq = if ((gn == 0))
13131338 then [e, e, e]
1314- else bK(gm, gn, gl)
1339+ else bK(go, gp, gn)
13151340 let cj = 0
1316- let gp = G(go[1], b)
1317- let gq = G(go[2], b)
1318- let gr = value(getInteger(aJ, au(toString(this))))
1319- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(cj), toString(gp), toString(gq), toString(gr)], j))
1341+ let gr = G(gq[1], b)
1342+ let gs = G(gq[2], b)
1343+ let gt = value(getInteger(aJ, au(toString(this))))
1344+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(go), toString(gp), toString(gn), toString(cj), toString(gr), toString(gs), toString(gt)], j))
13201345 }
13211346
13221347
13321357 let bN = parseIntValue(bM[t])
13331358 let bO = parseIntValue(bM[u])
13341359 let cc = bM[p]
1335- let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1336- let gm = bw(cz)
1337- let gn = bw(cA)
1338- let bI = D(gm, bN)
1339- let bJ = D(gn, bO)
1340- let ci = if ((gl == 0))
1360+ let gn = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1361+ let go = bw(cz)
1362+ let gp = bw(cA)
1363+ let bI = D(go, bN)
1364+ let bJ = D(gp, bO)
1365+ let ci = if ((gn == 0))
13411366 then e
13421367 else by(bJ, bI)
13431368 let cF = D(ct, bN)
13451370 let cv = G(cG, bO)
13461371 let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
13471372 let cQ = dH._1
1348- let gs = dH._3
1373+ let gu = dH._3
13491374 let ce = dH._4
13501375 let cg = dH._5
13511376 let cd = dH._6
13651390 let bN = parseIntValue(bM[t])
13661391 let bO = parseIntValue(bM[u])
13671392 let cc = bM[p]
1368- let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1369- let gt = bw(cz)
1370- let gu = bw(cA)
1371- let gv = D(gt, bN)
1372- let gw = D(gu, bO)
1373- let ci = if ((gl == 0))
1393+ let gn = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1394+ let gv = bw(cz)
1395+ let gw = bw(cA)
1396+ let gx = D(gv, bN)
1397+ let gy = D(gw, bO)
1398+ let ci = if ((gn == 0))
13741399 then e
1375- else by(gw, gv)
1400+ else by(gy, gx)
13761401 let cG = D(cv, bO)
13771402 let cF = fraction(cG, d, ci)
13781403 let ct = G(cF, bN)
13791404 let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
13801405 let cQ = dH._1
1381- let gs = dH._3
1406+ let gu = dH._3
13821407 let ce = dH._4
13831408 let cg = dH._5
13841409 let cd = dH._6
13881413
13891414
13901415 @Callable(dB)
1391-func evaluateGetREADONLY (gx,gy) = {
1392- let cI = bV("", gx, gy, this)
1416+func evaluateGetREADONLY (gz,gA) = {
1417+ let cI = bV("", gz, gA, this)
13931418 let co = cI._1
13941419 let cp = cI._2
13951420 let ce = cI._5
14011426 }
14021427
14031428
1404-@Verifier(gz)
1405-func gA () = {
1406- let gB = {
1429+@Verifier(gB)
1430+func gC () = {
1431+ let gD = {
14071432 let dM = eO()
14081433 if ($isInstanceOf(dM, "ByteVector"))
14091434 then {
14111436 eS
14121437 }
14131438 else if ($isInstanceOf(dM, "Unit"))
1414- then gz.senderPublicKey
1439+ then gB.senderPublicKey
14151440 else throw("Match error")
14161441 }
1417- let dM = gz
1442+ let dM = gB
14181443 if ($isInstanceOf(dM, "Order"))
14191444 then {
14201445 let dr = dM
1421- let gC = aM()
1446+ let gE = aM()
14221447 let az = dq(dr)
14231448 let aA = sigVerify(dr.bodyBytes, dr.proofs[0], dr.senderPublicKey)
1424- let aB = sigVerify(dr.bodyBytes, dr.proofs[1], gC)
1449+ let aB = sigVerify(dr.bodyBytes, dr.proofs[1], gE)
14251450 if (if (if (az)
14261451 then aA
14271452 else false)
14331458 else if ($isInstanceOf(dM, "SetScriptTransaction"))
14341459 then {
14351460 let eP = dM
1436- let gD = blake2b256(value(eP.script))
1437- let gE = fromBase64String(value(getString(aJ, aw())))
1438- let gF = scriptHash(this)
1439- if (if ((gE == gD))
1440- then (gF != gD)
1461+ let gF = blake2b256(value(eP.script))
1462+ let gG = fromBase64String(value(getString(aJ, aw())))
1463+ let gH = scriptHash(this)
1464+ if (if ((gG == gF))
1465+ then (gH != gF)
14411466 else false)
14421467 then true
1443- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1468+ else sigVerify(gB.bodyBytes, gB.proofs[0], gD)
14441469 }
1445- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1470+ else sigVerify(gB.bodyBytes, gB.proofs[0], gD)
14461471 }
14471472
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 (H,I) = toInt(fraction(H, toBigInt(I), d))
6666
6767
6868 func J (K,L,M) = fraction(K, L, M)
6969
7070
7171 func N (H) = if ((0 > H))
7272 then -(H)
7373 else H
7474
7575
7676 func O (H) = if ((e > H))
7777 then -(H)
7878 else H
7979
8080
8181 func P () = "%s__factoryContract"
8282
8383
8484 func Q () = "%s__managerPublicKey"
8585
8686
8787 func R () = "%s__pendingManagerPublicKey"
8888
8989
9090 func S () = "%s%s__price__last"
9191
9292
9393 func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
9494
9595
9696 func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
9797
9898
9999 func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
100100
101101
102102 func aa () = "%s__amountAsset"
103103
104104
105105 func ab () = "%s__priceAsset"
106106
107107
108108 let ac = "%s__fee"
109109
110110 let ad = fraction(10, b, 10000)
111111
112112 let ae = valueOrElse(getInteger(this, ac), ad)
113113
114114 let af = makeString(["%s", "kLp"], j)
115115
116116 let ag = makeString(["%s", "kLpRefreshedHeight"], j)
117117
118118 let ah = makeString(["%s", "refreshKLpDelay"], j)
119119
120120 let ai = 30
121121
122122 let aj = valueOrElse(getInteger(this, ah), ai)
123123
124124 func ak () = "%s__factoryConfig"
125125
126126
127127 func al () = "%s%s__matcher__publicKey"
128128
129129
130130 func am (an) = (("%s%s%s__" + an) + "__mappings__poolContract2LpAsset")
131131
132132
133133 func ao (ap,aq) = (((("%d%d%s__" + ap) + "__") + aq) + "__config")
134134
135135
136136 func ar (as) = ("%s%s%s__mappings__baseAsset2internalId__" + as)
137137
138138
139139 func at () = "%s__shutdown"
140140
141141
142142 func au (av) = ("%s%s__poolWeight__" + av)
143143
144144
145145 func aw () = "%s__allowedLpScriptHash"
146146
147147
148148 let ax = "%s__feeCollectorAddress"
149149
150150 func ay (az,aA,aB) = throw(((((("order validation failed: orderValid=" + toString(az)) + " senderValid=") + toString(aA)) + " matcherValid=") + toString(aB)))
151151
152152
153153 func aC (aD,aE) = valueOrErrorMessage(getString(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
154154
155155
156156 func aF (aD,aE) = valueOrErrorMessage(getInteger(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
157157
158158
159159 func aG (aH) = throw(makeString(["lp.ride:", aH], " "))
160160
161161
162162 func aI (aH) = makeString(["lp.ride:", aH], " ")
163163
164164
165165 let aJ = addressFromStringValue(aC(this, P()))
166166
167167 let aK = addressFromStringValue(aC(aJ, ax))
168168
169169 func aL () = valueOrElse(getBoolean(aJ, at()), false)
170170
171171
172172 func aM () = fromBase58String(aC(aJ, al()))
173173
174174
175175 func aN () = {
176176 let aO = aC(this, aa())
177177 let aP = aC(this, ab())
178178 let aq = aF(aJ, ar(aP))
179179 let ap = aF(aJ, ar(aO))
180180 split(aC(aJ, ao(toString(ap), toString(aq))), j)
181181 }
182182
183183
184184 func aQ (aR) = if ((aR == i))
185185 then unit
186186 else fromBase58String(aR)
187187
188188
189189 func aS (aR) = if ((aR == unit))
190190 then i
191191 else toBase58String(value(aR))
192192
193193
194194 func aT (aU) = $Tuple7(addressFromStringValue(aU[o]), parseIntValue(aU[p]), fromBase58String(aU[q]), aQ(aU[r]), aQ(aU[s]), parseIntValue(aU[t]), parseIntValue(aU[u]))
195195
196196
197197 let aV = aT(aN())
198198
199199 let aW = aV
200200
201201 let aX = aW._1
202202
203203 let aY = aW._2
204204
205205 let aZ = aW._3
206206
207207 let ba = aW._4
208208
209209 let bb = aW._5
210210
211211 let bc = aW._6
212212
213213 let bd = aW._7
214214
215215 func be () = split(aC(aJ, ak()), j)
216216
217217
218218 let bf = valueOrErrorMessage(addressFromString(be()[B]), "incorrect staking address")
219219
220220 let bg = valueOrErrorMessage(addressFromString(be()[C]), "incorrect staking address")
221221
222222 func bh (bi,bj,bk,bl,bm,bn,bo,bp,bq,br) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br)], j)
223223
224224
225225 func bs (bt,bu,bv,bl,bo,bp) = makeString(["%d%d%d%d%d%d", toString(bt), toString(bu), toString(bv), toString(bl), toString(bo), toString(bp)], j)
226226
227227
228228 func bw (bx) = if ((bx == "WAVES"))
229229 then wavesBalance(this).available
230230 else assetBalance(this, fromBase58String(bx))
231231
232232
233233 func by (bz,bA) = fraction(bz, d, bA)
234234
235235
236236 func bB (bz,bA,bC) = fraction(bz, d, bA, bC)
237237
238238
239239 func bD (bE,bF,bG,bH) = {
240240 let bI = D(bG, bE)
241241 let bJ = D(bH, bF)
242242 by(bJ, bI)
243243 }
244244
245245
246246 func bK (bG,bH,bL) = {
247247 let bM = aN()
248248 let bN = parseIntValue(bM[t])
249249 let bO = parseIntValue(bM[u])
250250 let bP = bD(bN, bO, bG, bH)
251251 let bA = D(bG, bN)
252252 let bz = D(bH, bO)
253253 let bQ = D(bL, b)
254254 let bR = by(bA, bQ)
255255 let bS = by(bz, bQ)
256256 [bP, bR, bS]
257257 }
258258
259259
260260 func bT (bG,bH,bL) = {
261261 let bU = bK(bG, bH, bL)
262262 [G(bU[0], b), G(bU[1], b), G(bU[2], b)]
263263 }
264264
265265
266266 func bV (bW,bX,bY,X) = {
267267 let bM = aN()
268268 let bZ = bM[q]
269269 let ca = bM[r]
270270 let cb = bM[s]
271271 let bE = parseIntValue(bM[t])
272272 let bF = parseIntValue(bM[u])
273273 let cc = bM[p]
274274 let cd = valueOrErrorMessage(assetInfo(fromBase58String(bZ)), (("Asset " + bZ) + " doesn't exist")).quantity
275275 if ((bZ != bX))
276276 then throw("Invalid asset passed.")
277277 else {
278278 let ce = bw(ca)
279279 let cf = D(ce, bE)
280280 let cg = bw(cb)
281281 let ch = D(cg, bF)
282282 let ci = by(ch, cf)
283283 let cj = G(ci, b)
284284 let ck = D(bY, b)
285285 let cl = D(cd, b)
286286 let cm = fraction(cf, ck, cl)
287287 let cn = fraction(ch, ck, cl)
288288 let co = G(cm, bE)
289289 let cp = G(cn, bF)
290290 let cq = if ((bW == ""))
291291 then nil
292292 else [ScriptTransfer(X, co, if ((ca == "WAVES"))
293293 then unit
294294 else fromBase58String(ca)), ScriptTransfer(X, cp, if ((cb == "WAVES"))
295295 then unit
296296 else fromBase58String(cb)), StringEntry(Z(toString(X), bW), bs(co, cp, bY, cj, height, lastBlock.timestamp)), IntegerEntry(S(), cj), IntegerEntry(T(height, lastBlock.timestamp), cj)]
297297 $Tuple10(co, cp, ca, cb, ce, cg, cd, ci, cc, cq)
298298 }
299299 }
300300
301301
302302 func cr (bW,cs,ct,cu,cv,cw,X,cx,cy) = {
303303 let bM = aN()
304304 let bZ = fromBase58String(bM[q])
305305 let cz = bM[r]
306306 let cA = bM[s]
307307 let cB = bM[v]
308308 let cC = bM[w]
309309 let bN = parseIntValue(bM[t])
310310 let bO = parseIntValue(bM[u])
311311 let cc = bM[p]
312312 let cd = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
313313 let cD = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
314314 let cE = toBase58String(valueOrElse(cw, fromBase58String("WAVES")))
315315 if (if ((cz != cD))
316316 then true
317317 else (cA != cE))
318318 then throw("Invalid amt or price asset passed.")
319319 else {
320320 let ce = if (cx)
321321 then bw(cz)
322322 else (bw(cz) - ct)
323323 let cg = if (cx)
324324 then bw(cA)
325325 else (bw(cA) - cv)
326326 let cF = D(ct, bN)
327327 let cG = D(cv, bO)
328328 let cH = by(cG, cF)
329329 let cf = D(ce, bN)
330330 let ch = D(cg, bO)
331331 let cI = if ((cd == 0))
332332 then {
333333 let ci = e
334334 let cJ = e
335335 let bQ = pow((cF * cG), 0, toBigInt(5), 1, 0, DOWN)
336336 $Tuple5(G(bQ, b), G(cF, bN), G(cG, bO), by((ch + cG), (cf + cF)), cJ)
337337 }
338338 else {
339339 let ci = by(ch, cf)
340340 let cJ = fraction(O((ci - cH)), d, ci)
341341 let cK = D(cs, b)
342342 if (if ((ci != e))
343343 then (cJ > cK)
344344 else false)
345345 then throw(((("Price slippage " + toString(cJ)) + " exceeded the passed limit of ") + toString(cK)))
346346 else {
347347 let cl = D(cd, b)
348348 let cL = fraction(cF, bB(ch, cf, CEILING), d, CEILING)
349349 let cM = fraction(cG, d, bB(ch, cf, FLOOR), CEILING)
350350 let cN = if ((cL > cG))
351351 then $Tuple2(cM, cG)
352352 else $Tuple2(cF, cL)
353353 let cO = cN._1
354354 let cP = cN._2
355355 let bQ = fraction(cl, cP, ch, FLOOR)
356356 $Tuple5(G(bQ, b), G(cO, bN), G(cP, bO), ci, cJ)
357357 }
358358 }
359359 let cQ = cI._1
360360 let cR = cI._2
361361 let cS = cI._3
362362 let cj = G(cI._4, b)
363363 let cT = G(cI._5, b)
364364 if ((0 >= cQ))
365365 then throw("Invalid calculations. LP calculated is less than zero.")
366366 else {
367367 let cU = if (!(cy))
368368 then 0
369369 else cQ
370370 let cV = (ct - cR)
371371 let cW = (cv - cS)
372372 let cX = [IntegerEntry(S(), cj), IntegerEntry(T(height, lastBlock.timestamp), cj), StringEntry(W(X, bW), bh(cR, cS, cU, cj, cs, cT, height, lastBlock.timestamp, cV, cW))]
373373 $Tuple13(cQ, cU, cj, ce, cg, cd, bZ, cc, cX, cV, cW, cu, cw)
374374 }
375375 }
376376 }
377377
378378
379379 func cY (cZ,da,cd) = {
380380 let db = fraction(pow((cZ * da), 0, toBigInt(5), 1, 18, DOWN), g, cd)
381381 if ((cd == f))
382382 then f
383383 else db
384384 }
385385
386386
387387 func dc (dd,de,df) = {
388388 let dg = (toBigInt(bw(aS(ba))) - dd)
389389 let dh = (toBigInt(bw(aS(bb))) - de)
390390 let di = (toBigInt(value(assetInfo(aZ)).quantity) - df)
391391 let dj = cY(dg, dh, di)
392392 dj
393393 }
394394
395395
396396 func dk (dl,dm,df) = {
397397 let dg = (bw(aS(ba)) + dl)
398398 let dh = (bw(aS(bb)) + dm)
399399 let di = (value(assetInfo(aZ)).quantity + df)
400400 let db = cY(toBigInt(dg), toBigInt(dh), toBigInt(di))
401401 let dn = [IntegerEntry(ag, height), StringEntry(af, toString(db))]
402402 $Tuple2(dn, db)
403403 }
404404
405405
406406 func do (dp,db) = if ((db >= dp))
407407 then true
408408 else aG(makeString(["updated KLp lower than current KLp", toString(dp), toString(db)], " "))
409409
410410
411411 func dq (dr) = {
412412 let ds = dr.amount
413413 let dt = fraction(dr.amount, dr.price, b, FLOOR)
414414 let du = if ((dr.orderType == Buy))
415415 then $Tuple2(ds, -(dt))
416416 else $Tuple2(-(ds), dt)
417417 let dl = du._1
418418 let dm = du._2
419419 if (if (if (aL())
420420 then true
421421 else (aY == m))
422422 then true
423423 else (aY == n))
424424 then throw("Exchange operations disabled")
425425 else if (if ((dr.assetPair.amountAsset != ba))
426426 then true
427427 else (dr.assetPair.priceAsset != bb))
428428 then throw("Wrong order assets.")
429429 else {
430430 let dv = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, af), aI("kLp is required"))), aI("invalid kLp"))
431431 let dw = dk(dl, dm, 0)
432432 let dx = dw._1
433433 let dy = dw._2
434434 let dz = (dy >= dv)
435435 dz
436436 }
437437 }
438438
439439
440440 func dA (dB) = if ((size(dB.payments) != 1))
441441 then throw("exactly 1 payment is expected")
442442 else {
443443 let dC = value(dB.payments[0])
444444 let bX = value(dC.assetId)
445445 let dD = dC.amount
446446 let cI = bV(toBase58String(dB.transactionId), toBase58String(bX), dD, dB.caller)
447447 let co = cI._1
448448 let cp = cI._2
449449 let cc = parseIntValue(cI._9)
450450 let cq = cI._10
451451 if (if (aL())
452452 then true
453453 else (cc == n))
454454 then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
455455 else $Tuple5(co, cp, dD, bX, cq)
456456 }
457457
458458
459459 func dE (dB,cs,cy) = if ((size(dB.payments) != 2))
460460 then throw("exactly 2 payments are expected")
461461 else {
462462 let dF = value(dB.payments[0])
463463 let dG = value(dB.payments[1])
464464 let dH = cr(toBase58String(dB.transactionId), cs, dF.amount, dF.assetId, dG.amount, dG.assetId, toString(dB.caller), false, cy)
465465 let cc = parseIntValue(dH._8)
466466 if (if (if (aL())
467467 then true
468468 else (cc == l))
469469 then true
470470 else (cc == n))
471471 then throw(("Put operation is blocked by admin. Status = " + toString(cc)))
472472 else dH
473473 }
474474
475475
476476 func dI (dJ) = {
477477 let dK = invoke(aJ, "emit", [dJ], nil)
478478 if ((dK == dK))
479479 then {
480480 let dL = {
481481 let dM = dK
482482 if ($isInstanceOf(dM, "Address"))
483483 then {
484484 let dN = dM
485485 invoke(dN, "emit", [dJ], nil)
486486 }
487487 else unit
488488 }
489489 if ((dL == dL))
490490 then dJ
491491 else throw("Strict value is not equal to itself.")
492492 }
493493 else throw("Strict value is not equal to itself.")
494494 }
495495
496496
497497 func dO (dJ) = {
498498 let dP = fraction(dJ, ae, b)
499499 $Tuple2((dJ - dP), dP)
500500 }
501501
502502
503503 func dQ (dR,dS,X,Y) = {
504504 let dT = (Y == unit)
505505 let dU = bw(aS(ba))
506506 let dV = bw(aS(bb))
507507 let dW = if ((dS == ba))
508508 then true
509509 else if ((dS == bb))
510510 then false
511511 else aG("invalid asset")
512512 let dX = if (dT)
513513 then $Tuple2(dU, dV)
514514 else if (dW)
515515 then $Tuple2((dU - dR), dV)
516516 else $Tuple2(dU, (dV - dR))
517517 let dY = dX._1
518518 let dZ = dX._2
519519 let ea = if (dW)
520520 then $Tuple2(dR, 0)
521521 else $Tuple2(0, dR)
522522 let eb = ea._1
523523 let ec = ea._2
524524 let ds = dO(eb)._1
525525 let dt = dO(ec)._1
526526 let ed = dO(dR)
527527 let ee = ed._1
528528 let dP = ed._2
529529 let ef = (dY + ds)
530530 let eg = (dZ + dt)
531531 let eh = by(D(eg, bd), D(ef, bc))
532532 let ei = G(eh, b)
533533 let ej = if (dW)
534534 then dY
535535 else dZ
536536 let ek = toBigInt(ej)
537537 let el = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
538538 let em = if ((el > f))
539539 then true
540540 else aG("initial deposit requires all coins")
541541 if ((em == em))
542542 then {
543543 let en = toBigInt(ee)
544544 let eo = max([0, toInt(((el * (sqrtBigInt((d + ((en * d) / ek)), 18, 18, DOWN) - d)) / d))])
545545 let cX = if (dT)
546546 then nil
547547 else [IntegerEntry(S(), ei), IntegerEntry(T(height, lastBlock.timestamp), ei), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(eb, ec, eo, ei, 0, 0, height, lastBlock.timestamp, 0, 0))]
548548 let ep = by(D(dZ, bd), D(dY, bc))
549549 let eq = G(ep, b)
550550 let er = {
551551 let es = if (dW)
552552 then $Tuple2(eb, dY)
553553 else $Tuple2(ec, dZ)
554554 let dJ = es._1
555555 let et = es._2
556556 let eu = toInt(fraction(el, toBigInt((dJ / 2)), toBigInt(et)))
557557 fraction((eo - eu), b, eu)
558558 }
559559 $Tuple5(eo, cX, dP, er, dW)
560560 }
561561 else throw("Strict value is not equal to itself.")
562562 }
563563
564564
565565 func ev (ew,ee,dS,X,Y) = {
566566 let dT = (Y == unit)
567567 let ex = [if ((dS == aZ))
568568 then true
569569 else aG("invalid lp asset")]
570570 if ((ex == ex))
571571 then {
572572 let ey = if ((ew == ba))
573573 then true
574574 else if ((ew == bb))
575575 then false
576576 else aG("invalid asset")
577577 let ez = if (ey)
578578 then toBigInt(bw(aS(ba)))
579579 else toBigInt(bw(aS(bb)))
580580 let eA = bw(aS(ba))
581581 let eB = bw(aS(bb))
582582 let eC = if (ey)
583583 then eA
584584 else eB
585585 let eD = toBigInt(eC)
586586 let el = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
587587 let eE = toBigInt(ee)
588588 let eF = max([0, toInt(((ez * (d - pow((d - ((eE * d) / el)), 18, h, 0, 18, DOWN))) / d))])
589589 let eG = dO(eF)
590590 let eH = eG._1
591591 let dP = eG._2
592592 let eI = if (ey)
593593 then $Tuple4(eH, 0, (eA - eF), eB)
594594 else $Tuple4(0, eH, eA, (eB - eF))
595595 let eJ = eI._1
596596 let eK = eI._2
597597 let eL = eI._3
598598 let eM = eI._4
599599 let eh = by(D(eM, bd), D(eL, bc))
600600 let ei = G(eh, b)
601601 let cX = if (dT)
602602 then nil
603603 else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(eJ, eK, ee, ei, height, lastBlock.timestamp)), IntegerEntry(S(), ei), IntegerEntry(T(height, lastBlock.timestamp), ei)]
604604 let ep = by(D(eB, bd), D(eA, bc))
605605 let eq = G(ep, b)
606606 let er = {
607607 let eN = (toInt(fraction(ez, eE, el)) * 2)
608608 fraction((eH - eN), b, eN)
609609 }
610610 $Tuple5(eH, cX, dP, er, ey)
611611 }
612612 else throw("Strict value is not equal to itself.")
613613 }
614614
615615
616616 func eO () = {
617617 let dM = getString(Q())
618618 if ($isInstanceOf(dM, "String"))
619619 then {
620620 let eP = dM
621621 fromBase58String(eP)
622622 }
623623 else if ($isInstanceOf(dM, "Unit"))
624624 then unit
625625 else throw("Match error")
626626 }
627627
628628
629629 func eQ () = {
630630 let dM = getString(R())
631631 if ($isInstanceOf(dM, "String"))
632632 then {
633633 let eP = dM
634634 fromBase58String(eP)
635635 }
636636 else if ($isInstanceOf(dM, "Unit"))
637637 then unit
638638 else throw("Match error")
639639 }
640640
641641
642642 func eR (dB) = {
643643 let dM = eO()
644644 if ($isInstanceOf(dM, "ByteVector"))
645645 then {
646646 let eS = dM
647647 (dB.callerPublicKey == eS)
648648 }
649649 else if ($isInstanceOf(dM, "Unit"))
650650 then (dB.caller == this)
651651 else throw("Match error")
652652 }
653653
654654
655655 func eT (dB) = {
656656 let eU = throw("Permission denied")
657657 let dM = eO()
658658 if ($isInstanceOf(dM, "ByteVector"))
659659 then {
660660 let eS = dM
661661 if ((dB.callerPublicKey == eS))
662662 then true
663663 else eU
664664 }
665665 else if ($isInstanceOf(dM, "Unit"))
666666 then if ((dB.caller == this))
667667 then true
668668 else eU
669669 else throw("Match error")
670670 }
671671
672672
673673 @Callable(dB)
674674 func setManager (eV) = {
675675 let eW = eT(dB)
676676 if ((eW == eW))
677677 then {
678678 let eX = fromBase58String(eV)
679679 if ((eX == eX))
680680 then [StringEntry(R(), eV)]
681681 else throw("Strict value is not equal to itself.")
682682 }
683683 else throw("Strict value is not equal to itself.")
684684 }
685685
686686
687687
688688 @Callable(dB)
689689 func confirmManager () = {
690690 let eY = eQ()
691691 let eZ = if (isDefined(eY))
692692 then true
693693 else throw("No pending manager")
694694 if ((eZ == eZ))
695695 then {
696696 let fa = if ((dB.callerPublicKey == value(eY)))
697697 then true
698698 else throw("You are not pending manager")
699699 if ((fa == fa))
700700 then [StringEntry(Q(), toBase58String(value(eY))), DeleteEntry(R())]
701701 else throw("Strict value is not equal to itself.")
702702 }
703703 else throw("Strict value is not equal to itself.")
704704 }
705705
706706
707707
708708 @Callable(dB)
709709 func put (cs,fb) = if ((0 > cs))
710710 then throw("Invalid slippageTolerance passed")
711711 else {
712712 let dH = dE(dB, cs, true)
713713 let cU = dH._2
714714 let bZ = dH._7
715715 let cq = dH._9
716716 let cV = dH._10
717717 let cW = dH._11
718718 let fc = dH._12
719719 let fd = dH._13
720720 let dF = toBigInt(value(dB.payments[0]).amount)
721721 let dG = toBigInt(value(dB.payments[1]).amount)
722- let dj = dc(dF, dG, toBigInt(0))
723- if ((dj == dj))
722+ let dg = (toBigInt(bw(aS(ba))) - dF)
723+ if ((dg == dg))
724724 then {
725- let dK = invoke(aJ, "emit", [cU], nil)
726- if ((dK == dK))
725+ let dh = (toBigInt(bw(aS(bb))) - dG)
726+ if ((dh == dh))
727727 then {
728- let dL = {
729- let dM = dK
730- if ($isInstanceOf(dM, "Address"))
731- then {
732- let dN = dM
733- invoke(dN, "emit", [cU], nil)
734- }
735- else unit
736- }
737- if ((dL == dL))
728+ let di = toBigInt(value(assetInfo(aZ)).quantity)
729+ if ((di == di))
738730 then {
739- let fe = if ((cV > 0))
740- then invoke(bg, "put", nil, [AttachedPayment(fc, cV)])
741- else nil
742- if ((fe == fe))
731+ let dj = dc(dF, dG, toBigInt(0))
732+ if ((dj == dj))
743733 then {
744- let ff = if ((cW > 0))
745- then invoke(bg, "put", nil, [AttachedPayment(fd, cW)])
746- else nil
747- if ((ff == ff))
734+ let dK = invoke(aJ, "emit", [cU], nil)
735+ if ((dK == dK))
748736 then {
749- let fg = if (fb)
737+ let dL = {
738+ let dM = dK
739+ if ($isInstanceOf(dM, "Address"))
740+ then {
741+ let dN = dM
742+ invoke(dN, "emit", [cU], nil)
743+ }
744+ else unit
745+ }
746+ if ((dL == dL))
750747 then {
751- let fh = invoke(bf, "stake", nil, [AttachedPayment(bZ, cU)])
752- if ((fh == fh))
753- then nil
754- else throw("Strict value is not equal to itself.")
755- }
756- else [ScriptTransfer(dB.caller, cU, bZ)]
757- let fi = dk(0, 0, 0)
758- if ((fi == fi))
759- then {
760- let db = fi._2
761- let fj = fi._1
762- let fk = do(dj, db)
763- if ((fk == fk))
764- then ((cq ++ fg) ++ fj)
748+ let fe = if ((cV > 0))
749+ then invoke(bg, "put", nil, [AttachedPayment(fc, cV)])
750+ else nil
751+ if ((fe == fe))
752+ then {
753+ let ff = if ((cW > 0))
754+ then invoke(bg, "put", nil, [AttachedPayment(fd, cW)])
755+ else nil
756+ if ((ff == ff))
757+ then {
758+ let fg = if (fb)
759+ then {
760+ let fh = invoke(bf, "stake", nil, [AttachedPayment(bZ, cU)])
761+ if ((fh == fh))
762+ then nil
763+ else throw("Strict value is not equal to itself.")
764+ }
765+ else [ScriptTransfer(dB.caller, cU, bZ)]
766+ let fi = value(assetInfo(aZ)).quantity
767+ if ((fi == fi))
768+ then {
769+ let fj = dk(0, 0, 0)
770+ if ((fj == fj))
771+ then {
772+ let db = fj._2
773+ let fk = fj._1
774+ let fl = aG(makeString([toString(dg), toString(dh), toString(di), toString(dj), toString(db), toString(cU), toString(cV), toString(cW), toString(di), toString(fi)], " "))
775+ if ((fl == fl))
776+ then {
777+ let fm = do(dj, db)
778+ if ((fm == fm))
779+ then ((cq ++ fg) ++ fk)
780+ else throw("Strict value is not equal to itself.")
781+ }
782+ else throw("Strict value is not equal to itself.")
783+ }
784+ else throw("Strict value is not equal to itself.")
785+ }
786+ else throw("Strict value is not equal to itself.")
787+ }
788+ else throw("Strict value is not equal to itself.")
789+ }
765790 else throw("Strict value is not equal to itself.")
766791 }
767792 else throw("Strict value is not equal to itself.")
768793 }
769794 else throw("Strict value is not equal to itself.")
770795 }
771796 else throw("Strict value is not equal to itself.")
772797 }
773798 else throw("Strict value is not equal to itself.")
774799 }
775800 else throw("Strict value is not equal to itself.")
776801 }
777802 else throw("Strict value is not equal to itself.")
778803 }
779804
780805
781806
782807 @Callable(dB)
783-func putForFree (fl) = if ((0 > fl))
808+func putForFree (fn) = if ((0 > fn))
784809 then throw("Invalid value passed")
785810 else {
786- let dH = dE(dB, fl, false)
811+ let dH = dE(dB, fn, false)
787812 let cq = dH._9
788813 let dF = toBigInt(value(dB.payments[0]).amount)
789814 let dG = toBigInt(value(dB.payments[1]).amount)
790815 let dj = dc(dF, dG, toBigInt(0))
791816 if ((dj == dj))
792817 then {
793- let fm = dk(0, 0, 0)
794- let fj = fm._1
795- let db = fm._2
796- let fk = do(dj, db)
797- if ((fk == fk))
798- then (cq ++ fj)
818+ let fo = dk(0, 0, 0)
819+ let fk = fo._1
820+ let db = fo._2
821+ let fm = do(dj, db)
822+ if ((fm == fm))
823+ then (cq ++ fk)
799824 else throw("Strict value is not equal to itself.")
800825 }
801826 else throw("Strict value is not equal to itself.")
802827 }
803828
804829
805830
806831 @Callable(dB)
807-func putOneTkn (fn,fo) = {
808- let fp = {
809- let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810- if ($isInstanceOf(fq, "Boolean"))
811- then fq
812- else throw(($getType(fq) + " couldn't be cast to Boolean"))
832+func putOneTkn (fp,fq) = {
833+ let fr = {
834+ let fs = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
835+ if ($isInstanceOf(fs, "Boolean"))
836+ then fs
837+ else throw(($getType(fs) + " couldn't be cast to Boolean"))
813838 }
814- let fr = if (if (if (aL())
839+ let ft = if (if (if (aL())
815840 then true
816841 else (aY == l))
817842 then true
818843 else (aY == n))
819844 then true
820- else fp
821- let ex = [if (if (!(fr))
845+ else fr
846+ let ex = [if (if (!(ft))
822847 then true
823848 else eR(dB))
824849 then true
825850 else aG("put operation is blocked by admin"), if ((size(dB.payments) == 1))
826851 then true
827852 else aG("exactly 1 payment are expected")]
828853 if ((ex == ex))
829854 then {
830- let fs = dB.payments[0]
831- let dS = fs.assetId
832- let dR = fs.amount
855+ let fu = dB.payments[0]
856+ let dS = fu.assetId
857+ let dR = fu.amount
833858 let dj = if ((dS == ba))
834859 then dc(toBigInt(dR), toBigInt(0), toBigInt(0))
835860 else if ((dS == bb))
836861 then dc(toBigInt(0), toBigInt(dR), toBigInt(0))
837862 else aG("payment asset is not supported")
838863 let X = dB.caller
839864 let Y = dB.transactionId
840- let ft = dQ(dR, dS, X, Y)
841- if ((ft == ft))
865+ let fv = dQ(dR, dS, X, Y)
866+ if ((fv == fv))
842867 then {
843- let dW = ft._5
844- let fu = ft._4
845- let dP = ft._3
846- let cX = ft._2
847- let fv = ft._1
848- let fw = if (if ((fn > 0))
849- then (fn > fv)
868+ let dW = fv._5
869+ let fw = fv._4
870+ let dP = fv._3
871+ let cX = fv._2
872+ let fx = fv._1
873+ let fy = if (if ((fp > 0))
874+ then (fp > fx)
850875 else false)
851- then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
852- else fv
853- let dK = dI(fw)
876+ then aG(makeString(["amount to receive is less than ", toString(fp)], ""))
877+ else fx
878+ let dK = dI(fy)
854879 if ((dK == dK))
855880 then {
856- let fg = if (fo)
881+ let fg = if (fq)
857882 then {
858- let fx = invoke(bf, "stake", nil, [AttachedPayment(aZ, fw)])
859- if ((fx == fx))
883+ let fz = invoke(bf, "stake", nil, [AttachedPayment(aZ, fy)])
884+ if ((fz == fz))
860885 then nil
861886 else throw("Strict value is not equal to itself.")
862887 }
863- else [ScriptTransfer(dB.caller, fw, aZ)]
864- let fy = if ((dP > 0))
888+ else [ScriptTransfer(dB.caller, fy, aZ)]
889+ let fA = if ((dP > 0))
865890 then [ScriptTransfer(aK, dP, dS)]
866891 else nil
867- let fz = if ((this == aK))
892+ let fB = if ((this == aK))
868893 then $Tuple2(0, 0)
869894 else if (dW)
870895 then $Tuple2(-(dP), 0)
871896 else $Tuple2(0, -(dP))
872- let dl = fz._1
873- let dm = fz._2
874- let fA = dk(dl, dm, 0)
875- let fj = fA._1
876- let db = fA._2
897+ let dl = fB._1
898+ let dm = fB._2
899+ let fC = dk(dl, dm, 0)
900+ let fk = fC._1
901+ let db = fC._2
877902 let dv = value(getString(af))
878- let fk = do(dj, db)
879- if ((fk == fk))
880- then $Tuple2((((cX ++ fg) ++ fy) ++ fj), fw)
903+ let fm = do(dj, db)
904+ if ((fm == fm))
905+ then $Tuple2((((cX ++ fg) ++ fA) ++ fk), fy)
881906 else throw("Strict value is not equal to itself.")
882907 }
883908 else throw("Strict value is not equal to itself.")
884909 }
885910 else throw("Strict value is not equal to itself.")
886911 }
887912 else throw("Strict value is not equal to itself.")
888913 }
889914
890915
891916
892917 @Callable(dB)
893918 func putOneTknREADONLY (dS,dR) = {
894- let fB = dQ(dR, aQ(dS), unit, unit)
895- let fv = fB._1
896- let cX = fB._2
897- let dP = fB._3
898- let fu = fB._4
899- let dW = fB._5
900- $Tuple2(nil, $Tuple3(fv, dP, fu))
919+ let fD = dQ(dR, aQ(dS), unit, unit)
920+ let fx = fD._1
921+ let cX = fD._2
922+ let dP = fD._3
923+ let fw = fD._4
924+ let dW = fD._5
925+ $Tuple2(nil, $Tuple3(fx, dP, fw))
901926 }
902927
903928
904929
905930 @Callable(dB)
906-func getOneTkn (fC,fn) = {
907- let fp = {
908- let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
909- if ($isInstanceOf(fq, "Boolean"))
910- then fq
911- else throw(($getType(fq) + " couldn't be cast to Boolean"))
931+func getOneTkn (fE,fp) = {
932+ let fr = {
933+ let fs = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
934+ if ($isInstanceOf(fs, "Boolean"))
935+ then fs
936+ else throw(($getType(fs) + " couldn't be cast to Boolean"))
912937 }
913- let fD = if (if (aL())
938+ let fF = if (if (aL())
914939 then true
915940 else (aY == n))
916941 then true
917- else fp
918- let ex = [if (if (!(fD))
942+ else fr
943+ let ex = [if (if (!(fF))
919944 then true
920945 else eR(dB))
921946 then true
922947 else aG("get operation is blocked by admin"), if ((size(dB.payments) == 1))
923948 then true
924949 else aG("exactly 1 payment are expected")]
925950 if ((ex == ex))
926951 then {
927- let ew = aQ(fC)
928- let fs = dB.payments[0]
929- let dS = fs.assetId
930- let ee = fs.amount
952+ let ew = aQ(fE)
953+ let fu = dB.payments[0]
954+ let dS = fu.assetId
955+ let ee = fu.amount
931956 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(ee))
932957 let X = dB.caller
933958 let Y = dB.transactionId
934- let fE = ev(ew, ee, dS, X, Y)
935- if ((fE == fE))
959+ let fG = ev(ew, ee, dS, X, Y)
960+ if ((fG == fG))
936961 then {
937- let ey = fE._5
938- let fu = fE._4
939- let dP = fE._3
940- let cX = fE._2
941- let fF = fE._1
942- let dJ = if (if ((fn > 0))
943- then (fn > fF)
962+ let ey = fG._5
963+ let fw = fG._4
964+ let dP = fG._3
965+ let cX = fG._2
966+ let fH = fG._1
967+ let dJ = if (if ((fp > 0))
968+ then (fp > fH)
944969 else false)
945- then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
946- else fF
947- let fG = invoke(aJ, "burn", [ee], [AttachedPayment(dS, ee)])
948- if ((fG == fG))
970+ then aG(makeString(["amount to receive is less than ", toString(fp)], ""))
971+ else fH
972+ let fI = invoke(aJ, "burn", [ee], [AttachedPayment(dS, ee)])
973+ if ((fI == fI))
949974 then {
950- let fH = [ScriptTransfer(X, dJ, ew)]
951- let fy = if ((dP > 0))
975+ let fJ = [ScriptTransfer(X, dJ, ew)]
976+ let fA = if ((dP > 0))
952977 then [ScriptTransfer(aK, dP, ew)]
953978 else nil
954- let fI = {
955- let fJ = if ((this == aK))
979+ let fK = {
980+ let fL = if ((this == aK))
956981 then 0
957982 else dP
958983 if (ey)
959- then $Tuple2(-((dJ + fJ)), 0)
960- else $Tuple2(0, -((dJ + fJ)))
984+ then $Tuple2(-((dJ + fL)), 0)
985+ else $Tuple2(0, -((dJ + fL)))
961986 }
962- let dl = fI._1
963- let dm = fI._2
964- let fK = dk(dl, dm, 0)
965- let fj = fK._1
966- let db = fK._2
967- let fk = do(dj, db)
968- if ((fk == fk))
969- then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
987+ let dl = fK._1
988+ let dm = fK._2
989+ let fM = dk(dl, dm, 0)
990+ let fk = fM._1
991+ let db = fM._2
992+ let fm = do(dj, db)
993+ if ((fm == fm))
994+ then $Tuple2((((cX ++ fJ) ++ fA) ++ fk), dJ)
970995 else throw("Strict value is not equal to itself.")
971996 }
972997 else throw("Strict value is not equal to itself.")
973998 }
974999 else throw("Strict value is not equal to itself.")
9751000 }
9761001 else throw("Strict value is not equal to itself.")
9771002 }
9781003
9791004
9801005
9811006 @Callable(dB)
9821007 func getOneTknREADONLY (ew,ee) = {
983- let fL = ev(aQ(ew), ee, aZ, unit, unit)
984- let fF = fL._1
985- let cX = fL._2
986- let dP = fL._3
987- let fu = fL._4
988- let ey = fL._5
989- $Tuple2(nil, $Tuple3(fF, dP, fu))
1008+ let fN = ev(aQ(ew), ee, aZ, unit, unit)
1009+ let fH = fN._1
1010+ let cX = fN._2
1011+ let dP = fN._3
1012+ let fw = fN._4
1013+ let ey = fN._5
1014+ $Tuple2(nil, $Tuple3(fH, dP, fw))
9901015 }
9911016
9921017
9931018
9941019 @Callable(dB)
995-func unstakeAndGetOneTkn (fM,fC,fn) = {
996- let fp = {
997- let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
998- if ($isInstanceOf(fq, "Boolean"))
999- then fq
1000- else throw(($getType(fq) + " couldn't be cast to Boolean"))
1020+func unstakeAndGetOneTkn (fO,fE,fp) = {
1021+ let fr = {
1022+ let fs = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1023+ if ($isInstanceOf(fs, "Boolean"))
1024+ then fs
1025+ else throw(($getType(fs) + " couldn't be cast to Boolean"))
10011026 }
1002- let fD = if (if (aL())
1027+ let fF = if (if (aL())
10031028 then true
10041029 else (aY == n))
10051030 then true
1006- else fp
1007- let ex = [if (if (!(fD))
1031+ else fr
1032+ let ex = [if (if (!(fF))
10081033 then true
10091034 else eR(dB))
10101035 then true
10111036 else aG("get operation is blocked by admin"), if ((size(dB.payments) == 0))
10121037 then true
10131038 else aG("no payments are expected")]
10141039 if ((ex == ex))
10151040 then {
1016- let ew = aQ(fC)
1041+ let ew = aQ(fE)
10171042 let X = dB.caller
10181043 let Y = dB.transactionId
10191044 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1020- let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1021- if ((fN == fN))
1045+ let fP = invoke(bf, "unstake", [toBase58String(aZ), fO], nil)
1046+ if ((fP == fP))
10221047 then {
1023- let fO = ev(ew, fM, aZ, X, Y)
1024- if ((fO == fO))
1048+ let fQ = ev(ew, fO, aZ, X, Y)
1049+ if ((fQ == fQ))
10251050 then {
1026- let ey = fO._5
1027- let fu = fO._4
1028- let dP = fO._3
1029- let cX = fO._2
1030- let fF = fO._1
1031- let dJ = if (if ((fn > 0))
1032- then (fn > fF)
1051+ let ey = fQ._5
1052+ let fw = fQ._4
1053+ let dP = fQ._3
1054+ let cX = fQ._2
1055+ let fH = fQ._1
1056+ let dJ = if (if ((fp > 0))
1057+ then (fp > fH)
10331058 else false)
1034- then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
1035- else fF
1036- let fG = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1037- if ((fG == fG))
1059+ then aG(makeString(["amount to receive is less than ", toString(fp)], ""))
1060+ else fH
1061+ let fI = invoke(aJ, "burn", [fO], [AttachedPayment(aZ, fO)])
1062+ if ((fI == fI))
10381063 then {
1039- let fH = [ScriptTransfer(dB.caller, dJ, ew)]
1040- let fy = if ((dP > 0))
1064+ let fJ = [ScriptTransfer(dB.caller, dJ, ew)]
1065+ let fA = if ((dP > 0))
10411066 then [ScriptTransfer(aK, dP, ew)]
10421067 else nil
1043- let fP = {
1044- let fJ = if ((this == aK))
1068+ let fR = {
1069+ let fL = if ((this == aK))
10451070 then 0
10461071 else dP
10471072 if (ey)
1048- then $Tuple2(-((dJ + fJ)), 0)
1049- else $Tuple2(0, -((dJ + fJ)))
1073+ then $Tuple2(-((dJ + fL)), 0)
1074+ else $Tuple2(0, -((dJ + fL)))
10501075 }
1051- let dl = fP._1
1052- let dm = fP._2
1053- let fQ = dk(dl, dm, 0)
1054- let fj = fQ._1
1055- let db = fQ._2
1056- let fk = do(dj, db)
1057- if ((fk == fk))
1058- then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
1076+ let dl = fR._1
1077+ let dm = fR._2
1078+ let fS = dk(dl, dm, 0)
1079+ let fk = fS._1
1080+ let db = fS._2
1081+ let fm = do(dj, db)
1082+ if ((fm == fm))
1083+ then $Tuple2((((cX ++ fJ) ++ fA) ++ fk), dJ)
10591084 else throw("Strict value is not equal to itself.")
10601085 }
10611086 else throw("Strict value is not equal to itself.")
10621087 }
10631088 else throw("Strict value is not equal to itself.")
10641089 }
10651090 else throw("Strict value is not equal to itself.")
10661091 }
10671092 else throw("Strict value is not equal to itself.")
10681093 }
10691094
10701095
10711096
10721097 @Callable(dB)
10731098 func get () = {
10741099 let cI = dA(dB)
1075- let fR = cI._1
1100+ let fT = cI._1
10761101 let cp = cI._2
10771102 let dD = cI._3
10781103 let bX = cI._4
10791104 let cq = cI._5
10801105 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1081- let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1082- if ((fS == fS))
1106+ let fU = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1107+ if ((fU == fU))
10831108 then {
1084- let fT = dk(-(fR), -(cp), 0)
1085- let fj = fT._1
1086- let db = fT._2
1087- let fk = do(dj, db)
1088- if ((fk == fk))
1089- then (cq ++ fj)
1109+ let fV = dk(-(fT), -(cp), 0)
1110+ let fk = fV._1
1111+ let db = fV._2
1112+ let fm = do(dj, db)
1113+ if ((fm == fm))
1114+ then (cq ++ fk)
10901115 else throw("Strict value is not equal to itself.")
10911116 }
10921117 else throw("Strict value is not equal to itself.")
10931118 }
10941119
10951120
10961121
10971122 @Callable(dB)
1098-func getNoLess (fU,fV) = {
1123+func getNoLess (fW,fX) = {
10991124 let cI = dA(dB)
11001125 let co = cI._1
11011126 let cp = cI._2
11021127 let dD = cI._3
11031128 let bX = cI._4
11041129 let cq = cI._5
1105- if ((fU > co))
1106- then throw(((("noLessThenAmtAsset failed: " + toString(co)) + " < ") + toString(fU)))
1107- else if ((fV > cp))
1108- then throw(((("noLessThenPriceAsset failed: " + toString(cp)) + " < ") + toString(fV)))
1130+ if ((fW > co))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(co)) + " < ") + toString(fW)))
1132+ else if ((fX > cp))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(cp)) + " < ") + toString(fX)))
11091134 else {
11101135 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1111- let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1112- if ((fS == fS))
1136+ let fU = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1137+ if ((fU == fU))
11131138 then {
1114- let fW = dk(-(co), -(cp), 0)
1115- let fj = fW._1
1116- let db = fW._2
1117- let fk = do(dj, db)
1118- if ((fk == fk))
1119- then (cq ++ fj)
1139+ let fY = dk(-(co), -(cp), 0)
1140+ let fk = fY._1
1141+ let db = fY._2
1142+ let fm = do(dj, db)
1143+ if ((fm == fm))
1144+ then (cq ++ fk)
11201145 else throw("Strict value is not equal to itself.")
11211146 }
11221147 else throw("Strict value is not equal to itself.")
11231148 }
11241149 }
11251150
11261151
11271152
11281153 @Callable(dB)
11291154 func unstakeAndGet (dJ) = {
1130- let fX = if ((size(dB.payments) != 0))
1155+ let fZ = if ((size(dB.payments) != 0))
11311156 then throw("No payments are expected")
11321157 else true
1133- if ((fX == fX))
1158+ if ((fZ == fZ))
11341159 then {
11351160 let bM = aN()
11361161 let bZ = fromBase58String(bM[q])
11371162 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1138- let fN = invoke(bf, "unstake", [toBase58String(bZ), dJ], nil)
1139- if ((fN == fN))
1163+ let fP = invoke(bf, "unstake", [toBase58String(bZ), dJ], nil)
1164+ if ((fP == fP))
11401165 then {
11411166 let cI = bV(toBase58String(dB.transactionId), toBase58String(bZ), dJ, dB.caller)
11421167 let co = cI._1
11431168 let cp = cI._2
11441169 let cc = parseIntValue(cI._9)
11451170 let cq = cI._10
1146- let fY = if (if (aL())
1171+ let ga = if (if (aL())
11471172 then true
11481173 else (cc == n))
11491174 then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
11501175 else true
1151- if ((fY == fY))
1176+ if ((ga == ga))
11521177 then {
1153- let fS = invoke(aJ, "burn", [dJ], [AttachedPayment(bZ, dJ)])
1154- if ((fS == fS))
1178+ let fU = invoke(aJ, "burn", [dJ], [AttachedPayment(bZ, dJ)])
1179+ if ((fU == fU))
11551180 then {
1156- let fZ = dk(-(co), -(cp), 0)
1157- let fj = fZ._1
1158- let db = fZ._2
1159- let fk = do(dj, db)
1160- if ((fk == fk))
1161- then (cq ++ fj)
1181+ let gb = dk(-(co), -(cp), 0)
1182+ let fk = gb._1
1183+ let db = gb._2
1184+ let fm = do(dj, db)
1185+ if ((fm == fm))
1186+ then (cq ++ fk)
11621187 else throw("Strict value is not equal to itself.")
11631188 }
11641189 else throw("Strict value is not equal to itself.")
11651190 }
11661191 else throw("Strict value is not equal to itself.")
11671192 }
11681193 else throw("Strict value is not equal to itself.")
11691194 }
11701195 else throw("Strict value is not equal to itself.")
11711196 }
11721197
11731198
11741199
11751200 @Callable(dB)
1176-func unstakeAndGetNoLess (fM,ga,fV) = {
1177- let fD = if (aL())
1201+func unstakeAndGetNoLess (fO,gc,fX) = {
1202+ let fF = if (aL())
11781203 then true
11791204 else (aY == n)
1180- let ex = [if (!(fD))
1205+ let ex = [if (!(fF))
11811206 then true
11821207 else throw("get operation is blocked by admin"), if ((size(dB.payments) == 0))
11831208 then true
11841209 else throw("no payments are expected")]
11851210 if ((ex == ex))
11861211 then {
11871212 let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1188- let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1189- if ((fN == fN))
1213+ let fP = invoke(bf, "unstake", [toBase58String(aZ), fO], nil)
1214+ if ((fP == fP))
11901215 then {
1191- let cI = bV(toBase58String(dB.transactionId), toBase58String(aZ), fM, dB.caller)
1216+ let cI = bV(toBase58String(dB.transactionId), toBase58String(aZ), fO, dB.caller)
11921217 let co = cI._1
11931218 let cp = cI._2
11941219 let cq = cI._10
1195- let gb = [if ((co >= ga))
1220+ let gd = [if ((co >= gc))
11961221 then true
1197- else throw(makeString(["amount asset amount to receive is less than ", toString(ga)], "")), if ((cp >= fV))
1222+ else throw(makeString(["amount asset amount to receive is less than ", toString(gc)], "")), if ((cp >= fX))
11981223 then true
1199- else throw(makeString(["price asset amount to receive is less than ", toString(fV)], ""))]
1200- if ((gb == gb))
1224+ else throw(makeString(["price asset amount to receive is less than ", toString(fX)], ""))]
1225+ if ((gd == gd))
12011226 then {
1202- let fS = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1203- if ((fS == fS))
1227+ let fU = invoke(aJ, "burn", [fO], [AttachedPayment(aZ, fO)])
1228+ if ((fU == fU))
12041229 then {
1205- let gc = dk(-(co), -(cp), 0)
1206- let fj = gc._1
1207- let db = gc._2
1208- let fk = do(dj, db)
1209- if ((fk == fk))
1210- then (cq ++ fj)
1230+ let ge = dk(-(co), -(cp), 0)
1231+ let fk = ge._1
1232+ let db = ge._2
1233+ let fm = do(dj, db)
1234+ if ((fm == fm))
1235+ then (cq ++ fk)
12111236 else throw("Strict value is not equal to itself.")
12121237 }
12131238 else throw("Strict value is not equal to itself.")
12141239 }
12151240 else throw("Strict value is not equal to itself.")
12161241 }
12171242 else throw("Strict value is not equal to itself.")
12181243 }
12191244 else throw("Strict value is not equal to itself.")
12201245 }
12211246
12221247
12231248
12241249 @Callable(dB)
1225-func activate (gd,ge) = if ((toString(dB.caller) != toString(aJ)))
1250+func activate (gf,gg) = if ((toString(dB.caller) != toString(aJ)))
12261251 then throw("permissions denied")
1227- else $Tuple2([StringEntry(aa(), gd), StringEntry(ab(), ge)], "success")
1252+ else $Tuple2([StringEntry(aa(), gf), StringEntry(ab(), gg)], "success")
12281253
12291254
12301255
12311256 @Callable(dB)
12321257 func refreshKLp () = {
1233- let gf = valueOrElse(getInteger(ag), 0)
1234- let gg = if (((height - gf) >= aj))
1258+ let gh = valueOrElse(getInteger(ag), 0)
1259+ let gi = if (((height - gh) >= aj))
12351260 then unit
12361261 else aG(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1237- if ((gg == gg))
1262+ if ((gi == gi))
12381263 then {
12391264 let dv = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aI("invalid kLp"))
1240- let gh = dk(0, 0, 0)
1241- let gi = gh._1
1242- let db = gh._2
1265+ let gj = dk(0, 0, 0)
1266+ let gk = gj._1
1267+ let db = gj._2
12431268 let dn = if ((dv != db))
1244- then gi
1269+ then gk
12451270 else aG("nothing to refresh")
12461271 $Tuple2(dn, toString(db))
12471272 }
12481273 else throw("Strict value is not equal to itself.")
12491274 }
12501275
12511276
12521277
12531278 @Callable(dB)
12541279 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aN())
12551280
12561281
12571282
12581283 @Callable(dB)
12591284 func getAccBalanceWrapperREADONLY (bx) = $Tuple2(nil, bw(bx))
12601285
12611286
12621287
12631288 @Callable(dB)
12641289 func calcPricesWrapperREADONLY (bG,bH,bL) = {
12651290 let bU = bK(bG, bH, bL)
12661291 $Tuple2(nil, [toString(bU[0]), toString(bU[1]), toString(bU[2])])
12671292 }
12681293
12691294
12701295
12711296 @Callable(dB)
12721297 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
12731298
12741299
12751300
12761301 @Callable(dB)
12771302 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
12781303
12791304
12801305
12811306 @Callable(dB)
12821307 func calcPriceBigIntWrapperREADONLY (bz,bA) = $Tuple2(nil, toString(by(parseBigIntValue(bz), parseBigIntValue(bA))))
12831308
12841309
12851310
12861311 @Callable(dB)
12871312 func estimatePutOperationWrapperREADONLY (bW,cs,ct,cu,cv,cw,X,cx,cy) = $Tuple2(nil, cr(bW, cs, ct, cu, cv, cw, X, cx, cy))
12881313
12891314
12901315
12911316 @Callable(dB)
12921317 func estimateGetOperationWrapperREADONLY (bW,bX,bY,X) = {
12931318 let cI = bV(bW, bX, bY, addressFromStringValue(X))
12941319 $Tuple2(nil, $Tuple10(cI._1, cI._2, cI._3, cI._4, cI._5, cI._6, cI._7, toString(cI._8), cI._9, cI._10))
12951320 }
12961321
12971322
12981323
12991324 @Callable(dB)
13001325 func statsREADONLY () = {
13011326 let bM = aN()
13021327 let bZ = fromBase58String(bM[q])
1303- let gj = bM[r]
1304- let gk = bM[s]
1328+ let gl = bM[r]
1329+ let gm = bM[s]
13051330 let cB = bM[v]
13061331 let cC = bM[w]
13071332 let bN = parseIntValue(bM[t])
13081333 let bO = parseIntValue(bM[u])
1309- let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1310- let gm = bw(gj)
1311- let gn = bw(gk)
1312- let go = if ((gl == 0))
1334+ let gn = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1335+ let go = bw(gl)
1336+ let gp = bw(gm)
1337+ let gq = if ((gn == 0))
13131338 then [e, e, e]
1314- else bK(gm, gn, gl)
1339+ else bK(go, gp, gn)
13151340 let cj = 0
1316- let gp = G(go[1], b)
1317- let gq = G(go[2], b)
1318- let gr = value(getInteger(aJ, au(toString(this))))
1319- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(cj), toString(gp), toString(gq), toString(gr)], j))
1341+ let gr = G(gq[1], b)
1342+ let gs = G(gq[2], b)
1343+ let gt = value(getInteger(aJ, au(toString(this))))
1344+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(go), toString(gp), toString(gn), toString(cj), toString(gr), toString(gs), toString(gt)], j))
13201345 }
13211346
13221347
13231348
13241349 @Callable(dB)
13251350 func evaluatePutByAmountAssetREADONLY (ct) = {
13261351 let bM = aN()
13271352 let bZ = fromBase58String(bM[q])
13281353 let cz = bM[r]
13291354 let ca = fromBase58String(cz)
13301355 let cA = bM[s]
13311356 let cb = fromBase58String(cA)
13321357 let bN = parseIntValue(bM[t])
13331358 let bO = parseIntValue(bM[u])
13341359 let cc = bM[p]
1335- let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1336- let gm = bw(cz)
1337- let gn = bw(cA)
1338- let bI = D(gm, bN)
1339- let bJ = D(gn, bO)
1340- let ci = if ((gl == 0))
1360+ let gn = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1361+ let go = bw(cz)
1362+ let gp = bw(cA)
1363+ let bI = D(go, bN)
1364+ let bJ = D(gp, bO)
1365+ let ci = if ((gn == 0))
13411366 then e
13421367 else by(bJ, bI)
13431368 let cF = D(ct, bN)
13441369 let cG = fraction(cF, ci, d)
13451370 let cv = G(cG, bO)
13461371 let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
13471372 let cQ = dH._1
1348- let gs = dH._3
1373+ let gu = dH._3
13491374 let ce = dH._4
13501375 let cg = dH._5
13511376 let cd = dH._6
13521377 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cQ), toString(G(ci, b)), toString(ce), toString(cg), toString(cd), cc, toString(ct), toString(cv)], j))
13531378 }
13541379
13551380
13561381
13571382 @Callable(dB)
13581383 func evaluatePutByPriceAssetREADONLY (cv) = {
13591384 let bM = aN()
13601385 let bZ = fromBase58String(bM[q])
13611386 let cz = bM[r]
13621387 let ca = fromBase58String(cz)
13631388 let cA = bM[s]
13641389 let cb = fromBase58String(cA)
13651390 let bN = parseIntValue(bM[t])
13661391 let bO = parseIntValue(bM[u])
13671392 let cc = bM[p]
1368- let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1369- let gt = bw(cz)
1370- let gu = bw(cA)
1371- let gv = D(gt, bN)
1372- let gw = D(gu, bO)
1373- let ci = if ((gl == 0))
1393+ let gn = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1394+ let gv = bw(cz)
1395+ let gw = bw(cA)
1396+ let gx = D(gv, bN)
1397+ let gy = D(gw, bO)
1398+ let ci = if ((gn == 0))
13741399 then e
1375- else by(gw, gv)
1400+ else by(gy, gx)
13761401 let cG = D(cv, bO)
13771402 let cF = fraction(cG, d, ci)
13781403 let ct = G(cF, bN)
13791404 let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
13801405 let cQ = dH._1
1381- let gs = dH._3
1406+ let gu = dH._3
13821407 let ce = dH._4
13831408 let cg = dH._5
13841409 let cd = dH._6
13851410 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cQ), toString(G(ci, b)), toString(ce), toString(cg), toString(cd), cc, toString(ct), toString(cv)], j))
13861411 }
13871412
13881413
13891414
13901415 @Callable(dB)
1391-func evaluateGetREADONLY (gx,gy) = {
1392- let cI = bV("", gx, gy, this)
1416+func evaluateGetREADONLY (gz,gA) = {
1417+ let cI = bV("", gz, gA, this)
13931418 let co = cI._1
13941419 let cp = cI._2
13951420 let ce = cI._5
13961421 let cg = cI._6
13971422 let cd = cI._7
13981423 let cj = cI._8
13991424 let cc = parseIntValue(cI._9)
14001425 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(co), toString(cp), toString(ce), toString(cg), toString(cd), toString(cj), toString(cc)], j))
14011426 }
14021427
14031428
1404-@Verifier(gz)
1405-func gA () = {
1406- let gB = {
1429+@Verifier(gB)
1430+func gC () = {
1431+ let gD = {
14071432 let dM = eO()
14081433 if ($isInstanceOf(dM, "ByteVector"))
14091434 then {
14101435 let eS = dM
14111436 eS
14121437 }
14131438 else if ($isInstanceOf(dM, "Unit"))
1414- then gz.senderPublicKey
1439+ then gB.senderPublicKey
14151440 else throw("Match error")
14161441 }
1417- let dM = gz
1442+ let dM = gB
14181443 if ($isInstanceOf(dM, "Order"))
14191444 then {
14201445 let dr = dM
1421- let gC = aM()
1446+ let gE = aM()
14221447 let az = dq(dr)
14231448 let aA = sigVerify(dr.bodyBytes, dr.proofs[0], dr.senderPublicKey)
1424- let aB = sigVerify(dr.bodyBytes, dr.proofs[1], gC)
1449+ let aB = sigVerify(dr.bodyBytes, dr.proofs[1], gE)
14251450 if (if (if (az)
14261451 then aA
14271452 else false)
14281453 then aB
14291454 else false)
14301455 then true
14311456 else ay(az, aA, aB)
14321457 }
14331458 else if ($isInstanceOf(dM, "SetScriptTransaction"))
14341459 then {
14351460 let eP = dM
1436- let gD = blake2b256(value(eP.script))
1437- let gE = fromBase64String(value(getString(aJ, aw())))
1438- let gF = scriptHash(this)
1439- if (if ((gE == gD))
1440- then (gF != gD)
1461+ let gF = blake2b256(value(eP.script))
1462+ let gG = fromBase64String(value(getString(aJ, aw())))
1463+ let gH = scriptHash(this)
1464+ if (if ((gG == gF))
1465+ then (gH != gF)
14411466 else false)
14421467 then true
1443- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1468+ else sigVerify(gB.bodyBytes, gB.proofs[0], gD)
14441469 }
1445- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1470+ else sigVerify(gB.bodyBytes, gB.proofs[0], gD)
14461471 }
14471472

github/deemru/w8io/026f985 
230.67 ms