tx · p8FVbu4h2pxvGTrgUwHvQd8z8kbpAHzokb2S4pc9KtK

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.03600000 Waves

2022.12.06 18:46 [2348682] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "p8FVbu4h2pxvGTrgUwHvQd8z8kbpAHzokb2S4pc9KtK", "fee": 3600000, "feeAssetId": null, "timestamp": 1670341679891, "version": 1, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "65XM8k54tbzZeg3tHWhrGEai41B3xgPGgvufxRNxJ9FFUGwy738QhYAaehxLdYPjX2WFJefyRjGfk3EzDjN5eMCG" ], "script": "base64:BgLNKAgCEgMKAQgSAwoBCBIAEgQKAgEEEgQKAgEEEgMKAQESABIECgIIARIAEgQKAggBEgQKAggBEgQKAgEBEgMKAQESBQoDAQEBEgUKAwEIARIECgIBCBIECgIBCBIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgRiaWczIgRiaWc0IgpzbGlwcGFnZTREIgt3YXZlc1N0cmluZyIFQW11bHQiBURjb252IgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIgpQb29sUHV0RGlzIg5Qb29sTWF0Y2hlckRpcyIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyIJaWR4UG9vbFN0IglpZHhMUEFzSWQiCWlkeEFtQXNJZCIJaWR4UHJBc0lkIgtpZHhBbXRBc0RjbSINaWR4UHJpY2VBc0RjbSILaWR4SUFtdEFzSWQiDWlkeElQcmljZUFzSWQiD2lkeEZhY3RTdGFrQ250ciISaWR4RmFjdG9yeVJlc3RDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIKZmVlRGVmYXVsdCICdDEiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiAmYxIgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCICdHMiA2FtdCIIcmVzU2NhbGUiCGN1clNjYWxlIgNhYnMiCWFic0JpZ0ludCICZmMiA21wayIEcG1wayICcGwiAnBoIgFoIgF0IgNwYXUiAnVhIgR0eElkIgNnYXUiAmFhIgJwYSIDYW1wIgNhZGEiBmtleUZlZSIDZmVlIgZrZXlETHAiFWtleURMcFJlZnJlc2hlZEhlaWdodCISa2V5RExwUmVmcmVzaERlbGF5IhZkTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9kTHBSZWZyZXNoRGVsYXkiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiA3RvZSIDb3JWIgZzZW5kclYiBm1hdGNoViIDc3RyIgckbWF0Y2gwIgZ2YWxTdHIiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIIdGhyb3dFcnIiA21zZyIGZm10RXJyIgNmY2EiAUEiA2lncyICbXAiE2ZlZUNvbGxlY3RvckFkZHJlc3MiA2dwYyIFYW10QXMiB3ByaWNlQXMiCGlQcmljZUFzIgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwNzI1NTc0NDEiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIgNnZmMiDWZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIPc2xpcGFnZUNvbnRyYWN0Igtnd3hDb250cmFjdCIMcmVzdENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiB3Rha2VGZWUiBmFtb3VudCIJZmVlQW1vdW50IgNlZ28iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiC3VzZXJBZGRyZXNzIgRscElkIgRhbUlkIgRwcklkIgVhbURjbSIFcHJEY20iA3N0cyIHbHBFbWlzcyIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4IgpscEVtaXNzWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiA2VwbyIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIglpbkFtSWRTdHIiCWluUHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIBciILc2xpcHBhZ2VYMTgiD3NsaXBwYWdlUmVhbFgxOCINbHBFbWlzc2lvblgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiINJHQwMTc4NzIxODIxNyIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiBGdldEQiAnhwIgN4cDAiA3hwMSIBcyIBYSIDYW5uIgt4cDBfeHAxX25fbiIFYW5uX3MiBWFubl8xIgljYWxjRE5leHQiAWQiAmRkIgNkZGQiAmRwIgRjYWxjIgNhY2MiAWkiBWROZXh0IghkRGlmZlJhdyIFZERpZmYiA2FyciINJHQwMjAxMjgyMDE3NiICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiBWZvdW5kIgdnZXRET2xkIgFuIgphUHJlY2lzaW9uIhBhbm5fc19hUHJlY2lzaW9uIg5hbm5fYVByZWNpc2lvbiICbjEiA2N1ciINJHQwMjA4MDUyMDgyNSINJHQwMjEyNDYyMTI5MyIFZ2V0WUQiAUQiAXgiAWMiAWIiDSR0MDIxNzkzMjE4MTMiAXkiBXlOZXh0IgV5RGlmZiINJHQwMjIxMjAyMjE2NyIHY2FsY0RMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIgpscEVtaXNzaW9uIgp1cGRhdGVkRExwIg5jYWxjQ3VycmVudERMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50RExwIhJyZWZyZXNoRExwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRETHAiBm9sZERMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI0MDY3MjQyNzkiA2RMcCINJHQwMjQ2MDkyNDcwOSINdW51c2VkQWN0aW9ucyIGZExwTmV3Igxpc09yZGVyVmFsaWQiAmNnIgNwbXQiAmNwIgZjYWxsZXIiB2FtQXNQbXQiB3ByQXNQbXQiDWNhbGNQdXRPbmVUa24iCXBtdEFtdFJhdyILd2l0aFRha2VGZWUiDWNoZWNoRW1pc3Npb24iDSR0MDI3MDI2Mjc0ODgiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIg0kdDAyNzQ5NDI3NjcwIgthbUFtb3VudFJhdyILcHJBbW91bnRSYXciDSR0MDI3Njc0Mjc5MTMiCGFtQW1vdW50IghwckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciBmNoZWNrRCIIbHBBbW91bnQiDnBvb2xQcm9wb3J0aW9uIg9hbW91bnRBc3NldFBhcnQiDnByaWNlQXNzZXRQYXJ0IglscEFtdEJvdGgiBWJvbnVzIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDI5OTk3MzAxMDgiAUAiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMzAyOTgzMDYwNSIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIg0kdDAzMTM5MDMxNzQwIhBmZWVBbW91bnRGb3JDYWxjIhBvdXRJbkFtb3VudEFzc2V0Ig0kdDAzMTc0MzMxODUxIhFyZWZyZXNoRExwQWN0aW9ucyIRaXNVcGRhdGVkRExwVmFsaWQiAW0iAnBtIgJwZCIJaXNNYW5hZ2VyIgJwayICbW0iF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgphbUFzc2V0UG10IgpwckFzc2V0UG10IgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIg0kdDAzNTcwNzM1NzcyIiBpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCINaXNQdXREaXNhYmxlZCIGY2hlY2tzIg0kdDAzNjkwOTM3MDY3Igdlc3RpbUxQIg0kdDAzNzg4MjM4MjMxIhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwMzgyMzQzODM0MiIHbWF4U2xwZyIGZXN0UHV0Ig0kdDAzOTMwMTM5MzY2IglvdXRBbXRBbXQiDSR0MDQwMTU1NDAyMzciDWlzR2V0RGlzYWJsZWQiDSR0MDQwODU1NDEwMTAiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDQxNTM0NDE1OTgiEGRMcFVwZGF0ZUFjdGlvbnMiDWxwQXNzZXRBbW91bnQiBWluZGV4IgRuZXdZIgJkeSILdG90YWxHZXRSYXciDSR0MDQyNDk4NDI1NDciDSR0MDQyODkyNDMwMDciDnN1bU9mR2V0QXNzZXRzIhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNDQxNzU0NDI1NiINY2hlY2tQYXltZW50cyIKZmFjdG9yeUNmZyIHc3Rha2luZyIKdW5zdGFrZUludiIBdiIFYnVybkEiDSR0MDQ1MzE5NDU0MDAiDXVuc3Rha2VBbW91bnQiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIDcmVzIgxjaGVja0Ftb3VudHMiDSR0MDQ2NjQ4NDY3MjkiDSR0MDQ3NjYzNDc4NTEiEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIg0kdDA0ODExMDQ4MjEzIg0kdDA0ODQ5MjQ4NTk2IghhbXRBc1N0ciIHcHJBc1N0ciIBayICcHIiDHJlc1NjYWxlTXVsdCIHdXNyQWRkciIHcG10QXNJZCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIgpvcmRlclZhbGlkIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2h6AAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEAAgABaAkAtgIBAAMAAWkJALYCAQAEAAFqCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABawIFV0FWRVMAAWwCAzEwMAABbQIBMQABbgICX18AAW8CAAABcAABAAFxAAIAAXIAAwABcwAEAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAEAAUQABgABRQAHAAFGAAoAAUcJAGsDAAoFAWEAkE4BAUgCAUkBSgkAvAIDCQC2AgEFAUkFAWMJALYCAQUBSgEBSwIBTAFNCQCgAwEJALwCAwUBTAkAtgIBBQFNBQFjAQFOAwFPAVABUQkAawMFAU8FAVAFAVEBAVIBAUwDCQC/AgIFAWQFAUwJAL4CAQUBTAUBTAEBUwEBTAMJAL8CAgUBZAUBTAkAvgIBBQFMBQFMAQFUAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFXAAIRJXMlc19fcHJpY2VfX2xhc3QBAVgCAVkBWgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQFaBQNuaWwFAW4BAmFhAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFiAgJfXwUCYWMBAmFkAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFiAgJfXwUCYWMBAmFlAAIPJXNfX2Ftb3VudEFzc2V0AQJhZgACDiVzX19wcmljZUFzc2V0AQJhZwACByVzX19hbXABAmFoAAINJXNfX2FkZG9uQWRkcgACYWkCByVzX19mZWUAAmFqCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFpBQFHAAJhawkAuQkCCQDMCAICAiVzCQDMCAICA2RMcAUDbmlsBQFuAAJhbAkAuQkCCQDMCAICAiVzCQDMCAICEmRMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFuAAJhbQkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hETHBEZWxheQUDbmlsBQFuAAJhbgABAAJhbwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhbQUCYW4BAmFwAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFxAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhcgICYXMCYXQJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFzAgJfXwUCYXQCCF9fY29uZmlnAQJhdQECYXYJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYXYBAmF3AAIMJXNfX3NodXRkb3duAQJheAACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJheQACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhegMCYUECYUICYUMJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRRmFpbGVkOiBvcmRWYWxpZD0JAKUDAQUCYUECCyBzbmRyVmFsaWQ9CQClAwEFAmFCAgwgbXRjaHJWYWxpZD0JAKUDAQUCYUMBAmFEAQFMBAJhRQUBTAMJAAECBQJhRQIGU3RyaW5nBAJhRgUCYUUFAmFGCQACAQITZmFpbCBjYXN0IHRvIFN0cmluZwECYUcCAmFIAmFJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYUgFAmFJCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFICQDMCAICAS4JAMwIAgUCYUkJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYUoCAmFIAmFJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYUgFAmFJCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFICQDMCAICAS4JAMwIAgUCYUkJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYUsBAmFMCQACAQkAuQkCCQDMCAICD2xwX3N0YWJsZS5yaWRlOgkAzAgCBQJhTAUDbmlsAgEgAQJhTQECYUwJALkJAgkAzAgCAg9scF9zdGFibGUucmlkZToJAMwIAgUCYUwFA25pbAIBIAACYU4JARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhRwIFBHRoaXMJAQFUAAACYU8JAQJhRwIFBHRoaXMJAQJhZwABAmFQAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhTgkBAmF3AAcBAmFRAAkA2QQBCQECYUcCBQJhTgkBAmFxAAACYVIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhRwIFAmFOCQECYXkAAQJhUwAEAmFUCQECYUcCBQR0aGlzCQECYWUABAJhVQkBAmFHAgUEdGhpcwkBAmFmAAQCYVYJAQJhSgIFAmFOCQECYXUBBQJhVQQCYXMJAQJhSgIFAmFOCQECYXUBBQJhVAkAtQkCCQECYUcCBQJhTgkBAmFyAgkApAMBBQJhcwkApAMBBQJhVgUBbgECYVcBAmFYAwkAAAIFAmFYBQFrBQR1bml0CQDZBAEFAmFYAQJhWQECYVgDCQAAAgUCYVgFBHVuaXQFAWsJANgEAQkBBXZhbHVlAQUCYVgBAmFaAQJiYQkAmQoHCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJhBQF0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmEFAXUJANkEAQkAkQMCBQJiYQUBdgkBAmFXAQkAkQMCBQJiYQUBdwkBAmFXAQkAkQMCBQJiYQUBeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJhBQF5CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmEFAXoAAmJiCQECYVoBCQECYVMAAAJiYwUCYmIAAmJkCAUCYmMCXzEAAmJlCAUCYmMCXzIAAmJmCAUCYmMCXzMAAmJnCAUCYmMCXzQAAmJoCAUCYmMCXzUAAmJpCAUCYmMCXzYAAmJqCAUCYmMCXzcBAmJrAAkAtQkCCQECYUcCBQJhTgkBAmFwAAUBbgACYmwJAQJiawAAAmJtCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJibAUBQwIgSW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MAAmJuCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJibAUBRQIgSW52YWxpZCBzbGlwYWdlIGNvbnRyYWN0IGFkZHJlc3MAAmJvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJibAUBRgIcSW52YWxpZCBnd3ggY29udHJhY3QgYWRkcmVzcwACYnAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJsBQFEAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJicQoCYnICYnMCYnQCYnUCYnYCYncCYngCYnkCYnoCYkEJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJyCQDMCAIJAKQDAQUCYnMJAMwIAgkApAMBBQJidAkAzAgCCQCkAwEFAmJ1CQDMCAIJAKQDAQUCYnYJAMwIAgkApAMBBQJidwkAzAgCCQCkAwEFAmJ4CQDMCAIJAKQDAQUCYnkJAMwIAgkApAMBBQJiegkAzAgCCQCkAwEFAmJBBQNuaWwFAW4BAmJCBgJiQwJiRAJiRQJidQJieAJieQkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJDCQDMCAIJAKQDAQUCYkQJAMwIAgkApAMBBQJiRQkAzAgCCQCkAwEFAmJ1CQDMCAIJAKQDAQUCYngJAMwIAgkApAMBBQJieQUDbmlsBQFuAQJiRgECYkcDCQAAAgUCYkcCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJHAQJiSAICYkkCYkoJALwCAwUCYkkFAWMFAmJKAQJiSwMCYkwCYk0CYk4EAmJPCQC8AgMJALgCAgUCYkwFAmJNBQFiBQJiTQQCYlAJAL8CAgkAuAICBQJiTgkBAVIBBQJiTwUBZAMJAQEhAQUCYlAJAAIBCQCsAgICCkJpZyBzbHBnOiAJAKYDAQUCYk8JAJQKAgUCYlAJAJkDAQkAzAgCBQJiTAkAzAgCBQJiTQUDbmlsAQJiUQMCYlICYlMCYlQEAmJPCQC8AgMFAmJTBQFiBQJiUgQCYlUJAL8CAgUCYlQFAmJPAwMFAmJVBgkAvwICBQJiUwUCYlIJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCmAwEFAmJTAgEgCQCmAwEFAmJSAgEgCQCmAwEFAmJPAgEgCQCmAwEFAmJUBQJiVQECYlYEAmJXAmJYAmJZAmJaBAJjYQkBAUgCBQJiWQUCYlcEAmNiCQEBSAIFAmJaBQJiWAkBAmJIAgUCY2IFAmNhAQJjYwMCYlkCYloCY2QEAmNlCQECYVMABAJjZgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNlBQF5BAJjZwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNlBQF6BAJjaAkBAmJWBAUCY2YFAmNnBQJiWQUCYloEAmJKCQEBSAIFAmJZBQJjZgQCYkkJAQFIAgUCYloFAmNnBAJjaQkBAUgCBQJjZAUBYQQCY2oJAQJiSAIFAmJKBQJjaQQCY2sJAQJiSAIFAmJJBQJjaQkAzAgCBQJjaAkAzAgCBQJjagkAzAgCBQJjawUDbmlsAQJjbAMCYlkCYloCY2QEAmNtCQECY2MDBQJiWQUCYloFAmNkCQDMCAIJAQFLAgkAkQMCBQJjbQAABQFhCQDMCAIJAQFLAgkAkQMCBQJjbQABBQFhCQDMCAIJAQFLAgkAkQMCBQJjbQACBQFhBQNuaWwBAmNuAQJjbwQCY3AJAGsDBQJjbwUCYWoFAWEJAJQKAgkAZQIFAmNvBQJjcAUCY3ABAmNxBAJjcgJjcwJjdAJjdQQCY2UJAQJhUwAEAmN2CQCRAwIFAmNlBQF2BAJjdwkAkQMCBQJjZQUBdwQCY3gJAJEDAgUCY2UFAXgEAmN5CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2UFAXkEAmN6CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2UFAXoEAmNBCQCRAwIFAmNlBQF1BAJjQggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmN2AgtXcm9uZyBMUCBpZAhxdWFudGl0eQMJAQIhPQIFAmN2BQJjcwkAAgECD1dyb25nIHBtdCBhc3NldAQCY0MJAQJiRgEFAmN3BAJjRAkBAUgCBQJjQwUCY3kEAmNFCQECYkYBBQJjeAQCY0YJAQFIAgUCY0UFAmN6BAJjRwkBAmJIAgUCY0YFAmNEBAJjSAkBAUsCBQJjRwUBYQQCY0kJAQFIAgUCY3QFAWEEAmNKCQEBSAIFAmNCBQFhBAJjSwkAvAIDBQJjRAUCY0kFAmNKBAJjTAkAvAIDBQJjRgUCY0kFAmNKBAJjTQkBAUsCBQJjSwUCY3kEAmNOCQEBSwIFAmNMBQJjegQCY08DCQAAAgUCY3ICAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmN1BQJjTQMJAAACBQJjdwIFV0FWRVMFBHVuaXQJANkEAQUCY3cJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY3UFAmNOAwkAAAIFAmN4AgVXQVZFUwUEdW5pdAkA2QQBBQJjeAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEFAmN1BQJjcgkBAmJCBgUCY00FAmNOBQJjdAUCY0gFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCY0gJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY0gFA25pbAkAnAoKBQJjTQUCY04FAmN3BQJjeAUCY0MFAmNFBQJjQgUCY0cFAmNBBQJjTwECY1ANAmNyAmJOAmNRAmNSAmNTAmNUAmN1AmNVAmNWAmNXAmNYAmNZAmNaBAJjZQkBAmFTAAQCY3YJANkEAQkAkQMCBQJjZQUBdgQCZGEJAJEDAgUCY2UFAXcEAmRiCQCRAwIFAmNlBQF4BAJkYwkAkQMCBQJjZQUBQQQCZGQJAJEDAgUCY2UFAUIEAmRlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2UFAXkEAmRmCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2UFAXoEAmNBCQCRAwIFAmNlBQF1BAJkZwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjdgIIV3IgbHAgYXMIcXVhbnRpdHkEAmNDAwUCY1UJAQJiRgEFAmRhAwMFAmNXCQAAAgUCY1oFAmRhBwkAZQIJAQJiRgEFAmRhBQJjWQMFAmNXCQECYkYBBQJkYQkAZQIJAQJiRgEFAmRhBQJjUQQCY0UDBQJjVQkBAmJGAQUCZGIDAwUCY1cJAAACBQJjWgUCZGIHCQBlAgkBAmJGAQUCZGIFAmNZAwUCY1cJAQJiRgEFAmRiCQBlAgkBAmJGAQUCZGIFAmNTBAJkaAkBAUgCBQJjUQUCZGUEAmRpCQEBSAIFAmNTBQJkZgQCZGoJAQJiSAIFAmRpBQJkaAQCY0QJAQFIAgUCY0MFAmRlBAJjRgkBAUgCBQJjRQUCZGYEAmRrAwkAAAIFAmRnAAAEAmNHBQFkBAJkbAUBZAQCY2kJAHYGCQC5AgIFAmRoBQJkaQAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUsCBQJjaQUBYQkBAUsCBQJkaAUCZGUJAQFLAgUCZGkFAmRmCQECYkgCCQC3AgIFAmNGBQJkaQkAtwICBQJjRAUCZGgFAmRsBAJjRwkBAmJIAgUCY0YFAmNEBAJkbQkAvAIDCQEBUgEJALgCAgUCY0cFAmRqBQFjBQJjRwQCZGwJAQFIAgUCYk4FAWEDAwMFAmNYCQECIT0CBQJjRwUBZAcJAL8CAgUCZG0FAmRsBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJkbQIDID4gCQCmAwEFAmRsBAJkbgkBAUgCBQJkZwUBYQQCZG8JALwCAwUCZGgFAmNHBQFjBAJkcAkAvAIDBQJkaQUBYwUCY0cEAmRxAwkAvwICBQJkbwUCZGkJAJQKAgUCZHAFAmRpCQCUCgIFAmRoBQJkbwQCZHIIBQJkcQJfMQQCZHMIBQJkcQJfMgQCY2kJALwCAwUCZG4FAmRzBQJjRgkAlwoFCQEBSwIFAmNpBQFhCQEBSwIFAmRyBQJkZQkBAUsCBQJkcwUCZGYFAmNHBQJkbAQCZHQIBQJkawJfMQQCZHUIBQJkawJfMgQCZHYIBQJkawJfMwQCY0gJAQFLAggFAmRrAl80BQFhBAJkdwkBAUsCCAUCZGsCXzUFAWEDCQBnAgAABQJkdAkAAgECB0xQIDw9IDAEAmR4AwkBASEBBQJjVgAABQJkdAQCZHkJAGUCBQJjUQUCZHUEAmR6CQBlAgUCY1MFAmR2BAJkQQMDBQJjVwkAAAIFAmNaBQJkYQcJAJQKAgUCY1kAAAMDBQJjVwkAAAIFAmNaBQJkYgcJAJQKAgAABQJjWQkAlAoCBQJkdQUCZHYEAmRCCAUCZEECXzEEAmRDCAUCZEECXzIEAmRECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmNICQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNICQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIFAmN1BQJjcgkBAmJxCgUCZEIFAmRDBQJkeAUCY0gFAmJOBQJkdwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHkFAmR6BQNuaWwJAJ8KDQUCZHQFAmR4BQJjSAUCY0MFAmNFBQJkZwUCY3YFAmNBBQJkRAUCZHkFAmR6BQJjUgUCY1QBAmRFAQJkRgQCZEcJAJEDAgUCZEYAAAQCZEgJAJEDAgUCZEYAAQQCZEkJALcCAgUCZEcFAmRIAwkAAAIFAmRJBQFlBQFlBAJkSgkBDXBhcnNlSW50VmFsdWUBBQJhTwQCZEsJAGgCBQJkSgACBAJjbQkAvAIDBQJkRwUCZEgFAWYEAmRMCQC8AgMFAmNtBQFpBQFmBAJkTQkAvAIDCQC2AgEFAmRLBQJkSQUBZgQCZE4JALYCAQkAZQIFAmRLAAEKAQJkTwECZFAEAmRRCQC8AgMFAmRQBQJkUAUBZgQCZFIJALwCAwUCZFEFAmRQBQFmBAJkUwkAvAIDBQJkUgUBZgUCZEwJALwCAwkAtwICBQJkTQkAvAIDBQJkUwUBZwUBZgUCZFAJALcCAgkAvAIDBQJkTgUCZFAFAWYJALwCAwUBaAUCZFMFAWYKAQJkVAICZFUCZFYDCAUCZFUCXzIFAmRVBAJkUAgFAmRVAl8xBAJkVwkBAmRPAQUCZFAEAmRYCQCgAwEJALgCAgUCZFcJAQV2YWx1ZQEFAmRQBAJkWQMJAGYCAAAFAmRYCQEBLQEFAmRYBQJkWAMJAGcCAAEFAmRZCQCUCgIFAmRXBgkAlAoCBQJkVwcEAmRaCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVhCgACZWIFAmRaCgACZWMJAJADAQUCZWIKAAJlZAkAlAoCBQJkSQcKAQJlZQICZWYCZWcDCQBnAgUCZWcFAmVjBQJlZgkBAmRUAgUCZWYJAJEDAgUCZWIFAmVnCgECZWgCAmVmAmVnAwkAZwIFAmVnBQJlYwUCZWYJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmVoAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgUCZWQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZFAIBQJlYQJfMQQCZWkIBQJlYQJfMgMFAmVpBQJkUAkAAgEJAKwCAgIZRCBjYWxjdWxhdGlvbiBlcnJvciwgRCA9IAkApgMBBQJkUAECZWoBAmRGBAJlawUBZwQCZEcJAJEDAgUCZEYAAAQCZEgJAJEDAgUCZEYAAQQCZWwJAKcDAQUBbAQCZEoJALkCAgkApwMBBQJhTwUCZWwEAmRJCQC3AgIFAmRHBQJkSAMJAAACBQJkSQUBZQUBZQQCZEsJALkCAgUCZEoFAmVrBAJkTAkAuQICCQC5AgIJALkCAgUCZEcFAmRIBQJlawUCZWsEAmVtCQC6AgIJALkCAgUCZEsFAmRJBQJlbAQCZW4JALgCAgUCZEsFAmVsBAJlbwkAtwICBQJlawUBZgoBAmRUAgJkVQJlcAQCZXEFAmRVBAJkUAgFAmVxAl8xBAJlaQgFAmVxAl8yAwkBAiE9AgUCZWkFBHVuaXQFAmRVBAJkUwkAugICCQC5AgIJALkCAgUCZFAFAmRQBQJkUAUCZEwEAmRXCQC6AgIJALkCAgkAtwICBQJlbQkAuQICBQJkUwUCZWsFAmRQCQC3AgIJALoCAgkAuQICBQJlbgUCZFAFAmVsCQC5AgIFAmVvBQJkUwQCZFkJAQFTAQkAuAICBQJkVwkBBXZhbHVlAQUCZFADCQDAAgIFAWYFAmRZCQCUCgIFAmRXBQJlcAkAlAoCBQJkVwUEdW5pdAQCZFoJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4FA25pbAQCZXIKAAJlYgUCZFoKAAJlYwkAkAMBBQJlYgoAAmVkCQCUCgIFAmRJBQR1bml0CgECZWUCAmVmAmVnAwkAZwIFAmVnBQJlYwUCZWYJAQJkVAIFAmVmCQCRAwIFAmViBQJlZwoBAmVoAgJlZgJlZwMJAGcCBQJlZwUCZWMFAmVmCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQJlaAIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIJAQJlZQIFAmVkAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8EAmRQCAUCZXICXzEEAmVpCAUCZXICXzIDCQECIT0CBQJlaQUEdW5pdAUCZFAJAAIBCQCsAgICGUQgY2FsY3VsYXRpb24gZXJyb3IsIEQgPSAJAKYDAQUCZFABAmVzAwJkRgJkVgJldAQCZWsFAWcEAmV1CQCRAwIFAmRGAwkAAAIFAmRWAAAAAQAABAJlbAkApwMBBQFsBAJkSgkAuQICCQCnAwEFAmFPBQJlbAQCZEkFAmV1BAJkSwkAuQICBQJkSgUCZWsEAmV2CQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZXQFAmV0CQC5AgIFAmV1BQJlawUCZXQFAmVsCQC5AgIFAmRLBQJlawQCZXcJALgCAgkAtwICBQJkSQkAugICCQC5AgIFAmV0BQJlbAUCZEsFAmV0CgECZFQCAmRVAmVwBAJleAUCZFUEAmV5CAUCZXgCXzEEAmVpCAUCZXgCXzIDCQECIT0CBQJlaQUEdW5pdAUCZFUEAmV6CQC6AgIJALcCAgkAuQICBQJleQUCZXkFAmV2CQC3AgIJALkCAgUBZwUCZXkFAmV3BAJlQQkBAVMBCQC4AgIFAmV6CQEFdmFsdWUBBQJleQMJAMACAgUBZgUCZUEJAJQKAgUCZXoFAmVwCQCUCgIFAmV6BQR1bml0BAJkWgkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJlQgoAAmViBQJkWgoAAmVjCQCQAwEFAmViCgACZWQJAJQKAgUCZXQFBHVuaXQKAQJlZQICZWYCZWcDCQBnAgUCZWcFAmVjBQJlZgkBAmRUAgUCZWYJAJEDAgUCZWIFAmVnCgECZWgCAmVmAmVnAwkAZwIFAmVnBQJlYwUCZWYJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmVoAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgkBAmVlAgUCZWQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZXkIBQJlQgJfMQQCZWkIBQJlQgJfMgMJAQIhPQIFAmVpBQR1bml0BQJleQkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJleQECZUMDAmVEAmVFAmVGBAJlRwkAvAIDCQECZEUBCQDMCAIFAmVECQDMCAIFAmVFBQNuaWwFAWMFAmVGBQJlRwECZUgDAmVJAmVKAmVLBAJlTAkAuAICCQC2AgEJAQJiRgEJAQJhWQEFAmJnBQJlSQQCZU0JALgCAgkAtgIBCQECYkYBCQECYVkBBQJiaAUCZUoEAmVOCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYmYIcXVhbnRpdHkFAmVLBAJlTwkBAmVDAwUCZUwFAmVNBQJlTgUCZU8BAmVQAwJlUQJlUgJlSwQCZUwJAGQCCQECYkYBCQECYVkBBQJiZwUCZVEEAmVNCQBkAgkBAmJGAQkBAmFZAQUCYmgFAmVSBAJlTgkAZAIICQEFdmFsdWUBCQDsBwEFAmJmCHF1YW50aXR5BQJlSwQCZUcJAQJlQwMJALYCAQUCZUwJALYCAQUCZU0JALYCAQUCZU4EAmVTCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhbAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFrCQCmAwEFAmVHBQNuaWwJAJQKAgUCZVMFAmVHAQJlVAICZVUCZUcDCQDAAgIFAmVHBQJlVQYJAQJhSwECInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHABAmVWAQJlVwQCZVgIBQJlVwZhbW91bnQEAmVZCQBuBAgFAmVXBmFtb3VudAgFAmVXBXByaWNlBQFhBQVGTE9PUgQCZVoDCQAAAggFAmVXCW9yZGVyVHlwZQUDQnV5CQCUCgIFAmVYCQEBLQEFAmVZCQCUCgIJAQEtAQUCZVgFAmVZBAJlUQgFAmVaAl8xBAJlUggFAmVaAl8yAwMDCQECYVAABgkAAAIFAmJlBQFyBgkAAAIFAmJlBQFzCQACAQINQWRtaW4gYmxvY2tlZAMDCQECIT0CCAgFAmVXCWFzc2V0UGFpcgthbW91bnRBc3NldAUCYmcGCQECIT0CCAgFAmVXCWFzc2V0UGFpcgpwcmljZUFzc2V0BQJiaAkAAgECCVdyIGFzc2V0cwQCZmEJAKcDAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUCYWsEAmZiCQECZVADBQJlUQUCZVIAAAQCZmMIBQJmYgJfMQQCZmQIBQJmYgJfMgQCZmUJAMACAgUCZmQFAmZhBQJmZQECZmYBAmRWAwkBAiE9AgkAkAMBCAUCZFYIcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmZnCQEFdmFsdWUBCQCRAwIIBQJkVghwYXltZW50cwAABAJjcwkBBXZhbHVlAQgFAmZnB2Fzc2V0SWQEAmNZCAUCZmcGYW1vdW50BAJkawkBAmNxBAkA2AQBCAUCZFYNdHJhbnNhY3Rpb25JZAkA2AQBBQJjcwUCY1kIBQJkVgZjYWxsZXIEAmNNCAUCZGsCXzEEAmNOCAUCZGsCXzIEAmNBCQENcGFyc2VJbnRWYWx1ZQEIBQJkawJfOQQCY08IBQJkawNfMTADAwkBAmFQAAYJAAACBQJjQQUBcwkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmNBCQCXCgUFAmNNBQJjTgUCY1kFAmNzBQJjTwECZmgKAmZpAmFjAmZqAmZrAmJOAmNWAmNXAmNYAmNZAmNaBAJkawkBAmNQDQUCYWMFAmJOCAkBBXZhbHVlAQUCZmoGYW1vdW50CAkBBXZhbHVlAQUCZmoHYXNzZXRJZAgJAQV2YWx1ZQEFAmZrBmFtb3VudAgJAQV2YWx1ZQEFAmZrB2Fzc2V0SWQFAmZpCQAAAgUCYWMCAAUCY1YFAmNXBQJjWAUCY1kFAmNaBAJjQQkBDXBhcnNlSW50VmFsdWUBCAUCZGsCXzgDAwMJAQJhUAAGCQAAAgUCY0EFAXEGCQAAAgUCY0EFAXMJAAIBCQCsAgICCEJsb2NrZWQ6CQCkAwEFAmNBBQJkawECZmwFAmZtAmNzAmN1AmFjAmZuBAJiYQkBAmFTAAQCY3cJAJEDAgUCYmEFAXcEAmN4CQCRAwIFAmJhBQF4BAJjdgkAkQMCBQJiYQUBdgQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiYQUBeQQCZGYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiYQUBegQCZU4JALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmN2AhBpbnZhbGlkIGxwIGFzc2V0CHF1YW50aXR5BAJmbwMJAL8CAgUCZU4FAWUGCQACAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJmbwUCZm8EAmNDCQECYkYBBQJjdwQCY0UJAQJiRgEFAmN4BAJmcAMJAAACBQJhYwIACQCUCgIFAmNDBQJjRQMJAAACBQJjcwUCY3cDCQBmAgUCZm0FAmNDCQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAlAoCCQBlAgUCY0MFAmZtBQJjRQMJAAACBQJjcwUCY3gDCQBmAgUCZm0FAmNFCQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAlAoCBQJjQwkAZQIFAmNFBQJmbQkAAgECEHdyb25nIHBtdEFzc2V0SWQEAmZxCAUCZnACXzEEAmZyCAUCZnACXzIEAmZzAwkAAAIFAmNzBQJjdwkAlAoCBQJmbQAAAwkAAAIFAmNzBQJjeAkAlAoCAAAFAmZtCQACAQIPaW52YWxpZCBwYXltZW50BAJmdAgFAmZzAl8xBAJmdQgFAmZzAl8yBAJmdgMFAmZuCQCVCgMICQECY24BBQJmdAJfMQgJAQJjbgEFAmZ1Al8xCAkBAmNuAQUCZm0CXzIJAJUKAwUCZnQFAmZ1AAAEAmZ3CAUCZnYCXzEEAmZ4CAUCZnYCXzIEAmNwCAUCZnYCXzMEAmZ5CQBkAgUCZnEFAmZ3BAJmegkAZAIFAmZyBQJmeAQCYlMJAQJkRQEJAMwIAgkAtgIBBQJmcQkAzAgCCQC2AgEFAmZyBQNuaWwEAmJSCQECZEUBCQDMCAIJALYCAQUCZnkJAMwIAgkAtgIBBQJmegUDbmlsBAJmQQMJAL8CAgUCYlIFAmJTBgkBBXRocm93AAMJAAACBQJmQQUCZkEEAmZCCQC8AgMFAmVOCQC4AgIFAmJSBQJiUwUCYlMEAmNICQEBSwIJAQJiSAIJAQFIAgUCZnoFAmRmCQEBSAIFAmZ5BQJkZQUBYQQCZEQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCY0gJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY0gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgUCY3UFAmFjCQECYnEKBQJmdAUCZnUJAKADAQUCZkIFAmNIAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZkMJAGsDBQJmcgUBYQUCZnEEAmZECQBrAwUCZm0FAWEJAGQCBQJmQwUBYQQCZkUJAGUCBQJmbQUCZkQEAmZGCQC8AgMFAmVOCQC2AgEFAmZFCQC2AgEFAmZyBAJmRwkAoAMBCQC8AgMJALgCAgUCZkIFAmZGBQFiBQJmRgkAlgoECQCgAwEFAmZCBQJkRAUCY3AFAmZHCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmSAYCZkkCZkoCZksCZmkCZkwCZk0EAmJhCQECYVMABAJjdgkAkQMCBQJiYQUBdgQCY3cJAJEDAgUCYmEFAXcEAmN4CQCRAwIFAmJhBQF4BAJmTgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJhBQF5BAJmTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJhBQF6BAJmUAkAkQMCBQJiYQUBdQQCY3UDCQAAAgUCZmkFAmJwBQJmTAUCZmkEAmZnCQEFdmFsdWUBCQCRAwIFAmZLAAAEAmNzCQEFdmFsdWUBCAUCZmcHYXNzZXRJZAQCY1kIBQJmZwZhbW91bnQEAmVPCQECZUgDCQC2AgEAAAkAtgIBAAAJALYCAQUCY1kEAmNyCQDYBAEFAmZNAwkBAiE9AgUCY3YJANgEAQUCY3MJAAIBAghXcm9uZyBMUAQCY0MJAQJiRgEFAmN3BAJjRQkBAmJGAQUCY3gEAmZRCgACZlIJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJmSQkAzAgCBQJjWQUDbmlsBQNuaWwDCQABAgUCZlICCihJbnQsIEludCkFAmZSCQACAQkArAICCQADAQUCZlICHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkDCQAAAgUCZlEFAmZRBAJjcAgFAmZRAl8yBAJmUwgFAmZRAl8xBAJmVAMDCQBmAgUCZkoAAAkAZgIFAmZKBQJmUwcJAQJhSwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZkoFA25pbAIABQJmUwQCZlUDCQAAAgUCZkkFAmN3CQCWCgQFAmZUAAAJAGUCCQBlAgUCY0MFAmZUBQJjcAUCY0UDCQAAAgUCZkkFAmN4CQCWCgQAAAUCZlQFAmNDCQBlAgkAZQIFAmNFBQJmVAUCY3AJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCZlYIBQJmVQJfMQQCZlcIBQJmVQJfMgQCZnkIBQJmVQJfMwQCZnoIBQJmVQJfNAQCZlgJAQJiSAIJAQFIAgUCZnoFAmZPCQEBSAIFAmZ5BQJmTgQCZlkJAQFLAgUCZlgFAWEEAmZaAwkAAAIFAmZJAgVXQVZFUwUEdW5pdAkA2QQBBQJmSQQCZ2EDCQBmAgUCY3AAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhUgUCY3AFAmZaBQNuaWwFA25pbAQCY08JAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJjdQUCZlQFAmZaCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIJAKUIAQUCY3UFAmNyCQECYkIGBQJmVgUCZlcFAmNZBQJmWQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJmWQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmWQUDbmlsBQJnYQMJAAACBQJjTwUCY08EAmdiCQD8BwQFAmFOAgRidXJuCQDMCAIFAmNZBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNzBQJjWQUDbmlsAwkAAAIFAmdiBQJnYgQCZ2MEAmdkAwkAAAIFBHRoaXMFAmFSAAAFAmNwBAJnZQMJAAACCQECYVcBBQJmSQUCYmcGBwMFAmdlCQCUCgIJAQEtAQkAZAIFAmZTBQJnZAAACQCUCgIAAAkBAS0BCQBkAgUCZlMFAmdkBAJlUQgFAmdjAl8xBAJlUggFAmdjAl8yBAJnZgkBAmVQAwUCZVEFAmVSAAAEAmdnCAUCZ2YCXzEEAmVHCAUCZ2YCXzIEAmdoCQECZVQCBQJlTwUCZUcDCQAAAgUCZ2gFAmdoCQCUCgIJAM4IAgUCY08FAmdnBQJmVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZ2kABAJhRQkAoggBCQEBVQADCQABAgUCYUUCBlN0cmluZwQCZEkFAmFFCQDZBAEFAmRJAwkAAQIFAmFFAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmdqAAQCYUUJAKIIAQkBAVYAAwkAAQIFAmFFAgZTdHJpbmcEAmRJBQJhRQkA2QQBBQJkSQMJAAECBQJhRQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAAJnawkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQJnbAECZFYEAmFFCQECZ2kAAwkAAQIFAmFFAgpCeXRlVmVjdG9yBAJnbQUCYUUJAAACCAUCZFYPY2FsbGVyUHVibGljS2V5BQJnbQMJAAECBQJhRQIEVW5pdAkAAAIIBQJkVgZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECZ24BAmRWBAJhRQkBAmdpAAMJAAECBQJhRQIKQnl0ZVZlY3RvcgQCZ20FAmFFAwkAAAIIBQJkVg9jYWxsZXJQdWJsaWNLZXkFAmdtBgUCZ2sDCQABAgUCYUUCBFVuaXQDCQAAAggFAmRWBmNhbGxlcgUEdGhpcwYFAmdrCQACAQILTWF0Y2ggZXJyb3IdAmRWAQtjb25zdHJ1Y3RvcgEBVAQCZXYJAQJnbgEFAmRWAwkAAAIFAmV2BQJldgkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAFAVQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkVgEKc2V0TWFuYWdlcgECZ28EAmV2CQECZ24BBQJkVgMJAAACBQJldgUCZXYEAmdwCQDZBAEFAmdvAwkAAAIFAmdwBQJncAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVgAFAmdvBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZFYBDmNvbmZpcm1NYW5hZ2VyAAQCY20JAQJnagAEAmdxAwkBCWlzRGVmaW5lZAEFAmNtBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJncQUCZ3EEAmdyAwkAAAIIBQJkVg9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmNtBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJncgUCZ3IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVUACQDYBAEJAQV2YWx1ZQEFAmNtCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFWAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRWAQNwdXQCAmdzAmd0BAJndQkBAmJrAAQCZ3YJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmd1BQFDAgpXciBzdCBhZGRyBAJndwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZ3UFAUUCCldyIHNsIGFkZHIDCQBmAgAABQJncwkAAgECDldyb25nIHNsaXBwYWdlAwkBAiE9AgkAkAMBCAUCZFYIcGF5bWVudHMAAgkAAgECDDIgcG1udHMgZXhwZAQCZ3gJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRWCHBheW1lbnRzAAAGYW1vdW50BAJneQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZFYIcGF5bWVudHMAAQZhbW91bnQEAmVPCQECZUgDBQJneAUCZ3kJALYCAQAAAwkAAAIFAmVPBQJlTwQCZ3oJAQJmaAoJAKUIAQgFAmRWBmNhbGxlcgkA2AQBCAUCZFYNdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQJkVghwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQJkVghwYXltZW50cwAABmFtb3VudAkAkQMCCAUCZFYIcGF5bWVudHMAAQUCZ3MGBwYAAAIABAJkeAgFAmd6Al8yBAJnQQgFAmd6Al83BAJjTwgFAmd6Al85BAJkeQgFAmd6A18xMAQCZHoIBQJnegNfMTEEAmN3CAUCZ3oDXzEyBAJjeAgFAmd6A18xMwQCZGsJAPwHBAUCYU4CBGVtaXQJAMwIAgUCZHgFA25pbAUDbmlsAwkAAAIFAmRrBQJkawQCZ0IEAmFFBQJkawMJAAECBQJhRQIHQWRkcmVzcwQCZ0MFAmFFCQD8BwQFAmdDAgRlbWl0CQDMCAIFAmR4BQNuaWwFA25pbAUEdW5pdAMJAAACBQJnQgUCZ0IEAmdEAwkAZgIFAmR5AAAJAPwHBAUCZ3cCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjdwUCZHkFA25pbAUDbmlsAwkAAAIFAmdEBQJnRAQCZ0UDCQBmAgUCZHoAAAkA/AcEBQJndwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmN4BQJkegUDbmlsBQNuaWwDCQAAAgUCZ0UFAmdFBAJnRgMFAmd0BAJnRwkA/AcEBQJndgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ0EFAmR4BQNuaWwDCQAAAgUCZ0cFAmdHBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRWBmNhbGxlcgUCZHgFAmdBBQNuaWwEAmdICQECZVADAAAAAAAABAJnZwgFAmdIAl8xBAJlRwgFAmdIAl8yBAJnaAkBAmVUAgUCZU8FAmVHAwkAAAIFAmdoBQJnaAkAzggCCQDOCAIFAmNPBQJnRgUCZ2cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZFYBC3B1dE9uZVRrblYyAgJmSgJndAQCZ0kKAAJmUgkA/AcEBQJhTgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZSAgdCb29sZWFuBQJmUgkAAgEJAKwCAgkAAwEFAmZSAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnSgMDAwkBAmFQAAYJAAACBQJiZQUBcQYJAAACBQJiZQUBcwYFAmdJBAJnSwkAzAgCAwMJAQEhAQUCZ0oGCQECZ2wBBQJkVgYJAQJhSwECIXB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRWCHBheW1lbnRzAAEGCQECYUsBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnSwUCZ0sEAmJhCQECYVMABAJjdwkAkQMCBQJiYQUBdwQCY3gJAJEDAgUCYmEFAXgEAmN2CQDZBAEJAJEDAgUCYmEFAXYEAmZOCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmEFAXkEAmZPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmEFAXoEAmN1AwkAAAIIBQJkVgZjYWxsZXIFBHRoaXMIBQJkVgxvcmlnaW5DYWxsZXIIBQJkVgZjYWxsZXIEAmZnCQEFdmFsdWUBCQCRAwIIBQJkVghwYXltZW50cwAABAJjcwkA2AQBCQEFdmFsdWUBCAUCZmcHYXNzZXRJZAQCY1kIBQJmZwZhbW91bnQEAmdMCQECZmwFBQJjWQUCY3MJAKUIAQUCY3UJANgEAQgFAmRWDXRyYW5zYWN0aW9uSWQGAwkAAAIFAmdMBQJnTAQCY3AIBQJnTAJfMwQCY08IBQJnTAJfMgQCZ00IBQJnTAJfMQQCZHgDAwkAZgIFAmZKAAAJAGYCBQJmSgUCZ00HCQECYUsBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZKBQNuaWwCAAUCZ00EAmd6CQD8BwQFAmFOAgRlbWl0CQDMCAIFAmR4BQNuaWwFA25pbAMJAAACBQJnegUCZ3oEAmdCBAJhRQUCZ3oDCQABAgUCYUUCB0FkZHJlc3MEAmdDBQJhRQkA/AcEBQJnQwIEZW1pdAkAzAgCBQJkeAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZ0IFAmdCBAJnRgMFAmd0BAJnRwkA/AcEBQJibQIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY3YFAmR4BQNuaWwDCQAAAgUCZ0cFAmdHBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRWBmNhbGxlcgUCZHgFAmN2BQNuaWwEAmdhAwkAZgIFAmNwAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVIFAmNwCQDZBAEFAmNzBQNuaWwFA25pbAQCZ04DCQAAAgUEdGhpcwUCYVIJAJQKAgAAAAAEAmdPAwkAAAIIBQJmZwdhc3NldElkBQJiZwYHAwUCZ08JAJQKAgkBAS0BBQJjcAAACQCUCgIAAAkBAS0BBQJjcAQCZVEIBQJnTgJfMQQCZVIIBQJnTgJfMgQCZ1AJAQJlUAMFAmVRBQJlUgAABAJnZwgFAmdQAl8xBAJlRwgFAmdQAl8yCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNPBQJnRgUCZ2EFAmdnBQJkeAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkVgEKcHV0Rm9yRnJlZQECZ1EDCQBmAgAABQJnUQkAAgECCldyb25nIHNscGcDCQECIT0CCQCQAwEIBQJkVghwYXltZW50cwACCQACAQIMMiBwbW50cyBleHBkBAJnUgkBAmZoCgkApQgBCAUCZFYGY2FsbGVyCQDYBAEIBQJkVg10cmFuc2FjdGlvbklkCQEPQXR0YWNoZWRQYXltZW50AggJAQV2YWx1ZQEJAJEDAggFAmRWCHBheW1lbnRzAAAHYXNzZXRJZAgJAQV2YWx1ZQEJAJEDAggFAmRWCHBheW1lbnRzAAAGYW1vdW50CQCRAwIIBQJkVghwYXltZW50cwABBQJnUQcHBgAAAgAEAmNPCAUCZ1ICXzkEAmd4CQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkVghwYXltZW50cwAABmFtb3VudAQCZ3kJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRWCHBheW1lbnRzAAEGYW1vdW50BAJlTwkBAmVIAwUCZ3gFAmd5CQC2AgEAAAMJAAACBQJlTwUCZU8EAmdTCQECZVADAAAAAAAABAJnZwgFAmdTAl8xBAJlRwgFAmdTAl8yBAJnaAkBAmVUAgUCZU8FAmVHAwkAAAIFAmdoBQJnaAkAzggCBQJjTwUCZ2cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZFYBA2dldAAEAmRrCQECZmYBBQJkVgQCZ1QIBQJkawJfMQQCY04IBQJkawJfMgQCY1kIBQJkawJfMwQCY3MIBQJkawJfNAQCY08IBQJkawJfNQQCZXcJAPwHBAUCYU4CBGJ1cm4JAMwIAgUCY1kFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY3MFAmNZBQNuaWwDCQAAAgUCZXcFAmV3BAJlTwkBAmVIAwkAtgIBAAAJALYCAQAACQC2AgEFAmNZBAJnVQkBAmVQAwkBAS0BBQJnVAkBAS0BBQJjTgAABAJnZwgFAmdVAl8xBAJlRwgFAmdVAl8yBAJnaAkBAmVUAgUCZU8FAmVHAwkAAAIFAmdoBQJnaAkAzggCBQJjTwUCZ2cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZFYBC2dldE9uZVRrblYyAgJmSQJmSgQCZ0kKAAJmUgkA/AcEBQJhTgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZSAgdCb29sZWFuBQJmUgkAAgEJAKwCAgkAAwEFAmZSAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnVgMDCQECYVAABgkAAAIFAmJlBQFzBgUCZ0kEAmdLCQDMCAIDAwkBASEBBQJnVgYJAQJnbAEFAmRWBgkBAmFLAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZFYIcGF5bWVudHMAAQYJAQJhSwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdLBQJnSwQCZ1cJAQJmSAYFAmZJBQJmSggFAmRWCHBheW1lbnRzCAUCZFYGY2FsbGVyCAUCZFYMb3JpZ2luQ2FsbGVyCAUCZFYNdHJhbnNhY3Rpb25JZAQCY08IBQJnVwJfMQQCZlQIBQJnVwJfMgkAlAoCBQJjTwUCZlQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZFYBCnJlZnJlc2hETHAABAJnWAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJhbAAABAJnWQMJAGcCCQBlAgUGaGVpZ2h0BQJnWAUCYW8FBHVuaXQJAQJhSwEJALkJAgkAzAgCCQCkAwEFAmFvCQDMCAICLyBibG9ja3MgaGF2ZSBub3QgcGFzc2VkIHNpbmNlIHRoZSBwcmV2aW91cyBjYWxsBQNuaWwCAAMJAAACBQJnWQUCZ1kEAmZhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhawIBMAkBAmFNAQILaW52YWxpZCBkTHAEAmdaCQECZVADAAAAAAAABAJoYQgFAmdaAl8xBAJlRwgFAmdaAl8yBAJlUwMJAQIhPQIFAmZhBQJlRwUCaGEJAQJhSwECEm5vdGhpbmcgdG8gcmVmcmVzaAkAlAoCBQJlUwkApgMBBQJlRwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkVgETZ2V0T25lVGtuVjJSRUFET05MWQICZkkCaGIEAmJhCQECYVMABAJjdwkAkQMCBQJiYQUBdwQCY3gJAJEDAgUCYmEFAXgEAmN2CQCRAwIFAmJhBQF2BAJkRgkAzAgCCQC2AgEJAQJiRgEFAmN3CQDMCAIJALYCAQkBAmJGAQUCY3gFA25pbAQCZUYJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmN2AhBpbnZhbGlkIGxwIGFzc2V0CHF1YW50aXR5BAJiUwkBAmRFAQUCZEYEAmJSCQC4AgIFAmJTCQC8AgMJALYCAQUCaGIFAmJTBQJlRgQCaGMDCQAAAgUCZkkFAmN3AAADCQAAAgUCZkkFAmN4AAEJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCaGQJAQJlcwMFAmRGBQJoYwUCYlIEAmhlCQC4AgIJAJEDAgUCZEYFAmhjBQJoZAQCaGYJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC4AgIFAmhlBQFmBQNuaWwEAmhnCQECY24BBQJoZgQCZlMIBQJoZwJfMQQCY3AIBQJoZwJfMgkAlAoCBQNuaWwJAJQKAgUCZlMFAmNwAmRWARxnZXRPbmVUa25WMldpdGhCb251c1JFQURPTkxZAgJmSQJoYgQCYmEJAQJhUwAEAmN3CQCRAwIFAmJhBQF3BAJjeAkAkQMCBQJiYQUBeAQCY3YJAJEDAgUCYmEFAXYEAmNDCQECYkYBBQJjdwQCY0UJAQJiRgEFAmN4BAJoaAoAAmZSCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZkkJAMwIAgUCaGIFA25pbAUDbmlsAwkAAQIFAmZSAgooSW50LCBJbnQpBQJmUgkAAgEJAKwCAgkAAwEFAmZSAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJmUwgFAmhoAl8xBAJjcAgFAmhoAl8yBAJkawkBAmNxBAIABQJjdgUCaGIFBHRoaXMEAmNNCAUCZGsCXzEEAmNOCAUCZGsCXzIEAmhpCQBkAgUCY00FAmNOBAJmRwMJAAACBQJoaQAAAwkAAAIFAmZTAAAAAAkAAgECF2JvbnVzIGNhbGN1bGF0aW9uIGVycm9yCQBrAwkAZQIFAmZTBQJoaQUBYQUCaGkJAJQKAgUDbmlsCQCVCgMFAmZTBQJjcAUCZkcCZFYBCWdldE5vTGVzcwICaGoCaGsEAmRrCQECZmYBBQJkVgQCY00IBQJkawJfMQQCY04IBQJkawJfMgQCY1kIBQJkawJfMwQCY3MIBQJkawJfNAQCY08IBQJkawJfNQMJAGYCBQJoagUCY00JAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCY00CAyA8IAkApAMBBQJoagMJAGYCBQJoawUCY04JAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJjTgIDIDwgCQCkAwEFAmhrBAJlTwkBAmVIAwkAtgIBAAAJALYCAQAACQC2AgEFAmNZBAJobAkA/AcEBQJhTgIEYnVybgkAzAgCBQJjWQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjcwUCY1kFA25pbAMJAAACBQJobAUCaGwEAmhtCQECZVADCQEBLQEFAmNNCQEBLQEFAmNOAAAEAmdnCAUCaG0CXzEEAmVHCAUCaG0CXzIEAmdoCQECZVQCBQJlTwUCZUcDCQAAAgUCZ2gFAmdoCQDOCAIFAmNPBQJnZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkVgENdW5zdGFrZUFuZEdldAECY28EAmhuAwkBAiE9AgkAkAMBCAUCZFYIcGF5bWVudHMAAAkAAgECDU5vIHBtbnRzIGV4cGQGAwkAAAIFAmhuBQJobgQCY2UJAQJhUwAEAmhvCQECYmsABAJnQQkA2QQBCQCRAwIFAmNlBQF2BAJocAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaG8FAUMCCldyIHN0IGFkZHIEAmVPCQECZUgDCQC2AgEAAAkAtgIBAAAJALYCAQAABAJocQkA/AcEBQJocAIHdW5zdGFrZQkAzAgCCQDYBAEFAmdBCQDMCAIFAmNvBQNuaWwFA25pbAMJAAACBQJocQUCaHEEAmRrCQECY3EECQDYBAEIBQJkVg10cmFuc2FjdGlvbklkCQDYBAEFAmdBBQJjbwgFAmRWBmNhbGxlcgQCY00IBQJkawJfMQQCY04IBQJkawJfMgQCY0EJAQ1wYXJzZUludFZhbHVlAQgFAmRrAl85BAJjTwgFAmRrA18xMAQCaHIDAwkBAmFQAAYJAAACBQJjQQUBcwkAAgEJAKwCAgIJQmxvY2tlZDogCQCkAwEFAmNBBgMJAAACBQJocgUCaHIEAmhzCQD8BwQFAmFOAgRidXJuCQDMCAIFAmNvBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmdBBQJjbwUDbmlsAwkAAAIFAmhzBQJocwQCaHQJAQJlUAMJAQEtAQUCY00JAQEtAQUCY04AAAQCZ2cIBQJodAJfMQQCZUcIBQJodAJfMgQCZ2gJAQJlVAIFAmVPBQJlRwMJAAACBQJnaAUCZ2gJAM4IAgUCY08FAmdnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRWARN1bnN0YWtlQW5kR2V0Tm9MZXNzAwJodQJodgJoawQCZ1YDCQECYVAABgkAAAIFAmJlBQFzBAJnSwkAzAgCAwkBASEBBQJnVgYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkVghwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdLBQJnSwQCZU8JAQJlSAMJALYCAQAACQC2AgEAAAkAtgIBAAAEAmhxCQD8BwQFAmJtAgd1bnN0YWtlCQDMCAIJANgEAQUCYmYJAMwIAgUCaHUFA25pbAUDbmlsAwkAAAIFAmhxBQJocQQCaHcJAQJjcQQJANgEAQgFAmRWDXRyYW5zYWN0aW9uSWQJANgEAQUCYmYFAmh1CAUCZFYGY2FsbGVyBAJjTQgFAmh3Al8xBAJjTggFAmh3Al8yBAJjTwgFAmh3A18xMAQCaHgJAMwIAgMJAGcCBQJjTQUCaHYGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaHYFA25pbAIACQDMCAIDCQBnAgUCY04FAmhrBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaGsFA25pbAIABQNuaWwDCQAAAgUCaHgFAmh4BAJobAkA/AcEBQJhTgIEYnVybgkAzAgCBQJodQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiZgUCaHUFA25pbAMJAAACBQJobAUCaGwEAmh5CQECZVADCQEBLQEFAmNNCQEBLQEFAmNOAAAEAmdnCAUCaHkCXzEEAmVHCAUCaHkCXzIEAmdoCQECZVQCBQJlTwUCZUcDCQAAAgUCZ2gFAmdoCQDOCAIFAmNPBQJnZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkVgEVdW5zdGFrZUFuZEdldE9uZVRrblYyAwJodQJmSQJmSgQCZ0kKAAJmUgkA/AcEBQJhTgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZSAgdCb29sZWFuBQJmUgkAAgEJAKwCAgkAAwEFAmZSAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnVgMDCQECYVAABgkAAAIFAmJlBQFzBgUCZ0kEAmdLCQDMCAIDAwkBASEBBQJnVgYJAQJnbAEFAmRWBgkBAmFLAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZFYIcGF5bWVudHMAAAYJAQJhSwECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdLBQJnSwQCY2UJAQJhUwAEAmhvCQECYmsABAJnQQkA2QQBCQCRAwIFAmNlBQF2BAJocAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaG8FAUMCCldyIHN0IGFkZHIEAmhxCQD8BwQFAmhwAgd1bnN0YWtlCQDMCAIJANgEAQUCZ0EJAMwIAgUCaHUFA25pbAUDbmlsAwkAAAIFAmhxBQJocQQCaHoJAQJmSAYFAmZJBQJmSgkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ0EFAmh1BQNuaWwIBQJkVgZjYWxsZXIIBQJkVgxvcmlnaW5DYWxsZXIIBQJkVg10cmFuc2FjdGlvbklkBAJjTwgFAmh6Al8xBAJmVAgFAmh6Al8yCQCUCgIFAmNPBQJmVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkVgEccHV0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICaEECaEIEAmJhCQECYVMABAJjdwkAkQMCBQJiYQUBdwQCY3gJAJEDAgUCYmEFAXgEAmN2CQCRAwIFAmJhBQF2BAJoQwkBAmZsBQUCaEEFAmhCAgACAAYEAmZCCAUCaEMCXzEEAmNPCAUCaEMCXzIEAmNwCAUCaEMCXzMEAmZHCAUCaEMCXzQJAJQKAgUDbmlsCQCVCgMFAmZCBQJjcAUCZkcCZFYBIXB1dE9uZVRrblYyV2l0aG91dFRha2VGZWVSRUFET05MWQICaEECaEIEAmJhCQECYVMABAJjdwkAkQMCBQJiYQUBdwQCY3gJAJEDAgUCYmEFAXgEAmN2CQCRAwIFAmJhBQF2BAJoRAkBAmZsBQUCaEEFAmhCAgACAAcEAmZCCAUCaEQCXzEEAmNPCAUCaEQCXzIEAmNwCAUCaEQCXzMEAmZHCAUCaEQCXzQJAJQKAgUDbmlsCQCVCgMFAmZCBQJjcAUCZkcCZFYBCGFjdGl2YXRlAgJoRQJoRgMJAQIhPQIJAKUIAQgFAmRWBmNhbGxlcgkApQgBBQJhTgkAAgECBmRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZQAFAmhFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZgAFAmhGBQNuaWwCB3N1Y2Nlc3MCZFYBBHNldFMCAmhHAmhyAwkBAiE9AgkApQgBCAUCZFYGY2FsbGVyCQECYUcCBQR0aGlzCQECYWgABQJnawkAzAgCCQELU3RyaW5nRW50cnkCBQJoRwUCaHIFA25pbAJkVgEEc2V0SQICaEcCaHIDCQECIT0CCQClCAEIBQJkVgZjYWxsZXIJAQJhRwIFBHRoaXMJAQJhaAAFAmdrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJoRwUCaHIFA25pbAJkVgEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYVMAAmRWARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJiRwkAlAoCBQNuaWwJAQJiRgEFAmJHAmRWARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJiWQJiWgJjZAQCaEgJAQJjYwMFAmJZBQJiWgUCY2QJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJoSAAACQDMCAIJAKYDAQkAkQMCBQJoSAABCQDMCAIJAKYDAQkAkQMCBQJoSAACBQNuaWwCZFYBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUwCaEkJAJQKAgUDbmlsCQEBSwIJAKcDAQUBTAUCaEkCZFYBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQCmAwEJAQFIAgUBSQUBSgJkVgEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiSQJiSgkAlAoCBQNuaWwJAKYDAQkBAmJIAgkApwMBBQJiSQkApwMBBQJiSgJkVgEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmNyAmJOAmNRAmNSAmNTAmNUAmhKAmNVAmNWCQCUCgIFA25pbAkBAmNQDQUCY3IFAmJOBQJjUQUCY1IFAmNTBQJjVAUCaEoFAmNVBQJjVgYHAAACAAJkVgEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmNyAmhLAmN0AmhKBAJkawkBAmNxBAUCY3IFAmhLBQJjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCaEoJAJQKAgUDbmlsCQCcCgoIBQJkawJfMQgFAmRrAl8yCAUCZGsCXzMIBQJkawJfNAgFAmRrAl81CAUCZGsCXzYIBQJkawJfNwkApgMBCAUCZGsCXzgIBQJkawJfOQgFAmRrA18xMAJkVgEOZ2V0RmVlUkVBRE9OTFkACQCUCgIFA25pbAUCYWoBAmhMAQJoTQAEAmhOBAJhRQkBAmdpAAMJAAECBQJhRQIKQnl0ZVZlY3RvcgQCZ20FAmFFBQJnbQMJAAECBQJhRQIEVW5pdAgFAmhMD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJhRQUCaEwDCQABAgUCYUUCBU9yZGVyBAJlVwUCYUUEAmhPCQECYVEABAJoUAkBAmVWAQUCZVcEAmhRCQD0AwMIBQJlVwlib2R5Qnl0ZXMJAJEDAggFAmVXBnByb29mcwAACAUCZVcPc2VuZGVyUHVibGljS2V5BAJoUgkA9AMDCAUCZVcJYm9keUJ5dGVzCQCRAwIIBQJlVwZwcm9vZnMAAQUCaE8DAwMFAmhQBQJoUQcFAmhSBwYJAQJhegMFAmhQBQJoUQUCaFIDCQABAgUCYUUCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJkSQUCYUUEAmhTCQD2AwEJAQV2YWx1ZQEIBQJkSQZzY3JpcHQEAmhUCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYU4JAQJheAAEAmhVCQDxBwEFBHRoaXMDAwkAAAIFAmhUBQJoUwkBAiE9AgUCaFUFAmhTBwYJAPQDAwgFAmhMCWJvZHlCeXRlcwkAkQMCCAUCaEwGcHJvb2ZzAAAFAmhOCQD0AwMIBQJoTAlib2R5Qnl0ZXMJAJEDAggFAmhMBnByb29mcwAABQJoTgbg8jE=", "chainId": 84, "height": 2348682, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BsgQVmXGwdsTwrTjiwujhX4ryJJLCbNhnSEYiBPew8U9 Next: 8k3LQzJ8LDhCwmaQcvE5NbCdeHp6USdFWxe2NppqWEas Diff:
OldNewDifferences
500500 }
501501
502502
503-func ej (dF,dV,ek) = {
504- let el = g
505- let em = dF[if ((dV == 0))
503+func ej (dF) = {
504+ let ek = g
505+ let dG = dF[0]
506+ let dH = dF[1]
507+ let el = parseBigIntValue(l)
508+ let dJ = (parseBigIntValue(aO) * el)
509+ let dI = (dG + dH)
510+ if ((dI == e))
511+ then e
512+ else {
513+ let dK = (dJ * ek)
514+ let dL = (((dG * dH) * ek) * ek)
515+ let em = ((dK * dI) / el)
516+ let en = (dK - el)
517+ let eo = (ek + f)
518+ func dT (dU,ep) = {
519+ let eq = dU
520+ let dP = eq._1
521+ let ei = eq._2
522+ if ((ei != unit))
523+ then dU
524+ else {
525+ let dS = (((dP * dP) * dP) / dL)
526+ let dW = (((em + (dS * ek)) * dP) / (((en * dP) / el) + (eo * dS)))
527+ let dY = S((dW - value(dP)))
528+ if ((f >= dY))
529+ then $Tuple2(dW, ep)
530+ else $Tuple2(dW, unit)
531+ }
532+ }
533+
534+ let dZ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
535+ let er = {
536+ let eb = dZ
537+ let ec = size(eb)
538+ let ed = $Tuple2(dI, unit)
539+ func ee (ef,eg) = if ((eg >= ec))
540+ then ef
541+ else dT(ef, eb[eg])
542+
543+ func eh (ef,eg) = if ((eg >= ec))
544+ then ef
545+ else throw("List size exceeds 15")
546+
547+ eh(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
548+ }
549+ let dP = er._1
550+ let ei = er._2
551+ if ((ei != unit))
552+ then dP
553+ else throw(("D calculation error, D = " + toString(dP)))
554+ }
555+ }
556+
557+
558+func es (dF,dV,et) = {
559+ let ek = g
560+ let eu = dF[if ((dV == 0))
506561 then 1
507562 else 0]
508- let en = parseBigIntValue(l)
509- let dJ = (parseBigIntValue(aO) * en)
510- let dI = em
511- let dK = (dJ * el)
512- let eo = (((((ek * ek) / (em * el)) * ek) * en) / (dK * el))
513- let ep = ((dI + ((ek * en) / dK)) - ek)
514- func dT (dU,eq) = {
515- let er = dU
516- let es = er._1
517- let ei = er._2
563+ let el = parseBigIntValue(l)
564+ let dJ = (parseBigIntValue(aO) * el)
565+ let dI = eu
566+ let dK = (dJ * ek)
567+ let ev = (((((et * et) / (eu * ek)) * et) * el) / (dK * ek))
568+ let ew = ((dI + ((et * el) / dK)) - et)
569+ func dT (dU,ep) = {
570+ let ex = dU
571+ let ey = ex._1
572+ let ei = ex._2
518573 if ((ei != unit))
519574 then dU
520575 else {
521- let et = (((es * es) + eo) / ((g * es) + ep))
522- let eu = S((et - value(es)))
523- if ((f >= eu))
524- then $Tuple2(et, eq)
525- else $Tuple2(et, unit)
576+ let ez = (((ey * ey) + ev) / ((g * ey) + ew))
577+ let eA = S((ez - value(ey)))
578+ if ((f >= eA))
579+ then $Tuple2(ez, ep)
580+ else $Tuple2(ez, unit)
526581 }
527582 }
528583
529584 let dZ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
530- let ev = {
585+ let eB = {
531586 let eb = dZ
532587 let ec = size(eb)
533- let ed = $Tuple2(ek, unit)
588+ let ed = $Tuple2(et, unit)
534589 func ee (ef,eg) = if ((eg >= ec))
535590 then ef
536591 else dT(ef, eb[eg])
541596
542597 eh(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
543598 }
544- let es = ev._1
545- let ei = ev._2
599+ let ey = eB._1
600+ let ei = eB._2
546601 if ((ei != unit))
547- then es
548- else throw(("Y calculation error, Y = " + toString(es)))
602+ then ey
603+ else throw(("Y calculation error, Y = " + toString(ey)))
549604 }
550605
551606
552-func ew (ex,ey,ez) = {
553- let eA = fraction(dE([ex, ey]), c, ez)
554- eA
607+func eC (eD,eE,eF) = {
608+ let eG = fraction(dE([eD, eE]), c, eF)
609+ eG
555610 }
556611
557612
558-func eB (eC,eD,eE) = {
559- let eF = (toBigInt(bF(aY(bg))) - eC)
560- let eG = (toBigInt(bF(aY(bh))) - eD)
561- let eH = (toBigInt(value(assetInfo(bf)).quantity) - eE)
562- let eI = ew(eF, eG, eH)
563- eI
613+func eH (eI,eJ,eK) = {
614+ let eL = (toBigInt(bF(aY(bg))) - eI)
615+ let eM = (toBigInt(bF(aY(bh))) - eJ)
616+ let eN = (toBigInt(value(assetInfo(bf)).quantity) - eK)
617+ let eO = eC(eL, eM, eN)
618+ eO
564619 }
565620
566621
567-func eJ (eK,eL,eE) = {
568- let eF = (bF(aY(bg)) + eK)
569- let eG = (bF(aY(bh)) + eL)
570- let eH = (value(assetInfo(bf)).quantity + eE)
571- let eA = ew(toBigInt(eF), toBigInt(eG), toBigInt(eH))
572- let eM = [IntegerEntry(al, height), StringEntry(ak, toString(eA))]
573- $Tuple2(eM, eA)
622+func eP (eQ,eR,eK) = {
623+ let eL = (bF(aY(bg)) + eQ)
624+ let eM = (bF(aY(bh)) + eR)
625+ let eN = (value(assetInfo(bf)).quantity + eK)
626+ let eG = eC(toBigInt(eL), toBigInt(eM), toBigInt(eN))
627+ let eS = [IntegerEntry(al, height), StringEntry(ak, toString(eG))]
628+ $Tuple2(eS, eG)
574629 }
575630
576631
577-func eN (eO,eA) = if ((eA >= eO))
632+func eT (eU,eG) = if ((eG >= eU))
578633 then true
579634 else aK("updated DLp lower than current DLp")
580635
581636
582-func eP (eQ) = {
583- let eR = eQ.amount
584- let eS = fraction(eQ.amount, eQ.price, a, FLOOR)
585- let eT = if ((eQ.orderType == Buy))
586- then $Tuple2(eR, -(eS))
587- else $Tuple2(-(eR), eS)
588- let eK = eT._1
589- let eL = eT._2
637+func eV (eW) = {
638+ let eX = eW.amount
639+ let eY = fraction(eW.amount, eW.price, a, FLOOR)
640+ let eZ = if ((eW.orderType == Buy))
641+ then $Tuple2(eX, -(eY))
642+ else $Tuple2(-(eX), eY)
643+ let eQ = eZ._1
644+ let eR = eZ._2
590645 if (if (if (aP())
591646 then true
592647 else (be == r))
593648 then true
594649 else (be == s))
595650 then throw("Admin blocked")
596- else if (if ((eQ.assetPair.amountAsset != bg))
651+ else if (if ((eW.assetPair.amountAsset != bg))
597652 then true
598- else (eQ.assetPair.priceAsset != bh))
653+ else (eW.assetPair.priceAsset != bh))
599654 then throw("Wr assets")
600655 else {
601- let eU = parseBigIntValue(getStringValue(this, ak))
602- let eV = eJ(eK, eL, 0)
603- let eW = eV._1
604- let eX = eV._2
605- let eY = (eX >= eU)
606- eY
656+ let fa = parseBigIntValue(getStringValue(this, ak))
657+ let fb = eP(eQ, eR, 0)
658+ let fc = fb._1
659+ let fd = fb._2
660+ let fe = (fd >= fa)
661+ fe
607662 }
608663 }
609664
610665
611-func eZ (dV) = if ((size(dV.payments) != 1))
666+func ff (dV) = if ((size(dV.payments) != 1))
612667 then throw("1 pmnt exp")
613668 else {
614- let fa = value(dV.payments[0])
615- let cs = value(fa.assetId)
616- let cY = fa.amount
669+ let fg = value(dV.payments[0])
670+ let cs = value(fg.assetId)
671+ let cY = fg.amount
617672 let dk = cq(toBase58String(dV.transactionId), toBase58String(cs), cY, dV.caller)
618673 let cM = dk._1
619674 let cN = dk._2
627682 }
628683
629684
630-func fb (fc,ac,fd,fe,bN,cV,cW,cX,cY,cZ) = {
631- let dk = cP(ac, bN, value(fd).amount, value(fd).assetId, value(fe).amount, value(fe).assetId, fc, (ac == ""), cV, cW, cX, cY, cZ)
685+func fh (fi,ac,fj,fk,bN,cV,cW,cX,cY,cZ) = {
686+ let dk = cP(ac, bN, value(fj).amount, value(fj).assetId, value(fk).amount, value(fk).assetId, fi, (ac == ""), cV, cW, cX, cY, cZ)
632687 let cA = parseIntValue(dk._8)
633688 if (if (if (aP())
634689 then true
640695 }
641696
642697
643-func ff (fg,cs,cu,ac,fh) = {
698+func fl (fm,cs,cu,ac,fn) = {
644699 let ba = aS()
645700 let cw = ba[w]
646701 let cx = ba[x]
647702 let cv = ba[v]
648703 let de = parseIntValue(ba[y])
649704 let df = parseIntValue(ba[z])
650- let eH = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
651- let fi = if ((eH > e))
705+ let eN = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
706+ let fo = if ((eN > e))
652707 then true
653708 else throw("initial deposit requires all coins")
654- if ((fi == fi))
709+ if ((fo == fo))
655710 then {
656711 let cC = bF(cw)
657712 let cE = bF(cx)
658- let fj = if ((ac == ""))
713+ let fp = if ((ac == ""))
659714 then $Tuple2(cC, cE)
660715 else if ((cs == cw))
661- then if ((fg > cC))
716+ then if ((fm > cC))
662717 then throw("invalid payment amount")
663- else $Tuple2((cC - fg), cE)
718+ else $Tuple2((cC - fm), cE)
664719 else if ((cs == cx))
665- then if ((fg > cE))
720+ then if ((fm > cE))
666721 then throw("invalid payment amount")
667- else $Tuple2(cC, (cE - fg))
722+ else $Tuple2(cC, (cE - fm))
668723 else throw("wrong pmtAssetId")
669- let fk = fj._1
670- let fl = fj._2
671- let fm = if ((cs == cw))
672- then $Tuple2(fg, 0)
673- else if ((cs == cx))
674- then $Tuple2(0, fg)
675- else throw("invalid payment")
676- let fn = fm._1
677- let fo = fm._2
678- let fp = if (fh)
679- then $Tuple3(cn(fn)._1, cn(fo)._1, cn(fg)._2)
680- else $Tuple3(fn, fo, 0)
681724 let fq = fp._1
682725 let fr = fp._2
683- let cp = fp._3
684- let fs = (fk + fq)
685- let ft = (fl + fr)
686- let bS = dE([toBigInt(fk), toBigInt(fl)])
687- let bR = dE([toBigInt(fs), toBigInt(ft)])
688- let fu = if ((bR > bS))
726+ let fs = if ((cs == cw))
727+ then $Tuple2(fm, 0)
728+ else if ((cs == cx))
729+ then $Tuple2(0, fm)
730+ else throw("invalid payment")
731+ let ft = fs._1
732+ let fu = fs._2
733+ let fv = if (fn)
734+ then $Tuple3(cn(ft)._1, cn(fu)._1, cn(fm)._2)
735+ else $Tuple3(ft, fu, 0)
736+ let fw = fv._1
737+ let fx = fv._2
738+ let cp = fv._3
739+ let fy = (fq + fw)
740+ let fz = (fr + fx)
741+ let bS = dE([toBigInt(fq), toBigInt(fr)])
742+ let bR = dE([toBigInt(fy), toBigInt(fz)])
743+ let fA = if ((bR > bS))
689744 then true
690745 else throw()
691- if ((fu == fu))
746+ if ((fA == fA))
692747 then {
693- let fv = fraction(eH, (bR - bS), bS)
694- let cH = K(bH(H(ft, df), H(fs, de)), a)
695- let dD = [IntegerEntry(W(), cH), IntegerEntry(X(height, lastBlock.timestamp), cH), StringEntry(aa(cu, ac), bq(fn, fo, toInt(fv), cH, 0, 0, height, lastBlock.timestamp, 0, 0))]
696- let fw = fraction(fl, a, fk)
697- let fx = fraction(fg, a, (fw + a))
698- let fy = (fg - fx)
699- let fz = fraction(eH, toBigInt(fy), toBigInt(fl))
700- let fA = toInt(fraction((fv - fz), b, fz))
701- $Tuple4(toInt(fv), dD, cp, fA)
748+ let fB = fraction(eN, (bR - bS), bS)
749+ let cH = K(bH(H(fz, df), H(fy, de)), a)
750+ let dD = [IntegerEntry(W(), cH), IntegerEntry(X(height, lastBlock.timestamp), cH), StringEntry(aa(cu, ac), bq(ft, fu, toInt(fB), cH, 0, 0, height, lastBlock.timestamp, 0, 0))]
751+ let fC = fraction(fr, a, fq)
752+ let fD = fraction(fm, a, (fC + a))
753+ let fE = (fm - fD)
754+ let fF = fraction(eN, toBigInt(fE), toBigInt(fr))
755+ let fG = toInt(fraction((fB - fF), b, fF))
756+ $Tuple4(toInt(fB), dD, cp, fG)
702757 }
703758 else throw("Strict value is not equal to itself.")
704759 }
706761 }
707762
708763
709-func fB (fC,fD,fE,fc,fF,fG) = {
764+func fH (fI,fJ,fK,fi,fL,fM) = {
710765 let ba = aS()
711766 let cv = ba[v]
712767 let cw = ba[w]
713768 let cx = ba[x]
714- let fH = parseIntValue(ba[y])
715- let fI = parseIntValue(ba[z])
716- let fJ = ba[u]
717- let cu = if ((fc == bp))
718- then fF
719- else fc
720- let fa = value(fE[0])
721- let cs = value(fa.assetId)
722- let cY = fa.amount
723- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(cY))
724- let cr = toBase58String(fG)
769+ let fN = parseIntValue(ba[y])
770+ let fO = parseIntValue(ba[z])
771+ let fP = ba[u]
772+ let cu = if ((fi == bp))
773+ then fL
774+ else fi
775+ let fg = value(fK[0])
776+ let cs = value(fg.assetId)
777+ let cY = fg.amount
778+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(cY))
779+ let cr = toBase58String(fM)
725780 if ((cv != toBase58String(cs)))
726781 then throw("Wrong LP")
727782 else {
728783 let cC = bF(cw)
729784 let cE = bF(cx)
730- let fK = {
731- let fL = invoke(this, "getOneTknV2READONLY", [fC, cY], nil)
732- if ($isInstanceOf(fL, "(Int, Int)"))
733- then fL
734- else throw(($getType(fL) + " couldn't be cast to (Int, Int)"))
785+ let fQ = {
786+ let fR = invoke(this, "getOneTknV2READONLY", [fI, cY], nil)
787+ if ($isInstanceOf(fR, "(Int, Int)"))
788+ then fR
789+ else throw(($getType(fR) + " couldn't be cast to (Int, Int)"))
735790 }
736- if ((fK == fK))
791+ if ((fQ == fQ))
737792 then {
738- let cp = fK._2
739- let fM = fK._1
740- let fN = if (if ((fD > 0))
741- then (fD > fM)
793+ let cp = fQ._2
794+ let fS = fQ._1
795+ let fT = if (if ((fJ > 0))
796+ then (fJ > fS)
742797 else false)
743- then aK(makeString(["amount to receive is less than ", toString(fD)], ""))
744- else fM
745- let fO = if ((fC == cw))
746- then $Tuple4(fN, 0, ((cC - fN) - cp), cE)
747- else if ((fC == cx))
748- then $Tuple4(0, fN, cC, ((cE - fN) - cp))
798+ then aK(makeString(["amount to receive is less than ", toString(fJ)], ""))
799+ else fS
800+ let fU = if ((fI == cw))
801+ then $Tuple4(fT, 0, ((cC - fT) - cp), cE)
802+ else if ((fI == cx))
803+ then $Tuple4(0, fT, cC, ((cE - fT) - cp))
749804 else throw("invalid out asset id")
750- let fP = fO._1
751- let fQ = fO._2
752- let fs = fO._3
753- let ft = fO._4
754- let fR = bH(H(ft, fI), H(fs, fH))
755- let fS = K(fR, a)
756- let fT = if ((fC == "WAVES"))
805+ let fV = fU._1
806+ let fW = fU._2
807+ let fy = fU._3
808+ let fz = fU._4
809+ let fX = bH(H(fz, fO), H(fy, fN))
810+ let fY = K(fX, a)
811+ let fZ = if ((fI == "WAVES"))
757812 then unit
758- else fromBase58String(fC)
759- let fU = if ((cp > 0))
760- then [ScriptTransfer(aR, cp, fT)]
813+ else fromBase58String(fI)
814+ let ga = if ((cp > 0))
815+ then [ScriptTransfer(aR, cp, fZ)]
761816 else nil
762- let cO = ([ScriptTransfer(cu, fN, fT), StringEntry(ad(toString(cu), cr), bB(fP, fQ, cY, fS, height, lastBlock.timestamp)), IntegerEntry(W(), fS), IntegerEntry(X(height, lastBlock.timestamp), fS)] ++ fU)
817+ let cO = ([ScriptTransfer(cu, fT, fZ), StringEntry(ad(toString(cu), cr), bB(fV, fW, cY, fY, height, lastBlock.timestamp)), IntegerEntry(W(), fY), IntegerEntry(X(height, lastBlock.timestamp), fY)] ++ ga)
763818 if ((cO == cO))
764819 then {
765- let fV = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
766- if ((fV == fV))
820+ let gb = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
821+ if ((gb == gb))
767822 then {
768- let fW = {
769- let fX = if ((this == aR))
823+ let gc = {
824+ let gd = if ((this == aR))
770825 then 0
771826 else cp
772- let fY = if ((aW(fC) == bg))
827+ let ge = if ((aW(fI) == bg))
773828 then true
774829 else false
775- if (fY)
776- then $Tuple2(-((fM + fX)), 0)
777- else $Tuple2(0, -((fM + fX)))
830+ if (ge)
831+ then $Tuple2(-((fS + gd)), 0)
832+ else $Tuple2(0, -((fS + gd)))
778833 }
779- let eK = fW._1
780- let eL = fW._2
781- let fZ = eJ(eK, eL, 0)
782- let ga = fZ._1
783- let eA = fZ._2
784- let gb = eN(eI, eA)
785- if ((gb == gb))
786- then $Tuple2((cO ++ ga), fN)
834+ let eQ = gc._1
835+ let eR = gc._2
836+ let gf = eP(eQ, eR, 0)
837+ let gg = gf._1
838+ let eG = gf._2
839+ let gh = eT(eO, eG)
840+ if ((gh == gh))
841+ then $Tuple2((cO ++ gg), fT)
787842 else throw("Strict value is not equal to itself.")
788843 }
789844 else throw("Strict value is not equal to itself.")
795850 }
796851
797852
798-func gc () = {
853+func gi () = {
799854 let aE = getString(U())
800855 if ($isInstanceOf(aE, "String"))
801856 then {
808863 }
809864
810865
811-func gd () = {
866+func gj () = {
812867 let aE = getString(V())
813868 if ($isInstanceOf(aE, "String"))
814869 then {
821876 }
822877
823878
824-let ge = throw("Permission denied")
879+let gk = throw("Permission denied")
825880
826-func gf (dV) = {
827- let aE = gc()
881+func gl (dV) = {
882+ let aE = gi()
828883 if ($isInstanceOf(aE, "ByteVector"))
829884 then {
830- let gg = aE
831- (dV.callerPublicKey == gg)
885+ let gm = aE
886+ (dV.callerPublicKey == gm)
832887 }
833888 else if ($isInstanceOf(aE, "Unit"))
834889 then (dV.caller == this)
836891 }
837892
838893
839-func gh (dV) = {
840- let aE = gc()
894+func gn (dV) = {
895+ let aE = gi()
841896 if ($isInstanceOf(aE, "ByteVector"))
842897 then {
843- let gg = aE
844- if ((dV.callerPublicKey == gg))
898+ let gm = aE
899+ if ((dV.callerPublicKey == gm))
845900 then true
846- else ge
901+ else gk
847902 }
848903 else if ($isInstanceOf(aE, "Unit"))
849904 then if ((dV.caller == this))
850905 then true
851- else ge
906+ else gk
852907 else throw("Match error")
853908 }
854909
855910
856911 @Callable(dV)
857912 func constructor (T) = {
858- let eo = gh(dV)
859- if ((eo == eo))
913+ let ev = gn(dV)
914+ if ((ev == ev))
860915 then [StringEntry(T(), T)]
861916 else throw("Strict value is not equal to itself.")
862917 }
864919
865920
866921 @Callable(dV)
867-func setManager (gi) = {
868- let eo = gh(dV)
869- if ((eo == eo))
922+func setManager (go) = {
923+ let ev = gn(dV)
924+ if ((ev == ev))
870925 then {
871- let gj = fromBase58String(gi)
872- if ((gj == gj))
873- then [StringEntry(V(), gi)]
926+ let gp = fromBase58String(go)
927+ if ((gp == gp))
928+ then [StringEntry(V(), go)]
874929 else throw("Strict value is not equal to itself.")
875930 }
876931 else throw("Strict value is not equal to itself.")
880935
881936 @Callable(dV)
882937 func confirmManager () = {
883- let cm = gd()
884- let gk = if (isDefined(cm))
938+ let cm = gj()
939+ let gq = if (isDefined(cm))
885940 then true
886941 else throw("No pending manager")
887- if ((gk == gk))
942+ if ((gq == gq))
888943 then {
889- let gl = if ((dV.callerPublicKey == value(cm)))
944+ let gr = if ((dV.callerPublicKey == value(cm)))
890945 then true
891946 else throw("You are not pending manager")
892- if ((gl == gl))
947+ if ((gr == gr))
893948 then [StringEntry(U(), toBase58String(value(cm))), DeleteEntry(V())]
894949 else throw("Strict value is not equal to itself.")
895950 }
899954
900955
901956 @Callable(dV)
902-func put (gm,gn) = {
903- let go = bk()
904- let gp = valueOrErrorMessage(addressFromString(go[C]), "Wr st addr")
905- let gq = valueOrErrorMessage(addressFromString(go[E]), "Wr sl addr")
906- if ((0 > gm))
957+func put (gs,gt) = {
958+ let gu = bk()
959+ let gv = valueOrErrorMessage(addressFromString(gu[C]), "Wr st addr")
960+ let gw = valueOrErrorMessage(addressFromString(gu[E]), "Wr sl addr")
961+ if ((0 > gs))
907962 then throw("Wrong slippage")
908963 else if ((size(dV.payments) != 2))
909964 then throw("2 pmnts expd")
910965 else {
911- let gr = toBigInt(value(dV.payments[0]).amount)
912- let gs = toBigInt(value(dV.payments[1]).amount)
913- let eI = eB(gr, gs, toBigInt(0))
914- if ((eI == eI))
966+ let gx = toBigInt(value(dV.payments[0]).amount)
967+ let gy = toBigInt(value(dV.payments[1]).amount)
968+ let eO = eH(gx, gy, toBigInt(0))
969+ if ((eO == eO))
915970 then {
916- let gt = fb(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gm, true, false, true, 0, "")
917- let dx = gt._2
918- let gu = gt._7
919- let cO = gt._9
920- let dy = gt._10
921- let dz = gt._11
922- let cw = gt._12
923- let cx = gt._13
971+ let gz = fh(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gs, true, false, true, 0, "")
972+ let dx = gz._2
973+ let gA = gz._7
974+ let cO = gz._9
975+ let dy = gz._10
976+ let dz = gz._11
977+ let cw = gz._12
978+ let cx = gz._13
924979 let dk = invoke(aN, "emit", [dx], nil)
925980 if ((dk == dk))
926981 then {
927- let gv = {
982+ let gB = {
928983 let aE = dk
929984 if ($isInstanceOf(aE, "Address"))
930985 then {
931- let gw = aE
932- invoke(gw, "emit", [dx], nil)
986+ let gC = aE
987+ invoke(gC, "emit", [dx], nil)
933988 }
934989 else unit
935990 }
936- if ((gv == gv))
991+ if ((gB == gB))
937992 then {
938- let gx = if ((dy > 0))
939- then invoke(gq, "put", nil, [AttachedPayment(cw, dy)])
993+ let gD = if ((dy > 0))
994+ then invoke(gw, "put", nil, [AttachedPayment(cw, dy)])
940995 else nil
941- if ((gx == gx))
996+ if ((gD == gD))
942997 then {
943- let gy = if ((dz > 0))
944- then invoke(gq, "put", nil, [AttachedPayment(cx, dz)])
998+ let gE = if ((dz > 0))
999+ then invoke(gw, "put", nil, [AttachedPayment(cx, dz)])
9451000 else nil
946- if ((gy == gy))
1001+ if ((gE == gE))
9471002 then {
948- let gz = if (gn)
1003+ let gF = if (gt)
9491004 then {
950- let gA = invoke(gp, "stake", nil, [AttachedPayment(gu, dx)])
951- if ((gA == gA))
1005+ let gG = invoke(gv, "stake", nil, [AttachedPayment(gA, dx)])
1006+ if ((gG == gG))
9521007 then nil
9531008 else throw("Strict value is not equal to itself.")
9541009 }
955- else [ScriptTransfer(dV.caller, dx, gu)]
956- let gB = eJ(0, 0, 0)
957- let ga = gB._1
958- let eA = gB._2
959- let gb = eN(eI, eA)
960- if ((gb == gb))
961- then ((cO ++ gz) ++ ga)
1010+ else [ScriptTransfer(dV.caller, dx, gA)]
1011+ let gH = eP(0, 0, 0)
1012+ let gg = gH._1
1013+ let eG = gH._2
1014+ let gh = eT(eO, eG)
1015+ if ((gh == gh))
1016+ then ((cO ++ gF) ++ gg)
9621017 else throw("Strict value is not equal to itself.")
9631018 }
9641019 else throw("Strict value is not equal to itself.")
9761031
9771032
9781033 @Callable(dV)
979-func putOneTknV2 (fD,gn) = {
980- let gC = {
981- let fL = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
982- if ($isInstanceOf(fL, "Boolean"))
983- then fL
984- else throw(($getType(fL) + " couldn't be cast to Boolean"))
1034+func putOneTknV2 (fJ,gt) = {
1035+ let gI = {
1036+ let fR = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1037+ if ($isInstanceOf(fR, "Boolean"))
1038+ then fR
1039+ else throw(($getType(fR) + " couldn't be cast to Boolean"))
9851040 }
986- let gD = if (if (if (aP())
1041+ let gJ = if (if (if (aP())
9871042 then true
9881043 else (be == q))
9891044 then true
9901045 else (be == s))
9911046 then true
992- else gC
993- let gE = [if (if (!(gD))
1047+ else gI
1048+ let gK = [if (if (!(gJ))
9941049 then true
995- else gf(dV))
1050+ else gl(dV))
9961051 then true
9971052 else aK("put operation is blocked by admin"), if ((size(dV.payments) == 1))
9981053 then true
9991054 else aK("exactly 1 payment are expected")]
1000- if ((gE == gE))
1055+ if ((gK == gK))
10011056 then {
10021057 let ba = aS()
10031058 let cw = ba[w]
10041059 let cx = ba[x]
10051060 let cv = fromBase58String(ba[v])
1006- let fH = parseIntValue(ba[y])
1007- let fI = parseIntValue(ba[z])
1061+ let fN = parseIntValue(ba[y])
1062+ let fO = parseIntValue(ba[z])
10081063 let cu = if ((dV.caller == this))
10091064 then dV.originCaller
10101065 else dV.caller
1011- let fa = value(dV.payments[0])
1012- let cs = toBase58String(value(fa.assetId))
1013- let cY = fa.amount
1014- let gF = ff(cY, cs, toString(cu), toBase58String(dV.transactionId), true)
1015- if ((gF == gF))
1066+ let fg = value(dV.payments[0])
1067+ let cs = toBase58String(value(fg.assetId))
1068+ let cY = fg.amount
1069+ let gL = fl(cY, cs, toString(cu), toBase58String(dV.transactionId), true)
1070+ if ((gL == gL))
10161071 then {
1017- let cp = gF._3
1018- let cO = gF._2
1019- let gG = gF._1
1020- let dx = if (if ((fD > 0))
1021- then (fD > gG)
1072+ let cp = gL._3
1073+ let cO = gL._2
1074+ let gM = gL._1
1075+ let dx = if (if ((fJ > 0))
1076+ then (fJ > gM)
10221077 else false)
1023- then aK(makeString(["amount to receive is less than ", toString(fD)], ""))
1024- else gG
1025- let gt = invoke(aN, "emit", [dx], nil)
1026- if ((gt == gt))
1078+ then aK(makeString(["amount to receive is less than ", toString(fJ)], ""))
1079+ else gM
1080+ let gz = invoke(aN, "emit", [dx], nil)
1081+ if ((gz == gz))
10271082 then {
1028- let gv = {
1029- let aE = gt
1083+ let gB = {
1084+ let aE = gz
10301085 if ($isInstanceOf(aE, "Address"))
10311086 then {
1032- let gw = aE
1033- invoke(gw, "emit", [dx], nil)
1087+ let gC = aE
1088+ invoke(gC, "emit", [dx], nil)
10341089 }
10351090 else unit
10361091 }
1037- if ((gv == gv))
1092+ if ((gB == gB))
10381093 then {
1039- let gz = if (gn)
1094+ let gF = if (gt)
10401095 then {
1041- let gA = invoke(bm, "stake", nil, [AttachedPayment(cv, dx)])
1042- if ((gA == gA))
1096+ let gG = invoke(bm, "stake", nil, [AttachedPayment(cv, dx)])
1097+ if ((gG == gG))
10431098 then nil
10441099 else throw("Strict value is not equal to itself.")
10451100 }
10461101 else [ScriptTransfer(dV.caller, dx, cv)]
1047- let fU = if ((cp > 0))
1102+ let ga = if ((cp > 0))
10481103 then [ScriptTransfer(aR, cp, fromBase58String(cs))]
10491104 else nil
1050- let gH = if ((this == aR))
1105+ let gN = if ((this == aR))
10511106 then $Tuple2(0, 0)
10521107 else {
1053- let gI = if ((fa.assetId == bg))
1108+ let gO = if ((fg.assetId == bg))
10541109 then true
10551110 else false
1056- if (gI)
1111+ if (gO)
10571112 then $Tuple2(-(cp), 0)
10581113 else $Tuple2(0, -(cp))
10591114 }
1060- let eK = gH._1
1061- let eL = gH._2
1062- let gJ = eJ(eK, eL, 0)
1063- let ga = gJ._1
1064- let eA = gJ._2
1065- $Tuple2((((cO ++ gz) ++ fU) ++ ga), dx)
1115+ let eQ = gN._1
1116+ let eR = gN._2
1117+ let gP = eP(eQ, eR, 0)
1118+ let gg = gP._1
1119+ let eG = gP._2
1120+ $Tuple2((((cO ++ gF) ++ ga) ++ gg), dx)
10661121 }
10671122 else throw("Strict value is not equal to itself.")
10681123 }
10761131
10771132
10781133 @Callable(dV)
1079-func putForFree (gK) = if ((0 > gK))
1134+func putForFree (gQ) = if ((0 > gQ))
10801135 then throw("Wrong slpg")
10811136 else if ((size(dV.payments) != 2))
10821137 then throw("2 pmnts expd")
10831138 else {
1084- let gL = fb(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gK, false, false, true, 0, "")
1085- let cO = gL._9
1086- let gr = toBigInt(value(dV.payments[0]).amount)
1087- let gs = toBigInt(value(dV.payments[1]).amount)
1088- let eI = eB(gr, gs, toBigInt(0))
1089- if ((eI == eI))
1139+ let gR = fh(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gQ, false, false, true, 0, "")
1140+ let cO = gR._9
1141+ let gx = toBigInt(value(dV.payments[0]).amount)
1142+ let gy = toBigInt(value(dV.payments[1]).amount)
1143+ let eO = eH(gx, gy, toBigInt(0))
1144+ if ((eO == eO))
10901145 then {
1091- let gM = eJ(0, 0, 0)
1092- let ga = gM._1
1093- let eA = gM._2
1094- let gb = eN(eI, eA)
1095- if ((gb == gb))
1096- then (cO ++ ga)
1146+ let gS = eP(0, 0, 0)
1147+ let gg = gS._1
1148+ let eG = gS._2
1149+ let gh = eT(eO, eG)
1150+ if ((gh == gh))
1151+ then (cO ++ gg)
10971152 else throw("Strict value is not equal to itself.")
10981153 }
10991154 else throw("Strict value is not equal to itself.")
11031158
11041159 @Callable(dV)
11051160 func get () = {
1106- let dk = eZ(dV)
1107- let gN = dk._1
1161+ let dk = ff(dV)
1162+ let gT = dk._1
11081163 let cN = dk._2
11091164 let cY = dk._3
11101165 let cs = dk._4
11111166 let cO = dk._5
1112- let ep = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1113- if ((ep == ep))
1167+ let ew = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1168+ if ((ew == ew))
11141169 then {
1115- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(cY))
1116- let gO = eJ(-(gN), -(cN), 0)
1117- let ga = gO._1
1118- let eA = gO._2
1119- let gb = eN(eI, eA)
1120- if ((gb == gb))
1121- then (cO ++ ga)
1170+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(cY))
1171+ let gU = eP(-(gT), -(cN), 0)
1172+ let gg = gU._1
1173+ let eG = gU._2
1174+ let gh = eT(eO, eG)
1175+ if ((gh == gh))
1176+ then (cO ++ gg)
11221177 else throw("Strict value is not equal to itself.")
11231178 }
11241179 else throw("Strict value is not equal to itself.")
11271182
11281183
11291184 @Callable(dV)
1130-func getOneTknV2 (fC,fD) = {
1131- let gC = {
1132- let fL = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1133- if ($isInstanceOf(fL, "Boolean"))
1134- then fL
1135- else throw(($getType(fL) + " couldn't be cast to Boolean"))
1185+func getOneTknV2 (fI,fJ) = {
1186+ let gI = {
1187+ let fR = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1188+ if ($isInstanceOf(fR, "Boolean"))
1189+ then fR
1190+ else throw(($getType(fR) + " couldn't be cast to Boolean"))
11361191 }
1137- let gP = if (if (aP())
1192+ let gV = if (if (aP())
11381193 then true
11391194 else (be == s))
11401195 then true
1141- else gC
1142- let gE = [if (if (!(gP))
1196+ else gI
1197+ let gK = [if (if (!(gV))
11431198 then true
1144- else gf(dV))
1199+ else gl(dV))
11451200 then true
11461201 else aK("get operation is blocked by admin"), if ((size(dV.payments) == 1))
11471202 then true
11481203 else aK("exactly 1 payment are expected")]
1149- if ((gE == gE))
1204+ if ((gK == gK))
11501205 then {
1151- let gQ = fB(fC, fD, dV.payments, dV.caller, dV.originCaller, dV.transactionId)
1152- let cO = gQ._1
1153- let fN = gQ._2
1154- $Tuple2(cO, fN)
1206+ let gW = fH(fI, fJ, dV.payments, dV.caller, dV.originCaller, dV.transactionId)
1207+ let cO = gW._1
1208+ let fT = gW._2
1209+ $Tuple2(cO, fT)
11551210 }
11561211 else throw("Strict value is not equal to itself.")
11571212 }
11601215
11611216 @Callable(dV)
11621217 func refreshDLp () = {
1163- let gR = valueOrElse(getInteger(al), 0)
1164- let gS = if (((height - gR) >= ao))
1218+ let gX = valueOrElse(getInteger(al), 0)
1219+ let gY = if (((height - gX) >= ao))
11651220 then unit
11661221 else aK(makeString([toString(ao), " blocks have not passed since the previous call"], ""))
1167- if ((gS == gS))
1222+ if ((gY == gY))
11681223 then {
1169- let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ak), "0")), aM("invalid dLp"))
1170- let gT = eJ(0, 0, 0)
1171- let gU = gT._1
1172- let eA = gT._2
1173- let eM = if ((eU != eA))
1174- then gU
1224+ let fa = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ak), "0")), aM("invalid dLp"))
1225+ let gZ = eP(0, 0, 0)
1226+ let ha = gZ._1
1227+ let eG = gZ._2
1228+ let eS = if ((fa != eG))
1229+ then ha
11751230 else aK("nothing to refresh")
1176- $Tuple2(eM, toString(eA))
1231+ $Tuple2(eS, toString(eG))
11771232 }
11781233 else throw("Strict value is not equal to itself.")
11791234 }
11811236
11821237
11831238 @Callable(dV)
1184-func getOneTknV2READONLY (fC,gV) = {
1239+func getOneTknV2READONLY (fI,hb) = {
11851240 let ba = aS()
11861241 let cw = ba[w]
11871242 let cx = ba[x]
11881243 let cv = ba[v]
11891244 let dF = [toBigInt(bF(cw)), toBigInt(bF(cx))]
1190- let ez = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
1245+ let eF = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
11911246 let bS = dE(dF)
1192- let bR = (bS - fraction(toBigInt(gV), bS, ez))
1193- let gW = if ((fC == cw))
1247+ let bR = (bS - fraction(toBigInt(hb), bS, eF))
1248+ let hc = if ((fI == cw))
11941249 then 0
1195- else if ((fC == cx))
1250+ else if ((fI == cx))
11961251 then 1
11971252 else throw("invalid out asset id")
1198- let gX = ej(dF, gW, bR)
1199- let gY = (dF[gW] - gX)
1200- let gZ = max([0, toInt((gY - f))])
1201- let ha = cn(gZ)
1202- let fM = ha._1
1203- let cp = ha._2
1204- $Tuple2(nil, $Tuple2(fM, cp))
1253+ let hd = es(dF, hc, bR)
1254+ let he = (dF[hc] - hd)
1255+ let hf = max([0, toInt((he - f))])
1256+ let hg = cn(hf)
1257+ let fS = hg._1
1258+ let cp = hg._2
1259+ $Tuple2(nil, $Tuple2(fS, cp))
12051260 }
12061261
12071262
12081263
12091264 @Callable(dV)
1210-func getOneTknV2WithBonusREADONLY (fC,gV) = {
1265+func getOneTknV2WithBonusREADONLY (fI,hb) = {
12111266 let ba = aS()
12121267 let cw = ba[w]
12131268 let cx = ba[x]
12141269 let cv = ba[v]
12151270 let cC = bF(cw)
12161271 let cE = bF(cx)
1217- let hb = {
1218- let fL = invoke(this, "getOneTknV2READONLY", [fC, gV], nil)
1219- if ($isInstanceOf(fL, "(Int, Int)"))
1220- then fL
1221- else throw(($getType(fL) + " couldn't be cast to (Int, Int)"))
1272+ let hh = {
1273+ let fR = invoke(this, "getOneTknV2READONLY", [fI, hb], nil)
1274+ if ($isInstanceOf(fR, "(Int, Int)"))
1275+ then fR
1276+ else throw(($getType(fR) + " couldn't be cast to (Int, Int)"))
12221277 }
1223- let fM = hb._1
1224- let cp = hb._2
1225- let dk = cq("", cv, gV, this)
1278+ let fS = hh._1
1279+ let cp = hh._2
1280+ let dk = cq("", cv, hb, this)
12261281 let cM = dk._1
12271282 let cN = dk._2
1228- let hc = (cM + cN)
1229- let fA = if ((hc == 0))
1230- then if ((fM == 0))
1283+ let hi = (cM + cN)
1284+ let fG = if ((hi == 0))
1285+ then if ((fS == 0))
12311286 then 0
12321287 else throw("bonus calculation error")
1233- else fraction((fM - hc), a, hc)
1234- $Tuple2(nil, $Tuple3(fM, cp, fA))
1288+ else fraction((fS - hi), a, hi)
1289+ $Tuple2(nil, $Tuple3(fS, cp, fG))
12351290 }
12361291
12371292
12381293
12391294 @Callable(dV)
1240-func getNoLess (hd,he) = {
1241- let dk = eZ(dV)
1295+func getNoLess (hj,hk) = {
1296+ let dk = ff(dV)
12421297 let cM = dk._1
12431298 let cN = dk._2
12441299 let cY = dk._3
12451300 let cs = dk._4
12461301 let cO = dk._5
1247- if ((hd > cM))
1248- then throw(((("Failed: " + toString(cM)) + " < ") + toString(hd)))
1249- else if ((he > cN))
1250- then throw(((("Failed: " + toString(cN)) + " < ") + toString(he)))
1302+ if ((hj > cM))
1303+ then throw(((("Failed: " + toString(cM)) + " < ") + toString(hj)))
1304+ else if ((hk > cN))
1305+ then throw(((("Failed: " + toString(cN)) + " < ") + toString(hk)))
12511306 else {
1252- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(cY))
1253- let hf = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1254- if ((hf == hf))
1307+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(cY))
1308+ let hl = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1309+ if ((hl == hl))
12551310 then {
1256- let hg = eJ(-(cM), -(cN), 0)
1257- let ga = hg._1
1258- let eA = hg._2
1259- let gb = eN(eI, eA)
1260- if ((gb == gb))
1261- then (cO ++ ga)
1311+ let hm = eP(-(cM), -(cN), 0)
1312+ let gg = hm._1
1313+ let eG = hm._2
1314+ let gh = eT(eO, eG)
1315+ if ((gh == gh))
1316+ then (cO ++ gg)
12621317 else throw("Strict value is not equal to itself.")
12631318 }
12641319 else throw("Strict value is not equal to itself.")
12691324
12701325 @Callable(dV)
12711326 func unstakeAndGet (co) = {
1272- let hh = if ((size(dV.payments) != 0))
1327+ let hn = if ((size(dV.payments) != 0))
12731328 then throw("No pmnts expd")
12741329 else true
1275- if ((hh == hh))
1330+ if ((hn == hn))
12761331 then {
12771332 let ce = aS()
1278- let hi = bk()
1279- let gu = fromBase58String(ce[v])
1280- let hj = valueOrErrorMessage(addressFromString(hi[C]), "Wr st addr")
1281- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(0))
1282- let hk = invoke(hj, "unstake", [toBase58String(gu), co], nil)
1283- if ((hk == hk))
1333+ let ho = bk()
1334+ let gA = fromBase58String(ce[v])
1335+ let hp = valueOrErrorMessage(addressFromString(ho[C]), "Wr st addr")
1336+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(0))
1337+ let hq = invoke(hp, "unstake", [toBase58String(gA), co], nil)
1338+ if ((hq == hq))
12841339 then {
1285- let dk = cq(toBase58String(dV.transactionId), toBase58String(gu), co, dV.caller)
1340+ let dk = cq(toBase58String(dV.transactionId), toBase58String(gA), co, dV.caller)
12861341 let cM = dk._1
12871342 let cN = dk._2
12881343 let cA = parseIntValue(dk._9)
12891344 let cO = dk._10
1290- let hl = if (if (aP())
1345+ let hr = if (if (aP())
12911346 then true
12921347 else (cA == s))
12931348 then throw(("Blocked: " + toString(cA)))
12941349 else true
1295- if ((hl == hl))
1350+ if ((hr == hr))
12961351 then {
1297- let hm = invoke(aN, "burn", [co], [AttachedPayment(gu, co)])
1298- if ((hm == hm))
1352+ let hs = invoke(aN, "burn", [co], [AttachedPayment(gA, co)])
1353+ if ((hs == hs))
12991354 then {
1300- let hn = eJ(-(cM), -(cN), 0)
1301- let ga = hn._1
1302- let eA = hn._2
1303- let gb = eN(eI, eA)
1304- if ((gb == gb))
1305- then (cO ++ ga)
1355+ let ht = eP(-(cM), -(cN), 0)
1356+ let gg = ht._1
1357+ let eG = ht._2
1358+ let gh = eT(eO, eG)
1359+ if ((gh == gh))
1360+ then (cO ++ gg)
13061361 else throw("Strict value is not equal to itself.")
13071362 }
13081363 else throw("Strict value is not equal to itself.")
13171372
13181373
13191374 @Callable(dV)
1320-func unstakeAndGetNoLess (ho,hp,he) = {
1321- let gP = if (aP())
1375+func unstakeAndGetNoLess (hu,hv,hk) = {
1376+ let gV = if (aP())
13221377 then true
13231378 else (be == s)
1324- let gE = [if (!(gP))
1379+ let gK = [if (!(gV))
13251380 then true
13261381 else throw("get operation is blocked by admin"), if ((size(dV.payments) == 0))
13271382 then true
13281383 else throw("no payments are expected")]
1329- if ((gE == gE))
1384+ if ((gK == gK))
13301385 then {
1331- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(0))
1332- let hk = invoke(bm, "unstake", [toBase58String(bf), ho], nil)
1333- if ((hk == hk))
1386+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(0))
1387+ let hq = invoke(bm, "unstake", [toBase58String(bf), hu], nil)
1388+ if ((hq == hq))
13341389 then {
1335- let hq = cq(toBase58String(dV.transactionId), toBase58String(bf), ho, dV.caller)
1336- let cM = hq._1
1337- let cN = hq._2
1338- let cO = hq._10
1339- let hr = [if ((cM >= hp))
1390+ let hw = cq(toBase58String(dV.transactionId), toBase58String(bf), hu, dV.caller)
1391+ let cM = hw._1
1392+ let cN = hw._2
1393+ let cO = hw._10
1394+ let hx = [if ((cM >= hv))
13401395 then true
1341- else throw(makeString(["amount asset amount to receive is less than ", toString(hp)], "")), if ((cN >= he))
1396+ else throw(makeString(["amount asset amount to receive is less than ", toString(hv)], "")), if ((cN >= hk))
13421397 then true
1343- else throw(makeString(["price asset amount to receive is less than ", toString(he)], ""))]
1344- if ((hr == hr))
1398+ else throw(makeString(["price asset amount to receive is less than ", toString(hk)], ""))]
1399+ if ((hx == hx))
13451400 then {
1346- let hf = invoke(aN, "burn", [ho], [AttachedPayment(bf, ho)])
1347- if ((hf == hf))
1401+ let hl = invoke(aN, "burn", [hu], [AttachedPayment(bf, hu)])
1402+ if ((hl == hl))
13481403 then {
1349- let hs = eJ(-(cM), -(cN), 0)
1350- let ga = hs._1
1351- let eA = hs._2
1352- let gb = eN(eI, eA)
1353- if ((gb == gb))
1354- then (cO ++ ga)
1404+ let hy = eP(-(cM), -(cN), 0)
1405+ let gg = hy._1
1406+ let eG = hy._2
1407+ let gh = eT(eO, eG)
1408+ if ((gh == gh))
1409+ then (cO ++ gg)
13551410 else throw("Strict value is not equal to itself.")
13561411 }
13571412 else throw("Strict value is not equal to itself.")
13661421
13671422
13681423 @Callable(dV)
1369-func unstakeAndGetOneTknV2 (ho,fC,fD) = {
1370- let gC = {
1371- let fL = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1372- if ($isInstanceOf(fL, "Boolean"))
1373- then fL
1374- else throw(($getType(fL) + " couldn't be cast to Boolean"))
1424+func unstakeAndGetOneTknV2 (hu,fI,fJ) = {
1425+ let gI = {
1426+ let fR = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1427+ if ($isInstanceOf(fR, "Boolean"))
1428+ then fR
1429+ else throw(($getType(fR) + " couldn't be cast to Boolean"))
13751430 }
1376- let gP = if (if (aP())
1431+ let gV = if (if (aP())
13771432 then true
13781433 else (be == s))
13791434 then true
1380- else gC
1381- let gE = [if (if (!(gP))
1435+ else gI
1436+ let gK = [if (if (!(gV))
13821437 then true
1383- else gf(dV))
1438+ else gl(dV))
13841439 then true
13851440 else aK("get operation is blocked by admin"), if ((size(dV.payments) == 0))
13861441 then true
13871442 else aK("no payments are expected")]
1388- if ((gE == gE))
1443+ if ((gK == gK))
13891444 then {
13901445 let ce = aS()
1391- let hi = bk()
1392- let gu = fromBase58String(ce[v])
1393- let hj = valueOrErrorMessage(addressFromString(hi[C]), "Wr st addr")
1394- let hk = invoke(hj, "unstake", [toBase58String(gu), ho], nil)
1395- if ((hk == hk))
1446+ let ho = bk()
1447+ let gA = fromBase58String(ce[v])
1448+ let hp = valueOrErrorMessage(addressFromString(ho[C]), "Wr st addr")
1449+ let hq = invoke(hp, "unstake", [toBase58String(gA), hu], nil)
1450+ if ((hq == hq))
13961451 then {
1397- let ht = fB(fC, fD, [AttachedPayment(gu, ho)], dV.caller, dV.originCaller, dV.transactionId)
1398- let cO = ht._1
1399- let fN = ht._2
1400- $Tuple2(cO, fN)
1452+ let hz = fH(fI, fJ, [AttachedPayment(gA, hu)], dV.caller, dV.originCaller, dV.transactionId)
1453+ let cO = hz._1
1454+ let fT = hz._2
1455+ $Tuple2(cO, fT)
14011456 }
14021457 else throw("Strict value is not equal to itself.")
14031458 }
14071462
14081463
14091464 @Callable(dV)
1410-func putOneTknV2WithBonusREADONLY (hu,hv) = {
1465+func putOneTknV2WithBonusREADONLY (hA,hB) = {
14111466 let ba = aS()
14121467 let cw = ba[w]
14131468 let cx = ba[x]
14141469 let cv = ba[v]
1415- let hw = ff(hu, hv, "", "", true)
1416- let fv = hw._1
1417- let cO = hw._2
1418- let cp = hw._3
1419- let fA = hw._4
1420- $Tuple2(nil, $Tuple3(fv, cp, fA))
1470+ let hC = fl(hA, hB, "", "", true)
1471+ let fB = hC._1
1472+ let cO = hC._2
1473+ let cp = hC._3
1474+ let fG = hC._4
1475+ $Tuple2(nil, $Tuple3(fB, cp, fG))
14211476 }
14221477
14231478
14241479
14251480 @Callable(dV)
1426-func putOneTknV2WithoutTakeFeeREADONLY (hu,hv) = {
1481+func putOneTknV2WithoutTakeFeeREADONLY (hA,hB) = {
14271482 let ba = aS()
14281483 let cw = ba[w]
14291484 let cx = ba[x]
14301485 let cv = ba[v]
1431- let hx = ff(hu, hv, "", "", false)
1432- let fv = hx._1
1433- let cO = hx._2
1434- let cp = hx._3
1435- let fA = hx._4
1436- $Tuple2(nil, $Tuple3(fv, cp, fA))
1486+ let hD = fl(hA, hB, "", "", false)
1487+ let fB = hD._1
1488+ let cO = hD._2
1489+ let cp = hD._3
1490+ let fG = hD._4
1491+ $Tuple2(nil, $Tuple3(fB, cp, fG))
14371492 }
14381493
14391494
14401495
14411496 @Callable(dV)
1442-func activate (hy,hz) = if ((toString(dV.caller) != toString(aN)))
1497+func activate (hE,hF) = if ((toString(dV.caller) != toString(aN)))
14431498 then throw("denied")
1444- else $Tuple2([StringEntry(ae(), hy), StringEntry(af(), hz)], "success")
1499+ else $Tuple2([StringEntry(ae(), hE), StringEntry(af(), hF)], "success")
14451500
14461501
14471502
14481503 @Callable(dV)
1449-func setS (hA,hl) = if ((toString(dV.caller) != aG(this, ah())))
1450- then ge
1451- else [StringEntry(hA, hl)]
1504+func setS (hG,hr) = if ((toString(dV.caller) != aG(this, ah())))
1505+ then gk
1506+ else [StringEntry(hG, hr)]
14521507
14531508
14541509
14551510 @Callable(dV)
1456-func setI (hA,hl) = if ((toString(dV.caller) != aG(this, ah())))
1457- then ge
1458- else [IntegerEntry(hA, hl)]
1511+func setI (hG,hr) = if ((toString(dV.caller) != aG(this, ah())))
1512+ then gk
1513+ else [IntegerEntry(hG, hr)]
14591514
14601515
14611516
14711526
14721527 @Callable(dV)
14731528 func calcPricesWrapperREADONLY (bY,bZ,cd) = {
1474- let hB = cc(bY, bZ, cd)
1475- $Tuple2(nil, [toString(hB[0]), toString(hB[1]), toString(hB[2])])
1529+ let hH = cc(bY, bZ, cd)
1530+ $Tuple2(nil, [toString(hH[0]), toString(hH[1]), toString(hH[2])])
14761531 }
14771532
14781533
14791534
14801535 @Callable(dV)
1481-func fromX18WrapperREADONLY (L,hC) = $Tuple2(nil, K(parseBigIntValue(L), hC))
1536+func fromX18WrapperREADONLY (L,hI) = $Tuple2(nil, K(parseBigIntValue(L), hI))
14821537
14831538
14841539
14931548
14941549
14951550 @Callable(dV)
1496-func estimatePutOperationWrapperREADONLY (cr,bN,cQ,cR,cS,cT,hD,cU,cV) = $Tuple2(nil, cP(cr, bN, cQ, cR, cS, cT, hD, cU, cV, true, false, 0, ""))
1551+func estimatePutOperationWrapperREADONLY (cr,bN,cQ,cR,cS,cT,hJ,cU,cV) = $Tuple2(nil, cP(cr, bN, cQ, cR, cS, cT, hJ, cU, cV, true, false, 0, ""))
14971552
14981553
14991554
15001555 @Callable(dV)
1501-func estimateGetOperationWrapperREADONLY (cr,hE,ct,hD) = {
1502- let dk = cq(cr, hE, ct, addressFromStringValue(hD))
1556+func estimateGetOperationWrapperREADONLY (cr,hK,ct,hJ) = {
1557+ let dk = cq(cr, hK, ct, addressFromStringValue(hJ))
15031558 $Tuple2(nil, $Tuple10(dk._1, dk._2, dk._3, dk._4, dk._5, dk._6, dk._7, toString(dk._8), dk._9, dk._10))
15041559 }
15051560
15091564 func getFeeREADONLY () = $Tuple2(nil, aj)
15101565
15111566
1512-@Verifier(hF)
1513-func hG () = {
1514- let hH = {
1515- let aE = gc()
1567+@Verifier(hL)
1568+func hM () = {
1569+ let hN = {
1570+ let aE = gi()
15161571 if ($isInstanceOf(aE, "ByteVector"))
15171572 then {
1518- let gg = aE
1519- gg
1573+ let gm = aE
1574+ gm
15201575 }
15211576 else if ($isInstanceOf(aE, "Unit"))
1522- then hF.senderPublicKey
1577+ then hL.senderPublicKey
15231578 else throw("Match error")
15241579 }
1525- let aE = hF
1580+ let aE = hL
15261581 if ($isInstanceOf(aE, "Order"))
15271582 then {
1528- let eQ = aE
1529- let hI = aQ()
1530- let hJ = eP(eQ)
1531- let hK = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1532- let hL = sigVerify(eQ.bodyBytes, eQ.proofs[1], hI)
1533- if (if (if (hJ)
1534- then hK
1583+ let eW = aE
1584+ let hO = aQ()
1585+ let hP = eV(eW)
1586+ let hQ = sigVerify(eW.bodyBytes, eW.proofs[0], eW.senderPublicKey)
1587+ let hR = sigVerify(eW.bodyBytes, eW.proofs[1], hO)
1588+ if (if (if (hP)
1589+ then hQ
15351590 else false)
1536- then hL
1591+ then hR
15371592 else false)
15381593 then true
1539- else az(hJ, hK, hL)
1594+ else az(hP, hQ, hR)
15401595 }
15411596 else if ($isInstanceOf(aE, "SetScriptTransaction"))
15421597 then {
15431598 let dI = aE
1544- let hM = blake2b256(value(dI.script))
1545- let hN = fromBase64String(value(getString(aN, ax())))
1546- let hO = scriptHash(this)
1547- if (if ((hN == hM))
1548- then (hO != hM)
1599+ let hS = blake2b256(value(dI.script))
1600+ let hT = fromBase64String(value(getString(aN, ax())))
1601+ let hU = scriptHash(this)
1602+ if (if ((hT == hS))
1603+ then (hU != hS)
15491604 else false)
15501605 then true
1551- else sigVerify(hF.bodyBytes, hF.proofs[0], hH)
1606+ else sigVerify(hL.bodyBytes, hL.proofs[0], hN)
15521607 }
1553- else sigVerify(hF.bodyBytes, hF.proofs[0], hH)
1608+ else sigVerify(hL.bodyBytes, hL.proofs[0], hN)
15541609 }
15551610
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt(2)
1717
1818 let h = toBigInt(3)
1919
2020 let i = toBigInt(4)
2121
2222 let j = toBigInt((a - ((a * 1) / a)))
2323
2424 let k = "WAVES"
2525
2626 let l = "100"
2727
2828 let m = "1"
2929
3030 let n = "__"
3131
3232 let o = ""
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 4
4141
4242 let t = 1
4343
4444 let u = 2
4545
4646 let v = 3
4747
4848 let w = 4
4949
5050 let x = 5
5151
5252 let y = 6
5353
5454 let z = 7
5555
5656 let A = 8
5757
5858 let B = 9
5959
6060 let C = 1
6161
6262 let D = 6
6363
6464 let E = 7
6565
6666 let F = 10
6767
6868 let G = fraction(10, a, 10000)
6969
7070 func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7171
7272
7373 func K (L,M) = toInt(fraction(L, toBigInt(M), c))
7474
7575
7676 func N (O,P,Q) = fraction(O, P, Q)
7777
7878
7979 func R (L) = if ((d > L))
8080 then -(L)
8181 else L
8282
8383
8484 func S (L) = if ((d > L))
8585 then -(L)
8686 else L
8787
8888
8989 func T () = "%s__factoryContract"
9090
9191
9292 func U () = "%s__managerPublicKey"
9393
9494
9595 func V () = "%s__pendingManagerPublicKey"
9696
9797
9898 func W () = "%s%s__price__last"
9999
100100
101101 func X (Y,Z) = makeString(["%s%s%d%d__price__history", toString(Y), toString(Z)], n)
102102
103103
104104 func aa (ab,ac) = ((("%s%s%s__P__" + ab) + "__") + ac)
105105
106106
107107 func ad (ab,ac) = ((("%s%s%s__G__" + ab) + "__") + ac)
108108
109109
110110 func ae () = "%s__amountAsset"
111111
112112
113113 func af () = "%s__priceAsset"
114114
115115
116116 func ag () = "%s__amp"
117117
118118
119119 func ah () = "%s__addonAddr"
120120
121121
122122 let ai = "%s__fee"
123123
124124 let aj = valueOrElse(getInteger(this, ai), G)
125125
126126 let ak = makeString(["%s", "dLp"], n)
127127
128128 let al = makeString(["%s", "dLpRefreshedHeight"], n)
129129
130130 let am = makeString(["%s", "refreshDLpDelay"], n)
131131
132132 let an = 1
133133
134134 let ao = valueOrElse(getInteger(this, am), an)
135135
136136 func ap () = "%s__factoryConfig"
137137
138138
139139 func aq () = "%s%s__matcher__publicKey"
140140
141141
142142 func ar (as,at) = (((("%d%d%s__" + as) + "__") + at) + "__config")
143143
144144
145145 func au (av) = ("%s%s%s__mappings__baseAsset2internalId__" + av)
146146
147147
148148 func aw () = "%s__shutdown"
149149
150150
151151 func ax () = "%s__allowedLpStableScriptHash"
152152
153153
154154 func ay () = "%s__feeCollectorAddress"
155155
156156
157157 func az (aA,aB,aC) = throw(((((("Failed: ordValid=" + toString(aA)) + " sndrValid=") + toString(aB)) + " mtchrValid=") + toString(aC)))
158158
159159
160160 func aD (L) = {
161161 let aE = L
162162 if ($isInstanceOf(aE, "String"))
163163 then {
164164 let aF = aE
165165 aF
166166 }
167167 else throw("fail cast to String")
168168 }
169169
170170
171171 func aG (aH,aI) = valueOrErrorMessage(getString(aH, aI), makeString(["mandatory ", toString(aH), ".", aI, " not defined"], ""))
172172
173173
174174 func aJ (aH,aI) = valueOrErrorMessage(getInteger(aH, aI), makeString(["mandatory ", toString(aH), ".", aI, " not defined"], ""))
175175
176176
177177 func aK (aL) = throw(makeString(["lp_stable.ride:", aL], " "))
178178
179179
180180 func aM (aL) = makeString(["lp_stable.ride:", aL], " ")
181181
182182
183183 let aN = addressFromStringValue(aG(this, T()))
184184
185185 let aO = aG(this, ag())
186186
187187 func aP () = valueOrElse(getBoolean(aN, aw()), false)
188188
189189
190190 func aQ () = fromBase58String(aG(aN, aq()))
191191
192192
193193 let aR = addressFromStringValue(aG(aN, ay()))
194194
195195 func aS () = {
196196 let aT = aG(this, ae())
197197 let aU = aG(this, af())
198198 let aV = aJ(aN, au(aU))
199199 let as = aJ(aN, au(aT))
200200 split(aG(aN, ar(toString(as), toString(aV))), n)
201201 }
202202
203203
204204 func aW (aX) = if ((aX == k))
205205 then unit
206206 else fromBase58String(aX)
207207
208208
209209 func aY (aX) = if ((aX == unit))
210210 then k
211211 else toBase58String(value(aX))
212212
213213
214214 func aZ (ba) = $Tuple7(addressFromStringValue(ba[t]), parseIntValue(ba[u]), fromBase58String(ba[v]), aW(ba[w]), aW(ba[x]), parseIntValue(ba[y]), parseIntValue(ba[z]))
215215
216216
217217 let bb = aZ(aS())
218218
219219 let bc = bb
220220
221221 let bd = bc._1
222222
223223 let be = bc._2
224224
225225 let bf = bc._3
226226
227227 let bg = bc._4
228228
229229 let bh = bc._5
230230
231231 let bi = bc._6
232232
233233 let bj = bc._7
234234
235235 func bk () = split(aG(aN, ap()), n)
236236
237237
238238 let bl = bk()
239239
240240 let bm = valueOrErrorMessage(addressFromString(bl[C]), "Invalid staking contract address")
241241
242242 let bn = valueOrErrorMessage(addressFromString(bl[E]), "Invalid slipage contract address")
243243
244244 let bo = valueOrErrorMessage(addressFromString(bl[F]), "Invalid gwx contract address")
245245
246246 let bp = valueOrErrorMessage(addressFromString(bl[D]), "Invalid gwx contract address")
247247
248248 func bq (br,bs,bt,bu,bv,bw,bx,by,bz,bA) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx), toString(by), toString(bz), toString(bA)], n)
249249
250250
251251 func bB (bC,bD,bE,bu,bx,by) = makeString(["%d%d%d%d%d%d", toString(bC), toString(bD), toString(bE), toString(bu), toString(bx), toString(by)], n)
252252
253253
254254 func bF (bG) = if ((bG == "WAVES"))
255255 then wavesBalance(this).available
256256 else assetBalance(this, fromBase58String(bG))
257257
258258
259259 func bH (bI,bJ) = fraction(bI, c, bJ)
260260
261261
262262 func bK (bL,bM,bN) = {
263263 let bO = fraction((bL - bM), b, bM)
264264 let bP = ((bN - R(bO)) > d)
265265 if (!(bP))
266266 then throw(("Big slpg: " + toString(bO)))
267267 else $Tuple2(bP, min([bL, bM]))
268268 }
269269
270270
271271 func bQ (bR,bS,bT) = {
272272 let bO = fraction(bS, b, bR)
273273 let bU = (bT > bO)
274274 if (if (bU)
275275 then true
276276 else (bS > bR))
277277 then throw(((((((toString(bS) + " ") + toString(bR)) + " ") + toString(bO)) + " ") + toString(bT)))
278278 else bU
279279 }
280280
281281
282282 func bV (bW,bX,bY,bZ) = {
283283 let ca = H(bY, bW)
284284 let cb = H(bZ, bX)
285285 bH(cb, ca)
286286 }
287287
288288
289289 func cc (bY,bZ,cd) = {
290290 let ce = aS()
291291 let cf = parseIntValue(ce[y])
292292 let cg = parseIntValue(ce[z])
293293 let ch = bV(cf, cg, bY, bZ)
294294 let bJ = H(bY, cf)
295295 let bI = H(bZ, cg)
296296 let ci = H(cd, a)
297297 let cj = bH(bJ, ci)
298298 let ck = bH(bI, ci)
299299 [ch, cj, ck]
300300 }
301301
302302
303303 func cl (bY,bZ,cd) = {
304304 let cm = cc(bY, bZ, cd)
305305 [K(cm[0], a), K(cm[1], a), K(cm[2], a)]
306306 }
307307
308308
309309 func cn (co) = {
310310 let cp = fraction(co, aj, a)
311311 $Tuple2((co - cp), cp)
312312 }
313313
314314
315315 func cq (cr,cs,ct,cu) = {
316316 let ce = aS()
317317 let cv = ce[v]
318318 let cw = ce[w]
319319 let cx = ce[x]
320320 let cy = parseIntValue(ce[y])
321321 let cz = parseIntValue(ce[z])
322322 let cA = ce[u]
323323 let cB = valueOrErrorMessage(assetInfo(fromBase58String(cv)), "Wrong LP id").quantity
324324 if ((cv != cs))
325325 then throw("Wrong pmt asset")
326326 else {
327327 let cC = bF(cw)
328328 let cD = H(cC, cy)
329329 let cE = bF(cx)
330330 let cF = H(cE, cz)
331331 let cG = bH(cF, cD)
332332 let cH = K(cG, a)
333333 let cI = H(ct, a)
334334 let cJ = H(cB, a)
335335 let cK = fraction(cD, cI, cJ)
336336 let cL = fraction(cF, cI, cJ)
337337 let cM = K(cK, cy)
338338 let cN = K(cL, cz)
339339 let cO = if ((cr == ""))
340340 then nil
341341 else [ScriptTransfer(cu, cM, if ((cw == "WAVES"))
342342 then unit
343343 else fromBase58String(cw)), ScriptTransfer(cu, cN, if ((cx == "WAVES"))
344344 then unit
345345 else fromBase58String(cx)), StringEntry(ad(toString(cu), cr), bB(cM, cN, ct, cH, height, lastBlock.timestamp)), IntegerEntry(W(), cH), IntegerEntry(X(height, lastBlock.timestamp), cH)]
346346 $Tuple10(cM, cN, cw, cx, cC, cE, cB, cG, cA, cO)
347347 }
348348 }
349349
350350
351351 func cP (cr,bN,cQ,cR,cS,cT,cu,cU,cV,cW,cX,cY,cZ) = {
352352 let ce = aS()
353353 let cv = fromBase58String(ce[v])
354354 let da = ce[w]
355355 let db = ce[x]
356356 let dc = ce[A]
357357 let dd = ce[B]
358358 let de = parseIntValue(ce[y])
359359 let df = parseIntValue(ce[z])
360360 let cA = ce[u]
361361 let dg = valueOrErrorMessage(assetInfo(cv), "Wr lp as").quantity
362362 let cC = if (cU)
363363 then bF(da)
364364 else if (if (cW)
365365 then (cZ == da)
366366 else false)
367367 then (bF(da) - cY)
368368 else if (cW)
369369 then bF(da)
370370 else (bF(da) - cQ)
371371 let cE = if (cU)
372372 then bF(db)
373373 else if (if (cW)
374374 then (cZ == db)
375375 else false)
376376 then (bF(db) - cY)
377377 else if (cW)
378378 then bF(db)
379379 else (bF(db) - cS)
380380 let dh = H(cQ, de)
381381 let di = H(cS, df)
382382 let dj = bH(di, dh)
383383 let cD = H(cC, de)
384384 let cF = H(cE, df)
385385 let dk = if ((dg == 0))
386386 then {
387387 let cG = d
388388 let dl = d
389389 let ci = pow((dh * di), 0, toBigInt(5), 1, 0, DOWN)
390390 $Tuple5(K(ci, a), K(dh, de), K(di, df), bH((cF + di), (cD + dh)), dl)
391391 }
392392 else {
393393 let cG = bH(cF, cD)
394394 let dm = fraction(R((cG - dj)), c, cG)
395395 let dl = H(bN, a)
396396 if (if (if (cX)
397397 then (cG != d)
398398 else false)
399399 then (dm > dl)
400400 else false)
401401 then throw(((("Price slippage " + toString(dm)) + " > ") + toString(dl)))
402402 else {
403403 let dn = H(dg, a)
404404 let do = fraction(dh, cG, c)
405405 let dp = fraction(di, c, cG)
406406 let dq = if ((do > di))
407407 then $Tuple2(dp, di)
408408 else $Tuple2(dh, do)
409409 let dr = dq._1
410410 let ds = dq._2
411411 let ci = fraction(dn, ds, cF)
412412 $Tuple5(K(ci, a), K(dr, de), K(ds, df), cG, dl)
413413 }
414414 }
415415 let dt = dk._1
416416 let du = dk._2
417417 let dv = dk._3
418418 let cH = K(dk._4, a)
419419 let dw = K(dk._5, a)
420420 if ((0 >= dt))
421421 then throw("LP <= 0")
422422 else {
423423 let dx = if (!(cV))
424424 then 0
425425 else dt
426426 let dy = (cQ - du)
427427 let dz = (cS - dv)
428428 let dA = if (if (cW)
429429 then (cZ == da)
430430 else false)
431431 then $Tuple2(cY, 0)
432432 else if (if (cW)
433433 then (cZ == db)
434434 else false)
435435 then $Tuple2(0, cY)
436436 else $Tuple2(du, dv)
437437 let dB = dA._1
438438 let dC = dA._2
439439 let dD = [IntegerEntry(W(), cH), IntegerEntry(X(height, lastBlock.timestamp), cH), StringEntry(aa(cu, cr), bq(dB, dC, dx, cH, bN, dw, height, lastBlock.timestamp, dy, dz))]
440440 $Tuple13(dt, dx, cH, cC, cE, dg, cv, cA, dD, dy, dz, cR, cT)
441441 }
442442 }
443443
444444
445445 func dE (dF) = {
446446 let dG = dF[0]
447447 let dH = dF[1]
448448 let dI = (dG + dH)
449449 if ((dI == e))
450450 then e
451451 else {
452452 let dJ = parseIntValue(aO)
453453 let dK = (dJ * 2)
454454 let cm = fraction(dG, dH, f)
455455 let dL = fraction(cm, i, f)
456456 let dM = fraction(toBigInt(dK), dI, f)
457457 let dN = toBigInt((dK - 1))
458458 func dO (dP) = {
459459 let dQ = fraction(dP, dP, f)
460460 let dR = fraction(dQ, dP, f)
461461 let dS = fraction(dR, f, dL)
462462 fraction((dM + fraction(dS, g, f)), dP, (fraction(dN, dP, f) + fraction(h, dS, f)))
463463 }
464464
465465 func dT (dU,dV) = if (dU._2)
466466 then dU
467467 else {
468468 let dP = dU._1
469469 let dW = dO(dP)
470470 let dX = toInt((dW - value(dP)))
471471 let dY = if ((0 > dX))
472472 then -(dX)
473473 else dX
474474 if ((1 >= dY))
475475 then $Tuple2(dW, true)
476476 else $Tuple2(dW, false)
477477 }
478478
479479 let dZ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
480480 let ea = {
481481 let eb = dZ
482482 let ec = size(eb)
483483 let ed = $Tuple2(dI, false)
484484 func ee (ef,eg) = if ((eg >= ec))
485485 then ef
486486 else dT(ef, eb[eg])
487487
488488 func eh (ef,eg) = if ((eg >= ec))
489489 then ef
490490 else throw("List size exceeds 15")
491491
492492 eh(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
493493 }
494494 let dP = ea._1
495495 let ei = ea._2
496496 if (ei)
497497 then dP
498498 else throw(("D calculation error, D = " + toString(dP)))
499499 }
500500 }
501501
502502
503-func ej (dF,dV,ek) = {
504- let el = g
505- let em = dF[if ((dV == 0))
503+func ej (dF) = {
504+ let ek = g
505+ let dG = dF[0]
506+ let dH = dF[1]
507+ let el = parseBigIntValue(l)
508+ let dJ = (parseBigIntValue(aO) * el)
509+ let dI = (dG + dH)
510+ if ((dI == e))
511+ then e
512+ else {
513+ let dK = (dJ * ek)
514+ let dL = (((dG * dH) * ek) * ek)
515+ let em = ((dK * dI) / el)
516+ let en = (dK - el)
517+ let eo = (ek + f)
518+ func dT (dU,ep) = {
519+ let eq = dU
520+ let dP = eq._1
521+ let ei = eq._2
522+ if ((ei != unit))
523+ then dU
524+ else {
525+ let dS = (((dP * dP) * dP) / dL)
526+ let dW = (((em + (dS * ek)) * dP) / (((en * dP) / el) + (eo * dS)))
527+ let dY = S((dW - value(dP)))
528+ if ((f >= dY))
529+ then $Tuple2(dW, ep)
530+ else $Tuple2(dW, unit)
531+ }
532+ }
533+
534+ let dZ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
535+ let er = {
536+ let eb = dZ
537+ let ec = size(eb)
538+ let ed = $Tuple2(dI, unit)
539+ func ee (ef,eg) = if ((eg >= ec))
540+ then ef
541+ else dT(ef, eb[eg])
542+
543+ func eh (ef,eg) = if ((eg >= ec))
544+ then ef
545+ else throw("List size exceeds 15")
546+
547+ eh(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
548+ }
549+ let dP = er._1
550+ let ei = er._2
551+ if ((ei != unit))
552+ then dP
553+ else throw(("D calculation error, D = " + toString(dP)))
554+ }
555+ }
556+
557+
558+func es (dF,dV,et) = {
559+ let ek = g
560+ let eu = dF[if ((dV == 0))
506561 then 1
507562 else 0]
508- let en = parseBigIntValue(l)
509- let dJ = (parseBigIntValue(aO) * en)
510- let dI = em
511- let dK = (dJ * el)
512- let eo = (((((ek * ek) / (em * el)) * ek) * en) / (dK * el))
513- let ep = ((dI + ((ek * en) / dK)) - ek)
514- func dT (dU,eq) = {
515- let er = dU
516- let es = er._1
517- let ei = er._2
563+ let el = parseBigIntValue(l)
564+ let dJ = (parseBigIntValue(aO) * el)
565+ let dI = eu
566+ let dK = (dJ * ek)
567+ let ev = (((((et * et) / (eu * ek)) * et) * el) / (dK * ek))
568+ let ew = ((dI + ((et * el) / dK)) - et)
569+ func dT (dU,ep) = {
570+ let ex = dU
571+ let ey = ex._1
572+ let ei = ex._2
518573 if ((ei != unit))
519574 then dU
520575 else {
521- let et = (((es * es) + eo) / ((g * es) + ep))
522- let eu = S((et - value(es)))
523- if ((f >= eu))
524- then $Tuple2(et, eq)
525- else $Tuple2(et, unit)
576+ let ez = (((ey * ey) + ev) / ((g * ey) + ew))
577+ let eA = S((ez - value(ey)))
578+ if ((f >= eA))
579+ then $Tuple2(ez, ep)
580+ else $Tuple2(ez, unit)
526581 }
527582 }
528583
529584 let dZ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
530- let ev = {
585+ let eB = {
531586 let eb = dZ
532587 let ec = size(eb)
533- let ed = $Tuple2(ek, unit)
588+ let ed = $Tuple2(et, unit)
534589 func ee (ef,eg) = if ((eg >= ec))
535590 then ef
536591 else dT(ef, eb[eg])
537592
538593 func eh (ef,eg) = if ((eg >= ec))
539594 then ef
540595 else throw("List size exceeds 15")
541596
542597 eh(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
543598 }
544- let es = ev._1
545- let ei = ev._2
599+ let ey = eB._1
600+ let ei = eB._2
546601 if ((ei != unit))
547- then es
548- else throw(("Y calculation error, Y = " + toString(es)))
602+ then ey
603+ else throw(("Y calculation error, Y = " + toString(ey)))
549604 }
550605
551606
552-func ew (ex,ey,ez) = {
553- let eA = fraction(dE([ex, ey]), c, ez)
554- eA
607+func eC (eD,eE,eF) = {
608+ let eG = fraction(dE([eD, eE]), c, eF)
609+ eG
555610 }
556611
557612
558-func eB (eC,eD,eE) = {
559- let eF = (toBigInt(bF(aY(bg))) - eC)
560- let eG = (toBigInt(bF(aY(bh))) - eD)
561- let eH = (toBigInt(value(assetInfo(bf)).quantity) - eE)
562- let eI = ew(eF, eG, eH)
563- eI
613+func eH (eI,eJ,eK) = {
614+ let eL = (toBigInt(bF(aY(bg))) - eI)
615+ let eM = (toBigInt(bF(aY(bh))) - eJ)
616+ let eN = (toBigInt(value(assetInfo(bf)).quantity) - eK)
617+ let eO = eC(eL, eM, eN)
618+ eO
564619 }
565620
566621
567-func eJ (eK,eL,eE) = {
568- let eF = (bF(aY(bg)) + eK)
569- let eG = (bF(aY(bh)) + eL)
570- let eH = (value(assetInfo(bf)).quantity + eE)
571- let eA = ew(toBigInt(eF), toBigInt(eG), toBigInt(eH))
572- let eM = [IntegerEntry(al, height), StringEntry(ak, toString(eA))]
573- $Tuple2(eM, eA)
622+func eP (eQ,eR,eK) = {
623+ let eL = (bF(aY(bg)) + eQ)
624+ let eM = (bF(aY(bh)) + eR)
625+ let eN = (value(assetInfo(bf)).quantity + eK)
626+ let eG = eC(toBigInt(eL), toBigInt(eM), toBigInt(eN))
627+ let eS = [IntegerEntry(al, height), StringEntry(ak, toString(eG))]
628+ $Tuple2(eS, eG)
574629 }
575630
576631
577-func eN (eO,eA) = if ((eA >= eO))
632+func eT (eU,eG) = if ((eG >= eU))
578633 then true
579634 else aK("updated DLp lower than current DLp")
580635
581636
582-func eP (eQ) = {
583- let eR = eQ.amount
584- let eS = fraction(eQ.amount, eQ.price, a, FLOOR)
585- let eT = if ((eQ.orderType == Buy))
586- then $Tuple2(eR, -(eS))
587- else $Tuple2(-(eR), eS)
588- let eK = eT._1
589- let eL = eT._2
637+func eV (eW) = {
638+ let eX = eW.amount
639+ let eY = fraction(eW.amount, eW.price, a, FLOOR)
640+ let eZ = if ((eW.orderType == Buy))
641+ then $Tuple2(eX, -(eY))
642+ else $Tuple2(-(eX), eY)
643+ let eQ = eZ._1
644+ let eR = eZ._2
590645 if (if (if (aP())
591646 then true
592647 else (be == r))
593648 then true
594649 else (be == s))
595650 then throw("Admin blocked")
596- else if (if ((eQ.assetPair.amountAsset != bg))
651+ else if (if ((eW.assetPair.amountAsset != bg))
597652 then true
598- else (eQ.assetPair.priceAsset != bh))
653+ else (eW.assetPair.priceAsset != bh))
599654 then throw("Wr assets")
600655 else {
601- let eU = parseBigIntValue(getStringValue(this, ak))
602- let eV = eJ(eK, eL, 0)
603- let eW = eV._1
604- let eX = eV._2
605- let eY = (eX >= eU)
606- eY
656+ let fa = parseBigIntValue(getStringValue(this, ak))
657+ let fb = eP(eQ, eR, 0)
658+ let fc = fb._1
659+ let fd = fb._2
660+ let fe = (fd >= fa)
661+ fe
607662 }
608663 }
609664
610665
611-func eZ (dV) = if ((size(dV.payments) != 1))
666+func ff (dV) = if ((size(dV.payments) != 1))
612667 then throw("1 pmnt exp")
613668 else {
614- let fa = value(dV.payments[0])
615- let cs = value(fa.assetId)
616- let cY = fa.amount
669+ let fg = value(dV.payments[0])
670+ let cs = value(fg.assetId)
671+ let cY = fg.amount
617672 let dk = cq(toBase58String(dV.transactionId), toBase58String(cs), cY, dV.caller)
618673 let cM = dk._1
619674 let cN = dk._2
620675 let cA = parseIntValue(dk._9)
621676 let cO = dk._10
622677 if (if (aP())
623678 then true
624679 else (cA == s))
625680 then throw(("Admin blocked: " + toString(cA)))
626681 else $Tuple5(cM, cN, cY, cs, cO)
627682 }
628683
629684
630-func fb (fc,ac,fd,fe,bN,cV,cW,cX,cY,cZ) = {
631- let dk = cP(ac, bN, value(fd).amount, value(fd).assetId, value(fe).amount, value(fe).assetId, fc, (ac == ""), cV, cW, cX, cY, cZ)
685+func fh (fi,ac,fj,fk,bN,cV,cW,cX,cY,cZ) = {
686+ let dk = cP(ac, bN, value(fj).amount, value(fj).assetId, value(fk).amount, value(fk).assetId, fi, (ac == ""), cV, cW, cX, cY, cZ)
632687 let cA = parseIntValue(dk._8)
633688 if (if (if (aP())
634689 then true
635690 else (cA == q))
636691 then true
637692 else (cA == s))
638693 then throw(("Blocked:" + toString(cA)))
639694 else dk
640695 }
641696
642697
643-func ff (fg,cs,cu,ac,fh) = {
698+func fl (fm,cs,cu,ac,fn) = {
644699 let ba = aS()
645700 let cw = ba[w]
646701 let cx = ba[x]
647702 let cv = ba[v]
648703 let de = parseIntValue(ba[y])
649704 let df = parseIntValue(ba[z])
650- let eH = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
651- let fi = if ((eH > e))
705+ let eN = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
706+ let fo = if ((eN > e))
652707 then true
653708 else throw("initial deposit requires all coins")
654- if ((fi == fi))
709+ if ((fo == fo))
655710 then {
656711 let cC = bF(cw)
657712 let cE = bF(cx)
658- let fj = if ((ac == ""))
713+ let fp = if ((ac == ""))
659714 then $Tuple2(cC, cE)
660715 else if ((cs == cw))
661- then if ((fg > cC))
716+ then if ((fm > cC))
662717 then throw("invalid payment amount")
663- else $Tuple2((cC - fg), cE)
718+ else $Tuple2((cC - fm), cE)
664719 else if ((cs == cx))
665- then if ((fg > cE))
720+ then if ((fm > cE))
666721 then throw("invalid payment amount")
667- else $Tuple2(cC, (cE - fg))
722+ else $Tuple2(cC, (cE - fm))
668723 else throw("wrong pmtAssetId")
669- let fk = fj._1
670- let fl = fj._2
671- let fm = if ((cs == cw))
672- then $Tuple2(fg, 0)
673- else if ((cs == cx))
674- then $Tuple2(0, fg)
675- else throw("invalid payment")
676- let fn = fm._1
677- let fo = fm._2
678- let fp = if (fh)
679- then $Tuple3(cn(fn)._1, cn(fo)._1, cn(fg)._2)
680- else $Tuple3(fn, fo, 0)
681724 let fq = fp._1
682725 let fr = fp._2
683- let cp = fp._3
684- let fs = (fk + fq)
685- let ft = (fl + fr)
686- let bS = dE([toBigInt(fk), toBigInt(fl)])
687- let bR = dE([toBigInt(fs), toBigInt(ft)])
688- let fu = if ((bR > bS))
726+ let fs = if ((cs == cw))
727+ then $Tuple2(fm, 0)
728+ else if ((cs == cx))
729+ then $Tuple2(0, fm)
730+ else throw("invalid payment")
731+ let ft = fs._1
732+ let fu = fs._2
733+ let fv = if (fn)
734+ then $Tuple3(cn(ft)._1, cn(fu)._1, cn(fm)._2)
735+ else $Tuple3(ft, fu, 0)
736+ let fw = fv._1
737+ let fx = fv._2
738+ let cp = fv._3
739+ let fy = (fq + fw)
740+ let fz = (fr + fx)
741+ let bS = dE([toBigInt(fq), toBigInt(fr)])
742+ let bR = dE([toBigInt(fy), toBigInt(fz)])
743+ let fA = if ((bR > bS))
689744 then true
690745 else throw()
691- if ((fu == fu))
746+ if ((fA == fA))
692747 then {
693- let fv = fraction(eH, (bR - bS), bS)
694- let cH = K(bH(H(ft, df), H(fs, de)), a)
695- let dD = [IntegerEntry(W(), cH), IntegerEntry(X(height, lastBlock.timestamp), cH), StringEntry(aa(cu, ac), bq(fn, fo, toInt(fv), cH, 0, 0, height, lastBlock.timestamp, 0, 0))]
696- let fw = fraction(fl, a, fk)
697- let fx = fraction(fg, a, (fw + a))
698- let fy = (fg - fx)
699- let fz = fraction(eH, toBigInt(fy), toBigInt(fl))
700- let fA = toInt(fraction((fv - fz), b, fz))
701- $Tuple4(toInt(fv), dD, cp, fA)
748+ let fB = fraction(eN, (bR - bS), bS)
749+ let cH = K(bH(H(fz, df), H(fy, de)), a)
750+ let dD = [IntegerEntry(W(), cH), IntegerEntry(X(height, lastBlock.timestamp), cH), StringEntry(aa(cu, ac), bq(ft, fu, toInt(fB), cH, 0, 0, height, lastBlock.timestamp, 0, 0))]
751+ let fC = fraction(fr, a, fq)
752+ let fD = fraction(fm, a, (fC + a))
753+ let fE = (fm - fD)
754+ let fF = fraction(eN, toBigInt(fE), toBigInt(fr))
755+ let fG = toInt(fraction((fB - fF), b, fF))
756+ $Tuple4(toInt(fB), dD, cp, fG)
702757 }
703758 else throw("Strict value is not equal to itself.")
704759 }
705760 else throw("Strict value is not equal to itself.")
706761 }
707762
708763
709-func fB (fC,fD,fE,fc,fF,fG) = {
764+func fH (fI,fJ,fK,fi,fL,fM) = {
710765 let ba = aS()
711766 let cv = ba[v]
712767 let cw = ba[w]
713768 let cx = ba[x]
714- let fH = parseIntValue(ba[y])
715- let fI = parseIntValue(ba[z])
716- let fJ = ba[u]
717- let cu = if ((fc == bp))
718- then fF
719- else fc
720- let fa = value(fE[0])
721- let cs = value(fa.assetId)
722- let cY = fa.amount
723- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(cY))
724- let cr = toBase58String(fG)
769+ let fN = parseIntValue(ba[y])
770+ let fO = parseIntValue(ba[z])
771+ let fP = ba[u]
772+ let cu = if ((fi == bp))
773+ then fL
774+ else fi
775+ let fg = value(fK[0])
776+ let cs = value(fg.assetId)
777+ let cY = fg.amount
778+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(cY))
779+ let cr = toBase58String(fM)
725780 if ((cv != toBase58String(cs)))
726781 then throw("Wrong LP")
727782 else {
728783 let cC = bF(cw)
729784 let cE = bF(cx)
730- let fK = {
731- let fL = invoke(this, "getOneTknV2READONLY", [fC, cY], nil)
732- if ($isInstanceOf(fL, "(Int, Int)"))
733- then fL
734- else throw(($getType(fL) + " couldn't be cast to (Int, Int)"))
785+ let fQ = {
786+ let fR = invoke(this, "getOneTknV2READONLY", [fI, cY], nil)
787+ if ($isInstanceOf(fR, "(Int, Int)"))
788+ then fR
789+ else throw(($getType(fR) + " couldn't be cast to (Int, Int)"))
735790 }
736- if ((fK == fK))
791+ if ((fQ == fQ))
737792 then {
738- let cp = fK._2
739- let fM = fK._1
740- let fN = if (if ((fD > 0))
741- then (fD > fM)
793+ let cp = fQ._2
794+ let fS = fQ._1
795+ let fT = if (if ((fJ > 0))
796+ then (fJ > fS)
742797 else false)
743- then aK(makeString(["amount to receive is less than ", toString(fD)], ""))
744- else fM
745- let fO = if ((fC == cw))
746- then $Tuple4(fN, 0, ((cC - fN) - cp), cE)
747- else if ((fC == cx))
748- then $Tuple4(0, fN, cC, ((cE - fN) - cp))
798+ then aK(makeString(["amount to receive is less than ", toString(fJ)], ""))
799+ else fS
800+ let fU = if ((fI == cw))
801+ then $Tuple4(fT, 0, ((cC - fT) - cp), cE)
802+ else if ((fI == cx))
803+ then $Tuple4(0, fT, cC, ((cE - fT) - cp))
749804 else throw("invalid out asset id")
750- let fP = fO._1
751- let fQ = fO._2
752- let fs = fO._3
753- let ft = fO._4
754- let fR = bH(H(ft, fI), H(fs, fH))
755- let fS = K(fR, a)
756- let fT = if ((fC == "WAVES"))
805+ let fV = fU._1
806+ let fW = fU._2
807+ let fy = fU._3
808+ let fz = fU._4
809+ let fX = bH(H(fz, fO), H(fy, fN))
810+ let fY = K(fX, a)
811+ let fZ = if ((fI == "WAVES"))
757812 then unit
758- else fromBase58String(fC)
759- let fU = if ((cp > 0))
760- then [ScriptTransfer(aR, cp, fT)]
813+ else fromBase58String(fI)
814+ let ga = if ((cp > 0))
815+ then [ScriptTransfer(aR, cp, fZ)]
761816 else nil
762- let cO = ([ScriptTransfer(cu, fN, fT), StringEntry(ad(toString(cu), cr), bB(fP, fQ, cY, fS, height, lastBlock.timestamp)), IntegerEntry(W(), fS), IntegerEntry(X(height, lastBlock.timestamp), fS)] ++ fU)
817+ let cO = ([ScriptTransfer(cu, fT, fZ), StringEntry(ad(toString(cu), cr), bB(fV, fW, cY, fY, height, lastBlock.timestamp)), IntegerEntry(W(), fY), IntegerEntry(X(height, lastBlock.timestamp), fY)] ++ ga)
763818 if ((cO == cO))
764819 then {
765- let fV = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
766- if ((fV == fV))
820+ let gb = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
821+ if ((gb == gb))
767822 then {
768- let fW = {
769- let fX = if ((this == aR))
823+ let gc = {
824+ let gd = if ((this == aR))
770825 then 0
771826 else cp
772- let fY = if ((aW(fC) == bg))
827+ let ge = if ((aW(fI) == bg))
773828 then true
774829 else false
775- if (fY)
776- then $Tuple2(-((fM + fX)), 0)
777- else $Tuple2(0, -((fM + fX)))
830+ if (ge)
831+ then $Tuple2(-((fS + gd)), 0)
832+ else $Tuple2(0, -((fS + gd)))
778833 }
779- let eK = fW._1
780- let eL = fW._2
781- let fZ = eJ(eK, eL, 0)
782- let ga = fZ._1
783- let eA = fZ._2
784- let gb = eN(eI, eA)
785- if ((gb == gb))
786- then $Tuple2((cO ++ ga), fN)
834+ let eQ = gc._1
835+ let eR = gc._2
836+ let gf = eP(eQ, eR, 0)
837+ let gg = gf._1
838+ let eG = gf._2
839+ let gh = eT(eO, eG)
840+ if ((gh == gh))
841+ then $Tuple2((cO ++ gg), fT)
787842 else throw("Strict value is not equal to itself.")
788843 }
789844 else throw("Strict value is not equal to itself.")
790845 }
791846 else throw("Strict value is not equal to itself.")
792847 }
793848 else throw("Strict value is not equal to itself.")
794849 }
795850 }
796851
797852
798-func gc () = {
853+func gi () = {
799854 let aE = getString(U())
800855 if ($isInstanceOf(aE, "String"))
801856 then {
802857 let dI = aE
803858 fromBase58String(dI)
804859 }
805860 else if ($isInstanceOf(aE, "Unit"))
806861 then unit
807862 else throw("Match error")
808863 }
809864
810865
811-func gd () = {
866+func gj () = {
812867 let aE = getString(V())
813868 if ($isInstanceOf(aE, "String"))
814869 then {
815870 let dI = aE
816871 fromBase58String(dI)
817872 }
818873 else if ($isInstanceOf(aE, "Unit"))
819874 then unit
820875 else throw("Match error")
821876 }
822877
823878
824-let ge = throw("Permission denied")
879+let gk = throw("Permission denied")
825880
826-func gf (dV) = {
827- let aE = gc()
881+func gl (dV) = {
882+ let aE = gi()
828883 if ($isInstanceOf(aE, "ByteVector"))
829884 then {
830- let gg = aE
831- (dV.callerPublicKey == gg)
885+ let gm = aE
886+ (dV.callerPublicKey == gm)
832887 }
833888 else if ($isInstanceOf(aE, "Unit"))
834889 then (dV.caller == this)
835890 else throw("Match error")
836891 }
837892
838893
839-func gh (dV) = {
840- let aE = gc()
894+func gn (dV) = {
895+ let aE = gi()
841896 if ($isInstanceOf(aE, "ByteVector"))
842897 then {
843- let gg = aE
844- if ((dV.callerPublicKey == gg))
898+ let gm = aE
899+ if ((dV.callerPublicKey == gm))
845900 then true
846- else ge
901+ else gk
847902 }
848903 else if ($isInstanceOf(aE, "Unit"))
849904 then if ((dV.caller == this))
850905 then true
851- else ge
906+ else gk
852907 else throw("Match error")
853908 }
854909
855910
856911 @Callable(dV)
857912 func constructor (T) = {
858- let eo = gh(dV)
859- if ((eo == eo))
913+ let ev = gn(dV)
914+ if ((ev == ev))
860915 then [StringEntry(T(), T)]
861916 else throw("Strict value is not equal to itself.")
862917 }
863918
864919
865920
866921 @Callable(dV)
867-func setManager (gi) = {
868- let eo = gh(dV)
869- if ((eo == eo))
922+func setManager (go) = {
923+ let ev = gn(dV)
924+ if ((ev == ev))
870925 then {
871- let gj = fromBase58String(gi)
872- if ((gj == gj))
873- then [StringEntry(V(), gi)]
926+ let gp = fromBase58String(go)
927+ if ((gp == gp))
928+ then [StringEntry(V(), go)]
874929 else throw("Strict value is not equal to itself.")
875930 }
876931 else throw("Strict value is not equal to itself.")
877932 }
878933
879934
880935
881936 @Callable(dV)
882937 func confirmManager () = {
883- let cm = gd()
884- let gk = if (isDefined(cm))
938+ let cm = gj()
939+ let gq = if (isDefined(cm))
885940 then true
886941 else throw("No pending manager")
887- if ((gk == gk))
942+ if ((gq == gq))
888943 then {
889- let gl = if ((dV.callerPublicKey == value(cm)))
944+ let gr = if ((dV.callerPublicKey == value(cm)))
890945 then true
891946 else throw("You are not pending manager")
892- if ((gl == gl))
947+ if ((gr == gr))
893948 then [StringEntry(U(), toBase58String(value(cm))), DeleteEntry(V())]
894949 else throw("Strict value is not equal to itself.")
895950 }
896951 else throw("Strict value is not equal to itself.")
897952 }
898953
899954
900955
901956 @Callable(dV)
902-func put (gm,gn) = {
903- let go = bk()
904- let gp = valueOrErrorMessage(addressFromString(go[C]), "Wr st addr")
905- let gq = valueOrErrorMessage(addressFromString(go[E]), "Wr sl addr")
906- if ((0 > gm))
957+func put (gs,gt) = {
958+ let gu = bk()
959+ let gv = valueOrErrorMessage(addressFromString(gu[C]), "Wr st addr")
960+ let gw = valueOrErrorMessage(addressFromString(gu[E]), "Wr sl addr")
961+ if ((0 > gs))
907962 then throw("Wrong slippage")
908963 else if ((size(dV.payments) != 2))
909964 then throw("2 pmnts expd")
910965 else {
911- let gr = toBigInt(value(dV.payments[0]).amount)
912- let gs = toBigInt(value(dV.payments[1]).amount)
913- let eI = eB(gr, gs, toBigInt(0))
914- if ((eI == eI))
966+ let gx = toBigInt(value(dV.payments[0]).amount)
967+ let gy = toBigInt(value(dV.payments[1]).amount)
968+ let eO = eH(gx, gy, toBigInt(0))
969+ if ((eO == eO))
915970 then {
916- let gt = fb(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gm, true, false, true, 0, "")
917- let dx = gt._2
918- let gu = gt._7
919- let cO = gt._9
920- let dy = gt._10
921- let dz = gt._11
922- let cw = gt._12
923- let cx = gt._13
971+ let gz = fh(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gs, true, false, true, 0, "")
972+ let dx = gz._2
973+ let gA = gz._7
974+ let cO = gz._9
975+ let dy = gz._10
976+ let dz = gz._11
977+ let cw = gz._12
978+ let cx = gz._13
924979 let dk = invoke(aN, "emit", [dx], nil)
925980 if ((dk == dk))
926981 then {
927- let gv = {
982+ let gB = {
928983 let aE = dk
929984 if ($isInstanceOf(aE, "Address"))
930985 then {
931- let gw = aE
932- invoke(gw, "emit", [dx], nil)
986+ let gC = aE
987+ invoke(gC, "emit", [dx], nil)
933988 }
934989 else unit
935990 }
936- if ((gv == gv))
991+ if ((gB == gB))
937992 then {
938- let gx = if ((dy > 0))
939- then invoke(gq, "put", nil, [AttachedPayment(cw, dy)])
993+ let gD = if ((dy > 0))
994+ then invoke(gw, "put", nil, [AttachedPayment(cw, dy)])
940995 else nil
941- if ((gx == gx))
996+ if ((gD == gD))
942997 then {
943- let gy = if ((dz > 0))
944- then invoke(gq, "put", nil, [AttachedPayment(cx, dz)])
998+ let gE = if ((dz > 0))
999+ then invoke(gw, "put", nil, [AttachedPayment(cx, dz)])
9451000 else nil
946- if ((gy == gy))
1001+ if ((gE == gE))
9471002 then {
948- let gz = if (gn)
1003+ let gF = if (gt)
9491004 then {
950- let gA = invoke(gp, "stake", nil, [AttachedPayment(gu, dx)])
951- if ((gA == gA))
1005+ let gG = invoke(gv, "stake", nil, [AttachedPayment(gA, dx)])
1006+ if ((gG == gG))
9521007 then nil
9531008 else throw("Strict value is not equal to itself.")
9541009 }
955- else [ScriptTransfer(dV.caller, dx, gu)]
956- let gB = eJ(0, 0, 0)
957- let ga = gB._1
958- let eA = gB._2
959- let gb = eN(eI, eA)
960- if ((gb == gb))
961- then ((cO ++ gz) ++ ga)
1010+ else [ScriptTransfer(dV.caller, dx, gA)]
1011+ let gH = eP(0, 0, 0)
1012+ let gg = gH._1
1013+ let eG = gH._2
1014+ let gh = eT(eO, eG)
1015+ if ((gh == gh))
1016+ then ((cO ++ gF) ++ gg)
9621017 else throw("Strict value is not equal to itself.")
9631018 }
9641019 else throw("Strict value is not equal to itself.")
9651020 }
9661021 else throw("Strict value is not equal to itself.")
9671022 }
9681023 else throw("Strict value is not equal to itself.")
9691024 }
9701025 else throw("Strict value is not equal to itself.")
9711026 }
9721027 else throw("Strict value is not equal to itself.")
9731028 }
9741029 }
9751030
9761031
9771032
9781033 @Callable(dV)
979-func putOneTknV2 (fD,gn) = {
980- let gC = {
981- let fL = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
982- if ($isInstanceOf(fL, "Boolean"))
983- then fL
984- else throw(($getType(fL) + " couldn't be cast to Boolean"))
1034+func putOneTknV2 (fJ,gt) = {
1035+ let gI = {
1036+ let fR = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1037+ if ($isInstanceOf(fR, "Boolean"))
1038+ then fR
1039+ else throw(($getType(fR) + " couldn't be cast to Boolean"))
9851040 }
986- let gD = if (if (if (aP())
1041+ let gJ = if (if (if (aP())
9871042 then true
9881043 else (be == q))
9891044 then true
9901045 else (be == s))
9911046 then true
992- else gC
993- let gE = [if (if (!(gD))
1047+ else gI
1048+ let gK = [if (if (!(gJ))
9941049 then true
995- else gf(dV))
1050+ else gl(dV))
9961051 then true
9971052 else aK("put operation is blocked by admin"), if ((size(dV.payments) == 1))
9981053 then true
9991054 else aK("exactly 1 payment are expected")]
1000- if ((gE == gE))
1055+ if ((gK == gK))
10011056 then {
10021057 let ba = aS()
10031058 let cw = ba[w]
10041059 let cx = ba[x]
10051060 let cv = fromBase58String(ba[v])
1006- let fH = parseIntValue(ba[y])
1007- let fI = parseIntValue(ba[z])
1061+ let fN = parseIntValue(ba[y])
1062+ let fO = parseIntValue(ba[z])
10081063 let cu = if ((dV.caller == this))
10091064 then dV.originCaller
10101065 else dV.caller
1011- let fa = value(dV.payments[0])
1012- let cs = toBase58String(value(fa.assetId))
1013- let cY = fa.amount
1014- let gF = ff(cY, cs, toString(cu), toBase58String(dV.transactionId), true)
1015- if ((gF == gF))
1066+ let fg = value(dV.payments[0])
1067+ let cs = toBase58String(value(fg.assetId))
1068+ let cY = fg.amount
1069+ let gL = fl(cY, cs, toString(cu), toBase58String(dV.transactionId), true)
1070+ if ((gL == gL))
10161071 then {
1017- let cp = gF._3
1018- let cO = gF._2
1019- let gG = gF._1
1020- let dx = if (if ((fD > 0))
1021- then (fD > gG)
1072+ let cp = gL._3
1073+ let cO = gL._2
1074+ let gM = gL._1
1075+ let dx = if (if ((fJ > 0))
1076+ then (fJ > gM)
10221077 else false)
1023- then aK(makeString(["amount to receive is less than ", toString(fD)], ""))
1024- else gG
1025- let gt = invoke(aN, "emit", [dx], nil)
1026- if ((gt == gt))
1078+ then aK(makeString(["amount to receive is less than ", toString(fJ)], ""))
1079+ else gM
1080+ let gz = invoke(aN, "emit", [dx], nil)
1081+ if ((gz == gz))
10271082 then {
1028- let gv = {
1029- let aE = gt
1083+ let gB = {
1084+ let aE = gz
10301085 if ($isInstanceOf(aE, "Address"))
10311086 then {
1032- let gw = aE
1033- invoke(gw, "emit", [dx], nil)
1087+ let gC = aE
1088+ invoke(gC, "emit", [dx], nil)
10341089 }
10351090 else unit
10361091 }
1037- if ((gv == gv))
1092+ if ((gB == gB))
10381093 then {
1039- let gz = if (gn)
1094+ let gF = if (gt)
10401095 then {
1041- let gA = invoke(bm, "stake", nil, [AttachedPayment(cv, dx)])
1042- if ((gA == gA))
1096+ let gG = invoke(bm, "stake", nil, [AttachedPayment(cv, dx)])
1097+ if ((gG == gG))
10431098 then nil
10441099 else throw("Strict value is not equal to itself.")
10451100 }
10461101 else [ScriptTransfer(dV.caller, dx, cv)]
1047- let fU = if ((cp > 0))
1102+ let ga = if ((cp > 0))
10481103 then [ScriptTransfer(aR, cp, fromBase58String(cs))]
10491104 else nil
1050- let gH = if ((this == aR))
1105+ let gN = if ((this == aR))
10511106 then $Tuple2(0, 0)
10521107 else {
1053- let gI = if ((fa.assetId == bg))
1108+ let gO = if ((fg.assetId == bg))
10541109 then true
10551110 else false
1056- if (gI)
1111+ if (gO)
10571112 then $Tuple2(-(cp), 0)
10581113 else $Tuple2(0, -(cp))
10591114 }
1060- let eK = gH._1
1061- let eL = gH._2
1062- let gJ = eJ(eK, eL, 0)
1063- let ga = gJ._1
1064- let eA = gJ._2
1065- $Tuple2((((cO ++ gz) ++ fU) ++ ga), dx)
1115+ let eQ = gN._1
1116+ let eR = gN._2
1117+ let gP = eP(eQ, eR, 0)
1118+ let gg = gP._1
1119+ let eG = gP._2
1120+ $Tuple2((((cO ++ gF) ++ ga) ++ gg), dx)
10661121 }
10671122 else throw("Strict value is not equal to itself.")
10681123 }
10691124 else throw("Strict value is not equal to itself.")
10701125 }
10711126 else throw("Strict value is not equal to itself.")
10721127 }
10731128 else throw("Strict value is not equal to itself.")
10741129 }
10751130
10761131
10771132
10781133 @Callable(dV)
1079-func putForFree (gK) = if ((0 > gK))
1134+func putForFree (gQ) = if ((0 > gQ))
10801135 then throw("Wrong slpg")
10811136 else if ((size(dV.payments) != 2))
10821137 then throw("2 pmnts expd")
10831138 else {
1084- let gL = fb(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gK, false, false, true, 0, "")
1085- let cO = gL._9
1086- let gr = toBigInt(value(dV.payments[0]).amount)
1087- let gs = toBigInt(value(dV.payments[1]).amount)
1088- let eI = eB(gr, gs, toBigInt(0))
1089- if ((eI == eI))
1139+ let gR = fh(toString(dV.caller), toBase58String(dV.transactionId), AttachedPayment(value(dV.payments[0]).assetId, value(dV.payments[0]).amount), dV.payments[1], gQ, false, false, true, 0, "")
1140+ let cO = gR._9
1141+ let gx = toBigInt(value(dV.payments[0]).amount)
1142+ let gy = toBigInt(value(dV.payments[1]).amount)
1143+ let eO = eH(gx, gy, toBigInt(0))
1144+ if ((eO == eO))
10901145 then {
1091- let gM = eJ(0, 0, 0)
1092- let ga = gM._1
1093- let eA = gM._2
1094- let gb = eN(eI, eA)
1095- if ((gb == gb))
1096- then (cO ++ ga)
1146+ let gS = eP(0, 0, 0)
1147+ let gg = gS._1
1148+ let eG = gS._2
1149+ let gh = eT(eO, eG)
1150+ if ((gh == gh))
1151+ then (cO ++ gg)
10971152 else throw("Strict value is not equal to itself.")
10981153 }
10991154 else throw("Strict value is not equal to itself.")
11001155 }
11011156
11021157
11031158
11041159 @Callable(dV)
11051160 func get () = {
1106- let dk = eZ(dV)
1107- let gN = dk._1
1161+ let dk = ff(dV)
1162+ let gT = dk._1
11081163 let cN = dk._2
11091164 let cY = dk._3
11101165 let cs = dk._4
11111166 let cO = dk._5
1112- let ep = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1113- if ((ep == ep))
1167+ let ew = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1168+ if ((ew == ew))
11141169 then {
1115- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(cY))
1116- let gO = eJ(-(gN), -(cN), 0)
1117- let ga = gO._1
1118- let eA = gO._2
1119- let gb = eN(eI, eA)
1120- if ((gb == gb))
1121- then (cO ++ ga)
1170+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(cY))
1171+ let gU = eP(-(gT), -(cN), 0)
1172+ let gg = gU._1
1173+ let eG = gU._2
1174+ let gh = eT(eO, eG)
1175+ if ((gh == gh))
1176+ then (cO ++ gg)
11221177 else throw("Strict value is not equal to itself.")
11231178 }
11241179 else throw("Strict value is not equal to itself.")
11251180 }
11261181
11271182
11281183
11291184 @Callable(dV)
1130-func getOneTknV2 (fC,fD) = {
1131- let gC = {
1132- let fL = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1133- if ($isInstanceOf(fL, "Boolean"))
1134- then fL
1135- else throw(($getType(fL) + " couldn't be cast to Boolean"))
1185+func getOneTknV2 (fI,fJ) = {
1186+ let gI = {
1187+ let fR = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1188+ if ($isInstanceOf(fR, "Boolean"))
1189+ then fR
1190+ else throw(($getType(fR) + " couldn't be cast to Boolean"))
11361191 }
1137- let gP = if (if (aP())
1192+ let gV = if (if (aP())
11381193 then true
11391194 else (be == s))
11401195 then true
1141- else gC
1142- let gE = [if (if (!(gP))
1196+ else gI
1197+ let gK = [if (if (!(gV))
11431198 then true
1144- else gf(dV))
1199+ else gl(dV))
11451200 then true
11461201 else aK("get operation is blocked by admin"), if ((size(dV.payments) == 1))
11471202 then true
11481203 else aK("exactly 1 payment are expected")]
1149- if ((gE == gE))
1204+ if ((gK == gK))
11501205 then {
1151- let gQ = fB(fC, fD, dV.payments, dV.caller, dV.originCaller, dV.transactionId)
1152- let cO = gQ._1
1153- let fN = gQ._2
1154- $Tuple2(cO, fN)
1206+ let gW = fH(fI, fJ, dV.payments, dV.caller, dV.originCaller, dV.transactionId)
1207+ let cO = gW._1
1208+ let fT = gW._2
1209+ $Tuple2(cO, fT)
11551210 }
11561211 else throw("Strict value is not equal to itself.")
11571212 }
11581213
11591214
11601215
11611216 @Callable(dV)
11621217 func refreshDLp () = {
1163- let gR = valueOrElse(getInteger(al), 0)
1164- let gS = if (((height - gR) >= ao))
1218+ let gX = valueOrElse(getInteger(al), 0)
1219+ let gY = if (((height - gX) >= ao))
11651220 then unit
11661221 else aK(makeString([toString(ao), " blocks have not passed since the previous call"], ""))
1167- if ((gS == gS))
1222+ if ((gY == gY))
11681223 then {
1169- let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ak), "0")), aM("invalid dLp"))
1170- let gT = eJ(0, 0, 0)
1171- let gU = gT._1
1172- let eA = gT._2
1173- let eM = if ((eU != eA))
1174- then gU
1224+ let fa = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ak), "0")), aM("invalid dLp"))
1225+ let gZ = eP(0, 0, 0)
1226+ let ha = gZ._1
1227+ let eG = gZ._2
1228+ let eS = if ((fa != eG))
1229+ then ha
11751230 else aK("nothing to refresh")
1176- $Tuple2(eM, toString(eA))
1231+ $Tuple2(eS, toString(eG))
11771232 }
11781233 else throw("Strict value is not equal to itself.")
11791234 }
11801235
11811236
11821237
11831238 @Callable(dV)
1184-func getOneTknV2READONLY (fC,gV) = {
1239+func getOneTknV2READONLY (fI,hb) = {
11851240 let ba = aS()
11861241 let cw = ba[w]
11871242 let cx = ba[x]
11881243 let cv = ba[v]
11891244 let dF = [toBigInt(bF(cw)), toBigInt(bF(cx))]
1190- let ez = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
1245+ let eF = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cv)), "invalid lp asset").quantity)
11911246 let bS = dE(dF)
1192- let bR = (bS - fraction(toBigInt(gV), bS, ez))
1193- let gW = if ((fC == cw))
1247+ let bR = (bS - fraction(toBigInt(hb), bS, eF))
1248+ let hc = if ((fI == cw))
11941249 then 0
1195- else if ((fC == cx))
1250+ else if ((fI == cx))
11961251 then 1
11971252 else throw("invalid out asset id")
1198- let gX = ej(dF, gW, bR)
1199- let gY = (dF[gW] - gX)
1200- let gZ = max([0, toInt((gY - f))])
1201- let ha = cn(gZ)
1202- let fM = ha._1
1203- let cp = ha._2
1204- $Tuple2(nil, $Tuple2(fM, cp))
1253+ let hd = es(dF, hc, bR)
1254+ let he = (dF[hc] - hd)
1255+ let hf = max([0, toInt((he - f))])
1256+ let hg = cn(hf)
1257+ let fS = hg._1
1258+ let cp = hg._2
1259+ $Tuple2(nil, $Tuple2(fS, cp))
12051260 }
12061261
12071262
12081263
12091264 @Callable(dV)
1210-func getOneTknV2WithBonusREADONLY (fC,gV) = {
1265+func getOneTknV2WithBonusREADONLY (fI,hb) = {
12111266 let ba = aS()
12121267 let cw = ba[w]
12131268 let cx = ba[x]
12141269 let cv = ba[v]
12151270 let cC = bF(cw)
12161271 let cE = bF(cx)
1217- let hb = {
1218- let fL = invoke(this, "getOneTknV2READONLY", [fC, gV], nil)
1219- if ($isInstanceOf(fL, "(Int, Int)"))
1220- then fL
1221- else throw(($getType(fL) + " couldn't be cast to (Int, Int)"))
1272+ let hh = {
1273+ let fR = invoke(this, "getOneTknV2READONLY", [fI, hb], nil)
1274+ if ($isInstanceOf(fR, "(Int, Int)"))
1275+ then fR
1276+ else throw(($getType(fR) + " couldn't be cast to (Int, Int)"))
12221277 }
1223- let fM = hb._1
1224- let cp = hb._2
1225- let dk = cq("", cv, gV, this)
1278+ let fS = hh._1
1279+ let cp = hh._2
1280+ let dk = cq("", cv, hb, this)
12261281 let cM = dk._1
12271282 let cN = dk._2
1228- let hc = (cM + cN)
1229- let fA = if ((hc == 0))
1230- then if ((fM == 0))
1283+ let hi = (cM + cN)
1284+ let fG = if ((hi == 0))
1285+ then if ((fS == 0))
12311286 then 0
12321287 else throw("bonus calculation error")
1233- else fraction((fM - hc), a, hc)
1234- $Tuple2(nil, $Tuple3(fM, cp, fA))
1288+ else fraction((fS - hi), a, hi)
1289+ $Tuple2(nil, $Tuple3(fS, cp, fG))
12351290 }
12361291
12371292
12381293
12391294 @Callable(dV)
1240-func getNoLess (hd,he) = {
1241- let dk = eZ(dV)
1295+func getNoLess (hj,hk) = {
1296+ let dk = ff(dV)
12421297 let cM = dk._1
12431298 let cN = dk._2
12441299 let cY = dk._3
12451300 let cs = dk._4
12461301 let cO = dk._5
1247- if ((hd > cM))
1248- then throw(((("Failed: " + toString(cM)) + " < ") + toString(hd)))
1249- else if ((he > cN))
1250- then throw(((("Failed: " + toString(cN)) + " < ") + toString(he)))
1302+ if ((hj > cM))
1303+ then throw(((("Failed: " + toString(cM)) + " < ") + toString(hj)))
1304+ else if ((hk > cN))
1305+ then throw(((("Failed: " + toString(cN)) + " < ") + toString(hk)))
12511306 else {
1252- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(cY))
1253- let hf = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1254- if ((hf == hf))
1307+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(cY))
1308+ let hl = invoke(aN, "burn", [cY], [AttachedPayment(cs, cY)])
1309+ if ((hl == hl))
12551310 then {
1256- let hg = eJ(-(cM), -(cN), 0)
1257- let ga = hg._1
1258- let eA = hg._2
1259- let gb = eN(eI, eA)
1260- if ((gb == gb))
1261- then (cO ++ ga)
1311+ let hm = eP(-(cM), -(cN), 0)
1312+ let gg = hm._1
1313+ let eG = hm._2
1314+ let gh = eT(eO, eG)
1315+ if ((gh == gh))
1316+ then (cO ++ gg)
12621317 else throw("Strict value is not equal to itself.")
12631318 }
12641319 else throw("Strict value is not equal to itself.")
12651320 }
12661321 }
12671322
12681323
12691324
12701325 @Callable(dV)
12711326 func unstakeAndGet (co) = {
1272- let hh = if ((size(dV.payments) != 0))
1327+ let hn = if ((size(dV.payments) != 0))
12731328 then throw("No pmnts expd")
12741329 else true
1275- if ((hh == hh))
1330+ if ((hn == hn))
12761331 then {
12771332 let ce = aS()
1278- let hi = bk()
1279- let gu = fromBase58String(ce[v])
1280- let hj = valueOrErrorMessage(addressFromString(hi[C]), "Wr st addr")
1281- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(0))
1282- let hk = invoke(hj, "unstake", [toBase58String(gu), co], nil)
1283- if ((hk == hk))
1333+ let ho = bk()
1334+ let gA = fromBase58String(ce[v])
1335+ let hp = valueOrErrorMessage(addressFromString(ho[C]), "Wr st addr")
1336+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(0))
1337+ let hq = invoke(hp, "unstake", [toBase58String(gA), co], nil)
1338+ if ((hq == hq))
12841339 then {
1285- let dk = cq(toBase58String(dV.transactionId), toBase58String(gu), co, dV.caller)
1340+ let dk = cq(toBase58String(dV.transactionId), toBase58String(gA), co, dV.caller)
12861341 let cM = dk._1
12871342 let cN = dk._2
12881343 let cA = parseIntValue(dk._9)
12891344 let cO = dk._10
1290- let hl = if (if (aP())
1345+ let hr = if (if (aP())
12911346 then true
12921347 else (cA == s))
12931348 then throw(("Blocked: " + toString(cA)))
12941349 else true
1295- if ((hl == hl))
1350+ if ((hr == hr))
12961351 then {
1297- let hm = invoke(aN, "burn", [co], [AttachedPayment(gu, co)])
1298- if ((hm == hm))
1352+ let hs = invoke(aN, "burn", [co], [AttachedPayment(gA, co)])
1353+ if ((hs == hs))
12991354 then {
1300- let hn = eJ(-(cM), -(cN), 0)
1301- let ga = hn._1
1302- let eA = hn._2
1303- let gb = eN(eI, eA)
1304- if ((gb == gb))
1305- then (cO ++ ga)
1355+ let ht = eP(-(cM), -(cN), 0)
1356+ let gg = ht._1
1357+ let eG = ht._2
1358+ let gh = eT(eO, eG)
1359+ if ((gh == gh))
1360+ then (cO ++ gg)
13061361 else throw("Strict value is not equal to itself.")
13071362 }
13081363 else throw("Strict value is not equal to itself.")
13091364 }
13101365 else throw("Strict value is not equal to itself.")
13111366 }
13121367 else throw("Strict value is not equal to itself.")
13131368 }
13141369 else throw("Strict value is not equal to itself.")
13151370 }
13161371
13171372
13181373
13191374 @Callable(dV)
1320-func unstakeAndGetNoLess (ho,hp,he) = {
1321- let gP = if (aP())
1375+func unstakeAndGetNoLess (hu,hv,hk) = {
1376+ let gV = if (aP())
13221377 then true
13231378 else (be == s)
1324- let gE = [if (!(gP))
1379+ let gK = [if (!(gV))
13251380 then true
13261381 else throw("get operation is blocked by admin"), if ((size(dV.payments) == 0))
13271382 then true
13281383 else throw("no payments are expected")]
1329- if ((gE == gE))
1384+ if ((gK == gK))
13301385 then {
1331- let eI = eB(toBigInt(0), toBigInt(0), toBigInt(0))
1332- let hk = invoke(bm, "unstake", [toBase58String(bf), ho], nil)
1333- if ((hk == hk))
1386+ let eO = eH(toBigInt(0), toBigInt(0), toBigInt(0))
1387+ let hq = invoke(bm, "unstake", [toBase58String(bf), hu], nil)
1388+ if ((hq == hq))
13341389 then {
1335- let hq = cq(toBase58String(dV.transactionId), toBase58String(bf), ho, dV.caller)
1336- let cM = hq._1
1337- let cN = hq._2
1338- let cO = hq._10
1339- let hr = [if ((cM >= hp))
1390+ let hw = cq(toBase58String(dV.transactionId), toBase58String(bf), hu, dV.caller)
1391+ let cM = hw._1
1392+ let cN = hw._2
1393+ let cO = hw._10
1394+ let hx = [if ((cM >= hv))
13401395 then true
1341- else throw(makeString(["amount asset amount to receive is less than ", toString(hp)], "")), if ((cN >= he))
1396+ else throw(makeString(["amount asset amount to receive is less than ", toString(hv)], "")), if ((cN >= hk))
13421397 then true
1343- else throw(makeString(["price asset amount to receive is less than ", toString(he)], ""))]
1344- if ((hr == hr))
1398+ else throw(makeString(["price asset amount to receive is less than ", toString(hk)], ""))]
1399+ if ((hx == hx))
13451400 then {
1346- let hf = invoke(aN, "burn", [ho], [AttachedPayment(bf, ho)])
1347- if ((hf == hf))
1401+ let hl = invoke(aN, "burn", [hu], [AttachedPayment(bf, hu)])
1402+ if ((hl == hl))
13481403 then {
1349- let hs = eJ(-(cM), -(cN), 0)
1350- let ga = hs._1
1351- let eA = hs._2
1352- let gb = eN(eI, eA)
1353- if ((gb == gb))
1354- then (cO ++ ga)
1404+ let hy = eP(-(cM), -(cN), 0)
1405+ let gg = hy._1
1406+ let eG = hy._2
1407+ let gh = eT(eO, eG)
1408+ if ((gh == gh))
1409+ then (cO ++ gg)
13551410 else throw("Strict value is not equal to itself.")
13561411 }
13571412 else throw("Strict value is not equal to itself.")
13581413 }
13591414 else throw("Strict value is not equal to itself.")
13601415 }
13611416 else throw("Strict value is not equal to itself.")
13621417 }
13631418 else throw("Strict value is not equal to itself.")
13641419 }
13651420
13661421
13671422
13681423 @Callable(dV)
1369-func unstakeAndGetOneTknV2 (ho,fC,fD) = {
1370- let gC = {
1371- let fL = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1372- if ($isInstanceOf(fL, "Boolean"))
1373- then fL
1374- else throw(($getType(fL) + " couldn't be cast to Boolean"))
1424+func unstakeAndGetOneTknV2 (hu,fI,fJ) = {
1425+ let gI = {
1426+ let fR = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1427+ if ($isInstanceOf(fR, "Boolean"))
1428+ then fR
1429+ else throw(($getType(fR) + " couldn't be cast to Boolean"))
13751430 }
1376- let gP = if (if (aP())
1431+ let gV = if (if (aP())
13771432 then true
13781433 else (be == s))
13791434 then true
1380- else gC
1381- let gE = [if (if (!(gP))
1435+ else gI
1436+ let gK = [if (if (!(gV))
13821437 then true
1383- else gf(dV))
1438+ else gl(dV))
13841439 then true
13851440 else aK("get operation is blocked by admin"), if ((size(dV.payments) == 0))
13861441 then true
13871442 else aK("no payments are expected")]
1388- if ((gE == gE))
1443+ if ((gK == gK))
13891444 then {
13901445 let ce = aS()
1391- let hi = bk()
1392- let gu = fromBase58String(ce[v])
1393- let hj = valueOrErrorMessage(addressFromString(hi[C]), "Wr st addr")
1394- let hk = invoke(hj, "unstake", [toBase58String(gu), ho], nil)
1395- if ((hk == hk))
1446+ let ho = bk()
1447+ let gA = fromBase58String(ce[v])
1448+ let hp = valueOrErrorMessage(addressFromString(ho[C]), "Wr st addr")
1449+ let hq = invoke(hp, "unstake", [toBase58String(gA), hu], nil)
1450+ if ((hq == hq))
13961451 then {
1397- let ht = fB(fC, fD, [AttachedPayment(gu, ho)], dV.caller, dV.originCaller, dV.transactionId)
1398- let cO = ht._1
1399- let fN = ht._2
1400- $Tuple2(cO, fN)
1452+ let hz = fH(fI, fJ, [AttachedPayment(gA, hu)], dV.caller, dV.originCaller, dV.transactionId)
1453+ let cO = hz._1
1454+ let fT = hz._2
1455+ $Tuple2(cO, fT)
14011456 }
14021457 else throw("Strict value is not equal to itself.")
14031458 }
14041459 else throw("Strict value is not equal to itself.")
14051460 }
14061461
14071462
14081463
14091464 @Callable(dV)
1410-func putOneTknV2WithBonusREADONLY (hu,hv) = {
1465+func putOneTknV2WithBonusREADONLY (hA,hB) = {
14111466 let ba = aS()
14121467 let cw = ba[w]
14131468 let cx = ba[x]
14141469 let cv = ba[v]
1415- let hw = ff(hu, hv, "", "", true)
1416- let fv = hw._1
1417- let cO = hw._2
1418- let cp = hw._3
1419- let fA = hw._4
1420- $Tuple2(nil, $Tuple3(fv, cp, fA))
1470+ let hC = fl(hA, hB, "", "", true)
1471+ let fB = hC._1
1472+ let cO = hC._2
1473+ let cp = hC._3
1474+ let fG = hC._4
1475+ $Tuple2(nil, $Tuple3(fB, cp, fG))
14211476 }
14221477
14231478
14241479
14251480 @Callable(dV)
1426-func putOneTknV2WithoutTakeFeeREADONLY (hu,hv) = {
1481+func putOneTknV2WithoutTakeFeeREADONLY (hA,hB) = {
14271482 let ba = aS()
14281483 let cw = ba[w]
14291484 let cx = ba[x]
14301485 let cv = ba[v]
1431- let hx = ff(hu, hv, "", "", false)
1432- let fv = hx._1
1433- let cO = hx._2
1434- let cp = hx._3
1435- let fA = hx._4
1436- $Tuple2(nil, $Tuple3(fv, cp, fA))
1486+ let hD = fl(hA, hB, "", "", false)
1487+ let fB = hD._1
1488+ let cO = hD._2
1489+ let cp = hD._3
1490+ let fG = hD._4
1491+ $Tuple2(nil, $Tuple3(fB, cp, fG))
14371492 }
14381493
14391494
14401495
14411496 @Callable(dV)
1442-func activate (hy,hz) = if ((toString(dV.caller) != toString(aN)))
1497+func activate (hE,hF) = if ((toString(dV.caller) != toString(aN)))
14431498 then throw("denied")
1444- else $Tuple2([StringEntry(ae(), hy), StringEntry(af(), hz)], "success")
1499+ else $Tuple2([StringEntry(ae(), hE), StringEntry(af(), hF)], "success")
14451500
14461501
14471502
14481503 @Callable(dV)
1449-func setS (hA,hl) = if ((toString(dV.caller) != aG(this, ah())))
1450- then ge
1451- else [StringEntry(hA, hl)]
1504+func setS (hG,hr) = if ((toString(dV.caller) != aG(this, ah())))
1505+ then gk
1506+ else [StringEntry(hG, hr)]
14521507
14531508
14541509
14551510 @Callable(dV)
1456-func setI (hA,hl) = if ((toString(dV.caller) != aG(this, ah())))
1457- then ge
1458- else [IntegerEntry(hA, hl)]
1511+func setI (hG,hr) = if ((toString(dV.caller) != aG(this, ah())))
1512+ then gk
1513+ else [IntegerEntry(hG, hr)]
14591514
14601515
14611516
14621517 @Callable(dV)
14631518 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aS())
14641519
14651520
14661521
14671522 @Callable(dV)
14681523 func getAccBalanceWrapperREADONLY (bG) = $Tuple2(nil, bF(bG))
14691524
14701525
14711526
14721527 @Callable(dV)
14731528 func calcPricesWrapperREADONLY (bY,bZ,cd) = {
1474- let hB = cc(bY, bZ, cd)
1475- $Tuple2(nil, [toString(hB[0]), toString(hB[1]), toString(hB[2])])
1529+ let hH = cc(bY, bZ, cd)
1530+ $Tuple2(nil, [toString(hH[0]), toString(hH[1]), toString(hH[2])])
14761531 }
14771532
14781533
14791534
14801535 @Callable(dV)
1481-func fromX18WrapperREADONLY (L,hC) = $Tuple2(nil, K(parseBigIntValue(L), hC))
1536+func fromX18WrapperREADONLY (L,hI) = $Tuple2(nil, K(parseBigIntValue(L), hI))
14821537
14831538
14841539
14851540 @Callable(dV)
14861541 func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
14871542
14881543
14891544
14901545 @Callable(dV)
14911546 func calcPriceBigIntWrapperREADONLY (bI,bJ) = $Tuple2(nil, toString(bH(parseBigIntValue(bI), parseBigIntValue(bJ))))
14921547
14931548
14941549
14951550 @Callable(dV)
1496-func estimatePutOperationWrapperREADONLY (cr,bN,cQ,cR,cS,cT,hD,cU,cV) = $Tuple2(nil, cP(cr, bN, cQ, cR, cS, cT, hD, cU, cV, true, false, 0, ""))
1551+func estimatePutOperationWrapperREADONLY (cr,bN,cQ,cR,cS,cT,hJ,cU,cV) = $Tuple2(nil, cP(cr, bN, cQ, cR, cS, cT, hJ, cU, cV, true, false, 0, ""))
14971552
14981553
14991554
15001555 @Callable(dV)
1501-func estimateGetOperationWrapperREADONLY (cr,hE,ct,hD) = {
1502- let dk = cq(cr, hE, ct, addressFromStringValue(hD))
1556+func estimateGetOperationWrapperREADONLY (cr,hK,ct,hJ) = {
1557+ let dk = cq(cr, hK, ct, addressFromStringValue(hJ))
15031558 $Tuple2(nil, $Tuple10(dk._1, dk._2, dk._3, dk._4, dk._5, dk._6, dk._7, toString(dk._8), dk._9, dk._10))
15041559 }
15051560
15061561
15071562
15081563 @Callable(dV)
15091564 func getFeeREADONLY () = $Tuple2(nil, aj)
15101565
15111566
1512-@Verifier(hF)
1513-func hG () = {
1514- let hH = {
1515- let aE = gc()
1567+@Verifier(hL)
1568+func hM () = {
1569+ let hN = {
1570+ let aE = gi()
15161571 if ($isInstanceOf(aE, "ByteVector"))
15171572 then {
1518- let gg = aE
1519- gg
1573+ let gm = aE
1574+ gm
15201575 }
15211576 else if ($isInstanceOf(aE, "Unit"))
1522- then hF.senderPublicKey
1577+ then hL.senderPublicKey
15231578 else throw("Match error")
15241579 }
1525- let aE = hF
1580+ let aE = hL
15261581 if ($isInstanceOf(aE, "Order"))
15271582 then {
1528- let eQ = aE
1529- let hI = aQ()
1530- let hJ = eP(eQ)
1531- let hK = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1532- let hL = sigVerify(eQ.bodyBytes, eQ.proofs[1], hI)
1533- if (if (if (hJ)
1534- then hK
1583+ let eW = aE
1584+ let hO = aQ()
1585+ let hP = eV(eW)
1586+ let hQ = sigVerify(eW.bodyBytes, eW.proofs[0], eW.senderPublicKey)
1587+ let hR = sigVerify(eW.bodyBytes, eW.proofs[1], hO)
1588+ if (if (if (hP)
1589+ then hQ
15351590 else false)
1536- then hL
1591+ then hR
15371592 else false)
15381593 then true
1539- else az(hJ, hK, hL)
1594+ else az(hP, hQ, hR)
15401595 }
15411596 else if ($isInstanceOf(aE, "SetScriptTransaction"))
15421597 then {
15431598 let dI = aE
1544- let hM = blake2b256(value(dI.script))
1545- let hN = fromBase64String(value(getString(aN, ax())))
1546- let hO = scriptHash(this)
1547- if (if ((hN == hM))
1548- then (hO != hM)
1599+ let hS = blake2b256(value(dI.script))
1600+ let hT = fromBase64String(value(getString(aN, ax())))
1601+ let hU = scriptHash(this)
1602+ if (if ((hT == hS))
1603+ then (hU != hS)
15491604 else false)
15501605 then true
1551- else sigVerify(hF.bodyBytes, hF.proofs[0], hH)
1606+ else sigVerify(hL.bodyBytes, hL.proofs[0], hN)
15521607 }
1553- else sigVerify(hF.bodyBytes, hF.proofs[0], hH)
1608+ else sigVerify(hL.bodyBytes, hL.proofs[0], hN)
15541609 }
15551610

github/deemru/w8io/169f3d6 
388.94 ms