tx · 8qHfaa9QUt9vSs6DXGcWtbeTazRYfjtLUhpefJDdbHjT

3MuB9xw36vvkD92rRgHqHaLGrk8HcdRHhvL:  -0.01400000 Waves

2021.02.20 00:32 [1405566] smart account 3MuB9xw36vvkD92rRgHqHaLGrk8HcdRHhvL > SELF 0.00000000 Waves

{ "type": 13, "id": "8qHfaa9QUt9vSs6DXGcWtbeTazRYfjtLUhpefJDdbHjT", "fee": 1400000, "feeAssetId": null, "timestamp": 1613770353960, "version": 2, "chainId": 84, "sender": "3MuB9xw36vvkD92rRgHqHaLGrk8HcdRHhvL", "senderPublicKey": "96EKKKAJdmFAkmgukd7nzc8a81viZL4Ff5c5eb2uPkbi", "proofs": [ "4CWqCMcnF2UYtgqMzPefB1UmFYbyZ8uxzaCczzUTufpAAtBFRFNE5rcDLyz3HcnWYMDboAfrofrTiP9pripMYf7b" ], "script": "base64:AAIDAAAAAAAAACMIARIAEgQKAggBEgASBAoCAQgSAwoBCBIDCgEBEgMKAQESAAAAADgAAAAAD3NlcnZlclB1YmxpY0tleQEAAAAgWi5JZGTMiM1nqqSTYh2gQmOUvOb666l/r5SmpQ/LMW8AAAAAD3dhbGxldFB1YmxpY0tleQEAAAAgMkUfCdXox9cabltNTDDHHdlxbBbyVrBWNHWcKELHT2IAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAYhNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWw2b3VVWnlVcnlVRzJMbEYydVlRWGRiL0U2VWhsWkFicWxPSlVDWGtlNFgzb3NheWE2M2JOUWVVTlBLN20vOVFOOWhEaXVtNEtraW85RjJyK1I5MnZNZ1dhbHV2WXZpRkdKdzhWOFhMOHloY3BrS2dZSlVRMHYwTUNicEk5YzdoU0tSTnh2YUk5amlrWUd5R05Tc0ZkSVR3Y1gzYTB4Sm1EZndDc3NQNzZtSUFDNnZYRE51U2NleSt2M25qUSs2by83QW92OFlGaXNaTEtteGdabnZ1WERJbjl6cE5oaWd0bElPVEtlWTFJNE5aUTd6S0RsSnpTYnpCUlNXV2FOWkFXRHZsd0ZyL1pRT01OUTI0cGhLVm1uZVBURVZGQVNzdW1VaUlCTFhiVHc3OGIvU1kzYmd6NzlkaHc4QTFQdTVOVzRYOWhpY3JtTnIxRXlYMzlVc1REUUlEQVFBQgAAAAAIT05FV0FWRVMAAAAAAAX14QAAAAAADnBlcmlvZEdhbWVQbGF5AAAAAAAAAAACAAAAAAV3aGVlbAkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAAjI0CQAETAAAAAICAAAAAjE2CQAETAAAAAICAAAAAjMzCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAACMjAJAARMAAAAAgIAAAACMTQJAARMAAAAAgIAAAACMzEJAARMAAAAAgIAAAABOQkABEwAAAACAgAAAAIyMgkABEwAAAACAgAAAAIxOAkABEwAAAACAgAAAAIyOQkABEwAAAACAgAAAAE3CQAETAAAAAICAAAAAjI4CQAETAAAAAICAAAAAjEyCQAETAAAAAICAAAAAjM1CQAETAAAAAICAAAAATMJAARMAAAA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LAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAAdfU1VNU0hBAQAAAA9nYW1lTGFiZWxDbWJNYXgAAAACAAAADEdBTUVTQ09VTlRFUgAAAANDTUIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAADEdBTUVTQ09VTlRFUgIAAAACX0MFAAAAA0NNQgEAAAANZ2FtZUdldFN0YXR1cwAAAAEAAAAMR0FNRVNDT1VOVEVSCQAEHQAAAAIFAAAABHRoaXMJAQAAAA9nYW1lTGFiZWxTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAADWdhbWVHZXROdW1iZXIAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsTnVtYmVyAAAAAQUAAAAMR0FNRVNDT1VOVEVSAQAAAApnYW1lR2V0TWF4AAAAAQAAAAxHQU1FU0NPVU5URVIJAAQaAAAAAgUAAAAEdGhpcwkBAAAADGdhbWVMYWJlbE1heAAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAALZ2FtZUdldEJldHMAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAANZ2FtZUxhYmVsQmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAANZ2FtZUdldFBhc3NlZAAAAAEAAAAMR0FNRVNDT1VOVEVSCQAEGgAAAAIFAAAABHRoaXMJAQAAAA9nYW1lTGFiZWxQYXNzZWQAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAADWdhbWVHZXRIZWlnaHQAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsSGVpZ2h0AAAAAQUAAAAMR0FNRVNDT1VOVEVSAQAAAA1nYW1lR2V0U3VtU2hhAAAAAQAAAAxHQU1FU0NPVU5URVIJAAQdAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVMYWJlbFN1bVNoYQAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAANZ2FtZUdldENtYk1heAAAAAIAAAAMR0FNRVNDT1VOVEVSAAAAA0NNQgkABBoAAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsQ21iTWF4AAAAAgUAAAAMR0FNRVNDT1VOVEVSBQAAAANDTUIBAAAADmJldExhYmVsU3RhdHVzAAAAAQAAAAVpZEJldAkAASwAAAACCQABLAAAAAICAAAAAkJfBQAAAAVpZEJldAIAAAAHX1NUQVRVUwEAAAAMYmV0TGFiZWxJbmZvAAAAAQAAAAVpZEJldAkAASwAAAACCQABLAAAAAICAAAAAkJfBQAAAAVpZEJldAIAAAAFX0lORk8BAAAADGJldEdldFN0YXR1cwAAAAEAAAAFaWRCZXQJAAQdAAAAAgUAAAAEdGhpcwkBAAAADmJldExhYmVsU3RhdHVzAAAAAQUAAAAFaWRCZXQBAAAACmJldEdldEluZm8AAAABAAAABWlkQmV0CQAEHQAAAAIFAAAABHRoaXMJAQAAAAxiZXRMYWJlbEluZm8AAAABBQAAAAVpZEJldAEAAAAPYWRkcmVzc0xhYmVsV29uAAAAAQAAAARhZGRyCQABLAAAAAIJAAEsAAAAAgIAAAACQV8FAAAABGFkZHICAAAABF9XT04BAAAAEmFkZHJlc3NMYWJlbEFtb3VudAAAAAEAAAAEYWRkcgkAASwAAAACCQABLAAAAAICAAAAAkFfBQAAAARhZGRyAgAAAAdfQU1PVU5UAQAAABBhZGRyZXNzTGFiZWxCZXRzAAAAAQAAAARhZGRyCQABLAAAAAIJAAEsAAAAAgIAAAACQV8FAAAABGFkZHICAAAABV9CRVRTAQAAAA9hZGRyZXNzTGFiZWxIaXQAAAABAAAABGFkZHIJAAEsAAAAAgkAASwAAAACAgAAAAJBXwUAAAAEYWRkcgIAAAAEX0hJVAEAAAANYWRkcmVzc0dldFdvbgAAAAEAAAAEYWRkcgkABBoAAAACBQAAAAR0aGlzCQEAAAAPYWRkcmVzc0xhYmVsV29uAAAAAQUAAAAEYWRkcgEAAAAQYWRkcmVzc0dldEFtb3VudAAAAAEAAAAEYWRkcgkABBoAAAACBQAAAAR0aGlzCQEAAAASYWRkcmVzc0xhYmVsQW1vdW50AAAAAQUAAAAEYWRkcgEAAAAOYWRkcmVzc0dldEJldHMAAAABAAAABGFkZHIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAEGFkZHJlc3NMYWJlbEJldHMAAAABBQAAAARhZGRyAQAAAA1hZGRyZXNzR2V0SGl0AAAAAQAAAARhZGRyCQAEGgAAAAIFAAAABHRoaXMJAQAAAA9hZGRyZXNzTGFiZWxIaXQAAAABBQAAAARhZGRyAQAAABNwb2ludGVyQWRkcmVzc0xhYmVsAAAAAQAAAAJpZAkAASwAAAACAgAAAAJQXwkAAaQAAAABBQAAAAJpZAEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAAIhPQAAAAIFAAAAD2NhbGxlclB1YmxpY0tleQUAAAAPc2VydmVyUHVibGljS2V5AQAAAApnYW1lTmV3TWF4AAAAAQAAAAN3aW4EAAAAByRtYXRjaDAJAQAAAA9nYW1lc0dldENvdW50ZXIAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAADEdBTUVTQ09VTlRFUgUAAAAHJG1hdGNoMAQAAAAHJG1hdGNoMQkBAAAACmdhbWVHZXRNYXgAAAABBQAAAAxHQU1FU0NPVU5URVIDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAAHQ1VSUk1BWAUAAAAHJG1hdGNoMQQAAAAEdGVtcAkAAGUAAAACBQAAAAdDVVJSTUFYBQAAAAN3aW4DCQAAZgAAAAIAAAAAAAAAAAAFAAAABHRlbXAJAAACAAAAAQIAAAAMQkVUX0lTX0JMT0NLBQAAAAR0ZW1wCQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAQAAAA1nYW1lTmV3U3VtU2hhAAAAAQAAAAR0eElkBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAEAAAAByRtYXRjaDEJAQAAAA1nYW1lR2V0U3VtU2hhAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAAZTdHJpbmcEAAAABlNVTVNIQQUAAAAHJG1hdGNoMQkAAlgAAAABCQAB9wAAAAEJAADLAAAAAgkAAlkAAAABBQAAAAZTVU1TSEEFAAAABHR4SWQJAAACAAAAAQIAAAAOR0FNRV9OT1RfRk9VTkQJAAACAAAAAQIAAAALSU5JVF9ORUVERUQBAAAACmNoZWNrSWRCZXQAAAABAAAABWlkQmV0BAAAAAckbWF0Y2gwCQEAAAAKYmV0R2V0SW5mbwAAAAEFAAAABWlkQmV0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABHRlbXAFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAWUExBWUVSX0FMUkVBRFlfREVGSU5FRAAAAAAAAAAAAQEAAAAIY2hlY2tCZXQAAAACAAAAA2JldAAAAANjbWIEAAAADm9ubHlvbmVhbmRtb3JlAwMDAwMDAwMDAwMDCQAAAAAAAAIFAAAAA2NtYgIAAAAEX1JFRAYJAAAAAAAAAgUAAAADY21iAgAAAAZfQkxBQ0sGCQAAAAAAAAIFAAAAA2NtYgIAAAAFX0VWRU4GCQAAAAAAAAIFAAAAA2NtYgIAAAAEX09ERAYJAAAAAAAAAgUAAAADY21iAgAAAARfTE9XBgkAAAAAAAACBQAAAANjbWICAAAABV9ISUdIBgkAAAAAAAACBQAAAANjbWICAAAAB19ET1pFUjEGCQAAAAAAAAIFAAAAA2NtYgIAAAAHX0RPWkVSMgYJAAAAAAAAAgUAAAADY21iAgAAAAdfRE9aRVIzBgkAAAAAAAACBQAAAANjbWICAAAACF9DT0xVTU4xBgkAAAAAAAACBQAAAANjbWICAAAACF9DT0xVTU4yBgkAAAAAAAACBQAAAANjbWICAAAACF9DT0xVTU4zBgcDBQAAAA5vbmx5b25lYW5kbW9yZQMDAwkAAAAAAAACBQAAAANiZXQAAAAAAAX14QAGCQAAAAAAAAIFAAAAA2JldAAAAAAAC+vCAAYJAAAAAAAAAgUAAAADYmV0AAAAAAAdzWUAAAAAAAAAAAABCQAAAgAAAAECAAAADUJFVF9OT1RfRk9VTkQDAwMDAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAmJaABgkAAAAAAAACBQAAAANiZXQAAAAAAAExLQAGCQAAAAAAAAIFAAAAA2JldAAAAAAAAvrwgAYJAAAAAAAAAgUAAAADYmV0AAAAAAAF9eEABgkAAAAAAAACBQAAAANiZXQAAAAAAAvrwgAGCQAAAAAAAAIFAAAAA2JldAAAAAAAHc1lAAAAAAAAAAAAAQkAAAIAAAABAgAAAA1CRVRfTk9UX0ZPVU5EAQAAAAZnZXRDbWIAAAABAAAAA2NtYgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAAUMFAAAAA2NtYgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2gwBQAAAAR0ZW1wCQAAAgAAAAECAAAADUNNQl9OT1RfRk9VTkQBAAAAC2FsbG93Q21iTWF4AAAAAwAAAAtnYW1lY291bnRlcgAAAANjbWIAAAADd2luBAAAAAckbWF0Y2gwCQEAAAANZ2FtZUdldENtYk1heAAAAAIFAAAAC2dhbWVjb3VudGVyBQAAAANjbWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAEdGVtcAUAAAAHJG1hdGNoMAMJAABmAAAAAgkAAGQAAAACBQAAAAR0ZW1wBQAAAAN3aW4AAAAABKgXyAAJAAACAAAAAQIAAAALQ01CX01BWF9XSU4AAAAAAAAAAAEAAAAAAAAAAAEAAAAIAAAAAWkBAAAACGluaXRHYW1lAAAAAAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAASaW5pdEdhbWVfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAJAAACAAAAAQIAAAARSU5JVF9BTFJFQURZX0RPTkUJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEWdhbWVzTGFiZWxDb3VudGVyAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABVnYW1lc0xhYmVsQmV0c0NvdW50ZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFmdhbWVzTGFiZWxCZXRzRmVlTW92ZWQAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGGdhbWVzTGFiZWxUb3RhbEFtb3VudFdpbgAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYZ2FtZXNMYWJlbFRvdGFsQW1vdW50QmV0AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABlnYW1lc0xhYmVsVG90YWxBZGRyZXNzQmV0AAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAGYWRkQ21iAAAAAgAAAANjbWIAAAADdmFsAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABBhZGRDbWJfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDADCQEAAAACIT0AAAACBQAAAAxHQU1FU0NPVU5URVIAAAAAAAAAAAAJAAACAAAAAQIAAAARSU5JVF9BTFJFQURZX0RPTkUDAwMDAwMDCQAAAAAAAAIFAAAAA3ZhbAAAAAAAAAAAAQYJAAAAAAAAAgUAAAADdmFsAAAAAAAAAAACBgkAAAAAAAACBQAAAAN2YWwAAAAAAAAAAAUGCQAAAAAAAAIFAAAAA3ZhbAAAAAAAAAAACAYJAAAAAAAAAgUAAAADdmFsAAAAAAAAAAALBgkAAAAAAAACBQAAAAN2YWwAAAAAAAAAABEGCQAAAAAAAAIFAAAAA3ZhbAAAAAAAAAAAIwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAFDBQAAAANjbWIFAAAAA3ZhbAUAAAADbmlsCQAAAgAAAAECAAAAEEFNT1VOVF9OT1RfRk9VTkQJAAACAAAAAQIAAAALSU5JVF9ORUVERUQAAAABaQEAAAAHbmV3R2FtZQAAAAADCQEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAEW5ld0dhbWVfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAEAAAADm5ld0dhbWVDb3VudGVyCQAAZAAAAAIFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAQQAAAALQkVUU0NPVU5URVIJAQAAAAV2YWx1ZQAAAAEJAQAAABNnYW1lc0dldEJldHNDb3VudGVyAAAAAAQAAAAJQkVUU01PVkVECQEAAAAFdmFsdWUAAAABCQEAAAAUZ2FtZXNHZXRCZXRzRmVlTW92ZWQAAAAABAAAAAdnYW1lTWF4CQAAZQAAAAIJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAAAR0aGlzCQAAZQAAAAIFAAAAC0JFVFNDT1VOVEVSBQAAAAlCRVRTTU9WRUQEAAAAC2hhbGZHYW1lTWF4AwkAAAAAAAACCQAAagAAAAIFAAAAB2dhbWVNYXgAAAAAAAAAAAIAAAAAAAAAAAEJAABpAAAAAgkAAGUAAAACBQAAAAdnYW1lTWF4AAAAAAAAAAABAAAAAAAAAAACCQAAaQAAAAIFAAAAB2dhbWVNYXgAAAAAAAAAAAIEAAAACHNlbmREYXRhCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFnYW1lc0xhYmVsQ291bnRlcgUAAAAObmV3R2FtZUNvdW50ZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxTdGF0dXMAAAABBQAAAA5uZXdHYW1lQ291bnRlcgIAAAAEUExBWQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADGdhbWVMYWJlbE1heAAAAAEFAAAADm5ld0dhbWVDb3VudGVyBQAAAAtoYWxmR2FtZU1heAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADWdhbWVMYWJlbEJldHMAAAABBQAAAA5uZXdHYW1lQ291bnRlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dhbWVMYWJlbFBhc3NlZAAAAAEFAAAADm5ld0dhbWVDb3VudGVyAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2FtZUxhYmVsSGVpZ2h0AAAAAQUAAAAObmV3R2FtZUNvdW50ZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxTdW1TaGEAAAABBQAAAA5uZXdHYW1lQ291bnRlcgkAAlgAAAABCQAB9wAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAMJAABmAAAAAgUAAAAIT05FV0FWRVMFAAAAC2hhbGZHYW1lTWF4CQAAAgAAAAECAAAADkJBTEFOQ0VfSVNfTE9XAwkAAAAAAAACBQAAAAxHQU1FU0NPVU5URVIAAAAAAAAAAAAFAAAACHNlbmREYXRhBAAAAApDVVJSU1RBVFVTCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFN0YXR1cwAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAACkNVUlJTVEFUVVMCAAAABFNIT1cJAAACAAAAAQIAAAAXQ1VSUl9TVEFUVVNfSVNfTk9UX1NIT1cEAAAABEJFVFMJAQAAAAV2YWx1ZQAAAAEJAQAAAAtnYW1lR2V0QmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgQAAAAGUEFTU0VECQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFBhc3NlZAAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAABEJFVFMFAAAABlBBU1NFRAkAAAIAAAABAgAAAA9XQUlUX0FMTF9QQVNTRUQFAAAACHNlbmREYXRhCQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAAAAAWkBAAAAA2JldAAAAAIAAAACaWQAAAADY21iBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDADCQEAAAACIT0AAAACBQAAAAJpZAUAAAAMR0FNRVNDT1VOVEVSCQAAAgAAAAECAAAADUdBTUVfSURfV1JPTkcEAAAAByRtYXRjaDEJAQAAAA1nYW1lR2V0U3RhdHVzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAAZTdHJpbmcEAAAACkNVUlJTVEFUVVMFAAAAByRtYXRjaDEDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARQTEFZCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9QTEFZBAAAAAckbWF0Y2gyCQEAAAANZ2FtZUdldEhlaWdodAAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAAABAAAAAgUAAAAHJG1hdGNoMgIAAAADSW50BAAAAApHQU1FSEVJR0hUBQAAAAckbWF0Y2gyAwMJAQAAAAIhPQAAAAIFAAAACkdBTUVIRUlHSFQAAAAAAAAAAAAJAABmAAAAAgUAAAAGaGVpZ2h0CQAAZAAAAAIFAAAACkdBTUVIRUlHSFQFAAAADnBlcmlvZEdhbWVQbGF5BwkAAAIAAAABAgAAAAtHQU1FX0lTX0VORAQAAAAHJG1hdGNoMwkBAAAAC2dhbWVHZXRCZXRzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gzAgAAAANJbnQEAAAABEJFVFMFAAAAByRtYXRjaDMEAAAABWlkQmV0CQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAAxHQU1FU0NPVU5URVICAAAAAV8JAAGkAAAAAQkAAGQAAAACBQAAAARCRVRTAAAAAAAAAAABBAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAckbWF0Y2g0CAUAAAAHcGF5bWVudAAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2g0AgAAAApCeXRlVmVjdG9yBAAAAAdhc3NldElkBQAAAAckbWF0Y2g0CQAAAgAAAAECAAAAE09OTFlfV0FWRVNfQUNDRVBURUQEAAAABmFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAAN3aW4JAABoAAAAAgkAAGgAAAACCQAAaAAAAAIJAQAAAApjaGVja0lkQmV0AAAAAQUAAAAFaWRCZXQJAQAAAAhjaGVja0JldAAAAAIFAAAABmFtb3VudAUAAAADY21iCQEAAAAGZ2V0Q21iAAAAAQUAAAADY21iBQAAAAZhbW91bnQEAAAABndpbm1heAkAAGgAAAACBQAAAAN3aW4JAQAAAAthbGxvd0NtYk1heAAAAAMFAAAADEdBTUVTQ09VTlRFUgUAAAADY21iBQAAAAN3aW4EAAAAB2FkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEaW5mbwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHYWRkcmVzcwIAAAACfHwFAAAAA2NtYgIAAAACfHwJAAGkAAAAAQUAAAAGYW1vdW50AgAAAAJ8fAkAAaQAAAABBQAAAAZ3aW5tYXgEAAAADUFERFJFU1NBTU9VTlQEAAAAByRtYXRjaDUJAQAAABBhZGRyZXNzR2V0QW1vdW50AAAAAQUAAAAHYWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoNQIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2g1BQAAAAR0ZW1wAAAAAAAAAAAABAAAAAtBRERSRVNTQkVUUwQAAAAHJG1hdGNoNQkBAAAADmFkZHJlc3NHZXRCZXRzAAAAAQUAAAAHYWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoNQIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2g1BQAAAAR0ZW1wAAAAAAAAAAAABAAAAAZDTUJNQVgEAAAAByRtYXRjaDUJAQAAAA1nYW1lR2V0Q21iTWF4AAAAAgUAAAAMR0FNRVNDT1VOVEVSBQAAAANjbWIDCQAAAQAAAAIFAAAAByRtYXRjaDUCAAAAA0ludAQAAAAEdGVtcAUAAAAHJG1hdGNoNQUAAAAEdGVtcAAAAAAAAAAAAAQAAAAEZGF0YQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADGJldExhYmVsSW5mbwAAAAEFAAAABWlkQmV0BQAAAARpbmZvCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOYmV0TGFiZWxTdGF0dXMAAAABBQAAAAVpZEJldAIAAAAGQUNDRVBUCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAANZ2FtZUxhYmVsQmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgkAAGQAAAACBQAAAARCRVRTAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2FtZUxhYmVsSGVpZ2h0AAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAAAAAACBQAAAApHQU1FSEVJR0hUAAAAAAAAAAAABQAAAAZoZWlnaHQFAAAACkdBTUVIRUlHSFQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAAxnYW1lTGFiZWxNYXgAAAABBQAAAAxHQU1FU0NPVU5URVIJAQAAAApnYW1lTmV3TWF4AAAAAQUAAAAGd2lubWF4CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2FtZUxhYmVsU3VtU2hhAAAAAQUAAAAMR0FNRVNDT1VOVEVSCQEAAAANZ2FtZU5ld1N1bVNoYQAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxDbWJNYXgAAAACBQAAAAxHQU1FU0NPVU5URVIFAAAAA2NtYgkAAGQAAAACBQAAAAZDTUJNQVgFAAAABndpbm1heAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmFkZHJlc3NMYWJlbEFtb3VudAAAAAEFAAAAB2FkZHJlc3MJAABkAAAAAgUAAAANQUREUkVTU0FNT1VOVAUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQYWRkcmVzc0xhYmVsQmV0cwAAAAEFAAAAB2FkZHJlc3MJAABkAAAAAgUAAAALQUREUkVTU0JFVFMAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFWdhbWVzTGFiZWxCZXRzQ291bnRlcgkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQEAAAATZ2FtZXNHZXRCZXRzQ291bnRlcgAAAAAAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGGdhbWVzTGFiZWxUb3RhbEFtb3VudEJldAkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQEAAAAWZ2FtZXNHZXRUb3RhbEFtb3VudEJldAAAAAAFAAAABmFtb3VudAUAAAADbmlsBAAAAA9UT1RBTEFERFJFU1NCRVQJAABkAAAAAgkBAAAABXZhbHVlAAAAAQkBAAAAF2dhbWVzR2V0VG90YWxBZGRyZXNzQmV0AAAAAAAAAAAAAAAAAQQAAAAJZGF0YUZpbmFsAwkAAAAAAAACBQAAAA1BRERSRVNTQU1PVU5UAAAAAAAAAAAACQAETAAAAAIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABNwb2ludGVyQWRkcmVzc0xhYmVsAAAAAQUAAAAPVE9UQUxBRERSRVNTQkVUBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABlnYW1lc0xhYmVsVG90YWxBZGRyZXNzQmV0BQAAAA9UT1RBTEFERFJFU1NCRVQFAAAAA25pbAUAAAAEZGF0YQUAAAAEZGF0YQkBAAAACFdyaXRlU2V0AAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAABBHQU1FX05PVF9GT1VORF8zCQAAAgAAAAECAAAAEEdBTUVfTk9UX0ZPVU5EXzIJAAACAAAAAQIAAAAQR0FNRV9OT1RfRk9VTkRfMQkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAAhzaG93R2FtZQAAAAEAAAAHcnNhU2lnbgMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAASc2hvd0dhbWVfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAEAAAAByRtYXRjaDEJAQAAAA1nYW1lR2V0U3VtU2hhAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAAZTdHJpbmcEAAAABlNVTVNIQQUAAAAHJG1hdGNoMQQAAAALcnNhU2lnVmFsaWQJAAH4AAAABAUAAAAGU0hBMjU2CQACWQAAAAEFAAAABlNVTVNIQQkAAlkAAAABBQAAAAdyc2FTaWduBQAAAAlSU0FQVUJMSUMDCQEAAAABIQAAAAEFAAAAC3JzYVNpZ1ZhbGlkCQAAAgAAAAECAAAAEElOVkFMSURfUlNBX1NJR04EAAAABWluZGV4CQAAagAAAAIJAASxAAAAAQkAAfcAAAABCQABmwAAAAEFAAAAB3JzYVNpZ24AAAAAAAAAACUEAAAADG51bWJlclN0cmluZwkAAZEAAAACBQAAAAV3aGVlbAUAAAAFaW5kZXgEAAAABm51bWJlcgkBAAAABXZhbHVlAAAAAQkABLYAAAABBQAAAAxudW1iZXJTdHJpbmcEAAAAC251bWJlckNvdW50BAAAAAckbWF0Y2gyCQEAAAAObnVtYmVyR2V0Q291bnQAAAABBQAAAAxudW1iZXJTdHJpbmcDCQAAAQAAAAIFAAAAByRtYXRjaDICAAAAA0ludAQAAAAEdGVtcAUAAAAHJG1hdGNoMgUAAAAEdGVtcAAAAAAAAAAAAAQAAAAKQ1VSUlNUQVRVUwkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARQTEFZCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9QTEFZBAAAAApHQU1FSEVJR0hUCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldEhlaWdodAAAAAEFAAAADEdBTUVTQ09VTlRFUgMDCQAAAAAAAAIFAAAACkdBTUVIRUlHSFQAAAAAAAAAAAAGCQAAZwAAAAIJAABkAAAAAgUAAAAKR0FNRUhFSUdIVAUAAAAOcGVyaW9kR2FtZVBsYXkFAAAABmhlaWdodAkAAAIAAAABAgAAAA9HQU1FX0lTX05PVF9FTkQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVICAAAABFNIT1cJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxOdW1iZXIAAAABBQAAAAxHQU1FU0NPVU5URVIFAAAABm51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEG51bWJlckxhYmVsQ291bnQAAAABBQAAAAxudW1iZXJTdHJpbmcJAABkAAAAAgUAAAALbnVtYmVyQ291bnQAAAAAAAAAAAEFAAAAA25pbAkAAAIAAAABAgAAAA5HQU1FX05PVF9GT1VORAkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAAZnZXRXaW4AAAABAAAAA0JFVAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAQZ2V0V2luX0ZPUkJCSURFTgQAAAAHJG1hdGNoMAkBAAAAD2dhbWVzR2V0Q291bnRlcgAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAMR0FNRVNDT1VOVEVSBQAAAAckbWF0Y2gwBAAAAAckbWF0Y2gxCQEAAAANZ2FtZUdldFN0YXR1cwAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAAABAAAAAgUAAAAHJG1hdGNoMQIAAAAGU3RyaW5nBAAAAApDVVJSU1RBVFVTBQAAAAckbWF0Y2gxAwkBAAAAAiE9AAAAAgUAAAAKQ1VSUlNUQVRVUwIAAAAEU0hPVwkAAAIAAAABAgAAABdDVVJSX1NUQVRVU19JU19OT1RfU0hPVwQAAAAHJG1hdGNoMgkBAAAADWdhbWVHZXROdW1iZXIAAAABBQAAAAxHQU1FU0NPVU5URVIDCQAAAQAAAAIFAAAAByRtYXRjaDICAAAAA0ludAQAAAAGTlVNQkVSBQAAAAckbWF0Y2gyBAAAAAVpZEJldAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAAFfCQABpAAAAAEFAAAAA0JFVAQAAAAMbnVtYmVyU3RyaW5nCQABLAAAAAIJAAEsAAAAAgIAAAABXwkAAaQAAAABBQAAAAZOVU1CRVICAAAAAV8EAAAAA3JlZAIAAAA0fF8xXzNfNV83XzlfMTJfMTRfMTZfMThfMTlfMjFfMjNfMjVfMjdfMzBfMzJfMzRfMzZffAQAAAAFYmxhY2sCAAAANXxfMl80XzZfOF8xMF8xMV8xM18xNV8xN18yMF8yMl8yNF8yNl8yOF8yOV8zMV8zM18zNV98BAAAAAhpbmRleFJlZAQAAAAHJG1hdGNoMwkABLMAAAACBQAAAANyZWQFAAAADG51bWJlclN0cmluZwMJAAABAAAAAgUAAAAHJG1hdGNoMwIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2gzCQAAZgAAAAIFAAAABHRlbXAAAAAAAAAAAAAHBAAAAAppbmRleEJsYWNrBAAAAAckbWF0Y2gzCQAEswAAAAIFAAAABWJsYWNrBQAAAAxudW1iZXJTdHJpbmcDCQAAAQAAAAIFAAAAByRtYXRjaDMCAAAAA0ludAQAAAAEdGVtcAUAAAAHJG1hdGNoMwkAAGYAAAACBQAAAAR0ZW1wAAAAAAAAAAAABwQAAAAFY21iUkIJAAEsAAAAAgIAAAABXwMFAAAACGluZGV4UmVkAgAAAANSRUQDBQAAAAppbmRleEJsYWNrAgAAAAVCTEFDSwIAAAADTkRGBAAAAAVjbWJFTwkAASwAAAACAgAAAAFfAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAGTlVNQkVSBgkAAGYAAAACBQAAAAZOVU1CRVIAAAAAAAAAACQCAAAAA05ERgMJAAAAAAAAAgkAAGoAAAACBQAAAAZOVU1CRVIAAAAAAAAAAAIAAAAAAAAAAAACAAAABEVWRU4CAAAAA09ERAQAAAAFY21iTEgJAAEsAAAAAgIAAAABXwMDCQAAZwAAAAIFAAAABk5VTUJFUgAAAAAAAAAAAQkAAGcAAAACAAAAAAAAAAASBQAAAAZOVU1CRVIHAgAAAANMT1cDAwkAAGcAAAACBQAAAAZOVU1CRVIAAAAAAAAAABMJAABnAAAAAgAAAAAAAAAAJAUAAAAGTlVNQkVSBwIAAAAESElHSAIAAAADTkRGBAAAAAVjbWJEWgkAASwAAAACAgAAAAFfAwMJAABnAAAAAgUAAAAGTlVNQkVSAAAAAAAAAAABCQAAZwAAAAIAAAAAAAAAAAwFAAAABk5VTUJFUgcCAAAABkRPWkVSMQMDCQAAZwAAAAIFAAAABk5VTUJFUgAAAAAAAAAADQkAAGcAAAACAAAAAAAAAAAYBQAAAAZOVU1CRVIHAgAAAAZET1pFUjIDAwkAAGcAAAACBQAAAAZOVU1CRVIAAAAAAAAAABkJAABnAAAAAgAAAAAAAAAAJAUAAAAGTlVNQkVSBwIAAAAGRE9aRVIzAgAAAANOREYEAAAABWNtYkNMCQABLAAAAAICAAAAAV8DAwkAAGcAAAACAAAAAAAAAAAABQAAAAZOVU1CRVIGCQAAZgAAAAIFAAAABk5VTUJFUgAAAAAAAAAAJAIAAAADTkRGAwkAAAAAAAACCQAAagAAAAIFAAAABk5VTUJFUgAAAAAAAAAAAwAAAAAAAAAAAQIAAAAHQ09MVU1OMQMJAAAAAAAAAgkAAGoAAAACBQAAAAZOVU1CRVIAAAAAAAAAAAMAAAAAAAAAAAICAAAAB0NPTFVNTjICAAAAB0NPTFVNTjMEAAAABlNUQVRVUwQAAAAHJG1hdGNoMwkBAAAADGJldEdldFN0YXR1cwAAAAEFAAAABWlkQmV0AwkAAAEAAAACBQAAAAckbWF0Y2gzAgAAAAZTdHJpbmcEAAAABHRlbXAFAAAAByRtYXRjaDMFAAAABHRlbXAJAAACAAAAAQIAAAAUQkVUX1NUQVRVU19OT1RfRk9VTkQEAAAABElORk8EAAAAByRtYXRjaDMJAQAAAApiZXRHZXRJbmZvAAAAAQUAAAAFaWRCZXQDCQAAAQAAAAIFAAAAByRtYXRjaDMCAAAABlN0cmluZwQAAAAEdGVtcAUAAAAHJG1hdGNoMwUAAAAEdGVtcAkAAAIAAAABAgAAABJCRVRfSU5GT19OT1RfRk9VTkQEAAAABUlORk9TCQAEtQAAAAIFAAAABElORk8CAAAAAnx8BAAAAA1BRERSRVNTU1RSSU5HCQABkQAAAAIFAAAABUlORk9TAAAAAAAAAAAABAAAAAdBRERSRVNTCQEAAAAFdmFsdWUAAAABCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABBQAAAA1BRERSRVNTU1RSSU5HBAAAAANDTUIJAAGRAAAAAgUAAAAFSU5GT1MAAAAAAAAAAAEEAAAABkFNT1VOVAkBAAAABXZhbHVlAAAAAQkABLYAAAABCQABkQAAAAIFAAAABUlORk9TAAAAAAAAAAACBAAAAANXSU4JAQAAAAV2YWx1ZQAAAAEJAAS2AAAAAQkAAZEAAAACBQAAAAVJTkZPUwAAAAAAAAAAAwQAAAAKQUREUkVTU1dPTgQAAAAHJG1hdGNoMwkBAAAADWFkZHJlc3NHZXRXb24AAAABBQAAAA1BRERSRVNTU1RSSU5HAwkAAAEAAAACBQAAAAckbWF0Y2gzAgAAAANJbnQEAAAABHRlbXAFAAAAByRtYXRjaDMFAAAABHRlbXAAAAAAAAAAAAAEAAAACkFERFJFU1NISVQEAAAAByRtYXRjaDMJAQAAAA1hZGRyZXNzR2V0SGl0AAAAAQUAAAANQUREUkVTU1NUUklORwMJAAABAAAAAgUAAAAHJG1hdGNoMwIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2gzBQAAAAR0ZW1wAAAAAAAAAAAABAAAAApEQVRBUEFTU0VECQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dhbWVMYWJlbFBhc3NlZAAAAAEFAAAADEdBTUVTQ09VTlRFUgkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFBhc3NlZAAAAAEFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAQMDAwMDCQAAAAAAAAIFAAAABlNUQVRVUwIAAAAGQUNDRVBUCQEAAAACIT0AAAACBQAAAANDTUICAAAAAAcJAABmAAAAAgUAAAADV0lOAAAAAAAAAAAABwkAAGYAAAACBQAAAAZBTU9VTlQAAAAAAAAAAAAHCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAHQUREUkVTUwcEAAAABWNtYklOBAAAAAckbWF0Y2gzCQAEswAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAF8BQAAAANDTUICAAAAAXwFAAAADG51bWJlclN0cmluZwMJAAABAAAAAgUAAAAHJG1hdGNoMwIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2gzCQAAZgAAAAIFAAAABHRlbXAAAAAAAAAAAAAHAwMDAwMDBQAAAAVjbWJJTgYJAAAAAAAAAgUAAAADQ01CBQAAAAVjbWJSQgYJAAAAAAAAAgUAAAADQ01CBQAAAAVjbWJFTwYJAAAAAAAAAgUAAAADQ01CBQAAAAVjbWJMSAYJAAAAAAAAAgUAAAADQ01CBQAAAAVjbWJEWgYJAAAAAAAAAgUAAAADQ01CBQAAAAVjbWJDTAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgUAAAAKREFUQVBBU1NFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADmJldExhYmVsU3RhdHVzAAAAAQUAAAAFaWRCZXQCAAAAA1dPTgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2FkZHJlc3NMYWJlbFdvbgAAAAEFAAAADUFERFJFU1NTVFJJTkcJAABkAAAAAgkAAGQAAAACBQAAAApBRERSRVNTV09OBQAAAANXSU4FAAAABkFNT1VOVAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2FkZHJlc3NMYWJlbEhpdAAAAAEFAAAADUFERFJFU1NTVFJJTkcJAABkAAAAAgUAAAAKQUREUkVTU0hJVAAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAYZ2FtZXNMYWJlbFRvdGFsQW1vdW50V2luCQAAZAAAAAIJAABkAAAAAgkBAAAABXZhbHVlAAAAAQkBAAAAFmdhbWVzR2V0VG90YWxBbW91bnRXaW4AAAAABQAAAANXSU4FAAAABkFNT1VOVAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAB0FERFJFU1MJAABkAAAAAgUAAAADV0lOBQAAAAZBTU9VTlQFAAAABHVuaXQFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACBQAAAApEQVRBUEFTU0VECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOYmV0TGFiZWxTdGF0dXMAAAABBQAAAAVpZEJldAIAAAAETE9TVAUAAAADbmlsCQAAAgAAAAECAAAAFkdFVF9XSU5fQUxSRUFEWV9DQUxMRUQJAAACAAAAAQIAAAAOR0FNRV9OT1RfRk9VTkQJAAACAAAAAQIAAAAOR0FNRV9OT1RfRk9VTkQJAAACAAAAAQIAAAALSU5JVF9ORUVERUQAAAABaQEAAAAOYW1vdW50VG9XYWxsZXQAAAABAAAABmFtb3VudAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAYYW1vdW50VG9XYWxsZXRfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA9zZXJ2ZXJQdWJsaWNLZXkFAAAABmFtb3VudAUAAAAEdW5pdAUAAAADbmlsBAAAAApDVVJSU1RBVFVTCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFN0YXR1cwAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAACkNVUlJTVEFUVVMCAAAABFNIT1cJAAACAAAAAQIAAAAXQ1VSUl9TVEFUVVNfSVNfTk9UX1NIT1cEAAAABEJFVFMJAQAAAAV2YWx1ZQAAAAEJAQAAAAtnYW1lR2V0QmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgQAAAAGUEFTU0VECQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFBhc3NlZAAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAABEJFVFMFAAAABlBBU1NFRAkAAAIAAAABAgAAAA9XQUlUX0FMTF9QQVNTRUQJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAPd2FsbGV0UHVibGljS2V5BQAAAAZhbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAA9iZXRzRmVlVG9TZXJ2ZXIAAAAAAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABliZXRzRmVlVG9TZXJ2ZXJfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAAkAAAIAAAABAgAAAAtOT19CRVRTX0ZFRQQAAAAKQ1VSUlNUQVRVUwkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARTSE9XCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9TSE9XBAAAAARCRVRTCQEAAAAFdmFsdWUAAAABCQEAAAALZ2FtZUdldEJldHMAAAABBQAAAAxHQU1FU0NPVU5URVIEAAAABlBBU1NFRAkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRQYXNzZWQAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAARCRVRTBQAAAAZQQVNTRUQJAAACAAAAAQIAAAAPV0FJVF9BTExfUEFTU0VEBAAAAAtCRVRTQ09VTlRFUgkBAAAABXZhbHVlAAAAAQkBAAAAE2dhbWVzR2V0QmV0c0NvdW50ZXIAAAAABAAAAAlCRVRTTU9WRUQJAQAAAAV2YWx1ZQAAAAEJAQAAABRnYW1lc0dldEJldHNGZWVNb3ZlZAAAAAAJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZnYW1lc0xhYmVsQmV0c0ZlZU1vdmVkBQAAAAtCRVRTQ09VTlRFUgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAD3NlcnZlclB1YmxpY0tleQkAAGUAAAACBQAAAAtCRVRTQ09VTlRFUgUAAAAJQkVUU01PVkVEBQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAALSU5JVF9ORUVERUQAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkHYON4ww==", "height": 1405566, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F6rVLAKT1rMUGzZLKjbsMob9RaTxFt28CDLEbgG3FH8 Next: 91K6MN8nWuW3wWrarJti9CmbJ2kDGJnQCJv8hAuUZVGm Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let serverPublicKey = base58'96EKKKAJdmFAkmgukd7nzc8a81viZL4Ff5c5eb2uPkbi'
4+let serverPublicKey = base58'752dUtaJSRPRkGirZ9usL9osWo1s7UB34ZCjuFr7iSzS'
55
66 let walletPublicKey = base58'4PEWw3mZQrBc1au7QeTFtyDyHq1Kec71TYNDK6JQogiV'
77
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let serverPublicKey = base58'96EKKKAJdmFAkmgukd7nzc8a81viZL4Ff5c5eb2uPkbi'
4+let serverPublicKey = base58'752dUtaJSRPRkGirZ9usL9osWo1s7UB34ZCjuFr7iSzS'
55
66 let walletPublicKey = base58'4PEWw3mZQrBc1au7QeTFtyDyHq1Kec71TYNDK6JQogiV'
77
88 let RSAPUBLIC = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6ouUZyUryUG2LlF2uYQXdb/E6UhlZAbqlOJUCXke4X3osaya63bNQeUNPK7m/9QN9hDium4Kkio9F2r+R92vMgWaluvYviFGJw8V8XL8yhcpkKgYJUQ0v0MCbpI9c7hSKRNxvaI9jikYGyGNSsFdITwcX3a0xJmDfwCssP76mIAC6vXDNuScey+v3njQ+6o/7Aov8YFisZLKmxgZnvuXDIn9zpNhigtlIOTKeY1I4NZQ7zKDlJzSbzBRSWWaNZAWDvlwFr/ZQOMNQ24phKVmnePTEVFASsumUiIBLXbTw78b/SY3bgz79dhw8A1Pu5NW4X9hicrmNr1EyX39UsTDQIDAQAB")
99
1010 let ONEWAVES = 100000000
1111
1212 let periodGamePlay = 2
1313
1414 let wheel = ["5", "24", "16", "33", "1", "20", "14", "31", "9", "22", "18", "29", "7", "28", "12", "35", "3", "26", "0", "32", "15", "19", "4", "21", "2", "25", "17", "34", "6", "27", "13", "36", "11", "30", "8", "23", "10"]
1515
1616 let gamesLabelCounter = "X_GAMESCOUNTER"
1717
1818 let gamesLabelBetsCounter = "X_BETSCOUNTER"
1919
2020 let gamesLabelBetsFeeMoved = "X_BETSFEEMOVED"
2121
2222 let gamesLabelTotalAmountWin = "X_TOTALAMOUNTWIN"
2323
2424 let gamesLabelTotalAmountBet = "X_TOTALAMOUNTBET"
2525
2626 let gamesLabelTotalAddressBet = "X_TOTALADDRESSBET"
2727
2828 func gamesGetCounter () = getInteger(this, gamesLabelCounter)
2929
3030
3131 func gamesGetBetsCounter () = getInteger(this, gamesLabelBetsCounter)
3232
3333
3434 func gamesGetBetsFeeMoved () = getInteger(this, gamesLabelBetsFeeMoved)
3535
3636
3737 func gamesGetTotalAmountWin () = getInteger(this, gamesLabelTotalAmountWin)
3838
3939
4040 func gamesGetTotalAmountBet () = getInteger(this, gamesLabelTotalAmountBet)
4141
4242
4343 func gamesGetTotalAddressBet () = getInteger(this, gamesLabelTotalAddressBet)
4444
4545
4646 func numberLabelCount (number) = ("N_" + number)
4747
4848
4949 func numberGetCount (number) = getInteger(this, numberLabelCount(number))
5050
5151
5252 func gameLabelStatus (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_STATUS")
5353
5454
5555 func gameLabelNumber (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_NUMBER")
5656
5757
5858 func gameLabelMax (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_MAX")
5959
6060
6161 func gameLabelBets (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_BETS")
6262
6363
6464 func gameLabelPassed (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_PASSED")
6565
6666
6767 func gameLabelHeight (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_HEIGHT")
6868
6969
7070 func gameLabelSumSha (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_SUMSHA")
7171
7272
7373 func gameLabelCmbMax (GAMESCOUNTER,CMB) = ((("G_" + toString(GAMESCOUNTER)) + "_C") + CMB)
7474
7575
7676 func gameGetStatus (GAMESCOUNTER) = getString(this, gameLabelStatus(GAMESCOUNTER))
7777
7878
7979 func gameGetNumber (GAMESCOUNTER) = getInteger(this, gameLabelNumber(GAMESCOUNTER))
8080
8181
8282 func gameGetMax (GAMESCOUNTER) = getInteger(this, gameLabelMax(GAMESCOUNTER))
8383
8484
8585 func gameGetBets (GAMESCOUNTER) = getInteger(this, gameLabelBets(GAMESCOUNTER))
8686
8787
8888 func gameGetPassed (GAMESCOUNTER) = getInteger(this, gameLabelPassed(GAMESCOUNTER))
8989
9090
9191 func gameGetHeight (GAMESCOUNTER) = getInteger(this, gameLabelHeight(GAMESCOUNTER))
9292
9393
9494 func gameGetSumSha (GAMESCOUNTER) = getString(this, gameLabelSumSha(GAMESCOUNTER))
9595
9696
9797 func gameGetCmbMax (GAMESCOUNTER,CMB) = getInteger(this, gameLabelCmbMax(GAMESCOUNTER, CMB))
9898
9999
100100 func betLabelStatus (idBet) = (("B_" + idBet) + "_STATUS")
101101
102102
103103 func betLabelInfo (idBet) = (("B_" + idBet) + "_INFO")
104104
105105
106106 func betGetStatus (idBet) = getString(this, betLabelStatus(idBet))
107107
108108
109109 func betGetInfo (idBet) = getString(this, betLabelInfo(idBet))
110110
111111
112112 func addressLabelWon (addr) = (("A_" + addr) + "_WON")
113113
114114
115115 func addressLabelAmount (addr) = (("A_" + addr) + "_AMOUNT")
116116
117117
118118 func addressLabelBets (addr) = (("A_" + addr) + "_BETS")
119119
120120
121121 func addressLabelHit (addr) = (("A_" + addr) + "_HIT")
122122
123123
124124 func addressGetWon (addr) = getInteger(this, addressLabelWon(addr))
125125
126126
127127 func addressGetAmount (addr) = getInteger(this, addressLabelAmount(addr))
128128
129129
130130 func addressGetBets (addr) = getInteger(this, addressLabelBets(addr))
131131
132132
133133 func addressGetHit (addr) = getInteger(this, addressLabelHit(addr))
134134
135135
136136 func pointerAddressLabel (id) = ("P_" + toString(id))
137137
138138
139139 func checkPermission (callerPublicKey) = (callerPublicKey != serverPublicKey)
140140
141141
142142 func gameNewMax (win) = match gamesGetCounter() {
143143 case GAMESCOUNTER: Int =>
144144 match gameGetMax(GAMESCOUNTER) {
145145 case CURRMAX: Int =>
146146 let temp = (CURRMAX - win)
147147 if ((0 > temp))
148148 then throw("BET_IS_BLOCK")
149149 else temp
150150 case _ =>
151151 throw("GAME_NOT_FOUND")
152152 }
153153 case _ =>
154154 throw("INIT_NEEDED")
155155 }
156156
157157
158158 func gameNewSumSha (txId) = match gamesGetCounter() {
159159 case GAMESCOUNTER: Int =>
160160 match gameGetSumSha(GAMESCOUNTER) {
161161 case SUMSHA: String =>
162162 toBase58String(sha256((fromBase58String(SUMSHA) + txId)))
163163 case _ =>
164164 throw("GAME_NOT_FOUND")
165165 }
166166 case _ =>
167167 throw("INIT_NEEDED")
168168 }
169169
170170
171171 func checkIdBet (idBet) = match betGetInfo(idBet) {
172172 case temp: String =>
173173 throw("PLAYER_ALREADY_DEFINED")
174174 case _ =>
175175 1
176176 }
177177
178178
179179 func checkBet (bet,cmb) = {
180180 let onlyoneandmore = if (if (if (if (if (if (if (if (if (if (if (if ((cmb == "_RED"))
181181 then true
182182 else (cmb == "_BLACK"))
183183 then true
184184 else (cmb == "_EVEN"))
185185 then true
186186 else (cmb == "_ODD"))
187187 then true
188188 else (cmb == "_LOW"))
189189 then true
190190 else (cmb == "_HIGH"))
191191 then true
192192 else (cmb == "_DOZER1"))
193193 then true
194194 else (cmb == "_DOZER2"))
195195 then true
196196 else (cmb == "_DOZER3"))
197197 then true
198198 else (cmb == "_COLUMN1"))
199199 then true
200200 else (cmb == "_COLUMN2"))
201201 then true
202202 else (cmb == "_COLUMN3"))
203203 then true
204204 else false
205205 if (onlyoneandmore)
206206 then if (if (if ((bet == 100000000))
207207 then true
208208 else (bet == 200000000))
209209 then true
210210 else (bet == 500000000))
211211 then 1
212212 else throw("BET_NOT_FOUND")
213213 else if (if (if (if (if (if ((bet == 10000000))
214214 then true
215215 else (bet == 20000000))
216216 then true
217217 else (bet == 50000000))
218218 then true
219219 else (bet == 100000000))
220220 then true
221221 else (bet == 200000000))
222222 then true
223223 else (bet == 500000000))
224224 then 1
225225 else throw("BET_NOT_FOUND")
226226 }
227227
228228
229229 func getCmb (cmb) = match getInteger(this, ("C" + cmb)) {
230230 case temp: Int =>
231231 temp
232232 case _ =>
233233 throw("CMB_NOT_FOUND")
234234 }
235235
236236
237237 func allowCmbMax (gamecounter,cmb,win) = match gameGetCmbMax(gamecounter, cmb) {
238238 case temp: Int =>
239239 if (((temp + win) > 20000000000))
240240 then throw("CMB_MAX_WIN")
241241 else 1
242242 case _ =>
243243 1
244244 }
245245
246246
247247 @Callable(i)
248248 func initGame () = if (checkPermission(i.callerPublicKey))
249249 then throw("initGame_FORBBIDEN")
250250 else match gamesGetCounter() {
251251 case GAMESCOUNTER: Int =>
252252 throw("INIT_ALREADY_DONE")
253253 case _ =>
254254 WriteSet([DataEntry(gamesLabelCounter, 0), DataEntry(gamesLabelBetsCounter, 0), DataEntry(gamesLabelBetsFeeMoved, 0), DataEntry(gamesLabelTotalAmountWin, 0), DataEntry(gamesLabelTotalAmountBet, 0), DataEntry(gamesLabelTotalAddressBet, 0)])
255255 }
256256
257257
258258
259259 @Callable(i)
260260 func addCmb (cmb,val) = if (checkPermission(i.callerPublicKey))
261261 then throw("addCmb_FORBBIDEN")
262262 else match gamesGetCounter() {
263263 case GAMESCOUNTER: Int =>
264264 if ((GAMESCOUNTER != 0))
265265 then throw("INIT_ALREADY_DONE")
266266 else if (if (if (if (if (if (if ((val == 1))
267267 then true
268268 else (val == 2))
269269 then true
270270 else (val == 5))
271271 then true
272272 else (val == 8))
273273 then true
274274 else (val == 11))
275275 then true
276276 else (val == 17))
277277 then true
278278 else (val == 35))
279279 then WriteSet([DataEntry(("C" + cmb), val)])
280280 else throw("AMOUNT_NOT_FOUND")
281281 case _ =>
282282 throw("INIT_NEEDED")
283283 }
284284
285285
286286
287287 @Callable(i)
288288 func newGame () = if (checkPermission(i.callerPublicKey))
289289 then throw("newGame_FORBBIDEN")
290290 else match gamesGetCounter() {
291291 case GAMESCOUNTER: Int =>
292292 let newGameCounter = (GAMESCOUNTER + 1)
293293 let BETSCOUNTER = value(gamesGetBetsCounter())
294294 let BETSMOVED = value(gamesGetBetsFeeMoved())
295295 let gameMax = (wavesBalance(this) - (BETSCOUNTER - BETSMOVED))
296296 let halfGameMax = if (((gameMax % 2) == 1))
297297 then ((gameMax - 1) / 2)
298298 else (gameMax / 2)
299299 let sendData = WriteSet([DataEntry(gamesLabelCounter, newGameCounter), DataEntry(gameLabelStatus(newGameCounter), "PLAY"), DataEntry(gameLabelMax(newGameCounter), halfGameMax), DataEntry(gameLabelBets(newGameCounter), 0), DataEntry(gameLabelPassed(newGameCounter), 0), DataEntry(gameLabelHeight(newGameCounter), 0), DataEntry(gameLabelSumSha(newGameCounter), toBase58String(sha256(i.transactionId)))])
300300 if ((ONEWAVES > halfGameMax))
301301 then throw("BALANCE_IS_LOW")
302302 else if ((GAMESCOUNTER == 0))
303303 then sendData
304304 else {
305305 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
306306 if ((CURRSTATUS != "SHOW"))
307307 then throw("CURR_STATUS_IS_NOT_SHOW")
308308 else {
309309 let BETS = value(gameGetBets(GAMESCOUNTER))
310310 let PASSED = value(gameGetPassed(GAMESCOUNTER))
311311 if ((BETS != PASSED))
312312 then throw("WAIT_ALL_PASSED")
313313 else sendData
314314 }
315315 }
316316 case _ =>
317317 throw("INIT_NEEDED")
318318 }
319319
320320
321321
322322 @Callable(i)
323323 func bet (id,cmb) = match gamesGetCounter() {
324324 case GAMESCOUNTER: Int =>
325325 if ((id != GAMESCOUNTER))
326326 then throw("GAME_ID_WRONG")
327327 else match gameGetStatus(GAMESCOUNTER) {
328328 case CURRSTATUS: String =>
329329 if ((CURRSTATUS != "PLAY"))
330330 then throw("CURR_STATUS_IS_NOT_PLAY")
331331 else match gameGetHeight(GAMESCOUNTER) {
332332 case GAMEHEIGHT: Int =>
333333 if (if ((GAMEHEIGHT != 0))
334334 then (height > (GAMEHEIGHT + periodGamePlay))
335335 else false)
336336 then throw("GAME_IS_END")
337337 else match gameGetBets(GAMESCOUNTER) {
338338 case BETS: Int =>
339339 let idBet = ((toString(GAMESCOUNTER) + "_") + toString((BETS + 1)))
340340 let payment = value(i.payment)
341341 match payment.assetId {
342342 case assetId: ByteVector =>
343343 throw("ONLY_WAVES_ACCEPTED")
344344 case _ =>
345345 let amount = payment.amount
346346 let win = (((checkIdBet(idBet) * checkBet(amount, cmb)) * getCmb(cmb)) * amount)
347347 let winmax = (win * allowCmbMax(GAMESCOUNTER, cmb, win))
348348 let address = toBase58String(i.caller.bytes)
349349 let info = ((((((address + "||") + cmb) + "||") + toString(amount)) + "||") + toString(winmax))
350350 let ADDRESSAMOUNT = match addressGetAmount(address) {
351351 case temp: Int =>
352352 temp
353353 case _ =>
354354 0
355355 }
356356 let ADDRESSBETS = match addressGetBets(address) {
357357 case temp: Int =>
358358 temp
359359 case _ =>
360360 0
361361 }
362362 let CMBMAX = match gameGetCmbMax(GAMESCOUNTER, cmb) {
363363 case temp: Int =>
364364 temp
365365 case _ =>
366366 0
367367 }
368368 let data = [DataEntry(betLabelInfo(idBet), info), DataEntry(betLabelStatus(idBet), "ACCEPT"), DataEntry(gameLabelBets(GAMESCOUNTER), (BETS + 1)), DataEntry(gameLabelHeight(GAMESCOUNTER), if ((GAMEHEIGHT == 0))
369369 then height
370370 else GAMEHEIGHT), DataEntry(gameLabelMax(GAMESCOUNTER), gameNewMax(winmax)), DataEntry(gameLabelSumSha(GAMESCOUNTER), gameNewSumSha(i.transactionId)), DataEntry(gameLabelCmbMax(GAMESCOUNTER, cmb), (CMBMAX + winmax)), DataEntry(addressLabelAmount(address), (ADDRESSAMOUNT + amount)), DataEntry(addressLabelBets(address), (ADDRESSBETS + 1)), DataEntry(gamesLabelBetsCounter, (value(gamesGetBetsCounter()) + 1)), DataEntry(gamesLabelTotalAmountBet, (value(gamesGetTotalAmountBet()) + amount))]
371371 let TOTALADDRESSBET = (value(gamesGetTotalAddressBet()) + 1)
372372 let dataFinal = if ((ADDRESSAMOUNT == 0))
373373 then [DataEntry(pointerAddressLabel(TOTALADDRESSBET), address), DataEntry(gamesLabelTotalAddressBet, TOTALADDRESSBET)] :: data
374374 else data
375375 WriteSet(data)
376376 }
377377 case _ =>
378378 throw("GAME_NOT_FOUND_3")
379379 }
380380 case _ =>
381381 throw("GAME_NOT_FOUND_2")
382382 }
383383 case _ =>
384384 throw("GAME_NOT_FOUND_1")
385385 }
386386 case _ =>
387387 throw("INIT_NEEDED")
388388 }
389389
390390
391391
392392 @Callable(i)
393393 func showGame (rsaSign) = if (checkPermission(i.callerPublicKey))
394394 then throw("showGame_FORBBIDEN")
395395 else match gamesGetCounter() {
396396 case GAMESCOUNTER: Int =>
397397 match gameGetSumSha(GAMESCOUNTER) {
398398 case SUMSHA: String =>
399399 let rsaSigValid = rsaVerify(SHA256, fromBase58String(SUMSHA), fromBase58String(rsaSign), RSAPUBLIC)
400400 if (!(rsaSigValid))
401401 then throw("INVALID_RSA_SIGN")
402402 else {
403403 let index = (toInt(sha256(toBytes(rsaSign))) % 37)
404404 let numberString = wheel[index]
405405 let number = value(parseInt(numberString))
406406 let numberCount = match numberGetCount(numberString) {
407407 case temp: Int =>
408408 temp
409409 case _ =>
410410 0
411411 }
412412 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
413413 if ((CURRSTATUS != "PLAY"))
414414 then throw("CURR_STATUS_IS_NOT_PLAY")
415415 else {
416416 let GAMEHEIGHT = value(gameGetHeight(GAMESCOUNTER))
417417 if (if ((GAMEHEIGHT == 0))
418418 then true
419419 else ((GAMEHEIGHT + periodGamePlay) >= height))
420420 then throw("GAME_IS_NOT_END")
421421 else WriteSet([DataEntry(gameLabelStatus(GAMESCOUNTER), "SHOW"), DataEntry(gameLabelNumber(GAMESCOUNTER), number), DataEntry(numberLabelCount(numberString), (numberCount + 1))])
422422 }
423423 }
424424 case _ =>
425425 throw("GAME_NOT_FOUND")
426426 }
427427 case _ =>
428428 throw("INIT_NEEDED")
429429 }
430430
431431
432432
433433 @Callable(i)
434434 func getWin (BET) = if (checkPermission(i.callerPublicKey))
435435 then throw("getWin_FORBBIDEN")
436436 else match gamesGetCounter() {
437437 case GAMESCOUNTER: Int =>
438438 match gameGetStatus(GAMESCOUNTER) {
439439 case CURRSTATUS: String =>
440440 if ((CURRSTATUS != "SHOW"))
441441 then throw("CURR_STATUS_IS_NOT_SHOW")
442442 else match gameGetNumber(GAMESCOUNTER) {
443443 case NUMBER: Int =>
444444 let idBet = ((toString(GAMESCOUNTER) + "_") + toString(BET))
445445 let numberString = (("_" + toString(NUMBER)) + "_")
446446 let red = "|_1_3_5_7_9_12_14_16_18_19_21_23_25_27_30_32_34_36_|"
447447 let black = "|_2_4_6_8_10_11_13_15_17_20_22_24_26_28_29_31_33_35_|"
448448 let indexRed = match indexOf(red, numberString) {
449449 case temp: Int =>
450450 (temp > 0)
451451 case _ =>
452452 false
453453 }
454454 let indexBlack = match indexOf(black, numberString) {
455455 case temp: Int =>
456456 (temp > 0)
457457 case _ =>
458458 false
459459 }
460460 let cmbRB = ("_" + (if (indexRed)
461461 then "RED"
462462 else if (indexBlack)
463463 then "BLACK"
464464 else "NDF"))
465465 let cmbEO = ("_" + (if (if ((0 >= NUMBER))
466466 then true
467467 else (NUMBER > 36))
468468 then "NDF"
469469 else if (((NUMBER % 2) == 0))
470470 then "EVEN"
471471 else "ODD"))
472472 let cmbLH = ("_" + (if (if ((NUMBER >= 1))
473473 then (18 >= NUMBER)
474474 else false)
475475 then "LOW"
476476 else if (if ((NUMBER >= 19))
477477 then (36 >= NUMBER)
478478 else false)
479479 then "HIGH"
480480 else "NDF"))
481481 let cmbDZ = ("_" + (if (if ((NUMBER >= 1))
482482 then (12 >= NUMBER)
483483 else false)
484484 then "DOZER1"
485485 else if (if ((NUMBER >= 13))
486486 then (24 >= NUMBER)
487487 else false)
488488 then "DOZER2"
489489 else if (if ((NUMBER >= 25))
490490 then (36 >= NUMBER)
491491 else false)
492492 then "DOZER3"
493493 else "NDF"))
494494 let cmbCL = ("_" + (if (if ((0 >= NUMBER))
495495 then true
496496 else (NUMBER > 36))
497497 then "NDF"
498498 else if (((NUMBER % 3) == 1))
499499 then "COLUMN1"
500500 else if (((NUMBER % 3) == 2))
501501 then "COLUMN2"
502502 else "COLUMN3"))
503503 let STATUS = match betGetStatus(idBet) {
504504 case temp: String =>
505505 temp
506506 case _ =>
507507 throw("BET_STATUS_NOT_FOUND")
508508 }
509509 let INFO = match betGetInfo(idBet) {
510510 case temp: String =>
511511 temp
512512 case _ =>
513513 throw("BET_INFO_NOT_FOUND")
514514 }
515515 let INFOS = split(INFO, "||")
516516 let ADDRESSSTRING = INFOS[0]
517517 let ADDRESS = value(addressFromString(ADDRESSSTRING))
518518 let CMB = INFOS[1]
519519 let AMOUNT = value(parseInt(INFOS[2]))
520520 let WIN = value(parseInt(INFOS[3]))
521521 let ADDRESSWON = match addressGetWon(ADDRESSSTRING) {
522522 case temp: Int =>
523523 temp
524524 case _ =>
525525 0
526526 }
527527 let ADDRESSHIT = match addressGetHit(ADDRESSSTRING) {
528528 case temp: Int =>
529529 temp
530530 case _ =>
531531 0
532532 }
533533 let DATAPASSED = DataEntry(gameLabelPassed(GAMESCOUNTER), (value(gameGetPassed(GAMESCOUNTER)) + 1))
534534 if (if (if (if (if ((STATUS == "ACCEPT"))
535535 then (CMB != "")
536536 else false)
537537 then (WIN > 0)
538538 else false)
539539 then (AMOUNT > 0)
540540 else false)
541541 then isDefined(ADDRESS)
542542 else false)
543543 then {
544544 let cmbIN = match indexOf((("|" + CMB) + "|"), numberString) {
545545 case temp: Int =>
546546 (temp > 0)
547547 case _ =>
548548 false
549549 }
550550 if (if (if (if (if (if (cmbIN)
551551 then true
552552 else (CMB == cmbRB))
553553 then true
554554 else (CMB == cmbEO))
555555 then true
556556 else (CMB == cmbLH))
557557 then true
558558 else (CMB == cmbDZ))
559559 then true
560560 else (CMB == cmbCL))
561561 then ScriptResult(WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "WON"), DataEntry(addressLabelWon(ADDRESSSTRING), ((ADDRESSWON + WIN) + AMOUNT)), DataEntry(addressLabelHit(ADDRESSSTRING), (ADDRESSHIT + 1)), DataEntry(gamesLabelTotalAmountWin, ((value(gamesGetTotalAmountWin()) + WIN) + AMOUNT))]), TransferSet([ScriptTransfer(ADDRESS, (WIN + AMOUNT), unit)]))
562562 else WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "LOST")])
563563 }
564564 else throw("GET_WIN_ALREADY_CALLED")
565565 case _ =>
566566 throw("GAME_NOT_FOUND")
567567 }
568568 case _ =>
569569 throw("GAME_NOT_FOUND")
570570 }
571571 case _ =>
572572 throw("INIT_NEEDED")
573573 }
574574
575575
576576
577577 @Callable(i)
578578 func amountToWallet (amount) = if (checkPermission(i.callerPublicKey))
579579 then throw("amountToWallet_FORBBIDEN")
580580 else match gamesGetCounter() {
581581 case GAMESCOUNTER: Int =>
582582 if ((GAMESCOUNTER == 0))
583583 then TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), amount, unit)])
584584 else {
585585 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
586586 if ((CURRSTATUS != "SHOW"))
587587 then throw("CURR_STATUS_IS_NOT_SHOW")
588588 else {
589589 let BETS = value(gameGetBets(GAMESCOUNTER))
590590 let PASSED = value(gameGetPassed(GAMESCOUNTER))
591591 if ((BETS != PASSED))
592592 then throw("WAIT_ALL_PASSED")
593593 else TransferSet([ScriptTransfer(addressFromPublicKey(walletPublicKey), amount, unit)])
594594 }
595595 }
596596 case _ =>
597597 throw("INIT_NEEDED")
598598 }
599599
600600
601601
602602 @Callable(i)
603603 func betsFeeToServer () = if (checkPermission(i.callerPublicKey))
604604 then throw("betsFeeToServer_FORBBIDEN")
605605 else match gamesGetCounter() {
606606 case GAMESCOUNTER: Int =>
607607 if ((GAMESCOUNTER == 0))
608608 then throw("NO_BETS_FEE")
609609 else {
610610 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
611611 if ((CURRSTATUS != "SHOW"))
612612 then throw("CURR_STATUS_IS_NOT_SHOW")
613613 else {
614614 let BETS = value(gameGetBets(GAMESCOUNTER))
615615 let PASSED = value(gameGetPassed(GAMESCOUNTER))
616616 if ((BETS != PASSED))
617617 then throw("WAIT_ALL_PASSED")
618618 else {
619619 let BETSCOUNTER = value(gamesGetBetsCounter())
620620 let BETSMOVED = value(gamesGetBetsFeeMoved())
621621 ScriptResult(WriteSet([DataEntry(gamesLabelBetsFeeMoved, BETSCOUNTER)]), TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), (BETSCOUNTER - BETSMOVED), unit)]))
622622 }
623623 }
624624 }
625625 case _ =>
626626 throw("INIT_NEEDED")
627627 }
628628
629629
630630 @Verifier(tx)
631631 func verify () = match tx {
632632 case tx: DataTransaction =>
633633 true
634634 case tx: SetScriptTransaction =>
635635 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
636636 case _ =>
637637 false
638638 }
639639

github/deemru/w8io/169f3d6 
54.06 ms