tx · BTFrBtWvzHYtY479yAPRZbLygRNLfeUswyXvqKMgS95e

3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa:  -0.05000000 Waves

2019.10.25 17:16 [735748] smart account 3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa > SELF 0.00000000 Waves

{ "type": 13, "id": "BTFrBtWvzHYtY479yAPRZbLygRNLfeUswyXvqKMgS95e", "fee": 5000000, "feeAssetId": null, "timestamp": 1572012952314, "version": 1, "sender": "3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa", "senderPublicKey": "DdkgRd7YzZtSU3hXJc7sHsU7sM8nUSEwkzqZCaCTXKRe", "proofs": [ "4GeoPC8Ai8VoiBvyCGzudPw6cazu3BPZFfBjg2qA5fjLjg1Ru8CK197xG39qQkVRtKrm3ZonGbf9mZ2sdrXrrD1d" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIICAAAACgAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAmtiYXNlNjQ6TFMwdExTMUNSVWRKVGlCUVZVSk1TVU1nUzBWWkxTMHRMUzFjYmsxSlNVSkpha0ZPUW1kcmNXaHJhVWM1ZHpCQ1FWRkZSa0ZCVDBOQlVUaEJUVWxKUWtOblMwTkJVVVZCYlU5c1VrSlVXVVZQTTBnM1dUbHlRbTF2UmxGY2JrWnVORE01TWxCNE1GRjNNVE5FYzJSRmFHNTZUVWd5WTJvMldUVjViVkIxUTA5TVRVNWxOWEZ5VlhwUmJEaHZVa3g2U1VKNlJsWk5XbXgzVlZsc01tSmNibTl6Y2s5SmVGRmlXVVkzVjFaUlYzWnZWbmhGVkRGWlNXZEViVE5PZW5wUFRFRTFkVWczUTB0UE1ITnVjMmh0VFVaRFJFOWFSV1YzTkRGSGFrdG9NMUJjYm1kNEsyNWlRV2QxVURsYVVWQm1jVk5oWmtWdFF6TkRUaTgwZVVSelNuSkxjbWxTYm1sYVNtODVhbE12TkV4TWMxSkxkMEkzU0VGYVNIcHZSamxNVERkY2JuUlRXa2d6YUhSaFRrZDBZbVJVYTNoYU1WUjZVMVF6VFdJeVZsQlRlbk5hZGxGRWIyTllWVlpQYlVwUGRUQnZNamxoVDFrclIydEhMMGMwVWtOTE1FWmNia0pYVVVoRlZYWkROVEZVVWtSVE5XczRhbUZrTUU4eFRXOWlhbEZqTm1JeE9HUXJablZ2Vmtaa1RtWmFkMGRJSzNWR2RXUjBVRWN6VlVwVVpqSnRhM3BjYmxwUlNVUkJVVUZDWEc0dExTMHRMVVZPUkNCUVZVSk1TVU1nUzBWWkxTMHRMUzA9AAAAAA9HQU1FU0NPVU5URVJLRVkCAAAACSRHQU1FX05VTQAAAAAOUkVTRVJWQVRJT05LRVkCAAAAECRSRVNFUlZFRF9BTU9VTlQAAAAABFdCRVQBAAAAIA+bi6xab2gnOR9SbfiMgOxiQKrNdZOH+I5+YI04ouDJAAAAAA5XQUxMRVRXQVZFU0JFVAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVI5g9Ot7MZAQi0oorIsDrn13KqbnHOA4uAAAAAAMV0FMTEVUTUNBRkZFCQEAAAAHQWRkcmVzcwAAAAEBAAAAAAAAAAAHV0FWRUxFVAkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAAAA+gAAAAAAAAAA+gAAAAAC0ZFRVdBVkVTQkVUAAAAAAAAAAAEAAAAAAlGRUVNQ0FGRUUAAAAAAAAAAAIAAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAACFNUQVRFV09OAgAAAANXT04AAAAACVNUQVRFTE9TVAIAAAAETE9TVAAAAAAJUk9MTFVOREVSAgAAAAVVTkRFUgAAAAAIUk9MTE9WRVICAAAABE9WRVIAAAAABkJFVE1JTgkAAGgAAAACAAAAAAAAAABkBQAAAAdXQVZFTEVUAAAAAAZCRVRNQVgJAABoAAAAAgkAAGgAAAACAAAAAAAAAAPoAAAAAAAAAABkBQAAAAdXQVZFTEVUAAAAAA1QUkVESUNUSU9OTUlOAAAAAAAAAAAEAAAAAA1QUkVESUNUSU9OTUFYAAAAAAAAAABkAAAAAAxJZHhHYW1lU3RhdGUAAAAAAAAAAAAAAAAADUlkeFByZWRpY3Rpb24AAAAAAAAAAAEAAAAAC0lkeFJvbGxUeXBlAAAAAAAAAAACAAAAABFJZHhQbGF5ZXJQdWJLZXk1OAAAAAAAAAAAAwAAAAAJSWR4V2luQW10AAAAAAAAAAAEAAAAAAdJZHhSYW5kAAAAAAAAAAAFAQAAABBJbmNyZW1lbnRHYW1lTnVtAAAAAAQAAAAHZ2FtZU51bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAA9HQU1FU0NPVU5URVJLRVkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADbnVtBQAAAAckbWF0Y2gwBQAAAANudW0AAAAAAAAAAAAJAABkAAAAAgUAAAAHZ2FtZU51bQAAAAAAAAAAAQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAA5SRVNFUlZBVElPTktFWQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAB5WYWxpZGF0ZUFuZEluY3JlYXNlUmVzZXJ2ZWRBbXQAAAABAAAABndpbkFtdAQAAAARbmV3UmVzZXJ2ZWRBbW91bnQJAABkAAAAAgkBAAAAEkV4dHJhY3RSZXNlcnZlZEFtdAAAAAAFAAAABndpbkFtdAQAAAAHYmFsYW5jZQkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMDCQAAZgAAAAIFAAAAEW5ld1Jlc2VydmVkQW1vdW50BQAAAAdiYWxhbmNlCQAAAgAAAAECAAAAUUluc3VmZmljaWVudCBmdW5kcyBvbiBXYXZlc2JldCBhY2NvdW50LiBUcmFuc2FjdGlvbiB3YXMgcmVqZWN0ZWQgZm9yIHlvdXIgc2FmZXR5LgUAAAARbmV3UmVzZXJ2ZWRBbW91bnQBAAAAE0Zvcm1hdEdhbWVEYXRhUGFyYW0AAAABAAAAAXAEAAAAAXMJAAExAAAAAQUAAAABcAMJAAAAAAAAAgUAAAABcwAAAAAAAAAAAAkAAAIAAAABAgAAACVQYXJhbWV0ZXIgc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhlbiAwAwkAAGYAAAACBQAAAAFzAAAAAAAAAABjCQAAAgAAAAECAAAAJFBhcmFtZXRlciBzaXplIG11c3QgYmUgbGVzcyB0aGVuIDEwMAMJAABmAAAAAgAAAAAAAAAACgUAAAABcwkAASwAAAACCQABLAAAAAICAAAAATAJAAGkAAAAAQUAAAABcwUAAAABcAkAASwAAAACCQABpAAAAAEFAAAAAXMFAAAAAXABAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgAAAAlnYW1lU3RhdGUAAAAKcHJlZGljdGlvbgAAAAhyb2xsVHlwZQAAAA5wbGF5ZXJQdWJLZXk1OAAAAAZ3aW5BbXQAAAAEcmFuZAQAAAAMZnVsbFN0YXRlU3RyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkBAAAAE0Zvcm1hdEdhbWVEYXRhUGFyYW0AAAABBQAAAAlnYW1lU3RhdGUCAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQkAAaQAAAABBQAAAApwcmVkaWN0aW9uAgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEFAAAACHJvbGxUeXBlAgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEFAAAADnBsYXllclB1YktleTU4AgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEJAAGkAAAAAQUAAAAGd2luQW10AwkAAAAAAAACBQAAAARyYW5kAgAAAAAFAAAADGZ1bGxTdGF0ZVN0cgkAASwAAAACCQABLAAAAAIFAAAADGZ1bGxTdGF0ZVN0cgIAAAABXwkBAAAAE0Zvcm1hdEdhbWVEYXRhUGFyYW0AAAABBQAAAARyYW5kAQAAABlSZW1vdmVVbmRlcnNjb3JlSWZQcmVzZW50AAAAAQAAAAlyZW1haW5pbmcDCQAAZgAAAAIJAAExAAAAAQUAAAAJcmVtYWluaW5nAAAAAAAAAAAACQABMAAAAAIFAAAACXJlbWFpbmluZwAAAAAAAAAAAQUAAAAJcmVtYWluaW5nAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABAAAACXJlbWFpbmluZwQAAAABcwkAATEAAAABBQAAAAlyZW1haW5pbmcDCQAAZgAAAAIFAAAAAXMAAAAAAAAAAAAEAAAAAm5uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAEvAAAAAgUAAAAJcmVtYWluaW5nAAAAAAAAAAACBAAAAAF2CQABLwAAAAIJAAEwAAAAAgUAAAAJcmVtYWluaW5nAAAAAAAAAAACBQAAAAJubgQAAAAMdG1wUmVtYWluaW5nCQABMAAAAAIFAAAACXJlbWFpbmluZwkAAGQAAAACBQAAAAJubgAAAAAAAAAAAgQAAAAOcmVtYWluaW5nU3RhdGUJAQAAABlSZW1vdmVVbmRlcnNjb3JlSWZQcmVzZW50AAAAAQUAAAAMdG1wUmVtYWluaW5nCQAETAAAAAIFAAAAAXYJAARMAAAAAgUAAAAOcmVtYWluaW5nU3RhdGUFAAAAA25pbAkAAAIAAAABAgAAADRFbXB0eSBzdHJpbmcgd2FzIHBhc3NlZCBpbnRvIHBhcnNlTmV4dEF0dHJpYnV0ZSBmdW5jAQAAABNQYXJzZUdhbWVSYXdEYXRhU3RyAAAAAQAAAAtyYXdTdGF0ZVN0cgQAAAAJZ2FtZVN0YXRlCQEAAAASUGFyc2VOZXh0QXR0cmlidXRlAAAAAQUAAAALcmF3U3RhdGVTdHIEAAAACnByZWRpY3Rpb24JAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABCQABkQAAAAIFAAAACWdhbWVTdGF0ZQAAAAAAAAAAAQQAAAAIcm9sbFR5cGUJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABCQABkQAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAEEAAAADnBsYXllclB1YktleTU4CQEAAAASUGFyc2VOZXh0QXR0cmlidXRlAAAAAQkAAZEAAAACBQAAAAhyb2xsVHlwZQAAAAAAAAAAAQQAAAAGd2luQW10CQEAAAASUGFyc2VOZXh0QXR0cmlidXRlAAAAAQkAAZEAAAACBQAAAA5wbGF5ZXJQdWJLZXk1OAAAAAAAAAAAAQkABEwAAAACCQABkQAAAAIFAAAACWdhbWVTdGF0ZQAAAAAAAAAAAAkABEwAAAACCQABkQAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAAJAARMAAAAAgkAAZEAAAACBQAAAAhyb2xsVHlwZQAAAAAAAAAAAAkABEwAAAACCQABkQAAAAIFAAAADnBsYXllclB1YktleTU4AAAAAAAAAAAACQAETAAAAAIJAAGRAAAAAgUAAAAGd2luQW10AAAAAAAAAAAABQAAAANuaWwBAAAAE0V4dHJhY3RHYW1lRGF0YUxpc3QAAAABAAAABmdhbWVJZAQAAAAKcmF3RGF0YVN0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAAZnYW1lSWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAADc3RyBQAAAAckbWF0Y2gwBQAAAANzdHIJAAACAAAAAQkAASwAAAACAgAAABZDb3VsZG4ndCBmaW5kIGdhbWUgYnkgBQAAAAZnYW1lSWQJAQAAABNQYXJzZUdhbWVSYXdEYXRhU3RyAAAAAQUAAAAKcmF3RGF0YVN0cgEAAAATRGVjcmVhc2VSZXNlcnZlZEFtdAAAAAIAAAAGZ2FtZUlkAAAABndpbkFtdAQAAAARbmV3UmVzZXJ2ZWRBbW91bnQJAABlAAAAAgkBAAAAEkV4dHJhY3RSZXNlcnZlZEFtdAAAAAAFAAAABndpbkFtdAMJAABmAAAAAgAAAAAAAAAAAAUAAAARbmV3UmVzZXJ2ZWRBbW91bnQJAAACAAAAAQIAAABCSW52YWxpZCBEaWNlIFJvbGxlciBhY2NvdW50IHN0YXRlIC0gcmVzZXJ2ZWQgYW1vdW50IGlzIGxlc3MgdGhhbiAwCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOUkVTRVJWQVRJT05LRVkFAAAAEW5ld1Jlc2VydmVkQW1vdW50AQAAAA9HZW5lcmF0ZVJhbmRJbnQAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAtyc2FTaWdWYWxpZAkAAfgAAAAEBQAAAAZTSEEyNTYJAAGbAAAAAQUAAAAGZ2FtZUlkCQACWwAAAAEFAAAAB3JzYVNpZ24FAAAACVJTQVBVQkxJQwMFAAAAC3JzYVNpZ1ZhbGlkBAAAAARyYW5kCQAAagAAAAIJAASxAAAAAQkAAfcAAAABCQABmwAAAAEFAAAAB3JzYVNpZ24AAAAAAAAAAGQDCQAAZgAAAAIAAAAAAAAAAAAFAAAABHJhbmQJAABkAAAAAgkAAGgAAAACAP//////////BQAAAARyYW5kAAAAAAAAAAABCQAAZAAAAAIFAAAABHJhbmQAAAAAAAAAAAEJAAACAAAAAQIAAAAVSW52YWxpZCBSU0Egc2lnbmF0dXJlAQAAAAlSYW5kVG9TdHIAAAABAAAAAXIDAwkAAGcAAAACBQAAAAFyAAAAAAAAAAABCQAAZwAAAAIAAAAAAAAAAGQFAAAAAXIHCQABpAAAAAEFAAAAAXIJAAACAAAAAQkAASwAAAACAgAAADxVbnN1cHBvcnRlZCByIHBhcmFtZXRlciBwYXNzZWQ6IGV4cGVjdGVkPVsxLC4uLiwxMDBdIGFjdHVhbD0JAAGkAAAAAQUAAAABcgEAAAAMV2luU2NyaXB0U2V0AAAABAAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwAAAAZ3aW5BbXQAAAAObmV3R2FtZURhdGFTdHIEAAAADnRTZXRDb21tb25EYXRhCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADXBsYXllckFkZHJlc3MFAAAABndpbkFtdAUAAAAEV0JFVAUAAAADbmlsBAAAAA13cml0ZURpY2VQbGF5CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdHYW1lIElkBQAAAAZnYW1lSWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADlBsYXllciBBZGRyZXNzCQAEJQAAAAEFAAAADXBsYXllckFkZHJlc3MFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAADXdyaXRlRGljZVBsYXkJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAADnRTZXRDb21tb25EYXRhAQAAAApNdWx0aXBsaWVyAAAAAgAAAApwcmVkaWN0aW9uAAAACHJvbGxUeXBlAwkAAAAAAAACBQAAAAhyb2xsVHlwZQUAAAAJUk9MTFVOREVSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAABAAAAAAAAlkyQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAACAAAAAAAASyZIAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAADAAAAAAAAMhmCAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAEAAAAAAAAJZMkAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAFAAAAAAAAHg9QAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAGAAAAAAAAGQy8AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAHAAAAAAAAFXikAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAIAAAAAAAAEsmSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAJAAAAAAAAELMoAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAKAAAAAAAADweoAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAALAAAAAAAADanaAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAMAAAAAAAADIZeAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAANAAAAAAAAC4+6AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAOAAAAAAAACrxSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAPAAAAAAAACgUUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAQAAAAAAAACWTEAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAARAAAAAAAACNdSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAASAAAAAAAACFmUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAATAAAAAAAAB+kUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAUAAAAAAAAB4PUAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAVAAAAAAAABygwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAWAAAAAAAABtToAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAXAAAAAAAABojkAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAYAAAAAAAABkMqAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAZAAAAAAAABgMQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAaAAAAAAAABcfYAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAbAAAAAAAABZEKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAcAAAAAAAABV4kAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAdAAAAAAAABS7CAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAeAAAAAAAABQKKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAfAAAAAAAABNksAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAgAAAAAAAABLJiAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAhAAAAAAAABI3wAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAiAAAAAAAABGukAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAjAAAAAAAABEtMAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAkAAAAAAAABCzKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAlAAAAAAAAA/SKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAmAAAAAAAAA/SKAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAnAAAAAAAAA9qQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAoAAAAAAAAA8HqAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAApAAAAAAAAA6pwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAqAAAAAAAAA5QYAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAArAAAAAAAAA37EAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAsAAAAAAAAA2p0AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAtAAAAAAAAA1cAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAuAAAAAAAAA0RyAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAvAAAAAAAAAzKiAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAwAAAAAAAAAyGQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAxAAAAAAAAAxE8AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAyAAAAAAAAAwGIAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAAzAAAAAAAAAvJqAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA0AAAAAAAAAuPsAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA1AAAAAAAAAtXwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA2AAAAAAAAAsiAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA3AAAAAAAAAruSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA4AAAAAAAAAq8SAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA5AAAAAAAAAqMAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA6AAAAAAAAApdcAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA7AAAAAAAAAowcAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA8AAAAAAAAAoFAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA9AAAAAAAAAna+AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA+AAAAAAAAAmyWAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAAA/AAAAAAAAAmK0AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABAAAAAAAAAAlksAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABBAAAAAAAAAk/qAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABCAAAAAAAAAkb4AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABDAAAAAAAAAj5CAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABEAAAAAAAAAjXSAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABFAAAAAAAAAi2eAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABGAAAAAAAAAiWmAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABHAAAAAAAAAh3qAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABIAAAAAAAAAhZgAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABJAAAAAAAAAg8SAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABKAAAAAAAAAgfsAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABLAAAAAAAAAgECAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABMAAAAAAAAAfpAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABNAAAAAAAAAfOwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABOAAAAAAAAAe1IAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABPAAAAAAAAAecIAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABQAAAAAAAAAeDwAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABRAAAAAAAAAdsAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABSAAAAAAAAAdU4AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABTAAAAAAAAAc+OAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABUAAAAAAAAAcoMAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABVAAAAAAAAAcSoAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABWAAAAAAAAAb9iAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABXAAAAAAAAAbo6AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABYAAAAAAAAAbU6AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABZAAAAAAAAAbBOAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABaAAAAAAAAAauAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABbAAAAAAAAAabQAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABcAAAAAAAAAaI0AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABdAAAAAAAAAZ22AwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABeAAAAAAAAAZlMAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABfAAAAAAAAAZUAAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uAAAAAAAAAABgAAAAAAAAAZUAAAAAAAAAAYagAwkAAAAAAAACBQAAAAhyb2xsVHlwZQUAAAAIUk9MTE9WRVIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAQAAAAAAAABlQADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAUAAAAAAAABlQADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAYAAAAAAAABmUwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAcAAAAAAAABnbYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAgAAAAAAAABojQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAkAAAAAAAABptADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAoAAAAAAAABq4ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAsAAAAAAAABsE4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAwAAAAAAAABtToDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA0AAAAAAAABujoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA4AAAAAAAABv2IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA8AAAAAAAABxKgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABAAAAAAAAABygwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABEAAAAAAAABz44DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABIAAAAAAAAB1TgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABMAAAAAAAAB2wADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABQAAAAAAAAB4PADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABUAAAAAAAAB5wgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABYAAAAAAAAB7UgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABcAAAAAAAAB87ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABgAAAAAAAAB+kADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABkAAAAAAAACAQIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABoAAAAAAAACB+wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABsAAAAAAAACDxIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABwAAAAAAAACFmADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB0AAAAAAAACHeoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB4AAAAAAAACJaYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB8AAAAAAAACLZ4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACAAAAAAAAACNdIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACEAAAAAAAACPkIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACIAAAAAAAACRvgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACMAAAAAAAACT+oDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACQAAAAAAAACWSwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACUAAAAAAAACYrQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACYAAAAAAAACbJYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACcAAAAAAAACdr4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACgAAAAAAAACgUADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACkAAAAAAAACjBwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACoAAAAAAAACl1wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACsAAAAAAAACowADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACwAAAAAAAACrxIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC0AAAAAAAACu5IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC4AAAAAAAAC1fADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC8AAAAAAAAC1fADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADAAAAAAAAAC4+wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADEAAAAAAAAC8moDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADIAAAAAAAADAYgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADMAAAAAAAADETwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADQAAAAAAAADIZADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADUAAAAAAAADMqIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADYAAAAAAAADRHIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADcAAAAAAAADVwADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADgAAAAAAAADanQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADkAAAAAAAADfsQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADoAAAAAAAADlBgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADsAAAAAAAADqnADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADwAAAAAAAADweoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD0AAAAAAAAD2pADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD4AAAAAAAAD9IoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD8AAAAAAAAD9IoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEAAAAAAAAAELMoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEEAAAAAAAAES0wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEIAAAAAAAAEa6QDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEMAAAAAAAAEjfADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEQAAAAAAAAEsmIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEUAAAAAAAAE2SwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEYAAAAAAAAFAooDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEcAAAAAAAAFLsIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEgAAAAAAAAFXiQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEkAAAAAAAAFkQoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEoAAAAAAAAFx9gDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEsAAAAAAAAGAxADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEwAAAAAAAAGQyoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE0AAAAAAAAGiOQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE4AAAAAAAAG1OgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE8AAAAAAAAHKDADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFAAAAAAAAAHg9QDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFEAAAAAAAAH6RQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFIAAAAAAAAIWZQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFMAAAAAAAAI11IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFQAAAAAAAAJZMQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFUAAAAAAAAKBRQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFYAAAAAAAAKvFIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFcAAAAAAAALj7oDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFgAAAAAAAAMhl4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFkAAAAAAAANqdoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFoAAAAAAAAPB6gDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFsAAAAAAAAQsygDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFwAAAAAAAASyZIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF0AAAAAAAAVeKQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF4AAAAAAAAZDLwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF8AAAAAAAAeD1ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGAAAAAAAAAlkyQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGEAAAAAAAAyGYIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGIAAAAAAABLJkgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGMAAAAAAACWTJAAAAAAAAABhqAAAAAAAAABhqABAAAAB2RpY2VXaW4AAAADAAAACHJvbGxUeXBlAAAACnByZWRpY3Rpb24AAAAEcmFuZAMJAAAAAAAAAgUAAAAIcm9sbFR5cGUFAAAACVJPTExVTkRFUgMJAABnAAAAAgUAAAAKcHJlZGljdGlvbgUAAAAEcmFuZAYHAwkAAAAAAAACBQAAAAhyb2xsVHlwZQUAAAAIUk9MTE9WRVIDCQAAZwAAAAIFAAAABHJhbmQFAAAACnByZWRpY3Rpb24GBwcBAAAAGlZhbGlkYXRlQmV0QW5kRGVmaW5lV2luQW10AAAAAwAAAAZhbW91bnQAAAAKcHJlZGljdGlvbgAAAAhyb2xsVHlwZQMDCQAAZgAAAAIFAAAABkJFVE1JTgUAAAAGYW1vdW50BgkAAGYAAAACBQAAAAZhbW91bnQFAAAABkJFVE1BWAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACNCZXQgYW1vdW50IGlzIG5vdCBpbiByYW5nZTogbWluQmV0PQkAAaQAAAABCQAAaQAAAAIFAAAABkJFVE1JTgAAAAAABfXhAAIAAAAIIG1heEJldD0JAAGkAAAAAQkAAGkAAAACBQAAAAZCRVRNQVgAAAAAAAX14QADAwkBAAAAAiE9AAAAAgUAAAAIcm9sbFR5cGUFAAAACVJPTExVTkRFUgkBAAAAAiE9AAAAAgUAAAAIcm9sbFR5cGUFAAAACFJPTExPVkVSBwkAAAIAAAABAgAAAClJbnZhbGlkIFJvbGwgdHlwZSwgdHJ5IHdpdGggT1ZFUiBvciBVTkRFUgMDCQAAZgAAAAIFAAAADVBSRURJQ1RJT05NSU4FAAAACnByZWRpY3Rpb24GCQAAZgAAAAIFAAAACnByZWRpY3Rpb24FAAAADVBSRURJQ1RJT05NQVgJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAkUHJlZGljdGlvbiBpcyBvdXQgb2YgdGhlIGNvbmRpdGlvbjogCQABpAAAAAEFAAAADVBSRURJQ1RJT05NSU4CAAAAESA8PSBwcmVkY3Rpb24gPD0gCQABpAAAAAEFAAAADVBSRURJQ1RJT05NQVgEAAAABW11bHRpCQEAAAAKTXVsdGlwbGllcgAAAAIFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlCQAAaQAAAAIJAABoAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAABmFtb3VudAUAAAAFbXVsdGkAAAAAAAABhqAJAABlAAAAAgAAAAAAAAAAZAkAAGQAAAACBQAAAAtGRUVXQVZFU0JFVAUAAAAJRkVFTUNBRkVFAAAAAAAAAABkAAAAAgAAAAFpAQAAAAhwbGF5RGljZQAAAAIAAAAIcm9sbFR5cGUAAAAKcHJlZGljdGlvbgQAAAAGZ2FtZUlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAACmdhbWVJZFVzZWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAApmZWVBc3NldElkCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAKZmVlQXNzZXRJZAQAAAAGd2luQW10CQEAAAAaVmFsaWRhdGVCZXRBbmREZWZpbmVXaW5BbXQAAAADCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlBAAAAA1wbGF5ZXJCYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAwkAAGYAAAACAAAAAAAAAYagBQAAAA1wbGF5ZXJCYWxhbmNlCQAAAgAAAAECAAAARVRoZXJlIGFyZSBub3QgZW5vdWdoIHdhdmVzLCBpdCB0YWtlcyAwLjAxIFdhdmVzIHRvIGJldC4gR2FtZSBhYm9ydGVkLgMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAABFdCRVQJAAACAAAAAQIAAAApQmV0IGFtb3VudCBtdXN0IGJlIGluIFdiZXQuIEdhbWUgYWJvcnRlZC4DBQAAAApmZWVBc3NldElkCQAAAgAAAAECAAAAMVRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMuIEdhbWUgYWJvcnRlZC4DBQAAAApnYW1lSWRVc2VkCQAAAgAAAAECAAAAMVBhc3NlZCBnYW1lSWQgaGFkIGJlZW4gdXNlZCBiZWZvcmUuIEdhbWUgYWJvcnRlZC4EAAAACm5ld0dhbWVOdW0JAQAAABBJbmNyZW1lbnRHYW1lTnVtAAAAAAQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAOU1RBVEVTVUJNSVRURUQFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAAGd2luQW10AgAAAAAJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9HQU1FU0NPVU5URVJLRVkFAAAACm5ld0dhbWVOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAALZ2FtZURhdGFTdHIFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA5XQUxMRVRXQVZFU0JFVAkAAGkAAAACCQAAaAAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAALRkVFV0FWRVNCRVQAAAAAAAAAAGQFAAAABFdCRVQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAEdGhpcwAAAAAAAAehIAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAZnYW1lSWQAAAAHcnNhU2lnbgQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAMSWR4R2FtZVN0YXRlBAAAAAlwcmVkY3Rpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAADUlkeFByZWRpY3Rpb24EAAAACHJvbGxUeXBlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAALSWR4Um9sbFR5cGUEAAAADnBsYXllclB1YktleTU4CQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAARSWR4UGxheWVyUHViS2V5NTgEAAAABndpbkFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAJSWR4V2luQW10BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4AwkBAAAAAiE9AAAAAgUAAAAJZ2FtZVN0YXRlBQAAAA5TVEFURVNVQk1JVFRFRAkAAAIAAAABAgAAADNJbnZhbGlkIGdhbWUgc3RhdGUgZm9yIHBhc3NlZCBnYW1lSWQuIEdhbWUgYWJvcnRlZC4EAAAABHJhbmQJAQAAAA9HZW5lcmF0ZVJhbmRJbnQAAAACBQAAAAZnYW1lSWQFAAAAB3JzYVNpZ24EAAAAB3JhbmRTdHIJAQAAAAlSYW5kVG9TdHIAAAABBQAAAARyYW5kAwkBAAAAB2RpY2VXaW4AAAADBQAAAAhyb2xsVHlwZQUAAAAJcHJlZGN0aW9uBQAAAARyYW5kBAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAIU1RBVEVXT04FAAAACXByZWRjdGlvbgUAAAAIcm9sbFR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZ3aW5BbXQFAAAAB3JhbmRTdHIJAQAAAAxXaW5TY3JpcHRTZXQAAAAEBQAAAAZnYW1lSWQFAAAADXBsYXllckFkZHJlc3MFAAAABndpbkFtdAUAAAAObmV3R2FtZURhdGFTdHIEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAAlTVEFURUxPU1QFAAAACXByZWRjdGlvbgUAAAAIcm9sbFR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZ3aW5BbXQFAAAAB3JhbmRTdHIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAAObmV3R2FtZURhdGFTdHIFAAAAA25pbAAAAADrkmbv", "chainId": 84, "height": 735748, "spentComplexity": 0 } View: original | compacted Prev: 7oYnkATahz3f3xFFgZYSegXQTj3GpMZh143fq5nwxryy Next: AEkoWdcubvDZWtR6xYGXDKhzLc1ZcWQp1D23zbZjoh5E Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let RSAPUBLIC = "-----BEGIN PUBLIC KEY-----
5-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmOlRBTYEO3H7Y9rBmoFQ
6-Fn4392Px0Qw13DsdEhnzMH2cj6Y5ymPuCOLMNe5qrUzQl8oRLzIBzFVMZlwUYl2b
7-osrOIxQbYF7WVQWvoVxET1YIgDm3NzzOLA5uH7CKO0snshmMFCDOZEew41GjKh3P
8-gx+nbAguP9ZQPfqSafEmC3CN/4yDsJrKriRniZJo9jS/4LLsRKwB7HAZHzoF9LL7
9-tSZH3htaNGtbdTkxZ1TzST3Mb2VPSzsZvQDocXUVOmJOu0o29aOY+GkG/G4RCK0F
10-BWQHEUvC51TRDS5k8jad0O1MobjQc6b18d+fuoVFdNfZwGH+uFudtPG3UJTf2mkz
11-ZQIDAQAB
12------END PUBLIC KEY-----"
4+let RSAPUBLIC = fromBase64String("base64:LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlFcbkZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJcbm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1Bcbmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDdcbnRTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZcbkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3pcblpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=")
135
146 let GAMESCOUNTERKEY = "$GAME_NUM"
157
154146
155147
156148 func GenerateRandInt (gameId,rsaSign) = {
157- let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), toBytes(rsaSign), toBytes(RSAPUBLIC))
149+ let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), RSAPUBLIC)
158150 if (rsaSigValid)
159151 then {
160152 let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let RSAPUBLIC = "-----BEGIN PUBLIC KEY-----
5-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmOlRBTYEO3H7Y9rBmoFQ
6-Fn4392Px0Qw13DsdEhnzMH2cj6Y5ymPuCOLMNe5qrUzQl8oRLzIBzFVMZlwUYl2b
7-osrOIxQbYF7WVQWvoVxET1YIgDm3NzzOLA5uH7CKO0snshmMFCDOZEew41GjKh3P
8-gx+nbAguP9ZQPfqSafEmC3CN/4yDsJrKriRniZJo9jS/4LLsRKwB7HAZHzoF9LL7
9-tSZH3htaNGtbdTkxZ1TzST3Mb2VPSzsZvQDocXUVOmJOu0o29aOY+GkG/G4RCK0F
10-BWQHEUvC51TRDS5k8jad0O1MobjQc6b18d+fuoVFdNfZwGH+uFudtPG3UJTf2mkz
11-ZQIDAQAB
12------END PUBLIC KEY-----"
4+let RSAPUBLIC = fromBase64String("base64:LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlFcbkZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJcbm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1Bcbmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDdcbnRTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZcbkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3pcblpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=")
135
146 let GAMESCOUNTERKEY = "$GAME_NUM"
157
168 let RESERVATIONKEY = "$RESERVED_AMOUNT"
179
1810 let WBET = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1911
2012 let WALLETWAVESBET = Address(base58'3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX')
2113
2214 let WALLETMCAFFE = Address(base58'')
2315
2416 let WAVELET = ((100 * 1000) * 1000)
2517
2618 let FEEWAVESBET = 4
2719
2820 let FEEMCAFEE = 2
2921
3022 let STATESUBMITTED = "SUBMITTED"
3123
3224 let STATEWON = "WON"
3325
3426 let STATELOST = "LOST"
3527
3628 let ROLLUNDER = "UNDER"
3729
3830 let ROLLOVER = "OVER"
3931
4032 let BETMIN = (100 * WAVELET)
4133
4234 let BETMAX = ((1000 * 100) * WAVELET)
4335
4436 let PREDICTIONMIN = 4
4537
4638 let PREDICTIONMAX = 100
4739
4840 let IdxGameState = 0
4941
5042 let IdxPrediction = 1
5143
5244 let IdxRollType = 2
5345
5446 let IdxPlayerPubKey58 = 3
5547
5648 let IdxWinAmt = 4
5749
5850 let IdxRand = 5
5951
6052 func IncrementGameNum () = {
6153 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
6254 case num: Int =>
6355 num
6456 case _ =>
6557 0
6658 }
6759 (gameNum + 1)
6860 }
6961
7062
7163 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
7264 case a: Int =>
7365 a
7466 case _ =>
7567 0
7668 }
7769
7870
7971 func ValidateAndIncreaseReservedAmt (winAmt) = {
8072 let newReservedAmount = (ExtractReservedAmt() + winAmt)
8173 let balance = wavesBalance(this)
8274 if ((newReservedAmount > balance))
8375 then throw("Insufficient funds on Wavesbet account. Transaction was rejected for your safety.")
8476 else newReservedAmount
8577 }
8678
8779
8880 func FormatGameDataParam (p) = {
8981 let s = size(p)
9082 if ((s == 0))
9183 then throw("Parameter size must be greater then 0")
9284 else if ((s > 99))
9385 then throw("Parameter size must be less then 100")
9486 else if ((10 > s))
9587 then (("0" + toString(s)) + p)
9688 else (toString(s) + p)
9789 }
9890
9991
10092 func FormatGameDataStr (gameState,prediction,rollType,playerPubKey58,winAmt,rand) = {
10193 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(rollType)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
10294 if ((rand == ""))
10395 then fullStateStr
10496 else ((fullStateStr + "_") + FormatGameDataParam(rand))
10597 }
10698
10799
108100 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
109101 then drop(remaining, 1)
110102 else remaining
111103
112104
113105 func ParseNextAttribute (remaining) = {
114106 let s = size(remaining)
115107 if ((s > 0))
116108 then {
117109 let nn = parseIntValue(take(remaining, 2))
118110 let v = take(drop(remaining, 2), nn)
119111 let tmpRemaining = drop(remaining, (nn + 2))
120112 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
121113 [v, remainingState]
122114 }
123115 else throw("Empty string was passed into parseNextAttribute func")
124116 }
125117
126118
127119 func ParseGameRawDataStr (rawStateStr) = {
128120 let gameState = ParseNextAttribute(rawStateStr)
129121 let prediction = ParseNextAttribute(gameState[1])
130122 let rollType = ParseNextAttribute(prediction[1])
131123 let playerPubKey58 = ParseNextAttribute(rollType[1])
132124 let winAmt = ParseNextAttribute(playerPubKey58[1])
133125 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
134126 }
135127
136128
137129 func ExtractGameDataList (gameId) = {
138130 let rawDataStr = match getString(this, gameId) {
139131 case str: String =>
140132 str
141133 case _ =>
142134 throw(("Couldn't find game by " + gameId))
143135 }
144136 ParseGameRawDataStr(rawDataStr)
145137 }
146138
147139
148140 func DecreaseReservedAmt (gameId,winAmt) = {
149141 let newReservedAmount = (ExtractReservedAmt() - winAmt)
150142 if ((0 > newReservedAmount))
151143 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
152144 else DataEntry(RESERVATIONKEY, newReservedAmount)
153145 }
154146
155147
156148 func GenerateRandInt (gameId,rsaSign) = {
157- let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), toBytes(rsaSign), toBytes(RSAPUBLIC))
149+ let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), RSAPUBLIC)
158150 if (rsaSigValid)
159151 then {
160152 let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
161153 if ((0 > rand))
162154 then ((-1 * rand) + 1)
163155 else (rand + 1)
164156 }
165157 else throw("Invalid RSA signature")
166158 }
167159
168160
169161 func RandToStr (r) = if (if ((r >= 1))
170162 then (100 >= r)
171163 else false)
172164 then toString(r)
173165 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
174166
175167
176168 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr) = {
177169 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
178170 let writeDicePlay = WriteSet([DataEntry("Game Id", gameId), DataEntry("Player Address", toString(playerAddress))])
179171 ScriptResult(writeDicePlay, TransferSet(tSetCommonData))
180172 }
181173
182174
183175 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
184176 then if ((prediction == 1))
185177 then 9850000
186178 else if ((prediction == 2))
187179 then 4925000
188180 else if ((prediction == 3))
189181 then 3283330
190182 else if ((prediction == 4))
191183 then 2462500
192184 else if ((prediction == 5))
193185 then 1970000
194186 else if ((prediction == 6))
195187 then 1641660
196188 else if ((prediction == 7))
197189 then 1407140
198190 else if ((prediction == 8))
199191 then 1231250
200192 else if ((prediction == 9))
201193 then 1094440
202194 else if ((prediction == 10))
203195 then 985000
204196 else if ((prediction == 11))
205197 then 895450
206198 else if ((prediction == 12))
207199 then 820830
208200 else if ((prediction == 13))
209201 then 757690
210202 else if ((prediction == 14))
211203 then 703570
212204 else if ((prediction == 15))
213205 then 656660
214206 else if ((prediction == 16))
215207 then 615620
216208 else if ((prediction == 17))
217209 then 579410
218210 else if ((prediction == 18))
219211 then 547220
220212 else if ((prediction == 19))
221213 then 518420
222214 else if ((prediction == 20))
223215 then 492500
224216 else if ((prediction == 21))
225217 then 469040
226218 else if ((prediction == 22))
227219 then 447720
228220 else if ((prediction == 23))
229221 then 428260
230222 else if ((prediction == 24))
231223 then 410410
232224 else if ((prediction == 25))
233225 then 394000
234226 else if ((prediction == 26))
235227 then 378840
236228 else if ((prediction == 27))
237229 then 364810
238230 else if ((prediction == 28))
239231 then 351780
240232 else if ((prediction == 29))
241233 then 339650
242234 else if ((prediction == 30))
243235 then 328330
244236 else if ((prediction == 31))
245237 then 317740
246238 else if ((prediction == 32))
247239 then 307810
248240 else if ((prediction == 33))
249241 then 298480
250242 else if ((prediction == 34))
251243 then 289700
252244 else if ((prediction == 35))
253245 then 281420
254246 else if ((prediction == 36))
255247 then 273610
256248 else if ((prediction == 37))
257249 then 259210
258250 else if ((prediction == 38))
259251 then 259210
260252 else if ((prediction == 39))
261253 then 252560
262254 else if ((prediction == 40))
263255 then 246250
264256 else if ((prediction == 41))
265257 then 240240
266258 else if ((prediction == 42))
267259 then 234520
268260 else if ((prediction == 43))
269261 then 229060
270262 else if ((prediction == 44))
271263 then 223860
272264 else if ((prediction == 45))
273265 then 218880
274266 else if ((prediction == 46))
275267 then 214130
276268 else if ((prediction == 47))
277269 then 209570
278270 else if ((prediction == 48))
279271 then 205200
280272 else if ((prediction == 49))
281273 then 201020
282274 else if ((prediction == 50))
283275 then 197000
284276 else if ((prediction == 51))
285277 then 193130
286278 else if ((prediction == 52))
287279 then 189420
288280 else if ((prediction == 53))
289281 then 185840
290282 else if ((prediction == 54))
291283 then 182400
292284 else if ((prediction == 55))
293285 then 179090
294286 else if ((prediction == 56))
295287 then 175890
296288 else if ((prediction == 57))
297289 then 172800
298290 else if ((prediction == 58))
299291 then 169820
300292 else if ((prediction == 59))
301293 then 166940
302294 else if ((prediction == 60))
303295 then 164160
304296 else if ((prediction == 61))
305297 then 161470
306298 else if ((prediction == 62))
307299 then 158870
308300 else if ((prediction == 63))
309301 then 156340
310302 else if ((prediction == 64))
311303 then 153900
312304 else if ((prediction == 65))
313305 then 151530
314306 else if ((prediction == 66))
315307 then 149240
316308 else if ((prediction == 67))
317309 then 147010
318310 else if ((prediction == 68))
319311 then 144850
320312 else if ((prediction == 69))
321313 then 142750
322314 else if ((prediction == 70))
323315 then 140710
324316 else if ((prediction == 71))
325317 then 138730
326318 else if ((prediction == 72))
327319 then 136800
328320 else if ((prediction == 73))
329321 then 134930
330322 else if ((prediction == 74))
331323 then 133100
332324 else if ((prediction == 75))
333325 then 131330
334326 else if ((prediction == 76))
335327 then 129600
336328 else if ((prediction == 77))
337329 then 127920
338330 else if ((prediction == 78))
339331 then 126280
340332 else if ((prediction == 79))
341333 then 124680
342334 else if ((prediction == 80))
343335 then 123120
344336 else if ((prediction == 81))
345337 then 121600
346338 else if ((prediction == 82))
347339 then 120120
348340 else if ((prediction == 83))
349341 then 118670
350342 else if ((prediction == 84))
351343 then 117260
352344 else if ((prediction == 85))
353345 then 115880
354346 else if ((prediction == 86))
355347 then 114530
356348 else if ((prediction == 87))
357349 then 113210
358350 else if ((prediction == 88))
359351 then 111930
360352 else if ((prediction == 89))
361353 then 110670
362354 else if ((prediction == 90))
363355 then 109440
364356 else if ((prediction == 91))
365357 then 108240
366358 else if ((prediction == 92))
367359 then 107060
368360 else if ((prediction == 93))
369361 then 105910
370362 else if ((prediction == 94))
371363 then 104780
372364 else if ((prediction == 95))
373365 then 103680
374366 else if ((prediction == 96))
375367 then 103680
376368 else 100000
377369 else if ((rollType == ROLLOVER))
378370 then if ((prediction == 4))
379371 then 103680
380372 else if ((prediction == 5))
381373 then 103680
382374 else if ((prediction == 6))
383375 then 104780
384376 else if ((prediction == 7))
385377 then 105910
386378 else if ((prediction == 8))
387379 then 107060
388380 else if ((prediction == 9))
389381 then 108240
390382 else if ((prediction == 10))
391383 then 109440
392384 else if ((prediction == 11))
393385 then 110670
394386 else if ((prediction == 12))
395387 then 111930
396388 else if ((prediction == 13))
397389 then 113210
398390 else if ((prediction == 14))
399391 then 114530
400392 else if ((prediction == 15))
401393 then 115880
402394 else if ((prediction == 16))
403395 then 117260
404396 else if ((prediction == 17))
405397 then 118670
406398 else if ((prediction == 18))
407399 then 120120
408400 else if ((prediction == 19))
409401 then 121600
410402 else if ((prediction == 20))
411403 then 123120
412404 else if ((prediction == 21))
413405 then 124680
414406 else if ((prediction == 22))
415407 then 126280
416408 else if ((prediction == 23))
417409 then 127920
418410 else if ((prediction == 24))
419411 then 129600
420412 else if ((prediction == 25))
421413 then 131330
422414 else if ((prediction == 26))
423415 then 133100
424416 else if ((prediction == 27))
425417 then 134930
426418 else if ((prediction == 28))
427419 then 136800
428420 else if ((prediction == 29))
429421 then 138730
430422 else if ((prediction == 30))
431423 then 140710
432424 else if ((prediction == 31))
433425 then 142750
434426 else if ((prediction == 32))
435427 then 144850
436428 else if ((prediction == 33))
437429 then 147010
438430 else if ((prediction == 34))
439431 then 149240
440432 else if ((prediction == 35))
441433 then 151530
442434 else if ((prediction == 36))
443435 then 153900
444436 else if ((prediction == 37))
445437 then 156340
446438 else if ((prediction == 38))
447439 then 158870
448440 else if ((prediction == 39))
449441 then 161470
450442 else if ((prediction == 40))
451443 then 164160
452444 else if ((prediction == 41))
453445 then 166940
454446 else if ((prediction == 42))
455447 then 169820
456448 else if ((prediction == 43))
457449 then 172800
458450 else if ((prediction == 44))
459451 then 175890
460452 else if ((prediction == 45))
461453 then 179090
462454 else if ((prediction == 46))
463455 then 185840
464456 else if ((prediction == 47))
465457 then 185840
466458 else if ((prediction == 48))
467459 then 189420
468460 else if ((prediction == 49))
469461 then 193130
470462 else if ((prediction == 50))
471463 then 197000
472464 else if ((prediction == 51))
473465 then 201020
474466 else if ((prediction == 52))
475467 then 205200
476468 else if ((prediction == 53))
477469 then 209570
478470 else if ((prediction == 54))
479471 then 214130
480472 else if ((prediction == 55))
481473 then 218880
482474 else if ((prediction == 56))
483475 then 223860
484476 else if ((prediction == 57))
485477 then 229060
486478 else if ((prediction == 58))
487479 then 234520
488480 else if ((prediction == 59))
489481 then 240240
490482 else if ((prediction == 60))
491483 then 246250
492484 else if ((prediction == 61))
493485 then 252560
494486 else if ((prediction == 62))
495487 then 259210
496488 else if ((prediction == 63))
497489 then 259210
498490 else if ((prediction == 64))
499491 then 273610
500492 else if ((prediction == 65))
501493 then 281420
502494 else if ((prediction == 66))
503495 then 289700
504496 else if ((prediction == 67))
505497 then 298480
506498 else if ((prediction == 68))
507499 then 307810
508500 else if ((prediction == 69))
509501 then 317740
510502 else if ((prediction == 70))
511503 then 328330
512504 else if ((prediction == 71))
513505 then 339650
514506 else if ((prediction == 72))
515507 then 351780
516508 else if ((prediction == 73))
517509 then 364810
518510 else if ((prediction == 74))
519511 then 378840
520512 else if ((prediction == 75))
521513 then 394000
522514 else if ((prediction == 76))
523515 then 410410
524516 else if ((prediction == 77))
525517 then 428260
526518 else if ((prediction == 78))
527519 then 447720
528520 else if ((prediction == 79))
529521 then 469040
530522 else if ((prediction == 80))
531523 then 492500
532524 else if ((prediction == 81))
533525 then 518420
534526 else if ((prediction == 82))
535527 then 547220
536528 else if ((prediction == 83))
537529 then 579410
538530 else if ((prediction == 84))
539531 then 615620
540532 else if ((prediction == 85))
541533 then 656660
542534 else if ((prediction == 86))
543535 then 703570
544536 else if ((prediction == 87))
545537 then 757690
546538 else if ((prediction == 88))
547539 then 820830
548540 else if ((prediction == 89))
549541 then 895450
550542 else if ((prediction == 90))
551543 then 985000
552544 else if ((prediction == 91))
553545 then 1094440
554546 else if ((prediction == 92))
555547 then 1231250
556548 else if ((prediction == 93))
557549 then 1407140
558550 else if ((prediction == 94))
559551 then 1641660
560552 else if ((prediction == 95))
561553 then 1970000
562554 else if ((prediction == 96))
563555 then 2462500
564556 else if ((prediction == 97))
565557 then 3283330
566558 else if ((prediction == 98))
567559 then 4925000
568560 else if ((prediction == 99))
569561 then 9850000
570562 else 100000
571563 else 100000
572564
573565
574566 func diceWin (rollType,prediction,rand) = if ((rollType == ROLLUNDER))
575567 then if ((prediction >= rand))
576568 then true
577569 else false
578570 else if ((rollType == ROLLOVER))
579571 then if ((rand >= prediction))
580572 then true
581573 else false
582574 else false
583575
584576
585577 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
586578 then true
587579 else (amount > BETMAX))
588580 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / 100000000))) + " maxBet=") + toString((BETMAX / 100000000))))
589581 else if (if ((rollType != ROLLUNDER))
590582 then (rollType != ROLLOVER)
591583 else false)
592584 then throw("Invalid Roll type, try with OVER or UNDER")
593585 else if (if ((PREDICTIONMIN > prediction))
594586 then true
595587 else (prediction > PREDICTIONMAX))
596588 then throw(((("Prediction is out of the condition: " + toString(PREDICTIONMIN)) + " <= predction <= ") + toString(PREDICTIONMAX)))
597589 else {
598590 let multi = Multiplier(prediction, rollType)
599591 ((((amount * multi) / 100000) * (100 - (FEEWAVESBET + FEEMCAFEE))) / 100)
600592 }
601593
602594
603595 @Callable(i)
604596 func playDice (rollType,prediction) = {
605597 let gameId = toBase58String(i.transactionId)
606598 let gameIdUsed = isDefined(getString(this, gameId))
607599 let payment = extract(i.payment)
608600 let feeAssetId = isDefined(i.feeAssetId)
609601 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
610602 let playerBalance = wavesBalance(i.caller)
611603 if ((100000 > playerBalance))
612604 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
613605 else if ((payment.assetId != WBET))
614606 then throw("Bet amount must be in Wbet. Game aborted.")
615607 else if (feeAssetId)
616608 then throw("Transaction's fee must be in Waves. Game aborted.")
617609 else if (gameIdUsed)
618610 then throw("Passed gameId had been used before. Game aborted.")
619611 else {
620612 let newGameNum = IncrementGameNum()
621613 let playerPubKey58 = toBase58String(i.callerPublicKey)
622614 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
623615 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETWAVESBET, ((payment.amount * FEEWAVESBET) / 100), WBET), ScriptTransfer(this, 500000, unit)]))
624616 }
625617 }
626618
627619
628620
629621 @Callable(i)
630622 func withdraw (gameId,rsaSign) = {
631623 let gameDataList = ExtractGameDataList(gameId)
632624 let gameState = gameDataList[IdxGameState]
633625 let predction = parseIntValue(gameDataList[IdxPrediction])
634626 let rollType = gameDataList[IdxRollType]
635627 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
636628 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
637629 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
638630 if ((gameState != STATESUBMITTED))
639631 then throw("Invalid game state for passed gameId. Game aborted.")
640632 else {
641633 let rand = GenerateRandInt(gameId, rsaSign)
642634 let randStr = RandToStr(rand)
643635 if (diceWin(rollType, predction, rand))
644636 then {
645637 let newGameDataStr = FormatGameDataStr(STATEWON, predction, rollType, playerPubKey58, winAmt, randStr)
646638 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr)
647639 }
648640 else {
649641 let newGameDataStr = FormatGameDataStr(STATELOST, predction, rollType, playerPubKey58, winAmt, randStr)
650642 WriteSet([DataEntry(gameId, newGameDataStr)])
651643 }
652644 }
653645 }
654646
655647

github/deemru/w8io/169f3d6 
96.15 ms