tx · C6w8hyP6SH3cQpkbtTmBKK5c9TuxXkRbtkJzzWWRqpbv

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.10.04 14:23 [704911] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "C6w8hyP6SH3cQpkbtTmBKK5c9TuxXkRbtkJzzWWRqpbv", "fee": 1500000, "feeAssetId": null, "timestamp": 1570188235850, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "4EyMw43fLUKupnt11uEVnm3QCyfgbcMB9a77ZVD3cWzW5Ak8SX493weq8AKucmUVmLjVWTBmnRSX9JB6nAvhbaF4" ], "script": "base64:AAIDAAAAAAAAAD8IARIDCgEIEgMKAQgSBQoDAQEIEgQKAggBEgQKAggIEgQKAggBEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgAAAAkAAAAAANkYXkAAAAAAAAABaAAAAAABVdBVkVTBQAAAAR1bml0AAAAAAR3QlRDAQAAACBs+mr/xe2qjAt/tSqT0qIML4KC23R6BIxT+/0TH3Og/wAAAAAEd0VVUgEAAAAg7BZhBF97kSFBBjs38+fX1Pjz08YOqoCX85C/0PoVupkAAAAABHdVU0QBAAAAIN0cvQHwz3UFMHgHsqi2OJjRRd1cH7ozWuNAb/pmWXD9AAAAAAlzdGF0ZU9wZW4CAAAABk9wZW5lZAAAAAAOc3RhdGVTdWdnZXN0ZWQCAAAACVN1Z2dlc3RlZAAAAAALc3RhdGVDYW5jZWwCAAAACENhbmNlbGVkAAAAAA9zdGF0ZUluUHJvZ3Jlc3MCAAAACkluUHJvZ3Jlc3MAAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAABNXYWl0Rm9yQ29uZmlybWF0aW9uAAAAAA1zdGF0ZUNvbXBsZXRlAgAAAAlDb21wbGV0ZWQAAAAADHN0YXRlRGlzcHV0ZQIAAAAHRGlzcHV0ZQAAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQCAAAAD0Rpc3B1dGVSZXNvbHZlZAAAAAAGY2xpZW50AgAAAANDTVIAAAAACmZyZWVsYW5jZXICAAAAAkZMAAAAAAthbWJhc3NhZG9yMQEAAAABAAAAAAALYW1iYXNzYWRvcjIBAAAAAQAAAAAAC2FtYmFzc2Fkb3IzAQAAAAEAAAAAAAthbWJhc3NhZG9yNAEAAAABAAAAAAALYW1iYXNzYWRvcjUBAAAAAQABAAAAEEF1Y3Rpb25JZERhdGFLZXkAAAABAAAACWF1Y3Rpb25JZAkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9BdWN0aW9uRGF0YQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABAAAAEGF1Y3Rpb25Bc3NldE5hbWUDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAABVdBVkVTBQAAAAVXQVZFUwMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADQlRDBQAAAAR3QlRDAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANFVVIFAAAABHdFVVIDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA1VTRAUAAAAEd1VTRAkAAAIAAAABAgAAABJJbmNvcnJlY3QgQXNzZXQgSWQBAAAACXRpbWVDaGVjawAAAAMAAAALY3VycmVudFRpbWUAAAAJc3RhcnRUaW1lAAAADmV4cGlyYXRpb25UaW1lCQAAZgAAAAIJAABlAAAAAgUAAAALY3VycmVudFRpbWUFAAAACXN0YXJ0VGltZQUAAAAOZXhwaXJhdGlvblRpbWUBAAAADmJpZEFtb3VudENoZWNrAAAAAgAAAAZhbW91bnQAAAAMYXVjdGlvblByaWNlAwkAAGYAAAACBQAAAAZhbW91bnQFAAAADGF1Y3Rpb25QcmljZQkAAAIAAAABAgAAADNCaWQgYW1vdW50IG11c3QgYmUgbG93ZXIgb3IgZXF1YWwgdGhhbiBhdWN0aW9uUHJpY2UFAAAABmFtb3VudAEAAAAWaW5jcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIAAAAMcG10QXNzZXROYW1lAAAADGF1Y3Rpb25QcmljZQQAAAAPa2V5RnJlZXplZEZ1bmRzCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAQAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBAAAAAckbWF0Y2gwBQAAAA9rZXlGcmVlemVkRnVuZHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAkAAGQAAAACBQAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UFAAAADGF1Y3Rpb25QcmljZQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIAAAAMcG10QXNzZXROYW1lAAAADGF1Y3Rpb25QcmljZQQAAAAPa2V5RnJlZXplZEZ1bmRzCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAQAAAAVY3VycmVudEZyZWV6ZWRCYWxhbmNlBAAAAAckbWF0Y2gwBQAAAA9rZXlGcmVlemVkRnVuZHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAABYQkAAGUAAAACBQAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UFAAAADGF1Y3Rpb25QcmljZQMJAABnAAAAAgUAAAABYQAAAAAAAAAAAAUAAAABYQkAAAIAAAABAgAAACZGcmVlemVkIGFtb3VudCBjb3VsZG4ndCBiZSBsZXNzIHRoYW4gMAEAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAAAAAEAAAAJY2FsbGVyUHViBAAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJY2FsbGVyUHViAgAAAAtfRnJlZWxhbmNlcgQAAAAHJG1hdGNoMAUAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAljYWxsZXJQdWIJAAACAAAAAQIAAAAjT25seSByZWdpc3RlcmVkIHVzZXJzIGNhbiBtYWtlIGJldHMBAAAAF2NyZWF0ZUF1Y3Rpb25QcmljZUNoZWNrAAAAAQAAAAlwbXRBbW91bnQDCQAAZgAAAAIFAAAACXBtdEFtb3VudAAAAAAAAAAAAAUAAAAJcG10QW1vdW50CQAAAgAAAAECAAAAHEFtb3VudCBtdXN0IGJlIGhpZ2hlciB0aGVuIDABAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEAAAAJYXVjdGlvbklkBAAAAAp2YWx1ZVN0YXRlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUEAAAAByRtYXRjaDAFAAAACnZhbHVlU3RhdGUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABtBdWN0aW9uIFN0YXRlIHdhcyBub3QgZm91bmQBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABAAAACWF1Y3Rpb25JZAQAAAALdmFsdWVDbGllbnQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADl9BdWN0aW9uQ2xpZW50BAAAAAFhBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZUNsaWVudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAHEF1Y3Rpb24gQ2xpZW50IHdhcyBub3QgZm91bmQJAAJZAAAAAQUAAAABYQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEAAAAJYXVjdGlvbklkBAAAABF2YWx1ZUF1Y3Rpb25TdGFydAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0F1Y3Rpb25TdGFydAQAAAAHJG1hdGNoMAUAAAARdmFsdWVBdWN0aW9uU3RhcnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIFN0YXJ0IHRpbWUgd2FzIG5vdCBmb3VuZAEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEAAAAJYXVjdGlvbklkBAAAABR2YWx1ZWF1Y3Rpb25EdXJhdGlvbgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0F1Y3Rpb25EdXJhdGlvbgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVhdWN0aW9uRHVyYXRpb24DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACNBdWN0aW9uIGR1cmF0aW9uIHRpbWUgd2FzIG5vdCBmb3VuZAEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEAAAAJYXVjdGlvbklkBAAAABd2YWx1ZUJsb2Nrc0ZvckV4ZWN1dGlvbgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBAAAAAckbWF0Y2gwBQAAABd2YWx1ZUJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAKkF1Y3Rpb24gam9iIHBlcmZvcm1hbmNlIHRpbWUgd2FzIG5vdCBmb3VuZAEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEAAAAJYXVjdGlvbklkBAAAAA52YWx1ZUFzc2V0TmFtZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAKX0Fzc2V0TmFtZQQAAAAHJG1hdGNoMAUAAAAOdmFsdWVBc3NldE5hbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGFzc2V0IG5hbWUgd2FzIG5vdCBmb3VuZAEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQAAAAlhdWN0aW9uSWQEAAAACnZhbHVlUHJpY2UJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9QcmljZQQAAAAHJG1hdGNoMAUAAAAKdmFsdWVQcmljZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAG0F1Y3Rpb24gcHJpY2Ugd2FzIG5vdCBmb3VuZAEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABAAAACWF1Y3Rpb25JZAQAAAALdmFsdWVDbGllbnQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIEAAAAAWEEAAAAByRtYXRjaDAFAAAAC3ZhbHVlQ2xpZW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAcQXVjdGlvbiBDbGllbnQgd2FzIG5vdCBmb3VuZAkAAlkAAAABBQAAAAFhAAAACwAAAAFpAQAAABBmcmVlbGFuY2VyU2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAtfRnJlZWxhbmNlcgMJAQAAAAlpc0RlZmluZWQAAAABBQAAABFhbHJlYWR5UmVnaXN0ZXJlZAkAAAIAAAABAgAAABdVc2VyIGFscmVhZHkgcmVnaXN0ZXJlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAtfRnJlZWxhbmNlcgUAAAAEaW5mbwUAAAADbmlsAAAAAWkBAAAADGNsaWVudFNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAHX0NsaWVudAMJAQAAAAlpc0RlZmluZWQAAAABBQAAABFhbHJlYWR5UmVnaXN0ZXJlZAkAAAIAAAABAgAAABdVc2VyIGFscmVhZHkgcmVnaXN0ZXJlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50BQAAAARpbmZvBQAAAANuaWwAAAABaQEAAAANY3JlYXRlQXVjdGlvbgAAAAMAAAAQam9iRXhlY3V0aW9uRGF5cwAAABNhdWN0aW9uRHVyYXRpb25EYXlzAAAAC2F1Y3Rpb25JbmZvBAAAAAlhdWN0aW9uSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlwbXRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50BAAAAAxhdWN0aW9uUHJpY2UJAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEFAAAACXBtdEFtb3VudAQAAAAMYXVjdGlvblN0YXJ0BQAAAAZoZWlnaHQEAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkAAGgAAAACBQAAABNhdWN0aW9uRHVyYXRpb25EYXlzBQAAAANkYXkEAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkAAGgAAAACBQAAABBqb2JFeGVjdXRpb25EYXlzBQAAAANkYXkEAAAADHBtdEFzc2V0TmFtZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAIAAAAFV0FWRVMDCQAAAAAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAEd0JUQwIAAAADQlRDAwkAAAAAAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABHdFVVICAAAAA0VVUgMJAAAAAAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAR3VVNEAgAAAANVU0QJAAACAAAAAQIAAAAUQXNzZXRJZCBpcyBpbmNvcnJlY3QEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWaW5jcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAADHBtdEFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAlzdGF0ZU9wZW4JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfSW5mbwUAAAALYXVjdGlvbkluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5fQXVjdGlvbkNsaWVudAUAAAANYXVjdGlvbkNsaWVudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9BdWN0aW9uU3RhcnQFAAAADGF1Y3Rpb25TdGFydAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9BdWN0aW9uRHVyYXRpb24FAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAD19Kb2JQZXJmb3JtYW5jZQUAAAASYmxvY2tzRm9yRXhlY3V0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAKX0Fzc2V0TmFtZQUAAAAMcG10QXNzZXROYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAAAAAFpAQAAAAdtYWtlQmlkAAAAAgAAAAlhdWN0aW9uSWQAAAAGYW1vdW50BAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAdiZXRUaW1lBQAAAAZoZWlnaHQEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAAAAAEFAAAACWNhbGxlclB1YgQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAJYmlkQW1vdW50CQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACBQAAAAZhbW91bnQFAAAADGF1Y3Rpb25QcmljZQQAAAARYXVjdGlvblRpbWVpc092ZXIJAQAAAAl0aW1lQ2hlY2sAAAADBQAAAAdiZXRUaW1lBQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABF2YWx1ZUxvd2VzdEJpZGRlcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgQAAAAHJG1hdGNoMAUAAAARdmFsdWVMb3dlc3RCaWRkZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACNBdWN0aW9uIGxvd2VzdCBiaWRkZXIgd2FzIG5vdCBmb3VuZAQAAAAPbmV3QXVjdGlvblByaWNlBAAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAPbmV3QXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAD25ld0F1Y3Rpb25QcmljZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1uZXdGcmVlbGFuY2VyBQAAAAliaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAAJY2FsbGVyUHViBQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIEAAAADGxvd2VzdEJpZGRlcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgQAAAAHJG1hdGNoMAUAAAAMbG93ZXN0QmlkZGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAjQXVjdGlvbiBsb3dlc3QgYmlkZGVyIHdhcyBub3QgZm91bmQEAAAAEm5ld0xvd2VzdEJpZGRlclB1YgQAAAAVdmFsdWVDdXJyZW50TG93ZXN0QmlkCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViBAAAABBjdXJyZW50TG93ZXN0QmlkBAAAAAckbWF0Y2gwBQAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAMJAABmAAAAAgUAAAAQY3VycmVudExvd2VzdEJpZAUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAASbmV3TG93ZXN0QmlkZGVyUHViCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANbmV3RnJlZWxhbmNlcgUAAAAJYmlkQW1vdW50BQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHEluY29ycmVjdCBqb2JJZCBzdGF0ZS4gTm93OiAFAAAADGF1Y3Rpb25TdGF0ZQIAAAALLCBtdXN0IGJlOiAFAAAACXN0YXRlT3BlbgIAAAAEIG9yIAUAAAAOc3RhdGVTdWdnZXN0ZWQAAAABaQEAAAAQY2hvb3NlRnJlZWxhbmNlcgAAAAIAAAAJYXVjdGlvbklkAAAADWZyZWVsYW5jZXJQdWIEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAB2JldFRpbWUFAAAABmhlaWdodAQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEUFzc2V0TmFtZVRvQmFzZTU4AAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAATZnJlZWxhbmNlckJpZEFtb3VudAQAAAAQa2V5RnJlZWxhbmNlckJpZAkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADWZyZWVsYW5jZXJQdWIEAAAAEXZhbHVlRnJlZWxhY2VyQmlkCQAEGgAAAAIFAAAABHRoaXMFAAAAEGtleUZyZWVsYW5jZXJCaWQEAAAAByRtYXRjaDAFAAAAEXZhbHVlRnJlZWxhY2VyQmlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAeRnJlZWxhbmNlcidzIGJldCB3YXMgbm90IGZvdW5kBAAAABFhdWN0aW9uVGltZWlzT3ZlcgkBAAAACXRpbWVDaGVjawAAAAMFAAAAB2JldFRpbWUFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDBQAAABFhdWN0aW9uVGltZWlzT3ZlcgMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4EAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA1hdWN0aW9uQ2xpZW50CQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAOZEFwcENvbW1pc3Npb24FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAARdmFsdWVMb3dlc3RCaWRkZXIJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9Mb3dlc3RCaWRkZXJQdWIEAAAAByRtYXRjaDAFAAAAEXZhbHVlTG93ZXN0QmlkZGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAjQXVjdGlvbiBsb3dlc3QgYmlkZGVyIHdhcyBub3QgZm91bmQEAAAAD25ld0F1Y3Rpb25QcmljZQQAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIEAAAAByRtYXRjaDAFAAAAFHZhbHVlTmV3QXVjdGlvblByaWNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAgQXVjdGlvbiBsb3dlc3QgYmlkIHdhcyBub3QgZm91bmQEAAAAEGFtb3VudERpZmZlcmVuY2UJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA9uZXdBdWN0aW9uUHJpY2UEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAAA9uZXdBdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAUAAAAQYW1vdW50RGlmZmVyZW5jZQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBhdWN0aW9uIHN0YXRlBAAAABBzZXROZXdGcmVlbGFuY2VyBAAAAA1uZXdGcmVlbGFuY2VyCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1mcmVlbGFuY2VyUHViBAAAAAckbWF0Y2gwBQAAAA1uZXdGcmVlbGFuY2VyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAADWZyZWVsYW5jZXJQdWIJAAACAAAAAQIAAAAeRXJyb3I6IEluY29ycmVjdCBmcmVlbGFuY2VyUHViBAAAAA9uZXdBdWN0aW9uUHJpY2UEAAAADWZyZWVsYW5jZXJCaWQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADWZyZWVsYW5jZXJQdWIEAAAAByRtYXRjaDAFAAAADWZyZWVsYW5jZXJCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACNBdWN0aW9uIGxvd2VzdCBiaWRkZXIgd2FzIG5vdCBmb3VuZAQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAABBzZXROZXdGcmVlbGFuY2VyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAAA9uZXdBdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGQAAAACBQAAABBhbW91bnREaWZmZXJlbmNlAAAAAAAAAAABBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAtT25seSBhdWN0aW9uIGN1c3RvbWVyIGNhbiBjaG9vc2UgYSBmcmVlbGFuY2VyAAAAAWkBAAAAFWluY3JlYXNlRXhlY3V0aW9uVGltZQAAAAIAAAAJYXVjdGlvbklkAAAADWV4ZWN1dGlvbkRheXMEAAAABmNhbGxlcgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABduZXdBdWN0aW9uRXhlY3V0aW9uVGltZQQAAAAcbmV3QXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkAAGgAAAACBQAAAA1leGVjdXRpb25EYXlzBQAAAANkYXkDCQAAZgAAAAIFAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24FAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24FAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAAACAAAAAQIAAAA4TmV3IGV4ZWN1dGlvbiB0aW1lIG11c3QgbW9yZSB0aGFuIGN1cnJlbnQgZXhlY3V0aW9uIHRpbWUDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAANYXVjdGlvbkNsaWVudAMDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UFAAAAF25ld0F1Y3Rpb25FeGVjdXRpb25UaW1lBQAAAANuaWwJAAACAAAAAQIAAAAPSW5jb3JyZWN0IHN0YXRlCQAAAgAAAAECAAAAJ09ubHkgQ2xpZW50IGNhbiBpbmNyZWFzZSBleGVjdXRpb24gdGltZQAAAAFpAQAAAA1jYW5jZWxBdWN0aW9uAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFhbW91bnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UEAAAADmNhbGxlcklzQ2xpZW50AwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQGCQAAAgAAAAECAAAALkF1Y3Rpb24gY2FuIGJlIGNhbmNlbGVkIG9ubHkgYnkgYXVjdGlvbiBvd25lci4DBQAAAA5jYWxsZXJJc0NsaWVudAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA1hdWN0aW9uQ2xpZW50BQAAABFhbW91bnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAAGEluY29ycmVjdCBhdWN0aW9uIHN0YXRlLgkAAAIAAAABAgAAAB5Pbmx5IENsaWVudCBjYW4gY2FuY2VsIGF1Y3Rpb24AAAABaQEAAAALb3BlbkRpc3B1dGUAAAABAAAACWF1Y3Rpb25JZAQAAAAGY2FsbGVyCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAMDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkCQAAAgAAAAECAAAAK0luY29ycmVjdCBhdWN0aW9uIHN0YXRlIGZvciBkaXNwdXRlIG9wZW5pbmcDAwkAAAAAAAACBQAAAAZjYWxsZXIFAAAADWF1Y3Rpb25DbGllbnQGCQAAAAAAAAIFAAAABmNhbGxlcgUAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMAAAAAAAAAAAAFAAAAA25pbAkAAAIAAAABAgAAAC1Pbmx5IGN1c3RvbWVyIGFuZCBmcmVlbGFuY2VyIGNhbiBvcGVuIGRpc3B1dGUAAAABaQEAAAALdm90ZURpc3B1dGUAAAACAAAACWF1Y3Rpb25JZAAAAAR2b3RlBAAAAAljYWxsZXJQdWIJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAApjb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAABJjYWxsZXJJc0FtYmFzc2Fkb3IDAwMDAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3IxBgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3IyBgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3IzBgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3I0BgkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAC2FtYmFzc2Fkb3I1CQACWAAAAAEFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAC1Pbmx5IGRlZmluZWQgYW1iYXNzYWRvcnMgY2FuIHZvdGUgaW4gZGlzcHV0ZXMEAAAAB25ld1ZvdGUDAwkAAAAAAAACBQAAAAR2b3RlBQAAAAZjbGllbnQGCQAAAAAAAAIFAAAABHZvdGUFAAAACmZyZWVsYW5jZXIFAAAABHZvdGUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAcVm90ZSBpcyBpbmNvcnJlY3QuIE11c3QgYmU6IAUAAAAGY2xpZW50AgAAAAQgb3IgBQAAAApmcmVlbGFuY2VyBAAAAAhuZXdWb3RlcgQAAAAIa2V5Vm90ZXIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAASY2FsbGVySXNBbWJhc3NhZG9yBAAAAAp2YWx1ZVZvdGVyCQAEHQAAAAIFAAAABHRoaXMFAAAACGtleVZvdGVyBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVZvdGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAJAAACAAAAAQIAAAASVXNlciBhbHJlYWR5IHZvdGVkBQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IEAAAAC3ZvdGVzTnVtYmVyBAAAABB2YWx1ZVZvdGVzTnVtYmVyCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzBAAAAAckbWF0Y2gwBQAAABB2YWx1ZVZvdGVzTnVtYmVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAZVm90ZXNOdW1iZXIgd2FzIG5vdCBmb3VuZAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAxzdGF0ZURpc3B1dGUDCQAAAAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAAEBAAAAA1kaXNwdXRlV2lubmVyBAAAAA9hbWJhc3NhZG9yMVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3IxBAAAAA9hbWJhc3NhZG9yMlZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3IyBAAAAA9hbWJhc3NhZG9yM1ZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3IzBAAAAA9hbWJhc3NhZG9yNFZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3I0BAAAAA9hbWJhc3NhZG9yNVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfCQACWAAAAAEFAAAAC2FtYmFzc2Fkb3I1BAAAAAJ2MQMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjFWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnYyAwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yMlZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjMDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3IzVm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2NAMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjRWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnY1AwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yNVZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALY3VycmVudFZvdGUDCQAAAAAAAAIFAAAAB25ld1ZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAOdm90ZXNGb3JDbGllbnQJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAJ2MQUAAAACdjIFAAAAAnYzBQAAAAJ2NAUAAAACdjUFAAAAC2N1cnJlbnRWb3RlAwkAAGYAAAACBQAAAA52b3Rlc0ZvckNsaWVudAAAAAAAAAAAAgUAAAANYXVjdGlvbkNsaWVudAUAAAARYXVjdGlvbkZyZWVsYW5jZXIEAAAAEnBheW1lbnRXaXRob3V0Q29tbQMJAAAAAAAAAgUAAAANZGlzcHV0ZVdpbm5lcgUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAACmNvbW1pc3Npb24JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlCQAAaAAAAAIFAAAACmNvbW1pc3Npb24AAAAAAAAAAAIEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzCQAAZAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IFAAAAB25ld1ZvdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANZGlzcHV0ZVdpbm5lcgUAAAAScGF5bWVudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzCQAAZAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAAEmNhbGxlcklzQW1iYXNzYWRvcgUAAAAHbmV3Vm90ZQUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgIAAAAaSW5jb3JyZWN0IHN0YXRlLiBNdXN0IGJlOiAFAAAADHN0YXRlRGlzcHV0ZQAAAAFpAQAAAAx3b3JrSGFuZE92ZXIAAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uU3RhcnQJAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAALY3VycmVudFRpbWUFAAAABmhlaWdodAQAAAASZnJlZWxhbmNlclB1YkNoZWNrAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBQAAAAljYWxsZXJQdWIJAAACAAAAAQIAAAA0T25seSBhIGZyZWVsYW5jZXIgY2FuIGluZGljYXRlIHRoYXQgdGhlIHdvcmsgaXMgZG9uZQQAAAAKdGltZUlzT3ZlcgkAAGYAAAACCQAAZQAAAAIFAAAAC2N1cnJlbnRUaW1lBQAAAAxhdWN0aW9uU3RhcnQFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24DCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzAwUAAAAKdGltZUlzT3ZlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAMc3RhdGVEaXNwdXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwIAAAABMAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQUAAAADbmlsCQAAAgAAAAECAAAAGkF1Y3Rpb24gc3RhdGUgaXMgaW5jb3JyZWN0AAAAAWkBAAAACmFjY2VwdFdvcmsAAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWFtb3VudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAOZEFwcENvbW1pc3Npb24EAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAJbmV3UmF0aW5nBAAAAAt2YWx1ZVJhdGluZwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAJYAAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAB19SYXRpbmcEAAAADWN1cnJlbnRSYXRpbmcEAAAAByRtYXRjaDAFAAAAC3ZhbHVlUmF0aW5nAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAJAABkAAAAAgUAAAANY3VycmVudFJhdGluZwAAAAAAAAAAAQMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAA1hdWN0aW9uQ2xpZW50AwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAEXN0YXRlV2FpdDRDb25maXJtCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAANc3RhdGVDb21wbGV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQACWAAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBQAAAAluZXdSYXRpbmcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXIFAAAAEWFtb3VudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAABpJbmNvcnJlY3Qgc3RhdGUuIE11c3QgYmU6IAUAAAARc3RhdGVXYWl0NENvbmZpcm0JAAACAAAAAQIAAAArT25seSBhdWN0aW9uIGN1c3RvbWVyIGNhbiB1c2UgdGhpcyBmdW5jdGlvbgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAANzdHgFAAAAByRtYXRjaDAGBwdkAuMR", "chainId": 84, "height": 704911, "spentComplexity": 0 } View: original | compacted Prev: G6XrdpuPoXrMGiysYoYPG92eSn1A33JJ3Bk4UHeYA7fr Next: FDcMfpAQ1jF39uAp6MM51KpjUaxrdWKAcp37KEz2XRqg Diff:
OldNewDifferences
5858 func y (z,A,B) = ((z - A) > B)
5959
6060
61-func C (D,E) = {
62- let F = getInteger(this, (D + "_Freezed"))
63- let G = {
64- let H = F
65- if ($isInstanceOf(H, "Int"))
61+func C (D,E) = if ((D > E))
62+ then throw("Bid amount must be lower or equal than auctionPrice")
63+ else D
64+
65+
66+func F (G,E) = {
67+ let H = getInteger(this, (G + "_Freezed"))
68+ let I = {
69+ let J = H
70+ if ($isInstanceOf(J, "Int"))
6671 then {
67- let I = H
68- I
72+ let K = J
73+ K
6974 }
7075 else 0
7176 }
72- (G + E)
77+ (I + E)
7378 }
7479
7580
76-func J (D,E) = {
77- let F = getInteger(this, (D + "_Freezed"))
78- let G = {
79- let H = F
80- if ($isInstanceOf(H, "Int"))
81+func L (G,E) = {
82+ let H = getInteger(this, (G + "_Freezed"))
83+ let I = {
84+ let J = H
85+ if ($isInstanceOf(J, "Int"))
8186 then {
82- let I = H
83- I
87+ let K = J
88+ K
8489 }
8590 else 0
8691 }
87- let I = (G - E)
88- if ((I >= 0))
89- then I
92+ let K = (I - E)
93+ if ((K >= 0))
94+ then K
9095 else throw("Freezed amount couldn't be less than 0")
9196 }
9297
9398
94-func K (L) = {
95- let K = getString(this, (L + "_Freelancer"))
96- let H = K
97- if ($isInstanceOf(H, "String"))
99+func M (N) = {
100+ let M = getString(this, (N + "_Freelancer"))
101+ let J = M
102+ if ($isInstanceOf(J, "String"))
98103 then {
99- let I = H
100- L
104+ let K = J
105+ N
101106 }
102107 else throw("Only registered users can make bets")
103108 }
104109
105110
106-func M (N) = if ((N > 0))
107- then N
111+func O (P) = if ((P > 0))
112+ then P
108113 else throw("Amount must be higher then 0")
109114
110115
111-func O (v) = {
112- let P = getString(this, (v + "_State"))
113- let H = P
114- if ($isInstanceOf(H, "String"))
116+func Q (v) = {
117+ let R = getString(this, (v + "_State"))
118+ let J = R
119+ if ($isInstanceOf(J, "String"))
115120 then {
116- let I = H
117- I
121+ let K = J
122+ K
118123 }
119124 else throw("Auction State was not found")
120125 }
121126
122127
123-func Q (v) = {
124- let R = getString(this, (v + "_AuctionClient"))
125- let I = {
126- let H = R
127- if ($isInstanceOf(H, "String"))
128+func S (v) = {
129+ let T = getString(this, (v + "_AuctionClient"))
130+ let K = {
131+ let J = T
132+ if ($isInstanceOf(J, "String"))
128133 then {
129- let I = H
130- I
134+ let K = J
135+ K
131136 }
132137 else throw("Auction Client was not found")
133138 }
134- fromBase58String(I)
139+ fromBase58String(K)
135140 }
136141
137142
138-func S (v) = {
139- let T = getInteger(this, (v + "_AuctionStart"))
140- let H = T
141- if ($isInstanceOf(H, "Int"))
143+func U (v) = {
144+ let V = getInteger(this, (v + "_AuctionStart"))
145+ let J = V
146+ if ($isInstanceOf(J, "Int"))
142147 then {
143- let I = H
144- I
148+ let K = J
149+ K
145150 }
146151 else throw("Auction Start time was not found")
147152 }
148153
149154
150-func U (v) = {
151- let V = getInteger(this, (v + "_AuctionDuration"))
152- let H = V
153- if ($isInstanceOf(H, "Int"))
155+func W (v) = {
156+ let X = getInteger(this, (v + "_AuctionDuration"))
157+ let J = X
158+ if ($isInstanceOf(J, "Int"))
154159 then {
155- let I = H
156- I
160+ let K = J
161+ K
157162 }
158163 else throw("Auction duration time was not found")
159164 }
160165
161166
162-func W (v) = {
163- let X = getInteger(this, (v + "_JobPerformance"))
164- let H = X
165- if ($isInstanceOf(H, "Int"))
167+func Y (v) = {
168+ let Z = getInteger(this, (v + "_JobPerformance"))
169+ let J = Z
170+ if ($isInstanceOf(J, "Int"))
166171 then {
167- let I = H
168- I
172+ let K = J
173+ K
169174 }
170175 else throw("Auction job performance time was not found")
171176 }
172177
173178
174-func Y (v) = {
175- let Z = getString(this, (v + "_AssetName"))
176- let H = Z
177- if ($isInstanceOf(H, "String"))
179+func aa (v) = {
180+ let ab = getString(this, (v + "_AssetName"))
181+ let J = ab
182+ if ($isInstanceOf(J, "String"))
178183 then {
179- let I = H
180- I
184+ let K = J
185+ K
181186 }
182187 else throw("Auction asset name was not found")
183188 }
184189
185190
186-func aa (v) = {
187- let ab = getInteger(this, (v + "_Price"))
188- let H = ab
189- if ($isInstanceOf(H, "Int"))
191+func ac (v) = {
192+ let ad = getInteger(this, (v + "_Price"))
193+ let J = ad
194+ if ($isInstanceOf(J, "Int"))
190195 then {
191- let I = H
192- I
196+ let K = J
197+ K
193198 }
194199 else throw("Auction price was not found")
195200 }
196201
197202
198-func ac (v) = {
199- let R = getString(this, (v + "_HiredFreelancer"))
200- let I = {
201- let H = R
202- if ($isInstanceOf(H, "String"))
203+func ae (v) = {
204+ let T = getString(this, (v + "_HiredFreelancer"))
205+ let K = {
206+ let J = T
207+ if ($isInstanceOf(J, "String"))
203208 then {
204- let I = H
205- I
209+ let K = J
210+ K
206211 }
207212 else throw("Auction Client was not found")
208213 }
209- fromBase58String(I)
214+ fromBase58String(K)
210215 }
211216
212217
213-@Callable(ad)
214-func freelancerSignUp (ae) = {
215- let af = toBase58String(ad.callerPublicKey)
216- let ag = getString(this, (af + "_Freelancer"))
217- if (isDefined(ag))
218+@Callable(af)
219+func freelancerSignUp (ag) = {
220+ let ah = toBase58String(af.callerPublicKey)
221+ let ai = getString(this, (ah + "_Freelancer"))
222+ if (isDefined(ai))
218223 then throw("User already registered")
219- else WriteSet([DataEntry((af + "_Freelancer"), ae)])
224+ else WriteSet([DataEntry((ah + "_Freelancer"), ag)])
220225 }
221226
222227
223228
224-@Callable(ad)
225-func clientSignUp (ae) = {
226- let af = toBase58String(ad.callerPublicKey)
227- let ag = getString(this, (af + "_Client"))
228- if (isDefined(ag))
229+@Callable(af)
230+func clientSignUp (ag) = {
231+ let ah = toBase58String(af.callerPublicKey)
232+ let ai = getString(this, (ah + "_Client"))
233+ if (isDefined(ai))
229234 then throw("User already registered")
230- else WriteSet([DataEntry((af + "_Client"), ae)])
235+ else WriteSet([DataEntry((ah + "_Client"), ag)])
231236 }
232237
233238
234239
235-@Callable(ad)
236-func createAuction (ah,ai,aj) = {
237- let v = toBase58String(ad.transactionId)
238- let ak = toBase58String(ad.callerPublicKey)
239- let al = extract(ad.payment)
240- let N = al.amount
241- let E = M(N)
242- let am = height
243- let an = (ai * a)
244- let ao = (ah * a)
245- let D = if (!(isDefined(al.assetId)))
240+@Callable(af)
241+func createAuction (aj,ak,al) = {
242+ let v = toBase58String(af.transactionId)
243+ let am = toBase58String(af.callerPublicKey)
244+ let an = extract(af.payment)
245+ let P = an.amount
246+ let E = O(P)
247+ let ao = height
248+ let ap = (ak * a)
249+ let aq = (aj * a)
250+ let G = if (!(isDefined(an.assetId)))
246251 then "WAVES"
247- else if ((al.assetId == c))
252+ else if ((an.assetId == c))
248253 then "BTC"
249- else if ((al.assetId == d))
254+ else if ((an.assetId == d))
250255 then "EUR"
251- else if ((al.assetId == e))
256+ else if ((an.assetId == e))
252257 then "USD"
253258 else throw("AssetId is incorrect")
254- let ap = C(D, E)
255- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), aj), DataEntry((v + "_AuctionClient"), ak), DataEntry((v + "_AuctionStart"), am), DataEntry((v + "_AuctionDuration"), an), DataEntry((v + "_JobPerformance"), ao), DataEntry((v + "_AssetName"), D), DataEntry((v + "_Price"), E), DataEntry((D + "_Freezed"), ap)])
259+ let ar = F(G, E)
260+ WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), al), DataEntry((v + "_AuctionClient"), am), DataEntry((v + "_AuctionStart"), ao), DataEntry((v + "_AuctionDuration"), ap), DataEntry((v + "_JobPerformance"), aq), DataEntry((v + "_AssetName"), G), DataEntry((v + "_Price"), E), DataEntry((G + "_Freezed"), ar)])
256261 }
257262
258263
259264
260-@Callable(ad)
261-func makeBid (v,aq) = {
262- let L = toBase58String(ad.callerPublicKey)
263- let ar = height
264- let as = O(v)
265- let ak = Q(v)
265+@Callable(af)
266+func makeBid (v,D) = {
267+ let N = toBase58String(af.callerPublicKey)
268+ let as = height
269+ let at = Q(v)
266270 let am = S(v)
267- let at = U(v)
271+ let ao = U(v)
268272 let au = W(v)
269- let x = Y(v)
270- let E = aa(v)
271- let av = w(x)
272- let aw = K(L)
273- let ax = ((E * 3) / 100)
274- let ap = J(x, E)
275- let ay = y(ar, am, at)
276- if (ay)
277- then if ((as == f))
278- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
279- else if ((as == g))
273+ let av = Y(v)
274+ let x = aa(v)
275+ let E = ac(v)
276+ let aw = w(x)
277+ let ax = M(N)
278+ let ay = ((E * 3) / 100)
279+ let ar = L(x, E)
280+ let az = C(D, E)
281+ let aA = y(as, ao, au)
282+ if (aA)
283+ then if ((at == f))
284+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), (E - ay), aw)]))
285+ else if ((at == g))
280286 then {
281- let az = {
282- let aA = getString(this, (v + "_LowestBidderPub"))
283- let H = aA
284- if ($isInstanceOf(H, "String"))
287+ let aB = {
288+ let aC = getString(this, (v + "_LowestBidderPub"))
289+ let J = aC
290+ if ($isInstanceOf(J, "String"))
285291 then {
286- let I = H
287- I
292+ let K = J
293+ K
288294 }
289295 else throw("Auction lowest bidder was not found")
290296 }
291- let aB = {
292- let aC = getInteger(this, ((v + "_Bid_") + az))
293- let H = aC
294- if ($isInstanceOf(H, "Int"))
297+ let aD = {
298+ let aE = getInteger(this, ((v + "_Bid_") + aB))
299+ let J = aE
300+ if ($isInstanceOf(J, "Int"))
295301 then {
296- let I = H
297- I
302+ let K = J
303+ K
298304 }
299305 else throw("Auction lowest bid was not found")
300306 }
301- let aD = ((E - aB) - ax)
302- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), az), DataEntry((v + "_Price"), aB)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
307+ let aF = ((E - aD) - ay)
308+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aB), DataEntry((v + "_Price"), aD)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), aF, aw)]))
303309 }
304310 else throw("Incorrect auction state")
305- else if ((as == f))
306- then WriteSet([DataEntry(((v + "_Bid_") + aw), aq), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), L)])
307- else if ((as == g))
311+ else if ((at == f))
312+ then WriteSet([DataEntry(((v + "_Bid_") + ax), az), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), N)])
313+ else if ((at == g))
308314 then {
309- let aE = {
310- let aF = getString(this, (v + "_LowestBidderPub"))
311- let H = aF
312- if ($isInstanceOf(H, "String"))
315+ let aG = {
316+ let aH = getString(this, (v + "_LowestBidderPub"))
317+ let J = aH
318+ if ($isInstanceOf(J, "String"))
313319 then {
314- let I = H
315- I
320+ let K = J
321+ K
316322 }
317323 else throw("Auction lowest bidder was not found")
318324 }
319- let aG = {
320- let aH = getInteger(this, ((v + "_Bid_") + aE))
321- let aI = {
322- let H = aH
323- if ($isInstanceOf(H, "Int"))
325+ let aI = {
326+ let aJ = getInteger(this, ((v + "_Bid_") + aG))
327+ let aK = {
328+ let J = aJ
329+ if ($isInstanceOf(J, "Int"))
324330 then {
325- let I = H
326- I
331+ let K = J
332+ K
327333 }
328334 else throw("Auction lowest bid was not found")
329335 }
330- if ((aI > aq))
331- then aw
332- else aE
336+ if ((aK > az))
337+ then ax
338+ else aG
333339 }
334- WriteSet([DataEntry((v + "_LowestBidderPub"), aG), DataEntry(((v + "_Bid_") + aw), aq)])
340+ WriteSet([DataEntry((v + "_LowestBidderPub"), aI), DataEntry(((v + "_Bid_") + ax), az)])
335341 }
336- else throw(((((("Incorrect jobId state. Now: " + as) + ", must be: ") + f) + " or ") + g))
342+ else throw(((((("Incorrect jobId state. Now: " + at) + ", must be: ") + f) + " or ") + g))
337343 }
338344
339345
340346
341-@Callable(ad)
342-func chooseFreelancer (v,aJ) = {
343- let L = extract(ad.callerPublicKey)
344- let ar = height
345- let as = O(v)
346- let ak = Q(v)
347+@Callable(af)
348+func chooseFreelancer (v,aL) = {
349+ let N = extract(af.callerPublicKey)
350+ let as = height
351+ let at = Q(v)
347352 let am = S(v)
348- let at = U(v)
349- let x = Y(v)
350- let E = aa(v)
351- let av = w(x)
352- let aK = {
353- let aL = ((v + "_Bid_") + aJ)
354- let aM = getInteger(this, aL)
355- let H = aM
356- if ($isInstanceOf(H, "Int"))
353+ let ao = U(v)
354+ let au = W(v)
355+ let x = aa(v)
356+ let E = ac(v)
357+ let aw = w(x)
358+ let aM = {
359+ let aN = ((v + "_Bid_") + aL)
360+ let aO = getInteger(this, aN)
361+ let J = aO
362+ if ($isInstanceOf(J, "Int"))
357363 then {
358- let I = H
359- I
364+ let K = J
365+ K
360366 }
361367 else throw("Freelancer's bet was not found")
362368 }
363- let ay = y(ar, am, at)
364- if ((L == ak))
365- then if (ay)
366- then if ((as == f))
369+ let aA = y(as, ao, au)
370+ if ((N == am))
371+ then if (aA)
372+ then if ((at == f))
367373 then {
368- let ap = J(x, E)
369- let ax = ((E * 3) / 100)
370- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
374+ let ar = L(x, E)
375+ let ay = ((E * 3) / 100)
376+ ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), (E - ay), aw)]))
371377 }
372- else if ((as == g))
378+ else if ((at == g))
373379 then {
374- let az = {
375- let aA = getString(this, (v + "_LowestBidderPub"))
376- let H = aA
377- if ($isInstanceOf(H, "String"))
380+ let aB = {
381+ let aC = getString(this, (v + "_LowestBidderPub"))
382+ let J = aC
383+ if ($isInstanceOf(J, "String"))
378384 then {
379- let I = H
380- I
385+ let K = J
386+ K
381387 }
382388 else throw("Auction lowest bidder was not found")
383389 }
384- let aB = {
385- let aC = getInteger(this, ((v + "_Bid_") + az))
386- let H = aC
387- if ($isInstanceOf(H, "Int"))
390+ let aD = {
391+ let aE = getInteger(this, ((v + "_Bid_") + aB))
392+ let J = aE
393+ if ($isInstanceOf(J, "Int"))
388394 then {
389- let I = H
390- I
395+ let K = J
396+ K
391397 }
392398 else throw("Auction lowest bid was not found")
393399 }
394- let aD = (E - aB)
395- let ap = J(x, aD)
396- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), az), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
400+ let aF = (E - aD)
401+ let ar = L(x, aF)
402+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aB), DataEntry((v + "_Price"), aD), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), aF, aw)]))
397403 }
398404 else throw("Incorrect auction state")
399405 else {
400- let aN = {
401- let aw = getInteger(this, ((v + "_Bid_") + aJ))
402- let H = aw
403- if ($isInstanceOf(H, "Int"))
406+ let aP = {
407+ let ax = getInteger(this, ((v + "_Bid_") + aL))
408+ let J = ax
409+ if ($isInstanceOf(J, "Int"))
404410 then {
405- let I = H
406- aJ
411+ let K = J
412+ aL
407413 }
408414 else throw("Error: Incorrect freelancerPub")
409415 }
410- let aB = {
411- let aO = getInteger(this, ((v + "_Bid_") + aJ))
412- let H = aO
413- if ($isInstanceOf(H, "Int"))
416+ let aD = {
417+ let aQ = getInteger(this, ((v + "_Bid_") + aL))
418+ let J = aQ
419+ if ($isInstanceOf(J, "Int"))
414420 then {
415- let I = H
416- I
421+ let K = J
422+ K
417423 }
418424 else throw("Auction lowest bidder was not found")
419425 }
420- let aD = (E - aK)
421- let ap = J(x, aD)
422- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aN), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (aD + 1), av)]))
426+ let aF = (E - aM)
427+ let ar = L(x, aF)
428+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aP), DataEntry((v + "_Price"), aD), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), (aF + 1), aw)]))
423429 }
424430 else throw("Only auction customer can choose a freelancer")
425431 }
426432
427433
428434
429-@Callable(ad)
430-func increaseExecutionTime (v,aP) = {
431- let aQ = extract(ad.callerPublicKey)
432- let as = O(v)
433- let ak = Q(v)
434- let au = W(v)
435- let aR = {
436- let aS = (aP * a)
437- if ((aS > au))
438- then aS
435+@Callable(af)
436+func increaseExecutionTime (v,aR) = {
437+ let aS = extract(af.callerPublicKey)
438+ let at = Q(v)
439+ let am = S(v)
440+ let av = Y(v)
441+ let aT = {
442+ let aU = (aR * a)
443+ if ((aU > av))
444+ then aU
439445 else throw("New execution time must more than current execution time")
440446 }
441- if ((aQ == ak))
442- then if (if (if ((as == f))
447+ if ((aS == am))
448+ then if (if (if ((at == f))
443449 then true
444- else (as == g))
450+ else (at == g))
445451 then true
446- else (as == i))
447- then WriteSet([DataEntry((v + "_JobPerformance"), aR)])
452+ else (at == i))
453+ then WriteSet([DataEntry((v + "_JobPerformance"), aT)])
448454 else throw("Incorrect state")
449455 else throw("Only Client can increase execution time")
450456 }
451457
452458
453459
454-@Callable(ad)
460+@Callable(af)
455461 func cancelAuction (v) = {
456- let L = extract(ad.callerPublicKey)
457- let as = O(v)
458- let ak = Q(v)
459- let x = Y(v)
460- let E = aa(v)
461- let av = w(x)
462- let ax = ((E * 3) / 100)
463- let aT = (E - ax)
464- let ap = J(x, E)
465- let aU = if ((L == ak))
462+ let N = extract(af.callerPublicKey)
463+ let at = Q(v)
464+ let am = S(v)
465+ let x = aa(v)
466+ let E = ac(v)
467+ let aw = w(x)
468+ let ay = ((E * 3) / 100)
469+ let aV = (E - ay)
470+ let ar = L(x, E)
471+ let aW = if ((N == am))
466472 then true
467473 else throw("Auction can be canceled only by auction owner.")
468- if (aU)
469- then if ((as == f))
470- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aT, av)]))
474+ if (aW)
475+ then if ((at == f))
476+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), aV, aw)]))
471477 else throw("Incorrect auction state.")
472478 else throw("Only Client can cancel auction")
473479 }
474480
475481
476482
477-@Callable(ad)
483+@Callable(af)
478484 func openDispute (v) = {
479- let aQ = extract(ad.callerPublicKey)
480- let as = O(v)
481- let ak = Q(v)
482- let aV = ac(v)
483- if (if ((as == f))
485+ let aS = extract(af.callerPublicKey)
486+ let at = Q(v)
487+ let am = S(v)
488+ let aX = ae(v)
489+ if (if ((at == f))
484490 then true
485- else (as == g))
491+ else (at == g))
486492 then throw("Incorrect auction state for dispute opening")
487- else if (if ((aQ == ak))
493+ else if (if ((aS == am))
488494 then true
489- else (aQ == aV))
495+ else (aS == aX))
490496 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0)])
491497 else throw("Only customer and freelancer can open dispute")
492498 }
493499
494500
495501
496-@Callable(ad)
497-func voteDispute (v,aW) = {
498- let L = extract(ad.callerPublicKey)
499- let as = O(v)
500- let ak = Q(v)
501- let x = Y(v)
502- let E = aa(v)
503- let aV = ac(v)
504- let aX = ((E * 3) / 100)
505- let av = w(x)
506- let aY = if (if (if (if (if ((L == p))
502+@Callable(af)
503+func voteDispute (v,aY) = {
504+ let N = extract(af.callerPublicKey)
505+ let at = Q(v)
506+ let am = S(v)
507+ let x = aa(v)
508+ let E = ac(v)
509+ let aX = ae(v)
510+ let aZ = ((E * 3) / 100)
511+ let aw = w(x)
512+ let ba = if (if (if (if (if ((N == p))
507513 then true
508- else (L == q))
514+ else (N == q))
509515 then true
510- else (L == r))
516+ else (N == r))
511517 then true
512- else (L == s))
518+ else (N == s))
513519 then true
514- else (L == t))
515- then toBase58String(L)
520+ else (N == t))
521+ then toBase58String(N)
516522 else throw("Only defined ambassadors can vote in disputes")
517- let aZ = if (if ((aW == n))
523+ let bb = if (if ((aY == n))
518524 then true
519- else (aW == o))
520- then aW
525+ else (aY == o))
526+ then aY
521527 else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
522- let ba = {
523- let bb = ((v + "_DiputeVote_") + aY)
524- let bc = getString(this, bb)
525- let H = bc
526- if ($isInstanceOf(H, "String"))
528+ let bc = {
529+ let bd = ((v + "_DiputeVote_") + ba)
530+ let be = getString(this, bd)
531+ let J = be
532+ if ($isInstanceOf(J, "String"))
527533 then {
528- let I = H
534+ let K = J
529535 throw("User already voted")
530536 }
531- else aY
537+ else ba
532538 }
533- let bd = {
534- let be = getInteger(this, (v + "_DisputeVotes"))
535- let H = be
536- if ($isInstanceOf(H, "Int"))
539+ let bf = {
540+ let bg = getInteger(this, (v + "_DisputeVotes"))
541+ let J = bg
542+ if ($isInstanceOf(J, "Int"))
537543 then {
538- let I = H
539- I
544+ let K = J
545+ K
540546 }
541547 else throw("VotesNumber was not found")
542548 }
543- if ((as == l))
544- then if ((bd == 4))
549+ if ((at == l))
550+ then if ((bf == 4))
545551 then {
546- let bf = {
547- let bg = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
548- let bh = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
549- let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
550- let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
551- let bk = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
552- let bl = if ((bg == n))
553- then 1
554- else 0
555- let bm = if ((bh == n))
556- then 1
557- else 0
552+ let bh = {
553+ let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
554+ let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
555+ let bk = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
556+ let bl = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
557+ let bm = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
558558 let bn = if ((bi == n))
559559 then 1
560560 else 0
564564 let bp = if ((bk == n))
565565 then 1
566566 else 0
567- let bq = if ((aZ == n))
567+ let bq = if ((bl == n))
568568 then 1
569569 else 0
570- let br = (((((bl + bm) + bn) + bo) + bp) + bq)
571- if ((br > 2))
572- then ak
573- else aV
570+ let br = if ((bm == n))
571+ then 1
572+ else 0
573+ let bs = if ((bb == n))
574+ then 1
575+ else 0
576+ let bt = (((((bn + bo) + bp) + bq) + br) + bs)
577+ if ((bt > 2))
578+ then am
579+ else aX
574580 }
575- let bs = if ((bf == ak))
576- then (E - aX)
577- else (E - (aX * 2))
578- let ap = J(x, E)
579- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + aY), aZ), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(bf), bs, av)]))
581+ let bu = if ((bh == am))
582+ then (E - aZ)
583+ else (E - (aZ * 2))
584+ let ar = L(x, E)
585+ ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bf + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + ba), bb), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(bh), bu, aw)]))
580586 }
581- else WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry(((v + "_DiputeVote_") + aY), aZ)])
587+ else WriteSet([DataEntry((v + "_DisputeVotes"), (bf + 1)), DataEntry(((v + "_DiputeVote_") + ba), bb)])
582588 else throw(("Incorrect state. Must be: " + l))
583589 }
584590
585591
586592
587-@Callable(ad)
593+@Callable(af)
588594 func workHandOver (v) = {
589- let L = extract(ad.callerPublicKey)
590- let as = O(v)
591- let am = S(v)
592- let at = U(v)
595+ let N = extract(af.callerPublicKey)
596+ let at = Q(v)
597+ let ao = U(v)
593598 let au = W(v)
594- let aV = ac(v)
599+ let av = Y(v)
600+ let aX = ae(v)
595601 let z = height
596- let bt = if ((L == aV))
597- then L
602+ let bv = if ((N == aX))
603+ then N
598604 else throw("Only a freelancer can indicate that the work is done")
599- let bu = ((z - am) > au)
600- if ((as == i))
601- then if (bu)
605+ let bw = ((z - ao) > av)
606+ if ((at == i))
607+ then if (bw)
602608 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0")])
603609 else WriteSet([DataEntry((v + "_State"), j)])
604610 else throw("Auction state is incorrect")
606612
607613
608614
609-@Callable(ad)
615+@Callable(af)
610616 func acceptWork (v) = {
611- let L = extract(ad.callerPublicKey)
612- let as = O(v)
613- let ak = Q(v)
617+ let N = extract(af.callerPublicKey)
618+ let at = Q(v)
614619 let am = S(v)
615- let at = U(v)
616- let x = Y(v)
617- let E = aa(v)
618- let aV = ac(v)
619- let ax = ((E * 3) / 100)
620- let aT = (E - ax)
621- let av = w(x)
622- let ap = J(x, E)
623- let bv = {
624- let bw = getInteger(this, (toBase58String(aV) + "_Rating"))
625- let bx = {
626- let H = bw
627- if ($isInstanceOf(H, "Int"))
620+ let ao = U(v)
621+ let au = W(v)
622+ let x = aa(v)
623+ let E = ac(v)
624+ let aX = ae(v)
625+ let ay = ((E * 3) / 100)
626+ let aV = (E - ay)
627+ let aw = w(x)
628+ let ar = L(x, E)
629+ let bx = {
630+ let by = getInteger(this, (toBase58String(aX) + "_Rating"))
631+ let bz = {
632+ let J = by
633+ if ($isInstanceOf(J, "Int"))
628634 then {
629- let I = H
630- I
635+ let K = J
636+ K
631637 }
632638 else 0
633639 }
634- (bx + 1)
640+ (bz + 1)
635641 }
636- if ((L == ak))
637- then if ((as == j))
638- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aV) + "_Rating"), bv), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(aV), aT, av)]))
642+ if ((N == am))
643+ then if ((at == j))
644+ then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aX) + "_Rating"), bx), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(aX), aV, aw)]))
639645 else throw(("Incorrect state. Must be: " + j))
640646 else throw("Only auction customer can use this function")
641647 }
642648
643649
644-@Verifier(by)
645-func bz () = if (sigVerify(by.bodyBytes, by.proofs[0], by.senderPublicKey))
650+@Verifier(bA)
651+func bB () = if (sigVerify(bA.bodyBytes, bA.proofs[0], bA.senderPublicKey))
646652 then {
647- let H = by
648- if ($isInstanceOf(H, "TransferTransaction"))
653+ let J = bA
654+ if ($isInstanceOf(J, "TransferTransaction"))
649655 then {
650- let bA = H
656+ let bC = J
651657 true
652658 }
653- else if ($isInstanceOf(H, "SetScriptTransaction"))
659+ else if ($isInstanceOf(J, "SetScriptTransaction"))
654660 then {
655- let bB = H
661+ let bD = J
656662 true
657663 }
658664 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1440
55
66 let b = unit
77
88 let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
99
1010 let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1111
1212 let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
1414 let f = "Opened"
1515
1616 let g = "Suggested"
1717
1818 let h = "Canceled"
1919
2020 let i = "InProgress"
2121
2222 let j = "WaitForConfirmation"
2323
2424 let k = "Completed"
2525
2626 let l = "Dispute"
2727
2828 let m = "DisputeResolved"
2929
3030 let n = "CMR"
3131
3232 let o = "FL"
3333
3434 let p = base58'1'
3535
3636 let q = base58'1'
3737
3838 let r = base58'1'
3939
4040 let s = base58'1'
4141
4242 let t = base58'1'
4343
4444 func u (v) = (v + "_AuctionData")
4545
4646
4747 func w (x) = if ((x == "WAVES"))
4848 then b
4949 else if ((x == "BTC"))
5050 then c
5151 else if ((x == "EUR"))
5252 then d
5353 else if ((x == "USD"))
5454 then e
5555 else throw("Incorrect Asset Id")
5656
5757
5858 func y (z,A,B) = ((z - A) > B)
5959
6060
61-func C (D,E) = {
62- let F = getInteger(this, (D + "_Freezed"))
63- let G = {
64- let H = F
65- if ($isInstanceOf(H, "Int"))
61+func C (D,E) = if ((D > E))
62+ then throw("Bid amount must be lower or equal than auctionPrice")
63+ else D
64+
65+
66+func F (G,E) = {
67+ let H = getInteger(this, (G + "_Freezed"))
68+ let I = {
69+ let J = H
70+ if ($isInstanceOf(J, "Int"))
6671 then {
67- let I = H
68- I
72+ let K = J
73+ K
6974 }
7075 else 0
7176 }
72- (G + E)
77+ (I + E)
7378 }
7479
7580
76-func J (D,E) = {
77- let F = getInteger(this, (D + "_Freezed"))
78- let G = {
79- let H = F
80- if ($isInstanceOf(H, "Int"))
81+func L (G,E) = {
82+ let H = getInteger(this, (G + "_Freezed"))
83+ let I = {
84+ let J = H
85+ if ($isInstanceOf(J, "Int"))
8186 then {
82- let I = H
83- I
87+ let K = J
88+ K
8489 }
8590 else 0
8691 }
87- let I = (G - E)
88- if ((I >= 0))
89- then I
92+ let K = (I - E)
93+ if ((K >= 0))
94+ then K
9095 else throw("Freezed amount couldn't be less than 0")
9196 }
9297
9398
94-func K (L) = {
95- let K = getString(this, (L + "_Freelancer"))
96- let H = K
97- if ($isInstanceOf(H, "String"))
99+func M (N) = {
100+ let M = getString(this, (N + "_Freelancer"))
101+ let J = M
102+ if ($isInstanceOf(J, "String"))
98103 then {
99- let I = H
100- L
104+ let K = J
105+ N
101106 }
102107 else throw("Only registered users can make bets")
103108 }
104109
105110
106-func M (N) = if ((N > 0))
107- then N
111+func O (P) = if ((P > 0))
112+ then P
108113 else throw("Amount must be higher then 0")
109114
110115
111-func O (v) = {
112- let P = getString(this, (v + "_State"))
113- let H = P
114- if ($isInstanceOf(H, "String"))
116+func Q (v) = {
117+ let R = getString(this, (v + "_State"))
118+ let J = R
119+ if ($isInstanceOf(J, "String"))
115120 then {
116- let I = H
117- I
121+ let K = J
122+ K
118123 }
119124 else throw("Auction State was not found")
120125 }
121126
122127
123-func Q (v) = {
124- let R = getString(this, (v + "_AuctionClient"))
125- let I = {
126- let H = R
127- if ($isInstanceOf(H, "String"))
128+func S (v) = {
129+ let T = getString(this, (v + "_AuctionClient"))
130+ let K = {
131+ let J = T
132+ if ($isInstanceOf(J, "String"))
128133 then {
129- let I = H
130- I
134+ let K = J
135+ K
131136 }
132137 else throw("Auction Client was not found")
133138 }
134- fromBase58String(I)
139+ fromBase58String(K)
135140 }
136141
137142
138-func S (v) = {
139- let T = getInteger(this, (v + "_AuctionStart"))
140- let H = T
141- if ($isInstanceOf(H, "Int"))
143+func U (v) = {
144+ let V = getInteger(this, (v + "_AuctionStart"))
145+ let J = V
146+ if ($isInstanceOf(J, "Int"))
142147 then {
143- let I = H
144- I
148+ let K = J
149+ K
145150 }
146151 else throw("Auction Start time was not found")
147152 }
148153
149154
150-func U (v) = {
151- let V = getInteger(this, (v + "_AuctionDuration"))
152- let H = V
153- if ($isInstanceOf(H, "Int"))
155+func W (v) = {
156+ let X = getInteger(this, (v + "_AuctionDuration"))
157+ let J = X
158+ if ($isInstanceOf(J, "Int"))
154159 then {
155- let I = H
156- I
160+ let K = J
161+ K
157162 }
158163 else throw("Auction duration time was not found")
159164 }
160165
161166
162-func W (v) = {
163- let X = getInteger(this, (v + "_JobPerformance"))
164- let H = X
165- if ($isInstanceOf(H, "Int"))
167+func Y (v) = {
168+ let Z = getInteger(this, (v + "_JobPerformance"))
169+ let J = Z
170+ if ($isInstanceOf(J, "Int"))
166171 then {
167- let I = H
168- I
172+ let K = J
173+ K
169174 }
170175 else throw("Auction job performance time was not found")
171176 }
172177
173178
174-func Y (v) = {
175- let Z = getString(this, (v + "_AssetName"))
176- let H = Z
177- if ($isInstanceOf(H, "String"))
179+func aa (v) = {
180+ let ab = getString(this, (v + "_AssetName"))
181+ let J = ab
182+ if ($isInstanceOf(J, "String"))
178183 then {
179- let I = H
180- I
184+ let K = J
185+ K
181186 }
182187 else throw("Auction asset name was not found")
183188 }
184189
185190
186-func aa (v) = {
187- let ab = getInteger(this, (v + "_Price"))
188- let H = ab
189- if ($isInstanceOf(H, "Int"))
191+func ac (v) = {
192+ let ad = getInteger(this, (v + "_Price"))
193+ let J = ad
194+ if ($isInstanceOf(J, "Int"))
190195 then {
191- let I = H
192- I
196+ let K = J
197+ K
193198 }
194199 else throw("Auction price was not found")
195200 }
196201
197202
198-func ac (v) = {
199- let R = getString(this, (v + "_HiredFreelancer"))
200- let I = {
201- let H = R
202- if ($isInstanceOf(H, "String"))
203+func ae (v) = {
204+ let T = getString(this, (v + "_HiredFreelancer"))
205+ let K = {
206+ let J = T
207+ if ($isInstanceOf(J, "String"))
203208 then {
204- let I = H
205- I
209+ let K = J
210+ K
206211 }
207212 else throw("Auction Client was not found")
208213 }
209- fromBase58String(I)
214+ fromBase58String(K)
210215 }
211216
212217
213-@Callable(ad)
214-func freelancerSignUp (ae) = {
215- let af = toBase58String(ad.callerPublicKey)
216- let ag = getString(this, (af + "_Freelancer"))
217- if (isDefined(ag))
218+@Callable(af)
219+func freelancerSignUp (ag) = {
220+ let ah = toBase58String(af.callerPublicKey)
221+ let ai = getString(this, (ah + "_Freelancer"))
222+ if (isDefined(ai))
218223 then throw("User already registered")
219- else WriteSet([DataEntry((af + "_Freelancer"), ae)])
224+ else WriteSet([DataEntry((ah + "_Freelancer"), ag)])
220225 }
221226
222227
223228
224-@Callable(ad)
225-func clientSignUp (ae) = {
226- let af = toBase58String(ad.callerPublicKey)
227- let ag = getString(this, (af + "_Client"))
228- if (isDefined(ag))
229+@Callable(af)
230+func clientSignUp (ag) = {
231+ let ah = toBase58String(af.callerPublicKey)
232+ let ai = getString(this, (ah + "_Client"))
233+ if (isDefined(ai))
229234 then throw("User already registered")
230- else WriteSet([DataEntry((af + "_Client"), ae)])
235+ else WriteSet([DataEntry((ah + "_Client"), ag)])
231236 }
232237
233238
234239
235-@Callable(ad)
236-func createAuction (ah,ai,aj) = {
237- let v = toBase58String(ad.transactionId)
238- let ak = toBase58String(ad.callerPublicKey)
239- let al = extract(ad.payment)
240- let N = al.amount
241- let E = M(N)
242- let am = height
243- let an = (ai * a)
244- let ao = (ah * a)
245- let D = if (!(isDefined(al.assetId)))
240+@Callable(af)
241+func createAuction (aj,ak,al) = {
242+ let v = toBase58String(af.transactionId)
243+ let am = toBase58String(af.callerPublicKey)
244+ let an = extract(af.payment)
245+ let P = an.amount
246+ let E = O(P)
247+ let ao = height
248+ let ap = (ak * a)
249+ let aq = (aj * a)
250+ let G = if (!(isDefined(an.assetId)))
246251 then "WAVES"
247- else if ((al.assetId == c))
252+ else if ((an.assetId == c))
248253 then "BTC"
249- else if ((al.assetId == d))
254+ else if ((an.assetId == d))
250255 then "EUR"
251- else if ((al.assetId == e))
256+ else if ((an.assetId == e))
252257 then "USD"
253258 else throw("AssetId is incorrect")
254- let ap = C(D, E)
255- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), aj), DataEntry((v + "_AuctionClient"), ak), DataEntry((v + "_AuctionStart"), am), DataEntry((v + "_AuctionDuration"), an), DataEntry((v + "_JobPerformance"), ao), DataEntry((v + "_AssetName"), D), DataEntry((v + "_Price"), E), DataEntry((D + "_Freezed"), ap)])
259+ let ar = F(G, E)
260+ WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), al), DataEntry((v + "_AuctionClient"), am), DataEntry((v + "_AuctionStart"), ao), DataEntry((v + "_AuctionDuration"), ap), DataEntry((v + "_JobPerformance"), aq), DataEntry((v + "_AssetName"), G), DataEntry((v + "_Price"), E), DataEntry((G + "_Freezed"), ar)])
256261 }
257262
258263
259264
260-@Callable(ad)
261-func makeBid (v,aq) = {
262- let L = toBase58String(ad.callerPublicKey)
263- let ar = height
264- let as = O(v)
265- let ak = Q(v)
265+@Callable(af)
266+func makeBid (v,D) = {
267+ let N = toBase58String(af.callerPublicKey)
268+ let as = height
269+ let at = Q(v)
266270 let am = S(v)
267- let at = U(v)
271+ let ao = U(v)
268272 let au = W(v)
269- let x = Y(v)
270- let E = aa(v)
271- let av = w(x)
272- let aw = K(L)
273- let ax = ((E * 3) / 100)
274- let ap = J(x, E)
275- let ay = y(ar, am, at)
276- if (ay)
277- then if ((as == f))
278- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
279- else if ((as == g))
273+ let av = Y(v)
274+ let x = aa(v)
275+ let E = ac(v)
276+ let aw = w(x)
277+ let ax = M(N)
278+ let ay = ((E * 3) / 100)
279+ let ar = L(x, E)
280+ let az = C(D, E)
281+ let aA = y(as, ao, au)
282+ if (aA)
283+ then if ((at == f))
284+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), (E - ay), aw)]))
285+ else if ((at == g))
280286 then {
281- let az = {
282- let aA = getString(this, (v + "_LowestBidderPub"))
283- let H = aA
284- if ($isInstanceOf(H, "String"))
287+ let aB = {
288+ let aC = getString(this, (v + "_LowestBidderPub"))
289+ let J = aC
290+ if ($isInstanceOf(J, "String"))
285291 then {
286- let I = H
287- I
292+ let K = J
293+ K
288294 }
289295 else throw("Auction lowest bidder was not found")
290296 }
291- let aB = {
292- let aC = getInteger(this, ((v + "_Bid_") + az))
293- let H = aC
294- if ($isInstanceOf(H, "Int"))
297+ let aD = {
298+ let aE = getInteger(this, ((v + "_Bid_") + aB))
299+ let J = aE
300+ if ($isInstanceOf(J, "Int"))
295301 then {
296- let I = H
297- I
302+ let K = J
303+ K
298304 }
299305 else throw("Auction lowest bid was not found")
300306 }
301- let aD = ((E - aB) - ax)
302- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), az), DataEntry((v + "_Price"), aB)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
307+ let aF = ((E - aD) - ay)
308+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aB), DataEntry((v + "_Price"), aD)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), aF, aw)]))
303309 }
304310 else throw("Incorrect auction state")
305- else if ((as == f))
306- then WriteSet([DataEntry(((v + "_Bid_") + aw), aq), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), L)])
307- else if ((as == g))
311+ else if ((at == f))
312+ then WriteSet([DataEntry(((v + "_Bid_") + ax), az), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), N)])
313+ else if ((at == g))
308314 then {
309- let aE = {
310- let aF = getString(this, (v + "_LowestBidderPub"))
311- let H = aF
312- if ($isInstanceOf(H, "String"))
315+ let aG = {
316+ let aH = getString(this, (v + "_LowestBidderPub"))
317+ let J = aH
318+ if ($isInstanceOf(J, "String"))
313319 then {
314- let I = H
315- I
320+ let K = J
321+ K
316322 }
317323 else throw("Auction lowest bidder was not found")
318324 }
319- let aG = {
320- let aH = getInteger(this, ((v + "_Bid_") + aE))
321- let aI = {
322- let H = aH
323- if ($isInstanceOf(H, "Int"))
325+ let aI = {
326+ let aJ = getInteger(this, ((v + "_Bid_") + aG))
327+ let aK = {
328+ let J = aJ
329+ if ($isInstanceOf(J, "Int"))
324330 then {
325- let I = H
326- I
331+ let K = J
332+ K
327333 }
328334 else throw("Auction lowest bid was not found")
329335 }
330- if ((aI > aq))
331- then aw
332- else aE
336+ if ((aK > az))
337+ then ax
338+ else aG
333339 }
334- WriteSet([DataEntry((v + "_LowestBidderPub"), aG), DataEntry(((v + "_Bid_") + aw), aq)])
340+ WriteSet([DataEntry((v + "_LowestBidderPub"), aI), DataEntry(((v + "_Bid_") + ax), az)])
335341 }
336- else throw(((((("Incorrect jobId state. Now: " + as) + ", must be: ") + f) + " or ") + g))
342+ else throw(((((("Incorrect jobId state. Now: " + at) + ", must be: ") + f) + " or ") + g))
337343 }
338344
339345
340346
341-@Callable(ad)
342-func chooseFreelancer (v,aJ) = {
343- let L = extract(ad.callerPublicKey)
344- let ar = height
345- let as = O(v)
346- let ak = Q(v)
347+@Callable(af)
348+func chooseFreelancer (v,aL) = {
349+ let N = extract(af.callerPublicKey)
350+ let as = height
351+ let at = Q(v)
347352 let am = S(v)
348- let at = U(v)
349- let x = Y(v)
350- let E = aa(v)
351- let av = w(x)
352- let aK = {
353- let aL = ((v + "_Bid_") + aJ)
354- let aM = getInteger(this, aL)
355- let H = aM
356- if ($isInstanceOf(H, "Int"))
353+ let ao = U(v)
354+ let au = W(v)
355+ let x = aa(v)
356+ let E = ac(v)
357+ let aw = w(x)
358+ let aM = {
359+ let aN = ((v + "_Bid_") + aL)
360+ let aO = getInteger(this, aN)
361+ let J = aO
362+ if ($isInstanceOf(J, "Int"))
357363 then {
358- let I = H
359- I
364+ let K = J
365+ K
360366 }
361367 else throw("Freelancer's bet was not found")
362368 }
363- let ay = y(ar, am, at)
364- if ((L == ak))
365- then if (ay)
366- then if ((as == f))
369+ let aA = y(as, ao, au)
370+ if ((N == am))
371+ then if (aA)
372+ then if ((at == f))
367373 then {
368- let ap = J(x, E)
369- let ax = ((E * 3) / 100)
370- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (E - ax), av)]))
374+ let ar = L(x, E)
375+ let ay = ((E * 3) / 100)
376+ ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), (E - ay), aw)]))
371377 }
372- else if ((as == g))
378+ else if ((at == g))
373379 then {
374- let az = {
375- let aA = getString(this, (v + "_LowestBidderPub"))
376- let H = aA
377- if ($isInstanceOf(H, "String"))
380+ let aB = {
381+ let aC = getString(this, (v + "_LowestBidderPub"))
382+ let J = aC
383+ if ($isInstanceOf(J, "String"))
378384 then {
379- let I = H
380- I
385+ let K = J
386+ K
381387 }
382388 else throw("Auction lowest bidder was not found")
383389 }
384- let aB = {
385- let aC = getInteger(this, ((v + "_Bid_") + az))
386- let H = aC
387- if ($isInstanceOf(H, "Int"))
390+ let aD = {
391+ let aE = getInteger(this, ((v + "_Bid_") + aB))
392+ let J = aE
393+ if ($isInstanceOf(J, "Int"))
388394 then {
389- let I = H
390- I
395+ let K = J
396+ K
391397 }
392398 else throw("Auction lowest bid was not found")
393399 }
394- let aD = (E - aB)
395- let ap = J(x, aD)
396- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), az), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aD, av)]))
400+ let aF = (E - aD)
401+ let ar = L(x, aF)
402+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aB), DataEntry((v + "_Price"), aD), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), aF, aw)]))
397403 }
398404 else throw("Incorrect auction state")
399405 else {
400- let aN = {
401- let aw = getInteger(this, ((v + "_Bid_") + aJ))
402- let H = aw
403- if ($isInstanceOf(H, "Int"))
406+ let aP = {
407+ let ax = getInteger(this, ((v + "_Bid_") + aL))
408+ let J = ax
409+ if ($isInstanceOf(J, "Int"))
404410 then {
405- let I = H
406- aJ
411+ let K = J
412+ aL
407413 }
408414 else throw("Error: Incorrect freelancerPub")
409415 }
410- let aB = {
411- let aO = getInteger(this, ((v + "_Bid_") + aJ))
412- let H = aO
413- if ($isInstanceOf(H, "Int"))
416+ let aD = {
417+ let aQ = getInteger(this, ((v + "_Bid_") + aL))
418+ let J = aQ
419+ if ($isInstanceOf(J, "Int"))
414420 then {
415- let I = H
416- I
421+ let K = J
422+ K
417423 }
418424 else throw("Auction lowest bidder was not found")
419425 }
420- let aD = (E - aK)
421- let ap = J(x, aD)
422- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aN), DataEntry((v + "_Price"), aB), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), (aD + 1), av)]))
426+ let aF = (E - aM)
427+ let ar = L(x, aF)
428+ ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aP), DataEntry((v + "_Price"), aD), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), (aF + 1), aw)]))
423429 }
424430 else throw("Only auction customer can choose a freelancer")
425431 }
426432
427433
428434
429-@Callable(ad)
430-func increaseExecutionTime (v,aP) = {
431- let aQ = extract(ad.callerPublicKey)
432- let as = O(v)
433- let ak = Q(v)
434- let au = W(v)
435- let aR = {
436- let aS = (aP * a)
437- if ((aS > au))
438- then aS
435+@Callable(af)
436+func increaseExecutionTime (v,aR) = {
437+ let aS = extract(af.callerPublicKey)
438+ let at = Q(v)
439+ let am = S(v)
440+ let av = Y(v)
441+ let aT = {
442+ let aU = (aR * a)
443+ if ((aU > av))
444+ then aU
439445 else throw("New execution time must more than current execution time")
440446 }
441- if ((aQ == ak))
442- then if (if (if ((as == f))
447+ if ((aS == am))
448+ then if (if (if ((at == f))
443449 then true
444- else (as == g))
450+ else (at == g))
445451 then true
446- else (as == i))
447- then WriteSet([DataEntry((v + "_JobPerformance"), aR)])
452+ else (at == i))
453+ then WriteSet([DataEntry((v + "_JobPerformance"), aT)])
448454 else throw("Incorrect state")
449455 else throw("Only Client can increase execution time")
450456 }
451457
452458
453459
454-@Callable(ad)
460+@Callable(af)
455461 func cancelAuction (v) = {
456- let L = extract(ad.callerPublicKey)
457- let as = O(v)
458- let ak = Q(v)
459- let x = Y(v)
460- let E = aa(v)
461- let av = w(x)
462- let ax = ((E * 3) / 100)
463- let aT = (E - ax)
464- let ap = J(x, E)
465- let aU = if ((L == ak))
462+ let N = extract(af.callerPublicKey)
463+ let at = Q(v)
464+ let am = S(v)
465+ let x = aa(v)
466+ let E = ac(v)
467+ let aw = w(x)
468+ let ay = ((E * 3) / 100)
469+ let aV = (E - ay)
470+ let ar = L(x, E)
471+ let aW = if ((N == am))
466472 then true
467473 else throw("Auction can be canceled only by auction owner.")
468- if (aU)
469- then if ((as == f))
470- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(ak), aT, av)]))
474+ if (aW)
475+ then if ((at == f))
476+ then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(am), aV, aw)]))
471477 else throw("Incorrect auction state.")
472478 else throw("Only Client can cancel auction")
473479 }
474480
475481
476482
477-@Callable(ad)
483+@Callable(af)
478484 func openDispute (v) = {
479- let aQ = extract(ad.callerPublicKey)
480- let as = O(v)
481- let ak = Q(v)
482- let aV = ac(v)
483- if (if ((as == f))
485+ let aS = extract(af.callerPublicKey)
486+ let at = Q(v)
487+ let am = S(v)
488+ let aX = ae(v)
489+ if (if ((at == f))
484490 then true
485- else (as == g))
491+ else (at == g))
486492 then throw("Incorrect auction state for dispute opening")
487- else if (if ((aQ == ak))
493+ else if (if ((aS == am))
488494 then true
489- else (aQ == aV))
495+ else (aS == aX))
490496 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0)])
491497 else throw("Only customer and freelancer can open dispute")
492498 }
493499
494500
495501
496-@Callable(ad)
497-func voteDispute (v,aW) = {
498- let L = extract(ad.callerPublicKey)
499- let as = O(v)
500- let ak = Q(v)
501- let x = Y(v)
502- let E = aa(v)
503- let aV = ac(v)
504- let aX = ((E * 3) / 100)
505- let av = w(x)
506- let aY = if (if (if (if (if ((L == p))
502+@Callable(af)
503+func voteDispute (v,aY) = {
504+ let N = extract(af.callerPublicKey)
505+ let at = Q(v)
506+ let am = S(v)
507+ let x = aa(v)
508+ let E = ac(v)
509+ let aX = ae(v)
510+ let aZ = ((E * 3) / 100)
511+ let aw = w(x)
512+ let ba = if (if (if (if (if ((N == p))
507513 then true
508- else (L == q))
514+ else (N == q))
509515 then true
510- else (L == r))
516+ else (N == r))
511517 then true
512- else (L == s))
518+ else (N == s))
513519 then true
514- else (L == t))
515- then toBase58String(L)
520+ else (N == t))
521+ then toBase58String(N)
516522 else throw("Only defined ambassadors can vote in disputes")
517- let aZ = if (if ((aW == n))
523+ let bb = if (if ((aY == n))
518524 then true
519- else (aW == o))
520- then aW
525+ else (aY == o))
526+ then aY
521527 else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
522- let ba = {
523- let bb = ((v + "_DiputeVote_") + aY)
524- let bc = getString(this, bb)
525- let H = bc
526- if ($isInstanceOf(H, "String"))
528+ let bc = {
529+ let bd = ((v + "_DiputeVote_") + ba)
530+ let be = getString(this, bd)
531+ let J = be
532+ if ($isInstanceOf(J, "String"))
527533 then {
528- let I = H
534+ let K = J
529535 throw("User already voted")
530536 }
531- else aY
537+ else ba
532538 }
533- let bd = {
534- let be = getInteger(this, (v + "_DisputeVotes"))
535- let H = be
536- if ($isInstanceOf(H, "Int"))
539+ let bf = {
540+ let bg = getInteger(this, (v + "_DisputeVotes"))
541+ let J = bg
542+ if ($isInstanceOf(J, "Int"))
537543 then {
538- let I = H
539- I
544+ let K = J
545+ K
540546 }
541547 else throw("VotesNumber was not found")
542548 }
543- if ((as == l))
544- then if ((bd == 4))
549+ if ((at == l))
550+ then if ((bf == 4))
545551 then {
546- let bf = {
547- let bg = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
548- let bh = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
549- let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
550- let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
551- let bk = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
552- let bl = if ((bg == n))
553- then 1
554- else 0
555- let bm = if ((bh == n))
556- then 1
557- else 0
552+ let bh = {
553+ let bi = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
554+ let bj = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
555+ let bk = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
556+ let bl = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
557+ let bm = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
558558 let bn = if ((bi == n))
559559 then 1
560560 else 0
561561 let bo = if ((bj == n))
562562 then 1
563563 else 0
564564 let bp = if ((bk == n))
565565 then 1
566566 else 0
567- let bq = if ((aZ == n))
567+ let bq = if ((bl == n))
568568 then 1
569569 else 0
570- let br = (((((bl + bm) + bn) + bo) + bp) + bq)
571- if ((br > 2))
572- then ak
573- else aV
570+ let br = if ((bm == n))
571+ then 1
572+ else 0
573+ let bs = if ((bb == n))
574+ then 1
575+ else 0
576+ let bt = (((((bn + bo) + bp) + bq) + br) + bs)
577+ if ((bt > 2))
578+ then am
579+ else aX
574580 }
575- let bs = if ((bf == ak))
576- then (E - aX)
577- else (E - (aX * 2))
578- let ap = J(x, E)
579- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + aY), aZ), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(bf), bs, av)]))
581+ let bu = if ((bh == am))
582+ then (E - aZ)
583+ else (E - (aZ * 2))
584+ let ar = L(x, E)
585+ ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bf + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + ba), bb), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(bh), bu, aw)]))
580586 }
581- else WriteSet([DataEntry((v + "_DisputeVotes"), (bd + 1)), DataEntry(((v + "_DiputeVote_") + aY), aZ)])
587+ else WriteSet([DataEntry((v + "_DisputeVotes"), (bf + 1)), DataEntry(((v + "_DiputeVote_") + ba), bb)])
582588 else throw(("Incorrect state. Must be: " + l))
583589 }
584590
585591
586592
587-@Callable(ad)
593+@Callable(af)
588594 func workHandOver (v) = {
589- let L = extract(ad.callerPublicKey)
590- let as = O(v)
591- let am = S(v)
592- let at = U(v)
595+ let N = extract(af.callerPublicKey)
596+ let at = Q(v)
597+ let ao = U(v)
593598 let au = W(v)
594- let aV = ac(v)
599+ let av = Y(v)
600+ let aX = ae(v)
595601 let z = height
596- let bt = if ((L == aV))
597- then L
602+ let bv = if ((N == aX))
603+ then N
598604 else throw("Only a freelancer can indicate that the work is done")
599- let bu = ((z - am) > au)
600- if ((as == i))
601- then if (bu)
605+ let bw = ((z - ao) > av)
606+ if ((at == i))
607+ then if (bw)
602608 then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0")])
603609 else WriteSet([DataEntry((v + "_State"), j)])
604610 else throw("Auction state is incorrect")
605611 }
606612
607613
608614
609-@Callable(ad)
615+@Callable(af)
610616 func acceptWork (v) = {
611- let L = extract(ad.callerPublicKey)
612- let as = O(v)
613- let ak = Q(v)
617+ let N = extract(af.callerPublicKey)
618+ let at = Q(v)
614619 let am = S(v)
615- let at = U(v)
616- let x = Y(v)
617- let E = aa(v)
618- let aV = ac(v)
619- let ax = ((E * 3) / 100)
620- let aT = (E - ax)
621- let av = w(x)
622- let ap = J(x, E)
623- let bv = {
624- let bw = getInteger(this, (toBase58String(aV) + "_Rating"))
625- let bx = {
626- let H = bw
627- if ($isInstanceOf(H, "Int"))
620+ let ao = U(v)
621+ let au = W(v)
622+ let x = aa(v)
623+ let E = ac(v)
624+ let aX = ae(v)
625+ let ay = ((E * 3) / 100)
626+ let aV = (E - ay)
627+ let aw = w(x)
628+ let ar = L(x, E)
629+ let bx = {
630+ let by = getInteger(this, (toBase58String(aX) + "_Rating"))
631+ let bz = {
632+ let J = by
633+ if ($isInstanceOf(J, "Int"))
628634 then {
629- let I = H
630- I
635+ let K = J
636+ K
631637 }
632638 else 0
633639 }
634- (bx + 1)
640+ (bz + 1)
635641 }
636- if ((L == ak))
637- then if ((as == j))
638- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aV) + "_Rating"), bv), DataEntry((x + "_Freezed"), ap)]), TransferSet([ScriptTransfer(addressFromPublicKey(aV), aT, av)]))
642+ if ((N == am))
643+ then if ((at == j))
644+ then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(aX) + "_Rating"), bx), DataEntry((x + "_Freezed"), ar)]), TransferSet([ScriptTransfer(addressFromPublicKey(aX), aV, aw)]))
639645 else throw(("Incorrect state. Must be: " + j))
640646 else throw("Only auction customer can use this function")
641647 }
642648
643649
644-@Verifier(by)
645-func bz () = if (sigVerify(by.bodyBytes, by.proofs[0], by.senderPublicKey))
650+@Verifier(bA)
651+func bB () = if (sigVerify(bA.bodyBytes, bA.proofs[0], bA.senderPublicKey))
646652 then {
647- let H = by
648- if ($isInstanceOf(H, "TransferTransaction"))
653+ let J = bA
654+ if ($isInstanceOf(J, "TransferTransaction"))
649655 then {
650- let bA = H
656+ let bC = J
651657 true
652658 }
653- else if ($isInstanceOf(H, "SetScriptTransaction"))
659+ else if ($isInstanceOf(J, "SetScriptTransaction"))
654660 then {
655- let bB = H
661+ let bD = J
656662 true
657663 }
658664 else false
659665 }
660666 else false
661667

github/deemru/w8io/169f3d6 
198.45 ms