tx · AaJfjphPicUsARKyY6bVziu4JTwjbb2GnxMq7op9RaDu

3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn:  -0.02300000 Waves

2023.08.17 14:17 [2714523] smart account 3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn > SELF 0.00000000 Waves

{ "type": 13, "id": "AaJfjphPicUsARKyY6bVziu4JTwjbb2GnxMq7op9RaDu", "fee": 2300000, "feeAssetId": null, "timestamp": 1692271060974, "version": 2, "chainId": 84, "sender": "3N2M4PztorHwrfENp7D6LhYGgGodjiD1fjn", "senderPublicKey": "Fj9LPkCtmW3pDnVU6wPQnvqpZJCBieWSvZqY5FAGeCyp", "proofs": [ "5pBFn6HYy1WcgsU2n9YzwTz5tFeKvDaxjQSFtgTaoJ3J8YogYide1pyJPQsSNHrmXsiGhWXxEX8RCbzjnNo2fbR", "3r4425tz9fFfeKaHovJp6kMEjNy4VfASqFwWaQvwaVh4agSxAvG2gVe9n61pbghVPVUUv3kQsrCBgideibcrreMv" ], "script": "base64:BgIhCAISABIAEgQKAggIEgMKAQgSBwoFCAgIAQESAwoBCBIAUQAGU0NBTEU4AIDC1y8AC0xFTkRFUlNfQVBSCQDMCAIAlgEJAMwIAgB4CQDMCAIAZAkAzAgCAFAJAMwIAgA8CQDMCAIAKAkAzAgCAB4JAMwIAgAUCQDMCAIACgUDbmlsABNMRU5ERVJTX0FQUl9QRVJJT0RTCQDMCAICAzEtMQkAzAgCAgMyLTIJAMwIAgIDMy0zCQDMCAICAzQtNAkAzAgCAgM1LTgJAMwIAgIEOS0xMgkAzAgCAgcxNCAtIDE2CQDMCAICBTE3LTIwCQDMCAICBjIwLTEwNAUDbmlsABNMRU5ERVJTX01BWF9QRVJJT0RTAGgABkxQX0FQUgkAzAgCAJYBCQDMCAIAeAkAzAgCAGQJAMwIAgBQCQDMCAIAPAkAzAgCACgFA25pbAAOTFBfQVBSX1BFUklPRFMJAMwIAgIDMS0xCQDMCAICAzItMgkAzAgCAgMzLTMJAMwIAgIDNC00CQDMCAICAzUtOAkAzAgCAgQ5LTEyBQNuaWwADkxQX01BWF9QRVJJT0RTAAwADGtTdGFydEhlaWdodAILc3RhcnRIZWlnaHQADWtQZXJpb2RMZW5ndGgCDHBlcmlvZExlbmd0aAARa0xlbmRlcnNNYXhBbW91bnQCEWxlbmRSZXdhcmRzQW1vdW50AAxrTFBNYXhBbW91bnQCDmxwUmV3YXJkQW1vdW50AAdrVG9rZW5zAgZ0b2tlbnMAC2tVc2VyU3VwcGx5AhBfdXNlclRvdGFsU3VwcGx5AA5rVG9rZW5JbnRlcmVzdAIOX3Rva2VuSW50ZXJlc3QAFGtUb2tlbkludGVyZXN0SGVpZ2h0AhRfdG9rZW5JbnRlcmVzdEhlaWdodAAUa1Rva2VuUmV3YXJkUGVyQmxvY2sCFF90b2tlblJld2FyZFBlckJsb2NrABNrUmV3YXJkVXBkYXRlSGVpZ2h0AhJyZXdhcmRVcGRhdGVIZWlnaHQAEWtVc2VyTGVuZEludGVyZXN0AhFfdXNlckxhbmRJbnRlcmVzdAAXa1VzZXJMZW5kQXZhaWxhYmxlQ2xhaW0CF191c2VyTGVuZEF2YWlsYWJsZUNsYWltABVrVXNlckxwQXZhaWxhYmxlQ2xhaW0CFV91c2VyTHBBdmFpbGFibGVDbGFpbQALa0xwSW50ZXJlc3QCCmxwSW50ZXJlc3QAEWtMcEludGVyZXN0SGVpZ2h0AhBscEludGVyZXN0SGVpZ2h0AA1rUHJldkxQU3VwcGx5AhFwcmV2TFBUb3RhbFN1cHBseQARa0xwUmV3YXJkUGVyQmxvY2sCEGxwUmV3YXJkUGVyQmxvY2sAD2tVc2VyTHBJbnRlcmVzdAIPX3VzZXJMcEludGVyZXN0AA5rUHJpY2VJbk9yYWNsZQIHX3R3YXA1QgAUa1ByZXZMZW5kVG9rZW5TdXBwbHkCFF9wcmV2TGVuZFRvdGFsU3VwcGx5AAxrQVhMWVRva2VuSWQCC2F4bHlUb2tlbklkABBrTGVuZFRva2VuU3VwcGx5Ag90b3RhbF9zdXBwbGllZF8AD2tMZW5kVXNlclN1cHBseQIKX3N1cHBsaWVkXwAQa0xlbmRTZXR1cFRva2VucwIMc2V0dXBfdG9rZW5zAA5rU0ZUb3RhbFN1cHBseQIaX3RvdGFsX3NoYXJlX3Rva2Vuc19sb2NrZWQAEmtTRlVzZXJUb3RhbFN1cHBseQIUX3NoYXJlX3Rva2Vuc19sb2NrZWQACWtBeGx5UG9vbAIIYXhseVBvb2wABWtMcElkAg5zaGFyZV9hc3NldF9pZAAMa1ByaWNlT3JhY2xlAgxwcmljZV9vcmFjbGUAEWtBeGx5TWFpbkNvbnRyYWN0AgxtYWluQ29udHJhY3QAFmtBeGx5VG9rZW5vbWljQ29udHJhY3QCEXRva2Vub21pY0NvbnRyYWN0ABJrU0ZGYXJtaW5nQ29udHJhY3QCE3N3b3BmaV9mYXJtaW5nX2FkZHIADWtMZW5kQ29udHJhY3QCEWxlbmRfc2VydmljZV9hZGRyAAlrQWRtaW4xUEsCFWdyb3VwMV9hZG1pbjFfcHViX2tleQAJa0FkbWluMlBLAhVncm91cDFfYWRtaW4yX3B1Yl9rZXkACWtBZG1pbjNQSwIVZ3JvdXAxX2FkbWluM19wdWJfa2V5AA9rT3BlcmF0b3JDYWxsUEsCEmFkbWluX2NhbGxfcHViX2tleQAIYXhseVBvb2wJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQlrQXhseVBvb2wCFkNhbid0IGdldCBheGx5UG9vbCBrZXkADG1haW5Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFEWtBeGx5TWFpbkNvbnRyYWN0AhlDYW4ndCBnZXQgbWFpbkNvbnRhY3Qga2V5AA10b2tlbkNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUWa0F4bHlUb2tlbm9taWNDb250cmFjdAIfQ2FuJ3QgZ2V0IHRva2Vub21pY0NvbnRyYWN0IGtleQAMbGVuZENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUMbWFpbkNvbnRyYWN0BQ1rTGVuZENvbnRyYWN0Ah9DYW4ndCBnZXQgbGVuZF9zZXJ2aWNlX2FkZHIga2V5ABFzZkZhcm1pbmdDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDG1haW5Db250cmFjdAUSa1NGRmFybWluZ0NvbnRyYWN0AiFDYW4ndCBnZXQgc3dvcGZpX2Zhcm1pbmdfYWRkciBrZXkAD3ByaWNlT3JhY2xlQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDG1haW5Db250cmFjdAUMa1ByaWNlT3JhY2xlAhpDYW4ndCBnZXQgcHJpY2Vfb3JhY2xlIGtleQAIYWRtaW4xUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDG1haW5Db250cmFjdAUJa0FkbWluMVBLAhJDYW4ndCBnZXQgYWRtaW4xUEsACGFkbWluMlBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQxtYWluQ29udHJhY3QFCWtBZG1pbjJQSwISQ2FuJ3QgZ2V0IGFkbWluMlBLAAhhZG1pbjNQSwkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUMbWFpbkNvbnRyYWN0BQlrQWRtaW4zUEsCFENhbid0IGdldCBvcGVyYXRvclBLAApvcGVyYXRvclBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQ9rT3BlcmF0b3JDYWxsUEsCFENhbid0IGdldCBvcGVyYXRvclBLAAZheGx5SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ10b2tlbkNvbnRyYWN0BQxrQVhMWVRva2VuSWQCF0Nhbid0IGdldCBBeGx5IHRva2VuIGlkAAtzdGFydEhlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUMa1N0YXJ0SGVpZ2h0AAxwZXJpb2RMZW5ndGgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFDWtQZXJpb2RMZW5ndGgACWN1clBlcmlvZAkAaQIJAGUCBQZoZWlnaHQFC3N0YXJ0SGVpZ2h0BQxwZXJpb2RMZW5ndGgADWxlbmRNYXhBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDXRva2VuQ29udHJhY3QFEWtMZW5kZXJzTWF4QW1vdW50ABNsZW5kTWF4UGVyaW9kQW1vdW50CQBpAgUNbGVuZE1heEFtb3VudAUTTEVOREVSU19NQVhfUEVSSU9EUwALbHBNYXhBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDXRva2VuQ29udHJhY3QFDGtMUE1heEFtb3VudAARbHBNYXhQZXJpb2RBbW91bnQJAGkCBQtscE1heEFtb3VudAUOTFBfTUFYX1BFUklPRFMACWFsbFRva2VucwkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQdrVG9rZW5zAgEsAQtpc0FkbWluQ2FsbAEBaQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFCGFkbWluMVBLCQDMCAIFCGFkbWluMlBLCQDMCAIFCGFkbWluM1BLBQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQUEdW5pdAkAAgECKE9ubHkgYWRtaW4gZ3JvdXAxIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BCmlzU2VsZkNhbGwBAWkDCQAAAggFAWkGY2FsbGVyBQR0aGlzBQR1bml0CQACAQIrT25seSBjb250cmFjdCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEOaXNPcGVyYXRvckNhbGwBAWkDCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQpvcGVyYXRvclBLBQR1bml0CQACAQIkT25seSBvcGVyYXRvciBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQppc0xhbmRDYWxsAQFpAwkAAAIIBQFpBmNhbGxlcgUMbGVuZENvbnRyYWN0BQR1bml0CQACAQIpT25seSBsYW5kIGNvbnRyYWN0IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BD2lzU0ZGYXJtaW5nQ2FsbAEBaQMJAAACCAUBaQZjYWxsZXIFEXNmRmFybWluZ0NvbnRyYWN0BQR1bml0CQACAQIpT25seSBsYW5kIGNvbnRyYWN0IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BDWdldEFzc2V0UHJpY2UBB2Fzc2V0SWQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFD3ByaWNlT3JhY2xlQWRkcgkArAICBQdhc3NldElkBQ5rUHJpY2VJbk9yYWNsZQEQZ2V0QXNzZXREZWNpbWFscwEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwAIBAckbWF0Y2gwCQDsBwEJANkEAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhkZWNpbWFscwkAAgECEENhbid0IGZpbmQgYXNzZXQBEWdldEFzc2V0UHJlY2lzaW9uAQdhc3NldElkCQBsBgAKAAAJARBnZXRBc3NldERlY2ltYWxzAQUHYXNzZXRJZAAAAAAFBERPV04BFWdldEFkb3B0ZWRBUFJCeVBlcmlvZAMGcGVyaW9kCmFwclBlcmlvZHMDYXByCgEDZm9yAgFhB2FwZXJpb2QECyR0MDUzNDA1MzYyBQFhBAVpbmRleAgFCyR0MDUzNDA1MzYyAl8xBAVmb3VuZAgFCyR0MDUzNDA1MzYyAl8yBAJmdAkAtQkCBQdhcGVyaW9kAgEtBAskdDA1Mzk5NTQ2MgkAlAoCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZnQAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmZ0AAEEBGZyb20IBQskdDA1Mzk5NTQ2MgJfMQQCdG8IBQskdDA1Mzk5NTQ2MgJfMgMFBWZvdW5kBQFhAwMJAGcCBQZwZXJpb2QFBGZyb20JAGcCBQJ0bwUGcGVyaW9kBwkAlAoCBQVpbmRleAYJAJQKAgkAZAIFBWluZGV4AAEHBAskdDA1NTk5NTY2NQoAAiRsBRNMRU5ERVJTX0FQUl9QRVJJT0RTCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAHCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNmb3ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDkJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkEBWluZGV4CAULJHQwNTU5OTU2NjUCXzEEBWZvdW5kCAULJHQwNTU5OTU2NjUCXzIDBQVmb3VuZAkAawMJAGgCCQCRAwIFC0xFTkRFUlNfQVBSBQVpbmRleAUGU0NBTEU4AAcA7QIAAAEXZ2V0VG90YWxTdXBwbHlBbGxUb2tlbnMACgEDZm9yAgFhB3Rva2VuSWQECyR0MDU4NTM1OTA5BQFhBAt0b3RhbFN1cHBseQgFCyR0MDU4NTM1OTA5Al8xBA50b3RhbFN1cHBseVVzZAgFCyR0MDU4NTM1OTA5Al8yBBF0b3RhbFN1cHBseVVzZEFsbAgFCyR0MDU4NTM1OTA5Al8zBAd0U3VwcGx5CQELdmFsdWVPckVsc2UCCQCaCAIFDGxlbmRDb250cmFjdAkArAICBRBrTGVuZFRva2VuU3VwcGx5BQd0b2tlbklkAAAECmFzc2V0UHJpY2UJAQ1nZXRBc3NldFByaWNlAQUHdG9rZW5JZAQOYXNzZXRQcmVjaXNpb24JARFnZXRBc3NldFByZWNpc2lvbgEFB3Rva2VuSWQECnRTdXBwbHlVc2QJAGsDBQd0U3VwcGx5BQphc3NldFByaWNlBQ5hc3NldFByZWNpc2lvbgkAlQoDCQDNCAIFC3RvdGFsU3VwcGx5BQd0U3VwcGx5CQDNCAIFDnRvdGFsU3VwcGx5VXNkBQp0U3VwcGx5VXNkCQBkAgURdG90YWxTdXBwbHlVc2RBbGwFCnRTdXBwbHlVc2QKAAIkbAUJYWxsVG9rZW5zCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDBQNuaWwFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNmb3ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDMwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeARFnZXRUb3RhbFN1cHBseVVzZAEHdG9rZW5JZAQHdFN1cHBseQkBC3ZhbHVlT3JFbHNlAgkAmggCBQxsZW5kQ29udHJhY3QJAKwCAgUQa0xlbmRUb2tlblN1cHBseQUHdG9rZW5JZAAABAphc3NldFByaWNlCQENZ2V0QXNzZXRQcmljZQEFB3Rva2VuSWQEDmFzc2V0UHJlY2lzaW9uCQERZ2V0QXNzZXRQcmVjaXNpb24BBQd0b2tlbklkCQBrAwUHdFN1cHBseQUKYXNzZXRQcmljZQUOYXNzZXRQcmVjaXNpb24BFGNhbGNOZXdUb2tlbkludGVyZXN0Agd0b2tlbklkC3RvdGFsU3VwcGx5AwkAZwIFBmhlaWdodAULc3RhcnRIZWlnaHQAAAQOcmV3YXJkUGVyQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUHdG9rZW5JZAUUa1Rva2VuUmV3YXJkUGVyQmxvY2sEC29sZEludGVyZXN0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB3Rva2VuSWQFDmtUb2tlbkludGVyZXN0BAx1cGRhdGVIZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUHdG9rZW5JZAUUa1Rva2VuSW50ZXJlc3RIZWlnaHQEBnJld2FyZAkAaAIJAGUCBQZoZWlnaHQFDHVwZGF0ZUhlaWdodAUOcmV3YXJkUGVyQmxvY2sECGludGVyZXN0AwkAZgIFC3RvdGFsU3VwcGx5AAAJAGsDBQZyZXdhcmQFBlNDQUxFOAULdG90YWxTdXBwbHkAAAkAZAIFC29sZEludGVyZXN0BQhpbnRlcmVzdAERY2FsY05ld0xwSW50ZXJlc3QBC3RvdGFsU3VwcGx5AwkAZwIFBmhlaWdodAULc3RhcnRIZWlnaHQAAAQOcmV3YXJkUGVyQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFEWtMcFJld2FyZFBlckJsb2NrBAtvbGRJbnRlcmVzdAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwULa0xwSW50ZXJlc3QEDHVwZGF0ZUhlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwURa0xwSW50ZXJlc3RIZWlnaHQEBnJld2FyZAkAaAIJAGUCBQZoZWlnaHQFDHVwZGF0ZUhlaWdodAUOcmV3YXJkUGVyQmxvY2sECGludGVyZXN0AwkAZgIFC3RvdGFsU3VwcGx5AAAJAGsDBQZyZXdhcmQFBlNDQUxFOAULdG90YWxTdXBwbHkAAAkAZAIFC29sZEludGVyZXN0BQhpbnRlcmVzdAESY2FsY0xlbmRVc2VyUmV3YXJkAgR1c2VyB3Rva2VuSWQEC3RvdGFsU3VwcGx5CQELdmFsdWVPckVsc2UCCQCaCAIFDGxlbmRDb250cmFjdAkArAICBRBrTGVuZFRva2VuU3VwcGx5BQd0b2tlbklkAAAEDXRva2VuSW50ZXJlc3QJARRjYWxjTmV3VG9rZW5JbnRlcmVzdAIFB3Rva2VuSWQFC3RvdGFsU3VwcGx5BAp1c2VyU3VwcGx5CQELdmFsdWVPckVsc2UCCQCaCAIFDGxlbmRDb250cmFjdAkArAICCQCsAgIFBHVzZXIFD2tMZW5kVXNlclN1cHBseQUHdG9rZW5JZAAABBF1c2VyVG9rZW5JbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQd0b2tlbklkAgFfBQR1c2VyBRFrVXNlckxlbmRJbnRlcmVzdAMJAAACBQp1c2VyU3VwcGx5AAAFDXRva2VuSW50ZXJlc3QAAAQGcmV3YXJkCQBrAwUKdXNlclN1cHBseQkAZQIFDXRva2VuSW50ZXJlc3QFEXVzZXJUb2tlbkludGVyZXN0BQZTQ0FMRTgJAJUKAwUGcmV3YXJkBQ10b2tlbkludGVyZXN0BQp1c2VyU3VwcGx5ARBjYWxjTHBVc2VyUmV3YXJkAQR1c2VyBAt0b3RhbFN1cHBseQkBC3ZhbHVlT3JFbHNlAgkAmggCBRFzZkZhcm1pbmdDb250cmFjdAkArAICBQhheGx5UG9vbAUOa1NGVG90YWxTdXBwbHkAAAQNdG9rZW5JbnRlcmVzdAkBEWNhbGNOZXdMcEludGVyZXN0AQULdG90YWxTdXBwbHkECnVzZXJTdXBwbHkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUMbGVuZENvbnRyYWN0CQCsAgIJAKwCAgkArAICBQhheGx5UG9vbAIBXwUEdXNlcgUSa1NGVXNlclRvdGFsU3VwcGx5AAAEEXVzZXJUb2tlbkludGVyZXN0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEdXNlcgUPa1VzZXJMcEludGVyZXN0AwkAAAIFCnVzZXJTdXBwbHkAAAUNdG9rZW5JbnRlcmVzdAAABAZyZXdhcmQJAGsDBQp1c2VyU3VwcGx5CQBlAgUNdG9rZW5JbnRlcmVzdAURdXNlclRva2VuSW50ZXJlc3QFBlNDQUxFOAkAlQoDBQZyZXdhcmQFDXRva2VuSW50ZXJlc3QFCnVzZXJTdXBwbHkBGGNsYWltTGVuZGVyUmV3YXJkc0NvbW1vbgIEdXNlcghyZWFkT25seQoBBWNsYWltAgFhB3Rva2VuSWQECyR0MDg3NTM4Nzk3BQFhBAh0b2tlbklkcwgFCyR0MDg3NTM4Nzk3Al8xBAdjQW1vdW50CAULJHQwODc1Mzg3OTcCXzIEBXRvdGFsCAULJHQwODc1Mzg3OTcCXzMECGVudGVyaWVzCAULJHQwODc1Mzg3OTcCXzQEEnVzZXJBdmFpbGFibGVDbGFpbQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQd0b2tlbklkAgFfBQR1c2VyBRdrVXNlckxlbmRBdmFpbGFibGVDbGFpbQAABAskdDA4OTEwODk4OQkBEmNhbGNMZW5kVXNlclJld2FyZAIFBHVzZXIFB3Rva2VuSWQEB3VSZXdhcmQIBQskdDA4OTEwODk4OQJfMQQQbmV3VG9rZW5JbnRlcmVzdAgFCyR0MDg5MTA4OTg5Al8yBAp1c2VyU3VwcGx5CAULJHQwODkxMDg5ODkCXzMEDHRvdGFsVG9DbGFpbQkAZAIFEnVzZXJBdmFpbGFibGVDbGFpbQUHdVJld2FyZAMDCQBmAgUMdG90YWxUb0NsYWltAAAGCQBmAgUKdXNlclN1cHBseQAABAxuZXdFbnRyZXJpZXMDAwUIcmVhZE9ubHkGCQAAAgUMdG90YWxUb0NsYWltAAAFCGVudGVyaWVzCQDOCAIFCGVudGVyaWVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQd0b2tlbklkAgFfBQR1c2VyBRFrVXNlckxlbmRJbnRlcmVzdAUQbmV3VG9rZW5JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUHdG9rZW5JZAIBXwUEdXNlcgUXa1VzZXJMZW5kQXZhaWxhYmxlQ2xhaW0AAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQd0b2tlbklkBQ5rVG9rZW5JbnRlcmVzdAUQbmV3VG9rZW5JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQd0b2tlbklkBRRrVG9rZW5JbnRlcmVzdEhlaWdodAUGaGVpZ2h0BQNuaWwJAJYKBAkAzQgCBQh0b2tlbklkcwUHdG9rZW5JZAkAzQgCBQdjQW1vdW50BQx0b3RhbFRvQ2xhaW0JAGQCBQV0b3RhbAUMdG90YWxUb0NsYWltBQxuZXdFbnRyZXJpZXMJAJYKBAUIdG9rZW5JZHMFB2NBbW91bnQFBXRvdGFsBQhlbnRlcmllcwoAAiRsBQlhbGxUb2tlbnMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCWCgQFA25pbAUDbmlsAAAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFY2xhaW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDMwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeARRjbGFpbUxwUmV3YXJkc0NvbW1vbgIEdXNlcghyZWFkT25seQQSdXNlckF2YWlsYWJsZUNsYWltCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEdXNlcgUVa1VzZXJMcEF2YWlsYWJsZUNsYWltAAAECyR0MDk5MTY5OTgxCQEQY2FsY0xwVXNlclJld2FyZAEFBHVzZXIEB3VSZXdhcmQIBQskdDA5OTE2OTk4MQJfMQQNbmV3THBJbnRlcmVzdAgFCyR0MDk5MTY5OTgxAl8yBAp1c2VyU3VwcGx5CAULJHQwOTkxNjk5ODECXzMEDHRvdGFsVG9DbGFpbQkAZAIFEnVzZXJBdmFpbGFibGVDbGFpbQUHdVJld2FyZAMDBQhyZWFkT25seQYJAAACBQx0b3RhbFRvQ2xhaW0AAAkAlAoCBQx0b3RhbFRvQ2xhaW0FA25pbAkAlAoCBQx0b3RhbFRvQ2xhaW0JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUPa1VzZXJMcEludGVyZXN0BQ1uZXdMcEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFFWtVc2VyTHBBdmFpbGFibGVDbGFpbQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQtrTHBJbnRlcmVzdAUNbmV3THBJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa0xwSW50ZXJlc3RIZWlnaHQFBmhlaWdodAUDbmlsAQ1nZXRUb2tlbnNBUFJzAAQJYXhseVByaWNlCQENZ2V0QXNzZXRQcmljZQEFBmF4bHlJZAQNYXhseVByZWNpc2lvbgkBEWdldEFzc2V0UHJlY2lzaW9uAQUGYXhseUlkCgEKdG9rZW5zQXBycwIDYXByB3Rva2VuSWQEBHJ3cGIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQd0b2tlbklkBRRrVG9rZW5SZXdhcmRQZXJCbG9jawAABAdyd3BiVXNkCQBrAwUEcndwYgUJYXhseVByaWNlBQ1heGx5UHJlY2lzaW9uBAZyd1llYXIJAGgCCQBoAgUHcndwYlVzZAUMcGVyaW9kTGVuZ3RoADQEDnRvdGFsU3VwcGx5VXNkCQERZ2V0VG90YWxTdXBwbHlVc2QBBQd0b2tlbklkCQDNCAIFA2FwcgkAawMFBnJ3WWVhcgUGU0NBTEU4BQ50b3RhbFN1cHBseVVzZAQEYXBycwoAAiRsBQlhbGxUb2tlbnMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCnRva2Vuc0FwcnMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDMwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeBA1scFRvdGFsU3VwcGx5CQERQGV4dHJOYXRpdmUoMTA1MCkCBRFzZkZhcm1pbmdDb250cmFjdAkArAICBQhheGx5UG9vbAUOa1NGVG90YWxTdXBwbHkEBGxwSWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCGF4bHlQb29sBQVrTHBJZAQLbHBQcmVjaXNpb24JARFnZXRBc3NldFByZWNpc2lvbgEFBGxwSWQEB2xwUHJpY2UKAAFACQCRAwIKAAFACQD8BwQFDG1haW5Db250cmFjdAIaZ2V0U2hhcmVBc3NldFByaWNlUkVBRE9OTFkJAMwIAgkAzAgCBQRscElkBQNuaWwFA25pbAUDbmlsAwkAAQIFAUACCUxpc3RbQW55XQUBQAkAAgEJAKwCAgkAAwEFAUACHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQAAAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQQbHBUb3RhbFN1cHBseVVzZAkAawMFDWxwVG90YWxTdXBwbHkFB2xwUHJpY2UFC2xwUHJlY2lzaW9uBARyd3BiCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEWtMcFJld2FyZFBlckJsb2NrAAAEB3J3cGJVc2QJAGsDBQRyd3BiBQlheGx5UHJpY2UFDWF4bHlQcmVjaXNpb24EBnJ3WWVhcgkAaAIJAGgCBQdyd3BiVXNkBQxwZXJpb2RMZW5ndGgANAQFbHBBcHIJAGsDBQZyd1llYXIFBlNDQUxFOAUQbHBUb3RhbFN1cHBseVVzZAkAlQoDBQlhbGxUb2tlbnMFBGFwcnMFBWxwQXByBwFpARJjbGFpbUxlbmRlclJld2FyZHMABAhjbGFpbVJlcwkBGGNsYWltTGVuZGVyUmV3YXJkc0NvbW1vbgIJAKUIAQgFAWkGY2FsbGVyBwMJAAACCAUIY2xhaW1SZXMCXzMAAAkAAgECI2NsYWltIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwBANpbnYJAPwHBAUNdG9rZW5Db250cmFjdAISd2l0aGRyYXdMZW5kUmV3YXJkCQDMCAIIBQhjbGFpbVJlcwJfMwkAzAgCCQClCAEIBQFpBmNhbGxlcgUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYIBQhjbGFpbVJlcwJfNAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jbGFpbUxwUmV3YXJkcwAECGNsYWltUmVzCQEUY2xhaW1McFJld2FyZHNDb21tb24CCQClCAEIBQFpBmNhbGxlcgcDCQAAAggFCGNsYWltUmVzAl8xAAAJAAIBAiNjbGFpbSBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMAQDaW52CQD8BwQFDXRva2VuQ29udHJhY3QCEHdpdGhkcmF3THBSZXdhcmQJAMwIAggFCGNsYWltUmVzAl8xCQDMCAIJAKUIAQgFAWkGY2FsbGVyBQNuaWwFA25pbAMJAAACBQNpbnYFA2ludggFCGNsYWltUmVzAl8yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmxlbmRBY3Rpb24CBHVzZXIHdG9rZW5JZAkBC3ZhbHVlT3JFbHNlAgkBCmlzTGFuZENhbGwBBQFpBBJ1c2VyQXZhaWxhYmxlQ2xhaW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQd0b2tlbklkBRdrVXNlckxlbmRBdmFpbGFibGVDbGFpbQAABA0kdDAxMjM0MzEyNDEwCQESY2FsY0xlbmRVc2VyUmV3YXJkAgUEdXNlcgUHdG9rZW5JZAQHdVJld2FyZAgFDSR0MDEyMzQzMTI0MTACXzEEEG5ld1Rva2VuSW50ZXJlc3QIBQ0kdDAxMjM0MzEyNDEwAl8yCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQd0b2tlbklkBRFrVXNlckxlbmRJbnRlcmVzdAUQbmV3VG9rZW5JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUHdG9rZW5JZAUXa1VzZXJMZW5kQXZhaWxhYmxlQ2xhaW0JAGQCBRJ1c2VyQXZhaWxhYmxlQ2xhaW0FB3VSZXdhcmQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHdG9rZW5JZAUOa1Rva2VuSW50ZXJlc3QFEG5ld1Rva2VuSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHdG9rZW5JZAUUa1Rva2VuSW50ZXJlc3RIZWlnaHQFBmhlaWdodAUDbmlsAWkBCGxwQWN0aW9uAQR1c2VyCQELdmFsdWVPckVsc2UCCQEPaXNTRkZhcm1pbmdDYWxsAQUBaQQSdXNlckF2YWlsYWJsZUNsYWltCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFWtVc2VyTHBBdmFpbGFibGVDbGFpbQAABA0kdDAxMjg3NTEyOTI4CQEQY2FsY0xwVXNlclJld2FyZAEFBHVzZXIEB3VSZXdhcmQIBQ0kdDAxMjg3NTEyOTI4Al8xBA1uZXdMcEludGVyZXN0CAUNJHQwMTI4NzUxMjkyOAJfMgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBQ9rVXNlckxwSW50ZXJlc3QFDW5ld0xwSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUVa1VzZXJMcEF2YWlsYWJsZUNsYWltCQBkAgUSdXNlckF2YWlsYWJsZUNsYWltBQd1UmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFC2tMcEludGVyZXN0BQ1uZXdMcEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFEWtMcEludGVyZXN0SGVpZ2h0BQZoZWlnaHQFA25pbAFpAQRpbml0BRRheGx5TWFpbkNvbnRyYWN0QWRkchlheGx5VG9rZW5vbWljQ29udHJhY3RBZGRyDGF4bHlQb29sQWRkchJmYXJtaW5nU3RhcnRIZWlnaHQMcGVyaW9kTGVuZ3RoCQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkDCQEBIQEJAQlpc0RlZmluZWQBCQCmCAEFFGF4bHlNYWluQ29udHJhY3RBZGRyCQACAQIVV3JvbmcgZmFybWluZyBhZGRyZXNzAwkBASEBCQEJaXNEZWZpbmVkAQkApggBBRlheGx5VG9rZW5vbWljQ29udHJhY3RBZGRyCQACAQIbV3JvbmcgbWFpbiBjb250cmFjdCBhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEWtBeGx5TWFpbkNvbnRyYWN0BRRheGx5TWFpbkNvbnRyYWN0QWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBRZrQXhseVRva2Vub21pY0NvbnRyYWN0BRlheGx5VG9rZW5vbWljQ29udHJhY3RBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWtBeGx5UG9vbAUMYXhseVBvb2xBZGRyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrU3RhcnRIZWlnaHQFEmZhcm1pbmdTdGFydEhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa1BlcmlvZExlbmd0aAUMcGVyaW9kTGVuZ3RoCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tUb2tlbnMCAAUDbmlsAWkBDGluaXROZXdUb2tlbgEHdG9rZW5JZAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMJAKwCAgUHdG9rZW5JZAUOa1Rva2VuSW50ZXJlc3QJAAIBAhR0b2tlbiBhbHJlYWR5IGluaXRlZAMJAQEhAQkBCGNvbnRhaW5zAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUMbGVuZENvbnRyYWN0BRBrTGVuZFNldHVwVG9rZW5zBQd0b2tlbklkCQACAQITbm8gdG9rZW4gb24gbGFuZGluZwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQd0b2tlbklkBQ5rVG9rZW5JbnRlcmVzdAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB3Rva2VuSWQFFGtUb2tlbkludGVyZXN0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUHa1Rva2VucwkAuQkCCQDNCAIFCWFsbFRva2VucwUHdG9rZW5JZAIBLAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa1Rva2VuUmV3YXJkUGVyQmxvY2sAAAUDbmlsAWkBDXVwZGF0ZVJld2FyZHMACQELdmFsdWVPckVsc2UCCQEOaXNPcGVyYXRvckNhbGwBBQFpBBBsYXN0VXBkYXRlSGVpZ2h0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFE2tSZXdhcmRVcGRhdGVIZWlnaHQAAAMJAGYCCQBkAgUQbGFzdFVwZGF0ZUhlaWdodAUMcGVyaW9kTGVuZ3RoBQZoZWlnaHQJAAIBAiVyZXdhcmRzIGFscmVkeSB1cGRhdGVkIGluIHRoaXMgcGVyaW9kBA0kdDAxNDY1ODE0NzM4CQEXZ2V0VG90YWxTdXBwbHlBbGxUb2tlbnMABAt0b3RhbFN1cHBseQgFDSR0MDE0NjU4MTQ3MzgCXzEEDnRvdGFsU3VwcGx5VXNkCAUNJHQwMTQ2NTgxNDczOAJfMgQRdG90YWxTdXBwbHlVc2RBbGwIBQ0kdDAxNDY1ODE0NzM4Al8zBAlheGx5UHJpY2UJAQ1nZXRBc3NldFByaWNlAQUGYXhseUlkBA1heGx5UHJlY2lzaW9uCQERZ2V0QXNzZXRQcmVjaXNpb24BBQZheGx5SWQEBm1heEFQUgkBFWdldEFkb3B0ZWRBUFJCeVBlcmlvZAMFCWN1clBlcmlvZAUTTEVOREVSU19BUFJfUEVSSU9EUwULTEVOREVSU19BUFIKAQx1cGRhdGVSZXdhcmQCAWEHdG9rZW5JZAQNJHQwMTQ5ODIxNTAwNwUBYQQIZW50ZXJpZXMIBQ0kdDAxNDk4MjE1MDA3Al8xBAVpbmRleAgFDSR0MDE0OTgyMTUwMDcCXzIDCQAAAgkAkQMCBQt0b3RhbFN1cHBseQUFaW5kZXgAAAkAlAoCCQDOCAIFCGVudGVyaWVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB3Rva2VuSWQFFGtUb2tlblJld2FyZFBlckJsb2NrAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHdG9rZW5JZAUOa1Rva2VuSW50ZXJlc3QJARRjYWxjTmV3VG9rZW5JbnRlcmVzdAIFB3Rva2VuSWQJAJEDAgULdG90YWxTdXBwbHkFBWluZGV4CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB3Rva2VuSWQFFGtUb2tlbkludGVyZXN0SGVpZ2h0BQZoZWlnaHQFA25pbAkAZAIFBWluZGV4AAEEBXNoYXJlCQBrAwkAkQMCBQ50b3RhbFN1cHBseVVzZAUFaW5kZXgFBlNDQUxFOAURdG90YWxTdXBwbHlVc2RBbGwECW1heFJld2FyZAkAawMFBXNoYXJlBRNsZW5kTWF4UGVyaW9kQW1vdW50BQZTQ0FMRTgEDG1heFJld2FyZFVzZAkAawMFCW1heFJld2FyZAUJYXhseVByaWNlBQ1heGx5UHJlY2lzaW9uBA9wcmV2VG90YWxTdXBwbHkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUUa1ByZXZMZW5kVG9rZW5TdXBwbHkAAAQGcnRDb2VmAwMJAAACBQ9wcmV2VG90YWxTdXBwbHkAAAYJAAACCQCRAwIFC3RvdGFsU3VwcGx5BQVpbmRleAAAAAAJAGsDBQ9wcmV2VG90YWxTdXBwbHkFBlNDQUxFOAkAkQMCBQt0b3RhbFN1cHBseQUFaW5kZXgEBnJld2FyZAkAaQIJAJcDAQkAzAgCCQBoAgUGbWF4QVBSCQBkAgUGU0NBTEU4BQZydENvZWYJAMwIAgkAawMFBm1heEFQUgkAaAIADwUGU0NBTEU4AAoFA25pbAUGU0NBTEU4BAlyZXdhcmRVc2QJAJcDAQkAzAgCBQxtYXhSZXdhcmRVc2QJAMwIAgkAawMJAJEDAgUOdG90YWxTdXBwbHlVc2QFBWluZGV4BQZyZXdhcmQFBlNDQUxFOAUDbmlsBAxyZXdhcmRQZXJpb2QJAGsDBQlyZXdhcmRVc2QFCWF4bHlQcmljZQUNYXhseVByZWNpc2lvbgQOcmV3YXJkUGVyQmxvY2sJAGkCBQxyZXdhcmRQZXJpb2QFDHBlcmlvZExlbmd0aAkAlAoCCQDOCAIFCGVudGVyaWVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB3Rva2VuSWQFFGtQcmV2TGVuZFRva2VuU3VwcGx5CQCRAwIFC3RvdGFsU3VwcGx5BQVpbmRleAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQd0b2tlbklkBRRrVG9rZW5SZXdhcmRQZXJCbG9jawUOcmV3YXJkUGVyQmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHdG9rZW5JZAUOa1Rva2VuSW50ZXJlc3QJARRjYWxjTmV3VG9rZW5JbnRlcmVzdAIFB3Rva2VuSWQJAJEDAgULdG90YWxTdXBwbHkFBWluZGV4CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB3Rva2VuSWQFFGtUb2tlbkludGVyZXN0SGVpZ2h0BQZoZWlnaHQFA25pbAkAZAIFBWluZGV4AAEEDSR0MDE2NDc4MTY1NTAKAAIkbAUJYWxsVG9rZW5zCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMdXBkYXRlUmV3YXJkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAzMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgQOdG9rZW5zRW50ZXJpZXMIBQ0kdDAxNjQ3ODE2NTUwAl8xBAVpbmRleAgFDSR0MDE2NDc4MTY1NTACXzIECGxwTWF4QVBSCQEVZ2V0QWRvcHRlZEFQUkJ5UGVyaW9kAwUJY3VyUGVyaW9kBQ5MUF9BUFJfUEVSSU9EUwUGTFBfQVBSBA1scFRvdGFsU3VwcGx5CQERQGV4dHJOYXRpdmUoMTA1MCkCBRFzZkZhcm1pbmdDb250cmFjdAkArAICBQhheGx5UG9vbAUOa1NGVG90YWxTdXBwbHkEC3ByZUxQU3VwcGx5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDWtQcmV2TFBTdXBwbHkAAAQEbHBJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUIYXhseVBvb2wFBWtMcElkBAtscFByZWNpc2lvbgkBEWdldEFzc2V0UHJlY2lzaW9uAQUEbHBJZAQHbHBQcmljZQoAAUAJAJEDAgoAAUAJAPwHBAUMbWFpbkNvbnRyYWN0AhpnZXRTaGFyZUFzc2V0UHJpY2VSRUFET05MWQkAzAgCCQDMCAIFBGxwSWQFA25pbAUDbmlsBQNuaWwDCQABAgUBQAIJTGlzdFtBbnldBQFACQACAQkArAICCQADAQUBQAIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldAAADCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BBBscFRvdGFsU3VwcGx5VXNkCQBrAwUNbHBUb3RhbFN1cHBseQUHbHBQcmljZQULbHBQcmVjaXNpb24EDm1heExQUmV3YXJkVXNkCQBrAwURbHBNYXhQZXJpb2RBbW91bnQFCWF4bHlQcmljZQUNYXhseVByZWNpc2lvbgQIcnRMUENvZWYDAwkAAAIFC3ByZUxQU3VwcGx5AAAGCQAAAgUNbHBUb3RhbFN1cHBseQAAAAAJAGsDBQtwcmVMUFN1cHBseQUGU0NBTEU4BQ1scFRvdGFsU3VwcGx5BAhyZXdhcmRMcAkAaQIJAJcDAQkAzAgCCQBoAgUIbHBNYXhBUFIJAGQCBQZTQ0FMRTgFCHJ0TFBDb2VmCQDMCAIJAGsDBQhscE1heEFQUgkAaAIADwUGU0NBTEU4AAoFA25pbAUGU0NBTEU4BAtyZXdhcmRMcFVzZAkAlwMBCQDMCAIFDm1heExQUmV3YXJkVXNkCQDMCAIJAGsDBRBscFRvdGFsU3VwcGx5VXNkBQhyZXdhcmRMcAUGU0NBTEU4BQNuaWwEDnJld2FyZExwUGVyaW9kCQBrAwULcmV3YXJkTHBVc2QFCWF4bHlQcmljZQUNYXhseVByZWNpc2lvbgQQcmV3YXJkTHBQZXJCbG9jawkAaQIFDnJld2FyZExwUGVyaW9kBQxwZXJpb2RMZW5ndGgECmxwRW50ZXJpZXMJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtQcmV2TFBTdXBwbHkFDWxwVG90YWxTdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtMcFJld2FyZFBlckJsb2NrBRByZXdhcmRMcFBlckJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQtrTHBJbnRlcmVzdAkBEWNhbGNOZXdMcEludGVyZXN0AQUNbHBUb3RhbFN1cHBseQkAzAgCCQEMSW50ZWdlckVudHJ5AgURa0xwSW50ZXJlc3RIZWlnaHQFBmhlaWdodAUDbmlsCQDNCAIJAM4IAgUKbHBFbnRlcmllcwUOdG9rZW5zRW50ZXJpZXMJAQxJbnRlZ2VyRW50cnkCBRNrUmV3YXJkVXBkYXRlSGVpZ2h0BQZoZWlnaHQBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjFQSwABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCGFkbWluMlBLAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUIYWRtaW4zUEsAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDAEBmlzU2VsZgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQKaXNSaWdodEZlZQMJAAACCAUDaW52A2ZlZQCg9zYJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHBAppc0luaXRDYWxsCQAAAggFA2ludghmdW5jdGlvbgIEaW5pdAQMaXNub1BheW1lbnRzCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAADAwMDBQppc1JpZ2h0RmVlBQppc0luaXRDYWxsBwUGaXNTZWxmBwUMaXNub1BheW1lbnRzBwYFE211bHRpU2lnbmVkQnlBZG1pbnMFE211bHRpU2lnbmVkQnlBZG1pbnPItJKT", "height": 2714523, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HsgABABQU9j6fhArukcLfhNuoyVrenxUQj7cujjbtTob Next: FtVbtHUpfGTH4pLVAJ4KdP5b1u6wLqq7sxbT3LNwVDSy Diff:
OldNewDifferences
461461 then throw("Wrong farming address")
462462 else if (!(isDefined(addressFromString(cc))))
463463 then throw("Wrong main contract address")
464- else [StringEntry(K, cb), StringEntry(L, cc), StringEntry(H, cd), IntegerEntry(h, ce), StringEntry(l, "")])
464+ else [StringEntry(K, cb), StringEntry(L, cc), StringEntry(H, cd), IntegerEntry(h, ce), IntegerEntry(i, ae), StringEntry(l, "")])
465465
466466
467467
468468 @Callable(am)
469469 func initNewToken (aU) = valueOrElse(al(am), if (isDefined(getInteger(this, (aU + n))))
470470 then throw("token already inited")
471- else if (!(contains(getStringValue(this, E), aU)))
471+ else if (!(contains(getStringValue(V, E), aU)))
472472 then throw("no token on landing")
473473 else [IntegerEntry((aU + n), 0), IntegerEntry((aU + o), height), StringEntry(l, makeString((ak :+ aU), ",")), IntegerEntry(p, 0)])
474474
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = [150, 120, 100, 80, 60, 40, 30, 20, 10]
77
88 let c = ["1-1", "2-2", "3-3", "4-4", "5-8", "9-12", "14 - 16", "17-20", "20-104"]
99
1010 let d = 104
1111
1212 let e = [150, 120, 100, 80, 60, 40]
1313
1414 let f = ["1-1", "2-2", "3-3", "4-4", "5-8", "9-12"]
1515
1616 let g = 12
1717
1818 let h = "startHeight"
1919
2020 let i = "periodLength"
2121
2222 let j = "lendRewardsAmount"
2323
2424 let k = "lpRewardAmount"
2525
2626 let l = "tokens"
2727
2828 let m = "_userTotalSupply"
2929
3030 let n = "_tokenInterest"
3131
3232 let o = "_tokenInterestHeight"
3333
3434 let p = "_tokenRewardPerBlock"
3535
3636 let q = "rewardUpdateHeight"
3737
3838 let r = "_userLandInterest"
3939
4040 let s = "_userLendAvailableClaim"
4141
4242 let t = "_userLpAvailableClaim"
4343
4444 let u = "lpInterest"
4545
4646 let v = "lpInterestHeight"
4747
4848 let w = "prevLPTotalSupply"
4949
5050 let x = "lpRewardPerBlock"
5151
5252 let y = "_userLpInterest"
5353
5454 let z = "_twap5B"
5555
5656 let A = "_prevLendTotalSupply"
5757
5858 let B = "axlyTokenId"
5959
6060 let C = "total_supplied_"
6161
6262 let D = "_supplied_"
6363
6464 let E = "setup_tokens"
6565
6666 let F = "_total_share_tokens_locked"
6767
6868 let G = "_share_tokens_locked"
6969
7070 let H = "axlyPool"
7171
7272 let I = "share_asset_id"
7373
7474 let J = "price_oracle"
7575
7676 let K = "mainContract"
7777
7878 let L = "tokenomicContract"
7979
8080 let M = "swopfi_farming_addr"
8181
8282 let N = "lend_service_addr"
8383
8484 let O = "group1_admin1_pub_key"
8585
8686 let P = "group1_admin2_pub_key"
8787
8888 let Q = "group1_admin3_pub_key"
8989
9090 let R = "admin_call_pub_key"
9191
9292 let S = valueOrErrorMessage(getString(this, H), "Can't get axlyPool key")
9393
9494 let T = addressFromStringValue(valueOrErrorMessage(getString(this, K), "Can't get mainContact key"))
9595
9696 let U = addressFromStringValue(valueOrErrorMessage(getString(this, L), "Can't get tokenomicContract key"))
9797
9898 let V = addressFromStringValue(valueOrErrorMessage(getString(T, N), "Can't get lend_service_addr key"))
9999
100100 let W = addressFromStringValue(valueOrErrorMessage(getString(T, M), "Can't get swopfi_farming_addr key"))
101101
102102 let X = addressFromStringValue(valueOrErrorMessage(getString(T, J), "Can't get price_oracle key"))
103103
104104 let Y = fromBase58String(valueOrErrorMessage(getString(T, O), "Can't get admin1PK"))
105105
106106 let Z = fromBase58String(valueOrErrorMessage(getString(T, P), "Can't get admin2PK"))
107107
108108 let aa = fromBase58String(valueOrErrorMessage(getString(T, Q), "Can't get operatorPK"))
109109
110110 let ab = fromBase58String(valueOrErrorMessage(getString(this, R), "Can't get operatorPK"))
111111
112112 let ac = valueOrErrorMessage(getString(U, B), "Can't get Axly token id")
113113
114114 let ad = getIntegerValue(this, h)
115115
116116 let ae = getIntegerValue(this, i)
117117
118118 let af = ((height - ad) / ae)
119119
120120 let ag = getIntegerValue(U, j)
121121
122122 let ah = (ag / d)
123123
124124 let ai = getIntegerValue(U, k)
125125
126126 let aj = (ai / g)
127127
128128 let ak = split(getStringValue(this, l), ",")
129129
130130 func al (am) = if (containsElement([Y, Z, aa], am.callerPublicKey))
131131 then unit
132132 else throw("Only admin group1 can call this function")
133133
134134
135135 func an (am) = if ((am.caller == this))
136136 then unit
137137 else throw("Only contract itself can call this function")
138138
139139
140140 func ao (am) = if ((am.callerPublicKey == ab))
141141 then unit
142142 else throw("Only operator can call this function")
143143
144144
145145 func ap (am) = if ((am.caller == V))
146146 then unit
147147 else throw("Only land contract can call this function")
148148
149149
150150 func aq (am) = if ((am.caller == W))
151151 then unit
152152 else throw("Only land contract can call this function")
153153
154154
155155 func ar (as) = getIntegerValue(X, (as + z))
156156
157157
158158 func at (as) = if ((as == "WAVES"))
159159 then 8
160160 else {
161161 let au = assetInfo(fromBase58String(as))
162162 if ($isInstanceOf(au, "Asset"))
163163 then {
164164 let av = au
165165 av.decimals
166166 }
167167 else throw("Can't find asset")
168168 }
169169
170170
171171 func aw (as) = pow(10, 0, at(as), 0, 0, DOWN)
172172
173173
174174 func ax (ay,az,aA) = {
175175 func aB (aC,aD) = {
176176 let aE = aC
177177 let aF = aE._1
178178 let aG = aE._2
179179 let aH = split(aD, "-")
180180 let aI = $Tuple2(parseIntValue(aH[0]), parseIntValue(aH[1]))
181181 let aJ = aI._1
182182 let aK = aI._2
183183 if (aG)
184184 then aC
185185 else if (if ((ay >= aJ))
186186 then (aK >= ay)
187187 else false)
188188 then $Tuple2(aF, true)
189189 else $Tuple2((aF + 1), false)
190190 }
191191
192192 let aL = {
193193 let aM = c
194194 let aN = size(aM)
195195 let aO = $Tuple2(0, false)
196196 func aP (aQ,aR) = if ((aR >= aN))
197197 then aQ
198198 else aB(aQ, aM[aR])
199199
200200 func aS (aQ,aR) = if ((aR >= aN))
201201 then aQ
202202 else throw("List size exceeds 9")
203203
204204 aS(aP(aP(aP(aP(aP(aP(aP(aP(aP(aO, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
205205 }
206206 let aF = aL._1
207207 let aG = aL._2
208208 if (aG)
209209 then fraction((b[aF] * a), 7, 365)
210210 else 0
211211 }
212212
213213
214214 func aT () = {
215215 func aB (aC,aU) = {
216216 let aV = aC
217217 let aW = aV._1
218218 let aX = aV._2
219219 let aY = aV._3
220220 let aZ = valueOrElse(getInteger(V, (C + aU)), 0)
221221 let ba = ar(aU)
222222 let bb = aw(aU)
223223 let bc = fraction(aZ, ba, bb)
224224 $Tuple3((aW :+ aZ), (aX :+ bc), (aY + bc))
225225 }
226226
227227 let aM = ak
228228 let aN = size(aM)
229229 let aO = $Tuple3(nil, nil, 0)
230230 func aP (aQ,aR) = if ((aR >= aN))
231231 then aQ
232232 else aB(aQ, aM[aR])
233233
234234 func aS (aQ,aR) = if ((aR >= aN))
235235 then aQ
236236 else throw("List size exceeds 30")
237237
238238 aS(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aO, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
239239 }
240240
241241
242242 func bd (aU) = {
243243 let aZ = valueOrElse(getInteger(V, (C + aU)), 0)
244244 let ba = ar(aU)
245245 let bb = aw(aU)
246246 fraction(aZ, ba, bb)
247247 }
248248
249249
250250 func be (aU,aW) = if ((height >= ad))
251251 then 0
252252 else {
253253 let bf = getIntegerValue(this, (aU + p))
254254 let bg = getIntegerValue(this, (aU + n))
255255 let bh = getIntegerValue(this, (aU + o))
256256 let bi = ((height - bh) * bf)
257257 let bj = if ((aW > 0))
258258 then fraction(bi, a, aW)
259259 else 0
260260 (bg + bj)
261261 }
262262
263263
264264 func bk (aW) = if ((height >= ad))
265265 then 0
266266 else {
267267 let bf = getIntegerValue(this, x)
268268 let bg = getIntegerValue(this, u)
269269 let bh = getIntegerValue(this, v)
270270 let bi = ((height - bh) * bf)
271271 let bj = if ((aW > 0))
272272 then fraction(bi, a, aW)
273273 else 0
274274 (bg + bj)
275275 }
276276
277277
278278 func bl (bm,aU) = {
279279 let aW = valueOrElse(getInteger(V, (C + aU)), 0)
280280 let bn = be(aU, aW)
281281 let bo = valueOrElse(getInteger(V, ((bm + D) + aU)), 0)
282282 let bp = valueOrElse(getInteger(this, (((aU + "_") + bm) + r)), if ((bo == 0))
283283 then bn
284284 else 0)
285285 let bi = fraction(bo, (bn - bp), a)
286286 $Tuple3(bi, bn, bo)
287287 }
288288
289289
290290 func bq (bm) = {
291291 let aW = valueOrElse(getInteger(W, (S + F)), 0)
292292 let bn = bk(aW)
293293 let bo = valueOrElse(getInteger(V, (((S + "_") + bm) + G)), 0)
294294 let bp = valueOrElse(getInteger(this, (bm + y)), if ((bo == 0))
295295 then bn
296296 else 0)
297297 let bi = fraction(bo, (bn - bp), a)
298298 $Tuple3(bi, bn, bo)
299299 }
300300
301301
302302 func br (bm,bs) = {
303303 func bt (aC,aU) = {
304304 let bu = aC
305305 let bv = bu._1
306306 let bw = bu._2
307307 let bx = bu._3
308308 let by = bu._4
309309 let bz = valueOrElse(getInteger(this, (((aU + "_") + bm) + s)), 0)
310310 let bA = bl(bm, aU)
311311 let bB = bA._1
312312 let bC = bA._2
313313 let bo = bA._3
314314 let bD = (bz + bB)
315315 if (if ((bD > 0))
316316 then true
317317 else (bo > 0))
318318 then {
319319 let bE = if (if (bs)
320320 then true
321321 else (bD == 0))
322322 then by
323323 else (by ++ [IntegerEntry((((aU + "_") + bm) + r), bC), IntegerEntry((((aU + "_") + bm) + s), 0), IntegerEntry((aU + n), bC), IntegerEntry((aU + o), height)])
324324 $Tuple4((bv :+ aU), (bw :+ bD), (bx + bD), bE)
325325 }
326326 else $Tuple4(bv, bw, bx, by)
327327 }
328328
329329 let aM = ak
330330 let aN = size(aM)
331331 let aO = $Tuple4(nil, nil, 0, nil)
332332 func aP (aQ,aR) = if ((aR >= aN))
333333 then aQ
334334 else bt(aQ, aM[aR])
335335
336336 func aS (aQ,aR) = if ((aR >= aN))
337337 then aQ
338338 else throw("List size exceeds 30")
339339
340340 aS(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aO, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
341341 }
342342
343343
344344 func bF (bm,bs) = {
345345 let bz = valueOrElse(getInteger(this, (bm + t)), 0)
346346 let bG = bq(bm)
347347 let bB = bG._1
348348 let bH = bG._2
349349 let bo = bG._3
350350 let bD = (bz + bB)
351351 if (if (bs)
352352 then true
353353 else (bD == 0))
354354 then $Tuple2(bD, nil)
355355 else $Tuple2(bD, [IntegerEntry((bm + y), bH), IntegerEntry((bm + t), 0), IntegerEntry(u, bH), IntegerEntry(v, height)])
356356 }
357357
358358
359359 func bI () = {
360360 let bJ = ar(ac)
361361 let bK = aw(ac)
362362 func bL (aA,aU) = {
363363 let bM = valueOrElse(getInteger(this, (aU + p)), 0)
364364 let bN = fraction(bM, bJ, bK)
365365 let bO = ((bN * ae) * 52)
366366 let aX = bd(aU)
367367 (aA :+ fraction(bO, a, aX))
368368 }
369369
370370 let bP = {
371371 let aM = ak
372372 let aN = size(aM)
373373 let aO = nil
374374 func aP (aQ,aR) = if ((aR >= aN))
375375 then aQ
376376 else bL(aQ, aM[aR])
377377
378378 func aS (aQ,aR) = if ((aR >= aN))
379379 then aQ
380380 else throw("List size exceeds 30")
381381
382382 aS(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aO, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
383383 }
384384 let bQ = getIntegerValue(W, (S + F))
385385 let bR = getStringValue(addressFromStringValue(S), I)
386386 let bS = aw(bR)
387387 let bT = {
388388 let bU = ({
389389 let bU = invoke(T, "getShareAssetPriceREADONLY", [[bR]], nil)
390390 if ($isInstanceOf(bU, "List[Any]"))
391391 then bU
392392 else throw(($getType(bU) + " couldn't be cast to List[Any]"))
393393 })[0]
394394 if ($isInstanceOf(bU, "Int"))
395395 then bU
396396 else throw(($getType(bU) + " couldn't be cast to Int"))
397397 }
398398 let bV = fraction(bQ, bT, bS)
399399 let bM = valueOrElse(getInteger(this, x), 0)
400400 let bN = fraction(bM, bJ, bK)
401401 let bO = ((bN * ae) * 52)
402402 let bW = fraction(bO, a, bV)
403403 $Tuple3(ak, bP, bW)
404404 }
405405
406406
407407 @Callable(am)
408408 func claimLenderRewards () = {
409409 let bX = br(toString(am.caller), false)
410410 if ((bX._3 == 0))
411411 then throw("claim amount must be greater than 0")
412412 else {
413413 let bY = invoke(U, "withdrawLendReward", [bX._3, toString(am.caller)], nil)
414414 if ((bY == bY))
415415 then bX._4
416416 else throw("Strict value is not equal to itself.")
417417 }
418418 }
419419
420420
421421
422422 @Callable(am)
423423 func claimLpRewards () = {
424424 let bX = bF(toString(am.caller), false)
425425 if ((bX._1 == 0))
426426 then throw("claim amount must be greater than 0")
427427 else {
428428 let bY = invoke(U, "withdrawLpReward", [bX._1, toString(am.caller)], nil)
429429 if ((bY == bY))
430430 then bX._2
431431 else throw("Strict value is not equal to itself.")
432432 }
433433 }
434434
435435
436436
437437 @Callable(am)
438438 func lendAction (bm,aU) = valueOrElse(ap(am), {
439439 let bz = valueOrElse(getInteger(this, (aU + s)), 0)
440440 let bZ = bl(bm, aU)
441441 let bB = bZ._1
442442 let bC = bZ._2
443443 [IntegerEntry((((bm + "_") + aU) + r), bC), IntegerEntry((((bm + "_") + aU) + s), (bz + bB)), IntegerEntry((aU + n), bC), IntegerEntry((aU + o), height)]
444444 })
445445
446446
447447
448448 @Callable(am)
449449 func lpAction (bm) = valueOrElse(aq(am), {
450450 let bz = valueOrElse(getInteger(this, t), 0)
451451 let ca = bq(bm)
452452 let bB = ca._1
453453 let bH = ca._2
454454 [IntegerEntry((bm + y), bH), IntegerEntry((bm + t), (bz + bB)), IntegerEntry((bm + u), bH), IntegerEntry((bm + v), height)]
455455 })
456456
457457
458458
459459 @Callable(am)
460460 func init (cb,cc,cd,ce,ae) = valueOrElse(an(am), if (!(isDefined(addressFromString(cb))))
461461 then throw("Wrong farming address")
462462 else if (!(isDefined(addressFromString(cc))))
463463 then throw("Wrong main contract address")
464- else [StringEntry(K, cb), StringEntry(L, cc), StringEntry(H, cd), IntegerEntry(h, ce), StringEntry(l, "")])
464+ else [StringEntry(K, cb), StringEntry(L, cc), StringEntry(H, cd), IntegerEntry(h, ce), IntegerEntry(i, ae), StringEntry(l, "")])
465465
466466
467467
468468 @Callable(am)
469469 func initNewToken (aU) = valueOrElse(al(am), if (isDefined(getInteger(this, (aU + n))))
470470 then throw("token already inited")
471- else if (!(contains(getStringValue(this, E), aU)))
471+ else if (!(contains(getStringValue(V, E), aU)))
472472 then throw("no token on landing")
473473 else [IntegerEntry((aU + n), 0), IntegerEntry((aU + o), height), StringEntry(l, makeString((ak :+ aU), ",")), IntegerEntry(p, 0)])
474474
475475
476476
477477 @Callable(am)
478478 func updateRewards () = valueOrElse(ao(am), {
479479 let cf = valueOrElse(getInteger(this, q), 0)
480480 if (((cf + ae) > height))
481481 then throw("rewards alredy updated in this period")
482482 else {
483483 let cg = aT()
484484 let aW = cg._1
485485 let aX = cg._2
486486 let aY = cg._3
487487 let bJ = ar(ac)
488488 let bK = aw(ac)
489489 let ch = ax(af, c, b)
490490 func ci (aC,aU) = {
491491 let cj = aC
492492 let by = cj._1
493493 let aF = cj._2
494494 if ((aW[aF] == 0))
495495 then $Tuple2((by ++ [IntegerEntry((aU + p), 0), IntegerEntry((aU + n), be(aU, aW[aF])), IntegerEntry((aU + o), height)]), (aF + 1))
496496 else {
497497 let ck = fraction(aX[aF], a, aY)
498498 let cl = fraction(ck, ah, a)
499499 let cm = fraction(cl, bJ, bK)
500500 let cn = valueOrElse(getInteger(this, A), 0)
501501 let co = if (if ((cn == 0))
502502 then true
503503 else (aW[aF] == 0))
504504 then 0
505505 else fraction(cn, a, aW[aF])
506506 let bi = (min([(ch * (a + co)), fraction(ch, (15 * a), 10)]) / a)
507507 let cp = min([cm, fraction(aX[aF], bi, a)])
508508 let cq = fraction(cp, bJ, bK)
509509 let bf = (cq / ae)
510510 $Tuple2((by ++ [IntegerEntry((aU + A), aW[aF]), IntegerEntry((aU + p), bf), IntegerEntry((aU + n), be(aU, aW[aF])), IntegerEntry((aU + o), height)]), (aF + 1))
511511 }
512512 }
513513
514514 let cr = {
515515 let aM = ak
516516 let aN = size(aM)
517517 let aO = $Tuple2(nil, 0)
518518 func aP (aQ,aR) = if ((aR >= aN))
519519 then aQ
520520 else ci(aQ, aM[aR])
521521
522522 func aS (aQ,aR) = if ((aR >= aN))
523523 then aQ
524524 else throw("List size exceeds 30")
525525
526526 aS(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aP(aO, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
527527 }
528528 let cs = cr._1
529529 let aF = cr._2
530530 let ct = ax(af, f, e)
531531 let bQ = getIntegerValue(W, (S + F))
532532 let cu = valueOrElse(getInteger(this, w), 0)
533533 let bR = getStringValue(addressFromStringValue(S), I)
534534 let bS = aw(bR)
535535 let bT = {
536536 let bU = ({
537537 let bU = invoke(T, "getShareAssetPriceREADONLY", [[bR]], nil)
538538 if ($isInstanceOf(bU, "List[Any]"))
539539 then bU
540540 else throw(($getType(bU) + " couldn't be cast to List[Any]"))
541541 })[0]
542542 if ($isInstanceOf(bU, "Int"))
543543 then bU
544544 else throw(($getType(bU) + " couldn't be cast to Int"))
545545 }
546546 let bV = fraction(bQ, bT, bS)
547547 let cv = fraction(aj, bJ, bK)
548548 let cw = if (if ((cu == 0))
549549 then true
550550 else (bQ == 0))
551551 then 0
552552 else fraction(cu, a, bQ)
553553 let cx = (min([(ct * (a + cw)), fraction(ct, (15 * a), 10)]) / a)
554554 let cy = min([cv, fraction(bV, cx, a)])
555555 let cz = fraction(cy, bJ, bK)
556556 let cA = (cz / ae)
557557 let cB = [IntegerEntry(w, bQ), IntegerEntry(x, cA), IntegerEntry(u, bk(bQ)), IntegerEntry(v, height)]
558558 ((cB ++ cs) :+ IntegerEntry(q, height))
559559 }
560560 })
561561
562562
563563 @Verifier(cC)
564564 func cD () = {
565565 let cE = {
566566 let cF = if (sigVerify(cC.bodyBytes, cC.proofs[0], Y))
567567 then 1
568568 else 0
569569 let cG = if (sigVerify(cC.bodyBytes, cC.proofs[1], Z))
570570 then 1
571571 else 0
572572 let cH = if (sigVerify(cC.bodyBytes, cC.proofs[2], aa))
573573 then 1
574574 else 0
575575 (((cF + cG) + cH) >= 2)
576576 }
577577 let au = cC
578578 if ($isInstanceOf(au, "InvokeScriptTransaction"))
579579 then {
580580 let bY = au
581581 let cI = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
582582 let cJ = if ((bY.fee == 900000))
583583 then (bY.feeAssetId == unit)
584584 else false
585585 let cK = (bY.function == "init")
586586 let cL = (size(bY.payments) == 0)
587587 if (if (if (if (cJ)
588588 then cK
589589 else false)
590590 then cI
591591 else false)
592592 then cL
593593 else false)
594594 then true
595595 else cE
596596 }
597597 else cE
598598 }
599599

github/deemru/w8io/026f985 
58.41 ms