tx · J4Dzo4tQ5HRQ4U5oz8VGey6sMAc1NbEuSgCzDnvPGBCB

3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo:  -0.14000000 Waves

2022.03.24 18:45 [3043381] smart account 3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo > SELF 0.00000000 Waves

{ "type": 13, "id": "J4Dzo4tQ5HRQ4U5oz8VGey6sMAc1NbEuSgCzDnvPGBCB", "fee": 14000000, "feeAssetId": null, "timestamp": 1648138362949, "version": 1, "sender": "3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo", "senderPublicKey": "BRnVwSVctnV8pge5vRpsJdWnkjWEJspFb6QvrmZvu3Ht", "proofs": [ "43eaEwUXBtQikHLURFzMeNwJYaFqfibkNsQt326BZMRwcNLZhHks3tVkx9GSkYvma74Ljsg2qFP6eh7WKaSGqx5J", "5vFcFXmbGYuLbQ3TRsbKfNoEutqZTD92RbtuCKzwwJzhPFuhG5Jc61AkbNHjr36Qo3R9EDfVebF6R1DbXLc7BxbA", "5jJJkNJF4JEvVQ8WH7tRQ4B2MdvLs6eAfpcHRgFCPpzjthNmWVKyrC5Y1vFe9BmE61vMoCBfkCULC6fFkq5ZSgAN", "4cj8Vz1KXW8knNc88g6vuDjY8tyAUFsLkVU4Xx5DgcTB1r8JQ2WZhVsfuaP99Ei7LavJFZbq4SQsVAihksVJa5FJ" ], "script": "base64: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AA5JZHhHcm9zc0Ftb3VudAAAAAAAAAAAAgAAAAASTmV1dHJpbm9Bc3NldElkS2V5AgAAABFuZXV0cmlub19hc3NldF9pZAAAAAAOQm9uZEFzc2V0SWRLZXkCAAAADWJvbmRfYXNzZXRfaWQAAAAAEkF1Y3Rpb25Db250cmFjdEtleQIAAAAQYXVjdGlvbl9jb250cmFjdAAAAAAWTnNidFN0YWtpbmdDb250cmFjdEtleQIAAAATbnNidFN0YWtpbmdDb250cmFjdAAAAAAWTGlxdWlkYXRpb25Db250cmFjdEtleQIAAAAUbGlxdWlkYXRpb25fY29udHJhY3QAAAAADlJQRENvbnRyYWN0S2V5AgAAAAxycGRfY29udHJhY3QAAAAAEUNvbnRvbENvbnRyYWN0S2V5AgAAABBjb250cm9sX2NvbnRyYWN0AAAAAA9NYXRoQ29udHJhY3RLZXkCAAAADW1hdGhfY29udHJhY3QAAAAAG0JhbGFuY2VXYXZlc0xvY2tJbnRlcnZhbEtleQIAAAAbYmFsYW5jZV93YXZlc19sb2NrX2ludGVydmFsAAAAAB5CYWxhbmNlTmV1dHJpbm9Mb2NrSW50ZXJ2YWxLZXkCAAAAHmJhbGFuY2VfbmV1dHJpbm9fbG9ja19pbnRlcnZhbAAAAAAVTWluV2F2ZXNTd2FwQW1vdW50S2V5AgAAABVtaW5fd2F2ZXNfc3dhcF9hbW91bnQAAAAAGE1pbk5ldXRyaW5vU3dhcEFtb3VudEtleQIAAAAYbWluX25ldXRyaW5vX3N3YXBfYW1vdW50AAAAABtOb2RlT3JhY2xlUHJvdmlkZXJQdWJLZXlLZXkCAAAAFG5vZGVfb3JhY2xlX3Byb3ZpZGVyAAAAABVOZXV0cmlub091dEZlZVBhcnRLZXkCAAAAGG5ldXRyaW5vT3V0X3N3YXBfZmVlUGFydAAAAAASV2F2ZXNPdXRGZWVQYXJ0S2V5AgAAABV3YXZlc091dF9zd2FwX2ZlZVBhcnQAAAAAFUZlZXNNYW5hZ2VyQWRkcmVzc0tleQIAAAAUZmVlc19tYW5hZ2VyX2FkZHJlc3MAAAAACFByaWNlS2V5AgAAAAVwcmljZQAAAAANUHJpY2VJbmRleEtleQIAAAALcHJpY2VfaW5kZXgAAAAADElzQmxvY2tlZEtleQIAAAAKaXNfYmxvY2tlZAEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAACFByaWNlS2V5AgAAAAFfCQABpAAAAAEFAAAABWJsb2NrAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABAAAABWluZGV4CQABLAAAAAIJAAEsAAAAAgUAAAANUHJpY2VJbmRleEtleQIAAAABXwkAAaQAAAABBQAAAAVpbmRleAEAAAAVZ2V0U3Rha2luZ05vZGVCeUluZGV4AAAAAQAAAANpZHgJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVkJXMJAARMAAAAAgIAAAAFbGVhc2UJAARMAAAAAgkAAaQAAAABBQAAAANpZHgJAARMAAAAAgIAAAALbm9kZUFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAABxnZXRTdGFraW5nTm9kZUFkZHJlc3NCeUluZGV4AAAAAQAAAANpZHgJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABVnZXRTdGFraW5nTm9kZUJ5SW5kZXgAAAABBQAAAANpZHgBAAAAH2dldFJlc2VydmVkQW1vdW50Rm9yU3BvbnNvcnNoaXAAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAABWxlYXNlCQAETAAAAAICAAAAF3Nwb25zb3JzaGlwV2F2ZXNSZXNlcnZlBQAAAANuaWwFAAAAA1NFUAkAAGgAAAACAAAAAAAAAAPoBQAAAAdXQVZFTEVUAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABAAAABW93bmVyCQABLAAAAAICAAAAFWJhbGFuY2VfdW5sb2NrX2Jsb2NrXwUAAAAFb3duZXIBAAAADWdldExlYXNlSWRLZXkAAAABAAAACW5vZGVJbmRleAkABLkAAAACCQAETAAAAAICAAAABiVzJWQlcwkABEwAAAACAgAAAAVsZWFzZQkABEwAAAACCQABpAAAAAEFAAAACW5vZGVJbmRleAkABEwAAAACAgAAAAJpZAUAAAADbmlsBQAAAANTRVABAAAAEWdldExlYXNlQW1vdW50S2V5AAAAAQAAAAlub2RlSW5kZXgJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVkJXMJAARMAAAAAgIAAAAFbGVhc2UJAARMAAAAAgkAAaQAAAABBQAAAAlub2RlSW5kZXgJAARMAAAAAgIAAAAGYW1vdW50BQAAAANuaWwFAAAAA1NFUAEAAAAQbWluU3dhcEFtb3VudEtFWQAAAAEAAAAIc3dhcFR5cGUJAAEsAAAAAgkAASwAAAACAgAAAARtaW5fBQAAAAhzd2FwVHlwZQIAAAAMX3N3YXBfYW1vdW50AQAAAA50b3RhbExvY2tlZEtFWQAAAAEAAAAIc3dhcFR5cGUJAAEsAAAAAgIAAAANYmFsYW5jZV9sb2NrXwUAAAAIc3dhcFR5cGUBAAAAFHRvdGFsTG9ja2VkQnlVc2VyS0VZAAAAAgAAAAhzd2FwVHlwZQAAAAVvd25lcgkABLkAAAACCQAETAAAAAICAAAADGJhbGFuY2VfbG9jawkABEwAAAACBQAAAAhzd2FwVHlwZQkABEwAAAACBQAAAAVvd25lcgUAAAADbmlsAgAAAAFfAQAAABZiYWxhbmNlTG9ja0ludGVydmFsS0VZAAAAAQAAAAhzd2FwVHlwZQkAASwAAAACCQABLAAAAAICAAAACGJhbGFuY2VfBQAAAAhzd2FwVHlwZQIAAAAOX2xvY2tfaW50ZXJ2YWwBAAAAGm5vZGVCYWxhbmNlTG9ja0ludGVydmFsS0VZAAAAAAIAAAAaYmFsYW5jZV9ub2RlX2xvY2tfaW50ZXJ2YWwBAAAADW91dEZlZVBhcnRLRVkAAAABAAAACHN3YXBUeXBlCQABLAAAAAIFAAAACHN3YXBUeXBlAgAAABBPdXRfc3dhcF9mZWVQYXJ0AQAAABFzd2Fwc1RpbWVmcmFtZUtFWQAAAAACAAAAD3N3YXBzX3RpbWVmcmFtZQEAAAARbWluU3dhcEFtb3VudFJFQUQAAAABAAAACHN3YXBUeXBlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABBtaW5Td2FwQW1vdW50S0VZAAAAAQUAAAAIc3dhcFR5cGUAAAAAAAAAAAABAAAAEnN3YXBzVGltZWZyYW1lUkVBRAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAEXN3YXBzVGltZWZyYW1lS0VZAAAAAAAAAAAAAAAFoAEAAAAPdG90YWxMb2NrZWRSRUFEAAAAAQAAAAhzd2FwVHlwZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAOdG90YWxMb2NrZWRLRVkAAAABBQAAAAhzd2FwVHlwZQAAAAAAAAAAAAEAAAAVdG90YWxMb2NrZWRCeVVzZXJSRUFEAAAAAgAAAAhzd2FwVHlwZQAAAAVvd25lcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAUdG90YWxMb2NrZWRCeVVzZXJLRVkAAAACBQAAAAhzd2FwVHlwZQUAAAAFb3duZXIAAAAAAAAAAAABAAAAF2JhbGFuY2VMb2NrSW50ZXJ2YWxSRUFEAAAAAQAAAAhzd2FwVHlwZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAWYmFsYW5jZUxvY2tJbnRlcnZhbEtFWQAAAAEFAAAACHN3YXBUeXBlAAAAAAAAAAWgAQAAABtub2RlQmFsYW5jZUxvY2tJbnRlcnZhbFJFQUQAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABpub2RlQmFsYW5jZUxvY2tJbnRlcnZhbEtFWQAAAAAAAAAAAAAAAAEBAAAAGGtleVN3YXBVc2VyU3BlbnRJblBlcmlvZAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAAFXN3YXBVc2VyU3BlbnRJblBlcmlvZAkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAFWtleVVzZXJMYXN0U3dhcEhlaWdodAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAAEnVzZXJMYXN0U3dhcEhlaWdodAkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAFWZlZU1hbmFnZXJBZGRyZXNzUkVBRAAAAAAJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAVRmVlc01hbmFnZXJBZGRyZXNzS2V5CQABLAAAAAIFAAAAFUZlZXNNYW5hZ2VyQWRkcmVzc0tleQIAAAARIGlzIG5vdCBzcGVjaWZpZWQJAAEsAAAAAgUAAAAVRmVlc01hbmFnZXJBZGRyZXNzS2V5AgAAABcgaW52YWxpZCBhZGRyZXNzIGZvcm1hdAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAhQUklDRUxFVAUAAAAFcHJpY2UFAAAAB1dBVkVMRVQFAAAABVBBVUxJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQFAAAABXByaWNlBQAAAAhQUklDRUxFVAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UBAAAAFmNvbnZlcnRKc29uQXJyYXlUb0xpc3QAAAABAAAACWpzb25BcnJheQkABLUAAAACBQAAAAlqc29uQXJyYXkCAAAAASwBAAAAEW1pblN3YXBBbW91bnRGQUlMAAAAAgAAAAhzd2FwVHlwZQAAAA1taW5Td2FwQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAGFRoZSBzcGVjaWZpZWQgYW1vdW50IGluIAUAAAAIc3dhcFR5cGUCAAAAKyBzd2FwIGlzIGxlc3MgdGhhbiB0aGUgcmVxdWlyZWQgbWluaW11bSBvZiAJAAGkAAAAAQUAAAANbWluU3dhcEFtb3VudAEAAAAVZW1lcmdlbmN5U2h1dGRvd25GQUlMAAAAAAkAAAIAAAABAgAAAFpjb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTiBhY3Rpb25zIHVudGlsbCByZWFjdGl2YXRpb24gYnkgZW1lcmdlbmN5IG9yYWNsZXMBAAAADnByaWNlSW5kZXhGQUlMAAAABQAAAAVpbmRleAAAAApwcmljZUluZGV4AAAAC2luZGV4SGVpZ2h0AAAADHVubG9ja0hlaWdodAAAAA9wcmV2SW5kZXhIZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAjaW52YWxpZCBwcmljZSBoaXN0b3J5IGluZGV4OiBpbmRleD0JAAGkAAAAAQUAAAAFaW5kZXgCAAAADCBwcmljZUluZGV4PQkAAaQAAAABBQAAAApwcmljZUluZGV4AgAAAA0gaW5kZXhIZWlnaHQ9CQABpAAAAAEFAAAAC2luZGV4SGVpZ2h0AgAAAA4gdW5sb2NrSGVpZ2h0PQkAAaQAAAABBQAAAAx1bmxvY2tIZWlnaHQCAAAAESBwcmV2SW5kZXhIZWlnaHQ9CQABpAAAAAEFAAAAD3ByZXZJbmRleEhlaWdodAAAAAATbGlxdWlkYXRpb25Db250cmFjdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAWTGlxdWlkYXRpb25Db250cmFjdEtleQAAAAAWbnNidFN0YWtpbmdDb250cmFjdFN0cgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAWTnNidFN0YWtpbmdDb250cmFjdEtleQAAAAAPbmV1dHJpbm9Bc3NldElkCQACWQAAAAEJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEk5ldXRyaW5vQXNzZXRJZEtleQAAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABJBdWN0aW9uQ29udHJhY3RLZXkAAAAAC3JwZENvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA5SUERDb250cmFjdEtleQAAAAAPY29udHJvbENvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABFDb250b2xDb250cmFjdEtleQAAAAATbWF0aENvbnRyYWN0QWRkcmVzcwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAPTWF0aENvbnRyYWN0S2V5AAAAAApwcmljZUluZGV4CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAA1QcmljZUluZGV4S2V5AAAAAAlpc0Jsb2NrZWQJAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAAxJc0Jsb2NrZWRLZXkAAAAAGG5vZGVPcmFjbGVQcm92aWRlclB1YktleQkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABtOb2RlT3JhY2xlUHJvdmlkZXJQdWJLZXlLZXkAAAAAC2JvbmRBc3NldElkCQACWQAAAAECAAAALDZuU3BWeU5IN3lNNjllZzQ0NndyUVI5NGlwYmJjbVpNVTFFTlB3YW5DOTdnAAAAABVkZXByZWNhdGVkQm9uZEFzc2V0SWQJAAJZAAAAAQIAAAAsOTc1YWtaQmZuTWo1MTNVN01aYUhLelFybXNFeDVhRTN3ZFdLVHJIQmhiakYAAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAABHRoaXMAAAAADG1hdGhDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAATbWF0aENvbnRyYWN0QWRkcmVzcwAAAAATbnNidFN0YWtpbmdDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWbnNidFN0YWtpbmdDb250cmFjdFN0cgAAAAAMY3VycmVudFByaWNlCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAAhQcmljZUtleQEAAAAbY2hlY2tJc1ZhbGlkTWluU3BvbnNvcmVkRmVlAAAAAQAAAAJ0eAQAAAAOTUlOVFJBTlNGRVJGRUUAAAAAAAABhqAEAAAAFlNwb25zb3JlZEZlZVVwcGVyQm91bmQAAAAAAAAAA+gEAAAAD3JlYWxOZXV0cmlub0ZlZQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAA5NSU5UUkFOU0ZFUkZFRQUAAAAMY3VycmVudFByaWNlBAAAAA5taW5OZXV0cmlub0ZlZQkAAGgAAAACBQAAAA9yZWFsTmV1dHJpbm9GZWUAAAAAAAAAAAIEAAAADm1heE5ldXRyaW5vRmVlCQAAawAAAAMFAAAAD3JlYWxOZXV0cmlub0ZlZQUAAAAWU3BvbnNvcmVkRmVlVXBwZXJCb3VuZAAAAAAAAAAAZAQAAAAIaW5wdXRGZWUJAQAAAAV2YWx1ZQAAAAEIBQAAAAJ0eAAAABRtaW5TcG9uc29yZWRBc3NldEZlZQMDCQAAZwAAAAIFAAAACGlucHV0RmVlBQAAAA5taW5OZXV0cmlub0ZlZQkAAGcAAAACBQAAAA5tYXhOZXV0cmlub0ZlZQUAAAAIaW5wdXRGZWUHCQAAAAAAAAIIBQAAAAJ0eAAAAAdhc3NldElkBQAAAA9uZXV0cmlub0Fzc2V0SWQHAQAAAA9nZXRQcmljZUhpc3RvcnkAAAABAAAABWJsb2NrCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0CQEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQUAAAAFYmxvY2sBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEAAAAFaW5kZXgJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QJAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABBQAAAAVpbmRleAEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgIAAAALcGFyYW1CeVVzZXIJAARMAAAAAgUAAAALdXNlckFkZHJlc3MJAARMAAAAAgIAAAAGYW1vdW50BQAAAANuaWwFAAAAA1NFUAAAAAAMc0lkeFN3YXBUeXBlAAAAAAAAAAABAAAAAApzSWR4U3RhdHVzAAAAAAAAAAACAAAAAAxzSWR4SW5BbW91bnQAAAAAAAAAAAMA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c2VBbW91bnQIBQAAAAlub2RlVHVwbGUAAAACXzIDCQAAZgAAAAIFAAAADm5ld0xlYXNlQW1vdW50AAAAAAAAAAAABAAAAApsZWFzZUlkS2V5CQEAAAANZ2V0TGVhc2VJZEtleQAAAAEFAAAACW5vZGVJbmRleAQAAAAIb2xkTGVhc2UJAAQcAAAAAgUAAAAEdGhpcwUAAAAKbGVhc2VJZEtleQQAAAAOdW5sZWFzZU9yRW1wdHkDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAIb2xkTGVhc2UJAARMAAAAAgkBAAAAC0xlYXNlQ2FuY2VsAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAIb2xkTGVhc2UFAAAAA25pbAUAAAADbmlsBAAAAA5sZWFzZUFtb3VudEtleQkBAAAAEWdldExlYXNlQW1vdW50S2V5AAAAAQUAAAAJbm9kZUluZGV4BAAAAAVsZWFzZQkABEQAAAACCQEAAAAcZ2V0U3Rha2luZ05vZGVBZGRyZXNzQnlJbmRleAAAAAEFAAAACW5vZGVJbmRleAUAAAAObmV3TGVhc2VBbW91bnQJAAROAAAAAgUAAAAOdW5sZWFzZU9yRW1wdHkJAARMAAAAAgUAAAAFbGVhc2UJAARMAAAAAgkBAAAAC0JpbmFyeUVudHJ5AAAAAgUAAAAKbGVhc2VJZEtleQkABDkAAAABBQAAAAVsZWFzZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldExlYXNlQW1vdW50S2V5AAAAAQUAAAAJbm9kZUluZGV4BQAAAA5uZXdMZWFzZUFtb3VudAUAAAADbmlsBQAAAANuaWwBAAAACmNvbW1vblN3YXAAAAAFAAAACHN3YXBUeXBlAAAACXBtdEFtb3VudAAAAA51c2VyQWRkcmVzc1N0cgAAAAZ0eElkNTgAAAAbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZBAAAAA0kdDAxNTY2NjE1NzQ2BQAAABtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkEAAAADHN3YXBMaW1pdE1heAgFAAAADSR0MDE1NjY2MTU3NDYAAAACXzEEAAAADnN3YXBMaW1pdFNwZW50CAUAAAANJHQwMTU2NjYxNTc0NgAAAAJfMgQAAAAOYmxja3MyTG10UmVzZXQIBQAAAA0kdDAxNTY2NjE1NzQ2AAAAAl8zBAAAAA1taW5Td2FwQW1vdW50CQEAAAARbWluU3dhcEFtb3VudFJFQUQAAAABBQAAAAhzd2FwVHlwZQQAAAALdG90YWxMb2NrZWQJAQAAAA90b3RhbExvY2tlZFJFQUQAAAABBQAAAAhzd2FwVHlwZQQAAAARdG90YWxMb2NrZWRCeVVzZXIJAQAAABV0b3RhbExvY2tlZEJ5VXNlclJFQUQAAAACBQAAAAhzd2FwVHlwZQUAAAAOdXNlckFkZHJlc3NTdHIEAAAAC25vZGVBZGRyZXNzCQEAAAAVZ2V0U3Rha2luZ05vZGVCeUluZGV4AAAAAQAAAAAAAAAAAAQAAAAMcHJpY2VCeUluZGV4CQEAAAAPZ2V0UHJpY2VIaXN0b3J5AAAAAQkBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEFAAAACnByaWNlSW5kZXgEAAAADGlzU3dhcEJ5Tm9kZQkAAAAAAAACBQAAAAtub2RlQWRkcmVzcwUAAAAOdXNlckFkZHJlc3NTdHIEAAAAFmJhbGFuY2VMb2NrTWF4SW50ZXJ2YWwDBQAAAAxpc1N3YXBCeU5vZGUJAQAAABtub2RlQmFsYW5jZUxvY2tJbnRlcnZhbFJFQUQAAAAACQEAAAAXYmFsYW5jZUxvY2tJbnRlcnZhbFJFQUQAAAABBQAAAAhzd2FwVHlwZQQAAAAQc2VsZlVubG9ja0hlaWdodAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAFmJhbGFuY2VMb2NrTWF4SW50ZXJ2YWwEAAAADnN3YXBVc2RuVm9sdW1lAwkAAAAAAAACBQAAAAhzd2FwVHlwZQIAAAAIbmV1dHJpbm8FAAAACXBtdEFtb3VudAkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAlwbXRBbW91bnQFAAAADHByaWNlQnlJbmRleAMJAABmAAAAAgUAAAANbWluU3dhcEFtb3VudAUAAAAJcG10QW1vdW50CQEAAAARbWluU3dhcEFtb3VudEZBSUwAAAACBQAAAAhzd2FwVHlwZQUAAAANbWluU3dhcEFtb3VudAMDCQEAAAABIQAAAAEFAAAADGlzU3dhcEJ5Tm9kZQkAAGYAAAACBQAAAA5zd2FwTGltaXRTcGVudAAAAAAAAAAAAAcJAAACAAAAAQkAASwAAAACAgAAADpZb3UgaGF2ZSBleGNlZWRlZCBzd2FwIGxpbWl0ISBOZXh0IGFsbG93ZWQgc3dhcCBoZWlnaHQgaXMgCQABpAAAAAEJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAA5ibGNrczJMbXRSZXNldAMDCQEAAAABIQAAAAEFAAAADGlzU3dhcEJ5Tm9kZQkAAGYAAAACBQAAAA5zd2FwVXNkblZvbHVtZQUAAAAMc3dhcExpbWl0TWF4BwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAC5Zb3UgaGF2ZSBleGNlZWRlZCB5b3VyIHN3YXAgbGltaXQhIFJlcXVlc3RlZDogCQABpAAAAAEFAAAADnN3YXBVc2RuVm9sdW1lAgAAAA0sIGF2YWlsYWJsZTogCQABpAAAAAEFAAAADHN3YXBMaW1pdE1heAMFAAAACWlzQmxvY2tlZAkBAAAAFWVtZXJnZW5jeVNodXRkb3duRkFJTAAAAAAEAAAACWxlYXNlUGFydAMJAAAAAAAAAgUAAAAIc3dhcFR5cGUCAAAABXdhdmVzCQEAAAAWcHJlcGFyZVVubGVhc2VBbmRMZWFzZQAAAAEAAAAAAAAAAAAFAAAAA25pbAkABRQAAAACCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABhrZXlTd2FwVXNlclNwZW50SW5QZXJpb2QAAAABBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAOc3dhcFVzZG5Wb2x1bWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVrZXlVc2VyTGFzdFN3YXBIZWlnaHQAAAABBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAUdG90YWxMb2NrZWRCeVVzZXJLRVkAAAACBQAAAAhzd2FwVHlwZQUAAAAOdXNlckFkZHJlc3NTdHIJAABkAAAAAgUAAAARdG90YWxMb2NrZWRCeVVzZXIFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGGdldEJhbGFuY2VVbmxvY2tCbG9ja0tleQAAAAEFAAAADnVzZXJBZGRyZXNzU3RyBQAAABBzZWxmVW5sb2NrSGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAOdG90YWxMb2NrZWRLRVkAAAABBQAAAAhzd2FwVHlwZQkAAGQAAAACBQAAAAt0b3RhbExvY2tlZAUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAdzd2FwS0VZAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAABnR4SWQ1OAkBAAAAD3BlbmRpbmdTd2FwREFUQQAAAAMFAAAACHN3YXBUeXBlBQAAAAlwbXRBbW91bnQFAAAAEHNlbGZVbmxvY2tIZWlnaHQFAAAAA25pbAUAAAAJbGVhc2VQYXJ0BQAAAAR1bml0AQAAAA5jb21tb25XaXRoZHJhdwAAAAQAAAAHYWNjb3VudAAAAAVpbmRleAAAAAhzd2FwVHhJZAAAAAx3aXRoZHJhd1R4SWQEAAAAC3VzZXJBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAdhY2NvdW50BAAAABFmZWVNYW5hZ2VyQWRkcmVzcwkBAAAAFWZlZU1hbmFnZXJBZGRyZXNzUkVBRAAAAAAEAAAACWRhdGFBcnJheQkBAAAAEnN3YXBEYXRhRmFpbE9yUkVBRAAAAAIFAAAAB2FjY291bnQFAAAACHN3YXBUeElkBAAAABBzZWxmVW5sb2NrSGVpZ2h0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAJZGF0YUFycmF5BQAAABRzSWR4U2VsZlVubG9ja0hlaWdodAQAAAAIc3dhcFR5cGUJAAGRAAAAAgUAAAAJZGF0YUFycmF5BQAAAAxzSWR4U3dhcFR5cGUEAAAACGluQW1vdW50CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAJZGF0YUFycmF5BQAAAAxzSWR4SW5BbW91bnQEAAAACnN3YXBTdGF0dXMJAAGRAAAAAgUAAAAJZGF0YUFycmF5BQAAAApzSWR4U3RhdHVzBAAAAAtzdGFydEhlaWdodAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACWRhdGFBcnJheQUAAAAPc0lkeFN0YXJ0SGVpZ2h0BAAAAApvdXRGZWVQYXJ0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAAA1vdXRGZWVQYXJ0S0VZAAAAAQUAAAAIc3dhcFR5cGUFAAAADkRFRkFVTFRTV0FQRkVFBAAAAAt0b3RhbExvY2tlZAkBAAAAD3RvdGFsTG9ja2VkUkVBRAAAAAEFAAAACHN3YXBUeXBlBAAAABF0b3RhbExvY2tlZEJ5VXNlcgkBAAAAFXRvdGFsTG9ja2VkQnlVc2VyUkVBRAAAAAIFAAAACHN3YXBUeXBlBQAAAAdhY2NvdW50BAAAAAx1bmxvY2tIZWlnaHQFAAAAEHNlbGZVbmxvY2tIZWlnaHQEAAAAC2luZGV4SGVpZ2h0CQEAAAAVZ2V0SGVpZ2h0UHJpY2VCeUluZGV4AAAAAQUAAAAFaW5kZXgEAAAAD3ByZXZJbmRleEhlaWdodAkBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEJAABlAAAAAgUAAAAFaW5kZXgAAAAAAAAAAAEEAAAADHByaWNlQnlJbmRleAkBAAAAD2dldFByaWNlSGlzdG9yeQAAAAEFAAAAC2luZGV4SGVpZ2h0BAAAABNvdXRBbW91bnRHcm9zc1R1cGxlAwkAAAAAAAACBQAAAAhzd2FwVHlwZQIAAAAFd2F2ZXMJAAUUAAAAAgkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAhpbkFtb3VudAUAAAAMcHJpY2VCeUluZGV4BQAAAA9uZXV0cmlub0Fzc2V0SWQDCQAAAAAAAAIFAAAACHN3YXBUeXBlAgAAAAhuZXV0cmlubwkABRQAAAACCQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAACGluQW1vdW50BQAAAAxwcmljZUJ5SW5kZXgFAAAABHVuaXQJAAACAAAAAQkAASwAAAACAgAAABZVbnN1cHBvcnRlZCBzd2FwIHR5cGUgBQAAAAhzd2FwVHlwZQQAAAAMcGF5b3V0c0FycmF5CQEAAAAJYXBwbHlGZWVzAAAAAggFAAAAE291dEFtb3VudEdyb3NzVHVwbGUAAAACXzEFAAAACm91dEZlZVBhcnQEAAAADG91dE5ldEFtb3VudAkAAZEAAAACBQAAAAxwYXlvdXRzQXJyYXkFAAAADElkeE5ldEFtb3VudAQAAAAMb3V0RmVlQW1vdW50CQABkQAAAAIFAAAADHBheW91dHNBcnJheQUAAAAMSWR4RmVlQW1vdW50AwUAAAAJaXNCbG9ja2VkCQEAAAAVZW1lcmdlbmN5U2h1dGRvd25GQUlMAAAAAAMJAQAAAAIhPQAAAAIFAAAACnN3YXBTdGF0dXMCAAAAB1BFTkRJTkcJAAACAAAAAQIAAAAfc3dhcCBoYXMgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZAMJAABmAAAAAgUAAAAMdW5sb2NrSGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAEXBsZWFzZSB3YWl0IGZvcjogCQABpAAAAAEFAAAADHVubG9ja0hlaWdodAIAAAAfIGJsb2NrIGhlaWdodCB0byB3aXRoZHJhdyBmdW5kcwMDAwkAAGYAAAACBQAAAAVpbmRleAUAAAAKcHJpY2VJbmRleAYJAABmAAAAAgUAAAAMdW5sb2NrSGVpZ2h0BQAAAAtpbmRleEhlaWdodAYDCQEAAAACIT0AAAACBQAAAA9wcmV2SW5kZXhIZWlnaHQAAAAAAAAAAAAJAABnAAAAAgUAAAAPcHJldkluZGV4SGVpZ2h0BQAAAAx1bmxvY2tIZWlnaHQHCQEAAAAOcHJpY2VJbmRleEZBSUwAAAAFBQAAAAVpbmRleAUAAAAKcHJpY2VJbmRleAUAAAALaW5kZXhIZWlnaHQFAAAADHVubG9ja0hlaWdodAUAAAAPcHJldkluZGV4SGVpZ2h0AwkAAGcAAAACAAAAAAAAAAAACQABkQAAAAIFAAAADHBheW91dHNBcnJheQUAAAAOSWR4R3Jvc3NBbW91bnQJAAACAAAAAQIAAAATYmFsYW5jZSBlcXVhbHMgemVybwMDCQAAZgAAAAIAAAAAAAAAAAAFAAAACm91dEZlZVBhcnQGCQAAZwAAAAIFAAAACm91dEZlZVBhcnQFAAAABVBBVUxJCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHmludmFsaWQgb3V0RmVlUGFydCBjb25maWcgZm9yIAUAAAAIc3dhcFR5cGUCAAAAEiBzd2FwOiBvdXRGZWVQYXJ0PQkAAaQAAAABBQAAAApvdXRGZWVQYXJ0BAAAAAlsZWFzZVBhcnQDAwkAAAAAAAACBQAAAAhzd2FwVHlwZQIAAAAIbmV1dHJpbm8JAABmAAAAAggFAAAAE291dEFtb3VudEdyb3NzVHVwbGUAAAACXzEAAAAAAAAAAAAHCQEAAAAWcHJlcGFyZVVubGVhc2VBbmRMZWFzZQAAAAEIBQAAABNvdXRBbW91bnRHcm9zc1R1cGxlAAAAAl8xBQAAAANuaWwEAAAABXN0YXRlCQAETgAAAAIFAAAACWxlYXNlUGFydAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFHRvdGFsTG9ja2VkQnlVc2VyS0VZAAAAAgUAAAAIc3dhcFR5cGUFAAAAB2FjY291bnQJAABlAAAAAgUAAAARdG90YWxMb2NrZWRCeVVzZXIFAAAACGluQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAOdG90YWxMb2NrZWRLRVkAAAABBQAAAAhzd2FwVHlwZQkAAGUAAAACBQAAAAt0b3RhbExvY2tlZAUAAAAIaW5BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAADG91dE5ldEFtb3VudAgFAAAAE291dEFtb3VudEdyb3NzVHVwbGUAAAACXzIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAB3N3YXBLRVkAAAACBQAAAAdhY2NvdW50BQAAAAhzd2FwVHhJZAkBAAAADmZpbmlzaFN3YXBEQVRBAAAABwUAAAAJZGF0YUFycmF5BQAAAAxwcmljZUJ5SW5kZXgFAAAADG91dE5ldEFtb3VudAUAAAAMb3V0RmVlQW1vdW50BQAAAAx1bmxvY2tIZWlnaHQFAAAABWluZGV4BQAAAAx3aXRoZHJhd1R4SWQFAAAAA25pbAkABRQAAAACBQAAAAVzdGF0ZQkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIIBQAAABNvdXRBbW91bnRHcm9zc1R1cGxlAAAAAl8yBQAAAAxvdXRGZWVBbW91bnQAAAAJAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAADAAAABJuZXV0cmlub0Fzc2V0SWRQcm0AAAAOYm9uZEFzc2V0SWRQcm0AAAASYXVjdGlvbkNvbnRyYWN0UHJtAAAAFmxpcXVpZGF0aW9uQ29udHJhY3RQcm0AAAAOcnBkQ29udHJhY3RQcm0AAAAbbm9kZU9yYWNsZVByb3ZpZGVyUHViS2V5UHJtAAAAG2JhbGFuY2VXYXZlc0xvY2tJbnRlcnZhbFBybQAAAB5iYWxhbmNlTmV1dHJpbm9Mb2NrSW50ZXJ2YWxQcm0AAAAVbWluV2F2ZXNTd2FwQW1vdW50UHJtAAAAGG1pbk5ldXRyaW5vU3dhcEFtb3VudFBybQAAABVuZXV0cmlub091dEZlZVBhcnRQcm0AAAASd2F2ZXNPdXRGZWVQYXJ0UHJtBAAAAAtjaGVja0NhbGxlcgkBAAAACHRoaXNPbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABNubyBwYXltZW50cyBhbGxvd2VkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEk5ldXRyaW5vQXNzZXRJZEtleQUAAAASbmV1dHJpbm9Bc3NldElkUHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADkJvbmRBc3NldElkS2V5BQAAAA5ib25kQXNzZXRJZFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJBdWN0aW9uQ29udHJhY3RLZXkFAAAAEmF1Y3Rpb25Db250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABZMaXF1aWRhdGlvbkNvbnRyYWN0S2V5BQAAABZsaXF1aWRhdGlvbkNvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADlJQRENvbnRyYWN0S2V5BQAAAA5ycGRDb250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABtOb2RlT3JhY2xlUHJvdmlkZXJQdWJLZXlLZXkFAAAAG25vZGVPcmFjbGVQcm92aWRlclB1YktleVBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbQmFsYW5jZVdhdmVzTG9ja0ludGVydmFsS2V5BQAAABtiYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWxQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAHkJhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbEtleQUAAAAeYmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsUHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVNaW5XYXZlc1N3YXBBbW91bnRLZXkFAAAAFW1pbldhdmVzU3dhcEFtb3VudFBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAYTWluTmV1dHJpbm9Td2FwQW1vdW50S2V5BQAAABhtaW5OZXV0cmlub1N3YXBBbW91bnRQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFU5ldXRyaW5vT3V0RmVlUGFydEtleQUAAAAVbmV1dHJpbm9PdXRGZWVQYXJ0UHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJXYXZlc091dEZlZVBhcnRLZXkFAAAAEndhdmVzT3V0RmVlUGFydFBybQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA1jb25zdHJ1Y3RvclYyAAAAAwAAAAxtYXRoQ29udHJhY3QAAAATbnNidFN0YWtpbmdDb250cmFjdAAAABRzd2Fwc1RpbWVmcmFtZUJsb2NrcwQAAAALY2hlY2tDYWxsZXIJAQAAAAh0aGlzT25seQAAAAEFAAAAAWkDCQAAAAAAAAIFAAAAC2NoZWNrQ2FsbGVyBQAAAAtjaGVja0NhbGxlcgMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAATbm8gcGF5bWVudHMgYWxsb3dlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA9NYXRoQ29udHJhY3RLZXkFAAAADG1hdGhDb250cmFjdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABZOc2J0U3Rha2luZ0NvbnRyYWN0S2V5BQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARc3dhcHNUaW1lZnJhbWVLRVkAAAAABQAAABRzd2Fwc1RpbWVmcmFtZUJsb2NrcwUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABNzd2FwV2F2ZXNUb05ldXRyaW5vAAAAAAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAsc3dhcFdhdmVzVG9OZXV0cmlubyByZXF1aXJlIG9ubHkgb25lIHBheW1lbnQEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAApT25seSBXYXZlcyB0b2tlbiBpcyBhbGxvd2VkIGZvciBzd2FwcGluZy4EAAAAC3VzZXJBZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAGdHhJZDU4CQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAAEHN3YXBQYXJhbXNTVFJVQ1QJAQAAABJhc1N3YXBQYXJhbXNTVFJVQ1QAAAABCQAD/AAAAAQFAAAABHRoaXMCAAAAG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwkABEwAAAACAAAAAAAAAAAABQAAAANuaWwFAAAAA25pbAQAAAAQY29tbW9uU3dhcFJlc3VsdAkBAAAACmNvbW1vblN3YXAAAAAFAgAAAAV3YXZlcwgFAAAAA3BtdAAAAAZhbW91bnQFAAAAC3VzZXJBZGRyZXNzBQAAAAZ0eElkNTgF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YnRBbXRUb3RhbAkAAGQAAAACCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAACG5zYnREYXRhAAAAAAAAAAABBQAAAAhuc2J0RGlmZgQAAAAMc3dhcExpbWl0TWF4CQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAADG1hdGhDb250cmFjdAIAAAAVY2FsY1N3YXBMaW1pdFJFQURPTkxZCQAETAAAAAIFAAAACGduc2J0QW10BQAAAANuaWwFAAAAA25pbAQAAAAObGFzdFN3YXBIZWlnaHQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFWtleVVzZXJMYXN0U3dhcEhlaWdodAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAABAAAABdzd2FwTGltaXRUaW1lbGlmZUJsb2NrcwkBAAAAEnN3YXBzVGltZWZyYW1lUkVBRAAAAAAEAAAAGXBhc3NlZEJsb2Nrc0FmdGVyTGFzdFN3YXAJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAA5sYXN0U3dhcEhlaWdodAQAAAARaXNTd2FwVGltZWxpZmVOZXcJAABnAAAAAgUAAAAZcGFzc2VkQmxvY2tzQWZ0ZXJMYXN0U3dhcAUAAAAXc3dhcExpbWl0VGltZWxpZmVCbG9ja3MEAAAADnN3YXBMaW1pdFNwZW50AwUAAAARaXNTd2FwVGltZWxpZmVOZXcAAAAAAAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAGGtleVN3YXBVc2VyU3BlbnRJblBlcmlvZAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAABAAAAA5ibGNrczJMbXRSZXNldAMFAAAAEWlzU3dhcFRpbWVsaWZlTmV3AAAAAAAAAAAACQAAZQAAAAIFAAAAF3N3YXBMaW1pdFRpbWVsaWZlQmxvY2tzBQAAABlwYXNzZWRCbG9ja3NBZnRlckxhc3RTd2FwCQAFFAAAAAIFAAAAA25pbAkABRcAAAAFBQAAAAxzd2FwTGltaXRNYXgFAAAADnN3YXBMaW1pdFNwZW50BQAAAA5ibGNrczJMbXRSZXNldAUAAAAIZ25zYnRBbXQFAAAADWduc2J0QW10VG90YWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAACaWQJAAJYAAAAAQgFAAAAAnR4AAAAAmlkBAAAAAVjb3VudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACQACWQAAAAEJAAGRAAAAAgUAAAAQcHViS2V5QWRtaW5zTGlzdAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABCQACWQAAAAEJAAGRAAAAAgUAAAAQcHViS2V5QWRtaW5zTGlzdAAAAAAAAAAAAQAAAAAAAAAAAQAAAAAAAAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACCQACWQAAAAEJAAGRAAAAAgUAAAAQcHViS2V5QWRtaW5zTGlzdAAAAAAAAAAAAgAAAAAAAAAAAQAAAAAAAAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAADCQACWQAAAAEJAAGRAAAAAgUAAAAQcHViS2V5QWRtaW5zTGlzdAAAAAAAAAAAAwAAAAAAAAAAAgAAAAAAAAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFVNwb25zb3JGZWVUcmFuc2FjdGlvbgQAAAAJc3BvbnNvclR4BQAAAAckbWF0Y2gwAwkBAAAAG2NoZWNrSXNWYWxpZE1pblNwb25zb3JlZEZlZQAAAAEFAAAACXNwb25zb3JUeAkAAGcAAAACBQAAAAVjb3VudAAAAAAAAAAAAwcJAABnAAAAAgUAAAAFY291bnQAAAAAAAAAAAMxw+0Z", "chainId": 87, "height": 3043381, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Ki7KTH1odqimEZQ44A6oqmhKsWqxWm9QDEUfnDEK9KR Next: DGXi5G7e3V7w9tE5cozZBow8awPHPhgjJbDHU4bXrn5U Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = valueOrElse(getInteger(this, b), 0)
4+let a = "443c64dd5056b5be23b700224699295e733e0452"
5+
6+func b (c) = valueOrElse(getInteger(this, c), 0)
57
68
7-func c (b) = valueOrElse(getString(this, b), "")
9+func d (c) = valueOrElse(getString(this, c), "")
810
911
10-func d (b) = valueOrElse(getBoolean(this, b), false)
12+func e (c) = valueOrElse(getBoolean(this, c), false)
1113
1214
13-func e (f,b) = valueOrElse(getInteger(addressFromStringValue(f), b), 0)
15+func f (g,c) = valueOrElse(getInteger(addressFromStringValue(g), c), 0)
1416
1517
16-func g (f,b) = valueOrElse(getString(addressFromStringValue(f), b), "")
18+func h (g,c) = valueOrElse(getString(addressFromStringValue(g), c), "")
1719
1820
19-func h (f,b) = valueOrElse(getBoolean(addressFromStringValue(f), b), false)
21+func i (g,c) = valueOrElse(getBoolean(addressFromStringValue(g), c), false)
2022
2123
22-let i = ["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
23-
24-let j = "__"
25-
26-let k = 100000000
27-
28-let l = 1000000
29-
30-let m = 1000000
31-
32-let n = 20000
33-
34-let o = 0
35-
36-let p = 1
37-
38-let q = 2
39-
40-let r = "neutrino_asset_id"
41-
42-let s = "bond_asset_id"
43-
44-let t = "auction_contract"
45-
46-let u = "liquidation_contract"
47-
48-let v = "rpd_contract"
49-
50-let w = "control_contract"
51-
52-let x = "balance_waves_lock_interval"
53-
54-let y = "balance_neutrino_lock_interval"
55-
56-let z = "min_waves_swap_amount"
57-
58-let A = "min_neutrino_swap_amount"
59-
60-let B = "node_oracle_provider"
61-
62-let C = "neutrinoOut_swap_feePart"
63-
64-let D = "wavesOut_swap_feePart"
65-
66-let E = "fees_manager_address"
67-
68-let F = "rand_rsa_public"
69-
70-let G = "price"
71-
72-let H = "price_index"
73-
74-let I = "is_blocked"
75-
76-func J (K) = ((G + "_") + toString(K))
24+func j (k) = {
25+ let l = k
26+ if ($isInstanceOf(l, "List[Any]"))
27+ then {
28+ let m = l
29+ m
30+ }
31+ else throw("fail to cast into List[Any]")
32+ }
7733
7834
79-func L (M) = ((H + "_") + toString(M))
35+func n (k) = {
36+ let l = k
37+ if ($isInstanceOf(l, "String"))
38+ then {
39+ let o = l
40+ o
41+ }
42+ else throw("fail to cast into String")
43+ }
8044
8145
82-func N (O) = c(makeString(["%s%d%s", "lease", toString(O), "nodeAddress"], j))
46+func p (k) = {
47+ let l = k
48+ if ($isInstanceOf(l, "Int"))
49+ then {
50+ let q = l
51+ q
52+ }
53+ else throw("fail to cast into Int")
54+ }
8355
8456
85-func P (O) = addressFromStringValue(N(O))
57+func r (k) = {
58+ let l = k
59+ if ($isInstanceOf(l, "(Int, Int, Int, Int, Int)"))
60+ then {
61+ let s = l
62+ s
63+ }
64+ else throw("fail to cast into Int")
65+ }
8666
8767
88-func Q () = valueOrElse(getInteger(this, makeString(["%s%s", "lease", "sponsorshipWavesReserve"], j)), (1000 * k))
68+let t = ["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
69+
70+let u = "__"
71+
72+let v = 100000000
73+
74+let w = 1000000
75+
76+let x = 1000000
77+
78+let y = 20000
79+
80+let z = 0
81+
82+let A = 1
83+
84+let B = 2
85+
86+let C = "neutrino_asset_id"
87+
88+let D = "bond_asset_id"
89+
90+let E = "auction_contract"
91+
92+let F = "nsbtStakingContract"
93+
94+let G = "liquidation_contract"
95+
96+let H = "rpd_contract"
97+
98+let I = "control_contract"
99+
100+let J = "math_contract"
101+
102+let K = "balance_waves_lock_interval"
103+
104+let L = "balance_neutrino_lock_interval"
105+
106+let M = "min_waves_swap_amount"
107+
108+let N = "min_neutrino_swap_amount"
109+
110+let O = "node_oracle_provider"
111+
112+let P = "neutrinoOut_swap_feePart"
113+
114+let Q = "wavesOut_swap_feePart"
115+
116+let R = "fees_manager_address"
117+
118+let S = "price"
119+
120+let T = "price_index"
121+
122+let U = "is_blocked"
123+
124+func V (W) = ((S + "_") + toString(W))
89125
90126
91-func R (S) = ("balance_unlock_block_" + S)
127+func X (Y) = ((T + "_") + toString(Y))
92128
93129
94-func T (U) = makeString(["%s%d%s", "lease", toString(U), "id"], j)
130+func Z (aa) = d(makeString(["%s%d%s", "lease", toString(aa), "nodeAddress"], u))
95131
96132
97-func V (U) = makeString(["%s%d%s", "lease", toString(U), "amount"], j)
133+func ab (aa) = addressFromStringValue(Z(aa))
98134
99135
100-func W (X) = (("min_" + X) + "_swap_amount")
136+func ac () = valueOrElse(getInteger(this, makeString(["%s%s", "lease", "sponsorshipWavesReserve"], u)), (1000 * v))
101137
102138
103-func Y (X) = ("balance_lock_" + X)
139+func ad (ae) = ("balance_unlock_block_" + ae)
104140
105141
106-func Z (X,S) = makeString(["balance_lock", X, S], "_")
142+func af (ag) = makeString(["%s%d%s", "lease", toString(ag), "id"], u)
107143
108144
109-func aa (X) = (("balance_" + X) + "_lock_interval")
145+func ah (ag) = makeString(["%s%d%s", "lease", toString(ag), "amount"], u)
110146
111147
112-func ab (X) = (("balance_" + X) + "_lock_interval_minimum")
148+func ai (aj) = (("min_" + aj) + "_swap_amount")
113149
114150
115-func ac () = "balance_node_lock_interval"
151+func ak (aj) = ("balance_lock_" + aj)
116152
117153
118-func ad (X) = (X + "Out_swap_feePart")
154+func al (aj,ae) = makeString(["balance_lock", aj, ae], "_")
119155
120156
121-func ae (X) = valueOrElse(getInteger(this, W(X)), 0)
157+func am (aj) = (("balance_" + aj) + "_lock_interval")
122158
123159
124-func af (X) = valueOrElse(getInteger(this, Y(X)), 0)
160+func an () = "balance_node_lock_interval"
125161
126162
127-func ag (X,S) = valueOrElse(getInteger(this, Z(X, S)), 0)
163+func ao (aj) = (aj + "Out_swap_feePart")
128164
129165
130-func ah (X) = valueOrElse(getInteger(this, aa(X)), 1440)
166+func ap () = "swaps_timeframe"
131167
132168
133-func ai (X) = valueOrElse(getInteger(this, ab(X)), 60)
169+func aq (aj) = valueOrElse(getInteger(this, ai(aj)), 0)
134170
135171
136-func aj () = valueOrElse(getInteger(this, ac()), 1)
172+func ar () = valueOrElse(getInteger(this, ap()), 1440)
137173
138174
139-func ak () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, E), (E + " is not specified"))), (E + " invalid address format"))
175+func as (aj) = valueOrElse(getInteger(this, ak(aj)), 0)
140176
141177
142-func al (am,an) = fraction(fraction(am, m, an), k, l)
178+func at (aj,ae) = valueOrElse(getInteger(this, al(aj, ae)), 0)
143179
144180
145-func ao (am,an) = fraction(fraction(am, an, m), l, k)
181+func au (aj) = valueOrElse(getInteger(this, am(aj)), 1440)
146182
147183
148-func ap (am,an) = ao(am, an)
184+func av () = valueOrElse(getInteger(this, an()), 1)
149185
150186
151-func aq (ar) = split(ar, ",")
187+func aw (ax) = makeString(["%s%s", "swapUserSpentInPeriod", ax], u)
152188
153189
154-func as (X,at) = throw(((("The specified amount in " + X) + " swap is less than the required minimum of ") + toString(at)))
190+func ay (ax) = makeString(["%s%s", "userLastSwapHeight", ax], u)
155191
156192
157-func au () = throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
193+func az () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, R), (R + " is not specified"))), (R + " invalid address format"))
158194
159195
160-func av (M,aw,ax,ay,az) = throw(((((((((("invalid price history index: index=" + toString(M)) + " priceIndex=") + toString(aw)) + " indexHeight=") + toString(ax)) + " unlockHeight=") + toString(ay)) + " prevIndexHeight=") + toString(az)))
196+func aA (aB,aC) = fraction(fraction(aB, x, aC), v, w)
161197
162198
163-let aA = c(u)
199+func aD (aB,aC) = fraction(fraction(aB, aC, x), w, v)
164200
165-let aB = fromBase58String(c(r))
166201
167-let aC = c(t)
202+func aE (aB,aC) = aD(aB, aC)
168203
169-let aD = c(v)
170204
171-let aE = c(w)
205+func aF (aG) = split(aG, ",")
172206
173-let aw = e(aE, H)
174207
175-let aF = h(aE, I)
208+func aH (aj,aI) = throw(((("The specified amount in " + aj) + " swap is less than the required minimum of ") + toString(aI)))
176209
177-let aG = fromBase58String(c(B))
178210
179-let aH = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
211+func aJ () = throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
180212
181-let aI = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
182213
183-let aJ = fromBase64String(valueOrErrorMessage(getString(this, F), "RSA public key has not been specified"))
214+func aK (Y,aL,aM,aN,aO) = throw(((((((((("invalid price history index: index=" + toString(Y)) + " priceIndex=") + toString(aL)) + " indexHeight=") + toString(aM)) + " unlockHeight=") + toString(aN)) + " prevIndexHeight=") + toString(aO)))
184215
185-let aK = this
186216
187-let aL = e(aE, G)
217+let aP = d(G)
188218
189-let aM = af("neutrino")
219+let aQ = d(F)
190220
191-let aN = af("waves")
221+let aR = fromBase58String(d(C))
192222
193-let aO = (wavesBalance(aK).regular - aN)
223+let aS = d(E)
194224
195-let aP = (((aM + value(assetInfo(aB)).quantity) - assetBalance(aK, aB)) - assetBalance(addressFromStringValue(aA), aB))
225+let aT = d(H)
196226
197-let aQ = (ao(aO, aL) - aP)
227+let aU = d(I)
198228
199-let aR = (aP - ao(aO, aL))
229+let aV = d(J)
200230
201-func aS (aT) = {
202- let aU = 100000
203- let aV = 1000
204- let aW = ao(aU, aL)
205- let aX = (aW * 2)
206- let aY = fraction(aW, aV, 100)
207- let aZ = value(aT.minSponsoredAssetFee)
208- if (if ((aZ >= aX))
209- then (aY >= aZ)
231+let aL = f(aU, T)
232+
233+let aW = i(aU, U)
234+
235+let aX = fromBase58String(d(O))
236+
237+let aY = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
238+
239+let aZ = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
240+
241+let ba = this
242+
243+let bb = addressFromStringValue(aV)
244+
245+let bc = addressFromStringValue(aQ)
246+
247+let bd = f(aU, S)
248+
249+func be (bf) = {
250+ let bg = 100000
251+ let bh = 1000
252+ let bi = aD(bg, bd)
253+ let bj = (bi * 2)
254+ let bk = fraction(bi, bh, 100)
255+ let bl = value(bf.minSponsoredAssetFee)
256+ if (if ((bl >= bj))
257+ then (bk >= bl)
210258 else false)
211- then (aT.assetId == aB)
259+ then (bf.assetId == aR)
212260 else false
213261 }
214262
215263
216-func ba (K) = e(aE, J(K))
264+func bm (W) = f(aU, V(W))
217265
218266
219-func bb (M) = e(aE, L(M))
267+func bn (Y) = f(aU, X(Y))
220268
221269
222-let bc = 1
223-
224-let bd = 2
225-
226-let be = 3
227-
228-let bf = 4
229-
230-let bg = 5
231-
232-let bh = 6
233-
234-let bi = 7
235-
236-let bj = 8
237-
238-let bk = 9
239-
240-let bl = 10
241-
242-let bm = 11
243-
244-let bn = 12
245-
246-let bo = 13
247-
248-let bp = 14
249-
250-let bq = 15
251-
252-let br = 16
253-
254-func bs (bt,bu) = makeString(["%s%s", bt, bu], j)
270+func bo (ax) = makeString(["%s%s%s", "paramByUser", ax, "amount"], u)
255271
256272
257-func bv (X,bw,bx,an,by,bz,bA,bB,bC,bD,bE,bF,M,bG,bH,bI) = makeString(["%s%s%d%d%d%d%d%d%d%d%d%d%d%s", X, bw, bx, an, by, bz, bA, bB, bC, bD, bE, bF, M, bG, bH, bI], j)
273+let bp = 1
274+
275+let bq = 2
276+
277+let br = 3
278+
279+let bs = 4
280+
281+let bt = 5
282+
283+let bu = 6
284+
285+let bv = 7
286+
287+let bw = 8
288+
289+let bx = 9
290+
291+let by = 10
292+
293+let bz = 11
294+
295+let bA = 12
296+
297+let bB = 13
298+
299+let bC = 14
300+
301+let bD = 15
302+
303+let bE = 16
304+
305+func bF (ax,bG) = makeString(["%s%s", ax, bG], u)
258306
259307
260-func bJ (X,bK,bE) = bv(X, "PENDING", toString(bK), "0", "0", "0", toString(height), toString(lastBlock.timestamp), "0", "0", toString(bE), "0", "0", "NULL", toString(ai(X)), toString(ah(X)))
308+func bH (aj,bI,bJ,aC,bK,bL,bM,bN,bO,bP,bQ,bR,Y,bS,bT,bU) = makeString(["%s%s%d%d%d%d%d%d%d%d%d%d%d%s", aj, bI, bJ, aC, bK, bL, bM, bN, bO, bP, bQ, bR, Y, bS, bT, bU], u)
261309
262310
263-func bL (bM,an,by,bz,bF,M,bG) = bv(bM[bc], "FINISHED", bM[be], toString(an), toString(by), toString(bz), bM[bi], bM[bj], toString(height), toString(lastBlock.timestamp), bM[bm], toString(bF), toString(M), bG, if ((15 >= size(bM)))
264- then "60"
265- else bM[bq], if ((15 >= size(bM)))
266- then "1440"
267- else bM[br])
311+func bV (aj,bW,bQ) = bH(aj, "PENDING", toString(bW), "0", "0", "0", toString(height), toString(lastBlock.timestamp), "0", "0", toString(bQ), "0", "0", "NULL", "0", "0")
268312
269313
270-func bN (bt,bO) = {
271- let bP = bs(bt, bO)
272- split(valueOrErrorMessage(getString(this, bP), ("no swap data for " + bP)), j)
314+func bX (bY,aC,bK,bL,bR,Y,bS) = bH(bY[bp], "FINISHED", bY[br], toString(aC), toString(bK), toString(bL), bY[bv], bY[bw], toString(height), toString(lastBlock.timestamp), bY[bz], toString(bR), toString(Y), bS, bY[bD], bY[bE])
315+
316+
317+func bZ (ax,ca) = {
318+ let cb = bF(ax, ca)
319+ split(valueOrErrorMessage(getString(this, cb), ("no swap data for " + cb)), u)
273320 }
274321
275322
276-func bQ (bR,bS) = {
277- let bT = fraction(bR, bS, l)
278-[(bR - bT), bT, bR]
323+func cc (cd,ce) = {
324+ let cf = fraction(cd, ce, w)
325+[(cd - cf), cf, cd]
279326 }
280327
281328
282-func bU (bu,bV,X,bA,bW) = {
283- let bX = rsaVerify_16Kb(SHA256, toBytes(bu), bV, aJ)
284- if (!(bX))
285- then throw("invalid RSA signature")
286- else {
287- let bY = bW._1
288- let bZ = bW._2
289- let ca = (toInt(sha256_16Kb(bV)) % (bZ - bY))
290- let cb = (bY + (if ((0 > ca))
291- then -(ca)
292- else ca))
293- (bA + cb)
294- }
295- }
329+func cg (ch) = if ((0 > ch))
330+ then -(ch)
331+ else ch
296332
297333
298-func cc (cd) = if ((0 > cd))
299- then -(cd)
300- else cd
301-
302-
303-func ce (cf) = {
304- let cg = ((wavesBalance(aK).available - cf) - Q())
305- let ch = a(V(0))
306- let ci = a(V(1))
307- let cj = (cg + ch)
308- let ck = (cg + ci)
309- if (if ((cj > 0))
334+func ci (cj) = {
335+ let ck = ((wavesBalance(ba).available - cj) - ac())
336+ let cl = b(ah(0))
337+ let cm = b(ah(1))
338+ let cn = (ck + cl)
339+ let co = (ck + cm)
340+ if (if ((cn > 0))
310341 then true
311- else (ck > 0))
342+ else (co > 0))
312343 then {
313- let cl = cc((cj - ci))
314- let cm = cc((ck - ch))
315- if ((cm >= cl))
316- then $Tuple2(0, cj)
317- else $Tuple2(1, ck)
344+ let cp = cg((cn - cm))
345+ let cq = cg((co - cl))
346+ if ((cq >= cp))
347+ then $Tuple2(0, cn)
348+ else $Tuple2(1, co)
318349 }
319350 else $Tuple2(-1, 0)
320351 }
321352
322353
323-func cn (cf) = {
324- let co = ce(cf)
325- let U = co._1
326- let cp = co._2
327- if ((cp > 0))
354+func cr (cs) = if ((cs.caller != this))
355+ then throw("Permission denied: this contract only allowed")
356+ else true
357+
358+
359+func ct (cj) = {
360+ let cu = ci(cj)
361+ let ag = cu._1
362+ let cv = cu._2
363+ if ((cv > 0))
328364 then {
329- let cq = T(U)
330- let cr = getBinary(this, cq)
331- let cs = if (isDefined(cr))
332- then [LeaseCancel(value(cr))]
365+ let cw = af(ag)
366+ let cx = getBinary(this, cw)
367+ let cy = if (isDefined(cx))
368+ then [LeaseCancel(value(cx))]
333369 else nil
334- let ct = V(U)
335- let cu = Lease(P(U), cp)
336- (cs ++ [cu, BinaryEntry(cq, calculateLeaseId(cu)), IntegerEntry(V(U), cp)])
370+ let cz = ah(ag)
371+ let cA = Lease(ab(ag), cv)
372+ (cy ++ [cA, BinaryEntry(cw, calculateLeaseId(cA)), IntegerEntry(ah(ag), cv)])
337373 }
338374 else nil
339375 }
340376
341377
342-func cv (X,cw) = {
343- let cx = value(cw.payments[0])
344- let cy = toString(cw.caller)
345- let cz = toBase58String(cw.transactionId)
346- let at = ae(X)
347- let cA = af(X)
348- let cB = ag(X, cy)
349- let cC = N(0)
350- let cD = if ((cC == cy))
351- then aj()
352- else ah(X)
353- let bE = (height + cD)
354- if ((at > cx.amount))
355- then as(X, at)
356- else if (aF)
357- then au()
358- else {
359- let cE = if ((X == "waves"))
360- then cn(0)
361- else nil
362- $Tuple2(([IntegerEntry(Z(X, cy), (cB + cx.amount)), IntegerEntry(R(cy), bE), IntegerEntry(Y(X), (cA + cx.amount)), StringEntry(bs(cy, cz), bJ(X, cx.amount, bE))] ++ cE), unit)
363- }
378+func cB (aj,cC,cD,cE,cF) = {
379+ let cG = cF
380+ let cH = cG._1
381+ let cI = cG._2
382+ let cJ = cG._3
383+ let aI = aq(aj)
384+ let cK = as(aj)
385+ let cL = at(aj, cD)
386+ let cM = Z(0)
387+ let cN = bm(bn(aL))
388+ let cO = (cM == cD)
389+ let cP = if (cO)
390+ then av()
391+ else au(aj)
392+ let bQ = (height + cP)
393+ let cQ = if ((aj == "neutrino"))
394+ then cC
395+ else aD(cC, cN)
396+ if ((aI > cC))
397+ then aH(aj, aI)
398+ else if (if (!(cO))
399+ then (cI > 0)
400+ else false)
401+ then throw(("You have exceeded swap limit! Next allowed swap height is " + toString((height + cJ))))
402+ else if (if (!(cO))
403+ then (cQ > cH)
404+ else false)
405+ then throw(((("You have exceeded your swap limit! Requested: " + toString(cQ)) + ", available: ") + toString(cH)))
406+ else if (aW)
407+ then aJ()
408+ else {
409+ let cR = if ((aj == "waves"))
410+ then ct(0)
411+ else nil
412+ $Tuple2(([IntegerEntry(aw(cD), cQ), IntegerEntry(ay(cD), height), IntegerEntry(al(aj, cD), (cL + cC)), IntegerEntry(ad(cD), bQ), IntegerEntry(ak(aj), (cK + cC)), StringEntry(bF(cD, cE), bV(aj, cC, bQ))] ++ cR), unit)
413+ }
364414 }
365415
366416
367-func cF (cy,M,bO,cG,cw) = {
368- let bt = addressFromStringValue(cy)
369- let cH = ak()
370- let bM = bN(cy, bO)
371- let bE = parseIntValue(bM[bm])
372- let X = bM[bc]
373- let bx = parseIntValue(bM[be])
374- let cI = bM[bd]
375- let bA = parseIntValue(bM[bi])
376- let cJ = valueOrElse(getInteger(this, ad(X)), n)
377- let cA = af(X)
378- let cB = ag(X, cy)
379- let bW = if ((15 >= size(bM)))
380- then $Tuple2(60, 1440)
381- else $Tuple2(parseIntValue(bM[bq]), parseIntValue(bM[br]))
382- let ay = {
383- let cK = cG
384- if ($isInstanceOf(cK, "ByteVector"))
385- then {
386- let bV = cK
387- bU(bO, bV, X, bA, bW)
388- }
389- else if ($isInstanceOf(cK, "Unit"))
390- then bE
391- else throw("Match error")
392- }
393- let ax = bb(M)
394- let az = bb((M - 1))
395- let cL = ba(ax)
396- let cM = if ((X == "waves"))
397- then $Tuple2(ao(bx, cL), aB)
398- else if ((X == "neutrino"))
399- then $Tuple2(al(bx, cL), unit)
400- else throw(("Unsupported swap type " + X))
401- let cN = bQ(cM._1, cJ)
402- let by = cN[o]
403- let bz = cN[p]
404- if (aF)
405- then au()
406- else if ((cI != "PENDING"))
417+func cS (cT,Y,ca,bS) = {
418+ let ax = addressFromStringValue(cT)
419+ let cU = az()
420+ let bY = bZ(cT, ca)
421+ let bQ = parseIntValue(bY[bz])
422+ let aj = bY[bp]
423+ let bJ = parseIntValue(bY[br])
424+ let cV = bY[bq]
425+ let bM = parseIntValue(bY[bv])
426+ let cW = valueOrElse(getInteger(this, ao(aj)), y)
427+ let cK = as(aj)
428+ let cL = at(aj, cT)
429+ let aN = bQ
430+ let aM = bn(Y)
431+ let aO = bn((Y - 1))
432+ let cN = bm(aM)
433+ let cX = if ((aj == "waves"))
434+ then $Tuple2(aD(bJ, cN), aR)
435+ else if ((aj == "neutrino"))
436+ then $Tuple2(aA(bJ, cN), unit)
437+ else throw(("Unsupported swap type " + aj))
438+ let cY = cc(cX._1, cW)
439+ let bK = cY[z]
440+ let bL = cY[A]
441+ if (aW)
442+ then aJ()
443+ else if ((cV != "PENDING"))
407444 then throw("swap has been already processed")
408- else if ((ay > height))
409- then throw((("please wait for: " + toString(ay)) + " block height to withdraw funds"))
410- else if (if (if ((M > aw))
445+ else if ((aN > height))
446+ then throw((("please wait for: " + toString(aN)) + " block height to withdraw funds"))
447+ else if (if (if ((Y > aL))
411448 then true
412- else (ay > ax))
449+ else (aN > aM))
413450 then true
414- else if ((az != 0))
415- then (az >= ay)
451+ else if ((aO != 0))
452+ then (aO >= aN)
416453 else false)
417- then av(M, aw, ax, ay, az)
418- else if ((0 >= cN[q]))
454+ then aK(Y, aL, aM, aN, aO)
455+ else if ((0 >= cY[B]))
419456 then throw("balance equals zero")
420- else if (if ((0 > cJ))
457+ else if (if ((0 > cW))
421458 then true
422- else (cJ >= l))
423- then throw(((("invalid outFeePart config for " + X) + " swap: outFeePart=") + toString(cJ)))
459+ else (cW >= w))
460+ then throw(((("invalid outFeePart config for " + aj) + " swap: outFeePart=") + toString(cW)))
424461 else {
425- let cE = if (if ((X == "neutrino"))
426- then (cM._1 > 0)
462+ let cR = if (if ((aj == "neutrino"))
463+ then (cX._1 > 0)
427464 else false)
428- then cn(cM._1)
465+ then ct(cX._1)
429466 else nil
430- $Tuple2((cE ++ [IntegerEntry(Z(X, cy), (cB - bx)), IntegerEntry(Y(X), (cA - bx)), ScriptTransfer(bt, by, cM._2), ScriptTransfer(cH, bz, cM._2), StringEntry(bs(cy, bO), bL(bM, cL, by, bz, ay, M, toBase58String(cw.transactionId)))]), unit)
467+ let cZ = (cR ++ [IntegerEntry(al(aj, cT), (cL - bJ)), IntegerEntry(ak(aj), (cK - bJ)), ScriptTransfer(ax, bK, cX._2), StringEntry(bF(cT, ca), bX(bY, cN, bK, bL, aN, Y, bS))])
468+ $Tuple2(cZ, AttachedPayment(cX._2, bL))
431469 }
432470 }
433471
434472
435-@Callable(cw)
436-func swapWavesToNeutrino () = {
437- let cx = value(cw.payments[0])
438- if (isDefined(cx.assetId))
439- then throw("Only Waves token is allowed for swapping.")
440- else cv("waves", cw)
473+@Callable(cs)
474+func constructor (da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl) = {
475+ let dm = cr(cs)
476+ if ((dm == dm))
477+ then if ((size(cs.payments) != 0))
478+ then throw("no payments allowed")
479+ else [StringEntry(C, da), StringEntry(D, db), StringEntry(E, dc), StringEntry(G, dd), StringEntry(H, de), StringEntry(O, df), IntegerEntry(K, dg), IntegerEntry(L, dh), IntegerEntry(M, di), IntegerEntry(N, dj), IntegerEntry(P, dk), IntegerEntry(Q, dl)]
480+ else throw("Strict value is not equal to itself.")
441481 }
442482
443483
444484
445-@Callable(cw)
446-func swapNeutrinoToWaves () = {
447- let cx = value(cw.payments[0])
448- if ((cx.assetId != aB))
449- then throw("Only appropriate Neutrino tokens are allowed for swapping.")
450- else cv("neutrino", cw)
485+@Callable(cs)
486+func constructorV2 (bb,bc,dn) = {
487+ let dm = cr(cs)
488+ if ((dm == dm))
489+ then if ((size(cs.payments) != 0))
490+ then throw("no payments allowed")
491+ else [StringEntry(J, bb), StringEntry(F, bc), IntegerEntry(ap(), dn)]
492+ else throw("Strict value is not equal to itself.")
451493 }
452494
453495
454496
455-@Callable(cw)
456-func withdraw (cy,M,bO) = cF(cy, M, bO, unit, cw)
497+@Callable(cs)
498+func swapWavesToNeutrino () = if ((size(cs.payments) != 1))
499+ then throw("swapWavesToNeutrino require only one payment")
500+ else {
501+ let do = value(cs.payments[0])
502+ if (isDefined(do.assetId))
503+ then throw("Only Waves token is allowed for swapping.")
504+ else {
505+ let ax = toString(cs.caller)
506+ let cE = toBase58String(cs.transactionId)
507+ let dp = r(invoke(this, "swapParamsByUserSYSREADONLY", [ax, 0], nil))
508+ let dq = cB("waves", do.amount, ax, cE, dp)
509+ dq
510+ }
511+ }
457512
458513
459514
460-@Callable(cw)
461-func withdrawRand (cy,M,bO,bV) = cF(cy, M, bO, bV, cw)
515+@Callable(cs)
516+func swapNeutrinoToWaves () = if ((size(cs.payments) != 1))
517+ then throw("swapNeutrinoToWaves require only one payment")
518+ else {
519+ let do = value(cs.payments[0])
520+ if ((do.assetId != aR))
521+ then throw("Only appropriate Neutrino tokens are allowed for swapping.")
522+ else {
523+ let ax = toString(cs.caller)
524+ let cE = toBase58String(cs.transactionId)
525+ let dp = r(invoke(this, "swapParamsByUserSYSREADONLY", [ax, 0], nil))
526+ let dq = cB("neutrino", do.amount, ax, cE, dp)
527+ dq
528+ }
529+ }
462530
463531
464532
465-@Callable(cw)
466-func transferToAuction () = {
467- let cO = (aP - assetBalance(addressFromStringValue(aC), aH))
468- let cP = (aQ - assetBalance(addressFromStringValue(aA), aB))
469- if (aF)
470- then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
471- else if ((cO > (1 * l)))
472- then [ScriptTransfer(addressFromStringValue(aC), cO, aH)]
473- else if ((cP >= (1 * l)))
474- then [ScriptTransfer(addressFromStringValue(aA), cP, aB)]
475- else throw(((((((("bond were generated or do not need it. Deficit:" + toString(cO)) + "|") + toString(0)) + ". Surplus:") + toString(cP)) + "|") + toString(aQ)))
533+@Callable(cs)
534+func withdraw (cT,Y,ca) = if ((size(cs.payments) != 0))
535+ then throw("no payments allowed")
536+ else {
537+ let dr = cS(cT, Y, ca, toBase58String(cs.transactionId))
538+ let cZ = dr._1
539+ let ds = dr._2
540+ let dt = invoke(bc, "deposit", nil, [ds])
541+ if ((dt == dt))
542+ then cZ
543+ else throw("Strict value is not equal to itself.")
544+ }
545+
546+
547+
548+@Callable(cs)
549+func transferToAuction () = if ((size(cs.payments) != 0))
550+ then throw("no payments allowed")
551+ else {
552+ let du = j(invoke(bb, "calcNeutinoMetricsREADONLY", nil, nil))
553+ let dv = p(du[3])
554+ let dw = p(du[5])
555+ let dx = p(du[6])
556+ let dy = p(du[9])
557+ let dz = (dw - assetBalance(addressFromStringValue(aS), aY))
558+ let dA = (dx - assetBalance(addressFromStringValue(aP), aR))
559+ if (aW)
560+ then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
561+ else if ((dz > (1 * w)))
562+ then [ScriptTransfer(addressFromStringValue(aS), dz, aY)]
563+ else if ((dA >= (1 * w)))
564+ then [ScriptTransfer(addressFromStringValue(aP), dA, aR)]
565+ else throw(((((((("bond were generated or do not need it. Deficit:" + toString(dz)) + "|") + toString(0)) + ". Surplus:") + toString(dA)) + "|") + toString(dx)))
566+ }
567+
568+
569+
570+@Callable(cs)
571+func transferUsdnToUser (aB,dB) = if ((cs.caller != addressFromStringValue(aS)))
572+ then throw("Only auction contract is authorized")
573+ else [ScriptTransfer(addressFromStringValue(dB), aB, aR)]
574+
575+
576+
577+@Callable(cs)
578+func acceptWaves () = if ((cs.caller != addressFromStringValue(aS)))
579+ then throw("Currently only auction contract is allowed to call")
580+ else $Tuple2(ct(0), "success")
581+
582+
583+
584+@Callable(cs)
585+func swapParamsByUserSYSREADONLY (cD,dC) = {
586+ let dD = j(invoke(bc, "nsbtStakingSYSREADONLY", [cD], nil))
587+ if ((dD == dD))
588+ then {
589+ let dE = (p(dD[0]) + dC)
590+ let dF = (p(dD[1]) + dC)
591+ let cH = p(invoke(bb, "calcSwapLimitREADONLY", [dE], nil))
592+ let dG = valueOrElse(getInteger(this, ay(cD)), 0)
593+ let dH = ar()
594+ let dI = (height - dG)
595+ let dJ = (dI >= dH)
596+ let cI = if (dJ)
597+ then 0
598+ else valueOrElse(getInteger(this, aw(cD)), 0)
599+ let cJ = if (dJ)
600+ then 0
601+ else (dH - dI)
602+ $Tuple2(nil, $Tuple5(cH, cI, cJ, dE, dF))
603+ }
604+ else throw("Strict value is not equal to itself.")
476605 }
477606
478607
479-
480-@Callable(cw)
481-func acceptWaves () = if ((cw.caller != addressFromStringValue(aC)))
482- then throw("Currently only auction contract is allowed to call")
483- else $Tuple2(cn(0), "success")
484-
485-
486-@Verifier(aT)
487-func cQ () = {
488- let cR = toBase58String(aT.id)
489- let cS = ((((if (sigVerify(aT.bodyBytes, aT.proofs[0], fromBase58String(i[0])))
608+@Verifier(bf)
609+func dK () = {
610+ let dL = toBase58String(bf.id)
611+ let dM = ((((if (sigVerify(bf.bodyBytes, bf.proofs[0], fromBase58String(t[0])))
490612 then 1
491- else 0) + (if (sigVerify(aT.bodyBytes, aT.proofs[1], fromBase58String(i[1])))
613+ else 0) + (if (sigVerify(bf.bodyBytes, bf.proofs[1], fromBase58String(t[1])))
492614 then 1
493- else 0)) + (if (sigVerify(aT.bodyBytes, aT.proofs[2], fromBase58String(i[2])))
615+ else 0)) + (if (sigVerify(bf.bodyBytes, bf.proofs[2], fromBase58String(t[2])))
494616 then 1
495- else 0)) + (if (sigVerify(aT.bodyBytes, aT.proofs[3], fromBase58String(i[3])))
617+ else 0)) + (if (sigVerify(bf.bodyBytes, bf.proofs[3], fromBase58String(t[3])))
496618 then 2
497619 else 0))
498- let cK = aT
499- if ($isInstanceOf(cK, "SponsorFeeTransaction"))
620+ let l = bf
621+ if ($isInstanceOf(l, "SponsorFeeTransaction"))
500622 then {
501- let cT = cK
502- if (aS(cT))
503- then (cS >= 3)
623+ let dN = l
624+ if (be(dN))
625+ then (dM >= 3)
504626 else false
505627 }
506- else (cS >= 3)
628+ else (dM >= 3)
507629 }
508630

github/deemru/w8io/6500d08 
179.35 ms