tx · 5onWkaJRBHfGjUcqGk4tUz1cA8dbDDN5R6GxnRP47dPB

3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL:  -0.02700000 Waves

2022.06.22 15:39 [2107616] smart account 3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL > SELF 0.00000000 Waves

{ "type": 13, "id": "5onWkaJRBHfGjUcqGk4tUz1cA8dbDDN5R6GxnRP47dPB", "fee": 2700000, "feeAssetId": null, "timestamp": 1655901585247, "version": 1, "sender": "3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL", "senderPublicKey": "DnPyGWCgpQChvoQrnXQRcC9FtN32mPGrcog2wcKHdkVn", "proofs": [ "3uruPgJMtyCvacfoaKaUsXwNkMt5W6Gonc8YLukrhvo342uEy6pg5PQKaeCJWiAtXj1RgCXiiXULLCPdaUg9TLCf" ], "script": "base64:BgJgCAISAwoBCBIAEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSAwoBCBIAEgMKAQESABIDCgEIEgQKAggIEgQKAggIEgQKAggIMAAJc2VwYXJhdG9yAgJfXwAOcG9vbFdlaWdodE11bHQAgMLXLwAPbWF4RGVwdGhEZWZhdWx0AAoAFmZpbmFsaXphdGlvblN0YWdlVG90YWwAAAAXZmluYWxpemF0aW9uU3RhZ2VTaGFyZXMAAQAOa2V5RXBvY2hMZW5ndGgJALkJAgkAzAgCAgIlcwkAzAgCAgtlcG9jaExlbmd0aAUDbmlsBQlzZXBhcmF0b3IAD2tleUN1cnJlbnRFcG9jaAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRFcG9jaAUDbmlsBQlzZXBhcmF0b3IAC2tleU1heERlcHRoCQC5CQIJAMwIAgICJXMJAMwIAgIIbWF4RGVwdGgFA25pbAUJc2VwYXJhdG9yACJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IAEmtleUZhY3RvcnlDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICD2ZhY3RvcnlDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IAE2tleUJvb3N0aW5nQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgASa2V5U3Rha2luZ0NvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIPc3Rha2luZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgAUa2V5RmluYWxpemF0aW9uU3RhZ2UJALkJAgkAzAgCAgIlcwkAzAgCAhFmaW5hbGl6YXRpb25TdGFnZQUDbmlsBQlzZXBhcmF0b3IAC2tleU5leHRQb29sCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFBvb2wFA25pbAUJc2VwYXJhdG9yAAtrZXlOZXh0VXNlcgkAuQkCCQDMCAICAiVzCQDMCAICCG5leHRVc2VyBQNuaWwFCXNlcGFyYXRvcgAOa2V5U3RhcnRIZWlnaHQJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQlzZXBhcmF0b3IAEWtleUN1cnJlbnRFcG9jaFVpCQC5CQIJAMwIAgICJXMJAMwIAgIOY3VycmVudEVwb2NoVWkFA25pbAUJc2VwYXJhdG9yABBrZXlTdGFydEhlaWdodFVpCQC5CQIJAMwIAgICJXMJAMwIAgINc3RhcnRIZWlnaHRVaQUDbmlsBQlzZXBhcmF0b3IBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFZXBvY2gJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQxrZXlGaW5hbGl6ZWQBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAglmaW5hbGl6ZWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBCWtleUluTGlzdAEEcG9vbAQLJHQwMTQzNjE0NzYFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAxNDM2MTQ3NgJfMQQMcHJpY2VBc3NldElkCAULJHQwMTQzNjE0NzYCXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFCXNlcGFyYXRvcgEHa2V5VXNlZAIHYWRkcmVzcwVlcG9jaAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR1c2VkCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCCQCkAwEFBWVwb2NoBQNuaWwFCXNlcGFyYXRvcgEHa2V5Vm90ZQMEcG9vbAdhZGRyZXNzBWVwb2NoBAskdDAxNzUwMTc5MAUEcG9vbAQNYW1vdW50QXNzZXRJZAgFCyR0MDE3NTAxNzkwAl8xBAxwcmljZUFzc2V0SWQIBQskdDAxNzUwMTc5MAJfMgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQ1hbW91bnRBc3NldElkCQDMCAIFDHByaWNlQXNzZXRJZAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBD2tleVZvdGluZ1Jlc3VsdAIEcG9vbAVlcG9jaAQLJHQwMTk3MjIwMTIFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAxOTcyMjAxMgJfMQQMcHJpY2VBc3NldElkCAULJHQwMTk3MjIwMTICXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDGtleVBvb2xTaGFyZQIEcG9vbAVlcG9jaAQLJHQwMjE3NzIyMTcFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAyMTc3MjIxNwJfMQQMcHJpY2VBc3NldElkCAULJHQwMjE3NzIyMTcCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAglwb29sU2hhcmUJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDWtleVRvdGFsVm90ZXMBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgp0b3RhbFZvdGVzCQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQ5nZXRWYWx1ZU9yRmFpbAMHYWRkcmVzcwNrZXkEdHlwZQQFZXJyb3IJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIACQETdmFsdWVPckVycm9yTWVzc2FnZQIEByRtYXRjaDAFBHR5cGUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQkAAgECEmludmFsaWQgZW50cnkgdHlwZQUFZXJyb3IBDGdldFN0ck9yRmFpbAIHYWRkcmVzcwNrZXkKAAFACQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkCAAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBCQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkCAAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nAQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CgABQAkBDmdldFZhbHVlT3JGYWlsAwUHYWRkcmVzcwUDa2V5AAADCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQkBDmdldFZhbHVlT3JGYWlsAwUHYWRkcmVzcwUDa2V5AAACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAEMcG9vbFRvU3RyaW5nAQRwb29sCQCsAgIJAKwCAggFBHBvb2wCXzEFCXNlcGFyYXRvcggFBHBvb2wCXzIBDHN0cmluZ1RvUG9vbAEDc3RyBAVwYXJ0cwkAtQkCBQNzdHIFCXNlcGFyYXRvcgMJAAACCQCQAwEFBXBhcnRzAAIJAJQKAgkAkQMCBQVwYXJ0cwAACQCRAwIFBXBhcnRzAAEJAAIBAhNpbnZhbGlkIHBvb2wgc3RyaW5nARZnZXRMcEFzc2V0QnlQb29sQXNzZXRzAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAoBH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQBDGJhc2VBc3NldFN0cgkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQxiYXNlQXNzZXRTdHIKASlrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcwIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyF2ludGVybmFsUHJpY2VBc3NldElkU3RyCQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18JAKQDAQUYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyAgJfXwkApAMBBRdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QKAR9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0ARNwb29sQ29udHJhY3RBZGRyZXNzCQCsAgIJAKwCAgIIJXMlcyVzX18FE3Bvb2xDb250cmFjdEFkZHJlc3MCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0BA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRJrZXlGYWN0b3J5Q29udHJhY3QEFWFtb3VudEFzc2V0SW50ZXJuYWxJZAkBDGdldEludE9yRmFpbAIFD2ZhY3RvcnlDb250cmFjdAkBH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQBBQ1hbW91bnRBc3NldElkBBRwcmljZUFzc2V0SW50ZXJuYWxJZAkBDGdldEludE9yRmFpbAIFD2ZhY3RvcnlDb250cmFjdAkBH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQBBQxwcmljZUFzc2V0SWQEE3Bvb2xDb250cmFjdEFkZHJlc3MJAQxnZXRTdHJPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJASlrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcwIFFWFtb3VudEFzc2V0SW50ZXJuYWxJZAUUcHJpY2VBc3NldEludGVybmFsSWQECWxwQXNzZXRJZAkBDGdldFN0ck9yRmFpbAIFD2ZhY3RvcnlDb250cmFjdAkBH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQBBRNwb29sQ29udHJhY3RBZGRyZXNzBQlscEFzc2V0SWQADXBvb2xzTGlzdE5hbWUCBXBvb2xzARBnZXRWb3Rlc0xpc3ROYW1lAQRwb29sBAskdDA0NTAzNDU0MwUEcG9vbAQNYW1vdW50QXNzZXRJZAgFCyR0MDQ1MDM0NTQzAl8xBAxwcmljZUFzc2V0SWQIBQskdDA0NTAzNDU0MwJfMgkAuQkCCQDMCAICBXZvdGVzCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFCXNlcGFyYXRvcgELa2V5TGlzdEhlYWQBCGxpc3ROYW1lBARtZXRhAwkAAAIFCGxpc3ROYW1lBQ1wb29sc0xpc3ROYW1lAgQlcyVzAgglcyVzJXMlcwkAuQkCCQDMCAIFBG1ldGEJAMwIAgUIbGlzdE5hbWUJAMwIAgIEaGVhZAUDbmlsBQlzZXBhcmF0b3IBC2tleUxpc3RTaXplAQhsaXN0TmFtZQQEbWV0YQMJAAACBQhsaXN0TmFtZQUNcG9vbHNMaXN0TmFtZQIEJXMlcwIIJXMlcyVzJXMJALkJAgkAzAgCBQRtZXRhCQDMCAIFCGxpc3ROYW1lCQDMCAICBHNpemUFA25pbAUJc2VwYXJhdG9yAQtrZXlMaXN0UHJldgIIbGlzdE5hbWUCaWQEBG1ldGEDCQAAAgUIbGlzdE5hbWUFDXBvb2xzTGlzdE5hbWUCCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUEbWV0YQkAzAgCBQhsaXN0TmFtZQkAzAgCBQJpZAkAzAgCAgRwcmV2BQNuaWwFCXNlcGFyYXRvcgELa2V5TGlzdE5leHQCCGxpc3ROYW1lAmlkBARtZXRhAwkAAAIFCGxpc3ROYW1lBQ1wb29sc0xpc3ROYW1lAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFBG1ldGEJAMwIAgUIbGlzdE5hbWUJAMwIAgUCaWQJAMwIAgIEbmV4dAUDbmlsBQlzZXBhcmF0b3IBDGNvbnRhaW5zTm9kZQIIbGlzdE5hbWUCaWQECmhlYWRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUECnByZXZPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUFAmlkBApuZXh0T3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAMDCQAAAgUCaWQJAQt2YWx1ZU9yRWxzZQIFCmhlYWRPclVuaXQCAAYJAQIhPQIFCnByZXZPclVuaXQFBHVuaXQGCQECIT0CBQpuZXh0T3JVbml0BQR1bml0ARFpbnNlcnROb2RlQWN0aW9ucwIIbGlzdE5hbWUCaWQECmhlYWRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUECGxpc3RTaXplCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQtrZXlMaXN0U2l6ZQEFCGxpc3ROYW1lAAAECWNoZWNrTm9kZQMJAQEhAQkBDGNvbnRhaW5zTm9kZQIFCGxpc3ROYW1lBQJpZAYJAAIBAgtOb2RlIGV4aXN0cwMJAAACBQljaGVja05vZGUFCWNoZWNrTm9kZQkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtrZXlMaXN0U2l6ZQEFCGxpc3ROYW1lCQBkAgUIbGlzdFNpemUAAQUDbmlsAwkBAiE9AgUKaGVhZE9yVW5pdAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQUCaWQJAQV2YWx1ZQEFCmhlYWRPclVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUJAQV2YWx1ZQEFCmhlYWRPclVuaXQFAmlkBQNuaWwFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQUCaWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERZGVsZXRlTm9kZUFjdGlvbnMCCGxpc3ROYW1lAmlkBApoZWFkT3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBAhsaXN0U2l6ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQELa2V5TGlzdFNpemUBBQhsaXN0TmFtZQAABApwcmV2T3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lBQJpZAQKbmV4dE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQUCaWQJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleUxpc3RTaXplAQUIbGlzdE5hbWUJAGUCBQhsaXN0U2l6ZQABBQNuaWwDAwkBAiE9AgUKcHJldk9yVW5pdAUEdW5pdAkBAiE9AgUKbmV4dE9yVW5pdAUEdW5pdAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUJAQV2YWx1ZQEFCnByZXZPclVuaXQJAQV2YWx1ZQEFCm5leHRPclVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUJAQV2YWx1ZQEFCm5leHRPclVuaXQJAQV2YWx1ZQEFCnByZXZPclVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUFAmlkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAUDbmlsAwkBAiE9AgUKbmV4dE9yVW5pdAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQkBBXZhbHVlAQUKbmV4dE9yVW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQUCaWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUJAQV2YWx1ZQEFCm5leHRPclVuaXQFA25pbAMJAQIhPQIFCnByZXZPclVuaXQFBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUFAmlkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lCQEFdmFsdWUBBQpwcmV2T3JVbml0BQNuaWwDCQAAAgUCaWQJAQt2YWx1ZU9yRWxzZQIFCmhlYWRPclVuaXQCAAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQUDbmlsCQACAQkArAICCQCsAgIJAKwCAgIOaW52YWxpZCBub2RlOiAFCGxpc3ROYW1lAgEuBQJpZAETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yABVwZXJtaXNzaW9uRGVuaWVkRXJyb3IJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAEIbXVzdFRoaXMBAWkDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUVcGVybWlzc2lvbkRlbmllZEVycm9yAQttdXN0TWFuYWdlcgEBaQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQUCcGsGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IDCQABAgUHJG1hdGNoMAIEVW5pdAkBCG11c3RUaGlzAQUBaQkAAgECC01hdGNoIGVycm9yEgFpAQpzZXRNYW5hZ2VyARdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBVjaGVja01hbmFnZXJQdWJsaWNLZXkJANkEAQUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAgUVY2hlY2tNYW5hZ2VyUHVibGljS2V5BRVjaGVja01hbmFnZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jb25maXJtTWFuYWdlcgAEAnBtCQEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAVoYXNQTQMJAQlpc0RlZmluZWQBBQJwbQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUFaGFzUE0FBWhhc1BNBAdjaGVja1BNAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCcG0GCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFB2NoZWNrUE0FB2NoZWNrUE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2tleU1hbmFnZXJQdWJsaWNLZXkACQDYBAEJAQV2YWx1ZQEFAnBtCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQCC3VzZXJBZGRyZXNzDHRhcmdldEhlaWdodAQXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwUTa2V5Qm9vc3RpbmdDb250cmFjdAIhaW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQCUCgIFA25pbAoAAUAJAPwHBAUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDHRhcmdldEhlaWdodAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQkA/AcEBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwIgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUMdGFyZ2V0SGVpZ2h0BQNuaWwFA25pbAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AWkBC2NvbnN0cnVjdG9yBQ9mYWN0b3J5Q29udHJhY3Qfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdBBib29zdGluZ0NvbnRyYWN0D3N0YWtpbmdDb250cmFjdAtlcG9jaExlbmd0aAQFY2hla3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBAiE9AgkApggBBQ9mYWN0b3J5Q29udHJhY3QFBHVuaXQGAiBpbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBR92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQR1bml0BgIyaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY2FuZGlkYXRlIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUQYm9vc3RpbmdDb250cmFjdAUEdW5pdAYCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQ9zdGFraW5nQ29udHJhY3QFBHVuaXQGAiBpbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkAZgIFC2Vwb2NoTGVuZ3RoAAAGCQACAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQVjaGVrcwUFY2hla3MJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBRJrZXlGYWN0b3J5Q29udHJhY3QFD2ZhY3RvcnlDb250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCBSJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BR92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0CQDMCAIJAQtTdHJpbmdFbnRyeQIFE2tleUJvb3N0aW5nQ29udHJhY3QFEGJvb3N0aW5nQ29udHJhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgUSa2V5U3Rha2luZ0NvbnRyYWN0BQ9zdGFraW5nQ29udHJhY3QJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleUVwb2NoTGVuZ3RoBQtlcG9jaExlbmd0aAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBmNyZWF0ZQINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQEBmNoZWNrcwkAzAgCAwkAAAIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBSJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0AgAGCQELbXVzdE1hbmFnZXIBBQFpBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEBHBvb2wJAJQKAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBA1pbkxpc3RBY3Rpb25zCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQlrZXlJbkxpc3QBBQRwb29sBgUDbmlsCQERaW5zZXJ0Tm9kZUFjdGlvbnMCBQ1wb29sc0xpc3ROYW1lCQEMcG9vbFRvU3RyaW5nAQUEcG9vbAQYY3VycmVudEVwb2NoSXNOb3REZWZpbmVkCQAAAgkAmggCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gFBHVuaXQEEnN0YXJ0SGVpZ2h0QWN0aW9ucwMFGGN1cnJlbnRFcG9jaElzTm90RGVmaW5lZAQFZXBvY2gAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5Q3VycmVudEVwb2NoBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleVN0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleUN1cnJlbnRFcG9jaFVpBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5U3RhcnRIZWlnaHRVaQUGaGVpZ2h0BQNuaWwFA25pbAkAlAoCCQDOCAIFDWluTGlzdEFjdGlvbnMFEnN0YXJ0SGVpZ2h0QWN0aW9ucwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQR2b3RlAw1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAZhbW91bnQEBHBvb2wJAJQKAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBAVlcG9jaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gAAAQLc3RhcnRIZWlnaHQJAQxnZXRJbnRPckZhaWwCBQR0aGlzCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUFZXBvY2gEC2Vwb2NoTGVuZ3RoCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUOa2V5RXBvY2hMZW5ndGgECWVuZEhlaWdodAkAZAIFC3N0YXJ0SGVpZ2h0BQtlcG9jaExlbmd0aAQXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQJAJoIAgUEdGhpcwUUa2V5RmluYWxpemF0aW9uU3RhZ2UEBHVzZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBB2tleVVzZWQCCAUBaQZjYWxsZXIFBWVwb2NoAAAEBHZvdGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBB2tleVZvdGUDBQRwb29sCAUBaQZjYWxsZXIFBWVwb2NoAAAECnBvb2xSZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoAAAECnRvdGFsVm90ZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAAABBNnd3hBbW91bnRBdEVuZFRvdGFsCgABQAkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIFCWVuZEhlaWdodAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIFCWVuZEhlaWdodAUDbmlsBQNuaWwCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQJYXZhaWxhYmxlCQBlAgUTZ3d4QW1vdW50QXRFbmRUb3RhbAUEdXNlZAQHbmV3Vm90ZQkAZAIFBHZvdGUFBmFtb3VudAQGY2hlY2tzCQDMCAIDCQECIT0CCQCgCAEJAQlrZXlJbkxpc3QBBQRwb29sBQR1bml0BgkAAgECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUJZW5kSGVpZ2h0BQZoZWlnaHQGCQACAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAYJAAIBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBRNnd3hBbW91bnRBdEVuZFRvdGFsAAAGCQACAQITeW91IGRvIG5vdCBoYXZlIGdXWAkAzAgCAwMJAGYCBQZhbW91bnQAAAkAZwIFCWF2YWlsYWJsZQUGYW1vdW50BwYJAAIBAg5pbnZhbGlkIGFtb3VudAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA12b3Rlc0xpc3ROYW1lCQEQZ2V0Vm90ZXNMaXN0TmFtZQEFBHBvb2wEDnVzZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQQdm90ZXNMaXN0QWN0aW9ucwMJAQxjb250YWluc05vZGUCBQ12b3Rlc0xpc3ROYW1lBQ51c2VyQWRkcmVzc1N0cgUDbmlsCQERaW5zZXJ0Tm9kZUFjdGlvbnMCBQ12b3Rlc0xpc3ROYW1lBQ51c2VyQWRkcmVzc1N0cgkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlVc2VkAggFAWkGY2FsbGVyBQVlcG9jaAkAZAIFBHVzZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBB2tleVZvdGUDBQRwb29sCAUBaQZjYWxsZXIFBWVwb2NoBQduZXdWb3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAUFZXBvY2gJAGQCBQpwb29sUmVzdWx0BQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gJAGQCBQp0b3RhbFZvdGVzBQZhbW91bnQFA25pbAUQdm90ZXNMaXN0QWN0aW9ucwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjYW5jZWxWb3RlAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAQEcG9vbAkAlAoCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEBWVwb2NoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAAABAtzdGFydEhlaWdodAkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQVlcG9jaAQLZXBvY2hMZW5ndGgJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ5rZXlFcG9jaExlbmd0aAQJZW5kSGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFC2Vwb2NoTGVuZ3RoBBdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAkAmggCBQR0aGlzBRRrZXlGaW5hbGl6YXRpb25TdGFnZQQEdXNlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5VXNlZAIIBQFpBmNhbGxlcgUFZXBvY2gAAAQEdm90ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5Vm90ZQMFBHBvb2wIBQFpBmNhbGxlcgUFZXBvY2gAAAQKcG9vbFJlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAUFZXBvY2gAAAQKdG90YWxWb3RlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoAAAEBmNoZWNrcwkAzAgCAwkBAiE9AgkAoAgBCQEJa2V5SW5MaXN0AQUEcG9vbAUEdW5pdAYJAAIBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFCWVuZEhlaWdodAUGaGVpZ2h0BgkAAgECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQFBHVuaXQGCQACAQIYZmluYWxpemF0aW9uIGluIHByb2dyZXNzCQDMCAIDCQBmAgUEdm90ZQAABgkAAgECB25vIHZvdGUFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNdm90ZXNMaXN0TmFtZQkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sBA51c2VyQWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5VXNlZAIIBQFpBmNhbGxlcgUFZXBvY2gJAJYDAQkAzAgCCQBlAgUEdXNlZAUEdm90ZQkAzAgCAAAFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5Vm90ZQMFBHBvb2wIBQFpBmNhbGxlcgUFZXBvY2gJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAkAZQIFCnBvb2xSZXN1bHQFBHZvdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gJAGUCBQp0b3RhbFZvdGVzBQR2b3RlBQNuaWwJARFkZWxldGVOb2RlQWN0aW9ucwIFDXZvdGVzTGlzdE5hbWUFDnVzZXJBZGRyZXNzU3RyBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDnNldEVwb2NoTGVuZ3RoAQ5uZXdFcG9jaExlbmd0aAQFY2hla3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkAZgIFDm5ld0Vwb2NoTGVuZ3RoAAAGCQACAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQVjaGVrcwUFY2hla3MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5RXBvY2hMZW5ndGgFDm5ld0Vwb2NoTGVuZ3RoBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELc2V0TWF4RGVwdGgBC25ld01heERlcHRoBAVjaGVrcwkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQBmAgULbmV3TWF4RGVwdGgAAAYJAAIBAhFpbnZhbGlkIG1heCBkZXB0aAUDbmlsAwkAAAIFBWNoZWtzBQVjaGVrcwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQtrZXlNYXhEZXB0aAULbmV3TWF4RGVwdGgFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNwcm9jZXNzVm90ZUlOVEVSTkFMAgdwb29sU3RyDnVzZXJBZGRyZXNzU3RyBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUOdXNlckFkZHJlc3NTdHIJAKwCAgIqcHJvY2Vzc1ZvdGVJTlRFUk5BTDogaW52YWxpZCB1c2VyIGFkZHJlc3MgBQ51c2VyQWRkcmVzc1N0cgQFZXBvY2gJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gEDWVwb2NoUHJldmlvdXMJAGUCBQVlcG9jaAABBAtlcG9jaExlbmd0aAkBDGdldEludE9yRmFpbAIFBHRoaXMFDmtleUVwb2NoTGVuZ3RoBAtzdGFydEhlaWdodAkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQVlcG9jaAQJZW5kSGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFC2Vwb2NoTGVuZ3RoBBNzdGFydEhlaWdodFByZXZpb3VzCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFDWVwb2NoUHJldmlvdXMEEWVuZEhlaWdodFByZXZpb3VzCQBkAgUTc3RhcnRIZWlnaHRQcmV2aW91cwULZXBvY2hMZW5ndGgEEGNoZWNrVGFyZ2V0RXBvY2gDCQBnAgUNZXBvY2hQcmV2aW91cwAABgkAAgECK3Byb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgcHJldmlvdXMgZXBvY2gDCQAAAgUQY2hlY2tUYXJnZXRFcG9jaAUQY2hlY2tUYXJnZXRFcG9jaAQEcG9vbAkBDHN0cmluZ1RvUG9vbAEFB3Bvb2xTdHIEE2d3eEFtb3VudEF0RW5kVG90YWwKAAFACQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBQllbmRIZWlnaHQFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFCWVuZEhlaWdodAUDbmlsBQNuaWwCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzCgABQAkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgUOdXNlckFkZHJlc3NTdHIJAMwIAgURZW5kSGVpZ2h0UHJldmlvdXMFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFEWVuZEhlaWdodFByZXZpb3VzBQNuaWwFA25pbAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCfCAEJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gAAAQMdm90aW5nUmVzdWx0CQELdmFsdWVPckVsc2UCCQCfCAEJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAAABAx2b3RlUHJldmlvdXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEHa2V5Vm90ZQMFBHBvb2wFC3VzZXJBZGRyZXNzBQ1lcG9jaFByZXZpb3VzCQCsAgIJAKwCAgkArAICCQCsAgICFHByb2Nlc3NWb3RlSU5URVJOQUwgBQdwb29sU3RyAgEgBQ51c2VyQWRkcmVzc1N0cgISOiBubyBwcmV2aW91cyB2b3RlBAR1c2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlVc2VkAgULdXNlckFkZHJlc3MFBWVwb2NoAAAEB25ld1ZvdGUJAGsDBQx2b3RlUHJldmlvdXMFE2d3eEFtb3VudEF0RW5kVG90YWwFG2d3eEFtb3VudEF0RW5kVG90YWxQcmV2aW91cwQHYWN0aW9ucwMJAGYCBQduZXdWb3RlAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlWb3RlAwUEcG9vbAULdXNlckFkZHJlc3MFBWVwb2NoBQduZXdWb3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoCQBkAgUKdG90YWxWb3RlcwUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoCQBkAgUMdm90aW5nUmVzdWx0BQduZXdWb3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5VXNlZAIFC3VzZXJBZGRyZXNzBQVlcG9jaAkAZAIFBHVzZWQFB25ld1ZvdGUFA25pbAkBEWRlbGV0ZU5vZGVBY3Rpb25zAgkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sBQ51c2VyQWRkcmVzc1N0cgkAlAoCBQdhY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3Byb2Nlc3NQb29sSU5URVJOQUwBB3Bvb2xTdHIEC2NoZWNrQ2FsbGVyCQEIbXVzdFRoaXMBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdGFyZ2V0RXBvY2gJAGUCCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoAAEEEGNoZWNrVGFyZ2V0RXBvY2gDCQBnAgULdGFyZ2V0RXBvY2gAAAYJAAIBAilwcm9jZXNzUG9vbElOVEVSTkFMOiBpbnZhbGlkIHRhcmdldCBlcG9jaAMJAAACBRBjaGVja1RhcmdldEVwb2NoBRBjaGVja1RhcmdldEVwb2NoBARwb29sCQEMc3RyaW5nVG9Qb29sAQUHcG9vbFN0cgQNJHQwMTgyMTAxODI1MAUEcG9vbAQNYW1vdW50QXNzZXRJZAgFDSR0MDE4MjEwMTgyNTACXzEEDHByaWNlQXNzZXRJZAgFDSR0MDE4MjEwMTgyNTACXzIED3N0YWtpbmdDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDGdldFN0ck9yRmFpbAIFBHRoaXMFEmtleVN0YWtpbmdDb250cmFjdAQPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwUSa2V5RmFjdG9yeUNvbnRyYWN0BAlscEFzc2V0SWQJARZnZXRMcEFzc2V0QnlQb29sQXNzZXRzAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBAFyCgABQAkA/AcEBQ9zdGFraW5nQ29udHJhY3QCEnVzZXJzTGlzdFRyYXZlcnNhbAkAzAgCBQlscEFzc2V0SWQFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBCQD8BwQFD3N0YWtpbmdDb250cmFjdAISdXNlcnNMaXN0VHJhdmVyc2FsCQDMCAIFCWxwQXNzZXRJZAUDbmlsBQNuaWwCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUBcgUBcgMFAXIJAJQKAgUDbmlsBgQKdG90YWxWb3RlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQENa2V5VG90YWxWb3RlcwEFC3RhcmdldEVwb2NoAAAEDHZvdGluZ1Jlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAULdGFyZ2V0RXBvY2gAAAQFc2hhcmUDCQAAAgUKdG90YWxWb3RlcwAAAAAJAGsDBQx2b3RpbmdSZXN1bHQFDnBvb2xXZWlnaHRNdWx0BQp0b3RhbFZvdGVzBA9tb2RpZnlXZWlnaHRJbnYJAPwHBAUPZmFjdG9yeUNvbnRyYWN0Agxtb2RpZnlXZWlnaHQJAMwIAgUJbHBBc3NldElkCQDMCAIFBXNoYXJlBQNuaWwFA25pbAMJAAACBQ9tb2RpZnlXZWlnaHRJbnYFD21vZGlmeVdlaWdodEludgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMa2V5UG9vbFNoYXJlAgUEcG9vbAULdGFyZ2V0RXBvY2gFBXNoYXJlBQNuaWwHCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmZpbmFsaXplSGVscGVyAAQFZXBvY2gJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoAAAEDXByZXZpb3VzRXBvY2gJAGUCBQVlcG9jaAABBAtzdGFydEhlaWdodAkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQVlcG9jaAQLZXBvY2hMZW5ndGgJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ5rZXlFcG9jaExlbmd0aAQJZW5kSGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFC2Vwb2NoTGVuZ3RoBBdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAkAmggCBQR0aGlzBRRrZXlGaW5hbGl6YXRpb25TdGFnZQMJAGcCBQZoZWlnaHQFCWVuZEhlaWdodAQIbmV3RXBvY2gJAGQCBQVlcG9jaAABCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQhuZXdFcG9jaAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlTdGFydEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlDdXJyZW50RXBvY2gFCG5ld0Vwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrZXlGaW5hbGl6YXRpb25TdGFnZQUWZmluYWxpemF0aW9uU3RhZ2VUb3RhbAUDbmlsBgMJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAkAlAoCBQNuaWwHAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BRZmaW5hbGl6YXRpb25TdGFnZVRvdGFsBApwb29sT3JVbml0CQCiCAEFC2tleU5leHRQb29sBAp1c2VyT3JVbml0CQCiCAEFC2tleU5leHRVc2VyBAckbWF0Y2gwBQpwb29sT3JVbml0AwkAAQIFByRtYXRjaDACBFVuaXQEByRtYXRjaDEJAKIIAQkBC2tleUxpc3RIZWFkAQUNcG9vbHNMaXN0TmFtZQMJAAECBQckbWF0Y2gxAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFFGtleUZpbmFsaXphdGlvblN0YWdlBRdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0UG9vbAkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0VXNlcgUDbmlsBgMJAAECBQckbWF0Y2gxAgZTdHJpbmcEDHBvb2xzSGVhZFN0cgUHJG1hdGNoMQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2tleU5leHRQb29sBQxwb29sc0hlYWRTdHIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB3Bvb2xTdHIFByRtYXRjaDAEBHBvb2wJAQxzdHJpbmdUb1Bvb2wBBQdwb29sU3RyBA5uZXh0VXNlck9yVW5pdAQHJG1hdGNoMQUKdXNlck9yVW5pdAMJAAECBQckbWF0Y2gxAgRVbml0CQCiCAEJAQtrZXlMaXN0SGVhZAEJARBnZXRWb3Rlc0xpc3ROYW1lAQUEcG9vbAMJAAECBQckbWF0Y2gxAgZTdHJpbmcEBHVzZXIFByRtYXRjaDEEDnByb2Nlc3NWb3RlSW52CQD8BwQFBHRoaXMCE3Byb2Nlc3NWb3RlSU5URVJOQUwJAMwIAgUHcG9vbFN0cgkAzAgCBQR1c2VyBQNuaWwFA25pbAMJAAACBQ5wcm9jZXNzVm90ZUludgUOcHJvY2Vzc1ZvdGVJbnYJAKIIAQkBC2tleUxpc3ROZXh0AgkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sBQR1c2VyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILTWF0Y2ggZXJyb3IEByRtYXRjaDEFDm5leHRVc2VyT3JVbml0AwkAAQIFByRtYXRjaDECBFVuaXQEDm5leHRQb29sT3JVbml0CQCiCAEJAQtrZXlMaXN0TmV4dAIFDXBvb2xzTGlzdE5hbWUFB3Bvb2xTdHIEByRtYXRjaDIFDm5leHRQb29sT3JVbml0AwkAAQIFByRtYXRjaDICBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRQb29sCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRVc2VyBQNuaWwGAwkAAQIFByRtYXRjaDICBlN0cmluZwQBcwUHJG1hdGNoMgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2tleU5leHRQb29sBQFzCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRVc2VyBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUHJG1hdGNoMQIGU3RyaW5nBAhuZXh0VXNlcgUHJG1hdGNoMQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2tleU5leHRVc2VyBQhuZXh0VXNlcgUDbmlsBgkAAgECC01hdGNoIGVycm9yCQACAQILTWF0Y2ggZXJyb3IDCQAAAgUXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzBApwb29sT3JVbml0CQCiCAEFC2tleU5leHRQb29sBAckbWF0Y2gwBQpwb29sT3JVbml0AwkAAQIFByRtYXRjaDACBFVuaXQEByRtYXRjaDEJAKIIAQkBC2tleUxpc3RIZWFkAQUNcG9vbHNMaXN0TmFtZQMJAAECBQckbWF0Y2gxAgRVbml0CQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQUUa2V5RmluYWxpemF0aW9uU3RhZ2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQxrZXlGaW5hbGl6ZWQBBQ1wcmV2aW91c0Vwb2NoBgkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5Q3VycmVudEVwb2NoVWkFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlTdGFydEhlaWdodFVpBQtzdGFydEhlaWdodAUDbmlsBgMJAAECBQckbWF0Y2gxAgZTdHJpbmcEC25leHRQb29sU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFC25leHRQb29sU3RyBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAdwb29sU3RyBQckbWF0Y2gwBAFyCgABQAkA/AcEBQR0aGlzAhNwcm9jZXNzUG9vbElOVEVSTkFMCQDMCAIFB3Bvb2xTdHIFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCE3Byb2Nlc3NQb29sSU5URVJOQUwJAMwIAgUHcG9vbFN0cgUDbmlsBQNuaWwCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUBcgUBcgMFAXIJAJQKAgUDbmlsBgQObmV4dFBvb2xPclVuaXQJAKIIAQkBC2tleUxpc3ROZXh0AgUNcG9vbHNMaXN0TmFtZQUHcG9vbFN0cgQHJG1hdGNoMQUObmV4dFBvb2xPclVuaXQDCQABAgUHJG1hdGNoMQIEVW5pdAkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEFFGtleUZpbmFsaXphdGlvblN0YWdlCQDMCAIJAQxCb29sZWFuRW50cnkCCQEMa2V5RmluYWxpemVkAQUNcHJldmlvdXNFcG9jaAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleUN1cnJlbnRFcG9jaFVpBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5U3RhcnRIZWlnaHRVaQULc3RhcnRIZWlnaHQJAMwIAgkBC0RlbGV0ZUVudHJ5AQULa2V5TmV4dFBvb2wFA25pbAYDCQABAgUHJG1hdGNoMQIGU3RyaW5nBAtuZXh0UG9vbFN0cgUHJG1hdGNoMQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFC2tleU5leHRQb29sBQtuZXh0UG9vbFN0cgUDbmlsBgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILTWF0Y2ggZXJyb3IJAAIBAhZmaW5hbGl6YXRpb24gaXMgYnJva2VuAWkBD2ZpbmFsaXplV3JhcHBlcgEHY291bnRlcgQGcmVzdWx0CgABQAkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwDCQABAgUBQAIHQm9vbGVhbgUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwIOZmluYWxpemVIZWxwZXIFA25pbAUDbmlsAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFBnJlc3VsdAUGcmVzdWx0AwkBASEBBQZyZXN1bHQDCQAAAgUHY291bnRlcgAACQACAQIeQ3VycmVudCB2b3RpbmcgaXMgbm90IG92ZXIgeWV0CQCUCgIFA25pbAUEdW5pdAQIbWF4RGVwdGgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5TWF4RGVwdGgFD21heERlcHRoRGVmYXVsdAMJAGYCBQhtYXhEZXB0aAUHY291bnRlcgQDaW52CQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCCQBkAgUHY291bnRlcgABBQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGZpbmFsaXplAAQDaW52CQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCAAAFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52CQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJvblZlcmlmaWNhdGlvbkxvc3MBB2Fzc2V0SWQJAJQKAgUDbmlsBQR1bml0AWkBFGNvbnRhaW5zTm9kZVJFQURPTkxZAghsaXN0TmFtZQJpZAkAlAoCBQNuaWwJAQxjb250YWluc05vZGUCBQhsaXN0TmFtZQUCaWQBaQEKaW5zZXJ0Tm9kZQIIbGlzdE5hbWUCaWQEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAlAoCCQERaW5zZXJ0Tm9kZUFjdGlvbnMCBQhsaXN0TmFtZQUCaWQFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKZGVsZXRlTm9kZQIIbGlzdE5hbWUCaWQEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAlAoCCQERZGVsZXRlTm9kZUFjdGlvbnMCBQhsaXN0TmFtZQUCaWQFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXmSfpi/", "chainId": 84, "height": 2107616, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G8yejSpwF5hyzLV1QvMVZjFfe1Gs1HZ9pWqeogxv5CHX Next: AXzJC9BUQaA72N1C1gr4GTjq79rfc4Xrgevf5Zt8QNGy Diff:
OldNewDifferences
127127 }
128128
129129
130-let W = "pools"
130+func W (y,z) = {
131+ func X (Y) = ("%s%s%s__mappings__baseAsset2internalId__" + Y)
131132
132-func X (w) = {
133- let Y = w
134- let y = Y._1
135- let z = Y._2
133+ func Z (aa,ab) = (((("%d%d%s%s__" + toString(aa)) + "__") + toString(ab)) + "__mappings__poolAssets2PoolContract")
134+
135+ func ac (ad) = (("%s%s%s__" + ad) + "__mappings__poolContract2LpAsset")
136+
137+ let ae = addressFromStringValue(Q(this, j))
138+ let af = S(ae, X(y))
139+ let ag = S(ae, X(z))
140+ let ad = Q(ae, Z(af, ag))
141+ let ah = Q(ae, ac(ad))
142+ ah
143+ }
144+
145+
146+let ai = "pools"
147+
148+func aj (w) = {
149+ let ak = w
150+ let y = ak._1
151+ let z = ak._2
136152 makeString(["votes", y, z], a)
137153 }
138154
139155
140-func Z (aa) = {
141- let ab = if ((aa == W))
156+func al (am) = {
157+ let an = if ((am == ai))
142158 then "%s%s"
143159 else "%s%s%s%s"
144- makeString([ab, aa, "head"], a)
160+ makeString([an, am, "head"], a)
145161 }
146162
147163
148-func ac (aa) = {
149- let ab = if ((aa == W))
164+func ao (am) = {
165+ let an = if ((am == ai))
150166 then "%s%s"
151167 else "%s%s%s%s"
152- makeString([ab, aa, "size"], a)
168+ makeString([an, am, "size"], a)
153169 }
154170
155171
156-func ad (aa,ae) = {
157- let ab = if ((aa == W))
172+func ap (am,aq) = {
173+ let an = if ((am == ai))
158174 then "%s%s%s%s"
159175 else "%s%s%s%s%s"
160- makeString([ab, aa, ae, "prev"], a)
176+ makeString([an, am, aq, "prev"], a)
161177 }
162178
163179
164-func af (aa,ae) = {
165- let ab = if ((aa == W))
180+func ar (am,aq) = {
181+ let an = if ((am == ai))
166182 then "%s%s%s%s"
167183 else "%s%s%s%s%s"
168- makeString([ab, aa, ae, "next"], a)
184+ makeString([an, am, aq, "next"], a)
169185 }
170186
171187
172-func ag (aa,ae) = {
173- let ah = getString(this, Z(aa))
174- let ai = getString(this, ad(aa, ae))
175- let aj = getString(this, af(aa, ae))
176- if (if ((ae == valueOrElse(ah, "")))
188+func as (am,aq) = {
189+ let at = getString(this, al(am))
190+ let au = getString(this, ap(am, aq))
191+ let av = getString(this, ar(am, aq))
192+ if (if ((aq == valueOrElse(at, "")))
177193 then true
178- else (ai != unit))
194+ else (au != unit))
179195 then true
180- else (aj != unit)
196+ else (av != unit)
181197 }
182198
183199
184-func ak (aa,ae) = {
185- let ah = getString(this, Z(aa))
186- let al = valueOrElse(getInteger(this, ac(aa)), 0)
187- let am = if (!(ag(aa, ae)))
200+func aw (am,aq) = {
201+ let at = getString(this, al(am))
202+ let ax = valueOrElse(getInteger(this, ao(am)), 0)
203+ let ay = if (!(as(am, aq)))
188204 then true
189205 else throw("Node exists")
190- if ((am == am))
191- then (([IntegerEntry(ac(aa), (al + 1))] ++ (if ((ah != unit))
192- then [StringEntry(af(aa, ae), value(ah)), StringEntry(ad(aa, value(ah)), ae)]
193- else nil)) ++ [StringEntry(Z(aa), ae)])
206+ if ((ay == ay))
207+ then (([IntegerEntry(ao(am), (ax + 1))] ++ (if ((at != unit))
208+ then [StringEntry(ar(am, aq), value(at)), StringEntry(ap(am, value(at)), aq)]
209+ else nil)) ++ [StringEntry(al(am), aq)])
194210 else throw("Strict value is not equal to itself.")
195211 }
196212
197213
198-func an (aa,ae) = {
199- let ah = getString(this, Z(aa))
200- let al = valueOrElse(getInteger(this, ac(aa)), 0)
201- let ai = getString(this, ad(aa, ae))
202- let aj = getString(this, af(aa, ae))
203- ([IntegerEntry(ac(aa), (al - 1))] ++ (if (if ((ai != unit))
204- then (aj != unit)
214+func az (am,aq) = {
215+ let at = getString(this, al(am))
216+ let ax = valueOrElse(getInteger(this, ao(am)), 0)
217+ let au = getString(this, ap(am, aq))
218+ let av = getString(this, ar(am, aq))
219+ ([IntegerEntry(ao(am), (ax - 1))] ++ (if (if ((au != unit))
220+ then (av != unit)
205221 else false)
206- then [StringEntry(af(aa, value(ai)), value(aj)), StringEntry(ad(aa, value(aj)), value(ai)), DeleteEntry(ad(aa, ae)), DeleteEntry(af(aa, ae))]
207- else if ((aj != unit))
208- then [StringEntry(Z(aa), value(aj)), DeleteEntry(af(aa, ae)), DeleteEntry(ad(aa, value(aj)))]
209- else if ((ai != unit))
210- then [DeleteEntry(ad(aa, ae)), DeleteEntry(af(aa, value(ai)))]
211- else if ((ae == valueOrElse(ah, "")))
212- then [DeleteEntry(Z(aa))]
213- else throw(((("invalid node: " + aa) + ".") + ae))))
222+ then [StringEntry(ar(am, value(au)), value(av)), StringEntry(ap(am, value(av)), value(au)), DeleteEntry(ap(am, aq)), DeleteEntry(ar(am, aq))]
223+ else if ((av != unit))
224+ then [StringEntry(al(am), value(av)), DeleteEntry(ar(am, aq)), DeleteEntry(ap(am, value(av)))]
225+ else if ((au != unit))
226+ then [DeleteEntry(ap(am, aq)), DeleteEntry(ar(am, value(au)))]
227+ else if ((aq == valueOrElse(at, "")))
228+ then [DeleteEntry(al(am))]
229+ else throw(((("invalid node: " + am) + ".") + aq))))
214230 }
215231
216232
217-func ao () = "%s__managerPublicKey"
233+func aA () = "%s__managerPublicKey"
218234
219235
220-func ap () = "%s__pendingManagerPublicKey"
236+func aB () = "%s__pendingManagerPublicKey"
221237
222238
223-func aq () = {
224- let N = getString(ao())
239+func aC () = {
240+ let N = getString(aA())
225241 if ($isInstanceOf(N, "String"))
226242 then {
227- let ar = N
228- fromBase58String(ar)
243+ let aD = N
244+ fromBase58String(aD)
229245 }
230246 else if ($isInstanceOf(N, "Unit"))
231247 then unit
233249 }
234250
235251
236-func as () = {
237- let N = getString(ap())
252+func aE () = {
253+ let N = getString(aB())
238254 if ($isInstanceOf(N, "String"))
239255 then {
240- let ar = N
241- fromBase58String(ar)
256+ let aD = N
257+ fromBase58String(aD)
242258 }
243259 else if ($isInstanceOf(N, "Unit"))
244260 then unit
246262 }
247263
248264
249-let at = throw("Permission denied")
265+let aF = throw("Permission denied")
250266
251-func au (av) = if ((av.caller == this))
267+func aG (aH) = if ((aH.caller == this))
252268 then true
253- else at
269+ else aF
254270
255271
256-func aw (av) = {
257- let N = aq()
272+func aI (aH) = {
273+ let N = aC()
258274 if ($isInstanceOf(N, "ByteVector"))
259275 then {
260- let ax = N
261- if ((av.callerPublicKey == ax))
276+ let aJ = N
277+ if ((aH.callerPublicKey == aJ))
262278 then true
263- else at
279+ else aF
264280 }
265281 else if ($isInstanceOf(N, "Unit"))
266- then au(av)
282+ then aG(aH)
267283 else throw("Match error")
268284 }
269285
270286
271-@Callable(av)
272-func setManager (ay) = {
273- let az = aw(av)
274- if ((az == az))
287+@Callable(aH)
288+func setManager (aK) = {
289+ let aL = aI(aH)
290+ if ((aL == aL))
275291 then {
276- let aA = fromBase58String(ay)
277- if ((aA == aA))
278- then [StringEntry(ap(), ay)]
292+ let aM = fromBase58String(aK)
293+ if ((aM == aM))
294+ then [StringEntry(aB(), aK)]
279295 else throw("Strict value is not equal to itself.")
280296 }
281297 else throw("Strict value is not equal to itself.")
283299
284300
285301
286-@Callable(av)
302+@Callable(aH)
287303 func confirmManager () = {
288- let aB = as()
289- let aC = if (isDefined(aB))
304+ let aN = aE()
305+ let aO = if (isDefined(aN))
290306 then true
291307 else throw("No pending manager")
292- if ((aC == aC))
308+ if ((aO == aO))
293309 then {
294- let aD = if ((av.callerPublicKey == value(aB)))
310+ let aP = if ((aH.callerPublicKey == value(aN)))
295311 then true
296312 else throw("You are not pending manager")
297- if ((aD == aD))
298- then [StringEntry(ao(), toBase58String(value(aB))), DeleteEntry(ap())]
313+ if ((aP == aP))
314+ then [StringEntry(aA(), toBase58String(value(aN))), DeleteEntry(aB())]
299315 else throw("Strict value is not equal to itself.")
300316 }
301317 else throw("Strict value is not equal to itself.")
303319
304320
305321
306-@Callable(av)
307-func getUserGwxAmountAtHeight (aE,aF) = {
308- let aG = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
322+@Callable(aH)
323+func getUserGwxAmountAtHeight (aQ,aR) = {
324+ let aS = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
309325 $Tuple2(nil, {
310- let R = invoke(aG, "getUserGwxAmountAtHeightREADONLY", [aE, aF], nil)
326+ let R = invoke(aS, "getUserGwxAmountAtHeightREADONLY", [aQ, aR], nil)
311327 if ($isInstanceOf(R, "Int"))
312328 then R
313- else throw(($getType(invoke(aG, "getUserGwxAmountAtHeightREADONLY", [aE, aF], nil)) + " couldn't be cast to Int"))
329+ else throw(($getType(invoke(aS, "getUserGwxAmountAtHeightREADONLY", [aQ, aR], nil)) + " couldn't be cast to Int"))
314330 })
315331 }
316332
317333
318334
319-@Callable(av)
320-func constructor (aH,aI,aJ,aK,aL) = {
321- let aM = [aw(av), if ((addressFromString(aH) != unit))
335+@Callable(aH)
336+func constructor (ae,aT,aU,aV,aW) = {
337+ let aX = [aI(aH), if ((addressFromString(ae) != unit))
322338 then true
323- else "invalid factory contract address", if ((addressFromString(aI) != unit))
339+ else "invalid factory contract address", if ((addressFromString(aT) != unit))
324340 then true
325- else "invalid voting emission candidate contract address", if ((addressFromString(aJ) != unit))
341+ else "invalid voting emission candidate contract address", if ((addressFromString(aU) != unit))
326342 then true
327- else "invalid boosting contract address", if ((addressFromString(aK) != unit))
343+ else "invalid boosting contract address", if ((addressFromString(aV) != unit))
328344 then true
329- else "invalid staking contract address", if ((aL > 0))
345+ else "invalid staking contract address", if ((aW > 0))
330346 then true
331347 else throw("invalid epoch length")]
332- if ((aM == aM))
333- then $Tuple2([StringEntry(j, aH), StringEntry(i, aI), StringEntry(k, aJ), StringEntry(l, aK), IntegerEntry(f, aL)], unit)
348+ if ((aX == aX))
349+ then $Tuple2([StringEntry(j, ae), StringEntry(i, aT), StringEntry(k, aU), StringEntry(l, aV), IntegerEntry(f, aW)], unit)
334350 else throw("Strict value is not equal to itself.")
335351 }
336352
337353
338354
339-@Callable(av)
355+@Callable(aH)
340356 func create (y,z) = {
341- let aN = [if ((toBase58String(av.caller.bytes) == valueOrElse(getString(this, i), "")))
357+ let aY = [if ((toBase58String(aH.caller.bytes) == valueOrElse(getString(this, i), "")))
342358 then true
343- else aw(av)]
344- if ((aN == aN))
359+ else aI(aH)]
360+ if ((aY == aY))
345361 then {
346362 let w = $Tuple2(y, z)
347- let aO = ([BooleanEntry(v(w), true)] ++ ak(W, T(w)))
348- let aP = (getInteger(this, g) == unit)
349- let aQ = if (aP)
363+ let aZ = ([BooleanEntry(v(w), true)] ++ aw(ai, T(w)))
364+ let ba = (getInteger(this, g) == unit)
365+ let bb = if (ba)
350366 then {
351367 let t = 0
352368 [IntegerEntry(g, t), IntegerEntry(s(t), height), IntegerEntry(p, height), IntegerEntry(q, t), IntegerEntry(r, height)]
353369 }
354370 else nil
355- $Tuple2((aO ++ aQ), unit)
371+ $Tuple2((aZ ++ bb), unit)
356372 }
357373 else throw("Strict value is not equal to itself.")
358374 }
359375
360376
361377
362-@Callable(av)
363-func vote (y,z,aR) = {
378+@Callable(aH)
379+func vote (y,z,bc) = {
364380 let w = $Tuple2(y, z)
365381 let t = valueOrElse(getInteger(this, g), 0)
366- let aS = S(this, s(t))
367- let aL = S(this, f)
368- let aT = (aS + aL)
369- let aU = getInteger(this, m)
370- let aV = valueOrElse(getInteger(this, A(av.caller, t)), 0)
371- let aW = valueOrElse(getInteger(this, C(w, av.caller, t)), 0)
372- let aX = valueOrElse(getInteger(this, E(w, t)), 0)
373- let aY = valueOrElse(getInteger(this, I(t)), 0)
374- let aZ = {
375- let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(av.caller.bytes), aT], nil)
382+ let bd = S(this, s(t))
383+ let aW = S(this, f)
384+ let be = (bd + aW)
385+ let bf = getInteger(this, m)
386+ let bg = valueOrElse(getInteger(this, A(aH.caller, t)), 0)
387+ let bh = valueOrElse(getInteger(this, C(w, aH.caller, t)), 0)
388+ let bi = valueOrElse(getInteger(this, E(w, t)), 0)
389+ let bj = valueOrElse(getInteger(this, I(t)), 0)
390+ let bk = {
391+ let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aH.caller.bytes), be], nil)
376392 if ($isInstanceOf(R, "Int"))
377393 then R
378- else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [toBase58String(av.caller.bytes), aT], nil)) + " couldn't be cast to Int"))
394+ else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aH.caller.bytes), be], nil)) + " couldn't be cast to Int"))
379395 }
380- let ba = (aZ - aV)
381- let bb = (aW + aR)
382- let aN = [if ((getBoolean(v(w)) != unit))
396+ let bl = (bk - bg)
397+ let bm = (bh + bc)
398+ let aY = [if ((getBoolean(v(w)) != unit))
383399 then true
384- else throw("invalid assets"), if ((aT > height))
400+ else throw("invalid assets"), if ((be > height))
385401 then true
386- else throw("invalid height"), if ((aU == unit))
402+ else throw("invalid height"), if ((bf == unit))
387403 then true
388- else throw("finalization in progress"), if ((aZ > 0))
404+ else throw("finalization in progress"), if ((bk > 0))
389405 then true
390- else throw("you do not have gWX"), if (if ((aR > 0))
391- then (ba >= aR)
406+ else throw("you do not have gWX"), if (if ((bc > 0))
407+ then (bl >= bc)
392408 else false)
393409 then true
394410 else throw("invalid amount")]
395- if ((aN == aN))
411+ if ((aY == aY))
396412 then {
397- let bc = X(w)
398- let bd = toString(av.caller)
399- let be = if (ag(bc, bd))
413+ let bn = aj(w)
414+ let bo = toString(aH.caller)
415+ let bp = if (as(bn, bo))
400416 then nil
401- else ak(bc, bd)
402- $Tuple2(([IntegerEntry(A(av.caller, t), (aV + aR)), IntegerEntry(C(w, av.caller, t), bb), IntegerEntry(E(w, t), (aX + aR)), IntegerEntry(I(t), (aY + aR))] ++ be), unit)
417+ else aw(bn, bo)
418+ $Tuple2(([IntegerEntry(A(aH.caller, t), (bg + bc)), IntegerEntry(C(w, aH.caller, t), bm), IntegerEntry(E(w, t), (bi + bc)), IntegerEntry(I(t), (bj + bc))] ++ bp), unit)
403419 }
404420 else throw("Strict value is not equal to itself.")
405421 }
406422
407423
408424
409-@Callable(av)
425+@Callable(aH)
410426 func cancelVote (y,z) = {
411427 let w = $Tuple2(y, z)
412428 let t = valueOrElse(getInteger(this, g), 0)
413- let aS = S(this, s(t))
414- let aL = S(this, f)
415- let aT = (aS + aL)
416- let aU = getInteger(this, m)
417- let aV = valueOrElse(getInteger(this, A(av.caller, t)), 0)
418- let aW = valueOrElse(getInteger(this, C(w, av.caller, t)), 0)
419- let aX = valueOrElse(getInteger(this, E(w, t)), 0)
420- let aY = valueOrElse(getInteger(this, I(t)), 0)
421- let aN = [if ((getBoolean(v(w)) != unit))
429+ let bd = S(this, s(t))
430+ let aW = S(this, f)
431+ let be = (bd + aW)
432+ let bf = getInteger(this, m)
433+ let bg = valueOrElse(getInteger(this, A(aH.caller, t)), 0)
434+ let bh = valueOrElse(getInteger(this, C(w, aH.caller, t)), 0)
435+ let bi = valueOrElse(getInteger(this, E(w, t)), 0)
436+ let bj = valueOrElse(getInteger(this, I(t)), 0)
437+ let aY = [if ((getBoolean(v(w)) != unit))
422438 then true
423- else throw("invalid assets"), if ((aT > height))
439+ else throw("invalid assets"), if ((be > height))
424440 then true
425- else throw("invalid height"), if ((aU == unit))
441+ else throw("invalid height"), if ((bf == unit))
426442 then true
427- else throw("finalization in progress"), if ((aW > 0))
443+ else throw("finalization in progress"), if ((bh > 0))
428444 then true
429445 else throw("no vote")]
430- if ((aN == aN))
446+ if ((aY == aY))
431447 then {
432- let bc = X(w)
433- let bd = toString(av.caller)
434- $Tuple2(([IntegerEntry(A(av.caller, t), max([(aV - aW), 0])), DeleteEntry(C(w, av.caller, t)), IntegerEntry(E(w, t), (aX - aW)), IntegerEntry(I(t), (aY - aW))] ++ an(bc, bd)), unit)
448+ let bn = aj(w)
449+ let bo = toString(aH.caller)
450+ $Tuple2(([IntegerEntry(A(aH.caller, t), max([(bg - bh), 0])), DeleteEntry(C(w, aH.caller, t)), IntegerEntry(E(w, t), (bi - bh)), IntegerEntry(I(t), (bj - bh))] ++ az(bn, bo)), unit)
435451 }
436452 else throw("Strict value is not equal to itself.")
437453 }
438454
439455
440456
441-@Callable(av)
442-func setEpochLength (bf) = {
443- let aM = [aw(av), if ((bf > 0))
457+@Callable(aH)
458+func setEpochLength (bq) = {
459+ let aX = [aI(aH), if ((bq > 0))
444460 then true
445461 else throw("invalid epoch length")]
446- if ((aM == aM))
447- then $Tuple2([IntegerEntry(f, bf)], unit)
462+ if ((aX == aX))
463+ then $Tuple2([IntegerEntry(f, bq)], unit)
448464 else throw("Strict value is not equal to itself.")
449465 }
450466
451467
452468
453-@Callable(av)
454-func setMaxDepth (bg) = {
455- let aM = [aw(av), if ((bg > 0))
469+@Callable(aH)
470+func setMaxDepth (br) = {
471+ let aX = [aI(aH), if ((br > 0))
456472 then true
457473 else throw("invalid max depth")]
458- if ((aM == aM))
459- then $Tuple2([IntegerEntry(h, bg)], unit)
474+ if ((aX == aX))
475+ then $Tuple2([IntegerEntry(h, br)], unit)
460476 else throw("Strict value is not equal to itself.")
461477 }
462478
463479
464480
465-@Callable(av)
466-func processVoteINTERNAL (bh,bd) = {
467- let az = au(av)
468- if ((az == az))
481+@Callable(aH)
482+func processVoteINTERNAL (bs,bo) = {
483+ let aL = aG(aH)
484+ if ((aL == aL))
469485 then {
470- let aE = valueOrErrorMessage(addressFromString(bd), ("processVoteINTERNAL: invalid user address " + bd))
486+ let aQ = valueOrErrorMessage(addressFromString(bo), ("processVoteINTERNAL: invalid user address " + bo))
471487 let t = S(this, g)
472- let bi = (t - 1)
473- let aL = S(this, f)
474- let aS = S(this, s(t))
475- let aT = (aS + aL)
476- let bj = S(this, s(bi))
477- let bk = (bj + aL)
478- let bl = if ((bi >= 0))
488+ let bt = (t - 1)
489+ let aW = S(this, f)
490+ let bd = S(this, s(t))
491+ let be = (bd + aW)
492+ let bu = S(this, s(bt))
493+ let bv = (bu + aW)
494+ let bw = if ((bt >= 0))
479495 then true
480496 else throw("processVoteINTERNAL: invalid previous epoch")
481- if ((bl == bl))
497+ if ((bw == bw))
482498 then {
483- let w = U(bh)
484- let aZ = {
485- let R = invoke(this, "getUserGwxAmountAtHeight", [bd, aT], nil)
499+ let w = U(bs)
500+ let bk = {
501+ let R = invoke(this, "getUserGwxAmountAtHeight", [bo, be], nil)
486502 if ($isInstanceOf(R, "Int"))
487503 then R
488- else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bd, aT], nil)) + " couldn't be cast to Int"))
504+ else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bo, be], nil)) + " couldn't be cast to Int"))
489505 }
490- let bm = {
491- let R = invoke(this, "getUserGwxAmountAtHeight", [bd, bk], nil)
506+ let bx = {
507+ let R = invoke(this, "getUserGwxAmountAtHeight", [bo, bv], nil)
492508 if ($isInstanceOf(R, "Int"))
493509 then R
494- else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bd, bk], nil)) + " couldn't be cast to Int"))
510+ else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bo, bv], nil)) + " couldn't be cast to Int"))
495511 }
496- let aY = valueOrElse(getInteger(I(t)), 0)
497- let bn = valueOrElse(getInteger(E(w, t)), 0)
498- let bo = valueOrErrorMessage(getInteger(C(w, aE, bi)), (((("processVoteINTERNAL " + bh) + " ") + bd) + ": no previous vote"))
499- let aV = valueOrElse(getInteger(this, A(aE, t)), 0)
500- let bb = fraction(bo, aZ, bm)
501- let bp = if ((bb > 0))
502- then [IntegerEntry(C(w, aE, t), bb), IntegerEntry(I(t), (aY + bb)), IntegerEntry(E(w, t), (bn + bb)), IntegerEntry(A(aE, t), (aV + bb))]
503- else an(X(w), bd)
504- $Tuple2(bp, unit)
512+ let bj = valueOrElse(getInteger(I(t)), 0)
513+ let by = valueOrElse(getInteger(E(w, t)), 0)
514+ let bz = valueOrErrorMessage(getInteger(C(w, aQ, bt)), (((("processVoteINTERNAL " + bs) + " ") + bo) + ": no previous vote"))
515+ let bg = valueOrElse(getInteger(this, A(aQ, t)), 0)
516+ let bm = fraction(bz, bk, bx)
517+ let bA = if ((bm > 0))
518+ then [IntegerEntry(C(w, aQ, t), bm), IntegerEntry(I(t), (bj + bm)), IntegerEntry(E(w, t), (by + bm)), IntegerEntry(A(aQ, t), (bg + bm))]
519+ else az(aj(w), bo)
520+ $Tuple2(bA, unit)
505521 }
506522 else throw("Strict value is not equal to itself.")
507523 }
510526
511527
512528
513-@Callable(av)
514-func processPoolINTERNAL (bh) = {
515- let az = au(av)
516- if ((az == az))
529+@Callable(aH)
530+func processPoolINTERNAL (bs) = {
531+ let aL = aG(aH)
532+ if ((aL == aL))
517533 then {
518- let bq = (S(this, g) - 1)
519- let bl = if ((bq >= 0))
534+ let bB = (S(this, g) - 1)
535+ let bw = if ((bB >= 0))
520536 then true
521537 else throw("processPoolINTERNAL: invalid target epoch")
522- if ((bl == bl))
538+ if ((bw == bw))
523539 then {
524- let w = U(bh)
525- let br = w
526- let y = br._1
527- let z = br._2
528- let aK = addressFromStringValue(Q(this, l))
529- let aH = addressFromStringValue(Q(this, j))
530- let bs = {
531- let R = invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)
532- if ($isInstanceOf(R, "(String, String)"))
533- then R
534- else throw(($getType(invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)) + " couldn't be cast to (String, String)"))
535- }
536- let bt = bs._1
537- let bu = bs._2
538- let bv = {
539- let R = invoke(aK, "usersListTraversal", [bu], nil)
540+ let w = U(bs)
541+ let bC = w
542+ let y = bC._1
543+ let z = bC._2
544+ let aV = addressFromStringValue(Q(this, l))
545+ let ae = addressFromStringValue(Q(this, j))
546+ let ah = W(y, z)
547+ let bD = {
548+ let R = invoke(aV, "usersListTraversal", [ah], nil)
540549 if ($isInstanceOf(R, "Boolean"))
541550 then R
542- else throw(($getType(invoke(aK, "usersListTraversal", [bu], nil)) + " couldn't be cast to Boolean"))
551+ else throw(($getType(invoke(aV, "usersListTraversal", [ah], nil)) + " couldn't be cast to Boolean"))
543552 }
544- if ((bv == bv))
545- then if (bv)
553+ if ((bD == bD))
554+ then if (bD)
546555 then $Tuple2(nil, true)
547556 else {
548- let aY = valueOrElse(getInteger(this, I(bq)), 0)
549- let bn = valueOrElse(getInteger(this, E(w, bq)), 0)
550- let bw = if ((aY == 0))
557+ let bj = valueOrElse(getInteger(this, I(bB)), 0)
558+ let by = valueOrElse(getInteger(this, E(w, bB)), 0)
559+ let bE = if ((bj == 0))
551560 then 0
552- else fraction(bn, b, aY)
553- let bx = invoke(aH, "modifyWeight", [bu, bw], nil)
554- if ((bx == bx))
555- then $Tuple2([IntegerEntry(G(w, bq), bw)], false)
561+ else fraction(by, b, bj)
562+ let bF = invoke(ae, "modifyWeight", [ah, bE], nil)
563+ if ((bF == bF))
564+ then $Tuple2([IntegerEntry(G(w, bB), bE)], false)
556565 else throw("Strict value is not equal to itself.")
557566 }
558567 else throw("Strict value is not equal to itself.")
564573
565574
566575
567-@Callable(av)
576+@Callable(aH)
568577 func finalizeHelper () = {
569578 let t = valueOrElse(getInteger(this, g), 0)
570- let by = (t - 1)
571- let aS = S(this, s(t))
572- let aL = S(this, f)
573- let aT = (aS + aL)
574- let aU = getInteger(this, m)
575- if ((height >= aT))
579+ let bG = (t - 1)
580+ let bd = S(this, s(t))
581+ let aW = S(this, f)
582+ let be = (bd + aW)
583+ let bf = getInteger(this, m)
584+ if ((height >= be))
576585 then {
577- let bz = (t + 1)
578- $Tuple2([IntegerEntry(s(bz), height), IntegerEntry(p, height), IntegerEntry(g, bz), IntegerEntry(m, d)], true)
586+ let bH = (t + 1)
587+ $Tuple2([IntegerEntry(s(bH), height), IntegerEntry(p, height), IntegerEntry(g, bH), IntegerEntry(m, d)], true)
579588 }
580- else if ((aU == unit))
589+ else if ((bf == unit))
581590 then $Tuple2(nil, false)
582- else if ((aU == d))
591+ else if ((bf == d))
583592 then {
584- let bA = getString(n)
585- let bB = getString(o)
586- let N = bA
593+ let bI = getString(n)
594+ let bJ = getString(o)
595+ let N = bI
587596 if ($isInstanceOf(N, "Unit"))
588597 then {
589- let bC = getString(Z(W))
590- if ($isInstanceOf(bC, "Unit"))
598+ let bK = getString(al(ai))
599+ if ($isInstanceOf(bK, "Unit"))
591600 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
592- else if ($isInstanceOf(bC, "String"))
601+ else if ($isInstanceOf(bK, "String"))
593602 then {
594- let bD = bC
595- $Tuple2([StringEntry(n, bD)], true)
603+ let bL = bK
604+ $Tuple2([StringEntry(n, bL)], true)
596605 }
597606 else throw("Match error")
598607 }
599608 else if ($isInstanceOf(N, "String"))
600609 then {
601- let bh = N
602- let w = U(bh)
603- let bE = {
604- let bC = bB
605- if ($isInstanceOf(bC, "Unit"))
606- then getString(Z(X(w)))
607- else if ($isInstanceOf(bC, "String"))
610+ let bs = N
611+ let w = U(bs)
612+ let bM = {
613+ let bK = bJ
614+ if ($isInstanceOf(bK, "Unit"))
615+ then getString(al(aj(w)))
616+ else if ($isInstanceOf(bK, "String"))
608617 then {
609- let bF = bC
610- let bG = invoke(this, "processVoteINTERNAL", [bh, bF], nil)
611- if ((bG == bG))
612- then getString(af(X(w), bF))
618+ let bN = bK
619+ let bO = invoke(this, "processVoteINTERNAL", [bs, bN], nil)
620+ if ((bO == bO))
621+ then getString(ar(aj(w), bN))
613622 else throw("Strict value is not equal to itself.")
614623 }
615624 else throw("Match error")
616625 }
617- let bC = bE
618- if ($isInstanceOf(bC, "Unit"))
626+ let bK = bM
627+ if ($isInstanceOf(bK, "Unit"))
619628 then {
620- let bH = getString(af(W, bh))
621- let bI = bH
622- if ($isInstanceOf(bI, "Unit"))
629+ let bP = getString(ar(ai, bs))
630+ let bQ = bP
631+ if ($isInstanceOf(bQ, "Unit"))
623632 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
624- else if ($isInstanceOf(bI, "String"))
633+ else if ($isInstanceOf(bQ, "String"))
625634 then {
626- let ar = bI
627- $Tuple2([StringEntry(n, ar), DeleteEntry(o)], true)
635+ let aD = bQ
636+ $Tuple2([StringEntry(n, aD), DeleteEntry(o)], true)
628637 }
629638 else throw("Match error")
630639 }
631- else if ($isInstanceOf(bC, "String"))
640+ else if ($isInstanceOf(bK, "String"))
632641 then {
633- let bJ = bC
634- $Tuple2([StringEntry(o, bJ)], true)
642+ let bR = bK
643+ $Tuple2([StringEntry(o, bR)], true)
635644 }
636645 else throw("Match error")
637646 }
638647 else throw("Match error")
639648 }
640- else if ((aU == e))
649+ else if ((bf == e))
641650 then {
642- let bA = getString(n)
643- let N = bA
651+ let bI = getString(n)
652+ let N = bI
644653 if ($isInstanceOf(N, "Unit"))
645654 then {
646- let bC = getString(Z(W))
647- if ($isInstanceOf(bC, "Unit"))
648- then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS)], true)
649- else if ($isInstanceOf(bC, "String"))
655+ let bK = getString(al(ai))
656+ if ($isInstanceOf(bK, "Unit"))
657+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(bG), true), IntegerEntry(q, t), IntegerEntry(r, bd)], true)
658+ else if ($isInstanceOf(bK, "String"))
650659 then {
651- let bK = bC
652- $Tuple2([StringEntry(n, bK)], true)
660+ let bS = bK
661+ $Tuple2([StringEntry(n, bS)], true)
653662 }
654663 else throw("Match error")
655664 }
656665 else if ($isInstanceOf(N, "String"))
657666 then {
658- let bh = N
659- let bv = {
660- let R = invoke(this, "processPoolINTERNAL", [bh], nil)
667+ let bs = N
668+ let bD = {
669+ let R = invoke(this, "processPoolINTERNAL", [bs], nil)
661670 if ($isInstanceOf(R, "Boolean"))
662671 then R
663- else throw(($getType(invoke(this, "processPoolINTERNAL", [bh], nil)) + " couldn't be cast to Boolean"))
672+ else throw(($getType(invoke(this, "processPoolINTERNAL", [bs], nil)) + " couldn't be cast to Boolean"))
664673 }
665- if ((bv == bv))
666- then if (bv)
674+ if ((bD == bD))
675+ then if (bD)
667676 then $Tuple2(nil, true)
668677 else {
669- let bH = getString(af(W, bh))
670- let bC = bH
671- if ($isInstanceOf(bC, "Unit"))
672- then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS), DeleteEntry(n)], true)
673- else if ($isInstanceOf(bC, "String"))
678+ let bP = getString(ar(ai, bs))
679+ let bK = bP
680+ if ($isInstanceOf(bK, "Unit"))
681+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(bG), true), IntegerEntry(q, t), IntegerEntry(r, bd), DeleteEntry(n)], true)
682+ else if ($isInstanceOf(bK, "String"))
674683 then {
675- let bK = bC
676- $Tuple2([StringEntry(n, bK)], true)
684+ let bS = bK
685+ $Tuple2([StringEntry(n, bS)], true)
677686 }
678687 else throw("Match error")
679688 }
686695
687696
688697
689-@Callable(av)
690-func finalizeWrapper (bL) = {
691- let bM = {
698+@Callable(aH)
699+func finalizeWrapper (bT) = {
700+ let bU = {
692701 let R = invoke(this, "finalizeHelper", nil, nil)
693702 if ($isInstanceOf(R, "Boolean"))
694703 then R
695704 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
696705 }
697- if ((bM == bM))
698- then if (!(bM))
699- then if ((bL == 0))
706+ if ((bU == bU))
707+ then if (!(bU))
708+ then if ((bT == 0))
700709 then throw("Current voting is not over yet")
701710 else $Tuple2(nil, unit)
702711 else {
703- let bN = valueOrElse(getInteger(this, h), c)
704- if ((bN > bL))
712+ let bV = valueOrElse(getInteger(this, h), c)
713+ if ((bV > bT))
705714 then {
706- let bO = invoke(this, "finalizeWrapper", [(bL + 1)], nil)
707- if ((bO == bO))
715+ let bW = invoke(this, "finalizeWrapper", [(bT + 1)], nil)
716+ if ((bW == bW))
708717 then $Tuple2(nil, unit)
709718 else throw("Strict value is not equal to itself.")
710719 }
715724
716725
717726
718-@Callable(av)
727+@Callable(aH)
719728 func finalize () = {
720- let bO = invoke(this, "finalizeWrapper", [0], nil)
721- if ((bO == bO))
729+ let bW = invoke(this, "finalizeWrapper", [0], nil)
730+ if ((bW == bW))
722731 then $Tuple2(nil, unit)
723732 else throw("Strict value is not equal to itself.")
724733 }
725734
726735
727736
728-@Callable(av)
729-func onVerificationLoss (bP) = $Tuple2(nil, unit)
737+@Callable(aH)
738+func onVerificationLoss (bX) = $Tuple2(nil, unit)
730739
731740
732741
733-@Callable(av)
734-func containsNodeREADONLY (aa,ae) = $Tuple2(nil, ag(aa, ae))
742+@Callable(aH)
743+func containsNodeREADONLY (am,aq) = $Tuple2(nil, as(am, aq))
735744
736745
737746
738-@Callable(av)
739-func insertNode (aa,ae) = {
740- let az = aw(av)
741- if ((az == az))
742- then $Tuple2(ak(aa, ae), unit)
747+@Callable(aH)
748+func insertNode (am,aq) = {
749+ let aL = aI(aH)
750+ if ((aL == aL))
751+ then $Tuple2(aw(am, aq), unit)
743752 else throw("Strict value is not equal to itself.")
744753 }
745754
746755
747756
748-@Callable(av)
749-func deleteNode (aa,ae) = {
750- let az = aw(av)
751- if ((az == az))
752- then $Tuple2(an(aa, ae), unit)
757+@Callable(aH)
758+func deleteNode (am,aq) = {
759+ let aL = aI(aH)
760+ if ((aL == aL))
761+ then $Tuple2(az(am, aq), unit)
753762 else throw("Strict value is not equal to itself.")
754763 }
755764
756765
757-@Verifier(bQ)
758-func bR () = {
759- let bS = {
760- let N = aq()
766+@Verifier(bY)
767+func bZ () = {
768+ let ca = {
769+ let N = aC()
761770 if ($isInstanceOf(N, "ByteVector"))
762771 then {
763- let ax = N
764- ax
772+ let aJ = N
773+ aJ
765774 }
766775 else if ($isInstanceOf(N, "Unit"))
767- then bQ.senderPublicKey
776+ then bY.senderPublicKey
768777 else throw("Match error")
769778 }
770- sigVerify(bQ.bodyBytes, bQ.proofs[0], bS)
779+ sigVerify(bY.bodyBytes, bY.proofs[0], ca)
771780 }
772781
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 10
99
1010 let d = 0
1111
1212 let e = 1
1313
1414 let f = makeString(["%s", "epochLength"], a)
1515
1616 let g = makeString(["%s", "currentEpoch"], a)
1717
1818 let h = makeString(["%s", "maxDepth"], a)
1919
2020 let i = makeString(["%s", "votingEmissionCandidateContract"], a)
2121
2222 let j = makeString(["%s", "factoryContract"], a)
2323
2424 let k = makeString(["%s", "boostingContract"], a)
2525
2626 let l = makeString(["%s", "stakingContract"], a)
2727
2828 let m = makeString(["%s", "finalizationStage"], a)
2929
3030 let n = makeString(["%s", "nextPool"], a)
3131
3232 let o = makeString(["%s", "nextUser"], a)
3333
3434 let p = makeString(["%s", "startHeight"], a)
3535
3636 let q = makeString(["%s", "currentEpochUi"], a)
3737
3838 let r = makeString(["%s", "startHeightUi"], a)
3939
4040 func s (t) = makeString(["%s%d", "startHeight", toString(t)], a)
4141
4242
4343 func u (t) = makeString(["%s%d", "finalized", toString(t)], a)
4444
4545
4646 func v (w) = {
4747 let x = w
4848 let y = x._1
4949 let z = x._2
5050 makeString(["%s%s%s", "inList", y, z], a)
5151 }
5252
5353
5454 func A (B,t) = makeString(["%s%s%d", "used", toString(B), toString(t)], a)
5555
5656
5757 func C (w,B,t) = {
5858 let D = w
5959 let y = D._1
6060 let z = D._2
6161 makeString(["%s%s%s%s%d", "vote", y, z, toString(B), toString(t)], a)
6262 }
6363
6464
6565 func E (w,t) = {
6666 let F = w
6767 let y = F._1
6868 let z = F._2
6969 makeString(["%s%s%s%d", "votingResult", y, z, toString(t)], a)
7070 }
7171
7272
7373 func G (w,t) = {
7474 let H = w
7575 let y = H._1
7676 let z = H._2
7777 makeString(["%s%s%s%d", "poolShare", y, z, toString(t)], a)
7878 }
7979
8080
8181 func I (t) = makeString(["%s%d", "totalVotes", toString(t)], a)
8282
8383
8484 func J (B,K,L) = {
8585 let M = makeString(["mandatory ", toString(B), ".", K, " is not defined"], "")
8686 valueOrErrorMessage({
8787 let N = L
8888 if ($isInstanceOf(N, "String"))
8989 then {
9090 let O = N
9191 getString(B, K)
9292 }
9393 else if ($isInstanceOf(N, "Int"))
9494 then {
9595 let P = N
9696 getInteger(B, K)
9797 }
9898 else throw("invalid entry type")
9999 }, M)
100100 }
101101
102102
103103 func Q (B,K) = {
104104 let R = J(B, K, "")
105105 if ($isInstanceOf(R, "String"))
106106 then R
107107 else throw(($getType(J(B, K, "")) + " couldn't be cast to String"))
108108 }
109109
110110
111111 func S (B,K) = {
112112 let R = J(B, K, 0)
113113 if ($isInstanceOf(R, "Int"))
114114 then R
115115 else throw(($getType(J(B, K, 0)) + " couldn't be cast to Int"))
116116 }
117117
118118
119119 func T (w) = ((w._1 + a) + w._2)
120120
121121
122122 func U (O) = {
123123 let V = split(O, a)
124124 if ((size(V) == 2))
125125 then $Tuple2(V[0], V[1])
126126 else throw("invalid pool string")
127127 }
128128
129129
130-let W = "pools"
130+func W (y,z) = {
131+ func X (Y) = ("%s%s%s__mappings__baseAsset2internalId__" + Y)
131132
132-func X (w) = {
133- let Y = w
134- let y = Y._1
135- let z = Y._2
133+ func Z (aa,ab) = (((("%d%d%s%s__" + toString(aa)) + "__") + toString(ab)) + "__mappings__poolAssets2PoolContract")
134+
135+ func ac (ad) = (("%s%s%s__" + ad) + "__mappings__poolContract2LpAsset")
136+
137+ let ae = addressFromStringValue(Q(this, j))
138+ let af = S(ae, X(y))
139+ let ag = S(ae, X(z))
140+ let ad = Q(ae, Z(af, ag))
141+ let ah = Q(ae, ac(ad))
142+ ah
143+ }
144+
145+
146+let ai = "pools"
147+
148+func aj (w) = {
149+ let ak = w
150+ let y = ak._1
151+ let z = ak._2
136152 makeString(["votes", y, z], a)
137153 }
138154
139155
140-func Z (aa) = {
141- let ab = if ((aa == W))
156+func al (am) = {
157+ let an = if ((am == ai))
142158 then "%s%s"
143159 else "%s%s%s%s"
144- makeString([ab, aa, "head"], a)
160+ makeString([an, am, "head"], a)
145161 }
146162
147163
148-func ac (aa) = {
149- let ab = if ((aa == W))
164+func ao (am) = {
165+ let an = if ((am == ai))
150166 then "%s%s"
151167 else "%s%s%s%s"
152- makeString([ab, aa, "size"], a)
168+ makeString([an, am, "size"], a)
153169 }
154170
155171
156-func ad (aa,ae) = {
157- let ab = if ((aa == W))
172+func ap (am,aq) = {
173+ let an = if ((am == ai))
158174 then "%s%s%s%s"
159175 else "%s%s%s%s%s"
160- makeString([ab, aa, ae, "prev"], a)
176+ makeString([an, am, aq, "prev"], a)
161177 }
162178
163179
164-func af (aa,ae) = {
165- let ab = if ((aa == W))
180+func ar (am,aq) = {
181+ let an = if ((am == ai))
166182 then "%s%s%s%s"
167183 else "%s%s%s%s%s"
168- makeString([ab, aa, ae, "next"], a)
184+ makeString([an, am, aq, "next"], a)
169185 }
170186
171187
172-func ag (aa,ae) = {
173- let ah = getString(this, Z(aa))
174- let ai = getString(this, ad(aa, ae))
175- let aj = getString(this, af(aa, ae))
176- if (if ((ae == valueOrElse(ah, "")))
188+func as (am,aq) = {
189+ let at = getString(this, al(am))
190+ let au = getString(this, ap(am, aq))
191+ let av = getString(this, ar(am, aq))
192+ if (if ((aq == valueOrElse(at, "")))
177193 then true
178- else (ai != unit))
194+ else (au != unit))
179195 then true
180- else (aj != unit)
196+ else (av != unit)
181197 }
182198
183199
184-func ak (aa,ae) = {
185- let ah = getString(this, Z(aa))
186- let al = valueOrElse(getInteger(this, ac(aa)), 0)
187- let am = if (!(ag(aa, ae)))
200+func aw (am,aq) = {
201+ let at = getString(this, al(am))
202+ let ax = valueOrElse(getInteger(this, ao(am)), 0)
203+ let ay = if (!(as(am, aq)))
188204 then true
189205 else throw("Node exists")
190- if ((am == am))
191- then (([IntegerEntry(ac(aa), (al + 1))] ++ (if ((ah != unit))
192- then [StringEntry(af(aa, ae), value(ah)), StringEntry(ad(aa, value(ah)), ae)]
193- else nil)) ++ [StringEntry(Z(aa), ae)])
206+ if ((ay == ay))
207+ then (([IntegerEntry(ao(am), (ax + 1))] ++ (if ((at != unit))
208+ then [StringEntry(ar(am, aq), value(at)), StringEntry(ap(am, value(at)), aq)]
209+ else nil)) ++ [StringEntry(al(am), aq)])
194210 else throw("Strict value is not equal to itself.")
195211 }
196212
197213
198-func an (aa,ae) = {
199- let ah = getString(this, Z(aa))
200- let al = valueOrElse(getInteger(this, ac(aa)), 0)
201- let ai = getString(this, ad(aa, ae))
202- let aj = getString(this, af(aa, ae))
203- ([IntegerEntry(ac(aa), (al - 1))] ++ (if (if ((ai != unit))
204- then (aj != unit)
214+func az (am,aq) = {
215+ let at = getString(this, al(am))
216+ let ax = valueOrElse(getInteger(this, ao(am)), 0)
217+ let au = getString(this, ap(am, aq))
218+ let av = getString(this, ar(am, aq))
219+ ([IntegerEntry(ao(am), (ax - 1))] ++ (if (if ((au != unit))
220+ then (av != unit)
205221 else false)
206- then [StringEntry(af(aa, value(ai)), value(aj)), StringEntry(ad(aa, value(aj)), value(ai)), DeleteEntry(ad(aa, ae)), DeleteEntry(af(aa, ae))]
207- else if ((aj != unit))
208- then [StringEntry(Z(aa), value(aj)), DeleteEntry(af(aa, ae)), DeleteEntry(ad(aa, value(aj)))]
209- else if ((ai != unit))
210- then [DeleteEntry(ad(aa, ae)), DeleteEntry(af(aa, value(ai)))]
211- else if ((ae == valueOrElse(ah, "")))
212- then [DeleteEntry(Z(aa))]
213- else throw(((("invalid node: " + aa) + ".") + ae))))
222+ then [StringEntry(ar(am, value(au)), value(av)), StringEntry(ap(am, value(av)), value(au)), DeleteEntry(ap(am, aq)), DeleteEntry(ar(am, aq))]
223+ else if ((av != unit))
224+ then [StringEntry(al(am), value(av)), DeleteEntry(ar(am, aq)), DeleteEntry(ap(am, value(av)))]
225+ else if ((au != unit))
226+ then [DeleteEntry(ap(am, aq)), DeleteEntry(ar(am, value(au)))]
227+ else if ((aq == valueOrElse(at, "")))
228+ then [DeleteEntry(al(am))]
229+ else throw(((("invalid node: " + am) + ".") + aq))))
214230 }
215231
216232
217-func ao () = "%s__managerPublicKey"
233+func aA () = "%s__managerPublicKey"
218234
219235
220-func ap () = "%s__pendingManagerPublicKey"
236+func aB () = "%s__pendingManagerPublicKey"
221237
222238
223-func aq () = {
224- let N = getString(ao())
239+func aC () = {
240+ let N = getString(aA())
225241 if ($isInstanceOf(N, "String"))
226242 then {
227- let ar = N
228- fromBase58String(ar)
243+ let aD = N
244+ fromBase58String(aD)
229245 }
230246 else if ($isInstanceOf(N, "Unit"))
231247 then unit
232248 else throw("Match error")
233249 }
234250
235251
236-func as () = {
237- let N = getString(ap())
252+func aE () = {
253+ let N = getString(aB())
238254 if ($isInstanceOf(N, "String"))
239255 then {
240- let ar = N
241- fromBase58String(ar)
256+ let aD = N
257+ fromBase58String(aD)
242258 }
243259 else if ($isInstanceOf(N, "Unit"))
244260 then unit
245261 else throw("Match error")
246262 }
247263
248264
249-let at = throw("Permission denied")
265+let aF = throw("Permission denied")
250266
251-func au (av) = if ((av.caller == this))
267+func aG (aH) = if ((aH.caller == this))
252268 then true
253- else at
269+ else aF
254270
255271
256-func aw (av) = {
257- let N = aq()
272+func aI (aH) = {
273+ let N = aC()
258274 if ($isInstanceOf(N, "ByteVector"))
259275 then {
260- let ax = N
261- if ((av.callerPublicKey == ax))
276+ let aJ = N
277+ if ((aH.callerPublicKey == aJ))
262278 then true
263- else at
279+ else aF
264280 }
265281 else if ($isInstanceOf(N, "Unit"))
266- then au(av)
282+ then aG(aH)
267283 else throw("Match error")
268284 }
269285
270286
271-@Callable(av)
272-func setManager (ay) = {
273- let az = aw(av)
274- if ((az == az))
287+@Callable(aH)
288+func setManager (aK) = {
289+ let aL = aI(aH)
290+ if ((aL == aL))
275291 then {
276- let aA = fromBase58String(ay)
277- if ((aA == aA))
278- then [StringEntry(ap(), ay)]
292+ let aM = fromBase58String(aK)
293+ if ((aM == aM))
294+ then [StringEntry(aB(), aK)]
279295 else throw("Strict value is not equal to itself.")
280296 }
281297 else throw("Strict value is not equal to itself.")
282298 }
283299
284300
285301
286-@Callable(av)
302+@Callable(aH)
287303 func confirmManager () = {
288- let aB = as()
289- let aC = if (isDefined(aB))
304+ let aN = aE()
305+ let aO = if (isDefined(aN))
290306 then true
291307 else throw("No pending manager")
292- if ((aC == aC))
308+ if ((aO == aO))
293309 then {
294- let aD = if ((av.callerPublicKey == value(aB)))
310+ let aP = if ((aH.callerPublicKey == value(aN)))
295311 then true
296312 else throw("You are not pending manager")
297- if ((aD == aD))
298- then [StringEntry(ao(), toBase58String(value(aB))), DeleteEntry(ap())]
313+ if ((aP == aP))
314+ then [StringEntry(aA(), toBase58String(value(aN))), DeleteEntry(aB())]
299315 else throw("Strict value is not equal to itself.")
300316 }
301317 else throw("Strict value is not equal to itself.")
302318 }
303319
304320
305321
306-@Callable(av)
307-func getUserGwxAmountAtHeight (aE,aF) = {
308- let aG = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
322+@Callable(aH)
323+func getUserGwxAmountAtHeight (aQ,aR) = {
324+ let aS = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
309325 $Tuple2(nil, {
310- let R = invoke(aG, "getUserGwxAmountAtHeightREADONLY", [aE, aF], nil)
326+ let R = invoke(aS, "getUserGwxAmountAtHeightREADONLY", [aQ, aR], nil)
311327 if ($isInstanceOf(R, "Int"))
312328 then R
313- else throw(($getType(invoke(aG, "getUserGwxAmountAtHeightREADONLY", [aE, aF], nil)) + " couldn't be cast to Int"))
329+ else throw(($getType(invoke(aS, "getUserGwxAmountAtHeightREADONLY", [aQ, aR], nil)) + " couldn't be cast to Int"))
314330 })
315331 }
316332
317333
318334
319-@Callable(av)
320-func constructor (aH,aI,aJ,aK,aL) = {
321- let aM = [aw(av), if ((addressFromString(aH) != unit))
335+@Callable(aH)
336+func constructor (ae,aT,aU,aV,aW) = {
337+ let aX = [aI(aH), if ((addressFromString(ae) != unit))
322338 then true
323- else "invalid factory contract address", if ((addressFromString(aI) != unit))
339+ else "invalid factory contract address", if ((addressFromString(aT) != unit))
324340 then true
325- else "invalid voting emission candidate contract address", if ((addressFromString(aJ) != unit))
341+ else "invalid voting emission candidate contract address", if ((addressFromString(aU) != unit))
326342 then true
327- else "invalid boosting contract address", if ((addressFromString(aK) != unit))
343+ else "invalid boosting contract address", if ((addressFromString(aV) != unit))
328344 then true
329- else "invalid staking contract address", if ((aL > 0))
345+ else "invalid staking contract address", if ((aW > 0))
330346 then true
331347 else throw("invalid epoch length")]
332- if ((aM == aM))
333- then $Tuple2([StringEntry(j, aH), StringEntry(i, aI), StringEntry(k, aJ), StringEntry(l, aK), IntegerEntry(f, aL)], unit)
348+ if ((aX == aX))
349+ then $Tuple2([StringEntry(j, ae), StringEntry(i, aT), StringEntry(k, aU), StringEntry(l, aV), IntegerEntry(f, aW)], unit)
334350 else throw("Strict value is not equal to itself.")
335351 }
336352
337353
338354
339-@Callable(av)
355+@Callable(aH)
340356 func create (y,z) = {
341- let aN = [if ((toBase58String(av.caller.bytes) == valueOrElse(getString(this, i), "")))
357+ let aY = [if ((toBase58String(aH.caller.bytes) == valueOrElse(getString(this, i), "")))
342358 then true
343- else aw(av)]
344- if ((aN == aN))
359+ else aI(aH)]
360+ if ((aY == aY))
345361 then {
346362 let w = $Tuple2(y, z)
347- let aO = ([BooleanEntry(v(w), true)] ++ ak(W, T(w)))
348- let aP = (getInteger(this, g) == unit)
349- let aQ = if (aP)
363+ let aZ = ([BooleanEntry(v(w), true)] ++ aw(ai, T(w)))
364+ let ba = (getInteger(this, g) == unit)
365+ let bb = if (ba)
350366 then {
351367 let t = 0
352368 [IntegerEntry(g, t), IntegerEntry(s(t), height), IntegerEntry(p, height), IntegerEntry(q, t), IntegerEntry(r, height)]
353369 }
354370 else nil
355- $Tuple2((aO ++ aQ), unit)
371+ $Tuple2((aZ ++ bb), unit)
356372 }
357373 else throw("Strict value is not equal to itself.")
358374 }
359375
360376
361377
362-@Callable(av)
363-func vote (y,z,aR) = {
378+@Callable(aH)
379+func vote (y,z,bc) = {
364380 let w = $Tuple2(y, z)
365381 let t = valueOrElse(getInteger(this, g), 0)
366- let aS = S(this, s(t))
367- let aL = S(this, f)
368- let aT = (aS + aL)
369- let aU = getInteger(this, m)
370- let aV = valueOrElse(getInteger(this, A(av.caller, t)), 0)
371- let aW = valueOrElse(getInteger(this, C(w, av.caller, t)), 0)
372- let aX = valueOrElse(getInteger(this, E(w, t)), 0)
373- let aY = valueOrElse(getInteger(this, I(t)), 0)
374- let aZ = {
375- let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(av.caller.bytes), aT], nil)
382+ let bd = S(this, s(t))
383+ let aW = S(this, f)
384+ let be = (bd + aW)
385+ let bf = getInteger(this, m)
386+ let bg = valueOrElse(getInteger(this, A(aH.caller, t)), 0)
387+ let bh = valueOrElse(getInteger(this, C(w, aH.caller, t)), 0)
388+ let bi = valueOrElse(getInteger(this, E(w, t)), 0)
389+ let bj = valueOrElse(getInteger(this, I(t)), 0)
390+ let bk = {
391+ let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aH.caller.bytes), be], nil)
376392 if ($isInstanceOf(R, "Int"))
377393 then R
378- else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [toBase58String(av.caller.bytes), aT], nil)) + " couldn't be cast to Int"))
394+ else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aH.caller.bytes), be], nil)) + " couldn't be cast to Int"))
379395 }
380- let ba = (aZ - aV)
381- let bb = (aW + aR)
382- let aN = [if ((getBoolean(v(w)) != unit))
396+ let bl = (bk - bg)
397+ let bm = (bh + bc)
398+ let aY = [if ((getBoolean(v(w)) != unit))
383399 then true
384- else throw("invalid assets"), if ((aT > height))
400+ else throw("invalid assets"), if ((be > height))
385401 then true
386- else throw("invalid height"), if ((aU == unit))
402+ else throw("invalid height"), if ((bf == unit))
387403 then true
388- else throw("finalization in progress"), if ((aZ > 0))
404+ else throw("finalization in progress"), if ((bk > 0))
389405 then true
390- else throw("you do not have gWX"), if (if ((aR > 0))
391- then (ba >= aR)
406+ else throw("you do not have gWX"), if (if ((bc > 0))
407+ then (bl >= bc)
392408 else false)
393409 then true
394410 else throw("invalid amount")]
395- if ((aN == aN))
411+ if ((aY == aY))
396412 then {
397- let bc = X(w)
398- let bd = toString(av.caller)
399- let be = if (ag(bc, bd))
413+ let bn = aj(w)
414+ let bo = toString(aH.caller)
415+ let bp = if (as(bn, bo))
400416 then nil
401- else ak(bc, bd)
402- $Tuple2(([IntegerEntry(A(av.caller, t), (aV + aR)), IntegerEntry(C(w, av.caller, t), bb), IntegerEntry(E(w, t), (aX + aR)), IntegerEntry(I(t), (aY + aR))] ++ be), unit)
417+ else aw(bn, bo)
418+ $Tuple2(([IntegerEntry(A(aH.caller, t), (bg + bc)), IntegerEntry(C(w, aH.caller, t), bm), IntegerEntry(E(w, t), (bi + bc)), IntegerEntry(I(t), (bj + bc))] ++ bp), unit)
403419 }
404420 else throw("Strict value is not equal to itself.")
405421 }
406422
407423
408424
409-@Callable(av)
425+@Callable(aH)
410426 func cancelVote (y,z) = {
411427 let w = $Tuple2(y, z)
412428 let t = valueOrElse(getInteger(this, g), 0)
413- let aS = S(this, s(t))
414- let aL = S(this, f)
415- let aT = (aS + aL)
416- let aU = getInteger(this, m)
417- let aV = valueOrElse(getInteger(this, A(av.caller, t)), 0)
418- let aW = valueOrElse(getInteger(this, C(w, av.caller, t)), 0)
419- let aX = valueOrElse(getInteger(this, E(w, t)), 0)
420- let aY = valueOrElse(getInteger(this, I(t)), 0)
421- let aN = [if ((getBoolean(v(w)) != unit))
429+ let bd = S(this, s(t))
430+ let aW = S(this, f)
431+ let be = (bd + aW)
432+ let bf = getInteger(this, m)
433+ let bg = valueOrElse(getInteger(this, A(aH.caller, t)), 0)
434+ let bh = valueOrElse(getInteger(this, C(w, aH.caller, t)), 0)
435+ let bi = valueOrElse(getInteger(this, E(w, t)), 0)
436+ let bj = valueOrElse(getInteger(this, I(t)), 0)
437+ let aY = [if ((getBoolean(v(w)) != unit))
422438 then true
423- else throw("invalid assets"), if ((aT > height))
439+ else throw("invalid assets"), if ((be > height))
424440 then true
425- else throw("invalid height"), if ((aU == unit))
441+ else throw("invalid height"), if ((bf == unit))
426442 then true
427- else throw("finalization in progress"), if ((aW > 0))
443+ else throw("finalization in progress"), if ((bh > 0))
428444 then true
429445 else throw("no vote")]
430- if ((aN == aN))
446+ if ((aY == aY))
431447 then {
432- let bc = X(w)
433- let bd = toString(av.caller)
434- $Tuple2(([IntegerEntry(A(av.caller, t), max([(aV - aW), 0])), DeleteEntry(C(w, av.caller, t)), IntegerEntry(E(w, t), (aX - aW)), IntegerEntry(I(t), (aY - aW))] ++ an(bc, bd)), unit)
448+ let bn = aj(w)
449+ let bo = toString(aH.caller)
450+ $Tuple2(([IntegerEntry(A(aH.caller, t), max([(bg - bh), 0])), DeleteEntry(C(w, aH.caller, t)), IntegerEntry(E(w, t), (bi - bh)), IntegerEntry(I(t), (bj - bh))] ++ az(bn, bo)), unit)
435451 }
436452 else throw("Strict value is not equal to itself.")
437453 }
438454
439455
440456
441-@Callable(av)
442-func setEpochLength (bf) = {
443- let aM = [aw(av), if ((bf > 0))
457+@Callable(aH)
458+func setEpochLength (bq) = {
459+ let aX = [aI(aH), if ((bq > 0))
444460 then true
445461 else throw("invalid epoch length")]
446- if ((aM == aM))
447- then $Tuple2([IntegerEntry(f, bf)], unit)
462+ if ((aX == aX))
463+ then $Tuple2([IntegerEntry(f, bq)], unit)
448464 else throw("Strict value is not equal to itself.")
449465 }
450466
451467
452468
453-@Callable(av)
454-func setMaxDepth (bg) = {
455- let aM = [aw(av), if ((bg > 0))
469+@Callable(aH)
470+func setMaxDepth (br) = {
471+ let aX = [aI(aH), if ((br > 0))
456472 then true
457473 else throw("invalid max depth")]
458- if ((aM == aM))
459- then $Tuple2([IntegerEntry(h, bg)], unit)
474+ if ((aX == aX))
475+ then $Tuple2([IntegerEntry(h, br)], unit)
460476 else throw("Strict value is not equal to itself.")
461477 }
462478
463479
464480
465-@Callable(av)
466-func processVoteINTERNAL (bh,bd) = {
467- let az = au(av)
468- if ((az == az))
481+@Callable(aH)
482+func processVoteINTERNAL (bs,bo) = {
483+ let aL = aG(aH)
484+ if ((aL == aL))
469485 then {
470- let aE = valueOrErrorMessage(addressFromString(bd), ("processVoteINTERNAL: invalid user address " + bd))
486+ let aQ = valueOrErrorMessage(addressFromString(bo), ("processVoteINTERNAL: invalid user address " + bo))
471487 let t = S(this, g)
472- let bi = (t - 1)
473- let aL = S(this, f)
474- let aS = S(this, s(t))
475- let aT = (aS + aL)
476- let bj = S(this, s(bi))
477- let bk = (bj + aL)
478- let bl = if ((bi >= 0))
488+ let bt = (t - 1)
489+ let aW = S(this, f)
490+ let bd = S(this, s(t))
491+ let be = (bd + aW)
492+ let bu = S(this, s(bt))
493+ let bv = (bu + aW)
494+ let bw = if ((bt >= 0))
479495 then true
480496 else throw("processVoteINTERNAL: invalid previous epoch")
481- if ((bl == bl))
497+ if ((bw == bw))
482498 then {
483- let w = U(bh)
484- let aZ = {
485- let R = invoke(this, "getUserGwxAmountAtHeight", [bd, aT], nil)
499+ let w = U(bs)
500+ let bk = {
501+ let R = invoke(this, "getUserGwxAmountAtHeight", [bo, be], nil)
486502 if ($isInstanceOf(R, "Int"))
487503 then R
488- else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bd, aT], nil)) + " couldn't be cast to Int"))
504+ else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bo, be], nil)) + " couldn't be cast to Int"))
489505 }
490- let bm = {
491- let R = invoke(this, "getUserGwxAmountAtHeight", [bd, bk], nil)
506+ let bx = {
507+ let R = invoke(this, "getUserGwxAmountAtHeight", [bo, bv], nil)
492508 if ($isInstanceOf(R, "Int"))
493509 then R
494- else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bd, bk], nil)) + " couldn't be cast to Int"))
510+ else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bo, bv], nil)) + " couldn't be cast to Int"))
495511 }
496- let aY = valueOrElse(getInteger(I(t)), 0)
497- let bn = valueOrElse(getInteger(E(w, t)), 0)
498- let bo = valueOrErrorMessage(getInteger(C(w, aE, bi)), (((("processVoteINTERNAL " + bh) + " ") + bd) + ": no previous vote"))
499- let aV = valueOrElse(getInteger(this, A(aE, t)), 0)
500- let bb = fraction(bo, aZ, bm)
501- let bp = if ((bb > 0))
502- then [IntegerEntry(C(w, aE, t), bb), IntegerEntry(I(t), (aY + bb)), IntegerEntry(E(w, t), (bn + bb)), IntegerEntry(A(aE, t), (aV + bb))]
503- else an(X(w), bd)
504- $Tuple2(bp, unit)
512+ let bj = valueOrElse(getInteger(I(t)), 0)
513+ let by = valueOrElse(getInteger(E(w, t)), 0)
514+ let bz = valueOrErrorMessage(getInteger(C(w, aQ, bt)), (((("processVoteINTERNAL " + bs) + " ") + bo) + ": no previous vote"))
515+ let bg = valueOrElse(getInteger(this, A(aQ, t)), 0)
516+ let bm = fraction(bz, bk, bx)
517+ let bA = if ((bm > 0))
518+ then [IntegerEntry(C(w, aQ, t), bm), IntegerEntry(I(t), (bj + bm)), IntegerEntry(E(w, t), (by + bm)), IntegerEntry(A(aQ, t), (bg + bm))]
519+ else az(aj(w), bo)
520+ $Tuple2(bA, unit)
505521 }
506522 else throw("Strict value is not equal to itself.")
507523 }
508524 else throw("Strict value is not equal to itself.")
509525 }
510526
511527
512528
513-@Callable(av)
514-func processPoolINTERNAL (bh) = {
515- let az = au(av)
516- if ((az == az))
529+@Callable(aH)
530+func processPoolINTERNAL (bs) = {
531+ let aL = aG(aH)
532+ if ((aL == aL))
517533 then {
518- let bq = (S(this, g) - 1)
519- let bl = if ((bq >= 0))
534+ let bB = (S(this, g) - 1)
535+ let bw = if ((bB >= 0))
520536 then true
521537 else throw("processPoolINTERNAL: invalid target epoch")
522- if ((bl == bl))
538+ if ((bw == bw))
523539 then {
524- let w = U(bh)
525- let br = w
526- let y = br._1
527- let z = br._2
528- let aK = addressFromStringValue(Q(this, l))
529- let aH = addressFromStringValue(Q(this, j))
530- let bs = {
531- let R = invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)
532- if ($isInstanceOf(R, "(String, String)"))
533- then R
534- else throw(($getType(invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)) + " couldn't be cast to (String, String)"))
535- }
536- let bt = bs._1
537- let bu = bs._2
538- let bv = {
539- let R = invoke(aK, "usersListTraversal", [bu], nil)
540+ let w = U(bs)
541+ let bC = w
542+ let y = bC._1
543+ let z = bC._2
544+ let aV = addressFromStringValue(Q(this, l))
545+ let ae = addressFromStringValue(Q(this, j))
546+ let ah = W(y, z)
547+ let bD = {
548+ let R = invoke(aV, "usersListTraversal", [ah], nil)
540549 if ($isInstanceOf(R, "Boolean"))
541550 then R
542- else throw(($getType(invoke(aK, "usersListTraversal", [bu], nil)) + " couldn't be cast to Boolean"))
551+ else throw(($getType(invoke(aV, "usersListTraversal", [ah], nil)) + " couldn't be cast to Boolean"))
543552 }
544- if ((bv == bv))
545- then if (bv)
553+ if ((bD == bD))
554+ then if (bD)
546555 then $Tuple2(nil, true)
547556 else {
548- let aY = valueOrElse(getInteger(this, I(bq)), 0)
549- let bn = valueOrElse(getInteger(this, E(w, bq)), 0)
550- let bw = if ((aY == 0))
557+ let bj = valueOrElse(getInteger(this, I(bB)), 0)
558+ let by = valueOrElse(getInteger(this, E(w, bB)), 0)
559+ let bE = if ((bj == 0))
551560 then 0
552- else fraction(bn, b, aY)
553- let bx = invoke(aH, "modifyWeight", [bu, bw], nil)
554- if ((bx == bx))
555- then $Tuple2([IntegerEntry(G(w, bq), bw)], false)
561+ else fraction(by, b, bj)
562+ let bF = invoke(ae, "modifyWeight", [ah, bE], nil)
563+ if ((bF == bF))
564+ then $Tuple2([IntegerEntry(G(w, bB), bE)], false)
556565 else throw("Strict value is not equal to itself.")
557566 }
558567 else throw("Strict value is not equal to itself.")
559568 }
560569 else throw("Strict value is not equal to itself.")
561570 }
562571 else throw("Strict value is not equal to itself.")
563572 }
564573
565574
566575
567-@Callable(av)
576+@Callable(aH)
568577 func finalizeHelper () = {
569578 let t = valueOrElse(getInteger(this, g), 0)
570- let by = (t - 1)
571- let aS = S(this, s(t))
572- let aL = S(this, f)
573- let aT = (aS + aL)
574- let aU = getInteger(this, m)
575- if ((height >= aT))
579+ let bG = (t - 1)
580+ let bd = S(this, s(t))
581+ let aW = S(this, f)
582+ let be = (bd + aW)
583+ let bf = getInteger(this, m)
584+ if ((height >= be))
576585 then {
577- let bz = (t + 1)
578- $Tuple2([IntegerEntry(s(bz), height), IntegerEntry(p, height), IntegerEntry(g, bz), IntegerEntry(m, d)], true)
586+ let bH = (t + 1)
587+ $Tuple2([IntegerEntry(s(bH), height), IntegerEntry(p, height), IntegerEntry(g, bH), IntegerEntry(m, d)], true)
579588 }
580- else if ((aU == unit))
589+ else if ((bf == unit))
581590 then $Tuple2(nil, false)
582- else if ((aU == d))
591+ else if ((bf == d))
583592 then {
584- let bA = getString(n)
585- let bB = getString(o)
586- let N = bA
593+ let bI = getString(n)
594+ let bJ = getString(o)
595+ let N = bI
587596 if ($isInstanceOf(N, "Unit"))
588597 then {
589- let bC = getString(Z(W))
590- if ($isInstanceOf(bC, "Unit"))
598+ let bK = getString(al(ai))
599+ if ($isInstanceOf(bK, "Unit"))
591600 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
592- else if ($isInstanceOf(bC, "String"))
601+ else if ($isInstanceOf(bK, "String"))
593602 then {
594- let bD = bC
595- $Tuple2([StringEntry(n, bD)], true)
603+ let bL = bK
604+ $Tuple2([StringEntry(n, bL)], true)
596605 }
597606 else throw("Match error")
598607 }
599608 else if ($isInstanceOf(N, "String"))
600609 then {
601- let bh = N
602- let w = U(bh)
603- let bE = {
604- let bC = bB
605- if ($isInstanceOf(bC, "Unit"))
606- then getString(Z(X(w)))
607- else if ($isInstanceOf(bC, "String"))
610+ let bs = N
611+ let w = U(bs)
612+ let bM = {
613+ let bK = bJ
614+ if ($isInstanceOf(bK, "Unit"))
615+ then getString(al(aj(w)))
616+ else if ($isInstanceOf(bK, "String"))
608617 then {
609- let bF = bC
610- let bG = invoke(this, "processVoteINTERNAL", [bh, bF], nil)
611- if ((bG == bG))
612- then getString(af(X(w), bF))
618+ let bN = bK
619+ let bO = invoke(this, "processVoteINTERNAL", [bs, bN], nil)
620+ if ((bO == bO))
621+ then getString(ar(aj(w), bN))
613622 else throw("Strict value is not equal to itself.")
614623 }
615624 else throw("Match error")
616625 }
617- let bC = bE
618- if ($isInstanceOf(bC, "Unit"))
626+ let bK = bM
627+ if ($isInstanceOf(bK, "Unit"))
619628 then {
620- let bH = getString(af(W, bh))
621- let bI = bH
622- if ($isInstanceOf(bI, "Unit"))
629+ let bP = getString(ar(ai, bs))
630+ let bQ = bP
631+ if ($isInstanceOf(bQ, "Unit"))
623632 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
624- else if ($isInstanceOf(bI, "String"))
633+ else if ($isInstanceOf(bQ, "String"))
625634 then {
626- let ar = bI
627- $Tuple2([StringEntry(n, ar), DeleteEntry(o)], true)
635+ let aD = bQ
636+ $Tuple2([StringEntry(n, aD), DeleteEntry(o)], true)
628637 }
629638 else throw("Match error")
630639 }
631- else if ($isInstanceOf(bC, "String"))
640+ else if ($isInstanceOf(bK, "String"))
632641 then {
633- let bJ = bC
634- $Tuple2([StringEntry(o, bJ)], true)
642+ let bR = bK
643+ $Tuple2([StringEntry(o, bR)], true)
635644 }
636645 else throw("Match error")
637646 }
638647 else throw("Match error")
639648 }
640- else if ((aU == e))
649+ else if ((bf == e))
641650 then {
642- let bA = getString(n)
643- let N = bA
651+ let bI = getString(n)
652+ let N = bI
644653 if ($isInstanceOf(N, "Unit"))
645654 then {
646- let bC = getString(Z(W))
647- if ($isInstanceOf(bC, "Unit"))
648- then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS)], true)
649- else if ($isInstanceOf(bC, "String"))
655+ let bK = getString(al(ai))
656+ if ($isInstanceOf(bK, "Unit"))
657+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(bG), true), IntegerEntry(q, t), IntegerEntry(r, bd)], true)
658+ else if ($isInstanceOf(bK, "String"))
650659 then {
651- let bK = bC
652- $Tuple2([StringEntry(n, bK)], true)
660+ let bS = bK
661+ $Tuple2([StringEntry(n, bS)], true)
653662 }
654663 else throw("Match error")
655664 }
656665 else if ($isInstanceOf(N, "String"))
657666 then {
658- let bh = N
659- let bv = {
660- let R = invoke(this, "processPoolINTERNAL", [bh], nil)
667+ let bs = N
668+ let bD = {
669+ let R = invoke(this, "processPoolINTERNAL", [bs], nil)
661670 if ($isInstanceOf(R, "Boolean"))
662671 then R
663- else throw(($getType(invoke(this, "processPoolINTERNAL", [bh], nil)) + " couldn't be cast to Boolean"))
672+ else throw(($getType(invoke(this, "processPoolINTERNAL", [bs], nil)) + " couldn't be cast to Boolean"))
664673 }
665- if ((bv == bv))
666- then if (bv)
674+ if ((bD == bD))
675+ then if (bD)
667676 then $Tuple2(nil, true)
668677 else {
669- let bH = getString(af(W, bh))
670- let bC = bH
671- if ($isInstanceOf(bC, "Unit"))
672- then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS), DeleteEntry(n)], true)
673- else if ($isInstanceOf(bC, "String"))
678+ let bP = getString(ar(ai, bs))
679+ let bK = bP
680+ if ($isInstanceOf(bK, "Unit"))
681+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(bG), true), IntegerEntry(q, t), IntegerEntry(r, bd), DeleteEntry(n)], true)
682+ else if ($isInstanceOf(bK, "String"))
674683 then {
675- let bK = bC
676- $Tuple2([StringEntry(n, bK)], true)
684+ let bS = bK
685+ $Tuple2([StringEntry(n, bS)], true)
677686 }
678687 else throw("Match error")
679688 }
680689 else throw("Strict value is not equal to itself.")
681690 }
682691 else throw("Match error")
683692 }
684693 else throw("finalization is broken")
685694 }
686695
687696
688697
689-@Callable(av)
690-func finalizeWrapper (bL) = {
691- let bM = {
698+@Callable(aH)
699+func finalizeWrapper (bT) = {
700+ let bU = {
692701 let R = invoke(this, "finalizeHelper", nil, nil)
693702 if ($isInstanceOf(R, "Boolean"))
694703 then R
695704 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
696705 }
697- if ((bM == bM))
698- then if (!(bM))
699- then if ((bL == 0))
706+ if ((bU == bU))
707+ then if (!(bU))
708+ then if ((bT == 0))
700709 then throw("Current voting is not over yet")
701710 else $Tuple2(nil, unit)
702711 else {
703- let bN = valueOrElse(getInteger(this, h), c)
704- if ((bN > bL))
712+ let bV = valueOrElse(getInteger(this, h), c)
713+ if ((bV > bT))
705714 then {
706- let bO = invoke(this, "finalizeWrapper", [(bL + 1)], nil)
707- if ((bO == bO))
715+ let bW = invoke(this, "finalizeWrapper", [(bT + 1)], nil)
716+ if ((bW == bW))
708717 then $Tuple2(nil, unit)
709718 else throw("Strict value is not equal to itself.")
710719 }
711720 else $Tuple2(nil, unit)
712721 }
713722 else throw("Strict value is not equal to itself.")
714723 }
715724
716725
717726
718-@Callable(av)
727+@Callable(aH)
719728 func finalize () = {
720- let bO = invoke(this, "finalizeWrapper", [0], nil)
721- if ((bO == bO))
729+ let bW = invoke(this, "finalizeWrapper", [0], nil)
730+ if ((bW == bW))
722731 then $Tuple2(nil, unit)
723732 else throw("Strict value is not equal to itself.")
724733 }
725734
726735
727736
728-@Callable(av)
729-func onVerificationLoss (bP) = $Tuple2(nil, unit)
737+@Callable(aH)
738+func onVerificationLoss (bX) = $Tuple2(nil, unit)
730739
731740
732741
733-@Callable(av)
734-func containsNodeREADONLY (aa,ae) = $Tuple2(nil, ag(aa, ae))
742+@Callable(aH)
743+func containsNodeREADONLY (am,aq) = $Tuple2(nil, as(am, aq))
735744
736745
737746
738-@Callable(av)
739-func insertNode (aa,ae) = {
740- let az = aw(av)
741- if ((az == az))
742- then $Tuple2(ak(aa, ae), unit)
747+@Callable(aH)
748+func insertNode (am,aq) = {
749+ let aL = aI(aH)
750+ if ((aL == aL))
751+ then $Tuple2(aw(am, aq), unit)
743752 else throw("Strict value is not equal to itself.")
744753 }
745754
746755
747756
748-@Callable(av)
749-func deleteNode (aa,ae) = {
750- let az = aw(av)
751- if ((az == az))
752- then $Tuple2(an(aa, ae), unit)
757+@Callable(aH)
758+func deleteNode (am,aq) = {
759+ let aL = aI(aH)
760+ if ((aL == aL))
761+ then $Tuple2(az(am, aq), unit)
753762 else throw("Strict value is not equal to itself.")
754763 }
755764
756765
757-@Verifier(bQ)
758-func bR () = {
759- let bS = {
760- let N = aq()
766+@Verifier(bY)
767+func bZ () = {
768+ let ca = {
769+ let N = aC()
761770 if ($isInstanceOf(N, "ByteVector"))
762771 then {
763- let ax = N
764- ax
772+ let aJ = N
773+ aJ
765774 }
766775 else if ($isInstanceOf(N, "Unit"))
767- then bQ.senderPublicKey
776+ then bY.senderPublicKey
768777 else throw("Match error")
769778 }
770- sigVerify(bQ.bodyBytes, bQ.proofs[0], bS)
779+ sigVerify(bY.bodyBytes, bY.proofs[0], ca)
771780 }
772781

github/deemru/w8io/169f3d6 
246.67 ms