tx · 5FdSS9RqcRhx5ng65ePpcAARKSu7MER8U9nr7sFqKN1E

3NAfzeA3URU6oCV6HvtAiNwqGXsTs87ZpHh:  -0.02200000 Waves

2023.01.07 12:05 [2394331] smart account 3NAfzeA3URU6oCV6HvtAiNwqGXsTs87ZpHh > SELF 0.00000000 Waves

{ "type": 13, "id": "5FdSS9RqcRhx5ng65ePpcAARKSu7MER8U9nr7sFqKN1E", "fee": 2200000, "feeAssetId": null, "timestamp": 1673082350284, "version": 2, "chainId": 84, "sender": "3NAfzeA3URU6oCV6HvtAiNwqGXsTs87ZpHh", "senderPublicKey": "HiTi1JT7GQRqLNxg4yZhD1mV42y1Mv2AYvRx92JQRbwX", "proofs": [ "5pBqy8Qzt1ze7qfkHnnerWarF8x25eQpUeWAXzmvmur6nqbdDLdcuYFZWToaC4YjqcWuaBZzwVCbNsU1mfEFoMzW" ], "script": "base64:BgJPCAISBAoCAQQSBQoDCAEBEgUKAwgBARIDCgEIEgMKAQgSBAoCCAESBQoDCAEIEgUKAwgBCBIDCgEBEgMKAQESBAoCAQESAwoBARIECgIBAXIABkVVTEVSOADWic+BAQAFTVVMVDYAwIQ9AAZNVUxUWDYJALYCAQDAhD0ABU1VTFQ4AIDC1y8ABk1VTFRYOAkAtgIBAIDC1y8AB01VTFRYMTAJALYCAQCAyK+gJQAGTVVMVDEyAICglKWNHQAHTVVMVFgxNgkAtgIBAICAhP6m3uERAAZNVUxUMTgJALYCAQCAgJC7utat8A0AA1NFUAICX18AEURFRkFVTFRTV0FQRkVFTjJXAIgnABFERUZBVUxUU1dBUEZFRVcyTgCgnAEAC0JSUFJPVEVDVEVEAKCNBgAHV0FWRVNJRAkA2QQBAgVXQVZFUwAJREFZTUlMTElTAIC4mSkBEmtleU5ldXRyaW5vQXNzZXRJZAACEW5ldXRyaW5vX2Fzc2V0X2lkAQ5rZXlOc2J0QXNzZXRJZAACDWJvbmRfYXNzZXRfaWQBDmtleVN1cmZBc3NldElkAAINc3VyZl9hc3NldF9pZAEQa2V5QmFsYW5jZUxvY2tlZAACDWJhbGFuY2VfbG9ja18BFWtleVdhdmVzTG9ja2VkQmFsYW5jZQAJAKwCAgkBEGtleUJhbGFuY2VMb2NrZWQAAgV3YXZlcwEYa2V5TmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAkArAICCQEQa2V5QmFsYW5jZUxvY2tlZAACCG5ldXRyaW5vARVrZXlNaW5XYXZlc1N3YXBBbW91bnQAAhVtaW5fd2F2ZXNfc3dhcF9hbW91bnQBGGtleU1pbk5ldXRyaW5vU3dhcEFtb3VudAACGG1pbl9uZXV0cmlub19zd2FwX2Ftb3VudAESa2V5V2F2ZXNPdXRGZWVQYXJ0AAIVd2F2ZXNPdXRfc3dhcF9mZWVQYXJ0ARVrZXlOZXV0cmlub091dEZlZVBhcnQAAhhuZXV0cmlub091dF9zd2FwX2ZlZVBhcnQBE2tleVN3YXBBbW91bnRBUGFyYW0AAhglcyVzX19jb25maWdfX3N3YXBBUGFyYW0BE2tleVN3YXBBbW91bnRCUGFyYW0AAhglcyVzX19jb25maWdfX3N3YXBCUGFyYW0BF2tleVVzZG5Td2FwQW1vdW50QVBhcmFtAAIcJXMlc19fY29uZmlnX191c2RuU3dhcEFQYXJhbQEXa2V5VXNkblN3YXBBbW91bnRCUGFyYW0AAhwlcyVzX19jb25maWdfX3VzZG5Td2FwQlBhcmFtARNrZXlOc2J0TG9ja0NvbnRyYWN0AAIUJXNfX25zYnRMb2NrQ29udHJhY3QBD2tleU1hdGhDb250cmFjdAACECVzX19tYXRoQ29udHJhY3QBG2tleUJhbGFuY2VXYXZlc0xvY2tJbnRlcnZhbAACG2JhbGFuY2Vfd2F2ZXNfbG9ja19pbnRlcnZhbAEea2V5QmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsAAIeYmFsYW5jZV9uZXV0cmlub19sb2NrX2ludGVydmFsAQhrZXlQcmljZQACBXByaWNlARZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtwYXJhbUJ5VXNlcgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCAgVzdGFydAUDbmlsBQNTRVABC2tleUhhbGZMaWZlAAIMJXNfX2hhbGZMaWZlARBrZXlNaW5Mb2NrQW1vdW50AAIRJXNfX21pbkxvY2tBbW91bnQBFWtleU1pbldhdmVzRm9yTnNidEJ1eQACEm1pbl93YXZlc19uc2J0X2J1eQEOa2V5TWluTnNidFNlbGwAAg1taW5fbnNidF9zZWxsARdrZXlTdGF0c0RlcG9zaXRBbXRCeURheQEJdGltZXN0YW1wCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICBXN0YXRzCQDMCAICD2RlcG9zaXRBbXRCeURheQkAzAgCCQCkAwEFCXRpbWVzdGFtcAUDbmlsBQNTRVABDHRvU3RhcnRPZkRheQEJdGltZXN0YW1wCQBoAgkAaQIFCXRpbWVzdGFtcAUJREFZTUlMTElTBQlEQVlNSUxMSVMBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAENZ2V0Qm9vbE9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRJbnRPckVsc2UDB2FkZHJlc3MDa2V5CmRlZmF1bHRWYWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUHYWRkcmVzcwUDa2V5BQpkZWZhdWx0VmFsAQxnZXRTdHJPckVsc2UDB2FkZHJlc3MDa2V5CmRlZmF1bHRWYWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUHYWRkcmVzcwUDa2V5BQpkZWZhdWx0VmFsARZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAgZhbW91bnQFcHJpY2UJAGsDBQZhbW91bnQFBU1VTFQ4BQVwcmljZQEWY29udmVydFdhdmVzVG9OZXV0cmlubwIGYW1vdW50BXByaWNlCQBrAwUGYW1vdW50BQVwcmljZQUFTVVMVDgBCWFzQW55TGlzdAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAp2YWxBbnlMaXN0BQckbWF0Y2gwBQp2YWxBbnlMaXN0CQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQVhc0ludAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIDSW50BAZ2YWxJbnQFByRtYXRjaDAFBnZhbEludAkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEIYXNTdHJpbmcBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQGdmFsU3RyBQckbWF0Y2gwBQZ2YWxTdHIJAAIBAhhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdgUHJG1hdGNoMAUBdgkAAgECHWZhaWwgdG8gY2FzdCBpbnRvIFR1cGxlMiBpbnRzARJhc1N3YXBQYXJhbXNTVFJVQ1QBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACIyhJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50LCBJbnQpBAZzdHJ1Y3QFByRtYXRjaDAFBnN0cnVjdAkAAgECImZhaWwgdG8gY2FzdCBpbnRvIFN3YXBQYXJhbXNTVFJVQ1QBFmFzV2l0aGRyYXdSZXN1bHRTVFJVQ1QBA3ZhbAQHJG1hdGNoMAUDdmFsAwMJAAECBQckbWF0Y2gwAikoSW50LCBVbml0LCBJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50KQYJAAECBQckbWF0Y2gwAi8oSW50LCBCeXRlVmVjdG9yLCBJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50KQQGc3RydWN0BQckbWF0Y2gwBQZzdHJ1Y3QJAAIBAiBmYWlsIHRvIGNhc3QgaW50byBXaXRoZHJhd1Jlc3VsdAELdG9UaW1lc3RhbXABBXN0YXJ0AwkAZgIAAAUFc3RhcnQA////////////AQQHJG1hdGNoMAkA7QcBBQVzdGFydAMJAAECBQckbWF0Y2gwAglCbG9ja0luZm8EBWJsb2NrBQckbWF0Y2gwCAUFYmxvY2sJdGltZXN0YW1wAP///////////wEBBXRvWDE4AgdvcmlnVmFsDW9yaWdTY2FsZU11bHQJALwCAwkAtgIBBQdvcmlnVmFsBQZNVUxUMTgJALYCAQUNb3JpZ1NjYWxlTXVsdAEHZnJvbVgxOAIDdmFsD3Jlc3VsdFNjYWxlTXVsdAkAoAMBCQC8AgMFA3ZhbAkAtgIBBQ9yZXN1bHRTY2FsZU11bHQFBk1VTFQxOAAPbk1ldHJpY0lkeFByaWNlAAAAG25NZXRyaWNJZHhVc2RuTG9ja2VkQmFsYW5jZQABABxuTWV0cmljSWR4V2F2ZXNMb2NrZWRCYWxhbmNlAAIAEW5NZXRyaWNJZHhSZXNlcnZlAAMAF25NZXRyaWNJZHhSZXNlcnZlSW5Vc2RuAAQAFG5NZXRyaWNJZHhVc2RuU3VwcGx5AAUAEW5NZXRyaWNJZHhTdXJwbHVzAAYAGG5NZXRyaWNJZHhTdXJwbHVzUGVyY2VudAAHAAxuTWV0cmljSWR4QlIACAAUbk1ldHJpY0lkeE5zYnRTdXBwbHkACQAXbk1ldHJpY0lkeE1heE5zYnRTdXBwbHkACgAUbk1ldHJpY0lkeFN1cmZTdXBwbHkACwAZSWR4Q29udHJvbENmZ05ldXRyaW5vRGFwcAABABhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAAgAUSWR4Q29udHJvbENmZ1JwZERhcHAAAwAVSWR4Q29udHJvbENmZ01hdGhEYXBwAAQAHElkeENvbnRyb2xDZmdMaXF1aWRhdGlvbkRhcHAABQAVSWR4Q29udHJvbENmZ1Jlc3REYXBwAAYAHUlkeENvbnRyb2xDZmdOb2RlUmVnaXN0cnlEYXBwAAcAHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAACAAZSWR4Q29udHJvbENmZ01lZGlhdG9yRGFwcAAJABxJZHhDb250cm9sQ2ZnU3VyZlN0YWtpbmdEYXBwAAoAIElkeENvbnRyb2xDZmdHbnNidENvbnRyb2xsZXJEYXBwAAsADGJGdW5jSWR4U3VyZgAAAA1iRnVuY0lkeFdhdmVzAAEADGJGdW5jSWR4VXNkbgACABRiRnVuY0lkeFJlc2VydmVTdGFydAADABNiRnVuY0lkeFN1cHBseVN0YXJ0AAQAD2JGdW5jSWR4QlJTdGFydAAFABJiRnVuY0lkeFJlc2VydmVFbmQABgARYkZ1bmNJZHhTdXBwbHlFbmQABwANYkZ1bmNJZHhCUkVuZAAIAAxiRnVuY0lkeFJlc3QACQASYkZ1bmNJZHhXYXZlc1ByaWNlAAoBEWtleUNvbnRyb2xBZGRyZXNzAAIcJXMlc19fY29uZmlnX19jb250cm9sQWRkcmVzcwENa2V5Q29udHJvbENmZwACESVzX19jb250cm9sQ29uZmlnARRyZWFkQ29udHJvbENmZ09yRmFpbAEHY29udHJvbAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUHY29udHJvbAkBDWtleUNvbnRyb2xDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIKY29udHJvbENmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCmNvbnRyb2xDZmcFA2lkeAkArAICAi1Db250cm9sIGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AA9jb250cm9sQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBEWtleUNvbnRyb2xBZGRyZXNzAAIjM040TlM3ZDRKbzlhNkYxNExpRlVLS1lWZFVra2YyZVA0WngACmNvbnRyb2xDZmcJARRyZWFkQ29udHJvbENmZ09yRmFpbAEFD2NvbnRyb2xDb250cmFjdAAMbWF0aENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUVSWR4Q29udHJvbENmZ01hdGhEYXBwABBuZXV0cmlub0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUZSWR4Q29udHJvbENmZ05ldXRyaW5vRGFwcAAPYXVjdGlvbkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwABNsaXF1aWRhdGlvbkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUcSWR4Q29udHJvbENmZ0xpcXVpZGF0aW9uRGFwcAALcnBkQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRRJZHhDb250cm9sQ2ZnUnBkRGFwcAATbnNidFN0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAAE3N1cmZTdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRxJZHhDb250cm9sQ2ZnU3VyZlN0YWtpbmdEYXBwABdnbnNidENvbnRyb2xsZXJDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFIElkeENvbnRyb2xDZmdHbnNidENvbnRyb2xsZXJEYXBwABVuZXV0cmlub0Fzc2V0SWRTdHJpbmcJAQ9nZXRTdHJpbmdPckZhaWwCBRBuZXV0cmlub0NvbnRyYWN0CQESa2V5TmV1dHJpbm9Bc3NldElkAAAPbmV1dHJpbm9Bc3NldElkCQDZBAEFFW5ldXRyaW5vQXNzZXRJZFN0cmluZwAObnNidEFzc2V0SWRTdHIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFEG5ldXRyaW5vQ29udHJhY3QJAQ5rZXlOc2J0QXNzZXRJZAAAC25zYnRBc3NldElkCQDZBAEFDm5zYnRBc3NldElkU3RyAA5zdXJmQXNzZXRJZFN0cgkBEUBleHRyTmF0aXZlKDEwNTMpAgUPYXVjdGlvbkNvbnRyYWN0CQEOa2V5U3VyZkFzc2V0SWQAAAtzdXJmQXNzZXRJZAkA2QQBBQ5zdXJmQXNzZXRJZFN0cgEUcmVhZFVzZG5JbmNvbWVGb3JEYXkDCnN0YWtpbmdBY2MTc3RhcnRPZkRheVRpbWVzdGFtcA9uZXV0cmlub01ldHJpY3MEC2FtdEJ5RGF5S0VZCQEXa2V5U3RhdHNEZXBvc2l0QW10QnlEYXkBBRNzdGFydE9mRGF5VGltZXN0YW1wBAlpbmNvbWVTdHIJAQxnZXRTdHJPckVsc2UDBQpzdGFraW5nQWNjBQthbXRCeURheUtFWQIKJXMlc19fMF9fMAQLaW5jb21lQXJyYXkJALUJAgUJaW5jb21lU3RyBQNTRVAECHdhdmVzQW10CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULaW5jb21lQXJyYXkAAQQHdXNkbkFtdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC2luY29tZUFycmF5AAIEDGN1cnJlbnRQcmljZQkBBWFzSW50AQkAkQMCBQ9uZXV0cmlub01ldHJpY3MFD25NZXRyaWNJZHhQcmljZQQOd2F2ZXNBc1VzZG5BbXQJAGsDBQh3YXZlc0FtdAUMY3VycmVudFByaWNlBQVNVUxUOAkAZAIFDndhdmVzQXNVc2RuQW10BQd1c2RuQW10ARdjYWxjVXNkbkluY29tZUZvclBlcmlvZAIKc3Rha2luZ0FjYwRkYXlzBA9uZXV0cmlub01ldHJpY3MJAQlhc0FueUxpc3QBCQD8BwQFDG1hdGhDb250cmFjdAIaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkFA25pbAUDbmlsBA5jdXJyU3RhcnRPZkRheQkBDHRvU3RhcnRPZkRheQEIBQlsYXN0QmxvY2sJdGltZXN0YW1wBA5zdGFydFRpbWVzdGFtcAkAZQIFDmN1cnJTdGFydE9mRGF5CQBoAgUJREFZTUlMTElTCQBkAgUEZGF5cwABBAxlbmRUaW1lc3RhbXAJAGUCBQ5jdXJyU3RhcnRPZkRheQUJREFZTUlMTElTBA9zdGFydFVzZG5BbXRUTVAJARRyZWFkVXNkbkluY29tZUZvckRheQMFCnN0YWtpbmdBY2MFDnN0YXJ0VGltZXN0YW1wBQ9uZXV0cmlub01ldHJpY3MECmVuZFVzZG5BbXQJARRyZWFkVXNkbkluY29tZUZvckRheQMFCnN0YWtpbmdBY2MFDGVuZFRpbWVzdGFtcAUPbmV1dHJpbm9NZXRyaWNzBAxzdGFydFVzZG5BbXQDCQAAAgUPc3RhcnRVc2RuQW10VE1QAAAFCmVuZFVzZG5BbXQFD3N0YXJ0VXNkbkFtdFRNUAkAZQIFCmVuZFVzZG5BbXQFDHN0YXJ0VXNkbkFtdAEHY2FsY0FwcgQKc3Rha2luZ0FjYwxwZXJpb2RJbkRheXMPaW5jb21lRm9yUGVyaW9kGXN0YWtpbmdBc3NldFByaWNlVG9Vc2RuWDYEC3RvdGFsU3Rha2VkCQEMZ2V0SW50T3JFbHNlAwUKc3Rha2luZ0FjYwIeJXMlc19fc3RhdHNfX2FjdGl2ZVRvdGFsTG9ja2VkAAEEEXRvdGFsU3Rha2VkSW5Vc2RuCQBrAwULdG90YWxTdGFrZWQFGXN0YWtpbmdBc3NldFByaWNlVG9Vc2RuWDYFBU1VTFQ2AwkAZgIAAAUPaW5jb21lRm9yUGVyaW9kAAAJAGsDCQBoAgUPaW5jb21lRm9yUGVyaW9kBQVNVUxUNgDtAgkAaAIFEXRvdGFsU3Rha2VkSW5Vc2RuBQxwZXJpb2RJbkRheXMNAWkBGHJldmVyc2VTd2FwTGltaXRSRUFET05MWQIDbGltC2lzV2F2ZXNTd2FwBAJCUgkBBWFzSW50AQkAkQMCCQEJYXNBbnlMaXN0AQkA/AcEBQxtYXRoQ29udHJhY3QCGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAUMbk1ldHJpY0lkeEJSBAVnTnNidAMJAGcCAAAFA2xpbQAABAhhUGFyYW1YOAkAtgIBCQEMZ2V0SW50T3JGYWlsAgUMbWF0aENvbnRyYWN0AwULaXNXYXZlc1N3YXAJARNrZXlTd2FwQW1vdW50QVBhcmFtAAkBF2tleVVzZG5Td2FwQW1vdW50QVBhcmFtAAQJYlBhcmFtWDE2CQC2AgEJAQxnZXRJbnRPckZhaWwCBQxtYXRoQ29udHJhY3QDBQtpc1dhdmVzU3dhcAkBE2tleVN3YXBBbW91bnRCUGFyYW0ACQEXa2V5VXNkblN3YXBBbW91bnRCUGFyYW0ABAlsaW1EaXZBWDgDBQtpc1dhdmVzU3dhcAkAvAIDCQC2AgEFA2xpbQUHTVVMVFgxMAUIYVBhcmFtWDgJALwCAwkAvAIDCQC2AgEFA2xpbQUHTVVMVFgxMAUIYVBhcmFtWDgFBk1VTFRYNgkAtgIBBQJCUgQHcmV2QlgxNgkAvAIDBQdNVUxUWDE2BQdNVUxUWDE2BQliUGFyYW1YMTYJAKADAQkAdgYFCWxpbURpdkFYOAAIBQdyZXZCWDE2ABAABgUHQ0VJTElORwkAlAoCBQNuaWwFBWdOc2J0AWkBEWduc2J0SW5mb0lOVEVSTkFMAxV1c2VyQWRkcmVzc1N0ck9yRW1wdHkbYWRkaXRpb25hbE5zYnRUb1N0YWtlT3JaZXJvG2FkZGl0aW9uYWxTdXJmVG9TdGFrZU9yWmVybwQRdXNlckFkZHJlc3NPclRoaXMDCQECIT0CBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkCAAkBEUBleHRyTmF0aXZlKDEwNjIpAQUVdXNlckFkZHJlc3NTdHJPckVtcHR5BQR0aGlzBAxjdXJyZW50UHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFD2NvbnRyb2xDb250cmFjdAkBCGtleVByaWNlAAQRZ25zYnRGcm9tTnNidERpZmYFG2FkZGl0aW9uYWxOc2J0VG9TdGFrZU9yWmVybwQRZ25zYnRGcm9tU3VyZkRpZmYJAQVhc0ludAEJAPwHBAUTc3VyZlN0YWtpbmdDb250cmFjdAIYZ25zYnRGcm9tU3VyZlNZU1JFQURPTkxZCQDMCAIFG2FkZGl0aW9uYWxTdXJmVG9TdGFrZU9yWmVybwUDbmlsBQNuaWwECWdOc2J0RGlmZgkAZAIFEWduc2J0RnJvbU5zYnREaWZmBRFnbnNidEZyb21TdXJmRGlmZgQPc3dhcFBhcmFtc1R1cGxlCQESYXNTd2FwUGFyYW1zU1RSVUNUAQkA/AcEBRBuZXV0cmlub0NvbnRyYWN0Ahtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5CQDMCAIAAAUDbmlsBQNuaWwEDmJsY2tzMkxtdFJlc2V0CAUPc3dhcFBhcmFtc1R1cGxlAl8zBAhnbnNidEFtdAgFD3N3YXBQYXJhbXNUdXBsZQJfNAQNZ25zYnRBbXRUb3RhbAgFD3N3YXBQYXJhbXNUdXBsZQJfNQQNbGltaXRNYXhXYXZlcwgFD3N3YXBQYXJhbXNUdXBsZQJfNgQMbGltaXRNYXhVc2RuCAUPc3dhcFBhcmFtc1R1cGxlAl83BBJzd2FwUGFyYW1zVHVwbGVORVcJARJhc1N3YXBQYXJhbXNTVFJVQ1QBCQD8BwQFEG5ldXRyaW5vQ29udHJhY3QCG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkJAMwIAgUJZ05zYnREaWZmBQNuaWwFA25pbAQRYmxja3MyTG10UmVzZXRORVcIBRJzd2FwUGFyYW1zVHVwbGVORVcCXzMEC2duc2J0QW10TkVXCAUSc3dhcFBhcmFtc1R1cGxlTkVXAl80BBBnbnNidEFtdFRvdGFsTkVXCAUSc3dhcFBhcmFtc1R1cGxlTkVXAl81BBBsaW1pdE1heFdhdmVzTkVXCAUSc3dhcFBhcmFtc1R1cGxlTkVXAl82BA9saW1pdE1heFVzZG5ORVcIBRJzd2FwUGFyYW1zVHVwbGVORVcCXzcEC25zYnRCYWxhbmNlAwkBAiE9AgUVdXNlckFkZHJlc3NTdHJPckVtcHR5AgAJAPAHAgURdXNlckFkZHJlc3NPclRoaXMFC25zYnRBc3NldElkAAAEC3N1cmZCYWxhbmNlAwkBAiE9AgUVdXNlckFkZHJlc3NTdHJPckVtcHR5AgAJAPAHAgURdXNlckFkZHJlc3NPclRoaXMFC3N1cmZBc3NldElkAAAED25zYnRCYWxhbmNlRGlmZgMJAGcCBRthZGRpdGlvbmFsTnNidFRvU3Rha2VPclplcm8AAAUbYWRkaXRpb25hbE5zYnRUb1N0YWtlT3JaZXJvBBFuc2J0VW5zdGFraW5nRGF0YQkBCWFzQW55TGlzdAEJAPwHBAUTbnNidFN0YWtpbmdDb250cmFjdAIYbnNidFVuc3Rha2luZ1NZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCCQBoAgD///////////8BBRthZGRpdGlvbmFsTnNidFRvU3Rha2VPclplcm8FA25pbAUDbmlsBBFuc2J0UmVjZWl2ZUFtb3VudAkBBWFzSW50AQkAkQMCBRFuc2J0VW5zdGFraW5nRGF0YQACBAZyZXN1bHQJAQEtAQURbnNidFJlY2VpdmVBbW91bnQFBnJlc3VsdAQObnNidEJhbGFuY2VOZXcJAGUCBQtuc2J0QmFsYW5jZQUPbnNidEJhbGFuY2VEaWZmBA5zdXJmQmFsYW5jZU5ldwkAZQIFC3N1cmZCYWxhbmNlBRthZGRpdGlvbmFsU3VyZlRvU3Rha2VPclplcm8ECWduc2J0RGF0YQkBCWFzQW55TGlzdAEJAPwHBAUXZ25zYnRDb250cm9sbGVyQ29udHJhY3QCFGduc2J0SW5mb1NZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCBRthZGRpdGlvbmFsTnNidFRvU3Rha2VPclplcm8JAMwIAgUbYWRkaXRpb25hbFN1cmZUb1N0YWtlT3JaZXJvBQNuaWwFA25pbAQJZ25zYnRVc2VyCQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAABApnbnNidFRvdGFsCQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQABBAhuc2J0RGF0YQkBCWFzQW55TGlzdAEJAJEDAgUJZ25zYnREYXRhAAIECHN1cmZEYXRhCQEJYXNBbnlMaXN0AQkAkQMCBQlnbnNidERhdGEAAwQRdnBFZmZlY3RpdmVIZWlnaHQJAQVhc0ludAEJAJEDAgUJZ25zYnREYXRhAAQEFHZwRWZmZWN0aXZlSGVpZ2h0TkVXCQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAFBBBnbnNidEFtdEZyb21Oc2J0CQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAIEEGduc2J0QW10RnJvbVN1cmYJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEAAgQTZ25zYnRBbXRGcm9tTnNidE5FVwkAZAIFEGduc2J0QW10RnJvbU5zYnQFEWduc2J0RnJvbU5zYnREaWZmBBNnbnNidEFtdEZyb21TdXJmTkVXCQBkAgUQZ25zYnRBbXRGcm9tU3VyZgURZ25zYnRGcm9tU3VyZkRpZmYEEmduc2J0RnJvbU5zYnRUb3RhbAkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQADBBJnbnNidEZyb21TdXJmVG90YWwJAQVhc0ludAEJAJEDAgUIc3VyZkRhdGEAAwQYZ25zYnRGcm9tU3VyZkFjdGl2ZVRvdGFsAAAEGGduc2J0RnJvbVN1cmZGcm96ZW5Ub3RhbAUSZ25zYnRGcm9tU3VyZlRvdGFsBBVnbnNidEZyb21Oc2J0VG90YWxORVcJAGQCBRJnbnNidEZyb21Oc2J0VG90YWwFEWduc2J0RnJvbU5zYnREaWZmBBVnbnNidEZyb21TdXJmVG90YWxORVcJAGQCBRJnbnNidEZyb21TdXJmVG90YWwFEWduc2J0RnJvbVN1cmZEaWZmBBtnbnNidEZyb21TdXJmRnJvemVuVG90YWxORVcFFWduc2J0RnJvbVN1cmZUb3RhbE5FVwQLdm90aW5nUG93ZXIJAGsDBRBnbnNidEFtdEZyb21Oc2J0BQVNVUxUOAkAZAIFEmduc2J0RnJvbU5zYnRUb3RhbAUYZ25zYnRGcm9tU3VyZkFjdGl2ZVRvdGFsBA52b3RpbmdQb3dlck5ldwkAawMFE2duc2J0QW10RnJvbU5zYnRORVcFBU1VTFQ4CQBkAgUVZ25zYnRGcm9tTnNidFRvdGFsTkVXBRhnbnNidEZyb21TdXJmQWN0aXZlVG90YWwEDnZvdGluZ1Bvd2VyTWF4CQBrAwkAZAIFEGduc2J0QW10RnJvbU5zYnQFEGduc2J0QW10RnJvbVN1cmYFBU1VTFQ4CQBkAgkAZAIFEmduc2J0RnJvbU5zYnRUb3RhbAUYZ25zYnRGcm9tU3VyZkFjdGl2ZVRvdGFsBRhnbnNidEZyb21TdXJmRnJvemVuVG90YWwEEXZvdGluZ1Bvd2VyTWF4TmV3CQBrAwkAZAIFE2duc2J0QW10RnJvbU5zYnRORVcFE2duc2J0QW10RnJvbVN1cmZORVcFBU1VTFQ4CQBkAgkAZAIFFWduc2J0RnJvbU5zYnRUb3RhbE5FVwUYZ25zYnRGcm9tU3VyZkFjdGl2ZVRvdGFsBRtnbnNidEZyb21TdXJmRnJvemVuVG90YWxORVcEDnZvdGluZ1Bvd2VyRXRhAwkAAAIFEXZwRWZmZWN0aXZlSGVpZ2h0AAAFBmhlaWdodAURdnBFZmZlY3RpdmVIZWlnaHQEEXZvdGluZ1Bvd2VyRXRhTmV3AwkAAAIFFHZwRWZmZWN0aXZlSGVpZ2h0TkVXAAAFBmhlaWdodAUUdnBFZmZlY3RpdmVIZWlnaHRORVcJAJQKAgUDbmlsCQDMCAIAAAkAzAgCBQtuc2J0QmFsYW5jZQkAzAgCBQtzdXJmQmFsYW5jZQkAzAgCBQ5uc2J0QmFsYW5jZU5ldwkAzAgCBQ5zdXJmQmFsYW5jZU5ldwkAzAgCBRBnbnNidEFtdEZyb21Oc2J0CQDMCAIFEGduc2J0QW10RnJvbVN1cmYJAMwIAgUTZ25zYnRBbXRGcm9tTnNidE5FVwkAzAgCBRNnbnNidEFtdEZyb21TdXJmTkVXCQDMCAIFEmduc2J0RnJvbU5zYnRUb3RhbAkAzAgCBRJnbnNidEZyb21TdXJmVG90YWwJAMwIAgUVZ25zYnRGcm9tTnNidFRvdGFsTkVXCQDMCAIFFWduc2J0RnJvbVN1cmZUb3RhbE5FVwkAzAgCBQxsaW1pdE1heFVzZG4JAMwIAgUNbGltaXRNYXhXYXZlcwkAzAgCBQ9saW1pdE1heFVzZG5ORVcJAMwIAgUQbGltaXRNYXhXYXZlc05FVwkAzAgCBQ5ibGNrczJMbXRSZXNldAkAzAgCBRFibGNrczJMbXRSZXNldE5FVwkAzAgCBQt2b3RpbmdQb3dlcgkAzAgCBQ52b3RpbmdQb3dlck5ldwkAzAgCBQ52b3RpbmdQb3dlck1heAkAzAgCBRF2b3RpbmdQb3dlck1heE5ldwkAzAgCBQ52b3RpbmdQb3dlckV0YQkAzAgCBRF2b3RpbmdQb3dlckV0YU5ldwUDbmlsAWkBEWduc2J0SW5mb1JFQURPTkxZAxV1c2VyQWRkcmVzc1N0ck9yRW1wdHkbYWRkaXRpb25hbE5zYnRUb1N0YWtlT3JaZXJvG2FkZGl0aW9uYWxTdXJmVG9TdGFrZU9yWmVybwQNZ25zYnRJbmZvREFUQQkBCWFzQW55TGlzdAEJAPwHBAUEdGhpcwIRZ25zYnRJbmZvSU5URVJOQUwJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5CQDMCAIFG2FkZGl0aW9uYWxOc2J0VG9TdGFrZU9yWmVybwkAzAgCBRthZGRpdGlvbmFsU3VyZlRvU3Rha2VPclplcm8FA25pbAUDbmlsCQCUCgIFA25pbAkAuQkCCQDMCAICMCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQABCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAIJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAAwkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAECQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAUJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEABgkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAHCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAgJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEACQkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAKCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAsJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEADAkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQANCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAA4JAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEADwkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAQCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBABEJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAEgkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQATCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBABQJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAFQkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAWCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBABcJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAGAUDbmlsBQNTRVABaQEWZ25zYnRFZmZlY3RpdmVSRUFET05MWQEVdXNlckFkZHJlc3NTdHJPckVtcHR5BAlnbnNidERhdGEJAQlhc0FueUxpc3QBCQD8BwQFF2duc2J0Q29udHJvbGxlckNvbnRyYWN0AhRnbnNidEluZm9TWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkJAMwIAgAACQDMCAIAAAUDbmlsBQNuaWwECG5zYnREYXRhCQEJYXNBbnlMaXN0AQkAkQMCBQlnbnNidERhdGEAAgQMdXNlckZyb21Oc2J0CQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAIEDXRvdGFsRnJvbU5zYnQJAQVhc0ludAEJAJEDAgUIbnNidERhdGEAAwQSdXNlck1hdHVyZUZyb21TdXJmCQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAJBBN0b3RhbE1hdHVyZUZyb21TdXJmCQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAGCQCUCgIFA25pbAkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBCQBkAgUNdG90YWxGcm9tTnNidAUTdG90YWxNYXR1cmVGcm9tU3VyZgkAzAgCCQCkAwEJAGQCBQx1c2VyRnJvbU5zYnQFEnVzZXJNYXR1cmVGcm9tU3VyZgUDbmlsBQNTRVABaQEScmV3YXJkSW5mb1JFQURPTkxZARV1c2VyQWRkcmVzc1N0ck9yRW1wdHkEC3Jld2FyZHNEYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRdnbnNidENvbnRyb2xsZXJDb250cmFjdAIXZ25zYnRSZXdhcmRzU1lTUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5BQNuaWwFA25pbAQLdXNkblJld2FyZHMJAQhhc1N0cmluZwEJAPwHBAULcnBkQ29udHJhY3QCGHVuY2xhaW1lZFJld2FyZHNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkFA25pbAUDbmlsCQCUCgIFA25pbAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCCQEIYXNTdHJpbmcBCQCRAwIFC3Jld2FyZHNEYXRhAAAJAMwIAgkBCGFzU3RyaW5nAQkAkQMCBQtyZXdhcmRzRGF0YQABCQDMCAIFC3VzZG5SZXdhcmRzBQNuaWwFA1NFUAFpARFtZXJnZU5zYnRSRUFET05MWQIUdXNlckFkZHJlc3NNYW5kYXRvcnkJbmV3QW1vdW50BAhuc2J0RGF0YQkBCWFzQW55TGlzdAEJAPwHBAUTbnNidFN0YWtpbmdDb250cmFjdAIWbnNidFN0YWtpbmdTWVNSRUFET05MWQkAzAgCBRR1c2VyQWRkcmVzc01hbmRhdG9yeQkAzAgCBQluZXdBbW91bnQFA25pbAUDbmlsBAdhbW91bnQwCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAAEC3N0YXJ0SGVpZ2h0AwkAZwIAAAUHYW1vdW50MAD///////////8BCQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAIEDnN0YXJ0VGltZXN0YW1wCQELdG9UaW1lc3RhbXABBQtzdGFydEhlaWdodAQOc3RhcnRIZWlnaHROZXcDCQBnAgAABQluZXdBbW91bnQFC3N0YXJ0SGVpZ2h0AwkAZwIAAAUHYW1vdW50MAUGaGVpZ2h0BAhoYWxmTGlmZQkBDGdldEludE9yRmFpbAIFE25zYnRTdGFraW5nQ29udHJhY3QJAQtrZXlIYWxmTGlmZQAJAQVhc0ludAEJAPwHBAUMbWF0aENvbnRyYWN0AhNtZXJnZVN0YWtlc1JFQURPTkxZCQDMCAIFB2Ftb3VudDAJAMwIAgULc3RhcnRIZWlnaHQJAMwIAgUJbmV3QW1vdW50CQDMCAIFBmhlaWdodAkAzAgCBQhoYWxmTGlmZQUDbmlsBQNuaWwEEXN0YXJ0VGltZXN0YW1wTmV3CQELdG9UaW1lc3RhbXABBQ5zdGFydEhlaWdodE5ldwkAlAoCBQNuaWwJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUOc3RhcnRUaW1lc3RhbXAJAMwIAgkApAMBBQ5zdGFydEhlaWdodE5ldwkAzAgCCQCkAwEFEXN0YXJ0VGltZXN0YW1wTmV3BQNuaWwFA1NFUAFpARtzd2FwTGltaXRDYWxjdWxhdG9yUkVBRE9OTFkDEXVzZXJBZGRyZXNzU3RyT3B0C2xpbWl0V2FudGVkCmFzc2V0SWRTdHIEDGdOc2J0Q3VycmVudAMJAAACBRF1c2VyQWRkcmVzc1N0ck9wdAIAAAAJAQVhc0ludAEICQESYXNTd2FwUGFyYW1zU1RSVUNUAQkA/AcEBRBuZXV0cmlub0NvbnRyYWN0Ahtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAMwIAgURdXNlckFkZHJlc3NTdHJPcHQJAMwIAgAABQNuaWwFA25pbAJfNAQPbGltaXRXYW50ZWRVc2RuAwkAAAIFCmFzc2V0SWRTdHICBVdBVkVTCQEWY29udmVydFdhdmVzVG9OZXV0cmlubwIFC2xpbWl0V2FudGVkCQERQGV4dHJOYXRpdmUoMTA1MCkCBQ9jb250cm9sQ29udHJhY3QJAQhrZXlQcmljZQAFC2xpbWl0V2FudGVkBAtnTnNidE5lZWRlZAkBBWFzSW50AQkA/AcEBQR0aGlzAhhyZXZlcnNlU3dhcExpbWl0UkVBRE9OTFkJAMwIAgUPbGltaXRXYW50ZWRVc2RuCQDMCAIJAAACBQphc3NldElkU3RyAgVXQVZFUwUDbmlsBQNuaWwECmdOc2J0RGVsdGEJAGUCBQtnTnNidE5lZWRlZAUMZ05zYnRDdXJyZW50CQCUCgIFA25pbAkAuQkCCQDMCAICBCVzJXMJAMwIAgkApAMBBQxnTnNidEN1cnJlbnQJAMwIAgkApAMBBQpnTnNidERlbHRhBQNuaWwFA1NFUAFpARBzd2FwSW5mb1JFQURPTkxZAxV1c2VyQWRkcmVzc1N0ck9yRW1wdHkGYW1vdW50CmFzc2V0SWRTdHIED25ldXRyaW5vTWV0cmljcwkBCWFzQW55TGlzdAEJAPwHBAUMbWF0aENvbnRyYWN0AhpjYWxjTmV1dGlub01ldHJpY3NSRUFET05MWQUDbmlsBQNuaWwEBXByaWNlCQEFYXNJbnQBCQCRAwIFD25ldXRyaW5vTWV0cmljcwUPbk1ldHJpY0lkeFByaWNlBA9zd2FwUGFyYW1zVHVwbGUJARJhc1N3YXBQYXJhbXNTVFJVQ1QBCQD8BwQFEG5ldXRyaW5vQ29udHJhY3QCG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkJAMwIAgAABQNuaWwFA25pbAQOYmxja3MyTG10UmVzZXQIBQ9zd2FwUGFyYW1zVHVwbGUCXzMEDWxpbWl0TWF4V2F2ZXMIBQ9zd2FwUGFyYW1zVHVwbGUCXzYEDGxpbWl0TWF4VXNkbggFD3N3YXBQYXJhbXNUdXBsZQJfNwQHYXNzZXRJZAkA2QQBBQphc3NldElkU3RyBAhzd2FwVHlwZQMJAAACBQdhc3NldElkBQdXQVZFU0lEAgV3YXZlcwMJAAACBQdhc3NldElkBQ9uZXV0cmlub0Fzc2V0SWQCCG5ldXRyaW5vCQACAQkArAICAhNDYW4ndCBzd2FwIGFzc2V0SWQ9BQphc3NldElkU3RyBA13aXRoZHJhd1R1cGxlCQEWYXNXaXRoZHJhd1Jlc3VsdFNUUlVDVAEJAPwHBAUQbmV1dHJpbm9Db250cmFjdAIdY2FsY1dpdGhkcmF3UmVzdWx0U1lTUkVBRE9OTFkJAMwIAgUIc3dhcFR5cGUJAMwIAgUGYW1vdW50CQDMCAIFBXByaWNlBQNuaWwFA25pbAQMb3V0TmV0QW1vdW50CAUNd2l0aGRyYXdUdXBsZQJfMQQKb3V0QXNzZXRJZAgFDXdpdGhkcmF3VHVwbGUCXzIECm91dFN1cmZBbXQIBQ13aXRoZHJhd1R1cGxlAl8zBA9pbkFtdFRvU3VyZlBhcnQIBQ13aXRoZHJhd1R1cGxlAl80BAp1bmxlYXNlQW10CAUNd2l0aGRyYXdUdXBsZQJfNQQMb3V0RmVlQW1vdW50CAUNd2l0aGRyYXdUdXBsZQJfNgQLb3V0QW10R3Jvc3MIBQ13aXRoZHJhd1R1cGxlAl83BA13aXRoZHJhd1ByaWNlCAUNd2l0aGRyYXdUdXBsZQJfOAkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUMb3V0TmV0QW1vdW50CQDMCAIJAKQDAQUKb3V0U3VyZkFtdAkAzAgCCQCkAwEFDG91dEZlZUFtb3VudAkAzAgCCQCkAwEFDXdpdGhkcmF3UHJpY2UJAMwIAgkApAMBBQ5ibGNrczJMbXRSZXNldAkAzAgCCQCkAwEFDWxpbWl0TWF4V2F2ZXMJAMwIAgkApAMBBQxsaW1pdE1heFVzZG4JAMwIAgkApAMBBQ9pbkFtdFRvU3VyZlBhcnQFA25pbAUDU0VQAWkBFnVzZG5TdGFraW5nQXByUkVBRE9OTFkBBGRheXMEB3RtcERheXMAAQQPbmV1dHJpbm9NZXRyaWNzCQEJYXNBbnlMaXN0AQkA/AcEBQxtYXRoQ29udHJhY3QCGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAQMY3VycmVudFByaWNlCQEFYXNJbnQBCQCRAwIFD25ldXRyaW5vTWV0cmljcwUPbk1ldHJpY0lkeFByaWNlBAt3YXZlc0luY29tZQkAaAIA8C4FBU1VTFQ4BA9pbmNvbWVGb3JQZXJpb2QJAGsDBQt3YXZlc0luY29tZQUMY3VycmVudFByaWNlBQVNVUxUOAQDYXByCQEHY2FsY0FwcgQFC3JwZENvbnRyYWN0BQd0bXBEYXlzBQ9pbmNvbWVGb3JQZXJpb2QFBU1VTFQ2CQCUCgIFA25pbAkArAICAgQlZF9fCQCkAwEFA2FwcgFpARZzdXJmU3Rha2luZ0FwclJFQURPTkxZAQRkYXlzBAd0bXBEYXlzAAMED2luY29tZUZvclBlcmlvZAkBF2NhbGNVc2RuSW5jb21lRm9yUGVyaW9kAgUTc3VyZlN0YWtpbmdDb250cmFjdAUHdG1wRGF5cwQRc3VyZlByaWNlVG9Vc2RuWDYAgKMFBANhcHIJAQdjYWxjQXByBAUTc3VyZlN0YWtpbmdDb250cmFjdAUHdG1wRGF5cwUPaW5jb21lRm9yUGVyaW9kBRFzdXJmUHJpY2VUb1VzZG5YNgkAlAoCBQNuaWwJAKwCAgIEJWRfXwkApAMBBQNhcHIBaQEYc3VyZlN0YWtpbmdBcHJWMlJFQURPTkxZAgRkYXlzD3N1cmZVc2RuUHJpY2VYNgQHdG1wRGF5cwADBA9pbmNvbWVGb3JQZXJpb2QJARdjYWxjVXNkbkluY29tZUZvclBlcmlvZAIFE3N1cmZTdGFraW5nQ29udHJhY3QFB3RtcERheXMEA2FwcgkBB2NhbGNBcHIEBRNzdXJmU3Rha2luZ0NvbnRyYWN0BQd0bXBEYXlzBQ9pbmNvbWVGb3JQZXJpb2QFD3N1cmZVc2RuUHJpY2VYNgkAlAoCBQNuaWwJAKwCAgIEJWRfXwkApAMBBQNhcHIBaQEWbnNidFN0YWtpbmdBcHJSRUFET05MWQEEZGF5cwQHdG1wRGF5cwADBBFuc2J0UHJpY2VUb1VzZG5YNgCApOgDBA9pbmNvbWVGb3JQZXJpb2QJARdjYWxjVXNkbkluY29tZUZvclBlcmlvZAIFE25zYnRTdGFraW5nQ29udHJhY3QFB3RtcERheXMEA2FwcgkBB2NhbGNBcHIEBRNuc2J0U3Rha2luZ0NvbnRyYWN0BQd0bXBEYXlzBQ9pbmNvbWVGb3JQZXJpb2QFEW5zYnRQcmljZVRvVXNkblg2CQCUCgIFA25pbAkArAICAgQlZF9fCQCkAwEFA2FwcgFpARhuc2J0U3Rha2luZ0FwclYyUkVBRE9OTFkCBGRheXMPbnNidFVzZG5QcmljZVg2BAd0bXBEYXlzAAMED2luY29tZUZvclBlcmlvZAkBF2NhbGNVc2RuSW5jb21lRm9yUGVyaW9kAgUTbnNidFN0YWtpbmdDb250cmFjdAUHdG1wRGF5cwQDYXByCQEHY2FsY0FwcgQFE25zYnRTdGFraW5nQ29udHJhY3QFB3RtcERheXMFD2luY29tZUZvclBlcmlvZAUPbnNidFVzZG5QcmljZVg2CQCUCgIFA25pbAkArAICAgQlZF9fCQCkAwEFA2FwcgDj8CIy", "height": 2394331, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EgKEtT2Gva2Fvg7pqTBdUtNF6iMc71HH1ZXZgyZg28Zq Next: C6B1me3ckcGDpGuc2g2E6HnqunrnMsdN8bCpepNqm1Di Diff:
OldNewDifferences
187187
188188 func ap (ae) = {
189189 let af = ae
190- if (if ($isInstanceOf(af, "(Int, Unit, Int, Int, Int, Int, Int)"))
190+ if (if ($isInstanceOf(af, "(Int, Unit, Int, Int, Int, Int, Int, Int)"))
191191 then true
192- else $isInstanceOf(af, "(Int, ByteVector, Int, Int, Int, Int, Int)"))
192+ else $isInstanceOf(af, "(Int, ByteVector, Int, Int, Int, Int, Int, Int)"))
193193 then {
194194 let ao = af
195195 ao
348348 let bR = (bP - o)
349349 let bS = bC(bD, bQ, bF)
350350 let bT = bC(bD, bR, bF)
351- (bT - bS)
351+ let bU = if ((bS == 0))
352+ then bT
353+ else bS
354+ (bT - bU)
352355 }
353356
354357
355-func bU (bD,bV,bW,bX) = {
356- let bY = W(bD, "%s%s__stats__activeTotalLocked", 1)
357- let bZ = fraction(bY, bX, b)
358- fraction((bW * b), 365, (bZ * bV))
358+func bV (bD,bW,bX,bY) = {
359+ let bZ = W(bD, "%s%s__stats__activeTotalLocked", 1)
360+ let ca = fraction(bZ, bY, b)
361+ if ((0 > bX))
362+ then 0
363+ else fraction((bX * b), 365, (ca * bW))
359364 }
360365
361366
362-@Callable(ca)
363-func reverseSwapLimitREADONLY (cb,cc) = {
364- let cd = ah(ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))[aG])
365- let ce = if ((0 >= cb))
367+@Callable(cb)
368+func reverseSwapLimitREADONLY (cc,cd) = {
369+ let ce = ah(ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))[aG])
370+ let cf = if ((0 >= cc))
366371 then 0
367372 else {
368- let cf = toBigInt(U(bo, if (cc)
373+ let cg = toBigInt(U(bo, if (cd)
369374 then z()
370375 else B()))
371- let cg = toBigInt(U(bo, if (cc)
376+ let ch = toBigInt(U(bo, if (cd)
372377 then A()
373378 else C()))
374- let ch = if (cc)
375- then fraction(toBigInt(cb), f, cf)
376- else fraction(fraction(toBigInt(cb), f, cf), c, toBigInt(cd))
377- let ci = fraction(h, h, cg)
378- toInt(pow(ch, 8, ci, 16, 6, CEILING))
379+ let ci = if (cd)
380+ then fraction(toBigInt(cc), f, cg)
381+ else fraction(fraction(toBigInt(cc), f, cg), c, toBigInt(ce))
382+ let cj = fraction(h, h, ch)
383+ toInt(pow(ci, 8, cj, 16, 6, CEILING))
379384 }
380- $Tuple2(nil, ce)
385+ $Tuple2(nil, cf)
381386 }
382387
383388
384389
385-@Callable(ca)
386-func gnsbtInfoINTERNAL (cj,ck,cl) = {
387- let cm = if ((cj != ""))
388- then addressFromStringValue(cj)
390+@Callable(cb)
391+func gnsbtInfoINTERNAL (ck,cl,cm) = {
392+ let cn = if ((ck != ""))
393+ then addressFromStringValue(ck)
389394 else this
390395 let bL = getIntegerValue(bn, H())
391- let cn = ck
392- let co = ah(invoke(bu, "gnsbtFromSurfSYSREADONLY", [cl], nil))
393- let cp = (cn + co)
394- let cq = an(invoke(bp, "swapParamsByUserSYSREADONLY", [cj, 0], nil))
395- let cr = cq._3
396- let cs = cq._4
397- let ct = cq._5
398- let cu = cq._6
399- let cv = cq._7
400- let cw = an(invoke(bp, "swapParamsByUserSYSREADONLY", [cj, cp], nil))
401- let cx = cw._3
402- let cy = cw._4
403- let cz = cw._5
404- let cA = cw._6
405- let cB = cw._7
406- let cC = if ((cj != ""))
407- then assetBalance(cm, bz)
396+ let co = cl
397+ let cp = ah(invoke(bu, "gnsbtFromSurfSYSREADONLY", [cm], nil))
398+ let cq = (co + cp)
399+ let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil))
400+ let cs = cr._3
401+ let ct = cr._4
402+ let cu = cr._5
403+ let cv = cr._6
404+ let cw = cr._7
405+ let cx = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, cq], nil))
406+ let cy = cx._3
407+ let cz = cx._4
408+ let cA = cx._5
409+ let cB = cx._6
410+ let cC = cx._7
411+ let cD = if ((ck != ""))
412+ then assetBalance(cn, bz)
408413 else 0
409- let cD = if ((cj != ""))
410- then assetBalance(cm, bB)
414+ let cE = if ((ck != ""))
415+ then assetBalance(cn, bB)
411416 else 0
412- let cE = if ((ck >= 0))
413- then ck
417+ let cF = if ((cl >= 0))
418+ then cl
414419 else {
415- let cF = ad(invoke(bt, "nsbtUnstakingSYSREADONLY", [cj, (-1 * ck)], nil))
416- let cG = ah(cF[2])
417- let cH = -(cG)
418- cH
420+ let cG = ad(invoke(bt, "nsbtUnstakingSYSREADONLY", [ck, (-1 * cl)], nil))
421+ let cH = ah(cG[2])
422+ let cI = -(cH)
423+ cI
419424 }
420- let cI = (cC - cE)
421- let cJ = (cD - cl)
422- let cK = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [cj, ck, cl], nil))
423- let cL = ah(cK[0])
424- let cM = ah(cK[1])
425- let cN = ad(cK[2])
426- let cO = ad(cK[3])
427- let cP = ah(cK[4])
428- let cQ = ah(cK[5])
429- let cR = ah(cN[2])
425+ let cJ = (cD - cF)
426+ let cK = (cE - cm)
427+ let cL = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [ck, cl, cm], nil))
428+ let cM = ah(cL[0])
429+ let cN = ah(cL[1])
430+ let cO = ad(cL[2])
431+ let cP = ad(cL[3])
432+ let cQ = ah(cL[4])
433+ let cR = ah(cL[5])
430434 let cS = ah(cO[2])
431- let cT = (cR + cn)
435+ let cT = ah(cP[2])
432436 let cU = (cS + co)
433- let cV = ah(cN[3])
437+ let cV = (cT + cp)
434438 let cW = ah(cO[3])
435- let cX = 0
436- let cY = cW
437- let cZ = (cV + cn)
439+ let cX = ah(cP[3])
440+ let cY = 0
441+ let cZ = cX
438442 let da = (cW + co)
439- let db = da
440- let dc = fraction(cR, d, (cV + cX))
441- let dd = fraction(cT, d, (cZ + cX))
442- let de = fraction((cR + cS), d, ((cV + cX) + cY))
443- let df = fraction((cT + cU), d, ((cZ + cX) + db))
444- let dg = if ((cP == 0))
445- then height
446- else cP
443+ let db = (cX + cp)
444+ let dc = db
445+ let dd = fraction(cS, d, (cW + cY))
446+ let de = fraction(cU, d, (da + cY))
447+ let df = fraction((cS + cT), d, ((cW + cY) + cZ))
448+ let dg = fraction((cU + cV), d, ((da + cY) + dc))
447449 let dh = if ((cQ == 0))
448450 then height
449451 else cQ
450- $Tuple2(nil, [0, cC, cD, cI, cJ, cR, cS, cT, cU, cV, cW, cZ, da, cv, cu, cB, cA, cr, cx, dc, dd, de, df, dg, dh])
452+ let di = if ((cR == 0))
453+ then height
454+ else cR
455+ $Tuple2(nil, [0, cD, cE, cJ, cK, cS, cT, cU, cV, cW, cX, da, db, cw, cv, cC, cB, cs, cy, dd, de, df, dg, dh, di])
451456 }
452457
453458
454459
455-@Callable(ca)
456-func gnsbtInfoREADONLY (cj,ck,cl) = {
457- let di = ad(invoke(this, "gnsbtInfoINTERNAL", [cj, ck, cl], nil))
458- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(ah(di[1])), toString(ah(di[2])), toString(ah(di[3])), toString(ah(di[4])), toString(ah(di[5])), toString(ah(di[6])), toString(ah(di[7])), toString(ah(di[8])), toString(ah(di[9])), toString(ah(di[10])), toString(ah(di[11])), toString(ah(di[12])), toString(ah(di[13])), toString(ah(di[14])), toString(ah(di[15])), toString(ah(di[16])), toString(ah(di[17])), toString(ah(di[18])), toString(ah(di[19])), toString(ah(di[20])), toString(ah(di[21])), toString(ah(di[22])), toString(ah(di[23])), toString(ah(di[24]))], j))
460+@Callable(cb)
461+func gnsbtInfoREADONLY (ck,cl,cm) = {
462+ let dj = ad(invoke(this, "gnsbtInfoINTERNAL", [ck, cl, cm], nil))
463+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(ah(dj[1])), toString(ah(dj[2])), toString(ah(dj[3])), toString(ah(dj[4])), toString(ah(dj[5])), toString(ah(dj[6])), toString(ah(dj[7])), toString(ah(dj[8])), toString(ah(dj[9])), toString(ah(dj[10])), toString(ah(dj[11])), toString(ah(dj[12])), toString(ah(dj[13])), toString(ah(dj[14])), toString(ah(dj[15])), toString(ah(dj[16])), toString(ah(dj[17])), toString(ah(dj[18])), toString(ah(dj[19])), toString(ah(dj[20])), toString(ah(dj[21])), toString(ah(dj[22])), toString(ah(dj[23])), toString(ah(dj[24]))], j))
459464 }
460465
461466
462467
463-@Callable(ca)
464-func gnsbtEffectiveREADONLY (cj) = {
465- let cK = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [cj, 0, 0], nil))
466- let cN = ad(cK[2])
467- let dj = ah(cN[2])
468- let dk = ah(cN[3])
469- let dl = ah(cK[9])
470- let dm = ah(cK[6])
471- $Tuple2(nil, makeString(["%d%d", toString((dk + dm)), toString((dj + dl))], j))
468+@Callable(cb)
469+func gnsbtEffectiveREADONLY (ck) = {
470+ let cL = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [ck, 0, 0], nil))
471+ let cO = ad(cL[2])
472+ let dk = ah(cO[2])
473+ let dl = ah(cO[3])
474+ let dm = ah(cL[9])
475+ let dn = ah(cL[6])
476+ $Tuple2(nil, makeString(["%d%d", toString((dl + dn)), toString((dk + dm))], j))
472477 }
473478
474479
475480
476-@Callable(ca)
477-func rewardInfoREADONLY (cj) = {
478- let dn = ad(invoke(bv, "gnsbtRewardsSYSREADONLY", [cj], nil))
479- let do = aj(invoke(bs, "unclaimedRewardsREADONLY", [cj], nil))
480- $Tuple2(nil, makeString(["%s%s%s", aj(dn[0]), aj(dn[1]), do], j))
481+@Callable(cb)
482+func rewardInfoREADONLY (ck) = {
483+ let do = ad(invoke(bv, "gnsbtRewardsSYSREADONLY", [ck], nil))
484+ let dp = aj(invoke(bs, "unclaimedRewardsREADONLY", [ck], nil))
485+ $Tuple2(nil, makeString(["%s%s%s", aj(do[0]), aj(do[1]), dp], j))
481486 }
482487
483488
484489
485-@Callable(ca)
486-func mergeNsbtREADONLY (dp,dq) = {
487- let cN = ad(invoke(bt, "nsbtStakingSYSREADONLY", [dp, dq], nil))
488- let dr = ah(cN[0])
489- let ds = if ((0 >= dr))
490+@Callable(cb)
491+func mergeNsbtREADONLY (dq,dr) = {
492+ let cO = ad(invoke(bt, "nsbtStakingSYSREADONLY", [dq, dr], nil))
493+ let ds = ah(cO[0])
494+ let dt = if ((0 >= ds))
490495 then -1
491- else ah(cN[2])
492- let bQ = aq(ds)
493- let dt = if ((0 >= dq))
494- then ds
495- else if ((0 >= dr))
496+ else ah(cO[2])
497+ let bQ = aq(dt)
498+ let du = if ((0 >= dr))
499+ then dt
500+ else if ((0 >= ds))
496501 then height
497502 else {
498- let du = U(bt, K())
499- ah(invoke(bo, "mergeStakesREADONLY", [dr, ds, dq, height, du], nil))
503+ let dv = U(bt, K())
504+ ah(invoke(bo, "mergeStakesREADONLY", [ds, dt, dr, height, dv], nil))
500505 }
501- let dv = aq(dt)
502- $Tuple2(nil, makeString(["%d%d%d%d", toString(ds), toString(bQ), toString(dt), toString(dv)], j))
506+ let dw = aq(du)
507+ $Tuple2(nil, makeString(["%d%d%d%d", toString(dt), toString(bQ), toString(du), toString(dw)], j))
503508 }
504509
505510
506511
507-@Callable(ca)
508-func swapLimitCalculatorREADONLY (dw,dx,dy) = {
509- let dz = if ((dw == ""))
512+@Callable(cb)
513+func swapLimitCalculatorREADONLY (dx,dy,dz) = {
514+ let dA = if ((dx == ""))
510515 then 0
511- else ah(an(invoke(bp, "swapParamsByUserSYSREADONLY", [dw, 0], nil))._4)
512- let dA = if ((dy == "WAVES"))
513- then ac(dx, getIntegerValue(bn, H()))
514- else dx
515- let dB = ah(invoke(this, "reverseSwapLimitREADONLY", [dA, (dy == "WAVES")], nil))
516- let dC = (dB - dz)
517- $Tuple2(nil, makeString(["%s%s", toString(dz), toString(dC)], j))
516+ else ah(an(invoke(bp, "swapParamsByUserSYSREADONLY", [dx, 0], nil))._4)
517+ let dB = if ((dz == "WAVES"))
518+ then ac(dy, getIntegerValue(bn, H()))
519+ else dy
520+ let dC = ah(invoke(this, "reverseSwapLimitREADONLY", [dB, (dz == "WAVES")], nil))
521+ let dD = (dC - dA)
522+ $Tuple2(nil, makeString(["%s%s", toString(dA), toString(dD)], j))
518523 }
519524
520525
521526
522-@Callable(ca)
523-func swapInfoREADONLY (cj,aa,dy) = {
527+@Callable(cb)
528+func swapInfoREADONLY (ck,aa,dz) = {
524529 let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))
525530 let ab = ah(bF[ay])
526- let cq = an(invoke(bp, "swapParamsByUserSYSREADONLY", [cj, 0], nil))
527- let cr = cq._3
528- let cu = cq._6
529- let cv = cq._7
530- let dD = fromBase58String(dy)
531- let dE = if ((dD == n))
531+ let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil))
532+ let cs = cr._3
533+ let cv = cr._6
534+ let cw = cr._7
535+ let dE = fromBase58String(dz)
536+ let dF = if ((dE == n))
532537 then "waves"
533- else if ((dD == bx))
538+ else if ((dE == bx))
534539 then "neutrino"
535- else throw(("Can't swap assetId=" + dy))
536- let dF = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dE, aa, ab], nil))
537- let dG = dF._1
538- let dH = dF._2
539- let dI = dF._3
540- let dJ = dF._4
541- let dK = dF._5
542- let dL = dF._6
543- let dM = dF._7
544- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dG), toString(dI), toString(dL), toString(ab), toString(cr), toString(cu), toString(cv), toString(dJ)], j))
540+ else throw(("Can't swap assetId=" + dz))
541+ let dG = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dF, aa, ab], nil))
542+ let dH = dG._1
543+ let dI = dG._2
544+ let dJ = dG._3
545+ let dK = dG._4
546+ let dL = dG._5
547+ let dM = dG._6
548+ let dN = dG._7
549+ let dO = dG._8
550+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dH), toString(dJ), toString(dM), toString(dO), toString(cs), toString(cv), toString(cw), toString(dK)], j))
545551 }
546552
547553
548554
549-@Callable(ca)
555+@Callable(cb)
550556 func usdnStakingAprREADONLY (bO) = {
551- let dN = 1
557+ let dP = 1
552558 let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))
553559 let bL = ah(bF[ay])
554- let dO = (6000 * d)
555- let bW = fraction(dO, bL, d)
556- let dP = bU(bs, dN, bW, b)
557- $Tuple2(nil, ("%d__" + toString(dP)))
560+ let dQ = (6000 * d)
561+ let bX = fraction(dQ, bL, d)
562+ let dR = bV(bs, dP, bX, b)
563+ $Tuple2(nil, ("%d__" + toString(dR)))
558564 }
559565
560566
561567
562-@Callable(ca)
568+@Callable(cb)
563569 func surfStakingAprREADONLY (bO) = {
564- let dN = 3
565- let bW = bN(bu, dN)
566- let dQ = 86400
567- let dP = bU(bu, dN, bW, dQ)
568- $Tuple2(nil, ("%d__" + toString(dP)))
570+ let dP = 3
571+ let bX = bN(bu, dP)
572+ let dS = 86400
573+ let dR = bV(bu, dP, bX, dS)
574+ $Tuple2(nil, ("%d__" + toString(dR)))
569575 }
570576
571577
572578
573-@Callable(ca)
574-func surfStakingAprV2READONLY (bO,dR) = {
575- let dN = 3
576- let bW = bN(bu, dN)
577- let dP = bU(bu, dN, bW, dR)
578- $Tuple2(nil, ("%d__" + toString(dP)))
579+@Callable(cb)
580+func surfStakingAprV2READONLY (bO,dT) = {
581+ let dP = 3
582+ let bX = bN(bu, dP)
583+ let dR = bV(bu, dP, bX, dT)
584+ $Tuple2(nil, ("%d__" + toString(dR)))
579585 }
580586
581587
582588
583-@Callable(ca)
589+@Callable(cb)
584590 func nsbtStakingAprREADONLY (bO) = {
585- let dN = 3
586- let dS = 8000000
587- let bW = bN(bt, dN)
588- let dP = bU(bt, dN, bW, dS)
589- $Tuple2(nil, ("%d__" + toString(dP)))
591+ let dP = 3
592+ let dU = 8000000
593+ let bX = bN(bt, dP)
594+ let dR = bV(bt, dP, bX, dU)
595+ $Tuple2(nil, ("%d__" + toString(dR)))
590596 }
591597
592598
593599
594-@Callable(ca)
595-func nsbtStakingAprV2READONLY (bO,dT) = {
596- let dN = 3
597- let bW = bN(bt, dN)
598- let dP = bU(bt, dN, bW, dT)
599- $Tuple2(nil, ("%d__" + toString(dP)))
600+@Callable(cb)
601+func nsbtStakingAprV2READONLY (bO,dV) = {
602+ let dP = 3
603+ let bX = bN(bt, dP)
604+ let dR = bV(bt, dP, bX, dV)
605+ $Tuple2(nil, ("%d__" + toString(dR)))
600606 }
601607
602608
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 271828182
55
66 let b = 1000000
77
88 let c = toBigInt(1000000)
99
1010 let d = 100000000
1111
1212 let e = toBigInt(100000000)
1313
1414 let f = toBigInt(10000000000)
1515
1616 let g = 1000000000000
1717
1818 let h = toBigInt(10000000000000000)
1919
2020 let i = toBigInt(1000000000000000000)
2121
2222 let j = "__"
2323
2424 let k = 5000
2525
2626 let l = 20000
2727
2828 let m = 100000
2929
3030 let n = fromBase58String("WAVES")
3131
3232 let o = 86400000
3333
3434 func p () = "neutrino_asset_id"
3535
3636
3737 func q () = "bond_asset_id"
3838
3939
4040 func r () = "surf_asset_id"
4141
4242
4343 func s () = "balance_lock_"
4444
4545
4646 func t () = (s() + "waves")
4747
4848
4949 func u () = (s() + "neutrino")
5050
5151
5252 func v () = "min_waves_swap_amount"
5353
5454
5555 func w () = "min_neutrino_swap_amount"
5656
5757
5858 func x () = "wavesOut_swap_feePart"
5959
6060
6161 func y () = "neutrinoOut_swap_feePart"
6262
6363
6464 func z () = "%s%s__config__swapAParam"
6565
6666
6767 func A () = "%s%s__config__swapBParam"
6868
6969
7070 func B () = "%s%s__config__usdnSwapAParam"
7171
7272
7373 func C () = "%s%s__config__usdnSwapBParam"
7474
7575
7676 func D () = "%s__nsbtLockContract"
7777
7878
7979 func E () = "%s__mathContract"
8080
8181
8282 func F () = "balance_waves_lock_interval"
8383
8484
8585 func G () = "balance_neutrino_lock_interval"
8686
8787
8888 func H () = "price"
8989
9090
9191 func I (J) = makeString(["%s%s%s", "paramByUser", J, "start"], j)
9292
9393
9494 func K () = "%s__halfLife"
9595
9696
9797 func L () = "%s__minLockAmount"
9898
9999
100100 func M () = "min_waves_nsbt_buy"
101101
102102
103103 func N () = "min_nsbt_sell"
104104
105105
106106 func O (P) = makeString(["%s%s%d", "stats", "depositAmtByDay", toString(P)], j)
107107
108108
109109 func Q (P) = ((P / o) * o)
110110
111111
112112 func R (S,T) = valueOrErrorMessage(getString(S, T), makeString(["mandatory ", toString(S), ".", T, " is not defined"], ""))
113113
114114
115115 func U (S,T) = valueOrErrorMessage(getInteger(S, T), makeString(["mandatory ", toString(S), ".", T, " is not defined"], ""))
116116
117117
118118 func V (S,T) = valueOrErrorMessage(getBoolean(S, T), makeString(["mandatory ", toString(S), ".", T, " is not defined"], ""))
119119
120120
121121 func W (S,T,X) = valueOrElse(getInteger(S, T), X)
122122
123123
124124 func Y (S,T,X) = valueOrElse(getString(S, T), X)
125125
126126
127127 func Z (aa,ab) = fraction(aa, d, ab)
128128
129129
130130 func ac (aa,ab) = fraction(aa, ab, d)
131131
132132
133133 func ad (ae) = {
134134 let af = ae
135135 if ($isInstanceOf(af, "List[Any]"))
136136 then {
137137 let ag = af
138138 ag
139139 }
140140 else throw("fail to cast into List[Any]")
141141 }
142142
143143
144144 func ah (ae) = {
145145 let af = ae
146146 if ($isInstanceOf(af, "Int"))
147147 then {
148148 let ai = af
149149 ai
150150 }
151151 else throw("fail to cast into Int")
152152 }
153153
154154
155155 func aj (ae) = {
156156 let af = ae
157157 if ($isInstanceOf(af, "String"))
158158 then {
159159 let ak = af
160160 ak
161161 }
162162 else throw("fail to cast into String")
163163 }
164164
165165
166166 func al (ae) = {
167167 let af = ae
168168 if ($isInstanceOf(af, "(Int, Int)"))
169169 then {
170170 let am = af
171171 am
172172 }
173173 else throw("fail to cast into Tuple2 ints")
174174 }
175175
176176
177177 func an (ae) = {
178178 let af = ae
179179 if ($isInstanceOf(af, "(Int, Int, Int, Int, Int, Int, Int)"))
180180 then {
181181 let ao = af
182182 ao
183183 }
184184 else throw("fail to cast into SwapParamsSTRUCT")
185185 }
186186
187187
188188 func ap (ae) = {
189189 let af = ae
190- if (if ($isInstanceOf(af, "(Int, Unit, Int, Int, Int, Int, Int)"))
190+ if (if ($isInstanceOf(af, "(Int, Unit, Int, Int, Int, Int, Int, Int)"))
191191 then true
192- else $isInstanceOf(af, "(Int, ByteVector, Int, Int, Int, Int, Int)"))
192+ else $isInstanceOf(af, "(Int, ByteVector, Int, Int, Int, Int, Int, Int)"))
193193 then {
194194 let ao = af
195195 ao
196196 }
197197 else throw("fail to cast into WithdrawResult")
198198 }
199199
200200
201201 func aq (ar) = if ((0 > ar))
202202 then -1
203203 else {
204204 let af = blockInfoByHeight(ar)
205205 if ($isInstanceOf(af, "BlockInfo"))
206206 then {
207207 let as = af
208208 as.timestamp
209209 }
210210 else -1
211211 }
212212
213213
214214 func at (au,av) = fraction(toBigInt(au), i, toBigInt(av))
215215
216216
217217 func aw (ae,ax) = toInt(fraction(ae, toBigInt(ax), i))
218218
219219
220220 let ay = 0
221221
222222 let az = 1
223223
224224 let aA = 2
225225
226226 let aB = 3
227227
228228 let aC = 4
229229
230230 let aD = 5
231231
232232 let aE = 6
233233
234234 let aF = 7
235235
236236 let aG = 8
237237
238238 let aH = 9
239239
240240 let aI = 10
241241
242242 let aJ = 11
243243
244244 let aK = 1
245245
246246 let aL = 2
247247
248248 let aM = 3
249249
250250 let aN = 4
251251
252252 let aO = 5
253253
254254 let aP = 6
255255
256256 let aQ = 7
257257
258258 let aR = 8
259259
260260 let aS = 9
261261
262262 let aT = 10
263263
264264 let aU = 11
265265
266266 let aV = 0
267267
268268 let aW = 1
269269
270270 let aX = 2
271271
272272 let aY = 3
273273
274274 let aZ = 4
275275
276276 let ba = 5
277277
278278 let bb = 6
279279
280280 let bc = 7
281281
282282 let bd = 8
283283
284284 let be = 9
285285
286286 let bf = 10
287287
288288 func bg () = "%s%s__config__controlAddress"
289289
290290
291291 func bh () = "%s__controlConfig"
292292
293293
294294 func bi (bj) = split_4C(R(bj, bh()), j)
295295
296296
297297 func bk (bl,bm) = valueOrErrorMessage(addressFromString(bl[bm]), ("Control cfg doesn't contain address at index " + toString(bm)))
298298
299299
300300 let bn = addressFromStringValue(valueOrElse(getString(this, bg()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
301301
302302 let bl = bi(bn)
303303
304304 let bo = bk(bl, aN)
305305
306306 let bp = bk(bl, aK)
307307
308308 let bq = bk(bl, aL)
309309
310310 let br = bk(bl, aO)
311311
312312 let bs = bk(bl, aM)
313313
314314 let bt = bk(bl, aR)
315315
316316 let bu = bk(bl, aT)
317317
318318 let bv = bk(bl, aU)
319319
320320 let bw = R(bp, p())
321321
322322 let bx = fromBase58String(bw)
323323
324324 let by = getStringValue(bp, q())
325325
326326 let bz = fromBase58String(by)
327327
328328 let bA = getStringValue(bq, r())
329329
330330 let bB = fromBase58String(bA)
331331
332332 func bC (bD,bE,bF) = {
333333 let bG = O(bE)
334334 let bH = Y(bD, bG, "%s%s__0__0")
335335 let bI = split(bH, j)
336336 let bJ = parseIntValue(bI[1])
337337 let bK = parseIntValue(bI[2])
338338 let bL = ah(bF[ay])
339339 let bM = fraction(bJ, bL, d)
340340 (bM + bK)
341341 }
342342
343343
344344 func bN (bD,bO) = {
345345 let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))
346346 let bP = Q(lastBlock.timestamp)
347347 let bQ = (bP - (o * (bO + 1)))
348348 let bR = (bP - o)
349349 let bS = bC(bD, bQ, bF)
350350 let bT = bC(bD, bR, bF)
351- (bT - bS)
351+ let bU = if ((bS == 0))
352+ then bT
353+ else bS
354+ (bT - bU)
352355 }
353356
354357
355-func bU (bD,bV,bW,bX) = {
356- let bY = W(bD, "%s%s__stats__activeTotalLocked", 1)
357- let bZ = fraction(bY, bX, b)
358- fraction((bW * b), 365, (bZ * bV))
358+func bV (bD,bW,bX,bY) = {
359+ let bZ = W(bD, "%s%s__stats__activeTotalLocked", 1)
360+ let ca = fraction(bZ, bY, b)
361+ if ((0 > bX))
362+ then 0
363+ else fraction((bX * b), 365, (ca * bW))
359364 }
360365
361366
362-@Callable(ca)
363-func reverseSwapLimitREADONLY (cb,cc) = {
364- let cd = ah(ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))[aG])
365- let ce = if ((0 >= cb))
367+@Callable(cb)
368+func reverseSwapLimitREADONLY (cc,cd) = {
369+ let ce = ah(ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))[aG])
370+ let cf = if ((0 >= cc))
366371 then 0
367372 else {
368- let cf = toBigInt(U(bo, if (cc)
373+ let cg = toBigInt(U(bo, if (cd)
369374 then z()
370375 else B()))
371- let cg = toBigInt(U(bo, if (cc)
376+ let ch = toBigInt(U(bo, if (cd)
372377 then A()
373378 else C()))
374- let ch = if (cc)
375- then fraction(toBigInt(cb), f, cf)
376- else fraction(fraction(toBigInt(cb), f, cf), c, toBigInt(cd))
377- let ci = fraction(h, h, cg)
378- toInt(pow(ch, 8, ci, 16, 6, CEILING))
379+ let ci = if (cd)
380+ then fraction(toBigInt(cc), f, cg)
381+ else fraction(fraction(toBigInt(cc), f, cg), c, toBigInt(ce))
382+ let cj = fraction(h, h, ch)
383+ toInt(pow(ci, 8, cj, 16, 6, CEILING))
379384 }
380- $Tuple2(nil, ce)
385+ $Tuple2(nil, cf)
381386 }
382387
383388
384389
385-@Callable(ca)
386-func gnsbtInfoINTERNAL (cj,ck,cl) = {
387- let cm = if ((cj != ""))
388- then addressFromStringValue(cj)
390+@Callable(cb)
391+func gnsbtInfoINTERNAL (ck,cl,cm) = {
392+ let cn = if ((ck != ""))
393+ then addressFromStringValue(ck)
389394 else this
390395 let bL = getIntegerValue(bn, H())
391- let cn = ck
392- let co = ah(invoke(bu, "gnsbtFromSurfSYSREADONLY", [cl], nil))
393- let cp = (cn + co)
394- let cq = an(invoke(bp, "swapParamsByUserSYSREADONLY", [cj, 0], nil))
395- let cr = cq._3
396- let cs = cq._4
397- let ct = cq._5
398- let cu = cq._6
399- let cv = cq._7
400- let cw = an(invoke(bp, "swapParamsByUserSYSREADONLY", [cj, cp], nil))
401- let cx = cw._3
402- let cy = cw._4
403- let cz = cw._5
404- let cA = cw._6
405- let cB = cw._7
406- let cC = if ((cj != ""))
407- then assetBalance(cm, bz)
396+ let co = cl
397+ let cp = ah(invoke(bu, "gnsbtFromSurfSYSREADONLY", [cm], nil))
398+ let cq = (co + cp)
399+ let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil))
400+ let cs = cr._3
401+ let ct = cr._4
402+ let cu = cr._5
403+ let cv = cr._6
404+ let cw = cr._7
405+ let cx = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, cq], nil))
406+ let cy = cx._3
407+ let cz = cx._4
408+ let cA = cx._5
409+ let cB = cx._6
410+ let cC = cx._7
411+ let cD = if ((ck != ""))
412+ then assetBalance(cn, bz)
408413 else 0
409- let cD = if ((cj != ""))
410- then assetBalance(cm, bB)
414+ let cE = if ((ck != ""))
415+ then assetBalance(cn, bB)
411416 else 0
412- let cE = if ((ck >= 0))
413- then ck
417+ let cF = if ((cl >= 0))
418+ then cl
414419 else {
415- let cF = ad(invoke(bt, "nsbtUnstakingSYSREADONLY", [cj, (-1 * ck)], nil))
416- let cG = ah(cF[2])
417- let cH = -(cG)
418- cH
420+ let cG = ad(invoke(bt, "nsbtUnstakingSYSREADONLY", [ck, (-1 * cl)], nil))
421+ let cH = ah(cG[2])
422+ let cI = -(cH)
423+ cI
419424 }
420- let cI = (cC - cE)
421- let cJ = (cD - cl)
422- let cK = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [cj, ck, cl], nil))
423- let cL = ah(cK[0])
424- let cM = ah(cK[1])
425- let cN = ad(cK[2])
426- let cO = ad(cK[3])
427- let cP = ah(cK[4])
428- let cQ = ah(cK[5])
429- let cR = ah(cN[2])
425+ let cJ = (cD - cF)
426+ let cK = (cE - cm)
427+ let cL = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [ck, cl, cm], nil))
428+ let cM = ah(cL[0])
429+ let cN = ah(cL[1])
430+ let cO = ad(cL[2])
431+ let cP = ad(cL[3])
432+ let cQ = ah(cL[4])
433+ let cR = ah(cL[5])
430434 let cS = ah(cO[2])
431- let cT = (cR + cn)
435+ let cT = ah(cP[2])
432436 let cU = (cS + co)
433- let cV = ah(cN[3])
437+ let cV = (cT + cp)
434438 let cW = ah(cO[3])
435- let cX = 0
436- let cY = cW
437- let cZ = (cV + cn)
439+ let cX = ah(cP[3])
440+ let cY = 0
441+ let cZ = cX
438442 let da = (cW + co)
439- let db = da
440- let dc = fraction(cR, d, (cV + cX))
441- let dd = fraction(cT, d, (cZ + cX))
442- let de = fraction((cR + cS), d, ((cV + cX) + cY))
443- let df = fraction((cT + cU), d, ((cZ + cX) + db))
444- let dg = if ((cP == 0))
445- then height
446- else cP
443+ let db = (cX + cp)
444+ let dc = db
445+ let dd = fraction(cS, d, (cW + cY))
446+ let de = fraction(cU, d, (da + cY))
447+ let df = fraction((cS + cT), d, ((cW + cY) + cZ))
448+ let dg = fraction((cU + cV), d, ((da + cY) + dc))
447449 let dh = if ((cQ == 0))
448450 then height
449451 else cQ
450- $Tuple2(nil, [0, cC, cD, cI, cJ, cR, cS, cT, cU, cV, cW, cZ, da, cv, cu, cB, cA, cr, cx, dc, dd, de, df, dg, dh])
452+ let di = if ((cR == 0))
453+ then height
454+ else cR
455+ $Tuple2(nil, [0, cD, cE, cJ, cK, cS, cT, cU, cV, cW, cX, da, db, cw, cv, cC, cB, cs, cy, dd, de, df, dg, dh, di])
451456 }
452457
453458
454459
455-@Callable(ca)
456-func gnsbtInfoREADONLY (cj,ck,cl) = {
457- let di = ad(invoke(this, "gnsbtInfoINTERNAL", [cj, ck, cl], nil))
458- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(ah(di[1])), toString(ah(di[2])), toString(ah(di[3])), toString(ah(di[4])), toString(ah(di[5])), toString(ah(di[6])), toString(ah(di[7])), toString(ah(di[8])), toString(ah(di[9])), toString(ah(di[10])), toString(ah(di[11])), toString(ah(di[12])), toString(ah(di[13])), toString(ah(di[14])), toString(ah(di[15])), toString(ah(di[16])), toString(ah(di[17])), toString(ah(di[18])), toString(ah(di[19])), toString(ah(di[20])), toString(ah(di[21])), toString(ah(di[22])), toString(ah(di[23])), toString(ah(di[24]))], j))
460+@Callable(cb)
461+func gnsbtInfoREADONLY (ck,cl,cm) = {
462+ let dj = ad(invoke(this, "gnsbtInfoINTERNAL", [ck, cl, cm], nil))
463+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(ah(dj[1])), toString(ah(dj[2])), toString(ah(dj[3])), toString(ah(dj[4])), toString(ah(dj[5])), toString(ah(dj[6])), toString(ah(dj[7])), toString(ah(dj[8])), toString(ah(dj[9])), toString(ah(dj[10])), toString(ah(dj[11])), toString(ah(dj[12])), toString(ah(dj[13])), toString(ah(dj[14])), toString(ah(dj[15])), toString(ah(dj[16])), toString(ah(dj[17])), toString(ah(dj[18])), toString(ah(dj[19])), toString(ah(dj[20])), toString(ah(dj[21])), toString(ah(dj[22])), toString(ah(dj[23])), toString(ah(dj[24]))], j))
459464 }
460465
461466
462467
463-@Callable(ca)
464-func gnsbtEffectiveREADONLY (cj) = {
465- let cK = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [cj, 0, 0], nil))
466- let cN = ad(cK[2])
467- let dj = ah(cN[2])
468- let dk = ah(cN[3])
469- let dl = ah(cK[9])
470- let dm = ah(cK[6])
471- $Tuple2(nil, makeString(["%d%d", toString((dk + dm)), toString((dj + dl))], j))
468+@Callable(cb)
469+func gnsbtEffectiveREADONLY (ck) = {
470+ let cL = ad(invoke(bv, "gnsbtInfoSYSREADONLY", [ck, 0, 0], nil))
471+ let cO = ad(cL[2])
472+ let dk = ah(cO[2])
473+ let dl = ah(cO[3])
474+ let dm = ah(cL[9])
475+ let dn = ah(cL[6])
476+ $Tuple2(nil, makeString(["%d%d", toString((dl + dn)), toString((dk + dm))], j))
472477 }
473478
474479
475480
476-@Callable(ca)
477-func rewardInfoREADONLY (cj) = {
478- let dn = ad(invoke(bv, "gnsbtRewardsSYSREADONLY", [cj], nil))
479- let do = aj(invoke(bs, "unclaimedRewardsREADONLY", [cj], nil))
480- $Tuple2(nil, makeString(["%s%s%s", aj(dn[0]), aj(dn[1]), do], j))
481+@Callable(cb)
482+func rewardInfoREADONLY (ck) = {
483+ let do = ad(invoke(bv, "gnsbtRewardsSYSREADONLY", [ck], nil))
484+ let dp = aj(invoke(bs, "unclaimedRewardsREADONLY", [ck], nil))
485+ $Tuple2(nil, makeString(["%s%s%s", aj(do[0]), aj(do[1]), dp], j))
481486 }
482487
483488
484489
485-@Callable(ca)
486-func mergeNsbtREADONLY (dp,dq) = {
487- let cN = ad(invoke(bt, "nsbtStakingSYSREADONLY", [dp, dq], nil))
488- let dr = ah(cN[0])
489- let ds = if ((0 >= dr))
490+@Callable(cb)
491+func mergeNsbtREADONLY (dq,dr) = {
492+ let cO = ad(invoke(bt, "nsbtStakingSYSREADONLY", [dq, dr], nil))
493+ let ds = ah(cO[0])
494+ let dt = if ((0 >= ds))
490495 then -1
491- else ah(cN[2])
492- let bQ = aq(ds)
493- let dt = if ((0 >= dq))
494- then ds
495- else if ((0 >= dr))
496+ else ah(cO[2])
497+ let bQ = aq(dt)
498+ let du = if ((0 >= dr))
499+ then dt
500+ else if ((0 >= ds))
496501 then height
497502 else {
498- let du = U(bt, K())
499- ah(invoke(bo, "mergeStakesREADONLY", [dr, ds, dq, height, du], nil))
503+ let dv = U(bt, K())
504+ ah(invoke(bo, "mergeStakesREADONLY", [ds, dt, dr, height, dv], nil))
500505 }
501- let dv = aq(dt)
502- $Tuple2(nil, makeString(["%d%d%d%d", toString(ds), toString(bQ), toString(dt), toString(dv)], j))
506+ let dw = aq(du)
507+ $Tuple2(nil, makeString(["%d%d%d%d", toString(dt), toString(bQ), toString(du), toString(dw)], j))
503508 }
504509
505510
506511
507-@Callable(ca)
508-func swapLimitCalculatorREADONLY (dw,dx,dy) = {
509- let dz = if ((dw == ""))
512+@Callable(cb)
513+func swapLimitCalculatorREADONLY (dx,dy,dz) = {
514+ let dA = if ((dx == ""))
510515 then 0
511- else ah(an(invoke(bp, "swapParamsByUserSYSREADONLY", [dw, 0], nil))._4)
512- let dA = if ((dy == "WAVES"))
513- then ac(dx, getIntegerValue(bn, H()))
514- else dx
515- let dB = ah(invoke(this, "reverseSwapLimitREADONLY", [dA, (dy == "WAVES")], nil))
516- let dC = (dB - dz)
517- $Tuple2(nil, makeString(["%s%s", toString(dz), toString(dC)], j))
516+ else ah(an(invoke(bp, "swapParamsByUserSYSREADONLY", [dx, 0], nil))._4)
517+ let dB = if ((dz == "WAVES"))
518+ then ac(dy, getIntegerValue(bn, H()))
519+ else dy
520+ let dC = ah(invoke(this, "reverseSwapLimitREADONLY", [dB, (dz == "WAVES")], nil))
521+ let dD = (dC - dA)
522+ $Tuple2(nil, makeString(["%s%s", toString(dA), toString(dD)], j))
518523 }
519524
520525
521526
522-@Callable(ca)
523-func swapInfoREADONLY (cj,aa,dy) = {
527+@Callable(cb)
528+func swapInfoREADONLY (ck,aa,dz) = {
524529 let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))
525530 let ab = ah(bF[ay])
526- let cq = an(invoke(bp, "swapParamsByUserSYSREADONLY", [cj, 0], nil))
527- let cr = cq._3
528- let cu = cq._6
529- let cv = cq._7
530- let dD = fromBase58String(dy)
531- let dE = if ((dD == n))
531+ let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil))
532+ let cs = cr._3
533+ let cv = cr._6
534+ let cw = cr._7
535+ let dE = fromBase58String(dz)
536+ let dF = if ((dE == n))
532537 then "waves"
533- else if ((dD == bx))
538+ else if ((dE == bx))
534539 then "neutrino"
535- else throw(("Can't swap assetId=" + dy))
536- let dF = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dE, aa, ab], nil))
537- let dG = dF._1
538- let dH = dF._2
539- let dI = dF._3
540- let dJ = dF._4
541- let dK = dF._5
542- let dL = dF._6
543- let dM = dF._7
544- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dG), toString(dI), toString(dL), toString(ab), toString(cr), toString(cu), toString(cv), toString(dJ)], j))
540+ else throw(("Can't swap assetId=" + dz))
541+ let dG = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dF, aa, ab], nil))
542+ let dH = dG._1
543+ let dI = dG._2
544+ let dJ = dG._3
545+ let dK = dG._4
546+ let dL = dG._5
547+ let dM = dG._6
548+ let dN = dG._7
549+ let dO = dG._8
550+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dH), toString(dJ), toString(dM), toString(dO), toString(cs), toString(cv), toString(cw), toString(dK)], j))
545551 }
546552
547553
548554
549-@Callable(ca)
555+@Callable(cb)
550556 func usdnStakingAprREADONLY (bO) = {
551- let dN = 1
557+ let dP = 1
552558 let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil))
553559 let bL = ah(bF[ay])
554- let dO = (6000 * d)
555- let bW = fraction(dO, bL, d)
556- let dP = bU(bs, dN, bW, b)
557- $Tuple2(nil, ("%d__" + toString(dP)))
560+ let dQ = (6000 * d)
561+ let bX = fraction(dQ, bL, d)
562+ let dR = bV(bs, dP, bX, b)
563+ $Tuple2(nil, ("%d__" + toString(dR)))
558564 }
559565
560566
561567
562-@Callable(ca)
568+@Callable(cb)
563569 func surfStakingAprREADONLY (bO) = {
564- let dN = 3
565- let bW = bN(bu, dN)
566- let dQ = 86400
567- let dP = bU(bu, dN, bW, dQ)
568- $Tuple2(nil, ("%d__" + toString(dP)))
570+ let dP = 3
571+ let bX = bN(bu, dP)
572+ let dS = 86400
573+ let dR = bV(bu, dP, bX, dS)
574+ $Tuple2(nil, ("%d__" + toString(dR)))
569575 }
570576
571577
572578
573-@Callable(ca)
574-func surfStakingAprV2READONLY (bO,dR) = {
575- let dN = 3
576- let bW = bN(bu, dN)
577- let dP = bU(bu, dN, bW, dR)
578- $Tuple2(nil, ("%d__" + toString(dP)))
579+@Callable(cb)
580+func surfStakingAprV2READONLY (bO,dT) = {
581+ let dP = 3
582+ let bX = bN(bu, dP)
583+ let dR = bV(bu, dP, bX, dT)
584+ $Tuple2(nil, ("%d__" + toString(dR)))
579585 }
580586
581587
582588
583-@Callable(ca)
589+@Callable(cb)
584590 func nsbtStakingAprREADONLY (bO) = {
585- let dN = 3
586- let dS = 8000000
587- let bW = bN(bt, dN)
588- let dP = bU(bt, dN, bW, dS)
589- $Tuple2(nil, ("%d__" + toString(dP)))
591+ let dP = 3
592+ let dU = 8000000
593+ let bX = bN(bt, dP)
594+ let dR = bV(bt, dP, bX, dU)
595+ $Tuple2(nil, ("%d__" + toString(dR)))
590596 }
591597
592598
593599
594-@Callable(ca)
595-func nsbtStakingAprV2READONLY (bO,dT) = {
596- let dN = 3
597- let bW = bN(bt, dN)
598- let dP = bU(bt, dN, bW, dT)
599- $Tuple2(nil, ("%d__" + toString(dP)))
600+@Callable(cb)
601+func nsbtStakingAprV2READONLY (bO,dV) = {
602+ let dP = 3
603+ let bX = bN(bt, dP)
604+ let dR = bV(bt, dP, bX, dV)
605+ $Tuple2(nil, ("%d__" + toString(dR)))
600606 }
601607
602608

github/deemru/w8io/873ac7e 
125.40 ms