tx · Bjrq5ZKKTXBH7kVYjFrqip8Zue5XQsyunE7JCEV1FkxF

3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA:  -0.02500000 Waves

2023.02.10 16:52 [2443630] smart account 3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA > SELF 0.00000000 Waves

{ "type": 13, "id": "Bjrq5ZKKTXBH7kVYjFrqip8Zue5XQsyunE7JCEV1FkxF", "fee": 2500000, "feeAssetId": null, "timestamp": 1676037141470, "version": 2, "chainId": 84, "sender": "3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA", "senderPublicKey": "D46gQxzmdzdCTYRg6dMcwFoUrc6ZmxF6GKd5ZoTkvzp1", "proofs": [ "gXTDEENYyHYyEKcKVJhfqWS1jsX1ePNwMuA9JJTEup8EtdzjvNN8wFNH8KKSiFbaCFEisC4Jnq2mcLA8oBjUFP3" ], "script": "base64:BgJcCAISAwoBCBIAEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSBAoCCAQSABIDCgEBEgASBAoCCAgSBAoCCAgSBAoCCAg0AAlzZXBhcmF0b3ICAl9fAA5wb29sV2VpZ2h0TXVsdACAwtcvAA9tYXhEZXB0aERlZmF1bHQACgAWZmluYWxpemF0aW9uU3RhZ2VUb3RhbAAAABdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwABAA5rZXlFcG9jaExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFCXNlcGFyYXRvcgARa2V5RXBvY2hMZW5ndGhOZXcJALkJAgkAzAgCAgQlcyVzCQDMCAICEGVwb2NoTGVuZ3RoX19uZXcFA25pbAUJc2VwYXJhdG9yARVrZXlFcG9jaExlbmd0aEJ5RXBvY2gBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgtlcG9jaExlbmd0aAkAzAgCCQCkAwEFBWVwb2NoBQNuaWwFCXNlcGFyYXRvcgAPa2V5Q3VycmVudEVwb2NoCQC5CQIJAMwIAgICJXMJAMwIAgIMY3VycmVudEVwb2NoBQNuaWwFCXNlcGFyYXRvcgALa2V5TWF4RGVwdGgJALkJAgkAzAgCAgIlcwkAzAgCAghtYXhEZXB0aAUDbmlsBQlzZXBhcmF0b3IAImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAh92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgASa2V5RmFjdG9yeUNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgATa2V5Qm9vc3RpbmdDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yABJrZXlTdGFraW5nQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAg9zdGFraW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yABRrZXlGaW5hbGl6YXRpb25TdGFnZQkAuQkCCQDMCAICAiVzCQDMCAICEWZpbmFsaXphdGlvblN0YWdlBQNuaWwFCXNlcGFyYXRvcgALa2V5TmV4dFBvb2wJALkJAgkAzAgCAgIlcwkAzAgCAghuZXh0UG9vbAUDbmlsBQlzZXBhcmF0b3IAC2tleU5leHRVc2VyCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFVzZXIFA25pbAUJc2VwYXJhdG9yAA5rZXlTdGFydEhlaWdodAkAuQkCCQDMCAICAiVzCQDMCAICC3N0YXJ0SGVpZ2h0BQNuaWwFCXNlcGFyYXRvcgARa2V5Q3VycmVudEVwb2NoVWkJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQlzZXBhcmF0b3IAEGtleVN0YXJ0SGVpZ2h0VWkJALkJAgkAzAgCAgIlcwkAzAgCAg1zdGFydEhlaWdodFVpBQNuaWwFCXNlcGFyYXRvcgAda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQJALkJAgkAzAgCAgIlcwkAzAgCAgVmb3JjZQUDbmlsBQlzZXBhcmF0b3IBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFZXBvY2gJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQxrZXlGaW5hbGl6ZWQBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAglmaW5hbGl6ZWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBCWtleUluTGlzdAEEcG9vbAQLJHQwMTY5MzE3MzMFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAxNjkzMTczMwJfMQQMcHJpY2VBc3NldElkCAULJHQwMTY5MzE3MzMCXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFCXNlcGFyYXRvcgEHa2V5VXNlZAIHYWRkcmVzcwVlcG9jaAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR1c2VkCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCCQCkAwEFBWVwb2NoBQNuaWwFCXNlcGFyYXRvcgEHa2V5Vm90ZQMEcG9vbAdhZGRyZXNzBWVwb2NoBAskdDAyMDA3MjA0NwUEcG9vbAQNYW1vdW50QXNzZXRJZAgFCyR0MDIwMDcyMDQ3Al8xBAxwcmljZUFzc2V0SWQIBQskdDAyMDA3MjA0NwJfMgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQ1hbW91bnRBc3NldElkCQDMCAIFDHByaWNlQXNzZXRJZAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBD2tleVZvdGluZ1Jlc3VsdAIEcG9vbAVlcG9jaAQLJHQwMjIyOTIyNjkFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAyMjI5MjI2OQJfMQQMcHJpY2VBc3NldElkCAULJHQwMjIyOTIyNjkCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDGtleVBvb2xTaGFyZQIEcG9vbAVlcG9jaAQLJHQwMjQzNDI0NzQFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAyNDM0MjQ3NAJfMQQMcHJpY2VBc3NldElkCAULJHQwMjQzNDI0NzQCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAglwb29sU2hhcmUJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDWtleVRvdGFsVm90ZXMBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgp0b3RhbFZvdGVzCQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQ5nZXRWYWx1ZU9yRmFpbAMHYWRkcmVzcwNrZXkEdHlwZQQFZXJyb3IJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIACQETdmFsdWVPckVycm9yTWVzc2FnZQIEByRtYXRjaDAFBHR5cGUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQkAAgECEmludmFsaWQgZW50cnkgdHlwZQUFZXJyb3IBDGdldFN0ck9yRmFpbAIHYWRkcmVzcwNrZXkKAAFACQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkCAAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBBQFAAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcBDGdldEludE9yRmFpbAIHYWRkcmVzcwNrZXkKAAFACQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkAAAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBDHBvb2xUb1N0cmluZwEEcG9vbAkArAICCQCsAgIIBQRwb29sAl8xBQlzZXBhcmF0b3IIBQRwb29sAl8yAQxzdHJpbmdUb1Bvb2wBA3N0cgQFcGFydHMJALUJAgUDc3RyBQlzZXBhcmF0b3IDCQAAAgkAkAMBBQVwYXJ0cwACCQCUCgIJAJEDAgUFcGFydHMAAAkAkQMCBQVwYXJ0cwABCQACAQITaW52YWxpZCBwb29sIHN0cmluZwEWZ2V0THBBc3NldEJ5UG9vbEFzc2V0cwINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQKAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQxiYXNlQXNzZXRTdHIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUMYmFzZUFzc2V0U3RyCgEpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MCGGludGVybmFsQW1vdW50QXNzZXRJZFN0chdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgICX18JAKQDAQUXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHICI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0CgEfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldAETcG9vbENvbnRyYWN0QWRkcmVzcwkArAICCQCsAgICCCVzJXMlc19fBRNwb29sQ29udHJhY3RBZGRyZXNzAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAQPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwUSa2V5RmFjdG9yeUNvbnRyYWN0BBVhbW91bnRBc3NldEludGVybmFsSWQJAQxnZXRJbnRPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQUNYW1vdW50QXNzZXRJZAQUcHJpY2VBc3NldEludGVybmFsSWQJAQxnZXRJbnRPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJAR9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAQUMcHJpY2VBc3NldElkBBNwb29sQ29udHJhY3RBZGRyZXNzCQEMZ2V0U3RyT3JGYWlsAgUPZmFjdG9yeUNvbnRyYWN0CQEpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MCBRVhbW91bnRBc3NldEludGVybmFsSWQFFHByaWNlQXNzZXRJbnRlcm5hbElkBAlscEFzc2V0SWQJAQxnZXRTdHJPckZhaWwCBQ9mYWN0b3J5Q29udHJhY3QJAR9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0AQUTcG9vbENvbnRyYWN0QWRkcmVzcwUJbHBBc3NldElkARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwBBHBvb2wECyR0MDQ3MTY0NzU2BQRwb29sBA1hbW91bnRBc3NldElkCAULJHQwNDcxNjQ3NTYCXzEEDHByaWNlQXNzZXRJZAgFCyR0MDQ3MTY0NzU2Al8yBA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRJrZXlGYWN0b3J5Q29udHJhY3QKAAFACQD8BwQFD2ZhY3RvcnlDb250cmFjdAIYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQUBQAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgANcG9vbHNMaXN0TmFtZQIFcG9vbHMBEGdldFZvdGVzTGlzdE5hbWUBBHBvb2wECyR0MDUwNTc1MDk3BQRwb29sBA1hbW91bnRBc3NldElkCAULJHQwNTA1NzUwOTcCXzEEDHByaWNlQXNzZXRJZAgFCyR0MDUwNTc1MDk3Al8yCQC5CQIJAMwIAgIFdm90ZXMJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUJc2VwYXJhdG9yAQtrZXlMaXN0SGVhZAEIbGlzdE5hbWUEBG1ldGEDCQAAAgUIbGlzdE5hbWUFDXBvb2xzTGlzdE5hbWUCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUEbWV0YQkAzAgCBQhsaXN0TmFtZQkAzAgCAgRoZWFkBQNuaWwFCXNlcGFyYXRvcgELa2V5TGlzdFNpemUBCGxpc3ROYW1lBARtZXRhAwkAAAIFCGxpc3ROYW1lBQ1wb29sc0xpc3ROYW1lAgQlcyVzAgglcyVzJXMlcwkAuQkCCQDMCAIFBG1ldGEJAMwIAgUIbGlzdE5hbWUJAMwIAgIEc2l6ZQUDbmlsBQlzZXBhcmF0b3IBC2tleUxpc3RQcmV2AghsaXN0TmFtZQJpZAQEbWV0YQMJAAACBQhsaXN0TmFtZQUNcG9vbHNMaXN0TmFtZQIIJXMlcyVzJXMCCiVzJXMlcyVzJXMJALkJAgkAzAgCBQRtZXRhCQDMCAIFCGxpc3ROYW1lCQDMCAIFAmlkCQDMCAICBHByZXYFA25pbAUJc2VwYXJhdG9yAQtrZXlMaXN0TmV4dAIIbGlzdE5hbWUCaWQEBG1ldGEDCQAAAgUIbGlzdE5hbWUFDXBvb2xzTGlzdE5hbWUCCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUEbWV0YQkAzAgCBQhsaXN0TmFtZQkAzAgCBQJpZAkAzAgCAgRuZXh0BQNuaWwFCXNlcGFyYXRvcgEMY29udGFpbnNOb2RlAghsaXN0TmFtZQJpZAQKaGVhZE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQQKcHJldk9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQECm5leHRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkAwMJAAACBQJpZAkBC3ZhbHVlT3JFbHNlAgUKaGVhZE9yVW5pdAIABgkBAiE9AgUKcHJldk9yVW5pdAUEdW5pdAYJAQIhPQIFCm5leHRPclVuaXQFBHVuaXQBEWluc2VydE5vZGVBY3Rpb25zAghsaXN0TmFtZQJpZAQKaGVhZE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQQIbGlzdFNpemUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleUxpc3RTaXplAQUIbGlzdE5hbWUAAAQJY2hlY2tOb2RlAwkBASEBCQEMY29udGFpbnNOb2RlAgUIbGlzdE5hbWUFAmlkBgkAAgECC05vZGUgZXhpc3RzAwkAAAIFCWNoZWNrTm9kZQUJY2hlY2tOb2RlCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2tleUxpc3RTaXplAQUIbGlzdE5hbWUJAGQCBQhsaXN0U2l6ZQABBQNuaWwDCQECIT0CBQpoZWFkT3JVbml0BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAkBBXZhbHVlAQUKaGVhZE9yVW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQkBBXZhbHVlAQUKaGVhZE9yVW5pdAUCaWQFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBQJpZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARFkZWxldGVOb2RlQWN0aW9ucwIIbGlzdE5hbWUCaWQECmhlYWRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUECGxpc3RTaXplCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQtrZXlMaXN0U2l6ZQEFCGxpc3ROYW1lAAAECnByZXZPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3RQcmV2AgUIbGlzdE5hbWUFAmlkBApuZXh0T3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELa2V5TGlzdFNpemUBBQhsaXN0TmFtZQkAZQIFCGxpc3RTaXplAAEFA25pbAMDCQECIT0CBQpwcmV2T3JVbml0BQR1bml0CQECIT0CBQpuZXh0T3JVbml0BQR1bml0BwkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQkBBXZhbHVlAQUKcHJldk9yVW5pdAkBBXZhbHVlAQUKbmV4dE9yVW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQkBBXZhbHVlAQUKbmV4dE9yVW5pdAkBBXZhbHVlAQUKcHJldk9yVW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkBQNuaWwDCQECIT0CBQpuZXh0T3JVbml0BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lCQEFdmFsdWUBBQpuZXh0T3JVbml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lBQJpZAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQkBBXZhbHVlAQUKbmV4dE9yVW5pdAUDbmlsAwkBAiE9AgUKcHJldk9yVW5pdAUEdW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUJAQV2YWx1ZQEFCnByZXZPclVuaXQFA25pbAMJAAACBQJpZAkBC3ZhbHVlT3JFbHNlAgUKaGVhZE9yVW5pdAIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICAg5pbnZhbGlkIG5vZGU6IAUIbGlzdE5hbWUCAS4FAmlkARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFXBlcm1pc3Npb25EZW5pZWRFcnJvcgkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IRAWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAILdXNlckFkZHJlc3MMdGFyZ2V0SGVpZ2h0BBdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRNrZXlCb29zdGluZ0NvbnRyYWN0AiFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAJQKAgUDbmlsCgABQAkA/AcEBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwIgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUMdGFyZ2V0SGVpZ2h0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBaQELY29uc3RydWN0b3IFD2ZhY3RvcnlDb250cmFjdB92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0EGJvb3N0aW5nQ29udHJhY3QPc3Rha2luZ0NvbnRyYWN0C2Vwb2NoTGVuZ3RoBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBAiE9AgkApggBBQ9mYWN0b3J5Q29udHJhY3QFBHVuaXQGAiBpbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBR92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQR1bml0BgIyaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY2FuZGlkYXRlIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUQYm9vc3RpbmdDb250cmFjdAUEdW5pdAYCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQ9zdGFraW5nQ29udHJhY3QFBHVuaXQGAiBpbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkAZgIFC2Vwb2NoTGVuZ3RoAAAGCQACAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFEmtleUZhY3RvcnlDb250cmFjdAUPZmFjdG9yeUNvbnRyYWN0CQDMCAIJAQtTdHJpbmdFbnRyeQIFImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgUTa2V5Qm9vc3RpbmdDb250cmFjdAUQYm9vc3RpbmdDb250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCBRJrZXlTdGFraW5nQ29udHJhY3QFD3N0YWtpbmdDb250cmFjdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5RXBvY2hMZW5ndGgFC2Vwb2NoTGVuZ3RoBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGY3JlYXRlAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAQGY2hlY2tzCQDMCAIDCQAAAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QCAAYJAQttdXN0TWFuYWdlcgEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQEcG9vbAkAlAoCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEDWluTGlzdEFjdGlvbnMJAM4IAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCWtleUluTGlzdAEFBHBvb2wGBQNuaWwJARFpbnNlcnROb2RlQWN0aW9ucwIFDXBvb2xzTGlzdE5hbWUJAQxwb29sVG9TdHJpbmcBBQRwb29sBBhjdXJyZW50RXBvY2hJc05vdERlZmluZWQJAAACCQCaCAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAUEdW5pdAQSc3RhcnRIZWlnaHRBY3Rpb25zAwUYY3VycmVudEVwb2NoSXNOb3REZWZpbmVkBAVlcG9jaAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlDdXJyZW50RXBvY2gFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUFZXBvY2gFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5U3RhcnRIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5Q3VycmVudEVwb2NoVWkFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlTdGFydEhlaWdodFVpBQZoZWlnaHQFA25pbAUDbmlsCQCUCgIJAM4IAgUNaW5MaXN0QWN0aW9ucwUSc3RhcnRIZWlnaHRBY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBHZvdGUDDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBmFtb3VudAQEcG9vbAkAlAoCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEBWVwb2NoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAAABAtzdGFydEhlaWdodAkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQVlcG9jaAQLZXBvY2hMZW5ndGgJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ5rZXlFcG9jaExlbmd0aAQJZW5kSGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQFC2Vwb2NoTGVuZ3RoBBdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAkAmggCBQR0aGlzBRRrZXlGaW5hbGl6YXRpb25TdGFnZQQEdXNlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5VXNlZAIIBQFpBmNhbGxlcgUFZXBvY2gAAAQEdm90ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5Vm90ZQMFBHBvb2wIBQFpBmNhbGxlcgUFZXBvY2gAAAQKcG9vbFJlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAUFZXBvY2gAAAQKdG90YWxWb3RlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoAAAEE2d3eEFtb3VudEF0RW5kVG90YWwKAAFACQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgUJZW5kSGVpZ2h0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQECWF2YWlsYWJsZQkAZQIFE2d3eEFtb3VudEF0RW5kVG90YWwFBHVzZWQEB25ld1ZvdGUJAGQCBQR2b3RlBQZhbW91bnQECnd4RW1pc3Npb24JARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwBBQRwb29sBAZjaGVja3MJAMwIAgMJAQIhPQIJAKAIAQkBCWtleUluTGlzdAEFBHBvb2wFBHVuaXQGCQACAQIOaW52YWxpZCBhc3NldHMJAMwIAgMJAGYCBQllbmRIZWlnaHQFBmhlaWdodAYJAAIBAg5pbnZhbGlkIGhlaWdodAkAzAgCAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0BgkAAgECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFE2d3eEFtb3VudEF0RW5kVG90YWwAAAYJAAIBAhN5b3UgZG8gbm90IGhhdmUgZ1dYCQDMCAIDAwkAZgIFBmFtb3VudAAACQBnAgUJYXZhaWxhYmxlBQZhbW91bnQHBgkAAgECDmludmFsaWQgYW1vdW50CQDMCAIDBQp3eEVtaXNzaW9uBgkAAgECHXBvb2wgaGFzbid0IFdYX0VNSVNTSU9OIGxhYmVsBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXZvdGVzTGlzdE5hbWUJARBnZXRWb3Rlc0xpc3ROYW1lAQUEcG9vbAQOdXNlckFkZHJlc3NTdHIJAKUIAQgFAWkGY2FsbGVyBBB2b3Rlc0xpc3RBY3Rpb25zAwkBDGNvbnRhaW5zTm9kZQIFDXZvdGVzTGlzdE5hbWUFDnVzZXJBZGRyZXNzU3RyBQNuaWwJARFpbnNlcnROb2RlQWN0aW9ucwIFDXZvdGVzTGlzdE5hbWUFDnVzZXJBZGRyZXNzU3RyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBB2tleVVzZWQCCAUBaQZjYWxsZXIFBWVwb2NoCQBkAgUEdXNlZAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5Vm90ZQMFBHBvb2wIBQFpBmNhbGxlcgUFZXBvY2gFB25ld1ZvdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAkAZAIFCnBvb2xSZXN1bHQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAkAZAIFCnRvdGFsVm90ZXMFBmFtb3VudAUDbmlsBRB2b3Rlc0xpc3RBY3Rpb25zBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNhbmNlbFZvdGUCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBARwb29sCQCUCgIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAQFZXBvY2gJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoAAAEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAtlcG9jaExlbmd0aAkBDGdldEludE9yRmFpbAIFBHRoaXMFDmtleUVwb2NoTGVuZ3RoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0CQCaCAIFBHRoaXMFFGtleUZpbmFsaXphdGlvblN0YWdlBAR1c2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlVc2VkAggFAWkGY2FsbGVyBQVlcG9jaAAABAR2b3RlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlWb3RlAwUEcG9vbAgFAWkGY2FsbGVyBQVlcG9jaAAABApwb29sUmVzdWx0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAAABAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gAAAQGY2hlY2tzCQDMCAIDCQECIT0CCQCgCAEJAQlrZXlJbkxpc3QBBQRwb29sBQR1bml0BgkAAgECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUJZW5kSGVpZ2h0BQZoZWlnaHQGCQACAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAYJAAIBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQR2b3RlAAAGCQACAQIHbm8gdm90ZQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA12b3Rlc0xpc3ROYW1lCQEQZ2V0Vm90ZXNMaXN0TmFtZQEFBHBvb2wEDnVzZXJBZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlVc2VkAggFAWkGY2FsbGVyBQVlcG9jaAkAlgMBCQDMCAIJAGUCBQR1c2VkBQR2b3RlCQDMCAIAAAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlWb3RlAwUEcG9vbAgFAWkGY2FsbGVyBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoCQBlAgUKcG9vbFJlc3VsdAUEdm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAkAZQIFCnRvdGFsVm90ZXMFBHZvdGUFA25pbAkBEWRlbGV0ZU5vZGVBY3Rpb25zAgUNdm90ZXNMaXN0TmFtZQUOdXNlckFkZHJlc3NTdHIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOc2V0RXBvY2hMZW5ndGgBDm5ld0Vwb2NoTGVuZ3RoBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkAZgIFDm5ld0Vwb2NoTGVuZ3RoAAAGCQACAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlFcG9jaExlbmd0aE5ldwUObmV3RXBvY2hMZW5ndGgFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtzZXRNYXhEZXB0aAELbmV3TWF4RGVwdGgEBmNoZWNrcwkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQBmAgULbmV3TWF4RGVwdGgAAAYJAAIBAhFpbnZhbGlkIG1heCBkZXB0aAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tleU1heERlcHRoBQtuZXdNYXhEZXB0aAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3Byb2Nlc3NWb3RlSU5URVJOQUwCB3Bvb2xTdHIOdXNlckFkZHJlc3NTdHIEC2NoZWNrQ2FsbGVyCQEIbXVzdFRoaXMBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQ51c2VyQWRkcmVzc1N0cgkArAICAipwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHVzZXIgYWRkcmVzcyAFDnVzZXJBZGRyZXNzU3RyBAVlcG9jaAkBDGdldEludE9yRmFpbAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAQNZXBvY2hQcmV2aW91cwkAZQIFBWVwb2NoAAEEC2Vwb2NoTGVuZ3RoCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUOa2V5RXBvY2hMZW5ndGgEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEE3N0YXJ0SGVpZ2h0UHJldmlvdXMJAQxnZXRJbnRPckZhaWwCBQR0aGlzCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUNZXBvY2hQcmV2aW91cwQTZXBvY2hMZW5ndGhQcmV2aW91cwkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlFcG9jaExlbmd0aEJ5RXBvY2gBBQ1lcG9jaFByZXZpb3VzBBFlbmRIZWlnaHRQcmV2aW91cwkAZAIFE3N0YXJ0SGVpZ2h0UHJldmlvdXMFE2Vwb2NoTGVuZ3RoUHJldmlvdXMEEGNoZWNrVGFyZ2V0RXBvY2gDCQBnAgUNZXBvY2hQcmV2aW91cwAABgkAAgECK3Byb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgcHJldmlvdXMgZXBvY2gDCQAAAgUQY2hlY2tUYXJnZXRFcG9jaAUQY2hlY2tUYXJnZXRFcG9jaAQEcG9vbAkBDHN0cmluZ1RvUG9vbAEFB3Bvb2xTdHIEDSR0MDE3NTQ4MTc1ODgFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQ0kdDAxNzU0ODE3NTg4Al8xBAxwcmljZUFzc2V0SWQIBQ0kdDAxNzU0ODE3NTg4Al8yBAp3eEVtaXNzaW9uCQEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAQUEcG9vbAQTZ3d4QW1vdW50QXRFbmRUb3RhbAoAAUAJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFCWVuZEhlaWdodAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BBtnd3hBbW91bnRBdEVuZFRvdGFsUHJldmlvdXMKAAFACQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBRFlbmRIZWlnaHRQcmV2aW91cwUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCfCAEJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gAAAQMdm90aW5nUmVzdWx0CQELdmFsdWVPckVsc2UCCQCfCAEJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAAABAx2b3RlUHJldmlvdXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEHa2V5Vm90ZQMFBHBvb2wFC3VzZXJBZGRyZXNzBQ1lcG9jaFByZXZpb3VzCQCsAgIJAKwCAgkArAICCQCsAgICFHByb2Nlc3NWb3RlSU5URVJOQUwgBQdwb29sU3RyAgEgBQ51c2VyQWRkcmVzc1N0cgISOiBubyBwcmV2aW91cyB2b3RlBAR1c2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlVc2VkAgULdXNlckFkZHJlc3MFBWVwb2NoAAAEB25ld1ZvdGUDCQBmAgUbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzAAAJAGsDBQx2b3RlUHJldmlvdXMFE2d3eEFtb3VudEF0RW5kVG90YWwFG2d3eEFtb3VudEF0RW5kVG90YWxQcmV2aW91cwAABAdhY3Rpb25zAwMJAGYCBQduZXdWb3RlAAAFCnd4RW1pc3Npb24HCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5Vm90ZQMFBHBvb2wFC3VzZXJBZGRyZXNzBQVlcG9jaAUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAkAZAIFCnRvdGFsVm90ZXMFB25ld1ZvdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAkAZAIFDHZvdGluZ1Jlc3VsdAUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBB2tleVVzZWQCBQt1c2VyQWRkcmVzcwUFZXBvY2gJAGQCBQR1c2VkBQduZXdWb3RlBQNuaWwJARFkZWxldGVOb2RlQWN0aW9ucwIJARBnZXRWb3Rlc0xpc3ROYW1lAQUEcG9vbAUOdXNlckFkZHJlc3NTdHIJAJQKAgUHYWN0aW9ucwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNwcm9jZXNzUG9vbElOVEVSTkFMAgdwb29sU3RyBWZvcmNlBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3RhcmdldEVwb2NoBAxjdXJyZW50RXBvY2gJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gDBQVmb3JjZQUMY3VycmVudEVwb2NoCQBlAgUMY3VycmVudEVwb2NoAAEEEGNoZWNrVGFyZ2V0RXBvY2gDCQBnAgULdGFyZ2V0RXBvY2gAAAYJAAIBAilwcm9jZXNzUG9vbElOVEVSTkFMOiBpbnZhbGlkIHRhcmdldCBlcG9jaAMJAAACBRBjaGVja1RhcmdldEVwb2NoBRBjaGVja1RhcmdldEVwb2NoBARwb29sCQEMc3RyaW5nVG9Qb29sAQUHcG9vbFN0cgQNJHQwMTkzMTQxOTM1NAUEcG9vbAQNYW1vdW50QXNzZXRJZAgFDSR0MDE5MzE0MTkzNTQCXzEEDHByaWNlQXNzZXRJZAgFDSR0MDE5MzE0MTkzNTQCXzIED3N0YWtpbmdDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDGdldFN0ck9yRmFpbAIFBHRoaXMFEmtleVN0YWtpbmdDb250cmFjdAQPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwUSa2V5RmFjdG9yeUNvbnRyYWN0BAlscEFzc2V0SWQJARZnZXRMcEFzc2V0QnlQb29sQXNzZXRzAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBAFyCgABQAkA/AcEBQ9zdGFraW5nQ29udHJhY3QCEnVzZXJzTGlzdFRyYXZlcnNhbAkAzAgCBQlscEFzc2V0SWQFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBBQFAAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAXIFAXIDBQFyCQCUCgIFA25pbAYECnd4RW1pc3Npb24JARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwBBQRwb29sBAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ1rZXlUb3RhbFZvdGVzAQULdGFyZ2V0RXBvY2gAAAQMdm90aW5nUmVzdWx0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQt0YXJnZXRFcG9jaAAABAVzaGFyZQMDCQAAAgUKdG90YWxWb3RlcwAABgkBASEBBQp3eEVtaXNzaW9uAAAJAGsDBQx2b3RpbmdSZXN1bHQFDnBvb2xXZWlnaHRNdWx0BQp0b3RhbFZvdGVzBA9tb2RpZnlXZWlnaHRJbnYJAPwHBAUPZmFjdG9yeUNvbnRyYWN0Agxtb2RpZnlXZWlnaHQJAMwIAgUJbHBBc3NldElkCQDMCAIFBXNoYXJlBQNuaWwFA25pbAMJAAACBQ9tb2RpZnlXZWlnaHRJbnYFD21vZGlmeVdlaWdodEludgQQcG9vbHNMaXN0QWN0aW9ucwMDBQp3eEVtaXNzaW9uBgUFZm9yY2UFA25pbAkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlJbkxpc3QBBQRwb29sBQNuaWwJARFkZWxldGVOb2RlQWN0aW9ucwIFDXBvb2xzTGlzdE5hbWUFB3Bvb2xTdHIJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMa2V5UG9vbFNoYXJlAgUEcG9vbAULdGFyZ2V0RXBvY2gFBXNoYXJlBQNuaWwFEHBvb2xzTGlzdEFjdGlvbnMHCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmZpbmFsaXplSGVscGVyAAQFZm9yY2UJAQt2YWx1ZU9yRWxzZQIJAKAIAQUda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQHBAVlcG9jaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gAAAQNcHJldmlvdXNFcG9jaAkAZQIFBWVwb2NoAAEEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAtlcG9jaExlbmd0aAkBDGdldEludE9yRmFpbAIFBHRoaXMFDmtleUVwb2NoTGVuZ3RoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0CQCaCAIFBHRoaXMFFGtleUZpbmFsaXphdGlvblN0YWdlAwMDCQBnAgUGaGVpZ2h0BQllbmRIZWlnaHQJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAcJAQEhAQUFZm9yY2UHBAhuZXdFcG9jaAkAZAIFBWVwb2NoAAEEFG5ld0Vwb2NoTGVuZ3RoT3B0aW9uCQCaCAIFBHRoaXMFEWtleUVwb2NoTGVuZ3RoTmV3BBVuZXdFcG9jaExlbmd0aEFjdGlvbnMEByRtYXRjaDAFFG5ld0Vwb2NoTGVuZ3RoT3B0aW9uAwkAAQIFByRtYXRjaDACA0ludAQObmV3RXBvY2hMZW5ndGgFByRtYXRjaDAJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleUVwb2NoTGVuZ3RoBQ5uZXdFcG9jaExlbmd0aAkAzAgCCQELRGVsZXRlRW50cnkBBRFrZXlFcG9jaExlbmd0aE5ldwUDbmlsAwkAAQIFByRtYXRjaDACBFVuaXQFA25pbAkAAgECC01hdGNoIGVycm9yCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFCG5ld0Vwb2NoBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleVN0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleUN1cnJlbnRFcG9jaAUIbmV3RXBvY2gJAMwIAgkBDEludGVnZXJFbnRyeQIFFGtleUZpbmFsaXphdGlvblN0YWdlBRZmaW5hbGl6YXRpb25TdGFnZVRvdGFsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5RXBvY2hMZW5ndGhCeUVwb2NoAQUFZXBvY2gFC2Vwb2NoTGVuZ3RoBQNuaWwFFW5ld0Vwb2NoTGVuZ3RoQWN0aW9ucwYDAwUFZm9yY2UJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUEdW5pdAcJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzBQNuaWwGAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0CQCUCgIFA25pbAcDCQAAAgUXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQFFmZpbmFsaXphdGlvblN0YWdlVG90YWwECnBvb2xPclVuaXQJAKIIAQULa2V5TmV4dFBvb2wECnVzZXJPclVuaXQJAKIIAQULa2V5TmV4dFVzZXIEByRtYXRjaDAFCnBvb2xPclVuaXQDCQABAgUHJG1hdGNoMAIEVW5pdAQHJG1hdGNoMQkAoggBCQELa2V5TGlzdEhlYWQBBQ1wb29sc0xpc3ROYW1lAwkAAQIFByRtYXRjaDECBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRQb29sCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRVc2VyBQNuaWwGAwkAAQIFByRtYXRjaDECBlN0cmluZwQMcG9vbHNIZWFkU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFDHBvb2xzSGVhZFN0cgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBlN0cmluZwQHcG9vbFN0cgUHJG1hdGNoMAQEcG9vbAkBDHN0cmluZ1RvUG9vbAEFB3Bvb2xTdHIEDm5leHRVc2VyT3JVbml0BAckbWF0Y2gxBQp1c2VyT3JVbml0AwkAAQIFByRtYXRjaDECBFVuaXQJAKIIAQkBC2tleUxpc3RIZWFkAQkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sAwkAAQIFByRtYXRjaDECBlN0cmluZwQEdXNlcgUHJG1hdGNoMQQEbmV4dAkAoggBCQELa2V5TGlzdE5leHQCCQEQZ2V0Vm90ZXNMaXN0TmFtZQEFBHBvb2wFBHVzZXIDCQAAAgUEbmV4dAUEbmV4dAQOcHJvY2Vzc1ZvdGVJbnYJAPwHBAUEdGhpcwITcHJvY2Vzc1ZvdGVJTlRFUk5BTAkAzAgCBQdwb29sU3RyCQDMCAIFBHVzZXIFA25pbAUDbmlsAwkAAAIFDnByb2Nlc3NWb3RlSW52BQ5wcm9jZXNzVm90ZUludgUEbmV4dAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yBAckbWF0Y2gxBQ5uZXh0VXNlck9yVW5pdAMJAAECBQckbWF0Y2gxAgRVbml0BA5uZXh0UG9vbE9yVW5pdAkAoggBCQELa2V5TGlzdE5leHQCBQ1wb29sc0xpc3ROYW1lBQdwb29sU3RyBAckbWF0Y2gyBQ5uZXh0UG9vbE9yVW5pdAMJAAECBQckbWF0Y2gyAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFFGtleUZpbmFsaXphdGlvblN0YWdlBRdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0UG9vbAkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0VXNlcgUDbmlsBgMJAAECBQckbWF0Y2gyAgZTdHJpbmcEAXMFByRtYXRjaDIJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0UG9vbAUBcwkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0VXNlcgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDECBlN0cmluZwQIbmV4dFVzZXIFByRtYXRjaDEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0VXNlcgUIbmV4dFVzZXIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECC01hdGNoIGVycm9yAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BRdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcwQKcG9vbE9yVW5pdAkAoggBBQtrZXlOZXh0UG9vbAQHJG1hdGNoMAUKcG9vbE9yVW5pdAMJAAECBQckbWF0Y2gwAgRVbml0BAckbWF0Y2gxCQCiCAEJAQtrZXlMaXN0SGVhZAEFDXBvb2xzTGlzdE5hbWUDCQABAgUHJG1hdGNoMQIEVW5pdAQHYWN0aW9ucwMFBWZvcmNlCQDMCAIJAQtEZWxldGVFbnRyeQEFFGtleUZpbmFsaXphdGlvblN0YWdlCQDMCAIJAQtEZWxldGVFbnRyeQEFHWtleUZpbmFsaXphdGlvblNob3VsZEJlRm9yY2VkBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUUa2V5RmluYWxpemF0aW9uU3RhZ2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQxrZXlGaW5hbGl6ZWQBBQ1wcmV2aW91c0Vwb2NoBgkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5Q3VycmVudEVwb2NoVWkFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlTdGFydEhlaWdodFVpBQtzdGFydEhlaWdodAUDbmlsCQCUCgIFB2FjdGlvbnMGAwkAAQIFByRtYXRjaDECBlN0cmluZwQLbmV4dFBvb2xTdHIFByRtYXRjaDEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0UG9vbAULbmV4dFBvb2xTdHIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB3Bvb2xTdHIFByRtYXRjaDAEDm5leHRQb29sT3JVbml0CQCiCAEJAQtrZXlMaXN0TmV4dAIFDXBvb2xzTGlzdE5hbWUFB3Bvb2xTdHIDCQAAAgUObmV4dFBvb2xPclVuaXQFDm5leHRQb29sT3JVbml0BAFyCgABQAkA/AcEBQR0aGlzAhNwcm9jZXNzUG9vbElOVEVSTkFMCQDMCAIFB3Bvb2xTdHIJAMwIAgUFZm9yY2UFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBBQFAAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAXIFAXIDBQFyCQCUCgIFA25pbAYEByRtYXRjaDEFDm5leHRQb29sT3JVbml0AwkAAQIFByRtYXRjaDECBFVuaXQEB2FjdGlvbnMDBQVmb3JjZQkAzAgCCQELRGVsZXRlRW50cnkBBRRrZXlGaW5hbGl6YXRpb25TdGFnZQkAzAgCCQELRGVsZXRlRW50cnkBBR1rZXlGaW5hbGl6YXRpb25TaG91bGRCZUZvcmNlZAkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0UG9vbAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFFGtleUZpbmFsaXphdGlvblN0YWdlCQDMCAIJAQxCb29sZWFuRW50cnkCCQEMa2V5RmluYWxpemVkAQUNcHJldmlvdXNFcG9jaAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleUN1cnJlbnRFcG9jaFVpBQVlcG9jaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5U3RhcnRIZWlnaHRVaQULc3RhcnRIZWlnaHQJAMwIAgkBC0RlbGV0ZUVudHJ5AQULa2V5TmV4dFBvb2wFA25pbAkAlAoCBQdhY3Rpb25zBgMJAAECBQckbWF0Y2gxAgZTdHJpbmcEC25leHRQb29sU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFC25leHRQb29sU3RyBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgkAAgECFmZpbmFsaXphdGlvbiBpcyBicm9rZW4BaQEPZmluYWxpemVXcmFwcGVyAQdjb3VudGVyBAZyZXN1bHQKAAFACQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQUBQAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQZyZXN1bHQFBnJlc3VsdAMJAQEhAQUGcmVzdWx0AwkAAAIFB2NvdW50ZXIAAAkAAgECHkN1cnJlbnQgdm90aW5nIGlzIG5vdCBvdmVyIHlldAkAlAoCBQNuaWwFBHVuaXQECG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQDCQBmAgUIbWF4RGVwdGgFB2NvdW50ZXIEA2ludgkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZAIFB2NvdW50ZXIAAQUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhmaW5hbGl6ZQAEA2ludgkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgAABQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEUY29udGFpbnNOb2RlUkVBRE9OTFkCCGxpc3ROYW1lAmlkCQCUCgIFA25pbAkBDGNvbnRhaW5zTm9kZQIFCGxpc3ROYW1lBQJpZAFpAQppbnNlcnROb2RlAghsaXN0TmFtZQJpZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJARFpbnNlcnROb2RlQWN0aW9ucwIFCGxpc3ROYW1lBQJpZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpkZWxldGVOb2RlAghsaXN0TmFtZQJpZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJARFkZWxldGVOb2RlQWN0aW9ucwIFCGxpc3ROYW1lBQJpZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tleW7Z6cI=", "height": 2443630, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: H1K2u4rQ2pRmD3uGHNEUoJimbdsBVXhfL6seYoYTnzkv Next: 8Dc3rz8vFzdXbt4xEhP8R5gVdE2AksPq7dTmwGAyWKov Diff:
OldNewDifferences
1313
1414 let f = makeString(["%s", "epochLength"], a)
1515
16-let g = makeString(["%s", "currentEpoch"], a)
16+let g = makeString(["%s%s", "epochLength__new"], a)
1717
18-let h = makeString(["%s", "maxDepth"], a)
19-
20-let i = makeString(["%s", "votingEmissionCandidateContract"], a)
21-
22-let j = makeString(["%s", "factoryContract"], a)
23-
24-let k = makeString(["%s", "boostingContract"], a)
25-
26-let l = makeString(["%s", "stakingContract"], a)
27-
28-let m = makeString(["%s", "finalizationStage"], a)
29-
30-let n = makeString(["%s", "nextPool"], a)
31-
32-let o = makeString(["%s", "nextUser"], a)
33-
34-let p = makeString(["%s", "startHeight"], a)
35-
36-let q = makeString(["%s", "currentEpochUi"], a)
37-
38-let r = makeString(["%s", "startHeightUi"], a)
39-
40-let s = makeString(["%s", "force"], a)
41-
42-func t (u) = makeString(["%s%d", "startHeight", toString(u)], a)
18+func h (i) = makeString(["%s%d", "epochLength", toString(i)], a)
4319
4420
45-func v (u) = makeString(["%s%d", "finalized", toString(u)], a)
21+let j = makeString(["%s", "currentEpoch"], a)
22+
23+let k = makeString(["%s", "maxDepth"], a)
24+
25+let l = makeString(["%s", "votingEmissionCandidateContract"], a)
26+
27+let m = makeString(["%s", "factoryContract"], a)
28+
29+let n = makeString(["%s", "boostingContract"], a)
30+
31+let o = makeString(["%s", "stakingContract"], a)
32+
33+let p = makeString(["%s", "finalizationStage"], a)
34+
35+let q = makeString(["%s", "nextPool"], a)
36+
37+let r = makeString(["%s", "nextUser"], a)
38+
39+let s = makeString(["%s", "startHeight"], a)
40+
41+let t = makeString(["%s", "currentEpochUi"], a)
42+
43+let u = makeString(["%s", "startHeightUi"], a)
44+
45+let v = makeString(["%s", "force"], a)
46+
47+func w (i) = makeString(["%s%d", "startHeight", toString(i)], a)
4648
4749
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)
50+func x (i) = makeString(["%s%d", "finalized", toString(i)], a)
51+
52+
53+func y (z) = {
54+ let A = z
55+ let B = A._1
56+ let C = A._2
57+ makeString(["%s%s%s", "inList", B, C], a)
5358 }
5459
5560
56-func B (C,u) = makeString(["%s%s%d", "used", toString(C), toString(u)], a)
61+func D (E,i) = makeString(["%s%s%d", "used", toString(E), toString(i)], a)
5762
5863
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)
64+func F (z,E,i) = {
65+ let G = z
66+ let B = G._1
67+ let C = G._2
68+ makeString(["%s%s%s%s%d", "vote", B, C, toString(E), toString(i)], a)
6469 }
6570
6671
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)
72+func H (z,i) = {
73+ let I = z
74+ let B = I._1
75+ let C = I._2
76+ makeString(["%s%s%s%d", "votingResult", B, C, toString(i)], a)
7277 }
7378
7479
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)
80+func J (z,i) = {
81+ let K = z
82+ let B = K._1
83+ let C = K._2
84+ makeString(["%s%s%s%d", "poolShare", B, C, toString(i)], a)
8085 }
8186
8287
83-func J (u) = makeString(["%s%d", "totalVotes", toString(u)], a)
88+func L (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
8489
8590
86-func K (C,L,M) = {
87- let N = makeString(["mandatory ", toString(C), ".", L, " is not defined"], "")
91+func M (E,N,O) = {
92+ let P = makeString(["mandatory ", toString(E), ".", N, " is not defined"], "")
8893 valueOrErrorMessage({
89- let O = M
90- if ($isInstanceOf(O, "String"))
94+ let Q = O
95+ if ($isInstanceOf(Q, "String"))
9196 then {
92- let P = O
93- getString(C, L)
97+ let R = Q
98+ getString(E, N)
9499 }
95- else if ($isInstanceOf(O, "Int"))
100+ else if ($isInstanceOf(Q, "Int"))
96101 then {
97- let Q = O
98- getInteger(C, L)
102+ let S = Q
103+ getInteger(E, N)
99104 }
100105 else throw("invalid entry type")
101- }, N)
106+ }, P)
102107 }
103108
104109
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"))
110+func T (E,N) = {
111+ let U = M(E, N, "")
112+ if ($isInstanceOf(U, "String"))
113+ then U
114+ else throw(($getType(U) + " couldn't be cast to String"))
110115 }
111116
112117
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"))
118+func V (E,N) = {
119+ let U = M(E, N, 0)
120+ if ($isInstanceOf(U, "Int"))
121+ then U
122+ else throw(($getType(U) + " couldn't be cast to Int"))
118123 }
119124
120125
121-func U (x) = ((x._1 + a) + x._2)
126+func W (z) = ((z._1 + a) + z._2)
122127
123128
124-func V (P) = {
125- let W = split(P, a)
126- if ((size(W) == 2))
127- then $Tuple2(W[0], W[1])
129+func X (R) = {
130+ let Y = split(R, a)
131+ if ((size(Y) == 2))
132+ then $Tuple2(Y[0], Y[1])
128133 else throw("invalid pool string")
129134 }
130135
131136
132-func X (z,A) = {
133- func Y (Z) = ("%s%s%s__mappings__baseAsset2internalId__" + Z)
137+func Z (B,C) = {
138+ func aa (ab) = ("%s%s%s__mappings__baseAsset2internalId__" + ab)
134139
135- func aa (ab,ac) = (((("%d%d%s%s__" + toString(ab)) + "__") + toString(ac)) + "__mappings__poolAssets2PoolContract")
140+ func ac (ad,ae) = (((("%d%d%s%s__" + toString(ad)) + "__") + toString(ae)) + "__mappings__poolAssets2PoolContract")
136141
137- func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
142+ func af (ag) = (("%s%s%s__" + ag) + "__mappings__poolContract2LpAsset")
138143
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
144+ let ah = addressFromStringValue(T(this, m))
145+ let ai = V(ah, aa(B))
146+ let aj = V(ah, aa(C))
147+ let ag = T(ah, ac(ai, aj))
148+ let ak = T(ah, af(ag))
149+ ak
145150 }
146151
147152
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"))
153+func al (z) = {
154+ let am = z
155+ let B = am._1
156+ let C = am._2
157+ let ah = addressFromStringValue(T(this, m))
158+ let U = invoke(ah, "checkWxEmissionPoolLabel", [B, C], nil)
159+ if ($isInstanceOf(U, "Boolean"))
160+ then U
161+ else throw(($getType(U) + " couldn't be cast to Boolean"))
157162 }
158163
159164
160-let al = "pools"
165+let an = "pools"
161166
162-func am (x) = {
163- let an = x
164- let z = an._1
165- let A = an._2
166- makeString(["votes", z, A], a)
167+func ao (z) = {
168+ let ap = z
169+ let B = ap._1
170+ let C = ap._2
171+ makeString(["votes", B, C], a)
167172 }
168173
169174
170-func ao (ap) = {
171- let aq = if ((ap == al))
175+func aq (ar) = {
176+ let as = if ((ar == an))
172177 then "%s%s"
173178 else "%s%s%s%s"
174- makeString([aq, ap, "head"], a)
179+ makeString([as, ar, "head"], a)
175180 }
176181
177182
178-func ar (ap) = {
179- let aq = if ((ap == al))
183+func at (ar) = {
184+ let as = if ((ar == an))
180185 then "%s%s"
181186 else "%s%s%s%s"
182- makeString([aq, ap, "size"], a)
187+ makeString([as, ar, "size"], a)
183188 }
184189
185190
186-func as (ap,at) = {
187- let aq = if ((ap == al))
191+func au (ar,av) = {
192+ let as = if ((ar == an))
188193 then "%s%s%s%s"
189194 else "%s%s%s%s%s"
190- makeString([aq, ap, at, "prev"], a)
195+ makeString([as, ar, av, "prev"], a)
191196 }
192197
193198
194-func au (ap,at) = {
195- let aq = if ((ap == al))
199+func aw (ar,av) = {
200+ let as = if ((ar == an))
196201 then "%s%s%s%s"
197202 else "%s%s%s%s%s"
198- makeString([aq, ap, at, "next"], a)
203+ makeString([as, ar, av, "next"], a)
199204 }
200205
201206
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, "")))
207+func ax (ar,av) = {
208+ let ay = getString(this, aq(ar))
209+ let az = getString(this, au(ar, av))
210+ let aA = getString(this, aw(ar, av))
211+ if (if ((av == valueOrElse(ay, "")))
207212 then true
208- else (ax != unit))
213+ else (az != unit))
209214 then true
210- else (ay != unit)
215+ else (aA != unit)
211216 }
212217
213218
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)))
219+func aB (ar,av) = {
220+ let ay = getString(this, aq(ar))
221+ let aC = valueOrElse(getInteger(this, at(ar)), 0)
222+ let aD = if (!(ax(ar, av)))
218223 then true
219224 else throw("Node exists")
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)])
225+ if ((aD == aD))
226+ then (([IntegerEntry(at(ar), (aC + 1))] ++ (if ((ay != unit))
227+ then [StringEntry(aw(ar, av), value(ay)), StringEntry(au(ar, value(ay)), av)]
228+ else nil)) ++ [StringEntry(aq(ar), av)])
224229 else throw("Strict value is not equal to itself.")
225230 }
226231
227232
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)
233+func aE (ar,av) = {
234+ let ay = getString(this, aq(ar))
235+ let aC = valueOrElse(getInteger(this, at(ar)), 0)
236+ let az = getString(this, au(ar, av))
237+ let aA = getString(this, aw(ar, av))
238+ ([IntegerEntry(at(ar), (aC - 1))] ++ (if (if ((az != unit))
239+ then (aA != unit)
235240 else false)
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))))
241+ then [StringEntry(aw(ar, value(az)), value(aA)), StringEntry(au(ar, value(aA)), value(az)), DeleteEntry(au(ar, av)), DeleteEntry(aw(ar, av))]
242+ else if ((aA != unit))
243+ then [StringEntry(aq(ar), value(aA)), DeleteEntry(aw(ar, av)), DeleteEntry(au(ar, value(aA)))]
244+ else if ((az != unit))
245+ then [DeleteEntry(au(ar, av)), DeleteEntry(aw(ar, value(az)))]
246+ else if ((av == valueOrElse(ay, "")))
247+ then [DeleteEntry(aq(ar))]
248+ else throw(((("invalid node: " + ar) + ".") + av))))
244249 }
245250
246251
247-func aD () = "%s__managerPublicKey"
252+func aF () = "%s__managerPublicKey"
248253
249254
250-func aE () = "%s__pendingManagerPublicKey"
255+func aG () = "%s__pendingManagerPublicKey"
251256
252257
253-func aF () = {
254- let O = getString(aD())
255- if ($isInstanceOf(O, "String"))
258+func aH () = {
259+ let Q = getString(aF())
260+ if ($isInstanceOf(Q, "String"))
256261 then {
257- let aG = O
258- fromBase58String(aG)
262+ let aI = Q
263+ fromBase58String(aI)
259264 }
260- else if ($isInstanceOf(O, "Unit"))
265+ else if ($isInstanceOf(Q, "Unit"))
261266 then unit
262267 else throw("Match error")
263268 }
264269
265270
266-func aH () = {
267- let O = getString(aE())
268- if ($isInstanceOf(O, "String"))
271+func aJ () = {
272+ let Q = getString(aG())
273+ if ($isInstanceOf(Q, "String"))
269274 then {
270- let aG = O
271- fromBase58String(aG)
275+ let aI = Q
276+ fromBase58String(aI)
272277 }
273- else if ($isInstanceOf(O, "Unit"))
278+ else if ($isInstanceOf(Q, "Unit"))
274279 then unit
275280 else throw("Match error")
276281 }
277282
278283
279-let aI = throw("Permission denied")
284+let aK = throw("Permission denied")
280285
281-func aJ (aK) = if ((aK.caller == this))
286+func aL (aM) = if ((aM.caller == this))
282287 then true
283- else aI
288+ else aK
284289
285290
286-func aL (aK) = {
287- let O = aF()
288- if ($isInstanceOf(O, "ByteVector"))
291+func aN (aM) = {
292+ let Q = aH()
293+ if ($isInstanceOf(Q, "ByteVector"))
289294 then {
290- let aM = O
291- if ((aK.callerPublicKey == aM))
295+ let aO = Q
296+ if ((aM.callerPublicKey == aO))
292297 then true
293- else aI
298+ else aK
294299 }
295- else if ($isInstanceOf(O, "Unit"))
296- then aJ(aK)
300+ else if ($isInstanceOf(Q, "Unit"))
301+ then aL(aM)
297302 else throw("Match error")
298303 }
299304
300305
301-@Callable(aK)
302-func setManager (aN) = {
303- let aO = aL(aK)
304- if ((aO == aO))
306+@Callable(aM)
307+func setManager (aP) = {
308+ let aQ = aN(aM)
309+ if ((aQ == aQ))
305310 then {
306- let aP = fromBase58String(aN)
307- if ((aP == aP))
308- then [StringEntry(aE(), aN)]
311+ let aR = fromBase58String(aP)
312+ if ((aR == aR))
313+ then [StringEntry(aG(), aP)]
309314 else throw("Strict value is not equal to itself.")
310315 }
311316 else throw("Strict value is not equal to itself.")
313318
314319
315320
316-@Callable(aK)
321+@Callable(aM)
317322 func confirmManager () = {
318- let aQ = aH()
319- let aR = if (isDefined(aQ))
323+ let aS = aJ()
324+ let aT = if (isDefined(aS))
320325 then true
321326 else throw("No pending manager")
322- if ((aR == aR))
327+ if ((aT == aT))
323328 then {
324- let aS = if ((aK.callerPublicKey == value(aQ)))
329+ let aU = if ((aM.callerPublicKey == value(aS)))
325330 then true
326331 else throw("You are not pending manager")
327- if ((aS == aS))
328- then [StringEntry(aD(), toBase58String(value(aQ))), DeleteEntry(aE())]
332+ if ((aU == aU))
333+ then [StringEntry(aF(), toBase58String(value(aS))), DeleteEntry(aG())]
329334 else throw("Strict value is not equal to itself.")
330335 }
331336 else throw("Strict value is not equal to itself.")
333338
334339
335340
336-@Callable(aK)
337-func getUserGwxAmountAtHeight (aT,aU) = {
338- let aV = valueOrErrorMessage(addressFromString(R(this, k)), "invalid boosting contract address")
341+@Callable(aM)
342+func getUserGwxAmountAtHeight (aV,aW) = {
343+ let aX = valueOrErrorMessage(addressFromString(T(this, n)), "invalid boosting contract address")
339344 $Tuple2(nil, {
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"))
345+ let U = invoke(aX, "getUserGwxAmountAtHeightREADONLY", [aV, aW], nil)
346+ if ($isInstanceOf(U, "Int"))
347+ then U
348+ else throw(($getType(U) + " couldn't be cast to Int"))
344349 })
345350 }
346351
347352
348353
349-@Callable(aK)
350-func constructor (af,aW,aX,aY,aZ) = {
351- let ba = [aL(aK), if ((addressFromString(af) != unit))
354+@Callable(aM)
355+func constructor (ah,aY,aZ,ba,bb) = {
356+ let bc = [aN(aM), if ((addressFromString(ah) != unit))
352357 then true
353- else "invalid factory contract address", if ((addressFromString(aW) != unit))
358+ else "invalid factory contract address", if ((addressFromString(aY) != unit))
354359 then true
355- else "invalid voting emission candidate contract address", if ((addressFromString(aX) != unit))
360+ else "invalid voting emission candidate contract address", if ((addressFromString(aZ) != unit))
356361 then true
357- else "invalid boosting contract address", if ((addressFromString(aY) != unit))
362+ else "invalid boosting contract address", if ((addressFromString(ba) != unit))
358363 then true
359- else "invalid staking contract address", if ((aZ > 0))
364+ else "invalid staking contract address", if ((bb > 0))
360365 then true
361366 else throw("invalid epoch length")]
362- if ((ba == ba))
363- then $Tuple2([StringEntry(j, af), StringEntry(i, aW), StringEntry(k, aX), StringEntry(l, aY), IntegerEntry(f, aZ)], unit)
367+ if ((bc == bc))
368+ then $Tuple2([StringEntry(m, ah), StringEntry(l, aY), StringEntry(n, aZ), StringEntry(o, ba), IntegerEntry(f, bb)], unit)
364369 else throw("Strict value is not equal to itself.")
365370 }
366371
367372
368373
369-@Callable(aK)
370-func create (z,A) = {
371- let ba = [if ((toBase58String(aK.caller.bytes) == valueOrElse(getString(this, i), "")))
374+@Callable(aM)
375+func create (B,C) = {
376+ let bc = [if ((toBase58String(aM.caller.bytes) == valueOrElse(getString(this, l), "")))
372377 then true
373- else aL(aK)]
374- if ((ba == ba))
378+ else aN(aM)]
379+ if ((bc == bc))
375380 then {
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)
381+ let z = $Tuple2(B, C)
382+ let bd = ([BooleanEntry(y(z), true)] ++ aB(an, W(z)))
383+ let be = (getInteger(this, j) == unit)
384+ let bf = if (be)
380385 then {
381- let u = 0
382-[IntegerEntry(g, u), IntegerEntry(t(u), height), IntegerEntry(p, height), IntegerEntry(q, u), IntegerEntry(r, height)]
386+ let i = 0
387+[IntegerEntry(j, i), IntegerEntry(w(i), height), IntegerEntry(s, height), IntegerEntry(t, i), IntegerEntry(u, height)]
383388 }
384389 else nil
385- $Tuple2((bb ++ bd), unit)
390+ $Tuple2((bd ++ bf), unit)
386391 }
387392 else throw("Strict value is not equal to itself.")
388393 }
389394
390395
391396
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"))
397+@Callable(aM)
398+func vote (B,C,bg) = {
399+ let z = $Tuple2(B, C)
400+ let i = valueOrElse(getInteger(this, j), 0)
401+ let bh = V(this, w(i))
402+ let bb = V(this, f)
403+ let bi = (bh + bb)
404+ let bj = getInteger(this, p)
405+ let bk = valueOrElse(getInteger(this, D(aM.caller, i)), 0)
406+ let bl = valueOrElse(getInteger(this, F(z, aM.caller, i)), 0)
407+ let bm = valueOrElse(getInteger(this, H(z, i)), 0)
408+ let bn = valueOrElse(getInteger(this, L(i)), 0)
409+ let bo = {
410+ let U = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aM.caller.bytes), bi], nil)
411+ if ($isInstanceOf(U, "Int"))
412+ then U
413+ else throw(($getType(U) + " couldn't be cast to Int"))
409414 }
410- let bn = (bm - bi)
411- let bo = (bj + be)
412- let bp = aj(x)
413- let ba = [if ((getBoolean(w(x)) != unit))
415+ let bp = (bo - bk)
416+ let bq = (bl + bg)
417+ let br = al(z)
418+ let bc = [if ((getBoolean(y(z)) != unit))
414419 then true
415- else throw("invalid assets"), if ((bg > height))
420+ else throw("invalid assets"), if ((bi > height))
416421 then true
417- else throw("invalid height"), if ((bh == unit))
422+ else throw("invalid height"), if ((bj == unit))
418423 then true
419- else throw("finalization in progress"), if ((bm > 0))
424+ else throw("finalization in progress"), if ((bo > 0))
420425 then true
421- else throw("you do not have gWX"), if (if ((be > 0))
422- then (bn >= be)
426+ else throw("you do not have gWX"), if (if ((bg > 0))
427+ then (bp >= bg)
423428 else false)
424429 then true
425- else throw("invalid amount"), if (bp)
430+ else throw("invalid amount"), if (br)
426431 then true
427432 else throw("pool hasn't WX_EMISSION label")]
428- if ((ba == ba))
433+ if ((bc == bc))
429434 then {
430- let bq = am(x)
431- let br = toString(aK.caller)
432- let bs = if (av(bq, br))
435+ let bs = ao(z)
436+ let bt = toString(aM.caller)
437+ let bu = if (ax(bs, bt))
433438 then nil
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)
439+ else aB(bs, bt)
440+ $Tuple2(([IntegerEntry(D(aM.caller, i), (bk + bg)), IntegerEntry(F(z, aM.caller, i), bq), IntegerEntry(H(z, i), (bm + bg)), IntegerEntry(L(i), (bn + bg))] ++ bu), unit)
436441 }
437442 else throw("Strict value is not equal to itself.")
438443 }
439444
440445
441446
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))
447+@Callable(aM)
448+func cancelVote (B,C) = {
449+ let z = $Tuple2(B, C)
450+ let i = valueOrElse(getInteger(this, j), 0)
451+ let bh = V(this, w(i))
452+ let bb = V(this, f)
453+ let bi = (bh + bb)
454+ let bj = getInteger(this, p)
455+ let bk = valueOrElse(getInteger(this, D(aM.caller, i)), 0)
456+ let bl = valueOrElse(getInteger(this, F(z, aM.caller, i)), 0)
457+ let bm = valueOrElse(getInteger(this, H(z, i)), 0)
458+ let bn = valueOrElse(getInteger(this, L(i)), 0)
459+ let bc = [if ((getBoolean(y(z)) != unit))
455460 then true
456- else throw("invalid assets"), if ((bg > height))
461+ else throw("invalid assets"), if ((bi > height))
457462 then true
458- else throw("invalid height"), if ((bh == unit))
463+ else throw("invalid height"), if ((bj == unit))
459464 then true
460- else throw("finalization in progress"), if ((bj > 0))
465+ else throw("finalization in progress"), if ((bl > 0))
461466 then true
462467 else throw("no vote")]
463- if ((ba == ba))
468+ if ((bc == bc))
464469 then {
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)
470+ let bs = ao(z)
471+ let bt = toString(aM.caller)
472+ $Tuple2(([IntegerEntry(D(aM.caller, i), max([(bk - bl), 0])), DeleteEntry(F(z, aM.caller, i)), IntegerEntry(H(z, i), (bm - bl)), IntegerEntry(L(i), (bn - bl))] ++ aE(bs, bt)), unit)
468473 }
469474 else throw("Strict value is not equal to itself.")
470475 }
471476
472477
473478
474-@Callable(aK)
475-func setEpochLength (bt) = {
476- let ba = [aL(aK), if ((bt > 0))
479+@Callable(aM)
480+func setEpochLength (bv) = {
481+ let bc = [aN(aM), if ((bv > 0))
477482 then true
478483 else throw("invalid epoch length")]
479- if ((ba == ba))
480- then $Tuple2([IntegerEntry(f, bt)], unit)
484+ if ((bc == bc))
485+ then $Tuple2([IntegerEntry(g, bv)], unit)
481486 else throw("Strict value is not equal to itself.")
482487 }
483488
484489
485490
486-@Callable(aK)
487-func setMaxDepth (bu) = {
488- let ba = [aL(aK), if ((bu > 0))
491+@Callable(aM)
492+func setMaxDepth (bw) = {
493+ let bc = [aN(aM), if ((bw > 0))
489494 then true
490495 else throw("invalid max depth")]
491- if ((ba == ba))
492- then $Tuple2([IntegerEntry(h, bu)], unit)
496+ if ((bc == bc))
497+ then $Tuple2([IntegerEntry(k, bw)], unit)
493498 else throw("Strict value is not equal to itself.")
494499 }
495500
496501
497502
498-@Callable(aK)
499-func processVoteINTERNAL (bv,br) = {
500- let aO = aJ(aK)
501- if ((aO == aO))
503+@Callable(aM)
504+func processVoteINTERNAL (bx,bt) = {
505+ let aQ = aL(aM)
506+ if ((aQ == aQ))
502507 then {
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))
508+ let aV = valueOrErrorMessage(addressFromString(bt), ("processVoteINTERNAL: invalid user address " + bt))
509+ let i = V(this, j)
510+ let by = (i - 1)
511+ let bb = V(this, f)
512+ let bh = V(this, w(i))
513+ let bi = (bh + bb)
514+ let bz = V(this, w(by))
515+ let bA = V(this, h(by))
516+ let bB = (bz + bA)
517+ let bC = if ((by >= 0))
512518 then true
513519 else throw("processVoteINTERNAL: invalid previous epoch")
514- if ((bz == bz))
520+ if ((bC == bC))
515521 then {
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"))
522+ let z = X(bx)
523+ let bD = z
524+ let B = bD._1
525+ let C = bD._2
526+ let br = al(z)
527+ let bo = {
528+ let U = invoke(this, "getUserGwxAmountAtHeight", [bt, bi], nil)
529+ if ($isInstanceOf(U, "Int"))
530+ then U
531+ else throw(($getType(U) + " couldn't be cast to Int"))
526532 }
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"))
533+ let bE = {
534+ let U = invoke(this, "getUserGwxAmountAtHeight", [bt, bB], nil)
535+ if ($isInstanceOf(U, "Int"))
536+ then U
537+ else throw(($getType(U) + " couldn't be cast to Int"))
532538 }
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)
539+ let bn = valueOrElse(getInteger(L(i)), 0)
540+ let bF = valueOrElse(getInteger(H(z, i)), 0)
541+ let bG = valueOrErrorMessage(getInteger(F(z, aV, by)), (((("processVoteINTERNAL " + bx) + " ") + bt) + ": no previous vote"))
542+ let bk = valueOrElse(getInteger(this, D(aV, i)), 0)
543+ let bq = if ((bE > 0))
544+ then fraction(bG, bo, bE)
539545 else 0
540- let bE = if (if ((bo > 0))
541- then bp
546+ let bH = if (if ((bq > 0))
547+ then br
542548 else false)
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)
549+ then [IntegerEntry(F(z, aV, i), bq), IntegerEntry(L(i), (bn + bq)), IntegerEntry(H(z, i), (bF + bq)), IntegerEntry(D(aV, i), (bk + bq))]
550+ else aE(ao(z), bt)
551+ $Tuple2(bH, unit)
546552 }
547553 else throw("Strict value is not equal to itself.")
548554 }
551557
552558
553559
554-@Callable(aK)
555-func processPoolINTERNAL (bv,bF) = {
556- let aO = aJ(aK)
557- if ((aO == aO))
560+@Callable(aM)
561+func processPoolINTERNAL (bx,bI) = {
562+ let aQ = aL(aM)
563+ if ((aQ == aQ))
558564 then {
559- let bG = {
560- let bH = T(this, g)
561- if (bF)
562- then bH
563- else (bH - 1)
565+ let bJ = {
566+ let bK = V(this, j)
567+ if (bI)
568+ then bK
569+ else (bK - 1)
564570 }
565- let bz = if ((bG >= 0))
571+ let bC = if ((bJ >= 0))
566572 then true
567573 else throw("processPoolINTERNAL: invalid target epoch")
568- if ((bz == bz))
574+ if ((bC == bC))
569575 then {
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"))
576+ let z = X(bx)
577+ let bL = z
578+ let B = bL._1
579+ let C = bL._2
580+ let ba = addressFromStringValue(T(this, o))
581+ let ah = addressFromStringValue(T(this, m))
582+ let ak = Z(B, C)
583+ let bM = {
584+ let U = invoke(ba, "usersListTraversal", [ak], nil)
585+ if ($isInstanceOf(U, "Boolean"))
586+ then U
587+ else throw(($getType(U) + " couldn't be cast to Boolean"))
582588 }
583- if ((bJ == bJ))
584- then if (bJ)
589+ if ((bM == bM))
590+ then if (bM)
585591 then $Tuple2(nil, true)
586592 else {
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))
593+ let br = al(z)
594+ let bn = valueOrElse(getInteger(this, L(bJ)), 0)
595+ let bF = valueOrElse(getInteger(this, H(z, bJ)), 0)
596+ let bN = if (if ((bn == 0))
591597 then true
592- else !(bp))
598+ else !(br))
593599 then 0
594- else fraction(bC, b, bl)
595- let bL = invoke(af, "modifyWeight", [ai, bK], nil)
596- if ((bL == bL))
600+ else fraction(bF, b, bn)
601+ let bO = invoke(ah, "modifyWeight", [ak, bN], nil)
602+ if ((bO == bO))
597603 then {
598- let bM = if (if (bp)
604+ let bP = if (if (br)
599605 then true
600- else bF)
606+ else bI)
601607 then nil
602- else ([DeleteEntry(w(x))] ++ aC(al, bv))
603- $Tuple2(([IntegerEntry(H(x, bG), bK)] ++ bM), false)
608+ else ([DeleteEntry(y(z))] ++ aE(an, bx))
609+ $Tuple2(([IntegerEntry(J(z, bJ), bN)] ++ bP), false)
604610 }
605611 else throw("Strict value is not equal to itself.")
606612 }
613619
614620
615621
616-@Callable(aK)
622+@Callable(aM)
617623 func finalizeHelper () = {
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)
624+ let bI = valueOrElse(getBoolean(v), false)
625+ let i = valueOrElse(getInteger(this, j), 0)
626+ let bQ = (i - 1)
627+ let bh = V(this, w(i))
628+ let bb = V(this, f)
629+ let bi = (bh + bb)
630+ let bj = getInteger(this, p)
631+ if (if (if ((height >= bi))
632+ then (bj == unit)
627633 else false)
628- then !(bF)
634+ then !(bI)
629635 else false)
630636 then {
631- let bO = (u + 1)
632- $Tuple2([IntegerEntry(t(bO), height), IntegerEntry(p, height), IntegerEntry(g, bO), IntegerEntry(m, d)], true)
637+ let bR = (i + 1)
638+ let bS = getInteger(this, g)
639+ let bT = {
640+ let Q = bS
641+ if ($isInstanceOf(Q, "Int"))
642+ then {
643+ let bv = Q
644+[IntegerEntry(f, bv), DeleteEntry(g)]
645+ }
646+ else if ($isInstanceOf(Q, "Unit"))
647+ then nil
648+ else throw("Match error")
649+ }
650+ $Tuple2(([IntegerEntry(w(bR), height), IntegerEntry(s, height), IntegerEntry(j, bR), IntegerEntry(p, d), IntegerEntry(h(i), bb)] ++ bT), true)
633651 }
634- else if (if (bF)
635- then (bh == unit)
652+ else if (if (bI)
653+ then (bj == unit)
636654 else false)
637- then $Tuple2([IntegerEntry(m, e)], true)
638- else if ((bh == unit))
655+ then $Tuple2([IntegerEntry(p, e)], true)
656+ else if ((bj == unit))
639657 then $Tuple2(nil, false)
640- else if ((bh == d))
658+ else if ((bj == d))
641659 then {
642- let bP = getString(n)
643- let bQ = getString(o)
644- let O = bP
645- if ($isInstanceOf(O, "Unit"))
660+ let bU = getString(q)
661+ let bV = getString(r)
662+ let Q = bU
663+ if ($isInstanceOf(Q, "Unit"))
646664 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"))
665+ let bW = getString(aq(an))
666+ if ($isInstanceOf(bW, "Unit"))
667+ then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
668+ else if ($isInstanceOf(bW, "String"))
651669 then {
652- let bS = bR
653- $Tuple2([StringEntry(n, bS)], true)
670+ let bX = bW
671+ $Tuple2([StringEntry(q, bX)], true)
654672 }
655673 else throw("Match error")
656674 }
657- else if ($isInstanceOf(O, "String"))
675+ else if ($isInstanceOf(Q, "String"))
658676 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"))
677+ let bx = Q
678+ let z = X(bx)
679+ let bY = {
680+ let bW = bV
681+ if ($isInstanceOf(bW, "Unit"))
682+ then getString(aq(ao(z)))
683+ else if ($isInstanceOf(bW, "String"))
666684 then {
667- let bU = bR
668- let bV = getString(au(am(x), bU))
669- if ((bV == bV))
685+ let bZ = bW
686+ let ca = getString(aw(ao(z), bZ))
687+ if ((ca == ca))
670688 then {
671- let bW = invoke(this, "processVoteINTERNAL", [bv, bU], nil)
672- if ((bW == bW))
673- then bV
689+ let cb = invoke(this, "processVoteINTERNAL", [bx, bZ], nil)
690+ if ((cb == cb))
691+ then ca
674692 else throw("Strict value is not equal to itself.")
675693 }
676694 else throw("Strict value is not equal to itself.")
677695 }
678696 else throw("Match error")
679697 }
680- let bR = bT
681- if ($isInstanceOf(bR, "Unit"))
698+ let bW = bY
699+ if ($isInstanceOf(bW, "Unit"))
682700 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"))
701+ let cc = getString(aw(an, bx))
702+ let cd = cc
703+ if ($isInstanceOf(cd, "Unit"))
704+ then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
705+ else if ($isInstanceOf(cd, "String"))
688706 then {
689- let aG = bY
690- $Tuple2([StringEntry(n, aG), DeleteEntry(o)], true)
707+ let aI = cd
708+ $Tuple2([StringEntry(q, aI), DeleteEntry(r)], true)
691709 }
692710 else throw("Match error")
693711 }
694- else if ($isInstanceOf(bR, "String"))
712+ else if ($isInstanceOf(bW, "String"))
695713 then {
696- let bZ = bR
697- $Tuple2([StringEntry(o, bZ)], true)
714+ let ce = bW
715+ $Tuple2([StringEntry(r, ce)], true)
698716 }
699717 else throw("Match error")
700718 }
701719 else throw("Match error")
702720 }
703- else if ((bh == e))
721+ else if ((bj == e))
704722 then {
705- let bP = getString(n)
706- let O = bP
707- if ($isInstanceOf(O, "Unit"))
723+ let bU = getString(q)
724+ let Q = bU
725+ if ($isInstanceOf(Q, "Unit"))
708726 then {
709- let bR = getString(ao(al))
710- if ($isInstanceOf(bR, "Unit"))
727+ let bW = getString(aq(an))
728+ if ($isInstanceOf(bW, "Unit"))
711729 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)
730+ let bH = if (bI)
731+ then [DeleteEntry(p), DeleteEntry(v)]
732+ else [DeleteEntry(p), BooleanEntry(x(bQ), true), IntegerEntry(t, i), IntegerEntry(u, bh)]
733+ $Tuple2(bH, true)
716734 }
717- else if ($isInstanceOf(bR, "String"))
735+ else if ($isInstanceOf(bW, "String"))
718736 then {
719- let ca = bR
720- $Tuple2([StringEntry(n, ca)], true)
737+ let cf = bW
738+ $Tuple2([StringEntry(q, cf)], true)
721739 }
722740 else throw("Match error")
723741 }
724- else if ($isInstanceOf(O, "String"))
742+ else if ($isInstanceOf(Q, "String"))
725743 then {
726- let bv = O
727- let bX = getString(au(al, bv))
728- if ((bX == bX))
744+ let bx = Q
745+ let cc = getString(aw(an, bx))
746+ if ((cc == cc))
729747 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"))
748+ let bM = {
749+ let U = invoke(this, "processPoolINTERNAL", [bx, bI], nil)
750+ if ($isInstanceOf(U, "Boolean"))
751+ then U
752+ else throw(($getType(U) + " couldn't be cast to Boolean"))
735753 }
736- if ((bJ == bJ))
737- then if (bJ)
754+ if ((bM == bM))
755+ then if (bM)
738756 then $Tuple2(nil, true)
739757 else {
740- let bR = bX
741- if ($isInstanceOf(bR, "Unit"))
758+ let bW = cc
759+ if ($isInstanceOf(bW, "Unit"))
742760 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)
761+ let bH = if (bI)
762+ then [DeleteEntry(p), DeleteEntry(v), DeleteEntry(q)]
763+ else [DeleteEntry(p), BooleanEntry(x(bQ), true), IntegerEntry(t, i), IntegerEntry(u, bh), DeleteEntry(q)]
764+ $Tuple2(bH, true)
747765 }
748- else if ($isInstanceOf(bR, "String"))
766+ else if ($isInstanceOf(bW, "String"))
749767 then {
750- let ca = bR
751- $Tuple2([StringEntry(n, ca)], true)
768+ let cf = bW
769+ $Tuple2([StringEntry(q, cf)], true)
752770 }
753771 else throw("Match error")
754772 }
763781
764782
765783
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"))
784+@Callable(aM)
785+func finalizeWrapper (cg) = {
786+ let ch = {
787+ let U = invoke(this, "finalizeHelper", nil, nil)
788+ if ($isInstanceOf(U, "Boolean"))
789+ then U
790+ else throw(($getType(U) + " couldn't be cast to Boolean"))
773791 }
774- if ((cc == cc))
775- then if (!(cc))
776- then if ((cb == 0))
792+ if ((ch == ch))
793+ then if (!(ch))
794+ then if ((cg == 0))
777795 then throw("Current voting is not over yet")
778796 else $Tuple2(nil, unit)
779797 else {
780- let cd = valueOrElse(getInteger(this, h), c)
781- if ((cd > cb))
798+ let ci = valueOrElse(getInteger(this, k), c)
799+ if ((ci > cg))
782800 then {
783- let ce = invoke(this, "finalizeWrapper", [(cb + 1)], nil)
784- if ((ce == ce))
801+ let cj = invoke(this, "finalizeWrapper", [(cg + 1)], nil)
802+ if ((cj == cj))
785803 then $Tuple2(nil, unit)
786804 else throw("Strict value is not equal to itself.")
787805 }
792810
793811
794812
795-@Callable(aK)
813+@Callable(aM)
796814 func finalize () = {
797- let ce = invoke(this, "finalizeWrapper", [0], nil)
798- if ((ce == ce))
815+ let cj = invoke(this, "finalizeWrapper", [0], nil)
816+ if ((cj == cj))
799817 then $Tuple2(nil, unit)
800818 else throw("Strict value is not equal to itself.")
801819 }
802820
803821
804822
805-@Callable(aK)
806-func containsNodeREADONLY (ap,at) = $Tuple2(nil, av(ap, at))
823+@Callable(aM)
824+func containsNodeREADONLY (ar,av) = $Tuple2(nil, ax(ar, av))
807825
808826
809827
810-@Callable(aK)
811-func insertNode (ap,at) = {
812- let aO = aL(aK)
813- if ((aO == aO))
814- then $Tuple2(az(ap, at), unit)
828+@Callable(aM)
829+func insertNode (ar,av) = {
830+ let aQ = aN(aM)
831+ if ((aQ == aQ))
832+ then $Tuple2(aB(ar, av), unit)
815833 else throw("Strict value is not equal to itself.")
816834 }
817835
818836
819837
820-@Callable(aK)
821-func deleteNode (ap,at) = {
822- let aO = aL(aK)
823- if ((aO == aO))
824- then $Tuple2(aC(ap, at), unit)
838+@Callable(aM)
839+func deleteNode (ar,av) = {
840+ let aQ = aN(aM)
841+ if ((aQ == aQ))
842+ then $Tuple2(aE(ar, av), unit)
825843 else throw("Strict value is not equal to itself.")
826844 }
827845
828846
829-@Verifier(cf)
830-func cg () = {
831- let ch = {
832- let O = aF()
833- if ($isInstanceOf(O, "ByteVector"))
847+@Verifier(ck)
848+func cl () = {
849+ let cm = {
850+ let Q = aH()
851+ if ($isInstanceOf(Q, "ByteVector"))
834852 then {
835- let aM = O
836- aM
853+ let aO = Q
854+ aO
837855 }
838- else if ($isInstanceOf(O, "Unit"))
839- then cf.senderPublicKey
856+ else if ($isInstanceOf(Q, "Unit"))
857+ then ck.senderPublicKey
840858 else throw("Match error")
841859 }
842- sigVerify(cf.bodyBytes, cf.proofs[0], ch)
860+ sigVerify(ck.bodyBytes, ck.proofs[0], cm)
843861 }
844862
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
16-let g = makeString(["%s", "currentEpoch"], a)
16+let g = makeString(["%s%s", "epochLength__new"], a)
1717
18-let h = makeString(["%s", "maxDepth"], a)
19-
20-let i = makeString(["%s", "votingEmissionCandidateContract"], a)
21-
22-let j = makeString(["%s", "factoryContract"], a)
23-
24-let k = makeString(["%s", "boostingContract"], a)
25-
26-let l = makeString(["%s", "stakingContract"], a)
27-
28-let m = makeString(["%s", "finalizationStage"], a)
29-
30-let n = makeString(["%s", "nextPool"], a)
31-
32-let o = makeString(["%s", "nextUser"], a)
33-
34-let p = makeString(["%s", "startHeight"], a)
35-
36-let q = makeString(["%s", "currentEpochUi"], a)
37-
38-let r = makeString(["%s", "startHeightUi"], a)
39-
40-let s = makeString(["%s", "force"], a)
41-
42-func t (u) = makeString(["%s%d", "startHeight", toString(u)], a)
18+func h (i) = makeString(["%s%d", "epochLength", toString(i)], a)
4319
4420
45-func v (u) = makeString(["%s%d", "finalized", toString(u)], a)
21+let j = makeString(["%s", "currentEpoch"], a)
22+
23+let k = makeString(["%s", "maxDepth"], a)
24+
25+let l = makeString(["%s", "votingEmissionCandidateContract"], a)
26+
27+let m = makeString(["%s", "factoryContract"], a)
28+
29+let n = makeString(["%s", "boostingContract"], a)
30+
31+let o = makeString(["%s", "stakingContract"], a)
32+
33+let p = makeString(["%s", "finalizationStage"], a)
34+
35+let q = makeString(["%s", "nextPool"], a)
36+
37+let r = makeString(["%s", "nextUser"], a)
38+
39+let s = makeString(["%s", "startHeight"], a)
40+
41+let t = makeString(["%s", "currentEpochUi"], a)
42+
43+let u = makeString(["%s", "startHeightUi"], a)
44+
45+let v = makeString(["%s", "force"], a)
46+
47+func w (i) = makeString(["%s%d", "startHeight", toString(i)], a)
4648
4749
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)
50+func x (i) = makeString(["%s%d", "finalized", toString(i)], a)
51+
52+
53+func y (z) = {
54+ let A = z
55+ let B = A._1
56+ let C = A._2
57+ makeString(["%s%s%s", "inList", B, C], a)
5358 }
5459
5560
56-func B (C,u) = makeString(["%s%s%d", "used", toString(C), toString(u)], a)
61+func D (E,i) = makeString(["%s%s%d", "used", toString(E), toString(i)], a)
5762
5863
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)
64+func F (z,E,i) = {
65+ let G = z
66+ let B = G._1
67+ let C = G._2
68+ makeString(["%s%s%s%s%d", "vote", B, C, toString(E), toString(i)], a)
6469 }
6570
6671
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)
72+func H (z,i) = {
73+ let I = z
74+ let B = I._1
75+ let C = I._2
76+ makeString(["%s%s%s%d", "votingResult", B, C, toString(i)], a)
7277 }
7378
7479
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)
80+func J (z,i) = {
81+ let K = z
82+ let B = K._1
83+ let C = K._2
84+ makeString(["%s%s%s%d", "poolShare", B, C, toString(i)], a)
8085 }
8186
8287
83-func J (u) = makeString(["%s%d", "totalVotes", toString(u)], a)
88+func L (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
8489
8590
86-func K (C,L,M) = {
87- let N = makeString(["mandatory ", toString(C), ".", L, " is not defined"], "")
91+func M (E,N,O) = {
92+ let P = makeString(["mandatory ", toString(E), ".", N, " is not defined"], "")
8893 valueOrErrorMessage({
89- let O = M
90- if ($isInstanceOf(O, "String"))
94+ let Q = O
95+ if ($isInstanceOf(Q, "String"))
9196 then {
92- let P = O
93- getString(C, L)
97+ let R = Q
98+ getString(E, N)
9499 }
95- else if ($isInstanceOf(O, "Int"))
100+ else if ($isInstanceOf(Q, "Int"))
96101 then {
97- let Q = O
98- getInteger(C, L)
102+ let S = Q
103+ getInteger(E, N)
99104 }
100105 else throw("invalid entry type")
101- }, N)
106+ }, P)
102107 }
103108
104109
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"))
110+func T (E,N) = {
111+ let U = M(E, N, "")
112+ if ($isInstanceOf(U, "String"))
113+ then U
114+ else throw(($getType(U) + " couldn't be cast to String"))
110115 }
111116
112117
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"))
118+func V (E,N) = {
119+ let U = M(E, N, 0)
120+ if ($isInstanceOf(U, "Int"))
121+ then U
122+ else throw(($getType(U) + " couldn't be cast to Int"))
118123 }
119124
120125
121-func U (x) = ((x._1 + a) + x._2)
126+func W (z) = ((z._1 + a) + z._2)
122127
123128
124-func V (P) = {
125- let W = split(P, a)
126- if ((size(W) == 2))
127- then $Tuple2(W[0], W[1])
129+func X (R) = {
130+ let Y = split(R, a)
131+ if ((size(Y) == 2))
132+ then $Tuple2(Y[0], Y[1])
128133 else throw("invalid pool string")
129134 }
130135
131136
132-func X (z,A) = {
133- func Y (Z) = ("%s%s%s__mappings__baseAsset2internalId__" + Z)
137+func Z (B,C) = {
138+ func aa (ab) = ("%s%s%s__mappings__baseAsset2internalId__" + ab)
134139
135- func aa (ab,ac) = (((("%d%d%s%s__" + toString(ab)) + "__") + toString(ac)) + "__mappings__poolAssets2PoolContract")
140+ func ac (ad,ae) = (((("%d%d%s%s__" + toString(ad)) + "__") + toString(ae)) + "__mappings__poolAssets2PoolContract")
136141
137- func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
142+ func af (ag) = (("%s%s%s__" + ag) + "__mappings__poolContract2LpAsset")
138143
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
144+ let ah = addressFromStringValue(T(this, m))
145+ let ai = V(ah, aa(B))
146+ let aj = V(ah, aa(C))
147+ let ag = T(ah, ac(ai, aj))
148+ let ak = T(ah, af(ag))
149+ ak
145150 }
146151
147152
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"))
153+func al (z) = {
154+ let am = z
155+ let B = am._1
156+ let C = am._2
157+ let ah = addressFromStringValue(T(this, m))
158+ let U = invoke(ah, "checkWxEmissionPoolLabel", [B, C], nil)
159+ if ($isInstanceOf(U, "Boolean"))
160+ then U
161+ else throw(($getType(U) + " couldn't be cast to Boolean"))
157162 }
158163
159164
160-let al = "pools"
165+let an = "pools"
161166
162-func am (x) = {
163- let an = x
164- let z = an._1
165- let A = an._2
166- makeString(["votes", z, A], a)
167+func ao (z) = {
168+ let ap = z
169+ let B = ap._1
170+ let C = ap._2
171+ makeString(["votes", B, C], a)
167172 }
168173
169174
170-func ao (ap) = {
171- let aq = if ((ap == al))
175+func aq (ar) = {
176+ let as = if ((ar == an))
172177 then "%s%s"
173178 else "%s%s%s%s"
174- makeString([aq, ap, "head"], a)
179+ makeString([as, ar, "head"], a)
175180 }
176181
177182
178-func ar (ap) = {
179- let aq = if ((ap == al))
183+func at (ar) = {
184+ let as = if ((ar == an))
180185 then "%s%s"
181186 else "%s%s%s%s"
182- makeString([aq, ap, "size"], a)
187+ makeString([as, ar, "size"], a)
183188 }
184189
185190
186-func as (ap,at) = {
187- let aq = if ((ap == al))
191+func au (ar,av) = {
192+ let as = if ((ar == an))
188193 then "%s%s%s%s"
189194 else "%s%s%s%s%s"
190- makeString([aq, ap, at, "prev"], a)
195+ makeString([as, ar, av, "prev"], a)
191196 }
192197
193198
194-func au (ap,at) = {
195- let aq = if ((ap == al))
199+func aw (ar,av) = {
200+ let as = if ((ar == an))
196201 then "%s%s%s%s"
197202 else "%s%s%s%s%s"
198- makeString([aq, ap, at, "next"], a)
203+ makeString([as, ar, av, "next"], a)
199204 }
200205
201206
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, "")))
207+func ax (ar,av) = {
208+ let ay = getString(this, aq(ar))
209+ let az = getString(this, au(ar, av))
210+ let aA = getString(this, aw(ar, av))
211+ if (if ((av == valueOrElse(ay, "")))
207212 then true
208- else (ax != unit))
213+ else (az != unit))
209214 then true
210- else (ay != unit)
215+ else (aA != unit)
211216 }
212217
213218
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)))
219+func aB (ar,av) = {
220+ let ay = getString(this, aq(ar))
221+ let aC = valueOrElse(getInteger(this, at(ar)), 0)
222+ let aD = if (!(ax(ar, av)))
218223 then true
219224 else throw("Node exists")
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)])
225+ if ((aD == aD))
226+ then (([IntegerEntry(at(ar), (aC + 1))] ++ (if ((ay != unit))
227+ then [StringEntry(aw(ar, av), value(ay)), StringEntry(au(ar, value(ay)), av)]
228+ else nil)) ++ [StringEntry(aq(ar), av)])
224229 else throw("Strict value is not equal to itself.")
225230 }
226231
227232
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)
233+func aE (ar,av) = {
234+ let ay = getString(this, aq(ar))
235+ let aC = valueOrElse(getInteger(this, at(ar)), 0)
236+ let az = getString(this, au(ar, av))
237+ let aA = getString(this, aw(ar, av))
238+ ([IntegerEntry(at(ar), (aC - 1))] ++ (if (if ((az != unit))
239+ then (aA != unit)
235240 else false)
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))))
241+ then [StringEntry(aw(ar, value(az)), value(aA)), StringEntry(au(ar, value(aA)), value(az)), DeleteEntry(au(ar, av)), DeleteEntry(aw(ar, av))]
242+ else if ((aA != unit))
243+ then [StringEntry(aq(ar), value(aA)), DeleteEntry(aw(ar, av)), DeleteEntry(au(ar, value(aA)))]
244+ else if ((az != unit))
245+ then [DeleteEntry(au(ar, av)), DeleteEntry(aw(ar, value(az)))]
246+ else if ((av == valueOrElse(ay, "")))
247+ then [DeleteEntry(aq(ar))]
248+ else throw(((("invalid node: " + ar) + ".") + av))))
244249 }
245250
246251
247-func aD () = "%s__managerPublicKey"
252+func aF () = "%s__managerPublicKey"
248253
249254
250-func aE () = "%s__pendingManagerPublicKey"
255+func aG () = "%s__pendingManagerPublicKey"
251256
252257
253-func aF () = {
254- let O = getString(aD())
255- if ($isInstanceOf(O, "String"))
258+func aH () = {
259+ let Q = getString(aF())
260+ if ($isInstanceOf(Q, "String"))
256261 then {
257- let aG = O
258- fromBase58String(aG)
262+ let aI = Q
263+ fromBase58String(aI)
259264 }
260- else if ($isInstanceOf(O, "Unit"))
265+ else if ($isInstanceOf(Q, "Unit"))
261266 then unit
262267 else throw("Match error")
263268 }
264269
265270
266-func aH () = {
267- let O = getString(aE())
268- if ($isInstanceOf(O, "String"))
271+func aJ () = {
272+ let Q = getString(aG())
273+ if ($isInstanceOf(Q, "String"))
269274 then {
270- let aG = O
271- fromBase58String(aG)
275+ let aI = Q
276+ fromBase58String(aI)
272277 }
273- else if ($isInstanceOf(O, "Unit"))
278+ else if ($isInstanceOf(Q, "Unit"))
274279 then unit
275280 else throw("Match error")
276281 }
277282
278283
279-let aI = throw("Permission denied")
284+let aK = throw("Permission denied")
280285
281-func aJ (aK) = if ((aK.caller == this))
286+func aL (aM) = if ((aM.caller == this))
282287 then true
283- else aI
288+ else aK
284289
285290
286-func aL (aK) = {
287- let O = aF()
288- if ($isInstanceOf(O, "ByteVector"))
291+func aN (aM) = {
292+ let Q = aH()
293+ if ($isInstanceOf(Q, "ByteVector"))
289294 then {
290- let aM = O
291- if ((aK.callerPublicKey == aM))
295+ let aO = Q
296+ if ((aM.callerPublicKey == aO))
292297 then true
293- else aI
298+ else aK
294299 }
295- else if ($isInstanceOf(O, "Unit"))
296- then aJ(aK)
300+ else if ($isInstanceOf(Q, "Unit"))
301+ then aL(aM)
297302 else throw("Match error")
298303 }
299304
300305
301-@Callable(aK)
302-func setManager (aN) = {
303- let aO = aL(aK)
304- if ((aO == aO))
306+@Callable(aM)
307+func setManager (aP) = {
308+ let aQ = aN(aM)
309+ if ((aQ == aQ))
305310 then {
306- let aP = fromBase58String(aN)
307- if ((aP == aP))
308- then [StringEntry(aE(), aN)]
311+ let aR = fromBase58String(aP)
312+ if ((aR == aR))
313+ then [StringEntry(aG(), aP)]
309314 else throw("Strict value is not equal to itself.")
310315 }
311316 else throw("Strict value is not equal to itself.")
312317 }
313318
314319
315320
316-@Callable(aK)
321+@Callable(aM)
317322 func confirmManager () = {
318- let aQ = aH()
319- let aR = if (isDefined(aQ))
323+ let aS = aJ()
324+ let aT = if (isDefined(aS))
320325 then true
321326 else throw("No pending manager")
322- if ((aR == aR))
327+ if ((aT == aT))
323328 then {
324- let aS = if ((aK.callerPublicKey == value(aQ)))
329+ let aU = if ((aM.callerPublicKey == value(aS)))
325330 then true
326331 else throw("You are not pending manager")
327- if ((aS == aS))
328- then [StringEntry(aD(), toBase58String(value(aQ))), DeleteEntry(aE())]
332+ if ((aU == aU))
333+ then [StringEntry(aF(), toBase58String(value(aS))), DeleteEntry(aG())]
329334 else throw("Strict value is not equal to itself.")
330335 }
331336 else throw("Strict value is not equal to itself.")
332337 }
333338
334339
335340
336-@Callable(aK)
337-func getUserGwxAmountAtHeight (aT,aU) = {
338- let aV = valueOrErrorMessage(addressFromString(R(this, k)), "invalid boosting contract address")
341+@Callable(aM)
342+func getUserGwxAmountAtHeight (aV,aW) = {
343+ let aX = valueOrErrorMessage(addressFromString(T(this, n)), "invalid boosting contract address")
339344 $Tuple2(nil, {
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"))
345+ let U = invoke(aX, "getUserGwxAmountAtHeightREADONLY", [aV, aW], nil)
346+ if ($isInstanceOf(U, "Int"))
347+ then U
348+ else throw(($getType(U) + " couldn't be cast to Int"))
344349 })
345350 }
346351
347352
348353
349-@Callable(aK)
350-func constructor (af,aW,aX,aY,aZ) = {
351- let ba = [aL(aK), if ((addressFromString(af) != unit))
354+@Callable(aM)
355+func constructor (ah,aY,aZ,ba,bb) = {
356+ let bc = [aN(aM), if ((addressFromString(ah) != unit))
352357 then true
353- else "invalid factory contract address", if ((addressFromString(aW) != unit))
358+ else "invalid factory contract address", if ((addressFromString(aY) != unit))
354359 then true
355- else "invalid voting emission candidate contract address", if ((addressFromString(aX) != unit))
360+ else "invalid voting emission candidate contract address", if ((addressFromString(aZ) != unit))
356361 then true
357- else "invalid boosting contract address", if ((addressFromString(aY) != unit))
362+ else "invalid boosting contract address", if ((addressFromString(ba) != unit))
358363 then true
359- else "invalid staking contract address", if ((aZ > 0))
364+ else "invalid staking contract address", if ((bb > 0))
360365 then true
361366 else throw("invalid epoch length")]
362- if ((ba == ba))
363- then $Tuple2([StringEntry(j, af), StringEntry(i, aW), StringEntry(k, aX), StringEntry(l, aY), IntegerEntry(f, aZ)], unit)
367+ if ((bc == bc))
368+ then $Tuple2([StringEntry(m, ah), StringEntry(l, aY), StringEntry(n, aZ), StringEntry(o, ba), IntegerEntry(f, bb)], unit)
364369 else throw("Strict value is not equal to itself.")
365370 }
366371
367372
368373
369-@Callable(aK)
370-func create (z,A) = {
371- let ba = [if ((toBase58String(aK.caller.bytes) == valueOrElse(getString(this, i), "")))
374+@Callable(aM)
375+func create (B,C) = {
376+ let bc = [if ((toBase58String(aM.caller.bytes) == valueOrElse(getString(this, l), "")))
372377 then true
373- else aL(aK)]
374- if ((ba == ba))
378+ else aN(aM)]
379+ if ((bc == bc))
375380 then {
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)
381+ let z = $Tuple2(B, C)
382+ let bd = ([BooleanEntry(y(z), true)] ++ aB(an, W(z)))
383+ let be = (getInteger(this, j) == unit)
384+ let bf = if (be)
380385 then {
381- let u = 0
382-[IntegerEntry(g, u), IntegerEntry(t(u), height), IntegerEntry(p, height), IntegerEntry(q, u), IntegerEntry(r, height)]
386+ let i = 0
387+[IntegerEntry(j, i), IntegerEntry(w(i), height), IntegerEntry(s, height), IntegerEntry(t, i), IntegerEntry(u, height)]
383388 }
384389 else nil
385- $Tuple2((bb ++ bd), unit)
390+ $Tuple2((bd ++ bf), unit)
386391 }
387392 else throw("Strict value is not equal to itself.")
388393 }
389394
390395
391396
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"))
397+@Callable(aM)
398+func vote (B,C,bg) = {
399+ let z = $Tuple2(B, C)
400+ let i = valueOrElse(getInteger(this, j), 0)
401+ let bh = V(this, w(i))
402+ let bb = V(this, f)
403+ let bi = (bh + bb)
404+ let bj = getInteger(this, p)
405+ let bk = valueOrElse(getInteger(this, D(aM.caller, i)), 0)
406+ let bl = valueOrElse(getInteger(this, F(z, aM.caller, i)), 0)
407+ let bm = valueOrElse(getInteger(this, H(z, i)), 0)
408+ let bn = valueOrElse(getInteger(this, L(i)), 0)
409+ let bo = {
410+ let U = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aM.caller.bytes), bi], nil)
411+ if ($isInstanceOf(U, "Int"))
412+ then U
413+ else throw(($getType(U) + " couldn't be cast to Int"))
409414 }
410- let bn = (bm - bi)
411- let bo = (bj + be)
412- let bp = aj(x)
413- let ba = [if ((getBoolean(w(x)) != unit))
415+ let bp = (bo - bk)
416+ let bq = (bl + bg)
417+ let br = al(z)
418+ let bc = [if ((getBoolean(y(z)) != unit))
414419 then true
415- else throw("invalid assets"), if ((bg > height))
420+ else throw("invalid assets"), if ((bi > height))
416421 then true
417- else throw("invalid height"), if ((bh == unit))
422+ else throw("invalid height"), if ((bj == unit))
418423 then true
419- else throw("finalization in progress"), if ((bm > 0))
424+ else throw("finalization in progress"), if ((bo > 0))
420425 then true
421- else throw("you do not have gWX"), if (if ((be > 0))
422- then (bn >= be)
426+ else throw("you do not have gWX"), if (if ((bg > 0))
427+ then (bp >= bg)
423428 else false)
424429 then true
425- else throw("invalid amount"), if (bp)
430+ else throw("invalid amount"), if (br)
426431 then true
427432 else throw("pool hasn't WX_EMISSION label")]
428- if ((ba == ba))
433+ if ((bc == bc))
429434 then {
430- let bq = am(x)
431- let br = toString(aK.caller)
432- let bs = if (av(bq, br))
435+ let bs = ao(z)
436+ let bt = toString(aM.caller)
437+ let bu = if (ax(bs, bt))
433438 then nil
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)
439+ else aB(bs, bt)
440+ $Tuple2(([IntegerEntry(D(aM.caller, i), (bk + bg)), IntegerEntry(F(z, aM.caller, i), bq), IntegerEntry(H(z, i), (bm + bg)), IntegerEntry(L(i), (bn + bg))] ++ bu), unit)
436441 }
437442 else throw("Strict value is not equal to itself.")
438443 }
439444
440445
441446
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))
447+@Callable(aM)
448+func cancelVote (B,C) = {
449+ let z = $Tuple2(B, C)
450+ let i = valueOrElse(getInteger(this, j), 0)
451+ let bh = V(this, w(i))
452+ let bb = V(this, f)
453+ let bi = (bh + bb)
454+ let bj = getInteger(this, p)
455+ let bk = valueOrElse(getInteger(this, D(aM.caller, i)), 0)
456+ let bl = valueOrElse(getInteger(this, F(z, aM.caller, i)), 0)
457+ let bm = valueOrElse(getInteger(this, H(z, i)), 0)
458+ let bn = valueOrElse(getInteger(this, L(i)), 0)
459+ let bc = [if ((getBoolean(y(z)) != unit))
455460 then true
456- else throw("invalid assets"), if ((bg > height))
461+ else throw("invalid assets"), if ((bi > height))
457462 then true
458- else throw("invalid height"), if ((bh == unit))
463+ else throw("invalid height"), if ((bj == unit))
459464 then true
460- else throw("finalization in progress"), if ((bj > 0))
465+ else throw("finalization in progress"), if ((bl > 0))
461466 then true
462467 else throw("no vote")]
463- if ((ba == ba))
468+ if ((bc == bc))
464469 then {
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)
470+ let bs = ao(z)
471+ let bt = toString(aM.caller)
472+ $Tuple2(([IntegerEntry(D(aM.caller, i), max([(bk - bl), 0])), DeleteEntry(F(z, aM.caller, i)), IntegerEntry(H(z, i), (bm - bl)), IntegerEntry(L(i), (bn - bl))] ++ aE(bs, bt)), unit)
468473 }
469474 else throw("Strict value is not equal to itself.")
470475 }
471476
472477
473478
474-@Callable(aK)
475-func setEpochLength (bt) = {
476- let ba = [aL(aK), if ((bt > 0))
479+@Callable(aM)
480+func setEpochLength (bv) = {
481+ let bc = [aN(aM), if ((bv > 0))
477482 then true
478483 else throw("invalid epoch length")]
479- if ((ba == ba))
480- then $Tuple2([IntegerEntry(f, bt)], unit)
484+ if ((bc == bc))
485+ then $Tuple2([IntegerEntry(g, bv)], unit)
481486 else throw("Strict value is not equal to itself.")
482487 }
483488
484489
485490
486-@Callable(aK)
487-func setMaxDepth (bu) = {
488- let ba = [aL(aK), if ((bu > 0))
491+@Callable(aM)
492+func setMaxDepth (bw) = {
493+ let bc = [aN(aM), if ((bw > 0))
489494 then true
490495 else throw("invalid max depth")]
491- if ((ba == ba))
492- then $Tuple2([IntegerEntry(h, bu)], unit)
496+ if ((bc == bc))
497+ then $Tuple2([IntegerEntry(k, bw)], unit)
493498 else throw("Strict value is not equal to itself.")
494499 }
495500
496501
497502
498-@Callable(aK)
499-func processVoteINTERNAL (bv,br) = {
500- let aO = aJ(aK)
501- if ((aO == aO))
503+@Callable(aM)
504+func processVoteINTERNAL (bx,bt) = {
505+ let aQ = aL(aM)
506+ if ((aQ == aQ))
502507 then {
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))
508+ let aV = valueOrErrorMessage(addressFromString(bt), ("processVoteINTERNAL: invalid user address " + bt))
509+ let i = V(this, j)
510+ let by = (i - 1)
511+ let bb = V(this, f)
512+ let bh = V(this, w(i))
513+ let bi = (bh + bb)
514+ let bz = V(this, w(by))
515+ let bA = V(this, h(by))
516+ let bB = (bz + bA)
517+ let bC = if ((by >= 0))
512518 then true
513519 else throw("processVoteINTERNAL: invalid previous epoch")
514- if ((bz == bz))
520+ if ((bC == bC))
515521 then {
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"))
522+ let z = X(bx)
523+ let bD = z
524+ let B = bD._1
525+ let C = bD._2
526+ let br = al(z)
527+ let bo = {
528+ let U = invoke(this, "getUserGwxAmountAtHeight", [bt, bi], nil)
529+ if ($isInstanceOf(U, "Int"))
530+ then U
531+ else throw(($getType(U) + " couldn't be cast to Int"))
526532 }
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"))
533+ let bE = {
534+ let U = invoke(this, "getUserGwxAmountAtHeight", [bt, bB], nil)
535+ if ($isInstanceOf(U, "Int"))
536+ then U
537+ else throw(($getType(U) + " couldn't be cast to Int"))
532538 }
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)
539+ let bn = valueOrElse(getInteger(L(i)), 0)
540+ let bF = valueOrElse(getInteger(H(z, i)), 0)
541+ let bG = valueOrErrorMessage(getInteger(F(z, aV, by)), (((("processVoteINTERNAL " + bx) + " ") + bt) + ": no previous vote"))
542+ let bk = valueOrElse(getInteger(this, D(aV, i)), 0)
543+ let bq = if ((bE > 0))
544+ then fraction(bG, bo, bE)
539545 else 0
540- let bE = if (if ((bo > 0))
541- then bp
546+ let bH = if (if ((bq > 0))
547+ then br
542548 else false)
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)
549+ then [IntegerEntry(F(z, aV, i), bq), IntegerEntry(L(i), (bn + bq)), IntegerEntry(H(z, i), (bF + bq)), IntegerEntry(D(aV, i), (bk + bq))]
550+ else aE(ao(z), bt)
551+ $Tuple2(bH, unit)
546552 }
547553 else throw("Strict value is not equal to itself.")
548554 }
549555 else throw("Strict value is not equal to itself.")
550556 }
551557
552558
553559
554-@Callable(aK)
555-func processPoolINTERNAL (bv,bF) = {
556- let aO = aJ(aK)
557- if ((aO == aO))
560+@Callable(aM)
561+func processPoolINTERNAL (bx,bI) = {
562+ let aQ = aL(aM)
563+ if ((aQ == aQ))
558564 then {
559- let bG = {
560- let bH = T(this, g)
561- if (bF)
562- then bH
563- else (bH - 1)
565+ let bJ = {
566+ let bK = V(this, j)
567+ if (bI)
568+ then bK
569+ else (bK - 1)
564570 }
565- let bz = if ((bG >= 0))
571+ let bC = if ((bJ >= 0))
566572 then true
567573 else throw("processPoolINTERNAL: invalid target epoch")
568- if ((bz == bz))
574+ if ((bC == bC))
569575 then {
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"))
576+ let z = X(bx)
577+ let bL = z
578+ let B = bL._1
579+ let C = bL._2
580+ let ba = addressFromStringValue(T(this, o))
581+ let ah = addressFromStringValue(T(this, m))
582+ let ak = Z(B, C)
583+ let bM = {
584+ let U = invoke(ba, "usersListTraversal", [ak], nil)
585+ if ($isInstanceOf(U, "Boolean"))
586+ then U
587+ else throw(($getType(U) + " couldn't be cast to Boolean"))
582588 }
583- if ((bJ == bJ))
584- then if (bJ)
589+ if ((bM == bM))
590+ then if (bM)
585591 then $Tuple2(nil, true)
586592 else {
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))
593+ let br = al(z)
594+ let bn = valueOrElse(getInteger(this, L(bJ)), 0)
595+ let bF = valueOrElse(getInteger(this, H(z, bJ)), 0)
596+ let bN = if (if ((bn == 0))
591597 then true
592- else !(bp))
598+ else !(br))
593599 then 0
594- else fraction(bC, b, bl)
595- let bL = invoke(af, "modifyWeight", [ai, bK], nil)
596- if ((bL == bL))
600+ else fraction(bF, b, bn)
601+ let bO = invoke(ah, "modifyWeight", [ak, bN], nil)
602+ if ((bO == bO))
597603 then {
598- let bM = if (if (bp)
604+ let bP = if (if (br)
599605 then true
600- else bF)
606+ else bI)
601607 then nil
602- else ([DeleteEntry(w(x))] ++ aC(al, bv))
603- $Tuple2(([IntegerEntry(H(x, bG), bK)] ++ bM), false)
608+ else ([DeleteEntry(y(z))] ++ aE(an, bx))
609+ $Tuple2(([IntegerEntry(J(z, bJ), bN)] ++ bP), false)
604610 }
605611 else throw("Strict value is not equal to itself.")
606612 }
607613 else throw("Strict value is not equal to itself.")
608614 }
609615 else throw("Strict value is not equal to itself.")
610616 }
611617 else throw("Strict value is not equal to itself.")
612618 }
613619
614620
615621
616-@Callable(aK)
622+@Callable(aM)
617623 func finalizeHelper () = {
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)
624+ let bI = valueOrElse(getBoolean(v), false)
625+ let i = valueOrElse(getInteger(this, j), 0)
626+ let bQ = (i - 1)
627+ let bh = V(this, w(i))
628+ let bb = V(this, f)
629+ let bi = (bh + bb)
630+ let bj = getInteger(this, p)
631+ if (if (if ((height >= bi))
632+ then (bj == unit)
627633 else false)
628- then !(bF)
634+ then !(bI)
629635 else false)
630636 then {
631- let bO = (u + 1)
632- $Tuple2([IntegerEntry(t(bO), height), IntegerEntry(p, height), IntegerEntry(g, bO), IntegerEntry(m, d)], true)
637+ let bR = (i + 1)
638+ let bS = getInteger(this, g)
639+ let bT = {
640+ let Q = bS
641+ if ($isInstanceOf(Q, "Int"))
642+ then {
643+ let bv = Q
644+[IntegerEntry(f, bv), DeleteEntry(g)]
645+ }
646+ else if ($isInstanceOf(Q, "Unit"))
647+ then nil
648+ else throw("Match error")
649+ }
650+ $Tuple2(([IntegerEntry(w(bR), height), IntegerEntry(s, height), IntegerEntry(j, bR), IntegerEntry(p, d), IntegerEntry(h(i), bb)] ++ bT), true)
633651 }
634- else if (if (bF)
635- then (bh == unit)
652+ else if (if (bI)
653+ then (bj == unit)
636654 else false)
637- then $Tuple2([IntegerEntry(m, e)], true)
638- else if ((bh == unit))
655+ then $Tuple2([IntegerEntry(p, e)], true)
656+ else if ((bj == unit))
639657 then $Tuple2(nil, false)
640- else if ((bh == d))
658+ else if ((bj == d))
641659 then {
642- let bP = getString(n)
643- let bQ = getString(o)
644- let O = bP
645- if ($isInstanceOf(O, "Unit"))
660+ let bU = getString(q)
661+ let bV = getString(r)
662+ let Q = bU
663+ if ($isInstanceOf(Q, "Unit"))
646664 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"))
665+ let bW = getString(aq(an))
666+ if ($isInstanceOf(bW, "Unit"))
667+ then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
668+ else if ($isInstanceOf(bW, "String"))
651669 then {
652- let bS = bR
653- $Tuple2([StringEntry(n, bS)], true)
670+ let bX = bW
671+ $Tuple2([StringEntry(q, bX)], true)
654672 }
655673 else throw("Match error")
656674 }
657- else if ($isInstanceOf(O, "String"))
675+ else if ($isInstanceOf(Q, "String"))
658676 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"))
677+ let bx = Q
678+ let z = X(bx)
679+ let bY = {
680+ let bW = bV
681+ if ($isInstanceOf(bW, "Unit"))
682+ then getString(aq(ao(z)))
683+ else if ($isInstanceOf(bW, "String"))
666684 then {
667- let bU = bR
668- let bV = getString(au(am(x), bU))
669- if ((bV == bV))
685+ let bZ = bW
686+ let ca = getString(aw(ao(z), bZ))
687+ if ((ca == ca))
670688 then {
671- let bW = invoke(this, "processVoteINTERNAL", [bv, bU], nil)
672- if ((bW == bW))
673- then bV
689+ let cb = invoke(this, "processVoteINTERNAL", [bx, bZ], nil)
690+ if ((cb == cb))
691+ then ca
674692 else throw("Strict value is not equal to itself.")
675693 }
676694 else throw("Strict value is not equal to itself.")
677695 }
678696 else throw("Match error")
679697 }
680- let bR = bT
681- if ($isInstanceOf(bR, "Unit"))
698+ let bW = bY
699+ if ($isInstanceOf(bW, "Unit"))
682700 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"))
701+ let cc = getString(aw(an, bx))
702+ let cd = cc
703+ if ($isInstanceOf(cd, "Unit"))
704+ then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
705+ else if ($isInstanceOf(cd, "String"))
688706 then {
689- let aG = bY
690- $Tuple2([StringEntry(n, aG), DeleteEntry(o)], true)
707+ let aI = cd
708+ $Tuple2([StringEntry(q, aI), DeleteEntry(r)], true)
691709 }
692710 else throw("Match error")
693711 }
694- else if ($isInstanceOf(bR, "String"))
712+ else if ($isInstanceOf(bW, "String"))
695713 then {
696- let bZ = bR
697- $Tuple2([StringEntry(o, bZ)], true)
714+ let ce = bW
715+ $Tuple2([StringEntry(r, ce)], true)
698716 }
699717 else throw("Match error")
700718 }
701719 else throw("Match error")
702720 }
703- else if ((bh == e))
721+ else if ((bj == e))
704722 then {
705- let bP = getString(n)
706- let O = bP
707- if ($isInstanceOf(O, "Unit"))
723+ let bU = getString(q)
724+ let Q = bU
725+ if ($isInstanceOf(Q, "Unit"))
708726 then {
709- let bR = getString(ao(al))
710- if ($isInstanceOf(bR, "Unit"))
727+ let bW = getString(aq(an))
728+ if ($isInstanceOf(bW, "Unit"))
711729 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)
730+ let bH = if (bI)
731+ then [DeleteEntry(p), DeleteEntry(v)]
732+ else [DeleteEntry(p), BooleanEntry(x(bQ), true), IntegerEntry(t, i), IntegerEntry(u, bh)]
733+ $Tuple2(bH, true)
716734 }
717- else if ($isInstanceOf(bR, "String"))
735+ else if ($isInstanceOf(bW, "String"))
718736 then {
719- let ca = bR
720- $Tuple2([StringEntry(n, ca)], true)
737+ let cf = bW
738+ $Tuple2([StringEntry(q, cf)], true)
721739 }
722740 else throw("Match error")
723741 }
724- else if ($isInstanceOf(O, "String"))
742+ else if ($isInstanceOf(Q, "String"))
725743 then {
726- let bv = O
727- let bX = getString(au(al, bv))
728- if ((bX == bX))
744+ let bx = Q
745+ let cc = getString(aw(an, bx))
746+ if ((cc == cc))
729747 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"))
748+ let bM = {
749+ let U = invoke(this, "processPoolINTERNAL", [bx, bI], nil)
750+ if ($isInstanceOf(U, "Boolean"))
751+ then U
752+ else throw(($getType(U) + " couldn't be cast to Boolean"))
735753 }
736- if ((bJ == bJ))
737- then if (bJ)
754+ if ((bM == bM))
755+ then if (bM)
738756 then $Tuple2(nil, true)
739757 else {
740- let bR = bX
741- if ($isInstanceOf(bR, "Unit"))
758+ let bW = cc
759+ if ($isInstanceOf(bW, "Unit"))
742760 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)
761+ let bH = if (bI)
762+ then [DeleteEntry(p), DeleteEntry(v), DeleteEntry(q)]
763+ else [DeleteEntry(p), BooleanEntry(x(bQ), true), IntegerEntry(t, i), IntegerEntry(u, bh), DeleteEntry(q)]
764+ $Tuple2(bH, true)
747765 }
748- else if ($isInstanceOf(bR, "String"))
766+ else if ($isInstanceOf(bW, "String"))
749767 then {
750- let ca = bR
751- $Tuple2([StringEntry(n, ca)], true)
768+ let cf = bW
769+ $Tuple2([StringEntry(q, cf)], true)
752770 }
753771 else throw("Match error")
754772 }
755773 else throw("Strict value is not equal to itself.")
756774 }
757775 else throw("Strict value is not equal to itself.")
758776 }
759777 else throw("Match error")
760778 }
761779 else throw("finalization is broken")
762780 }
763781
764782
765783
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"))
784+@Callable(aM)
785+func finalizeWrapper (cg) = {
786+ let ch = {
787+ let U = invoke(this, "finalizeHelper", nil, nil)
788+ if ($isInstanceOf(U, "Boolean"))
789+ then U
790+ else throw(($getType(U) + " couldn't be cast to Boolean"))
773791 }
774- if ((cc == cc))
775- then if (!(cc))
776- then if ((cb == 0))
792+ if ((ch == ch))
793+ then if (!(ch))
794+ then if ((cg == 0))
777795 then throw("Current voting is not over yet")
778796 else $Tuple2(nil, unit)
779797 else {
780- let cd = valueOrElse(getInteger(this, h), c)
781- if ((cd > cb))
798+ let ci = valueOrElse(getInteger(this, k), c)
799+ if ((ci > cg))
782800 then {
783- let ce = invoke(this, "finalizeWrapper", [(cb + 1)], nil)
784- if ((ce == ce))
801+ let cj = invoke(this, "finalizeWrapper", [(cg + 1)], nil)
802+ if ((cj == cj))
785803 then $Tuple2(nil, unit)
786804 else throw("Strict value is not equal to itself.")
787805 }
788806 else $Tuple2(nil, unit)
789807 }
790808 else throw("Strict value is not equal to itself.")
791809 }
792810
793811
794812
795-@Callable(aK)
813+@Callable(aM)
796814 func finalize () = {
797- let ce = invoke(this, "finalizeWrapper", [0], nil)
798- if ((ce == ce))
815+ let cj = invoke(this, "finalizeWrapper", [0], nil)
816+ if ((cj == cj))
799817 then $Tuple2(nil, unit)
800818 else throw("Strict value is not equal to itself.")
801819 }
802820
803821
804822
805-@Callable(aK)
806-func containsNodeREADONLY (ap,at) = $Tuple2(nil, av(ap, at))
823+@Callable(aM)
824+func containsNodeREADONLY (ar,av) = $Tuple2(nil, ax(ar, av))
807825
808826
809827
810-@Callable(aK)
811-func insertNode (ap,at) = {
812- let aO = aL(aK)
813- if ((aO == aO))
814- then $Tuple2(az(ap, at), unit)
828+@Callable(aM)
829+func insertNode (ar,av) = {
830+ let aQ = aN(aM)
831+ if ((aQ == aQ))
832+ then $Tuple2(aB(ar, av), unit)
815833 else throw("Strict value is not equal to itself.")
816834 }
817835
818836
819837
820-@Callable(aK)
821-func deleteNode (ap,at) = {
822- let aO = aL(aK)
823- if ((aO == aO))
824- then $Tuple2(aC(ap, at), unit)
838+@Callable(aM)
839+func deleteNode (ar,av) = {
840+ let aQ = aN(aM)
841+ if ((aQ == aQ))
842+ then $Tuple2(aE(ar, av), unit)
825843 else throw("Strict value is not equal to itself.")
826844 }
827845
828846
829-@Verifier(cf)
830-func cg () = {
831- let ch = {
832- let O = aF()
833- if ($isInstanceOf(O, "ByteVector"))
847+@Verifier(ck)
848+func cl () = {
849+ let cm = {
850+ let Q = aH()
851+ if ($isInstanceOf(Q, "ByteVector"))
834852 then {
835- let aM = O
836- aM
853+ let aO = Q
854+ aO
837855 }
838- else if ($isInstanceOf(O, "Unit"))
839- then cf.senderPublicKey
856+ else if ($isInstanceOf(Q, "Unit"))
857+ then ck.senderPublicKey
840858 else throw("Match error")
841859 }
842- sigVerify(cf.bodyBytes, cf.proofs[0], ch)
860+ sigVerify(ck.bodyBytes, ck.proofs[0], cm)
843861 }
844862

github/deemru/w8io/169f3d6 
330.61 ms