tx · RfVvRpPYsqrkmTxBW8jA1ZTLYNMDsUszYsKCKXErxSj

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02300000 Waves

2023.02.15 14:09 [2450646] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "RfVvRpPYsqrkmTxBW8jA1ZTLYNMDsUszYsKCKXErxSj", "fee": 2300000, "feeAssetId": null, "timestamp": 1676459360481, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "5FrWQersZXSoZusRg5CZg9RJvrwdCyWnFVLPAtLDYkhSHvRVnJxqFtzXPu9NzGsTmAomp4aDbsBV8M9u9TBsjoYP" ], "script": "base64:BgLqJQgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzcwMDM3NjIiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIHJG1hdGNoMCIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siBmFzc2V0MSIGYXNzZXQyIglhc3NldE51bTEiCWFzc2V0TnVtMiICZWUiA3JlcyICbHAiD3N0YWtpbmdDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIQc2xwaXBhZ2VDb250cmFjdCINcHJpY2VEZWNpbWFscyILY2hlY2tDYWxsZXIiEG1hdGhjaGVyUHViNThTdHIiCm1hdGhjZXJQdWIiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCILbGVnYWN5UG9vbHMiE2Fzc2V0c1N0b3JlQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiC3ByaWNlQXNzZXRzIgVjaGVrcyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xDb25maWciD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIgFiIgdhc3NldElkIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIBciIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIDZmVlIgNjZmciAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleWYAAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUFAWIAAWYCDkdXWHZpcnR1YWxQT09MAAFnAghQT09MU19MUAABaACAiXoAAWkJAGgCCQBoAgBkAOgHAOgHAAFqAgJfXwABawIAAAFsAAEAAW0AAgABbgADAAFvAAQAAXAAAQABcQACAAFyAAMAAXMAAQABdAACAAF1AAMAAXYABAABdwAFAAF4AAYAAXkABwABegAIAAFBAAkAAUIACgABQwALAAFEAgtXWF9FTUlTU0lPTgABRQkAzAgCBQFEBQNuaWwBAUYAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAEBRwACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQFIAAIiJXNfX2FsbG93ZWRMcFN0YWJsZUFkZG9uU2NyaXB0SGFzaAEBSQACECVzX19zd2FwQ29udHJhY3QBAUoAAhElc19fZmFjdG9yeUNvbmZpZwEBSwACECVzX19scFRva2Vuc0xpc3QBAUwAAhYlcyVzX19wb29sX19zY3JpcHRIYXNoAQFNAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQFOAAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEBTwACDyVzX19sZWdhY3lQb29scwEBUAACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFRAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFSAAIQJXNfX2FkbWluUHViS2V5cwEBUwACFyVzX19hc3NldHNTdG9yZUNvbnRyYWN0AQFUAAIaJXNfX3ZvdGluZ0VtaXNzaW9uQ29udHJhY3QBAVUACQC5CQIJAMwIAgICJXMJAMwIAgILcHJpY2VBc3NldHMFA25pbAUBagEBVgACESVzX19wcmljZURlY2ltYWxzAQFXAAIMJXNfX3NodXRkb3duAQFYAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAVkBAVoJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQFaAQJhYQIBWgJhYgkArAICCQCsAgIJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQFaAgJfXwkApAMBBQJhYgECYWMBAmFkCQCsAgICKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAKQDAQUCYWQBAmFlAQJhZgkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhZgECYWcCAmFoAmFpCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhaAICX18FAmFpAghfX2NvbmZpZwECYWoBAmFrBAJhbAUCYWsEAmFoCAUCYWwCXzEEAmFpCAUCYWwCXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhaAkAzAgCCQCkAwEFAmFpCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAWoBAmFtAAkAuQkCCQDMCAICAiVzCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAWoBAmFuAQJhbwkArAICCQCsAgICCCVzJXMlc19fBQJhbwIYX19tYXBwaW5nc19fbHBBc3NldDJQb29sAQJhcAICYXECYXIJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwUCYXECAl9fBQJhcgIeX19tYXBwaW5nc19fUG9vbEFzc2V0czJMcEFzc2V0AQJhcwEBWgkArAICAg4lcyVzX19zcHJlYWRfXwUBWgECYXQBAmF1CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF1AiNfX21hcHBpbmdzX19wb29sQ29udHJhY3QyUG9vbEFzc2V0cwECYXYCAmFxAmFyCQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18JAKQDAQUCYXECAl9fCQCkAwEFAmFyAiNfX21hcHBpbmdzX19wb29sQXNzZXRzMlBvb2xDb250cmFjdAECYXcBAmF1CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF1AiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYXgBAmFvCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFvAiBfX21hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAECYXkCAmF6AmFBCQCsAgIJAKwCAgkArAICAhQlcyVzJXNfX3d4RW1pc3Npb25fXwUCYXoCAl9fBQJhQQECYUIBAVoJAKwCAgINJXMlc19faW5GZWVfXwUBWgECYUMAAhAlc19faW5GZWVEZWZhdWx0AQJhRAEBWgkArAICAg4lcyVzX19vdXRGZWVfXwUBWgECYUUAAhElc19fb3V0RmVlRGVmYXVsdAECYUYBAmFHCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYUcJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhRwECYUgBAmFHCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYUcJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhRwECYUkBAmFHCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYUcJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhRwACYUoAAQACYUsAAgACYUwAAwACYU0ABAACYU4ABQACYU8ABgACYVAABwACYVEACAACYVIACQACYVMACgACYVQACwECYVUBAmFWCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFWBQJhSwECYVcBAmFWCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFWBQJhTgECYVgBAmFWCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFWBQJhSgECYVkBAmFWCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFWBQJhUwECYVoABAJiYQkAoggBCQEBVQADCQABAgUCYmECBlN0cmluZwQCYmIFAmJhAwkAAAIJALECAQUCYmIAAAUDbmlsCQC1CQIFAmJiBQFqBQNuaWwBAmJjAAQCYmEJAKIIAQkBAVAAAwkAAQIFAmJhAgZTdHJpbmcEAmJiBQJiYQkA2QQBBQJiYgMJAAECBQJiYQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJiZAAEAmJhCQCiCAEJAQFRAAMJAAECBQJiYQIGU3RyaW5nBAJiYgUCYmEJANkEAQUCYmIDCQABAgUCYmECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYmUJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAACYmYJAAIBAg9UZXN0IGVycm9yIGhlcmUBAmJnAQJiaAMJAAACCAUCYmgGY2FsbGVyBQR0aGlzBgUCYmUBAmJpAQJiaAQCYmEJAQJiYwADCQABAgUCYmECCkJ5dGVWZWN0b3IEAmJqBQJiYQMJAAACCAUCYmgPY2FsbGVyUHVibGljS2V5BQJiagYFAmJlAwkAAQIFAmJhAgRVbml0CQECYmcBBQJiaAkAAgECC01hdGNoIGVycm9yAQJiawsCYmwCYm0CYm4CYm8CYnACYnECYnICYnMCYnQCYnUCYnYJALkJAgkAzAgCAhYlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCQDMCAIFAmJsCQDMCAIFAmJtCQDMCAIFAmJuCQDMCAIFAmJvCQDMCAIFAmJwCQDMCAIFAmJxCQDMCAIFAmJyCQDMCAIFAmJzCQDMCAIFAmJ0CQDMCAIFAmJ1CQDMCAIFAmJ2BQNuaWwFAWoBAmJ3BwJibAJibQJibgJibwJicAJicQJicgkAuQkCCQDMCAICDCVzJXMlcyVzJXMlcwkAzAgCBQJibAkAzAgCBQJibQkAzAgCBQJibgkAzAgCBQJibwkAzAgCBQJicAkAzAgCBQJicQkAzAgCBQJicgUDbmlsBQFqAQJieAsBWgJieQJiegJiQQJiQgJiQwJiRAJiRQJiRgJiRwJiSAkAuQkCCQDMCAICFiVzJWQlcyVzJXMlZCVkJWQlZCVkJXMJAMwIAgUBWgkAzAgCBQJieQkAzAgCBQJiegkAzAgCBQJiQQkAzAgCBQJiQgkAzAgCCQCkAwEFAmJDCQDMCAIJAKQDAQUCYkQJAMwIAgkApAMBBQJiRQkAzAgCCQCkAwEFAmJGCQDMCAIJAKQDAQUCYkcJAMwIAgUCYkgFA25pbAUBagECYkkCAmJKAmJLCQC5CQIJAMwIAgIEJWQlZAkAzAgCCQCkAwEFAmJKCQDMCAIJAKQDAQUCYksFA25pbAUBagECYkwBAVoEAmJNCQC1CQIJAQJhRgEJAQJhdAEFAVoFAWoEAmFoCQCRAwIFAmJNAAEEAmFpCQCRAwIFAmJNAAIJALUJAgkBAmFGAQkBAmFnAgUCYWgFAmFpBQFqAQJiTgICYk8CYlAEAmJRCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhZQEFAmJPAAAEAmJSCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFYAAAABAJiUwMJAAACBQJiUQAABAJiVAkAZAIFAmJSBQJiUAkAlQoDBQJiVAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgABQJiVAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFlAQUCYk8FAmJUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYwEFAmJUBQJiTwUDbmlsBgkAlQoDBQJiUQUDbmlsBwUCYlMBAmJVAQJiaAQCYlYJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBUgAFAWsFAWoDCQEPY29udGFpbnNFbGVtZW50AgUCYlYJANgEAQgFAmJoD2NhbGxlclB1YmxpY0tleQYEAmJXCQECYmkBBQJiaAMJAAACBQJiVwUCYlcGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiWAMCYUcCYlkCYloJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYUcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYlkFAmJaGwJiaAEXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkACQCUCgIFA25pbAkBAmFGAQkBAUkAAmJoASBnZXRMcEFzc2V0RnJvbVBvb2xBc3NldHNSRUFET05MWQICY2ECY2IDAwkAAAIFAmNhAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwkAAAIFAmNiAgVXQVZFUwcJAJQKAgUDbmlsBQR1bml0BAJjYwkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWUBBQJjYQQCY2QJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFlAQUCY2IEAmNlCQCdCAIFBHRoaXMJAQJhcAIJAKQDAQUCY2MJAKQDAQUCY2QEAmNmAwkAAAIFAmNlBQR1bml0BQR1bml0CQCwAgIJAQV2YWx1ZQEFAmNlAAQJAJQKAgUDbmlsBQJjZgJiaAEhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZAQJjZwkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmF4AQUCY2cCAAJiaAELY29uc3RydWN0b3IIAmNoAmNpAmJuAmJvAmJwAmJxAmNqAmNrBAJjbAkBAmJpAQUCYmgDCQAAAgUCY2wFAmNsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFKAAkBAmJ3BwUCY2gFAmNpBQJibgUCYm8FAmJwBQJicQUCY2oJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFWAAUCY2sFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENY29uc3RydWN0b3JWMgECY20EAmNsCQECYmkBBQJiaAMJAAACBQJjbAUCY2wEAmNuCQCnCAEJANkEAQUCY20DCQAAAgUCY24FAmNuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFNAAUCY20FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENY29uc3RydWN0b3JWMwQCYnMCYnQCYnUCYnYEAmNsCQECYmkBBQJiaAMJAAACBQJjbAUCY2wEAmFWCQC1CQIJAQJhRgEJAQFKAAUBagkAzAgCCQELU3RyaW5nRW50cnkCCQEBSgAJAQJiawsJAJEDAgUCYVYAAQkAkQMCBQJhVgACCQCRAwIFAmFWAAMJAJEDAgUCYVYABAkAkQMCBQJhVgAFCQCRAwIFAmFWAAYJAJEDAgUCYVYABwUCYnMFAmJ0BQJidQUCYnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENY29uc3RydWN0b3JWNAICY28CY3AEAmNsCQECYmkBBQJiaAMJAAACBQJjbAUCY2wJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4ABQJjbwkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAJALkJAgUCY3AFAWoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENY29uc3RydWN0b3JWNQECY3EEAmNsCQECYmkBBQJiaAMJAAACBQJjbAUCY2wJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJjcQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAQ1jb25zdHJ1Y3RvclY2AgJjcgJjcwQCY3QJAMwIAgkBAmJpAQUCYmgJAMwIAgMJAQIhPQIJAKYIAQUCY3IFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCY3QFAmN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCY3IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVUACQC5CQIFAmNzBQFqBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBCnNldE1hbmFnZXIBAmN1BAJjbAkBAmJpAQUCYmgDCQAAAgUCY2wFAmNsBAJjdgkA2QQBBQJjdQMJAAACBQJjdgUCY3YJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVEABQJjdQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAQ5jb25maXJtTWFuYWdlcgAEAmN3CQECYmQABAJjeAMJAQlpc0RlZmluZWQBBQJjdwYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY3gFAmN4BAJjeQMJAAACCAUCYmgPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJjdwYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY3kFAmN5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFQAAkA2AQBCQEFdmFsdWUBBQJjdwkAzAgCCQELRGVsZXRlRW50cnkBCQEBUQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAEJc2V0QWRtaW5zAQJjegQCY2wJAQJiaQEFAmJoAwkAAAIFAmNsBQJjbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAJALkJAgUCY3oFAWoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAEPYWN0aXZhdGVOZXdQb29sCAFaAmJBAmJCAmNBAmNCAmNDAmJIAmNEBAJjbAkBAmJVAQUCYmgDCQAAAgUCY2wFAmNsAwkBCWlzRGVmaW5lZAEJAKIIAQkBAmF0AQUBWgkAAgEJAKwCAgkArAICAg1Qb29sIGFkZHJlc3MgBQFaAhQgYWxyZWFkeSByZWdpc3RlcmVkLgQCY0UJAQJiTgIFAmJBAAEEAmNGCAUCY0UCXzEEAmNHCQECYk4CBQJiQgMIBQJjRQJfMwACAAEEAmNICAUCY0cCXzEEAmNJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAPEHAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUBWgkArAICAilObyBzY3JpcHQgaGFzIGJlZW4gZm91bmQgb24gcG9vbCBhY2NvdW50IAUBWgQCY0oJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQFMAAQCY0sJAJ0IAgUEdGhpcwkBAmFnAgkApAMBBQJjRgkApAMBBQJjSAMJAQlpc0RlZmluZWQBBQJjSwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFAmJBAgEvBQJiQgIcIGhhcyBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLgQCY0wJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBAmFnAgkApAMBBQJjRgkApAMBBQJjSAQCY00DCQAAAgUCYkECBVdBVkVTBQFpCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCYkEIZGVjaW1hbHMAAAAABQRET1dOBAJjTgMJAAACBQJiQgIFV0FWRVMFAWkJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiQghkZWNpbWFscwAAAAAFBERPV04EAmNPCQDCCAUFAmNBBQJjQgABAAgGBAJiegkAuAgBBQJjTwQCY1AJANgEAQUCYnoEAmNRCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVoCCGFjdGl2YXRlCQDMCAIFAmJBCQDMCAIFAmJCBQNuaWwFA25pbAMJAAACBQJjUQUCY1EDCQECIT0CBQJjUQIHc3VjY2VzcwkAAgECI1Bvb2wgaW5pdGlhbGlzYXRpb24gZXJyb3IgaGFwcGVuZWQuBAJjcQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFGAQkBAVMABAJjUgkA/AcEBQJjcQIOY3JlYXRlT3JVcGRhdGUJAMwIAgUCY1AJAMwIAgUCY0EJAMwIAgcFA25pbAUDbmlsAwkAAAIFAmNSBQJjUgQCY1MJAPwHBAUCY3ECCGFkZExhYmVsCQDMCAIFAmNQCQDMCAIFAWcFA25pbAUDbmlsAwkAAAIFAmNTBQJjUwQCY1QJAPwHBAUCY3ECB3NldExvZ28JAMwIAgUCY1AJAMwIAgUCY0QFA25pbAUDbmlsAwkAAAIFAmNUBQJjVAQCY1UJAPwHBAUCY3ECDWFkZEFzc2V0c0xpbmsJAMwIAgUCYkEJAMwIAgUCYkIJAMwIAgUCY1AFA25pbAUDbmlsAwkAAAIFAmNVBQJjVQQCY1YJAPwHBAUCY3ECGGluY3JlYXNlQXNzZXRQb29sc051bWJlcgkAzAgCBQJiQQUDbmlsBQNuaWwDCQAAAgUCY1YFAmNWCQCUCgIJAM4IAgkAzggCCAUCY0UCXzIIBQJjRwJfMgkAzAgCBQJjTwkAzAgCCQEEQnVybgIFAmJ6AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgkApAMBBQJjRgkApAMBBQJjSAkBAmJ4CwUBWgkApAMBBQFsBQJjUAUCYkEFAmJCBQJjTQUCY04FAmNGBQJjSAUBaQUCYkgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFuAQUCY1AJAQJiSQIFAmNGBQJjSAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXACCQCkAwEFAmNGCQCkAwEFAmNICQCsAgICBCVzX18FAmNQCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdAEFAVoJAQJiSQIFAmNGBQJjSAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXYCBQJjRgUCY0gFAVoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF4AQUCY1AFAVoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF3AQUBWgUCY1AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFZAQUBWgUCY0MJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcwEFAVoFAWgFA25pbAUCY1AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBCm1hbmFnZVBvb2wCAVoCY1cEAmNsCQECYmkBBQJiaAMJAAACBQJjbAUCY2wEAmNLCQECYkwBBQFaBAJieQkAkQMCBQJjSwUBdAQCY1AJAJEDAgUCY0sFAXUEAmJBCQCRAwIFAmNLBQF2BAJiQgkAkQMCBQJjSwUBdwQCY00JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjSwUBeAQCY04JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjSwUBeQQCY0YJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjSwUBegQCY0gJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjSwUBQQQCY1gJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjSwUBQgQCYkgJAJEDAgUCY0sFAUMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgkApAMBBQJjRgkApAMBBQJjSAkBAmJ4CwUBWgkApAMBBQJjVwUCY1AFAmJBBQJiQgUCY00FAmNOBQJjRgUCY0gFAmNYBQJiSAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAQRlbWl0AQJjWQQCY1oIBQJiaAZjYWxsZXIEAmRhCAUCYmgMb3JpZ2luQ2FsbGVyBAJkYgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhdwEJAKUIAQUCY1oCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAJkYwkA2QQBBQJkYgQCY3AJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBTwAFAWsFAWoEAmNvCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAU4AAihMZWdhY3kgZmFjdG9yeSBjb250cmFjdCBkb2VzIG5vdCBleGlzdHMuAwkAZwIAAAUCY1kFA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQJjcAkApQgBBQJjWgkAlAoCBQNuaWwFAmNvCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJkYwUCY1kGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJiaAZjYWxsZXIFAmNZBQJkYwUDbmlsAgdzdWNjZXNzAmJoAQRidXJuAQJkZAQCY1oIBQJiaAZjYWxsZXIEAmRhCAUCYmgMb3JpZ2luQ2FsbGVyBAJkZQkBBXZhbHVlAQkAkQMCCAUCYmgIcGF5bWVudHMAAAQCZGYJAQV2YWx1ZQEIBQJkZQZhbW91bnQEAmRnCQDYBAEJAQV2YWx1ZQEIBQJkZQdhc3NldElkBAJkaAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhdwEJAKUIAQUCY1oCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuAwkBAiE9AgUCZGcFAmRoCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAiE9AgUCZGQFAmRmCQACAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQCZGMJANkEAQUCZGgJAJQKAgkAzAgCCQEEQnVybgIFAmRjBQJkZAUDbmlsAgdzdWNjZXNzAmJoAQxtb2RpZnlXZWlnaHQCAmJ6AmRpBAJjbAMJAAACCQDYBAEICAUCYmgGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFUAAIABgkBAmJpAQUCYmgDCQAAAgUCY2wFAmNsBAJhdQkBAmFGAQkBAmF4AQUCYnoEAmRqCQEBWQEFAmF1BAJkawkBAVkBBQFmBAJkbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJkawAABAJjQwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJkagAABAJkbQUCZGkEAmFWCQC1CQIJAQJhRgEJAQFKAAUBagQCY2gJAQJhWAEFAmFWBAJkbgkA/AcEBQJjaAIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCYnoJAMwIAgUCYXUFA25pbAUDbmlsAwkAAAIFAmRuBQJkbgQCZG8DCQAAAgUCZGwAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkawAABQNuaWwEAmRwCQECYWECBQJhdQAABAJkcQkAnwgBBQJkcAQCZHIDCQAAAgUCZHEFBHVuaXQFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQJkcAUDbmlsCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZGoFAmRtBQNuaWwFAmRvBQJkcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENbW9kaWZ5V2VpZ2h0cwQCZHMCZHQCZHUCZHYEAmNsCQECYmkBBQJiaAMJAAACBQJjbAUCY2wEAmR3CQBpAgkAaAIABQUBZQBkBAJkeAkAaQIJAGgCAAUFAWUAZAQCZHkJAGkCCQBoAgAFBQFlAGQEAmFWCQC1CQIJAQJhRgEJAQFKAAUBagQCZHoJAQJhWAEFAmFWBAJkQQkBAmFZAQUCYVYEAmRCCQEBWQEFAmRzBAJkQwkBAVkBBQJkdAQCZEQJAQFZAQUCZHUEAmRFCQEBWQEFAmR2BAJkRgkBAmFJAQUCZEIEAmRHCQECYUkBBQJkQwQCZEgJAGUCBQJkRgUCZHkEAmRJCQBlAgUCZEcFAmR5AwkAZwIAAAUCZEgJAAIBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUCZEgDCQBnAgAABQJkSQkAAgEJAKwCAgIWaW52YWxpZCBldGhXZWlnaHROZXc6IAkApAMBBQJkSQQCZEoJAQJhRgEJAQJhdwEFAmRzBAJkSwkBAmFGAQkBAmF3AQUCZHQEAmRMCQECYUYBCQECYXcBBQJkdQQCZE0JAQJhRgEJAQJhdwEFAmR2BAJkTgkA/AcEBQJkegIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZEoJAMwIAgUCZHMFA25pbAUDbmlsAwkAAAIFAmROBQJkTgQCZE8JAPwHBAUCZHoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRLCQDMCAIFAmR0BQNuaWwFA25pbAMJAAACBQJkTwUCZE8EAmRQCQD8BwQFAmR6Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJkTAkAzAgCBQJkdQUDbmlsBQNuaWwDCQAAAgUCZFAFAmRQBAJkUQkA/AcEBQJkegIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZE0JAMwIAgUCZHYFA25pbAUDbmlsAwkAAAIFAmRRBQJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZEIFAmRICQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkQwUCZEkJAMwIAgkBDEludGVnZXJFbnRyeQIFAmREBQJkdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZEUFAmR4CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWECBQJkcwAABQJkRgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFhAgUCZHQAAAUCZEcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYQIFAmR1AAAFAmR3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWECBQJkdgAABQJkeAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwCAmF6AmFBBAJkUgQCYmEJAKAIAQkBAmF5AgUCYXoFAmFBAwkAAQIFAmJhAgdCb29sZWFuBAJkUwUCYmEFAmRTBwkAlAoCBQNuaWwFAmRSAmJoARZzZXRXeEVtaXNzaW9uUG9vbExhYmVsAgJhegJhQQQCY2wJAQJiVQEFAmJoAwkAAAIFAmNsBQJjbAkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQECYXkCBQJhegUCYUEGBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwCAmF6AmFBBAJjbAMJAQJiZwEFAmJoBgkBAmJVAQUCYmgDCQAAAgUCY2wFAmNsCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF5AgUCYXoFAmFBBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBEm9uVmVyaWZpY2F0aW9uTG9zcwECZFQEAmNsAwkAAAIJANgEAQgIBQJiaAZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVMAAgAGCQECYmkBBQJiaAMJAAACBQJjbAUCY2wEAmNzCQECYVoABAJkVQMJAGYCCQCQAwEFAmNzAAAGCQACAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUCZFUFAmRVCgECZFYCAmRXAmRYBAJkWQkA/AcEBQR0aGlzAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAmRUCQDMCAIFAmRYBQNuaWwFA25pbAMJAAACBQJkWQUCZFkFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmRaCgACZWEFAmNzCgACZWIJAJADAQUCZWEKAAJlYwUEdW5pdAoBAmVkAgJlZQJlZgMJAGcCBQJlZgUCZWIFAmVlCQECZFYCBQJlZQkAkQMCBQJlYQUCZWYKAQJlZwICZWUCZWYDCQBnAgUCZWYFAmViBQJlZQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDEJAQJlZwIJAQJlZAIFAmVjAAAAAQMJAAACBQJkWgUCZFoJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAShpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZAQFaBAJjSwkBAmJMAQUBWgQCYWsJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNLBQF6CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY0sFAUEEAmVoCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhagEFAmFrBwQCZWkJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFtAAcJAJQKAgUDbmlsAwUCZWkGBQJlaAJiaAEQZ2V0SW5GZWVSRUFET05MWQEBWgQCZWoJAQJiWAMJAQJhQgEFAVoJAQJhQwAAAAkAlAoCBQNuaWwFAmVqAmJoARFnZXRPdXRGZWVSRUFET05MWQEBWgQCZWoJAQJiWAMJAQJhRAEFAVoJAQJhRQAJAGsDAAoFAWIAkE4JAJQKAgUDbmlsBQJlagJiaAEVZ2V0UG9vbFN0YXR1c1JFQURPTkxZAQFaBAJiTQkAtQkCCQECYUYBCQECYXQBBQFaBQFqBAJhaAkAkQMCBQJiTQABBAJhaQkAkQMCBQJiTQACBAJlawkAtQkCCQECYUYBCQECYWcCBQJhaAUCYWkFAWoJAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWsFAXQCYmgBGGdldFBvb2xDb25maWdCeUxwQXNzZXRJZAECY1AEAmJNCQC1CQIJAQJhRgEJAQJhbgEFAmNQBQFqBAJhaAkAkQMCBQJiTQABBAJhaQkAkQMCBQJiTQACBAJlawkAtQkCCQECYUYBCQECYWcCBQJhaAUCYWkFAWoJAJQKAgUDbmlsBQJlawECZWwBAmVtAAQCZW4EAmJhCQECYmMAAwkAAQIFAmJhAgpCeXRlVmVjdG9yBAJiagUCYmEFAmJqAwkAAQIFAmJhAgRVbml0CAUCZWwPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVsCWJvZHlCeXRlcwkAkQMCCAUCZWwGcHJvb2ZzAAAFAmVufo6DDw==", "height": 2450646, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6rHDHg4HtAMbDg7ErtEDeXfvfauGpV6aR7i7D8MW28pL Next: GDy6DKPHHxygNKUq9udograSwJjBVz2kEcNaJrdPLF7E Diff:
OldNewDifferences
820820
821821
822822 @Callable(bh)
823-func getPoolAssetsByLpAssetId (cP) = {
823+func getPoolConfigByLpAssetId (cP) = {
824824 let bM = split(aF(an(cP)), j)
825825 let ah = bM[1]
826826 let ai = bM[2]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = "POOLS_LP"
1717
1818 let h = 2000000
1919
2020 let i = ((100 * 1000) * 1000)
2121
2222 let j = "__"
2323
2424 let k = ""
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 4
4747
4848 let w = 5
4949
5050 let x = 6
5151
5252 let y = 7
5353
5454 let z = 8
5555
5656 let A = 9
5757
5858 let B = 10
5959
6060 let C = 11
6161
6262 let D = "WX_EMISSION"
6363
6464 let E = [D]
6565
6666 func F () = "%s__allowedLpScriptHash"
6767
6868
6969 func G () = "%s__allowedLpStableScriptHash"
7070
7171
7272 func H () = "%s__allowedLpStableAddonScriptHash"
7373
7474
7575 func I () = "%s__swapContract"
7676
7777
7878 func J () = "%s__factoryConfig"
7979
8080
8181 func K () = "%s__lpTokensList"
8282
8383
8484 func L () = "%s%s__pool__scriptHash"
8585
8686
8787 func M () = "%s%s__matcher__publicKey"
8888
8989
9090 func N () = "%s__legacyFactoryContract"
9191
9292
9393 func O () = "%s__legacyPools"
9494
9595
9696 func P () = "%s__managerPublicKey"
9797
9898
9999 func Q () = "%s__pendingManagerPublicKey"
100100
101101
102102 func R () = "%s__adminPubKeys"
103103
104104
105105 func S () = "%s__assetsStoreContract"
106106
107107
108108 func T () = "%s__votingEmissionContract"
109109
110110
111111 func U () = makeString(["%s", "priceAssets"], j)
112112
113113
114114 func V () = "%s__priceDecimals"
115115
116116
117117 func W () = "%s__shutdown"
118118
119119
120120 func X () = "%s__nextInternalAssetId"
121121
122122
123123 func Y (Z) = ("%s%s__poolWeight__" + Z)
124124
125125
126126 func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
127127
128128
129129 func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
130130
131131
132132 func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
133133
134134
135135 func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
136136
137137
138138 func aj (ak) = {
139139 let al = ak
140140 let ah = al._1
141141 let ai = al._2
142142 makeString(["%d%d%s", toString(ah), toString(ai), "oneTokenOperationsDisabled"], j)
143143 }
144144
145145
146146 func am () = makeString(["%s", "oneTokenOperationsDisabled"], j)
147147
148148
149149 func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
150150
151151
152152 func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
153153
154154
155155 func as (Z) = ("%s%s__spread__" + Z)
156156
157157
158158 func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
159159
160160
161161 func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
162162
163163
164164 func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
165165
166166
167167 func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
168168
169169
170170 func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
171171
172172
173173 func aB (Z) = ("%s%s__inFee__" + Z)
174174
175175
176176 func aC () = "%s__inFeeDefault"
177177
178178
179179 func aD (Z) = ("%s%s__outFee__" + Z)
180180
181181
182182 func aE () = "%s__outFeeDefault"
183183
184184
185185 func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
186186
187187
188188 func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
189189
190190
191191 func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
192192
193193
194194 let aJ = 1
195195
196196 let aK = 2
197197
198198 let aL = 3
199199
200200 let aM = 4
201201
202202 let aN = 5
203203
204204 let aO = 6
205205
206206 let aP = 7
207207
208208 let aQ = 8
209209
210210 let aR = 9
211211
212212 let aS = 10
213213
214214 let aT = 11
215215
216216 func aU (aV) = addressFromStringValue(aV[aK])
217217
218218
219219 func aW (aV) = addressFromStringValue(aV[aN])
220220
221221
222222 func aX (aV) = addressFromStringValue(aV[aJ])
223223
224224
225225 func aY (aV) = addressFromStringValue(aV[aS])
226226
227227
228228 func aZ () = {
229229 let ba = getString(U())
230230 if ($isInstanceOf(ba, "String"))
231231 then {
232232 let bb = ba
233233 if ((size(bb) == 0))
234234 then nil
235235 else split(bb, j)
236236 }
237237 else nil
238238 }
239239
240240
241241 func bc () = {
242242 let ba = getString(P())
243243 if ($isInstanceOf(ba, "String"))
244244 then {
245245 let bb = ba
246246 fromBase58String(bb)
247247 }
248248 else if ($isInstanceOf(ba, "Unit"))
249249 then unit
250250 else throw("Match error")
251251 }
252252
253253
254254 func bd () = {
255255 let ba = getString(Q())
256256 if ($isInstanceOf(ba, "String"))
257257 then {
258258 let bb = ba
259259 fromBase58String(bb)
260260 }
261261 else if ($isInstanceOf(ba, "Unit"))
262262 then unit
263263 else throw("Match error")
264264 }
265265
266266
267267 let be = throw("Permission denied")
268268
269269 let bf = throw("Test error here")
270270
271271 func bg (bh) = if ((bh.caller == this))
272272 then true
273273 else be
274274
275275
276276 func bi (bh) = {
277277 let ba = bc()
278278 if ($isInstanceOf(ba, "ByteVector"))
279279 then {
280280 let bj = ba
281281 if ((bh.callerPublicKey == bj))
282282 then true
283283 else be
284284 }
285285 else if ($isInstanceOf(ba, "Unit"))
286286 then bg(bh)
287287 else throw("Match error")
288288 }
289289
290290
291291 func bk (bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv], j)
292292
293293
294294 func bw (bl,bm,bn,bo,bp,bq,br) = makeString(["%s%s%s%s%s%s", bl, bm, bn, bo, bp, bq, br], j)
295295
296296
297297 func bx (Z,by,bz,bA,bB,bC,bD,bE,bF,bG,bH) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, by, bz, bA, bB, toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), bH], j)
298298
299299
300300 func bI (bJ,bK) = makeString(["%d%d", toString(bJ), toString(bK)], j)
301301
302302
303303 func bL (Z) = {
304304 let bM = split(aF(at(Z)), j)
305305 let ah = bM[1]
306306 let ai = bM[2]
307307 split(aF(ag(ah, ai)), j)
308308 }
309309
310310
311311 func bN (bO,bP) = {
312312 let bQ = valueOrElse(getInteger(this, ae(bO)), 0)
313313 let bR = valueOrElse(getInteger(this, X()), 0)
314314 let bS = if ((bQ == 0))
315315 then {
316316 let bT = (bR + bP)
317317 $Tuple3(bT, [IntegerEntry(X(), bT), IntegerEntry(ae(bO), bT), StringEntry(ac(bT), bO)], true)
318318 }
319319 else $Tuple3(bQ, nil, false)
320320 bS
321321 }
322322
323323
324324 func bU (bh) = {
325325 let bV = split(valueOrElse(getString(R()), k), j)
326326 if (containsElement(bV, toBase58String(bh.callerPublicKey)))
327327 then true
328328 else {
329329 let bW = bi(bh)
330330 if ((bW == bW))
331331 then true
332332 else throw("Strict value is not equal to itself.")
333333 }
334334 }
335335
336336
337337 func bX (aG,bY,bZ) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bY), bZ))
338338
339339
340340 @Callable(bh)
341341 func getSwapContractREADONLY () = $Tuple2(nil, aF(I()))
342342
343343
344344
345345 @Callable(bh)
346346 func getLpAssetFromPoolAssetsREADONLY (ca,cb) = if (if ((ca == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
347347 then (cb == "WAVES")
348348 else false)
349349 then $Tuple2(nil, unit)
350350 else {
351351 let cc = value(getInteger(this, ae(ca)))
352352 let cd = value(getInteger(this, ae(cb)))
353353 let ce = getString(this, ap(toString(cc), toString(cd)))
354354 let cf = if ((ce == unit))
355355 then unit
356356 else drop(value(ce), 4)
357357 $Tuple2(nil, cf)
358358 }
359359
360360
361361
362362 @Callable(bh)
363363 func getPoolAddressFromLpAssetREADONLY (cg) = $Tuple2(nil, valueOrElse(getString(this, ax(cg)), ""))
364364
365365
366366
367367 @Callable(bh)
368368 func constructor (ch,ci,bn,bo,bp,bq,cj,ck) = {
369369 let cl = bi(bh)
370370 if ((cl == cl))
371371 then [StringEntry(J(), bw(ch, ci, bn, bo, bp, bq, cj)), IntegerEntry(V(), ck)]
372372 else throw("Strict value is not equal to itself.")
373373 }
374374
375375
376376
377377 @Callable(bh)
378378 func constructorV2 (cm) = {
379379 let cl = bi(bh)
380380 if ((cl == cl))
381381 then {
382382 let cn = addressFromPublicKey(fromBase58String(cm))
383383 if ((cn == cn))
384384 then [StringEntry(M(), cm)]
385385 else throw("Strict value is not equal to itself.")
386386 }
387387 else throw("Strict value is not equal to itself.")
388388 }
389389
390390
391391
392392 @Callable(bh)
393393 func constructorV3 (bs,bt,bu,bv) = {
394394 let cl = bi(bh)
395395 if ((cl == cl))
396396 then {
397397 let aV = split(aF(J()), j)
398398 [StringEntry(J(), bk(aV[1], aV[2], aV[3], aV[4], aV[5], aV[6], aV[7], bs, bt, bu, bv))]
399399 }
400400 else throw("Strict value is not equal to itself.")
401401 }
402402
403403
404404
405405 @Callable(bh)
406406 func constructorV4 (co,cp) = {
407407 let cl = bi(bh)
408408 if ((cl == cl))
409409 then [StringEntry(N(), co), StringEntry(O(), makeString(cp, j))]
410410 else throw("Strict value is not equal to itself.")
411411 }
412412
413413
414414
415415 @Callable(bh)
416416 func constructorV5 (cq) = {
417417 let cl = bi(bh)
418418 if ((cl == cl))
419419 then [StringEntry(S(), cq)]
420420 else throw("Strict value is not equal to itself.")
421421 }
422422
423423
424424
425425 @Callable(bh)
426426 func constructorV6 (cr,cs) = {
427427 let ct = [bi(bh), if ((addressFromString(cr) != unit))
428428 then true
429429 else "invalid voting emission contract address"]
430430 if ((ct == ct))
431431 then [StringEntry(T(), cr), StringEntry(U(), makeString(cs, j))]
432432 else throw("Strict value is not equal to itself.")
433433 }
434434
435435
436436
437437 @Callable(bh)
438438 func setManager (cu) = {
439439 let cl = bi(bh)
440440 if ((cl == cl))
441441 then {
442442 let cv = fromBase58String(cu)
443443 if ((cv == cv))
444444 then [StringEntry(Q(), cu)]
445445 else throw("Strict value is not equal to itself.")
446446 }
447447 else throw("Strict value is not equal to itself.")
448448 }
449449
450450
451451
452452 @Callable(bh)
453453 func confirmManager () = {
454454 let cw = bd()
455455 let cx = if (isDefined(cw))
456456 then true
457457 else throw("No pending manager")
458458 if ((cx == cx))
459459 then {
460460 let cy = if ((bh.callerPublicKey == value(cw)))
461461 then true
462462 else throw("You are not pending manager")
463463 if ((cy == cy))
464464 then [StringEntry(P(), toBase58String(value(cw))), DeleteEntry(Q())]
465465 else throw("Strict value is not equal to itself.")
466466 }
467467 else throw("Strict value is not equal to itself.")
468468 }
469469
470470
471471
472472 @Callable(bh)
473473 func setAdmins (cz) = {
474474 let cl = bi(bh)
475475 if ((cl == cl))
476476 then [StringEntry(R(), makeString(cz, j))]
477477 else throw("Strict value is not equal to itself.")
478478 }
479479
480480
481481
482482 @Callable(bh)
483483 func activateNewPool (Z,bA,bB,cA,cB,cC,bH,cD) = {
484484 let cl = bU(bh)
485485 if ((cl == cl))
486486 then if (isDefined(getString(at(Z))))
487487 then throw((("Pool address " + Z) + " already registered."))
488488 else {
489489 let cE = bN(bA, 1)
490490 let cF = cE._1
491491 let cG = bN(bB, if (cE._3)
492492 then 2
493493 else 1)
494494 let cH = cG._1
495495 let cI = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
496496 let cJ = getBinaryValue(L())
497497 let cK = getString(this, ag(toString(cF), toString(cH)))
498498 if (isDefined(cK))
499499 then throw((((("Pool " + bA) + "/") + bB) + " has already been activated."))
500500 else {
501501 let cL = value(getString(this, ag(toString(cF), toString(cH))))
502502 let cM = if ((bA == "WAVES"))
503503 then i
504504 else pow(10, 0, value(assetInfo(fromBase58String(bA))).decimals, 0, 0, DOWN)
505505 let cN = if ((bB == "WAVES"))
506506 then i
507507 else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
508508 let cO = Issue(cA, cB, 1, 8, true)
509509 let bz = calculateAssetId(cO)
510510 let cP = toBase58String(bz)
511511 let cQ = invoke(addressFromStringValue(Z), "activate", [bA, bB], nil)
512512 if ((cQ == cQ))
513513 then if ((cQ != "success"))
514514 then throw("Pool initialisation error happened.")
515515 else {
516516 let cq = addressFromStringValue(aF(S()))
517517 let cR = invoke(cq, "createOrUpdate", [cP, cA, false], nil)
518518 if ((cR == cR))
519519 then {
520520 let cS = invoke(cq, "addLabel", [cP, g], nil)
521521 if ((cS == cS))
522522 then {
523523 let cT = invoke(cq, "setLogo", [cP, cD], nil)
524524 if ((cT == cT))
525525 then {
526526 let cU = invoke(cq, "addAssetsLink", [bA, bB, cP], nil)
527527 if ((cU == cU))
528528 then {
529529 let cV = invoke(cq, "increaseAssetPoolsNumber", [bA], nil)
530530 if ((cV == cV))
531531 then $Tuple2(((cE._2 ++ cG._2) ++ [cO, Burn(bz, 1), StringEntry(ag(toString(cF), toString(cH)), bx(Z, toString(l), cP, bA, bB, cM, cN, cF, cH, i, bH)), StringEntry(an(cP), bI(cF, cH)), StringEntry(ap(toString(cF), toString(cH)), ("%s__" + cP)), StringEntry(at(Z), bI(cF, cH)), StringEntry(av(cF, cH), Z), StringEntry(ax(cP), Z), StringEntry(aw(Z), cP), IntegerEntry(Y(Z), cC), IntegerEntry(as(Z), h)]), cP)
532532 else throw("Strict value is not equal to itself.")
533533 }
534534 else throw("Strict value is not equal to itself.")
535535 }
536536 else throw("Strict value is not equal to itself.")
537537 }
538538 else throw("Strict value is not equal to itself.")
539539 }
540540 else throw("Strict value is not equal to itself.")
541541 }
542542 else throw("Strict value is not equal to itself.")
543543 }
544544 }
545545 else throw("Strict value is not equal to itself.")
546546 }
547547
548548
549549
550550 @Callable(bh)
551551 func managePool (Z,cW) = {
552552 let cl = bi(bh)
553553 if ((cl == cl))
554554 then {
555555 let cK = bL(Z)
556556 let by = cK[t]
557557 let cP = cK[u]
558558 let bA = cK[v]
559559 let bB = cK[w]
560560 let cM = parseIntValue(cK[x])
561561 let cN = parseIntValue(cK[y])
562562 let cF = parseIntValue(cK[z])
563563 let cH = parseIntValue(cK[A])
564564 let cX = parseIntValue(cK[B])
565565 let bH = cK[C]
566566 [StringEntry(ag(toString(cF), toString(cH)), bx(Z, toString(cW), cP, bA, bB, cM, cN, cF, cH, cX, bH))]
567567 }
568568 else throw("Strict value is not equal to itself.")
569569 }
570570
571571
572572
573573 @Callable(bh)
574574 func emit (cY) = {
575575 let cZ = bh.caller
576576 let da = bh.originCaller
577577 let db = valueOrErrorMessage(getString(aw(toString(cZ))), "Invalid LP address called me.")
578578 let dc = fromBase58String(db)
579579 let cp = split(valueOrElse(getString(O()), k), j)
580580 let co = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
581581 if ((0 >= cY))
582582 then nil
583583 else if (containsElement(cp, toString(cZ)))
584584 then $Tuple2(nil, co)
585585 else $Tuple2([Reissue(dc, cY, true), ScriptTransfer(bh.caller, cY, dc)], "success")
586586 }
587587
588588
589589
590590 @Callable(bh)
591591 func burn (dd) = {
592592 let cZ = bh.caller
593593 let da = bh.originCaller
594594 let de = value(bh.payments[0])
595595 let df = value(de.amount)
596596 let dg = toBase58String(value(de.assetId))
597597 let dh = valueOrErrorMessage(getString(aw(toString(cZ))), "Invalid LP address called me.")
598598 if ((dg != dh))
599599 then throw("Invalid asset passed.")
600600 else if ((dd != df))
601601 then throw("Invalid amount passed.")
602602 else {
603603 let dc = fromBase58String(dh)
604604 $Tuple2([Burn(dc, dd)], "success")
605605 }
606606 }
607607
608608
609609
610610 @Callable(bh)
611611 func modifyWeight (bz,di) = {
612612 let cl = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, T()), "")))
613613 then true
614614 else bi(bh)
615615 if ((cl == cl))
616616 then {
617617 let au = aF(ax(bz))
618618 let dj = Y(au)
619619 let dk = Y(f)
620620 let dl = valueOrElse(getInteger(dk), 0)
621621 let cC = valueOrElse(getInteger(dj), 0)
622622 let dm = di
623623 let aV = split(aF(J()), j)
624624 let ch = aX(aV)
625625 let dn = invoke(ch, "onModifyWeight", [bz, au], nil)
626626 if ((dn == dn))
627627 then {
628628 let do = if ((dl == 0))
629629 then nil
630630 else [IntegerEntry(dk, 0)]
631631 let dp = aa(au, 0)
632632 let dq = getInteger(dp)
633633 let dr = if ((dq == unit))
634634 then nil
635635 else [DeleteEntry(dp)]
636636 (([IntegerEntry(dj, dm)] ++ do) ++ dr)
637637 }
638638 else throw("Strict value is not equal to itself.")
639639 }
640640 else throw("Strict value is not equal to itself.")
641641 }
642642
643643
644644
645645 @Callable(bh)
646646 func modifyWeights (ds,dt,du,dv) = {
647647 let cl = bi(bh)
648648 if ((cl == cl))
649649 then {
650650 let dw = ((5 * e) / 100)
651651 let dx = ((5 * e) / 100)
652652 let dy = ((5 * e) / 100)
653653 let aV = split(aF(J()), j)
654654 let dz = aX(aV)
655655 let dA = aY(aV)
656656 let dB = Y(ds)
657657 let dC = Y(dt)
658658 let dD = Y(du)
659659 let dE = Y(dv)
660660 let dF = aI(dB)
661661 let dG = aI(dC)
662662 let dH = (dF - dy)
663663 let dI = (dG - dy)
664664 if ((0 >= dH))
665665 then throw(("invalid btcWeightNew: " + toString(dH)))
666666 else if ((0 >= dI))
667667 then throw(("invalid ethWeightNew: " + toString(dI)))
668668 else {
669669 let dJ = aF(aw(ds))
670670 let dK = aF(aw(dt))
671671 let dL = aF(aw(du))
672672 let dM = aF(aw(dv))
673673 let dN = invoke(dz, "onModifyWeight", [dJ, ds], nil)
674674 if ((dN == dN))
675675 then {
676676 let dO = invoke(dz, "onModifyWeight", [dK, dt], nil)
677677 if ((dO == dO))
678678 then {
679679 let dP = invoke(dz, "onModifyWeight", [dL, du], nil)
680680 if ((dP == dP))
681681 then {
682682 let dQ = invoke(dz, "onModifyWeight", [dM, dv], nil)
683683 if ((dQ == dQ))
684684 then [IntegerEntry(dB, dH), IntegerEntry(dC, dI), IntegerEntry(dD, dw), IntegerEntry(dE, dx), IntegerEntry(aa(ds, 0), dF), IntegerEntry(aa(dt, 0), dG), IntegerEntry(aa(du, 0), dw), IntegerEntry(aa(dv, 0), dx)]
685685 else throw("Strict value is not equal to itself.")
686686 }
687687 else throw("Strict value is not equal to itself.")
688688 }
689689 else throw("Strict value is not equal to itself.")
690690 }
691691 else throw("Strict value is not equal to itself.")
692692 }
693693 }
694694 else throw("Strict value is not equal to itself.")
695695 }
696696
697697
698698
699699 @Callable(bh)
700700 func checkWxEmissionPoolLabel (az,aA) = {
701701 let dR = {
702702 let ba = getBoolean(ay(az, aA))
703703 if ($isInstanceOf(ba, "Boolean"))
704704 then {
705705 let dS = ba
706706 dS
707707 }
708708 else false
709709 }
710710 $Tuple2(nil, dR)
711711 }
712712
713713
714714
715715 @Callable(bh)
716716 func setWxEmissionPoolLabel (az,aA) = {
717717 let cl = bU(bh)
718718 if ((cl == cl))
719719 then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
720720 else throw("Strict value is not equal to itself.")
721721 }
722722
723723
724724
725725 @Callable(bh)
726726 func deleteWxEmissionPoolLabel (az,aA) = {
727727 let cl = if (bg(bh))
728728 then true
729729 else bU(bh)
730730 if ((cl == cl))
731731 then $Tuple2([DeleteEntry(ay(az, aA))], unit)
732732 else throw("Strict value is not equal to itself.")
733733 }
734734
735735
736736
737737 @Callable(bh)
738738 func onVerificationLoss (dT) = {
739739 let cl = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, S()), "")))
740740 then true
741741 else bi(bh)
742742 if ((cl == cl))
743743 then {
744744 let cs = aZ()
745745 let dU = if ((size(cs) > 0))
746746 then true
747747 else throw("invalid price assets")
748748 if ((dU == dU))
749749 then {
750750 func dV (dW,dX) = {
751751 let dY = invoke(this, "deleteWxEmissionPoolLabel", [dT, dX], nil)
752752 if ((dY == dY))
753753 then unit
754754 else throw("Strict value is not equal to itself.")
755755 }
756756
757757 let dZ = {
758758 let ea = cs
759759 let eb = size(ea)
760760 let ec = unit
761761 func ed (ee,ef) = if ((ef >= eb))
762762 then ee
763763 else dV(ee, ea[ef])
764764
765765 func eg (ee,ef) = if ((ef >= eb))
766766 then ee
767767 else throw("List size exceeds 1")
768768
769769 eg(ed(ec, 0), 1)
770770 }
771771 if ((dZ == dZ))
772772 then $Tuple2(nil, unit)
773773 else throw("Strict value is not equal to itself.")
774774 }
775775 else throw("Strict value is not equal to itself.")
776776 }
777777 else throw("Strict value is not equal to itself.")
778778 }
779779
780780
781781
782782 @Callable(bh)
783783 func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
784784 let cK = bL(Z)
785785 let ak = $Tuple2(parseIntValue(cK[z]), parseIntValue(cK[A]))
786786 let eh = valueOrElse(getBoolean(aj(ak)), false)
787787 let ei = valueOrElse(getBoolean(am()), false)
788788 $Tuple2(nil, if (ei)
789789 then true
790790 else eh)
791791 }
792792
793793
794794
795795 @Callable(bh)
796796 func getInFeeREADONLY (Z) = {
797797 let ej = bX(aB(Z), aC(), 0)
798798 $Tuple2(nil, ej)
799799 }
800800
801801
802802
803803 @Callable(bh)
804804 func getOutFeeREADONLY (Z) = {
805805 let ej = bX(aD(Z), aE(), fraction(10, b, 10000))
806806 $Tuple2(nil, ej)
807807 }
808808
809809
810810
811811 @Callable(bh)
812812 func getPoolStatusREADONLY (Z) = {
813813 let bM = split(aF(at(Z)), j)
814814 let ah = bM[1]
815815 let ai = bM[2]
816816 let ek = split(aF(ag(ah, ai)), j)
817817 $Tuple2(nil, parseIntValue(ek[t]))
818818 }
819819
820820
821821
822822 @Callable(bh)
823-func getPoolAssetsByLpAssetId (cP) = {
823+func getPoolConfigByLpAssetId (cP) = {
824824 let bM = split(aF(an(cP)), j)
825825 let ah = bM[1]
826826 let ai = bM[2]
827827 let ek = split(aF(ag(ah, ai)), j)
828828 $Tuple2(nil, ek)
829829 }
830830
831831
832832 @Verifier(el)
833833 func em () = {
834834 let en = {
835835 let ba = bc()
836836 if ($isInstanceOf(ba, "ByteVector"))
837837 then {
838838 let bj = ba
839839 bj
840840 }
841841 else if ($isInstanceOf(ba, "Unit"))
842842 then el.senderPublicKey
843843 else throw("Match error")
844844 }
845845 sigVerify(el.bodyBytes, el.proofs[0], en)
846846 }
847847

github/deemru/w8io/026f985 
87.47 ms