tx · AYUBKTPAkcFxRkFX2JBekR53yorKyirb9Dxh7VdhCZqj 3MvJDKBFzztnd7KCU78zgJ8qUuzVux4c9yw: -0.03900000 Waves 2022.10.24 17:12 [2286595] smart account 3MvJDKBFzztnd7KCU78zgJ8qUuzVux4c9yw > SELF 0.00000000 Waves
{ "type": 13, "id": "AYUBKTPAkcFxRkFX2JBekR53yorKyirb9Dxh7VdhCZqj", "fee": 3900000, "feeAssetId": null, "timestamp": 1666620731552, "version": 2, "chainId": 84, "sender": "3MvJDKBFzztnd7KCU78zgJ8qUuzVux4c9yw", "senderPublicKey": "9gVuyFNzke49pnadJxJ312ZWhYudDhdcqP5hsm5pGQw6", "proofs": [ "5z5Y5qUnLP7SSJubCqyRdtDkvrmvUimzyhffVLBRL61zEnmXP9VdbC94KG4Rc1ftSiCwDtNsvz47kVBfzXqF7usU" ], "script": "base64:BgJCCAISAwoBCBIDCgEIEgYKBAgBAQgSBQoDCAEIEgUKAwgIARIECgIIARIDCgEIEgMKAQgSABIECgIIBBIECgIIBBIANQAJdW5kZWZpbmVkAgl1bmRlZmluZWQACXNlcGFyYXRvcgIBOwAQY29uZmlnQWRkcmVzc0tleQIGY29uZmlnABNjb2xsZWN0b3JBZGRyZXNzS2V5AhFjb2xsZWN0b3JfYWRkcmVzcwARaGlzdG9yeUFkZHJlc3NLZXkCD2hpc3RvcnlfYWRkcmVzcwAScGF5bWFrZXJBZGRyZXNzS2V5AhBwYXltYWtlcl9hZGRyZXNzAAlhZG1pbnNLZXkCBmFkbWlucwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUQY29uZmlnQWRkcmVzc0tleQAQY29sbGVjdG9yQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUNY29uZmlnQWRkcmVzcwUTY29sbGVjdG9yQWRkcmVzc0tleQAOaGlzdG9yeUFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MFEWhpc3RvcnlBZGRyZXNzS2V5AA9wYXltYWtlckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDWNvbmZpZ0FkZHJlc3MFEnBheW1ha2VyQWRkcmVzc0tleQEHaXNBZG1pbgEGY2FsbGVyBAZhZG1Sb3cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwUJYWRtaW5zS2V5AgADAwkAAAIFBmNhbGxlcgUEdGhpcwYJAQhjb250YWlucwIFBmFkbVJvdwkApQgBBQZjYWxsZXIGBwENZ2V0Q2hlY2tlcktleQEHY2hlY2tlcgkArAICAghjaGVja2VyXwUHY2hlY2tlcgEJaXNDaGVja2VyAQdjaGVja2VyBAhpc0V4aXN0cwkBCWlzRGVmaW5lZAEJAJsIAgUNY29uZmlnQWRkcmVzcwkBDWdldENoZWNrZXJLZXkBBQdjaGVja2VyBQhpc0V4aXN0cwAEVVNETgEgGGZ0QdDy2SHIR4lDSQpxrV4T1zujQWaCMAUlxPMvs9AACW1pbkFtb3VudACAreIEAAxmZWVOdW1lcmF0b3IABQAOZmVlRGVub21pbmF0b3IAZAAObWF4QmV0c09uUHJpY2UAAwANZmlyc3RFdmVudEtleQILZmlyc3RfZXZlbnQADGxhc3RFdmVudEtleQIKbGFzdF9ldmVudAAVZmlzcnRGaW5pc2hlZEV2ZW50S2V5AhRmaXJzdF9maW5pc2hlZF9ldmVudAAUbGFzdEZpbmlzaGVkRXZlbnRLZXkCE2xhc3RfZmluaXNoZWRfZXZlbnQAE2Zpc3J0QWN0aXZlRXZlbnRLZXkCEmZpcnN0X2FjdGl2ZV9ldmVudAASbGFzdEFjdGl2ZUV2ZW50S2V5AhFsYXN0X2FjdGl2ZV9ldmVudAEQZ2V0U3RhcnRCbG9ja0tleQEHZXZlbnRJZAkArAICBQdldmVudElkAgxfc3RhcnRfYmxvY2sBDmdldEVuZEJsb2NrS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCCl9lbmRfYmxvY2sBDmdldEZpbmlzaEF0S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCEF9maW5pc2hfYXRfYmxvY2sBCGdldElkS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCA19pZAEMZ2V0U3RhdHVzS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCB19zdGF0dXMBCmdldERlc2NLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIMX2Rlc2NyaXB0aW9uAQ9nZXRQcmV2RXZlbnRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAILX3ByZXZfZXZlbnQBD2dldE5leHRFdmVudEtleQEHZXZlbnRJZAkArAICBQdldmVudElkAgtfbmV4dF9ldmVudAENZ2V0QXNzZXRJZEtleQEHZXZlbnRJZAkArAICBQdldmVudElkAglfYXNzZXRfaWQBEWdldFRvdGFsQW1vdW50S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCDV90b3RhbF9hbW91bnQBF2dldFByaWNlc0dyb3Vwc0NvdW50S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCE19wcmljZXNfZ3JvdXBfY291bnQBFmdldFByaWNlc0xpc3RzQ291bnRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAISX3ByaWNlc19saXN0X2NvdW50ARFnZXRQcmljZXNMaXN0TktleQIHZXZlbnRJZAFuCQCsAgIJAKwCAgUHZXZlbnRJZAINX3ByaWNlc19saXN0XwkApAMBBQFuARFnZXRQcmljZUJldHNDb3VudAIHZXZlbnRJZAVwcmljZQkArAICCQCsAgIJAKwCAgUHZXZlbnRJZAIBXwkApAMBBQVwcmljZQILX2JldHNfY291bnQBEmdldFByaWNlQWRkcmVzc0tleQIHZXZlbnRJZAdhZGRyZXNzCQCsAgIJAKwCAgkArAICBQdldmVudElkAgFfBQdhZGRyZXNzAgZfcHJpY2UBEWdldFJlc3VsdFByaWNlS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCDV9wcmljZV9yZXN1bHQBE2dldFRlbXBXaW5QcmljZXNLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIQX3ByaWNlc193aW5fdGVtcAEPZ2V0V2luUHJpY2VzS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCC19wcmljZXNfd2luARhnZXRXaW5QcmljZXNDb21wbGV0ZWRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIVX3ByaWNlc193aW5fY29tcGxldGVkASBnZXRQcmljZXNHcm91cHNDb21wbGV0ZWRDb3VudEtleQEHZXZlbnRJZAkArAICBQdldmVudElkAh1fcHJpY2VzX2dyb3VwX2NvbXBsZXRlZF9jb3VudAEYZ2V0V2luUHJpY2VQZXJjZW50YWdlS2V5AgdldmVudElkBXByaWNlCQCsAgIJAKwCAgkArAICBQdldmVudElkAgVfd2luXwkApAMBBQVwcmljZQILX3BlcmNlbnRhZ2UBEmdldFBlcmNlbnRhZ2VDb3VudAIHZXZlbnRJZAdwZXJjZW50CQCsAgIJAKwCAgkArAICBQdldmVudElkAgFfCQCkAwEFB3BlcmNlbnQCDl9wZXJjZW50X2NvdW50AQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAgQjZXJyAQhhc1N0cmluZwEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgJAAIBAgQjZXJyAQ1hc1N0cmluZ0FycmF5AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACBFVuaXQEAXgFByRtYXRjaDAFA25pbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXkFByRtYXRjaDAJALwJAgUBeQUJc2VwYXJhdG9yCQACAQIEI2VycgEMZ2V0QXNzZXRJbmZvAQhhc3NldFN0cgQHYXNzZXRJZAkA2QQBBQhhc3NldFN0cgQBeAQHJG1hdGNoMAkA7AcBBQdhc3NldElkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAkAlAoCBQhhc3NldFN0cggFBWFzc2V0CGRlY2ltYWxzCQCUCgICBVdBVkVTAAAFAXgBCWdldFN0YXR1cwEHZXZlbnRJZAQGc3RhdHVzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQEMZ2V0U3RhdHVzS2V5AQUHZXZlbnRJZAMDAwkAAAIFBnN0YXR1cwIIZmluaXNoZWQGCQAAAgUGc3RhdHVzAgEjBgkAAAIFBnN0YXR1cwIFZW5kZWQFBnN0YXR1cwQIZmluaXNoQXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ5nZXRGaW5pc2hBdEtleQEFB2V2ZW50SWQECnN0YXJ0QmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJARBnZXRTdGFydEJsb2NrS2V5AQUHZXZlbnRJZAQIZW5kQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ5nZXRFbmRCbG9ja0tleQEFB2V2ZW50SWQDCQBmAgUKc3RhcnRCbG9jawUGaGVpZ2h0Aghhd2FpdGluZwMDCQBnAgUGaGVpZ2h0BQpzdGFydEJsb2NrCQBnAgUIZW5kQmxvY2sFBmhlaWdodAcCBmFjdGl2ZQMDCQBmAgUGaGVpZ2h0BQhlbmRCbG9jawkAZwIFCGZpbmlzaEF0BQZoZWlnaHQHAgxjb25maXJtYXRpb24DCQBmAgUGaGVpZ2h0BQhmaW5pc2hBdAIIZmluaXNoZWQJAAIBAg51bmtub3duIHN0YXR1cwENcmVnaXN0ZXJFdmVudAYEdHhpZARkZXNjCnN0YXJ0QmxvY2sIZW5kQmxvY2sIZmluaXNoQXQIYXNzZXRTdHIEB2V2ZW50SWQFBHR4aWQEBmluc2VydAkA/AcEBQR0aGlzAgxpbnNlcnRUb0xpc3QJAMwIAgUHZXZlbnRJZAkAzAgCBgUDbmlsBQNuaWwDCQAAAgUGaW5zZXJ0BQZpbnNlcnQEBmNvbmNhdAkA/AcEBQR0aGlzAgtjb25jYXRMaXN0cwUDbmlsBQNuaWwDCQAAAgUGY29uY2F0BQZjb25jYXQECyR0MDU1ODM1NjM2CQEMZ2V0QXNzZXRJbmZvAQUIYXNzZXRTdHIEB2Fzc2V0SWQIBQskdDA1NTgzNTYzNgJfMQQNYXNzZXREZWNpbWFscwgFCyR0MDU1ODM1NjM2Al8yCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQZ2V0U3RhcnRCbG9ja0tleQEFB2V2ZW50SWQFCnN0YXJ0QmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRFbmRCbG9ja0tleQEFB2V2ZW50SWQFCGVuZEJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOZ2V0RmluaXNoQXRLZXkBBQdldmVudElkBQhmaW5pc2hBdAkAzAgCCQELU3RyaW5nRW50cnkCCQEKZ2V0RGVzY0tleQEFB2V2ZW50SWQFBGRlc2MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGdldFN0YXR1c0tleQEFB2V2ZW50SWQCA25ldwkAzAgCCQELU3RyaW5nRW50cnkCCQEIZ2V0SWRLZXkBBQdldmVudElkBQdldmVudElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1nZXRBc3NldElkS2V5AQUHZXZlbnRJZAUHYXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuDAFpAQRpbml0AQZjb25maWcDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhBvbmx5IG1haW4gY2FuIGRvBAhpc0V4aXN0cwkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUQY29uZmlnQWRkcmVzc0tleQMJAQEhAQUIaXNFeGlzdHMJAMwIAgkBC1N0cmluZ0VudHJ5AgUQY29uZmlnQWRkcmVzc0tleQUGY29uZmlnBQNuaWwJAAIBAg5hbHJlYWR5IGluaXRlZAFpAQ1hcHBlbmRFdmVudGVyAQRkZXNjAwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvBANpbnYJAPwHBAUNY29uZmlnQWRkcmVzcwIKc2V0RXZlbnRlcgkAzAgCCQClCAEFBHRoaXMJAMwIAgUEZGVzYwUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFmdWxsUmVnaXN0ZXJFdmVudAQEZGVzYwpzdGFydEJsb2NrCGR1cmF0aW9uCGFzc2V0U3RyBA1uZXdTdGFydEJsb2NrAwkAAAIFCnN0YXJ0QmxvY2sAAAUGaGVpZ2h0BQpzdGFydEJsb2NrBAhlbmRCbG9jawkAZAIFDW5ld1N0YXJ0QmxvY2sFCGR1cmF0aW9uBAhmaW5pc2hBdAkAZAIFCGVuZEJsb2NrAKALAwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvBAR0eGlkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAQ1yZWdpc3RlckV2ZW50BgUEdHhpZAUEZGVzYwUNbmV3U3RhcnRCbG9jawUIZW5kQmxvY2sFCGZpbmlzaEF0BQhhc3NldFN0cgFpAQZjaG9pY2UDB2V2ZW50SWQFcHJpY2UHYWRkcmVzcwQGc3RhdHVzCQEJZ2V0U3RhdHVzAQUHZXZlbnRJZAMJAAACBQZzdGF0dXMCBmFjdGl2ZQQMbmVlZGVkQW1vdW50AICt4gQEC25lZWRlZEFzc2V0BQRVU0ROAwMDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQtuZWVkZWRBc3NldAcJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUMbmVlZGVkQW1vdW50BwQJaW52QXBwZW5kCQD8BwQFBHRoaXMCDmFwcGVuZEJldHNMaXN0CQDMCAIFB2V2ZW50SWQJAMwIAgUHYWRkcmVzcwkAzAgCBQVwcmljZQUDbmlsBQNuaWwDCQAAAgUJaW52QXBwZW5kBQlpbnZBcHBlbmQEDGN1cnJlbnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQERZ2V0VG90YWxBbW91bnRLZXkBBQdldmVudElkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJARFnZXRUb3RhbEFtb3VudEtleQEFB2V2ZW50SWQJAGQCBQxjdXJyZW50VG90YWwICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtCYWQgcGF5bWVudAkAAgECD1lvdSBjYW5gdCBkbyBpdAFpAQ5hcHBlbmRCZXRzTGlzdAMHZXZlbnRJZAphZGRyZXNzU3RyBXByaWNlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIQb25seSBtYWluIGNhbiBkbwMJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMJARJnZXRQcmljZUFkZHJlc3NLZXkCBQdldmVudElkBQphZGRyZXNzU3RyCQACAQIjYmV0dGluZyBmcm9tIHRoaXMgYWRkcmVzcyBpcyBleGlzdHMEDmNvdW50QmV0c1ByaWNlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARFnZXRQcmljZUJldHNDb3VudAIFB2V2ZW50SWQFBXByaWNlAAADCQBnAgUOY291bnRCZXRzUHJpY2UFDm1heEJldHNPblByaWNlCQACAQIMdG8gbWFueSBiZXRzBAlsaXN0SW5kZXgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBFmdldFByaWNlc0xpc3RzQ291bnRLZXkBBQdldmVudElkAAEEDWN1cnJlbnRQcmljZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBEWdldFByaWNlc0xpc3ROS2V5AgUHZXZlbnRJZAUJbGlzdEluZGV4AgAEEWN1cnJlbnRQcmljZXNMaXN0AwkAAAIFDWN1cnJlbnRQcmljZXMCAAUDbmlsCQC8CQIFDWN1cnJlbnRQcmljZXMFCXNlcGFyYXRvcgQIbGlzdFNpemUJAJADAQURY3VycmVudFByaWNlc0xpc3QECW5ld1ByaWNlcwMJAAACBQ5jb3VudEJldHNQcmljZQAAAwkAZgIAZAUIbGlzdFNpemUDCQAAAgkAsQIBBQ1jdXJyZW50UHJpY2VzAAAJAKQDAQUFcHJpY2UJAKwCAgkArAICBQ1jdXJyZW50UHJpY2VzBQlzZXBhcmF0b3IJAKQDAQUFcHJpY2UJAKQDAQUFcHJpY2UFDWN1cnJlbnRQcmljZXMEDG5ld0xpc3RJbmRleAMDCQBnAgUIbGlzdFNpemUAZAkAAAIFDmNvdW50QmV0c1ByaWNlAAAHCQBkAgUJbGlzdEluZGV4AAEFCWxpc3RJbmRleAQObmV3R3JvdXBzQ291bnQJAGQCCQBpAgkAZQIFDG5ld0xpc3RJbmRleAABAAoAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFByaWNlQWRkcmVzc0tleQIFB2V2ZW50SWQFCmFkZHJlc3NTdHIFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWZ2V0UHJpY2VzTGlzdHNDb3VudEtleQEFB2V2ZW50SWQFDG5ld0xpc3RJbmRleAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBF2dldFByaWNlc0dyb3Vwc0NvdW50S2V5AQUHZXZlbnRJZAUObmV3R3JvdXBzQ291bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJARFnZXRQcmljZUJldHNDb3VudAIFB2V2ZW50SWQFBXByaWNlCQBkAgUOY291bnRCZXRzUHJpY2UAAQkAzAgCCQELU3RyaW5nRW50cnkCCQERZ2V0UHJpY2VzTGlzdE5LZXkCBQdldmVudElkBQxuZXdMaXN0SW5kZXgFCW5ld1ByaWNlcwUDbmlsAWkBC3NldFdpblByaWNlAgdldmVudElkBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERZ2V0UmVzdWx0UHJpY2VLZXkBBQdldmVudElkBQVwcmljZQUDbmlsAWkBEHZhbGlkYXRlQmV0c0xpc3QBB2V2ZW50SWQEC3Jlc3VsdFByaWNlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkBEWdldFJlc3VsdFByaWNlS2V5AQUHZXZlbnRJZAIUUmVzdWx0IHByaWNlIG5vdCBzZXQED2dyb3Vwc0NvbXBsZXRlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEgZ2V0UHJpY2VzR3JvdXBzQ29tcGxldGVkQ291bnRLZXkBBQdldmVudElkAAAEDnN0YXJ0TGlzdEluZGV4CQBkAgkAaAIFD2dyb3Vwc0NvbXBsZXRlZAAKAAEEBGxzdDEJAQ1hc1N0cmluZ0FycmF5AQkAnQgCBQR0aGlzCQERZ2V0UHJpY2VzTGlzdE5LZXkCBQdldmVudElkCQBkAgUOc3RhcnRMaXN0SW5kZXgAAAQEbHN0MgkBDWFzU3RyaW5nQXJyYXkBCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAABBARsc3QzCQENYXNTdHJpbmdBcnJheQEJAJ0IAgUEdGhpcwkBEWdldFByaWNlc0xpc3ROS2V5AgUHZXZlbnRJZAkAZAIFDnN0YXJ0TGlzdEluZGV4AAIEBGxzdDQJAQ1hc1N0cmluZ0FycmF5AQkAnQgCBQR0aGlzCQERZ2V0UHJpY2VzTGlzdE5LZXkCBQdldmVudElkCQBkAgUOc3RhcnRMaXN0SW5kZXgAAwQEbHN0NQkBDWFzU3RyaW5nQXJyYXkBCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAEBARsc3Q2CQENYXNTdHJpbmdBcnJheQEJAJ0IAgUEdGhpcwkBEWdldFByaWNlc0xpc3ROS2V5AgUHZXZlbnRJZAkAZAIFDnN0YXJ0TGlzdEluZGV4AAUEBGxzdDcJAQ1hc1N0cmluZ0FycmF5AQkAnQgCBQR0aGlzCQERZ2V0UHJpY2VzTGlzdE5LZXkCBQdldmVudElkCQBkAgUOc3RhcnRMaXN0SW5kZXgABgQEbHN0OAkBDWFzU3RyaW5nQXJyYXkBCQCdCAIFBHRoaXMJARFnZXRQcmljZXNMaXN0TktleQIFB2V2ZW50SWQJAGQCBQ5zdGFydExpc3RJbmRleAAHBARsc3Q5CQENYXNTdHJpbmdBcnJheQEJAJ0IAgUEdGhpcwkBEWdldFByaWNlc0xpc3ROS2V5AgUHZXZlbnRJZAkAZAIFDnN0YXJ0TGlzdEluZGV4AAgEBWxzdDEwCQENYXNTdHJpbmdBcnJheQEJAJ0IAgUEdGhpcwkBEWdldFByaWNlc0xpc3ROS2V5AgUHZXZlbnRJZAkAZAIFDnN0YXJ0TGlzdEluZGV4AAkEA2xzdAkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgkAzggCCQDOCAIJAM4IAgUEbHN0MQUEbHN0MgUEbHN0MwUEbHN0NAUEbHN0NQUEbHN0NgUEbHN0NwUEbHN0OAUEbHN0OQUFbHN0MTAKAQxmb2xkVmFsaWRhdGUCBWFjY3VtBG5leHQEA3ZhbAkBDXBhcnNlSW50VmFsdWUBBQRuZXh0BAVkZWx0YQMJAGcCBQN2YWwFC3Jlc3VsdFByaWNlCQBlAgUDdmFsBQtyZXN1bHRQcmljZQkAZQIFC3Jlc3VsdFByaWNlBQN2YWwDCQEPY29udGFpbnNFbGVtZW50AgUFYWNjdW0FBWRlbHRhBQVhY2N1bQkAzQgCBQVhY2N1bQUFZGVsdGEEEmZvbGRWYWxpZGF0ZVJlc3VsdAoAAiRsBQNsc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGZvbGRWYWxpZGF0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIWTGlzdCBzaXplIGV4Y2VlZHMgMTAwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAewB8AH0AfgB/AIABAIEBAIIBAIMBAIQBAIUBAIYBAIcBAIgBAIkBAIoBAIsBAIwBAI0BAI4BAI8BAJABAJEBAJIBAJMBAJQBAJUBAJYBAJcBAJgBAJkBAJoBAJsBAJwBAJ0BAJ4BAJ8BAKABAKEBAKIBAKMBAKQBAKUBAKYBAKcBAKgBAKkBAKoBAKsBAKwBAK0BAK4BAK8BALABALEBALIBALMBALQBALUBALYBALcBALgBALkBALoBALsBALwBAL0BAL4BAL8BAMABAMEBAMIBAMMBAMQBAMUBAMYBAMcBAMgBAMkBAMoBAMsBAMwBAM0BAM4BAM8BANABANEBANIBANMBANQBANUBANYBANcBANgBANkBANoBANsBANwBAN0BAN4BAN8BAOABAOEBAOIBAOMBAOQBAOUBAOYBAOcBAOgBAOkBAOoBAOsBAOwBAO0BAO4BAO8BAPABAPEBAPIBAPMBAPQBAPUBAPYBAPcBAPgBAPkBAPoBAPsBAPwBAP0BAP4BAP8BAIACAIECAIICAIMCAIQCAIUCAIYCAIcCAIgCAIkCAIoCAIsCAIwCAI0CAI4CAI8CAJACAJECAJICAJMCAJQCAJUCAJYCAJcCAJgCAJkCAJoCAJsCAJwCAJ0CAJ4CAJ8CAKACAKECAKICAKMCAKQCAKUCAKYCAKcCAKgCAKkCAKoCAKsCAKwCAK0CAK4CAK8CALACALECALICALMCALQCALUCALYCALcCALgCALkCALoCALsCALwCAL0CAL4CAL8CAMACAMECAMICAMMCAMQCAMUCAMYCAMcCAMgCAMkCAMoCAMsCAMwCAM0CAM4CAM8CANACANECANICANMCANQCANUCANYCANcCANgCANkCANoCANsCANwCAN0CAN4CAN8CAOACAOECAOICAOMCAOQCAOUCAOYCAOcCAOgCAOkCAOoCAOsCAOwCAO0CAO4CAO8CAPACAPECAPICAPMCAPQCAPUCAPYCAPcCAPgCAPkCAPoCAPsCAPwCAP0CAP4CAP8CAIADAIEDAIIDAIMDAIQDAIUDAIYDAIcDAIgDAIkDAIoDAIsDAIwDAI0DAI4DAI8DAJADAJEDAJIDAJMDAJQDAJUDAJYDAJcDAJgDAJkDAJoDAJsDAJwDAJ0DAJ4DAJ8DAKADAKEDAKIDAKMDAKQDAKUDAKYDAKcDAKgDAKkDAKoDAKsDAKwDAK0DAK4DAK8DALADALEDALIDALMDALQDALUDALYDALcDALgDALkDALoDALsDALwDAL0DAL4DAL8DAMADAMEDAMIDAMMDAMQDAMUDAMYDAMcDAMgDAMkDAMoDAMsDAMwDAM0DAM4DAM8DANADANEDANIDANMDANQDANUDANYDANcDANgDANkDANoDANsDANwDAN0DAN4DAN8DAOADAOEDAOIDAOMDAOQDAOUDAOYDAOcDAOgDAOkDAOoDAOsDAOwDAO0DAO4DAO8DAPADAPEDAPIDAPMDAPQDAPUDAPYDAPcDAPgDAPkDAPoDAPsDAPwDAP0DAP4DAP8DAIAEAIEEAIIEAIMEAIQEAIUEAIYEAIcEAIgEAIkEAIoEAIsEAIwEAI0EAI4EAI8EAJAEAJEEAJIEAJMEAJQEAJUEAJYEAJcEAJgEAJkEAJoEAJsEAJwEAJ0EAJ4EAJ8EAKAEAKEEAKIEAKMEAKQEAKUEAKYEAKcEAKgEAKkEAKoEAKsEAKwEAK0EAK4EAK8EALAEALEEALIEALMEALQEALUEALYEALcEALgEALkEALoEALsEALwEAL0EAL4EAL8EAMAEAMEEAMIEAMMEAMQEAMUEAMYEAMcEAMgEAMkEAMoEAMsEAMwEAM0EAM4EAM8EANAEANEEANIEANMEANQEANUEANYEANcEANgEANkEANoEANsEANwEAN0EAN4EAN8EAOAEAOEEAOIEAOMEAOQEAOUEAOYEAOcEAOgEAOkEAOoEAOsEAOwEAO0EAO4EAO8EAPAEAPEEAPIEAPMEAPQEAPUEAPYEAPcEAPgEAPkEAPoEAPsEAPwEAP0EAP4EAP8EAIAFAIEFAIIFAIMFAIQFAIUFAIYFAIcFAIgFAIkFAIoFAIsFAIwFAI0FAI4FAI8FAJAFAJEFAJIFAJMFAJQFAJUFAJYFAJcFAJgFAJkFAJoFAJsFAJwFAJ0FAJ4FAJ8FAKAFAKEFAKIFAKMFAKQFAKUFAKYFAKcFAKgFAKkFAKoFAKsFAKwFAK0FAK4FAK8FALAFALEFALIFALMFALQFALUFALYFALcFALgFALkFALoFALsFALwFAL0FAL4FAL8FAMAFAMEFAMIFAMMFAMQFAMUFAMYFAMcFAMgFAMkFAMoFAMsFAMwFAM0FAM4FAM8FANAFANEFANIFANMFANQFANUFANYFANcFANgFANkFANoFANsFANwFAN0FAN4FAN8FAOAFAOEFAOIFAOMFAOQFAOUFAOYFAOcFAOgFAOkFAOoFAOsFAOwFAO0FAO4FAO8FAPAFAPEFAPIFAPMFAPQFAPUFAPYFAPcFAPgFAPkFAPoFAPsFAPwFAP0FAP4FAP8FAIAGAIEGAIIGAIMGAIQGAIUGAIYGAIcGAIgGAIkGAIoGAIsGAIwGAI0GAI4GAI8GAJAGAJEGAJIGAJMGAJQGAJUGAJYGAJcGAJgGAJkGAJoGAJsGAJwGAJ0GAJ4GAJ8GAKAGAKEGAKIGAKMGAKQGAKUGAKYGAKcGAKgGAKkGAKoGAKsGAKwGAK0GAK4GAK8GALAGALEGALIGALMGALQGALUGALYGALcGALgGALkGALoGALsGALwGAL0GAL4GAL8GAMAGAMEGAMIGAMMGAMQGAMUGAMYGAMcGAMgGAMkGAMoGAMsGAMwGAM0GAM4GAM8GANAGANEGANIGANMGANQGANUGANYGANcGANgGANkGANoGANsGANwGAN0GAN4GAN8GAOAGAOEGAOIGAOMGAOQGAOUGAOYGAOcGAOgGAOkGAOoGAOsGAOwGAO0GAO4GAO8GAPAGAPEGAPIGAPMGAPQGAPUGAPYGAPcGAPgGAPkGAPoGAPsGAPwGAP0GAP4GAP8GAIAHAIEHAIIHAIMHAIQHAIUHAIYHAIcHAIgHAIkHAIoHAIsHAIwHAI0HAI4HAI8HAJAHAJEHAJIHAJMHAJQHAJUHAJYHAJcHAJgHAJkHAJoHAJsHAJwHAJ0HAJ4HAJ8HAKAHAKEHAKIHAKMHAKQHAKUHAKYHAKcHAKgHAKkHAKoHAKsHAKwHAK0HAK4HAK8HALAHALEHALIHALMHALQHALUHALYHALcHALgHALkHALoHALsHALwHAL0HAL4HAL8HAMAHAMEHAMIHAMMHAMQHAMUHAMYHAMcHAMgHAMkHAMoHAMsHAMwHAM0HAM4HAM8HANAHANEHANIHANMHANQHANUHANYHANcHANgHANkHANoHANsHANwHAN0HAN4HAN8HAOAHAOEHAOIHAOMHAOQHAOUHAOYHAOcHAOgHCgEIZm9sZFNvcnQCBWFjY3VtBG5leHQEDSR0MDExNTA4MTE1MzkFBWFjY3VtBAhpbml0TGlzdAgFDSR0MDExNTA4MTE1MzkCXzEEB25ld0xpc3QIBQ0kdDAxMTUwODExNTM5Al8yBAhtaW5WYWx1ZQkAlwMBBQhpbml0TGlzdAkAlAoCCQDRCAIFCGluaXRMaXN0CQEFYXNJbnQBCQDPCAIFCGluaXRMaXN0BQhtaW5WYWx1ZQkAzQgCBQduZXdMaXN0CQCkAwEFCG1pblZhbHVlBA5mb2xkU29ydFJlc3VsdAoAAiRsCQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFEmZvbGRWYWxpZGF0ZVJlc3VsdAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkU29ydAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8EBm1pbkxzdAgFDmZvbGRTb3J0UmVzdWx0Al8yBA10ZW1wV2luUHJpY2VzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARNnZXRUZW1wV2luUHJpY2VzS2V5AQUHZXZlbnRJZAIABBBuZXdUZW1wV2luUHJpY2VzAwkAAAIJALECAQUNdGVtcFdpblByaWNlcwAACQC6CQIFBm1pbkxzdAUJc2VwYXJhdG9yCQCsAgIJAKwCAgUNdGVtcFdpblByaWNlcwUJc2VwYXJhdG9yCQC6CQIFBm1pbkxzdAUJc2VwYXJhdG9yCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEgZ2V0UHJpY2VzR3JvdXBzQ29tcGxldGVkQ291bnRLZXkBBQdldmVudElkCQBkAgUPZ3JvdXBzQ29tcGxldGVkAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2dldFRlbXBXaW5QcmljZXNLZXkBBQdldmVudElkBRBuZXdUZW1wV2luUHJpY2VzBQNuaWwBaQEKc2V0V2lubmVycwEHZXZlbnRJZAQLZ3JvdXBzQ291bnQJAJoIAgUEdGhpcwkBF2dldFByaWNlc0dyb3Vwc0NvdW50S2V5AQUHZXZlbnRJZAQPZ3JvdXBzQ29tcGxldGVkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJASBnZXRQcmljZXNHcm91cHNDb21wbGV0ZWRDb3VudEtleQEFB2V2ZW50SWQAAAMJAQIhPQIFD2dyb3Vwc0NvbXBsZXRlZAULZ3JvdXBzQ291bnQJAAIBAhh2YWxpZGF0ZSBpcyBub3QgY29tcGxldGUEC3Jlc3VsdFByaWNlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkBEWdldFJlc3VsdFByaWNlS2V5AQUHZXZlbnRJZAIUUmVzdWx0IHByaWNlIG5vdCBzZXQEDXRlbXBXaW5QcmljZXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzCQETZ2V0VGVtcFdpblByaWNlc0tleQEFB2V2ZW50SWQCGXRlbXAgd2luIHByaWNlcyBub3QgZm91bmQEEHRlbXBXaW5QcmljZXNMc3QJALwJAgUNdGVtcFdpblByaWNlcwUJc2VwYXJhdG9yCgEJZm9sZFRvSW50AgVhY2N1bQRuZXh0BAN2YWwJAQ1wYXJzZUludFZhbHVlAQUEbmV4dAkAzQgCBQVhY2N1bQUDdmFsBBN0ZW1wV2luUHJpY2VzTHN0SW50CgACJGwFEHRlbXBXaW5QcmljZXNMc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWZvbGRUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIWTGlzdCBzaXplIGV4Y2VlZHMgMTAwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAewB8AH0AfgB/AIABAIEBAIIBAIMBAIQBAIUBAIYBAIcBAIgBAIkBAIoBAIsBAIwBAI0BAI4BAI8BAJABAJEBAJIBAJMBAJQBAJUBAJYBAJcBAJgBAJkBAJoBAJsBAJwBAJ0BAJ4BAJ8BAKABAKEBAKIBAKMBAKQBAKUBAKYBAKcBAKgBAKkBAKoBAKsBAKwBAK0BAK4BAK8BALABALEBALIBALMBALQBALUBALYBALcBALgBALkBALoBALsBALwBAL0BAL4BAL8BAMABAMEBAMIBAMMBAMQBAMUBAMYBAMcBAMgBAMkBAMoBAMsBAMwBAM0BAM4BAM8BANABANEBANIBANMBANQBANUBANYBANcBANgBANkBANoBANsBANwBAN0BAN4BAN8BAOABAOEBAOIBAOMBAOQBAOUBAOYBAOcBAOgBAOkBAOoBAOsBAOwBAO0BAO4BAO8BAPABAPEBAPIBAPMBAPQBAPUBAPYBAPcBAPgBAPkBAPoBAPsBAPwBAP0BAP4BAP8BAIACAIECAIICAIMCAIQCAIUCAIYCAIcCAIgCAIkCAIoCAIsCAIwCAI0CAI4CAI8CAJACAJECAJICAJMCAJQCAJUCAJYCAJcCAJgCAJkCAJoCAJsCAJwCAJ0CAJ4CAJ8CAKACAKECAKICAKMCAKQCAKUCAKYCAKcCAKgCAKkCAKoCAKsCAKwCAK0CAK4CAK8CALACALECALICALMCALQCALUCALYCALcCALgCALkCALoCALsCALwCAL0CAL4CAL8CAMACAMECAMICAMMCAMQCAMUCAMYCAMcCAMgCAMkCAMoCAMsCAMwCAM0CAM4CAM8CANACANECANICANMCANQCANUCANYCANcCANgCANkCANoCANsCANwCAN0CAN4CAN8CAOACAOECAOICAOMCAOQCAOUCAOYCAOcCAOgCAOkCAOoCAOsCAOwCAO0CAO4CAO8CAPACAPECAPICAPMCAPQCAPUCAPYCAPcCAPgCAPkCAPoCAPsCAPwCAP0CAP4CAP8CAIADAIEDAIIDAIMDAIQDAIUDAIYDAIcDAIgDAIkDAIoDAIsDAIwDAI0DAI4DAI8DAJADAJEDAJIDAJMDAJQDAJUDAJYDAJcDAJgDAJkDAJoDAJsDAJwDAJ0DAJ4DAJ8DAKADAKEDAKIDAKMDAKQDAKUDAKYDAKcDAKgDAKkDAKoDAKsDAKwDAK0DAK4DAK8DALADALEDALIDALMDALQDALUDALYDALcDALgDALkDALoDALsDALwDAL0DAL4DAL8DAMADAMEDAMIDAMMDAMQDAMUDAMYDAMcDAMgDAMkDAMoDAMsDAMwDAM0DAM4DAM8DANADANEDANIDANMDANQDANUDANYDANcDANgDANkDANoDANsDANwDAN0DAN4DAN8DAOADAOEDAOIDAOMDAOQDAOUDAOYDAOcDAOgDAOkDAOoDAOsDAOwDAO0DAO4DAO8DAPADAPEDAPIDAPMDAPQDAPUDAPYDAPcDAPgDAPkDAPoDAPsDAPwDAP0DAP4DAP8DAIAEAIEEAIIEAIMEAIQEAIUEAIYEAIcEAIgEAIkEAIoEAIsEAIwEAI0EAI4EAI8EAJAEAJEEAJIEAJMEAJQEAJUEAJYEAJcEAJgEAJkEAJoEAJsEAJwEAJ0EAJ4EAJ8EAKAEAKEEAKIEAKMEAKQEAKUEAKYEAKcEAKgEAKkEAKoEAKsEAKwEAK0EAK4EAK8EALAEALEEALIEALMEALQEALUEALYEALcEALgEALkEALoEALsEALwEAL0EAL4EAL8EAMAEAMEEAMIEAMMEAMQEAMUEAMYEAMcEAMgEAMkEAMoEAMsEAMwEAM0EAM4EAM8EANAEANEEANIEANMEANQEANUEANYEANcEANgEANkEANoEANsEANwEAN0EAN4EAN8EAOAEAOEEAOIEAOMEAOQEAOUEAOYEAOcEAOgEAOkEAOoEAOsEAOwEAO0EAO4EAO8EAPAEAPEEAPIEAPMEAPQEAPUEAPYEAPcEAPgEAPkEAPoEAPsEAPwEAP0EAP4EAP8EAIAFAIEFAIIFAIMFAIQFAIUFAIYFAIcFAIgFAIkFAIoFAIsFAIwFAI0FAI4FAI8FAJAFAJEFAJIFAJMFAJQFAJUFAJYFAJcFAJgFAJkFAJoFAJsFAJwFAJ0FAJ4FAJ8FAKAFAKEFAKIFAKMFAKQFAKUFAKYFAKcFAKgFAKkFAKoFAKsFAKwFAK0FAK4FAK8FALAFALEFALIFALMFALQFALUFALYFALcFALgFALkFALoFALsFALwFAL0FAL4FAL8FAMAFAMEFAMIFAMMFAMQFAMUFAMYFAMcFAMgFAMkFAMoFAMsFAMwFAM0FAM4FAM8FANAFANEFANIFANMFANQFANUFANYFANcFANgFANkFANoFANsFANwFAN0FAN4FAN8FAOAFAOEFAOIFAOMFAOQFAOUFAOYFAOcFAOgFAOkFAOoFAOsFAOwFAO0FAO4FAO8FAPAFAPEFAPIFAPMFAPQFAPUFAPYFAPcFAPgFAPkFAPoFAPsFAPwFAP0FAP4FAP8FAIAGAIEGAIIGAIMGAIQGAIUGAIYGAIcGAIgGAIkGAIoGAIsGAIwGAI0GAI4GAI8GAJAGAJEGAJIGAJMGAJQGAJUGAJYGAJcGAJgGAJkGAJoGAJsGAJwGAJ0GAJ4GAJ8GAKAGAKEGAKIGAKMGAKQGAKUGAKYGAKcGAKgGAKkGAKoGAKsGAKwGAK0GAK4GAK8GALAGALEGALIGALMGALQGALUGALYGALcGALgGALkGALoGALsGALwGAL0GAL4GAL8GAMAGAMEGAMIGAMMGAMQGAMUGAMYGAMcGAMgGAMkGAMoGAMsGAMwGAM0GAM4GAM8GANAGANEGANIGANMGANQGANUGANYGANcGANgGANkGANoGANsGANwGAN0GAN4GAN8GAOAGAOEGAOIGAOMGAOQGAOUGAOYGAOcGAOgGAOkGAOoGAOsGAOwGAO0GAO4GAO8GAPAGAPEGAPIGAPMGAPQGAPUGAPYGAPcGAPgGAPkGAPoGAPsGAPwGAP0GAP4GAP8GAIAHAIEHAIIHAIMHAIQHAIUHAIYHAIcHAIgHAIkHAIoHAIsHAIwHAI0HAI4HAI8HAJAHAJEHAJIHAJMHAJQHAJUHAJYHAJcHAJgHAJkHAJoHAJsHAJwHAJ0HAJ4HAJ8HAKAHAKEHAKIHAKMHAKQHAKUHAKYHAKcHAKgHAKkHAKoHAKsHAKwHAK0HAK4HAK8HALAHALEHALIHALMHALQHALUHALYHALcHALgHALkHALoHALsHALwHAL0HAL4HAL8HAMAHAMEHAMIHAMMHAMQHAMUHAMYHAMcHAMgHAMkHAMoHAMsHAMwHAM0HAM4HAM8HANAHANEHANIHANMHANQHANUHANYHANcHANgHANkHANoHANsHANwHAN0HAN4HAN8HAOAHAOEHAOIHAOMHAOQHAOUHAOYHAOcHAOgHAwkAAAIFE3RlbXBXaW5QcmljZXNMc3RJbnQFE3RlbXBXaW5QcmljZXNMc3RJbnQKAQ5mb2xkR2V0V2lubmVycwIFYWNjdW0EbmV4dAQNJHQwMTMxNDAxMzE4MgUFYWNjdW0EB2luaXRMc3QIBQ0kdDAxMzE0MDEzMTgyAl8xBAZuZXdMc3QIBQ0kdDAxMzE0MDEzMTgyAl8yBAZzdGF0ZXMIBQ0kdDAxMzE0MDEzMTgyAl8zBANpbmQIBQ0kdDAxMzE0MDEzMTgyAl80BAVkZWx0YQkAlwMBBQdpbml0THN0BApuZXdJbml0THN0CQDRCAIFB2luaXRMc3QJAQVhc0ludAEJAM8IAgUHaW5pdExzdAUFZGVsdGEDCQBmAgANBQNpbmQECnBlcmNlbnRhZ2UDCQBmAgADBQNpbmQAQQAKAwkAAAIFBWRlbHRhAAAECWJldHNDb3VudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBEWdldFByaWNlQmV0c0NvdW50AgUHZXZlbnRJZAULcmVzdWx0UHJpY2UECW5ld1N0YXRlcwkAzggCBQZzdGF0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJARhnZXRXaW5QcmljZVBlcmNlbnRhZ2VLZXkCBQdldmVudElkBQtyZXN1bHRQcmljZQUKcGVyY2VudGFnZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFBlcmNlbnRhZ2VDb3VudAIFB2V2ZW50SWQFCnBlcmNlbnRhZ2UJAGQCCQBkAgUDaW5kBQliZXRzQ291bnQAAQUDbmlsBAluZXdOZXdMc3QJAM0IAgUGbmV3THN0BQtyZXN1bHRQcmljZQkAlgoEBQpuZXdJbml0THN0BQluZXdOZXdMc3QFCW5ld1N0YXRlcwkAZAIFA2luZAUJYmV0c0NvdW50BApwQmV0c0NvdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARFnZXRQcmljZUJldHNDb3VudAIFB2V2ZW50SWQJAGQCBQtyZXN1bHRQcmljZQUFZGVsdGEAAAQKbkJldHNDb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQERZ2V0UHJpY2VCZXRzQ291bnQCBQdldmVudElkCQBlAgULcmVzdWx0UHJpY2UFBWRlbHRhAAAECW5ld1N0YXRlcwkAzggCBQZzdGF0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJARhnZXRXaW5QcmljZVBlcmNlbnRhZ2VLZXkCBQdldmVudElkBQtyZXN1bHRQcmljZQUKcGVyY2VudGFnZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFBlcmNlbnRhZ2VDb3VudAIFB2V2ZW50SWQFCnBlcmNlbnRhZ2UJAGQCCQBkAgkAZAIFA2luZAUKcEJldHNDb3VudAUKbkJldHNDb3VudAABBQNuaWwECW5ld05ld0xzdAkAzQgCBQZuZXdMc3QFC3Jlc3VsdFByaWNlCQCWCgQFCm5ld0luaXRMc3QFCW5ld05ld0xzdAUJbmV3U3RhdGVzCQBkAgkAZAIFA2luZAUKcEJldHNDb3VudAUKbkJldHNDb3VudAkAlgoEBQpuZXdJbml0THN0BQZuZXdMc3QFBnN0YXRlcwUDaW5kBBRmb2xkR2V0V2lubmVyc1Jlc3VsdAoAAiRsBRN0ZW1wV2luUHJpY2VzTHN0SW50CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlgoEBRN0ZW1wV2luUHJpY2VzTHN0SW50BQNuaWwFA25pbAAACgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ5mb2xkR2V0V2lubmVycwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8EBnN0YXRlcwgFFGZvbGRHZXRXaW5uZXJzUmVzdWx0Al8zBAl3aW5QcmljZXMJALoJAggFFGZvbGRHZXRXaW5uZXJzUmVzdWx0Al8yBQlzZXBhcmF0b3IECW5ld1N0YXRlcwkAzggCBQZzdGF0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldFdpblByaWNlc0tleQEFB2V2ZW50SWQFCXdpblByaWNlcwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBGGdldFdpblByaWNlc0NvbXBsZXRlZEtleQEFB2V2ZW50SWQGBQNuaWwFCW5ld1N0YXRlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQlyZXNldExpc3QAAwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWZpcnN0RXZlbnRLZXkFCXVuZGVmaW5lZAkAzAgCCQELU3RyaW5nRW50cnkCBQxsYXN0RXZlbnRLZXkFCXVuZGVmaW5lZAkAzAgCCQELU3RyaW5nRW50cnkCBRNmaXNydEFjdGl2ZUV2ZW50S2V5BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUSbGFzdEFjdGl2ZUV2ZW50S2V5BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUVZmlzcnRGaW5pc2hlZEV2ZW50S2V5BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUUbGFzdEZpbmlzaGVkRXZlbnRLZXkFCXVuZGVmaW5lZAUDbmlsAWkBDGluc2VydFRvTGlzdAIHZXZlbnRJZAhpc0FjdGl2ZQMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECEG9ubHkgbWFpbiBjYW4gZG8EB2xhc3RLZXkDBQhpc0FjdGl2ZQUSbGFzdEFjdGl2ZUV2ZW50S2V5BRRsYXN0RmluaXNoZWRFdmVudEtleQQIZmlyc3RLZXkDBQhpc0FjdGl2ZQUTZmlzcnRBY3RpdmVFdmVudEtleQUVZmlzcnRGaW5pc2hlZEV2ZW50S2V5BApmaXJzdEV2ZW50CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFCGZpcnN0S2V5BQl1bmRlZmluZWQECWxhc3RFdmVudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQdsYXN0S2V5BQl1bmRlZmluZWQEEG5ld0xhc3RPclByZXZLZXkDCQAAAgUJbGFzdEV2ZW50BQl1bmRlZmluZWQFB2xhc3RLZXkJAQ9nZXRQcmV2RXZlbnRLZXkBBQpmaXJzdEV2ZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIFCGZpcnN0S2V5BQdldmVudElkCQDMCAIJAQtTdHJpbmdFbnRyeQIFEG5ld0xhc3RPclByZXZLZXkFB2V2ZW50SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldE5leHRFdmVudEtleQEFB2V2ZW50SWQFCmZpcnN0RXZlbnQFA25pbAFpAQ5kZWxldGVGcm9tTGlzdAIHZXZlbnRJZAhpc0FjdGl2ZQMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECEG9ubHkgbWFpbiBjYW4gZG8EB2xhc3RLZXkDBQhpc0FjdGl2ZQUSbGFzdEFjdGl2ZUV2ZW50S2V5BRRsYXN0RmluaXNoZWRFdmVudEtleQQIZmlyc3RLZXkDBQhpc0FjdGl2ZQUTZmlzcnRBY3RpdmVFdmVudEtleQUVZmlzcnRGaW5pc2hlZEV2ZW50S2V5BApmaXJzdEV2ZW50CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFCGZpcnN0S2V5BQl1bmRlZmluZWQECWxhc3RFdmVudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQdsYXN0S2V5BQl1bmRlZmluZWQEDXByZXZFdmVudFRlbXAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2dldFByZXZFdmVudEtleQEFB2V2ZW50SWQFCXVuZGVmaW5lZAQNbmV4dEV2ZW50VGVtcAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPZ2V0TmV4dEV2ZW50S2V5AQUHZXZlbnRJZAUJdW5kZWZpbmVkBAlwcmV2RXZlbnQDCQAAAgUHZXZlbnRJZAUKZmlyc3RFdmVudAUJdW5kZWZpbmVkBQ1wcmV2RXZlbnRUZW1wBAluZXh0RXZlbnQDCQAAAgUHZXZlbnRJZAUJbGFzdEV2ZW50BQl1bmRlZmluZWQFDW5leHRFdmVudFRlbXADAwkAAAIFCXByZXZFdmVudAUJdW5kZWZpbmVkCQAAAgUJbmV4dEV2ZW50BQl1bmRlZmluZWQHCQDMCAIJAQtTdHJpbmdFbnRyeQIFCGZpcnN0S2V5BQl1bmRlZmluZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUHbGFzdEtleQUJdW5kZWZpbmVkBQNuaWwDAwkBAiE9AgUJcHJldkV2ZW50BQl1bmRlZmluZWQJAQIhPQIFCW5leHRFdmVudAUJdW5kZWZpbmVkBwkAzAgCCQELU3RyaW5nRW50cnkCCQEPZ2V0UHJldkV2ZW50S2V5AQUJbmV4dEV2ZW50BQlwcmV2RXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldE5leHRFdmVudEtleQEFCXByZXZFdmVudAUJbmV4dEV2ZW50BQNuaWwDCQECIT0CBQlwcmV2RXZlbnQFCXVuZGVmaW5lZAkAzAgCCQELU3RyaW5nRW50cnkCBQdsYXN0S2V5BQlwcmV2RXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldE5leHRFdmVudEtleQEFCXByZXZFdmVudAUJdW5kZWZpbmVkBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgUIZmlyc3RLZXkFCW5leHRFdmVudAkAzAgCCQELU3RyaW5nRW50cnkCCQEPZ2V0UHJldkV2ZW50S2V5AQUJbmV4dEV2ZW50BQl1bmRlZmluZWQFA25pbAFpAQtjb25jYXRMaXN0cwADCQEBIQEJAQdpc0FkbWluAQgFAWkGY2FsbGVyCQACAQIRb25seSBhZG1pbiBjYW4gZG8EEGZpcnN0QWN0aXZlRXZlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUTZmlzcnRBY3RpdmVFdmVudEtleQUJdW5kZWZpbmVkBA9sYXN0QWN0aXZlRXZlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUSbGFzdEFjdGl2ZUV2ZW50S2V5BQl1bmRlZmluZWQEEmZpcnN0RmluaXNoZWRFdmVudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBRVmaXNydEZpbmlzaGVkRXZlbnRLZXkFCXVuZGVmaW5lZAQRbGFzdEZpbmlzaGVkRXZlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUUbGFzdEZpbmlzaGVkRXZlbnRLZXkFCXVuZGVmaW5lZAQKZmlyc3RFdmVudAMJAQIhPQIFEGZpcnN0QWN0aXZlRXZlbnQFCXVuZGVmaW5lZAUQZmlyc3RBY3RpdmVFdmVudAUSZmlyc3RGaW5pc2hlZEV2ZW50BAlsYXN0RXZlbnQDCQECIT0CBRFsYXN0RmluaXNoZWRFdmVudAUJdW5kZWZpbmVkBRFsYXN0RmluaXNoZWRFdmVudAUPbGFzdEFjdGl2ZUV2ZW50AwMJAQIhPQIFEmZpcnN0RmluaXNoZWRFdmVudAUJdW5kZWZpbmVkCQECIT0CBQ9sYXN0QWN0aXZlRXZlbnQFCXVuZGVmaW5lZAcJAMwIAgkBC1N0cmluZ0VudHJ5AgUNZmlyc3RFdmVudEtleQUKZmlyc3RFdmVudAkAzAgCCQELU3RyaW5nRW50cnkCBQxsYXN0RXZlbnRLZXkFCWxhc3RFdmVudAkAzAgCCQELU3RyaW5nRW50cnkCCQEPZ2V0TmV4dEV2ZW50S2V5AQUPbGFzdEFjdGl2ZUV2ZW50BRJmaXJzdEZpbmlzaGVkRXZlbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2dldFByZXZFdmVudEtleQEFEmZpcnN0RmluaXNoZWRFdmVudAUPbGFzdEFjdGl2ZUV2ZW50BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgUNZmlyc3RFdmVudEtleQUKZmlyc3RFdmVudAkAzAgCCQELU3RyaW5nRW50cnkCBQxsYXN0RXZlbnRLZXkFCWxhc3RFdmVudAUDbmlsAKxtEbo=", "height": 2286595, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AvoqjfaqFyHCnLG1FsCAK5R1kMWy1xpfJM3g6Vqps1L2 Next: 96T3dcJtBcwwFtVXnFQn1PZGk4Kw4dbxZVptK3R7wyro Diff:
Old | New | Differences | |
---|---|---|---|
370 | 370 | let initList = $t01150811539._1 | |
371 | 371 | let newList = $t01150811539._2 | |
372 | 372 | let minValue = min(initList) | |
373 | - | $Tuple2(removeByIndex(initList, asInt(indexOf(initList, minValue))), (newList :+ minValue)) | |
373 | + | $Tuple2(removeByIndex(initList, asInt(indexOf(initList, minValue))), (newList :+ toString(minValue))) | |
374 | 374 | } | |
375 | 375 | ||
376 | 376 | let foldSortResult = { | |
429 | 429 | if ((tempWinPricesLstInt == tempWinPricesLstInt)) | |
430 | 430 | then { | |
431 | 431 | func foldGetWinners (accum,next) = { | |
432 | - | let $ | |
433 | - | let initLst = $ | |
434 | - | let newLst = $ | |
435 | - | let states = $ | |
436 | - | let ind = $ | |
432 | + | let $t01314013182 = accum | |
433 | + | let initLst = $t01314013182._1 | |
434 | + | let newLst = $t01314013182._2 | |
435 | + | let states = $t01314013182._3 | |
436 | + | let ind = $t01314013182._4 | |
437 | 437 | let delta = min(initLst) | |
438 | 438 | let newInitLst = removeByIndex(initLst, asInt(indexOf(initLst, delta))) | |
439 | 439 | if ((13 > ind)) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let undefined = "undefined" | |
5 | 5 | ||
6 | 6 | let separator = ";" | |
7 | 7 | ||
8 | 8 | let configAddressKey = "config" | |
9 | 9 | ||
10 | 10 | let collectorAddressKey = "collector_address" | |
11 | 11 | ||
12 | 12 | let historyAddressKey = "history_address" | |
13 | 13 | ||
14 | 14 | let paymakerAddressKey = "paymaker_address" | |
15 | 15 | ||
16 | 16 | let adminsKey = "admins" | |
17 | 17 | ||
18 | 18 | let configAddress = addressFromStringValue(getStringValue(this, configAddressKey)) | |
19 | 19 | ||
20 | 20 | let collectorAddress = addressFromStringValue(getStringValue(configAddress, collectorAddressKey)) | |
21 | 21 | ||
22 | 22 | let historyAddress = addressFromStringValue(getStringValue(configAddress, historyAddressKey)) | |
23 | 23 | ||
24 | 24 | let paymakerAddress = addressFromStringValue(getStringValue(configAddress, paymakerAddressKey)) | |
25 | 25 | ||
26 | 26 | func isAdmin (caller) = { | |
27 | 27 | let admRow = valueOrElse(getString(configAddress, adminsKey), "") | |
28 | 28 | if (if ((caller == this)) | |
29 | 29 | then true | |
30 | 30 | else contains(admRow, toString(caller))) | |
31 | 31 | then true | |
32 | 32 | else false | |
33 | 33 | } | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func getCheckerKey (checker) = ("checker_" + checker) | |
37 | 37 | ||
38 | 38 | ||
39 | 39 | func isChecker (checker) = { | |
40 | 40 | let isExists = isDefined(getBoolean(configAddress, getCheckerKey(checker))) | |
41 | 41 | isExists | |
42 | 42 | } | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | let USDN = base58'2eFPx8M5qwNFRbW91pzsyBKMz1FZmYMUW3BVZzTQmbFD' | |
46 | 46 | ||
47 | 47 | let minAmount = 10000000 | |
48 | 48 | ||
49 | 49 | let feeNumerator = 5 | |
50 | 50 | ||
51 | 51 | let feeDenominator = 100 | |
52 | 52 | ||
53 | 53 | let maxBetsOnPrice = 3 | |
54 | 54 | ||
55 | 55 | let firstEventKey = "first_event" | |
56 | 56 | ||
57 | 57 | let lastEventKey = "last_event" | |
58 | 58 | ||
59 | 59 | let fisrtFinishedEventKey = "first_finished_event" | |
60 | 60 | ||
61 | 61 | let lastFinishedEventKey = "last_finished_event" | |
62 | 62 | ||
63 | 63 | let fisrtActiveEventKey = "first_active_event" | |
64 | 64 | ||
65 | 65 | let lastActiveEventKey = "last_active_event" | |
66 | 66 | ||
67 | 67 | func getStartBlockKey (eventId) = (eventId + "_start_block") | |
68 | 68 | ||
69 | 69 | ||
70 | 70 | func getEndBlockKey (eventId) = (eventId + "_end_block") | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | func getFinishAtKey (eventId) = (eventId + "_finish_at_block") | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | func getIdKey (eventId) = (eventId + "_id") | |
77 | 77 | ||
78 | 78 | ||
79 | 79 | func getStatusKey (eventId) = (eventId + "_status") | |
80 | 80 | ||
81 | 81 | ||
82 | 82 | func getDescKey (eventId) = (eventId + "_description") | |
83 | 83 | ||
84 | 84 | ||
85 | 85 | func getPrevEventKey (eventId) = (eventId + "_prev_event") | |
86 | 86 | ||
87 | 87 | ||
88 | 88 | func getNextEventKey (eventId) = (eventId + "_next_event") | |
89 | 89 | ||
90 | 90 | ||
91 | 91 | func getAssetIdKey (eventId) = (eventId + "_asset_id") | |
92 | 92 | ||
93 | 93 | ||
94 | 94 | func getTotalAmountKey (eventId) = (eventId + "_total_amount") | |
95 | 95 | ||
96 | 96 | ||
97 | 97 | func getPricesGroupsCountKey (eventId) = (eventId + "_prices_group_count") | |
98 | 98 | ||
99 | 99 | ||
100 | 100 | func getPricesListsCountKey (eventId) = (eventId + "_prices_list_count") | |
101 | 101 | ||
102 | 102 | ||
103 | 103 | func getPricesListNKey (eventId,n) = ((eventId + "_prices_list_") + toString(n)) | |
104 | 104 | ||
105 | 105 | ||
106 | 106 | func getPriceBetsCount (eventId,price) = (((eventId + "_") + toString(price)) + "_bets_count") | |
107 | 107 | ||
108 | 108 | ||
109 | 109 | func getPriceAddressKey (eventId,address) = (((eventId + "_") + address) + "_price") | |
110 | 110 | ||
111 | 111 | ||
112 | 112 | func getResultPriceKey (eventId) = (eventId + "_price_result") | |
113 | 113 | ||
114 | 114 | ||
115 | 115 | func getTempWinPricesKey (eventId) = (eventId + "_prices_win_temp") | |
116 | 116 | ||
117 | 117 | ||
118 | 118 | func getWinPricesKey (eventId) = (eventId + "_prices_win") | |
119 | 119 | ||
120 | 120 | ||
121 | 121 | func getWinPricesCompletedKey (eventId) = (eventId + "_prices_win_completed") | |
122 | 122 | ||
123 | 123 | ||
124 | 124 | func getPricesGroupsCompletedCountKey (eventId) = (eventId + "_prices_group_completed_count") | |
125 | 125 | ||
126 | 126 | ||
127 | 127 | func getWinPricePercentageKey (eventId,price) = (((eventId + "_win_") + toString(price)) + "_percentage") | |
128 | 128 | ||
129 | 129 | ||
130 | 130 | func getPercentageCount (eventId,percent) = (((eventId + "_") + toString(percent)) + "_percent_count") | |
131 | 131 | ||
132 | 132 | ||
133 | 133 | func asInt (v) = match v { | |
134 | 134 | case x: Int => | |
135 | 135 | x | |
136 | 136 | case t => | |
137 | 137 | throw("#err") | |
138 | 138 | } | |
139 | 139 | ||
140 | 140 | ||
141 | 141 | func asString (v) = match v { | |
142 | 142 | case x: String => | |
143 | 143 | x | |
144 | 144 | case _ => | |
145 | 145 | throw("#err") | |
146 | 146 | } | |
147 | 147 | ||
148 | 148 | ||
149 | 149 | func asStringArray (v) = match v { | |
150 | 150 | case x: Unit => | |
151 | 151 | nil | |
152 | 152 | case y: String => | |
153 | 153 | split_4C(y, separator) | |
154 | 154 | case _ => | |
155 | 155 | throw("#err") | |
156 | 156 | } | |
157 | 157 | ||
158 | 158 | ||
159 | 159 | func getAssetInfo (assetStr) = { | |
160 | 160 | let assetId = fromBase58String(assetStr) | |
161 | 161 | let x = match assetInfo(assetId) { | |
162 | 162 | case asset: Asset => | |
163 | 163 | $Tuple2(assetStr, asset.decimals) | |
164 | 164 | case _ => | |
165 | 165 | $Tuple2("WAVES", 0) | |
166 | 166 | } | |
167 | 167 | x | |
168 | 168 | } | |
169 | 169 | ||
170 | 170 | ||
171 | 171 | func getStatus (eventId) = { | |
172 | 172 | let status = getStringValue(this, getStatusKey(eventId)) | |
173 | 173 | if (if (if ((status == "finished")) | |
174 | 174 | then true | |
175 | 175 | else (status == "#")) | |
176 | 176 | then true | |
177 | 177 | else (status == "ended")) | |
178 | 178 | then status | |
179 | 179 | else { | |
180 | 180 | let finishAt = getIntegerValue(this, getFinishAtKey(eventId)) | |
181 | 181 | let startBlock = getIntegerValue(this, getStartBlockKey(eventId)) | |
182 | 182 | let endBlock = getIntegerValue(this, getEndBlockKey(eventId)) | |
183 | 183 | if ((startBlock > height)) | |
184 | 184 | then "awaiting" | |
185 | 185 | else if (if ((height >= startBlock)) | |
186 | 186 | then (endBlock >= height) | |
187 | 187 | else false) | |
188 | 188 | then "active" | |
189 | 189 | else if (if ((height > endBlock)) | |
190 | 190 | then (finishAt >= height) | |
191 | 191 | else false) | |
192 | 192 | then "confirmation" | |
193 | 193 | else if ((height > finishAt)) | |
194 | 194 | then "finished" | |
195 | 195 | else throw("unknown status") | |
196 | 196 | } | |
197 | 197 | } | |
198 | 198 | ||
199 | 199 | ||
200 | 200 | func registerEvent (txid,desc,startBlock,endBlock,finishAt,assetStr) = { | |
201 | 201 | let eventId = txid | |
202 | 202 | let insert = invoke(this, "insertToList", [eventId, true], nil) | |
203 | 203 | if ((insert == insert)) | |
204 | 204 | then { | |
205 | 205 | let concat = invoke(this, "concatLists", nil, nil) | |
206 | 206 | if ((concat == concat)) | |
207 | 207 | then { | |
208 | 208 | let $t055835636 = getAssetInfo(assetStr) | |
209 | 209 | let assetId = $t055835636._1 | |
210 | 210 | let assetDecimals = $t055835636._2 | |
211 | 211 | [IntegerEntry(getStartBlockKey(eventId), startBlock), IntegerEntry(getEndBlockKey(eventId), endBlock), IntegerEntry(getFinishAtKey(eventId), finishAt), StringEntry(getDescKey(eventId), desc), StringEntry(getStatusKey(eventId), "new"), StringEntry(getIdKey(eventId), eventId), StringEntry(getAssetIdKey(eventId), assetId)] | |
212 | 212 | } | |
213 | 213 | else throw("Strict value is not equal to itself.") | |
214 | 214 | } | |
215 | 215 | else throw("Strict value is not equal to itself.") | |
216 | 216 | } | |
217 | 217 | ||
218 | 218 | ||
219 | 219 | @Callable(i) | |
220 | 220 | func init (config) = if ((i.caller != this)) | |
221 | 221 | then throw("only main can do") | |
222 | 222 | else { | |
223 | 223 | let isExists = isDefined(getString(this, configAddressKey)) | |
224 | 224 | if (!(isExists)) | |
225 | 225 | then [StringEntry(configAddressKey, config)] | |
226 | 226 | else throw("already inited") | |
227 | 227 | } | |
228 | 228 | ||
229 | 229 | ||
230 | 230 | ||
231 | 231 | @Callable(i) | |
232 | 232 | func appendEventer (desc) = if (!(isAdmin(i.caller))) | |
233 | 233 | then throw("only admin can do") | |
234 | 234 | else { | |
235 | 235 | let inv = invoke(configAddress, "setEventer", [toString(this), desc], nil) | |
236 | 236 | if ((inv == inv)) | |
237 | 237 | then nil | |
238 | 238 | else throw("Strict value is not equal to itself.") | |
239 | 239 | } | |
240 | 240 | ||
241 | 241 | ||
242 | 242 | ||
243 | 243 | @Callable(i) | |
244 | 244 | func fullRegisterEvent (desc,startBlock,duration,assetStr) = { | |
245 | 245 | let newStartBlock = if ((startBlock == 0)) | |
246 | 246 | then height | |
247 | 247 | else startBlock | |
248 | 248 | let endBlock = (newStartBlock + duration) | |
249 | 249 | let finishAt = (endBlock + 1440) | |
250 | 250 | if (!(isAdmin(i.caller))) | |
251 | 251 | then throw("only admin can do") | |
252 | 252 | else { | |
253 | 253 | let txid = toBase58String(i.transactionId) | |
254 | 254 | registerEvent(txid, desc, newStartBlock, endBlock, finishAt, assetStr) | |
255 | 255 | } | |
256 | 256 | } | |
257 | 257 | ||
258 | 258 | ||
259 | 259 | ||
260 | 260 | @Callable(i) | |
261 | 261 | func choice (eventId,price,address) = { | |
262 | 262 | let status = getStatus(eventId) | |
263 | 263 | if ((status == "active")) | |
264 | 264 | then { | |
265 | 265 | let neededAmount = 10000000 | |
266 | 266 | let neededAsset = USDN | |
267 | 267 | if (if (if ((size(i.payments) == 1)) | |
268 | 268 | then (i.payments[0].assetId == neededAsset) | |
269 | 269 | else false) | |
270 | 270 | then (i.payments[0].amount == neededAmount) | |
271 | 271 | else false) | |
272 | 272 | then { | |
273 | 273 | let invAppend = invoke(this, "appendBetsList", [eventId, address, price], nil) | |
274 | 274 | if ((invAppend == invAppend)) | |
275 | 275 | then { | |
276 | 276 | let currentTotal = valueOrElse(getInteger(this, getTotalAmountKey(eventId)), 0) | |
277 | 277 | [IntegerEntry(getTotalAmountKey(eventId), (currentTotal + i.payments[0].amount))] | |
278 | 278 | } | |
279 | 279 | else throw("Strict value is not equal to itself.") | |
280 | 280 | } | |
281 | 281 | else throw("Bad payment") | |
282 | 282 | } | |
283 | 283 | else throw("You can`t do it") | |
284 | 284 | } | |
285 | 285 | ||
286 | 286 | ||
287 | 287 | ||
288 | 288 | @Callable(i) | |
289 | 289 | func appendBetsList (eventId,addressStr,price) = if ((i.caller != this)) | |
290 | 290 | then throw("only main can do") | |
291 | 291 | else if (isDefined(getInteger(this, getPriceAddressKey(eventId, addressStr)))) | |
292 | 292 | then throw("betting from this address is exists") | |
293 | 293 | else { | |
294 | 294 | let countBetsPrice = valueOrElse(getInteger(this, getPriceBetsCount(eventId, price)), 0) | |
295 | 295 | if ((countBetsPrice >= maxBetsOnPrice)) | |
296 | 296 | then throw("to many bets") | |
297 | 297 | else { | |
298 | 298 | let listIndex = valueOrElse(getInteger(this, getPricesListsCountKey(eventId)), 1) | |
299 | 299 | let currentPrices = valueOrElse(getString(this, getPricesListNKey(eventId, listIndex)), "") | |
300 | 300 | let currentPricesList = if ((currentPrices == "")) | |
301 | 301 | then nil | |
302 | 302 | else split_4C(currentPrices, separator) | |
303 | 303 | let listSize = size(currentPricesList) | |
304 | 304 | let newPrices = if ((countBetsPrice == 0)) | |
305 | 305 | then if ((100 > listSize)) | |
306 | 306 | then if ((size(currentPrices) == 0)) | |
307 | 307 | then toString(price) | |
308 | 308 | else ((currentPrices + separator) + toString(price)) | |
309 | 309 | else toString(price) | |
310 | 310 | else currentPrices | |
311 | 311 | let newListIndex = if (if ((listSize >= 100)) | |
312 | 312 | then (countBetsPrice == 0) | |
313 | 313 | else false) | |
314 | 314 | then (listIndex + 1) | |
315 | 315 | else listIndex | |
316 | 316 | let newGroupsCount = (((newListIndex - 1) / 10) + 1) | |
317 | 317 | [IntegerEntry(getPriceAddressKey(eventId, addressStr), price), IntegerEntry(getPricesListsCountKey(eventId), newListIndex), IntegerEntry(getPricesGroupsCountKey(eventId), newGroupsCount), IntegerEntry(getPriceBetsCount(eventId, price), (countBetsPrice + 1)), StringEntry(getPricesListNKey(eventId, newListIndex), newPrices)] | |
318 | 318 | } | |
319 | 319 | } | |
320 | 320 | ||
321 | 321 | ||
322 | 322 | ||
323 | 323 | @Callable(i) | |
324 | 324 | func setWinPrice (eventId,price) = [IntegerEntry(getResultPriceKey(eventId), price)] | |
325 | 325 | ||
326 | 326 | ||
327 | 327 | ||
328 | 328 | @Callable(i) | |
329 | 329 | func validateBetsList (eventId) = { | |
330 | 330 | let resultPrice = valueOrErrorMessage(getInteger(this, getResultPriceKey(eventId)), "Result price not set") | |
331 | 331 | let groupsCompleted = valueOrElse(getInteger(this, getPricesGroupsCompletedCountKey(eventId)), 0) | |
332 | 332 | let startListIndex = ((groupsCompleted * 10) + 1) | |
333 | 333 | let lst1 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 0)))) | |
334 | 334 | let lst2 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 1)))) | |
335 | 335 | let lst3 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 2)))) | |
336 | 336 | let lst4 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 3)))) | |
337 | 337 | let lst5 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 4)))) | |
338 | 338 | let lst6 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 5)))) | |
339 | 339 | let lst7 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 6)))) | |
340 | 340 | let lst8 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 7)))) | |
341 | 341 | let lst9 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 8)))) | |
342 | 342 | let lst10 = asStringArray(getString(this, getPricesListNKey(eventId, (startListIndex + 9)))) | |
343 | 343 | let lst = (((((((((lst1 ++ lst2) ++ lst3) ++ lst4) ++ lst5) ++ lst6) ++ lst7) ++ lst8) ++ lst9) ++ lst10) | |
344 | 344 | func foldValidate (accum,next) = { | |
345 | 345 | let val = parseIntValue(next) | |
346 | 346 | let delta = if ((val >= resultPrice)) | |
347 | 347 | then (val - resultPrice) | |
348 | 348 | else (resultPrice - val) | |
349 | 349 | if (containsElement(accum, delta)) | |
350 | 350 | then accum | |
351 | 351 | else (accum :+ delta) | |
352 | 352 | } | |
353 | 353 | ||
354 | 354 | let foldValidateResult = { | |
355 | 355 | let $l = lst | |
356 | 356 | let $s = size($l) | |
357 | 357 | let $acc0 = nil | |
358 | 358 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
359 | 359 | then $a | |
360 | 360 | else foldValidate($a, $l[$i]) | |
361 | 361 | ||
362 | 362 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
363 | 363 | then $a | |
364 | 364 | else throw("List size exceeds 1000") | |
365 | 365 | ||
366 | 366 | $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) | |
367 | 367 | } | |
368 | 368 | func foldSort (accum,next) = { | |
369 | 369 | let $t01150811539 = accum | |
370 | 370 | let initList = $t01150811539._1 | |
371 | 371 | let newList = $t01150811539._2 | |
372 | 372 | let minValue = min(initList) | |
373 | - | $Tuple2(removeByIndex(initList, asInt(indexOf(initList, minValue))), (newList :+ minValue)) | |
373 | + | $Tuple2(removeByIndex(initList, asInt(indexOf(initList, minValue))), (newList :+ toString(minValue))) | |
374 | 374 | } | |
375 | 375 | ||
376 | 376 | let foldSortResult = { | |
377 | 377 | let $l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] | |
378 | 378 | let $s = size($l) | |
379 | 379 | let $acc0 = $Tuple2(foldValidateResult, nil) | |
380 | 380 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
381 | 381 | then $a | |
382 | 382 | else foldSort($a, $l[$i]) | |
383 | 383 | ||
384 | 384 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
385 | 385 | then $a | |
386 | 386 | else throw("List size exceeds 15") | |
387 | 387 | ||
388 | 388 | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($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), 11), 12), 13), 14), 15) | |
389 | 389 | } | |
390 | 390 | let minLst = foldSortResult._2 | |
391 | 391 | let tempWinPrices = valueOrElse(getString(this, getTempWinPricesKey(eventId)), "") | |
392 | 392 | let newTempWinPrices = if ((size(tempWinPrices) == 0)) | |
393 | 393 | then makeString_2C(minLst, separator) | |
394 | 394 | else ((tempWinPrices + separator) + makeString_2C(minLst, separator)) | |
395 | 395 | [IntegerEntry(getPricesGroupsCompletedCountKey(eventId), (groupsCompleted + 1)), StringEntry(getTempWinPricesKey(eventId), newTempWinPrices)] | |
396 | 396 | } | |
397 | 397 | ||
398 | 398 | ||
399 | 399 | ||
400 | 400 | @Callable(i) | |
401 | 401 | func setWinners (eventId) = { | |
402 | 402 | let groupsCount = getInteger(this, getPricesGroupsCountKey(eventId)) | |
403 | 403 | let groupsCompleted = valueOrElse(getInteger(this, getPricesGroupsCompletedCountKey(eventId)), 0) | |
404 | 404 | if ((groupsCompleted != groupsCount)) | |
405 | 405 | then throw("validate is not complete") | |
406 | 406 | else { | |
407 | 407 | let resultPrice = valueOrErrorMessage(getInteger(this, getResultPriceKey(eventId)), "Result price not set") | |
408 | 408 | let tempWinPrices = valueOrErrorMessage(getString(this, getTempWinPricesKey(eventId)), "temp win prices not found") | |
409 | 409 | let tempWinPricesLst = split_4C(tempWinPrices, separator) | |
410 | 410 | func foldToInt (accum,next) = { | |
411 | 411 | let val = parseIntValue(next) | |
412 | 412 | (accum :+ val) | |
413 | 413 | } | |
414 | 414 | ||
415 | 415 | let tempWinPricesLstInt = { | |
416 | 416 | let $l = tempWinPricesLst | |
417 | 417 | let $s = size($l) | |
418 | 418 | let $acc0 = nil | |
419 | 419 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
420 | 420 | then $a | |
421 | 421 | else foldToInt($a, $l[$i]) | |
422 | 422 | ||
423 | 423 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
424 | 424 | then $a | |
425 | 425 | else throw("List size exceeds 1000") | |
426 | 426 | ||
427 | 427 | $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) | |
428 | 428 | } | |
429 | 429 | if ((tempWinPricesLstInt == tempWinPricesLstInt)) | |
430 | 430 | then { | |
431 | 431 | func foldGetWinners (accum,next) = { | |
432 | - | let $ | |
433 | - | let initLst = $ | |
434 | - | let newLst = $ | |
435 | - | let states = $ | |
436 | - | let ind = $ | |
432 | + | let $t01314013182 = accum | |
433 | + | let initLst = $t01314013182._1 | |
434 | + | let newLst = $t01314013182._2 | |
435 | + | let states = $t01314013182._3 | |
436 | + | let ind = $t01314013182._4 | |
437 | 437 | let delta = min(initLst) | |
438 | 438 | let newInitLst = removeByIndex(initLst, asInt(indexOf(initLst, delta))) | |
439 | 439 | if ((13 > ind)) | |
440 | 440 | then { | |
441 | 441 | let percentage = if ((3 > ind)) | |
442 | 442 | then 65 | |
443 | 443 | else 10 | |
444 | 444 | if ((delta == 0)) | |
445 | 445 | then { | |
446 | 446 | let betsCount = getIntegerValue(this, getPriceBetsCount(eventId, resultPrice)) | |
447 | 447 | let newStates = (states ++ [IntegerEntry(getWinPricePercentageKey(eventId, resultPrice), percentage), IntegerEntry(getPercentageCount(eventId, percentage), ((ind + betsCount) + 1))]) | |
448 | 448 | let newNewLst = (newLst :+ resultPrice) | |
449 | 449 | $Tuple4(newInitLst, newNewLst, newStates, (ind + betsCount)) | |
450 | 450 | } | |
451 | 451 | else { | |
452 | 452 | let pBetsCount = valueOrElse(getInteger(this, getPriceBetsCount(eventId, (resultPrice + delta))), 0) | |
453 | 453 | let nBetsCount = valueOrElse(getInteger(this, getPriceBetsCount(eventId, (resultPrice - delta))), 0) | |
454 | 454 | let newStates = (states ++ [IntegerEntry(getWinPricePercentageKey(eventId, resultPrice), percentage), IntegerEntry(getPercentageCount(eventId, percentage), (((ind + pBetsCount) + nBetsCount) + 1))]) | |
455 | 455 | let newNewLst = (newLst :+ resultPrice) | |
456 | 456 | $Tuple4(newInitLst, newNewLst, newStates, ((ind + pBetsCount) + nBetsCount)) | |
457 | 457 | } | |
458 | 458 | } | |
459 | 459 | else $Tuple4(newInitLst, newLst, states, ind) | |
460 | 460 | } | |
461 | 461 | ||
462 | 462 | let foldGetWinnersResult = { | |
463 | 463 | let $l = tempWinPricesLstInt | |
464 | 464 | let $s = size($l) | |
465 | 465 | let $acc0 = $Tuple4(tempWinPricesLstInt, nil, nil, 0) | |
466 | 466 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
467 | 467 | then $a | |
468 | 468 | else foldGetWinners($a, $l[$i]) | |
469 | 469 | ||
470 | 470 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
471 | 471 | then $a | |
472 | 472 | else throw("List size exceeds 15") | |
473 | 473 | ||
474 | 474 | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($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), 11), 12), 13), 14), 15) | |
475 | 475 | } | |
476 | 476 | let states = foldGetWinnersResult._3 | |
477 | 477 | let winPrices = makeString_2C(foldGetWinnersResult._2, separator) | |
478 | 478 | let newStates = (states ++ [StringEntry(getWinPricesKey(eventId), winPrices), BooleanEntry(getWinPricesCompletedKey(eventId), true)]) | |
479 | 479 | newStates | |
480 | 480 | } | |
481 | 481 | else throw("Strict value is not equal to itself.") | |
482 | 482 | } | |
483 | 483 | } | |
484 | 484 | ||
485 | 485 | ||
486 | 486 | ||
487 | 487 | @Callable(i) | |
488 | 488 | func resetList () = if (!(isAdmin(i.caller))) | |
489 | 489 | then throw("only admin can do") | |
490 | 490 | else [StringEntry(firstEventKey, undefined), StringEntry(lastEventKey, undefined), StringEntry(fisrtActiveEventKey, undefined), StringEntry(lastActiveEventKey, undefined), StringEntry(fisrtFinishedEventKey, undefined), StringEntry(lastFinishedEventKey, undefined)] | |
491 | 491 | ||
492 | 492 | ||
493 | 493 | ||
494 | 494 | @Callable(i) | |
495 | 495 | func insertToList (eventId,isActive) = if ((this != i.caller)) | |
496 | 496 | then throw("only main can do") | |
497 | 497 | else { | |
498 | 498 | let lastKey = if (isActive) | |
499 | 499 | then lastActiveEventKey | |
500 | 500 | else lastFinishedEventKey | |
501 | 501 | let firstKey = if (isActive) | |
502 | 502 | then fisrtActiveEventKey | |
503 | 503 | else fisrtFinishedEventKey | |
504 | 504 | let firstEvent = valueOrElse(getString(this, firstKey), undefined) | |
505 | 505 | let lastEvent = valueOrElse(getString(this, lastKey), undefined) | |
506 | 506 | let newLastOrPrevKey = if ((lastEvent == undefined)) | |
507 | 507 | then lastKey | |
508 | 508 | else getPrevEventKey(firstEvent) | |
509 | 509 | [StringEntry(firstKey, eventId), StringEntry(newLastOrPrevKey, eventId), StringEntry(getNextEventKey(eventId), firstEvent)] | |
510 | 510 | } | |
511 | 511 | ||
512 | 512 | ||
513 | 513 | ||
514 | 514 | @Callable(i) | |
515 | 515 | func deleteFromList (eventId,isActive) = if ((this != i.caller)) | |
516 | 516 | then throw("only main can do") | |
517 | 517 | else { | |
518 | 518 | let lastKey = if (isActive) | |
519 | 519 | then lastActiveEventKey | |
520 | 520 | else lastFinishedEventKey | |
521 | 521 | let firstKey = if (isActive) | |
522 | 522 | then fisrtActiveEventKey | |
523 | 523 | else fisrtFinishedEventKey | |
524 | 524 | let firstEvent = valueOrElse(getString(this, firstKey), undefined) | |
525 | 525 | let lastEvent = valueOrElse(getString(this, lastKey), undefined) | |
526 | 526 | let prevEventTemp = valueOrElse(getString(this, getPrevEventKey(eventId)), undefined) | |
527 | 527 | let nextEventTemp = valueOrElse(getString(this, getNextEventKey(eventId)), undefined) | |
528 | 528 | let prevEvent = if ((eventId == firstEvent)) | |
529 | 529 | then undefined | |
530 | 530 | else prevEventTemp | |
531 | 531 | let nextEvent = if ((eventId == lastEvent)) | |
532 | 532 | then undefined | |
533 | 533 | else nextEventTemp | |
534 | 534 | if (if ((prevEvent == undefined)) | |
535 | 535 | then (nextEvent == undefined) | |
536 | 536 | else false) | |
537 | 537 | then [StringEntry(firstKey, undefined), StringEntry(lastKey, undefined)] | |
538 | 538 | else if (if ((prevEvent != undefined)) | |
539 | 539 | then (nextEvent != undefined) | |
540 | 540 | else false) | |
541 | 541 | then [StringEntry(getPrevEventKey(nextEvent), prevEvent), StringEntry(getNextEventKey(prevEvent), nextEvent)] | |
542 | 542 | else if ((prevEvent != undefined)) | |
543 | 543 | then [StringEntry(lastKey, prevEvent), StringEntry(getNextEventKey(prevEvent), undefined)] | |
544 | 544 | else [StringEntry(firstKey, nextEvent), StringEntry(getPrevEventKey(nextEvent), undefined)] | |
545 | 545 | } | |
546 | 546 | ||
547 | 547 | ||
548 | 548 | ||
549 | 549 | @Callable(i) | |
550 | 550 | func concatLists () = if (!(isAdmin(i.caller))) | |
551 | 551 | then throw("only admin can do") | |
552 | 552 | else { | |
553 | 553 | let firstActiveEvent = valueOrElse(getString(this, fisrtActiveEventKey), undefined) | |
554 | 554 | let lastActiveEvent = valueOrElse(getString(this, lastActiveEventKey), undefined) | |
555 | 555 | let firstFinishedEvent = valueOrElse(getString(this, fisrtFinishedEventKey), undefined) | |
556 | 556 | let lastFinishedEvent = valueOrElse(getString(this, lastFinishedEventKey), undefined) | |
557 | 557 | let firstEvent = if ((firstActiveEvent != undefined)) | |
558 | 558 | then firstActiveEvent | |
559 | 559 | else firstFinishedEvent | |
560 | 560 | let lastEvent = if ((lastFinishedEvent != undefined)) | |
561 | 561 | then lastFinishedEvent | |
562 | 562 | else lastActiveEvent | |
563 | 563 | if (if ((firstFinishedEvent != undefined)) | |
564 | 564 | then (lastActiveEvent != undefined) | |
565 | 565 | else false) | |
566 | 566 | then [StringEntry(firstEventKey, firstEvent), StringEntry(lastEventKey, lastEvent), StringEntry(getNextEventKey(lastActiveEvent), firstFinishedEvent), StringEntry(getPrevEventKey(firstFinishedEvent), lastActiveEvent)] | |
567 | 567 | else [StringEntry(firstEventKey, firstEvent), StringEntry(lastEventKey, lastEvent)] | |
568 | 568 | } | |
569 | 569 | ||
570 | 570 |
github/deemru/w8io/026f985 170.70 ms ◑