tx · BEX5SPttMsrNHfUE5n1krteZRR8E9iNRN1rk5SHvkhtR

3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2:  -0.03200000 Waves

2023.11.30 12:20 [2865954] smart account 3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "BEX5SPttMsrNHfUE5n1krteZRR8E9iNRN1rk5SHvkhtR", "fee": 3200000, "feeAssetId": null, "timestamp": 1701336015447, "version": 2, "chainId": 84, "sender": "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2", "senderPublicKey": "DNKNL32sAVUYg4iGA3tW8Z6VXrENmGCmKfG6DLar82aP", "proofs": [ "4tsnEqiQ58bfpTkqAgJVrx5DXNkSiUCBFXAVG47aKfJrBFM2uzezr6zGrDwDr6orDpHKiNx7TzVH5osJcaQJ47v5" ], "script": "base64:AAIFAAAAAAAAAEAIAhIMCgoBAQgIAQEBCAEBEgwKCgEBCAgBAQEIAQESABIFCgMBCAgSABIECgIIARIDCgEIEgMKAQgSABIDCgEIAAAADgAAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwIAAAAjM040d0JnWXRXZ0pXMkxUUmVmMmVrV1FUckVYQ1JmWG1HTGgAAAAAFERhcHBfQWRkcmVzc19wdWJfa2V5AQAAACDI7Zjahu5VNVhgxzyW6CpbYvUiMMUf5OyBUQlo584acwAAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAAAAAYq/YBYgAAAAAAtDdXJyZW5jeV9JRAIAAAAFV0FWRVMAAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yAgAAACNQcm9kdWN0IExhdW5jaCBUaW1lc3RhbXAgaXMgc2V0IGF0IAAAAAAQbm9fcGF5bWVudF9lcnJvcgIAAAA3Tm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBUb2tlbiBpbiBwYXltZW50WzFdLgAAAAASY2xvc2VkX29yYWNsZV9lcm9yAgAAADFPcmFjbGUgaXMgY2xvc2VkLiBXYWl0IFVudGlsIE9yYWNsZSBpcyBUdXJuZWQgT24uAAAAABF3aGl0ZWxpc3RfYWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkAAAAACWQyZGNhbGxlcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQEAAAAgVjmO4YcVELU8Q7V+UVV19WsVRR/5xSyznPDzMoLMOkEAAAAAC25ldHdvcmtfZmVlAAAAAAAADbugAAAAABJtaW5pbXVtX29yZGVyX3NpemUAAAAAAACYloAAAAAAEm1heGltdW1fb3JkZXJfc2l6ZQAAAAACVAvkAAAAAAAUbWF4aW11bV92b3VjaGVyX3NpemUAAAAAAAX14QAAAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAPU2h1dGRvd25fU3RhdHVzAgAAAE1Jbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93biBmdW5jdGlvbiB2YWx1ZSBpcyBub3QgU2V0LCBQbGVhc2UgU2lnbiB0aGF0IGZpcnN0LgAAAAoAAAABaQEAAAAPcGxhY2VvcHRpb25DYWxsAAAACgAAAAZBbW91bnQAAAAPT3B0aW9uQ291bnRlcklEAAAAB1VzZXJfSUQAAAAMVXNlcl9BZGRyZXNzAAAABVByaWNlAAAAC0NhbGxfTGltaXRzAAAAClB1dF9MaW1pdHMAAAANT3JhY2xlX1N0YXR1cwAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADFVzZXJfQWRkcmVzcwQAAAAIcmVhZF9UUEwJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQIAAAAkTm8gSW5pdGlhbCBQb29sIExpcXVpZGl0eSB3YXMgRm91bmQuBAAAAA9yZWFkX3VzZXJfZnVuZHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MAAAAAAAAAAAAEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQAAAAAAAAAAAAQAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAIXJlYWRfc3RhcnRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wBAAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAPT3B0aW9uQ291bnRlcklEBAAAABJPcGlvbkV4cGlyZUNvdW50ZXIAAAAAAAAAAAEEAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkAAGQAAAACBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAST3Bpb25FeHBpcmVDb3VudGVyBAAAABRQcmV2aW91c09wdGlvbk9yZGVycwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAAZAAAAAIFAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzAAAAAAAAAAABBAAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkAAGQAAAACBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAABkFtb3VudAQAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAMUHJldmlvdXNDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAC1RvdGFsX0NhbGxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACVRvdGFsQ2FsbAkAAGQAAAACBQAAAAxQcmV2aW91c0NhbGwAAAAAAAAAAAEEAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGlRvdGFsQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAABBQcmV2aW91c1VzZXJDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANVG90YWxVc2VyQ2FsbAkAAGQAAAACBQAAABBQcmV2aW91c1VzZXJDYWxsAAAAAAAAAAABBAAAACFQcmV2aW91c1VzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB5Ub3RhbFVzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAhUHJldmlvdXNVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA1GdW5kc19hdF9yaXNrCQAAawAAAAMFAAAACHJlYWRfVFBMAAAAAAAAAAAFAAAAAAAAAABkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANT3JhY2xlX1N0YXR1cwIAAAAFQ0xPU0UJAAACAAAAAQUAAAASY2xvc2VkX29yYWNsZV9lcm9yAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAPiBBZGRyZXNzIGlzIEJsYWNrbGlzdGVkLiBQbGVhc2UgY29udGFjdCBBZG1pbiB0byBXaGl0ZWxpc3QgaXQuAwkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAkAAAIAAAABAgAAAEdPcHRpb24gT3JkZXIgcGxhY2luZyBUaW1pbmcgTGltaXRzIGFyZSBPdmVyLiBQbGVhc2UgSm9pbiBpbiBOZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAA1GdW5kc19hdF9yaXNrCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABDTm8gbW9yZSBvcmRlcnMgYWNjZXB0ZWQsIE9wdGlvbiBIb3VzZSBSaXNrIFNpemUgaXMgb25seSBsaW1pdGVkIHRvIAkAAaQAAAABBQAAAA1GdW5kc19hdF9yaXNrAgAAABgsIFBlbmRpbmcgSG91c2UgUmlzayBpcyAJAAGkAAAAAQkAAGUAAAACBQAAAA1GdW5kc19hdF9yaXNrBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXICAAAAFS4gSm9pbiBpbiBuZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAASbWluaW11bV9vcmRlcl9zaXplBQAAAAZBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIGxlc3MgdGhhbiBbCQABpAAAAAEFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgUAAAAGQW1vdW50BQAAABJtYXhpbXVtX29yZGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIG1vcmUgdGhhbiBbCQABpAAAAAEFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZgAAAAIFAAAAG3VwZGF0ZV91c2VyX3ZvdWNoZXJfYmFsYW5jZQUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMHCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAFhQbGFjZWQgT3JkZXIgQW1vdW50IGlzIGdvaW5nIG5lZ2F0aXZlLiBQbGVhc2UgcmVkdWNlIHRoZSBPcmRlciBTaXplLlVzZXIgRnVuZCBBbW91bnQgPSBbCQABpAAAAAEFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzAgAAAAFdAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG9TdGFydCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG1FbmQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuAwMJAAAAAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMAAAAAAAAAAAAGCQAAZgAAAAIAAAAAAAAAAAAFAAAAG3VwZGF0ZV91c2VyX3ZvdWNoZXJfYmFsYW5jZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACFVzZXJfSURfBQAAAAxVc2VyX0FkZHJlc3MFAAAAB1VzZXJfSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzBQAAABF1cGRhdGVfdXNlcl9mdW5kcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaTmV0d29ya19GZWVfVG9fUGxhY2VfT3JkZXIFAAAAC25ldHdvcmtfZmVlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABUNhbGxfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAkAAaQAAAABBQAAAAVQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FsbF9BbW91bnRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAUAAAAGQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD0NhbGxfU3RhcnRfRW5kXwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAgAAAAFfCQABpAAAAAEFAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfT3B0aW9uX09yZGVycwUAAAARVG90YWxPcHRpb25PcmRlcnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAAIcmVhZF9UUEwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAORnVuZHNfQXRfUmlza18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAADUZ1bmRzX2F0X3Jpc2sJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC0NhbGxfTGltaXRzBQAAAAtDYWxsX0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKUHV0X0xpbWl0cwUAAAAKUHV0X0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALVG90YWxfQ2FsbHMFAAAACVRvdGFsQ2FsbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxUb3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAGlRvdGFsQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX0NhbGxzBQAAAA1Ub3RhbFVzZXJDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAA1fVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAB5Ub3RhbFVzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARd2hpdGVsaXN0X2FkZHJlc3MFAAAAC25ldHdvcmtfZmVlBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MFAAAABkFtb3VudAUAAAAEdW5pdAUAAAADbmlsAwkAAGYAAAACBQAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UAAAAAAAAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhVc2VyX0lEXwUAAAAMVXNlcl9BZGRyZXNzBQAAAAdVc2VyX0lECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQUAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpOZXR3b3JrX0ZlZV9Ub19QbGFjZV9PcmRlcgUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFQ2FsbF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYWxsX0Ftb3VudF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsBQAAAAZBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAAAhyZWFkX1RQTAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9DYWxscwUAAAAJVG90YWxDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAaVG90YWxDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMFAAAADVRvdGFsVXNlckNhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHlRvdGFsVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAAMV3JvbmcgRW50cnkuAAAAAWkBAAAADnBsYWNlb3B0aW9uUHV0AAAACgAAAAZBbW91bnQAAAAPT3B0aW9uQ291bnRlcklEAAAAB1VzZXJfSUQAAAAMVXNlcl9BZGRyZXNzAAAABVByaWNlAAAAC0NhbGxfTGltaXRzAAAAClB1dF9MaW1pdHMAAAANT3JhY2xlX1N0YXR1cwAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADFVzZXJfQWRkcmVzcwQAAAAIcmVhZF9UUEwJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQIAAAAkTm8gSW5pdGlhbCBQb29sIExpcXVpZGl0eSB3YXMgRm91bmQuBAAAAA9yZWFkX3VzZXJfZnVuZHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MAAAAAAAAAAAAEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQAAAAAAAAAAAAQAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAAZQAAAAIFAAAAF3JlYWRfdXNlcl92b3VjaGVyX2Z1bmRzBQAAAAZBbW91bnQEAAAAIXJlYWRfc3RhcnRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wBAAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAPT3B0aW9uQ291bnRlcklEBAAAABJPcGlvbkV4cGlyZUNvdW50ZXIAAAAAAAAAAAEEAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkAAGQAAAACBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAST3Bpb25FeHBpcmVDb3VudGVyBAAAABRQcmV2aW91c09wdGlvbk9yZGVycwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAAZAAAAAIFAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzAAAAAAAAAAABBAAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkAAGQAAAACBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAABkFtb3VudAQAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAALUHJldmlvdXNQdXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAKVG90YWxfUHV0cwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAhUb3RhbFB1dAkAAGQAAAACBQAAAAtQcmV2aW91c1B1dAAAAAAAAAAAAQQAAAAcUHJldmlvdXNQdXRpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAC1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGVRvdGFsUHV0aW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAcUHJldmlvdXNQdXRpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAPUHJldmlvdXNVc2VyUHV0BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAtfVG90YWxfUHV0cwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAxUb3RhbFVzZXJQdXQJAABkAAAAAgUAAAAPUHJldmlvdXNVc2VyUHV0AAAAAAAAAAABBAAAACBQcmV2aW91c1VzZXJQdXRpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAdVG90YWxVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAgUHJldmlvdXNVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAADUZ1bmRzX2F0X3Jpc2sJAABrAAAAAwUAAAAIcmVhZF9UUEwAAAAAAAAAAAUAAAAAAAAAAGQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAABRyZWFkX3NodXRkb3duX3N0YXR1cwAAAAAAAAAAAQkAAAIAAAABAgAAAFtDb250cmFjdCBTdGF0dXMgaXMgQ3VycmVudGx5IFNodXRkb3duLiBQbGVhc2UgU2lnbiB0aGUgRnVuY3Rpb24gSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24uAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkAAAAAAAACBQAAAA1PcmFjbGVfU3RhdHVzAgAAAAVDTE9TRQkAAAIAAAABBQAAABJjbG9zZWRfb3JhY2xlX2Vyb3IDCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkAAAIAAAABCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAA+IEFkZHJlc3MgaXMgQmxhY2tsaXN0ZWQuIFBsZWFzZSBjb250YWN0IEFkbWluIHRvIFdoaXRlbGlzdCBpdC4DCQAAZwAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wCQAAAgAAAAECAAAAR09wdGlvbiBPcmRlciBwbGFjaW5nIFRpbWluZyBMaW1pdHMgYXJlIE92ZXIuIFBsZWFzZSBKb2luIGluIE5leHQgQ3ljbGUuAwkAAGYAAAACBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAADUZ1bmRzX2F0X3Jpc2sJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAENObyBtb3JlIG9yZGVycyBhY2NlcHRlZCwgT3B0aW9uIEhvdXNlIFJpc2sgU2l6ZSBpcyBvbmx5IGxpbWl0ZWQgdG8gCQABpAAAAAEFAAAADUZ1bmRzX2F0X3Jpc2sCAAAAGCwgUGVuZGluZyBIb3VzZSBSaXNrIGlzIAkAAaQAAAABCQAAZQAAAAIFAAAADUZ1bmRzX2F0X3Jpc2sFAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgIAAAAVLiBKb2luIGluIG5leHQgQ3ljbGUuAwkAAGYAAAACBQAAABJtaW5pbXVtX29yZGVyX3NpemUFAAAABkFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbGVzcyB0aGFuIFsJAAGkAAAAAQUAAAASbWluaW11bV9vcmRlcl9zaXplAgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACBQAAAAZBbW91bnQFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbW9yZSB0aGFuIFsJAAGkAAAAAQUAAAASbWF4aW11bV9vcmRlcl9zaXplAgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACAAAAAAAAAAAABQAAABF1cGRhdGVfdXNlcl9mdW5kcwkAAAIAAAABCQABLAAAAAICAAAAXFBsYWNlZCBPcmRlciBBbW91bnQgaXMgZ29pbmcgbmVnYXRpdmUuIFBsZWFzZSByZWR1Y2UgdGhlIE9yZGVyIFNpemUuIE5lZ2F0aXZlIEZ1bmQgQW1vdW50ID0gCQABpAAAAAEFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG9TdGFydCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG1FbmQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVXNlcl9JRF8FAAAADFVzZXJfQWRkcmVzcwUAAAAHVXNlcl9JRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQUAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpOZXR3b3JrX0ZlZV9Ub19QbGFjZV9PcmRlcgUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEUHV0XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAkAAaQAAAABBQAAAAVQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALUHV0X0Ftb3VudF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQFAAAABkFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA5QdXRfU3RhcnRfRW5kXwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAAAhyZWFkX1RQTAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9QdXRzBQAAAAhUb3RhbFB1dAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAtUb3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAZVG90YWxQdXRpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAC19Ub3RhbF9QdXRzBQAAAAxUb3RhbFVzZXJQdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAdVG90YWxVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARd2hpdGVsaXN0X2FkZHJlc3MFAAAAC25ldHdvcmtfZmVlBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MFAAAABkFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAAF0ZpbGxfVm91Y2hlcnNfTGlxdWlkaXR5AAAAAAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAABJTm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBvbmx5IFdoaXRlbGlzdGVkIFRva2VucyBpbiBwYXltZW50WzFdLgQAAAAXUHJldmlvdXNWb3VjaGVyc0JhbGFuY2UEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAaQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAUVG90YWxWb3VjaGVyc0JhbGFuY2UJAABkAAAAAgUAAAAXUHJldmlvdXNWb3VjaGVyc0JhbGFuY2UIBQAAAANwbXQAAAAGYW1vdW50BAAAABlQcmV2aW91c1ZvdWNoZXJzQ291bnRlcklEBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAE1ZvdWNoZXJzX0NvdW50ZXJfSUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAWVG90YWxWb3VjaGVyc0NvdW50ZXJJRAkAAGQAAAACBQAAABlQcmV2aW91c1ZvdWNoZXJzQ291bnRlcklEAAAAAAAAAAABAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAC5Pbmx5IFdBVkVTIGlzIGFsbG93ZWQgdG8gZGVwb3NpdCBhdCB0aGUgbW9tZW50AwkAAAAAAAACBQAAABRyZWFkX3NodXRkb3duX3N0YXR1cwAAAAAAAAAAAQkAAAIAAAABAgAAAFtDb250cmFjdCBTdGF0dXMgaXMgQ3VycmVudGx5IFNodXRkb3duLiBQbGVhc2UgU2lnbiB0aGUgRnVuY3Rpb24gSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQUAAAAUVG90YWxWb3VjaGVyc0JhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABZUb3RhbFZvdWNoZXJzQ291bnRlcklEAgAAABVfVm91Y2hlcl9BZGRlZF9BbW91bnQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNWb3VjaGVyc19Db3VudGVyX0lEBQAAABZUb3RhbFZvdWNoZXJzQ291bnRlcklEBQAAAANuaWwAAAABaQEAAAAOSXNzdWVfVm91Y2hlcnMAAAADAAAADlZvdWNoZXJfQW1vdW50AAAAB1VzZXJfSUQAAAAMVXNlcl9BZGRyZXNzBAAAABlyZWFkX1RvdGFsVm91Y2hlcnNCYWxhbmNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAaQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UCAAAAX0F2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlIEVudHJ5IGlzIG5vdCBGb3VuZC4gSW5pdGlhdGUgRmlsbF9Wb3VjaGVyc19MaXF1aWRpdHkgRnVuY3Rpb24gZmlyc3QuBAAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UJAABlAAAAAgUAAAAZcmVhZF9Ub3RhbFZvdWNoZXJzQmFsYW5jZQUAAAAOVm91Y2hlcl9BbW91bnQEAAAAFFZvdWNoZXJzSXNzdWVkVG9Vc2VyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAZVG90YWxfVm91Y2hlcnNfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGVRvdGFsVm91Y2hlcnNJc3N1ZWRUb1VzZXIJAABkAAAAAgUAAAAUVm91Y2hlcnNJc3N1ZWRUb1VzZXIAAAAAAAAAAAEEAAAAGlZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAgVG90YWxfVm91Y2hlcnNfQW1vdW50X0lzc3VlZF9Ub18FAAAADFVzZXJfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB9Ub3RhbFZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyCQAAZAAAAAIFAAAAGlZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyBQAAAA5Wb3VjaGVyX0Ftb3VudAQAAAAdUHJldmlvdXNWb3VjaGVyc0JhbGFuY2VvZlVzZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAEF9Wb3VjaGVyX0JhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAaVG90YWxWb3VjaGVyc0JhbGFuY2VvZlVzZXIJAABkAAAAAgUAAAAdUHJldmlvdXNWb3VjaGVyc0JhbGFuY2VvZlVzZXIFAAAADlZvdWNoZXJfQW1vdW50AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABnAAAAAgAAAAAAAAAAAAUAAAAOVm91Y2hlcl9BbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAZ1ZvdWNoZXIgQmFsYW5jZSBjYW4ndCBiZSAwIG9yIGdvIGluIG5lZ2F0aXZlIFN0YXRlLiBJbmNyZWFzZSB0aGUgVm91Y2hlciBBbW91bnQgd2hlcmUgbWF4aW11bSBsaW1pdCBpcyAJAAGkAAAAAQUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUCAAAADC8xMF44IFdhdmVzLgMJAABnAAAAAgAAAAAAAAAAAAUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADZVcGRhdGVkIFZvdWNoZXIgQmFsYW5jZSBjYW4ndCBnbyBpbiBuZWdhdGl2ZSBTdGF0ZSBvZiAJAAGkAAAAAQUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlAgAAACggLzEwXjggV0FWRVMuIFJlZHVjZSB0aGUgVm91Y2hlciBBbW91bnQuAwkAAGYAAAACBQAAAA5Wb3VjaGVyX0Ftb3VudAUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAPElucHV0IFZvdWNoZXIgQmFsYW5jZSBjYW4ndCBleGNlZWQgdGhlIHNldCBtYXhpbXVtIGxpbWl0IG9mIAkAAaQAAAABBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQIAAAAMLzEwXjggV2F2ZXMuAwkAAGYAAAACBQAAABpUb3RhbFZvdWNoZXJzQmFsYW5jZW9mVXNlcgUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAACsgVm91Y2hlciBCYWxhbmNlIGlzIGV4Y2VlZGluZyB0aGUgbGltaXQgb2YgCQABpAAAAAEFAAAAFG1heGltdW1fdm91Y2hlcl9zaXplAgAAAAwvMTBeOCBXYXZlcy4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAZVG90YWxfVm91Y2hlcnNfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzBQAAABlUb3RhbFZvdWNoZXJzSXNzdWVkVG9Vc2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIFRvdGFsX1ZvdWNoZXJzX0Ftb3VudF9Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MFAAAAH1RvdGFsVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlBQAAABpUb3RhbFZvdWNoZXJzQmFsYW5jZW9mVXNlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UFAAAAG3VwZGF0ZV9Ub3RhbFZvdWNoZXJzQmFsYW5jZQUAAAADbmlsAAAAAWkBAAAAEERlcG9zaXRVc2VyRnVuZHMAAAAABAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAElObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIG9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADWNhbGxlcmFkZHJlc3MEAAAAE1ByZXZpb3VzVXNlckRlcG9zaXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAA1jYWxsZXJhZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEFRvdGFsVXNlckRlcG9zaXQJAABkAAAAAgUAAAATUHJldmlvdXNVc2VyRGVwb3NpdAgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGFByZXZpb3VzRGVwb3NpdENvdW50ZXJJRAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABJEZXBvc2l0X0NvdW50ZXJfSUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxEZXBvc2l0Q291bnRlcklECQAAZAAAAAIFAAAAGFByZXZpb3VzRGVwb3NpdENvdW50ZXJJRAAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAA+IEFkZHJlc3MgaXMgQmxhY2tsaXN0ZWQuIFBsZWFzZSBjb250YWN0IEFkbWluIHRvIFdoaXRlbGlzdCBpdC4DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAALk9ubHkgV0FWRVMgaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAANY2FsbGVyYWRkcmVzcwUAAAAQVG90YWxVc2VyRGVwb3NpdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAIAAAABXwUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADWNhbGxlcmFkZHJlc3MIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJEZXBvc2l0X0NvdW50ZXJfSUQFAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAUAAAADbmlsAAAAAWkBAAAAEVdpdGhkcmF3VXNlckZ1bmRzAAAAAgAAAAxVc2VyX0FkZHJlc3MAAAAGQW1vdW50BAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAD3JlYWR1c2VyYmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZHVzZXJiYWxhbmNlBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAABdtaW5pbWltX3dpdGhkcmF3X2Ftb3VudAAAAAAAAJiWgAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAZgAAAAIFAAAAF21pbmltaW1fd2l0aGRyYXdfYW1vdW50BQAAAAZBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAG01pbmltdW0gV2l0aGRyYXcgQW1vdW50IGlzIAkAAaQAAAABBQAAABdtaW5pbWltX3dpdGhkcmF3X2Ftb3VudAIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgAAAAAAAAAAAAUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAANVBsYWNlZCBXaXRoZHJhdyBBbW91bnQgaXMgZ29pbmcgaW4gbmVnYXRpdmUgU3RhdGUgb2YgCQABpAAAAAEFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzAgAAAA0vMTBeOF0gV0FWRVMuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBQcmV2aW91c19CYWxhbmNlBQAAAA9yZWFkdXNlcmJhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF05ldHdvcmtfRmVlX1RvX1dpdGhkcmF3BQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAxVc2VyX0FkZHJlc3MFAAAABkFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAAEEJsYWNrTGlzdEFkZHJlc3MAAAABAAAAC1VzZXJBZGRyZXNzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzBAAAABhQcmV2aW91c0JsYWNrTGlzdEFkZHJlc3MEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzCQAAZAAAAAIFAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkAAAIAAAABAgAAACpBZGRyZXNzIGlzIGFscmVhZHkgYXZhaWxhYmxlIGluIEJsYWNrbGlzdC4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MCAAAAA1llcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MFAAAAFVRvdGFsQmxhY2tMaXN0QWRkcmVzcwUAAAADbmlsAAAAAWkBAAAAFkRlbGV0ZUJsYWNrTGlzdEFkZHJlc3MAAAABAAAAC1VzZXJBZGRyZXNzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzBAAAABhQcmV2aW91c0JsYWNrTGlzdEFkZHJlc3MEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzCQAAZQAAAAIFAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAICAAAAI1Byb2R1Y3QgTGF1bmNoIFRpbWVzdGFtcCBpcyBzZXQgYXQgCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAtVc2VyQWRkcmVzcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MFAAAAFVRvdGFsQmxhY2tMaXN0QWRkcmVzcwUAAAADbmlsCQAAAgAAAAECAAAAJkFkZHJlc3MgaXMgbm90IGF2YWlsYWJsZSBpbiBCbGFja2xpc3QuAAAAAWkBAAAAGkluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duAAAAAAQAAAARYWRkU2h1dGRvd25TdGF0dXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAPU2h1dGRvd25fU3RhdHVzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAABFhZGRTaHV0ZG93blN0YXR1cwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPU2h1dGRvd25fU3RhdHVzAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAD1NodXRkb3duX1N0YXR1cwAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAA0RlbAAAAAEAAAAFRW50cnkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAFRW50cnkFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAHCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleedq2Ao=", "height": 2865954, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BwDT8duARJtx72YUpyne8jvWZqzxSWpxShtL1zhiy6di Next: 8jKGBcDHXhx1Ubq49YSWfWPJtgzDqmTwzV7NsZfZs4Yh Diff:
OldNewDifferences
4040 let F = ((E - p) - j)
4141 let G = x
4242 let H = y
43- let I = if ((E > F))
44- then true
45- else false
46- let J = q
47- let K = 1
48- let L = (J + K)
49- let M = {
50- let N = getInteger(this, "Total_Option_Orders")
51- if ($isInstanceOf(N, "Int"))
43+ let I = q
44+ let J = 1
45+ let K = (I + J)
46+ let L = {
47+ let M = getInteger(this, "Total_Option_Orders")
48+ if ($isInstanceOf(M, "Int"))
5249 then {
53- let O = N
54- O
50+ let N = M
51+ N
5552 }
5653 else 0
5754 }
58- let P = (M + 1)
59- let Q = {
60- let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
61- if ($isInstanceOf(N, "Int"))
55+ let O = (L + 1)
56+ let P = {
57+ let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
58+ if ($isInstanceOf(M, "Int"))
6259 then {
63- let O = N
64- O
60+ let N = M
61+ N
6562 }
6663 else 0
6764 }
68- let R = (Q + p)
69- let S = {
70- let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
71- if ($isInstanceOf(N, "Int"))
65+ let Q = (P + p)
66+ let R = {
67+ let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68+ if ($isInstanceOf(M, "Int"))
7269 then {
73- let O = N
74- O
70+ let N = M
71+ N
7572 }
7673 else 0
7774 }
78- let T = (S + 1)
79- let U = {
80- let N = getInteger(this, "Total_Calls")
81- if ($isInstanceOf(N, "Int"))
75+ let S = (R + 1)
76+ let T = {
77+ let M = getInteger(this, "Total_Calls")
78+ if ($isInstanceOf(M, "Int"))
8279 then {
83- let O = N
84- O
80+ let N = M
81+ N
8582 }
8683 else 0
8784 }
88- let V = (U + 1)
89- let W = {
90- let N = getInteger(this, ("Total_Calls_" + toString(J)))
91- if ($isInstanceOf(N, "Int"))
85+ let U = (T + 1)
86+ let V = {
87+ let M = getInteger(this, ("Total_Calls_" + toString(I)))
88+ if ($isInstanceOf(M, "Int"))
9289 then {
93- let O = N
94- O
90+ let N = M
91+ N
9592 }
9693 else 0
9794 }
98- let X = (W + 1)
99- let Y = {
100- let N = getInteger(this, (s + "_Total_Calls"))
101- if ($isInstanceOf(N, "Int"))
95+ let W = (V + 1)
96+ let X = {
97+ let M = getInteger(this, (s + "_Total_Calls"))
98+ if ($isInstanceOf(M, "Int"))
10299 then {
103- let O = N
104- O
100+ let N = M
101+ N
105102 }
106103 else 0
107104 }
108- let Z = (Y + 1)
109- let aa = {
110- let N = getInteger(this, ((s + "_Total_Calls_") + toString(J)))
111- if ($isInstanceOf(N, "Int"))
105+ let Y = (X + 1)
106+ let Z = {
107+ let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108+ if ($isInstanceOf(M, "Int"))
112109 then {
113- let O = N
114- O
110+ let N = M
111+ N
115112 }
116113 else 0
117114 }
118- let ab = (aa + 1)
119- let ac = fraction(B, 5, 100)
115+ let aa = (Z + 1)
116+ let ab = fraction(B, 5, 100)
120117 if ((o.caller != h))
121118 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
122119 else if ((n == 1))
129126 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
130127 else if ((lastBlock.timestamp >= H))
131128 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
132- else if ((R > ac))
133- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
129+ else if ((Q > ab))
130+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
134131 else if ((k > p))
135132 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
136133 else if ((p > l))
137134 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
138135 else if (if ((0 > D))
139- then (I == false)
136+ then (F > E)
140137 else false)
141138 then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
142139 else if ((size(toString(x)) != 13))
146143 else if (if ((E == 0))
147144 then true
148145 else (0 > F))
149- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
150- else if (I)
151- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
146+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
147+ else if ((F > 0))
148+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
152149 else throw("Wrong Entry.")
153150 }
154151
165162 let F = (E - p)
166163 let G = x
167164 let H = y
168- let J = q
169- let K = 1
170- let L = (J + K)
171- let M = {
172- let N = getInteger(this, "Total_Option_Orders")
173- if ($isInstanceOf(N, "Int"))
165+ let I = q
166+ let J = 1
167+ let K = (I + J)
168+ let L = {
169+ let M = getInteger(this, "Total_Option_Orders")
170+ if ($isInstanceOf(M, "Int"))
174171 then {
175- let O = N
176- O
172+ let N = M
173+ N
177174 }
178175 else 0
179176 }
180- let P = (M + 1)
181- let Q = {
182- let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
183- if ($isInstanceOf(N, "Int"))
177+ let O = (L + 1)
178+ let P = {
179+ let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
180+ if ($isInstanceOf(M, "Int"))
184181 then {
185- let O = N
186- O
182+ let N = M
183+ N
187184 }
188185 else 0
189186 }
190- let R = (Q + p)
191- let S = {
192- let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
193- if ($isInstanceOf(N, "Int"))
187+ let Q = (P + p)
188+ let R = {
189+ let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
190+ if ($isInstanceOf(M, "Int"))
194191 then {
195- let O = N
196- O
192+ let N = M
193+ N
197194 }
198195 else 0
199196 }
200- let T = (S + 1)
201- let ad = {
202- let N = getInteger(this, "Total_Puts")
203- if ($isInstanceOf(N, "Int"))
197+ let S = (R + 1)
198+ let ac = {
199+ let M = getInteger(this, "Total_Puts")
200+ if ($isInstanceOf(M, "Int"))
204201 then {
205- let O = N
206- O
202+ let N = M
203+ N
207204 }
208205 else 0
209206 }
210- let ae = (ad + 1)
211- let af = {
212- let N = getInteger(this, ("Total_Puts_" + toString(J)))
213- if ($isInstanceOf(N, "Int"))
207+ let ad = (ac + 1)
208+ let ae = {
209+ let M = getInteger(this, ("Total_Puts_" + toString(I)))
210+ if ($isInstanceOf(M, "Int"))
214211 then {
215- let O = N
216- O
212+ let N = M
213+ N
217214 }
218215 else 0
219216 }
220- let ag = (af + 1)
221- let ah = {
222- let N = getInteger(this, (s + "_Total_Puts"))
223- if ($isInstanceOf(N, "Int"))
217+ let af = (ae + 1)
218+ let ag = {
219+ let M = getInteger(this, (s + "_Total_Puts"))
220+ if ($isInstanceOf(M, "Int"))
224221 then {
225- let O = N
226- O
222+ let N = M
223+ N
227224 }
228225 else 0
229226 }
230- let ai = (ah + 1)
231- let aj = {
232- let N = getInteger(this, ((s + "_Total_Puts_") + toString(J)))
233- if ($isInstanceOf(N, "Int"))
227+ let ah = (ag + 1)
228+ let ai = {
229+ let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
230+ if ($isInstanceOf(M, "Int"))
234231 then {
235- let O = N
236- O
232+ let N = M
233+ N
237234 }
238235 else 0
239236 }
240- let ak = (aj + 1)
241- let ac = fraction(B, 5, 100)
237+ let aj = (ai + 1)
238+ let ab = fraction(B, 5, 100)
242239 if ((o.caller != h))
243240 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
244241 else if ((n == 1))
251248 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
252249 else if ((lastBlock.timestamp >= H))
253250 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
254- else if ((R > ac))
255- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
251+ else if ((Q > ab))
252+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
256253 else if ((k > p))
257254 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
258255 else if ((p > l))
263260 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
264261 else if ((size(toString(y)) != 13))
265262 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
266- else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ai)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ai)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ai)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Puts", ae), IntegerEntry(("Total_Puts_" + toString(J)), ag), IntegerEntry((s + "_Total_Puts"), ai), IntegerEntry(((s + "_Total_Puts_") + toString(J)), ak), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
263+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
267264 }
268265
269266
271268 @Callable(o)
272269 func Fill_Vouchers_Liquidity () = {
273270 let z = toBase58String(o.caller.bytes)
274- let al = if ((size(o.payments) == 1))
271+ let ak = if ((size(o.payments) == 1))
275272 then o.payments[0]
276273 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
277- let am = {
278- let N = getInteger(this, "Available_Vouchers_Balance")
279- if ($isInstanceOf(N, "Int"))
274+ let al = {
275+ let M = getInteger(this, "Available_Vouchers_Balance")
276+ if ($isInstanceOf(M, "Int"))
280277 then {
281- let O = N
282- O
278+ let N = M
279+ N
283280 }
284281 else 0
285282 }
286- let an = (am + al.amount)
287- let ao = {
288- let N = getInteger(this, "Vouchers_Counter_ID")
289- if ($isInstanceOf(N, "Int"))
283+ let am = (al + ak.amount)
284+ let an = {
285+ let M = getInteger(this, "Vouchers_Counter_ID")
286+ if ($isInstanceOf(M, "Int"))
290287 then {
291- let O = N
292- O
288+ let N = M
289+ N
293290 }
294291 else 0
295292 }
296- let ap = (ao + 1)
297- if (isDefined(al.assetId))
293+ let ao = (an + 1)
294+ if (isDefined(ak.assetId))
298295 then throw("Only WAVES is allowed to deposit at the moment")
299296 else if ((n == 1))
300297 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
301- else [IntegerEntry("Available_Vouchers_Balance", an), IntegerEntry((toString(ap) + "_Voucher_Added_Amount"), al.amount), IntegerEntry("Vouchers_Counter_ID", ap)]
298+ else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
302299 }
303300
304301
305302
306303 @Callable(o)
307-func Issue_Vouchers (aq,r,s) = {
308- let ar = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
309- let as = (ar - aq)
310- let at = {
311- let N = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
312- if ($isInstanceOf(N, "Int"))
304+func Issue_Vouchers (ap,r,s) = {
305+ let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
306+ let ar = (aq - ap)
307+ let as = {
308+ let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
309+ if ($isInstanceOf(M, "Int"))
313310 then {
314- let O = N
315- O
311+ let N = M
312+ N
316313 }
317314 else 0
318315 }
319- let au = (at + 1)
320- let av = {
321- let N = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
322- if ($isInstanceOf(N, "Int"))
316+ let at = (as + 1)
317+ let au = {
318+ let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
319+ if ($isInstanceOf(M, "Int"))
323320 then {
324- let O = N
325- O
321+ let N = M
322+ N
326323 }
327324 else 0
328325 }
329- let aw = (av + aq)
330- let ax = {
331- let N = getInteger(this, (s + "_Voucher_Balance"))
332- if ($isInstanceOf(N, "Int"))
326+ let av = (au + ap)
327+ let aw = {
328+ let M = getInteger(this, (s + "_Voucher_Balance"))
329+ if ($isInstanceOf(M, "Int"))
333330 then {
334- let O = N
335- O
331+ let N = M
332+ N
336333 }
337334 else 0
338335 }
339- let ay = (ax + aq)
336+ let ax = (aw + ap)
340337 if ((o.caller != h))
341338 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
342339 else if ((n == 1))
343340 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
344- else if ((0 >= aq))
341+ else if ((0 >= ap))
345342 then throw((("Voucher Balance can't be 0 or go in negative State. Increase the Voucher Amount where maximum limit is " + toString(m)) + "/10^8 Waves."))
346- else if ((0 >= as))
347- then throw((("Updated Voucher Balance can't go in negative State of " + toString(as)) + " /10^8 WAVES. Reduce the Voucher Amount."))
348- else if ((aq > m))
343+ else if ((0 >= ar))
344+ then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
345+ else if ((ap > m))
349346 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
350- else if ((ay > m))
347+ else if ((ax > m))
351348 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
352- else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), au), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), aw), IntegerEntry((s + "_Voucher_Balance"), ay), IntegerEntry("Available_Vouchers_Balance", as)]
349+ else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry((s + "_Voucher_Balance"), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
353350 }
354351
355352
357354 @Callable(o)
358355 func DepositUserFunds () = {
359356 let z = toBase58String(o.caller.bytes)
360- let al = if ((size(o.payments) == 1))
357+ let ak = if ((size(o.payments) == 1))
361358 then o.payments[0]
362359 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
363360 let A = getString(this, ("addr_BLACKLISTED_" + z))
364- let az = {
365- let N = getInteger(this, ((d + "_") + z))
366- if ($isInstanceOf(N, "Int"))
361+ let ay = {
362+ let M = getInteger(this, ((d + "_") + z))
363+ if ($isInstanceOf(M, "Int"))
367364 then {
368- let O = N
369- O
365+ let N = M
366+ N
370367 }
371368 else 0
372369 }
373- let aA = (az + al.amount)
374- let aB = {
375- let N = getInteger(this, "Deposit_Counter_ID")
376- if ($isInstanceOf(N, "Int"))
370+ let az = (ay + ak.amount)
371+ let aA = {
372+ let M = getInteger(this, "Deposit_Counter_ID")
373+ if ($isInstanceOf(M, "Int"))
377374 then {
378- let O = N
379- O
375+ let N = M
376+ N
380377 }
381378 else 0
382379 }
383- let aC = (aB + 1)
380+ let aB = (aA + 1)
384381 if ((c > lastBlock.timestamp))
385382 then throw((e + toString(c)))
386383 else if ((n == 1))
387384 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
388385 else if ((A == "Yes"))
389386 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
390- else if (isDefined(al.assetId))
387+ else if (isDefined(ak.assetId))
391388 then throw("Only WAVES is allowed to deposit at the moment")
392- else [IntegerEntry(((d + "_") + z), aA), IntegerEntry(((((toString(aC) + "_") + d) + "_") + z), al.amount), IntegerEntry("Deposit_Counter_ID", aC)]
389+ else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
393390 }
394391
395392
397394 @Callable(o)
398395 func WithdrawUserFunds (s,p) = {
399396 let z = toBase58String(o.caller.bytes)
400- let aD = getIntegerValue(((d + "_") + s))
401- let D = ((aD - p) - j)
402- let aE = 10000000
397+ let aC = getIntegerValue(((d + "_") + s))
398+ let D = ((aC - p) - j)
399+ let aD = 10000000
403400 if ((o.caller != h))
404401 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
405402 else if ((n == 1))
406403 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
407- else if ((aE > p))
408- then throw((("Minimum Withdraw Amount is " + toString(aE)) + "/10^8] WAVES."))
404+ else if ((aD > p))
405+ then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
409406 else if ((0 > D))
410407 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
411- else [IntegerEntry("Previous_Balance", aD), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
408+ else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
412409 }
413410
414411
415412
416413 @Callable(o)
417-func BlackListAddress (aF) = {
418- let A = getString(this, ("addr_BLACKLISTED_" + aF))
419- let aG = {
420- let N = getInteger(this, "Total_Black_Listed_Address")
421- if ($isInstanceOf(N, "Int"))
414+func BlackListAddress (aE) = {
415+ let A = getString(this, ("addr_BLACKLISTED_" + aE))
416+ let aF = {
417+ let M = getInteger(this, "Total_Black_Listed_Address")
418+ if ($isInstanceOf(M, "Int"))
422419 then {
423- let O = N
424- O
420+ let N = M
421+ N
425422 }
426423 else 0
427424 }
428- let aH = (aG + 1)
425+ let aG = (aF + 1)
429426 if ((c > lastBlock.timestamp))
430427 then throw((e + toString(c)))
431428 else if ((o.caller != h))
434431 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
435432 else if ((A == "Yes"))
436433 then throw("Address is already available in Blacklist.")
437- else [StringEntry(("addr_BLACKLISTED_" + aF), "Yes"), IntegerEntry("Total_Black_Listed_Address", aH)]
434+ else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
438435 }
439436
440437
441438
442439 @Callable(o)
443-func DeleteBlackListAddress (aF) = {
444- let A = getString(this, ("addr_BLACKLISTED_" + aF))
445- let aG = {
446- let N = getInteger(this, "Total_Black_Listed_Address")
447- if ($isInstanceOf(N, "Int"))
440+func DeleteBlackListAddress (aE) = {
441+ let A = getString(this, ("addr_BLACKLISTED_" + aE))
442+ let aF = {
443+ let M = getInteger(this, "Total_Black_Listed_Address")
444+ if ($isInstanceOf(M, "Int"))
448445 then {
449- let O = N
450- O
446+ let N = M
447+ N
451448 }
452449 else 0
453450 }
454- let aH = (aG - 1)
451+ let aG = (aF - 1)
455452 if ((c > lastBlock.timestamp))
456453 then throw(("Product Launch Timestamp is set at " + toString(c)))
457454 else if ((o.caller != h))
459456 else if ((n == 1))
460457 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
461458 else if ((A == "Yes"))
462- then [DeleteEntry(("addr_BLACKLISTED_" + aF)), IntegerEntry("Total_Black_Listed_Address", aH)]
459+ then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
463460 else throw("Address is not available in Blacklist.")
464461 }
465462
467464
468465 @Callable(o)
469466 func Initiate_Contract_Shutdown () = {
470- let aI = {
471- let N = getInteger(this, "Shutdown_Status")
472- if ($isInstanceOf(N, "Int"))
467+ let aH = {
468+ let M = getInteger(this, "Shutdown_Status")
469+ if ($isInstanceOf(M, "Int"))
473470 then {
474- let O = N
475- O
471+ let N = M
472+ N
476473 }
477474 else 0
478475 }
479476 if ((o.caller != h))
480477 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
481- else if ((aI == 0))
478+ else if ((aH == 0))
482479 then [IntegerEntry("Shutdown_Status", 1)]
483480 else [IntegerEntry("Shutdown_Status", 0)]
484481 }
486483
487484
488485 @Callable(o)
489-func Del (aJ) = [DeleteEntry(aJ)]
486+func Del (aI) = [DeleteEntry(aI)]
490487
491488
492-@Verifier(aK)
493-func aL () = {
494- let N = aK
495- if (if ($isInstanceOf(N, "Order"))
489+@Verifier(aJ)
490+func aK () = {
491+ let M = aJ
492+ if (if ($isInstanceOf(M, "Order"))
496493 then true
497- else if ($isInstanceOf(N, "ExchangeTransaction"))
494+ else if ($isInstanceOf(M, "ExchangeTransaction"))
498495 then true
499- else if ($isInstanceOf(N, "MassTransferTransaction"))
496+ else if ($isInstanceOf(M, "MassTransferTransaction"))
500497 then true
501- else $isInstanceOf(N, "TransferTransaction"))
498+ else $isInstanceOf(M, "TransferTransaction"))
502499 then {
503- let aM = N
500+ let aL = M
504501 false
505502 }
506- else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
503+ else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
507504 }
508505
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh"
55
66 let b = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt'
77
88 let c = 1695427860000
99
1010 let d = "WAVES"
1111
1212 let e = "Product Launch Timestamp is set at "
1313
1414 let f = "No payment attached, Please Attach Token in payment[1]."
1515
1616 let g = "Oracle is closed. Wait Until Oracle is Turned On."
1717
1818 let h = addressFromPublicKey(b)
1919
2020 let i = addressFromPublicKey(base58'6oay51Q6zPcFP9bSwUC4Potx2KGyD4AUjpL5uLR4QeRN')
2121
2222 let j = 900000
2323
2424 let k = 10000000
2525
2626 let l = 10000000000
2727
2828 let m = 100000000
2929
3030 let n = valueOrErrorMessage(getInteger(this, "Shutdown_Status"), "Initiate_Contract_Shutdown function value is not Set, Please Sign that first.")
3131
3232 @Callable(o)
3333 func placeoptionCall (p,q,r,s,t,u,v,w,x,y) = {
3434 let z = toBase58String(o.caller.bytes)
3535 let A = getString(this, ("addr_BLACKLISTED_" + s))
3636 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
3737 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
3838 let D = ((C - p) - j)
3939 let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
4040 let F = ((E - p) - j)
4141 let G = x
4242 let H = y
43- let I = if ((E > F))
44- then true
45- else false
46- let J = q
47- let K = 1
48- let L = (J + K)
49- let M = {
50- let N = getInteger(this, "Total_Option_Orders")
51- if ($isInstanceOf(N, "Int"))
43+ let I = q
44+ let J = 1
45+ let K = (I + J)
46+ let L = {
47+ let M = getInteger(this, "Total_Option_Orders")
48+ if ($isInstanceOf(M, "Int"))
5249 then {
53- let O = N
54- O
50+ let N = M
51+ N
5552 }
5653 else 0
5754 }
58- let P = (M + 1)
59- let Q = {
60- let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
61- if ($isInstanceOf(N, "Int"))
55+ let O = (L + 1)
56+ let P = {
57+ let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
58+ if ($isInstanceOf(M, "Int"))
6259 then {
63- let O = N
64- O
60+ let N = M
61+ N
6562 }
6663 else 0
6764 }
68- let R = (Q + p)
69- let S = {
70- let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
71- if ($isInstanceOf(N, "Int"))
65+ let Q = (P + p)
66+ let R = {
67+ let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68+ if ($isInstanceOf(M, "Int"))
7269 then {
73- let O = N
74- O
70+ let N = M
71+ N
7572 }
7673 else 0
7774 }
78- let T = (S + 1)
79- let U = {
80- let N = getInteger(this, "Total_Calls")
81- if ($isInstanceOf(N, "Int"))
75+ let S = (R + 1)
76+ let T = {
77+ let M = getInteger(this, "Total_Calls")
78+ if ($isInstanceOf(M, "Int"))
8279 then {
83- let O = N
84- O
80+ let N = M
81+ N
8582 }
8683 else 0
8784 }
88- let V = (U + 1)
89- let W = {
90- let N = getInteger(this, ("Total_Calls_" + toString(J)))
91- if ($isInstanceOf(N, "Int"))
85+ let U = (T + 1)
86+ let V = {
87+ let M = getInteger(this, ("Total_Calls_" + toString(I)))
88+ if ($isInstanceOf(M, "Int"))
9289 then {
93- let O = N
94- O
90+ let N = M
91+ N
9592 }
9693 else 0
9794 }
98- let X = (W + 1)
99- let Y = {
100- let N = getInteger(this, (s + "_Total_Calls"))
101- if ($isInstanceOf(N, "Int"))
95+ let W = (V + 1)
96+ let X = {
97+ let M = getInteger(this, (s + "_Total_Calls"))
98+ if ($isInstanceOf(M, "Int"))
10299 then {
103- let O = N
104- O
100+ let N = M
101+ N
105102 }
106103 else 0
107104 }
108- let Z = (Y + 1)
109- let aa = {
110- let N = getInteger(this, ((s + "_Total_Calls_") + toString(J)))
111- if ($isInstanceOf(N, "Int"))
105+ let Y = (X + 1)
106+ let Z = {
107+ let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108+ if ($isInstanceOf(M, "Int"))
112109 then {
113- let O = N
114- O
110+ let N = M
111+ N
115112 }
116113 else 0
117114 }
118- let ab = (aa + 1)
119- let ac = fraction(B, 5, 100)
115+ let aa = (Z + 1)
116+ let ab = fraction(B, 5, 100)
120117 if ((o.caller != h))
121118 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
122119 else if ((n == 1))
123120 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
124121 else if ((c > lastBlock.timestamp))
125122 then throw((e + toString(c)))
126123 else if ((w == "CLOSE"))
127124 then throw(g)
128125 else if ((A == "Yes"))
129126 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
130127 else if ((lastBlock.timestamp >= H))
131128 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
132- else if ((R > ac))
133- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
129+ else if ((Q > ab))
130+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
134131 else if ((k > p))
135132 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
136133 else if ((p > l))
137134 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
138135 else if (if ((0 > D))
139- then (I == false)
136+ then (F > E)
140137 else false)
141138 then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
142139 else if ((size(toString(x)) != 13))
143140 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
144141 else if ((size(toString(y)) != 13))
145142 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
146143 else if (if ((E == 0))
147144 then true
148145 else (0 > F))
149- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
150- else if (I)
151- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
146+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
147+ else if ((F > 0))
148+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
152149 else throw("Wrong Entry.")
153150 }
154151
155152
156153
157154 @Callable(o)
158155 func placeoptionPut (p,q,r,s,t,u,v,w,x,y) = {
159156 let z = toBase58String(o.caller.bytes)
160157 let A = getString(this, ("addr_BLACKLISTED_" + s))
161158 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
162159 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
163160 let D = ((C - p) - j)
164161 let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
165162 let F = (E - p)
166163 let G = x
167164 let H = y
168- let J = q
169- let K = 1
170- let L = (J + K)
171- let M = {
172- let N = getInteger(this, "Total_Option_Orders")
173- if ($isInstanceOf(N, "Int"))
165+ let I = q
166+ let J = 1
167+ let K = (I + J)
168+ let L = {
169+ let M = getInteger(this, "Total_Option_Orders")
170+ if ($isInstanceOf(M, "Int"))
174171 then {
175- let O = N
176- O
172+ let N = M
173+ N
177174 }
178175 else 0
179176 }
180- let P = (M + 1)
181- let Q = {
182- let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
183- if ($isInstanceOf(N, "Int"))
177+ let O = (L + 1)
178+ let P = {
179+ let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
180+ if ($isInstanceOf(M, "Int"))
184181 then {
185- let O = N
186- O
182+ let N = M
183+ N
187184 }
188185 else 0
189186 }
190- let R = (Q + p)
191- let S = {
192- let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
193- if ($isInstanceOf(N, "Int"))
187+ let Q = (P + p)
188+ let R = {
189+ let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
190+ if ($isInstanceOf(M, "Int"))
194191 then {
195- let O = N
196- O
192+ let N = M
193+ N
197194 }
198195 else 0
199196 }
200- let T = (S + 1)
201- let ad = {
202- let N = getInteger(this, "Total_Puts")
203- if ($isInstanceOf(N, "Int"))
197+ let S = (R + 1)
198+ let ac = {
199+ let M = getInteger(this, "Total_Puts")
200+ if ($isInstanceOf(M, "Int"))
204201 then {
205- let O = N
206- O
202+ let N = M
203+ N
207204 }
208205 else 0
209206 }
210- let ae = (ad + 1)
211- let af = {
212- let N = getInteger(this, ("Total_Puts_" + toString(J)))
213- if ($isInstanceOf(N, "Int"))
207+ let ad = (ac + 1)
208+ let ae = {
209+ let M = getInteger(this, ("Total_Puts_" + toString(I)))
210+ if ($isInstanceOf(M, "Int"))
214211 then {
215- let O = N
216- O
212+ let N = M
213+ N
217214 }
218215 else 0
219216 }
220- let ag = (af + 1)
221- let ah = {
222- let N = getInteger(this, (s + "_Total_Puts"))
223- if ($isInstanceOf(N, "Int"))
217+ let af = (ae + 1)
218+ let ag = {
219+ let M = getInteger(this, (s + "_Total_Puts"))
220+ if ($isInstanceOf(M, "Int"))
224221 then {
225- let O = N
226- O
222+ let N = M
223+ N
227224 }
228225 else 0
229226 }
230- let ai = (ah + 1)
231- let aj = {
232- let N = getInteger(this, ((s + "_Total_Puts_") + toString(J)))
233- if ($isInstanceOf(N, "Int"))
227+ let ah = (ag + 1)
228+ let ai = {
229+ let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
230+ if ($isInstanceOf(M, "Int"))
234231 then {
235- let O = N
236- O
232+ let N = M
233+ N
237234 }
238235 else 0
239236 }
240- let ak = (aj + 1)
241- let ac = fraction(B, 5, 100)
237+ let aj = (ai + 1)
238+ let ab = fraction(B, 5, 100)
242239 if ((o.caller != h))
243240 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
244241 else if ((n == 1))
245242 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
246243 else if ((c > lastBlock.timestamp))
247244 then throw((e + toString(c)))
248245 else if ((w == "CLOSE"))
249246 then throw(g)
250247 else if ((A == "Yes"))
251248 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
252249 else if ((lastBlock.timestamp >= H))
253250 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
254- else if ((R > ac))
255- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
251+ else if ((Q > ab))
252+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
256253 else if ((k > p))
257254 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
258255 else if ((p > l))
259256 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
260257 else if ((0 > D))
261258 then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(D)))
262259 else if ((size(toString(x)) != 13))
263260 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
264261 else if ((size(toString(y)) != 13))
265262 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
266- else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ai)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ai)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ai)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Puts", ae), IntegerEntry(("Total_Puts_" + toString(J)), ag), IntegerEntry((s + "_Total_Puts"), ai), IntegerEntry(((s + "_Total_Puts_") + toString(J)), ak), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
263+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
267264 }
268265
269266
270267
271268 @Callable(o)
272269 func Fill_Vouchers_Liquidity () = {
273270 let z = toBase58String(o.caller.bytes)
274- let al = if ((size(o.payments) == 1))
271+ let ak = if ((size(o.payments) == 1))
275272 then o.payments[0]
276273 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
277- let am = {
278- let N = getInteger(this, "Available_Vouchers_Balance")
279- if ($isInstanceOf(N, "Int"))
274+ let al = {
275+ let M = getInteger(this, "Available_Vouchers_Balance")
276+ if ($isInstanceOf(M, "Int"))
280277 then {
281- let O = N
282- O
278+ let N = M
279+ N
283280 }
284281 else 0
285282 }
286- let an = (am + al.amount)
287- let ao = {
288- let N = getInteger(this, "Vouchers_Counter_ID")
289- if ($isInstanceOf(N, "Int"))
283+ let am = (al + ak.amount)
284+ let an = {
285+ let M = getInteger(this, "Vouchers_Counter_ID")
286+ if ($isInstanceOf(M, "Int"))
290287 then {
291- let O = N
292- O
288+ let N = M
289+ N
293290 }
294291 else 0
295292 }
296- let ap = (ao + 1)
297- if (isDefined(al.assetId))
293+ let ao = (an + 1)
294+ if (isDefined(ak.assetId))
298295 then throw("Only WAVES is allowed to deposit at the moment")
299296 else if ((n == 1))
300297 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
301- else [IntegerEntry("Available_Vouchers_Balance", an), IntegerEntry((toString(ap) + "_Voucher_Added_Amount"), al.amount), IntegerEntry("Vouchers_Counter_ID", ap)]
298+ else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
302299 }
303300
304301
305302
306303 @Callable(o)
307-func Issue_Vouchers (aq,r,s) = {
308- let ar = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
309- let as = (ar - aq)
310- let at = {
311- let N = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
312- if ($isInstanceOf(N, "Int"))
304+func Issue_Vouchers (ap,r,s) = {
305+ let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
306+ let ar = (aq - ap)
307+ let as = {
308+ let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
309+ if ($isInstanceOf(M, "Int"))
313310 then {
314- let O = N
315- O
311+ let N = M
312+ N
316313 }
317314 else 0
318315 }
319- let au = (at + 1)
320- let av = {
321- let N = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
322- if ($isInstanceOf(N, "Int"))
316+ let at = (as + 1)
317+ let au = {
318+ let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
319+ if ($isInstanceOf(M, "Int"))
323320 then {
324- let O = N
325- O
321+ let N = M
322+ N
326323 }
327324 else 0
328325 }
329- let aw = (av + aq)
330- let ax = {
331- let N = getInteger(this, (s + "_Voucher_Balance"))
332- if ($isInstanceOf(N, "Int"))
326+ let av = (au + ap)
327+ let aw = {
328+ let M = getInteger(this, (s + "_Voucher_Balance"))
329+ if ($isInstanceOf(M, "Int"))
333330 then {
334- let O = N
335- O
331+ let N = M
332+ N
336333 }
337334 else 0
338335 }
339- let ay = (ax + aq)
336+ let ax = (aw + ap)
340337 if ((o.caller != h))
341338 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
342339 else if ((n == 1))
343340 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
344- else if ((0 >= aq))
341+ else if ((0 >= ap))
345342 then throw((("Voucher Balance can't be 0 or go in negative State. Increase the Voucher Amount where maximum limit is " + toString(m)) + "/10^8 Waves."))
346- else if ((0 >= as))
347- then throw((("Updated Voucher Balance can't go in negative State of " + toString(as)) + " /10^8 WAVES. Reduce the Voucher Amount."))
348- else if ((aq > m))
343+ else if ((0 >= ar))
344+ then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
345+ else if ((ap > m))
349346 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
350- else if ((ay > m))
347+ else if ((ax > m))
351348 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
352- else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), au), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), aw), IntegerEntry((s + "_Voucher_Balance"), ay), IntegerEntry("Available_Vouchers_Balance", as)]
349+ else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry((s + "_Voucher_Balance"), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
353350 }
354351
355352
356353
357354 @Callable(o)
358355 func DepositUserFunds () = {
359356 let z = toBase58String(o.caller.bytes)
360- let al = if ((size(o.payments) == 1))
357+ let ak = if ((size(o.payments) == 1))
361358 then o.payments[0]
362359 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
363360 let A = getString(this, ("addr_BLACKLISTED_" + z))
364- let az = {
365- let N = getInteger(this, ((d + "_") + z))
366- if ($isInstanceOf(N, "Int"))
361+ let ay = {
362+ let M = getInteger(this, ((d + "_") + z))
363+ if ($isInstanceOf(M, "Int"))
367364 then {
368- let O = N
369- O
365+ let N = M
366+ N
370367 }
371368 else 0
372369 }
373- let aA = (az + al.amount)
374- let aB = {
375- let N = getInteger(this, "Deposit_Counter_ID")
376- if ($isInstanceOf(N, "Int"))
370+ let az = (ay + ak.amount)
371+ let aA = {
372+ let M = getInteger(this, "Deposit_Counter_ID")
373+ if ($isInstanceOf(M, "Int"))
377374 then {
378- let O = N
379- O
375+ let N = M
376+ N
380377 }
381378 else 0
382379 }
383- let aC = (aB + 1)
380+ let aB = (aA + 1)
384381 if ((c > lastBlock.timestamp))
385382 then throw((e + toString(c)))
386383 else if ((n == 1))
387384 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
388385 else if ((A == "Yes"))
389386 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
390- else if (isDefined(al.assetId))
387+ else if (isDefined(ak.assetId))
391388 then throw("Only WAVES is allowed to deposit at the moment")
392- else [IntegerEntry(((d + "_") + z), aA), IntegerEntry(((((toString(aC) + "_") + d) + "_") + z), al.amount), IntegerEntry("Deposit_Counter_ID", aC)]
389+ else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
393390 }
394391
395392
396393
397394 @Callable(o)
398395 func WithdrawUserFunds (s,p) = {
399396 let z = toBase58String(o.caller.bytes)
400- let aD = getIntegerValue(((d + "_") + s))
401- let D = ((aD - p) - j)
402- let aE = 10000000
397+ let aC = getIntegerValue(((d + "_") + s))
398+ let D = ((aC - p) - j)
399+ let aD = 10000000
403400 if ((o.caller != h))
404401 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
405402 else if ((n == 1))
406403 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
407- else if ((aE > p))
408- then throw((("Minimum Withdraw Amount is " + toString(aE)) + "/10^8] WAVES."))
404+ else if ((aD > p))
405+ then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
409406 else if ((0 > D))
410407 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
411- else [IntegerEntry("Previous_Balance", aD), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
408+ else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
412409 }
413410
414411
415412
416413 @Callable(o)
417-func BlackListAddress (aF) = {
418- let A = getString(this, ("addr_BLACKLISTED_" + aF))
419- let aG = {
420- let N = getInteger(this, "Total_Black_Listed_Address")
421- if ($isInstanceOf(N, "Int"))
414+func BlackListAddress (aE) = {
415+ let A = getString(this, ("addr_BLACKLISTED_" + aE))
416+ let aF = {
417+ let M = getInteger(this, "Total_Black_Listed_Address")
418+ if ($isInstanceOf(M, "Int"))
422419 then {
423- let O = N
424- O
420+ let N = M
421+ N
425422 }
426423 else 0
427424 }
428- let aH = (aG + 1)
425+ let aG = (aF + 1)
429426 if ((c > lastBlock.timestamp))
430427 then throw((e + toString(c)))
431428 else if ((o.caller != h))
432429 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
433430 else if ((n == 1))
434431 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
435432 else if ((A == "Yes"))
436433 then throw("Address is already available in Blacklist.")
437- else [StringEntry(("addr_BLACKLISTED_" + aF), "Yes"), IntegerEntry("Total_Black_Listed_Address", aH)]
434+ else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
438435 }
439436
440437
441438
442439 @Callable(o)
443-func DeleteBlackListAddress (aF) = {
444- let A = getString(this, ("addr_BLACKLISTED_" + aF))
445- let aG = {
446- let N = getInteger(this, "Total_Black_Listed_Address")
447- if ($isInstanceOf(N, "Int"))
440+func DeleteBlackListAddress (aE) = {
441+ let A = getString(this, ("addr_BLACKLISTED_" + aE))
442+ let aF = {
443+ let M = getInteger(this, "Total_Black_Listed_Address")
444+ if ($isInstanceOf(M, "Int"))
448445 then {
449- let O = N
450- O
446+ let N = M
447+ N
451448 }
452449 else 0
453450 }
454- let aH = (aG - 1)
451+ let aG = (aF - 1)
455452 if ((c > lastBlock.timestamp))
456453 then throw(("Product Launch Timestamp is set at " + toString(c)))
457454 else if ((o.caller != h))
458455 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
459456 else if ((n == 1))
460457 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
461458 else if ((A == "Yes"))
462- then [DeleteEntry(("addr_BLACKLISTED_" + aF)), IntegerEntry("Total_Black_Listed_Address", aH)]
459+ then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
463460 else throw("Address is not available in Blacklist.")
464461 }
465462
466463
467464
468465 @Callable(o)
469466 func Initiate_Contract_Shutdown () = {
470- let aI = {
471- let N = getInteger(this, "Shutdown_Status")
472- if ($isInstanceOf(N, "Int"))
467+ let aH = {
468+ let M = getInteger(this, "Shutdown_Status")
469+ if ($isInstanceOf(M, "Int"))
473470 then {
474- let O = N
475- O
471+ let N = M
472+ N
476473 }
477474 else 0
478475 }
479476 if ((o.caller != h))
480477 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
481- else if ((aI == 0))
478+ else if ((aH == 0))
482479 then [IntegerEntry("Shutdown_Status", 1)]
483480 else [IntegerEntry("Shutdown_Status", 0)]
484481 }
485482
486483
487484
488485 @Callable(o)
489-func Del (aJ) = [DeleteEntry(aJ)]
486+func Del (aI) = [DeleteEntry(aI)]
490487
491488
492-@Verifier(aK)
493-func aL () = {
494- let N = aK
495- if (if ($isInstanceOf(N, "Order"))
489+@Verifier(aJ)
490+func aK () = {
491+ let M = aJ
492+ if (if ($isInstanceOf(M, "Order"))
496493 then true
497- else if ($isInstanceOf(N, "ExchangeTransaction"))
494+ else if ($isInstanceOf(M, "ExchangeTransaction"))
498495 then true
499- else if ($isInstanceOf(N, "MassTransferTransaction"))
496+ else if ($isInstanceOf(M, "MassTransferTransaction"))
500497 then true
501- else $isInstanceOf(N, "TransferTransaction"))
498+ else $isInstanceOf(M, "TransferTransaction"))
502499 then {
503- let aM = N
500+ let aL = M
504501 false
505502 }
506- else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
503+ else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
507504 }
508505

github/deemru/w8io/169f3d6 
202.04 ms