tx · G28EzNHP6orvXMcYiVied6QEnvyf28v4JtZhYj2qkaRe

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.03000000 Waves

2022.09.02 12:57 [2211355] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "G28EzNHP6orvXMcYiVied6QEnvyf28v4JtZhYj2qkaRe", "fee": 3000000, "feeAssetId": null, "timestamp": 1662112637031, "version": 1, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "xuaRRfhdiPuzqM6USCZ1BBBhB9PNCp7135igVxhqg4gGVdZoi1te497xQTQWM86bHGnkbC1xB8YCJMFSFspw1Qq" ], "script": "base64:BgJkCAISAwoBCBIDCgEIEgQKAggIEgMKAQgSCQoHARERERgIGBIHCgUREREYCBIHCgUBAQEICBIAEgMKAQgSBAoCCAESBAoCCAESBAoCCAESAwoBCBIJCgcIAQEBAQgBEgMKAQgSAFoABlNDQUxFOAAIAAVNVUxUOACAwtcvAAdTQ0FMRTE4ABIABk1VTFQxOAkAtgIBAICAkLu61q3wDQADU0VQAgJfXwAOUE9PTFdFSUdIVE1VTFQFBU1VTFQ4AAp6ZXJvQmlnSW50CQC2AgEAAAAOaWR4UG9vbEFkZHJlc3MAAQANaWR4UG9vbFN0YXR1cwACABBpZHhQb29sTFBBc3NldElkAAMADWlkeEFtdEFzc2V0SWQABAAPaWR4UHJpY2VBc3NldElkAAUADmlkeEFtdEFzc2V0RGNtAAYAEGlkeFByaWNlQXNzZXREY20ABwAOaWR4SUFtdEFzc2V0SWQACAAQaWR4SVByaWNlQXNzZXRJZAAJAA1pZHhMUEFzc2V0RGNtAAoBD2dldFN0cmluZ09yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkArAICCQCsAgIJAKwCAgkArAICAgptYW5kYXRvcnkgCQClCAEFB2FkZHJlc3MCAS4FA2tleQIPIGlzIG5vdCBkZWZpbmVkAQxnZXRJbnRPclplcm8CB2FkZHJlc3MDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFB2FkZHJlc3MFA2tleQAAAQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUHYWRkcmVzcwUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEJYXNBbnlMaXN0AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0ECnZhbEFueUx5c3QFByRtYXRjaDAFCnZhbEFueUx5c3QJAAIBAhtmYWlsIHRvIGNhc3QgaW50byBMaXN0W0FueV0BBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQhhc1N0cmluZwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZ2YWxTdHIFByRtYXRjaDAFBnZhbFN0cgkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwERa2V5RmFjdG9yeUFkZHJlc3MAAhwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ABhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAAAQAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAACABRJZHhGYWN0b3J5Q2ZnSWRvRGFwcAADABVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAABAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAAFABVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAABgAZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcAAHABpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcAAIAQ1rZXlGYWN0b3J5Q2ZnAAIRJXNfX2ZhY3RvcnlDb25maWcBGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAQpscEFzc2V0U3RyCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFCmxwQXNzZXRTdHIJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFA1NFUAEQa2V5RmFjdG9yeUxwTGlzdAACECVzX19scFRva2Vuc0xpc3QBJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAQpscEFzc2V0U3RyCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFCmxwQXNzZXRTdHIJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFA1NFUAEUa2V5RmFjdG9yeVBvb2xXZWlnaHQBD2NvbnRyYWN0QWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIKcG9vbFdlaWdodAkAzAgCBQ9jb250cmFjdEFkZHJlc3MFA25pbAUDU0VQARhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwACQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBEWtleUZhY3RvcnlBZGRyZXNzAAEKcmVhZExwTGlzdAAJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCCQEYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAkBEGtleUZhY3RvcnlMcExpc3QAAgAFA1NFUAEUcmVhZEZhY3RvcnlDZmdPckZhaWwBB2ZhY3RvcnkJALUJAgkBGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAIFB2ZhY3RvcnkJAQ1rZXlGYWN0b3J5Q2ZnAAUDU0VQARhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwBBGZDZmcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEZkNmZwUZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAEYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAQRmQ2ZnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGZDZmcFGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHABF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAQRmQ2ZnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFBGZDZmcFGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAEZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbAEEZkNmZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQRmQ2ZnBRpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcAELa2V5Qm9vc3RDZmcAAgolc19fY29uZmlnAR9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50AAIeJXMlc19fc3RhdHNfX2FjdGl2ZVRvdGFsTG9ja2VkAShrZXlCb29zdGluZ1N0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzAAIlJXMlc19fc3RhdHNfX2xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwEaa2V5Qm9vc3RpbmdTdGF0c0xvY2tzQ291bnQAAhclcyVzX19zdGF0c19fbG9ja3NDb3VudAEaa2V5Qm9vc3RpbmdTdGF0c1VzZXJzQ291bnQAAh0lcyVzX19zdGF0c19fYWN0aXZlVXNlcnNDb3VudAESa2V5VXNlcjJOdW1NYXBwaW5nAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fdXNlcjJudW0JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQARJrZXlOdW0yVXNlck1hcHBpbmcBA251bQkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fbnVtMnVzZXIJAMwIAgUDbnVtBQNuaWwFA1NFUAEWa2V5TG9ja1BhcmFtVXNlckFtb3VudAEHdXNlck51bQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUHdXNlck51bQkAzAgCAgZhbW91bnQFA25pbAUDU0VQARZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAQd1c2VyTnVtCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQd1c2VyTnVtCQDMCAICBXN0YXJ0BQNuaWwFA1NFUAEUa2V5TG9ja1BhcmFtRHVyYXRpb24BB3VzZXJOdW0JALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFB3VzZXJOdW0JAMwIAgIIZHVyYXRpb24FA25pbAUDU0VQAQ1rZXlMb2NrUGFyYW1LAQd1c2VyTnVtCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQd1c2VyTnVtCQDMCAICAWsFA25pbAUDU0VQAQ1rZXlMb2NrUGFyYW1CAQd1c2VyTnVtCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQd1c2VyTnVtCQDMCAICAWIFA25pbAUDU0VQARVrZXlMb2NrUGFyYW1CeVBlcmlvZEsCB3VzZXJOdW0GcGVyaW9kCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgUHdXNlck51bQkAzAgCAgFrCQDMCAIFBnBlcmlvZAUDbmlsBQNTRVABFWtleUxvY2tQYXJhbUJ5UGVyaW9kQgIHdXNlck51bQZwZXJpb2QJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCBQd1c2VyTnVtCQDMCAICAWIJAMwIAgUGcGVyaW9kBQNuaWwFA1NFUAEga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwBB3VzZXJOdW0JALkJAgkAzAgCAh4lcyVkX191c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnQJAMwIAgUHdXNlck51bQUDbmlsBQNTRVABF2tleVVzZXJNYXhCb29zdElOVEVHUkFMAQd1c2VyTnVtCQC5CQIJAMwIAgIRJXMlZF9fbWF4Qm9vc3RJbnQJAMwIAgUHdXNlck51bQUDbmlsBQNTRVABGGtleVRvdGFsTWF4Qm9vc3RJTlRFR1JBTAACGCVzJXNfX21heEJvb3N0SW50X190b3RhbAEha2V5VXNlckJvb3N0QXZhbGFpYmxlVG9DbGFpbVRvdGFsAQd1c2VyTnVtCQC5CQIJAMwIAgIkJXMlZF9fdXNlckJvb3N0QXZhbGlhYmxlVG9DbGFpbVRvdGFsCQDMCAIFB3VzZXJOdW0FA25pbAUDU0VQARNrZXlVc2VyQm9vc3RDbGFpbWVkAQd1c2VyTnVtCQC5CQIJAMwIAgIWJXMlZF9fdXNlckJvb3N0Q2xhaW1lZAkAzAgCBQd1c2VyTnVtBQNuaWwFA1NFUAERa2V5VG90YWxDYWNoZWRHd3gAAhYlcyVzX19nd3hDYWNoZWRfX3RvdGFsAQ9rZXlTdGFrZWRCeVVzZXICDnVzZXJBZGRyZXNzU3RyDGxwQXNzZXRJZFN0cgkAuQkCCQDMCAICDiVzJXMlc19fc3Rha2VkCQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFDGxwQXNzZXRJZFN0cgUDbmlsBQNTRVABDmtleVN0YWtlZFRvdGFsAQxscEFzc2V0SWRTdHIJAKwCAgIXJXMlcyVzX19zdGFrZWRfX3RvdGFsX18FDGxwQXNzZXRJZFN0cgEQa2V5Q2xhaW1lZEJ5VXNlcgIMbHBBc3NldElkU3RyDnVzZXJBZGRyZXNzU3RyCQC5CQIJAMwIAgIPJXMlcyVzX19jbGFpbWVkCQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFDGxwQXNzZXRJZFN0cgUDbmlsBQNTRVABGWtleUNsYWltZWRCeVVzZXJNaW5SZXdhcmQCDGxwQXNzZXRJZFN0cg51c2VyQWRkcmVzc1N0cgkAuQkCCQDMCAICGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBQxscEFzc2V0SWRTdHIFA25pbAUDU0VQARtrZXlDbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQCDGxwQXNzZXRJZFN0cg51c2VyQWRkcmVzc1N0cgkAuQkCCQDMCAICGiVzJXMlc19fY2xhaW1lZEJvb3N0UmV3YXJkCQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFDGxwQXNzZXRJZFN0cgUDbmlsBQNTRVABCnJlYWRTdGFrZWQCC3N0YWtpbmdEYXBwA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQtzdGFraW5nRGFwcAUDa2V5AAABHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAEha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50AAIeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50ARVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAholcyVzX19lbWlzc2lvbl9fc3RhcnRCbG9jawEba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uARNrZXlFbWlzc2lvbkVuZEJsb2NrAAIYJXMlc19fZW1pc3Npb25fX2VuZEJsb2NrAQxrZXlBZGRvbkFkZHIAAg0lc19fYWRkb25BZGRyAAtmYWN0b3J5RGFwcAkBGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAACmZhY3RvcnlDZmcJARRyZWFkRmFjdG9yeUNmZ09yRmFpbAEFC2ZhY3RvcnlEYXBwAAxlbWlzc2lvbkRhcHAJARhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnAAtzdGFraW5nRGFwcAkBF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAQUKZmFjdG9yeUNmZwANZ3d4UmV3YXJkRGFwcAkBGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnAAxib29zdGluZ0RhcHAJARhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwBBQpmYWN0b3J5Q2ZnARlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAQlscEFzc2V0SWQEDnBvb2xBZGRyZXNzU3RyCQEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgULZmFjdG9yeURhcHAJASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFCWxwQXNzZXRJZAQOcG9vbFdlaWdodE11bHQFBU1VTFQ4BApwb29sV2VpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQtmYWN0b3J5RGFwcAkBFGtleUZhY3RvcnlQb29sV2VpZ2h0AQUOcG9vbEFkZHJlc3NTdHIEEnd4RW1pc3Npb25QZXJCbG9jawkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAEFXd4RW1pc3Npb25QZXJCbG9ja01heAkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudAAEDWJvb3N0TWF4Q29lZmYAAwQWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkAaQIJAGsDBRJ3eEVtaXNzaW9uUGVyQmxvY2sFCnBvb2xXZWlnaHQFDnBvb2xXZWlnaHRNdWx0BQ1ib29zdE1heENvZWZmBBlwb29sV3hFbWlzc2lvblBlckJsb2NrTWF4CQBrAwUVd3hFbWlzc2lvblBlckJsb2NrTWF4BQpwb29sV2VpZ2h0BQ5wb29sV2VpZ2h0TXVsdAQJbWF4RmFjdG9yCQBoAgUNYm9vc3RNYXhDb2VmZgUFTVVMVDgEDXRvdGFsTHBTdGFrZWQJAQxnZXRJbnRPclplcm8CBQtzdGFraW5nRGFwcAkBDmtleVN0YWtlZFRvdGFsAQUJbHBBc3NldElkCQDMCAIFFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sJAMwIAgUJbWF4RmFjdG9yCQDMCAIFDXRvdGFsTHBTdGFrZWQFA25pbAEaY2FsY0d3eEFtb3VudFN0YXJ0UkVBRE9OTFkDCmxvY2tBbW91bnQMbG9ja0R1cmF0aW9uD21heExvY2tEdXJhdGlvbgQHY29lZmZYOAkAawMFDGxvY2tEdXJhdGlvbgUFTVVMVDgFD21heExvY2tEdXJhdGlvbgQOZ1d4QW1vdW50U3RhcnQJAGsDBQpsb2NrQW1vdW50BQdjb2VmZlg4BQVNVUxUOAkAzAgCBQ5nV3hBbW91bnRTdGFydAUDbmlsARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpBAJwZAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvchABaQELY29uc3RydWN0b3IBDmZhY3RvcnlBZGRyZXNzBAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleUZhY3RvcnlBZGRyZXNzAAUOZmFjdG9yeUFkZHJlc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARljdXJyZW50UmV3YXJkUmF0ZVJFQURPTkxZAQlscEFzc2V0SWQECnJld2FyZERhdGEJARlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAQUJbHBBc3NldElkBBJ3eEVtaXNzaW9uUGVyQmxvY2sJAJEDAgUKcmV3YXJkRGF0YQAABAltYXhGYWN0b3IJAJEDAgUKcmV3YXJkRGF0YQABBA10b3RhbExwU3Rha2VkCQCRAwIFCnJld2FyZERhdGEAAgkAlAoCBQNuaWwJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBRJ3eEVtaXNzaW9uUGVyQmxvY2sJAMwIAgkApAMBBQltYXhGYWN0b3IJAMwIAgkApAMBBQ10b3RhbExwU3Rha2VkBQNuaWwFA1NFUAFpAR1jdXJyZW50VXNlclJld2FyZFJhdGVSRUFET05MWQIJbHBBc3NldElkC3VzZXJBZGRyZXNzBApyZXdhcmREYXRhCQEZaW50ZXJuYWxDdXJyZW50UmV3YXJkUmF0ZQEFCWxwQXNzZXRJZAQSd3hFbWlzc2lvblBlckJsb2NrCQCRAwIFCnJld2FyZERhdGEAAAQJbWF4RmFjdG9yCQCRAwIFCnJld2FyZERhdGEAAQQNdG90YWxMcFN0YWtlZAkAkQMCBQpyZXdhcmREYXRhAAIEDmxwU3Rha2VkQnlVc2VyCQEMZ2V0SW50T3JaZXJvAgULc3Rha2luZ0RhcHAJAQ9rZXlTdGFrZWRCeVVzZXICBQt1c2VyQWRkcmVzcwUJbHBBc3NldElkBA11c2VyQ2xhaW1JbmZvCQC1CQIJAQhhc1N0cmluZwEJAPwHBAULc3Rha2luZ0RhcHACD2NsYWltV3hSRUFET05MWQkAzAgCBQlscEFzc2V0SWQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDbmlsBQNTRVAEDW1pblJld2FyZFBhcnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFDXVzZXJDbGFpbUluZm8ABQIcY291bGRuJ3QgcGFyc2UgbWluUmV3YXJkUGFydAQPYm9vc3RSZXdhcmRQYXJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQ11c2VyQ2xhaW1JbmZvAAYCHmNvdWxkbid0IHBhcnNlIGJvb3N0UmV3YXJkUGFydAQFZGVidWcJAJEDAgUNdXNlckNsYWltSW5mbwAHBA1ib29zdGluZ1Bvd2VyAwkAAAIFD2Jvb3N0UmV3YXJkUGFydAAACQBoAgABBQVNVUxUOAkAawMJAGQCBQ1taW5SZXdhcmRQYXJ0BQ9ib29zdFJld2FyZFBhcnQFBU1VTFQ4BQ1taW5SZXdhcmRQYXJ0CQCUCgIFA25pbAkAuQkCCQDMCAICDCVkJWQlZCVkJWQlcwkAzAgCCQCkAwEFEnd4RW1pc3Npb25QZXJCbG9jawkAzAgCCQCkAwEFCW1heEZhY3RvcgkAzAgCCQCkAwEFDXRvdGFsTHBTdGFrZWQJAMwIAgkApAMBBQ5scFN0YWtlZEJ5VXNlcgkAzAgCCQCkAwEFDWJvb3N0aW5nUG93ZXIJAMwIAgUFZGVidWcFA25pbAUDU0VQAWkBFWNsYWltZWRSZXdhcmRSRUFET05MWQELdXNlckFkZHJlc3MEBmxwTGlzdAkBCnJlYWRMcExpc3QABAZwcmVmaXgCCiVzJWQlZCVkJXMKARtjbGFpbWVkUmV3YXJkQnlMcEFnZ3JlZ2F0b3ICCXJlc3VsdFN0cgZuZXh0THAEGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJARlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkAgUGbmV4dExwBQt1c2VyQWRkcmVzcwQbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQEba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkAgUGbmV4dExwBQt1c2VyQWRkcmVzcwQQbWluUmV3YXJkQ2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQtzdGFraW5nRGFwcAUZY2xhaW1lZEJ5VXNlck1pblJld2FyZEtFWQAABBJib29zdFJld2FyZENsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgULc3Rha2luZ0RhcHAFG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWQAABAtnRmVlQ2xhaW1lZAAACQC5CQIJAMwIAgkArAICBQZwcmVmaXgFCXJlc3VsdFN0cgkAzAgCBQZuZXh0THAJAMwIAgkApAMBBRBtaW5SZXdhcmRDbGFpbWVkCQDMCAIJAKQDAQUSYm9vc3RSZXdhcmRDbGFpbWVkCQDMCAIJAKQDAQULZ0ZlZUNsYWltZWQJAMwIAgIDZW5kBQNuaWwFA1NFUAQGcmVzdWx0CgACJGwFBmxwTGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzACAiVzCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARtjbGFpbWVkUmV3YXJkQnlMcEFnZ3JlZ2F0b3ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAJQKAgUDbmlsCQCsAgIJAKwCAgUGcmVzdWx0BQNTRVAFC3VzZXJBZGRyZXNzAWkBHWNhbGNCb29zdEJ1bGtJbnRlcm5hbFJFQURPTkxZBwtjdXJyZW50SXRlchFkZWx0YVd4QW1vdW50QnVsaxtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsRZGVsdGFMcEFtb3VudEJ1bGsQbHBBc3NldElkT3B0QnVsaw51c2VyQWRkcmVzc09wdAZyZXNBY2MDCQAAAgULY3VycmVudEl0ZXIJAJADAQURZGVsdGFXeEFtb3VudEJ1bGsJAJQKAgUDbmlsBQZyZXNBY2MEDWRlbHRhV3hBbW91bnQJAJEDAgURZGVsdGFXeEFtb3VudEJ1bGsFC2N1cnJlbnRJdGVyBBdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcwkAkQMCBRtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsFC2N1cnJlbnRJdGVyBA1kZWx0YUxwQW1vdW50CQCRAwIFEWRlbHRhTHBBbW91bnRCdWxrBQtjdXJyZW50SXRlcgQMbHBBc3NldElkT3B0CQCRAwIFEGxwQXNzZXRJZE9wdEJ1bGsFC2N1cnJlbnRJdGVyBARpbmZvCgABQAkA/AcEBQR0aGlzAhFjYWxjQm9vc3RSRUFET05MWQkAzAgCBQ1kZWx0YVd4QW1vdW50CQDMCAIFF2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzCQDMCAIFDWRlbHRhTHBBbW91bnQJAMwIAgUMbHBBc3NldElkT3B0CQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCEWNhbGNCb29zdFJFQURPTkxZCQDMCAIFDWRlbHRhV3hBbW91bnQJAMwIAgUXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAMwIAgUNZGVsdGFMcEFtb3VudAkAzAgCBQxscEFzc2V0SWRPcHQJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEA3JlcwkAzQgCBQZyZXNBY2MFBGluZm8EA2ludgoAAUAJAPwHBAUEdGhpcwIdY2FsY0Jvb3N0QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFC2N1cnJlbnRJdGVyAAEJAMwIAgURZGVsdGFXeEFtb3VudEJ1bGsJAMwIAgUbZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3NCdWxrCQDMCAIFEWRlbHRhTHBBbW91bnRCdWxrCQDMCAIFEGxwQXNzZXRJZE9wdEJ1bGsJAMwIAgUOdXNlckFkZHJlc3NPcHQJAMwIAgUDcmVzBQNuaWwFA25pbAMJAAECBQFAAglMaXN0W0FueV0FAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCHWNhbGNCb29zdEJ1bGtJbnRlcm5hbFJFQURPTkxZCQDMCAIJAGQCBQtjdXJyZW50SXRlcgABCQDMCAIFEWRlbHRhV3hBbW91bnRCdWxrCQDMCAIFG2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzQnVsawkAzAgCBRFkZWx0YUxwQW1vdW50QnVsawkAzAgCBRBscEFzc2V0SWRPcHRCdWxrCQDMCAIFDnVzZXJBZGRyZXNzT3B0CQDMCAIFA3JlcwUDbmlsBQNuaWwCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQNpbnYFA2ludgkAlAoCBQNuaWwFA2ludgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVjYWxjQm9vc3RCdWxrUkVBRE9OTFkFDWRlbHRhV3hBbW91bnQXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MNZGVsdGFMcEFtb3VudAxscEFzc2V0SWRPcHQOdXNlckFkZHJlc3NPcHQEA3JlcwkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUNZGVsdGFXeEFtb3VudAkAzAgCBRdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcwkAzAgCBQ1kZWx0YUxwQW1vdW50CQDMCAIFDGxwQXNzZXRJZE9wdAkAzAgCBQ51c2VyQWRkcmVzc09wdAkAzAgCBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUDcmVzAWkBEWNhbGNCb29zdFJFQURPTkxZBQ1kZWx0YVd4QW1vdW50F2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzDWRlbHRhTHBBbW91bnQMbHBBc3NldElkT3B0DnVzZXJBZGRyZXNzT3B0BAhtYXRoRGFwcAUNZ3d4UmV3YXJkRGFwcAQIRU1QVFlTVFICBWVtcHR5BBdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcwkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkBGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAIFDGJvb3N0aW5nRGFwcAkBC2tleUJvb3N0Q2ZnAAUDU0VQAAQEDGxwQXNzZXRJZFN0cgMJAAACBQxscEFzc2V0SWRPcHQCAAUIRU1QVFlTVFIFDGxwQXNzZXRJZE9wdAQOdXNlckFkZHJlc3NTdHIDCQAAAgUOdXNlckFkZHJlc3NPcHQCAAUIRU1QVFlTVFIFDnVzZXJBZGRyZXNzT3B0BAp1c2VyTnVtU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFDGJvb3N0aW5nRGFwcAkBEmtleVVzZXIyTnVtTWFwcGluZwEFDnVzZXJBZGRyZXNzT3B0BQhFTVBUWVNUUgQKdXNlckFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQxib29zdGluZ0RhcHAJARZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AQUKdXNlck51bVN0cgAABAlsb2NrU3RhcnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUMYm9vc3RpbmdEYXBwCQEWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawEFCnVzZXJOdW1TdHIFBmhlaWdodAQMbG9ja0R1cmF0aW9uCQELdmFsdWVPckVsc2UCCQCaCAIFDGJvb3N0aW5nRGFwcAkBFGtleUxvY2tQYXJhbUR1cmF0aW9uAQUKdXNlck51bVN0cgAABAdsb2NrRW5kCQBkAgUJbG9ja1N0YXJ0BQxsb2NrRHVyYXRpb24EEXJlbWFpbmluZ0R1cmF0aW9uCQCWAwEJAMwIAgkAZQIFB2xvY2tFbmQFBmhlaWdodAkAzAgCAAAFA25pbAQNdXNlckFtb3VudE5ldwkAZAIFCnVzZXJBbW91bnQFDWRlbHRhV3hBbW91bnQED2xvY2tEdXJhdGlvbk5ldwkAlwMBCQDMCAIJAGQCBRFyZW1haW5pbmdEdXJhdGlvbgUXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAMwIAgUXbWF4TG9ja0R1cmF0aW9uSW5CbG9ja3MFA25pbAQRdXNlckN1cnJnV3hBbW91bnQJAQVhc0ludAEJAJEDAgkBCWFzQW55TGlzdAEJAPwHBAUMYm9vc3RpbmdEYXBwAhNnd3hVc2VySW5mb1JFQURPTkxZCQDMCAIFDnVzZXJBZGRyZXNzU3RyBQNuaWwFA25pbAAABBFnV3hBbW91bnRTdGFydE5ldwkAkQMCCQEaY2FsY0d3eEFtb3VudFN0YXJ0UkVBRE9OTFkDBQ11c2VyQW1vdW50TmV3BQ9sb2NrRHVyYXRpb25OZXcFF21heExvY2tEdXJhdGlvbkluQmxvY2tzAAAEE2dXeFBhcmFtc1Jlc3VsdExpc3QJAQlhc0FueUxpc3QBCQD8BwQFCG1hdGhEYXBwAhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgURZ1d4QW1vdW50U3RhcnROZXcJAMwIAgUGaGVpZ2h0CQDMCAIFD2xvY2tEdXJhdGlvbk5ldwUDbmlsBQNuaWwEDWdXeEFtb3VudERpZmYJAGUCBRFnV3hBbW91bnRTdGFydE5ldwURdXNlckN1cnJnV3hBbW91bnQEAWsJAQVhc0ludAEJAJEDAgUTZ1d4UGFyYW1zUmVzdWx0TGlzdAAABAFiCQEFYXNJbnQBCQCRAwIFE2dXeFBhcmFtc1Jlc3VsdExpc3QAAQQGcGVyaW9kCQCkAwEJAQVhc0ludAEJAJEDAgUTZ1d4UGFyYW1zUmVzdWx0TGlzdAACBBh0b3RhbE1heEJvb3N0SW50ZWdyYWxLRVkJARhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwABBF0b3RhbENhY2hlZEd3eEtFWQkBEWtleVRvdGFsQ2FjaGVkR3d4AAQSdXNlck1heEJvb3N0SW50TmV3CQBpAgkAaAIFEWdXeEFtb3VudFN0YXJ0TmV3BQ9sb2NrRHVyYXRpb25OZXcAAgQQdG90YWxNYXhCb29zdEludAkBDGdldEludE9yWmVybwIFDGJvb3N0aW5nRGFwcAUYdG90YWxNYXhCb29zdEludGVncmFsS0VZBA50b3RhbENhY2hlZEd3eAkBC3ZhbHVlT3JFbHNlAgkAmggCBQxib29zdGluZ0RhcHAFEXRvdGFsQ2FjaGVkR3d4S0VZAAAEBU1VTFQzAOgHBBR3eEVtaXNzaW9uUGVyQmxvY2tYMwkAaAIJAQxnZXRJbnRPckZhaWwCBQxlbWlzc2lvbkRhcHAJAR5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQABQVNVUxUMwQPc3Rha2VkQnlVc2VyS0VZCQEPa2V5U3Rha2VkQnlVc2VyAgUOdXNlckFkZHJlc3NTdHIFDGxwQXNzZXRJZFN0cgQOc3Rha2VkVG90YWxLRVkJAQ5rZXlTdGFrZWRUb3RhbAEFDGxwQXNzZXRJZFN0cgQMc3Rha2VkQnlVc2VyCQEKcmVhZFN0YWtlZAIFC3N0YWtpbmdEYXBwBQ9zdGFrZWRCeVVzZXJLRVkEC3N0YWtlZFRvdGFsCQEKcmVhZFN0YWtlZAIFC3N0YWtpbmdEYXBwBQ5zdGFrZWRUb3RhbEtFWQQPc3Rha2VkQnlVc2VyTmV3CQBkAgUMc3Rha2VkQnlVc2VyBQ1kZWx0YUxwQW1vdW50BA5zdGFrZWRUb3RhbE5ldwkAZAIFC3N0YWtlZFRvdGFsBQ1kZWx0YUxwQW1vdW50BApwb29sV2VpZ2h0AwkBAiE9AgUMbHBBc3NldElkU3RyBQhFTVBUWVNUUgQOcG9vbEFkZHJlc3NTdHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQtmYWN0b3J5RGFwcAkBGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAQUMbHBBc3NldElkU3RyCQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUMbHBBc3NldElkU3RyCQERQGV4dHJOYXRpdmUoMTA1MCkCBQtmYWN0b3J5RGFwcAkBFGtleUZhY3RvcnlQb29sV2VpZ2h0AQUOcG9vbEFkZHJlc3NTdHIAAAQYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzCQBrAwUUd3hFbWlzc2lvblBlckJsb2NrWDMFCnBvb2xXZWlnaHQJAGgCBQ5QT09MV0VJR0hUTVVMVAADBAl3eFBlckxwWDMDCQECIT0CBQ5zdGFrZWRUb3RhbE5ldwAACQBrAwUYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzBQVNVUxUOAUOc3Rha2VkVG90YWxOZXcAAAQQdXNlcld4UGVyQmxvY2tYMwkAawMFCXd4UGVyTHBYMwUPc3Rha2VkQnlVc2VyTmV3BQVNVUxUOAQXYm9vc3RFbWlzc2lvblBlckJsb2NrWDMJAGgCBRhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMAAgQWdG1wVXNlckJvb3N0UGVyQmxvY2tYMwkAawMFEWdXeEFtb3VudFN0YXJ0TmV3BRdib29zdEVtaXNzaW9uUGVyQmxvY2tYMwkAZAIFDnRvdGFsQ2FjaGVkR3d4BQ1nV3hBbW91bnREaWZmBBN1c2VyQm9vc3RQZXJCbG9ja1gzCQCXAwEJAMwIAgUWdG1wVXNlckJvb3N0UGVyQmxvY2tYMwkAzAgCCQBoAgUQdXNlcld4UGVyQmxvY2tYMwACBQNuaWwECmJvb3N0Q29lZmYDCQAAAgUQdXNlcld4UGVyQmxvY2tYMwAACQBoAgABBQVNVUxUOAkAawMJAGQCBRN1c2VyQm9vc3RQZXJCbG9ja1gzBRB1c2VyV3hQZXJCbG9ja1gzBQVNVUxUOAUQdXNlcld4UGVyQmxvY2tYMwkAlAoCBQNuaWwJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBRFnV3hBbW91bnRTdGFydE5ldwkAzAgCCQCkAwEFCmJvb3N0Q29lZmYJAMwIAgIBZAUDbmlsBQNTRVABaQEXd3hFbWlzc2lvblN0YXRzUkVBRE9OTFkABAdPTkVNVUxUCQCkAwEFBU1VTFQ4BANPTkUCATEEEnd4RW1pc3Npb25QZXJCbG9jawkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAEEmVtaXNzaW9uU3RhcnRCbG9jawkBDGdldEludE9yRmFpbAIFDGVtaXNzaW9uRGFwcAkBFWtleUVtaXNzaW9uU3RhcnRCbG9jawAEDHBhc3NlZEJsb2NrcwMJAGYCBRJlbWlzc2lvblN0YXJ0QmxvY2sFBmhlaWdodAAACQBlAgUGaGVpZ2h0BRJlbWlzc2lvblN0YXJ0QmxvY2sEDnRlYW1FbUR1cmF0aW9uCQBoAgCgCwDtAgQJdGVhbUVtTWF4CQBoAgDAiOxfBQVNVUxUOAQGdGVhbUVtAwkAZgIFDHBhc3NlZEJsb2NrcwUOdGVhbUVtRHVyYXRpb24FCXRlYW1FbU1heAkAawMFCXRlYW1FbU1heAUMcGFzc2VkQmxvY2tzBQ50ZWFtRW1EdXJhdGlvbgQPdG90YWxXeFJlbGVhc2VkCQBkAgkAaAIFEnd4RW1pc3Npb25QZXJCbG9jawUMcGFzc2VkQmxvY2tzBQZ0ZWFtRW0EDXRvdGFsV3hMb2NrZWQJAQxnZXRJbnRPclplcm8CBQxib29zdGluZ0RhcHAJAR9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50AAQYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzCQEMZ2V0SW50T3JaZXJvAgUMYm9vc3RpbmdEYXBwCQEoa2V5Qm9vc3RpbmdTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwAECmxvY2tzQ291bnQJAQxnZXRJbnRPclplcm8CBQxib29zdGluZ0RhcHAJARprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudAAJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQ90b3RhbFd4UmVsZWFzZWQJAMwIAgkApAMBBQ10b3RhbFd4TG9ja2VkCQDMCAIJAKQDAQUYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzCQDMCAIJAKQDAQUKbG9ja3NDb3VudAUDbmlsBQNTRVABaQERcG9vbFN0YXRzUkVBRE9OTFkBB2xwQXNzZXQEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgULZmFjdG9yeURhcHAJASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFB2xwQXNzZXQEA2NmZwkBCWFzQW55TGlzdAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkFA25pbAUDbmlsBAlscEFzc2V0SWQJANkEAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFBvb2xMUEFzc2V0SWQECmFtdEFzc2V0SWQJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBQ1pZHhBbXRBc3NldElkBAxwcmljZUFzc2V0SWQJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBQ9pZHhQcmljZUFzc2V0SWQEC2lBbXRBc3NldElkCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUOaWR4SUFtdEFzc2V0SWQEDWlQcmljZUFzc2V0SWQJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBRBpZHhJUHJpY2VBc3NldElkBAthbXRBc3NldERjbQkBDXBhcnNlSW50VmFsdWUBCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUOaWR4QW10QXNzZXREY20EDXByaWNlQXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFByaWNlQXNzZXREY20EDXBvb2xMUEJhbGFuY2UICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUJbHBBc3NldElkCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFCWxwQXNzZXRJZAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEEmFjY0FtdEFzc2V0QmFsYW5jZQkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQphbXRBc3NldElkBQNuaWwFA25pbAQUYWNjUHJpY2VBc3NldEJhbGFuY2UJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA25pbAQKcHJpY2VzTGlzdAMJAAACBQ1wb29sTFBCYWxhbmNlAAAJAMwIAgkApgMBBQp6ZXJvQmlnSW50CQDMCAIJAKYDAQUKemVyb0JpZ0ludAkAzAgCCQCmAwEFCnplcm9CaWdJbnQFA25pbAkBCWFzQW55TGlzdAEJAPwHBAULcG9vbEFkZHJlc3MCGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkJAMwIAgUSYWNjQW10QXNzZXRCYWxhbmNlCQDMCAIFFGFjY1ByaWNlQXNzZXRCYWxhbmNlCQDMCAIFDXBvb2xMUEJhbGFuY2UFA25pbAUDbmlsBAhjdXJQcmljZQAABA9scEFtdEFzc2V0U2hhcmUJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkAkQMCBQpwcmljZXNMaXN0AAEJAMwIAgUFTVVMVDgFA25pbAUDbmlsBBFscFByaWNlQXNzZXRTaGFyZQkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCRAwIFCnByaWNlc0xpc3QAAgkAzAgCBQVNVUxUOAUDbmlsBQNuaWwECnBvb2xXZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFC2ZhY3RvcnlEYXBwCQEUa2V5RmFjdG9yeVBvb2xXZWlnaHQBCQClCAEFC3Bvb2xBZGRyZXNzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUSYWNjQW10QXNzZXRCYWxhbmNlCQDMCAIJAKQDAQUUYWNjUHJpY2VBc3NldEJhbGFuY2UJAMwIAgkApAMBBQ1wb29sTFBCYWxhbmNlCQDMCAIJAKQDAQUIY3VyUHJpY2UJAMwIAgkApAMBBQ9scEFtdEFzc2V0U2hhcmUJAMwIAgkApAMBBRFscFByaWNlQXNzZXRTaGFyZQkAzAgCCQCkAwEFCnBvb2xXZWlnaHQFA25pbAUDU0VQAWkBJHBvb2xFdmFsdWF0ZVB1dEJ5QW1vdW50QXNzZXRSRUFET05MWQIHbHBBc3NldAxpbkFtQXNzZXRBbXQEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgULZmFjdG9yeURhcHAJASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFB2xwQXNzZXQEA2NmZwkBCWFzQW55TGlzdAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkFA25pbAUDbmlsBAlscEFzc2V0SWQJANkEAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFBvb2xMUEFzc2V0SWQEDGFtQXNzZXRJZFN0cgkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFDWlkeEFtdEFzc2V0SWQECWFtQXNzZXRJZAkA2QQBBQxhbUFzc2V0SWRTdHIEDHByQXNzZXRJZFN0cgkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFD2lkeFByaWNlQXNzZXRJZAQJcHJBc3NldElkCQDZBAEFDHByQXNzZXRJZFN0cgQLYW10QXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFDmlkeEFtdEFzc2V0RGNtBA1wcmljZUFzc2V0RGNtCQENcGFyc2VJbnRWYWx1ZQEJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBRBpZHhQcmljZUFzc2V0RGNtBApwb29sU3RhdHVzCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUNaWR4UG9vbFN0YXR1cwQNcG9vbExQQmFsYW5jZQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQlscEFzc2V0SWQJAKwCAgkArAICAgZBc3NldCAJANgEAQUJbHBBc3NldElkAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQSYWNjQW10QXNzZXRCYWxhbmNlCQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFDGFtQXNzZXRJZFN0cgUDbmlsBQNuaWwEFGFjY1ByaWNlQXNzZXRCYWxhbmNlCQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFDHByQXNzZXRJZFN0cgUDbmlsBQNuaWwEDmFtdEFzc2V0QW10WDE4CQCnAwEJAQhhc1N0cmluZwEJAPwHBAULcG9vbEFkZHJlc3MCFHRvWDE4V3JhcHBlclJFQURPTkxZCQDMCAIFEmFjY0FtdEFzc2V0QmFsYW5jZQkAzAgCBQthbXRBc3NldERjbQUDbmlsBQNuaWwEEHByaWNlQXNzZXRBbXRYMTgJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUUYWNjUHJpY2VBc3NldEJhbGFuY2UJAMwIAgUNcHJpY2VBc3NldERjbQUDbmlsBQNuaWwEC2N1clByaWNlWDE4AwkAAAIFDXBvb2xMUEJhbGFuY2UAAAUKemVyb0JpZ0ludAkApwMBCQEIYXNTdHJpbmcBCQD8BwQFC3Bvb2xBZGRyZXNzAh5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkJAMwIAgkApgMBBRBwcmljZUFzc2V0QW10WDE4CQDMCAIJAKYDAQUOYW10QXNzZXRBbXRYMTgFA25pbAUDbmlsBAhjdXJQcmljZQkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFC2N1clByaWNlWDE4CQDMCAIFBU1VTFQ4BQNuaWwFA25pbAQPaW5BbUFzc2V0QW10WDE4CQCnAwEJAQhhc1N0cmluZwEJAPwHBAULcG9vbEFkZHJlc3MCFHRvWDE4V3JhcHBlclJFQURPTkxZCQDMCAIFDGluQW1Bc3NldEFtdAkAzAgCBQthbXRBc3NldERjbQUDbmlsBQNuaWwED2luUHJBc3NldEFtdFgxOAkAvAIDBQ9pbkFtQXNzZXRBbXRYMTgFC2N1clByaWNlWDE4BQZNVUxUMTgEDGluUHJBc3NldEFtdAkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFD2luUHJBc3NldEFtdFgxOAkAzAgCBQ1wcmljZUFzc2V0RGNtBQNuaWwFA25pbAQDcmVzCQD8BwQFC3Bvb2xBZGRyZXNzAiNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkAzAgCAgAJAMwIAgCgwh4JAMwIAgUMaW5BbUFzc2V0QW10CQDMCAIFCWFtQXNzZXRJZAkAzAgCBQxpblByQXNzZXRBbXQJAMwIAgUJcHJBc3NldElkCQDMCAICAAkAzAgCBgkAzAgCBwUDbmlsBQNuaWwEDSR0MDIyOTczMjMzMjYEByRtYXRjaDAFA3JlcwMDAwkAAQIIBQckbWF0Y2gwAl8xAgNJbnQDCQABAggFByRtYXRjaDACXzMCA0ludAMJAAECCAUHJG1hdGNoMAJfNAIDSW50AwkAAQIIBQckbWF0Y2gwAl81AgNJbnQJAAECCAUHJG1hdGNoMAJfNgIDSW50BwcHBwkAAAIJAMYKAQUHJG1hdGNoMAANBwQJY2FsY0xwQW10CAUHJG1hdGNoMAJfMQQMY3VyUHJpY2VDYWxjCAUHJG1hdGNoMAJfMwQJYW1CYWxhbmNlCAUHJG1hdGNoMAJfNAQJcHJCYWxhbmNlCAUHJG1hdGNoMAJfNQQKbHBFbWlzc2lvbggFByRtYXRjaDACXzYJAJcKBQUJY2FsY0xwQW10BQxjdXJQcmljZUNhbGMFCWFtQmFsYW5jZQUJcHJCYWxhbmNlBQpscEVtaXNzaW9uCQACAQITQ291bGRuJ3QgY2FzdCB0eXBlcwQJY2FsY0xwQW10CAUNJHQwMjI5NzMyMzMyNgJfMQQMY3VyUHJpY2VDYWxjCAUNJHQwMjI5NzMyMzMyNgJfMgQJYW1CYWxhbmNlCAUNJHQwMjI5NzMyMzMyNgJfMwQJcHJCYWxhbmNlCAUNJHQwMjI5NzMyMzMyNgJfNAQKbHBFbWlzc2lvbggFDSR0MDIyOTczMjMzMjYCXzUJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFCWNhbGNMcEFtdAkAzAgCCQCkAwEFCGN1clByaWNlCQDMCAIJAKQDAQUJYW1CYWxhbmNlCQDMCAIJAKQDAQUJcHJCYWxhbmNlCQDMCAIJAKQDAQUKbHBFbWlzc2lvbgkAzAgCBQpwb29sU3RhdHVzCQDMCAIJAKQDAQUMaW5BbUFzc2V0QW10CQDMCAIJAKQDAQUMaW5QckFzc2V0QW10BQNuaWwFA1NFUAFpASNwb29sRXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQIHbHBBc3NldAxpblByQXNzZXRBbXQEC3Bvb2xBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQEYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAgULZmFjdG9yeURhcHAJASZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwEFB2xwQXNzZXQEA2NmZwkBCWFzQW55TGlzdAEJAPwHBAULcG9vbEFkZHJlc3MCHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkFA25pbAUDbmlsBAlscEFzc2V0SWQJANkEAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFEGlkeFBvb2xMUEFzc2V0SWQEDGFtQXNzZXRJZFN0cgkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFDWlkeEFtdEFzc2V0SWQECWFtQXNzZXRJZAkA2QQBBQxhbUFzc2V0SWRTdHIEDHByQXNzZXRJZFN0cgkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFD2lkeFByaWNlQXNzZXRJZAQJcHJBc3NldElkCQDZBAEFDHByQXNzZXRJZFN0cgQLYW10QXNzZXREY20JAQ1wYXJzZUludFZhbHVlAQkBCGFzU3RyaW5nAQkAkQMCBQNjZmcFDmlkeEFtdEFzc2V0RGNtBA1wcmljZUFzc2V0RGNtCQENcGFyc2VJbnRWYWx1ZQEJAQhhc1N0cmluZwEJAJEDAgUDY2ZnBRBpZHhQcmljZUFzc2V0RGNtBApwb29sU3RhdHVzCQEIYXNTdHJpbmcBCQCRAwIFA2NmZwUNaWR4UG9vbFN0YXR1cwQNcG9vbExQQmFsYW5jZQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQlscEFzc2V0SWQJAKwCAgkArAICAgZBc3NldCAJANgEAQUJbHBBc3NldElkAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQMYW1CYWxhbmNlUmF3CQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFDGFtQXNzZXRJZFN0cgUDbmlsBQNuaWwEDHByQmFsYW5jZVJhdwkBBWFzSW50AQkA/AcEBQtwb29sQWRkcmVzcwIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQxwckFzc2V0SWRTdHIFA25pbAUDbmlsBA9hbUJhbGFuY2VSYXdYMTgJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUMYW1CYWxhbmNlUmF3CQDMCAIFC2FtdEFzc2V0RGNtBQNuaWwFA25pbAQPcHJCYWxhbmNlUmF3WDE4CQCnAwEJAQhhc1N0cmluZwEJAPwHBAULcG9vbEFkZHJlc3MCFHRvWDE4V3JhcHBlclJFQURPTkxZCQDMCAIFDHByQmFsYW5jZVJhdwkAzAgCBQ1wcmljZUFzc2V0RGNtBQNuaWwFA25pbAQLY3VyUHJpY2VYMTgDCQAAAgUNcG9vbExQQmFsYW5jZQAABQp6ZXJvQmlnSW50CQCnAwEJAQhhc1N0cmluZwEJAPwHBAULcG9vbEFkZHJlc3MCHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQkAzAgCCQCmAwEFD3ByQmFsYW5jZVJhd1gxOAkAzAgCCQCmAwEFD2FtQmFsYW5jZVJhd1gxOAUDbmlsBQNuaWwECGN1clByaWNlCQEFYXNJbnQBCQD8BwQFC3Bvb2xBZGRyZXNzAhZmcm9tWDE4V3JhcHBlclJFQURPTkxZCQDMCAIJAKYDAQULY3VyUHJpY2VYMTgJAMwIAgUFTVVMVDgFA25pbAUDbmlsBA9pblByQXNzZXRBbXRYMTgJAKcDAQkBCGFzU3RyaW5nAQkA/AcEBQtwb29sQWRkcmVzcwIUdG9YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgUMaW5QckFzc2V0QW10CQDMCAIFDXByaWNlQXNzZXREY20FA25pbAUDbmlsBA9pbkFtQXNzZXRBbXRYMTgJALwCAwUPaW5QckFzc2V0QW10WDE4BQZNVUxUMTgFC2N1clByaWNlWDE4BAxpbkFtQXNzZXRBbXQJAQVhc0ludAEJAPwHBAULcG9vbEFkZHJlc3MCFmZyb21YMThXcmFwcGVyUkVBRE9OTFkJAMwIAgkApgMBBQ9pbkFtQXNzZXRBbXRYMTgJAMwIAgULYW10QXNzZXREY20FA25pbAUDbmlsBANyZXMJAPwHBAULcG9vbEFkZHJlc3MCI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQDMCAICAAkAzAgCAKDCHgkAzAgCBQxpbkFtQXNzZXRBbXQJAMwIAgUJYW1Bc3NldElkCQDMCAIFDGluUHJBc3NldEFtdAkAzAgCBQlwckFzc2V0SWQJAMwIAgIACQDMCAIGCQDMCAIHBQNuaWwFA25pbAQNJHQwMjU4OTkyNjI1MgQHJG1hdGNoMAUDcmVzAwMDCQABAggFByRtYXRjaDACXzECA0ludAMJAAECCAUHJG1hdGNoMAJfMwIDSW50AwkAAQIIBQckbWF0Y2gwAl80AgNJbnQDCQABAggFByRtYXRjaDACXzUCA0ludAkAAQIIBQckbWF0Y2gwAl82AgNJbnQHBwcHCQAAAgkAxgoBBQckbWF0Y2gwAA0HBAljYWxjTHBBbXQIBQckbWF0Y2gwAl8xBAxjdXJQcmljZUNhbGMIBQckbWF0Y2gwAl8zBAlhbUJhbGFuY2UIBQckbWF0Y2gwAl80BAlwckJhbGFuY2UIBQckbWF0Y2gwAl81BApscEVtaXNzaW9uCAUHJG1hdGNoMAJfNgkAlwoFBQljYWxjTHBBbXQFDGN1clByaWNlQ2FsYwUJYW1CYWxhbmNlBQlwckJhbGFuY2UFCmxwRW1pc3Npb24JAAIBAhNDb3VsZG4ndCBjYXN0IHR5cGVzBAljYWxjTHBBbXQIBQ0kdDAyNTg5OTI2MjUyAl8xBAxjdXJQcmljZUNhbGMIBQ0kdDAyNTg5OTI2MjUyAl8yBAlhbUJhbGFuY2UIBQ0kdDAyNTg5OTI2MjUyAl8zBAlwckJhbGFuY2UIBQ0kdDAyNTg5OTI2MjUyAl80BApscEVtaXNzaW9uCAUNJHQwMjU4OTkyNjI1MgJfNQkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUJY2FsY0xwQW10CQDMCAIJAKQDAQUIY3VyUHJpY2UJAMwIAgkApAMBBQlhbUJhbGFuY2UJAMwIAgkApAMBBQlwckJhbGFuY2UJAMwIAgkApAMBBQpscEVtaXNzaW9uCQDMCAIFCnBvb2xTdGF0dXMJAMwIAgkApAMBBQxpbkFtQXNzZXRBbXQJAMwIAgkApAMBBQxpblByQXNzZXRBbXQFA25pbAUDU0VQAWkBF3Bvb2xFdmFsdWF0ZUdldFJFQURPTkxZAhBwYXltZW50THBBc3NldElkDHBheW1lbnRMcEFtdAQLcG9vbEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwCBQtmYWN0b3J5RGFwcAkBJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAQUQcGF5bWVudExwQXNzZXRJZAQDcmVzCQD8BwQFC3Bvb2xBZGRyZXNzAiNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkAzAgCAgAJAMwIAgUQcGF5bWVudExwQXNzZXRJZAkAzAgCBQxwYXltZW50THBBbXQJAMwIAgkApQgBBQtwb29sQWRkcmVzcwUDbmlsBQNuaWwEDSR0MDI2OTQ3MjczNjQEByRtYXRjaDAFA3JlcwMDAwkAAQIIBQckbWF0Y2gwAl8xAgNJbnQDCQABAggFByRtYXRjaDACXzICA0ludAMJAAECCAUHJG1hdGNoMAJfNQIDSW50AwkAAQIIBQckbWF0Y2gwAl82AgNJbnQDCQABAggFByRtYXRjaDACXzcCA0ludAMJAAECCAUHJG1hdGNoMAJfOAIGU3RyaW5nCQABAggFByRtYXRjaDACXzkCBlN0cmluZwcHBwcHBwkAAAIJAMYKAQUHJG1hdGNoMAAKBwQIb3V0QW1BbXQIBQckbWF0Y2gwAl8xBAhvdXRQckFtdAgFByRtYXRjaDACXzIECWFtQmFsYW5jZQgFByRtYXRjaDACXzUECXByQmFsYW5jZQgFByRtYXRjaDACXzYECmxwRW1pc3Npb24IBQckbWF0Y2gwAl83BAhjdXJQcmljZQgFByRtYXRjaDACXzgECnBvb2xTdGF0dXMIBQckbWF0Y2gwAl85CQCZCgcFCG91dEFtQW10BQhvdXRQckFtdAUJYW1CYWxhbmNlBQlwckJhbGFuY2UFCmxwRW1pc3Npb24FCGN1clByaWNlBQpwb29sU3RhdHVzCQACAQITQ291bGRuJ3QgY2FzdCB0eXBlcwQIb3V0QW1BbXQIBQ0kdDAyNjk0NzI3MzY0Al8xBAhvdXRQckFtdAgFDSR0MDI2OTQ3MjczNjQCXzIECWFtQmFsYW5jZQgFDSR0MDI2OTQ3MjczNjQCXzMECXByQmFsYW5jZQgFDSR0MDI2OTQ3MjczNjQCXzQECmxwRW1pc3Npb24IBQ0kdDAyNjk0NzI3MzY0Al81BAhjdXJQcmljZQgFDSR0MDI2OTQ3MjczNjQCXzYECnBvb2xTdGF0dXMIBQ0kdDAyNjk0NzI3MzY0Al83CQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUIb3V0QW1BbXQJAMwIAgkApAMBBQhvdXRQckFtdAkAzAgCCQCkAwEFCWFtQmFsYW5jZQkAzAgCCQCkAwEFCXByQmFsYW5jZQkAzAgCCQCkAwEFCmxwRW1pc3Npb24JAMwIAgUIY3VyUHJpY2UJAMwIAgUKcG9vbFN0YXR1cwUDbmlsBQNTRVABaQETZ3d4VXNlckluZm9SRUFET05MWQELdXNlckFkZHJlc3MED2d3eFVzZXJJbmZvTElTVAkBCWFzQW55TGlzdAEJAPwHBAUMYm9vc3RpbmdEYXBwAhNnd3hVc2VySW5mb1JFQURPTkxZCQDMCAIFC3VzZXJBZGRyZXNzBQNuaWwFA25pbAQJZ3d4QW1vdW50CQEFYXNJbnQBCQCRAwIFD2d3eFVzZXJJbmZvTElTVAAACQCUCgIFA25pbAkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUJZ3d4QW1vdW50BQNuaWwFA1NFUAFpARN1bnN0YWtlQW5kR2V0T25lVGtuBwtwb29sQWRkcmVzcwZhbW91bnQKZXhjaFJlc3VsdAdub3RVc2VkCW91dEFtb3VudApvdXRBc3NldElkCHNsaXBwYWdlBANpbnYJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQtwb29sQWRkcmVzcwkBDGtleUFkZG9uQWRkcgACE3Vuc3Rha2VBbmRHZXRPbmVUa24JAMwIAgUGYW1vdW50CQDMCAIFCmV4Y2hSZXN1bHQJAMwIAgUHbm90VXNlZAkAzAgCBQlvdXRBbW91bnQJAMwIAgUKb3V0QXNzZXRJZAkAzAgCBQhzbGlwcGFnZQUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5UPSZZg==", "chainId": 84, "height": 2211355, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8MxAtLqVjF8mQbBUFdkRTyJioWQ21dhHDymQ5HUwmB4d Next: Hkn4HC6RBFx4v3qhqrbtXqt55KAxV7JYyXA6kxWx7vZr Diff:
OldNewDifferences
237237 func aS () = "%s__addonAddr"
238238
239239
240-func aT () = "%s__feePermille"
240+let aT = X()
241241
242+let aU = Z(aT)
242243
243-let aU = X()
244+let aV = ad(aU)
244245
245-let aV = Z(aU)
246+let aM = ae(aU)
246247
247-let aW = ad(aV)
248+let aW = af(aU)
248249
249-let aM = ae(aV)
250+let aX = ab(aU)
250251
251-let aX = af(aV)
252-
253-let aY = ab(aV)
254-
255-func aZ (ba) = {
256- let bb = t(aU, U(ba))
257- let bc = b
258- let bd = getIntegerValue(aU, V(bb))
259- let be = w(aW, aN())
260- let bf = w(aW, aO())
261- let bg = 3
262- let bh = (fraction(be, bd, bc) / bg)
263- let bi = fraction(bf, bd, bc)
264- let bj = (bg * b)
265- let bk = v(aM, aH(ba))
266-[bh, bj, bk]
252+func aY (aZ) = {
253+ let ba = t(aT, U(aZ))
254+ let bb = b
255+ let bc = getIntegerValue(aT, V(ba))
256+ let bd = w(aV, aN())
257+ let be = w(aV, aO())
258+ let bf = 3
259+ let bg = (fraction(bd, bc, bb) / bf)
260+ let bh = fraction(be, bc, bb)
261+ let bi = (bf * b)
262+ let bj = v(aM, aH(aZ))
263+[bg, bi, bj]
267264 }
268265
269266
270-func bl (bm,bn,bo) = {
271- let bp = fraction(bn, b, bo)
272- let bq = fraction(bm, bp, b)
273-[bq]
267+func bk (bl,bm,bn) = {
268+ let bo = fraction(bm, b, bn)
269+ let bp = fraction(bl, bo, b)
270+[bp]
274271 }
275272
276273
277-func br () = {
274+func bq () = {
278275 let z = getString(G())
279276 if ($isInstanceOf(z, "String"))
280277 then {
281- let bs = z
282- fromBase58String(bs)
278+ let br = z
279+ fromBase58String(br)
283280 }
284281 else if ($isInstanceOf(z, "Unit"))
285282 then unit
287284 }
288285
289286
290-func bt () = {
287+func bs () = {
291288 let z = getString(H())
292289 if ($isInstanceOf(z, "String"))
293290 then {
294- let bs = z
295- fromBase58String(bs)
291+ let br = z
292+ fromBase58String(br)
296293 }
297294 else if ($isInstanceOf(z, "Unit"))
298295 then unit
300297 }
301298
302299
303-func bu (bv) = {
304- let bw = throw("Permission denied")
305- let z = br()
300+func bt (bu) = {
301+ let bv = throw("Permission denied")
302+ let z = bq()
306303 if ($isInstanceOf(z, "ByteVector"))
307304 then {
308- let bx = z
309- if ((bv.callerPublicKey == bx))
305+ let bw = z
306+ if ((bu.callerPublicKey == bw))
310307 then true
311- else bw
308+ else bv
312309 }
313310 else if ($isInstanceOf(z, "Unit"))
314- then if ((bv.caller == this))
311+ then if ((bu.caller == this))
315312 then true
316- else bw
313+ else bv
317314 else throw("Match error")
318315 }
319316
320317
321-@Callable(bv)
322-func constructor (by) = {
323- let bz = bu(bv)
324- if ((bz == bz))
325- then [StringEntry(F(), by)]
318+@Callable(bu)
319+func constructor (bx) = {
320+ let by = bt(bu)
321+ if ((by == by))
322+ then [StringEntry(F(), bx)]
326323 else throw("Strict value is not equal to itself.")
327324 }
328325
329326
330327
331-@Callable(bv)
332-func currentRewardRateREADONLY (ba) = {
333- let bA = aZ(ba)
334- let be = bA[0]
335- let bj = bA[1]
336- let bk = bA[2]
337- $Tuple2(nil, makeString(["%d%d%d", toString(be), toString(bj), toString(bk)], e))
328+@Callable(bu)
329+func currentRewardRateREADONLY (aZ) = {
330+ let bz = aY(aZ)
331+ let bd = bz[0]
332+ let bi = bz[1]
333+ let bj = bz[2]
334+ $Tuple2(nil, makeString(["%d%d%d", toString(bd), toString(bi), toString(bj)], e))
338335 }
339336
340337
341338
342-@Callable(bv)
343-func currentUserRewardRateREADONLY (ba,am) = {
344- let bA = aZ(ba)
345- let be = bA[0]
346- let bj = bA[1]
347- let bk = bA[2]
348- let bB = v(aM, aE(am, ba))
349- let bC = split(D(invoke(aM, "claimWxREADONLY", [ba, am], nil)), e)
350- let bD = valueOrErrorMessage(parseInt(bC[5]), "couldn't parse minRewardPart")
351- let bE = valueOrErrorMessage(parseInt(bC[6]), "couldn't parse boostRewardPart")
352- let bF = bC[7]
353- let bG = if ((bE == 0))
339+@Callable(bu)
340+func currentUserRewardRateREADONLY (aZ,am) = {
341+ let bz = aY(aZ)
342+ let bd = bz[0]
343+ let bi = bz[1]
344+ let bj = bz[2]
345+ let bA = v(aM, aE(am, aZ))
346+ let bB = split(D(invoke(aM, "claimWxREADONLY", [aZ, am], nil)), e)
347+ let bC = valueOrErrorMessage(parseInt(bB[5]), "couldn't parse minRewardPart")
348+ let bD = valueOrErrorMessage(parseInt(bB[6]), "couldn't parse boostRewardPart")
349+ let bE = bB[7]
350+ let bF = if ((bD == 0))
354351 then (1 * b)
355- else fraction((bD + bE), b, bD)
356- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(be), toString(bj), toString(bk), toString(bB), toString(bG), bF], e))
352+ else fraction((bC + bD), b, bC)
353+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bd), toString(bi), toString(bj), toString(bA), toString(bF), bE], e))
357354 }
358355
359356
360357
361-@Callable(bv)
358+@Callable(bu)
362359 func claimedRewardREADONLY (am) = {
363- let bH = Y()
364- let bI = "%s%d%d%d%s"
365- func bJ (bK,bL) = {
366- let bM = aJ(bL, am)
367- let bN = aK(bL, am)
360+ let bG = Y()
361+ let bH = "%s%d%d%d%s"
362+ func bI (bJ,bK) = {
363+ let bL = aJ(bK, am)
364+ let bM = aK(bK, am)
365+ let bN = valueOrElse(getInteger(aM, bL), 0)
368366 let bO = valueOrElse(getInteger(aM, bM), 0)
369- let bP = valueOrElse(getInteger(aM, bN), 0)
370- let bQ = 0
371- makeString([(bI + bK), bL, toString(bO), toString(bP), toString(bQ), "end"], e)
367+ let bP = 0
368+ makeString([(bH + bJ), bK, toString(bN), toString(bO), toString(bP), "end"], e)
372369 }
373370
374- let bR = {
375- let bS = bH
376- let bT = size(bS)
377- let bU = "%s"
378- func bV (bW,bX) = if ((bX >= bT))
379- then bW
380- else bJ(bW, bS[bX])
371+ let bQ = {
372+ let bR = bG
373+ let bS = size(bR)
374+ let bT = "%s"
375+ func bU (bV,bW) = if ((bW >= bS))
376+ then bV
377+ else bI(bV, bR[bW])
381378
382- func bY (bW,bX) = if ((bX >= bT))
383- then bW
379+ func bX (bV,bW) = if ((bW >= bS))
380+ then bV
384381 else throw("List size exceeds 10")
385382
386- bY(bV(bV(bV(bV(bV(bV(bV(bV(bV(bV(bU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
383+ bX(bU(bU(bU(bU(bU(bU(bU(bU(bU(bU(bT, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
387384 }
388- $Tuple2(nil, ((bR + e) + am))
385+ $Tuple2(nil, ((bQ + e) + am))
389386 }
390387
391388
392389
393-@Callable(bv)
394-func calcBoostBulkInternalREADONLY (bZ,ca,cb,cc,cd,ce,cf) = if ((bZ == size(ca)))
395- then $Tuple2(nil, cf)
390+@Callable(bu)
391+func calcBoostBulkInternalREADONLY (bY,bZ,ca,cb,cc,cd,ce) = if ((bY == size(bZ)))
392+ then $Tuple2(nil, ce)
396393 else {
397- let cg = ca[bZ]
398- let ch = cb[bZ]
399- let ci = cc[bZ]
400- let cj = cd[bZ]
401- let ck = {
402- let cl = invoke(this, "calcBoostREADONLY", [cg, ch, ci, cj, ce], nil)
403- if ($isInstanceOf(cl, "String"))
404- then cl
405- else throw(($getType(invoke(this, "calcBoostREADONLY", [cg, ch, ci, cj, ce], nil)) + " couldn't be cast to String"))
394+ let cf = bZ[bY]
395+ let cg = ca[bY]
396+ let ch = cb[bY]
397+ let ci = cc[bY]
398+ let cj = {
399+ let ck = invoke(this, "calcBoostREADONLY", [cf, cg, ch, ci, cd], nil)
400+ if ($isInstanceOf(ck, "String"))
401+ then ck
402+ else throw(($getType(invoke(this, "calcBoostREADONLY", [cf, cg, ch, ci, cd], nil)) + " couldn't be cast to String"))
406403 }
407- let cm = (cf :+ ck)
408- let cn = {
409- let cl = invoke(this, "calcBoostBulkInternalREADONLY", [(bZ + 1), ca, cb, cc, cd, ce, cm], nil)
410- if ($isInstanceOf(cl, "List[Any]"))
411- then cl
412- else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bZ + 1), ca, cb, cc, cd, ce, cm], nil)) + " couldn't be cast to List[Any]"))
404+ let cl = (ce :+ cj)
405+ let cm = {
406+ let ck = invoke(this, "calcBoostBulkInternalREADONLY", [(bY + 1), bZ, ca, cb, cc, cd, cl], nil)
407+ if ($isInstanceOf(ck, "List[Any]"))
408+ then ck
409+ else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bY + 1), bZ, ca, cb, cc, cd, cl], nil)) + " couldn't be cast to List[Any]"))
413410 }
414- if ((cn == cn))
415- then $Tuple2(nil, cn)
411+ if ((cm == cm))
412+ then $Tuple2(nil, cm)
416413 else throw("Strict value is not equal to itself.")
417414 }
418415
419416
420417
421-@Callable(bv)
422-func calcBoostBulkREADONLY (cg,ch,ci,cj,ce) = {
423- let cm = invoke(this, "calcBoostBulkInternalREADONLY", [0, cg, ch, ci, cj, ce, nil], nil)
424- $Tuple2(nil, cm)
418+@Callable(bu)
419+func calcBoostBulkREADONLY (cf,cg,ch,ci,cd) = {
420+ let cl = invoke(this, "calcBoostBulkInternalREADONLY", [0, cf, cg, ch, ci, cd, nil], nil)
421+ $Tuple2(nil, cl)
425422 }
426423
427424
428425
429-@Callable(bv)
430-func calcBoostREADONLY (cg,ch,ci,cj,ce) = {
431- let co = aX
432- let cp = "empty"
433- let cq = parseIntValue(split(t(aY, ag()), e)[4])
434- let aG = if ((cj == ""))
435- then cp
436- else cj
437- let aF = if ((ce == ""))
438- then cp
439- else ce
440- let cr = valueOrElse(getString(aY, al(ce)), cp)
441- let cs = valueOrElse(getInteger(aY, ap(cr)), 0)
442- let ct = valueOrElse(getInteger(aY, ar(cr)), height)
443- let bn = valueOrElse(getInteger(aY, as(cr)), 0)
444- let cu = (ct + bn)
445- let cv = max([(cu - height), 0])
446- let cw = (cs + cg)
447- let cx = min([(cv + ch), cq])
448- let cy = B(x(invoke(aY, "gwxUserInfoREADONLY", [aF], nil))[0])
449- let cz = bl(cw, cx, cq)[0]
450- let cA = x(invoke(co, "calcGwxParamsREADONLY", [cz, height, cx], nil))
451- let cB = (cz - cy)
452- let cC = B(cA[0])
453- let cD = B(cA[1])
454- let aw = toString(B(cA[2]))
455- let cE = aA()
456- let cF = aD()
457- let cG = ((cz * cx) / 2)
458- let cH = v(aY, cE)
459- let cI = valueOrElse(getInteger(aY, cF), 0)
460- let cJ = 1000
461- let cK = (w(aW, aN()) * cJ)
462- let cL = aE(aF, aG)
463- let cM = aH(aG)
426+@Callable(bu)
427+func calcBoostREADONLY (cf,cg,ch,ci,cd) = {
428+ let cn = aW
429+ let co = "empty"
430+ let cp = parseIntValue(split(t(aX, ag()), e)[4])
431+ let aG = if ((ci == ""))
432+ then co
433+ else ci
434+ let aF = if ((cd == ""))
435+ then co
436+ else cd
437+ let cq = valueOrElse(getString(aX, al(cd)), co)
438+ let cr = valueOrElse(getInteger(aX, ap(cq)), 0)
439+ let cs = valueOrElse(getInteger(aX, ar(cq)), height)
440+ let bm = valueOrElse(getInteger(aX, as(cq)), 0)
441+ let ct = (cs + bm)
442+ let cu = max([(ct - height), 0])
443+ let cv = (cr + cf)
444+ let cw = min([(cu + cg), cp])
445+ let cx = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
446+ let cy = bk(cv, cw, cp)[0]
447+ let cz = x(invoke(cn, "calcGwxParamsREADONLY", [cy, height, cw], nil))
448+ let cA = (cy - cx)
449+ let cB = B(cz[0])
450+ let cC = B(cz[1])
451+ let aw = toString(B(cz[2]))
452+ let cD = aA()
453+ let cE = aD()
454+ let cF = ((cy * cw) / 2)
455+ let cG = v(aX, cD)
456+ let cH = valueOrElse(getInteger(aX, cE), 0)
457+ let cI = 1000
458+ let cJ = (w(aV, aN()) * cI)
459+ let cK = aE(aF, aG)
460+ let cL = aH(aG)
461+ let cM = aL(aM, cK)
464462 let cN = aL(aM, cL)
465- let cO = aL(aM, cM)
466- let cP = (cN + ci)
467- let cQ = (cO + ci)
468- let bd = if ((aG != cp))
463+ let cO = (cM + ch)
464+ let cP = (cN + ch)
465+ let bc = if ((aG != co))
469466 then {
470- let bb = valueOrErrorMessage(getString(aU, R(aG)), ("unsupported lp asset " + aG))
471- getIntegerValue(aU, V(bb))
467+ let ba = valueOrErrorMessage(getString(aT, R(aG)), ("unsupported lp asset " + aG))
468+ getIntegerValue(aT, V(ba))
472469 }
473470 else 0
474- let cR = fraction(cK, bd, (f * 3))
475- let cS = if ((cQ != 0))
476- then fraction(cR, b, cQ)
471+ let cQ = fraction(cJ, bc, (f * 3))
472+ let cR = if ((cP != 0))
473+ then fraction(cQ, b, cP)
477474 else 0
478- let cT = fraction(cS, cP, b)
479- let cU = (cR * 2)
480- let cV = fraction(cz, cU, (cI + cB))
481- let cW = min([cV, (cT * 2)])
482- let cX = if ((cT == 0))
475+ let cS = fraction(cR, cO, b)
476+ let cT = (cQ * 2)
477+ let cU = fraction(cy, cT, (cH + cA))
478+ let cV = min([cU, (cS * 2)])
479+ let cW = if ((cS == 0))
483480 then (1 * b)
484- else fraction((cW + cT), b, cT)
485- $Tuple2(nil, makeString(["%d%d%s", toString(cz), toString(cX), "d"], e))
481+ else fraction((cV + cS), b, cS)
482+ $Tuple2(nil, makeString(["%d%d%s", toString(cy), toString(cW), "d"], e))
486483 }
487484
488485
489486
490-@Callable(bv)
487+@Callable(bu)
491488 func wxEmissionStatsREADONLY () = {
492- let cY = toString(b)
493- let cZ = "1"
494- let be = w(aW, aN())
495- let da = w(aW, aP())
496- let db = if ((da > height))
489+ let cX = toString(b)
490+ let cY = "1"
491+ let bd = w(aV, aN())
492+ let cZ = w(aV, aP())
493+ let da = if ((cZ > height))
497494 then 0
498- else (height - da)
499- let dc = (1440 * 365)
500- let dd = (201000000 * b)
501- let de = if ((db > dc))
502- then dd
503- else fraction(dd, db, dc)
504- let df = ((be * db) + de)
505- let dg = v(aY, ah())
506- let dh = v(aY, ai())
507- let di = v(aY, aj())
508- $Tuple2(nil, makeString(["%d%d%d%d", toString(df), toString(dg), toString(dh), toString(di)], e))
495+ else (height - cZ)
496+ let db = (1440 * 365)
497+ let dc = (201000000 * b)
498+ let dd = if ((da > db))
499+ then dc
500+ else fraction(dc, da, db)
501+ let de = ((bd * da) + dd)
502+ let df = v(aX, ah())
503+ let dg = v(aX, ai())
504+ let dh = v(aX, aj())
505+ $Tuple2(nil, makeString(["%d%d%d%d", toString(de), toString(df), toString(dg), toString(dh)], e))
509506 }
510507
511508
512509
513-@Callable(bv)
514-func poolStatsREADONLY (dj) = {
515- let dk = addressFromStringValue(t(aU, U(dj)))
516- let dl = x(invoke(dk, "getPoolConfigWrapperREADONLY", nil, nil))
517- let ba = fromBase58String(D(dl[j]))
518- let dm = D(dl[k])
519- let dn = D(dl[l])
520- let do = D(dl[o])
521- let dp = D(dl[p])
522- let dq = parseIntValue(D(dl[m]))
523- let dr = parseIntValue(D(dl[n]))
524- let ds = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
525- let dt = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dm], nil))
526- let du = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dn], nil))
527- let dv = if ((ds == 0))
510+@Callable(bu)
511+func poolStatsREADONLY (di) = {
512+ let dj = addressFromStringValue(t(aT, U(di)))
513+ let dk = x(invoke(dj, "getPoolConfigWrapperREADONLY", nil, nil))
514+ let aZ = fromBase58String(D(dk[j]))
515+ let dl = D(dk[k])
516+ let dm = D(dk[l])
517+ let dn = D(dk[o])
518+ let do = D(dk[p])
519+ let dp = parseIntValue(D(dk[m]))
520+ let dq = parseIntValue(D(dk[n]))
521+ let dr = valueOrErrorMessage(assetInfo(aZ), (("Asset " + toBase58String(aZ)) + " doesn't exist")).quantity
522+ let ds = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dl], nil))
523+ let dt = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dm], nil))
524+ let du = if ((dr == 0))
528525 then [toString(g), toString(g), toString(g)]
529- else x(invoke(dk, "calcPricesWrapperREADONLY", [dt, du, ds], nil))
530- let dw = 0
531- let dx = B(invoke(dk, "fromX18WrapperREADONLY", [dv[1], b], nil))
532- let dy = B(invoke(dk, "fromX18WrapperREADONLY", [dv[2], b], nil))
533- let bd = getIntegerValue(aU, V(toString(dk)))
534- let dz = v(dk, aT())
535- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dt), toString(du), toString(ds), toString(dw), toString(dx), toString(dy), toString(bd), toString(dz)], e))
526+ else x(invoke(dj, "calcPricesWrapperREADONLY", [ds, dt, dr], nil))
527+ let dv = 0
528+ let dw = B(invoke(dj, "fromX18WrapperREADONLY", [du[1], b], nil))
529+ let dx = B(invoke(dj, "fromX18WrapperREADONLY", [du[2], b], nil))
530+ let bc = getIntegerValue(aT, V(toString(dj)))
531+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ds), toString(dt), toString(dr), toString(dv), toString(dw), toString(dx), toString(bc)], e))
536532 }
537533
538534
539535
540-@Callable(bv)
541-func poolEvaluatePutByAmountAssetREADONLY (dj,dA) = {
542- let dk = addressFromStringValue(t(aU, U(dj)))
543- let dl = x(invoke(dk, "getPoolConfigWrapperREADONLY", nil, nil))
544- let ba = fromBase58String(D(dl[j]))
545- let dB = D(dl[k])
536+@Callable(bu)
537+func poolEvaluatePutByAmountAssetREADONLY (di,dy) = {
538+ let dj = addressFromStringValue(t(aT, U(di)))
539+ let dk = x(invoke(dj, "getPoolConfigWrapperREADONLY", nil, nil))
540+ let aZ = fromBase58String(D(dk[j]))
541+ let dz = D(dk[k])
542+ let dA = fromBase58String(dz)
543+ let dB = D(dk[l])
546544 let dC = fromBase58String(dB)
547- let dD = D(dl[l])
548- let dE = fromBase58String(dD)
549- let dq = parseIntValue(D(dl[m]))
550- let dr = parseIntValue(D(dl[n]))
551- let dF = D(dl[i])
552- let ds = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
553- let dt = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dB], nil))
554- let du = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dD], nil))
555- let dG = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dt, dq], nil)))
556- let dH = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [du, dr], nil)))
557- let dI = if ((ds == 0))
545+ let dp = parseIntValue(D(dk[m]))
546+ let dq = parseIntValue(D(dk[n]))
547+ let dD = D(dk[i])
548+ let dr = valueOrErrorMessage(assetInfo(aZ), (("Asset " + toBase58String(aZ)) + " doesn't exist")).quantity
549+ let ds = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dz], nil))
550+ let dt = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dB], nil))
551+ let dE = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [ds, dp], nil)))
552+ let dF = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dt, dq], nil)))
553+ let dG = if ((dr == 0))
558554 then g
559- else parseBigIntValue(D(invoke(dk, "calcPriceBigIntWrapperREADONLY", [toString(dH), toString(dG)], nil)))
560- let dw = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dI), b], nil))
561- let dJ = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dA, dq], nil)))
562- let dK = fraction(dJ, dI, d)
563- let dL = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dK), dr], nil))
564- let cm = invoke(dk, "estimatePutOperationWrapperREADONLY", ["", 500000, dA, dC, dL, dE, "", true, false], nil)
565- let dM = {
566- let z = cm
555+ else parseBigIntValue(D(invoke(dj, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
556+ let dv = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dG), b], nil))
557+ let dH = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dy, dp], nil)))
558+ let dI = fraction(dH, dG, d)
559+ let dJ = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dI), dq], nil))
560+ let cl = invoke(dj, "estimatePutOperationWrapperREADONLY", ["", 500000, dy, dA, dJ, dC, "", true, false], nil)
561+ let dK = {
562+ let z = cl
567563 if (if (if ($isInstanceOf(z._1, "Int"))
568564 then if ($isInstanceOf(z._3, "Int"))
569565 then if ($isInstanceOf(z._4, "Int"))
576572 then (size(z) == 13)
577573 else false)
578574 then {
579- let dN = z._1
580- let dO = z._3
581- let dP = z._4
582- let dQ = z._5
583- let dR = z._6
584- $Tuple5(dN, dO, dP, dQ, dR)
575+ let dL = z._1
576+ let dM = z._3
577+ let dN = z._4
578+ let dO = z._5
579+ let dP = z._6
580+ $Tuple5(dL, dM, dN, dO, dP)
585581 }
586582 else throw("Couldn't cast types")
587583 }
588- let dN = dM._1
589- let dO = dM._2
590- let dP = dM._3
591- let dQ = dM._4
592- let dR = dM._5
593- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dN), toString(dw), toString(dP), toString(dQ), toString(dR), dF, toString(dA), toString(dL)], e))
584+ let dL = dK._1
585+ let dM = dK._2
586+ let dN = dK._3
587+ let dO = dK._4
588+ let dP = dK._5
589+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dL), toString(dv), toString(dN), toString(dO), toString(dP), dD, toString(dy), toString(dJ)], e))
594590 }
595591
596592
597593
598-@Callable(bv)
599-func poolEvaluatePutByPriceAssetREADONLY (dj,dL) = {
600- let dk = addressFromStringValue(t(aU, U(dj)))
601- let dl = x(invoke(dk, "getPoolConfigWrapperREADONLY", nil, nil))
602- let ba = fromBase58String(D(dl[j]))
603- let dB = D(dl[k])
594+@Callable(bu)
595+func poolEvaluatePutByPriceAssetREADONLY (di,dJ) = {
596+ let dj = addressFromStringValue(t(aT, U(di)))
597+ let dk = x(invoke(dj, "getPoolConfigWrapperREADONLY", nil, nil))
598+ let aZ = fromBase58String(D(dk[j]))
599+ let dz = D(dk[k])
600+ let dA = fromBase58String(dz)
601+ let dB = D(dk[l])
604602 let dC = fromBase58String(dB)
605- let dD = D(dl[l])
606- let dE = fromBase58String(dD)
607- let dq = parseIntValue(D(dl[m]))
608- let dr = parseIntValue(D(dl[n]))
609- let dF = D(dl[i])
610- let ds = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
611- let dS = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dB], nil))
612- let dT = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dD], nil))
613- let dU = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dS, dq], nil)))
614- let dV = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dT, dr], nil)))
615- let dI = if ((ds == 0))
603+ let dp = parseIntValue(D(dk[m]))
604+ let dq = parseIntValue(D(dk[n]))
605+ let dD = D(dk[i])
606+ let dr = valueOrErrorMessage(assetInfo(aZ), (("Asset " + toBase58String(aZ)) + " doesn't exist")).quantity
607+ let dQ = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dz], nil))
608+ let dR = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dB], nil))
609+ let dS = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dQ, dp], nil)))
610+ let dT = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dR, dq], nil)))
611+ let dG = if ((dr == 0))
616612 then g
617- else parseBigIntValue(D(invoke(dk, "calcPriceBigIntWrapperREADONLY", [toString(dV), toString(dU)], nil)))
618- let dw = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dI), b], nil))
619- let dK = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dL, dr], nil)))
620- let dJ = fraction(dK, d, dI)
621- let dA = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dJ), dq], nil))
622- let cm = invoke(dk, "estimatePutOperationWrapperREADONLY", ["", 500000, dA, dC, dL, dE, "", true, false], nil)
623- let dW = {
624- let z = cm
613+ else parseBigIntValue(D(invoke(dj, "calcPriceBigIntWrapperREADONLY", [toString(dT), toString(dS)], nil)))
614+ let dv = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dG), b], nil))
615+ let dI = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dJ, dq], nil)))
616+ let dH = fraction(dI, d, dG)
617+ let dy = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dH), dp], nil))
618+ let cl = invoke(dj, "estimatePutOperationWrapperREADONLY", ["", 500000, dy, dA, dJ, dC, "", true, false], nil)
619+ let dU = {
620+ let z = cl
625621 if (if (if ($isInstanceOf(z._1, "Int"))
626622 then if ($isInstanceOf(z._3, "Int"))
627623 then if ($isInstanceOf(z._4, "Int"))
634630 then (size(z) == 13)
635631 else false)
636632 then {
637- let dN = z._1
638- let dO = z._3
639- let dP = z._4
640- let dQ = z._5
641- let dR = z._6
642- $Tuple5(dN, dO, dP, dQ, dR)
633+ let dL = z._1
634+ let dM = z._3
635+ let dN = z._4
636+ let dO = z._5
637+ let dP = z._6
638+ $Tuple5(dL, dM, dN, dO, dP)
643639 }
644640 else throw("Couldn't cast types")
645641 }
646- let dN = dW._1
647- let dO = dW._2
648- let dP = dW._3
649- let dQ = dW._4
650- let dR = dW._5
651- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dN), toString(dw), toString(dP), toString(dQ), toString(dR), dF, toString(dA), toString(dL)], e))
642+ let dL = dU._1
643+ let dM = dU._2
644+ let dN = dU._3
645+ let dO = dU._4
646+ let dP = dU._5
647+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dL), toString(dv), toString(dN), toString(dO), toString(dP), dD, toString(dy), toString(dJ)], e))
652648 }
653649
654650
655651
656-@Callable(bv)
657-func poolEvaluateGetREADONLY (dX,dY) = {
658- let dk = addressFromStringValue(t(aU, U(dX)))
659- let cm = invoke(dk, "estimateGetOperationWrapperREADONLY", ["", dX, dY, toString(dk)], nil)
660- let dZ = {
661- let z = cm
652+@Callable(bu)
653+func poolEvaluateGetREADONLY (dV,dW) = {
654+ let dj = addressFromStringValue(t(aT, U(dV)))
655+ let cl = invoke(dj, "estimateGetOperationWrapperREADONLY", ["", dV, dW, toString(dj)], nil)
656+ let dX = {
657+ let z = cl
662658 if (if (if ($isInstanceOf(z._1, "Int"))
663659 then if ($isInstanceOf(z._2, "Int"))
664660 then if ($isInstanceOf(z._5, "Int"))
675671 then (size(z) == 10)
676672 else false)
677673 then {
678- let ea = z._1
679- let eb = z._2
680- let dP = z._5
681- let dQ = z._6
682- let dR = z._7
683- let dw = z._8
684- let dF = z._9
685- $Tuple7(ea, eb, dP, dQ, dR, dw, dF)
674+ let dY = z._1
675+ let dZ = z._2
676+ let dN = z._5
677+ let dO = z._6
678+ let dP = z._7
679+ let dv = z._8
680+ let dD = z._9
681+ $Tuple7(dY, dZ, dN, dO, dP, dv, dD)
686682 }
687683 else throw("Couldn't cast types")
688684 }
689- let ea = dZ._1
690- let eb = dZ._2
691- let dP = dZ._3
692- let dQ = dZ._4
693- let dR = dZ._5
694- let dw = dZ._6
695- let dF = dZ._7
696- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ea), toString(eb), toString(dP), toString(dQ), toString(dR), dw, dF], e))
685+ let dY = dX._1
686+ let dZ = dX._2
687+ let dN = dX._3
688+ let dO = dX._4
689+ let dP = dX._5
690+ let dv = dX._6
691+ let dD = dX._7
692+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dY), toString(dZ), toString(dN), toString(dO), toString(dP), dv, dD], e))
697693 }
698694
699695
700696
701-@Callable(bv)
697+@Callable(bu)
702698 func gwxUserInfoREADONLY (am) = {
703- let ec = x(invoke(aY, "gwxUserInfoREADONLY", [am], nil))
704- let ed = B(ec[0])
705- $Tuple2(nil, makeString(["%d", toString(ed)], e))
699+ let ea = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
700+ let eb = B(ea[0])
701+ $Tuple2(nil, makeString(["%d", toString(eb)], e))
706702 }
707703
708704
709705
710-@Callable(bv)
711-func unstakeAndGetOneTkn (dk,ee,ef,eg,eh,ei,ej) = {
712- let cn = invoke(addressFromStringValue(value(getString(addressFromStringValue(dk), aS()))), "unstakeAndGetOneTkn", [ee, ef, eg, eh, ei, ej], nil)
713- if ((cn == cn))
706+@Callable(bu)
707+func unstakeAndGetOneTkn (dj,ec,ed,ee,ef,eg,eh) = {
708+ let cm = invoke(addressFromStringValue(value(getString(addressFromStringValue(dj), aS()))), "unstakeAndGetOneTkn", [ec, ed, ee, ef, eg, eh], nil)
709+ if ((cm == cm))
714710 then $Tuple2(nil, unit)
715711 else throw("Strict value is not equal to itself.")
716712 }
717713
718714
719715
720-@Callable(bv)
721-func setManager (ek) = {
722- let bz = bu(bv)
723- if ((bz == bz))
716+@Callable(bu)
717+func setManager (ei) = {
718+ let by = bt(bu)
719+ if ((by == by))
724720 then {
725- let el = fromBase58String(ek)
726- if ((el == el))
727- then [StringEntry(H(), ek)]
721+ let ej = fromBase58String(ei)
722+ if ((ej == ej))
723+ then [StringEntry(H(), ei)]
728724 else throw("Strict value is not equal to itself.")
729725 }
730726 else throw("Strict value is not equal to itself.")
732728
733729
734730
735-@Callable(bv)
731+@Callable(bu)
736732 func confirmManager () = {
737- let em = bt()
738- let en = if (isDefined(em))
733+ let ek = bs()
734+ let el = if (isDefined(ek))
739735 then true
740736 else throw("No pending manager")
741- if ((en == en))
737+ if ((el == el))
742738 then {
743- let eo = if ((bv.callerPublicKey == value(em)))
739+ let em = if ((bu.callerPublicKey == value(ek)))
744740 then true
745741 else throw("You are not pending manager")
746- if ((eo == eo))
747- then [StringEntry(G(), toBase58String(value(em))), DeleteEntry(H())]
742+ if ((em == em))
743+ then [StringEntry(G(), toBase58String(value(ek))), DeleteEntry(H())]
748744 else throw("Strict value is not equal to itself.")
749745 }
750746 else throw("Strict value is not equal to itself.")
751747 }
752748
753749
754-@Verifier(ep)
755-func eq () = {
756- let er = {
757- let z = br()
750+@Verifier(en)
751+func eo () = {
752+ let ep = {
753+ let z = bq()
758754 if ($isInstanceOf(z, "ByteVector"))
759755 then {
760- let bx = z
761- bx
756+ let bw = z
757+ bw
762758 }
763759 else if ($isInstanceOf(z, "Unit"))
764- then ep.senderPublicKey
760+ then en.senderPublicKey
765761 else throw("Match error")
766762 }
767- sigVerify(ep.bodyBytes, ep.proofs[0], er)
763+ sigVerify(en.bodyBytes, en.proofs[0], ep)
768764 }
769765
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = 1
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 5
2727
2828 let m = 6
2929
3030 let n = 7
3131
3232 let o = 8
3333
3434 let p = 9
3535
3636 let q = 10
3737
3838 func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3939
4040
4141 func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4242
4343
4444 func v (u,s) = valueOrElse(getInteger(u, s), 0)
4545
4646
4747 func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4848
4949
5050 func x (y) = {
5151 let z = y
5252 if ($isInstanceOf(z, "List[Any]"))
5353 then {
5454 let A = z
5555 A
5656 }
5757 else throw("fail to cast into List[Any]")
5858 }
5959
6060
6161 func B (y) = {
6262 let z = y
6363 if ($isInstanceOf(z, "Int"))
6464 then {
6565 let C = z
6666 C
6767 }
6868 else throw("fail to cast into Int")
6969 }
7070
7171
7272 func D (y) = {
7373 let z = y
7474 if ($isInstanceOf(z, "String"))
7575 then {
7676 let E = z
7777 E
7878 }
7979 else throw("fail to cast into String")
8080 }
8181
8282
8383 func F () = "%s%s__config__factoryAddress"
8484
8585
8686 func G () = "%s__managerPublicKey"
8787
8888
8989 func H () = "%s__pendingManagerPublicKey"
9090
9191
9292 let I = 1
9393
9494 let J = 2
9595
9696 let K = 3
9797
9898 let L = 4
9999
100100 let M = 5
101101
102102 let N = 6
103103
104104 let O = 7
105105
106106 let P = 8
107107
108108 func Q () = "%s__factoryConfig"
109109
110110
111111 func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
112112
113113
114114 func T () = "%s__lpTokensList"
115115
116116
117117 func U (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
118118
119119
120120 func V (W) = makeString(["%s%s", "poolWeight", W], e)
121121
122122
123123 func X () = addressFromStringValue(r(F()))
124124
125125
126126 func Y () = split(valueOrElse(getString(X(), T()), ""), e)
127127
128128
129129 func Z (aa) = split(t(aa, Q()), e)
130130
131131
132132 func ab (ac) = addressFromStringValue(ac[J])
133133
134134
135135 func ad (ac) = addressFromStringValue(ac[M])
136136
137137
138138 func ae (ac) = addressFromStringValue(ac[I])
139139
140140
141141 func af (ac) = addressFromStringValue(ac[P])
142142
143143
144144 func ag () = "%s__config"
145145
146146
147147 func ah () = "%s%s__stats__activeTotalLocked"
148148
149149
150150 func ai () = "%s%s__stats__locksDurationSumInBlocks"
151151
152152
153153 func aj () = "%s%s__stats__locksCount"
154154
155155
156156 func ak () = "%s%s__stats__activeUsersCount"
157157
158158
159159 func al (am) = makeString(["%s%s%s__mapping__user2num", am], e)
160160
161161
162162 func an (ao) = makeString(["%s%s%s__mapping__num2user", ao], e)
163163
164164
165165 func ap (aq) = makeString(["%s%d%s__paramByUserNum", aq, "amount"], e)
166166
167167
168168 func ar (aq) = makeString(["%s%d%s__paramByUserNum", aq, "start"], e)
169169
170170
171171 func as (aq) = makeString(["%s%d%s__paramByUserNum", aq, "duration"], e)
172172
173173
174174 func at (aq) = makeString(["%s%d%s__paramByUserNum", aq, "k"], e)
175175
176176
177177 func au (aq) = makeString(["%s%d%s__paramByUserNum", aq, "b"], e)
178178
179179
180180 func av (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "k", aw], e)
181181
182182
183183 func ax (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "b", aw], e)
184184
185185
186186 func ay (aq) = makeString(["%s%d__userBoostEmissionLastInt", aq], e)
187187
188188
189189 func az (aq) = makeString(["%s%d__maxBoostInt", aq], e)
190190
191191
192192 func aA () = "%s%s__maxBoostInt__total"
193193
194194
195195 func aB (aq) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aq], e)
196196
197197
198198 func aC (aq) = makeString(["%s%d__userBoostClaimed", aq], e)
199199
200200
201201 func aD () = "%s%s__gwxCached__total"
202202
203203
204204 func aE (aF,aG) = makeString(["%s%s%s__staked", aF, aG], e)
205205
206206
207207 func aH (aG) = ("%s%s%s__staked__total__" + aG)
208208
209209
210210 func aI (aG,aF) = makeString(["%s%s%s__claimed", aF, aG], e)
211211
212212
213213 func aJ (aG,aF) = makeString(["%s%s%s__claimedMinReward", aF, aG], e)
214214
215215
216216 func aK (aG,aF) = makeString(["%s%s%s__claimedBoostReward", aF, aG], e)
217217
218218
219219 func aL (aM,s) = valueOrElse(getInteger(aM, s), 0)
220220
221221
222222 func aN () = "%s%s__ratePerBlock__current"
223223
224224
225225 func aO () = "%s%s__ratePerBlockMax__current"
226226
227227
228228 func aP () = "%s%s__emission__startBlock"
229229
230230
231231 func aQ () = "%s%s__emission__duration"
232232
233233
234234 func aR () = "%s%s__emission__endBlock"
235235
236236
237237 func aS () = "%s__addonAddr"
238238
239239
240-func aT () = "%s__feePermille"
240+let aT = X()
241241
242+let aU = Z(aT)
242243
243-let aU = X()
244+let aV = ad(aU)
244245
245-let aV = Z(aU)
246+let aM = ae(aU)
246247
247-let aW = ad(aV)
248+let aW = af(aU)
248249
249-let aM = ae(aV)
250+let aX = ab(aU)
250251
251-let aX = af(aV)
252-
253-let aY = ab(aV)
254-
255-func aZ (ba) = {
256- let bb = t(aU, U(ba))
257- let bc = b
258- let bd = getIntegerValue(aU, V(bb))
259- let be = w(aW, aN())
260- let bf = w(aW, aO())
261- let bg = 3
262- let bh = (fraction(be, bd, bc) / bg)
263- let bi = fraction(bf, bd, bc)
264- let bj = (bg * b)
265- let bk = v(aM, aH(ba))
266-[bh, bj, bk]
252+func aY (aZ) = {
253+ let ba = t(aT, U(aZ))
254+ let bb = b
255+ let bc = getIntegerValue(aT, V(ba))
256+ let bd = w(aV, aN())
257+ let be = w(aV, aO())
258+ let bf = 3
259+ let bg = (fraction(bd, bc, bb) / bf)
260+ let bh = fraction(be, bc, bb)
261+ let bi = (bf * b)
262+ let bj = v(aM, aH(aZ))
263+[bg, bi, bj]
267264 }
268265
269266
270-func bl (bm,bn,bo) = {
271- let bp = fraction(bn, b, bo)
272- let bq = fraction(bm, bp, b)
273-[bq]
267+func bk (bl,bm,bn) = {
268+ let bo = fraction(bm, b, bn)
269+ let bp = fraction(bl, bo, b)
270+[bp]
274271 }
275272
276273
277-func br () = {
274+func bq () = {
278275 let z = getString(G())
279276 if ($isInstanceOf(z, "String"))
280277 then {
281- let bs = z
282- fromBase58String(bs)
278+ let br = z
279+ fromBase58String(br)
283280 }
284281 else if ($isInstanceOf(z, "Unit"))
285282 then unit
286283 else throw("Match error")
287284 }
288285
289286
290-func bt () = {
287+func bs () = {
291288 let z = getString(H())
292289 if ($isInstanceOf(z, "String"))
293290 then {
294- let bs = z
295- fromBase58String(bs)
291+ let br = z
292+ fromBase58String(br)
296293 }
297294 else if ($isInstanceOf(z, "Unit"))
298295 then unit
299296 else throw("Match error")
300297 }
301298
302299
303-func bu (bv) = {
304- let bw = throw("Permission denied")
305- let z = br()
300+func bt (bu) = {
301+ let bv = throw("Permission denied")
302+ let z = bq()
306303 if ($isInstanceOf(z, "ByteVector"))
307304 then {
308- let bx = z
309- if ((bv.callerPublicKey == bx))
305+ let bw = z
306+ if ((bu.callerPublicKey == bw))
310307 then true
311- else bw
308+ else bv
312309 }
313310 else if ($isInstanceOf(z, "Unit"))
314- then if ((bv.caller == this))
311+ then if ((bu.caller == this))
315312 then true
316- else bw
313+ else bv
317314 else throw("Match error")
318315 }
319316
320317
321-@Callable(bv)
322-func constructor (by) = {
323- let bz = bu(bv)
324- if ((bz == bz))
325- then [StringEntry(F(), by)]
318+@Callable(bu)
319+func constructor (bx) = {
320+ let by = bt(bu)
321+ if ((by == by))
322+ then [StringEntry(F(), bx)]
326323 else throw("Strict value is not equal to itself.")
327324 }
328325
329326
330327
331-@Callable(bv)
332-func currentRewardRateREADONLY (ba) = {
333- let bA = aZ(ba)
334- let be = bA[0]
335- let bj = bA[1]
336- let bk = bA[2]
337- $Tuple2(nil, makeString(["%d%d%d", toString(be), toString(bj), toString(bk)], e))
328+@Callable(bu)
329+func currentRewardRateREADONLY (aZ) = {
330+ let bz = aY(aZ)
331+ let bd = bz[0]
332+ let bi = bz[1]
333+ let bj = bz[2]
334+ $Tuple2(nil, makeString(["%d%d%d", toString(bd), toString(bi), toString(bj)], e))
338335 }
339336
340337
341338
342-@Callable(bv)
343-func currentUserRewardRateREADONLY (ba,am) = {
344- let bA = aZ(ba)
345- let be = bA[0]
346- let bj = bA[1]
347- let bk = bA[2]
348- let bB = v(aM, aE(am, ba))
349- let bC = split(D(invoke(aM, "claimWxREADONLY", [ba, am], nil)), e)
350- let bD = valueOrErrorMessage(parseInt(bC[5]), "couldn't parse minRewardPart")
351- let bE = valueOrErrorMessage(parseInt(bC[6]), "couldn't parse boostRewardPart")
352- let bF = bC[7]
353- let bG = if ((bE == 0))
339+@Callable(bu)
340+func currentUserRewardRateREADONLY (aZ,am) = {
341+ let bz = aY(aZ)
342+ let bd = bz[0]
343+ let bi = bz[1]
344+ let bj = bz[2]
345+ let bA = v(aM, aE(am, aZ))
346+ let bB = split(D(invoke(aM, "claimWxREADONLY", [aZ, am], nil)), e)
347+ let bC = valueOrErrorMessage(parseInt(bB[5]), "couldn't parse minRewardPart")
348+ let bD = valueOrErrorMessage(parseInt(bB[6]), "couldn't parse boostRewardPart")
349+ let bE = bB[7]
350+ let bF = if ((bD == 0))
354351 then (1 * b)
355- else fraction((bD + bE), b, bD)
356- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(be), toString(bj), toString(bk), toString(bB), toString(bG), bF], e))
352+ else fraction((bC + bD), b, bC)
353+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bd), toString(bi), toString(bj), toString(bA), toString(bF), bE], e))
357354 }
358355
359356
360357
361-@Callable(bv)
358+@Callable(bu)
362359 func claimedRewardREADONLY (am) = {
363- let bH = Y()
364- let bI = "%s%d%d%d%s"
365- func bJ (bK,bL) = {
366- let bM = aJ(bL, am)
367- let bN = aK(bL, am)
360+ let bG = Y()
361+ let bH = "%s%d%d%d%s"
362+ func bI (bJ,bK) = {
363+ let bL = aJ(bK, am)
364+ let bM = aK(bK, am)
365+ let bN = valueOrElse(getInteger(aM, bL), 0)
368366 let bO = valueOrElse(getInteger(aM, bM), 0)
369- let bP = valueOrElse(getInteger(aM, bN), 0)
370- let bQ = 0
371- makeString([(bI + bK), bL, toString(bO), toString(bP), toString(bQ), "end"], e)
367+ let bP = 0
368+ makeString([(bH + bJ), bK, toString(bN), toString(bO), toString(bP), "end"], e)
372369 }
373370
374- let bR = {
375- let bS = bH
376- let bT = size(bS)
377- let bU = "%s"
378- func bV (bW,bX) = if ((bX >= bT))
379- then bW
380- else bJ(bW, bS[bX])
371+ let bQ = {
372+ let bR = bG
373+ let bS = size(bR)
374+ let bT = "%s"
375+ func bU (bV,bW) = if ((bW >= bS))
376+ then bV
377+ else bI(bV, bR[bW])
381378
382- func bY (bW,bX) = if ((bX >= bT))
383- then bW
379+ func bX (bV,bW) = if ((bW >= bS))
380+ then bV
384381 else throw("List size exceeds 10")
385382
386- bY(bV(bV(bV(bV(bV(bV(bV(bV(bV(bV(bU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
383+ bX(bU(bU(bU(bU(bU(bU(bU(bU(bU(bU(bT, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
387384 }
388- $Tuple2(nil, ((bR + e) + am))
385+ $Tuple2(nil, ((bQ + e) + am))
389386 }
390387
391388
392389
393-@Callable(bv)
394-func calcBoostBulkInternalREADONLY (bZ,ca,cb,cc,cd,ce,cf) = if ((bZ == size(ca)))
395- then $Tuple2(nil, cf)
390+@Callable(bu)
391+func calcBoostBulkInternalREADONLY (bY,bZ,ca,cb,cc,cd,ce) = if ((bY == size(bZ)))
392+ then $Tuple2(nil, ce)
396393 else {
397- let cg = ca[bZ]
398- let ch = cb[bZ]
399- let ci = cc[bZ]
400- let cj = cd[bZ]
401- let ck = {
402- let cl = invoke(this, "calcBoostREADONLY", [cg, ch, ci, cj, ce], nil)
403- if ($isInstanceOf(cl, "String"))
404- then cl
405- else throw(($getType(invoke(this, "calcBoostREADONLY", [cg, ch, ci, cj, ce], nil)) + " couldn't be cast to String"))
394+ let cf = bZ[bY]
395+ let cg = ca[bY]
396+ let ch = cb[bY]
397+ let ci = cc[bY]
398+ let cj = {
399+ let ck = invoke(this, "calcBoostREADONLY", [cf, cg, ch, ci, cd], nil)
400+ if ($isInstanceOf(ck, "String"))
401+ then ck
402+ else throw(($getType(invoke(this, "calcBoostREADONLY", [cf, cg, ch, ci, cd], nil)) + " couldn't be cast to String"))
406403 }
407- let cm = (cf :+ ck)
408- let cn = {
409- let cl = invoke(this, "calcBoostBulkInternalREADONLY", [(bZ + 1), ca, cb, cc, cd, ce, cm], nil)
410- if ($isInstanceOf(cl, "List[Any]"))
411- then cl
412- else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bZ + 1), ca, cb, cc, cd, ce, cm], nil)) + " couldn't be cast to List[Any]"))
404+ let cl = (ce :+ cj)
405+ let cm = {
406+ let ck = invoke(this, "calcBoostBulkInternalREADONLY", [(bY + 1), bZ, ca, cb, cc, cd, cl], nil)
407+ if ($isInstanceOf(ck, "List[Any]"))
408+ then ck
409+ else throw(($getType(invoke(this, "calcBoostBulkInternalREADONLY", [(bY + 1), bZ, ca, cb, cc, cd, cl], nil)) + " couldn't be cast to List[Any]"))
413410 }
414- if ((cn == cn))
415- then $Tuple2(nil, cn)
411+ if ((cm == cm))
412+ then $Tuple2(nil, cm)
416413 else throw("Strict value is not equal to itself.")
417414 }
418415
419416
420417
421-@Callable(bv)
422-func calcBoostBulkREADONLY (cg,ch,ci,cj,ce) = {
423- let cm = invoke(this, "calcBoostBulkInternalREADONLY", [0, cg, ch, ci, cj, ce, nil], nil)
424- $Tuple2(nil, cm)
418+@Callable(bu)
419+func calcBoostBulkREADONLY (cf,cg,ch,ci,cd) = {
420+ let cl = invoke(this, "calcBoostBulkInternalREADONLY", [0, cf, cg, ch, ci, cd, nil], nil)
421+ $Tuple2(nil, cl)
425422 }
426423
427424
428425
429-@Callable(bv)
430-func calcBoostREADONLY (cg,ch,ci,cj,ce) = {
431- let co = aX
432- let cp = "empty"
433- let cq = parseIntValue(split(t(aY, ag()), e)[4])
434- let aG = if ((cj == ""))
435- then cp
436- else cj
437- let aF = if ((ce == ""))
438- then cp
439- else ce
440- let cr = valueOrElse(getString(aY, al(ce)), cp)
441- let cs = valueOrElse(getInteger(aY, ap(cr)), 0)
442- let ct = valueOrElse(getInteger(aY, ar(cr)), height)
443- let bn = valueOrElse(getInteger(aY, as(cr)), 0)
444- let cu = (ct + bn)
445- let cv = max([(cu - height), 0])
446- let cw = (cs + cg)
447- let cx = min([(cv + ch), cq])
448- let cy = B(x(invoke(aY, "gwxUserInfoREADONLY", [aF], nil))[0])
449- let cz = bl(cw, cx, cq)[0]
450- let cA = x(invoke(co, "calcGwxParamsREADONLY", [cz, height, cx], nil))
451- let cB = (cz - cy)
452- let cC = B(cA[0])
453- let cD = B(cA[1])
454- let aw = toString(B(cA[2]))
455- let cE = aA()
456- let cF = aD()
457- let cG = ((cz * cx) / 2)
458- let cH = v(aY, cE)
459- let cI = valueOrElse(getInteger(aY, cF), 0)
460- let cJ = 1000
461- let cK = (w(aW, aN()) * cJ)
462- let cL = aE(aF, aG)
463- let cM = aH(aG)
426+@Callable(bu)
427+func calcBoostREADONLY (cf,cg,ch,ci,cd) = {
428+ let cn = aW
429+ let co = "empty"
430+ let cp = parseIntValue(split(t(aX, ag()), e)[4])
431+ let aG = if ((ci == ""))
432+ then co
433+ else ci
434+ let aF = if ((cd == ""))
435+ then co
436+ else cd
437+ let cq = valueOrElse(getString(aX, al(cd)), co)
438+ let cr = valueOrElse(getInteger(aX, ap(cq)), 0)
439+ let cs = valueOrElse(getInteger(aX, ar(cq)), height)
440+ let bm = valueOrElse(getInteger(aX, as(cq)), 0)
441+ let ct = (cs + bm)
442+ let cu = max([(ct - height), 0])
443+ let cv = (cr + cf)
444+ let cw = min([(cu + cg), cp])
445+ let cx = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
446+ let cy = bk(cv, cw, cp)[0]
447+ let cz = x(invoke(cn, "calcGwxParamsREADONLY", [cy, height, cw], nil))
448+ let cA = (cy - cx)
449+ let cB = B(cz[0])
450+ let cC = B(cz[1])
451+ let aw = toString(B(cz[2]))
452+ let cD = aA()
453+ let cE = aD()
454+ let cF = ((cy * cw) / 2)
455+ let cG = v(aX, cD)
456+ let cH = valueOrElse(getInteger(aX, cE), 0)
457+ let cI = 1000
458+ let cJ = (w(aV, aN()) * cI)
459+ let cK = aE(aF, aG)
460+ let cL = aH(aG)
461+ let cM = aL(aM, cK)
464462 let cN = aL(aM, cL)
465- let cO = aL(aM, cM)
466- let cP = (cN + ci)
467- let cQ = (cO + ci)
468- let bd = if ((aG != cp))
463+ let cO = (cM + ch)
464+ let cP = (cN + ch)
465+ let bc = if ((aG != co))
469466 then {
470- let bb = valueOrErrorMessage(getString(aU, R(aG)), ("unsupported lp asset " + aG))
471- getIntegerValue(aU, V(bb))
467+ let ba = valueOrErrorMessage(getString(aT, R(aG)), ("unsupported lp asset " + aG))
468+ getIntegerValue(aT, V(ba))
472469 }
473470 else 0
474- let cR = fraction(cK, bd, (f * 3))
475- let cS = if ((cQ != 0))
476- then fraction(cR, b, cQ)
471+ let cQ = fraction(cJ, bc, (f * 3))
472+ let cR = if ((cP != 0))
473+ then fraction(cQ, b, cP)
477474 else 0
478- let cT = fraction(cS, cP, b)
479- let cU = (cR * 2)
480- let cV = fraction(cz, cU, (cI + cB))
481- let cW = min([cV, (cT * 2)])
482- let cX = if ((cT == 0))
475+ let cS = fraction(cR, cO, b)
476+ let cT = (cQ * 2)
477+ let cU = fraction(cy, cT, (cH + cA))
478+ let cV = min([cU, (cS * 2)])
479+ let cW = if ((cS == 0))
483480 then (1 * b)
484- else fraction((cW + cT), b, cT)
485- $Tuple2(nil, makeString(["%d%d%s", toString(cz), toString(cX), "d"], e))
481+ else fraction((cV + cS), b, cS)
482+ $Tuple2(nil, makeString(["%d%d%s", toString(cy), toString(cW), "d"], e))
486483 }
487484
488485
489486
490-@Callable(bv)
487+@Callable(bu)
491488 func wxEmissionStatsREADONLY () = {
492- let cY = toString(b)
493- let cZ = "1"
494- let be = w(aW, aN())
495- let da = w(aW, aP())
496- let db = if ((da > height))
489+ let cX = toString(b)
490+ let cY = "1"
491+ let bd = w(aV, aN())
492+ let cZ = w(aV, aP())
493+ let da = if ((cZ > height))
497494 then 0
498- else (height - da)
499- let dc = (1440 * 365)
500- let dd = (201000000 * b)
501- let de = if ((db > dc))
502- then dd
503- else fraction(dd, db, dc)
504- let df = ((be * db) + de)
505- let dg = v(aY, ah())
506- let dh = v(aY, ai())
507- let di = v(aY, aj())
508- $Tuple2(nil, makeString(["%d%d%d%d", toString(df), toString(dg), toString(dh), toString(di)], e))
495+ else (height - cZ)
496+ let db = (1440 * 365)
497+ let dc = (201000000 * b)
498+ let dd = if ((da > db))
499+ then dc
500+ else fraction(dc, da, db)
501+ let de = ((bd * da) + dd)
502+ let df = v(aX, ah())
503+ let dg = v(aX, ai())
504+ let dh = v(aX, aj())
505+ $Tuple2(nil, makeString(["%d%d%d%d", toString(de), toString(df), toString(dg), toString(dh)], e))
509506 }
510507
511508
512509
513-@Callable(bv)
514-func poolStatsREADONLY (dj) = {
515- let dk = addressFromStringValue(t(aU, U(dj)))
516- let dl = x(invoke(dk, "getPoolConfigWrapperREADONLY", nil, nil))
517- let ba = fromBase58String(D(dl[j]))
518- let dm = D(dl[k])
519- let dn = D(dl[l])
520- let do = D(dl[o])
521- let dp = D(dl[p])
522- let dq = parseIntValue(D(dl[m]))
523- let dr = parseIntValue(D(dl[n]))
524- let ds = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
525- let dt = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dm], nil))
526- let du = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dn], nil))
527- let dv = if ((ds == 0))
510+@Callable(bu)
511+func poolStatsREADONLY (di) = {
512+ let dj = addressFromStringValue(t(aT, U(di)))
513+ let dk = x(invoke(dj, "getPoolConfigWrapperREADONLY", nil, nil))
514+ let aZ = fromBase58String(D(dk[j]))
515+ let dl = D(dk[k])
516+ let dm = D(dk[l])
517+ let dn = D(dk[o])
518+ let do = D(dk[p])
519+ let dp = parseIntValue(D(dk[m]))
520+ let dq = parseIntValue(D(dk[n]))
521+ let dr = valueOrErrorMessage(assetInfo(aZ), (("Asset " + toBase58String(aZ)) + " doesn't exist")).quantity
522+ let ds = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dl], nil))
523+ let dt = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dm], nil))
524+ let du = if ((dr == 0))
528525 then [toString(g), toString(g), toString(g)]
529- else x(invoke(dk, "calcPricesWrapperREADONLY", [dt, du, ds], nil))
530- let dw = 0
531- let dx = B(invoke(dk, "fromX18WrapperREADONLY", [dv[1], b], nil))
532- let dy = B(invoke(dk, "fromX18WrapperREADONLY", [dv[2], b], nil))
533- let bd = getIntegerValue(aU, V(toString(dk)))
534- let dz = v(dk, aT())
535- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dt), toString(du), toString(ds), toString(dw), toString(dx), toString(dy), toString(bd), toString(dz)], e))
526+ else x(invoke(dj, "calcPricesWrapperREADONLY", [ds, dt, dr], nil))
527+ let dv = 0
528+ let dw = B(invoke(dj, "fromX18WrapperREADONLY", [du[1], b], nil))
529+ let dx = B(invoke(dj, "fromX18WrapperREADONLY", [du[2], b], nil))
530+ let bc = getIntegerValue(aT, V(toString(dj)))
531+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ds), toString(dt), toString(dr), toString(dv), toString(dw), toString(dx), toString(bc)], e))
536532 }
537533
538534
539535
540-@Callable(bv)
541-func poolEvaluatePutByAmountAssetREADONLY (dj,dA) = {
542- let dk = addressFromStringValue(t(aU, U(dj)))
543- let dl = x(invoke(dk, "getPoolConfigWrapperREADONLY", nil, nil))
544- let ba = fromBase58String(D(dl[j]))
545- let dB = D(dl[k])
536+@Callable(bu)
537+func poolEvaluatePutByAmountAssetREADONLY (di,dy) = {
538+ let dj = addressFromStringValue(t(aT, U(di)))
539+ let dk = x(invoke(dj, "getPoolConfigWrapperREADONLY", nil, nil))
540+ let aZ = fromBase58String(D(dk[j]))
541+ let dz = D(dk[k])
542+ let dA = fromBase58String(dz)
543+ let dB = D(dk[l])
546544 let dC = fromBase58String(dB)
547- let dD = D(dl[l])
548- let dE = fromBase58String(dD)
549- let dq = parseIntValue(D(dl[m]))
550- let dr = parseIntValue(D(dl[n]))
551- let dF = D(dl[i])
552- let ds = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
553- let dt = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dB], nil))
554- let du = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dD], nil))
555- let dG = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dt, dq], nil)))
556- let dH = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [du, dr], nil)))
557- let dI = if ((ds == 0))
545+ let dp = parseIntValue(D(dk[m]))
546+ let dq = parseIntValue(D(dk[n]))
547+ let dD = D(dk[i])
548+ let dr = valueOrErrorMessage(assetInfo(aZ), (("Asset " + toBase58String(aZ)) + " doesn't exist")).quantity
549+ let ds = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dz], nil))
550+ let dt = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dB], nil))
551+ let dE = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [ds, dp], nil)))
552+ let dF = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dt, dq], nil)))
553+ let dG = if ((dr == 0))
558554 then g
559- else parseBigIntValue(D(invoke(dk, "calcPriceBigIntWrapperREADONLY", [toString(dH), toString(dG)], nil)))
560- let dw = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dI), b], nil))
561- let dJ = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dA, dq], nil)))
562- let dK = fraction(dJ, dI, d)
563- let dL = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dK), dr], nil))
564- let cm = invoke(dk, "estimatePutOperationWrapperREADONLY", ["", 500000, dA, dC, dL, dE, "", true, false], nil)
565- let dM = {
566- let z = cm
555+ else parseBigIntValue(D(invoke(dj, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
556+ let dv = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dG), b], nil))
557+ let dH = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dy, dp], nil)))
558+ let dI = fraction(dH, dG, d)
559+ let dJ = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dI), dq], nil))
560+ let cl = invoke(dj, "estimatePutOperationWrapperREADONLY", ["", 500000, dy, dA, dJ, dC, "", true, false], nil)
561+ let dK = {
562+ let z = cl
567563 if (if (if ($isInstanceOf(z._1, "Int"))
568564 then if ($isInstanceOf(z._3, "Int"))
569565 then if ($isInstanceOf(z._4, "Int"))
570566 then if ($isInstanceOf(z._5, "Int"))
571567 then $isInstanceOf(z._6, "Int")
572568 else false
573569 else false
574570 else false
575571 else false)
576572 then (size(z) == 13)
577573 else false)
578574 then {
579- let dN = z._1
580- let dO = z._3
581- let dP = z._4
582- let dQ = z._5
583- let dR = z._6
584- $Tuple5(dN, dO, dP, dQ, dR)
575+ let dL = z._1
576+ let dM = z._3
577+ let dN = z._4
578+ let dO = z._5
579+ let dP = z._6
580+ $Tuple5(dL, dM, dN, dO, dP)
585581 }
586582 else throw("Couldn't cast types")
587583 }
588- let dN = dM._1
589- let dO = dM._2
590- let dP = dM._3
591- let dQ = dM._4
592- let dR = dM._5
593- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dN), toString(dw), toString(dP), toString(dQ), toString(dR), dF, toString(dA), toString(dL)], e))
584+ let dL = dK._1
585+ let dM = dK._2
586+ let dN = dK._3
587+ let dO = dK._4
588+ let dP = dK._5
589+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dL), toString(dv), toString(dN), toString(dO), toString(dP), dD, toString(dy), toString(dJ)], e))
594590 }
595591
596592
597593
598-@Callable(bv)
599-func poolEvaluatePutByPriceAssetREADONLY (dj,dL) = {
600- let dk = addressFromStringValue(t(aU, U(dj)))
601- let dl = x(invoke(dk, "getPoolConfigWrapperREADONLY", nil, nil))
602- let ba = fromBase58String(D(dl[j]))
603- let dB = D(dl[k])
594+@Callable(bu)
595+func poolEvaluatePutByPriceAssetREADONLY (di,dJ) = {
596+ let dj = addressFromStringValue(t(aT, U(di)))
597+ let dk = x(invoke(dj, "getPoolConfigWrapperREADONLY", nil, nil))
598+ let aZ = fromBase58String(D(dk[j]))
599+ let dz = D(dk[k])
600+ let dA = fromBase58String(dz)
601+ let dB = D(dk[l])
604602 let dC = fromBase58String(dB)
605- let dD = D(dl[l])
606- let dE = fromBase58String(dD)
607- let dq = parseIntValue(D(dl[m]))
608- let dr = parseIntValue(D(dl[n]))
609- let dF = D(dl[i])
610- let ds = valueOrErrorMessage(assetInfo(ba), (("Asset " + toBase58String(ba)) + " doesn't exist")).quantity
611- let dS = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dB], nil))
612- let dT = B(invoke(dk, "getAccBalanceWrapperREADONLY", [dD], nil))
613- let dU = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dS, dq], nil)))
614- let dV = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dT, dr], nil)))
615- let dI = if ((ds == 0))
603+ let dp = parseIntValue(D(dk[m]))
604+ let dq = parseIntValue(D(dk[n]))
605+ let dD = D(dk[i])
606+ let dr = valueOrErrorMessage(assetInfo(aZ), (("Asset " + toBase58String(aZ)) + " doesn't exist")).quantity
607+ let dQ = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dz], nil))
608+ let dR = B(invoke(dj, "getAccBalanceWrapperREADONLY", [dB], nil))
609+ let dS = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dQ, dp], nil)))
610+ let dT = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dR, dq], nil)))
611+ let dG = if ((dr == 0))
616612 then g
617- else parseBigIntValue(D(invoke(dk, "calcPriceBigIntWrapperREADONLY", [toString(dV), toString(dU)], nil)))
618- let dw = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dI), b], nil))
619- let dK = parseBigIntValue(D(invoke(dk, "toX18WrapperREADONLY", [dL, dr], nil)))
620- let dJ = fraction(dK, d, dI)
621- let dA = B(invoke(dk, "fromX18WrapperREADONLY", [toString(dJ), dq], nil))
622- let cm = invoke(dk, "estimatePutOperationWrapperREADONLY", ["", 500000, dA, dC, dL, dE, "", true, false], nil)
623- let dW = {
624- let z = cm
613+ else parseBigIntValue(D(invoke(dj, "calcPriceBigIntWrapperREADONLY", [toString(dT), toString(dS)], nil)))
614+ let dv = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dG), b], nil))
615+ let dI = parseBigIntValue(D(invoke(dj, "toX18WrapperREADONLY", [dJ, dq], nil)))
616+ let dH = fraction(dI, d, dG)
617+ let dy = B(invoke(dj, "fromX18WrapperREADONLY", [toString(dH), dp], nil))
618+ let cl = invoke(dj, "estimatePutOperationWrapperREADONLY", ["", 500000, dy, dA, dJ, dC, "", true, false], nil)
619+ let dU = {
620+ let z = cl
625621 if (if (if ($isInstanceOf(z._1, "Int"))
626622 then if ($isInstanceOf(z._3, "Int"))
627623 then if ($isInstanceOf(z._4, "Int"))
628624 then if ($isInstanceOf(z._5, "Int"))
629625 then $isInstanceOf(z._6, "Int")
630626 else false
631627 else false
632628 else false
633629 else false)
634630 then (size(z) == 13)
635631 else false)
636632 then {
637- let dN = z._1
638- let dO = z._3
639- let dP = z._4
640- let dQ = z._5
641- let dR = z._6
642- $Tuple5(dN, dO, dP, dQ, dR)
633+ let dL = z._1
634+ let dM = z._3
635+ let dN = z._4
636+ let dO = z._5
637+ let dP = z._6
638+ $Tuple5(dL, dM, dN, dO, dP)
643639 }
644640 else throw("Couldn't cast types")
645641 }
646- let dN = dW._1
647- let dO = dW._2
648- let dP = dW._3
649- let dQ = dW._4
650- let dR = dW._5
651- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dN), toString(dw), toString(dP), toString(dQ), toString(dR), dF, toString(dA), toString(dL)], e))
642+ let dL = dU._1
643+ let dM = dU._2
644+ let dN = dU._3
645+ let dO = dU._4
646+ let dP = dU._5
647+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dL), toString(dv), toString(dN), toString(dO), toString(dP), dD, toString(dy), toString(dJ)], e))
652648 }
653649
654650
655651
656-@Callable(bv)
657-func poolEvaluateGetREADONLY (dX,dY) = {
658- let dk = addressFromStringValue(t(aU, U(dX)))
659- let cm = invoke(dk, "estimateGetOperationWrapperREADONLY", ["", dX, dY, toString(dk)], nil)
660- let dZ = {
661- let z = cm
652+@Callable(bu)
653+func poolEvaluateGetREADONLY (dV,dW) = {
654+ let dj = addressFromStringValue(t(aT, U(dV)))
655+ let cl = invoke(dj, "estimateGetOperationWrapperREADONLY", ["", dV, dW, toString(dj)], nil)
656+ let dX = {
657+ let z = cl
662658 if (if (if ($isInstanceOf(z._1, "Int"))
663659 then if ($isInstanceOf(z._2, "Int"))
664660 then if ($isInstanceOf(z._5, "Int"))
665661 then if ($isInstanceOf(z._6, "Int"))
666662 then if ($isInstanceOf(z._7, "Int"))
667663 then if ($isInstanceOf(z._8, "String"))
668664 then $isInstanceOf(z._9, "String")
669665 else false
670666 else false
671667 else false
672668 else false
673669 else false
674670 else false)
675671 then (size(z) == 10)
676672 else false)
677673 then {
678- let ea = z._1
679- let eb = z._2
680- let dP = z._5
681- let dQ = z._6
682- let dR = z._7
683- let dw = z._8
684- let dF = z._9
685- $Tuple7(ea, eb, dP, dQ, dR, dw, dF)
674+ let dY = z._1
675+ let dZ = z._2
676+ let dN = z._5
677+ let dO = z._6
678+ let dP = z._7
679+ let dv = z._8
680+ let dD = z._9
681+ $Tuple7(dY, dZ, dN, dO, dP, dv, dD)
686682 }
687683 else throw("Couldn't cast types")
688684 }
689- let ea = dZ._1
690- let eb = dZ._2
691- let dP = dZ._3
692- let dQ = dZ._4
693- let dR = dZ._5
694- let dw = dZ._6
695- let dF = dZ._7
696- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ea), toString(eb), toString(dP), toString(dQ), toString(dR), dw, dF], e))
685+ let dY = dX._1
686+ let dZ = dX._2
687+ let dN = dX._3
688+ let dO = dX._4
689+ let dP = dX._5
690+ let dv = dX._6
691+ let dD = dX._7
692+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dY), toString(dZ), toString(dN), toString(dO), toString(dP), dv, dD], e))
697693 }
698694
699695
700696
701-@Callable(bv)
697+@Callable(bu)
702698 func gwxUserInfoREADONLY (am) = {
703- let ec = x(invoke(aY, "gwxUserInfoREADONLY", [am], nil))
704- let ed = B(ec[0])
705- $Tuple2(nil, makeString(["%d", toString(ed)], e))
699+ let ea = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
700+ let eb = B(ea[0])
701+ $Tuple2(nil, makeString(["%d", toString(eb)], e))
706702 }
707703
708704
709705
710-@Callable(bv)
711-func unstakeAndGetOneTkn (dk,ee,ef,eg,eh,ei,ej) = {
712- let cn = invoke(addressFromStringValue(value(getString(addressFromStringValue(dk), aS()))), "unstakeAndGetOneTkn", [ee, ef, eg, eh, ei, ej], nil)
713- if ((cn == cn))
706+@Callable(bu)
707+func unstakeAndGetOneTkn (dj,ec,ed,ee,ef,eg,eh) = {
708+ let cm = invoke(addressFromStringValue(value(getString(addressFromStringValue(dj), aS()))), "unstakeAndGetOneTkn", [ec, ed, ee, ef, eg, eh], nil)
709+ if ((cm == cm))
714710 then $Tuple2(nil, unit)
715711 else throw("Strict value is not equal to itself.")
716712 }
717713
718714
719715
720-@Callable(bv)
721-func setManager (ek) = {
722- let bz = bu(bv)
723- if ((bz == bz))
716+@Callable(bu)
717+func setManager (ei) = {
718+ let by = bt(bu)
719+ if ((by == by))
724720 then {
725- let el = fromBase58String(ek)
726- if ((el == el))
727- then [StringEntry(H(), ek)]
721+ let ej = fromBase58String(ei)
722+ if ((ej == ej))
723+ then [StringEntry(H(), ei)]
728724 else throw("Strict value is not equal to itself.")
729725 }
730726 else throw("Strict value is not equal to itself.")
731727 }
732728
733729
734730
735-@Callable(bv)
731+@Callable(bu)
736732 func confirmManager () = {
737- let em = bt()
738- let en = if (isDefined(em))
733+ let ek = bs()
734+ let el = if (isDefined(ek))
739735 then true
740736 else throw("No pending manager")
741- if ((en == en))
737+ if ((el == el))
742738 then {
743- let eo = if ((bv.callerPublicKey == value(em)))
739+ let em = if ((bu.callerPublicKey == value(ek)))
744740 then true
745741 else throw("You are not pending manager")
746- if ((eo == eo))
747- then [StringEntry(G(), toBase58String(value(em))), DeleteEntry(H())]
742+ if ((em == em))
743+ then [StringEntry(G(), toBase58String(value(ek))), DeleteEntry(H())]
748744 else throw("Strict value is not equal to itself.")
749745 }
750746 else throw("Strict value is not equal to itself.")
751747 }
752748
753749
754-@Verifier(ep)
755-func eq () = {
756- let er = {
757- let z = br()
750+@Verifier(en)
751+func eo () = {
752+ let ep = {
753+ let z = bq()
758754 if ($isInstanceOf(z, "ByteVector"))
759755 then {
760- let bx = z
761- bx
756+ let bw = z
757+ bw
762758 }
763759 else if ($isInstanceOf(z, "Unit"))
764- then ep.senderPublicKey
760+ then en.senderPublicKey
765761 else throw("Match error")
766762 }
767- sigVerify(ep.bodyBytes, ep.proofs[0], er)
763+ sigVerify(en.bodyBytes, en.proofs[0], ep)
768764 }
769765

github/deemru/w8io/026f985 
177.68 ms