tx · E9gAqUH1Z8mkHbm3WA7PuJ6LcJtfqf8YPasCL2gwpmhC

3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J:  -0.02600000 Waves

2023.03.28 08:06 [2509362] smart account 3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J > SELF 0.00000000 Waves

{ "type": 13, "id": "E9gAqUH1Z8mkHbm3WA7PuJ6LcJtfqf8YPasCL2gwpmhC", "fee": 2600000, "feeAssetId": null, "timestamp": 1679980015157, "version": 2, "chainId": 84, "sender": "3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J", "senderPublicKey": "4DthuG3xjZV9WtZ34Y66AummdAr67wRzwWsVQL4y2bob", "proofs": [ "2Tmi8dyQFbpAvzB4THBTzQLfHMUyiCKzthTXTnHgkqF3ohce7qb6wBt9bEANHYTJoXSAnEDrPLeboDaMYWpXgNXu", "2gtdfcKWrzgyvg3MyKXePxFCSLFN2rTFhJTMheEoSr9wMp2d5MExHZorWazuf35mNVAjYKB8vSFZsCVzFmq4GNjE", "Ek96kTTw64dRGyo6N1nZb3p9mt8gDMMspzeGd8WVUK6DW1X1QEzP5RJnnWoKewzQTNgU8pXqCpZwmTaNobv89yB" ], "script": "base64:BgIpCAISBwoFCAgBAQgSABIDCgEBEgASABIAEgMKAQgSBAoCCAESBAoCCAFUAAlzZXBhcmF0b3ICAl9fAANTRVACAl9fAAVNVUxUNgDAhD0ABU1VTFQ4AIDC1y8ABk1VTFRYNgkAtgIBBQVNVUxUNgAGTVVMVFg4CQC2AgEFBU1VTFQ4AAdNVUxUWDE4CQC2AgEAgICQu7rWrfANAApXQVZFU0lEU1RSAgVXQVZFUwAHV0FWRVNJRAkA2QQBBQpXQVZFU0lEU1RSAAlEQVlNSUxMSVMAgLiZKQAJTUFYQkFTS0VUAAkAGUlkeENvbnRyb2xDZmdOZXV0cmlub0RhcHAAAQAYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwAAIAFElkeENvbnRyb2xDZmdScGREYXBwAAMAFUlkeENvbnRyb2xDZmdNYXRoRGFwcAAEABxJZHhDb250cm9sQ2ZnTGlxdWlkYXRpb25EYXBwAAUAFUlkeENvbnRyb2xDZmdSZXN0RGFwcAAGAB1JZHhDb250cm9sQ2ZnTm9kZVJlZ2lzdHJ5RGFwcAAHABxJZHhDb250cm9sQ2ZnTnNidFN0YWtpbmdEYXBwAAgAGUlkeENvbnRyb2xDZmdNZWRpYXRvckRhcHAACQAbSWR4Q29udHJvbENmZ0dvdmVybmFuY2VEYXBwAA0BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJAKwCAgkArAICCQCsAgIJAKwCAgIKbWFuZGF0b3J5IAkApQgBBQdhZGRyZXNzAgEuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAERa2V5Q29udHJvbEFkZHJlc3MAAhwlcyVzX19jb25maWdfX2NvbnRyb2xBZGRyZXNzAQ1rZXlDb250cm9sQ2ZnAAIRJXNfX2NvbnRyb2xDb25maWcBFHJlYWRDb250cm9sQ2ZnT3JGYWlsAQdjb250cm9sCQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQdjb250cm9sCQENa2V5Q29udHJvbENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgpjb250cm9sQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUKY29udHJvbENmZwUDaWR4CQCsAgICLUNvbnRyb2wgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgAD2NvbnRyb2xDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERa2V5Q29udHJvbEFkZHJlc3MAAiMzTjROUzdkNEpvOWE2RjE0TGlGVUtLWVZkVWtrZjJlUDRaeAAKY29udHJvbENmZwkBFHJlYWRDb250cm9sQ2ZnT3JGYWlsAQUPY29udHJvbENvbnRyYWN0AAxtYXRoQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRVJZHhDb250cm9sQ2ZnTWF0aERhcHAAEG5ldXRyaW5vQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAA9hdWN0aW9uQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAC2dvdkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUbSWR4Q29udHJvbENmZ0dvdmVybmFuY2VEYXBwAQxrZXlCb25kQXNzZXQAAg1ib25kX2Fzc2V0X2lkARdrZXlVc2VyR25zYnRSZWxlYXNlVGltZQEIdXNlckFkZHIJAKwCAgIbJXMlc191c2VyR25zYnRSZWxlYXNlVGltZV9fBQh1c2VyQWRkcgEaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAhslc19fbmV1dHJpbm9Db250cmFjdEFkZHJlc3MBFmtleU1hdGhDb250cmFjdEFkZHJlc3MAAhAlc19fbWF0aENvbnRyYWN0ARBrZXlNaW5Mb2NrQW1vdW50AAIRJXNfX21pbkxvY2tBbW91bnQBC2tleUhhbGZMaWZlAAIMJXNfX2hhbGZMaWZlARZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtwYXJhbUJ5VXNlcgkAzAgCCQClCAEFC3VzZXJBZGRyZXNzCQDMCAICBmFtb3VudAUDbmlsBQlzZXBhcmF0b3IBFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sBC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICC3BhcmFtQnlVc2VyCQDMCAIJAKUIAQULdXNlckFkZHJlc3MJAMwIAgIFc3RhcnQFA25pbAUJc2VwYXJhdG9yARBrZXlIaXN0b3J5UmVjb3JkAwR0eXBlC3VzZXJBZGRyZXNzBHR4SWQJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCAgdoaXN0b3J5CQDMCAIFBHR5cGUJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCCQDYBAEFBHR4SWQFA25pbAUJc2VwYXJhdG9yARdrZXlMb2NrUGFyYW1Ub3RhbEFtb3VudAAJALkJAgkAzAgCAgQlcyVzCQDMCAICBXN0YXRzCQDMCAICEWFjdGl2ZVRvdGFsTG9ja2VkBQNuaWwFCXNlcGFyYXRvcgESa2V5U3RhdHNMb2Nrc0NvdW50AAkAuQkCCQDMCAICBCVzJXMJAMwIAgIFc3RhdHMJAMwIAgIKbG9ja3NDb3VudAUDbmlsBQlzZXBhcmF0b3IBEmtleVN0YXRzVXNlcnNDb3VudAAJALkJAgkAzAgCAgQlcyVzCQDMCAICBXN0YXRzCQDMCAICEGFjdGl2ZVVzZXJzQ291bnQFA25pbAUJc2VwYXJhdG9yARdrZXlTdGF0c0RlcG9zaXRBbXRCeURheQEJdGltZXN0YW1wCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICBXN0YXRzCQDMCAICD2RlcG9zaXRBbXRCeURheQkAzAgCCQCkAwEFCXRpbWVzdGFtcAUDbmlsBQlzZXBhcmF0b3IBGGtleVN0YXRzRGVwb3NpdEFtdFRvdGFscwAJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgIFc3RhdHMJAMwIAgIQZGVwb3NpdEFtdFRvdGFscwUDbmlsBQlzZXBhcmF0b3IBDWtleU5leHRQZXJpb2QAAg4lc19fbmV4dFBlcmlvZAEYa2V5U3VwcG9ydGVkUmV3YXJkQXNzZXRzAAIVc3VwcG9ydGVkUmV3YXJkQXNzZXRzARFrZXlEZXBvc2l0TnVtTGFzdAAJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIDZGVwCQDMCAICB2xhc3ROdW0FA25pbAUJc2VwYXJhdG9yARtrZXlVc2VyUmV3YXJkRnJvbURlcG9zaXROdW0BC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEXVzZXJSd2RGcm9tRGVwTnVtCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEVa2V5UmV3YXJkUGVyTnNidFN1bUF0AgpkZXBvc2l0TnVtA3RrbgkAuQkCCQDMCAICBCVzJWQJAMwIAgIVcndkUGVyTnNidFN1bUJ5RGVwTnVtCQDMCAIJAKQDAQUKZGVwb3NpdE51bQkAzAgCBQN0a24FA25pbAUJc2VwYXJhdG9yAQlrZXlSZXdhcmQCC3VzZXJBZGRyZXNzA3RrbgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgNyd2QJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUDdGtuBQNuaWwFCXNlcGFyYXRvcgEKa2V5Q2xhaW1lZAILdXNlckFkZHJlc3MDdGtuCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICA2NsbQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQN0a24FA25pbAUJc2VwYXJhdG9yARdrZXlOb3REaXN0cmlidXRlZFJld2FyZAEDdGtuCQC5CQIJAMwIAgIEJXMlcwkAzAgCAg5ub3REaXN0cmlidXRlZAkAzAgCBQN0a24FA25pbAUJc2VwYXJhdG9yAQV0b1gxOAIHb3JpZ1ZhbAhvcmlnTXVsdAkAvAIDCQC2AgEFB29yaWdWYWwFB01VTFRYMTgFCG9yaWdNdWx0AQxnZXRJbnRPclplcm8BA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEMZ2V0SW50T3JFbHNlAgNrZXkKZGVmYXVsdFZhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkFCmRlZmF1bHRWYWwBDGdldEludE9yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUDa2V5CQCsAgIJAKwCAgIPTWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEMZ2V0U3RyT3JFbHNlAgNrZXkKZGVmYXVsdFZhbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQNrZXkFCmRlZmF1bHRWYWwBD3RvQWRkcmVzc09yRmFpbAEKYWRkcmVzc1N0cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFCmFkZHJlc3NTdHIJAKwCAgIhY291bGRuJ3QgcGFyc2UgcGFzc2VkIGFkZHJlc3NTdHI9BQphZGRyZXNzU3RyAQt0b0Fzc2V0VmVjdAEIYXNzZXRTdHIDCQAAAgUIYXNzZXRTdHIFCldBVkVTSURTVFIFBHVuaXQJANkEAQUIYXNzZXRTdHIBBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50ARNmb3JtYXRIaXN0b3J5UmVjb3JkBAlvbGRBbW91bnQIb2xkU3RhcnQJbmV3QW1vdW50CG5ld1N0YXJ0CQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFCW9sZEFtb3VudAkAzAgCCQCkAwEFCG9sZFN0YXJ0CQDMCAIJAKQDAQUJbmV3QW1vdW50CQDMCAIJAKQDAQUIbmV3U3RhcnQFA25pbAUJc2VwYXJhdG9yARhmb3JtYXRDbGFpbUhpc3RvcnlSZWNvcmQCBHVzZXIOY2xhaW1lZFJld2FyZHMJALkJAgkAzAgCAgglcyVkJWQlcwkAzAgCBQR1c2VyCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCBQ5jbGFpbWVkUmV3YXJkcwUDbmlsBQlzZXBhcmF0b3IBEkhpc3RvcnlSZWNvcmRFbnRyeQcEdHlwZQt1c2VyQWRkcmVzcwR0eElkCW9sZEFtb3VudAhvbGRTdGFydAluZXdBbW91bnQIbmV3U3RhcnQJAQtTdHJpbmdFbnRyeQIJARBrZXlIaXN0b3J5UmVjb3JkAwUEdHlwZQULdXNlckFkZHJlc3MFBHR4SWQJARNmb3JtYXRIaXN0b3J5UmVjb3JkBAUJb2xkQW1vdW50BQhvbGRTdGFydAUJbmV3QW1vdW50BQhuZXdTdGFydAERQ2xhaW1IaXN0b3J5RW50cnkDC3VzZXJBZGRyZXNzBHR4SWQOY2xhaW1lZFJld2FyZHMJAQtTdHJpbmdFbnRyeQIJARBrZXlIaXN0b3J5UmVjb3JkAwIFY2xhaW0FC3VzZXJBZGRyZXNzBQR0eElkCQEYZm9ybWF0Q2xhaW1IaXN0b3J5UmVjb3JkAgkApQgBBQt1c2VyQWRkcmVzcwUOY2xhaW1lZFJld2FyZHMBC1N0YXRzUmVzdWx0Aw50b3RhbExvY2tlZEluYwxsb2NrQ291bnRJbmMNdXNlcnNDb3VudEluYwQKbG9ja3NDb3VudAkBDGdldEludE9yWmVybwEJARJrZXlTdGF0c0xvY2tzQ291bnQABAp1c2Vyc0NvdW50CQEMZ2V0SW50T3JaZXJvAQkBEmtleVN0YXRzVXNlcnNDb3VudAAEC3RvdGFsQW1vdW50CQEMZ2V0SW50T3JaZXJvAQkBF2tleUxvY2tQYXJhbVRvdGFsQW1vdW50AAQOdG90YWxBbW91bnROZXcJAGQCBQt0b3RhbEFtb3VudAUOdG90YWxMb2NrZWRJbmMJAJUKAwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleVN0YXRzTG9ja3NDb3VudAAJAGQCBQpsb2Nrc0NvdW50BQxsb2NrQ291bnRJbmMJAMwIAgkBDEludGVnZXJFbnRyeQIJARJrZXlTdGF0c1VzZXJzQ291bnQACQBkAgUKdXNlcnNDb3VudAUNdXNlcnNDb3VudEluYwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBF2tleUxvY2tQYXJhbVRvdGFsQW1vdW50AAUOdG90YWxBbW91bnROZXcFA25pbAULdG90YWxBbW91bnQFDnRvdGFsQW1vdW50TmV3AQ9Mb2NrUGFyYW1zRW50cnkDC3VzZXJBZGRyZXNzBmFtb3VudAVzdGFydAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleUxvY2tQYXJhbVVzZXJBbW91bnQBBQt1c2VyQWRkcmVzcwUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawEFC3VzZXJBZGRyZXNzBQVzdGFydAUDbmlsAQ9nZXRQYXJhbXNPckZhaWwACQCVCgMJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUQbmV1dHJpbm9Db250cmFjdAkBDGtleUJvbmRBc3NldAAJAQxnZXRJbnRPckZhaWwBCQEQa2V5TWluTG9ja0Ftb3VudAAJAQxnZXRJbnRPckZhaWwBCQELa2V5SGFsZkxpZmUAAQxpc0FjdGl2ZVVzZXIBC3VzZXJBZGRyZXNzCQBmAgkBDGdldEludE9yRWxzZQIJARZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AQULdXNlckFkZHJlc3MAAAAAARNnZXRVc2VyUGFyYW1zT3JVbml0AQt1c2VyQWRkcmVzcwMJAQxpc0FjdGl2ZVVzZXIBBQt1c2VyQWRkcmVzcwkAlQoDBwkBDGdldEludE9yRmFpbAEJARZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AQULdXNlckFkZHJlc3MJAQxnZXRJbnRPckZhaWwBCQEWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawEFC3VzZXJBZGRyZXNzBQR1bml0ARNnZXRVc2VyUGFyYW1zT3JGYWlsAQt1c2VyQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQETZ2V0VXNlclBhcmFtc09yVW5pdAEFC3VzZXJBZGRyZXNzCQCsAgIJAKwCAgIFVXNlciAJAKUIAQULdXNlckFkZHJlc3MCDyBpcyBub3QgZGVmaW5lZAASc3VwcG9ydGVkQXNzZXRzU3RyCQEMZ2V0U3RyT3JFbHNlAgkBGGtleVN1cHBvcnRlZFJld2FyZEFzc2V0cwACAAATc3VwcG9ydGVkQXNzZXRzTGlzdAkAtQkCBRJzdXBwb3J0ZWRBc3NldHNTdHICAV8BCmNhbGNSZXdhcmQFC3VzZXJBZGRyZXNzB2Fzc2V0SWQNc3Rha2VkQW1vdW50WA5kZXBvc2l0TnVtVXNlcg5kZXBvc2l0TnVtTGFzdAQXcmV3YXJkUGVyTnNidFN1bUxhc3RLRVkJARVrZXlSZXdhcmRQZXJOc2J0U3VtQXQCBQ5kZXBvc2l0TnVtTGFzdAUHYXNzZXRJZAQKc3VtTGFzdFgxOAkApwMBCQEMZ2V0U3RyT3JFbHNlAgkBFWtleVJld2FyZFBlck5zYnRTdW1BdAIFDmRlcG9zaXROdW1MYXN0BQdhc3NldElkAgEwBApzdW1Vc2VyWDE4CQCnAwEJAQxnZXRTdHJPckVsc2UCCQEVa2V5UmV3YXJkUGVyTnNidFN1bUF0AgUOZGVwb3NpdE51bVVzZXIFB2Fzc2V0SWQCATAEEXJld2FyZER5bmFtaWNQYXJ0CQCgAwEJALwCAwkAuAICBQpzdW1MYXN0WDE4BQpzdW1Vc2VyWDE4BQ1zdGFrZWRBbW91bnRYBQdNVUxUWDE4BBNyZXdhcmRDYWNoZWRQYXJ0S0VZCQEJa2V5UmV3YXJkAgULdXNlckFkZHJlc3MFB2Fzc2V0SWQEEHJld2FyZENhY2hlZFBhcnQJAQxnZXRJbnRPckVsc2UCBRNyZXdhcmRDYWNoZWRQYXJ0S0VZAAAJAJYKBAkAZAIFEHJld2FyZENhY2hlZFBhcnQFEXJld2FyZER5bmFtaWNQYXJ0BRByZXdhcmRDYWNoZWRQYXJ0BRFyZXdhcmREeW5hbWljUGFydAUTcmV3YXJkQ2FjaGVkUGFydEtFWQEMdG9TdGFydE9mRGF5AQl0aW1lc3RhbXAJAGgCCQBpAgUJdGltZXN0YW1wBQlEQVlNSUxMSVMFCURBWU1JTExJUwETZmluZEVsZW1lbnRQb3NpdGlvbgMDc3JjB2VsZW1lbnQDc2VwBAxlbGVtZW50U3RhcnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAswkCBQNzcmMFB2VsZW1lbnQJAKwCAgkArAICCQCsAgICFnRoZXJlIGlzIG5vIHN1YnN0cmluZyAFB2VsZW1lbnQCBCBpbiAFA3NyYwMJAAACBQxlbGVtZW50U3RhcnQAAAAABARsZWZ0CQCvAgIFA3NyYwUMZWxlbWVudFN0YXJ0CQBlAgkAkAMBCQC1CQIFBGxlZnQFA3NlcAABABNEZXBvc2l0VG90YWxzUFJFRklYAiQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQAEWRlZmF1bHRUb3RhbHNEQVRBCQCsAgIFE0RlcG9zaXRUb3RhbHNQUkVGSVgCNl9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMF9fMAEHcGFkTGlzdAECaW4ECGN1cnJTaXplCQBlAgkAkAMBBQJpbgABCgEKbGlzdFBhZGRlcgIDYWNjA2lkeAMJAGYCBQhjdXJyU2l6ZQUDaWR4BQNhY2MJAM0IAgUDYWNjAgEwCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEFA25pbAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFAmluCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpsaXN0UGFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxOAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgEJcGFkU3RyaW5nAQJpbgQIY3VyclNpemUJAGUCCQCQAwEJALwJAgUCaW4FA1NFUAABCgEJc3RyUGFkZGVyAgNhY2MDaWR4AwkAZgIFCGN1cnJTaXplBQNpZHgFA2FjYwkArAICBQNhY2MCA19fMAoAAiRsCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOCQDMCAIADwkAzAgCABAJAMwIAgARBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQJpbgoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEJc3RyUGFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxOAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgENUmV3YXJkRW50cmllcwMJaXNOZXdVc2VyC3VzZXJBZGRyZXNzDHN0YWtlZEFtb3VudAQNc3Rha2VkQW1vdW50WAkAtgIBBQxzdGFrZWRBbW91bnQEG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQkBG2tleVVzZXJSZXdhcmRGcm9tRGVwb3NpdE51bQEFC3VzZXJBZGRyZXNzBA5kZXBvc2l0TnVtVXNlcgkBDGdldEludE9yRWxzZQIFG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQD///////////8BBA5kZXBvc2l0TnVtTGFzdAkBDGdldEludE9yRWxzZQIJARFrZXlEZXBvc2l0TnVtTGFzdAAA////////////AQoBG2ZvckVhY2hBc3NldENhY2hlVXNlclJld2FyZAIFYWNjdW0FYXNzZXQEDSR0MDEwMjYwMTAzOTUJAQpjYWxjUmV3YXJkBQULdXNlckFkZHJlc3MFBWFzc2V0BQ1zdGFrZWRBbW91bnRYBQ5kZXBvc2l0TnVtVXNlcgUOZGVwb3NpdE51bUxhc3QEC3Jld2FyZFRvdGFsCAUNJHQwMTAyNjAxMDM5NQJfMQQGY2FjaGVkCAUNJHQwMTAyNjAxMDM5NQJfMgQHZHluYW1pYwgFDSR0MDEwMjYwMTAzOTUCXzMEE3Jld2FyZENhY2hlZFBhcnRLRVkIBQ0kdDAxMDI2MDEwMzk1Al80CQDNCAIFBWFjY3VtCQEMSW50ZWdlckVudHJ5AgUTcmV3YXJkQ2FjaGVkUGFydEtFWQULcmV3YXJkVG90YWwDAwkAAAIFDmRlcG9zaXROdW1MYXN0AP///////////wEJAAACBQ5kZXBvc2l0TnVtVXNlcgD///////////8BBwUDbmlsAwMJAAACBQ5kZXBvc2l0TnVtTGFzdAD///////////8BCQBmAgUOZGVwb3NpdE51bVVzZXIA////////////AQcJAAIBAi9pbnZhbGlkIGRlcG9zaXROdW1MYXN0IGFuZCBkZXBvc2l0TnVtVXNlciBzdGF0ZQMDCQBmAgUOZGVwb3NpdE51bUxhc3QA////////////AQkAZwIFDmRlcG9zaXROdW1Vc2VyAP///////////wEHAwUJaXNOZXdVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRt1c2VyUmV3YXJkRnJvbURlcG9zaXROdW1LRVkFDmRlcG9zaXROdW1MYXN0BQNuaWwJAM0IAgoAAiRsBRNzdXBwb3J0ZWRBc3NldHNMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARtmb3JFYWNoQXNzZXRDYWNoZVVzZXJSZXdhcmQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDkJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkJAQxJbnRlZ2VyRW50cnkCBRt1c2VyUmV3YXJkRnJvbURlcG9zaXROdW1LRVkFDmRlcG9zaXROdW1MYXN0CQACAQkArAICCQCsAgIJAKwCAgIkdW5jb3ZlcmVkIGNvbmRpdGlvbjogZGVwb3NpdE51bUxhc3Q9CQCkAwEFDmRlcG9zaXROdW1MYXN0AhAgZGVwb3NpdE51bVVzZXI9CQCkAwEFDmRlcG9zaXROdW1Vc2VyASJJbmNyZW1lbnROb3REaXN0cmlidXRlZFJld2FyZEVudHJ5AgN0a24JYW1vdW50SW5jBBdub3REaXN0cmlidXRlZFJld2FyZEtFWQkBF2tleU5vdERpc3RyaWJ1dGVkUmV3YXJkAQUDdGtuBBRub3REaXN0cmlidXRlZFJld2FyZAkBDGdldEludE9yRWxzZQIFF25vdERpc3RyaWJ1dGVkUmV3YXJkS0VZAAAJAQxJbnRlZ2VyRW50cnkCBRdub3REaXN0cmlidXRlZFJld2FyZEtFWQkAZAIFFG5vdERpc3RyaWJ1dGVkUmV3YXJkBQlhbW91bnRJbmMBC2NvbW1vbkNsYWltAgt1c2VyQWRkcmVzcwFpBA51c2VyQWRkcmVzc1N0cgkApQgBBQt1c2VyQWRkcmVzcwMJAGYCCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhlwYXltZW50cyBhcmUgbm90IGFjY2VwdGVkBA0kdDAxMzMzNjEzNDQxCQELdmFsdWVPckVsc2UCCQETZ2V0VXNlclBhcmFtc09yVW5pdAEFC3VzZXJBZGRyZXNzCQCVCgMGAAAAAAQJaXNOZXdVc2VyCAUNJHQwMTMzMzYxMzQ0MQJfMQQMc3Rha2VkQW1vdW50CAUNJHQwMTMzMzYxMzQ0MQJfMgQMc3Rha2luZ1N0YXJ0CAUNJHQwMTMzMzYxMzQ0MQJfMwQNc3Rha2VkQW1vdW50WAkAtgIBBQxzdGFrZWRBbW91bnQEG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQkBG2tleVVzZXJSZXdhcmRGcm9tRGVwb3NpdE51bQEFDnVzZXJBZGRyZXNzU3RyBA5kZXBvc2l0TnVtVXNlcgkBDGdldEludE9yRWxzZQIFG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQD///////////8BBA5kZXBvc2l0TnVtTGFzdAkBDGdldEludE9yRWxzZQIJARFrZXlEZXBvc2l0TnVtTGFzdAAA////////////AQoBH2ZvckVhY2hBc3NldENhbGNVbmNsYWltZWRSZXdhcmQCBWFjY3VtBWFzc2V0BA0kdDAxMzgxMjEzOTUwCQEKY2FsY1Jld2FyZAUFDnVzZXJBZGRyZXNzU3RyBQVhc3NldAUNc3Rha2VkQW1vdW50WAUOZGVwb3NpdE51bVVzZXIFDmRlcG9zaXROdW1MYXN0BAtyZXdhcmRUb3RhbAgFDSR0MDEzODEyMTM5NTACXzEEBmNhY2hlZAgFDSR0MDEzODEyMTM5NTACXzIEB2R5bmFtaWMIBQ0kdDAxMzgxMjEzOTUwAl8zBBNyZXdhcmRDYWNoZWRQYXJ0S0VZCAUNJHQwMTM4MTIxMzk1MAJfNAQKY2xhaW1lZEtFWQkBCmtleUNsYWltZWQCBQ51c2VyQWRkcmVzc1N0cgUFYXNzZXQEDSR0MDE0MDEwMTQwNDcFBWFjY3VtBARkYXRhCAUNJHQwMTQwMTAxNDA0NwJfMQQRY2xhaW1lZEFtdEJ5QXNzZXQIBQ0kdDAxNDAxMDE0MDQ3Al8yBAduZXdQYXJ0CQC5CQIJAMwIAgUFYXNzZXQJAMwIAgkApAMBBQtyZXdhcmRUb3RhbAUDbmlsAgE6BBRjbGFpbWVkQW10QnlBc3NldE5ldwkAuQkCCQDMCAIFEWNsYWltZWRBbXRCeUFzc2V0CQDMCAIFB25ld1BhcnQFA25pbAIBXwMJAGcCAAAFC3Jld2FyZFRvdGFsCQCUCgIFBGRhdGEFFGNsYWltZWRBbXRCeUFzc2V0TmV3CQCUCgIJAM0IAgkAzQgCCQDNCAIFBGRhdGEJAQ5TY3JpcHRUcmFuc2ZlcgMFC3VzZXJBZGRyZXNzBQtyZXdhcmRUb3RhbAkBC3RvQXNzZXRWZWN0AQUFYXNzZXQJAQxJbnRlZ2VyRW50cnkCBQpjbGFpbWVkS0VZCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQpjbGFpbWVkS0VZAAAFC3Jld2FyZFRvdGFsCQEMSW50ZWdlckVudHJ5AgUTcmV3YXJkQ2FjaGVkUGFydEtFWQAABRRjbGFpbWVkQW10QnlBc3NldE5ldwQNJHQwMTQ1MDcxNDYyMAoAAiRsBRNzdXBwb3J0ZWRBc3NldHNMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwCAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEfZm9yRWFjaEFzc2V0Q2FsY1VuY2xhaW1lZFJld2FyZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgOQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQQJdHJhbnNmZXJzCAUNJHQwMTQ1MDcxNDYyMAJfMQQXY2xhaW1lZEFtdEJ5QXNzZXRSZXN1bHQIBQ0kdDAxNDUwNzE0NjIwAl8yAwkAZwIAAAkAkAMBBQl0cmFuc2ZlcnMJAJQKAgUDbmlsAAAJAJQKAgkAzQgCCQDNCAIFCXRyYW5zZmVycwkBDEludGVnZXJFbnRyeQIFG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQUOZGVwb3NpdE51bUxhc3QJARFDbGFpbUhpc3RvcnlFbnRyeQMFC3VzZXJBZGRyZXNzCAUBaQ10cmFuc2FjdGlvbklkCQCwAgIFF2NsYWltZWRBbXRCeUFzc2V0UmVzdWx0AAEJAJADAQUJdHJhbnNmZXJzCQFpAQ1jb25zdHJ1Y3RvclYxBRduZXV0cmlub0NvbnRyYWN0QWRkcmVzcxNtYXRoQ29udHJhY3RBZGRyZXNzDW1pbkxvY2tBbW91bnQIaGFsZkxpZmUVc3VwcG9ydGVkUmV3YXJkQXNzZXRzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleU5ldXRyaW5vQ29udHJhY3RBZGRyZXNzAAUXbmV1dHJpbm9Db250cmFjdEFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFmtleU1hdGhDb250cmFjdEFkZHJlc3MABRNtYXRoQ29udHJhY3RBZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5TWluTG9ja0Ftb3VudAAFDW1pbkxvY2tBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtrZXlIYWxmTGlmZQAFCGhhbGZMaWZlCQDMCAIJAQtTdHJpbmdFbnRyeQIJARhrZXlTdXBwb3J0ZWRSZXdhcmRBc3NldHMABRVzdXBwb3J0ZWRSZXdhcmRBc3NldHMFA25pbAFpAQVzdGFrZQAEDSR0MDE1NDcxMTU1MzMJAQ9nZXRQYXJhbXNPckZhaWwABAtib25kQXNzZXRJZAgFDSR0MDE1NDcxMTU1MzMCXzEEDW1pbkxvY2tBbW91bnQIBQ0kdDAxNTQ3MTE1NTMzAl8yBAhoYWxmTGlmZQgFDSR0MDE1NDcxMTU1MzMCXzMDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhVJbnZhbGlkIHBheW1lbnRzIHNpemUEB3BheW1lbnQJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CAUHcGF5bWVudAZhbW91bnQEE2ludmFsaWRBc3NldE1lc3NhZ2UJAKwCAgkArAICAg9JbnZhbGlkIGFzc2V0LiAJANgEAQULYm9uZEFzc2V0SWQCDCBpcyBleHBlY3RlZAQHYXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAUHcGF5bWVudAdhc3NldElkBRNpbnZhbGlkQXNzZXRNZXNzYWdlAwkBAiE9AgUHYXNzZXRJZAULYm9uZEFzc2V0SWQJAAIBBRNpbnZhbGlkQXNzZXRNZXNzYWdlBAt1c2VyQWRkcmVzcwgFAWkGY2FsbGVyBA51c2VyQWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDSR0MDE2MDc1MTYxODIJAQt2YWx1ZU9yRWxzZQIJARNnZXRVc2VyUGFyYW1zT3JVbml0AQULdXNlckFkZHJlc3MJAJUKAwYAAAD///////////8BBAlpc05ld1VzZXIIBQ0kdDAxNjA3NTE2MTgyAl8xBApsb2NrQW1vdW50CAUNJHQwMTYwNzUxNjE4MgJfMgQPbG9ja1N0YXJ0SGVpZ2h0CAUNJHQwMTYwNzUxNjE4MgJfMwQMbWVyZ2VkQW1vdW50AwUJaXNOZXdVc2VyBQZhbW91bnQJAGQCBQZhbW91bnQFCmxvY2tBbW91bnQEEW1lcmdlZFN0YXJ0SGVpZ2h0AwUJaXNOZXdVc2VyBQZoZWlnaHQJAQVhc0ludAEJAPwHBAUMbWF0aENvbnRyYWN0AhNtZXJnZVN0YWtlc1JFQURPTkxZCQDMCAIFBmFtb3VudAkAzAgCBQZoZWlnaHQJAMwIAgUKbG9ja0Ftb3VudAkAzAgCBQ9sb2NrU3RhcnRIZWlnaHQJAMwIAgUIaGFsZkxpZmUFA25pbAUDbmlsAwkAZgIFDW1pbkxvY2tBbW91bnQFDG1lcmdlZEFtb3VudAkAAgEJAKwCAgITTWluIGxvY2sgYW1vdW50IGlzIAkApAMBBQ1taW5Mb2NrQW1vdW50BA0kdDAxNjU0MzE2NjQ1CQELU3RhdHNSZXN1bHQDBQZhbW91bnQAAQMFCWlzTmV3VXNlcgABAAAEDHN0YXRzRW50cmllcwgFDSR0MDE2NTQzMTY2NDUCXzEEC3RvdGFsU3Rha2VkCAUNJHQwMTY1NDMxNjY0NQJfMgQOdG90YWxTdGFrZWROZXcIBQ0kdDAxNjU0MzE2NjQ1Al8zCQDOCAIJAM4IAgkAzggCCQDMCAIJARJIaXN0b3J5UmVjb3JkRW50cnkHAgVzdGFrZQULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQFCmxvY2tBbW91bnQFD2xvY2tTdGFydEhlaWdodAUMbWVyZ2VkQW1vdW50BRFtZXJnZWRTdGFydEhlaWdodAUDbmlsCQENUmV3YXJkRW50cmllcwMFCWlzTmV3VXNlcgUOdXNlckFkZHJlc3NTdHIFCmxvY2tBbW91bnQJAQ9Mb2NrUGFyYW1zRW50cnkDBQt1c2VyQWRkcmVzcwUMbWVyZ2VkQW1vdW50BRFtZXJnZWRTdGFydEhlaWdodAUMc3RhdHNFbnRyaWVzAWkBB3Vuc3Rha2UBBmFtb3VudAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECI3Vuc3Rha2UgZG9lc24ndCByZXF1aXJlIGFueSBwYXltZW50BAt1c2VyQWRkcmVzcwgFAWkGY2FsbGVyBA51c2VyQWRkcmVzc1N0cgkApQgBBQt1c2VyQWRkcmVzcwQNJHQwMTcxMzExNzE5MwkBD2dldFBhcmFtc09yRmFpbAAEC2JvbmRBc3NldElkCAUNJHQwMTcxMzExNzE5MwJfMQQNbWluTG9ja0Ftb3VudAgFDSR0MDE3MTMxMTcxOTMCXzIECGhhbGZMaWZlCAUNJHQwMTcxMzExNzE5MwJfMwQNJHQwMTcxOTYxNzI3MAkBE2dldFVzZXJQYXJhbXNPckZhaWwBBQt1c2VyQWRkcmVzcwQJaXNOZXdVc2VyCAUNJHQwMTcxOTYxNzI3MAJfMQQKbG9ja0Ftb3VudAgFDSR0MDE3MTk2MTcyNzACXzIECWxvY2tTdGFydAgFDSR0MDE3MTk2MTcyNzACXzMDCQBnAgAABQpsb2NrQW1vdW50CQACAQISTm90aGluZyB0byB1bnN0YWtlAwkAZgIFBmFtb3VudAUKbG9ja0Ftb3VudAkAAgEJAKwCAgkArAICCQCsAgICClJlcXVlc3RlZCAJAKQDAQUGYW1vdW50AhIsIGJ1dCBzdGFrZWQgb25seSAJAKQDAQUKbG9ja0Ftb3VudAQBdAgJAQV2YWx1ZQEJAO0HAQUGaGVpZ2h0CXRpbWVzdGFtcAQLcmVsZWFzZVRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgULZ292Q29udHJhY3QJARdrZXlVc2VyR25zYnRSZWxlYXNlVGltZQEFDnVzZXJBZGRyZXNzU3RyAAADCQBnAgULcmVsZWFzZVRpbWUFAXQJAAIBCQCsAgICO1lvdXIgZ05zYnQgYXJlIHRha2luZyBwYXJ0IGluIHZvdGluZywgY2Fubm90IHVuc3Rha2UgdW50aWwgCQCkAwEFC3JlbGVhc2VUaW1lBA9jb21pc3Npb25BbW91bnQJAQVhc0ludAEJAPwHBAUMbWF0aENvbnRyYWN0AiFnZXRVbnN0YWtlQ29taXNzaW9uQW1vdW50UkVBRE9OTFkJAMwIAgUGYW1vdW50CQDMCAIFCWxvY2tTdGFydAkAzAgCBQhoYWxmTGlmZQUDbmlsBQNuaWwEDSR0MDE3OTExMTgwNjUJAQtTdGF0c1Jlc3VsdAMJAQEtAQUGYW1vdW50AwkAAAIFBmFtb3VudAUKbG9ja0Ftb3VudAD///////////8BAAADCQAAAgUGYW1vdW50BQpsb2NrQW1vdW50AP///////////wEAAAQMc3RhdHNFbnRyaWVzCAUNJHQwMTc5MTExODA2NQJfMQQLdG90YWxTdGFrZWQIBQ0kdDAxNzkxMTE4MDY1Al8yBA50b3RhbFN0YWtlZE5ldwgFDSR0MDE3OTExMTgwNjUCXzMJAM4IAgkAzggCCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MJAGUCBQZhbW91bnQFD2NvbWlzc2lvbkFtb3VudAULYm9uZEFzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUPYXVjdGlvbkNvbnRyYWN0BQ9jb21pc3Npb25BbW91bnQFC2JvbmRBc3NldElkCQDMCAIJARJIaXN0b3J5UmVjb3JkRW50cnkHAgd1bnN0YWtlBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAUKbG9ja0Ftb3VudAUJbG9ja1N0YXJ0CQBlAgUKbG9ja0Ftb3VudAUGYW1vdW50BQlsb2NrU3RhcnQFA25pbAkBDVJld2FyZEVudHJpZXMDBwUOdXNlckFkZHJlc3NTdHIFCmxvY2tBbW91bnQJAQ9Mb2NrUGFyYW1zRW50cnkDBQt1c2VyQWRkcmVzcwkAZQIFCmxvY2tBbW91bnQFBmFtb3VudAUJbG9ja1N0YXJ0BQxzdGF0c0VudHJpZXMBaQEHZGVwb3NpdAAEC3RvdGFsU3Rha2VkCQEMZ2V0SW50T3JFbHNlAgkBF2tleUxvY2tQYXJhbVRvdGFsQW1vdW50AAAAAwkAZgIAAAULdG90YWxTdGFrZWQJAAIBAhtUT0RPOiBjYXNlIGlzIG5vdCBzdXBwb3J0ZWQEEWRlcG9zaXROdW1MYXN0S0VZCQERa2V5RGVwb3NpdE51bUxhc3QABA5kZXBvc2l0TnVtTGFzdAkBDGdldEludE9yRWxzZQIFEWRlcG9zaXROdW1MYXN0S0VZAP///////////wEEDWRlcG9zaXROdW1OZXcJAGQCBQ5kZXBvc2l0TnVtTGFzdAABBAl0b3RhbHNLRVkJARhrZXlTdGF0c0RlcG9zaXRBbXRUb3RhbHMABAhieURheUtFWQkBF2tleVN0YXRzRGVwb3NpdEFtdEJ5RGF5AQkBDHRvU3RhcnRPZkRheQEIBQlsYXN0QmxvY2sJdGltZXN0YW1wBApjdXJyVG90YWxzCQEHcGFkTGlzdAEJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBBQl0b3RhbHNLRVkFEWRlZmF1bHRUb3RhbHNEQVRBBQNTRVAKAQNkZXACA2FjYwNwbXQEBmFtb3VudAgFA3BtdAZhbW91bnQEDXBtdEFzc2V0SWRTdHIJANgEAQkBC3ZhbHVlT3JFbHNlAggFA3BtdAdhc3NldElkBQdXQVZF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b3NpdE51bUxhc3RLRVkFDWRlcG9zaXROdW1OZXcJAQtTdHJpbmdFbnRyeQIFCXRvdGFsc0tFWQUGdG90YWxzCQELU3RyaW5nRW50cnkCBQhieURheUtFWQUGdG90YWxzBQ1kZXBvc2l0TnVtTmV3AWkBDGNsYWltUmV3YXJkcwAJAQtjb21tb25DbGFpbQIIBQFpBmNhbGxlcgUBaQFpARpjbGFpbVJld2FyZHNCeU9yaWdpbkNhbGxlcgAJAQtjb21tb25DbGFpbQIIBQFpDG9yaWdpbkNhbGxlcgUBaQFpARh1bmNsYWltZWRSZXdhcmRzUkVBRE9OTFkBDnVzZXJBZGRyZXNzU3RyCgEWZm9yRWFjaEFzc2V0WmVyb1Jld2FyZAIFYWNjdW0FYXNzZXQJAKwCAgkArAICBQVhY2N1bQkAuQkCCQDMCAIFBWFzc2V0CQDMCAICATAJAMwIAgIBMAUDbmlsAgE6AgFfBBJ1bmNsYWltZWRSZXdhcmRTdHIDCQAAAgUOdXNlckFkZHJlc3NTdHICAAoAAiRsBRNzdXBwb3J0ZWRBc3NldHNMaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARZmb3JFYWNoQXNzZXRaZXJvUmV3YXJkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA5CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJBAt1c2VyQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUOdXNlckFkZHJlc3NTdHIEDSR0MDIxOTE0MjIwMTkJAQt2YWx1ZU9yRWxzZQIJARNnZXRVc2VyUGFyYW1zT3JVbml0AQULdXNlckFkZHJlc3MJAJUKAwYAAAAABAlpc05ld1VzZXIIBQ0kdDAyMTkxNDIyMDE5Al8xBAxzdGFrZWRBbW91bnQIBQ0kdDAyMTkxNDIyMDE5Al8yBAxzdGFraW5nU3RhcnQIBQ0kdDAyMTkxNDIyMDE5Al8zBA1zdGFrZWRBbW91bnRYCQC2AgEFDHN0YWtlZEFtb3VudAQbdXNlclJld2FyZEZyb21EZXBvc2l0TnVtS0VZCQEba2V5VXNlclJld2FyZEZyb21EZXBvc2l0TnVtAQUOdXNlckFkZHJlc3NTdHIEDmRlcG9zaXROdW1Vc2VyCQEMZ2V0SW50T3JFbHNlAgUbdXNlclJld2FyZEZyb21EZXBvc2l0TnVtS0VZAP///////////wEEDmRlcG9zaXROdW1MYXN0CQEMZ2V0SW50T3JFbHNlAgkBEWtleURlcG9zaXROdW1MYXN0AAD///////////8BCgEfZm9yRWFjaEFzc2V0Q2FsY1VuY2xhaW1lZFJld2FyZAIFYWNjdW0FYXNzZXQEDSR0MDIyMzY1MjI1MDMJAQpjYWxjUmV3YXJkBQUOdXNlckFkZHJlc3NTdHIFBWFzc2V0BQ1zdGFrZWRBbW91bnRYBQ5kZXBvc2l0TnVtVXNlcgUOZGVwb3NpdE51bUxhc3QEC3Jld2FyZFRvdGFsCAUNJHQwMjIzNjUyMjUwMwJfMQQGY2FjaGVkCAUNJHQwMjIzNjUyMjUwMwJfMgQHZHluYW1pYwgFDSR0MDIyMzY1MjI1MDMCXzMEE3Jld2FyZENhY2hlZFBhcnRLRVkIBQ0kdDAyMjM2NTIyNTAzAl80BAdjbGFpbWVkCQELdmFsdWVPckVsc2UCCQCfCAEJAQprZXlDbGFpbWVkAgUOdXNlckFkZHJlc3NTdHIFBWFzc2V0AAAJAKwCAgkArAICBQVhY2N1bQkAuQkCCQDMCAIFBWFzc2V0CQDMCAIJAKQDAQULcmV3YXJkVG90YWwJAMwIAgkApAMBBQdjbGFpbWVkBQNuaWwCAToCAV8KAAIkbAUTc3VwcG9ydGVkQXNzZXRzTGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzACAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEfZm9yRWFjaEFzc2V0Q2FsY1VuY2xhaW1lZFJld2FyZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgOQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQkAlAoCBQNuaWwJALMCAgUSdW5jbGFpbWVkUmV3YXJkU3RyAAEBaQEYbnNidFVuc3Rha2luZ1NZU1JFQURPTkxZAhV1c2VyQWRkcmVzc1N0ck9yRW1wdHkLdW5zdGFrZUFtdFAEC3Jlc3VsdEFycmF5AwkAAAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQIACQDMCAIAAAkAzAgCAAAJAMwIAgAACQDMCAIAAAUDbmlsBAt1c2VyQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUVdXNlckFkZHJlc3NTdHJPckVtcHR5BAdjZmdEQVRBCQEPZ2V0UGFyYW1zT3JGYWlsAAQLbnNidEFzc2V0SWQIBQdjZmdEQVRBAl8xBA1taW5Mb2NrQW1vdW50CAUHY2ZnREFUQQJfMgQIaGFsZkxpZmUIBQdjZmdEQVRBAl8zBAh1c2VyREFUQQkBC3ZhbHVlT3JFbHNlAgkBE2dldFVzZXJQYXJhbXNPclVuaXQBBQt1c2VyQWRkcmVzcwkAlQoDBgAAAAAECWlzTmV3VXNlcggFCHVzZXJEQVRBAl8xBAxzdGFrZWRBbW91bnQIBQh1c2VyREFUQQJfMgQJbG9ja1N0YXJ0CAUIdXNlckRBVEECXzMECnVuc3Rha2VBbXQDCQBmAgULdW5zdGFrZUFtdFAFDHN0YWtlZEFtb3VudAUMc3Rha2VkQW1vdW50BQt1bnN0YWtlQW10UAQPc3Rha2VkQW1vdW50TkVXCQBlAgUMc3Rha2VkQW1vdW50BQp1bnN0YWtlQW10BA9jb21pc3Npb25BbW91bnQDCQAAAgUKdW5zdGFrZUFtdAAAAAAJAQVhc0ludAEJAPwHBAUMbWF0aENvbnRyYWN0AiFnZXRVbnN0YWtlQ29taXNzaW9uQW1vdW50UkVBRE9OTFkJAMwIAgUKdW5zdGFrZUFtdAkAzAgCBQlsb2NrU3RhcnQJAMwIAgUIaGFsZkxpZmUFA25pbAUDbmlsBA1yZWNlaXZlQW1vdW50CQBlAgUKdW5zdGFrZUFtdAUPY29taXNzaW9uQW1vdW50CQDMCAIFDHN0YWtlZEFtb3VudAkAzAgCBQ9zdGFrZWRBbW91bnRORVcJAMwIAgUNcmVjZWl2ZUFtb3VudAkAzAgCBQ9jb21pc3Npb25BbW91bnQFA25pbAkAlAoCBQNuaWwFC3Jlc3VsdEFycmF5AWkBFm5zYnRTdGFraW5nU1lTUkVBRE9OTFkCDnVzZXJBZGRyZXNzU3RyCG5zYnREaWZmBAx0b3RhbE5zYnRBbXQJAQxnZXRJbnRPckVsc2UCCQEXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAADCQAAAgUOdXNlckFkZHJlc3NTdHICAAkAlAoCBQNuaWwJAMwIAgAACQDMCAIFDHRvdGFsTnNidEFtdAkAzAgCAAAFA25pbAQLdXNlckFkZHJlc3MJAQ90b0FkZHJlc3NPckZhaWwBBQ51c2VyQWRkcmVzc1N0cgQNJHQwMjQxODEyNDI4NQkBC3ZhbHVlT3JFbHNlAgkBE2dldFVzZXJQYXJhbXNPclVuaXQBBQt1c2VyQWRkcmVzcwkAlQoDBgAAAAAECWlzTmV3VXNlcggFDSR0MDI0MTgxMjQyODUCXzEEC3VzZXJOc2J0QW10CAUNJHQwMjQxODEyNDI4NQJfMgQMc3Rha2luZ1N0YXJ0CAUNJHQwMjQxODEyNDI4NQJfMwkAlAoCBQNuaWwJAMwIAgULdXNlck5zYnRBbXQJAMwIAgUMdG90YWxOc2J0QW10CQDMCAIFDHN0YWtpbmdTdGFydAUDbmlsAQJ0eAEGdmVyaWZ5AAQTcHViS2V5QWRtaW5zTGlzdFN0cgkAuQkCCQDMCAICLEV4dEVFSzE5bm1LajltQ3BuV3l2RUVKRllBVExNY1ZFTXZvaGhVSGt5SE5tCQDMCAICLEV2NXB5NUZmQlFYOWNacFlLbmZRclRCNDlCeWY4UW1wWldlRFZSaW00eVY3CQDMCAICLERVdXVMalh1OThuQndaYzdmcXdDVGp0QTNublJ3Z1Ria01TcjVTVTJObURSCQDMCAICLERVdXVMalh1OThuQndaYzdmcXdDVGp0QTNublJ3Z1Ria01TcjVTVTJObURSBQNuaWwFA1NFUAQQcHViS2V5QWRtaW5zTGlzdAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFD2NvbnRyb2xDb250cmFjdAIMJXNfX211bHRpc2lnBRNwdWJLZXlBZG1pbnNMaXN0U3RyBQNTRVAEBWNvdW50CQBkAgkAZAIJAGQCAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkA2QQBCQCRAwIFEHB1YktleUFkbWluc0xpc3QAAAABAAADCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABCQDZBAEJAJEDAgUQcHViS2V5QWRtaW5zTGlzdAABAAEAAAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIJANkEAQkAkQMCBRBwdWJLZXlBZG1pbnNMaXN0AAIAAQAAAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAwkA2QQBCQCRAwIFEHB1YktleUFkbWluc0xpc3QAAwACAAAJAGcCBQVjb3VudAADPesTaA==", "height": 2509362, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 54vbnaqZsxsDCEAu2RsW9izsjHKAH2ihSHeffkvyVwd2 Next: CZpLBavoeneH3HLSnD9uSZ7bVcrixZpQdVx1hGbFCk8v Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "__"
77
88 let c = 1000000
99
1010 let d = 100000000
1111
1212 let e = toBigInt(c)
1313
1414 let f = toBigInt(d)
1515
1616 let g = toBigInt(1000000000000000000)
1717
1818 let h = "WAVES"
1919
2020 let i = fromBase58String(h)
2121
2222 let j = 86400000
2323
2424 let k = 9
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 5
3535
3636 let q = 6
3737
3838 let r = 7
3939
4040 let s = 8
4141
4242 let t = 9
4343
4444 let u = 13
4545
4646 func v (w,x) = valueOrErrorMessage(getString(w, x), (((("mandatory " + toString(w)) + ".") + x) + " is not defined"))
4747
4848
4949 func y () = "%s%s__config__controlAddress"
5050
5151
5252 func z () = "%s__controlConfig"
5353
5454
5555 func A (B) = split_4C(v(B, z()), b)
5656
5757
5858 func C (D,E) = valueOrErrorMessage(addressFromString(D[E]), ("Control cfg doesn't contain address at index " + toString(E)))
5959
6060
6161 let F = addressFromStringValue(valueOrElse(getString(this, y()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
6262
6363 let D = A(F)
6464
6565 let G = C(D, o)
6666
6767 let H = C(D, l)
6868
6969 let I = C(D, m)
7070
7171 let J = C(D, u)
7272
7373 func K () = "bond_asset_id"
7474
7575
7676 func L (M) = ("%s%s_userGnsbtReleaseTime__" + M)
7777
7878
7979 func N () = "%s__neutrinoContractAddress"
8080
8181
8282 func O () = "%s__mathContract"
8383
8484
8585 func P () = "%s__minLockAmount"
8686
8787
8888 func Q () = "%s__halfLife"
8989
9090
9191 func R (S) = makeString(["%s%s%s", "paramByUser", toString(S), "amount"], a)
9292
9393
9494 func T (S) = makeString(["%s%s%s", "paramByUser", toString(S), "start"], a)
9595
9696
9797 func U (V,S,W) = makeString(["%s%s%s%s", "history", V, toString(S), toBase58String(W)], a)
9898
9999
100100 func X () = makeString(["%s%s", "stats", "activeTotalLocked"], a)
101101
102102
103103 func Y () = makeString(["%s%s", "stats", "locksCount"], a)
104104
105105
106106 func Z () = makeString(["%s%s", "stats", "activeUsersCount"], a)
107107
108108
109109 func aa (ab) = makeString(["%s%s%d", "stats", "depositAmtByDay", toString(ab)], a)
110110
111111
112112 func ac () = makeString(["%s%s%d", "stats", "depositAmtTotals"], a)
113113
114114
115115 func ad () = "%s__nextPeriod"
116116
117117
118118 func ae () = "supportedRewardAssets"
119119
120120
121121 func af () = makeString(["%s%s%s", "dep", "lastNum"], a)
122122
123123
124124 func ag (S) = makeString(["%s%s%s", "userRwdFromDepNum", S], a)
125125
126126
127127 func ah (ai,aj) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(ai), aj], a)
128128
129129
130130 func ak (S,aj) = makeString(["%s%s%s", "rwd", S, aj], a)
131131
132132
133133 func al (S,aj) = makeString(["%s%s%s", "clm", S, aj], a)
134134
135135
136136 func am (aj) = makeString(["%s%s", "notDistributed", aj], a)
137137
138138
139139 func an (ao,ap) = fraction(toBigInt(ao), g, ap)
140140
141141
142142 func aq (x) = valueOrElse(getInteger(this, x), 0)
143143
144144
145145 func ar (x,as) = valueOrElse(getInteger(this, x), as)
146146
147147
148148 func at (x) = valueOrErrorMessage(getInteger(this, x), (("Mandatory this." + x) + " is not defined"))
149149
150150
151151 func au (x,as) = valueOrElse(getString(this, x), as)
152152
153153
154154 func av (aw) = valueOrErrorMessage(addressFromString(aw), ("couldn't parse passed addressStr=" + aw))
155155
156156
157157 func ax (ay) = if ((ay == h))
158158 then unit
159159 else fromBase58String(ay)
160160
161161
162162 func az (aA) = {
163163 let aB = aA
164164 if ($isInstanceOf(aB, "Int"))
165165 then {
166166 let aC = aB
167167 aC
168168 }
169169 else throw("fail to cast into Int")
170170 }
171171
172172
173173 func aD (aE,aF,aG,aH) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aE), toString(aF), toString(aG), toString(aH)], a)
174174
175175
176176 func aI (aJ,aK) = makeString(["%s%d%d%s", aJ, toString(lastBlock.height), toString(lastBlock.timestamp), aK], a)
177177
178178
179179 func aL (V,S,W,aE,aF,aG,aH) = StringEntry(U(V, S, W), aD(aE, aF, aG, aH))
180180
181181
182182 func aM (S,W,aK) = StringEntry(U("claim", S, W), aI(toString(S), aK))
183183
184184
185185 func aN (aO,aP,aQ) = {
186186 let aR = aq(Y())
187187 let aS = aq(Z())
188188 let aT = aq(X())
189189 let aU = (aT + aO)
190190 $Tuple3([IntegerEntry(Y(), (aR + aP)), IntegerEntry(Z(), (aS + aQ)), IntegerEntry(X(), aU)], aT, aU)
191191 }
192192
193193
194194 func aV (S,aW,aX) = [IntegerEntry(R(S), aW), IntegerEntry(T(S), aX)]
195195
196196
197197 func aY () = $Tuple3(fromBase58String(getStringValue(H, K())), at(P()), at(Q()))
198198
199199
200200 func aZ (S) = (ar(R(S), 0) > 0)
201201
202202
203203 func ba (S) = if (aZ(S))
204204 then $Tuple3(false, at(R(S)), at(T(S)))
205205 else unit
206206
207207
208208 func bb (S) = valueOrErrorMessage(ba(S), (("User " + toString(S)) + " is not defined"))
209209
210210
211211 let bc = au(ae(), "")
212212
213213 let bd = split(bc, "_")
214214
215215 func be (S,bf,bg,bh,bi) = {
216216 let bj = ah(bi, bf)
217217 let bk = parseBigIntValue(au(ah(bi, bf), "0"))
218218 let bl = parseBigIntValue(au(ah(bh, bf), "0"))
219219 let bm = toInt(fraction((bk - bl), bg, g))
220220 let bn = ak(S, bf)
221221 let bo = ar(bn, 0)
222222 $Tuple4((bo + bm), bo, bm, bn)
223223 }
224224
225225
226226 func bp (ab) = ((ab / j) * j)
227227
228228
229229 func bq (br,bs,bt) = {
230230 let bu = valueOrErrorMessage(indexOf(br, bs), ((("there is no substring " + bs) + " in ") + br))
231231 if ((bu == 0))
232232 then 0
233233 else {
234234 let bv = take(br, bu)
235235 (size(split(bv, bt)) - 1)
236236 }
237237 }
238238
239239
240240 let bw = "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"
241241
242242 let bx = (bw + "__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0")
243243
244244 func by (bz) = {
245245 let bA = (size(bz) - 1)
246246 func bB (bC,E) = if ((bA > E))
247247 then bC
248248 else (bC :+ "0")
249249
250250 let bD = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
251251 let bE = size(bD)
252252 let bF = bz
253253 func bG (bH,bI) = if ((bI >= bE))
254254 then bH
255255 else bB(bH, bD[bI])
256256
257257 func bJ (bH,bI) = if ((bI >= bE))
258258 then bH
259259 else throw("List size exceeds 18")
260260
261261 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18)
262262 }
263263
264264
265265 func bK (bz) = {
266266 let bA = (size(split_4C(bz, b)) - 1)
267267 func bL (bC,E) = if ((bA > E))
268268 then bC
269269 else (bC + "__0")
270270
271271 let bD = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
272272 let bE = size(bD)
273273 let bF = bz
274274 func bG (bH,bI) = if ((bI >= bE))
275275 then bH
276276 else bL(bH, bD[bI])
277277
278278 func bJ (bH,bI) = if ((bI >= bE))
279279 then bH
280280 else throw("List size exceeds 18")
281281
282282 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18)
283283 }
284284
285285
286286 func bM (bN,S,bO) = {
287287 let bg = toBigInt(bO)
288288 let bP = ag(S)
289289 let bh = ar(bP, -1)
290290 let bi = ar(af(), -1)
291291 func bQ (bR,bS) = {
292292 let bT = be(S, bS, bg, bh, bi)
293293 let bU = bT._1
294294 let bV = bT._2
295295 let bW = bT._3
296296 let bn = bT._4
297297 (bR :+ IntegerEntry(bn, bU))
298298 }
299299
300300 if (if ((bi == -1))
301301 then (bh == -1)
302302 else false)
303303 then nil
304304 else if (if ((bi == -1))
305305 then (bh > -1)
306306 else false)
307307 then throw("invalid depositNumLast and depositNumUser state")
308308 else if (if ((bi > -1))
309309 then (bh >= -1)
310310 else false)
311311 then if (bN)
312312 then [IntegerEntry(bP, bi)]
313313 else ({
314314 let bD = bd
315315 let bE = size(bD)
316316 let bF = nil
317317 func bG (bH,bI) = if ((bI >= bE))
318318 then bH
319319 else bQ(bH, bD[bI])
320320
321321 func bJ (bH,bI) = if ((bI >= bE))
322322 then bH
323323 else throw("List size exceeds 9")
324324
325325 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
326326 } :+ IntegerEntry(bP, bi))
327327 else throw(((("uncovered condition: depositNumLast=" + toString(bi)) + " depositNumUser=") + toString(bh)))
328328 }
329329
330330
331331 func bX (aj,bY) = {
332332 let bZ = am(aj)
333333 let ca = ar(bZ, 0)
334334 IntegerEntry(bZ, (ca + bY))
335335 }
336336
337337
338338 func cb (S,cc) = {
339339 let cd = toString(S)
340340 if ((size(cc.payments) > 0))
341341 then throw("payments are not accepted")
342342 else {
343343 let ce = valueOrElse(ba(S), $Tuple3(true, 0, 0))
344344 let bN = ce._1
345345 let bO = ce._2
346346 let cf = ce._3
347347 let bg = toBigInt(bO)
348348 let bP = ag(cd)
349349 let bh = ar(bP, -1)
350350 let bi = ar(af(), -1)
351351 func cg (bR,bS) = {
352352 let ch = be(cd, bS, bg, bh, bi)
353353 let bU = ch._1
354354 let bV = ch._2
355355 let bW = ch._3
356356 let bn = ch._4
357357 let ci = al(cd, bS)
358358 let cj = bR
359359 let ck = cj._1
360360 let cl = cj._2
361361 let cm = makeString([bS, toString(bU)], ":")
362362 let cn = makeString([cl, cm], "_")
363363 if ((0 >= bU))
364364 then $Tuple2(ck, cn)
365365 else $Tuple2((((ck :+ ScriptTransfer(S, bU, ax(bS))) :+ IntegerEntry(ci, (valueOrElse(getInteger(ci), 0) + bU))) :+ IntegerEntry(bn, 0)), cn)
366366 }
367367
368368 let co = {
369369 let bD = bd
370370 let bE = size(bD)
371371 let bF = $Tuple2(nil, "")
372372 func bG (bH,bI) = if ((bI >= bE))
373373 then bH
374374 else cg(bH, bD[bI])
375375
376376 func bJ (bH,bI) = if ((bI >= bE))
377377 then bH
378378 else throw("List size exceeds 9")
379379
380380 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
381381 }
382382 let cp = co._1
383383 let cq = co._2
384384 if ((0 >= size(cp)))
385385 then $Tuple2(nil, 0)
386386 else $Tuple2(((cp :+ IntegerEntry(bP, bi)) :+ aM(S, cc.transactionId, drop(cq, 1))), size(cp))
387387 }
388388 }
389389
390390
391391 @Callable(cc)
392392 func constructorV1 (cr,cs,ct,cu,cv) = if ((cc.caller != this))
393393 then throw("Permission denied")
394394 else [StringEntry(N(), cr), StringEntry(O(), cs), IntegerEntry(P(), ct), IntegerEntry(Q(), cu), StringEntry(ae(), cv)]
395395
396396
397397
398398 @Callable(cc)
399399 func stake () = {
400400 let cw = aY()
401401 let cx = cw._1
402402 let ct = cw._2
403403 let cu = cw._3
404404 if ((size(cc.payments) != 1))
405405 then throw("Invalid payments size")
406406 else {
407407 let cy = cc.payments[0]
408408 let aW = cy.amount
409409 let cz = (("Invalid asset. " + toBase58String(cx)) + " is expected")
410410 let bf = valueOrErrorMessage(cy.assetId, cz)
411411 if ((bf != cx))
412412 then throw(cz)
413413 else {
414414 let S = cc.caller
415415 let cd = toString(cc.caller)
416416 let cA = valueOrElse(ba(S), $Tuple3(true, 0, -1))
417417 let bN = cA._1
418418 let cB = cA._2
419419 let cC = cA._3
420420 let cD = if (bN)
421421 then aW
422422 else (aW + cB)
423423 let cE = if (bN)
424424 then height
425425 else az(invoke(G, "mergeStakesREADONLY", [aW, height, cB, cC, cu], nil))
426426 if ((ct > cD))
427427 then throw(("Min lock amount is " + toString(ct)))
428428 else {
429429 let cF = aN(aW, 1, if (bN)
430430 then 1
431431 else 0)
432432 let cG = cF._1
433433 let cH = cF._2
434434 let cI = cF._3
435435 ((([aL("stake", S, cc.transactionId, cB, cC, cD, cE)] ++ bM(bN, cd, cB)) ++ aV(S, cD, cE)) ++ cG)
436436 }
437437 }
438438 }
439439 }
440440
441441
442442
443443 @Callable(cc)
444444 func unstake (aW) = if ((size(cc.payments) != 0))
445445 then throw("unstake doesn't require any payment")
446446 else {
447447 let S = cc.caller
448448 let cd = toString(S)
449449 let cJ = aY()
450450 let cx = cJ._1
451451 let ct = cJ._2
452452 let cu = cJ._3
453453 let cK = bb(S)
454454 let bN = cK._1
455455 let cB = cK._2
456456 let cL = cK._3
457457 if ((0 >= cB))
458458 then throw("Nothing to unstake")
459459 else if ((aW > cB))
460460 then throw(((("Requested " + toString(aW)) + ", but staked only ") + toString(cB)))
461461 else {
462462 let cM = value(blockInfoByHeight(height)).timestamp
463463 let cN = valueOrElse(getInteger(J, L(cd)), 0)
464464 if ((cN >= cM))
465465 then throw(("Your gNsbt are taking part in voting, cannot unstake until " + toString(cN)))
466466 else {
467467 let cO = az(invoke(G, "getUnstakeComissionAmountREADONLY", [aW, cL, cu], nil))
468468 let cP = aN(-(aW), if ((aW == cB))
469469 then -1
470470 else 0, if ((aW == cB))
471471 then -1
472472 else 0)
473473 let cG = cP._1
474474 let cH = cP._2
475475 let cI = cP._3
476476 ((([ScriptTransfer(S, (aW - cO), cx), ScriptTransfer(I, cO, cx), aL("unstake", S, cc.transactionId, cB, cL, (cB - aW), cL)] ++ bM(false, cd, cB)) ++ aV(S, (cB - aW), cL)) ++ cG)
477477 }
478478 }
479479 }
480480
481481
482482
483483 @Callable(cc)
484484 func deposit () = {
485485 let cH = ar(X(), 0)
486486 if ((0 > cH))
487487 then throw("TODO: case is not supported")
488488 else {
489489 let cQ = af()
490490 let bi = ar(cQ, -1)
491491 let cR = (bi + 1)
492492 let cS = ac()
493493 let cT = aa(bp(lastBlock.timestamp))
494494 let cU = by(split(valueOrElse(getString(cS), bx), b))
495495 func cV (bC,cW) = {
496496 let aW = cW.amount
497497 let cX = toBase58String(valueOrElse(cW.assetId, i))
498498 if (!(contains(bc, cX)))
499499 then throw(((bc + " doesn't contain ") + cX))
500500 else if ((cH == 0))
501501 then $Tuple4((bC._1 :+ bX(cX, aW)), (bC._2 :+ cX), (bC._3 :+ toBigInt(0)), (bC._4 :+ aW))
502502 else {
503503 let cY = fraction(toBigInt(aW), g, toBigInt(cH))
504504 $Tuple4(bC._1, (bC._2 :+ cX), (bC._3 :+ cY), (bC._4 :+ aW))
505505 }
506506 }
507507
508508 let cZ = {
509509 let bD = cc.payments
510510 let bE = size(bD)
511511 let bF = $Tuple4(nil, nil, nil, nil)
512512 func bG (bH,bI) = if ((bI >= bE))
513513 then bH
514514 else cV(bH, bD[bI])
515515
516516 func bJ (bH,bI) = if ((bI >= bE))
517517 then bH
518518 else throw("List size exceeds 10")
519519
520520 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
521521 }
522522 func da (bR,db) = {
523523 let dc = bR._3
524524 let dd = au(ah(bi, db), "0")
525525 let E = indexOf(cZ._2, db)
526526 let de = if (isDefined(E))
527527 then {
528528 let df = value(E)
529529 let dg = cZ._4[df]
530530 $Tuple2(toString((parseBigIntValue(dd) + cZ._3[df])), toString((parseIntValue(cU[(dc + 1)]) + dg)))
531531 }
532532 else $Tuple2(dd, cU[(dc + 1)])
533533 $Tuple3((bR._1 :+ StringEntry(ah(cR, db), de._1)), ((bR._2 + b) + de._2), (dc + 1))
534534 }
535535
536536 let dh = {
537537 let bD = bd
538538 let bE = size(bD)
539539 let bF = $Tuple3(nil, bw, 0)
540540 func di (bH,bI) = if ((bI >= bE))
541541 then bH
542542 else da(bH, bD[bI])
543543
544544 func dj (bH,bI) = if ((bI >= bE))
545545 then bH
546546 else throw("List size exceeds 9")
547547
548548 dj(di(di(di(di(di(di(di(di(di(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
549549 }
550550 let dk = bK(dh._2)
551551 $Tuple2(((((cZ._1 ++ dh._1) :+ IntegerEntry(cQ, cR)) :+ StringEntry(cS, dk)) :+ StringEntry(cT, dk)), cR)
552552 }
553553 }
554554
555555
556556
557557 @Callable(cc)
558558 func claimRewards () = cb(cc.caller, cc)
559559
560560
561561
562562 @Callable(cc)
563563 func claimRewardsByOriginCaller () = cb(cc.originCaller, cc)
564564
565565
566566
567567 @Callable(cc)
568568 func unclaimedRewardsREADONLY (cd) = {
569569 func dl (bR,bS) = ((bR + makeString([bS, "0", "0"], ":")) + "_")
570570
571571 let dm = if ((cd == ""))
572572 then {
573573 let bD = bd
574574 let bE = size(bD)
575575 let bF = ""
576576 func bG (bH,bI) = if ((bI >= bE))
577577 then bH
578578 else dl(bH, bD[bI])
579579
580580 func bJ (bH,bI) = if ((bI >= bE))
581581 then bH
582582 else throw("List size exceeds 9")
583583
584584 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
585585 }
586586 else {
587587 let S = addressFromStringValue(cd)
588588 let dn = valueOrElse(ba(S), $Tuple3(true, 0, 0))
589589 let bN = dn._1
590590 let bO = dn._2
591591 let cf = dn._3
592592 let bg = toBigInt(bO)
593593 let bP = ag(cd)
594594 let bh = ar(bP, -1)
595595 let bi = ar(af(), -1)
596596 func cg (bR,bS) = {
597597 let do = be(cd, bS, bg, bh, bi)
598598 let bU = do._1
599599 let bV = do._2
600600 let bW = do._3
601601 let bn = do._4
602602 let dp = valueOrElse(getInteger(al(cd, bS)), 0)
603603 ((bR + makeString([bS, toString(bU), toString(dp)], ":")) + "_")
604604 }
605605
606606 let bD = bd
607607 let bE = size(bD)
608608 let bF = ""
609609 func bG (bH,bI) = if ((bI >= bE))
610610 then bH
611611 else cg(bH, bD[bI])
612612
613613 func bJ (bH,bI) = if ((bI >= bE))
614614 then bH
615615 else throw("List size exceeds 9")
616616
617617 bJ(bG(bG(bG(bG(bG(bG(bG(bG(bG(bF, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
618618 }
619619 $Tuple2(nil, dropRight(dm, 1))
620620 }
621621
622622
623623
624624 @Callable(cc)
625625 func nsbtUnstakingSYSREADONLY (dq,dr) = {
626626 let ds = if ((dq == ""))
627627 then [0, 0, 0, 0]
628628 else {
629629 let S = addressFromStringValue(dq)
630630 let dt = aY()
631631 let du = dt._1
632632 let ct = dt._2
633633 let cu = dt._3
634634 let dv = valueOrElse(ba(S), $Tuple3(true, 0, 0))
635635 let bN = dv._1
636636 let bO = dv._2
637637 let cL = dv._3
638638 let dw = if ((dr > bO))
639639 then bO
640640 else dr
641641 let dx = (bO - dw)
642642 let cO = if ((dw == 0))
643643 then 0
644644 else az(invoke(G, "getUnstakeComissionAmountREADONLY", [dw, cL, cu], nil))
645645 let dy = (dw - cO)
646646 [bO, dx, dy, cO]
647647 }
648648 $Tuple2(nil, ds)
649649 }
650650
651651
652652
653653 @Callable(cc)
654654 func nsbtStakingSYSREADONLY (cd,dz) = {
655655 let dA = ar(X(), 0)
656656 if ((cd == ""))
657657 then $Tuple2(nil, [0, dA, 0])
658658 else {
659659 let S = av(cd)
660660 let dB = valueOrElse(ba(S), $Tuple3(true, 0, 0))
661661 let bN = dB._1
662662 let dC = dB._2
663663 let cf = dB._3
664664 $Tuple2(nil, [dC, dA, cf])
665665 }
666666 }
667667
668668
669669 @Verifier(dD)
670670 func dE () = {
671671 let dF = makeString(["ExtEEK19nmKj9mCpnWyvEEJFYATLMcVEMvohhUHkyHNm", "Ev5py5FfBQX9cZpYKnfQrTB49Byf8QmpZWeDVRim4yV7", "DUuuLjXu98nBwZc7fqwCTjtA3nnRwgTbkMSr5SU2NmDR", "DUuuLjXu98nBwZc7fqwCTjtA3nnRwgTbkMSr5SU2NmDR"], b)
672672 let dG = split(valueOrElse(getString(F, "%s__multisig"), dF), b)
673673 let dH = ((((if (sigVerify(dD.bodyBytes, dD.proofs[0], fromBase58String(dG[0])))
674674 then 1
675675 else 0) + (if (sigVerify(dD.bodyBytes, dD.proofs[1], fromBase58String(dG[1])))
676676 then 1
677677 else 0)) + (if (sigVerify(dD.bodyBytes, dD.proofs[2], fromBase58String(dG[2])))
678678 then 1
679679 else 0)) + (if (sigVerify(dD.bodyBytes, dD.proofs[3], fromBase58String(dG[3])))
680680 then 2
681681 else 0))
682682 (dH >= 3)
683683 }
684684

github/deemru/w8io/873ac7e 
74.08 ms