tx · 4THcn7Ks9pm4T91eUrorvHvzBTNusSHv7wFnk862wsxX

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02700000 Waves

2023.03.27 18:11 [2508531] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "4THcn7Ks9pm4T91eUrorvHvzBTNusSHv7wFnk862wsxX", "fee": 2700000, "feeAssetId": null, "timestamp": 1679929935014, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "41CuaVXEUEDQMarfcEn3UMgXh3rwQYjFcSrzUUYBtt8ysNuGLrz9MzizoQW9oPRQzDtKQLXgU1Ne8CvCKjo93hBK" ], "script": "base64:BgLULwgCEggKBggIAQEBCBIFCgMBCAISAwoBARIDCgEBEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggBEgASABIFCgMICAQSAwoBCBIDCgEIEgQKAggIEgQKAggIEgMKAQgSACIDU0VQIgZTQ0FMRTgiBU1VTFQ4Ig5QT09MV0VJR0hUTVVMVCIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIEc3RyZiIHYWRkcmVzcyIDa2V5IgNpb3oiA2lvZCIKZGVmYXVsdFZhbCIDaW9mIgNhYnMiA3ZhbCIDYWFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgJhaSIGdmFsSW50IhtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MiHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbCIWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZSIacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQiE3JlZmVycmFsUHJvZ3JhbU5hbWUiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCINa2V5RmFjdG9yeUNmZyIQa2V5RmFjdG9yeUxwTGlzdCIma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiCmxwQXNzZXRTdHIiFGtleUZhY3RvcnlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiG2tleUZhY3RvcnlQb29sV2VpZ2h0SGlzdG9yeSILcG9vbEFkZHJlc3MiA251bSIYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsIgpyZWFkTHBMaXN0IhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50IiFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQiFWtleUVtaXNzaW9uU3RhcnRCbG9jayIda2V5Qm9vc3RpbmdWMkxhc3RVcGRhdGVIZWlnaHQiFWtleUJvb3N0aW5nVjJJbnRlZ3JhbCIba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzIhNrZXlFbWlzc2lvbkVuZEJsb2NrIg1rZXlOZXh0UGVyaW9kIh9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0Ig1JZHhDZmdBc3NldElkIhNJZHhDZmdNaW5Mb2NrQW1vdW50IhVJZHhDZmdNaW5Mb2NrRHVyYXRpb24iFUlkeENmZ01heExvY2tEdXJhdGlvbiISSWR4Q2ZnTWF0aENvbnRyYWN0IglrZXlDb25maWciFXJlYWRDb25maWdBcnJheU9yRmFpbCIMbWF0aENvbnRyYWN0Ig1mb3JtYXRDb25maWdTIgdhc3NldElkIg1taW5Mb2NrQW1vdW50Ig9taW5Mb2NrRHVyYXRpb24iD21heExvY2tEdXJhdGlvbiIMZm9ybWF0Q29uZmlnIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIOSWR4TG9ja1VzZXJOdW0iDUlkeExvY2tBbW91bnQiDElkeExvY2tTdGFydCIPSWR4TG9ja0R1cmF0aW9uIg1JZHhMb2NrUGFyYW1LIg1JZHhMb2NrUGFyYW1CIhNrZXlMb2NrUGFyYW1zUmVjb3JkIgt1c2VyQWRkcmVzcyIacmVhZExvY2tQYXJhbXNSZWNvcmRPckZhaWwiF2Zvcm1hdExvY2tQYXJhbXNSZWNvcmRTIgd1c2VyTnVtIgZhbW91bnQiBXN0YXJ0IghkdXJhdGlvbiIGcGFyYW1LIgZwYXJhbUIiEGxhc3RVcGRUaW1lc3RhbXAiCWd3eEFtb3VudCIWZm9ybWF0TG9ja1BhcmFtc1JlY29yZCIOa2V5TmV4dFVzZXJOdW0iEmtleVVzZXIyTnVtTWFwcGluZyISa2V5TnVtMlVzZXJNYXBwaW5nIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50IhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQiIGtleVN0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhJrZXlTdGF0c0xvY2tzQ291bnQiEmtleVN0YXRzVXNlcnNDb3VudCIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiImtleVVzZXJMcEJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiCWxwQXNzZXRJZCIXa2V5VXNlck1heEJvb3N0SU5URUdSQUwiGGtleVRvdGFsTWF4Qm9vc3RJTlRFR1JBTCIha2V5VXNlckJvb3N0QXZhbGFpYmxlVG9DbGFpbVRvdGFsIhNrZXlVc2VyQm9vc3RDbGFpbWVkIhFrZXlUb3RhbENhY2hlZEd3eCIba2V5VG90YWxDYWNoZWRHd3hDb3JyZWN0aXZlIgdrZXlWb3RlIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiBWVwb2NoIhVrZXlTdGFydEhlaWdodEJ5RXBvY2giEWtleUN1cnJlbnRFcG9jaFVpIhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIda2V5Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiJWtleVZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiIWtleVZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIVa2V5Vm90ZVN0YWtlZEludGVncmFsIh1rZXlWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIZa2V5Vm90ZVN0YWtlZEludGVncmFsTGFzdCIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0Ig9zdGFraW5nQ29udHJhY3QiEWd3eFJld2FyZENvbnRyYWN0IhZscFN0YWtpbmdQb29sc0NvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0Igpib29zdENvZWZmIgFAIhFnZXRUb3RhbENhY2hlZEd3eCIHY29ycmVjdCIOY3VycmVudEVwb2NoVWkiDmtleVRhcmdldEVwb2NoIhF0YXJnZXRFcG9jaE9wdGlvbiIRdG90YWxDYWNoZWRHd3hSYXciFWlzQ29ycmVjdGlvbkFjdGl2YXRlZCIKY29ycmVjdGl2ZSIMSGlzdG9yeUVudHJ5IgR0eXBlIgR1c2VyIglsb2NrU3RhcnQiAWsiAWIiCmhpc3RvcnlLRVkiC2hpc3RvcnlEQVRBIgpTdGF0c0VudHJ5Ig50b3RhbExvY2tlZEluYyILZHVyYXRpb25JbmMiDGxvY2tDb3VudEluYyINdXNlcnNDb3VudEluYyIbbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzS0VZIg1sb2Nrc0NvdW50S0VZIg11c2Vyc0NvdW50S0VZIg50b3RhbEFtb3VudEtFWSIYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIgpsb2Nrc0NvdW50Igp1c2Vyc0NvdW50Igt0b3RhbEFtb3VudCINY2FsY0d3eEFtb3VudCIEa1JhdyIEYlJhdyIBaCIFU0NBTEUiD0xvY2tQYXJhbXNFbnRyeSINdXNlckFtb3VudEtFWSINc3RhcnRCbG9ja0tFWSILZHVyYXRpb25LRVkiBGtLRVkiBGJLRVkiDGtCeVBlcmlvZEtFWSIMYkJ5UGVyaW9kS0VZIiJleHRyYWN0T3B0aW9uYWxQYXltZW50QW1vdW50T3JGYWlsIg9leHBlY3RlZEFzc2V0SWQiA3BtdCIZY2FsY1VzZXJHd3hBbW91bnRBdEhlaWdodCIMdGFyZ2V0SGVpZ2h0IgVFTVBUWSISdXNlcjJOdW1NYXBwaW5nS0VZIg1nd3hBbW91bnRDYWxjIhRjYWxjQ3VycmVudEd3eEFtb3VudCIaZ2V0Vm90aW5nRW1pc3Npb25FcG9jaEluZm8iDSR0MDE3MTAxMTczOTEiEmxhc3RGaW5hbGl6ZWRFcG9jaCIXY3VycmVudEVwb2NoU3RhcnRIZWlnaHQiGGdldFBvb2xBc3NldHNCeUxwQXNzZXRJZCIQaWR4QW1vdW50QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIgdwb29sQ2ZnIhRnZXRVc2VyVm90ZUZpbmFsaXplZCINJHQwMTgwODIxODE2MiINJHQwMTgxNjUxODI0MCILdXNlclZvdGVLZXkiCHVzZXJWb3RlIhFnZXRVc2VyVm90ZVN0YWtlZCIMc3Rha2VkQnlVc2VyIhVnZXRWb3RpbmdSZXN1bHRTdGFrZWQiDSR0MDE4Nzg0MTg4NjQiF3ZvdGluZ1Jlc3VsdFN0YWtlZFN0YXJ0IhJ2b3RpbmdSZXN1bHRTdGFrZWQiHWdldFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIg0kdDAxOTIyNjE5MzA2Ih52b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbFByZXYiInZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiHHZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGgiGnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIiFyZWZyZXNoVm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiD3N0YWtlZFZvdGVEZWx0YSINJHQwMjAxNDMyMDIyMyIVdm90aW5nUmVzdWx0U3Rha2VkTmV3IhlnZXRVc2VyVm90ZVN0YWtlZEludGVncmFsIg0kdDAyMDgzNDIwOTE0Ig51c2VyVm90ZVN0YWtlZCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbFByZXYiHnVzZXJWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIYdXNlclZvdGVTdGFrZWRJbnRlZ3JhbERoIhZ1c2VyVm90ZVN0YWtlZEludGVncmFsIhlyZWZyZXNoVm90ZVN0YWtlZEludGVncmFsIgRlZGdlIg0kdDAyMTcwMjIxNzgyIhF1c2VyVm90ZUZpbmFsaXplZCIHYWN0aW9ucyITdm90aW5nUmVzdWx0QWN0aW9ucyILdm90ZUFjdGlvbnMiG2dldFN0YWtlZFZvdGVzSW50ZWdyYWxzRGlmZiINJHQwMjI2MzYyMjcxNiIddXNlclZvdGVTdGFrZWRJbnRlZ3JhbExhc3RLZXkiGnVzZXJWb3RlU3Rha2VkSW50ZWdyYWxMYXN0IiF2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3RLZXkiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbERpZmYiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGlmZiIccmVmcmVzaEJvb3N0RW1pc3Npb25JbnRlZ3JhbCISd3hFbWlzc2lvblBlckJsb2NrIiBib29zdGluZ1YyTGFzdFVwZGF0ZUhlaWdodE9wdGlvbiIYYm9vc3RpbmdWMkluZ2VyZ2FsT3B0aW9uIgtlbWlzc2lvbkVuZCICZGgiEGxhc3RVcGRhdGVIZWlnaHQiFWJvb3N0RW1pc3Npb25QZXJCbG9jayIZYm9vc3RFbWlzc2lvbkludGVncmFsUHJldiIVYm9vc3RFbWlzc2lvbkludGVncmFsIhRpbnRlcm5hbENsYWltV3hCb29zdCIIcmVhZE9ubHkiEHVzZXJSZWNvcmRPcHRpb24iD3VzZXJSZWNvcmRBcnJheSIKdXNlck51bVN0ciIIRU1QVFlTVFIiCnBvb2xXZWlnaHQiDnBvb2xBZGRyZXNzU3RyIiJ1c2VyTHBCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIiB1c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbEtFWSIddXNlckJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWwiGXVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiDSR0MDI2MzM1MjY0NzQiG3N0YWtlZFZvdGVzSW50ZWdyYWxzQWN0aW9ucyIUdXNlclZvdGVJbnRlZ3JhbERpZmYiFnRvdGFsVm90ZXNJbnRlZ3JhbERpZmYiHXBvb2xVc2VyQm9vc3RFbWlzc2lvbkludGVncmFsIiF1c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWxOZXciCWRhdGFTdGF0ZSIFZGVidWciC2xvY2tBY3Rpb25zIghjZmdBcnJheSIKYXNzZXRJZFN0ciIJcG10QW1vdW50Ig5uZXh0VXNlck51bUtFWSIOdXNlcklzRXhpc3RpbmciB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IhNnV3hQYXJhbXNSZXN1bHRMaXN0IgNhcnIiEWZhY3RvcnlBZGRyZXNzU3RyIg5sb2NrQXNzZXRJZFN0ciILbWluRHVyYXRpb24iC21heER1cmF0aW9uIgtjaGVja0NhbGxlciIPcmVmZXJyZXJBZGRyZXNzIglzaWduYXR1cmUiDSR0MDMxMDg1MzExNTAiEWxvY2tBY3Rpb25zUmVzdWx0Ig9yZWZlcnJhbEFkZHJlc3MiBnJlZkludiIRdXBkYXRlUmVmQWN0aXZpdHkiDSR0MDMxNjA4MzE2NzMiDWRlbHRhRHVyYXRpb24iCnVzZXJBbW91bnQiDGxvY2tEdXJhdGlvbiIHbG9ja0VuZCIRcmVtYWluaW5nRHVyYXRpb24iDXVzZXJBbW91bnROZXciD2xvY2tEdXJhdGlvbk5ldyIMbG9ja1N0YXJ0TmV3IgtjdXJyVXNlckd3eCIHZ3d4RGlmZiIXdG90YWxDYWNoZWRHd3hDb3JyZWN0ZWQiDSR0MDM0Nzc4MzQ4ODAiEnVzZXJCb29zdEF2YWlsYWJsZSINJHQwMzUwMTIzNTExMyIQbWF4RGVsdGFEdXJhdGlvbiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXmLAQABYQICX18AAWIACAABYwCAwtcvAAFkBQFjAQFlAQFmCQC5CQIJAMwIAgIOYm9vc3RpbmcucmlkZToJAMwIAgUBZgUDbmlsAgEgAQFnAQFmCQACAQkBAWUBBQFmAQFoAgFpAWoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQFpBQFqCQEBZQEJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWoCDyBpcyBub3QgZGVmaW5lZAEBawIBaQFqCQELdmFsdWVPckVsc2UCCQCaCAIFAWkFAWoAAAEBbAMBaQFqAW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUBaQUBagUBbQEBbgIBaQFqCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBaQUBagkBAWUBCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFqAg8gaXMgbm90IGRlZmluZWQBAW8BAXADCQBmAgAABQFwCQEBLQEFAXAFAXABAXEBAXAEAXIFAXADCQABAgUBcgIJTGlzdFtBbnldBAFzBQFyBQFzCQEBZwECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEBdAEBcAQBcgUBcAMJAAECBQFyAgNJbnQEAXUFAXIFAXUJAQFnAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQF2AAkAuQkCCQDMCAICBCVzJXMJAMwIAgIGY29uZmlnCQDMCAICGHJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwUDbmlsBQFhAAF3CQERQGV4dHJOYXRpdmUoMTA2MikBCQEBaAIFBHRoaXMJAQF2AAABeAkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgILcHJvZ3JhbU5hbWUFA25pbAUBYQABeQIGd3hsb2NrAAF6CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAXgFAXkBAUEAAhwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAAFCAAEAAUMAAgABRAADAAFFAAQAAUYABQABRwAGAAFIAAcAAUkACAABSgAJAAFLAAoAAUwACwEBTQACESVzX19mYWN0b3J5Q29uZmlnAQFOAAIQJXNfX2xwVG9rZW5zTGlzdAEBTwEBUAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFQCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFhAQFRAQFSCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgpwb29sV2VpZ2h0CQDMCAIFAVIFA25pbAUBYQEBUwIBVAFVCQCsAgIJAKwCAgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAVQCAl9fCQCkAwEFAVUBAVYACQERQGV4dHJOYXRpdmUoMTA2MikBCQEBaAIFBHRoaXMJAQFBAAEBVwAJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCCQEBVgAJAQFOAAIABQFhAQFYAQFZCQC1CQIJAQFoAgUBWQkBAU0ABQFhAQFaAQJhYQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYQUBQwECYWIBAmFhCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFhBQFGAQJhYwECYWEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWEFAUIBAmFkAQJhYQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYQUBSwECYWUAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYWYAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAmFnAAIbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQJhaAACHiVzJXNfX3JhdGVQZXJCbG9ja01heF9fY3VycmVudAECYWkAAholcyVzX19lbWlzc2lvbl9fc3RhcnRCbG9jawECYWoAAhwlcyVzX19ib29zdGluZ1YyX19zdGFydEJsb2NrAQJhawACGiVzJXNfX2Jvb3N0aW5nVjJfX2ludGVncmFsAQJhbAACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYW0AAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAmFuAAIOJXNfX25leHRQZXJpb2QBAmFvAAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAACYXAAAQACYXEAAgACYXIAAwACYXMABAACYXQABQECYXUAAgolc19fY29uZmlnAQJhdgAJALUJAgkBAWgCBQR0aGlzCQECYXUABQFhAAJhdwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCCQECYXYABQJhdAECYXgFAmF5AmF6AmFBAmFCAmF3CQC5CQIJAMwIAgIIJXMlZCVkJWQJAMwIAgUCYXkJAMwIAgUCYXoJAMwIAgUCYUEJAMwIAgUCYUIJAMwIAgUCYXcFA25pbAUBYQECYUMFAmF5AmF6AmFBAmFCAmF3CQECYXgFBQJheQkApAMBBQJhegkApAMBBQJhQQkApAMBBQJhQgUCYXcBAmFEAAQBcgkAoggBCQECYWUAAwkAAQIFAXICBlN0cmluZwQCYUUFAXIJANkEAQUCYUUDCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhRgAEAXIJAKIIAQkBAmFmAAMJAAECBQFyAgZTdHJpbmcEAmFFBQFyCQDZBAEFAmFFAwkAAQIFAXICBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYUcBAmFIBAJhSQkBAWcBAhFQZXJtaXNzaW9uIGRlbmllZAQBcgkBAmFEAAMJAAECBQFyAgpCeXRlVmVjdG9yBAJhSgUBcgMJAAACCAUCYUgPY2FsbGVyUHVibGljS2V5BQJhSgYFAmFJAwkAAQIFAXICBFVuaXQDCQAAAggFAmFIBmNhbGxlcgUEdGhpcwYFAmFJCQACAQILTWF0Y2ggZXJyb3IAAmFLAAEAAmFMAAIAAmFNAAMAAmFOAAQAAmFPAAUAAmFQAAYBAmFRAQJhUgkAuQkCCQDMCAICCiVzJXNfX2xvY2sJAMwIAgUCYVIFA25pbAUBYQECYVMBAmFSCQC1CQIJAQFoAgUEdGhpcwkBAmFRAQUCYVIFAWEBAmFUCAJhVQJhVgJhVwJhWAJhWQJhWgJiYQJiYgkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgUCYVUJAMwIAgUCYVYJAMwIAgUCYVcJAMwIAgUCYVgJAMwIAgUCYVkJAMwIAgUCYVoJAMwIAgUCYmEJAMwIAgUCYmIFA25pbAUBYQECYmMHAmFVAmFWAmFXAmFYAmFZAmFaAmJiCQECYVQIBQJhVQkApAMBBQJhVgkApAMBBQJhVwkApAMBBQJhWAkApAMBBQJhWQkApAMBBQJhWgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkApAMBBQJiYgECYmQAAg8lc19fbmV4dFVzZXJOdW0BAmJlAQJhUgkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fdXNlcjJudW0JAMwIAgUCYVIFA25pbAUBYQECYmYBAVUJALkJAgkAzAgCAhklcyVzJXNfX21hcHBpbmdfX251bTJ1c2VyCQDMCAIFAVUFA25pbAUBYQECYmcBAmFVCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVQkAzAgCAgZhbW91bnQFA25pbAUBYQECYmgBAmFVCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVQkAzAgCAgVzdGFydAUDbmlsBQFhAQJiaQECYVUJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFVCQDMCAICCGR1cmF0aW9uBQNuaWwFAWEBAmJqAQJhVQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVUJAMwIAgIBawUDbmlsBQFhAQJiawECYVUJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFVCQDMCAICAWIFA25pbAUBYQECYmwCAmFVAmJtCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgUCYVUJAMwIAgIBawkAzAgCBQJibQUDbmlsBQFhAQJibgICYVUCYm0JALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCBQJhVQkAzAgCAgFiCQDMCAIFAmJtBQNuaWwFAWEBAmJvAAIeJXMlc19fc3RhdHNfX2FjdGl2ZVRvdGFsTG9ja2VkAQJicAACJSVzJXNfX3N0YXRzX19sb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MBAmJxAAIXJXMlc19fc3RhdHNfX2xvY2tzQ291bnQBAmJyAAIdJXMlc19fc3RhdHNfX2FjdGl2ZVVzZXJzQ291bnQBAmJzAQJhVQkAuQkCCQDMCAICICVzJWRfX3VzZXJCb29zdEVtaXNzaW9uTGFzdEludFYyCQDMCAIFAmFVBQNuaWwFAWEBAmJ0AgJhVQJidQkAuQkCCQDMCAICICVzJWRfX3VzZXJCb29zdEVtaXNzaW9uTGFzdEludFYyCQDMCAIFAmFVCQDMCAIFAmJ1BQNuaWwFAWEBAmJ2AQJhVQkAuQkCCQDMCAICESVzJWRfX21heEJvb3N0SW50CQDMCAIFAmFVBQNuaWwFAWEBAmJ3AAIYJXMlc19fbWF4Qm9vc3RJbnRfX3RvdGFsAQJieAECYVUJALkJAgkAzAgCAiQlcyVkX191c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWwJAMwIAgUCYVUFA25pbAUBYQECYnkBAmFVCQC5CQIJAMwIAgIWJXMlZF9fdXNlckJvb3N0Q2xhaW1lZAkAzAgCBQJhVQUDbmlsBQFhAQJiegACFiVzJXNfX2d3eENhY2hlZF9fdG90YWwBAmJBAAIcJXNfX2d3eENhY2hlZFRvdGFsQ29ycmVjdGl2ZQECYkIEAmJDAmJEAWkCYkUJALkJAgkAzAgCAgolcyVzJXMlcyVkCQDMCAICBHZvdGUJAMwIAgUCYkMJAMwIAgUCYkQJAMwIAgkApQgBBQFpCQDMCAIJAKQDAQUCYkUFA25pbAUBYQECYkYBAmJFCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgtzdGFydEhlaWdodAkAzAgCCQCkAwEFAmJFBQNuaWwFAWEBAmJHAAkAuQkCCQDMCAICAiVzCQDMCAICDmN1cnJlbnRFcG9jaFVpBQNuaWwFAWEBAmJIAgJiSQJiRQkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAhJ2b3RpbmdSZXN1bHRTdGFrZWQJAMwIAgUCYkkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiSgICYkkCYkUJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgIadm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwJAMwIAgUCYkkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiSwICYkkCYkUJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgIqdm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxMYXN0VXBkYXRlSGVpZ2h0CQDMCAIFAmJJCQDMCAIJAKQDAQUCYkUFA25pbAUBYQECYkwDAmJJAWkCYkUJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAh52b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3QJAMwIAgUCYkkJAMwIAgkApQgBBQFpCQDMCAIJAKQDAQUCYkUFA25pbAUBYQECYk0DAmJJAWkCYkUJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAhJ2b3RlU3Rha2VkSW50ZWdyYWwJAMwIAgUCYkkJAMwIAgkApQgBBQFpCQDMCAIJAKQDAQUCYkUFA25pbAUBYQECYk4DAmJJAWkCYkUJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAiJ2b3RlU3Rha2VkSW50ZWdyYWxMYXN0VXBkYXRlSGVpZ2h0CQDMCAIFAmJJCQDMCAIJAKUIAQUBaQkAzAgCCQCkAwEFAmJFBQNuaWwFAWEBAmJPAwJiSQFpAmJFCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIWdm90ZVN0YWtlZEludGVncmFsTGFzdAkAzAgCBQJiSQkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiUAICYlECYkkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3Rha2VkCQDMCAIFAmJRCQDMCAIFAmJJBQNuaWwFAWEAAmJSCQEBVgAAAmFhCQEBWAEFAmJSAAJiUwkBAmFiAQUCYWEAAmJUCQECYWMBBQJhYQACYlUJAQJhZAEFAmFhAAJiVgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQC5CQIJAMwIAgICJXMJAMwIAgIWbHBTdGFraW5nUG9vbHNDb250cmFjdAUDbmlsBQFhCQEBZQECLmxwX3N0YWtpbmdfcG9vbHMgY29udHJhY3QgYWRkcmVzcyBpcyB1bmRlZmluZWQJAQFlAQIpaW52YWxpZCBscF9zdGFraW5nX3Bvb2xzIGNvbnRyYWN0IGFkZHJlc3MAAmJXCQC5CQIJAMwIAgICJXMJAMwIAgIWdm90aW5nRW1pc3Npb25Db250cmFjdAUDbmlsBQFhAAJiWAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUCYlIFAmJXAAJiWQoAAmJaCQD8BwQFAmJTAhVnZXRCb29zdENvZWZmUkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJaAgNJbnQFAmJaCQACAQkArAICCQADAQUCYloCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECY2EBAmNiBAJjYwkBEUBleHRyTmF0aXZlKDEwNTApAgUCYlgJAQJiRwAEAmNkCQC5CQIJAMwIAgIEJXMlcwkAzAgCAil0b3RhbENhY2hlZEd3eENvcnJlY3Rpb25fX2FjdGl2YXRpb25FcG9jaAUDbmlsBQFhBAJjZQkAmggCBQR0aGlzBQJjZAQCY2YJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJ6AAAABAJjZwMJAQlpc0RlZmluZWQBBQJjZQkAZwIFAmNjCQEFdmFsdWUBBQJjZQcEAmNoAwMFAmNnBQJjYgcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJBAAAAAAAJAJYDAQkAzAgCAAAJAMwIAgkAZAIFAmNmBQJjaAUDbmlsAQJjaQgCY2oCY2sCYVYCY2wCYVgCY20CY24CYUgEAmNvCQC5CQIJAMwIAgIRJXMlcyVzJXNfX2hpc3RvcnkJAMwIAgUCY2oJAMwIAgUCY2sJAMwIAgkA2AQBCAUCYUgNdHJhbnNhY3Rpb25JZAUDbmlsBQFhBAJjcAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFAmFWCQDMCAIJAKQDAQUCY2wJAMwIAgkApAMBBQJhWAkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY24FA25pbAUBYQkBC1N0cmluZ0VudHJ5AgUCY28FAmNwAQJjcQQCY3ICY3MCY3QCY3UEAmN2CQECYnAABAJjdwkBAmJxAAQCY3gJAQJicgAEAmN5CQECYm8ABAJjegkBAWsCBQR0aGlzBQJjdgQCY0EJAQFrAgUEdGhpcwUCY3cEAmNCCQEBawIFBHRoaXMFAmN4BAJjQwkBAWsCBQR0aGlzBQJjeQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3YJAGQCBQJjegUCY3MJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN3CQBkAgUCY0EFAmN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjeAkAZAIFAmNCBQJjdQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3kJAGQCBQJjQwUCY3IFA25pbAECY0QDAmNFAmNGAmNHBAJjSADoBwkAaQIJAGQCCQBoAgUCY0UFAmNHBQJjRgUCY0gBAmNJCAJhUgJhVQJhVgJhVwJhWAJjbQJjbgJibQQCY0oJAQJiZwEFAmFVBAJjSwkBAmJoAQUCYVUEAmNMCQECYmkBBQJhVQQCY00JAQJiagEFAmFVBAJjTgkBAmJrAQUCYVUEAmNPCQECYmwCBQJhVQUCYm0EAmNQCQECYm4CBQJhVQUCYm0EAmJiCQECY0QDBQJjbQUCY24FBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY0oFAmFWCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjSwUCYVcJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNMBQJhWAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY00FAmNtCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjTgUCY24JAMwIAgkBDEludGVnZXJFbnRyeQIFAmNPBQJjbQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY1AFAmNuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhUQEFAmFSCQECYmMHBQJhVQUCYVYFAmFXBQJhWAUCY20FAmNuBQJiYgUDbmlsAQJjUQICYUgCY1IDCQBmAgkAkAMBCAUCYUgIcGF5bWVudHMAAQkBAWcBAhtvbmx5IG9uZSBwYXltZW50IGlzIGFsbG93ZWQDCQAAAgkAkAMBCAUCYUgIcGF5bWVudHMAAAAABAJjUwkAkQMCCAUCYUgIcGF5bWVudHMAAAMJAQIhPQIJAQV2YWx1ZQEIBQJjUwdhc3NldElkBQJjUgkBAWcBAhtpbnZhbGlkIGFzc2V0IGlkIGluIHBheW1lbnQIBQJjUwZhbW91bnQBAmNUAgJhUgJjVQQCY1YCBWVtcHR5BAJjVwkBAmJlAQUCYVIEAmFVCQELdmFsdWVPckVsc2UCCQCiCAEFAmNXBQJjVgQCY20JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJqAQUCYVUAAAQCY24JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJrAQUCYVUAAAQCY1gJAQJjRAMFAmNtBQJjbgUCY1UEAmJiAwkAZgIAAAUCY1gAAAUCY1gFAmJiAQJjWQECYVIJAQJjVAIFAmFSBQZoZWlnaHQBAmNaAAQCZGEEAmNjCQEFdmFsdWUBCQCaCAIFAmJYCQECYkcABAJkYgkAZQIFAmNjAAEDCQBmAgAABQJkYgkBAWcBAg1pbnZhbGlkIGVwb2NoCQCUCgIFAmNjBQJkYgQCY2MIBQJkYQJfMQQCZGIIBQJkYQJfMgQCZGMJAQV2YWx1ZQEJAJoIAgUCYlgJAQJiRgEFAmNjCQCUCgIFAmRiBQJkYwECZGQBAmJJBAJkZQAEBAJkZgAFBAJkZwoAAmJaCQD8BwQFAmJSAiBnZXRQb29sQ29uZmlnQnlMcEFzc2V0SWRSRUFET05MWQkAzAgCBQJiSQUDbmlsBQNuaWwDCQABAgUCYloCCUxpc3RbQW55XQUCYloJAAIBCQCsAgIJAAMBBQJiWgIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldBAJiQwoAAmJaCQCRAwIFAmRnBQJkZQMJAAECBQJiWgIGU3RyaW5nBQJiWgkAAgEJAKwCAgkAAwEFAmJaAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmJECgACYloJAJEDAgUCZGcFAmRmAwkAAQIFAmJaAgZTdHJpbmcFAmJaCQACAQkArAICCQADAQUCYloCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQJiQwUCYkQBAmRoAgJiSQJiUQQCYVIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJRBAJkaQkBAmNaAAQCZGIIBQJkaQJfMQQCZGMIBQJkaQJfMgQCZGoJAQJkZAEFAmJJBAJiQwgFAmRqAl8xBAJiRAgFAmRqAl8yBAJkawkBAmJCBAUCYkMFAmJEBQJhUgUCZGIEAmRsCQELdmFsdWVPckVsc2UCCQCaCAIFAmJYBQJkawAABQJkbAECZG0CAmJJAmJRBAJkbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiVAkBAmJQAgUCYlEFAmJJAAAEAmRsCQECZGgCBQJiSQUCYlEDCQAAAgUCZG4AAAAABQJkbAECZG8BAmJJBAJkcAkBAmNaAAQCZGIIBQJkcAJfMQQCZGMIBQJkcAJfMgQCZHEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYlgJAQJiSAIFAmJJBQJkYgAABAJkcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkgCBQJiSQUCZGIFAmRxBQJkcgECZHMBAmJJBAJkdAkBAmNaAAQCZGIIBQJkdAJfMQQCZGMIBQJkdAJfMgQCZHIJAQJkbwEFAmJJBAJkdQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkoCBQJiSQUCZGIAAAQCZHYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJLAgUCYkkFAmRiBQJkYwQCZHcJAGUCBQZoZWlnaHQFAmR2BAJkeAkAZAIJAGgCBQJkdwUCZHIFAmR1BQJkeAECZHkCAmJJAmR6BAJkQQkBAmNaAAQCZGIIBQJkQQJfMQQCZGMIBQJkQQJfMgQCZHIJAQJkbwEFAmJJBAJkQgkAZAIFAmRyBQJkegQCZHgJAQJkcwEFAmJJCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYkgCBQJiSQUCZGIFAmRCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYksCBQJiSQUCZGIFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJKAgUCYkkFAmRiBQJkeAUDbmlsAQJkQwICYkkCYlEEAmRECQECY1oABAJkYggFAmREAl8xBAJkYwgFAmREAl8yBAJhUgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlEEAmRFCQECZG0CBQJiSQUCYlEEAmRGCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiTQMFAmJJBQJhUgUCZGIAAAQCZEcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJOAwUCYkkFAmFSBQJkYgUCZGMEAmRICQBlAgUGaGVpZ2h0BQJkRwQCZEkJAGQCCQBoAgUCZEgFAmRFBQJkRgUCZEkBAmRKAwJiSQJiUQJkSwQCZEwJAQJjWgAEAmRiCAUCZEwCXzEEAmRjCAUCZEwCXzIEAmFSCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUQQCZE0JAQJkaAIFAmJJBQJiUQQCZE4DCQAAAgUCZE0AAAUDbmlsBAJkegMFAmRLBQJkTQkBAS0BBQJkTQQCZE8JAQJkeQIFAmJJBQJkegQCZEkJAQJkQwIFAmJJBQJiUQQCZFAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiTgMFAmJJBQJhUgUCZGIFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJNAwUCYkkFAmFSBQJkYgUCZEkFA25pbAkAzggCBQJkTwUCZFAFAmROAQJkUQICYkkCYlEEAmRSCQECY1oABAJkYggFAmRSAl8xBAJkYwgFAmRSAl8yBAJhUgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlEEAmRTCQECYk8DBQJiSQUCYVIFAmRiBAJkVAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJkUwAABAJkVQkBAmJMAwUCYkkFAmFSBQJkYgQCZFYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCZFUAAAQCZEkJAQJkQwIFAmJJBQJiUQQCZHgJAQJkcwEFAmJJBAJkVwkAZQIFAmRJBQJkVAQCZFgJAGUCBQJkeAUCZFYJAJUKAwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFMFAmRJCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkVQUCZHgFA25pbAUCZFcFAmRYAQJkWQAEAmRaCQEBbgIFAmJTCQECYWcABAJlYQkAmggCBQR0aGlzCQECYWoABAJlYgkAmggCBQR0aGlzCQECYWsABAJlYwkBAW4CBQJiUwkBAmFtAAQCY0cDCQBmAgUGaGVpZ2h0BQJlYwUCZWMFBmhlaWdodAQCZWQEAXIFAmVhAwkAAQIFAXICA0ludAQCZWUFAXIJAJYDAQkAzAgCCQBlAgUCY0cFAmVlCQDMCAIAAAUDbmlsAwkAAQIFAXICBFVuaXQAAAkAAgECC01hdGNoIGVycm9yBAJlZgkAaQIJAGgCBQJkWgkAZQIFAmJZAAEFAmJZBAJlZwkBC3ZhbHVlT3JFbHNlAgUCZWIAAAQCZWgJAGQCCQBoAgUCZWYFAmVkBQJlZwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsABQJlaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFqAAUGaGVpZ2h0BQNuaWwFAmVoAQJlaQMCYkkCYlECZWoEAmVrCQCdCAIFBHRoaXMJAQJhUQEFAmJRAwkAAAIFAmVrBQR1bml0CQCVCgMAAAUDbmlsAhV1c2VyUmVjb3JkOjppczo6ZW1wdHkEAmVsCQC1CQIJAQV2YWx1ZQEFAmVrBQFhBAJlbQkAkQMCBQJlbAUCYUsEAmVuAgVlbXB0eQQCZW8DCQECIT0CBQJiSQUCZW4EAmVwCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYlIJAQFPAQUCYkkJAQFlAQkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJJCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJiUgkBAVEBBQJlcAMFAmVqAAAJAQFnAQkArAICAihub3QgcmVhZG9ubHkgbW9kZTogdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJiSQQCZXEJAQJidAIFAmVtBQJiSQQCZXIJAQJicwEFAmVtBAJlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJlcQkBAWsCBQR0aGlzBQJlcgQCZWgICQECZFkAAl8yBAJldAkAZQIFAmVoBQJlcwMJAGYCAAAFAmV0CQEBZwECEndyb25nIGNhbGN1bGF0aW9ucwQCZXUJAQJkUQIFAmJJBQJiUQQCZXYIBQJldQJfMQQCZXcIBQJldQJfMgQCZXgIBQJldQJfMwQCZXkJAGsDBQJldAUCZW8FAWQEAmV6AwkAAAIFAmV4AAAAAAkAawMFAmV5BQJldwUCZXgEAmVBCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVxBQJlaAUDbmlsBQJldgQCZUIJALkJAgkAzAgCCQCkAwEFAmVzCQDMCAIJAKQDAQUCZXQJAMwIAgkApAMBBQJlbwkAzAgCCQCkAwEFAmV3CQDMCAIJAKQDAQUCZXgFA25pbAIBOgkAlQoDBQJlegUCZUEFAmVCAQJlQwICYUgCYVgEAmVECQECYXYABAJlRQkAkQMCBQJlRAUCYXAEAmF5CQDZBAEFAmVFBAJhegkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVEBQJhcQQCYUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRAUCYXIEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUQFAmFzAwkBAiE9AgkAkAMBCAUCYUgIcGF5bWVudHMAAQkBAWcBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjUwkAkQMCCAUCYUgIcGF5bWVudHMAAAQCZUYIBQJjUwZhbW91bnQDCQECIT0CBQJheQkBBXZhbHVlAQgFAmNTB2Fzc2V0SWQJAQFnAQkArAICCQCsAgICHmludmFsaWQgYXNzZXQgaXMgaW4gcGF5bWVudCAtIAUCZUUCDCBpcyBleHBlY3RlZAQCZUcJAQJiZAAEAmJRCQClCAEIBQJhSAZjYWxsZXIEAmVICQEJaXNEZWZpbmVkAQkAoggBCQECYmUBBQJiUQQCZW0DBQJlSAkBBXZhbHVlAQkAoggBCQECYmUBBQJiUQkApAMBCQEBbgIFBHRoaXMFAmVHBAJhVQkBDXBhcnNlSW50VmFsdWUBBQJlbQQCY2wFBmhlaWdodAQCY0sJAQJiaAEFAmVtBAJjTAkBAmJpAQUCZW0EAmNKCQECYmcBBQJlbQMDCQBmAgUCYXoFAmVGCQECIT0CCAUCYUgGY2FsbGVyBQJiVgcJAQFnAQkArAICAiJhbW91bnQgaXMgbGVzcyB0aGVuIG1pbkxvY2tBbW91bnQ9CQCkAwEFAmF6AwkAZgIFAmFBBQJhWAkBAWcBCQCsAgICLXBhc3NlZCBkdXJhdGlvbiBpcyBsZXNzIHRoZW4gbWluTG9ja0R1cmF0aW9uPQkApAMBBQJhQQMJAGYCBQJhWAUCYUIJAQFnAQkArAICAjBwYXNzZWQgZHVyYXRpb24gaXMgZ3JlYXRlciB0aGVuIG1heExvY2tEdXJhdGlvbj0JAKQDAQUCYUIDAwUCZUgJAGcCCQBkAgkBAW4CBQR0aGlzBQJjSwkBAW4CBQR0aGlzBQJjTAUCY2wHCQEBZwECNnRoZXJlIGlzIGFuIGFjdGl2ZSBsb2NrIC0gY29uc2lkZXIgdG8gdXNlIGluY3JlYXNlTG9jawMJAGYCCQEBawIFBHRoaXMFAmNKAAAJAQFnAQkArAICAjR0aGVyZSBhcmUgbG9ja2VkIFdYcyAtIGNvbnNpZGVyIHRvIHVzZSBpbmNyZWFzZUxvY2sgBQJjSgQCZUkJAGsDBQJhWAUBYwUCYUIEAmVKCQBrAwUCZUYFAmVJBQFjBAJlSwkBAXEBCQD8BwQFAmF3AhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgUCZUoJAMwIAgUCY2wJAMwIAgUCYVgFA25pbAUDbmlsBAJjbQkBAXQBCQCRAwIFAmVLAAAEAmNuCQEBdAEJAJEDAgUCZUsAAQQCYm0JAKQDAQkBAXQBCQCRAwIFAmVLAAIEAmNmCQECY2EBBwQCZXIJAQJicwEFAmVtBAJlaAgJAQJkWQACXzIEAmVMAwUCZUgFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZUcJAGQCBQJhVQABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZQEFAmJRBQJlbQkAzAgCCQELU3RyaW5nRW50cnkCCQECYmYBBQJlbQUCYlEFA25pbAkAlAoCCQDOCAIJAM0IAgkAzggCCQDOCAIFAmVMCQECY0kIBQJiUQUCZW0FAmVGBQJjbAUCYVgFAmNtBQJjbgUCYm0JAQJjcQQFAmVGBQJhWAABAwUCZUgAAAABCQECY2kIAgRsb2NrBQJiUQUCZUYFAmNsBQJhWAUCY20FAmNuBQJhSAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXIFAmVoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYnoACQBkAgUCY2YFAmVKBQNuaWwFAmVKEwJhSAELY29uc3RydWN0b3IGAmVNAmVOAmF6AmVPAmVQAmF3BAJlUQkBAmFHAQUCYUgDCQAAAgUCZVEFAmVRCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiZAAAAAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXUACQECYUMFBQJlTgUCYXoFAmVPBQJlUAUCYXcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUEABQJlTQUDbmlsCQECY3EEAAAAAAAAAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBB2xvY2tSZWYDAmFYAmVSAmVTBAJlVAkBAmVDAgUCYUgFAmFYBAJlVQgFAmVUAl8xBAJlSggFAmVUAl8yBAJlVgkApQgBCAUCYUgGY2FsbGVyBAJlVwMDCQAAAgUCZVICAAYJAAACBQJlUwEABQR1bml0CQD8BwQFAXcCCmNyZWF0ZVBhaXIJAMwIAgUBegkAzAgCBQJlUgkAzAgCBQJlVgkAzAgCBQJlUwUDbmlsBQNuaWwDCQAAAgUCZVcFAmVXBAJlWAkA/AcEBQJhdwIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSAZjYWxsZXIJAMwIAgUCZUoFA25pbAUDbmlsAwkAAAIFAmVYBQJlWAkAlAoCBQJlVQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSAEEbG9jawECYVgEAmVZCQECZUMCBQJhSAUCYVgEAmVVCAUCZVkCXzEEAmVKCAUCZVkCXzIEAmVYCQD8BwQFAmF3AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFIBmNhbGxlcgkAzAgCBQJlSgUDbmlsBQNuaWwDCQAAAgUCZVgFAmVYCQCUCgIFAmVVBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIAQxpbmNyZWFzZUxvY2sBAmVaBAJlRAkBAmF2AAQCZUUJAJEDAgUCZUQFAmFwBAJheQkA2QQBBQJlRQQCYUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRAUCYXIEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUQFAmFzBAJlRgkBAmNRAgUCYUgFAmF5BAJiUQkApQgBCAUCYUgGY2FsbGVyBAJlbAkBAmFTAQUCYlEEAmVtCQCRAwIFAmVsBQJhSwQCZmEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbAUCYUwEAmNsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWwFAmFNBAJmYgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVsBQJhTgQCZmMJAGQCBQJjbAUCZmIEAmZkCQCWAwEJAMwIAgkAZQIFAmZjBQZoZWlnaHQJAMwIAgAABQNuaWwEAmZlCQBkAgUCZmEFAmVGBAJmZgkAZAIFAmZkBQJlWgMJAGYCAAAFAmVaCQEBZwECGmR1cmF0aW9uIGlzIGxlc3MgdGhlbiB6ZXJvAwkAZgIFAmFBBQJmZgkBAWcBCQCsAgICLWxvY2tEdXJhdGlvbk5ldyBpcyBsZXNzIHRoZW4gbWluTG9ja0R1cmF0aW9uPQkApAMBBQJhQQMJAGYCBQJmZgUCYUIJAQFnAQkArAICAkRkZWx0YUR1cmF0aW9uICsgZXhpc3RlZExvY2tEdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkApAMBBQJhQgQCZUkJAGsDBQJmZgUBYwUCYUIEAmVKCQBrAwUCZmUFAmVJBQFjBAJlWAkA/AcEBQJhdwIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSAZjYWxsZXIJAMwIAgUCZUoFA25pbAUDbmlsAwkAAAIFAmVYBQJlWAQCZmcFBmhlaWdodAQCZUsJAQFxAQkA/AcEBQJhdwIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmVKCQDMCAIFAmZnCQDMCAIFAmZmBQNuaWwFA25pbAQCY20JAQF0AQkAkQMCBQJlSwAABAJjbgkBAXQBCQCRAwIFAmVLAAEEAmJtCQCkAwEJAQF0AQkAkQMCBQJlSwACBAJmaAkBAmNZAQUCYlEEAmZpCQBlAgUCZUoFAmZoAwkAZgIAAAUCZmkJAQFnAQkArAICAhhnd3hEaWZmIGlzIGxlc3MgdGhlbiAwOiAJAKQDAQUCZmkEAmNmCQECY2EBBwQCZmoJAQJjYQEGCQDOCAIJAM0IAgkAzggCCQECY0kIBQJiUQUCZW0FAmZlBQJmZwUCZmYFAmNtBQJjbgUCYm0JAQJjcQQFAmVGBQJlWgAAAAAJAQJjaQgCBGxvY2sFAmJRBQJlRgUCY2wFAmZmBQJjbQUCY24FAmFICQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYnoACQBkAgUCY2YFAmZpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBDGNsYWltV3hCb29zdAICYkkCYlEDCQECIT0CBQJiVAgFAmFIBmNhbGxlcgkBAWcBAhJwZXJtaXNzaW9ucyBkZW5pZWQEAmZrCQECZWkDBQJiSQUCYlEHBAJmbAgFAmZrAl8xBAJlQQgFAmZrAl8yBAJlQggFAmZrAl8zCQCUCgIFAmVBCQDMCAIFAmZsBQNuaWwCYUgBFGNsYWltV3hCb29zdFJFQURPTkxZAgJiSQJiUQQCZm0JAQJlaQMFAmJJBQJiUQYEAmZsCAUCZm0CXzEEAmVBCAUCZm0CXzIEAmVCCAUCZm0CXzMJAJQKAgUDbmlsCQDMCAIFAmZsCQDMCAIFAmVCBQNuaWwCYUgBBnVubG9jawECYVIEAmVsCQECYVMBBQJhUgQCZW0JAJEDAgUCZWwFAmFLBAJmYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVsBQJhTAQCY2wJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbAUCYU0EAmZiCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWwFAmFOBAJmYwkAZAIFAmNsBQJmYgQCZUQJAQJhdgAEAmF5CQDZBAEJAJEDAgUCZUQFAmFwAwkAZwIFAmZjBQZoZWlnaHQJAQFnAQkArAICCQCsAgICBXdhaXQgCQCkAwEFAmZjAgogdG8gdW5sb2NrAwkAZwIAAAUCZmEJAQFnAQIRbm90aGluZyB0byB1bmxvY2sEAmJtCQELdmFsdWVPckVsc2UCCQCaCAIFAmF3CQECYW4AAAAJAM0IAgkAzQgCCQDOCAIJAQJjSQgFAmFSBQJlbQAABQJjbAUCZmIAAAAACQCkAwEFAmJtCQECY3EECQEBLQEFAmZhAAAAAAD///////////8BCQECY2kIAgZ1bmxvY2sFAmFSBQJmYQUCY2wFAmZiAAAAAAUCYUgJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFSBQJmYQUCYXkCYUgBE2d3eFVzZXJJbmZvUkVBRE9OTFkBAmFSBAJiYgkBAmNZAQUCYVIJAJQKAgUDbmlsCQDMCAIFAmJiBQNuaWwCYUgBF3VzZXJNYXhEdXJhdGlvblJFQURPTkxZAQJiUQQCZUQJAQJhdgAEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUQFAmFzBAJlawkAnQgCBQR0aGlzCQECYVEBBQJiUQMJAAACBQJlawUEdW5pdAkAlAoCBQNuaWwJAJQKAgIEbG9jawUCYUIEAmVsCQC1CQIJAQV2YWx1ZQEFAmVrBQFhBAJjbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVsBQJhTQQCZmIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbAUCYU4EAmZjCQBkAgUCY2wFAmZiBAJmZAkAlgMBCQDMCAIJAGUCBQJmYwUGaGVpZ2h0CQDMCAIAAAUDbmlsBAJmbgkAZQIFAmFCBQJmZAkAlAoCBQNuaWwJAJQKAgIMaW5jcmVhc2VMb2NrBQJmbgJhSAEgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkCAmFSAmNVBAJiYgkBAmNUAgUCYVIFAmNVCQCUCgIFA25pbAUCYmICYUgBGWdldFRvdGFsQ2FjaGVkR3d4UkVBRE9OTFkACQCUCgIFA25pbAkBAmNhAQYCYUgBFW9uQm9vc3RFbWlzc2lvblVwZGF0ZQAEAmVRAwkAAAIIBQJhSAZjYWxsZXIFAmJTBgkBAmFHAQUCYUgDCQAAAgUCZVEFAmVRCQECZFkACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIARJvblN0YWtlZFZvdGVVcGRhdGUDAmJJAmJRAmRLBAJlUQMJAAACCAUCYUgGY2FsbGVyBQJiVAYJAQJhRwEFAmFIAwkAAAIFAmVRBQJlUQQCZE4JAQJkSgMFAmJJBQJiUQUCZEsJAJQKAgUCZE4FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBHWdldFZvdGluZ1Jlc3VsdFN0YWtlZFJFQURPTkxZAQJiSQkAlAoCBQNuaWwJAQJkbwEFAmJJAmFIASVnZXRWb3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbFJFQURPTkxZAQJiSQkAlAoCBQNuaWwJAQJkcwEFAmJJAmFIARxnZXRVc2VyVm90ZUZpbmFsaXplZFJFQURPTkxZAgJiSQJiUQkAlAoCBQNuaWwJAQJkaAIFAmJJBQJiUQJhSAEhZ2V0VXNlclZvdGVTdGFrZWRJbnRlZ3JhbFJFQURPTkxZAgJiSQJiUQkAlAoCBQNuaWwJAQJkQwIFAmJJBQJiUQJhSAEKc2V0TWFuYWdlcgECZm8EAmVRCQECYUcBBQJhSAMJAAACBQJlUQUCZVEEAmZwCQDZBAEFAmZvAwkAAAIFAmZwBQJmcAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYABQJmbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIAQ5jb25maXJtTWFuYWdlcgAEAmZxCQECYUYABAJmcgMJAQlpc0RlZmluZWQBBQJmcQYJAQFnAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmZyBQJmcgQCZnMDCQAAAggFAmFID2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZnEGCQEBZwECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmcwUCZnMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFlAAkA2AQBCQEFdmFsdWUBBQJmcQkAzAgCCQELRGVsZXRlRW50cnkBCQECYWYABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZ0AQJmdQAEAmZ2BAFyCQECYUQAAwkAAQIFAXICCkJ5dGVWZWN0b3IEAmFKBQFyBQJhSgMJAAECBQFyAgRVbml0CAUCZnQPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmZ0CWJvZHlCeXRlcwkAkQMCCAUCZnQGcHJvb2ZzAAAFAmZ2Y9EddQ==", "height": 2508531, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B3dPSHTSBhqHxBvazhqsacBKmpAh3U8YXCyXZZUojSdC Next: 6TW81nvJMFR1dokHTMUqjxLQzJ57yTobWcb1fzqDmR4H Diff:
OldNewDifferences
1515 func g (f) = throw(e(f))
1616
1717
18-func h (i,j) = valueOrErrorMessage(getString(i, j), (("mandatory this." + j) + " is not defined"))
18+func h (i,j) = valueOrErrorMessage(getString(i, j), e((("mandatory this." + j) + " is not defined")))
1919
2020
2121 func k (i,j) = valueOrElse(getInteger(i, j), 0)
2424 func l (i,j,m) = valueOrElse(getInteger(i, j), m)
2525
2626
27-func n (i,j) = valueOrErrorMessage(getInteger(i, j), (("mandatory this." + j) + " is not defined"))
27+func n (i,j) = valueOrErrorMessage(getInteger(i, j), e((("mandatory this." + j) + " is not defined")))
2828
2929
3030 func o (p) = if ((0 > p))
3939 let s = r
4040 s
4141 }
42- else throw("fail to cast into List[Any]")
42+ else g("fail to cast into List[Any]")
4343 }
4444
4545
5050 let u = r
5151 u
5252 }
53- else throw("fail to cast into Int")
53+ else g("fail to cast into Int")
5454 }
5555
5656
210210
211211
212212 func aG (aH) = {
213- let aI = throw("Permission denied")
213+ let aI = g("Permission denied")
214214 let r = aD()
215215 if ($isInstanceOf(r, "ByteVector"))
216216 then {
430430
431431
432432 func cQ (aH,cR) = if ((size(aH.payments) > 1))
433- then throw("only one payment is allowed")
433+ then g("only one payment is allowed")
434434 else if ((size(aH.payments) == 0))
435435 then 0
436436 else {
437437 let cS = aH.payments[0]
438438 if ((value(cS.assetId) != cR))
439- then throw("invalid asset id in payment")
439+ then g("invalid asset id in payment")
440440 else cS.amount
441441 }
442442
643643 let en = "empty"
644644 let eo = if ((bI != en))
645645 then {
646- let ep = valueOrErrorMessage(getString(bR, O(bI)), ("unsupported lp asset " + bI))
646+ let ep = valueOrErrorMessage(getString(bR, O(bI)), e(("unsupported lp asset " + bI)))
647647 getIntegerValue(bR, Q(ep))
648648 }
649649 else if (ej)
650650 then 0
651- else throw(("not readonly mode: unsupported lp asset " + bI))
651+ else g(("not readonly mode: unsupported lp asset " + bI))
652652 let eq = bt(em, bI)
653653 let er = bs(em)
654654 let es = valueOrElse(getInteger(this, eq), k(this, er))
655655 let eh = dY()._2
656656 let et = (eh - es)
657657 if ((0 > et))
658- then throw("wrong calculations")
658+ then g("wrong calculations")
659659 else {
660660 let eu = dQ(bI, bQ)
661661 let ev = eu._1
681681 let aA = parseIntValue(eD[ar])
682682 let aB = parseIntValue(eD[as])
683683 if ((size(aH.payments) != 1))
684- then throw("invalid payment - exact one payment must be attached")
684+ then g("invalid payment - exact one payment must be attached")
685685 else {
686686 let cS = aH.payments[0]
687687 let eF = cS.amount
688688 if ((ay != value(cS.assetId)))
689- then throw((("invalid asset is in payment - " + eE) + " is expected"))
689+ then g((("invalid asset is in payment - " + eE) + " is expected"))
690690 else {
691691 let eG = bd()
692692 let bQ = toString(aH.caller)
702702 if (if ((az > eF))
703703 then (aH.caller != bV)
704704 else false)
705- then throw(("amount is less then minLockAmount=" + toString(az)))
705+ then g(("amount is less then minLockAmount=" + toString(az)))
706706 else if ((aA > aX))
707- then throw(("passed duration is less then minLockDuration=" + toString(aA)))
707+ then g(("passed duration is less then minLockDuration=" + toString(aA)))
708708 else if ((aX > aB))
709- then throw(("passed duration is greater then maxLockDuration=" + toString(aB)))
709+ then g(("passed duration is greater then maxLockDuration=" + toString(aB)))
710710 else if (if (eH)
711711 then ((n(this, cK) + n(this, cL)) >= cl)
712712 else false)
713- then throw("there is an active lock - consider to use increaseLock")
713+ then g("there is an active lock - consider to use increaseLock")
714714 else if ((k(this, cJ) > 0))
715- then throw(("there are locked WXs - consider to use increaseLock " + cJ))
715+ then g(("there are locked WXs - consider to use increaseLock " + cJ))
716716 else {
717717 let eI = fraction(aX, c, aB)
718718 let eJ = fraction(eF, eI, c)
800800 let fe = (fa + eF)
801801 let ff = (fd + eZ)
802802 if ((0 > eZ))
803- then throw("duration is less then zero")
803+ then g("duration is less then zero")
804804 else if ((aA > ff))
805- then throw(("lockDurationNew is less then minLockDuration=" + toString(aA)))
805+ then g(("lockDurationNew is less then minLockDuration=" + toString(aA)))
806806 else if ((ff > aB))
807- then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
807+ then g(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
808808 else {
809809 let eI = fraction(ff, c, aB)
810810 let eJ = fraction(fe, eI, c)
819819 let fh = cY(bQ)
820820 let fi = (eJ - fh)
821821 if ((0 > fi))
822- then throw(("gwxDiff is less then 0: " + toString(fi)))
822+ then g(("gwxDiff is less then 0: " + toString(fi)))
823823 else {
824824 let cf = ca(false)
825825 let fj = ca(true)
834834
835835 @Callable(aH)
836836 func claimWxBoost (bI,bQ) = if ((bT != aH.caller))
837- then throw("permissions denied")
837+ then g("permissions denied")
838838 else {
839839 let fk = ei(bI, bQ, false)
840840 let fl = fk._1
867867 let eD = av()
868868 let ay = fromBase58String(eD[ap])
869869 if ((fc >= height))
870- then throw((("wait " + toString(fc)) + " to unlock"))
870+ then g((("wait " + toString(fc)) + " to unlock"))
871871 else if ((0 >= fa))
872- then throw("nothing to unlock")
872+ then g("nothing to unlock")
873873 else {
874874 let bm = valueOrElse(getInteger(aw, an()), 0)
875875 (((cI(aR, em, 0, cl, fb, 0, 0, toString(bm)) ++ cq(-(fa), 0, 0, -1)) :+ ci("unlock", aR, fa, cl, fb, 0, 0, aH)) :+ ScriptTransfer(addressFromStringValue(aR), fa, ay))
986986 let fq = aF()
987987 let fr = if (isDefined(fq))
988988 then true
989- else throw("No pending manager")
989+ else g("No pending manager")
990990 if ((fr == fr))
991991 then {
992992 let fs = if ((aH.callerPublicKey == value(fq)))
993993 then true
994- else throw("You are not pending manager")
994+ else g("You are not pending manager")
995995 if ((fs == fs))
996996 then [StringEntry(ae(), toBase58String(value(fq))), DeleteEntry(af())]
997997 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 8
77
88 let c = 100000000
99
1010 let d = c
1111
1212 func e (f) = makeString(["boosting.ride:", f], " ")
1313
1414
1515 func g (f) = throw(e(f))
1616
1717
18-func h (i,j) = valueOrErrorMessage(getString(i, j), (("mandatory this." + j) + " is not defined"))
18+func h (i,j) = valueOrErrorMessage(getString(i, j), e((("mandatory this." + j) + " is not defined")))
1919
2020
2121 func k (i,j) = valueOrElse(getInteger(i, j), 0)
2222
2323
2424 func l (i,j,m) = valueOrElse(getInteger(i, j), m)
2525
2626
27-func n (i,j) = valueOrErrorMessage(getInteger(i, j), (("mandatory this." + j) + " is not defined"))
27+func n (i,j) = valueOrErrorMessage(getInteger(i, j), e((("mandatory this." + j) + " is not defined")))
2828
2929
3030 func o (p) = if ((0 > p))
3131 then -(p)
3232 else p
3333
3434
3535 func q (p) = {
3636 let r = p
3737 if ($isInstanceOf(r, "List[Any]"))
3838 then {
3939 let s = r
4040 s
4141 }
42- else throw("fail to cast into List[Any]")
42+ else g("fail to cast into List[Any]")
4343 }
4444
4545
4646 func t (p) = {
4747 let r = p
4848 if ($isInstanceOf(r, "Int"))
4949 then {
5050 let u = r
5151 u
5252 }
53- else throw("fail to cast into Int")
53+ else g("fail to cast into Int")
5454 }
5555
5656
5757 func v () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5858
5959
6060 let w = addressFromStringValue(h(this, v()))
6161
6262 let x = makeString(["%s%s", "referral", "programName"], a)
6363
6464 let y = "wxlock"
6565
6666 let z = valueOrElse(getString(this, x), y)
6767
6868 func A () = "%s%s__config__factoryAddress"
6969
7070
7171 let B = 1
7272
7373 let C = 2
7474
7575 let D = 3
7676
7777 let E = 4
7878
7979 let F = 5
8080
8181 let G = 6
8282
8383 let H = 7
8484
8585 let I = 8
8686
8787 let J = 9
8888
8989 let K = 10
9090
9191 let L = 11
9292
9393 func M () = "%s__factoryConfig"
9494
9595
9696 func N () = "%s__lpTokensList"
9797
9898
9999 func O (P) = makeString(["%s%s%s", P, "mappings__lpAsset2PoolContract"], a)
100100
101101
102102 func Q (R) = makeString(["%s%s", "poolWeight", R], a)
103103
104104
105105 func S (T,U) = ((("%s%s__poolWeight__" + T) + "__") + toString(U))
106106
107107
108108 func V () = addressFromStringValue(h(this, A()))
109109
110110
111111 func W () = split(valueOrElse(getString(V(), N()), ""), a)
112112
113113
114114 func X (Y) = split(h(Y, M()), a)
115115
116116
117117 func Z (aa) = addressFromStringValue(aa[C])
118118
119119
120120 func ab (aa) = addressFromStringValue(aa[F])
121121
122122
123123 func ac (aa) = addressFromStringValue(aa[B])
124124
125125
126126 func ad (aa) = addressFromStringValue(aa[K])
127127
128128
129129 func ae () = "%s__managerPublicKey"
130130
131131
132132 func af () = "%s__pendingManagerPublicKey"
133133
134134
135135 func ag () = "%s%s__ratePerBlock__current"
136136
137137
138138 func ah () = "%s%s__ratePerBlockMax__current"
139139
140140
141141 func ai () = "%s%s__emission__startBlock"
142142
143143
144144 func aj () = "%s%s__boostingV2__startBlock"
145145
146146
147147 func ak () = "%s%s__boostingV2__integral"
148148
149149
150150 func al () = "%s%s__emission__duration"
151151
152152
153153 func am () = "%s%s__emission__endBlock"
154154
155155
156156 func an () = "%s__nextPeriod"
157157
158158
159159 func ao () = "%s%s__gwxRewardEmissionPart__startHeight"
160160
161161
162162 let ap = 1
163163
164164 let aq = 2
165165
166166 let ar = 3
167167
168168 let as = 4
169169
170170 let at = 5
171171
172172 func au () = "%s__config"
173173
174174
175175 func av () = split(h(this, au()), a)
176176
177177
178178 let aw = addressFromStringValue(av()[at])
179179
180180 func ax (ay,az,aA,aB,aw) = makeString(["%s%d%d%d", ay, az, aA, aB, aw], a)
181181
182182
183183 func aC (ay,az,aA,aB,aw) = ax(ay, toString(az), toString(aA), toString(aB), aw)
184184
185185
186186 func aD () = {
187187 let r = getString(ae())
188188 if ($isInstanceOf(r, "String"))
189189 then {
190190 let aE = r
191191 fromBase58String(aE)
192192 }
193193 else if ($isInstanceOf(r, "Unit"))
194194 then unit
195195 else throw("Match error")
196196 }
197197
198198
199199 func aF () = {
200200 let r = getString(af())
201201 if ($isInstanceOf(r, "String"))
202202 then {
203203 let aE = r
204204 fromBase58String(aE)
205205 }
206206 else if ($isInstanceOf(r, "Unit"))
207207 then unit
208208 else throw("Match error")
209209 }
210210
211211
212212 func aG (aH) = {
213- let aI = throw("Permission denied")
213+ let aI = g("Permission denied")
214214 let r = aD()
215215 if ($isInstanceOf(r, "ByteVector"))
216216 then {
217217 let aJ = r
218218 if ((aH.callerPublicKey == aJ))
219219 then true
220220 else aI
221221 }
222222 else if ($isInstanceOf(r, "Unit"))
223223 then if ((aH.caller == this))
224224 then true
225225 else aI
226226 else throw("Match error")
227227 }
228228
229229
230230 let aK = 1
231231
232232 let aL = 2
233233
234234 let aM = 3
235235
236236 let aN = 4
237237
238238 let aO = 5
239239
240240 let aP = 6
241241
242242 func aQ (aR) = makeString(["%s%s__lock", aR], a)
243243
244244
245245 func aS (aR) = split(h(this, aQ(aR)), a)
246246
247247
248248 func aT (aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d", aU, aV, aW, aX, aY, aZ, ba, bb], a)
249249
250250
251251 func bc (aU,aV,aW,aX,aY,aZ,bb) = aT(aU, toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(lastBlock.timestamp), toString(bb))
252252
253253
254254 func bd () = "%s__nextUserNum"
255255
256256
257257 func be (aR) = makeString(["%s%s%s__mapping__user2num", aR], a)
258258
259259
260260 func bf (U) = makeString(["%s%s%s__mapping__num2user", U], a)
261261
262262
263263 func bg (aU) = makeString(["%s%d%s__paramByUserNum", aU, "amount"], a)
264264
265265
266266 func bh (aU) = makeString(["%s%d%s__paramByUserNum", aU, "start"], a)
267267
268268
269269 func bi (aU) = makeString(["%s%d%s__paramByUserNum", aU, "duration"], a)
270270
271271
272272 func bj (aU) = makeString(["%s%d%s__paramByUserNum", aU, "k"], a)
273273
274274
275275 func bk (aU) = makeString(["%s%d%s__paramByUserNum", aU, "b"], a)
276276
277277
278278 func bl (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "k", bm], a)
279279
280280
281281 func bn (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "b", bm], a)
282282
283283
284284 func bo () = "%s%s__stats__activeTotalLocked"
285285
286286
287287 func bp () = "%s%s__stats__locksDurationSumInBlocks"
288288
289289
290290 func bq () = "%s%s__stats__locksCount"
291291
292292
293293 func br () = "%s%s__stats__activeUsersCount"
294294
295295
296296 func bs (aU) = makeString(["%s%d__userBoostEmissionLastIntV2", aU], a)
297297
298298
299299 func bt (aU,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", aU, bu], a)
300300
301301
302302 func bv (aU) = makeString(["%s%d__maxBoostInt", aU], a)
303303
304304
305305 func bw () = "%s%s__maxBoostInt__total"
306306
307307
308308 func bx (aU) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aU], a)
309309
310310
311311 func by (aU) = makeString(["%s%d__userBoostClaimed", aU], a)
312312
313313
314314 func bz () = "%s%s__gwxCached__total"
315315
316316
317317 func bA () = "%s__gwxCachedTotalCorrective"
318318
319319
320320 func bB (bC,bD,i,bE) = makeString(["%s%s%s%s%d", "vote", bC, bD, toString(i), toString(bE)], a)
321321
322322
323323 func bF (bE) = makeString(["%s%d", "startHeight", toString(bE)], a)
324324
325325
326326 func bG () = makeString(["%s", "currentEpochUi"], a)
327327
328328
329329 func bH (bI,bE) = makeString(["%s%s%d", "votingResultStaked", bI, toString(bE)], a)
330330
331331
332332 func bJ (bI,bE) = makeString(["%s%s%d", "votingResultStakedIntegral", bI, toString(bE)], a)
333333
334334
335335 func bK (bI,bE) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bI, toString(bE)], a)
336336
337337
338338 func bL (bI,i,bE) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bI, toString(i), toString(bE)], a)
339339
340340
341341 func bM (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegral", bI, toString(i), toString(bE)], a)
342342
343343
344344 func bN (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bI, toString(i), toString(bE)], a)
345345
346346
347347 func bO (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bI, toString(i), toString(bE)], a)
348348
349349
350350 func bP (bQ,bI) = makeString(["%s%s%s", "staked", bQ, bI], a)
351351
352352
353353 let bR = V()
354354
355355 let aa = X(bR)
356356
357357 let bS = ab(aa)
358358
359359 let bT = ac(aa)
360360
361361 let bU = ad(aa)
362362
363363 let bV = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
364364
365365 let bW = makeString(["%s", "votingEmissionContract"], a)
366366
367367 let bX = addressFromStringValue(getStringValue(bR, bW))
368368
369369 let bY = {
370370 let bZ = invoke(bS, "getBoostCoeffREADONLY", nil, nil)
371371 if ($isInstanceOf(bZ, "Int"))
372372 then bZ
373373 else throw(($getType(bZ) + " couldn't be cast to Int"))
374374 }
375375
376376 func ca (cb) = {
377377 let cc = getIntegerValue(bX, bG())
378378 let cd = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
379379 let ce = getInteger(this, cd)
380380 let cf = valueOrElse(getInteger(this, bz()), 0)
381381 let cg = if (isDefined(ce))
382382 then (cc >= value(ce))
383383 else false
384384 let ch = if (if (cg)
385385 then cb
386386 else false)
387387 then valueOrElse(getInteger(this, bA()), 0)
388388 else 0
389389 max([0, (cf + ch)])
390390 }
391391
392392
393393 func ci (cj,ck,aV,cl,aX,cm,cn,aH) = {
394394 let co = makeString(["%s%s%s%s__history", cj, ck, toBase58String(aH.transactionId)], a)
395395 let cp = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aV), toString(cl), toString(aX), toString(cm), toString(cn)], a)
396396 StringEntry(co, cp)
397397 }
398398
399399
400400 func cq (cr,cs,ct,cu) = {
401401 let cv = bp()
402402 let cw = bq()
403403 let cx = br()
404404 let cy = bo()
405405 let cz = k(this, cv)
406406 let cA = k(this, cw)
407407 let cB = k(this, cx)
408408 let cC = k(this, cy)
409409 [IntegerEntry(cv, (cz + cs)), IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cr))]
410410 }
411411
412412
413413 func cD (cE,cF,cG) = {
414414 let cH = 1000
415415 (((cE * cG) + cF) / cH)
416416 }
417417
418418
419419 func cI (aR,aU,aV,aW,aX,cm,cn,bm) = {
420420 let cJ = bg(aU)
421421 let cK = bh(aU)
422422 let cL = bi(aU)
423423 let cM = bj(aU)
424424 let cN = bk(aU)
425425 let cO = bl(aU, bm)
426426 let cP = bn(aU, bm)
427427 let bb = cD(cm, cn, height)
428428 [IntegerEntry(cJ, aV), IntegerEntry(cK, aW), IntegerEntry(cL, aX), IntegerEntry(cM, cm), IntegerEntry(cN, cn), IntegerEntry(cO, cm), IntegerEntry(cP, cn), StringEntry(aQ(aR), bc(aU, aV, aW, aX, cm, cn, bb))]
429429 }
430430
431431
432432 func cQ (aH,cR) = if ((size(aH.payments) > 1))
433- then throw("only one payment is allowed")
433+ then g("only one payment is allowed")
434434 else if ((size(aH.payments) == 0))
435435 then 0
436436 else {
437437 let cS = aH.payments[0]
438438 if ((value(cS.assetId) != cR))
439- then throw("invalid asset id in payment")
439+ then g("invalid asset id in payment")
440440 else cS.amount
441441 }
442442
443443
444444 func cT (aR,cU) = {
445445 let cV = "empty"
446446 let cW = be(aR)
447447 let aU = valueOrElse(getString(cW), cV)
448448 let cm = valueOrElse(getInteger(bj(aU)), 0)
449449 let cn = valueOrElse(getInteger(bk(aU)), 0)
450450 let cX = cD(cm, cn, cU)
451451 let bb = if ((0 > cX))
452452 then 0
453453 else cX
454454 bb
455455 }
456456
457457
458458 func cY (aR) = cT(aR, height)
459459
460460
461461 func cZ () = {
462462 let da = {
463463 let cc = value(getInteger(bX, bG()))
464464 let db = (cc - 1)
465465 if ((0 > db))
466466 then g("invalid epoch")
467467 else $Tuple2(cc, db)
468468 }
469469 let cc = da._1
470470 let db = da._2
471471 let dc = value(getInteger(bX, bF(cc)))
472472 $Tuple2(db, dc)
473473 }
474474
475475
476476 func dd (bI) = {
477477 let de = 4
478478 let df = 5
479479 let dg = {
480480 let bZ = invoke(bR, "getPoolConfigByLpAssetIdREADONLY", [bI], nil)
481481 if ($isInstanceOf(bZ, "List[Any]"))
482482 then bZ
483483 else throw(($getType(bZ) + " couldn't be cast to List[Any]"))
484484 }
485485 let bC = {
486486 let bZ = dg[de]
487487 if ($isInstanceOf(bZ, "String"))
488488 then bZ
489489 else throw(($getType(bZ) + " couldn't be cast to String"))
490490 }
491491 let bD = {
492492 let bZ = dg[df]
493493 if ($isInstanceOf(bZ, "String"))
494494 then bZ
495495 else throw(($getType(bZ) + " couldn't be cast to String"))
496496 }
497497 $Tuple2(bC, bD)
498498 }
499499
500500
501501 func dh (bI,bQ) = {
502502 let aR = addressFromStringValue(bQ)
503503 let di = cZ()
504504 let db = di._1
505505 let dc = di._2
506506 let dj = dd(bI)
507507 let bC = dj._1
508508 let bD = dj._2
509509 let dk = bB(bC, bD, aR, db)
510510 let dl = valueOrElse(getInteger(bX, dk), 0)
511511 dl
512512 }
513513
514514
515515 func dm (bI,bQ) = {
516516 let dn = valueOrElse(getInteger(bT, bP(bQ, bI)), 0)
517517 let dl = dh(bI, bQ)
518518 if ((dn == 0))
519519 then 0
520520 else dl
521521 }
522522
523523
524524 func do (bI) = {
525525 let dp = cZ()
526526 let db = dp._1
527527 let dc = dp._2
528528 let dq = valueOrElse(getInteger(bX, bH(bI, db)), 0)
529529 let dr = valueOrElse(getInteger(this, bH(bI, db)), dq)
530530 dr
531531 }
532532
533533
534534 func ds (bI) = {
535535 let dt = cZ()
536536 let db = dt._1
537537 let dc = dt._2
538538 let dr = do(bI)
539539 let du = valueOrElse(getInteger(this, bJ(bI, db)), 0)
540540 let dv = valueOrElse(getInteger(this, bK(bI, db)), dc)
541541 let dw = (height - dv)
542542 let dx = ((dw * dr) + du)
543543 dx
544544 }
545545
546546
547547 func dy (bI,dz) = {
548548 let dA = cZ()
549549 let db = dA._1
550550 let dc = dA._2
551551 let dr = do(bI)
552552 let dB = (dr + dz)
553553 let dx = ds(bI)
554554 [IntegerEntry(bH(bI, db), dB), IntegerEntry(bK(bI, db), height), IntegerEntry(bJ(bI, db), dx)]
555555 }
556556
557557
558558 func dC (bI,bQ) = {
559559 let dD = cZ()
560560 let db = dD._1
561561 let dc = dD._2
562562 let aR = addressFromStringValue(bQ)
563563 let dE = dm(bI, bQ)
564564 let dF = valueOrElse(getInteger(this, bM(bI, aR, db)), 0)
565565 let dG = valueOrElse(getInteger(this, bN(bI, aR, db)), dc)
566566 let dH = (height - dG)
567567 let dI = ((dH * dE) + dF)
568568 dI
569569 }
570570
571571
572572 func dJ (bI,bQ,dK) = {
573573 let dL = cZ()
574574 let db = dL._1
575575 let dc = dL._2
576576 let aR = addressFromStringValue(bQ)
577577 let dM = dh(bI, bQ)
578578 let dN = if ((dM == 0))
579579 then nil
580580 else {
581581 let dz = if (dK)
582582 then dM
583583 else -(dM)
584584 let dO = dy(bI, dz)
585585 let dI = dC(bI, bQ)
586586 let dP = [IntegerEntry(bN(bI, aR, db), height), IntegerEntry(bM(bI, aR, db), dI)]
587587 (dO ++ dP)
588588 }
589589 dN
590590 }
591591
592592
593593 func dQ (bI,bQ) = {
594594 let dR = cZ()
595595 let db = dR._1
596596 let dc = dR._2
597597 let aR = addressFromStringValue(bQ)
598598 let dS = bO(bI, aR, db)
599599 let dT = valueOrElse(getInteger(this, dS), 0)
600600 let dU = bL(bI, aR, db)
601601 let dV = valueOrElse(getInteger(this, dU), 0)
602602 let dI = dC(bI, bQ)
603603 let dx = ds(bI)
604604 let dW = (dI - dT)
605605 let dX = (dx - dV)
606606 $Tuple3([IntegerEntry(dS, dI), IntegerEntry(dU, dx)], dW, dX)
607607 }
608608
609609
610610 func dY () = {
611611 let dZ = n(bS, ag())
612612 let ea = getInteger(this, aj())
613613 let eb = getInteger(this, ak())
614614 let ec = n(bS, am())
615615 let cG = if ((height > ec))
616616 then ec
617617 else height
618618 let ed = {
619619 let r = ea
620620 if ($isInstanceOf(r, "Int"))
621621 then {
622622 let ee = r
623623 max([(cG - ee), 0])
624624 }
625625 else if ($isInstanceOf(r, "Unit"))
626626 then 0
627627 else throw("Match error")
628628 }
629629 let ef = ((dZ * (bY - 1)) / bY)
630630 let eg = valueOrElse(eb, 0)
631631 let eh = ((ef * ed) + eg)
632632 $Tuple2([IntegerEntry(ak(), eh), IntegerEntry(aj(), height)], eh)
633633 }
634634
635635
636636 func ei (bI,bQ,ej) = {
637637 let ek = getString(this, aQ(bQ))
638638 if ((ek == unit))
639639 then $Tuple3(0, nil, "userRecord::is::empty")
640640 else {
641641 let el = split(value(ek), a)
642642 let em = el[aK]
643643 let en = "empty"
644644 let eo = if ((bI != en))
645645 then {
646- let ep = valueOrErrorMessage(getString(bR, O(bI)), ("unsupported lp asset " + bI))
646+ let ep = valueOrErrorMessage(getString(bR, O(bI)), e(("unsupported lp asset " + bI)))
647647 getIntegerValue(bR, Q(ep))
648648 }
649649 else if (ej)
650650 then 0
651- else throw(("not readonly mode: unsupported lp asset " + bI))
651+ else g(("not readonly mode: unsupported lp asset " + bI))
652652 let eq = bt(em, bI)
653653 let er = bs(em)
654654 let es = valueOrElse(getInteger(this, eq), k(this, er))
655655 let eh = dY()._2
656656 let et = (eh - es)
657657 if ((0 > et))
658- then throw("wrong calculations")
658+ then g("wrong calculations")
659659 else {
660660 let eu = dQ(bI, bQ)
661661 let ev = eu._1
662662 let ew = eu._2
663663 let ex = eu._3
664664 let ey = fraction(et, eo, d)
665665 let ez = if ((ex == 0))
666666 then 0
667667 else fraction(ey, ew, ex)
668668 let eA = ([IntegerEntry(eq, eh)] ++ ev)
669669 let eB = makeString([toString(es), toString(et), toString(eo), toString(ew), toString(ex)], ":")
670670 $Tuple3(ez, eA, eB)
671671 }
672672 }
673673 }
674674
675675
676676 func eC (aH,aX) = {
677677 let eD = av()
678678 let eE = eD[ap]
679679 let ay = fromBase58String(eE)
680680 let az = parseIntValue(eD[aq])
681681 let aA = parseIntValue(eD[ar])
682682 let aB = parseIntValue(eD[as])
683683 if ((size(aH.payments) != 1))
684- then throw("invalid payment - exact one payment must be attached")
684+ then g("invalid payment - exact one payment must be attached")
685685 else {
686686 let cS = aH.payments[0]
687687 let eF = cS.amount
688688 if ((ay != value(cS.assetId)))
689- then throw((("invalid asset is in payment - " + eE) + " is expected"))
689+ then g((("invalid asset is in payment - " + eE) + " is expected"))
690690 else {
691691 let eG = bd()
692692 let bQ = toString(aH.caller)
693693 let eH = isDefined(getString(be(bQ)))
694694 let em = if (eH)
695695 then value(getString(be(bQ)))
696696 else toString(n(this, eG))
697697 let aU = parseIntValue(em)
698698 let cl = height
699699 let cK = bh(em)
700700 let cL = bi(em)
701701 let cJ = bg(em)
702702 if (if ((az > eF))
703703 then (aH.caller != bV)
704704 else false)
705- then throw(("amount is less then minLockAmount=" + toString(az)))
705+ then g(("amount is less then minLockAmount=" + toString(az)))
706706 else if ((aA > aX))
707- then throw(("passed duration is less then minLockDuration=" + toString(aA)))
707+ then g(("passed duration is less then minLockDuration=" + toString(aA)))
708708 else if ((aX > aB))
709- then throw(("passed duration is greater then maxLockDuration=" + toString(aB)))
709+ then g(("passed duration is greater then maxLockDuration=" + toString(aB)))
710710 else if (if (eH)
711711 then ((n(this, cK) + n(this, cL)) >= cl)
712712 else false)
713- then throw("there is an active lock - consider to use increaseLock")
713+ then g("there is an active lock - consider to use increaseLock")
714714 else if ((k(this, cJ) > 0))
715- then throw(("there are locked WXs - consider to use increaseLock " + cJ))
715+ then g(("there are locked WXs - consider to use increaseLock " + cJ))
716716 else {
717717 let eI = fraction(aX, c, aB)
718718 let eJ = fraction(eF, eI, c)
719719 let eK = q(invoke(aw, "calcGwxParamsREADONLY", [eJ, cl, aX], nil))
720720 let cm = t(eK[0])
721721 let cn = t(eK[1])
722722 let bm = toString(t(eK[2]))
723723 let cf = ca(false)
724724 let er = bs(em)
725725 let eh = dY()._2
726726 let eL = if (eH)
727727 then nil
728728 else [IntegerEntry(eG, (aU + 1)), StringEntry(be(bQ), em), StringEntry(bf(em), bQ)]
729729 $Tuple2(((((eL ++ cI(bQ, em, eF, cl, aX, cm, cn, bm)) ++ cq(eF, aX, 1, if (eH)
730730 then 0
731731 else 1)) :+ ci("lock", bQ, eF, cl, aX, cm, cn, aH)) ++ [IntegerEntry(er, eh), IntegerEntry(bz(), (cf + eJ))]), eJ)
732732 }
733733 }
734734 }
735735 }
736736
737737
738738 @Callable(aH)
739739 func constructor (eM,eN,az,eO,eP,aw) = {
740740 let eQ = aG(aH)
741741 if ((eQ == eQ))
742742 then ([IntegerEntry(bd(), 0), StringEntry(au(), aC(eN, az, eO, eP, aw)), StringEntry(A(), eM)] ++ cq(0, 0, 0, 0))
743743 else throw("Strict value is not equal to itself.")
744744 }
745745
746746
747747
748748 @Callable(aH)
749749 func lockRef (aX,eR,eS) = {
750750 let eT = eC(aH, aX)
751751 let eU = eT._1
752752 let eJ = eT._2
753753 let eV = toString(aH.caller)
754754 let eW = if (if ((eR == ""))
755755 then true
756756 else (eS == base58''))
757757 then unit
758758 else invoke(w, "createPair", [z, eR, eV, eS], nil)
759759 if ((eW == eW))
760760 then {
761761 let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
762762 if ((eX == eX))
763763 then $Tuple2(eU, unit)
764764 else throw("Strict value is not equal to itself.")
765765 }
766766 else throw("Strict value is not equal to itself.")
767767 }
768768
769769
770770
771771 @Callable(aH)
772772 func lock (aX) = {
773773 let eY = eC(aH, aX)
774774 let eU = eY._1
775775 let eJ = eY._2
776776 let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
777777 if ((eX == eX))
778778 then $Tuple2(eU, unit)
779779 else throw("Strict value is not equal to itself.")
780780 }
781781
782782
783783
784784 @Callable(aH)
785785 func increaseLock (eZ) = {
786786 let eD = av()
787787 let eE = eD[ap]
788788 let ay = fromBase58String(eE)
789789 let aA = parseIntValue(eD[ar])
790790 let aB = parseIntValue(eD[as])
791791 let eF = cQ(aH, ay)
792792 let bQ = toString(aH.caller)
793793 let el = aS(bQ)
794794 let em = el[aK]
795795 let fa = parseIntValue(el[aL])
796796 let cl = parseIntValue(el[aM])
797797 let fb = parseIntValue(el[aN])
798798 let fc = (cl + fb)
799799 let fd = max([(fc - height), 0])
800800 let fe = (fa + eF)
801801 let ff = (fd + eZ)
802802 if ((0 > eZ))
803- then throw("duration is less then zero")
803+ then g("duration is less then zero")
804804 else if ((aA > ff))
805- then throw(("lockDurationNew is less then minLockDuration=" + toString(aA)))
805+ then g(("lockDurationNew is less then minLockDuration=" + toString(aA)))
806806 else if ((ff > aB))
807- then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
807+ then g(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
808808 else {
809809 let eI = fraction(ff, c, aB)
810810 let eJ = fraction(fe, eI, c)
811811 let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
812812 if ((eX == eX))
813813 then {
814814 let fg = height
815815 let eK = q(invoke(aw, "calcGwxParamsREADONLY", [eJ, fg, ff], nil))
816816 let cm = t(eK[0])
817817 let cn = t(eK[1])
818818 let bm = toString(t(eK[2]))
819819 let fh = cY(bQ)
820820 let fi = (eJ - fh)
821821 if ((0 > fi))
822- then throw(("gwxDiff is less then 0: " + toString(fi)))
822+ then g(("gwxDiff is less then 0: " + toString(fi)))
823823 else {
824824 let cf = ca(false)
825825 let fj = ca(true)
826826 (((cI(bQ, em, fe, fg, ff, cm, cn, bm) ++ cq(eF, eZ, 0, 0)) :+ ci("lock", bQ, eF, cl, ff, cm, cn, aH)) ++ [IntegerEntry(bz(), (cf + fi))])
827827 }
828828 }
829829 else throw("Strict value is not equal to itself.")
830830 }
831831 }
832832
833833
834834
835835 @Callable(aH)
836836 func claimWxBoost (bI,bQ) = if ((bT != aH.caller))
837- then throw("permissions denied")
837+ then g("permissions denied")
838838 else {
839839 let fk = ei(bI, bQ, false)
840840 let fl = fk._1
841841 let eA = fk._2
842842 let eB = fk._3
843843 $Tuple2(eA, [fl])
844844 }
845845
846846
847847
848848 @Callable(aH)
849849 func claimWxBoostREADONLY (bI,bQ) = {
850850 let fm = ei(bI, bQ, true)
851851 let fl = fm._1
852852 let eA = fm._2
853853 let eB = fm._3
854854 $Tuple2(nil, [fl, eB])
855855 }
856856
857857
858858
859859 @Callable(aH)
860860 func unlock (aR) = {
861861 let el = aS(aR)
862862 let em = el[aK]
863863 let fa = parseIntValue(el[aL])
864864 let cl = parseIntValue(el[aM])
865865 let fb = parseIntValue(el[aN])
866866 let fc = (cl + fb)
867867 let eD = av()
868868 let ay = fromBase58String(eD[ap])
869869 if ((fc >= height))
870- then throw((("wait " + toString(fc)) + " to unlock"))
870+ then g((("wait " + toString(fc)) + " to unlock"))
871871 else if ((0 >= fa))
872- then throw("nothing to unlock")
872+ then g("nothing to unlock")
873873 else {
874874 let bm = valueOrElse(getInteger(aw, an()), 0)
875875 (((cI(aR, em, 0, cl, fb, 0, 0, toString(bm)) ++ cq(-(fa), 0, 0, -1)) :+ ci("unlock", aR, fa, cl, fb, 0, 0, aH)) :+ ScriptTransfer(addressFromStringValue(aR), fa, ay))
876876 }
877877 }
878878
879879
880880
881881 @Callable(aH)
882882 func gwxUserInfoREADONLY (aR) = {
883883 let bb = cY(aR)
884884 $Tuple2(nil, [bb])
885885 }
886886
887887
888888
889889 @Callable(aH)
890890 func userMaxDurationREADONLY (bQ) = {
891891 let eD = av()
892892 let aB = parseIntValue(eD[as])
893893 let ek = getString(this, aQ(bQ))
894894 if ((ek == unit))
895895 then $Tuple2(nil, $Tuple2("lock", aB))
896896 else {
897897 let el = split(value(ek), a)
898898 let cl = parseIntValue(el[aM])
899899 let fb = parseIntValue(el[aN])
900900 let fc = (cl + fb)
901901 let fd = max([(fc - height), 0])
902902 let fn = (aB - fd)
903903 $Tuple2(nil, $Tuple2("increaseLock", fn))
904904 }
905905 }
906906
907907
908908
909909 @Callable(aH)
910910 func getUserGwxAmountAtHeightREADONLY (aR,cU) = {
911911 let bb = cT(aR, cU)
912912 $Tuple2(nil, bb)
913913 }
914914
915915
916916
917917 @Callable(aH)
918918 func getTotalCachedGwxREADONLY () = $Tuple2(nil, ca(true))
919919
920920
921921
922922 @Callable(aH)
923923 func onBoostEmissionUpdate () = {
924924 let eQ = if ((aH.caller == bS))
925925 then true
926926 else aG(aH)
927927 if ((eQ == eQ))
928928 then dY()
929929 else throw("Strict value is not equal to itself.")
930930 }
931931
932932
933933
934934 @Callable(aH)
935935 func onStakedVoteUpdate (bI,bQ,dK) = {
936936 let eQ = if ((aH.caller == bT))
937937 then true
938938 else aG(aH)
939939 if ((eQ == eQ))
940940 then {
941941 let dN = dJ(bI, bQ, dK)
942942 $Tuple2(dN, unit)
943943 }
944944 else throw("Strict value is not equal to itself.")
945945 }
946946
947947
948948
949949 @Callable(aH)
950950 func getVotingResultStakedREADONLY (bI) = $Tuple2(nil, do(bI))
951951
952952
953953
954954 @Callable(aH)
955955 func getVotingResultStakedIntegralREADONLY (bI) = $Tuple2(nil, ds(bI))
956956
957957
958958
959959 @Callable(aH)
960960 func getUserVoteFinalizedREADONLY (bI,bQ) = $Tuple2(nil, dh(bI, bQ))
961961
962962
963963
964964 @Callable(aH)
965965 func getUserVoteStakedIntegralREADONLY (bI,bQ) = $Tuple2(nil, dC(bI, bQ))
966966
967967
968968
969969 @Callable(aH)
970970 func setManager (fo) = {
971971 let eQ = aG(aH)
972972 if ((eQ == eQ))
973973 then {
974974 let fp = fromBase58String(fo)
975975 if ((fp == fp))
976976 then [StringEntry(af(), fo)]
977977 else throw("Strict value is not equal to itself.")
978978 }
979979 else throw("Strict value is not equal to itself.")
980980 }
981981
982982
983983
984984 @Callable(aH)
985985 func confirmManager () = {
986986 let fq = aF()
987987 let fr = if (isDefined(fq))
988988 then true
989- else throw("No pending manager")
989+ else g("No pending manager")
990990 if ((fr == fr))
991991 then {
992992 let fs = if ((aH.callerPublicKey == value(fq)))
993993 then true
994- else throw("You are not pending manager")
994+ else g("You are not pending manager")
995995 if ((fs == fs))
996996 then [StringEntry(ae(), toBase58String(value(fq))), DeleteEntry(af())]
997997 else throw("Strict value is not equal to itself.")
998998 }
999999 else throw("Strict value is not equal to itself.")
10001000 }
10011001
10021002
10031003 @Verifier(ft)
10041004 func fu () = {
10051005 let fv = {
10061006 let r = aD()
10071007 if ($isInstanceOf(r, "ByteVector"))
10081008 then {
10091009 let aJ = r
10101010 aJ
10111011 }
10121012 else if ($isInstanceOf(r, "Unit"))
10131013 then ft.senderPublicKey
10141014 else throw("Match error")
10151015 }
10161016 sigVerify(ft.bodyBytes, ft.proofs[0], fv)
10171017 }
10181018

github/deemru/w8io/169f3d6 
127.61 ms