tx · CTRfpKuBhPrSohAaLoopKiyvAn2htBoPoc2NepCTSjXs

3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA:  -0.02400000 Waves

2022.12.09 11:38 [2352549] smart account 3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA > SELF 0.00000000 Waves

{ "type": 13, "id": "CTRfpKuBhPrSohAaLoopKiyvAn2htBoPoc2NepCTSjXs", "fee": 2400000, "feeAssetId": null, "timestamp": 1670575073088, "version": 2, "chainId": 84, "sender": "3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA", "senderPublicKey": "D46gQxzmdzdCTYRg6dMcwFoUrc6ZmxF6GKd5ZoTkvzp1", "proofs": [ "2DNTj9ocPvM7TSErQy1qK3PWA5uYVSCPeHnk9CV9vHHw1toscFid1ZsLkzMEEJeR3XzAyvZmqqUezVck1LGN3gkC" ], "script": "base64:BgJcCAISAwoBCBIAEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSBAoCCAQSABIDCgEBEgASBAoCCAgSBAoCCAgSBAoCCAgyAAlzZXBhcmF0b3ICAl9fAA5wb29sV2VpZ2h0TXVsdACAwtcvAA9tYXhEZXB0aERlZmF1bHQACgAWZmluYWxpemF0aW9uU3RhZ2VUb3RhbAAAABdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwABAA5rZXlFcG9jaExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFCXNlcGFyYXRvcgAPa2V5Q3VycmVudEVwb2NoCQC5CQIJAMwIAgICJXMJAMwIAgIMY3VycmVudEVwb2NoBQNuaWwFCXNlcGFyYXRvcgALa2V5TWF4RGVwdGgJALkJAgkAzAgCAgIlcwkAzAgCAghtYXhEZXB0aAUDbmlsBQlzZXBhcmF0b3IAImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAh92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgASa2V5RmFjdG9yeUNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgATa2V5Qm9vc3RpbmdDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yABJrZXlTdGFraW5nQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAg9zdGFraW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yABRrZXlGaW5hbGl6YXRpb25TdGFnZQkAuQkCCQDMCAICAiVzCQDMCAICEWZpbmFsaXphdGlvblN0YWdlBQNuaWwFCXNlcGFyYXRvcgALa2V5TmV4dFBvb2wJALkJAgkAzAgCAgIlcwkAzAgCAghuZXh0UG9vbAUDbmlsBQlzZXBhcmF0b3IAC2tleU5leHRVc2VyCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFVzZXIFA25pbAUJc2VwYXJhdG9yAA5rZXlTdGFydEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICC3N0YXJ0SGVpZ2h0BQNuaWwFCXNlcGFyYXRvcgARa2V5Q3VycmVudEVwb2NoVWkJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQlzZXBhcmF0b3IAEGtleVN0YXJ0SGVpZ2h0VWkJALkJAgkAzAgCAgIlcwkAzAgCAg1zdGFydEhlaWdodFVpBQNuaWwFCXNlcGFyYXRvcgAda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQJALkJAgkAzAgCAgIlcwkAzAgCAgVmb3JjZQUDbmlsBQlzZXBhcmF0b3IBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFZXBvY2gJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQxrZXlGaW5hbGl6ZWQBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAglmaW5hbGl6ZWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBCWtleUluTGlzdAEEcG9vbAQLJHQwMTUxMTE1NTEFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAxNTExMTU1MQJfMQQMcHJpY2VBc3NldElkCAULJHQwMTUxMTE1NTECXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFCXNlcGFyYXRvcgEHa2V5VXNlZAIHYWRkcmVzcwVlcG9jaAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR1c2VkCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCCQCkAwEFBWVwb2NoBQNuaWwFCXNlcGFyYXRvcgEHa2V5Vm90ZQMEcG9vbAdhZGRyZXNzBWVwb2NoBAskdDAxODI1MTg2NQUEcG9vbAQNYW1vdW50QXNzZXRJZAgFCyR0MDE4MjUxODY1Al8xBAxwcmljZUFzc2V0SWQIBQskdDAxODI1MTg2NQJfMgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQ1hbW91bnRBc3NldElkCQDMCAIFDHByaWNlQXNzZXRJZAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBD2tleVZvdGluZ1Jlc3VsdAIEcG9vbAVlcG9jaAQLJHQwMjA0NzIwODcFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAyMDQ3MjA4NwJfMQQMcHJpY2VBc3NldElkCAULJHQwMjA0NzIwODcCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDGtleVBvb2xTaGFyZQIEcG9vbAVlcG9jaAQLJHQwMjI1MjIyOTIFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAyMjUyMjI5MgJfMQQMcHJpY2VBc3NldElkCAULJHQwMjI1MjIyOTICXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAglwb29sU2hhcmUJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDWtleVRvdGFsVm90ZXMBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgp0b3RhbFZvdGVzCQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQ5nZXRWYWx1ZU9yRmFpbAMHYWRkcmVzcwNrZXkEdHlwZQQFZXJyb3IJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIACQETdmFsdWVPckVycm9yTWVzc2FnZQIEByRtYXRjaDAFBHR5cGUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQkAAgECEmludmFsaWQgZW50cnkgdHlwZQUFZXJyb3IBDGdldFN0ck9yRmFpbAIHYWRkcmVzcwNrZXkKAAFACQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkCAAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBBQFAAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcBDGdldEludE9yRmFpbAIHYWRkcmVzcwNrZXkKAAFACQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkAAAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBDHBvb2xUb1N0cmluZwEEcG9vbAkArAICCQCsAgIIBQRwb29sAl8xBQlzZXBhcmF0b3IIBQRwb29sAl8yAQxzdHJpbmdUb1Bvb2wBA3N0cgQFcGFydHMJALUJAgUDc3RyBQlzZXBhcmF0b3IDCQAAAgkAkAMBBQVwYXJ0cwACCQCUCgIJAJEDAgUFcGFydHMAAAkAkQMCBQVwYXJ0cwABCQACAQITaW52YWxpZCBwb29sIHN0cmluZwEWZ2V0THBBc3NldEJ5UG9vbEFzc2V0cwINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQKAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQxiYXNlQXNzZXRTdHIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUMYmFzZUFzc2V0U3RyCgEpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MCGGludGVybmFsQW1vdW50QXNzZXRJZFN0chdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgICX18JAKQDAQUXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHICI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0CgEfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldAETcG9vbENvbnRyYWN0QWRkcmVzcwkArAICCQCsAgICCCVzJXMlc19fBRNwb29sQ29udHJhY3RBZGRyZXNzAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAQPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwUSa2V5RmFjdG9yeUNvbnRyYWN0BBVhbW91bnRBc3NldEludGVybmFsSWQJAQxnZXRJbnRPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQUNYW1vdW50QXNzZXRJZAQUcHJpY2VBc3NldEludGVybmFsSWQJAQxnZXRJbnRPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQUMcHJpY2VBc3NldElkBBNwb29sQ29udHJhY3RBZGRyZXNzCQEMZ2V0U3RyT3JGYWlsAgUPZmFjdG9yeUNvbnRyYWN0CQEpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MCBRVhbW91bnRBc3NldEludGVybmFsSWQFFHByaWNlQXNzZXRJbnRlcm5hbElkBAlscEFzc2V0SWQJAQxnZXRTdHJPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJAR9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0AQUTcG9vbENvbnRyYWN0QWRkcmVzcwUJbHBBc3NldElkARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwBBHBvb2wECyR0MDQ1MzQ0NTc0BQRwb29sBA1hbW91bnRBc3NldElkCAULJHQwNDUzNDQ1NzQCXzEEDHByaWNlQXNzZXRJZAgFCyR0MDQ1MzQ0NTc0Al8yBA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRJrZXlGYWN0b3J5Q29udHJhY3QKAAFACQD8BwQFD2ZhY3RvcnlDb250cmFjdAIYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQUBQAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgANcG9vbHNMaXN0TmFtZQIFcG9vbHMBEGdldFZvdGVzTGlzdE5hbWUBBHBvb2wECyR0MDQ4NzU0OTE1BQRwb29sBA1hbW91bnRBc3NldElkCAULJHQwNDg3NTQ5MTUCXzEEDHByaWNlQXNzZXRJZAgFCyR0MDQ4NzU0OTE1Al8yCQC5CQIJAMwIAgIFdm90ZXMJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUJc2VwYXJhdG9yAQtrZXlMaXN0SGVhZAEIbGlzdE5hbWUEBG1ldGEDCQAAAgUIbGlzdE5hbWUFDXBvb2xzTGlzdE5hbWUCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUEbWV0YQkAzAgCBQhsaXN0TmFtZQkAzAgCAgRoZWFkBQNuaWwFCXNlcGFyYXRvcgELa2V5TGlzdFNpemUBCGxpc3ROYW1lBARtZXRhAwkAAAIFCGxpc3ROYW1lBQ1wb29sc0xpc3ROYW1lAgQlcyVzAgglcyVzJXMlcwkAuQkCCQDMCAIFBG1ldGEJAMwIAgUIbGlzdE5hbWUJAMwIAgIEc2l6ZQUDbmlsBQlzZXBhcmF0b3IBC2tleUxpc3RQcmV2AghsaXN0TmFtZQJpZAQEbWV0YQMJAAACBQhsaXN0TmFtZQUNcG9vbHNMaXN0TmFtZQIIJXMlcyVzJXMCCiVzJXMlcyVzJXMJALkJAgkAzAgCBQRtZXRhCQDMCAIFCGxpc3ROYW1lCQDMCAIFAmlkCQDMCAICBHByZXYFA25pbAUJc2VwYXJhdG9yAQtrZXlMaXN0TmV4dAIIbGlzdE5hbWUCaWQEBG1ldGEDCQAAAgUIbGlzdE5hbWUFDXBvb2xzTGlzdE5hbWUCCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUEbWV0YQkAzAgCBQhsaXN0TmFtZQkAzAgCBQJpZAkAzAgCAgRuZXh0BQNuaWwFCXNlcGFyYXRvcgEMY29udGFpbnNOb2RlAghsaXN0TmFtZQJpZAQKaGVhZE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQQKcHJldk9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQECm5leHRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkAwMJAAACBQJpZAkBC3ZhbHVlT3JFbHNlAgUKaGVhZE9yVW5pdAIABgkBAiE9AgUKcHJldk9yVW5pdAUEdW5pdAYJAQIhPQIFCm5leHRPclVuaXQFBHVuaXQBEWluc2VydE5vZGVBY3Rpb25zAghsaXN0TmFtZQJpZAQKaGVhZE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQQIbGlzdFNpemUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleUxpc3RTaXplAQUIbGlzdE5hbWUAAAQJY2hlY2tOb2RlAwkBASEBCQEMY29udGFpbnNOb2RlAgUIbGlzdE5hbWUFAmlkBgkAAgECC05vZGUgZXhpc3RzAwkAAAIFCWNoZWNrTm9kZQUJY2hlY2tOb2RlCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleUxpc3RTaXplAQUIbGlzdE5hbWUJAGQCBQhsaXN0U2l6ZQABBQNuaWwDCQECIT0CBQpoZWFkT3JVbml0BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAkBBXZhbHVlAQUKaGVhZE9yVW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQkBBXZhbHVlAQUKaGVhZE9yVW5pdAUCaWQFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBQJpZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARFkZWxldGVOb2RlQWN0aW9ucwIIbGlzdE5hbWUCaWQECmhlYWRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUECGxpc3RTaXplCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQtrZXlMaXN0U2l6ZQEFCGxpc3ROYW1lAAAECnByZXZPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUFAmlkBApuZXh0T3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELa2V5TGlzdFNpemUBBQhsaXN0TmFtZQkAZQIFCGxpc3RTaXplAAEFA25pbAMDCQECIT0CBQpwcmV2T3JVbml0BQR1bml0CQECIT0CBQpuZXh0T3JVbml0BQR1bml0BwkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQkBBXZhbHVlAQUKcHJldk9yVW5pdAkBBXZhbHVlAQUKbmV4dE9yVW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQkBBXZhbHVlAQUKbmV4dE9yVW5pdAkBBXZhbHVlAQUKcHJldk9yVW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkBQNuaWwDCQECIT0CBQpuZXh0T3JVbml0BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lCQEFdmFsdWUBBQpuZXh0T3JVbml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQkBBXZhbHVlAQUKbmV4dE9yVW5pdAUDbmlsAwkBAiE9AgUKcHJldk9yVW5pdAUEdW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUJAQV2YWx1ZQEFCnByZXZPclVuaXQFA25pbAMJAAACBQJpZAkBC3ZhbHVlT3JFbHNlAgUKaGVhZE9yVW5pdAIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICAg5pbnZhbGlkIG5vZGU6IAUIbGlzdE5hbWUCAS4FAmlkARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFXBlcm1pc3Npb25EZW5pZWRFcnJvcgkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IRAWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAILdXNlckFkZHJlc3MMdGFyZ2V0SGVpZ2h0BBdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRNrZXlCb29zdGluZ0NvbnRyYWN0AiFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAJQKAgUDbmlsCgABQAkA/AcEBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwIgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUMdGFyZ2V0SGVpZ2h0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBaQELY29uc3RydWN0b3IFD2ZhY3RvcnlDb250cmFjdB92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0EGJvb3N0aW5nQ29udHJhY3QPc3Rha2luZ0NvbnRyYWN0C2Vwb2NoTGVuZ3RoBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBAiE9AgkApggBBQ9mYWN0b3J5Q29udHJhY3QFBHVuaXQGAiBpbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBR92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQR1bml0BgIyaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY2FuZGlkYXRlIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUQYm9vc3RpbmdDb250cmFjdAUEdW5pdAYCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQ9zdGFraW5nQ29udHJhY3QFBHVuaXQGAiBpbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkAZgIFC2Vwb2NoTGVuZ3RoAAAGCQACAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFEmtleUZhY3RvcnlDb250cmFjdAUPZmFjdG9yeUNvbnRyYWN0CQDMCAIJAQtTdHJpbmdFbnRyeQIFImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgUTa2V5Qm9vc3RpbmdDb250cmFjdAUQYm9vc3RpbmdDb250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCBRJrZXlTdGFraW5nQ29udHJhY3QFD3N0YWtpbmdDb250cmFjdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5RXBvY2hMZW5ndGgFC2Vwb2NoTGVuZ3RoBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGY3JlYXRlAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAQGY2hlY2tzCQDMCAIDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QCAAYJAQttdXN0TWFuYWdlcgEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQEcG9vbAkAlAoCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEDWluTGlzdEFjdGlvbnMJAM4IAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCWtleUluTGlzdAEFBHBvb2wGBQNuaWwJARFpbnNlcnROb2RlQWN0aW9ucwIFDXBvb2xzTGlzdE5hbWUJAQxwb29sVG9TdHJpbmcBBQRwb29sBBhjdXJyZW50RXBvY2hJc05vdERlZmluZWQJAAACCQCaCAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAUEdW5pdAQSc3RhcnRIZWlnaHRBY3Rpb25zAwUYY3VycmVudEVwb2NoSXNOb3REZWZpbmVkBAVlcG9jaAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlDdXJyZW50RXBvY2gFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUFZXBvY2gFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5U3RhcnRIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5Q3VycmVudEVwb2NoVWkFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlTdGFydEhlaWdodFVpBQZoZWlnaHQFA25pbAUDbmlsCQCUCgIJAM4IAgUNaW5MaXN0QWN0aW9ucwUSc3RhcnRIZWlnaHRBY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBHZvdGUDDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBmFtb3VudAQEcG9vbAkAlAoCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEBWVwb2NoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAAABAtzdGFydEhlaWdodAkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQVlcG9jaAQLZXBvY2hMZW5ndGgJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ5rZXlFcG9jaExlbmd0aAQJZW5kSGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFC2Vwb2NoTGVuZ3RoBBdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAkAmggCBQR0aGlzBRRrZXlGaW5hbGl6YXRpb25TdGFnZQQEdXNlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5VXNlZAIIBQFpBmNhbGxlcgUFZXBvY2gAAAQEdm90ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5Vm90ZQMFBHBvb2wIBQFpBmNhbGxlcgUFZXBvY2gAAAQKcG9vbFJlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAUFZXBvY2gAAAQKdG90YWxWb3RlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoAAAEE2d3eEFtb3VudEF0RW5kVG90YWwKAAFACQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgUJZW5kSGVpZ2h0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQECWF2YWlsYWJsZQkAZQIFE2d3eEFtb3VudEF0RW5kVG90YWwFBHVzZWQEB25ld1ZvdGUJAGQCBQR2b3RlBQZhbW91bnQECnd4RW1pc3Npb24JARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwBBQRwb29sBAZjaGVja3MJAMwIAgMJAQIhPQIJAKAIAQkBCWtleUluTGlzdAEFBHBvb2wFBHVuaXQGCQACAQIOaW52YWxpZCBhc3NldHMJAMwIAgMJAGYCBQllbmRIZWlnaHQFBmhlaWdodAYJAAIBAg5pbnZhbGlkIGhlaWdodAkAzAgCAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0BgkAAgECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFE2d3eEFtb3VudEF0RW5kVG90YWwAAAYJAAIBAhN5b3UgZG8gbm90IGhhdmUgZ1dYCQDMCAIDAwkAZgIFBmFtb3VudAAACQBnAgUJYXZhaWxhYmxlBQZhbW91bnQHBgkAAgECDmludmFsaWQgYW1vdW50CQDMCAIDBQp3eEVtaXNzaW9uBgkAAgECHXBvb2wgaGFzbid0IFdYX0VNSVNTSU9OIGxhYmVsBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXZvdGVzTGlzdE5hbWUJARBnZXRWb3Rlc0xpc3ROYW1lAQUEcG9vbAQOdXNlckFkZHJlc3NTdHIJAKUIAQgFAWkGY2FsbGVyBBB2b3Rlc0xpc3RBY3Rpb25zAwkBDGNvbnRhaW5zTm9kZQIFDXZvdGVzTGlzdE5hbWUFDnVzZXJBZGRyZXNzU3RyBQNuaWwJARFpbnNlcnROb2RlQWN0aW9ucwIFDXZvdGVzTGlzdE5hbWUFDnVzZXJBZGRyZXNzU3RyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBB2tleVVzZWQCCAUBaQZjYWxsZXIFBWVwb2NoCQBkAgUEdXNlZAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5Vm90ZQMFBHBvb2wIBQFpBmNhbGxlcgUFZXBvY2gFB25ld1ZvdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAkAZAIFCnBvb2xSZXN1bHQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAkAZAIFCnRvdGFsVm90ZXMFBmFtb3VudAUDbmlsBRB2b3Rlc0xpc3RBY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNhbmNlbFZvdGUCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBARwb29sCQCUCgIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAQFZXBvY2gJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoAAAEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAtlcG9jaExlbmd0aAkBDGdldEludE9yRmFpbAIFBHRoaXMFDmtleUVwb2NoTGVuZ3RoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0CQCaCAIFBHRoaXMFFGtleUZpbmFsaXphdGlvblN0YWdlBAR1c2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlVc2VkAggFAWkGY2FsbGVyBQVlcG9jaAAABAR2b3RlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlWb3RlAwUEcG9vbAgFAWkGY2FsbGVyBQVlcG9jaAAABApwb29sUmVzdWx0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAAABAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gAAAQGY2hlY2tzCQDMCAIDCQECIT0CCQCgCAEJAQlrZXlJbkxpc3QBBQRwb29sBQR1bml0BgkAAgECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUJZW5kSGVpZ2h0BQZoZWlnaHQGCQACAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAYJAAIBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQR2b3RlAAAGCQACAQIHbm8gdm90ZQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA12b3Rlc0xpc3ROYW1lCQEQZ2V0Vm90ZXNMaXN0TmFtZQEFBHBvb2wEDnVzZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlVc2VkAggFAWkGY2FsbGVyBQVlcG9jaAkAlgMBCQDMCAIJAGUCBQR1c2VkBQR2b3RlCQDMCAIAAAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlWb3RlAwUEcG9vbAgFAWkGY2FsbGVyBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoCQBlAgUKcG9vbFJlc3VsdAUEdm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAkAZQIFCnRvdGFsVm90ZXMFBHZvdGUFA25pbAkBEWRlbGV0ZU5vZGVBY3Rpb25zAgUNdm90ZXNMaXN0TmFtZQUOdXNlckFkZHJlc3NTdHIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOc2V0RXBvY2hMZW5ndGgBDm5ld0Vwb2NoTGVuZ3RoBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkAZgIFDm5ld0Vwb2NoTGVuZ3RoAAAGCQACAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlFcG9jaExlbmd0aAUObmV3RXBvY2hMZW5ndGgFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtzZXRNYXhEZXB0aAELbmV3TWF4RGVwdGgEBmNoZWNrcwkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQBmAgULbmV3TWF4RGVwdGgAAAYJAAIBAhFpbnZhbGlkIG1heCBkZXB0aAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tleU1heERlcHRoBQtuZXdNYXhEZXB0aAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3Byb2Nlc3NWb3RlSU5URVJOQUwCB3Bvb2xTdHIOdXNlckFkZHJlc3NTdHIEC2NoZWNrQ2FsbGVyCQEIbXVzdFRoaXMBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQ51c2VyQWRkcmVzc1N0cgkArAICAipwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHVzZXIgYWRkcmVzcyAFDnVzZXJBZGRyZXNzU3RyBAVlcG9jaAkBDGdldEludE9yRmFpbAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAQNZXBvY2hQcmV2aW91cwkAZQIFBWVwb2NoAAEEC2Vwb2NoTGVuZ3RoCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUOa2V5RXBvY2hMZW5ndGgEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEE3N0YXJ0SGVpZ2h0UHJldmlvdXMJAQxnZXRJbnRPckZhaWwCBQR0aGlzCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUNZXBvY2hQcmV2aW91cwQRZW5kSGVpZ2h0UHJldmlvdXMJAGQCBRNzdGFydEhlaWdodFByZXZpb3VzBQtlcG9jaExlbmd0aAQQY2hlY2tUYXJnZXRFcG9jaAMJAGcCBQ1lcG9jaFByZXZpb3VzAAAGCQACAQIrcHJvY2Vzc1ZvdGVJTlRFUk5BTDogaW52YWxpZCBwcmV2aW91cyBlcG9jaAMJAAACBRBjaGVja1RhcmdldEVwb2NoBRBjaGVja1RhcmdldEVwb2NoBARwb29sCQEMc3RyaW5nVG9Qb29sAQUHcG9vbFN0cgQNJHQwMTcyNzAxNzMxMAUEcG9vbAQNYW1vdW50QXNzZXRJZAgFDSR0MDE3MjcwMTczMTACXzEEDHByaWNlQXNzZXRJZAgFDSR0MDE3MjcwMTczMTACXzIECnd4RW1pc3Npb24JARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwBBQRwb29sBBNnd3hBbW91bnRBdEVuZFRvdGFsCgABQAkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgUOdXNlckFkZHJlc3NTdHIJAMwIAgUJZW5kSGVpZ2h0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEG2d3eEFtb3VudEF0RW5kVG90YWxQcmV2aW91cwoAAUAJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFEWVuZEhlaWdodFByZXZpb3VzBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQECnRvdGFsVm90ZXMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAAABAx2b3RpbmdSZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoAAAEDHZvdGVQcmV2aW91cwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQdrZXlWb3RlAwUEcG9vbAULdXNlckFkZHJlc3MFDWVwb2NoUHJldmlvdXMJAKwCAgkArAICCQCsAgIJAKwCAgIUcHJvY2Vzc1ZvdGVJTlRFUk5BTCAFB3Bvb2xTdHICASAFDnVzZXJBZGRyZXNzU3RyAhI6IG5vIHByZXZpb3VzIHZvdGUEBHVzZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBB2tleVVzZWQCBQt1c2VyQWRkcmVzcwUFZXBvY2gAAAQHbmV3Vm90ZQMJAGYCBRtnd3hBbW91bnRBdEVuZFRvdGFsUHJldmlvdXMAAAkAawMFDHZvdGVQcmV2aW91cwUTZ3d4QW1vdW50QXRFbmRUb3RhbAUbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzAAAEB2FjdGlvbnMDAwkAZgIFB25ld1ZvdGUAAAUKd3hFbWlzc2lvbgcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlWb3RlAwUEcG9vbAULdXNlckFkZHJlc3MFBWVwb2NoBQduZXdWb3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoCQBkAgUKdG90YWxWb3RlcwUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoCQBkAgUMdm90aW5nUmVzdWx0BQduZXdWb3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5VXNlZAIFC3VzZXJBZGRyZXNzBQVlcG9jaAkAZAIFBHVzZWQFB25ld1ZvdGUFA25pbAkBEWRlbGV0ZU5vZGVBY3Rpb25zAgkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sBQ51c2VyQWRkcmVzc1N0cgkAlAoCBQdhY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3Byb2Nlc3NQb29sSU5URVJOQUwCB3Bvb2xTdHIFZm9yY2UEC2NoZWNrQ2FsbGVyCQEIbXVzdFRoaXMBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdGFyZ2V0RXBvY2gEDGN1cnJlbnRFcG9jaAkBDGdldEludE9yRmFpbAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAMFBWZvcmNlBQxjdXJyZW50RXBvY2gJAGUCBQxjdXJyZW50RXBvY2gAAQQQY2hlY2tUYXJnZXRFcG9jaAMJAGcCBQt0YXJnZXRFcG9jaAAABgkAAgECKXByb2Nlc3NQb29sSU5URVJOQUw6IGludmFsaWQgdGFyZ2V0IGVwb2NoAwkAAAIFEGNoZWNrVGFyZ2V0RXBvY2gFEGNoZWNrVGFyZ2V0RXBvY2gEBHBvb2wJAQxzdHJpbmdUb1Bvb2wBBQdwb29sU3RyBA0kdDAxOTAzNjE5MDc2BQRwb29sBA1hbW91bnRBc3NldElkCAUNJHQwMTkwMzYxOTA3NgJfMQQMcHJpY2VBc3NldElkCAUNJHQwMTkwMzYxOTA3NgJfMgQPc3Rha2luZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwUSa2V5U3Rha2luZ0NvbnRyYWN0BA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRJrZXlGYWN0b3J5Q29udHJhY3QECWxwQXNzZXRJZAkBFmdldExwQXNzZXRCeVBvb2xBc3NldHMCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEAXIKAAFACQD8BwQFD3N0YWtpbmdDb250cmFjdAISdXNlcnNMaXN0VHJhdmVyc2FsCQDMCAIFCWxwQXNzZXRJZAUDbmlsBQNuaWwDCQABAgUBQAIHQm9vbGVhbgUBQAkAAgEJAKwCAgkAAwEFAUACHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUBcgUBcgMFAXIJAJQKAgUDbmlsBgQKd3hFbWlzc2lvbgkBGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAEFBHBvb2wECnRvdGFsVm90ZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBDWtleVRvdGFsVm90ZXMBBQt0YXJnZXRFcG9jaAAABAx2b3RpbmdSZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFC3RhcmdldEVwb2NoAAAEBXNoYXJlAwMJAAACBQp0b3RhbFZvdGVzAAAGCQEBIQEFCnd4RW1pc3Npb24AAAkAawMFDHZvdGluZ1Jlc3VsdAUOcG9vbFdlaWdodE11bHQFCnRvdGFsVm90ZXMED21vZGlmeVdlaWdodEludgkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCDG1vZGlmeVdlaWdodAkAzAgCBQlscEFzc2V0SWQJAMwIAgUFc2hhcmUFA25pbAUDbmlsAwkAAAIFD21vZGlmeVdlaWdodEludgUPbW9kaWZ5V2VpZ2h0SW52BBBwb29sc0xpc3RBY3Rpb25zAwMFCnd4RW1pc3Npb24GBQVmb3JjZQUDbmlsCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCWtleUluTGlzdAEFBHBvb2wFA25pbAkBEWRlbGV0ZU5vZGVBY3Rpb25zAgUNcG9vbHNMaXN0TmFtZQUHcG9vbFN0cgkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxrZXlQb29sU2hhcmUCBQRwb29sBQt0YXJnZXRFcG9jaAUFc2hhcmUFA25pbAUQcG9vbHNMaXN0QWN0aW9ucwcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOZmluYWxpemVIZWxwZXIABAVmb3JjZQkBC3ZhbHVlT3JFbHNlAgkAoAgBBR1rZXlGaW5hbGl6YXRpb25TaG91bGRCZUZvcmNlZAcEBWVwb2NoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAAABA1wcmV2aW91c0Vwb2NoCQBlAgUFZXBvY2gAAQQLc3RhcnRIZWlnaHQJAQxnZXRJbnRPckZhaWwCBQR0aGlzCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUFZXBvY2gEC2Vwb2NoTGVuZ3RoCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUOa2V5RXBvY2hMZW5ndGgECWVuZEhlaWdodAkAZAIFC3N0YXJ0SGVpZ2h0BQtlcG9jaExlbmd0aAQXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQJAJoIAgUEdGhpcwUUa2V5RmluYWxpemF0aW9uU3RhZ2UDAwMJAGcCBQZoZWlnaHQFCWVuZEhlaWdodAkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0BwkBASEBBQVmb3JjZQcECG5ld0Vwb2NoCQBkAgUFZXBvY2gAAQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUIbmV3RXBvY2gFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5U3RhcnRIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5Q3VycmVudEVwb2NoBQhuZXdFcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFFmZpbmFsaXphdGlvblN0YWdlVG90YWwFA25pbAYDAwUFZm9yY2UJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAcJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzBQNuaWwGAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0CQCUCgIFA25pbAcDCQAAAgUXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQFFmZpbmFsaXphdGlvblN0YWdlVG90YWwECnBvb2xPclVuaXQJAKIIAQULa2V5TmV4dFBvb2wECnVzZXJPclVuaXQJAKIIAQULa2V5TmV4dFVzZXIEByRtYXRjaDAFCnBvb2xPclVuaXQDCQABAgUHJG1hdGNoMAIEVW5pdAQHJG1hdGNoMQkAoggBCQELa2V5TGlzdEhlYWQBBQ1wb29sc0xpc3ROYW1lAwkAAQIFByRtYXRjaDECBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRQb29sCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRVc2VyBQNuaWwGAwkAAQIFByRtYXRjaDECBlN0cmluZwQMcG9vbHNIZWFkU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFDHBvb2xzSGVhZFN0cgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBlN0cmluZwQHcG9vbFN0cgUHJG1hdGNoMAQEcG9vbAkBDHN0cmluZ1RvUG9vbAEFB3Bvb2xTdHIEDm5leHRVc2VyT3JVbml0BAckbWF0Y2gxBQp1c2VyT3JVbml0AwkAAQIFByRtYXRjaDECBFVuaXQJAKIIAQkBC2tleUxpc3RIZWFkAQkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sAwkAAQIFByRtYXRjaDECBlN0cmluZwQEdXNlcgUHJG1hdGNoMQQEbmV4dAkAoggBCQELa2V5TGlzdE5leHQCCQEQZ2V0Vm90ZXNMaXN0TmFtZQEFBHBvb2wFBHVzZXIDCQAAAgUEbmV4dAUEbmV4dAQOcHJvY2Vzc1ZvdGVJbnYJAPwHBAUEdGhpcwITcHJvY2Vzc1ZvdGVJTlRFUk5BTAkAzAgCBQdwb29sU3RyCQDMCAIFBHVzZXIFA25pbAUDbmlsAwkAAAIFDnByb2Nlc3NWb3RlSW52BQ5wcm9jZXNzVm90ZUludgUEbmV4dAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yBAckbWF0Y2gxBQ5uZXh0VXNlck9yVW5pdAMJAAECBQckbWF0Y2gxAgRVbml0BA5uZXh0UG9vbE9yVW5pdAkAoggBCQELa2V5TGlzdE5leHQCBQ1wb29sc0xpc3ROYW1lBQdwb29sU3RyBAckbWF0Y2gyBQ5uZXh0UG9vbE9yVW5pdAMJAAECBQckbWF0Y2gyAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFFGtleUZpbmFsaXphdGlvblN0YWdlBRdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0UG9vbAkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0VXNlcgUDbmlsBgMJAAECBQckbWF0Y2gyAgZTdHJpbmcEAXMFByRtYXRjaDIJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0UG9vbAUBcwkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0VXNlcgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDECBlN0cmluZwQIbmV4dFVzZXIFByRtYXRjaDEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0VXNlcgUIbmV4dFVzZXIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECC01hdGNoIGVycm9yAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BRdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwQKcG9vbE9yVW5pdAkAoggBBQtrZXlOZXh0UG9vbAQHJG1hdGNoMAUKcG9vbE9yVW5pdAMJAAECBQckbWF0Y2gwAgRVbml0BAckbWF0Y2gxCQCiCAEJAQtrZXlMaXN0SGVhZAEFDXBvb2xzTGlzdE5hbWUDCQABAgUHJG1hdGNoMQIEVW5pdAQHYWN0aW9ucwMFBWZvcmNlCQDMCAIJAQtEZWxldGVFbnRyeQEFFGtleUZpbmFsaXphdGlvblN0YWdlCQDMCAIJAQtEZWxldGVFbnRyeQEFHWtleUZpbmFsaXphdGlvblNob3VsZEJlRm9yY2VkBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUUa2V5RmluYWxpemF0aW9uU3RhZ2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQxrZXlGaW5hbGl6ZWQBBQ1wcmV2aW91c0Vwb2NoBgkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5Q3VycmVudEVwb2NoVWkFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlTdGFydEhlaWdodFVpBQtzdGFydEhlaWdodAUDbmlsCQCUCgIFB2FjdGlvbnMGAwkAAQIFByRtYXRjaDECBlN0cmluZwQLbmV4dFBvb2xTdHIFByRtYXRjaDEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0UG9vbAULbmV4dFBvb2xTdHIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB3Bvb2xTdHIFByRtYXRjaDAEDm5leHRQb29sT3JVbml0CQCiCAEJAQtrZXlMaXN0TmV4dAIFDXBvb2xzTGlzdE5hbWUFB3Bvb2xTdHIDCQAAAgUObmV4dFBvb2xPclVuaXQFDm5leHRQb29sT3JVbml0BAFyCgABQAkA/AcEBQR0aGlzAhNwcm9jZXNzUG9vbElOVEVSTkFMCQDMCAIFB3Bvb2xTdHIJAMwIAgUFZm9yY2UFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBBQFAAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAXIFAXIDBQFyCQCUCgIFA25pbAYEByRtYXRjaDEFDm5leHRQb29sT3JVbml0AwkAAQIFByRtYXRjaDECBFVuaXQEB2FjdGlvbnMDBQVmb3JjZQkAzAgCCQELRGVsZXRlRW50cnkBBRRrZXlGaW5hbGl6YXRpb25TdGFnZQkAzAgCCQELRGVsZXRlRW50cnkBBR1rZXlGaW5hbGl6YXRpb25TaG91bGRCZUZvcmNlZAkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0UG9vbAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFFGtleUZpbmFsaXphdGlvblN0YWdlCQDMCAIJAQxCb29sZWFuRW50cnkCCQEMa2V5RmluYWxpemVkAQUNcHJldmlvdXNFcG9jaAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleUN1cnJlbnRFcG9jaFVpBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5U3RhcnRIZWlnaHRVaQULc3RhcnRIZWlnaHQJAMwIAgkBC0RlbGV0ZUVudHJ5AQULa2V5TmV4dFBvb2wFA25pbAkAlAoCBQdhY3Rpb25zBgMJAAECBQckbWF0Y2gxAgZTdHJpbmcEC25leHRQb29sU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFC25leHRQb29sU3RyBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgkAAgECFmZpbmFsaXphdGlvbiBpcyBicm9rZW4BaQEPZmluYWxpemVXcmFwcGVyAQdjb3VudGVyBAZyZXN1bHQKAAFACQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQUBQAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQZyZXN1bHQFBnJlc3VsdAMJAQEhAQUGcmVzdWx0AwkAAAIFB2NvdW50ZXIAAAkAAgECHkN1cnJlbnQgdm90aW5nIGlzIG5vdCBvdmVyIHlldAkAlAoCBQNuaWwFBHVuaXQECG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQDCQBmAgUIbWF4RGVwdGgFB2NvdW50ZXIEA2ludgkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZAIFB2NvdW50ZXIAAQUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhmaW5hbGl6ZQAEA2ludgkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgAABQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEUY29udGFpbnNOb2RlUkVBRE9OTFkCCGxpc3ROYW1lAmlkCQCUCgIFA25pbAkBDGNvbnRhaW5zTm9kZQIFCGxpc3ROYW1lBQJpZAFpAQppbnNlcnROb2RlAghsaXN0TmFtZQJpZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJARFpbnNlcnROb2RlQWN0aW9ucwIFCGxpc3ROYW1lBQJpZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpkZWxldGVOb2RlAghsaXN0TmFtZQJpZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJARFkZWxldGVOb2RlQWN0aW9ucwIFCGxpc3ROYW1lBQJpZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tleYZ5hVI=", "height": 2352549, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7kgLpjyXegDCmDuWXnPDFboirXWvnwiMqHX2pS7dR5fE Next: H1K2u4rQ2pRmD3uGHNEUoJimbdsBVXhfL6seYoYTnzkv Diff:
OldNewDifferences
3737
3838 let r = makeString(["%s", "startHeightUi"], a)
3939
40-func s (t) = makeString(["%s%d", "startHeight", toString(t)], a)
40+let s = makeString(["%s", "force"], a)
41+
42+func t (u) = makeString(["%s%d", "startHeight", toString(u)], a)
4143
4244
43-func u (t) = makeString(["%s%d", "finalized", toString(t)], a)
45+func v (u) = makeString(["%s%d", "finalized", toString(u)], a)
4446
4547
46-func v (w) = {
47- let x = w
48- let y = x._1
49- let z = x._2
50- makeString(["%s%s%s", "inList", y, z], a)
48+func w (x) = {
49+ let y = x
50+ let z = y._1
51+ let A = y._2
52+ makeString(["%s%s%s", "inList", z, A], a)
5153 }
5254
5355
54-func A (B,t) = makeString(["%s%s%d", "used", toString(B), toString(t)], a)
56+func B (C,u) = makeString(["%s%s%d", "used", toString(C), toString(u)], a)
5557
5658
57-func C (w,B,t) = {
58- let D = w
59- let y = D._1
60- let z = D._2
61- makeString(["%s%s%s%s%d", "vote", y, z, toString(B), toString(t)], a)
59+func D (x,C,u) = {
60+ let E = x
61+ let z = E._1
62+ let A = E._2
63+ makeString(["%s%s%s%s%d", "vote", z, A, toString(C), toString(u)], a)
6264 }
6365
6466
65-func E (w,t) = {
66- let F = w
67- let y = F._1
68- let z = F._2
69- makeString(["%s%s%s%d", "votingResult", y, z, toString(t)], a)
67+func F (x,u) = {
68+ let G = x
69+ let z = G._1
70+ let A = G._2
71+ makeString(["%s%s%s%d", "votingResult", z, A, toString(u)], a)
7072 }
7173
7274
73-func G (w,t) = {
74- let H = w
75- let y = H._1
76- let z = H._2
77- makeString(["%s%s%s%d", "poolShare", y, z, toString(t)], a)
75+func H (x,u) = {
76+ let I = x
77+ let z = I._1
78+ let A = I._2
79+ makeString(["%s%s%s%d", "poolShare", z, A, toString(u)], a)
7880 }
7981
8082
81-func I (t) = makeString(["%s%d", "totalVotes", toString(t)], a)
83+func J (u) = makeString(["%s%d", "totalVotes", toString(u)], a)
8284
8385
84-func J (B,K,L) = {
85- let M = makeString(["mandatory ", toString(B), ".", K, " is not defined"], "")
86+func K (C,L,M) = {
87+ let N = makeString(["mandatory ", toString(C), ".", L, " is not defined"], "")
8688 valueOrErrorMessage({
87- let N = L
88- if ($isInstanceOf(N, "String"))
89+ let O = M
90+ if ($isInstanceOf(O, "String"))
8991 then {
90- let O = N
91- getString(B, K)
92+ let P = O
93+ getString(C, L)
9294 }
93- else if ($isInstanceOf(N, "Int"))
95+ else if ($isInstanceOf(O, "Int"))
9496 then {
95- let P = N
96- getInteger(B, K)
97+ let Q = O
98+ getInteger(C, L)
9799 }
98100 else throw("invalid entry type")
99- }, M)
101+ }, N)
100102 }
101103
102104
103-func Q (B,K) = {
104- let R = J(B, K, "")
105- if ($isInstanceOf(R, "String"))
106- then R
107- else throw(($getType(R) + " couldn't be cast to String"))
105+func R (C,L) = {
106+ let S = K(C, L, "")
107+ if ($isInstanceOf(S, "String"))
108+ then S
109+ else throw(($getType(S) + " couldn't be cast to String"))
108110 }
109111
110112
111-func S (B,K) = {
112- let R = J(B, K, 0)
113- if ($isInstanceOf(R, "Int"))
114- then R
115- else throw(($getType(R) + " couldn't be cast to Int"))
113+func T (C,L) = {
114+ let S = K(C, L, 0)
115+ if ($isInstanceOf(S, "Int"))
116+ then S
117+ else throw(($getType(S) + " couldn't be cast to Int"))
116118 }
117119
118120
119-func T (w) = ((w._1 + a) + w._2)
121+func U (x) = ((x._1 + a) + x._2)
120122
121123
122-func U (O) = {
123- let V = split(O, a)
124- if ((size(V) == 2))
125- then $Tuple2(V[0], V[1])
124+func V (P) = {
125+ let W = split(P, a)
126+ if ((size(W) == 2))
127+ then $Tuple2(W[0], W[1])
126128 else throw("invalid pool string")
127129 }
128130
129131
130-func W (y,z) = {
131- func X (Y) = ("%s%s%s__mappings__baseAsset2internalId__" + Y)
132+func X (z,A) = {
133+ func Y (Z) = ("%s%s%s__mappings__baseAsset2internalId__" + Z)
132134
133- func Z (aa,ab) = (((("%d%d%s%s__" + toString(aa)) + "__") + toString(ab)) + "__mappings__poolAssets2PoolContract")
135+ func aa (ab,ac) = (((("%d%d%s%s__" + toString(ab)) + "__") + toString(ac)) + "__mappings__poolAssets2PoolContract")
134136
135- func ac (ad) = (("%s%s%s__" + ad) + "__mappings__poolContract2LpAsset")
137+ func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
136138
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
139+ let af = addressFromStringValue(R(this, j))
140+ let ag = T(af, Y(z))
141+ let ah = T(af, Y(A))
142+ let ae = R(af, aa(ag, ah))
143+ let ai = R(af, ad(ae))
144+ ai
143145 }
144146
145147
146-func ai (w) = {
147- let aj = w
148- let y = aj._1
149- let z = aj._2
150- let ae = addressFromStringValue(Q(this, j))
151- let R = invoke(ae, "checkWxEmissionPoolLabel", [y, z], nil)
152- if ($isInstanceOf(R, "Boolean"))
153- then R
154- else throw(($getType(R) + " couldn't be cast to Boolean"))
148+func aj (x) = {
149+ let ak = x
150+ let z = ak._1
151+ let A = ak._2
152+ let af = addressFromStringValue(R(this, j))
153+ let S = invoke(af, "checkWxEmissionPoolLabel", [z, A], nil)
154+ if ($isInstanceOf(S, "Boolean"))
155+ then S
156+ else throw(($getType(S) + " couldn't be cast to Boolean"))
155157 }
156158
157159
158-let ak = "pools"
160+let al = "pools"
159161
160-func al (w) = {
161- let am = w
162- let y = am._1
163- let z = am._2
164- makeString(["votes", y, z], a)
162+func am (x) = {
163+ let an = x
164+ let z = an._1
165+ let A = an._2
166+ makeString(["votes", z, A], a)
165167 }
166168
167169
168-func an (ao) = {
169- let ap = if ((ao == ak))
170+func ao (ap) = {
171+ let aq = if ((ap == al))
170172 then "%s%s"
171173 else "%s%s%s%s"
172- makeString([ap, ao, "head"], a)
174+ makeString([aq, ap, "head"], a)
173175 }
174176
175177
176-func aq (ao) = {
177- let ap = if ((ao == ak))
178+func ar (ap) = {
179+ let aq = if ((ap == al))
178180 then "%s%s"
179181 else "%s%s%s%s"
180- makeString([ap, ao, "size"], a)
182+ makeString([aq, ap, "size"], a)
181183 }
182184
183185
184-func ar (ao,as) = {
185- let ap = if ((ao == ak))
186+func as (ap,at) = {
187+ let aq = if ((ap == al))
186188 then "%s%s%s%s"
187189 else "%s%s%s%s%s"
188- makeString([ap, ao, as, "prev"], a)
190+ makeString([aq, ap, at, "prev"], a)
189191 }
190192
191193
192-func at (ao,as) = {
193- let ap = if ((ao == ak))
194+func au (ap,at) = {
195+ let aq = if ((ap == al))
194196 then "%s%s%s%s"
195197 else "%s%s%s%s%s"
196- makeString([ap, ao, as, "next"], a)
198+ makeString([aq, ap, at, "next"], a)
197199 }
198200
199201
200-func au (ao,as) = {
201- let av = getString(this, an(ao))
202- let aw = getString(this, ar(ao, as))
203- let ax = getString(this, at(ao, as))
204- if (if ((as == valueOrElse(av, "")))
202+func av (ap,at) = {
203+ let aw = getString(this, ao(ap))
204+ let ax = getString(this, as(ap, at))
205+ let ay = getString(this, au(ap, at))
206+ if (if ((at == valueOrElse(aw, "")))
205207 then true
206- else (aw != unit))
208+ else (ax != unit))
207209 then true
208- else (ax != unit)
210+ else (ay != unit)
209211 }
210212
211213
212-func ay (ao,as) = {
213- let av = getString(this, an(ao))
214- let az = valueOrElse(getInteger(this, aq(ao)), 0)
215- let aA = if (!(au(ao, as)))
214+func az (ap,at) = {
215+ let aw = getString(this, ao(ap))
216+ let aA = valueOrElse(getInteger(this, ar(ap)), 0)
217+ let aB = if (!(av(ap, at)))
216218 then true
217219 else throw("Node exists")
218- if ((aA == aA))
219- then (([IntegerEntry(aq(ao), (az + 1))] ++ (if ((av != unit))
220- then [StringEntry(at(ao, as), value(av)), StringEntry(ar(ao, value(av)), as)]
221- else nil)) ++ [StringEntry(an(ao), as)])
220+ if ((aB == aB))
221+ then (([IntegerEntry(ar(ap), (aA + 1))] ++ (if ((aw != unit))
222+ then [StringEntry(au(ap, at), value(aw)), StringEntry(as(ap, value(aw)), at)]
223+ else nil)) ++ [StringEntry(ao(ap), at)])
222224 else throw("Strict value is not equal to itself.")
223225 }
224226
225227
226-func aB (ao,as) = {
227- let av = getString(this, an(ao))
228- let az = valueOrElse(getInteger(this, aq(ao)), 0)
229- let aw = getString(this, ar(ao, as))
230- let ax = getString(this, at(ao, as))
231- ([IntegerEntry(aq(ao), (az - 1))] ++ (if (if ((aw != unit))
232- then (ax != unit)
228+func aC (ap,at) = {
229+ let aw = getString(this, ao(ap))
230+ let aA = valueOrElse(getInteger(this, ar(ap)), 0)
231+ let ax = getString(this, as(ap, at))
232+ let ay = getString(this, au(ap, at))
233+ ([IntegerEntry(ar(ap), (aA - 1))] ++ (if (if ((ax != unit))
234+ then (ay != unit)
233235 else false)
234- then [StringEntry(at(ao, value(aw)), value(ax)), StringEntry(ar(ao, value(ax)), value(aw)), DeleteEntry(ar(ao, as)), DeleteEntry(at(ao, as))]
235- else if ((ax != unit))
236- then [StringEntry(an(ao), value(ax)), DeleteEntry(at(ao, as)), DeleteEntry(ar(ao, value(ax)))]
237- else if ((aw != unit))
238- then [DeleteEntry(ar(ao, as)), DeleteEntry(at(ao, value(aw)))]
239- else if ((as == valueOrElse(av, "")))
240- then [DeleteEntry(an(ao))]
241- else throw(((("invalid node: " + ao) + ".") + as))))
236+ then [StringEntry(au(ap, value(ax)), value(ay)), StringEntry(as(ap, value(ay)), value(ax)), DeleteEntry(as(ap, at)), DeleteEntry(au(ap, at))]
237+ else if ((ay != unit))
238+ then [StringEntry(ao(ap), value(ay)), DeleteEntry(au(ap, at)), DeleteEntry(as(ap, value(ay)))]
239+ else if ((ax != unit))
240+ then [DeleteEntry(as(ap, at)), DeleteEntry(au(ap, value(ax)))]
241+ else if ((at == valueOrElse(aw, "")))
242+ then [DeleteEntry(ao(ap))]
243+ else throw(((("invalid node: " + ap) + ".") + at))))
242244 }
243245
244246
245-func aC () = "%s__managerPublicKey"
247+func aD () = "%s__managerPublicKey"
246248
247249
248-func aD () = "%s__pendingManagerPublicKey"
250+func aE () = "%s__pendingManagerPublicKey"
249251
250252
251-func aE () = {
252- let N = getString(aC())
253- if ($isInstanceOf(N, "String"))
253+func aF () = {
254+ let O = getString(aD())
255+ if ($isInstanceOf(O, "String"))
254256 then {
255- let aF = N
256- fromBase58String(aF)
257+ let aG = O
258+ fromBase58String(aG)
257259 }
258- else if ($isInstanceOf(N, "Unit"))
260+ else if ($isInstanceOf(O, "Unit"))
259261 then unit
260262 else throw("Match error")
261263 }
262264
263265
264-func aG () = {
265- let N = getString(aD())
266- if ($isInstanceOf(N, "String"))
266+func aH () = {
267+ let O = getString(aE())
268+ if ($isInstanceOf(O, "String"))
267269 then {
268- let aF = N
269- fromBase58String(aF)
270+ let aG = O
271+ fromBase58String(aG)
270272 }
271- else if ($isInstanceOf(N, "Unit"))
273+ else if ($isInstanceOf(O, "Unit"))
272274 then unit
273275 else throw("Match error")
274276 }
275277
276278
277-let aH = throw("Permission denied")
279+let aI = throw("Permission denied")
278280
279-func aI (aJ) = if ((aJ.caller == this))
281+func aJ (aK) = if ((aK.caller == this))
280282 then true
281- else aH
283+ else aI
282284
283285
284-func aK (aJ) = {
285- let N = aE()
286- if ($isInstanceOf(N, "ByteVector"))
286+func aL (aK) = {
287+ let O = aF()
288+ if ($isInstanceOf(O, "ByteVector"))
287289 then {
288- let aL = N
289- if ((aJ.callerPublicKey == aL))
290+ let aM = O
291+ if ((aK.callerPublicKey == aM))
290292 then true
291- else aH
293+ else aI
292294 }
293- else if ($isInstanceOf(N, "Unit"))
294- then aI(aJ)
295+ else if ($isInstanceOf(O, "Unit"))
296+ then aJ(aK)
295297 else throw("Match error")
296298 }
297299
298300
299-@Callable(aJ)
300-func setManager (aM) = {
301- let aN = aK(aJ)
302- if ((aN == aN))
301+@Callable(aK)
302+func setManager (aN) = {
303+ let aO = aL(aK)
304+ if ((aO == aO))
303305 then {
304- let aO = fromBase58String(aM)
305- if ((aO == aO))
306- then [StringEntry(aD(), aM)]
306+ let aP = fromBase58String(aN)
307+ if ((aP == aP))
308+ then [StringEntry(aE(), aN)]
307309 else throw("Strict value is not equal to itself.")
308310 }
309311 else throw("Strict value is not equal to itself.")
311313
312314
313315
314-@Callable(aJ)
316+@Callable(aK)
315317 func confirmManager () = {
316- let aP = aG()
317- let aQ = if (isDefined(aP))
318+ let aQ = aH()
319+ let aR = if (isDefined(aQ))
318320 then true
319321 else throw("No pending manager")
320- if ((aQ == aQ))
322+ if ((aR == aR))
321323 then {
322- let aR = if ((aJ.callerPublicKey == value(aP)))
324+ let aS = if ((aK.callerPublicKey == value(aQ)))
323325 then true
324326 else throw("You are not pending manager")
325- if ((aR == aR))
326- then [StringEntry(aC(), toBase58String(value(aP))), DeleteEntry(aD())]
327+ if ((aS == aS))
328+ then [StringEntry(aD(), toBase58String(value(aQ))), DeleteEntry(aE())]
327329 else throw("Strict value is not equal to itself.")
328330 }
329331 else throw("Strict value is not equal to itself.")
331333
332334
333335
334-@Callable(aJ)
335-func getUserGwxAmountAtHeight (aS,aT) = {
336- let aU = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
336+@Callable(aK)
337+func getUserGwxAmountAtHeight (aT,aU) = {
338+ let aV = valueOrErrorMessage(addressFromString(R(this, k)), "invalid boosting contract address")
337339 $Tuple2(nil, {
338- let R = invoke(aU, "getUserGwxAmountAtHeightREADONLY", [aS, aT], nil)
339- if ($isInstanceOf(R, "Int"))
340- then R
341- else throw(($getType(R) + " couldn't be cast to Int"))
340+ let S = invoke(aV, "getUserGwxAmountAtHeightREADONLY", [aT, aU], nil)
341+ if ($isInstanceOf(S, "Int"))
342+ then S
343+ else throw(($getType(S) + " couldn't be cast to Int"))
342344 })
343345 }
344346
345347
346348
347-@Callable(aJ)
348-func constructor (ae,aV,aW,aX,aY) = {
349- let aZ = [aK(aJ), if ((addressFromString(ae) != unit))
349+@Callable(aK)
350+func constructor (af,aW,aX,aY,aZ) = {
351+ let ba = [aL(aK), if ((addressFromString(af) != unit))
350352 then true
351- else "invalid factory contract address", if ((addressFromString(aV) != unit))
353+ else "invalid factory contract address", if ((addressFromString(aW) != unit))
352354 then true
353- else "invalid voting emission candidate contract address", if ((addressFromString(aW) != unit))
355+ else "invalid voting emission candidate contract address", if ((addressFromString(aX) != unit))
354356 then true
355- else "invalid boosting contract address", if ((addressFromString(aX) != unit))
357+ else "invalid boosting contract address", if ((addressFromString(aY) != unit))
356358 then true
357- else "invalid staking contract address", if ((aY > 0))
359+ else "invalid staking contract address", if ((aZ > 0))
358360 then true
359361 else throw("invalid epoch length")]
360- if ((aZ == aZ))
361- then $Tuple2([StringEntry(j, ae), StringEntry(i, aV), StringEntry(k, aW), StringEntry(l, aX), IntegerEntry(f, aY)], unit)
362+ if ((ba == ba))
363+ then $Tuple2([StringEntry(j, af), StringEntry(i, aW), StringEntry(k, aX), StringEntry(l, aY), IntegerEntry(f, aZ)], unit)
362364 else throw("Strict value is not equal to itself.")
363365 }
364366
365367
366368
367-@Callable(aJ)
368-func create (y,z) = {
369- let aZ = [if ((toBase58String(aJ.caller.bytes) == valueOrElse(getString(this, i), "")))
369+@Callable(aK)
370+func create (z,A) = {
371+ let ba = [if ((toBase58String(aK.caller.bytes) == valueOrElse(getString(this, i), "")))
370372 then true
371- else aK(aJ)]
372- if ((aZ == aZ))
373+ else aL(aK)]
374+ if ((ba == ba))
373375 then {
374- let w = $Tuple2(y, z)
375- let ba = ([BooleanEntry(v(w), true)] ++ ay(ak, T(w)))
376- let bb = (getInteger(this, g) == unit)
377- let bc = if (bb)
376+ let x = $Tuple2(z, A)
377+ let bb = ([BooleanEntry(w(x), true)] ++ az(al, U(x)))
378+ let bc = (getInteger(this, g) == unit)
379+ let bd = if (bc)
378380 then {
379- let t = 0
380-[IntegerEntry(g, t), IntegerEntry(s(t), height), IntegerEntry(p, height), IntegerEntry(q, t), IntegerEntry(r, height)]
381+ let u = 0
382+[IntegerEntry(g, u), IntegerEntry(t(u), height), IntegerEntry(p, height), IntegerEntry(q, u), IntegerEntry(r, height)]
381383 }
382384 else nil
383- $Tuple2((ba ++ bc), unit)
385+ $Tuple2((bb ++ bd), unit)
384386 }
385387 else throw("Strict value is not equal to itself.")
386388 }
387389
388390
389391
390-@Callable(aJ)
391-func vote (y,z,bd) = {
392- let w = $Tuple2(y, z)
393- let t = valueOrElse(getInteger(this, g), 0)
394- let be = S(this, s(t))
395- let aY = S(this, f)
396- let bf = (be + aY)
397- let bg = getInteger(this, m)
398- let bh = valueOrElse(getInteger(this, A(aJ.caller, t)), 0)
399- let bi = valueOrElse(getInteger(this, C(w, aJ.caller, t)), 0)
400- let bj = valueOrElse(getInteger(this, E(w, t)), 0)
401- let bk = valueOrElse(getInteger(this, I(t)), 0)
402- let bl = {
403- let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aJ.caller.bytes), bf], nil)
404- if ($isInstanceOf(R, "Int"))
405- then R
406- else throw(($getType(R) + " couldn't be cast to Int"))
392+@Callable(aK)
393+func vote (z,A,be) = {
394+ let x = $Tuple2(z, A)
395+ let u = valueOrElse(getInteger(this, g), 0)
396+ let bf = T(this, t(u))
397+ let aZ = T(this, f)
398+ let bg = (bf + aZ)
399+ let bh = getInteger(this, m)
400+ let bi = valueOrElse(getInteger(this, B(aK.caller, u)), 0)
401+ let bj = valueOrElse(getInteger(this, D(x, aK.caller, u)), 0)
402+ let bk = valueOrElse(getInteger(this, F(x, u)), 0)
403+ let bl = valueOrElse(getInteger(this, J(u)), 0)
404+ let bm = {
405+ let S = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aK.caller.bytes), bg], nil)
406+ if ($isInstanceOf(S, "Int"))
407+ then S
408+ else throw(($getType(S) + " couldn't be cast to Int"))
407409 }
408- let bm = (bl - bh)
409- let bn = (bi + bd)
410- let bo = ai(w)
411- let aZ = [if ((getBoolean(v(w)) != unit))
410+ let bn = (bm - bi)
411+ let bo = (bj + be)
412+ let bp = aj(x)
413+ let ba = [if ((getBoolean(w(x)) != unit))
412414 then true
413- else throw("invalid assets"), if ((bf > height))
415+ else throw("invalid assets"), if ((bg > height))
414416 then true
415- else throw("invalid height"), if ((bg == unit))
417+ else throw("invalid height"), if ((bh == unit))
416418 then true
417- else throw("finalization in progress"), if ((bl > 0))
419+ else throw("finalization in progress"), if ((bm > 0))
418420 then true
419- else throw("you do not have gWX"), if (if ((bd > 0))
420- then (bm >= bd)
421+ else throw("you do not have gWX"), if (if ((be > 0))
422+ then (bn >= be)
421423 else false)
422424 then true
423- else throw("invalid amount"), if (bo)
425+ else throw("invalid amount"), if (bp)
424426 then true
425427 else throw("pool hasn't WX_EMISSION label")]
426- if ((aZ == aZ))
428+ if ((ba == ba))
427429 then {
428- let bp = al(w)
429- let bq = toString(aJ.caller)
430- let br = if (au(bp, bq))
430+ let bq = am(x)
431+ let br = toString(aK.caller)
432+ let bs = if (av(bq, br))
431433 then nil
432- else ay(bp, bq)
433- $Tuple2(([IntegerEntry(A(aJ.caller, t), (bh + bd)), IntegerEntry(C(w, aJ.caller, t), bn), IntegerEntry(E(w, t), (bj + bd)), IntegerEntry(I(t), (bk + bd))] ++ br), unit)
434+ else az(bq, br)
435+ $Tuple2(([IntegerEntry(B(aK.caller, u), (bi + be)), IntegerEntry(D(x, aK.caller, u), bo), IntegerEntry(F(x, u), (bk + be)), IntegerEntry(J(u), (bl + be))] ++ bs), unit)
434436 }
435437 else throw("Strict value is not equal to itself.")
436438 }
437439
438440
439441
440-@Callable(aJ)
441-func cancelVote (y,z) = {
442- let w = $Tuple2(y, z)
443- let t = valueOrElse(getInteger(this, g), 0)
444- let be = S(this, s(t))
445- let aY = S(this, f)
446- let bf = (be + aY)
447- let bg = getInteger(this, m)
448- let bh = valueOrElse(getInteger(this, A(aJ.caller, t)), 0)
449- let bi = valueOrElse(getInteger(this, C(w, aJ.caller, t)), 0)
450- let bj = valueOrElse(getInteger(this, E(w, t)), 0)
451- let bk = valueOrElse(getInteger(this, I(t)), 0)
452- let aZ = [if ((getBoolean(v(w)) != unit))
442+@Callable(aK)
443+func cancelVote (z,A) = {
444+ let x = $Tuple2(z, A)
445+ let u = valueOrElse(getInteger(this, g), 0)
446+ let bf = T(this, t(u))
447+ let aZ = T(this, f)
448+ let bg = (bf + aZ)
449+ let bh = getInteger(this, m)
450+ let bi = valueOrElse(getInteger(this, B(aK.caller, u)), 0)
451+ let bj = valueOrElse(getInteger(this, D(x, aK.caller, u)), 0)
452+ let bk = valueOrElse(getInteger(this, F(x, u)), 0)
453+ let bl = valueOrElse(getInteger(this, J(u)), 0)
454+ let ba = [if ((getBoolean(w(x)) != unit))
453455 then true
454- else throw("invalid assets"), if ((bf > height))
456+ else throw("invalid assets"), if ((bg > height))
455457 then true
456- else throw("invalid height"), if ((bg == unit))
458+ else throw("invalid height"), if ((bh == unit))
457459 then true
458- else throw("finalization in progress"), if ((bi > 0))
460+ else throw("finalization in progress"), if ((bj > 0))
459461 then true
460462 else throw("no vote")]
461- if ((aZ == aZ))
463+ if ((ba == ba))
462464 then {
463- let bp = al(w)
464- let bq = toString(aJ.caller)
465- $Tuple2(([IntegerEntry(A(aJ.caller, t), max([(bh - bi), 0])), DeleteEntry(C(w, aJ.caller, t)), IntegerEntry(E(w, t), (bj - bi)), IntegerEntry(I(t), (bk - bi))] ++ aB(bp, bq)), unit)
465+ let bq = am(x)
466+ let br = toString(aK.caller)
467+ $Tuple2(([IntegerEntry(B(aK.caller, u), max([(bi - bj), 0])), DeleteEntry(D(x, aK.caller, u)), IntegerEntry(F(x, u), (bk - bj)), IntegerEntry(J(u), (bl - bj))] ++ aC(bq, br)), unit)
466468 }
467469 else throw("Strict value is not equal to itself.")
468470 }
469471
470472
471473
472-@Callable(aJ)
473-func setEpochLength (bs) = {
474- let aZ = [aK(aJ), if ((bs > 0))
474+@Callable(aK)
475+func setEpochLength (bt) = {
476+ let ba = [aL(aK), if ((bt > 0))
475477 then true
476478 else throw("invalid epoch length")]
477- if ((aZ == aZ))
478- then $Tuple2([IntegerEntry(f, bs)], unit)
479+ if ((ba == ba))
480+ then $Tuple2([IntegerEntry(f, bt)], unit)
479481 else throw("Strict value is not equal to itself.")
480482 }
481483
482484
483485
484-@Callable(aJ)
485-func setMaxDepth (bt) = {
486- let aZ = [aK(aJ), if ((bt > 0))
486+@Callable(aK)
487+func setMaxDepth (bu) = {
488+ let ba = [aL(aK), if ((bu > 0))
487489 then true
488490 else throw("invalid max depth")]
489- if ((aZ == aZ))
490- then $Tuple2([IntegerEntry(h, bt)], unit)
491+ if ((ba == ba))
492+ then $Tuple2([IntegerEntry(h, bu)], unit)
491493 else throw("Strict value is not equal to itself.")
492494 }
493495
494496
495497
496-@Callable(aJ)
497-func processVoteINTERNAL (bu,bq) = {
498- let aN = aI(aJ)
499- if ((aN == aN))
498+@Callable(aK)
499+func processVoteINTERNAL (bv,br) = {
500+ let aO = aJ(aK)
501+ if ((aO == aO))
500502 then {
501- let aS = valueOrErrorMessage(addressFromString(bq), ("processVoteINTERNAL: invalid user address " + bq))
502- let t = S(this, g)
503- let bv = (t - 1)
504- let aY = S(this, f)
505- let be = S(this, s(t))
506- let bf = (be + aY)
507- let bw = S(this, s(bv))
508- let bx = (bw + aY)
509- let by = if ((bv >= 0))
503+ let aT = valueOrErrorMessage(addressFromString(br), ("processVoteINTERNAL: invalid user address " + br))
504+ let u = T(this, g)
505+ let bw = (u - 1)
506+ let aZ = T(this, f)
507+ let bf = T(this, t(u))
508+ let bg = (bf + aZ)
509+ let bx = T(this, t(bw))
510+ let by = (bx + aZ)
511+ let bz = if ((bw >= 0))
510512 then true
511513 else throw("processVoteINTERNAL: invalid previous epoch")
512- if ((by == by))
514+ if ((bz == bz))
513515 then {
514- let w = U(bu)
515- let bz = w
516- let y = bz._1
517- let z = bz._2
518- let bo = ai(w)
519- let bl = {
520- let R = invoke(this, "getUserGwxAmountAtHeight", [bq, bf], nil)
521- if ($isInstanceOf(R, "Int"))
522- then R
523- else throw(($getType(R) + " couldn't be cast to Int"))
516+ let x = V(bv)
517+ let bA = x
518+ let z = bA._1
519+ let A = bA._2
520+ let bp = aj(x)
521+ let bm = {
522+ let S = invoke(this, "getUserGwxAmountAtHeight", [br, bg], nil)
523+ if ($isInstanceOf(S, "Int"))
524+ then S
525+ else throw(($getType(S) + " couldn't be cast to Int"))
524526 }
525- let bA = {
526- let R = invoke(this, "getUserGwxAmountAtHeight", [bq, bx], nil)
527- if ($isInstanceOf(R, "Int"))
528- then R
529- else throw(($getType(R) + " couldn't be cast to Int"))
527+ let bB = {
528+ let S = invoke(this, "getUserGwxAmountAtHeight", [br, by], nil)
529+ if ($isInstanceOf(S, "Int"))
530+ then S
531+ else throw(($getType(S) + " couldn't be cast to Int"))
530532 }
531- let bk = valueOrElse(getInteger(I(t)), 0)
532- let bB = valueOrElse(getInteger(E(w, t)), 0)
533- let bC = valueOrErrorMessage(getInteger(C(w, aS, bv)), (((("processVoteINTERNAL " + bu) + " ") + bq) + ": no previous vote"))
534- let bh = valueOrElse(getInteger(this, A(aS, t)), 0)
535- let bn = if ((bA > 0))
536- then fraction(bC, bl, bA)
533+ let bl = valueOrElse(getInteger(J(u)), 0)
534+ let bC = valueOrElse(getInteger(F(x, u)), 0)
535+ let bD = valueOrErrorMessage(getInteger(D(x, aT, bw)), (((("processVoteINTERNAL " + bv) + " ") + br) + ": no previous vote"))
536+ let bi = valueOrElse(getInteger(this, B(aT, u)), 0)
537+ let bo = if ((bB > 0))
538+ then fraction(bD, bm, bB)
537539 else 0
538- let bD = if (if ((bn > 0))
539- then bo
540+ let bE = if (if ((bo > 0))
541+ then bp
540542 else false)
541- then [IntegerEntry(C(w, aS, t), bn), IntegerEntry(I(t), (bk + bn)), IntegerEntry(E(w, t), (bB + bn)), IntegerEntry(A(aS, t), (bh + bn))]
542- else aB(al(w), bq)
543- $Tuple2(bD, unit)
543+ then [IntegerEntry(D(x, aT, u), bo), IntegerEntry(J(u), (bl + bo)), IntegerEntry(F(x, u), (bC + bo)), IntegerEntry(B(aT, u), (bi + bo))]
544+ else aC(am(x), br)
545+ $Tuple2(bE, unit)
544546 }
545547 else throw("Strict value is not equal to itself.")
546548 }
549551
550552
551553
552-@Callable(aJ)
553-func processPoolINTERNAL (bu) = {
554- let aN = aI(aJ)
555- if ((aN == aN))
554+@Callable(aK)
555+func processPoolINTERNAL (bv,bF) = {
556+ let aO = aJ(aK)
557+ if ((aO == aO))
556558 then {
557- let bE = (S(this, g) - 1)
558- let by = if ((bE >= 0))
559+ let bG = {
560+ let bH = T(this, g)
561+ if (bF)
562+ then bH
563+ else (bH - 1)
564+ }
565+ let bz = if ((bG >= 0))
559566 then true
560567 else throw("processPoolINTERNAL: invalid target epoch")
561- if ((by == by))
568+ if ((bz == bz))
562569 then {
563- let w = U(bu)
564- let bF = w
565- let y = bF._1
566- let z = bF._2
567- let aX = addressFromStringValue(Q(this, l))
568- let ae = addressFromStringValue(Q(this, j))
569- let ah = W(y, z)
570- let bG = {
571- let R = invoke(aX, "usersListTraversal", [ah], nil)
572- if ($isInstanceOf(R, "Boolean"))
573- then R
574- else throw(($getType(R) + " couldn't be cast to Boolean"))
570+ let x = V(bv)
571+ let bI = x
572+ let z = bI._1
573+ let A = bI._2
574+ let aY = addressFromStringValue(R(this, l))
575+ let af = addressFromStringValue(R(this, j))
576+ let ai = X(z, A)
577+ let bJ = {
578+ let S = invoke(aY, "usersListTraversal", [ai], nil)
579+ if ($isInstanceOf(S, "Boolean"))
580+ then S
581+ else throw(($getType(S) + " couldn't be cast to Boolean"))
575582 }
576- if ((bG == bG))
577- then if (bG)
583+ if ((bJ == bJ))
584+ then if (bJ)
578585 then $Tuple2(nil, true)
579586 else {
580- let bo = ai(w)
581- let bk = valueOrElse(getInteger(this, I(bE)), 0)
582- let bB = valueOrElse(getInteger(this, E(w, bE)), 0)
583- let bH = if (if ((bk == 0))
587+ let bp = aj(x)
588+ let bl = valueOrElse(getInteger(this, J(bG)), 0)
589+ let bC = valueOrElse(getInteger(this, F(x, bG)), 0)
590+ let bK = if (if ((bl == 0))
584591 then true
585- else !(bo))
592+ else !(bp))
586593 then 0
587- else fraction(bB, b, bk)
588- let bI = invoke(ae, "modifyWeight", [ah, bH], nil)
589- if ((bI == bI))
594+ else fraction(bC, b, bl)
595+ let bL = invoke(af, "modifyWeight", [ai, bK], nil)
596+ if ((bL == bL))
590597 then {
591- let bJ = if (bo)
598+ let bM = if (if (bp)
599+ then true
600+ else bF)
592601 then nil
593- else ([DeleteEntry(v(w))] ++ aB(ak, bu))
594- $Tuple2(([IntegerEntry(G(w, bE), bH)] ++ bJ), false)
602+ else ([DeleteEntry(w(x))] ++ aC(al, bv))
603+ $Tuple2(([IntegerEntry(H(x, bG), bK)] ++ bM), false)
595604 }
596605 else throw("Strict value is not equal to itself.")
597606 }
604613
605614
606615
607-@Callable(aJ)
616+@Callable(aK)
608617 func finalizeHelper () = {
609- let t = valueOrElse(getInteger(this, g), 0)
610- let bK = (t - 1)
611- let be = S(this, s(t))
612- let aY = S(this, f)
613- let bf = (be + aY)
614- let bg = getInteger(this, m)
615- if (if ((height >= bf))
616- then (bg == unit)
618+ let bF = valueOrElse(getBoolean(s), false)
619+ let u = valueOrElse(getInteger(this, g), 0)
620+ let bN = (u - 1)
621+ let bf = T(this, t(u))
622+ let aZ = T(this, f)
623+ let bg = (bf + aZ)
624+ let bh = getInteger(this, m)
625+ if (if (if ((height >= bg))
626+ then (bh == unit)
627+ else false)
628+ then !(bF)
617629 else false)
618630 then {
619- let bL = (t + 1)
620- $Tuple2([IntegerEntry(s(bL), height), IntegerEntry(p, height), IntegerEntry(g, bL), IntegerEntry(m, d)], true)
631+ let bO = (u + 1)
632+ $Tuple2([IntegerEntry(t(bO), height), IntegerEntry(p, height), IntegerEntry(g, bO), IntegerEntry(m, d)], true)
621633 }
622- else if ((bg == unit))
623- then $Tuple2(nil, false)
624- else if ((bg == d))
625- then {
626- let bM = getString(n)
627- let bN = getString(o)
628- let N = bM
629- if ($isInstanceOf(N, "Unit"))
634+ else if (if (bF)
635+ then (bh == unit)
636+ else false)
637+ then $Tuple2([IntegerEntry(m, e)], true)
638+ else if ((bh == unit))
639+ then $Tuple2(nil, false)
640+ else if ((bh == d))
641+ then {
642+ let bP = getString(n)
643+ let bQ = getString(o)
644+ let O = bP
645+ if ($isInstanceOf(O, "Unit"))
646+ then {
647+ let bR = getString(ao(al))
648+ if ($isInstanceOf(bR, "Unit"))
649+ then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
650+ else if ($isInstanceOf(bR, "String"))
651+ then {
652+ let bS = bR
653+ $Tuple2([StringEntry(n, bS)], true)
654+ }
655+ else throw("Match error")
656+ }
657+ else if ($isInstanceOf(O, "String"))
658+ then {
659+ let bv = O
660+ let x = V(bv)
661+ let bT = {
662+ let bR = bQ
663+ if ($isInstanceOf(bR, "Unit"))
664+ then getString(ao(am(x)))
665+ else if ($isInstanceOf(bR, "String"))
666+ then {
667+ let bU = bR
668+ let bV = getString(au(am(x), bU))
669+ if ((bV == bV))
670+ then {
671+ let bW = invoke(this, "processVoteINTERNAL", [bv, bU], nil)
672+ if ((bW == bW))
673+ then bV
674+ else throw("Strict value is not equal to itself.")
675+ }
676+ else throw("Strict value is not equal to itself.")
677+ }
678+ else throw("Match error")
679+ }
680+ let bR = bT
681+ if ($isInstanceOf(bR, "Unit"))
682+ then {
683+ let bX = getString(au(al, bv))
684+ let bY = bX
685+ if ($isInstanceOf(bY, "Unit"))
686+ then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
687+ else if ($isInstanceOf(bY, "String"))
688+ then {
689+ let aG = bY
690+ $Tuple2([StringEntry(n, aG), DeleteEntry(o)], true)
691+ }
692+ else throw("Match error")
693+ }
694+ else if ($isInstanceOf(bR, "String"))
695+ then {
696+ let bZ = bR
697+ $Tuple2([StringEntry(o, bZ)], true)
698+ }
699+ else throw("Match error")
700+ }
701+ else throw("Match error")
702+ }
703+ else if ((bh == e))
630704 then {
631- let bO = getString(an(ak))
632- if ($isInstanceOf(bO, "Unit"))
633- then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
634- else if ($isInstanceOf(bO, "String"))
705+ let bP = getString(n)
706+ let O = bP
707+ if ($isInstanceOf(O, "Unit"))
708+ then {
709+ let bR = getString(ao(al))
710+ if ($isInstanceOf(bR, "Unit"))
711+ then {
712+ let bE = if (bF)
713+ then [DeleteEntry(m), DeleteEntry(s)]
714+ else [DeleteEntry(m), BooleanEntry(v(bN), true), IntegerEntry(q, u), IntegerEntry(r, bf)]
715+ $Tuple2(bE, true)
716+ }
717+ else if ($isInstanceOf(bR, "String"))
718+ then {
719+ let ca = bR
720+ $Tuple2([StringEntry(n, ca)], true)
721+ }
722+ else throw("Match error")
723+ }
724+ else if ($isInstanceOf(O, "String"))
635725 then {
636- let bP = bO
637- $Tuple2([StringEntry(n, bP)], true)
726+ let bv = O
727+ let bX = getString(au(al, bv))
728+ if ((bX == bX))
729+ then {
730+ let bJ = {
731+ let S = invoke(this, "processPoolINTERNAL", [bv, bF], nil)
732+ if ($isInstanceOf(S, "Boolean"))
733+ then S
734+ else throw(($getType(S) + " couldn't be cast to Boolean"))
735+ }
736+ if ((bJ == bJ))
737+ then if (bJ)
738+ then $Tuple2(nil, true)
739+ else {
740+ let bR = bX
741+ if ($isInstanceOf(bR, "Unit"))
742+ then {
743+ let bE = if (bF)
744+ then [DeleteEntry(m), DeleteEntry(s), DeleteEntry(n)]
745+ else [DeleteEntry(m), BooleanEntry(v(bN), true), IntegerEntry(q, u), IntegerEntry(r, bf), DeleteEntry(n)]
746+ $Tuple2(bE, true)
747+ }
748+ else if ($isInstanceOf(bR, "String"))
749+ then {
750+ let ca = bR
751+ $Tuple2([StringEntry(n, ca)], true)
752+ }
753+ else throw("Match error")
754+ }
755+ else throw("Strict value is not equal to itself.")
756+ }
757+ else throw("Strict value is not equal to itself.")
638758 }
639759 else throw("Match error")
640760 }
641- else if ($isInstanceOf(N, "String"))
642- then {
643- let bu = N
644- let w = U(bu)
645- let bQ = {
646- let bO = bN
647- if ($isInstanceOf(bO, "Unit"))
648- then getString(an(al(w)))
649- else if ($isInstanceOf(bO, "String"))
650- then {
651- let bR = bO
652- let bS = getString(at(al(w), bR))
653- if ((bS == bS))
654- then {
655- let bT = invoke(this, "processVoteINTERNAL", [bu, bR], nil)
656- if ((bT == bT))
657- then bS
658- else throw("Strict value is not equal to itself.")
659- }
660- else throw("Strict value is not equal to itself.")
661- }
662- else throw("Match error")
663- }
664- let bO = bQ
665- if ($isInstanceOf(bO, "Unit"))
666- then {
667- let bU = getString(at(ak, bu))
668- let bV = bU
669- if ($isInstanceOf(bV, "Unit"))
670- then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
671- else if ($isInstanceOf(bV, "String"))
672- then {
673- let aF = bV
674- $Tuple2([StringEntry(n, aF), DeleteEntry(o)], true)
675- }
676- else throw("Match error")
677- }
678- else if ($isInstanceOf(bO, "String"))
679- then {
680- let bW = bO
681- $Tuple2([StringEntry(o, bW)], true)
682- }
683- else throw("Match error")
684- }
685- else throw("Match error")
686- }
687- else if ((bg == e))
688- then {
689- let bM = getString(n)
690- let N = bM
691- if ($isInstanceOf(N, "Unit"))
692- then {
693- let bO = getString(an(ak))
694- if ($isInstanceOf(bO, "Unit"))
695- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bK), true), IntegerEntry(q, t), IntegerEntry(r, be)], true)
696- else if ($isInstanceOf(bO, "String"))
697- then {
698- let bX = bO
699- $Tuple2([StringEntry(n, bX)], true)
700- }
701- else throw("Match error")
702- }
703- else if ($isInstanceOf(N, "String"))
704- then {
705- let bu = N
706- let bU = getString(at(ak, bu))
707- if ((bU == bU))
708- then {
709- let bG = {
710- let R = invoke(this, "processPoolINTERNAL", [bu], nil)
711- if ($isInstanceOf(R, "Boolean"))
712- then R
713- else throw(($getType(R) + " couldn't be cast to Boolean"))
714- }
715- if ((bG == bG))
716- then if (bG)
717- then $Tuple2(nil, true)
718- else {
719- let bO = bU
720- if ($isInstanceOf(bO, "Unit"))
721- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bK), true), IntegerEntry(q, t), IntegerEntry(r, be), DeleteEntry(n)], true)
722- else if ($isInstanceOf(bO, "String"))
723- then {
724- let bX = bO
725- $Tuple2([StringEntry(n, bX)], true)
726- }
727- else throw("Match error")
728- }
729- else throw("Strict value is not equal to itself.")
730- }
731- else throw("Strict value is not equal to itself.")
732- }
733- else throw("Match error")
734- }
735- else throw("finalization is broken")
761+ else throw("finalization is broken")
736762 }
737763
738764
739765
740-@Callable(aJ)
741-func finalizeWrapper (bY) = {
742- let bZ = {
743- let R = invoke(this, "finalizeHelper", nil, nil)
744- if ($isInstanceOf(R, "Boolean"))
745- then R
746- else throw(($getType(R) + " couldn't be cast to Boolean"))
766+@Callable(aK)
767+func finalizeWrapper (cb) = {
768+ let cc = {
769+ let S = invoke(this, "finalizeHelper", nil, nil)
770+ if ($isInstanceOf(S, "Boolean"))
771+ then S
772+ else throw(($getType(S) + " couldn't be cast to Boolean"))
747773 }
748- if ((bZ == bZ))
749- then if (!(bZ))
750- then if ((bY == 0))
774+ if ((cc == cc))
775+ then if (!(cc))
776+ then if ((cb == 0))
751777 then throw("Current voting is not over yet")
752778 else $Tuple2(nil, unit)
753779 else {
754- let ca = valueOrElse(getInteger(this, h), c)
755- if ((ca > bY))
780+ let cd = valueOrElse(getInteger(this, h), c)
781+ if ((cd > cb))
756782 then {
757- let cb = invoke(this, "finalizeWrapper", [(bY + 1)], nil)
758- if ((cb == cb))
783+ let ce = invoke(this, "finalizeWrapper", [(cb + 1)], nil)
784+ if ((ce == ce))
759785 then $Tuple2(nil, unit)
760786 else throw("Strict value is not equal to itself.")
761787 }
766792
767793
768794
769-@Callable(aJ)
795+@Callable(aK)
770796 func finalize () = {
771- let cb = invoke(this, "finalizeWrapper", [0], nil)
772- if ((cb == cb))
797+ let ce = invoke(this, "finalizeWrapper", [0], nil)
798+ if ((ce == ce))
773799 then $Tuple2(nil, unit)
774800 else throw("Strict value is not equal to itself.")
775801 }
776802
777803
778804
779-@Callable(aJ)
780-func containsNodeREADONLY (ao,as) = $Tuple2(nil, au(ao, as))
805+@Callable(aK)
806+func containsNodeREADONLY (ap,at) = $Tuple2(nil, av(ap, at))
781807
782808
783809
784-@Callable(aJ)
785-func insertNode (ao,as) = {
786- let aN = aK(aJ)
787- if ((aN == aN))
788- then $Tuple2(ay(ao, as), unit)
810+@Callable(aK)
811+func insertNode (ap,at) = {
812+ let aO = aL(aK)
813+ if ((aO == aO))
814+ then $Tuple2(az(ap, at), unit)
789815 else throw("Strict value is not equal to itself.")
790816 }
791817
792818
793819
794-@Callable(aJ)
795-func deleteNode (ao,as) = {
796- let aN = aK(aJ)
797- if ((aN == aN))
798- then $Tuple2(aB(ao, as), unit)
820+@Callable(aK)
821+func deleteNode (ap,at) = {
822+ let aO = aL(aK)
823+ if ((aO == aO))
824+ then $Tuple2(aC(ap, at), unit)
799825 else throw("Strict value is not equal to itself.")
800826 }
801827
802828
803-@Verifier(cc)
804-func cd () = {
805- let ce = {
806- let N = aE()
807- if ($isInstanceOf(N, "ByteVector"))
829+@Verifier(cf)
830+func cg () = {
831+ let ch = {
832+ let O = aF()
833+ if ($isInstanceOf(O, "ByteVector"))
808834 then {
809- let aL = N
810- aL
835+ let aM = O
836+ aM
811837 }
812- else if ($isInstanceOf(N, "Unit"))
813- then cc.senderPublicKey
838+ else if ($isInstanceOf(O, "Unit"))
839+ then cf.senderPublicKey
814840 else throw("Match error")
815841 }
816- sigVerify(cc.bodyBytes, cc.proofs[0], ce)
842+ sigVerify(cf.bodyBytes, cf.proofs[0], ch)
817843 }
818844
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
40-func s (t) = makeString(["%s%d", "startHeight", toString(t)], a)
40+let s = makeString(["%s", "force"], a)
41+
42+func t (u) = makeString(["%s%d", "startHeight", toString(u)], a)
4143
4244
43-func u (t) = makeString(["%s%d", "finalized", toString(t)], a)
45+func v (u) = makeString(["%s%d", "finalized", toString(u)], a)
4446
4547
46-func v (w) = {
47- let x = w
48- let y = x._1
49- let z = x._2
50- makeString(["%s%s%s", "inList", y, z], a)
48+func w (x) = {
49+ let y = x
50+ let z = y._1
51+ let A = y._2
52+ makeString(["%s%s%s", "inList", z, A], a)
5153 }
5254
5355
54-func A (B,t) = makeString(["%s%s%d", "used", toString(B), toString(t)], a)
56+func B (C,u) = makeString(["%s%s%d", "used", toString(C), toString(u)], a)
5557
5658
57-func C (w,B,t) = {
58- let D = w
59- let y = D._1
60- let z = D._2
61- makeString(["%s%s%s%s%d", "vote", y, z, toString(B), toString(t)], a)
59+func D (x,C,u) = {
60+ let E = x
61+ let z = E._1
62+ let A = E._2
63+ makeString(["%s%s%s%s%d", "vote", z, A, toString(C), toString(u)], a)
6264 }
6365
6466
65-func E (w,t) = {
66- let F = w
67- let y = F._1
68- let z = F._2
69- makeString(["%s%s%s%d", "votingResult", y, z, toString(t)], a)
67+func F (x,u) = {
68+ let G = x
69+ let z = G._1
70+ let A = G._2
71+ makeString(["%s%s%s%d", "votingResult", z, A, toString(u)], a)
7072 }
7173
7274
73-func G (w,t) = {
74- let H = w
75- let y = H._1
76- let z = H._2
77- makeString(["%s%s%s%d", "poolShare", y, z, toString(t)], a)
75+func H (x,u) = {
76+ let I = x
77+ let z = I._1
78+ let A = I._2
79+ makeString(["%s%s%s%d", "poolShare", z, A, toString(u)], a)
7880 }
7981
8082
81-func I (t) = makeString(["%s%d", "totalVotes", toString(t)], a)
83+func J (u) = makeString(["%s%d", "totalVotes", toString(u)], a)
8284
8385
84-func J (B,K,L) = {
85- let M = makeString(["mandatory ", toString(B), ".", K, " is not defined"], "")
86+func K (C,L,M) = {
87+ let N = makeString(["mandatory ", toString(C), ".", L, " is not defined"], "")
8688 valueOrErrorMessage({
87- let N = L
88- if ($isInstanceOf(N, "String"))
89+ let O = M
90+ if ($isInstanceOf(O, "String"))
8991 then {
90- let O = N
91- getString(B, K)
92+ let P = O
93+ getString(C, L)
9294 }
93- else if ($isInstanceOf(N, "Int"))
95+ else if ($isInstanceOf(O, "Int"))
9496 then {
95- let P = N
96- getInteger(B, K)
97+ let Q = O
98+ getInteger(C, L)
9799 }
98100 else throw("invalid entry type")
99- }, M)
101+ }, N)
100102 }
101103
102104
103-func Q (B,K) = {
104- let R = J(B, K, "")
105- if ($isInstanceOf(R, "String"))
106- then R
107- else throw(($getType(R) + " couldn't be cast to String"))
105+func R (C,L) = {
106+ let S = K(C, L, "")
107+ if ($isInstanceOf(S, "String"))
108+ then S
109+ else throw(($getType(S) + " couldn't be cast to String"))
108110 }
109111
110112
111-func S (B,K) = {
112- let R = J(B, K, 0)
113- if ($isInstanceOf(R, "Int"))
114- then R
115- else throw(($getType(R) + " couldn't be cast to Int"))
113+func T (C,L) = {
114+ let S = K(C, L, 0)
115+ if ($isInstanceOf(S, "Int"))
116+ then S
117+ else throw(($getType(S) + " couldn't be cast to Int"))
116118 }
117119
118120
119-func T (w) = ((w._1 + a) + w._2)
121+func U (x) = ((x._1 + a) + x._2)
120122
121123
122-func U (O) = {
123- let V = split(O, a)
124- if ((size(V) == 2))
125- then $Tuple2(V[0], V[1])
124+func V (P) = {
125+ let W = split(P, a)
126+ if ((size(W) == 2))
127+ then $Tuple2(W[0], W[1])
126128 else throw("invalid pool string")
127129 }
128130
129131
130-func W (y,z) = {
131- func X (Y) = ("%s%s%s__mappings__baseAsset2internalId__" + Y)
132+func X (z,A) = {
133+ func Y (Z) = ("%s%s%s__mappings__baseAsset2internalId__" + Z)
132134
133- func Z (aa,ab) = (((("%d%d%s%s__" + toString(aa)) + "__") + toString(ab)) + "__mappings__poolAssets2PoolContract")
135+ func aa (ab,ac) = (((("%d%d%s%s__" + toString(ab)) + "__") + toString(ac)) + "__mappings__poolAssets2PoolContract")
134136
135- func ac (ad) = (("%s%s%s__" + ad) + "__mappings__poolContract2LpAsset")
137+ func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
136138
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
139+ let af = addressFromStringValue(R(this, j))
140+ let ag = T(af, Y(z))
141+ let ah = T(af, Y(A))
142+ let ae = R(af, aa(ag, ah))
143+ let ai = R(af, ad(ae))
144+ ai
143145 }
144146
145147
146-func ai (w) = {
147- let aj = w
148- let y = aj._1
149- let z = aj._2
150- let ae = addressFromStringValue(Q(this, j))
151- let R = invoke(ae, "checkWxEmissionPoolLabel", [y, z], nil)
152- if ($isInstanceOf(R, "Boolean"))
153- then R
154- else throw(($getType(R) + " couldn't be cast to Boolean"))
148+func aj (x) = {
149+ let ak = x
150+ let z = ak._1
151+ let A = ak._2
152+ let af = addressFromStringValue(R(this, j))
153+ let S = invoke(af, "checkWxEmissionPoolLabel", [z, A], nil)
154+ if ($isInstanceOf(S, "Boolean"))
155+ then S
156+ else throw(($getType(S) + " couldn't be cast to Boolean"))
155157 }
156158
157159
158-let ak = "pools"
160+let al = "pools"
159161
160-func al (w) = {
161- let am = w
162- let y = am._1
163- let z = am._2
164- makeString(["votes", y, z], a)
162+func am (x) = {
163+ let an = x
164+ let z = an._1
165+ let A = an._2
166+ makeString(["votes", z, A], a)
165167 }
166168
167169
168-func an (ao) = {
169- let ap = if ((ao == ak))
170+func ao (ap) = {
171+ let aq = if ((ap == al))
170172 then "%s%s"
171173 else "%s%s%s%s"
172- makeString([ap, ao, "head"], a)
174+ makeString([aq, ap, "head"], a)
173175 }
174176
175177
176-func aq (ao) = {
177- let ap = if ((ao == ak))
178+func ar (ap) = {
179+ let aq = if ((ap == al))
178180 then "%s%s"
179181 else "%s%s%s%s"
180- makeString([ap, ao, "size"], a)
182+ makeString([aq, ap, "size"], a)
181183 }
182184
183185
184-func ar (ao,as) = {
185- let ap = if ((ao == ak))
186+func as (ap,at) = {
187+ let aq = if ((ap == al))
186188 then "%s%s%s%s"
187189 else "%s%s%s%s%s"
188- makeString([ap, ao, as, "prev"], a)
190+ makeString([aq, ap, at, "prev"], a)
189191 }
190192
191193
192-func at (ao,as) = {
193- let ap = if ((ao == ak))
194+func au (ap,at) = {
195+ let aq = if ((ap == al))
194196 then "%s%s%s%s"
195197 else "%s%s%s%s%s"
196- makeString([ap, ao, as, "next"], a)
198+ makeString([aq, ap, at, "next"], a)
197199 }
198200
199201
200-func au (ao,as) = {
201- let av = getString(this, an(ao))
202- let aw = getString(this, ar(ao, as))
203- let ax = getString(this, at(ao, as))
204- if (if ((as == valueOrElse(av, "")))
202+func av (ap,at) = {
203+ let aw = getString(this, ao(ap))
204+ let ax = getString(this, as(ap, at))
205+ let ay = getString(this, au(ap, at))
206+ if (if ((at == valueOrElse(aw, "")))
205207 then true
206- else (aw != unit))
208+ else (ax != unit))
207209 then true
208- else (ax != unit)
210+ else (ay != unit)
209211 }
210212
211213
212-func ay (ao,as) = {
213- let av = getString(this, an(ao))
214- let az = valueOrElse(getInteger(this, aq(ao)), 0)
215- let aA = if (!(au(ao, as)))
214+func az (ap,at) = {
215+ let aw = getString(this, ao(ap))
216+ let aA = valueOrElse(getInteger(this, ar(ap)), 0)
217+ let aB = if (!(av(ap, at)))
216218 then true
217219 else throw("Node exists")
218- if ((aA == aA))
219- then (([IntegerEntry(aq(ao), (az + 1))] ++ (if ((av != unit))
220- then [StringEntry(at(ao, as), value(av)), StringEntry(ar(ao, value(av)), as)]
221- else nil)) ++ [StringEntry(an(ao), as)])
220+ if ((aB == aB))
221+ then (([IntegerEntry(ar(ap), (aA + 1))] ++ (if ((aw != unit))
222+ then [StringEntry(au(ap, at), value(aw)), StringEntry(as(ap, value(aw)), at)]
223+ else nil)) ++ [StringEntry(ao(ap), at)])
222224 else throw("Strict value is not equal to itself.")
223225 }
224226
225227
226-func aB (ao,as) = {
227- let av = getString(this, an(ao))
228- let az = valueOrElse(getInteger(this, aq(ao)), 0)
229- let aw = getString(this, ar(ao, as))
230- let ax = getString(this, at(ao, as))
231- ([IntegerEntry(aq(ao), (az - 1))] ++ (if (if ((aw != unit))
232- then (ax != unit)
228+func aC (ap,at) = {
229+ let aw = getString(this, ao(ap))
230+ let aA = valueOrElse(getInteger(this, ar(ap)), 0)
231+ let ax = getString(this, as(ap, at))
232+ let ay = getString(this, au(ap, at))
233+ ([IntegerEntry(ar(ap), (aA - 1))] ++ (if (if ((ax != unit))
234+ then (ay != unit)
233235 else false)
234- then [StringEntry(at(ao, value(aw)), value(ax)), StringEntry(ar(ao, value(ax)), value(aw)), DeleteEntry(ar(ao, as)), DeleteEntry(at(ao, as))]
235- else if ((ax != unit))
236- then [StringEntry(an(ao), value(ax)), DeleteEntry(at(ao, as)), DeleteEntry(ar(ao, value(ax)))]
237- else if ((aw != unit))
238- then [DeleteEntry(ar(ao, as)), DeleteEntry(at(ao, value(aw)))]
239- else if ((as == valueOrElse(av, "")))
240- then [DeleteEntry(an(ao))]
241- else throw(((("invalid node: " + ao) + ".") + as))))
236+ then [StringEntry(au(ap, value(ax)), value(ay)), StringEntry(as(ap, value(ay)), value(ax)), DeleteEntry(as(ap, at)), DeleteEntry(au(ap, at))]
237+ else if ((ay != unit))
238+ then [StringEntry(ao(ap), value(ay)), DeleteEntry(au(ap, at)), DeleteEntry(as(ap, value(ay)))]
239+ else if ((ax != unit))
240+ then [DeleteEntry(as(ap, at)), DeleteEntry(au(ap, value(ax)))]
241+ else if ((at == valueOrElse(aw, "")))
242+ then [DeleteEntry(ao(ap))]
243+ else throw(((("invalid node: " + ap) + ".") + at))))
242244 }
243245
244246
245-func aC () = "%s__managerPublicKey"
247+func aD () = "%s__managerPublicKey"
246248
247249
248-func aD () = "%s__pendingManagerPublicKey"
250+func aE () = "%s__pendingManagerPublicKey"
249251
250252
251-func aE () = {
252- let N = getString(aC())
253- if ($isInstanceOf(N, "String"))
253+func aF () = {
254+ let O = getString(aD())
255+ if ($isInstanceOf(O, "String"))
254256 then {
255- let aF = N
256- fromBase58String(aF)
257+ let aG = O
258+ fromBase58String(aG)
257259 }
258- else if ($isInstanceOf(N, "Unit"))
260+ else if ($isInstanceOf(O, "Unit"))
259261 then unit
260262 else throw("Match error")
261263 }
262264
263265
264-func aG () = {
265- let N = getString(aD())
266- if ($isInstanceOf(N, "String"))
266+func aH () = {
267+ let O = getString(aE())
268+ if ($isInstanceOf(O, "String"))
267269 then {
268- let aF = N
269- fromBase58String(aF)
270+ let aG = O
271+ fromBase58String(aG)
270272 }
271- else if ($isInstanceOf(N, "Unit"))
273+ else if ($isInstanceOf(O, "Unit"))
272274 then unit
273275 else throw("Match error")
274276 }
275277
276278
277-let aH = throw("Permission denied")
279+let aI = throw("Permission denied")
278280
279-func aI (aJ) = if ((aJ.caller == this))
281+func aJ (aK) = if ((aK.caller == this))
280282 then true
281- else aH
283+ else aI
282284
283285
284-func aK (aJ) = {
285- let N = aE()
286- if ($isInstanceOf(N, "ByteVector"))
286+func aL (aK) = {
287+ let O = aF()
288+ if ($isInstanceOf(O, "ByteVector"))
287289 then {
288- let aL = N
289- if ((aJ.callerPublicKey == aL))
290+ let aM = O
291+ if ((aK.callerPublicKey == aM))
290292 then true
291- else aH
293+ else aI
292294 }
293- else if ($isInstanceOf(N, "Unit"))
294- then aI(aJ)
295+ else if ($isInstanceOf(O, "Unit"))
296+ then aJ(aK)
295297 else throw("Match error")
296298 }
297299
298300
299-@Callable(aJ)
300-func setManager (aM) = {
301- let aN = aK(aJ)
302- if ((aN == aN))
301+@Callable(aK)
302+func setManager (aN) = {
303+ let aO = aL(aK)
304+ if ((aO == aO))
303305 then {
304- let aO = fromBase58String(aM)
305- if ((aO == aO))
306- then [StringEntry(aD(), aM)]
306+ let aP = fromBase58String(aN)
307+ if ((aP == aP))
308+ then [StringEntry(aE(), aN)]
307309 else throw("Strict value is not equal to itself.")
308310 }
309311 else throw("Strict value is not equal to itself.")
310312 }
311313
312314
313315
314-@Callable(aJ)
316+@Callable(aK)
315317 func confirmManager () = {
316- let aP = aG()
317- let aQ = if (isDefined(aP))
318+ let aQ = aH()
319+ let aR = if (isDefined(aQ))
318320 then true
319321 else throw("No pending manager")
320- if ((aQ == aQ))
322+ if ((aR == aR))
321323 then {
322- let aR = if ((aJ.callerPublicKey == value(aP)))
324+ let aS = if ((aK.callerPublicKey == value(aQ)))
323325 then true
324326 else throw("You are not pending manager")
325- if ((aR == aR))
326- then [StringEntry(aC(), toBase58String(value(aP))), DeleteEntry(aD())]
327+ if ((aS == aS))
328+ then [StringEntry(aD(), toBase58String(value(aQ))), DeleteEntry(aE())]
327329 else throw("Strict value is not equal to itself.")
328330 }
329331 else throw("Strict value is not equal to itself.")
330332 }
331333
332334
333335
334-@Callable(aJ)
335-func getUserGwxAmountAtHeight (aS,aT) = {
336- let aU = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
336+@Callable(aK)
337+func getUserGwxAmountAtHeight (aT,aU) = {
338+ let aV = valueOrErrorMessage(addressFromString(R(this, k)), "invalid boosting contract address")
337339 $Tuple2(nil, {
338- let R = invoke(aU, "getUserGwxAmountAtHeightREADONLY", [aS, aT], nil)
339- if ($isInstanceOf(R, "Int"))
340- then R
341- else throw(($getType(R) + " couldn't be cast to Int"))
340+ let S = invoke(aV, "getUserGwxAmountAtHeightREADONLY", [aT, aU], nil)
341+ if ($isInstanceOf(S, "Int"))
342+ then S
343+ else throw(($getType(S) + " couldn't be cast to Int"))
342344 })
343345 }
344346
345347
346348
347-@Callable(aJ)
348-func constructor (ae,aV,aW,aX,aY) = {
349- let aZ = [aK(aJ), if ((addressFromString(ae) != unit))
349+@Callable(aK)
350+func constructor (af,aW,aX,aY,aZ) = {
351+ let ba = [aL(aK), if ((addressFromString(af) != unit))
350352 then true
351- else "invalid factory contract address", if ((addressFromString(aV) != unit))
353+ else "invalid factory contract address", if ((addressFromString(aW) != unit))
352354 then true
353- else "invalid voting emission candidate contract address", if ((addressFromString(aW) != unit))
355+ else "invalid voting emission candidate contract address", if ((addressFromString(aX) != unit))
354356 then true
355- else "invalid boosting contract address", if ((addressFromString(aX) != unit))
357+ else "invalid boosting contract address", if ((addressFromString(aY) != unit))
356358 then true
357- else "invalid staking contract address", if ((aY > 0))
359+ else "invalid staking contract address", if ((aZ > 0))
358360 then true
359361 else throw("invalid epoch length")]
360- if ((aZ == aZ))
361- then $Tuple2([StringEntry(j, ae), StringEntry(i, aV), StringEntry(k, aW), StringEntry(l, aX), IntegerEntry(f, aY)], unit)
362+ if ((ba == ba))
363+ then $Tuple2([StringEntry(j, af), StringEntry(i, aW), StringEntry(k, aX), StringEntry(l, aY), IntegerEntry(f, aZ)], unit)
362364 else throw("Strict value is not equal to itself.")
363365 }
364366
365367
366368
367-@Callable(aJ)
368-func create (y,z) = {
369- let aZ = [if ((toBase58String(aJ.caller.bytes) == valueOrElse(getString(this, i), "")))
369+@Callable(aK)
370+func create (z,A) = {
371+ let ba = [if ((toBase58String(aK.caller.bytes) == valueOrElse(getString(this, i), "")))
370372 then true
371- else aK(aJ)]
372- if ((aZ == aZ))
373+ else aL(aK)]
374+ if ((ba == ba))
373375 then {
374- let w = $Tuple2(y, z)
375- let ba = ([BooleanEntry(v(w), true)] ++ ay(ak, T(w)))
376- let bb = (getInteger(this, g) == unit)
377- let bc = if (bb)
376+ let x = $Tuple2(z, A)
377+ let bb = ([BooleanEntry(w(x), true)] ++ az(al, U(x)))
378+ let bc = (getInteger(this, g) == unit)
379+ let bd = if (bc)
378380 then {
379- let t = 0
380-[IntegerEntry(g, t), IntegerEntry(s(t), height), IntegerEntry(p, height), IntegerEntry(q, t), IntegerEntry(r, height)]
381+ let u = 0
382+[IntegerEntry(g, u), IntegerEntry(t(u), height), IntegerEntry(p, height), IntegerEntry(q, u), IntegerEntry(r, height)]
381383 }
382384 else nil
383- $Tuple2((ba ++ bc), unit)
385+ $Tuple2((bb ++ bd), unit)
384386 }
385387 else throw("Strict value is not equal to itself.")
386388 }
387389
388390
389391
390-@Callable(aJ)
391-func vote (y,z,bd) = {
392- let w = $Tuple2(y, z)
393- let t = valueOrElse(getInteger(this, g), 0)
394- let be = S(this, s(t))
395- let aY = S(this, f)
396- let bf = (be + aY)
397- let bg = getInteger(this, m)
398- let bh = valueOrElse(getInteger(this, A(aJ.caller, t)), 0)
399- let bi = valueOrElse(getInteger(this, C(w, aJ.caller, t)), 0)
400- let bj = valueOrElse(getInteger(this, E(w, t)), 0)
401- let bk = valueOrElse(getInteger(this, I(t)), 0)
402- let bl = {
403- let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aJ.caller.bytes), bf], nil)
404- if ($isInstanceOf(R, "Int"))
405- then R
406- else throw(($getType(R) + " couldn't be cast to Int"))
392+@Callable(aK)
393+func vote (z,A,be) = {
394+ let x = $Tuple2(z, A)
395+ let u = valueOrElse(getInteger(this, g), 0)
396+ let bf = T(this, t(u))
397+ let aZ = T(this, f)
398+ let bg = (bf + aZ)
399+ let bh = getInteger(this, m)
400+ let bi = valueOrElse(getInteger(this, B(aK.caller, u)), 0)
401+ let bj = valueOrElse(getInteger(this, D(x, aK.caller, u)), 0)
402+ let bk = valueOrElse(getInteger(this, F(x, u)), 0)
403+ let bl = valueOrElse(getInteger(this, J(u)), 0)
404+ let bm = {
405+ let S = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aK.caller.bytes), bg], nil)
406+ if ($isInstanceOf(S, "Int"))
407+ then S
408+ else throw(($getType(S) + " couldn't be cast to Int"))
407409 }
408- let bm = (bl - bh)
409- let bn = (bi + bd)
410- let bo = ai(w)
411- let aZ = [if ((getBoolean(v(w)) != unit))
410+ let bn = (bm - bi)
411+ let bo = (bj + be)
412+ let bp = aj(x)
413+ let ba = [if ((getBoolean(w(x)) != unit))
412414 then true
413- else throw("invalid assets"), if ((bf > height))
415+ else throw("invalid assets"), if ((bg > height))
414416 then true
415- else throw("invalid height"), if ((bg == unit))
417+ else throw("invalid height"), if ((bh == unit))
416418 then true
417- else throw("finalization in progress"), if ((bl > 0))
419+ else throw("finalization in progress"), if ((bm > 0))
418420 then true
419- else throw("you do not have gWX"), if (if ((bd > 0))
420- then (bm >= bd)
421+ else throw("you do not have gWX"), if (if ((be > 0))
422+ then (bn >= be)
421423 else false)
422424 then true
423- else throw("invalid amount"), if (bo)
425+ else throw("invalid amount"), if (bp)
424426 then true
425427 else throw("pool hasn't WX_EMISSION label")]
426- if ((aZ == aZ))
428+ if ((ba == ba))
427429 then {
428- let bp = al(w)
429- let bq = toString(aJ.caller)
430- let br = if (au(bp, bq))
430+ let bq = am(x)
431+ let br = toString(aK.caller)
432+ let bs = if (av(bq, br))
431433 then nil
432- else ay(bp, bq)
433- $Tuple2(([IntegerEntry(A(aJ.caller, t), (bh + bd)), IntegerEntry(C(w, aJ.caller, t), bn), IntegerEntry(E(w, t), (bj + bd)), IntegerEntry(I(t), (bk + bd))] ++ br), unit)
434+ else az(bq, br)
435+ $Tuple2(([IntegerEntry(B(aK.caller, u), (bi + be)), IntegerEntry(D(x, aK.caller, u), bo), IntegerEntry(F(x, u), (bk + be)), IntegerEntry(J(u), (bl + be))] ++ bs), unit)
434436 }
435437 else throw("Strict value is not equal to itself.")
436438 }
437439
438440
439441
440-@Callable(aJ)
441-func cancelVote (y,z) = {
442- let w = $Tuple2(y, z)
443- let t = valueOrElse(getInteger(this, g), 0)
444- let be = S(this, s(t))
445- let aY = S(this, f)
446- let bf = (be + aY)
447- let bg = getInteger(this, m)
448- let bh = valueOrElse(getInteger(this, A(aJ.caller, t)), 0)
449- let bi = valueOrElse(getInteger(this, C(w, aJ.caller, t)), 0)
450- let bj = valueOrElse(getInteger(this, E(w, t)), 0)
451- let bk = valueOrElse(getInteger(this, I(t)), 0)
452- let aZ = [if ((getBoolean(v(w)) != unit))
442+@Callable(aK)
443+func cancelVote (z,A) = {
444+ let x = $Tuple2(z, A)
445+ let u = valueOrElse(getInteger(this, g), 0)
446+ let bf = T(this, t(u))
447+ let aZ = T(this, f)
448+ let bg = (bf + aZ)
449+ let bh = getInteger(this, m)
450+ let bi = valueOrElse(getInteger(this, B(aK.caller, u)), 0)
451+ let bj = valueOrElse(getInteger(this, D(x, aK.caller, u)), 0)
452+ let bk = valueOrElse(getInteger(this, F(x, u)), 0)
453+ let bl = valueOrElse(getInteger(this, J(u)), 0)
454+ let ba = [if ((getBoolean(w(x)) != unit))
453455 then true
454- else throw("invalid assets"), if ((bf > height))
456+ else throw("invalid assets"), if ((bg > height))
455457 then true
456- else throw("invalid height"), if ((bg == unit))
458+ else throw("invalid height"), if ((bh == unit))
457459 then true
458- else throw("finalization in progress"), if ((bi > 0))
460+ else throw("finalization in progress"), if ((bj > 0))
459461 then true
460462 else throw("no vote")]
461- if ((aZ == aZ))
463+ if ((ba == ba))
462464 then {
463- let bp = al(w)
464- let bq = toString(aJ.caller)
465- $Tuple2(([IntegerEntry(A(aJ.caller, t), max([(bh - bi), 0])), DeleteEntry(C(w, aJ.caller, t)), IntegerEntry(E(w, t), (bj - bi)), IntegerEntry(I(t), (bk - bi))] ++ aB(bp, bq)), unit)
465+ let bq = am(x)
466+ let br = toString(aK.caller)
467+ $Tuple2(([IntegerEntry(B(aK.caller, u), max([(bi - bj), 0])), DeleteEntry(D(x, aK.caller, u)), IntegerEntry(F(x, u), (bk - bj)), IntegerEntry(J(u), (bl - bj))] ++ aC(bq, br)), unit)
466468 }
467469 else throw("Strict value is not equal to itself.")
468470 }
469471
470472
471473
472-@Callable(aJ)
473-func setEpochLength (bs) = {
474- let aZ = [aK(aJ), if ((bs > 0))
474+@Callable(aK)
475+func setEpochLength (bt) = {
476+ let ba = [aL(aK), if ((bt > 0))
475477 then true
476478 else throw("invalid epoch length")]
477- if ((aZ == aZ))
478- then $Tuple2([IntegerEntry(f, bs)], unit)
479+ if ((ba == ba))
480+ then $Tuple2([IntegerEntry(f, bt)], unit)
479481 else throw("Strict value is not equal to itself.")
480482 }
481483
482484
483485
484-@Callable(aJ)
485-func setMaxDepth (bt) = {
486- let aZ = [aK(aJ), if ((bt > 0))
486+@Callable(aK)
487+func setMaxDepth (bu) = {
488+ let ba = [aL(aK), if ((bu > 0))
487489 then true
488490 else throw("invalid max depth")]
489- if ((aZ == aZ))
490- then $Tuple2([IntegerEntry(h, bt)], unit)
491+ if ((ba == ba))
492+ then $Tuple2([IntegerEntry(h, bu)], unit)
491493 else throw("Strict value is not equal to itself.")
492494 }
493495
494496
495497
496-@Callable(aJ)
497-func processVoteINTERNAL (bu,bq) = {
498- let aN = aI(aJ)
499- if ((aN == aN))
498+@Callable(aK)
499+func processVoteINTERNAL (bv,br) = {
500+ let aO = aJ(aK)
501+ if ((aO == aO))
500502 then {
501- let aS = valueOrErrorMessage(addressFromString(bq), ("processVoteINTERNAL: invalid user address " + bq))
502- let t = S(this, g)
503- let bv = (t - 1)
504- let aY = S(this, f)
505- let be = S(this, s(t))
506- let bf = (be + aY)
507- let bw = S(this, s(bv))
508- let bx = (bw + aY)
509- let by = if ((bv >= 0))
503+ let aT = valueOrErrorMessage(addressFromString(br), ("processVoteINTERNAL: invalid user address " + br))
504+ let u = T(this, g)
505+ let bw = (u - 1)
506+ let aZ = T(this, f)
507+ let bf = T(this, t(u))
508+ let bg = (bf + aZ)
509+ let bx = T(this, t(bw))
510+ let by = (bx + aZ)
511+ let bz = if ((bw >= 0))
510512 then true
511513 else throw("processVoteINTERNAL: invalid previous epoch")
512- if ((by == by))
514+ if ((bz == bz))
513515 then {
514- let w = U(bu)
515- let bz = w
516- let y = bz._1
517- let z = bz._2
518- let bo = ai(w)
519- let bl = {
520- let R = invoke(this, "getUserGwxAmountAtHeight", [bq, bf], nil)
521- if ($isInstanceOf(R, "Int"))
522- then R
523- else throw(($getType(R) + " couldn't be cast to Int"))
516+ let x = V(bv)
517+ let bA = x
518+ let z = bA._1
519+ let A = bA._2
520+ let bp = aj(x)
521+ let bm = {
522+ let S = invoke(this, "getUserGwxAmountAtHeight", [br, bg], nil)
523+ if ($isInstanceOf(S, "Int"))
524+ then S
525+ else throw(($getType(S) + " couldn't be cast to Int"))
524526 }
525- let bA = {
526- let R = invoke(this, "getUserGwxAmountAtHeight", [bq, bx], nil)
527- if ($isInstanceOf(R, "Int"))
528- then R
529- else throw(($getType(R) + " couldn't be cast to Int"))
527+ let bB = {
528+ let S = invoke(this, "getUserGwxAmountAtHeight", [br, by], nil)
529+ if ($isInstanceOf(S, "Int"))
530+ then S
531+ else throw(($getType(S) + " couldn't be cast to Int"))
530532 }
531- let bk = valueOrElse(getInteger(I(t)), 0)
532- let bB = valueOrElse(getInteger(E(w, t)), 0)
533- let bC = valueOrErrorMessage(getInteger(C(w, aS, bv)), (((("processVoteINTERNAL " + bu) + " ") + bq) + ": no previous vote"))
534- let bh = valueOrElse(getInteger(this, A(aS, t)), 0)
535- let bn = if ((bA > 0))
536- then fraction(bC, bl, bA)
533+ let bl = valueOrElse(getInteger(J(u)), 0)
534+ let bC = valueOrElse(getInteger(F(x, u)), 0)
535+ let bD = valueOrErrorMessage(getInteger(D(x, aT, bw)), (((("processVoteINTERNAL " + bv) + " ") + br) + ": no previous vote"))
536+ let bi = valueOrElse(getInteger(this, B(aT, u)), 0)
537+ let bo = if ((bB > 0))
538+ then fraction(bD, bm, bB)
537539 else 0
538- let bD = if (if ((bn > 0))
539- then bo
540+ let bE = if (if ((bo > 0))
541+ then bp
540542 else false)
541- then [IntegerEntry(C(w, aS, t), bn), IntegerEntry(I(t), (bk + bn)), IntegerEntry(E(w, t), (bB + bn)), IntegerEntry(A(aS, t), (bh + bn))]
542- else aB(al(w), bq)
543- $Tuple2(bD, unit)
543+ then [IntegerEntry(D(x, aT, u), bo), IntegerEntry(J(u), (bl + bo)), IntegerEntry(F(x, u), (bC + bo)), IntegerEntry(B(aT, u), (bi + bo))]
544+ else aC(am(x), br)
545+ $Tuple2(bE, unit)
544546 }
545547 else throw("Strict value is not equal to itself.")
546548 }
547549 else throw("Strict value is not equal to itself.")
548550 }
549551
550552
551553
552-@Callable(aJ)
553-func processPoolINTERNAL (bu) = {
554- let aN = aI(aJ)
555- if ((aN == aN))
554+@Callable(aK)
555+func processPoolINTERNAL (bv,bF) = {
556+ let aO = aJ(aK)
557+ if ((aO == aO))
556558 then {
557- let bE = (S(this, g) - 1)
558- let by = if ((bE >= 0))
559+ let bG = {
560+ let bH = T(this, g)
561+ if (bF)
562+ then bH
563+ else (bH - 1)
564+ }
565+ let bz = if ((bG >= 0))
559566 then true
560567 else throw("processPoolINTERNAL: invalid target epoch")
561- if ((by == by))
568+ if ((bz == bz))
562569 then {
563- let w = U(bu)
564- let bF = w
565- let y = bF._1
566- let z = bF._2
567- let aX = addressFromStringValue(Q(this, l))
568- let ae = addressFromStringValue(Q(this, j))
569- let ah = W(y, z)
570- let bG = {
571- let R = invoke(aX, "usersListTraversal", [ah], nil)
572- if ($isInstanceOf(R, "Boolean"))
573- then R
574- else throw(($getType(R) + " couldn't be cast to Boolean"))
570+ let x = V(bv)
571+ let bI = x
572+ let z = bI._1
573+ let A = bI._2
574+ let aY = addressFromStringValue(R(this, l))
575+ let af = addressFromStringValue(R(this, j))
576+ let ai = X(z, A)
577+ let bJ = {
578+ let S = invoke(aY, "usersListTraversal", [ai], nil)
579+ if ($isInstanceOf(S, "Boolean"))
580+ then S
581+ else throw(($getType(S) + " couldn't be cast to Boolean"))
575582 }
576- if ((bG == bG))
577- then if (bG)
583+ if ((bJ == bJ))
584+ then if (bJ)
578585 then $Tuple2(nil, true)
579586 else {
580- let bo = ai(w)
581- let bk = valueOrElse(getInteger(this, I(bE)), 0)
582- let bB = valueOrElse(getInteger(this, E(w, bE)), 0)
583- let bH = if (if ((bk == 0))
587+ let bp = aj(x)
588+ let bl = valueOrElse(getInteger(this, J(bG)), 0)
589+ let bC = valueOrElse(getInteger(this, F(x, bG)), 0)
590+ let bK = if (if ((bl == 0))
584591 then true
585- else !(bo))
592+ else !(bp))
586593 then 0
587- else fraction(bB, b, bk)
588- let bI = invoke(ae, "modifyWeight", [ah, bH], nil)
589- if ((bI == bI))
594+ else fraction(bC, b, bl)
595+ let bL = invoke(af, "modifyWeight", [ai, bK], nil)
596+ if ((bL == bL))
590597 then {
591- let bJ = if (bo)
598+ let bM = if (if (bp)
599+ then true
600+ else bF)
592601 then nil
593- else ([DeleteEntry(v(w))] ++ aB(ak, bu))
594- $Tuple2(([IntegerEntry(G(w, bE), bH)] ++ bJ), false)
602+ else ([DeleteEntry(w(x))] ++ aC(al, bv))
603+ $Tuple2(([IntegerEntry(H(x, bG), bK)] ++ bM), false)
595604 }
596605 else throw("Strict value is not equal to itself.")
597606 }
598607 else throw("Strict value is not equal to itself.")
599608 }
600609 else throw("Strict value is not equal to itself.")
601610 }
602611 else throw("Strict value is not equal to itself.")
603612 }
604613
605614
606615
607-@Callable(aJ)
616+@Callable(aK)
608617 func finalizeHelper () = {
609- let t = valueOrElse(getInteger(this, g), 0)
610- let bK = (t - 1)
611- let be = S(this, s(t))
612- let aY = S(this, f)
613- let bf = (be + aY)
614- let bg = getInteger(this, m)
615- if (if ((height >= bf))
616- then (bg == unit)
618+ let bF = valueOrElse(getBoolean(s), false)
619+ let u = valueOrElse(getInteger(this, g), 0)
620+ let bN = (u - 1)
621+ let bf = T(this, t(u))
622+ let aZ = T(this, f)
623+ let bg = (bf + aZ)
624+ let bh = getInteger(this, m)
625+ if (if (if ((height >= bg))
626+ then (bh == unit)
627+ else false)
628+ then !(bF)
617629 else false)
618630 then {
619- let bL = (t + 1)
620- $Tuple2([IntegerEntry(s(bL), height), IntegerEntry(p, height), IntegerEntry(g, bL), IntegerEntry(m, d)], true)
631+ let bO = (u + 1)
632+ $Tuple2([IntegerEntry(t(bO), height), IntegerEntry(p, height), IntegerEntry(g, bO), IntegerEntry(m, d)], true)
621633 }
622- else if ((bg == unit))
623- then $Tuple2(nil, false)
624- else if ((bg == d))
625- then {
626- let bM = getString(n)
627- let bN = getString(o)
628- let N = bM
629- if ($isInstanceOf(N, "Unit"))
634+ else if (if (bF)
635+ then (bh == unit)
636+ else false)
637+ then $Tuple2([IntegerEntry(m, e)], true)
638+ else if ((bh == unit))
639+ then $Tuple2(nil, false)
640+ else if ((bh == d))
641+ then {
642+ let bP = getString(n)
643+ let bQ = getString(o)
644+ let O = bP
645+ if ($isInstanceOf(O, "Unit"))
646+ then {
647+ let bR = getString(ao(al))
648+ if ($isInstanceOf(bR, "Unit"))
649+ then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
650+ else if ($isInstanceOf(bR, "String"))
651+ then {
652+ let bS = bR
653+ $Tuple2([StringEntry(n, bS)], true)
654+ }
655+ else throw("Match error")
656+ }
657+ else if ($isInstanceOf(O, "String"))
658+ then {
659+ let bv = O
660+ let x = V(bv)
661+ let bT = {
662+ let bR = bQ
663+ if ($isInstanceOf(bR, "Unit"))
664+ then getString(ao(am(x)))
665+ else if ($isInstanceOf(bR, "String"))
666+ then {
667+ let bU = bR
668+ let bV = getString(au(am(x), bU))
669+ if ((bV == bV))
670+ then {
671+ let bW = invoke(this, "processVoteINTERNAL", [bv, bU], nil)
672+ if ((bW == bW))
673+ then bV
674+ else throw("Strict value is not equal to itself.")
675+ }
676+ else throw("Strict value is not equal to itself.")
677+ }
678+ else throw("Match error")
679+ }
680+ let bR = bT
681+ if ($isInstanceOf(bR, "Unit"))
682+ then {
683+ let bX = getString(au(al, bv))
684+ let bY = bX
685+ if ($isInstanceOf(bY, "Unit"))
686+ then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
687+ else if ($isInstanceOf(bY, "String"))
688+ then {
689+ let aG = bY
690+ $Tuple2([StringEntry(n, aG), DeleteEntry(o)], true)
691+ }
692+ else throw("Match error")
693+ }
694+ else if ($isInstanceOf(bR, "String"))
695+ then {
696+ let bZ = bR
697+ $Tuple2([StringEntry(o, bZ)], true)
698+ }
699+ else throw("Match error")
700+ }
701+ else throw("Match error")
702+ }
703+ else if ((bh == e))
630704 then {
631- let bO = getString(an(ak))
632- if ($isInstanceOf(bO, "Unit"))
633- then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
634- else if ($isInstanceOf(bO, "String"))
705+ let bP = getString(n)
706+ let O = bP
707+ if ($isInstanceOf(O, "Unit"))
708+ then {
709+ let bR = getString(ao(al))
710+ if ($isInstanceOf(bR, "Unit"))
711+ then {
712+ let bE = if (bF)
713+ then [DeleteEntry(m), DeleteEntry(s)]
714+ else [DeleteEntry(m), BooleanEntry(v(bN), true), IntegerEntry(q, u), IntegerEntry(r, bf)]
715+ $Tuple2(bE, true)
716+ }
717+ else if ($isInstanceOf(bR, "String"))
718+ then {
719+ let ca = bR
720+ $Tuple2([StringEntry(n, ca)], true)
721+ }
722+ else throw("Match error")
723+ }
724+ else if ($isInstanceOf(O, "String"))
635725 then {
636- let bP = bO
637- $Tuple2([StringEntry(n, bP)], true)
726+ let bv = O
727+ let bX = getString(au(al, bv))
728+ if ((bX == bX))
729+ then {
730+ let bJ = {
731+ let S = invoke(this, "processPoolINTERNAL", [bv, bF], nil)
732+ if ($isInstanceOf(S, "Boolean"))
733+ then S
734+ else throw(($getType(S) + " couldn't be cast to Boolean"))
735+ }
736+ if ((bJ == bJ))
737+ then if (bJ)
738+ then $Tuple2(nil, true)
739+ else {
740+ let bR = bX
741+ if ($isInstanceOf(bR, "Unit"))
742+ then {
743+ let bE = if (bF)
744+ then [DeleteEntry(m), DeleteEntry(s), DeleteEntry(n)]
745+ else [DeleteEntry(m), BooleanEntry(v(bN), true), IntegerEntry(q, u), IntegerEntry(r, bf), DeleteEntry(n)]
746+ $Tuple2(bE, true)
747+ }
748+ else if ($isInstanceOf(bR, "String"))
749+ then {
750+ let ca = bR
751+ $Tuple2([StringEntry(n, ca)], true)
752+ }
753+ else throw("Match error")
754+ }
755+ else throw("Strict value is not equal to itself.")
756+ }
757+ else throw("Strict value is not equal to itself.")
638758 }
639759 else throw("Match error")
640760 }
641- else if ($isInstanceOf(N, "String"))
642- then {
643- let bu = N
644- let w = U(bu)
645- let bQ = {
646- let bO = bN
647- if ($isInstanceOf(bO, "Unit"))
648- then getString(an(al(w)))
649- else if ($isInstanceOf(bO, "String"))
650- then {
651- let bR = bO
652- let bS = getString(at(al(w), bR))
653- if ((bS == bS))
654- then {
655- let bT = invoke(this, "processVoteINTERNAL", [bu, bR], nil)
656- if ((bT == bT))
657- then bS
658- else throw("Strict value is not equal to itself.")
659- }
660- else throw("Strict value is not equal to itself.")
661- }
662- else throw("Match error")
663- }
664- let bO = bQ
665- if ($isInstanceOf(bO, "Unit"))
666- then {
667- let bU = getString(at(ak, bu))
668- let bV = bU
669- if ($isInstanceOf(bV, "Unit"))
670- then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
671- else if ($isInstanceOf(bV, "String"))
672- then {
673- let aF = bV
674- $Tuple2([StringEntry(n, aF), DeleteEntry(o)], true)
675- }
676- else throw("Match error")
677- }
678- else if ($isInstanceOf(bO, "String"))
679- then {
680- let bW = bO
681- $Tuple2([StringEntry(o, bW)], true)
682- }
683- else throw("Match error")
684- }
685- else throw("Match error")
686- }
687- else if ((bg == e))
688- then {
689- let bM = getString(n)
690- let N = bM
691- if ($isInstanceOf(N, "Unit"))
692- then {
693- let bO = getString(an(ak))
694- if ($isInstanceOf(bO, "Unit"))
695- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bK), true), IntegerEntry(q, t), IntegerEntry(r, be)], true)
696- else if ($isInstanceOf(bO, "String"))
697- then {
698- let bX = bO
699- $Tuple2([StringEntry(n, bX)], true)
700- }
701- else throw("Match error")
702- }
703- else if ($isInstanceOf(N, "String"))
704- then {
705- let bu = N
706- let bU = getString(at(ak, bu))
707- if ((bU == bU))
708- then {
709- let bG = {
710- let R = invoke(this, "processPoolINTERNAL", [bu], nil)
711- if ($isInstanceOf(R, "Boolean"))
712- then R
713- else throw(($getType(R) + " couldn't be cast to Boolean"))
714- }
715- if ((bG == bG))
716- then if (bG)
717- then $Tuple2(nil, true)
718- else {
719- let bO = bU
720- if ($isInstanceOf(bO, "Unit"))
721- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bK), true), IntegerEntry(q, t), IntegerEntry(r, be), DeleteEntry(n)], true)
722- else if ($isInstanceOf(bO, "String"))
723- then {
724- let bX = bO
725- $Tuple2([StringEntry(n, bX)], true)
726- }
727- else throw("Match error")
728- }
729- else throw("Strict value is not equal to itself.")
730- }
731- else throw("Strict value is not equal to itself.")
732- }
733- else throw("Match error")
734- }
735- else throw("finalization is broken")
761+ else throw("finalization is broken")
736762 }
737763
738764
739765
740-@Callable(aJ)
741-func finalizeWrapper (bY) = {
742- let bZ = {
743- let R = invoke(this, "finalizeHelper", nil, nil)
744- if ($isInstanceOf(R, "Boolean"))
745- then R
746- else throw(($getType(R) + " couldn't be cast to Boolean"))
766+@Callable(aK)
767+func finalizeWrapper (cb) = {
768+ let cc = {
769+ let S = invoke(this, "finalizeHelper", nil, nil)
770+ if ($isInstanceOf(S, "Boolean"))
771+ then S
772+ else throw(($getType(S) + " couldn't be cast to Boolean"))
747773 }
748- if ((bZ == bZ))
749- then if (!(bZ))
750- then if ((bY == 0))
774+ if ((cc == cc))
775+ then if (!(cc))
776+ then if ((cb == 0))
751777 then throw("Current voting is not over yet")
752778 else $Tuple2(nil, unit)
753779 else {
754- let ca = valueOrElse(getInteger(this, h), c)
755- if ((ca > bY))
780+ let cd = valueOrElse(getInteger(this, h), c)
781+ if ((cd > cb))
756782 then {
757- let cb = invoke(this, "finalizeWrapper", [(bY + 1)], nil)
758- if ((cb == cb))
783+ let ce = invoke(this, "finalizeWrapper", [(cb + 1)], nil)
784+ if ((ce == ce))
759785 then $Tuple2(nil, unit)
760786 else throw("Strict value is not equal to itself.")
761787 }
762788 else $Tuple2(nil, unit)
763789 }
764790 else throw("Strict value is not equal to itself.")
765791 }
766792
767793
768794
769-@Callable(aJ)
795+@Callable(aK)
770796 func finalize () = {
771- let cb = invoke(this, "finalizeWrapper", [0], nil)
772- if ((cb == cb))
797+ let ce = invoke(this, "finalizeWrapper", [0], nil)
798+ if ((ce == ce))
773799 then $Tuple2(nil, unit)
774800 else throw("Strict value is not equal to itself.")
775801 }
776802
777803
778804
779-@Callable(aJ)
780-func containsNodeREADONLY (ao,as) = $Tuple2(nil, au(ao, as))
805+@Callable(aK)
806+func containsNodeREADONLY (ap,at) = $Tuple2(nil, av(ap, at))
781807
782808
783809
784-@Callable(aJ)
785-func insertNode (ao,as) = {
786- let aN = aK(aJ)
787- if ((aN == aN))
788- then $Tuple2(ay(ao, as), unit)
810+@Callable(aK)
811+func insertNode (ap,at) = {
812+ let aO = aL(aK)
813+ if ((aO == aO))
814+ then $Tuple2(az(ap, at), unit)
789815 else throw("Strict value is not equal to itself.")
790816 }
791817
792818
793819
794-@Callable(aJ)
795-func deleteNode (ao,as) = {
796- let aN = aK(aJ)
797- if ((aN == aN))
798- then $Tuple2(aB(ao, as), unit)
820+@Callable(aK)
821+func deleteNode (ap,at) = {
822+ let aO = aL(aK)
823+ if ((aO == aO))
824+ then $Tuple2(aC(ap, at), unit)
799825 else throw("Strict value is not equal to itself.")
800826 }
801827
802828
803-@Verifier(cc)
804-func cd () = {
805- let ce = {
806- let N = aE()
807- if ($isInstanceOf(N, "ByteVector"))
829+@Verifier(cf)
830+func cg () = {
831+ let ch = {
832+ let O = aF()
833+ if ($isInstanceOf(O, "ByteVector"))
808834 then {
809- let aL = N
810- aL
835+ let aM = O
836+ aM
811837 }
812- else if ($isInstanceOf(N, "Unit"))
813- then cc.senderPublicKey
838+ else if ($isInstanceOf(O, "Unit"))
839+ then cf.senderPublicKey
814840 else throw("Match error")
815841 }
816- sigVerify(cc.bodyBytes, cc.proofs[0], ce)
842+ sigVerify(cf.bodyBytes, cf.proofs[0], ch)
817843 }
818844

github/deemru/w8io/169f3d6 
295.64 ms