tx · 2XTB7r1MhS6zeWgN9qFa8Nc5Zj4o2XmVNHeYGJa2hq47

3PJXxPS9FxZsSLyP9gA47dSLwMinoFyfYFC:  -0.04000000 Waves

2024.01.19 10:14 [4003835] smart account 3PJXxPS9FxZsSLyP9gA47dSLwMinoFyfYFC > SELF 0.00000000 Waves

{ "type": 13, "id": "2XTB7r1MhS6zeWgN9qFa8Nc5Zj4o2XmVNHeYGJa2hq47", "fee": 4000000, "feeAssetId": null, "timestamp": 1705648489195, "version": 2, "chainId": 87, "sender": "3PJXxPS9FxZsSLyP9gA47dSLwMinoFyfYFC", "senderPublicKey": "B3uLVcDr7gdvWSB4wQcukWjHbPgahoQp3PtkECBkj7yb", "proofs": [ "3MzzXXFJtWkiGNdadtcigwAZjey3uP7oTbCp9PUnayzTR8HwHcFRQeehTDc2GyJxZbwKqwLtmrJPej3R4yLzYj2S" ], "script": "base64:BgI/CAISABIAEgASABIAEgASABIAEgASABIAEgASAwoBCBIAEgASABIAEgMKAQgSABIAEgASABIDCgEIEgQKAgEIMAENdHJ5R2V0SW50ZWdlcgIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQx0cnlHZXRTdHJpbmcCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAACZDYAwIQ9AAJkOACAwtcvAA9taW5pbXVtSW5jcmVhc2UFAmQ4AAZwb29sSWQBGgFXhZ0sMNX8Az5hxa3ekr/FKpHzma4aQUAKAAdtYXRjaGVyCQEHQWRkcmVzcwEBGgFXjGf/mV44VecDCk0khCwXA38b9yOaAHEmAAl3aGlybHBvb2wBIFnjjdzCtSO6ShTcxNCvFAnmZOYEviUGCyZO5VBtl1nHAAN4dG4BILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAdidXJueHRuASAkT3V5an4zObj7DP+EqXFcXsot3jOgxF1p+epEEexMVAANYnVybnh0blN0cmluZwkA2AQBBQdidXJueHRuAAJ3eAEgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEABndlc3RJZAEgMYOEb0Wf3bcdWh4X/UF+RNg32QeT1+Tle4pnJF/jwPkAB3ZpcmVzSWQBILja4jcBYnBfmqhbshkMvQ/DZa91BrZYLd0Hk1ap3amXAAVlZ2dJZAEgo59/TyNyUdEs4iGSYohNDAvz6iJugdWv/AuTF85tsckABnN1cmZJZAEgktH0SuIRASv0fureIY49xfvJ8n3Oh7LtUhnwOk4kWPUABm5zYnRJZAEgVe7DvqoL8FDoccgbqm5wnqSxyP5KLrnB8czFaw94l0sABHd4SWQBIJMBHKupx24lV85mnnG2vapr+DzoWAsq7tmgTrs83BSxAAZzd29wSWQBIMuWPoXm9ZNWT495gxEUeE8mfozeVJJ81uGtwFxoqK7sABZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkAhRBZGRyZXNzZXMgcmVnaXN0ZXJlZAAJYWRkcmVzc2VzCQCzAgIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkAAEAE2tleUFtb3VudFJlZ2lzdGVyZWQCEUFtb3VudCBSZWdpc3RlcmVkAA9rZXlQYXJ0aWNpcGFudHMCGHBhcnRpY2lwYW50cyBsaXN0IHN0cmluZwAUa2V5VG90YWxCYWxhbmNlQ291bnQCE3RvdGFsIGJhbGFuY2UgY291bnQAG2tleVRvdGFsQmFsYW5jZUphY2twb3RDb3VudAIbdG90YWwgYmFsYW5jZSBqYWNrcG90IGNvdW50AA9rZXlUb3RhbFNwb25zb3ICDXRvdGFsIHNwb25zb3IAG2tleVRvdGFsQmFsYW5jZVNwb25zb3JDb3VudAIbdG90YWwgYmFsYW5jZSBzcG9uc29yIGNvdW50AANORlQJAQdBZGRyZXNzAQEaAVeL4FU4i35FoET1yjNt6Hc1BMWcAFWOzBMAB1dGU2xpc3QJAMwIAgIsR25weTVuVmFqUFAzWFFRVnhySGJvTUFzWHRqbnlXQXh5Yk1EZEtyYnI4c0QJAMwIAgIsQlQ5UTRtUWRRUW1laTJyNVlOTUJNYXNaQlFqN215TmFpejZRSGJhNWNQWFMJAMwIAgIsQk12a3lGdFBWbUZhdHBGUjlRVkZLUjVNWVRjWlZUWTJWVXdGWjI1dnJBQWMJAMwIAgIsNzdScXU4VExqQmRNdER1WGQ5bzVmVVNHbzY0elFlNUZDY2FvNUw4SHQ5ajgJAMwIAgkBDHRyeUdldFN0cmluZwIFA05GVAIBNQkAzAgCCQEMdHJ5R2V0U3RyaW5nAgUDTkZUAgE2CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQNORlQCATcJAMwIAgkBDHRyeUdldFN0cmluZwIFA05GVAIBOAkAzAgCCQEMdHJ5R2V0U3RyaW5nAgUDTkZUAgE5CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQNORlQCAjEwBQNuaWwAB0JCQmxpc3QJAMwIAgIsOXBDeG9HdEQxOEdlSDlnQ2VtenFyakhNTWpmeUJRRGZzclJBdXhTUmFnTWMJAMwIAgIsN0RnRmdDa0JqVkRjNVA5Wmd3c1ZMOVNpVGk3a1hKdVM0YVJWZ2I3WkhXM2sJAMwIAgIsNzZiVHZFOHR0SHZzdU4xRnVINEtjOFFVVzRrTDRtOGMxY2pmc1h5MkdmYlYJAMwIAgIsNFpyZjRINXRpRmNRTDhlUW1uQTJ3SjFYV1BFQkg2aDFHMk1lZlpEWW1jQ0IJAMwIAgIsMkR0QzRuRm54ejVVTTZtYmpQd01WWnBRV1pGVXF4czUyb1pyQmVOUms5QW8JAMwIAgIsRGpaR01BRmZvUVdrTVczUzVGVHNRTjNqb25jWnQ2QnNtaG5FSzNnZ0x4bU4JAMwIAgIsQm5lYVpYRDZvdkRKY1Y1cmdmcjhoc0haYU1Rc0pROERINmE1Z1RuR0NwQmMJAMwIAgIsNEVLZmd6RmtkNVVHS3JqbmFKVjN3N2FyZ1cxWW1GNGhxNTR4V1FGekFYYjkJAMwIAgIsOGhHRGtXS2l1MmlnRHBXVDNIcHI0bWNoREQ2eHdKOWhHbTJoMmpuVXZUcXoJAMwIAgIsRTNablNlanBYTDFYcjZWRzRRb0xoOHhvZDlOTWdwUGU0NzNyOVFrMkhpYkwFA25pbAEEcmFuZAEBaQkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAMsBAgkAywECCAUBaQ10cmFuc2FjdGlvbklkCAUBaQ9jYWxsZXJQdWJsaWNLZXkIBQlsYXN0QmxvY2sTZ2VuZXJhdGlvblNpZ25hdHVyZQkAmgMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAmgMBBQZoZWlnaHQJAJoDAQkA8AcCBQR0aGlzBQdidXJueHRuCQCaAwEICQDvBwEFB21hdGNoZXIJYXZhaWxhYmxlCQCaAwEJAPAHAgUEdGhpcwUCd3gAA1BaMQEaAVeFnSww1fwDPmHFrd6Sv8UqkfOZrhpBQAoAA1BaMgEaAVf1RmgngA1o304mdXq0odMoMeAJv/V5eTcAA1BaMwEaAVdrUh3hZ11iM5xE9ppvCu7VVcjaIPzs5scAA1BaNAEaAVd8ufIkLHkd+cILYV2n5Ut+Pmb4MdnkIOIAA1BaNQEaAVdzM1uLVnknLEeNcZD2LCCz+T9Cl/2cRdIAA1BaNgEaAVdHHWb6sJRhaJYHMq62QOOh/3POTybYR7oAB1dYc3Rha2UBGgFX6zvnfm4FGMKRpJgWF+Fm10UnIO4lSVaoAANXWDEBGgFXK+KucXt9yTC1IHnnFsVrbVdAgaU4Fj0+AANMUDECLEd5aUhkY041OXNaNDZiYUZ2ajY4cnVMbmdyVFBFdldEdHNkNmpIbTRvNDZuAANXWDIBGgFXwRfLSELOBVNDikdciGeU9BfVx8LU1MNSAANMUDICLDNNUEhNSlZ3WUd5ZUJMUnNIMVJzWWhyVG1lbXY3NTJBRUJ3dUZGVjdnNDlaAARQWncxARoBVwlIVKiYtf/MSkbbEv1LyZMZRjdDmIfXzQEFUFpiYWwDC1Bvb2xhZGRyZXNzB2FkZHJlc3MFYXNzZXQEC2J1cm54dG5JblBaCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQULUG9vbGFkZHJlc3MJAKwCAgkArAICAgdnbG9iYWxfCQDYBAEFBWFzc2V0AghfYmFsYW5jZQQOYWRkcmVzc1N0YWtlUFoJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQtQb29sYWRkcmVzcwkArAICCQClCAEFB2FkZHJlc3MCDF9pbmRleFN0YWtlZAQMdG90YWxTdGFrZVBaCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQULUG9vbGFkZHJlc3MCF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50CQBrAwULYnVybnh0bkluUFoFDmFkZHJlc3NTdGFrZVBaBQx0b3RhbFN0YWtlUFoBBVdYYmFsAwtQb29sYWRkcmVzcwdhZGRyZXNzBUxQc3RyBAtidXJueHRuSW5XWAkA8AcCCQEHQWRkcmVzcwEFC1Bvb2xhZGRyZXNzBQdidXJueHRuBA5hZGRyZXNzU3Rha2VXWAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFB1dYc3Rha2UJAKwCAgkArAICCQCsAgICECVzJXMlc19fc3Rha2VkX18JAKUIAQUHYWRkcmVzcwICX18FBUxQc3RyBAx0b3RhbFN0YWtlV1gJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQdXWHN0YWtlCQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQVMUHN0cgkAawMFC2J1cm54dG5JbldYBQ5hZGRyZXNzU3Rha2VXWAUMdG90YWxTdGFrZVdYAQ5idXJueHRuQmFsYW5jZQEBaQkA8AcCCAUBaQZjYWxsZXIFB2J1cm54dG4BDHRvdGFsQmFsYW5jZQEHYWRkcmVzcwQPYnVybnh0bkJhbGFuY2UyCQDwBwIFB2FkZHJlc3MFB2J1cm54dG4EClBaMWJhbGFuY2UJAQVQWmJhbAMFA1BaMQUHYWRkcmVzcwUHYnVybnh0bgQKUFoyYmFsYW5jZQkBBVBaYmFsAwUDUFoyBQdhZGRyZXNzBQdidXJueHRuBApQWjNiYWxhbmNlCQEFUFpiYWwDBQNQWjMFB2FkZHJlc3MFB2J1cm54dG4EClBaNGJhbGFuY2UJAQVQWmJhbAMFA1BaNAUHYWRkcmVzcwUHYnVybnh0bgQKUFo1YmFsYW5jZQkBBVBaYmFsAwUDUFo1BQdhZGRyZXNzBQdidXJueHRuBApQWjZiYWxhbmNlCQEFUFpiYWwDBQNQWjYFB2FkZHJlc3MFB2J1cm54dG4ECldYMWJhbGFuY2UJAQVXWGJhbAMFA1dYMQUHYWRkcmVzcwUDTFAxBApXWDJiYWxhbmNlCQEFV1hiYWwDBQNXWDIFB2FkZHJlc3MFA0xQMgkAZAIJAGQCCQBkAgkAZAIJAGQCCQBkAgkAZAIJAGQCBQ9idXJueHRuQmFsYW5jZTIFClBaMWJhbGFuY2UFClBaMmJhbGFuY2UFClBaM2JhbGFuY2UFClBaNGJhbGFuY2UFClBaNWJhbGFuY2UFClBaNmJhbGFuY2UFCldYMWJhbGFuY2UFCldYMmJhbGFuY2UBFXRvdGFsV2hpcmxwb29sQmFsYW5jZQEHYWRkcmVzcwQQd2hpcmxwb29sQmFsYW5jZQkA8AcCBQdhZGRyZXNzBQl3aGlybHBvb2wEC1BadzFiYWxhbmNlCQEFUFpiYWwDBQRQWncxBQdhZGRyZXNzBQl3aGlybHBvb2wJAGQCBRB3aGlybHBvb2xCYWxhbmNlBQtQWncxYmFsYW5jZRgBaQEIcmVnaXN0ZXIAAwkBCGNvbnRhaW5zAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQJAKUIAQgFAWkGY2FsbGVyCQACAQISYWxyZWFkeSByZWdpc3RlcmVkAwkAZwIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUTa2V5QW1vdW50UmVnaXN0ZXJlZABaCQACAQIUbWF4IHJlZ2lzdGVyZWQgdXNlcnMJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleUFtb3VudFJlZ2lzdGVyZWQJAGQCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleUFtb3VudFJlZ2lzdGVyZWQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICElJlZ2lzdGVyIGFkZHJlc3M6IAkApAMBCQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlBbW91bnRSZWdpc3RlcmVkAAEJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQJAKwCAgkArAICCQEMdHJ5R2V0U3RyaW5nAgUEdGhpcwUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAkApQgBCAUBaQZjYWxsZXICASwJAMwIAgkBDEludGVnZXJFbnRyeQIJAKUIAQgFAWkGY2FsbGVyCQEOYnVybnh0bkJhbGFuY2UBBQFpBQNuaWwBaQEMY2hlY2tNeUVudHJ5AAMJAAACCQEIY29udGFpbnMCCQEMdHJ5R2V0U3RyaW5nAgUEdGhpcwUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAkApQgBCAUBaQZjYWxsZXIHCQACAQISbm90IHlldCByZWdpc3RlcmVkCQDMCAIJAQxCb29sZWFuRW50cnkCAgZIT0RMKzEJAGcCCQDwBwIIBQFpBmNhbGxlcgUHYnVybnh0bgkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwkApQgBCAUBaQZjYWxsZXIFD21pbmltdW1JbmNyZWFzZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIsaGlnaGVzdCByZWNvcmRlZCBCVVJOLVhUTiBiYWxhbmNlIGJ5IGxvdHRlcnkJAGkCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMJAKUIAQgFAWkGY2FsbGVyBQJkOAkAzAgCCQEMSW50ZWdlckVudHJ5AgIYY3VycmVudCBCVVJOLVhUTiBiYWxhbmNlCQBpAgkBDmJ1cm54dG5CYWxhbmNlAQUBaQUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQICGXJlcXVpcmVkIEJVUk4tWFROIGJhbGFuY2UJAGkCCQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzCQClCAEIBQFpBmNhbGxlcgUPbWluaW11bUluY3JlYXNlBQJkOAkAzAgCCQEMSW50ZWdlckVudHJ5AgI1ZW50cmllcyA9IHRvdGFsIEJVUk4tWFROIGJhbGFuY2UgaW5jbCBsaXF1aWRpdHkgcG9vbHMJAGkCCQEMdG90YWxCYWxhbmNlAQgFAWkGY2FsbGVyBQJkOAUDbmlsAWkBBnN0ZXBfMQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAFyCQD8BwQFBHRoaXMCBXJlc2V0BQNuaWwFA25pbAMJAAACBQFyBQFyBAFwCQD8BwQFBHRoaXMCDHBhcnRpY2lwYW50cwUDbmlsBQNuaWwDCQAAAgUBcAUBcAQBdQkA/AcEBQR0aGlzAhJ1cGRhdGVCYWxhbmNlRW50cnkFA25pbAUDbmlsAwkAAAIFAXUFAXUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZzdGVwXzIAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQDdGJhCQD8BwQFBHRoaXMCD3RvdGFsQmFsYW5jZUFsbAUDbmlsBQNuaWwDCQAAAgUDdGJhBQN0YmEEBHRid2EJAPwHBAUEdGhpcwIYdG90YWxCYWxhbmNlV2hpcmxwb29sQWxsBQNuaWwFA25pbAMJAAACBQR0YndhBQR0YndhBAF3CQD8BwQFBHRoaXMCBndpbm5lcgUDbmlsBQNuaWwDCQAAAgUBdwUBdwQCaW4JAPwHBAUEdGhpcwIHaW52b2tlcgUDbmlsBQNuaWwDCQAAAgUCaW4FAmluBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGc3RlcF8zAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEAXAJAPwHBAUEdGhpcwIJcGF5V2lubmVyBQNuaWwFA25pbAMJAAACBQFwBQFwBAFqCQD8BwQFBHRoaXMCB2phY2twb3QFA25pbAUDbmlsAwkAAAIFAWoFAWoDCQAAAgkBEUBleHRyTmF0aXZlKDEwNTYpAQIHamFja3BvdAcFA25pbAQBdwkA/AcEBQR0aGlzAg13aW5uZXJKYWNrcG90BQNuaWwFA25pbAMJAAACBQF3BQF3BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGc3RlcF80AAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEAmppCQD8BwQFBHRoaXMCDmphY2twb3RJbnZva2VyBQNuaWwFA25pbAMJAAACBQJqaQUCamkEAnBqCQD8BwQFBHRoaXMCCnBheUphY2twb3QFA25pbAUDbmlsAwkAAAIFAnBqBQJwagUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHBhcnRpY2lwYW50cwADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyAwkAAAIJARFAZXh0ck5hdGl2ZSgxMDUxKQIFBHRoaXMCBXJlc2V0BwkAAgECC3Jlc2V0IGZpcnN0BARsaXN0CQC8CQIFCWFkZHJlc3NlcwIBLAoBAXACBWFjY3VtB2FkZHJlc3MDCQBmAgkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUHYWRkcmVzcwUPbWluaW11bUluY3JlYXNlCQDwBwIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFB2J1cm54dG4FBWFjY3VtCQDNCAIFBWFjY3VtBQdhZGRyZXNzBBBwYXJ0aWNpcGFudHNMaXN0CgACJGwFBGxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBAXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFkxpc3Qgc2l6ZSBleGNlZWRzIDEwMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJ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AQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAA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AFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQJAMwIAgkBDEludGVnZXJFbnRyeQICG3RvdGFsIGJhbGFuY2UgV2hpcmxwb29sIGFsbAUUZW50ZXJUb3RhbEJhbGFuY2VBbGwFA25pbAFpAQZ3aW5uZXIAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgMJAAACCQERQGV4dHJOYXRpdmUoMTA1MSkCBQR0aGlzAgVyZXNldAcJAAIBAgtyZXNldCBmaXJzdAQIY2xhaW1JbnYJAPwHBAkBB0FkZHJlc3MBARoBV4WdLDDV/AM+YcWt3pK/xSqR85muGkFACgIRY2xhaW1JbmRleFJld2FyZHMFA25pbAUDbmlsAwkAAAIFCGNsYWltSW52BQhjbGFpbUludgQIcmFuZEhhc2gJAPcDAQkBBHJhbmQBBQFpBAtyYW5kSGFzaEludAkAsQkBBQhyYW5kSGFzaAQGcmVzdWx0AwkAZgIAAAULcmFuZEhhc2hJbnQJAGgCAP///////////wEFC3JhbmRIYXNoSW50BQtyYW5kSGFzaEludAkAzAgCCQELQmluYXJ5RW50cnkCAgtyYW5kIHdpbm5lcgkBBHJhbmQBBQFpCQDMCAIJAQtCaW5hcnlFbnRyeQICD3JhbmRoYXNoIHdpbm5lcgUIcmFuZEhhc2gJAMwIAgkBDEludGVnZXJFbnRyeQICE3JhbmRoYXNoIGludCB3aW5uZXIFBnJlc3VsdAkAzAgCCQEMSW50ZWdlckVudHJ5AgIXcmVzdWx0IHJlbWFpbmRlciB3aW5uZXIJAGQCCQBqAgUGcmVzdWx0CQERQGV4dHJOYXRpdmUoMTA1NSkBAhF0b3RhbCBiYWxhbmNlIGFsbAABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHaW52b2tlcgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBARsaXN0CQC8CQIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBQ9rZXlQYXJ0aWNpcGFudHMCASwKAQFyAgVhY2N1bQdhZGRyZXNzCQD8BwQFBHRoaXMCDXdpbm5lckFkZHJlc3MJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwEB2ludm9rZXIKAAIkbAUEbGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEBcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQDCQAAAgUHaW52b2tlcgUHaW52b2tlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDXdpbm5lckFkZHJlc3MBB2FkZHJlc3MDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyAwkAZwIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUUa2V5VG90YWxCYWxhbmNlQ291bnQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIXcmVzdWx0IHJlbWFpbmRlciB3aW5uZXIFA25pbAQFY291bnQJAQx0b3RhbEJhbGFuY2UBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzAwkAZwIJAGQCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFFGtleVRvdGFsQmFsYW5jZUNvdW50BQVjb3VudAkBDXRyeUdldEludGVnZXICBQR0aGlzAhdyZXN1bHQgcmVtYWluZGVyIHdpbm5lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5VG90YWxCYWxhbmNlQ291bnQJAGQCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFFGtleVRvdGFsQmFsYW5jZUNvdW50BQVjb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAg53aW5uZXIgYWRkcmVzcwUHYWRkcmVzcwUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrZXlUb3RhbEJhbGFuY2VDb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUUa2V5VG90YWxCYWxhbmNlQ291bnQFBWNvdW50BQNuaWwBaQEJcGF5V2lubmVyAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEFGJ1cm54dG5CYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFB2J1cm54dG4DCQAAAgUUYnVybnh0bkJhbGFuY2VCZWZvcmUFFGJ1cm54dG5CYWxhbmNlQmVmb3JlBAVzd2VzdAkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZ3ZXN0SWQJAPAHAgUEdGhpcwUGd2VzdElkBQNuaWwDCQAAAgUFc3dlc3QFBXN3ZXN0BAZzdmlyZXMJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdmlyZXNJZAkA8AcCBQR0aGlzBQd2aXJlc0lkBQNuaWwDCQAAAgUGc3ZpcmVzBQZzdmlyZXMEBHNlZ2cJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUFZWdnSWQJAPAHAgUEdGhpcwUFZWdnSWQFA25pbAMJAAACBQRzZWdnBQRzZWdnBAVzc3VyZgkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzdXJmSWQDCQBmAgkAZQIJAPAHAgUEdGhpcwUGc3VyZklkBQJkNgAACQBlAgkA8AcCBQR0aGlzBQZzdXJmSWQFAmQ2AAAFA25pbAMJAAACBQVzc3VyZgUFc3N1cmYEBXNuc2J0CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBm5zYnRJZAkA8AcCBQR0aGlzBQZuc2J0SWQFA25pbAMJAAACBQVzbnNidAUFc25zYnQEA3N3eAkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR3eElkCQDwBwIFBHRoaXMFBHd4SWQFA25pbAMJAAACBQNzd3gFA3N3eAQFc3N3b3AJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGc3dvcElkCQDwBwIFBHRoaXMFBnN3b3BJZAUDbmlsAwkAAAIFBXNzd29wBQVzc3dvcAQEc3h0bgkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQN4dG4JAPAHAgUEdGhpcwUDeHRuBQNuaWwDCQAAAgUEc3h0bgUEc3h0bgQJc3dhcHdhdmVzCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQDCQBmAgkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAACQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAFA25pbAMJAAACBQlzd2Fwd2F2ZXMFCXN3YXB3YXZlcwQTYnVybnh0bkJhbGFuY2VBZnRlcgkA8AcCBQR0aGlzBQdidXJueHRuBAtwcml6ZUFtb3VudAkAawMJAGUCBRNidXJueHRuQmFsYW5jZUFmdGVyBRRidXJueHRuQmFsYW5jZUJlZm9yZQBQAGQDCQAAAgULcHJpemVBbW91bnQFC3ByaXplQW1vdW50BA13aW5uZXJBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAg53aW5uZXIgYWRkcmVzcwQFYm9udXMJAGsDCQBlAgUTYnVybnh0bkJhbGFuY2VBZnRlcgUUYnVybnh0bkJhbGFuY2VCZWZvcmUACgBkBAtib251c0Ftb3VudAkAawMFBWJvbnVzCQEVdG90YWxXaGlybHBvb2xCYWxhbmNlAQUNd2lubmVyQWRkcmVzcwkBDXRyeUdldEludGVnZXICBQR0aGlzAht0b3RhbCBiYWxhbmNlIFdoaXJscG9vbCBhbGwDCQAAAgULYm9udXNBbW91bnQFC2JvbnVzQW1vdW50BA5zdXJmQnVybkFtb3VudAMJAGYCBQJkNgkA8AcCBQR0aGlzBQZzdXJmSWQJAPAHAgUEdGhpcwUGc3VyZklkBQJkNgQIc3VyZkJ1cm4JAQRCdXJuAgUGc3VyZklkBQ5zdXJmQnVybkFtb3VudAoBCGZvbGRGdW5jAgNhY2MDV0ZTCQBkAgUDYWNjCQDwBwIFDXdpbm5lckFkZHJlc3MJANkEAQUDV0ZTBAhzaGFyZVdGUwoAAiRsBQdXRlNsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQIV0ZTYm9udXMJAGsDBQtwcml6ZUFtb3VudAB9AJBOCgEJZm9sZEZ1bmNCAgNhY2MDQkJCCQBkAgUDYWNjCQDwBwIFDXdpbm5lckFkZHJlc3MJANkEAQUDQkJCBAhzaGFyZUJCQgoAAiRsBQdCQkJsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlmb2xkRnVuY0ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoECEJCQmJvbnVzCQBrAwULcHJpemVBbW91bnQJAGgCAH0ACQDoBwkAzAgCCQEMQm9vbGVhbkVudHJ5AgIFcmVzZXQHCQDMCAIFCHN1cmZCdXJuCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhFTVVJGIHRvdGFsIGJ1cm5lZAkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIRU1VSRiB0b3RhbCBidXJuZWQFDnN1cmZCdXJuQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBndWFyYW50ZWVkIHByaXplBQtwcml6ZUFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ13aW5uZXJBZGRyZXNzBQtwcml6ZUFtb3VudAUHYnVybnh0bgkAzAgCCQEMSW50ZWdlckVudHJ5AgIVV2hpcmxwb29sIGJvbnVzIHByaXplBQtib251c0Ftb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ13aW5uZXJBZGRyZXNzBQtib251c0Ftb3VudAUHYnVybnh0bgkAzAgCCQEMSW50ZWdlckVudHJ5AgITV0ZTIDEuMjUlIE5GVCBib251cwMJAGYCBQhzaGFyZVdGUwAABQhXRlNib251cwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDXdpbm5lckFkZHJlc3MDCQBmAgUIc2hhcmVXRlMAAAUIV0ZTYm9udXMAAAUHYnVybnh0bgkAzAgCCQEMSW50ZWdlckVudHJ5AgIUQkJCIDExLjI1JSBORlQgYm9udXMDCQBmAgUIc2hhcmVCQkIAAAUIQkJCYm9udXMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ13aW5uZXJBZGRyZXNzAwkAZgIFCHNoYXJlQkJCAAAFCEJCQmJvbnVzAAAFB2J1cm54dG4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdqYWNrcG90AAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIECHJhbmRIYXNoCQD3AwEJAMsBAgkBBHJhbmQBBQFpCQERQGV4dHJOYXRpdmUoMTA1NykBAg9yYW5kaGFzaCB3aW5uZXIEC3JhbmRIYXNoSW50CQCxCQEFCHJhbmRIYXNoBAZyZXN1bHQDCQBmAgAABQtyYW5kSGFzaEludAkAaAIA////////////AQULcmFuZEhhc2hJbnQFC3JhbmRIYXNoSW50CQDMCAIJAQtCaW5hcnlFbnRyeQICDHJhbmQgamFja3BvdAkBBHJhbmQBBQFpCQDMCAIJAQtCaW5hcnlFbnRyeQICEHJhbmRoYXNoIGphY2twb3QFCHJhbmRIYXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhRyYW5kaGFzaCBpbnQgamFja3BvdAUGcmVzdWx0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhhyZXN1bHQgcmVtYWluZGVyIGphY2twb3QJAGoCBQZyZXN1bHQANAkAzAgCAwkAAAIJAGoCBQZyZXN1bHQANAAACQEMQm9vbGVhbkVudHJ5AgIHamFja3BvdAYJAQxCb29sZWFuRW50cnkCAgdqYWNrcG90BwUDbmlsAWkBDXdpbm5lckphY2twb3QAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQIcmFuZEhhc2gJAPcDAQkAywECCQEEcmFuZAEFAWkJARFAZXh0ck5hdGl2ZSgxMDU3KQECEHJhbmRoYXNoIGphY2twb3QEC3JhbmRIYXNoSW50CQCxCQEFCHJhbmRIYXNoBAZyZXN1bHQDCQBmAgAABQtyYW5kSGFzaEludAkAaAIA////////////AQULcmFuZEhhc2hJbnQFC3JhbmRIYXNoSW50CQDMCAIJAQtCaW5hcnlFbnRyeQICC3JhbmQgd2lubmVyCQEEcmFuZAEFAWkJAMwIAgkBC0JpbmFyeUVudHJ5AgIPcmFuZGhhc2ggd2lubmVyBQhyYW5kSGFzaAkAzAgCCQEMSW50ZWdlckVudHJ5AgITcmFuZGhhc2ggaW50IHdpbm5lcgUGcmVzdWx0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhdyZXN1bHQgcmVtYWluZGVyIHdpbm5lcgkAZAIJAGoCBQZyZXN1bHQJARFAZXh0ck5hdGl2ZSgxMDU1KQECEXRvdGFsIGJhbGFuY2UgYWxsAAEFA25pbAFpAQ5qYWNrcG90SW52b2tlcgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBARsaXN0CQC8CQIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBQ9rZXlQYXJ0aWNpcGFudHMCASwKAQFyAgVh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eVRvdGFsQmFsYW5jZUphY2twb3RDb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUba2V5VG90YWxCYWxhbmNlSmFja3BvdENvdW50BQVjb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAg9qYWNrcG90IGFkZHJlc3MFB2FkZHJlc3MFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUba2V5VG90YWxCYWxhbmNlSmFja3BvdENvdW50CQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzBRtrZXlUb3RhbEJhbGFuY2VKYWNrcG90Q291bnQFBWNvdW50BQNuaWwBaQEKcGF5SmFja3BvdAADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyAwkAAAIJARFAZXh0ck5hdGl2ZSgxMDU2KQECB2phY2twb3QHCQACAQIKbm8gamFja3BvdAQLcHJpemVBbW91bnQJAGsDCQDwBwIFBHRoaXMFB2J1cm54dG4AKABkAwkAAAIFC3ByaXplQW1vdW50BQtwcml6ZUFtb3VudAQFYm9udXMJAGsDCQDwBwIFBHRoaXMFB2J1cm54dG4ABQBkBAtib251c0Ftb3VudAkAawMFBWJvbnVzCQEVdG90YWxXaGlybHBvb2xCYWxhbmNlAQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIPamFja3BvdCBhZGRyZXNzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCG3RvdGFsIGJhbGFuY2UgV2hpcmxwb29sIGFsbAMJAAACBQtib251c0Ftb3VudAULYm9udXNBbW91bnQEDXdpbm5lckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCD2phY2twb3QgYWRkcmVzcwoBCGZvbGRGdW5jAgNhY2MDV0ZTCQBkAgUDYWNjCQDwBwIFDXdpbm5lckFkZHJlc3MJANkEAQUDV0ZTBAhzaGFyZVdGUwoAAiRsBQdXRlNsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQIV0ZTYm9udXMJAGsDBQtwcml6ZUFtb3VudAB9AJBOCgEJZm9sZEZ1bmNCAgNhY2MDQkJCCQBkAgUDYWNjCQDwBwIFDXdpbm5lckFkZHJlc3MJANkEAQUDQkJCBAhzaGFyZUJCQgoAAiRsBQdCQkJsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlmb2xkRnVuY0ICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoECEJCQmJvbnVzCQBrAwULcHJpemVBbW91bnQJAGgCAH0ACQCQTgkAzAgCCQEMSW50ZWdlckVudHJ5AgINamFja3BvdCBwcml6ZQULcHJpemVBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNd2lubmVyQWRkcmVzcwULcHJpemVBbW91bnQFB2J1cm54dG4JAMwIAgkBDEludGVnZXJFbnRyeQICFVdoaXJscG9vbCBib251cyBwcml6ZQULYm9udXNBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNd2lubmVyQWRkcmVzcwULYm9udXNBbW91bnQFB2J1cm54dG4JAMwIAgkBDEludGVnZXJFbnRyeQICE1dGUyAxLjI1JSBORlQgYm9udXMDCQBmAgUIc2hhcmVXRlMAAAUIV0ZTYm9udXMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ13aW5uZXJBZGRyZXNzAwkAZgIFCHNoYXJlV0ZTAAAFCFdGU2JvbnVzAAAFB2J1cm54dG4JAMwIAgkBDEludGVnZXJFbnRyeQICFEJCQiAxMS4yNSUgTkZUIGJvbnVzAwkAZgIFCHNoYXJlQkJCAAAFCEJCQmJvbnVzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNd2lubmVyQWRkcmVzcwMJAGYCBQhzaGFyZUJCQgAABQhCQkJib251cwAABQdidXJueHRuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFcmVzZXQAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5VG90YWxCYWxhbmNlQ291bnQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUba2V5VG90YWxCYWxhbmNlSmFja3BvdENvdW50AAAJAMwIAgkBDEJvb2xlYW5FbnRyeQICB2phY2twb3QHCQDMCAIJAQxCb29sZWFuRW50cnkCAgVyZXNldAYFA25pbAFpAQ1zcG9uc29yV2lubmVyAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIECHJhbmRIYXNoCQD3AwEJAMsBAgkBBHJhbmQBBQFpCQERQGV4dHJOYXRpdmUoMTA1NykBAhByYW5kaGFzaCBqYWNrcG90BAtyYW5kSGFzaEludAkAsQkBBQhyYW5kSGFzaAQGcmVzdWx0AwkAZgIAAAULcmFuZEhhc2hJbnQJAGgCAP///////////wEFC3JhbmRIYXNoSW50BQtyYW5kSGFzaEludAQMdG90YWxTcG9uc29yCQBlAgkAZQIJARFAZXh0ck5hdGl2ZSgxMDU1KQECEXRvdGFsIGJhbGFuY2UgYWxsCQEMdG90YWxCYWxhbmNlAQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDHRyeUdldFN0cmluZwIFBHRoaXMCDndpbm5lciBhZGRyZXNzAwkAAAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAg9qYWNrcG90IGFkZHJlc3MCAAAACQEMdG90YWxCYWxhbmNlAQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDHRyeUdldFN0cmluZwIFBHRoaXMCD2phY2twb3QgYWRkcmVzcwkAzAgCCQELQmluYXJ5RW50cnkCAgtyYW5kIHdpbm5lcgkBBHJhbmQBBQFpCQDMCAIJAQtCaW5hcnlFbnRyeQICD3JhbmRoYXNoIHdpbm5lcgUIcmFuZEhhc2gJAMwIAgkBDEludGVnZXJFbnRyeQICE3JhbmRoYXNoIGludCB3aW5uZXIFBnJlc3VsdAkAzAgCCQEMSW50ZWdlckVudHJ5AgIXcmVzdWx0IHJlbWFpbmRlciB3aW5uZXIJAGQCCQBqAgUGcmVzdWx0BQx0b3RhbFNwb25zb3IAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5VG90YWxTcG9uc29yBQx0b3RhbFNwb25zb3IFA25pbAFpAQ5zcG9uc29ySW52b2tlcgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBARsaXN0CQC8CQIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBQ9rZXlQYXJ0aWNpcGFudHMCASwEC3dpbm5lckluZGV4CQEFdmFsdWUBCQDPCAIFBGxpc3QJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAg53aW5uZXIgYWRkcmVzcwQPbGlzdE1pbnVzV2lubmVyCQDRCAIFBGxpc3QFC3dpbm5lckluZGV4CgEBcgIFYWNjdW0HYWRkcmVzcwkA/AcEBQR0aGlzAhRzcG9uc29yV2lubmVyQWRkcmVzcwkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAQHaW52b2tlcgoAAiRsBQ9saXN0TWludXNXaW5uZXIKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBAXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFUxpc3Qgc2l6ZSBleGNlZWRzIDEwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAwkAAAIFB2ludm9rZXIFB2ludm9rZXIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARRzcG9uc29yV2lubmVyQWRkcmVzcwEHYWRkcmVzcwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIDCQBnAgkBDXRyeUdldEludGVnZXICBQR0aGlzBRtrZXlUb3RhbEJhbGFuY2VTcG9uc29yQ291bnQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIXcmVzdWx0IHJlbWFpbmRlciB3aW5uZXIFA25pbAQFY291bnQJAQx0b3RhbEJhbGFuY2UBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzAwkAZwIJAGQCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFG2tleVRvdGFsQmFsYW5jZVNwb25zb3JDb3VudAUFY291bnQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIXcmVzdWx0IHJlbWFpbmRlciB3aW5uZXIJAMwIAgkBDEludGVnZXJFbnRyeQIFG2tleVRvdGFsQmFsYW5jZVNwb25zb3JDb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUba2V5VG90YWxCYWxhbmNlU3BvbnNvckNvdW50BQVjb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAhZzcG9uc29yIHdpbm5lciBhZGRyZXNzBQdhZGRyZXNzBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFG2tleVRvdGFsQmFsYW5jZVNwb25zb3JDb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUba2V5VG90YWxCYWxhbmNlU3BvbnNvckNvdW50BQVjb3VudAUDbmlsAWkBEHBheVNwb25zb3JXaW5uZXICBmFtb3VudAdhc3NldElkAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQNd2lubmVyQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwIWc3BvbnNvciB3aW5uZXIgYWRkcmVzcwQIZGVjaW1hbHMEByRtYXRjaDAJAOwHAQkA2QQBBQdhc3NldElkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CGRlY2ltYWxzCQACAQIQQ2FuJ3QgZmluZCBhc3NldAQLcHJpemVBbW91bnQFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ13aW5uZXJBZGRyZXNzBQtwcml6ZUFtb3VudAkA2QQBBQdhc3NldElkBQNuaWwASoAPPA==", "height": 4003835, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GidTfBhhDdxVmc7jvC5vZBq2wA1uZwM9dmN1bHHeyxL9 Next: 73ma4hnuDxZWHSqquJX3AFrNuzQY3558tKfy5AQHoWan Diff:
OldNewDifferences
717717 func r (accum,address) = invoke(this, "sponsorWinnerAddress", [address], nil)
718718
719719 let invoker = {
720- let $l = list
720+ let $l = listMinusWinner
721721 let $s = size($l)
722722 let $acc0 = nil
723723 func $f0_1 ($a,$i) = if (($i >= $s))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (address,key) = match getInteger(address, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func tryGetString (address,key) = match getString(address, key) {
1313 case b: String =>
1414 b
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 let d6 = 1000000
2121
2222 let d8 = 100000000
2323
2424 let minimumIncrease = d8
2525
2626 let poolId = base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'
2727
2828 let matcher = Address(base58'3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu')
2929
3030 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
3131
3232 let xtn = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
3333
3434 let burnxtn = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
3535
3636 let burnxtnString = toBase58String(burnxtn)
3737
3838 let wx = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
3939
4040 let westId = base58'4LHHvYGNKJUg5hj65aGD5vgScvCBmLpdRFtjokvCjSL8'
4141
4242 let viresId = base58'DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p'
4343
4444 let eggId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
4545
4646 let surfId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
4747
4848 let nsbtId = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g'
4949
5050 let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
5151
5252 let swopId = base58'Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT'
5353
5454 let keyAddressesRegistered = "Addresses registered"
5555
5656 let addresses = dropRight(tryGetString(this, keyAddressesRegistered), 1)
5757
5858 let keyAmountRegistered = "Amount Registered"
5959
6060 let keyParticipants = "participants list string"
6161
6262 let keyTotalBalanceCount = "total balance count"
6363
6464 let keyTotalBalanceJackpotCount = "total balance jackpot count"
6565
6666 let keyTotalSponsor = "total sponsor"
6767
6868 let keyTotalBalanceSponsorCount = "total balance sponsor count"
6969
7070 let NFT = Address(base58'3PEgVPqJ3NYWbRn1CLELUpuY9KCmragc7sY')
7171
7272 let WFSlist = ["Gnpy5nVajPP3XQQVxrHboMAsXtjnyWAxybMDdKrbr8sD", "BT9Q4mQdQQmei2r5YNMBMasZBQj7myNaiz6QHba5cPXS", "BMvkyFtPVmFatpFR9QVFKR5MYTcZVTY2VUwFZ25vrAAc", "77Rqu8TLjBdMtDuXd9o5fUSGo64zQe5FCcao5L8Ht9j8", tryGetString(NFT, "5"), tryGetString(NFT, "6"), tryGetString(NFT, "7"), tryGetString(NFT, "8"), tryGetString(NFT, "9"), tryGetString(NFT, "10")]
7373
7474 let BBBlist = ["9pCxoGtD18GeH9gCemzqrjHMMjfyBQDfsrRAuxSRagMc", "7DgFgCkBjVDc5P9ZgwsVL9SiTi7kXJuS4aRVgb7ZHW3k", "76bTvE8ttHvsuN1FuH4Kc8QUW4kL4m8c1cjfsXy2GfbV", "4Zrf4H5tiFcQL8eQmnA2wJ1XWPEBH6h1G2MefZDYmcCB", "2DtC4nFnxz5UM6mbjPwMVZpQWZFUqxs52oZrBeNRk9Ao", "DjZGMAFfoQWkMW3S5FTsQN3joncZt6BsmhnEK3ggLxmN", "BneaZXD6ovDJcV5rgfr8hsHZaMQsJQ8DH6a5gTnGCpBc", "4EKfgzFkd5UGKrjnaJV3w7argW1YmF4hq54xWQFzAXb9", "8hGDkWKiu2igDpWT3Hpr4mchDD6xwJ9hGm2h2jnUvTqz", "E3ZnSejpXL1Xr6VG4QoLh8xod9NMgpPe473r9Qk2HibL"]
7575
7676 func rand (i) = (((((((i.transactionId + i.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(height)) + toBytes(assetBalance(this, burnxtn))) + toBytes(wavesBalance(matcher).available)) + toBytes(assetBalance(this, wx)))
7777
7878
7979 let PZ1 = base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'
8080
8181 let PZ2 = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
8282
8383 let PZ3 = base58'3PBiMQLnX8wd4bssXCgF8KuUqHv1H4zWHGi'
8484
8585 let PZ4 = base58'3PDJPGn6vBEBqWN4E3fNcxoKBoDXbsmoaM7'
8686
8787 let PZ5 = base58'3PCS1xhGQi2eM5mYcCBhUSHvB31Kk5gZoCm'
8888
8989 let PZ6 = base58'3P8Quvmgt3VEWAjBR3bsfgCqzUh7zTmTC4q'
9090
9191 let WXstake = base58'3PPNhHYkkEy13gRWDCaruQyhNbX2GrjYSyV'
9292
9393 let WX1 = base58'3P5vwLbXddLWpsRspftMxLuzfsjk3dLT3n5'
9494
9595 let LP1 = "GyiHdcN59sZ46baFvj68ruLngrTPEvWDtsd6jHm4o46n"
9696
9797 let WX2 = base58'3PKXseWa31VUSWUvm2YiRKxW2VM9RsVk3ry'
9898
9999 let LP2 = "3MPHMJVwYGyeBLRsH1RsYhrTmemv752AEBwuFFV7g49Z"
100100
101101 let PZw1 = base58'3P2myTbd5zpEHcYmNpdWTp5gXS5B8tL1RCY'
102102
103103 func PZbal (Pooladdress,address,asset) = {
104104 let burnxtnInPZ = tryGetInteger(Address(Pooladdress), (("global_" + toBase58String(asset)) + "_balance"))
105105 let addressStakePZ = tryGetInteger(Address(Pooladdress), (toString(address) + "_indexStaked"))
106106 let totalStakePZ = tryGetInteger(Address(Pooladdress), "global_poolToken_amount")
107107 fraction(burnxtnInPZ, addressStakePZ, totalStakePZ)
108108 }
109109
110110
111111 func WXbal (Pooladdress,address,LPstr) = {
112112 let burnxtnInWX = assetBalance(Address(Pooladdress), burnxtn)
113113 let addressStakeWX = tryGetInteger(Address(WXstake), ((("%s%s%s__staked__" + toString(address)) + "__") + LPstr))
114114 let totalStakeWX = tryGetInteger(Address(WXstake), ("%s%s%s__staked__total__" + LPstr))
115115 fraction(burnxtnInWX, addressStakeWX, totalStakeWX)
116116 }
117117
118118
119119 func burnxtnBalance (i) = assetBalance(i.caller, burnxtn)
120120
121121
122122 func totalBalance (address) = {
123123 let burnxtnBalance2 = assetBalance(address, burnxtn)
124124 let PZ1balance = PZbal(PZ1, address, burnxtn)
125125 let PZ2balance = PZbal(PZ2, address, burnxtn)
126126 let PZ3balance = PZbal(PZ3, address, burnxtn)
127127 let PZ4balance = PZbal(PZ4, address, burnxtn)
128128 let PZ5balance = PZbal(PZ5, address, burnxtn)
129129 let PZ6balance = PZbal(PZ6, address, burnxtn)
130130 let WX1balance = WXbal(WX1, address, LP1)
131131 let WX2balance = WXbal(WX2, address, LP2)
132132 ((((((((burnxtnBalance2 + PZ1balance) + PZ2balance) + PZ3balance) + PZ4balance) + PZ5balance) + PZ6balance) + WX1balance) + WX2balance)
133133 }
134134
135135
136136 func totalWhirlpoolBalance (address) = {
137137 let whirlpoolBalance = assetBalance(address, whirlpool)
138138 let PZw1balance = PZbal(PZw1, address, whirlpool)
139139 (whirlpoolBalance + PZw1balance)
140140 }
141141
142142
143143 @Callable(i)
144144 func register () = if (contains(tryGetString(this, keyAddressesRegistered), toString(i.caller)))
145145 then throw("already registered")
146146 else if ((tryGetInteger(this, keyAmountRegistered) >= 90))
147147 then throw("max registered users")
148148 else [IntegerEntry(keyAmountRegistered, (tryGetInteger(this, keyAmountRegistered) + 1)), StringEntry(("Register address: " + toString((tryGetInteger(this, keyAmountRegistered) + 1))), toString(i.caller)), StringEntry(keyAddressesRegistered, ((tryGetString(this, keyAddressesRegistered) + toString(i.caller)) + ",")), IntegerEntry(toString(i.caller), burnxtnBalance(i))]
149149
150150
151151
152152 @Callable(i)
153153 func checkMyEntry () = if ((contains(tryGetString(this, keyAddressesRegistered), toString(i.caller)) == false))
154154 then throw("not yet registered")
155155 else [BooleanEntry("HODL+1", (assetBalance(i.caller, burnxtn) >= (tryGetInteger(this, toString(i.caller)) + minimumIncrease))), IntegerEntry("highest recorded BURN-XTN balance by lottery", (tryGetInteger(this, toString(i.caller)) / d8)), IntegerEntry("current BURN-XTN balance", (burnxtnBalance(i) / d8)), IntegerEntry("required BURN-XTN balance", ((tryGetInteger(this, toString(i.caller)) + minimumIncrease) / d8)), IntegerEntry("entries = total BURN-XTN balance incl liquidity pools", (totalBalance(i.caller) / d8))]
156156
157157
158158
159159 @Callable(i)
160160 func step_1 () = if ((i.caller != this))
161161 then throw("access only by project owner")
162162 else {
163163 let r = invoke(this, "reset", nil, nil)
164164 if ((r == r))
165165 then {
166166 let p = invoke(this, "participants", nil, nil)
167167 if ((p == p))
168168 then {
169169 let u = invoke(this, "updateBalanceEntry", nil, nil)
170170 if ((u == u))
171171 then nil
172172 else throw("Strict value is not equal to itself.")
173173 }
174174 else throw("Strict value is not equal to itself.")
175175 }
176176 else throw("Strict value is not equal to itself.")
177177 }
178178
179179
180180
181181 @Callable(i)
182182 func step_2 () = if ((i.caller != this))
183183 then throw("access only by project owner")
184184 else {
185185 let tba = invoke(this, "totalBalanceAll", nil, nil)
186186 if ((tba == tba))
187187 then {
188188 let tbwa = invoke(this, "totalBalanceWhirlpoolAll", nil, nil)
189189 if ((tbwa == tbwa))
190190 then {
191191 let w = invoke(this, "winner", nil, nil)
192192 if ((w == w))
193193 then {
194194 let in = invoke(this, "invoker", nil, nil)
195195 if ((in == in))
196196 then nil
197197 else throw("Strict value is not equal to itself.")
198198 }
199199 else throw("Strict value is not equal to itself.")
200200 }
201201 else throw("Strict value is not equal to itself.")
202202 }
203203 else throw("Strict value is not equal to itself.")
204204 }
205205
206206
207207
208208 @Callable(i)
209209 func step_3 () = if ((i.caller != this))
210210 then throw("access only by project owner")
211211 else {
212212 let p = invoke(this, "payWinner", nil, nil)
213213 if ((p == p))
214214 then {
215215 let j = invoke(this, "jackpot", nil, nil)
216216 if ((j == j))
217217 then if ((getBooleanValue("jackpot") == false))
218218 then nil
219219 else {
220220 let w = invoke(this, "winnerJackpot", nil, nil)
221221 if ((w == w))
222222 then nil
223223 else throw("Strict value is not equal to itself.")
224224 }
225225 else throw("Strict value is not equal to itself.")
226226 }
227227 else throw("Strict value is not equal to itself.")
228228 }
229229
230230
231231
232232 @Callable(i)
233233 func step_4 () = if ((i.caller != this))
234234 then throw("access only by project owner")
235235 else {
236236 let ji = invoke(this, "jackpotInvoker", nil, nil)
237237 if ((ji == ji))
238238 then {
239239 let pj = invoke(this, "payJackpot", nil, nil)
240240 if ((pj == pj))
241241 then nil
242242 else throw("Strict value is not equal to itself.")
243243 }
244244 else throw("Strict value is not equal to itself.")
245245 }
246246
247247
248248
249249 @Callable(i)
250250 func participants () = if ((i.caller != this))
251251 then throw("access only by project owner")
252252 else if ((getBooleanValue(this, "reset") == false))
253253 then throw("reset first")
254254 else {
255255 let list = split_4C(addresses, ",")
256256 func p (accum,address) = if (((tryGetInteger(this, address) + minimumIncrease) > assetBalance(addressFromStringValue(address), burnxtn)))
257257 then accum
258258 else (accum :+ address)
259259
260260 let participantsList = {
261261 let $l = list
262262 let $s = size($l)
263263 let $acc0 = nil
264264 func $f0_1 ($a,$i) = if (($i >= $s))
265265 then $a
266266 else p($a, $l[$i])
267267
268268 func $f0_2 ($a,$i) = if (($i >= $s))
269269 then $a
270270 else throw("List size exceeds 1000")
271271
272272 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200), 201), 202), 203), 204), 205), 206), 207), 208), 209), 210), 211), 212), 213), 214), 215), 216), 217), 218), 219), 220), 221), 222), 223), 224), 225), 226), 227), 228), 229), 230), 231), 232), 233), 234), 235), 236), 237), 238), 239), 240), 241), 242), 243), 244), 245), 246), 247), 248), 249), 250), 251), 252), 253), 254), 255), 256), 257), 258), 259), 260), 261), 262), 263), 264), 265), 266), 267), 268), 269), 270), 271), 272), 273), 274), 275), 276), 277), 278), 279), 280), 281), 282), 283), 284), 285), 286), 287), 288), 289), 290), 291), 292), 293), 294), 295), 296), 297), 298), 299), 300), 301), 302), 303), 304), 305), 306), 307), 308), 309), 310), 311), 312), 313), 314), 315), 316), 317), 318), 319), 320), 321), 322), 323), 324), 325), 326), 327), 328), 329), 330), 331), 332), 333), 334), 335), 336), 337), 338), 339), 340), 341), 342), 343), 344), 345), 346), 347), 348), 349), 350), 351), 352), 353), 354), 355), 356), 357), 358), 359), 360), 361), 362), 363), 364), 365), 366), 367), 368), 369), 370), 371), 372), 373), 374), 375), 376), 377), 378), 379), 380), 381), 382), 383), 384), 385), 386), 387), 388), 389), 390), 391), 392), 393), 394), 395), 396), 397), 398), 399), 400), 401), 402), 403), 404), 405), 406), 407), 408), 409), 410), 411), 412), 413), 414), 415), 416), 417), 418), 419), 420), 421), 422), 423), 424), 425), 426), 427), 428), 429), 430), 431), 432), 433), 434), 435), 436), 437), 438), 439), 440), 441), 442), 443), 444), 445), 446), 447), 448), 449), 450), 451), 452), 453), 454), 455), 456), 457), 458), 459), 460), 461), 462), 463), 464), 465), 466), 467), 468), 469), 470), 471), 472), 473), 474), 475), 476), 477), 478), 479), 480), 481), 482), 483), 484), 485), 486), 487), 488), 489), 490), 491), 492), 493), 494), 495), 496), 497), 498), 499), 500), 501), 502), 503), 504), 505), 506), 507), 508), 509), 510), 511), 512), 513), 514), 515), 516), 517), 518), 519), 520), 521), 522), 523), 524), 525), 526), 527), 528), 529), 530), 531), 532), 533), 534), 535), 536), 537), 538), 539), 540), 541), 542), 543), 544), 545), 546), 547), 548), 549), 550), 551), 552), 553), 554), 555), 556), 557), 558), 559), 560), 561), 562), 563), 564), 565), 566), 567), 568), 569), 570), 571), 572), 573), 574), 575), 576), 577), 578), 579), 580), 581), 582), 583), 584), 585), 586), 587), 588), 589), 590), 591), 592), 593), 594), 595), 596), 597), 598), 599), 600), 601), 602), 603), 604), 605), 606), 607), 608), 609), 610), 611), 612), 613), 614), 615), 616), 617), 618), 619), 620), 621), 622), 623), 624), 625), 626), 627), 628), 629), 630), 631), 632), 633), 634), 635), 636), 637), 638), 639), 640), 641), 642), 643), 644), 645), 646), 647), 648), 649), 650), 651), 652), 653), 654), 655), 656), 657), 658), 659), 660), 661), 662), 663), 664), 665), 666), 667), 668), 669), 670), 671), 672), 673), 674), 675), 676), 677), 678), 679), 680), 681), 682), 683), 684), 685), 686), 687), 688), 689), 690), 691), 692), 693), 694), 695), 696), 697), 698), 699), 700), 701), 702), 703), 704), 705), 706), 707), 708), 709), 710), 711), 712), 713), 714), 715), 716), 717), 718), 719), 720), 721), 722), 723), 724), 725), 726), 727), 728), 729), 730), 731), 732), 733), 734), 735), 736), 737), 738), 739), 740), 741), 742), 743), 744), 745), 746), 747), 748), 749), 750), 751), 752), 753), 754), 755), 756), 757), 758), 759), 760), 761), 762), 763), 764), 765), 766), 767), 768), 769), 770), 771), 772), 773), 774), 775), 776), 777), 778), 779), 780), 781), 782), 783), 784), 785), 786), 787), 788), 789), 790), 791), 792), 793), 794), 795), 796), 797), 798), 799), 800), 801), 802), 803), 804), 805), 806), 807), 808), 809), 810), 811), 812), 813), 814), 815), 816), 817), 818), 819), 820), 821), 822), 823), 824), 825), 826), 827), 828), 829), 830), 831), 832), 833), 834), 835), 836), 837), 838), 839), 840), 841), 842), 843), 844), 845), 846), 847), 848), 849), 850), 851), 852), 853), 854), 855), 856), 857), 858), 859), 860), 861), 862), 863), 864), 865), 866), 867), 868), 869), 870), 871), 872), 873), 874), 875), 876), 877), 878), 879), 880), 881), 882), 883), 884), 885), 886), 887), 888), 889), 890), 891), 892), 893), 894), 895), 896), 897), 898), 899), 900), 901), 902), 903), 904), 905), 906), 907), 908), 909), 910), 911), 912), 913), 914), 915), 916), 917), 918), 919), 920), 921), 922), 923), 924), 925), 926), 927), 928), 929), 930), 931), 932), 933), 934), 935), 936), 937), 938), 939), 940), 941), 942), 943), 944), 945), 946), 947), 948), 949), 950), 951), 952), 953), 954), 955), 956), 957), 958), 959), 960), 961), 962), 963), 964), 965), 966), 967), 968), 969), 970), 971), 972), 973), 974), 975), 976), 977), 978), 979), 980), 981), 982), 983), 984), 985), 986), 987), 988), 989), 990), 991), 992), 993), 994), 995), 996), 997), 998), 999), 1000)
273273 }
274274 let participantsListString = makeString(participantsList, ",")
275275 [StringEntry(keyParticipants, participantsListString), IntegerEntry("list size", size(participantsList))]
276276 }
277277
278278
279279
280280 @Callable(i)
281281 func updateBalanceEntry () = if ((i.caller != this))
282282 then throw("access only by project owner")
283283 else if ((getBooleanValue(this, "reset") == false))
284284 then throw("reset first")
285285 else {
286286 let list = split_4C(tryGetString(this, keyParticipants), ",")
287287 func bal (accum,address) = (accum ++ [IntegerEntry(address, assetBalance(addressFromStringValue(address), burnxtn))])
288288
289289 let updateBalance = {
290290 let $l = list
291291 let $s = size($l)
292292 let $acc0 = nil
293293 func $f0_1 ($a,$i) = if (($i >= $s))
294294 then $a
295295 else bal($a, $l[$i])
296296
297297 func $f0_2 ($a,$i) = if (($i >= $s))
298298 then $a
299299 else throw("List size exceeds 100")
300300
301301 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
302302 }
303303 (nil ++ updateBalance)
304304 }
305305
306306
307307
308308 @Callable(i)
309309 func totalBalanceAll () = if ((i.caller != this))
310310 then throw("access only by project owner")
311311 else if ((getBooleanValue(this, "reset") == false))
312312 then throw("reset first")
313313 else {
314314 let list = split_4C(tryGetString(this, keyParticipants), ",")
315315 func ba (accum,address) = (accum + totalBalance(addressFromStringValue(address)))
316316
317317 let enterTotalBalanceAll = {
318318 let $l = list
319319 let $s = size($l)
320320 let $acc0 = 0
321321 func $f0_1 ($a,$i) = if (($i >= $s))
322322 then $a
323323 else ba($a, $l[$i])
324324
325325 func $f0_2 ($a,$i) = if (($i >= $s))
326326 then $a
327327 else throw("List size exceeds 100")
328328
329329 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
330330 }
331331 [IntegerEntry("total balance all", enterTotalBalanceAll)]
332332 }
333333
334334
335335
336336 @Callable(i)
337337 func totalBalanceWhirlpoolAll () = if ((i.caller != this))
338338 then throw("access only by project owner")
339339 else if ((getBooleanValue(this, "reset") == false))
340340 then throw("reset first")
341341 else {
342342 let list = split_4C(tryGetString(this, keyParticipants), ",")
343343 func ba (accum,address) = (accum + totalWhirlpoolBalance(addressFromStringValue(address)))
344344
345345 let enterTotalBalanceAll = {
346346 let $l = list
347347 let $s = size($l)
348348 let $acc0 = 0
349349 func $f0_1 ($a,$i) = if (($i >= $s))
350350 then $a
351351 else ba($a, $l[$i])
352352
353353 func $f0_2 ($a,$i) = if (($i >= $s))
354354 then $a
355355 else throw("List size exceeds 100")
356356
357357 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
358358 }
359359 [IntegerEntry("total balance Whirlpool all", enterTotalBalanceAll)]
360360 }
361361
362362
363363
364364 @Callable(i)
365365 func winner () = if ((i.caller != this))
366366 then throw("access only by project owner")
367367 else if ((getBooleanValue(this, "reset") == false))
368368 then throw("reset first")
369369 else {
370370 let claimInv = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
371371 if ((claimInv == claimInv))
372372 then {
373373 let randHash = sha256(rand(i))
374374 let randHashInt = toInt(randHash)
375375 let result = if ((0 > randHashInt))
376376 then (-1 * randHashInt)
377377 else randHashInt
378378 [BinaryEntry("rand winner", rand(i)), BinaryEntry("randhash winner", randHash), IntegerEntry("randhash int winner", result), IntegerEntry("result remainder winner", ((result % getIntegerValue("total balance all")) + 1))]
379379 }
380380 else throw("Strict value is not equal to itself.")
381381 }
382382
383383
384384
385385 @Callable(i)
386386 func invoker () = if ((i.caller != this))
387387 then throw("access only by project owner")
388388 else {
389389 let list = split_4C(tryGetString(this, keyParticipants), ",")
390390 func r (accum,address) = invoke(this, "winnerAddress", [address], nil)
391391
392392 let invoker = {
393393 let $l = list
394394 let $s = size($l)
395395 let $acc0 = nil
396396 func $f0_1 ($a,$i) = if (($i >= $s))
397397 then $a
398398 else r($a, $l[$i])
399399
400400 func $f0_2 ($a,$i) = if (($i >= $s))
401401 then $a
402402 else throw("List size exceeds 100")
403403
404404 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
405405 }
406406 if ((invoker == invoker))
407407 then nil
408408 else throw("Strict value is not equal to itself.")
409409 }
410410
411411
412412
413413 @Callable(i)
414414 func winnerAddress (address) = if ((i.caller != this))
415415 then throw("access only by project owner")
416416 else if ((tryGetInteger(this, keyTotalBalanceCount) >= tryGetInteger(this, "result remainder winner")))
417417 then nil
418418 else {
419419 let count = totalBalance(addressFromStringValue(address))
420420 if (((tryGetInteger(this, keyTotalBalanceCount) + count) >= tryGetInteger(this, "result remainder winner")))
421421 then [IntegerEntry(keyTotalBalanceCount, (tryGetInteger(this, keyTotalBalanceCount) + count)), StringEntry("winner address", address)]
422422 else [IntegerEntry(keyTotalBalanceCount, (tryGetInteger(this, keyTotalBalanceCount) + count))]
423423 }
424424
425425
426426
427427 @Callable(i)
428428 func payWinner () = if ((i.caller != this))
429429 then throw("access only by project owner")
430430 else {
431431 let burnxtnBalanceBefore = assetBalance(this, burnxtn)
432432 if ((burnxtnBalanceBefore == burnxtnBalanceBefore))
433433 then {
434434 let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))])
435435 if ((swest == swest))
436436 then {
437437 let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))])
438438 if ((svires == svires))
439439 then {
440440 let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))])
441441 if ((segg == segg))
442442 then {
443443 let ssurf = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(surfId, if (((assetBalance(this, surfId) - d6) > 0))
444444 then (assetBalance(this, surfId) - d6)
445445 else 0)])
446446 if ((ssurf == ssurf))
447447 then {
448448 let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
449449 if ((snsbt == snsbt))
450450 then {
451451 let swx = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(wxId, assetBalance(this, wxId))])
452452 if ((swx == swx))
453453 then {
454454 let sswop = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(swopId, assetBalance(this, swopId))])
455455 if ((sswop == sswop))
456456 then {
457457 let sxtn = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(xtn, assetBalance(this, xtn))])
458458 if ((sxtn == sxtn))
459459 then {
460460 let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
461461 then (wavesBalance(this).available - d8)
462462 else 0)])
463463 if ((swapwaves == swapwaves))
464464 then {
465465 let burnxtnBalanceAfter = assetBalance(this, burnxtn)
466466 let prizeAmount = fraction((burnxtnBalanceAfter - burnxtnBalanceBefore), 80, 100)
467467 if ((prizeAmount == prizeAmount))
468468 then {
469469 let winnerAddress = addressFromStringValue(getStringValue(this, "winner address"))
470470 let bonus = fraction((burnxtnBalanceAfter - burnxtnBalanceBefore), 10, 100)
471471 let bonusAmount = fraction(bonus, totalWhirlpoolBalance(winnerAddress), tryGetInteger(this, "total balance Whirlpool all"))
472472 if ((bonusAmount == bonusAmount))
473473 then {
474474 let surfBurnAmount = if ((d6 > assetBalance(this, surfId)))
475475 then assetBalance(this, surfId)
476476 else d6
477477 let surfBurn = Burn(surfId, surfBurnAmount)
478478 func foldFunc (acc,WFS) = (acc + assetBalance(winnerAddress, fromBase58String(WFS)))
479479
480480 let shareWFS = {
481481 let $l = WFSlist
482482 let $s = size($l)
483483 let $acc0 = 0
484484 func $f0_1 ($a,$i) = if (($i >= $s))
485485 then $a
486486 else foldFunc($a, $l[$i])
487487
488488 func $f0_2 ($a,$i) = if (($i >= $s))
489489 then $a
490490 else throw("List size exceeds 10")
491491
492492 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
493493 }
494494 let WFSbonus = fraction(prizeAmount, 125, 10000)
495495 func foldFuncB (acc,BBB) = (acc + assetBalance(winnerAddress, fromBase58String(BBB)))
496496
497497 let shareBBB = {
498498 let $l = BBBlist
499499 let $s = size($l)
500500 let $acc0 = 0
501501 func $f1_1 ($a,$i) = if (($i >= $s))
502502 then $a
503503 else foldFuncB($a, $l[$i])
504504
505505 func $f1_2 ($a,$i) = if (($i >= $s))
506506 then $a
507507 else throw("List size exceeds 10")
508508
509509 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
510510 }
511511 let BBBbonus = fraction(prizeAmount, (125 * 9), 1000)
512512 [BooleanEntry("reset", false), surfBurn, IntegerEntry("SURF total burned", (tryGetInteger(this, "SURF total burned") + surfBurnAmount)), IntegerEntry("guaranteed prize", prizeAmount), ScriptTransfer(winnerAddress, prizeAmount, burnxtn), IntegerEntry("Whirlpool bonus prize", bonusAmount), ScriptTransfer(winnerAddress, bonusAmount, burnxtn), IntegerEntry("WFS 1.25% NFT bonus", if ((shareWFS > 0))
513513 then WFSbonus
514514 else 0), ScriptTransfer(winnerAddress, if ((shareWFS > 0))
515515 then WFSbonus
516516 else 0, burnxtn), IntegerEntry("BBB 11.25% NFT bonus", if ((shareBBB > 0))
517517 then BBBbonus
518518 else 0), ScriptTransfer(winnerAddress, if ((shareBBB > 0))
519519 then BBBbonus
520520 else 0, burnxtn)]
521521 }
522522 else throw("Strict value is not equal to itself.")
523523 }
524524 else throw("Strict value is not equal to itself.")
525525 }
526526 else throw("Strict value is not equal to itself.")
527527 }
528528 else throw("Strict value is not equal to itself.")
529529 }
530530 else throw("Strict value is not equal to itself.")
531531 }
532532 else throw("Strict value is not equal to itself.")
533533 }
534534 else throw("Strict value is not equal to itself.")
535535 }
536536 else throw("Strict value is not equal to itself.")
537537 }
538538 else throw("Strict value is not equal to itself.")
539539 }
540540 else throw("Strict value is not equal to itself.")
541541 }
542542 else throw("Strict value is not equal to itself.")
543543 }
544544 else throw("Strict value is not equal to itself.")
545545 }
546546
547547
548548
549549 @Callable(i)
550550 func jackpot () = if ((i.caller != this))
551551 then throw("access only by project owner")
552552 else {
553553 let randHash = sha256((rand(i) + getBinaryValue("randhash winner")))
554554 let randHashInt = toInt(randHash)
555555 let result = if ((0 > randHashInt))
556556 then (-1 * randHashInt)
557557 else randHashInt
558558 [BinaryEntry("rand jackpot", rand(i)), BinaryEntry("randhash jackpot", randHash), IntegerEntry("randhash int jackpot", result), IntegerEntry("result remainder jackpot", (result % 52)), if (((result % 52) == 0))
559559 then BooleanEntry("jackpot", true)
560560 else BooleanEntry("jackpot", false)]
561561 }
562562
563563
564564
565565 @Callable(i)
566566 func winnerJackpot () = if ((i.caller != this))
567567 then throw("access only by project owner")
568568 else {
569569 let randHash = sha256((rand(i) + getBinaryValue("randhash jackpot")))
570570 let randHashInt = toInt(randHash)
571571 let result = if ((0 > randHashInt))
572572 then (-1 * randHashInt)
573573 else randHashInt
574574 [BinaryEntry("rand winner", rand(i)), BinaryEntry("randhash winner", randHash), IntegerEntry("randhash int winner", result), IntegerEntry("result remainder winner", ((result % getIntegerValue("total balance all")) + 1))]
575575 }
576576
577577
578578
579579 @Callable(i)
580580 func jackpotInvoker () = if ((i.caller != this))
581581 then throw("access only by project owner")
582582 else {
583583 let list = split_4C(tryGetString(this, keyParticipants), ",")
584584 func r (accum,address) = invoke(this, "jackpotAddress", [address], nil)
585585
586586 let invoker = {
587587 let $l = list
588588 let $s = size($l)
589589 let $acc0 = nil
590590 func $f0_1 ($a,$i) = if (($i >= $s))
591591 then $a
592592 else r($a, $l[$i])
593593
594594 func $f0_2 ($a,$i) = if (($i >= $s))
595595 then $a
596596 else throw("List size exceeds 100")
597597
598598 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
599599 }
600600 if ((invoker == invoker))
601601 then nil
602602 else throw("Strict value is not equal to itself.")
603603 }
604604
605605
606606
607607 @Callable(i)
608608 func jackpotAddress (address) = if ((i.caller != this))
609609 then throw("access only by project owner")
610610 else if ((tryGetInteger(this, keyTotalBalanceJackpotCount) >= tryGetInteger(this, "result remainder winner")))
611611 then nil
612612 else {
613613 let count = totalBalance(addressFromStringValue(address))
614614 if (((tryGetInteger(this, keyTotalBalanceJackpotCount) + count) >= tryGetInteger(this, "result remainder winner")))
615615 then [IntegerEntry(keyTotalBalanceJackpotCount, (tryGetInteger(this, keyTotalBalanceJackpotCount) + count)), StringEntry("jackpot address", address)]
616616 else [IntegerEntry(keyTotalBalanceJackpotCount, (tryGetInteger(this, keyTotalBalanceJackpotCount) + count))]
617617 }
618618
619619
620620
621621 @Callable(i)
622622 func payJackpot () = if ((i.caller != this))
623623 then throw("access only by project owner")
624624 else if ((getBooleanValue("jackpot") == false))
625625 then throw("no jackpot")
626626 else {
627627 let prizeAmount = fraction(assetBalance(this, burnxtn), 40, 100)
628628 if ((prizeAmount == prizeAmount))
629629 then {
630630 let bonus = fraction(assetBalance(this, burnxtn), 5, 100)
631631 let bonusAmount = fraction(bonus, totalWhirlpoolBalance(addressFromStringValue(getStringValue(this, "jackpot address"))), tryGetInteger(this, "total balance Whirlpool all"))
632632 if ((bonusAmount == bonusAmount))
633633 then {
634634 let winnerAddress = addressFromStringValue(getStringValue(this, "jackpot address"))
635635 func foldFunc (acc,WFS) = (acc + assetBalance(winnerAddress, fromBase58String(WFS)))
636636
637637 let shareWFS = {
638638 let $l = WFSlist
639639 let $s = size($l)
640640 let $acc0 = 0
641641 func $f0_1 ($a,$i) = if (($i >= $s))
642642 then $a
643643 else foldFunc($a, $l[$i])
644644
645645 func $f0_2 ($a,$i) = if (($i >= $s))
646646 then $a
647647 else throw("List size exceeds 10")
648648
649649 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
650650 }
651651 let WFSbonus = fraction(prizeAmount, 125, 10000)
652652 func foldFuncB (acc,BBB) = (acc + assetBalance(winnerAddress, fromBase58String(BBB)))
653653
654654 let shareBBB = {
655655 let $l = BBBlist
656656 let $s = size($l)
657657 let $acc0 = 0
658658 func $f1_1 ($a,$i) = if (($i >= $s))
659659 then $a
660660 else foldFuncB($a, $l[$i])
661661
662662 func $f1_2 ($a,$i) = if (($i >= $s))
663663 then $a
664664 else throw("List size exceeds 10")
665665
666666 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
667667 }
668668 let BBBbonus = fraction(prizeAmount, (125 * 9), 10000)
669669 [IntegerEntry("jackpot prize", prizeAmount), ScriptTransfer(winnerAddress, prizeAmount, burnxtn), IntegerEntry("Whirlpool bonus prize", bonusAmount), ScriptTransfer(winnerAddress, bonusAmount, burnxtn), IntegerEntry("WFS 1.25% NFT bonus", if ((shareWFS > 0))
670670 then WFSbonus
671671 else 0), ScriptTransfer(winnerAddress, if ((shareWFS > 0))
672672 then WFSbonus
673673 else 0, burnxtn), IntegerEntry("BBB 11.25% NFT bonus", if ((shareBBB > 0))
674674 then BBBbonus
675675 else 0), ScriptTransfer(winnerAddress, if ((shareBBB > 0))
676676 then BBBbonus
677677 else 0, burnxtn)]
678678 }
679679 else throw("Strict value is not equal to itself.")
680680 }
681681 else throw("Strict value is not equal to itself.")
682682 }
683683
684684
685685
686686 @Callable(i)
687687 func reset () = if ((i.caller != this))
688688 then throw("access only by project owner")
689689 else [IntegerEntry(keyTotalBalanceCount, 0), IntegerEntry(keyTotalBalanceJackpotCount, 0), BooleanEntry("jackpot", false), BooleanEntry("reset", true)]
690690
691691
692692
693693 @Callable(i)
694694 func sponsorWinner () = if ((i.caller != this))
695695 then throw("access only by project owner")
696696 else {
697697 let randHash = sha256((rand(i) + getBinaryValue("randhash jackpot")))
698698 let randHashInt = toInt(randHash)
699699 let result = if ((0 > randHashInt))
700700 then (-1 * randHashInt)
701701 else randHashInt
702702 let totalSponsor = ((getIntegerValue("total balance all") - totalBalance(addressFromStringValue(tryGetString(this, "winner address")))) - (if ((tryGetString(this, "jackpot address") == ""))
703703 then 0
704704 else totalBalance(addressFromStringValue(tryGetString(this, "jackpot address")))))
705705 [BinaryEntry("rand winner", rand(i)), BinaryEntry("randhash winner", randHash), IntegerEntry("randhash int winner", result), IntegerEntry("result remainder winner", ((result % totalSponsor) + 1)), IntegerEntry(keyTotalSponsor, totalSponsor)]
706706 }
707707
708708
709709
710710 @Callable(i)
711711 func sponsorInvoker () = if ((i.caller != this))
712712 then throw("access only by project owner")
713713 else {
714714 let list = split_4C(tryGetString(this, keyParticipants), ",")
715715 let winnerIndex = value(indexOf(list, tryGetString(this, "winner address")))
716716 let listMinusWinner = removeByIndex(list, winnerIndex)
717717 func r (accum,address) = invoke(this, "sponsorWinnerAddress", [address], nil)
718718
719719 let invoker = {
720- let $l = list
720+ let $l = listMinusWinner
721721 let $s = size($l)
722722 let $acc0 = nil
723723 func $f0_1 ($a,$i) = if (($i >= $s))
724724 then $a
725725 else r($a, $l[$i])
726726
727727 func $f0_2 ($a,$i) = if (($i >= $s))
728728 then $a
729729 else throw("List size exceeds 100")
730730
731731 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 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), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
732732 }
733733 if ((invoker == invoker))
734734 then nil
735735 else throw("Strict value is not equal to itself.")
736736 }
737737
738738
739739
740740 @Callable(i)
741741 func sponsorWinnerAddress (address) = if ((i.caller != this))
742742 then throw("access only by project owner")
743743 else if ((tryGetInteger(this, keyTotalBalanceSponsorCount) >= tryGetInteger(this, "result remainder winner")))
744744 then nil
745745 else {
746746 let count = totalBalance(addressFromStringValue(address))
747747 if (((tryGetInteger(this, keyTotalBalanceSponsorCount) + count) >= tryGetInteger(this, "result remainder winner")))
748748 then [IntegerEntry(keyTotalBalanceSponsorCount, (tryGetInteger(this, keyTotalBalanceSponsorCount) + count)), StringEntry("sponsor winner address", address)]
749749 else [IntegerEntry(keyTotalBalanceSponsorCount, (tryGetInteger(this, keyTotalBalanceSponsorCount) + count))]
750750 }
751751
752752
753753
754754 @Callable(i)
755755 func paySponsorWinner (amount,assetId) = if ((i.caller != this))
756756 then throw("access only by project owner")
757757 else {
758758 let winnerAddress = addressFromStringValue(getStringValue(this, "sponsor winner address"))
759759 let decimals = match assetInfo(fromBase58String(assetId)) {
760760 case asset: Asset =>
761761 asset.decimals
762762 case _ =>
763763 throw("Can't find asset")
764764 }
765765 let prizeAmount = amount
766766 [ScriptTransfer(winnerAddress, prizeAmount, fromBase58String(assetId))]
767767 }
768768
769769

github/deemru/w8io/3ef1775 
288.83 ms