tx · BNVB57meXJfDs9b84EiZy38QtcwA985VTPvHrQYR916z

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.01000000 Waves

2021.12.02 10:24 [1816352] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "BNVB57meXJfDs9b84EiZy38QtcwA985VTPvHrQYR916z", "fee": 1000000, "feeAssetId": null, "timestamp": 1638429879136, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "5wHhDCXqfngpoqebfJesHB8utNDE8R5EBuXUjAhZgXobQgYeWhHy9gc4WSXGZsZ6ZT6AedmVBesxp76TFXjjW55i" ], "script": "base64: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AAAAAQAAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAAAAAAAAAAAAgAAAAAUSWR4RmFjdG9yeUNmZ0lkb0RhcHAAAAAAAAAAAAMAAAAAFUlkeEZhY3RvcnlDZmdUZWFtRGFwcAAAAAAAAAAABAAAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAAAAAAAAAAABQAAAAAVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwAAAAAAAAAAAGAAAAABlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwAAAAAAAAAAAHAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAIAAAARJXNfX2ZhY3RvcnlDb25maWcBAAAAGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAECVzX19scFRva2Vuc0xpc3QBAAAAJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABAAAAD2NvbnRyYWN0QWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAKcG9vbFdlaWdodAkABEwAAAACBQAAAA9jb250cmFjdEFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAACQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAEAAAAKcmVhZExwTGlzdAAAAAAJAAS1AAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACCQEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAkBAAAAEGtleUZhY3RvcnlMcExpc3QAAAAAAgAAAAAFAAAAA1NFUAEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABAAAAB2ZhY3RvcnkJAAS1AAAAAgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAAAAAIFAAAAB2ZhY3RvcnkJAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAUAAAADU0VQAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHABAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAIAAAAbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAAAgAAAB4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAACAAAAGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQAAABtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZHVyYXRpb24BAAAAE2tleUVtaXNzaW9uRW5kQmxvY2sAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIAAAAOdXNlckFkZHJlc3NTdHIAAAAMbHBBc3NldElkU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVzX19zdGFrZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAOa2V5U3Rha2VkVG90YWwAAAABAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABclcyVzJXNfX3N0YWtlZF9fdG90YWxfXwUAAAAMbHBBc3NldElkU3RyAQAAABBrZXlDbGFpbWVkQnlVc2VyAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIJAAS5AAAAAgkABEwAAAACAgAAAA8lcyVzJXNfX2NsYWltZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAYJXMlcyVzX19jbGFpbWVkTWluUmV3YXJkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAAG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAaJXMlcyVzX19jbGFpbWVkQm9vc3RSZXdhcmQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAPa2V5Q2xhaW1lZFRvdGFsAAAAAQAAAAxscEFzc2V0SWRTdHIJAAS5AAAAAgkABEwAAAACAgAA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c3NldElkAAAABmFtb3VudAAAAAR0eElkCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAZa2V5T3BlcmF0aW9uSGlzdG9yeVJlY29yZAAAAAMFAAAABHR5cGUFAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEFAAAABHR4SWQJAQAAABNmb3JtYXRIaXN0b3J5UmVjb3JkAAAABAUAAAALdXNlckFkZHJlc3MFAAAACWxwQXNzZXRJZAUAAAAEdHlwZQUAAAAGYW1vdW50AAAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAAAAAAAApmYWN0b3J5Q2ZnCQEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABBQAAAA9mYWN0b3J5Q29udHJhY3QAAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnAAAAABBib29zdGluZ0NvbnRyYWN0CQEAAAAYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwEAAAAbY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0AAAABAAAAAxzdGFrZWRCeVVzZXIAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8AAAASd3hQZXJMcEludGVncmFsTmV3AAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZAwMJAAAAAAAAAgUAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8AAAAAAAAAAAAJAABmAAAAAgUAAAAMc3Rha2VkQnlVc2VyAAAAAAAAAAAABwAAAAAAAAAAAAMJAAAAAAAAAgUAAAAMc3Rha2VkQnlVc2VyAAAAAAAAAAAABQAAABJ3eFBlckxwSW50ZWdyYWxOZXcDAwkAAGYAAAACBQAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwAAAAAAAAAAAAkAAGYAAAACBQAAAAxzdGFrZWRCeVVzZXIAAAAAAAAAAAAHCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAEdGhpcwUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkJAAACAAAAAQIAAAAtY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIAAAAOcG9vbEFkZHJlc3NTdHIAAAANbHBEZWx0YUFtb3VudAQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAOc3Rha2VkVG90YWxLRVkEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAVNVUxUMwAAAAAAAAAD6AQAAAASd3hFbWlzc2lvblBlckJsb2NrCQAAaAAAAAIJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAUAAAAFTVVMVDMEAAAAFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sJAABrAAAAAwUAAAASd3hFbWlzc2lvblBlckJsb2NrBQAAAApwb29sV2VpZ2h0CQAAaAAAAAIFAAAADlBPT0xXRUlHSFRNVUxUAAAAAAAAAAADBAAAABJ3eFBlckxwSW50ZWdyYWxLRVkJAQAAABJrZXlXeFBlckxwSW50ZWdyYWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkJAQAAAB9rZXlXeFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0AAAAAQUAAAAMbHBBc3NldElkU3RyBAAAABB3eFRvQ2xhaW1Vc2VyS0VZCQEAAAAQa2V5V3hUb0NsYWltVXNlcgAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZCQEAAAAja2V5V3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHQAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAAAp3eFBlckxwS0VZCQEAAAAKa2V5V3hQZXJMcAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkJAQAAABprZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAAHHd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQJAQAAAA9nZXRJbnRPckRlZmF1bHQAAAADBQAAAAR0aGlzBQAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZBQAAABJlbWlzc2lvblN0YXJ0QmxvY2sEAAAAD3d4UGVyTHBJbnRlZ3JhbAkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEnd4UGVyTHBJbnRlZ3JhbEtFWQQAAAANd3hUb0NsYWltVXNlcgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEHd4VG9DbGFpbVVzZXJLRVkEAAAAJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRLRVkEAAAAD3d4UGVyTHBPclplcm9YOAkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAACnd4UGVyTHBLRVkEAAAAAmRoCQABlgAAAAEJAARMAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAHHd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBAAAAAl3eFBlckxwWDgDCQEAAAACIT0AAAACBQAAAA93eFBlckxwT3JaZXJvWDgAAAAAAAAAAAAFAAAAD3d4UGVyTHBPclplcm9YOAkAAGsAAAADBQAAABZwb29sV3hFbWlzc2lvblBlckJsb2NrBQAAAAVNVUxUOAUAAAALc3Rha2VkVG90YWwEAAAADnN0YWtlZFRvdGFsTmV3CQAAZAAAAAIFAAAAC3N0YWtlZFRvdGFsBQAAAA1scERlbHRhQW1vdW50BAAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAABkAAAAAgUAAAAPd3hQZXJMcEludGVncmFsCQAAaAAAAAIFAAAACXd4UGVyTHBYOAUAAAACZGgEAAAAF3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0CQEAAAAbY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0AAAABAUAAAAMc3Rha2VkQnlVc2VyBQAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwUAAAASd3hQZXJMcEludGVncmFsTmV3BQAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQQAAAAQd3hUb0NsYWltVXNlck5ldwkAAGQAAAACBQAAAA13eFRvQ2xhaW1Vc2VyCQAAawAAAAMJAABlAAAAAgUAAAASd3hQZXJMcEludGVncmFsTmV3BQAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAUAAAAMc3Rha2VkQnlVc2VyCQAAaAAAAAIFAAAABU1VTFQ4BQAAAAVNVUxUMwQAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXcFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwQAAAAMd3hQZXJMcE5ld1g4CQAAaQAAAAIFAAAAFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sFAAAADnN0YWtlZFRvdGFsTmV3BAAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3BQAAAAZoZWlnaHQEAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3BQAAAAZoZWlnaHQEAAAABWRlYnVnCQAEuQAAAAIJAARMAAAAAgkAAaQAAAABBQAAABB3eFRvQ2xhaW1Vc2VyTmV3CQAETAAAAAIJAAGkAAAAAQUAAAASd3hQZXJMcEludGVncmFsTmV3CQAETAAAAAIJAAGkAAAAAQUAAAAXd3hQZXJMcEludGVncmFsVXNlckxhc3QJAARMAAAAAgkAAaQAAAABBQAAAAxzdGFrZWRCeVVzZXIJAARMAAAAAgkAAaQAAAABBQAAAAJkaAkABEwAAAACCQABpAAAAAEFAAAACXd4UGVyTHBYOAkABEwAAAACCQABpAAAAAEFAAAAC3N0YWtlZFRvdGFsCQAETAAAAAIJAAGkAAAAAQUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACCQABpAAAAAEFAAAAEnd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACCQABpAAAAAEFAAAACnBvb2xXZWlnaHQJAARMAAAAAgkAAaQAAAABBQAAAAZoZWlnaHQFAAAAA25pbAIAAAACOjoJAAUVAAAAAwUAAAAQd3hUb0NsYWltVXNlck5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASd3hQZXJMcEludGVncmFsS0VZBQAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkFAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEHd4VG9DbGFpbVVzZXJLRVkFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZBQAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKd3hQZXJMcEtFWQUAAAAMd3hQZXJMcE5ld1g4CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXcFAAAAA25pbAUAAAAFZGVidWcAAAAFAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAQAAABFmYWN0b3J5QWRkcmVzc1N0cgMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAABQAAABFmYWN0b3J5QWRkcmVzc1N0cgUAAAADbmlsAAAAAWkBAAAABXN0YWtlAAAAAAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAA0aW52YWxpZCBwYXltZW50IC0gZXhhY3Qgb25lIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQAAAADcG10CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAlscEFzc2V0SWQJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAMbHBBc3NldElkU3RyCQACWAAAAAEFAAAACWxwQXNzZXRJZAQAAAAGYW1vdW50CAUAAAADcG10AAAABmFtb3VudAQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwAAAAEFAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABV1bnN1cHBvcnRlZCBscCBhc3NldCAFAAAADGxwQXNzZXRJZFN0cgQAAAAJY2FsbGVyU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAOdXNlckFkZHJlc3NTdHIDCQAAAAAAAAIFAAAACWNhbGxlclN0cgUAAAAOcG9vbEFkZHJlc3NTdHIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyBQAAAAljYWxsZXJTdHIEAAAAD3N0YWtlZEJ5VXNlcktFWQkBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAxscEFzc2V0SWRTdHIEAAAADnN0YWtlZFRvdGFsS0VZCQEAAAAOa2V5U3Rha2VkVG90YWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADHN0YWtlZEJ5VXNlcgkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA9zdGFrZWRCeVVzZXJLRVkEAAAAC3N0YWtlZFRvdGFsCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAADnN0YWtlZFRvdGFsS0VZBAAAAA0kdDAxMjU4ODEyNzA1CQEAAAAQcmVmcmVzaElOVEVHUkFMUwAAAAQFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADnBvb2xBZGRyZXNzU3RyBQAAAAZhbW91bnQEAAAAEHd4VG9DbGFpbVVzZXJOZXcIBQAAAA0kdDAxMjU4ODEyNzA1AAAAAl8xBAAAAA1pbnRlZ3JhbFNUQVRFCAUAAAANJHQwMTI1ODgxMjcwNQAAAAJfMgQAAAAFZGVidWcIBQAAAA0kdDAxMjU4ODEyNzA1AAAAAl8zCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD3N0YWtlZEJ5VXNlcktFWQkAAGQAAAACBQAAAAxzdGFrZWRCeVVzZXIFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOc3Rha2VkVG90YWxLRVkJAABkAAAAAgUAAAALc3Rha2VkVG90YWwFAAAABmFtb3VudAkABEwAAAACCQEAAAAVT3BlcmF0aW9uSGlzdG9yeUVudHJ5AAAABQIAAAAFc3Rha2UFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAxscEFzc2V0SWRTdHIFAAAABmFtb3VudAgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAADbmlsBQAAAA1pbnRlZ3JhbFNUQVRFAAAAAWkBAAAAB3Vuc3Rha2UAAAACAAAADGxwQXNzZXRJZFN0cgAAAAZhbW91bnQEAAAADnVzZXJBZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAJbHBBc3NldElkCQACWQAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwAAAAEFAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABV1bnN1cHBvcnRlZCBscCBhc3NldCAFAAAADGxwQXNzZXRJZFN0cgQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAOc3Rha2VkVG90YWxLRVkEAAAADSR0MDEzNTIyMTM2NDAJAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAOcG9vbEFkZHJlc3NTdHIJAQAAAAEtAAAAAQUAAAAGYW1vdW50BAAAABB3eFRvQ2xhaW1Vc2VyTmV3CAUAAAANJHQwMTM1MjIxMzY0MAAAAAJfMQQAAAANaW50ZWdyYWxTVEFURQgFAAAADSR0MDEzNTIyMTM2NDAAAAACXzIEAAAABWRlYnVnCAUAAAANJHQwMTM1MjIxMzY0MAAAAAJfMwMJAABmAAAAAgUAAAAGYW1vdW50BQAAAAxzdGFrZWRCeVVzZXIJAAACAAAAAQIAAAAkcGFzc2VkIGFtb3VudCBpcyBsZXNzIHRoZW4gYXZhaWxhYmxlCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD3N0YWtlZEJ5VXNlcktFWQkAAGUAAAACBQAAAAxzdGFrZWRCeVVzZXIFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOc3Rha2VkVG90YWxLRVkJAABlAAAAAgUAAAALc3Rha2VkVG90YWwFAAAABmFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAAJbHBBc3NldElkCQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAd1bnN0YWtlBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBQAAAAZhbW91bnQIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAUAAAANaW50ZWdyYWxTVEFURQAAAAFpAQAAAAdjbGFpbVd4AAAAAQAAAAxscEFzc2V0SWRTdHIEAAAAC3VzZXJBZGRyZXNzCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJBZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAACZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQY2xhaW1lZEJ5VXNlcktFWQkBAAAAEGtleUNsYWltZWRCeVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAAA9jbGFpbWVkVG90YWxLRVkJAQAAAA9rZXlDbGFpbWVkVG90YWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAQAAABlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQEAAAAba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAANY2xhaW1lZEJ5VXNlcgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEGNsYWltZWRCeVVzZXJLRVkEAAAAFmNsYWltZWRCeVVzZXJNaW5SZXdhcmQJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABljbGFpbWVkQnlVc2VyTWluUmV3YXJkS0VZBAAAABhjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABtjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmRLRVkEAAAADGNsYWltZWRUb3RhbAkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAD2NsYWltZWRUb3RhbEtFWQQAAAANJHQwMTQ4MzIxNDk0NAkBAAAAEHJlZnJlc2hJTlRFR1JBTFMAAAAEBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA5wb29sQWRkcmVzc1N0cgAAAAAAAAAAAAQAAAAQd3hUb0NsYWltVXNlck5ldwgFAAAADSR0MDE0ODMyMTQ5NDQAAAACXzEEAAAADWludGVncmFsU1RBVEUIBQAAAA0kdDAxNDgzMjE0OTQ0AAAAAl8yBAAAAAVkZWJ1ZwgFAAAADSR0MDE0ODMyMTQ5NDQAAAACXzMEAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAABlAAAAAgUAAAAQd3hUb0NsYWltVXNlck5ldwUAAAANY2xhaW1lZEJ5VXNlcgMJAABnAAAAAgAAAAAAAAAAAAUAAAAQYXZhaWxhYmxlVG9DbGFpbQkAAAIAAAABAgAAABBub3RoaW5nIHRvIGNsYWltBAAAABJ3eEFtb3VudEJvb3N0VG90YWwJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAQYm9vc3RpbmdDb250cmFjdAIAAAAMY2xhaW1XeEJvb3N0CQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAADbmlsBQAAAANuaWwAAAAAAAAAAAAEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEmJvb3N0UmV3YXJkUGFydFRNUAkAAGsAAAADBQAAABJ3eEFtb3VudEJvb3N0VG90YWwFAAAACnBvb2xXZWlnaHQFAAAADlBPT0xXRUlHSFRNVUxUBAAAAA1taW5SZXdhcmRQYXJ0BQAAABBhdmFpbGFibGVUb0NsYWltBAAAAA9ib29zdFJld2FyZFBhcnQJAAGXAAAAAQkABEwAAAACCQAAaAAAAAIFAAAADW1pblJld2FyZFBhcnQAAAAAAAAAAAIJAARMAAAAAgUAAAASYm9vc3RSZXdhcmRQYXJ0VE1QBQAAAANuaWwEAAAACXd4QXNzZXRJZAkBAAAADGFzQnl0ZVZlY3RvcgAAAAEJAAGRAAAAAgkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAQZW1pc3Npb25Db250cmFjdAIAAAAEZW1pdAkABEwAAAACBQAAAA1taW5SZXdhcmRQYXJ0BQAAAANuaWwFAAAAA25pbAAAAAAAAAAAAAQAAAAJZW1pdEJvb3N0CQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAABBlbWlzc2lvbkNvbnRyYWN0AgAAAARlbWl0CQAETAAAAAIFAAAAD2Jvb3N0UmV3YXJkUGFydAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACWVtaXRCb29zdAUAAAAJZW1pdEJvb3N0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBjbGFpbWVkQnlVc2VyS0VZCQAAZAAAAAIFAAAADWNsYWltZWRCeVVzZXIFAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAABkAAAAAgUAAAAWY2xhaW1lZEJ5VXNlck1pblJld2FyZAUAAAANbWluUmV3YXJkUGFydAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQAAZAAAAAIFAAAAGGNsYWltZWRCeVVzZXJCb29zdFJld2FyZAUAAAAPYm9vc3RSZXdhcmRQYXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9jbGFpbWVkVG90YWxLRVkJAABkAAAAAgUAAAAMY2xhaW1lZFRvdGFsBQAAABBhdmFpbGFibGVUb0NsYWltCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAA1taW5SZXdhcmRQYXJ0BQAAAAl3eEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAD2Jvb3N0UmV3YXJkUGFydAUAAAAJd3hBc3NldElkCQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAVjbGFpbQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAQYXZhaWxhYmxlVG9DbGFpbQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA9jbGFpbVd4UkVBRE9OTFkAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQY2xhaW1lZEJ5VXNlcktFWQkBAAAAEGtleUNsYWltZWRCeVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAANY2xhaW1lZEJ5VXNlcgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEGNsYWltZWRCeVVzZXJLRVkEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADnBvb2xXZWlnaHRNdWx0BQAAAAVNVUxUOAQAAAAKcG9vbFdlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABBQAAAA5wb29sQWRkcmVzc1N0cgQAAAASd3hFbWlzc2lvblBlckJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAxwYXNzZWRCbG9ja3MDCQAAZgAAAAIFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawUAAAAGaGVpZ2h0AAAAAAAAAAAACQAAZQAAAAIFAAAABmhlaWdodAUAAAASZW1pc3Npb25TdGFydEJsb2NrBAAAAA5wb29sV3hFbWlzc2lvbgkAAGsAAAADCQAAaAAAAAIFAAAAEnd4RW1pc3Npb25QZXJCbG9jawUAAAAMcGFzc2VkQmxvY2tzBQAAAApwb29sV2VpZ2h0BQAAAA5wb29sV2VpZ2h0TXVsdAQAAAAMdXNlcld4UmV3YXJkCQAAawAAAAMFAAAADnBvb2xXeEVtaXNzaW9uBQAAAAxzdGFrZWRCeVVzZXIFAAAAC3N0YWtlZFRvdGFsBAAAAA0kdDAxNzM4MDE3NDkyCQEAAAAQcmVmcmVzaElOVEVHUkFMUwAAAAQFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADnBvb2xBZGRyZXNzU3RyAAAAAAAAAAAABAAAABB3eFRvQ2xhaW1Vc2VyTmV3CAUAAAANJHQwMTczODAxNzQ5MgAAAAJfMQQAAAANaW50ZWdyYWxTVEFURQgFAAAADSR0MDE3MzgwMTc0OTIAAAACXzIEAAAABWRlYnVnCAUAAAANJHQwMTczODAxNzQ5MgAAAAJfMwQAAAAQYXZhaWxhYmxlVG9DbGFpbQkAAGUAAAACBQAAABB3eFRvQ2xhaW1Vc2VyTmV3BQAAAA1jbGFpbWVkQnlVc2VyBAAAAA5ib29zdEludlJlc3VsdAkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAQYm9vc3RpbmdDb250cmFjdAIAAAAUY2xhaW1XeEJvb3N0UkVBRE9OTFkJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAANuaWwFAAAAA25pbAQAAAASd3hBbW91bnRCb29zdFRvdGFsCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAADmJvb3N0SW52UmVzdWx0AAAAAAAAAAAABAAAAApib29zdERlYnVnCQEAAAAIYXNTdHJpbmcAAAABCQABkQAAAAIFAAAADmJvb3N0SW52UmVzdWx0AAAAAAAAAAABBAAAABJib29zdFJld2FyZFBhcnRUTVAJAABrAAAAAwUAAAASd3hBbW91bnRCb29zdFRvdGFsBQAAAApwb29sV2VpZ2h0BQAAAA5QT09MV0VJR0hUTVVMVAQAAAANbWluUmV3YXJkUGFydAUAAAAQYXZhaWxhYmxlVG9DbGFpbQQAAAAPYm9vc3RSZXdhcmRQYXJ0CQABlwAAAAEJAARMAAAAAgkAAGgAAAACBQAAAA1taW5SZXdhcmRQYXJ0AAAAAAAAAAACCQAETAAAAAIFAAAAEmJvb3N0UmV3YXJkUGFydFRNUAUAAAADbmlsBAAAAAt0b3RhbFJld2FyZAkAAGQAAAACBQAAAA1taW5SZXdhcmRQYXJ0BQAAAA9ib29zdFJld2FyZFBhcnQJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVkJWQlZCVkJXMJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIJAAGkAAAAAQUAAAALdG90YWxSZXdhcmQJAARMAAAAAgkAAaQAAAABBQAAAA1jbGFpbWVkQnlVc2VyCQAETAAAAAIJAAGkAAAAAQUAAAANbWluUmV3YXJkUGFydAkABEwAAAACCQABpAAAAAEFAAAAD2Jvb3N0UmV3YXJkUGFydAkABEwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABWRlYnVnAgAAAAI6OgkAAaQAAAABBQAAAAx1c2VyV3hSZXdhcmQCAAAADjo6Qk9PU1RERUJVRzo6BQAAAApib29zdERlYnVnBQAAAANuaWwFAAAAA1NFUAAAAACiOiLG", "chainId": 84, "height": 1816352, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 85rBEYTPrXVcxTusPkbMoxgh5TkXzXXQNM5Rxhwt6ABE Next: 9wKCYTbP9qP7TAR2TCZeaNWC8MdUDFvaR899wW69SeuS Diff:
OldNewDifferences
220220
221221 let aM = W(X)
222222
223-func aN (aO,aP,aQ,aR,aS) = if (if ((aP == 0))
223+func aN (aO,aP,aQ,aR) = if (if ((aP == 0))
224224 then (aO > 0)
225225 else false)
226226 then 0
229229 else if (if ((aP > 0))
230230 then (aO > 0)
231231 else false)
232- then (x(this, aR) * aS)
232+ then x(this, aR)
233233 else throw("calcWxPerLpIntegralUserLast: unexpected state")
234234
235235
236-func aT (ah,ag,aU,aV) = {
237- let aW = af(ag, ah)
238- let aX = ai(ah)
239- let aO = an(aW)
240- let aY = an(aX)
241- let aZ = getIntegerValue(aK, Q(aU))
242- let ba = x(aL, ac())
243- let bb = 1000
244- let bc = (x(aL, aa()) * bb)
245- let bd = fraction(bc, aZ, (f * 3))
246- let be = "isMigrated_to_X3"
247- let aS = if ((u(this, be) == 0))
248- then bb
249- else 1
250- let bf = aw(ah)
251- let bg = ax(ah)
252- let bh = ay(ah, ag)
253- let bi = az(ah, ag)
254- let bj = aA(ah)
236+func aS (ah,ag,aT,aU) = {
237+ let aV = af(ag, ah)
238+ let aW = ai(ah)
239+ let aO = an(aV)
240+ let aX = an(aW)
241+ let aY = getIntegerValue(aK, Q(aT))
242+ let aZ = x(aL, ac())
243+ let ba = 1000
244+ let bb = (x(aL, aa()) * ba)
245+ let bc = fraction(bb, aY, (f * 3))
246+ let bd = aw(ah)
247+ let be = ax(ah)
248+ let bf = ay(ah, ag)
249+ let bg = az(ah, ag)
250+ let bh = aA(ah)
255251 let aR = aC(ah, ag)
256- let bk = v(this, bg, ba)
257- let bl = (u(this, bf) * aS)
258- let bm = u(this, bh)
259- let aP = u(this, bi)
260- let bn = (u(this, bj) * aS)
261- let bo = max([(height - bk), 0])
262- let bp = if ((bn != 0))
263- then bn
264- else fraction(bd, b, aY)
265- let bq = (aY + aV)
266- let aQ = (bl + (bp * bo))
267- let br = aN(aO, aP, aQ, aR, aS)
268- let bs = (bm + fraction((aQ - br), aO, (b * bb)))
269- let bt = aQ
270- let bu = (bd / bq)
271- let bv = height
272- let bw = height
273- let bx = makeString([toString(bs), toString(aQ), toString(br), toString(aO), toString(bo), toString(bp), toString(aY), toString(bd), toString(bc), toString(aZ), toString(height)], "::")
274- $Tuple3(bs, [IntegerEntry(bf, aQ), IntegerEntry(bg, bv), IntegerEntry(bh, bs), IntegerEntry(bi, bw), IntegerEntry(bj, bu), IntegerEntry(aR, bt), IntegerEntry(be, 1)], bx)
252+ let bi = v(this, be, aZ)
253+ let bj = u(this, bd)
254+ let bk = u(this, bf)
255+ let aP = u(this, bg)
256+ let bl = u(this, bh)
257+ let bm = max([(height - bi), 0])
258+ let bn = if ((bl != 0))
259+ then bl
260+ else fraction(bc, b, aX)
261+ let bo = (aX + aU)
262+ let aQ = (bj + (bn * bm))
263+ let bp = aN(aO, aP, aQ, aR)
264+ let bq = (bk + fraction((aQ - bp), aO, (b * ba)))
265+ let br = aQ
266+ let bs = (bc / bo)
267+ let bt = height
268+ let bu = height
269+ let bv = makeString([toString(bq), toString(aQ), toString(bp), toString(aO), toString(bm), toString(bn), toString(aX), toString(bc), toString(bb), toString(aY), toString(height)], "::")
270+ $Tuple3(bq, [IntegerEntry(bd, aQ), IntegerEntry(be, bt), IntegerEntry(bf, bq), IntegerEntry(bg, bu), IntegerEntry(bh, bs), IntegerEntry(aR, br)], bv)
275271 }
276272
277273
278-@Callable(by)
279-func constructor (bz) = if ((by.caller != this))
274+@Callable(bw)
275+func constructor (bx) = if ((bw.caller != this))
280276 then throw("not authorized")
281- else [StringEntry(D(), bz)]
277+ else [StringEntry(D(), bx)]
282278
283279
284280
285-@Callable(by)
286-func stake () = if ((size(by.payments) != 1))
281+@Callable(bw)
282+func stake () = if ((size(bw.payments) != 1))
287283 then throw("invalid payment - exact one payment must be attached")
288284 else {
289- let bA = by.payments[0]
290- let ap = value(bA.assetId)
285+ let by = bw.payments[0]
286+ let ap = value(by.assetId)
291287 let ah = toBase58String(ap)
292- let aH = bA.amount
293- let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
294- let bB = toString(by.caller)
295- let ag = if ((bB == aU))
296- then toString(by.originCaller)
297- else bB
298- let aW = af(ag, ah)
299- let aX = ai(ah)
300- let aO = an(aW)
301- let aY = an(aX)
302- let bC = aT(ah, ag, aU, aH)
303- let bs = bC._1
304- let bD = bC._2
305- let bx = bC._3
306- ([IntegerEntry(aW, (aO + aH)), IntegerEntry(aX, (aY + aH)), aI("stake", ag, ah, aH, by.transactionId)] ++ bD)
288+ let aH = by.amount
289+ let aT = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
290+ let bz = toString(bw.caller)
291+ let ag = if ((bz == aT))
292+ then toString(bw.originCaller)
293+ else bz
294+ let aV = af(ag, ah)
295+ let aW = ai(ah)
296+ let aO = an(aV)
297+ let aX = an(aW)
298+ let bA = aS(ah, ag, aT, aH)
299+ let bq = bA._1
300+ let bB = bA._2
301+ let bv = bA._3
302+ ([IntegerEntry(aV, (aO + aH)), IntegerEntry(aW, (aX + aH)), aI("stake", ag, ah, aH, bw.transactionId)] ++ bB)
307303 }
308304
309305
310306
311-@Callable(by)
307+@Callable(bw)
312308 func unstake (ah,aH) = {
313- let ag = toString(by.caller)
309+ let ag = toString(bw.caller)
314310 let ap = fromBase58String(ah)
315- let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
316- let aW = af(ag, ah)
317- let aX = ai(ah)
318- let aO = an(aW)
319- let aY = an(aX)
320- let bE = aT(ah, ag, aU, -(aH))
321- let bs = bE._1
322- let bD = bE._2
323- let bx = bE._3
311+ let aT = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
312+ let aV = af(ag, ah)
313+ let aW = ai(ah)
314+ let aO = an(aV)
315+ let aX = an(aW)
316+ let bC = aS(ah, ag, aT, -(aH))
317+ let bq = bC._1
318+ let bB = bC._2
319+ let bv = bC._3
324320 if ((aH > aO))
325321 then throw("passed amount is less then available")
326- else ([IntegerEntry(aW, (aO - aH)), IntegerEntry(aX, (aY - aH)), ScriptTransfer(by.caller, aH, ap), aI("unstake", ag, ah, aH, by.transactionId)] ++ bD)
322+ else ([IntegerEntry(aV, (aO - aH)), IntegerEntry(aW, (aX - aH)), ScriptTransfer(bw.caller, aH, ap), aI("unstake", ag, ah, aH, bw.transactionId)] ++ bB)
327323 }
328324
329325
330326
331-@Callable(by)
327+@Callable(bw)
332328 func claimWx (ah) = {
333- let ar = by.caller
334- let ag = toString(by.caller)
335- let aU = s(aK, P(ah))
336- let bF = aj(ah, ag)
337- let bG = am(ah)
338- let bH = ak(ah, ag)
339- let bI = al(ah, ag)
340- let bJ = u(this, bF)
341- let bK = u(this, bH)
342- let bL = u(this, bI)
343- let bM = u(this, bG)
344- let bN = aT(ah, ag, aU, 0)
345- let bs = bN._1
346- let bD = bN._2
347- let bx = bN._3
348- let bO = (bs - bJ)
349- if ((0 >= bO))
329+ let ar = bw.caller
330+ let ag = toString(bw.caller)
331+ let aT = s(aK, P(ah))
332+ let bD = aj(ah, ag)
333+ let bE = am(ah)
334+ let bF = ak(ah, ag)
335+ let bG = al(ah, ag)
336+ let bH = u(this, bD)
337+ let bI = u(this, bF)
338+ let bJ = u(this, bG)
339+ let bK = u(this, bE)
340+ let bL = aS(ah, ag, aT, 0)
341+ let bq = bL._1
342+ let bB = bL._2
343+ let bv = bL._3
344+ let bM = (bq - bH)
345+ if ((0 >= bM))
350346 then throw("nothing to claim")
351347 else {
352- let bP = k(g(invoke(aM, "claimWxBoost", [ag], nil))[0])
353- let aZ = getIntegerValue(aK, Q(aU))
354- let bQ = fraction(bP, aZ, f)
355- let bR = bO
356- let bS = min([(bR * 2), bQ])
357- let bT = o(g(invoke(aL, "emit", [bR], nil))[0])
358- let bU = g(invoke(aL, "emit", [bS], nil))
359- if ((bU == bU))
360- then [IntegerEntry(bF, (bJ + bO)), IntegerEntry(bH, (bK + bR)), IntegerEntry(bI, (bL + bS)), IntegerEntry(bG, (bM + bO)), ScriptTransfer(ar, bR, bT), ScriptTransfer(ar, bS, bT), aI("claim", ag, ah, bO, by.transactionId)]
348+ let bN = k(g(invoke(aM, "claimWxBoost", [ah, ag], nil))[0])
349+ let aY = getIntegerValue(aK, Q(aT))
350+ let bO = fraction(bN, aY, f)
351+ let bP = bM
352+ let bQ = min([(bP * 2), bO])
353+ let bR = o(g(invoke(aL, "emit", [bP], nil))[0])
354+ let bS = g(invoke(aL, "emit", [bQ], nil))
355+ if ((bS == bS))
356+ then [IntegerEntry(bD, (bH + bM)), IntegerEntry(bF, (bI + bP)), IntegerEntry(bG, (bJ + bQ)), IntegerEntry(bE, (bK + bM)), ScriptTransfer(ar, bP, bR), ScriptTransfer(ar, bQ, bR), aI("claim", ag, ah, bM, bw.transactionId)]
361357 else throw("Strict value is not equal to itself.")
362358 }
363359 }
364360
365361
366362
367-@Callable(by)
363+@Callable(bw)
368364 func claimWxREADONLY (ah,ag) = {
369- let aW = af(ag, ah)
370- let aX = ai(ah)
371- let bF = aj(ah, ag)
372- let aO = an(aW)
373- let aY = an(aX)
374- let bJ = u(this, bF)
375- let aU = s(aK, P(ah))
376- let bV = b
377- let aZ = getIntegerValue(aK, Q(aU))
378- let bc = x(aL, aa())
379- let ba = x(aL, ac())
380- let bW = if ((ba > height))
365+ let aV = af(ag, ah)
366+ let aW = ai(ah)
367+ let bD = aj(ah, ag)
368+ let aO = an(aV)
369+ let aX = an(aW)
370+ let bH = u(this, bD)
371+ let aT = s(aK, P(ah))
372+ let bT = b
373+ let aY = getIntegerValue(aK, Q(aT))
374+ let bb = x(aL, aa())
375+ let aZ = x(aL, ac())
376+ let bU = if ((aZ > height))
381377 then 0
382- else (height - ba)
383- let bX = fraction((bc * bW), aZ, bV)
384- let bY = fraction(bX, aO, aY)
385- let bZ = aT(ah, ag, aU, 0)
386- let bs = bZ._1
387- let bD = bZ._2
388- let bx = bZ._3
389- let bO = (bs - bJ)
390- let ca = g(invoke(aM, "claimWxBoostREADONLY", [ag], nil))
391- let bP = k(ca[0])
392- let cb = m(ca[1])
393- let bQ = fraction(bP, aZ, f)
394- let bR = bO
395- let bS = min([(bR * 2), bQ])
396- let cc = (bR + bS)
397- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ah, ag, toString(cc), toString(bJ), toString(bR), toString(bS), ((((bx + "::") + toString(bY)) + "::BOOSTDEBUG::") + cb)], e))
378+ else (height - aZ)
379+ let bV = fraction((bb * bU), aY, bT)
380+ let bW = fraction(bV, aO, aX)
381+ let bX = aS(ah, ag, aT, 0)
382+ let bq = bX._1
383+ let bB = bX._2
384+ let bv = bX._3
385+ let bM = (bq - bH)
386+ let bY = g(invoke(aM, "claimWxBoostREADONLY", [ah, ag], nil))
387+ let bN = k(bY[0])
388+ let bZ = m(bY[1])
389+ let bO = fraction(bN, aY, f)
390+ let bP = bM
391+ let bQ = min([(bP * 2), bO])
392+ let ca = (bP + bQ)
393+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ah, ag, toString(ca), toString(bH), toString(bP), toString(bQ), ((((bv + "::") + toString(bW)) + "::BOOSTDEBUG::") + bZ)], e))
398394 }
399395
400396
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
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 func g (h) = {
1717 let i = h
1818 if ($isInstanceOf(i, "List[Any]"))
1919 then {
2020 let j = i
2121 j
2222 }
2323 else throw("fail to cast into List[Any]")
2424 }
2525
2626
2727 func k (h) = {
2828 let i = h
2929 if ($isInstanceOf(i, "Int"))
3030 then {
3131 let l = i
3232 l
3333 }
3434 else throw("fail to cast into Int")
3535 }
3636
3737
3838 func m (h) = {
3939 let i = h
4040 if ($isInstanceOf(i, "String"))
4141 then {
4242 let n = i
4343 n
4444 }
4545 else throw("fail to cast into Int")
4646 }
4747
4848
4949 func o (h) = {
5050 let i = h
5151 if ($isInstanceOf(i, "ByteVector"))
5252 then {
5353 let p = i
5454 p
5555 }
5656 else throw("fail to cast into Int")
5757 }
5858
5959
6060 func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
6161
6262
6363 func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
6464
6565
6666 func u (t,r) = valueOrElse(getInteger(t, r), 0)
6767
6868
6969 func v (t,r,w) = valueOrElse(getInteger(t, r), w)
7070
7171
7272 func x (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
7373
7474
7575 func y (z,A) = fraction(toBigInt(z), d, toBigInt(A))
7676
7777
7878 func B (h,C) = toInt(fraction(h, toBigInt(C), d))
7979
8080
8181 func D () = "%s%s__config__factoryAddress"
8282
8383
8484 let E = 1
8585
8686 let F = 2
8787
8888 let G = 3
8989
9090 let H = 4
9191
9292 let I = 5
9393
9494 let J = 6
9595
9696 let K = 7
9797
9898 func L () = "%s__factoryConfig"
9999
100100
101101 func M (N) = makeString(["%s%s%s", N, "mappings__lpAsset2PoolContract"], e)
102102
103103
104104 func O () = "%s__lpTokensList"
105105
106106
107107 func P (N) = makeString(["%s%s%s", N, "mappings__lpAsset2PoolContract"], e)
108108
109109
110110 func Q (R) = makeString(["%s%s", "poolWeight", R], e)
111111
112112
113113 func S () = addressFromStringValue(q(D()))
114114
115115
116116 func T () = split(valueOrElse(getString(S(), O()), ""), e)
117117
118118
119119 func U (V) = split(s(V, L()), e)
120120
121121
122122 func W (X) = addressFromStringValue(X[F])
123123
124124
125125 func Y (X) = addressFromStringValue(X[I])
126126
127127
128128 func Z (X) = addressFromStringValue(X[E])
129129
130130
131131 func aa () = "%s%s__ratePerBlock__current"
132132
133133
134134 func ab () = "%s%s__ratePerBlockMax__current"
135135
136136
137137 func ac () = "%s%s__emission__startBlock"
138138
139139
140140 func ad () = "%s%s__emission__duration"
141141
142142
143143 func ae () = "%s%s__emission__endBlock"
144144
145145
146146 func af (ag,ah) = makeString(["%s%s%s__staked", ag, ah], e)
147147
148148
149149 func ai (ah) = ("%s%s%s__staked__total__" + ah)
150150
151151
152152 func aj (ah,ag) = makeString(["%s%s%s__claimed", ag, ah], e)
153153
154154
155155 func ak (ah,ag) = makeString(["%s%s%s__claimedMinReward", ag, ah], e)
156156
157157
158158 func al (ah,ag) = makeString(["%s%s%s__claimedBoostReward", ag, ah], e)
159159
160160
161161 func am (ah) = makeString(["%s%s%s__claimed", "total", ah], e)
162162
163163
164164 func an (r) = valueOrElse(getInteger(this, r), 0)
165165
166166
167167 func ao (ap) = makeString(["%s%s%s", ap, "total", "bal"], e)
168168
169169
170170 func aq (ap,ar) = makeString(["%s%s%s", ap, ar, "bal"], e)
171171
172172
173173 func as (ap) = makeString(["%s%s%s", ap, "total", "balINT"], e)
174174
175175
176176 func at (ap,ar) = makeString(["%s%s%s", ap, ar, "balINT"], e)
177177
178178
179179 func au (ap) = makeString(["%s%s%s", ap, "total", "lastUpd"], e)
180180
181181
182182 func av (ap,ar) = makeString(["%s%s%s", ap, ar, "lastUpd"], e)
183183
184184
185185 func aw (ap) = makeString(["%s%s%s%s", ap, "common", "lpInt"], e)
186186
187187
188188 func ax (ap) = makeString(["%s%s%s%s", ap, "common", "lpIntH"], e)
189189
190190
191191 func ay (ap,ar) = makeString(["%s%s%s%s", ap, ar, "lpInt"], e)
192192
193193
194194 func az (ap,ar) = makeString(["%s%s%s%s", ap, ar, "lpIntH"], e)
195195
196196
197197 func aA (ap) = makeString(["%s", ap, "wxPerLp"], e)
198198
199199
200200 func aB (ap) = makeString(["%s", ap, "wxPerLpX18"], e)
201201
202202
203203 func aC (ap,ar) = makeString(["%s%s%s%s", ap, ar, "uIntL"], e)
204204
205205
206206 func aD (aE,ar,aF) = makeString(["%s%s%s%s__history", aE, ar, aF], e)
207207
208208
209209 func aG (ar,ap,aE,aH) = makeString(["%s%s%s%d%d%d", ar, ap, aE, toString(height), toString(lastBlock.timestamp), toString(aH)], e)
210210
211211
212212 func aI (aE,ar,ap,aH,aJ) = StringEntry(aD(aE, ar, toBase58String(aJ)), aG(ar, ap, aE, aH))
213213
214214
215215 let aK = S()
216216
217217 let X = U(aK)
218218
219219 let aL = Y(X)
220220
221221 let aM = W(X)
222222
223-func aN (aO,aP,aQ,aR,aS) = if (if ((aP == 0))
223+func aN (aO,aP,aQ,aR) = if (if ((aP == 0))
224224 then (aO > 0)
225225 else false)
226226 then 0
227227 else if ((aO == 0))
228228 then aQ
229229 else if (if ((aP > 0))
230230 then (aO > 0)
231231 else false)
232- then (x(this, aR) * aS)
232+ then x(this, aR)
233233 else throw("calcWxPerLpIntegralUserLast: unexpected state")
234234
235235
236-func aT (ah,ag,aU,aV) = {
237- let aW = af(ag, ah)
238- let aX = ai(ah)
239- let aO = an(aW)
240- let aY = an(aX)
241- let aZ = getIntegerValue(aK, Q(aU))
242- let ba = x(aL, ac())
243- let bb = 1000
244- let bc = (x(aL, aa()) * bb)
245- let bd = fraction(bc, aZ, (f * 3))
246- let be = "isMigrated_to_X3"
247- let aS = if ((u(this, be) == 0))
248- then bb
249- else 1
250- let bf = aw(ah)
251- let bg = ax(ah)
252- let bh = ay(ah, ag)
253- let bi = az(ah, ag)
254- let bj = aA(ah)
236+func aS (ah,ag,aT,aU) = {
237+ let aV = af(ag, ah)
238+ let aW = ai(ah)
239+ let aO = an(aV)
240+ let aX = an(aW)
241+ let aY = getIntegerValue(aK, Q(aT))
242+ let aZ = x(aL, ac())
243+ let ba = 1000
244+ let bb = (x(aL, aa()) * ba)
245+ let bc = fraction(bb, aY, (f * 3))
246+ let bd = aw(ah)
247+ let be = ax(ah)
248+ let bf = ay(ah, ag)
249+ let bg = az(ah, ag)
250+ let bh = aA(ah)
255251 let aR = aC(ah, ag)
256- let bk = v(this, bg, ba)
257- let bl = (u(this, bf) * aS)
258- let bm = u(this, bh)
259- let aP = u(this, bi)
260- let bn = (u(this, bj) * aS)
261- let bo = max([(height - bk), 0])
262- let bp = if ((bn != 0))
263- then bn
264- else fraction(bd, b, aY)
265- let bq = (aY + aV)
266- let aQ = (bl + (bp * bo))
267- let br = aN(aO, aP, aQ, aR, aS)
268- let bs = (bm + fraction((aQ - br), aO, (b * bb)))
269- let bt = aQ
270- let bu = (bd / bq)
271- let bv = height
272- let bw = height
273- let bx = makeString([toString(bs), toString(aQ), toString(br), toString(aO), toString(bo), toString(bp), toString(aY), toString(bd), toString(bc), toString(aZ), toString(height)], "::")
274- $Tuple3(bs, [IntegerEntry(bf, aQ), IntegerEntry(bg, bv), IntegerEntry(bh, bs), IntegerEntry(bi, bw), IntegerEntry(bj, bu), IntegerEntry(aR, bt), IntegerEntry(be, 1)], bx)
252+ let bi = v(this, be, aZ)
253+ let bj = u(this, bd)
254+ let bk = u(this, bf)
255+ let aP = u(this, bg)
256+ let bl = u(this, bh)
257+ let bm = max([(height - bi), 0])
258+ let bn = if ((bl != 0))
259+ then bl
260+ else fraction(bc, b, aX)
261+ let bo = (aX + aU)
262+ let aQ = (bj + (bn * bm))
263+ let bp = aN(aO, aP, aQ, aR)
264+ let bq = (bk + fraction((aQ - bp), aO, (b * ba)))
265+ let br = aQ
266+ let bs = (bc / bo)
267+ let bt = height
268+ let bu = height
269+ let bv = makeString([toString(bq), toString(aQ), toString(bp), toString(aO), toString(bm), toString(bn), toString(aX), toString(bc), toString(bb), toString(aY), toString(height)], "::")
270+ $Tuple3(bq, [IntegerEntry(bd, aQ), IntegerEntry(be, bt), IntegerEntry(bf, bq), IntegerEntry(bg, bu), IntegerEntry(bh, bs), IntegerEntry(aR, br)], bv)
275271 }
276272
277273
278-@Callable(by)
279-func constructor (bz) = if ((by.caller != this))
274+@Callable(bw)
275+func constructor (bx) = if ((bw.caller != this))
280276 then throw("not authorized")
281- else [StringEntry(D(), bz)]
277+ else [StringEntry(D(), bx)]
282278
283279
284280
285-@Callable(by)
286-func stake () = if ((size(by.payments) != 1))
281+@Callable(bw)
282+func stake () = if ((size(bw.payments) != 1))
287283 then throw("invalid payment - exact one payment must be attached")
288284 else {
289- let bA = by.payments[0]
290- let ap = value(bA.assetId)
285+ let by = bw.payments[0]
286+ let ap = value(by.assetId)
291287 let ah = toBase58String(ap)
292- let aH = bA.amount
293- let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
294- let bB = toString(by.caller)
295- let ag = if ((bB == aU))
296- then toString(by.originCaller)
297- else bB
298- let aW = af(ag, ah)
299- let aX = ai(ah)
300- let aO = an(aW)
301- let aY = an(aX)
302- let bC = aT(ah, ag, aU, aH)
303- let bs = bC._1
304- let bD = bC._2
305- let bx = bC._3
306- ([IntegerEntry(aW, (aO + aH)), IntegerEntry(aX, (aY + aH)), aI("stake", ag, ah, aH, by.transactionId)] ++ bD)
288+ let aH = by.amount
289+ let aT = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
290+ let bz = toString(bw.caller)
291+ let ag = if ((bz == aT))
292+ then toString(bw.originCaller)
293+ else bz
294+ let aV = af(ag, ah)
295+ let aW = ai(ah)
296+ let aO = an(aV)
297+ let aX = an(aW)
298+ let bA = aS(ah, ag, aT, aH)
299+ let bq = bA._1
300+ let bB = bA._2
301+ let bv = bA._3
302+ ([IntegerEntry(aV, (aO + aH)), IntegerEntry(aW, (aX + aH)), aI("stake", ag, ah, aH, bw.transactionId)] ++ bB)
307303 }
308304
309305
310306
311-@Callable(by)
307+@Callable(bw)
312308 func unstake (ah,aH) = {
313- let ag = toString(by.caller)
309+ let ag = toString(bw.caller)
314310 let ap = fromBase58String(ah)
315- let aU = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
316- let aW = af(ag, ah)
317- let aX = ai(ah)
318- let aO = an(aW)
319- let aY = an(aX)
320- let bE = aT(ah, ag, aU, -(aH))
321- let bs = bE._1
322- let bD = bE._2
323- let bx = bE._3
311+ let aT = valueOrErrorMessage(getString(aK, M(ah)), ("unsupported lp asset " + ah))
312+ let aV = af(ag, ah)
313+ let aW = ai(ah)
314+ let aO = an(aV)
315+ let aX = an(aW)
316+ let bC = aS(ah, ag, aT, -(aH))
317+ let bq = bC._1
318+ let bB = bC._2
319+ let bv = bC._3
324320 if ((aH > aO))
325321 then throw("passed amount is less then available")
326- else ([IntegerEntry(aW, (aO - aH)), IntegerEntry(aX, (aY - aH)), ScriptTransfer(by.caller, aH, ap), aI("unstake", ag, ah, aH, by.transactionId)] ++ bD)
322+ else ([IntegerEntry(aV, (aO - aH)), IntegerEntry(aW, (aX - aH)), ScriptTransfer(bw.caller, aH, ap), aI("unstake", ag, ah, aH, bw.transactionId)] ++ bB)
327323 }
328324
329325
330326
331-@Callable(by)
327+@Callable(bw)
332328 func claimWx (ah) = {
333- let ar = by.caller
334- let ag = toString(by.caller)
335- let aU = s(aK, P(ah))
336- let bF = aj(ah, ag)
337- let bG = am(ah)
338- let bH = ak(ah, ag)
339- let bI = al(ah, ag)
340- let bJ = u(this, bF)
341- let bK = u(this, bH)
342- let bL = u(this, bI)
343- let bM = u(this, bG)
344- let bN = aT(ah, ag, aU, 0)
345- let bs = bN._1
346- let bD = bN._2
347- let bx = bN._3
348- let bO = (bs - bJ)
349- if ((0 >= bO))
329+ let ar = bw.caller
330+ let ag = toString(bw.caller)
331+ let aT = s(aK, P(ah))
332+ let bD = aj(ah, ag)
333+ let bE = am(ah)
334+ let bF = ak(ah, ag)
335+ let bG = al(ah, ag)
336+ let bH = u(this, bD)
337+ let bI = u(this, bF)
338+ let bJ = u(this, bG)
339+ let bK = u(this, bE)
340+ let bL = aS(ah, ag, aT, 0)
341+ let bq = bL._1
342+ let bB = bL._2
343+ let bv = bL._3
344+ let bM = (bq - bH)
345+ if ((0 >= bM))
350346 then throw("nothing to claim")
351347 else {
352- let bP = k(g(invoke(aM, "claimWxBoost", [ag], nil))[0])
353- let aZ = getIntegerValue(aK, Q(aU))
354- let bQ = fraction(bP, aZ, f)
355- let bR = bO
356- let bS = min([(bR * 2), bQ])
357- let bT = o(g(invoke(aL, "emit", [bR], nil))[0])
358- let bU = g(invoke(aL, "emit", [bS], nil))
359- if ((bU == bU))
360- then [IntegerEntry(bF, (bJ + bO)), IntegerEntry(bH, (bK + bR)), IntegerEntry(bI, (bL + bS)), IntegerEntry(bG, (bM + bO)), ScriptTransfer(ar, bR, bT), ScriptTransfer(ar, bS, bT), aI("claim", ag, ah, bO, by.transactionId)]
348+ let bN = k(g(invoke(aM, "claimWxBoost", [ah, ag], nil))[0])
349+ let aY = getIntegerValue(aK, Q(aT))
350+ let bO = fraction(bN, aY, f)
351+ let bP = bM
352+ let bQ = min([(bP * 2), bO])
353+ let bR = o(g(invoke(aL, "emit", [bP], nil))[0])
354+ let bS = g(invoke(aL, "emit", [bQ], nil))
355+ if ((bS == bS))
356+ then [IntegerEntry(bD, (bH + bM)), IntegerEntry(bF, (bI + bP)), IntegerEntry(bG, (bJ + bQ)), IntegerEntry(bE, (bK + bM)), ScriptTransfer(ar, bP, bR), ScriptTransfer(ar, bQ, bR), aI("claim", ag, ah, bM, bw.transactionId)]
361357 else throw("Strict value is not equal to itself.")
362358 }
363359 }
364360
365361
366362
367-@Callable(by)
363+@Callable(bw)
368364 func claimWxREADONLY (ah,ag) = {
369- let aW = af(ag, ah)
370- let aX = ai(ah)
371- let bF = aj(ah, ag)
372- let aO = an(aW)
373- let aY = an(aX)
374- let bJ = u(this, bF)
375- let aU = s(aK, P(ah))
376- let bV = b
377- let aZ = getIntegerValue(aK, Q(aU))
378- let bc = x(aL, aa())
379- let ba = x(aL, ac())
380- let bW = if ((ba > height))
365+ let aV = af(ag, ah)
366+ let aW = ai(ah)
367+ let bD = aj(ah, ag)
368+ let aO = an(aV)
369+ let aX = an(aW)
370+ let bH = u(this, bD)
371+ let aT = s(aK, P(ah))
372+ let bT = b
373+ let aY = getIntegerValue(aK, Q(aT))
374+ let bb = x(aL, aa())
375+ let aZ = x(aL, ac())
376+ let bU = if ((aZ > height))
381377 then 0
382- else (height - ba)
383- let bX = fraction((bc * bW), aZ, bV)
384- let bY = fraction(bX, aO, aY)
385- let bZ = aT(ah, ag, aU, 0)
386- let bs = bZ._1
387- let bD = bZ._2
388- let bx = bZ._3
389- let bO = (bs - bJ)
390- let ca = g(invoke(aM, "claimWxBoostREADONLY", [ag], nil))
391- let bP = k(ca[0])
392- let cb = m(ca[1])
393- let bQ = fraction(bP, aZ, f)
394- let bR = bO
395- let bS = min([(bR * 2), bQ])
396- let cc = (bR + bS)
397- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ah, ag, toString(cc), toString(bJ), toString(bR), toString(bS), ((((bx + "::") + toString(bY)) + "::BOOSTDEBUG::") + cb)], e))
378+ else (height - aZ)
379+ let bV = fraction((bb * bU), aY, bT)
380+ let bW = fraction(bV, aO, aX)
381+ let bX = aS(ah, ag, aT, 0)
382+ let bq = bX._1
383+ let bB = bX._2
384+ let bv = bX._3
385+ let bM = (bq - bH)
386+ let bY = g(invoke(aM, "claimWxBoostREADONLY", [ah, ag], nil))
387+ let bN = k(bY[0])
388+ let bZ = m(bY[1])
389+ let bO = fraction(bN, aY, f)
390+ let bP = bM
391+ let bQ = min([(bP * 2), bO])
392+ let ca = (bP + bQ)
393+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ah, ag, toString(ca), toString(bH), toString(bP), toString(bQ), ((((bv + "::") + toString(bW)) + "::BOOSTDEBUG::") + bZ)], e))
398394 }
399395
400396

github/deemru/w8io/169f3d6 
123.94 ms