tx · 4sXod3A78sxQ8rhLLPDDQdPe2ds52rschzzU4MYvMENW

3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h:  -0.02700000 Waves

2024.10.22 09:27 [3337671] smart account 3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h > SELF 0.00000000 Waves

{ "type": 13, "id": "4sXod3A78sxQ8rhLLPDDQdPe2ds52rschzzU4MYvMENW", "fee": 2700000, "feeAssetId": null, "timestamp": 1729578490700, "version": 1, "sender": "3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h", "senderPublicKey": "3z8Q6Zu3KppVmn6fJJvrLc1Wo3krVHSvfaNcerm82md2", "proofs": [ "5fKBr3T3QYdNZiAzpFoaycQDHeEbPWBE5pjxa6XeMHvNeSYqH9HP5bepkiPRNdbq748KSMdphVdXXW47z8nrHHs9" ], "script": "base64:BgJQCAISAwoBARIAEgMKAQQSAwoBBBIDCgEIEgQKAggIEgMKAQgSBAoCCAgSAwoBCBIECgIIARIECgIIARIDCgEBEgASAwoBCBIDCgEBEgMKAQhPAAxjb250cmFjdEZpbGUCEWwybXBfbGVhc2luZy5yaWRlAANTRVACAl9fABJCTE9DS1NfSU5fSU5URVJWQUwA6AcABnNjYWxlOACAwtcvAAdzY2FsZTE2CQBoAgUGc2NhbGU4BQZzY2FsZTgBCHRocm93RXJyAQNtc2cJAAIBCQCsAgIJAKwCAgUMY29udHJhY3RGaWxlAgI6IAUDbXNnAAxrZXlMMkFzc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAgdhc3NldElkBQNuaWwFA1NFUAAMa2V5Rm9yY2VTdG9wCQC5CQIJAMwIAgICJXMJAMwIAgIJZm9yY2VTdG9wBQNuaWwFA1NFUAAPa2V5Rm9yY2VPdXRTdG9wCQC5CQIJAMwIAgICJXMJAMwIAgIMZm9yY2VPdXRTdG9wBQNuaWwFA1NFUAAPa2V5VW5pdHNBc3NldElkCQC5CQIJAMwIAgICJXMJAMwIAgIMdW5pdHNBc3NldElkBQNuaWwFA1NFUAAXa2V5VW5pdHNQZXJCbG9ja1NjYWxlMTYJALkJAgkAzAgCAgIlcwkAzAgCAhR1bml0c1BlckJsb2NrU2NhbGUxNgUDbmlsBQNTRVAAEWtleVBlcmlvZE9mZnNldElkCQC5CQIJAMwIAgICJXMJAMwIAgIIb2Zmc2V0SWQFA25pbAUDU0VQABVrZXlQZXJpb2RPZmZzZXRIZWlnaHQJALkJAgkAzAgCAgIlcwkAzAgCAgxvZmZzZXRIZWlnaHQFA25pbAUDU0VQAA9rZXlQZXJpb2RMZW5ndGgJALkJAgkAzAgCAgIlcwkAzAgCAgxwZXJpb2RMZW5ndGgFA25pbAUDU0VQABhrZXlVbml0c0NsYWltU3RhcnRIZWlnaHQJALkJAgkAzAgCAgIlcwkAzAgCAhV1bml0c0NsYWltU3RhcnRIZWlnaHQFA25pbAUDU0VQABVrZXlVbml0c0NsYWltSW50ZXJ2YWwJALkJAgkAzAgCAgIlcwkAzAgCAhJ1bml0c0NsYWltSW50ZXJ2YWwFA25pbAUDU0VQAA5wZXJpb2RPZmZzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRFrZXlQZXJpb2RPZmZzZXRJZAAAAAxwZXJpb2RMZW5ndGgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa2V5UGVyaW9kTGVuZ3RoAJBOABJwZXJpb2RPZmZzZXRIZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUVa2V5UGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEAD2N1cnJlbnRQZXJpb2RJZAMDCQBmAgUGaGVpZ2h0BRJwZXJpb2RPZmZzZXRIZWlnaHQJAQIhPQIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BBwkAZAIJAGkCCQBlAgUGaGVpZ2h0BRJwZXJpb2RPZmZzZXRIZWlnaHQFDHBlcmlvZExlbmd0aAUOcGVyaW9kT2Zmc2V0SWQJAJYDAQkAzAgCAAAJAMwIAgkAZQIFDnBlcmlvZE9mZnNldElkAAEFA25pbAATY3VycmVudFBlcmlvZEhlaWdodAMDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEGAwkAAAIFD2N1cnJlbnRQZXJpb2RJZAAACQBmAgUScGVyaW9kT2Zmc2V0SGVpZ2h0BQZoZWlnaHQHAAAJAGQCBRJwZXJpb2RPZmZzZXRIZWlnaHQJAGgCCQBlAgUPY3VycmVudFBlcmlvZElkBQ5wZXJpb2RPZmZzZXRJZAUMcGVyaW9kTGVuZ3RoABBuZXh0UGVyaW9kSGVpZ2h0AwMJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQYDCQAAAgUPY3VycmVudFBlcmlvZElkAAAJAGYCBRJwZXJpb2RPZmZzZXRIZWlnaHQFBmhlaWdodAcAAAkAZAIFE2N1cnJlbnRQZXJpb2RIZWlnaHQFDHBlcmlvZExlbmd0aAAVdW5pdHNDbGFpbVN0YXJ0SGVpZ2h0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGGtleVVuaXRzQ2xhaW1TdGFydEhlaWdodAUGaGVpZ2h0ABJ1bml0c0NsYWltSW50ZXJ2YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUVa2V5VW5pdHNDbGFpbUludGVydmFsAAABEmtleUxlYXNpbmdOb2RlRGF0YQELbm9kZUFkZHJlc3MJALkJAgkAzAgCAgIlcwkAzAgCBQtub2RlQWRkcmVzcwUDbmlsBQNTRVABFmtleVVzZXJMZWFzaW5nTm9kZURhdGECC3VzZXJBZGRyZXNzC25vZGVBZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCBQtub2RlQWRkcmVzcwkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABDmtleVVzZXJUb0NsYWltAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIHdG9DbGFpbQkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABEmtleVVzZXJUb3RhbExvY2tlZAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICD3VzZXJUb3RhbExvY2tlZAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABFGtleVVuaXRzQ2xhaW1lZEJsb2NrAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIRdW5pdHNDbGFpbWVkQmxvY2sJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARBrZXlVbmxvY2tlZFVuaXRzAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgINdW5sb2NrZWRVbml0cwkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABFGtleVRvdGFsVW5pdHNDbGFpbWVkAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIRdG90YWxVbml0c0NsYWltZWQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQAQtrZXlMMlRvQnVybgELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICCGwyVG9CdXJuCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEQa2V5TDJCdXJuZWRUb3RhbAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICDWwyQnVybmVkVG90YWwJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQtub2RlQWRkcmVzcwQBaAMJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQAABQZoZWlnaHQJALkJAgkAzAgCAgQlcyVkCQDMCAIFC25vZGVBZGRyZXNzCQDMCAIJAKQDAQUBaAUDbmlsBQNTRVABFmtleVVzZXJMZWFzaW5nQnlIZWlnaHQCC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzBAFoAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BAAAFBmhlaWdodAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCBQtub2RlQWRkcmVzcwkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQCkAwEFAWgFA25pbAUDU0VQARJhc3NldFN0cmluZ1RvQnl0ZXMBDWFzc2V0SWRTdHJpbmcDCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMFBHVuaXQJANkEAQUNYXNzZXRJZFN0cmluZwESYXNzZXRCeXRlc1RvU3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWEFByRtYXRjaDAJANgEAQUBYQIFV0FWRVMAD2wyQXNzZXRJZFN0cmluZwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQxrZXlMMkFzc2V0SWQCBVdBVkVTABJ1bml0c0Fzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUPa2V5VW5pdHNBc3NldElkAgVXQVZFUwAObDJBc3NldElkQnl0ZXMJARJhc3NldFN0cmluZ1RvQnl0ZXMBBQ9sMkFzc2V0SWRTdHJpbmcAEXVuaXRzQXNzZXRJZEJ5dGVzCQESYXNzZXRTdHJpbmdUb0J5dGVzAQUSdW5pdHNBc3NldElkU3RyaW5nAAtpc0ZvcmNlU3RvcAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQxrZXlGb3JjZVN0b3AHAA5pc0ZvcmNlT3V0U3RvcAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ9rZXlGb3JjZU91dFN0b3AHAQ5pc1ZhbGlkQWRkcmVzcwEHYWRkcmVzcwQHJG1hdGNoMAkApggBBQdhZGRyZXNzAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGBwAPQURNSU5fTElTVF9TSVpFAAUABlFVT1JVTQADABFUWElEX0JZVEVTX0xFTkdUSAAgARhrZXlBbGxvd2VkVHhJZFZvdGVQcmVmaXgBBHR4SWQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIJYWxsb3dUeElkCQDMCAIFBHR4SWQFA25pbAUDU0VQARBrZXlGdWxsQWRtaW5Wb3RlAgZwcmVmaXgMYWRtaW5BZGRyZXNzCQC5CQIJAMwIAgUGcHJlZml4CQDMCAIFDGFkbWluQWRkcmVzcwUDbmlsBQNTRVABE2tleUFkbWluQWRkcmVzc0xpc3QACQC5CQIJAMwIAgICJXMJAMwIAgIQYWRtaW5BZGRyZXNzTGlzdAUDbmlsBQNTRVABDmtleUFsbG93ZWRUeElkAAkAuQkCCQDMCAICAiVzCQDMCAICBHR4SWQFA25pbAUDU0VQAQxnZXRBZG1pblZvdGUCBnByZWZpeAVhZG1pbgQHdm90ZUtleQkBEGtleUZ1bGxBZG1pblZvdGUCBQZwcmVmaXgFBWFkbWluCQELdmFsdWVPckVsc2UCCQCfCAEFB3ZvdGVLZXkAAAENZ2V0QWRtaW5zTGlzdAAEByRtYXRjaDAJAJ0IAgUEdGhpcwkBE2tleUFkbWluQWRkcmVzc0xpc3QAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkAtQkCBQFzBQNTRVAFA25pbAENaXNJbkFkbWluTGlzdAEHYWRkcmVzcwkBD2NvbnRhaW5zRWxlbWVudAIJAQ1nZXRBZG1pbnNMaXN0AAUHYWRkcmVzcwESZ2VuVm90ZXNLZXlzSGVscGVyAgFhDGFkbWluQWRkcmVzcwQLJHQwNTE4NTUyMDkFAWEEBnJlc3VsdAgFCyR0MDUxODU1MjA5Al8xBAZwcmVmaXgIBQskdDA1MTg1NTIwOQJfMgkAlAoCCQDNCAIFBnJlc3VsdAkBEGtleUZ1bGxBZG1pblZvdGUCBQZwcmVmaXgFDGFkbWluQWRkcmVzcwUGcHJlZml4AQxnZW5Wb3Rlc0tleXMBCWtleVByZWZpeAQJYWRtaW5MaXN0CQETa2V5QWRtaW5BZGRyZXNzTGlzdAAECyR0MDUzNTY1NDQwCgACJGwJAQ1nZXRBZG1pbnNMaXN0AAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsBQlrZXlQcmVmaXgKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEmdlblZvdGVzS2V5c0hlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUEBnJlc3VsdAgFCyR0MDUzNTY1NDQwAl8xBAZwcmVmaXgIBQskdDA1MzU2NTQ0MAJfMgUGcmVzdWx0ARBjb3VudFZvdGVzSGVscGVyAgZyZXN1bHQHdm90ZUtleQkAZAIFBnJlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd2b3RlS2V5AAABCmNvdW50Vm90ZXMBBnByZWZpeAQFdm90ZXMJAQxnZW5Wb3Rlc0tleXMBBQZwcmVmaXgKAAIkbAUFdm90ZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNvdW50Vm90ZXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFARBjbGVhclZvdGVzSGVscGVyAgZyZXN1bHQDa2V5CQDNCAIFBnJlc3VsdAkBC0RlbGV0ZUVudHJ5AQUDa2V5ARNnZXRDbGVhclZvdGVFbnRyaWVzAQZwcmVmaXgEBXZvdGVzCQEMZ2VuVm90ZXNLZXlzAQUGcHJlZml4CgACJGwFBXZvdGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARBjbGVhclZvdGVzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQEMdm90ZUlOVEVSTkFMBBNjYWxsZXJBZGRyZXNzU3RyaW5nCWtleVByZWZpeAhtaW5Wb3Rlcwp2b3RlUmVzdWx0BAd2b3RlS2V5CQEQa2V5RnVsbEFkbWluVm90ZQIFCWtleVByZWZpeAUTY2FsbGVyQWRkcmVzc1N0cmluZwQQYWRtaW5DdXJyZW50Vm90ZQkBDGdldEFkbWluVm90ZQIFCWtleVByZWZpeAUTY2FsbGVyQWRkcmVzc1N0cmluZwQDZXJyAwkBASEBCQENaXNJbkFkbWluTGlzdAEFE2NhbGxlckFkZHJlc3NTdHJpbmcJAQh0aHJvd0VycgEJAKwCAgkArAICAglBZGRyZXNzOiAFE2NhbGxlckFkZHJlc3NTdHJpbmcCEiBub3QgaW4gQWRtaW4gbGlzdAMJAAACBRBhZG1pbkN1cnJlbnRWb3RlAAEJAQh0aHJvd0VycgEJAKwCAgUHdm90ZUtleQISIHlvdSBhbHJlYWR5IHZvdGVkBQR1bml0AwkAAAIFA2VycgUDZXJyBAV2b3RlcwkBCmNvdW50Vm90ZXMBBQlrZXlQcmVmaXgDCQBnAgkAZAIFBXZvdGVzAAEFCG1pblZvdGVzBBBjbGVhclZvdGVFbnRyaWVzCQETZ2V0Q2xlYXJWb3RlRW50cmllcwEFCWtleVByZWZpeAkAzggCBRBjbGVhclZvdGVFbnRyaWVzBQp2b3RlUmVzdWx0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQd2b3RlS2V5AAEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgETZ2V0TGVhc2luZ05vZGVFbnRyeQMLbm9kZUFkZHJlc3MNY3VycmVudExlYXNlZApuZXh0TGVhc2VkBAt2YWx1ZVN0cmluZwkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUTY3VycmVudFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFDWN1cnJlbnRMZWFzZWQJAMwIAgkApAMBBRBuZXh0UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUKbmV4dExlYXNlZAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIJARJrZXlMZWFzaW5nTm9kZURhdGEBBQtub2RlQWRkcmVzcwULdmFsdWVTdHJpbmcBEmdldExlYXNpbmdOb2RlRGF0YQELbm9kZUFkZHJlc3MEGGxlYXNpbmdOb2RlRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQESa2V5TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEByRtYXRjaDAFGGxlYXNpbmdOb2RlRGF0YVN0cmluZ1JhdwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAmRzBQckbWF0Y2gwBAhkYXRhTGlzdAkAtQkCBQJkcwUDU0VQBBFub2RlQ3VycmVudFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAEEEW5vZGVDdXJyZW50TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAgQObm9kZU5leHRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAADBA5ub2RlTmV4dExlYXNlZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAQDAwkAZgIFDm5vZGVOZXh0UGVyaW9kBQZoZWlnaHQGCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEJAJQKAgURbm9kZUN1cnJlbnRMZWFzZWQFDm5vZGVOZXh0TGVhc2VkCQCUCgIFDm5vZGVOZXh0TGVhc2VkBQ5ub2RlTmV4dExlYXNlZAkAlAoCAAAAAAETZ2V0VXNlckxlYXNpbmdFbnRyeQQLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MRdXNlckN1cnJlbnRMZWFzZWQOdXNlck5leHRMZWFzZWQEC3ZhbHVlU3RyaW5nCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBRNjdXJyZW50UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQURdXNlckN1cnJlbnRMZWFzZWQJAMwIAgkApAMBBRBuZXh0UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUOdXNlck5leHRMZWFzZWQFA25pbAUDU0VQCQELU3RyaW5nRW50cnkCCQEWa2V5VXNlckxlYXNpbmdOb2RlRGF0YQIFC3VzZXJBZGRyZXNzBQtub2RlQWRkcmVzcwULdmFsdWVTdHJpbmcBEmdldFVzZXJMZWFzaW5nRGF0YQILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MEGGxlYXNpbmdVc2VyRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQEWa2V5VXNlckxlYXNpbmdOb2RlRGF0YQIFC3VzZXJBZGRyZXNzBQtub2RlQWRkcmVzcwQHJG1hdGNoMAUYbGVhc2luZ1VzZXJEYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEEXVzZXJDdXJyZW50UGVyaW9kCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAQQRdXNlckN1cnJlbnRMZWFzZWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAACBA51c2VyTmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMEDnVzZXJOZXh0TGVhc2VkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMDCQBmAgUOdXNlck5leHRQZXJpb2QFBmhlaWdodAYJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQkAlAoCBRF1c2VyQ3VycmVudExlYXNlZAUOdXNlck5leHRMZWFzZWQJAJQKAgUOdXNlck5leHRMZWFzZWQFDnVzZXJOZXh0TGVhc2VkCQCUCgIAAAAAARNnZXRVc2VyVG9DbGFpbUVudHJ5Awt1c2VyQWRkcmVzcwd0b0NsYWltCHRvVW5sb2NrBAt2YWx1ZVN0cmluZwkAuQkCCQDMCAICCCVkJWQlZCVkCQDMCAIJAKQDAQUTY3VycmVudFBlcmlvZEhlaWdodAkAzAgCCQCkAwEFB3RvQ2xhaW0JAMwIAgkApAMBBRBuZXh0UGVyaW9kSGVpZ2h0CQDMCAIJAKQDAQUIdG9VbmxvY2sFA25pbAUDU0VQCQELU3RyaW5nRW50cnkCCQEOa2V5VXNlclRvQ2xhaW0BBQt1c2VyQWRkcmVzcwULdmFsdWVTdHJpbmcBFWdldFVzZXJUb0NsYWltQmFsYW5jZQELdXNlckFkZHJlc3MEGHVzZXJUb0NsYWltRGF0YVN0cmluZ1JhdwkAnQgCBQR0aGlzCQEOa2V5VXNlclRvQ2xhaW0BBQt1c2VyQWRkcmVzcwQHJG1hdGNoMAUYdXNlclRvQ2xhaW1EYXRhU3RyaW5nUmF3AwkAAQIFByRtYXRjaDACBlN0cmluZwQCZHMFByRtYXRjaDAECGRhdGFMaXN0CQC1CQIFAmRzBQNTRVAEDWN1cnJlbnRQZXJpb2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhkYXRhTGlzdAABBAd0b0NsYWltCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QAAgQKbmV4dFBlcmlvZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGRhdGFMaXN0AAMECHRvVW5sb2NrCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZGF0YUxpc3QABAMDCQBmAgUKbmV4dFBlcmlvZAUGaGVpZ2h0BgkAAAIFD2N1cnJlbnRQZXJpb2RJZAAACQCUCgIFB3RvQ2xhaW0FCHRvVW5sb2NrCQCUCgIJAGQCBQd0b0NsYWltBQh0b1VubG9jawAACQCUCgIAAAAAARdnZXRVc2VyVG90YWxMb2NrZWRFbnRyeQILdXNlckFkZHJlc3MPdXNlclRvdGFsTG9ja2VkCQEMSW50ZWdlckVudHJ5AgkBEmtleVVzZXJUb3RhbExvY2tlZAEFC3VzZXJBZGRyZXNzBQ91c2VyVG90YWxMb2NrZWQBEmdldFVzZXJUb3RhbExvY2tlZAELdXNlckFkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBEmtleVVzZXJUb3RhbExvY2tlZAEFC3VzZXJBZGRyZXNzAAABFWNhbGN1bGF0ZVVuaXRzVG9DbGFpbQELdXNlckFkZHJlc3MED2NsYWltZWRCbG9ja0tleQkBFGtleVVuaXRzQ2xhaW1lZEJsb2NrAQULdXNlckFkZHJlc3MEDGNsYWltZWRCbG9jawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9jbGFpbWVkQmxvY2tLZXkFFXVuaXRzQ2xhaW1TdGFydEhlaWdodAQUdW5pdHNQZXJCbG9ja1NjYWxlMTYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUXa2V5VW5pdHNQZXJCbG9ja1NjYWxlMTYAAAQMY3VycmVudEJsb2NrCQCXAwEJAMwIAgkAZAIFFXVuaXRzQ2xhaW1TdGFydEhlaWdodAUSdW5pdHNDbGFpbUludGVydmFsCQDMCAIFBmhlaWdodAUDbmlsBAxibG9ja3NQYXNzZWQJAGUCBQxjdXJyZW50QmxvY2sFDGNsYWltZWRCbG9jawQMYW1vdW50U3Rha2VkCQESZ2V0VXNlclRvdGFsTG9ja2VkAQULdXNlckFkZHJlc3MECGwyVG9CdXJuCQBrAwUMYW1vdW50U3Rha2VkBQxibG9ja3NQYXNzZWQFEnVuaXRzQ2xhaW1JbnRlcnZhbAQPdW5pdHNUb0NsYWltTm93CQBrAwUIbDJUb0J1cm4FFHVuaXRzUGVyQmxvY2tTY2FsZTE2BQdzY2FsZTE2CQCWCgQFD3VuaXRzVG9DbGFpbU5vdwUIbDJUb0J1cm4FDGN1cnJlbnRCbG9jawkAlQoDBQxibG9ja3NQYXNzZWQFFXVuaXRzQ2xhaW1TdGFydEhlaWdodAUSdW5pdHNDbGFpbUludGVydmFsARRnZXRVbmxvY2tVbml0c0FjdGlvbgELdXNlckFkZHJlc3MEDmtVbmxvY2tlZFVuaXRzCQEQa2V5VW5sb2NrZWRVbml0cwEFC3VzZXJBZGRyZXNzBA11bmxvY2tlZFVuaXRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDmtVbmxvY2tlZFVuaXRzAAAECWtMMlRvQnVybgkBC2tleUwyVG9CdXJuAQULdXNlckFkZHJlc3MECGwyVG9CdXJuCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCWtMMlRvQnVybgAABA0kdDAxMTQyMzExNTE0CQEVY2FsY3VsYXRlVW5pdHNUb0NsYWltAQULdXNlckFkZHJlc3MED3VuaXRzVG9DbGFpbU5vdwgFDSR0MDExNDIzMTE1MTQCXzEEC2wyVG9CdXJuTm93CAUNJHQwMTE0MjMxMTUxNAJfMgQMY3VycmVudEJsb2NrCAUNJHQwMTE0MjMxMTUxNAJfMwQEX3RtcAgFDSR0MDExNDIzMTE1MTQCXzQDCQBnAgAABQ91bml0c1RvQ2xhaW1Ob3cFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVVuaXRzQ2xhaW1lZEJsb2NrAQULdXNlckFkZHJlc3MFDGN1cnJlbnRCbG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa0wyVG9CdXJuCQBkAgUIbDJUb0J1cm4FC2wyVG9CdXJuTm93CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rVW5sb2NrZWRVbml0cwkAZAIFDXVubG9ja2VkVW5pdHMFD3VuaXRzVG9DbGFpbU5vdwUDbmlsARFnZXRVbnN0YWtlQWN0aW9ucwMLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MNdW5zdGFrZUFtb3VudAQNJHQwMTE5MDkxMTk4MgkBEmdldExlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBBFub2RlQ3VycmVudExlYXNlZAgFDSR0MDExOTA5MTE5ODICXzEEDm5vZGVOZXh0TGVhc2VkCAUNJHQwMTE5MDkxMTk4MgJfMgQNJHQwMTE5ODcxMjA3MwkBEmdldFVzZXJMZWFzaW5nRGF0YQIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwQRdXNlckN1cnJlbnRMZWFzZWQIBQ0kdDAxMTk4NzEyMDczAl8xBA51c2VyTmV4dExlYXNlZAgFDSR0MDExOTg3MTIwNzMCXzIEBmNoZWNrcwkAzAgCAwkBASEBBQtpc0ZvcmNlU3RvcAYJAQh0aHJvd0VycgECHWNvbnRyYWN0IGlzIHRlbXBvcmFyeSBzdG9wcGVkCQDMCAIDCQEBIQEFDmlzRm9yY2VPdXRTdG9wBgkBCHRocm93RXJyAQIddW5zdGFrZSBpcyB0ZW1wb3JhcnkgZGlzYWJsZWQJAMwIAgMJAGYCBQ11bnN0YWtlQW1vdW50AAAGCQEIdGhyb3dFcnIBAid1bnN0YWtlIGFtb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAJAMwIAgMJAGcCBQ51c2VyTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAYJAQh0aHJvd0VycgECOXVuc3Rha2UgYW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIHVzZXIgc3Rha2VkIGFtb3VudAkAzAgCAwkAZwIFDm5vZGVOZXh0TGVhc2VkBQ11bnN0YWtlQW1vdW50BgkBCHRocm93RXJyAQI5dW5zdGFrZSBhbW91bnQgc2hvdWxkIGJlIGxlc3Mgb3IgZXF1YWwgbm9kZSBzdGFrZWQgYW1vdW50CQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQtub2RlQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhpub2RlIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQtub2RlQWRkcmVzcwUDbmlsAgEgCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQt1c2VyQWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAhp1c2VyIGFkZHJlc3MgaXMgbm90IHZhbGlkOgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsAgEgBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEEG5ld05vZGVOZXh0TGVhc2UJAGUCBQ5ub2RlTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAQRbmV3VXNlck5leHRMZWFzZWQJAGUCBQ51c2VyTmV4dExlYXNlZAUNdW5zdGFrZUFtb3VudAQNJHQwMTI5NTcxMzAxNwkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTI5NTcxMzAxNwJfMQQIdG9VbmxvY2sIBQ0kdDAxMjk1NzEzMDE3Al8yBAtuZXdUb1VubG9jawkAZAIFCHRvVW5sb2NrBQ11bnN0YWtlQW1vdW50BA91c2VyVG90YWxMb2NrZWQJARJnZXRVc2VyVG90YWxMb2NrZWQBBQt1c2VyQWRkcmVzcwQSbmV3VXNlclRvdGFsTG9ja2VkCQBlAgUPdXNlclRvdGFsTG9ja2VkBQ11bnN0YWtlQW1vdW50BBR1bml0c1VubG9ja2VkQWN0aW9ucwkBFGdldFVubG9ja1VuaXRzQWN0aW9uAQULdXNlckFkZHJlc3MJAM4IAgkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFB3RvQ2xhaW0FC25ld1RvVW5sb2NrCQDMCAIJARdnZXRVc2VyVG90YWxMb2NrZWRFbnRyeQIFC3VzZXJBZGRyZXNzBRJuZXdVc2VyVG90YWxMb2NrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQULbm9kZUFkZHJlc3MFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlVc2VyTGVhc2luZ0J5SGVpZ2h0AgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRFuZXdVc2VyTmV4dExlYXNlZAUDbmlsBRR1bml0c1VubG9ja2VkQWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEXZ2V0Q2xhaW1VbmxvY2tlZEFjdGlvbnMCC3VzZXJBZGRyZXNzC2NsYWltQW1vdW50BA0kdDAxMzgzNjEzODk2CQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQ0kdDAxMzgzNjEzODk2Al8xBAh0b1VubG9jawgFDSR0MDEzODM2MTM4OTYCXzIEBmNoZWNrcwkAzAgCAwkBASEBBQtpc0ZvcmNlU3RvcAYJAQh0aHJvd0VycgECHWNvbnRyYWN0IGlzIHRlbXBvcmFyeSBzdG9wcGVkCQDMCAIDCQEBIQEFDmlzRm9yY2VPdXRTdG9wBgkBCHRocm93RXJyAQIbY2xhaW0gaXMgdGVtcG9yYXJ5IGRpc2FibGVkCQDMCAIDCQBmAgULY2xhaW1BbW91bnQAAAYJAQh0aHJvd0VycgECJWNsYWltIGFtb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAJAMwIAgMJAGcCBQd0b0NsYWltBQtjbGFpbUFtb3VudAYJAQh0aHJvd0VycgECNGNsYWltIGFtb3VudCBzaG91bGQgYmUgbGVzcyBvciBlcXVhbCB1bmxvY2tlZCBhbW91bnQJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQKbmV3VG9DbGFpbQkAZQIFB3RvQ2xhaW0FC2NsYWltQW1vdW50CQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFCm5ld1RvQ2xhaW0FCHRvVW5sb2NrCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3VzZXJBZGRyZXNzBQtjbGFpbUFtb3VudAUObDJBc3NldElkQnl0ZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgESZ2V0U3Rha2VGb3JBY3Rpb25zAgt1c2VyQWRkcmVzcwFpBA0kdDAxNDY2MjE0NzIyCQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQ0kdDAxNDY2MjE0NzIyAl8xBAh0b1VubG9jawgFDSR0MDE0NjYyMTQ3MjICXzIEBmNoZWNrcwkAzAgCAwkBASEBBQtpc0ZvcmNlU3RvcAYJAQh0aHJvd0VycgECHWNvbnRyYWN0IGlzIHRlbXBvcmFyeSBzdG9wcGVkCQDMCAIDCQBnAgABCQCQAwEIBQFpCHBheW1lbnRzBgkBCHRocm93RXJyAQIRbWF4aW11bSAxIHBheW1lbnQJAMwIAgMDCQAAAgkAkAMBCAUBaQhwYXltZW50cwAABgkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUObDJBc3NldElkQnl0ZXMGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIacGF5bWVudCBhc3NldElkIHNob3VsZCBiZToJAMwIAgUPbDJBc3NldElkU3RyaW5nBQNuaWwCASAJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQKbmV3VG9DbGFpbQkAZAIFB3RvQ2xhaW0ICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFCm5ld1RvQ2xhaW0FCHRvVW5sb2NrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BD2dldFN0YWtlQWN0aW9ucwQLbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MRdXNlckxlYXNpbmdBbW91bnQBaQQNJHQwMTU0NTQxNTUxNAkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMTU0NTQxNTUxNAJfMQQIdG9VbmxvY2sIBQ0kdDAxNTQ1NDE1NTE0Al8yBA1wYXltZW50QW1vdW50AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAAACAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQJYXZhaWxhYmxlCQBkAgkAZAIFCHRvVW5sb2NrBQd0b0NsYWltBQ1wYXltZW50QW1vdW50BAZjaGVja3MJAMwIAgMJAQEhAQULaXNGb3JjZVN0b3AGCQEIdGhyb3dFcnIBAh1jb250cmFjdCBpcyB0ZW1wb3Jhcnkgc3RvcHBlZAkAzAgCAwkAZwIAAQkAkAMBCAUBaQhwYXltZW50cwYJAQh0aHJvd0VycgECEW1heGltdW0gMSBwYXltZW50CQDMCAIDAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAYJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDmwyQXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnBheW1lbnQgYXNzZXRJZCBzaG91bGQgYmU6CQDMCAIFD2wyQXNzZXRJZFN0cmluZwUDbmlsAgEgCQDMCAIDCQBmAgURdXNlckxlYXNpbmdBbW91bnQAAAYJAQh0aHJvd0VycgECH2Ftb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAJAMwIAgMJAGcCBQlhdmFpbGFibGUFEXVzZXJMZWFzaW5nQW1vdW50BgkBCHRocm93RXJyAQI7YW1vdW50IHNob3VsZCBiZSBsZXNzIG9yIGVxdWFsIChwYXltZW50ICsgYXZhaWxhYmxlKSBhbW91bnQJAMwIAgMJAGcCBRF1c2VyTGVhc2luZ0Ftb3VudAUNcGF5bWVudEFtb3VudAYJAAIBAjBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgb3IgZXF1YWwgcGF5bWVudCBhbW91bnQJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC25vZGVBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGm5vZGUgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC25vZGVBZGRyZXNzBQNuaWwCASAJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFC3VzZXJBZGRyZXNzBgkBCHRocm93RXJyAQkAuQkCCQDMCAICGnVzZXIgYWRkcmVzcyBpcyBub3QgdmFsaWQ6CQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwCASAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNJHQwMTY1ODkxNjY2MgkBEmdldExlYXNpbmdOb2RlRGF0YQEFC25vZGVBZGRyZXNzBBFub2RlQ3VycmVudExlYXNlZAgFDSR0MDE2NTg5MTY2NjICXzEEDm5vZGVOZXh0TGVhc2VkCAUNJHQwMTY1ODkxNjY2MgJfMgQQbmV3Tm9kZU5leHRMZWFzZQkAZAIFDm5vZGVOZXh0TGVhc2VkBRF1c2VyTGVhc2luZ0Ftb3VudAQNJHQwMTY3MzAxNjgxNgkBEmdldFVzZXJMZWFzaW5nRGF0YQIFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwQRdXNlckN1cnJlbnRMZWFzZWQIBQ0kdDAxNjczMDE2ODE2Al8xBA51c2VyTmV4dExlYXNlZAgFDSR0MDE2NzMwMTY4MTYCXzIEEW5ld1VzZXJOZXh0TGVhc2VkCQBkAgUOdXNlck5leHRMZWFzZWQFEXVzZXJMZWFzaW5nQW1vdW50BBJmcm9tVW5sb2NrZWRBbW91bnQJAGUCBRF1c2VyTGVhc2luZ0Ftb3VudAUNcGF5bWVudEFtb3VudAQLbmV3VG9VbmxvY2sJAJYDAQkAzAgCAAAJAMwIAgkAZQIFCHRvVW5sb2NrBRJmcm9tVW5sb2NrZWRBbW91bnQFA25pbAQKbmV3VG9DbGFpbQkAlwMBCQDMCAIFB3RvQ2xhaW0JAMwIAgkAZAIFB3RvQ2xhaW0JAGUCBQh0b1VubG9jawUSZnJvbVVubG9ja2VkQW1vdW50BQNuaWwED3VzZXJUb3RhbExvY2tlZAkBEmdldFVzZXJUb3RhbExvY2tlZAEFC3VzZXJBZGRyZXNzBBJuZXdVc2VyVG90YWxMb2NrZWQJAGQCBQ91c2VyVG90YWxMb2NrZWQFEXVzZXJMZWFzaW5nQW1vdW50BBR1bml0c1VubG9ja2VkQWN0aW9ucwkBFGdldFVubG9ja1VuaXRzQWN0aW9uAQULdXNlckFkZHJlc3MJAM4IAgkAzAgCCQETZ2V0TGVhc2luZ05vZGVFbnRyeQMFC25vZGVBZGRyZXNzBRFub2RlQ3VycmVudExlYXNlZAUQbmV3Tm9kZU5leHRMZWFzZQkAzAgCCQETZ2V0VXNlckxlYXNpbmdFbnRyeQQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwURdXNlckN1cnJlbnRMZWFzZWQFEW5ld1VzZXJOZXh0TGVhc2VkCQDMCAIJARNnZXRVc2VyVG9DbGFpbUVudHJ5AwULdXNlckFkZHJlc3MFCm5ld1RvQ2xhaW0FC25ld1RvVW5sb2NrCQDMCAIJARdnZXRVc2VyVG90YWxMb2NrZWRFbnRyeQIFC3VzZXJBZGRyZXNzBRJuZXdVc2VyVG90YWxMb2NrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOb2RlTGVhc2luZ0J5SGVpZ2h0AQULbm9kZUFkZHJlc3MFEG5ld05vZGVOZXh0TGVhc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlVc2VyTGVhc2luZ0J5SGVpZ2h0AgULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBRFuZXdVc2VyTmV4dExlYXNlZAUDbmlsBRR1bml0c1VubG9ja2VkQWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEaZ2V0U3Rha2VGcm9tUGF5bWVudEFjdGlvbnMDC25vZGVBZGRyZXNzC3VzZXJBZGRyZXNzAWkEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECIHBheW1lbnQgc2l6ZSBzaG91bGQgYmUgZXhhY3RseSAxBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJAQ9nZXRTdGFrZUFjdGlvbnMEBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQFpCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARxnZXRTZXROZXdQZXJpb2RMZW5ndGhBY3Rpb25zAQ9uZXdQZXJpb2RMZW5ndGgEBWNoZWNrCQDMCAIDCQBmAgUPbmV3UGVyaW9kTGVuZ3RoAAAGCQEIdGhyb3dFcnIBAiZwZXJpb2QgbGVuZ3RoIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawMJAAACBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5UGVyaW9kTGVuZ3RoBQ9uZXdQZXJpb2RMZW5ndGgJAMwIAgkBDEludGVnZXJFbnRyeQIFFWtleVBlcmlvZE9mZnNldEhlaWdodAUGaGVpZ2h0BQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtleVBlcmlvZE9mZnNldElkCQBkAgUPY3VycmVudFBlcmlvZElkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIFFWtleVBlcmlvZE9mZnNldEhlaWdodAUQbmV4dFBlcmlvZEhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5UGVyaW9kTGVuZ3RoBQ9uZXdQZXJpb2RMZW5ndGgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERZ2V0VW5pdHNDbGFpbURhdGEBC3VzZXJBZGRyZXNzBA0kdDAxODcwMTE4NzkyCQEVY2FsY3VsYXRlVW5pdHNUb0NsYWltAQULdXNlckFkZHJlc3MED3VubG9ja2VkVW5pdE5vdwgFDSR0MDE4NzAxMTg3OTICXzEEC2wyVG9CdXJuTm93CAUNJHQwMTg3MDExODc5MgJfMgQMY3VycmVudEJsb2NrCAUNJHQwMTg3MDExODc5MgJfMwQEX3RtcAgFDSR0MDE4NzAxMTg3OTICXzQEEXVubG9ja2VkVW5pdHNQcmV2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARBrZXlVbmxvY2tlZFVuaXRzAQULdXNlckFkZHJlc3MAAAQLdW5pdHNUb1NlbmQJAGQCBQ91bmxvY2tlZFVuaXROb3cFEXVubG9ja2VkVW5pdHNQcmV2BAxsMlRvQnVyblByZXYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleUwyVG9CdXJuAQULdXNlckFkZHJlc3MAAAQIbDJUb0J1cm4JAGQCBQxsMlRvQnVyblByZXYFC2wyVG9CdXJuTm93BBF0b3RhbFVuaXRzQ2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEUa2V5VG90YWxVbml0c0NsYWltZWQBBQt1c2VyQWRkcmVzcwAABA10b3RhbEwyQnVybmVkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARBrZXlMMkJ1cm5lZFRvdGFsAQULdXNlckFkZHJlc3MAAAkAlwoFBQt1bml0c1RvU2VuZAURdG90YWxVbml0c0NsYWltZWQFCGwyVG9CdXJuBQ10b3RhbEwyQnVybmVkBQxjdXJyZW50QmxvY2sBFGdldENsYWltVW5pdHNBY3Rpb25zAQt1c2VyQWRkcmVzcwQNJHQwMTkzODQxOTQ5MgkBEWdldFVuaXRzQ2xhaW1EYXRhAQULdXNlckFkZHJlc3MEC3VuaXRzVG9TZW5kCAUNJHQwMTkzODQxOTQ5MgJfMQQRdG90YWxVbml0c0NsYWltZWQIBQ0kdDAxOTM4NDE5NDkyAl8yBAhsMlRvQnVybggFDSR0MDE5Mzg0MTk0OTICXzMEDXRvdGFsTDJCdXJuZWQIBQ0kdDAxOTM4NDE5NDkyAl80BAxjbGFpbWVkQmxvY2sIBQ0kdDAxOTM4NDE5NDkyAl81BAVjaGVjawkAzAgCAwkAZgIFC3VuaXRzVG9TZW5kAAAGCQEIdGhyb3dFcnIBAhBub3RoaW5nIHRvIGNsYWltBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBApidXJuQWN0aW9uBAckbWF0Y2gwBQ5sMkFzc2V0SWRCeXRlcwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkAzAgCCQEEQnVybgIFAmlkBQhsMlRvQnVybgUDbmlsBQNuaWwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVVuaXRzQ2xhaW1lZEJsb2NrAQULdXNlckFkZHJlc3MFDGNsYWltZWRCbG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVRvdGFsVW5pdHNDbGFpbWVkAQULdXNlckFkZHJlc3MJAGQCBRF0b3RhbFVuaXRzQ2xhaW1lZAULdW5pdHNUb1NlbmQJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlMMkJ1cm5lZFRvdGFsAQULdXNlckFkZHJlc3MJAGQCBQ10b3RhbEwyQnVybmVkBQhsMlRvQnVybgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEGtleVVubG9ja2VkVW5pdHMBBQt1c2VyQWRkcmVzcwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELa2V5TDJUb0J1cm4BBQt1c2VyQWRkcmVzcwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFC3VzZXJBZGRyZXNzBQt1bml0c1RvU2VuZAURdW5pdHNBc3NldElkQnl0ZXMFA25pbAUKYnVybkFjdGlvbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLhABaQESc2V0TmV3UGVyaW9kTGVuZ3RoAQ9uZXdQZXJpb2RMZW5ndGgEBmNoZWNrcwkAzAgCAwkBDWlzSW5BZG1pbkxpc3QBCQClCAEIBQFpBmNhbGxlcgYJAQh0aHJvd0VycgECGmNhbGxlciBpcyBub3QgaW4gYWRtaW5MaXN0BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJARxnZXRTZXROZXdQZXJpb2RMZW5ndGhBY3Rpb25zAQUPbmV3UGVyaW9kTGVuZ3RoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNsYWltVW5pdHMABAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIJARRnZXRDbGFpbVVuaXRzQWN0aW9ucwEFC3VzZXJBZGRyZXNzAWkBEHNldEZvcmNlU3RvcEZsYWcBBHN0b3AEBWNoZWNrCQDMCAIDCQENaXNJbkFkbWluTGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkBCHRocm93RXJyAQIaY2FsbGVyIGlzIG5vdCBpbiBhZG1pbkxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDGtleUZvcmNlU3RvcAUEc3RvcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3NldEZvcmNlT3V0U3RvcEZsYWcBBHN0b3AEBWNoZWNrCQDMCAIDCQENaXNJbkFkbWluTGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkBCHRocm93RXJyAQIaY2FsbGVyIGlzIG5vdCBpbiBhZG1pbkxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEJvb2xlYW5FbnRyeQIFD2tleUZvcmNlT3V0U3RvcAUEc3RvcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2dldE5vZGVEYXRhUkVBRE9OTFkBC25vZGVBZGRyZXNzBA0kdDAyMTIyNDIxMjg4CQESZ2V0TGVhc2luZ05vZGVEYXRhAQULbm9kZUFkZHJlc3MEDGN1cnJlbnRMZWFzZQgFDSR0MDIxMjI0MjEyODgCXzEECm5leHRMZWFzZWQIBQ0kdDAyMTIyNDIxMjg4Al8yCQCUCgIFA25pbAkAlwoFBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxjdXJyZW50TGVhc2UFEG5leHRQZXJpb2RIZWlnaHQFCm5leHRMZWFzZWQFBmhlaWdodAFpARpnZXRVc2VyTGVhc2luZ0RhdGFSRUFET05MWQILbm9kZUFkZHJlc3MLdXNlckFkZHJlc3MEDSR0MDIxNjU4MjE3MzUJARJnZXRVc2VyTGVhc2luZ0RhdGECBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MEDGN1cnJlbnRMZWFzZQgFDSR0MDIxNjU4MjE3MzUCXzEECm5leHRMZWFzZWQIBQ0kdDAyMTY1ODIxNzM1Al8yCQCUCgIFA25pbAkAlwoFBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxjdXJyZW50TGVhc2UFEG5leHRQZXJpb2RIZWlnaHQFCm5leHRMZWFzZWQFBmhlaWdodAFpARNnZXRVc2VyRGF0YVJFQURPTkxZAQt1c2VyQWRkcmVzcwQNJHQwMjIzMzkyMjM5OQkBFWdldFVzZXJUb0NsYWltQmFsYW5jZQEFC3VzZXJBZGRyZXNzBAd0b0NsYWltCAUNJHQwMjIzMzkyMjM5OQJfMQQIdG9VbmxvY2sIBQ0kdDAyMjMzOTIyMzk5Al8yBA91c2VyVG90YWxMb2NrZWQJARJnZXRVc2VyVG90YWxMb2NrZWQBBQt1c2VyQWRkcmVzcwQNJHQwMjI0NjIyMjU3MAkBEWdldFVuaXRzQ2xhaW1EYXRhAQULdXNlckFkZHJlc3MEC3VuaXRzVG9TZW5kCAUNJHQwMjI0NjIyMjU3MAJfMQQRdG90YWxVbml0c0NsYWltZWQIBQ0kdDAyMjQ2MjIyNTcwAl8yBAhsMlRvQnVybggFDSR0MDIyNDYyMjI1NzACXzMEDXRvdGFsTDJCdXJuZWQIBQ0kdDAyMjQ2MjIyNTcwAl80BAxjbGFpbWVkQmxvY2sIBQ0kdDAyMjQ2MjIyNTcwAl81BBR1bml0c1BlckJsb2NrU2NhbGUxNgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRdrZXlVbml0c1BlckJsb2NrU2NhbGUxNgAABA9yZW1haW5pbmdibG9ja3MJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAGQCBRV1bml0c0NsYWltU3RhcnRIZWlnaHQFEnVuaXRzQ2xhaW1JbnRlcnZhbAUGaGVpZ2h0BQNuaWwJAJQKAgUDbmlsCQCfCg0FE2N1cnJlbnRQZXJpb2RIZWlnaHQFB3RvQ2xhaW0FEG5leHRQZXJpb2RIZWlnaHQFCHRvVW5sb2NrBQ91c2VyVG90YWxMb2NrZWQFBmhlaWdodAULdW5pdHNUb1NlbmQFEXRvdGFsVW5pdHNDbGFpbWVkBQhsMlRvQnVybgUNdG90YWxMMkJ1cm5lZAUMY2xhaW1lZEJsb2NrBRR1bml0c1BlckJsb2NrU2NhbGUxNgUPcmVtYWluaW5nYmxvY2tzAWkBDmxlYXNlQnlBZGRyZXNzAgtub2RlQWRkcmVzcwt1c2VyQWRkcmVzcwkBGmdldFN0YWtlRnJvbVBheW1lbnRBY3Rpb25zAwULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQFpAWkBBWxlYXNlAQtub2RlQWRkcmVzcwQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEaZ2V0U3Rha2VGcm9tUGF5bWVudEFjdGlvbnMDBQtub2RlQWRkcmVzcwULdXNlckFkZHJlc3MFAWkBaQEPbGVhc2VGcm9tTG9ja2VkAgtub2RlQWRkcmVzcwZhbW91bnQEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBD2dldFN0YWtlQWN0aW9ucwQFC25vZGVBZGRyZXNzBQt1c2VyQWRkcmVzcwUGYW1vdW50BQFpAWkBC2NhbmNlbExlYXNlAgtub2RlQWRkcmVzcwZhbW91bnQEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBEWdldFVuc3Rha2VBY3Rpb25zAwULbm9kZUFkZHJlc3MFC3VzZXJBZGRyZXNzBQZhbW91bnQBaQEFY2xhaW0BBmFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyCQEXZ2V0Q2xhaW1VbmxvY2tlZEFjdGlvbnMCBQt1c2VyQWRkcmVzcwUGYW1vdW50AWkBCGNsYWltQWxsAAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBA0kdDAyNDAwMDI0MDYwCQEVZ2V0VXNlclRvQ2xhaW1CYWxhbmNlAQULdXNlckFkZHJlc3MEB3RvQ2xhaW0IBQ0kdDAyNDAwMDI0MDYwAl8xBAh0b1VubG9jawgFDSR0MDI0MDAwMjQwNjACXzIEBmNoZWNrcwkAzAgCAwkAZgIFB3RvQ2xhaW0AAAYJAQh0aHJvd0VycgECEG5vdGhpbmcgdG8gY2xhaW0FA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkBF2dldENsYWltVW5sb2NrZWRBY3Rpb25zAgULdXNlckFkZHJlc3MFB3RvQ2xhaW0JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIc3Rha2VGb3IBC3VzZXJBZGRyZXNzCQESZ2V0U3Rha2VGb3JBY3Rpb25zAgULdXNlckFkZHJlc3MFAWkBaQERc3RhcnRVbml0c1Zlc3RpbmcBFXVuaXRzQ2xhaW1OZXdJbnRlcnZhbAQHdG90YWxMMgCAgKjsha/RsQEECnRvdGFsVW5pdHMICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBR1bml0c1BlckJsb2NrU2NhbGUxNgkAaQIJAGsDBQp0b3RhbFVuaXRzBQdzY2FsZTE2BQd0b3RhbEwyBRV1bml0c0NsYWltTmV3SW50ZXJ2YWwEBWNoZWNrCQDMCAIDCQENaXNJbkFkbWluTGlzdAEJAKUIAQgFAWkGY2FsbGVyBgkBCHRocm93RXJyAQIaY2FsbGVyIGlzIG5vdCBpbiBhZG1pbkxpc3QJAMwIAgMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEGCQEIdGhyb3dFcnIBAhNzaG91bGQgYmUgMSBwYXltZW50CQDMCAIDCQBmAgUUdW5pdHNQZXJCbG9ja1NjYWxlMTYAAAYJAQh0aHJvd0VycgECKHVuaXRzIHBlciBibG9jayBzaG91bGQgYmUgZ3JlYXRlZCB0aGFuIDAFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAMwIAgkBDEludGVnZXJFbnRyeQIFF2tleVVuaXRzUGVyQmxvY2tTY2FsZTE2BRR1bml0c1BlckJsb2NrU2NhbGUxNgkAzAgCCQEMSW50ZWdlckVudHJ5AgUYa2V5VW5pdHNDbGFpbVN0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFFWtleVVuaXRzQ2xhaW1JbnRlcnZhbAUVdW5pdHNDbGFpbU5ld0ludGVydmFsCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tleVVuaXRzQXNzZXRJZAkBEmFzc2V0Qnl0ZXNUb1N0cmluZwEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3ZvdGVGb3JUeElkAQR0eElkBBNjYWxsZXJBZGRyZXNzU3RyaW5nCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMECWtleVByZWZpeAkBGGtleUFsbG93ZWRUeElkVm90ZVByZWZpeAEFBHR4SWQEBnJlc3VsdAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5QWxsb3dlZFR4SWQABQR0eElkBQNuaWwEEWFsbG93ZWRUeElkT3B0aW9uCQCdCAIFBHRoaXMJAQ5rZXlBbGxvd2VkVHhJZAAEA2VycgkAzAgCAwkAAAIJAMgBAQkA2QQBBQR0eElkBRFUWElEX0JZVEVTX0xFTkdUSAYJAQh0aHJvd0VycgEJAKwCAgUEdHhJZAISIGlzIG5vdCB2YWxpZCB0eElkCQDMCAIDAwkAAAIFEWFsbG93ZWRUeElkT3B0aW9uBQR1bml0BgkBAiE9AgkBBXZhbHVlAQURYWxsb3dlZFR4SWRPcHRpb24FBHR4SWQGCQEIdGhyb3dFcnIBCQCsAgIFBHR4SWQCEyBpcyBhbHJlYWR5IGFsbG93ZWQFA25pbAMJAAACBQNlcnIFA2VycgkBDHZvdGVJTlRFUk5BTAQFE2NhbGxlckFkZHJlc3NTdHJpbmcFCWtleVByZWZpeAUGUVVPUlVNBQZyZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAhieUFkbWlucwkAAAIIBQJ0eAJpZAkA2QQBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlBbGxvd2VkVHhJZAACAAQHYnlPd25lcgMJAGcCCQCQAwEJAQ1nZXRBZG1pbnNMaXN0AAUGUVVPUlVNBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQMFCGJ5QWRtaW5zBgUHYnlPd25lcr+Po/A=", "chainId": 84, "height": 3337671, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D2h3bfs4LSU8wi2sD7YJX2wv2ckFxpJcq8eomdf1uG1e Next: GZ1YEFBLNaR9ZxAVnGKBtn6mgMyfRyEhKnJD6W8pAN6U Diff:
OldNewDifferences
374374 let bB = bu(C)
375375 let bC = fraction(bB, bA, y)
376376 let bD = fraction(bC, by, e)
377- $Tuple3(bD, bC, bz)
377+ $Tuple4(bD, bC, bz, $Tuple3(bA, x, y))
378378 }
379379
380380
387387 let bD = bI._1
388388 let bJ = bI._2
389389 let bz = bI._3
390+ let bK = bI._4
390391 if ((0 >= bD))
391392 then nil
392393 else [IntegerEntry(F(C), bz), IntegerEntry(bH, (bC + bJ)), IntegerEntry(bF, (bG + bD))]
393394 }
394395
395396
396-func bK (A,C,bL) = {
397- let bM = aW(A)
398- let bb = bM._1
399- let bd = bM._2
400- let bN = bh(A, C)
401- let bf = bN._1
402- let bg = bN._2
403- let bO = [if (!(X))
397+func bL (A,C,bM) = {
398+ let bN = aW(A)
399+ let bb = bN._1
400+ let bd = bN._2
401+ let bO = bh(A, C)
402+ let bf = bO._1
403+ let bg = bO._2
404+ let bP = [if (!(X))
404405 then true
405406 else f("contract is temporary stopped"), if (!(Y))
406407 then true
407- else f("unstake is temporary disabled"), if ((bL > 0))
408+ else f("unstake is temporary disabled"), if ((bM > 0))
408409 then true
409- else f("unstake amount should be greater than 0"), if ((bg >= bL))
410+ else f("unstake amount should be greater than 0"), if ((bg >= bM))
410411 then true
411- else f("unstake amount should be less or equal user staked amount"), if ((bd >= bL))
412+ else f("unstake amount should be less or equal user staked amount"), if ((bd >= bM))
412413 then true
413414 else f("unstake amount should be less or equal node staked amount"), if (Z(A))
414415 then true
415416 else f(makeString(["node address is not valid:", A], " ")), if (Z(C))
416417 then true
417418 else f(makeString(["user address is not valid:", C], " "))]
418- if ((bO == bO))
419+ if ((bP == bP))
419420 then {
420- let bP = (bd - bL)
421- let bQ = (bg - bL)
422- let bR = bo(C)
423- let bm = bR._1
424- let bn = bR._2
425- let bS = (bn + bL)
421+ let bQ = (bd - bM)
422+ let bR = (bg - bM)
423+ let bS = bo(C)
424+ let bm = bS._1
425+ let bn = bS._2
426+ let bT = (bn + bM)
426427 let bt = bu(C)
427- let bT = (bt - bL)
428- let bU = bE(C)
429- ([aS(A, bb, bP), be(A, C, bf, bQ), bl(C, bm, bS), bs(C, bT), IntegerEntry(K(A), bP), IntegerEntry(M(A, C), bQ)] ++ bU)
428+ let bU = (bt - bM)
429+ let bV = bE(C)
430+ ([aS(A, bb, bQ), be(A, C, bf, bR), bl(C, bm, bT), bs(C, bU), IntegerEntry(K(A), bQ), IntegerEntry(M(A, C), bR)] ++ bV)
430431 }
431432 else throw("Strict value is not equal to itself.")
432433 }
433434
434435
435-func bV (C,bW) = {
436- let bX = bo(C)
437- let bm = bX._1
438- let bn = bX._2
439- let bO = [if (!(X))
436+func bW (C,bX) = {
437+ let bY = bo(C)
438+ let bm = bY._1
439+ let bn = bY._2
440+ let bP = [if (!(X))
440441 then true
441442 else f("contract is temporary stopped"), if (!(Y))
442443 then true
443- else f("claim is temporary disabled"), if ((bW > 0))
444+ else f("claim is temporary disabled"), if ((bX > 0))
444445 then true
445- else f("claim amount should be greater than 0"), if ((bm >= bW))
446+ else f("claim amount should be greater than 0"), if ((bm >= bX))
446447 then true
447448 else f("claim amount should be less or equal unlocked amount"), if (Z(C))
448449 then true
449450 else f(makeString(["user address is not valid:", C], " "))]
450- if ((bO == bO))
451+ if ((bP == bP))
451452 then {
452- let bY = (bm - bW)
453-[bl(C, bY, bn), ScriptTransfer(addressFromStringValue(C), bW, V)]
453+ let bZ = (bm - bX)
454+[bl(C, bZ, bn), ScriptTransfer(addressFromStringValue(C), bX, V)]
454455 }
455456 else throw("Strict value is not equal to itself.")
456457 }
457458
458459
459-func bZ (C,ca) = {
460- let cb = bo(C)
461- let bm = cb._1
462- let bn = cb._2
463- let bO = [if (!(X))
460+func ca (C,cb) = {
461+ let cc = bo(C)
462+ let bm = cc._1
463+ let bn = cc._2
464+ let bP = [if (!(X))
464465 then true
465- else f("contract is temporary stopped"), if ((1 >= size(ca.payments)))
466+ else f("contract is temporary stopped"), if ((1 >= size(cb.payments)))
466467 then true
467- else f("maximum 1 payment"), if (if ((size(ca.payments) == 0))
468+ else f("maximum 1 payment"), if (if ((size(cb.payments) == 0))
468469 then true
469- else (ca.payments[0].assetId == V))
470+ else (cb.payments[0].assetId == V))
470471 then true
471472 else f(makeString(["payment assetId should be:", T], " ")), if (Z(C))
472473 then true
473474 else f(makeString(["user address is not valid:", C], " "))]
474- if ((bO == bO))
475+ if ((bP == bP))
475476 then {
476- let bY = (bm + ca.payments[0].amount)
477-[bl(C, bY, bn)]
477+ let bZ = (bm + cb.payments[0].amount)
478+[bl(C, bZ, bn)]
478479 }
479480 else throw("Strict value is not equal to itself.")
480481 }
481482
482483
483-func cc (A,C,cd,ca) = {
484- let ce = bo(C)
485- let bm = ce._1
486- let bn = ce._2
487- let cf = if ((size(ca.payments) == 0))
484+func cd (A,C,ce,cb) = {
485+ let cf = bo(C)
486+ let bm = cf._1
487+ let bn = cf._2
488+ let cg = if ((size(cb.payments) == 0))
488489 then 0
489- else ca.payments[0].amount
490- let cg = ((bn + bm) + cf)
491- let bO = [if (!(X))
490+ else cb.payments[0].amount
491+ let ch = ((bn + bm) + cg)
492+ let bP = [if (!(X))
492493 then true
493- else f("contract is temporary stopped"), if ((1 >= size(ca.payments)))
494+ else f("contract is temporary stopped"), if ((1 >= size(cb.payments)))
494495 then true
495- else f("maximum 1 payment"), if (if ((size(ca.payments) == 0))
496+ else f("maximum 1 payment"), if (if ((size(cb.payments) == 0))
496497 then true
497- else (ca.payments[0].assetId == V))
498+ else (cb.payments[0].assetId == V))
498499 then true
499- else f(makeString(["payment assetId should be:", T], " ")), if ((cd > 0))
500+ else f(makeString(["payment assetId should be:", T], " ")), if ((ce > 0))
500501 then true
501- else f("amount should be greater than 0"), if ((cg >= cd))
502+ else f("amount should be greater than 0"), if ((ch >= ce))
502503 then true
503- else f("amount should be less or equal (payment + available) amount"), if ((cd >= cf))
504+ else f("amount should be less or equal (payment + available) amount"), if ((ce >= cg))
504505 then true
505506 else throw("amount should be greater or equal payment amount"), if (Z(A))
506507 then true
507508 else f(makeString(["node address is not valid:", A], " ")), if (Z(C))
508509 then true
509510 else f(makeString(["user address is not valid:", C], " "))]
510- if ((bO == bO))
511+ if ((bP == bP))
511512 then {
512- let ch = aW(A)
513- let bb = ch._1
514- let bd = ch._2
515- let bP = (bd + cd)
516- let ci = bh(A, C)
517- let bf = ci._1
518- let bg = ci._2
519- let bQ = (bg + cd)
520- let cj = (cd - cf)
521- let bS = max([0, (bn - cj)])
522- let bY = min([bm, (bm + (bn - cj))])
513+ let ci = aW(A)
514+ let bb = ci._1
515+ let bd = ci._2
516+ let bQ = (bd + ce)
517+ let cj = bh(A, C)
518+ let bf = cj._1
519+ let bg = cj._2
520+ let bR = (bg + ce)
521+ let ck = (ce - cg)
522+ let bT = max([0, (bn - ck)])
523+ let bZ = min([bm, (bm + (bn - ck))])
523524 let bt = bu(C)
524- let bT = (bt + cd)
525- let bU = bE(C)
526- ([aS(A, bb, bP), be(A, C, bf, bQ), bl(C, bY, bS), bs(C, bT), IntegerEntry(K(A), bP), IntegerEntry(M(A, C), bQ)] ++ bU)
525+ let bU = (bt + ce)
526+ let bV = bE(C)
527+ ([aS(A, bb, bQ), be(A, C, bf, bR), bl(C, bZ, bT), bs(C, bU), IntegerEntry(K(A), bQ), IntegerEntry(M(A, C), bR)] ++ bV)
527528 }
528529 else throw("Strict value is not equal to itself.")
529530 }
530531
531532
532-func ck (A,C,ca) = {
533- let bO = [if ((size(ca.payments) == 1))
533+func cl (A,C,cb) = {
534+ let bP = [if ((size(cb.payments) == 1))
534535 then true
535536 else f("payment size should be exactly 1")]
536- if ((bO == bO))
537- then cc(A, C, ca.payments[0].amount, ca)
537+ if ((bP == bP))
538+ then cd(A, C, cb.payments[0].amount, cb)
538539 else throw("Strict value is not equal to itself.")
539540 }
540541
541542
542-func cl (cm) = {
543- let cn = [if ((cm > 0))
543+func cm (cn) = {
544+ let co = [if ((cn > 0))
544545 then true
545546 else f("period length should be greater than 0")]
546- if ((cn == cn))
547+ if ((co == co))
547548 then if ((t == -1))
548- then [IntegerEntry(o, cm), IntegerEntry(n, height)]
549- else [IntegerEntry(m, (u + 1)), IntegerEntry(n, w), IntegerEntry(o, cm)]
549+ then [IntegerEntry(o, cn), IntegerEntry(n, height)]
550+ else [IntegerEntry(m, (u + 1)), IntegerEntry(n, w), IntegerEntry(o, cn)]
550551 else throw("Strict value is not equal to itself.")
551552 }
552553
553554
554-func co (C) = {
555- let cp = bv(C)
556- let cq = cp._1
557- let bJ = cp._2
558- let bz = cp._3
559- let cr = valueOrElse(getInteger(this, G(C)), 0)
560- let cs = (cq + cr)
561- let ct = valueOrElse(getInteger(this, I(C)), 0)
562- let bC = (ct + bJ)
563- let cu = valueOrElse(getInteger(this, H(C)), 0)
564- let cv = valueOrElse(getInteger(this, J(C)), 0)
565- $Tuple5(cs, cu, bC, cv, bz)
555+func cp (C) = {
556+ let cq = bv(C)
557+ let cr = cq._1
558+ let bJ = cq._2
559+ let bz = cq._3
560+ let bK = cq._4
561+ let cs = valueOrElse(getInteger(this, G(C)), 0)
562+ let ct = (cr + cs)
563+ let cu = valueOrElse(getInteger(this, I(C)), 0)
564+ let bC = (cu + bJ)
565+ let cv = valueOrElse(getInteger(this, H(C)), 0)
566+ let cw = valueOrElse(getInteger(this, J(C)), 0)
567+ $Tuple5(ct, cv, bC, cw, bz)
566568 }
567569
568570
569-func cw (C) = {
570- let cx = co(C)
571- let cs = cx._1
572- let cu = cx._2
573- let bC = cx._3
574- let cv = cx._4
575- let bx = cx._5
576- let cn = [if ((cs > 0))
571+func cx (C) = {
572+ let cy = cp(C)
573+ let ct = cy._1
574+ let cv = cy._2
575+ let bC = cy._3
576+ let cw = cy._4
577+ let bx = cy._5
578+ let co = [if ((ct > 0))
577579 then true
578580 else f("nothing to claim")]
579- if ((cn == cn))
581+ if ((co == co))
580582 then {
581- let cy = {
583+ let cz = {
582584 let R = V
583585 if ($isInstanceOf(R, "ByteVector"))
584586 then {
585- let cz = R
586-[Burn(cz, bC)]
587+ let cA = R
588+[Burn(cA, bC)]
587589 }
588590 else nil
589591 }
590- ([IntegerEntry(F(C), bx), IntegerEntry(H(C), (cu + cs)), IntegerEntry(J(C), (cv + bC)), IntegerEntry(G(C), 0), IntegerEntry(I(C), 0), ScriptTransfer(addressFromStringValue(C), cs, W)] ++ cy)
592+ ([IntegerEntry(F(C), bx), IntegerEntry(H(C), (cv + ct)), IntegerEntry(J(C), (cw + bC)), IntegerEntry(G(C), 0), IntegerEntry(I(C), 0), ScriptTransfer(addressFromStringValue(C), ct, W)] ++ cz)
591593 }
592594 else throw("Strict value is not equal to itself.")
593595 }
594596
595597
596-@Callable(ca)
597-func setNewPeriodLength (cm) = {
598- let bO = [if (aq(toString(ca.caller)))
598+@Callable(cb)
599+func setNewPeriodLength (cn) = {
600+ let bP = [if (aq(toString(cb.caller)))
599601 then true
600602 else f("caller is not in adminList")]
601- if ((bO == bO))
602- then cl(cm)
603+ if ((bP == bP))
604+ then cm(cn)
603605 else throw("Strict value is not equal to itself.")
604606 }
605607
606608
607609
608-@Callable(ca)
610+@Callable(cb)
609611 func claimUnits () = {
610- let C = toString(ca.caller)
611- cw(C)
612+ let C = toString(cb.caller)
613+ cx(C)
612614 }
613615
614616
615617
616-@Callable(ca)
617-func setForceStopFlag (cA) = {
618- let cn = [if (aq(toString(ca.caller)))
618+@Callable(cb)
619+func setForceStopFlag (cB) = {
620+ let co = [if (aq(toString(cb.caller)))
619621 then true
620622 else f("caller is not in adminList")]
621- if ((cn == cn))
622- then [BooleanEntry(i, cA)]
623+ if ((co == co))
624+ then [BooleanEntry(i, cB)]
623625 else throw("Strict value is not equal to itself.")
624626 }
625627
626628
627629
628-@Callable(ca)
629-func setForceOutStopFlag (cA) = {
630- let cn = [if (aq(toString(ca.caller)))
630+@Callable(cb)
631+func setForceOutStopFlag (cB) = {
632+ let co = [if (aq(toString(cb.caller)))
631633 then true
632634 else f("caller is not in adminList")]
633- if ((cn == cn))
634- then [BooleanEntry(j, cA)]
635+ if ((co == co))
636+ then [BooleanEntry(j, cB)]
635637 else throw("Strict value is not equal to itself.")
636638 }
637639
638640
639641
640-@Callable(ca)
642+@Callable(cb)
641643 func getNodeDataREADONLY (A) = {
642- let cB = aW(A)
643- let cC = cB._1
644- let aU = cB._2
645- $Tuple2(nil, $Tuple5(v, cC, w, aU, height))
644+ let cC = aW(A)
645+ let cD = cC._1
646+ let aU = cC._2
647+ $Tuple2(nil, $Tuple5(v, cD, w, aU, height))
646648 }
647649
648650
649651
650-@Callable(ca)
652+@Callable(cb)
651653 func getUserLeasingDataREADONLY (A,C) = {
652- let cD = bh(A, C)
653- let cC = cD._1
654- let aU = cD._2
655- $Tuple2(nil, $Tuple5(v, cC, w, aU, height))
654+ let cE = bh(A, C)
655+ let cD = cE._1
656+ let aU = cE._2
657+ $Tuple2(nil, $Tuple5(v, cD, w, aU, height))
656658 }
657659
658660
659661
660-@Callable(ca)
662+@Callable(cb)
661663 func getUserDataREADONLY (C) = {
662- let cE = bo(C)
663- let bm = cE._1
664- let bn = cE._2
664+ let cF = bo(C)
665+ let bm = cF._1
666+ let bn = cF._2
665667 let bt = bu(C)
666- let cF = co(C)
667- let cs = cF._1
668- let cu = cF._2
669- let bC = cF._3
670- let cv = cF._4
671- let bx = cF._5
668+ let cG = cp(C)
669+ let ct = cG._1
670+ let cv = cG._2
671+ let bC = cG._3
672+ let cw = cG._4
673+ let bx = cG._5
672674 let by = valueOrElse(getInteger(this, l), 0)
673- let cG = max([0, ((x + y) - height)])
674- $Tuple2(nil, $Tuple13(v, bm, w, bn, bt, height, cs, cu, bC, cv, bx, by, cG))
675+ let cH = max([0, ((x + y) - height)])
676+ $Tuple2(nil, $Tuple13(v, bm, w, bn, bt, height, ct, cv, bC, cw, bx, by, cH))
675677 }
676678
677679
678680
679-@Callable(ca)
680-func leaseByAddress (A,C) = ck(A, C, ca)
681+@Callable(cb)
682+func leaseByAddress (A,C) = cl(A, C, cb)
681683
682684
683685
684-@Callable(ca)
686+@Callable(cb)
685687 func lease (A) = {
686- let C = toString(ca.caller)
687- ck(A, C, ca)
688+ let C = toString(cb.caller)
689+ cl(A, C, cb)
688690 }
689691
690692
691693
692-@Callable(ca)
693-func leaseFromLocked (A,cH) = {
694- let C = toString(ca.caller)
695- cc(A, C, cH, ca)
694+@Callable(cb)
695+func leaseFromLocked (A,cI) = {
696+ let C = toString(cb.caller)
697+ cd(A, C, cI, cb)
696698 }
697699
698700
699701
700-@Callable(ca)
701-func cancelLease (A,cH) = {
702- let C = toString(ca.caller)
703- bK(A, C, cH)
702+@Callable(cb)
703+func cancelLease (A,cI) = {
704+ let C = toString(cb.caller)
705+ bL(A, C, cI)
704706 }
705707
706708
707709
708-@Callable(ca)
709-func claim (cH) = {
710- let C = toString(ca.caller)
711- bV(C, cH)
710+@Callable(cb)
711+func claim (cI) = {
712+ let C = toString(cb.caller)
713+ bW(C, cI)
712714 }
713715
714716
715717
716-@Callable(ca)
718+@Callable(cb)
717719 func claimAll () = {
718- let C = toString(ca.caller)
719- let cI = bo(C)
720- let bm = cI._1
721- let bn = cI._2
722- let bO = [if ((bm > 0))
720+ let C = toString(cb.caller)
721+ let cJ = bo(C)
722+ let bm = cJ._1
723+ let bn = cJ._2
724+ let bP = [if ((bm > 0))
723725 then true
724726 else f("nothing to claim")]
725- if ((bO == bO))
726- then bV(C, bm)
727+ if ((bP == bP))
728+ then bW(C, bm)
727729 else throw("Strict value is not equal to itself.")
728730 }
729731
730732
731733
732-@Callable(ca)
733-func stakeFor (C) = bZ(C, ca)
734+@Callable(cb)
735+func stakeFor (C) = ca(C, cb)
734736
735737
736738
737-@Callable(ca)
738-func startUnitsVesting (y) = {
739- let cJ = 100000000000000000
740- let cK = ca.payments[0].amount
741- let by = (fraction(cK, e, cJ) / y)
742- let cn = [if (aq(toString(ca.caller)))
739+@Callable(cb)
740+func startUnitsVesting (cK) = {
741+ let cL = 100000000000000000
742+ let cM = cb.payments[0].amount
743+ let by = (fraction(cM, e, cL) / cK)
744+ let co = [if (aq(toString(cb.caller)))
743745 then true
744- else f("caller is not in adminList"), if ((size(ca.payments) == 1))
746+ else f("caller is not in adminList"), if ((size(cb.payments) == 1))
745747 then true
746748 else f("should be 1 payment"), if ((by > 0))
747749 then true
748750 else f("units per block should be greated than 0")]
749- if ((cn == cn))
750- then [IntegerEntry(l, by), IntegerEntry(p, height), IntegerEntry(q, y), StringEntry(k, P(ca.payments[0].assetId))]
751+ if ((co == co))
752+ then [IntegerEntry(l, by), IntegerEntry(p, height), IntegerEntry(q, cK), StringEntry(k, P(cb.payments[0].assetId))]
751753 else throw("Strict value is not equal to itself.")
752754 }
753755
754756
755757
756-@Callable(ca)
758+@Callable(cb)
757759 func voteForTxId (af) = {
758- let aM = toBase58String(ca.caller.bytes)
760+ let aM = toBase58String(cb.caller.bytes)
759761 let av = ae(af)
760762 let at = [StringEntry(ak(), af)]
761- let cL = getString(this, ak())
763+ let cN = getString(this, ak())
762764 let aQ = [if ((size(fromBase58String(af)) == ad))
763765 then true
764- else f((af + " is not valid txId")), if (if ((cL == unit))
766+ else f((af + " is not valid txId")), if (if ((cN == unit))
765767 then true
766- else (value(cL) != af))
768+ else (value(cN) != af))
767769 then true
768770 else f((af + " is already allowed"))]
769771 if ((aQ == aQ))
772774 }
773775
774776
775-@Verifier(cM)
776-func cN () = {
777- let cO = (cM.id == fromBase58String(valueOrElse(getString(this, ak()), "")))
778- let cP = if ((size(ao()) >= ac))
777+@Verifier(cO)
778+func cP () = {
779+ let cQ = (cO.id == fromBase58String(valueOrElse(getString(this, ak()), "")))
780+ let cR = if ((size(ao()) >= ac))
779781 then false
780- else sigVerify(cM.bodyBytes, cM.proofs[0], cM.senderPublicKey)
781- if (cO)
782+ else sigVerify(cO.bodyBytes, cO.proofs[0], cO.senderPublicKey)
783+ if (cQ)
782784 then true
783- else cP
785+ else cR
784786 }
785787
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "l2mp_leasing.ride"
55
66 let b = "__"
77
88 let c = 1000
99
1010 let d = 100000000
1111
1212 let e = (d * d)
1313
1414 func f (g) = throw(((a + ": ") + g))
1515
1616
1717 let h = makeString(["%s", "assetId"], b)
1818
1919 let i = makeString(["%s", "forceStop"], b)
2020
2121 let j = makeString(["%s", "forceOutStop"], b)
2222
2323 let k = makeString(["%s", "unitsAssetId"], b)
2424
2525 let l = makeString(["%s", "unitsPerBlockScale16"], b)
2626
2727 let m = makeString(["%s", "offsetId"], b)
2828
2929 let n = makeString(["%s", "offsetHeight"], b)
3030
3131 let o = makeString(["%s", "periodLength"], b)
3232
3333 let p = makeString(["%s", "unitsClaimStartHeight"], b)
3434
3535 let q = makeString(["%s", "unitsClaimInterval"], b)
3636
3737 let r = valueOrElse(getInteger(this, m), 0)
3838
3939 let s = valueOrElse(getInteger(this, o), 10000)
4040
4141 let t = valueOrElse(getInteger(this, n), -1)
4242
4343 let u = if (if ((height > t))
4444 then (t != -1)
4545 else false)
4646 then (((height - t) / s) + r)
4747 else max([0, (r - 1)])
4848
4949 let v = if (if ((t == -1))
5050 then true
5151 else if ((u == 0))
5252 then (t > height)
5353 else false)
5454 then 0
5555 else (t + ((u - r) * s))
5656
5757 let w = if (if ((t == -1))
5858 then true
5959 else if ((u == 0))
6060 then (t > height)
6161 else false)
6262 then 0
6363 else (v + s)
6464
6565 let x = valueOrElse(getInteger(this, p), height)
6666
6767 let y = valueOrElse(getInteger(this, q), 0)
6868
6969 func z (A) = makeString(["%s", A], b)
7070
7171
7272 func B (C,A) = makeString(["%s%s", A, C], b)
7373
7474
7575 func D (C) = makeString(["%s%s", "toClaim", C], b)
7676
7777
7878 func E (C) = makeString(["%s%s", "userTotalLocked", C], b)
7979
8080
8181 func F (C) = makeString(["%s%s", "unitsClaimedBlock", C], b)
8282
8383
8484 func G (C) = makeString(["%s%s", "unlockedUnits", C], b)
8585
8686
8787 func H (C) = makeString(["%s%s", "totalUnitsClaimed", C], b)
8888
8989
9090 func I (C) = makeString(["%s%s", "l2ToBurn", C], b)
9191
9292
9393 func J (C) = makeString(["%s%s", "l2BurnedTotal", C], b)
9494
9595
9696 func K (A) = {
9797 let L = if ((t == -1))
9898 then 0
9999 else height
100100 makeString(["%s%d", A, toString(L)], b)
101101 }
102102
103103
104104 func M (A,C) = {
105105 let L = if ((t == -1))
106106 then 0
107107 else height
108108 makeString(["%s%s%d", A, C, toString(L)], b)
109109 }
110110
111111
112112 func N (O) = if ((O == "WAVES"))
113113 then unit
114114 else fromBase58String(O)
115115
116116
117117 func P (Q) = {
118118 let R = Q
119119 if ($isInstanceOf(R, "ByteVector"))
120120 then {
121121 let S = R
122122 toBase58String(S)
123123 }
124124 else "WAVES"
125125 }
126126
127127
128128 let T = valueOrElse(getString(this, h), "WAVES")
129129
130130 let U = valueOrElse(getString(this, k), "WAVES")
131131
132132 let V = N(T)
133133
134134 let W = N(U)
135135
136136 let X = valueOrElse(getBoolean(this, i), false)
137137
138138 let Y = valueOrElse(getBoolean(this, j), false)
139139
140140 func Z (aa) = {
141141 let R = addressFromString(aa)
142142 if ($isInstanceOf(R, "Address"))
143143 then {
144144 let S = R
145145 true
146146 }
147147 else false
148148 }
149149
150150
151151 let ab = 5
152152
153153 let ac = 3
154154
155155 let ad = 32
156156
157157 func ae (af) = makeString(["%s%s%s", "allowTxId", af], b)
158158
159159
160160 func ag (ah,ai) = makeString([ah, ai], b)
161161
162162
163163 func aj () = makeString(["%s", "adminAddressList"], b)
164164
165165
166166 func ak () = makeString(["%s", "txId"], b)
167167
168168
169169 func al (ah,am) = {
170170 let an = ag(ah, am)
171171 valueOrElse(getInteger(an), 0)
172172 }
173173
174174
175175 func ao () = {
176176 let R = getString(this, aj())
177177 if ($isInstanceOf(R, "String"))
178178 then {
179179 let ap = R
180180 split(ap, b)
181181 }
182182 else nil
183183 }
184184
185185
186186 func aq (aa) = containsElement(ao(), aa)
187187
188188
189189 func ar (S,ai) = {
190190 let as = S
191191 let at = as._1
192192 let ah = as._2
193193 $Tuple2((at :+ ag(ah, ai)), ah)
194194 }
195195
196196
197197 func au (av) = {
198198 let aw = aj()
199199 let ax = {
200200 let ay = ao()
201201 let az = size(ay)
202202 let aA = $Tuple2(nil, av)
203203 func aB (aC,aD) = if ((aD >= az))
204204 then aC
205205 else ar(aC, ay[aD])
206206
207207 func aE (aC,aD) = if ((aD >= az))
208208 then aC
209209 else throw("List size exceeds 5")
210210
211211 aE(aB(aB(aB(aB(aB(aA, 0), 1), 2), 3), 4), 5)
212212 }
213213 let at = ax._1
214214 let ah = ax._2
215215 at
216216 }
217217
218218
219219 func aF (at,an) = (at + valueOrElse(getInteger(an), 0))
220220
221221
222222 func aG (ah) = {
223223 let aH = au(ah)
224224 let ay = aH
225225 let az = size(ay)
226226 let aA = 0
227227 func aB (aC,aD) = if ((aD >= az))
228228 then aC
229229 else aF(aC, ay[aD])
230230
231231 func aE (aC,aD) = if ((aD >= az))
232232 then aC
233233 else throw("List size exceeds 5")
234234
235235 aE(aB(aB(aB(aB(aB(aA, 0), 1), 2), 3), 4), 5)
236236 }
237237
238238
239239 func aI (at,aJ) = (at :+ DeleteEntry(aJ))
240240
241241
242242 func aK (ah) = {
243243 let aH = au(ah)
244244 let ay = aH
245245 let az = size(ay)
246246 let aA = nil
247247 func aB (aC,aD) = if ((aD >= az))
248248 then aC
249249 else aI(aC, ay[aD])
250250
251251 func aE (aC,aD) = if ((aD >= az))
252252 then aC
253253 else throw("List size exceeds 5")
254254
255255 aE(aB(aB(aB(aB(aB(aA, 0), 1), 2), 3), 4), 5)
256256 }
257257
258258
259259 func aL (aM,av,aN,aO) = {
260260 let an = ag(av, aM)
261261 let aP = al(av, aM)
262262 let aQ = if (!(aq(aM)))
263263 then f((("Address: " + aM) + " not in Admin list"))
264264 else if ((aP == 1))
265265 then f((an + " you already voted"))
266266 else unit
267267 if ((aQ == aQ))
268268 then {
269269 let aH = aG(av)
270270 if (((aH + 1) >= aN))
271271 then {
272272 let aR = aK(av)
273273 (aR ++ aO)
274274 }
275275 else [IntegerEntry(an, 1)]
276276 }
277277 else throw("Strict value is not equal to itself.")
278278 }
279279
280280
281281 func aS (A,aT,aU) = {
282282 let aV = makeString(["%d%d%d%d", toString(v), toString(aT), toString(w), toString(aU)], b)
283283 StringEntry(z(A), aV)
284284 }
285285
286286
287287 func aW (A) = {
288288 let aX = getString(this, z(A))
289289 let R = aX
290290 if ($isInstanceOf(R, "String"))
291291 then {
292292 let aY = R
293293 let aZ = split(aY, b)
294294 let ba = parseIntValue(aZ[1])
295295 let bb = parseIntValue(aZ[2])
296296 let bc = parseIntValue(aZ[3])
297297 let bd = parseIntValue(aZ[4])
298298 if (if ((bc > height))
299299 then true
300300 else (t == -1))
301301 then $Tuple2(bb, bd)
302302 else $Tuple2(bd, bd)
303303 }
304304 else $Tuple2(0, 0)
305305 }
306306
307307
308308 func be (A,C,bf,bg) = {
309309 let aV = makeString(["%d%d%d%d", toString(v), toString(bf), toString(w), toString(bg)], b)
310310 StringEntry(B(C, A), aV)
311311 }
312312
313313
314314 func bh (A,C) = {
315315 let bi = getString(this, B(C, A))
316316 let R = bi
317317 if ($isInstanceOf(R, "String"))
318318 then {
319319 let aY = R
320320 let aZ = split(aY, b)
321321 let bj = parseIntValue(aZ[1])
322322 let bf = parseIntValue(aZ[2])
323323 let bk = parseIntValue(aZ[3])
324324 let bg = parseIntValue(aZ[4])
325325 if (if ((bk > height))
326326 then true
327327 else (t == -1))
328328 then $Tuple2(bf, bg)
329329 else $Tuple2(bg, bg)
330330 }
331331 else $Tuple2(0, 0)
332332 }
333333
334334
335335 func bl (C,bm,bn) = {
336336 let aV = makeString(["%d%d%d%d", toString(v), toString(bm), toString(w), toString(bn)], b)
337337 StringEntry(D(C), aV)
338338 }
339339
340340
341341 func bo (C) = {
342342 let bp = getString(this, D(C))
343343 let R = bp
344344 if ($isInstanceOf(R, "String"))
345345 then {
346346 let aY = R
347347 let aZ = split(aY, b)
348348 let bq = parseIntValue(aZ[1])
349349 let bm = parseIntValue(aZ[2])
350350 let br = parseIntValue(aZ[3])
351351 let bn = parseIntValue(aZ[4])
352352 if (if ((br > height))
353353 then true
354354 else (u == 0))
355355 then $Tuple2(bm, bn)
356356 else $Tuple2((bm + bn), 0)
357357 }
358358 else $Tuple2(0, 0)
359359 }
360360
361361
362362 func bs (C,bt) = IntegerEntry(E(C), bt)
363363
364364
365365 func bu (C) = valueOrElse(getInteger(this, E(C)), 0)
366366
367367
368368 func bv (C) = {
369369 let bw = F(C)
370370 let bx = valueOrElse(getInteger(this, bw), x)
371371 let by = valueOrElse(getInteger(this, l), 0)
372372 let bz = min([(x + y), height])
373373 let bA = (bz - bx)
374374 let bB = bu(C)
375375 let bC = fraction(bB, bA, y)
376376 let bD = fraction(bC, by, e)
377- $Tuple3(bD, bC, bz)
377+ $Tuple4(bD, bC, bz, $Tuple3(bA, x, y))
378378 }
379379
380380
381381 func bE (C) = {
382382 let bF = G(C)
383383 let bG = valueOrElse(getInteger(this, bF), 0)
384384 let bH = I(C)
385385 let bC = valueOrElse(getInteger(this, bH), 0)
386386 let bI = bv(C)
387387 let bD = bI._1
388388 let bJ = bI._2
389389 let bz = bI._3
390+ let bK = bI._4
390391 if ((0 >= bD))
391392 then nil
392393 else [IntegerEntry(F(C), bz), IntegerEntry(bH, (bC + bJ)), IntegerEntry(bF, (bG + bD))]
393394 }
394395
395396
396-func bK (A,C,bL) = {
397- let bM = aW(A)
398- let bb = bM._1
399- let bd = bM._2
400- let bN = bh(A, C)
401- let bf = bN._1
402- let bg = bN._2
403- let bO = [if (!(X))
397+func bL (A,C,bM) = {
398+ let bN = aW(A)
399+ let bb = bN._1
400+ let bd = bN._2
401+ let bO = bh(A, C)
402+ let bf = bO._1
403+ let bg = bO._2
404+ let bP = [if (!(X))
404405 then true
405406 else f("contract is temporary stopped"), if (!(Y))
406407 then true
407- else f("unstake is temporary disabled"), if ((bL > 0))
408+ else f("unstake is temporary disabled"), if ((bM > 0))
408409 then true
409- else f("unstake amount should be greater than 0"), if ((bg >= bL))
410+ else f("unstake amount should be greater than 0"), if ((bg >= bM))
410411 then true
411- else f("unstake amount should be less or equal user staked amount"), if ((bd >= bL))
412+ else f("unstake amount should be less or equal user staked amount"), if ((bd >= bM))
412413 then true
413414 else f("unstake amount should be less or equal node staked amount"), if (Z(A))
414415 then true
415416 else f(makeString(["node address is not valid:", A], " ")), if (Z(C))
416417 then true
417418 else f(makeString(["user address is not valid:", C], " "))]
418- if ((bO == bO))
419+ if ((bP == bP))
419420 then {
420- let bP = (bd - bL)
421- let bQ = (bg - bL)
422- let bR = bo(C)
423- let bm = bR._1
424- let bn = bR._2
425- let bS = (bn + bL)
421+ let bQ = (bd - bM)
422+ let bR = (bg - bM)
423+ let bS = bo(C)
424+ let bm = bS._1
425+ let bn = bS._2
426+ let bT = (bn + bM)
426427 let bt = bu(C)
427- let bT = (bt - bL)
428- let bU = bE(C)
429- ([aS(A, bb, bP), be(A, C, bf, bQ), bl(C, bm, bS), bs(C, bT), IntegerEntry(K(A), bP), IntegerEntry(M(A, C), bQ)] ++ bU)
428+ let bU = (bt - bM)
429+ let bV = bE(C)
430+ ([aS(A, bb, bQ), be(A, C, bf, bR), bl(C, bm, bT), bs(C, bU), IntegerEntry(K(A), bQ), IntegerEntry(M(A, C), bR)] ++ bV)
430431 }
431432 else throw("Strict value is not equal to itself.")
432433 }
433434
434435
435-func bV (C,bW) = {
436- let bX = bo(C)
437- let bm = bX._1
438- let bn = bX._2
439- let bO = [if (!(X))
436+func bW (C,bX) = {
437+ let bY = bo(C)
438+ let bm = bY._1
439+ let bn = bY._2
440+ let bP = [if (!(X))
440441 then true
441442 else f("contract is temporary stopped"), if (!(Y))
442443 then true
443- else f("claim is temporary disabled"), if ((bW > 0))
444+ else f("claim is temporary disabled"), if ((bX > 0))
444445 then true
445- else f("claim amount should be greater than 0"), if ((bm >= bW))
446+ else f("claim amount should be greater than 0"), if ((bm >= bX))
446447 then true
447448 else f("claim amount should be less or equal unlocked amount"), if (Z(C))
448449 then true
449450 else f(makeString(["user address is not valid:", C], " "))]
450- if ((bO == bO))
451+ if ((bP == bP))
451452 then {
452- let bY = (bm - bW)
453-[bl(C, bY, bn), ScriptTransfer(addressFromStringValue(C), bW, V)]
453+ let bZ = (bm - bX)
454+[bl(C, bZ, bn), ScriptTransfer(addressFromStringValue(C), bX, V)]
454455 }
455456 else throw("Strict value is not equal to itself.")
456457 }
457458
458459
459-func bZ (C,ca) = {
460- let cb = bo(C)
461- let bm = cb._1
462- let bn = cb._2
463- let bO = [if (!(X))
460+func ca (C,cb) = {
461+ let cc = bo(C)
462+ let bm = cc._1
463+ let bn = cc._2
464+ let bP = [if (!(X))
464465 then true
465- else f("contract is temporary stopped"), if ((1 >= size(ca.payments)))
466+ else f("contract is temporary stopped"), if ((1 >= size(cb.payments)))
466467 then true
467- else f("maximum 1 payment"), if (if ((size(ca.payments) == 0))
468+ else f("maximum 1 payment"), if (if ((size(cb.payments) == 0))
468469 then true
469- else (ca.payments[0].assetId == V))
470+ else (cb.payments[0].assetId == V))
470471 then true
471472 else f(makeString(["payment assetId should be:", T], " ")), if (Z(C))
472473 then true
473474 else f(makeString(["user address is not valid:", C], " "))]
474- if ((bO == bO))
475+ if ((bP == bP))
475476 then {
476- let bY = (bm + ca.payments[0].amount)
477-[bl(C, bY, bn)]
477+ let bZ = (bm + cb.payments[0].amount)
478+[bl(C, bZ, bn)]
478479 }
479480 else throw("Strict value is not equal to itself.")
480481 }
481482
482483
483-func cc (A,C,cd,ca) = {
484- let ce = bo(C)
485- let bm = ce._1
486- let bn = ce._2
487- let cf = if ((size(ca.payments) == 0))
484+func cd (A,C,ce,cb) = {
485+ let cf = bo(C)
486+ let bm = cf._1
487+ let bn = cf._2
488+ let cg = if ((size(cb.payments) == 0))
488489 then 0
489- else ca.payments[0].amount
490- let cg = ((bn + bm) + cf)
491- let bO = [if (!(X))
490+ else cb.payments[0].amount
491+ let ch = ((bn + bm) + cg)
492+ let bP = [if (!(X))
492493 then true
493- else f("contract is temporary stopped"), if ((1 >= size(ca.payments)))
494+ else f("contract is temporary stopped"), if ((1 >= size(cb.payments)))
494495 then true
495- else f("maximum 1 payment"), if (if ((size(ca.payments) == 0))
496+ else f("maximum 1 payment"), if (if ((size(cb.payments) == 0))
496497 then true
497- else (ca.payments[0].assetId == V))
498+ else (cb.payments[0].assetId == V))
498499 then true
499- else f(makeString(["payment assetId should be:", T], " ")), if ((cd > 0))
500+ else f(makeString(["payment assetId should be:", T], " ")), if ((ce > 0))
500501 then true
501- else f("amount should be greater than 0"), if ((cg >= cd))
502+ else f("amount should be greater than 0"), if ((ch >= ce))
502503 then true
503- else f("amount should be less or equal (payment + available) amount"), if ((cd >= cf))
504+ else f("amount should be less or equal (payment + available) amount"), if ((ce >= cg))
504505 then true
505506 else throw("amount should be greater or equal payment amount"), if (Z(A))
506507 then true
507508 else f(makeString(["node address is not valid:", A], " ")), if (Z(C))
508509 then true
509510 else f(makeString(["user address is not valid:", C], " "))]
510- if ((bO == bO))
511+ if ((bP == bP))
511512 then {
512- let ch = aW(A)
513- let bb = ch._1
514- let bd = ch._2
515- let bP = (bd + cd)
516- let ci = bh(A, C)
517- let bf = ci._1
518- let bg = ci._2
519- let bQ = (bg + cd)
520- let cj = (cd - cf)
521- let bS = max([0, (bn - cj)])
522- let bY = min([bm, (bm + (bn - cj))])
513+ let ci = aW(A)
514+ let bb = ci._1
515+ let bd = ci._2
516+ let bQ = (bd + ce)
517+ let cj = bh(A, C)
518+ let bf = cj._1
519+ let bg = cj._2
520+ let bR = (bg + ce)
521+ let ck = (ce - cg)
522+ let bT = max([0, (bn - ck)])
523+ let bZ = min([bm, (bm + (bn - ck))])
523524 let bt = bu(C)
524- let bT = (bt + cd)
525- let bU = bE(C)
526- ([aS(A, bb, bP), be(A, C, bf, bQ), bl(C, bY, bS), bs(C, bT), IntegerEntry(K(A), bP), IntegerEntry(M(A, C), bQ)] ++ bU)
525+ let bU = (bt + ce)
526+ let bV = bE(C)
527+ ([aS(A, bb, bQ), be(A, C, bf, bR), bl(C, bZ, bT), bs(C, bU), IntegerEntry(K(A), bQ), IntegerEntry(M(A, C), bR)] ++ bV)
527528 }
528529 else throw("Strict value is not equal to itself.")
529530 }
530531
531532
532-func ck (A,C,ca) = {
533- let bO = [if ((size(ca.payments) == 1))
533+func cl (A,C,cb) = {
534+ let bP = [if ((size(cb.payments) == 1))
534535 then true
535536 else f("payment size should be exactly 1")]
536- if ((bO == bO))
537- then cc(A, C, ca.payments[0].amount, ca)
537+ if ((bP == bP))
538+ then cd(A, C, cb.payments[0].amount, cb)
538539 else throw("Strict value is not equal to itself.")
539540 }
540541
541542
542-func cl (cm) = {
543- let cn = [if ((cm > 0))
543+func cm (cn) = {
544+ let co = [if ((cn > 0))
544545 then true
545546 else f("period length should be greater than 0")]
546- if ((cn == cn))
547+ if ((co == co))
547548 then if ((t == -1))
548- then [IntegerEntry(o, cm), IntegerEntry(n, height)]
549- else [IntegerEntry(m, (u + 1)), IntegerEntry(n, w), IntegerEntry(o, cm)]
549+ then [IntegerEntry(o, cn), IntegerEntry(n, height)]
550+ else [IntegerEntry(m, (u + 1)), IntegerEntry(n, w), IntegerEntry(o, cn)]
550551 else throw("Strict value is not equal to itself.")
551552 }
552553
553554
554-func co (C) = {
555- let cp = bv(C)
556- let cq = cp._1
557- let bJ = cp._2
558- let bz = cp._3
559- let cr = valueOrElse(getInteger(this, G(C)), 0)
560- let cs = (cq + cr)
561- let ct = valueOrElse(getInteger(this, I(C)), 0)
562- let bC = (ct + bJ)
563- let cu = valueOrElse(getInteger(this, H(C)), 0)
564- let cv = valueOrElse(getInteger(this, J(C)), 0)
565- $Tuple5(cs, cu, bC, cv, bz)
555+func cp (C) = {
556+ let cq = bv(C)
557+ let cr = cq._1
558+ let bJ = cq._2
559+ let bz = cq._3
560+ let bK = cq._4
561+ let cs = valueOrElse(getInteger(this, G(C)), 0)
562+ let ct = (cr + cs)
563+ let cu = valueOrElse(getInteger(this, I(C)), 0)
564+ let bC = (cu + bJ)
565+ let cv = valueOrElse(getInteger(this, H(C)), 0)
566+ let cw = valueOrElse(getInteger(this, J(C)), 0)
567+ $Tuple5(ct, cv, bC, cw, bz)
566568 }
567569
568570
569-func cw (C) = {
570- let cx = co(C)
571- let cs = cx._1
572- let cu = cx._2
573- let bC = cx._3
574- let cv = cx._4
575- let bx = cx._5
576- let cn = [if ((cs > 0))
571+func cx (C) = {
572+ let cy = cp(C)
573+ let ct = cy._1
574+ let cv = cy._2
575+ let bC = cy._3
576+ let cw = cy._4
577+ let bx = cy._5
578+ let co = [if ((ct > 0))
577579 then true
578580 else f("nothing to claim")]
579- if ((cn == cn))
581+ if ((co == co))
580582 then {
581- let cy = {
583+ let cz = {
582584 let R = V
583585 if ($isInstanceOf(R, "ByteVector"))
584586 then {
585- let cz = R
586-[Burn(cz, bC)]
587+ let cA = R
588+[Burn(cA, bC)]
587589 }
588590 else nil
589591 }
590- ([IntegerEntry(F(C), bx), IntegerEntry(H(C), (cu + cs)), IntegerEntry(J(C), (cv + bC)), IntegerEntry(G(C), 0), IntegerEntry(I(C), 0), ScriptTransfer(addressFromStringValue(C), cs, W)] ++ cy)
592+ ([IntegerEntry(F(C), bx), IntegerEntry(H(C), (cv + ct)), IntegerEntry(J(C), (cw + bC)), IntegerEntry(G(C), 0), IntegerEntry(I(C), 0), ScriptTransfer(addressFromStringValue(C), ct, W)] ++ cz)
591593 }
592594 else throw("Strict value is not equal to itself.")
593595 }
594596
595597
596-@Callable(ca)
597-func setNewPeriodLength (cm) = {
598- let bO = [if (aq(toString(ca.caller)))
598+@Callable(cb)
599+func setNewPeriodLength (cn) = {
600+ let bP = [if (aq(toString(cb.caller)))
599601 then true
600602 else f("caller is not in adminList")]
601- if ((bO == bO))
602- then cl(cm)
603+ if ((bP == bP))
604+ then cm(cn)
603605 else throw("Strict value is not equal to itself.")
604606 }
605607
606608
607609
608-@Callable(ca)
610+@Callable(cb)
609611 func claimUnits () = {
610- let C = toString(ca.caller)
611- cw(C)
612+ let C = toString(cb.caller)
613+ cx(C)
612614 }
613615
614616
615617
616-@Callable(ca)
617-func setForceStopFlag (cA) = {
618- let cn = [if (aq(toString(ca.caller)))
618+@Callable(cb)
619+func setForceStopFlag (cB) = {
620+ let co = [if (aq(toString(cb.caller)))
619621 then true
620622 else f("caller is not in adminList")]
621- if ((cn == cn))
622- then [BooleanEntry(i, cA)]
623+ if ((co == co))
624+ then [BooleanEntry(i, cB)]
623625 else throw("Strict value is not equal to itself.")
624626 }
625627
626628
627629
628-@Callable(ca)
629-func setForceOutStopFlag (cA) = {
630- let cn = [if (aq(toString(ca.caller)))
630+@Callable(cb)
631+func setForceOutStopFlag (cB) = {
632+ let co = [if (aq(toString(cb.caller)))
631633 then true
632634 else f("caller is not in adminList")]
633- if ((cn == cn))
634- then [BooleanEntry(j, cA)]
635+ if ((co == co))
636+ then [BooleanEntry(j, cB)]
635637 else throw("Strict value is not equal to itself.")
636638 }
637639
638640
639641
640-@Callable(ca)
642+@Callable(cb)
641643 func getNodeDataREADONLY (A) = {
642- let cB = aW(A)
643- let cC = cB._1
644- let aU = cB._2
645- $Tuple2(nil, $Tuple5(v, cC, w, aU, height))
644+ let cC = aW(A)
645+ let cD = cC._1
646+ let aU = cC._2
647+ $Tuple2(nil, $Tuple5(v, cD, w, aU, height))
646648 }
647649
648650
649651
650-@Callable(ca)
652+@Callable(cb)
651653 func getUserLeasingDataREADONLY (A,C) = {
652- let cD = bh(A, C)
653- let cC = cD._1
654- let aU = cD._2
655- $Tuple2(nil, $Tuple5(v, cC, w, aU, height))
654+ let cE = bh(A, C)
655+ let cD = cE._1
656+ let aU = cE._2
657+ $Tuple2(nil, $Tuple5(v, cD, w, aU, height))
656658 }
657659
658660
659661
660-@Callable(ca)
662+@Callable(cb)
661663 func getUserDataREADONLY (C) = {
662- let cE = bo(C)
663- let bm = cE._1
664- let bn = cE._2
664+ let cF = bo(C)
665+ let bm = cF._1
666+ let bn = cF._2
665667 let bt = bu(C)
666- let cF = co(C)
667- let cs = cF._1
668- let cu = cF._2
669- let bC = cF._3
670- let cv = cF._4
671- let bx = cF._5
668+ let cG = cp(C)
669+ let ct = cG._1
670+ let cv = cG._2
671+ let bC = cG._3
672+ let cw = cG._4
673+ let bx = cG._5
672674 let by = valueOrElse(getInteger(this, l), 0)
673- let cG = max([0, ((x + y) - height)])
674- $Tuple2(nil, $Tuple13(v, bm, w, bn, bt, height, cs, cu, bC, cv, bx, by, cG))
675+ let cH = max([0, ((x + y) - height)])
676+ $Tuple2(nil, $Tuple13(v, bm, w, bn, bt, height, ct, cv, bC, cw, bx, by, cH))
675677 }
676678
677679
678680
679-@Callable(ca)
680-func leaseByAddress (A,C) = ck(A, C, ca)
681+@Callable(cb)
682+func leaseByAddress (A,C) = cl(A, C, cb)
681683
682684
683685
684-@Callable(ca)
686+@Callable(cb)
685687 func lease (A) = {
686- let C = toString(ca.caller)
687- ck(A, C, ca)
688+ let C = toString(cb.caller)
689+ cl(A, C, cb)
688690 }
689691
690692
691693
692-@Callable(ca)
693-func leaseFromLocked (A,cH) = {
694- let C = toString(ca.caller)
695- cc(A, C, cH, ca)
694+@Callable(cb)
695+func leaseFromLocked (A,cI) = {
696+ let C = toString(cb.caller)
697+ cd(A, C, cI, cb)
696698 }
697699
698700
699701
700-@Callable(ca)
701-func cancelLease (A,cH) = {
702- let C = toString(ca.caller)
703- bK(A, C, cH)
702+@Callable(cb)
703+func cancelLease (A,cI) = {
704+ let C = toString(cb.caller)
705+ bL(A, C, cI)
704706 }
705707
706708
707709
708-@Callable(ca)
709-func claim (cH) = {
710- let C = toString(ca.caller)
711- bV(C, cH)
710+@Callable(cb)
711+func claim (cI) = {
712+ let C = toString(cb.caller)
713+ bW(C, cI)
712714 }
713715
714716
715717
716-@Callable(ca)
718+@Callable(cb)
717719 func claimAll () = {
718- let C = toString(ca.caller)
719- let cI = bo(C)
720- let bm = cI._1
721- let bn = cI._2
722- let bO = [if ((bm > 0))
720+ let C = toString(cb.caller)
721+ let cJ = bo(C)
722+ let bm = cJ._1
723+ let bn = cJ._2
724+ let bP = [if ((bm > 0))
723725 then true
724726 else f("nothing to claim")]
725- if ((bO == bO))
726- then bV(C, bm)
727+ if ((bP == bP))
728+ then bW(C, bm)
727729 else throw("Strict value is not equal to itself.")
728730 }
729731
730732
731733
732-@Callable(ca)
733-func stakeFor (C) = bZ(C, ca)
734+@Callable(cb)
735+func stakeFor (C) = ca(C, cb)
734736
735737
736738
737-@Callable(ca)
738-func startUnitsVesting (y) = {
739- let cJ = 100000000000000000
740- let cK = ca.payments[0].amount
741- let by = (fraction(cK, e, cJ) / y)
742- let cn = [if (aq(toString(ca.caller)))
739+@Callable(cb)
740+func startUnitsVesting (cK) = {
741+ let cL = 100000000000000000
742+ let cM = cb.payments[0].amount
743+ let by = (fraction(cM, e, cL) / cK)
744+ let co = [if (aq(toString(cb.caller)))
743745 then true
744- else f("caller is not in adminList"), if ((size(ca.payments) == 1))
746+ else f("caller is not in adminList"), if ((size(cb.payments) == 1))
745747 then true
746748 else f("should be 1 payment"), if ((by > 0))
747749 then true
748750 else f("units per block should be greated than 0")]
749- if ((cn == cn))
750- then [IntegerEntry(l, by), IntegerEntry(p, height), IntegerEntry(q, y), StringEntry(k, P(ca.payments[0].assetId))]
751+ if ((co == co))
752+ then [IntegerEntry(l, by), IntegerEntry(p, height), IntegerEntry(q, cK), StringEntry(k, P(cb.payments[0].assetId))]
751753 else throw("Strict value is not equal to itself.")
752754 }
753755
754756
755757
756-@Callable(ca)
758+@Callable(cb)
757759 func voteForTxId (af) = {
758- let aM = toBase58String(ca.caller.bytes)
760+ let aM = toBase58String(cb.caller.bytes)
759761 let av = ae(af)
760762 let at = [StringEntry(ak(), af)]
761- let cL = getString(this, ak())
763+ let cN = getString(this, ak())
762764 let aQ = [if ((size(fromBase58String(af)) == ad))
763765 then true
764- else f((af + " is not valid txId")), if (if ((cL == unit))
766+ else f((af + " is not valid txId")), if (if ((cN == unit))
765767 then true
766- else (value(cL) != af))
768+ else (value(cN) != af))
767769 then true
768770 else f((af + " is already allowed"))]
769771 if ((aQ == aQ))
770772 then aL(aM, av, ac, at)
771773 else throw("Strict value is not equal to itself.")
772774 }
773775
774776
775-@Verifier(cM)
776-func cN () = {
777- let cO = (cM.id == fromBase58String(valueOrElse(getString(this, ak()), "")))
778- let cP = if ((size(ao()) >= ac))
777+@Verifier(cO)
778+func cP () = {
779+ let cQ = (cO.id == fromBase58String(valueOrElse(getString(this, ak()), "")))
780+ let cR = if ((size(ao()) >= ac))
779781 then false
780- else sigVerify(cM.bodyBytes, cM.proofs[0], cM.senderPublicKey)
781- if (cO)
782+ else sigVerify(cO.bodyBytes, cO.proofs[0], cO.senderPublicKey)
783+ if (cQ)
782784 then true
783- else cP
785+ else cR
784786 }
785787

github/deemru/w8io/169f3d6 
185.14 ms