tx · B94FsyD5gvDZhwSxP4FUuUqZgb4n1e27U8iMd6jjwVVo

3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU:  -0.01400000 Waves

2021.07.14 10:26 [1612988] smart account 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU > SELF 0.00000000 Waves

{ "type": 13, "id": "B94FsyD5gvDZhwSxP4FUuUqZgb4n1e27U8iMd6jjwVVo", "fee": 1400000, "feeAssetId": null, "timestamp": 1626247626544, "version": 2, "chainId": 84, "sender": "3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU", "senderPublicKey": "AWADFmQjf2WbDSqb24S9YZpix3VEdiBdeiJ2J2sSfQ49", "proofs": [ "3F9fA6tPDd3sSw5WF8SVk3ssPM3vatoMDQuJHacTfpDbcaFWCdwxuNTijCw5JFPY9ExDngc8DwMt5oViTwxPDGyb" ], "script": "base64:AAIFAAAAAAAAABsIAhIAEgASAwoBARIAEgASBgoEGBEBARIAEgAAAABTAAAAABRhZG1pblB1YktleVN0YXJ0U3RvcAEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAEWFkbWluUHViS2V5V2FsbGV0AQAAACA+d1plWlbJ/ClXM7W8DUUtysyn+IWSDjd3WPNiFVIUEgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAACGtleUNhdXNlAgAAAA5zaHV0ZG93bl9jYXVzZQAAAAAPa2V5TGFzdEludGVyZXN0AgAAAA1sYXN0X2ludGVyZXN0AAAAABNrZXlVc2VyTGFzdEludGVyZXN0AgAAAA5fbGFzdF9pbnRlcmVzdAAAAAARa2V5VXNlclNXT1BMb2NrZWQCAAAADF9TV09QX2Ftb3VudAAAAAAUa2V5VXNlckdldEJhY2tIZWlnaHQCAAAADl9nZXRCYWNrSGVpZ2h0AAAAABJrZXlUb3RhbFNXT1BMb2NrZWQCAAAAEXRvdGFsX1NXT1BfYW1vdW50AAAAABJrVXNlclRvdGFsVm90ZVNXT1ACAAAAFV91c2VyX3RvdGFsX1NXT1Bfdm90ZQAAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQCAAAAE19TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAIAAAAYdG90YWxfU1dPUF9vcHRpb25fYW1vdW50AAAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQCAAAAFF9TV09QX2NsYWltZWRfYW1vdW50AAAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50AgAAABlfU1dPUF9sYXN0X2NsYWltZWRfYW1vdW50AAAAAAtrZXlWb3RlTmFtZQIAAAAJdm90ZV9uYW1lAAAAAA1rZXlPcHRpb25OYW1lAgAAAAxfb3B0aW9uX25hbWUAAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AgAAAAxfc3RhcnRIZWlnaHQAAAAAD2tleVZvdGVEdXJhdGlvbgIAAAAOX3ZvdGVfZHVyYXRpb24AAAAAHGtleVJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQCAAAAHV9jdXJyZW50X3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwIAAAAeX3ByZXZpb3VzX3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24CAAAAGl9wb29sX3Jld2FyZF91cGRhdGVfaGVpZ2h0AAAAAB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIAAAAedG90YWxfcmV3YXJkX3Blcl9ibG9ja19jdXJyZW50AAAAAB5rZXlUb3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMCAAAAH3RvdGFsX3Jld2FyZF9wZXJfYmxvY2tfcHJldmlvdXMAAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAIAAAAUcmV3YXJkX3VwZGF0ZV9oZWlnaHQAAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAIAAAAlcmV3YXJkX3VwZGF0ZV9oZWlnaHRfZmlyc3RfcGFnaW5hdGlvbgAAAAAVa2V5Tm9Wb3RpbmdGb3JOZXdQb29sAgAAAAhfdm90ZV9ubwAAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAIAAAAJX3ZvdGVfeWVzAAAAABtrZXlBbW91bnRPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAEW1heF9hbW91bnRfdm90aW5nAAAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAB19zdGF0dXMAAAAAH2tleUhlaWdodE9mUG9vbFZvdGluZ0Zvck5ld1Bvb2wCAAAADl9maW5pc2hfaGVpZ2h0AAAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAFHZvdGluZ19hY3RpdmVfY2VsbF8xAAAAABBhY3RpdmVWb3RlU2Vjb25kAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMgAAAAAPYWN0aXZlVm90ZVRoaXJkAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMwAAAAANa2V5VGVtcEN1clN1bQIAAAASc3VtX3Jld2FyZF9jdXJyZW50AAAAAA9rZXlBZG1pblB1YktleTECAAAAC2FkbWluX3B1Yl8xAAAAAA9rZXlBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA9rZXlBZG1pblB1YktleTMCAAAAC2FkbWluX3B1Yl8zAAAAAA9vcmFjbGVBZG1pblBvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSASQQg8oyz+7dxVOj4PLohRHZWDMPVBaoBAAAAC2dldEFkbWluUHViAAAAAQAAAAtrZXlBZG1pblB1YgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAA9vcmFjbGVBZG1pblBvb2wFAAAAC2tleUFkbWluUHViAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAZzdHJpbmcEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAZQWRtaW4gcHVibGljIGtleSBpcyBlbXB0eQAAAAAMYWRtaW5QdWJLZXkxCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1YktleTEAAAAADGFkbWluUHViS2V5MgkBAAAAC2dldEFkbWluUHViAAAAAQUAAAAPa2V5QWRtaW5QdWJLZXkyAAAAAAxhZG1pblB1YktleTMJAQAAAAtnZXRBZG1pblB1YgAAAAEFAAAAD2tleUFkbWluUHViS2V5MwAAAAAIaXNBY3RpdmUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlBgAAAAASZmFybWluZ1NXT1BBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFULEuCdkaN7xkyPSmpBMwL+vYh0o63mS9mAAAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQaNn7fV6KdJ2lc/r/3JtTn+6HDaD4gyn8AAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVR2IeF5Fctzd38/oGN0UKsjLFsZGIPzS4IAAAAACWtleVNXT1BpZAIAAAAHU1dPUF9pZAAAAAAEU1dPUAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAABJmYXJtaW5nU1dPUEFkZHJlc3MFAAAACWtleVNXT1BpZAAAAAAKc2NhbGVWYWx1ZQAAAAAABfXhAAAAAAAOdG90YWxWb3RlU2hhcmUAAAAAAlQL5AAAAAAADGtTdGFydEhlaWdodAIAAAAMc3RhcnRfaGVpZ2h0AAAAAAtrQmFzZVBlcmlvZAIAAAALYmFzZV9wZXJpb2QAAAAADWtQZXJpb2RMZW5ndGgCAAAADXBlcmlvZF9sZW5ndGgAAAAAD2tVc2VyVG90YWxTdHJ1YwIAAAARX3VzZXJfdG90YWxfc3RydWMAAAAACmJhc2VQZXJpb2QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QFAAAAC2tCYXNlUGVyaW9kAgAAACRFbXB0eSBrQmFzZVBlcmlvZCBhdCB2b3RpbmcgY29udHJhY3QAAAAAC3N0YXJ0SGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0BQAAAAxrU3RhcnRIZWlnaHQCAAAAJUVtcHR5IGtTdGFydEhlaWdodCBhdCB2b3RpbmcgY29udHJhY3QAAAAADHBlcmlvZExlbmd0aAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAUAAAANa1BlcmlvZExlbmd0aAIAAAAmRW1wdHkga1BlcmlvZExlbmd0aCBhdCB2b3RpbmcgY29udHJhY3QAAAAAD2ZpcnN0QWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAAAAAAAAQc2Vjb25kQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAABBhY3RpdmVWb3RlU2Vjb25kAgAAAAAAAAAAD3RoaXJkQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAAAAAAAAQY3VyclZvdGluZ1BlcmlvZAkAAGQAAAACBQAAAApiYXNlUGVyaW9kCQAAaQAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAtzdGFydEhlaWdodAUAAAAMcGVyaW9kTGVuZ3RoAQAAAAdzdXNwZW5kAAAAAQAAAAVjYXVzZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhrZXlDYXVzZQUAAAAFY2F1c2UFAAAAA25pbAEAAAASdGhyb3dOb3RFbm91Z2hTV09QAAAAAAkAAAIAAAABAgAAAEZOb3QgZW5vdWdoIFNXT1A6IHVzZXJTV09QTG9ja2VkIC0gdXNlclRvdGFsVm90ZUFtb3VudCA8IHZvdGVTV09QQW1vdW50AQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAAMbGFzdEludGVyZXN0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAD2tleUxhc3RJbnRlcmVzdAAAAAAAAAAAAAUAAAAMbGFzdEludGVyZXN0AQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQAAAAAAAAAAAABAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAAAAAAAAAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEmtVc2VyVG90YWxWb3RlU1dPUAAAAAAAAAAAAAEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIAAAAEdXNlcgAAAAxsYXN0SW50ZXJlc3QEAAAADnVzZXJTV09QQW1vdW50CQEAAAARZ2V0VXNlclNXT1BMb2NrZWQAAAABBQAAAAR1c2VyBAAAABB1c2VyTGFzdEludGVyZXN0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BAAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUEAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQUAAAAOdXNlclNXT1BBbW91bnQBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgAAAARwb29sAAAABHVzZXIEAAAABnZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAARwb29sAP//////////BAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAAB9rZXlIZWlnaHRPZlBvb2xWb3RpbmdGb3JOZXdQb29sAAAAAAAAAAAABAAAAA5zdGF0dXNPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wGBAAAAA1jdXJyZW50SGVpZ2h0BQAAAAZoZWlnaHQDCQAAZgAAAAIAAAAAAAAAAAAFAAAABnZvdGluZwAAAAAAAAAAAAMJAQAAAAEhAAAAAQUAAAAOc3RhdHVzT2ZWb3RpbmcAAAAAAAAAAAADCQAAZgAAAAIFAAAADmhlaWdodE9mVm90aW5nBQAAAA1jdXJyZW50SGVpZ2h0CQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyAgAAAAFfCQABpAAAAAEFAAAABnZvdGluZwUAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAAGdm90aW5nBQAAABVrZXlOb1ZvdGluZ0Zvck5ld1Bvb2wAAAAAAAAAAAAAAAAAAAAAAAABAAAAIGdldFVzZXJUb3RhbFZvdGVGb3JOZXdQb29sQW1vdW50AAAAAQAAAAR1c2VyBAAAAAxsaXN0T2ZWb3RpbmcJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPZmlyc3RBY3RpdmVWb3RlBQAAAAR1c2VyCQAETAAAAAIJAQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIFAAAAEHNlY29uZEFjdGl2ZVZvdGUFAAAABHVzZXIJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPdGhpcmRBY3RpdmVWb3RlBQAAAAR1c2VyBQAAAANuaWwJAAGWAAAAAQUAAAAMbGlzdE9mVm90aW5nAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmtleVRvdGFsU1dPUExvY2tlZAAAAAAAAAAAAAEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQAAAAR1c2VyBAAAAAskdDA2MzYwNjkxMQMJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAD2tVc2VyVG90YWxTdHJ1YwQAAAAEZGF0YQkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAPa1VzZXJUb3RhbFN0cnVjAgAAABVFbXB0eSBrVXNlclRvdGFsU3RydWMCAAAAAV8JAAUVAAAAAwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAAJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAgQAAAAOdVBvb2xUb3RhbFNXT1AJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAASa1VzZXJUb3RhbFZvdGVTV09QAAAAAAAAAAAACQAFFQAAAAMFAAAADnVQb29sVG90YWxTV09QAAAAAAAAAAAABQAAABBjdXJyVm90aW5nUGVyaW9kBAAAABF1c2VyVG90YWxWb3RlU1dPUAgFAAAACyR0MDYzNjA2OTExAAAAAl8xBAAAAAt1c2VyVW52b3RlZAgFAAAACyR0MDYzNjA2OTExAAAAAl8yBAAAABF1c2VyVW52b3RlZFBlcmlvZAgFAAAACyR0MDYzNjA2OTExAAAAAl8zBAAAABF1c2VyVW52b3RlZEFjdHVhbAMJAAAAAAAAAgUAAAARdXNlclVudm90ZWRQZXJpb2QFAAAAEGN1cnJWb3RpbmdQZXJpb2QFAAAAC3VzZXJVbnZvdGVkAAAAAAAAAAAACQAFFAAAAAIFAAAAEXVzZXJUb3RhbFZvdGVTV09QBQAAABF1c2VyVW52b3RlZEFjdHVhbAEAAAAXZ2V0VXNlclZvdGVPcHRpb25BbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAAAAAAAAAQAAABRnZXRWb3RpbmdTdGFydEhlaWdodAAAAAEAAAAIdm90ZU5hbWUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQAAAAAAAAAAAABAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24AAAAAAAAAAAABAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEAAAAEcG9vbAkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24BAAAAEGdldEN1clBvb2xXZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AAAAAAAAAAAAAQAAABFnZXRQcmV2UG9vbFdlaWdodAAAAAEAAAAEcG9vbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzAAAAAAAAAAAAAQAAABNnZXRWb3RlT3B0aW9uQW1vdW50AAAAAwAAAAR1c2VyAAAACHZvdGVOYW1lAAAABm9wdGlvbgQAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAQAAAAEdXZvYQQAAAAHJG1hdGNoMAUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAEdXZvYQUAAAAHJG1hdGNoMAUAAAAEdXZvYQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAEdXZvYQUAAAAHJG1hdGNoMAAAAAAAAAAAAAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACBQAAAAR1dm9hCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AQAAAA9nZXRWb3RlRHVyYXRpb24AAAABAAAACHZvdGVOYW1lCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAPa2V5Vm90ZUR1cmF0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAACHZvdGVOYW1lBQAAAA9rZXlWb3RlRHVyYXRpb24BAAAAGGdldFRvdGFsVm90ZU9wdGlvbkFtb3VudAAAAAIAAAAIdm90ZU5hbWUAAAAGb3B0aW9uBAAAABV0b3RhbFZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24FAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAQAAAAEdHZvYQQAAAAHJG1hdGNoMAUAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABHR2b2EFAAAAByRtYXRjaDAFAAAABHR2b2EDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABHR2b2EFAAAAByRtYXRjaDAAAAAAAAAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAABHR2b2EBAAAAFGdldFVzZXJHZXRCYWNrQW1vdW50AAAABAAAAAh2b3RlTmFtZQAAAAZvcHRpb24AAAAEdXNlcgAAABFnZXRCYWNrU1dPUEhlaWdodAQAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQIAAAABXwUAAAAGb3B0aW9uAgAAAAFfCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAARZ2V0QmFja1NXT1BIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAAA2tleQEAAAAJY2xhaW1DYWxjAAAAAQAAAAZjYWxsZXIEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA5MzE1OTM5NQkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACBQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDkzMTU5Mzk1AAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAACyR0MDkzMTU5Mzk1AAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAaAAAAABCQABPAAAAAMJAAE2AAAAAQUAAAAOdXNlclNXT1BMb2NrZWQJAAE2AAAAAQkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QJAAE2AAAAAQUAAAAKc2NhbGVWYWx1ZQQAAAAPdXNlck5ld0ludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QJAAUUAAAAAgUAAAAPdXNlck5ld0ludGVyZXN0BQAAAAtjbGFpbUFtb3VudAAAAAgAAAABaQEAAAAHYWlyRHJvcAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAACyR0MDk3MDM5Nzc4CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwOTcwMzk3NzgAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA5NzAzOTc3OAAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAAD3RvdGFsU1dPUExvY2tlZAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAtpbnRlcmVzdE5ldwkAAGQAAAACBQAAAAxsYXN0SW50ZXJlc3QJAAGgAAAAAQkAATwAAAADCQABNgAAAAEFAAAACXBtdEFtb3VudAkAATYAAAABBQAAAApzY2FsZVZhbHVlCQABNgAAAAEFAAAAD3RvdGFsU1dPUExvY2tlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa2V5TGFzdEludGVyZXN0BQAAAAtpbnRlcmVzdE5ldwUAAAADbmlsAAAAAWkBAAAACGxvY2tTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAANJHQwMTAyNTcxMDMzMgkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDEwMjU3MTAzMzIAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAxMDI1NzEwMzMyAAAAAl8yAwkBAAAAAiE9AAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEU1dPUAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcG10QXNzZXRJZAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDEwNDQ4MTA1MzAJAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAxsYXN0SW50ZXJlc3QEAAAAEHVzZXJMYXN0SW50ZXJlc3QIBQAAAA0kdDAxMDQ0ODEwNTMwAAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAADSR0MDEwNDQ4MTA1MzAAAAACXzIEAAAAC2NsYWltQW1vdW50CQABoAAAAAEJAAE8AAAAAwkAATYAAAABBQAAAA51c2VyU1dPUExvY2tlZAkAATYAAAABCQAAZQAAAAIFAAAADGxhc3RJbnRlcmVzdAUAAAAQdXNlckxhc3RJbnRlcmVzdAkAATYAAAABBQAAAApzY2FsZVZhbHVlBAAAABF1c2VyU1dPUExvY2tlZE5ldwkAAGQAAAACCQAAZAAAAAIFAAAADnVzZXJTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAAA91c2VyTmV3SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZAAAAAIJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAAMd2l0aGRyYXdTV09QAAAAAQAAAA53aXRoZHJhd0Ftb3VudAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAOd2l0aGRyYXdBbW91bnQJAAACAAAAAQIAAAATd2l0aGRyYXdBbW91bnQgPD0gMAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANJHQwMTE3MjMxMTc3OAkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAANJHQwMTE3MjMxMTc3OAAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAA0kdDAxMTcyMzExNzc4AAAAAl8yBAAAAA0kdDAxMTc4MzExODQ4CQEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyVm90ZUFtb3VudAgFAAAADSR0MDExNzgzMTE4NDgAAAACXzEEAAAAEHVzZXJVbnZvdGVBbW91bnQIBQAAAA0kdDAxMTc4MzExODQ4AAAAAl8yBAAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAQAAACBnZXRVc2VyVG90YWxWb3RlRm9yTmV3UG9vbEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgMDAwkAAGYAAAACAAAAAAAAAAAABQAAABB1c2VyVW52b3RlQW1vdW50BgkAAGYAAAACAAAAAAAAAAAABQAAAA51c2VyVm90ZUFtb3VudAYJAABmAAAAAgAAAAAAAAAAAAUAAAAYdXNlclZvdGVBbW91bnRGb3JOZXdQb29sCQAAAgAAAAECAAAASnVzZXJVbnZvdGVBbW91bnQgPCAwIHx8IHVzZXJWb3RlQW1vdW50IDwgMCB8fCB1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wgPCAwBAAAABJhdmFpbGFibGVUb1Vuc3Rha2UJAABlAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQJAAGWAAAAAQkABEwAAAACBQAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAARMAAAAAgkAAGQAAAACBQAAAA51c2VyVm90ZUFtb3VudAUAAAAQdXNlclVudm90ZUFtb3VudAUAAAADbmlsAwkAAGYAAAACBQAAAA53aXRoZHJhd0Ftb3VudAUAAAASYXZhaWxhYmxlVG9VbnN0YWtlCQAAAgAAAAECAAAAI3dpdGhkcmF3QW1vdW50ID4gYXZhaWxhYmxlVG9VbnN0YWtlBAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABlAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BQAAAA53aXRoZHJhd0Ftb3VudAQAAAARdXNlclNXT1BhbW91bnROZXcJAABlAAAAAgkAAGQAAAACBQAAAA51c2VyU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQFAAAADndpdGhkcmF3QW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUGFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA53aXRoZHJhd0Ftb3VudAUAAAAEU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAABRjbGFpbUFuZFdpdGhkcmF3U1dPUAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAA0kdDAxMzIyMzEzMjc4CQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMzIyMzEzMjc4AAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDEzMjIzMTMyNzgAAAACXzIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQDCQAAAAAAAAIFAAAAC2NsYWltQW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAUAAAAEU1dPUAUAAAADbmlsAAAAAWkBAAAAEWNsYWltQW5kU3Rha2VTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDE0MDU3MTQxMTIJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDE0MDU3MTQxMTIAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTQwNTcxNDExMgAAAAJfMgQAAAARdXNlclNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAWkBAAAADXVwZGF0ZVdlaWdodHMAAAAEAAAADGN1cnJlbnRQb29scwAAAA5jdXJyZW50UmV3YXJkcwAAABJyZXdhcmRVcGRhdGVIZWlnaHQAAAAKcGFnaW5hdGlvbgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAALYW1vdW50UG9vbHMAAAAAAAAAAAoEAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAAAAAAAAAAAAAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AJAARMAAAAAgUAAAARYWRtaW5QdWJLZXlXYWxsZXQFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAABmAAAAAgkAAZAAAAABBQAAAAxjdXJyZW50UG9vbHMFAAAAC2Ftb3VudFBvb2xzCQAAAgAAAAEJAAEsAAAAAgIAAAAWTWF4IGFtb3VudCBvZiBwb29sIGlzIAkAAaQAAAABBQAAAAthbW91bnRQb29scwMJAABnAAAAAgUAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAAC1yZXdhcmRVcGRhdGVIZWlnaHQgPD0gdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAHGhlaWdodCA+PSByZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAABgwID49IHJld2FyZFVwZGF0ZUhlaWdodCAKAQAAAANzdW0AAAACAAAAAWEAAAABYgkAAGQAAAACBQAAAAFhBQAAAAFiCgEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAkBAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABBQAAAARwb29sAwMJAQAAAAEhAAAAAQkBAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEFAAAABHBvb2wGAwkBAAAAAiE9AAAAAgUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0BQAAABZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0CQAAAAAAAAIFAAAAFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0BwQAAAAKcG9vbFJld2FyZAkBAAAAEGdldEN1clBvb2xXZWlnaHQAAAABBQAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAQAAAAKcG9vbFJld2FyZAkBAAAAEWdldFByZXZQb29sV2VpZ2h0AAAAAQUAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAKcG9vbFJld2FyZAUAAAALYWNjdW11bGF0ZWQKAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAxjdXJyZW50UG9vbHMFAAAABHBvb2wEAAAACnBvb2xSZXdhcmQJAAGRAAAAAgUAAAAOY3VycmVudFJld2FyZHMFAAAACXBvb2xJbmRleAMJAABmAAAAAgAAAAAAAAAAAAUAAAAKcG9vbFJld2FyZAkAAAIAAAABAgAAAA5Qb29sUmV3YXJkIDwgMAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50BQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAoBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAApwb29sSGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAVa2V5SGVpZ2h0UG9vbEZyYWN0aW9uBQAAAApwb29sSGVpZ2h0BQAAAAthY2N1bXVsYXRlZAoBAAAADGdldFN1bVJld2FyZAAAAAIAAAAKY3VyVGVtcFN1bQAAAApwYWdpbmF0aW9uAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAAAAwkAAGYAAAACBQAAAApjdXJUZW1wU3VtBQAAAA50b3RhbFZvdGVTaGFyZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAEpzdW1SZXdhcmRQcmV2aW91cyA+IHRvdGFsVm90ZVNoYXJlIG9yIHN1bVJld2FyZEN1cnJlbnQgPiB0b3RhbFZvdGVTaGFyZSAtIAkAAaQAAAABBQAAAApwYWdpbmF0aW9uAgAAAAEgCQABpAAAAAEFAAAACmN1clRlbXBTdW0JAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAKY3VyVGVtcFN1bQUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAABBAAAABFjdXJUZW1wU3VtRnJvbUtleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAABAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQAAAAAAAAAAAADCQAAZgAAAAIJAABkAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAARY3VyVGVtcFN1bUZyb21LZXkFAAAADnRvdGFsVm90ZVNoYXJlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAASnN1bVJld2FyZFByZXZpb3VzID4gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCA+IHRvdGFsVm90ZVNoYXJlIC0gCQABpAAAAAEFAAAACnBhZ2luYXRpb24CAAAAASAJAAGkAAAAAQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACnBhZ2luYXRpb24AAAAAAAAAAAIEAAAABmN1clN1bQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADWtleVRlbXBDdXJTdW0AAAAAAAAAAAAFAAAACmN1clRlbXBTdW0EAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAAAAAAAAAAAAAMJAQAAAAIhPQAAAAIFAAAABmN1clN1bQUAAAAOdG90YWxWb3RlU2hhcmUJAAACAAAAAQIAAABJc3VtUmV3YXJkUHJldmlvdXMgIT0gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCAhPSB0b3RhbFZvdGVTaGFyZQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAGY3VyU3VtBQAAAANuaWwFAAAAA25pbAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcGFnaW5hdGlvbgQAAAAWcHJldmlvdXNSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxODk3MzE5MDI1BQAAAAxjdXJyZW50UG9vbHMEAAAADyRzaXplMTg5NzMxOTAyNQkAAZAAAAABBQAAAA8kbGlzdDE4OTczMTkwMjUEAAAADyRhY2MwMTg5NzMxOTAyNQUAAAADbmlsAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAAFAAAADyRhY2MwMTg5NzMxOTAyNQQAAAAPJGFjYzExODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MwMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAAAQUAAAAPJGFjYzExODk3MzE5MDI1BAAAAA8kYWNjMjE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAACBQAAAA8kYWNjMjE4OTczMTkwMjUEAAAADyRhY2MzMTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMjE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAACAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAMFAAAADyRhY2MzMTg5NzMxOTAyNQQAAAAPJGFjYzQxODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MzMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAABAUAAAAPJGFjYzQxODk3MzE5MDI1BAAAAA8kYWNjNTE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAAFBQAAAA8kYWNjNTE4OTczMTkwMjUEAAAADyRhY2M2MTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNTE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAFAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAYFAAAADyRhY2M2MTg5NzMxOTAyNQQAAAAPJGFjYzcxODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M2MTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAABwUAAAAPJGFjYzcxODk3MzE5MDI1BAAAAA8kYWNjODE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAAIBQAAAA8kYWNjODE4OTczMTkwMjUEAAAADyRhY2M5MTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjODE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAIAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAkFAAAADyRhY2M5MTg5NzMxOTAyNQQAAAAQJGFjYzEwMTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjOTE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAoFAAAAECRhY2MxMDE4OTczMTkwMjUEAAAAECRhY2MxMTE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAVY3VycmVudFJld2FyZEVudHJ5TmV3BAAAAA8kbGlzdDE5MDU4MTkxMTAFAAAADGN1cnJlbnRQb29scwQAAAAPJHNpemUxOTA1ODE5MTEwCQABkAAAAAEFAAAADyRsaXN0MTkwNTgxOTExMAQAAAAPJGFjYzAxOTA1ODE5MTEwBQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAAAAUAAAAPJGFjYzAxOTA1ODE5MTEwBAAAAA8kYWNjMTE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMDE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAEFAAAADyRhY2MxMTkwNTgxOTExMAQAAAAPJGFjYzIxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAACBQAAAA8kYWNjMjE5MDU4MTkxMTAEAAAADyRhY2MzMTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MyMTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAAAwUAAAAPJGFjYzMxOTA1ODE5MTEwBAAAAA8kYWNjNDE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMzE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAQFAAAADyRhY2M0MTkwNTgxOTExMAQAAAAPJGFjYzUxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAFBQAAAA8kYWNjNTE5MDU4MTkxMTAEAAAADyRhY2M2MTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M1MTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAUDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAABgUAAAAPJGFjYzYxOTA1ODE5MTEwBAAAAA8kYWNjNzE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNjE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAAGAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAcFAAAADyRhY2M3MTkwNTgxOTExMAQAAAAPJGFjYzgxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAIBQAAAA8kYWNjODE5MDU4MTkxMTAEAAAADyRhY2M5MTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M4MTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAgDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAACQUAAAAPJGFjYzkxOTA1ODE5MTEwBAAAABAkYWNjMTAxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzkxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAACQMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAKBQAAABAkYWNjMTAxOTA1ODE5MTEwBAAAABAkYWNjMTExOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAARaGVpZ2h0RW50cnlOZXdDdXIEAAAADyRsaXN0MTkxMzkxOTE4NAUAAAAMY3VycmVudFBvb2xzBAAAAA8kc2l6ZTE5MTM5MTkxODQJAAGQAAAAAQUAAAAPJGxpc3QxOTEzOTE5MTg0BAAAAA8kYWNjMDE5MTM5MTkxODQFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAABQAAAA8kYWNjMDE5MTM5MTkxODQEAAAADyRhY2MxMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzAxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAABBQAAAA8kYWNjMTE5MTM5MTkxODQEAAAADyRhY2MyMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzExOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAACBQAAAA8kYWNjMjE5MTM5MTkxODQEAAAADyRhY2MzMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzIxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAADBQAAAA8kYWNjMzE5MTM5MTkxODQEAAAADyRhY2M0MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzMxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAwMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAEBQAAAA8kYWNjNDE5MTM5MTkxODQEAAAADyRhY2M1MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzQxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAFBQAAAA8kYWNjNTE5MTM5MTkxODQEAAAADyRhY2M2MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzUxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAGBQAAAA8kYWNjNjE5MTM5MTkxODQEAAAADyRhY2M3MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzYxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABgMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAHBQAAAA8kYWNjNzE5MTM5MTkxODQEAAAADyRhY2M4MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzcxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAIBQAAAA8kYWNjODE5MTM5MTkxODQEAAAADyRhY2M5MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzgxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAJBQAAAA8kYWNjOTE5MTM5MTkxODQEAAAAECRhY2MxMDE5MTM5MTkxODQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M5MTkxMzkxOTE4NAkAAZEAAAACBQAAAA8kbGlzdDE5MTM5MTkxODQAAAAAAAAAAAkDCQAAAAAAAAIFAAAADyRzaXplMTkxMzkxOTE4NAAAAAAAAAAACgUAAAAQJGFjYzEwMTkxMzkxOTE4NAQAAAAQJGFjYzExMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAQJGFjYzEwMTkxMzkxOTE4NAkAAZEAAAACBQAAAA8kbGlzdDE5MTM5MTkxODQAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAEAAAADyRsaXN0MTkyMTgxOTI1MAUAAAAOY3VycmVudFJld2FyZHMEAAAADyRzaXplMTkyMTgxOTI1MAkAAZAAAAABBQAAAA8kbGlzdDE5MjE4MTkyNTAEAAAADyRhY2MwMTkyMTgxOTI1MAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAABQAAAA8kYWNjMDE5MjE4MTkyNTAEAAAADyRhY2MxMTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2MwMTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAAAQUAAAAPJGFjYzExOTIxODE5MjUwBAAAAA8kYWNjMjE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjMTE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAABAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAIFAAAADyRhY2MyMTkyMTgxOTI1MAQAAAAPJGFjYzMxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzIxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAADBQAAAA8kYWNjMzE5MjE4MTkyNTAEAAAADyRhY2M0MTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2MzMTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAABAUAAAAPJGFjYzQxOTIxODE5MjUwBAAAAA8kYWNjNTE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjNDE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAEAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAUFAAAADyRhY2M1MTkyMTgxOTI1MAQAAAAPJGFjYzYxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzUxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAGBQAAAA8kYWNjNjE5MjE4MTkyNTAEAAAADyRhY2M3MTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2M2MTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAABwUAAAAPJGFjYzcxOTIxODE5MjUwBAAAAA8kYWNjODE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjNzE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAHAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAgFAAAADyRhY2M4MTkyMTgxOTI1MAQAAAAPJGFjYzkxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzgxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAJBQAAAA8kYWNjOTE5MjE4MTkyNTAEAAAAECRhY2MxMDE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjOTE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAoFAAAAECRhY2MxMDE5MjE4MTkyNTAEAAAAECRhY2MxMTE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAABAkYWNjMTAxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kdDAxOTI1NjE5MzY3CQEAAAAMZ2V0U3VtUmV3YXJkAAAAAgUAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAFAAAACnBhZ2luYXRpb24EAAAAEHN1bVJld2FyZEN1cnJlbnQIBQAAAA0kdDAxOTI1NjE5MzY3AAAAAl8xBAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQgFAAAADSR0MDE5MjU2MTkzNjcAAAACXzIEAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5AwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAG3Jld2FyZFVwZGF0ZUhlaWdodCA8IGhlaWdodAkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAAFnByZXZpb3VzUmV3YXJkRW50cnlOZXcFAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwUAAAARaGVpZ2h0RW50cnlOZXdDdXIFAAAAEHN1bVJld2FyZEN1cnJlbnQFAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5BQAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQAAAAFpAQAAAAhzaHV0ZG93bgAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAEJAAEsAAAAAgIAAAAiREFwcCBpcyBhbHJlYWR5IHN1c3BlbmRlZC4gQ2F1c2U6IAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAhrZXlDYXVzZQIAAAAadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAQAAAAdzdXNwZW5kAAAAAQIAAAAPUGF1c2VkIGJ5IGFkbWluAAAAAWkBAAAACGFjdGl2YXRlAAAAAAMFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQYJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAIa2V5Q2F1c2UFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAEmFkbWluUHViS2V5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxhZG1pblB1YktleTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAxhZG1pblB1YktleTMAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAEmFkbWluUHViS2V5MVNpZ25lZAUAAAASYWRtaW5QdWJLZXkyU2lnbmVkBQAAABJhZG1pblB1YktleTNTaWduZWQAAAAAAAAAAAKpY8Lt", "height": 1612988, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 56n7J4K8cqhiw3Aw6UsvT2FNwpoXHucJnSqbKVxhLPT6 Next: B19w4a1oHoLB6JZkfhoP45ELhQebDusMwBTQ1cafH7rQ Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
55
6-let b = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
6+let b = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
77
8-let c = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8+let c = "active"
99
10-let d = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
10+let d = "shutdown_cause"
1111
12-let e = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
12+let e = "last_interest"
1313
14-let f = "active"
14+let f = "_last_interest"
1515
16-let g = "shutdown_cause"
16+let g = "_SWOP_amount"
1717
18-let h = "last_interest"
18+let h = "_getBackHeight"
1919
20-let i = "_last_interest"
20+let i = "total_SWOP_amount"
2121
22-let j = "_SWOP_amount"
22+let j = "_user_total_SWOP_vote"
2323
24-let k = "_getBackHeight"
24+let k = "_SWOP_option_amount"
2525
26-let l = "total_SWOP_amount"
26+let l = "total_SWOP_option_amount"
2727
28-let m = "_user_total_SWOP_vote"
28+let m = "_SWOP_claimed_amount"
2929
30-let n = "_SWOP_option_amount"
30+let n = "_SWOP_last_claimed_amount"
3131
32-let o = "total_SWOP_option_amount"
32+let o = "vote_name"
3333
34-let p = "_SWOP_claimed_amount"
34+let p = "_option_name"
3535
36-let q = "_SWOP_last_claimed_amount"
36+let q = "_startHeight"
3737
38-let r = "vote_name"
38+let r = "_vote_duration"
3939
40-let s = "_option_name"
40+let s = "_current_pool_fraction_reward"
4141
42-let t = "_startHeight"
42+let t = "_previous_pool_fraction_reward"
4343
44-let u = "_vote_duration"
44+let u = "_pool_reward_update_height"
4545
46-let v = "_current_pool_fraction_reward"
46+let v = "total_reward_per_block_current"
4747
48-let w = "_previous_pool_fraction_reward"
48+let w = "total_reward_per_block_previous"
4949
50-let x = "_pool_reward_update_height"
50+let x = "reward_update_height"
5151
52-let y = "total_reward_per_block_current"
52+let y = "reward_update_height_first_pagination"
5353
54-let z = "total_reward_per_block_previous"
54+let z = "_vote_no"
5555
56-let A = "reward_update_height"
56+let A = "_vote_yes"
5757
58-let B = "reward_update_height_first_pagination"
58+let B = "max_amount_voting"
5959
60-let C = "_vote_no"
60+let C = "_status"
6161
62-let D = "_vote_yes"
62+let D = "_finish_height"
6363
64-let E = "max_amount_voting"
64+let E = "voting_active_cell_1"
6565
66-let F = "_status"
66+let F = "voting_active_cell_2"
6767
68-let G = "_finish_height"
68+let G = "voting_active_cell_3"
6969
70-let H = "voting_active_cell_1"
70+let H = "sum_reward_current"
7171
72-let I = "voting_active_cell_2"
72+let I = "admin_pub_1"
7373
74-let J = "voting_active_cell_3"
74+let J = "admin_pub_2"
7575
76-let K = "sum_reward_current"
76+let K = "admin_pub_3"
7777
78-let L = valueOrElse(getBoolean(this, f), true)
78+let L = Address(base58'3N1cPjixuHTujhGvb5HQoFvGt4fkUG8o3KF')
7979
80-let M = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
81-
82-let N = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
83-
84-let O = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
85-
86-let P = "SWOP_id"
87-
88-let Q = fromBase58String(getStringValue(M, P))
89-
90-let R = 100000000
91-
92-let S = 10000000000
93-
94-let T = "start_height"
95-
96-let U = "base_period"
97-
98-let V = "period_length"
99-
100-let W = "_user_total_struc"
101-
102-let X = valueOrErrorMessage(getInteger(N, U), "Empty kBasePeriod at voting contract")
103-
104-let Y = valueOrErrorMessage(getInteger(N, T), "Empty kStartHeight at voting contract")
105-
106-let Z = valueOrErrorMessage(getInteger(N, V), "Empty kPeriodLength at voting contract")
107-
108-let aa = valueOrElse(getString(O, H), "")
109-
110-let ab = valueOrElse(getString(O, I), "")
111-
112-let ac = valueOrElse(getString(O, J), "")
113-
114-let ad = (X + ((height - Y) / Z))
115-
116-func ae (af) = [BooleanEntry(f, false), StringEntry(g, af)]
117-
118-
119-func ag () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
120-
121-
122-func ah () = {
123- let ai = valueOrElse(getInteger(this, h), 0)
124- ai
80+func M (N) = {
81+ let O = getString(L, N)
82+ if ($isInstanceOf(O, "String"))
83+ then {
84+ let P = O
85+ fromBase58String(P)
86+ }
87+ else {
88+ let Q = O
89+ throw("Admin public key is empty")
90+ }
12591 }
12692
12793
128-func aj (ak) = valueOrElse(getInteger(this, (toString(ak) + j)), 0)
94+let R = M(I)
95+
96+let S = M(J)
97+
98+let T = M(K)
99+
100+let U = valueOrElse(getBoolean(this, c), true)
101+
102+let V = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
103+
104+let W = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
105+
106+let X = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
107+
108+let Y = "SWOP_id"
109+
110+let Z = fromBase58String(getStringValue(V, Y))
111+
112+let aa = 100000000
113+
114+let ab = 10000000000
115+
116+let ac = "start_height"
117+
118+let ad = "base_period"
119+
120+let ae = "period_length"
121+
122+let af = "_user_total_struc"
123+
124+let ag = valueOrErrorMessage(getInteger(W, ad), "Empty kBasePeriod at voting contract")
125+
126+let ah = valueOrErrorMessage(getInteger(W, ac), "Empty kStartHeight at voting contract")
127+
128+let ai = valueOrErrorMessage(getInteger(W, ae), "Empty kPeriodLength at voting contract")
129+
130+let aj = valueOrElse(getString(X, E), "")
131+
132+let ak = valueOrElse(getString(X, F), "")
133+
134+let al = valueOrElse(getString(X, G), "")
135+
136+let am = (ag + ((height - ah) / ai))
137+
138+func an (ao) = [BooleanEntry(c, false), StringEntry(d, ao)]
129139
130140
131-func al (ak) = valueOrElse(getInteger(this, (toString(ak) + p)), 0)
141+func ap () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
132142
133143
134-func am (ak) = valueOrElse(getInteger(N, (toString(ak) + m)), 0)
135-
136-
137-func an (ak,ai) = {
138- let ao = aj(ak)
139- let ap = getInteger(this, (toString(ak) + i))
140- let aq = {
141- let ar = ap
142- if ($isInstanceOf(ar, "Int"))
143- then {
144- let ap = ar
145- ap
146- }
147- else ai
148- }
149- $Tuple2(aq, ao)
144+func aq () = {
145+ let ar = valueOrElse(getInteger(this, e), 0)
146+ ar
150147 }
151148
152149
153-func as (at,ak) = {
154- let au = valueOrElse(getInteger(O, at), -1)
155- let av = valueOrElse(getInteger(O, (toString(au) + G)), 0)
156- let aw = valueOrElse(getBoolean(O, (toString(au) + F)), true)
157- let ax = height
158- if ((0 > au))
150+func as (at) = valueOrElse(getInteger(this, (toString(at) + g)), 0)
151+
152+
153+func au (at) = valueOrElse(getInteger(this, (toString(at) + m)), 0)
154+
155+
156+func av (at) = valueOrElse(getInteger(W, (toString(at) + j)), 0)
157+
158+
159+func aw (at,ar) = {
160+ let ax = as(at)
161+ let ay = getInteger(this, (toString(at) + f))
162+ let az = {
163+ let O = ay
164+ if ($isInstanceOf(O, "Int"))
165+ then {
166+ let ay = O
167+ ay
168+ }
169+ else ar
170+ }
171+ $Tuple2(az, ax)
172+ }
173+
174+
175+func aA (aB,at) = {
176+ let aC = valueOrElse(getInteger(X, aB), -1)
177+ let aD = valueOrElse(getInteger(X, (toString(aC) + D)), 0)
178+ let aE = valueOrElse(getBoolean(X, (toString(aC) + C)), true)
179+ let aF = height
180+ if ((0 > aC))
159181 then 0
160- else if (!(aw))
182+ else if (!(aE))
161183 then 0
162- else if ((av > ax))
163- then (valueOrElse(getInteger(O, (((toString(ak) + "_") + toString(au)) + D)), 0) + valueOrElse(getInteger(O, (((toString(ak) + "_") + toString(au)) + C)), 0))
184+ else if ((aD > aF))
185+ then (valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + A)), 0) + valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + z)), 0))
164186 else 0
165187 }
166188
167189
168-func ay (ak) = {
169- let az = [as(aa, ak), as(ab, ak), as(ac, ak)]
170- max(az)
190+func aG (at) = {
191+ let aH = [aA(aj, at), aA(ak, at), aA(al, at)]
192+ max(aH)
171193 }
172194
173195
174-func aA () = valueOrElse(getInteger(this, l), 0)
196+func aI () = valueOrElse(getInteger(this, i), 0)
175197
176198
177-func aB (ak) = {
178- let aC = if (isDefined(getString(N, (toString(ak) + W))))
199+func aJ (at) = {
200+ let aK = if (isDefined(getString(W, (toString(at) + af))))
179201 then {
180- let aD = split(valueOrErrorMessage(getString(N, (toString(ak) + W)), "Empty kUserTotalStruc"), "_")
181- $Tuple3(parseIntValue(aD[0]), parseIntValue(aD[1]), parseIntValue(aD[2]))
202+ let aL = split(valueOrErrorMessage(getString(W, (toString(at) + af)), "Empty kUserTotalStruc"), "_")
203+ $Tuple3(parseIntValue(aL[0]), parseIntValue(aL[1]), parseIntValue(aL[2]))
182204 }
183205 else {
184- let aE = valueOrElse(getInteger(N, (toString(ak) + m)), 0)
185- $Tuple3(aE, 0, ad)
206+ let aM = valueOrElse(getInteger(W, (toString(at) + j)), 0)
207+ $Tuple3(aM, 0, am)
186208 }
187- let aF = aC._1
188- let aG = aC._2
189- let aH = aC._3
190- let aI = if ((aH == ad))
191- then aG
209+ let aN = aK._1
210+ let aO = aK._2
211+ let aP = aK._3
212+ let aQ = if ((aP == am))
213+ then aO
192214 else 0
193- $Tuple2(aF, aI)
215+ $Tuple2(aN, aQ)
194216 }
195217
196218
197-func aJ (ak) = valueOrElse(getInteger(this, (toString(ak) + n)), 0)
219+func aR (at) = valueOrElse(getInteger(this, (toString(at) + k)), 0)
198220
199221
200-func aK (aL) = valueOrElse(getInteger(this, (aL + t)), 0)
222+func aS (aT) = valueOrElse(getInteger(this, (aT + q)), 0)
201223
202224
203-func aM (at) = valueOrElse(getInteger(this, (at + x)), 0)
225+func aU (aB) = valueOrElse(getInteger(this, (aB + u)), 0)
204226
205227
206-func aN (at) = isDefined(getInteger(this, (at + x)))
228+func aV (aB) = isDefined(getInteger(this, (aB + u)))
207229
208230
209-func aO (at) = valueOrElse(getInteger(this, (at + v)), 0)
231+func aW (aB) = valueOrElse(getInteger(this, (aB + s)), 0)
210232
211233
212-func aP (at) = valueOrElse(getInteger(this, (at + w)), 0)
234+func aX (aB) = valueOrElse(getInteger(this, (aB + t)), 0)
213235
214236
215-func aQ (ak,aL,aR) = {
216- let aS = getInteger(this, (((aL + aR) + toString(ak)) + n))
217- let aT = {
218- let ar = aS
219- if ($isInstanceOf(ar, "Int"))
237+func aY (at,aT,aZ) = {
238+ let ba = getInteger(this, (((aT + aZ) + toString(at)) + k))
239+ let bb = {
240+ let O = ba
241+ if ($isInstanceOf(O, "Int"))
220242 then {
221- let aT = ar
222- aT
243+ let bb = O
244+ bb
223245 }
224- else if ($isInstanceOf(ar, "Unit"))
246+ else if ($isInstanceOf(O, "Unit"))
225247 then {
226- let aT = ar
248+ let bb = O
227249 0
228250 }
229251 else throw("Match error")
230252 }
231- valueOrErrorMessage(aT, (((("No data on the key: " + aL) + aR) + toString(ak)) + n))
253+ valueOrErrorMessage(bb, (((("No data on the key: " + aT) + aZ) + toString(at)) + k))
232254 }
233255
234256
235-func aU (aL) = valueOrErrorMessage(getInteger(this, (aL + u)), (("No data on the key: " + aL) + u))
257+func bc (aT) = valueOrErrorMessage(getInteger(this, (aT + r)), (("No data on the key: " + aT) + r))
236258
237259
238-func aV (aL,aR) = {
239- let aW = getInteger(this, ((aL + aR) + o))
240- let aX = {
241- let ar = aW
242- if ($isInstanceOf(ar, "Int"))
260+func bd (aT,aZ) = {
261+ let be = getInteger(this, ((aT + aZ) + l))
262+ let bf = {
263+ let O = be
264+ if ($isInstanceOf(O, "Int"))
243265 then {
244- let aX = ar
245- aX
266+ let bf = O
267+ bf
246268 }
247- else if ($isInstanceOf(ar, "Unit"))
269+ else if ($isInstanceOf(O, "Unit"))
248270 then {
249- let aX = ar
271+ let bf = O
250272 0
251273 }
252274 else throw("Match error")
253275 }
254- aX
276+ bf
255277 }
256278
257279
258-func aY (aL,aR,ak,aZ) = {
259- let ba = ((((((aL + "_") + aR) + "_") + toString(ak)) + "_") + toString(aZ))
260- valueOrErrorMessage(getInteger(this, ba), ("No data on the key: " + ba))
280+func bg (aT,aZ,at,bh) = {
281+ let bi = ((((((aT + "_") + aZ) + "_") + toString(at)) + "_") + toString(bh))
282+ valueOrErrorMessage(getInteger(this, bi), ("No data on the key: " + bi))
261283 }
262284
263285
264-func bb (bc) = {
265- let ai = ah()
266- let bd = an(bc, ai)
267- let ap = bd._1
268- let be = bd._2
269- let bf = fraction(be, (ai - ap), R)
270- let bg = ai
271- $Tuple2(bg, bf)
286+func bj (bk) = {
287+ let ar = aq()
288+ let bl = aw(bk, ar)
289+ let ay = bl._1
290+ let bm = bl._2
291+ let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa)))
292+ let bo = ar
293+ $Tuple2(bo, bn)
272294 }
273295
274296
275-@Callable(bh)
276-func airDrop () = if (!(L))
297+@Callable(bp)
298+func airDrop () = if (!(U))
277299 then throw("DApp is inactive at this moment")
278300 else {
279- let bi = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
280- let bj = bi._1
281- let bk = bi._2
282- if ((bk != Q))
301+ let bq = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId)
302+ let br = bq._1
303+ let bs = bq._2
304+ if ((bs != Z))
283305 then throw("Incorrect pmtAssetId")
284306 else {
285- let bl = aA()
286- let ai = ah()
287- let bm = (ai + fraction(bj, R, bl))
288-[IntegerEntry(h, bm)]
307+ let bt = aI()
308+ let ar = aq()
309+ let bu = (ar + toInt(fraction(toBigInt(br), toBigInt(aa), toBigInt(bt))))
310+[IntegerEntry(e, bu)]
289311 }
290312 }
291313
292314
293315
294-@Callable(bh)
295-func lockSWOP () = if (!(L))
316+@Callable(bp)
317+func lockSWOP () = if (!(U))
296318 then throw("DApp is inactive at this moment")
297319 else {
298- let bn = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
299- let bj = bn._1
300- let bk = bn._2
301- if ((bk != Q))
320+ let bv = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId)
321+ let br = bv._1
322+ let bs = bv._2
323+ if ((bs != Z))
302324 then throw("Incorrect pmtAssetId")
303325 else {
304- let ai = ah()
305- let bo = an(bh.caller, ai)
306- let ap = bo._1
307- let be = bo._2
308- let bf = fraction(be, (ai - ap), R)
309- let bp = ((be + bj) + bf)
310- let bg = ai
311- let bl = aA()
312- let bq = ((bl + bj) + bf)
313- let br = al(bh.caller)
314- let bs = (br + bf)
315-[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
326+ let ar = aq()
327+ let bw = aw(bp.caller, ar)
328+ let ay = bw._1
329+ let bm = bw._2
330+ let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa)))
331+ let bx = ((bm + br) + bn)
332+ let bo = ar
333+ let bt = aI()
334+ let by = ((bt + br) + bn)
335+ let bz = au(bp.caller)
336+ let bA = (bz + bn)
337+[IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)]
316338 }
317339 }
318340
319341
320342
321-@Callable(bh)
322-func withdrawSWOP (bt) = if (!(L))
343+@Callable(bp)
344+func withdrawSWOP (bB) = if (!(U))
323345 then throw("DApp is inactive at this moment")
324- else if ((0 >= bt))
346+ else if ((0 >= bB))
325347 then throw("withdrawAmount <= 0")
326348 else {
327- let bl = aA()
328- let be = aj(bh.caller)
329- let bu = bb(bh.caller)
330- let bg = bu._1
331- let bf = bu._2
332- let bv = aB(bh.caller)
333- let bw = bv._1
334- let bx = bv._2
335- let by = ay(bh.caller)
336- if (if (if ((0 > bx))
349+ let bt = aI()
350+ let bm = as(bp.caller)
351+ let bC = bj(bp.caller)
352+ let bo = bC._1
353+ let bn = bC._2
354+ let bD = aJ(bp.caller)
355+ let bE = bD._1
356+ let bF = bD._2
357+ let bG = aG(bp.caller)
358+ if (if (if ((0 > bF))
337359 then true
338- else (0 > bw))
360+ else (0 > bE))
339361 then true
340- else (0 > by))
362+ else (0 > bG))
341363 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
342364 else {
343- let bz = (be - max([by, (bw + bx)]))
344- if ((bt > bz))
365+ let bH = (bm - max([bG, (bE + bF)]))
366+ if ((bB > bH))
345367 then throw("withdrawAmount > availableToUnstake")
346368 else {
347- let bq = ((bl + bf) - bt)
348- let bA = ((be + bf) - bt)
349- let br = al(bh.caller)
350- let bs = (br + bf)
351-[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bA), IntegerEntry(l, bq), ScriptTransfer(bh.caller, bt, Q), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
369+ let by = ((bt + bn) - bB)
370+ let bI = ((bm + bn) - bB)
371+ let bz = au(bp.caller)
372+ let bA = (bz + bn)
373+[IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bI), IntegerEntry(i, by), ScriptTransfer(bp.caller, bB, Z), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)]
352374 }
353375 }
354376 }
355377
356378
357379
358-@Callable(bh)
359-func claimAndWithdrawSWOP () = if (!(L))
380+@Callable(bp)
381+func claimAndWithdrawSWOP () = if (!(U))
360382 then throw("DApp is inactive at this moment")
361383 else {
362- let ai = ah()
363- let bB = bb(bh.caller)
364- let bg = bB._1
365- let bf = bB._2
366- let br = al(bh.caller)
367- let bs = (br + bf)
368- if ((bf == 0))
384+ let ar = aq()
385+ let bJ = bj(bp.caller)
386+ let bo = bJ._1
387+ let bn = bJ._2
388+ let bz = au(bp.caller)
389+ let bA = (bz + bn)
390+ if ((bn == 0))
369391 then throw("You have 0 available SWOP")
370- else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf), ScriptTransfer(bh.caller, bf, Q)]
392+ else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn), ScriptTransfer(bp.caller, bn, Z)]
371393 }
372394
373395
374396
375-@Callable(bh)
376-func claimAndStakeSWOP () = if (!(L))
397+@Callable(bp)
398+func claimAndStakeSWOP () = if (!(U))
377399 then throw("DApp is inactive at this moment")
378400 else {
379- let bl = aA()
380- let be = aj(bh.caller)
381- let ai = ah()
382- let bC = bb(bh.caller)
383- let bg = bC._1
384- let bf = bC._2
385- let bp = (be + bf)
386- let bq = (bl + bf)
387- let br = al(bh.caller)
388- let bs = (br + bf)
389- if ((bf == 0))
401+ let bt = aI()
402+ let bm = as(bp.caller)
403+ let ar = aq()
404+ let bK = bj(bp.caller)
405+ let bo = bK._1
406+ let bn = bK._2
407+ let bx = (bm + bn)
408+ let by = (bt + bn)
409+ let bz = au(bp.caller)
410+ let bA = (bz + bn)
411+ if ((bn == 0))
390412 then throw("You have 0 available SWOP")
391- else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
413+ else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)]
392414 }
393415
394416
395417
396-@Callable(bh)
397-func updateWeights (bD,bE,bF,bG) = if (!(L))
418+@Callable(bp)
419+func updateWeights (bL,bM,bN,bO) = if (!(U))
398420 then throw("DApp is inactive at this moment")
399421 else {
400- let bH = 10
401- let bI = valueOrElse(getInteger(this, A), 0)
402- if (!(containsElement([a, b, c, d, e], bh.callerPublicKey)))
422+ let bP = 10
423+ let bQ = valueOrElse(getInteger(this, x), 0)
424+ if (!(containsElement([R, S, T, a, b], bp.callerPublicKey)))
403425 then throw("Only admin can call this function")
404- else if ((size(bD) > bH))
405- then throw(("Max amount of pool is " + toString(bH)))
406- else if ((bI >= bF))
426+ else if ((size(bL) > bP))
427+ then throw(("Max amount of pool is " + toString(bP)))
428+ else if ((bQ >= bN))
407429 then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
408- else if ((height >= bF))
430+ else if ((height >= bN))
409431 then throw("height >= rewardUpdateHeight")
410- else if ((0 >= bF))
432+ else if ((0 >= bN))
411433 then throw("0 >= rewardUpdateHeight ")
412434 else {
413- func bJ (bK,bL) = (bK + bL)
435+ func bR (bS,bT) = (bS + bT)
414436
415- func bM (bN,at) = {
416- let bO = aM(at)
417- if (if (!(aN(at)))
437+ func bU (bV,aB) = {
438+ let bW = aU(aB)
439+ if (if (!(aV(aB)))
418440 then true
419- else if ((bF != bO))
420- then (bO == bI)
441+ else if ((bN != bW))
442+ then (bW == bQ)
421443 else false)
422444 then {
423- let bP = aO(at)
424-IntegerEntry((at + w), bP) :: bN
445+ let bX = aW(aB)
446+IntegerEntry((aB + t), bX) :: bV
425447 }
426448 else {
427- let bP = aP(at)
428-IntegerEntry((at + w), bP) :: bN
449+ let bX = aX(aB)
450+IntegerEntry((aB + t), bX) :: bV
429451 }
430452 }
431453
432- func bQ (bN,at) = {
433- let bR = value(indexOf(bD, at))
434- let bP = bE[bR]
435- if ((0 > bP))
454+ func bY (bV,aB) = {
455+ let bZ = value(indexOf(bL, aB))
456+ let bX = bM[bZ]
457+ if ((0 > bX))
436458 then throw("PoolReward < 0")
437- else IntegerEntry((at + v), bP) :: bN
459+ else IntegerEntry((aB + s), bX) :: bV
438460 }
439461
440- func bS (bN,at) = {
441- let bT = bF
442-IntegerEntry((at + x), bT) :: bN
462+ func ca (bV,aB) = {
463+ let cb = bN
464+IntegerEntry((aB + u), cb) :: bV
443465 }
444466
445- func bU (bV,bG) = if ((bG == 0))
446- then if ((bV > S))
447- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bG)) + " ") + toString(bV)))
448- else $Tuple2([IntegerEntry(K, bV)], [IntegerEntry(B, bF)])
449- else if ((bG == 1))
467+ func cc (cd,bO) = if ((bO == 0))
468+ then if ((cd > ab))
469+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString(cd)))
470+ else $Tuple2([IntegerEntry(H, cd)], [IntegerEntry(y, bN)])
471+ else if ((bO == 1))
450472 then {
451- let bW = valueOrElse(getInteger(this, K), 0)
452- let bX = valueOrElse(getInteger(this, B), 0)
453- if (((bV + bW) > S))
454- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bG)) + " ") + toString((bV + bW))))
455- else if ((bX != bF))
473+ let ce = valueOrElse(getInteger(this, H), 0)
474+ let cf = valueOrElse(getInteger(this, y), 0)
475+ if (((cd + ce) > ab))
476+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString((cd + ce))))
477+ else if ((cf != bN))
456478 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
457- else $Tuple2([IntegerEntry(K, (bV + bW))], nil)
479+ else $Tuple2([IntegerEntry(H, (cd + ce))], nil)
458480 }
459- else if ((bG == 2))
481+ else if ((bO == 2))
460482 then {
461- let bY = (valueOrElse(getInteger(this, K), 0) + bV)
462- let bX = valueOrElse(getInteger(this, B), 0)
463- if ((bY != S))
483+ let cg = (valueOrElse(getInteger(this, H), 0) + cd)
484+ let cf = valueOrElse(getInteger(this, y), 0)
485+ if ((cg != ab))
464486 then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
465- else if ((bX != bF))
487+ else if ((cf != bN))
466488 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
467- else $Tuple2([IntegerEntry(K, bY)], nil)
489+ else $Tuple2([IntegerEntry(H, cg)], nil)
468490 }
469491 else throw("Incorrect pagination")
470492
471- let bZ = {
472- let ca = bD
473- let cb = size(ca)
474- let cc = nil
475- if ((cb == 0))
476- then cc
493+ let ch = {
494+ let ci = bL
495+ let cj = size(ci)
496+ let ck = nil
497+ if ((cj == 0))
498+ then ck
477499 else {
478- let cd = bM(cc, ca[0])
479- if ((cb == 1))
480- then cd
500+ let cl = bU(ck, ci[0])
501+ if ((cj == 1))
502+ then cl
481503 else {
482- let ce = bM(cd, ca[1])
483- if ((cb == 2))
484- then ce
504+ let cm = bU(cl, ci[1])
505+ if ((cj == 2))
506+ then cm
485507 else {
486- let cf = bM(ce, ca[2])
487- if ((cb == 3))
488- then cf
508+ let cn = bU(cm, ci[2])
509+ if ((cj == 3))
510+ then cn
489511 else {
490- let cg = bM(cf, ca[3])
491- if ((cb == 4))
492- then cg
512+ let co = bU(cn, ci[3])
513+ if ((cj == 4))
514+ then co
493515 else {
494- let ch = bM(cg, ca[4])
495- if ((cb == 5))
496- then ch
516+ let cp = bU(co, ci[4])
517+ if ((cj == 5))
518+ then cp
497519 else {
498- let ci = bM(ch, ca[5])
499- if ((cb == 6))
500- then ci
520+ let cq = bU(cp, ci[5])
521+ if ((cj == 6))
522+ then cq
501523 else {
502- let cj = bM(ci, ca[6])
503- if ((cb == 7))
504- then cj
524+ let cr = bU(cq, ci[6])
525+ if ((cj == 7))
526+ then cr
505527 else {
506- let ck = bM(cj, ca[7])
507- if ((cb == 8))
508- then ck
528+ let cs = bU(cr, ci[7])
529+ if ((cj == 8))
530+ then cs
509531 else {
510- let cl = bM(ck, ca[8])
511- if ((cb == 9))
512- then cl
532+ let ct = bU(cs, ci[8])
533+ if ((cj == 9))
534+ then ct
513535 else {
514- let cm = bM(cl, ca[9])
515- if ((cb == 10))
516- then cm
536+ let cu = bU(ct, ci[9])
537+ if ((cj == 10))
538+ then cu
517539 else {
518- let cn = bM(cm, ca[10])
540+ let cv = bU(cu, ci[10])
519541 throw("List size exceed 10")
520542 }
521543 }
529551 }
530552 }
531553 }
532- let co = {
533- let cp = bD
534- let cq = size(cp)
535- let cr = nil
536- if ((cq == 0))
537- then cr
554+ let cw = {
555+ let cx = bL
556+ let cy = size(cx)
557+ let cz = nil
558+ if ((cy == 0))
559+ then cz
538560 else {
539- let cs = bQ(cr, cp[0])
540- if ((cq == 1))
541- then cs
561+ let cA = bY(cz, cx[0])
562+ if ((cy == 1))
563+ then cA
542564 else {
543- let ct = bQ(cs, cp[1])
544- if ((cq == 2))
545- then ct
565+ let cB = bY(cA, cx[1])
566+ if ((cy == 2))
567+ then cB
546568 else {
547- let cu = bQ(ct, cp[2])
548- if ((cq == 3))
549- then cu
569+ let cC = bY(cB, cx[2])
570+ if ((cy == 3))
571+ then cC
550572 else {
551- let cv = bQ(cu, cp[3])
552- if ((cq == 4))
553- then cv
573+ let cD = bY(cC, cx[3])
574+ if ((cy == 4))
575+ then cD
554576 else {
555- let cw = bQ(cv, cp[4])
556- if ((cq == 5))
557- then cw
577+ let cE = bY(cD, cx[4])
578+ if ((cy == 5))
579+ then cE
558580 else {
559- let cx = bQ(cw, cp[5])
560- if ((cq == 6))
561- then cx
581+ let cF = bY(cE, cx[5])
582+ if ((cy == 6))
583+ then cF
562584 else {
563- let cy = bQ(cx, cp[6])
564- if ((cq == 7))
565- then cy
585+ let cG = bY(cF, cx[6])
586+ if ((cy == 7))
587+ then cG
566588 else {
567- let cz = bQ(cy, cp[7])
568- if ((cq == 8))
569- then cz
589+ let cH = bY(cG, cx[7])
590+ if ((cy == 8))
591+ then cH
570592 else {
571- let cA = bQ(cz, cp[8])
572- if ((cq == 9))
573- then cA
593+ let cI = bY(cH, cx[8])
594+ if ((cy == 9))
595+ then cI
574596 else {
575- let cB = bQ(cA, cp[9])
576- if ((cq == 10))
577- then cB
597+ let cJ = bY(cI, cx[9])
598+ if ((cy == 10))
599+ then cJ
578600 else {
579- let cC = bQ(cB, cp[10])
601+ let cK = bY(cJ, cx[10])
580602 throw("List size exceed 10")
581603 }
582604 }
590612 }
591613 }
592614 }
593- let cD = {
594- let cE = bD
595- let cF = size(cE)
596- let cG = nil
597- if ((cF == 0))
598- then cG
615+ let cL = {
616+ let cM = bL
617+ let cN = size(cM)
618+ let cO = nil
619+ if ((cN == 0))
620+ then cO
599621 else {
600- let cH = bS(cG, cE[0])
601- if ((cF == 1))
602- then cH
622+ let cP = ca(cO, cM[0])
623+ if ((cN == 1))
624+ then cP
603625 else {
604- let cI = bS(cH, cE[1])
605- if ((cF == 2))
606- then cI
626+ let cQ = ca(cP, cM[1])
627+ if ((cN == 2))
628+ then cQ
607629 else {
608- let cJ = bS(cI, cE[2])
609- if ((cF == 3))
610- then cJ
630+ let cR = ca(cQ, cM[2])
631+ if ((cN == 3))
632+ then cR
611633 else {
612- let cK = bS(cJ, cE[3])
613- if ((cF == 4))
614- then cK
634+ let cS = ca(cR, cM[3])
635+ if ((cN == 4))
636+ then cS
615637 else {
616- let cL = bS(cK, cE[4])
617- if ((cF == 5))
618- then cL
638+ let cT = ca(cS, cM[4])
639+ if ((cN == 5))
640+ then cT
619641 else {
620- let cM = bS(cL, cE[5])
621- if ((cF == 6))
622- then cM
642+ let cU = ca(cT, cM[5])
643+ if ((cN == 6))
644+ then cU
623645 else {
624- let cN = bS(cM, cE[6])
625- if ((cF == 7))
626- then cN
646+ let cV = ca(cU, cM[6])
647+ if ((cN == 7))
648+ then cV
627649 else {
628- let cO = bS(cN, cE[7])
629- if ((cF == 8))
630- then cO
650+ let cW = ca(cV, cM[7])
651+ if ((cN == 8))
652+ then cW
631653 else {
632- let cP = bS(cO, cE[8])
633- if ((cF == 9))
634- then cP
654+ let cX = ca(cW, cM[8])
655+ if ((cN == 9))
656+ then cX
635657 else {
636- let cQ = bS(cP, cE[9])
637- if ((cF == 10))
638- then cQ
658+ let cY = ca(cX, cM[9])
659+ if ((cN == 10))
660+ then cY
639661 else {
640- let cR = bS(cQ, cE[10])
662+ let cZ = ca(cY, cM[10])
641663 throw("List size exceed 10")
642664 }
643665 }
651673 }
652674 }
653675 }
654- let cS = {
655- let cT = bE
656- let cU = size(cT)
657- let cV = 0
658- if ((cU == 0))
659- then cV
676+ let da = {
677+ let db = bM
678+ let dc = size(db)
679+ let dd = 0
680+ if ((dc == 0))
681+ then dd
660682 else {
661- let cW = bJ(cV, cT[0])
662- if ((cU == 1))
663- then cW
683+ let de = bR(dd, db[0])
684+ if ((dc == 1))
685+ then de
664686 else {
665- let cX = bJ(cW, cT[1])
666- if ((cU == 2))
667- then cX
687+ let df = bR(de, db[1])
688+ if ((dc == 2))
689+ then df
668690 else {
669- let cY = bJ(cX, cT[2])
670- if ((cU == 3))
671- then cY
691+ let dg = bR(df, db[2])
692+ if ((dc == 3))
693+ then dg
672694 else {
673- let cZ = bJ(cY, cT[3])
674- if ((cU == 4))
675- then cZ
695+ let dh = bR(dg, db[3])
696+ if ((dc == 4))
697+ then dh
676698 else {
677- let da = bJ(cZ, cT[4])
678- if ((cU == 5))
679- then da
699+ let di = bR(dh, db[4])
700+ if ((dc == 5))
701+ then di
680702 else {
681- let db = bJ(da, cT[5])
682- if ((cU == 6))
683- then db
703+ let dj = bR(di, db[5])
704+ if ((dc == 6))
705+ then dj
684706 else {
685- let dc = bJ(db, cT[6])
686- if ((cU == 7))
687- then dc
707+ let dk = bR(dj, db[6])
708+ if ((dc == 7))
709+ then dk
688710 else {
689- let dd = bJ(dc, cT[7])
690- if ((cU == 8))
691- then dd
711+ let dl = bR(dk, db[7])
712+ if ((dc == 8))
713+ then dl
692714 else {
693- let de = bJ(dd, cT[8])
694- if ((cU == 9))
695- then de
715+ let dm = bR(dl, db[8])
716+ if ((dc == 9))
717+ then dm
696718 else {
697- let df = bJ(de, cT[9])
698- if ((cU == 10))
699- then df
719+ let dn = bR(dm, db[9])
720+ if ((dc == 10))
721+ then dn
700722 else {
701- let dg = bJ(df, cT[10])
723+ let do = bR(dn, db[10])
702724 throw("List size exceed 10")
703725 }
704726 }
712734 }
713735 }
714736 }
715- let dh = bU(cS, bG)
716- let di = dh._1
717- let bX = dh._2
718- let dj = if ((bG == 2))
719- then [IntegerEntry(A, bF)]
737+ let dp = cc(da, bO)
738+ let dq = dp._1
739+ let cf = dp._2
740+ let dr = if ((bO == 2))
741+ then [IntegerEntry(x, bN)]
720742 else nil
721- if ((height > bF))
743+ if ((height > bN))
722744 then throw("rewardUpdateHeight < height")
723- else (((((bZ ++ co) ++ cD) ++ di) ++ dj) ++ bX)
745+ else (((((ch ++ cw) ++ cL) ++ dq) ++ dr) ++ cf)
724746 }
725747 }
726748
727749
728750
729-@Callable(bh)
730-func shutdown () = if (!(L))
731- then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, g), "the cause wasn't specified")))
732- else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
751+@Callable(bp)
752+func shutdown () = if (!(U))
753+ then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, d), "the cause wasn't specified")))
754+ else if (!(containsElement([R, S, T, a], bp.callerPublicKey)))
733755 then throw("Only admin can call this function")
734- else ae("Paused by admin")
756+ else an("Paused by admin")
735757
736758
737759
738-@Callable(bh)
739-func activate () = if (L)
760+@Callable(bp)
761+func activate () = if (U)
740762 then throw("DApp is already active")
741- else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
763+ else if (!(containsElement([R, S, T, a], bp.callerPublicKey)))
742764 then throw("Only admin can call this function")
743- else [BooleanEntry(f, true), DeleteEntry(g)]
765+ else [BooleanEntry(c, true), DeleteEntry(d)]
744766
745767
746-@Verifier(dk)
747-func dl () = sigVerify(dk.bodyBytes, dk.proofs[0], dk.senderPublicKey)
768+@Verifier(ds)
769+func dt () = {
770+ let du = if (sigVerify(ds.bodyBytes, ds.proofs[0], R))
771+ then 1
772+ else 0
773+ let dv = if (sigVerify(ds.bodyBytes, ds.proofs[1], S))
774+ then 1
775+ else 0
776+ let dw = if (sigVerify(ds.bodyBytes, ds.proofs[2], T))
777+ then 1
778+ else 0
779+ (((du + dv) + dw) >= 2)
780+ }
748781
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
55
6-let b = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
6+let b = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
77
8-let c = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8+let c = "active"
99
10-let d = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
10+let d = "shutdown_cause"
1111
12-let e = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
12+let e = "last_interest"
1313
14-let f = "active"
14+let f = "_last_interest"
1515
16-let g = "shutdown_cause"
16+let g = "_SWOP_amount"
1717
18-let h = "last_interest"
18+let h = "_getBackHeight"
1919
20-let i = "_last_interest"
20+let i = "total_SWOP_amount"
2121
22-let j = "_SWOP_amount"
22+let j = "_user_total_SWOP_vote"
2323
24-let k = "_getBackHeight"
24+let k = "_SWOP_option_amount"
2525
26-let l = "total_SWOP_amount"
26+let l = "total_SWOP_option_amount"
2727
28-let m = "_user_total_SWOP_vote"
28+let m = "_SWOP_claimed_amount"
2929
30-let n = "_SWOP_option_amount"
30+let n = "_SWOP_last_claimed_amount"
3131
32-let o = "total_SWOP_option_amount"
32+let o = "vote_name"
3333
34-let p = "_SWOP_claimed_amount"
34+let p = "_option_name"
3535
36-let q = "_SWOP_last_claimed_amount"
36+let q = "_startHeight"
3737
38-let r = "vote_name"
38+let r = "_vote_duration"
3939
40-let s = "_option_name"
40+let s = "_current_pool_fraction_reward"
4141
42-let t = "_startHeight"
42+let t = "_previous_pool_fraction_reward"
4343
44-let u = "_vote_duration"
44+let u = "_pool_reward_update_height"
4545
46-let v = "_current_pool_fraction_reward"
46+let v = "total_reward_per_block_current"
4747
48-let w = "_previous_pool_fraction_reward"
48+let w = "total_reward_per_block_previous"
4949
50-let x = "_pool_reward_update_height"
50+let x = "reward_update_height"
5151
52-let y = "total_reward_per_block_current"
52+let y = "reward_update_height_first_pagination"
5353
54-let z = "total_reward_per_block_previous"
54+let z = "_vote_no"
5555
56-let A = "reward_update_height"
56+let A = "_vote_yes"
5757
58-let B = "reward_update_height_first_pagination"
58+let B = "max_amount_voting"
5959
60-let C = "_vote_no"
60+let C = "_status"
6161
62-let D = "_vote_yes"
62+let D = "_finish_height"
6363
64-let E = "max_amount_voting"
64+let E = "voting_active_cell_1"
6565
66-let F = "_status"
66+let F = "voting_active_cell_2"
6767
68-let G = "_finish_height"
68+let G = "voting_active_cell_3"
6969
70-let H = "voting_active_cell_1"
70+let H = "sum_reward_current"
7171
72-let I = "voting_active_cell_2"
72+let I = "admin_pub_1"
7373
74-let J = "voting_active_cell_3"
74+let J = "admin_pub_2"
7575
76-let K = "sum_reward_current"
76+let K = "admin_pub_3"
7777
78-let L = valueOrElse(getBoolean(this, f), true)
78+let L = Address(base58'3N1cPjixuHTujhGvb5HQoFvGt4fkUG8o3KF')
7979
80-let M = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
81-
82-let N = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
83-
84-let O = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
85-
86-let P = "SWOP_id"
87-
88-let Q = fromBase58String(getStringValue(M, P))
89-
90-let R = 100000000
91-
92-let S = 10000000000
93-
94-let T = "start_height"
95-
96-let U = "base_period"
97-
98-let V = "period_length"
99-
100-let W = "_user_total_struc"
101-
102-let X = valueOrErrorMessage(getInteger(N, U), "Empty kBasePeriod at voting contract")
103-
104-let Y = valueOrErrorMessage(getInteger(N, T), "Empty kStartHeight at voting contract")
105-
106-let Z = valueOrErrorMessage(getInteger(N, V), "Empty kPeriodLength at voting contract")
107-
108-let aa = valueOrElse(getString(O, H), "")
109-
110-let ab = valueOrElse(getString(O, I), "")
111-
112-let ac = valueOrElse(getString(O, J), "")
113-
114-let ad = (X + ((height - Y) / Z))
115-
116-func ae (af) = [BooleanEntry(f, false), StringEntry(g, af)]
117-
118-
119-func ag () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
120-
121-
122-func ah () = {
123- let ai = valueOrElse(getInteger(this, h), 0)
124- ai
80+func M (N) = {
81+ let O = getString(L, N)
82+ if ($isInstanceOf(O, "String"))
83+ then {
84+ let P = O
85+ fromBase58String(P)
86+ }
87+ else {
88+ let Q = O
89+ throw("Admin public key is empty")
90+ }
12591 }
12692
12793
128-func aj (ak) = valueOrElse(getInteger(this, (toString(ak) + j)), 0)
94+let R = M(I)
95+
96+let S = M(J)
97+
98+let T = M(K)
99+
100+let U = valueOrElse(getBoolean(this, c), true)
101+
102+let V = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
103+
104+let W = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
105+
106+let X = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
107+
108+let Y = "SWOP_id"
109+
110+let Z = fromBase58String(getStringValue(V, Y))
111+
112+let aa = 100000000
113+
114+let ab = 10000000000
115+
116+let ac = "start_height"
117+
118+let ad = "base_period"
119+
120+let ae = "period_length"
121+
122+let af = "_user_total_struc"
123+
124+let ag = valueOrErrorMessage(getInteger(W, ad), "Empty kBasePeriod at voting contract")
125+
126+let ah = valueOrErrorMessage(getInteger(W, ac), "Empty kStartHeight at voting contract")
127+
128+let ai = valueOrErrorMessage(getInteger(W, ae), "Empty kPeriodLength at voting contract")
129+
130+let aj = valueOrElse(getString(X, E), "")
131+
132+let ak = valueOrElse(getString(X, F), "")
133+
134+let al = valueOrElse(getString(X, G), "")
135+
136+let am = (ag + ((height - ah) / ai))
137+
138+func an (ao) = [BooleanEntry(c, false), StringEntry(d, ao)]
129139
130140
131-func al (ak) = valueOrElse(getInteger(this, (toString(ak) + p)), 0)
141+func ap () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
132142
133143
134-func am (ak) = valueOrElse(getInteger(N, (toString(ak) + m)), 0)
135-
136-
137-func an (ak,ai) = {
138- let ao = aj(ak)
139- let ap = getInteger(this, (toString(ak) + i))
140- let aq = {
141- let ar = ap
142- if ($isInstanceOf(ar, "Int"))
143- then {
144- let ap = ar
145- ap
146- }
147- else ai
148- }
149- $Tuple2(aq, ao)
144+func aq () = {
145+ let ar = valueOrElse(getInteger(this, e), 0)
146+ ar
150147 }
151148
152149
153-func as (at,ak) = {
154- let au = valueOrElse(getInteger(O, at), -1)
155- let av = valueOrElse(getInteger(O, (toString(au) + G)), 0)
156- let aw = valueOrElse(getBoolean(O, (toString(au) + F)), true)
157- let ax = height
158- if ((0 > au))
150+func as (at) = valueOrElse(getInteger(this, (toString(at) + g)), 0)
151+
152+
153+func au (at) = valueOrElse(getInteger(this, (toString(at) + m)), 0)
154+
155+
156+func av (at) = valueOrElse(getInteger(W, (toString(at) + j)), 0)
157+
158+
159+func aw (at,ar) = {
160+ let ax = as(at)
161+ let ay = getInteger(this, (toString(at) + f))
162+ let az = {
163+ let O = ay
164+ if ($isInstanceOf(O, "Int"))
165+ then {
166+ let ay = O
167+ ay
168+ }
169+ else ar
170+ }
171+ $Tuple2(az, ax)
172+ }
173+
174+
175+func aA (aB,at) = {
176+ let aC = valueOrElse(getInteger(X, aB), -1)
177+ let aD = valueOrElse(getInteger(X, (toString(aC) + D)), 0)
178+ let aE = valueOrElse(getBoolean(X, (toString(aC) + C)), true)
179+ let aF = height
180+ if ((0 > aC))
159181 then 0
160- else if (!(aw))
182+ else if (!(aE))
161183 then 0
162- else if ((av > ax))
163- then (valueOrElse(getInteger(O, (((toString(ak) + "_") + toString(au)) + D)), 0) + valueOrElse(getInteger(O, (((toString(ak) + "_") + toString(au)) + C)), 0))
184+ else if ((aD > aF))
185+ then (valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + A)), 0) + valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + z)), 0))
164186 else 0
165187 }
166188
167189
168-func ay (ak) = {
169- let az = [as(aa, ak), as(ab, ak), as(ac, ak)]
170- max(az)
190+func aG (at) = {
191+ let aH = [aA(aj, at), aA(ak, at), aA(al, at)]
192+ max(aH)
171193 }
172194
173195
174-func aA () = valueOrElse(getInteger(this, l), 0)
196+func aI () = valueOrElse(getInteger(this, i), 0)
175197
176198
177-func aB (ak) = {
178- let aC = if (isDefined(getString(N, (toString(ak) + W))))
199+func aJ (at) = {
200+ let aK = if (isDefined(getString(W, (toString(at) + af))))
179201 then {
180- let aD = split(valueOrErrorMessage(getString(N, (toString(ak) + W)), "Empty kUserTotalStruc"), "_")
181- $Tuple3(parseIntValue(aD[0]), parseIntValue(aD[1]), parseIntValue(aD[2]))
202+ let aL = split(valueOrErrorMessage(getString(W, (toString(at) + af)), "Empty kUserTotalStruc"), "_")
203+ $Tuple3(parseIntValue(aL[0]), parseIntValue(aL[1]), parseIntValue(aL[2]))
182204 }
183205 else {
184- let aE = valueOrElse(getInteger(N, (toString(ak) + m)), 0)
185- $Tuple3(aE, 0, ad)
206+ let aM = valueOrElse(getInteger(W, (toString(at) + j)), 0)
207+ $Tuple3(aM, 0, am)
186208 }
187- let aF = aC._1
188- let aG = aC._2
189- let aH = aC._3
190- let aI = if ((aH == ad))
191- then aG
209+ let aN = aK._1
210+ let aO = aK._2
211+ let aP = aK._3
212+ let aQ = if ((aP == am))
213+ then aO
192214 else 0
193- $Tuple2(aF, aI)
215+ $Tuple2(aN, aQ)
194216 }
195217
196218
197-func aJ (ak) = valueOrElse(getInteger(this, (toString(ak) + n)), 0)
219+func aR (at) = valueOrElse(getInteger(this, (toString(at) + k)), 0)
198220
199221
200-func aK (aL) = valueOrElse(getInteger(this, (aL + t)), 0)
222+func aS (aT) = valueOrElse(getInteger(this, (aT + q)), 0)
201223
202224
203-func aM (at) = valueOrElse(getInteger(this, (at + x)), 0)
225+func aU (aB) = valueOrElse(getInteger(this, (aB + u)), 0)
204226
205227
206-func aN (at) = isDefined(getInteger(this, (at + x)))
228+func aV (aB) = isDefined(getInteger(this, (aB + u)))
207229
208230
209-func aO (at) = valueOrElse(getInteger(this, (at + v)), 0)
231+func aW (aB) = valueOrElse(getInteger(this, (aB + s)), 0)
210232
211233
212-func aP (at) = valueOrElse(getInteger(this, (at + w)), 0)
234+func aX (aB) = valueOrElse(getInteger(this, (aB + t)), 0)
213235
214236
215-func aQ (ak,aL,aR) = {
216- let aS = getInteger(this, (((aL + aR) + toString(ak)) + n))
217- let aT = {
218- let ar = aS
219- if ($isInstanceOf(ar, "Int"))
237+func aY (at,aT,aZ) = {
238+ let ba = getInteger(this, (((aT + aZ) + toString(at)) + k))
239+ let bb = {
240+ let O = ba
241+ if ($isInstanceOf(O, "Int"))
220242 then {
221- let aT = ar
222- aT
243+ let bb = O
244+ bb
223245 }
224- else if ($isInstanceOf(ar, "Unit"))
246+ else if ($isInstanceOf(O, "Unit"))
225247 then {
226- let aT = ar
248+ let bb = O
227249 0
228250 }
229251 else throw("Match error")
230252 }
231- valueOrErrorMessage(aT, (((("No data on the key: " + aL) + aR) + toString(ak)) + n))
253+ valueOrErrorMessage(bb, (((("No data on the key: " + aT) + aZ) + toString(at)) + k))
232254 }
233255
234256
235-func aU (aL) = valueOrErrorMessage(getInteger(this, (aL + u)), (("No data on the key: " + aL) + u))
257+func bc (aT) = valueOrErrorMessage(getInteger(this, (aT + r)), (("No data on the key: " + aT) + r))
236258
237259
238-func aV (aL,aR) = {
239- let aW = getInteger(this, ((aL + aR) + o))
240- let aX = {
241- let ar = aW
242- if ($isInstanceOf(ar, "Int"))
260+func bd (aT,aZ) = {
261+ let be = getInteger(this, ((aT + aZ) + l))
262+ let bf = {
263+ let O = be
264+ if ($isInstanceOf(O, "Int"))
243265 then {
244- let aX = ar
245- aX
266+ let bf = O
267+ bf
246268 }
247- else if ($isInstanceOf(ar, "Unit"))
269+ else if ($isInstanceOf(O, "Unit"))
248270 then {
249- let aX = ar
271+ let bf = O
250272 0
251273 }
252274 else throw("Match error")
253275 }
254- aX
276+ bf
255277 }
256278
257279
258-func aY (aL,aR,ak,aZ) = {
259- let ba = ((((((aL + "_") + aR) + "_") + toString(ak)) + "_") + toString(aZ))
260- valueOrErrorMessage(getInteger(this, ba), ("No data on the key: " + ba))
280+func bg (aT,aZ,at,bh) = {
281+ let bi = ((((((aT + "_") + aZ) + "_") + toString(at)) + "_") + toString(bh))
282+ valueOrErrorMessage(getInteger(this, bi), ("No data on the key: " + bi))
261283 }
262284
263285
264-func bb (bc) = {
265- let ai = ah()
266- let bd = an(bc, ai)
267- let ap = bd._1
268- let be = bd._2
269- let bf = fraction(be, (ai - ap), R)
270- let bg = ai
271- $Tuple2(bg, bf)
286+func bj (bk) = {
287+ let ar = aq()
288+ let bl = aw(bk, ar)
289+ let ay = bl._1
290+ let bm = bl._2
291+ let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa)))
292+ let bo = ar
293+ $Tuple2(bo, bn)
272294 }
273295
274296
275-@Callable(bh)
276-func airDrop () = if (!(L))
297+@Callable(bp)
298+func airDrop () = if (!(U))
277299 then throw("DApp is inactive at this moment")
278300 else {
279- let bi = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
280- let bj = bi._1
281- let bk = bi._2
282- if ((bk != Q))
301+ let bq = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId)
302+ let br = bq._1
303+ let bs = bq._2
304+ if ((bs != Z))
283305 then throw("Incorrect pmtAssetId")
284306 else {
285- let bl = aA()
286- let ai = ah()
287- let bm = (ai + fraction(bj, R, bl))
288-[IntegerEntry(h, bm)]
307+ let bt = aI()
308+ let ar = aq()
309+ let bu = (ar + toInt(fraction(toBigInt(br), toBigInt(aa), toBigInt(bt))))
310+[IntegerEntry(e, bu)]
289311 }
290312 }
291313
292314
293315
294-@Callable(bh)
295-func lockSWOP () = if (!(L))
316+@Callable(bp)
317+func lockSWOP () = if (!(U))
296318 then throw("DApp is inactive at this moment")
297319 else {
298- let bn = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
299- let bj = bn._1
300- let bk = bn._2
301- if ((bk != Q))
320+ let bv = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId)
321+ let br = bv._1
322+ let bs = bv._2
323+ if ((bs != Z))
302324 then throw("Incorrect pmtAssetId")
303325 else {
304- let ai = ah()
305- let bo = an(bh.caller, ai)
306- let ap = bo._1
307- let be = bo._2
308- let bf = fraction(be, (ai - ap), R)
309- let bp = ((be + bj) + bf)
310- let bg = ai
311- let bl = aA()
312- let bq = ((bl + bj) + bf)
313- let br = al(bh.caller)
314- let bs = (br + bf)
315-[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
326+ let ar = aq()
327+ let bw = aw(bp.caller, ar)
328+ let ay = bw._1
329+ let bm = bw._2
330+ let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa)))
331+ let bx = ((bm + br) + bn)
332+ let bo = ar
333+ let bt = aI()
334+ let by = ((bt + br) + bn)
335+ let bz = au(bp.caller)
336+ let bA = (bz + bn)
337+[IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)]
316338 }
317339 }
318340
319341
320342
321-@Callable(bh)
322-func withdrawSWOP (bt) = if (!(L))
343+@Callable(bp)
344+func withdrawSWOP (bB) = if (!(U))
323345 then throw("DApp is inactive at this moment")
324- else if ((0 >= bt))
346+ else if ((0 >= bB))
325347 then throw("withdrawAmount <= 0")
326348 else {
327- let bl = aA()
328- let be = aj(bh.caller)
329- let bu = bb(bh.caller)
330- let bg = bu._1
331- let bf = bu._2
332- let bv = aB(bh.caller)
333- let bw = bv._1
334- let bx = bv._2
335- let by = ay(bh.caller)
336- if (if (if ((0 > bx))
349+ let bt = aI()
350+ let bm = as(bp.caller)
351+ let bC = bj(bp.caller)
352+ let bo = bC._1
353+ let bn = bC._2
354+ let bD = aJ(bp.caller)
355+ let bE = bD._1
356+ let bF = bD._2
357+ let bG = aG(bp.caller)
358+ if (if (if ((0 > bF))
337359 then true
338- else (0 > bw))
360+ else (0 > bE))
339361 then true
340- else (0 > by))
362+ else (0 > bG))
341363 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
342364 else {
343- let bz = (be - max([by, (bw + bx)]))
344- if ((bt > bz))
365+ let bH = (bm - max([bG, (bE + bF)]))
366+ if ((bB > bH))
345367 then throw("withdrawAmount > availableToUnstake")
346368 else {
347- let bq = ((bl + bf) - bt)
348- let bA = ((be + bf) - bt)
349- let br = al(bh.caller)
350- let bs = (br + bf)
351-[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bA), IntegerEntry(l, bq), ScriptTransfer(bh.caller, bt, Q), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
369+ let by = ((bt + bn) - bB)
370+ let bI = ((bm + bn) - bB)
371+ let bz = au(bp.caller)
372+ let bA = (bz + bn)
373+[IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bI), IntegerEntry(i, by), ScriptTransfer(bp.caller, bB, Z), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)]
352374 }
353375 }
354376 }
355377
356378
357379
358-@Callable(bh)
359-func claimAndWithdrawSWOP () = if (!(L))
380+@Callable(bp)
381+func claimAndWithdrawSWOP () = if (!(U))
360382 then throw("DApp is inactive at this moment")
361383 else {
362- let ai = ah()
363- let bB = bb(bh.caller)
364- let bg = bB._1
365- let bf = bB._2
366- let br = al(bh.caller)
367- let bs = (br + bf)
368- if ((bf == 0))
384+ let ar = aq()
385+ let bJ = bj(bp.caller)
386+ let bo = bJ._1
387+ let bn = bJ._2
388+ let bz = au(bp.caller)
389+ let bA = (bz + bn)
390+ if ((bn == 0))
369391 then throw("You have 0 available SWOP")
370- else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf), ScriptTransfer(bh.caller, bf, Q)]
392+ else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn), ScriptTransfer(bp.caller, bn, Z)]
371393 }
372394
373395
374396
375-@Callable(bh)
376-func claimAndStakeSWOP () = if (!(L))
397+@Callable(bp)
398+func claimAndStakeSWOP () = if (!(U))
377399 then throw("DApp is inactive at this moment")
378400 else {
379- let bl = aA()
380- let be = aj(bh.caller)
381- let ai = ah()
382- let bC = bb(bh.caller)
383- let bg = bC._1
384- let bf = bC._2
385- let bp = (be + bf)
386- let bq = (bl + bf)
387- let br = al(bh.caller)
388- let bs = (br + bf)
389- if ((bf == 0))
401+ let bt = aI()
402+ let bm = as(bp.caller)
403+ let ar = aq()
404+ let bK = bj(bp.caller)
405+ let bo = bK._1
406+ let bn = bK._2
407+ let bx = (bm + bn)
408+ let by = (bt + bn)
409+ let bz = au(bp.caller)
410+ let bA = (bz + bn)
411+ if ((bn == 0))
390412 then throw("You have 0 available SWOP")
391- else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
413+ else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)]
392414 }
393415
394416
395417
396-@Callable(bh)
397-func updateWeights (bD,bE,bF,bG) = if (!(L))
418+@Callable(bp)
419+func updateWeights (bL,bM,bN,bO) = if (!(U))
398420 then throw("DApp is inactive at this moment")
399421 else {
400- let bH = 10
401- let bI = valueOrElse(getInteger(this, A), 0)
402- if (!(containsElement([a, b, c, d, e], bh.callerPublicKey)))
422+ let bP = 10
423+ let bQ = valueOrElse(getInteger(this, x), 0)
424+ if (!(containsElement([R, S, T, a, b], bp.callerPublicKey)))
403425 then throw("Only admin can call this function")
404- else if ((size(bD) > bH))
405- then throw(("Max amount of pool is " + toString(bH)))
406- else if ((bI >= bF))
426+ else if ((size(bL) > bP))
427+ then throw(("Max amount of pool is " + toString(bP)))
428+ else if ((bQ >= bN))
407429 then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
408- else if ((height >= bF))
430+ else if ((height >= bN))
409431 then throw("height >= rewardUpdateHeight")
410- else if ((0 >= bF))
432+ else if ((0 >= bN))
411433 then throw("0 >= rewardUpdateHeight ")
412434 else {
413- func bJ (bK,bL) = (bK + bL)
435+ func bR (bS,bT) = (bS + bT)
414436
415- func bM (bN,at) = {
416- let bO = aM(at)
417- if (if (!(aN(at)))
437+ func bU (bV,aB) = {
438+ let bW = aU(aB)
439+ if (if (!(aV(aB)))
418440 then true
419- else if ((bF != bO))
420- then (bO == bI)
441+ else if ((bN != bW))
442+ then (bW == bQ)
421443 else false)
422444 then {
423- let bP = aO(at)
424-IntegerEntry((at + w), bP) :: bN
445+ let bX = aW(aB)
446+IntegerEntry((aB + t), bX) :: bV
425447 }
426448 else {
427- let bP = aP(at)
428-IntegerEntry((at + w), bP) :: bN
449+ let bX = aX(aB)
450+IntegerEntry((aB + t), bX) :: bV
429451 }
430452 }
431453
432- func bQ (bN,at) = {
433- let bR = value(indexOf(bD, at))
434- let bP = bE[bR]
435- if ((0 > bP))
454+ func bY (bV,aB) = {
455+ let bZ = value(indexOf(bL, aB))
456+ let bX = bM[bZ]
457+ if ((0 > bX))
436458 then throw("PoolReward < 0")
437- else IntegerEntry((at + v), bP) :: bN
459+ else IntegerEntry((aB + s), bX) :: bV
438460 }
439461
440- func bS (bN,at) = {
441- let bT = bF
442-IntegerEntry((at + x), bT) :: bN
462+ func ca (bV,aB) = {
463+ let cb = bN
464+IntegerEntry((aB + u), cb) :: bV
443465 }
444466
445- func bU (bV,bG) = if ((bG == 0))
446- then if ((bV > S))
447- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bG)) + " ") + toString(bV)))
448- else $Tuple2([IntegerEntry(K, bV)], [IntegerEntry(B, bF)])
449- else if ((bG == 1))
467+ func cc (cd,bO) = if ((bO == 0))
468+ then if ((cd > ab))
469+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString(cd)))
470+ else $Tuple2([IntegerEntry(H, cd)], [IntegerEntry(y, bN)])
471+ else if ((bO == 1))
450472 then {
451- let bW = valueOrElse(getInteger(this, K), 0)
452- let bX = valueOrElse(getInteger(this, B), 0)
453- if (((bV + bW) > S))
454- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bG)) + " ") + toString((bV + bW))))
455- else if ((bX != bF))
473+ let ce = valueOrElse(getInteger(this, H), 0)
474+ let cf = valueOrElse(getInteger(this, y), 0)
475+ if (((cd + ce) > ab))
476+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString((cd + ce))))
477+ else if ((cf != bN))
456478 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
457- else $Tuple2([IntegerEntry(K, (bV + bW))], nil)
479+ else $Tuple2([IntegerEntry(H, (cd + ce))], nil)
458480 }
459- else if ((bG == 2))
481+ else if ((bO == 2))
460482 then {
461- let bY = (valueOrElse(getInteger(this, K), 0) + bV)
462- let bX = valueOrElse(getInteger(this, B), 0)
463- if ((bY != S))
483+ let cg = (valueOrElse(getInteger(this, H), 0) + cd)
484+ let cf = valueOrElse(getInteger(this, y), 0)
485+ if ((cg != ab))
464486 then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
465- else if ((bX != bF))
487+ else if ((cf != bN))
466488 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
467- else $Tuple2([IntegerEntry(K, bY)], nil)
489+ else $Tuple2([IntegerEntry(H, cg)], nil)
468490 }
469491 else throw("Incorrect pagination")
470492
471- let bZ = {
472- let ca = bD
473- let cb = size(ca)
474- let cc = nil
475- if ((cb == 0))
476- then cc
493+ let ch = {
494+ let ci = bL
495+ let cj = size(ci)
496+ let ck = nil
497+ if ((cj == 0))
498+ then ck
477499 else {
478- let cd = bM(cc, ca[0])
479- if ((cb == 1))
480- then cd
500+ let cl = bU(ck, ci[0])
501+ if ((cj == 1))
502+ then cl
481503 else {
482- let ce = bM(cd, ca[1])
483- if ((cb == 2))
484- then ce
504+ let cm = bU(cl, ci[1])
505+ if ((cj == 2))
506+ then cm
485507 else {
486- let cf = bM(ce, ca[2])
487- if ((cb == 3))
488- then cf
508+ let cn = bU(cm, ci[2])
509+ if ((cj == 3))
510+ then cn
489511 else {
490- let cg = bM(cf, ca[3])
491- if ((cb == 4))
492- then cg
512+ let co = bU(cn, ci[3])
513+ if ((cj == 4))
514+ then co
493515 else {
494- let ch = bM(cg, ca[4])
495- if ((cb == 5))
496- then ch
516+ let cp = bU(co, ci[4])
517+ if ((cj == 5))
518+ then cp
497519 else {
498- let ci = bM(ch, ca[5])
499- if ((cb == 6))
500- then ci
520+ let cq = bU(cp, ci[5])
521+ if ((cj == 6))
522+ then cq
501523 else {
502- let cj = bM(ci, ca[6])
503- if ((cb == 7))
504- then cj
524+ let cr = bU(cq, ci[6])
525+ if ((cj == 7))
526+ then cr
505527 else {
506- let ck = bM(cj, ca[7])
507- if ((cb == 8))
508- then ck
528+ let cs = bU(cr, ci[7])
529+ if ((cj == 8))
530+ then cs
509531 else {
510- let cl = bM(ck, ca[8])
511- if ((cb == 9))
512- then cl
532+ let ct = bU(cs, ci[8])
533+ if ((cj == 9))
534+ then ct
513535 else {
514- let cm = bM(cl, ca[9])
515- if ((cb == 10))
516- then cm
536+ let cu = bU(ct, ci[9])
537+ if ((cj == 10))
538+ then cu
517539 else {
518- let cn = bM(cm, ca[10])
540+ let cv = bU(cu, ci[10])
519541 throw("List size exceed 10")
520542 }
521543 }
522544 }
523545 }
524546 }
525547 }
526548 }
527549 }
528550 }
529551 }
530552 }
531553 }
532- let co = {
533- let cp = bD
534- let cq = size(cp)
535- let cr = nil
536- if ((cq == 0))
537- then cr
554+ let cw = {
555+ let cx = bL
556+ let cy = size(cx)
557+ let cz = nil
558+ if ((cy == 0))
559+ then cz
538560 else {
539- let cs = bQ(cr, cp[0])
540- if ((cq == 1))
541- then cs
561+ let cA = bY(cz, cx[0])
562+ if ((cy == 1))
563+ then cA
542564 else {
543- let ct = bQ(cs, cp[1])
544- if ((cq == 2))
545- then ct
565+ let cB = bY(cA, cx[1])
566+ if ((cy == 2))
567+ then cB
546568 else {
547- let cu = bQ(ct, cp[2])
548- if ((cq == 3))
549- then cu
569+ let cC = bY(cB, cx[2])
570+ if ((cy == 3))
571+ then cC
550572 else {
551- let cv = bQ(cu, cp[3])
552- if ((cq == 4))
553- then cv
573+ let cD = bY(cC, cx[3])
574+ if ((cy == 4))
575+ then cD
554576 else {
555- let cw = bQ(cv, cp[4])
556- if ((cq == 5))
557- then cw
577+ let cE = bY(cD, cx[4])
578+ if ((cy == 5))
579+ then cE
558580 else {
559- let cx = bQ(cw, cp[5])
560- if ((cq == 6))
561- then cx
581+ let cF = bY(cE, cx[5])
582+ if ((cy == 6))
583+ then cF
562584 else {
563- let cy = bQ(cx, cp[6])
564- if ((cq == 7))
565- then cy
585+ let cG = bY(cF, cx[6])
586+ if ((cy == 7))
587+ then cG
566588 else {
567- let cz = bQ(cy, cp[7])
568- if ((cq == 8))
569- then cz
589+ let cH = bY(cG, cx[7])
590+ if ((cy == 8))
591+ then cH
570592 else {
571- let cA = bQ(cz, cp[8])
572- if ((cq == 9))
573- then cA
593+ let cI = bY(cH, cx[8])
594+ if ((cy == 9))
595+ then cI
574596 else {
575- let cB = bQ(cA, cp[9])
576- if ((cq == 10))
577- then cB
597+ let cJ = bY(cI, cx[9])
598+ if ((cy == 10))
599+ then cJ
578600 else {
579- let cC = bQ(cB, cp[10])
601+ let cK = bY(cJ, cx[10])
580602 throw("List size exceed 10")
581603 }
582604 }
583605 }
584606 }
585607 }
586608 }
587609 }
588610 }
589611 }
590612 }
591613 }
592614 }
593- let cD = {
594- let cE = bD
595- let cF = size(cE)
596- let cG = nil
597- if ((cF == 0))
598- then cG
615+ let cL = {
616+ let cM = bL
617+ let cN = size(cM)
618+ let cO = nil
619+ if ((cN == 0))
620+ then cO
599621 else {
600- let cH = bS(cG, cE[0])
601- if ((cF == 1))
602- then cH
622+ let cP = ca(cO, cM[0])
623+ if ((cN == 1))
624+ then cP
603625 else {
604- let cI = bS(cH, cE[1])
605- if ((cF == 2))
606- then cI
626+ let cQ = ca(cP, cM[1])
627+ if ((cN == 2))
628+ then cQ
607629 else {
608- let cJ = bS(cI, cE[2])
609- if ((cF == 3))
610- then cJ
630+ let cR = ca(cQ, cM[2])
631+ if ((cN == 3))
632+ then cR
611633 else {
612- let cK = bS(cJ, cE[3])
613- if ((cF == 4))
614- then cK
634+ let cS = ca(cR, cM[3])
635+ if ((cN == 4))
636+ then cS
615637 else {
616- let cL = bS(cK, cE[4])
617- if ((cF == 5))
618- then cL
638+ let cT = ca(cS, cM[4])
639+ if ((cN == 5))
640+ then cT
619641 else {
620- let cM = bS(cL, cE[5])
621- if ((cF == 6))
622- then cM
642+ let cU = ca(cT, cM[5])
643+ if ((cN == 6))
644+ then cU
623645 else {
624- let cN = bS(cM, cE[6])
625- if ((cF == 7))
626- then cN
646+ let cV = ca(cU, cM[6])
647+ if ((cN == 7))
648+ then cV
627649 else {
628- let cO = bS(cN, cE[7])
629- if ((cF == 8))
630- then cO
650+ let cW = ca(cV, cM[7])
651+ if ((cN == 8))
652+ then cW
631653 else {
632- let cP = bS(cO, cE[8])
633- if ((cF == 9))
634- then cP
654+ let cX = ca(cW, cM[8])
655+ if ((cN == 9))
656+ then cX
635657 else {
636- let cQ = bS(cP, cE[9])
637- if ((cF == 10))
638- then cQ
658+ let cY = ca(cX, cM[9])
659+ if ((cN == 10))
660+ then cY
639661 else {
640- let cR = bS(cQ, cE[10])
662+ let cZ = ca(cY, cM[10])
641663 throw("List size exceed 10")
642664 }
643665 }
644666 }
645667 }
646668 }
647669 }
648670 }
649671 }
650672 }
651673 }
652674 }
653675 }
654- let cS = {
655- let cT = bE
656- let cU = size(cT)
657- let cV = 0
658- if ((cU == 0))
659- then cV
676+ let da = {
677+ let db = bM
678+ let dc = size(db)
679+ let dd = 0
680+ if ((dc == 0))
681+ then dd
660682 else {
661- let cW = bJ(cV, cT[0])
662- if ((cU == 1))
663- then cW
683+ let de = bR(dd, db[0])
684+ if ((dc == 1))
685+ then de
664686 else {
665- let cX = bJ(cW, cT[1])
666- if ((cU == 2))
667- then cX
687+ let df = bR(de, db[1])
688+ if ((dc == 2))
689+ then df
668690 else {
669- let cY = bJ(cX, cT[2])
670- if ((cU == 3))
671- then cY
691+ let dg = bR(df, db[2])
692+ if ((dc == 3))
693+ then dg
672694 else {
673- let cZ = bJ(cY, cT[3])
674- if ((cU == 4))
675- then cZ
695+ let dh = bR(dg, db[3])
696+ if ((dc == 4))
697+ then dh
676698 else {
677- let da = bJ(cZ, cT[4])
678- if ((cU == 5))
679- then da
699+ let di = bR(dh, db[4])
700+ if ((dc == 5))
701+ then di
680702 else {
681- let db = bJ(da, cT[5])
682- if ((cU == 6))
683- then db
703+ let dj = bR(di, db[5])
704+ if ((dc == 6))
705+ then dj
684706 else {
685- let dc = bJ(db, cT[6])
686- if ((cU == 7))
687- then dc
707+ let dk = bR(dj, db[6])
708+ if ((dc == 7))
709+ then dk
688710 else {
689- let dd = bJ(dc, cT[7])
690- if ((cU == 8))
691- then dd
711+ let dl = bR(dk, db[7])
712+ if ((dc == 8))
713+ then dl
692714 else {
693- let de = bJ(dd, cT[8])
694- if ((cU == 9))
695- then de
715+ let dm = bR(dl, db[8])
716+ if ((dc == 9))
717+ then dm
696718 else {
697- let df = bJ(de, cT[9])
698- if ((cU == 10))
699- then df
719+ let dn = bR(dm, db[9])
720+ if ((dc == 10))
721+ then dn
700722 else {
701- let dg = bJ(df, cT[10])
723+ let do = bR(dn, db[10])
702724 throw("List size exceed 10")
703725 }
704726 }
705727 }
706728 }
707729 }
708730 }
709731 }
710732 }
711733 }
712734 }
713735 }
714736 }
715- let dh = bU(cS, bG)
716- let di = dh._1
717- let bX = dh._2
718- let dj = if ((bG == 2))
719- then [IntegerEntry(A, bF)]
737+ let dp = cc(da, bO)
738+ let dq = dp._1
739+ let cf = dp._2
740+ let dr = if ((bO == 2))
741+ then [IntegerEntry(x, bN)]
720742 else nil
721- if ((height > bF))
743+ if ((height > bN))
722744 then throw("rewardUpdateHeight < height")
723- else (((((bZ ++ co) ++ cD) ++ di) ++ dj) ++ bX)
745+ else (((((ch ++ cw) ++ cL) ++ dq) ++ dr) ++ cf)
724746 }
725747 }
726748
727749
728750
729-@Callable(bh)
730-func shutdown () = if (!(L))
731- then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, g), "the cause wasn't specified")))
732- else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
751+@Callable(bp)
752+func shutdown () = if (!(U))
753+ then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, d), "the cause wasn't specified")))
754+ else if (!(containsElement([R, S, T, a], bp.callerPublicKey)))
733755 then throw("Only admin can call this function")
734- else ae("Paused by admin")
756+ else an("Paused by admin")
735757
736758
737759
738-@Callable(bh)
739-func activate () = if (L)
760+@Callable(bp)
761+func activate () = if (U)
740762 then throw("DApp is already active")
741- else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
763+ else if (!(containsElement([R, S, T, a], bp.callerPublicKey)))
742764 then throw("Only admin can call this function")
743- else [BooleanEntry(f, true), DeleteEntry(g)]
765+ else [BooleanEntry(c, true), DeleteEntry(d)]
744766
745767
746-@Verifier(dk)
747-func dl () = sigVerify(dk.bodyBytes, dk.proofs[0], dk.senderPublicKey)
768+@Verifier(ds)
769+func dt () = {
770+ let du = if (sigVerify(ds.bodyBytes, ds.proofs[0], R))
771+ then 1
772+ else 0
773+ let dv = if (sigVerify(ds.bodyBytes, ds.proofs[1], S))
774+ then 1
775+ else 0
776+ let dw = if (sigVerify(ds.bodyBytes, ds.proofs[2], T))
777+ then 1
778+ else 0
779+ (((du + dv) + dw) >= 2)
780+ }
748781

github/deemru/w8io/169f3d6 
474.54 ms