tx · 3D8Hk7Fwmn1ema6umLyGMU3knyYh13kVFjdn9M2VpfTk

3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU:  -0.01400000 Waves

2021.06.08 13:38 [1561270] smart account 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU > SELF 0.00000000 Waves

{ "type": 13, "id": "3D8Hk7Fwmn1ema6umLyGMU3knyYh13kVFjdn9M2VpfTk", "fee": 1400000, "feeAssetId": null, "timestamp": 1623148689844, "version": 2, "chainId": 84, "sender": "3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU", "senderPublicKey": "AWADFmQjf2WbDSqb24S9YZpix3VEdiBdeiJ2J2sSfQ49", "proofs": [ "2F2hthRmMJyUEyuWZ7cE8EsiwNyNL9wXRGJ5rNmvHCUf6jeJUPWarMA6HMoFDYC3H9oLP4jdtTHvTRNdY5vvsKju" ], "script": "base64:AAIEAAAAAAAAAB0IAhIAEgASAwoBARIAEgASCAoGGBEYEQEBEgASAAAAAEoAAAAADGFkbWluUHViS2V5MQEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAADGFkbWluUHViS2V5MgEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAADGFkbWluUHViS2V5MwEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAARYWRtaW5QdWJLZXlXYWxsZXQBAAAAID53WmVaVsn8KVcztbwNRS3KzKf4hZION3dY82IVUhQSAAAAAAlrZXlBY3RpdmUCAAAABmFjdGl2ZQAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAA9rZXlMYXN0SW50ZXJlc3QCAAAADWxhc3RfaW50ZXJlc3QAAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QCAAAADl9sYXN0X2ludGVyZXN0AAAAABFrZXlVc2VyU1dPUExvY2tlZAIAAAAMX1NXT1BfYW1vdW50AAAAABRrZXlVc2VyR2V0QmFja0hlaWdodAIAAAAOX2dldEJhY2tIZWlnaHQAAAAAEmtleVRvdGFsU1dPUExvY2tlZAIAAAARdG90YWxfU1dPUF9hbW91bnQAAAAAEmtVc2VyVG90YWxWb3RlU1dPUAIAAAAVX3VzZXJfdG90YWxfU1dPUF92b3RlAAAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAIAAAATX1NXT1Bfb3B0aW9uX2Ftb3VudAAAAAAYa2V5VG90YWxWb3RlT3B0aW9uQW1vdW50AgAAABh0b3RhbF9TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAIAAAAUX1NXT1BfY2xhaW1lZF9hbW91bnQAAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQCAAAAGV9TV09QX2xhc3RfY2xhaW1lZF9hbW91bnQAAAAAC2tleVZvdGVOYW1lAgAAAAl2b3RlX25hbWUAAAAADWtleU9wdGlvbk5hbWUCAAAADF9vcHRpb25fbmFtZQAAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQCAAAADF9zdGFydEhlaWdodAAAAAAPa2V5Vm90ZUR1cmF0aW9uAgAAAA5fdm90ZV9kdXJhdGlvbgAAAAAca2V5UmV3YXJkUG9vbEZyYWN0aW9uQ3VycmVudAIAAAAdX2N1cnJlbnRfcG9vbF9mcmFjdGlvbl9yZXdhcmQAAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzAgAAAB5fcHJldmlvdXNfcG9vbF9mcmFjdGlvbl9yZXdhcmQAAAAAFWtleUhlaWdodFBvb2xGcmFjdGlvbgIAAAAVX3Jld2FyZF91cGRhdGVfaGVpZ2h0AAAAAB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIAAAAedG90YWxfcmV3YXJkX3Blcl9ibG9ja19jdXJyZW50AAAAAB5rZXlUb3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMCAAAAH3RvdGFsX3Jld2FyZF9wZXJfYmxvY2tfcHJldmlvdXMAAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAIAAAAUcmV3YXJkX3VwZGF0ZV9oZWlnaHQAAAAAFWtleU5vVm90aW5nRm9yTmV3UG9vbAIAAAAIX3ZvdGVfbm8AAAAAFmtleVllc1ZvdGluZ0Zvck5ld1Bvb2wCAAAACV92b3RlX3llcwAAAAAba2V5QW1vdW50T2ZWb3RpbmdGb3JOZXdQb29sAgAAABFtYXhfYW1vdW50X3ZvdGluZwAAAAAba2V5U3RhdHVzT2ZWb3RpbmdGb3JOZXdQb29sAgAAAAdfc3RhdHVzAAAAAB9rZXlIZWlnaHRPZlBvb2xWb3RpbmdGb3JOZXdQb29sAgAAAA5fZmluaXNoX2hlaWdodAAAAAAPYWN0aXZlVm90ZUZpcnN0AgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMQAAAAAQYWN0aXZlVm90ZVNlY29uZAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzIAAAAAD2FjdGl2ZVZvdGVUaGlyZAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzMAAAAADmtleVRlbXBQcmV2U3VtAgAAABNzdW1fcmV3YXJkX3ByZXZpb3VzAAAAAA1rZXlUZW1wQ3VyU3VtAgAAABJzdW1fcmV3YXJkX2N1cnJlbnQAAAAACGlzQWN0aXZlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAACWtleUFjdGl2ZQYAAAAAEmZhcm1pbmdTV09QQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVCxLgnZGje8ZMj0pqQTMC/r2IdKOt5kvZgAAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUGjZ+31einSdpXP6/9ybU5/uhw2g+IMp/AAAAABB2b3RpbmdGb3JOZXdQb29sCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUdiHheRXLc3d/P6BjdFCrIyxbGRiD80uCAAAAAAlrZXlTV09QaWQCAAAAB1NXT1BfaWQAAAAABFNXT1AJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAASZmFybWluZ1NXT1BBZGRyZXNzBQAAAAlrZXlTV09QaWQAAAAACnNjYWxlVmFsdWUAAAAAAAX14QAAAAAADnRvdGFsVm90ZVNoYXJlAAAAAAJUC+QAAAAAAAxrU3RhcnRIZWlnaHQCAAAADHN0YXJ0X2hlaWdodAAAAAALa0Jhc2VQZXJpb2QCAAAAC2Jhc2VfcGVyaW9kAAAAAA1rUGVyaW9kTGVuZ3RoAgAAAA1wZXJpb2RfbGVuZ3RoAAAAAA9rVXNlclRvdGFsU3RydWMCAAAAEV91c2VyX3RvdGFsX3N0cnVjAAAAAApiYXNlUGVyaW9kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0BQAAAAtrQmFzZVBlcmlvZAIAAAAkRW1wdHkga0Jhc2VQZXJpb2QgYXQgdm90aW5nIGNvbnRyYWN0AAAAAAtzdGFydEhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAUAAAAMa1N0YXJ0SGVpZ2h0AgAAACVFbXB0eSBrU3RhcnRIZWlnaHQgYXQgdm90aW5nIGNvbnRyYWN0AAAAAAxwZXJpb2RMZW5ndGgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QFAAAADWtQZXJpb2RMZW5ndGgCAAAAJkVtcHR5IGtQZXJpb2RMZW5ndGggYXQgdm90aW5nIGNvbnRyYWN0AAAAAA9maXJzdEFjdGl2ZVZvdGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAUAAAAPYWN0aXZlVm90ZUZpcnN0AgAAAAAAAAAAEHNlY29uZEFjdGl2ZVZvdGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAUAAAAQYWN0aXZlVm90ZVNlY29uZAIAAAAAAAAAAA90aGlyZEFjdGl2ZVZvdGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAUAAAAPYWN0aXZlVm90ZVRoaXJkAgAAAAAAAAAAEGN1cnJWb3RpbmdQZXJpb2QJAABkAAAAAgUAAAAKYmFzZVBlcmlvZAkAAGkAAAACCQAAZQAAAAIFAAAABmhlaWdodAUAAAALc3RhcnRIZWlnaHQFAAAADHBlcmlvZExlbmd0aAEAAAAHc3VzcGVuZAAAAAEAAAAFY2F1c2UJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAIa2V5Q2F1c2UFAAAABWNhdXNlBQAAAANuaWwBAAAAEnRocm93Tm90RW5vdWdoU1dPUAAAAAAJAAACAAAAAQIAAABGTm90IGVub3VnaCBTV09QOiB1c2VyU1dPUExvY2tlZCAtIHVzZXJUb3RhbFZvdGVBbW91bnQgPCB2b3RlU1dPUEFtb3VudAEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA9rZXlMYXN0SW50ZXJlc3QAAAAAAAAAAAAFAAAADGxhc3RJbnRlcmVzdAEAAAARZ2V0VXNlclNXT1BMb2NrZWQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkAAAAAAAAAAAAAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAAAAAAAAAEAAAAWZ2V0VXNlclRvdGFsVm90ZUFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABJrVXNlclRvdGFsVm90ZVNXT1AAAAAAAAAAAAABAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACAAAABHVzZXIAAAAMbGFzdEludGVyZXN0BAAAAA51c2VyU1dPUEFtb3VudAkBAAAAEWdldFVzZXJTV09QTG9ja2VkAAAAAQUAAAAEdXNlcgQAAAAQdXNlckxhc3RJbnRlcmVzdAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAQAAAAVdXNlckxhc3RJbnRlcmVzdFZhbHVlBAAAAAckbWF0Y2gwBQAAABB1c2VyTGFzdEludGVyZXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAkABRQAAAACBQAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUFAAAADnVzZXJTV09QQW1vdW50AQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIAAAAEcG9vbAAAAAR1c2VyBAAAAAZ2b3RpbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAUAAAAEcG9vbAD//////////wQAAAAOaGVpZ2h0T2ZWb3RpbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABpAAAAAEFAAAABnZvdGluZwUAAAAfa2V5SGVpZ2h0T2ZQb29sVm90aW5nRm9yTmV3UG9vbAAAAAAAAAAAAAQAAAAOc3RhdHVzT2ZWb3RpbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABpAAAAAEFAAAABnZvdGluZwUAAAAba2V5U3RhdHVzT2ZWb3RpbmdGb3JOZXdQb29sBgQAAAANY3VycmVudEhlaWdodAUAAAAGaGVpZ2h0AwkAAGYAAAACAAAAAAAAAAAABQAAAAZ2b3RpbmcAAAAAAAAAAAADCQEAAAABIQAAAAEFAAAADnN0YXR1c09mVm90aW5nAAAAAAAAAAAAAwkAAGYAAAACBQAAAA5oZWlnaHRPZlZvdGluZwUAAAANY3VycmVudEhlaWdodAkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgIAAAABXwkAAaQAAAABBQAAAAZ2b3RpbmcFAAAAFmtleVllc1ZvdGluZ0Zvck5ld1Bvb2wAAAAAAAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyAgAAAAFfCQABpAAAAAEFAAAABnZvdGluZwUAAAAVa2V5Tm9Wb3RpbmdGb3JOZXdQb29sAAAAAAAAAAAAAAAAAAAAAAAAAQAAACBnZXRVc2VyVG90YWxWb3RlRm9yTmV3UG9vbEFtb3VudAAAAAEAAAAEdXNlcgQAAAAMbGlzdE9mVm90aW5nCQAETAAAAAIJAQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIFAAAAD2ZpcnN0QWN0aXZlVm90ZQUAAAAEdXNlcgkABEwAAAACCQEAAAAgZ2V0VXNlclRvdGFsVm90ZUFtb3VudEZvck9uZVBvb2wAAAACBQAAABBzZWNvbmRBY3RpdmVWb3RlBQAAAAR1c2VyCQAETAAAAAIJAQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIFAAAAD3RoaXJkQWN0aXZlVm90ZQUAAAAEdXNlcgUAAAADbmlsCQABlgAAAAEFAAAADGxpc3RPZlZvdGluZwEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQAAAAAAAAAAAABAAAAD2dldFVzZXJWb3RlSW5mbwAAAAEAAAAEdXNlcgQAAAALJHQwNTk1NDY1MDUDCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAAA9rVXNlclRvdGFsU3RydWMEAAAABGRhdGEJAAS1AAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAD2tVc2VyVG90YWxTdHJ1YwIAAAAVRW1wdHkga1VzZXJUb3RhbFN0cnVjAgAAAAFfCQAFFQAAAAMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAAACQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAIEAAAADnVQb29sVG90YWxTV09QCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEmtVc2VyVG90YWxWb3RlU1dPUAAAAAAAAAAAAAkABRUAAAADBQAAAA51UG9vbFRvdGFsU1dPUAAAAAAAAAAAAAUAAAAQY3VyclZvdGluZ1BlcmlvZAQAAAARdXNlclRvdGFsVm90ZVNXT1AIBQAAAAskdDA1OTU0NjUwNQAAAAJfMQQAAAALdXNlclVudm90ZWQIBQAAAAskdDA1OTU0NjUwNQAAAAJfMgQAAAARdXNlclVudm90ZWRQZXJpb2QIBQAAAAskdDA1OTU0NjUwNQAAAAJfMwQAAAARdXNlclVudm90ZWRBY3R1YWwDCQAAAAAAAAIFAAAAEXVzZXJVbnZvdGVkUGVyaW9kBQAAABBjdXJyVm90aW5nUGVyaW9kBQAAAAt1c2VyVW52b3RlZAAAAAAAAAAAAAkABRQAAAACBQAAABF1c2VyVG90YWxWb3RlU1dPUAUAAAARdXNlclVudm90ZWRBY3R1YWwBAAAAF2dldFVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAAAAAAAAAAAAAEAAAAUZ2V0Vm90aW5nU3RhcnRIZWlnaHQAAAABAAAACHZvdGVOYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AAAAAAAAAAAAAQAAABNnZXRWb3RlT3B0aW9uQW1vdW50AAAAAwAAAAR1c2VyAAAACHZvdGVOYW1lAAAABm9wdGlvbgQAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAQAAAAEdXZvYQQAAAAHJG1hdGNoMAUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAEdXZvYQUA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CyR0MDg2NDI4NzE3AAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAALJHQwODY0Mjg3MTcAAAACXzIDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAARTV09QCQAAAgAAAAECAAAAFEluY29ycmVjdCBwbXRBc3NldElkBAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALaW50ZXJlc3ROZXcJAABkAAAAAgUAAAAMbGFzdEludGVyZXN0CQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAKc2NhbGVWYWx1ZQUAAAAPdG90YWxTV09QTG9ja2VkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlMYXN0SW50ZXJlc3QFAAAAC2ludGVyZXN0TmV3BQAAAANuaWwAAAABaQEAAAAIbG9ja1NXT1AAAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50BAAAAAskdDA5MTU1OTIzMAkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAACyR0MDkxNTU5MjMwAAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAALJHQwOTE1NTkyMzAAAAACXzIDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAARTV09QCQAAAgAAAAECAAAAFEluY29ycmVjdCBwbXRBc3NldElkBAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALJHQwOTM0Njk0MjgJAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAxsYXN0SW50ZXJlc3QEAAAAEHVzZXJMYXN0SW50ZXJlc3QIBQAAAAskdDA5MzQ2OTQyOAAAAAJfMQQAAAAOdXNlclNXT1BMb2NrZWQIBQAAAAskdDA5MzQ2OTQyOAAAAAJfMgQAAAALY2xhaW1BbW91bnQJAABrAAAAAwUAAAAOdXNlclNXT1BMb2NrZWQJAABlAAAAAgUAAAAMbGFzdEludGVyZXN0BQAAABB1c2VyTGFzdEludGVyZXN0BQAAAApzY2FsZVZhbHVlBAAAABF1c2VyU1dPUExvY2tlZE5ldwkAAGQAAAACCQAAZAAAAAIFAAAADnVzZXJTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAAA91c2VyTmV3SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZAAAAAIJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAAMd2l0aGRyYXdTV09QAAAAAQAAAA53aXRoZHJhd0Ftb3VudAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAOd2l0aGRyYXdBbW91bnQJAAACAAAAAQIAAAATd2l0aGRyYXdBbW91bnQgPD0gMAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANJHQwMTA1NzgxMDYzMwkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAANJHQwMTA1NzgxMDYzMwAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAA0kdDAxMDU3ODEwNjMzAAAAAl8yBAAAAA0kdDAxMDYzODEwNzAzCQEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyVm90ZUFtb3VudAgFAAAADSR0MDEwNjM4MTA3MDMAAAACXzEEAAAAEHVzZXJVbnZvdGVBbW91bnQIBQAAAA0kdDAxMDYzODEwNzAzAAAAAl8yBAAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAQAAACBnZXRVc2VyVG90YWxWb3RlRm9yTmV3UG9vbEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgMDAwkAAGYAAAACAAAAAAAAAAAABQAAABB1c2VyVW52b3RlQW1vdW50BgkAAGYAAAACAAAAAAAAAAAABQAAAA51c2VyVm90ZUFtb3VudAYJAABmAAAAAgAAAAAAAAAAAAUAAAAYdXNlclZvdGVBbW91bnRGb3JOZXdQb29sCQAAAgAAAAECAAAASnVzZXJVbnZvdGVBbW91bnQgPCAwIHx8IHVzZXJWb3RlQW1vdW50IDwgMCB8fCB1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wgPCAwBAAAABJhdmFpbGFibGVUb1Vuc3Rha2UJAABlAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQJAAGWAAAAAQkABEwAAAACBQAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAARMAAAAAgkAAGQAAAACBQAAAA51c2VyVm90ZUFtb3VudAUAAAAQdXNlclVudm90ZUFtb3VudAUAAAADbmlsAwkAAGYAAAACBQAAAA53aXRoZHJhd0Ftb3VudAUAAAASYXZhaWxhYmxlVG9VbnN0YWtlCQAAAgAAAAECAAAAI3dpdGhkcmF3QW1vdW50ID4gYXZhaWxhYmxlVG9VbnN0YWtlBAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABlAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BQAAAA53aXRoZHJhd0Ftb3VudAQAAAARdXNlclNXT1BhbW91bnROZXcJAABlAAAAAgkAAGQAAAACBQAAAA51c2VyU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQFAAAADndpdGhkcmF3QW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUGFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA53aXRoZHJhd0Ftb3VudAUAAAAEU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAABRjbGFpbUFuZFdpdGhkcmF3U1dPUAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAA0kdDAxMjA3ODEyMTMzCQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMjA3ODEyMTMzAAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDEyMDc4MTIxMzMAAAACXzIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQDCQAAAAAAAAIFAAAAC2NsYWltQW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAUAAAAEU1dPUAUAAAADbmlsAAAAAWkBAAAAEWNsYWltQW5kU3Rha2VTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDEyOTEyMTI5NjcJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDEyOTEyMTI5NjcAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTI5MTIxMjk2NwAAAAJfMgQAAAARdXNlclNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAWkBAAAADXVwZGF0ZVdlaWdodHMAAAAGAAAADXByZXZpb3VzUG9vbHMAAAAPcHJldmlvdXNSZXdhcmRzAAAADGN1cnJlbnRQb29scwAAAA5jdXJyZW50UmV3YXJkcwAAABJyZXdhcmRVcGRhdGVIZWlnaHQAAAAKcGFnaW5hdGlvbgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAALYW1vdW50UG9vbHMAAAAAAAAAAAoDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wCQAETAAAAAIFAAAAEWFkbWluUHViS2V5V2FsbGV0BQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24DAwkAAGYAAAACCQABkAAAAAEFAAAADXByZXZpb3VzUG9vbHMFAAAAC2Ftb3VudFBvb2xzBgkAAGYAAAACCQABkAAAAAEFAAAADGN1cnJlbnRQb29scwUAAAALYW1vdW50UG9vbHMJAAACAAAAAQkAASwAAAACAgAAABZNYXggYW1vdW50IG9mIHBvb2wgaXMgCQABpAAAAAEFAAAAC2Ftb3VudFBvb2xzCgEAAAADc3VtAAAAAgAAAAFhAAAAAWIJAABkAAAAAgUAAAABYQUAAAABYgoBAAAAE1ByZXZpb3VzUmV3YXJkRW50cnkAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAA1wcmV2aW91c1Bvb2xzBQAAAARwb29sBAAAAApwb29sUmV3YXJkCQABkQAAAAIFAAAAD3ByZXZpb3VzUmV3YXJkcwUAAAAJcG9vbEluZGV4CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAoBAAAAEkN1cnJlbnRSZXdhcmRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAJcG9vbEluZGV4CQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAADGN1cnJlbnRQb29scwUAAAAEcG9vbAQAAAAKcG9vbFJld2FyZAkAAZEAAAACBQAAAA5jdXJyZW50UmV3YXJkcwUAAAAJcG9vbEluZGV4CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHGtleVJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQFAAAACnBvb2xSZXdhcmQFAAAAC2FjY3VtdWxhdGVkCgEAAAALSGVpZ2h0RW50cnkAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAxjdXJyZW50UG9vbHMFAAAABHBvb2wEAAAACnBvb2xIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24FAAAACnBvb2xIZWlnaHQFAAAAC2FjY3VtdWxhdGVkCgEAAAAMZ2V0U3VtUmV3YXJkAAAAAwAAAAtwcmV2VGVtcFN1bQAAAApjdXJUZW1wU3VtAAAACnBhZ2luYXRpb24DCQAAAAAAAAIFAAAACnBhZ2luYXRpb24AAAAAAAAAAAAJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa2V5VGVtcFByZXZTdW0FAAAAC3ByZXZUZW1wU3VtBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleVRlbXBDdXJTdW0FAAAACmN1clRlbXBTdW0FAAAAA25pbAMJAAAAAAAAAgUAAAAKcGFnaW5hdGlvbgAAAAAAAAAAAQQAAAAScHJldlRlbXBTdW1Gcm9tS2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADmtleVRlbXBQcmV2U3VtAAAAAAAAAAAABAAAABFjdXJUZW1wU3VtRnJvbUtleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAACQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADmtleVRlbXBQcmV2U3VtCQAAZAAAAAIFAAAAC3ByZXZUZW1wU3VtBQAAABJwcmV2VGVtcFN1bUZyb21LZXkFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACBAAAAAdwcmV2U3VtCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAOa2V5VGVtcFByZXZTdW0AAAAAAAAAAAAFAAAAC3ByZXZUZW1wU3VtBAAAAAZjdXJTdW0JAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAABQAAAApjdXJUZW1wU3VtAwMJAQAAAAIhPQAAAAIFAAAAB3ByZXZTdW0FAAAADnRvdGFsVm90ZVNoYXJlBgkBAAAAAiE9AAAAAgUAAAAGY3VyU3VtBQAAAA50b3RhbFZvdGVTaGFyZQkAAAIAAAABAgAAAElzdW1SZXdhcmRQcmV2aW91cyAhPSB0b3RhbFZvdGVTaGFyZSBvciBzdW1SZXdhcmRDdXJyZW50ICE9IHRvdGFsVm90ZVNoYXJlCQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADmtleVRlbXBQcmV2U3VtBQAAAAdwcmV2U3VtBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleVRlbXBDdXJTdW0FAAAABmN1clN1bQUAAAADbmlsCQAAAgAAAAECAAAAFEluY29ycmVjdCBwYWdpbmF0aW9uBAAAABVzdW1SZXdhcmRQcmV2aW91c1RlbXAEAAAADyRsaXN0MTYzMzAxNjM2MwUAAAAPcHJldmlvdXNSZXdhcmRzBAAAAA8kc2l6ZTE2MzMwMTYzNjMJAAGQAAAAAQUAAAAPJGxpc3QxNjMzMDE2MzYzBAAAAA8kYWNjMDE2MzMwMTYzNjMAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTYzMzAxNjM2MwAAAAAAAAAAAAUAAAAPJGFjYzAxNjMzMDE2MzYzBAAAAA8kYWNjMTE2MzMwMTYzNjMJAQAAAANzdW0AAAACBQAAAA8kYWNjMDE2MzMwMTYzNjMJAAGRAAAAAgUAAAAPJGxpc3QxNjMzMDE2MzYzAAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE2MzMwMTYzNjMAAAAAAAAAAAEFAAAADyRhY2MxMTYzMzAxNjM2MwQAAAAPJGFjYzIxNjMzMDE2MzYzCQEAAAADc3VtAAAAAgUAAAAPJGFjYzExNjMzMDE2MzYzCQABkQAAAAIFAAAADyRsaXN0MTYzMzAxNjM2MwAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxNjMzMDE2MzYzAAAAAAAAAAACBQAAAA8kYWNjMjE2MzMwMTYzNjMEAAAADyRhY2MzMTYzMzAxNjM2MwkBAAAAA3N1bQAAAAIFAAAADyRhY2MyMTYzMzAxNjM2MwkAAZEAAAACBQAAAA8kbGlzdDE2MzMwMTYzNjMAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTYzMzAxNjM2MwAAAAAAAAAAAwUAAAAPJGFjYzMxNjMzMDE2MzYzBAAAAA8kYWNjNDE2MzMwMTYzNjMJAQAAAANzdW0AAAACBQAAAA8kYWNjMzE2MzMwMTYzNjMJAAGRAAAAAgUAAAAPJGxpc3QxNjMzMDE2MzYzAAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE2MzMwMTYzNjMAAAAAAAAAAAQFAAAADyRhY2M0MTYzMzAxNjM2MwQAAAAPJGFjYzUxNjMzMDE2MzYzCQEAAAADc3VtAAAAAgUAAAAPJGFjYzQxNjMzMDE2MzYzCQABkQAAAAIFAAAADyRsaXN0MTYzMzAx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OAAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kdDAxNjQzNDE2NTQ2CQEAAAAMZ2V0U3VtUmV3YXJkAAAAAwUAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAFAAAAFHN1bVJld2FyZEN1cnJlbnRUZW1wBQAAAApwYWdpbmF0aW9uBAAAABFzdW1SZXdhcmRQcmV2aW91cwgFAAAADSR0MDE2NDM0MTY1NDYAAAACXzEEAAAAEHN1bVJld2FyZEN1cnJlbnQIBQAAAA0kdDAxNjQzNDE2NTQ2AAAAAl8yBAAAABdyZXdhcmRVcGRhdGVIZWlnaHRFbnRyeQMJAAAAAAAAAgUAAAAKcGFnaW5hdGlvbgAAAAAAAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVa2V5UmV3YXJkVXBkYXRlSGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVa2V5UmV3YXJkVXBkYXRlSGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQFAAAAA25pbAMDCQAAAAAAAAIFAAAACnBhZ2luYXRpb24AAAAAAAAAAAIJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQHCQAAAgAAAAECAAAAG3Jld2FyZFVwZGF0ZUhlaWdodCA8IGhlaWdodAQAAAAWcHJldmlvdXNSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxNjg5NDE2OTQyBQAAAA1wcmV2aW91c1Bvb2xzBAAAAA8kc2l6ZTE2ODk0MTY5NDIJAAGQAAAAAQUAAAAPJGxpc3QxNjg5NDE2OTQyBAAAAA8kYWNjMDE2ODk0MTY5NDIFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxNjg5NDE2OTQyAAAAAAAAAAAABQAAAA8kYWNjMDE2ODk0MTY5NDIEAAAADyRhY2MxMTY4OTQxNjk0MgkBAAAAE1ByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMDE2ODk0MTY5NDIJAAGRAAAAAgUAAAAPJGxpc3QxNjg5NDE2OTQyAAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE2ODk0MTY5NDIAAAAAAAAAAAEFAAAADyRhY2MxMTY4OTQxNjk0MgQAAAAPJGFjYzIxNjg5NDE2OTQyCQEAAAATUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MxMTY4OTQxNjk0MgkAAZEAAAACBQAAAA8kbGlzdDE2ODk0MTY5NDIAAAAAAAAAAAEDCQAAAAAAAAIFAAAADyRzaXplMTY4OTQxNjk0MgAAAAAAAAAAAgUAAAAPJGFjYzIxNjg5NDE2OTQyBAAAAA8kYWNjMzE2ODk0MTY5NDIJAQAAABNQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzIxNjg5NDE2OTQyCQABkQAAAAIFAAAADyRsaXN0MTY4OTQxNjk0MgAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxNjg5NDE2OTQyAAAAAAAAAAADBQAAAA8kYWNjMzE2ODk0MTY5NDIEAAAADyRhY2M0MTY4OTQxNjk0MgkBAAAAE1ByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMzE2ODk0MTY5NDIJAAGRAAAAAgUAAAAPJGxpc3QxNjg5NDE2OTQyAAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE2ODk0MTY5NDIAAAAAAAAAAAQFAAAADyRhY2M0MTY4OTQxNjk0MgQAAAAPJGFjYzUxNjg5NDE2OTQyCQEAAAATUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M0MTY4OTQxNjk0MgkAAZEAAAACBQAAAA8kbGlzdDE2ODk0MTY5NDIAAAAAAAAAAAQDCQAAAAAAAAIFAAAADyRzaXplMTY4OTQxNjk0MgAAAAAAAAAABQUAAAAPJGFjYzUxNjg5NDE2OTQyBAAAAA8kYWNjNjE2ODk0MTY5NDIJAQAAABNQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzUxNjg5NDE2OTQyCQABkQAAAAIFAAAADyRsaXN0MTY4OTQxNjk0MgAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxNjg5NDE2OTQyAAAAAAAAAAAGBQAAAA8kYWNjNjE2ODk0MTY5NDIEAAAADyRhY2M3MTY4OTQxNjk0MgkBAAAAE1ByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNjE2ODk0MTY5NDIJAAGRAAAAAgUAAAAPJGxpc3QxNjg5NDE2OTQyAAAAAAAAAAAGAwkAAAAAAAACBQAAAA8kc2l6ZTE2ODk0MTY5NDIAAAAAAAAAAAcFAAAADyRhY2M3MTY4OTQxNjk0MgQAAAAPJGFjYzgxNjg5NDE2OTQyCQEAAAATUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M3MTY4OTQxNjk0MgkAAZEAAAACBQAAAA8kbGlzdDE2ODk0MTY5NDIAAAAAAAAAAAcDCQAAAAAAAAIFAAAADyRzaXplMTY4OTQxNjk0MgAAAAAAAAAACAUAAAAPJGFjYzgxNjg5NDE2OTQyBAAAAA8kYWNjOTE2ODk0MTY5NDIJAQAAABNQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzgxNjg5NDE2OTQyCQABkQAAAAIFAAAADyRsaXN0MTY4OTQxNjk0MgAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxNjg5NDE2OTQyAAAAAAAAAAAJBQAAAA8kYWNjOTE2ODk0MTY5NDIEAAAAECRhY2MxMDE2ODk0MTY5NDIJAQAAABNQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzkxNjg5NDE2OTQyCQABkQAAAAIFAAAADyRsaXN0MTY4OTQxNjk0MgAAAAAAAAAACQMJAAAAAAAAAgUAAAAPJHNpemUxNjg5NDE2OTQyAAAAAAAAAAAKBQAAABAkYWNjMTAxNjg5NDE2OTQyBAAAABAkYWNjMTExNjg5NDE2OTQyCQEAAAATUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAAECRhY2MxMDE2ODk0MTY5NDIJAAGRAAAAAgUAAAAPJGxpc3QxNjg5NDE2OTQyAAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAEAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxNjk3NTE3MDIxBQAAAAxjdXJyZW50UG9vbHMEAAAADyRzaXplMTY5NzUxNzAyMQkAAZAAAAABBQAAAA8kbGlzdDE2OTc1MTcwMjEEAAAADyRhY2MwMTY5NzUxNzAyMQUAAAADbmlsAwkAAAAAAAACBQAAAA8kc2l6ZTE2OTc1MTcwMjEAAAAAAAAAAAAFAAAADyRhY2MwMTY5NzUxNzAyMQQAAAAPJGFjYzExNjk3NTE3MDIxCQEAAAASQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzAxNjk3NTE3MDIxCQABkQAAAAIFAAAADyRsaXN0MTY5NzUxNzAyMQAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxNjk3NTE3MDIxAAAAAAAAAAABBQAAAA8kYWNjMTE2OTc1MTcwMjEEAAAADyRhY2MyMTY5NzUxNzAyMQkBAAAAEkN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MxMTY5NzUxNzAyMQkAAZEAAAACBQAAAA8kbGlzdDE2OTc1MTcwMjEAAAAAAAAAAAEDCQAAAAAAAAIFAAAADyRzaXplMTY5NzUxNzAyMQAAAAAAAAAAAgUAAAAPJGFjYzIxNjk3NTE3MDIxBAAAAA8kYWNjMzE2OTc1MTcwMjEJAQAAABJDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMjE2OTc1MTcwMjEJAAGRAAAAAgUAAAAPJGxpc3QxNjk3NTE3MDIxAAAAAAAAAAACAwkAAAAAAAACBQAAAA8kc2l6ZTE2OTc1MTcwMjEAAAAAAAAAAAMFAAAADyRhY2MzMTY5NzUxNzAyMQQAAAAPJGFjYzQxNjk3NTE3MDIxCQEAAAASQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzMxNjk3NTE3MDIxCQABkQAAAAIFAAAADyRsaXN0MTY5NzUxNzAyMQAAAAAAAAAAAwMJAAAAAAAAAgUAAAAPJHNpemUxNjk3NTE3MDIxAAAAAAAAAAAEBQAAAA8kYWNjNDE2OTc1MTcwMjEEAAAADyRhY2M1MTY5NzUxNzAyMQkBAAAAEkN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M0MTY5NzUxNzAyMQkAAZEAAAACBQAAAA8kbGlzdDE2OTc1MTcwMjEAAAAAAAAAAAQDCQAAAAAAAAIFAAAADyRzaXplMTY5NzUxNzAyMQAAAAAAAAAABQUAAAAPJGFjYzUxNjk3NTE3MDIxBAAAAA8kYWNjNjE2OTc1MTcwMjEJAQAAABJDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNTE2OTc1MTcwMjEJAAGRAAAAAgUAAAAPJGxpc3QxNjk3NTE3MDIxAAAAAAAAAAAFAwkAAAAAAAACBQAAAA8kc2l6ZTE2OTc1MTcwMjEAAAAAAAAAAAYFAAAADyRhY2M2MTY5NzUxNzAyMQQAAAAPJGFjYzcxNjk3NTE3MDIxCQEAAAASQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzYxNjk3NTE3MDIxCQABkQAAAAIFAAAADyRsaXN0MTY5NzUxNzAyMQAAAAAAAAAABgMJAAAAAAAAAgUAAAAPJHNpemUxNjk3NTE3MDIxAAAAAAAAAAAHBQAAAA8kYWNjNzE2OTc1MTcwMjEEAAAADyRhY2M4MTY5NzUxNzAyMQkBAAAAEkN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M3MTY5NzUxNzAyMQkAAZEAAAACBQAAAA8kbGlzdDE2OTc1MTcwMjEAAAAAAAAAAAcDCQAAAAAAAAIFAAAADyRzaXplMTY5NzUxNzAyMQAAAAAAAAAACAUAAAAPJGFjYzgxNjk3NTE3MDIxBAAAAA8kYWNjOTE2OTc1MTcwMjEJAQAAABJDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjODE2OTc1MTcwMjEJAAGRAAAAAgUAAAAPJGxpc3QxNjk3NTE3MDIxAAAAAAAAAAAIAwkAAAAAAAACBQAAAA8kc2l6ZTE2OTc1MTcwMjEAAAAAAAAAAAkFAAAADyRhY2M5MTY5NzUxNzAyMQQAAAAQJGFjYzEwMTY5NzUxNzAyMQkBAAAAEkN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M5MTY5NzUxNzAyMQkAAZEAAAACBQAAAA8kbGlzdDE2OTc1MTcwMjEAAAAAAAAAAAkDCQAAAAAAAAIFAAAADyRzaXplMTY5NzUxNzAyMQAAAAAAAAAACgUAAAAQJGFjYzEwMTY5NzUxNzAyMQQAAAAQJGFjYzExMTY5NzUxNzAyMQkBAAAAEkN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAAECRhY2MxMDE2OTc1MTcwMjEJAAGRAAAAAgUAAAAPJGxpc3QxNjk3NTE3MDIxAAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAEAAAADmhlaWdodEVudHJ5TmV3BAAAAA8kbGlzdDE3MDQ3MTcwODYFAAAADGN1cnJlbnRQb29scwQAAAAPJHNpemUxNzA0NzE3MDg2CQABkAAAAAEFAAAADyRsaXN0MTcwNDcxNzA4NgQAAAAPJGFjYzAxNzA0NzE3MDg2BQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAAAAUAAAAPJGFjYzAxNzA0NzE3MDg2BAAAAA8kYWNjMTE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MwMTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAAAQUAAAAPJGFjYzExNzA0NzE3MDg2BAAAAA8kYWNjMjE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MxMTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAEDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAAAgUAAAAPJGFjYzIxNzA0NzE3MDg2BAAAAA8kYWNjMzE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MyMTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAAAwUAAAAPJGFjYzMxNzA0NzE3MDg2BAAAAA8kYWNjNDE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MzMTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAABAUAAAAPJGFjYzQxNzA0NzE3MDg2BAAAAA8kYWNjNTE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M0MTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAQDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAABQUAAAAPJGFjYzUxNzA0NzE3MDg2BAAAAA8kYWNjNjE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M1MTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAUDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAABgUAAAAPJGFjYzYxNzA0NzE3MDg2BAAAAA8kYWNjNzE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M2MTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAABwUAAAAPJGFjYzcxNzA0NzE3MDg2BAAAAA8kYWNjODE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M3MTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAcDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAACAUAAAAPJGFjYzgxNzA0NzE3MDg2BAAAAA8kYWNjOTE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M4MTcwNDcxNzA4NgkAAZEAAAACBQAAAA8kbGlzdDE3MDQ3MTcwODYAAAAAAAAAAAgDCQAAAAAAAAIFAAAADyRzaXplMTcwNDcxNzA4NgAAAAAAAAAACQUAAAAPJGFjYzkxNzA0NzE3MDg2BAAAABAkYWNjMTAxNzA0NzE3MDg2CQEAAAALSGVpZ2h0RW50cnkAAAACBQAAAA8kYWNjOTE3MDQ3MTcwODYJAAGRAAAAAgUAAAAPJGxpc3QxNzA0NzE3MDg2AAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE3MDQ3MTcwODYAAAAAAAAAAAoFAAAAECRhY2MxMDE3MDQ3MTcwODYEAAAAECRhY2MxMTE3MDQ3MTcwODYJAQAAAAtIZWlnaHRFbnRyeQAAAAIFAAAAECRhY2MxMDE3MDQ3MTcwODYJAAGRAAAAAgUAAAAPJGxpc3QxNzA0NzE3MDg2AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAJAAROAAAAAgkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACBQAAABZwcmV2aW91c1Jld2FyZEVudHJ5TmV3BQAAABVjdXJyZW50UmV3YXJkRW50cnlOZXcFAAAADmhlaWdodEVudHJ5TmV3BQAAABFzdW1SZXdhcmRQcmV2aW91cwUAAAAQc3VtUmV3YXJkQ3VycmVudAUAAAAXcmV3YXJkVXBkYXRlSGVpZ2h0RW50cnkAAAABaQEAAAAIc2h1dGRvd24AAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABCQABLAAAAAICAAAAIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Q2F1c2UCAAAAGnRoZSBjYXVzZSB3YXNuJ3Qgc3BlY2lmaWVkAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQEAAAAHc3VzcGVuZAAAAAECAAAAD1BhdXNlZCBieSBhZG1pbgAAAAFpAQAAAAhhY3RpdmF0ZQAAAAADBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAABZEQXBwIGlzIGFscmVhZHkgYWN0aXZlAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUGCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAACGtleUNhdXNlBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tlebdALPw=", "height": 1561270, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GnTuexHDf3s8bu1Zh2C2rphcYXzTn7ne9fFRmsFbCN2G Next: 7rpakQSszcrwToG2GgLZJJMYhHjAuFGDQJe2tsJe2eL8 Diff:
OldNewDifferences
4747
4848 let keyRewardPoolFractionPrevious = "_previous_pool_fraction_reward"
4949
50+let keyHeightPoolFraction = "_reward_update_height"
51+
5052 let keyTotalRewardPerBlockCurrent = "total_reward_per_block_current"
5153
5254 let keyTotalRewardPerBlockPrevious = "total_reward_per_block_previous"
6870 let activeVoteSecond = "voting_active_cell_2"
6971
7072 let activeVoteThird = "voting_active_cell_3"
73+
74+let keyTempPrevSum = "sum_reward_previous"
75+
76+let keyTempCurSum = "sum_reward_current"
7177
7278 let isActive = valueOrElse(getBoolean(this, keyActive), true)
7379
166172
167173
168174 func getUserVoteInfo (user) = {
169- let $t058126363 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
175+ let $t059546505 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
170176 then {
171177 let data = split(valueOrErrorMessage(getString(votingLiteContract, (toString(user) + kUserTotalStruc)), "Empty kUserTotalStruc"), "_")
172178 $Tuple3(parseIntValue(data[0]), parseIntValue(data[1]), parseIntValue(data[2]))
175181 let uPoolTotalSWOP = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
176182 $Tuple3(uPoolTotalSWOP, 0, currVotingPeriod)
177183 }
178- let userTotalVoteSWOP = $t058126363._1
179- let userUnvoted = $t058126363._2
180- let userUnvotedPeriod = $t058126363._3
184+ let userTotalVoteSWOP = $t059546505._1
185+ let userUnvoted = $t059546505._2
186+ let userUnvotedPeriod = $t059546505._3
181187 let userUnvotedActual = if ((userUnvotedPeriod == currVotingPeriod))
182188 then userUnvoted
183189 else 0
230236
231237 func claimCalc (caller) = {
232238 let lastInterest = getLastInterestInfo()
233- let $t081558235 = getUserInterestInfo(caller, lastInterest)
234- let userLastInterest = $t081558235._1
235- let userSWOPLocked = $t081558235._2
239+ let $t082978377 = getUserInterestInfo(caller, lastInterest)
240+ let userLastInterest = $t082978377._1
241+ let userSWOPLocked = $t082978377._2
236242 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
237243 let userNewInterest = lastInterest
238244 $Tuple2(userNewInterest, claimAmount)
243249 func airDrop () = if (!(isActive))
244250 then throw("DApp is inactive at this moment")
245251 else {
246- let $t085008575 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
247- let pmtAmount = $t085008575._1
248- let pmtAssetId = $t085008575._2
252+ let $t086428717 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
253+ let pmtAmount = $t086428717._1
254+ let pmtAssetId = $t086428717._2
249255 if ((pmtAssetId != SWOP))
250256 then throw("Incorrect pmtAssetId")
251257 else {
262268 func lockSWOP () = if (!(isActive))
263269 then throw("DApp is inactive at this moment")
264270 else {
265- let $t090139088 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
266- let pmtAmount = $t090139088._1
267- let pmtAssetId = $t090139088._2
271+ let $t091559230 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
272+ let pmtAmount = $t091559230._1
273+ let pmtAssetId = $t091559230._2
268274 if ((pmtAssetId != SWOP))
269275 then throw("Incorrect pmtAssetId")
270276 else {
271277 let lastInterest = getLastInterestInfo()
272- let $t092049286 = getUserInterestInfo(i.caller, lastInterest)
273- let userLastInterest = $t092049286._1
274- let userSWOPLocked = $t092049286._2
278+ let $t093469428 = getUserInterestInfo(i.caller, lastInterest)
279+ let userLastInterest = $t093469428._1
280+ let userSWOPLocked = $t093469428._2
275281 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
276282 let userSWOPLockedNew = ((userSWOPLocked + pmtAmount) + claimAmount)
277283 let userNewInterest = lastInterest
293299 else {
294300 let totalSWOPLocked = getTotalSWOPLocked()
295301 let userSWOPLocked = getUserSWOPLocked(i.caller)
296- let $t01043610491 = claimCalc(i.caller)
297- let userNewInterest = $t01043610491._1
298- let claimAmount = $t01043610491._2
299- let $t01049610561 = getUserVoteInfo(i.caller)
300- let userVoteAmount = $t01049610561._1
301- let userUnvoteAmount = $t01049610561._2
302+ let $t01057810633 = claimCalc(i.caller)
303+ let userNewInterest = $t01057810633._1
304+ let claimAmount = $t01057810633._2
305+ let $t01063810703 = getUserVoteInfo(i.caller)
306+ let userVoteAmount = $t01063810703._1
307+ let userUnvoteAmount = $t01063810703._2
302308 let userVoteAmountForNewPool = getUserTotalVoteForNewPoolAmount(i.caller)
303309 if (if (if ((0 > userUnvoteAmount))
304310 then true
327333 then throw("DApp is inactive at this moment")
328334 else {
329335 let lastInterest = getLastInterestInfo()
330- let $t01193611991 = claimCalc(i.caller)
331- let userNewInterest = $t01193611991._1
332- let claimAmount = $t01193611991._2
336+ let $t01207812133 = claimCalc(i.caller)
337+ let userNewInterest = $t01207812133._1
338+ let claimAmount = $t01207812133._2
333339 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
334340 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
335341 if ((claimAmount == 0))
346352 let totalSWOPLocked = getTotalSWOPLocked()
347353 let userSWOPLocked = getUserSWOPLocked(i.caller)
348354 let lastInterest = getLastInterestInfo()
349- let $t01277012825 = claimCalc(i.caller)
350- let userNewInterest = $t01277012825._1
351- let claimAmount = $t01277012825._2
355+ let $t01291212967 = claimCalc(i.caller)
356+ let userNewInterest = $t01291212967._1
357+ let claimAmount = $t01291212967._2
352358 let userSWOPLockedNew = (userSWOPLocked + claimAmount)
353359 let totalSWOPLockedNew = (totalSWOPLocked + claimAmount)
354360 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
361367
362368
363369 @Callable(i)
364-func updateWeights (previousPools,previousRewards,currentPools,currentRewards,rewardUpdateHeight) = if (!(isActive))
370+func updateWeights (previousPools,previousRewards,currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
365371 then throw("DApp is inactive at this moment")
366- else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
367- then throw("Only admin can call this function")
368- else {
369- func sum (a,b) = (a + b)
372+ else {
373+ let amountPools = 10
374+ if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
375+ then throw("Only admin can call this function")
376+ else if (if ((size(previousPools) > amountPools))
377+ then true
378+ else (size(currentPools) > amountPools))
379+ then throw(("Max amount of pool is " + toString(amountPools)))
380+ else {
381+ func sum (a,b) = (a + b)
370382
371- func PreviousRewardEntry (accumulated,pool) = {
372- let poolIndex = value(indexOf(previousPools, pool))
373- let poolReward = previousRewards[poolIndex]
383+ func PreviousRewardEntry (accumulated,pool) = {
384+ let poolIndex = value(indexOf(previousPools, pool))
385+ let poolReward = previousRewards[poolIndex]
374386 IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
375- }
387+ }
376388
377- func CurrentRewardEntry (accumulated,pool) = {
378- let poolIndex = value(indexOf(currentPools, pool))
379- let poolReward = currentRewards[poolIndex]
389+ func CurrentRewardEntry (accumulated,pool) = {
390+ let poolIndex = value(indexOf(currentPools, pool))
391+ let poolReward = currentRewards[poolIndex]
380392 IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
381- }
393+ }
382394
383- let sumRewardPrevious = {
384- let $list1460614639 = previousRewards
385- let $size1460614639 = size($list1460614639)
386- let $acc01460614639 = 0
387- if (($size1460614639 == 0))
388- then $acc01460614639
389- else {
390- let $acc11460614639 = sum($acc01460614639, $list1460614639[0])
391- if (($size1460614639 == 1))
392- then $acc11460614639
395+ func HeightEntry (accumulated,pool) = {
396+ let poolIndex = value(indexOf(currentPools, pool))
397+ let poolHeight = rewardUpdateHeight
398+IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
399+ }
400+
401+ func getSumReward (prevTempSum,curTempSum,pagination) = if ((pagination == 0))
402+ then $Tuple2([IntegerEntry(keyTempPrevSum, prevTempSum)], [IntegerEntry(keyTempCurSum, curTempSum)])
403+ else if ((pagination == 1))
404+ then {
405+ let prevTempSumFromKey = valueOrElse(getInteger(this, keyTempPrevSum), 0)
406+ let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
407+ $Tuple2([IntegerEntry(keyTempPrevSum, (prevTempSum + prevTempSumFromKey))], [IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))])
408+ }
409+ else if ((pagination == 2))
410+ then {
411+ let prevSum = (valueOrElse(getInteger(this, keyTempPrevSum), 0) + prevTempSum)
412+ let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
413+ if (if ((prevSum != totalVoteShare))
414+ then true
415+ else (curSum != totalVoteShare))
416+ then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
417+ else $Tuple2([IntegerEntry(keyTempPrevSum, prevSum)], [IntegerEntry(keyTempCurSum, curSum)])
418+ }
419+ else throw("Incorrect pagination")
420+
421+ let sumRewardPreviousTemp = {
422+ let $list1633016363 = previousRewards
423+ let $size1633016363 = size($list1633016363)
424+ let $acc01633016363 = 0
425+ if (($size1633016363 == 0))
426+ then $acc01633016363
393427 else {
394- let $acc21460614639 = sum($acc11460614639, $list1460614639[1])
395- if (($size1460614639 == 2))
396- then $acc21460614639
428+ let $acc11633016363 = sum($acc01633016363, $list1633016363[0])
429+ if (($size1633016363 == 1))
430+ then $acc11633016363
397431 else {
398- let $acc31460614639 = sum($acc21460614639, $list1460614639[2])
399- if (($size1460614639 == 3))
400- then $acc31460614639
432+ let $acc21633016363 = sum($acc11633016363, $list1633016363[1])
433+ if (($size1633016363 == 2))
434+ then $acc21633016363
401435 else {
402- let $acc41460614639 = sum($acc31460614639, $list1460614639[3])
403- if (($size1460614639 == 4))
404- then $acc41460614639
436+ let $acc31633016363 = sum($acc21633016363, $list1633016363[2])
437+ if (($size1633016363 == 3))
438+ then $acc31633016363
405439 else {
406- let $acc51460614639 = sum($acc41460614639, $list1460614639[4])
407- if (($size1460614639 == 5))
408- then $acc51460614639
440+ let $acc41633016363 = sum($acc31633016363, $list1633016363[3])
441+ if (($size1633016363 == 4))
442+ then $acc41633016363
409443 else {
410- let $acc61460614639 = sum($acc51460614639, $list1460614639[5])
411- if (($size1460614639 == 6))
412- then $acc61460614639
444+ let $acc51633016363 = sum($acc41633016363, $list1633016363[4])
445+ if (($size1633016363 == 5))
446+ then $acc51633016363
413447 else {
414- let $acc71460614639 = sum($acc61460614639, $list1460614639[6])
415- if (($size1460614639 == 7))
416- then $acc71460614639
448+ let $acc61633016363 = sum($acc51633016363, $list1633016363[5])
449+ if (($size1633016363 == 6))
450+ then $acc61633016363
417451 else {
418- let $acc81460614639 = sum($acc71460614639, $list1460614639[7])
419- if (($size1460614639 == 8))
420- then $acc81460614639
452+ let $acc71633016363 = sum($acc61633016363, $list1633016363[6])
453+ if (($size1633016363 == 7))
454+ then $acc71633016363
421455 else {
422- let $acc91460614639 = sum($acc81460614639, $list1460614639[8])
423- if (($size1460614639 == 9))
424- then $acc91460614639
456+ let $acc81633016363 = sum($acc71633016363, $list1633016363[7])
457+ if (($size1633016363 == 8))
458+ then $acc81633016363
425459 else {
426- let $acc101460614639 = sum($acc91460614639, $list1460614639[9])
427- if (($size1460614639 == 10))
428- then $acc101460614639
460+ let $acc91633016363 = sum($acc81633016363, $list1633016363[8])
461+ if (($size1633016363 == 9))
462+ then $acc91633016363
429463 else {
430- let $acc111460614639 = sum($acc101460614639, $list1460614639[10])
431- if (($size1460614639 == 11))
432- then $acc111460614639
464+ let $acc101633016363 = sum($acc91633016363, $list1633016363[9])
465+ if (($size1633016363 == 10))
466+ then $acc101633016363
433467 else {
434- let $acc121460614639 = sum($acc111460614639, $list1460614639[11])
435- if (($size1460614639 == 12))
436- then $acc121460614639
468+ let $acc111633016363 = sum($acc101633016363, $list1633016363[10])
469+ throw("List size exceed 10")
470+ }
471+ }
472+ }
473+ }
474+ }
475+ }
476+ }
477+ }
478+ }
479+ }
480+ }
481+ }
482+ let sumRewardCurrentTemp = {
483+ let $list1639616428 = currentRewards
484+ let $size1639616428 = size($list1639616428)
485+ let $acc01639616428 = 0
486+ if (($size1639616428 == 0))
487+ then $acc01639616428
488+ else {
489+ let $acc11639616428 = sum($acc01639616428, $list1639616428[0])
490+ if (($size1639616428 == 1))
491+ then $acc11639616428
492+ else {
493+ let $acc21639616428 = sum($acc11639616428, $list1639616428[1])
494+ if (($size1639616428 == 2))
495+ then $acc21639616428
496+ else {
497+ let $acc31639616428 = sum($acc21639616428, $list1639616428[2])
498+ if (($size1639616428 == 3))
499+ then $acc31639616428
500+ else {
501+ let $acc41639616428 = sum($acc31639616428, $list1639616428[3])
502+ if (($size1639616428 == 4))
503+ then $acc41639616428
504+ else {
505+ let $acc51639616428 = sum($acc41639616428, $list1639616428[4])
506+ if (($size1639616428 == 5))
507+ then $acc51639616428
508+ else {
509+ let $acc61639616428 = sum($acc51639616428, $list1639616428[5])
510+ if (($size1639616428 == 6))
511+ then $acc61639616428
512+ else {
513+ let $acc71639616428 = sum($acc61639616428, $list1639616428[6])
514+ if (($size1639616428 == 7))
515+ then $acc71639616428
516+ else {
517+ let $acc81639616428 = sum($acc71639616428, $list1639616428[7])
518+ if (($size1639616428 == 8))
519+ then $acc81639616428
520+ else {
521+ let $acc91639616428 = sum($acc81639616428, $list1639616428[8])
522+ if (($size1639616428 == 9))
523+ then $acc91639616428
524+ else {
525+ let $acc101639616428 = sum($acc91639616428, $list1639616428[9])
526+ if (($size1639616428 == 10))
527+ then $acc101639616428
528+ else {
529+ let $acc111639616428 = sum($acc101639616428, $list1639616428[10])
530+ throw("List size exceed 10")
531+ }
532+ }
533+ }
534+ }
535+ }
536+ }
537+ }
538+ }
539+ }
540+ }
541+ }
542+ }
543+ let $t01643416546 = getSumReward(sumRewardCurrentTemp, sumRewardCurrentTemp, pagination)
544+ let sumRewardPrevious = $t01643416546._1
545+ let sumRewardCurrent = $t01643416546._2
546+ let rewardUpdateHeightEntry = if ((pagination == 2))
547+ then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
548+ else [IntegerEntry(keyRewardUpdateHeight, getIntegerValue(this, keyRewardUpdateHeight))]
549+ if (if ((pagination == 2))
550+ then (height > rewardUpdateHeight)
551+ else false)
552+ then throw("rewardUpdateHeight < height")
553+ else {
554+ let previousRewardEntryNew = {
555+ let $list1689416942 = previousPools
556+ let $size1689416942 = size($list1689416942)
557+ let $acc01689416942 = nil
558+ if (($size1689416942 == 0))
559+ then $acc01689416942
560+ else {
561+ let $acc11689416942 = PreviousRewardEntry($acc01689416942, $list1689416942[0])
562+ if (($size1689416942 == 1))
563+ then $acc11689416942
564+ else {
565+ let $acc21689416942 = PreviousRewardEntry($acc11689416942, $list1689416942[1])
566+ if (($size1689416942 == 2))
567+ then $acc21689416942
568+ else {
569+ let $acc31689416942 = PreviousRewardEntry($acc21689416942, $list1689416942[2])
570+ if (($size1689416942 == 3))
571+ then $acc31689416942
572+ else {
573+ let $acc41689416942 = PreviousRewardEntry($acc31689416942, $list1689416942[3])
574+ if (($size1689416942 == 4))
575+ then $acc41689416942
576+ else {
577+ let $acc51689416942 = PreviousRewardEntry($acc41689416942, $list1689416942[4])
578+ if (($size1689416942 == 5))
579+ then $acc51689416942
580+ else {
581+ let $acc61689416942 = PreviousRewardEntry($acc51689416942, $list1689416942[5])
582+ if (($size1689416942 == 6))
583+ then $acc61689416942
584+ else {
585+ let $acc71689416942 = PreviousRewardEntry($acc61689416942, $list1689416942[6])
586+ if (($size1689416942 == 7))
587+ then $acc71689416942
588+ else {
589+ let $acc81689416942 = PreviousRewardEntry($acc71689416942, $list1689416942[7])
590+ if (($size1689416942 == 8))
591+ then $acc81689416942
592+ else {
593+ let $acc91689416942 = PreviousRewardEntry($acc81689416942, $list1689416942[8])
594+ if (($size1689416942 == 9))
595+ then $acc91689416942
596+ else {
597+ let $acc101689416942 = PreviousRewardEntry($acc91689416942, $list1689416942[9])
598+ if (($size1689416942 == 10))
599+ then $acc101689416942
437600 else {
438- let $acc131460614639 = sum($acc121460614639, $list1460614639[12])
439- if (($size1460614639 == 13))
440- then $acc131460614639
441- else {
442- let $acc141460614639 = sum($acc131460614639, $list1460614639[13])
443- if (($size1460614639 == 14))
444- then $acc141460614639
445- else {
446- let $acc151460614639 = sum($acc141460614639, $list1460614639[14])
447- if (($size1460614639 == 15))
448- then $acc151460614639
449- else {
450- let $acc161460614639 = sum($acc151460614639, $list1460614639[15])
451- if (($size1460614639 == 16))
452- then $acc161460614639
453- else {
454- let $acc171460614639 = sum($acc161460614639, $list1460614639[16])
455- if (($size1460614639 == 17))
456- then $acc171460614639
457- else {
458- let $acc181460614639 = sum($acc171460614639, $list1460614639[17])
459- if (($size1460614639 == 18))
460- then $acc181460614639
461- else {
462- let $acc191460614639 = sum($acc181460614639, $list1460614639[18])
463- if (($size1460614639 == 19))
464- then $acc191460614639
465- else {
466- let $acc201460614639 = sum($acc191460614639, $list1460614639[19])
467- if (($size1460614639 == 20))
468- then $acc201460614639
469- else {
470- let $acc211460614639 = sum($acc201460614639, $list1460614639[20])
471- if (($size1460614639 == 21))
472- then $acc211460614639
473- else {
474- let $acc221460614639 = sum($acc211460614639, $list1460614639[21])
475- throw("List size exceed 21")
476- }
477- }
478- }
479- }
480- }
481- }
482- }
483- }
484- }
601+ let $acc111689416942 = PreviousRewardEntry($acc101689416942, $list1689416942[10])
602+ throw("List size exceed 10")
485603 }
486604 }
487605 }
494612 }
495613 }
496614 }
497- }
498- }
499- let sumRewardCurrent = {
500- let $list1466814700 = currentRewards
501- let $size1466814700 = size($list1466814700)
502- let $acc01466814700 = 0
503- if (($size1466814700 == 0))
504- then $acc01466814700
505- else {
506- let $acc11466814700 = sum($acc01466814700, $list1466814700[0])
507- if (($size1466814700 == 1))
508- then $acc11466814700
509- else {
510- let $acc21466814700 = sum($acc11466814700, $list1466814700[1])
511- if (($size1466814700 == 2))
512- then $acc21466814700
615+ let currentRewardEntryNew = {
616+ let $list1697517021 = currentPools
617+ let $size1697517021 = size($list1697517021)
618+ let $acc01697517021 = nil
619+ if (($size1697517021 == 0))
620+ then $acc01697517021
513621 else {
514- let $acc31466814700 = sum($acc21466814700, $list1466814700[2])
515- if (($size1466814700 == 3))
516- then $acc31466814700
622+ let $acc11697517021 = CurrentRewardEntry($acc01697517021, $list1697517021[0])
623+ if (($size1697517021 == 1))
624+ then $acc11697517021
517625 else {
518- let $acc41466814700 = sum($acc31466814700, $list1466814700[3])
519- if (($size1466814700 == 4))
520- then $acc41466814700
626+ let $acc21697517021 = CurrentRewardEntry($acc11697517021, $list1697517021[1])
627+ if (($size1697517021 == 2))
628+ then $acc21697517021
521629 else {
522- let $acc51466814700 = sum($acc41466814700, $list1466814700[4])
523- if (($size1466814700 == 5))
524- then $acc51466814700
630+ let $acc31697517021 = CurrentRewardEntry($acc21697517021, $list1697517021[2])
631+ if (($size1697517021 == 3))
632+ then $acc31697517021
525633 else {
526- let $acc61466814700 = sum($acc51466814700, $list1466814700[5])
527- if (($size1466814700 == 6))
528- then $acc61466814700
634+ let $acc41697517021 = CurrentRewardEntry($acc31697517021, $list1697517021[3])
635+ if (($size1697517021 == 4))
636+ then $acc41697517021
529637 else {
530- let $acc71466814700 = sum($acc61466814700, $list1466814700[6])
531- if (($size1466814700 == 7))
532- then $acc71466814700
638+ let $acc51697517021 = CurrentRewardEntry($acc41697517021, $list1697517021[4])
639+ if (($size1697517021 == 5))
640+ then $acc51697517021
533641 else {
534- let $acc81466814700 = sum($acc71466814700, $list1466814700[7])
535- if (($size1466814700 == 8))
536- then $acc81466814700
642+ let $acc61697517021 = CurrentRewardEntry($acc51697517021, $list1697517021[5])
643+ if (($size1697517021 == 6))
644+ then $acc61697517021
537645 else {
538- let $acc91466814700 = sum($acc81466814700, $list1466814700[8])
539- if (($size1466814700 == 9))
540- then $acc91466814700
646+ let $acc71697517021 = CurrentRewardEntry($acc61697517021, $list1697517021[6])
647+ if (($size1697517021 == 7))
648+ then $acc71697517021
541649 else {
542- let $acc101466814700 = sum($acc91466814700, $list1466814700[9])
543- if (($size1466814700 == 10))
544- then $acc101466814700
650+ let $acc81697517021 = CurrentRewardEntry($acc71697517021, $list1697517021[7])
651+ if (($size1697517021 == 8))
652+ then $acc81697517021
545653 else {
546- let $acc111466814700 = sum($acc101466814700, $list1466814700[10])
547- if (($size1466814700 == 11))
548- then $acc111466814700
654+ let $acc91697517021 = CurrentRewardEntry($acc81697517021, $list1697517021[8])
655+ if (($size1697517021 == 9))
656+ then $acc91697517021
549657 else {
550- let $acc121466814700 = sum($acc111466814700, $list1466814700[11])
551- if (($size1466814700 == 12))
552- then $acc121466814700
658+ let $acc101697517021 = CurrentRewardEntry($acc91697517021, $list1697517021[9])
659+ if (($size1697517021 == 10))
660+ then $acc101697517021
553661 else {
554- let $acc131466814700 = sum($acc121466814700, $list1466814700[12])
555- if (($size1466814700 == 13))
556- then $acc131466814700
557- else {
558- let $acc141466814700 = sum($acc131466814700, $list1466814700[13])
559- if (($size1466814700 == 14))
560- then $acc141466814700
561- else {
562- let $acc151466814700 = sum($acc141466814700, $list1466814700[14])
563- if (($size1466814700 == 15))
564- then $acc151466814700
565- else {
566- let $acc161466814700 = sum($acc151466814700, $list1466814700[15])
567- if (($size1466814700 == 16))
568- then $acc161466814700
569- else {
570- let $acc171466814700 = sum($acc161466814700, $list1466814700[16])
571- if (($size1466814700 == 17))
572- then $acc171466814700
573- else {
574- let $acc181466814700 = sum($acc171466814700, $list1466814700[17])
575- if (($size1466814700 == 18))
576- then $acc181466814700
577- else {
578- let $acc191466814700 = sum($acc181466814700, $list1466814700[18])
579- if (($size1466814700 == 19))
580- then $acc191466814700
581- else {
582- let $acc201466814700 = sum($acc191466814700, $list1466814700[19])
583- if (($size1466814700 == 20))
584- then $acc201466814700
585- else {
586- let $acc211466814700 = sum($acc201466814700, $list1466814700[20])
587- if (($size1466814700 == 21))
588- then $acc211466814700
589- else {
590- let $acc221466814700 = sum($acc211466814700, $list1466814700[21])
591- throw("List size exceed 21")
592- }
593- }
594- }
595- }
596- }
597- }
598- }
599- }
600- }
662+ let $acc111697517021 = CurrentRewardEntry($acc101697517021, $list1697517021[10])
663+ throw("List size exceed 10")
601664 }
602665 }
603666 }
610673 }
611674 }
612675 }
613- }
614- }
615- if ((height > rewardUpdateHeight))
616- then throw("rewardUpdateHeight < height")
617- else if (if ((sumRewardPrevious != totalVoteShare))
618- then true
619- else (sumRewardCurrent != totalVoteShare))
620- then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
621- else {
622- let previousRewardEntryNew = {
623- let $list1500915057 = previousPools
624- let $size1500915057 = size($list1500915057)
625- let $acc01500915057 = nil
626- if (($size1500915057 == 0))
627- then $acc01500915057
628- else {
629- let $acc11500915057 = PreviousRewardEntry($acc01500915057, $list1500915057[0])
630- if (($size1500915057 == 1))
631- then $acc11500915057
632- else {
633- let $acc21500915057 = PreviousRewardEntry($acc11500915057, $list1500915057[1])
634- if (($size1500915057 == 2))
635- then $acc21500915057
636- else {
637- let $acc31500915057 = PreviousRewardEntry($acc21500915057, $list1500915057[2])
638- if (($size1500915057 == 3))
639- then $acc31500915057
640- else {
641- let $acc41500915057 = PreviousRewardEntry($acc31500915057, $list1500915057[3])
642- if (($size1500915057 == 4))
643- then $acc41500915057
644- else {
645- let $acc51500915057 = PreviousRewardEntry($acc41500915057, $list1500915057[4])
646- if (($size1500915057 == 5))
647- then $acc51500915057
648- else {
649- let $acc61500915057 = PreviousRewardEntry($acc51500915057, $list1500915057[5])
650- if (($size1500915057 == 6))
651- then $acc61500915057
652- else {
653- let $acc71500915057 = PreviousRewardEntry($acc61500915057, $list1500915057[6])
654- if (($size1500915057 == 7))
655- then $acc71500915057
656- else {
657- let $acc81500915057 = PreviousRewardEntry($acc71500915057, $list1500915057[7])
658- if (($size1500915057 == 8))
659- then $acc81500915057
660- else {
661- let $acc91500915057 = PreviousRewardEntry($acc81500915057, $list1500915057[8])
662- if (($size1500915057 == 9))
663- then $acc91500915057
664- else {
665- let $acc101500915057 = PreviousRewardEntry($acc91500915057, $list1500915057[9])
666- if (($size1500915057 == 10))
667- then $acc101500915057
668- else {
669- let $acc111500915057 = PreviousRewardEntry($acc101500915057, $list1500915057[10])
670- if (($size1500915057 == 11))
671- then $acc111500915057
672- else {
673- let $acc121500915057 = PreviousRewardEntry($acc111500915057, $list1500915057[11])
674- if (($size1500915057 == 12))
675- then $acc121500915057
676- else {
677- let $acc131500915057 = PreviousRewardEntry($acc121500915057, $list1500915057[12])
678- if (($size1500915057 == 13))
679- then $acc131500915057
680- else {
681- let $acc141500915057 = PreviousRewardEntry($acc131500915057, $list1500915057[13])
682- if (($size1500915057 == 14))
683- then $acc141500915057
684- else {
685- let $acc151500915057 = PreviousRewardEntry($acc141500915057, $list1500915057[14])
686- if (($size1500915057 == 15))
687- then $acc151500915057
688- else {
689- let $acc161500915057 = PreviousRewardEntry($acc151500915057, $list1500915057[15])
690- if (($size1500915057 == 16))
691- then $acc161500915057
692- else {
693- let $acc171500915057 = PreviousRewardEntry($acc161500915057, $list1500915057[16])
694- if (($size1500915057 == 17))
695- then $acc171500915057
696- else {
697- let $acc181500915057 = PreviousRewardEntry($acc171500915057, $list1500915057[17])
698- if (($size1500915057 == 18))
699- then $acc181500915057
700- else {
701- let $acc191500915057 = PreviousRewardEntry($acc181500915057, $list1500915057[18])
702- if (($size1500915057 == 19))
703- then $acc191500915057
704- else {
705- let $acc201500915057 = PreviousRewardEntry($acc191500915057, $list1500915057[19])
706- if (($size1500915057 == 20))
707- then $acc201500915057
708- else {
709- let $acc211500915057 = PreviousRewardEntry($acc201500915057, $list1500915057[20])
710- if (($size1500915057 == 21))
711- then $acc211500915057
712- else {
713- let $acc221500915057 = PreviousRewardEntry($acc211500915057, $list1500915057[21])
714- throw("List size exceed 21")
715- }
716- }
717- }
718- }
719- }
720- }
721- }
722- }
723- }
724- }
725- }
726- }
727- }
728- }
729- }
730- }
731- }
732- }
733- }
734- }
735- }
736- }
676+ let heightEntryNew = {
677+ let $list1704717086 = currentPools
678+ let $size1704717086 = size($list1704717086)
679+ let $acc01704717086 = nil
680+ if (($size1704717086 == 0))
681+ then $acc01704717086
682+ else {
683+ let $acc11704717086 = HeightEntry($acc01704717086, $list1704717086[0])
684+ if (($size1704717086 == 1))
685+ then $acc11704717086
686+ else {
687+ let $acc21704717086 = HeightEntry($acc11704717086, $list1704717086[1])
688+ if (($size1704717086 == 2))
689+ then $acc21704717086
690+ else {
691+ let $acc31704717086 = HeightEntry($acc21704717086, $list1704717086[2])
692+ if (($size1704717086 == 3))
693+ then $acc31704717086
694+ else {
695+ let $acc41704717086 = HeightEntry($acc31704717086, $list1704717086[3])
696+ if (($size1704717086 == 4))
697+ then $acc41704717086
698+ else {
699+ let $acc51704717086 = HeightEntry($acc41704717086, $list1704717086[4])
700+ if (($size1704717086 == 5))
701+ then $acc51704717086
702+ else {
703+ let $acc61704717086 = HeightEntry($acc51704717086, $list1704717086[5])
704+ if (($size1704717086 == 6))
705+ then $acc61704717086
706+ else {
707+ let $acc71704717086 = HeightEntry($acc61704717086, $list1704717086[6])
708+ if (($size1704717086 == 7))
709+ then $acc71704717086
710+ else {
711+ let $acc81704717086 = HeightEntry($acc71704717086, $list1704717086[7])
712+ if (($size1704717086 == 8))
713+ then $acc81704717086
714+ else {
715+ let $acc91704717086 = HeightEntry($acc81704717086, $list1704717086[8])
716+ if (($size1704717086 == 9))
717+ then $acc91704717086
718+ else {
719+ let $acc101704717086 = HeightEntry($acc91704717086, $list1704717086[9])
720+ if (($size1704717086 == 10))
721+ then $acc101704717086
722+ else {
723+ let $acc111704717086 = HeightEntry($acc101704717086, $list1704717086[10])
724+ throw("List size exceed 10")
725+ }
726+ }
727+ }
728+ }
729+ }
730+ }
731+ }
732+ }
733+ }
734+ }
735+ }
736+ }
737+ (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNew) ++ sumRewardPrevious) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry)
737738 }
738- let currentRewardEntryNew = {
739- let $list1509015136 = currentPools
740- let $size1509015136 = size($list1509015136)
741- let $acc01509015136 = nil
742- if (($size1509015136 == 0))
743- then $acc01509015136
744- else {
745- let $acc11509015136 = CurrentRewardEntry($acc01509015136, $list1509015136[0])
746- if (($size1509015136 == 1))
747- then $acc11509015136
748- else {
749- let $acc21509015136 = CurrentRewardEntry($acc11509015136, $list1509015136[1])
750- if (($size1509015136 == 2))
751- then $acc21509015136
752- else {
753- let $acc31509015136 = CurrentRewardEntry($acc21509015136, $list1509015136[2])
754- if (($size1509015136 == 3))
755- then $acc31509015136
756- else {
757- let $acc41509015136 = CurrentRewardEntry($acc31509015136, $list1509015136[3])
758- if (($size1509015136 == 4))
759- then $acc41509015136
760- else {
761- let $acc51509015136 = CurrentRewardEntry($acc41509015136, $list1509015136[4])
762- if (($size1509015136 == 5))
763- then $acc51509015136
764- else {
765- let $acc61509015136 = CurrentRewardEntry($acc51509015136, $list1509015136[5])
766- if (($size1509015136 == 6))
767- then $acc61509015136
768- else {
769- let $acc71509015136 = CurrentRewardEntry($acc61509015136, $list1509015136[6])
770- if (($size1509015136 == 7))
771- then $acc71509015136
772- else {
773- let $acc81509015136 = CurrentRewardEntry($acc71509015136, $list1509015136[7])
774- if (($size1509015136 == 8))
775- then $acc81509015136
776- else {
777- let $acc91509015136 = CurrentRewardEntry($acc81509015136, $list1509015136[8])
778- if (($size1509015136 == 9))
779- then $acc91509015136
780- else {
781- let $acc101509015136 = CurrentRewardEntry($acc91509015136, $list1509015136[9])
782- if (($size1509015136 == 10))
783- then $acc101509015136
784- else {
785- let $acc111509015136 = CurrentRewardEntry($acc101509015136, $list1509015136[10])
786- if (($size1509015136 == 11))
787- then $acc111509015136
788- else {
789- let $acc121509015136 = CurrentRewardEntry($acc111509015136, $list1509015136[11])
790- if (($size1509015136 == 12))
791- then $acc121509015136
792- else {
793- let $acc131509015136 = CurrentRewardEntry($acc121509015136, $list1509015136[12])
794- if (($size1509015136 == 13))
795- then $acc131509015136
796- else {
797- let $acc141509015136 = CurrentRewardEntry($acc131509015136, $list1509015136[13])
798- if (($size1509015136 == 14))
799- then $acc141509015136
800- else {
801- let $acc151509015136 = CurrentRewardEntry($acc141509015136, $list1509015136[14])
802- if (($size1509015136 == 15))
803- then $acc151509015136
804- else {
805- let $acc161509015136 = CurrentRewardEntry($acc151509015136, $list1509015136[15])
806- if (($size1509015136 == 16))
807- then $acc161509015136
808- else {
809- let $acc171509015136 = CurrentRewardEntry($acc161509015136, $list1509015136[16])
810- if (($size1509015136 == 17))
811- then $acc171509015136
812- else {
813- let $acc181509015136 = CurrentRewardEntry($acc171509015136, $list1509015136[17])
814- if (($size1509015136 == 18))
815- then $acc181509015136
816- else {
817- let $acc191509015136 = CurrentRewardEntry($acc181509015136, $list1509015136[18])
818- if (($size1509015136 == 19))
819- then $acc191509015136
820- else {
821- let $acc201509015136 = CurrentRewardEntry($acc191509015136, $list1509015136[19])
822- if (($size1509015136 == 20))
823- then $acc201509015136
824- else {
825- let $acc211509015136 = CurrentRewardEntry($acc201509015136, $list1509015136[20])
826- if (($size1509015136 == 21))
827- then $acc211509015136
828- else {
829- let $acc221509015136 = CurrentRewardEntry($acc211509015136, $list1509015136[21])
830- throw("List size exceed 21")
831- }
832- }
833- }
834- }
835- }
836- }
837- }
838- }
839- }
840- }
841- }
842- }
843- }
844- }
845- }
846- }
847- }
848- }
849- }
850- }
851- }
852- }
853- }
854- ((previousRewardEntryNew ++ currentRewardEntryNew) ++ [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)])
855- }
856- }
739+ }
740+ }
857741
858742
859743
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminPubKey1 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
55
66 let adminPubKey2 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
77
88 let adminPubKey3 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
99
1010 let adminPubKeyStartStop = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
1111
1212 let adminPubKeyWallet = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
1313
1414 let keyActive = "active"
1515
1616 let keyCause = "shutdown_cause"
1717
1818 let keyLastInterest = "last_interest"
1919
2020 let keyUserLastInterest = "_last_interest"
2121
2222 let keyUserSWOPLocked = "_SWOP_amount"
2323
2424 let keyUserGetBackHeight = "_getBackHeight"
2525
2626 let keyTotalSWOPLocked = "total_SWOP_amount"
2727
2828 let kUserTotalVoteSWOP = "_user_total_SWOP_vote"
2929
3030 let keyUserVoteOptionAmount = "_SWOP_option_amount"
3131
3232 let keyTotalVoteOptionAmount = "total_SWOP_option_amount"
3333
3434 let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
3535
3636 let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
3737
3838 let keyVoteName = "vote_name"
3939
4040 let keyOptionName = "_option_name"
4141
4242 let keyVotingStartHeight = "_startHeight"
4343
4444 let keyVoteDuration = "_vote_duration"
4545
4646 let keyRewardPoolFractionCurrent = "_current_pool_fraction_reward"
4747
4848 let keyRewardPoolFractionPrevious = "_previous_pool_fraction_reward"
4949
50+let keyHeightPoolFraction = "_reward_update_height"
51+
5052 let keyTotalRewardPerBlockCurrent = "total_reward_per_block_current"
5153
5254 let keyTotalRewardPerBlockPrevious = "total_reward_per_block_previous"
5355
5456 let keyRewardUpdateHeight = "reward_update_height"
5557
5658 let keyNoVotingForNewPool = "_vote_no"
5759
5860 let keyYesVotingForNewPool = "_vote_yes"
5961
6062 let keyAmountOfVotingForNewPool = "max_amount_voting"
6163
6264 let keyStatusOfVotingForNewPool = "_status"
6365
6466 let keyHeightOfPoolVotingForNewPool = "_finish_height"
6567
6668 let activeVoteFirst = "voting_active_cell_1"
6769
6870 let activeVoteSecond = "voting_active_cell_2"
6971
7072 let activeVoteThird = "voting_active_cell_3"
73+
74+let keyTempPrevSum = "sum_reward_previous"
75+
76+let keyTempCurSum = "sum_reward_current"
7177
7278 let isActive = valueOrElse(getBoolean(this, keyActive), true)
7379
7480 let farmingSWOPAddress = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
7581
7682 let votingLiteContract = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
7783
7884 let votingForNewPool = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
7985
8086 let keySWOPid = "SWOP_id"
8187
8288 let SWOP = fromBase58String(getStringValue(farmingSWOPAddress, keySWOPid))
8389
8490 let scaleValue = 100000000
8591
8692 let totalVoteShare = 10000000000
8793
8894 let kStartHeight = "start_height"
8995
9096 let kBasePeriod = "base_period"
9197
9298 let kPeriodLength = "period_length"
9399
94100 let kUserTotalStruc = "_user_total_struc"
95101
96102 let basePeriod = valueOrErrorMessage(getInteger(votingLiteContract, kBasePeriod), "Empty kBasePeriod at voting contract")
97103
98104 let startHeight = valueOrErrorMessage(getInteger(votingLiteContract, kStartHeight), "Empty kStartHeight at voting contract")
99105
100106 let periodLength = valueOrErrorMessage(getInteger(votingLiteContract, kPeriodLength), "Empty kPeriodLength at voting contract")
101107
102108 let firstActiveVote = valueOrElse(getString(votingForNewPool, activeVoteFirst), "")
103109
104110 let secondActiveVote = valueOrElse(getString(votingForNewPool, activeVoteSecond), "")
105111
106112 let thirdActiveVote = valueOrElse(getString(votingForNewPool, activeVoteThird), "")
107113
108114 let currVotingPeriod = (basePeriod + ((height - startHeight) / periodLength))
109115
110116 func suspend (cause) = [BooleanEntry(keyActive, false), StringEntry(keyCause, cause)]
111117
112118
113119 func throwNotEnoughSWOP () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
114120
115121
116122 func getLastInterestInfo () = {
117123 let lastInterest = valueOrElse(getInteger(this, keyLastInterest), 0)
118124 lastInterest
119125 }
120126
121127
122128 func getUserSWOPLocked (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPLocked)), 0)
123129
124130
125131 func getUserSWOPClaimedAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPClaimedAmount)), 0)
126132
127133
128134 func getUserTotalVoteAmount (user) = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
129135
130136
131137 func getUserInterestInfo (user,lastInterest) = {
132138 let userSWOPAmount = getUserSWOPLocked(user)
133139 let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
134140 let userLastInterestValue = match userLastInterest {
135141 case userLastInterest: Int =>
136142 userLastInterest
137143 case _ =>
138144 lastInterest
139145 }
140146 $Tuple2(userLastInterestValue, userSWOPAmount)
141147 }
142148
143149
144150 func getUserTotalVoteAmountForOnePool (pool,user) = {
145151 let voting = valueOrElse(getInteger(votingForNewPool, pool), -1)
146152 let heightOfVoting = valueOrElse(getInteger(votingForNewPool, (toString(voting) + keyHeightOfPoolVotingForNewPool)), 0)
147153 let statusOfVoting = valueOrElse(getBoolean(votingForNewPool, (toString(voting) + keyStatusOfVotingForNewPool)), true)
148154 let currentHeight = height
149155 if ((0 > voting))
150156 then 0
151157 else if (!(statusOfVoting))
152158 then 0
153159 else if ((heightOfVoting > currentHeight))
154160 then (valueOrElse(getInteger(votingForNewPool, (((toString(user) + "_") + toString(voting)) + keyYesVotingForNewPool)), 0) + valueOrElse(getInteger(votingForNewPool, (((toString(user) + "_") + toString(voting)) + keyNoVotingForNewPool)), 0))
155161 else 0
156162 }
157163
158164
159165 func getUserTotalVoteForNewPoolAmount (user) = {
160166 let listOfVoting = [getUserTotalVoteAmountForOnePool(firstActiveVote, user), getUserTotalVoteAmountForOnePool(secondActiveVote, user), getUserTotalVoteAmountForOnePool(thirdActiveVote, user)]
161167 max(listOfVoting)
162168 }
163169
164170
165171 func getTotalSWOPLocked () = valueOrElse(getInteger(this, keyTotalSWOPLocked), 0)
166172
167173
168174 func getUserVoteInfo (user) = {
169- let $t058126363 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
175+ let $t059546505 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
170176 then {
171177 let data = split(valueOrErrorMessage(getString(votingLiteContract, (toString(user) + kUserTotalStruc)), "Empty kUserTotalStruc"), "_")
172178 $Tuple3(parseIntValue(data[0]), parseIntValue(data[1]), parseIntValue(data[2]))
173179 }
174180 else {
175181 let uPoolTotalSWOP = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
176182 $Tuple3(uPoolTotalSWOP, 0, currVotingPeriod)
177183 }
178- let userTotalVoteSWOP = $t058126363._1
179- let userUnvoted = $t058126363._2
180- let userUnvotedPeriod = $t058126363._3
184+ let userTotalVoteSWOP = $t059546505._1
185+ let userUnvoted = $t059546505._2
186+ let userUnvotedPeriod = $t059546505._3
181187 let userUnvotedActual = if ((userUnvotedPeriod == currVotingPeriod))
182188 then userUnvoted
183189 else 0
184190 $Tuple2(userTotalVoteSWOP, userUnvotedActual)
185191 }
186192
187193
188194 func getUserVoteOptionAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), 0)
189195
190196
191197 func getVotingStartHeight (voteName) = valueOrElse(getInteger(this, (voteName + keyVotingStartHeight)), 0)
192198
193199
194200 func getVoteOptionAmount (user,voteName,option) = {
195201 let userVoteOptionAmount = getInteger(this, (((voteName + option) + toString(user)) + keyUserVoteOptionAmount))
196202 let uvoa = match userVoteOptionAmount {
197203 case uvoa: Int =>
198204 uvoa
199205 case uvoa: Unit =>
200206 0
201207 case _ =>
202208 throw("Match error")
203209 }
204210 valueOrErrorMessage(uvoa, (((("No data on the key: " + voteName) + option) + toString(user)) + keyUserVoteOptionAmount))
205211 }
206212
207213
208214 func getVoteDuration (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVoteDuration)), (("No data on the key: " + voteName) + keyVoteDuration))
209215
210216
211217 func getTotalVoteOptionAmount (voteName,option) = {
212218 let totalVoteOptionAmount = getInteger(this, ((voteName + option) + keyTotalVoteOptionAmount))
213219 let tvoa = match totalVoteOptionAmount {
214220 case tvoa: Int =>
215221 tvoa
216222 case tvoa: Unit =>
217223 0
218224 case _ =>
219225 throw("Match error")
220226 }
221227 tvoa
222228 }
223229
224230
225231 func getUserGetBackAmount (voteName,option,user,getBackSWOPHeight) = {
226232 let key = ((((((voteName + "_") + option) + "_") + toString(user)) + "_") + toString(getBackSWOPHeight))
227233 valueOrErrorMessage(getInteger(this, key), ("No data on the key: " + key))
228234 }
229235
230236
231237 func claimCalc (caller) = {
232238 let lastInterest = getLastInterestInfo()
233- let $t081558235 = getUserInterestInfo(caller, lastInterest)
234- let userLastInterest = $t081558235._1
235- let userSWOPLocked = $t081558235._2
239+ let $t082978377 = getUserInterestInfo(caller, lastInterest)
240+ let userLastInterest = $t082978377._1
241+ let userSWOPLocked = $t082978377._2
236242 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
237243 let userNewInterest = lastInterest
238244 $Tuple2(userNewInterest, claimAmount)
239245 }
240246
241247
242248 @Callable(i)
243249 func airDrop () = if (!(isActive))
244250 then throw("DApp is inactive at this moment")
245251 else {
246- let $t085008575 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
247- let pmtAmount = $t085008575._1
248- let pmtAssetId = $t085008575._2
252+ let $t086428717 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
253+ let pmtAmount = $t086428717._1
254+ let pmtAssetId = $t086428717._2
249255 if ((pmtAssetId != SWOP))
250256 then throw("Incorrect pmtAssetId")
251257 else {
252258 let totalSWOPLocked = getTotalSWOPLocked()
253259 let lastInterest = getLastInterestInfo()
254260 let interestNew = (lastInterest + fraction(pmtAmount, scaleValue, totalSWOPLocked))
255261 [IntegerEntry(keyLastInterest, interestNew)]
256262 }
257263 }
258264
259265
260266
261267 @Callable(i)
262268 func lockSWOP () = if (!(isActive))
263269 then throw("DApp is inactive at this moment")
264270 else {
265- let $t090139088 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
266- let pmtAmount = $t090139088._1
267- let pmtAssetId = $t090139088._2
271+ let $t091559230 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
272+ let pmtAmount = $t091559230._1
273+ let pmtAssetId = $t091559230._2
268274 if ((pmtAssetId != SWOP))
269275 then throw("Incorrect pmtAssetId")
270276 else {
271277 let lastInterest = getLastInterestInfo()
272- let $t092049286 = getUserInterestInfo(i.caller, lastInterest)
273- let userLastInterest = $t092049286._1
274- let userSWOPLocked = $t092049286._2
278+ let $t093469428 = getUserInterestInfo(i.caller, lastInterest)
279+ let userLastInterest = $t093469428._1
280+ let userSWOPLocked = $t093469428._2
275281 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
276282 let userSWOPLockedNew = ((userSWOPLocked + pmtAmount) + claimAmount)
277283 let userNewInterest = lastInterest
278284 let totalSWOPLocked = getTotalSWOPLocked()
279285 let totalSWOPLockedNew = ((totalSWOPLocked + pmtAmount) + claimAmount)
280286 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
281287 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
282288 [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPLocked), userSWOPLockedNew), IntegerEntry(keyTotalSWOPLocked, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
283289 }
284290 }
285291
286292
287293
288294 @Callable(i)
289295 func withdrawSWOP (withdrawAmount) = if (!(isActive))
290296 then throw("DApp is inactive at this moment")
291297 else if ((0 >= withdrawAmount))
292298 then throw("withdrawAmount <= 0")
293299 else {
294300 let totalSWOPLocked = getTotalSWOPLocked()
295301 let userSWOPLocked = getUserSWOPLocked(i.caller)
296- let $t01043610491 = claimCalc(i.caller)
297- let userNewInterest = $t01043610491._1
298- let claimAmount = $t01043610491._2
299- let $t01049610561 = getUserVoteInfo(i.caller)
300- let userVoteAmount = $t01049610561._1
301- let userUnvoteAmount = $t01049610561._2
302+ let $t01057810633 = claimCalc(i.caller)
303+ let userNewInterest = $t01057810633._1
304+ let claimAmount = $t01057810633._2
305+ let $t01063810703 = getUserVoteInfo(i.caller)
306+ let userVoteAmount = $t01063810703._1
307+ let userUnvoteAmount = $t01063810703._2
302308 let userVoteAmountForNewPool = getUserTotalVoteForNewPoolAmount(i.caller)
303309 if (if (if ((0 > userUnvoteAmount))
304310 then true
305311 else (0 > userVoteAmount))
306312 then true
307313 else (0 > userVoteAmountForNewPool))
308314 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
309315 else {
310316 let availableToUnstake = (userSWOPLocked - max([userVoteAmountForNewPool, (userVoteAmount + userUnvoteAmount)]))
311317 if ((withdrawAmount > availableToUnstake))
312318 then throw("withdrawAmount > availableToUnstake")
313319 else {
314320 let totalSWOPLockedNew = ((totalSWOPLocked + claimAmount) - withdrawAmount)
315321 let userSWOPamountNew = ((userSWOPLocked + claimAmount) - withdrawAmount)
316322 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
317323 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
318324 [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPLocked), userSWOPamountNew), IntegerEntry(keyTotalSWOPLocked, totalSWOPLockedNew), ScriptTransfer(i.caller, withdrawAmount, SWOP), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
319325 }
320326 }
321327 }
322328
323329
324330
325331 @Callable(i)
326332 func claimAndWithdrawSWOP () = if (!(isActive))
327333 then throw("DApp is inactive at this moment")
328334 else {
329335 let lastInterest = getLastInterestInfo()
330- let $t01193611991 = claimCalc(i.caller)
331- let userNewInterest = $t01193611991._1
332- let claimAmount = $t01193611991._2
336+ let $t01207812133 = claimCalc(i.caller)
337+ let userNewInterest = $t01207812133._1
338+ let claimAmount = $t01207812133._2
333339 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
334340 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
335341 if ((claimAmount == 0))
336342 then throw("You have 0 available SWOP")
337343 else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, claimAmount, SWOP)]
338344 }
339345
340346
341347
342348 @Callable(i)
343349 func claimAndStakeSWOP () = if (!(isActive))
344350 then throw("DApp is inactive at this moment")
345351 else {
346352 let totalSWOPLocked = getTotalSWOPLocked()
347353 let userSWOPLocked = getUserSWOPLocked(i.caller)
348354 let lastInterest = getLastInterestInfo()
349- let $t01277012825 = claimCalc(i.caller)
350- let userNewInterest = $t01277012825._1
351- let claimAmount = $t01277012825._2
355+ let $t01291212967 = claimCalc(i.caller)
356+ let userNewInterest = $t01291212967._1
357+ let claimAmount = $t01291212967._2
352358 let userSWOPLockedNew = (userSWOPLocked + claimAmount)
353359 let totalSWOPLockedNew = (totalSWOPLocked + claimAmount)
354360 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
355361 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
356362 if ((claimAmount == 0))
357363 then throw("You have 0 available SWOP")
358364 else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyTotalSWOPLocked, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPLocked), userSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
359365 }
360366
361367
362368
363369 @Callable(i)
364-func updateWeights (previousPools,previousRewards,currentPools,currentRewards,rewardUpdateHeight) = if (!(isActive))
370+func updateWeights (previousPools,previousRewards,currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
365371 then throw("DApp is inactive at this moment")
366- else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
367- then throw("Only admin can call this function")
368- else {
369- func sum (a,b) = (a + b)
372+ else {
373+ let amountPools = 10
374+ if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
375+ then throw("Only admin can call this function")
376+ else if (if ((size(previousPools) > amountPools))
377+ then true
378+ else (size(currentPools) > amountPools))
379+ then throw(("Max amount of pool is " + toString(amountPools)))
380+ else {
381+ func sum (a,b) = (a + b)
370382
371- func PreviousRewardEntry (accumulated,pool) = {
372- let poolIndex = value(indexOf(previousPools, pool))
373- let poolReward = previousRewards[poolIndex]
383+ func PreviousRewardEntry (accumulated,pool) = {
384+ let poolIndex = value(indexOf(previousPools, pool))
385+ let poolReward = previousRewards[poolIndex]
374386 IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
375- }
387+ }
376388
377- func CurrentRewardEntry (accumulated,pool) = {
378- let poolIndex = value(indexOf(currentPools, pool))
379- let poolReward = currentRewards[poolIndex]
389+ func CurrentRewardEntry (accumulated,pool) = {
390+ let poolIndex = value(indexOf(currentPools, pool))
391+ let poolReward = currentRewards[poolIndex]
380392 IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
381- }
393+ }
382394
383- let sumRewardPrevious = {
384- let $list1460614639 = previousRewards
385- let $size1460614639 = size($list1460614639)
386- let $acc01460614639 = 0
387- if (($size1460614639 == 0))
388- then $acc01460614639
389- else {
390- let $acc11460614639 = sum($acc01460614639, $list1460614639[0])
391- if (($size1460614639 == 1))
392- then $acc11460614639
395+ func HeightEntry (accumulated,pool) = {
396+ let poolIndex = value(indexOf(currentPools, pool))
397+ let poolHeight = rewardUpdateHeight
398+IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
399+ }
400+
401+ func getSumReward (prevTempSum,curTempSum,pagination) = if ((pagination == 0))
402+ then $Tuple2([IntegerEntry(keyTempPrevSum, prevTempSum)], [IntegerEntry(keyTempCurSum, curTempSum)])
403+ else if ((pagination == 1))
404+ then {
405+ let prevTempSumFromKey = valueOrElse(getInteger(this, keyTempPrevSum), 0)
406+ let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
407+ $Tuple2([IntegerEntry(keyTempPrevSum, (prevTempSum + prevTempSumFromKey))], [IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))])
408+ }
409+ else if ((pagination == 2))
410+ then {
411+ let prevSum = (valueOrElse(getInteger(this, keyTempPrevSum), 0) + prevTempSum)
412+ let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
413+ if (if ((prevSum != totalVoteShare))
414+ then true
415+ else (curSum != totalVoteShare))
416+ then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
417+ else $Tuple2([IntegerEntry(keyTempPrevSum, prevSum)], [IntegerEntry(keyTempCurSum, curSum)])
418+ }
419+ else throw("Incorrect pagination")
420+
421+ let sumRewardPreviousTemp = {
422+ let $list1633016363 = previousRewards
423+ let $size1633016363 = size($list1633016363)
424+ let $acc01633016363 = 0
425+ if (($size1633016363 == 0))
426+ then $acc01633016363
393427 else {
394- let $acc21460614639 = sum($acc11460614639, $list1460614639[1])
395- if (($size1460614639 == 2))
396- then $acc21460614639
428+ let $acc11633016363 = sum($acc01633016363, $list1633016363[0])
429+ if (($size1633016363 == 1))
430+ then $acc11633016363
397431 else {
398- let $acc31460614639 = sum($acc21460614639, $list1460614639[2])
399- if (($size1460614639 == 3))
400- then $acc31460614639
432+ let $acc21633016363 = sum($acc11633016363, $list1633016363[1])
433+ if (($size1633016363 == 2))
434+ then $acc21633016363
401435 else {
402- let $acc41460614639 = sum($acc31460614639, $list1460614639[3])
403- if (($size1460614639 == 4))
404- then $acc41460614639
436+ let $acc31633016363 = sum($acc21633016363, $list1633016363[2])
437+ if (($size1633016363 == 3))
438+ then $acc31633016363
405439 else {
406- let $acc51460614639 = sum($acc41460614639, $list1460614639[4])
407- if (($size1460614639 == 5))
408- then $acc51460614639
440+ let $acc41633016363 = sum($acc31633016363, $list1633016363[3])
441+ if (($size1633016363 == 4))
442+ then $acc41633016363
409443 else {
410- let $acc61460614639 = sum($acc51460614639, $list1460614639[5])
411- if (($size1460614639 == 6))
412- then $acc61460614639
444+ let $acc51633016363 = sum($acc41633016363, $list1633016363[4])
445+ if (($size1633016363 == 5))
446+ then $acc51633016363
413447 else {
414- let $acc71460614639 = sum($acc61460614639, $list1460614639[6])
415- if (($size1460614639 == 7))
416- then $acc71460614639
448+ let $acc61633016363 = sum($acc51633016363, $list1633016363[5])
449+ if (($size1633016363 == 6))
450+ then $acc61633016363
417451 else {
418- let $acc81460614639 = sum($acc71460614639, $list1460614639[7])
419- if (($size1460614639 == 8))
420- then $acc81460614639
452+ let $acc71633016363 = sum($acc61633016363, $list1633016363[6])
453+ if (($size1633016363 == 7))
454+ then $acc71633016363
421455 else {
422- let $acc91460614639 = sum($acc81460614639, $list1460614639[8])
423- if (($size1460614639 == 9))
424- then $acc91460614639
456+ let $acc81633016363 = sum($acc71633016363, $list1633016363[7])
457+ if (($size1633016363 == 8))
458+ then $acc81633016363
425459 else {
426- let $acc101460614639 = sum($acc91460614639, $list1460614639[9])
427- if (($size1460614639 == 10))
428- then $acc101460614639
460+ let $acc91633016363 = sum($acc81633016363, $list1633016363[8])
461+ if (($size1633016363 == 9))
462+ then $acc91633016363
429463 else {
430- let $acc111460614639 = sum($acc101460614639, $list1460614639[10])
431- if (($size1460614639 == 11))
432- then $acc111460614639
464+ let $acc101633016363 = sum($acc91633016363, $list1633016363[9])
465+ if (($size1633016363 == 10))
466+ then $acc101633016363
433467 else {
434- let $acc121460614639 = sum($acc111460614639, $list1460614639[11])
435- if (($size1460614639 == 12))
436- then $acc121460614639
468+ let $acc111633016363 = sum($acc101633016363, $list1633016363[10])
469+ throw("List size exceed 10")
470+ }
471+ }
472+ }
473+ }
474+ }
475+ }
476+ }
477+ }
478+ }
479+ }
480+ }
481+ }
482+ let sumRewardCurrentTemp = {
483+ let $list1639616428 = currentRewards
484+ let $size1639616428 = size($list1639616428)
485+ let $acc01639616428 = 0
486+ if (($size1639616428 == 0))
487+ then $acc01639616428
488+ else {
489+ let $acc11639616428 = sum($acc01639616428, $list1639616428[0])
490+ if (($size1639616428 == 1))
491+ then $acc11639616428
492+ else {
493+ let $acc21639616428 = sum($acc11639616428, $list1639616428[1])
494+ if (($size1639616428 == 2))
495+ then $acc21639616428
496+ else {
497+ let $acc31639616428 = sum($acc21639616428, $list1639616428[2])
498+ if (($size1639616428 == 3))
499+ then $acc31639616428
500+ else {
501+ let $acc41639616428 = sum($acc31639616428, $list1639616428[3])
502+ if (($size1639616428 == 4))
503+ then $acc41639616428
504+ else {
505+ let $acc51639616428 = sum($acc41639616428, $list1639616428[4])
506+ if (($size1639616428 == 5))
507+ then $acc51639616428
508+ else {
509+ let $acc61639616428 = sum($acc51639616428, $list1639616428[5])
510+ if (($size1639616428 == 6))
511+ then $acc61639616428
512+ else {
513+ let $acc71639616428 = sum($acc61639616428, $list1639616428[6])
514+ if (($size1639616428 == 7))
515+ then $acc71639616428
516+ else {
517+ let $acc81639616428 = sum($acc71639616428, $list1639616428[7])
518+ if (($size1639616428 == 8))
519+ then $acc81639616428
520+ else {
521+ let $acc91639616428 = sum($acc81639616428, $list1639616428[8])
522+ if (($size1639616428 == 9))
523+ then $acc91639616428
524+ else {
525+ let $acc101639616428 = sum($acc91639616428, $list1639616428[9])
526+ if (($size1639616428 == 10))
527+ then $acc101639616428
528+ else {
529+ let $acc111639616428 = sum($acc101639616428, $list1639616428[10])
530+ throw("List size exceed 10")
531+ }
532+ }
533+ }
534+ }
535+ }
536+ }
537+ }
538+ }
539+ }
540+ }
541+ }
542+ }
543+ let $t01643416546 = getSumReward(sumRewardCurrentTemp, sumRewardCurrentTemp, pagination)
544+ let sumRewardPrevious = $t01643416546._1
545+ let sumRewardCurrent = $t01643416546._2
546+ let rewardUpdateHeightEntry = if ((pagination == 2))
547+ then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
548+ else [IntegerEntry(keyRewardUpdateHeight, getIntegerValue(this, keyRewardUpdateHeight))]
549+ if (if ((pagination == 2))
550+ then (height > rewardUpdateHeight)
551+ else false)
552+ then throw("rewardUpdateHeight < height")
553+ else {
554+ let previousRewardEntryNew = {
555+ let $list1689416942 = previousPools
556+ let $size1689416942 = size($list1689416942)
557+ let $acc01689416942 = nil
558+ if (($size1689416942 == 0))
559+ then $acc01689416942
560+ else {
561+ let $acc11689416942 = PreviousRewardEntry($acc01689416942, $list1689416942[0])
562+ if (($size1689416942 == 1))
563+ then $acc11689416942
564+ else {
565+ let $acc21689416942 = PreviousRewardEntry($acc11689416942, $list1689416942[1])
566+ if (($size1689416942 == 2))
567+ then $acc21689416942
568+ else {
569+ let $acc31689416942 = PreviousRewardEntry($acc21689416942, $list1689416942[2])
570+ if (($size1689416942 == 3))
571+ then $acc31689416942
572+ else {
573+ let $acc41689416942 = PreviousRewardEntry($acc31689416942, $list1689416942[3])
574+ if (($size1689416942 == 4))
575+ then $acc41689416942
576+ else {
577+ let $acc51689416942 = PreviousRewardEntry($acc41689416942, $list1689416942[4])
578+ if (($size1689416942 == 5))
579+ then $acc51689416942
580+ else {
581+ let $acc61689416942 = PreviousRewardEntry($acc51689416942, $list1689416942[5])
582+ if (($size1689416942 == 6))
583+ then $acc61689416942
584+ else {
585+ let $acc71689416942 = PreviousRewardEntry($acc61689416942, $list1689416942[6])
586+ if (($size1689416942 == 7))
587+ then $acc71689416942
588+ else {
589+ let $acc81689416942 = PreviousRewardEntry($acc71689416942, $list1689416942[7])
590+ if (($size1689416942 == 8))
591+ then $acc81689416942
592+ else {
593+ let $acc91689416942 = PreviousRewardEntry($acc81689416942, $list1689416942[8])
594+ if (($size1689416942 == 9))
595+ then $acc91689416942
596+ else {
597+ let $acc101689416942 = PreviousRewardEntry($acc91689416942, $list1689416942[9])
598+ if (($size1689416942 == 10))
599+ then $acc101689416942
437600 else {
438- let $acc131460614639 = sum($acc121460614639, $list1460614639[12])
439- if (($size1460614639 == 13))
440- then $acc131460614639
441- else {
442- let $acc141460614639 = sum($acc131460614639, $list1460614639[13])
443- if (($size1460614639 == 14))
444- then $acc141460614639
445- else {
446- let $acc151460614639 = sum($acc141460614639, $list1460614639[14])
447- if (($size1460614639 == 15))
448- then $acc151460614639
449- else {
450- let $acc161460614639 = sum($acc151460614639, $list1460614639[15])
451- if (($size1460614639 == 16))
452- then $acc161460614639
453- else {
454- let $acc171460614639 = sum($acc161460614639, $list1460614639[16])
455- if (($size1460614639 == 17))
456- then $acc171460614639
457- else {
458- let $acc181460614639 = sum($acc171460614639, $list1460614639[17])
459- if (($size1460614639 == 18))
460- then $acc181460614639
461- else {
462- let $acc191460614639 = sum($acc181460614639, $list1460614639[18])
463- if (($size1460614639 == 19))
464- then $acc191460614639
465- else {
466- let $acc201460614639 = sum($acc191460614639, $list1460614639[19])
467- if (($size1460614639 == 20))
468- then $acc201460614639
469- else {
470- let $acc211460614639 = sum($acc201460614639, $list1460614639[20])
471- if (($size1460614639 == 21))
472- then $acc211460614639
473- else {
474- let $acc221460614639 = sum($acc211460614639, $list1460614639[21])
475- throw("List size exceed 21")
476- }
477- }
478- }
479- }
480- }
481- }
482- }
483- }
484- }
601+ let $acc111689416942 = PreviousRewardEntry($acc101689416942, $list1689416942[10])
602+ throw("List size exceed 10")
485603 }
486604 }
487605 }
488606 }
489607 }
490608 }
491609 }
492610 }
493611 }
494612 }
495613 }
496614 }
497- }
498- }
499- let sumRewardCurrent = {
500- let $list1466814700 = currentRewards
501- let $size1466814700 = size($list1466814700)
502- let $acc01466814700 = 0
503- if (($size1466814700 == 0))
504- then $acc01466814700
505- else {
506- let $acc11466814700 = sum($acc01466814700, $list1466814700[0])
507- if (($size1466814700 == 1))
508- then $acc11466814700
509- else {
510- let $acc21466814700 = sum($acc11466814700, $list1466814700[1])
511- if (($size1466814700 == 2))
512- then $acc21466814700
615+ let currentRewardEntryNew = {
616+ let $list1697517021 = currentPools
617+ let $size1697517021 = size($list1697517021)
618+ let $acc01697517021 = nil
619+ if (($size1697517021 == 0))
620+ then $acc01697517021
513621 else {
514- let $acc31466814700 = sum($acc21466814700, $list1466814700[2])
515- if (($size1466814700 == 3))
516- then $acc31466814700
622+ let $acc11697517021 = CurrentRewardEntry($acc01697517021, $list1697517021[0])
623+ if (($size1697517021 == 1))
624+ then $acc11697517021
517625 else {
518- let $acc41466814700 = sum($acc31466814700, $list1466814700[3])
519- if (($size1466814700 == 4))
520- then $acc41466814700
626+ let $acc21697517021 = CurrentRewardEntry($acc11697517021, $list1697517021[1])
627+ if (($size1697517021 == 2))
628+ then $acc21697517021
521629 else {
522- let $acc51466814700 = sum($acc41466814700, $list1466814700[4])
523- if (($size1466814700 == 5))
524- then $acc51466814700
630+ let $acc31697517021 = CurrentRewardEntry($acc21697517021, $list1697517021[2])
631+ if (($size1697517021 == 3))
632+ then $acc31697517021
525633 else {
526- let $acc61466814700 = sum($acc51466814700, $list1466814700[5])
527- if (($size1466814700 == 6))
528- then $acc61466814700
634+ let $acc41697517021 = CurrentRewardEntry($acc31697517021, $list1697517021[3])
635+ if (($size1697517021 == 4))
636+ then $acc41697517021
529637 else {
530- let $acc71466814700 = sum($acc61466814700, $list1466814700[6])
531- if (($size1466814700 == 7))
532- then $acc71466814700
638+ let $acc51697517021 = CurrentRewardEntry($acc41697517021, $list1697517021[4])
639+ if (($size1697517021 == 5))
640+ then $acc51697517021
533641 else {
534- let $acc81466814700 = sum($acc71466814700, $list1466814700[7])
535- if (($size1466814700 == 8))
536- then $acc81466814700
642+ let $acc61697517021 = CurrentRewardEntry($acc51697517021, $list1697517021[5])
643+ if (($size1697517021 == 6))
644+ then $acc61697517021
537645 else {
538- let $acc91466814700 = sum($acc81466814700, $list1466814700[8])
539- if (($size1466814700 == 9))
540- then $acc91466814700
646+ let $acc71697517021 = CurrentRewardEntry($acc61697517021, $list1697517021[6])
647+ if (($size1697517021 == 7))
648+ then $acc71697517021
541649 else {
542- let $acc101466814700 = sum($acc91466814700, $list1466814700[9])
543- if (($size1466814700 == 10))
544- then $acc101466814700
650+ let $acc81697517021 = CurrentRewardEntry($acc71697517021, $list1697517021[7])
651+ if (($size1697517021 == 8))
652+ then $acc81697517021
545653 else {
546- let $acc111466814700 = sum($acc101466814700, $list1466814700[10])
547- if (($size1466814700 == 11))
548- then $acc111466814700
654+ let $acc91697517021 = CurrentRewardEntry($acc81697517021, $list1697517021[8])
655+ if (($size1697517021 == 9))
656+ then $acc91697517021
549657 else {
550- let $acc121466814700 = sum($acc111466814700, $list1466814700[11])
551- if (($size1466814700 == 12))
552- then $acc121466814700
658+ let $acc101697517021 = CurrentRewardEntry($acc91697517021, $list1697517021[9])
659+ if (($size1697517021 == 10))
660+ then $acc101697517021
553661 else {
554- let $acc131466814700 = sum($acc121466814700, $list1466814700[12])
555- if (($size1466814700 == 13))
556- then $acc131466814700
557- else {
558- let $acc141466814700 = sum($acc131466814700, $list1466814700[13])
559- if (($size1466814700 == 14))
560- then $acc141466814700
561- else {
562- let $acc151466814700 = sum($acc141466814700, $list1466814700[14])
563- if (($size1466814700 == 15))
564- then $acc151466814700
565- else {
566- let $acc161466814700 = sum($acc151466814700, $list1466814700[15])
567- if (($size1466814700 == 16))
568- then $acc161466814700
569- else {
570- let $acc171466814700 = sum($acc161466814700, $list1466814700[16])
571- if (($size1466814700 == 17))
572- then $acc171466814700
573- else {
574- let $acc181466814700 = sum($acc171466814700, $list1466814700[17])
575- if (($size1466814700 == 18))
576- then $acc181466814700
577- else {
578- let $acc191466814700 = sum($acc181466814700, $list1466814700[18])
579- if (($size1466814700 == 19))
580- then $acc191466814700
581- else {
582- let $acc201466814700 = sum($acc191466814700, $list1466814700[19])
583- if (($size1466814700 == 20))
584- then $acc201466814700
585- else {
586- let $acc211466814700 = sum($acc201466814700, $list1466814700[20])
587- if (($size1466814700 == 21))
588- then $acc211466814700
589- else {
590- let $acc221466814700 = sum($acc211466814700, $list1466814700[21])
591- throw("List size exceed 21")
592- }
593- }
594- }
595- }
596- }
597- }
598- }
599- }
600- }
662+ let $acc111697517021 = CurrentRewardEntry($acc101697517021, $list1697517021[10])
663+ throw("List size exceed 10")
601664 }
602665 }
603666 }
604667 }
605668 }
606669 }
607670 }
608671 }
609672 }
610673 }
611674 }
612675 }
613- }
614- }
615- if ((height > rewardUpdateHeight))
616- then throw("rewardUpdateHeight < height")
617- else if (if ((sumRewardPrevious != totalVoteShare))
618- then true
619- else (sumRewardCurrent != totalVoteShare))
620- then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
621- else {
622- let previousRewardEntryNew = {
623- let $list1500915057 = previousPools
624- let $size1500915057 = size($list1500915057)
625- let $acc01500915057 = nil
626- if (($size1500915057 == 0))
627- then $acc01500915057
628- else {
629- let $acc11500915057 = PreviousRewardEntry($acc01500915057, $list1500915057[0])
630- if (($size1500915057 == 1))
631- then $acc11500915057
632- else {
633- let $acc21500915057 = PreviousRewardEntry($acc11500915057, $list1500915057[1])
634- if (($size1500915057 == 2))
635- then $acc21500915057
636- else {
637- let $acc31500915057 = PreviousRewardEntry($acc21500915057, $list1500915057[2])
638- if (($size1500915057 == 3))
639- then $acc31500915057
640- else {
641- let $acc41500915057 = PreviousRewardEntry($acc31500915057, $list1500915057[3])
642- if (($size1500915057 == 4))
643- then $acc41500915057
644- else {
645- let $acc51500915057 = PreviousRewardEntry($acc41500915057, $list1500915057[4])
646- if (($size1500915057 == 5))
647- then $acc51500915057
648- else {
649- let $acc61500915057 = PreviousRewardEntry($acc51500915057, $list1500915057[5])
650- if (($size1500915057 == 6))
651- then $acc61500915057
652- else {
653- let $acc71500915057 = PreviousRewardEntry($acc61500915057, $list1500915057[6])
654- if (($size1500915057 == 7))
655- then $acc71500915057
656- else {
657- let $acc81500915057 = PreviousRewardEntry($acc71500915057, $list1500915057[7])
658- if (($size1500915057 == 8))
659- then $acc81500915057
660- else {
661- let $acc91500915057 = PreviousRewardEntry($acc81500915057, $list1500915057[8])
662- if (($size1500915057 == 9))
663- then $acc91500915057
664- else {
665- let $acc101500915057 = PreviousRewardEntry($acc91500915057, $list1500915057[9])
666- if (($size1500915057 == 10))
667- then $acc101500915057
668- else {
669- let $acc111500915057 = PreviousRewardEntry($acc101500915057, $list1500915057[10])
670- if (($size1500915057 == 11))
671- then $acc111500915057
672- else {
673- let $acc121500915057 = PreviousRewardEntry($acc111500915057, $list1500915057[11])
674- if (($size1500915057 == 12))
675- then $acc121500915057
676- else {
677- let $acc131500915057 = PreviousRewardEntry($acc121500915057, $list1500915057[12])
678- if (($size1500915057 == 13))
679- then $acc131500915057
680- else {
681- let $acc141500915057 = PreviousRewardEntry($acc131500915057, $list1500915057[13])
682- if (($size1500915057 == 14))
683- then $acc141500915057
684- else {
685- let $acc151500915057 = PreviousRewardEntry($acc141500915057, $list1500915057[14])
686- if (($size1500915057 == 15))
687- then $acc151500915057
688- else {
689- let $acc161500915057 = PreviousRewardEntry($acc151500915057, $list1500915057[15])
690- if (($size1500915057 == 16))
691- then $acc161500915057
692- else {
693- let $acc171500915057 = PreviousRewardEntry($acc161500915057, $list1500915057[16])
694- if (($size1500915057 == 17))
695- then $acc171500915057
696- else {
697- let $acc181500915057 = PreviousRewardEntry($acc171500915057, $list1500915057[17])
698- if (($size1500915057 == 18))
699- then $acc181500915057
700- else {
701- let $acc191500915057 = PreviousRewardEntry($acc181500915057, $list1500915057[18])
702- if (($size1500915057 == 19))
703- then $acc191500915057
704- else {
705- let $acc201500915057 = PreviousRewardEntry($acc191500915057, $list1500915057[19])
706- if (($size1500915057 == 20))
707- then $acc201500915057
708- else {
709- let $acc211500915057 = PreviousRewardEntry($acc201500915057, $list1500915057[20])
710- if (($size1500915057 == 21))
711- then $acc211500915057
712- else {
713- let $acc221500915057 = PreviousRewardEntry($acc211500915057, $list1500915057[21])
714- throw("List size exceed 21")
715- }
716- }
717- }
718- }
719- }
720- }
721- }
722- }
723- }
724- }
725- }
726- }
727- }
728- }
729- }
730- }
731- }
732- }
733- }
734- }
735- }
736- }
676+ let heightEntryNew = {
677+ let $list1704717086 = currentPools
678+ let $size1704717086 = size($list1704717086)
679+ let $acc01704717086 = nil
680+ if (($size1704717086 == 0))
681+ then $acc01704717086
682+ else {
683+ let $acc11704717086 = HeightEntry($acc01704717086, $list1704717086[0])
684+ if (($size1704717086 == 1))
685+ then $acc11704717086
686+ else {
687+ let $acc21704717086 = HeightEntry($acc11704717086, $list1704717086[1])
688+ if (($size1704717086 == 2))
689+ then $acc21704717086
690+ else {
691+ let $acc31704717086 = HeightEntry($acc21704717086, $list1704717086[2])
692+ if (($size1704717086 == 3))
693+ then $acc31704717086
694+ else {
695+ let $acc41704717086 = HeightEntry($acc31704717086, $list1704717086[3])
696+ if (($size1704717086 == 4))
697+ then $acc41704717086
698+ else {
699+ let $acc51704717086 = HeightEntry($acc41704717086, $list1704717086[4])
700+ if (($size1704717086 == 5))
701+ then $acc51704717086
702+ else {
703+ let $acc61704717086 = HeightEntry($acc51704717086, $list1704717086[5])
704+ if (($size1704717086 == 6))
705+ then $acc61704717086
706+ else {
707+ let $acc71704717086 = HeightEntry($acc61704717086, $list1704717086[6])
708+ if (($size1704717086 == 7))
709+ then $acc71704717086
710+ else {
711+ let $acc81704717086 = HeightEntry($acc71704717086, $list1704717086[7])
712+ if (($size1704717086 == 8))
713+ then $acc81704717086
714+ else {
715+ let $acc91704717086 = HeightEntry($acc81704717086, $list1704717086[8])
716+ if (($size1704717086 == 9))
717+ then $acc91704717086
718+ else {
719+ let $acc101704717086 = HeightEntry($acc91704717086, $list1704717086[9])
720+ if (($size1704717086 == 10))
721+ then $acc101704717086
722+ else {
723+ let $acc111704717086 = HeightEntry($acc101704717086, $list1704717086[10])
724+ throw("List size exceed 10")
725+ }
726+ }
727+ }
728+ }
729+ }
730+ }
731+ }
732+ }
733+ }
734+ }
735+ }
736+ }
737+ (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNew) ++ sumRewardPrevious) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry)
737738 }
738- let currentRewardEntryNew = {
739- let $list1509015136 = currentPools
740- let $size1509015136 = size($list1509015136)
741- let $acc01509015136 = nil
742- if (($size1509015136 == 0))
743- then $acc01509015136
744- else {
745- let $acc11509015136 = CurrentRewardEntry($acc01509015136, $list1509015136[0])
746- if (($size1509015136 == 1))
747- then $acc11509015136
748- else {
749- let $acc21509015136 = CurrentRewardEntry($acc11509015136, $list1509015136[1])
750- if (($size1509015136 == 2))
751- then $acc21509015136
752- else {
753- let $acc31509015136 = CurrentRewardEntry($acc21509015136, $list1509015136[2])
754- if (($size1509015136 == 3))
755- then $acc31509015136
756- else {
757- let $acc41509015136 = CurrentRewardEntry($acc31509015136, $list1509015136[3])
758- if (($size1509015136 == 4))
759- then $acc41509015136
760- else {
761- let $acc51509015136 = CurrentRewardEntry($acc41509015136, $list1509015136[4])
762- if (($size1509015136 == 5))
763- then $acc51509015136
764- else {
765- let $acc61509015136 = CurrentRewardEntry($acc51509015136, $list1509015136[5])
766- if (($size1509015136 == 6))
767- then $acc61509015136
768- else {
769- let $acc71509015136 = CurrentRewardEntry($acc61509015136, $list1509015136[6])
770- if (($size1509015136 == 7))
771- then $acc71509015136
772- else {
773- let $acc81509015136 = CurrentRewardEntry($acc71509015136, $list1509015136[7])
774- if (($size1509015136 == 8))
775- then $acc81509015136
776- else {
777- let $acc91509015136 = CurrentRewardEntry($acc81509015136, $list1509015136[8])
778- if (($size1509015136 == 9))
779- then $acc91509015136
780- else {
781- let $acc101509015136 = CurrentRewardEntry($acc91509015136, $list1509015136[9])
782- if (($size1509015136 == 10))
783- then $acc101509015136
784- else {
785- let $acc111509015136 = CurrentRewardEntry($acc101509015136, $list1509015136[10])
786- if (($size1509015136 == 11))
787- then $acc111509015136
788- else {
789- let $acc121509015136 = CurrentRewardEntry($acc111509015136, $list1509015136[11])
790- if (($size1509015136 == 12))
791- then $acc121509015136
792- else {
793- let $acc131509015136 = CurrentRewardEntry($acc121509015136, $list1509015136[12])
794- if (($size1509015136 == 13))
795- then $acc131509015136
796- else {
797- let $acc141509015136 = CurrentRewardEntry($acc131509015136, $list1509015136[13])
798- if (($size1509015136 == 14))
799- then $acc141509015136
800- else {
801- let $acc151509015136 = CurrentRewardEntry($acc141509015136, $list1509015136[14])
802- if (($size1509015136 == 15))
803- then $acc151509015136
804- else {
805- let $acc161509015136 = CurrentRewardEntry($acc151509015136, $list1509015136[15])
806- if (($size1509015136 == 16))
807- then $acc161509015136
808- else {
809- let $acc171509015136 = CurrentRewardEntry($acc161509015136, $list1509015136[16])
810- if (($size1509015136 == 17))
811- then $acc171509015136
812- else {
813- let $acc181509015136 = CurrentRewardEntry($acc171509015136, $list1509015136[17])
814- if (($size1509015136 == 18))
815- then $acc181509015136
816- else {
817- let $acc191509015136 = CurrentRewardEntry($acc181509015136, $list1509015136[18])
818- if (($size1509015136 == 19))
819- then $acc191509015136
820- else {
821- let $acc201509015136 = CurrentRewardEntry($acc191509015136, $list1509015136[19])
822- if (($size1509015136 == 20))
823- then $acc201509015136
824- else {
825- let $acc211509015136 = CurrentRewardEntry($acc201509015136, $list1509015136[20])
826- if (($size1509015136 == 21))
827- then $acc211509015136
828- else {
829- let $acc221509015136 = CurrentRewardEntry($acc211509015136, $list1509015136[21])
830- throw("List size exceed 21")
831- }
832- }
833- }
834- }
835- }
836- }
837- }
838- }
839- }
840- }
841- }
842- }
843- }
844- }
845- }
846- }
847- }
848- }
849- }
850- }
851- }
852- }
853- }
854- ((previousRewardEntryNew ++ currentRewardEntryNew) ++ [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)])
855- }
856- }
739+ }
740+ }
857741
858742
859743
860744 @Callable(i)
861745 func shutdown () = if (!(isActive))
862746 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
863747 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
864748 then throw("Only admin can call this function")
865749 else suspend("Paused by admin")
866750
867751
868752
869753 @Callable(i)
870754 func activate () = if (isActive)
871755 then throw("DApp is already active")
872756 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
873757 then throw("Only admin can call this function")
874758 else [BooleanEntry(keyActive, true), DeleteEntry(keyCause)]
875759
876760
877761 @Verifier(tx)
878762 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
879763

github/deemru/w8io/169f3d6 
245.29 ms