From e68dee75f333e87c97522c0a7918933acbcb080d Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Thu, 18 Aug 2022 15:14:41 +0000 Subject: [PATCH] only sound voltex tests remain (#7) Co-authored-by: sigonasr2 --- ArcadeReader.java | 153 ++++++++++++++++++++++----------- readers/DDRReader.java | 36 ++++---- readers/ITGReader.java | 41 +++++---- readers/LoveLiveReader.java | 34 ++++---- readers/PopnReader.java | 36 ++++---- readers/Reader.java | 18 ++-- readers/SoundVoltexReader.java | 26 +++--- readers/TestReader.java | 2 +- readers/fonts/Font.java | 4 + readers/fonts/lovelive_score | 20 ++--- result.png | Bin 84773 -> 18028 bytes sigPlace.java | 12 +-- sub.png | Bin 572 -> 6693 bytes test.png | Bin 1154 -> 1049 bytes 14 files changed, 237 insertions(+), 145 deletions(-) diff --git a/ArcadeReader.java b/ArcadeReader.java index b8f6f2a..36eeaac 100644 --- a/ArcadeReader.java +++ b/ArcadeReader.java @@ -1,6 +1,9 @@ import java.nio.file.Path; import java.nio.file.Paths; +import javax.imageio.ImageIO; + +import readers.ColorRange; import readers.DDRReader; import readers.ITGReader; import readers.LoveLiveReader; @@ -9,6 +12,10 @@ import readers.Reader; import readers.SoundVoltexReader; import readers.TestReader; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.awt.Color; + public class ArcadeReader { /* * Important data we would like to know for all games: @@ -62,6 +69,9 @@ public class ArcadeReader { * */ + static int testCount=0; + static int testsSucceeded=0; + final static int DDR_AAA=0; final static int DDR_AAPLUS=1; final static int DDR_AA=2; @@ -121,16 +131,61 @@ public class ArcadeReader { final static int SDVX_B=7; final static int SDVX_C=8; final static int SDVX_D=9; - boolean test(String filename,Class reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo) { - return test(filename,reader,score,rank,notes,diff,pct,maxcombo,""); + static Reader interpret(String filename) { + try { + BufferedImage img = ImageIO.read(Paths.get("tests",filename).toFile()); + if (img.getHeight()>img.getWidth()) { + return new SoundVoltexReader(); + } else { + Color col1 = new Color(img.getRGB(31, 41),true); + ColorRange range1 = new ColorRange(245,255,235,240,70,80); + Color col2 = new Color(img.getRGB(27, 1012),true); + ColorRange range2 = new ColorRange(245,255,160,170,195,205); + if (range1.colorInRange(col1)) { + return new PopnReader(); + } + if (col1.equals(Color.BLACK)) { + return new DDRReader(); + } + if (col1.equals(Color.WHITE)) { + return new ITGReader(); + } + if (range2.colorInRange(col2)) { + return new LoveLiveReader(); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + static void test(String filename,Class reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo){ + test(filename,reader,score,rank,notes,diff,pct,maxcombo,""); } - boolean test(String filename,Class reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo,String other) { + static void test(String filename,Class reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo,String other){ + testCount++; Reader r = interpret(filename); - r.interpretBoxes(Paths.get("tests",filename)); + r.interpretBoxes(Paths.get("tests",filename),true); Reader compare = new TestReader(score,rank,notes,diff,pct,maxcombo,other); + if (!reader.isInstance(r)) { + ArcadeReader.err(new Exception("Test \""+filename+"\" Failed:\nExpected class type: "+reader+" \nActual:"+r.getClass())); + return; + } if (!compare.equals(r)) { - throw new Exception("Test Failed:\nExpected:"+compare+"\nActual:"+r); + ArcadeReader.err(new Exception("Test \""+filename+"\" Failed:\nExpected:"+compare+"\nActual:"+r)); + return; } + ArcadeReader.success(); + } + + public static void err(Exception e){ + System.out.println(e.getStackTrace()[0]); + System.out.println(e.getMessage()); + System.exit(1); + } + public static void success(){ + testsSucceeded++; + System.out.println(testsSucceeded+"/"+testCount+"passed!"); } public static void runTests() { @@ -141,7 +196,7 @@ public class ArcadeReader { 9/*difficulty*/, 0.0/*pct*/, 287/*maxcombo*/, - "{ex:1411,fast:18,slow:62,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); + "{ex:1411,fast:18,slow:62,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr2.png",DDRReader.class, 875800/*score*/, DDR_APLUS/*rank*/, @@ -149,7 +204,7 @@ public class ArcadeReader { 11/*difficulty*/, 0.0/*pct*/, 230/*maxcombo*/, - "{ex:1529,fast:105,slow:217,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); + "{ex:1529,fast:105,slow:217,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr3.png",DDRReader.class, 991000/*score*/, DDR_AAA/*rank*/, @@ -157,7 +212,7 @@ public class ArcadeReader { 9/*difficulty*/, 0.0/*pct*/, 526/*maxcombo*/, - "{ex:1701,fast:16,slow:95,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:1701,fast:16,slow:95,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr4.png",DDRReader.class, 959410/*score*/, DDR_AAPLUS/*rank*/, @@ -165,7 +220,7 @@ public class ArcadeReader { 10/*difficulty*/, 0.0/*pct*/, 310/*maxcombo*/, - "{ex:2128,fast:158,slow:82,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); + "{ex:2128,fast:158,slow:82,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr5.png",DDRReader.class, 996070/*score*/, DDR_AAA/*rank*/, @@ -173,7 +228,7 @@ public class ArcadeReader { 12/*difficulty*/, 0.0/*pct*/, 339/*maxcombo*/, - "{ex:997,fast:14,slow:36,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:997,fast:14,slow:36,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr6.png",DDRReader.class, 995410/*score*/, DDR_AAA/*rank*/, @@ -181,7 +236,7 @@ public class ArcadeReader { 13/*difficulty*/, 0.0/*pct*/, 779/*maxcombo*/, - "{ex:1322,fast:20,slow:54,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); + "{ex:1322,fast:20,slow:54,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr7.png",DDRReader.class, 940300/*score*/, DDR_AA/*rank*/, @@ -189,7 +244,7 @@ public class ArcadeReader { 14/*difficulty*/, 0.0/*pct*/, 100/*maxcombo*/, - "{ex:1258,fast:51,slow:82,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:1258,fast:51,slow:82,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr8.png",DDRReader.class, 978970/*score*/, DDR_AAPLUS/*rank*/, @@ -197,7 +252,7 @@ public class ArcadeReader { 15/*difficulty*/, 0.0/*pct*/, 320/*maxcombo*/, - "{ex:1541,fast:72,slow:83,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:1541,fast:72,slow:83,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr9.png",DDRReader.class, 891770/*score*/, DDR_APLUS/*rank*/, @@ -205,7 +260,7 @@ public class ArcadeReader { 16/*difficulty*/, 0.0/*pct*/, 211/*maxcombo*/, - "{ex:1633,fast:186,slow:99,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:1633,fast:186,slow:99,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr10.png",DDRReader.class, 867270/*score*/, DDR_APLUS/*rank*/, @@ -213,7 +268,7 @@ public class ArcadeReader { 17/*difficulty*/, 0.0/*pct*/, 80/*maxcombo*/, - "{ex:1457,fast:166,slow:110,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:1457,fast:166,slow:110,playstyle:\"\",diff:\"\"}"/*other*/); test("ddr11.png",DDRReader.class, 201760/*score*/, DDR_E/*rank*/, @@ -221,7 +276,7 @@ public class ArcadeReader { 18/*difficulty*/, 0.0/*pct*/, 65/*maxcombo*/, - "{ex:329,fast:62,slow:10,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); + "{ex:329,fast:62,slow:10,playstyle:\"\",diff:\"\"}"/*other*/); test("itg1.png",ITGReader.class, 8020/*score*/, ITG_APLUS/*rank*/, @@ -331,91 +386,91 @@ public class ArcadeReader { 325415/*score*/, LOVELIVE_SSS/*rank*/, new int[]{539,4,0,0,0,0,0}/*notes*/, - 10/*difficulty*/, + 0/*difficulty*/, 119.8/*pct*/, 543/*maxcombo*/); test("lovelive2.png",LoveLiveReader.class, 331923/*score*/, LOVELIVE_SS/*rank*/, new int[]{514,96,0,0,0,0,0}/*notes*/, - 11/*difficulty*/, + 0/*difficulty*/, 116.8/*pct*/, 610/*maxcombo*/); test("lovelive3.png",LoveLiveReader.class, 282182/*score*/, LOVELIVE_SS/*rank*/, new int[]{573,45,4,3,8,0,0}/*notes*/, - 11/*difficulty*/, + 0/*difficulty*/, 115.9/*pct*/, 334/*maxcombo*/); test("lovelive4.png",LoveLiveReader.class, 282182/*score*/, LOVELIVE_SS/*rank*/, new int[]{573,45,4,3,8,0,0}/*notes*/, - 11/*difficulty*/, + 0/*difficulty*/, 115.9/*pct*/, 334/*maxcombo*/); test("lovelive5.png",LoveLiveReader.class, 19454/*score*/, LOVELIVE_SS/*rank*/, new int[]{117,11,1,0,0,0,0}/*notes*/, - 2/*difficulty*/, + 0/*difficulty*/, 117.5/*pct*/, 74/*maxcombo*/); test("lovelive6.png",LoveLiveReader.class, 290746/*score*/, LOVELIVE_SS/*rank*/, new int[]{525,104,0,1,1,0,0}/*notes*/, - 10/*difficulty*/, + 0/*difficulty*/, 116.3/*pct*/, 427/*maxcombo*/); test("lovelive7.png",LoveLiveReader.class, 0/*score*/, LOVELIVE_D/*rank*/, new int[]{0,0,0,0,0,0,0}/*notes*/, - 11/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 0/*maxcombo*/); test("lovelive8.png",LoveLiveReader.class, 140879/*score*/, LOVELIVE_A/*rank*/, new int[]{445,16,0,0,1,0,0}/*notes*/, - 7/*difficulty*/, + 0/*difficulty*/, 119.0/*pct*/, 237/*maxcombo*/); test("lovelive9.png",LoveLiveReader.class, 183644/*score*/, LOVELIVE_SSS/*rank*/, new int[]{452,10,0,0,0,0,0}/*notes*/, - 7/*difficulty*/, + 0/*difficulty*/, 119.5/*pct*/, 462/*maxcombo*/); test("lovelive10.png",LoveLiveReader.class, 143468/*score*/, LOVELIVE_S/*rank*/, new int[]{410,12,0,1,37,0,0}/*notes*/, - 7/*difficulty*/, + 0/*difficulty*/, 109.1/*pct*/, 334/*maxcombo*/); test("lovelive11.png",LoveLiveReader.class, 100456/*score*/, LOVELIVE_B/*rank*/, new int[]{303,17,0,0,119,0,0}/*notes*/, - 7/*difficulty*/, + 0/*difficulty*/, 82.3/*pct*/, 235/*maxcombo*/); test("lovelive12.png",LoveLiveReader.class, 70288/*score*/, LOVELIVE_C/*rank*/, new int[]{197,16,0,0,206,0,0}/*notes*/, - 7/*difficulty*/, + 0/*difficulty*/, 54.6/*pct*/, 213/*maxcombo*/); test("popn1.png",PopnReader.class, 83520/*score*/, POPN_A/*rank*/, new int[]{495,238,54,44,0,0,0}/*notes*/, - 36/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 78/*maxcombo*/, "{failed:false}"/*other*/); @@ -423,7 +478,7 @@ public class ArcadeReader { 81259/*score*/, POPN_B/*rank*/, new int[]{482,310,91,36,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 112/*maxcombo*/, "{failed:false}"/*other*/); @@ -431,7 +486,7 @@ public class ArcadeReader { 79269/*score*/, POPN_B/*rank*/, new int[]{481,396,112,37,0,0,0}/*notes*/, - 41/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 99/*maxcombo*/, "{failed:false}"/*other*/); @@ -439,7 +494,7 @@ public class ArcadeReader { 80911/*score*/, POPN_B/*rank*/, new int[]{485,322,89,40,0,0,0}/*notes*/, - 41/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 157/*maxcombo*/, "{failed:false}"/*other*/); @@ -447,7 +502,7 @@ public class ArcadeReader { 78495/*score*/, POPN_B/*rank*/, new int[]{425,297,127,35,0,0,0}/*notes*/, - 41/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 127/*maxcombo*/, "{failed:false}"/*other*/); @@ -455,7 +510,7 @@ public class ArcadeReader { 80173/*score*/, POPN_B/*rank*/, new int[]{438,305,101,26,0,0,0}/*notes*/, - 41/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 153/*maxcombo*/, "{failed:false}"/*other*/); @@ -463,7 +518,7 @@ public class ArcadeReader { 79907/*score*/, POPN_B/*rank*/, new int[]{474,369,107,34,0,0,0}/*notes*/, - 39/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 122/*maxcombo*/, "{failed:false}"/*other*/); @@ -471,7 +526,7 @@ public class ArcadeReader { 80814/*score*/, POPN_B/*rank*/, new int[]{496,286,96,50,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 103/*maxcombo*/, "{failed:false}"/*other*/); @@ -479,7 +534,7 @@ public class ArcadeReader { 82848/*score*/, POPN_A/*rank*/, new int[]{528,322,80,28,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 202/*maxcombo*/, "{failed:false}"/*other*/); @@ -487,7 +542,7 @@ public class ArcadeReader { 81631/*score*/, POPN_B/*rank*/, new int[]{532,342,98,32,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 145/*maxcombo*/, "{failed:false}"/*other*/); @@ -495,7 +550,7 @@ public class ArcadeReader { 80875/*score*/, POPN_B/*rank*/, new int[]{500,310,102,36,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 123/*maxcombo*/, "{failed:false}"/*other*/); @@ -503,7 +558,7 @@ public class ArcadeReader { 81600/*score*/, POPN_B/*rank*/, new int[]{524,339,98,33,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 199/*maxcombo*/, "{failed:false}"/*other*/); @@ -511,7 +566,7 @@ public class ArcadeReader { 87204/*score*/, POPN_A/*rank*/, new int[]{665,293,55,18,0,0,0}/*notes*/, - 40/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 420/*maxcombo*/, "{failed:false}"/*other*/); @@ -519,7 +574,7 @@ public class ArcadeReader { 83279/*score*/, POPN_A/*rank*/, new int[]{493,285,78,27,0,0,0}/*notes*/, - 41/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 332/*maxcombo*/, "{failed:false}"/*other*/); @@ -527,7 +582,7 @@ public class ArcadeReader { 86786/*score*/, POPN_A/*rank*/, new int[]{439,215,32,9,0,0,0}/*notes*/, - 37/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 276/*maxcombo*/, "{failed:false}"/*other*/); @@ -535,7 +590,7 @@ public class ArcadeReader { 3019559/*score*/, SDVX_D/*rank*/, new int[]{13,59,31,495,34,56,502}/*notes*/, - 18/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 233/*maxcombo*/, "{failed:false}"/*other*/); @@ -543,7 +598,7 @@ public class ArcadeReader { 2060643/*score*/, SDVX_D/*rank*/, new int[]{0,3,2,160,3,0,109}/*notes*/, - 6/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 87/*maxcombo*/, "{failed:false}"/*other*/); @@ -551,7 +606,7 @@ public class ArcadeReader { 8759328/*score*/, SDVX_A/*rank*/, new int[]{14,88,141,1460,155,156,130}/*notes*/, - 18/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 257/*maxcombo*/, "{failed:false}"/*other*/); @@ -559,7 +614,7 @@ public class ArcadeReader { 9129755/*score*/, SDVX_APLUS/*rank*/, new int[]{7,84,96,1474,99,86,75}/*notes*/, - 18/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 234/*maxcombo*/, "{failed:false}"/*other*/); @@ -567,7 +622,7 @@ public class ArcadeReader { 9653667/*score*/, SDVX_AAPLUS/*rank*/, new int[]{1,53,88,1517,21,12,26}/*notes*/, - 16/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 593/*maxcombo*/, "{failed:false}"/*other*/); @@ -583,7 +638,7 @@ public class ArcadeReader { 9698351/*score*/, SDVX_AA/*rank*/, new int[]{2,70,142,1782,43,29,55}/*notes*/, - 17/*difficulty*/, + 0/*difficulty*/, 0.0/*pct*/, 372/*maxcombo*/, "{failed:false}"/*other*/); diff --git a/readers/DDRReader.java b/readers/DDRReader.java index fe0f34b..84a6d35 100644 --- a/readers/DDRReader.java +++ b/readers/DDRReader.java @@ -112,7 +112,7 @@ public class DDRReader extends Reader{ } } - public void interpretBoxes(Path img){ + public void interpretBoxes(Path img,boolean testingMode){ /*String dataString = readAllBoxes(img); String[] data = dataString.split(Pattern.quote("\n")); String[] ja_data = data[0].split(Pattern.quote(")")); @@ -167,16 +167,20 @@ public class DDRReader extends Reader{ } Path output = Paths.get("result.png"); ImageIO.write(cutImg,"png",output.toFile()); - String dataString = readAllBoxes(output); - String[] data = dataString.split(Pattern.quote("\n")); - String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); - String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); - trimAllData(ja_data); - trimAllData(en_data); - System.out.println(Arrays.toString(ja_data)); - System.out.println(Arrays.toString(en_data)); - System.out.println(Arrays.toString(sig_data)); - interpretOutput(ja_data,en_data,sig_data); + if (testingMode) { + interpretOutput(new String[]{},new String[]{},sig_data); + } else { + String dataString = readAllBoxes(output); + String[] data = dataString.split(Pattern.quote("\n")); + String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); + String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); + trimAllData(ja_data); + trimAllData(en_data); + System.out.println(Arrays.toString(ja_data)); + System.out.println(Arrays.toString(en_data)); + System.out.println(Arrays.toString(sig_data)); + interpretOutput(ja_data,en_data,sig_data); + } g.dispose(); } catch (IOException e) { e.printStackTrace(); @@ -275,19 +279,19 @@ public class DDRReader extends Reader{ if (failed) { rank=15;/*F*/ } else - if (score>=999000) {rank=0;/*AAA*/} else + if (score>=990000) {rank=0;/*AAA*/} else if (score>=950000) {rank=1;/*AA+*/} else if (score>=900000) {rank=2;/*AA*/} else - if (score>=890000) {rank=3;/*AA-*/} else + //if (score>=890000) {rank=3;/*AA-*/} else if (score>=850000) {rank=4;/*A+*/} else if (score>=800000) {rank=5;/*A*/} else - if (score>=790000) {rank=6;/*A-*/} else + //if (score>=790000) {rank=6;/*A-*/} else if (score>=750000) {rank=7;/*B+*/} else if (score>=700000) {rank=8;/*B*/} else - if (score>=690000) {rank=9;/*B-*/} else + //if (score>=690000) {rank=9;/*B-*/} else if (score>=650000) {rank=10;/*C+*/} else if (score>=600000) {rank=11;/*C*/} else - if (score>=590000) {rank=12;/*C-*/} else + //if (score>=590000) {rank=12;/*C-*/} else if (score>=550000) {rank=13;/*D+*/} else {rank=14;/*D*/} }break; diff --git a/readers/ITGReader.java b/readers/ITGReader.java index fd653d6..2f09dba 100644 --- a/readers/ITGReader.java +++ b/readers/ITGReader.java @@ -90,7 +90,7 @@ public class ITGReader extends Reader{ } } - public void interpretBoxes(Path img){ + public void interpretBoxes(Path img, boolean testingMode){ /*String dataString = readAllBoxes(img); String[] data = dataString.split(Pattern.quote("\n")); String[] ja_data = data[0].split(Pattern.quote(")")); @@ -127,22 +127,36 @@ public class ITGReader extends Reader{ subRegion.setRGB(0,0,readRegions.get(i).w,readRegions.get(i).h,arr,0,readRegions.get(i).w); ImageIO.write(subRegion,"png",new File("sub.png")); cutImg.setRGB(0,currentHeight,readRegions.get(i).w,readRegions.get(i).h,arr,0,readRegions.get(i).w); + if (i==10) { + if (new Color(originalImg.getRGB(432,300)).equals(Color.WHITE)&& + new Color(originalImg.getRGB(480,255)).equals(Color.WHITE)&& + new Color(originalImg.getRGB(430,254)).equals(Color.WHITE)&& + new Color(originalImg.getRGB(430,207)).equals(Color.WHITE)&& + new Color(originalImg.getRGB(480,207)).equals(Color.WHITE)&& + !new Color(originalImg.getRGB(480,304)).equals(Color.WHITE)) { + failed=true; + } + } String val = interpretImage(subRegion,i); sig_data[counter++]=val; currentHeight+=readRegions.get(i).h+REGION_PADDING; } Path output = Paths.get("result.png"); ImageIO.write(cutImg,"png",output.toFile()); - String dataString = readAllBoxes(output); - String[] data = dataString.split(Pattern.quote("\n")); - String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); - String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); - trimAllData(ja_data); - trimAllData(en_data); - System.out.println(Arrays.toString(ja_data)); - System.out.println(Arrays.toString(en_data)); - System.out.println(Arrays.toString(sig_data)); - interpretOutput(ja_data,en_data,sig_data); + if (testingMode) { + interpretOutput(new String[]{},new String[]{},sig_data); + } else { + String dataString = readAllBoxes(output); + String[] data = dataString.split(Pattern.quote("\n")); + String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); + String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); + trimAllData(ja_data); + trimAllData(en_data); + System.out.println(Arrays.toString(ja_data)); + System.out.println(Arrays.toString(en_data)); + System.out.println(Arrays.toString(sig_data)); + interpretOutput(ja_data,en_data,sig_data); + } g.dispose(); } catch (IOException e) { e.printStackTrace(); @@ -212,7 +226,7 @@ public class ITGReader extends Reader{ notes[5]=convertToInt(splitter); }break; case 7:{ - pct=convertToDouble(splitter); + pct=Double.parseDouble(splitter[0]); }break; case 8:{ difficulty=convertToInt(splitter); @@ -221,9 +235,6 @@ public class ITGReader extends Reader{ other=convertToString(splitter); }break; case 10:{ - if (convertToString(splitter).equals("F")) { - failed=true; - } if (failed) { rank=17;/*F*/ } else diff --git a/readers/LoveLiveReader.java b/readers/LoveLiveReader.java index 7bc0001..5c7f939 100644 --- a/readers/LoveLiveReader.java +++ b/readers/LoveLiveReader.java @@ -27,7 +27,7 @@ public class LoveLiveReader extends Reader{ extraRegions.add(new Box(65,760,250,53)); //good outline[2] extraRegions.add(new Box(65,840,250,53)); //bad outline[3] extraRegions.add(new Box(65,920,250,53)); //miss outline[4] - addRegion(new Box(509,604,190,54),NUMBER); //notes[2] + addRegion(new Box(509,606,190,54),NUMBER); //notes[2] addRegion(new Box(509,680,190,54),NUMBER); //notes[3] addRegion(new Box(509,760,190,54),NUMBER); //notes[4] addRegion(new Box(509,840,190,54),NUMBER); //notes[5] @@ -44,7 +44,7 @@ public class LoveLiveReader extends Reader{ switch (region) { case 0:{ final ColorRange TARGETCOLOR = new ColorRange(240,255,130,150,0,10); - final ColorRange SEEKINGCOLOR = new ColorRange(140,255,110,255,0,200); + final ColorRange SEEKINGCOLOR = new ColorRange(140,255,120,255,0,180); final Color FINALCOLOR = Color.MAGENTA; for (int i=0;iamt; } - public void interpretBoxes(Path img){ + public void interpretBoxes(Path img,boolean testingMode){ /*String dataString = readAllBoxes(img); String[] data = dataString.split(Pattern.quote("\n")); String[] ja_data = data[0].split(Pattern.quote(")")); @@ -273,16 +273,20 @@ public class LoveLiveReader extends Reader{ } Path output = Paths.get("result.png"); ImageIO.write(cutImg,"png",output.toFile()); - String dataString = readAllBoxes(output); - String[] data = dataString.split(Pattern.quote("\n")); - String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); - String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); - trimAllData(ja_data); - trimAllData(en_data); - System.out.println(Arrays.toString(ja_data)); - System.out.println(Arrays.toString(en_data)); - System.out.println(Arrays.toString(sig_data)); - interpretOutput(ja_data,en_data,sig_data); + if (testingMode) { + interpretOutput(new String[]{},new String[]{},sig_data); + } else { + String dataString = readAllBoxes(output); + String[] data = dataString.split(Pattern.quote("\n")); + String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); + String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); + trimAllData(ja_data); + trimAllData(en_data); + System.out.println(Arrays.toString(ja_data)); + System.out.println(Arrays.toString(en_data)); + System.out.println(Arrays.toString(sig_data)); + interpretOutput(ja_data,en_data,sig_data); + } g.dispose(); } catch (IOException e) { e.printStackTrace(); @@ -313,7 +317,7 @@ public class LoveLiveReader extends Reader{ List glyphs = Glyph.split(cutImg); glyphs.remove(glyphs.size()-3); glyphs.remove(glyphs.size()-1); - String res = f.convertGlyphs(glyphs,true); + String res = f.convertGlyphs(glyphs); return res.substring(0,glyphs.size()-1)+"."+res.substring(glyphs.size()-1,glyphs.size()); } } diff --git a/readers/PopnReader.java b/readers/PopnReader.java index 922bd9c..5272a50 100644 --- a/readers/PopnReader.java +++ b/readers/PopnReader.java @@ -51,8 +51,8 @@ public class PopnReader extends Reader{ }break; case 1:{ process(arr,width, - 200,255,0,10,200,255, - 200,255,0,150,200,255); + 230,255,0,10,230,255, + 230,255,0,150,230,255); }break; case 2:{ process(arr,width, @@ -66,8 +66,8 @@ public class PopnReader extends Reader{ }break; case 4:{ process(arr,width, - 90,120,180,220,240,255, - 90,255,180,255,0,255); + 90,120,190,220,240,255, + 90,255,190,255,0,255); }break; case 5:{ process(arr,width, @@ -117,7 +117,7 @@ public class PopnReader extends Reader{ } } - public void interpretBoxes(Path img){ + public void interpretBoxes(Path img,boolean testingMode){ /*String dataString = readAllBoxes(img); String[] data = dataString.split(Pattern.quote("\n")); String[] ja_data = data[0].split(Pattern.quote(")")); @@ -169,16 +169,20 @@ public class PopnReader extends Reader{ } Path output = Paths.get("result.png"); ImageIO.write(cutImg,"png",output.toFile()); - String dataString = readAllBoxes(output); - String[] data = dataString.split(Pattern.quote("\n")); - String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); - String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); - trimAllData(ja_data); - trimAllData(en_data); - System.out.println(Arrays.toString(ja_data)); - System.out.println(Arrays.toString(en_data)); - System.out.println(Arrays.toString(sig_data)); - interpretOutput(ja_data,en_data,sig_data); + if (testingMode) { + interpretOutput(new String[]{},new String[]{},sig_data); + } else { + String dataString = readAllBoxes(output); + String[] data = dataString.split(Pattern.quote("\n")); + String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); + String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); + trimAllData(ja_data); + trimAllData(en_data); + System.out.println(Arrays.toString(ja_data)); + System.out.println(Arrays.toString(en_data)); + System.out.println(Arrays.toString(sig_data)); + interpretOutput(ja_data,en_data,sig_data); + } g.dispose(); } catch (IOException e) { e.printStackTrace(); @@ -200,7 +204,7 @@ public class PopnReader extends Reader{ case 4:{ Font f = Font.FONT_POPN_NOTECOUNT; List glyphs = Glyph.split(cutImg); - return f.convertGlyphs(glyphs); + return f.convertGlyphs(glyphs,true); } case 5:{ Font f = Font.FONT_POPN_COMBO; diff --git a/readers/Reader.java b/readers/Reader.java index c8658d8..e3fb65f 100644 --- a/readers/Reader.java +++ b/readers/Reader.java @@ -58,7 +58,10 @@ public abstract class Reader{ } return sb.toString(); } - public abstract void interpretBoxes(Path file); + public void interpretBoxes(Path file) { + interpretBoxes(file,false); + }; + public abstract void interpretBoxes(Path file,boolean testingMode); String readAllBoxes(Path img) { try { Process p = Runtime.getRuntime().exec(new String[]{"python3","runocr.py","ja",img.toAbsolutePath().toString()}); @@ -354,10 +357,10 @@ public abstract class Reader{ public boolean equals(Object obj) { if (this == obj) return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) + if (obj == null) { + System.out.println("Null"); return false; + } Reader other = (Reader) obj; if (difficulty != other.difficulty) return false; @@ -369,10 +372,13 @@ public abstract class Reader{ if (other.other != null) return false; } else - if (this.other.length()>0 && other.other.length()>0 && !this.other.equals(other.other)) + if (this.other.length()>0 && other.other.length()>0 && !this.other.equals(other.other)) { return false; - if (Double.doubleToLongBits(pct) != Double.doubleToLongBits(other.pct)) + } + if (Double.doubleToLongBits(pct) != Double.doubleToLongBits(other.pct)) { + System.out.println("Doubles don't match!"); return false; + } if (rank != other.rank) return false; if (score != other.score) diff --git a/readers/SoundVoltexReader.java b/readers/SoundVoltexReader.java index 88794cf..f8d09f1 100644 --- a/readers/SoundVoltexReader.java +++ b/readers/SoundVoltexReader.java @@ -298,7 +298,7 @@ public class SoundVoltexReader extends Reader{ } } - public void interpretBoxes(Path img){ + public void interpretBoxes(Path img,boolean testingMode){ /*String dataString = readAllBoxes(img); String[] data = dataString.split(Pattern.quote("\n")); String[] ja_data = data[0].split(Pattern.quote(")")); @@ -347,16 +347,20 @@ public class SoundVoltexReader extends Reader{ } Path output = Paths.get("result.png"); ImageIO.write(cutImg,"png",output.toFile()); - String dataString = readAllBoxes(output); - String[] data = dataString.split(Pattern.quote("\n")); - String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); - String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); - trimAllData(ja_data); - trimAllData(en_data); - System.out.println(Arrays.toString(ja_data)); - System.out.println(Arrays.toString(en_data)); - System.out.println(Arrays.toString(sig_data)); - interpretOutput(ja_data,en_data,sig_data); + if (testingMode) { + interpretOutput(new String[]{},new String[]{},sig_data); + } else { + String dataString = readAllBoxes(output); + String[] data = dataString.split(Pattern.quote("\n")); + String[] ja_data = parseOutCommas(data[0]).split(Pattern.quote(",")); + String[] en_data = parseOutCommas(data[2]).split(Pattern.quote(",")); + trimAllData(ja_data); + trimAllData(en_data); + System.out.println(Arrays.toString(ja_data)); + System.out.println(Arrays.toString(en_data)); + System.out.println(Arrays.toString(sig_data)); + interpretOutput(ja_data,en_data,sig_data); + } g.dispose(); } catch (IOException e) { e.printStackTrace(); diff --git a/readers/TestReader.java b/readers/TestReader.java index fc7b308..3649632 100644 --- a/readers/TestReader.java +++ b/readers/TestReader.java @@ -18,7 +18,7 @@ public class TestReader extends Reader{ } @Override - public void interpretBoxes(Path file) { + public void interpretBoxes(Path file,boolean testingMode) { // TODO Auto-generated method stub } diff --git a/readers/fonts/Font.java b/readers/fonts/Font.java index 07a4049..8dedece 100644 --- a/readers/fonts/Font.java +++ b/readers/fonts/Font.java @@ -190,6 +190,10 @@ public class Font { if (debug) { System.out.println("Glyph "+j+" has a score of "+bestScore+"."); } + } else { + if (debug) { + System.out.println(" Glyph "+j+" has a score of "+score+"."); + } } } sb.append(bestGlyph); diff --git a/readers/fonts/lovelive_score b/readers/fonts/lovelive_score index 72b3d17..3946f64 100644 --- a/readers/fonts/lovelive_score +++ b/readers/fonts/lovelive_score @@ -1,21 +1,21 @@ 20 29 0000111111111110000000001111111111110000001111111111111111000011111111111111110001111111111111111100011111111111111111001111111000001111111111111100000011111111111111000000001111111111110000000011111111111100000000111111111111000000001111111111110000000011111111111100000000111111111111000000001111111111110000000011111111111100000000111111111111000000001111111111110000000011111111111100000000111111111111000000011111111111111000000111111111111111000011111110111111111011111111000011111111111111110000111111111111111100000011111111111100000000111111111111000000000000111100000000 -11 +12 27 -000001111100000111111000111111111011111111111111111111111111111111111111111111111111111100000111111000001111110000011111100000111111000001111110000011111100000111111000001111110000011111100000111111000001111110000011111100000111111000001111110000011111100000111111000001111110000011111100000111111 +000000111110000000111111000011111111001111111111011111111111111111111111111111111111111111111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000111111000000110011 20 27 -000011111111111100000000111111111111000000111111111111111100001111111111111111001111111111111111111011111111111111111110111111000000011111111111110000000011111111111100000000111111111111000000011111110000000000001111111100000000000011111111000000000011111111000000000001111111110000000001111111110000000000111111111100000000111111111100000000011111111111000000001111111100000000000011111111000000000011111111000000000000111111110000000000001111111111111111110011111111111111111110111111111111111111111111111111111111111111111111111111111111 -21 -29 -000011111111111000000000111111111111100000011111111111111110000011111111111111111000011111111111111111100011111111001111111100011111100000011111100011111100000011111100000100000000011111100000000000000011111100000000001111111111100000000011111111111100000001111111111110000000001111111111110000000000111111111111100000000011111111111100000000000001111111100000000000000011111110000000000000011111110011110000000011111110111110000000011111111111111000000011111111111111100000011111110111111110001111111100011111111111111111100011111111111111111100000111111111111110000000111111111111110000000000011111100000000 -22 +000001111111111000000000111111111111000000011111111111111000001111111111111111000111111110011111111001111111100111111110011111100000011111100111111000000111111001111000000001111110011110000000011111100000000000000111111000000000000011111110000000000001111111000000000001111111110000000001111111111000000000111111111110000000111111111100000000011111111110000000001111111110000000000111111111100000000001111110000000000000011111100000000000001111111000000000000011111111111111111110111111111111111111111111111111111111111111111111111111111000 +20 28 -0000000000011111100000000000000001111110000000000000011111111110000000000001111111111000000000000111111111100000000000111111111110000000000111111111111000000000011111111111100000000111111111111110000000011111111111111000000001111110011111100000000111111001111110000001111110000111111000000111111000011111100000111111100001111110000011111110000111111000011111100000011111100001111110000011111110001111111111111111111110111111111111111111111111111111111111111111110111111111111111111111011111111111111111111000011111111111111111100000000000000111111000000000000000011111100000000000000001111110000000000000000111111000 -19 +00001111111111110000000011111111111100000011111111111111110000111111111111111100011111111111111111000111111100111111111011111100000000111110111111000000001111100011000000000111111000000000000001111110000000000111111111000000000111111111110000000011111111111000000000111111111110000000001111111111110000000011111111111100000000000000111111110000000000001111111100000000000000111111011100000000001111111111110000000011111111111100000000111111111111100000111111111111111100001111111101111111111111111110001111111111111111000001111111111111100000001111111111110000 +22 27 -000000000000001000000011111111111111000011111111111111110001111111111111111000111111111111111000011110000000000000001111000000000000001111100000000000000111110000000000000011111000000000000001111111111111100000111111111111110000011111111111111110001111111111111111000111111000001111111011110000000001111100000000000000111110000000000000011111000000000000000111100000000000000011110111100000000011111011110000000000111111111100000001111110111111000000111110011111111111111111000111111111111111000001111111111111000 +000000000000111110000000000000000111111100000000000000111111110000000000000011111111000000000000111111111100000000000011111111110000000000011111111111000000000001111111111100000000001111111111110000000000111111111111000000000111111011111100000000111111001111110000000011111100111111000000001111110011111100000011111100001111110000001111110000111111000001111111000011111100000111111100001111110000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100111111111111111111100011111111111111111100000000000000111111000000000000000011111100000000000000001100110000 +20 +28 +00011111111111111000000111111111111111000111111111111111111001111111111111111110011111111111111111000111111111111111100001111110000000000000011111100000000000000111111000000000000001111110000000000000011111111111111000000111111111111111000001111111111111111100011111111111111111000111111000011111111001111110000111111110000000000000011111100000000000000111111000000000000000111111000000000000001111110111100000000011111011111000000001111110111111100000011111101111111100011111111001111111111111111110011111111111111111000001111111111111100000011111111111111000 21 29 000000111111111110000000000111111111111000000011111111111111100000011111111111111110001111111111111111110001111111100111111110001111110000001111110001111110000001111110011111100000000000000011111100000000000000111111111111111110000111111111111111111000111111111111111111110111111111111111111110111111111100111111110111111111100111111110111111110000001111111111111110000001111111111111100000000111111111111100000000111111011111110000001111111001111110000001111111001111110000001111110001111111100111111110000111111111111111110000111111111111111110000011111111111111000000011111111111111000000000001111110000000 diff --git a/result.png b/result.png index 21f09bf241a1c396d66ce857bc35b0231166288e..af69a7871be126a8c1f6b0a6088ee2de7d881f4a 100644 GIT binary patch literal 18028 zcmb_@cU+U%)@~fn=*%eShyqe&6ct4fDG{ZNGK!RdfT0HzLp5<@>?!6{`>l$J>$NU+jUB!($D0SP2H>bn{Dntt2-9UoU!rQ@LTr}SFheO z?{@s4@ariF+Y8^NT{P1f%?g^-re$*t%Se^n0Rx(B1IlqWvZ3_Gqs1#7A#GS)F#Gyn zZTk@LvbrIn#umtW&U-o)w2^jy?LbpOtNdv zfXcx&1@gYmY0n;AmJ@kDN&B3j%Rg>5D8w^lmW73>(F%Gh0uGL&N5ZF>%yOE8TXB1g zLp{l^H>7CVSI&=G2E$fIJ2A;dtW`K4is|zqV))HXBBz9B`Ry8@F8R6?v}a%~k5!p1 zhXdQDZm0F89It|9$}suZ8SLFkfzQ>!T>rZ5qt>HMa}(tqKJuDPE1uX1wqyT3-4N!M z5bqacdy1Q`{Xu48a`njb0mg%+c`(&WqNM9Qm@2eeC(lQH!tSI*@)VS}Od-^}m$+FL z7D#dDvfT0hS;P{eU&sI>C#~9ad3Uqm5L{Q_9EAuif@Mn4cDK|{9INtCXL?1uurgig zVZ(E-^t#jQhNpK`-k>j3d)}6c>4K>-TNc|7->}myo^Z|zBRS!Mi^FrE4i)Zw6(=~_ zp=Oz*&jYMn%lub}g5$*&ZGLGL7;6gyYsivFMYs>v z4k}%o9+JQNmIgP`xB&P|!qy{=xp!9 z^dV@vm|a9)R{wrj_#`SAabRi?Tz9wY#=>zW_w?ds<+F8+v>B`olkD@DYE))`T&}55 z?JVx8Aa!|9x+2hh6^8_d6&-wMnPz)#5FOxsO0@5_fO(rs|CRZ%nR^dLoOlnZR`+3#@VWF332?8zEDi{^z%6W zHgkh(2oLly{{=tH4wg!p6*1B=CyNWGSJC_e%M%SrMv-&*lh4{C*vkg(LF7)p^JoPr zfe^xqjLjz=aX;MKk@1^>1%UZaB_#1Y#F9#VFIWiNQ;bN8ba9m$jjs*u!~xnk<##ez zAxTUN{vkG_`e@%=vvKJw;Uf#$iE(pfUEamy0iquwg_$s2Z_Ogt5K0dD^LLSZgW(nS zQAk)^P#b?ImMV&0Vipb0N64@{i?9wMMOJqHeU5d~?o32NJeJrrfNBo$E@_GPi!?zM zTC6;e^BW(awu^f0GlHW@G&wfohFPYu1e#G?P*gi|CfqHm0lkB%Xv(Z0Gv@l{3`6qO z_;!Q)rw~;)M)@}3IT~@Z?H({@cunO%*aNa?rh<$;NMhQLI=DiobQ266ejA1MTo~nS zrsE0b%y0xBo5GY0%_7a#GB^Xi>>8YJi&iH&q#}e_dle^7>%VX^&WImc#NSJ4A-IF3$?8LqY%2qK85OxIelv!p#n>SVIP<8eFw3)NCRG7tBA?huVgG^7gt$3GlkR>5(w>~DmTkPB!DTt- z==+Ds)=)@Gav+6YB{C;&>jIkE2PIpw#2}IkQ)@papIMvE> zmj(6KkE*{Iq|&;Avk4^{tVoi1CjD}z{*i{r{;!$zF;Pf0W;Hp>fs z-$5hyuokamRU1Qswj-$~<_3K8cyE{1rm_wT15;*G2xQZdk*0eoVT{xrw2GcMF0P_F z2882Z&D&`@cbc?2ZHFQ=n{+pPyE;69yW5%q*ibHSF;6b`ssn}m>sA|p952ykA?}(>ZLRVi5K=Mj;rk88Y&$Z`Q28xx`z^9 zSKyk`G_UobdR%?S{6A#t!uHBLv%>S#rYg?GO?xSzI-K@R{rIwr1q)D>qUlMXlFpb% zX|m(_Rwq%$kce1lAF)XveC_l|(nF1cyxn19V3OXX3;Conasju4`{ie5JYbz2^OMQd z41*?ZAQv{@e87^ZID(3nL194W|K&Fjqamz1a#Q$!{&o?b0DVQtpq}8&>cq_g_`kCq zs7o>G!Vior-1|L@dXT|X?Zn}$Lvxxc##OSPg5e+qR&@di6+z-%M`qgb zm^9W1;3Mq)uzO&|8w%wF_n^Q;(jEvG*0NK4 zc&kkfA3zm_$9jKCu9j|mod6|2Rn4y2&L7yprTw*-1E?c6?@A*BfzyIi7$6(w{IwXc zUdWciBOk7$n$5=pDj`=kEtc(^pZaPZp_%KJiz>~y!NOyhl{T(M!v8jF9JJEO%Q-TQ zsrDZ~$8kSlt0fyx$3ZKcys%5u3Xm#}pjOqJ>zDSCbODACQp^pGvVwbh1x@In5&~Gs ze^?_u>;Wl`4^h7prj3KMDBw4+)zgK37MaEXQexNs841#->oPiiLD5Pb2mk#F(D|L6 zfrU6$KJ6K?1e3!5Wi(w>R(QNO53CQO*o5-|j``Q(0D);C1qR~9J-HpG4RB)rFPi~( zh(#Z8F62ZklrENq-+TmB?L?>vT>sZ@2v%L{P8#EX>*k=^>Et7bTJLtY?w=2U{QNrG zy=rlk-`kU2B8JQDUC4_G*agZ@B>^@&MqAD|1>G=n-FOj%!L^^IM(vym5qFyAkM0u` z0#Iz&q&f2T-tQ#u!wpF%P@P>;G-Dk>-M1g?4+&i9JLY!>vik2I%&s|t`Wn{e`?7to zEH@JigXym3*(%k}&En9*g|fm4N2Z|VO|y~+gBTZ9)H*eU@6Yyo96mWnVVxVbgq1+HvKJf3Psul;XS}Wgwx{Y2TKQX6B*4J7zd^ZQyBT z8J*e!^%_TQT2onh+-#nhDT&OE zLimFP3ZN-Sp)Z~CBXy406KYkM1M-GtVNRY;jw;C^_4wwCaNHNzQSgxx}{6EI=l@ITn^%WX$;+l|nC{tjlo z6t`JeRBYjzXO-ztbyfjq-xdieJRu-d?chZcj4H%s>w(TVp50*Dj5FM01)%rGi|{yT zed@VU?T{i+jg7#89$=D5YSW6%1F7c>q#B7kkP(L;QoJW@=}^H|uM$0i1#GlQd#A_n zzk2%+_@Y?@JG*aQecOx`Hwi2u1?F`;*kLq7GbfLq>7@GAwc%NKnus&IzAz|8h-h#% zmO!llQh=EZ=7c8J883H2n&YnNi2)b)CSQZ&M-UYNo~i2M3*z?*b3ir7Dz2c z=9$`n*~C{!&lj6#Zv1tdfZz-~XV0R*;?5>EM2yqq zof@DVuKQ`}*pzA8I`g*TY729{QL)L4brjlwa z%Ww^dkkNY{G&kRar#iZ1yT^J0{gA@l_^T$Y%Jt+3eEYR?*ifKUQNFw+a>3F&g` zK0mR84~o)ntM*Ljz!$ZaW4J8m5I(i!aiG5oy72qIXEMl5`NH!3cw*BDh~u1xxIBZr z^ljcRi@OAjP~hys_5%kR)Bzn$hECsijjk2C_)3B6wd-1RBF2-$gdE)khvgOe8#p-F zh15?t_ss>G6v`iV+t}D!uA2d_M8Nvyh<PwVTufG8$2g6j)ks2yNH8h;y*vm6W~ zkq8qJeH8@$-S^wu<0>FWD=Wu)^s);I^2u%?MZ5@-fj!9wyAk5)jK?zVawmN>(}m$EHgjb zHmPEncmcU70^)epUqVCgwU}35zTEE9f~-;XD^*E~N4G zr@^-a6NA(Z7rR7yrIn&e6hyY1f+;Mb_$xp*6*KHhP;b55PW1_7zuR#0RqUvQ zJsyb`?`^MM`D2h_g8o}uyK<<=EMKj}Xu^3jWQ)qWi@XrNkc;q7JwkFXq>%pdYkb8UkT1tp1{0$e+w{;MSsAhtFy3rhGZo|c+9=Y+w zd{Sz&U_lNdeY)>J^#Xay*$JH4Y`Ca$LH8wz*~SV33~<{)r}%v%+3j!wn^RF>n+*VW zp7~rHr=UgbO9N$y{RO+*M6wdj8POIrAK5b;e;HdP%Z>R znxK0uMl8xf)C&XO`1uBcvw0>kQ8U4@Z;YJS%m>K5pi6##yug;U`6fJ<)ZKhm9B}|Q zgP%l4+3kcMs9wy+}rp8g~ zzsWf$yslaW(32>@+s(~q;i;54j=mrQ-p1e97(X$X>0y^J%jWMF!%IV?mj~!aP-+BH zf(#mG=Yk##a{?H9obXJ)4^J|3(=5lN&#glg^YRdyYw5fVa{B_a+QTzpca=2YDq=V= zK>{1VK)sMiun#FxUq=VnuXA5TDL4#Xw}>yW$k*_&*C7#vMVhoYW`V7nI25kgYKcX% zhp3kt@wdJD*8q+i#Qt56iko+(Erxz?cURmDK`^Sxg3BlXWDL<00{pIS*}>PbQh&Ze6_6MNM+_$zCD3|TCHe3;p% z3Q%#EUXkCt-w{*^e=X*3etMh-;;}LjkieD$dKF}0zGm?{Mz#L~qu(&A8g1;D3b+9f z#qpAoKD;$L91U?i=-*N3UsnhSW~;4>Hqa=1Fx>54#=G?+V2~awbj$w4!MQWq1%6jy zo;Cmnvd;rOubJnFW<-#e*Z*|--`vfg-7g*jj62iB4;h$95D-9qKPrpH!ClbTZi$uq z#iJs#RO{8=X!HBOOJO2Fw`Y&VIJz_lX zO>qQ80a?FxHllx(hiL9I~Hrt+z(Fj#mRqD zZoUs36H;%_01&)w!z_>IqYC*Ir9eD9t_{pBFh`)%fl6Fw9+HPtq7SiH-miB3>Y%{_pl|O z^r{a5=m+$3EeII}_7W3^#9o;HIi7QyOdM07qepRPG<@h!rIMS)o zxQn3NhB%%})~ht*Zfv}0$(9;@J`2)1p}Us=Bz0jmDMz|J1Qs_7x%f2L|7ytwdl1Zj zIqz?NTHl=-oAF)a>o`o22700$aPes$zbl}i67%ry16Zf8#4G!}@(M%Gjgbe)HNPmM z;w$@}^7Xp{V>dhMgQZHFU%LkGIRusvNRr|&0RTfpv5L6co7XR<>i_%w)FG^si>No9 z3G&nqkjueGzyI3SZkmB?qpQj=Eur{Z75W!!zF89wBZ}`(*IbdF13~SNISev_&AL$P z!pb>lF)F&}#5vu^*A?ywXZ|F9fn0n!A?JWHd;lQmp0wU@v`wNg-=_})?s61=%x^9?6NhvGHAV z3sx*5-jS6cS2V;CJ^EaH(DFCk`B(Q}abKm9Yhk`Qb6|!HdCBs~C7O?lW-`O-4~d1N zSfBM(pkP5qAdhQ^RCtKLE8TSq294u{{>=Z`7(d>d5)RUJ{QAx&+AG+-8~^gp-~9CMtaGw$c38c+4LI=B zfN1YPHiqQm>?lg`qMzNNJZI=W1Wh4E53vIvxQ&IWQiIL5d3wQh+3);`@>miVGhGbs z??EhW>UfoS|7h_82gmIh6#-Yt*;V{VzVqhBJB04AiE$kzi)GA z(>Oha5Y8z%jerf$z4-TatHpNYsfB<$*k|Asa3(RhNNl)C(FmEb;iziKhCWdJ)>&ma zDu1)L>#9DuA+-^*sn}X70aL67{Gxt`f>GCN6rU3Ot-r?C=K?pjDJMmL|Kt?`YVB0t zExWc{K`jOK4#|_MdRhfMdomgl`Twp;55?firRit|=|H1W1HyzeAWIvoYJLz8= za%L(^RoNxSG{u%O@^~hK!(SZO6+Tv9Hk%TZGqDU)OClrFmWpUA^v)zvfl%l_ougFB z$swE^xiTv>P3TwHaCJKpE9I3iIC{vC_s^JYw}$pLOXbMnpq{5|3!jA#>$9C6dgGIp z*`)TxQG7~qgI+tI!L6Xdl>3*yZx0_1vS@WLrpddd7|l>&L7#ALDUySEnZv{~cYRIk z`;)aTwqFMKqJ!5Qo^PX|s)Vl(1SD71GqdPNkT;TH(VMnxhsZVI#^1LZ8xFG{R9R>a zuB!0fS52j9EPaloa}H3T2*Dyz;SuRL@6DvXYI}OT0+u6Xu^5;}_X}inJ3Z*%XS_I} z#Ty8USHN+aCZcjPlS?y?wdrzmQb;GJXL*s{3dtjDPiRyeturqPc7F9C^Gq=?J$Rzr5sgAMaN> zZa+3kdpDE%OU}E%v3ssd6}fty%p|wAnw-|a)8sF8G=d+EHd|v8y^5jX`3)6DqefaQ zqLT+w17`v?mTg6I1Nh}DlRT$R1&-)*Lk#L;K96OWWO;w8HZo$yWGX8lrXA-$6XbXk z(zRzqr=?SQ_|sV*ex24-HS9!G4mU67O3ojo#X!dARnE)c$$VvNW_B7!hzT0ropa8Z z7C4!qY;8=#j?!o+3=om_3}NR9-;|sj^aW9~LxMsU=e@9?SlPI3&S|3pr_LY;#`Nw$ zrXaJcQ;=vQ#9CI26*Fc&L7oGZ$u?+1GP94hO*7DHD_@>zCe73)SX(sIj~$kush!SB zU7cO>PMUE~kJerJxY^y>&)Ud9kv!T?|FW&#L6qz=YT$1#D3c9?h{5HVN7M?q8ovu8 zknvWcWR|5RL#ggjb2*Fy$a@wrfhef-N?50NnznDOQztE1w+VT<;}3V^hLk$Bd-oRj zTdW4UwkF(L$Z^tsH#?ZHs=C5e^}ga15P!y`S9U{yBMTPvc_&7|;ZVaSX7ZYIa#rJP zOqLfx*H%tuMT&dY3QyQxtW;*>IrLm*ywzB3Tta{gw{rBobLO=QZ*&2);KgXkrB*jj_GDX+>{k?w7iwikUnP$xCSjD4 zrE4^34n|tOx0=~K{7$2Ylw~cSY<@#@uWe^5mQ~Y|s+5uaa=BV(E%*k$MLt+Up# z&3ozH?4FRt18?Z`X$>Pozngi;nYY1jJn8LevrEcR{xxc=pO%I9m17PRt@LQ|x>nq? zZYbzdaXyKV0?Rs|2U$ew!nC(i7IE9y4=g41dGg)h&#M_70hlsX{#g6QGd*w>#h3RGycL$Uk1E?onXAXd zJkDEKy>6oCo9KOQrn-DV5|x{XWrg#$rN?NuH~1z(pb!B;|3;cT8*F}QGA%lUkymOR z+urb|Tx^}y>tHCS!a`qtmb%14`79#{98&^L zuW6P6ZNgtU-nPq$)G5dIaq^66FQ7|qs}CjLo(4Y468j7;MqJCiYGHM-@NKYAktH%E z$VZ3rL{!J<%UEbr*G{nb0ATo)X^kUto_*||W%|b$L}khhvT!&0^t%R&cgZp4%Yv$O zd3LJY-bRU2f1191F6PV2tFgJpG2(%YH9BHCl+y!%cYR|&(p2>HnttI>9lN*3#5nPw zy(!8WLdk%*V=_yvMwbP5w=KN%V zIT~}pd3klLcD2#2n1ja1TMbT2_}~>X{p{l8nLNC^d&=4-toC7B(O#K! z4P%Yr1v;=1?-R5y#b|e$a+X{8DaLk9*PIF`&${D9hAVf3-BpvR*~>2@@q>#vB;>1= zCZ~lsVMnB1sh5Q+;)- z$D8^4oCZ80%vDsIU{$mn6kDS5fMQ%2br~CT-%+%BJq39LKeW?SqU0Pywz$(+?aE^7 z8F^i5o{_{e*_@yj`fOpzeCnU`Z}Y{aJL zx@K?=cq=@N4!n}Rm!32mrAo8mwRkJnsyM_7JTIn6gW{(3u%o_VmUf0^J@yELS4xYzGN?es!d`Jm)B z3(fv$eN9Bp@Qtvr2#(bto;fADBYX&@>{HCp?bM7}p5*0mV^mgznY8D7%c$WWrfBDC zjprWvR4G=$G=~L0JC(ZUEWiC?fX_7bTFmKNT$-r6mTM4^l5QMQDCS#XB2(?#N}xj0zw%*8a!Pzm8RPwkDQs6y}F(|q*T}T%2(BLV07uKQG;Q& zRh7BRDzB(#cy-L4r#Tgj6Ea;^d?J?Jhjk5kr$Vi1(ZY>A1)<@VqAq#&OsmCD8+;~P zbIvh~Pa3X>o@w{!a?yI|3IF1Awf+sTfvF9l*7Mb~iao>AVYTHP0H#VZyJ#GHWbLy( zZ>m4?y{NMaW*xpzPp|zVa?iC+RP&vY?tsj@cELCj~_ z>4}E%O!Vw5FE+I9M7{b_%EFUKq^@rzRL-lc8#`+my=qWZw}=7auiPtwn_Wu?GG2;H zAuV-(g0fsg1vNaOb<9yk@K_>!Ryk<2yu&{998_`D6TYsjdLKd42Cw8ODM!(aVb&3U z4EJowUidw@E1PDO6TOtpV||ulRg4nr{)Aivm1P;24>@)nJRApfu_6Jx&_8%Y0=YwvXyFaOL_)ho;yU23y6kNNUPXnJ;^1@fV<%F1djnwm%de#uZJYw2DK!Mgs_M;`3tkg?(H zB^N>iWl6E8vn6NYr7*5)GNV&}buW(?WR$+@>AyOU%XaIRg{}dF+ zVXrsT;^~qD{`o4>PNTB3QU22{gj~1sUWJ^Q*aq|Ykz;GQ3b#dH0jqFw5m~u=CH1=X zsD@(bAN(F=%KV%#Cq1)%dF2w_{ga{Sq~&Zw>118-@IYD5&zl=m>OZR`DO~W33TDX8 z_kY~LTS#Alkr#?iKHoCGRBOYi=a}(cSADKlk*V`<5f(2YbBrnmD|r&u(Z5D8-c-r0 zs6rN}J3C_T`?*Gb|D8By6ixyGca0$%6VuAw(`HFQO;7%v77lbf$5 z`pw6%UZ~mYQVqD2#W>!lVdbnZi%XjyP=cZs>Zh?&5!{oKAG;5IO+7lg)a8e~{YkKd zn4Q(j$USbWMR%_zrq_kENWe$Xo_jHyQ8seyfn_`P28&i4i(F-l zPI;zALbuR+$hWf}G8F5AL;(ziq|sRcujnK)`9}1oG@rqu>6CyQblkO4TIQd&?!yQ& z@hy0H!($R_n><#hm8ENZwdB~Un>C=#HVkNU!bpjo^L%HXCiep##N_hE8|E$bqBx&v zMWx59Q~wNw#RM)5{@ZvULz|2|j$V87>}TmDON%5c=%VRAHQ)cv*DyM%C?FMT8HLAU z1jV4*LXa04^YSW?F>Ut>+ugV|pR!Kk6UwaPWR&ZSrbkrUwN0Jor@Zl+4U74_Bee$m z4E=FO=+dFpAp_USVDng$uN8$io4P;{F4>qAM!S-Gw=%gC%gilw<>=CY6h5VjqBV8A zm%2~|L?N|@-Lo;Lvim?&-EOxTQdasS-PaZ)$((wpk@;=BNAuHItKsQ!j_P1D<*i-BNEZmU+I`Dd+L<6qI_v8zV?{@-ztJ z+Gx9q?o?Yaez0hjXGMl~U|B(BR~9mDOzOsN(_o`(f6UT($YHhmS^Yr*LMfV7s1-oc z`flrau?FQ(7eWEjkoj6}88OJPkAWn&+7uvOKQ+v{Gw~PNX!nO?bJBFF^`MX$S*Bka z`5`AmBb-*2u9QBmKh_V_{;cWZ$o*_%-`Mcz>z@*O97Y6%!CkY;SvUH>xB5KwTKmGdzmEQrtqAR(xc946z0T`Hv_tuBvj>$UQ<>tEn4S!%&EK zvWqekonq|NH2&-b?0ADATSb@Mut{B937^FX&|qN`gZu^)SKsJ0MY)TJdxNr7=a!7n zxL}sCk=n{ZVqIq8!UB=lx#9 zjRhs%{hSCq^@o@1HPX;aIW{OO*0^}yqr%;*dzS7j+%|Eiq!g;Geqa}$GhS{wOy6d_ z*w%fZ*&tnc@er7FgZR9ozgmlO#4l0C8#DC`Cg%=cy*{TZKZ6U&!%Iny9IlVJzd3I+ zvYrD*x7r3fKmq3jqmqOEz1thsy3;|eDC~LT{*aT(E48K^TKQyGY?ZDoz^bpEL@Zh( z&vENwl7yu6 zIHWP3D@R963z4SFp5)~h^>mJDgB~LMv%K!vo8OD;c<&zSLIE->GdgN)mA8P-PL_=B z9+jYINy7xD_owxJV;4hXjYYz2o~h~QEKUV)X0LmWZW9yVp41xnnNLq`sW9=#OMv89HmT8`&DH_JB9lROZXJ}h$PNd%n?%Gu9NX1~X&e@wA5fQg?KqFnS0N1OddI4R6pH6_*`bC!+mS9mXWq!;?ksn2&0pGZ-G~z zMlpG3toXo4g`$PXMjxwNu12R}SwAi%&9G?{Rm95Os=Oe{4te$$P#4~81`g%*$j-Ll z#iGHq<7H-@3TfE5-9`F^mQoEU(mAH}Dob}B>%L)+)PVs1Who`BkGoBlGoe{$^35di z)P;LlRTl1Hqc~HHprP2UEoS9|JTHFlyhVE5(jwn@_jt!2ak+)VF-yT8MFd%Swn-&r zX^$Lx9E6G`$itD0y*)A`qHR1Pd!$-83{D2NX&Oh5&Lvrh+}Uyteq`yr%9FYMw0zLQ9@41Fud zlA@EV417|yl-+ZD4pbsmmnskctUEo15g<)5s6k=##%x?PDAo&A+)&H7p41#C(VfS} z8uc?xRbCy})f{59{9+H(Ya`Gzubf6wqh~nt&x5wb*hQ=z&d$Dp?p*;$`)54xm|Z}k zd(`|0Z)t70B)HQkrlEB&Jp`#%+PkwIgPI%!n4krEMlGN#Ekmp4ihBG5O2Wx=<4}t# z@F3|p)@4YTWC|1L;YRlv0*UVwkm$6xZsrb}>D_?8_n1SZHK2uRf{ElA!eh?Z?b5oF zOXUkw!ZN$jVnF0K#YBF_b7-k`o7MfvFYkk?M%J*=_n|F?DpxSbhGi5_QeG)t!)pns zoRFp9S1x7D%?9Bqv!it;C&rYOus33c&^=b$8muFh*WRBnociaydD2orBvUI(p_GGQ)qkAIf!<-`+xvR&9Ig(X9 zz@Z1fI@G;<*!_9ZYVm#i^yhTlrj^XIz^v56!hSoq$<;{#=!12?|ymB zq0!HoCi*`k&pW@rI-qpy(TzKaJsGqgD`sB3?zVsZc{kFlJIvha+T|Y)488kD=VfHi zF9b)YFZQ_S@~y7=m@gD4ju;x*Tguz0aSGY_K2R@Rsdp^DJdlBT{FV^t$fa?p>a@i)7gP_SWuP9>2JA zFQiebP5-J$p-gsfjjV;kb*-suE{Ua=C)9t-(kE^&#?x~787e~bfC1TKY$@?P8C&z~ z0Y4Q)2V*hRN_P0|Hi!In3X>F=4FWkBe;8S z_*(HtgBj8y1CYQ(RqQoOx|wr&+R^vL z?|y@fZo^qyr2g%Ln`b!7A0HO=hFwcAPeyIBNi*kEpJAu(4xVmTC(nj&La4{*8S-!W zd>q?@H45BQZ@7F0Nk|H-VJD6y_Jrfs3@4K`yHj3my!vagQg2NV_eR4T)145=^^XcV zXe;nf&A0vgd)*S5$Hq~GrwfM_iO(!-enOQzIP_bml3Mc*gYvNjiO}tP`{ZNC56g_N z;2DYpe)UdvAATg%*t}el6Y~qR(!cNiOw#m|r2~~gH_p#`lec$hTH>l@rvtUz4q86B zmOXdZTG8C@euJf^aDqg+peyx$lFO+Hpmo_HPRveEKqsSPl8!pWNOC>~pH^NSlaCd+ z#*WL!mR|OKw^h}&>bgpRz1T}n!@Y3tB;^Zkbg$U)GPnBbXPqfhP@~S?)w)n(m}sDF z+I2^z_&lxg<_+U{&42CpLA>CEj7LkENzk^32}d=DoHdU8zWZ6qQ@3OF@M{|BXKm2= zbDN$$U;Q;PVzW(l)Fab>&Vi{zuWFbtSTCn@ z?CquHYe=M_iPJx(ea)~8=e(9?QWUt|9e>k`(`?&Z ziQlOoqyv-Hi;dVMygFaD`WoEMUZ=Yf8PEJfXBU6pU+Aw=>2xghbc&|sT%Zp+&a~yr z-F)>_qU~75$E^6{gKrwC54TJ|;+^FyHqnArA~fghyB#W9m7ay?R~`Dz43Ki*HjN{KAZ2)^N%20J^Wim%vJStqAHzEJuK5#6VWO>tkD#- zIAU9OA?=*1*`=`zyoF7g^~z=I?%jVz^MlNe$RhWf8q~LH7Y=Wp>3es+Q(5k#Z5_Ps zR@tKfIqtT;r^_qT;X&MsnFA&%o-(1vmLE>19MhpG$wl5bO+2RKsh&afq7#kjE6F~+ z@5e2iqAuvB^->mKrO#KsvGgKitx&`K`OFw+ z=VIqo>_UX`gko34FpYEn+ZJDVe3tsPn||wsLBt`%;n*k6v!Bj9ydRME7EL%ic6xfH z+{BdwxZug^E2*cBG{KBqh^5;p7@`vWXZJ zA052!&5=Ke6EKZK%S=z~&EldFBgk2<_Lqu#?u8*}D&W_{iE z?9-mwNC&J|x$%)O_O1b0gIjvZTs=(oqsGmS^gUmV%8 z-^uB!#rw;hJ5wbx=e8Uu*!Rbpi(W{qM)Q<)keU(0qFy=VYluX>2TRJ$itZ1QBa?Qze%!Q!Cr~K@@Jn<=epmPP9RT)M*KoQ^ZNS{ z9#hw%96TuMdVDjiY3*yE?`N%jUA&ZF?JG*+7Gl2k|83d$tL1)KRsLHKI{bfizS+Wx YdD8~7;+n6l|J#w-8LQt&r!U_6KPf0SeEF@Vw~T}pR@^biAxbPOe>gp_obG!ESzLppRbNHfGc zKIi$r@43$TdOn`(nh(ry?`yC9TfepTsyjkWMeZ5ybKD0H9z0W!m)3aj00Z>k0VW^z z6Z9_}Z*~12JP3TCApKSgY_y-@l}@VNba8|lg{(AR93HloG&kALH^0}_ogFSIx1WD0 zN6Hdm5yusd%|S_sNk%FY6c~=#|DGl6A?p@ZXnN;U<^7$-Ti;PPm5k!u$)&{9hq{>+ zSt|v_B_%3JV#>2#nIay$D|a!bl%fAmK8YCOcX7vkSQXOACt{JY0 zf%}{DE!aB@ouiMGiidd;9LKfkxrO`B4q4n*sF)bIktW}QqvFu3Z$a=)c#lJSRqDaZ zS604%1$s?$BCTdTbfEv-?Y`g4$?H|B<7*bHZ|}Mt8j8@1xU77wscUX~%<5;SQV;mi zD^}EoNZvsB8k}v1Zh=vaOK_9=rN6R})ffuI7*-Ue9%MM8rTh$^fpbK{=xL7ghHLaf= zLw~1k0(8E3dh)Cn#Ft(|65J@^wz65hDb7=~6k6|GzA|>O+v!m87f|#uzoKPFfCBhm-gi}!h7xp}_SI~O)q@Hj4D@_RjTHQSk4d~tM(SZHcT&<)y`rV_M_MZc0ryjf#v=ZeGX*3qtyte)f_k^JMX8Fv^|H5kU zCKVXs=HmL|BFUzG)Ai&Q&AEnbG_J4Rn?p_N;i;*Pb)=jA!>M~&&#V?a4to70&@B9i zVAv;lV-r9uH;Mjp>$WV1f4Dey{ucp52wJ$8R?WjPjqSFc!?k0iO{5NX1fOipa*8kq^4|=!U^4qi{p#EPby=Ya`$9t-o2b7Q^f=Pn%%+GW81C=Zy{Ib1w_t1I`Y0zLp(5`0_qZ`CmJB0&tXm2z-EI=zuFi*^FDbz`q0=>$1bnypz z6(-uGHm`@@nO|7{rO;paorN|dvh!64tx&^cZW7PB9SRs6zwW)X_;&qb!B*LK^Ht1J z8$;^BUy7*=L0(z}{FMayj}@9{QhvC`H2nwSCCZ`tAwesM+ft87y=9Mqv3dDyoa5IZ zxTn$qkZAL6cfR4O4Q)#QNZN^(^b`lSsH$mRzo0jCPMpuMmv-=qyrxy!cIf)hwEv| z`gecLaI?GVj)Y(R=s5NJd8+c17is)F zli3|TW9B35sEz>4_&$Yk*)#`W7Zj7qB;XrLZw z(-^6;n}|q@!ySvBUDaS5 zoa~3MM%$d!LTIjku0lt}M>NQ)G899|_Ugc+H?(Gyp|&nTy(NU=nw+1%nnWYx_B#qJ z!a}w{^eX=B)a`LFsb4extJZ={vfwYL>9TXiPO$0G5_U`SOp2?M+;FU&#?FE%<3 zAia&LRPFYmKG#)4k)Q=D580)tvKE3xCR0BrJ+dCTzTkpK&<`cetd8iIFRw>BT$?Fm zz%+e+XyJ}7xB3n@d`$x*B4l$z_q*_76EflqfW*fis--3*`PCbc(mAN4{hz_;t!!x1 zvveoFo5xBsYIxS7{}E=GV@{KW{gHHcMJbI*C=@y7yLmy_`9e90M9e5^EaJIZK2Qrm z7El-FfM9@Ua}f072dT4zPH&ZsgNKAo?on)M*WuityFW{-TOXBm+}W&Tdbvdv!5rDD zK7!6VfA;`|5ta+Hkra#2|3GPn0O?iA5&Rw#Bsd|G9EduW-pH#JlVD1chwF3{&Z72r$ zs#jabUU}k45|g<1LwiV>>N3eGv@^0PlSr66Ww4qpa+tH}*>lc%v{TT6$V2)eeVbP{=ur=gzRN9zoX@PAPRUo9=+V4A$a!V9C1Yo z57?n?Z1L{Mxo`LAYT;9DcMD=I4>nWhBIOQX9@~c~`JYdg=O?j!p#%GKwU{RoX@Ptd z_-|I6RKFWH^hSdiCreNy{7X$9QSUBz_*LYgRq4C1NvxSI&4gdp1RZIxLonqX5KWgNQA?>dRdxOJMc zRH`FYlHx;gNB=qPh}icd;|igxnQ-1sj^iB0@X9#a$cBN>fxV-!$^EGl3h-~tS3_Cr zr%UjckCCPIAz{~hg3{pgWDAp1YF-nhCeyJQN*#Q0e0BN#fLPhNSu*smwd#ZN3_wl7 zpFT2^6Ss<4j+lR2o1YvUsvkaci03oWNu0~YC=#;g6UY4mOI4- zFIKS>DMSYNtG>IC2g1=3-_6e8ZyhO#N*)QY7;v}Mwk~>YrN;}<^ja?yjDFb*Yz(NA z=~W>f{}gMnl_zu&Qt5)=U=YHy5D!q6A7IkAwDJE%QkAB9G-%WR!WgK3xcqAT`iuqc z8Idvy`BE&+ENxe8es}M8I?Idfsn|4Gf9W>9m2feBox^Z>S#(xde*V2QT4WfbKvfgC zzbT9J?iOM*wd4fd)(bL?g2w+87xaPDIIEeDld&EqX`9NcXz`@+u;Jm_O*Is4Ux;hRfEGGV=NfJ7`m6)NEmfYQ33s98srEIgE zeZZwNUj%BFzW?K~4 z!q(b+ql0_6L7sGs&DGM?oqs(^yU^-_Tsl{`v5zE}QPL{MbPI3c&|dNuY{NzCjinnd z%G*HcuJE>R2s%^v!G{y-kn!MB!;C|OL-FG(hbS!KN2@rFChdoi_hqvSW+vxVeBBIi zR{?h_+vPQOPyNmFXO0DJXG0gmvsOcEX+8%}T23?4z-JN?DOAUFCl=R!s7D}F*+r%8 zw95XV#LWJLW`JcclYiUvM;@Y`wim^)RV@woZW+Azmm|=Ymj>E}BTw{|9kQ#=6Ki9k z9iv<5Wc!g{c>C=kj{}O|5LflZ_U^Rb%#$%=fAEq zGFCk}i@x2N9r2%(Xsa_X3_H%KJHPOcj$;IQ1u%^V88*0U$1 z6cmHCpr-0vXLjABuV5lV45hX0xtvJ@h)3yhU{{+~fdyoTqdu|Lr$Vwnijt$|_qq zY9PVJv@quIx=CVqx+{j6s2}htcA-3qh`{hn?L@!ovM8gE%Kyo;`&~H3 z)ClGuBaxVmgUREO*yIJ+8h$^)JJGw3n3>nhYJSLHSZwU<@mcmtt6H9=Z6Y`vbgqKt z45HcFENqv! z>MQjbg-}k-Z+3`o=FL=o6i0B-E^%`63V!sKsUw*4(NXQyTu~u&VX2x+UIpk;5rBW2on8 z%&-Tp{jF!VF3qdT`lk36jNt3;jVy^xyb|kr@pN)kZzY;z*j@5|bE$2)8YY#yuK_)z z`n2XN7i1BpB8^aMYB!kZMDcRjw0s z*RMxkSFrGZ0L%K@i{E)}FtO=*pPR)$g?RIOTlO|}SzyNsn7K}>LpS*2cog;T1NnN#^;R_oI`Pb3N?F5-W8oR1Cr93;3sk&-c zLT(0db&{k!{k7FPFhk3Wu=|FbF-&Bk;F~@ZNI#`7Jrchkx;IXsz66xV z3-{klp^^fZZr{!&DWE($@9AIs>y%HT!i5_g=4)}_Cku**BKUa=VWPK&XV52sbAc)} zTkqz%T4wev+0lm1Fh2f%0g}=r;>mzJ%5HKIY}ay?(M@@>#BzRma8#OX8?Z6BeLncQ z%4+zz+hC34*=#nhT=lWN`|O{Gjb&;yf3L zSt6sme&8gy|-=2;37l8Ges8yBjFSuj`){fsm9XEgKNj& zkEh$}>3WNgA8XRdoDYR{3vaoxixw`KM?smyp!?Exu?q0_BKK0tJC(R}pv4IQ#r=@GSO8AmvI|cb~TN_yR7H_LD*2%4B$gEvMI}2i+JNJR| zPNyuTdI;fqx%A6Lf~~eU{nQ4~w<*!FCCKO&Fs;$eIgs+~qPNO(jFRgLDR%5;v#cmP zXto5f)O8;c7da!+M<}q0Ri%`CWwm1cH=8i`C*pe-*3-w%&E1X8SK_~ZjZBK#GF>i> zt+MS=OPlETLQKhd&F4t{Drm>_94*xa|CV624CD72GH98%WZo2Sd~}kj7(66;X!uv<(GaY|-np|2 zOVm_vtDwsE(BVoTFKc6#P7bUk)4QLmNe4wTCuG*_p#S>!d`xXD?N8Q@1n(*A28kuv z)bP@W-gu1Qnm8J34clYguXAdZ?#75^_$5UsfE&?j(R32Vc?u>*o8fkrtzIwt>Wfpy$RS7Cst1%Xz4K9^K&Q+aZ)D2@Z~+ecB9DKLRM%cg zV6|z-r#8DKuBuy4PWCAy07^g#^<(=i4>|Tsp`UPh`hNa32`)i5H;9_9S$;qTSvFW1 zu$aNm$%>zp_GetW)S!)Wq24iZ6p^Di*8Xbi=wjqw$8Hv~wHR>BJ~Hc{_)&!5W%KKY z-;CdG zeUu~R-K8;qrC=b%j~*M5@XV;T%r=sHFLmY&f6pi_H=BP4h>8{x_o@~t`8iv#QSzkV zyJyms#ExX&O1NB)`94ANK=jozzbLc#5|3?2{{^(C7(W1((;M))qf4Sg;OJ!% zAu?LX&Oib{&JQ0QS+-C1f(ts=h2Z093r+%+M2eofgqhmTPUut*^Ru)ZuvuR^GA3=Y zoQUcx5Izp8DbXjLhJ1RV?fwKzLm+j zhg2bFOHSRPhXGhRQCVB%*>8MAO**AIa@rpzR=hnu;6wzRgduUq$6-?Nm*=Kw8zjcC ziHk7vi97|pM%Vn(CxBm37%u27wl?vOT7CKjaki=hQDxH-Y|Z$)y?)BsO$J6s@4o4jT5EKTzd~w#qXfSfor$A zNStu2N|?&@LnmKvr9SO{rl8WHMBsc%zbaP9h$$zh7GG6h%akJI2`6=${_NPG|G`6V&^z> zm2M2%CH0XQ6944kD$}1KQ40#cCL{+rX1T z%*-ia#$g^2cRR1R(ehUE`?BQOCj*A=-l5!<@BfL9h%>(y#RuX+Viner_23xFHc zVC9;#lpLjQr ziW7PpT0H&u#zB9Ix{rc=yCi|hkFi0HRCuZLZx!$-r}toyftU89hPu&}MZI3(tIbP9|~b54n+=JVz23EH_+w#xORj)DNf z`+)XnBHANriOP@ylf^`Sx8(q-%|uo4Uy)>-afyjcCDGd2f=(kLpZ<-Y=$$3}^s58+ z#R|pTF$-CbuPB(*o*c2e)Q{d$PVcQqx}Q7$MqQ?0`}^fbYWEjqda_h*KiN8)D*1F3 zAUWKV{bt4nOi+NK-OLrC&Y!D!VXx`=Wt+LF)!=;mn6?hJrRIR(;}G@1TxQ|TTWft4 z6|!#8_mjoiWkE~%=qG9K)^q^1YZ@VR`c`27PNZoRs`(Zt+|qxGI05`Fdr& zl8too^D1PZC{r7ofCMJ+Mlbmio3l593^XE;qNZsB zE*;q^pguYp*=2eLtx=h{>E5vPWmAiDjp>YFGTJqvnx>3jHw&7EqJo5|3K7GY*SsHs z#wmE~I6)#({zA`M+XZMjn^!(-iyd{hP#ltn);<`Qsv#0)y9>h)2pr4wBIKrGCV`)% z4=np*A00*&5|Mhn9e%~|w&WEo_1ImWZlJL9Uu3bnS= zXC}S9g~CnxejnW%PrilytA{D4p+IXX5gVTuOn7qDt}eej9-g3f?4{U9CEvfNQdCro z%gluGw%-sdS*s@We_K}S5jeBvzbi@^wD}b=(ky$UeHSN`w)kk@?vYkYo<@y)cY|?w zPa9>G3m#N++{HqUJGN{;7}9G=j6 ziS6jssq}!M^d=SPds=545y^-s40{ z-<_3I{-*|i#Q`vl@0(YaepRexy@?^G%BaSDrxBakyD*(QjZBUbu=zzZm8XoMvm6z< z(_Vv`W5(;p-@GNCw(sr-uCajeortY>L72BwpJ#xa{DF=K?G3a!$owH8UGO=F_{z)o6 zxWM<*=tEW67@sFr{K4+QkhgDcDy~j2T>a9&deCBa)o%#23SB+?Xp&Bc3jR#~^bbRO zEMax#s*umb@#QKswpfB{b@gogJcLh^Z2_0iMbWX^7Mo~3w`_SmT#gChq z{Sew$Ue1qL%CLxoKVNnvz)*6MJd3s`^1kRrjY)EnFN6c))nC$Rz#0Dr6l^TqaWWm#d3RcN}EEEq)iqKOtK3o+H^vEnVHg<`301 zHC3jaPq@-V$&|L4>~osr$K*TOIj*~)5nl|Umul&6!@_HJtU21u z($oU4<=GJ9)wz%5qTZE0*x`V(iyXspOGJvRb1ix!c1vL{_XNVHkMs^8O zeow1(=I=9;WVYt|ok0utSEym9y4DJCg`*GV{VHaN{+&ZDpHr5yR>PLLmFX}|!vXE4 ztOWL5xx%k?H=oAJPuYefs@C zcihUpUQfxnKLihddp$Us)f00q@}Cr0$Xh& zQJTeg-5<-4Z@sDAQM`iJNOZIz&U`m))a(+f?JZd7308y(Ei7bIdqdMSL2Up(5Ox zo_PJ=Y4(gh3rK3cc&Y&|HYyLg_mIGUCq^IqW5E9!?5!dUJrLrs+*-Hpt-8;}P0u8G z`>RAe@0l2rB``NOE^V11Eq&RnEk%{)a{}$jW%?R{ndY8`LtB%i)$d!WJyKe(M^Em- zL0{6n{3}Id!Lkr9aglo@h2CPm1i6?mXFb%{4H+Fx##faHI|-xqlSl9)cJ}5^hwYS5FP`^BjCo=F=c^SK zO-6r!TnB>0oIZ;o+M{<_NNHmcz-<;vz^rlOk{tpPC2Eb=^hq ze(jjaT^vR1Q=3|Xl`AV=2X!x{~Nexk)F3X7~{|z+gWyp3l+HLOnOS7pRKD z>)+48A(-lP^he=QzkScleC>3CRAL$dsV9PV0?7}2U(u_*3t*lKm|cOJ{C6>O9R9`& z!@Jc8+yZoIx}lf!Mad&@9PdleqYV4{NyvT3Q+c94i3$z(k-WPThi~2mxXj$B$p;GA zKCbT%?gW~J0Ohr*6EeY#d{V27mOn-c6m>)pdK+EJAgkAJYzNFuJK9_ydPbm(1=A1UuM1HGH^YgI~KFLW^ zgiDv)S;61rzj+|y&@#M*S$z1dsn+Sm+SG5&>Uqr;=(WnjjT*a;n~8S&-&VWF(}-v? z$YlnQkNWoMr0wXO|LI9OA=E3hYXc7s8G{cSx-~rIee#eFuO%K+NQN3+o-8PY6wGeC zHa*mo%14&&pAmf78kM{p(~!OhU<(OzqGm$dk~_tu6QiMpJeW;u2PYnLXQaP7Bky$k zX9yNbj+Km7&Yc)9HW>iW2ivGgE9zJ$WgL8(zQ8!?KANxH`_vGSt_H@3UPcX7^NkKD ze|klQu2p(Bdk}h`; zEdJ^{3TioBpz;tW;^4DcGcKpK1>wwu8!qBaCkIHwh*1#N*f5~z$-0OSwVi(5k(TEo zpPc+m5`+M6J5VU2rQTf_hxwKCP&o| z->2x=+1bU<*N}?(rdN0WI>cOzl6`r;FqsE44-Z}Pp0mr1<8e8Q4nJ`x#JUbue+dfy zs++?`OWCo^piX1REM9TjQI7L=KP&I>hS$5D=89J~Ubv5!*RU~hJh2OCp<4HS$MQPW zqZ@d{V6x)@Jir|ddtKHw&bJ9fNZw3R&w79577=ldNBRYD`xwtZ*Sx!WqI3RJ%4%hP zyo14I%(sWJW$&GI$ae5a@DO%?cJN6i(WHuJj*OYNsWo4|H*m^JPDa~LdAusbI+m~~ z$J${$g1lHz3p{ijIQ0GJGf8jB=$Sh}rp#-MME{80Dv6+@{G-7*%;`3FBEJd)t~ENB z_<_L`*y|hObbnQc=1SfH&F=Pgrk%}#1$rnzG;|FZ`%hGP$k!gHT)1ZYg7Qle^)=_{ z(Z%3cwc1Y|+(-S;uc~#yVWIPe?EKvW{G809=<2vyo-%H10xbhSg1G0C>y|E^017}XIj3Po#5WWijIU5(`2Zf(WZUeD9?kP_++(RwsgMY z0*lBPP2_NqOw_cPCj$t?vZ`qjX@a)={61N4KUDBD;1F>#=)2a|7Iw8&81E@5`3SfE z7y~(~!Za5-BgMoZY&(eVJEMY+KSyn8AdlG~QcJEXYmYK+FolGu`e@xqMP(0@suO2c z64k&q9dC(gB9|+!K19v_(7(|DzcM1J46$~Ud%h0DS&k;qH@MhEAFC?#4|s}vMQ$rhTu^Q zSci^hmelHecjY4m=V@RR&D_ar&ork>p zrn^y?7+rko^gD3k*x;7t{y;QjHgWF|*dX84>dev`Su;dTu=hvvuEvzAA+=9E0p+dE zd{;!1&g75Z_y*C3?HYy^hcY95FBQ~xNFB$}ACIc~aR!LR*Zy8;JTY(FYlS$Ps9LS? z-t0yE#(FiZgl6Og?;S2lKqdL;?Y3o$%K^A_*Snc8bD?rWi~%Erj{fTcAU@rRan*~y zIXBglbTBi1{Dg1tDFTOVd`Z`=8CF2Vy<1o;q;&unQwtFhrtne#<3wTh?$n%sm2CH^9%L~mL_b3ETJk;V0U@2j)c3A3Yh#>oJ8sVi@84yz9bmGAj$NGpuN&E zY;&b~TPck}w=MFQZgefW#y1#{2qPKTXQ6;istsU&FLmY|gU+aU`V5Sj6gh?;D=>L+>}D9zN%R8JqcE z6UX*4p&tL+M}l63FblsT!y*SgTFH@^bbL|BPGZfyFEDE-930*^p!5@is7VG?$YZUJ zj?|&MZstoOPTF=B#+fE*B^B{K#GI`e9u3-yhPvl#bXqdNwnx>M%61o@%abteRM1nF z)3mzAfW3qy_3vZ|^Yh$2pv zIu`HMS@oQRX<&G|zbTw5?XW}SMLtbDZ`YNZjkJ!Z>yzN%r;p>9EPxfpYOJXD1(U8) zH3cMYCxFYoFvnr8L<%fnpa;iLrnk&tu$N(1^dQRi& zNf~lwY>4bD`DG?Xf{3fI4Z&B(Ia1RZAL|vFFS4+=ZaP(%FL?M`HB~%L?S)zTiQnpQ z(qy@n8D8}V9N^QR08TVxKhbUv{xc8x>qasGGdWx$1o*4wcPut{JC&`z6*_M|8y42p zOZl3kU61@}K7h|MUQ@D-v%xI($s}gqJP!+&>;2&er_=}cRS~8I1!hqdI&|$?!<7pj zKb}%i9EmP;8>kZs41f4ZTjB9Me6*>ebKl8+%_59LY~cxwn)%_>G)oa~DrnQ3U6h%) zdga~GM~t@$%-kwKvlEEhaw}AkvhkEMye%6&yK#1hBiupXkFV`j-R(-8x!A_REdBw! zc+gW1puSp8?0~J%sa3m`(NUM54U{$=V$R&Q8Hhs`X-~&u&Xmg5xxp;IF4mQR2soXz08Y(XF*p7 z7J2*OsX^L*3HoU=AkQY2ubshRhFnaR1z)d^Si*YlvaNsrj~S3k z&0wd$zY)ACp?gpd!Z9X0ixsjcpT;O08EhiXJ(`J>9;a)^xNmq>Cdy5^91^CNIw%*uzl zt;J@|b|(ibqj?O)5*>|UA7zrTNZJm;J}V59I$~*;$M( z>-8#R1|h zyCT6-+{u-PQlv_F;#B)iGuHUVKq$U6|5+u+O@Nk)*PXix96By8z%kaHCR=%xY}NsK zlK!rl7v{5^aoPZG5e-iRj32y??Bh5C%n2M{$uBTx#PnF#d#v+ka1{u&eT%D(eF$Vh zA|H&Fm1NJJ{tn4%=jFA1M_MhFedUr;(XmIt+Y!F!Oe~SOtOq}9kf%OZ4c1)flb)C# z2%gN+faMl6j$%B%4ekP=%WBW_5>{}s7on0q!E@{4EF{CZb_Cjx;Ptp|y`&83YN4_yL zKuwhv*GDhbh)&kt^`VD&^0y0-EZm`{BahnFfE(ET(lCF5V8YC$BK!C%Hxd;Zc%omc zl^g+!a)JzlX?A)7Olq3!?|3MmGwHT-(YQgx!&83Ti^B<70j=v zW(18hKHn-x;sz~O_(vT$-_n7@?qi>_E;0F&*`}8@saNOnSXx@-xfEEURX`xvVf;Ng zv!Aro*y5Ex_I+^`@`%*fRk&uzOFwW<>BIOopQzvyHD-DXN$l9eUh@^(4Pw9rrN~2G z1r3?#?bPZu|CyxsaF^@tFMUe7$E-P=AonXpZ8vmVJWc(BTkuBLk1F}Oy>md@!VJ#US6k|;R0 zsFOYFY&Aa4RJnVz1zCbF86~WZEoi)qTpn$q&^tl#mo`_C+dCuYU{WVOaNXJ2-v`YS zR7wAsq)y`#$gv^}D^bD$SFmZ!P2&C=^W@+?^WpI2TMi=TGu+GR{GS&#&%hbpb^ zFOlN_?8n=&aqFxqNBheK9HMDyieQ_8f5N6u=$CD)Q$Lgw zn0OjUcZI&7-@GZXtlbXolq19iJPDH1b}z6@LH2RP?&+LJqq{r8O|ejRkjUY&do6NI z(8M1h$AKslNB2i0Z{2J6fAU(!BbEK~>BMcD+f)$8<8l0go@RidGy%B*mHCdf2)`GdW5bY8578m_X^Jn^oK^ry-^)^ zw1`ZS)Dy&lzSIdqIK--9Ou=Eq1Jv~BUN$o*JDpYojE;~%?8$X#^UtNV-%(#B@kMzT zrpmsnFBYkWk??~4zzuQG7vyAoL#C!oZ~0-N{@~{+hWFwTw`r7!D(9?*9CW^I-Fq1j zcGMk}kDQ8bA`((=$odAO8|M2=BBu0keIau_k*yBZ>9HNr$jBi;)w3g86YxY%OQ~o00GPVmeB(N@q;UgW=>OK~$5GGkEpbx1n9YnX+3zccYQtTCXPuyEX9>9f^Xp<2VU3SAitoof zNN`umN~BF0@XfC{_d-a)S_X`{O!=RFl+PYsoNoL`WhSD~3@m&{OzY)qrSF=iZ)UIn zN70&SM?HNwF==@F>0OzUWA=M5^O#g!ZNP{6W7*iD(3Qy9*I;D7p?&36l1RBNPDHwh z4ec_8tJD>;*n^)$X4_*nN+0oA)VMd&x;zp7dd-TXV4kjxsG z04UxLeiZfvsn!lq0>iXgiB1?8Uir`fP<(`D@29+kWWjm#R4^$f<~?RwAvK^87$ZrB z9#K>TGSl^}-9{V3juv1!GPcP-h^lqVbXY)`|AV`Z*GST&%u>Sx(dby_hn#XwUDYYG zxa{=a$bOEP(kX0(G5)uj+#tatsJ^n9kva_}d6A9l$h`RnviyxXC4#?r*<+JpEJTj)s9RM0JKiq=|Qw zWKLv*U+Wnvlaw|A@a3s?wPqMnOGl?C9AC^{iPe$Q)phdY^^ob`SBFN#s$-)e4e`Wu zOA*4t;%D+t+!Ky@P)wD_D!QV>@5o@;u5Wa_Xb|!IYhKK9Ub6MZzGw77Iud}2rliHv zb?I##S8vfqw|9~(ncgx|8h6=+xcbh)2iLWLMiLucrCuO+m)4M*o9ua9Ay;@7|?w&JVrvEzA zQ<1{#f~tJn2MlKSzlRe%w7>JirM}yae}CU>#~}K0?i4FFn*94&fZBUcC7zkZw~Svg zUCKxF5@QL<^>|MZ+SF$Js|6LmV~ks&+6U$F@S8uXpSYJ+gMrm2>YQchcSkj`rO372 zr+$JE?#D(y;!>l-x=)GZz}4M*>2gHFEXUakeRW7sWSob+aCcj6T}d+`V7Ep2&*Va5 z4CsPkJlPFrkcb9?qZFYcDEg{+{zO$R%-X}2QwMx%5)Qs7DD>G0_)X`@=f~?$P=Grb z_%Z*=wuhb$|7+XQ0C`%5tufQ|1PPQF>ek^I`ZujdP zJA`w5{9DV2rh0o0_Y2J=o9l2EF*!>aAQwyM5A={&uXkSoIx|4b&ne=wa50Ci9)4LQ zL}ZJLX#GOZpOl^o!AQh1LT>dv&8BJ|<^7GL*^E8=6W^P&NRL{S$$?qh#k2=h7!eU9 zkxdr4>Un`bT=a9=w@`odq2Q=bXg z=%rAVNH)n95saRnPu6*nC?1AOpeT}@K5feX{7L$?ihuz^Tf#F8NK>>?u!&>nQNR0q z#boVp@6VauODGjX^qJ|Y2w*h zc$a;-f9rC@S;yW5?n;W=M!(XUP@A^ER|%tpx^cT|efAeyJi>Q8_Xno&BRv$^ao||? z!}Cn{q;cnTKl}*ukZ+LUhShH0$xEeFJ)0YNhwHmaTv}sZ8A~Y?QP}HBYiIe|l9p5Q z4vGXV0sGFfuQ0Wzg;eK59gOf=%C#CDxd`<(rf=Jbog$-_0;%seBjoCCx!bxQtM=hW zT#~f6xl3QBj}rCIy~i>XE6#^3@DM@qQzLBl2SYD=lyu|#n~YXJ-D=Tz4%|CBpA<1b zPFhvJT8He9qP3$B<^_O*#r5sl}rHO(bjn+@bZP@hZ8 zIT(*P@yD>Stz|ZK325>LZYU{vr->4D3ZQFiIH&q%wzqLG9V%7q`s* zD=Adow{MEQgBRd)XH)00SY^N9x8)J}jA+ccm8!_^8752*&2}8PsE2Y98k-XoBHhP1 zZTL|aVNk*MJVmzlYC1$&Oxo$??Sx%x!lCJOLThS*UaN;az<#$^LB2<0k=_r08uKA%+-q&H-t3DZhZ6jJ~ zzm;?2XfN1)MiiOMpG;=H^uLWbc?hxWiuKd%j%)5O{1@>7$!* z&)!X$yZV_;lE_kJ{GxE^GgYvRb8Eo^XhcZa_qv6tz9%3){*9qD>G_B+2b-3?oAlk( z=s2P8VjgpA^lc-TzzD-tR5n7j?eOmV+X6;AN3qDrfa7<+jBQQx#g6{?I*u80TUa(r zk~}AH7p(OZ4}7K*5QVz&{1ls>@jlw?R>#=1on&=!uJvum$__(k?4ZsfHWx-l26z|H z6suT6B#tP2!Qqo?pajmQ{N_tN# zbHB#=&t=2E>7yp>SC5FwRLSPN%f!IYP)*J)$tg4DcFT!tOSrT59go@en98t!Cq^+XMQn;qv6-L<#?C5VM2&UyhH;tdT({5GX5+U4plvv5Kv{?=XPm5w5bgwzP#p9fKiz$S< zeAz9!_+IKeSSL&UW@Hg}sOa{S!~-$B*h}0}pRL4Dksj6<$dzsVF>k zeYh!#D*5-4%e=;pPethrS4nH$J=z;>8WxeTT&u%@nv<&pgTh{5JHFq;cPD^P>;6Uq z2Rv!|e!w-cc6ERZ0et^=z#VZ$6gh*U^~`$MTn)yT<+VmoAmo178mgE5Y!6RY`__5u#t&BP%i{sw75tJ%Mjlp2^ zK^BIiu@kiW)ZYxJD=yYW{5(d@WN`ByhJEA0C)F7T)YCU>S5$QV$1?{G zyoxs^WQz;Fwdc znkpt%pYTcEA080U99JA(L+&Qcd^fqT9>Ngs+%Bu-R{h)>Jd$myVvBr5 z*Q3jbOFZRiTrD zPDuiyWbGSFWD~c(=XW`hDfm6aq|xVXBY!|bvH6#Gi-9bnL=?6Vu;+8c&$UsdTfc_O zxFNTPnLcsu^5=DJm$PKNcj%5v-Bi*)-<;OnC5tob`duN@MPPkLS_#4Z@EbS=)SbW8QXd{vgcu&s&<TUUyB+Yomto&hj zy#_$k=m?v*7%B{-FPdWY+)Dn~ox7Z}Z$G|nx zxmVrW8es!JCfnO%l5NkE^Yw#g`)X&^BTEB{0oW?IA9McG;qaH6+9OE7)?+SFu`&Oa z2O9n@%K2S+0i9O`!KPYkv=x_fiB%D5X3SZ2vh`1Z(B&;dwW|IfFi;W=H=b2~D;?Ync{ z3>|k_{>8vBd4yXsaA~kY$Ue(4#oH*L*tHRb2Lo~2XU({oL0ub-OL(Z3iCKWw z=(rsj>U!&EVAmTf`g@}cd+>M21NIZz@lclsUkp6Zz>rr_1N(ZaC+T9Fs4*L`A$z#P z@JMQzY%E|^_Aa)mSk-kwRc6e{o}JoA-_lgU%h|=;TBXT!DsXHXn%XXPiR#w;(Vi#} zo|;z;h~@MeMdxT7ebga|qt+iTCFHC_%~JvYR| zd>yu|1(E^PSfZ<*og`m4+yD{9=f{+VMV10h684Q#h1kO3?mm44+RHExt7@**70bXS zi91tB=O9qfun;9wnCY*HOctX|NAx(O%FPJi9gT^L*y7tFZt-$s@Egm>Gs8bN{)*31 z#oT*$tK!mI0Jo&P2lqD*ga1k$rif12_+W@+CEu6b{*bJ0J5!@jxKneI1Maa)WVUuH zFNz5S5+oP7gG17*7H#wH6`z0`P2V1uyOv}8Uzy_5zHWEhG~9qcGaK9}zdo+ZCl$WUwZ=sN#px2RSc5`PRIWR9L?=Ykp{X%1q+HMC*7cg3gioR^(jH+6E z!={MDQVVCD|xZJn(;_+P;zWFK7( zYTo7>k3slmd{Y3+hTV?pmk`0rbmi{HPNVLb4;kLg7k-g;kawxA z5jR3j49$Kp9J?XNb*lx?E8MM5LfiUAk_%GV3#DX;!P7#>BSzbA-+B0OiBlMEjASn@ zOxzV2y+2=h*->sL?)(7`equwM>PuA9xCh#rk0gzZPW7Qa`t-`?31BXm_h%4*R3uie zn`B~qor%P6!l2|@T7X`1X~=H%6Gv`Nz=E zEQ@n>Rn0uh0Xwb(!IVo8t_}f&xx9zGwKXmMgj^|z?$U3ohBTf2TCoB%C|J^(Lt)@p z{3XVPCDtVb)vrqd0nkb&gX9K ze305R3Xcbm9+3v%5>elidULf|qeF&fS=!1~SHAXTh>l%~l3MfUlCad`h{2v!F?JQ% zB zus8*Xp1z=WiIv$LX4xg-@m(WSRoh_SL?Y7KL5F79Q--ymnKaQSFcyXpb^?k>ocoL?S4O`stQ~HXLTw)$pE1zLbi&e!t&K?J_*@w9(A*nAS zwvdAOb#q@ZP6)qQQFzoKhQ)xd4VaWFzbA-X{(l?dY_hZ=3oFlLcWUaT*?3vgqar15 z45Bk76W0R`|MFD=K=(|j4V`%P?C|1vbuv%aZ^0kTV?@Kp@4czgD`mTs zoj9{qhqOB0=>YzBJj^~FvEsA>E5y<86#Ve*QEWVYZ>7-!l@tY-1Ru!}a|8%+;R46_ z=S`)r>C9}<&8I%yU-q_IC7!&Jl)IF#N#1t5+w&N4nzsAzBv{eLk@i%T? z^nN*}o?YYe-rK?-j{YtC&FK+$tyK8%Bx8=xl2)Oz5gU?2o0@(rI-Xy$xm(3CE{=Ev zzxArA+?>OO?DdP!E9UWk3)Oobg+(g5-#cFGI1znFsjMsH&3)1uk6d!hQ<~1w3<>`J z1`REe4j?2NZFu>tagfFDGYO5E!JCiL_^6lzPVlqSOXe%OV~F;$mp8Le7z4`~y`q=O zpmTO{Mhr>UnQ5*HH;R=0z9Qm}+elAZid6hN+dVM>qw0PMs^=Jm z$A2x8X_HsJ8!#U4GsacyZaz*(i=1lTKvylEay&f?5a_rm@DDFsD{ljwnn8mS((I<=g^;7gtOX0#gRF^vcEeRb$=qhel>G-U?GYg$c7iy4*2D^E4P$*w*=~kH2kjG81)Pp@9(n=*I+K!-`+~J`##5! zU~ANScf}|B8AKyA`5b0KnS;GFrDXcs7fH&{I#Y+MZ4A{5w8R}t!FHR&9vR1M%MS`p zPKltV`*S43t$-eIIRqBialhwpP; zMp-YYl03i@mV{-Uoy-5Re|q$YKCUZhc6R0)A^c!2Ew-^qzG3Xs_2r`@9>^MFQAe=d zU?uQ~LVf<^L23*75%#A6)FJ8D4f-~jI8I+wbUMS@+>>g_C~KiTIZk-53LG=%`+zF$vZ*sJ_6>-YOFS@s=0U(%5X?nb zDgLzEU0xRpzgSu06`!Y{ghORwwy~@hU9SnHJq~gry~Jv}VZx)V!*hLly6gO_0AZ}Rr%Z{!M}fuuh>6daJjFaS?-I1?64Zfx zc~UF=OBA^|NHA!pddsT~x#Bt*4e!;@HnX@4&B^T8<<}mZ{t}v@&uso_b-J3#%q2xe zA-q<(i%ng3l%wXPLCVY}L@osai=%_O#h*P!#Z`lS2#DeJUq`P9uais7wDDstDSEn+ zx|9D<$qj0PDqgZm&4&N>Nnrsc|Mrpi4Em}&(i!%0SCVmY&k>UlrBR%@(|)<`>-8wc z>4(T#ndSSWh9Jj)5uFj!FeU#+l9V!)ckyQ>b-S$Wx0f$@>-V2*Gr9>pg51)_3$zes ztp^hIsH|^GU^yg1GM65-DS_7d@ItAgUav>_Xvz;7n&1Flm)H(h(cMY>Tvb!3juCOZ z@MV7h{#|{x`f|#6*YwpF2tWhFhyStv{9@WB{fOt?G5utKzraLT_Tn3nG~B<6_|)`Y zwhO_$=|5c6FcqeRC_|6wW48EXow=35hU=3W{bHlU=SU~>Kw1iV5SIsDH+T|lBX)aZFuMR){=L5v+mTWQu! zY#$=UD1mDqw{5QczQsB|@%D8NKcs%Fff>o+;~l~e=`tF$npQ(YO`)vwQ~63n$6hIb z;zp7AJO>D2{;*a#P*-%2R@4 zdIOF??9hWHI)}CEux@EB3}J+~QY=6ZT9L8+^%{(#N2PL!ju6%UxK|O5B1ow+`|lqn z(U>&$NX%K!|9GtcFKi^ldj9hK>+yGXXWRB3u|$B75SSlw!@KX$KD`F3(;P z`Du$|dp>@WPx(7$5yECJmYe|FXZmggg>np|RQTg{%%8xe-=U@3kECw3!&{1p7yvw&3% z+8t$nCkI&o%uDvq{j=dC_>BToh7RdoBucUA+jR~wpCiVjo*rWIa>`0qj@$nIA)}0m z$kED=MyuO&%P%Fazt@JlEH{W<6QZ7s3Vy#~sOP%o%*q&hsaz-Xk;v{>r5gR*;Kzcz#mb;|FqEfYhGzF^t4sI^1fsE z*_d&+szLC6!;Jb}l*l}VKpcaj7ZSVur1^fzL&x@*ER{}fNC9rd)IL6ca(_?&E>#a(HeLfye{%Oo0X9xkHa#oIKX81 z+uHN!rve$qI`c;=oxEZ)Xsm4lJ@c-lXVP$Cf_Vs2mV&S9F2^DRE7<|~Jj(==IOyH%SI&t<@M$Ip^hhxSQh4k1Rvl+usA z>oYU|I5u107{|y~=I{wxH*@y^{>vbo7t{D>$YrdVi=|PQ{)f_Tpp_bYvU*iTP z=^B?5&Hk*u)HdyNe*}i8_+egm_~^_9Dw9NYj#&A(0Zmz-hl_k7k+5!+P#KPMuSlz) zbvznp34!*t2TbR$-7*-vH=^_qn!s?2WBp0!hd5ArR}dCLo3M%G<4n4wgZ>D^GneT5 zk+z=2(=_T}hH3kF`_Xaq2aePoDx;9ePVW8VEvq*qbIIFuF}ZYdm0P4g6b3&5QH1RJ zuMYRV;lRR)UIh@5+E7_%>pO~&5sb**Q87SlSN4_h7$0rzMw9@%a5IKif>r!^wfkzE z*BxTMrZh$n| zRujyI5c)I8G4Z}e#s(p*UBHF^RMYYa z`eGYRPB7xFt&YIk+5-dNw69E{X}P>fpw@c7(!XyZ+yh=3oo<}tHz0s9aDDN8X^4F~ z#?%Ziih?$WQ8Ye}AIbrA{%!0WxV|uk5nGJpty?R|K7CcB5@5!3?E7gfiLFR?e{(Wa zbM45->&^I6TmtQ*L%Cwbrt!l1itglfvv_0@;EpG@H>e2z3}W0`asyXFjQk)q%9U{v zMGs&)={vV$?@C|3+iQZ#p@oVgxzcdjn^b$4&4P1TZ^+=fcDp=b3W(WXtm>DA22w+c z+0pcJ;yU(w0T8OFEb5Z-NzVO-Q$DdG5*x04wHY)21AeM&i-+0iH==~_8}Wex4@jm@wQTyj=XYSfnj?GUI%thwCBr*xs*3E^I2TrB!Bd;XD%hcQmu*zD5~+B!27TU>5lG=R6LZ z&4BO!AQ+OHBwRhj$FQNF8LVoHP`6Hru%Gqf?ilb9m@fi*Mz8LD&*t=*cf(i&c3An9 zo`)cA#rE>DT@qr&Fm@4j>?1YQ_PNiQRGSF%`hIT;>~e{qXAJR<;8CC$Xo( z6L0P7=putlYNm@IyqJn`l-9@fhq>4>Wug^{@BBVt0iAzDXRtlRDs;5cHY$P9snTge zdsIxT&C-g^8u1Qsn-1*~*}RG++$9l@bK{qzaroH1cO z((k2Kpa)EfuE|0Dh_CIhF{~0R7}t{0r41^FINW;K1s>Ke!l_IuhcH)o!r!y&=}8^C zct*~FlIQqvk%)jsy0HL3LfniSwns!4529L6`It8KaNu)M!yDpfa@nDN(Rm?wY!ZBb z3fd(bR@z@7O>slDL*H!gsC)C`13m8wC=jE&mlyov{;NSV_7OGf4V6`ib&t8bC9PD% z8aJ}Q;$+^)JrjPRcl#y(Ag4;hm(hI3s=`@BifYG$Ra{u8Y+RX>cbdoF!}R&!GrZJ~ ztt^#*RQ{`9 zG#pr5Yn{pJwCXtGV@wW=M}tDTKQFlUprLL*D1eqGyz+AW#pCc+ehHK3!ooR4MPW0Y zopKIggM%t>x98vGaSO#>4-1=M|Jv!Em6a-S`6;=eNiBWZCXx? z0!E;-UqQ)}dAfpLp@%WTBSofLMg4$%d36s+?tvPv3x-F$h<50^zNVkBh|QIT{KHD* zk^Rr3BJ-w?YH%{Y}T1B-Otb zj(Nt;6*4r3j~Jyf6XBr@v@~m`Pku~aGUY%$k{ZhJB7{Tc*B!n|oxG`h9Tn3pS}Q00 z?g5~x{uwkv&y8~eEJ^P}W%z6oCaXQasV@UpsgaL}`Qz)12%4>aIzE&<$1D?iqJWuh zT~uu)JU-Tw{woNoRD1a#)Tc&0!zb<)a}L>UuEAbhdlHIGawj2r7Lub*yGa=1HQB{? z`l7;FateK!HYAT=Jg&L!8HzZ00EVLKzAkRZ`nL{{%*RCVwW7Le7ew9V5tH+eL)wfD ziZ~z{El2Lv?|tOE2N#lF9WDIAOTVU-UX!_PVr69w85U6Tl)RfOK^!2aEaLwt%PlhA z2UCFGZ+rK3Bx#NB4BpO5(4UpH-|qLn75G8n9*S@W>QOzLYpV@PirZtHhL|tM;J0NH z(k=-?Dr>l)k)feER{xu*r)_1N57RhE-%ACnZmB)w>moa#CzrC~Aa!9h8vzePFU9EUYHT(Sw?;$!b74k&*8{Y9JES^y_2-diQ>$c6eN|-7uTGB$>y5hi z3JAR8x^%*xZk(}PuV90~W_-P1v+8@+Fvlww8V4|TPARsf}>Qv<)fN#-=RY_|i> zX$uW~IPP&cnq3v#cCL?-yB5okGdwWPTd9MG4lo%a@M7uBAtdIKtS1YO4IBwz2(rnq z{Z7kO(_;6~Kdb%Sgk$dZTN%Uw;bG8hiTT?yN|VvJlxDKKw_ae;5E?f|3k<$HofYPF z3cG}~hX}yH$qKW00ZlylC{vEEzzv26&-@shZuXzlq|@>-P#Xuzci~H|(8wwyXr3Q} zUpsZ*P#Mod7`*JsLXj)e-W5A6{^!sod3-23q2?;DFm&P5E{T6=*@{lq`(yh>VzYRz zo@Y2+$yi+uo{;j!9A(W(2l}i9qG~Rcs{^XVG3LRYUQ8~>8(*;x3gv_C`1)_0tXrb# z6g|z+&{WE6*I(hPhU!y$v^+iSEi1S+Uc!=8B(9s;wN-161+z2#Yy%v-xQd=RuJzj! z`p~_Og_;kMG5VD4KO?86WU`n2dOYF38Xizh&;y^W_*pm}d^z-zWkVD!5kH;;qWzO` z)s%=*+d>46(v;78HvJvR^mi;=dN@ekEVeOJ!@R#QS3=)hv7qpK%{e`VNEVfFSrHita>nVQ+2=x{OKwB+jCRckttSwe8*%(Frsu_`Y zd%mCLud*Am{$8BPKOI%EE{|MyqhCUXB2vQPFIE9CnV{MVtSleoLmy?>V?GJdGNDLY6Gp& zu&J%Nl3pthH%E`nG>A_c$QPQ!<|xL?72rNq_vczPtKG-5if446IsH1a*M-0K?fr>AFuu(7W*`P*r^~sPwNw3_D-NGbNSW{>RcwzA?dtXjG3ML!D86 z3k98B2C{44T*$Inu+V5wZvp)@x`W{oQ&~`^FkVqbdd$ux$F`y)_uGX9Juak79UvBJ;a+5@c-JD zwuS)YgTJu_+wdGSA_JRY#Kz$u-bh3J4r^Duo=bYxh^aZf<5wb4tG?l9^05^_v#6a8 z2rjTz3uEv{X6fbFArIHuTMniD2k-BSBqV0f66zj~-=$-~2;x{J#WOtV6cf*V+{lq} zr?*ry0rp-%+v7==ttn35Bo-IJWdSlYqFNVm?0w4?0xxc=dmLM=8rjUV zAC*UEL&P|-3>1}zpQF>)h%gF1PqL1z{=x(FsTouN;ccm>_hL4Uf=gV)9k+MYU&Gjn z!~JCJ)dqO0l{tH}{q(tU*vi|ky0=?3H@3O?WiTJyxtGjOI<@r1Q3*Px_(%56ypKuk zb)H}GNt@~i-N9EQ@JJ_H>$t<0y(hutUmGQK_lL-j72YLBsxDh3lNMpvH}U^e5`dk6 zV`G4aB^SYKXb;Wwd@a3GAj9z%vE19mb=r!k zgzaEda>*OuT>;-M@h(AsVt+Cii#AJ0e|4>wz!0z`$_0`58QxJ`VdccD^0|*RRwEls z4y=gmXPxlZI<4+!SQA#bfb3=}_wvBTFo4Wh;oafP0Y*H6Yw{avU8QR@m*%E9c!?=a zF4Wcd>q!)4)m&~CB>WNBRG-?UtfS!7QP$>lGfieQ1_!|$oDg*y6&tsTn3*yieO<)c za>Una9Y6UOHLT)Xho`n2N<-OGI=zl_E#DZDJi9En&!CErSs~(Oo{NzI zjgJ~}i92Gb1H$hQUE|TiZa^<{EfVPEh;2IN0cKLkk{g1ADWWJCT+x8}mtP^V65t{` zv3uEw)!Q$w9+qz(Xwp$iQR7br$m+g${`}{c268T&M&#^!^HHIfHt&~@oj)8taeiVu z6E3F07$;x(DuReWy5~vt8540$UavosGU!d!|A25%K%t_vC;ao-%K1HSv2if@#y@`NLE{EjRbPuiX+ugc2g#$P&?Hqo=BndTu5c=`bk+x}SJD8+MLRo_)I zp85P+Er^IsEOpa5^-22uwQAcwyPZ7S4@*jeVAo(6K@=$o7n>0m!=ZJzf?_D^l}OEO zfk~m)L6UP6%?@M-xCz`P?Unu@7V6pf&o-_%1+@mN#pt|5$-)HcM8AMzp5@2{|Me^P zj=3VR7vAC`4vPTM?nd|xPIc@H&&vB5?rM}WAG?dKuDbRYUN;(xhNa)!Bg1U>0Zlw$ zNaIa>Z_{z9`1j)*1!+WCXP{L;aDG~V^m=<50E7)_Uf75tPN={VKe9MZ_?gcA8AcaP z_zV%tZ_`!T*&v^e9y}n%jKrp$1#%kP*k9Y0RNE|`9|-Fk`^k7g2Ass=qPN}97#HUZ zpcUREc`hOh^Pyk|Vu_9#_QuI&UCe(2)P@7f6WRkFV+Ct_@j!Ce zE&ZiO0C9!`?T0E@x{RIOv$2unPSxJAL~LO_5I|@PK2rjv*X-@KcVc{gAvqjmY?81{ z^B4LoJRZ%290_Sw(>)neWrSg|G!kheE9}1O3SlVcbg(!EKMMS2)&A?|Rr_W*3owrBMB~A8^AGKl$snRPW zbpQ;req?U~5UMme!IIK^67Dnw;(=Tr`N9mTkU%!wA_EQ(12xHxu3a` zbUYEFWoO3|OCJV=8o!#Hlg;phrK(rso!#>(`&4TIZ}_yu)Ggt}-u9nz+ZXn*i)7ev z)i!s&_0Y_#C5M(iufi9!S!MTd#1DPwdj&Zl&wVWzdI?^(KLrdnYQbr)Ywu=U3!E(9 zl<`B>UG8%R;=~s$ zu9kcYMf4fYD2nac?7R`U6>JSORKhDPLS77ol7 zGMHT3NXW#zGt#$@QX6C++36v>0!|$7%&DW#aXyw6AhAS?7+(4vZazhCyaq*{XqSTM zTyeG5ovwy;bCvr0PJC4@o1wP$b`++rk5s0Bq6|1*RQQcE7{ZYh8!H0lo>){;DUM0u z+M(Q^i^yz!9LT>PL>w>JwhKb)w@W&L@9o|Lzv~!w+#lsUnOJ4gjKdud&-m5Je6}TH z@P#nIi~Xa;^#4QCmT9G}+51tI>~VC7MX zCFK>8M)WI0{>e9&!;b{fvAwiSL9&@S6&D>dUE2!~636UEp?-`l*kkNBt-}42f5V5( zMi(5~HiSpNZ;fdDL!wF3(HfKue^tLhcXnw3PiWGkrBhbez{jEVFL2Im`_f8?vY+(zwDBbM!A z0&DW>&_e^6ElPW{qW^Zl7lE<8-f~StP4Bu#Xak_P@UP;Cv6;kgrJ9}>AxEMRb%eD0 z+Ka)1@7mEw7R*eax)opJm`j*u`qmf9>u zodLzqAA=I=){{ZS*|Rb%^Y1fzW~GQi64@;bjCU+J1-@fDR#MlW<{t%TY6fQ>$--@r zNrm=of?RtSf4xKWN#ahTSXT_4Z+sTL=ABvmLZg#Uo0_wu@*YtRu`ui*NwHwC4SPcvMdt%u=GXB!!dXVH##U>OvZu0qg% znvto%5aBH}xk!MJbj6PYWoV2W^+&Gi(E|-^fmEJS)biaH8_rnAkkh~ApDE)PS{Z(y zCLB-5X`)&`InrR<+JCMfV33_ zO0V-1`o4OOa(=Jwi(Kb4U8B0Am7h4KH1chnRUC(ehtHOnJkCik%S=uh01?QLb)Z3j zy3fzA=Mg=}LE=Rc1S~0fm=aT;Lv-#_?0j=|jyISlUT}(HkO-e^^bDy0!U@e&e=0x@;fGaY%hRM%K zVi1xxbgHyfV|`Qh0ckaqAq2D;07?#cV;V7IM09)doQlD8Na^-IpExcvg&(2Q$=<8& zv{$o+uh8__*Wv)w4(pTl2u-h>`MSFd)Aer9$auE__8v_~N*x;on{(LQNL6fC!_R8t z>4*5YiivsjcT&wcI5<89g)m`EklPegdDfLT32|?9ta|FjA!=W(bNfcjK8!x( z_41*3)V%VuzQT=VnDEUuXBdb<@&1`|WjUzD!?(-Ey#Kw7B;jWeEh?BI)@frOY*!&t zE0dnsJWS6n*eqdWzlExL75l3v${GkoKyZ5CZEnJG!oT{KhvMTuugh&`s*5lb68<`W z*F5Qn2i-vhR6Ge2m{`}bD0W3QoP^QMec14zi=G0c?jo|*|6N#6Y|R4>z=H_7Zon=FYU7VC4C&D-`8Toeqo^kvVsYk5y{W$c( zEXz$nS(2dJ;M$zliMX`@P~etLG&Dx&?Rn+x`dG}J>ZuKx zI7r#WV21;!OHYnp^>0}lTxG25UP#c*J;hPpVBA2P83w=%(=3Q=f(VCtzNA!KH9PZ) zH{+A2DY01VGY{*yYhPA)Uf(qzaInOv*(l|HM?x3T2cvy}j^^qO1?AvJ#y+8Amj>h?tLo1=t+wBAAj1c3H zwe6Ay@~K%eP7kqt1!hVd@(Nb>d(J7kT9q4Qhh z-6u;U8qQCA=EFNj)D%K#4U5#Cu!~=^%iZ^yBw^6&aV3mt_+CA<%w`p40G-ihcC9#k z{x!?5UTI*h&t6QPN3>N7sazy`0EF^Chr@ z6lHnu95Mw*B|1k1>()bi61u(NdSc(t>NHb61E7kG)oGECx~~+3+!bp0QJ}|)_L>>y zZ1yrjzx@74eLTUpdBSCGRgH*JGtICTk`rce{X7dBmXuC|*{?p{7p0kh)Me+cD|7=* z&z#kn;KkLxz5dP*Y3C5O#4M$xCf(-T*LAtp{7x2o=gx;a3No)X1uAZPe4MZyjM+}R zuT|{Z#ojJJ|wWNmFaN+IU)S%2G!jf;V{Se)|{Z&v}d=S&r!ED z-_HcFo`Az;BEx{P+-7$9q*34mZ~AfPuImF}eXH|LhMB zKg`6ffTos9$I1{3r1E+XpJakf0X`=EZm2o+AR3$cRtiTV=#m-4U?#ssSN^Sp5Uz3W zr1VKA+SS(A7KtsaJ&Rk7C^LvlNC>W$wUF0yYGdWZl*W?z`GnE=3r6v*)5X#(>9&QR ze81)uZTR~bozoYI|A)iI>>#1>>mj+oU#w4&yl-(J;EwIu*A^lqR*3#51`V8Ka6JF6 zQbJU+=6fmzs#KHbfl0x|^48}1P=(JRIz=_e>D_R%$kAv3*ngSPZTcCB z%>xjl#XqK|EiBL|A5skr7~5y@x)yJP$|@Fs8Fc!&ICxyhsUjos;=-1SK9T3y8=!lM z^%yLksDsG;Ekl5!$dU&dPycn5j(%%3E{vJr3t9ysVR_<-N{B*hQ_I^G>Hx|g_cLaL z@>ixd6yOFoMw!p#ocpY zF#D7hc38Dc*}4!874m zIM%&!2#t>cDcV>|nW(%kSm#2GhR=Z2v}1(2jF21<0HBrRZjyl?mQ2p#7^OKA zf@|WpXR}GHOa=qmgfRx#$ZG~^A^)(+2JU?T$j;Wh9G|3U^Ky__3f1ds&&X4Hm=c}t zf5!oy98)cWr(z5Ykom#h0>?*nr>T4>TCVk5G0>c&cC%^WcEKi?G+qaiM zREgQo`MyfzP+Prc-&bVY@teBYx)rA{G%wup6rvRE5vKc2$)8xp=s*k%!P)08S(+g@ z9lun0MW6rZq)qre{5@VKPtd_U@|ZwxKPU_^0`#O0qt)XMTM)CCi>YCf^nYN>k&e(4 zYsOllbDX+&*WbQ=yQ}Lq^wRfY>TPf=gNn~ha!=EFxzw+H;m*Zv17W6%W2t)z@Owo= z3bD9hj(4~uxH0(k43vw9c%*Qh_d$dx*PYuy&skv_5Q8}?v2qNBMM!9gP`k=dr?s!Y zkQb|>3R{zWfDf0o;7y(@vVK1Zi)*|?9LZ+=p4%dM*23DpTo#xV2Mm9D*B#LZhP0{1 zu?shw{5Nu;EF5BC?i}5x;zgT<4q5r!L{J)T&N&7(jBJ#_oL1be4URMri8pk=eVZlY z^8`eGr{Y!DS?^Pt`&Lqlvh-n$hCgM8DRXA9o11`$6UVF0R7YK1{O%1eC@%!zjC|_= zKG6~*RIWx%rQ$4N;Vh(RTXH#33!<(sr?KrWdiRw!s852^02Ab6hbPNe9d7^iH|fEI>g8jHb&{p%qPSI-oMfPG zp)*HkIiHq>>*_Q1z>ME*ej9{&4c&nNf>{^Py;_lgv+gxvxCNS|BtA*3~Dp% zwub91P^4(_QY1LV9a`Ke?$F}y5;QGEid%39MN^6uchXYao!|s_65RRj=RDsz@1Ok0 zOeQmz>}&6}*Iug?t3W)4rhE0Oz)BiSBlidMgK8-9I*I^B`AX#u=l4pgZNRT4i`?@PnE>doT3pWQq9yN`kD}z5+Oj|02UwK9erqAN&iyk?hls;_I z#kx zgH7mym)tmNL~wy;n%*xmj2%g+5?}L9p_m!PSPK)}rLkhEf;H!KD=Vem<}<@4LvL7C zj^A7fCk3i>F<^XiSS6lo8C~2ENfRarB`kJaGt-HM+hmW2cK2O4z`BAnmpa?XAcF;t zO%JIfxboPxHNrLy<4@8;yK`>7NQ8%5!oiz92HrsHjG>kDKdI2Rtng`HL{3^r(3;J0YVU`Kjm5;(>Gnb}BAqm&VC^u1(eL;W%t9 zKaJG4a`D|Z){yi?z_@X6~wAu4*iQFm!EKFpf-Hejq-gl+PZY| z>w~&p#Jh8?7rHP4r@K<@dL{!j-{V}cgy>?HcIxV6sWbWCe zZ$Etn!=&gGLsu|QSKNGUzTCVHyZYNwt@1|xOj_7nR5T3B681rT(HCQ^xaBE5h&og7@4lPtEtDOi>)sfb zYke{2JC1n^wies`!MheD=aw_rz$ezwVm%zUKwzUH9-DUDP_kBzJery8_;_x)vt z?u66Mhus5$VEHdoCIoX2C3IVUC2M83PnLa-P`fF`5fW#m?GCr1M=glRVd0-DdJ@|s zBMZ9NMfr>i&E86km4Sp906e#RRMYvz&UierBEAzmGpq^&o{29YRt=mH7gT6MMBZfvk zl6vFC|L6I7;wKUhb)_jMVgul1gA+w?RleSD^iRdx-1ox2*pf!PP~W?-imDl~#jQY3 z;GU?@+EpGXhSGNFCn3uON??6&K9t52clGKmg1bFi7ICH-jEzjbI2(miI$VQssP_NZ z%e%)ffCj2@6Tq31Hdq zM=$Fhnox>pG{0tsjfTyZ`U#sgR}kJ0G|=O%aoEeRQ0iF#?;hfQ!RQuInW4hV%!|Krd5&@KE62FSbh#?lG#blQE=?3$nt zY(Y-FOQd2En&>-`i;Ni}7PR=TN(ADCc3G-9ZKU+T7E6&BGcUwlqRS%0;-Ss%PuhR=Elc7EOxoTl5^rd{3QmHhkF2k|t^ zf1E*Vw*4E{`C9^ipjdU;yoveK4Ut+esK~dNM*w7^mCW*zuB%a1Mu^(c5&pmJ*{9*h z7NgGL{f$r6x~(l4%0JlOu!i*E(dqjUv?;+aP{hMNsCSP#pTA-k3wi%=!S&MGY zq_kM6gwmvBevT0-f5pI;;NeC^zgvK`J$9e?m}~&H<$2eO_c?_slq%yW3|C`YT1QL4 zHoAk!Uy1iWyGX#A9zj5NEAmc$!OjzD(_KmfP$Kf-N zhi)#H`Mx}@pFik`hZyv?OYiyZJJ>FqzxFeyHE&v_Ny(yoaDORk002`#gH>Ammz3db1Vi5UGd6BqT3JXL2#z((TgF4M(yHURkkltua*}Zn9y$py)yXF8tX3t%X?* zE6(giJOlQELDhb*MDS24v!^AET&A4-kXsSkwa`r?hEfOZRmFYlzlrAf)xD@VGBG3j+KdD$D&kQB3Tf5yyKmU-nhMC!5k zOGHmYK%PS1N1T5IdVqN9Nuvbucavmvr>?LYbcyL~>>el8&z5~I5Nu=+D`BwDY2?pw zShVi2h?=TdZlC>6z?AFU(DkHx)>jvCUU9nLld}}sz&+U&kmX~40yI%+lGlFbmaL&- z6sY8!#Hr{hUQ@s{6=S)zb>MVF)SLQrLaQNL(GDX-RL)B-pKSFb=M>E)akcE6x`;<} z*ez`{7*ri?RD5<{W5s4!BnjsyjB1hNS~M%Zh`A6OEaa1au|h>BotGmTJ|#|gz0pW+ z__#NE)=Vgu#7^4&l|Q@b6_|D%T#F^@tlSQ-Ukm>LjPMPoh(aR&sV{uFtq8z9;P9a* z2qYpBJGWtSy{mY6wit4x$QQz>r#Xb=dx|bFk~Ee{HWp%hVnaq%9`{v2v`$9<_|3j7Rp zpEJb!?4M0dA_b-F)<=@IawyhBs4Gfi%~t>1sMlhY%1tf#ubz{+ykSMGCJA zNwDB^)AzkLv0W^aJ!{al_^!k#^l!nuIU=;1J5P};docuL_0oiiGrX92F!xfBL9}?4 zzn2?Vk7Y*V*j2%k2kv*00(goPDR}b~DbMu6w$}wb!V=cDm~%%7DUy*tL&6H=5+sK~ zRyJ*M*D?nI_|iC%tk@gl!tRjC=m%rrQx@CNR=3#dlMJ7x_wlG&%Hn4r4iBrnzTf~J z5RWsR@44~BeZ_IqM^|=HlDB#x=FVY~8-5`}OTe&ez=ff<+NF)QN|9pU(!-)#g+4s9 zqiG)-!mNphaWqy1ky54E@{klnWhQ6^rHU<{pKa-4)HGiE40HKPT~M`dH8W^cHYis3&UM>abpHB89Q>(3?gMjudf5p?@BnK1) z;}cuM_(I0dw%KY&zYU8#ZOL1-jN*m!fQn=K4}V_lC{cET7gJ;L=96&O=vUX>Q@ioV zj~V%d*~D}Lvwqm(IxBJxzfucRmnJ%f~jhZ^$# zw~Z+g_ucpx`lqm%o+kL`m8!4IezrT5C1WBok%gK$V@G;s0IwzxiMJ#|i%nYh7*6*; zSgx4S*VWA7sy*TgM+;%PqiF?Tt*{w6J+pq()Wb6GK8O=;Cev9P(%{9pp-#|mW#ZW7 z+T(#?oV|_DEWE(n2`Vk58}a5#^k=Ug3YIlX230Ah-dtjNCShPIy8>{Jj8bzUic@rF zt_8rCC*k9i%F5DOJcD-T#dIi*ynLM4Fp7*SJn_)}n3P%ectzE}Qdc6Q-VFmkMgM9^ z+PLv5$IVt462kU+Rmn(bvarcu()A=f3}Qxi(CBSMBdI^kFFF+De8EK@0{2ECa&2d) z*F;3e%OCaOJ#@mFiX+s;#a-E57Kyc_!xj4=>;;d{;!sdu3Y(v&ma;EMV-`+mNPGW- z(B18Qcv!+6uzK%;-~}8@f07tY5#asw?oR1ACCylF1|a}5WssC%zD(l;9K9dXi9A_} z`)`?Ma=82^=z#w*1robkY9=Qto?ayJ0>&q8_q;&~gX?UF>} zxyvYZ*!(|Mi+oRunIWU@%TqG@7@Jkd-}Gax+^J3G?bGldsFIVyQw6ei0>LIKw?iGe zAcfi=y5Sv6AL0dabx!Q&zB~!M9URjbIUPLT7hL0@#dVHsr7+|jm4}P}he+QjUyB0ZSZsj4&DD{moH2XgKXfjU4 z?WDQi!Q7(g6ZyjT#YWw6hX^f1jL~gZ{=aK;e47M3n{=I*)^SU$5r|X#YpQl6U zz`0SpWG&9N7Q;HNg5Q>S0mn`5ln5C821gzBOKz>~*uLT4n??;Mm-eK}yobFwY_37N zuVU2|)7lTV=`R0o|V zW__(SJeI^=o)Frd7C@E022>OiYZi%APXQzJQQ-8`hsYNRK{t9nvmTEm8@QMD;sRtV z;k*hN`9gjMu_H}L1#IM_nNvw~e*vWtCnn$G<+J3S(CHuuuF|7(iHlns7KU7bLKW**8j zdrCI^N6_b>nv2|g5@?wuT$WuttdxN#5Gzh8_@(xv6X8(Mo5JU1PYKNuI_M>e4Q#$l zjI)a=B*yQ>--Hmx{a<3to|oVEI`3*H)xb}wuGV6`+8+f*Pz*)z=arE-Q73|YQ5jQx zV=KAJV_dqEe`dVY)&fSp1nV$Wj{exhqJ$Y9Y*2bx51qPJ$y6o0Ytd9tA+b<%U0Ezc zr91)YzEB4ycNyGda96@~+%owRpL{>qQ9Jgq*S9^A*UbkzQoA#4K3Wkk@^hqTwYzV4 zwicVK+;4Z$r{GSEhYO$%oN9dxvSsm^eoRik;u&MK>4faYDc>sOaLlHk&RY-ItqFLP z6TljA*?A{623!F9Ug#nL1Ao>AyYq&ypeG#M=5bSHot?#~IzRSn{FhFeRakECYU}%? zJ{;W!jjBk7;#cr)#(X#V)YB3NC_Yk{`ZVo;m6PFfqs@c1T$4pUyI?}HEF;&wCt8JZ>BIernBk$D`aX|FaMziVUB$?K2C zta2mIr3mp58L{*gR?9s`vO*kB*7iIxdiHh~7XBr?4vB8=R$_p}GjGkEYG0yK$1vgx zvQhSXw#mS;vsz0|1igiptE09Ek$6>n1f}j*WbV3@BlP4oQQRQV0j`)N$_hbEHtiAE zAG!7Q7#74iy`LoJYQg#TldJ-3dnLy6!wYd7yUs06;*6_Qq+ zN<*iNcQ~<4^=ZKj;Rn3BHSKVeb)=r(KZE_%k}U=BcaJ1Z1HUVFIJ- z^%-cDn@JCSbgGXhs@Le0mR)S;U~^l``Jvc#=`e*Z-$_PN(qs5|gtk0kQZ_VXphJcM z1j?^UOw4XmRvp`9BYwQ_Qq|NNsQ-KM3A&9V(F)N|z7ysGNujZ8d!f8U*wFaKv)YK9 ziZiJnh3)_CaQ01a8ia$Ypbre_&npxnBv(>f5fAf&DhZ8fMdN-xWTYq@$Q4y~yC~=B zaPHrMsD)pE8dt{SkGvlfnw3fMlo_kk+Y*dP*+nTi4vYl7^##W))=L%RevtZC=GRh3 zEvcC(B$XE;KRC!jX%IFw!|`Ik(fnxYyI?Wvo8LW;5d=8*0klcHm9J(Fr+0f(w0d6B zUqQEi@^$kUnyR}KZ!mx?ti=K8fYYo+=249ZJd;*yxxro(u}vj0RfJF%mKuFheM^MK z?L0}02=u3h(!Y;p`L4B~=)77}fS^%pq7sNnt1++=x?nP?T9A)8%$&&gZ9;FYyP%q~l=`Vs^SEYU$RY}Ro!02U!TLYB>sZ$kwLj5t$ z@#tae%1H31?@XD#vb&^5n(ZSkFy+4lWKNH2>P+LlDuqE`7nihK9ucu9+=9frD*66* z(luvur}!gt0ll(mgjKforB3ne0O`#osNP~#dNdl4%<_(X$^M+eRRfhSW=%2F`Z03i zZ%hElt(}#B;tV9DtL-k$kt-P#!thxe7e{?eLCL41QbWp6PVo2M$PLxfOD;p}OMqKor{!r1L zs{fe@|C%mojuMtsJ&8Kg&(W!vn9x@9R&aftNc}-6lBlyY^u_o4o4Zi`Y!%c@@5^%YHZk7er_B^L!m@Q2QiLKQ)h zQ_LRyQR|ggHhHcQY{3-hO`W8)FGfhysCqkaDVLbk`tw8hSf+}7Dj$Y*g0&M%S{V?E z(*@L z#+Co3UonYo9A@u79=5osCq<1Y>+v=(-8>@@)ejI4dU$@}@{im1%|~>?sllm|qBuT$ zmpzfHSIRR>EJU`TU?f9iWs@Dr$X({(WhdRca1_A!K37VSYm5kw!`k)-Ncfe<7btq}HmTeLvT5{8vm>3~U3gFjJ5VkSQ48$Uw{iNRLgf0U6OiOvJ#95aEqjSc%U&$|K z6e)Ci0i6rwW3Qcf{p6IC3l9f<=< zaf9pMn?eC4qi~k9QMp_H&YRZi>qT(%)euig_BXDZN1|r;A|i2OIHkArKohcW;ZJ(w zl+9#GZY4AnL?;{pOy;SpPj9XRD8?;!8RZ=@KxTM6d5D=+vKT){XI^K-d-+VyM zGSV3eG7fP3FDTT}&X`P?-KP6dSK82iNlykm`*r$RYfeubI}QBv4($rlMEMIKiY!*6a{WaxyfwVSkrb177L#kNdGLPj)c z18A|UgBV%iq7=LQdjvn%(vVt3?jW1kUM5c5gfDGL$acp_~iNTzGk^Ea0EEqH6B1Ty0q$XJ^c@*d=fJ2eSaWzP;Lf zdDyYotVJ&aDCcnwT#X7i`l0oZ_baN%+gYEHnp>7n|8hPGqUL%a_twi347=molk?gy z;Kw0BSblz2pFMqWxUojS1$sqdtx7Rx$3+}Cxge3$tOt#+Uh{C+dtZIpTjoeX@K6zJ<7EIr?v^diqc^qj36+Ie^wO$K^euH{( zuCWh)=vsMMFkJDzZx2U-C{H>b{rhAf9`NS2kOOpiT13J$sR>~6j!G=x%l)mo72xX$jTR`%*u@4Nz7F)_>ht+3c1$lBFNXeU^B>c9AJ}Uae0m&IhokIrErB!q)u&u) z4$k#xNN-eZy}2jTl?aWYoPv+{@3s;!i8-r>5qxvUwC-AO`B$7975;QV*1bS+gWd#p2#);!XNQoc=7*@E_y%TlD>MGe{Upz!t~y(2pzJFD$!w1EN+O8s=piN z*=ypGZV^tld+nmjAi7H<`QqcOGs~&t3LqID<^__(gO0>5j=n8 z=~r9F|8~YL)`kAV`OwjY0z(Me*2AT==Wzcni!g za98Au-)?p9$|li0wNStVH)(8FZ`X1-KKrx@tVxxWc>3TFc#sPHJMkXR^8GcElzyspv6s_2i(fZdm`G_3z41jPp0V2I zw%O5;!dfuSMc@{E+0_0#-4|)?qo&SfkMgCjpYFI_QrKtG$d@_DFeZkj&_Udi zIuh4_@S7B+6PX`Y^b)$P;LCjlUA)kDhOR*a=i8mO1u7xUskss#y1!qQeK4)C8APhy zV&kuT<%rAresL%4ss2!+tv8}l@}65F@Xl_J=Jcic20l?^ixp}+$(^r_7Qo-G2^S+f(s!s6Kur z@<|PCHK1++;YV=s<>r@Zsj1Xz$8$X;t(bcpAmk`I)E4-a>>^*WcS4Xb?T!whEdZnI zQy#<{n<}r(B08|7zs175BssBjdCS!9t$R?!WJCD6P zw&%D!E(sd4dur48BUcAp`qr|ORm$LhF+|Q(;AO@1+^v()(D&v(oi-d9*J=mG0bV4( z8>d)&ZISnogG$+PSq2V6}8G(SKH8TY`o zcQm}rG7&Jk=u;)~K;>IQv5Q$Qksuj)Y&_*5HCkYL&K)`rJvgdb)~B0cA?jxJsm)W# zqU9GZx*vw4qf8F7yL$cm$g9yKXQE5@yaMz0q&GgXP)m%ReMcwok7`M$#SQJ_l&8m_>0NGRJXJ#hfNqJL>}S|kKqZV&NI>r_ z9UfVbP_g}Y!OXt$1hJekF`*D>PPv9XF}C3Eq-(2Q_=Vd#`x|J> zNjM>K=xGDt+ua~P=TmM!W$&z2Msgytmb>AUr*msm*^u8Nm?j)wUJ79Ry0Mo`QyL4e zR>_gM7sVIOAg}BhSr=|mzz^LU@g_P~_V)kByf_(+<1Z%CnGd$VV_bqS#XyFGo;yK^s{K7S}9j6UPC>OKZN3x&JSF&*=g z+|KClPL)Ls9<3>V_{zbXaxWpWzA|`$9PXMWhe9XJ5fw#LwKdMF9s_ZRJ0xcX@+t|C z0w%i47T8R>dv}!Bv;}UiV-|Z5`|~8U1F;C9jbBU5$5EH3YT2W;S-zb#;Hs?+HQkwN z;-k7~XA>=ZYPu)!oYJFO4|elvh4RqU=(Q9kGL}Q&;0F0C z|%<&U9in41Qd_Io{lv^zSU@F;s%xp z*QQ!%-D2!~54k3>>N!)JgG6|kMebe>M@K~(%bCGIbN6{Jq6XW|&n=Heo>qObO_*b> z1vhZe&&?O-gq|bG$q$=ciz}Zp1_?_rVOm%fDl53E;DF;)GbA%=f!{jrX-0rvn}2mH zSIK<1uEL_3Kw7)jM(p^^r@q0ik7mW4a`Rd>rS(oTrA^;@(bL5PHc8%r;VEqodq|h*<$mVTGDiIwuUHA~RjhWa zR~U=v{YI73=M-Ps;-ipuH z83n4>4mBMX4j8wqX4kW|LvF5jA%6Y=8}gF)58rofgZfWyq>_xiZ$LvG3x?Y`>H$pf z-YAxLwO(_DO@6h?|L$rz%l9V8(sYRZA_liQ;uL>E=Y5F^=Mal@kX>#LX3?M`GyN^> z;f{ln1?RKSyD|p`8@Rt!g@H&)B-RSdrdo7@p#3AB!7BhMSGQ9sZ)S;KIP}XA-7}h_BFl0#L znpqK$L*XXflU-(zXO10W^Z4AargrzW>|$F^Qmyp2$M4$rJXIe zQ7mljy}G^a#8-<}{!J_DqVw15j{3C{zXXGP)2f75b1$pT_Opw&puJb;tqjyT7D_RK zC0Ykn+v7(C=~R+Iy_K6d1I2?=ZvNkhV=JJ+SV03-L~Kc#ce+snSagcCvhm!oq zk1Nkb>ua2`NPcW}m<=X3l&}Vs#<5DUtRkpPD?oSl+_z#+9+1Oxc;@IEw>ogtn=HV4 z%9gF^S*>G8W6smsT`S0`z1?hcSE1FgpB~t8CgJw1A>5qonqg;f2Z<2bH_M3#1?|Rc zyRTO?DNYqWEk}p+$BMfEmQoL6oM^7c9PeI04!$N-t)&ne1lokMQK8yb2b-YJQcVoF zQ=Nj32%D&gUn53B5TrCjtYSeo?G_gOLoIY?fAkcMz*7}whZ3R#)(7*A2c83I+?;1O zTci2wN$L`AmnY-u-;Pnp-P?+7Ey`v*2stG1Y(iaC^`w$DcDsS-07mDq$nF(tlg}bV zXIm^qE3!B> z>S?)aLG>@lw{s6GpQJAD%-Qh>y|P64IEZ?e_jO$+FyIVdDXae0UVXE=sYOcTe>1ew zBFpKWI+aUG<6^z}CDSc}Rm^m(6+UEWXI~sGn@S_DMU;7|n6P{sY+g}RfPNsv`g3#8 zTT#!G(8uc1yt&~Qc0psnx0;j+oVO%JYkQ`%AmByUy=Ou6cTaihUvrI;vQwobAI8G|L?!w>NT=xmBO>4Z=x?V0hMW@d z`y%z$;^5>;i&5fnK~DICH>)Q}*8WsVsN#x>gp^3tax`CRnU@vZ?wqU~t&q+la$O(E zm)bz3g7RIf6kTi6T1>$&H!v4yn=`RC$$EV)tX{mRF;j2eiEZFLY;C~jXrlQUgHJQ{ zv`g|dzq{6}l~ddoKgF-pR;H3o>@3;fY<-J2$85PZS&6j>J0Npxl5) zO7X0kbD_ons&m9u6Q{hNuL;;*V%mqZZ*+$(#D*NzNo0G3WYCg8M(KRQyY03 zZv(DdM(%rd3E7q8E`5>NWmqH>_f=-rk<~2*)b|s~*?acqwN5iWQ%qm$g8mp|jVQOtFIKBsKZbzFrH`OXTw+?#Xx|`FQA81R-5kV_d zWeSH8X+eXKAJfmkz3e!InVL~(cTiYL>M3V2wz}(pdX$;pN@(}KW{Q*jt?Ay^agEUK zp}Vb3x(7WC9iV|T;4awR^G)s4DF=31+btqG9beQjk!95p`sX>Ba<~scOo<%9D;UAP z#r31aRy&`kiZMMUJ}qp%(ot5u`?4QUFUW}W)CRoH9B^ovkE}lrY$qbC?q2(6od2Mv zG~@IQ^cLu*bXbKf#3AO#uCcB9;=kixkExgiR1X&v+}EqcDjD_DI(8Yi%Ji8|_;41O zu9bn7l1bD_de7<|zFBw%>wWIT9@?l}ERD?x9`0{dL7UsSIM!vDYY~VZCbo7*v2Y8> zYW*VQtsN`WFJvvz(T!tG6g;?ibIbj==yl*opzheJ;O&@{?>QMztd6&VR{czvh$?P> ztu0+k7bDIg{db?ul7-LBn5%r6OpX2|J85|zrEc~&;TA`Y{yjG1-X6ZV=#=l~dY`FE zKEr?^&*@kpih~TqnE@UqkhF{X%?d%`E8iCnc+@0i>*O2ukb1Vr^DSFjv1PnJ^R52% z+B!PDcefEPp5r4U%dzUe%^b=&dGyi{Qk47Av1Z<5WHdf|v8-bFKC~?VIQ_)z{!uQ* z_bVvETs28snvErbJX_dA1%fcYc{x!b$`NLcj&4|~)Gk@6=ql7(3q;C&yk0I6I1$MDBOm$_b&HRj65AFSNjxj3z-LjeGkkb;O z?};d;T?-vyYV>KfD~6m+%+xzVaCddM19;uy$nN!NO*{#KylSI+sdW$0)bCH;^gSCD zkxJ#W?8*K=%gcFlf;7D|b00HgSM{>aH?I3&=v|gHMZFQ>dQCQFY+pwq>QE2_`8KyO zroFV5J>|$PYh(0tS*E4AMA;ps$SgTnR%Lre)p&64uhwN+DPZ?+cQZd%OU8T4Kgag| z?s1}j|1$%z(s#w^E%r!Rvn36KllaE{@F=Tw^g`9mVm6OGl5$({&&KD4#$sbfJ4}C+ zc&$|zNyf*$)mLqckb!oy>FMzPm>5Zko7dsf+>?$M$5-&ie;aqs1}-VSpQ8M&CN@S% zOoPd@tB{Vs#;@>-9;9UHoT6|7%sYn&IU%^^JffdAqHD+_WRe^G~ z{SB|GJE&=M`b-l5SX}iAvYFN$IK)`!z6!~Do8yg;Wjep-N}WY5#rKJ}F)1I2%3B^k z_jCHHnh7M^Nwj-YeOaU!38Q{UPIiaM$KHs+iwi~J@w#JAGed%S9vv9~-8K4!kR1C2awyI~Idu1!N-GV$NY2PoH{a7 zu%f%OA*keFiNoQ5%cpYPqW9k-C%gYncXIZK72;>e@NT6a^){fg&L;jZ(u88FuHc^7 zq#8hSudCNhg{~ z#v(AD!t0p~ZJpWcixt%cAp?{3!SfG$&MvZ$zzqc7nCPOa0J+`&soi2Z_zK6*8^>1+ zbjs0=nHnsNyd{?1r4*?Kkik?FE&J2fSYF_Ki+ij-eRl?_x9Z-Qy1y%KannHjK=X;8 zEMeM{j%`}&-hbBk${x|GR8poFNlgR!HGXfx8p$jSq-0bsg1Q&f&?KC=a|y|2^KhD|DJFRmd3H92k6W`dTM_W&gf!7UnXnT5Heg(TH#^GvS2APNNOkadl*W6T@>7G zyq9F^QEk#4dy({MmSOk+sX|+6=zM*d^yn+&PO2OhMb8q%G&8dIlIa$w* zs6c*kOP2KYzmGzjOa@TS` z&5p_RyM6>bZ-tpNm6ePjQ}2OG49S7GM{tL=SFnYrIZMx(wMQg;c8n-<0ZS=P(BHyB zIYxDKKwLAUnyXgYQwU7Jj7Xv6xsXXy;uW<4Fanx2nqB`8BYK z8a!@eu{ysA-)q|4tvZ02r5{c{29ADvdwYnUJwG3RlVPH85C%gi`3#UHUbAqyF)>?= zRzE3ek?G{z1#G|kTeI6A|2PhXJ$;Pvd0*GPInh)#j%+capo}tc?6u?6&(;nw94Ovn zC1BwqEf#nRubcv;&a90*TdFL^?^b}Kkd;kPxxxiMdHPE21@>@Dzc(Y`k&zC+*XxyN z<4~@mN!#ojihN$*T(wFDbN!5!`Wo>b-HN=E;U=KT)`77RCtzt1Ht!-<8m^w^1H`B+NnnNn8FZ)@Dg2hhr zF_`1-xFkWfVO;FEw%f_5sUi-s8Aui=({!GEuMgYXM3$K5aDDC0xzwEuf$qSUI>U}L zbKM&Ngwh1&tTT6Q7)|v=N@huDGC3*^Q&@ZoF8^|e+6*@272F>V^!I)HPxc?nAwCy= zYt(`c5Yn&U_!Q@aLk9bGJDF_=-V4$K8vfDhE2VLqB3Jr3G5efioEzs0*V%9&nSRs) zYUxO);s>~HI>=P#}G5A;WUBd2bCXvpUmMn>Gcml(dxLXT9b4{uFapJk{T@;_O4obO*U5hv`A? zBj%5@K~_gUR!syJuPUnc4_tu2r$*|#PS{%aN8;GOTF51Xy*FoF(Qlja>48CoxfgI}L$mRTp=)00Kb6(-Py@_d30Ng8_Qr6nnB{TAL zEU^97bH?$O#CqnJrk;0!bu*ioz##6N1&f;%=ocEyE8#>2D=MNs0H@?opIfB+VMx=x zI_o~k*&L8Ge`DV^U8e?TSbuYnq}*-{musrhdKX~!5qx8wsPDbf{Ocx|keC6I9&S+x zs%zm8jk-yM5_s+~CGjh25F0ix}k#dI_xdp6k8A}S&Euu&yuy|x;b5FP}! z>1$8AHFTcsUJBB;xg*L9_E9>s@xEy%3StC&f$R1zLc0g|3IH$%RcQscEb>_#TJDG% zYSSN>ww_xsGDWfUmbuRy8+?ntA7=-U(t-1}KW9b24Jz$FZwLsOA#Oa#IZVVnZriQe z2!kZ9G~e};z^*_+@M%(8TUKRev9rPFM3UmI)fW{zRgfFxx9*nV(x~Ap1~S<41r0X- zm;7vTCiycm<$j6d5Z%_vEG}qDhWYV;vyzhP=h71>ICbCd*4vJq5AyerGk&9WV^_!8 zQPqy1TJ{CD`nz!p>^Oi)GNk-3He`$*i&u;#GHx#^tP9)cf&1ao{99pbdZM8$HlL>G z?b_caT&t!M<|P9yUUu)Q3Ax^4q*ez1Fbv&nt)HBt5{Z-1)5kPX!xzZ&xyp3RX6M-N z_e*n@b2Mb>^ZQXDd1OOqE!yPgkfRWl#xoF4aU2VGpjv!HYa3URzhC-TKlHUn#^kj> zPvf-PK}+f?aE*LSZjMpAReraB)?++qx){#trRoeh$ET}v zc`|ml&CiokSL`v!9k#P(8KOwCMz}@m)*SiaXUTe@ysYzXBESZ*WSgY(Mq~`L}xw~~)@}+w)&|bQ)FKxaA7b9*RIE!@} z+mjHUrOI~OH~N3k5{alD%u;tZM0#|ga!I~5N_p^tfqE|AY@s&tKhKAbo(pv2S6Ml_ zW{=Ia5bg^}h{{|jjv)CVqNPUR<3}r`^SP}Kj!dS`+}Lp{-+KbL_BD#V83VEo&X}`F zL(yP9P)oDBISRA*w$YFx^Sp0N9j9Qr!Z}gc`f+BwKFR=WqmjuaU7w>S?t`>XhiuON z_>DY5r4n!z9$cXZ)WO1#nYHxHGuevnlx(YiQI;nrGfr*427*jeI7CtHL@=i`*Ntc7 zH>XAn*I_d}yH{pPXJ5uGcfKSUZ)0%O|4Nhfr#$CMjxYo7dDWrW1Kq0!VChM9XvZcUO;XtP-L9(d z?id6YdpKhkK?!XAyiN@m)!R=?Pbr|r+xfZVT7~W0K)cdnM@wQs3e;^Zr=L{?(y+q##igL?5mfi)}K4>2gy3E;+uM3Iou#NOf>n z_gt+N9K9+Fy1S!3>(M(z4+84izHQyFeUBo~ld$6u4mSVV&Fh<43q=y9X~9PBE^}{6 zXy>U}sh@HNJ?!-_eMc8XGq+Q9!QEWa$GK{9$aOe8aUt8qX_0z5eQ0);dK#6Ckbs22 z-PLtwamzTc^TUT#m_<hmba292H6bFy@gbUro2dkVM-ds#JS(gwL+6V+=$ zwes5y!S#P;8;x-lzqt(X$zbPKsvbGfu*6F@3USY1#|u|DaiFdp_V7W+OtzvGXR$T- z1h_R@7nrzdjAp{`T~@JtV0~QAh6xN#4RfP?_p57~iG3vKd2;7i4Faq}2N3M0;3Csn z9hk)DmKL{B7M}7$1D^atLCevYC46jk9mTJgZn0N;k@hn+zUgc0fg4qySBWta3t|FV z=0nX=qxRi^zwa;=p`9#HT` z+xUhDD#TlJ5;69p2f!kO77%+&Fb;769Gbe_Q)?exN$s8FY`#!9Ux}`1<6Y8^PZtIg zUKRbBh;%N9xLuVczP}99(p`LXt8aXOP(xgc_-}ZN@Q>yeH!aB-o(-qo^yAopAz!17 zH3`;64_ZO;w;r2jpc40{M#r3>N~p^9H>w^HqaAn_ThS!Y!xTAYO)xMiWMNZ=3Eu~h z-_DWnAW8ynTF4IQoJ?;XmL-GPd(;cIR7;zJZ7pZp$B)W;)?f}+R>Ks%&3+XF%}woA*7fGT zmmuD?-f;xo>a|xw`t7}zd--kA#Nrtj=Qj3mN-#00*H)G-M_}MO&`dz66TQ@s%48Q1nrRd+%kL=}qGkUh^Rjb1U zm%y)*Q|HP^M860hy{7T`VL9;(FnfMRjw!>p8k@`{T6{M=H*yevv$%bh3)U6aXOB9V zkH2XX%6+?%P1yAgq>s8~5R+7n{fS`QgIaBpWQXw3#b4;vZ)U%k;exlkv4y`oukPI`UAy z>TZ2p*7_`A%Faf)e}a=!Rck0Q!_Fpxz0EkIdMJL11>pl1P)!=n%2&I$olq1JW0q{KsxDOE)!(uixK;qz3B26KFxJT?haFkGVGihq8Si zhPB93N>52Dp-9U5M95wt*_sft43#a}vNMc%BxD_9n-I#HJwvuJLzHdoWDGH6HyFk+ z7&G(T>iPeE|NnP<-}`>w@xI6L{^xMGulv5Q<-E@QI`8woFFTz0x|t)ptZHJX9q#M+ z7kxOikzYN`xB>jwx)aE7Fow9CI%XZGhCBP7^4ge}_5JawHtI;T@eQ=Kd>lclJe8iZ z`rf(Y)J};_T+)_nf)A4Hk=NFf^!RL0JniVAXTdDkXees2hkF^?VxX{iY+KBDsm4{ad}5TU;@C$Ad$< z%>j5G;gKhLE6y=JI&;b+tc|~58n8#mpzY0LZKm+4qh)AuQ)gpka88c5qsX$a%p)aQuBm zXYbd3b8Es;p3F)91Or0AY_7S?-h7MQK)0`hcDA@LpHm>orh3KDmP+Uc(MK8QHX`hMUhmwQT30AxYG2bQRqIr9!KE|5x^P~F zrrFE;bAlZ(Y6_QSZPH6+M13)SO5^WFzm{jYK3JLk>anFHJuz~=e9WT~yu7ov>zdzq z!}2UFt(@$N+7Zg4_IjXK8pi$B;jcaw2wJ6yYG8M(x@vQ3^c!YhqO9gj~`#WEdBny6cQA zmfcE6oCZsRQH*KM*?d@lDGK76z&@uYd6U-7T8KPv#*6FZ8@PF7qf~ODO47d}ACpFU zCOGX>K6e;iqv}2_fHPbttpw1v!&0K_Cs=9NiN=dqwIH-PSzizB{3t)|;HY2bGWw3) zG!NRY@cM@xvlZX4`5dA|A_vSnDuxV1Ng4&)Uzf2Y1KqYo3+q;hb}J)hnADytCs2Vj z`3}py>>26v*KsMBtAVr!iQC%pnn{_j5882tt8(?Iw`#Kl_}xzFN~r99w_FEX1vi)> z*^fHBoc{Lv5%kI!_KujZdpu^AFRw%>lcJigUw!}EL@5g99y0XE%>Y=$*KVZMc;X_YszU z>j`RST=zf(Ok9SP`F?E#Y#}f69apUg?((Hz-?I_ME#!T-+9Z*I$>PdeL-_%|Fys^w zs;$-tiIrG0|%)B74e%-ULNn|>a-avXSqyz|kaqu%$!5W~=} zatB5ab6k}}&xTDGbmG80DLM>}_GM>~r!U{F5YSwCNrvsN=q7|ldycT|ji8fdkW5Pt$LY+@yx2(VA{d(49QO$E7C%)PEs|p%Io9iOs9sm5!zg2n|gRb-O~bv#2HXX8`DBx zN~vh=YeQgnP{33}$A@uI>jP`jNS+k~I^u|p(%jT_>(8>=tN@l7ETur-6YYlVca%WV zAM6#ztSH`hI7zy0d*q#TVwvi9z2%XN&JJW6YS7Hi+RW)4H1(#zicohMb>yyB%9(j9 z+v>XB`VC2ASk@kg70!VQyAoM!-z=qL{qfG6PJBkG8SID~Lz*EfNGjp!)W*_J% z!g||P^Y2~}H^;9V^+5|tWby*@c33?mYY8}Oo`YhD=f2|HCvDd`NydF;5>rl$v+fkR z(NiP>zTC_mm4o=qiDI;tE|BaNvyoR|Q}@kZ==P?ZAV&@vAcjX>jQ>3QHt(zmZ^oqk zL?j;VC*p_BwPnAuMIRm}o5?gz0!!Bgutoj$!oe!(l=1z1fL>{p?r-U@ny0hm$=6;2 z5w47n&4X2r&I318q=Ne^+#fAiuh>7ZYyhHV0%Xv0Sd^9eDQ)%3W6c|Tb%_lG{zNVO zwn$U@y7^zW>qN6Df+(fACFd2Z+~!(y*n9|UGqb^C%0#BV?Q_{$%qlE1{rfs+Z?$6} z8i>{cltjS<9fiVFkghB8V`@4g=2FWSiKe&rq&*it|=I zIf9<~mj0qqR93B%0faWT!0`$vM@7T%_%|wcFTTYeGP?Q6T%KBlU{}?fohomXB!q&H z9fx46$3R=}$sJ4LjX#g|=1!>^ofV+FukZ0%xl9onm|!zsmqn-NT|RjQb(@?{ps98B z5PxEt^3oH2RP14wD zJ3TmZ?KoU8Py$X@k)p|Ld~Lkh(ssbVVCs;RF>mGo&0?mIlbE;zHmJM7_qg$oZP{a4 zx}`W4GE_--*5#Sx87iqY+lE^&Jr(f2Z+leLZP+u?MA(h z2a$ndF3EJD9pE*A;#;aa&zmF=z8ABpc~5tDJ9$mpGX*w{zK`uKt6fDoKTI8>x+RRN zb)yzgvy>l=jY6{F@2(6U$+%`73VNAUD92JU_Gfx0bk)&L3h`7@Ee_$%!ezo7b0uu3 z*=I@u&2k;0^l%5H4PqT!imxLo;Lq=iDcw0hsl3ymaDYn0cd{7KECGnlCY@JWX^Ke5 z%}zwEeY6dD)m)kNEA-0=s#KLEq&@Wi;U;P9CbYl6=>9NnVMG!vs2o$>2`I->xZ>^y zQ}j1q7bitix8Y+VjefB>iW-Mq>JARrQ7MhDO^^BUuIiFr8*?@zF;Un!(B0R3q;!Bs zfW=BBdNtxEVGZAtGnduWlM11rgdfWFoo|C3J6~f((Jq0c(}?p5x-DILU<=30m1mBA zE-pJ2$eLbs%a4Uyh#lU@nRm9W{*~%L+9D8Uby;4Hw*Othb<`_NqJ41%_#1qBDq+td@DtM|; z^)Hhp=K>w@xX^|y%4*cu-z9C?1wJxexMv%bzzOR zy!7j9aj{+oPUb@<)$_48Pj1{r*kkfM`sD_cSYl3{pJnehBIgzz(+0fqudDmc&DThE z1G|f0eZ$*p1MNuA`Oa|MvD~#ZBXa^qH^mw}1&G2~Kfp2Rw-+kjgl*}4^-e1#grUmK zFhe%ZMfC1Xp_Z=A^2kSVACrdBmU+yrBLR#EjD7cK>5gnmCcLX*>t@G=plp2s>LK&- zX;yO7SfjMws=U3Y#*)G{3+kvWiZYHAaqrnkP^W2aL};WSp@UXw#RYE<-u(W~p-yP% zp>oS!R~IMGMV1Npy06b?x6|Zgqb-c5SSYb3_vdLb%?UEFGqCHKj7bRC|K~q0Mn{O4 zN8vax2v~SZ(eK_s(o$+Eww&gPQ!Q#BWImq2KF!9}dQ97`|NLfT?M9qm zT&MxQTWwzLlG+7@W;Q@+%0^?vy)J8a>=WkLGa_wK5;0fM-Al@u`#>_hVm?11>CAx< za$c>w?RkXJ#gn;wSv`rrCP>`c-+`qyu4^^>u0w`7r98WWjA(Cg0_k|oY9fKKL`j;9 zO#f^X_WHm;yl{7E@faA842!MWfx&@iQI>pRqDp}Av$;F)@Tz32{lMs>RW(`M)g6X^ zLwg8#;IZ{Nb^ieOkify_l;Nlm876lc>+3uy+POnkWvWpKaBSYT!PW~KMno)As08r< zDCYE^J=p@*I-d&UD zKx+JJ#^%iVX-x-T?#8v7-AZFXa&D%yfmhFlgRefJ(Au@LyX?cj$W5Y3k)DA$)bz!Q z@~x%R%*Xvlc?Fblm9`U$LUazj{w5EZxi(sdl9xK(y0WdCIwBGIjreVrl{L3DA}Jm| z)S1Ft1kM&H{)p><+fqDtZ;Ex`zG4Np=38>Ryc51Dq_nqY((Sy+jDf$J_8!rSko9*y z3)Q4GatM^33Ybu_6HIMnpD06`ZdA&#N@k4$U<%i37gctC#>v_-;{|b4J`mzMKI6(J z=-oB+>h4LxOPYHZO=MHqu6m{?@p_APdqd!AG7nr;%B0xflw`U{X<$L^O>&2>ip`Dh zd1amn{4T+MU9^WOVNr0Y+mRLM`ep6fuSBay4Cd0o#7D1<&SYNd&}xGR3mp7ACK^bM zysiu1@iMlvaeCQo7DA(m^LX8r;xUr#s^aP2rrcyO-6* ztQL2I`ko;xDq_ypUZd=deBs0_kc1PKNQQV0{I_BC;3t{UQYx#gKXt9k8B)=KD~XN4 zqI#LkO)w>ZjJF$Y%Bllt&^UX$p3ZmHl7dA}BuaUN75Mb*+_C#m=eEIyC=Jy#eVbjG ziym@6_q=-IWO|!-MQyXNbQ*cyMr)WWA*CTxh_lQ$ui$$UUj_QpUYDY!UB8wQEzI0~ zJl0`cXd1Tlz64vOA64!eFE@v+M;6gO`i8ZsZ?XX6)I~OT!18VYNo+Z1`fWfvsxjw~ z6w+Majn#S)nb}qz89In$_r33!ISll9S~&es@>=tY6^XLd3k|LmY^3VNwp_~G z5rk;>4qWhTz`UB%?${H>HC-5iVc~u~nE7I3W0aVjnazQIYwt!4j?ZxsPfnJGdjd;? zaa#MbUwCI(L!-`k&wAP9>%m7i%+qkF+&q=Bq@hTutW)5C zk&RR}we}~sxXSKe|Frx0#x`ha8LE%^XCQR%Xje4kRdjNy-NYTlR06P>Tm#r@y_s8F zvtsPj2FF%lFT+4U*{!5&+5AEhzjE}S6Q7P~3H|hZ7&m&q*)!r3ww?4H(p+gMA022~ zw~buUAO1PPBlB}c9k<4v6|WNt(z|cU5(G?B8*T{wAn~)Xw1=!>sh4zoeS`X&Adk;O zNyMiD_t08Ed}l7jXFWEHFcLY^DWBs3m&JYh0F0aAP>bx%Vcz;ukQ<=-WP-suSS<86JZlZS{@3NICQeiPgX?^G!)ff zCy;Vd%Xhrdc#BAjx~?Ip+mU1THrqQBFs%3lFPxLiPAmETL})>DP;mGeB3<1ci2uB4 zfM_ky*DMwHK5D(0{aQ%cd=K7erf`aK^z1?#ouej~Zs_zpXIgMw` z4j8#Ls+nAH&QB-PR3aPG#Os!U=xBXQ5JrOP^~t2+AUl z0+<*c1%w6^$ZnNuwN?K6F7~mQ6f6G($AHtEK!T03Y}>>szm^OkIE*Zt>QP|^*=w#G zaVc?W=DSI*AGs%0rGIOR#MofA_6d?jJQ$FY2S1gvTLWm~R^F$3(oq}B9^7EU`EgfI z;CUf!#$1T=-kURA@+Sw!g*LCo`a*s>B|3iXi3=cOQ09QEpDg{Xf;c8-=DW01)7~0O zZjVaNv70TTTbY)qfKnvYwYS``n$@K$xa5p{ll+G~R*O8DQH^g`mP!X+I)(-L4k)7> zpF}6o-1Ws&wpgTIQ^Gc@cY8W5{5)_^9QT@daNeIpT-}kMLG|h$zXfw`CT!2 z*R7V~p9P-rr1^q;!wQ@V6dSz~#8nK?mEHLKcBX1#E_U?Hhv8YN`h{E|@oTHqAqZI9 zFypF*Tm75}C%HELT!9evNZCigHP2pK5N*#b^x#(=n+Bz()9r|QSGH1B3=EX5x{78o zjzlC0yIT^YB;JM*Y8SY|Cw(Sz_D-A41LN}lX*lfn&|EhycQ3}Kk)<-hN*(Xr8If1C0CDOdNp2#_rh&3$mzk=EIWO!<+6YJgQuW z*&TJVUes7hz0-0MsQHL9ga;N0aVM`$le5ATiC$R}(ch%i0y!dG$mXK6j0?Fh-WR^X zzX=K+b#U^xOS`G21lAQGOQ)}ruX3(3O1lJhInDj?y;q#uJ!DovEaNms;H^cgDbp;E~eD=IIs60+2sWRQ`&Ixc_l&q^8HuJbT(P|}VCaMa4T@6ap3vRq%{)E}P#pV+Df;)I`d}m~O&PEXXju~huY+V<{oLC^^P<{0) zJCmrLiIEXMcy*W~$;1Rz2?|Z}9s_oA`*B4Y3N7nW#_y>$U>^AHEee|l(vne-5&N>` zE;Jo4!)WEUqfC-JQxrhF=0ijk0p8A(Q>+?sWe&F;-ooNa^;*LVGtr-Mz$b}pl#DHg zCC(P!P@gAwSuGOilxU;%0Z!Ca()Ggezf99~Me6{%30Qij)wF?Jr<{JI&Z;3vO(BY3 z9KAl*tR2qkPrf-lI7~*z31|b+=EL{L-JA-EE51%Ud7{@;N}1{GR|i1W9sMAGCD${T zV5(c-H1J+_;@fTIb_lv@E^br^&)B*gF!QxwW@k{lBfZh`T8^}ZFs^hV$uzbF^IB4xzg_(hRJ#mU4ex+E)|2%HXjkMP*p#;9}32&4krf=kK*TH;%M;k@CO=rG-92gWL4MU$E>yDflgF)5iNT^n(p9>t;hq8IONAjV@ zfc8vMnO*SA1G-@Ey)3LD(YtBzUz z+=l6zt=5V<`QG9QXcmLNZXVVkA`Nwh#LqWo_&g4nQZ`N~i`ETN47?z?@l&DT>I{gr zR;02+oVMTg$m(n-b|s%I>+v{0IG^@QG4N}q0$xt4wwXu3+`jF2e31e9jkpS(oIEF)-&L|Ii9!{KtHg3jdsQmA`8tMX zj4wW|#wpY`PbX(I>KaWsVGS(AI8tLP2v4NauP2DhFk8P;hZaB;PJcJ&Nze3o}(xjUen2? z3SH}hxIyxj)~m_t|L!{#*}MJdtM2|gg2*>!{>ve_t)pGiLQ{t#TC#j*br_ljInh8e zx(>nB&Ay;Y9(nkbrT3n(+%$LB+E-r;0qIWI#IKYm?WT!!z+ed~L(@l6sRihnjNs7O z?>P5FUg>%rYi5VLRp!oSDy4M?*^cA2N|Dczs@1esWIaP7d(ro;v1_M+Z}4O(vxEXx zqKYx3XZW#^*-(=Hy-dH52Jbt2q;jz0O}u(---; z=LWJj1=&>?3kw)BpR1RJk)QR_f%$Ft5)dD7>w}e6dz(F);DzBk!Icn?EY^{oR8_)}f9i7z$TK>PdQM*_+I8SCfd2@CEqPT;Z(|gyAPL zzm=Hh##|KA19n_)AnH0Z$@)kYZC}i$q_HpdDxmdkj8vp?^o;0F&UmSg-d-BY8?x-E zycKx)n-r!0N}+G1s(bp+jg&{wCs=7&QC;JyEA9>jx5n~5ztoi&w6cgQ&?Qwn4Lr0Z zdO1NCOr5)E1r|TswigDb$w!Q3)tG{U%p1N-ZyRT}dpVPT1@^mFt5&_%qa%X9J#yp` zpyy7ExJ2nsS6{lb?g1)$!HX1EjwBzl%c||ZT^W=ZD1zs;b?mG{ull7by5z?2Z+{FL zntisjy{tErQ(TWr3Q=f(eMg~VJ4E4X#%}7(h44$<9MaiQShch=5Sd6szT9AQDOsyoj(jdplVC)7&@Gd``&B z7kF=KF331;*jf^`aTc*l@79n5|G0yr0O2PC17SP*7N1>9J`OOku=wtDdS`1aG`EU+ zS@Gp0yVDB+@ovd19X*`px^8cT^`cWiM-0^P!Ubzzrx(FiTc#7@A|i~uC(aWSh=#JS$-xTHo;+J8o~p3ZAQi$B@VI@3suJOqNdxFp$Z;doh_crXxmKHh&Q#THWaj^ZL`W>Y3oKoL))(#bhvYKmP zSI7V;w=^Ld!BwtZn^5J`G!PLRXDz_ScF~^NN`F2UPofVIfQt@~sBf=9^aI-tu>IYV ztI$-K-R5%^s&1qOC*9wzR+8DRW@Ed}F~~=(&Tex|!!m$_-x;Vf|9Pk-8{7LsiznPI z`=@0Mh{3=?IRRT57lV~#W9ti{hAV)nBR%iQ8ubem{02m8?R&(tY-|gcAUWw$5EsWj z+GXH=T)umGPLBIYHa2fI%ohV*)oNK_bq(CVx-b@_8;FdK!m6^dy?je;mH&5dsoCyk z1sL4oYxhGyyGxjU10L0~$^|+?3}SV4acnr!LP`agsJ9U2!-M~FCoW0=Xc6}(2Jryt zZQD#*zQ5}`ATs`TO-cEcHS7`f95B@Dg;?*Ri(PNmP!W3N$|hV6`u+rsJbYme5n= z3Gbo>j}+^B+S0IVR3&3Ac;&C^p?P@TKH$#-{S+Vv z`*DI280>HKzI;QyCocwx0ZH@nsLnlE+|<&7uP@GKXSZDh>ga0{uL8us51GF3t7&wU zfY&GLE^rs<)3D!`3xFp-+ntwhx17K+{pZa!~-bd?Xwg_b+O_lJKq?u*29*YWU6nxIAbL zQ3Yz=!~_A{2TUnjW?zG1AV=kc=JzRI-gzqRSkc2x?j~ulFu3xxUe395>S;l zq2Bt>bvd{(QU=n3JgWBq+UQg3M~ib>3!?YQZPdrt|EPaD2vQdsYn_#k1o5c$6d;vH z7B=_!96$;H+ZpP;s>&QPJReD3UZ4+}QyFi5vC4kio;a*}nl%=<4ccege~s(wOJx8P z&ftf_WB~RD$O_2A35e}zYClaRN?>sRkVtg}fBlIoP5szYy)%qK`>SB;V*sPl?BEyI018c#PqPEl{O|m` zv@s(t6img(ozneA%yPp$EshYmfapzYe~%FIh)-)%aa$`&bC`c6tuXTPYeV z2&hXyaoQ$H9R)bBY+v00dhh^S(+y4DP>o1y$Na@H_unYGaTodO|90h{I{P#iho}G| zdv7t}<)?lU?qBTD_7@n4$U&f~@7*g)7uErMo-4pL1H>rLSsZiz)#&fUqMHk(oYU4I zKxgXlssc*(y+Qp$fCCl*1wNn!XJ=!3&I=X;rr-@I?#1l3gMd({OPvJ-P$>$V0mueG z9j+)T-u(-&u(6MvdMQ(zK&31Fvv;(miH6h_??==Xpi-5&3Y7wI!##jg0R?-jbrJPG z2T2C_MurE9-Ulw1^X_jB%j#GdJHp1+b_x9FKJKJ2Onq%4z`VCw7d-z2bk@toO;VL# zU8v6X);_lG@rDA77NJqDEXGmk63C4O&^&oAC;HBQZy)gd$sg@oNPi640tyqLP}`s2 zgu__ZCiP=OEpsF_{2+01eK6(0dbSjm1zQ|9?9W z_!k7fJN&QbCoysV43HDOKfu2s1g5kPVIS$YmHcN)I@<8q-w+$t#{g6O_qj)XJa8Tf zU@1xf;L>>D94PVTBLT;a3s6_a3q}c2kdi#4&TsWKxbQ3?a$)Q+;4VI@e`hDOD-R%6 zDMRYoZ?BV0J4Q;3{}hxDn7sBoDTxSfj2mEba>AvgB2Hr->=)yt{@V8l_KTTPH-A$O zsQusX_qQz~Nb3riN&!H#IaWVZB?{pOirOOJXIvtXjQ!#XuoagmWPHB}O!hzKy^n%l z)}2lJwbXTferO<2Aww6L_}lxtT`({Ubo*FOI#CRA5#XAFzPu}d@AAt>0u=K;&H=W& z8YS@0{d%fWx<`~4|- zQ%C-hgFM`SJul$Y0qz5EYwiQO_>vKKe8MlFsdf!yN&CU|C89^haimgR1;jn~oEEHyS{G zW?9B2g5KZnpSo(g2>4EHT2WjI6}mJ4r`L?UYa>nS zf!4PX*)0Yo1JHkl_FmlDuNcR5tKJ*X2>T=dFZTHVX)^y~7y*d>PyO0>%^UBTVi@5U zSFJ^hf|tJQ&yZmV;SI+QX(CioX4%2q&&gPEpe(y|d3bjA;n*?HTCWp|LxuH{^afi4 zOKl}ncu`A+Ghwj|Y6n?nmUZ34U)^PlR&)6kO{<@Lp!`G5YMd0-iQ&S3aO?NU)m!;U zp@)$k_U~8s*1UA&M3jwIOmxO~?+OBPv@? z?+TQD)D+r843YY7x+_A{IXdYC8ZE!>SfkoNxfYe~w)=OAA&+YLoFegL&scFz=ve!g zVCymQ(b0hwM(`oo**^P;jXR|-{J^^ks}m1ReLr3fjHpU%aoC-8_1xmSSR@>J*M5|p z#9L0jr4>V7}ZX;EWd9brq{@Ym*daT?RAf(sRrY*`4`U(d>J+@??rrB zaY>zr1Z$VAoG}5~x$Bj60Xdi!BUy!ou?o~v0gHDKv(dACe#EFB%9`>tx3p;@y;EW0 z&z*Jc9sB9Bi+L;ufJdo=^c?%IpUndJ7#7vOkf-;`+Rvo^b$5m_Z_iAZ?l2DBZ9kbo z!bLsU)Kq#DE5>WO7sc&=cPcMM(CSr)sM64o5f1|^_*(ztQ9MG*XZAUMmzi^&-vxyU zNL88%OAXCWcowX*R{JUOu*`J^~h`SeGV*Y-eb zwf>}{oj~`IZt79|)WrGfAI^L)n#;R$xK!Li&q?t6XKR3-LwpV#PwrPj_IG2B%F;Qit9+=auG^OG0*5RKGMC$`d^UYn zyk;ZhO z4{F$S7F-O>)q75DV?WR5*3}+E`w`do@f5!T>k#+_;aGU;N4)h|j@WXpkrG?o-?kIV z11*O?gik%;KCb*BK8fTkeKFPW!$pRtzTbh4m}6nD9-u-*&p_@TxJpsFd2lAPtvD2O z7h1`2GclAQl%pDa$w>H?)bTntTMfe)1RrnE50VSH|M0m+*IR2Y=lXQ7en&rS#ctNO zBU})n%ClK8^tU+b@{I#mRSwSFd&za;%@E?wm-mTIxY*-6!kSWt>rNG{E$IC<`Sy~x z-OE7Bii3vNu7%x=3sj>O2~Zv+c6u)KUGC`F8V;NdI{&z!LBhpMYs+fv^3D30WWFyq z>|Ys_%zwep-FV!1{Do8KQq)t}1``SsLHUOV`OzK{vP=k^+XzG-*lRAjgs3@r;Njlk zL-6B0XUw-^+iMXNtw!JKI0uu@Jkm2?(*??@Z~FQl$nANO(O@(A+Se^T%#s(V-myO} zKDUwkGwN66B2Ty8V)E6-_uP~P_u^w(N#zaZ~3 zdB{^=ud&XMm)sW!9%K%^h>K=?4ZT}l*FFU+va#t7>1f`0Wa>j0EDc%S9ByIHe7JBl zcJ*z%?Y)Q}Ieb$$?z9QAA3L1s;%@PBrj=bl;o0?g1Ma$PlSh*Q^h^%TVb?2bY}bOjK8EgS(7NR?nsX2S+@ZMc^kYT=6PPuV(iod8k-3t`zyPyXTUd$jJd6+UaT_~V5o1KCZytZuuy z7*od-!WRj){+mE@{WPqA(G+lhWO|S4aut-MYCh3<%{5~Bq<7?DL1ha&ZD_Ob-KqB* zI>0+zgbkRaaQUL7!jObW`6*4{swS&BZU#QjQiX%IqwW3hiaa20dE2xzozY5Al1uQ}_Db z>$`Ge^z#jti*QeOCo(!_oe_o|Z1)~)t;)c!JtGimQu*0YQ`au~TRU4@hnpyl+hj#F zY?0-pc(_y}wO>^ST(;HiuACW7fTi3p^QB>l!Jh7w7BYqAisl2#XMBY|h@Oe*+7JO! z)*V0hBx{TB-EmVEpC^aXFS^z5WYo3L;~a0+KCV8|6ClxJ>OPvQG~Yo2sV%W*9QqkV z`)V`WpYr`s&Mm~a&DISSsGS2(0E)7>9n$sUtj5CC7;6wcmEtm_@vB?6Cdbi{RmR?#R5nVqd^}-$6lI z6vjUSvLmkEUo+n-wK6QvE+G*fZrN~;#_}B3Ra*X9EUcjfSyA3@+kK-@9vUiR|K&R} zN`LpZ-PD;>C|FQ^ZLhDqw0%u`UrP#B8jcTQ)9f0lZy3`w*YdM6Xh&l{-#G6zX2c?< z;1IlUc}uZ?9T)R4$cA}^07LWUwl+$jp60i2?FcEK4SzxZx!^fi195eTNjX2kdRdct z2!v_c_|DD}k?}}s@8J<5&9@_XS5wGh?`Ajz6vWQ_;Bkl>G&d(nq`JiEq|x2UupVdE z(iID{;O92riR<)0#G>$YIS3_3whbs>twWXDo87*TMniDAWyiV%_$9MuT;HUPR->q#6~r8C_{FRi=SmlVH@ebqOJF{~W z6mYSw@0Ir0W2tEqA9G7q#x-Xq1uP>@3Z|sWI(BMw7k3sYY{8GIxZP}L&-}J2o#HVr zs~K#4W=D~6OXI3{p*Su*d0jhEf06A>P;b)Flq@T%x==6cdoYr@$Ho80_b(YAMzNZ9 zqjc0T=lFCdOD81|H>!3;uZ-OPJzPM2ZJ8*fTo9M&~-!JKWs~6 zLfVp)hv(lYNE_>gZ&ixm96GTu)hp<(H#szVbvDSE57NpdczJMwK9s^tKftCnu$md$ zz}obo%EuYcrZ-ZPHLP#n8ohDOp-40NsJhhQRBc$U=wIC`YDtEMT*2E#EcMk#2I!K| zpdoBX4Ee|HtA6g;#FW@xqA2L51fN_pcS#4Bud{f9m8(#0BTB&;Dqd+E8CBZ598hg; zAMj*BPAEcH_@I+=nq*=t)6!vBRogV+3uzS##+(@E8W;P}Le!7PIa>)SH^lqB*PfZ2 zgDVds>+s(A?!@YqP0^XU;m>>Er|MkKrC3UpuP>_95(8-;i9N2*ZN#7n67mPW98O<* z{_wBuTD)rKyXmlUMFhKI1g(?*5WT%O;{}e1{Q$PTx-49 z*sVIvB!~6V!GwCJoCbd;4B|REd+sttJLt&gioqH#H_=3r^|cm3G?89MKF%MJ7-PeQ zqixK!bJ_<>b8pS9}M4wePUF_2hZ)9(N7a251neYS~@@PHXSNmfDSIHPYn! zICA)0z+z-tN0Oj()_EWOcup1f?{yDnk|UOnNSyP>Vo16HBE@mXSH@L|2YW495Yw~O z*K9RX(@6v)-L7Ti6vg$MdIxiLbM{H^uKe0waSBbbwK2z1wEJ)-Z{=MyP9I8U zNC)e{cTXQvRy+h(2}A}>G(3AW(jVez>kzOrxylD*T5r+m4NV&az7~6@dmSH}HtaV% zg;)*ZD@~QKpW2?5(@TaS^P~%oIDC!`AZZFFjSsC?$6LcQo=o<0-05Ah0?C8NeTJZk-1@&wR^#Sq^VLKZx> z%2Li|wanCLYYYA^JL}roNM-HN0-Q^wY$ca;JGJeObL% zyTlQ&{?4YO+0BRXsj}4Bb*HR{K-n(EkHwagk;16pZa8I>opl{2<$8^V7Z*1sH*{Lg ziOa07AajOWlB%CmkTSt`FQFQw#@#~nY)5OdU8O>=liUO3QQL`VE~9jOhpmFmyrA&U zxYX2LLV-}AuhwW7bhs{3zrHG2(0}=UCp{*h?&+(CRJ@M`Z`k$WmYUT?! z9zNKD06x=DinsFxzLgVk^xV{YZ`W}O%B%V9#gKWrj!oxlzlpAO2AY_7ecyoA2l%9p z$a<<~IZZhFt5-to>Nxy5#9NqBHVO^5ebWxX$G`M?^f2r5oa6}1S#Q7y@*hN25(R(+bas1jLcL;J3+N8V<}z8Q!M|l%q{~=5HSPg-Ru~w zO#CqJX$$8$2 z^CmJYJ*2%utGp+u!P-nl16YfpaELAH%8pBtOVF&2Vqbp43Dr7w0b_?G(Z>}BdqDTKo>j?^?<^bULe;Eq*O`fgXU~0sy&j z2l)ISkS&6v{S#$(ekJ>k?-`>VCj4U%`^=h}-tH=ArRsza<0v~fqQ3dfYdB&&1MLOm zDUzB#?v#SjrhDW;%i(w>p5<$aM^(Pq!t`C2@Q)@`ieE3Y0&)cXQzR_Url!&eZLtCf z;kCUyYj#9{@mEcLUcY>U^s7)y`DEvM-y~;rb&Zb!QiARe<~8HDe~y13gMp=VHP#oL zP@XF($CGS?WVYmXL@rj#OJ$0K)4wBKk#aRW4O|b`Ah+k9h0h)TL|O_YRRRt?^eQOx znzFA8XL+jQ`o;5Bt9SW)xlX$9`|QCBS0<`}Z$?<46iPZz`QO9P%BatcKyK)g8Wo>_ zkE`gPGIb3GoadFiKb~MR$?MpafnpDSg5vwS6DoSF0Ub3LLsNmknGbzGy2wUbYUjaA zH7K9^DHkseDFxkoys-Qi|MSzy%D@JE-S31N$xt$S&->A%NrJbY4Ly}gJkEA4!ERF} z^;T^$ucugq_-TlK9U@C}_EoQd^je8Kq(TKU?b9#J9~hh<&%0-iQZ}vNAwPcqWTyZX z*xM#we$7^g$k z$da3dl~#QgYTqBBxH!0?A7IyR+{X%Y%xo42B6+%TovRbEjGfvv0yl)`+3I zwsm0Eco4^2)sg`+tZdua*J=E5O-y?Yx6n%5#p)d2N(-F;kyqE|7O2h>~!*V<+l&&p*tBb4ut4h5DLcW}>w z5GMuDX2T%nQ1~j$r}K>x9jCHY?48-ZR40Esb==1R>%R5esU_~Hsv>;R7G?QQi3JYoEMp%F&C+=xYa=SfZ6plYI=N zV$S*S;#By=Fa`I$m5CQx;fpoNw!ST$7hKLu_ZJfh9T!tOV5>d+0WcaV7|w zs!i}tp33<9k{G^`3F2n5--;YfMFFDIa5tGtKNnFsomxm({E6I|y}K6_~S=<(o+Mt z&zuT#H+=haB-iw7nKB5iK`l2jVAEQV!-@8|lvDm}XHHU@RZ%5gs(k(~pG)I~sS9j& z2jhZQUbsgTp+0#0Y?{6sD=_7eqqYn6Q+*$?gyi12`B(Oz)xlpkC^a#il)>H4TmJk+ zN}Z=UqZ3tX!cHJ6dcw3V#NFcj|0meShm7u^O7&3i0kyO}{$ z2}~UJdY*1retMr6o^AH>Yj68A`mTY#eeAQ%L?4UW{>pbCiVxUxWnF%vpd*AU*@gX3 z9H)xI>ucxyfgtK+K#nD6T|w(NR6wPY#`9h!1Y!D{Yt{IT(=^)RH9v1x`<4f8A#EA6 z_HpD$9{>E4tCs|QUc}p)nF6b;xV6_~sZF*o^lIuU0Ua#FXHM+r9I?5_XN;XOlfGut zV$3%W8=7o=omRG*W6)-Axs-q~Vw0ENXHE=x5!b%=e>L~z@lb#Nze}Op%uoNRQx;OXoBlKrgy^rf z;)Z3#)(i(W$j;aM*l9G;0bxbYVR{5jHJLeK?;V-m(kZU-`zSLp0J2_bY;>k=S3eIT zJs$$6dAlRei)aq@9)0qA;Gp6v2B6IDWiNa|kv zi>7{m5T*jw$ zuKrXJc2Y@3xp@^&Vgz|t6&~*`R?AD4cFex!YWVULZctkoT?ZFt%*WbcDgJrQP57Gk z=j`&R&WVgjEymn2G$HQD6?Ce~s%S!`ck@NHoSi(MarNfjHT7~Gst#mcxH;|VfO)#$ z_!6_#HLg}kyuVQwqCKoh8Y!JckMjmFznhscT?41yTb=%+|0M}7dUpks7^x!3!v64a zY&Id|DGeuFXZo$Y5fg3N!0~?@!P>1 zbB^7v8_{`}jQh@7_Nqti_uB{sb{v{DFcG^ZXshQwv&l}Sq-h+<79iVwO+jo4};>2b7 z)M?^9&hDJ^Xt)6+bgHF)HHlidH@=i@?uB|7cV4;SyKeYgKVe5UXpl9}jZF0z!jVaA zQI*vgTEx;VfoncIpqie6_s|a;YIf&TuPokVlx_)!K2j1&$(e($hJYs@gBL|b{7o|} z1TF^D(s56(X=)B7O{M!$XFYn2dDR=eiawXwUa#SQ^e`-nvmP?s;xeI9;5O&Za2()W zj#V>DV8HLm3IpI0=q+X>VD?V=3Xfbk9uo&X(a0Oz+amBO;(kY?YWN&=WDeK!A$hw+ zWg|HrVu(#r;>)f0~#Lk6&$X=Rm{I46^$6I*_av#;Q?HK(QRej zZ)CJ01P)!@#Atkzc5C=y4-Oi&OXCw3!bz%SJ2_xtS}u5fy~kLMCLyKzI=F@pa*NxU zG`6g5!kg3b)Sxs3_ueRaFmq6T9YxrY78o&%NaEFKH43YBIQ{kOMA5)a?ZuxLjIQ}` zU+>@pbvh_n?6*^td?Vr{rxQ@NB(an%xq8lHMIY0}D~wRH8|D4Jy|)B|a=gHj&5;Zk zl9yKw{k#LaR8r!cY-Q%}`~Ez$K`n(#OJxST=r(-h-t(3|PGz@m$A$YQ&tm3iITJ%a zTb*W-SLC;s{*2w}j*;WqYk_X`yRx*r7cUL$e@*Fb(8qfFr)JTglMDeVFM*9^O8eo{ zhm)nVd4(C{wPCb0P=ftX-p;d+Mav<7)4Jymh9$+? z`QeWG_%2iw=4C4v>Lgkr<$@6P%Xj4S_!g!pgstCQ$bI4*?az5MjYjmN#l!;d<^wCs zS+ZWZn}zLpkwEc5Nf1wlixe8Gv#270v5#^cFgqDotX6+RYCydM{LGSD+&bHPNwTnU z=L|Pzyh6a0g?k*z;nIVT7o=8W77}3TX(ChhqlI2QE`g!}riqx1Yx5eqM`3flsj?pF z>D&!9==&Wh7-quouPtKAn9e?bEN~N= zMj?h?PaA5m~PEU?xYMncj#W_Wt-HLI*?fi{ZMViP4b11 z-ks!_Z6_Z1T;NnFn4I z60+l|EEYI6J~6&jnC?0PC_v4JJY7o~hGxG+O{mHX2nO29J4;bgSkFtF&(e<~$Bg6I zbw?!x{CEB0SA-zwwnETKA6NFTDMK>xASfVQx$suqtv^L>Gr)G+3$O;aKj9rYebvPV z_V7iN8l1{|cS=3j_E+NyAN2hiCtlGA(pGYl!#@@)Bx_l)Uq4 zDyuL2J2N?vhv~f)f{o{+WMQ%5urj1C)?x7+PCTG+r*WXgDdRU8d4Y15600%Yq*W)K&$pO zs5HDHWrZ85h+4e9>rmT%(3^0O8+q>+&;I;71=3)SF8S5Vp8{Wv{Q}O{C1~jFukMWb zxRm`fF-YU#NQH}W9!u~Lh}z9EuL)%|VRuq;t2J9L<9I>C-Ob4|b34)7WA(am2?D6J zpw`plE!3&@om`i;owWwZBERVc5DiU~>zK=I| zAl2nX$0&|XuE}P}+B#_9~MIG{rh@1)$MxdYBUPh4(>)EZV{WOcgZ5o(%0VO4pLyn%MG3_;PrXrDE z54ey#1LlbsYbi#!TTerws{`QAg5Ma;=-A1at6W(w@8&{EKG%~p2>pfm7!ub)ZBHHF zU0}Eu#%=s-%iQCqdBnR5+kh3Rv|_qTtSy=Pnf4<}rU821aSNdxJ({i3e3n#fL_Exe zOh1*H-1%H{tICi5Fw1r24ttH8?W>lA9v)rQCgL3Fb#x9BV5zUsSj{*pj-7I5E+%h= zv4>|B=EdpPoB;FvHz;o$EbfeUhM+u9j|uS|X2d(F`@w8{rI|kt-bt;7g>B{!CHJ3$=+* z>)0+ek<1*^?B9>PBMHiO4kcuJmt6zg$@0~Cj#ewT8i z)|3%|!=@Jo--VYtH*2F!UFMA8bA&WBdL(apj8o2LB@hYdapUU54OqBKnULIr*wu^{ z>Z9%-)nTUd@J5(5yaLK<$7yD(c>MT3>f`yF1r9gXMkLsy;C@L2%a zLPu*l+k|$mKjimRlx3}O(FA7GjHKdh2x=%3OtHXcHA z8UlR8RAH~iHN$4F26D}N1g*~qsu_S%7_Pcm?rm$Q>ibFhQ{$w@GO?kM6Ca*8lc)`K z^LklDG^94)n+p%HvTypd&VKY*$6wBFOf zB@Po!fQxHftB2Qpv5Ve}FndBX;x2FkcTS+zL;G}M4}wgPq0e^hrUaptbl2QdfA&aT zB?uhSt|Z0}NUbQy*DjqIQ@o?Py3Y%GbcrQ_wN$DkPY)D6Ro-i zD;%Q?71e?V(=Z-?-fjAw<<^ciiWz$u-%vNTj@+2ZJn8lr(=yGS`y@yxa1b7Tc2EiA z7^QR8;!4>AZ%_BVJ;mjI5QkI%2R7h)rEp?)Ox7GqYojjMX}afq|NJx;(obF?QEU9H z9U?B~V0$QbVAL|qj?yR^kUO!}C9qy96nOXADVy2|+}3&3sNsfuMIa7h7=$P^nXsi?(rdroIe+wl!ru986=IZVK*eY6N5efGF-biig33L~u7)mO z3N^>a2MWH2w454w+&c2Bp)%&v6SUm+X7-blxHRwLnDm>o^?I9^|I8mf1KaMKBL>vp z>m9Oc$ggQ;qGReCqdjT5$PW^Y3Bq!)*{ss-!BFna68Mum?Ebzlwt|pkq4h1-pT}Uv zjdZVIu}>>dB2)64D_93Fi1wE%-I4f z5rJ!_lfyqMiy?!b&X0!O6}EpS6d30@DkqW4^spZ(HN6$?W|uw*Rp@b9ZgJs%rW)>M zjM34Ln^JE?TP14!w46wdnju!+}OnugZO=sMuFgu0k3c+ z-dj}@>;Y-Ob5sGlcdc0B-q^||6=z@#wZGSDG^!AcXw+uA4G88MG>OY{Q?TFmiwpRh z&a1DJZT_0KRdU;2{fENVH8=XnLmCeQ(m#;N zpK!;#pCg#hki;EyfMGf3bmZ&Q?zApPSM#(5XpaI0UGvcY{dv^gbtdlR3s_*@p|JI% znf4?+pl_P#tj@Ia#Zylc%ADnR=lXl zoSrF~{|`{)me&Ar1`RlII^#6oCiCc8}0A3g=SS;$MCxB2;Upgz*azK9AFp6aYA z)U8^|nd3r!vl=@1I%a*J_sdhK)|47P^81#_a%TTLI(%X{1T!BlGE<~FyV#Og;i60U zBqq}NmfJf|dmgz|C-sA^L( z;RmrtH9D0_+Im>+`f!{V5{-#{!3*Nd>h$u4&t6-xbF@ijIOA7C)3{w1SbC)4nDtPA zzT75?gb5u)K5gX)+IPKLoK8a^bswyq>-b|UK^7kjYktxZ0O+34)R@Q#?peF1)$A%H>mA^Bnzx-cG{qmL9% zG88jI*r=JpiNH6kyfKe0;qwr)SZi0<(m`c*&M|Zt=>a8dI9zs5kO;Z?uDX6xPo4g3 zz=rBAXxDJoP+?;5-JP?HC33B?&15IhCEh91j_zqcGV@#1EsTp3U!_#uwre(3YOg3= z{h~7acBkv;g_z*aPXT#6P*ps9 z#~DVUQC;X*Zv#I~MR*&>a?@^zIB-JXl$9<-{l1 z|8{on-~~0Pm8VLK*d*GqQNW?i0hpnas3!ScUgd5WNN4kTbk(D@<9obYAsBL!HR&E* z!-~FBU$~ulmMR@Ja>vMZi}qoia;n5=eCvxCbK3pO?eUo?YM691meM)aqC$fPUfI46 z@8`YnX1{A^hnXx6fR;R)H+-psht+62(|djWwNOq8VgmDl=X{up2NOnrRhla#{B)#A zx2b_@Y(M_)GoK+hQ#IKDd>}{tw_sw(=(5~*{No#)I^7*Z^jg3~ZuaQWStmbcsGn*Eb=Fr0B(z*AC5-2m16jx^Xo_ zd8?z@v1!ABoikzG->)d}i!}=z(DHim_-1^)k|OAlm;Bm&Tc=KVn%#W$Xi*VoyzrD# zxX}bxs9Q%Cx@O_LkBOUiAzCwV)ACP7p|uI_;|iZHy~*JS=##8E`^GP}n2%GszjBE+ zAAIriF?2v4Pi#Sji~9p$@fa(why~v`={$8@(q8q$k>oWH->uBrhz z#wC@ev-9qKg+L?EB7J=691z<-VDVm;Tf0MKs#AV7c<*LG;tMCcfD{A! z0aEzjhHKxO*^^m6>yC;F1U9k$I5FP#MXIjWF|z5V+04er&e?pB)2nix{;xoc)d?8j zB&C!x@hs=eL6q68@HsZv9$n%jD1tEb^SGGj+^234?uLIIsZ8We1!8TYKWq&L>Me;o z^Ljd~8PlFk8xgG$F}GA#OQB#xB7-@uzSm;dZPTnL7YA$u^>H!$!%OooOq4qE`8+2^qQtBzKe5+llBa;| zi>lC6$Y8mYE^^TRK4uL2>v!^c6KrrcsxOjBau9mv{{@<->A`4%cmzk&as z>1YU2J%%YR#BJYP2l8HhVpi*n=y$or#=l{A+#i|=_ceukI@GFO0wI8 zGW|by1U#x8yYjwPuFS94Q_an<`ooO8;+$YXt=~rlUiZAI31Dme+OH}wB27#4q9_L7 z1%n}tb%M-!$WCaLrUIHM(C`rVr#u2hgt zva~r~{fo<&@q;RaDT!s#kN1TIA=4&@yL-tGYhTxn6~SgI!?hsS$6*l1p&!HdrB>@) z!VoFydXUk>iGsiARfllz@1q1E{_>fcwPCl(HjHiT(cfOZnMrLykYy3Y&PK#s=cb9s z@Tilgx3hJ5S!f~-jgrg@U<43K4B_^pmGyGeh+nJR6sqoo7c=>C$8S%>)O8>+Z@?1A zlgA)MBU@m0cG*i(^87IsKmr_i;}etOP5tui_bh29>f&7YqFr9akj+6h@oV+dGSE}1 zW#%2GC!>`&R_Cy%jLIqSg`Lng-ex1c*1llm8fVoExu)9lz54O12S&uG0_tQfAJvTU zGEzi55d6k^#|^0esw&vcJ5S`YHYi^_-4Jw{#)%(ulc*{AE%FZqNUdgQY_DHR#0b3o z634Hj@ME8mPegbJsQzd{d{AxL)b~%uxu*tZ;vBuw-10(fi9r-CIDI^T?DDq0D8vQx z0V)Z92b_;!*YMdiTlISy=Jo2coIfQ*NSvRfxl z3j~I)4;J2T+frsE$GZZkESoTp)y^?S;I)Q~@QxQH7~)Pv#}#==VZJ3?Lm@GZi+8q@ zWOpd(ut%OEuOifw6aVv}Ythr^TLd}*sqFddlCT!SH;y8EXI9gHqsOV%7&RL^(*Wj! zm||fwz*}x=_utCA;*kbo%p|YdlVK1bnQqflG2mPJhX7`6vUHYhT9;tANu-bKyMPUo znO=o5NKmatjqfC;%ukH5+&AjFxjd}w)+-8UA+t$cJ^KMgSXt8O(}-Ov*glg``Ir;4 zG3c1gcDm%M5d5pb%sQy6i5FBH<>!8OXSsh6Y}cVt;Z$SJyw&v4=XL2Lr|Vm_US}wv zjXJrF&^Wr*lV;HPJ9O~X{E(T_ifg}sh*7`962Ydt6cHW_Bm`|%VgC$?KrE?S>n4;R zD~bYvrm=O6Zw`4lTAWhzI)~Sy$6$4`gkSmAc#XSLP=bra5ng9$Uz-Pj09Q&MP+FTqh;d^&sNa5E$i=e}i$oZqE18RPqp=hRD&je>= zp9um78E+z*-HLnGY^7FzSvl{j@?XWq)aSCm1yzrgwY-1x9bwq zoxm6D`&aj7_D}9*>TK_(t?>+4r1Mmp)7b$*#q?;luj4ExbGDe$Q+hgR)OPb@qo=1Y zveAls9FFbEbG1(9g#Tf|%Q|KexZ^%f% zJ;na$$^~y&mViJqC%Qk+x^Bx}YpD7%X79YRkr+4Y-g{*l$usMoE);5eML`B-r`;Yp zq;t9chJOIx_{FwHO8K8g{3j(7F4D%zVjJQv$ zEed$(<4m(P>ymLPhxKQJ&p12xwX^vyaR&ounApycOU_Od9s$w|1Qb?HMSj_z7{6=@ zAqFNMcJ6#?8pp4tV57g++&8EpyK}T6-g#)Zu73$;o|0 zxxdHd!m>?T2-$R1MzN}qugBC|iw?;=B48f}E(hxfc$t1*8NSi9rut~5dcvGboc^f% zk%#-^Axq5CzVin`I{sxI9*MP0#lR8X>=o2%dFkW^kO@cAuKECkhev$e!htnf23DFN z(?82iVICMX_J+3_S+9Kd5DGj27g=p5?yRJ5dfw{>@@Nz$>tsRF0)Y`F*z6}Ry7=v; z@4%k8;<4>9!924`rRoAVEk_-i`y&s(JSj|?deNv&X^TtO-8YZF_9s67>DqnF{?89H zU^kY7ay~|W2*2;d?j{~5dPnYlO0mR2=Q4O_zNw?s^0|Yc;uCiV34>o{HGXYvz8+XLt`KeH8_8zq&)BIHhv z*flLq^y)M~yEj7g2fx1wj@Jc(0j70)FMZ4IqvBO2miwJGOdyLV?Su7p-XA$CYSky` z=^_r~N)$+69!ajUc%qL>4V_5ERKLI|#0ULsHN@kcI;1<6o?x0<6La6gqrAhXCJyQW zE&=BT_z zSTlx;TM@$aTFg}Eo)Bm8G!2rX-=3W6U>SWGvu(49qql{-UEeW}%wQ=Ai zG+-Oy>%i6_a@R<;&j)PvOYaW0ly0=@}ZJtm!_`=UgZCk{>4jaTm$6FGiSWeavm_OerSE|4>@XYRd_xhX)b zd?Hi4;`NgSK%|a+AfCs<3XiQRHVb?w)lew(Rl{IqLy$)our>vP@nS+V5wXK9S!jG) z1E#0YV{Wj&T7|U2Q_~DHYc|chm)TMU_zMXrJ&(r|@5>K)j*p2;R$(2rh6k(5vAqd0 zL)x~hJZZdAMr}o$CZ)=I0N2_XTrSHsj=?k73Xb)>zzDT;WSp%+f9~}>Gv45zRx+xV zQp@e1#0tqC1~PqYG{QRuY$@~^A;lj!Yw#~&oo~!qR%8!m!(zL?K=0l=Hm{5kh z(6Hc%5QjzudXxB3AIWQ85Tj^8x`V|VLC+)^u@_@EEaLpbot)VhEKZ-~GKv^eP@>Ln z8Es)WNV*9^w=@RUB*q`FZ3c=8Jp3YQ=(Vp?R2t%+%b@bsQkjwQ!%FeR{2P~RE1xt} zH!h@SJx_X0iZIJrm}1mb2#9V}N*bts);FfBbx1=O?z9n)3@(ESd!&btDVkWR=ZMU8Dky@CfDQ5Dh=ow|fPa%)Mf^CA>v3o&k_`=yc zXH~Qee>^S1?}t@4L*Wg)gc$8izESoQGSsOxEoh~<1EF(OzP95ItEcjIaSs*PQfe?# z%{QR!oh7R#e;NB)e(0N4J$&9j@#Bfx%qrdL+K~4>Pan*3z+vMOuxf8u=U!_zx{Z9d z8CrJHU;tmHN3!s6Y+rJ|V(EpvO%7UNL5XzlV#@j~aDEBQ?P&ebDEh5O2~;GL@@?}r z6r(-bc%)(6(V05m)yQw&kD?S9Tb|QY)%ZCSFj(hM)HAH zCNM0uo!P>I3ITqQKV&YN1Y{WezyE-4>7J`4kmH3qm|JH;xYn2@VJN?aP0Y=b_+;Y= zn~_r=YPg>XM6jRdz4r|>sx_&l1;dilo310YKcpbj3rC9_5lxW>C?n;fxkMoZ5uV$O zw0lcnRojewOY+=lEVWZ6@0om&zjIZ}5uqLBmF%^^_*Td)8ky*0^~-2k=+)i?TI78L zj)$1wrJWE>@XT7I1-fWXAjPvGFo~Skr6IiAg9nPKIx(F!1LRxsTFqngO$$A3KUn=` z5g90?+kL`PlKTRqNEa`wNHr^J_R4l-LPln!hS{Apuv^f>9PJM1u%FewTUX%=pB6TT zibm(8#zPJ3yUj{0?wk0DZ3HBGHs7HIuPftyx1{=|GgUD+Yr@dv9Gg+jYn5p$679ZB zVc^#GEW6Ujoi}RplFfH~w~p8N4k`Uo9B49ZWLFlSPcoN~wrXzd8NE>i+!|vu%gfPD zto&1$k=Grgh6?P5C7b8v`)-x=8+DsZKxSOUc;9+AE&#)9fnL|3K$y~_y*I11IF5U? z>b#EJh*oM&OCJsP2~tG*ZtW}T*U8ns4kzcuG%85uvRkz)x7xFj*<-WmLhxMgi>zd* z+dE}vjtiR+VaIuw;$1@JWosGlsF}B*5-GjwF+dBX>M-T?df-3l#pHR`orsWI3+Xq& zbD73FkWux&<7?)90041-r%F)GABuN=<}t3u7B-`7{&v`7M}NIO?!%_VY=bE+R1VQp z@5_XcT(v)Jn$_ecy9aSxJu|PR=Ld?%jwuhxwzec%O@5`7Sa&><^_VuWaK5_<32KS*str z9S*kpO8|KySR?>TVN}~~vH@2rnBUz+g~vtGzE zc9hf!-M@BD6F~HzkxKn9IyFH7^9__E@*kNIsWZ=MyHlo@3@zzACe4B&(^2j zpoMxJ+c2Spo`sVSbKHm^9yv!fQXANG&YC_L{#86%pU>ua0_$lDUkl$K0&ou{11 z4DGA|N`r6NOG^%Kc7EyOCEFRHT!+e*mr60RV*ZlW(y|5Y^ z6TISu)S6f4vf{zEjWt`WKyuFiGB@o=_B7ISfpJc9fc>EcZ|1cm;f+B1WCwsg)C{eU z=m>AY&I1yt^4*AbqCT~MDFdjx?>sOF|6#oxOPa)1U=g$E>;Pl8Rv`6_nwH>)O+3nV z@i9Zb4*ANM{@tve_4}rOC?a<{bw$YJBf0uNvz(JaU`!uAer1cEGvW9DUatQi_dt~Q zmhRWoP*jCjw;zv!rtQL}^f8vx@o)6E>B)=hgauBH3sJPFnLA#hG>zk%_4A}z+j{S( z#X3P=Maj-(8RtxNfAJiCt?JX}t z_i(f)5RU)=GbQ=+q;D6;rJEN>yR*`s$nNP(K^kfN{;opwHLL9|ljq3KAc#Z&s5Hlq zW5Kc2Wjw2cBqKvMi-hgf2k`{pLLbtb67V*MM)#a1S z4>+hc2Akf)++N)SRVZ#q|A}ZP&Q)ipa@v zx+CiM9WOZ=;yA5--u1i#(kuIYh*gn}%PQz_Q*n(Pne`4?HXSX+2Rj#JeziZUNBUcKV+aNOH|%q zVyfl&cc0&Tr=RA_0&CE=ecL^fM?n!lyXKb=g-_(v4k5G-x&VM+yX))k)3x}F9-v}9 z4Ybj?LDQ#j0dT81_h|d4?sy#sy88_vgCYk+XnXj7KVJ3#0`8TGa402E_j2TL(7sLH z@j3$3odxRduKoYi&3u#A|G^;E!8g0@esGp{ zcRoTxKPYoX_wV75K7c&~5Ev&`yu-)o5H=X=wZ;0a8)nE-cfk${2J7f7kmg<6gA|Fr zf9Li<9O>INl+pb%6LfdqQkrM;Tf?w#`gzvC3~MX;IL3u4{%Jy%Gxu`5R>vL%+TDv4 z=fW!d?`TGX=0igROK~Oufz+NsJOE5?_`j1I*!`2z;bE6Bwtmn9vsLxYp*&Ov+_0UW ze$-oiZDf97Z41~#DDz+KM^-8z;GJnmi|d4Lg&5Kjspu90%s4ab`qe|oTZ3bAUxC`b z4j-5Np~6dp28xQq1ggvp#BgMF@LzV4)R}jksSzDl09HYcXAjK1|MP}#zz+eHi#H1# zdcXWR*lU+Dxv?>jw8GIP0vQ-Mj=!9_4=WytQ9xh--jF?n5IY#8MMLirzB9ooZYAA4 z3}7H%5cEjgM*TeBOyyl6@*Pw(+x(zM2*GKv@{ZmAu|WC%qhbe-%$X#|g-tF4MKu7% zicwaP27qH7OyoblD;vBK@ZB#(g!+dxBmk9lm4BYkAJ96JC1}b?@>+R~Kd9z_Ub+i* z`A+TU?v#NS7$pG3FA%6^|6X{jMp#q*S#RbA?Jt*G7s=@M_}(DuAli@r-y) zdgR6uASX&Lrowl>g)Uh^$%8)q5w z+^C}Phu*6ELCM<)tvFIWFr?>mV?VDXdp1WrX)NymW`~30h~7t$$JqN8HO|-X?P7d2 z^^0t}RE7_AYuhf}pC?It+5m22-0=Rz8#G;>9#T5k*0=PebPyPY8BVN~VkuuEu#ys3 z2eZKJN{3yD$aq>5wnBCF@6gCTLNGeqcbgSoh{Y(3Hvs~BSMXo|(Jj~G3IKWrzf+q9 z)WC@1bP1GibA(T68h|&v9!^XENG|?7)+@3y4q+czX$rK9r$ucCPP||8lbhf8*?n=I z1VGmUxBoV9eO^9Poj-*6XKJ1i6NHLlF~E^Scj;do0DwlE5rQ+cRCQ)S!I^GS9fqcD z^ST2-G5H+xe19rOUY0cQ*8?B|)&=QS3EcoT9mCYSC4Rv0E=o^%>Fp?>$2%c}xvBvW zLQ9UglGr+MI%LqO)}q)#gQk4&-*#dHcePZ0ExfNWUZwf?pbzlAdwz(l`vTJl*dhRJ zIEVIi%ivshdt9vcdm#e)<9mULzp6kAxY|i!kRti-{e^F{JS6z_n@;oG z?S!IT_;FxmU&F_9Bsf!_(zXQk7hLxO;z!q;M)jD^lb{|TEZH3?N(V;b^&V`ig?}4m zbOUT- zkU(r%GOiBs3ZW*0Z2^F}2;b4a&~(qv8hg+96^&?vo2OrahyE=y^`74?v(5XT%FMl& z{YcfUHGP!FUx2!6O8IJk>Iu-G#=fOfe}VBVP3L2q$|0lsN5$f4TZ_9g@|x0Hwe9+( z$0D9E5MfE=pK3Ale9h(h(B~8hpc11t@UqZi2iq(o(9MK>mh}!@zbeb zx4(dU7m9rk{1E))RI#&W92WOaXCD|xb2!yIRZxJUsDF!0x%W7=`nQH+`a*cK*@yla z{hozO`Lf_3t?`>boAVb)9sfKSrg3P#s|>n|g%A}1=B)e+$S2JqcEFc3s5(qP_y!#P zPoo0Q`1if~67B_n0OozkA3F0F#1B|o^sXyUU8^+%#06ogz+@MN z?F1@7)fK+^H*M;50F1_`X3?28#`sU~WfbyurJXK!24Fs*{{8uXk25duvvq7LEG)&k So)C7QdegvMzg+iT#Qy+T9NNqP diff --git a/sigPlace.java b/sigPlace.java index a05dc6b..4eed7e3 100644 --- a/sigPlace.java +++ b/sigPlace.java @@ -81,21 +81,21 @@ public class sigPlace { final static int TRANSPARENT = new Color(0,0,0,0).getRGB(); public static void main(String[] args) { - /*String fontName = "sdvx_largeScore"; - String value = "301"; - Path f = Paths.get("sdvx1.png"); + /*String fontName = "lovelive_score"; + String value = "325415"; + Path f = Paths.get("tests","lovelive1.png"); BufferedImage img; try { img = ImageIO.read(f.toFile()); - Box scoreBox = new Box(476,1075,242,57); + Box scoreBox = new Box(713,401,232,50); int[] arr = img.getRGB(scoreBox.x, scoreBox.y, scoreBox.w, scoreBox.h, null, 0, scoreBox.w); BufferedImage newImg = new BufferedImage(scoreBox.w,scoreBox.h,BufferedImage.TYPE_INT_ARGB); int width=scoreBox.w; - final ColorRange TARGETCOLOR = new ColorRange(160,255,170,255,190,255); - final ColorRange SEEKINGCOLOR = new ColorRange(26,255,53,255,80,255); + final ColorRange TARGETCOLOR = new ColorRange(240,255,130,150,0,10); + final ColorRange SEEKINGCOLOR = new ColorRange(140,255,120,255,0,180); final Color FINALCOLOR = Color.MAGENTA; for (int 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 literal 572 zcmV-C0>k}@P)rAJ3=K^JRkX$NZ)01AIT|qwZtA zsP0?AKUnEsrlY*Nt5fbRVR^+sRnH6W>yVqbu(YbYqGQDSI^^aw7G{fIo{YB&Z|snp zQ&@IX>hp~3sKAX5xtYeIvr?a5$$S;=bjjUIEKsxlvuq`9MKUv@Hj=ml7UZwvw7ORYR z^z4ZDMly37i`A8Pe7+;z8_CQPma8-0*s~+v8_CQv4yYsF*s&|#tn`=Qh>Cn;eph^t zNM=fKMClu|yW%@UGE;^_YV?h{Gt9ml-$Cgw#W8i{_xBf9`EJ~gWTq6y)R}jDmU-Td z`;p9)w_YosrD^3w+6{m$fgFnUBVoi)1E? zJx4P4k@!+)GP_D=_n+VgyOQ}Y1AeR-+4X6ZzlR@aR`z`wzQ+&igt6Nj8sRAb0000< KMNUMnLSTX|#UQr; diff --git a/test.png b/test.png index b6a6c6ef39bc271a9243209386572052bf2b91ef..6f15fcc1aab03da92a7f4b4a3965edac8f5b614e 100644 GIT binary patch literal 1049 zcmZuweM}p581CFMmX5^*R`)?hW7xt3W5h5qtu292keIa2wO4hPibO6>ZFhn7Dy7AJ z)MQNx(FL~|4rcoYkzxxWvDn)v-{>;S>Le7`>j@}#O1T4Dd%)4wgC+j8Ki=ofo9BJ= z{__0Z=h_?csssFEd>)T?p!&6nH@Qr5@zTD%90Hj)ig>);zgJh3DUCHN!Pj-Wt26hU z!PCEVV#Bf9K=Mam|MgvejAkAE>B|;N`Mzhb9()3AUbD{OwEtDg79UE>nLN+$1m1;pdr4=y-*`aL@R0MY6v02GSAzHxQviD0z1ox zTVcq{HyIo;$hhiSOm3-CA~^UVK*%5bkd4fQU;!f!mfBcVXyBN+ZR`s8G;FB{_ab@T z2Iq#L5%3kRx?zYplynYitrE=aT^y?yl3Vu!nW8EkQ5h>Fd;bCEKcN?>=QgV#Ki}kI zrIYu@wu%5lRj&x?!g9Xx+&gE5?F*K}2?O)!A;t*S>y)WeE;#`*m86TC);I@o>s>6F zXk;W=!gK)@w!%uxsXx70(7&wj?!usHZFGh5f-g4>WeNX%fr?xzQAW1;p1vt*DZ}b^ z*pt2?zA*Nf#hnc$O^Tqtt&266Z0{Y&MzojOjE7-yKdTDQl@YplrvuOZe>h*{e@a+n zV|NrW1U~|n5Uh-7e?)the0^RN?{rE1C4tgh;fpr5J;c3%a?JML7o%4Kg{ z?3bv`7JWzho#vZRY7eG{=F+ zE9jZC0#i?4H>%Ijn-=Wpg)auCM5Sm+xwah^u%P||_yHqm>Um!wNQ5zh@mv56be@rn zjs&JD`vdi#nu*k$xT6b0%N45Vx1*f_skpw0tJx#DBGGS07q|Gno;%`Dsc+&|aH~M1 zaG+VJNW60MuLfOl8hZ8Dj)3R(@(G_h2tF1}7YFLJpyzl!oPdl`UEJ-Ui#OFlZ#II3 zTA1TIKaq2nyEC;@pMi7-{k9>5jB@6ncSJ_W=I3*zITDn_t_9AWVGpEFFeK)SRnR9^L0TW%2Z>HM_wN#;B_3T|Y) Yd*Urj_W3hkahB&*%j6aA^7k(P2O$qj4FCWD literal 1154 zcmeAS@N?(olHy`uVBq!ia0vp^pMcnsgAGXXxR+gKU|{j|ba4!+hrE_lCt)@_vsOT#a%v)<^f`gT^Mb^YR-zCv*|qHlL{SBG5Q z7yfwP{j9plE#mR6)$b0;iEjNIy5l+5-HR#@kA`2Iw|j%T>)RUEcRRekn|M}y4Be8h z_HNy}zxB;G!(Z=H{r&wJ@3_O3VM8sD1@t1Qp9 zKjsHg>kHmZJ(v3MUPs#71AMDzT^2dw-d*K-E_wd^f_F2|r965EmpItIYJu$0&+AL{ zgv;H*7G9mRjKeO3^{vH+J3h~i3(H+LmnF1!q?xvVY+RLbzVUgQ)%?!gU{|=9thVgv z5BA*6XJdZ(r_UYPi)&sI-Loiop+L#+}#o5lBFambZ(%;(RR*g>u8 z$OzjkDX((+{<}@z4-^~EJ%8k`;MrS^vP!eA<{UYG;!{^`|6cizsIHj(L2=Wbtmnz+ zl;_QUS)=x@FXNitn~gw^v(>cdtiO|e4Pj8LZJ6nD&tvQ-F75sQ(Z^*o8>$XprMS9j z?_?|V7DXZ)CH^hq>KrveeS7C}yGJ)W(s&_0+q=rrdgJL;&rIZd`sFXKfd)djX}Wq@ zM2o@ELNukT%HZ;sgk!@S18t`2VLyqAAC-)sRoll}2yU@$|2W`4;xk#AAx z258T8*aLMr-c5W zb-!Yn&);?3znJS=%*7rxM*Y8izkK^EzVZFyox0(*&vQ_sf1O$>+>c1JP&o-FPyvXNbJ=u`K52{FaHE4?z-*Yc1nE@y}a-0 z#{Up==H60eE)Tmnul(Tq882&qnP$Itb;`qgT(>^@{m_LNTb|MGbEh`y_g&uo>B~NY z(*L%1=a2mbCVAP9v(v2Z1M^k-t9PFVdQ&MBb@0I_;qi2wiq