tx · CAvK6f6nXe8MYWD3ux8JeHzjKmC3DuCMAhwnohtGaxga

3PAph7xdg8VPNFdwaBnGBGSkGZ7Js9FB1h4:  -0.03600000 Waves

2022.11.25 20:19 [3398372] smart account 3PAph7xdg8VPNFdwaBnGBGSkGZ7Js9FB1h4 > SELF 0.00000000 Waves

{ "type": 13, "id": "CAvK6f6nXe8MYWD3ux8JeHzjKmC3DuCMAhwnohtGaxga", "fee": 3600000, "feeAssetId": null, "timestamp": 1669396737017, "version": 2, "chainId": 87, "sender": "3PAph7xdg8VPNFdwaBnGBGSkGZ7Js9FB1h4", "senderPublicKey": "4bu7KfUdw6VYG4bSXrmTRXDnFpikopM6Y9NZ1Mrba9Ag", "proofs": [ "4aoamqgUkYnVyhxCuMr7vPbiyMPtGUobPmDGDdMpQKLi691MPneKf95sBJF5HVgbHo5ikurnVzu42jxoE2nesCsg" ], "script": "base64:AAIFAAAAAAAAACgIAhIJCgcBAQEBAQgBEgASBAoCCAgSBAoCCAgSBAoCCAgSAwoBCBIAAAAAQAEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCIAAAABBQAAAANrZXkJAAEsAAAAAgkAASwAAAACAgAAAA9tYW5kYXRvcnkgdGhpcy4FAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAAAAAANTRVACAAAAAl9fAAAAAAhCVUZTQ0FMRQkAATYAAAABAA3gtrOnZAAAAAAAAAZzY2FsZTgAAAAAAAX14QABAAAACHRocm93RXJyAAAAAQAAAANtc2cJAAACAAAAAQkABLkAAAACCQAETAAAAAICAAAACWlkby5yaWRlOgkABEwAAAACBQAAAANtc2cFAAAAA25pbAIAAAABIAEAAAAdY29udmVydFByaWNlQXNzZXRJbnRvSWRvQXNzZXQAAAAFAAAAEHByaWNlQXNzZXRBbW91bnQAAAAOcHJpY2VBc3NldE1VTFQAAAAFcHJpY2UAAAAJcHJpY2VNVUxUAAAADGlkb0Fzc2V0TVVMVAQAAAAPYlByaWNlQXNzZXRNVUxUCQABNgAAAAEFAAAADnByaWNlQXNzZXRNVUxUBAAAAA1iSWRvQXNzZXRNVUxUCQABNgAAAAEFAAAADGlkb0Fzc2V0TVVMVAQAAAAOYlByaWNlQXNzZXRCVUYJAAE8AAAAAwkAATYAAAABBQAAABBwcmljZUFzc2V0QW1vdW50BQAAAAhCVUZTQ0FMRQUAAAAPYlByaWNlQXNzZXRNVUxUBAAAAA9iQW1vdW50QXNzZXRCVUYJAAE8AAAAAwUAAAAOYlByaWNlQXNzZXRCVUYJAAE2AAAAAQUAAAAJcHJpY2VNVUxUCQABNgAAAAEFAAAABXByaWNlCQABoAAAAAEJAAE8AAAAAwUAAAAPYkFtb3VudEFzc2V0QlVGCQABNgAAAAEFAAAADGlkb0Fzc2V0TVVMVAUAAAAIQlVGU0NBTEUAAAAADklkeENmZ0lkb1N0YXJ0AAAAAAAAAAABAAAAABFJZHhDZmdJZG9EdXJhdGlvbgAAAAAAAAAAAgAAAAAQSWR4Q2ZnQ2xhaW1TdGFydAAAAAAAAAAAAwAAAAATSWR4Q2ZnQ2xhaW1EdXJhdGlvbgAAAAAAAAAABAAAAAALSWR4Q2ZnUHJpY2UAAAAAAAAAAAUAAAAAD0lkeENmZ1ByaWNlTXVsdAAAAAAAAAAABgAAAAAQSWR4Q2ZnSWRvQXNzZXRJZAAAAAAAAAAABwAAAAASSWR4Q2ZnSWRvQXNzZXRNdWx0AAAAAAAAAAAIAAAAABJJZHhDZmdQcmljZUFzc2V0SWQAAAAAAAAAAAkAAAAAFElkeENmZ1ByaWNlQXNzZXRNdWx0AAAAAAAAAAAKAAAAABVJZHhDZmdNaW5JbnZlc3RBbW91bnQAAAAAAAAAAAsBAAAADWZyb21hdENvbmZpZ1MAAAAMAAAACGlkb1N0YXJ0AAAAC2lkb0R1cmF0aW9uAAAACmNsYWltU3RhcnQAAAANY2xhaW1EdXJhdGlvbgAAAAVwcmljZQAAAAlwcmljZU11bHQAAAAMaWRvQXNzZXRJZDU4AAAADGlkb0Fzc2V0TXVsdAAAAA5wcmljZUFzc2V0SWQ1OAAAAA5wcmljZUFzc2V0TXVsdAAAAA9taW5JbnZlc3RBbW91bnQAAAATdG90YWxJZG9Bc3NldFRvU2VsbAkABLkAAAACCQAETAAAAAICAAAAGCVkJWQlZCVkJWQlZCVzJWQlcyVkJWQlZAkABEwAAAACBQAAAAhpZG9TdGFydAkABEwAAAACBQAAAAtpZG9EdXJhdGlvbgkABEwAAAACBQAAAApjbGFpbVN0YXJ0CQAETAAAAAIFAAAADWNsYWltRHVyYXRpb24JAARMAAAAAgUAAAAFcHJpY2UJAARMAAAAAgUAAAAJcHJpY2VNdWx0CQAETAAAAAIFAAAADGlkb0Fzc2V0SWQ1OAkABEwAAAACBQAAAAxpZG9Bc3NldE11bHQJAARMAAAAAgUAAAAOcHJpY2VBc3NldElkNTgJAARMAAAAAgUAAAAOcHJpY2VBc3NldE11bHQJAARMAAAAAgUAAAAPbWluSW52ZXN0QW1vdW50CQAETAAAAAIFAAAAE3RvdGFsSWRvQXNzZXRUb1NlbGwFAAAAA25pbAUAAAADU0VQAQAAAAxmcm9tYXRDb25maWcAAAAMAAAACGlkb1N0YXJ0AAAAC2lkb0R1cmF0aW9uAAAACmNsYWltU3RhcnQAAAANY2xhaW1EdXJhdGlvbgAAAAVwcmljZQAAAAlwcmljZU11bHQAAAAMaWRvQXNzZXRJZDU4AAAADGlkb0Fzc2V0TXVsdAAAAA5wcmljZUFzc2V0SWQ1OAAAAA5wcmljZUFzc2V0TXVsdAAAAA9taW5JbnZlc3RBbW91bnQAAAATdG90YWxJZG9Bc3NldFRvU2VsbAkBAAAADWZyb21hdENvbmZpZ1MAAAAMCQABpAAAAAEFAAAACGlkb1N0YXJ0CQABpAAAAAEFAAAAC2lkb0R1cmF0aW9uCQABpAAAAAEFAAAACmNsYWltU3RhcnQJAAGkAAAAAQUAAAANY2xhaW1EdXJhdGlvbgkAAaQAAAABBQAAAAVwcmljZQkAAaQAAAABBQAAAAlwcmljZU11bHQFAAAADGlkb0Fzc2V0SWQ1OAkAAaQAAAABBQAAAAxpZG9Bc3NldE11bHQFAAAADnByaWNlQXNzZXRJZDU4CQABpAAAAAEFAAAADnByaWNlQXNzZXRNdWx0CQABpAAAAAEFAAAAD21pbkludmVzdEFtb3VudAkAAaQAAAABBQAAABN0b3RhbElkb0Fzc2V0VG9TZWxsAAAAABFJZHhJbnZUb3RhbEFtb3VudAAAAAAAAAAAAQAAAAAVSWR4SW52UmVtYWluaW5nQW1vdW50AAAAAAAAAAACAAAAAB1JZHhJbnZDbGFpbWVkUHJpY2VBc3NldEFtb3VudAAAAAAAAAAAAwAAAAAbSWR4SW52Q2xhaW1lZElkb0Fzc2V0QW1vdW50AAAAAAAAAAAEAAAAABdJZHhJbnZMYXN0Q2xhaW1lZEhlaWdodAAAAAAAAAAABQEAAAAPZm9ybWF0SW52ZXN0b3JTAAAABQAAAAt0b3RhbEFtb3VudAAAAA9yZW1haW5pbmdBbW91bnQAAAAXY2xhaW1lZFByaWNlQXNzZXRBbW91bnQAAAAVY2xhaW1lZElkb0Fzc2V0QW1vdW50AAAAEWxhc3RDbGFpbWVkSGVpZ2h0CQAEuQAAAAIJAARMAAAAAgIAAAAKJWQlZCVkJWQlZAkABEwAAAACBQAAAAt0b3RhbEFtb3VudAkABEwAAAACBQAAAA9yZW1haW5pbmdBbW91bnQJAARMAAAAAgUAAAAXY2xhaW1lZFByaWNlQXNzZXRBbW91bnQJAARMAAAAAgUAAAAVY2xhaW1lZElkb0Fzc2V0QW1vdW50CQAETAAAAAIFAAAAEWxhc3RDbGFpbWVkSGVpZ2h0BQAAAANuaWwFAAAAA1NFUAEAAAAOZm9ybWF0SW52ZXN0b3IAAAAFAAAAC3RvdGFsQW1vdW50AAAAD3JlbWFpbmluZ0Ftb3VudAAAABdjbGFpbWVkUHJpY2VBc3NldEFtb3VudAAAABVjbGFpbWVkSWRvQXNzZXRBbW91bnQAAAARbGFzdENsYWltZWRIZWlnaHQJAQAAAA9mb3JtYXRJbnZlc3RvclMAAAAFCQABpAAAAAEFAAAAC3RvdGFsQW1vdW50CQABpAAAAAEFAAAAD3JlbWFpbmluZ0Ftb3VudAkAAaQAAAABBQAAABdjbGFpbWVkUHJpY2VBc3NldEFtb3VudAkAAaQAAAABBQAAABVjbGFpbWVkSWRvQXNzZXRBbW91bnQJAAGkAAAAAQUAAAARbGFzdENsYWltZWRIZWlnaHQBAAAAE2Zvcm1hdEhpc3RvcnlSZWNvcmQAAAACAAAAEHByaWNlQXNzZXRBbW91bnQAAAAOaWRvQXNzZXRBbW91bnQJAAS5AAAAAgkABEwAAAACAgAAAAglZCVkJWQlZAkABEwAAAACCQABpAAAAAEFAAAABmhlaWdodAkABEwAAAACCQABpAAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAAGkAAAAAQUAAAAQcHJpY2VBc3NldEFtb3VudAkABEwAAAACCQABpAAAAAEFAAAADmlkb0Fzc2V0QW1vdW50BQAAAANuaWwFAAAAA1NFUAEAAAAJa2V5Q29uZmlnAAAAAAIAAAAKJXNfX2NvbmZpZwEAAAALa2V5SW52ZXN0b3IAAAABAAAAC3VzZXJBZGRyZXNzCQABLAAAAAICAAAABCVzX18FAAAAC3VzZXJBZGRyZXNzAQAAAAlrZXlUb3RhbHMAAAAAAgAAAAolc19fdG90YWxzAQAAABlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkAAAAAwAAAAR0eXBlAAAAC3VzZXJBZGRyZXNzAAAABnR4SWQ1OAkABLkAAAACCQAETAAAAAICAAAAESVzJXMlcyVzX19oaXN0b3J5CQAETAAAAAIFAAAABHR5cGUJAARMAAAAAgUAAAALdXNlckFkZHJlc3MJAARMAAAAAgUA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ZXkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAIAAAAbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQAAAA9yZWFkQ29uZmlnQXJyYXkAAAAACQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAJa2V5Q29uZmlnAAAAAAUAAAADU0VQAQAAACNyZWFkVG90YWxzQXJyYXlPckRlZmF1bHRCeUN1c3RvbUtleQAAAAEAAAAJY3VzdG9tS2V5CQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQiAAAAAQUAAAAJY3VzdG9tS2V5CQEAAAAPZm9ybWF0SW52ZXN0b3JTAAAABQIAAAABMAIAAAABMAIAAAABMAIAAAABMAIAAAABMAUAAAADU0VQAQAAABhyZWFkVG90YWxzQXJyYXlPckRlZmF1bHQAAAAACQEAAAAjcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0QnlDdXN0b21LZXkAAAABCQEAAAAJa2V5VG90YWxzAAAAAAEAAAAacmVhZEludmVzdG9yQXJyYXlPckRlZmF1bHQAAAABAAAAC3VzZXJBZGRyZXNzCQEAAAAjcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0QnlDdXN0b21LZXkAAAABCQEAAAALa2V5SW52ZXN0b3IAAAABBQAAAAt1c2VyQWRkcmVzcwEAAAAXcmVhZEludmVzdG9yQXJyYXlPckZhaWwAAAABAAAAC3VzZXJBZGRyZXNzCQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAALa2V5SW52ZXN0b3IAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAADU0VQAAAAABVJZHhEaWZmVG90YWxJbmNyZW1lbnQAAAAAAAAAAAAAAAAAJElkeERpZmZSZW1haW5pbmdQcmljZUFtb3VudEluY3JlbWVudAAAAAAAAAAAAQAAAAAiSWR4RGlmZkNsYWltZWRQcmljZUFtb3VudEluY3JlbWVudAAAAAAAAAAAAgAAAAAlSWR4RGlmZkNsYWltZWRJZG9Bc3NldEFtb3VudEluY3JlbWVudAAAAAAAAAAAAwEAAAALVG90YWxzRW50cnkAAAAFAAAAA2tleQAAAAlvcmlnQXJyYXkAAAANaW5jcmVtZW50RGlmZgAAABRuZXdMYXN0Q2xhaW1lZEhlaWdodAAAABFwcmljZUFzc2V0QmFsYW5jZQQAAAALdG90YWxBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlvcmlnQXJyYXkFAAAAEUlkeEludlRvdGFsQW1vdW50BAAAAA9yZW1haW5pbmdBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlvcmlnQXJyYXkFAAAAFUlkeEludlJlbWFpbmluZ0Ftb3VudAQAAAAXY2xhaW1lZFByaWNlQXNzZXRBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlvcmlnQXJyYXkFAAAAHUlkeEludkNsYWltZWRQcmljZUFzc2V0QW1vdW50BAAAABVjbGFpbWVkSWRvQXNzZXRBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlvcmlnQXJyYXkFAAAAG0lkeEludkNsYWltZWRJZG9Bc3NldEFtb3VudAQAAAARbGFzdENsYWltZWRIZWlnaHQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlvcmlnQXJyYXkFAAAAF0lkeEludkxhc3RDbGFpbWVkSGVpZ2h0BAAAAA5uZXdUb3RhbEFtb3VudAkAAGQAAAACBQAAAAt0b3RhbEFtb3VudAkAAZEAAAACBQAAAA1pbmNyZW1lbnREaWZmBQAAABVJZHhEaWZmVG90YWxJbmNyZW1lbnQEAAAAEm5ld1JlbWFpbmluZ0Ftb3VudAkAAGQAAAACBQAAAA9yZW1haW5pbmdBbW91bnQJAAGRAAAAAgUAAAANaW5jcmVtZW50RGlmZgUAAAAkSWR4RGlmZlJlbWFpbmluZ1ByaWNlQW1vdW50SW5jcmVtZW50BAAAAAhjZmdBcnJheQkBAAAAD3JlYWRDb25maWdBcnJheQAAAAAEAAAADnByaWNlQXNzZXRJZDU4CQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdQcmljZUFzc2V0SWQEAAAAEnByaWNlQXNzZXREZWNpbWFscwgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAAAAAhkZWNpbWFscwQAAAAjcHJpY2VBc3NldEJhbGFuY2VQcmljZUFzc2V0RGVjaW1hbHMJAABrAAAAAwUAAAARcHJpY2VBc3NldEJhbGFuY2UFAAAABnNjYWxlOAkAAGwAAAAGAAAAAAAAAAAKAAAAAAAAAAAABQAAABJwcmljZUFzc2V0RGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAABERPV04EAAAAGm5ld0NsYWltZWRQcmljZUFzc2V0QW1vdW50CQAAZQAAAAIJAABkAAAAAgUAAAAXY2xhaW1lZFByaWNlQXNzZXRBbW91bnQJAAGRAAAAAgUAAAANaW5jcmVtZW50RGlmZgUAAAAiSWR4RGlmZkNsYWltZWRQcmljZUFtb3VudEluY3JlbWVudAUAAAARcHJpY2VBc3NldEJhbGFuY2UEAAAAGG5ld0NsYWltZWRJZG9Bc3NldEFtb3VudAkAAGQAAAACCQAAZAAAAAIFAAAAFWNsYWltZWRJZG9Bc3NldEFtb3VudAkAAZEAAAACBQAAAA1pbmNyZW1lbnREaWZmBQAAACVJZHhEaWZmQ2xhaW1lZElkb0Fzc2V0QW1vdW50SW5jcmVtZW50BQAAACNwcmljZUFzc2V0QmFsYW5jZVByaWNlQXNzZXREZWNpbWFscwMJAABmAAAAAgAAAAAAAAAAAAUAAAASbmV3UmVtYWluaW5nQW1vdW50CQEAAAAIdGhyb3dFcnIAAAABCQAEuQAAAAIJAARMAAAAAgIAAAAMaW52YWxpZCBtYXRoCQAETAAAAAIJAAGkAAAAAQUAAAAPcmVtYWluaW5nQW1vdW50CQAETAAAAAIJAAGkAAAAAQkAAZEAAAACBQAAAA1pbmNyZW1lbnREaWZmBQAAACRJZHhEaWZmUmVtYWluaW5nUHJpY2VBbW91bnRJbmNyZW1lbnQJAARMAAAAAgkAAaQAAAABBQAAABJuZXdSZW1haW5pbmdBbW91bnQJAARMAAAAAgkAAaQAAAABCQABkQAAAAIFAAAADWluY3JlbWVudERpZmYFAAAAFUlkeERpZmZUb3RhbEluY3JlbWVudAUAAAADbmlsAgAAAAEgCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAANrZXkJAQAAAA5mb3JtYXRJbnZlc3RvcgAAAAUFAAAADm5ld1RvdGFsQW1vdW50BQAAABJuZXdSZW1haW5pbmdBbW91bnQFAAAAGm5ld0NsYWltZWRQcmljZUFzc2V0QW1vdW50BQAAABhuZXdDbGFpbWVkSWRvQXNzZXRBbW91bnQFAAAAFG5ld0xhc3RDbGFpbWVkSGVpZ2h0AQAAABtJbnZlc3RPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAEAAAAC3VzZXJBZGRyZXNzAAAAEHByaWNlQXNzZXRBbW91bnQAAAAOaWRvQXNzZXRBbW91bnQAAAAEdHhJZAkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGWtleU9wZXJhdGlvbkhpc3RvcnlSZWNvcmQAAAADAgAAAAZpbnZlc3QFAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEFAAAABHR4SWQJAQAAABNmb3JtYXRIaXN0b3J5UmVjb3JkAAAAAgUAAAAQcHJpY2VBc3NldEFtb3VudAUAAAAOaWRvQXNzZXRBbW91bnQBAAAAGkNsYWltT3BlcmF0aW9uSGlzdG9yeUVudHJ5AAAABAAAAAt1c2VyQWRkcmVzcwAAABBwcmljZUFzc2V0QW1vdW50AAAADmlkb0Fzc2V0QW1vdW50AAAABHR4SWQJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkAAAAAwIAAAAFY2xhaW0FAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEFAAAABHR4SWQJAQAAABNmb3JtYXRIaXN0b3J5UmVjb3JkAAAAAgUAAAAQcHJpY2VBc3NldEFtb3VudAUAAAAOaWRvQXNzZXRBbW91bnQBAAAADWludGVybmFsQ2xhaW0AAAADAAAAEGNsYWltZWRBc3NldElkNTgAAAALdXNlckFkZHJlc3MAAAAEdHhJZAQAAAAIY2ZnQXJyYXkJAQAAAA9yZWFkQ29uZmlnQXJyYXkAAAAABAAAAApjbGFpbVN0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAEElkeENmZ0NsYWltU3RhcnQEAAAADWNsYWltRHVyYXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAATSWR4Q2ZnQ2xhaW1EdXJhdGlvbgQAAAAIY2xhaW1FbmQJAABkAAAAAgUAAAAKY2xhaW1TdGFydAUAAAANY2xhaW1EdXJhdGlvbgQAAAAFcHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAALSWR4Q2ZnUHJpY2UEAAAACXByaWNlTXVsdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAAA9JZHhDZmdQcmljZU11bHQEAAAADGlkb0Fzc2V0SWQ1OAkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAQSWR4Q2ZnSWRvQXNzZXRJZAQAAAAKaWRvQXNzZXRJZAkAAlkAAAABBQAAAAxpZG9Bc3NldElkNTgEAAAADGlkb0Fzc2V0TXVsdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdJZG9Bc3NldE11bHQEAAAADnByaWNlQXNzZXRJZDU4CQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdQcmljZUFzc2V0SWQEAAAADHByaWNlQXNzZXRJZAkAAlkAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAQAAAAOcHJpY2VBc3NldE11bHQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAUSWR4Q2ZnUHJpY2VBc3NldE11bHQEAAAADXVzZXJBZGRyZXNzNTgJAAQlAAAAAQUAAAALdXNlckFkZHJlc3MEAAAAD29yaWdJbnZlc3RBcnJheQkBAAAAF3JlYWRJbnZlc3RvckFycmF5T3JGYWlsAAAAAQUAAAANdXNlckFkZHJlc3M1OAQAAAARaW52ZXN0VG90YWxBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9vcmlnSW52ZXN0QXJyYXkFAAAAEUlkeEludlRvdGFsQW1vdW50BAAAABppbnZlc3RMYXN0Q2xhaW1lZEhlaWdodFRNUAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD29yaWdJbnZlc3RBcnJheQUAAAAXSWR4SW52TGFzdENsYWltZWRIZWlnaHQEAAAAF2ludmVzdExhc3RDbGFpbWVkSGVpZ2h0AwkAAGcAAAACBQAAAApjbGFpbVN0YXJ0BQAAABppbnZlc3RMYXN0Q2xhaW1lZEhlaWdodFRNUAUAAAAKY2xhaW1TdGFydAUAAAAaaW52ZXN0TGFzdENsYWltZWRIZWlnaHRUTVAEAAAAFG5ld0NsYWltUGVyaW9kSGVpZ2h0AwkAAGYAAAACBQAAAAZoZWlnaHQFAAAACGNsYWltRW5kBQAAAAhjbGFpbUVuZAMJAABmAAAAAgUAAAAKY2xhaW1TdGFydAUAAAAGaGVpZ2h0BQAAAApjbGFpbVN0YXJ0BQAAAAZoZWlnaHQEAAAADmNsYWltaW5nQmxvY2tzCQAAZQAAAAIFAAAAFG5ld0NsYWltUGVyaW9kSGVpZ2h0BQAAABdpbnZlc3RMYXN0Q2xhaW1lZEhlaWdodAQAAAAYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50CQAAawAAAAMFAAAAEWludmVzdFRvdGFsQW1vdW50BQAAAA5jbGFpbWluZ0Jsb2NrcwUAAAANY2xhaW1EdXJhdGlvbgQAAAAFZXJyb3IJAQAAAAh0aHJvd0VycgAAAAEJAAS5AAAAAgkABEwAAAACCQABpAAAAAEFAAAAEWludmVzdFRvdGFsQW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAOY2xhaW1pbmdCbG9ja3MJAARMAAAAAgkAAaQAAAABBQAAAA1jbGFpbUR1cmF0aW9uCQAETAAAAAIJAAGkAAAAAQUAAAAYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50BQAAAANuaWwCAAAAASADCQAAAAAAAAIFAAAABWVycm9yBQAAAAVlcnJvcgQAAAAWY2xhaW1pbmdJZG9Bc3NldEFtb3VudAkBAAAAHWNvbnZlcnRQcmljZUFzc2V0SW50b0lkb0Fzc2V0AAAABQUAAAAYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50BQAAAA5wcmljZUFzc2V0TXVsdAUAAAAFcHJpY2UFAAAACXByaWNlTXVsdAUAAAAMaWRvQXNzZXRNdWx0BAAAAAZpc1VTRE4JAAAAAAAAAgUAAAAQY2xhaW1lZEFzc2V0SWQ1OAUAAAAOcHJpY2VBc3NldElkNTgEAAAAE2lzVVNETkNsYWltRGlzYWJsZWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQgAAAAAQkBAAAAFGtleVVTRE5DbGFpbURpc2FibGVkAAAAAAcEAAAABmNoZWNrcwkABEwAAAACAwkBAAAAASEAAAABAwUAAAAGaXNVU0ROBQAAABNpc1VTRE5DbGFpbURpc2FibGVkBwYJAAACAAAAAQIAAAAWVVNETiBjbGFpbSBpcyBkaXNhYmxlZAUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwMJAAAAAAAAAgUAAAAQY2xhaW1lZEFzc2V0SWQ1OAUAAAAOcHJpY2VBc3NldElkNTgJAAUYAAAABgkABEwAAAACAAAAAAAAAAAACQAETAAAAAIJAQAAAAEtAAAAAQUAAAAYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50CQAETAAAAAIFAAAAGGNsYWltaW5nUHJpY2VBc3NldEFtb3VudAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwFAAAAGGNsYWltaW5nUHJpY2VBc3NldEFtb3VudAUAAAAMcHJpY2VBc3NldElkBQAAAA9vcmlnSW52ZXN0QXJyYXkFAAAAFG5ld0NsYWltUGVyaW9kSGVpZ2h0CQAETAAAAAIFAAAAGGNsYWltaW5nUHJpY2VBc3NldEFtb3VudAkABEwAAAACBQAAABZjbGFpbWluZ0lkb0Fzc2V0QW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAAEGNsYWltZWRBc3NldElkNTgFAAAADGlkb0Fzc2V0SWQ1OAkABRgAAAAGCQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgkBAAAAAS0AAAABBQAAABhjbGFpbWluZ1ByaWNlQXNzZXRBbW91bnQJAARMAAAAAgAAAAAAAAAAAAkABEwAAAACBQAAABZjbGFpbWluZ0lkb0Fzc2V0QW1vdW50BQAAAANuaWwFAAAAFmNsYWltaW5nSWRvQXNzZXRBbW91bnQFAAAACmlkb0Fzc2V0SWQFAAAAD29yaWdJbnZlc3RBcnJheQUAAAAUbmV3Q2xhaW1QZXJpb2RIZWlnaHQJAARMAAAAAgUAAAAYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50CQAETAAAAAIFAAAAFmNsYWltaW5nSWRvQXNzZXRBbW91bnQFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAFXVuc3VwcG9ydGVkIGFzc2V0SWQ6IAUAAAAQY2xhaW1lZEFzc2V0SWQ1OAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAA9pbnRlcm5hbENsYWltVjIAAAAEAAAADnByaWNlQXNzZXRJZDU4AAAADXVzZXJBZGRyZXNzNTgAAAAJb3V0QW1vdW50AAAAGXRvdGFsVXNlckF2YWlsYWJsZVRvQ2xhaW0EAAAAHnRvdGFsUGVyaW9kUHJpY2VBc3NldEFsbG93YW5jZQkBAAAABXZhbHVlAAAAAQkABB8AAAABCQEAAAAXa2V5VG90YWxQZXJpb2RBbGxvd2FuY2UAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAQAAAAddXNlclBlcmlvZFByaWNlQXNzZXRBbGxvd2FuY2UJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAFmtleVVzZXJQZXJpb2RBbGxvd2FuY2UAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAQAAAAMcGVyaW9kTGVuZ3RoCQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAAA9rZXlQZXJpb2RMZW5ndGgAAAAABAAAAA1jdXJyZW50UGVyaW9kCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABBrZXlDdXJyZW50UGVyaW9kAAAAAAAAAAAAAAAAAAQAAAAbemVyb1BlcmlvZEVuZEhlaWdoSXNEZWZpbmVkCQEAAAAJaXNEZWZpbmVkAAAAAQkABB8AAAABCQEAAAASa2V5UGVyaW9kRW5kSGVpZ2h0AAAAAQAAAAAAAAAAAAQAAAANJHQwMTI3MDExNDU3MQMJAABmAAAAAgUAAAANY3VycmVudFBlcmlvZAAAAAAAAAAAAAQAAAAVbGFzdFBlcmlvZFN0YXJ0SGVpZ2h0CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABRrZXlQZXJpb2RTdGFydEhlaWdodAAAAAEFAAAADWN1cnJlbnRQZXJpb2QEAAAAE2xhc3RQZXJpb2RFbmRIZWlnaHQJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAEmtleVBlcmlvZEVuZEhlaWdodAAAAAEFAAAADWN1cnJlbnRQZXJpb2QEAAAADSR0MDEyOTYxMTM2NjYDCQAAZgAAAAIFAAAABmhlaWdodAUAAAATbGFzdFBlcmlvZEVuZEhlaWdodAQAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QJAABkAAAAAgUAAAANY3VycmVudFBlcmlvZAAAAAAAAAAAAQQAAAALcGVyaW9kU3RhcnQDCQAAZgAAAAIFAAAABmhlaWdodAkAAGQAAAACBQAAABNsYXN0UGVyaW9kRW5kSGVpZ2h0BQAAAAxwZXJpb2RMZW5ndGgEAAAAF2Jsb2Nrc1RvTGFzdFBlcmlvZFN0YXJ0CQAAagAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABNsYXN0UGVyaW9kRW5kSGVpZ2h0BQAAAAxwZXJpb2RMZW5ndGgDCQAAAAAAAAIFAAAAF2Jsb2Nrc1RvTGFzdFBlcmlvZFN0YXJ0AAAAAAAAAAAACQAAZAAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAxwZXJpb2RMZW5ndGgAAAAAAAAAAAEJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABdibG9ja3NUb0xhc3RQZXJpb2RTdGFydAkAAGQAAAACBQAAABNsYXN0UGVyaW9kRW5kSGVpZ2h0AAAAAAAAAAABBAAAAAlwZXJpb2RFbmQJAABlAAAAAgkAAGQAAAACBQAAAAtwZXJpb2RTdGFydAUAAAAMcGVyaW9kTGVuZ3RoAAAAAAAAAAABCQAFFQAAAAMFAAAAFHVwZGF0ZWRDdXJyZW50UGVyaW9kBQAAAAtwZXJpb2RTdGFydAUAAAAJcGVyaW9kRW5kCQAFFQAAAAMFAAAADWN1cnJlbnRQZXJpb2QFAAAAFWxhc3RQZXJpb2RTdGFydEhlaWdodAUAAAATbGFzdFBlcmlvZEVuZEhlaWdodAQAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QIBQAAAA0kdDAxMjk2MTEzNjY2AAAAAl8xBAAAAAtwZXJpb2RTdGFydAgFAAAADSR0MDEyOTYxMTM2NjYAAAACXzIEAAAACXBlcmlvZEVuZAgFAAAADSR0MDEyOTYxMTM2NjYAAAACXzMJAAUVAAAAAwUAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QFAAAAC3BlcmlvZFN0YXJ0BQAAAAlwZXJpb2RFbmQDBQAAABt6ZXJvUGVyaW9kRW5kSGVpZ2hJc0RlZmluZWQEAAAAFXplcm9QZXJpb2RTdGFydEhlaWdodAkBAAAABXZhbHVlAAAAAQkABB8AAAABCQEAAAAUa2V5UGVyaW9kU3RhcnRIZWlnaHQAAAABAAAAAAAAAAAABAAAABN6ZXJvUGVyaW9kRW5kSGVpZ2h0CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABJrZXlQZXJpb2RFbmRIZWlnaHQAAAABAAAAAAAAAAAABAAAAA0kdDAxMzkyMTE0MzAzAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAE3plcm9QZXJpb2RFbmRIZWlnaHQEAAAAFHVwZGF0ZWRDdXJyZW50UGVyaW9kCQAAZAAAAAIFAAAADWN1cnJlbnRQZXJpb2QAAAAAAAAAAAEEAAAAC3BlcmlvZFN0YXJ0CQAAZAAAAAIFAAAAE3plcm9QZXJpb2RFbmRIZWlnaHQAAAAAAAAAAAEEAAAACXBlcmlvZEVuZAkAAGUAAAACCQAAZAAAAAIFAAAAC3BlcmlvZFN0YXJ0BQAAAAxwZXJpb2RMZW5ndGgAAAAAAAAAAAEJAAUVAAAAAwUAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QFAAAAC3BlcmlvZFN0YXJ0BQAAAAlwZXJpb2RFbmQJAAUVAAAAAwUAAAANY3VycmVudFBlcmlvZAUAAAAVemVyb1BlcmlvZFN0YXJ0SGVpZ2h0BQAAABN6ZXJvUGVyaW9kRW5kSGVpZ2h0BAAAABR1cGRhdGVkQ3VycmVudFBlcmlvZAgFAAAADSR0MDEzOTIxMTQzMDMAAAACXzEEAAAAC3BlcmlvZFN0YXJ0CAUAAAANJHQwMTM5MjExNDMwMwAAAAJfMgQAAAAJcGVyaW9kRW5kCAUAAAANJHQwMTM5MjExNDMwMwAAAAJfMwkABRUAAAADBQAAABR1cGRhdGVkQ3VycmVudFBlcmlvZAUAAAALcGVyaW9kU3RhcnQFAAAACXBlcmlvZEVuZAkABRUAAAADBQAAAA1jdXJyZW50UGVyaW9kCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABRrZXlQZXJpb2RTdGFydEhlaWdodAAAAAEFAAAADWN1cnJlbnRQZXJpb2QFAAAABmhlaWdodAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQEAAAASa2V5UGVyaW9kRW5kSGVpZ2h0AAAAAQUAAAANY3VycmVudFBlcmlvZAkAAGUAAAACCQAAZAAAAAIFAAAABmhlaWdodAUAAAAMcGVyaW9kTGVuZ3RoAAAAAAAAAAABBAAAABR1cGRhdGVkQ3VycmVudFBlcmlvZAgFAAAADSR0MDEyNzAxMTQ1NzEAAAACXzEEAAAAC3BlcmlvZFN0YXJ0CAUAAAANJHQwMTI3MDExNDU3MQAAAAJfMgQAAAAJcGVyaW9kRW5kCAUAAAANJHQwMTI3MDExNDU3MQAAAAJfMwQAAAAbcGVyaW9kVG90YWxBdmFpbGFibGVUb0NsYWltCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAAB5rZXlQZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0AAAACBQAAAA5wcmljZUFzc2V0SWQ1OAUAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QFAAAAHnRvdGFsUGVyaW9kUHJpY2VBc3NldEFsbG93YW5jZQQAAAAacGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0JAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAHWtleVBlcmlvZFVzZXJBdmFpbGFibGVUb0NsYWltAAAAAwUAAAAOcHJpY2VBc3NldElkNTgFAAAAFHVwZGF0ZWRDdXJyZW50UGVyaW9kBQAAAA11c2VyQWRkcmVzczU4BQAAAB11c2VyUGVyaW9kUHJpY2VBc3NldEFsbG93YW5jZQQAAAARcHJpY2VBc3NldEJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAFGtleVByaWNlQXNzZXRCYWxhbmNlAAAAAQUAAAANdXNlckFkZHJlc3M1OAAAAAAAAAAAAAQAAAAZcGVyaW9kTWluQXZhaWxhYmxlVG9DbGFpbQkAAZcAAAABCQAETAAAAAIJAABkAAAAAgUAAAAJb3V0QW1vdW50BQAAABFwcmljZUFzc2V0QmFsYW5jZQkABEwAAAACBQAAABtwZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgUAAAAacGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0FAAAAA25pbAQAAAAcdXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbwkBAAAABXZhbHVlAAAAAQkABB8AAAABCQEAAAAfa2V5VXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbwAAAAAEAAAAG3B1dE9uZVRrblYyUHJpY2VBc3NldEFtb3VudAUAAAAGc2NhbGU4BAAAAA0kdDAxNTMyNjE1NTc5CgAAAAABQAkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAFdmFsdWUAAAABCQAEIgAAAAEJAQAAABtrZXlVc2R0UHJpY2VBc3NldFN0YWJsZVBvb2wAAAAAAgAAACFwdXRPbmVUa25WMldpdGhvdXRUYWtlRmVlUkVBRE9OTFkJAARMAAAAAgUAAAAbcHV0T25lVGtuVjJQcmljZUFzc2V0QW1vdW50CQAETAAAAAIFAAAADnByaWNlQXNzZXRJZDU4BQAAAANuaWwFAAAAA25pbAMJAAABAAAAAgUAAAABQAIAAAAPKEludCwgSW50LCBJbnQpBQAAAAFACQAAAgAAAAECAAAAJENvdWxkbid0IGNhc3QgQW55IHRvIChJbnQsIEludCwgSW50KQMJAAAAAAAAAgUAAAANJHQwMTUzMjYxNTU3OQUAAAANJHQwMTUzMjYxNTU3OQQAAAAFYm9udXMIBQAAAA0kdDAxNTMyNjE1NTc5AAAAAl8zBAAAAAlmZWVBbW91bnQIBQAAAA0kdDAxNTMyNjE1NTc5AAAAAl8yBAAAAAhscEFtb3VudAgFAAAADSR0MDE1MzI2MTU1NzkAAAACXzEEAAAAC3VzZHRBc3NldElkCQEAAAAFdmFsdWUAAAABCQAEIgAAAAEJAQAAAA5rZXlVc2R0QXNzZXRJZAAAAAAEAAAADSR0MDE1NjQxMTU4NTkKAAAAAAFACQAD/AAAAAQJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAG2tleVVzZHRQcmljZUFzc2V0U3RhYmxlUG9vbAAAAAACAAAAE2dldE9uZVRrblYyUkVBRE9OTFkJAARMAAAAAgUAAAALdXNkdEFzc2V0SWQJAARMAAAAAgUAAAAIbHBBbW91bnQFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAFAAgAAAAooSW50LCBJbnQpBQAAAAFACQAAAgAAAAECAAAAH0NvdWxkbid0IGNhc3QgQW55IHRvIChJbnQsIEludCkDCQAAAAAAAAIFAAAADSR0MDE1NjQxMTU4NTkFAAAADSR0MDE1NjQxMTU4NTkEAAAAFGdldE9uZVRrblYyRmVlQW1vdW50CAUAAAANJHQwMTU2NDExNTg1OQAAAAJfMgQAAAAKdXNkdEFtb3VudAgFAAAADSR0MDE1NjQxMTU4NTkAAAACXzEEAAAAGmN1cnJlbnRVc2R0UHJpY2VBc3NldFJhdGlvCQAAawAAAAMFAAAAG3B1dE9uZVRrblYyUHJpY2VBc3NldEFtb3VudAUAAAAGc2NhbGU4BQAAAAp1c2R0QW1vdW50BAAAABNlbmRQZXJpb2RCbG9ja3NMZWZ0CQAAZQAAAAIFAAAACXBlcmlvZEVuZAUAAAAGaGVpZ2h0CQAFHAAAAAoFAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0FAAAAG3BlcmlvZFRvdGFsQXZhaWxhYmxlVG9DbGFpbQUAAAAacGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0FAAAAGXRvdGFsVXNlckF2YWlsYWJsZVRvQ2xhaW0FAAAAHHVzZHRQcmljZUFzc2V0QWxsb3dhYmxlUmF0aW8FAAAAGmN1cnJlbnRVc2R0UHJpY2VBc3NldFJhdGlvBQAAABNlbmRQZXJpb2RCbG9ja3NMZWZ0BQAAABR1cGRhdGVkQ3VycmVudFBlcmlvZAUAAAALcGVyaW9kU3RhcnQFAAAACXBlcmlvZEVuZAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAABZtYW5hZ2VyUHVibGljS2V5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b2FkIHByaWNlIGFzc2V0IGluZm8EAAAADnByaWNlQXNzZXRNdWx0CQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAIBQAAAA5wcmljZUFzc2V0SW5mbwAAAAhkZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAAPb3JpZ1RvdGFsc0FycmF5CQEAAAAYcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0AAAAAAQAAAAKdG90YWxzRGlmZgkABEwAAAACAAAAAAAAAAAACQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgAAAAAAAAAAAAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAACWtleUNvbmZpZwAAAAAJAQAAAAxmcm9tYXRDb25maWcAAAAMBQAAAAhpZG9TdGFydAUAAAALaWRvRHVyYXRpb24FAAAACmNsYWltU3RhcnQFAAAADWNsYWltRHVyYXRpb24FAAAABXByaWNlBQAAAAlwcmljZU11bHQFAAAADGlkb0Fzc2V0SWQ1OAUAAAAMaWRvQXNzZXRNdWx0BQAAAA5wcmljZUFzc2V0SWQ1OAUAAAAOcHJpY2VBc3NldE11bHQFAAAAD21pbkludmVzdEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAAC1RvdGFsc0VudHJ5AAAABQkBAAAACWtleVRvdGFscwAAAAAFAAAAD29yaWdUb3RhbHNBcnJheQUAAAAKdG90YWxzRGlmZgUAAAAKY2xhaW1TdGFydAAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAABmludmVzdAAAAAAEAAAACGNmZ0FycmF5CQEAAAAPcmVhZENvbmZpZ0FycmF5AAAAAAQAAAAIaWRvU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAOSWR4Q2ZnSWRvU3RhcnQEAAAAC2lkb0R1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAEUlkeENmZ0lkb0R1cmF0aW9uBAAAAAZpZG9FbmQJAABkAAAAAgUAAAAIaWRvU3RhcnQFAAAAC2lkb0R1cmF0aW9uBAAAAApjbGFpbVN0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAEElkeENmZ0NsYWltU3RhcnQEAAAADWNsYWltRHVyYXRpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAATSWR4Q2ZnQ2xhaW1EdXJhdGlvbgQAAAAFcHJpY2UJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAALSWR4Q2ZnUHJpY2UEAAAACXByaWNlTXVsdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAAA9JZHhDZmdQcmljZU11bHQEAAAADGlkb0Fzc2V0SWQ1OAkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAQSWR4Q2ZnSWRvQXNzZXRJZAQAAAAKaWRvQXNzZXRJZAkAAlkAAAABBQAAAAxpZG9Bc3NldElkNTgEAAAADGlkb0Fzc2V0TXVsdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdJZG9Bc3NldE11bHQEAAAADnByaWNlQXNzZXRJZDU4CQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdQcmljZUFzc2V0SWQEAAAADHByaWNlQXNzZXRJZAkAAlkAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAQAAAAOcHJpY2VBc3NldE11bHQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAUSWR4Q2ZnUHJpY2VBc3NldE11bHQEAAAADm1pbkl2ZXN0QW1vdW50CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAFUlkeENmZ01pbkludmVzdEFtb3VudAQAAAALdXNlckFkZHJlc3MJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAwkAAGYAAAACBQAAAAhpZG9TdGFydAUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAHGlkbyBoYXMgbm90IGJlZW4gc3RhcnRlZCB5ZXQDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAGaWRvRW5kCQAAAgAAAAECAAAAGmlkbyBoYXMgYmVlbiBhbHJlYWR5IGVuZGVkAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAAB1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAApwbXRBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAGmludmFsaWQgcGF5bWVudCBhc3NldCBpZDogCQACWAAAAAEFAAAACnBtdEFzc2V0SWQCAAAADCBpcyBleHBlY3RlZAQAAAARb3JpZ0ludmVzdG9yQXJyYXkJAQAAABpyZWFkSW52ZXN0b3JBcnJheU9yRGVmYXVsdAAAAAEFAAAAC3VzZXJBZGRyZXNzBAAAAA9vcmlnVG90YWxzQXJyYXkJAQAAABhyZWFkVG90YWxzQXJyYXlPckRlZmF1bHQAAAAABAAAABNuZXdQcmljZVRvdGFsQW1vdW50CQAAZAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAA9vcmlnVG90YWxzQXJyYXkFAAAAEUlkeEludlRvdGFsQW1vdW50BQAAAAlwbXRBbW91bnQEAAAAFnJlcXVpcmVkSWRvQXNzZXRBbW91bnQJAABoAAAAAgUAAAATbmV3UHJpY2VUb3RhbEFtb3VudAAAAAAAAAAAZAMJAABmAAAAAgUAAAAWcmVxdWlyZWRJZG9Bc3NldEFtb3VudAkAA/AAAAACBQAAAAR0aGlzBQAAAAppZG9Bc3NldElkCQAAAgAAAAECAAAAOUlETyBhc3NldCBoYXMgYmVlbiAtIHNvbGQgY29uc2lkZXIgdG8gdXNlIHNtYWxsZXIgcGF5bWVudAQAAAAKdG90YWxzRGlmZgkABEwAAAACBQAAAAlwbXRBbW91bnQJAARMAAAAAgUAAAAJcG10QW1vdW50CQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAAtUb3RhbHNFbnRyeQAAAAUJAQAAAAtrZXlJbnZlc3RvcgAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAABFvcmlnSW52ZXN0b3JBcnJheQUAAAAKdG90YWxzRGlmZgUAAAAKY2xhaW1TdGFydAAAAAAAAAAAAAkABEwAAAACCQEAAAALVG90YWxzRW50cnkAAAAFCQEAAAAJa2V5VG90YWxzAAAAAAUAAAAPb3JpZ1RvdGFsc0FycmF5BQAAAAp0b3RhbHNEaWZmBQAAAApjbGFpbVN0YXJ0AAAAAAAAAAAACQAETAAAAAIJAQAAABtJbnZlc3RPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAEBQAAAAt1c2VyQWRkcmVzcwUAAAAJcG10QW1vdW50AAAAAAAAAAAACAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAANuaWwAAAABaQEAAAAFY2xhaW0AAAACAAAAEGNsYWltZWRBc3NldElkNTgAAAANdXNlckFkZHJlc3M1OAQAAAAPY2FsbGVyQWRkcmVzczU4CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIFAAAADXVzZXJBZGRyZXNzNTgFAAAAD2NhbGxlckFkZHJlc3M1OAkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAQAAAAIY2ZnQXJyYXkJAQAAAA9yZWFkQ29uZmlnQXJyYXkAAAAABAAAAA5wcmljZUFzc2V0SWQ1OAkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAASSWR4Q2ZnUHJpY2VBc3NldElkBAAAABBjbGFpbVJlc3VsdFR1cGxlCQEAAAANaW50ZXJuYWxDbGFpbQAAAAMFAAAAEGNsYWltZWRBc3NldElkNTgIBQAAAAFpAAAABmNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKdG90YWxzRGlmZggFAAAAEGNsYWltUmVzdWx0VHVwbGUAAAACXzEEAAAACW91dEFtb3VudAgFAAAAEGNsYWltUmVzdWx0VHVwbGUAAAACXzIEAAAACm91dEFzc2V0SWQIBQAAABBjbGFpbVJlc3VsdFR1cGxlAAAAAl8zBAAAAA9vcmlnSW52ZXN0QXJyYXkIBQAAABBjbGFpbVJlc3VsdFR1cGxlAAAAAl80BAAAABRuZXdDbGFpbVBlcmlvZEhlaWdodAgFAAAAEGNsYWltUmVzdWx0VHVwbGUAAAACXzUEAAAAGmNsYWltZWRQcmljZUFtb3VudEZyb21EaWZmCQABkQAAAAIFAAAACnRvdGFsc0RpZmYFAAAAIklkeERpZmZDbGFpbWVkUHJpY2VBbW91bnRJbmNyZW1lbnQEAAAAHWNsYWltZWRJZG9Bc3NldEFtb3VudEZyb21EaWZmCQABkQAAAAIFAAAACnRvdGFsc0RpZmYFAAAAJUlkeERpZmZDbGFpbWVkSWRvQXNzZXRBbW91bnRJbmNyZW1lbnQEAAAAEXByaWNlQXNzZXRCYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABRrZXlQcmljZUFzc2V0QmFsYW5jZQAAAAEFAAAADXVzZXJBZGRyZXNzNTgAAAAAAAAAAAAEAAAAEnByaWNlQXNzZXREZWNpbWFscwgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAAAAAhkZWNpbWFscwQAAAAHZW50cmllcwMJAAAAAAAAAgUAAAAQY2xhaW1lZEFzc2V0SWQ1OAUAAAAOcHJpY2VBc3NldElkNTgEAAAADSR0MDIxNzY4MjIyMTIJAQAAAA9pbnRlcm5hbENsYWltVjIAAAAEBQAAAA5wcmljZUFzc2V0SWQ1OAUAAAANdXNlckFkZHJlc3M1OAUAAAAJb3V0QW1vdW50CQABkQAAAAIFAAAACnRvdGFsc0RpZmYFAAAAIklkeERpZmZDbGFpbWVkUHJpY2VBbW91bnRJbmNyZW1lbnQEAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0IBQAAAA0kdDAyMTc2ODIyMjEyAAAAAl8xBAAAABtwZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0IBQAAAA0kdDAyMTc2ODIyMjEyAAAAAl8yBAAAABpwZXJpb2RVc2VyQXZhaWxhYmxlVG9DbGFpbQgFAAAADSR0MDIxNzY4MjIyMTIAAAACXzMEAAAAGXRvdGFsVXNlckF2YWlsYWJsZVRvQ2xhaW0IBQAAAA0kdDAyMTc2ODIyMjEyAAAAAl80BAAAABx1c2R0UHJpY2VBc3NldEFsbG93YWJsZVJhdGlvCAUAAAANJHQwMjE3NjgyMjIxMgAAAAJfNQQAAAAaY3VycmVudFVzZHRQcmljZUFzc2V0UmF0aW8IBQAAAA0kdDAyMTc2ODIyMjEyAAAAAl82BAAAABNlbmRQZXJpb2RCbG9ja3NMZWZ0CAUAAAANJHQwMjE3NjgyMjIxMgAAAAJfNwQAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QIBQAAAA0kdDAyMTc2ODIyMjEyAAAAAl84BAAAAAtwZXJpb2RTdGFydAgFAAAADSR0MDIxNzY4MjIyMTIAAAACXzkEAAAACXBlcmlvZEVuZAgFAAAADSR0MDIxNzY4MjIyMTIAAAADXzEwBAAAAAZjaGVja3MJAARMAAAAAgMJAABmAAAAAgUAAAAacGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0AAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAADp1bmF2YWlsYWJsZSB0byBjbGFpbSBiZWNhdXNlIHVzZXIgcGVyaW9kIGFsbG93YW5jZSByZWFjaGVkCQAETAAAAAIDCQAAZgAAAAIFAAAAG3BlcmlvZFRvdGFsQXZhaWxhYmxlVG9DbGFpbQAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAO3VuYXZhaWxhYmxlIHRvIGNsYWltIGJlY2F1c2UgdG90YWwgcGVyaW9kIGFsbG93YW5jZSByZWFjaGVkCQAETAAAAAIDCQAAZgAAAAIFAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0AAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAABBub3RoaW5nIHRvIGNsYWltCQAETAAAAAIDCQAAZgAAAAIFAAAAHHVzZHRQcmljZUFzc2V0QWxsb3dhYmxlUmF0aW8FAAAAGmN1cnJlbnRVc2R0UHJpY2VBc3NldFJhdGlvBgkBAAAACHRocm93RXJyAAAAAQIAAABPdW5hdmFpbGFibGUgdG8gY2xhaW0gYmVjYXVzZSB1c2RuIHByaWNlIGxvd2VyIHRoYW4gdXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbwUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAidXBkYXRlZFBlcmlvZFRvdGFsQXZhaWxhYmxlVG9DbGFpbQkAAGUAAAACBQAAABtwZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0FAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0EAAAAIXVwZGF0ZWRQZXJpb2RVc2VyQXZhaWxhYmxlVG9DbGFpbQkAAGUAAAACBQAAABpwZXJpb2RVc2VyQXZhaWxhYmxlVG9DbGFpbQUAAAAZcGVyaW9kTWluQXZhaWxhYmxlVG9DbGFpbQQAAAAHZW50cmllcwMJAABnAAAAAgUAAAARcHJpY2VBc3NldEJhbGFuY2UFAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABlwZXJpb2RNaW5BdmFpbGFibGVUb0NsYWltBQAAAApvdXRBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAUa2V5UHJpY2VBc3NldEJhbGFuY2UAAAABBQAAAA11c2VyQWRkcmVzczU4CQAAZQAAAAIFAAAAEXByaWNlQXNzZXRCYWxhbmNlBQAAABlwZXJpb2RNaW5BdmFpbGFibGVUb0NsYWltBQAAAANuaWwEAAAAGHVwZGF0ZWRQcmljZUFzc2V0QmFsYW5jZQkAAGUAAAACCQAAZAAAAAIFAAAAEXByaWNlQXNzZXRCYWxhbmNlBQAAAAlvdXRBbW91bnQFAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkBAAAAC1RvdGFsc0VudHJ5AAAABQkBAAAAC2tleUludmVzdG9yAAAAAQUAAAANdXNlckFkZHJlc3M1OAUAAAAPb3JpZ0ludmVzdEFycmF5BQAAAAp0b3RhbHNEaWZmBQAAABRuZXdDbGFpbVBlcmlvZEhlaWdodAAAAAAAAAAAAAkABEwAAAACCQEAAAALVG90YWxzRW50cnkAAAAFCQEAAAAJa2V5VG90YWxzAAAAAAkBAAAAGHJlYWRUb3RhbHNBcnJheU9yRGVmYXVsdAAAAAAFAAAACnRvdGFsc0RpZmYFAAAAFG5ld0NsYWltUGVyaW9kSGVpZ2h0AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAUa2V5UHJpY2VBc3NldEJhbGFuY2UAAAABBQAAAA11c2VyQWRkcmVzczU4BQAAABh1cGRhdGVkUHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABlwZXJpb2RNaW5BdmFpbGFibGVUb0NsYWltBQAAAApvdXRBc3NldElkBQAAAANuaWwJAAUUAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAQa2V5Q3VycmVudFBlcmlvZAAAAAAFAAAAFHVwZGF0ZWRDdXJyZW50UGVyaW9kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAUa2V5UGVyaW9kU3RhcnRIZWlnaHQAAAABBQAAABR1cGRhdGVkQ3VycmVudFBlcmlvZAUAAAALcGVyaW9kU3RhcnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABJrZXlQZXJpb2RFbmRIZWlnaHQAAAABBQAAABR1cGRhdGVkQ3VycmVudFBlcmlvZAUAAAAJcGVyaW9kRW5kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAea2V5UGVyaW9kVG90YWxBdmFpbGFibGVUb0NsYWltAAAAAgUAAAAOcHJpY2VBc3NldElkNTgFAAAAFHVwZGF0ZWRDdXJyZW50UGVyaW9kBQAAACJ1cGRhdGVkUGVyaW9kVG90YWxBdmFpbGFibGVUb0NsYWltCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAda2V5UGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0AAAADBQAAAA5wcmljZUFzc2V0SWQ1OAUAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QFAAAADXVzZXJBZGRyZXNzNTgFAAAAIXVwZGF0ZWRQZXJpb2RVc2VyQXZhaWxhYmxlVG9DbGFpbQkABEwAAAACCQEAAAAaQ2xhaW1PcGVyYXRpb25IaXN0b3J5RW50cnkAAAAEBQAAAA11c2VyQWRkcmVzczU4BQAAABlwZXJpb2RNaW5BdmFpbGFibGVUb0NsYWltBQAAAB1jbGFpbWVkSWRvQXNzZXRBbW91bnRGcm9tRGlmZggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAADbmlsBQAAAAdlbnRyaWVzBQAAAAR1bml0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQAAAAccHJpY2VBc3NldEJhbGFuY2VJZG9EZWNpbWFscwkAAGsAAAADBQAAABFwcmljZUFzc2V0QmFsYW5jZQUAAAAGc2NhbGU4CQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAAEnByaWNlQXNzZXREZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgkABRQAAAACCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGQAAAACBQAAAAlvdXRBbW91bnQFAAAAHHByaWNlQXNzZXRCYWxhbmNlSWRvRGVjaW1hbHMFAAAACm91dEFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABRrZXlQcmljZUFzc2V0QmFsYW5jZQAAAAEFAAAADXVzZXJBZGRyZXNzNTgAAAAAAAAAAAAJAARMAAAAAgkBAAAAC1RvdGFsc0VudHJ5AAAABQkBAAAAC2tleUludmVzdG9yAAAAAQUAAAANdXNlckFkZHJlc3M1OAUAAAAPb3JpZ0ludmVzdEFycmF5BQAAAAp0b3RhbHNEaWZmBQAAABRuZXdDbGFpbVBlcmlvZEhlaWdodAUAAAARcHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgkBAAAAC1RvdGFsc0VudHJ5AAAABQkBAAAACWtleVRvdGFscwAAAAAJAQAAABhyZWFkVG90YWxzQXJyYXlPckRlZmF1bHQAAAAABQAAAAp0b3RhbHNEaWZmBQAAABRuZXdDbGFpbVBlcmlvZEhlaWdodAUAAAARcHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgkBAAAAGkNsYWltT3BlcmF0aW9uSGlzdG9yeUVudHJ5AAAABAUAAAANdXNlckFkZHJlc3M1OAUAAAAaY2xhaW1lZFByaWNlQW1vdW50RnJvbURpZmYJAABkAAAAAgUAAAAdY2xhaW1lZElkb0Fzc2V0QW1vdW50RnJvbURpZmYFAAAAHHByaWNlQXNzZXRCYWxhbmNlSWRvRGVjaW1hbHMIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAUAAAAEdW5pdAUAAAAHZW50cmllcwAAAAFpAQAAAA1jbGFpbVJFQURPTkxZAAAAAgAAABBjbGFpbWVkQXNzZXRJZDU4AAAADXVzZXJBZGRyZXNzNTgEAAAAEGNsYWltUmVzdWx0VHVwbGUJAQAAAA1pbnRlcm5hbENsYWltAAAAAwUAAAAQY2xhaW1lZEFzc2V0SWQ1OAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAANdXNlckFkZHJlc3M1OAkAAlkAAAABAgAAAAAEAAAACnRvdGFsc0RpZmYIBQAAABBjbGFpbVJlc3VsdFR1cGxlAAAAAl8xBAAAAAlvdXRBbW91bnQIBQAAABBjbGFpbVJlc3VsdFR1cGxlAAAAAl8yBAAAAApvdXRBc3NldElkCAUAAAAQY2xhaW1SZXN1bHRUdXBsZQAAAAJfMwQAAAAPb3JpZ0ludmVzdEFycmF5CAUAAAAQY2xhaW1SZXN1bHRUdXBsZQAAAAJfNAQAAAAUbmV3Q2xhaW1QZXJpb2RIZWlnaHQIBQAAABBjbGFpbVJlc3VsdFR1cGxlAAAAAl81BAAAABVhdmFpbGFibGVUb0NsYWltQXJyYXkIBQAAABBjbGFpbVJlc3VsdFR1cGxlAAAAAl82BAAAABthdmFpbGFibGVQcmljZUFtb3VudFRvQ2xhaW0JAAGRAAAAAgUAAAAVYXZhaWxhYmxlVG9DbGFpbUFycmF5AAAAAAAAAAAABAAAABlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltCQABkQAAAAIFAAAAFWF2YWlsYWJsZVRvQ2xhaW1BcnJheQAAAAAAAAAAAQkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVkJWQJAARMAAAAAgUAAAANdXNlckFkZHJlc3M1OAkABEwAAAACCQABpAAAAAEFAAAAG2F2YWlsYWJsZVByaWNlQW1vdW50VG9DbGFpbQkABEwAAAACCQABpAAAAAEFAAAAGWF2YWlsYWJsZUlkb0Ftb3VudFRvQ2xhaW0FAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAD2NsYWltVjJSRUFET05MWQAAAAIAAAAQY2xhaW1lZEFzc2V0SWQ1OAAAAA11c2VyQWRkcmVzczU4BAAAABBjbGFpbVJlc3VsdFR1cGxlCQEAAAANaW50ZXJuYWxDbGFpbQAAAAMFAAAAEGNsYWltZWRBc3NldElkNTgJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADXVzZXJBZGRyZXNzNTgJAAJZAAAAAQIAAAAABAAAAAp0b3RhbHNEaWZmCAUAAAAQY2xhaW1SZXN1bHRUdXBsZQAAAAJfMQQAAAAJb3V0QW1vdW50CAUAAAAQY2xhaW1SZXN1bHRUdXBsZQAAAAJfMgQAAAAKb3V0QXNzZXRJZAgFAAAAEGNsYWltUmVzdWx0VHVwbGUAAAACXzMEAAAAD29yaWdJbnZlc3RBcnJheQgFAAAAEGNsYWltUmVzdWx0VHVwbGUAAAACXzQEAAAAFG5ld0NsYWltUGVyaW9kSGVpZ2h0CAUAAAAQY2xhaW1SZXN1bHRUdXBsZQAAAAJfNQQAAAAVYXZhaWxhYmxlVG9DbGFpbUFycmF5CAUAAAAQY2xhaW1SZXN1bHRUdXBsZQAAAAJfNgQAAAAbYXZhaWxhYmxlUHJpY2VBbW91bnRUb0NsYWltCQABkQAAAAIFAAAAFWF2YWlsYWJsZVRvQ2xhaW1BcnJheQAAAAAAAAAAAAQAAAAZYXZhaWxhYmxlSWRvQW1vdW50VG9DbGFpbQkAAZEAAAACBQAAABVhdmFpbGFibGVUb0NsYWltQXJyYXkAAAAAAAAAAAEEAAAACGNmZ0FycmF5CQEAAAAPcmVhZENvbmZpZ0FycmF5AAAAAAQAAAAOcHJpY2VBc3NldElkNTgJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAEklkeENmZ1ByaWNlQXNzZXRJZAQAAAARcHJpY2VBc3NldEJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAFGtleVByaWNlQXNzZXRCYWxhbmNlAAAAAQUAAAANdXNlckFkZHJlc3M1OAAAAAAAAAAAAAQAAAAccHJpY2VBc3NldEJhbGFuY2VJZG9EZWNpbWFscwkAAGgAAAACBQAAABFwcmljZUFzc2V0QmFsYW5jZQAAAAAAAAAAZAQAAAAuYXZhaWxhYmxlSWRvQW1vdW50VG9DbGFpbVdpdGhQcmljZUFzc2V0QmFsYW5jZQkAAGQAAAACBQAAABlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltBQAAABxwcmljZUFzc2V0QmFsYW5jZUlkb0RlY2ltYWxzBAAAAA0kdDAyODUwNTI4OTE3CQEAAAAPaW50ZXJuYWxDbGFpbVYyAAAABAUAAAAOcHJpY2VBc3NldElkNTgFAAAADXVzZXJBZGRyZXNzNTgFAAAACW91dEFtb3VudAkAAZEAAAACBQAAAAp0b3RhbHNEaWZmBQAAACJJZHhEaWZmQ2xhaW1lZFByaWNlQW1vdW50SW5jcmVtZW50BAAAABlwZXJpb2RNaW5BdmFpbGFibGVUb0NsYWltCAUAAAANJHQwMjg1MDUyODkxNwAAAAJfMQQAAAAbcGVyaW9kVG90YWxBdmFpbGFibGVUb0NsYWltCAUAAAANJHQwMjg1MDUyODkxNwAAAAJfMgQAAAAacGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0IBQAAAA0kdDAyODUwNTI4OTE3AAAAAl8zBAAAABl0b3RhbFVzZXJBdmFpbGFibGVUb0NsYWltCAUAAAANJHQwMjg1MDUyODkxNwAAAAJfNAQAAAAcdXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbwgFAAAADSR0MDI4NTA1Mjg5MTcAAAACXzUEAAAAGmN1cnJlbnRVc2R0UHJpY2VBc3NldFJhdGlvCAUAAAANJHQwMjg1MDUyODkxNwAAAAJfNgQAAAATZW5kUGVyaW9kQmxvY2tzTGVmdAgFAAAADSR0MDI4NTA1Mjg5MTcAAAACXzcEAAAAFHVwZGF0ZWRDdXJyZW50UGVyaW9kCAUAAAANJHQwMjg1MDUyODkxNwAAAAJfOAQAAAALcGVyaW9kU3RhcnQIBQAAAA0kdDAyODUwNTI4OTE3AAAAAl85BAAAAAlwZXJpb2RFbmQIBQAAAA0kdDAyODUwNTI4OTE3AAAAA18xMAQAAAAWY3VycmVudFBlcmlvZEVuZEhlaWdodAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQEAAAASa2V5UGVyaW9kRW5kSGVpZ2h0AAAAAQUAAAAUdXBkYXRlZEN1cnJlbnRQZXJpb2QAAAAAAAAAAAAEAAAAGnVzZXJUb3RhbFByaWNlQXNzZXRDbGFpbWVkCQAAZQAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACCQEAAAAXcmVhZEludmVzdG9yQXJyYXlPckZhaWwAAAABBQAAAA11c2VyQWRkcmVzczU4BQAAAB1JZHhJbnZDbGFpbWVkUHJpY2VBc3NldEFtb3VudAUAAAARcHJpY2VBc3NldEJhbGFuY2UEAAAADHJlc3VsdFN0cmluZwMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABZjdXJyZW50UGVyaW9kRW5kSGVpZ2h0BAAAAAxwZXJpb2RMZW5naHQJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAD2tleVBlcmlvZExlbmd0aAAAAAAEAAAAE3VzZXJQZXJpb2RBbGxvd2FuY2UJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAFmtleVVzZXJQZXJpb2RBbGxvd2FuY2UAAAABBQAAAA5wcmljZUFzc2V0SWQ1OAQAAAAUdG90YWxQZXJpb2RBbGxvd2FuY2UJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAF2tleVRvdGFsUGVyaW9kQWxsb3dhbmNlAAAAAQUAAAAOcHJpY2VBc3NldElkNTgJAAS5AAAAAgkABEwAAAACAgAAAAwlZCVkJWQlZCVkJWQJAARMAAAAAgkAAaQAAAABBQAAAC5hdmFpbGFibGVJZG9BbW91bnRUb0NsYWltV2l0aFByaWNlQXNzZXRCYWxhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAATdXNlclBlcmlvZEFsbG93YW5jZQkABEwAAAACCQABpAAAAAEFAAAAFHRvdGFsUGVyaW9kQWxsb3dhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAAcdXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbwkABEwAAAACCQABpAAAAAEFAAAAGmN1cnJlbnRVc2R0UHJpY2VBc3NldFJhdGlvCQAETAAAAAIJAAGkAAAAAQUAAAAMcGVyaW9kTGVuZ2h0CQAETAAAAAIJAAGkAAAAAQUAAAAadXNlclRvdGFsUHJpY2VBc3NldENsYWltZWQFAAAAA25pbAUAAAADU0VQCQAEuQAAAAIJAARMAAAAAgIAAAAMJWQlZCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAAuYXZhaWxhYmxlSWRvQW1vdW50VG9DbGFpbVdpdGhQcmljZUFzc2V0QmFsYW5jZQkABEwAAAACCQABpAAAAAEFAAAAGXBlcmlvZE1pbkF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkAAaQAAAABBQAAABtwZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkAAaQAAAABBQAAABx1c2R0UHJpY2VBc3NldEFsbG93YWJsZVJhdGlvCQAETAAAAAIJAAGkAAAAAQUAAAAaY3VycmVudFVzZHRQcmljZUFzc2V0UmF0aW8JAARMAAAAAgkAAaQAAAABBQAAABNlbmRQZXJpb2RCbG9ja3NMZWZ0CQAETAAAAAIJAAGkAAAAAQUAAAAadXNlclRvdGFsUHJpY2VBc3NldENsYWltZWQFAAAAA25pbAUAAAADU0VQCQAFFAAAAAIFAAAAA25pbAUAAAAMcmVzdWx0U3RyaW5nAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAAACAAAAAQIAAAASTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQAAAgAAAAECAAAAG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5te5UWw==", "height": 3398372, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E1UhDAtwSPcrY4xmL7M6N6qLKooeiMjYjaEPKi4sngWr Next: F4VetHmUzdCWKc4dEtWo5dUewhm2dFsEJ8Jm8S6Ht48z Diff:
OldNewDifferences
205205 else height
206206 let bn = (bm - bl)
207207 let bo = fraction(bj, bn, G)
208- let bp = h(bo, L, k, H, J)
209- let bq = (bd == K)
210- let br = valueOrElse(getBoolean(ak()), false)
211- let bs = [if (!(if (bq)
212- then br
213- else false))
214- then true
215- else throw("USDN claim is disabled")]
216- if ((bs == bs))
217- then if ((bd == K))
218- then $Tuple6([0, -(bo), bo, 0], bo, bg, bi, bm, [bo, bp])
219- else if ((bd == I))
220- then $Tuple6([0, -(bo), 0, bp], bp, bf, bi, bm, [bo, bp])
221- else throw(("unsupported assetId: " + bd))
208+ let bp = f(makeString([toString(bj), toString(bn), toString(G), toString(bo)], " "))
209+ if ((bp == bp))
210+ then {
211+ let bq = h(bo, L, k, H, J)
212+ let br = (bd == K)
213+ let bs = valueOrElse(getBoolean(ak()), false)
214+ let bt = [if (!(if (br)
215+ then bs
216+ else false))
217+ then true
218+ else throw("USDN claim is disabled")]
219+ if ((bt == bt))
220+ then if ((bd == K))
221+ then $Tuple6([0, -(bo), bo, 0], bo, bg, bi, bm, [bo, bq])
222+ else if ((bd == I))
223+ then $Tuple6([0, -(bo), 0, bq], bq, bf, bi, bm, [bo, bq])
224+ else throw(("unsupported assetId: " + bd))
225+ else throw("Strict value is not equal to itself.")
226+ }
222227 else throw("Strict value is not equal to itself.")
223228 }
224229
225230
226-func bt (K,bh,bu,bv) = {
227- let bw = value(getInteger(as(K)))
228- let bx = value(getInteger(au(K)))
229- let by = value(getInteger(am()))
230- let bz = valueOrElse(getInteger(an()), 0)
231- let bA = isDefined(getInteger(aq(0)))
232- let bB = if ((bz > 0))
231+func bu (K,bh,bv,bw) = {
232+ let bx = value(getInteger(as(K)))
233+ let by = value(getInteger(au(K)))
234+ let bz = value(getInteger(am()))
235+ let bA = valueOrElse(getInteger(an()), 0)
236+ let bB = isDefined(getInteger(aq(0)))
237+ let bC = if ((bA > 0))
233238 then {
234- let bC = value(getInteger(ao(bz)))
235- let bD = value(getInteger(aq(bz)))
236- let bE = if ((height > bD))
239+ let bD = value(getInteger(ao(bA)))
240+ let bE = value(getInteger(aq(bA)))
241+ let bF = if ((height > bE))
237242 then {
238- let bF = (bz + 1)
239- let bG = if ((height > (bD + by)))
243+ let bG = (bA + 1)
244+ let bH = if ((height > (bE + bz)))
240245 then {
241- let bH = ((height - bD) % by)
242- if ((bH == 0))
243- then ((height - by) + 1)
244- else (height - bH)
246+ let bI = ((height - bE) % bz)
247+ if ((bI == 0))
248+ then ((height - bz) + 1)
249+ else (height - bI)
245250 }
246- else (bD + 1)
247- let bI = ((bG + by) - 1)
248- $Tuple3(bF, bG, bI)
251+ else (bE + 1)
252+ let bJ = ((bH + bz) - 1)
253+ $Tuple3(bG, bH, bJ)
249254 }
250- else $Tuple3(bz, bC, bD)
251- let bF = bE._1
252- let bG = bE._2
253- let bI = bE._3
254- $Tuple3(bF, bG, bI)
255+ else $Tuple3(bA, bD, bE)
256+ let bG = bF._1
257+ let bH = bF._2
258+ let bJ = bF._3
259+ $Tuple3(bG, bH, bJ)
255260 }
256- else if (bA)
261+ else if (bB)
257262 then {
258- let bJ = value(getInteger(ao(0)))
259- let bK = value(getInteger(aq(0)))
260- let bL = if ((height > bK))
263+ let bK = value(getInteger(ao(0)))
264+ let bL = value(getInteger(aq(0)))
265+ let bM = if ((height > bL))
261266 then {
262- let bF = (bz + 1)
263- let bG = (bK + 1)
264- let bI = ((bG + by) - 1)
265- $Tuple3(bF, bG, bI)
267+ let bG = (bA + 1)
268+ let bH = (bL + 1)
269+ let bJ = ((bH + bz) - 1)
270+ $Tuple3(bG, bH, bJ)
266271 }
267- else $Tuple3(bz, bJ, bK)
268- let bF = bL._1
269- let bG = bL._2
270- let bI = bL._3
271- $Tuple3(bF, bG, bI)
272+ else $Tuple3(bA, bK, bL)
273+ let bG = bM._1
274+ let bH = bM._2
275+ let bJ = bM._3
276+ $Tuple3(bG, bH, bJ)
272277 }
273- else $Tuple3(bz, valueOrElse(getInteger(ao(bz)), height), valueOrElse(getInteger(aq(bz)), ((height + by) - 1)))
274- let bF = bB._1
275- let bG = bB._2
276- let bI = bB._3
277- let bM = valueOrElse(getInteger(av(K, bF)), bw)
278- let bN = valueOrElse(getInteger(aw(K, bF, bh)), bx)
278+ else $Tuple3(bA, valueOrElse(getInteger(ao(bA)), height), valueOrElse(getInteger(aq(bA)), ((height + bz) - 1)))
279+ let bG = bC._1
280+ let bH = bC._2
281+ let bJ = bC._3
282+ let bN = valueOrElse(getInteger(av(K, bG)), bx)
283+ let bO = valueOrElse(getInteger(aw(K, bG, bh)), by)
279284 let aR = valueOrElse(getInteger(az(bh)), 0)
280- let bO = min([(bu + aR), bM, bN])
281- let bP = value(getInteger(ar()))
282- let bQ = e
283- let bR = {
284- let bS = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [bQ, K], nil)
285- if ($isInstanceOf(bS, "(Int, Int, Int)"))
286- then bS
285+ let bP = min([(bv + aR), bN, bO])
286+ let bQ = value(getInteger(ar()))
287+ let bR = e
288+ let bS = {
289+ let bT = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [bR, K], nil)
290+ if ($isInstanceOf(bT, "(Int, Int, Int)"))
291+ then bT
287292 else throw("Couldn't cast Any to (Int, Int, Int)")
288293 }
289- if ((bR == bR))
294+ if ((bS == bS))
290295 then {
291- let bT = bR._3
292- let bU = bR._2
293- let bV = bR._1
294- let bW = value(getString(ay()))
295- let bX = {
296- let bS = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bW, bV], nil)
297- if ($isInstanceOf(bS, "(Int, Int)"))
298- then bS
296+ let bU = bS._3
297+ let bV = bS._2
298+ let bW = bS._1
299+ let bX = value(getString(ay()))
300+ let bY = {
301+ let bT = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bX, bW], nil)
302+ if ($isInstanceOf(bT, "(Int, Int)"))
303+ then bT
299304 else throw("Couldn't cast Any to (Int, Int)")
300305 }
301- if ((bX == bX))
306+ if ((bY == bY))
302307 then {
303- let bY = bX._2
304- let bZ = bX._1
305- let ca = fraction(bQ, e, bZ)
306- let cb = (bI - height)
307- $Tuple10(bO, bM, bN, bv, bP, ca, cb, bF, bG, bI)
308+ let bZ = bY._2
309+ let ca = bY._1
310+ let cb = fraction(bR, e, ca)
311+ let cc = (bJ - height)
312+ $Tuple10(bP, bN, bO, bw, bQ, cb, cc, bG, bH, bJ)
308313 }
309314 else throw("Strict value is not equal to itself.")
310315 }
312317 }
313318
314319
315-func cc () = {
316- let cd = getString(aB())
317- if ($isInstanceOf(cd, "String"))
320+func cd () = {
321+ let ce = getString(aB())
322+ if ($isInstanceOf(ce, "String"))
318323 then {
319- let ce = cd
320- fromBase58String(ce)
324+ let cf = ce
325+ fromBase58String(cf)
321326 }
322- else if ($isInstanceOf(cd, "Unit"))
327+ else if ($isInstanceOf(ce, "Unit"))
323328 then unit
324329 else throw("Match error")
325330 }
326331
327332
328-func cf () = {
329- let cd = getString(aC())
330- if ($isInstanceOf(cd, "String"))
333+func cg () = {
334+ let ce = getString(aC())
335+ if ($isInstanceOf(ce, "String"))
331336 then {
332- let ce = cd
333- fromBase58String(ce)
337+ let cf = ce
338+ fromBase58String(cf)
334339 }
335- else if ($isInstanceOf(cd, "Unit"))
340+ else if ($isInstanceOf(ce, "Unit"))
336341 then unit
337342 else throw("Match error")
338343 }
339344
340345
341-func cg (ch) = {
342- let ci = throw("Permission denied")
343- let cd = cc()
344- if ($isInstanceOf(cd, "ByteVector"))
346+func ch (ci) = {
347+ let cj = throw("Permission denied")
348+ let ce = cd()
349+ if ($isInstanceOf(ce, "ByteVector"))
345350 then {
346- let cj = cd
347- if ((ch.callerPublicKey == cj))
351+ let ck = ce
352+ if ((ci.callerPublicKey == ck))
348353 then true
349- else ci
354+ else cj
350355 }
351- else if ($isInstanceOf(cd, "Unit"))
352- then if ((ch.caller == this))
356+ else if ($isInstanceOf(ce, "Unit"))
357+ then if ((ci.caller == this))
353358 then true
354- else ci
359+ else cj
355360 else throw("Match error")
356361 }
357362
358363
359-@Callable(ch)
364+@Callable(ci)
360365 func constructor (D,E,F,G,k,K,M) = {
361366 let H = ((100 * 1000) * 1000)
362- let ck = (D + E)
367+ let cl = (D + E)
363368 if (isDefined(getString(ad())))
364369 then throw("already initialized")
365- else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(ch.caller)))
370+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(ci.caller)))
366371 then throw("not authorized")
367- else if ((size(ch.payments) != 1))
372+ else if ((size(ci.payments) != 1))
368373 then throw("exactly 1 payment must be attached")
369- else if ((ck >= F))
374+ else if ((cl >= F))
370375 then throw("claimStart must be greater than idoEnd")
371376 else {
372- let cl = value(ch.payments[0])
373- let bf = value(cl.assetId)
374- let cm = valueOrErrorMessage(assetInfo(bf), "fail to load ido asset info")
377+ let cm = value(ci.payments[0])
378+ let bf = value(cm.assetId)
379+ let cn = valueOrErrorMessage(assetInfo(bf), "fail to load ido asset info")
375380 let I = toBase58String(bf)
376- let J = pow(10, 0, cm.decimals, 0, 0, DOWN)
381+ let J = pow(10, 0, cn.decimals, 0, 0, DOWN)
377382 let bg = fromBase58String(K)
378- let cn = valueOrErrorMessage(assetInfo(bg), "fail to load price asset info")
379- let L = pow(10, 0, cn.decimals, 0, 0, DOWN)
380- let co = aG()
381- let cp = [0, 0, 0, 0]
382-[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, cl.amount)), aN(ag(), co, cp, F, 0)]
383+ let co = valueOrErrorMessage(assetInfo(bg), "fail to load price asset info")
384+ let L = pow(10, 0, co.decimals, 0, 0, DOWN)
385+ let cp = aG()
386+ let cq = [0, 0, 0, 0]
387+[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, cm.amount)), aN(ag(), cp, cq, F, 0)]
383388 }
384389 }
385390
386391
387392
388-@Callable(ch)
393+@Callable(ci)
389394 func invest () = {
390395 let aU = aD()
391396 let D = parseIntValue(aU[r])
392397 let E = parseIntValue(aU[s])
393- let ck = (D + E)
398+ let cl = (D + E)
394399 let F = parseIntValue(aU[t])
395400 let G = parseIntValue(aU[u])
396401 let k = parseIntValue(aU[v])
401406 let K = aU[z]
402407 let bg = fromBase58String(K)
403408 let L = parseIntValue(aU[A])
404- let cq = parseIntValue(aU[B])
405- let af = toString(ch.caller)
409+ let cr = parseIntValue(aU[B])
410+ let af = toString(ci.caller)
406411 if ((D > height))
407412 then throw("ido has not been started yet")
408- else if ((height > ck))
413+ else if ((height > cl))
409414 then throw("ido has been already ended")
410- else if ((size(ch.payments) != 1))
415+ else if ((size(ci.payments) != 1))
411416 then throw("exactly 1 payment is expected")
412417 else {
413- let cl = value(ch.payments[0])
414- let cr = value(cl.assetId)
415- let cs = cl.amount
416- if ((cr != bg))
417- then throw((("invalid payment asset id: " + toBase58String(cr)) + " is expected"))
418+ let cm = value(ci.payments[0])
419+ let cs = value(cm.assetId)
420+ let ct = cm.amount
421+ if ((cs != bg))
422+ then throw((("invalid payment asset id: " + toBase58String(cs)) + " is expected"))
418423 else {
419- let ct = aH(af)
420- let co = aG()
421- let cu = (parseIntValue(co[P]) + cs)
422- let cv = (cu * 100)
423- if ((cv > assetBalance(this, bf)))
424+ let cu = aH(af)
425+ let cp = aG()
426+ let cv = (parseIntValue(cp[P]) + ct)
427+ let cw = (cv * 100)
428+ if ((cw > assetBalance(this, bf)))
424429 then throw("IDO asset has been - sold consider to use smaller payment")
425430 else {
426- let cp = [cs, cs, 0, 0]
427-[aN(ae(af), ct, cp, F, 0), aN(ag(), co, cp, F, 0), aZ(af, cs, 0, ch.transactionId)]
431+ let cq = [ct, ct, 0, 0]
432+[aN(ae(af), cu, cq, F, 0), aN(ag(), cp, cq, F, 0), aZ(af, ct, 0, ci.transactionId)]
428433 }
429434 }
430435 }
432437
433438
434439
435-@Callable(ch)
440+@Callable(ci)
436441 func claim (bd,bh) = {
437- let cw = toString(ch.caller)
438- if ((bh != cw))
442+ let cx = toString(ci.caller)
443+ if ((bh != cx))
439444 then throw("not authorized")
440445 else {
441446 let aU = aD()
442447 let K = aU[z]
443- let cx = bc(bd, ch.caller, ch.transactionId)
444- let cp = cx._1
445- let bu = cx._2
446- let cy = cx._3
447- let bi = cx._4
448- let bm = cx._5
449- let cz = cp[aL]
450- let cA = cp[aM]
448+ let cy = bc(bd, ci.caller, ci.transactionId)
449+ let cq = cy._1
450+ let bv = cy._2
451+ let cz = cy._3
452+ let bi = cy._4
453+ let bm = cy._5
454+ let cA = cq[aL]
455+ let cB = cq[aM]
451456 let aR = valueOrElse(getInteger(az(bh)), 0)
452457 let aV = value(assetInfo(fromBase58String(K))).decimals
453- let cB = if ((bd == K))
458+ let cC = if ((bd == K))
454459 then {
455- let cC = bt(K, bh, bu, cp[aL])
456- let bO = cC._1
457- let bM = cC._2
458- let bN = cC._3
459- let bv = cC._4
460- let bP = cC._5
461- let ca = cC._6
462- let cb = cC._7
463- let bF = cC._8
464- let bG = cC._9
465- let bI = cC._10
466- let bs = [if ((bN > 0))
460+ let cD = bu(K, bh, bv, cq[aL])
461+ let bP = cD._1
462+ let bN = cD._2
463+ let bO = cD._3
464+ let bw = cD._4
465+ let bQ = cD._5
466+ let cb = cD._6
467+ let cc = cD._7
468+ let bG = cD._8
469+ let bH = cD._9
470+ let bJ = cD._10
471+ let bt = [if ((bO > 0))
467472 then true
468- else f("unavailable to claim because user period allowance reached"), if ((bM > 0))
473+ else f("unavailable to claim because user period allowance reached"), if ((bN > 0))
469474 then true
470- else f("unavailable to claim because total period allowance reached"), if ((bO > 0))
475+ else f("unavailable to claim because total period allowance reached"), if ((bP > 0))
471476 then true
472- else f("nothing to claim"), if ((bP > ca))
477+ else f("nothing to claim"), if ((bQ > cb))
473478 then true
474479 else f("unavailable to claim because usdn price lower than usdtPriceAssetAllowableRatio")]
475- if ((bs == bs))
480+ if ((bt == bt))
476481 then {
477- let cD = (bM - bO)
478- let cE = (bN - bO)
479- let cB = if ((aR >= bO))
480- then [ScriptTransfer(ch.caller, bO, cy), IntegerEntry(az(bh), (aR - bO))]
482+ let cE = (bN - bP)
483+ let cF = (bO - bP)
484+ let cC = if ((aR >= bP))
485+ then [ScriptTransfer(ci.caller, bP, cz), IntegerEntry(az(bh), (aR - bP))]
481486 else {
482- let cF = ((aR + bu) - bO)
483-[aN(ae(bh), bi, cp, bm, 0), aN(ag(), aG(), cp, bm, 0), IntegerEntry(az(bh), cF), ScriptTransfer(ch.caller, bO, cy)]
487+ let cG = ((aR + bv) - bP)
488+[aN(ae(bh), bi, cq, bm, 0), aN(ag(), aG(), cq, bm, 0), IntegerEntry(az(bh), cG), ScriptTransfer(ci.caller, bP, cz)]
484489 }
485- $Tuple2(([IntegerEntry(an(), bF), IntegerEntry(ao(bF), bG), IntegerEntry(aq(bF), bI), IntegerEntry(av(K, bF), cD), IntegerEntry(aw(K, bF, bh), cE), bb(bh, bO, cA, ch.transactionId)] ++ cB), unit)
490+ $Tuple2(([IntegerEntry(an(), bG), IntegerEntry(ao(bG), bH), IntegerEntry(aq(bG), bJ), IntegerEntry(av(K, bG), cE), IntegerEntry(aw(K, bG, bh), cF), bb(bh, bP, cB, ci.transactionId)] ++ cC), unit)
486491 }
487492 else throw("Strict value is not equal to itself.")
488493 }
489494 else {
490- let cG = fraction(aR, e, pow(10, 0, aV, 0, 0, DOWN))
491- $Tuple2([ScriptTransfer(ch.caller, (bu + cG), cy), IntegerEntry(az(bh), 0), aN(ae(bh), bi, cp, bm, aR), aN(ag(), aG(), cp, bm, aR), bb(bh, cz, (cA + cG), ch.transactionId)], unit)
495+ let cH = fraction(aR, e, pow(10, 0, aV, 0, 0, DOWN))
496+ $Tuple2([ScriptTransfer(ci.caller, (bv + cH), cz), IntegerEntry(az(bh), 0), aN(ae(bh), bi, cq, bm, aR), aN(ag(), aG(), cq, bm, aR), bb(bh, cA, (cB + cH), ci.transactionId)], unit)
492497 }
493- cB
498+ cC
494499 }
495500 }
496501
497502
498503
499-@Callable(ch)
504+@Callable(ci)
500505 func claimREADONLY (bd,bh) = {
501- let cx = bc(bd, addressFromStringValue(bh), fromBase58String(""))
502- let cp = cx._1
503- let bu = cx._2
504- let cy = cx._3
505- let bi = cx._4
506- let bm = cx._5
507- let cH = cx._6
508- let cI = cH[0]
509- let cJ = cH[1]
510- $Tuple2(nil, makeString(["%s%d%d", bh, toString(cI), toString(cJ)], c))
506+ let cy = bc(bd, addressFromStringValue(bh), fromBase58String(""))
507+ let cq = cy._1
508+ let bv = cy._2
509+ let cz = cy._3
510+ let bi = cy._4
511+ let bm = cy._5
512+ let cI = cy._6
513+ let cJ = cI[0]
514+ let cK = cI[1]
515+ $Tuple2(nil, makeString(["%s%d%d", bh, toString(cJ), toString(cK)], c))
511516 }
512517
513518
514519
515-@Callable(ch)
520+@Callable(ci)
516521 func claimV2READONLY (bd,bh) = {
517- let cx = bc(bd, addressFromStringValue(bh), fromBase58String(""))
518- let cp = cx._1
519- let bu = cx._2
520- let cy = cx._3
521- let bi = cx._4
522- let bm = cx._5
523- let cH = cx._6
524- let cI = cH[0]
525- let cJ = cH[1]
522+ let cy = bc(bd, addressFromStringValue(bh), fromBase58String(""))
523+ let cq = cy._1
524+ let bv = cy._2
525+ let cz = cy._3
526+ let bi = cy._4
527+ let bm = cy._5
528+ let cI = cy._6
529+ let cJ = cI[0]
530+ let cK = cI[1]
526531 let aU = aD()
527532 let K = aU[z]
528533 let aR = valueOrElse(getInteger(az(bh)), 0)
529- let cG = (aR * 100)
530- let cK = (cJ + cG)
531- let cL = bt(K, bh, bu, cp[aL])
532- let bO = cL._1
533- let bM = cL._2
534- let bN = cL._3
535- let bv = cL._4
536- let bP = cL._5
537- let ca = cL._6
538- let cb = cL._7
539- let bF = cL._8
540- let bG = cL._9
541- let bI = cL._10
542- let cM = valueOrElse(getInteger(aq(bF)), 0)
543- let cN = (parseIntValue(aI(bh)[R]) - aR)
544- let cO = if ((height > cM))
534+ let cH = (aR * 100)
535+ let cL = (cK + cH)
536+ let cM = bu(K, bh, bv, cq[aL])
537+ let bP = cM._1
538+ let bN = cM._2
539+ let bO = cM._3
540+ let bw = cM._4
541+ let bQ = cM._5
542+ let cb = cM._6
543+ let cc = cM._7
544+ let bG = cM._8
545+ let bH = cM._9
546+ let bJ = cM._10
547+ let cN = valueOrElse(getInteger(aq(bG)), 0)
548+ let cO = (parseIntValue(aI(bh)[R]) - aR)
549+ let cP = if ((height > cN))
545550 then {
546- let cP = value(getInteger(am()))
547- let cQ = value(getInteger(au(K)))
548- let cR = value(getInteger(as(K)))
549- makeString(["%d%d%d%d%d%d", toString(cK), toString(cQ), toString(cR), toString(bP), toString(ca), toString(cP), toString(cN)], c)
551+ let cQ = value(getInteger(am()))
552+ let cR = value(getInteger(au(K)))
553+ let cS = value(getInteger(as(K)))
554+ makeString(["%d%d%d%d%d%d", toString(cL), toString(cR), toString(cS), toString(bQ), toString(cb), toString(cQ), toString(cO)], c)
550555 }
551- else makeString(["%d%d%d%d%d%d", toString(cK), toString(bO), toString(bM), toString(bP), toString(ca), toString(cb), toString(cN)], c)
552- $Tuple2(nil, cO)
556+ else makeString(["%d%d%d%d%d%d", toString(cL), toString(bP), toString(bN), toString(bQ), toString(cb), toString(cc), toString(cO)], c)
557+ $Tuple2(nil, cP)
553558 }
554559
555560
556561
557-@Callable(ch)
558-func setManager (cS) = {
559- let cT = cg(ch)
560- if ((cT == cT))
562+@Callable(ci)
563+func setManager (cT) = {
564+ let cU = ch(ci)
565+ if ((cU == cU))
561566 then {
562- let cU = fromBase58String(cS)
563- if ((cU == cU))
564- then [StringEntry(aC(), cS)]
567+ let cV = fromBase58String(cT)
568+ if ((cV == cV))
569+ then [StringEntry(aC(), cT)]
565570 else throw("Strict value is not equal to itself.")
566571 }
567572 else throw("Strict value is not equal to itself.")
569574
570575
571576
572-@Callable(ch)
577+@Callable(ci)
573578 func confirmManager () = {
574- let cV = cf()
575- let cW = if (isDefined(cV))
579+ let cW = cg()
580+ let cX = if (isDefined(cW))
576581 then true
577582 else throw("No pending manager")
578- if ((cW == cW))
583+ if ((cX == cX))
579584 then {
580- let cX = if ((ch.callerPublicKey == value(cV)))
585+ let cY = if ((ci.callerPublicKey == value(cW)))
581586 then true
582587 else throw("You are not pending manager")
583- if ((cX == cX))
584- then [StringEntry(aB(), toBase58String(value(cV))), DeleteEntry(aC())]
588+ if ((cY == cY))
589+ then [StringEntry(aB(), toBase58String(value(cW))), DeleteEntry(aC())]
585590 else throw("Strict value is not equal to itself.")
586591 }
587592 else throw("Strict value is not equal to itself.")
588593 }
589594
590595
591-@Verifier(cY)
592-func cZ () = {
593- let da = {
594- let cd = cc()
595- if ($isInstanceOf(cd, "ByteVector"))
596+@Verifier(cZ)
597+func da () = {
598+ let db = {
599+ let ce = cd()
600+ if ($isInstanceOf(ce, "ByteVector"))
596601 then {
597- let cj = cd
598- cj
602+ let ck = ce
603+ ck
599604 }
600- else if ($isInstanceOf(cd, "Unit"))
601- then cY.senderPublicKey
605+ else if ($isInstanceOf(ce, "Unit"))
606+ then cZ.senderPublicKey
602607 else throw("Match error")
603608 }
604- sigVerify(cY.bodyBytes, cY.proofs[0], da)
609+ sigVerify(cZ.bodyBytes, cZ.proofs[0], db)
605610 }
606611
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = valueOrErrorMessage(getString(b), (("mandatory this." + b) + " is not defined"))
55
66
77 let c = "__"
88
99 let d = toBigInt(1000000000000000000)
1010
1111 let e = 100000000
1212
1313 func f (g) = throw(makeString(["ido.ride:", g], " "))
1414
1515
1616 func h (i,j,k,l,m) = {
1717 let n = toBigInt(j)
1818 let o = toBigInt(m)
1919 let p = fraction(toBigInt(i), d, n)
2020 let q = fraction(p, toBigInt(l), toBigInt(k))
2121 toInt(fraction(q, toBigInt(m), d))
2222 }
2323
2424
2525 let r = 1
2626
2727 let s = 2
2828
2929 let t = 3
3030
3131 let u = 4
3232
3333 let v = 5
3434
3535 let w = 6
3636
3737 let x = 7
3838
3939 let y = 8
4040
4141 let z = 9
4242
4343 let A = 10
4444
4545 let B = 11
4646
4747 func C (D,E,F,G,k,H,I,J,K,L,M,N) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", D, E, F, G, k, H, I, J, K, L, M, N], c)
4848
4949
5050 func O (D,E,F,G,k,H,I,J,K,L,M,N) = C(toString(D), toString(E), toString(F), toString(G), toString(k), toString(H), I, toString(J), K, toString(L), toString(M), toString(N))
5151
5252
5353 let P = 1
5454
5555 let Q = 2
5656
5757 let R = 3
5858
5959 let S = 4
6060
6161 let T = 5
6262
6363 func U (V,W,X,Y,Z) = makeString(["%d%d%d%d%d", V, W, X, Y, Z], c)
6464
6565
6666 func aa (V,W,X,Y,Z) = U(toString(V), toString(W), toString(X), toString(Y), toString(Z))
6767
6868
6969 func ab (i,ac) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(i), toString(ac)], c)
7070
7171
7272 func ad () = "%s__config"
7373
7474
7575 func ae (af) = ("%s__" + af)
7676
7777
7878 func ag () = "%s__totals"
7979
8080
8181 func ah (ai,af,aj) = makeString(["%s%s%s%s__history", ai, af, aj], c)
8282
8383
8484 func ak () = "%s__usdnClaimDisabled"
8585
8686
8787 func al () = "%s__usdnClaimEndHeight"
8888
8989
9090 func am () = makeString(["%s", "periodLength"], c)
9191
9292
9393 func an () = makeString(["%s", "currentPeriod"], c)
9494
9595
9696 func ao (ap) = makeString(["%s%s", "periodStartHeight", toString(ap)], c)
9797
9898
9999 func aq (ap) = makeString(["%s%s", "periodEndHeight", toString(ap)], c)
100100
101101
102102 func ar () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
103103
104104
105105 func as (at) = makeString(["%s%s", "totalPeriodAllowance", at], c)
106106
107107
108108 func au (at) = makeString(["%s%s", "userPeriodAllowance", at], c)
109109
110110
111111 func av (at,ap) = makeString(["%s%s%s", "periodTotalAvailableToClaim", at, toString(ap)], c)
112112
113113
114114 func aw (at,ap,af) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", at, toString(ap), af], c)
115115
116116
117117 func ax () = makeString(["%s", "usdtPriceAssetStablePool"], c)
118118
119119
120120 func ay () = makeString(["%s", "usdtAssetId"], c)
121121
122122
123123 func az (aA) = makeString(["%s%s", "priceAssetBalance", aA], c)
124124
125125
126126 func aB () = "%s__managerPublicKey"
127127
128128
129129 func aC () = "%s__pendingManagerPublicKey"
130130
131131
132132 func aD () = split(a(ad()), c)
133133
134134
135135 func aE (aF) = split(valueOrElse(getString(aF), U("0", "0", "0", "0", "0")), c)
136136
137137
138138 func aG () = aE(ag())
139139
140140
141141 func aH (af) = aE(ae(af))
142142
143143
144144 func aI (af) = split(a(ae(af)), c)
145145
146146
147147 let aJ = 0
148148
149149 let aK = 1
150150
151151 let aL = 2
152152
153153 let aM = 3
154154
155155 func aN (b,aO,aP,aQ,aR) = {
156156 let V = parseIntValue(aO[P])
157157 let W = parseIntValue(aO[Q])
158158 let X = parseIntValue(aO[R])
159159 let Y = parseIntValue(aO[S])
160160 let Z = parseIntValue(aO[T])
161161 let aS = (V + aP[aJ])
162162 let aT = (W + aP[aK])
163163 let aU = aD()
164164 let K = aU[z]
165165 let aV = value(assetInfo(fromBase58String(K))).decimals
166166 let aW = fraction(aR, e, pow(10, 0, aV, 0, 0, DOWN))
167167 let aX = ((X + aP[aL]) - aR)
168168 let aY = ((Y + aP[aM]) + aW)
169169 if ((0 > aT))
170170 then f(makeString(["invalid math", toString(W), toString(aP[aK]), toString(aT), toString(aP[aJ])], " "))
171171 else StringEntry(b, aa(aS, aT, aX, aY, aQ))
172172 }
173173
174174
175175 func aZ (af,i,ac,ba) = StringEntry(ah("invest", af, toBase58String(ba)), ab(i, ac))
176176
177177
178178 func bb (af,i,ac,ba) = StringEntry(ah("claim", af, toBase58String(ba)), ab(i, ac))
179179
180180
181181 func bc (bd,af,ba) = {
182182 let aU = aD()
183183 let F = parseIntValue(aU[t])
184184 let G = parseIntValue(aU[u])
185185 let be = (F + G)
186186 let k = parseIntValue(aU[v])
187187 let H = parseIntValue(aU[w])
188188 let I = aU[x]
189189 let bf = fromBase58String(I)
190190 let J = parseIntValue(aU[y])
191191 let K = aU[z]
192192 let bg = fromBase58String(K)
193193 let L = parseIntValue(aU[A])
194194 let bh = toString(af)
195195 let bi = aI(bh)
196196 let bj = parseIntValue(bi[P])
197197 let bk = parseIntValue(bi[T])
198198 let bl = if ((F >= bk))
199199 then F
200200 else bk
201201 let bm = if ((height > be))
202202 then be
203203 else if ((F > height))
204204 then F
205205 else height
206206 let bn = (bm - bl)
207207 let bo = fraction(bj, bn, G)
208- let bp = h(bo, L, k, H, J)
209- let bq = (bd == K)
210- let br = valueOrElse(getBoolean(ak()), false)
211- let bs = [if (!(if (bq)
212- then br
213- else false))
214- then true
215- else throw("USDN claim is disabled")]
216- if ((bs == bs))
217- then if ((bd == K))
218- then $Tuple6([0, -(bo), bo, 0], bo, bg, bi, bm, [bo, bp])
219- else if ((bd == I))
220- then $Tuple6([0, -(bo), 0, bp], bp, bf, bi, bm, [bo, bp])
221- else throw(("unsupported assetId: " + bd))
208+ let bp = f(makeString([toString(bj), toString(bn), toString(G), toString(bo)], " "))
209+ if ((bp == bp))
210+ then {
211+ let bq = h(bo, L, k, H, J)
212+ let br = (bd == K)
213+ let bs = valueOrElse(getBoolean(ak()), false)
214+ let bt = [if (!(if (br)
215+ then bs
216+ else false))
217+ then true
218+ else throw("USDN claim is disabled")]
219+ if ((bt == bt))
220+ then if ((bd == K))
221+ then $Tuple6([0, -(bo), bo, 0], bo, bg, bi, bm, [bo, bq])
222+ else if ((bd == I))
223+ then $Tuple6([0, -(bo), 0, bq], bq, bf, bi, bm, [bo, bq])
224+ else throw(("unsupported assetId: " + bd))
225+ else throw("Strict value is not equal to itself.")
226+ }
222227 else throw("Strict value is not equal to itself.")
223228 }
224229
225230
226-func bt (K,bh,bu,bv) = {
227- let bw = value(getInteger(as(K)))
228- let bx = value(getInteger(au(K)))
229- let by = value(getInteger(am()))
230- let bz = valueOrElse(getInteger(an()), 0)
231- let bA = isDefined(getInteger(aq(0)))
232- let bB = if ((bz > 0))
231+func bu (K,bh,bv,bw) = {
232+ let bx = value(getInteger(as(K)))
233+ let by = value(getInteger(au(K)))
234+ let bz = value(getInteger(am()))
235+ let bA = valueOrElse(getInteger(an()), 0)
236+ let bB = isDefined(getInteger(aq(0)))
237+ let bC = if ((bA > 0))
233238 then {
234- let bC = value(getInteger(ao(bz)))
235- let bD = value(getInteger(aq(bz)))
236- let bE = if ((height > bD))
239+ let bD = value(getInteger(ao(bA)))
240+ let bE = value(getInteger(aq(bA)))
241+ let bF = if ((height > bE))
237242 then {
238- let bF = (bz + 1)
239- let bG = if ((height > (bD + by)))
243+ let bG = (bA + 1)
244+ let bH = if ((height > (bE + bz)))
240245 then {
241- let bH = ((height - bD) % by)
242- if ((bH == 0))
243- then ((height - by) + 1)
244- else (height - bH)
246+ let bI = ((height - bE) % bz)
247+ if ((bI == 0))
248+ then ((height - bz) + 1)
249+ else (height - bI)
245250 }
246- else (bD + 1)
247- let bI = ((bG + by) - 1)
248- $Tuple3(bF, bG, bI)
251+ else (bE + 1)
252+ let bJ = ((bH + bz) - 1)
253+ $Tuple3(bG, bH, bJ)
249254 }
250- else $Tuple3(bz, bC, bD)
251- let bF = bE._1
252- let bG = bE._2
253- let bI = bE._3
254- $Tuple3(bF, bG, bI)
255+ else $Tuple3(bA, bD, bE)
256+ let bG = bF._1
257+ let bH = bF._2
258+ let bJ = bF._3
259+ $Tuple3(bG, bH, bJ)
255260 }
256- else if (bA)
261+ else if (bB)
257262 then {
258- let bJ = value(getInteger(ao(0)))
259- let bK = value(getInteger(aq(0)))
260- let bL = if ((height > bK))
263+ let bK = value(getInteger(ao(0)))
264+ let bL = value(getInteger(aq(0)))
265+ let bM = if ((height > bL))
261266 then {
262- let bF = (bz + 1)
263- let bG = (bK + 1)
264- let bI = ((bG + by) - 1)
265- $Tuple3(bF, bG, bI)
267+ let bG = (bA + 1)
268+ let bH = (bL + 1)
269+ let bJ = ((bH + bz) - 1)
270+ $Tuple3(bG, bH, bJ)
266271 }
267- else $Tuple3(bz, bJ, bK)
268- let bF = bL._1
269- let bG = bL._2
270- let bI = bL._3
271- $Tuple3(bF, bG, bI)
272+ else $Tuple3(bA, bK, bL)
273+ let bG = bM._1
274+ let bH = bM._2
275+ let bJ = bM._3
276+ $Tuple3(bG, bH, bJ)
272277 }
273- else $Tuple3(bz, valueOrElse(getInteger(ao(bz)), height), valueOrElse(getInteger(aq(bz)), ((height + by) - 1)))
274- let bF = bB._1
275- let bG = bB._2
276- let bI = bB._3
277- let bM = valueOrElse(getInteger(av(K, bF)), bw)
278- let bN = valueOrElse(getInteger(aw(K, bF, bh)), bx)
278+ else $Tuple3(bA, valueOrElse(getInteger(ao(bA)), height), valueOrElse(getInteger(aq(bA)), ((height + bz) - 1)))
279+ let bG = bC._1
280+ let bH = bC._2
281+ let bJ = bC._3
282+ let bN = valueOrElse(getInteger(av(K, bG)), bx)
283+ let bO = valueOrElse(getInteger(aw(K, bG, bh)), by)
279284 let aR = valueOrElse(getInteger(az(bh)), 0)
280- let bO = min([(bu + aR), bM, bN])
281- let bP = value(getInteger(ar()))
282- let bQ = e
283- let bR = {
284- let bS = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [bQ, K], nil)
285- if ($isInstanceOf(bS, "(Int, Int, Int)"))
286- then bS
285+ let bP = min([(bv + aR), bN, bO])
286+ let bQ = value(getInteger(ar()))
287+ let bR = e
288+ let bS = {
289+ let bT = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [bR, K], nil)
290+ if ($isInstanceOf(bT, "(Int, Int, Int)"))
291+ then bT
287292 else throw("Couldn't cast Any to (Int, Int, Int)")
288293 }
289- if ((bR == bR))
294+ if ((bS == bS))
290295 then {
291- let bT = bR._3
292- let bU = bR._2
293- let bV = bR._1
294- let bW = value(getString(ay()))
295- let bX = {
296- let bS = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bW, bV], nil)
297- if ($isInstanceOf(bS, "(Int, Int)"))
298- then bS
296+ let bU = bS._3
297+ let bV = bS._2
298+ let bW = bS._1
299+ let bX = value(getString(ay()))
300+ let bY = {
301+ let bT = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bX, bW], nil)
302+ if ($isInstanceOf(bT, "(Int, Int)"))
303+ then bT
299304 else throw("Couldn't cast Any to (Int, Int)")
300305 }
301- if ((bX == bX))
306+ if ((bY == bY))
302307 then {
303- let bY = bX._2
304- let bZ = bX._1
305- let ca = fraction(bQ, e, bZ)
306- let cb = (bI - height)
307- $Tuple10(bO, bM, bN, bv, bP, ca, cb, bF, bG, bI)
308+ let bZ = bY._2
309+ let ca = bY._1
310+ let cb = fraction(bR, e, ca)
311+ let cc = (bJ - height)
312+ $Tuple10(bP, bN, bO, bw, bQ, cb, cc, bG, bH, bJ)
308313 }
309314 else throw("Strict value is not equal to itself.")
310315 }
311316 else throw("Strict value is not equal to itself.")
312317 }
313318
314319
315-func cc () = {
316- let cd = getString(aB())
317- if ($isInstanceOf(cd, "String"))
320+func cd () = {
321+ let ce = getString(aB())
322+ if ($isInstanceOf(ce, "String"))
318323 then {
319- let ce = cd
320- fromBase58String(ce)
324+ let cf = ce
325+ fromBase58String(cf)
321326 }
322- else if ($isInstanceOf(cd, "Unit"))
327+ else if ($isInstanceOf(ce, "Unit"))
323328 then unit
324329 else throw("Match error")
325330 }
326331
327332
328-func cf () = {
329- let cd = getString(aC())
330- if ($isInstanceOf(cd, "String"))
333+func cg () = {
334+ let ce = getString(aC())
335+ if ($isInstanceOf(ce, "String"))
331336 then {
332- let ce = cd
333- fromBase58String(ce)
337+ let cf = ce
338+ fromBase58String(cf)
334339 }
335- else if ($isInstanceOf(cd, "Unit"))
340+ else if ($isInstanceOf(ce, "Unit"))
336341 then unit
337342 else throw("Match error")
338343 }
339344
340345
341-func cg (ch) = {
342- let ci = throw("Permission denied")
343- let cd = cc()
344- if ($isInstanceOf(cd, "ByteVector"))
346+func ch (ci) = {
347+ let cj = throw("Permission denied")
348+ let ce = cd()
349+ if ($isInstanceOf(ce, "ByteVector"))
345350 then {
346- let cj = cd
347- if ((ch.callerPublicKey == cj))
351+ let ck = ce
352+ if ((ci.callerPublicKey == ck))
348353 then true
349- else ci
354+ else cj
350355 }
351- else if ($isInstanceOf(cd, "Unit"))
352- then if ((ch.caller == this))
356+ else if ($isInstanceOf(ce, "Unit"))
357+ then if ((ci.caller == this))
353358 then true
354- else ci
359+ else cj
355360 else throw("Match error")
356361 }
357362
358363
359-@Callable(ch)
364+@Callable(ci)
360365 func constructor (D,E,F,G,k,K,M) = {
361366 let H = ((100 * 1000) * 1000)
362- let ck = (D + E)
367+ let cl = (D + E)
363368 if (isDefined(getString(ad())))
364369 then throw("already initialized")
365- else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(ch.caller)))
370+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(ci.caller)))
366371 then throw("not authorized")
367- else if ((size(ch.payments) != 1))
372+ else if ((size(ci.payments) != 1))
368373 then throw("exactly 1 payment must be attached")
369- else if ((ck >= F))
374+ else if ((cl >= F))
370375 then throw("claimStart must be greater than idoEnd")
371376 else {
372- let cl = value(ch.payments[0])
373- let bf = value(cl.assetId)
374- let cm = valueOrErrorMessage(assetInfo(bf), "fail to load ido asset info")
377+ let cm = value(ci.payments[0])
378+ let bf = value(cm.assetId)
379+ let cn = valueOrErrorMessage(assetInfo(bf), "fail to load ido asset info")
375380 let I = toBase58String(bf)
376- let J = pow(10, 0, cm.decimals, 0, 0, DOWN)
381+ let J = pow(10, 0, cn.decimals, 0, 0, DOWN)
377382 let bg = fromBase58String(K)
378- let cn = valueOrErrorMessage(assetInfo(bg), "fail to load price asset info")
379- let L = pow(10, 0, cn.decimals, 0, 0, DOWN)
380- let co = aG()
381- let cp = [0, 0, 0, 0]
382-[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, cl.amount)), aN(ag(), co, cp, F, 0)]
383+ let co = valueOrErrorMessage(assetInfo(bg), "fail to load price asset info")
384+ let L = pow(10, 0, co.decimals, 0, 0, DOWN)
385+ let cp = aG()
386+ let cq = [0, 0, 0, 0]
387+[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, cm.amount)), aN(ag(), cp, cq, F, 0)]
383388 }
384389 }
385390
386391
387392
388-@Callable(ch)
393+@Callable(ci)
389394 func invest () = {
390395 let aU = aD()
391396 let D = parseIntValue(aU[r])
392397 let E = parseIntValue(aU[s])
393- let ck = (D + E)
398+ let cl = (D + E)
394399 let F = parseIntValue(aU[t])
395400 let G = parseIntValue(aU[u])
396401 let k = parseIntValue(aU[v])
397402 let H = parseIntValue(aU[w])
398403 let I = aU[x]
399404 let bf = fromBase58String(I)
400405 let J = parseIntValue(aU[y])
401406 let K = aU[z]
402407 let bg = fromBase58String(K)
403408 let L = parseIntValue(aU[A])
404- let cq = parseIntValue(aU[B])
405- let af = toString(ch.caller)
409+ let cr = parseIntValue(aU[B])
410+ let af = toString(ci.caller)
406411 if ((D > height))
407412 then throw("ido has not been started yet")
408- else if ((height > ck))
413+ else if ((height > cl))
409414 then throw("ido has been already ended")
410- else if ((size(ch.payments) != 1))
415+ else if ((size(ci.payments) != 1))
411416 then throw("exactly 1 payment is expected")
412417 else {
413- let cl = value(ch.payments[0])
414- let cr = value(cl.assetId)
415- let cs = cl.amount
416- if ((cr != bg))
417- then throw((("invalid payment asset id: " + toBase58String(cr)) + " is expected"))
418+ let cm = value(ci.payments[0])
419+ let cs = value(cm.assetId)
420+ let ct = cm.amount
421+ if ((cs != bg))
422+ then throw((("invalid payment asset id: " + toBase58String(cs)) + " is expected"))
418423 else {
419- let ct = aH(af)
420- let co = aG()
421- let cu = (parseIntValue(co[P]) + cs)
422- let cv = (cu * 100)
423- if ((cv > assetBalance(this, bf)))
424+ let cu = aH(af)
425+ let cp = aG()
426+ let cv = (parseIntValue(cp[P]) + ct)
427+ let cw = (cv * 100)
428+ if ((cw > assetBalance(this, bf)))
424429 then throw("IDO asset has been - sold consider to use smaller payment")
425430 else {
426- let cp = [cs, cs, 0, 0]
427-[aN(ae(af), ct, cp, F, 0), aN(ag(), co, cp, F, 0), aZ(af, cs, 0, ch.transactionId)]
431+ let cq = [ct, ct, 0, 0]
432+[aN(ae(af), cu, cq, F, 0), aN(ag(), cp, cq, F, 0), aZ(af, ct, 0, ci.transactionId)]
428433 }
429434 }
430435 }
431436 }
432437
433438
434439
435-@Callable(ch)
440+@Callable(ci)
436441 func claim (bd,bh) = {
437- let cw = toString(ch.caller)
438- if ((bh != cw))
442+ let cx = toString(ci.caller)
443+ if ((bh != cx))
439444 then throw("not authorized")
440445 else {
441446 let aU = aD()
442447 let K = aU[z]
443- let cx = bc(bd, ch.caller, ch.transactionId)
444- let cp = cx._1
445- let bu = cx._2
446- let cy = cx._3
447- let bi = cx._4
448- let bm = cx._5
449- let cz = cp[aL]
450- let cA = cp[aM]
448+ let cy = bc(bd, ci.caller, ci.transactionId)
449+ let cq = cy._1
450+ let bv = cy._2
451+ let cz = cy._3
452+ let bi = cy._4
453+ let bm = cy._5
454+ let cA = cq[aL]
455+ let cB = cq[aM]
451456 let aR = valueOrElse(getInteger(az(bh)), 0)
452457 let aV = value(assetInfo(fromBase58String(K))).decimals
453- let cB = if ((bd == K))
458+ let cC = if ((bd == K))
454459 then {
455- let cC = bt(K, bh, bu, cp[aL])
456- let bO = cC._1
457- let bM = cC._2
458- let bN = cC._3
459- let bv = cC._4
460- let bP = cC._5
461- let ca = cC._6
462- let cb = cC._7
463- let bF = cC._8
464- let bG = cC._9
465- let bI = cC._10
466- let bs = [if ((bN > 0))
460+ let cD = bu(K, bh, bv, cq[aL])
461+ let bP = cD._1
462+ let bN = cD._2
463+ let bO = cD._3
464+ let bw = cD._4
465+ let bQ = cD._5
466+ let cb = cD._6
467+ let cc = cD._7
468+ let bG = cD._8
469+ let bH = cD._9
470+ let bJ = cD._10
471+ let bt = [if ((bO > 0))
467472 then true
468- else f("unavailable to claim because user period allowance reached"), if ((bM > 0))
473+ else f("unavailable to claim because user period allowance reached"), if ((bN > 0))
469474 then true
470- else f("unavailable to claim because total period allowance reached"), if ((bO > 0))
475+ else f("unavailable to claim because total period allowance reached"), if ((bP > 0))
471476 then true
472- else f("nothing to claim"), if ((bP > ca))
477+ else f("nothing to claim"), if ((bQ > cb))
473478 then true
474479 else f("unavailable to claim because usdn price lower than usdtPriceAssetAllowableRatio")]
475- if ((bs == bs))
480+ if ((bt == bt))
476481 then {
477- let cD = (bM - bO)
478- let cE = (bN - bO)
479- let cB = if ((aR >= bO))
480- then [ScriptTransfer(ch.caller, bO, cy), IntegerEntry(az(bh), (aR - bO))]
482+ let cE = (bN - bP)
483+ let cF = (bO - bP)
484+ let cC = if ((aR >= bP))
485+ then [ScriptTransfer(ci.caller, bP, cz), IntegerEntry(az(bh), (aR - bP))]
481486 else {
482- let cF = ((aR + bu) - bO)
483-[aN(ae(bh), bi, cp, bm, 0), aN(ag(), aG(), cp, bm, 0), IntegerEntry(az(bh), cF), ScriptTransfer(ch.caller, bO, cy)]
487+ let cG = ((aR + bv) - bP)
488+[aN(ae(bh), bi, cq, bm, 0), aN(ag(), aG(), cq, bm, 0), IntegerEntry(az(bh), cG), ScriptTransfer(ci.caller, bP, cz)]
484489 }
485- $Tuple2(([IntegerEntry(an(), bF), IntegerEntry(ao(bF), bG), IntegerEntry(aq(bF), bI), IntegerEntry(av(K, bF), cD), IntegerEntry(aw(K, bF, bh), cE), bb(bh, bO, cA, ch.transactionId)] ++ cB), unit)
490+ $Tuple2(([IntegerEntry(an(), bG), IntegerEntry(ao(bG), bH), IntegerEntry(aq(bG), bJ), IntegerEntry(av(K, bG), cE), IntegerEntry(aw(K, bG, bh), cF), bb(bh, bP, cB, ci.transactionId)] ++ cC), unit)
486491 }
487492 else throw("Strict value is not equal to itself.")
488493 }
489494 else {
490- let cG = fraction(aR, e, pow(10, 0, aV, 0, 0, DOWN))
491- $Tuple2([ScriptTransfer(ch.caller, (bu + cG), cy), IntegerEntry(az(bh), 0), aN(ae(bh), bi, cp, bm, aR), aN(ag(), aG(), cp, bm, aR), bb(bh, cz, (cA + cG), ch.transactionId)], unit)
495+ let cH = fraction(aR, e, pow(10, 0, aV, 0, 0, DOWN))
496+ $Tuple2([ScriptTransfer(ci.caller, (bv + cH), cz), IntegerEntry(az(bh), 0), aN(ae(bh), bi, cq, bm, aR), aN(ag(), aG(), cq, bm, aR), bb(bh, cA, (cB + cH), ci.transactionId)], unit)
492497 }
493- cB
498+ cC
494499 }
495500 }
496501
497502
498503
499-@Callable(ch)
504+@Callable(ci)
500505 func claimREADONLY (bd,bh) = {
501- let cx = bc(bd, addressFromStringValue(bh), fromBase58String(""))
502- let cp = cx._1
503- let bu = cx._2
504- let cy = cx._3
505- let bi = cx._4
506- let bm = cx._5
507- let cH = cx._6
508- let cI = cH[0]
509- let cJ = cH[1]
510- $Tuple2(nil, makeString(["%s%d%d", bh, toString(cI), toString(cJ)], c))
506+ let cy = bc(bd, addressFromStringValue(bh), fromBase58String(""))
507+ let cq = cy._1
508+ let bv = cy._2
509+ let cz = cy._3
510+ let bi = cy._4
511+ let bm = cy._5
512+ let cI = cy._6
513+ let cJ = cI[0]
514+ let cK = cI[1]
515+ $Tuple2(nil, makeString(["%s%d%d", bh, toString(cJ), toString(cK)], c))
511516 }
512517
513518
514519
515-@Callable(ch)
520+@Callable(ci)
516521 func claimV2READONLY (bd,bh) = {
517- let cx = bc(bd, addressFromStringValue(bh), fromBase58String(""))
518- let cp = cx._1
519- let bu = cx._2
520- let cy = cx._3
521- let bi = cx._4
522- let bm = cx._5
523- let cH = cx._6
524- let cI = cH[0]
525- let cJ = cH[1]
522+ let cy = bc(bd, addressFromStringValue(bh), fromBase58String(""))
523+ let cq = cy._1
524+ let bv = cy._2
525+ let cz = cy._3
526+ let bi = cy._4
527+ let bm = cy._5
528+ let cI = cy._6
529+ let cJ = cI[0]
530+ let cK = cI[1]
526531 let aU = aD()
527532 let K = aU[z]
528533 let aR = valueOrElse(getInteger(az(bh)), 0)
529- let cG = (aR * 100)
530- let cK = (cJ + cG)
531- let cL = bt(K, bh, bu, cp[aL])
532- let bO = cL._1
533- let bM = cL._2
534- let bN = cL._3
535- let bv = cL._4
536- let bP = cL._5
537- let ca = cL._6
538- let cb = cL._7
539- let bF = cL._8
540- let bG = cL._9
541- let bI = cL._10
542- let cM = valueOrElse(getInteger(aq(bF)), 0)
543- let cN = (parseIntValue(aI(bh)[R]) - aR)
544- let cO = if ((height > cM))
534+ let cH = (aR * 100)
535+ let cL = (cK + cH)
536+ let cM = bu(K, bh, bv, cq[aL])
537+ let bP = cM._1
538+ let bN = cM._2
539+ let bO = cM._3
540+ let bw = cM._4
541+ let bQ = cM._5
542+ let cb = cM._6
543+ let cc = cM._7
544+ let bG = cM._8
545+ let bH = cM._9
546+ let bJ = cM._10
547+ let cN = valueOrElse(getInteger(aq(bG)), 0)
548+ let cO = (parseIntValue(aI(bh)[R]) - aR)
549+ let cP = if ((height > cN))
545550 then {
546- let cP = value(getInteger(am()))
547- let cQ = value(getInteger(au(K)))
548- let cR = value(getInteger(as(K)))
549- makeString(["%d%d%d%d%d%d", toString(cK), toString(cQ), toString(cR), toString(bP), toString(ca), toString(cP), toString(cN)], c)
551+ let cQ = value(getInteger(am()))
552+ let cR = value(getInteger(au(K)))
553+ let cS = value(getInteger(as(K)))
554+ makeString(["%d%d%d%d%d%d", toString(cL), toString(cR), toString(cS), toString(bQ), toString(cb), toString(cQ), toString(cO)], c)
550555 }
551- else makeString(["%d%d%d%d%d%d", toString(cK), toString(bO), toString(bM), toString(bP), toString(ca), toString(cb), toString(cN)], c)
552- $Tuple2(nil, cO)
556+ else makeString(["%d%d%d%d%d%d", toString(cL), toString(bP), toString(bN), toString(bQ), toString(cb), toString(cc), toString(cO)], c)
557+ $Tuple2(nil, cP)
553558 }
554559
555560
556561
557-@Callable(ch)
558-func setManager (cS) = {
559- let cT = cg(ch)
560- if ((cT == cT))
562+@Callable(ci)
563+func setManager (cT) = {
564+ let cU = ch(ci)
565+ if ((cU == cU))
561566 then {
562- let cU = fromBase58String(cS)
563- if ((cU == cU))
564- then [StringEntry(aC(), cS)]
567+ let cV = fromBase58String(cT)
568+ if ((cV == cV))
569+ then [StringEntry(aC(), cT)]
565570 else throw("Strict value is not equal to itself.")
566571 }
567572 else throw("Strict value is not equal to itself.")
568573 }
569574
570575
571576
572-@Callable(ch)
577+@Callable(ci)
573578 func confirmManager () = {
574- let cV = cf()
575- let cW = if (isDefined(cV))
579+ let cW = cg()
580+ let cX = if (isDefined(cW))
576581 then true
577582 else throw("No pending manager")
578- if ((cW == cW))
583+ if ((cX == cX))
579584 then {
580- let cX = if ((ch.callerPublicKey == value(cV)))
585+ let cY = if ((ci.callerPublicKey == value(cW)))
581586 then true
582587 else throw("You are not pending manager")
583- if ((cX == cX))
584- then [StringEntry(aB(), toBase58String(value(cV))), DeleteEntry(aC())]
588+ if ((cY == cY))
589+ then [StringEntry(aB(), toBase58String(value(cW))), DeleteEntry(aC())]
585590 else throw("Strict value is not equal to itself.")
586591 }
587592 else throw("Strict value is not equal to itself.")
588593 }
589594
590595
591-@Verifier(cY)
592-func cZ () = {
593- let da = {
594- let cd = cc()
595- if ($isInstanceOf(cd, "ByteVector"))
596+@Verifier(cZ)
597+func da () = {
598+ let db = {
599+ let ce = cd()
600+ if ($isInstanceOf(ce, "ByteVector"))
596601 then {
597- let cj = cd
598- cj
602+ let ck = ce
603+ ck
599604 }
600- else if ($isInstanceOf(cd, "Unit"))
601- then cY.senderPublicKey
605+ else if ($isInstanceOf(ce, "Unit"))
606+ then cZ.senderPublicKey
602607 else throw("Match error")
603608 }
604- sigVerify(cY.bodyBytes, cY.proofs[0], da)
609+ sigVerify(cZ.bodyBytes, cZ.proofs[0], db)
605610 }
606611

github/deemru/w8io/0e76f2f 
159.00 ms