tx · 6Ls8TAWG2bebmybFD5gggcw2cZUooKnFscyKHTzsSD9r

3Mv7RVHt45shMpXZUGrFGkGAK1uiG1dGxqy:  -0.04200000 Waves

2023.08.28 09:37 [2730174] smart account 3Mv7RVHt45shMpXZUGrFGkGAK1uiG1dGxqy > SELF 0.00000000 Waves

{ "type": 13, "id": "6Ls8TAWG2bebmybFD5gggcw2cZUooKnFscyKHTzsSD9r", "fee": 4200000, "feeAssetId": null, "timestamp": 1693204647011, "version": 2, "chainId": 84, "sender": "3Mv7RVHt45shMpXZUGrFGkGAK1uiG1dGxqy", "senderPublicKey": "4pZL4kEm1eNmvFXGw37ppam8BGSPoEvfPSeUQYw85jPQ", "proofs": [ "613QcQZNGhj75QDGAVLvKpC16NzbTyWrwCc4T5AjngpBbdiKhLRucwibTzMQyUvPsWXwW89s4pDLFBpR7GybTMDJ", "2iyxgrpdq3CsuASt4zmBhWh7YxUDzpPJvR2sbRxu42LsrWnmUMv63zuAWbou5xQg8VJx3vnQ8zNWFhfhW175nGsM" ], "script": "base64:BgJiCAISAwoBCBIDCgEIEgMKAQgSBAoCCAESBQoDAggBEgUKAwgBARIECgIICBIECgIICBIECgIIARIFCgMCCAESAwoBCBIECgIIAhIDCgEIEgMKARgSAwoBGBIECgIICBIAEgBpAAdrQWN0aXZlAgZhY3RpdmUAC2tBY3RpdmVHbG9iAhRhY3RpdmVfYWxsX2NvbnRyYWN0cwAPa0RlcHJlY2F0ZWRQb29sAgtkZXByZWNhdGVkXwAGa0NhdXNlAg5zaHV0ZG93bl9jYXVzZQAaa1Jld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQCHV9jdXJyZW50X3Bvb2xfZnJhY3Rpb25fcmV3YXJkABtrUmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMCHl9wcmV2aW91c19wb29sX2ZyYWN0aW9uX3Jld2FyZAATa0hlaWdodFBvb2xGcmFjdGlvbgIaX3Bvb2xfcmV3YXJkX3VwZGF0ZV9oZWlnaHQAE2tSZXdhcmRVcGRhdGVIZWlnaHQCFHJld2FyZF91cGRhdGVfaGVpZ2h0ABZrVXNlclNoYXJlVG9rZW5zU3Rha2VkAhRfc2hhcmVfdG9rZW5zX2xvY2tlZAAWa1VzZXJTaGFyZVRva2Vuc0xvY2tlZAIVX3NoYXJlX3Rva2Vuc19ibG9ja2VkABprVXNlclNoYXJlVG9rZW5zTG9ja2VkVHlwZQIaX3NoYXJlX3Rva2Vuc19ibG9ja2VkX3R5cGUAHGtVc2VyU2hhcmVUb2tlbnNMb2NrZWRIZWlnaHQCHF9zaGFyZV90b2tlbnNfYmxvY2tlZF9oZWlnaHQAF2tVc2VyU2hhcmVUb2tlbnNWaXJ0dWFsAhVfc2hhcmVfdG9rZW5zX3ZpcnR1YWwAFmtTaGFyZVRvdGFsU2hhcmVUb2tlbnMCGl90b3RhbF9zaGFyZV90b2tlbnNfbG9ja2VkABNrU2hhcmVUb2tlbnNWaXJ0dWFsAhtfdG90YWxfc2hhcmVfdG9rZW5zX3ZpcnR1YWwAC2tMb2NrUGFyYW1zAgxfbG9ja19wYXJhbXMADWtMb2NrV2F2ZXNGZWUCDmxvY2tfd2F2ZXNfZmVlAA5rUG9vbEJvb3N0Q29lZgILX2Jvb3N0X2NvZWYAEWtGYXJtTGFzdEludGVyZXN0Ag5fbGFzdF9pbnRlcmVzdAAVa0Zhcm1Vc2VyTGFzdEludGVyZXN0Ag5fbGFzdF9pbnRlcmVzdAASa0Jvb3N0TGFzdEludGVyZXN0AhBfbGFzdF9pbnRlcmVzdF9iABZrQm9vc3RVc2VyTGFzdEludGVyZXN0AhJfbGFzdF9pbnRlcmVzdF91X2IAE2tMYXN0SW50ZXJlc3RIZWlnaHQCFV9sYXN0X2ludGVyZXN0X2hlaWdodAAHa1NXT1BpZAIHU1dPUF9pZAAOa0F2YWlsYWJsZVNXT1ACD19hdmFpbGFibGVfU1dPUAAQa0hhcnZlc3RQb29sVm90ZQIYX2hhcnZlc3RfcG9vbF92b3RlX2dTV09QAAlrUG9vbFZvdGUCEF9wb29sX3ZvdGVfZ1NXT1AADWtVc2VyUG9vbFZvdGUCEF91c2VyX3ZvdGVfZ1NXT1AACmtQb29sU3RydWMCC19wb29sX3N0cnVjAA5rVXNlclBvb2xTdHJ1YwIQX3VzZXJfcG9vbF9zdHJ1YwAUa0hhcnZlc3RVc2VyUG9vbFZvdGUCHV9oYXJ2ZXN0X3VzZXJfcG9vbF92b3RlX2dTV09QABNrRmlyc3RIYXJ2ZXN0SGVpZ2h0AhRmaXJzdF9oYXJ2ZXN0X2hlaWdodAANa1NoYXJlTGltaXRGSAIcc2hhcmVfbGltaXRfb25fZmlyc3RfaGFydmVzdAATa1N0cmF0QkZhcm1JbnRlcmVzdAIWX3N0cmF0X2JfZmFybV9pbnRlcmVzdAANa1Bvb2xJbk9yYWNsZQIFcG9vbF8ADWtDcG1tQ29udHJhY3QCDWNwbW1fY29udHJhY3QADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgAQa01vbmV5Qm94QWRkcmVzcwIRbW9uZXlfYm94X2FkZHJlc3MAD2tUZWFtQm94QWRkcmVzcwIQdGVhbV9ib3hfYWRkcmVzcwAOa1ZvdGluZ0FkZHJlc3MCDnZvdGluZ19hZGRyZXNzAAtrR292QWRkcmVzcwISZ292ZXJuYW5jZV9hZGRyZXNzABFrTFBGYXJtaW5nQWRkcmVzcwIKbHBfZmFybWluZwAUa0Zhcm1pbmdUcmVhc3VyZUFkZHICEGZhcm1pbmdfdHJlYXN1cmUADGtBeGx5RmFybWluZwIMYXhseV9mYXJtaW5nAAlrQXhseUxwSWQCCmF4bHlfbHBfaWQABm9yYWNsZQkBB0FkZHJlc3MBARoBVEgTlwzA0zPMJTKAtin3p2RogKvjzHtLmQAOdG90YWxWb3RlU2hhcmUAgMivoCUAC3NjYWxlVmFsdWU4AIDC1y8AC3NjYWxlVmFsdWU2AMCEPQASbG9ja0Jvb3N0Q29lZlNjYWxlAOgHABBkZWZQb29sQm9vc3RDb2VmAPQDAA5zdGFydEVtaXNzaW9uSADQ2LUBABBzd29wWWVhckVtaXNzaW9uAICA6YOx3hYADWJsb2Nrc1BlclllYXIA+o8gAAd0ZWFtRmVlABkBE2dldEJhc2U1OEZyb21PcmFjbGUBA2tleQQHJG1hdGNoMAkAnQgCBQZvcmFjbGUFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkA2QQBBQZzdHJpbmcEB25vdGhpbmcFByRtYXRjaDAJAAIBCQCsAgIFA2tleQIIaXMgZW1wdHkADGFkbWluUHViS2V5MQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkxAAxhZG1pblB1YktleTIJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MgAMYWRtaW5QdWJLZXkzCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTMAD21vbmV5Qm94QWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEGtNb25leUJveEFkZHJlc3MADnRlYW1Cb3hBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUPa1RlYW1Cb3hBZGRyZXNzAA12b3RpbmdBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUOa1ZvdGluZ0FkZHJlc3MACmdvdkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQtrR292QWRkcmVzcwARYWRtaW5JbnZva2VQdWJLZXkJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABBscEZhcm1pbmdBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQURa0xQRmFybWluZ0FkZHJlc3MAE2Zhcm1pbmdUcmVhc3VyZUFkZHIJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRRrRmFybWluZ1RyZWFzdXJlQWRkcgAMY3BtbUNvbnRyYWN0CQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0NwbW1Db250cmFjdAAMYXhseUZhcm1BZGRyCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0F4bHlGYXJtaW5nAAhheGx5THBJZAkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQlrQXhseUxwSWQABmFjdGl2ZQkBEUBleHRyTmF0aXZlKDEwNTEpAgUEdGhpcwUHa0FjdGl2ZQAKYWN0aXZlR2xvYgkBC3ZhbHVlT3JFbHNlAgkAmwgCBQZvcmFjbGUFC2tBY3RpdmVHbG9iBgAEU1dPUAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQdrU1dPUGlkARZnZXRSZXdhcmRzUGVyQmxvY2tJbmZvAAQPZW1pc3Npb25QZXJpb2RzCQBpAgkAZQIFBmhlaWdodAUOc3RhcnRFbWlzc2lvbkgFDWJsb2Nrc1BlclllYXIKAQxjYWxjRW1pc3Npb24CA2FjYwFpBAskdDA1MTI3NTE2NAUDYWNjBAtjdXJFbWlzc2lvbggFCyR0MDUxMjc1MTY0Al8xBAxwcmV2RW1pc3Npb24IBQskdDA1MTI3NTE2NAJfMgMJAGYCBQ9lbWlzc2lvblBlcmlvZHMFAWkJAJQKAgkAawMFC2N1ckVtaXNzaW9uAEsAZAULY3VyRW1pc3Npb24JAJQKAgULY3VyRW1pc3Npb24FDHByZXZFbWlzc2lvbgQLJHQwNTMyMjU0ODgKAAIkbAkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgkAzAgCAA8JAMwIAgAQCQDMCAIAEQkAzAgCABIJAMwIAgATBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFEHN3b3BZZWFyRW1pc3Npb24FEHN3b3BZZWFyRW1pc3Npb24KAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGNhbGNFbWlzc2lvbgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUBAtjdXJFbWlzc2lvbggFCyR0MDUzMjI1NDg4Al8xBAxwcmV2RW1pc3Npb24IBQskdDA1MzIyNTQ4OAJfMgkAlQoDCQBpAgULY3VyRW1pc3Npb24FDWJsb2Nrc1BlclllYXIJAGkCBQxwcmV2RW1pc3Npb24FDWJsb2Nrc1BlclllYXIJAGQCBQ5zdGFydEVtaXNzaW9uSAkAaAIFDWJsb2Nrc1BlclllYXIFD2VtaXNzaW9uUGVyaW9kcwEVZ2V0SGVpZ2h0Rmlyc3RIYXJ2ZXN0AQRwb29sCQELdmFsdWVPckVsc2UCCQCaCAIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBRNrRmlyc3RIYXJ2ZXN0SGVpZ2h0AAABFGdldEZIU2hhcmVMaW1pdFRva2VuAQRwb29sCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEcG9vbAUNa1NoYXJlTGltaXRGSAkArAICAhRObyBkYXRhIG9uIHRoZSBrZXk6IAUNa1NoYXJlTGltaXRGSAESZ2V0VG90YWxTaGFyZVRva2VuAQRwb29sCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkArAICBQRwb29sBRZrU2hhcmVUb3RhbFNoYXJlVG9rZW5zCQCsAgIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFBHBvb2wFFmtTaGFyZVRvdGFsU2hhcmVUb2tlbnMBDGdldFBvb2xWb3RlZAEEcG9vbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ12b3RpbmdBZGRyZXNzCQCsAgIFBHBvb2wFCWtQb29sVm90ZQkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ12b3RpbmdBZGRyZXNzCQCsAgIFBHBvb2wFCmtQb29sU3RydWMCAAIBXwAAAAABEGdldFVzZXJQb29sVm90ZWQCBHBvb2wEdXNlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ12b3RpbmdBZGRyZXNzCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQRwb29sBQ1rVXNlclBvb2xWb3RlCQELdmFsdWVPckVsc2UCCQC2CQEJAJEDAgkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFDXZvdGluZ0FkZHJlc3MJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FBHBvb2wFDmtVc2VyUG9vbFN0cnVjAgACAV8AAAAAAQ9nZXRTaGFyZUFzc2V0SWQBBHBvb2wJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBBXZhbHVlAQkApggBBQRwb29sAg5zaGFyZV9hc3NldF9pZAEOYWNjb3VudEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJAPAHAgUEdGhpcwUCaWQDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDAICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQACAQILTWF0Y2ggZXJyb3IBDmNhbGNTY2FsZVZhbHVlAghhc3NldElkMQhhc3NldElkMgQQYXNzZXRJZDFEZWNpbWFscwgJAQV2YWx1ZQEJAOwHAQUIYXNzZXRJZDEIZGVjaW1hbHMEEGFzc2V0SWQyRGVjaW1hbHMICQEFdmFsdWUBCQDsBwEFCGFzc2V0SWQyCGRlY2ltYWxzBAtzY2FsZURpZ2l0cwkAZAIJAGUCBRBhc3NldElkMkRlY2ltYWxzBRBhc3NldElkMURlY2ltYWxzAAgJAGwGAAoAAAULc2NhbGVEaWdpdHMAAAAABQRET1dOARF1c2VyQXZhaWxhYmxlU1dPUAIEcG9vbAR1c2VyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFDmtBdmFpbGFibGVTV09QAAABCnJld2FyZEluZm8BBHBvb2wECyR0MDczMDM3NDE4CQEWZ2V0UmV3YXJkc1BlckJsb2NrSW5mbwAEGnRvdGFsUmV3YXJkUGVyQmxvY2tDdXJyZW50CAULJHQwNzMwMzc0MTgCXzEEG3RvdGFsUmV3YXJkUGVyQmxvY2tQcmV2aW91cwgFCyR0MDczMDM3NDE4Al8yBBhsYXN0RW1pc3Npb25VcGRhdGVIZWlnaHQIBQskdDA3MzAzNzQxOAJfMwQZcmV3YXJkUG9vbEZyYWN0aW9uQ3VycmVudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCmdvdkFkZHJlc3MJAKwCAgUEcG9vbAUaa1Jld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQJAKwCAgkArAICCQCsAgIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFBHBvb2wFGmtSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AgwgYXQgYWRkcmVzcyAJAKUIAQUKZ292QWRkcmVzcwQScmV3YXJkVXBkYXRlSGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUKZ292QWRkcmVzcwUTa1Jld2FyZFVwZGF0ZUhlaWdodAkArAICCQCsAgIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFE2tSZXdhcmRVcGRhdGVIZWlnaHQCDCBhdCBhZGRyZXNzIAkApQgBBQpnb3ZBZGRyZXNzBBZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0CQELdmFsdWVPckVsc2UCCQCaCAIFCmdvdkFkZHJlc3MJAKwCAgUEcG9vbAUTa0hlaWdodFBvb2xGcmFjdGlvbgUScmV3YXJkVXBkYXRlSGVpZ2h0BBpyZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCmdvdkFkZHJlc3MJAKwCAgUEcG9vbAUba1Jld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzCQCsAgIJAKwCAgkArAICCQCsAgICFE5vIGRhdGEgb24gdGhlIGtleTogBQRwb29sBRtrUmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMCDCBhdCBhZGRyZXNzIAkApQgBBQpnb3ZBZGRyZXNzBBFyZXdhcmRQb29sQ3VycmVudAkAawMFGnRvdGFsUmV3YXJkUGVyQmxvY2tDdXJyZW50BRlyZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50BQ50b3RhbFZvdGVTaGFyZQQScmV3YXJkUG9vbFByZXZpb3VzCQBrAwUadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQFGnJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQ50b3RhbFZvdGVTaGFyZQQVcmV3YXJkUG9vbFByZXZDdXJyZW50CQBrAwUbdG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzBRlyZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50BQ50b3RhbFZvdGVTaGFyZQQWcmV3YXJkUG9vbFByZXZQcmV2aW91cwkAawMFG3RvdGFsUmV3YXJkUGVyQmxvY2tQcmV2aW91cwUacmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMFDnRvdGFsVm90ZVNoYXJlAwMJAGYCBRFyZXdhcmRQb29sQ3VycmVudAUadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQGCQBmAgUScmV3YXJkUG9vbFByZXZpb3VzBRt0b3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMJAAIBAmJyZXdhcmRQb29sQ3VycmVudCA+IHRvdGFsUmV3YXJkUGVyQmxvY2tDdXJyZW50IG9yIHJld2FyZFBvb2xQcmV2aW91cyA+IHRvdGFsUmV3YXJkUGVyQmxvY2tQcmV2aW91cwkAmQoHBRFyZXdhcmRQb29sQ3VycmVudAUScmV3YXJkVXBkYXRlSGVpZ2h0BRJyZXdhcmRQb29sUHJldmlvdXMFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFGGxhc3RFbWlzc2lvblVwZGF0ZUhlaWdodAUVcmV3YXJkUG9vbFByZXZDdXJyZW50BRZyZXdhcmRQb29sUHJldlByZXZpb3VzARNnZXRMYXN0SW50ZXJlc3RJbmZvAQRwb29sBAxmYXJtSW50ZXJlc3QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFEWtGYXJtTGFzdEludGVyZXN0CQCsAgIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFBHBvb2wFEWtGYXJtTGFzdEludGVyZXN0BA1ib29zdEludGVyZXN0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEcG9vbAUSa0Jvb3N0TGFzdEludGVyZXN0AAAEEmxhc3RJbnRlcmVzdEhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFE2tMYXN0SW50ZXJlc3RIZWlnaHQFBmhlaWdodAkAlQoDBRJsYXN0SW50ZXJlc3RIZWlnaHQFDGZhcm1JbnRlcmVzdAUNYm9vc3RJbnRlcmVzdAELY2FsY0Zhcm1Sd2QCBHBvb2wOY3VyVG90YWxSZXdhcmQEDXBvb2xCb29zdENvZWYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQRwb29sBQ5rUG9vbEJvb3N0Q29lZgUQZGVmUG9vbEJvb3N0Q29lZgkAawMFDmN1clRvdGFsUmV3YXJkBRJsb2NrQm9vc3RDb2VmU2NhbGUJAGQCBQ1wb29sQm9vc3RDb2VmBRJsb2NrQm9vc3RDb2VmU2NhbGUBDGNhbGNCb29zdFJ3ZAIEcG9vbA5jdXJUb3RhbFJld2FyZAQNcG9vbEJvb3N0Q29lZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFDmtQb29sQm9vc3RDb2VmBRBkZWZQb29sQm9vc3RDb2VmCQBrAwUOY3VyVG90YWxSZXdhcmQFDXBvb2xCb29zdENvZWYJAGQCBQ1wb29sQm9vc3RDb2VmBRJsb2NrQm9vc3RDb2VmU2NhbGUBDGNhbGNJbnRlcmVzdAwEcG9vbBJsYXN0SW50ZXJlc3RIZWlnaHQScmV3YXJkVXBkYXRlSGVpZ2h0FnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQMZmFybUludGVyZXN0DWJvb3N0SW50ZXJlc3QJcG9vbFZvdGVkFWN1cnJlbnRSZXdhcmRQZXJCbG9jaxBzaGFyZVRva2VuTG9ja2VkFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sKc2NhbGVWYWx1ZQh0b0hlaWdodAQNJHQwMTA0MzIxMTYxNwMDAwkAZgIFEnJld2FyZFVwZGF0ZUhlaWdodAUIdG9IZWlnaHQJAAACBRJyZXdhcmRVcGRhdGVIZWlnaHQFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQHBgMJAGYCBQh0b0hlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0CQECIT0CBRJyZXdhcmRVcGRhdGVIZWlnaHQFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQHBAFyCQBoAgUWcHJldmlvdXNSZXdhcmRQZXJCbG9jawkAZQIFCHRvSGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQJAJUKAwUBcgUMZmFybUludGVyZXN0BQ1ib29zdEludGVyZXN0AwMDCQBmAgUIdG9IZWlnaHQFEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIFEnJld2FyZFVwZGF0ZUhlaWdodAUWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAcJAGYCBRJsYXN0SW50ZXJlc3RIZWlnaHQFEnJld2FyZFVwZGF0ZUhlaWdodAcEAXIJAGgCBRVjdXJyZW50UmV3YXJkUGVyQmxvY2sJAGUCBQh0b0hlaWdodAUSbGFzdEludGVyZXN0SGVpZ2h0CQCVCgMFAXIFDGZhcm1JbnRlcmVzdAUNYm9vc3RJbnRlcmVzdAQJcndkQmZyVXBkCQBoAgUWcHJldmlvdXNSZXdhcmRQZXJCbG9jawkAZQIFEnJld2FyZFVwZGF0ZUhlaWdodAUSbGFzdEludGVyZXN0SGVpZ2h0BAZmQmZyVXAJAGQCBQxmYXJtSW50ZXJlc3QJAGsDCQELY2FsY0Zhcm1Sd2QCBQRwb29sBQlyd2RCZnJVcGQFCnNjYWxlVmFsdWUFEHNoYXJlVG9rZW5Mb2NrZWQEBmJCZnJVcAkAZAIFDWJvb3N0SW50ZXJlc3QDCQBmAgUJcG9vbFZvdGVkAAAJAGsDCQEMY2FsY0Jvb3N0UndkAgUEcG9vbAUJcndkQmZyVXBkBQtzY2FsZVZhbHVlOAUJcG9vbFZvdGVkAAAEA3J3ZAkAaAIFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAZQIFCHRvSGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQJAJUKAwUDcndkBQZmQmZyVXAFBmJCZnJVcAQGcmV3YXJkCAUNJHQwMTA0MzIxMTYxNwJfMQQOZmFybUludHJCZWZvcmUIBQ0kdDAxMDQzMjExNjE3Al8yBA9ib29zdEludHJCZWZvcmUIBQ0kdDAxMDQzMjExNjE3Al8zBA9uZXdGYXJtSW50ZXJlc3QJAGQCBQ5mYXJtSW50ckJlZm9yZQkAawMJAQtjYWxjRmFybVJ3ZAIFBHBvb2wFBnJld2FyZAUKc2NhbGVWYWx1ZQUQc2hhcmVUb2tlbkxvY2tlZAQQbmV3Qm9vc3RJbnRlcmVzdAkAZAIFD2Jvb3N0SW50ckJlZm9yZQMJAGYCBQlwb29sVm90ZWQAAAkAawMJAQxjYWxjQm9vc3RSd2QCBQRwb29sBQZyZXdhcmQFC3NjYWxlVmFsdWU4BQlwb29sVm90ZWQAAAkAlAoCBQ9uZXdGYXJtSW50ZXJlc3QFEG5ld0Jvb3N0SW50ZXJlc3QBCWNsYWltQ2FsYwIEcG9vbAR1c2VyBApzY2FsZVZhbHVlCQEOY2FsY1NjYWxlVmFsdWUCBQRTV09QCQEPZ2V0U2hhcmVBc3NldElkAQUEcG9vbAQJcG9vbFZvdGVkCQEMZ2V0UG9vbFZvdGVkAQUEcG9vbAQKdVBvb2xWb3RlZAkBEGdldFVzZXJQb29sVm90ZWQCBQRwb29sBQR1c2VyBApzaGFyZVRva2VuCQESZ2V0VG90YWxTaGFyZVRva2VuAQUEcG9vbAQRdG90YWxTaGFyZVZpcnR1YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQRwb29sBRNrU2hhcmVUb2tlbnNWaXJ0dWFsBQpzaGFyZVRva2VuBBJzdHJhdEJGYXJtSW50ZXJlc3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQRwb29sBRNrU3RyYXRCRmFybUludGVyZXN0AAAEDSR0MDEyNDU1MTI1MzYJARNnZXRMYXN0SW50ZXJlc3RJbmZvAQUEcG9vbAQSbGFzdEludGVyZXN0SGVpZ2h0CAUNJHQwMTI0NTUxMjUzNgJfMQQMZmFybUludGVyZXN0CAUNJHQwMTI0NTUxMjUzNgJfMgQNYm9vc3RJbnRlcmVzdAgFDSR0MDEyNDU1MTI1MzYCXzMEDSR0MDEyNTQxMTI3OTgJAQpyZXdhcmRJbmZvAQUEcG9vbAQVY3VycmVudFJld2FyZFBlckJsb2NrCAUNJHQwMTI1NDExMjc5OAJfMQQScmV3YXJkVXBkYXRlSGVpZ2h0CAUNJHQwMTI1NDExMjc5OAJfMgQWcHJldmlvdXNSZXdhcmRQZXJCbG9jawgFDSR0MDEyNTQxMTI3OTgCXzMEFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQIBQ0kdDAxMjU0MTEyNzk4Al80BBRlbWlzc2lvblVwZGF0ZUhlaWdodAgFDSR0MDEyNTQxMTI3OTgCXzUEGXByZXZDdXJyZW50UmV3YXJkUGVyQmxvY2sIBQ0kdDAxMjU0MTEyNzk4Al82BBpwcmV2UHJldmlvdXNSZXdhcmRQZXJCbG9jawgFDSR0MDEyNTQxMTI3OTgCXzcEDXVGYXJtSW50ZXJlc3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUVa0Zhcm1Vc2VyTGFzdEludGVyZXN0BQxmYXJtSW50ZXJlc3QEDnVCb29zdEludGVyZXN0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtCb29zdFVzZXJMYXN0SW50ZXJlc3QDAwkAZgIFEnN0cmF0QkZhcm1JbnRlcmVzdAUNdUZhcm1JbnRlcmVzdAkAZgIFCnVQb29sVm90ZWQAAAcAAAUNYm9vc3RJbnRlcmVzdAQSdVNoYXJlVG9rZW5zU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNTdGFrZWQAAAQQdVNoYXJlVG9rZW5zVmlydAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRdrVXNlclNoYXJlVG9rZW5zVmlydHVhbAUSdVNoYXJlVG9rZW5zU3Rha2VkAwkAAAIFEXRvdGFsU2hhcmVWaXJ0dWFsAAAECnRvVHJlYXN1cnkDCQBmAgUUZW1pc3Npb25VcGRhdGVIZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAkAZAIJAGgCBRlwcmV2Q3VycmVudFJld2FyZFBlckJsb2NrCQBlAgUUZW1pc3Npb25VcGRhdGVIZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAkAaAIFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAZQIFBmhlaWdodAUUZW1pc3Npb25VcGRhdGVIZWlnaHQJAGgCBRVjdXJyZW50UmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAQKdGVhbVJld2FyZAkAawMFCnRvVHJlYXN1cnkFB3RlYW1GZWUAZAkAlwoFBQxmYXJtSW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QAAAkAZQIFCnRvVHJlYXN1cnkFCnRlYW1SZXdhcmQFCnRlYW1SZXdhcmQEDSR0MDEzODQxMTQ5NzgDCQBmAgUUZW1pc3Npb25VcGRhdGVIZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAQNJHQwMTQyNTQxNDgxMwkBDGNhbGNJbnRlcmVzdAwFBHBvb2wFEmxhc3RJbnRlcmVzdEhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0BRZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0BQxmYXJtSW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QFCXBvb2xWb3RlZAUZcHJldkN1cnJlbnRSZXdhcmRQZXJCbG9jawURdG90YWxTaGFyZVZpcnR1YWwFGnByZXZQcmV2aW91c1Jld2FyZFBlckJsb2NrBQpzY2FsZVZhbHVlBRRlbWlzc2lvblVwZGF0ZUhlaWdodAQTcHJldk5ld0Zhcm1JbnRlcmVzdAgFDSR0MDE0MjU0MTQ4MTMCXzEEFHByZXZOZXdCb29zdEludGVyZXN0CAUNJHQwMTQyNTQxNDgxMwJfMgkAlQoDBRNwcmV2TmV3RmFybUludGVyZXN0BRRwcmV2TmV3Qm9vc3RJbnRlcmVzdAUUZW1pc3Npb25VcGRhdGVIZWlnaHQJAJUKAwUMZmFybUludGVyZXN0BQ1ib29zdEludGVyZXN0BRJsYXN0SW50ZXJlc3RIZWlnaHQEEHByZXZGYXJtSW50ZXJlc3QIBQ0kdDAxMzg0MTE0OTc4Al8xBBFwcmV2Qm9vc3RJbnRlcmVzdAgFDSR0MDEzODQxMTQ5NzgCXzIECExJSGVpZ2h0CAUNJHQwMTM4NDExNDk3OAJfMwQNJHQwMTQ5ODcxNTQxMAkBDGNhbGNJbnRlcmVzdAwFBHBvb2wFCExJSGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFEHByZXZGYXJtSW50ZXJlc3QFEXByZXZCb29zdEludGVyZXN0BQlwb29sVm90ZWQFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawURdG90YWxTaGFyZVZpcnR1YWwFFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sFCnNjYWxlVmFsdWUFBmhlaWdodAQPbmV3RmFybUludGVyZXN0CAUNJHQwMTQ5ODcxNTQxMAJfMQQQbmV3Qm9vc3RJbnRlcmVzdAgFDSR0MDE0OTg3MTU0MTACXzIEB2Zhcm1Sd2QJAGsDBRB1U2hhcmVUb2tlbnNWaXJ0CQBlAgUPbmV3RmFybUludGVyZXN0BQ11RmFybUludGVyZXN0BQpzY2FsZVZhbHVlBA1wb29sQm9vc3RDb2VmCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEcG9vbAUOa1Bvb2xCb29zdENvZWYFEGRlZlBvb2xCb29zdENvZWYEC2Jvb3N0UndkTWF4CQBrAwkAawMFEHVTaGFyZVRva2Vuc1ZpcnQJAGUCBQ9uZXdGYXJtSW50ZXJlc3QJAJYDAQkAzAgCBQ11RmFybUludGVyZXN0CQDMCAIFEnN0cmF0QkZhcm1JbnRlcmVzdAUDbmlsBQpzY2FsZVZhbHVlBQ1wb29sQm9vc3RDb2VmBRJsb2NrQm9vc3RDb2VmU2NhbGUEC2N1ckJvb3N0UndkCQBrAwkAZQIFEG5ld0Jvb3N0SW50ZXJlc3QFDnVCb29zdEludGVyZXN0BQp1UG9vbFZvdGVkBQtzY2FsZVZhbHVlOAQIYm9vc3RSd2QJAJcDAQkAzAgCBQtib29zdFJ3ZE1heAkAzAgCBQtjdXJCb29zdFJ3ZAUDbmlsBAp0b1RyZWFzdXJ5CQBlAgULYm9vc3RSd2RNYXgFCGJvb3N0UndkBAp0ZWFtUmV3YXJkCQBrAwUKdG9UcmVhc3VyeQUHdGVhbUZlZQBkAwkAZgIAAAUKdG9UcmVhc3VyeQkAAgECDnRvVHJlYXN1cnkgPCAwCQCXCgUFD25ld0Zhcm1JbnRlcmVzdAUQbmV3Qm9vc3RJbnRlcmVzdAkAZAIFB2Zhcm1Sd2QFCGJvb3N0UndkCQBlAgUKdG9UcmVhc3VyeQUKdGVhbVJld2FyZAUKdGVhbVJld2FyZAEbYXZhaWxhYmxlQ2xhaW1DYWxjQWxsQnlVc2VyAgVwb29scwR1c2VyCgENY2FsY0F2YWlsYWJsZQIDYWNjBHBvb2wEDSR0MDE2MzY0MTYzOTMFA2FjYwQIbmV3UG9vbHMIBQ0kdDAxNjM2NDE2MzkzAl8xBAdhbW91bnRzCAUNJHQwMTYzNjQxNjM5MwJfMgQNJHQwMTY0MDIxNjQ1NQkBCWNsYWltQ2FsYwIFBHBvb2wFBHVzZXIEAmZpCAUNJHQwMTY0MDIxNjQ1NQJfMQQCYmkIBQ0kdDAxNjQwMjE2NDU1Al8yBAtjbGFpbUFtb3VudAgFDSR0MDE2NDAyMTY0NTUCXzMEAnR0CAUNJHQwMTY0MDIxNjQ1NQJfNAQNYXZhaWxhYmxlRnVuZAkAZAIJARF1c2VyQXZhaWxhYmxlU1dPUAIFBHBvb2wFBHVzZXIFC2NsYWltQW1vdW50CQCUCgIJAM0IAgUIbmV3UG9vbHMFBHBvb2wJAM0IAgUHYW1vdW50cwUNYXZhaWxhYmxlRnVuZAoAAiRsBQVwb29scwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDWNhbGNBdmFpbGFibGUCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDYwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8ARVjYW5Mb2NrSW5GaXJzdEhhcnZlc3QFBHBvb2wEdXNlchV1c2VyU2hhcmVUb2tlbnNTdGFrZWQJcG10QW1vdW50CGxvY2tUeXBlAwkAZgIJARVnZXRIZWlnaHRGaXJzdEhhcnZlc3QBBQRwb29sBQZoZWlnaHQED3RvdGFsVm90ZUFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ12b3RpbmdBZGRyZXNzCQCsAgIFBHBvb2wFEGtIYXJ2ZXN0UG9vbFZvdGUAAAQOdXNlclZvdGVBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUNdm90aW5nQWRkcmVzcwkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUEcG9vbAUUa0hhcnZlc3RVc2VyUG9vbFZvdGUAAAQRRkhTaGFyZVRva2VuTGltaXQJARRnZXRGSFNoYXJlTGltaXRUb2tlbgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBHBvb2wEFUZIU2hhcmVUb2tlblVzZXJMaW1pdAkAZQIJAGsDBRFGSFNoYXJlVG9rZW5MaW1pdAUOdXNlclZvdGVBbW91bnQFD3RvdGFsVm90ZUFtb3VudAUVdXNlclNoYXJlVG9rZW5zU3Rha2VkAwkAZgIFCGxvY2tUeXBlAAAJAAIBAjJZb3UgY2FuJ3QgbG9jayBzaGFyZVRva2VucyB0aWxsIGZpcnN0IGhhcnZlc3QgZW5kLgMJAAACBQ51c2VyVm90ZUFtb3VudAAACQACAQJDWW91IGNhbid0IGxvY2sgc2hhcmVUb2tlbnMuIFlvdSBkaWRuJ3Qgdm90ZSBmb3IgcG9vbCBpbiBmaXJzdCB3ZWVrLgMJAGcCBQlwbXRBbW91bnQFFUZIU2hhcmVUb2tlblVzZXJMaW1pdAkAZQIFCXBtdEFtb3VudAUVRkhTaGFyZVRva2VuVXNlckxpbWl0AAAAAAENZ2V0TG9ja1BhcmFtcwEEdHlwZQQKbG9ja1BhcmFtcwkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwkArAICCQCkAwEFBHR5cGUFC2tMb2NrUGFyYW1zCQCsAgICHlRoZXJlIGFyZSBubyBrZXkgZm9yIGxvY2sgdHlwZQkApAMBBQR0eXBlAgFfCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpsb2NrUGFyYW1zAAAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpsb2NrUGFyYW1zAAEBB3N1c3BlbmQBBWNhdXNlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBwkAzAgCCQELU3RyaW5nRW50cnkCBQZrQ2F1c2UFBWNhdXNlBQNuaWwBCGlzQWN0aXZlAAMDBQZhY3RpdmUFCmFjdGl2ZUdsb2IHBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAELaXNBZG1pbkNhbGwBAWkDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQxhZG1pblB1YktleTEJAMwIAgUMYWRtaW5QdWJLZXkyCQDMCAIFDGFkbWluUHViS2V5MwUDbmlsCAUBaQ9jYWxsZXJQdWJsaWNLZXkFBHVuaXQJAAIBAiFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BCmlzUG9vbENhbGwCAWkEcG9vbAMDCQAAAgkApQgBCAUBaQZjYWxsZXIFBHBvb2wGCQAAAggFAWkGY2FsbGVyBQxjcG1tQ29udHJhY3QFBHVuaXQJAAIBAiBPbmx5IHBvb2wgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgERZ2V0RGVwcmVjYXRlZFBvb2wBBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAJsIAgUGb3JhY2xlCQCsAgIFD2tEZXByZWNhdGVkUG9vbAUEcG9vbAcBEGlzRGVwcmVjYXRlZFBvb2wBBHBvb2wDCQEBIQEJARFnZXREZXByZWNhdGVkUG9vbAEFBHBvb2wFBHVuaXQJAAIBAi9Qb29sIGlzIGRlcHJlY2F0ZWQuIE9ubHkgdW5sb2NrIGFjdGlvbiBhbGxvd2VkLgEKaXNTZWxmQ2FsbAEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMFBHVuaXQJAAIBAitPbmx5IGNvbnRyYWN0IGl0c2VsZiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uARNjYWxjTG9ja1NoYXJlVG9rZW5zBAFpBmNhbGxlcgRwb29sCGxvY2tUeXBlBAR1c2VyCQClCAEFBmNhbGxlcgQDaW52AwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUIYXhseUxwSWQJAPwHBAUMYXhseUZhcm1BZGRyAghscEFjdGlvbgkAzAgCBQR1c2VyBQNuaWwFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BAxzaGFyZUFzc2V0SWQJAQ9nZXRTaGFyZUFzc2V0SWQBBQRwb29sBAp0b3RhbFNoYXJlCQESZ2V0VG90YWxTaGFyZVRva2VuAQUEcG9vbAQRdG90YWxTaGFyZVZpcnR1YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQRwb29sBRNrU2hhcmVUb2tlbnNWaXJ0dWFsBQp0b3RhbFNoYXJlBBB1c2VyU3Rha2VkQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNTdGFrZWQAAAQPdXNlckxvY2tlZEhlaWd0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFHGtVc2VyU2hhcmVUb2tlbnNMb2NrZWRIZWlnaHQAAAQQdXNlckxvY2tlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrVXNlclNoYXJlVG9rZW5zTG9ja2VkAAAEEXVzZXJBbW91bnRWaXJ0dWFsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFF2tVc2VyU2hhcmVUb2tlbnNWaXJ0dWFsBRB1c2VyU3Rha2VkQW1vdW50BBR0b3RhbFVzZXJTaGFyZVRva2VucwkAZAIJAGQCBRB1c2VyU3Rha2VkQW1vdW50BRB1c2VyTG9ja2VkQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQNJHQwMTk2OTExOTc0MwkBDWdldExvY2tQYXJhbXMBBQhsb2NrVHlwZQQKbG9ja1BlcmlvZAgFDSR0MDE5NjkxMTk3NDMCXzEECGxvY2tDb2VmCAUNJHQwMTk2OTExOTc0MwJfMgQMbG9ja1dhdmVzRmVlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ1rTG9ja1dhdmVzRmVlAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQxzaGFyZUFzc2V0SWQJAAIBAhtXcm9uZyBzaGFyZXRva2VuIGluIHBheW1lbnQDCQBnAgAACAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAkAAgECJVBheW1lbnQgYW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIDADCQBmAgAABQhsb2NrVHlwZQkAAgECFWxvY2tUeXBlIG11c3QgYmUgPj0gMAQVc2hhcmVUb2tlbnNDaGFuZ2VPbkZICQEVY2FuTG9ja0luRmlyc3RIYXJ2ZXN0BQUEcG9vbAUEdXNlcgUQdXNlclN0YWtlZEFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFCGxvY2tUeXBlAwkAAAIFFXNoYXJlVG9rZW5zQ2hhbmdlT25GSAUVc2hhcmVUb2tlbnNDaGFuZ2VPbkZIBA0kdDAyMDE3MDIyMTA0AwkAAAIFCGxvY2tUeXBlAAAEFHVzZXJBbW91bnRWaXJ0dWFsTmV3CQBlAgkAZAIFEXVzZXJBbW91bnRWaXJ0dWFsCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUVc2hhcmVUb2tlbnNDaGFuZ2VPbkZICQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNTdGFrZWQJAGUCCQBkAgUQdXNlclN0YWtlZEFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFFXNoYXJlVG9rZW5zQ2hhbmdlT25GSAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUXa1VzZXJTaGFyZVRva2Vuc1ZpcnR1YWwFFHVzZXJBbW91bnRWaXJ0dWFsTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFE2tTaGFyZVRva2Vuc1ZpcnR1YWwJAGUCCQBkAgURdG90YWxTaGFyZVZpcnR1YWwICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BRVzaGFyZVRva2Vuc0NoYW5nZU9uRkgJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUGY2FsbGVyBRVzaGFyZVRva2Vuc0NoYW5nZU9uRkgICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsCQBlAgkAZAIFCnRvdGFsU2hhcmUICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BRVzaGFyZVRva2Vuc0NoYW5nZU9uRkgDAwkAAAIFD3VzZXJMb2NrZWRIZWlndAAAAwMJAGYCAAIJAJADAQgFAWkIcGF5bWVudHMGCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwABB2Fzc2V0SWQFBHVuaXQGCQBmAgUMbG9ja1dhdmVzRmVlCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAcJAAIBCQCsAgIJAKwCAgIrWW91IG5lZWQgdG8gcGF5IGFkZGl0aW9uYWwgd2F2ZXMgY29taXNzaW9uIAkApAMBBQxsb2NrV2F2ZXNGZWUCBVdBVkVTAwkAZgIFD3VzZXJMb2NrZWRIZWlndAkAZAIFBmhlaWdodAUKbG9ja1BlcmlvZAkAAgECT1lvdSBjYW5ub3QgbG9jayBzaGFyZXRva2VucyBmb3IgYSBwZXJpb2QgbGVzcyB0aGFuIHdoYXQgeW91IGhhdmUgYWxyZWFkeSBsb2NrZWQEE3VzZXJMb2NrZWRBbW91bnROZXcJAGQCBRB1c2VyTG9ja2VkQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQSdXNlckxvY2tlZEhlaWd0TmV3CQBkAgUGaGVpZ2h0BQpsb2NrUGVyaW9kBBR1c2VyQW1vdW50VmlydHVhbE5ldwkAZAIJAGsDBRN1c2VyTG9ja2VkQW1vdW50TmV3BQhsb2NrQ29lZgUSbG9ja0Jvb3N0Q29lZlNjYWxlBRB1c2VyU3Rha2VkQW1vdW50CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNMb2NrZWQFE3VzZXJMb2NrZWRBbW91bnROZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFHGtVc2VyU2hhcmVUb2tlbnNMb2NrZWRIZWlnaHQFEnVzZXJMb2NrZWRIZWlndE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUaa1VzZXJTaGFyZVRva2Vuc0xvY2tlZFR5cGUFCGxvY2tUeXBlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRdrVXNlclNoYXJlVG9rZW5zVmlydHVhbAUUdXNlckFtb3VudFZpcnR1YWxOZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa1NoYXJlVG9rZW5zVmlydHVhbAkAZAIJAGUCBRF0b3RhbFNoYXJlVmlydHVhbAURdXNlckFtb3VudFZpcnR1YWwFFHVzZXJBbW91bnRWaXJ0dWFsTmV3BQNuaWwJAGQCBQp0b3RhbFNoYXJlCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQLbG9ja0VudHJpZXMIBQ0kdDAyMDE3MDIyMTA0Al8xBA10b3RhbFNoYXJlTmV3CAUNJHQwMjAxNzAyMjEwNAJfMgMJAGYCBQ10b3RhbFNoYXJlTmV3CQEOYWNjb3VudEJhbGFuY2UBBQxzaGFyZUFzc2V0SWQJAAIBAjBCYWxhbmNlIG9mIHNoYXJlLXRva2VuIGlzIGxvd2VyIHRoYW4gdG90YWxBbW91bnQEDSR0MDIyMjI5MjIzMjMJAQljbGFpbUNhbGMCBQRwb29sBQR1c2VyBAxmYXJtSW50ZXJlc3QIBQ0kdDAyMjIyOTIyMzIzAl8xBA1ib29zdEludGVyZXN0CAUNJHQwMjIyMjkyMjMyMwJfMgQLY2xhaW1BbW91bnQIBQ0kdDAyMjIyOTIyMzIzAl8zBAp0b1RyZWFzdXJlCAUNJHQwMjIyMjkyMjMyMwJfNAQKdGVhbVJld2FyZAgFDSR0MDIyMjI5MjIzMjMCXzUEEWF2YWlsYWJsZUZ1bmRzTmV3CQBkAgkBEXVzZXJBdmFpbGFibGVTV09QAgUEcG9vbAUEdXNlcgULY2xhaW1BbW91bnQEBHVwbHADCQAAAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUEcG9vbAIHdmVyc2lvbgIFMy4wLjAJAPwHBAUQbHBGYXJtaW5nQWRkcmVzcwISdXBkYXRlVXNlckludGVyZXN0CQDMCAIFBHVzZXIJAMwIAgUEcG9vbAkAzAgCBRR0b3RhbFVzZXJTaGFyZVRva2VucwUDbmlsBQNuaWwAAAMJAAACBQR1cGxwBQR1cGxwCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFWtGYXJtVXNlckxhc3RJbnRlcmVzdAUMZmFybUludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrQm9vc3RVc2VyTGFzdEludGVyZXN0BQ1ib29zdEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFEWtGYXJtTGFzdEludGVyZXN0BQxmYXJtSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUSa0Jvb3N0TGFzdEludGVyZXN0BQ1ib29zdEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFE2tMYXN0SW50ZXJlc3RIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRZrU2hhcmVUb3RhbFNoYXJlVG9rZW5zBQ10b3RhbFNoYXJlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBQ5rQXZhaWxhYmxlU1dPUAURYXZhaWxhYmxlRnVuZHNOZXcJAMwIAgkBB1JlaXNzdWUDBQRTV09QCQBkAgUKdG9UcmVhc3VyZQUKdGVhbVJld2FyZAYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUTZmFybWluZ1RyZWFzdXJlQWRkcgUKdG9UcmVhc3VyZQUEU1dPUAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ50ZWFtQm94QWRkcmVzcwUKdGVhbVJld2FyZAUEU1dPUAUDbmlsBQtsb2NrRW50cmllcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEXY2FsY1dpdGhkcmF3U2hhcmVUb2tlbnMEAWkGY2FsbGVyBHBvb2wZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAQDaW52AwkBEWdldERlcHJlY2F0ZWRQb29sAQUEcG9vbAkA/AcEBQR0aGlzAhh1bmxvY2tVc2VyTG9ja0RlcHJlY2F0ZWQJAMwIAgUEcG9vbAkAzAgCCQClCAEFBmNhbGxlcgUDbmlsBQNuaWwAAAMJAAACBQNpbnYFA2ludgQNc2hhcmVUb2tlbnNJZAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQEFdmFsdWUBCQCmCAEFBHBvb2wCDnNoYXJlX2Fzc2V0X2lkBAR1c2VyCQClCAEFBmNhbGxlcgQEaW52MQMJAAACBQ1zaGFyZVRva2Vuc0lkBQhheGx5THBJZAkA/AcEBQxheGx5RmFybUFkZHICCGxwQWN0aW9uCQDMCAIFBHVzZXIFA25pbAUDbmlsBQNuaWwDCQAAAgUEaW52MQUEaW52MQQNJHQwMjM3OTUyMzg4OQkBCWNsYWltQ2FsYwIFBHBvb2wFBHVzZXIEDGZhcm1JbnRlcmVzdAgFDSR0MDIzNzk1MjM4ODkCXzEEDWJvb3N0SW50ZXJlc3QIBQ0kdDAyMzc5NTIzODg5Al8yBAtjbGFpbUFtb3VudAgFDSR0MDIzNzk1MjM4ODkCXzMECnRvVHJlYXN1cmUIBQ0kdDAyMzc5NTIzODg5Al80BAp0ZWFtUmV3YXJkCAUNJHQwMjM3OTUyMzg4OQJfNQQQdXNlclN0YWtlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrVXNlclNoYXJlVG9rZW5zU3Rha2VkAAAEEHVzZXJMb2NrZWRBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUWa1VzZXJTaGFyZVRva2Vuc0xvY2tlZAAABBF1c2VyQW1vdW50VmlydHVhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRdrVXNlclNoYXJlVG9rZW5zVmlydHVhbAUQdXNlclN0YWtlZEFtb3VudAQTdXNlclN0YWtlZEFtb3VudE5ldwkAZQIFEHVzZXJTdGFrZWRBbW91bnQFGXNoYXJlVG9rZW5zV2l0aGRyYXdBbW91bnQEEWF2YWlsYWJsZUZ1bmRzTmV3CQBkAgkBEXVzZXJBdmFpbGFibGVTV09QAgUEcG9vbAUEdXNlcgULY2xhaW1BbW91bnQEEHRvdGFsU2hhcmVBbW91bnQJARJnZXRUb3RhbFNoYXJlVG9rZW4BBQRwb29sBBF0b3RhbFNoYXJlVmlydHVhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFE2tTaGFyZVRva2Vuc1ZpcnR1YWwFEHRvdGFsU2hhcmVBbW91bnQEE3RvdGFsU2hhcmVBbW91bnROZXcJAGUCBRB0b3RhbFNoYXJlQW1vdW50BRlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50BBR0b3RhbFNoYXJlVmlydHVhbE5ldwkAZQIFEXRvdGFsU2hhcmVWaXJ0dWFsBRlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50BBR1c2VyQW1vdW50VmlydHVhbE5ldwkAZQIFEXVzZXJBbW91bnRWaXJ0dWFsBRlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50AwkAZgIFGXNoYXJlVG9rZW5zV2l0aGRyYXdBbW91bnQFEHVzZXJTdGFrZWRBbW91bnQJAAIBAixXaXRoZHJhdyBhbW91bnQgbW9yZSB0aGVuIHVzZXIgbG9ja2VkIGFtb3VudAMJAGYCCQEOYWNjb3VudEJhbGFuY2UBBQ1zaGFyZVRva2Vuc0lkBRB0b3RhbFNoYXJlQW1vdW50CQACAQIwQmFsYW5jZSBvZiBzaGFyZS10b2tlbiBpcyBsb3dlciB0aGFuIHRvdGFsQW1vdW50BAR1cGxwAwkAAAIJAJ0IAgkBB0FkZHJlc3MBCQDZBAEFBHBvb2wCB3ZlcnNpb24CBTMuMC4wCQD8BwQFEGxwRmFybWluZ0FkZHJlc3MCEnVwZGF0ZVVzZXJJbnRlcmVzdAkAzAgCBQR1c2VyCQDMCAIFBHBvb2wJAMwIAgkAZAIFEHVzZXJTdGFrZWRBbW91bnQFEHVzZXJMb2NrZWRBbW91bnQFA25pbAUDbmlsAAADCQAAAgUEdXBscAUEdXBscAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUVa0Zhcm1Vc2VyTGFzdEludGVyZXN0BQxmYXJtSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtCb29zdFVzZXJMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAURa0Zhcm1MYXN0SW50ZXJlc3QFDGZhcm1JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRJrQm9vc3RMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa0xhc3RJbnRlcmVzdEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrVXNlclNoYXJlVG9rZW5zU3Rha2VkBRN1c2VyU3Rha2VkQW1vdW50TmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRdrVXNlclNoYXJlVG9rZW5zVmlydHVhbAUUdXNlckFtb3VudFZpcnR1YWxOZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUWa1NoYXJlVG90YWxTaGFyZVRva2VucwUTdG90YWxTaGFyZUFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRNrU2hhcmVUb2tlbnNWaXJ0dWFsBRR0b3RhbFNoYXJlVmlydHVhbE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUOa0F2YWlsYWJsZVNXT1AFEWF2YWlsYWJsZUZ1bmRzTmV3CQDMCAIJAQdSZWlzc3VlAwUEU1dPUAUKdG9UcmVhc3VyZQYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUTZmFybWluZ1RyZWFzdXJlQWRkcgUKdG9UcmVhc3VyZQUEU1dPUAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ50ZWFtQm94QWRkcmVzcwUKdGVhbVJld2FyZAUEU1dPUAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFGXNoYXJlVG9rZW5zV2l0aGRyYXdBbW91bnQFDXNoYXJlVG9rZW5zSWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEJY2FsY0NsYWltAwFpBHBvb2wGY2FsbGVyBA1zaGFyZVRva2Vuc0lkCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQV2YWx1ZQEJAKYIAQUEcG9vbAIOc2hhcmVfYXNzZXRfaWQEBHVzZXIJAKUIAQUGY2FsbGVyBBBzaGFyZVRva2VuTG9ja2VkCQESZ2V0VG90YWxTaGFyZVRva2VuAQUEcG9vbAQNJHQwMjY0NTkyNjU1MwkBCWNsYWltQ2FsYwIFBHBvb2wFBHVzZXIEDGZhcm1JbnRlcmVzdAgFDSR0MDI2NDU5MjY1NTMCXzEEDWJvb3N0SW50ZXJlc3QIBQ0kdDAyNjQ1OTI2NTUzAl8yBAtjbGFpbUFtb3VudAgFDSR0MDI2NDU5MjY1NTMCXzMECnRvVHJlYXN1cmUIBQ0kdDAyNjQ1OTI2NTUzAl80BAp0ZWFtUmV3YXJkCAUNJHQwMjY0NTkyNjU1MwJfNQQNYXZhaWxhYmxlRnVuZAkAZAIJARF1c2VyQXZhaWxhYmxlU1dPUAIFBHBvb2wFBHVzZXIFC2NsYWltQW1vdW50AwkAZgIJAQ5hY2NvdW50QmFsYW5jZQEFDXNoYXJlVG9rZW5zSWQFEHNoYXJlVG9rZW5Mb2NrZWQJAAIBAjBCYWxhbmNlIG9mIHNoYXJlLXRva2VuIGlzIGxvd2VyIHRoYW4gdG90YWxBbW91bnQEBnVUcmFucwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDWF2YWlsYWJsZUZ1bmQFBFNXT1AFA25pbAUDbmlsCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUVa0Zhcm1Vc2VyTGFzdEludGVyZXN0BQxmYXJtSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtCb29zdFVzZXJMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAURa0Zhcm1MYXN0SW50ZXJlc3QFDGZhcm1JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRJrQm9vc3RMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa0xhc3RJbnRlcmVzdEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBQ5rQXZhaWxhYmxlU1dPUAAACQDMCAIJAQdSZWlzc3VlAwUEU1dPUAkAZAIJAGQCBQp0b1RyZWFzdXJlBQ1hdmFpbGFibGVGdW5kBQp0ZWFtUmV3YXJkBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRNmYXJtaW5nVHJlYXN1cmVBZGRyBQp0b1RyZWFzdXJlBQRTV09QCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDnRlYW1Cb3hBZGRyZXNzBQp0ZWFtUmV3YXJkBQRTV09QBQNuaWwFBnVUcmFucwUNYXZhaWxhYmxlRnVuZAESdW5sb2NrVXNlckxvY2tDYWxjAwFpBHBvb2wEdXNlcgQRdG90YWxTaGFyZVZpcnR1YWwJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUEcG9vbAUTa1NoYXJlVG9rZW5zVmlydHVhbAQQdXNlclN0YWtlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrVXNlclNoYXJlVG9rZW5zU3Rha2VkAAAEEHVzZXJMb2NrZWRBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUWa1VzZXJTaGFyZVRva2Vuc0xvY2tlZAAABBF1c2VyQW1vdW50VmlydHVhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRdrVXNlclNoYXJlVG9rZW5zVmlydHVhbAUQdXNlclN0YWtlZEFtb3VudAQTdXNlclN0YWtlZEFtb3VudE5ldwkAZAIFEHVzZXJTdGFrZWRBbW91bnQFEHVzZXJMb2NrZWRBbW91bnQEDSR0MDI4MDI3MjgxMjEJAQljbGFpbUNhbGMCBQRwb29sBQR1c2VyBAxmYXJtSW50ZXJlc3QIBQ0kdDAyODAyNzI4MTIxAl8xBA1ib29zdEludGVyZXN0CAUNJHQwMjgwMjcyODEyMQJfMgQLY2xhaW1BbW91bnQIBQ0kdDAyODAyNzI4MTIxAl8zBAp0b1RyZWFzdXJlCAUNJHQwMjgwMjcyODEyMQJfNAQKdGVhbVJld2FyZAgFDSR0MDI4MDI3MjgxMjECXzUEEWF2YWlsYWJsZUZ1bmRzTmV3CQBkAgkBEXVzZXJBdmFpbGFibGVTV09QAgUEcG9vbAUEdXNlcgULY2xhaW1BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFWtGYXJtVXNlckxhc3RJbnRlcmVzdAUMZmFybUludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrQm9vc3RVc2VyTGFzdEludGVyZXN0BQ1ib29zdEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFEWtGYXJtTGFzdEludGVyZXN0BQxmYXJtSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUSa0Jvb3N0TGFzdEludGVyZXN0BQ1ib29zdEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFE2tMYXN0SW50ZXJlc3RIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUWa1VzZXJTaGFyZVRva2Vuc1N0YWtlZAUTdXNlclN0YWtlZEFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUXa1VzZXJTaGFyZVRva2Vuc1ZpcnR1YWwFE3VzZXJTdGFrZWRBbW91bnROZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa1NoYXJlVG9rZW5zVmlydHVhbAkAZAIJAGUCBRF0b3RhbFNoYXJlVmlydHVhbAURdXNlckFtb3VudFZpcnR1YWwFE3VzZXJTdGFrZWRBbW91bnROZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFDmtBdmFpbGFibGVTV09QBRFhdmFpbGFibGVGdW5kc05ldwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRZrVXNlclNoYXJlVG9rZW5zTG9ja2VkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFHGtVc2VyU2hhcmVUb2tlbnNMb2NrZWRIZWlnaHQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUaa1VzZXJTaGFyZVRva2Vuc0xvY2tlZFR5cGUJAMwIAgkBB1JlaXNzdWUDBQRTV09QCQBkAgUKdG9UcmVhc3VyZQUKdGVhbVJld2FyZAYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUTZmFybWluZ1RyZWFzdXJlQWRkcgUKdG9UcmVhc3VyZQUEU1dPUAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ50ZWFtQm94QWRkcmVzcwUKdGVhbVJld2FyZAUEU1dPUAUDbmlsEgFpAQRpbml0AQdlYXJseUxQAwkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUHa1NXT1BpZAkAAgECGFNXT1AgYWxyZWFkeSBpbml0aWFsaXplZAQKaW5pdEFtb3VudACAgOmDsd4WBAlTV09QaXNzdWUJAMIIBQIEU1dPUAITU1dPUCBwcm90b2NvbCB0b2tlbgUKaW5pdEFtb3VudAAIBgQGU1dPUGlkCQC4CAEFCVNXT1Bpc3N1ZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUHa0FjdGl2ZQYJAMwIAgkAwggFAgRTV09QAhNTV09QIHByb3RvY29sIHRva2VuBQppbml0QW1vdW50AAgGCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tTV09QaWQJANgEAQUGU1dPUGlkBQNuaWwBaQEUaW5pdFBvb2xTaGFyZUZhcm1pbmcBBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAQtpc0FkbWluQ2FsbAEFAWkDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ1rUG9vbEluT3JhY2xlBQRwb29sCQACAQIVUG9vbCBpcyBub3QgaW4gb3JhY2xlAwkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwkArAICBQRwb29sBRZrU2hhcmVUb3RhbFNoYXJlVG9rZW5zCQACAQITUG9vbCBhbHJlYWR5IGluaXRlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRZrU2hhcmVUb3RhbFNoYXJlVG9rZW5zAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAURa0Zhcm1MYXN0SW50ZXJlc3QAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRJrQm9vc3RMYXN0SW50ZXJlc3QAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRNrTGFzdEludGVyZXN0SGVpZ2h0BQZoZWlnaHQFA25pbAFpARJ1cGRhdGVQb29sSW50ZXJlc3QBBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQECIT0CCAUBaQZjYWxsZXIFCmdvdkFkZHJlc3MJAAIBAiZPbmx5IEdvdmVybmFuY2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgQEdXNlcgkApQgBCQCnCAEFEWFkbWluSW52b2tlUHViS2V5BA0kdDAzMDU3MTMwNjQ1CQEJY2xhaW1DYWxjAgUEcG9vbAUEdXNlcgQMZmFybUludGVyZXN0CAUNJHQwMzA1NzEzMDY0NQJfMQQNYm9vc3RJbnRlcmVzdAgFDSR0MDMwNTcxMzA2NDUCXzIED2Jvb3N0TFBpbnRlcmVzdAgFDSR0MDMwNTcxMzA2NDUCXzMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAURa0Zhcm1MYXN0SW50ZXJlc3QFDGZhcm1JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRJrQm9vc3RMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa0xhc3RJbnRlcmVzdEhlaWdodAUGaGVpZ2h0BQNuaWwBaQEPbG9ja1NoYXJlVG9rZW5zAgRwb29sCGxvY2tUeXBlCQELdmFsdWVPckVsc2UCCQEQaXNEZXByZWNhdGVkUG9vbAEFBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAJARNjYWxjTG9ja1NoYXJlVG9rZW5zBAUBaQgFAWkGY2FsbGVyBQRwb29sBQhsb2NrVHlwZQFpARdsb2NrU2hhcmVUb2tlbnNGcm9tUG9vbAMLY2FsbGVyQnl0ZXMEcG9vbAhsb2NrVHlwZQkBC3ZhbHVlT3JFbHNlAgkBEGlzRGVwcmVjYXRlZFBvb2wBBQRwb29sCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQEKaXNQb29sQ2FsbAIFAWkFBHBvb2wJARNjYWxjTG9ja1NoYXJlVG9rZW5zBAUBaQkBB0FkZHJlc3MBBQtjYWxsZXJCeXRlcwUEcG9vbAUIbG9ja1R5cGUBaQEVbG9ja1N0YWtlZFNoYXJlVG9rZW5zAwRwb29sCGxvY2tUeXBlCmxvY2tBbW91bnQJAQt2YWx1ZU9yRWxzZQIJARBpc0RlcHJlY2F0ZWRQb29sAQUEcG9vbAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQMc2hhcmVBc3NldElkCQEPZ2V0U2hhcmVBc3NldElkAQUEcG9vbAQEdXNlcgkApQgBCAUBaQZjYWxsZXIECnRvdGFsU2hhcmUJARJnZXRUb3RhbFNoYXJlVG9rZW4BBQRwb29sBBF0b3RhbFNoYXJlVmlydHVhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFE2tTaGFyZVRva2Vuc1ZpcnR1YWwFCnRvdGFsU2hhcmUEEHVzZXJTdGFrZWRBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUWa1VzZXJTaGFyZVRva2Vuc1N0YWtlZAAABA91c2VyTG9ja2VkSGVpZ3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUca1VzZXJTaGFyZVRva2Vuc0xvY2tlZEhlaWdodAAABBB1c2VyTG9ja2VkQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNMb2NrZWQAAAQRdXNlckFtb3VudFZpcnR1YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUXa1VzZXJTaGFyZVRva2Vuc1ZpcnR1YWwFEHVzZXJTdGFrZWRBbW91bnQEFHRvdGFsVXNlclNoYXJlVG9rZW5zCQBkAgUQdXNlclN0YWtlZEFtb3VudAUQdXNlckxvY2tlZEFtb3VudAQNJHQwMzIyNzQzMjMyNgkBDWdldExvY2tQYXJhbXMBBQhsb2NrVHlwZQQKbG9ja1BlcmlvZAgFDSR0MDMyMjc0MzIzMjYCXzEECGxvY2tDb2VmCAUNJHQwMzIyNzQzMjMyNgJfMgQMbG9ja1dhdmVzRmVlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ1rTG9ja1dhdmVzRmVlAwkAZgIJARVnZXRIZWlnaHRGaXJzdEhhcnZlc3QBBQRwb29sBQZoZWlnaHQJAAIBAjJZb3UgY2FuJ3QgbG9jayBzaGFyZVRva2VucyB0aWxsIGZpcnN0IGhhcnZlc3QgZW5kLgMJAGcCAAAFCGxvY2tUeXBlCQACAQIUbG9ja1R5cGUgbXVzdCBiZSA+IDADCQBmAgUKbG9ja0Ftb3VudAUQdXNlclN0YWtlZEFtb3VudAkAAgEJAKwCAgIZWW91IGNhbid0IGxvY2sgbW9yZSB0aGFuIAkApAMBBRB1c2VyU3Rha2VkQW1vdW50AwkAZgIJAQ5hY2NvdW50QmFsYW5jZQEFDHNoYXJlQXNzZXRJZAUKdG90YWxTaGFyZQkAAgECMEJhbGFuY2Ugb2Ygc2hhcmUtdG9rZW4gaXMgbG93ZXIgdGhhbiB0b3RhbEFtb3VudAMDCQAAAgUPdXNlckxvY2tlZEhlaWd0AAADAwkAZgIAAQkAkAMBCAUBaQhwYXltZW50cwYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAYJAGYCBQxsb2NrV2F2ZXNGZWUICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BwkAAgEJAKwCAgkArAICAitZb3UgbmVlZCB0byBwYXkgYWRkaXRpb25hbCB3YXZlcyBjb21pc3Npb24gCQCkAwEFDGxvY2tXYXZlc0ZlZQIFV0FWRVMDAwkAAAIFD3VzZXJMb2NrZWRIZWlndAAACQBnAgAABQpsb2NrQW1vdW50BwkAAgECIWxvY2tBbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMAMJAGYCAAAFCmxvY2tBbW91bnQJAAIBAhtsb2NrQW1vdW50IG11c3QgYmUgcG9zaXRpdmUDCQBmAgUPdXNlckxvY2tlZEhlaWd0CQBkAgUGaGVpZ2h0BQpsb2NrUGVyaW9kCQACAQJPWW91IGNhbm5vdCBsb2NrIHNoYXJldG9rZW5zIGZvciBhIHBlcmlvZCBsZXNzIHRoYW4gd2hhdCB5b3UgaGF2ZSBhbHJlYWR5IGxvY2tlZAQTdXNlckxvY2tlZEFtb3VudE5ldwkAZAIFEHVzZXJMb2NrZWRBbW91bnQFCmxvY2tBbW91bnQEE3VzZXJTdGFrZWRBbW91bnROZXcJAGUCBRB1c2VyU3Rha2VkQW1vdW50BQpsb2NrQW1vdW50BBJ1c2VyTG9ja2VkSGVpZ3ROZXcJAGQCBQZoZWlnaHQFCmxvY2tQZXJpb2QEFHVzZXJBbW91bnRWaXJ0dWFsTmV3CQBkAgkAawMFE3VzZXJMb2NrZWRBbW91bnROZXcFCGxvY2tDb2VmBRJsb2NrQm9vc3RDb2VmU2NhbGUFE3VzZXJTdGFrZWRBbW91bnROZXcEDSR0MDMzNjcyMzM3NjYJAQljbGFpbUNhbGMCBQRwb29sBQR1c2VyBAxmYXJtSW50ZXJlc3QIBQ0kdDAzMzY3MjMzNzY2Al8xBA1ib29zdEludGVyZXN0CAUNJHQwMzM2NzIzMzc2NgJfMgQLY2xhaW1BbW91bnQIBQ0kdDAzMzY3MjMzNzY2Al8zBAp0b1RyZWFzdXJlCAUNJHQwMzM2NzIzMzc2NgJfNAQKdGVhbVJld2FyZAgFDSR0MDMzNjcyMzM3NjYCXzUEEWF2YWlsYWJsZUZ1bmRzTmV3CQBkAgkBEXVzZXJBdmFpbGFibGVTV09QAgUEcG9vbAUEdXNlcgULY2xhaW1BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNTdGFrZWQFE3VzZXJTdGFrZWRBbW91bnROZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtVc2VyU2hhcmVUb2tlbnNMb2NrZWQFE3VzZXJMb2NrZWRBbW91bnROZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFHGtVc2VyU2hhcmVUb2tlbnNMb2NrZWRIZWlnaHQFEnVzZXJMb2NrZWRIZWlndE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUaa1VzZXJTaGFyZVRva2Vuc0xvY2tlZFR5cGUFCGxvY2tUeXBlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRdrVXNlclNoYXJlVG9rZW5zVmlydHVhbAUUdXNlckFtb3VudFZpcnR1YWxOZXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa1NoYXJlVG9rZW5zVmlydHVhbAkAZAIJAGUCBRF0b3RhbFNoYXJlVmlydHVhbAURdXNlckFtb3VudFZpcnR1YWwFFHVzZXJBbW91bnRWaXJ0dWFsTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBRVrRmFybVVzZXJMYXN0SW50ZXJlc3QFDGZhcm1JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUWa0Jvb3N0VXNlckxhc3RJbnRlcmVzdAUNYm9vc3RJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRFrRmFybUxhc3RJbnRlcmVzdAUMZmFybUludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFEmtCb29zdExhc3RJbnRlcmVzdAUNYm9vc3RJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRNrTGFzdEludGVyZXN0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFDmtBdmFpbGFibGVTV09QBRFhdmFpbGFibGVGdW5kc05ldwkAzAgCCQEHUmVpc3N1ZQMFBFNXT1AJAGQCBQp0b1RyZWFzdXJlBQp0ZWFtUmV3YXJkBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRNmYXJtaW5nVHJlYXN1cmVBZGRyBQp0b1RyZWFzdXJlBQRTV09QCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDnRlYW1Cb3hBZGRyZXNzBQp0ZWFtUmV3YXJkBQRTV09QBQNuaWwBaQEOdW5sb2NrVXNlckxvY2sCBHBvb2wEdXNlcgkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQPdXNlckxvY2tlZEhlaWd0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUca1VzZXJTaGFyZVRva2Vuc0xvY2tlZEhlaWdodAkArAICCQCsAgIJAKwCAgkArAICAhFUaGVyZSBpcyBubyBwb29sIAUEcG9vbAIJIG9yIHVzZXIgBQR1c2VyAgl3aXRoIGxvY2sDCQBmAgUPdXNlckxvY2tlZEhlaWd0BQZoZWlnaHQJAAIBCQCsAgICIllvdSBjYW4ndCB1bmxvY2sgc2hhcmV0b2tlbnMgdGlsbCAJAKQDAQUPdXNlckxvY2tlZEhlaWd0CQDOCAIJARJ1bmxvY2tVc2VyTG9ja0NhbGMDBQFpBQRwb29sBQR1c2VyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUNa0xvY2tXYXZlc0ZlZQUEdW5pdAUDbmlsAWkBGHVubG9ja1VzZXJMb2NrRGVwcmVjYXRlZAIEcG9vbAR1c2VyCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkDCQEBIQEJARFnZXREZXByZWNhdGVkUG9vbAEFBHBvb2wJAAIBAhdQb29sIG11c3QgYmUgZGVwcmVjYXRlZAMJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFHGtVc2VyU2hhcmVUb2tlbnNMb2NrZWRIZWlnaHQJAM4IAgkBEnVubG9ja1VzZXJMb2NrQ2FsYwMFAWkFBHBvb2wFBHVzZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUPbW9uZXlCb3hBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ1rTG9ja1dhdmVzRmVlBQR1bml0BQNuaWwFA25pbAFpARN3aXRoZHJhd1NoYXJlVG9rZW5zAgRwb29sGXNoYXJlVG9rZW5zV2l0aGRyYXdBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAJARdjYWxjV2l0aGRyYXdTaGFyZVRva2VucwQFAWkIBQFpBmNhbGxlcgUEcG9vbAUZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAFpARt3aXRoZHJhd1NoYXJlVG9rZW5zRnJvbVBvb2wDC2NhbGxlckJ5dGVzBHBvb2wZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAkBC3ZhbHVlT3JFbHNlAgkBCmlzUG9vbENhbGwCBQFpBQRwb29sCQEXY2FsY1dpdGhkcmF3U2hhcmVUb2tlbnMEBQFpCQEHQWRkcmVzcwEFC2NhbGxlckJ5dGVzBQRwb29sBRlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50AWkBBWNsYWltAQRwb29sCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAFyCQEJY2FsY0NsYWltAwUBaQUEcG9vbAgFAWkGY2FsbGVyAwkAAAIIBQFyAl8yAAAJAAIBAhlZb3UgaGF2ZSAwIGF2YWlsYWJsZSBTV09QBQFyAWkBDWNsYWltSW50ZXJuYWwCBHBvb2wGY2FsbGVyCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkJAQljYWxjQ2xhaW0DBQFpBQRwb29sCQEHQWRkcmVzcwEFBmNhbGxlcgFpAQ1jbGFpbUFuZFN0YWtlAQRwb29sCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAtjbGFpbUFtb3VudAoAAUAJAPwHBAUEdGhpcwINY2xhaW1JbnRlcm5hbAkAzAgCBQRwb29sCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAMJAAACBQtjbGFpbUFtb3VudAULY2xhaW1BbW91bnQDCQAAAgULY2xhaW1BbW91bnQAAAkAAgECGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AECnN0YWtlVG9Hb3YJAPwHBAUKZ292QWRkcmVzcwITbG9ja1NXT1BGcm9tRmFybWluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRTV09QBQtjbGFpbUFtb3VudAUDbmlsAwkAAAIFCnN0YWtlVG9Hb3YFCnN0YWtlVG9Hb3YFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhjbGFpbUFsbAEFcG9vbHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAKAQhjbGFpbUludgIKY2xhaW1Ub3RhbARwb29sBAtjbGFpbUFtb3VudAoAAUAJAPwHBAUEdGhpcwINY2xhaW1JbnRlcm5hbAkAzAgCBQRwb29sCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAMJAAACBQtjbGFpbUFtb3VudAULY2xhaW1BbW91bnQJAGQCBQpjbGFpbVRvdGFsBQtjbGFpbUFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQKY2xhaW1Ub3RhbAoAAiRsBQVwb29scwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIY2xhaW1JbnYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDYwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AwkAAAIFCmNsYWltVG90YWwAAAkAAgECGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQpjbGFpbVRvdGFsBQRTV09QBQNuaWwBaQEQY2xhaW1BbGxBbmRTdGFrZQEFcG9vbHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAKAQhjbGFpbUludgIKY2xhaW1Ub3RhbARwb29sBAtjbGFpbUFtb3VudAoAAUAJAPwHBAUEdGhpcwINY2xhaW1JbnRlcm5hbAkAzAgCBQRwb29sCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAMJAAACBQtjbGFpbUFtb3VudAULY2xhaW1BbW91bnQJAGQCBQpjbGFpbVRvdGFsBQtjbGFpbUFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQKY2xhaW1Ub3RhbAoAAiRsBQVwb29scwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIY2xhaW1JbnYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDYwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AwkAAAIFCmNsYWltVG90YWwAAAkAAgECGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AECnN0YWtlVG9Hb3YJAPwHBAUKZ292QWRkcmVzcwITbG9ja1NXT1BGcm9tRmFybWluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRTV09QBQpjbGFpbVRvdGFsBQNuaWwDCQAAAgUKc3Rha2VUb0dvdgUKc3Rha2VUb0dvdgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBF3VwZGF0ZVVzZXJCb29zdEludGVyZXN0AgRwb29sBHVzZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQECIT0CCAUBaQZjYWxsZXIFDXZvdGluZ0FkZHJlc3MJAAIBAiNPbmx5IHZvaXRpbmcgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgQNJHQwMzg1OTAzODY4NAkBCWNsYWltQ2FsYwIFBHBvb2wFBHVzZXIEDGZhcm1JbnRlcmVzdAgFDSR0MDM4NTkwMzg2ODQCXzEEDWJvb3N0SW50ZXJlc3QIBQ0kdDAzODU5MDM4Njg0Al8yBAtjbGFpbUFtb3VudAgFDSR0MDM4NTkwMzg2ODQCXzMECnRvVHJlYXN1cmUIBQ0kdDAzODU5MDM4Njg0Al80BAp0ZWFtUmV3YXJkCAUNJHQwMzg1OTAzODY4NAJfNQQRYXZhaWxhYmxlRnVuZHNOZXcJAGQCCQERdXNlckF2YWlsYWJsZVNXT1ACBQRwb29sBQR1c2VyBQtjbGFpbUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUEdXNlcgUVa0Zhcm1Vc2VyTGFzdEludGVyZXN0BQxmYXJtSW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FBHVzZXIFFmtCb29zdFVzZXJMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAURa0Zhcm1MYXN0SW50ZXJlc3QFDGZhcm1JbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRJrQm9vc3RMYXN0SW50ZXJlc3QFDWJvb3N0SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUTa0xhc3RJbnRlcmVzdEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQR1c2VyBQ5rQXZhaWxhYmxlU1dPUAURYXZhaWxhYmxlRnVuZHNOZXcJAMwIAgkBB1JlaXNzdWUDBQRTV09QCQBkAgUKdG9UcmVhc3VyZQUKdGVhbVJld2FyZAYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUTZmFybWluZ1RyZWFzdXJlQWRkcgUKdG9UcmVhc3VyZQUEU1dPUAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ50ZWFtQm94QWRkcmVzcwUKdGVhbVJld2FyZAUEU1dPUAUDbmlsAWkBCHNodXRkb3duAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAQEhAQUGYWN0aXZlCQACAQkArAICAiJEQXBwIGlzIGFscmVhZHkgc3VzcGVuZGVkLiBDYXVzZTogCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFBmtDYXVzZQIadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQJAQdzdXNwZW5kAQIPUGF1c2VkIGJ5IGFkbWluAWkBCGFjdGl2YXRlAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMFBmFjdGl2ZQkAAgECFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUGCQDMCAIJAQtEZWxldGVFbnRyeQEFBmtDYXVzZQUDbmlsAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAUCdHgEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAh/FEJ0=", "height": 2730174, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7TgYU8Jg9RguUgcgewc7VfZgiZe5CrzVRa6T91XUqr9J Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
66 let b = "active_all_contracts"
77
88 let c = "deprecated_"
99
1010 let d = "shutdown_cause"
1111
1212 let e = "_current_pool_fraction_reward"
1313
1414 let f = "_previous_pool_fraction_reward"
1515
1616 let g = "_pool_reward_update_height"
1717
1818 let h = "reward_update_height"
1919
2020 let i = "_share_tokens_locked"
2121
2222 let j = "_share_tokens_blocked"
2323
2424 let k = "_share_tokens_blocked_type"
2525
2626 let l = "_share_tokens_blocked_height"
2727
2828 let m = "_share_tokens_virtual"
2929
3030 let n = "_total_share_tokens_locked"
3131
3232 let o = "_total_share_tokens_virtual"
3333
3434 let p = "_lock_params"
3535
3636 let q = "lock_waves_fee"
3737
3838 let r = "_boost_coef"
3939
4040 let s = "_last_interest"
4141
4242 let t = "_last_interest"
4343
4444 let u = "_last_interest_b"
4545
4646 let v = "_last_interest_u_b"
4747
4848 let w = "_last_interest_height"
4949
5050 let x = "SWOP_id"
5151
5252 let y = "_available_SWOP"
5353
5454 let z = "_harvest_pool_vote_gSWOP"
5555
5656 let A = "_pool_vote_gSWOP"
5757
5858 let B = "_user_vote_gSWOP"
5959
6060 let C = "_pool_struc"
6161
6262 let D = "_user_pool_struc"
6363
6464 let E = "_harvest_user_pool_vote_gSWOP"
6565
6666 let F = "first_harvest_height"
6767
6868 let G = "share_limit_on_first_harvest"
6969
7070 let H = "_strat_b_farm_interest"
7171
7272 let I = "pool_"
7373
7474 let J = "cpmm_contract"
7575
7676 let K = "admin_pub_1"
7777
7878 let L = "admin_pub_2"
7979
8080 let M = "admin_pub_3"
8181
8282 let N = "admin_invoke_pub"
8383
8484 let O = "money_box_address"
8585
8686 let P = "team_box_address"
8787
8888 let Q = "voting_address"
8989
9090 let R = "governance_address"
9191
9292 let S = "lp_farming"
9393
9494 let T = "farming_treasure"
9595
9696 let U = "axly_farming"
9797
9898 let V = "axly_lp_id"
9999
100100 let W = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
101101
102102 let X = 10000000000
103103
104104 let Y = 100000000
105105
106106 let Z = 1000000
107107
108108 let aa = 1000
109109
110110 let ab = 500
111111
112112 let ac = 2976848
113113
114114 let ad = 100000000000000
115115
116116 let ae = 526330
117117
118118 let af = 25
119119
120120 func ag (ah) = {
121121 let ai = getString(W, ah)
122122 if ($isInstanceOf(ai, "String"))
123123 then {
124124 let aj = ai
125125 fromBase58String(aj)
126126 }
127127 else {
128128 let ak = ai
129129 throw((ah + "is empty"))
130130 }
131131 }
132132
133133
134134 let al = ag(K)
135135
136136 let am = ag(L)
137137
138138 let an = ag(M)
139139
140140 let ao = Address(ag(O))
141141
142142 let ap = Address(ag(P))
143143
144144 let aq = Address(ag(Q))
145145
146146 let ar = Address(ag(R))
147147
148148 let as = ag(N)
149149
150150 let at = Address(ag(S))
151151
152152 let au = Address(ag(T))
153153
154154 let av = Address(ag(J))
155155
156156 let aw = Address(ag(U))
157157
158158 let ax = ag(V)
159159
160160 let ay = getBooleanValue(this, a)
161161
162162 let az = valueOrElse(getBoolean(W, b), true)
163163
164164 let aA = fromBase58String(getStringValue(this, x))
165165
166166 func aB () = {
167167 let aC = ((height - ac) / ae)
168168 func aD (aE,aF) = {
169169 let aG = aE
170170 let aH = aG._1
171171 let aI = aG._2
172172 if ((aC > aF))
173173 then $Tuple2(fraction(aH, 75, 100), aH)
174174 else $Tuple2(aH, aI)
175175 }
176176
177177 let aJ = {
178178 let aK = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
179179 let aL = size(aK)
180180 let aM = $Tuple2(ad, ad)
181181 func aN (aO,aP) = if ((aP >= aL))
182182 then aO
183183 else aD(aO, aK[aP])
184184
185185 func aQ (aO,aP) = if ((aP >= aL))
186186 then aO
187187 else throw("List size exceeds 20")
188188
189189 aQ(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aM, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
190190 }
191191 let aH = aJ._1
192192 let aI = aJ._2
193193 $Tuple3((aH / ae), (aI / ae), (ac + (ae * aC)))
194194 }
195195
196196
197197 func aR (aS) = valueOrElse(getInteger(Address(fromBase58String(aS)), F), 0)
198198
199199
200200 func aT (aS) = valueOrErrorMessage(getInteger(aS, G), ("No data on the key: " + G))
201201
202202
203203 func aU (aS) = valueOrErrorMessage(getInteger(this, (aS + n)), (("No data on the key: " + aS) + n))
204204
205205
206206 func aV (aS) = valueOrElse(getInteger(aq, (aS + A)), valueOrElse(parseInt(split(valueOrElse(getString(aq, (aS + C)), ""), "_")[0]), 0))
207207
208208
209209 func aW (aS,aX) = valueOrElse(getInteger(aq, (((aX + "_") + aS) + B)), valueOrElse(parseInt(split(valueOrElse(getString(aq, (((aX + "_") + aS) + D)), ""), "_")[0]), 0))
210210
211211
212212 func aY (aS) = fromBase58String(getStringValue(value(addressFromString(aS)), "share_asset_id"))
213213
214214
215215 func aZ (ba) = {
216216 let ai = ba
217217 if ($isInstanceOf(ai, "ByteVector"))
218218 then {
219219 let bb = ai
220220 assetBalance(this, bb)
221221 }
222222 else if ($isInstanceOf(ai, "Unit"))
223223 then {
224224 let bc = ai
225225 wavesBalance(this).available
226226 }
227227 else throw("Match error")
228228 }
229229
230230
231231 func bd (be,bf) = {
232232 let bg = value(assetInfo(be)).decimals
233233 let bh = value(assetInfo(bf)).decimals
234234 let bi = ((bh - bg) + 8)
235235 pow(10, 0, bi, 0, 0, DOWN)
236236 }
237237
238238
239239 func bj (aS,aX) = valueOrElse(getInteger(this, (((aS + "_") + aX) + y)), 0)
240240
241241
242242 func bk (aS) = {
243243 let bl = aB()
244244 let bm = bl._1
245245 let bn = bl._2
246246 let bo = bl._3
247247 let bp = valueOrErrorMessage(getInteger(ar, (aS + e)), (((("No data on the key: " + aS) + e) + " at address ") + toString(ar)))
248248 let bq = valueOrErrorMessage(getInteger(ar, h), ((("No data on the key: " + h) + " at address ") + toString(ar)))
249249 let br = valueOrElse(getInteger(ar, (aS + g)), bq)
250250 let bs = valueOrErrorMessage(getInteger(ar, (aS + f)), (((("No data on the key: " + aS) + f) + " at address ") + toString(ar)))
251251 let bt = fraction(bm, bp, X)
252252 let bu = fraction(bm, bs, X)
253253 let bv = fraction(bn, bp, X)
254254 let bw = fraction(bn, bs, X)
255255 if (if ((bt > bm))
256256 then true
257257 else (bu > bn))
258258 then throw("rewardPoolCurrent > totalRewardPerBlockCurrent or rewardPoolPrevious > totalRewardPerBlockPrevious")
259259 else $Tuple7(bt, bq, bu, br, bo, bv, bw)
260260 }
261261
262262
263263 func bx (aS) = {
264264 let by = valueOrErrorMessage(getInteger(this, (aS + s)), (("No data on the key: " + aS) + s))
265265 let bz = valueOrElse(getInteger(this, (aS + u)), 0)
266266 let bA = valueOrElse(getInteger(this, (aS + w)), height)
267267 $Tuple3(bA, by, bz)
268268 }
269269
270270
271271 func bB (aS,bC) = {
272272 let bD = valueOrElse(getInteger(this, (aS + r)), ab)
273273 fraction(bC, aa, (bD + aa))
274274 }
275275
276276
277277 func bE (aS,bC) = {
278278 let bD = valueOrElse(getInteger(this, (aS + r)), ab)
279279 fraction(bC, bD, (bD + aa))
280280 }
281281
282282
283283 func bF (aS,bA,bq,br,by,bz,bG,bH,bI,bJ,bK,bL) = {
284284 let bM = if (if (if ((bq > bL))
285285 then (bq == br)
286286 else false)
287287 then true
288288 else if ((bL > bq))
289289 then (bq != br)
290290 else false)
291291 then {
292292 let bN = (bJ * (bL - bA))
293293 $Tuple3(bN, by, bz)
294294 }
295295 else if (if (if ((bL > bq))
296296 then (bq == br)
297297 else false)
298298 then (bA > bq)
299299 else false)
300300 then {
301301 let bN = (bH * (bL - bA))
302302 $Tuple3(bN, by, bz)
303303 }
304304 else {
305305 let bO = (bJ * (bq - bA))
306306 let bP = (by + fraction(bB(aS, bO), bK, bI))
307307 let bQ = (bz + (if ((bG > 0))
308308 then fraction(bE(aS, bO), Y, bG)
309309 else 0))
310310 let bR = (bH * (bL - bq))
311311 $Tuple3(bR, bP, bQ)
312312 }
313313 let bS = bM._1
314314 let bT = bM._2
315315 let bU = bM._3
316316 let bV = (bT + fraction(bB(aS, bS), bK, bI))
317317 let bW = (bU + (if ((bG > 0))
318318 then fraction(bE(aS, bS), Y, bG)
319319 else 0))
320320 $Tuple2(bV, bW)
321321 }
322322
323323
324324 func bX (aS,aX) = {
325325 let bK = bd(aA, aY(aS))
326326 let bG = aV(aS)
327327 let bY = aW(aS, aX)
328328 let bZ = aU(aS)
329329 let ca = valueOrElse(getInteger(this, (aS + o)), bZ)
330330 let cb = valueOrElse(getInteger(this, (aS + H)), 0)
331331 let cc = bx(aS)
332332 let bA = cc._1
333333 let by = cc._2
334334 let bz = cc._3
335335 let cd = bk(aS)
336336 let bH = cd._1
337337 let bq = cd._2
338338 let bJ = cd._3
339339 let br = cd._4
340340 let ce = cd._5
341341 let cf = cd._6
342342 let cg = cd._7
343343 let ch = valueOrElse(getInteger(this, (((aS + "_") + aX) + t)), by)
344344 let ci = valueOrElse(getInteger(this, (((aS + "_") + aX) + v)), if (if ((cb > ch))
345345 then (bY > 0)
346346 else false)
347347 then 0
348348 else bz)
349349 let cj = valueOrElse(getInteger(this, (((aS + "_") + aX) + i)), 0)
350350 let ck = valueOrElse(getInteger(this, (((aS + "_") + aX) + m)), cj)
351351 if ((ca == 0))
352352 then {
353353 let cl = if ((ce > bA))
354354 then ((cf * (ce - bA)) + (bH * (height - ce)))
355355 else (bH * (height - bA))
356356 let cm = fraction(cl, af, 100)
357357 $Tuple5(by, bz, 0, (cl - cm), cm)
358358 }
359359 else {
360360 let cn = if ((ce > bA))
361361 then {
362362 let co = bF(aS, bA, bq, br, by, bz, bG, cf, ca, cg, bK, ce)
363363 let cp = co._1
364364 let cq = co._2
365365 $Tuple3(cp, cq, ce)
366366 }
367367 else $Tuple3(by, bz, bA)
368368 let cr = cn._1
369369 let cs = cn._2
370370 let ct = cn._3
371371 let cu = bF(aS, ct, bq, br, cr, cs, bG, bH, ca, bJ, bK, height)
372372 let bV = cu._1
373373 let bW = cu._2
374374 let cv = fraction(ck, (bV - ch), bK)
375375 let bD = valueOrElse(getInteger(this, (aS + r)), ab)
376376 let cw = fraction(fraction(ck, (bV - max([ch, cb])), bK), bD, aa)
377377 let cx = fraction((bW - ci), bY, Y)
378378 let cy = min([cw, cx])
379379 let cl = (cw - cy)
380380 let cm = fraction(cl, af, 100)
381381 if ((0 > cl))
382382 then throw("toTreasury < 0")
383383 else $Tuple5(bV, bW, (cv + cy), (cl - cm), cm)
384384 }
385385 }
386386
387387
388388 func cz (cA,aX) = {
389389 func cB (aE,aS) = {
390390 let cC = aE
391391 let cD = cC._1
392392 let cE = cC._2
393393 let cF = bX(aS, aX)
394394 let cG = cF._1
395395 let cH = cF._2
396396 let cI = cF._3
397397 let cJ = cF._4
398398 let cK = (bj(aS, aX) + cI)
399399 $Tuple2((cD :+ aS), (cE :+ cK))
400400 }
401401
402402 let aK = cA
403403 let aL = size(aK)
404404 let aM = $Tuple2(nil, nil)
405405 func aN (aO,aP) = if ((aP >= aL))
406406 then aO
407407 else cB(aO, aK[aP])
408408
409409 func aQ (aO,aP) = if ((aP >= aL))
410410 then aO
411411 else throw("List size exceeds 60")
412412
413413 aQ(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aM, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
414414 }
415415
416416
417417 func cL (aS,aX,cM,cN,cO) = if ((aR(aS) > height))
418418 then {
419419 let cP = valueOrElse(getInteger(aq, (aS + z)), 0)
420420 let cQ = valueOrElse(getInteger(aq, (((aX + "_") + aS) + E)), 0)
421421 let cR = aT(addressFromStringValue(aS))
422422 let cS = (fraction(cR, cQ, cP) - cM)
423423 if ((cO > 0))
424424 then throw("You can't lock shareTokens till first harvest end.")
425425 else if ((cQ == 0))
426426 then throw("You can't lock shareTokens. You didn't vote for pool in first week.")
427427 else if ((cN >= cS))
428428 then (cN - cS)
429429 else 0
430430 }
431431 else 0
432432
433433
434434 func cT (cU) = {
435435 let cV = split(valueOrErrorMessage(getString(this, (toString(cU) + p)), ("There are no key for lock type" + toString(cU))), "_")
436436 $Tuple2(parseIntValue(cV[0]), parseIntValue(cV[1]))
437437 }
438438
439439
440440 func cW (cX) = [BooleanEntry(a, false), StringEntry(d, cX)]
441441
442442
443443 func cY () = if (if (ay)
444444 then az
445445 else false)
446446 then unit
447447 else throw("DApp is inactive at this moment")
448448
449449
450450 func cZ (aF) = if (containsElement([al, am, an], aF.callerPublicKey))
451451 then unit
452452 else throw("Only admin can call this function")
453453
454454
455455 func da (aF,aS) = if (if ((toString(aF.caller) == aS))
456456 then true
457457 else (aF.caller == av))
458458 then unit
459459 else throw("Only pool can call this function")
460460
461461
462462 func db (aS) = valueOrElse(getBoolean(W, (c + aS)), false)
463463
464464
465465 func dc (aS) = if (!(db(aS)))
466466 then unit
467467 else throw("Pool is deprecated. Only unlock action allowed.")
468468
469469
470470 func dd (aF) = if ((aF.caller == this))
471471 then unit
472472 else throw("Only contract itself can call this function")
473473
474474
475475 func de (aF,df,aS,cO) = {
476476 let aX = toString(df)
477477 let dg = if ((aF.payments[0].assetId == ax))
478478 then invoke(aw, "lpAction", [aX], nil)
479479 else nil
480480 if ((dg == dg))
481481 then {
482482 let dh = aY(aS)
483483 let di = aU(aS)
484484 let ca = valueOrElse(getInteger(this, (aS + o)), di)
485485 let dj = valueOrElse(getInteger(this, (((aS + "_") + aX) + i)), 0)
486486 let dk = valueOrElse(getInteger(this, (((aS + "_") + aX) + l)), 0)
487487 let dl = valueOrElse(getInteger(this, (((aS + "_") + aX) + j)), 0)
488488 let dm = valueOrElse(getInteger(this, (((aS + "_") + aX) + m)), dj)
489489 let dn = ((dj + dl) + aF.payments[0].amount)
490490 let do = cT(cO)
491491 let dp = do._1
492492 let dq = do._2
493493 let dr = getIntegerValue(this, q)
494494 if ((aF.payments[0].assetId != dh))
495495 then throw("Wrong sharetoken in payment")
496496 else if ((0 >= aF.payments[0].amount))
497497 then throw("Payment amount must be greater than 0")
498498 else if ((0 > cO))
499499 then throw("lockType must be >= 0")
500500 else {
501501 let ds = cL(aS, aX, dj, aF.payments[0].amount, cO)
502502 if ((ds == ds))
503503 then {
504504 let dt = if ((cO == 0))
505505 then {
506506 let du = ((dm + aF.payments[0].amount) - ds)
507507 $Tuple2([IntegerEntry((((aS + "_") + aX) + i), ((dj + aF.payments[0].amount) - ds)), IntegerEntry((((aS + "_") + aX) + m), du), IntegerEntry((aS + o), ((ca + aF.payments[0].amount) - ds)), ScriptTransfer(df, ds, aF.payments[0].assetId)], ((di + aF.payments[0].amount) - ds))
508508 }
509509 else if (if ((dk == 0))
510510 then if (if ((2 > size(aF.payments)))
511511 then true
512512 else (aF.payments[1].assetId != unit))
513513 then true
514514 else (dr > aF.payments[1].amount)
515515 else false)
516516 then throw((("You need to pay additional waves comission " + toString(dr)) + "WAVES"))
517517 else if ((dk > (height + dp)))
518518 then throw("You cannot lock sharetokens for a period less than what you have already locked")
519519 else {
520520 let dv = (dl + aF.payments[0].amount)
521521 let dw = (height + dp)
522522 let du = (fraction(dv, dq, aa) + dj)
523523 $Tuple2([IntegerEntry((((aS + "_") + aX) + j), dv), IntegerEntry((((aS + "_") + aX) + l), dw), IntegerEntry((((aS + "_") + aX) + k), cO), IntegerEntry((((aS + "_") + aX) + m), du), IntegerEntry((aS + o), ((ca - dm) + du))], (di + aF.payments[0].amount))
524524 }
525525 let dx = dt._1
526526 let dy = dt._2
527527 if ((dy > aZ(dh)))
528528 then throw("Balance of share-token is lower than totalAmount")
529529 else {
530530 let dz = bX(aS, aX)
531531 let by = dz._1
532532 let bz = dz._2
533533 let cI = dz._3
534534 let dA = dz._4
535535 let cm = dz._5
536536 let dB = (bj(aS, aX) + cI)
537537 let dC = if ((getString(Address(fromBase58String(aS)), "version") == "3.0.0"))
538538 then invoke(at, "updateUserInterest", [aX, aS, dn], nil)
539539 else 0
540540 if ((dC == dC))
541541 then ([IntegerEntry((((aS + "_") + aX) + t), by), IntegerEntry((((aS + "_") + aX) + v), bz), IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height), IntegerEntry((aS + n), dy), IntegerEntry((((aS + "_") + aX) + y), dB), Reissue(aA, (dA + cm), true), ScriptTransfer(au, dA, aA), ScriptTransfer(ap, cm, aA)] ++ dx)
542542 else throw("Strict value is not equal to itself.")
543543 }
544544 }
545545 else throw("Strict value is not equal to itself.")
546546 }
547547 }
548548 else throw("Strict value is not equal to itself.")
549549 }
550550
551551
552552 func dD (aF,df,aS,dE) = {
553553 let dg = if (db(aS))
554554 then invoke(this, "unlockUserLockDeprecated", [aS, toString(df)], nil)
555555 else 0
556556 if ((dg == dg))
557557 then {
558558 let dF = fromBase58String(getStringValue(value(addressFromString(aS)), "share_asset_id"))
559559 let aX = toString(df)
560560 let dG = if ((dF == ax))
561561 then invoke(aw, "lpAction", [aX], nil)
562562 else nil
563563 if ((dG == dG))
564564 then {
565565 let dH = bX(aS, aX)
566566 let by = dH._1
567567 let bz = dH._2
568568 let cI = dH._3
569569 let dA = dH._4
570570 let cm = dH._5
571571 let dj = valueOrElse(getInteger(this, (((aS + "_") + aX) + i)), 0)
572572 let dl = valueOrElse(getInteger(this, (((aS + "_") + aX) + j)), 0)
573573 let dm = valueOrElse(getInteger(this, (((aS + "_") + aX) + m)), dj)
574574 let dI = (dj - dE)
575575 let dB = (bj(aS, aX) + cI)
576576 let dJ = aU(aS)
577577 let ca = valueOrElse(getInteger(this, (aS + o)), dJ)
578578 let dK = (dJ - dE)
579579 let dL = (ca - dE)
580580 let du = (dm - dE)
581581 if ((dE > dj))
582582 then throw("Withdraw amount more then user locked amount")
583583 else if ((aZ(dF) > dJ))
584584 then throw("Balance of share-token is lower than totalAmount")
585585 else {
586586 let dC = if ((getString(Address(fromBase58String(aS)), "version") == "3.0.0"))
587587 then invoke(at, "updateUserInterest", [aX, aS, (dj + dl)], nil)
588588 else 0
589589 if ((dC == dC))
590590 then [IntegerEntry((((aS + "_") + aX) + t), by), IntegerEntry((((aS + "_") + aX) + v), bz), IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height), IntegerEntry((((aS + "_") + aX) + i), dI), IntegerEntry((((aS + "_") + aX) + m), du), IntegerEntry((aS + n), dK), IntegerEntry((aS + o), dL), IntegerEntry((((aS + "_") + aX) + y), dB), Reissue(aA, dA, true), ScriptTransfer(au, dA, aA), ScriptTransfer(ap, cm, aA), ScriptTransfer(aF.caller, dE, dF)]
591591 else throw("Strict value is not equal to itself.")
592592 }
593593 }
594594 else throw("Strict value is not equal to itself.")
595595 }
596596 else throw("Strict value is not equal to itself.")
597597 }
598598
599599
600600 func dM (aF,aS,df) = {
601601 let dF = fromBase58String(getStringValue(value(addressFromString(aS)), "share_asset_id"))
602602 let aX = toString(df)
603603 let bI = aU(aS)
604604 let dN = bX(aS, aX)
605605 let by = dN._1
606606 let bz = dN._2
607607 let cI = dN._3
608608 let dA = dN._4
609609 let cm = dN._5
610610 let cK = (bj(aS, aX) + cI)
611611 if ((aZ(dF) > bI))
612612 then throw("Balance of share-token is lower than totalAmount")
613613 else {
614614 let dO = if ((aF.caller != this))
615615 then [ScriptTransfer(aF.caller, cK, aA)]
616616 else nil
617617 $Tuple2(([IntegerEntry((((aS + "_") + aX) + t), by), IntegerEntry((((aS + "_") + aX) + v), bz), IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height), IntegerEntry((((aS + "_") + aX) + y), 0), Reissue(aA, ((dA + cK) + cm), true), ScriptTransfer(au, dA, aA), ScriptTransfer(ap, cm, aA)] ++ dO), cK)
618618 }
619619 }
620620
621621
622622 func dP (aF,aS,aX) = {
623623 let ca = getIntegerValue(this, (aS + o))
624624 let dj = valueOrElse(getInteger(this, (((aS + "_") + aX) + i)), 0)
625625 let dl = valueOrElse(getInteger(this, (((aS + "_") + aX) + j)), 0)
626626 let dm = valueOrElse(getInteger(this, (((aS + "_") + aX) + m)), dj)
627627 let dI = (dj + dl)
628628 let dQ = bX(aS, aX)
629629 let by = dQ._1
630630 let bz = dQ._2
631631 let cI = dQ._3
632632 let dA = dQ._4
633633 let cm = dQ._5
634634 let dB = (bj(aS, aX) + cI)
635635 [IntegerEntry((((aS + "_") + aX) + t), by), IntegerEntry((((aS + "_") + aX) + v), bz), IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height), IntegerEntry((((aS + "_") + aX) + i), dI), IntegerEntry((((aS + "_") + aX) + m), dI), IntegerEntry((aS + o), ((ca - dm) + dI)), IntegerEntry((((aS + "_") + aX) + y), dB), DeleteEntry((((aS + "_") + aX) + j)), DeleteEntry((((aS + "_") + aX) + l)), DeleteEntry((((aS + "_") + aX) + k)), Reissue(aA, (dA + cm), true), ScriptTransfer(au, dA, aA), ScriptTransfer(ap, cm, aA)]
636636 }
637637
638638
639639 @Callable(aF)
640640 func init (dR) = if (isDefined(getString(this, x)))
641641 then throw("SWOP already initialized")
642642 else {
643643 let dS = 100000000000000
644644 let dT = Issue("SWOP", "SWOP protocol token", dS, 8, true)
645645 let dU = calculateAssetId(dT)
646646 [BooleanEntry(a, true), Issue("SWOP", "SWOP protocol token", dS, 8, true), StringEntry(x, toBase58String(dU))]
647647 }
648648
649649
650650
651651 @Callable(aF)
652652 func initPoolShareFarming (aS) = valueOrElse(cZ(aF), if (!(isDefined(getString(W, (I + aS)))))
653653 then throw("Pool is not in oracle")
654654 else if (isDefined(getInteger(this, (aS + n))))
655655 then throw("Pool already inited")
656656 else [IntegerEntry((aS + n), 0), IntegerEntry((aS + s), 0), IntegerEntry((aS + u), 0), IntegerEntry((aS + w), height)])
657657
658658
659659
660660 @Callable(aF)
661661 func updatePoolInterest (aS) = valueOrElse(cY(), if ((aF.caller != ar))
662662 then throw("Only Governance can call this function")
663663 else {
664664 let aX = toString(addressFromPublicKey(as))
665665 let dV = bX(aS, aX)
666666 let by = dV._1
667667 let bz = dV._2
668668 let dW = dV._3
669669 [IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height)]
670670 })
671671
672672
673673
674674 @Callable(aF)
675675 func lockShareTokens (aS,cO) = valueOrElse(dc(aS), valueOrElse(cY(), de(aF, aF.caller, aS, cO)))
676676
677677
678678
679679 @Callable(aF)
680680 func lockShareTokensFromPool (dX,aS,cO) = valueOrElse(dc(aS), valueOrElse(cY(), valueOrElse(da(aF, aS), de(aF, Address(dX), aS, cO))))
681681
682682
683683
684684 @Callable(aF)
685685 func lockStakedShareTokens (aS,cO,dY) = valueOrElse(dc(aS), valueOrElse(cY(), {
686686 let dh = aY(aS)
687687 let aX = toString(aF.caller)
688688 let di = aU(aS)
689689 let ca = valueOrElse(getInteger(this, (aS + o)), di)
690690 let dj = valueOrElse(getInteger(this, (((aS + "_") + aX) + i)), 0)
691691 let dk = valueOrElse(getInteger(this, (((aS + "_") + aX) + l)), 0)
692692 let dl = valueOrElse(getInteger(this, (((aS + "_") + aX) + j)), 0)
693693 let dm = valueOrElse(getInteger(this, (((aS + "_") + aX) + m)), dj)
694694 let dn = (dj + dl)
695695 let dZ = cT(cO)
696696 let dp = dZ._1
697697 let dq = dZ._2
698698 let dr = getIntegerValue(this, q)
699699 if ((aR(aS) > height))
700700 then throw("You can't lock shareTokens till first harvest end.")
701701 else if ((0 >= cO))
702702 then throw("lockType must be > 0")
703703 else if ((dY > dj))
704704 then throw(("You can't lock more than " + toString(dj)))
705705 else if ((aZ(dh) > di))
706706 then throw("Balance of share-token is lower than totalAmount")
707707 else if (if ((dk == 0))
708708 then if (if ((1 > size(aF.payments)))
709709 then true
710710 else (aF.payments[0].assetId != unit))
711711 then true
712712 else (dr > aF.payments[0].amount)
713713 else false)
714714 then throw((("You need to pay additional waves comission " + toString(dr)) + "WAVES"))
715715 else if (if ((dk == 0))
716716 then (0 >= dY)
717717 else false)
718718 then throw("lockAmount must be greater than 0")
719719 else if ((0 > dY))
720720 then throw("lockAmount must be positive")
721721 else if ((dk > (height + dp)))
722722 then throw("You cannot lock sharetokens for a period less than what you have already locked")
723723 else {
724724 let dv = (dl + dY)
725725 let dI = (dj - dY)
726726 let dw = (height + dp)
727727 let du = (fraction(dv, dq, aa) + dI)
728728 let ea = bX(aS, aX)
729729 let by = ea._1
730730 let bz = ea._2
731731 let cI = ea._3
732732 let dA = ea._4
733733 let cm = ea._5
734734 let dB = (bj(aS, aX) + cI)
735735 [IntegerEntry((((aS + "_") + aX) + i), dI), IntegerEntry((((aS + "_") + aX) + j), dv), IntegerEntry((((aS + "_") + aX) + l), dw), IntegerEntry((((aS + "_") + aX) + k), cO), IntegerEntry((((aS + "_") + aX) + m), du), IntegerEntry((aS + o), ((ca - dm) + du)), IntegerEntry((((aS + "_") + aX) + t), by), IntegerEntry((((aS + "_") + aX) + v), bz), IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height), IntegerEntry((((aS + "_") + aX) + y), dB), Reissue(aA, (dA + cm), true), ScriptTransfer(au, dA, aA), ScriptTransfer(ap, cm, aA)]
736736 }
737737 }))
738738
739739
740740
741741 @Callable(aF)
742742 func unlockUserLock (aS,aX) = valueOrElse(cY(), {
743743 let dk = valueOrErrorMessage(getInteger(this, (((aS + "_") + aX) + l)), (((("There is no pool " + aS) + " or user ") + aX) + "with lock"))
744744 if ((dk > height))
745745 then throw(("You can't unlock sharetokens till " + toString(dk)))
746746 else (dP(aF, aS, aX) ++ [ScriptTransfer(aF.caller, getIntegerValue(this, q), unit)])
747747 })
748748
749749
750750
751751 @Callable(aF)
752752 func unlockUserLockDeprecated (aS,aX) = valueOrElse(cY(), valueOrElse(dd(aF), if (!(db(aS)))
753753 then throw("Pool must be deprecated")
754754 else if (isDefined(getInteger(this, (((aS + "_") + aX) + l))))
755755 then (dP(aF, aS, aX) ++ [ScriptTransfer(ao, getIntegerValue(this, q), unit)])
756756 else nil))
757757
758758
759759
760760 @Callable(aF)
761761 func withdrawShareTokens (aS,dE) = valueOrElse(cY(), dD(aF, aF.caller, aS, dE))
762762
763763
764764
765765 @Callable(aF)
766766 func withdrawShareTokensFromPool (dX,aS,dE) = valueOrElse(cY(), valueOrElse(da(aF, aS), dD(aF, Address(dX), aS, dE)))
767767
768768
769769
770770 @Callable(aF)
771771 func claim (aS) = valueOrElse(cY(), {
772772 let bN = dM(aF, aS, aF.caller)
773773 if ((bN._2 == 0))
774774 then throw("You have 0 available SWOP")
775775 else bN
776776 })
777777
778778
779779
780780 @Callable(aF)
781781 func claimInternal (aS,df) = valueOrElse(cY(), valueOrElse(dd(aF), dM(aF, aS, Address(df))))
782782
783783
784784
785785 @Callable(aF)
786786 func claimAndStake (aS) = valueOrElse(cY(), {
787787 let cI = {
788788 let eb = invoke(this, "claimInternal", [aS, aF.caller.bytes], nil)
789789 if ($isInstanceOf(eb, "Int"))
790790 then eb
791791 else throw(($getType(eb) + " couldn't be cast to Int"))
792792 }
793793 if ((cI == cI))
794794 then if ((cI == 0))
795795 then throw("You have 0 available SWOP")
796796 else {
797797 let ec = invoke(ar, "lockSWOPFromFarming", nil, [AttachedPayment(aA, cI)])
798798 if ((ec == ec))
799799 then nil
800800 else throw("Strict value is not equal to itself.")
801801 }
802802 else throw("Strict value is not equal to itself.")
803803 })
804804
805805
806806
807807 @Callable(aF)
808808 func claimAll (cA) = valueOrElse(cY(), {
809809 func ed (ee,aS) = {
810810 let cI = {
811811 let eb = invoke(this, "claimInternal", [aS, aF.caller.bytes], nil)
812812 if ($isInstanceOf(eb, "Int"))
813813 then eb
814814 else throw(($getType(eb) + " couldn't be cast to Int"))
815815 }
816816 if ((cI == cI))
817817 then (ee + cI)
818818 else throw("Strict value is not equal to itself.")
819819 }
820820
821821 let ee = {
822822 let aK = cA
823823 let aL = size(aK)
824824 let aM = 0
825825 func aN (aO,aP) = if ((aP >= aL))
826826 then aO
827827 else ed(aO, aK[aP])
828828
829829 func aQ (aO,aP) = if ((aP >= aL))
830830 then aO
831831 else throw("List size exceeds 60")
832832
833833 aQ(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aM, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
834834 }
835835 if ((ee == 0))
836836 then throw("You have 0 available SWOP")
837837 else [ScriptTransfer(aF.caller, ee, aA)]
838838 })
839839
840840
841841
842842 @Callable(aF)
843843 func claimAllAndStake (cA) = valueOrElse(cY(), {
844844 func ed (ee,aS) = {
845845 let cI = {
846846 let eb = invoke(this, "claimInternal", [aS, aF.caller.bytes], nil)
847847 if ($isInstanceOf(eb, "Int"))
848848 then eb
849849 else throw(($getType(eb) + " couldn't be cast to Int"))
850850 }
851851 if ((cI == cI))
852852 then (ee + cI)
853853 else throw("Strict value is not equal to itself.")
854854 }
855855
856856 let ee = {
857857 let aK = cA
858858 let aL = size(aK)
859859 let aM = 0
860860 func aN (aO,aP) = if ((aP >= aL))
861861 then aO
862862 else ed(aO, aK[aP])
863863
864864 func aQ (aO,aP) = if ((aP >= aL))
865865 then aO
866866 else throw("List size exceeds 60")
867867
868868 aQ(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aN(aM, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
869869 }
870870 if ((ee == 0))
871871 then throw("You have 0 available SWOP")
872872 else {
873873 let ec = invoke(ar, "lockSWOPFromFarming", nil, [AttachedPayment(aA, ee)])
874874 if ((ec == ec))
875875 then nil
876876 else throw("Strict value is not equal to itself.")
877877 }
878878 })
879879
880880
881881
882882 @Callable(aF)
883883 func updateUserBoostInterest (aS,aX) = valueOrElse(cY(), if ((aF.caller != aq))
884884 then throw("Only voiting can call this function")
885885 else {
886886 let ef = bX(aS, aX)
887887 let by = ef._1
888888 let bz = ef._2
889889 let cI = ef._3
890890 let dA = ef._4
891891 let cm = ef._5
892892 let dB = (bj(aS, aX) + cI)
893893 [IntegerEntry((((aS + "_") + aX) + t), by), IntegerEntry((((aS + "_") + aX) + v), bz), IntegerEntry((aS + s), by), IntegerEntry((aS + u), bz), IntegerEntry((aS + w), height), IntegerEntry((((aS + "_") + aX) + y), dB), Reissue(aA, (dA + cm), true), ScriptTransfer(au, dA, aA), ScriptTransfer(ap, cm, aA)]
894894 })
895895
896896
897897
898898 @Callable(aF)
899899 func shutdown () = valueOrElse(cZ(aF), if (!(ay))
900900 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, d), "the cause wasn't specified")))
901901 else cW("Paused by admin"))
902902
903903
904904
905905 @Callable(aF)
906906 func activate () = valueOrElse(cZ(aF), if (ay)
907907 then throw("DApp is already active")
908908 else [BooleanEntry(a, true), DeleteEntry(d)])
909909
910910
911911 @Verifier(eg)
912912 func eh () = {
913913 let ai = eg
914914 let ei = if (sigVerify(eg.bodyBytes, eg.proofs[0], al))
915915 then 1
916916 else 0
917917 let ej = if (sigVerify(eg.bodyBytes, eg.proofs[1], am))
918918 then 1
919919 else 0
920920 let ek = if (sigVerify(eg.bodyBytes, eg.proofs[2], an))
921921 then 1
922922 else 0
923923 (((ei + ej) + ek) >= 2)
924924 }
925925

github/deemru/w8io/873ac7e 
117.16 ms