tx · 3ci8vhJ7Ka25hGXxocPCTygMu4fhUtmvUvP9kJH5ixqs

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.02300000 Waves

2023.01.13 11:16 [2402918] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "3ci8vhJ7Ka25hGXxocPCTygMu4fhUtmvUvP9kJH5ixqs", "fee": 2300000, "feeAssetId": null, "timestamp": 1673597930684, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "24kZukWY5U1qRDmFuKcQBTN1FC3cVgeXGNRuevUeRFX3yhaZWA6tRm1ifXSwhy6H2qFj3vQXJjnduHN6p9mZYPqy" ], "script": "base64:BgL5HwgCEgMKAQgSAwoBCBIDCgEIEgASABIECgIIARIGCgQCAQICEgMKAQgSAwoBCBIFCgMICAQSBgoEARgIGBIECgIYCBIECgIICBIECgIICBIDCgEIEgQKAggIIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiA1NFUCIOUE9PTFdFSUdIVE1VTFQiCnplcm9CaWdJbnQiCW9uZUJpZ0ludCIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIJYXNBbnlMaXN0IgN2YWwiByRtYXRjaDAiCnZhbEFueUx5c3QiBWFzSW50IgZ2YWxJbnQiCGFzU3RyaW5nIgZ2YWxTdHIiDGFzQnl0ZVZlY3RvciIGdmFsQmluIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsIgxnZXRJbnRPclplcm8iD2dldEludE9yRGVmYXVsdCIKZGVmYXVsdFZhbCIMZ2V0SW50T3JGYWlsIhlnZXRCaWdJbnRGcm9tU3RyaW5nT3JaZXJvIhxnZXRCaWdJbnRGcm9tU3RyaW5nT3JEZWZhdWx0IgFzIgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCIHZnJvbVgxOCIPcmVzdWx0U2NhbGVNdWx0IhFrZXlGYWN0b3J5QWRkcmVzcyIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiDWtleUZhY3RvcnlDZmciE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhZrZXlTdGFibGVQb29sQWRkb25BZGRyIgxrZXlBZGRvbkFkZHIiGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nIgpscEFzc2V0U3RyIhBrZXlGYWN0b3J5THBMaXN0IiZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyIUa2V5RmFjdG9yeVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIKcmVhZExwTGlzdCIHZmFjdG9yeSIUcmVhZEZhY3RvcnlDZmdPckZhaWwiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50IiFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQiFWtleUVtaXNzaW9uU3RhcnRCbG9jayIba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzIhNrZXlFbWlzc2lvbkVuZEJsb2NrIg9rZXlTdGFrZWRCeVVzZXIiDnVzZXJBZGRyZXNzU3RyIgxscEFzc2V0SWRTdHIiDmtleVN0YWtlZFRvdGFsIhBrZXlDbGFpbWVkQnlVc2VyIhlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkIhtrZXlDbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQiD2tleUNsYWltZWRUb3RhbCIKcmVhZFN0YWtlZCIVa2V5TGFzdFRvdGFsTHBCYWxhbmNlIglscEFzc2V0SWQiFGtleUxhc3RVc2VyTHBCYWxhbmNlIgt1c2VyQWRkcmVzcyIZa2V5VG90YWxMcEJhbGFuY2VJbnRlZ3JhbCIYa2V5VXNlckxwQmFsYW5jZUludGVncmFsIiZrZXlUb3RhbExwQmFsYW5jZUludGVncmFsTGFzdFVwZEhlaWdodCIla2V5VXNlckxwQmFsYW5jZUludGVncmFsTGFzdFVwZEhlaWdodCISa2V5V3hQZXJMcEludGVncmFsIh9rZXlXeFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0IhBrZXlXeFRvQ2xhaW1Vc2VyIiNrZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodCIKa2V5V3hQZXJMcCINa2V5V3hQZXJMcFgxOCIaa2V5V3hQZXJMcEludGVncmFsVXNlckxhc3QiGWtleU9wZXJhdGlvbkhpc3RvcnlSZWNvcmQiBHR5cGUiBnR4SWQ1OCITZm9ybWF0SGlzdG9yeVJlY29yZCIGYW1vdW50IhVPcGVyYXRpb25IaXN0b3J5RW50cnkiBHR4SWQiDmZhY3RvcnlBZGRyZXNzIg9mYWN0b3J5Q29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiFmxwU3Rha2luZ1Bvb2xzQ29udHJhY3QiC2tleU5leHRVc2VyIhBnZXRVc2Vyc0xpc3ROYW1lIgtrZXlMaXN0SGVhZCIIbGlzdE5hbWUiC2tleUxpc3RTaXplIgtrZXlMaXN0UHJldiICaWQiC2tleUxpc3ROZXh0Igxjb250YWluc05vZGUiCmhlYWRPclVuaXQiCnByZXZPclVuaXQiCm5leHRPclVuaXQiEWluc2VydE5vZGVBY3Rpb25zIghsaXN0U2l6ZSIJY2hlY2tOb2RlIhFkZWxldGVOb2RlQWN0aW9ucyIbY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0IgxzdGFrZWRCeVVzZXIiJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvIhJ3eFBlckxwSW50ZWdyYWxOZXciGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZIhRyZWZyZXNoUG9vbElOVEVHUkFMUyIOcG9vbEFkZHJlc3NTdHIiDWxwRGVsdGFBbW91bnQiDnN0YWtlZFRvdGFsS0VZIgtzdGFrZWRUb3RhbCISbm9uWmVyb1N0YWtlZFRvdGFsIgpwb29sV2VpZ2h0IhJlbWlzc2lvblN0YXJ0QmxvY2siBU1VTFQzIhR3eEVtaXNzaW9uUGVyQmxvY2tYMyIYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzIhJ3eFBlckxwSW50ZWdyYWxLRVkiH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkiCnd4UGVyTHBLRVkiHHd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQiD3d4UGVyTHBJbnRlZ3JhbCIPd3hQZXJMcE9yWmVyb1gzIgJkaCIJd3hQZXJMcFgzIg5zdGFrZWRUb3RhbE5ldyIVbm9uWmVyb1N0YWtlZFRvdGFsTmV3Igx3eFBlckxwWDNOZXciH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXciBWRlYnVnIhByZWZyZXNoSU5URUdSQUxTIg0kdDAxNDc1MDE0ODcyIhFwb29sSW50ZWdyYWxTVEFURSIJcG9vbERFQlVHIg9zdGFrZWRCeVVzZXJLRVkiEHd4VG9DbGFpbVVzZXJLRVkiI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZIg13eFRvQ2xhaW1Vc2VyIhd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdCIGTVVMVDExIhB3eFRvQ2xhaW1Vc2VyTmV3Ihp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdE5ldyIjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHROZXciFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiDnVuc3Rha2VBY3Rpb25zIgtwb29sQWRkcmVzcyIXbHBBc3NldFJlY2lwaWVudEFkZHJlc3MiDWludGVncmFsU1RBVEUiC2xpc3RBY3Rpb25zIg1jbGFpbWVkQnlVc2VyIhBhdmFpbGFibGVUb0NsYWltIhV0aHJvd0lmTm90aGluZ1RvQ2xhaW0iAXIiEWZhY3RvcnlBZGRyZXNzU3RyIgtjaGVja0NhbGxlciIWdm90aW5nRW1pc3Npb25Db250cmFjdCIFY2hla3MiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIDcG10IgljYWxsZXJTdHIiDSR0MDIxMTQ2MjEyNjMiCXBvb2xBZGRvbiIGcmVzdWx0IhBjbGFpbWVkQnlVc2VyS0VZIg9jbGFpbWVkVG90YWxLRVkiGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkiG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWSIWY2xhaW1lZEJ5VXNlck1pblJld2FyZCIYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIgxjbGFpbWVkVG90YWwiDSR0MDI0NjQ5MjQ3NjEiEnd4QW1vdW50Qm9vc3RUb3RhbCINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0Igt0b3RhbFJld2FyZCIJd3hBc3NldElkIgllbWl0Qm9vc3QiEmNsYWltZWRCeVVzZXJWYWx1ZSIeY2xhaW1lZEJ5VXNlck1pblJld2FyZFBsdXNQYXJ0IitjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmRQbHVzQm9vc3RSZXdhcmRQYXJ0IiBjbGFpbWVkVG90YWxQbHVzQXZhaWxhYmxlVG9DbGFpbSILY3VycmVudEl0ZXIiCmxwQXNzZXRJZHMiBnJlc0FjYyIEaW5mbyIBQCIJdW5jbGFpbWVkIgdjbGFpbWVkIgNyZXMiA2ludiISd3hFbWlzc2lvblBlckJsb2NrIgxwYXNzZWRCbG9ja3MiDnBvb2xXeEVtaXNzaW9uIgx1c2VyV3hSZXdhcmQiDSR0MDI4MzcwMjg0ODIiDmJvb3N0SW52UmVzdWx0Igpib29zdERlYnVnIgp1c2VyT3JVbml0IgckbWF0Y2gxIgRoZWFkIg5uZXh0VXNlck9yVW5pdCIIbmV4dFVzZXIiDSR0MDMxMDUyMzExNjIiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleWIAAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUCAl9fAAFmBQFiAAFnCQC2AgEAAAABaAkAtgIBAAEBAWkBAWoJALkJAgkAzAgCAg1zdGFraW5nLnJpZGU6CQDMCAIJAKUIAQUEdGhpcwkAzAgCBQFqBQNuaWwCASABAWsBAWoJAAIBCQEBaQEFAWoBAWwBAW0EAW4FAW0DCQABAgUBbgIJTGlzdFtBbnldBAFvBQFuBQFvCQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQFwAQFtBAFuBQFtAwkAAQIFAW4CA0ludAQBcQUBbgUBcQkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBcgEBbQQBbgUBbQMJAAECBQFuAgZTdHJpbmcEAXMFAW4FAXMJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXQBAW0EAW4FAW0DCQABAgUBbgIKQnl0ZVZlY3RvcgQBdQUBbgUBdQkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBdgIBdwF4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBdwUBeAkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBeAIPIGlzIG5vdCBkZWZpbmVkAQF5AgF3AXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQF3BQF4CQCsAgIJAKwCAgkArAICCQCsAgICCm1hbmRhdG9yeSAJAKUIAQUBdwIBLgUBeAIPIGlzIG5vdCBkZWZpbmVkAQF6AgF3AXgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBdwUBeAAAAQFBAwF3AXgBQgkBC3ZhbHVlT3JFbHNlAgkAmggCBQF3BQF4BQFCAQFDAgF3AXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQF3BQF4CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQF4Ag8gaXMgbm90IGRlZmluZWQBAUQCAXcBeAkBBXZhbHVlAQkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFAXcFAXgCATABAUUDAXcBeAFCBAFuCQCdCAIFAXcFAXgDCQABAgUBbgIGU3RyaW5nBAFGBQFuCQEFdmFsdWUBCQCoAwEFAUYDCQABAgUBbgIEVW5pdAUBQgkAAgECC01hdGNoIGVycm9yAQFHAgFIAUkJALwCAwkAtgIBBQFIBQFkCQC2AgEFAUkBAUoCAW0BSwkAoAMBCQC8AgMFAW0JALYCAQUBSwUBZAEBTAACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MBAU0AAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAABTgABAAFPAAIAAVAAAwABUQAEAAFSAAUAAVMABgABVAAHAQFVAAIRJXNfX2ZhY3RvcnlDb25maWcBAVYAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVwACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBWAACFyVzX19zdGFibGVQb29sQWRkb25BZGRyAQFZAAINJXNfX2FkZG9uQWRkcgEBWgECYWEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYWEJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFAWUBAmFiAAIQJXNfX2xwVG9rZW5zTGlzdAECYWMBAmFhCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmFhCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQJhZAECYWUJALkJAgkAzAgCAgQlcyVzCQDMCAICCnBvb2xXZWlnaHQJAMwIAgUCYWUFA25pbAUBZQECYWYBAmFnCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCYWcJAQJhYgACAAUBZQECYWgBAmFnCQC1CQIJAQF5AgUCYWcJAQFVAAUBZQECYWkBAmFqCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFqBQFPAQJhawECYWoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWoFAVIBAmFsAQJhagkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhagUBTgECYW0AAhslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBAmFuAAIeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50AQJhbwACGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQJhcAACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYXEAAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAmFyAgJhcwJhdAkAuQkCCQDMCAICDiVzJXMlc19fc3Rha2VkCQDMCAIFAmFzCQDMCAIFAmF0BQNuaWwFAWUBAmF1AQJhdAkArAICAhclcyVzJXNfX3N0YWtlZF9fdG90YWxfXwUCYXQBAmF2AgJhdAJhcwkAuQkCCQDMCAICDyVzJXMlc19fY2xhaW1lZAkAzAgCBQJhcwkAzAgCBQJhdAUDbmlsBQFlAQJhdwICYXQCYXMJALkJAgkAzAgCAhglcyVzJXNfX2NsYWltZWRNaW5SZXdhcmQJAMwIAgUCYXMJAMwIAgUCYXQFA25pbAUBZQECYXgCAmF0AmFzCQC5CQIJAMwIAgIaJXMlcyVzX19jbGFpbWVkQm9vc3RSZXdhcmQJAMwIAgUCYXMJAMwIAgUCYXQFA25pbAUBZQECYXkBAmF0CQC5CQIJAMwIAgIWJXMlcyVzX19jbGFpbWVkX190b3RhbAkAzAgCBQJhdAUDbmlsBQFlAQJhegEBeAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQF4AAABAmFBAQJhQgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJhQgkAzAgCAgV0b3RhbAkAzAgCAgNiYWwFA25pbAUBZQECYUMCAmFCAmFECQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmFCCQDMCAIFAmFECQDMCAICA2JhbAUDbmlsBQFlAQJhRQECYUIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYUIJAMwIAgIFdG90YWwJAMwIAgIGYmFsSU5UBQNuaWwFAWUBAmFGAgJhQgJhRAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJhQgkAzAgCBQJhRAkAzAgCAgZiYWxJTlQFA25pbAUBZQECYUcBAmFCCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmFCCQDMCAICBXRvdGFsCQDMCAICB2xhc3RVcGQFA25pbAUBZQECYUgCAmFCAmFECQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmFCCQDMCAIFAmFECQDMCAICB2xhc3RVcGQFA25pbAUBZQECYUkBAmFCCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYUIJAMwIAgIGY29tbW9uCQDMCAICBWxwSW50BQNuaWwFAWUBAmFKAQJhQgkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmFCCQDMCAICBmNvbW1vbgkAzAgCAgZscEludEgFA25pbAUBZQECYUsCAmFCAmFECQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYUIJAMwIAgUCYUQJAMwIAgIFbHBJbnQFA25pbAUBZQECYUwCAmFCAmFECQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYUIJAMwIAgUCYUQJAMwIAgIGbHBJbnRIBQNuaWwFAWUBAmFNAQJhQgkAuQkCCQDMCAICAiVzCQDMCAIFAmFCCQDMCAICB3d4UGVyTHAFA25pbAUBZQECYU4BAmFCCQC5CQIJAMwIAgICJXMJAMwIAgUCYUIJAMwIAgIKd3hQZXJMcFgxOAUDbmlsBQFlAQJhTwICYUICYUQJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJhQgkAzAgCBQJhRAkAzAgCAgV1SW50TAUDbmlsBQFlAQJhUAMCYVECYUQCYVIJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJhUQkAzAgCBQJhRAkAzAgCBQJhUgUDbmlsBQFlAQJhUwQCYUQCYUICYVECYVQJALkJAgkAzAgCAgwlcyVzJXMlZCVkJWQJAMwIAgUCYUQJAMwIAgUCYUIJAMwIAgUCYVEJAMwIAgkApAMBBQZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFAmFUBQNuaWwFAWUBAmFVBQJhUQJhRAJhQgJhVAJhVgkBC1N0cmluZ0VudHJ5AgkBAmFQAwUCYVEFAmFECQDYBAEFAmFWCQECYVMEBQJhRAUCYUIFAmFRBQJhVAACYVcJAQF2AgUEdGhpcwkBAUwAAAJhWAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVcAAmFqCQECYWgBBQJhWAACYVkJAQJhawEFAmFqAAJhWgkBAmFpAQUCYWoAAmJhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJALkJAgkAzAgCAgIlcwkAzAgCAhZscFN0YWtpbmdQb29sc0NvbnRyYWN0BQNuaWwFAWUJAQFpAQIubHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzIGlzIHVuZGVmaW5lZAkBAWkBAilpbnZhbGlkIGxwX3N0YWtpbmdfcG9vbHMgY29udHJhY3QgYWRkcmVzcwECYmIBAmFCCQC5CQIJAMwIAgIEJXMlcwkAzAgCBQJhQgkAzAgCAghuZXh0VXNlcgUDbmlsBQFlAQJiYwECYUIJALkJAgkAzAgCAgV1c2VycwkAzAgCBQJhQgUDbmlsBQFlAQJiZAECYmUJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmUJAMwIAgIEaGVhZAUDbmlsBQFlAQJiZgECYmUJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmUJAMwIAgIEc2l6ZQUDbmlsBQFlAQJiZwICYmUCYmgJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJiZQkAzAgCBQJiaAkAzAgCAgRwcmV2BQNuaWwFAWUBAmJpAgJiZQJiaAkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmJlCQDMCAIFAmJoCQDMCAICBG5leHQFA25pbAUBZQECYmoCAmJlAmJoBAJiawkAnQgCBQR0aGlzCQECYmQBBQJiZQQCYmwJAJ0IAgUEdGhpcwkBAmJnAgUCYmUFAmJoBAJibQkAnQgCBQR0aGlzCQECYmkCBQJiZQUCYmgDAwkAAAIFAmJoCQELdmFsdWVPckVsc2UCBQJiawIABgkBAiE9AgUCYmwFBHVuaXQGCQECIT0CBQJibQUEdW5pdAECYm4CAmJlAmJoBAJiawkAnQgCBQR0aGlzCQECYmQBBQJiZQQCYm8JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJmAQUCYmUAAAQCYnADCQEBIQEJAQJiagIFAmJlBQJiaAYJAAIBAgtOb2RlIGV4aXN0cwMJAAACBQJicAUCYnAJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYmYBBQJiZQkAZAIFAmJvAAEFA25pbAMJAQIhPQIFAmJrBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiaQIFAmJlBQJiaAkBBXZhbHVlAQUCYmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJnAgUCYmUJAQV2YWx1ZQEFAmJrBQJiaAUDbmlsBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJkAQUCYmUFAmJoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJxAgJiZQJiaAQCYmsJAJ0IAgUEdGhpcwkBAmJkAQUCYmUEAmJvCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiZgEFAmJlAAAEAmJsCQCdCAIFBHRoaXMJAQJiZwIFAmJlBQJiaAQCYm0JAJ0IAgUEdGhpcwkBAmJpAgUCYmUFAmJoCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiZgEFAmJlCQBlAgUCYm8AAQUDbmlsAwMJAQIhPQIFAmJsBQR1bml0CQECIT0CBQJibQUEdW5pdAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJpAgUCYmUJAQV2YWx1ZQEFAmJsCQEFdmFsdWUBBQJibQkAzAgCCQELU3RyaW5nRW50cnkCCQECYmcCBQJiZQkBBXZhbHVlAQUCYm0JAQV2YWx1ZQEFAmJsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiZwIFAmJlBQJiaAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmkCBQJiZQUCYmgFA25pbAMJAQIhPQIFAmJtBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZAEFAmJlCQEFdmFsdWUBBQJibQkAzAgCCQELRGVsZXRlRW50cnkBCQECYmkCBQJiZQUCYmgJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJnAgUCYmUJAQV2YWx1ZQEFAmJtBQNuaWwDCQECIT0CBQJibAUEdW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmcCBQJiZQUCYmgJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJpAgUCYmUJAQV2YWx1ZQEFAmJsBQNuaWwDCQAAAgUCYmgJAQt2YWx1ZU9yRWxzZQIFAmJrAgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJkAQUCYmUFA25pbAkAAgEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJiZQIBLgUCYmgBAmJyBAJicwJidAJidQJidgMDCQAAAgUCYnQFAWcJAL8CAgUCYnMFAWcHBQFnAwkAAAIFAmJzBQFnBQJidQMDCQC/AgIFAmJ0BQFnCQC/AgIFAmJzBQFnBwkBBXZhbHVlAQkAqAMBCQEBdgIFBHRoaXMFAmJ2CQACAQItY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQJidwMCYXQCYngCYnkEAmJ6CQECYXUBBQJhdAQCYkEJALYCAQkBAmF6AQUCYnoEAmJCAwkAAAIFAmJBBQFnBQFoBQJiQQQCYkMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFYCQECYWQBBQJieAQCYkQJAQFDAgUCYVkJAQJhbwAEAmJFAOgHBAJiRgkAaAIJAQFDAgUCYVkJAQJhbQAFAmJFBAJiRwkAawMFAmJGBQJiQwkAaAIFAWYAAwQCYkgJAQJhSQEFAmF0BAJiSQkBAmFKAQUCYXQEAmJKCQECYU0BBQJhdAQCYksJAQFBAwUEdGhpcwUCYkkFAmJEBAJiTAkBAUQCBQR0aGlzBQJiSAQCYk0AAAQCYk4JAJYDAQkAzAgCCQBlAgUGaGVpZ2h0BQJiSwkAzAgCAAAFA25pbAQCYk8DCQECIT0CBQJiTQAACQC2AgEFAmJNCQC8AgMJALYCAQUCYkcJALYCAQUBYgUCYkIEAmJQCQC3AgIFAmJBCQC2AgEFAmJ5BAJiUQMJAAACBQJiUAUBZwUBaAUCYlAEAmJ1CQC3AgIFAmJMCQC5AgIFAmJPCQC2AgEFAmJOBAJiUgkAugICCQC2AgEFAmJHBQJiUQQCYlMFBmhlaWdodAQCYlQJALkJAgkAzAgCCQCmAwEFAmJ1CQDMCAIJAKQDAQUCYk4JAMwIAgkApgMBBQJiTwkAzAgCCQCmAwEFAmJBCQDMCAIJAKQDAQUCYkcJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJDBQNuaWwCAjo6CQCVCgMFAmJ1CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJICQCmAwEFAmJ1CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiSQUCYlMJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYkoJAKYDAQUCYlIFA25pbAUCYlQBAmJVBAJhdAJhcwJieAJieQQCYlYJAQJidwMFAmF0BQJieAUCYnkEAmJ1CAUCYlYCXzEEAmJXCAUCYlYCXzIEAmJYCAUCYlYCXzMEAmJFAOgHBAJiWQkBAmFyAgUCYXMFAmF0BAJicwkBAmF6AQUCYlkEAmJaCQECYUsCBQJhdAUCYXMEAmNhCQECYUwCBQJhdAUCYXMEAmJ2CQECYU8CBQJhdAUCYXMEAmNiCQEBRAIFBHRoaXMFAmJaBAJidAkBAXoCBQR0aGlzBQJjYQQCY2MJAQJicgQJALYCAQUCYnMJALYCAQUCYnQFAmJ1BQJidgQCY2QJAGgCBQFiBQJiRQQCY2UJAJgDAQkAzAgCCQC3AgIFAmNiCQC8AgMJALgCAgUCYnUFAmNjCQC2AgEFAmJzCQC2AgEFAmNkCQDMCAIFAWcFA25pbAQCY2YFAmJ1BAJjZwUGaGVpZ2h0BAJiVAkAuQkCCQDMCAIJAKYDAQUCY2IJAMwIAgkApgMBBQJjYwkAzAgCCQCkAwEFAmJzCQDMCAIFAmJYCQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAjo6CQCVCgMFAmNlCQDOCAIFAmJXCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJaCQCmAwEFAmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjYQUCY2cJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYnYJAKYDAQUCY2YFA25pbAUCYlQBAmNoAAQBbgkAoggBCQEBVgADCQABAgUBbgIGU3RyaW5nBAFGBQFuCQDZBAEFAUYDCQABAgUBbgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJjaQAEAW4JAKIIAQkBAVcAAwkAAQIFAW4CBlN0cmluZwQBRgUBbgkA2QQBBQFGAwkAAQIFAW4CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACY2oJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECY2sBAmNsAwkAAAIIBQJjbAZjYWxsZXIFBHRoaXMGBQJjagECY20BAmNsBAFuCQECY2gAAwkAAQIFAW4CCkJ5dGVWZWN0b3IEAmNuBQFuAwkAAAIIBQJjbA9jYWxsZXJQdWJsaWNLZXkFAmNuBgUCY2oDCQABAgUBbgIEVW5pdAMJAAACCAUCY2wGY2FsbGVyBQR0aGlzBgUCY2oJAAIBAgtNYXRjaCBlcnJvcgECY28GAmNsAmFCAmNwAmFEAmNxAmFUBAJhcwkApQgBBQJhRAQCYXQJANgEAQUCYUIEAmJ4CQClCAEFAmNwBAJiWQkBAmFyAgUCYXMFAmF0BAJiegkBAmF1AQUCYXQEAmJzCQECYXoBBQJiWQQCYkEJAQJhegEFAmJ6BAJjcggJAQJiVQQFAmF0BQJhcwUCYngJAQEtAQUCYVQCXzIEAmJlCQECYmMBBQJhdAQCY3MDAwkBAmJqAgUCYmUFAmFzCQAAAgUCYVQFAmJzBwkBAmJxAgUCYmUFAmFzBQNuaWwEAmN0CQEBRAIFBHRoaXMJAQJhdgIFAmF0BQJhcwQCY2UICQECYlUEBQJhdAUCYXMFAmJ4AAACXzEEAmN1CQC4AgIFAmNlBQJjdAQCY3YGBAJjdwMJAL8CAgUCY3UFAWcJAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmF0CQDMCAIFAmFzCQDMCAIFAmN2BQNuaWwFA25pbAUEdW5pdAMJAAACBQJjdwUCY3cDCQBmAgUCYVQFAmJzCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg5wYXNzZWQgYW1vdW50PQkApAMBBQJhVAIbIGlzIGdyZWF0ZXIgdGhhbiBhdmFpbGFibGU9CQCkAwEFAmJzAgwuIGxwQXNzZXRJZD0FAmF0AhIuIHN0YWtlZEJ5VXNlcktFWT0FAmJZCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYlkJAGUCBQJicwUCYVQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ6CQBlAgUCYkEFAmFUCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNxBQJhVAUCYUIJAMwIAgkBAmFVBQIHdW5zdGFrZQUCYXMFAmF0BQJhVAgFAmNsDXRyYW5zYWN0aW9uSWQFA25pbAUCY3IFAmNzCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuEAJjbAELY29uc3RydWN0b3IBAmN4BAJjeQkBAmNtAQUCY2wDCQAAAgUCY3kFAmN5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFMAAUCY3gFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjbAENY29uc3RydWN0b3JWMgECY3oEAmNBCQDMCAIJAQJjbQEFAmNsCQDMCAIDCQECIT0CCQCmCAEFAmN6BQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmNBBQJjQQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTQAFAmN6BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2wBCnNldE1hbmFnZXIBAmNCBAJjeQkBAmNtAQUCY2wDCQAAAgUCY3kFAmN5BAJjQwkA2QQBBQJjQgMJAAACBQJjQwUCY0MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcABQJjQgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNsAQ5jb25maXJtTWFuYWdlcgAEAmNECQECY2kABAJjRQMJAQlpc0RlZmluZWQBBQJjRAYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY0UFAmNFBAJjRgMJAAACCAUCY2wPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJjRAYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY0YFAmNGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAAkA2AQBCQEFdmFsdWUBBQJjRAkAzAgCCQELRGVsZXRlRW50cnkBCQEBVwAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjbAEFc3Rha2UAAwkBAiE9AgkAkAMBCAUCY2wIcGF5bWVudHMAAQkAAgECNGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAmNHCQCRAwIIBQJjbAhwYXltZW50cwAABAJhQgkBBXZhbHVlAQgFAmNHB2Fzc2V0SWQEAmF0CQDYBAEFAmFCBAJhVAgFAmNHBmFtb3VudAQCYngJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhWAkBAVoBBQJhdAkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmF0BAJjSAkApQgBCAUCY2wGY2FsbGVyBAJhcwMJAAACBQJjSAUCYngJAKUIAQgFAmNsDG9yaWdpbkNhbGxlcgUCY0gEAmJZCQECYXICBQJhcwUCYXQEAmJ6CQECYXUBBQJhdAQCYnMJAQJhegEFAmJZBAJiQQkBAmF6AQUCYnoEAmNJCQECYlUEBQJhdAUCYXMFAmJ4BQJhVAQCY2UIBQJjSQJfMQQCY3IIBQJjSQJfMgQCYlQIBQJjSQJfMwQCYmUJAQJiYwEFAmF0BAJjcwMJAQJiagIFAmJlBQJhcwUDbmlsCQECYm4CBQJiZQUCYXMJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiWQkAZAIFAmJzBQJhVAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYnoJAGQCBQJiQQUCYVQJAMwIAgkBAmFVBQIFc3Rha2UFAmFzBQJhdAUCYVQIBQJjbA10cmFuc2FjdGlvbklkBQNuaWwFAmNyBQJjcwJjbAEHdW5zdGFrZQICYXQCYVQEAmFCCQDZBAEFAmF0BAJieAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFYCQEBWgEFAmF0CQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUCYXQEAmNwCQERQGV4dHJOYXRpdmUoMTA2MikBBQJieAQCY0oJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCY3AJAQFZAAUCYngEAmNICQClCAEIBQJjbAZjYWxsZXIEAmFEAwMJAAACBQJjSAUCYngGCQAAAgUCY0gFAmNKCAUCY2wMb3JpZ2luQ2FsbGVyCAUCY2wGY2FsbGVyBAJjcQgFAmNsBmNhbGxlcgkBAmNvBgUCY2wFAmFCBQJjcAUCYUQFAmNxBQJhVAJjbAEPdW5zdGFrZUlOVEVSTkFMBAJhQgJhVAJhRAJjcQQCYXQJANgEAQUCYUIEAmNwCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVgJAQFaAQUCYXQJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhdAQCY3kDCQAAAggFAmNsBmNhbGxlcgUCY3AGBQJjagMJAAACBQJjeQUCY3kJAQJjbwYFAmNsBQJhQgUCY3AJAQdBZGRyZXNzAQUCYUQJAQdBZGRyZXNzAQUCY3EFAmFUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNsAQdjbGFpbVd4AQJhdAQCYXMJAKUIAQgFAmNsBmNhbGxlcgQCY3YGBAJjSwkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYXQJAMwIAgUCYXMJAMwIAgUCY3YFA25pbAUDbmlsCQCUCgIFA25pbAUCY0sCY2wBEWNsYWltV3hEb05vdFRocm93AQJhdAQCYXMJAKUIAQgFAmNsBmNhbGxlcgQCY3YHBAJjSwkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYXQJAMwIAgUCYXMJAMwIAgUCY3YFA25pbAUDbmlsCQCUCgIFA25pbAUCY0sCY2wBD2NsYWltV3hJTlRFUk5BTAMCYXQCYXMCY3YEAmN5CQECY2sBBQJjbAMJAAACBQJjeQUCY3kEAmFECQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUCYXMCJWNsYWltV3hJTlRFUk5BTDogaW52YWxpZCB1c2VyIGFkZHJlc3MEAmJ4CQEBeQIFAmFYCQECYWMBBQJhdAQCY0wJAQJhdgIFAmF0BQJhcwQCY00JAQJheQEFAmF0BAJjTgkBAmF3AgUCYXQFAmFzBAJjTwkBAmF4AgUCYXQFAmFzBAJjdAkBAUQCBQR0aGlzBQJjTAQCY1AJAQFEAgUEdGhpcwUCY04EAmNRCQEBRAIFBHRoaXMFAmNPBAJjUgkBAUQCBQR0aGlzBQJjTQQCY1MJAQJiVQQFAmF0BQJhcwUCYngAAAQCY2UIBQJjUwJfMQQCY3IIBQJjUwJfMgQCYlQIBQJjUwJfMwQCY3UJAJgDAQkAzAgCCQC4AgIFAmNlBQJjdAkAzAgCBQFnBQNuaWwDCQDAAgIFAWcFAmN1AwUCY3YJAAIBAhBub3RoaW5nIHRvIGNsYWltCQCUCgIFA25pbAAABAJjVAkAlgMBCQDMCAIJAQFwAQkAkQMCCQEBbAEJAPwHBAUCYVoCDGNsYWltV3hCb29zdAkAzAgCBQJhdAkAzAgCBQJhcwUDbmlsBQNuaWwAAAkAzAgCAAAFA25pbAQCY1UFAmN1BAJjVgkAmQMBCQDMCAIJALkCAgUCY1UJALYCAQACCQDMCAIJALYCAQUCY1QFA25pbAQCY1cJALcCAgUCY1UFAmNWBAJjWAkBAXQBCQCRAwIJAQFsAQkA/AcEBQJhWQIEZW1pdAkAzAgCCQCgAwEFAmNVBQNuaWwFA25pbAAABAJjWQkBAWwBCQD8BwQFAmFZAgRlbWl0CQDMCAIJAKADAQUCY1YFA25pbAUDbmlsAwkAAAIFAmNZBQJjWQQCY1oJALcCAgUCY3QFAmN1BAJkYQkAtwICBQJjUAUCY1UEAmRiCQC3AgIFAmNQBQJjVQQCZGMJALcCAgUCY1AFAmNVCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0wJAKYDAQUCY1oJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY04JAKYDAQUCZGEJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY08JAKYDAQUCZGIJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY00JAKYDAQUCZGMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUQJAKADAQUCY1UFAmNYCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFECQCgAwEFAmNWBQJjWAkAzAgCCQECYVUFAgVjbGFpbQUCYXMFAmF0CQCgAwEFAmN1CAUCY2wNdHJhbnNhY3Rpb25JZAUDbmlsCQCgAwEFAmNXCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNsARtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkEAmRkAmRlAmFzAmRmAwkAAAIFAmRkCQCQAwEFAmRlCQCUCgIFA25pbAUCZGYEAmFCCQCRAwIFAmRlBQJkZAQCZGcJALUJAgoAAmRoCQD8BwQFBHRoaXMCD2NsYWltV3hSRUFET05MWQkAzAgCBQJhQgkAzAgCBQJhcwUDbmlsBQNuaWwDCQABAgUCZGgCBlN0cmluZwUCZGgJAAIBCQCsAgIJAAMBBQJkaAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQFlBAJkaQkAkQMCBQJkZwADBAJkagkAkQMCBQJkZwAEBAJkawkAzQgCBQJkZgkAuQkCCQDMCAICBCVkJWQJAMwIAgUCZGkJAMwIAgUCZGoFA25pbAUBZQQCZGwKAAJkaAkA/AcEBQR0aGlzAhtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFAmRkAAEJAMwIAgUCZGUJAMwIAgUCYXMJAMwIAgUCZGsFA25pbAUDbmlsAwkAAQIFAmRoAglMaXN0W0FueV0FAmRoCQACAQkArAICCQADAQUCZGgCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQJkbAUCZGwJAJQKAgUDbmlsBQJkbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjbAETY2xhaW1XeEJ1bGtSRUFET05MWQICZGUCYXMEAmRrCQD8BwQFBHRoaXMCG2NsYWltV3hCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCZGUJAMwIAgUCYXMJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmRrAmNsAQ9jbGFpbVd4UkVBRE9OTFkCAmF0AmFzBAJiWQkBAmFyAgUCYXMFAmF0BAJiegkBAmF1AQUCYXQEAmNMCQECYXYCBQJhdAUCYXMEAmJzCQECYXoBBQJiWQQCYkEJAQJhegEFAmJ6BAJjdAkBAUQCBQR0aGlzBQJjTAQCYngJAQF5AgUCYVgJAQJhYwEFAmF0BAJiQwkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVgJAQJhZAEFAmJ4BAJkbQkBAUMCBQJhWQkBAmFtAAQCYkQJAQFDAgUCYVkJAQJhbwAEAmRuAwkAZgIFAmJEBQZoZWlnaHQAAAkAZQIFBmhlaWdodAUCYkQEAmRvCQBrAwkAaAIFAmRtBQJkbgUCYkMFAWYEAmRwCQBrAwUCZG8FAmJzBQJiQQQCZHEJAQJiVQQFAmF0BQJhcwUCYngAAAQCY2UIBQJkcQJfMQQCY3IIBQJkcQJfMgQCYlQIBQJkcQJfMwQCY3UJAJgDAQkAzAgCCQC4AgIFAmNlBQJjdAkAzAgCBQFnBQNuaWwEAmRyCQEBbAEJAPwHBAUCYVoCFGNsYWltV3hCb29zdFJFQURPTkxZCQDMCAIFAmF0CQDMCAIFAmFzBQNuaWwFA25pbAQCY1QJAJYDAQkAzAgCCQEBcAEJAJEDAgUCZHIAAAkAzAgCAAAFA25pbAQCZHMJAQFyAQkAkQMCBQJkcgABBAJjVQUCY3UEAmNWCQCZAwEJAMwIAgkAuQICBQJjVQkAtgIBAAIJAMwIAgkAtgIBBQJjVAUDbmlsBAJjVwkAtwICBQJjVQUCY1YJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJXMlcyVkJWQlZCVkJXMJAMwIAgUCYXQJAMwIAgUCYXMJAMwIAgkApgMBBQJjVwkAzAgCCQCmAwEFAmN0CQDMCAIJAKYDAQUCY1UJAMwIAgkApgMBBQJjVgkAzAgCAgRzb29uBQNuaWwFAWUCY2wBFHN0YWtlZEJ5VXNlclJFQURPTkxZAgJhdAJhcwQCYnMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmFyAgUCYXMFAmF0AAAJAJQKAgUDbmlsBQJicwJjbAESdXNlcnNMaXN0VHJhdmVyc2FsAQJhQgQCY3kDCQAAAgkA2AQBCAgFAmNsBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBTQACAAYJAQJjbQEFAmNsAwkAAAIFAmN5BQJjeQQCYmUJAQJiYwEFAmFCBAJkdAkAoggBCQECYmIBBQJhQgQCYmsJAKIIAQkBAmJkAQUCYmUEAW4FAmR0AwkAAQIFAW4CBFVuaXQEAmR1BQJiawMJAAECBQJkdQIEVW5pdAkAlAoCBQNuaWwHAwkAAQIFAmR1AgZTdHJpbmcEAmR2BQJkdQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiYgEFAmFCBQJkdgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAW4CBlN0cmluZwQCYUQFAW4EAmN0CQEBRAIFBHRoaXMJAQJhdgIFAmFCBQJhRAQCY3AJAQF5AgUCYVgJAQJhYwEFAmFCBAJjZQgJAQJiVQQFAmFCBQJhRAUCY3AAAAJfMQQCY3UJALgCAgUCY2UFAmN0BAJjdgYEAmN3AwkAvwICBQJjdQUBZwkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYUIJAMwIAgUCYUQJAMwIAgUCY3YFA25pbAUDbmlsBQR1bml0AwkAAAIFAmN3BQJjdwQCZHcJAKIIAQkBAmJpAgUCYmUFAmFEBAJkdQUCZHcDCQABAgUCZHUCBFVuaXQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYmIBBQJhQgUDbmlsBwMJAAECBQJkdQIGU3RyaW5nBAJkeAUCZHUJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYmIBBQJhQgUCZHgFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNsAQ5vbk1vZGlmeVdlaWdodAICYXQCYngDCQECIT0CCAUCY2wGY2FsbGVyBQJhWAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAQCZHkJAQJidwMFAmF0BQJieAAABAJidQgFAmR5Al8xBAJiVwgFAmR5Al8yBAJiWAgFAmR5Al8zBQJiVwECZHoBAmRBAAQCZEIEAW4JAQJjaAADCQABAgUBbgIKQnl0ZVZlY3RvcgQCY24FAW4FAmNuAwkAAQIFAW4CBFVuaXQIBQJkeg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZHoJYm9keUJ5dGVzCQCRAwIIBQJkegZwcm9vZnMAAAUCZELLf93Z", "chainId": 84, "height": 2402918, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8hoCQUTLyWkkbudVjwmPDjZyHLxz3vVSPGNnJ3yDz1zn Next: 6v1FCkzPnZA5bNR5vN2tLTX7g879PyaZtgbtgmzbFqHh Diff:
OldNewDifferences
462462 let ct = D(this, av(at, as))
463463 let ce = bU(at, as, bx, 0)._1
464464 let cu = (ce - ct)
465- let cv = if ((cu > g))
466- then invoke(this, "claimWxINTERNAL", [at, as], nil)
465+ let cv = true
466+ let cw = if ((cu > g))
467+ then invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
467468 else unit
468- if ((cv == cv))
469+ if ((cw == cw))
469470 then if ((aT > bs))
470471 then throw(((((((("passed amount=" + toString(aT)) + " is greater than available=") + toString(bs)) + ". lpAssetId=") + at) + ". stakedByUserKEY=") + bY))
471472 else (([IntegerEntry(bY, (bs - aT)), IntegerEntry(bz, (bA - aT)), ScriptTransfer(cq, aT, aB), aU("unstake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
474475
475476
476477 @Callable(cl)
477-func constructor (cw) = {
478- let cx = cm(cl)
479- if ((cx == cx))
480- then [StringEntry(L(), cw)]
478+func constructor (cx) = {
479+ let cy = cm(cl)
480+ if ((cy == cy))
481+ then [StringEntry(L(), cx)]
481482 else throw("Strict value is not equal to itself.")
482483 }
483484
484485
485486
486487 @Callable(cl)
487-func constructorV2 (cy) = {
488- let cz = [cm(cl), if ((addressFromString(cy) != unit))
488+func constructorV2 (cz) = {
489+ let cA = [cm(cl), if ((addressFromString(cz) != unit))
489490 then true
490491 else "invalid voting emission contract address"]
491- if ((cz == cz))
492- then [StringEntry(M(), cy)]
492+ if ((cA == cA))
493+ then [StringEntry(M(), cz)]
493494 else throw("Strict value is not equal to itself.")
494495 }
495496
496497
497498
498499 @Callable(cl)
499-func setManager (cA) = {
500- let cx = cm(cl)
501- if ((cx == cx))
500+func setManager (cB) = {
501+ let cy = cm(cl)
502+ if ((cy == cy))
502503 then {
503- let cB = fromBase58String(cA)
504- if ((cB == cB))
505- then [StringEntry(W(), cA)]
504+ let cC = fromBase58String(cB)
505+ if ((cC == cC))
506+ then [StringEntry(W(), cB)]
506507 else throw("Strict value is not equal to itself.")
507508 }
508509 else throw("Strict value is not equal to itself.")
512513
513514 @Callable(cl)
514515 func confirmManager () = {
515- let cC = ci()
516- let cD = if (isDefined(cC))
516+ let cD = ci()
517+ let cE = if (isDefined(cD))
517518 then true
518519 else throw("No pending manager")
519- if ((cD == cD))
520+ if ((cE == cE))
520521 then {
521- let cE = if ((cl.callerPublicKey == value(cC)))
522+ let cF = if ((cl.callerPublicKey == value(cD)))
522523 then true
523524 else throw("You are not pending manager")
524- if ((cE == cE))
525- then [StringEntry(V(), toBase58String(value(cC))), DeleteEntry(W())]
525+ if ((cF == cF))
526+ then [StringEntry(V(), toBase58String(value(cD))), DeleteEntry(W())]
526527 else throw("Strict value is not equal to itself.")
527528 }
528529 else throw("Strict value is not equal to itself.")
534535 func stake () = if ((size(cl.payments) != 1))
535536 then throw("invalid payment - exact one payment must be attached")
536537 else {
537- let cF = cl.payments[0]
538- let aB = value(cF.assetId)
538+ let cG = cl.payments[0]
539+ let aB = value(cG.assetId)
539540 let at = toBase58String(aB)
540- let aT = cF.amount
541+ let aT = cG.amount
541542 let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
542- let cG = toString(cl.caller)
543- let as = if ((cG == bx))
543+ let cH = toString(cl.caller)
544+ let as = if ((cH == bx))
544545 then toString(cl.originCaller)
545- else cG
546+ else cH
546547 let bY = ar(as, at)
547548 let bz = au(at)
548549 let bs = az(bY)
549550 let bA = az(bz)
550- let cH = bU(at, as, bx, aT)
551- let ce = cH._1
552- let cr = cH._2
553- let bT = cH._3
551+ let cI = bU(at, as, bx, aT)
552+ let ce = cI._1
553+ let cr = cI._2
554+ let bT = cI._3
554555 let be = bc(at)
555556 let cs = if (bj(be, as))
556557 then nil
565566 let aB = fromBase58String(at)
566567 let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
567568 let cp = addressFromStringValue(bx)
568- let cI = valueOrElse(getString(cp, Y()), bx)
569- let cG = toString(cl.caller)
570- let aD = if (if ((cG == bx))
569+ let cJ = valueOrElse(getString(cp, Y()), bx)
570+ let cH = toString(cl.caller)
571+ let aD = if (if ((cH == bx))
571572 then true
572- else (cG == cI))
573+ else (cH == cJ))
573574 then cl.originCaller
574575 else cl.caller
575576 let cq = cl.caller
582583 func unstakeINTERNAL (aB,aT,aD,cq) = {
583584 let at = toBase58String(aB)
584585 let cp = addressFromStringValue(valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at)))
585- let cx = if ((cl.caller == cp))
586+ let cy = if ((cl.caller == cp))
586587 then true
587588 else cj
588- if ((cx == cx))
589+ if ((cy == cy))
589590 then co(cl, aB, cp, Address(aD), Address(cq), aT)
590591 else throw("Strict value is not equal to itself.")
591592 }
595596 @Callable(cl)
596597 func claimWx (at) = {
597598 let as = toString(cl.caller)
598- let cJ = invoke(this, "claimWxINTERNAL", [at, as], nil)
599- $Tuple2(nil, cJ)
599+ let cv = true
600+ let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
601+ $Tuple2(nil, cK)
600602 }
601603
602604
603605
604606 @Callable(cl)
605-func claimWxINTERNAL (at,as) = {
606- let cx = ck(cl)
607- if ((cx == cx))
607+func claimWxDoNotThrow (at) = {
608+ let as = toString(cl.caller)
609+ let cv = false
610+ let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
611+ $Tuple2(nil, cK)
612+ }
613+
614+
615+
616+@Callable(cl)
617+func claimWxINTERNAL (at,as,cv) = {
618+ let cy = ck(cl)
619+ if ((cy == cy))
608620 then {
609621 let aD = valueOrErrorMessage(addressFromString(as), "claimWxINTERNAL: invalid user address")
610622 let bx = y(aX, ac(at))
611- let cK = av(at, as)
612- let cL = ay(at)
613- let cM = aw(at, as)
614- let cN = ax(at, as)
615- let ct = D(this, cK)
616- let cO = D(this, cM)
623+ let cL = av(at, as)
624+ let cM = ay(at)
625+ let cN = aw(at, as)
626+ let cO = ax(at, as)
627+ let ct = D(this, cL)
617628 let cP = D(this, cN)
618- let cQ = D(this, cL)
619- let cR = bU(at, as, bx, 0)
620- let ce = cR._1
621- let cr = cR._2
622- let bT = cR._3
629+ let cQ = D(this, cO)
630+ let cR = D(this, cM)
631+ let cS = bU(at, as, bx, 0)
632+ let ce = cS._1
633+ let cr = cS._2
634+ let bT = cS._3
623635 let cu = max([(ce - ct), g])
624636 if ((g >= cu))
625- then throw("nothing to claim")
637+ then if (cv)
638+ then throw("nothing to claim")
639+ else $Tuple2(nil, 0)
626640 else {
627- let cS = max([p(l(invoke(aZ, "claimWxBoost", [at, as], nil))[0]), 0])
628- let cT = cu
629- let cU = min([(cT * toBigInt(2)), toBigInt(cS)])
630- let cV = (cT + cU)
631- let cW = t(l(invoke(aY, "emit", [toInt(cT)], nil))[0])
632- let cX = l(invoke(aY, "emit", [toInt(cU)], nil))
633- if ((cX == cX))
641+ let cT = max([p(l(invoke(aZ, "claimWxBoost", [at, as], nil))[0]), 0])
642+ let cU = cu
643+ let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
644+ let cW = (cU + cV)
645+ let cX = t(l(invoke(aY, "emit", [toInt(cU)], nil))[0])
646+ let cY = l(invoke(aY, "emit", [toInt(cV)], nil))
647+ if ((cY == cY))
634648 then {
635- let cY = (ct + cu)
636- let cZ = (cO + cT)
637- let da = (cO + cT)
638- let db = (cO + cT)
639- $Tuple2([StringEntry(cK, toString(cY)), StringEntry(cM, toString(cZ)), StringEntry(cN, toString(da)), StringEntry(cL, toString(db)), ScriptTransfer(aD, toInt(cT), cW), ScriptTransfer(aD, toInt(cU), cW), aU("claim", as, at, toInt(cu), cl.transactionId)], toInt(cV))
649+ let cZ = (ct + cu)
650+ let da = (cP + cU)
651+ let db = (cP + cU)
652+ let dc = (cP + cU)
653+ $Tuple2([StringEntry(cL, toString(cZ)), StringEntry(cN, toString(da)), StringEntry(cO, toString(db)), StringEntry(cM, toString(dc)), ScriptTransfer(aD, toInt(cU), cX), ScriptTransfer(aD, toInt(cV), cX), aU("claim", as, at, toInt(cu), cl.transactionId)], toInt(cW))
640654 }
641655 else throw("Strict value is not equal to itself.")
642656 }
647661
648662
649663 @Callable(cl)
650-func claimWxBulkInternalREADONLY (dc,dd,as,de) = if ((dc == size(dd)))
651- then $Tuple2(nil, de)
664+func claimWxBulkInternalREADONLY (dd,de,as,df) = if ((dd == size(de)))
665+ then $Tuple2(nil, df)
652666 else {
653- let aB = dd[dc]
654- let df = split({
655- let dg = invoke(this, "claimWxREADONLY", [aB, as], nil)
656- if ($isInstanceOf(dg, "String"))
657- then dg
658- else throw(($getType(dg) + " couldn't be cast to String"))
667+ let aB = de[dd]
668+ let dg = split({
669+ let dh = invoke(this, "claimWxREADONLY", [aB, as], nil)
670+ if ($isInstanceOf(dh, "String"))
671+ then dh
672+ else throw(($getType(dh) + " couldn't be cast to String"))
659673 }, e)
660- let dh = df[3]
661- let di = df[4]
662- let dj = (de :+ makeString(["%d%d", dh, di], e))
663- let dk = {
664- let dg = invoke(this, "claimWxBulkInternalREADONLY", [(dc + 1), dd, as, dj], nil)
665- if ($isInstanceOf(dg, "List[Any]"))
666- then dg
667- else throw(($getType(dg) + " couldn't be cast to List[Any]"))
674+ let di = dg[3]
675+ let dj = dg[4]
676+ let dk = (df :+ makeString(["%d%d", di, dj], e))
677+ let dl = {
678+ let dh = invoke(this, "claimWxBulkInternalREADONLY", [(dd + 1), de, as, dk], nil)
679+ if ($isInstanceOf(dh, "List[Any]"))
680+ then dh
681+ else throw(($getType(dh) + " couldn't be cast to List[Any]"))
668682 }
669- if ((dk == dk))
670- then $Tuple2(nil, dk)
683+ if ((dl == dl))
684+ then $Tuple2(nil, dl)
671685 else throw("Strict value is not equal to itself.")
672686 }
673687
674688
675689
676690 @Callable(cl)
677-func claimWxBulkREADONLY (dd,as) = {
678- let dj = invoke(this, "claimWxBulkInternalREADONLY", [0, dd, as, nil], nil)
679- $Tuple2(nil, dj)
691+func claimWxBulkREADONLY (de,as) = {
692+ let dk = invoke(this, "claimWxBulkInternalREADONLY", [0, de, as, nil], nil)
693+ $Tuple2(nil, dk)
680694 }
681695
682696
685699 func claimWxREADONLY (at,as) = {
686700 let bY = ar(as, at)
687701 let bz = au(at)
688- let cK = av(at, as)
702+ let cL = av(at, as)
689703 let bs = az(bY)
690704 let bA = az(bz)
691- let ct = D(this, cK)
705+ let ct = D(this, cL)
692706 let bx = y(aX, ac(at))
693707 let bC = getIntegerValue(aX, ad(bx))
694- let dl = C(aY, am())
708+ let dm = C(aY, am())
695709 let bD = C(aY, ao())
696- let dm = if ((bD > height))
710+ let dn = if ((bD > height))
697711 then 0
698712 else (height - bD)
699- let dn = fraction((dl * dm), bC, f)
700- let do = fraction(dn, bs, bA)
701- let dp = bU(at, as, bx, 0)
702- let ce = dp._1
703- let cr = dp._2
704- let bT = dp._3
713+ let do = fraction((dm * dn), bC, f)
714+ let dp = fraction(do, bs, bA)
715+ let dq = bU(at, as, bx, 0)
716+ let ce = dq._1
717+ let cr = dq._2
718+ let bT = dq._3
705719 let cu = max([(ce - ct), g])
706- let dq = l(invoke(aZ, "claimWxBoostREADONLY", [at, as], nil))
707- let cS = max([p(dq[0]), 0])
708- let dr = r(dq[1])
709- let cT = cu
710- let cU = min([(cT * toBigInt(2)), toBigInt(cS)])
711- let cV = (cT + cU)
712- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", at, as, toString(cV), toString(ct), toString(cT), toString(cU), "soon"], e))
720+ let dr = l(invoke(aZ, "claimWxBoostREADONLY", [at, as], nil))
721+ let cT = max([p(dr[0]), 0])
722+ let ds = r(dr[1])
723+ let cU = cu
724+ let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
725+ let cW = (cU + cV)
726+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", at, as, toString(cW), toString(ct), toString(cU), toString(cV), "soon"], e))
713727 }
714728
715729
724738
725739 @Callable(cl)
726740 func usersListTraversal (aB) = {
727- let cx = if ((toBase58String(cl.caller.bytes) == valueOrElse(getString(this, M()), "")))
741+ let cy = if ((toBase58String(cl.caller.bytes) == valueOrElse(getString(this, M()), "")))
728742 then true
729743 else cm(cl)
730- if ((cx == cx))
744+ if ((cy == cy))
731745 then {
732746 let be = bc(aB)
733- let ds = getString(bb(aB))
747+ let dt = getString(bb(aB))
734748 let bk = getString(bd(be))
735- let n = ds
749+ let n = dt
736750 if ($isInstanceOf(n, "Unit"))
737751 then {
738- let dt = bk
739- if ($isInstanceOf(dt, "Unit"))
752+ let du = bk
753+ if ($isInstanceOf(du, "Unit"))
740754 then $Tuple2(nil, false)
741- else if ($isInstanceOf(dt, "String"))
755+ else if ($isInstanceOf(du, "String"))
742756 then {
743- let du = dt
744- $Tuple2([StringEntry(bb(aB), du)], true)
757+ let dv = du
758+ $Tuple2([StringEntry(bb(aB), dv)], true)
745759 }
746760 else throw("Match error")
747761 }
752766 let cp = y(aX, ac(aB))
753767 let ce = bU(aB, aD, cp, 0)._1
754768 let cu = (ce - ct)
755- let cv = if ((cu > g))
756- then invoke(this, "claimWxINTERNAL", [aB, aD], nil)
769+ let cv = true
770+ let cw = if ((cu > g))
771+ then invoke(this, "claimWxINTERNAL", [aB, aD, cv], nil)
757772 else unit
758- if ((cv == cv))
773+ if ((cw == cw))
759774 then {
760- let dv = getString(bi(be, aD))
761- let dt = dv
762- if ($isInstanceOf(dt, "Unit"))
775+ let dw = getString(bi(be, aD))
776+ let du = dw
777+ if ($isInstanceOf(du, "Unit"))
763778 then $Tuple2([DeleteEntry(bb(aB))], false)
764- else if ($isInstanceOf(dt, "String"))
779+ else if ($isInstanceOf(du, "String"))
765780 then {
766- let dw = dt
767- $Tuple2([StringEntry(bb(aB), dw)], true)
781+ let dx = du
782+ $Tuple2([StringEntry(bb(aB), dx)], true)
768783 }
769784 else throw("Match error")
770785 }
781796 func onModifyWeight (at,bx) = if ((cl.caller != aX))
782797 then throw("permissions denied")
783798 else {
784- let dx = bw(at, bx, 0)
785- let bu = dx._1
786- let bW = dx._2
787- let bX = dx._3
799+ let dy = bw(at, bx, 0)
800+ let bu = dy._1
801+ let bW = dy._2
802+ let bX = dy._3
788803 bW
789804 }
790805
791806
792-@Verifier(dy)
793-func dz () = {
794- let dA = {
807+@Verifier(dz)
808+func dA () = {
809+ let dB = {
795810 let n = ch()
796811 if ($isInstanceOf(n, "ByteVector"))
797812 then {
799814 cn
800815 }
801816 else if ($isInstanceOf(n, "Unit"))
802- then dy.senderPublicKey
817+ then dz.senderPublicKey
803818 else throw("Match error")
804819 }
805- sigVerify(dy.bodyBytes, dy.proofs[0], dA)
820+ sigVerify(dz.bodyBytes, dz.proofs[0], dB)
806821 }
807822
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 = toBigInt(1)
1919
2020 func i (j) = makeString(["staking.ride:", toString(this), j], " ")
2121
2222
2323 func k (j) = throw(i(j))
2424
2525
2626 func l (m) = {
2727 let n = m
2828 if ($isInstanceOf(n, "List[Any]"))
2929 then {
3030 let o = n
3131 o
3232 }
3333 else throw("fail to cast into List[Any]")
3434 }
3535
3636
3737 func p (m) = {
3838 let n = m
3939 if ($isInstanceOf(n, "Int"))
4040 then {
4141 let q = n
4242 q
4343 }
4444 else throw("fail to cast into Int")
4545 }
4646
4747
4848 func r (m) = {
4949 let n = m
5050 if ($isInstanceOf(n, "String"))
5151 then {
5252 let s = n
5353 s
5454 }
5555 else throw("fail to cast into Int")
5656 }
5757
5858
5959 func t (m) = {
6060 let n = m
6161 if ($isInstanceOf(n, "ByteVector"))
6262 then {
6363 let u = n
6464 u
6565 }
6666 else throw("fail to cast into Int")
6767 }
6868
6969
7070 func v (w,x) = valueOrErrorMessage(getString(w, x), (("mandatory this." + x) + " is not defined"))
7171
7272
7373 func y (w,x) = valueOrErrorMessage(getString(w, x), (((("mandatory " + toString(w)) + ".") + x) + " is not defined"))
7474
7575
7676 func z (w,x) = valueOrElse(getInteger(w, x), 0)
7777
7878
7979 func A (w,x,B) = valueOrElse(getInteger(w, x), B)
8080
8181
8282 func C (w,x) = valueOrErrorMessage(getInteger(w, x), (("mandatory this." + x) + " is not defined"))
8383
8484
8585 func D (w,x) = value(parseBigInt(valueOrElse(getString(w, x), "0")))
8686
8787
8888 func E (w,x,B) = {
8989 let n = getString(w, x)
9090 if ($isInstanceOf(n, "String"))
9191 then {
9292 let F = n
9393 value(parseBigInt(F))
9494 }
9595 else if ($isInstanceOf(n, "Unit"))
9696 then B
9797 else throw("Match error")
9898 }
9999
100100
101101 func G (H,I) = fraction(toBigInt(H), d, toBigInt(I))
102102
103103
104104 func J (m,K) = toInt(fraction(m, toBigInt(K), d))
105105
106106
107107 func L () = "%s%s__config__factoryAddress"
108108
109109
110110 func M () = "%s__votingEmissionContract"
111111
112112
113113 let N = 1
114114
115115 let O = 2
116116
117117 let P = 3
118118
119119 let Q = 4
120120
121121 let R = 5
122122
123123 let S = 6
124124
125125 let T = 7
126126
127127 func U () = "%s__factoryConfig"
128128
129129
130130 func V () = "%s__managerPublicKey"
131131
132132
133133 func W () = "%s__pendingManagerPublicKey"
134134
135135
136136 func X () = "%s__stablePoolAddonAddr"
137137
138138
139139 func Y () = "%s__addonAddr"
140140
141141
142142 func Z (aa) = makeString(["%s%s%s", aa, "mappings__lpAsset2PoolContract"], e)
143143
144144
145145 func ab () = "%s__lpTokensList"
146146
147147
148148 func ac (aa) = makeString(["%s%s%s", aa, "mappings__lpAsset2PoolContract"], e)
149149
150150
151151 func ad (ae) = makeString(["%s%s", "poolWeight", ae], e)
152152
153153
154154 func af (ag) = split(valueOrElse(getString(ag, ab()), ""), e)
155155
156156
157157 func ah (ag) = split(y(ag, U()), e)
158158
159159
160160 func ai (aj) = addressFromStringValue(aj[O])
161161
162162
163163 func ak (aj) = addressFromStringValue(aj[R])
164164
165165
166166 func al (aj) = addressFromStringValue(aj[N])
167167
168168
169169 func am () = "%s%s__ratePerBlock__current"
170170
171171
172172 func an () = "%s%s__ratePerBlockMax__current"
173173
174174
175175 func ao () = "%s%s__emission__startBlock"
176176
177177
178178 func ap () = "%s%s__emission__duration"
179179
180180
181181 func aq () = "%s%s__emission__endBlock"
182182
183183
184184 func ar (as,at) = makeString(["%s%s%s__staked", as, at], e)
185185
186186
187187 func au (at) = ("%s%s%s__staked__total__" + at)
188188
189189
190190 func av (at,as) = makeString(["%s%s%s__claimed", as, at], e)
191191
192192
193193 func aw (at,as) = makeString(["%s%s%s__claimedMinReward", as, at], e)
194194
195195
196196 func ax (at,as) = makeString(["%s%s%s__claimedBoostReward", as, at], e)
197197
198198
199199 func ay (at) = makeString(["%s%s%s__claimed__total", at], e)
200200
201201
202202 func az (x) = valueOrElse(getInteger(this, x), 0)
203203
204204
205205 func aA (aB) = makeString(["%s%s%s", aB, "total", "bal"], e)
206206
207207
208208 func aC (aB,aD) = makeString(["%s%s%s", aB, aD, "bal"], e)
209209
210210
211211 func aE (aB) = makeString(["%s%s%s", aB, "total", "balINT"], e)
212212
213213
214214 func aF (aB,aD) = makeString(["%s%s%s", aB, aD, "balINT"], e)
215215
216216
217217 func aG (aB) = makeString(["%s%s%s", aB, "total", "lastUpd"], e)
218218
219219
220220 func aH (aB,aD) = makeString(["%s%s%s", aB, aD, "lastUpd"], e)
221221
222222
223223 func aI (aB) = makeString(["%s%s%s%s", aB, "common", "lpInt"], e)
224224
225225
226226 func aJ (aB) = makeString(["%s%s%s%s", aB, "common", "lpIntH"], e)
227227
228228
229229 func aK (aB,aD) = makeString(["%s%s%s%s", aB, aD, "lpInt"], e)
230230
231231
232232 func aL (aB,aD) = makeString(["%s%s%s%s", aB, aD, "lpIntH"], e)
233233
234234
235235 func aM (aB) = makeString(["%s", aB, "wxPerLp"], e)
236236
237237
238238 func aN (aB) = makeString(["%s", aB, "wxPerLpX18"], e)
239239
240240
241241 func aO (aB,aD) = makeString(["%s%s%s%s", aB, aD, "uIntL"], e)
242242
243243
244244 func aP (aQ,aD,aR) = makeString(["%s%s%s%s__history", aQ, aD, aR], e)
245245
246246
247247 func aS (aD,aB,aQ,aT) = makeString(["%s%s%s%d%d%d", aD, aB, aQ, toString(height), toString(lastBlock.timestamp), toString(aT)], e)
248248
249249
250250 func aU (aQ,aD,aB,aT,aV) = StringEntry(aP(aQ, aD, toBase58String(aV)), aS(aD, aB, aQ, aT))
251251
252252
253253 let aW = v(this, L())
254254
255255 let aX = addressFromStringValue(aW)
256256
257257 let aj = ah(aX)
258258
259259 let aY = ak(aj)
260260
261261 let aZ = ai(aj)
262262
263263 let ba = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], e)), i("lp_staking_pools contract address is undefined"))), i("invalid lp_staking_pools contract address"))
264264
265265 func bb (aB) = makeString(["%s%s", aB, "nextUser"], e)
266266
267267
268268 func bc (aB) = makeString(["users", aB], e)
269269
270270
271271 func bd (be) = makeString(["%s%s%s", be, "head"], e)
272272
273273
274274 func bf (be) = makeString(["%s%s%s", be, "size"], e)
275275
276276
277277 func bg (be,bh) = makeString(["%s%s%s%s", be, bh, "prev"], e)
278278
279279
280280 func bi (be,bh) = makeString(["%s%s%s%s", be, bh, "next"], e)
281281
282282
283283 func bj (be,bh) = {
284284 let bk = getString(this, bd(be))
285285 let bl = getString(this, bg(be, bh))
286286 let bm = getString(this, bi(be, bh))
287287 if (if ((bh == valueOrElse(bk, "")))
288288 then true
289289 else (bl != unit))
290290 then true
291291 else (bm != unit)
292292 }
293293
294294
295295 func bn (be,bh) = {
296296 let bk = getString(this, bd(be))
297297 let bo = valueOrElse(getInteger(this, bf(be)), 0)
298298 let bp = if (!(bj(be, bh)))
299299 then true
300300 else throw("Node exists")
301301 if ((bp == bp))
302302 then (([IntegerEntry(bf(be), (bo + 1))] ++ (if ((bk != unit))
303303 then [StringEntry(bi(be, bh), value(bk)), StringEntry(bg(be, value(bk)), bh)]
304304 else nil)) ++ [StringEntry(bd(be), bh)])
305305 else throw("Strict value is not equal to itself.")
306306 }
307307
308308
309309 func bq (be,bh) = {
310310 let bk = getString(this, bd(be))
311311 let bo = valueOrElse(getInteger(this, bf(be)), 0)
312312 let bl = getString(this, bg(be, bh))
313313 let bm = getString(this, bi(be, bh))
314314 ([IntegerEntry(bf(be), (bo - 1))] ++ (if (if ((bl != unit))
315315 then (bm != unit)
316316 else false)
317317 then [StringEntry(bi(be, value(bl)), value(bm)), StringEntry(bg(be, value(bm)), value(bl)), DeleteEntry(bg(be, bh)), DeleteEntry(bi(be, bh))]
318318 else if ((bm != unit))
319319 then [StringEntry(bd(be), value(bm)), DeleteEntry(bi(be, bh)), DeleteEntry(bg(be, value(bm)))]
320320 else if ((bl != unit))
321321 then [DeleteEntry(bg(be, bh)), DeleteEntry(bi(be, value(bl)))]
322322 else if ((bh == valueOrElse(bk, "")))
323323 then [DeleteEntry(bd(be))]
324324 else throw(((("invalid node: " + be) + ".") + bh))))
325325 }
326326
327327
328328 func br (bs,bt,bu,bv) = if (if ((bt == g))
329329 then (bs > g)
330330 else false)
331331 then g
332332 else if ((bs == g))
333333 then bu
334334 else if (if ((bt > g))
335335 then (bs > g)
336336 else false)
337337 then value(parseBigInt(v(this, bv)))
338338 else throw("calcWxPerLpIntegralUserLast: unexpected state")
339339
340340
341341 func bw (at,bx,by) = {
342342 let bz = au(at)
343343 let bA = toBigInt(az(bz))
344344 let bB = if ((bA == g))
345345 then h
346346 else bA
347347 let bC = getIntegerValue(aX, ad(bx))
348348 let bD = C(aY, ao())
349349 let bE = 1000
350350 let bF = (C(aY, am()) * bE)
351351 let bG = fraction(bF, bC, (f * 3))
352352 let bH = aI(at)
353353 let bI = aJ(at)
354354 let bJ = aM(at)
355355 let bK = A(this, bI, bD)
356356 let bL = D(this, bH)
357357 let bM = 0
358358 let bN = max([(height - bK), 0])
359359 let bO = if ((bM != 0))
360360 then toBigInt(bM)
361361 else fraction(toBigInt(bG), toBigInt(b), bB)
362362 let bP = (bA + toBigInt(by))
363363 let bQ = if ((bP == g))
364364 then h
365365 else bP
366366 let bu = (bL + (bO * toBigInt(bN)))
367367 let bR = (toBigInt(bG) / bQ)
368368 let bS = height
369369 let bT = makeString([toString(bu), toString(bN), toString(bO), toString(bA), toString(bG), toString(bF), toString(bC)], "::")
370370 $Tuple3(bu, [StringEntry(bH, toString(bu)), IntegerEntry(bI, bS), StringEntry(bJ, toString(bR))], bT)
371371 }
372372
373373
374374 func bU (at,as,bx,by) = {
375375 let bV = bw(at, bx, by)
376376 let bu = bV._1
377377 let bW = bV._2
378378 let bX = bV._3
379379 let bE = 1000
380380 let bY = ar(as, at)
381381 let bs = az(bY)
382382 let bZ = aK(at, as)
383383 let ca = aL(at, as)
384384 let bv = aO(at, as)
385385 let cb = D(this, bZ)
386386 let bt = z(this, ca)
387387 let cc = br(toBigInt(bs), toBigInt(bt), bu, bv)
388388 let cd = (b * bE)
389389 let ce = max([(cb + fraction((bu - cc), toBigInt(bs), toBigInt(cd))), g])
390390 let cf = bu
391391 let cg = height
392392 let bT = makeString([toString(cb), toString(cc), toString(bs), bX, toString(height)], "::")
393393 $Tuple3(ce, (bW ++ [StringEntry(bZ, toString(ce)), IntegerEntry(ca, cg), StringEntry(bv, toString(cf))]), bT)
394394 }
395395
396396
397397 func ch () = {
398398 let n = getString(V())
399399 if ($isInstanceOf(n, "String"))
400400 then {
401401 let F = n
402402 fromBase58String(F)
403403 }
404404 else if ($isInstanceOf(n, "Unit"))
405405 then unit
406406 else throw("Match error")
407407 }
408408
409409
410410 func ci () = {
411411 let n = getString(W())
412412 if ($isInstanceOf(n, "String"))
413413 then {
414414 let F = n
415415 fromBase58String(F)
416416 }
417417 else if ($isInstanceOf(n, "Unit"))
418418 then unit
419419 else throw("Match error")
420420 }
421421
422422
423423 let cj = throw("Permission denied")
424424
425425 func ck (cl) = if ((cl.caller == this))
426426 then true
427427 else cj
428428
429429
430430 func cm (cl) = {
431431 let n = ch()
432432 if ($isInstanceOf(n, "ByteVector"))
433433 then {
434434 let cn = n
435435 if ((cl.callerPublicKey == cn))
436436 then true
437437 else cj
438438 }
439439 else if ($isInstanceOf(n, "Unit"))
440440 then if ((cl.caller == this))
441441 then true
442442 else cj
443443 else throw("Match error")
444444 }
445445
446446
447447 func co (cl,aB,cp,aD,cq,aT) = {
448448 let as = toString(aD)
449449 let at = toBase58String(aB)
450450 let bx = toString(cp)
451451 let bY = ar(as, at)
452452 let bz = au(at)
453453 let bs = az(bY)
454454 let bA = az(bz)
455455 let cr = bU(at, as, bx, -(aT))._2
456456 let be = bc(at)
457457 let cs = if (if (bj(be, as))
458458 then (aT == bs)
459459 else false)
460460 then bq(be, as)
461461 else nil
462462 let ct = D(this, av(at, as))
463463 let ce = bU(at, as, bx, 0)._1
464464 let cu = (ce - ct)
465- let cv = if ((cu > g))
466- then invoke(this, "claimWxINTERNAL", [at, as], nil)
465+ let cv = true
466+ let cw = if ((cu > g))
467+ then invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
467468 else unit
468- if ((cv == cv))
469+ if ((cw == cw))
469470 then if ((aT > bs))
470471 then throw(((((((("passed amount=" + toString(aT)) + " is greater than available=") + toString(bs)) + ". lpAssetId=") + at) + ". stakedByUserKEY=") + bY))
471472 else (([IntegerEntry(bY, (bs - aT)), IntegerEntry(bz, (bA - aT)), ScriptTransfer(cq, aT, aB), aU("unstake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
472473 else throw("Strict value is not equal to itself.")
473474 }
474475
475476
476477 @Callable(cl)
477-func constructor (cw) = {
478- let cx = cm(cl)
479- if ((cx == cx))
480- then [StringEntry(L(), cw)]
478+func constructor (cx) = {
479+ let cy = cm(cl)
480+ if ((cy == cy))
481+ then [StringEntry(L(), cx)]
481482 else throw("Strict value is not equal to itself.")
482483 }
483484
484485
485486
486487 @Callable(cl)
487-func constructorV2 (cy) = {
488- let cz = [cm(cl), if ((addressFromString(cy) != unit))
488+func constructorV2 (cz) = {
489+ let cA = [cm(cl), if ((addressFromString(cz) != unit))
489490 then true
490491 else "invalid voting emission contract address"]
491- if ((cz == cz))
492- then [StringEntry(M(), cy)]
492+ if ((cA == cA))
493+ then [StringEntry(M(), cz)]
493494 else throw("Strict value is not equal to itself.")
494495 }
495496
496497
497498
498499 @Callable(cl)
499-func setManager (cA) = {
500- let cx = cm(cl)
501- if ((cx == cx))
500+func setManager (cB) = {
501+ let cy = cm(cl)
502+ if ((cy == cy))
502503 then {
503- let cB = fromBase58String(cA)
504- if ((cB == cB))
505- then [StringEntry(W(), cA)]
504+ let cC = fromBase58String(cB)
505+ if ((cC == cC))
506+ then [StringEntry(W(), cB)]
506507 else throw("Strict value is not equal to itself.")
507508 }
508509 else throw("Strict value is not equal to itself.")
509510 }
510511
511512
512513
513514 @Callable(cl)
514515 func confirmManager () = {
515- let cC = ci()
516- let cD = if (isDefined(cC))
516+ let cD = ci()
517+ let cE = if (isDefined(cD))
517518 then true
518519 else throw("No pending manager")
519- if ((cD == cD))
520+ if ((cE == cE))
520521 then {
521- let cE = if ((cl.callerPublicKey == value(cC)))
522+ let cF = if ((cl.callerPublicKey == value(cD)))
522523 then true
523524 else throw("You are not pending manager")
524- if ((cE == cE))
525- then [StringEntry(V(), toBase58String(value(cC))), DeleteEntry(W())]
525+ if ((cF == cF))
526+ then [StringEntry(V(), toBase58String(value(cD))), DeleteEntry(W())]
526527 else throw("Strict value is not equal to itself.")
527528 }
528529 else throw("Strict value is not equal to itself.")
529530 }
530531
531532
532533
533534 @Callable(cl)
534535 func stake () = if ((size(cl.payments) != 1))
535536 then throw("invalid payment - exact one payment must be attached")
536537 else {
537- let cF = cl.payments[0]
538- let aB = value(cF.assetId)
538+ let cG = cl.payments[0]
539+ let aB = value(cG.assetId)
539540 let at = toBase58String(aB)
540- let aT = cF.amount
541+ let aT = cG.amount
541542 let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
542- let cG = toString(cl.caller)
543- let as = if ((cG == bx))
543+ let cH = toString(cl.caller)
544+ let as = if ((cH == bx))
544545 then toString(cl.originCaller)
545- else cG
546+ else cH
546547 let bY = ar(as, at)
547548 let bz = au(at)
548549 let bs = az(bY)
549550 let bA = az(bz)
550- let cH = bU(at, as, bx, aT)
551- let ce = cH._1
552- let cr = cH._2
553- let bT = cH._3
551+ let cI = bU(at, as, bx, aT)
552+ let ce = cI._1
553+ let cr = cI._2
554+ let bT = cI._3
554555 let be = bc(at)
555556 let cs = if (bj(be, as))
556557 then nil
557558 else bn(be, as)
558559 (([IntegerEntry(bY, (bs + aT)), IntegerEntry(bz, (bA + aT)), aU("stake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
559560 }
560561
561562
562563
563564 @Callable(cl)
564565 func unstake (at,aT) = {
565566 let aB = fromBase58String(at)
566567 let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
567568 let cp = addressFromStringValue(bx)
568- let cI = valueOrElse(getString(cp, Y()), bx)
569- let cG = toString(cl.caller)
570- let aD = if (if ((cG == bx))
569+ let cJ = valueOrElse(getString(cp, Y()), bx)
570+ let cH = toString(cl.caller)
571+ let aD = if (if ((cH == bx))
571572 then true
572- else (cG == cI))
573+ else (cH == cJ))
573574 then cl.originCaller
574575 else cl.caller
575576 let cq = cl.caller
576577 co(cl, aB, cp, aD, cq, aT)
577578 }
578579
579580
580581
581582 @Callable(cl)
582583 func unstakeINTERNAL (aB,aT,aD,cq) = {
583584 let at = toBase58String(aB)
584585 let cp = addressFromStringValue(valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at)))
585- let cx = if ((cl.caller == cp))
586+ let cy = if ((cl.caller == cp))
586587 then true
587588 else cj
588- if ((cx == cx))
589+ if ((cy == cy))
589590 then co(cl, aB, cp, Address(aD), Address(cq), aT)
590591 else throw("Strict value is not equal to itself.")
591592 }
592593
593594
594595
595596 @Callable(cl)
596597 func claimWx (at) = {
597598 let as = toString(cl.caller)
598- let cJ = invoke(this, "claimWxINTERNAL", [at, as], nil)
599- $Tuple2(nil, cJ)
599+ let cv = true
600+ let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
601+ $Tuple2(nil, cK)
600602 }
601603
602604
603605
604606 @Callable(cl)
605-func claimWxINTERNAL (at,as) = {
606- let cx = ck(cl)
607- if ((cx == cx))
607+func claimWxDoNotThrow (at) = {
608+ let as = toString(cl.caller)
609+ let cv = false
610+ let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
611+ $Tuple2(nil, cK)
612+ }
613+
614+
615+
616+@Callable(cl)
617+func claimWxINTERNAL (at,as,cv) = {
618+ let cy = ck(cl)
619+ if ((cy == cy))
608620 then {
609621 let aD = valueOrErrorMessage(addressFromString(as), "claimWxINTERNAL: invalid user address")
610622 let bx = y(aX, ac(at))
611- let cK = av(at, as)
612- let cL = ay(at)
613- let cM = aw(at, as)
614- let cN = ax(at, as)
615- let ct = D(this, cK)
616- let cO = D(this, cM)
623+ let cL = av(at, as)
624+ let cM = ay(at)
625+ let cN = aw(at, as)
626+ let cO = ax(at, as)
627+ let ct = D(this, cL)
617628 let cP = D(this, cN)
618- let cQ = D(this, cL)
619- let cR = bU(at, as, bx, 0)
620- let ce = cR._1
621- let cr = cR._2
622- let bT = cR._3
629+ let cQ = D(this, cO)
630+ let cR = D(this, cM)
631+ let cS = bU(at, as, bx, 0)
632+ let ce = cS._1
633+ let cr = cS._2
634+ let bT = cS._3
623635 let cu = max([(ce - ct), g])
624636 if ((g >= cu))
625- then throw("nothing to claim")
637+ then if (cv)
638+ then throw("nothing to claim")
639+ else $Tuple2(nil, 0)
626640 else {
627- let cS = max([p(l(invoke(aZ, "claimWxBoost", [at, as], nil))[0]), 0])
628- let cT = cu
629- let cU = min([(cT * toBigInt(2)), toBigInt(cS)])
630- let cV = (cT + cU)
631- let cW = t(l(invoke(aY, "emit", [toInt(cT)], nil))[0])
632- let cX = l(invoke(aY, "emit", [toInt(cU)], nil))
633- if ((cX == cX))
641+ let cT = max([p(l(invoke(aZ, "claimWxBoost", [at, as], nil))[0]), 0])
642+ let cU = cu
643+ let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
644+ let cW = (cU + cV)
645+ let cX = t(l(invoke(aY, "emit", [toInt(cU)], nil))[0])
646+ let cY = l(invoke(aY, "emit", [toInt(cV)], nil))
647+ if ((cY == cY))
634648 then {
635- let cY = (ct + cu)
636- let cZ = (cO + cT)
637- let da = (cO + cT)
638- let db = (cO + cT)
639- $Tuple2([StringEntry(cK, toString(cY)), StringEntry(cM, toString(cZ)), StringEntry(cN, toString(da)), StringEntry(cL, toString(db)), ScriptTransfer(aD, toInt(cT), cW), ScriptTransfer(aD, toInt(cU), cW), aU("claim", as, at, toInt(cu), cl.transactionId)], toInt(cV))
649+ let cZ = (ct + cu)
650+ let da = (cP + cU)
651+ let db = (cP + cU)
652+ let dc = (cP + cU)
653+ $Tuple2([StringEntry(cL, toString(cZ)), StringEntry(cN, toString(da)), StringEntry(cO, toString(db)), StringEntry(cM, toString(dc)), ScriptTransfer(aD, toInt(cU), cX), ScriptTransfer(aD, toInt(cV), cX), aU("claim", as, at, toInt(cu), cl.transactionId)], toInt(cW))
640654 }
641655 else throw("Strict value is not equal to itself.")
642656 }
643657 }
644658 else throw("Strict value is not equal to itself.")
645659 }
646660
647661
648662
649663 @Callable(cl)
650-func claimWxBulkInternalREADONLY (dc,dd,as,de) = if ((dc == size(dd)))
651- then $Tuple2(nil, de)
664+func claimWxBulkInternalREADONLY (dd,de,as,df) = if ((dd == size(de)))
665+ then $Tuple2(nil, df)
652666 else {
653- let aB = dd[dc]
654- let df = split({
655- let dg = invoke(this, "claimWxREADONLY", [aB, as], nil)
656- if ($isInstanceOf(dg, "String"))
657- then dg
658- else throw(($getType(dg) + " couldn't be cast to String"))
667+ let aB = de[dd]
668+ let dg = split({
669+ let dh = invoke(this, "claimWxREADONLY", [aB, as], nil)
670+ if ($isInstanceOf(dh, "String"))
671+ then dh
672+ else throw(($getType(dh) + " couldn't be cast to String"))
659673 }, e)
660- let dh = df[3]
661- let di = df[4]
662- let dj = (de :+ makeString(["%d%d", dh, di], e))
663- let dk = {
664- let dg = invoke(this, "claimWxBulkInternalREADONLY", [(dc + 1), dd, as, dj], nil)
665- if ($isInstanceOf(dg, "List[Any]"))
666- then dg
667- else throw(($getType(dg) + " couldn't be cast to List[Any]"))
674+ let di = dg[3]
675+ let dj = dg[4]
676+ let dk = (df :+ makeString(["%d%d", di, dj], e))
677+ let dl = {
678+ let dh = invoke(this, "claimWxBulkInternalREADONLY", [(dd + 1), de, as, dk], nil)
679+ if ($isInstanceOf(dh, "List[Any]"))
680+ then dh
681+ else throw(($getType(dh) + " couldn't be cast to List[Any]"))
668682 }
669- if ((dk == dk))
670- then $Tuple2(nil, dk)
683+ if ((dl == dl))
684+ then $Tuple2(nil, dl)
671685 else throw("Strict value is not equal to itself.")
672686 }
673687
674688
675689
676690 @Callable(cl)
677-func claimWxBulkREADONLY (dd,as) = {
678- let dj = invoke(this, "claimWxBulkInternalREADONLY", [0, dd, as, nil], nil)
679- $Tuple2(nil, dj)
691+func claimWxBulkREADONLY (de,as) = {
692+ let dk = invoke(this, "claimWxBulkInternalREADONLY", [0, de, as, nil], nil)
693+ $Tuple2(nil, dk)
680694 }
681695
682696
683697
684698 @Callable(cl)
685699 func claimWxREADONLY (at,as) = {
686700 let bY = ar(as, at)
687701 let bz = au(at)
688- let cK = av(at, as)
702+ let cL = av(at, as)
689703 let bs = az(bY)
690704 let bA = az(bz)
691- let ct = D(this, cK)
705+ let ct = D(this, cL)
692706 let bx = y(aX, ac(at))
693707 let bC = getIntegerValue(aX, ad(bx))
694- let dl = C(aY, am())
708+ let dm = C(aY, am())
695709 let bD = C(aY, ao())
696- let dm = if ((bD > height))
710+ let dn = if ((bD > height))
697711 then 0
698712 else (height - bD)
699- let dn = fraction((dl * dm), bC, f)
700- let do = fraction(dn, bs, bA)
701- let dp = bU(at, as, bx, 0)
702- let ce = dp._1
703- let cr = dp._2
704- let bT = dp._3
713+ let do = fraction((dm * dn), bC, f)
714+ let dp = fraction(do, bs, bA)
715+ let dq = bU(at, as, bx, 0)
716+ let ce = dq._1
717+ let cr = dq._2
718+ let bT = dq._3
705719 let cu = max([(ce - ct), g])
706- let dq = l(invoke(aZ, "claimWxBoostREADONLY", [at, as], nil))
707- let cS = max([p(dq[0]), 0])
708- let dr = r(dq[1])
709- let cT = cu
710- let cU = min([(cT * toBigInt(2)), toBigInt(cS)])
711- let cV = (cT + cU)
712- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", at, as, toString(cV), toString(ct), toString(cT), toString(cU), "soon"], e))
720+ let dr = l(invoke(aZ, "claimWxBoostREADONLY", [at, as], nil))
721+ let cT = max([p(dr[0]), 0])
722+ let ds = r(dr[1])
723+ let cU = cu
724+ let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
725+ let cW = (cU + cV)
726+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", at, as, toString(cW), toString(ct), toString(cU), toString(cV), "soon"], e))
713727 }
714728
715729
716730
717731 @Callable(cl)
718732 func stakedByUserREADONLY (at,as) = {
719733 let bs = valueOrElse(getInteger(ar(as, at)), 0)
720734 $Tuple2(nil, bs)
721735 }
722736
723737
724738
725739 @Callable(cl)
726740 func usersListTraversal (aB) = {
727- let cx = if ((toBase58String(cl.caller.bytes) == valueOrElse(getString(this, M()), "")))
741+ let cy = if ((toBase58String(cl.caller.bytes) == valueOrElse(getString(this, M()), "")))
728742 then true
729743 else cm(cl)
730- if ((cx == cx))
744+ if ((cy == cy))
731745 then {
732746 let be = bc(aB)
733- let ds = getString(bb(aB))
747+ let dt = getString(bb(aB))
734748 let bk = getString(bd(be))
735- let n = ds
749+ let n = dt
736750 if ($isInstanceOf(n, "Unit"))
737751 then {
738- let dt = bk
739- if ($isInstanceOf(dt, "Unit"))
752+ let du = bk
753+ if ($isInstanceOf(du, "Unit"))
740754 then $Tuple2(nil, false)
741- else if ($isInstanceOf(dt, "String"))
755+ else if ($isInstanceOf(du, "String"))
742756 then {
743- let du = dt
744- $Tuple2([StringEntry(bb(aB), du)], true)
757+ let dv = du
758+ $Tuple2([StringEntry(bb(aB), dv)], true)
745759 }
746760 else throw("Match error")
747761 }
748762 else if ($isInstanceOf(n, "String"))
749763 then {
750764 let aD = n
751765 let ct = D(this, av(aB, aD))
752766 let cp = y(aX, ac(aB))
753767 let ce = bU(aB, aD, cp, 0)._1
754768 let cu = (ce - ct)
755- let cv = if ((cu > g))
756- then invoke(this, "claimWxINTERNAL", [aB, aD], nil)
769+ let cv = true
770+ let cw = if ((cu > g))
771+ then invoke(this, "claimWxINTERNAL", [aB, aD, cv], nil)
757772 else unit
758- if ((cv == cv))
773+ if ((cw == cw))
759774 then {
760- let dv = getString(bi(be, aD))
761- let dt = dv
762- if ($isInstanceOf(dt, "Unit"))
775+ let dw = getString(bi(be, aD))
776+ let du = dw
777+ if ($isInstanceOf(du, "Unit"))
763778 then $Tuple2([DeleteEntry(bb(aB))], false)
764- else if ($isInstanceOf(dt, "String"))
779+ else if ($isInstanceOf(du, "String"))
765780 then {
766- let dw = dt
767- $Tuple2([StringEntry(bb(aB), dw)], true)
781+ let dx = du
782+ $Tuple2([StringEntry(bb(aB), dx)], true)
768783 }
769784 else throw("Match error")
770785 }
771786 else throw("Strict value is not equal to itself.")
772787 }
773788 else throw("Match error")
774789 }
775790 else throw("Strict value is not equal to itself.")
776791 }
777792
778793
779794
780795 @Callable(cl)
781796 func onModifyWeight (at,bx) = if ((cl.caller != aX))
782797 then throw("permissions denied")
783798 else {
784- let dx = bw(at, bx, 0)
785- let bu = dx._1
786- let bW = dx._2
787- let bX = dx._3
799+ let dy = bw(at, bx, 0)
800+ let bu = dy._1
801+ let bW = dy._2
802+ let bX = dy._3
788803 bW
789804 }
790805
791806
792-@Verifier(dy)
793-func dz () = {
794- let dA = {
807+@Verifier(dz)
808+func dA () = {
809+ let dB = {
795810 let n = ch()
796811 if ($isInstanceOf(n, "ByteVector"))
797812 then {
798813 let cn = n
799814 cn
800815 }
801816 else if ($isInstanceOf(n, "Unit"))
802- then dy.senderPublicKey
817+ then dz.senderPublicKey
803818 else throw("Match error")
804819 }
805- sigVerify(dy.bodyBytes, dy.proofs[0], dA)
820+ sigVerify(dz.bodyBytes, dz.proofs[0], dB)
806821 }
807822

github/deemru/w8io/026f985 
125.02 ms