day_05_2.zig (53746B)
1 const std = @import("std"); 2 const debug = std.debug; 3 const fmt = std.fmt; 4 const mem = std.mem; 5 6 const ascii_case_offset: i32 = 'a' - 'A'; 7 const destroyed_signifier: u8 = '*'; 8 9 pub fn main() !void { 10 var allocator = &std.heap.DirectAllocator.init().allocator; 11 debug.warn("Warning. This will take a few minutes :(...\n"); 12 var result = try improved_length(allocator, input_polymer); 13 debug.assert(result == 6942); 14 debug.warn("05-2 {}\n", result); 15 } 16 17 fn improved_length(allocator: *mem.Allocator, polymer: []const u8) !usize { 18 const unit_types = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 19 20 var shortest_length: usize = polymer.len; 21 var most_effective_unit_to_remove: u8 = '*'; 22 23 for (unit_types) |unit_type| { 24 var p = try allocator.alloc(u8, polymer.len); 25 defer allocator.free(p); 26 27 mem.copy(u8, p, polymer); 28 for (p) |*unit, i| { 29 if ((unit.* == unit_type or unit.* == unit_type + 32)) { 30 unit.* = destroyed_signifier; 31 } 32 } 33 34 p = try shrink(allocator, p); 35 var result = try react(allocator, p); 36 37 //debug.warn("{c}: {}\n", unit_type, result.len); 38 39 if (result.len < shortest_length) { 40 most_effective_unit_to_remove = unit_type; 41 shortest_length = result.len; 42 } 43 } 44 45 //debug.warn("{c}\n", most_effective_unit_to_remove); 46 return shortest_length; 47 } 48 49 test "improved length" { 50 var allocator = &std.heap.DirectAllocator.init().allocator; 51 debug.assert(4 == try improved_length(allocator, "dabAcCaCBAcCcaDA")); 52 } 53 54 fn react(allocator: *mem.Allocator, polymer: []const u8) ![]const u8 { 55 var p = try allocator.alloc(u8, polymer.len); 56 mem.copy(u8, p, polymer); 57 58 var last_len: usize = p.len + 1; 59 while (p.len < last_len) { 60 //debug.warn("{}\n", p); 61 last_len = p.len; 62 for (p) |*unit, i| { 63 if (i + 1 < p.len) { 64 var next_unit = p[i + 1]; 65 if (@intCast(i32, unit.*) - @intCast(i32, next_unit) == ascii_case_offset or 66 @intCast(i32, unit.*) - @intCast(i32, next_unit) == -ascii_case_offset) { 67 unit.* = destroyed_signifier; 68 p[i + 1] = destroyed_signifier; 69 p = try shrink(allocator, p); 70 break; 71 } 72 } 73 } 74 if (p.len == 0) { 75 return p; 76 } 77 } 78 return p; 79 } 80 81 fn shrink(allocator: *mem.Allocator, reacted_polymer: []const u8) ![]u8 { 82 defer allocator.free(reacted_polymer); 83 84 //debug.warn("{}\n", reacted_polymer); 85 var unit_count: usize = 0; 86 for (reacted_polymer) |unit| { 87 if (unit != destroyed_signifier) { 88 unit_count += 1; 89 } 90 } 91 92 if (unit_count == 0) { 93 return ""; 94 } 95 96 var product = try allocator.alloc(u8, unit_count); 97 var product_i: usize = 0; 98 for (reacted_polymer) |unit| { 99 if (unit != destroyed_signifier) { 100 debug.assert(product_i < product.len); 101 //debug.warn("{c}: {}\n", unit, product_i); 102 product[product_i] = unit; 103 product_i += 1; 104 } 105 } 106 return product; 107 } 108 109 test "react" { 110 var allocator = &std.heap.DirectAllocator.init().allocator; 111 debug.assert(mem.eql(u8, "", try react(allocator, "aA"))); 112 debug.assert(mem.eql(u8, "", try react(allocator, "abBA"))); 113 debug.assert(mem.eql(u8, "abAB", try react(allocator, "abAB"))); 114 debug.assert(mem.eql(u8, "aabAAB", try react(allocator, "aabAAB"))); 115 debug.assert(mem.eql(u8, "dabCBAcaDA", try react(allocator, "dabAcCaCBAcCcaDA"))); 116 debug.assert(mem.eql(u8, "dabCBAcaD", try react(allocator, "dabAcCaCBAcCcaD"))); 117 } 118 119 const input_polymer = "OeIiESsoMRtTjbBJYyTtrjJmeEPNliILnzEeZcCzYyZdevVEgGikKIfreEEeRkKFDpKkALlLlaRruUsJjKiIkmMIiGguEeKkdDaDduUXxAPpRrUJjLlNEecCntZzrRfHhFXxdiISslLoeEHhTtxXRrSsOxvVXDxeqQifFxXIEFfcCXOobvVqQdDiIiIGWwSsgZzBxvVNDdwWnYyzZPfFoMgXxUuGOrRoAameEotTeyYEHhHlLhaAOnNeEmMlLJjmMGgoOfFMlLmOGgGHhUugsiIwlLpjJPWMycCgGYozZOmzgIiQJpPjqGZrRuUhHIidEgGeCcwWDXmMMmWwRHTtzZhrGgxkxXKkwWKuUAOoaEvVyWwaGgkVvfFKmMAxXGStbBTsKkSwkEeKWsKksSpkKPfFbOoBQhHqQJjqwTtsSWBmMBKkbbDdEeKjJZzYeEyMOoSsmkgGcNnCyGgeEYTtqQyQqkKQIiqBbYfheEHkeHhbBNnWwEuUVvCcAavViItTKSssyYSFfxFfCiIlqqQQJjLdQxXoOiIZzqzeGgEZhuUjJadDtTAWwHDYyFmMfayYJjJjPpiIArmMRvVsrRSjQPpqzrRDdZJcYyhHELleQMmfFVdhHaAmMDqGgQhHpPPppPvlLKkMmbBZmMCXxciIzosSOCcSsWKkwAwWaDiIMOomdoYyLlnNmMOHhaDdcQqCSsTbBtAqeSsdDulLCcgZzGqQUVyYvsTtNnNIinwSsWqQgGiUudFTtfDjWwJfFeqQkZzHhKEIqjJAaQSUyVwpBbDdvVkKPRGgQsSuUqrHhWrRIidDdWwnBbQRrqYiIzZMmpPtFfjJmMLlTtSZzsTnNyZeEHhgGUuzudDsIiSpPUWwEKkQquvVeqKkQKkTtEUdDeEUlLubBQqLllljJgGsSsSUugGfpPFLLjWzZZFfzDVvdaAnNDdnNWwwYyJWyYfFrqQRwWHhiISsSsjdDJhHjxXxXFjODdjJoJfJjTtYMmyJhHotTOPQbBpPqqQpjaKkEeAvDdVljJLbfFBQoOqJWwwTtXaAxrIiUuXFJjfzZmIiXZPpzxPlLpUudfFDZfFZzqQPpxXCIicKkUNnuzZMYyNnBbmQRrqDdPptTzFfTaAkSsVMSsCcmvKxXvVtzVvmsSbBMVvfTeEFfcyYEeHhTtCgRFfrsSGtXxscCSjJaAFLFflOoBRHmMhrbMmxrxXTtRrRULmMlPpNnujeEOnruURNrRQqojJpAkKauUvVcCfyYDdyYFNnPIiBbjJPpVfFisKjsSJoOOokWwSFfhlLHDjJWwyYPpMoObBmoVvOsMmSjJyYddDIbBvyYkKGSsjJagGrRAgHhYyszJjZSaAIiJqpppPZzuUPCcyEAaeJjFfiIYSIisnNSNMmnOoiIEjJMmeIisOixXIWwRmMrfFxXpMmzZPcGgHhClYyLTtmMyYdLoxXOGgDdeECAlLKOokKkaNnAaTtcuUCLdDlZrRzclBbDcaTtMmcIiCAtTiIOoOoDpgGPEedprCcRPATtRoOHhraCcIQqmLCclMUuwZzEeWlLcPphHesSeERrEJaAjtLvVlToCcOCihRrHCcwyYWjJCcCVvbBDdBjJTtoSJjBbjJHhqQBDYydYyTtNnNkKpIWwhHiHhPieERrGgIPpuUbBnZzFLlcafFxkKXaAhkKaAHxqQXUuACTteEUufpPRUuZzrplVKkGgLrcCRCclLzZtTlZzisSfRrqQvVFIbBZzYyIiOoQTJjVvtPpuUAaqOoPpuPpMGgmiRrIUPpLcCjJVvlxXFfdDAaBbvfFiIoOJoOKkjZZzWwfPpFUuzwWiUuIRzZrjsDdSXxYAaWwyJJkKjYBbbBiIyrREPmSsMpPpenTtNzZnnFflDdjJLlTtkuQqUsqQSKzZknNbBeEKXMAwWamMdDmWwiuUqQEfBxOosShHsSkKxXXFdDdDFfZzfFFfhHTtSoOfFslLGeEYrDdRyvVXxgfLlyYwcEeIiCWMZzZzZzLlpPCcbZzEeBSXxsdDMsSdDmBhHhHbAbbBGgPIipBaXxkqtTQbBlOoLdDKcGgCJjRrxXRhcCHQWwakKbVvBbBAenNEJMtTzZQqmjLkKJjsSYyjJGguIiUayYwnNlLNsezZESNnaAmjhHoOLlJVvpdLzZqPpmMMnNmZzvEeaAVQWwfFcCNnjLQqlCcJNnbLHhluULlyBKGgkbWiIzXxFfQquUZCcDdOPpoEewqQKkxJjKSJjmMVrRjJvsqDwWdQeEkUuQXxviIqiIGoODdgdDFfPpXTtwWwWxjJsZzSkKHhlRrLjJtrRHSNoOnsiuUIqQhNRrnqQjJYCRrNSsnAaGdDgkTLlKnNnNxjJXyYiIaAkYYrRyEAamIiMwWeKkqQIvgGViXqFfZzQDdcTWPpwYytiICPpXEexhHYyWwcKkCGRrgPpHhfCdDsSJjIifFcFyUCTtcrRgjPpJjTtJUuGiYycCGQqitTIeEnNguUcChHMmoylGgJjLEdDHheBjJbuUlLNnubrFfRjJBjJUbkFqgGQfKBOoJjMmMkKcCmSdDWweEhHstTYxXjJuhHSyYsMiIcCNntKkTzHhWwZvjJFfVzCcgGZEeLUuaNnAqmtTgGpPpBbPXbBfFukGFfgTtxXNIgGinDdmMmMRrKDCcfFlLJvVjCcdtkKTnNUHhuDcCpPqQHkKFfhHhpPdgGkKuoJVOoMmFfXxvbzZBKkduUDjxXjJNnOtxVvBbkKGsnggGMmtTCceEBbGTQqtNFfXxKkStbBNprUvfFPpDdVVvutTDzVvFfLlvCcVZmMnNYySsoOGAagsSGkxXKgmMcCvVqQBbMmdcMmNnMmDNnRrRrHhAaIzZiWwdQRrpkiIKNnNnPnNuUYyqCpsCMmcIdUAzZazJjZuDUuJjZzNntTJjiPpSPbchHLxXVvVvBbEelCBOoRPTkKGDdgsrRSgJjbBrtTzmMIiZyYhHKnNkdeEDRGtTIvwWkKVuUZfPpFJjwWMoODVOoWwvZbnNiIBgGgGIidMByYlLUugGCfFgmMGcRlLKkrsuUlrRLSqskNPpULluhaAHnENnvcCEqQxXwWjlLJevTtVxDdHaLlWwADbBEedxXhXyyYLlYiINnBbGgBbkKVbBqFVvfQtTQXxCcdDwWqXmMxTtaAMzZoOufFUmAUEebOotBbTtlLsSTGYygaAsMmSnNBdDtTbBrnLlNRQqrIiQqMCcmRPpnNYbBylLIishTXxtGCsScgsSZzHstyYTSlLSoOzZAHhaiIAafFdDsjJSplLoOboOBdVOYyfdrRDFoUujJSMQqmsjJHQGgjJqnNQqvVwRCpPyYcNnDgGYydbvVxtoMMmQqZzKjJOohHkmnuUNpfFPuUnEeNvVUKfFkGwWgsLlSAeEauUucCOhlrRLHqQgGuUDoODdxmLlMwWXxXdjJFFfVvexXxXMmfFhDdBbSsBvVYyrRXhvVHdDxNaABmMbsSnKkWwnaANbkKHsuUSsShHEPpwnNezZlLlLEaATteyYYyQgGqhHVgGvBbToOyYsStHhEeTOotEyrRhHoOcQgGqYMmymqQMmIiMUMVJjjJAavBbeEoOtTxWwuhoOiInNyoOsiYRrxXyDnNqQGHUuhgdfIiaArRYyvzxoOXQCUucUHhuqOGgoHKkvtTVhoOivTtwWKgLlGkFfVXrRtTjweqQEWaAKkuUtTJEepyBbcCYoOwjJzPpZWwWdEeDgmMGFuUfatTmMWtTuNnUXxEeJjzqdhaALRrlbWwrsSgGfFRfvqsSxXtSKkHhRUurrofFORkKVqQvBAavcCbvwWGmiwWIZzAaMGkKleEdMSsmDLAdDasYQqyIeEixXBbxsSIitTXZzRrSorRMTtmqvhHBbOyDdtTqQYcCofiIFgPjEJuUjevVdNncCDJpXxDVrRvdJjyYJCsSnNcjqQMnnNRrSErResSlLtOoToOhHEelLqucCyYVvUHhvTCcaAnNLJjloODdLaARyYkZzRreNnEZuWwlTtPpLfZzFUiNnfFWwKYyqrRgGxXssNnSSfFUubiIBZzJKkXxjFhHfTaAsSFzPOozZUuvFcCfmfDdJjXBiIbHhBbcifFICxFfkKgGUOVCcvEeoSsbBbBHaAjaAHTtQqhqhHoOCcoOQiIeUBbzZHpPhHPpcCZziPpzZvVIpPZEezFeEfMlnNYyeOoLlETGgtLmZgGzfqQPpFjJjJsStuUTYNQqnybDdJZzjJjBhHzZkPpPRryeEqQYGgNMiImngGGcCNnqQgnNCcOyAZBbzvVLlTtaNaAWwGfFgGggGLlZzQqZzyYtTKZagGYyAzkvVnnNEewWOoTdJjovVcCQqYyOejJRrzZsEeSpsKkSytTaAYTzZtKJjxXzZAamMDvVdkPjJEIibBNtzZTEegGCaAcBbAGgGgaBuUGgMNiIcQqCiozZDuUvVuUMmeAaEBbWweEUEeMmMjJmTtoKkoOOoOzmMgGCJwgGLlSsQqlLfFTtdjOoJsSHdSSrRsrRtkcCrTaAgGtRHhEkKeKbhcCZzKkkXeExNumMULugGUNdDnuWwbkKaABDdeIiEvVpAanNjfFJtlBPpnNYynNbLbeETtnaRFfkKzZNnrFfTtAGgsSRXjJfFmMDDddxSiIaAsSCcstXxJeEjnNGgGgMmTRiIraoOsSdDHdDhJLljAuCcmzZrcCAalLPqQVveEfbBnNDFfdFvpPVpWbBwOoUusBbTtcUuCSfVoOGgvoOTFnNrRfaABAcCXxBbOzZyxXYocCaxgGDdiIMmXbKkEkKOoeCchOoHMQqmBEeuQvVqmLHWwOtToWtkZzBdDbVSLlshHhHWwsSvjGgwWwxHlLHhUPpuYVvrdDRySsVQqatTAvUubxXBuUfUVvuFfrhHMmpdDPRFeqMGgcChHmoOwWpPYyrRUucCDdhpPHJsSLlzZStTsnNHhpKhAahHHndrReuUEDgGwWfKnsSNzZkGBbghGgHhHaqQzZAgGEeSsCcCUuTxWwcCgGUuXTFlFfLfbBdDbSsBCcZRrzXEeSGgTtsVgmDzZdMOodYyMmnNuUZzeloOmMdHhtIiTDgqQcCcgGsSzeEZAaCCcJjhHSXxEKkenNdgGbPHhpBDjJKkvwWHhVsRarRAYZfZzDdFToOtacCHlLlLWLlwBGrvVcCXxRudDBHhnRNvIiVBvBbdDHxXUufFhTtVXxrRfNPWwpKknnKkNWwFQRrEeqqNqQLlzZBUdDgYsSSczZXxCsdDraAQTtquURtTBNFDsxXNnSRrwWlOoxXtBJqQMmjJjsSbeEUlMmzZQdDqsSuXkKEexiIGgUtTkKtSwCRFfVvrOocZzoCSsclLrRWwFfOSsDdvVZpLlhVvHUujWXxwlLwWRrpPEeUujJqphHPTtwWPpAUMmKkvVzZWwWyYFydDYBxXeEbfwiIRrKkTtOoiSsWHtTGNngsiQqvVIShLxXjJoOQKkCbBckLlkSssBbSKsSqaIimpPMiIqTtQALlKCcCcCJMRgbBGxXUiIursrRdDGgTthUSsuoOjMNnJmMjHkKZzhnNqQmJeEXTlLtxJjZHhJjTtksmCcyYMCcYySnNSsQTISevVvVnNZmeyoIiOYLOolSPgGpsqQEJkKjopPOWYyJjwkQqKtaAmMTJpPjeQqMmNnLkwYyMmLlpPqQWKlJjbBOLlfFHocCKkLlfFpbXvVfTpSsPUuUumMuUGAagtFvmMZzVdDEeYklLKtTRrsUuSgkzFFfKkfzPFfEeIiplFUuIcCijJLmMZzsSlvdDoOVFMFsSLSsFSRrsfvgGVlfmTtMSsFfBLlbtTtTqaAQfDdBbaArRYXxnDdFfOaAoqQnVvEOoeGgztEdDeFfTJQqzZRKHhbOMDdnxXNpPCqQjJnNqQczZzIcCuAaGDQfFqOEzZeLXJVUuvvlLVaAzNnZLlYYgPpGdDnBKkxkbBKrRCcBXxvVbFDdhXxyYDdHrupPURfIUkKudrQqwWrpuUQqaAPWwRRybBYDyYkKiExgGcCxXPoqQWpPwvVWwPpCuUckKTDdWwPptRPpiCcWwlLRrOoTtGaAZfFhmgiqLlQfFIUSlLdCcDsuuUGhHyYVfFjJmMgGrRIurRiNnIbBkKPpPEerIiAaiIjJFfCcKCcdDgGkaJjAIilLKkFfGcCSsZjmhHMoOJzoKkaAOgFKVvkBqstTSQnNXuwWEUuetTYFfyYyqQqQTtarmMRkgGKmxPjUuRrRrrRqbNnmtTKkMIkKVhHvsSNnTtipPuUUuJjKkEeGGrRZokKOUulLQfFqQqzsSxqQBLlbqQPpXHWmMwxXXxcClLLlWEeEewbHkKhBuhdOoVvpPDjelLRrEJHRRNHhnfFrwHhOobBWZifuUpAaBhHWwbVvPpvVwWvmaRrAuGgUeEWnNMwWebBEklFfUsqQkKlLGETtoOeyYRnNnNBbBhPWDdwcAayYCczZCbmMLlCjJcPHyaArYrjJRmMyPplpPlXzMIimOosSOlLoFfzZrfiIFucCUdDuUHfutTUkYWYwWmMyIinxXNrmbBdKkHTtjJhUuDtVNrRHMOoeEKkaJjAFfhsQveEViIqqiIwVvJjfFPrSyYxaAXlTtLLFfwWOoMmZzDdnMmOoNHZzhllUuPptzZpPWovSsVVjsSJrAjJmMmMfFaoYbaAnkKFCcfNGkaAKiDdIQYjzZzfFfFZJvVxHhjJXZzYyGgNnOIioRrAaWwVRrxXYyiDdDLyYwxYvVymGHAahyYtXxKkTUuuZzZzEcCLlbBedlLpPDMWwrRmtTleElLXxcNHhoOdDUunCuwWULrhHRBaAUsdDSjlLRrDdmlLMmfEeFqoOHhUtnNIiLlTANnwWaZbBzOoQzZqdoODwiIWQqXJAaKkEeFfNYynonNOtTvVAHLlhanNAazZdbBLbBlNnDUeEaAaWwnNAuUuaqGgNzXbBLlxJvViIoRiaANnxaAeEXInNlmMBUubeEWwGpPgnNnEqQeEeGlLEGpPZziIjaAIidbJjXxweEFeEDELUWZEHhNnuPpUeZGBbgWmMmdDDdNiInneEPpNpPDdbSeEsBEeWwKkzMUTgGiIckKCOotCbBJjKkcjLvVloOkKTzZqwbBlLWQzZZztyYYkFgGqsSQysSlLYTpKWwOmdvVvQeEXxiIqwWyYtTSbBsJjjzZsuUUuSiISTRrpPmMyOjJOoHNnDdUdmuUMOoDBsVZbBznNvyhHLleEYvVggGImMBUudPcCaAnqQCcngGCJjJjTfFdDtQqlkBbKOotfvOoXxKbBbYCcyBHDmatMmDdhGgYDdljJLfhHFyDKpPkQquULlcrRCdLCcHBbhmMwGMmgWQqYVvyeiIiIEcCbBGgCUulBmMbZOodOOoaAoDwmIiMWzNnJCcskKSzZJgGYycyhtbubdDBSNuzZSspVvPUKRlLRrIRrFNnfrfaAfcyYCFkKmSHHOnqQNgGocMmWtrVvcCyzZdWAapHhPxXDdwxtnNTSsRraLliuUTFmLlDdMolLhnNqQHOASsaUucCkNnfsSUNIiIimMfVvFTtHxKkqQXauUZzjoCfFcOOoRWwIUuirRjayYAVvjCcvaAjPpJLlMmHwWzZNnpQpPuBboOiXThHcCHOYpVvPCuUcBbPpsgFfGScfFCeRnOoNLvNnSFfEcCiIRzZwoOzZYAyklHhQvVqTtscCSZzPpLXYyowWOgcCQqeEOSwIfFHhmAaLHtThlAajfnNfFpgGnNwWQqSsSCcgeBbEyGQqVfFiIiQJjuGgUqTEetHLlAaBNJjCgJjGiIiVvCpPkKcOoYyXzZxhdDwWmMdCcDIwWivVHVIKkxbBXAaiBbuULlbBzYyIiQqsbBjzZrXUuUEVaAttQqmMIGPpgFfivVnNnNUVkKJjvPnsSNttTwZzCfFcVJVvjKkvRrgGWgGYTtvnHhNcCVsbJjBlLTvVQNUusSrRnFfQqYyYPpdDTxXthIiFfYygEerRGSsEeydDABbUVvvJEejrRwWaSsbyYSsBFffFhAgoCcOQvVZzcCDdqKRTtnfwvVIakKAiSxbBVvBbrqQUHhuoYyiIwWuUUifFdGglLsSndDjRrJGghDdHMIPpdDinNWaAwQwuGgCMWrRwaeEOktLlTKxRzxXZrXwkNnfYqQyFhHoOAaZfFZzzZQqCcPhUlLWwjJnBTtbLMmfFRrleEXBbxNniwWoOaABbdqCcQyYXxDRrFfFfDsSdTjHhJtWFfSslxXLKkzsSQqnUAaFfvWSedDdmMAAUuaSPpOiIOoxAaPpPpKGEeCcglwWYyovMBbhHsLlSmCeUjJjtaxXATjJdXZzxauUcDEeLgGlLIBQqbfNnvVdBDdbqQsSyKkZdltDdfFpPEZGSMJjsSHhmLlTtPqQCcpqQEeEeqoNdTtWSRrpPsKkqjJQCcniGimdDMlgGsSrNMoweEWwWJCcTtFfArjIiJRaWwiJjrRoOweyTtYpPryYRNpPnEEewWAdDhHoeDGgEaUWgGwqTtdCcEeDMiIiIQiTGgsSWwtbmkFfFfKQVvqKkMmMmnNuUMQQNrgrRGRIuUinvoOVxXFfyYGgqqQuUqlzPpGguXxvVpPYGvPpVPxhHQqQqXkKtThMaAmTPptOoEAaSbBsGgBTEZrRSDmHeEaAIiNFOZzojJvpIiXoAdVvDMmAaZgGqQmMzLrMnXdPpbCcZzeEBbAaiVvLlWvjqQqmqEePpwVvKDjJdwVHujJTWwmSsMdmMWwFsSgwWGfDNnzZCcmMTzZtCNnNeEovVYzzXxkNnKeSAaZzBbwjJOokKKvSinNInNgGkKJxXmcVrdiIAYynUgGuLlxBaAfFgGbXMrCIiXxqbBQNnexXElgGLvMzZgGHhmVbBmtbWwBTOomvVtIiqQhHUQvAhHnRrhHQFxiSexXESsoZNnvVzbBbBIiiIOvVsoOijHNMoBbOTLmngGgGuUDdSsNMYyKXxXZzxHhyMmYkzZjJGgrfPpGVvkDdxXExXeZObkKqejJECKkvVcOowWZzApPfFNniMbBGQqWjJVvVpPvgGgnNflLkLlcOyYyZzRrLUDNnJjKkdJdGgbMmBbnNBDrSsKEYLlxXyxXeCczZCcCWwiIcGnSDuUdsOoJjRJjzZDnNdXxQUulRrRUCUucPsgGSGuHhYyaRrAzZJjrxXRUMmRrBfFgASMmHuUhsSseElLgGXxsWwiIPpafFUaAuqlbyYBLYyJjqQaApdpPaLUuleEKkHxXHMmhOohAdnNDvLlVJPHbEejJidNndDyYDCcXxvGgVFuQqLlUVvfLBBbhfFHbCWwgBbEgGeIMVbBvCZzmRlLXOooOxUuIiXDlLiIKuUJLTrDTtdRtYoOyUuiIljkOUqQmMeEUuyYzDdZnNZFZzYLlOVvgWwGYyosSMeEXDdxtTbAZDMmdSZzbxXBoNJdLlsWwSuUkKiIFZMiMmImXMmxzfrRDVhHbBZMJAaEJQRrSYysAawWyYgtTGeEGnneEjJjTtNhOWwVvAopPbBDdwWqIKWtyYTwfLlFkiVvQFHhfDdMLqWwhuVvUXWwxHQqlLMmFfQTnNreEBbYwWbndVvDuUNLlZxXaAzZzBwWyDdFKuUkfMmrRDRreElrRxLStRqlEeETiIFfXTrREkDBKkmMpQjJAatTFfboOBWcfFUubBFwWfbhoOHdqQDfFZzzZIicAaKkBYytTkKrfGIigSbtTfNnwLPprYZzoOykqTdDtbBZCeEqOoQIiUnFfWwNuJjijFApPapqQKkPIitTqTBbUaAHhXkKxsSVvGgKvVUMnlESKIdDlZZzuUzKxXOoZBloRjRkMQNnqyYHhfFAGgbBBbUlfFKkLNvVPpTlLkKEOrJjKkuUrRRJjoZzYynIiUudAaIidiIzZzZGqQgVvDRrgGEVveBbLaAlIiDYygBCCccbyYJjmMaAGZzyYBbPBsSbCctTplMmzoOZgGLJjLgdDdfFyuUkKTtXxdoONnqQzZJDdHkrtTDdxLlXWwbEkaKkAOoQGgBqnNGghHcCQNnzuqYyoODQqPJqQjspyYFfkKaAxXtjJWPpwFfzZYyTJPpaAjHoeEOhiIpPWkNUVvuftwLFflSswwZzdDWyYWQWcCCcUuxXFDfFdfSsFounoOiGLzZxXlDdKAaBGhJjHgVMDEeyfbQqBwNnqMcRrCmAWFyYdDXQqYRryxAafrRnNvYyaAVpPWwtTZzJjwLlGgWcwIiWbBEeDEeuUzXYtTyxzCcbBFfVAaQqQBMmDdbDuUGAlLagdrpnNnNEVvUueyYpPGglgqQGVzZdwFfWOoFLDWwdIivAafFhCdEeDrRlLEGgUnNVvkoOkKKifFIAhCJPTtrRWwpEClLBfFbMmkKcyUXHhbALlaXxDdWwlpPHhLBnxXdDUuNnnNuYyuaAUXLlZzxBFfbUdDFyYuUfWwBbaANtTtsLlrthwWcCaAwWHTDdaAFQbBfFUuzigeEGLtRrbBTFfOoqQJuUMmRrAaTtvVFgGTtvcVvCWwVfypPUucCrrRouUCDGgdugGUfZqQzCdRraADqLxMMmmGgPZzGUuLldwWDgmMNnvVFtMmgRrVTtxIiXpdlLwVEzFfoNzZauUuUAwWpPonNOCuUfmFfNqcCxtTXOfXxBbKWwWsSwxgdDTplLPBbnNJjyYQqUHOoZzXOoxyTnOxTtuUXRFfrBPpEexzuQOntTbBNorRqbxXQUuqyYDLiQZVvzYyBblLVWwZzOSJjzZHSFfWgGwRrlsXbCVvWOgIiGQqOooOoJHhAajeTtiIyzCcZpPUPpuYEIilLwZzEwXKkmYyFzZftQqTyYxXCcMVvLgpPsSGleExWxXeawWwnNLleNnEWsSSpCzZsSAUuqQuUwWzGgoOQqhHZBNWwutTUnuUTtWwzZfEuUlMmjJLefplLeEPYOoyNRrYHhynwdDQqWIRrpPQqtjlSsGkKkrXxRKpdqwWQEycmoOMaRrAaAFRqnNQzZZzrREeTtrgAaHaOMkgpPGKmPppkOoKtTWwwooUuOowWSAwWxAaXaHhxUuXslIiAaaSsAvzZVkEOTtrRoUwmMAaYYyyfsSkKFelLEmsSzZzsrLkryeyYdTGgreEACGlLMNWwoUuIAaIipPgcOoCGEehnNeNEeMmnsSOosSbrRfYyqQFbBFmKkgGHzZhEecSYmMNnNYzdxQLCtTclvVZcCxXvHhwWHiImYeEyCRrnAOoQWqQwsSXOkqQsSiTtSssSPpXzpPBxXbIfZWjWSuUxYWwahHMmJRrjAavRrVAxXyHhXxBoOPpLBAJyOceENCcTxNnhHzZJxuLlwIiOoWQqhHUhmMXaRyYXkKtFRrcCyYfvViImUWwXnDdXxNdFFbBVvpueEdsSDVKknGZuULnNeoOhHeEMJjJcCWUusPsbBWXxrRQvVWwrPWkhHKTIiNntwoODNZzndjJyYsYYCckIiKyyYyhZzDdgNncCbxyYTtXRrBGHbBxXzZeFfmXxYygGOoMFfCeEOorYyfFRgGFfcErjEwWeKkzLOfFNuUnouUEpuQNHhnqUcCVvYhHykKGgnNnpwYyLIiSpPseEqQlHhxOonZTtsSzfbBeEuhHTNwWnuUxjKklEebBWwyYoSsteEOoTSsspPSRrNoTVvVFRSsrsSlhtTDetSsWwTbIyYiLlNfFKkRrgGvwWWQQTtqdOAEclBbLCepXxuUqQdDyYPAaaSzQqZUuUyVvXxfFBBbwDdoxqQXNnHfWwtrReEfFZzKUZwfqgwWuUaEAageEGkKirFfRHAapwXxabBAtXGgZNnnBbOrUNnIPpqyYKGgaAGZzzAaxqEezYBbykSZpPvVoOnNjByYbJAaGjJRrVbOoBdDobBmMOwMRrfFmYmDdqQnJjxXNyCcKkXsSxYWjJHhqiIQPbwWbBtTrkKRxXbBYyhrpPRfFOobBtTTttJjxXTWwOoKkUaYMrEeRQYyGgqEkKyzZewWEyjlmMEeugGwWiILlotDdTWwZDdHOXPpFINnilLTqQMmtTnNvVPpAmMabBlLxzZtQdDqQonYyNDbBdtTIWUhvADdyZzYaAUuQqHhQEIKMtThHiImkivfFgoIiOPiImMtfFQqTgEyBZEsSIaAilxBbOKpoOcCaMkWwYzZeEyobjUeEuGgGbzpPZzZafFSsFIifctEcCLlCEeFfUuGgTtpPcxXefFTbCOzZfFoOMdDkKCcmddKkDDVoOgGeEWdDwRrImwPpJjkgSskKGFftTKDdWOPuYPpVvyxUuptkKNniIuUkLCcOxJjXohRiQqImMgGLTtXUezZEfFlLpPHyZpvZCcxXzVPKkDdzvvmcCubEfwWFcSsAuzDPpdZLFfUkKpkDdHhWkKLlwKkKSsZzfFXrRpPiIxmnNuUXxGgMvXxOoUuSsjEwWeeLWwGLgGlgjJykKYShzZxzlLBbpsSebMmMkKrRTlVySsYIifLlEemMWKkIiBbwfFhHtHCzzESsKOozIiZBbrDdeeZzrRLKAlLaQqpPCcrRkCmSsqXxQvoOsHhZiIibBAaFfUuKCQsxOnZZYZIiigfFxXbBbBtrRTGEZSszIsUTtuSLbYQqXCcxPpcDeEmAalULluRrLqrRQfJjxYvVvVZzeEglLZSszGqaJgNnGlttTdDDptTHhAabhaRrreEFfbLlBwjdDWwCxXKPpkckKmMuSxSrVBWwbmMYcCyLlXMkKWwoOmuxwkKWXoAagGyfFPprRgyYCPSsbEaFCiddDqAPIFfKJUujJOoigiIGgkvVKBcJsZRIiSsmxVPpvLeEltsSSJriIzZqEkwWcZzFfvVzpPQqpPMmZIiImMVHRrgcCTySpPsYAZzaaLlDdAPIipdDpPkIiKCVvNnwWrXozkcXxClLMUudaADDdZznNXxzZzgGHPHEeTlhUukKpPvpgCyYyYcUXxFfrRItTPICOocbbBBJrsSUukjJkKKuUaAoHhrnNaAaArqcLwNnEpPeoOptxPpUuxZJjvtfKqQAfFdnZzNgGRSsNnRMmrrFfdxXDnwWhHQqMmKhHziIZuLlOobBBlydOvVPpJjAaIiUUujUdIQheFsSPkKkPJQiLlIiInNgVvGeLlyIilLCcvjJXxFwWrfFHDdZAEeROEEkKcCeglIXxsQqSiXxLAmMaVSsAHhUzZqebhVvHGOxvaAQqqlLearRAPvOohHbBxXKraARktuvVUbBgGxRrXdDrdGmMwntTAaJjLlNCcdFfBRbfUdQqNzrazZXxwKkTtfzZtTCaxzpPZcCXvVJSsbaXeHhrMmrRXxSVVvdDGgkjTetBQoOOLjJwMmeECcheksnNDdgOokpPsSAaDvVFshksGQqupuUPbBzZEegZzBCRrclzEIiyAoOaYyeEjDdgxXdnSpPMcCmdDZzOosKOdyCVUfFdDuWxXUujJdDwXwWJwhHWKsSkiDjVGgqQRrzZDdfwWEeDBbbOoIiBAungeEHhXxHhWmMjoQqhvVPxXpUpBsCKonNQqGNngtRnNrWiIwqwWhHXSsRrajdQquhHKDdoWLlkKTtNnLHhfFMLlXhHmQqMrjPqtTpwWKmMLlbpAaAZVvzavgGCVPppBjJfxXyqQsknNgGUPcCOTtTnRrNGgVvnnNCxAaFNfvxHhXezQiWUTPpDhjJHBMzZmMgvVmONndUNnGpyGkeEKCoOcoOkKMJHURrODLlfFdnYyxhHBLgVIKeexdDtTmMyyDdXRKkrxCfqQOEMFiIDLldfKvVxJZzxlLLlwWXCHdDUuhbnNqHhMmQZXxOoCHhcwNnyjJXEexYMUsQqSOyCxKvBPpOYjkKcCmkRrWfsSDfcPKkptdmMfFzZxgtTGXQzsKkeESZnwWMmsSxCcWwtRtTfCcSqQgaAGFfESsUuubBXxDdssQqujnxBLxnNDdLlDVQqvjKkJvOXxowfilwXxWiILPVzWwdNnLUahHojHhOSdFTtxXQDdVJSsjEuOoMjSPShiIHsWwpBbKkfFjJaNnAEJjQIiqyYewrfFRWDNvIRMiIlOohNnMVveVNmMntTQeKmMkZZDdSsodDjtsSuUcatCORINUyuEEeeGRGgvVbSMQHuUhrRUuHzeEZDHhxXvbvVXxJjXxUFfLlVZzvihgQqGfcCTtnXxNLBNQiYCcycaAmOofxlXHeOhHcCExXebBMIvlcCDdLbBGnOYywWqQzDGxCXrRxJYyHhjvhcRGguPwgGWPmMaQqApChoOKpvVAaJAatTuWwZzqCcXxmMGCmMcgnNfFeXPVZzDdokyYAEeaLXIODsSlhdHpLlFRPXsSqDmMHhDZQqzJxXjJxXGxWGKkgLsDdmBbbyYVWzZwAoPpJqQhHRrPhHpolLqbBPzZnCpLlxtTtImMijJSNOopjaDdWgGpuqQBbUhHPwKByTtvPpoowWxlLqQqubzZBvmMtATLRrDHhdeWvVqQbWuUMVvmIZzPVvukLSmdpPDgGsNhVvIyOTJjXxbBtIfFyHhJETpPtTKVvLPRgVvtklLkdDWRlLrXxVSsdiIbBQFtTSmMbBrRQqsSsnNFfjHZSsqQrHhFmMfpPReErxVvXmMgFvZzSgGBHhXxGJjgbxqEeQXIEsSelDfSsfdDFvVmMoOYQqkKqxLlocwWCjCcxMrRmdiDSqQsHXxhYyrkeepynnNnNFfsGEeMmwWHhhFfmPzbbBtTbBHhPppgTEetGlLlLzujljJQTzBTtbnYypRXxpAuGVPQqpzZvojJOYQImMSUmjczXWwnNVYjqEeiISFfulUuiIxYYyyHhlLqQKFoOfHXxvSsjpPjTesShHsjxOqQOowWZztkKuUCifQqaAVvFzOeWwRjJrRFtTlLfecgUpuUPpPuuUxXgGqQeKtTAuqrlowWfLlEAKgGkfFPUulLcCYyNnpasDvVEedUuEZzyYSLlsHKTjVIfFLbHSNZzlwXLckKOSsoAsoOEeGaArWrRhQqvzmMSsZVFKkfHLlEeEetTgNnGVtTaAcCDdGgkPFfpKVIivMmAaoObBwVZzAcTtLlKkuUOoioyYWuUFfZxgGCeEcAgJgGfZzLlFSifNTtRhvcoOYyYHvdDqQGgAwWaokKOoAabAXxoMEGgaTtAeEevTFUehlLcCXVLokiIPpiQGgqyhNnHYIKloksSmMKizKkTUbeAIxpWbxeEXuzZuZzQnRrZzsSTfFCcbBtSscChVvKzAmofHHhhVRKkKkrsSoHhOGMexjJxXSsXxfFfAaRrlWwMmMMEueNVvoBlsehHIikGrRxXmFfMGgCcOHetRrwWcCONJazaAZfFumMUAbdjeeEKaHTtxXhxmMKkzZlpTpUmMuPnjqXeECcfoOVasuCcjMmkaAmfRgGCvqeEtTzZJyYjdqAaVmMvQRXVaAsTtEeibBIssAauAFSWvVGPiMlLZlHhLDrRvVVQiIqHwNPyYUsdfIhHigPpspGNcPXanOomMsSpRrWMmPpFilLIkEQhZiAUslLUVTtvNuJBbuBbqQXWKZEezckXuDdUIiiWdDwIRrkjJCZzoOmndnvdPyYQxiIXZYwWyIYeEzrLlRZZPmMKkpxXJwSAaVDpRvVGgebBjpMmPUuJXxOAWQMnNCOSwvVEAvbBVKoOaAMnLlSsnBFeGNMmvgGIdDiHJjhVVlLdDFGgwdDuUhHJLljoOzLlLmMlqjJQiItTJHNuUUKFnbBnKtuUiRrMNnmwAaWVpPZqQzfBbyYiDdBvnlLNequUgGQZshfpRFUYAHiITXGRrBbgRrNOnyEerRDwllLnSDddDYyaAtEexLlXhqwWVSgjJGMmsvHhuNkKScHEeAafFhOzZHhQqzMuUmbBIXxKiBxXFjWwJCUucdeEDibBIcYyhHqvmwWGCahHlLMqQLAaMJjJjQqnNmFNngGMmCKilOoaBbApPoOEeLlxXDWwLlORiQHbBpPPqQtoOVhAaASsYoDFmMXxOoAtTmMsWsITlqEeVvhHhTtHgGVVWwvJjPjJqQLyQqYlOoYzvXCcZqrCcAaRqQRIdHhOLcnIJnNnGnEpvVbfFJVXPpSRaCvmMmDqbBWwGhDdHZzoOwvWwPeEOUuOojJNYytTAaVtTvAamhHKkMmWwIOTtscCQqgGrRlmkKeWtMmAayhHYZzzZTvRrHhbNkhNRsXiIzZJObyMnNmzaQqKkPdaeEnlVvxCcxMmQZlLuUWFfzZwdDwzrRzZlAoOalHESMPpmYPUuUaAuLlbbBJuzrRLllLZULlKadDyRrYuwcCWqfFcCLlxWwXQUAxSGgsxGzZgaAMCckKmXxUaASHhOjJXWhqSIimvXFQsSYlNnBbBqQWwHRrJjhUuVzuaAZzRrWwnDdmMcCTtzKkZfFyzzrRIGgPyYXuUxpxRrPYTtqAtUbzOkZwWzmMPBhTtAaeEtuKAaXWwELljIAaPLKklpiIXlLLlxyMYbjJBWwTdyqQfZzxMDxLpPHhVWwdTtVvlLiFfQhtTPwvOoVOtTvRrVokFfiIyYKPcClbBLTwWhHtUepPXfCIlLKrRlSeEKYqHJOojhrUeJtvTqlDmuCcUMDWwddkxXkeEsXxnHhNTAaQqtSHsNsXcAaCxuZEobBbBTtTBbVvXQqwWmIQWjUsIiLlSutafFAnNTNxysWjJwShUuyYqQRzZteALlamdDHTlqpiITtKKfmFfMeEGENOjJcJjkRRgblDRrdLlLTtebTtBBEegGfFIwWAqmAaLGCcSMUzZuYKdDmglLyYhHGrzKkZUuLlgVveEYfiIfLaNGdaaADdvgGVcmMtTCHdZzDGNnHhhHghGppzZPNnkApyYIRoOQqrYRXxmVdDJjfYyeEFYyBbWlLDSsvVOnNoAcCBpPZzQbZFPMNxXxVvOovbcHhbLRrDzZJsQBBFfbhQqQqBaAIJjyYJaWwWpPJjniwpyvVpPYkKTtyWLlwOxPPTDnNdAcCzvVgKEgqLJhhHHrREjJejlNsSnhFcCVvzZfpoIiNTZeEzgGKmnNKvBjCAZzaGLlqbZYdSnFfvVDlLDvVLdDPvViHfzOvVbQPpqRZzrBoPptfFenfFkslLlTfJvKvLlNcCnGsSukKSjCcbgiIKYylxGvkNntTyGiqQhHphCQUuWsSsSsSaAEqKkCcCzWwMmTCDgCNnQDdqAaJLxzscspqVzsFJlLjNntKgFuSsoRrUuOGbBEjJXxFkddOoIxyYTtOpjbBjyYVvGcePpjGiwGHIUuNqWGbHxWwxOereOoKkwUJjniAxdDXBeZQqOfFMoBbOmMgjJnNjJcCyYvavVBdDbnNAWTWnPcCdQAknNKsMmzZIiRTtFfrUjAaHgGOxMmfFEeXYxERkSMeTtnghpdDdcCEUurRUuIiLMmRrzsvVfFdDwZjBLloCVRPiJjIIPGWnKkNwWnjJWHhAaVvPGNnXzZAaLnbBaKRKkYdQqiIDzGZAazgWaHhJjxXlLqQAwVvTylWwAqsJnubBvVDVgGoOEevHhRSsrFfCwgdcXYbnNBqmJjkFfrRzWwmjpPJxXqadaFfXxZzDqvVoglqxKuUVvBEegNinATtaNjxNmPpiXyYOoiIxQqqQwyFfCcCWwiOocGHiHhpjhHJAagGPIpCYyGgofMOokiIPpKkPpKmOJeViIIDdWnNmjJnRroORQcCjaAJqYjaBbTtBbRpPCcgqbVvSNGgneFftMmNAeESWwsrRoLLEgIiIUlLugGinpwsQKIszMCSslLAacWaKklLzafEuYGFLlfHhPpRgOsSmMgkeEKSsGQKkbpDMmMRfkKbROogGrKhqaVYyKkIUNnuXxzjwqXImrRldaAdIkLQqKrvQqYnNysSVvWTtwQlMWTjJrnXxfhxXxaAfFwVsSYQJdpPwWDjDvVkftMpCcVSsnUoshyHEfaGgXHEfVRogGOhLvyYVuNRrnbVMWIikgyiDdvVIaVvwWqthHViLlnNTWvyUuNQGlTeEteEoOLAaDDdkTGgrRtsuUokIBbiMmZzOqTCcbJjLUFWSKBzaAuUHxjJdDQtTIiIQqioziHPphIbAcCcgsbBbBqQpUiLKkjJSCFfUJRrmMjftTTtAnibqFSvVteXmMxEfFyYfFUuwWTtTyUNpPIiqQloOUuIikETUMkKVvmjJuzkKZpAcaylQBrkKRUDSsdZzbZEepSsxIiMmhlKkIiMgUuGmGhrRVuUipPldOAaArTiLlIeEBNyNnYZzMeHhEoOXcCkwZAKGkHawmVUuvENnvVvgGXlLJZCtdDjaUuIPVZPLlckKCpiIfFeDsSoOBbowWrRaHspXnPJjjmMTSsAaekKBrPQzZKfFNngkbBsSNnsShzfwLlnNWPpVcaKYBbjJpPLlqHhjJrRQIQqCcQnNaLdbCplSsLyQrRqDdzdCcwgGBbyjkeFfdDEKzXxVBYOTtgTtGIjJAYPrRwmMhcCHiINWwnNEeMmimSiIsmMMkKygRaNnAiIrAPRZzfthHTTUNnHzTtcuUPppkKnvtTHwWrrCcmMhHUuUuRoOoUuTuUtoVoKXxTtkAaJvoOnOoCbBfFWBbQqYsrRqiIQSUFKSsDqaAfFnNGCIiqQwWAVUucCdDybBHhEKkxXNSsIXxiNnvxXVDguwWUKKkGhHgoSsKkbBsSMmpmvGBbGygGUFfmYeCbQLxIiXGglpLlCcyAaYKuUsSUDfFdYwiLOoNntfcZwgGiSGTFUzZuXWuUwPpSsxflLtPOfHKkkprzThwWhXHOFVvfDpPmMIidiALBbHsSMmnNrAPlLiRjLlJMJiihWwbByIiYHIIKGtRrmirRDNaARBfTDdFnIiNAfWVGzTWralLdmMzewxzZCcXkaujLPYyKkpllfulLhteETBiIVQYyacCaAAKgFfnNlEJjmMevVEeHNIYedDEbBaANaUwKkIiXxaAtTDViVoOvovqKNGaAanIsmbBhZzGghlLwWHYycCqcFXuXxKkquUooojSsJObuCczjXqXRrSsvWIxMswNXjDmlFwhoOfYFLJDlKrPpZzCcgGOQqOooPKLLrARrfFoOxXawjJDJjXzkKEeIikKyGdLlAWoOZiIwiIzFfwvVvenuUNnsSsfSsFSlCvcCVcIiMcDdFagblLRrBGDvpDdsVvxGnNsSySsYwnNWrlLnNRtoQyYZbGgGoznNZhyxOaLtXXxteSsHcHUkabCdOOXHjJRrXzZcCzVlLYypvzZYkAGYAayoOeHSCeEfyYrOoRFoZZTtTqQtZzorRlnfFNgCGjVXMwPpZzyWMYRjJvgGVCcMmMmIEeiPHhgGpMjJsKnNhaXRrgGDSsdGRCcTtmAKkaOCQqcFfGQKKkaKkAklLeOcCqQEeoEVPdbBwOoNnWlusmJzhvVIiHXxaABtTWwDhVgIGvxXxrROCDgGefFEpPwLlkKiItTjHYUuyhkKJLlpgGsFQqJUAaunARrDdaaAIiAmMVvuLvVeEYyIkqRQqqKbBkQrjWhPppPYMzUMmnNuohsOTtNXJSBDxskqUujWwAaJqQfFvVqdMmHhqcYyJecvspPudOxXKkbBzEzZYyIaJjsqlLunrRcZPTeRrLXNnxknUSfQkKqbkmwWKvVUuqQmGdOouUsCxVdDsXpPpicRrspBxXuJjbYyfFOAEzxtBuUrfvOoEdWwcCUmMuonYyNnwoGSTXsSKkBMmbpPxtkKdDlhPIITtDgGcCogGdtTtmIioOCTtWZCSszZzinzbBCZNnBcgGSsZiojJMmwLlJjFfEvifgGyalfsOovLmDdnJjzZIzZJjCcCdHhhFQxUuyFftAqQpPaTyuvbymGgMZFfgJSodzZTtEQAUdkYCaAKBbPpTtkONnpPoQAxXaHEiIeeEhrRxXtTbBnagmMwQqenNWwrPpqQynufFUMGkZrRzwmMurRUkKWKgMBsgPZWwBjQqGPpgBENnRrCahvnNNujHhoddDVEKkHaCsZPpMvdoODLppPSsPkKbBpSsPeEgrAayYIYQZQpPqtqQTAcCslLyYOZzMLBbZKkOoiuUbBDdzaAZTtvVVUIjUuAanUuvVIiYuKsWwKjJkSsSLbxeVvlZFfrRTGJumMUuSsPlvVKkCcLnNLivbBrzaqQAyYZeUuqKkTtQUpPcjSmxHnNtThXOlwVWeElLDdeWwVbBiRrwpjpWwbBPfJjanuUudwfSsFqCcsjLlnoOGgjFCcSOopPqAjPhLlBbJjAdHdDYyhqkKDQYSXfCHhVrRmxczSvpPLlyUAaaJmidDJOYYyZzyxXTdiHEkQqtDPpxXeELQKzCZzOQqmNnxrRjrRGhWDysSFbKecJNPpaYyAcaAfuJGPTRVmfZZMmXrQqODjJRrjJrDFsSSFRiywNnbbBBWMmMDHhdElLlMqhqlbtaGWwgCcYyCYOoQrLlUNiwxXWDdaAPpYmgGMyIDylsSioOIGgEZdLQfFqFbBZCcGLxcSsJPmzsfjJFoYytjJdPfFAqQjAauUJhNkkHeEoyYjjJhDjJCQDdOotjJZzTqiEdgRjZzXTnNtCpVvNucQqjuagGlewrgcCztTEsSaTtHxXNEdDLlvWABGcCOzwVSsRSswWLuCyYrRCREBIKDUuOSsCtSMLNnNxXzXvpJjeESPpVNYkKgRBbxpPQYLLyHhbBymMRZzFJDdDjASsMjOPIaAwwsSqoOQWweZzrpPRzxmDjIiKHmMfAIlLbQqZNpPUErYSMmkKLluAavpPfFTWwUuZzCccoBvnstTbcGJSZNnNnucLHzqQPBPxXphHbrRpsNsOYeEiUudDGgMKEthxXyhHByYxTyYeHJMzFfKoOBXqzbdVezgAhHwWaOoGqHhjTIGKkYyrIYyYOokIcsbBtKcsHLiIuUlbERWlLwxEJdZeUbVvSsZzGyqZzQifFIYkpjbSoOWjCcohHOvhJEanIRrmKkMPkaAKbFqFfMKkmQffYYycCdeEDyZjLlqQSvVCcEyzOocZTtzcXXisSfnNyGgLGaERIirzZhMfwWoSYyJjgEnNeYJrRGgjoqQAJdExaAJpPYFRJsuOSfFYcHItMmTjVOoTiwJcubzetTSPgGmMbOoBHZfephcwZNnLlGgEeKKkRVsSvhHiEeCCzZPjJpAVaUAGNSaAgQIQqRGoZYyEcCaAHhBbemsAaSMUHhUuCcCcGXxMYpkQIkZhHiqQjedyIIZzZtTmMAJUHwWjgbCcBdWZzlLwDtTyxXnMmyYNdDUFfYyMeULKbBmcCFMQqPxSzZRDyEXxdsSDeJkFSspCgSNtMmqrRACctjUuMmlSsLlLqlumMQqDhHyYjJdkfqkVvklLMmdDlSsdWebedDiLhSNnsxKBLlvPjJpxcRbBjJrJQfFCyYckVYGHvLlXxRrVPvVpKAUvEUuePpCslsSaAOPHfwWjJZzWrnNRxMgGmiofxhHtDuUFvzyNnQqnhsziIOYDdzqXxQhCzfrRFJQqmSPEPpsSsXNeJWpVvCcBFEXMmQYlLJDvNtOwWwWnwiiIzZpPiWwEvoofXxjoOrRSDsSAmMjoOmMyYKEwGPTRzZFhHftTGuUocCOsSshHYBzZpBbPEefYgjJXxGyYCpyYqZpGgPzwAvvxHMzcAaWhpPiIHhHHhpCKkzLFedotdYHhdDNoFxXJHhUuhAQbBqqQjCCKDJIPBMaAmbOSkKsQqlbBkVzAaRghZDxXfSsOowOQtHlLwWCZnEPuUPmbBVpHeEATdjzoJjYGNLlvVkgyYuUbkKvyYfRrFVpEePPHaApmsjjJpPJVgGpPRODdGJTqQSxwWXEnHXxhAxtDdSacySKbikJWwjpMmStgRmDdBbeYVvyEbBYwOOAaoeDuhHQwWquUVvPuMmkCLzLlSPfFgLRnYqQRrDdGxwWXlLlZzSMhHdOoLBjIiJLvMmlgKkfTeEIEpYXhkKHqSBmLIvUgGqQpPxXIiOawWABbokKMoZKvIipCiIcPnNVxLSpuIdDtqqaZImMjzYkKgGFfbBQRrSoOZzIidDFHMgmuaXxBkJiIgenxtYyoUBDrRuTDQsMmSgGxSUuoOnYyVvktKEwTtCFfsscsasBbSMmAjBHhVxYDkKZDvVdAJTbBgGCsquBLyPPyYnaALlNSLkKlEeRhHAwiIioOGgQRtTPpPpQLLllKeEjVRrEeHiJxWUufnHhVwwKkNGnwgGrOTzZBbIiSHhgGkVtqqTtKVVvUPpgGzMmkKTTtpPbGaAUxvOSIbvszAfghhjLlZAaKkMzOBQQDdWwlLsSIifVRrxbNnZCcpWGfFqGOALrkKEGmUNdCSHhsiHTgGtKlbMmPpaAuUwWYfGjJcCSfLrRmskthPpiIHTzZqZWmpGxEeVySXxXHhBGgRGgJHzLtTQqlwpgUnvZsyteUmMuJPbDdtubBWvVUIiuwssSaAsSLuUpPDdWnNGAfTtLlFHhQMmVvYnPXmVMmmLlvuUlkrRKeEVaueEtdDTPWwpNWwnUunuWwuUUNuUQLVNGpcvLlShoOFqIfpdovfFWkKwWwAaKkhejEobBcoOoOrktABkqxXtJjbVyXPeLHfOeMQSsyYBXxkKGJkKNnimMgBILHkFfvvgGXxHGHugGsWDmsSLhKFSQvVekKEqQtNnNaNbdOTzBboFPlWwRrVSsvWZLUdyPiIeELiIlFXjCWhHhjJHlLenNgGGgKRuUXxqQesStTZVxKkXWKgXxfFoOGStgvVbdxxfTtFSkkKPpFLYyhJnNjHDdyJpubzZZpbBeypmIislLxXOtTUiIuGoLljaAoEeEeCxXHhaPpgGXDjJdxASsScDvliWwYIosSzZOiNnrUehHdVTLfzZsSFIiwtyYnlLoprsNnuKkYeUuYXxqJxXfFHsSwWfFwvVZJjxxHEwEeWDAUuawEKkKkeWFfBNZzDatpPezZEOohCHExXpEupyYRvViNJjahjUwWGyYsUuULXlXYmMCKtoOTdwmGgbkKBMbHqQEeOzqQYGgONnAnNIinIiBaZzOovVDacoOumMobsEqwWYhHOcMYIiyHfuZJYymMXJwHGgrpPsuwZkSsKSsfTtcHzZUunNKRrhHhMEqQljJqQRrojtToOZzJMNYNvLSmpCoOqQcRmOonxdHdDhibwVJjtWBpCVHxGckGgKWFhHNSSOQqoEilhHGYgeFfDzdpPDUuwJXWFopPsqaBdKdDLlUEBbtTQMDIiPpnNmJMmYiIEeTjJMFfhfFjmTtMHEFfPWcCwxXYytTjYGgPpZzkKPGYyZgwWGHVhAPGjJdDwfFGgjJnhldqQkgvrzZgFRrTtvNnWwnXnNGAukJyvVBFfJPpWwPJmMjQqlzxBbCCccQhmtfQzkJjKIMZAeXyYSgGuxGKqkKSRrsknIiQozsHReZrkKZtIfFpPDdnYvVVNVaATthHvLfcCHVgQFNcCdDshHSXwWhkdWvmtTMjyLgGITiIzvtziBLlAEBeXxFWDqlwwNEMmADLmwpPlSvVyYisSDNntTKEpPeEeXxTsdeEKihToPpEUOoFVvvSlLsRoRUuWJqfFQJjxugYTtWGgkGghHMAkwYeEZxXGgWaAwpIsnJjNSiztzZTkXxYymKAfYyMKnNkmDWsvNYVvKkmMPWBooOOUqbaFfyYAJtzpnpttTTvxqQBbffFXocMbBAaVvPSsJjGMmFfJjOlWMBqxlLXwvIgGwWibBJjSfFvByplLKnvIzlsDPpWUuGgKHMyPQJjfxKgGaAWGgDubCCcsXbBxiRrymsSTmOJjLtZckBSsvYjJwtTUzuLMmlTXBbsvVOoHAaMmZpkhVJDdqQBBvVGUugvFOcLlBbFyYfKBPWCWOFaqnLlLVvgGQqLRrlOSaTtEvVDhpPHtTbSaAfwcCSwYcCghHWwzDdtTtoOzDJjhbBMrRlLlLwWmMzNsgvbBJjZajFYytEUBbhHwOgggCcyTtYVInSFNrRFduSsLlUVzZTcvCOiapXrRVvUgGMMmxlLIXYNnOAakCllJjTbKMSsyHhegGEYEvkKVwOohFcUJTtvBbsvVmOhGYykDQzZgGwWpAdDIbBrfFiIjgTaQhXxHSbKkBHhsWXZzkgGkzVYyvDdwmvUuSLoOfQqdQycCyFfYzkKUtQrpPRaAtTqzZVwWQyYqPZoJFfMDjJGHOucLjTtJUulvFGbQHhbBbQqCzVoFfOeJxbcCDgwPRNcJCcMTtjJmjHOooUnNkKiABKkbukTWNnuZzDdmMsSwMmUgOxWyYoQqxaThEwKHBnNsuCcKkLmMEepoOjGHfFwWOtpEeuTSQqVItUhQKknCDQqEDaCvbkudNTwlUuDdgGmdDsPxjJgNwQqKsSAqNnRrBEaAeHoBAgwOwLgkvAaCcapPAeEOmJVvUyDFMHbRXxxXUsSurBYyhftRnwRKBpXoRtTiAXEIiexaiGAaeEEeZzVFbTtBfvAaArifGiYgHEecgtPWhtZGfjyYXSfFxVrpPhHRlmMKFfWpzqQqEeUHTUutUZzvLpKzkKYrRYnVvsSfLlnKBEebWlLiIwwCcWWOWwTmMXMVULcHQYyqhMmTlLGgNnnvOOuqQUtTTtWbBkKlLXjuUcCSCcUudLlKWVUMmPpOoPpotTOsPPprXxkKKAqKggOrJiUuNZxgIMmiEBTtXikKGtOoQkaAQqsSGMtflRPphHZzxXzLlHhZnceECuYrCczODgcYyjJjZXnNdUFfsYOJEHuUslEssoOhlaATdsOHhRfqQuAJpnCQqufWezGWwWwgRHhTiXxuGYBegLdDlLlzCgRxrVveVtkiVvpabIemMxVQWDdyYpiIHhpPehRMFXqVZvqQFIbETtPDzZEhmQJjqOuCGPuoWWVvdDrRutWUaAjMlDcONWQqzBYEOuLAXBnCkNLaOWgGgUubZzzaAuquNvcClkBEaMjkEWgrmcalLrkmQIimVoJKKGgrYxrNlkBxwsOoePpJWTtwIejJpaBbAPsSRrIfaZoWOwNjcjDrqPhHMOXrqQQTaAiRrsKFjchPYurjgxhQqPfFAdDcCapHXGJMmtTReEfFUyAapHCJfkjOoJSRwWOorItqqQRfhwWDdxXHFxoWwmCcpQRdJCJkerREJjeRSslLcCrEKnWowOzAFijJEPfFpijESWXbKLnRXtTybBRkkjOvLxXlMqMKRAPpCMRIiGMmweKGgJmAebKLVnUfTtFQdDUZBGwofkRrKFATtliIrRxXnQqKcNbuUxdehHEDalUoeybZwnoCdLmJpPuwvyYwWEeVThHUYywJjwmMOUpgcUoMrNnRBbHeAadUupIieBeEifVzvQFfxfmruUHEBDxXdbPUupPgGvVeEwqvpPXbdDBbzZBKdDkOobhHBmMpPEGWwsSgiBjJAPIKTtTvERXrIirRGcZGgGrpSvVZzsPREbygUItrZjJEwFUcNPjaUFrqQoSBkKbDtLHtTSrRnNSAaeLShCyYceQqjyIYEeyiYoySuDAaxzJiIFfCGdoZGgRyUNvVMmaArKlaALkLkKFuUTmgKqOoXxTUugIxbeGXzZznIjFfRoGGkoOQlLmMakFfRkKpSTtBbKkVWwvuvoOwkDsJxGKkgwJjooVpPLlNNZzntClvVutTvmxtowkNFqQeEHhNyoOyZoOkPlwWVZzdDuTtbBhiNnIuGgQZjwlLWaAgGsSJZzPwkiIxXLvXWoOFaAiIfwscmMCxgGJFgzTHwpTGpPChCckKGyUuIgFIRadDgIIiIrOxPbkklPpiKrRCckIMmLKrWNrTFmfdYujCcMoVhHyYNKknpPKFfGlWovVWGabOhbQcCakWnGJjXpSMgGVvLWkKtnuUDUKBVcAXxdedfOoFzZcNqHuTtTivJjstWwHhUvVvcCVPTohwYyWgJPdDJjlUpOomtTMPSbDdhkWxqQXeLlEeHtapGgPAAXOFfwbBRrPPppHeEhXoGuPpqQMmWLlQWwKkTBbtWwqmMEbBehHmMqQUwSstpPKUaZzIuOhPcCgGpcCCnrpWGSsdcCPtTpBXjEvZcBxZzBbXqBgfOYyoVwWpPChHUOoofFxdDXhgdmjSsOxXfFzpQdDlLqBbvxXTuZTtaAYqDFLlvVlSssVMUPpuWtTZKKutTUZzxwaAvEeVAaqAtGXEexJKkiIRbBiUuaPTtvVqdKgHLloMBbSIiVjuCfHWbBemlLkBcCtpPzXxZLLcKoyeExiOoXmEeuxPAIocVCGgtWwvDfnfsNnNiZzvGGvpYyPAaVGQqoWmqQfFMuerIiRTRrfJeEhHAzCcVkKpPGSnZoOmHdZfFTGgZzZGyWsKkcCPpWFBbsBCfjJFcuUNndeOOooAsolNWwWuUwxXXxLlQAfowcwpbkcCFfBEebCoXxySsHhTtYfVbbjvcCHKPlLXxBbzhSxtjJUZuWTtyVCcSsbKCzTloMthHMYISyYcBUdwJjkXFHhnNqpIsSiYmhklLwdBbuUSLZiVNkeEPzZYKkbVLlsJjbBVhHWQbmwLcCoEeWYVvywgpkxXKmCOxIiusSUHhNnrRFALlaIXxiLlXVIiIiTtPcCprRPNPZTYyjBQubwpMBkKbmynSsBlLbGgmfFHhMVSwdAlLnNadDZzFakMKUuZPlLzyWKamKwyGUXjwrOrSLCclsVfoOuedDOnpPpPNtcCrRHIkDSAcCqQaqQtkpPdKkIrRIisLWMlGgdamMenWWKbBkIQqiLoOQdwfEbeqQLlabIRrZTVmMrRZIitOohHiTtlMmYJwjFfTpPtJsSWVwDKHxBbsSeEnfqGvhTtFsSlnvyxXQqYyNpPrRiTzPpRzWlLwErhBbScCLlbBZOqNqkKQKMmQkgXUsMbBmxEazeZzppPPEmiZqFTMHqXZLBbpzZbcCaABhHRrlLUuoODVvdjbQgGqYjKUagKkxNVfGRhHVGKDLHNGgtTWgpaHvNnCcGghzgpvVPZMmqQzYyDiIdpyJpQqYyemxXMhJHGDdgmtyNncCMmaANnjMDdWwdMmmqthaAHQqkKTegGuXxJjkDbFfAQSNCcnOfwRrxjwWrRWUOiIouZWwHIihdEGCcXxygtTLIeVGDdAaDdGggvsdDsIinfwBbkOoMmKCgXhHhuUvcPbwqQTvWEeMmBIkKcCcCDXNOoMrPMsVvlVnynmOLemZzDdJjzXxZHkhFfCFzWUSRhAaWjxjPpIizfFUWwFwWhmCohHqQyQGdDgYyeSBODdUzZWwxGgXCAdDdAbNaoyMlLzZmZoeExXIihkKBWDkcyxLOWwoxluSIiguJHAnIrSsyYPfFHhsQTtqSUePehchHHEepPTAdnbdehXXzNnvxXVWhjQyEyKkJjQqUrkKSzZslLRSRPOuIiUNTssSctlLTCSWltvDWwEuROoyXiISsZzHhBbcCkKJjtTxYyXxBbISsLVdCobBOWwkKuUsGgZzHhcOFfbBJkKOdDgoSMXxKnNkPYEPzoOBUPjYZzRrltTfPpKsSsXlaALXDBGTiIsgGkwvzDdErEekEWwTtwcJxfpYDpPulzmMwbBLpfOZlLtoDBnTtAnTqKksjJfkHRrlMdwSUhxXgcCvVhVVKhliboOGIjxXgbSyYsqmfIiFEWUuwDdoYyFhoOlEpPpPpxvVYvsSBMmKhQqHkXxTxXQnNKbaZzTKRBbrRCnNKkdDcCOeJPpErRYysSDdhHxXDdAkAaTtKJjdDGgaHhHVODPFiQMmfHzZsVCPgnvlNnndDNqmMoOKkLZzlpPPwaAWprRBbUQyYcCqAvLMxpNyRrAaqaTtgmMwzZlaGgASpPUTBpCcIijETYSzVNuGPjbBJQqLxXlWZhjrAabaXxhHlLVvAxeEyYsYvXgPJjpPMqQwzQKjRrJSMlFsKkgFyTtBWwLmTzZVvtMkhISscDlLneAaTtEuhHMgiIeRlaoapPAgdVvDQaAIigwPzZzDdrRBXUuvFspPSgLdDRbBrllLvGgVGMmgtTQqIGUuLWwlgiTtGqdiIDqbQIiuUqoQrRqZmLlrRzJHHGFkKaZSVBisoWwVXugBtZuvkXxQGgQTvRrKkKstsSoFMmfRWNgYyXxgGZznWWvNFwWwXfFPpjIhLlvJZzkQqqXxvVrqIdDXxKkWarJjeEsppYlnNbUQSceEQnNEeqRrtjQqpPazdyXvbJSCmMSScWehyYFfHHhkLlTKEeNoOsXqdtUUudbuOYyrRTXNEGMmwWjKbAUMfKiIkfFFGmhfsqyZJiNnzAAaQQTiIiEeUPslXkzOmpuUqNnQJjQqPuVUuiKQqklMbsQxyPeiKkeEZliIwWLztFGMmLVhhHzZrRHfKkFoOlbxTtXlDmsLgaAZzKkyNrpPlGHhpuUsXxtTZlcKUpiiVvIIUdEJjoWyMrGTsPKTKXuUQqxyYktIBksYCAsTBbXpPpPNLlnawWTtNvVestWwdDjgoghHGrveESDAadMPhpBGbBhHKngyJjOZJDDdtahPvMWwppeNvVzchRrTKkqoAaJuUjWSsLlFSsdpPzWwHGrZvmwxXWMZzKzZRgGrLoyYNnpijXxdkcciIJaQqHjfiwWCcITtOnDdkKyDTODEflZKkWjJFfBbNnwckKmMPfFlLYaAyhHiIyYwdDCeEZmpPhEozZOeXrRVVfFyPpYaWQjyYJPcyHhFuUrgGRYyuUbyhHQqSgPjJprtzZpgWekEeJKxXkadWwsJFUIiuOOViIeIVvOoIYyWNRrIVvioTnVBclxXLCbFoOfdjsSzZnNyqfSsFxefbsSTttTZztTPRrwjEnNpPneEfFDdKXxkVvmMsHhSxuUSepsMjZpPPpcNHhnHaNnAPpmMZcCyovVySsSsYOoXAahHxZSHNYFfvEeVCfdDxXFfFcZVfoOlJfFjLdMmEWwehHTXOoqQFOIXFfGgwFhphHoTtLSOocVuakCchlkKrRLIigyvlLKCcqjAaAamMCXVZzdDOMmoUubLlkXHlIEBEwDuULQqlLFfKHhKQFKDdXxULQOooOIuUuUiJTaHhQmMqQrRTWwnsuUGcPfxXKjYdrsXpmfMkluEQqmuYVFfvGJhujaziiYDdDqQEJIznkKNKiqKPymYyYyguzOZzgriqGMmsvVnDMFRrfrZzReuMmUTbBtEmdNPRnNrpngauXFfRrzZxAvaMAabBmAIiUQqawWAuaccGgCcIrkaAzWCHPEFZzzhpsEZBCBbcUCjWItAGgavJihCysowWUSjGgrfyjXwWDdGgepPDysSYUujGgalLOyGsOarRAFmHeAglsSNnYFnNsXxSxXIxxCCnSsjJNZYehHBbSssJPeEpzFIiBMmvVpmMiNuiTtIuUYyUoOoOAEeejHVBbJwsBCcJMfYgeEbBGyFqQvjJVmfqQXxFPKeXrRxEgBuEzEeDjeXrNneBhnSsNSCkTrRQqSFfaACibhmMHBKzZyiRgitJQUuZEbBrRvDBQqZQxbkZmbBjOoJjhEtXfFbYHTekmaAhHIyoSnSZhlCQqiIUzTBbTttcFWwfCsjgbBSsCBTtAarRSNVbgAaGOCYOoyteEgaAGUuVUsygJjGReuLlwiIWnzByYiaFyYbBhktWwrRTJdxJzZjMmXMrKkRXZEWWizZpoJBbmaVvARrrRaJdjfrUuYeEuUiKkIYllyqXrGynvsPVRZzDdrxrRZPprKZzRrkRnlmsTcodkibuUerrRbBcJjyYlLvVcUlrvWytToOYlOoLaAZogjJbaYykKmMwVDdenhAeZcJhHjCGRdDWELAUJQqCUrRrRNnnPrRcTWleELwtxJrMmGDeUuEqQEGgKkehHezZzZICccdHJFfODiIlLbBdhKKnHaIipuUyYmMCcDTNnOSZMpjmMCckKaACXlGggzYyflDzeLYdnullLLRqyVvcATxXBLBbhHQHQeEmlLSsLlLemAvVaYIrfsdDfdRdnuUNDdoRxzzcCFMvrhHNhHntZqQzpgjUmMFCcCmMnjCEkBfYdwHgZbBzJXZzNnMoYycZkqldTKehIrRDPpckKCtojIqQPpMpfFPjAupPJjYVsZCXMvHhcFxspPyyYqdKhNlOoLnsSxXYyHbBkGgdDQdDDaHYySspFCcgXxGfpPJaRrQsfdDUuJlLqQGgNJSQWwjJWDUNAFDdPpJPWDdIvEhHwvWLoxXaXxAFfMsJCPrnNRpBbNnuGgERVmMIlpPpUjgTttzLEIiXBLllRrkUyNJiuvEjoOOoJeIOcCozMmrRlmoScCvBbVazqyUBbuiRURrPpuGpPlxXHAdDahVmzeEeESsScAheFKwWkfvDUuOJUMOomSsnVtSsTHsSAcbfIixXfFFBebnNJbzQqpGSbMmmKkmpPNYXxREWGAZzNqVvcyKkKDufFXxaqtTeDYyOsjGzYBVUYKkdDYXqfHDchHiTtNMIilVSBbcCFpPLNnAYVYvVyLlLlEevAhRrHaVvjHRyUuYrhAaJwWFIVeWeEOtTIzCbLlzcZNDdIZrRLlcNnzwZzcMTDRrTtAaOsyYSdiipHLpPsgXxFrRfHhOWzZNODpPoOeRrVFTtZzRbTXZJjWweLlanNoBmMNnSsUkKbPOoSCIhHPlLxSNnvOaiIAoXcSKrRkDdDIigMLlkdDMKBNJjjJjJsSZzWwnAaFsuNKlEtrRpzCNneQqSsvVEJdDjNsSjJUZRrxXzQSDdZzAgGiiIesSZZzoDpPUpWwgGDdPSLlIinNBbVCEzZjFfCvVUuTtAaQCcDQtBbNnTqQQKSXdbsjuIiUxcCnoSHOrRZjJmyHwJmMkiIKUuQKimMWwlUSsYyaAdSsFRrfDOoaNjfYSsySMGgmjJdDPWOvXxVoabBAdcoUfHhFuCcXHsSdyZzYpPbouUtTOZgZzGeEjMSULXeEPpvVxQqDpvqgLloJeEjaAMsQqSdTtDrxXgSsxAHktTuUSmzZPSsprdDymydDYwYWWwmmMxvJgcGnjJrRdDNLOzQqZADdazzOcPpshRrEHhgaeEKyVPvZxhZzxooEWweDHhcBAKgGuhcCXxuUChEFpPfTxTlycCYAdDoXYHWwOgBzqOTrRwWxXgSsXSHhxXPmMVdAfdDCmMKkmgGyYLksGgRrSKNTsyYSWwtNnhJjHEbBnMmNVWSslLkKZWzbBgGOoLlwaDgqQfFYZxdWAvTtVkKayYRUulljdDJzZeEqBbQhHkpKkRCckKLlkLdjhHloOfnNyFOoHLjJNnlWfLMSKksdJxnWSmwWXiwVbBxQbBMXxaAmxSsJmMZUBOOQUZQqzxVvJjfCdDBbQRWwrHMSiNfFAgcCnRrkQedDqQEVOIvdQqiIWuAnwEbBeWtKkTEeQqyinnNnNEAGFfgMmaeMmhLmMGkqvpPnNbHUFNnLKIVEevJjikfFJUAKQqHdfbBiICcFDhyYmMWAaEfFZDADdRlLUujJwtCcCGgcZRvjNnJVCwWcrgvjJiMmIwFafYnNytFbrndIFMmfMTgEebBkjmrIpaRhtTlaIVcPvVpCvtTXxwWohxHHtZRzZzZaAeNndDEkKqQBAabPDdKhyYOoFopJjgzwWZsVvZwkKWzVJwWjoOdDvWlLzCFaAsSTlIaAYSsyWyhHukgsSlwWLGLlPqBQqYycEyuNnZzUMvVuYqQgfFgVMPOLlkuUGdkKnxXxXFZzKkUIiuJjfeYGgvacgQdAakjJfuywcAaNaAFfVUujOVvvhHhHOOwWRPphVVyYvVvRrNPCZheEeEutYDdDOodNnyFrpvVaGAaYrYydDRdDInUuAaXxWpUTtuyAaaOoidDxsSXiIoybHhvnNZwRrbBWJWwYtZzvVTWaAhHOoDZQqAaAaRrYlMmLPcBDlAqipPIiykpPAaACyYvFyYZHKcCGMSsvVmkRrLlqCcpRbEtJpOoNxHhPShtTAOkKdQqEAGFfgazsSCcvpzZoOYyiAJTIiczjNndXWwxDxPpVeMWAhKgkazWhHkbBKyoOYmMzZKxmnbtRaxXSsoDLpPGFjJWwfgIvHBJjAabIPpizZgLHSZzsXPzBubqDdLYACaPnNWwoOmlLMtUueRRrrKLxXUrRyYuJjnuDdYsfQBINaNFfnFucbMmBiZzIslIuPSGCaBZDdOqXnfFNhZbkzZswaAfzZulBNntQNnmMoYyKzZOSKkKdvkKVgqnWwYVCcwtlqQgGLICcvTQzRrZAYMYDdyGgmOoGKwNnmvOoBUlHrvFeyYISsihnNxAFQqehYHSOoRrOuNvPmkKHhTFKQTtqdqXxkKyvZPpzfFZzWUukKXKkHFNRtwmtTLSsqDdLzZlVRklKZzcCiDDLMixVvQekKEWiIHhJZwWivAEpPlLevMlLTtmVQHnNeEIikBFaArmXxdIAaiPBqgvVGoGreRrEiInNgQqFrRfyUeFAZSsCPpeEcAwmZSiHhkqXkKxSWUcCdDuPNsSGedDllOfpPVTtvFanoOTzZEdTtUuDvVPpsZOozBKkQGrAJySsrgzZGNMwIiIYyiNniQqvzlLZEjLloFOBbcgGPQqTthgCGvVsSgjqQJFfxXKkIcAaYwWWBbIdZzDMxXnKkYhHYjJyyXJfFXQtggGSskKZzGTqzZxInGEebkXQLGdDOwWQzZdADsSAQMWwZKMmnNMQfFxXyxCDGWNnPfFhHLlmMpcBNnbnaANdUNjSCcQaLiIYtRDyYdrZqqQQyMmTtraAkANPplxgpwNGgWweEwgphHiiIprNnvgGDdcObJzWSZleDGsSFfgIiyKkpPYPHGNEPpmsKreIiXyohHhoOJIipPuSGgaGOogqDpNwDdtwVlFfwWEeLGJiIXxjmtTMrwWRNnmDdozEbaIAaOoOiIoNGguWwWERxXEovVXYyXNaAnbBcNntbBTChBRruUjIiAaJgwPpCcJjQnihgnKkAaEenNGgNyYDdWIrqQRSsgJEcbBCCXqNnQxaAwWJjgJJPBkKboXbBiDDXxvVwvVkKWcCZzKferRgRrUfeEGiIkyYzYyEesSZmAaunNJjUMTfSZvQpoOjJwWDLldGUuvVgPPuUSCSMLrRlmGgZXljnNcGdcmIiMtaAZcQuUVQHhqvetAfFaTVvwqcFfvWwrRVARraHvVwWPHhIgPpYKVgXLuULlkCNBbnrRcEeGBJsUGgsSgVkIiuUVjSsrRFtLGgSKfFpPrRNETVvSXxsAaZFhIoeEOpNnlddNsVvDyPpwWzBQgMYymcJbsSVjJIikTtMlOoLkXxAVvatGqQgnOWIiwtTPHYHyYvHhVHhhoxXONnyPpQrRCMsSmXxcDdGecCTyYQJjnNqDdtkEeybBYGZatppXovkKWsSwZUuzgGVYPhHWINkKuUXxwAkKtTyYjCmMZQqzLlmMpPcizZbHbYyqSjdlBXxCBiIVXtTnmpfzBqTtbaiIzyYZdbBlLvVwvMEerypPUiIuiPaeEKPgMeOoEmaAADMmgnTtBbVvfGgFAgGXvVdDxMmlZMmzFFyGtTNNnnRMFfgGkmMymswkKthEeHTWeECcgeElLlMQaibEsSBGrrRrKCeJjEonegjJEeFkkyYPAaAaQLFfEethMEtTyYTsPpSrDuWwUdHYXnKHhkdDJwCcqiIiMxhHTttOMmepPzUQqSPpnShsSNntTkKKTFfSstKLQtVTjMmEuRVvQhHmaAMyDZUuTtzaAeEdksUucCLPpMmkiIiMmcDdFxtTpIiPeIiEabBAEuwWpthHTWptTIiHZzqIDyyYzZYvlLGglXdmXEeFMmYDtyIiVvmYGgHOohiLlQqzZiIZzDdJextTkUTcAkKawWCAaOoHbbBpuUKoiIqQZBuQqTaXxQYFfSsudDdDcCUQqyypvXxVXxXiZaAHhZYKkfFHhNpPUZvSoMmOsbwWLyAaqfxVehHEMbBLlsDdQHwUtTmOoMuxosuHhwWHhXYyXkjBlLpysehLmMLZNnWzqXXyTthHYLNHhADpAZxXzZYBJFfPOopjeEoRrZzjxSrnDdHKnoOBVwELlMLZTtOqQozSoiMcCeETtnKkopVlRrLWkKVvOKkwWogQdMVdDcAVvjJrsFfYyxvjBlLPcCWweaAUuNNngNjiNCloDisnfFKkNSGgsSrQzxVCcZypGRMSsmrNngvJjQLtiSkKwSaQGghHXxqfeYyEdOyAaaHvxXaATphqIrodLbBIkLvVALlalcfoOyYlpPjJLlmAwWcgMVQHhCfUZhHzAFQqfauDdUubIkirRvVZvnNVoCsJjBBbeEJjNHhBbnRmMrSJjsbAaubGgBUnzZWLkKyoOYTGgtlwWIiwUCcjJQHTsoQqGgONLsSWFfdPEepYEiIeNocCcCsluULSmMtThHLMmlnxthxXaIiyUvVuSskKrRufrPoOaAFHSfFMXxmIizEVbIFfJaALljMmBbFvJjIFfTkSsNjJNGPXxpgfkuhHjJnhjYyZWfMyYWwmvnKKkkuUgEfbNNmkFfcCiIMmaeWsocmqwaoErPdvUusEMcCmewWmMWSpPsjSdDszyizqpGgDVNDNMcKDdCcunNzZUxKCkwxUjUAanuSuaWwIzvvVVHYyqIieKbZzBZzfwhrRHPOVvQqTtoNbBXxAxSspCdDrRngOoPSGJjZzAadDFDSuqQuUqOKBbFTtNnfkBbfFojJQCssSpPWwSAacpoOntTWhvXpPVvxEedgIirRGzmIpgwsfvVjJacCUSXroORxRrSIZzbBFfiSvBPpbcJCcjzZCxEeQqrDKkYyQzZnBbNVcrRVacCvVxXAvSsUuvVrFYOVvoyMKeWCcwEJwWUnNKkSJTtjAvFIVvfzZFixKkmMbBQJNNntPLGgXAkEJDTtBjnoTEhMoOmolnNLgDdwWTtEeKTtESMmLbOnoOEzZCcUeLlmAamuUoOLqQFjqQJXdgGdcCDdDDiIEGgmgZzpPvFORrMVvaZpPtTkcCHLlNSdDsqbBUDdwoDdOjJWUBEepPudDrmRrjJMSsQqRUCcwPYyPpXiKLiIlkaEBIimmMfFMutFhHpPfZjJISsOLOlvLlnYyNnNpPxVZzrRQwWqQqvHEuftsSGgVmOaBOvVVhqQSvfFVsqQyCVHYyrnFIsgGjbBGOoaXzKkwOdDIRrTtroORCuUavaXxAWwLvDdVpPlWUKkuHoOPphTtDdvDWwqNsSnRrQdLlwRgSazZkKClxGgXQqxYyJjWLnZzFfshMmBjcUuCPpJyWwYlnBfFbNivJtkhDdeSzmMZsSeFfTtFOLRQUakEqKpPkDpPdcCQGCUuEHhrENnoZKkIcbBTouUCcXGTtgJSEGgtJJNnVhkXyYgGLUhHkKsQjJiIhHJbQqByvxlirRILMtTmZCJMuPpNnqQzNnZspPiqyzZgUaVvQJjqPrPNdqQnNgGGLlgTKktDZtqLsSaAJBbUZPGgYyGgBZrYyRpJjhHMHXxgSNYPOoyYEPNnpEfFKRAadIDXJfdDFhFfHOoORrXQQqCnNuvWwVUcyFsSdcCLisKkJIijPpVfGxcCXZzRzJjUuhJUuLlsSfqDNAanvyYwKKmMwHhEepPnpPNlLWTGrbLlOoAaBplkKjJAaMmktebBjDdYaAipPNnnNcCZLlzoYcCiLluUHnfzsSZFvnNVSMsZzlKUTtNncuUCpaAHhmMkKXxizZwBwElfFQPYTtypqUutoOaTVGgMmKkUTeEtYyQnNXOXxOXfFEexVyYYbknkKNvVEeAJuUqlLQPnsgGPpdDTkKcBbCHhUZzuXPjJStTLlscCYytTPtTkKZvVzpbBRrotTOcNpQNnOjOaNHhndDqQvBMJjSlwIiXgjddQxpwWRrzKkZrfhHPsShDFbBRrfVvHCcaAbBJjLdhHaAoufFUixlCccAaCKOvpxNxXZznEIiQEeUjPdDkXxwWRrVvHnNcpNnxKkXUKkHhrSsCbBbvVBHVnNcPpXgDnNdDddZgGVvoOznNZowWNgVdDimzZoEhxLXGbBEegiXxIFOXxoGgMCiILlIaAPpIiqnGggGblCdDnNcFHIuaAKkqRrQBVBbaAdBbcCSjJPpuUjJnNshoXxOqmiwWIZzaAsBrgUsNnSYuniTtrocJjTArQqNnkKJjOoRCTcJbBjZzCcCbBJOzzpPEqvEmHLEetTmOorinwWNVndOXxojJjWwQqJsaVsSvAJmUevqfDsouBbUJEejJKkOGgAZzunNlIiDZvpIFPpPSMmwWsEepqQWcbBwWPgGgGpCVnNUuaAdbBXlnNbzZMzQqZmXbBkKNJMmUSSUeuUZzDdSjJssVvFYyrTXNqeEDbBRrTCFzEeZiIdFwKMJTtNnxyYXWwUuyYyohHbVkxXPpfFXcYYoOQqygGjJoyYDdrRuTtmbaAhHBBbihHIgGcOoCWxXzBJjXxIhHiHhcWSswEeZznNJjEefFZzEetbBnNTjXkmeoFpPcYYXEEbBgGkivGlbXNEeBizZMmICzZcbdDouDdhjGgmNqQqCcQnOolLgtTnNYbBPgukKDoOomMMcCKkgaAGGmbxXuUeZzEdtuwJnNjpPbrRZzURruOoNnJjBIxXqZEVHhfFFnfPpYRrlLjBbJyXcLlHhWEewWwIiBXxbkKqXxBbhHQyiIYNQqKktIiZzoqQJjTBbtpuKSYFbliILEePTthHvPAapcIHhiRrVPYyBkiIXxBbPjJCcQkKhPpHpjJJRxFfmPphHbjJBbBlwFfOkUDJAxQmMTOGgRBbrZzkcShHvqQqQVuPfFpiIUqQbPVvcqQCuUaBbAuQqoOxwsjJLAalwdDRrBbWSWXHOtTJdDKkwXxCcIisSGNXxUCvVcahHZZzzdFvCcJdIjmKkMIifFnWwNxxMmXvcYDiIokJjSsNzZcCXxDGoOrqQRJgGYoOGrKkRgGgtTlLlLSsAaRreEqpPQyYeZGgLbGVvpQyvWwYqPUgSDdnNKHCcSfdKGSKwWtTWwkKEAahHzZHWloBbqbTEtOiIoJdDKvnNOTtosJjREwWxABjZzAcDdtTWwzIiZFGgbBWNbBnARZnDuOzZoFJjBrTtbDWmMgDqQtTHhRiILtTbEeBlXxTVhHQPpqsSpkKlLEXoOFfQiIqxkKQVXaAogBpPtTEQeEzZuarRvcwWSPpsvVCmMBbGIifFeGGWwggorazkKtTjiCcIJhHhqqQQWwPpXuUOoxkKRfDdVKkhHYoOEAazZWwHhBbqIijpvSsCcDdVKpJjfGgqeYyEVvtBfuUXxFbAasvVSZzwWTrYyRgGQOoEHZzqiDuJdDjaADdJsSujJopBbPDtTYLbULlkNDIiatcCTkNnFTtBbhHTtTJjVbjAaTtDdJnNBzCcrmMRXXTPiIjTtJkKWTtKklBqQbUuXxWRrwyYCQRAazdDhBbHagGRrAZIiRORZSszXzZxjipHhiupPGGZzPpgQqSsPsSVAyYaHAaiILbBaAthTtpiIhZmtjJKkTxXKZOOoPTtxXpxRctGZzTthviCWwKeQRjQKkqAaAasTXMxAfFaXkKIirpPyYzfFSyYDDdoOqLUdDulQdWEewNnsSjnNnNCGoOgbVvGIjWwkipyYfuUWmMwWwFaQfFDwjJpPWIcZUuzfncCNAerRBwWPppXxYycqQGvVYOULlsWyYwuUSxhHDdvqQRsXsUJWsSRALlHBPdlLFApPaflLTLxXjdDADdQCcyXFYyaAMHDdhtTnNdcCRrChHclLCyBlCcguNnUdrRDGietdDTPfFIipImMmKkMxXBboOdZzDzFfyWwiIzzNzZoUuXxXSqtTqQctTkbBIzSVEuUehkKHMAaHhzZbmMmMBcZwcCWzlEXoOxEYDdyDdRkehHZZchhHTmMFYysqQSLlvlefFEmeEMdDLYyKkLthCcHmrRBEujJUPYypQqPvIiyYVZXHslEeaRrAkKNnDDddEtTJVyTtAaYnxXNytTAaDdVvYvwWVdDlRrLnNfFNPpGgnSsPCEOLlVYySsvoecUuAatTulLlUaCYyHheNnWwBUcJjdDCEMmeMYyNaAnVkKVaxXAVvWMmGgwYbBhHhNnuxzZlWwaArHlmMKTPmMzZvNCcnVdzZDkKBbXTtUreEMmJjCcPpXxTtRpbBrRowWMiIiXxcCvKkAaxXhHPpoaBbAgGcOfXxpPspPCcBvVbSFWwodDBnNHXxZzyYhCLlLxMmXlVvABgrVvwWRzZXxIiJnNCcBOOoDcCdKmAPHhkZzOoHhoXLiIeLlTtDdzbgGYeGgGuUpBeEbpPcCBbpdDPGhHdDXxVeZVvzqaVxXHuwDbByYdIiYyOfFobBqYywEeWQiOfFqvVcCWwvVcCeXxETXcCtxXRpPHwWhsSrjdDJfxwWohzOPpyYUPpsvVSLJYYeIiXAaxkKmQqyZmvnNjJXxVMzEeAuRrHBNnpmtTNnfIiFMwWwiIMyWrQqRYyvguUuUmMZoOzzoOgAaGWwlLAayYsYQqyKVvZQUtTjJuuYNnWvVwzZyDdUsSXZgDCcdhHpcCPZzkQUurRhHiRruZzRRrJTtQqjoWobBOUuDdLlMmwvVNufFUzxcEeClLBbTWPhqQIeALqQBbBbnNlGpAaPhoOrRHQFKkNnWuUTtxXzoOOoXxEeukZpkZzKPhHzTFhGgMmOWbYnNurRutlLTUsHyYHHhhhAELlMmeCchHmMSsaoDuUqwdlDdUuLVvpPDNDdRbBrnVnkKBEdHLZzeNnEGgjdDJfvtOnOcuUfFCYyBbLJXtnNtTXxUVvEeFNHhXWPTtNVvPWwexSsjDdJaWwaAAXlZjJPpYyORrmKkMojuZzUJxXgcCGOodDJUuqeEQRSMmeEMGrWwRgmsIihHSKkFfKqpPQkpRqLlwSeEWfpPUudDFwEeDdpSpxXPwjDkKdmRrEiIlzgNBexXEbvUPfCcJjfDiIWwBbOoHhxuMSsTDPpdxrAaAYyxHWwxqOoQHzZheEXXNnjXcCtncCOoFDdgGfCoYvVgGjaOobMmQzZqlRroObXsVkKvgVvuMmUaAGMmwUuNnJdKkDoOezZgGEwzcCFiZxhdDHIrRiIKClLcohHZzfFxqauUNcMhZzVVvvVzfFUoOvVjwWJuGgtTQqqXDPnNpZiIyWwnbBTtAaysttTThHYfwWFyCPpMfiyYIBmMIcCiEHiOnmgcaEtTeBbWwRxXtyleEHhLEeYuUHhDhGgHEoOYRGAagKpPmMldDRSAaZMWuEPpeeeEGguUbBIieEKLOOWwWPlaALMVvmoAwBbWGghGfRrFRRrbJjBrfCYjJrgGRamMgUoOuGAeDPEegLZtTzKoOkcCJVxXvWwTcCiIiCiIcrRLGglFLlPpfFJjdDFQqXnfFNxfFbUuKkaJjoOsPpSQqxXcPjQqJaBbgGWwAyfFYsACcwvVapPAJIijWAaWQqYywceEBiIxxXSLshwxaAwcoOCIiWXWqMmQsIiLkKQqlosgGzZYySSUJjusvqIldBtTUiIZAavVXBbtTgKkGrRbomMNdJjaADtYqvVjJQhRrxXuGgtGwWXAsSasSOozWwZlPpLsSxXNBbnSsUuEeCctdDTCnNckFOoHhoOYyCcUuoyYUuuUmCcMQyvVLnBbNtKqrRQkTJjNnlskKSWwDdYnMZzsSFeNnEOoKrRkJjcAavVnOGgYyymMYNnZevHxXQWQqwqhJjLlWMFfmzgGZDPTtHhvlLGMmTUufpJjXSslZzQcFcOGgtTRYoOCcCcjHhFNqQnflIZqdDZcCzZzusSUfRSbabAaBAAaZzBWCcCIicwJjNiIgGcCnTbeEBcCbBMqQmuUBbIKkoHnNhHhlYyLOieEwWVvdDxuYQqeiFfIwjJWsSjJjcHoOaPpuuUefIiRrFlLceEFkKfOoHVTYRrytxXlfDeEvrRLrREefFAaQqzFfCcZLJjNnnNlPRGgTCctqvZZdqQPpCPCcjoOVvJOTtoVvFMmfzZpjxXJlLQqEuUsSDeEnNdXxeHhkFfKVLlvwEedrRDaxXYyYyQWNFgGfnlgGZzLFAaYdmsSRrvJUujNnbnNAakxLlhHXiIgRrITtMTtTtmNwWUBbYyOvVrtTRfGgwFfqUSsuWSraAQqRsqrRQLlyYvVTzZFnjJPKkpKwPmMQNnqpTwfxXFWtPEeSpdQUQLHhDdlqZbqzFfCcZEJjeTgGmBbXxMaAtRrKeBcCKktTUuRrRIikKKiIRrRrfFhjuUDNyYnNnYEexXyYDdDDdGpPldhHScCsPnNaAvViIwWpNnIiDcCNUuDsSMmdeTeEttQTtqhVvrRHIinXxZzsSNBbnUVvVFfNnvfhHGgFkKuecCEvAaVjJCcuoCcOamHjJPpqRrRrGgQhKJjWwfFXxFfrJrlLOHhLGgBbNnTtPuUpDdbzkWwNnLxXikUupPrWKDdgFfGkwRDdsDdeLNEemaAukzZYypPugGUuteEfFQfaAnNYyJIcnCcvVNzQiINnnRrNqfNnFuUFicCopNLlnhHPOeEICcJlLLljwsSWfSsaQqAQKVvVvLlRlWFBsFMmRbFfCJeEuUjPnNpaAxXBRrAabBbaABiIfFjJCwaAqpEePHwEeGgeEWhPbgGRrdKetsSxsSgVLlvqBbQGuUsStelLLcCQyYOorfFyLlYTsUulXGgPyYHhpbBLFftTeiIeHhEzZErRRPprdVcCnNvrRRfFtreErRgGOoRbBjQqHhEeMmJoOliIHhqQmgGOaoyYjJKkHnJYyWwlLdnNDNehpPHPdDkKpJoLlOjEpNnUuPNnRryYrRNgdDqSdDsjejvjdDJPhHpXxQqceECVfFlDdSsLSsmzvjWwlLkeEKfjJkKFNnzZnFflLaFfAKkZzOqQszdiIDaBmRryfnNzXxusSodEIiIiexhnNuUHrkKRzZrMcmfFiGOoCPmMpcclIBSVPpvshJmnNMAajgzZGprRjCcdlLUueEaAEeDDbPpleYyELBPQASaGjJHwWhbhVvHxWwXtTcCzrRZwWMmwWUugrRpIiAaurKkLzZLlqrNgkRrRjulAUuPplLaFfqRrQYfFovVeECUuKwDmMAaMmdWSsFSszsSpPZGwgHhmcCyYxXlVjJJjvLGgNvVnfFMmrRIhxXHaQBsSonNyYUuHhoOzGgZzfFKgFRlxUuLlcCXtyHhYmnhJIIOoXHhzZrRfqNaViISsqudDTMvVXMmxMIiKkccOiIoCRmNaQqMmzZxyYXDWwSsREnNevCQqgCcuMmUhHcCUaALluGJjMbGgBjLqMmQfFsYRmMryudamMADIkKlLPpivVUSlsJjcCVrRtTrOoRkEeiIWIiNnHhlLUbxXBaNNnTtnAqQvVDdBbvVBbAaugGdDCkTtAabBKcsknNKEZIicCLEelHhJjNnZExXoOeybBjJkxXKOnyYctVvUhvWkdDlLWQMCcqJTtjEfFeQiIDdyYQsSeRrxXqmMQyYBbEmMJWwpPtTVzZwIBZgGyYLlzDdDxlLNmWwAbBXxKkaRkKZzlBboOPGgpOpPokKaEeOxPZzwWVfnhwLlWtxXTMWwdszekmMKtbIiewWHsSsSNnsSHhpvVUulFfLMmgyXxUXxZmMcCLBtTkVvKImrRMoOqirRIBbmzZQgGuAEeeMNnbBAaaAbiIBmLTtgGlQqHpPhdEOTtdDazXTtxDyXxYdJuUpPUujiIrRJjZWouUQqfoOFfcCFdDoOOIJjmMqQiIWwDdPpPoOBbpLEGiIgelKsSkRZzJjbBrjjFfJOnNgVvyYVvmMHhhHEaAePpGmfFnRNQqwWWwnLhOoHIvVgeEhHImMNFfEKkepKkPgGGgTEetQqwsSDCcnhLlHoOGdTtDgEerXxRpPSsOQfFEemMsWwgTtOkKozeTKrmMRlxXLPphHeEkLDKTtnFfNkBbSsFfzUuqQmwWoOyzZYMYDQqNnNnFildnNQqqoOQVVvGgvifFImMYyCuUANTtnNnjJuXxqFfRrQPhHpUDdDMmJuEsScVOLdDWwkXosaDmMEsdSsDwqacCAQVgGLIbBiKSsklqQIVpPvbByYinzZNiIuKpPkDdDdRrzZKkNZMmDuUEedPptefFcCEgnNGYyhHuUutTTtUTwAwXxWfQqFaMcCmwWIyYDubKkBqQUnNdNaAUuEgGeuzZtTiIrzZRHiIDdbBeEpzKuQqUxFfXWvwWVVvsSoAmcRrLIillLUgGuDdgGUWKkRKUfFuBbviIVkrqmEeEeNZzjKkJDOoAlhHlLLaISxXmMsYyuRrnoONORXtTudDUMdXxzZDXNnxrLlRmsSzZsrRWFYyxXNrkIiGaHAVEeNnsSuaYHkKFfvVbAIiSsIiaaABoOZzyqdwWDtSBbyTkaAQqzZKpuTTiOoiIrRIveulLxRwMmWCcJjEeJSsSNnGpPtTgyJjYZvcCKkKkvdDOoVIYyrRPpcjMmJrRbBnbhPXxpYyZzIvgVvYOoGsbxbBnNXBpPaAPUuFTOoiItJzZMnNiWsoTtGdDidDITtxiIPpQqgDdJjbBGKYxXawWzZlUYyuLywWWjJreFfsmMvVVypdDvVvVnNPYKklFfPvVpeErEnNpPyuWwBbUGgoJjcChVPpjJJjvyYtxIuMmNkGgLlKnUmHhMBuUwWoOWwbUfiRrFfIFqsnNSvzZayYAVUuMmLlPGYyIzZKkigrRhzTtZzZVHhJsUuSJrFUufJTtCeEczXxNnrRZAhntTRrEeLlQqIiunNwWPpFKfmMSoOsXhHxJjwWtIAXlLDlYyLJkKjYtTRkKTwCXxhhsTtEeMFKkRibHhBrVIivkkjVvYySsAaJKnsSsTrRtUBlZzaALyYTZfFoOzHYFfCjAaqQNfFnEvVeOotTzRjJCcjJrZjyDDddMmYgGKkIiLiIKkHgGhZzcJjlsSsSmMwWtGuUgrRTEbBkKogGOefFHVvYyGgSiIlWwLqBbQsTAeEwWMjJCciIwWEecCdjJhBCcbkyYVFaAxKkXTjJNnWwLcNNpzwWZzZQqDfFkKcCRLmMlrblLiGjdDLwWlJSjJGgbyYuBYyMmEeQqyYbgGhoYtsNnhHJVDQqjBrRbIiJMoSkKsEmMeksSPtfmSsUMmuMKyRzZrTtAVvgGiIamMANnauUHhJiMmIoOjJHhuyYTgjJGtmZGgTtMwvVmMGgzAaqQnoONzwulekKCcEQqFfiIexXWAaNnwqQiIxYyXZzrRdfWPIiptTBDciwWIYyCEeoOFfraAnQqNRbBJBbnNTyYoOoaAdDaAVhHvmMOKkfFtWwvFfVIigegyYdGgDHTtNBbnaAPpWzZDdQqwUukKYyJjhibBJjIQiIqrRHhRrXwWxNhHEeLqQrCcCcPLlvVFfpOqaAQNnjZkKnQASGgssSCcjjiIbNHhnBJOxVwWvcCQqsSWwmnNfFMbBDdXgGRVvRrhoOHroxuPpQMJjJURrqQucRrCuUuaAKLLllYPpykEVveDOodkCcTOoCctKcCQPpqXxbIiuUUAawWcCgLuUlgGcCMXCcWldIvmMSlLsIiObvVBsSYtfFNnRYyrPpyYTtTSsyeJjUuEoLlyCcrRJPLlpjqgAfFaWOowBXQyYqxXxynNtTfFuUOLOoEeYylNnWwmMRvOkKwJTtjTLsXIpPigyYGTtxRpWwJjsSxXWXxqQdgGDQMgGmVvovVOwWwWSHmhngGvJyYfFjQqFeheQqTtbBEHEfTMYCcyRLlbrRBVvwyKFcChRBbZcHhCkkKKxgGjJXYybBxbBCEecLLRdvVDYjJhpBwbBrTtRWeENnbOodAaDPtTpBmMpHNTtnbrgSuzZvVLjJWXxwxXFfxXKmSswMCSsSXxBbsnNpZzeEPXxciIJjLlFVvflLmMstsSfTtFTwWSDdmMLlNDdnVsJjaAaASPCcMpPmXzZnMmNxFvVIzxXdDrZupPhHUzbBUXjJbBxhxXEIumMRrUiemMnNjCcGgJYyUuAaUIhHqQiUupPcmMCopAAaaUuPOpPugxOoKkXdeOokKEDgstTSaAHhITtKkiBHhQIidDJuUpXMtivVIJjqQDdTtTdEeDqpPQtTAUxbZMmAaUeEQquVvzkbBKMxtTXmAgGafRPprRSFfsbGggGMRJjVvrmBpuUUJjiAadDJjgGvybBYMwWmyYYyMHzZxFfsSXuUzrRMhHmgNnBbzwWbKkBcCZeEOoIrSsOAapEeXXxepPsSnuPpUNVvgGPtTptTvVEewdDWYyJVvTtsfFSfFjRAarLlxXLXxYABbayliIqQgUuGdDcCXHhXxxXvOoVjJDdbNtTJjyyjIvVibBsSxlkKxRrXoHhONnoSsdgGSsaABbcCDzZSZzsAaNnREermMKkdgGgUvViexXEdmMDZdDmxXKkRsSBbrMmGOUuCcogohHzZBhhHHmOoMlLWBbwWSsjJweXxEIaAiIOoiCcVvGgybBkhHKRrYSskoOKkpPCcrAaCcZzjZEeRrdDdNmMnTdDuUtjWwJDiINAaWwDzLlZdcCHPphNTGgtvpPMDdXxeEmFfVXohHOzwWZgGpPxyfLtTZzAaSsSgGsYyriIReMmEjdDGrRFJhHjYyoOfLlRrxXgJZZKGyDJjdvBbiIZzCcbBzZVxBhHfFPbBPtTtTuUPppZhHUuEekKzOhomiIYbByMaBbaAALlNnIoOiMmeCcEmETSstesSMEMSsmMuUzLlEtLZzETtNnlLejJDdlTaAsNnYyiDdIzZZzitqeEdDKLPpOjJolLlzHWwHhlLrlLqNnQwWRSRbplLHhPoJjOBzZkwWKyVvRIiiIrYrRgLlGcCcbdDBCuUmMrmLljckRXxTtrQKLlMmnKkNqAamuUMUuFdDLlfUuyhHqQbBVvpPYlqQYyttTdVvDTCcFfwZzCcIkKeEudMmlLDrmxMmXcCiIMRaNnRrdDQTtJPzvVfFvVEeSHdeEDhCvVctAaTCcwWaAsAaWsTLuTeEfFQqVKkvpPzZLsSbBdsSeEmaAkKdDMykKwWYMmrRGaAgnNaAvVfYwuUWtQqeNnETlcCLzwFbBfXqUugGQxyYoOWZEeygGnbyMmGzZulLJaAjfFbjJnwWBbLlQvVbNnjJrRSsnKfFkzZhHFfrCelLEpPnNrRcIiBbNoObtTrZnNzRSspPXxkKMvwWVoOmhHlLPbBplPpyyYYNnjJLkKiITKXFbBFfcMmCNnfxLlkWwOwWoBhHbtUgpPCxYyXMmcVvVvEebhAhHUKkktTtTKuPpTtzyTzZtYyrCcGZzhHLzZrRFfHpPgLlGhEYlLNnAayDnNGvPpxzZtvVkfFKnNnNZziItcFvViMmINQqkRIirmMdJFfjUIiugGDXxTNntOoCcfFfQqlbBfKkPpFLJjAGgKfFnNmMkEeaIibRrfFBFPfFjuKkUuLYynNgGTtlvxXnYyNiIlLVwWUQVvSoOoOstTEjgSsjJGAaUuJIWUuwihXfFWHhJKTwhHaAhPjJpfHhxhHNnNdDBbxXnCXxGgcZzBbXAaFJjiIlbBIiMtTTtUyYbtCxXPpvVjzZOJEMFfmewdDRrlLWGgwMmGcCggGWIiwWbJsSLlzZCcjkKFfFbBrRujJUPpfGzXxZyYgBjiIoKkJbwWBCVvccCcCcGgFWHfFhsSwZzkKkDdbBKRMLlmMuUdDFfUuUyYrNFXmMxuUzZXxfBTfFPcCUJjwWlQAazZqPpnKiInNgmMGJjhHOKkoHBSsTsnaANRyLlYroOfTtcCFQqDEegdDGXxmMhvVsSDaJjHhlvVLANnWwWjbBbBaAckDcCdKZWwhHuPpRAaoOrCcPpiIOgGoeZzEVvvVoOhdDoMmOPcCgGeEphHHddDDdOIjJnmbGeiiIIFfEgZkyYKznDVnNvZzyYBbtILpPliEesSsjJSYnKRrkFfZzNLloCIiYywWcsSpexXEJjBbgGWGgwKyzZjUlLfFuEeJjVpPvHhxXJYxXmMzHhZXxhuEJBbrRvVvOobBVLlhunUuNAapPdDFPpMPpKYykdDVYoOypKWZzwhHkZfXDdxtsiIjJsSqQFfSQxKkQHhqXZAIiaTtzsojJOoObBfFSkkKhcCqQHIzKhHtTEerZzlIceEbBYysSAaTHIihtTtTtyYcCRBsSbrCiIDitTIWwditaAuUQvVqtTpPJaAjRiGgeEIGgryFjtTJnNjJuUlpPNkKdDnCcvVLrRFfaPpAfDMmQqdrjJjJGgRkKTSsVvVvssSStaAYVQEQdDqeEeAaIvViaIiuKkXxuUkZzKrRyYUuwWUwWAJjRrBbeInNiEVvYysQZzGgIiqAawWNHsShmEBbypPYukKUePpDdGIiYyVQOghLlrRyYHkKgVkKhHFBbyVWwvYmnNMgGBbfBwuhHUWVFbBYyuUzjqQJZhHzZiUuIflZzxXZzykKYjJLkKbsTkshHSVvLlvVKIfFiBbQTvIiVtxXHZzGgkKwWVhXxxBLliITtbgGIfFfFiZzAgnNGCcjJlLacCjSsRrJrRgaAGDpPdXdDeEpPVOoNnjJgGFBZmlnNsSLMXtTOoEQwWqXxSsexEupPUeHhzSseEHRrDQcCnNZTHhtZggHhGGzahHAoONnEeubBbBgUuGxuUFfXpGgPjJUoOgGwqQObbBBoGgBkKbalLZhHzAAPgGyYxkKwWBbAQqaCcxXIiYyNnraABbRgGLlXvVxIYyfeIiEFcLlCrRoOFfGgZTYytEelMmzZoOiIuUMmOomMLPVvaAMmMmphHBbiIOEdDqQCcRreLlNnXxvVUuoBbiIbmMzZBVFnNISiIaEeRrACcQqjJxXYNgGnEeCcFqQfHiIUAHhaAasSbiIBXfFnYyNeEEuUePhHzZpAtTaBbhHmWwEYyeuCYCcMmWryVvwWYRLlshHSsSfTCcXOoFfXxoOYyBrwWmWwMWhCcPpHDnNAaiLlAanNPpIJjdhOovQOoqDPDOoMoZDdzONnmdlzjJZjJjJquUQjJfFAaFfLcvDdVkKCuRrkGmMMmRrFfgKvVTWwCQqctyoOYDdMZzGgmCcifFSsIaeKSSsmMVvSsQvpPlLVEeKCgGCBbcckUuEerGgeIiCcERBbJjWwTtyYvVuUDdbkKaIdsSDiZzlLUuARrmDWuUFYyfeEwYynnNNNUdDuaAeEnLlzaaAIiAaAgGdjJmzxUuXqeEYyiIoOQTLliItkKepVvGYygYyLlPEuUiJjyYUoOZOozWwsSdDhHtTutpPBbZznYEeyFZLlzqvVQfrKkRSKksSiIQTtHhWwjJQqqfFuUhHSsQqUuYysTpPKkrRyYzbBDoOdZmAqQRraMgRrGdDiIOoghHHlLdDCRrcPIiphiIqQXbYnoONyBGgaLwWlAsaADdDdSTBbDdUHNvVnYyeEJjhxXdDDMmGgeEoSsOdxDyYVvdqQFfrTRrbxXBtRIiXlzZLjBbyYJUJFfBbBbaAjxsSNnqQMnQqwWNSsBbcCpPQLlwWuzZOtTtTrRGgoqiIQUeEoQqOgHhPpoOEeGHYLVgGnNvfFCcOolpPQqXxyaHhAkIjJiIiBtWwTXOFfodDxqQtaATbSEedGgcCDHhsKhhHGnoONgMmlPpLIYyivVLlLlmMVvsIiSfcCFRrivVNneSsMmOQqopfFacCAAaPDOoFVvfwWRrdEIadDBJjbYBbyAlKkmLcCsSQNTkKtqQnqlUwfFWrEeROvDMmIiIihHaAaKkEeAdVZzmMtzZDkKaAdTlWwLbBIbBMmUubBdDFfSsYNnCaYyBbSsuuUztTZNnUhHAcygGauUUuAamMgGUuASsuhHMmmMqQmMCcYxythHHhuUCqQcDdWyYwTmMtKcyTUjJzZjmMJurnNCvVOobBcKkZziDdYyCcfFcCSAGgEeBbaNnosSOhHwkKWoODdoaAOnNsIRVJjvQIEeiMOoxRrXeAabBEOLlosSpPmXxNnVCcAaqWxXwXxXdDYyZDdFfarReEACczYAaIiBPphHMyYiILlBuUbmYylkKaRrfFADNngGMTtmPDeEdyQLcCljJqXzZyYpPrgGRHhLlNnxaAQqYIixXxXKJjkZqOopPQhHrdCcDXxRMmqkHhKQZWwzKkVvzidDIdTtDKwWBJjbrhmMZmXxOoMzgGyYHMFKkfaANnmRrRkMpPmmkoOKMMDuUddEmMZzYyeDnSeEstBWwbFfTXsSwqQzZmmMMWmdDTtMrRnCcEeNxXVvkoOwfFWVcCvKtTxFgGVoOMmvmMMmeEKkOofoGgOYYyyIimMrRWkKAsLlSlhUuHIiLbBlOoqIiyGgYAqQaRrrokKOOWwxXoDeEdrRkNnEeztTZzzZZPprRFmMFfxlLXAFmMfmLlcCMaIglLGinNBmlLkKMIibBbfFrRqQAawlLWfXbBxefDoOHhtpHhPTdFAsSaOzZooOElLRrRrKIimMCcuUmNxXkKnCcbFbBeIOoxJjLGWwgNYyAZiIXxXxGgzqQaXIixeEcCcbBCEwRgGrLliIWwWRreHpPhcCIiIOohHQxXqiHhgGNSsLfFxXlLEesSMrRheEHRrmkKbBaApPOoxXSsAWwaPjcCAoOfOoFiUHhuUunyYNIpPaJYybQCXnNxcXxqRBbzZIiKkdDrADdaspXxPMGgmJDOodjObRGJjgzzZZrRwWZOozKkqQrmsStEewzZWRreETLlMvVGgWwFfRrIhmMHioCzZuURhIiHNnrjaABbjowWOJDdFeEfLlJUuuYyZzbBmhbBHMUuwWUyYiMLlmIFfckKeoeEHhOlLEZzvkKmMVIiPrRcndDNCQwWcCPpIAaimuUgGiIMSsmMKkNnyUuHhYqHhVvGyYgLlfvVFPpkKmTtcLdxXDlYyjJCMtTQXZbhHkKOXxgvrRVGoBQNAaVvnqGIiFfgMNiIxXmouUOMZzBUuXxbNnlLYyuEeUnVGgGgvBbuUswupPUWSYyPhHSspQUuTtqKYyqOfFoDdbBsSQcDdCPHhpRCcryYcCkIPpPfZzFDdXxEepZWwwWEHhqQezMmYyyHhYWwXIixgyYGQiPpDdIIiqgGwhHWRrDdiwWXoOxSslKkLxpOotTbUuBDvJjVWNnwdmMPeERYyyYLqQMmlvLlMmVhHBQqbIihnNbBMRryYGjJgGgquKkUQmuUHbBpCgGcVZEeGgzvPpOovVYGOogIiCnYyNlTtdDTJGgeEjbBtLQYRrypoOPVvnkKWwNsSaAqcNnNkKOcConyPsSdDrYCcTtyhHFmMfYyRvHhVzZcCJjyYnNuUXxDLmMlJmMjdeQAavuUVNnqNSsgGxXDJjvOoFfWwiSsxXZzQSssSUuNnqdtTDRWwrpPGgdmMDIIiYQquRrmiIeBbgnNGFQqEoOeCcRrcCffFjJbBjJEvVVvTtMyYYcCaAaAyHrRhGgCcmMmqQMkKKkJOoeXxAaxXOaAotTHhEnNZzRrrRgGDJjnNdaAjJNPpngvtTViIcCAadLlDkKPpQWwPpyYqZqQqQDiIdjtTJzuqLlRrQBbtTUrRGKwBbWkjIiwfFWFfMmXxrxVvXRcCnMmVvVsScCyYXxHrRMmiIBbhvNMmGgZPpzNnEpNncmMCPopPOjCQqcJpPsSGHhkKgBbXcCQJjqcSsCZcCdDzGgxXFAAatTVvaZSszCcgYzZjdDkKnNJXIixHLlUJjuyYhgGkKmMsWwSgGHhyYKkIpPiIicCbDdBTtqQCSnvVNsdKkDZzKPpkcoOmVVGgOGgKkovJjHplLuUPhwWBbdDDdvVUuvQqtwWTeEgGMrRlLGRZzrgmtTHhMJjJxXWSsmMWwHSkKNKknsJjtMmFfThDdBbeEwnNjyGgYSsCcoOIiedOoprjJXxRPYyPpAaRUurDxnNiIXlPpUJjuIizLlbBZyjJSsYHhIieQqEsSWwNYynwWqQbBSsnNBbsSRNnrHhYkKyKktTGgnNYyFQqfsSOoLxgGXckeEbBCcPJjTtpfFKBbBsSZzbVAakKXxpPmAaMzhHghHGKkZrRvgXxhHGJjdYyDoOKRnNrkCcaACMPpWwaAmSjJuUXDdxpdBbVvDsSjJicCnBbNIMmiIXbJMmjGJjgBTmMWwtTSsvNlLnDEeEWwedVngGQUuzZqNWAazZCinNILlcwyxCcXYKkeExlLXjJhEeGgEeYyHZOozlLS";