tx · 5eTMVtCYSrwvhFganzLDzpJPPP6PpvjvD6D7VZEP15GY 3NCGjbgqZVk7eaqrLMEnEnqRhozNm1KTG5z: -0.01600000 Waves 2024.09.01 21:13 [3264839] smart account 3NCGjbgqZVk7eaqrLMEnEnqRhozNm1KTG5z > SELF 0.00000000 Waves
{ "type": 13, "id": "5eTMVtCYSrwvhFganzLDzpJPPP6PpvjvD6D7VZEP15GY", "fee": 1600000, "feeAssetId": null, "timestamp": 1725214401813, "version": 2, "chainId": 84, "sender": "3NCGjbgqZVk7eaqrLMEnEnqRhozNm1KTG5z", "senderPublicKey": "5CoDbXxoqnvJpx9GrS6M4G5GYJXh9rcoiXJz7RYTPVkL", "proofs": [ "4Nbi9JmhsdKsB9E1BvvvD15vRTXdHToJqjGBQfseLnZ2na3EfL9sqhePufxH3h6ABcHySMSpRX4w6b1aYSUnEpqM" ], "script": "base64:BgIbCAISBgoECAgICBIDCgEBEgMKAQESABIDCgEIVgADU0VQAgJfXwAFTVVMVDYAwIQ9AAVNVUxUOACAwtcvAA5NSU5TSE9QUEFZTUVOVACgjQYACkRBWV9NSUxMSVMAgLiZKQAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEAC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFWRlZmF1bHRSZXN0QWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIFM1AuLi4DCQAAAgEBVAUHJG1hdGNoMAIFM00uLi4JAAIBAg1Vbmtub3duIGNoYWluAA5hcmJpdHJhZ2VEZWxheQQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAUKREFZX01JTExJUwMJAAACAQFUBQckbWF0Y2gwAODUAwkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAA9JZHhDZmdBY3Jlc0RhcHAAAQANSWR4Q2ZnV2xnRGFwcAACABRJZHhDZmdQdXp6bGVQb29sRGFwcAAEABRJZHhDZmdJbnZlc3RGdW5kRGFwcAAFAQprZXlSZXN0Q2ZnAAIOJXNfX3Jlc3RDb25maWcBDmtleVJlc3RBZGRyZXNzAAIMJXNfX3Jlc3RBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIHcmVzdENmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFB3Jlc3RDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AAxyZXN0Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBDmtleVJlc3RBZGRyZXNzAAUVZGVmYXVsdFJlc3RBZGRyZXNzU3RyAAdyZXN0Q2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQxyZXN0Q29udHJhY3QAD3N0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFD0lkeENmZ0FjcmVzRGFwcAALd2xnQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBQ1JZHhDZmdXbGdEYXBwABJwdXp6bGVQb29sQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdQdXp6bGVQb29sRGFwcAASaW52ZXN0RnVuZENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUUSWR4Q2ZnSW52ZXN0RnVuZERhcHAADXdsZ0Fzc2V0SWRLZXkCC3dsZ19hc3NldElkAAp3bGdBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgULd2xnQ29udHJhY3QFDXdsZ0Fzc2V0SWRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAEFYXNJbnQBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIDSW50BAFuBQckbWF0Y2gwBQFuCQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AAxpZHhXbGdBbW91bnQAAAALaWR4V2xnUHJpY2UAAQALaWR4V2xnRnVuZHMAAgAPaWR4V2xnSXNzdWVUaW1lAAYAFWlkeFdsZ01hcmtldGluZ0FtTGVmdAAJABlpZHhXbGdNYXJrZXRpbmdBbUF2YWlsTm93AAoAEGlkeFdsZ1RlYW1BbUxlZnQADQAUaWR4V2xnVGVhbUFtQXZhaWxOb3cADgAPaWR4V2xnQWN0QW1MZWZ0ABEAE2lkeFdsZ0FjdEFtQXZhaWxOb3cAEgARaWR4V2xnQW1MZWZ0VG90YWwAFQAUaWR4V2xnVXNlckFtQXZhaWxOb3cAGAAUaWR4V2xnVXNlclRvdGFsQXZhaWwAGgARaWR4V2xnRWZmVXNlclRpbWUAGwASaWR4V2xnQmFua0F2YWlsTm93ABwBCmZpeGVkUG9pbnQCA3ZhbAhkZWNpbWFscwQGdGVuUG93CQBsBgAKAAAFCGRlY2ltYWxzAAAAAAUERE9XTgQHbG93UGFydAkApAMBCQBqAgUDdmFsBQZ0ZW5Qb3cEBnplcm9lcwkAsAICCQCkAwEFBnRlblBvdwkAZAIAAQkAsQIBBQdsb3dQYXJ0CQCsAgIJAKwCAgkArAICCQCkAwEJAGkCBQN2YWwFBnRlblBvdwIBLgUGemVyb2VzBQdsb3dQYXJ0AAJNNgDAhD0AAk04AIDC1y8ACE1JTExJT042AICA6YOx3hYADk1BUktFVElOR1NIQVJFAKCNBgAJVEVBTVNIQVJFAMCaDAANQUNUSVZJVFlTSEFSRQCgjQYAC1BMQVlFUlNIQVJFAIC1GAAKWUVBUk1JTExJUwCAhuvHdQAIQkFOS19GRUUA0IYDAAJjaAkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQATVVNEVF9UVkxfQ09SUkVDVElPTgQHJG1hdGNoMAUCY2gDCQAAAgEBVwUHJG1hdGNoMADw9ajABAMJAAACAQFUBQckbWF0Y2gwAAAJAAIBAg1Vbmtub3duIGNoYWluABBtYXJrZXRpbmdBZGRyS2V5Ag1tYXJrZXRpbmdBZGRyAAt0ZWFtQWRkcktleQIIdGVhbUFkZHIAFGxhc3RNYXJrZXRpbmdUaW1lS2V5AhlsYXN0Q2xhaW1lZFRpbWVfbWFya2V0aW5nABZtYXJrZXRpbmdBbW91bnRMZWZ0S2V5AhNtYXJrZXRpbmdBbW91bnRMZWZ0AA9sYXN0VGVhbVRpbWVLZXkCFGxhc3RDbGFpbWVkVGltZV90ZWFtABF0ZWFtQW1vdW50TGVmdEtleQIOdGVhbUFtb3VudExlZnQAFWxhc3RBY3Rpdml0aWVzVGltZUtleQIabGFzdENsYWltZWRUaW1lX2FjdGl2aXRpZXMAEGFjdEFtb3VudExlZnRLZXkCFGFjdGl2aXRpZXNBbW91bnRMZWZ0ABRzdGFrZXJzQW1vdW50TGVmdEtleQIRc3Rha2Vyc0Ftb3VudExlZnQBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEEYWRkcgkArAICAhRsYXN0Q2xhaW1lZFRpbWVVc2VyXwUEYWRkcgEUa2V5TGFzdEFyYlRpbWVCeVVzZXIBBGFkZHIJAKwCAgIQbGFzdEFyYlRpbWVVc2VyXwUEYWRkcgEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBBnBlcmlvZAkAawMFCE1JTExJT042CQBoAgULUExBWUVSU0hBUkUJAGQCBQZwZXJpb2QAAQkAaAIABgUCTTYAD3dsZ0lzc3VlVGltZUtleQINd2xnX2lzc3VlVGltZQASd2xnSXNzdWVkQW1vdW50S2V5AhB3bGdfaXNzdWVkQW1vdW50ABF6Yklzc3VlZEFtb3VudEtleQISemJpbGxfaXNzdWVkQW1vdW50ARprZXlBY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcgEEYWRkcgkArAICAhhhY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcl8FBGFkZHIAE2FjcmVzU3Rha2VkVG90YWxLZXkCFmFjcmVzU3Rha2VkQW1vdW50VG90YWwACGRhcHBSZXN0AAAAC2RhcHBTdGFraW5nAAEAB2RhcHBXbGcAAgAKZGFwcFB1enpsZQADAA5kYXBwSW52ZXN0RnVuZAAEAQhnZXRMYW5kcwISdXNlckFkZHJTdHJPckVtcHR5D3N0YWtpbmdDb250cmFjdAQKdG90YWxBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QFE2FjcmVzU3Rha2VkVG90YWxLZXkAAAQJdXNlckFjcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBGmtleUFjcmVzU3Rha2VkQW1vdW50QnlVc2VyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAJAMwIAgUKdG90YWxBY3JlcwkAzAgCBQl1c2VyQWNyZXMFA25pbAANaWR4VG90YWxBY3JlcwAAAAxpZHhVc2VyQWNyZXMAAQELZ2V0V2xnU3RhdHMFC3VzZXJBZGRyT3B0CWNvbnRyYWN0cwZ1c2R0SWQVdXNkdEJhbGFuY2VDb3JyZWN0aW9uD3VzZXJQcm9wb3J0aW9uNgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEndsZ0lzc3VlZEFtb3VudEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0BAdyZXN0VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUGdXNkdElkBAZ3bGdVc2QJAGUCCQDwBwIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQpkYXBwUHV6emxlBQZ1c2R0SWQEEWludmVzdEZuZENvbnRyYWN0CQCRAwIFCWNvbnRyYWN0cwUOZGFwcEludmVzdEZ1bmQED2ludmVzdEZ1bmRUb3RhbAkAZAIJAPAHAgURaW52ZXN0Rm5kQ29udHJhY3QFBnVzZHRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRFpbnZlc3RGbmRDb250cmFjdAURemJJc3N1ZWRBbW91bnRLZXkAAAQNdG90YWxGdW5kc1VzZAkAZAIFBndsZ1VzZAUPaW52ZXN0RnVuZFRvdGFsBAV3bGdJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnAgt3bGdfYXNzZXRJZAITTm90IGluaXRpYWxpemVkIHlldAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFD3dsZ0lzc3VlVGltZUtleQIPTm90IGluaXRpYWxpemVkBA5tYXJrZXRpbmdUb3RhbAkAawMFCE1JTExJT042BQ5NQVJLRVRJTkdTSEFSRQUCTTYEE21hcmtldGluZ0Ftb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFFm1hcmtldGluZ0Ftb3VudExlZnRLZXkFDm1hcmtldGluZ1RvdGFsBBFsYXN0TWFya2V0aW5nVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUUbGFzdE1hcmtldGluZ1RpbWVLZXkFCWlzc3VlVGltZQQNbWFya2V0aW5nQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAnQgCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUQbWFya2V0aW5nQWRkcktleQQNbWFya2V0aW5nVGVtcAkAlwMBCQDMCAIJAGsDBQ5tYXJrZXRpbmdUb3RhbAkAZQIFA25vdwURbGFzdE1hcmtldGluZ1RpbWUFCllFQVJNSUxMSVMJAMwIAgUTbWFya2V0aW5nQW1vdW50TGVmdAUDbmlsBBFiYW5rRnJvbU1hcmtldGluZwkAawMFDW1hcmtldGluZ1RlbXAFCEJBTktfRkVFBQJNNgQbbWFya2V0aW5nQW1vdW50QXZhaWxhYmxlTm93CQBlAgUNbWFya2V0aW5nVGVtcAURYmFua0Zyb21NYXJrZXRpbmcED21hcmtldGluZ1dsZ29sZAkA8AcCBQ1tYXJrZXRpbmdBZGRyBQV3bGdJZAQKYmFua1dsZ29sZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwULZGFwcFN0YWtpbmcFBXdsZ0lkBAl0ZWFtVG90YWwJAGsDBQhNSUxMSU9ONgUJVEVBTVNIQVJFBQJNNgQOdGVhbUFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEXRlYW1BbW91bnRMZWZ0S2V5BQl0ZWFtVG90YWwEDGxhc3RUZWFtVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUPbGFzdFRlYW1UaW1lS2V5BQlpc3N1ZVRpbWUECHRlYW1BZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQt0ZWFtQWRkcktleQQWdGVhbUFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQl0ZWFtVG90YWwJAGUCBQNub3cFDGxhc3RUZWFtVGltZQkAaAIAAwUKWUVBUk1JTExJUwkAzAgCBQ50ZWFtQW1vdW50TGVmdAUDbmlsBAp0ZWFtV2xnb2xkCQDwBwIFCHRlYW1BZGRyBQV3bGdJZAQIYWN0VG90YWwJAGsDBQhNSUxMSU9ONgUNQUNUSVZJVFlTSEFSRQUCTTYEDWFjdEFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEGFjdEFtb3VudExlZnRLZXkFCGFjdFRvdGFsBBJsYXN0QWN0aXZpdGllc1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFFWxhc3RBY3Rpdml0aWVzVGltZUtleQUJaXNzdWVUaW1lBBVhY3RBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUIYWN0VG90YWwJAGUCBQNub3cFEmxhc3RBY3Rpdml0aWVzVGltZQkAaAIAAwUKWUVBUk1JTExJUwkAzAgCBQ1hY3RBbW91bnRMZWZ0BQNuaWwECWFjdFdsZ29sZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcFJlc3QFBXdsZ0lkBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcJARhrZXlMYXN0Q2xhaW1lZFRpbWVCeVVzZXIBBQt1c2VyQWRkck9wdAUJaXNzdWVUaW1lBA5sYXN0VXNlclBlcmlvZAkAaQIJAGUCBQxsYXN0VXNlclRpbWUFCWlzc3VlVGltZQUKWUVBUk1JTExJUwQKbm93TGltaXRlZAkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQpZRUFSTUlMTElTBQNuaWwECWN1clBlcmlvZAkAlwMBCQDMCAIJAGkCCQBlAgUDbm93BQlpc3N1ZVRpbWUFCllFQVJNSUxMSVMJAMwIAgACBQNuaWwEA2VmZgkBCGdldExhbmRzAgULdXNlckFkZHJPcHQJAJEDAgUJY29udHJhY3RzBQtkYXBwU3Rha2luZwQVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBBQljdXJQZXJpb2QECCR0MDc5MTE5AwkAAAIFDmxhc3RVc2VyUGVyaW9kBQljdXJQZXJpb2QEAmEwCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQpZRUFSTUlMTElTBAh1c2VyUGFydAkAawMFAmEwBQ91c2VyUHJvcG9ydGlvbjYFAk02BAdlZmZUaW1lCQBkAgUMbGFzdFVzZXJUaW1lCQBrAwkAZQIFCm5vd0xpbWl0ZWQFDGxhc3RVc2VyVGltZQUPdXNlclByb3BvcnRpb242BQJNNgkAlQoDBQh1c2VyUGFydAUCYTAFB2VmZlRpbWUDCQAAAgUObGFzdFVzZXJQZXJpb2QJAGUCBQljdXJQZXJpb2QAAQQCYTEJAGsDCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAEJAGUCCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQxsYXN0VXNlclRpbWUFCllFQVJNSUxMSVMEAmEwCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAUKWUVBUk1JTExJUwQFYXZhaWwJAGQCBQJhMQUCYTAECHVzZXJQYXJ0CQBrAwUFYXZhaWwFD3VzZXJQcm9wb3J0aW9uNgUCTTYEB2VmZlRpbWUDCQBnAgUCYTEFCHVzZXJQYXJ0CQBkAgUMbGFzdFVzZXJUaW1lCQBrAwUKWUVBUk1JTExJUwUIdXNlclBhcnQJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAQkAZAIJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTBQljdXJQZXJpb2QJAGsDBQpZRUFSTUlMTElTCQBlAgUIdXNlclBhcnQFAmExBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAJUKAwUIdXNlclBhcnQFBWF2YWlsBQdlZmZUaW1lBAJhMgkAawMJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAgkAZQIJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTCQBlAgUJY3VyUGVyaW9kAAEFDGxhc3RVc2VyVGltZQUKWUVBUk1JTExJUwQCYTEJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAQQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQpZRUFSTUlMTElTBAVhdmFpbAkAZAIJAGQCBQJhMgUCYTEFAmEwBAh1c2VyUGFydAkAawMFBWF2YWlsBQ91c2VyUHJvcG9ydGlvbjYFAk02BAdlZmZUaW1lAwkAZwIFAmEyBQh1c2VyUGFydAkAZAIFDGxhc3RVc2VyVGltZQkAawMFCllFQVJNSUxMSVMFCHVzZXJQYXJ0CQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAIDCQBnAgkAZAIFAmEyBQJhMQUIdXNlclBhcnQJAGQCCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwkAZQIFCWN1clBlcmlvZAABCQBrAwUKWUVBUk1JTExJUwkAZQIFCHVzZXJQYXJ0BQJhMgkBFGRpc3RyaWJ1dGlvbkJ5UGVyaW9kAQkAZQIFCWN1clBlcmlvZAABCQBkAgkAZAIFCWlzc3VlVGltZQkAaAIFCllFQVJNSUxMSVMFCWN1clBlcmlvZAkAawMFCllFQVJNSUxMSVMJAGUCCQBlAgUIdXNlclBhcnQFAmEyBQJhMQUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQCVCgMFCHVzZXJQYXJ0BQVhdmFpbAUHZWZmVGltZQQKdXNlckFtb3VudAgFCCR0MDc5MTE5Al8xBA11c2VyQXZhaWxhYmxlCAUIJHQwNzkxMTkCXzIEC2VmZkxhc3RUaW1lCAUIJHQwNzkxMTkCXzMED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUUc3Rha2Vyc0Ftb3VudExlZnRLZXkAAAQIdXNlclRlbXAJAGsDBQp1c2VyQW1vdW50CQCRAwIFA2VmZgUMaWR4VXNlckFjcmVzCQCRAwIFA2VmZgUNaWR4VG90YWxBY3JlcwQMYmFua0Zyb21Vc2VyCQBrAwUIdXNlclRlbXAFCEJBTktfRkVFBQJNNgQKcm9iYmVkVXNlcgkAZQIFCHVzZXJUZW1wBQxiYW5rRnJvbVVzZXIEDHVucm9iYmVkVXNlcgkAawMFDXVzZXJBdmFpbGFibGUJAJEDAgUDZWZmBQxpZHhVc2VyQWNyZXMJAJEDAgUDZWZmBQ1pZHhUb3RhbEFjcmVzCQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCCQBrAwkAZQIFDXRvdGFsRnVuZHNVc2QFE1VTRFRfVFZMX0NPUlJFQ1RJT04FAk04BQxpc3N1ZWRBbW91bnQJAMwIAgUNdG90YWxGdW5kc1VzZAkAzAgCBQdyZXN0VXNkCQDMCAIFBndsZ1VzZAkAzAgCBQlwdXp6bGVVc2QJAMwIAgUJaXNzdWVUaW1lCQDMCAIFEWxhc3RNYXJrZXRpbmdUaW1lCQDMCAIFDm1hcmtldGluZ1RvdGFsCQDMCAIFE21hcmtldGluZ0Ftb3VudExlZnQJAMwIAgUbbWFya2V0aW5nQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFD21hcmtldGluZ1dsZ29sZAkAzAgCBQl0ZWFtVG90YWwJAMwIAgUOdGVhbUFtb3VudExlZnQJAMwIAgUWdGVhbUFtb3VudEF2YWlsYWJsZU5vdwkAzAgCBQp0ZWFtV2xnb2xkCQDMCAIFCGFjdFRvdGFsCQDMCAIFDWFjdEFtb3VudExlZnQJAMwIAgUVYWN0QW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCWFjdFdsZ29sZAkAzAgCBQljdXJQZXJpb2QJAMwIAgUPYW1vdW50TGVmdFRvdGFsCQDMCAIFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAzAgCBQxsYXN0VXNlclRpbWUJAMwIAgUKcm9iYmVkVXNlcgkAzAgCBQ9pbnZlc3RGdW5kVG90YWwJAMwIAgUMdW5yb2JiZWRVc2VyCQDMCAIFC2VmZkxhc3RUaW1lCQDMCAIJAGQCBRFiYW5rRnJvbU1hcmtldGluZwUMYmFua0Zyb21Vc2VyCQDMCAIFCmJhbmtXbGdvbGQFA25pbAANcHJvZml0QWRkcktleQIKcHJvZml0QWRkcgAZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQIWc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbAEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQRhZGRyCQCsAgICFnN0YWtlcnNBbW91bnRQYWlkVXNlcl8FBGFkZHIBBnByb2xvZwAJAQVhc0ludAEJAP0HBAUPc3Rha2luZ0NvbnRyYWN0AgpzYXZlTGFzdFR4BQNuaWwFA25pbAEPZ2V0U3dhcExpbWl0V2xnAQRhZGRyBAhsYXN0VGltZQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEUa2V5TGFzdEFyYlRpbWVCeVVzZXIBBQRhZGRyAAAEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXADCQBmAgUOYXJiaXRyYWdlRGVsYXkJAGUCBQNub3cFCGxhc3RUaW1lCQACAQkArAICCQCsAgICH0FyYml0cmFnZXMgYXJlIHBvc3NpYmxlIG9uY2UgYSAJAKQDAQkAaQIFDmFyYml0cmFnZURlbGF5AODUAwIDbWluBAthY3Jlc0Ftb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARprZXlBY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcgEFBGFkZHIAAAULYWNyZXNBbW91bnQBDWNsYWltSW50ZXJuYWwCBGFkZHILcHJvcG9ydGlvbjYEBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUEYWRkcgQIY3VyU3RhdHMJAQtnZXRXbGdTdGF0cwUFBGFkZHIJAMwIAgUMcmVzdENvbnRyYWN0CQDMCAIFD3N0YWtpbmdDb250cmFjdAkAzAgCBQt3bGdDb250cmFjdAkAzAgCBRJwdXp6bGVQb29sQ29udHJhY3QJAMwIAgUSaW52ZXN0RnVuZENvbnRyYWN0BQNuaWwFC3VzZHRBc3NldElkAAAFC3Byb3BvcnRpb242BANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAlpc3N1ZVRpbWUJAJEDAgUIY3VyU3RhdHMFD2lkeFdsZ0lzc3VlVGltZQQTbWFya2V0aW5nQW1vdW50TGVmdAkAkQMCBQhjdXJTdGF0cwUVaWR4V2xnTWFya2V0aW5nQW1MZWZ0BA9tYXJrZXRpbmdBbW91bnQJAJEDAgUIY3VyU3RhdHMFGWlkeFdsZ01hcmtldGluZ0FtQXZhaWxOb3cEDnRlYW1BbW91bnRMZWZ0CQCRAwIFCGN1clN0YXRzBRBpZHhXbGdUZWFtQW1MZWZ0BAp0ZWFtQW1vdW50CQCRAwIFCGN1clN0YXRzBRRpZHhXbGdUZWFtQW1BdmFpbE5vdwQNYWN0QW1vdW50TGVmdAkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnQWN0QW1MZWZ0BAlhY3RBbW91bnQJAJEDAgUIY3VyU3RhdHMFE2lkeFdsZ0FjdEFtQXZhaWxOb3cECnVzZXJBbW91bnQJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1VzZXJBbUF2YWlsTm93BAd1c2VyS2V5CQEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQUEYWRkcgQJdXNlclRvdGFsCQCRAwIFCGN1clN0YXRzBRRpZHhXbGdVc2VyVG90YWxBdmFpbAQLdXNlckVmZlRpbWUJAJEDAgUIY3VyU3RhdHMFEWlkeFdsZ0VmZlVzZXJUaW1lBApiYW5rQW1vdW50CQCRAwIFCGN1clN0YXRzBRJpZHhXbGdCYW5rQXZhaWxOb3cJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCiCAEFEG1hcmtldGluZ0FkZHJLZXkFD21hcmtldGluZ0Ftb3VudAUKd2xnQXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCiCAEFC3RlYW1BZGRyS2V5BQp0ZWFtQW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDHJlc3RDb250cmFjdAUJYWN0QW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQd1c2VyS2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd1c2VyS2V5AAAFCnVzZXJBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkAAAUJdXNlclRvdGFsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRzdGFrZXJzQW1vdW50TGVmdEtleQkAZQIJAJEDAgUIY3VyU3RhdHMFEWlkeFdsZ0FtTGVmdFRvdGFsBQl1c2VyVG90YWwJAMwIAgkBDEludGVnZXJFbnRyeQIFFm1hcmtldGluZ0Ftb3VudExlZnRLZXkJAGUCBRNtYXJrZXRpbmdBbW91bnRMZWZ0BQ9tYXJrZXRpbmdBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFFGxhc3RNYXJrZXRpbmdUaW1lS2V5BQNub3cJAMwIAgkBDEludGVnZXJFbnRyeQIFEXRlYW1BbW91bnRMZWZ0S2V5CQBlAgUOdGVhbUFtb3VudExlZnQFCnRlYW1BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2xhc3RUZWFtVGltZUtleQUDbm93CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBhY3RBbW91bnRMZWZ0S2V5CQBlAgUNYWN0QW1vdW50TGVmdAUJYWN0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVsYXN0QWN0aXZpdGllc1RpbWVLZXkFA25vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEFBGFkZHIFC3VzZXJFZmZUaW1lBQNuaWwJAJQKAgUKdXNlckFtb3VudAUKYmFua0Ftb3VudAUBaQENY29uc3RydWN0b3JWMQQIcmVzdEFkZHINbWFya2V0aW5nQWRkcgh0ZWFtQWRkcgpwcm9maXRBZGRyAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQDCQEJaXNEZWZpbmVkAQkAoQgBBQ13bGdBc3NldElkS2V5CQACAQITQWxyZWFkeSBpbml0aWFsaXplZAQMaXNzdWVkQW1vdW50BQhNSUxMSU9ONgQFaXNzdWUJAMMIBwIGV0xHT0xEAiBXYXZlc0xhbmRzIEdvbGQgaW52ZXN0bWVudCB0b2tlbgUMaXNzdWVkQW1vdW50AAgGBQR1bml0AAAEB2Fzc2V0SWQJALgIAQUFaXNzdWUJAMwIAgUFaXNzdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFD3dsZ0lzc3VlVGltZUtleQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQUMaXNzdWVkQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRlzdGFrZXJzQW1vdW50UGFpZFRvdGFsS2V5AAAJAMwIAgkBDEludGVnZXJFbnRyeQIFFHN0YWtlcnNBbW91bnRMZWZ0S2V5CQBrAwUITUlMTElPTjYFC1BMQVlFUlNIQVJFBQVNVUxUNgkAzAgCCQELQmluYXJ5RW50cnkCBQ13bGdBc3NldElkS2V5BQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZXN0QWRkcmVzcwAFCHJlc3RBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIFEG1hcmtldGluZ0FkZHJLZXkFDW1hcmtldGluZ0FkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgULdGVhbUFkZHJLZXkFCHRlYW1BZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIFDXByb2ZpdEFkZHJLZXkFCnByb2ZpdEFkZHIFA25pbAFpAQZidXlXbGcBCW1pbkFtb3VudAQMcHJvbG9nUmVzdWx0CQEGcHJvbG9nAAMJAAACBQxwcm9sb2dSZXN1bHQFDHByb2xvZ1Jlc3VsdAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECImV4YWN0bHkgMSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAd1c2R0QW10CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFC3VzZHRBc3NldElkCQACAQITVVNEVCBwYXltZW50cyBvbmx5IQQGY2FsbGVyCAUBaQZjYWxsZXIEBGFkZHIJAKUIAQUGY2FsbGVyAwkAZgIFDk1JTlNIT1BQQVlNRU5UBQd1c2R0QW10CQACAQkArAICCQCsAgICEllvdSBjYW4gdHJhZGUgbWluIAkBCmZpeGVkUG9pbnQCBQ5NSU5TSE9QUEFZTUVOVAAGAgUgVVNEVAQIY3VyU3RhdHMJAQtnZXRXbGdTdGF0cwUCAAkAzAgCBQxyZXN0Q29udHJhY3QJAMwIAgUPc3Rha2luZ0NvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQFB3VzZHRBbXQFBU1VTFQ2BAxjdXJXbGdBbW91bnQJAJEDAgUIY3VyU3RhdHMFDGlkeFdsZ0Ftb3VudAQIZnVuZHNVc2QJAJEDAgUIY3VyU3RhdHMFC2lkeFdsZ0Z1bmRzBAh3bGdQcmljZQkAawMFCGZ1bmRzVXNkBQVNVUxUOAUMY3VyV2xnQW1vdW50BAhidXlQcmljZQkAawMFCHdsZ1ByaWNlAAYABQQJd2xnQW1vdW50CQBrAwUHdXNkdEFtdAUFTVVMVDgFCGJ1eVByaWNlBAZtYXhXbGcJAQ9nZXRTd2FwTGltaXRXbGcBBQRhZGRyAwkAZgIFCXdsZ0Ftb3VudAUGbWF4V2xnCQACAQkArAICCQCsAgICEFlvdSBjYW4gZ2V0IG1heCAJAQpmaXhlZFBvaW50AgUGbWF4V2xnAAgCByBXTEdPTEQDCQBmAgUJbWluQW1vdW50BQl3bGdBbW91bnQJAAIBAjBQcmljZSBjaGFuZ2VkIGR1cmluZyBvcGVyYXRpb24sIHBsZWFzZSB0cnkgYWdhaW4EDHByb2ZpdEFtb3VudAkAaQIFB3VzZHRBbXQABgQKZGVsdGFGdW5kcwkAZQIFB3VzZHRBbXQFDHByb2ZpdEFtb3VudAQIcmVpc3N1ZWQJAGsDBQxjdXJXbGdBbW91bnQFCmRlbHRhRnVuZHMFCGZ1bmRzVXNkCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQp3bGdBc3NldElkBQhyZWlzc3VlZAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIFDGN1cldsZ0Ftb3VudAUIcmVpc3N1ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUNcHJvZml0QWRkcktleQUMcHJvZml0QW1vdW50BQt1c2R0QXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFCXdsZ0Ftb3VudAUKd2xnQXNzZXRJZAUDbmlsBQxwcm9sb2dSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHc2VsbFdsZwEJbWluQW1vdW50BAxwcm9sb2dSZXN1bHQJAQZwcm9sb2cAAwkAAAIFDHByb2xvZ1Jlc3VsdAUMcHJvbG9nUmVzdWx0AwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEBndsZ0FtdAgFA3BtdAZhbW91bnQEBmNhbGxlcggFAWkGY2FsbGVyBARhZGRyCQClCAEFBmNhbGxlcgQGbWF4V2xnCQEPZ2V0U3dhcExpbWl0V2xnAQUEYWRkcgMJAGYCBQZ3bGdBbXQFBm1heFdsZwkAAgEJAKwCAgkArAICAhJZb3UgY2FuIHNwZW5kIG1heCAJAQpmaXhlZFBvaW50AgUGbWF4V2xnAAgCByBXTEdPTEQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQp3bGdBc3NldElkCQACAQIVV0xHT0xEIHBheW1lbnRzIG9ubHkhBAhjdXJTdGF0cwkBC2dldFdsZ1N0YXRzBQIACQDMCAIFDHJlc3RDb250cmFjdAkAzAgCBQ9zdGFraW5nQ29udHJhY3QJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUScHV6emxlUG9vbENvbnRyYWN0CQDMCAIFEmludmVzdEZ1bmRDb250cmFjdAUDbmlsBQt1c2R0QXNzZXRJZAAABQVNVUxUNgQMY3VyV2xnQW1vdW50CQCRAwIFCGN1clN0YXRzBQxpZHhXbGdBbW91bnQECXNlbGxQcmljZQkAawMJAJEDAgUIY3VyU3RhdHMFC2lkeFdsZ1ByaWNlAAQABQQHdXNkdEFtdAkAawMFBndsZ0FtdAUJc2VsbFByaWNlBQVNVUxUOAMJAGYCBQ5NSU5TSE9QUEFZTUVOVAUHdXNkdEFtdAkAAgEJAKwCAgkArAICAhJZb3UgY2FuIHRyYWRlIG1pbiAJAQpmaXhlZFBvaW50AgUOTUlOU0hPUFBBWU1FTlQABgIFIFVTRFQDCQBmAgUJbWluQW1vdW50BQd1c2R0QW10CQACAQIwUHJpY2UgY2hhbmdlZCBkdXJpbmcgb3BlcmF0aW9uLCBwbGVhc2UgdHJ5IGFnYWluBAxwcm9maXRBbW91bnQJAGkCBQd1c2R0QW10AAQJAJQKAgkAzAgCCQEEQnVybgIFCndsZ0Fzc2V0SWQFBndsZ0FtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSd2xnSXNzdWVkQW1vdW50S2V5CQBlAgUMY3VyV2xnQW1vdW50BQZ3bGdBbXQJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUNcHJvZml0QWRkcktleQUMcHJvZml0QW1vdW50BQt1c2R0QXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFB3VzZHRBbXQFC3VzZHRBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVjbGFpbQAEDHByb2xvZ1Jlc3VsdAkBBnByb2xvZwADCQAAAgUMcHJvbG9nUmVzdWx0BQxwcm9sb2dSZXN1bHQDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQBcgkBDWNsYWltSW50ZXJuYWwCCQClCAEIBQFpBmNhbGxlcgUFTVVMVDYEB2FjdGlvbnMIBQFyAl8xCQCUCgIJAM0IAgkAzQgCBQdhY3Rpb25zCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIICAUBcgJfMgJfMQUKd2xnQXNzZXRJZAkBDlNjcmlwdFRyYW5zZmVyAwUPc3Rha2luZ0NvbnRyYWN0CAgFAXICXzICXzIFCndsZ0Fzc2V0SWQFDHByb2xvZ1Jlc3VsdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJvblN0YWtlVW5zdGFrZUxhbmQBBGFkZHIDCQECIT0CCAUBaQZjYWxsZXIFD3N0YWtpbmdDb250cmFjdAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAFyCQENY2xhaW1JbnRlcm5hbAIFBGFkZHIFBU1VTFQ2BAdhY3Rpb25zCAUBcgJfMQkAlAoCCQDNCAIJAM0IAgUHYWN0aW9ucwkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUEYWRkcggIBQFyAl8yAl8xBQp3bGdBc3NldElkCQEOU2NyaXB0VHJhbnNmZXIDBQ9zdGFraW5nQ29udHJhY3QICAUBcgJfMgJfMgUKd2xnQXNzZXRJZAgFAXICXzIAGx+2ZQ==", "height": 3264839, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: CsvaN7nd1PhE4TZyprVtGKPsbQaM1mcC8tET4Yho4UmT Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = 1000000 | |
7 | + | ||
8 | + | let c = 100000000 | |
9 | + | ||
10 | + | let d = 100000 | |
11 | + | ||
12 | + | let e = 86400000 | |
13 | + | ||
14 | + | let f = take(drop(this.bytes, 1), 1) | |
15 | + | ||
16 | + | let g = { | |
17 | + | let h = f | |
18 | + | if ((base58'2W' == h)) | |
19 | + | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
20 | + | else if ((base58'2T' == h)) | |
21 | + | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
22 | + | else throw("Unknown chain") | |
23 | + | } | |
24 | + | ||
25 | + | let i = { | |
26 | + | let h = f | |
27 | + | if ((base58'2W' == h)) | |
28 | + | then "3P..." | |
29 | + | else if ((base58'2T' == h)) | |
30 | + | then "3M..." | |
31 | + | else throw("Unknown chain") | |
32 | + | } | |
33 | + | ||
34 | + | let j = { | |
35 | + | let h = f | |
36 | + | if ((base58'2W' == h)) | |
37 | + | then e | |
38 | + | else if ((base58'2T' == h)) | |
39 | + | then 60000 | |
40 | + | else throw("Unknown chain") | |
41 | + | } | |
42 | + | ||
43 | + | func k (l,m) = valueOrErrorMessage(getString(l, m), makeString(["mandatory ", toString(l), ".", m, " is not defined"], "")) | |
44 | + | ||
45 | + | ||
46 | + | let n = 1 | |
47 | + | ||
48 | + | let o = 2 | |
49 | + | ||
50 | + | let p = 4 | |
51 | + | ||
52 | + | let q = 5 | |
53 | + | ||
54 | + | func r () = "%s__restConfig" | |
55 | + | ||
56 | + | ||
57 | + | func s () = "%s__restAddr" | |
58 | + | ||
59 | + | ||
60 | + | func t (u) = split_4C(k(u, r()), a) | |
61 | + | ||
62 | + | ||
63 | + | func v (w,x) = valueOrErrorMessage(addressFromString(w[x]), ("Rest cfg doesn't contain address at index " + toString(x))) | |
64 | + | ||
65 | + | ||
66 | + | let y = addressFromStringValue(valueOrElse(getString(this, s()), i)) | |
67 | + | ||
68 | + | let w = t(y) | |
69 | + | ||
70 | + | let z = v(w, n) | |
71 | + | ||
72 | + | let A = v(w, o) | |
73 | + | ||
74 | + | let B = v(w, p) | |
75 | + | ||
76 | + | let C = v(w, q) | |
77 | + | ||
78 | + | let D = "wlg_assetId" | |
79 | + | ||
80 | + | let E = valueOrErrorMessage(getBinary(A, D), "WLGOLD is not issued yet") | |
81 | + | ||
82 | + | func F (G) = { | |
83 | + | let h = G | |
84 | + | if ($isInstanceOf(h, "Int")) | |
85 | + | then { | |
86 | + | let H = h | |
87 | + | H | |
88 | + | } | |
89 | + | else throw("fail to cast into Int") | |
90 | + | } | |
91 | + | ||
92 | + | ||
93 | + | let I = 0 | |
94 | + | ||
95 | + | let J = 1 | |
96 | + | ||
97 | + | let K = 2 | |
98 | + | ||
99 | + | let L = 6 | |
100 | + | ||
101 | + | let M = 9 | |
102 | + | ||
103 | + | let N = 10 | |
104 | + | ||
105 | + | let O = 13 | |
106 | + | ||
107 | + | let P = 14 | |
108 | + | ||
109 | + | let Q = 17 | |
110 | + | ||
111 | + | let R = 18 | |
112 | + | ||
113 | + | let S = 21 | |
114 | + | ||
115 | + | let T = 24 | |
116 | + | ||
117 | + | let U = 26 | |
118 | + | ||
119 | + | let V = 27 | |
120 | + | ||
121 | + | let W = 28 | |
122 | + | ||
123 | + | func X (Y,Z) = { | |
124 | + | let aa = pow(10, 0, Z, 0, 0, DOWN) | |
125 | + | let ab = toString((Y % aa)) | |
126 | + | let ac = drop(toString(aa), (1 + size(ab))) | |
127 | + | (((toString((Y / aa)) + ".") + ac) + ab) | |
128 | + | } | |
129 | + | ||
130 | + | ||
131 | + | let ad = 1000000 | |
132 | + | ||
133 | + | let ae = 100000000 | |
134 | + | ||
135 | + | let af = 100000000000000 | |
136 | + | ||
137 | + | let ag = 100000 | |
138 | + | ||
139 | + | let ah = 200000 | |
140 | + | ||
141 | + | let ai = 100000 | |
142 | + | ||
143 | + | let aj = 400000 | |
144 | + | ||
145 | + | let ak = 31557600000 | |
146 | + | ||
147 | + | let al = 50000 | |
148 | + | ||
149 | + | let am = take(drop(this.bytes, 1), 1) | |
150 | + | ||
151 | + | let an = { | |
152 | + | let h = am | |
153 | + | if ((base58'2W' == h)) | |
154 | + | then 1208630000 | |
155 | + | else if ((base58'2T' == h)) | |
156 | + | then 0 | |
157 | + | else throw("Unknown chain") | |
158 | + | } | |
159 | + | ||
160 | + | let ao = "marketingAddr" | |
161 | + | ||
162 | + | let ap = "teamAddr" | |
163 | + | ||
164 | + | let aq = "lastClaimedTime_marketing" | |
165 | + | ||
166 | + | let ar = "marketingAmountLeft" | |
167 | + | ||
168 | + | let as = "lastClaimedTime_team" | |
169 | + | ||
170 | + | let at = "teamAmountLeft" | |
171 | + | ||
172 | + | let au = "lastClaimedTime_activities" | |
173 | + | ||
174 | + | let av = "activitiesAmountLeft" | |
175 | + | ||
176 | + | let aw = "stakersAmountLeft" | |
177 | + | ||
178 | + | func ax (ay) = ("lastClaimedTimeUser_" + ay) | |
179 | + | ||
180 | + | ||
181 | + | func az (ay) = ("lastArbTimeUser_" + ay) | |
182 | + | ||
183 | + | ||
184 | + | func aA (aB) = fraction(af, (aj * (aB + 1)), (6 * ad)) | |
185 | + | ||
186 | + | ||
187 | + | let aC = "wlg_issueTime" | |
188 | + | ||
189 | + | let aD = "wlg_issuedAmount" | |
190 | + | ||
191 | + | let aE = "zbill_issuedAmount" | |
192 | + | ||
193 | + | func aF (ay) = ("acresStakedAmountByUser_" + ay) | |
194 | + | ||
195 | + | ||
196 | + | let aG = "acresStakedAmountTotal" | |
197 | + | ||
198 | + | let aH = 0 | |
199 | + | ||
200 | + | let aI = 1 | |
201 | + | ||
202 | + | let aJ = 2 | |
203 | + | ||
204 | + | let aK = 3 | |
205 | + | ||
206 | + | let aL = 4 | |
207 | + | ||
208 | + | func aM (aN,z) = { | |
209 | + | let aO = valueOrElse(getInteger(z, aG), 0) | |
210 | + | let aP = valueOrElse(getInteger(z, aF(aN)), 0) | |
211 | + | [aO, aP] | |
212 | + | } | |
213 | + | ||
214 | + | ||
215 | + | let aQ = 0 | |
216 | + | ||
217 | + | let aR = 1 | |
218 | + | ||
219 | + | func aS (aT,aU,aV,aW,aX) = { | |
220 | + | let aY = valueOrErrorMessage(getInteger(aU[aJ], aD), "WLGOLD is not issued yet") | |
221 | + | let aZ = assetBalance(aU[aH], aV) | |
222 | + | let ba = (assetBalance(aU[aJ], aV) - aW) | |
223 | + | let bb = assetBalance(aU[aK], aV) | |
224 | + | let bc = aU[aL] | |
225 | + | let bd = (assetBalance(bc, aV) + valueOrElse(getInteger(bc, aE), 0)) | |
226 | + | let be = (ba + bd) | |
227 | + | let bf = valueOrErrorMessage(getBinary(aU[aJ], "wlg_assetId"), "Not initialized yet") | |
228 | + | let bg = lastBlock.timestamp | |
229 | + | let bh = valueOrErrorMessage(getInteger(aU[aJ], aC), "Not initialized") | |
230 | + | let bi = fraction(af, ag, ad) | |
231 | + | let bj = valueOrElse(getInteger(aU[aJ], ar), bi) | |
232 | + | let bk = valueOrElse(getInteger(aU[aJ], aq), bh) | |
233 | + | let bl = addressFromStringValue(value(getString(aU[aJ], ao))) | |
234 | + | let bm = min([fraction(bi, (bg - bk), ak), bj]) | |
235 | + | let bn = fraction(bm, al, ad) | |
236 | + | let bo = (bm - bn) | |
237 | + | let bp = assetBalance(bl, bf) | |
238 | + | let bq = assetBalance(aU[aI], bf) | |
239 | + | let br = fraction(af, ah, ad) | |
240 | + | let bs = valueOrElse(getInteger(aU[aJ], at), br) | |
241 | + | let bt = valueOrElse(getInteger(aU[aJ], as), bh) | |
242 | + | let bu = addressFromStringValue(value(getString(aU[aJ], ap))) | |
243 | + | let bv = min([fraction(br, (bg - bt), (3 * ak)), bs]) | |
244 | + | let bw = assetBalance(bu, bf) | |
245 | + | let bx = fraction(af, ai, ad) | |
246 | + | let by = valueOrElse(getInteger(aU[aJ], av), bx) | |
247 | + | let bz = valueOrElse(getInteger(aU[aJ], au), bh) | |
248 | + | let bA = min([fraction(bx, (bg - bz), (3 * ak)), by]) | |
249 | + | let bB = assetBalance(aU[aH], bf) | |
250 | + | let bC = valueOrElse(getInteger(aU[aJ], ax(aT)), bh) | |
251 | + | let bD = ((bC - bh) / ak) | |
252 | + | let bE = min([bg, (bh + (3 * ak))]) | |
253 | + | let bF = min([((bg - bh) / ak), 2]) | |
254 | + | let bG = aM(aT, aU[aI]) | |
255 | + | let bH = aA(bF) | |
256 | + | let bI = if ((bD == bF)) | |
257 | + | then { | |
258 | + | let bJ = fraction(bH, (bE - bC), ak) | |
259 | + | let bK = fraction(bJ, aX, ad) | |
260 | + | let bL = (bC + fraction((bE - bC), aX, ad)) | |
261 | + | $Tuple3(bK, bJ, bL) | |
262 | + | } | |
263 | + | else if ((bD == (bF - 1))) | |
264 | + | then { | |
265 | + | let bM = fraction(aA((bF - 1)), ((bh + (ak * bF)) - bC), ak) | |
266 | + | let bJ = fraction(bH, (bE - (bh + (ak * bF))), ak) | |
267 | + | let bN = (bM + bJ) | |
268 | + | let bK = fraction(bN, aX, ad) | |
269 | + | let bL = if ((bM >= bK)) | |
270 | + | then (bC + fraction(ak, bK, aA((bF - 1)))) | |
271 | + | else ((bh + (ak * bF)) + fraction(ak, (bK - bM), bH)) | |
272 | + | $Tuple3(bK, bN, bL) | |
273 | + | } | |
274 | + | else { | |
275 | + | let bO = fraction(aA((bF - 2)), ((bh + (ak * (bF - 1))) - bC), ak) | |
276 | + | let bM = aA((bF - 1)) | |
277 | + | let bJ = fraction(bH, (bE - (bh + (ak * bF))), ak) | |
278 | + | let bN = ((bO + bM) + bJ) | |
279 | + | let bK = fraction(bN, aX, ad) | |
280 | + | let bL = if ((bO >= bK)) | |
281 | + | then (bC + fraction(ak, bK, aA((bF - 2)))) | |
282 | + | else if (((bO + bM) >= bK)) | |
283 | + | then ((bh + (ak * (bF - 1))) + fraction(ak, (bK - bO), aA((bF - 1)))) | |
284 | + | else ((bh + (ak * bF)) + fraction(ak, ((bK - bO) - bM), bH)) | |
285 | + | $Tuple3(bK, bN, bL) | |
286 | + | } | |
287 | + | let bP = bI._1 | |
288 | + | let bQ = bI._2 | |
289 | + | let bR = bI._3 | |
290 | + | let bS = valueOrElse(getInteger(aU[aJ], aw), 0) | |
291 | + | let bT = fraction(bP, bG[aR], bG[aQ]) | |
292 | + | let bU = fraction(bT, al, ad) | |
293 | + | let bV = (bT - bU) | |
294 | + | let bW = fraction(bQ, bG[aR], bG[aQ]) | |
295 | + | [aY, fraction((be - an), ae, aY), be, aZ, ba, bb, bh, bk, bi, bj, bo, bp, br, bs, bv, bw, bx, by, bA, bB, bF, bS, bH, bC, bV, bd, bW, bR, (bn + bU), bq] | |
296 | + | } | |
297 | + | ||
298 | + | ||
299 | + | let bX = "profitAddr" | |
300 | + | ||
301 | + | let bY = "stakersAmountPaidTotal" | |
302 | + | ||
303 | + | func bZ (ay) = ("stakersAmountPaidUser_" + ay) | |
304 | + | ||
305 | + | ||
306 | + | func ca () = F(reentrantInvoke(z, "saveLastTx", nil, nil)) | |
307 | + | ||
308 | + | ||
309 | + | func cb (ay) = { | |
310 | + | let cc = valueOrElse(getInteger(az(ay)), 0) | |
311 | + | let bg = lastBlock.timestamp | |
312 | + | if ((j > (bg - cc))) | |
313 | + | then throw((("Arbitrages are possible once a " + toString((j / 60000))) + "min")) | |
314 | + | else { | |
315 | + | let cd = valueOrElse(getInteger(z, aF(ay)), 0) | |
316 | + | cd | |
317 | + | } | |
318 | + | } | |
319 | + | ||
320 | + | ||
321 | + | func ce (ay,cf) = { | |
322 | + | let cg = addressFromStringValue(ay) | |
323 | + | let ch = aS(ay, [y, z, A, B, C], g, 0, cf) | |
324 | + | let bg = lastBlock.timestamp | |
325 | + | let bh = ch[L] | |
326 | + | let bj = ch[M] | |
327 | + | let ci = ch[N] | |
328 | + | let bs = ch[O] | |
329 | + | let cj = ch[P] | |
330 | + | let by = ch[Q] | |
331 | + | let ck = ch[R] | |
332 | + | let bP = ch[T] | |
333 | + | let cl = bZ(ay) | |
334 | + | let cm = ch[U] | |
335 | + | let cn = ch[V] | |
336 | + | let co = ch[W] | |
337 | + | $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(ao))), ci, E), ScriptTransfer(addressFromStringValue(value(getString(ap))), cj, E), ScriptTransfer(y, ck, E), IntegerEntry(cl, (valueOrElse(getInteger(cl), 0) + bP)), IntegerEntry(bY, (valueOrElse(getInteger(bY), 0) + cm)), IntegerEntry(aw, (ch[S] - cm)), IntegerEntry(ar, (bj - ci)), IntegerEntry(aq, bg), IntegerEntry(at, (bs - cj)), IntegerEntry(as, bg), IntegerEntry(av, (by - ck)), IntegerEntry(au, bg), IntegerEntry(ax(ay), cn)], $Tuple2(bP, co)) | |
338 | + | } | |
339 | + | ||
340 | + | ||
341 | + | @Callable(cp) | |
342 | + | func constructorV1 (cq,bl,bu,cr) = if ((cp.caller != this)) | |
343 | + | then throw("Permission denied") | |
344 | + | else if (isDefined(getBinary(D))) | |
345 | + | then throw("Already initialized") | |
346 | + | else { | |
347 | + | let aY = af | |
348 | + | let cs = Issue("WLGOLD", "WavesLands Gold investment token", aY, 8, true, unit, 0) | |
349 | + | let ct = calculateAssetId(cs) | |
350 | + | [cs, IntegerEntry(aC, lastBlock.timestamp), IntegerEntry(aD, aY), IntegerEntry(bY, 0), IntegerEntry(aw, fraction(af, aj, b)), BinaryEntry(D, ct), StringEntry(s(), cq), StringEntry(ao, bl), StringEntry(ap, bu), StringEntry(bX, cr)] | |
351 | + | } | |
352 | + | ||
353 | + | ||
354 | + | ||
355 | + | @Callable(cp) | |
356 | + | func buyWlg (cu) = { | |
357 | + | let cv = ca() | |
358 | + | if ((cv == cv)) | |
359 | + | then if ((size(cp.payments) != 1)) | |
360 | + | then throw("exactly 1 payment must be attached") | |
361 | + | else { | |
362 | + | let cw = cp.payments[0] | |
363 | + | let cx = cw.amount | |
364 | + | if (if (!(isDefined(cw.assetId))) | |
365 | + | then true | |
366 | + | else (value(cw.assetId) != g)) | |
367 | + | then throw("USDT payments only!") | |
368 | + | else { | |
369 | + | let cg = cp.caller | |
370 | + | let ay = toString(cg) | |
371 | + | if ((d > cx)) | |
372 | + | then throw((("You can trade min " + X(d, 6)) + " USDT")) | |
373 | + | else { | |
374 | + | let ch = aS("", [y, z, A, B, C], g, cx, b) | |
375 | + | let cy = ch[I] | |
376 | + | let cz = ch[K] | |
377 | + | let cA = fraction(cz, c, cy) | |
378 | + | let cB = fraction(cA, 6, 5) | |
379 | + | let cC = fraction(cx, c, cB) | |
380 | + | let cD = cb(ay) | |
381 | + | if ((cC > cD)) | |
382 | + | then throw((("You can get max " + X(cD, 8)) + " WLGOLD")) | |
383 | + | else if ((cu > cC)) | |
384 | + | then throw("Price changed during operation, please try again") | |
385 | + | else { | |
386 | + | let cE = (cx / 6) | |
387 | + | let cF = (cx - cE) | |
388 | + | let cG = fraction(cy, cF, cz) | |
389 | + | $Tuple2([Reissue(E, cG, true), IntegerEntry(aD, (cy + cG)), IntegerEntry(az(ay), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bX))), cE, g), ScriptTransfer(cg, cC, E)], cv) | |
390 | + | } | |
391 | + | } | |
392 | + | } | |
393 | + | } | |
394 | + | else throw("Strict value is not equal to itself.") | |
395 | + | } | |
396 | + | ||
397 | + | ||
398 | + | ||
399 | + | @Callable(cp) | |
400 | + | func sellWlg (cu) = { | |
401 | + | let cv = ca() | |
402 | + | if ((cv == cv)) | |
403 | + | then if ((size(cp.payments) != 1)) | |
404 | + | then throw("exactly 1 payment must be attached") | |
405 | + | else { | |
406 | + | let cw = cp.payments[0] | |
407 | + | let cH = cw.amount | |
408 | + | let cg = cp.caller | |
409 | + | let ay = toString(cg) | |
410 | + | let cD = cb(ay) | |
411 | + | if ((cH > cD)) | |
412 | + | then throw((("You can spend max " + X(cD, 8)) + " WLGOLD")) | |
413 | + | else if (if (!(isDefined(cw.assetId))) | |
414 | + | then true | |
415 | + | else (value(cw.assetId) != E)) | |
416 | + | then throw("WLGOLD payments only!") | |
417 | + | else { | |
418 | + | let ch = aS("", [y, z, A, B, C], g, 0, b) | |
419 | + | let cy = ch[I] | |
420 | + | let cI = fraction(ch[J], 4, 5) | |
421 | + | let cx = fraction(cH, cI, c) | |
422 | + | if ((d > cx)) | |
423 | + | then throw((("You can trade min " + X(d, 6)) + " USDT")) | |
424 | + | else if ((cu > cx)) | |
425 | + | then throw("Price changed during operation, please try again") | |
426 | + | else { | |
427 | + | let cE = (cx / 4) | |
428 | + | $Tuple2([Burn(E, cH), IntegerEntry(aD, (cy - cH)), IntegerEntry(az(ay), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bX))), cE, g), ScriptTransfer(cg, cx, g)], cv) | |
429 | + | } | |
430 | + | } | |
431 | + | } | |
432 | + | else throw("Strict value is not equal to itself.") | |
433 | + | } | |
434 | + | ||
435 | + | ||
436 | + | ||
437 | + | @Callable(cp) | |
438 | + | func claim () = { | |
439 | + | let cv = ca() | |
440 | + | if ((cv == cv)) | |
441 | + | then if ((size(cp.payments) != 0)) | |
442 | + | then throw("No payments required") | |
443 | + | else { | |
444 | + | let cJ = ce(toString(cp.caller), b) | |
445 | + | let cK = cJ._1 | |
446 | + | $Tuple2(((cK :+ ScriptTransfer(cp.caller, cJ._2._1, E)) :+ ScriptTransfer(z, cJ._2._2, E)), cv) | |
447 | + | } | |
448 | + | else throw("Strict value is not equal to itself.") | |
449 | + | } | |
450 | + | ||
451 | + | ||
452 | + | ||
453 | + | @Callable(cp) | |
454 | + | func onStakeUnstakeLand (ay) = if ((cp.caller != z)) | |
455 | + | then throw("Permission denied") | |
456 | + | else { | |
457 | + | let cJ = ce(ay, b) | |
458 | + | let cK = cJ._1 | |
459 | + | $Tuple2(((cK :+ ScriptTransfer(addressFromStringValue(ay), cJ._2._1, E)) :+ ScriptTransfer(z, cJ._2._2, E)), cJ._2) | |
460 | + | } | |
461 | + | ||
462 | + |
github/deemru/w8io/169f3d6 34.63 ms ◑