tx · 3uAE5iqhn5nnvF1rkNd8AMPkbJCxeJFxEZgkmce3x3uy

3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT:  -0.03500000 Waves

2023.01.20 11:51 [2413067] smart account 3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT > SELF 0.00000000 Waves

{ "type": 13, "id": "3uAE5iqhn5nnvF1rkNd8AMPkbJCxeJFxEZgkmce3x3uy", "fee": 3500000, "feeAssetId": null, "timestamp": 1674204705253, "version": 2, "chainId": 84, "sender": "3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT", "senderPublicKey": "AYbpHveq7zviKTDV7SGTB1pZGFbkumgfq3jSwVv6BznT", "proofs": [ "XDHPmdGCR9ngcBYcbGrbeQMvwt9CiSY86S4c12bUKm5VqKk92EZbJ8t2gCxP3YLwV2U2zSJDZeCmJUXeYZv1JmT" ], "script": "base64:BgLkLAgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIGc2NhbGU4IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgt3YXZlc1N0cmluZyIDU0VQIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIgZrZXlLTHAiFWtleUtMcFJlZnJlc2hlZEhlaWdodCISa2V5S0xwUmVmcmVzaERlbGF5IhZrTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9rTHBSZWZyZXNoRGVsYXkiEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIMZ2V0SW50T3JGYWlsIgh0aHJvd0VyciIDbXNnIgZmbXRFcnIiD2ZhY3RvcnlDb250cmFjdCITZmVlQ29sbGVjdG9yQWRkcmVzcyIFaW5GZWUiAUAiBm91dEZlZSIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA4NDA4ODU3NCINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiEHByaXZhdGVDYWxjUHJpY2UiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IgNjZmciC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIghwcmljZVgxOCIIbHBBbXRYMTgiE2xwUHJpY2VJbkFtQXNzZXRYMTgiE2xwUHJpY2VJblByQXNzZXRYMTgiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIxMzI2MjE1MzgiA2tMcCINJHQwMjIwMDkyMjEwOSINdW51c2VkQWN0aW9ucyIGa0xwTmV3Ig0kdDAyMjExMjIyMTc0Ig51bnVzZWRBY3Rpb25zMCIKa0xwQ3VycmVudCIMaXNPcmRlclZhbGlkIhNhbW91bnRCYWxhbmNlWDE4TmV3IhJwcmljZUJhbGFuY2VYMThOZXciAWsiBGtOZXciBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDI1NjkwMjU5ODMiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjU5ODcyNjEzNiIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDI2MjY4MjYzMzIiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI4MDEzMjgxODAiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiGG91dEluQW1vdW50QXNzZXREZWNpbWFscyIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDMwMjU4MzAzMTQiC3RvdGFsQW1vdW50Ig0kdDAzMDMxODMwNTQ0IgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IhhhbW91bnRCb3RoSW5QYXltZW50QXNzZXQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0Iglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52Ig0kdDAzNTA3MjM1NTM0IhFyZWZyZXNoS0xwQWN0aW9ucyIRaXNVcGRhdGVkS0xwVmFsaWQiC21heFNsaXBwYWdlIg0kdDAzNjA5NjM2MTYxIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDM3MzQ5Mzc1MDEiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwMzgwODczODI4NCINJHQwMzgyODczODM5NSINJHQwMzg3MDEzODg1OCINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwMzk3NDMzOTg5NiIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA0MDM5NjQwNjQzIhBmZWVBbW91bnRGb3JDYWxjIg0kdDA0MDY0NjQwNzU0Ig0kdDA0MTAxMTQxMTY3Ig11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA0MjA3MjQyMjIzIg0kdDA0MjcxODQyOTY1Ig0kdDA0Mjk2ODQzMDc2IglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA0NDAyMjQ0MTA0IhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig0kdDA0NTA1MzQ1MTM0Ig1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiDSR0MDQ2MjYwNDYzNDEiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIg0kdDA0NzYzNjQ3NzE3IgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDg5MDQ0ODk2OCIQa0xwVXBkYXRlQWN0aW9ucyIGcHJpY2VzIgphbXRBc3NldElkIgxwcmljZUFzc2V0SWQiDXBvb2xMUEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiCnByaWNlc0xpc3QiD2xwQW10QXNzZXRTaGFyZSIRbHBQcmljZUFzc2V0U2hhcmUiCnBvb2xXZWlnaHQiDGN1clByaWNlQ2FsYyIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSIKbWF0Y2hlclB1YiINJHQwNTc2MzA1NzY5OSIHbmV3SGFzaCILYWxsb3dlZEhhc2giC2N1cnJlbnRIYXNoZgABYQCAwtcvAAFiCQC2AgEAgICQu7rWrfANAAFjCQC2AgEAAAABZAkAtgIBAAAAAWUJALYCAQABAAFmCQC2AgEAAgABZwIFV0FWRVMAAWgCAl9fAAFpAAIAAWoAAwABawAEAAFsAAEAAW0AAgABbgADAAFvAAQAAXAABQABcQAGAAFyAAcAAXMACAABdAAJAAF1AAEAAXYABwEBdwIBeAF5CQC8AgMJALYCAQUBeAUBYgkAtgIBBQF5AQF6AgF4AXkJALwCAwUBeAUBYgUBeQEBQQIBQgFDCQCgAwEJALwCAwUBQgkAtgIBBQFDBQFiAQFEAwFCAUMBRQkAoAMBCQC9AgQFAUIJALYCAQUBQwUBYgUBRQEBRgEBQgMJAL8CAgUBYwUBQgkAvgIBBQFCBQFCAQFHAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBSAACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFJAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFKAAIRJXMlc19fcHJpY2VfX2xhc3QBAUsCAUwBTQkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAUwJAMwIAgkApAMBBQFNBQNuaWwFAWgBAU4CAU8BUAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAU8CAl9fBQFQAQFRAgFPAVAJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFPAgJfXwUBUAEBUgACDyVzX19hbW91bnRBc3NldAEBUwACDiVzX19wcmljZUFzc2V0AAFUAgclc19fZmVlAAFVCQBrAwAKBQFhAJBOAAFWCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAVQFAVUAAVcJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBaAABWAkAuQkCCQDMCAICAiVzCQDMCAICEmtMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFoAAFZCQC5CQIJAMwIAgICJXMJAMwIAgIPcmVmcmVzaEtMcERlbGF5BQNuaWwFAWgAAVoAHgACYWEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBWQUBWgECYWIAAhElc19fZmFjdG9yeUNvbmZpZwECYWMAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAmFkAgJhZQJhZgkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYWUCAl9fBQJhZgIIX19jb25maWcBAmFnAQJhaAkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhaAECYWkAAgwlc19fc2h1dGRvd24BAmFqAQJhawkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFrAQJhbAACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAAJhbQIXJXNfX2ZlZUNvbGxlY3RvckFkZHJlc3MBAmFuBAJhbwJhcAJhcQJhcgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYW8CAiAoBQJhcAIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhcQIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYXIBAmFzAgJhdAJhdQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmF0BQJhdQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhdAkAzAgCAgEuCQDMCAIFAmF1CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmF2AgJhdAJhdQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmF0BQJhdQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhdAkAzAgCAgEuCQDMCAIFAmF1CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmF3AQJheAkAAgEJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJheAUDbmlsAgEgAQJheQECYXgJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJheAUDbmlsAgEgAAJhegkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFzAgUEdGhpcwkBAUcAAAJhQQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFzAgUCYXoFAmFtAAJhQgoAAmFDCQD8BwQFAmF6AhBnZXRJbkZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUMCA0ludAUCYUMJAAIBCQCsAgIJAAMBBQJhQwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhRAoAAmFDCQD8BwQFAmF6AhFnZXRPdXRGZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgNJbnQFAmFDCQACAQkArAICCQADAQUCYUMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECYUUACQELdmFsdWVPckVsc2UCCQCbCAIFAmF6CQECYWkABwECYUYACQDZBAEJAQJhcwIFAmF6CQECYWMAAQJhRwAEAmFICQECYXMCBQR0aGlzCQEBUgAEAmFJCQECYXMCBQR0aGlzCQEBUwAEAmFmCQECYXYCBQJhegkBAmFnAQUCYUkEAmFlCQECYXYCBQJhegkBAmFnAQUCYUgJALUJAgkBAmFzAgUCYXoJAQJhZAIJAKQDAQUCYWUJAKQDAQUCYWYFAWgBAmFKAQJhSwMJAAACBQJhSwUBZwUEdW5pdAkA2QQBBQJhSwECYUwBAmFLAwkAAAIFAmFLBQR1bml0BQFnCQDYBAEJAQV2YWx1ZQEFAmFLAQJhTQECYU4JAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhTgUBbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFOBQFtCQDZBAEJAJEDAgUCYU4FAW4JAQJhSgEJAJEDAgUCYU4FAW8JAQJhSgEJAJEDAgUCYU4FAXAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBcQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFOBQFyAAJhTwkBAmFNAQkBAmFHAAACYVAFAmFPAAJhUQgFAmFQAl8yAAJhUggFAmFQAl8zAAJhUwgFAmFQAl80AAJhVAgFAmFQAl81AAJhVQgFAmFQAl82AAJhVggFAmFQAl83AQJhVwAJALUJAgkBAmFzAgUCYXoJAQJhYgAFAWgAAmFYCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYVcABQF1AhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJhWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFXAAUBdgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYVoKAmJhAmJiAmJjAmJkAmJlAmJmAmJnAmJoAmJpAmJqCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiYQkAzAgCCQCkAwEFAmJiCQDMCAIJAKQDAQUCYmMJAMwIAgkApAMBBQJiZAkAzAgCCQCkAwEFAmJlCQDMCAIJAKQDAQUCYmYJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmkJAMwIAgkApAMBBQJiagUDbmlsBQFoAQJiawYCYmwCYm0CYm4CYmQCYmcCYmgJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJibAkAzAgCCQCkAwEFAmJtCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJiZAkAzAgCCQCkAwEFAmJnCQDMCAIJAKQDAQUCYmgFA25pbAUBaAECYm8BAmJwAwkAAAIFAmJwAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJicAECYnECAmJyAmJzCQC8AgMFAmJyBQFiBQJicwECYnQDAmJyAmJzAUUJAL0CBAUCYnIFAWIFAmJzBQFFAQJidQQCYnYCYncCYngCYnkEAmJ6CQEBdwIFAmJ4BQJidgQCYkEJAQF3AgUCYnkFAmJ3CQECYnECBQJiQQUCYnoBAmJCAwJieAJieQJiQwQCYkQJAQJhRwAEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJHCQECYnUEBQJiRQUCYkYFAmJ4BQJieQQCYnMJAQF3AgUCYngFAmJFBAJicgkBAXcCBQJieQUCYkYEAmJICQEBdwIFAmJDBQFhBAJiSQkBAmJxAgUCYnMFAmJIBAJiSgkBAmJxAgUCYnIFAmJICQDMCAIFAmJHCQDMCAIFAmJJCQDMCAIFAmJKBQNuaWwBAmJLBAJiTAJiTQJiTgFPBAJiRAkBAmFHAAQCYk8JAJEDAgUCYkQFAW4EAmJQCQCRAwIFAmJEBQFvBAJiUQkAkQMCBQJiRAUBcAQCYnYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcQQCYncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcgQCYlIJAJEDAgUCYkQFAW0EAmJTCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYk8JAKwCAgkArAICAgZBc3NldCAFAmJPAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmJPBQJiTQkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCYlQJAQJibwEFAmJQBAJiVQkBAXcCBQJiVAUCYnYEAmJWCQECYm8BBQJiUQQCYlcJAQF3AgUCYlYFAmJ3BAJiWAkBAmJxAgUCYlcFAmJVBAJiWQkBAUECBQJiWAUBYQQCYloJAQF3AgUCYk4FAWEEAmNhCQEBdwIFAmJTBQFhBAJjYgkAvAIDBQJiVQUCYloFAmNhBAJjYwkAvAIDBQJiVwUCYloFAmNhBAJjZAkBAUQDBQJjYgUCYnYFBUZMT09SBAJjZQkBAUQDBQJjYwUCYncFBUZMT09SBAJjZgMJAAACBQJiTAIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBTwUCY2QDCQAAAgUCYlACBVdBVkVTBQR1bml0CQDZBAEFAmJQCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAU8FAmNlAwkAAAIFAmJRAgVXQVZFUwUEdW5pdAkA2QQBBQJiUQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQIJAKUIAQUBTwUCYkwJAQJiawYFAmNkBQJjZQUCYk4FAmJZBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSgAFAmJZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmJZBQNuaWwJAJwKCgUCY2QFAmNlBQJiUAUCYlEFAmJUBQJiVgUCYlMFAmJYBQJiUgUCY2YBAmNnCQJiTAJjaAJjaQJjagJjawJjbAFPAmNtAmNuBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCY28JAJEDAgUCYkQFAW8EAmNwCQCRAwIFAmJEBQFwBAJjcQkAkQMCBQJiRAUBcwQCY3IJAJEDAgUCYkQFAXQEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJiUwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNzCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmNqCQDZBAECBVdBVkVTBAJjdAkA2AQBCQELdmFsdWVPckVsc2UCBQJjbAkA2QQBAgVXQVZFUwMDCQECIT0CBQJjbwUCY3MGCQECIT0CBQJjcAUCY3QJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJiVAMFAmNtCQECYm8BBQJjbwkAZQIJAQJibwEFAmNvBQJjaQQCYlYDBQJjbQkBAmJvAQUCY3AJAGUCCQECYm8BBQJjcAUCY2sEAmN1CQEBdwIFAmNpBQJiRQQCY3YJAQF3AgUCY2sFAmJGBAJjdwkBAmJxAgUCY3YFAmN1BAJiVQkBAXcCBQJiVAUCYkUEAmJXCQEBdwIFAmJWBQJiRgQCY3gDCQAAAgUCYlMAAAQCYlgFAWMEAmN5BQFjBAJiSAkAdgYJALkCAgUCY3UFAmN2AAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBQQIFAmJIBQFhCQEBQQIFAmN1BQJiRQkBAUECBQJjdgUCYkYJAQJicQIJALcCAgUCYlcFAmN2CQC3AgIFAmJVBQJjdQUCY3kEAmJYCQECYnECBQJiVwUCYlUEAmN5CQC8AgMJAQFGAQkAuAICBQJiWAUCY3cFAWIFAmJYBAJjegkBAXcCBQJjaAUBYQMDCQECIT0CBQJiWAUBYwkAvwICBQJjeQUCY3oHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmN5Ah4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCY3oEAmNhCQEBdwIFAmJTBQFhBAJjQQkAvQIEBQJjdQkBAmJ0AwUCYlcFAmJVBQdDRUlMSU5HBQFiBQdDRUlMSU5HBAJjQgkAvQIEBQJjdgUBYgkBAmJ0AwUCYlcFAmJVBQVGTE9PUgUHQ0VJTElORwQCY0MDCQC/AgIFAmNBBQJjdgkAlAoCBQJjQgUCY3YJAJQKAgUCY3UFAmNBBAJjRAgFAmNDAl8xBAJjRQgFAmNDAl8yBAJiSAkAvQIEBQJjYQUCY0UFAmJXBQVGTE9PUgkAlwoFCQEBRAMFAmJIBQFhBQVGTE9PUgkBAUQDBQJjRAUCYkUFB0NFSUxJTkcJAQFEAwUCY0UFAmJGBQdDRUlMSU5HBQJiWAUCY3kEAmNGCAUCY3gCXzEEAmNHCAUCY3gCXzIEAmNICAUCY3gCXzMEAmJZCQEBQQIIBQJjeAJfNAUBYQQCY0kJAQFBAggFAmN4Al81BQFhAwkAZwIAAAUCY0YJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmNKAwkBASEBBQJjbgAABQJjRgQCY0sJAGUCBQJjaQUCY0cEAmNMCQBlAgUCY2sFAmNIBAJjTQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUoABQJiWQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUsCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJiWQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTgIFAU8FAmJMCQECYVoKBQJjRwUCY0gFAmNKBQJiWQUCY2gFAmNJBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjSwUCY0wFA25pbAkAnwoNBQJjRgUCY0oFAmJZBQJiVAUCYlYFAmJTBQJiTwUCYlIFAmNNBQJjSwUCY0wFAmNqBQJjbAECY04DAmNPAmNQAmJTBAJjUQkBAXoCBQJjTwkAtgIBBQJhVQQCY1IJAQF6AgUCY1AJALYCAQUCYVYEAmNTCQC8AgMJAHYGCQC5AgIFAmNRBQJjUgAACQC2AgEABQABABIFBERPV04FAWUFAmJTAwkAAAIFAmJTBQFkBQFkBQJjUwECY1QDAmNVAmNWAmNXBAJjWAkAuAICCQC2AgEJAQJibwEJAQJhTAEFAmFTBQJjVQQCY1kJALgCAgkAtgIBCQECYm8BCQECYUwBBQJhVAUCY1YEAmNaCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYVIIcXVhbnRpdHkFAmNXBAJkYQkBAmNOAwUCY1gFAmNZBQJjWgUCZGEBAmRiAwJkYwJkZAJjVwQCY1gJAGQCCQECYm8BCQECYUwBBQJhUwUCZGMEAmNZCQBkAgkBAmJvAQkBAmFMAQUCYVQFAmRkBAJjWgkAZAIICQEFdmFsdWUBCQDsBwEFAmFSCHF1YW50aXR5BQJjVwQCY1MJAQJjTgMJALYCAQUCY1gJALYCAQUCY1kJALYCAQUCY1oEAmRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFYBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUBVwkApgMBBQJjUwUDbmlsCQCUCgIFAmRlBQJjUwECZGYCAmRnAmNTAwkAwAICBQJjUwUCZGcGCQECYXcBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmRnCQDMCAIJAKYDAQUCY1MFA25pbAIBIAECZGgBAmRpBAJkaggFAmRpBmFtb3VudAQCZGsJAG4ECAUCZGkGYW1vdW50CAUCZGkFcHJpY2UFAWEFBUZMT09SBAJkbAMJAAACCAUCZGkJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZGoJAQEtAQUCZGsJAJQKAgkBAS0BBQJkagUCZGsEAmRjCAUCZGwCXzEEAmRkCAUCZGwCXzIDAwMJAQJhRQAGCQAAAgUCYVEFAWoGCQAAAgUCYVEFAWsJAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkAwMJAQIhPQIICAUCZGkJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJhUwYJAQIhPQIICAUCZGkJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmFUCQACAQITV3Jvbmcgb3JkZXIgYXNzZXRzLgQCZG0JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUBVwkBAmF5AQIPa0xwIGlzIHJlcXVpcmVkCQECYXkBAgtpbnZhbGlkIGtMcAQCZG4JAQJkYgMFAmRjBQJkZAAABAJkbwgFAmRuAl8xBAJkcAgFAmRuAl8yBAJkcQkBAmRiAwAAAAAAAAQCZHIIBQJkcQJfMQQCZHMIBQJkcQJfMgQCZHQJAMACAgUCZHAFAmRtBAJjTwkBAmJvAQkBAmFMAQUCYVMEAmNQCQECYm8BCQECYUwBBQJhVAQCY1EJAQF3AgUCY08FAmFVBAJkdQkAtwICBQJjUQkBAXcCBQJkYwUCYVUEAmNSCQEBdwIFAmNQBQJhVgQCZHYJALcCAgUCY1IJAQF3AgUCZGQFAmFWBAJkdwkAdgYJALkCAgUCY1EFAmNSAAAJALYCAQAFAAEAEgUERE9XTgQCZHgJAHYGCQC5AgIFAmNRBQJjUgAACQC2AgEABQABABIFBERPV04EAmR5CQC5CQIJAMwIAgkApgMBBQJkbQkAzAgCCQCmAwEFAmRwCQDMCAIJAKYDAQUCZHcJAMwIAgkApgMBBQJkeAUDbmlsAgEgCQCUCgIFAmR0BQJkeQECZHoBAmRBAwkBAiE9AgkAkAMBCAUCZEEIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJkQgkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAAQCYk0JAQV2YWx1ZQEIBQJkQgdhc3NldElkBAJkQwgFAmRCBmFtb3VudAQCY3gJAQJiSwQJANgEAQgFAmRBDXRyYW5zYWN0aW9uSWQJANgEAQUCYk0FAmRDCAUCZEEGY2FsbGVyBAJjZAgFAmN4Al8xBAJjZQgFAmN4Al8yBAJiUgkBDXBhcnNlSW50VmFsdWUBCAUCY3gCXzkEAmNmCAUCY3gDXzEwAwMJAQJhRQAGCQAAAgUCYlIFAWsJAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJSCQCXCgUFAmNkBQJjZQUCZEMFAmJNBQJjZgECZEQDAmRBAmNoAmNuAwkBAiE9AgkAkAMBCAUCZEEIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmRFCQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwAABAJkRgkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAQQCZEcJAQJjZwkJANgEAQgFAmRBDXRyYW5zYWN0aW9uSWQFAmNoCAUCZEUGYW1vdW50CAUCZEUHYXNzZXRJZAgFAmRGBmFtb3VudAgFAmRGB2Fzc2V0SWQJAKUIAQgFAmRBBmNhbGxlcgcFAmNuBAJiUgkBDXBhcnNlSW50VmFsdWUBCAUCZEcCXzgDAwMJAQJhRQAGCQAAAgUCYlIFAWkGCQAAAgUCYlIFAWsJAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJSBQJkRwECZEgBAmRJBAJkSgkA/AcEBQJhegIEZW1pdAkAzAgCBQJkSQUDbmlsBQNuaWwDCQAAAgUCZEoFAmRKBAJkSwQCZEwFAmRKAwkAAQIFAmRMAgdBZGRyZXNzBAJkTQUCZEwJAPwHBAUCZE0CBGVtaXQJAMwIAgUCZEkFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRLBQJkSwUCZEkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmROAgJkSQFWBAJkTwMJAAACBQFWAAAAAAkAawMFAmRJBQFWBQFhCQCUCgIJAGUCBQJkSQUCZE8FAmRPAQJkUAQCZFECZFIBTwFQBAJkUwkAAAIFAVAFBHVuaXQEAmRUCQECYm8BCQECYUwBBQJhUwQCZFUJAQJibwEJAQJhTAEFAmFUBAJkVgMJAAACBQJkUgUCYVMGAwkAAAIFAmRSBQJhVAcJAQJhdwECDWludmFsaWQgYXNzZXQEAmRXAwUCZFMJAJQKAgUCZFQFAmRVAwUCZFYJAJQKAgkAZQIFAmRUBQJkUQUCZFUJAJQKAgUCZFQJAGUCBQJkVQUCZFEEAmRYCAUCZFcCXzEEAmRZCAUCZFcCXzIEAmRaAwUCZFYJAJQKAgUCZFEAAAkAlAoCAAAFAmRRBAJlYQgFAmRaAl8xBAJlYggFAmRaAl8yBAJkaggJAQJkTgIFAmVhBQJhQgJfMQQCZGsICQECZE4CBQJlYgUCYUICXzEEAmVjCQECZE4CBQJkUQUCYUIEAmVkCAUCZWMCXzEEAmRPCAUCZWMCXzIEAmVlCQBkAgUCZFgFAmRqBAJlZgkAZAIFAmRZBQJkawQCZWcJAQJicQIJAQF3AgUCZWYFAmFWCQEBdwIFAmVlBQJhVQQCZWgJAQFBAgUCZWcFAWEEAmVpAwUCZFYFAmRYBQJkWQQCZWoJALYCAQUCZWkEAmVrCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVIJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlbAMJAL8CAgUCZWsFAWQGCQECYXcBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmVsBQJlbAQCZW0JALYCAQUCZWQEAmVuCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmVrCQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFiCQC6AgIJALkCAgUCZW0FAWIFAmVqABIAEgUERE9XTgUBYgUBYgUDbmlsBAJjTQMFAmRTBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFKAAUCZWgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFLAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4CCQClCAEJAQV2YWx1ZQEFAU8JANgEAQkBBXZhbHVlAQUBUAkBAmFaCgUCZWEFAmViBQJlbgUCZWgAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJlbwkBAmJxAgkBAXcCBQJkWQUCYVYJAQF3AgUCZFgFAmFVBAJlcAkBAUECBQJlbwUBYQQCZXEEAmVyAwUCZFYJAJQKAgUCZWEFAmRYCQCUCgIFAmViBQJkWQQCZEkIBQJlcgJfMQQCZXMIBQJlcgJfMgQCZXQJAKADAQkAvAIDBQJlawkAtgIBCQBpAgUCZEkAAgkAtgIBBQJlcwkAawMJAGUCBQJlbgUCZXQFAWEFAmV0CQCXCgUFAmVuBQJjTQUCZE8FAmVxBQJkVgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZXUFAmV2AmVkAmRSAU8BUAQCZFMJAAACBQFQBQR1bml0BAJiRAkBAmFHAAQCYkUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcQQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcgQCZXcJAMwIAgMJAAACBQJkUgUCYVIGCQECYXcBAhBpbnZhbGlkIGxwIGFzc2V0BQNuaWwDCQAAAgUCZXcFAmV3BAJleAMJAAACBQJldgUCYVMGAwkAAAIFAmV2BQJhVAcJAQJhdwECDWludmFsaWQgYXNzZXQEAmV5AwUCZXgJALYCAQkBAmJvAQkBAmFMAQUCYVMJALYCAQkBAmJvAQkBAmFMAQUCYVQEAmV6AwUCZXgFAmJFBQJiRgQCZUEJAQJibwEJAQJhTAEFAmFTBAJlQgkBAmJvAQkBAmFMAQUCYVQEAmVDAwUCZXgFAmVBBQJlQgQCZUQJALYCAQUCZUMEAmVrCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVIJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlRQkAtgIBBQJlZAQCZUYJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZXkJALgCAgUBYgkAdgYJALgCAgUBYgkAugICCQC5AgIFAmVFBQFiBQJlawASBQFmAAAAEgUERE9XTgUBYgUDbmlsBAJlRwkBAmROAgUCZUYFAmFEBAJlSAgFAmVHAl8xBAJkTwgFAmVHAl8yBAJlSQMFAmV4CQCWCgQFAmVIAAAJAGUCBQJlQQUCZUYFAmVCCQCWCgQAAAUCZUgFAmVBCQBlAgUCZUIFAmVGBAJlSggFAmVJAl8xBAJlSwgFAmVJAl8yBAJlTAgFAmVJAl8zBAJlTQgFAmVJAl80BAJlZwkBAmJxAgkBAXcCBQJlTQUCYVYJAQF3AgUCZUwFAmFVBAJlaAkBAUECBQJlZwUBYQQCY00DBQJkUwUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAgkApQgBCQEFdmFsdWUBBQFPCQDYBAEJAQV2YWx1ZQEFAVAJAQJiawYFAmVKBQJlSwUCZWQFAmVoBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSgAFAmVoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVoBQNuaWwEAmVvCQECYnECCQEBdwIFAmVCBQJhVgkBAXcCBQJlQQUCYVUEAmVwCQEBQQIFAmVvBQFhBAJlcQQCZU4JAGgCCQCgAwEJALwCAwUCZXkFAmVFBQJlawACCQBrAwkAZQIFAmVIBQJlTgUBYQUCZU4JAJcKBQUCZUgFAmNNBQJkTwUCZXEFAmV4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlTwAEAmRMCQCiCAEJAQFIAAMJAAECBQJkTAIGU3RyaW5nBAJlUAUCZEwJANkEAQUCZVADCQABAgUCZEwCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZVEABAJkTAkAoggBCQEBSQADCQABAgUCZEwCBlN0cmluZwQCZVAFAmRMCQDZBAEFAmVQAwkAAQIFAmRMAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmVSAQJkQQQCZEwJAQJlTwADCQABAgUCZEwCCkJ5dGVWZWN0b3IEAmVTBQJkTAkAAAIIBQJkQQ9jYWxsZXJQdWJsaWNLZXkFAmVTAwkAAQIFAmRMAgRVbml0CQAAAggFAmRBBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJlVAECZEEEAmVVCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmRMCQECZU8AAwkAAQIFAmRMAgpCeXRlVmVjdG9yBAJlUwUCZEwDCQAAAggFAmRBD2NhbGxlclB1YmxpY0tleQUCZVMGBQJlVQMJAAECBQJkTAIEVW5pdAMJAAACCAUCZEEGY2FsbGVyBQR0aGlzBgUCZVUJAAIBAgtNYXRjaCBlcnJvchsCZEEBCnNldE1hbmFnZXIBAmVWBAJlVwkBAmVUAQUCZEEDCQAAAgUCZVcFAmVXBAJlWAkA2QQBBQJlVgMJAAACBQJlWAUCZVgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUkABQJlVgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQ5jb25maXJtTWFuYWdlcgAEAmVZCQECZVEABAJlWgMJAQlpc0RlZmluZWQBBQJlWQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZVoFAmVaBAJmYQMJAAACCAUCZEEPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJlWQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZmEFAmZhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFIAAkA2AQBCQEFdmFsdWUBBQJlWQkAzAgCCQELRGVsZXRlRW50cnkBCQEBSQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQEDcHV0AgJjaAJmYgMJAGYCAAAFAmNoCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmRHCQECZEQDBQJkQQUCY2gGBAJjSggFAmRHAl8yBAJiTwgFAmRHAl83BAJjZggFAmRHAl85BAJjSwgFAmRHA18xMAQCY0wIBQJkRwNfMTEEAmZjCAUCZEcDXzEyBAJmZAgFAmRHA18xMwQCZEUJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRBCHBheW1lbnRzAAAGYW1vdW50BAJkRgkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAQZhbW91bnQEAmRhCQECY1QDBQJkRQUCZEYJALYCAQAAAwkAAAIFAmRhBQJkYQQCZEoJAPwHBAUCYXoCBGVtaXQJAMwIAgUCY0oFA25pbAUDbmlsAwkAAAIFAmRKBQJkSgQCZEsEAmRMBQJkSgMJAAECBQJkTAIHQWRkcmVzcwQCZE0FAmRMCQD8BwQFAmRNAgRlbWl0CQDMCAIFAmNKBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkSwUCZEsEAmZlAwkAZgIFAmNLAAAJAPwHBAUCYVkCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJmYwUCY0sFA25pbAUDbmlsAwkAAAIFAmZlBQJmZQQCZmYDCQBmAgUCY0wAAAkA/AcEBQJhWQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmZkBQJjTAUDbmlsBQNuaWwDCQAAAgUCZmYFAmZmBAJmZwMFAmZiBAJmaAkA/AcEBQJhWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk8FAmNKBQNuaWwDCQAAAgUCZmgFAmZoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRBBmNhbGxlcgUCY0oFAmJPBQNuaWwEAmZpCQECZGIDAAAAAAAAAwkAAAIFAmZpBQJmaQQCY1MIBQJmaQJfMgQCZmoIBQJmaQJfMQQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgkAzggCBQJjZgUCZmcFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQpwdXRGb3JGcmVlAQJmbAMJAGYCAAAFAmZsCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRHCQECZEQDBQJkQQUCZmwHBAJjZggFAmRHAl85BAJkRQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAAZhbW91bnQEAmRGCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwABBmFtb3VudAQCZGEJAQJjVAMFAmRFBQJkRgkAtgIBAAADCQAAAgUCZGEFAmRhBAJmbQkBAmRiAwAAAAAAAAQCZmoIBQJmbQJfMQQCY1MIBQJmbQJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgUCY2YFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQlwdXRPbmVUa24CAmZuAmZvBAJmcAoAAmFDCQD8BwQFAmF6Aihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUMCB0Jvb2xlYW4FAmFDCQACAQkArAICCQADAQUCYUMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZxAwMDCQECYUUABgkAAAIFAmFRBQFpBgkAAAIFAmFRBQFrBgUCZnAEAmV3CQDMCAIDAwkBASEBBQJmcQYJAQJlUgEFAmRBBgkBAmF3AQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEEIcGF5bWVudHMAAQYJAQJhdwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZnIJAJEDAggFAmRBCHBheW1lbnRzAAAEAmRSCAUCZnIHYXNzZXRJZAQCZFEIBQJmcgZhbW91bnQEAmRhAwkAAAIFAmRSBQJhUwkBAmNUAwkAtgIBBQJkUQkAtgIBAAAJALYCAQAAAwkAAAIFAmRSBQJhVAkBAmNUAwkAtgIBAAAJALYCAQUCZFEJALYCAQAACQECYXcBAh5wYXltZW50IGFzc2V0IGlzIG5vdCBzdXBwb3J0ZWQDCQAAAgUCZGEFAmRhBAFPCAUCZEEGY2FsbGVyBAFQCAUCZEENdHJhbnNhY3Rpb25JZAQCZnMJAQJkUAQFAmRRBQJkUgUBTwUBUAMJAAACBQJmcwUCZnMEAmRWCAUCZnMCXzUEAmZ0CAUCZnMCXzQEAmRPCAUCZnMCXzMEAmNNCAUCZnMCXzIEAmZ1CAUCZnMCXzEEAmZ2AwMJAGYCBQJmbgAACQBmAgUCZm4FAmZ1BwkBAmF3AQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmbgUDbmlsAgAFAmZ1BAJkSgkBAmRIAQUCZnYDCQAAAgUCZEoFAmRKBAJmZwMFAmZvBAJmdwkA/AcEBQJhWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVIFAmZ2BQNuaWwDCQAAAgUCZncFAmZ3BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRBBmNhbGxlcgUCZnYFAmFSBQNuaWwEAmZ4AwkAZgIFAmRPAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEFAmRPBQJkUgUDbmlsBQNuaWwEAmZ5AwkAAAIFBHRoaXMFAmFBCQCUCgIAAAAAAwUCZFYJAJQKAgkBAS0BBQJkTwAACQCUCgIAAAkBAS0BBQJkTwQCZGMIBQJmeQJfMQQCZGQIBQJmeQJfMgQCZnoJAQJkYgMFAmRjBQJkZAAABAJmaggFAmZ6Al8xBAJjUwgFAmZ6Al8yBAJkbQkBBXZhbHVlAQkAoggBBQFXBAJmawkBAmRmAgUCZGEFAmNTAwkAAAIFAmZrBQJmawkAlAoCCQDOCAIJAM4IAgkAzggCBQJjTQUCZmcFAmZ4BQJmagUCZnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBEXB1dE9uZVRrblJFQURPTkxZAgJkUgJkUQQCZkEJAQJkUAQFAmRRCQECYUoBBQJkUgUEdW5pdAUEdW5pdAQCZnUIBQJmQQJfMQQCY00IBQJmQQJfMgQCZE8IBQJmQQJfMwQCZnQIBQJmQQJfNAQCZFYIBQJmQQJfNQkAlAoCBQNuaWwJAJUKAwUCZnUFAmRPBQJmdAJkQQEJZ2V0T25lVGtuAgJmQgJmbgQCZnAKAAJhQwkA/AcEBQJhegIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgdCb29sZWFuBQJhQwkAAgEJAKwCAgkAAwEFAmFDAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmQwMDCQECYUUABgkAAAIFAmFRBQFrBgUCZnAEAmV3CQDMCAIDAwkBASEBBQJmQwYJAQJlUgEFAmRBBgkBAmF3AQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEEIcGF5bWVudHMAAQYJAQJhdwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZXYJAQJhSgEFAmZCBAJmcgkAkQMCCAUCZEEIcGF5bWVudHMAAAQCZFIIBQJmcgdhc3NldElkBAJlZAgFAmZyBmFtb3VudAQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAFPCAUCZEEGY2FsbGVyBAFQCAUCZEENdHJhbnNhY3Rpb25JZAQCZkQJAQJldQUFAmV2BQJlZAUCZFIFAU8FAVADCQAAAgUCZkQFAmZEBAJleAgFAmZEAl81BAJmdAgFAmZEAl80BAJkTwgFAmZEAl8zBAJjTQgFAmZEAl8yBAJmRQgFAmZEAl8xBAJkSQMDCQBmAgUCZm4AAAkAZgIFAmZuBQJmRQcJAQJhdwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZm4FA25pbAIABQJmRQQCZkYJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZWQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZFIFAmVkBQNuaWwDCQAAAgUCZkYFAmZGBAJmRwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFPBQJkSQUCZXYFA25pbAQCZngDCQBmAgUCZE8AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQQUCZE8FAmV2BQNuaWwFA25pbAQCZkgEAmZJAwkAAAIFBHRoaXMFAmFBAAAFAmRPAwUCZXgJAJQKAgkBAS0BCQBkAgUCZEkFAmZJAAAJAJQKAgAACQEBLQEJAGQCBQJkSQUCZkkEAmRjCAUCZkgCXzEEAmRkCAUCZkgCXzIEAmZKCQECZGIDBQJkYwUCZGQAAAQCZmoIBQJmSgJfMQQCY1MIBQJmSgJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAJQKAgkAzggCCQDOCAIJAM4IAgUCY00FAmZHBQJmeAUCZmoFAmRJCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBARFnZXRPbmVUa25SRUFET05MWQICZXYCZWQEAmZLCQECZXUFCQECYUoBBQJldgUCZWQFAmFSBQR1bml0BQR1bml0BAJmRQgFAmZLAl8xBAJjTQgFAmZLAl8yBAJkTwgFAmZLAl8zBAJmdAgFAmZLAl80BAJleAgFAmZLAl81CQCUCgIFA25pbAkAlQoDBQJmRQUCZE8FAmZ0AmRBARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmTAJmQgJmbgQCZnAKAAJhQwkA/AcEBQJhegIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgdCb29sZWFuBQJhQwkAAgEJAKwCAgkAAwEFAmFDAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmQwMDCQECYUUABgkAAAIFAmFRBQFrBgUCZnAEAmV3CQDMCAIDAwkBASEBBQJmQwYJAQJlUgEFAmRBBgkBAmF3AQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEEIcGF5bWVudHMAAAYJAQJhdwECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZXYJAQJhSgEFAmZCBAFPCAUCZEEGY2FsbGVyBAFQCAUCZEENdHJhbnNhY3Rpb25JZAQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAJmTQkA/AcEBQJhWAIHdW5zdGFrZQkAzAgCCQDYBAEFAmFSCQDMCAIFAmZMBQNuaWwFA25pbAMJAAACBQJmTQUCZk0EAmZOCQECZXUFBQJldgUCZkwFAmFSBQFPBQFQAwkAAAIFAmZOBQJmTgQCZXgIBQJmTgJfNQQCZnQIBQJmTgJfNAQCZE8IBQJmTgJfMwQCY00IBQJmTgJfMgQCZkUIBQJmTgJfMQQCZEkDAwkAZgIFAmZuAAAJAGYCBQJmbgUCZkUHCQECYXcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZuBQNuaWwCAAUCZkUEAmZGCQD8BwQFAmF6AgRidXJuCQDMCAIFAmZMBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFSBQJmTAUDbmlsAwkAAAIFAmZGBQJmRgQCZkcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRBBmNhbGxlcgUCZEkFAmV2BQNuaWwEAmZ4AwkAZgIFAmRPAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEFAmRPBQJldgUDbmlsBQNuaWwEAmZPBAJmSQMJAAACBQR0aGlzBQJhQQAABQJkTwMFAmV4CQCUCgIJAQEtAQkAZAIFAmRJBQJmSQAACQCUCgIAAAkBAS0BCQBkAgUCZEkFAmZJBAJkYwgFAmZPAl8xBAJkZAgFAmZPAl8yBAJmUAkBAmRiAwUCZGMFAmRkAAAEAmZqCAUCZlACXzEEAmNTCAUCZlACXzIEAmZrCQECZGYCBQJkYQUCY1MDCQAAAgUCZmsFAmZrCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNNBQJmRwUCZngFAmZqBQJkSQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQEDZ2V0AAQCY3gJAQJkegEFAmRBBAJmUQgFAmN4Al8xBAJjZQgFAmN4Al8yBAJkQwgFAmN4Al8zBAJiTQgFAmN4Al80BAJjZggFAmN4Al81BAJkYQkBAmNUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkYQUCZGEEAmZSCQD8BwQFAmF6AgRidXJuCQDMCAIFAmRDBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJNBQJkQwUDbmlsAwkAAAIFAmZSBQJmUgQCZlMJAQJkYgMJAQEtAQUCZlEJAQEtAQUCY2UAAAQCZmoIBQJmUwJfMQQCY1MIBQJmUwJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgUCY2YFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQlnZXROb0xlc3MCAmZUAmZVBAJjeAkBAmR6AQUCZEEEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmRDCAUCY3gCXzMEAmJNCAUCY3gCXzQEAmNmCAUCY3gCXzUDCQBmAgUCZlQFAmNkCQACAQkArAICCQCsAgIJAKwCAgIcbm9MZXNzVGhlbkFtdEFzc2V0IGZhaWxlZDogIAkApAMBBQJjZAIDIDwgCQCkAwEFAmZUAwkAZgIFAmZVBQJjZQkAAgEJAKwCAgkArAICCQCsAgICHW5vTGVzc1RoZW5QcmljZUFzc2V0IGZhaWxlZDogCQCkAwEFAmNlAgMgPCAJAKQDAQUCZlUEAmRhCQECY1QDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRhBQJkYQQCZlIJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZEMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk0FAmRDBQNuaWwDCQAAAgUCZlIFAmZSBAJmVgkBAmRiAwkBAS0BBQJjZAkBAS0BBQJjZQAABAJmaggFAmZWAl8xBAJjUwgFAmZWAl8yBAJmawkBAmRmAgUCZGEFAmNTAwkAAAIFAmZrBQJmawkAzggCBQJjZgUCZmoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBDXVuc3Rha2VBbmRHZXQBAmRJBAJmVwMJAQIhPQIJAJADAQgFAmRBCHBheW1lbnRzAAAJAAIBAhhObyBwYXltZW50cyBhcmUgZXhwZWN0ZWQGAwkAAAIFAmZXBQJmVwQCYkQJAQJhRwAEAmJPCQDZBAEJAJEDAgUCYkQFAW4EAmRhCQECY1QDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRhBQJkYQQCZk0JAPwHBAUCYVgCB3Vuc3Rha2UJAMwIAgkA2AQBBQJiTwkAzAgCBQJkSQUDbmlsBQNuaWwDCQAAAgUCZk0FAmZNBAJjeAkBAmJLBAkA2AQBCAUCZEENdHJhbnNhY3Rpb25JZAkA2AQBBQJiTwUCZEkIBQJkQQZjYWxsZXIEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmJSCQENcGFyc2VJbnRWYWx1ZQEIBQJjeAJfOQQCY2YIBQJjeANfMTAEAmZYAwMJAQJhRQAGCQAAAgUCYlIFAWsJAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJSBgMJAAACBQJmWAUCZlgEAmZSCQD8BwQFAmF6AgRidXJuCQDMCAIFAmRJBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJPBQJkSQUDbmlsAwkAAAIFAmZSBQJmUgQCZlkJAQJkYgMJAQEtAQUCY2QJAQEtAQUCY2UAAAQCZmoIBQJmWQJfMQQCY1MIBQJmWQJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgUCY2YFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBARN1bnN0YWtlQW5kR2V0Tm9MZXNzAwJmTAJmWgJmVQQCZkMDCQECYUUABgkAAAIFAmFRBQFrBAJldwkAzAgCAwkBASEBBQJmQwYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQQhwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAJmTQkA/AcEBQJhWAIHdW5zdGFrZQkAzAgCCQDYBAEFAmFSCQDMCAIFAmZMBQNuaWwFA25pbAMJAAACBQJmTQUCZk0EAmN4CQECYksECQDYBAEIBQJkQQ10cmFuc2FjdGlvbklkCQDYBAEFAmFSBQJmTAgFAmRBBmNhbGxlcgQCY2QIBQJjeAJfMQQCY2UIBQJjeAJfMgQCY2YIBQJjeANfMTAEAmdhCQDMCAIDCQBnAgUCY2QFAmZaBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZaBQNuaWwCAAkAzAgCAwkAZwIFAmNlBQJmVQYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZVBQNuaWwCAAUDbmlsAwkAAAIFAmdhBQJnYQQCZlIJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZkwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVIFAmZMBQNuaWwDCQAAAgUCZlIFAmZSBAJnYgkBAmRiAwkBAS0BBQJjZAkBAS0BBQJjZQAABAJmaggFAmdiAl8xBAJjUwgFAmdiAl8yBAJmawkBAmRmAgUCZGEFAmNTAwkAAAIFAmZrBQJmawkAzggCBQJjZgUCZmoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBCGFjdGl2YXRlAgJnYwJnZAMJAQIhPQIJAKUIAQgFAmRBBmNhbGxlcgkApQgBBQJhegkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZ2MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJnZAUDbmlsAgdzdWNjZXNzAmRBAQpyZWZyZXNoS0xwAAQCZ2UJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUBWAAABAJnZgMJAGcCCQBlAgUGaGVpZ2h0BQJnZQUCYWEFBHVuaXQJAQJhdwEJALkJAgkAzAgCCQCkAwEFAmFhCQDMCAICLyBibG9ja3MgaGF2ZSBub3QgcGFzc2VkIHNpbmNlIHRoZSBwcmV2aW91cyBjYWxsBQNuaWwCAAMJAAACBQJnZgUCZ2YEAmRtCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFXAgEwCQECYXkBAgtpbnZhbGlkIGtMcAQCZ2cJAQJkYgMAAAAAAAAEAmdoCAUCZ2cCXzEEAmNTCAUCZ2cCXzIEAmRlAwkBAiE9AgUCZG0FAmNTBQJnaAkBAmF3AQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmRlCQCmAwEFAmNTCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRwACZEEBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJwCQCUCgIFA25pbAkBAmJvAQUCYnACZEEBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJ4AmJ5AmJDBAJnaQkBAmJCAwUCYngFAmJ5BQJiQwkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmdpAAAJAMwIAgkApgMBCQCRAwIFAmdpAAEJAMwIAgkApgMBCQCRAwIFAmdpAAIFA25pbAJkQQEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAXgBeQkAlAoCBQNuaWwJAKYDAQkBAXcCBQF4BQF5AmRBARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFCAUMJAJQKAgUDbmlsCQEBQQIJAKcDAQUBQgUBQwJkQQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJicgJicwkAlAoCBQNuaWwJAKYDAQkBAmJxAgkApwMBBQJicgkApwMBBQJicwJkQQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJMAmNoAmNpAmNqAmNrAmNsAU8CY20CY24JAJQKAgUDbmlsCQECY2cJBQJiTAUCY2gFAmNpBQJjagUCY2sFAmNsBQFPBQJjbQUCY24CZEEBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJiTAJiTQJiTgFPBAJjeAkBAmJLBAUCYkwFAmJNBQJiTgkBEUBleHRyTmF0aXZlKDEwNjIpAQUBTwkAlAoCBQNuaWwJAJwKCggFAmN4Al8xCAUCY3gCXzIIBQJjeAJfMwgFAmN4Al80CAUCY3gCXzUIBQJjeAJfNggFAmN4Al83CQCmAwEIBQJjeAJfOAgFAmN4Al85CAUCY3gDXzEwAmRBAQ1zdGF0c1JFQURPTkxZAAQCYkQJAQJhRwAEAmJPCQDZBAEJAJEDAgUCYkQFAW4EAmdqCQCRAwIFAmJEBQFvBAJnawkAkQMCBQJiRAUBcAQCY3EJAJEDAgUCYkQFAXMEAmNyCQCRAwIFAmJEBQF0BAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFxBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFyBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdtCQECYm8BBQJnagQCZ24JAQJibwEFAmdrBAJnbwMJAAACBQJnbAAACQDMCAIFAWMJAMwIAgUBYwkAzAgCBQFjBQNuaWwJAQJiQgMFAmdtBQJnbgUCZ2wEAmJZAAAEAmdwCQEBQQIJAJEDAgUCZ28AAQUBYQQCZ3EJAQFBAgkAkQMCBQJnbwACBQFhBAJncgkBBXZhbHVlAQkAmggCBQJhegkBAmFqAQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZ20JAMwIAgkApAMBBQJnbgkAzAgCCQCkAwEFAmdsCQDMCAIJAKQDAQUCYlkJAMwIAgkApAMBBQJncAkAzAgCCQCkAwEFAmdxCQDMCAIJAKQDAQUCZ3IFA25pbAUBaAJkQQEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmNpBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCY28JAJEDAgUCYkQFAW8EAmJQCQDZBAEFAmNvBAJjcAkAkQMCBQJiRAUBcAQCYlEJANkEAQUCY3AEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdtCQECYm8BBQJjbwQCZ24JAQJibwEFAmNwBAJiegkBAXcCBQJnbQUCYkUEAmJBCQEBdwIFAmduBQJiRgQCYlgDCQAAAgUCZ2wAAAUBYwkBAmJxAgUCYkEFAmJ6BAJjdQkBAXcCBQJjaQUCYkUEAmN2CQC8AgMFAmN1BQJiWAUBYgQCY2sJAQFBAgUCY3YFAmJGBAJkRwkBAmNnCQIAAKDCHgUCY2kFAmJQBQJjawUCYlECAAYHBAJjRggFAmRHAl8xBAJncwgFAmRHAl8zBAJiVAgFAmRHAl80BAJiVggFAmRHAl81BAJiUwgFAmRHAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjRgkAzAgCCQCkAwEJAQFBAgUCYlgFAWEJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYlMJAMwIAgUCYlIJAMwIAgkApAMBBQJjaQkAzAgCCQCkAwEFAmNrBQNuaWwFAWgCZEEBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmNrBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCY28JAJEDAgUCYkQFAW8EAmJQCQDZBAEFAmNvBAJjcAkAkQMCBQJiRAUBcAQCYlEJANkEAQUCY3AEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmd0CQECYm8BBQJjbwQCZ3UJAQJibwEFAmNwBAJndgkBAXcCBQJndAUCYkUEAmd3CQEBdwIFAmd1BQJiRgQCYlgDCQAAAgUCZ2wAAAUBYwkBAmJxAgUCZ3cFAmd2BAJjdgkBAXcCBQJjawUCYkYEAmN1CQC8AgMFAmN2BQFiBQJiWAQCY2kJAQFBAgUCY3UFAmJFBAJkRwkBAmNnCQIAAKDCHgUCY2kFAmJQBQJjawUCYlECAAYHBAJjRggFAmRHAl8xBAJncwgFAmRHAl8zBAJiVAgFAmRHAl80BAJiVggFAmRHAl81BAJiUwgFAmRHAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjRgkAzAgCCQCkAwEJAQFBAgUCYlgFAWEJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYlMJAMwIAgUCYlIJAMwIAgkApAMBBQJjaQkAzAgCCQCkAwEFAmNrBQNuaWwFAWgCZEEBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmd4Amd5BAJjeAkBAmJLBAIABQJneAUCZ3kFBHRoaXMEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmJUCAUCY3gCXzUEAmJWCAUCY3gCXzYEAmJTCAUCY3gCXzcEAmJZCAUCY3gCXzgEAmJSCQENcGFyc2VJbnRWYWx1ZQEIBQJjeAJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNkCQDMCAIJAKQDAQUCY2UJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYlMJAMwIAgkApgMBBQJiWQkAzAgCCQCkAwEFAmJSBQNuaWwFAWgBAmd6AQJnQQAEAmdCBAJkTAkBAmVPAAMJAAECBQJkTAIKQnl0ZVZlY3RvcgQCZVMFAmRMBQJlUwMJAAECBQJkTAIEVW5pdAgFAmd6D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkTAUCZ3oDCQABAgUCZEwCBU9yZGVyBAJkaQUCZEwEAmdDCQECYUYABAJnRAkBAmRoAQUCZGkEAmFvCAUCZ0QCXzEEAmFwCAUCZ0QCXzIEAmFxCQD0AwMIBQJkaQlib2R5Qnl0ZXMJAJEDAggFAmRpBnByb29mcwAACAUCZGkPc2VuZGVyUHVibGljS2V5BAJhcgkA9AMDCAUCZGkJYm9keUJ5dGVzCQCRAwIIBQJkaQZwcm9vZnMAAQUCZ0MDAwMFAmFvBQJhcQcFAmFyBwYJAQJhbgQFAmFvBQJhcAUCYXEFAmFyAwkAAQIFAmRMAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZVAFAmRMBAJnRQkA9gMBCQEFdmFsdWUBCAUCZVAGc2NyaXB0BAJnRgkA2wQBCQEFdmFsdWUBCQCdCAIFAmF6CQECYWwABAJnRwkA8QcBBQR0aGlzAwMJAAACBQJnRgUCZ0UJAQIhPQIFAmdHBQJnRQcGCQD0AwMIBQJneglib2R5Qnl0ZXMJAJEDAggFAmd6BnByb29mcwAABQJnQgkA9AMDCAUCZ3oJYm9keUJ5dGVzCQCRAwIIBQJnegZwcm9vZnMAAAUCZ0I9yuVy", "height": 2413067, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8J2Fvf5ScyjQoNhZMJoXNsgfNFkatwhKvfTEwqj55c9t Next: sUT2dHrpzqkj67ZkySpwznuN2BVmxyj5YFNqAXEFstr Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 8
4+let a = 100000000
55
6-let b = 100000000
6+let b = toBigInt(1000000000000000000)
77
8-let c = toBigInt(100000000)
8+let c = toBigInt(0)
99
10-let d = toBigInt(1000000000000000000)
10+let d = toBigInt(0)
1111
12-let e = toBigInt(0)
12+let e = toBigInt(1)
1313
14-let f = toBigInt(0)
14+let f = toBigInt(2)
1515
16-let g = toBigInt(1)
16+let g = "WAVES"
1717
18-let h = toBigInt(2)
18+let h = "__"
1919
20-let i = "WAVES"
20+let i = 2
2121
22-let j = "__"
22+let j = 3
2323
24-let k = 1
24+let k = 4
2525
26-let l = 2
26+let l = 1
2727
28-let m = 3
28+let m = 2
2929
30-let n = 4
30+let n = 3
3131
32-let o = 1
32+let o = 4
3333
34-let p = 2
34+let p = 5
3535
36-let q = 3
36+let q = 6
3737
38-let r = 4
38+let r = 7
3939
40-let s = 5
40+let s = 8
4141
42-let t = 6
42+let t = 9
4343
44-let u = 7
44+let u = 1
4545
46-let v = 8
46+let v = 7
4747
48-let w = 9
49-
50-let x = 10
51-
52-let y = 1
53-
54-let z = 2
55-
56-let A = 3
57-
58-let B = 1
59-
60-let C = 7
61-
62-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
48+func w (x,y) = fraction(toBigInt(x), b, toBigInt(y))
6349
6450
65-func G (E,F) = fraction(E, d, F)
51+func z (x,y) = fraction(x, b, y)
6652
6753
68-func H (I,J) = toInt(fraction(I, toBigInt(J), d))
54+func A (B,C) = toInt(fraction(B, toBigInt(C), b))
6955
7056
71-func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
57+func D (B,C,E) = toInt(fraction(B, toBigInt(C), b, E))
7258
7359
74-func M (N,O,P) = fraction(N, O, P)
60+func F (B) = if ((c > B))
61+ then -(B)
62+ else B
7563
7664
77-func Q (I) = if ((0 > I))
78- then -(I)
79- else I
65+func G () = "%s__factoryContract"
8066
8167
82-func R (I) = if ((e > I))
83- then -(I)
84- else I
68+func H () = "%s__managerPublicKey"
8569
8670
87-func S () = "%s__factoryContract"
71+func I () = "%s__pendingManagerPublicKey"
8872
8973
90-func T () = "%s__managerPublicKey"
74+func J () = "%s%s__price__last"
9175
9276
93-func U () = "%s__pendingManagerPublicKey"
77+func K (L,M) = makeString(["%s%s%d%d__price__history", toString(L), toString(M)], h)
9478
9579
96-func V () = "%s%s__price__last"
80+func N (O,P) = ((("%s%s%s__P__" + O) + "__") + P)
9781
9882
99-func W (X,Y) = makeString(["%s%s%d%d__price__history", toString(X), toString(Y)], j)
83+func Q (O,P) = ((("%s%s%s__G__" + O) + "__") + P)
10084
10185
102-func Z (aa,ab) = ((("%s%s%s__P__" + aa) + "__") + ab)
86+func R () = "%s__amountAsset"
10387
10488
105-func ac (aa,ab) = ((("%s%s%s__G__" + aa) + "__") + ab)
89+func S () = "%s__priceAsset"
10690
10791
108-func ad () = "%s__amountAsset"
92+let T = "%s__fee"
93+
94+let U = fraction(10, a, 10000)
95+
96+let V = valueOrElse(getInteger(this, T), U)
97+
98+let W = makeString(["%s", "kLp"], h)
99+
100+let X = makeString(["%s", "kLpRefreshedHeight"], h)
101+
102+let Y = makeString(["%s", "refreshKLpDelay"], h)
103+
104+let Z = 30
105+
106+let aa = valueOrElse(getInteger(this, Y), Z)
107+
108+func ab () = "%s__factoryConfig"
109109
110110
111-func ae () = "%s__priceAsset"
111+func ac () = "%s%s__matcher__publicKey"
112112
113113
114-let af = "%s__fee"
115-
116-let ag = fraction(10, b, 10000)
117-
118-let ah = valueOrElse(getInteger(this, af), ag)
119-
120-let ai = makeString(["%s", "kLp"], j)
121-
122-let aj = makeString(["%s", "kLpRefreshedHeight"], j)
123-
124-let ak = makeString(["%s", "refreshKLpDelay"], j)
125-
126-let al = 30
127-
128-let am = valueOrElse(getInteger(this, ak), al)
129-
130-func an () = "%s__factoryConfig"
114+func ad (ae,af) = (((("%d%d%s__" + ae) + "__") + af) + "__config")
131115
132116
133-func ao () = "%s%s__matcher__publicKey"
117+func ag (ah) = ("%s%s%s__mappings__baseAsset2internalId__" + ah)
134118
135119
136-func ap (aq) = (("%s%s%s__" + aq) + "__mappings__poolContract2LpAsset")
120+func ai () = "%s__shutdown"
137121
138122
139-func ar (as,at) = (((("%d%d%s__" + as) + "__") + at) + "__config")
123+func aj (ak) = ("%s%s__poolWeight__" + ak)
140124
141125
142-func au (av) = ("%s%s%s__mappings__baseAsset2internalId__" + av)
126+func al () = "%s__allowedLpScriptHash"
143127
144128
145-func aw () = "%s__shutdown"
129+let am = "%s__feeCollectorAddress"
130+
131+func an (ao,ap,aq,ar) = throw((((((((("order validation failed: orderValid=" + toString(ao)) + " (") + ap) + ")") + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
146132
147133
148-func ax (ay) = ("%s%s__poolWeight__" + ay)
134+func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
149135
150136
151-func az () = "%s__allowedLpScriptHash"
137+func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
152138
153139
154-let aA = "%s__feeCollectorAddress"
155-
156-func aB (aC,aD,aE) = throw(((((("order validation failed: orderValid=" + toString(aC)) + " senderValid=") + toString(aD)) + " matcherValid=") + toString(aE)))
140+func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
157141
158142
159-func aF (aG,aH) = valueOrErrorMessage(getString(aG, aH), makeString(["mandatory ", toString(aG), ".", aH, " is not defined"], ""))
143+func ay (ax) = makeString(["lp.ride:", ax], " ")
160144
161145
162-func aI (aG,aH) = valueOrErrorMessage(getInteger(aG, aH), makeString(["mandatory ", toString(aG), ".", aH, " is not defined"], ""))
146+let az = addressFromStringValue(as(this, G()))
147+
148+let aA = addressFromStringValue(as(az, am))
149+
150+let aB = {
151+ let aC = invoke(az, "getInFeeREADONLY", [toString(this)], nil)
152+ if ($isInstanceOf(aC, "Int"))
153+ then aC
154+ else throw(($getType(aC) + " couldn't be cast to Int"))
155+ }
156+
157+let aD = {
158+ let aC = invoke(az, "getOutFeeREADONLY", [toString(this)], nil)
159+ if ($isInstanceOf(aC, "Int"))
160+ then aC
161+ else throw(($getType(aC) + " couldn't be cast to Int"))
162+ }
163+
164+func aE () = valueOrElse(getBoolean(az, ai()), false)
163165
164166
165-func aJ (aK) = throw(makeString(["lp.ride:", aK], " "))
167+func aF () = fromBase58String(as(az, ac()))
166168
167169
168-func aL (aK) = makeString(["lp.ride:", aK], " ")
169-
170-
171-let aM = addressFromStringValue(aF(this, S()))
172-
173-let aN = addressFromStringValue(aF(aM, aA))
174-
175-let aO = {
176- let aP = invoke(aM, "getInFeeREADONLY", [toString(this)], nil)
177- if ($isInstanceOf(aP, "Int"))
178- then aP
179- else throw(($getType(aP) + " couldn't be cast to Int"))
180- }
181-
182-let aQ = {
183- let aP = invoke(aM, "getOutFeeREADONLY", [toString(this)], nil)
184- if ($isInstanceOf(aP, "Int"))
185- then aP
186- else throw(($getType(aP) + " couldn't be cast to Int"))
187- }
188-
189-func aR () = valueOrElse(getBoolean(aM, aw()), false)
190-
191-
192-func aS () = fromBase58String(aF(aM, ao()))
193-
194-
195-func aT () = {
196- let aU = aF(this, ad())
197- let aV = aF(this, ae())
198- let at = aI(aM, au(aV))
199- let as = aI(aM, au(aU))
200- split(aF(aM, ar(toString(as), toString(at))), j)
170+func aG () = {
171+ let aH = as(this, R())
172+ let aI = as(this, S())
173+ let af = av(az, ag(aI))
174+ let ae = av(az, ag(aH))
175+ split(as(az, ad(toString(ae), toString(af))), h)
201176 }
202177
203178
204-func aW (aX) = if ((aX == i))
179+func aJ (aK) = if ((aK == g))
205180 then unit
206- else fromBase58String(aX)
181+ else fromBase58String(aK)
207182
208183
209-func aY (aX) = if ((aX == unit))
210- then i
211- else toBase58String(value(aX))
184+func aL (aK) = if ((aK == unit))
185+ then g
186+ else toBase58String(value(aK))
212187
213188
214-func aZ (ba) = $Tuple7(addressFromStringValue(ba[o]), parseIntValue(ba[p]), fromBase58String(ba[q]), aW(ba[r]), aW(ba[s]), parseIntValue(ba[t]), parseIntValue(ba[u]))
189+func aM (aN) = $Tuple7(addressFromStringValue(aN[l]), parseIntValue(aN[m]), fromBase58String(aN[n]), aJ(aN[o]), aJ(aN[p]), parseIntValue(aN[q]), parseIntValue(aN[r]))
215190
216191
217-let bb = aZ(aT())
192+let aO = aM(aG())
218193
219-let bc = bb
194+let aP = aO
220195
221-let bd = bc._1
196+let aQ = aP._2
222197
223-let be = bc._2
198+let aR = aP._3
224199
225-let bf = bc._3
200+let aS = aP._4
226201
227-let bg = bc._4
202+let aT = aP._5
228203
229-let bh = bc._5
204+let aU = aP._6
230205
231-let bi = bc._6
206+let aV = aP._7
232207
233-let bj = bc._7
234-
235-func bk () = split(aF(aM, an()), j)
208+func aW () = split(as(az, ab()), h)
236209
237210
238-let bl = valueOrErrorMessage(addressFromString(bk()[B]), "incorrect staking address")
211+let aX = valueOrErrorMessage(addressFromString(aW()[u]), "incorrect staking address")
239212
240-let bm = valueOrErrorMessage(addressFromString(bk()[C]), "incorrect staking address")
213+let aY = valueOrErrorMessage(addressFromString(aW()[v]), "incorrect staking address")
241214
242-func bn (bo,bp,bq,br,bs,bt,bu,bv,bw,bx) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bo), toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx)], j)
215+func aZ (ba,bb,bc,bd,be,bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(ba), toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj)], h)
243216
244217
245-func by (bz,bA,bB,br,bu,bv) = makeString(["%d%d%d%d%d%d", toString(bz), toString(bA), toString(bB), toString(br), toString(bu), toString(bv)], j)
218+func bk (bl,bm,bn,bd,bg,bh) = makeString(["%d%d%d%d%d%d", toString(bl), toString(bm), toString(bn), toString(bd), toString(bg), toString(bh)], h)
246219
247220
248-func bC (bD) = if ((bD == "WAVES"))
221+func bo (bp) = if ((bp == "WAVES"))
249222 then wavesBalance(this).available
250- else assetBalance(this, fromBase58String(bD))
223+ else assetBalance(this, fromBase58String(bp))
251224
252225
253-func bE (bF,bG) = fraction(bF, d, bG)
226+func bq (br,bs) = fraction(br, b, bs)
254227
255228
256-func bH (bF,bG,L) = fraction(bF, d, bG, L)
229+func bt (br,bs,E) = fraction(br, b, bs, E)
257230
258231
259-func bI (bJ,bK,bL,bM) = {
260- let bN = D(bL, bJ)
261- let bO = D(bM, bK)
262- bE(bO, bN)
232+func bu (bv,bw,bx,by) = {
233+ let bz = w(bx, bv)
234+ let bA = w(by, bw)
235+ bq(bA, bz)
263236 }
264237
265238
266-func bP (bL,bM,bQ) = {
267- let bR = aT()
268- let bS = parseIntValue(bR[t])
269- let bT = parseIntValue(bR[u])
270- let bU = bI(bS, bT, bL, bM)
271- let bG = D(bL, bS)
272- let bF = D(bM, bT)
273- let bV = D(bQ, b)
274- let bW = bE(bG, bV)
275- let bX = bE(bF, bV)
276-[bU, bW, bX]
239+func bB (bx,by,bC) = {
240+ let bD = aG()
241+ let bE = parseIntValue(bD[q])
242+ let bF = parseIntValue(bD[r])
243+ let bG = bu(bE, bF, bx, by)
244+ let bs = w(bx, bE)
245+ let br = w(by, bF)
246+ let bH = w(bC, a)
247+ let bI = bq(bs, bH)
248+ let bJ = bq(br, bH)
249+[bG, bI, bJ]
277250 }
278251
279252
280-func bY (bL,bM,bQ) = {
281- let bZ = bP(bL, bM, bQ)
282-[H(bZ[0], b), H(bZ[1], b), H(bZ[2], b)]
283- }
284-
285-
286-func ca (cb,cc,cd,aa) = {
287- let bR = aT()
288- let ce = bR[q]
289- let cf = bR[r]
290- let cg = bR[s]
291- let bJ = parseIntValue(bR[t])
292- let bK = parseIntValue(bR[u])
293- let ch = bR[p]
294- let ci = valueOrErrorMessage(assetInfo(fromBase58String(ce)), (("Asset " + ce) + " doesn't exist")).quantity
295- if ((ce != cc))
253+func bK (bL,bM,bN,O) = {
254+ let bD = aG()
255+ let bO = bD[n]
256+ let bP = bD[o]
257+ let bQ = bD[p]
258+ let bv = parseIntValue(bD[q])
259+ let bw = parseIntValue(bD[r])
260+ let bR = bD[m]
261+ let bS = valueOrErrorMessage(assetInfo(fromBase58String(bO)), (("Asset " + bO) + " doesn't exist")).quantity
262+ if ((bO != bM))
296263 then throw("Invalid asset passed.")
297264 else {
298- let cj = bC(cf)
299- let ck = D(cj, bJ)
300- let cl = bC(cg)
301- let cm = D(cl, bK)
302- let cn = bE(cm, ck)
303- let co = H(cn, b)
304- let cp = D(cd, b)
305- let cq = D(ci, b)
306- let cr = fraction(ck, cp, cq)
307- let cs = fraction(cm, cp, cq)
308- let ct = K(cr, bJ, FLOOR)
309- let cu = K(cs, bK, FLOOR)
310- let cv = if ((cb == ""))
265+ let bT = bo(bP)
266+ let bU = w(bT, bv)
267+ let bV = bo(bQ)
268+ let bW = w(bV, bw)
269+ let bX = bq(bW, bU)
270+ let bY = A(bX, a)
271+ let bZ = w(bN, a)
272+ let ca = w(bS, a)
273+ let cb = fraction(bU, bZ, ca)
274+ let cc = fraction(bW, bZ, ca)
275+ let cd = D(cb, bv, FLOOR)
276+ let ce = D(cc, bw, FLOOR)
277+ let cf = if ((bL == ""))
311278 then nil
312- else [ScriptTransfer(aa, ct, if ((cf == "WAVES"))
279+ else [ScriptTransfer(O, cd, if ((bP == "WAVES"))
313280 then unit
314- else fromBase58String(cf)), ScriptTransfer(aa, cu, if ((cg == "WAVES"))
281+ else fromBase58String(bP)), ScriptTransfer(O, ce, if ((bQ == "WAVES"))
315282 then unit
316- else fromBase58String(cg)), StringEntry(ac(toString(aa), cb), by(ct, cu, cd, co, height, lastBlock.timestamp)), IntegerEntry(V(), co), IntegerEntry(W(height, lastBlock.timestamp), co)]
317- $Tuple10(ct, cu, cf, cg, cj, cl, ci, cn, ch, cv)
283+ else fromBase58String(bQ)), StringEntry(Q(toString(O), bL), bk(cd, ce, bN, bY, height, lastBlock.timestamp)), IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY)]
284+ $Tuple10(cd, ce, bP, bQ, bT, bV, bS, bX, bR, cf)
318285 }
319286 }
320287
321288
322-func cw (cb,cx,cy,cz,cA,cB,aa,cC,cD) = {
323- let bR = aT()
324- let ce = fromBase58String(bR[q])
325- let cE = bR[r]
326- let cF = bR[s]
327- let cG = bR[v]
328- let cH = bR[w]
329- let bS = parseIntValue(bR[t])
330- let bT = parseIntValue(bR[u])
331- let ch = bR[p]
332- let ci = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
333- let cI = toBase58String(valueOrElse(cz, fromBase58String("WAVES")))
334- let cJ = toBase58String(valueOrElse(cB, fromBase58String("WAVES")))
335- if (if ((cE != cI))
289+func cg (bL,ch,ci,cj,ck,cl,O,cm,cn) = {
290+ let bD = aG()
291+ let bO = fromBase58String(bD[n])
292+ let co = bD[o]
293+ let cp = bD[p]
294+ let cq = bD[s]
295+ let cr = bD[t]
296+ let bE = parseIntValue(bD[q])
297+ let bF = parseIntValue(bD[r])
298+ let bR = bD[m]
299+ let bS = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
300+ let cs = toBase58String(valueOrElse(cj, fromBase58String("WAVES")))
301+ let ct = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
302+ if (if ((co != cs))
336303 then true
337- else (cF != cJ))
304+ else (cp != ct))
338305 then throw("Invalid amt or price asset passed.")
339306 else {
340- let cj = if (cC)
341- then bC(cE)
342- else (bC(cE) - cy)
343- let cl = if (cC)
344- then bC(cF)
345- else (bC(cF) - cA)
346- let cK = D(cy, bS)
347- let cL = D(cA, bT)
348- let cM = bE(cL, cK)
349- let ck = D(cj, bS)
350- let cm = D(cl, bT)
351- let cN = if ((ci == 0))
307+ let bT = if (cm)
308+ then bo(co)
309+ else (bo(co) - ci)
310+ let bV = if (cm)
311+ then bo(cp)
312+ else (bo(cp) - ck)
313+ let cu = w(ci, bE)
314+ let cv = w(ck, bF)
315+ let cw = bq(cv, cu)
316+ let bU = w(bT, bE)
317+ let bW = w(bV, bF)
318+ let cx = if ((bS == 0))
352319 then {
353- let cn = e
354- let cO = e
355- let bV = pow((cK * cL), 0, toBigInt(5), 1, 0, DOWN)
356- $Tuple5(H(bV, b), H(cK, bS), H(cL, bT), bE((cm + cL), (ck + cK)), cO)
320+ let bX = c
321+ let cy = c
322+ let bH = pow((cu * cv), 0, toBigInt(5), 1, 0, DOWN)
323+ $Tuple5(A(bH, a), A(cu, bE), A(cv, bF), bq((bW + cv), (bU + cu)), cy)
357324 }
358325 else {
359- let cn = bE(cm, ck)
360- let cO = fraction(R((cn - cM)), d, cn)
361- let cP = D(cx, b)
362- if (if ((cn != e))
363- then (cO > cP)
326+ let bX = bq(bW, bU)
327+ let cy = fraction(F((bX - cw)), b, bX)
328+ let cz = w(ch, a)
329+ if (if ((bX != c))
330+ then (cy > cz)
364331 else false)
365- then throw(((("Price slippage " + toString(cO)) + " exceeded the passed limit of ") + toString(cP)))
332+ then throw(((("Price slippage " + toString(cy)) + " exceeded the passed limit of ") + toString(cz)))
366333 else {
367- let cq = D(ci, b)
368- let cQ = fraction(cK, bH(cm, ck, CEILING), d, CEILING)
369- let cR = fraction(cL, d, bH(cm, ck, FLOOR), CEILING)
370- let cS = if ((cQ > cL))
371- then $Tuple2(cR, cL)
372- else $Tuple2(cK, cQ)
373- let cT = cS._1
374- let cU = cS._2
375- let bV = fraction(cq, cU, cm, FLOOR)
376- $Tuple5(K(bV, b, FLOOR), K(cT, bS, CEILING), K(cU, bT, CEILING), cn, cO)
334+ let ca = w(bS, a)
335+ let cA = fraction(cu, bt(bW, bU, CEILING), b, CEILING)
336+ let cB = fraction(cv, b, bt(bW, bU, FLOOR), CEILING)
337+ let cC = if ((cA > cv))
338+ then $Tuple2(cB, cv)
339+ else $Tuple2(cu, cA)
340+ let cD = cC._1
341+ let cE = cC._2
342+ let bH = fraction(ca, cE, bW, FLOOR)
343+ $Tuple5(D(bH, a, FLOOR), D(cD, bE, CEILING), D(cE, bF, CEILING), bX, cy)
377344 }
378345 }
379- let cV = cN._1
380- let cW = cN._2
381- let cX = cN._3
382- let co = H(cN._4, b)
383- let cY = H(cN._5, b)
384- if ((0 >= cV))
346+ let cF = cx._1
347+ let cG = cx._2
348+ let cH = cx._3
349+ let bY = A(cx._4, a)
350+ let cI = A(cx._5, a)
351+ if ((0 >= cF))
385352 then throw("Invalid calculations. LP calculated is less than zero.")
386353 else {
387- let cZ = if (!(cD))
354+ let cJ = if (!(cn))
388355 then 0
389- else cV
390- let da = (cy - cW)
391- let db = (cA - cX)
392- let dc = [IntegerEntry(V(), co), IntegerEntry(W(height, lastBlock.timestamp), co), StringEntry(Z(aa, cb), bn(cW, cX, cZ, co, cx, cY, height, lastBlock.timestamp, da, db))]
393- $Tuple13(cV, cZ, co, cj, cl, ci, ce, ch, dc, da, db, cz, cB)
356+ else cF
357+ let cK = (ci - cG)
358+ let cL = (ck - cH)
359+ let cM = [IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY), StringEntry(N(O, bL), aZ(cG, cH, cJ, bY, ch, cI, height, lastBlock.timestamp, cK, cL))]
360+ $Tuple13(cF, cJ, bY, bT, bV, bS, bO, bR, cM, cK, cL, cj, cl)
394361 }
395362 }
396363 }
397364
398365
399-func dd (de,df,ci) = {
400- let dg = G(de, toBigInt(bi))
401- let dh = G(df, toBigInt(bj))
402- let di = fraction(pow((dg * dh), 0, toBigInt(5), 1, 18, DOWN), g, ci)
403- if ((ci == f))
404- then f
405- else di
366+func cN (cO,cP,bS) = {
367+ let cQ = z(cO, toBigInt(aU))
368+ let cR = z(cP, toBigInt(aV))
369+ let cS = fraction(pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN), e, bS)
370+ if ((bS == d))
371+ then d
372+ else cS
406373 }
407374
408375
409-func dj (dk,dl,dm) = {
410- let dn = (toBigInt(bC(aY(bg))) - dk)
411- let do = (toBigInt(bC(aY(bh))) - dl)
412- let dp = (toBigInt(value(assetInfo(bf)).quantity) - dm)
413- let dq = dd(dn, do, dp)
414- dq
376+func cT (cU,cV,cW) = {
377+ let cX = (toBigInt(bo(aL(aS))) - cU)
378+ let cY = (toBigInt(bo(aL(aT))) - cV)
379+ let cZ = (toBigInt(value(assetInfo(aR)).quantity) - cW)
380+ let da = cN(cX, cY, cZ)
381+ da
415382 }
416383
417384
418-func dr (ds,dt,dm) = {
419- let dn = (bC(aY(bg)) + ds)
420- let do = (bC(aY(bh)) + dt)
421- let dp = (value(assetInfo(bf)).quantity + dm)
422- let di = dd(toBigInt(dn), toBigInt(do), toBigInt(dp))
423- let du = [IntegerEntry(aj, height), StringEntry(ai, toString(di))]
424- $Tuple2(du, di)
385+func db (dc,dd,cW) = {
386+ let cX = (bo(aL(aS)) + dc)
387+ let cY = (bo(aL(aT)) + dd)
388+ let cZ = (value(assetInfo(aR)).quantity + cW)
389+ let cS = cN(toBigInt(cX), toBigInt(cY), toBigInt(cZ))
390+ let de = [IntegerEntry(X, height), StringEntry(W, toString(cS))]
391+ $Tuple2(de, cS)
425392 }
426393
427394
428-func dv (dw,di) = if ((di >= dw))
395+func df (dg,cS) = if ((cS >= dg))
429396 then true
430- else aJ(makeString(["updated KLp lower than current KLp", toString(dw), toString(di)], " "))
397+ else aw(makeString(["updated KLp lower than current KLp", toString(dg), toString(cS)], " "))
431398
432399
433-func dx (dy) = {
434- let dz = dy.amount
435- let dA = fraction(dy.amount, dy.price, b, FLOOR)
436- let dB = if ((dy.orderType == Buy))
437- then $Tuple2(dz, -(dA))
438- else $Tuple2(-(dz), dA)
439- let ds = dB._1
440- let dt = dB._2
441- if (if (if (aR())
400+func dh (di) = {
401+ let dj = di.amount
402+ let dk = fraction(di.amount, di.price, a, FLOOR)
403+ let dl = if ((di.orderType == Buy))
404+ then $Tuple2(dj, -(dk))
405+ else $Tuple2(-(dj), dk)
406+ let dc = dl._1
407+ let dd = dl._2
408+ if (if (if (aE())
442409 then true
443- else (be == m))
410+ else (aQ == j))
444411 then true
445- else (be == n))
412+ else (aQ == k))
446413 then throw("Exchange operations disabled")
447- else if (if ((dy.assetPair.amountAsset != bg))
414+ else if (if ((di.assetPair.amountAsset != aS))
448415 then true
449- else (dy.assetPair.priceAsset != bh))
416+ else (di.assetPair.priceAsset != aT))
450417 then throw("Wrong order assets.")
451418 else {
452- let dC = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, ai), aL("kLp is required"))), aL("invalid kLp"))
453- let dD = dr(ds, dt, 0)
454- let dE = dD._1
455- let dF = dD._2
456- let dG = (dF >= dC)
457- dG
419+ let dm = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, W), ay("kLp is required"))), ay("invalid kLp"))
420+ let dn = db(dc, dd, 0)
421+ let do = dn._1
422+ let dp = dn._2
423+ let dq = db(0, 0, 0)
424+ let dr = dq._1
425+ let ds = dq._2
426+ let dt = (dp >= dm)
427+ let cO = bo(aL(aS))
428+ let cP = bo(aL(aT))
429+ let cQ = w(cO, aU)
430+ let du = (cQ + w(dc, aU))
431+ let cR = w(cP, aV)
432+ let dv = (cR + w(dd, aV))
433+ let dw = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
434+ let dx = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
435+ let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436+ $Tuple2(dt, dy)
458437 }
459438 }
460439
461440
462-func dH (dI) = if ((size(dI.payments) != 1))
441+func dz (dA) = if ((size(dA.payments) != 1))
463442 then throw("exactly 1 payment is expected")
464443 else {
465- let dJ = value(dI.payments[0])
466- let cc = value(dJ.assetId)
467- let dK = dJ.amount
468- let cN = ca(toBase58String(dI.transactionId), toBase58String(cc), dK, dI.caller)
469- let ct = cN._1
470- let cu = cN._2
471- let ch = parseIntValue(cN._9)
472- let cv = cN._10
473- if (if (aR())
444+ let dB = value(dA.payments[0])
445+ let bM = value(dB.assetId)
446+ let dC = dB.amount
447+ let cx = bK(toBase58String(dA.transactionId), toBase58String(bM), dC, dA.caller)
448+ let cd = cx._1
449+ let ce = cx._2
450+ let bR = parseIntValue(cx._9)
451+ let cf = cx._10
452+ if (if (aE())
474453 then true
475- else (ch == n))
476- then throw(("Get operation is blocked by admin. Status = " + toString(ch)))
477- else $Tuple5(ct, cu, dK, cc, cv)
454+ else (bR == k))
455+ then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
456+ else $Tuple5(cd, ce, dC, bM, cf)
478457 }
479458
480459
481-func dL (dI,cx,cD) = if ((size(dI.payments) != 2))
460+func dD (dA,ch,cn) = if ((size(dA.payments) != 2))
482461 then throw("exactly 2 payments are expected")
483462 else {
484- let dM = value(dI.payments[0])
485- let dN = value(dI.payments[1])
486- let dO = cw(toBase58String(dI.transactionId), cx, dM.amount, dM.assetId, dN.amount, dN.assetId, toString(dI.caller), false, cD)
487- let ch = parseIntValue(dO._8)
488- if (if (if (aR())
463+ let dE = value(dA.payments[0])
464+ let dF = value(dA.payments[1])
465+ let dG = cg(toBase58String(dA.transactionId), ch, dE.amount, dE.assetId, dF.amount, dF.assetId, toString(dA.caller), false, cn)
466+ let bR = parseIntValue(dG._8)
467+ if (if (if (aE())
489468 then true
490- else (ch == l))
469+ else (bR == i))
491470 then true
492- else (ch == n))
493- then throw(("Put operation is blocked by admin. Status = " + toString(ch)))
494- else dO
471+ else (bR == k))
472+ then throw(("Put operation is blocked by admin. Status = " + toString(bR)))
473+ else dG
495474 }
496475
497476
498-func dP (dQ) = {
499- let dR = invoke(aM, "emit", [dQ], nil)
500- if ((dR == dR))
477+func dH (dI) = {
478+ let dJ = invoke(az, "emit", [dI], nil)
479+ if ((dJ == dJ))
501480 then {
502- let dS = {
503- let dT = dR
504- if ($isInstanceOf(dT, "Address"))
481+ let dK = {
482+ let dL = dJ
483+ if ($isInstanceOf(dL, "Address"))
505484 then {
506- let dU = dT
507- invoke(dU, "emit", [dQ], nil)
485+ let dM = dL
486+ invoke(dM, "emit", [dI], nil)
508487 }
509488 else unit
510489 }
511- if ((dS == dS))
512- then dQ
490+ if ((dK == dK))
491+ then dI
513492 else throw("Strict value is not equal to itself.")
514493 }
515494 else throw("Strict value is not equal to itself.")
516495 }
517496
518497
519-func dV (dQ,ah) = {
520- let dW = if ((ah == 0))
498+func dN (dI,V) = {
499+ let dO = if ((V == 0))
521500 then 0
522- else fraction(dQ, ah, b)
523- $Tuple2((dQ - dW), dW)
501+ else fraction(dI, V, a)
502+ $Tuple2((dI - dO), dO)
524503 }
525504
526505
527-func dX (dY,dZ,aa,ab) = {
528- let ea = (ab == unit)
529- let eb = bC(aY(bg))
530- let ec = bC(aY(bh))
531- let ed = if ((dZ == bg))
506+func dP (dQ,dR,O,P) = {
507+ let dS = (P == unit)
508+ let dT = bo(aL(aS))
509+ let dU = bo(aL(aT))
510+ let dV = if ((dR == aS))
532511 then true
533- else if ((dZ == bh))
512+ else if ((dR == aT))
534513 then false
535- else aJ("invalid asset")
536- let ee = if (ea)
537- then $Tuple2(eb, ec)
538- else if (ed)
539- then $Tuple2((eb - dY), ec)
540- else $Tuple2(eb, (ec - dY))
541- let ef = ee._1
542- let eg = ee._2
543- let eh = if (ed)
544- then $Tuple2(dY, 0)
545- else $Tuple2(0, dY)
546- let ei = eh._1
547- let ej = eh._2
548- let dz = dV(ei, aO)._1
549- let dA = dV(ej, aO)._1
550- let ek = dV(dY, aO)
551- let el = ek._1
552- let dW = ek._2
553- let em = (ef + dz)
554- let en = (eg + dA)
555- let eo = bE(D(en, bj), D(em, bi))
556- let ep = H(eo, b)
557- let eq = if (ed)
558- then ef
559- else eg
560- let er = toBigInt(eq)
561- let es = toBigInt(valueOrErrorMessage(assetInfo(bf), (("asset " + toBase58String(bf)) + " doesn't exist")).quantity)
562- let et = if ((es > f))
514+ else aw("invalid asset")
515+ let dW = if (dS)
516+ then $Tuple2(dT, dU)
517+ else if (dV)
518+ then $Tuple2((dT - dQ), dU)
519+ else $Tuple2(dT, (dU - dQ))
520+ let dX = dW._1
521+ let dY = dW._2
522+ let dZ = if (dV)
523+ then $Tuple2(dQ, 0)
524+ else $Tuple2(0, dQ)
525+ let ea = dZ._1
526+ let eb = dZ._2
527+ let dj = dN(ea, aB)._1
528+ let dk = dN(eb, aB)._1
529+ let ec = dN(dQ, aB)
530+ let ed = ec._1
531+ let dO = ec._2
532+ let ee = (dX + dj)
533+ let ef = (dY + dk)
534+ let eg = bq(w(ef, aV), w(ee, aU))
535+ let eh = A(eg, a)
536+ let ei = if (dV)
537+ then dX
538+ else dY
539+ let ej = toBigInt(ei)
540+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541+ let el = if ((ek > d))
563542 then true
564- else aJ("initial deposit requires all coins")
565- if ((et == et))
543+ else aw("initial deposit requires all coins")
544+ if ((el == el))
566545 then {
567- let eu = toBigInt(el)
568- let ev = max([0, toInt(((es * (sqrtBigInt((d + ((eu * d) / er)), 18, 18, DOWN) - d)) / d))])
569- let dc = if (ea)
546+ let em = toBigInt(ed)
547+ let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
548+ let cM = if (dS)
570549 then nil
571- else [IntegerEntry(V(), ep), IntegerEntry(W(height, lastBlock.timestamp), ep), StringEntry(Z(toString(value(aa)), toBase58String(value(ab))), bn(ei, ej, ev, ep, 0, 0, height, lastBlock.timestamp, 0, 0))]
572- let ew = bE(D(eg, bj), D(ef, bi))
573- let ex = H(ew, b)
574- let ey = {
575- let ez = if (ed)
576- then $Tuple2(ei, ef)
577- else $Tuple2(ej, eg)
578- let dQ = ez._1
579- let eA = ez._2
580- let eB = toInt(fraction(es, toBigInt((dQ / 2)), toBigInt(eA)))
581- fraction((ev - eB), b, eB)
550+ else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551+ let eo = bq(w(dY, aV), w(dX, aU))
552+ let ep = A(eo, a)
553+ let eq = {
554+ let er = if (dV)
555+ then $Tuple2(ea, dX)
556+ else $Tuple2(eb, dY)
557+ let dI = er._1
558+ let es = er._2
559+ let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560+ fraction((en - et), a, et)
582561 }
583- $Tuple5(ev, dc, dW, ey, ed)
562+ $Tuple5(en, cM, dO, eq, dV)
584563 }
585564 else throw("Strict value is not equal to itself.")
586565 }
587566
588567
589-func eC (eD,el,dZ,aa,ab) = {
590- let ea = (ab == unit)
591- let bR = aT()
592- let bS = parseIntValue(bR[t])
593- let bT = parseIntValue(bR[u])
594- let eE = [if ((dZ == bf))
568+func eu (ev,ed,dR,O,P) = {
569+ let dS = (P == unit)
570+ let bD = aG()
571+ let bE = parseIntValue(bD[q])
572+ let bF = parseIntValue(bD[r])
573+ let ew = [if ((dR == aR))
595574 then true
596- else aJ("invalid lp asset")]
597- if ((eE == eE))
575+ else aw("invalid lp asset")]
576+ if ((ew == ew))
598577 then {
599- let eF = if ((eD == bg))
578+ let ex = if ((ev == aS))
600579 then true
601- else if ((eD == bh))
580+ else if ((ev == aT))
602581 then false
603- else aJ("invalid asset")
604- let eG = if (eF)
605- then toBigInt(bC(aY(bg)))
606- else toBigInt(bC(aY(bh)))
607- let eH = if (eF)
608- then bS
609- else bT
610- let eI = bC(aY(bg))
611- let eJ = bC(aY(bh))
612- let eK = if (eF)
613- then eI
614- else eJ
615- let eL = toBigInt(eK)
616- let es = toBigInt(valueOrErrorMessage(assetInfo(bf), (("asset " + toBase58String(bf)) + " doesn't exist")).quantity)
617- let eM = toBigInt(el)
618- let eN = max([0, toInt(((eG * (d - pow((d - ((eM * d) / es)), 18, h, 0, 18, DOWN))) / d))])
619- let eO = dV(eN, aQ)
620- let eP = eO._1
621- let dW = eO._2
622- let eQ = if (eF)
623- then $Tuple4(eP, 0, (eI - eN), eJ)
624- else $Tuple4(0, eP, eI, (eJ - eN))
625- let eR = eQ._1
626- let eS = eQ._2
627- let eT = eQ._3
628- let eU = eQ._4
629- let eo = bE(D(eU, bj), D(eT, bi))
630- let ep = H(eo, b)
631- let dc = if (ea)
582+ else aw("invalid asset")
583+ let ey = if (ex)
584+ then toBigInt(bo(aL(aS)))
585+ else toBigInt(bo(aL(aT)))
586+ let ez = if (ex)
587+ then bE
588+ else bF
589+ let eA = bo(aL(aS))
590+ let eB = bo(aL(aT))
591+ let eC = if (ex)
592+ then eA
593+ else eB
594+ let eD = toBigInt(eC)
595+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596+ let eE = toBigInt(ed)
597+ let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598+ let eG = dN(eF, aD)
599+ let eH = eG._1
600+ let dO = eG._2
601+ let eI = if (ex)
602+ then $Tuple4(eH, 0, (eA - eF), eB)
603+ else $Tuple4(0, eH, eA, (eB - eF))
604+ let eJ = eI._1
605+ let eK = eI._2
606+ let eL = eI._3
607+ let eM = eI._4
608+ let eg = bq(w(eM, aV), w(eL, aU))
609+ let eh = A(eg, a)
610+ let cM = if (dS)
632611 then nil
633- else [StringEntry(ac(toString(value(aa)), toBase58String(value(ab))), by(eR, eS, el, ep, height, lastBlock.timestamp)), IntegerEntry(V(), ep), IntegerEntry(W(height, lastBlock.timestamp), ep)]
634- let ew = bE(D(eJ, bj), D(eI, bi))
635- let ex = H(ew, b)
636- let ey = {
637- let eV = (toInt(fraction(eG, eM, es)) * 2)
638- fraction((eP - eV), b, eV)
612+ else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613+ let eo = bq(w(eB, aV), w(eA, aU))
614+ let ep = A(eo, a)
615+ let eq = {
616+ let eN = (toInt(fraction(ey, eE, ek)) * 2)
617+ fraction((eH - eN), a, eN)
639618 }
640- $Tuple5(eP, dc, dW, ey, eF)
619+ $Tuple5(eH, cM, dO, eq, ex)
641620 }
642621 else throw("Strict value is not equal to itself.")
643622 }
644623
645624
646-func eW () = {
647- let dT = getString(T())
648- if ($isInstanceOf(dT, "String"))
625+func eO () = {
626+ let dL = getString(H())
627+ if ($isInstanceOf(dL, "String"))
649628 then {
650- let eX = dT
651- fromBase58String(eX)
629+ let eP = dL
630+ fromBase58String(eP)
652631 }
653- else if ($isInstanceOf(dT, "Unit"))
632+ else if ($isInstanceOf(dL, "Unit"))
654633 then unit
655634 else throw("Match error")
656635 }
657636
658637
659-func eY () = {
660- let dT = getString(U())
661- if ($isInstanceOf(dT, "String"))
638+func eQ () = {
639+ let dL = getString(I())
640+ if ($isInstanceOf(dL, "String"))
662641 then {
663- let eX = dT
664- fromBase58String(eX)
642+ let eP = dL
643+ fromBase58String(eP)
665644 }
666- else if ($isInstanceOf(dT, "Unit"))
645+ else if ($isInstanceOf(dL, "Unit"))
667646 then unit
668647 else throw("Match error")
669648 }
670649
671650
672-func eZ (dI) = {
673- let dT = eW()
674- if ($isInstanceOf(dT, "ByteVector"))
651+func eR (dA) = {
652+ let dL = eO()
653+ if ($isInstanceOf(dL, "ByteVector"))
675654 then {
676- let fa = dT
677- (dI.callerPublicKey == fa)
655+ let eS = dL
656+ (dA.callerPublicKey == eS)
678657 }
679- else if ($isInstanceOf(dT, "Unit"))
680- then (dI.caller == this)
658+ else if ($isInstanceOf(dL, "Unit"))
659+ then (dA.caller == this)
681660 else throw("Match error")
682661 }
683662
684663
685-func fb (dI) = {
686- let fc = throw("Permission denied")
687- let dT = eW()
688- if ($isInstanceOf(dT, "ByteVector"))
664+func eT (dA) = {
665+ let eU = throw("Permission denied")
666+ let dL = eO()
667+ if ($isInstanceOf(dL, "ByteVector"))
689668 then {
690- let fa = dT
691- if ((dI.callerPublicKey == fa))
669+ let eS = dL
670+ if ((dA.callerPublicKey == eS))
692671 then true
693- else fc
672+ else eU
694673 }
695- else if ($isInstanceOf(dT, "Unit"))
696- then if ((dI.caller == this))
674+ else if ($isInstanceOf(dL, "Unit"))
675+ then if ((dA.caller == this))
697676 then true
698- else fc
677+ else eU
699678 else throw("Match error")
700679 }
701680
702681
703-@Callable(dI)
704-func setManager (fd) = {
705- let fe = fb(dI)
706- if ((fe == fe))
682+@Callable(dA)
683+func setManager (eV) = {
684+ let eW = eT(dA)
685+ if ((eW == eW))
707686 then {
708- let ff = fromBase58String(fd)
709- if ((ff == ff))
710- then [StringEntry(U(), fd)]
687+ let eX = fromBase58String(eV)
688+ if ((eX == eX))
689+ then [StringEntry(I(), eV)]
711690 else throw("Strict value is not equal to itself.")
712691 }
713692 else throw("Strict value is not equal to itself.")
715694
716695
717696
718-@Callable(dI)
697+@Callable(dA)
719698 func confirmManager () = {
720- let fg = eY()
721- let fh = if (isDefined(fg))
699+ let eY = eQ()
700+ let eZ = if (isDefined(eY))
722701 then true
723702 else throw("No pending manager")
724- if ((fh == fh))
703+ if ((eZ == eZ))
725704 then {
726- let fi = if ((dI.callerPublicKey == value(fg)))
705+ let fa = if ((dA.callerPublicKey == value(eY)))
727706 then true
728707 else throw("You are not pending manager")
729- if ((fi == fi))
730- then [StringEntry(T(), toBase58String(value(fg))), DeleteEntry(U())]
708+ if ((fa == fa))
709+ then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
731710 else throw("Strict value is not equal to itself.")
732711 }
733712 else throw("Strict value is not equal to itself.")
735714
736715
737716
738-@Callable(dI)
739-func put (cx,fj) = if ((0 > cx))
717+@Callable(dA)
718+func put (ch,fb) = if ((0 > ch))
740719 then throw("Invalid slippageTolerance passed")
741720 else {
742- let dO = dL(dI, cx, true)
743- let cZ = dO._2
744- let ce = dO._7
745- let cv = dO._9
746- let da = dO._10
747- let db = dO._11
748- let fk = dO._12
749- let fl = dO._13
750- let dM = toBigInt(value(dI.payments[0]).amount)
751- let dN = toBigInt(value(dI.payments[1]).amount)
752- let dq = dj(dM, dN, toBigInt(0))
753- if ((dq == dq))
721+ let dG = dD(dA, ch, true)
722+ let cJ = dG._2
723+ let bO = dG._7
724+ let cf = dG._9
725+ let cK = dG._10
726+ let cL = dG._11
727+ let fc = dG._12
728+ let fd = dG._13
729+ let dE = toBigInt(value(dA.payments[0]).amount)
730+ let dF = toBigInt(value(dA.payments[1]).amount)
731+ let da = cT(dE, dF, toBigInt(0))
732+ if ((da == da))
754733 then {
755- let dR = invoke(aM, "emit", [cZ], nil)
756- if ((dR == dR))
734+ let dJ = invoke(az, "emit", [cJ], nil)
735+ if ((dJ == dJ))
757736 then {
758- let dS = {
759- let dT = dR
760- if ($isInstanceOf(dT, "Address"))
737+ let dK = {
738+ let dL = dJ
739+ if ($isInstanceOf(dL, "Address"))
761740 then {
762- let dU = dT
763- invoke(dU, "emit", [cZ], nil)
741+ let dM = dL
742+ invoke(dM, "emit", [cJ], nil)
764743 }
765744 else unit
766745 }
767- if ((dS == dS))
746+ if ((dK == dK))
768747 then {
769- let fm = if ((da > 0))
770- then invoke(bm, "put", nil, [AttachedPayment(fk, da)])
748+ let fe = if ((cK > 0))
749+ then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
771750 else nil
772- if ((fm == fm))
751+ if ((fe == fe))
773752 then {
774- let fn = if ((db > 0))
775- then invoke(bm, "put", nil, [AttachedPayment(fl, db)])
753+ let ff = if ((cL > 0))
754+ then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
776755 else nil
777- if ((fn == fn))
756+ if ((ff == ff))
778757 then {
779- let fo = if (fj)
758+ let fg = if (fb)
780759 then {
781- let fp = invoke(bl, "stake", nil, [AttachedPayment(ce, cZ)])
782- if ((fp == fp))
760+ let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761+ if ((fh == fh))
783762 then nil
784763 else throw("Strict value is not equal to itself.")
785764 }
786- else [ScriptTransfer(dI.caller, cZ, ce)]
787- let fq = dr(0, 0, 0)
788- if ((fq == fq))
765+ else [ScriptTransfer(dA.caller, cJ, bO)]
766+ let fi = db(0, 0, 0)
767+ if ((fi == fi))
789768 then {
790- let di = fq._2
791- let fr = fq._1
792- let fs = dv(dq, di)
793- if ((fs == fs))
794- then ((cv ++ fo) ++ fr)
769+ let cS = fi._2
770+ let fj = fi._1
771+ let fk = df(da, cS)
772+ if ((fk == fk))
773+ then ((cf ++ fg) ++ fj)
795774 else throw("Strict value is not equal to itself.")
796775 }
797776 else throw("Strict value is not equal to itself.")
809788
810789
811790
812-@Callable(dI)
813-func putForFree (ft) = if ((0 > ft))
791+@Callable(dA)
792+func putForFree (fl) = if ((0 > fl))
814793 then throw("Invalid value passed")
815794 else {
816- let dO = dL(dI, ft, false)
817- let cv = dO._9
818- let dM = toBigInt(value(dI.payments[0]).amount)
819- let dN = toBigInt(value(dI.payments[1]).amount)
820- let dq = dj(dM, dN, toBigInt(0))
821- if ((dq == dq))
795+ let dG = dD(dA, fl, false)
796+ let cf = dG._9
797+ let dE = toBigInt(value(dA.payments[0]).amount)
798+ let dF = toBigInt(value(dA.payments[1]).amount)
799+ let da = cT(dE, dF, toBigInt(0))
800+ if ((da == da))
822801 then {
823- let fu = dr(0, 0, 0)
824- let fr = fu._1
825- let di = fu._2
826- let fs = dv(dq, di)
827- if ((fs == fs))
828- then (cv ++ fr)
802+ let fm = db(0, 0, 0)
803+ let fj = fm._1
804+ let cS = fm._2
805+ let fk = df(da, cS)
806+ if ((fk == fk))
807+ then (cf ++ fj)
829808 else throw("Strict value is not equal to itself.")
830809 }
831810 else throw("Strict value is not equal to itself.")
833812
834813
835814
836-@Callable(dI)
837-func putOneTkn (fv,fw) = {
838- let fx = {
839- let aP = invoke(aM, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
840- if ($isInstanceOf(aP, "Boolean"))
841- then aP
842- else throw(($getType(aP) + " couldn't be cast to Boolean"))
815+@Callable(dA)
816+func putOneTkn (fn,fo) = {
817+ let fp = {
818+ let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819+ if ($isInstanceOf(aC, "Boolean"))
820+ then aC
821+ else throw(($getType(aC) + " couldn't be cast to Boolean"))
843822 }
844- let fy = if (if (if (aR())
823+ let fq = if (if (if (aE())
845824 then true
846- else (be == l))
825+ else (aQ == i))
847826 then true
848- else (be == n))
827+ else (aQ == k))
849828 then true
850- else fx
851- let eE = [if (if (!(fy))
829+ else fp
830+ let ew = [if (if (!(fq))
852831 then true
853- else eZ(dI))
832+ else eR(dA))
854833 then true
855- else aJ("put operation is blocked by admin"), if ((size(dI.payments) == 1))
834+ else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
856835 then true
857- else aJ("exactly 1 payment are expected")]
858- if ((eE == eE))
836+ else aw("exactly 1 payment are expected")]
837+ if ((ew == ew))
859838 then {
860- let fz = dI.payments[0]
861- let dZ = fz.assetId
862- let dY = fz.amount
863- let dq = if ((dZ == bg))
864- then dj(toBigInt(dY), toBigInt(0), toBigInt(0))
865- else if ((dZ == bh))
866- then dj(toBigInt(0), toBigInt(dY), toBigInt(0))
867- else aJ("payment asset is not supported")
868- if ((dq == dq))
839+ let fr = dA.payments[0]
840+ let dR = fr.assetId
841+ let dQ = fr.amount
842+ let da = if ((dR == aS))
843+ then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844+ else if ((dR == aT))
845+ then cT(toBigInt(0), toBigInt(dQ), toBigInt(0))
846+ else aw("payment asset is not supported")
847+ if ((da == da))
869848 then {
870- let aa = dI.caller
871- let ab = dI.transactionId
872- let fA = dX(dY, dZ, aa, ab)
873- if ((fA == fA))
849+ let O = dA.caller
850+ let P = dA.transactionId
851+ let fs = dP(dQ, dR, O, P)
852+ if ((fs == fs))
874853 then {
875- let ed = fA._5
876- let fB = fA._4
877- let dW = fA._3
878- let dc = fA._2
879- let fC = fA._1
880- let fD = if (if ((fv > 0))
881- then (fv > fC)
854+ let dV = fs._5
855+ let ft = fs._4
856+ let dO = fs._3
857+ let cM = fs._2
858+ let fu = fs._1
859+ let fv = if (if ((fn > 0))
860+ then (fn > fu)
882861 else false)
883- then aJ(makeString(["amount to receive is less than ", toString(fv)], ""))
884- else fC
885- let dR = dP(fD)
886- if ((dR == dR))
862+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863+ else fu
864+ let dJ = dH(fv)
865+ if ((dJ == dJ))
887866 then {
888- let fo = if (fw)
867+ let fg = if (fo)
889868 then {
890- let fE = invoke(bl, "stake", nil, [AttachedPayment(bf, fD)])
891- if ((fE == fE))
869+ let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870+ if ((fw == fw))
892871 then nil
893872 else throw("Strict value is not equal to itself.")
894873 }
895- else [ScriptTransfer(dI.caller, fD, bf)]
896- let fF = if ((dW > 0))
897- then [ScriptTransfer(aN, dW, dZ)]
874+ else [ScriptTransfer(dA.caller, fv, aR)]
875+ let fx = if ((dO > 0))
876+ then [ScriptTransfer(aA, dO, dR)]
898877 else nil
899- let fG = if ((this == aN))
878+ let fy = if ((this == aA))
900879 then $Tuple2(0, 0)
901- else if (ed)
902- then $Tuple2(-(dW), 0)
903- else $Tuple2(0, -(dW))
904- let ds = fG._1
905- let dt = fG._2
906- let fH = dr(ds, dt, 0)
907- let fr = fH._1
908- let di = fH._2
909- let dC = value(getString(ai))
910- let fs = dv(dq, di)
911- if ((fs == fs))
912- then $Tuple2((((dc ++ fo) ++ fF) ++ fr), fD)
880+ else if (dV)
881+ then $Tuple2(-(dO), 0)
882+ else $Tuple2(0, -(dO))
883+ let dc = fy._1
884+ let dd = fy._2
885+ let fz = db(dc, dd, 0)
886+ let fj = fz._1
887+ let cS = fz._2
888+ let dm = value(getString(W))
889+ let fk = df(da, cS)
890+ if ((fk == fk))
891+ then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
913892 else throw("Strict value is not equal to itself.")
914893 }
915894 else throw("Strict value is not equal to itself.")
923902
924903
925904
926-@Callable(dI)
927-func putOneTknREADONLY (dZ,dY) = {
928- let fI = dX(dY, aW(dZ), unit, unit)
929- let fC = fI._1
930- let dc = fI._2
931- let dW = fI._3
932- let fB = fI._4
933- let ed = fI._5
934- $Tuple2(nil, $Tuple3(fC, dW, fB))
905+@Callable(dA)
906+func putOneTknREADONLY (dR,dQ) = {
907+ let fA = dP(dQ, aJ(dR), unit, unit)
908+ let fu = fA._1
909+ let cM = fA._2
910+ let dO = fA._3
911+ let ft = fA._4
912+ let dV = fA._5
913+ $Tuple2(nil, $Tuple3(fu, dO, ft))
935914 }
936915
937916
938917
939-@Callable(dI)
940-func getOneTkn (fJ,fv) = {
941- let fx = {
942- let aP = invoke(aM, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
943- if ($isInstanceOf(aP, "Boolean"))
944- then aP
945- else throw(($getType(aP) + " couldn't be cast to Boolean"))
918+@Callable(dA)
919+func getOneTkn (fB,fn) = {
920+ let fp = {
921+ let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922+ if ($isInstanceOf(aC, "Boolean"))
923+ then aC
924+ else throw(($getType(aC) + " couldn't be cast to Boolean"))
946925 }
947- let fK = if (if (aR())
926+ let fC = if (if (aE())
948927 then true
949- else (be == n))
928+ else (aQ == k))
950929 then true
951- else fx
952- let eE = [if (if (!(fK))
930+ else fp
931+ let ew = [if (if (!(fC))
953932 then true
954- else eZ(dI))
933+ else eR(dA))
955934 then true
956- else aJ("get operation is blocked by admin"), if ((size(dI.payments) == 1))
935+ else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
957936 then true
958- else aJ("exactly 1 payment are expected")]
959- if ((eE == eE))
937+ else aw("exactly 1 payment are expected")]
938+ if ((ew == ew))
960939 then {
961- let eD = aW(fJ)
962- let fz = dI.payments[0]
963- let dZ = fz.assetId
964- let el = fz.amount
965- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
966- if ((dq == dq))
940+ let ev = aJ(fB)
941+ let fr = dA.payments[0]
942+ let dR = fr.assetId
943+ let ed = fr.amount
944+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945+ if ((da == da))
967946 then {
968- let aa = dI.caller
969- let ab = dI.transactionId
970- let fL = eC(eD, el, dZ, aa, ab)
971- if ((fL == fL))
947+ let O = dA.caller
948+ let P = dA.transactionId
949+ let fD = eu(ev, ed, dR, O, P)
950+ if ((fD == fD))
972951 then {
973- let eF = fL._5
974- let fB = fL._4
975- let dW = fL._3
976- let dc = fL._2
977- let fM = fL._1
978- let dQ = if (if ((fv > 0))
979- then (fv > fM)
952+ let ex = fD._5
953+ let ft = fD._4
954+ let dO = fD._3
955+ let cM = fD._2
956+ let fE = fD._1
957+ let dI = if (if ((fn > 0))
958+ then (fn > fE)
980959 else false)
981- then aJ(makeString(["amount to receive is less than ", toString(fv)], ""))
982- else fM
983- let fN = invoke(aM, "burn", [el], [AttachedPayment(dZ, el)])
984- if ((fN == fN))
960+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961+ else fE
962+ let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963+ if ((fF == fF))
985964 then {
986- let fO = [ScriptTransfer(aa, dQ, eD)]
987- let fF = if ((dW > 0))
988- then [ScriptTransfer(aN, dW, eD)]
965+ let fG = [ScriptTransfer(O, dI, ev)]
966+ let fx = if ((dO > 0))
967+ then [ScriptTransfer(aA, dO, ev)]
989968 else nil
990- let fP = {
991- let fQ = if ((this == aN))
969+ let fH = {
970+ let fI = if ((this == aA))
992971 then 0
993- else dW
994- if (eF)
995- then $Tuple2(-((dQ + fQ)), 0)
996- else $Tuple2(0, -((dQ + fQ)))
972+ else dO
973+ if (ex)
974+ then $Tuple2(-((dI + fI)), 0)
975+ else $Tuple2(0, -((dI + fI)))
997976 }
998- let ds = fP._1
999- let dt = fP._2
1000- let fR = dr(ds, dt, 0)
1001- let fr = fR._1
1002- let di = fR._2
1003- let fs = dv(dq, di)
1004- if ((fs == fs))
1005- then $Tuple2((((dc ++ fO) ++ fF) ++ fr), dQ)
977+ let dc = fH._1
978+ let dd = fH._2
979+ let fJ = db(dc, dd, 0)
980+ let fj = fJ._1
981+ let cS = fJ._2
982+ let fk = df(da, cS)
983+ if ((fk == fk))
984+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
1006985 else throw("Strict value is not equal to itself.")
1007986 }
1008987 else throw("Strict value is not equal to itself.")
1016995
1017996
1018997
1019-@Callable(dI)
1020-func getOneTknREADONLY (eD,el) = {
1021- let fS = eC(aW(eD), el, bf, unit, unit)
1022- let fM = fS._1
1023- let dc = fS._2
1024- let dW = fS._3
1025- let fB = fS._4
1026- let eF = fS._5
1027- $Tuple2(nil, $Tuple3(fM, dW, fB))
998+@Callable(dA)
999+func getOneTknREADONLY (ev,ed) = {
1000+ let fK = eu(aJ(ev), ed, aR, unit, unit)
1001+ let fE = fK._1
1002+ let cM = fK._2
1003+ let dO = fK._3
1004+ let ft = fK._4
1005+ let ex = fK._5
1006+ $Tuple2(nil, $Tuple3(fE, dO, ft))
10281007 }
10291008
10301009
10311010
1032-@Callable(dI)
1033-func unstakeAndGetOneTkn (fT,fJ,fv) = {
1034- let fx = {
1035- let aP = invoke(aM, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1036- if ($isInstanceOf(aP, "Boolean"))
1037- then aP
1038- else throw(($getType(aP) + " couldn't be cast to Boolean"))
1011+@Callable(dA)
1012+func unstakeAndGetOneTkn (fL,fB,fn) = {
1013+ let fp = {
1014+ let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1015+ if ($isInstanceOf(aC, "Boolean"))
1016+ then aC
1017+ else throw(($getType(aC) + " couldn't be cast to Boolean"))
10391018 }
1040- let fK = if (if (aR())
1019+ let fC = if (if (aE())
10411020 then true
1042- else (be == n))
1021+ else (aQ == k))
10431022 then true
1044- else fx
1045- let eE = [if (if (!(fK))
1023+ else fp
1024+ let ew = [if (if (!(fC))
10461025 then true
1047- else eZ(dI))
1026+ else eR(dA))
10481027 then true
1049- else aJ("get operation is blocked by admin"), if ((size(dI.payments) == 0))
1028+ else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
10501029 then true
1051- else aJ("no payments are expected")]
1052- if ((eE == eE))
1030+ else aw("no payments are expected")]
1031+ if ((ew == ew))
10531032 then {
1054- let eD = aW(fJ)
1055- let aa = dI.caller
1056- let ab = dI.transactionId
1057- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1058- if ((dq == dq))
1033+ let ev = aJ(fB)
1034+ let O = dA.caller
1035+ let P = dA.transactionId
1036+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1037+ if ((da == da))
10591038 then {
1060- let fU = invoke(bl, "unstake", [toBase58String(bf), fT], nil)
1061- if ((fU == fU))
1039+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040+ if ((fM == fM))
10621041 then {
1063- let fV = eC(eD, fT, bf, aa, ab)
1064- if ((fV == fV))
1042+ let fN = eu(ev, fL, aR, O, P)
1043+ if ((fN == fN))
10651044 then {
1066- let eF = fV._5
1067- let fB = fV._4
1068- let dW = fV._3
1069- let dc = fV._2
1070- let fM = fV._1
1071- let dQ = if (if ((fv > 0))
1072- then (fv > fM)
1045+ let ex = fN._5
1046+ let ft = fN._4
1047+ let dO = fN._3
1048+ let cM = fN._2
1049+ let fE = fN._1
1050+ let dI = if (if ((fn > 0))
1051+ then (fn > fE)
10731052 else false)
1074- then aJ(makeString(["amount to receive is less than ", toString(fv)], ""))
1075- else fM
1076- let fN = invoke(aM, "burn", [fT], [AttachedPayment(bf, fT)])
1077- if ((fN == fN))
1053+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054+ else fE
1055+ let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056+ if ((fF == fF))
10781057 then {
1079- let fO = [ScriptTransfer(dI.caller, dQ, eD)]
1080- let fF = if ((dW > 0))
1081- then [ScriptTransfer(aN, dW, eD)]
1058+ let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059+ let fx = if ((dO > 0))
1060+ then [ScriptTransfer(aA, dO, ev)]
10821061 else nil
1083- let fW = {
1084- let fQ = if ((this == aN))
1062+ let fO = {
1063+ let fI = if ((this == aA))
10851064 then 0
1086- else dW
1087- if (eF)
1088- then $Tuple2(-((dQ + fQ)), 0)
1089- else $Tuple2(0, -((dQ + fQ)))
1065+ else dO
1066+ if (ex)
1067+ then $Tuple2(-((dI + fI)), 0)
1068+ else $Tuple2(0, -((dI + fI)))
10901069 }
1091- let ds = fW._1
1092- let dt = fW._2
1093- let fX = dr(ds, dt, 0)
1094- let fr = fX._1
1095- let di = fX._2
1096- let fs = dv(dq, di)
1097- if ((fs == fs))
1098- then $Tuple2((((dc ++ fO) ++ fF) ++ fr), dQ)
1070+ let dc = fO._1
1071+ let dd = fO._2
1072+ let fP = db(dc, dd, 0)
1073+ let fj = fP._1
1074+ let cS = fP._2
1075+ let fk = df(da, cS)
1076+ if ((fk == fk))
1077+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
10991078 else throw("Strict value is not equal to itself.")
11001079 }
11011080 else throw("Strict value is not equal to itself.")
11111090
11121091
11131092
1114-@Callable(dI)
1093+@Callable(dA)
11151094 func get () = {
1116- let cN = dH(dI)
1117- let fY = cN._1
1118- let cu = cN._2
1119- let dK = cN._3
1120- let cc = cN._4
1121- let cv = cN._5
1122- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1123- if ((dq == dq))
1095+ let cx = dz(dA)
1096+ let fQ = cx._1
1097+ let ce = cx._2
1098+ let dC = cx._3
1099+ let bM = cx._4
1100+ let cf = cx._5
1101+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1102+ if ((da == da))
11241103 then {
1125- let fZ = invoke(aM, "burn", [dK], [AttachedPayment(cc, dK)])
1126- if ((fZ == fZ))
1104+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105+ if ((fR == fR))
11271106 then {
1128- let ga = dr(-(fY), -(cu), 0)
1129- let fr = ga._1
1130- let di = ga._2
1131- let fs = dv(dq, di)
1132- if ((fs == fs))
1133- then (cv ++ fr)
1107+ let fS = db(-(fQ), -(ce), 0)
1108+ let fj = fS._1
1109+ let cS = fS._2
1110+ let fk = df(da, cS)
1111+ if ((fk == fk))
1112+ then (cf ++ fj)
11341113 else throw("Strict value is not equal to itself.")
11351114 }
11361115 else throw("Strict value is not equal to itself.")
11401119
11411120
11421121
1143-@Callable(dI)
1144-func getNoLess (gb,gc) = {
1145- let cN = dH(dI)
1146- let ct = cN._1
1147- let cu = cN._2
1148- let dK = cN._3
1149- let cc = cN._4
1150- let cv = cN._5
1151- if ((gb > ct))
1152- then throw(((("noLessThenAmtAsset failed: " + toString(ct)) + " < ") + toString(gb)))
1153- else if ((gc > cu))
1154- then throw(((("noLessThenPriceAsset failed: " + toString(cu)) + " < ") + toString(gc)))
1122+@Callable(dA)
1123+func getNoLess (fT,fU) = {
1124+ let cx = dz(dA)
1125+ let cd = cx._1
1126+ let ce = cx._2
1127+ let dC = cx._3
1128+ let bM = cx._4
1129+ let cf = cx._5
1130+ if ((fT > cd))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132+ else if ((fU > ce))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
11551134 else {
1156- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1157- if ((dq == dq))
1135+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1136+ if ((da == da))
11581137 then {
1159- let fZ = invoke(aM, "burn", [dK], [AttachedPayment(cc, dK)])
1160- if ((fZ == fZ))
1138+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139+ if ((fR == fR))
11611140 then {
1162- let gd = dr(-(ct), -(cu), 0)
1163- let fr = gd._1
1164- let di = gd._2
1165- let fs = dv(dq, di)
1166- if ((fs == fs))
1167- then (cv ++ fr)
1141+ let fV = db(-(cd), -(ce), 0)
1142+ let fj = fV._1
1143+ let cS = fV._2
1144+ let fk = df(da, cS)
1145+ if ((fk == fk))
1146+ then (cf ++ fj)
11681147 else throw("Strict value is not equal to itself.")
11691148 }
11701149 else throw("Strict value is not equal to itself.")
11751154
11761155
11771156
1178-@Callable(dI)
1179-func unstakeAndGet (dQ) = {
1180- let ge = if ((size(dI.payments) != 0))
1157+@Callable(dA)
1158+func unstakeAndGet (dI) = {
1159+ let fW = if ((size(dA.payments) != 0))
11811160 then throw("No payments are expected")
11821161 else true
1183- if ((ge == ge))
1162+ if ((fW == fW))
11841163 then {
1185- let bR = aT()
1186- let ce = fromBase58String(bR[q])
1187- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1188- if ((dq == dq))
1164+ let bD = aG()
1165+ let bO = fromBase58String(bD[n])
1166+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1167+ if ((da == da))
11891168 then {
1190- let fU = invoke(bl, "unstake", [toBase58String(ce), dQ], nil)
1191- if ((fU == fU))
1169+ let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170+ if ((fM == fM))
11921171 then {
1193- let cN = ca(toBase58String(dI.transactionId), toBase58String(ce), dQ, dI.caller)
1194- let ct = cN._1
1195- let cu = cN._2
1196- let ch = parseIntValue(cN._9)
1197- let cv = cN._10
1198- let gf = if (if (aR())
1172+ let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
1173+ let cd = cx._1
1174+ let ce = cx._2
1175+ let bR = parseIntValue(cx._9)
1176+ let cf = cx._10
1177+ let fX = if (if (aE())
11991178 then true
1200- else (ch == n))
1201- then throw(("Get operation is blocked by admin. Status = " + toString(ch)))
1179+ else (bR == k))
1180+ then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
12021181 else true
1203- if ((gf == gf))
1182+ if ((fX == fX))
12041183 then {
1205- let fZ = invoke(aM, "burn", [dQ], [AttachedPayment(ce, dQ)])
1206- if ((fZ == fZ))
1184+ let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185+ if ((fR == fR))
12071186 then {
1208- let gg = dr(-(ct), -(cu), 0)
1209- let fr = gg._1
1210- let di = gg._2
1211- let fs = dv(dq, di)
1212- if ((fs == fs))
1213- then (cv ++ fr)
1187+ let fY = db(-(cd), -(ce), 0)
1188+ let fj = fY._1
1189+ let cS = fY._2
1190+ let fk = df(da, cS)
1191+ if ((fk == fk))
1192+ then (cf ++ fj)
12141193 else throw("Strict value is not equal to itself.")
12151194 }
12161195 else throw("Strict value is not equal to itself.")
12261205
12271206
12281207
1229-@Callable(dI)
1230-func unstakeAndGetNoLess (fT,gh,gc) = {
1231- let fK = if (aR())
1208+@Callable(dA)
1209+func unstakeAndGetNoLess (fL,fZ,fU) = {
1210+ let fC = if (aE())
12321211 then true
1233- else (be == n)
1234- let eE = [if (!(fK))
1212+ else (aQ == k)
1213+ let ew = [if (!(fC))
12351214 then true
1236- else throw("get operation is blocked by admin"), if ((size(dI.payments) == 0))
1215+ else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
12371216 then true
12381217 else throw("no payments are expected")]
1239- if ((eE == eE))
1218+ if ((ew == ew))
12401219 then {
1241- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1242- if ((dq == dq))
1220+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1221+ if ((da == da))
12431222 then {
1244- let fU = invoke(bl, "unstake", [toBase58String(bf), fT], nil)
1245- if ((fU == fU))
1223+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224+ if ((fM == fM))
12461225 then {
1247- let cN = ca(toBase58String(dI.transactionId), toBase58String(bf), fT, dI.caller)
1248- let ct = cN._1
1249- let cu = cN._2
1250- let cv = cN._10
1251- let gi = [if ((ct >= gh))
1226+ let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
1227+ let cd = cx._1
1228+ let ce = cx._2
1229+ let cf = cx._10
1230+ let ga = [if ((cd >= fZ))
12521231 then true
1253- else throw(makeString(["amount asset amount to receive is less than ", toString(gh)], "")), if ((cu >= gc))
1232+ else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
12541233 then true
1255- else throw(makeString(["price asset amount to receive is less than ", toString(gc)], ""))]
1256- if ((gi == gi))
1234+ else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235+ if ((ga == ga))
12571236 then {
1258- let fZ = invoke(aM, "burn", [fT], [AttachedPayment(bf, fT)])
1259- if ((fZ == fZ))
1237+ let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238+ if ((fR == fR))
12601239 then {
1261- let gj = dr(-(ct), -(cu), 0)
1262- let fr = gj._1
1263- let di = gj._2
1264- let fs = dv(dq, di)
1265- if ((fs == fs))
1266- then (cv ++ fr)
1240+ let gb = db(-(cd), -(ce), 0)
1241+ let fj = gb._1
1242+ let cS = gb._2
1243+ let fk = df(da, cS)
1244+ if ((fk == fk))
1245+ then (cf ++ fj)
12671246 else throw("Strict value is not equal to itself.")
12681247 }
12691248 else throw("Strict value is not equal to itself.")
12791258
12801259
12811260
1282-@Callable(dI)
1283-func activate (gk,gl) = if ((toString(dI.caller) != toString(aM)))
1261+@Callable(dA)
1262+func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
12841263 then throw("permissions denied")
1285- else $Tuple2([StringEntry(ad(), gk), StringEntry(ae(), gl)], "success")
1264+ else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
12861265
12871266
12881267
1289-@Callable(dI)
1268+@Callable(dA)
12901269 func refreshKLp () = {
1291- let gm = valueOrElse(getInteger(aj), 0)
1292- let gn = if (((height - gm) >= am))
1270+ let ge = valueOrElse(getInteger(X), 0)
1271+ let gf = if (((height - ge) >= aa))
12931272 then unit
1294- else aJ(makeString([toString(am), " blocks have not passed since the previous call"], ""))
1295- if ((gn == gn))
1273+ else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274+ if ((gf == gf))
12961275 then {
1297- let dC = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ai), "0")), aL("invalid kLp"))
1298- let go = dr(0, 0, 0)
1299- let gp = go._1
1300- let di = go._2
1301- let du = if ((dC != di))
1302- then gp
1303- else aJ("nothing to refresh")
1304- $Tuple2(du, toString(di))
1276+ let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277+ let gg = db(0, 0, 0)
1278+ let gh = gg._1
1279+ let cS = gg._2
1280+ let de = if ((dm != cS))
1281+ then gh
1282+ else aw("nothing to refresh")
1283+ $Tuple2(de, toString(cS))
13051284 }
13061285 else throw("Strict value is not equal to itself.")
13071286 }
13081287
13091288
13101289
1311-@Callable(dI)
1312-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aT())
1290+@Callable(dA)
1291+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
13131292
13141293
13151294
1316-@Callable(dI)
1317-func getAccBalanceWrapperREADONLY (bD) = $Tuple2(nil, bC(bD))
1295+@Callable(dA)
1296+func getAccBalanceWrapperREADONLY (bp) = $Tuple2(nil, bo(bp))
13181297
13191298
13201299
1321-@Callable(dI)
1322-func calcPricesWrapperREADONLY (bL,bM,bQ) = {
1323- let bZ = bP(bL, bM, bQ)
1324- $Tuple2(nil, [toString(bZ[0]), toString(bZ[1]), toString(bZ[2])])
1300+@Callable(dA)
1301+func calcPricesWrapperREADONLY (bx,by,bC) = {
1302+ let gi = bB(bx, by, bC)
1303+ $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
13251304 }
13261305
13271306
13281307
1329-@Callable(dI)
1330-func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
1308+@Callable(dA)
1309+func toX18WrapperREADONLY (x,y) = $Tuple2(nil, toString(w(x, y)))
13311310
13321311
13331312
1334-@Callable(dI)
1335-func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
1313+@Callable(dA)
1314+func fromX18WrapperREADONLY (B,C) = $Tuple2(nil, A(parseBigIntValue(B), C))
13361315
13371316
13381317
1339-@Callable(dI)
1340-func calcPriceBigIntWrapperREADONLY (bF,bG) = $Tuple2(nil, toString(bE(parseBigIntValue(bF), parseBigIntValue(bG))))
1318+@Callable(dA)
1319+func calcPriceBigIntWrapperREADONLY (br,bs) = $Tuple2(nil, toString(bq(parseBigIntValue(br), parseBigIntValue(bs))))
13411320
13421321
13431322
1344-@Callable(dI)
1345-func estimatePutOperationWrapperREADONLY (cb,cx,cy,cz,cA,cB,aa,cC,cD) = $Tuple2(nil, cw(cb, cx, cy, cz, cA, cB, aa, cC, cD))
1323+@Callable(dA)
1324+func estimatePutOperationWrapperREADONLY (bL,ch,ci,cj,ck,cl,O,cm,cn) = $Tuple2(nil, cg(bL, ch, ci, cj, ck, cl, O, cm, cn))
13461325
13471326
13481327
1349-@Callable(dI)
1350-func estimateGetOperationWrapperREADONLY (cb,cc,cd,aa) = {
1351- let cN = ca(cb, cc, cd, addressFromStringValue(aa))
1352- $Tuple2(nil, $Tuple10(cN._1, cN._2, cN._3, cN._4, cN._5, cN._6, cN._7, toString(cN._8), cN._9, cN._10))
1328+@Callable(dA)
1329+func estimateGetOperationWrapperREADONLY (bL,bM,bN,O) = {
1330+ let cx = bK(bL, bM, bN, addressFromStringValue(O))
1331+ $Tuple2(nil, $Tuple10(cx._1, cx._2, cx._3, cx._4, cx._5, cx._6, cx._7, toString(cx._8), cx._9, cx._10))
13531332 }
13541333
13551334
13561335
1357-@Callable(dI)
1336+@Callable(dA)
13581337 func statsREADONLY () = {
1359- let bR = aT()
1360- let ce = fromBase58String(bR[q])
1361- let gq = bR[r]
1362- let gr = bR[s]
1363- let cG = bR[v]
1364- let cH = bR[w]
1365- let bS = parseIntValue(bR[t])
1366- let bT = parseIntValue(bR[u])
1367- let gs = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
1368- let gt = bC(gq)
1369- let gu = bC(gr)
1370- let gv = if ((gs == 0))
1371- then [e, e, e]
1372- else bP(gt, gu, gs)
1373- let co = 0
1374- let gw = H(gv[1], b)
1375- let gx = H(gv[2], b)
1376- let gy = value(getInteger(aM, ax(toString(this))))
1377- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gt), toString(gu), toString(gs), toString(co), toString(gw), toString(gx), toString(gy)], j))
1338+ let bD = aG()
1339+ let bO = fromBase58String(bD[n])
1340+ let gj = bD[o]
1341+ let gk = bD[p]
1342+ let cq = bD[s]
1343+ let cr = bD[t]
1344+ let bE = parseIntValue(bD[q])
1345+ let bF = parseIntValue(bD[r])
1346+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347+ let gm = bo(gj)
1348+ let gn = bo(gk)
1349+ let go = if ((gl == 0))
1350+ then [c, c, c]
1351+ else bB(gm, gn, gl)
1352+ let bY = 0
1353+ let gp = A(go[1], a)
1354+ let gq = A(go[2], a)
1355+ let gr = value(getInteger(az, aj(toString(this))))
1356+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
13781357 }
13791358
13801359
13811360
1382-@Callable(dI)
1383-func evaluatePutByAmountAssetREADONLY (cy) = {
1384- let bR = aT()
1385- let ce = fromBase58String(bR[q])
1386- let cE = bR[r]
1387- let cf = fromBase58String(cE)
1388- let cF = bR[s]
1389- let cg = fromBase58String(cF)
1390- let bS = parseIntValue(bR[t])
1391- let bT = parseIntValue(bR[u])
1392- let ch = bR[p]
1393- let gs = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
1394- let gt = bC(cE)
1395- let gu = bC(cF)
1396- let bN = D(gt, bS)
1397- let bO = D(gu, bT)
1398- let cn = if ((gs == 0))
1399- then e
1400- else bE(bO, bN)
1401- let cK = D(cy, bS)
1402- let cL = fraction(cK, cn, d)
1403- let cA = H(cL, bT)
1404- let dO = cw("", 500000, cy, cf, cA, cg, "", true, false)
1405- let cV = dO._1
1406- let gz = dO._3
1407- let cj = dO._4
1408- let cl = dO._5
1409- let ci = dO._6
1410- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cV), toString(H(cn, b)), toString(cj), toString(cl), toString(ci), ch, toString(cy), toString(cA)], j))
1361+@Callable(dA)
1362+func evaluatePutByAmountAssetREADONLY (ci) = {
1363+ let bD = aG()
1364+ let bO = fromBase58String(bD[n])
1365+ let co = bD[o]
1366+ let bP = fromBase58String(co)
1367+ let cp = bD[p]
1368+ let bQ = fromBase58String(cp)
1369+ let bE = parseIntValue(bD[q])
1370+ let bF = parseIntValue(bD[r])
1371+ let bR = bD[m]
1372+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373+ let gm = bo(co)
1374+ let gn = bo(cp)
1375+ let bz = w(gm, bE)
1376+ let bA = w(gn, bF)
1377+ let bX = if ((gl == 0))
1378+ then c
1379+ else bq(bA, bz)
1380+ let cu = w(ci, bE)
1381+ let cv = fraction(cu, bX, b)
1382+ let ck = A(cv, bF)
1383+ let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1384+ let cF = dG._1
1385+ let gs = dG._3
1386+ let bT = dG._4
1387+ let bV = dG._5
1388+ let bS = dG._6
1389+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
14111390 }
14121391
14131392
14141393
1415-@Callable(dI)
1416-func evaluatePutByPriceAssetREADONLY (cA) = {
1417- let bR = aT()
1418- let ce = fromBase58String(bR[q])
1419- let cE = bR[r]
1420- let cf = fromBase58String(cE)
1421- let cF = bR[s]
1422- let cg = fromBase58String(cF)
1423- let bS = parseIntValue(bR[t])
1424- let bT = parseIntValue(bR[u])
1425- let ch = bR[p]
1426- let gs = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
1427- let gA = bC(cE)
1428- let gB = bC(cF)
1429- let gC = D(gA, bS)
1430- let gD = D(gB, bT)
1431- let cn = if ((gs == 0))
1432- then e
1433- else bE(gD, gC)
1434- let cL = D(cA, bT)
1435- let cK = fraction(cL, d, cn)
1436- let cy = H(cK, bS)
1437- let dO = cw("", 500000, cy, cf, cA, cg, "", true, false)
1438- let cV = dO._1
1439- let gz = dO._3
1440- let cj = dO._4
1441- let cl = dO._5
1442- let ci = dO._6
1443- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cV), toString(H(cn, b)), toString(cj), toString(cl), toString(ci), ch, toString(cy), toString(cA)], j))
1394+@Callable(dA)
1395+func evaluatePutByPriceAssetREADONLY (ck) = {
1396+ let bD = aG()
1397+ let bO = fromBase58String(bD[n])
1398+ let co = bD[o]
1399+ let bP = fromBase58String(co)
1400+ let cp = bD[p]
1401+ let bQ = fromBase58String(cp)
1402+ let bE = parseIntValue(bD[q])
1403+ let bF = parseIntValue(bD[r])
1404+ let bR = bD[m]
1405+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406+ let gt = bo(co)
1407+ let gu = bo(cp)
1408+ let gv = w(gt, bE)
1409+ let gw = w(gu, bF)
1410+ let bX = if ((gl == 0))
1411+ then c
1412+ else bq(gw, gv)
1413+ let cv = w(ck, bF)
1414+ let cu = fraction(cv, b, bX)
1415+ let ci = A(cu, bE)
1416+ let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1417+ let cF = dG._1
1418+ let gs = dG._3
1419+ let bT = dG._4
1420+ let bV = dG._5
1421+ let bS = dG._6
1422+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
14441423 }
14451424
14461425
14471426
1448-@Callable(dI)
1449-func evaluateGetREADONLY (gE,gF) = {
1450- let cN = ca("", gE, gF, this)
1451- let ct = cN._1
1452- let cu = cN._2
1453- let cj = cN._5
1454- let cl = cN._6
1455- let ci = cN._7
1456- let co = cN._8
1457- let ch = parseIntValue(cN._9)
1458- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ct), toString(cu), toString(cj), toString(cl), toString(ci), toString(co), toString(ch)], j))
1427+@Callable(dA)
1428+func evaluateGetREADONLY (gx,gy) = {
1429+ let cx = bK("", gx, gy, this)
1430+ let cd = cx._1
1431+ let ce = cx._2
1432+ let bT = cx._5
1433+ let bV = cx._6
1434+ let bS = cx._7
1435+ let bY = cx._8
1436+ let bR = parseIntValue(cx._9)
1437+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cd), toString(ce), toString(bT), toString(bV), toString(bS), toString(bY), toString(bR)], h))
14591438 }
14601439
14611440
1462-@Verifier(gG)
1463-func gH () = {
1464- let gI = {
1465- let dT = eW()
1466- if ($isInstanceOf(dT, "ByteVector"))
1441+@Verifier(gz)
1442+func gA () = {
1443+ let gB = {
1444+ let dL = eO()
1445+ if ($isInstanceOf(dL, "ByteVector"))
14671446 then {
1468- let fa = dT
1469- fa
1447+ let eS = dL
1448+ eS
14701449 }
1471- else if ($isInstanceOf(dT, "Unit"))
1472- then gG.senderPublicKey
1450+ else if ($isInstanceOf(dL, "Unit"))
1451+ then gz.senderPublicKey
14731452 else throw("Match error")
14741453 }
1475- let dT = gG
1476- if ($isInstanceOf(dT, "Order"))
1454+ let dL = gz
1455+ if ($isInstanceOf(dL, "Order"))
14771456 then {
1478- let dy = dT
1479- let gJ = aS()
1480- let aC = dx(dy)
1481- let aD = sigVerify(dy.bodyBytes, dy.proofs[0], dy.senderPublicKey)
1482- let aE = sigVerify(dy.bodyBytes, dy.proofs[1], gJ)
1483- if (if (if (aC)
1484- then aD
1457+ let di = dL
1458+ let gC = aF()
1459+ let gD = dh(di)
1460+ let ao = gD._1
1461+ let ap = gD._2
1462+ let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463+ let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
1464+ if (if (if (ao)
1465+ then aq
14851466 else false)
1486- then aE
1467+ then ar
14871468 else false)
14881469 then true
1489- else aB(aC, aD, aE)
1470+ else an(ao, ap, aq, ar)
14901471 }
1491- else if ($isInstanceOf(dT, "SetScriptTransaction"))
1472+ else if ($isInstanceOf(dL, "SetScriptTransaction"))
14921473 then {
1493- let eX = dT
1494- let gK = blake2b256(value(eX.script))
1495- let gL = fromBase64String(value(getString(aM, az())))
1496- let gM = scriptHash(this)
1497- if (if ((gL == gK))
1498- then (gM != gK)
1474+ let eP = dL
1475+ let gE = blake2b256(value(eP.script))
1476+ let gF = fromBase64String(value(getString(az, al())))
1477+ let gG = scriptHash(this)
1478+ if (if ((gF == gE))
1479+ then (gG != gE)
14991480 else false)
15001481 then true
1501- else sigVerify(gG.bodyBytes, gG.proofs[0], gI)
1482+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
15021483 }
1503- else sigVerify(gG.bodyBytes, gG.proofs[0], gI)
1484+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
15041485 }
15051486
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 8
4+let a = 100000000
55
6-let b = 100000000
6+let b = toBigInt(1000000000000000000)
77
8-let c = toBigInt(100000000)
8+let c = toBigInt(0)
99
10-let d = toBigInt(1000000000000000000)
10+let d = toBigInt(0)
1111
12-let e = toBigInt(0)
12+let e = toBigInt(1)
1313
14-let f = toBigInt(0)
14+let f = toBigInt(2)
1515
16-let g = toBigInt(1)
16+let g = "WAVES"
1717
18-let h = toBigInt(2)
18+let h = "__"
1919
20-let i = "WAVES"
20+let i = 2
2121
22-let j = "__"
22+let j = 3
2323
24-let k = 1
24+let k = 4
2525
26-let l = 2
26+let l = 1
2727
28-let m = 3
28+let m = 2
2929
30-let n = 4
30+let n = 3
3131
32-let o = 1
32+let o = 4
3333
34-let p = 2
34+let p = 5
3535
36-let q = 3
36+let q = 6
3737
38-let r = 4
38+let r = 7
3939
40-let s = 5
40+let s = 8
4141
42-let t = 6
42+let t = 9
4343
44-let u = 7
44+let u = 1
4545
46-let v = 8
46+let v = 7
4747
48-let w = 9
49-
50-let x = 10
51-
52-let y = 1
53-
54-let z = 2
55-
56-let A = 3
57-
58-let B = 1
59-
60-let C = 7
61-
62-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
48+func w (x,y) = fraction(toBigInt(x), b, toBigInt(y))
6349
6450
65-func G (E,F) = fraction(E, d, F)
51+func z (x,y) = fraction(x, b, y)
6652
6753
68-func H (I,J) = toInt(fraction(I, toBigInt(J), d))
54+func A (B,C) = toInt(fraction(B, toBigInt(C), b))
6955
7056
71-func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
57+func D (B,C,E) = toInt(fraction(B, toBigInt(C), b, E))
7258
7359
74-func M (N,O,P) = fraction(N, O, P)
60+func F (B) = if ((c > B))
61+ then -(B)
62+ else B
7563
7664
77-func Q (I) = if ((0 > I))
78- then -(I)
79- else I
65+func G () = "%s__factoryContract"
8066
8167
82-func R (I) = if ((e > I))
83- then -(I)
84- else I
68+func H () = "%s__managerPublicKey"
8569
8670
87-func S () = "%s__factoryContract"
71+func I () = "%s__pendingManagerPublicKey"
8872
8973
90-func T () = "%s__managerPublicKey"
74+func J () = "%s%s__price__last"
9175
9276
93-func U () = "%s__pendingManagerPublicKey"
77+func K (L,M) = makeString(["%s%s%d%d__price__history", toString(L), toString(M)], h)
9478
9579
96-func V () = "%s%s__price__last"
80+func N (O,P) = ((("%s%s%s__P__" + O) + "__") + P)
9781
9882
99-func W (X,Y) = makeString(["%s%s%d%d__price__history", toString(X), toString(Y)], j)
83+func Q (O,P) = ((("%s%s%s__G__" + O) + "__") + P)
10084
10185
102-func Z (aa,ab) = ((("%s%s%s__P__" + aa) + "__") + ab)
86+func R () = "%s__amountAsset"
10387
10488
105-func ac (aa,ab) = ((("%s%s%s__G__" + aa) + "__") + ab)
89+func S () = "%s__priceAsset"
10690
10791
108-func ad () = "%s__amountAsset"
92+let T = "%s__fee"
93+
94+let U = fraction(10, a, 10000)
95+
96+let V = valueOrElse(getInteger(this, T), U)
97+
98+let W = makeString(["%s", "kLp"], h)
99+
100+let X = makeString(["%s", "kLpRefreshedHeight"], h)
101+
102+let Y = makeString(["%s", "refreshKLpDelay"], h)
103+
104+let Z = 30
105+
106+let aa = valueOrElse(getInteger(this, Y), Z)
107+
108+func ab () = "%s__factoryConfig"
109109
110110
111-func ae () = "%s__priceAsset"
111+func ac () = "%s%s__matcher__publicKey"
112112
113113
114-let af = "%s__fee"
115-
116-let ag = fraction(10, b, 10000)
117-
118-let ah = valueOrElse(getInteger(this, af), ag)
119-
120-let ai = makeString(["%s", "kLp"], j)
121-
122-let aj = makeString(["%s", "kLpRefreshedHeight"], j)
123-
124-let ak = makeString(["%s", "refreshKLpDelay"], j)
125-
126-let al = 30
127-
128-let am = valueOrElse(getInteger(this, ak), al)
129-
130-func an () = "%s__factoryConfig"
114+func ad (ae,af) = (((("%d%d%s__" + ae) + "__") + af) + "__config")
131115
132116
133-func ao () = "%s%s__matcher__publicKey"
117+func ag (ah) = ("%s%s%s__mappings__baseAsset2internalId__" + ah)
134118
135119
136-func ap (aq) = (("%s%s%s__" + aq) + "__mappings__poolContract2LpAsset")
120+func ai () = "%s__shutdown"
137121
138122
139-func ar (as,at) = (((("%d%d%s__" + as) + "__") + at) + "__config")
123+func aj (ak) = ("%s%s__poolWeight__" + ak)
140124
141125
142-func au (av) = ("%s%s%s__mappings__baseAsset2internalId__" + av)
126+func al () = "%s__allowedLpScriptHash"
143127
144128
145-func aw () = "%s__shutdown"
129+let am = "%s__feeCollectorAddress"
130+
131+func an (ao,ap,aq,ar) = throw((((((((("order validation failed: orderValid=" + toString(ao)) + " (") + ap) + ")") + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
146132
147133
148-func ax (ay) = ("%s%s__poolWeight__" + ay)
134+func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
149135
150136
151-func az () = "%s__allowedLpScriptHash"
137+func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
152138
153139
154-let aA = "%s__feeCollectorAddress"
155-
156-func aB (aC,aD,aE) = throw(((((("order validation failed: orderValid=" + toString(aC)) + " senderValid=") + toString(aD)) + " matcherValid=") + toString(aE)))
140+func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
157141
158142
159-func aF (aG,aH) = valueOrErrorMessage(getString(aG, aH), makeString(["mandatory ", toString(aG), ".", aH, " is not defined"], ""))
143+func ay (ax) = makeString(["lp.ride:", ax], " ")
160144
161145
162-func aI (aG,aH) = valueOrErrorMessage(getInteger(aG, aH), makeString(["mandatory ", toString(aG), ".", aH, " is not defined"], ""))
146+let az = addressFromStringValue(as(this, G()))
147+
148+let aA = addressFromStringValue(as(az, am))
149+
150+let aB = {
151+ let aC = invoke(az, "getInFeeREADONLY", [toString(this)], nil)
152+ if ($isInstanceOf(aC, "Int"))
153+ then aC
154+ else throw(($getType(aC) + " couldn't be cast to Int"))
155+ }
156+
157+let aD = {
158+ let aC = invoke(az, "getOutFeeREADONLY", [toString(this)], nil)
159+ if ($isInstanceOf(aC, "Int"))
160+ then aC
161+ else throw(($getType(aC) + " couldn't be cast to Int"))
162+ }
163+
164+func aE () = valueOrElse(getBoolean(az, ai()), false)
163165
164166
165-func aJ (aK) = throw(makeString(["lp.ride:", aK], " "))
167+func aF () = fromBase58String(as(az, ac()))
166168
167169
168-func aL (aK) = makeString(["lp.ride:", aK], " ")
169-
170-
171-let aM = addressFromStringValue(aF(this, S()))
172-
173-let aN = addressFromStringValue(aF(aM, aA))
174-
175-let aO = {
176- let aP = invoke(aM, "getInFeeREADONLY", [toString(this)], nil)
177- if ($isInstanceOf(aP, "Int"))
178- then aP
179- else throw(($getType(aP) + " couldn't be cast to Int"))
180- }
181-
182-let aQ = {
183- let aP = invoke(aM, "getOutFeeREADONLY", [toString(this)], nil)
184- if ($isInstanceOf(aP, "Int"))
185- then aP
186- else throw(($getType(aP) + " couldn't be cast to Int"))
187- }
188-
189-func aR () = valueOrElse(getBoolean(aM, aw()), false)
190-
191-
192-func aS () = fromBase58String(aF(aM, ao()))
193-
194-
195-func aT () = {
196- let aU = aF(this, ad())
197- let aV = aF(this, ae())
198- let at = aI(aM, au(aV))
199- let as = aI(aM, au(aU))
200- split(aF(aM, ar(toString(as), toString(at))), j)
170+func aG () = {
171+ let aH = as(this, R())
172+ let aI = as(this, S())
173+ let af = av(az, ag(aI))
174+ let ae = av(az, ag(aH))
175+ split(as(az, ad(toString(ae), toString(af))), h)
201176 }
202177
203178
204-func aW (aX) = if ((aX == i))
179+func aJ (aK) = if ((aK == g))
205180 then unit
206- else fromBase58String(aX)
181+ else fromBase58String(aK)
207182
208183
209-func aY (aX) = if ((aX == unit))
210- then i
211- else toBase58String(value(aX))
184+func aL (aK) = if ((aK == unit))
185+ then g
186+ else toBase58String(value(aK))
212187
213188
214-func aZ (ba) = $Tuple7(addressFromStringValue(ba[o]), parseIntValue(ba[p]), fromBase58String(ba[q]), aW(ba[r]), aW(ba[s]), parseIntValue(ba[t]), parseIntValue(ba[u]))
189+func aM (aN) = $Tuple7(addressFromStringValue(aN[l]), parseIntValue(aN[m]), fromBase58String(aN[n]), aJ(aN[o]), aJ(aN[p]), parseIntValue(aN[q]), parseIntValue(aN[r]))
215190
216191
217-let bb = aZ(aT())
192+let aO = aM(aG())
218193
219-let bc = bb
194+let aP = aO
220195
221-let bd = bc._1
196+let aQ = aP._2
222197
223-let be = bc._2
198+let aR = aP._3
224199
225-let bf = bc._3
200+let aS = aP._4
226201
227-let bg = bc._4
202+let aT = aP._5
228203
229-let bh = bc._5
204+let aU = aP._6
230205
231-let bi = bc._6
206+let aV = aP._7
232207
233-let bj = bc._7
234-
235-func bk () = split(aF(aM, an()), j)
208+func aW () = split(as(az, ab()), h)
236209
237210
238-let bl = valueOrErrorMessage(addressFromString(bk()[B]), "incorrect staking address")
211+let aX = valueOrErrorMessage(addressFromString(aW()[u]), "incorrect staking address")
239212
240-let bm = valueOrErrorMessage(addressFromString(bk()[C]), "incorrect staking address")
213+let aY = valueOrErrorMessage(addressFromString(aW()[v]), "incorrect staking address")
241214
242-func bn (bo,bp,bq,br,bs,bt,bu,bv,bw,bx) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bo), toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx)], j)
215+func aZ (ba,bb,bc,bd,be,bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(ba), toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj)], h)
243216
244217
245-func by (bz,bA,bB,br,bu,bv) = makeString(["%d%d%d%d%d%d", toString(bz), toString(bA), toString(bB), toString(br), toString(bu), toString(bv)], j)
218+func bk (bl,bm,bn,bd,bg,bh) = makeString(["%d%d%d%d%d%d", toString(bl), toString(bm), toString(bn), toString(bd), toString(bg), toString(bh)], h)
246219
247220
248-func bC (bD) = if ((bD == "WAVES"))
221+func bo (bp) = if ((bp == "WAVES"))
249222 then wavesBalance(this).available
250- else assetBalance(this, fromBase58String(bD))
223+ else assetBalance(this, fromBase58String(bp))
251224
252225
253-func bE (bF,bG) = fraction(bF, d, bG)
226+func bq (br,bs) = fraction(br, b, bs)
254227
255228
256-func bH (bF,bG,L) = fraction(bF, d, bG, L)
229+func bt (br,bs,E) = fraction(br, b, bs, E)
257230
258231
259-func bI (bJ,bK,bL,bM) = {
260- let bN = D(bL, bJ)
261- let bO = D(bM, bK)
262- bE(bO, bN)
232+func bu (bv,bw,bx,by) = {
233+ let bz = w(bx, bv)
234+ let bA = w(by, bw)
235+ bq(bA, bz)
263236 }
264237
265238
266-func bP (bL,bM,bQ) = {
267- let bR = aT()
268- let bS = parseIntValue(bR[t])
269- let bT = parseIntValue(bR[u])
270- let bU = bI(bS, bT, bL, bM)
271- let bG = D(bL, bS)
272- let bF = D(bM, bT)
273- let bV = D(bQ, b)
274- let bW = bE(bG, bV)
275- let bX = bE(bF, bV)
276-[bU, bW, bX]
239+func bB (bx,by,bC) = {
240+ let bD = aG()
241+ let bE = parseIntValue(bD[q])
242+ let bF = parseIntValue(bD[r])
243+ let bG = bu(bE, bF, bx, by)
244+ let bs = w(bx, bE)
245+ let br = w(by, bF)
246+ let bH = w(bC, a)
247+ let bI = bq(bs, bH)
248+ let bJ = bq(br, bH)
249+[bG, bI, bJ]
277250 }
278251
279252
280-func bY (bL,bM,bQ) = {
281- let bZ = bP(bL, bM, bQ)
282-[H(bZ[0], b), H(bZ[1], b), H(bZ[2], b)]
283- }
284-
285-
286-func ca (cb,cc,cd,aa) = {
287- let bR = aT()
288- let ce = bR[q]
289- let cf = bR[r]
290- let cg = bR[s]
291- let bJ = parseIntValue(bR[t])
292- let bK = parseIntValue(bR[u])
293- let ch = bR[p]
294- let ci = valueOrErrorMessage(assetInfo(fromBase58String(ce)), (("Asset " + ce) + " doesn't exist")).quantity
295- if ((ce != cc))
253+func bK (bL,bM,bN,O) = {
254+ let bD = aG()
255+ let bO = bD[n]
256+ let bP = bD[o]
257+ let bQ = bD[p]
258+ let bv = parseIntValue(bD[q])
259+ let bw = parseIntValue(bD[r])
260+ let bR = bD[m]
261+ let bS = valueOrErrorMessage(assetInfo(fromBase58String(bO)), (("Asset " + bO) + " doesn't exist")).quantity
262+ if ((bO != bM))
296263 then throw("Invalid asset passed.")
297264 else {
298- let cj = bC(cf)
299- let ck = D(cj, bJ)
300- let cl = bC(cg)
301- let cm = D(cl, bK)
302- let cn = bE(cm, ck)
303- let co = H(cn, b)
304- let cp = D(cd, b)
305- let cq = D(ci, b)
306- let cr = fraction(ck, cp, cq)
307- let cs = fraction(cm, cp, cq)
308- let ct = K(cr, bJ, FLOOR)
309- let cu = K(cs, bK, FLOOR)
310- let cv = if ((cb == ""))
265+ let bT = bo(bP)
266+ let bU = w(bT, bv)
267+ let bV = bo(bQ)
268+ let bW = w(bV, bw)
269+ let bX = bq(bW, bU)
270+ let bY = A(bX, a)
271+ let bZ = w(bN, a)
272+ let ca = w(bS, a)
273+ let cb = fraction(bU, bZ, ca)
274+ let cc = fraction(bW, bZ, ca)
275+ let cd = D(cb, bv, FLOOR)
276+ let ce = D(cc, bw, FLOOR)
277+ let cf = if ((bL == ""))
311278 then nil
312- else [ScriptTransfer(aa, ct, if ((cf == "WAVES"))
279+ else [ScriptTransfer(O, cd, if ((bP == "WAVES"))
313280 then unit
314- else fromBase58String(cf)), ScriptTransfer(aa, cu, if ((cg == "WAVES"))
281+ else fromBase58String(bP)), ScriptTransfer(O, ce, if ((bQ == "WAVES"))
315282 then unit
316- else fromBase58String(cg)), StringEntry(ac(toString(aa), cb), by(ct, cu, cd, co, height, lastBlock.timestamp)), IntegerEntry(V(), co), IntegerEntry(W(height, lastBlock.timestamp), co)]
317- $Tuple10(ct, cu, cf, cg, cj, cl, ci, cn, ch, cv)
283+ else fromBase58String(bQ)), StringEntry(Q(toString(O), bL), bk(cd, ce, bN, bY, height, lastBlock.timestamp)), IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY)]
284+ $Tuple10(cd, ce, bP, bQ, bT, bV, bS, bX, bR, cf)
318285 }
319286 }
320287
321288
322-func cw (cb,cx,cy,cz,cA,cB,aa,cC,cD) = {
323- let bR = aT()
324- let ce = fromBase58String(bR[q])
325- let cE = bR[r]
326- let cF = bR[s]
327- let cG = bR[v]
328- let cH = bR[w]
329- let bS = parseIntValue(bR[t])
330- let bT = parseIntValue(bR[u])
331- let ch = bR[p]
332- let ci = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
333- let cI = toBase58String(valueOrElse(cz, fromBase58String("WAVES")))
334- let cJ = toBase58String(valueOrElse(cB, fromBase58String("WAVES")))
335- if (if ((cE != cI))
289+func cg (bL,ch,ci,cj,ck,cl,O,cm,cn) = {
290+ let bD = aG()
291+ let bO = fromBase58String(bD[n])
292+ let co = bD[o]
293+ let cp = bD[p]
294+ let cq = bD[s]
295+ let cr = bD[t]
296+ let bE = parseIntValue(bD[q])
297+ let bF = parseIntValue(bD[r])
298+ let bR = bD[m]
299+ let bS = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
300+ let cs = toBase58String(valueOrElse(cj, fromBase58String("WAVES")))
301+ let ct = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
302+ if (if ((co != cs))
336303 then true
337- else (cF != cJ))
304+ else (cp != ct))
338305 then throw("Invalid amt or price asset passed.")
339306 else {
340- let cj = if (cC)
341- then bC(cE)
342- else (bC(cE) - cy)
343- let cl = if (cC)
344- then bC(cF)
345- else (bC(cF) - cA)
346- let cK = D(cy, bS)
347- let cL = D(cA, bT)
348- let cM = bE(cL, cK)
349- let ck = D(cj, bS)
350- let cm = D(cl, bT)
351- let cN = if ((ci == 0))
307+ let bT = if (cm)
308+ then bo(co)
309+ else (bo(co) - ci)
310+ let bV = if (cm)
311+ then bo(cp)
312+ else (bo(cp) - ck)
313+ let cu = w(ci, bE)
314+ let cv = w(ck, bF)
315+ let cw = bq(cv, cu)
316+ let bU = w(bT, bE)
317+ let bW = w(bV, bF)
318+ let cx = if ((bS == 0))
352319 then {
353- let cn = e
354- let cO = e
355- let bV = pow((cK * cL), 0, toBigInt(5), 1, 0, DOWN)
356- $Tuple5(H(bV, b), H(cK, bS), H(cL, bT), bE((cm + cL), (ck + cK)), cO)
320+ let bX = c
321+ let cy = c
322+ let bH = pow((cu * cv), 0, toBigInt(5), 1, 0, DOWN)
323+ $Tuple5(A(bH, a), A(cu, bE), A(cv, bF), bq((bW + cv), (bU + cu)), cy)
357324 }
358325 else {
359- let cn = bE(cm, ck)
360- let cO = fraction(R((cn - cM)), d, cn)
361- let cP = D(cx, b)
362- if (if ((cn != e))
363- then (cO > cP)
326+ let bX = bq(bW, bU)
327+ let cy = fraction(F((bX - cw)), b, bX)
328+ let cz = w(ch, a)
329+ if (if ((bX != c))
330+ then (cy > cz)
364331 else false)
365- then throw(((("Price slippage " + toString(cO)) + " exceeded the passed limit of ") + toString(cP)))
332+ then throw(((("Price slippage " + toString(cy)) + " exceeded the passed limit of ") + toString(cz)))
366333 else {
367- let cq = D(ci, b)
368- let cQ = fraction(cK, bH(cm, ck, CEILING), d, CEILING)
369- let cR = fraction(cL, d, bH(cm, ck, FLOOR), CEILING)
370- let cS = if ((cQ > cL))
371- then $Tuple2(cR, cL)
372- else $Tuple2(cK, cQ)
373- let cT = cS._1
374- let cU = cS._2
375- let bV = fraction(cq, cU, cm, FLOOR)
376- $Tuple5(K(bV, b, FLOOR), K(cT, bS, CEILING), K(cU, bT, CEILING), cn, cO)
334+ let ca = w(bS, a)
335+ let cA = fraction(cu, bt(bW, bU, CEILING), b, CEILING)
336+ let cB = fraction(cv, b, bt(bW, bU, FLOOR), CEILING)
337+ let cC = if ((cA > cv))
338+ then $Tuple2(cB, cv)
339+ else $Tuple2(cu, cA)
340+ let cD = cC._1
341+ let cE = cC._2
342+ let bH = fraction(ca, cE, bW, FLOOR)
343+ $Tuple5(D(bH, a, FLOOR), D(cD, bE, CEILING), D(cE, bF, CEILING), bX, cy)
377344 }
378345 }
379- let cV = cN._1
380- let cW = cN._2
381- let cX = cN._3
382- let co = H(cN._4, b)
383- let cY = H(cN._5, b)
384- if ((0 >= cV))
346+ let cF = cx._1
347+ let cG = cx._2
348+ let cH = cx._3
349+ let bY = A(cx._4, a)
350+ let cI = A(cx._5, a)
351+ if ((0 >= cF))
385352 then throw("Invalid calculations. LP calculated is less than zero.")
386353 else {
387- let cZ = if (!(cD))
354+ let cJ = if (!(cn))
388355 then 0
389- else cV
390- let da = (cy - cW)
391- let db = (cA - cX)
392- let dc = [IntegerEntry(V(), co), IntegerEntry(W(height, lastBlock.timestamp), co), StringEntry(Z(aa, cb), bn(cW, cX, cZ, co, cx, cY, height, lastBlock.timestamp, da, db))]
393- $Tuple13(cV, cZ, co, cj, cl, ci, ce, ch, dc, da, db, cz, cB)
356+ else cF
357+ let cK = (ci - cG)
358+ let cL = (ck - cH)
359+ let cM = [IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY), StringEntry(N(O, bL), aZ(cG, cH, cJ, bY, ch, cI, height, lastBlock.timestamp, cK, cL))]
360+ $Tuple13(cF, cJ, bY, bT, bV, bS, bO, bR, cM, cK, cL, cj, cl)
394361 }
395362 }
396363 }
397364
398365
399-func dd (de,df,ci) = {
400- let dg = G(de, toBigInt(bi))
401- let dh = G(df, toBigInt(bj))
402- let di = fraction(pow((dg * dh), 0, toBigInt(5), 1, 18, DOWN), g, ci)
403- if ((ci == f))
404- then f
405- else di
366+func cN (cO,cP,bS) = {
367+ let cQ = z(cO, toBigInt(aU))
368+ let cR = z(cP, toBigInt(aV))
369+ let cS = fraction(pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN), e, bS)
370+ if ((bS == d))
371+ then d
372+ else cS
406373 }
407374
408375
409-func dj (dk,dl,dm) = {
410- let dn = (toBigInt(bC(aY(bg))) - dk)
411- let do = (toBigInt(bC(aY(bh))) - dl)
412- let dp = (toBigInt(value(assetInfo(bf)).quantity) - dm)
413- let dq = dd(dn, do, dp)
414- dq
376+func cT (cU,cV,cW) = {
377+ let cX = (toBigInt(bo(aL(aS))) - cU)
378+ let cY = (toBigInt(bo(aL(aT))) - cV)
379+ let cZ = (toBigInt(value(assetInfo(aR)).quantity) - cW)
380+ let da = cN(cX, cY, cZ)
381+ da
415382 }
416383
417384
418-func dr (ds,dt,dm) = {
419- let dn = (bC(aY(bg)) + ds)
420- let do = (bC(aY(bh)) + dt)
421- let dp = (value(assetInfo(bf)).quantity + dm)
422- let di = dd(toBigInt(dn), toBigInt(do), toBigInt(dp))
423- let du = [IntegerEntry(aj, height), StringEntry(ai, toString(di))]
424- $Tuple2(du, di)
385+func db (dc,dd,cW) = {
386+ let cX = (bo(aL(aS)) + dc)
387+ let cY = (bo(aL(aT)) + dd)
388+ let cZ = (value(assetInfo(aR)).quantity + cW)
389+ let cS = cN(toBigInt(cX), toBigInt(cY), toBigInt(cZ))
390+ let de = [IntegerEntry(X, height), StringEntry(W, toString(cS))]
391+ $Tuple2(de, cS)
425392 }
426393
427394
428-func dv (dw,di) = if ((di >= dw))
395+func df (dg,cS) = if ((cS >= dg))
429396 then true
430- else aJ(makeString(["updated KLp lower than current KLp", toString(dw), toString(di)], " "))
397+ else aw(makeString(["updated KLp lower than current KLp", toString(dg), toString(cS)], " "))
431398
432399
433-func dx (dy) = {
434- let dz = dy.amount
435- let dA = fraction(dy.amount, dy.price, b, FLOOR)
436- let dB = if ((dy.orderType == Buy))
437- then $Tuple2(dz, -(dA))
438- else $Tuple2(-(dz), dA)
439- let ds = dB._1
440- let dt = dB._2
441- if (if (if (aR())
400+func dh (di) = {
401+ let dj = di.amount
402+ let dk = fraction(di.amount, di.price, a, FLOOR)
403+ let dl = if ((di.orderType == Buy))
404+ then $Tuple2(dj, -(dk))
405+ else $Tuple2(-(dj), dk)
406+ let dc = dl._1
407+ let dd = dl._2
408+ if (if (if (aE())
442409 then true
443- else (be == m))
410+ else (aQ == j))
444411 then true
445- else (be == n))
412+ else (aQ == k))
446413 then throw("Exchange operations disabled")
447- else if (if ((dy.assetPair.amountAsset != bg))
414+ else if (if ((di.assetPair.amountAsset != aS))
448415 then true
449- else (dy.assetPair.priceAsset != bh))
416+ else (di.assetPair.priceAsset != aT))
450417 then throw("Wrong order assets.")
451418 else {
452- let dC = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, ai), aL("kLp is required"))), aL("invalid kLp"))
453- let dD = dr(ds, dt, 0)
454- let dE = dD._1
455- let dF = dD._2
456- let dG = (dF >= dC)
457- dG
419+ let dm = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, W), ay("kLp is required"))), ay("invalid kLp"))
420+ let dn = db(dc, dd, 0)
421+ let do = dn._1
422+ let dp = dn._2
423+ let dq = db(0, 0, 0)
424+ let dr = dq._1
425+ let ds = dq._2
426+ let dt = (dp >= dm)
427+ let cO = bo(aL(aS))
428+ let cP = bo(aL(aT))
429+ let cQ = w(cO, aU)
430+ let du = (cQ + w(dc, aU))
431+ let cR = w(cP, aV)
432+ let dv = (cR + w(dd, aV))
433+ let dw = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
434+ let dx = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
435+ let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436+ $Tuple2(dt, dy)
458437 }
459438 }
460439
461440
462-func dH (dI) = if ((size(dI.payments) != 1))
441+func dz (dA) = if ((size(dA.payments) != 1))
463442 then throw("exactly 1 payment is expected")
464443 else {
465- let dJ = value(dI.payments[0])
466- let cc = value(dJ.assetId)
467- let dK = dJ.amount
468- let cN = ca(toBase58String(dI.transactionId), toBase58String(cc), dK, dI.caller)
469- let ct = cN._1
470- let cu = cN._2
471- let ch = parseIntValue(cN._9)
472- let cv = cN._10
473- if (if (aR())
444+ let dB = value(dA.payments[0])
445+ let bM = value(dB.assetId)
446+ let dC = dB.amount
447+ let cx = bK(toBase58String(dA.transactionId), toBase58String(bM), dC, dA.caller)
448+ let cd = cx._1
449+ let ce = cx._2
450+ let bR = parseIntValue(cx._9)
451+ let cf = cx._10
452+ if (if (aE())
474453 then true
475- else (ch == n))
476- then throw(("Get operation is blocked by admin. Status = " + toString(ch)))
477- else $Tuple5(ct, cu, dK, cc, cv)
454+ else (bR == k))
455+ then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
456+ else $Tuple5(cd, ce, dC, bM, cf)
478457 }
479458
480459
481-func dL (dI,cx,cD) = if ((size(dI.payments) != 2))
460+func dD (dA,ch,cn) = if ((size(dA.payments) != 2))
482461 then throw("exactly 2 payments are expected")
483462 else {
484- let dM = value(dI.payments[0])
485- let dN = value(dI.payments[1])
486- let dO = cw(toBase58String(dI.transactionId), cx, dM.amount, dM.assetId, dN.amount, dN.assetId, toString(dI.caller), false, cD)
487- let ch = parseIntValue(dO._8)
488- if (if (if (aR())
463+ let dE = value(dA.payments[0])
464+ let dF = value(dA.payments[1])
465+ let dG = cg(toBase58String(dA.transactionId), ch, dE.amount, dE.assetId, dF.amount, dF.assetId, toString(dA.caller), false, cn)
466+ let bR = parseIntValue(dG._8)
467+ if (if (if (aE())
489468 then true
490- else (ch == l))
469+ else (bR == i))
491470 then true
492- else (ch == n))
493- then throw(("Put operation is blocked by admin. Status = " + toString(ch)))
494- else dO
471+ else (bR == k))
472+ then throw(("Put operation is blocked by admin. Status = " + toString(bR)))
473+ else dG
495474 }
496475
497476
498-func dP (dQ) = {
499- let dR = invoke(aM, "emit", [dQ], nil)
500- if ((dR == dR))
477+func dH (dI) = {
478+ let dJ = invoke(az, "emit", [dI], nil)
479+ if ((dJ == dJ))
501480 then {
502- let dS = {
503- let dT = dR
504- if ($isInstanceOf(dT, "Address"))
481+ let dK = {
482+ let dL = dJ
483+ if ($isInstanceOf(dL, "Address"))
505484 then {
506- let dU = dT
507- invoke(dU, "emit", [dQ], nil)
485+ let dM = dL
486+ invoke(dM, "emit", [dI], nil)
508487 }
509488 else unit
510489 }
511- if ((dS == dS))
512- then dQ
490+ if ((dK == dK))
491+ then dI
513492 else throw("Strict value is not equal to itself.")
514493 }
515494 else throw("Strict value is not equal to itself.")
516495 }
517496
518497
519-func dV (dQ,ah) = {
520- let dW = if ((ah == 0))
498+func dN (dI,V) = {
499+ let dO = if ((V == 0))
521500 then 0
522- else fraction(dQ, ah, b)
523- $Tuple2((dQ - dW), dW)
501+ else fraction(dI, V, a)
502+ $Tuple2((dI - dO), dO)
524503 }
525504
526505
527-func dX (dY,dZ,aa,ab) = {
528- let ea = (ab == unit)
529- let eb = bC(aY(bg))
530- let ec = bC(aY(bh))
531- let ed = if ((dZ == bg))
506+func dP (dQ,dR,O,P) = {
507+ let dS = (P == unit)
508+ let dT = bo(aL(aS))
509+ let dU = bo(aL(aT))
510+ let dV = if ((dR == aS))
532511 then true
533- else if ((dZ == bh))
512+ else if ((dR == aT))
534513 then false
535- else aJ("invalid asset")
536- let ee = if (ea)
537- then $Tuple2(eb, ec)
538- else if (ed)
539- then $Tuple2((eb - dY), ec)
540- else $Tuple2(eb, (ec - dY))
541- let ef = ee._1
542- let eg = ee._2
543- let eh = if (ed)
544- then $Tuple2(dY, 0)
545- else $Tuple2(0, dY)
546- let ei = eh._1
547- let ej = eh._2
548- let dz = dV(ei, aO)._1
549- let dA = dV(ej, aO)._1
550- let ek = dV(dY, aO)
551- let el = ek._1
552- let dW = ek._2
553- let em = (ef + dz)
554- let en = (eg + dA)
555- let eo = bE(D(en, bj), D(em, bi))
556- let ep = H(eo, b)
557- let eq = if (ed)
558- then ef
559- else eg
560- let er = toBigInt(eq)
561- let es = toBigInt(valueOrErrorMessage(assetInfo(bf), (("asset " + toBase58String(bf)) + " doesn't exist")).quantity)
562- let et = if ((es > f))
514+ else aw("invalid asset")
515+ let dW = if (dS)
516+ then $Tuple2(dT, dU)
517+ else if (dV)
518+ then $Tuple2((dT - dQ), dU)
519+ else $Tuple2(dT, (dU - dQ))
520+ let dX = dW._1
521+ let dY = dW._2
522+ let dZ = if (dV)
523+ then $Tuple2(dQ, 0)
524+ else $Tuple2(0, dQ)
525+ let ea = dZ._1
526+ let eb = dZ._2
527+ let dj = dN(ea, aB)._1
528+ let dk = dN(eb, aB)._1
529+ let ec = dN(dQ, aB)
530+ let ed = ec._1
531+ let dO = ec._2
532+ let ee = (dX + dj)
533+ let ef = (dY + dk)
534+ let eg = bq(w(ef, aV), w(ee, aU))
535+ let eh = A(eg, a)
536+ let ei = if (dV)
537+ then dX
538+ else dY
539+ let ej = toBigInt(ei)
540+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541+ let el = if ((ek > d))
563542 then true
564- else aJ("initial deposit requires all coins")
565- if ((et == et))
543+ else aw("initial deposit requires all coins")
544+ if ((el == el))
566545 then {
567- let eu = toBigInt(el)
568- let ev = max([0, toInt(((es * (sqrtBigInt((d + ((eu * d) / er)), 18, 18, DOWN) - d)) / d))])
569- let dc = if (ea)
546+ let em = toBigInt(ed)
547+ let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
548+ let cM = if (dS)
570549 then nil
571- else [IntegerEntry(V(), ep), IntegerEntry(W(height, lastBlock.timestamp), ep), StringEntry(Z(toString(value(aa)), toBase58String(value(ab))), bn(ei, ej, ev, ep, 0, 0, height, lastBlock.timestamp, 0, 0))]
572- let ew = bE(D(eg, bj), D(ef, bi))
573- let ex = H(ew, b)
574- let ey = {
575- let ez = if (ed)
576- then $Tuple2(ei, ef)
577- else $Tuple2(ej, eg)
578- let dQ = ez._1
579- let eA = ez._2
580- let eB = toInt(fraction(es, toBigInt((dQ / 2)), toBigInt(eA)))
581- fraction((ev - eB), b, eB)
550+ else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551+ let eo = bq(w(dY, aV), w(dX, aU))
552+ let ep = A(eo, a)
553+ let eq = {
554+ let er = if (dV)
555+ then $Tuple2(ea, dX)
556+ else $Tuple2(eb, dY)
557+ let dI = er._1
558+ let es = er._2
559+ let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560+ fraction((en - et), a, et)
582561 }
583- $Tuple5(ev, dc, dW, ey, ed)
562+ $Tuple5(en, cM, dO, eq, dV)
584563 }
585564 else throw("Strict value is not equal to itself.")
586565 }
587566
588567
589-func eC (eD,el,dZ,aa,ab) = {
590- let ea = (ab == unit)
591- let bR = aT()
592- let bS = parseIntValue(bR[t])
593- let bT = parseIntValue(bR[u])
594- let eE = [if ((dZ == bf))
568+func eu (ev,ed,dR,O,P) = {
569+ let dS = (P == unit)
570+ let bD = aG()
571+ let bE = parseIntValue(bD[q])
572+ let bF = parseIntValue(bD[r])
573+ let ew = [if ((dR == aR))
595574 then true
596- else aJ("invalid lp asset")]
597- if ((eE == eE))
575+ else aw("invalid lp asset")]
576+ if ((ew == ew))
598577 then {
599- let eF = if ((eD == bg))
578+ let ex = if ((ev == aS))
600579 then true
601- else if ((eD == bh))
580+ else if ((ev == aT))
602581 then false
603- else aJ("invalid asset")
604- let eG = if (eF)
605- then toBigInt(bC(aY(bg)))
606- else toBigInt(bC(aY(bh)))
607- let eH = if (eF)
608- then bS
609- else bT
610- let eI = bC(aY(bg))
611- let eJ = bC(aY(bh))
612- let eK = if (eF)
613- then eI
614- else eJ
615- let eL = toBigInt(eK)
616- let es = toBigInt(valueOrErrorMessage(assetInfo(bf), (("asset " + toBase58String(bf)) + " doesn't exist")).quantity)
617- let eM = toBigInt(el)
618- let eN = max([0, toInt(((eG * (d - pow((d - ((eM * d) / es)), 18, h, 0, 18, DOWN))) / d))])
619- let eO = dV(eN, aQ)
620- let eP = eO._1
621- let dW = eO._2
622- let eQ = if (eF)
623- then $Tuple4(eP, 0, (eI - eN), eJ)
624- else $Tuple4(0, eP, eI, (eJ - eN))
625- let eR = eQ._1
626- let eS = eQ._2
627- let eT = eQ._3
628- let eU = eQ._4
629- let eo = bE(D(eU, bj), D(eT, bi))
630- let ep = H(eo, b)
631- let dc = if (ea)
582+ else aw("invalid asset")
583+ let ey = if (ex)
584+ then toBigInt(bo(aL(aS)))
585+ else toBigInt(bo(aL(aT)))
586+ let ez = if (ex)
587+ then bE
588+ else bF
589+ let eA = bo(aL(aS))
590+ let eB = bo(aL(aT))
591+ let eC = if (ex)
592+ then eA
593+ else eB
594+ let eD = toBigInt(eC)
595+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596+ let eE = toBigInt(ed)
597+ let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598+ let eG = dN(eF, aD)
599+ let eH = eG._1
600+ let dO = eG._2
601+ let eI = if (ex)
602+ then $Tuple4(eH, 0, (eA - eF), eB)
603+ else $Tuple4(0, eH, eA, (eB - eF))
604+ let eJ = eI._1
605+ let eK = eI._2
606+ let eL = eI._3
607+ let eM = eI._4
608+ let eg = bq(w(eM, aV), w(eL, aU))
609+ let eh = A(eg, a)
610+ let cM = if (dS)
632611 then nil
633- else [StringEntry(ac(toString(value(aa)), toBase58String(value(ab))), by(eR, eS, el, ep, height, lastBlock.timestamp)), IntegerEntry(V(), ep), IntegerEntry(W(height, lastBlock.timestamp), ep)]
634- let ew = bE(D(eJ, bj), D(eI, bi))
635- let ex = H(ew, b)
636- let ey = {
637- let eV = (toInt(fraction(eG, eM, es)) * 2)
638- fraction((eP - eV), b, eV)
612+ else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613+ let eo = bq(w(eB, aV), w(eA, aU))
614+ let ep = A(eo, a)
615+ let eq = {
616+ let eN = (toInt(fraction(ey, eE, ek)) * 2)
617+ fraction((eH - eN), a, eN)
639618 }
640- $Tuple5(eP, dc, dW, ey, eF)
619+ $Tuple5(eH, cM, dO, eq, ex)
641620 }
642621 else throw("Strict value is not equal to itself.")
643622 }
644623
645624
646-func eW () = {
647- let dT = getString(T())
648- if ($isInstanceOf(dT, "String"))
625+func eO () = {
626+ let dL = getString(H())
627+ if ($isInstanceOf(dL, "String"))
649628 then {
650- let eX = dT
651- fromBase58String(eX)
629+ let eP = dL
630+ fromBase58String(eP)
652631 }
653- else if ($isInstanceOf(dT, "Unit"))
632+ else if ($isInstanceOf(dL, "Unit"))
654633 then unit
655634 else throw("Match error")
656635 }
657636
658637
659-func eY () = {
660- let dT = getString(U())
661- if ($isInstanceOf(dT, "String"))
638+func eQ () = {
639+ let dL = getString(I())
640+ if ($isInstanceOf(dL, "String"))
662641 then {
663- let eX = dT
664- fromBase58String(eX)
642+ let eP = dL
643+ fromBase58String(eP)
665644 }
666- else if ($isInstanceOf(dT, "Unit"))
645+ else if ($isInstanceOf(dL, "Unit"))
667646 then unit
668647 else throw("Match error")
669648 }
670649
671650
672-func eZ (dI) = {
673- let dT = eW()
674- if ($isInstanceOf(dT, "ByteVector"))
651+func eR (dA) = {
652+ let dL = eO()
653+ if ($isInstanceOf(dL, "ByteVector"))
675654 then {
676- let fa = dT
677- (dI.callerPublicKey == fa)
655+ let eS = dL
656+ (dA.callerPublicKey == eS)
678657 }
679- else if ($isInstanceOf(dT, "Unit"))
680- then (dI.caller == this)
658+ else if ($isInstanceOf(dL, "Unit"))
659+ then (dA.caller == this)
681660 else throw("Match error")
682661 }
683662
684663
685-func fb (dI) = {
686- let fc = throw("Permission denied")
687- let dT = eW()
688- if ($isInstanceOf(dT, "ByteVector"))
664+func eT (dA) = {
665+ let eU = throw("Permission denied")
666+ let dL = eO()
667+ if ($isInstanceOf(dL, "ByteVector"))
689668 then {
690- let fa = dT
691- if ((dI.callerPublicKey == fa))
669+ let eS = dL
670+ if ((dA.callerPublicKey == eS))
692671 then true
693- else fc
672+ else eU
694673 }
695- else if ($isInstanceOf(dT, "Unit"))
696- then if ((dI.caller == this))
674+ else if ($isInstanceOf(dL, "Unit"))
675+ then if ((dA.caller == this))
697676 then true
698- else fc
677+ else eU
699678 else throw("Match error")
700679 }
701680
702681
703-@Callable(dI)
704-func setManager (fd) = {
705- let fe = fb(dI)
706- if ((fe == fe))
682+@Callable(dA)
683+func setManager (eV) = {
684+ let eW = eT(dA)
685+ if ((eW == eW))
707686 then {
708- let ff = fromBase58String(fd)
709- if ((ff == ff))
710- then [StringEntry(U(), fd)]
687+ let eX = fromBase58String(eV)
688+ if ((eX == eX))
689+ then [StringEntry(I(), eV)]
711690 else throw("Strict value is not equal to itself.")
712691 }
713692 else throw("Strict value is not equal to itself.")
714693 }
715694
716695
717696
718-@Callable(dI)
697+@Callable(dA)
719698 func confirmManager () = {
720- let fg = eY()
721- let fh = if (isDefined(fg))
699+ let eY = eQ()
700+ let eZ = if (isDefined(eY))
722701 then true
723702 else throw("No pending manager")
724- if ((fh == fh))
703+ if ((eZ == eZ))
725704 then {
726- let fi = if ((dI.callerPublicKey == value(fg)))
705+ let fa = if ((dA.callerPublicKey == value(eY)))
727706 then true
728707 else throw("You are not pending manager")
729- if ((fi == fi))
730- then [StringEntry(T(), toBase58String(value(fg))), DeleteEntry(U())]
708+ if ((fa == fa))
709+ then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
731710 else throw("Strict value is not equal to itself.")
732711 }
733712 else throw("Strict value is not equal to itself.")
734713 }
735714
736715
737716
738-@Callable(dI)
739-func put (cx,fj) = if ((0 > cx))
717+@Callable(dA)
718+func put (ch,fb) = if ((0 > ch))
740719 then throw("Invalid slippageTolerance passed")
741720 else {
742- let dO = dL(dI, cx, true)
743- let cZ = dO._2
744- let ce = dO._7
745- let cv = dO._9
746- let da = dO._10
747- let db = dO._11
748- let fk = dO._12
749- let fl = dO._13
750- let dM = toBigInt(value(dI.payments[0]).amount)
751- let dN = toBigInt(value(dI.payments[1]).amount)
752- let dq = dj(dM, dN, toBigInt(0))
753- if ((dq == dq))
721+ let dG = dD(dA, ch, true)
722+ let cJ = dG._2
723+ let bO = dG._7
724+ let cf = dG._9
725+ let cK = dG._10
726+ let cL = dG._11
727+ let fc = dG._12
728+ let fd = dG._13
729+ let dE = toBigInt(value(dA.payments[0]).amount)
730+ let dF = toBigInt(value(dA.payments[1]).amount)
731+ let da = cT(dE, dF, toBigInt(0))
732+ if ((da == da))
754733 then {
755- let dR = invoke(aM, "emit", [cZ], nil)
756- if ((dR == dR))
734+ let dJ = invoke(az, "emit", [cJ], nil)
735+ if ((dJ == dJ))
757736 then {
758- let dS = {
759- let dT = dR
760- if ($isInstanceOf(dT, "Address"))
737+ let dK = {
738+ let dL = dJ
739+ if ($isInstanceOf(dL, "Address"))
761740 then {
762- let dU = dT
763- invoke(dU, "emit", [cZ], nil)
741+ let dM = dL
742+ invoke(dM, "emit", [cJ], nil)
764743 }
765744 else unit
766745 }
767- if ((dS == dS))
746+ if ((dK == dK))
768747 then {
769- let fm = if ((da > 0))
770- then invoke(bm, "put", nil, [AttachedPayment(fk, da)])
748+ let fe = if ((cK > 0))
749+ then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
771750 else nil
772- if ((fm == fm))
751+ if ((fe == fe))
773752 then {
774- let fn = if ((db > 0))
775- then invoke(bm, "put", nil, [AttachedPayment(fl, db)])
753+ let ff = if ((cL > 0))
754+ then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
776755 else nil
777- if ((fn == fn))
756+ if ((ff == ff))
778757 then {
779- let fo = if (fj)
758+ let fg = if (fb)
780759 then {
781- let fp = invoke(bl, "stake", nil, [AttachedPayment(ce, cZ)])
782- if ((fp == fp))
760+ let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761+ if ((fh == fh))
783762 then nil
784763 else throw("Strict value is not equal to itself.")
785764 }
786- else [ScriptTransfer(dI.caller, cZ, ce)]
787- let fq = dr(0, 0, 0)
788- if ((fq == fq))
765+ else [ScriptTransfer(dA.caller, cJ, bO)]
766+ let fi = db(0, 0, 0)
767+ if ((fi == fi))
789768 then {
790- let di = fq._2
791- let fr = fq._1
792- let fs = dv(dq, di)
793- if ((fs == fs))
794- then ((cv ++ fo) ++ fr)
769+ let cS = fi._2
770+ let fj = fi._1
771+ let fk = df(da, cS)
772+ if ((fk == fk))
773+ then ((cf ++ fg) ++ fj)
795774 else throw("Strict value is not equal to itself.")
796775 }
797776 else throw("Strict value is not equal to itself.")
798777 }
799778 else throw("Strict value is not equal to itself.")
800779 }
801780 else throw("Strict value is not equal to itself.")
802781 }
803782 else throw("Strict value is not equal to itself.")
804783 }
805784 else throw("Strict value is not equal to itself.")
806785 }
807786 else throw("Strict value is not equal to itself.")
808787 }
809788
810789
811790
812-@Callable(dI)
813-func putForFree (ft) = if ((0 > ft))
791+@Callable(dA)
792+func putForFree (fl) = if ((0 > fl))
814793 then throw("Invalid value passed")
815794 else {
816- let dO = dL(dI, ft, false)
817- let cv = dO._9
818- let dM = toBigInt(value(dI.payments[0]).amount)
819- let dN = toBigInt(value(dI.payments[1]).amount)
820- let dq = dj(dM, dN, toBigInt(0))
821- if ((dq == dq))
795+ let dG = dD(dA, fl, false)
796+ let cf = dG._9
797+ let dE = toBigInt(value(dA.payments[0]).amount)
798+ let dF = toBigInt(value(dA.payments[1]).amount)
799+ let da = cT(dE, dF, toBigInt(0))
800+ if ((da == da))
822801 then {
823- let fu = dr(0, 0, 0)
824- let fr = fu._1
825- let di = fu._2
826- let fs = dv(dq, di)
827- if ((fs == fs))
828- then (cv ++ fr)
802+ let fm = db(0, 0, 0)
803+ let fj = fm._1
804+ let cS = fm._2
805+ let fk = df(da, cS)
806+ if ((fk == fk))
807+ then (cf ++ fj)
829808 else throw("Strict value is not equal to itself.")
830809 }
831810 else throw("Strict value is not equal to itself.")
832811 }
833812
834813
835814
836-@Callable(dI)
837-func putOneTkn (fv,fw) = {
838- let fx = {
839- let aP = invoke(aM, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
840- if ($isInstanceOf(aP, "Boolean"))
841- then aP
842- else throw(($getType(aP) + " couldn't be cast to Boolean"))
815+@Callable(dA)
816+func putOneTkn (fn,fo) = {
817+ let fp = {
818+ let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819+ if ($isInstanceOf(aC, "Boolean"))
820+ then aC
821+ else throw(($getType(aC) + " couldn't be cast to Boolean"))
843822 }
844- let fy = if (if (if (aR())
823+ let fq = if (if (if (aE())
845824 then true
846- else (be == l))
825+ else (aQ == i))
847826 then true
848- else (be == n))
827+ else (aQ == k))
849828 then true
850- else fx
851- let eE = [if (if (!(fy))
829+ else fp
830+ let ew = [if (if (!(fq))
852831 then true
853- else eZ(dI))
832+ else eR(dA))
854833 then true
855- else aJ("put operation is blocked by admin"), if ((size(dI.payments) == 1))
834+ else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
856835 then true
857- else aJ("exactly 1 payment are expected")]
858- if ((eE == eE))
836+ else aw("exactly 1 payment are expected")]
837+ if ((ew == ew))
859838 then {
860- let fz = dI.payments[0]
861- let dZ = fz.assetId
862- let dY = fz.amount
863- let dq = if ((dZ == bg))
864- then dj(toBigInt(dY), toBigInt(0), toBigInt(0))
865- else if ((dZ == bh))
866- then dj(toBigInt(0), toBigInt(dY), toBigInt(0))
867- else aJ("payment asset is not supported")
868- if ((dq == dq))
839+ let fr = dA.payments[0]
840+ let dR = fr.assetId
841+ let dQ = fr.amount
842+ let da = if ((dR == aS))
843+ then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844+ else if ((dR == aT))
845+ then cT(toBigInt(0), toBigInt(dQ), toBigInt(0))
846+ else aw("payment asset is not supported")
847+ if ((da == da))
869848 then {
870- let aa = dI.caller
871- let ab = dI.transactionId
872- let fA = dX(dY, dZ, aa, ab)
873- if ((fA == fA))
849+ let O = dA.caller
850+ let P = dA.transactionId
851+ let fs = dP(dQ, dR, O, P)
852+ if ((fs == fs))
874853 then {
875- let ed = fA._5
876- let fB = fA._4
877- let dW = fA._3
878- let dc = fA._2
879- let fC = fA._1
880- let fD = if (if ((fv > 0))
881- then (fv > fC)
854+ let dV = fs._5
855+ let ft = fs._4
856+ let dO = fs._3
857+ let cM = fs._2
858+ let fu = fs._1
859+ let fv = if (if ((fn > 0))
860+ then (fn > fu)
882861 else false)
883- then aJ(makeString(["amount to receive is less than ", toString(fv)], ""))
884- else fC
885- let dR = dP(fD)
886- if ((dR == dR))
862+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863+ else fu
864+ let dJ = dH(fv)
865+ if ((dJ == dJ))
887866 then {
888- let fo = if (fw)
867+ let fg = if (fo)
889868 then {
890- let fE = invoke(bl, "stake", nil, [AttachedPayment(bf, fD)])
891- if ((fE == fE))
869+ let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870+ if ((fw == fw))
892871 then nil
893872 else throw("Strict value is not equal to itself.")
894873 }
895- else [ScriptTransfer(dI.caller, fD, bf)]
896- let fF = if ((dW > 0))
897- then [ScriptTransfer(aN, dW, dZ)]
874+ else [ScriptTransfer(dA.caller, fv, aR)]
875+ let fx = if ((dO > 0))
876+ then [ScriptTransfer(aA, dO, dR)]
898877 else nil
899- let fG = if ((this == aN))
878+ let fy = if ((this == aA))
900879 then $Tuple2(0, 0)
901- else if (ed)
902- then $Tuple2(-(dW), 0)
903- else $Tuple2(0, -(dW))
904- let ds = fG._1
905- let dt = fG._2
906- let fH = dr(ds, dt, 0)
907- let fr = fH._1
908- let di = fH._2
909- let dC = value(getString(ai))
910- let fs = dv(dq, di)
911- if ((fs == fs))
912- then $Tuple2((((dc ++ fo) ++ fF) ++ fr), fD)
880+ else if (dV)
881+ then $Tuple2(-(dO), 0)
882+ else $Tuple2(0, -(dO))
883+ let dc = fy._1
884+ let dd = fy._2
885+ let fz = db(dc, dd, 0)
886+ let fj = fz._1
887+ let cS = fz._2
888+ let dm = value(getString(W))
889+ let fk = df(da, cS)
890+ if ((fk == fk))
891+ then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
913892 else throw("Strict value is not equal to itself.")
914893 }
915894 else throw("Strict value is not equal to itself.")
916895 }
917896 else throw("Strict value is not equal to itself.")
918897 }
919898 else throw("Strict value is not equal to itself.")
920899 }
921900 else throw("Strict value is not equal to itself.")
922901 }
923902
924903
925904
926-@Callable(dI)
927-func putOneTknREADONLY (dZ,dY) = {
928- let fI = dX(dY, aW(dZ), unit, unit)
929- let fC = fI._1
930- let dc = fI._2
931- let dW = fI._3
932- let fB = fI._4
933- let ed = fI._5
934- $Tuple2(nil, $Tuple3(fC, dW, fB))
905+@Callable(dA)
906+func putOneTknREADONLY (dR,dQ) = {
907+ let fA = dP(dQ, aJ(dR), unit, unit)
908+ let fu = fA._1
909+ let cM = fA._2
910+ let dO = fA._3
911+ let ft = fA._4
912+ let dV = fA._5
913+ $Tuple2(nil, $Tuple3(fu, dO, ft))
935914 }
936915
937916
938917
939-@Callable(dI)
940-func getOneTkn (fJ,fv) = {
941- let fx = {
942- let aP = invoke(aM, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
943- if ($isInstanceOf(aP, "Boolean"))
944- then aP
945- else throw(($getType(aP) + " couldn't be cast to Boolean"))
918+@Callable(dA)
919+func getOneTkn (fB,fn) = {
920+ let fp = {
921+ let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922+ if ($isInstanceOf(aC, "Boolean"))
923+ then aC
924+ else throw(($getType(aC) + " couldn't be cast to Boolean"))
946925 }
947- let fK = if (if (aR())
926+ let fC = if (if (aE())
948927 then true
949- else (be == n))
928+ else (aQ == k))
950929 then true
951- else fx
952- let eE = [if (if (!(fK))
930+ else fp
931+ let ew = [if (if (!(fC))
953932 then true
954- else eZ(dI))
933+ else eR(dA))
955934 then true
956- else aJ("get operation is blocked by admin"), if ((size(dI.payments) == 1))
935+ else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
957936 then true
958- else aJ("exactly 1 payment are expected")]
959- if ((eE == eE))
937+ else aw("exactly 1 payment are expected")]
938+ if ((ew == ew))
960939 then {
961- let eD = aW(fJ)
962- let fz = dI.payments[0]
963- let dZ = fz.assetId
964- let el = fz.amount
965- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
966- if ((dq == dq))
940+ let ev = aJ(fB)
941+ let fr = dA.payments[0]
942+ let dR = fr.assetId
943+ let ed = fr.amount
944+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945+ if ((da == da))
967946 then {
968- let aa = dI.caller
969- let ab = dI.transactionId
970- let fL = eC(eD, el, dZ, aa, ab)
971- if ((fL == fL))
947+ let O = dA.caller
948+ let P = dA.transactionId
949+ let fD = eu(ev, ed, dR, O, P)
950+ if ((fD == fD))
972951 then {
973- let eF = fL._5
974- let fB = fL._4
975- let dW = fL._3
976- let dc = fL._2
977- let fM = fL._1
978- let dQ = if (if ((fv > 0))
979- then (fv > fM)
952+ let ex = fD._5
953+ let ft = fD._4
954+ let dO = fD._3
955+ let cM = fD._2
956+ let fE = fD._1
957+ let dI = if (if ((fn > 0))
958+ then (fn > fE)
980959 else false)
981- then aJ(makeString(["amount to receive is less than ", toString(fv)], ""))
982- else fM
983- let fN = invoke(aM, "burn", [el], [AttachedPayment(dZ, el)])
984- if ((fN == fN))
960+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961+ else fE
962+ let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963+ if ((fF == fF))
985964 then {
986- let fO = [ScriptTransfer(aa, dQ, eD)]
987- let fF = if ((dW > 0))
988- then [ScriptTransfer(aN, dW, eD)]
965+ let fG = [ScriptTransfer(O, dI, ev)]
966+ let fx = if ((dO > 0))
967+ then [ScriptTransfer(aA, dO, ev)]
989968 else nil
990- let fP = {
991- let fQ = if ((this == aN))
969+ let fH = {
970+ let fI = if ((this == aA))
992971 then 0
993- else dW
994- if (eF)
995- then $Tuple2(-((dQ + fQ)), 0)
996- else $Tuple2(0, -((dQ + fQ)))
972+ else dO
973+ if (ex)
974+ then $Tuple2(-((dI + fI)), 0)
975+ else $Tuple2(0, -((dI + fI)))
997976 }
998- let ds = fP._1
999- let dt = fP._2
1000- let fR = dr(ds, dt, 0)
1001- let fr = fR._1
1002- let di = fR._2
1003- let fs = dv(dq, di)
1004- if ((fs == fs))
1005- then $Tuple2((((dc ++ fO) ++ fF) ++ fr), dQ)
977+ let dc = fH._1
978+ let dd = fH._2
979+ let fJ = db(dc, dd, 0)
980+ let fj = fJ._1
981+ let cS = fJ._2
982+ let fk = df(da, cS)
983+ if ((fk == fk))
984+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
1006985 else throw("Strict value is not equal to itself.")
1007986 }
1008987 else throw("Strict value is not equal to itself.")
1009988 }
1010989 else throw("Strict value is not equal to itself.")
1011990 }
1012991 else throw("Strict value is not equal to itself.")
1013992 }
1014993 else throw("Strict value is not equal to itself.")
1015994 }
1016995
1017996
1018997
1019-@Callable(dI)
1020-func getOneTknREADONLY (eD,el) = {
1021- let fS = eC(aW(eD), el, bf, unit, unit)
1022- let fM = fS._1
1023- let dc = fS._2
1024- let dW = fS._3
1025- let fB = fS._4
1026- let eF = fS._5
1027- $Tuple2(nil, $Tuple3(fM, dW, fB))
998+@Callable(dA)
999+func getOneTknREADONLY (ev,ed) = {
1000+ let fK = eu(aJ(ev), ed, aR, unit, unit)
1001+ let fE = fK._1
1002+ let cM = fK._2
1003+ let dO = fK._3
1004+ let ft = fK._4
1005+ let ex = fK._5
1006+ $Tuple2(nil, $Tuple3(fE, dO, ft))
10281007 }
10291008
10301009
10311010
1032-@Callable(dI)
1033-func unstakeAndGetOneTkn (fT,fJ,fv) = {
1034- let fx = {
1035- let aP = invoke(aM, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1036- if ($isInstanceOf(aP, "Boolean"))
1037- then aP
1038- else throw(($getType(aP) + " couldn't be cast to Boolean"))
1011+@Callable(dA)
1012+func unstakeAndGetOneTkn (fL,fB,fn) = {
1013+ let fp = {
1014+ let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1015+ if ($isInstanceOf(aC, "Boolean"))
1016+ then aC
1017+ else throw(($getType(aC) + " couldn't be cast to Boolean"))
10391018 }
1040- let fK = if (if (aR())
1019+ let fC = if (if (aE())
10411020 then true
1042- else (be == n))
1021+ else (aQ == k))
10431022 then true
1044- else fx
1045- let eE = [if (if (!(fK))
1023+ else fp
1024+ let ew = [if (if (!(fC))
10461025 then true
1047- else eZ(dI))
1026+ else eR(dA))
10481027 then true
1049- else aJ("get operation is blocked by admin"), if ((size(dI.payments) == 0))
1028+ else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
10501029 then true
1051- else aJ("no payments are expected")]
1052- if ((eE == eE))
1030+ else aw("no payments are expected")]
1031+ if ((ew == ew))
10531032 then {
1054- let eD = aW(fJ)
1055- let aa = dI.caller
1056- let ab = dI.transactionId
1057- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1058- if ((dq == dq))
1033+ let ev = aJ(fB)
1034+ let O = dA.caller
1035+ let P = dA.transactionId
1036+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1037+ if ((da == da))
10591038 then {
1060- let fU = invoke(bl, "unstake", [toBase58String(bf), fT], nil)
1061- if ((fU == fU))
1039+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040+ if ((fM == fM))
10621041 then {
1063- let fV = eC(eD, fT, bf, aa, ab)
1064- if ((fV == fV))
1042+ let fN = eu(ev, fL, aR, O, P)
1043+ if ((fN == fN))
10651044 then {
1066- let eF = fV._5
1067- let fB = fV._4
1068- let dW = fV._3
1069- let dc = fV._2
1070- let fM = fV._1
1071- let dQ = if (if ((fv > 0))
1072- then (fv > fM)
1045+ let ex = fN._5
1046+ let ft = fN._4
1047+ let dO = fN._3
1048+ let cM = fN._2
1049+ let fE = fN._1
1050+ let dI = if (if ((fn > 0))
1051+ then (fn > fE)
10731052 else false)
1074- then aJ(makeString(["amount to receive is less than ", toString(fv)], ""))
1075- else fM
1076- let fN = invoke(aM, "burn", [fT], [AttachedPayment(bf, fT)])
1077- if ((fN == fN))
1053+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054+ else fE
1055+ let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056+ if ((fF == fF))
10781057 then {
1079- let fO = [ScriptTransfer(dI.caller, dQ, eD)]
1080- let fF = if ((dW > 0))
1081- then [ScriptTransfer(aN, dW, eD)]
1058+ let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059+ let fx = if ((dO > 0))
1060+ then [ScriptTransfer(aA, dO, ev)]
10821061 else nil
1083- let fW = {
1084- let fQ = if ((this == aN))
1062+ let fO = {
1063+ let fI = if ((this == aA))
10851064 then 0
1086- else dW
1087- if (eF)
1088- then $Tuple2(-((dQ + fQ)), 0)
1089- else $Tuple2(0, -((dQ + fQ)))
1065+ else dO
1066+ if (ex)
1067+ then $Tuple2(-((dI + fI)), 0)
1068+ else $Tuple2(0, -((dI + fI)))
10901069 }
1091- let ds = fW._1
1092- let dt = fW._2
1093- let fX = dr(ds, dt, 0)
1094- let fr = fX._1
1095- let di = fX._2
1096- let fs = dv(dq, di)
1097- if ((fs == fs))
1098- then $Tuple2((((dc ++ fO) ++ fF) ++ fr), dQ)
1070+ let dc = fO._1
1071+ let dd = fO._2
1072+ let fP = db(dc, dd, 0)
1073+ let fj = fP._1
1074+ let cS = fP._2
1075+ let fk = df(da, cS)
1076+ if ((fk == fk))
1077+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
10991078 else throw("Strict value is not equal to itself.")
11001079 }
11011080 else throw("Strict value is not equal to itself.")
11021081 }
11031082 else throw("Strict value is not equal to itself.")
11041083 }
11051084 else throw("Strict value is not equal to itself.")
11061085 }
11071086 else throw("Strict value is not equal to itself.")
11081087 }
11091088 else throw("Strict value is not equal to itself.")
11101089 }
11111090
11121091
11131092
1114-@Callable(dI)
1093+@Callable(dA)
11151094 func get () = {
1116- let cN = dH(dI)
1117- let fY = cN._1
1118- let cu = cN._2
1119- let dK = cN._3
1120- let cc = cN._4
1121- let cv = cN._5
1122- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1123- if ((dq == dq))
1095+ let cx = dz(dA)
1096+ let fQ = cx._1
1097+ let ce = cx._2
1098+ let dC = cx._3
1099+ let bM = cx._4
1100+ let cf = cx._5
1101+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1102+ if ((da == da))
11241103 then {
1125- let fZ = invoke(aM, "burn", [dK], [AttachedPayment(cc, dK)])
1126- if ((fZ == fZ))
1104+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105+ if ((fR == fR))
11271106 then {
1128- let ga = dr(-(fY), -(cu), 0)
1129- let fr = ga._1
1130- let di = ga._2
1131- let fs = dv(dq, di)
1132- if ((fs == fs))
1133- then (cv ++ fr)
1107+ let fS = db(-(fQ), -(ce), 0)
1108+ let fj = fS._1
1109+ let cS = fS._2
1110+ let fk = df(da, cS)
1111+ if ((fk == fk))
1112+ then (cf ++ fj)
11341113 else throw("Strict value is not equal to itself.")
11351114 }
11361115 else throw("Strict value is not equal to itself.")
11371116 }
11381117 else throw("Strict value is not equal to itself.")
11391118 }
11401119
11411120
11421121
1143-@Callable(dI)
1144-func getNoLess (gb,gc) = {
1145- let cN = dH(dI)
1146- let ct = cN._1
1147- let cu = cN._2
1148- let dK = cN._3
1149- let cc = cN._4
1150- let cv = cN._5
1151- if ((gb > ct))
1152- then throw(((("noLessThenAmtAsset failed: " + toString(ct)) + " < ") + toString(gb)))
1153- else if ((gc > cu))
1154- then throw(((("noLessThenPriceAsset failed: " + toString(cu)) + " < ") + toString(gc)))
1122+@Callable(dA)
1123+func getNoLess (fT,fU) = {
1124+ let cx = dz(dA)
1125+ let cd = cx._1
1126+ let ce = cx._2
1127+ let dC = cx._3
1128+ let bM = cx._4
1129+ let cf = cx._5
1130+ if ((fT > cd))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132+ else if ((fU > ce))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
11551134 else {
1156- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1157- if ((dq == dq))
1135+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1136+ if ((da == da))
11581137 then {
1159- let fZ = invoke(aM, "burn", [dK], [AttachedPayment(cc, dK)])
1160- if ((fZ == fZ))
1138+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139+ if ((fR == fR))
11611140 then {
1162- let gd = dr(-(ct), -(cu), 0)
1163- let fr = gd._1
1164- let di = gd._2
1165- let fs = dv(dq, di)
1166- if ((fs == fs))
1167- then (cv ++ fr)
1141+ let fV = db(-(cd), -(ce), 0)
1142+ let fj = fV._1
1143+ let cS = fV._2
1144+ let fk = df(da, cS)
1145+ if ((fk == fk))
1146+ then (cf ++ fj)
11681147 else throw("Strict value is not equal to itself.")
11691148 }
11701149 else throw("Strict value is not equal to itself.")
11711150 }
11721151 else throw("Strict value is not equal to itself.")
11731152 }
11741153 }
11751154
11761155
11771156
1178-@Callable(dI)
1179-func unstakeAndGet (dQ) = {
1180- let ge = if ((size(dI.payments) != 0))
1157+@Callable(dA)
1158+func unstakeAndGet (dI) = {
1159+ let fW = if ((size(dA.payments) != 0))
11811160 then throw("No payments are expected")
11821161 else true
1183- if ((ge == ge))
1162+ if ((fW == fW))
11841163 then {
1185- let bR = aT()
1186- let ce = fromBase58String(bR[q])
1187- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1188- if ((dq == dq))
1164+ let bD = aG()
1165+ let bO = fromBase58String(bD[n])
1166+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1167+ if ((da == da))
11891168 then {
1190- let fU = invoke(bl, "unstake", [toBase58String(ce), dQ], nil)
1191- if ((fU == fU))
1169+ let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170+ if ((fM == fM))
11921171 then {
1193- let cN = ca(toBase58String(dI.transactionId), toBase58String(ce), dQ, dI.caller)
1194- let ct = cN._1
1195- let cu = cN._2
1196- let ch = parseIntValue(cN._9)
1197- let cv = cN._10
1198- let gf = if (if (aR())
1172+ let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
1173+ let cd = cx._1
1174+ let ce = cx._2
1175+ let bR = parseIntValue(cx._9)
1176+ let cf = cx._10
1177+ let fX = if (if (aE())
11991178 then true
1200- else (ch == n))
1201- then throw(("Get operation is blocked by admin. Status = " + toString(ch)))
1179+ else (bR == k))
1180+ then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
12021181 else true
1203- if ((gf == gf))
1182+ if ((fX == fX))
12041183 then {
1205- let fZ = invoke(aM, "burn", [dQ], [AttachedPayment(ce, dQ)])
1206- if ((fZ == fZ))
1184+ let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185+ if ((fR == fR))
12071186 then {
1208- let gg = dr(-(ct), -(cu), 0)
1209- let fr = gg._1
1210- let di = gg._2
1211- let fs = dv(dq, di)
1212- if ((fs == fs))
1213- then (cv ++ fr)
1187+ let fY = db(-(cd), -(ce), 0)
1188+ let fj = fY._1
1189+ let cS = fY._2
1190+ let fk = df(da, cS)
1191+ if ((fk == fk))
1192+ then (cf ++ fj)
12141193 else throw("Strict value is not equal to itself.")
12151194 }
12161195 else throw("Strict value is not equal to itself.")
12171196 }
12181197 else throw("Strict value is not equal to itself.")
12191198 }
12201199 else throw("Strict value is not equal to itself.")
12211200 }
12221201 else throw("Strict value is not equal to itself.")
12231202 }
12241203 else throw("Strict value is not equal to itself.")
12251204 }
12261205
12271206
12281207
1229-@Callable(dI)
1230-func unstakeAndGetNoLess (fT,gh,gc) = {
1231- let fK = if (aR())
1208+@Callable(dA)
1209+func unstakeAndGetNoLess (fL,fZ,fU) = {
1210+ let fC = if (aE())
12321211 then true
1233- else (be == n)
1234- let eE = [if (!(fK))
1212+ else (aQ == k)
1213+ let ew = [if (!(fC))
12351214 then true
1236- else throw("get operation is blocked by admin"), if ((size(dI.payments) == 0))
1215+ else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
12371216 then true
12381217 else throw("no payments are expected")]
1239- if ((eE == eE))
1218+ if ((ew == ew))
12401219 then {
1241- let dq = dj(toBigInt(0), toBigInt(0), toBigInt(0))
1242- if ((dq == dq))
1220+ let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1221+ if ((da == da))
12431222 then {
1244- let fU = invoke(bl, "unstake", [toBase58String(bf), fT], nil)
1245- if ((fU == fU))
1223+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224+ if ((fM == fM))
12461225 then {
1247- let cN = ca(toBase58String(dI.transactionId), toBase58String(bf), fT, dI.caller)
1248- let ct = cN._1
1249- let cu = cN._2
1250- let cv = cN._10
1251- let gi = [if ((ct >= gh))
1226+ let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
1227+ let cd = cx._1
1228+ let ce = cx._2
1229+ let cf = cx._10
1230+ let ga = [if ((cd >= fZ))
12521231 then true
1253- else throw(makeString(["amount asset amount to receive is less than ", toString(gh)], "")), if ((cu >= gc))
1232+ else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
12541233 then true
1255- else throw(makeString(["price asset amount to receive is less than ", toString(gc)], ""))]
1256- if ((gi == gi))
1234+ else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235+ if ((ga == ga))
12571236 then {
1258- let fZ = invoke(aM, "burn", [fT], [AttachedPayment(bf, fT)])
1259- if ((fZ == fZ))
1237+ let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238+ if ((fR == fR))
12601239 then {
1261- let gj = dr(-(ct), -(cu), 0)
1262- let fr = gj._1
1263- let di = gj._2
1264- let fs = dv(dq, di)
1265- if ((fs == fs))
1266- then (cv ++ fr)
1240+ let gb = db(-(cd), -(ce), 0)
1241+ let fj = gb._1
1242+ let cS = gb._2
1243+ let fk = df(da, cS)
1244+ if ((fk == fk))
1245+ then (cf ++ fj)
12671246 else throw("Strict value is not equal to itself.")
12681247 }
12691248 else throw("Strict value is not equal to itself.")
12701249 }
12711250 else throw("Strict value is not equal to itself.")
12721251 }
12731252 else throw("Strict value is not equal to itself.")
12741253 }
12751254 else throw("Strict value is not equal to itself.")
12761255 }
12771256 else throw("Strict value is not equal to itself.")
12781257 }
12791258
12801259
12811260
1282-@Callable(dI)
1283-func activate (gk,gl) = if ((toString(dI.caller) != toString(aM)))
1261+@Callable(dA)
1262+func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
12841263 then throw("permissions denied")
1285- else $Tuple2([StringEntry(ad(), gk), StringEntry(ae(), gl)], "success")
1264+ else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
12861265
12871266
12881267
1289-@Callable(dI)
1268+@Callable(dA)
12901269 func refreshKLp () = {
1291- let gm = valueOrElse(getInteger(aj), 0)
1292- let gn = if (((height - gm) >= am))
1270+ let ge = valueOrElse(getInteger(X), 0)
1271+ let gf = if (((height - ge) >= aa))
12931272 then unit
1294- else aJ(makeString([toString(am), " blocks have not passed since the previous call"], ""))
1295- if ((gn == gn))
1273+ else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274+ if ((gf == gf))
12961275 then {
1297- let dC = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ai), "0")), aL("invalid kLp"))
1298- let go = dr(0, 0, 0)
1299- let gp = go._1
1300- let di = go._2
1301- let du = if ((dC != di))
1302- then gp
1303- else aJ("nothing to refresh")
1304- $Tuple2(du, toString(di))
1276+ let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277+ let gg = db(0, 0, 0)
1278+ let gh = gg._1
1279+ let cS = gg._2
1280+ let de = if ((dm != cS))
1281+ then gh
1282+ else aw("nothing to refresh")
1283+ $Tuple2(de, toString(cS))
13051284 }
13061285 else throw("Strict value is not equal to itself.")
13071286 }
13081287
13091288
13101289
1311-@Callable(dI)
1312-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aT())
1290+@Callable(dA)
1291+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
13131292
13141293
13151294
1316-@Callable(dI)
1317-func getAccBalanceWrapperREADONLY (bD) = $Tuple2(nil, bC(bD))
1295+@Callable(dA)
1296+func getAccBalanceWrapperREADONLY (bp) = $Tuple2(nil, bo(bp))
13181297
13191298
13201299
1321-@Callable(dI)
1322-func calcPricesWrapperREADONLY (bL,bM,bQ) = {
1323- let bZ = bP(bL, bM, bQ)
1324- $Tuple2(nil, [toString(bZ[0]), toString(bZ[1]), toString(bZ[2])])
1300+@Callable(dA)
1301+func calcPricesWrapperREADONLY (bx,by,bC) = {
1302+ let gi = bB(bx, by, bC)
1303+ $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
13251304 }
13261305
13271306
13281307
1329-@Callable(dI)
1330-func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
1308+@Callable(dA)
1309+func toX18WrapperREADONLY (x,y) = $Tuple2(nil, toString(w(x, y)))
13311310
13321311
13331312
1334-@Callable(dI)
1335-func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
1313+@Callable(dA)
1314+func fromX18WrapperREADONLY (B,C) = $Tuple2(nil, A(parseBigIntValue(B), C))
13361315
13371316
13381317
1339-@Callable(dI)
1340-func calcPriceBigIntWrapperREADONLY (bF,bG) = $Tuple2(nil, toString(bE(parseBigIntValue(bF), parseBigIntValue(bG))))
1318+@Callable(dA)
1319+func calcPriceBigIntWrapperREADONLY (br,bs) = $Tuple2(nil, toString(bq(parseBigIntValue(br), parseBigIntValue(bs))))
13411320
13421321
13431322
1344-@Callable(dI)
1345-func estimatePutOperationWrapperREADONLY (cb,cx,cy,cz,cA,cB,aa,cC,cD) = $Tuple2(nil, cw(cb, cx, cy, cz, cA, cB, aa, cC, cD))
1323+@Callable(dA)
1324+func estimatePutOperationWrapperREADONLY (bL,ch,ci,cj,ck,cl,O,cm,cn) = $Tuple2(nil, cg(bL, ch, ci, cj, ck, cl, O, cm, cn))
13461325
13471326
13481327
1349-@Callable(dI)
1350-func estimateGetOperationWrapperREADONLY (cb,cc,cd,aa) = {
1351- let cN = ca(cb, cc, cd, addressFromStringValue(aa))
1352- $Tuple2(nil, $Tuple10(cN._1, cN._2, cN._3, cN._4, cN._5, cN._6, cN._7, toString(cN._8), cN._9, cN._10))
1328+@Callable(dA)
1329+func estimateGetOperationWrapperREADONLY (bL,bM,bN,O) = {
1330+ let cx = bK(bL, bM, bN, addressFromStringValue(O))
1331+ $Tuple2(nil, $Tuple10(cx._1, cx._2, cx._3, cx._4, cx._5, cx._6, cx._7, toString(cx._8), cx._9, cx._10))
13531332 }
13541333
13551334
13561335
1357-@Callable(dI)
1336+@Callable(dA)
13581337 func statsREADONLY () = {
1359- let bR = aT()
1360- let ce = fromBase58String(bR[q])
1361- let gq = bR[r]
1362- let gr = bR[s]
1363- let cG = bR[v]
1364- let cH = bR[w]
1365- let bS = parseIntValue(bR[t])
1366- let bT = parseIntValue(bR[u])
1367- let gs = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
1368- let gt = bC(gq)
1369- let gu = bC(gr)
1370- let gv = if ((gs == 0))
1371- then [e, e, e]
1372- else bP(gt, gu, gs)
1373- let co = 0
1374- let gw = H(gv[1], b)
1375- let gx = H(gv[2], b)
1376- let gy = value(getInteger(aM, ax(toString(this))))
1377- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gt), toString(gu), toString(gs), toString(co), toString(gw), toString(gx), toString(gy)], j))
1338+ let bD = aG()
1339+ let bO = fromBase58String(bD[n])
1340+ let gj = bD[o]
1341+ let gk = bD[p]
1342+ let cq = bD[s]
1343+ let cr = bD[t]
1344+ let bE = parseIntValue(bD[q])
1345+ let bF = parseIntValue(bD[r])
1346+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347+ let gm = bo(gj)
1348+ let gn = bo(gk)
1349+ let go = if ((gl == 0))
1350+ then [c, c, c]
1351+ else bB(gm, gn, gl)
1352+ let bY = 0
1353+ let gp = A(go[1], a)
1354+ let gq = A(go[2], a)
1355+ let gr = value(getInteger(az, aj(toString(this))))
1356+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
13781357 }
13791358
13801359
13811360
1382-@Callable(dI)
1383-func evaluatePutByAmountAssetREADONLY (cy) = {
1384- let bR = aT()
1385- let ce = fromBase58String(bR[q])
1386- let cE = bR[r]
1387- let cf = fromBase58String(cE)
1388- let cF = bR[s]
1389- let cg = fromBase58String(cF)
1390- let bS = parseIntValue(bR[t])
1391- let bT = parseIntValue(bR[u])
1392- let ch = bR[p]
1393- let gs = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
1394- let gt = bC(cE)
1395- let gu = bC(cF)
1396- let bN = D(gt, bS)
1397- let bO = D(gu, bT)
1398- let cn = if ((gs == 0))
1399- then e
1400- else bE(bO, bN)
1401- let cK = D(cy, bS)
1402- let cL = fraction(cK, cn, d)
1403- let cA = H(cL, bT)
1404- let dO = cw("", 500000, cy, cf, cA, cg, "", true, false)
1405- let cV = dO._1
1406- let gz = dO._3
1407- let cj = dO._4
1408- let cl = dO._5
1409- let ci = dO._6
1410- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cV), toString(H(cn, b)), toString(cj), toString(cl), toString(ci), ch, toString(cy), toString(cA)], j))
1361+@Callable(dA)
1362+func evaluatePutByAmountAssetREADONLY (ci) = {
1363+ let bD = aG()
1364+ let bO = fromBase58String(bD[n])
1365+ let co = bD[o]
1366+ let bP = fromBase58String(co)
1367+ let cp = bD[p]
1368+ let bQ = fromBase58String(cp)
1369+ let bE = parseIntValue(bD[q])
1370+ let bF = parseIntValue(bD[r])
1371+ let bR = bD[m]
1372+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373+ let gm = bo(co)
1374+ let gn = bo(cp)
1375+ let bz = w(gm, bE)
1376+ let bA = w(gn, bF)
1377+ let bX = if ((gl == 0))
1378+ then c
1379+ else bq(bA, bz)
1380+ let cu = w(ci, bE)
1381+ let cv = fraction(cu, bX, b)
1382+ let ck = A(cv, bF)
1383+ let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1384+ let cF = dG._1
1385+ let gs = dG._3
1386+ let bT = dG._4
1387+ let bV = dG._5
1388+ let bS = dG._6
1389+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
14111390 }
14121391
14131392
14141393
1415-@Callable(dI)
1416-func evaluatePutByPriceAssetREADONLY (cA) = {
1417- let bR = aT()
1418- let ce = fromBase58String(bR[q])
1419- let cE = bR[r]
1420- let cf = fromBase58String(cE)
1421- let cF = bR[s]
1422- let cg = fromBase58String(cF)
1423- let bS = parseIntValue(bR[t])
1424- let bT = parseIntValue(bR[u])
1425- let ch = bR[p]
1426- let gs = valueOrErrorMessage(assetInfo(ce), (("Asset " + toBase58String(ce)) + " doesn't exist")).quantity
1427- let gA = bC(cE)
1428- let gB = bC(cF)
1429- let gC = D(gA, bS)
1430- let gD = D(gB, bT)
1431- let cn = if ((gs == 0))
1432- then e
1433- else bE(gD, gC)
1434- let cL = D(cA, bT)
1435- let cK = fraction(cL, d, cn)
1436- let cy = H(cK, bS)
1437- let dO = cw("", 500000, cy, cf, cA, cg, "", true, false)
1438- let cV = dO._1
1439- let gz = dO._3
1440- let cj = dO._4
1441- let cl = dO._5
1442- let ci = dO._6
1443- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cV), toString(H(cn, b)), toString(cj), toString(cl), toString(ci), ch, toString(cy), toString(cA)], j))
1394+@Callable(dA)
1395+func evaluatePutByPriceAssetREADONLY (ck) = {
1396+ let bD = aG()
1397+ let bO = fromBase58String(bD[n])
1398+ let co = bD[o]
1399+ let bP = fromBase58String(co)
1400+ let cp = bD[p]
1401+ let bQ = fromBase58String(cp)
1402+ let bE = parseIntValue(bD[q])
1403+ let bF = parseIntValue(bD[r])
1404+ let bR = bD[m]
1405+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406+ let gt = bo(co)
1407+ let gu = bo(cp)
1408+ let gv = w(gt, bE)
1409+ let gw = w(gu, bF)
1410+ let bX = if ((gl == 0))
1411+ then c
1412+ else bq(gw, gv)
1413+ let cv = w(ck, bF)
1414+ let cu = fraction(cv, b, bX)
1415+ let ci = A(cu, bE)
1416+ let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1417+ let cF = dG._1
1418+ let gs = dG._3
1419+ let bT = dG._4
1420+ let bV = dG._5
1421+ let bS = dG._6
1422+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
14441423 }
14451424
14461425
14471426
1448-@Callable(dI)
1449-func evaluateGetREADONLY (gE,gF) = {
1450- let cN = ca("", gE, gF, this)
1451- let ct = cN._1
1452- let cu = cN._2
1453- let cj = cN._5
1454- let cl = cN._6
1455- let ci = cN._7
1456- let co = cN._8
1457- let ch = parseIntValue(cN._9)
1458- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ct), toString(cu), toString(cj), toString(cl), toString(ci), toString(co), toString(ch)], j))
1427+@Callable(dA)
1428+func evaluateGetREADONLY (gx,gy) = {
1429+ let cx = bK("", gx, gy, this)
1430+ let cd = cx._1
1431+ let ce = cx._2
1432+ let bT = cx._5
1433+ let bV = cx._6
1434+ let bS = cx._7
1435+ let bY = cx._8
1436+ let bR = parseIntValue(cx._9)
1437+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cd), toString(ce), toString(bT), toString(bV), toString(bS), toString(bY), toString(bR)], h))
14591438 }
14601439
14611440
1462-@Verifier(gG)
1463-func gH () = {
1464- let gI = {
1465- let dT = eW()
1466- if ($isInstanceOf(dT, "ByteVector"))
1441+@Verifier(gz)
1442+func gA () = {
1443+ let gB = {
1444+ let dL = eO()
1445+ if ($isInstanceOf(dL, "ByteVector"))
14671446 then {
1468- let fa = dT
1469- fa
1447+ let eS = dL
1448+ eS
14701449 }
1471- else if ($isInstanceOf(dT, "Unit"))
1472- then gG.senderPublicKey
1450+ else if ($isInstanceOf(dL, "Unit"))
1451+ then gz.senderPublicKey
14731452 else throw("Match error")
14741453 }
1475- let dT = gG
1476- if ($isInstanceOf(dT, "Order"))
1454+ let dL = gz
1455+ if ($isInstanceOf(dL, "Order"))
14771456 then {
1478- let dy = dT
1479- let gJ = aS()
1480- let aC = dx(dy)
1481- let aD = sigVerify(dy.bodyBytes, dy.proofs[0], dy.senderPublicKey)
1482- let aE = sigVerify(dy.bodyBytes, dy.proofs[1], gJ)
1483- if (if (if (aC)
1484- then aD
1457+ let di = dL
1458+ let gC = aF()
1459+ let gD = dh(di)
1460+ let ao = gD._1
1461+ let ap = gD._2
1462+ let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463+ let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
1464+ if (if (if (ao)
1465+ then aq
14851466 else false)
1486- then aE
1467+ then ar
14871468 else false)
14881469 then true
1489- else aB(aC, aD, aE)
1470+ else an(ao, ap, aq, ar)
14901471 }
1491- else if ($isInstanceOf(dT, "SetScriptTransaction"))
1472+ else if ($isInstanceOf(dL, "SetScriptTransaction"))
14921473 then {
1493- let eX = dT
1494- let gK = blake2b256(value(eX.script))
1495- let gL = fromBase64String(value(getString(aM, az())))
1496- let gM = scriptHash(this)
1497- if (if ((gL == gK))
1498- then (gM != gK)
1474+ let eP = dL
1475+ let gE = blake2b256(value(eP.script))
1476+ let gF = fromBase64String(value(getString(az, al())))
1477+ let gG = scriptHash(this)
1478+ if (if ((gF == gE))
1479+ then (gG != gE)
14991480 else false)
15001481 then true
1501- else sigVerify(gG.bodyBytes, gG.proofs[0], gI)
1482+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
15021483 }
1503- else sigVerify(gG.bodyBytes, gG.proofs[0], gI)
1484+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
15041485 }
15051486

github/deemru/w8io/026f985 
546.81 ms