From e1a93e14fd65ee9c848edafb05d6f0948959739c Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Wed, 7 Nov 2012 08:33:34 +0000 Subject: [PATCH] example how to create pptx pie chart from template, more tests for poi-ooxml git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1406496 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xslf/usermodel/PieChartDemo.java | 152 ++++++++++++++++++ .../poi/xslf/usermodel/pie-chart-data.txt | 4 + .../xslf/usermodel/pie-chart-template.pptx | Bin 0 -> 55297 bytes .../poi/xslf/usermodel/TestXSLFChart.java | 134 +++++++++++++++ .../usermodel/TestXSLFConnectorShape.java | 40 ++++- test-data/slideshow/pie-chart.pptx | Bin 0 -> 55297 bytes 6 files changed, 327 insertions(+), 3 deletions(-) create mode 100644 src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java create mode 100755 src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-data.txt create mode 100755 src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-template.pptx create mode 100644 src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFChart.java create mode 100644 test-data/slideshow/pie-chart.pptx diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java b/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java new file mode 100644 index 000000000..f6e6a847d --- /dev/null +++ b/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java @@ -0,0 +1,152 @@ +/* + * ==================================================================== + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.apache.poi.xslf.usermodel; + +import org.apache.poi.POIXMLDocumentPart; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellReference; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTChart; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumData; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumVal; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieChart; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieSer; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTPlotArea; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTStrData; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTStrVal; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.OutputStream; + +/** + * Build a pie chart from a template pptx + * + * @author Yegor Kozlov + */ +public class PieChartDemo { + private static void usage(){ + System.out.println("Usage: PieChartDemo "); + System.out.println(" pie-chart-template.pptx template with a pie chart"); + System.out.println(" pie-chart-data.txt the model to set. First line is chart title, " + + "then go pairs {axis-label value}"); + } + + public static void main(String[] args) throws Exception { + if(args.length < 2) { + usage(); + return; + } + + BufferedReader modelReader = new BufferedReader(new FileReader(args[1])); + + String chartTitle = modelReader.readLine(); // first line is chart title + + XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(args[0])); + XSLFSlide slide = pptx.getSlides()[0]; + + // find chart in the slide + XSLFChart chart = null; + for(POIXMLDocumentPart part : slide.getRelations()){ + if(part instanceof XSLFChart){ + chart = (XSLFChart) part; + break; + } + } + + if(chart == null) throw new IllegalStateException("chart not found in the template"); + + // embedded Excel workbook that holds the chart data + POIXMLDocumentPart xlsPart = chart.getRelations().get(0); + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFSheet sheet = wb.createSheet(); + + CTChart ctChart = chart.getCTChart(); + CTPlotArea plotArea = ctChart.getPlotArea(); + + CTPieChart pieChart = plotArea.getPieChartArray(0); + //Pie Chart Series + CTPieSer ser = pieChart.getSerArray(0); + + // Series Text + CTSerTx tx = ser.getTx(); + tx.getStrRef().getStrCache().getPtArray(0).setV(chartTitle); + sheet.createRow(0).createCell(1).setCellValue(chartTitle); + String titleRef = new CellReference(sheet.getSheetName(), 0, 1, true, true).formatAsString(); + tx.getStrRef().setF(titleRef); + + + // Category Axis Data + CTAxDataSource cat = ser.getCat(); + CTStrData strData = cat.getStrRef().getStrCache(); + + // Values + CTNumDataSource val = ser.getVal(); + CTNumData numData = val.getNumRef().getNumCache(); + + strData.setPtArray(null); // unset old axis text + numData.setPtArray(null); // unset old values + + + // set model + int idx = 0; + int rownum = 1; + String ln; + while((ln = modelReader.readLine()) != null){ + String[] vals = ln.split("\\s+"); + CTNumVal numVal = numData.addNewPt(); + numVal.setIdx(idx); + numVal.setV(vals[1]); + + CTStrVal sVal = strData.addNewPt(); + sVal.setIdx(idx); + sVal.setV(vals[0]); + + idx++; + XSSFRow row = sheet.createRow(rownum++); + row.createCell(0).setCellValue(vals[0]); + row.createCell(1).setCellValue(Double.valueOf(vals[1])); + } + numData.getPtCount().setVal(idx); + strData.getPtCount().setVal(idx); + + String numDataRange = new CellRangeAddress(1, rownum-1, 1, 1).formatAsString(sheet.getSheetName(), true); + val.getNumRef().setF(numDataRange); + String axisDataRange = new CellRangeAddress(1, rownum-1, 0, 0).formatAsString(sheet.getSheetName(), true); + cat.getStrRef().setF(axisDataRange); + + // updated the embedded workbook with the data + OutputStream xlsOut = xlsPart.getPackagePart().getOutputStream(); + wb.write(xlsOut); + xlsOut.close(); + + // save the result + FileOutputStream out = new FileOutputStream("pie-chart-demo-output.pptx"); + pptx.write(out); + out.close(); + } +} diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-data.txt b/src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-data.txt new file mode 100755 index 000000000..40b6959c2 --- /dev/null +++ b/src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-data.txt @@ -0,0 +1,4 @@ +My Chart +First 1.0 +Second 3.0 +Third 4.0 \ No newline at end of file diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-template.pptx b/src/examples/src/org/apache/poi/xslf/usermodel/pie-chart-template.pptx new file mode 100755 index 0000000000000000000000000000000000000000..33d28e154c47c74b51b031618267151a6d08a772 GIT binary patch literal 55297 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πWD$i=@ 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 z pieModel = new LinkedHashMap(); + pieModel.put("First", 1.0); + pieModel.put("Second", 3.0); + pieModel.put("Third", 4.0); + + // set model + int idx = 0; + int rownum = 1; + for(String key : pieModel.keySet()){ + double val = pieModel.get(key); + + CTNumVal numVal = numData.addNewPt(); + numVal.setIdx(idx); + numVal.setV("" + val); + + CTStrVal sVal = strData.addNewPt(); + sVal.setIdx(idx); + sVal.setV(key); + + idx++; + XSSFRow row = sheet.createRow(rownum++); + row.createCell(0).setCellValue(key); + row.createCell(1).setCellValue(val); + } + numData.getPtCount().setVal(idx); + strData.getPtCount().setVal(idx); + + String numDataRange = new CellRangeAddress(1, rownum-1, 1, 1).formatAsString(sheet.getSheetName(), true); + valSrc.getNumRef().setF(numDataRange); + String axisDataRange = new CellRangeAddress(1, rownum-1, 0, 0).formatAsString(sheet.getSheetName(), true); + cat.getStrRef().setF(axisDataRange); + + // updated the embedded workbook with the data + OutputStream xlsOut = xlsPart.getPackagePart().getOutputStream(); + wb.write(xlsOut); + xlsOut.close(); + + } + +} \ No newline at end of file diff --git a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java index 7ff45f5c8..98240b0ff 100644 --- a/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java +++ b/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java @@ -17,9 +17,10 @@ package org.apache.poi.xslf.usermodel; import junit.framework.TestCase; -import org.openxmlformats.schemas.drawingml.x2006.main.STLineEndLength; -import org.openxmlformats.schemas.drawingml.x2006.main.STLineEndType; -import org.openxmlformats.schemas.drawingml.x2006.main.STLineEndWidth; +import org.openxmlformats.schemas.drawingml.x2006.main.*; +import org.openxmlformats.schemas.presentationml.x2006.main.CTConnector; + +import java.awt.*; /** * @author Yegor Kozlov @@ -106,4 +107,37 @@ public class TestXSLFConnectorShape extends TestCase { } + public void testAddConnector(){ + XMLSlideShow pptx = new XMLSlideShow(); + XSLFSlide slide = pptx.createSlide(); + + XSLFAutoShape rect1 = slide.createAutoShape(); + rect1.setShapeType(XSLFShapeType.RECT); + rect1.setAnchor(new Rectangle(100, 100, 100, 100)); + rect1.setFillColor(Color.blue); + + XSLFAutoShape rect2 = slide.createAutoShape(); + rect2.setShapeType(XSLFShapeType.RECT); + rect2.setAnchor(new Rectangle(300, 300, 100, 100)); + rect2.setFillColor(Color.red); + + + XSLFConnectorShape connector1 = slide.createConnector(); + connector1.setAnchor(new Rectangle(200, 150, 100, 200)); + + CTConnector ctConnector = (CTConnector)connector1.getXmlObject(); + ctConnector.getSpPr().getPrstGeom().setPrst(STShapeType.BENT_CONNECTOR_3); + CTNonVisualConnectorProperties cx = ctConnector.getNvCxnSpPr().getCNvCxnSpPr(); + // connection start + CTConnection stCxn = cx.addNewStCxn(); + stCxn.setId(rect1.getShapeId()); + // side of the rectangle to attach the connector: left=1, bottom=2,right=3, top=4 + stCxn.setIdx(2); + + CTConnection end = cx.addNewEndCxn(); + end.setId(rect2.getShapeId()); + // side of the rectangle to attach the connector: left=1, bottom=2,right=3, top=4 + end.setIdx(3); + } + } \ No newline at end of file diff --git a/test-data/slideshow/pie-chart.pptx b/test-data/slideshow/pie-chart.pptx new file mode 100644 index 0000000000000000000000000000000000000000..33d28e154c47c74b51b031618267151a6d08a772 GIT binary patch literal 55297 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πWD$i=@ zB-;XRnhUUpDXoDK;y)9|I~V9H05e;&V&ObuZD7+;lrM&ha%57!DSLbEFj1U#fdE9m z16kFCvjVzZ;PuyaDu4iNZejOX=RE)b4t^gtKtJD50|a38h`9g&ta1l`KKBr9fa5#c zDoehPnJLSF0@TN5y^*3r4ujm5&y4BD$hBbLHz9WhF-E0jkIy`7B~(W70RzWv^HRCxiqA`lLZTS| zSr%5vi5BYJ1`JLH1us| zF1_6$%YfsPzhd?m9}h{}45#&~%scW@yykq%@3=C=-)ApL^P?_en@ z3I_V(;#Uh_4*b4YSA%#jYYW>Pdn>}fMnULVXMH%~_Q|1+7|Ul4bC4U$IA6C-IF-na zHnp14x$kE4C#Cd37d7zBYG?1}jZw|A{*W<`MRBU5xqNgAqsxU^g9h9Snn&SI9ZJ+i zZrCSy7#uxXZAw?26XHdlWu5A*Dw0dY86|)l`m{&t=F(K_yB>m{M_>AU-0Z&cV}xqz zsHfooyQw@va-mXwM4YZB+I-F!KzGdZLM)o8fpk#spz=7z*T=5@zBq8;2@Wju6H)3A z|8qq7qZ5s5tUBz7A$rNHz8grno5Tjj1di4icatFKt~R*w>&JlSugs9<`*jy7HFPC< zPI`}I;Y<4B6(=pxCF=={7rx#d&oR?ZZrC!9unDP}$0E=kW?D1G4vEGcxC)=nomZe} zRm}3pH`6#U*1P1@ZbW;(A6G~ z#M>LOR9W?OoPpWE2$u9p8|E1rW`0MSKH4d_r~`x7UiapbyUS%aR?eI%syL(8gf; zCASy12h`ISFb8A~#?Z=37mdm^)#b7IR_+tG>%m%0iS5?2=9rz_vd$6CAPPVQw>&V7 zL?Y*Ib-0gk$SX-XN@bH{H=@Fg#1rVQBFC?JbkP(_i|}~j60=S-MY68jW8o1Q=`Iz- zkg2v5iIWHzRlKmY?4Yt?;-69ifar{O8<)eJHk%-8-9e?UfWE{j^ZsbRHIMQbzY~Fm z7ngPNV2L&VoqFsaMlyc}QeCewt`K?xCRSS&iD0O-Hv*@gv4y8yRB;8F)gy${K@`Yz zyLk+;=}fs6_h3U3Jx~@y0e+wqQB*C=U9zH9yyS^<_)mJFk)H0*Gc%& zcpfMipV~Ssht!|f_?$w>R7EH2SLE&=AB;~~9Da`$r5vy)LB@f6dR!J`&Lmw}&~U(l zhElo|EL~zNEsi*wdeDjw1z4p38d;@hE9I#TXjzF*T`HfHSR_4Okm&FRpys@SHp@Nz zu!H&%1h>}#vgQ}S#E(|>@!4SrvdG=-?BOR&A(x*_%na-X#)>!$ZuQT@MfFUvzaBS zeWhD{?d)7AL1J^7>04t^Z!#}xGviKdlxJ?T_>PfI5WGmr<#N*T;Z(HkhP@|0jfxrYuexp-QI7x1^2A#AaQ~aFvH$CqRLHrFcM9z#{4p z?=%95(VlU7jdyy6rlP{F>sqk;uWTN6Ug^q{-@iK#pz&8w-*U*Av*cxF#+Y`RBF1NA zpj;Xz(GlDjD?c3Fdn_4b_@yGveP#qY3p|G2$B!S^Yj(Nj!lT%^`7Z+-9cQk;Z#Z%B zX1g1@wyWEU#vTeh`iQ=spKf+}zP?Psm@V8*-JdexA9pNED3&3#w{N8M!TF#G$eYKF;PBA(QuF2c?sXz5i zNdkllmC{~UT&zNpp&NgUz@DbSa9nCPG--15Cmj95U*^p=LnHQs6&9TwMtt&dG{i*F zYMcgTph$t=z@EogsEs1kaQ)T((l^JwQ{z_96==IYz7e62EL@#v3YT!F&0#WT^mP*} zClKmGfMrk$FagzSKngigX#1cJw5LEZUz+fuP=vF}v2Hq)A*iOf8zX))qVnT0Y^c|C zk-a{?2S3<)ERE^9%FbSrv-n6MMNUlKXtCq-tR;%fvoMzvFv5WKyy=U)iX&^z$kvQF zcw2Q#`IvF1W_;}k{v z>J_AN;C7V0x`DnVR0m2S$aOl?cqW~RLXdNoH)=OD3Reun7~lwXt68!?(RYQS{hr+H zxn-24VbG*?xmCtloj!1g^C8iHUTN`hGjPS#ZB2Grf+=zt!;?L;r#@N|tj38-gKNTT z?#Na%{>GS4R+}MHw=Wg5nz(_Vb6Y*WQwf)NP!w5o=vFi29%(u+M25ZBK4HE%k?K$d zcWJxH=+D)_8-{G`(^*yHi*|yZITJHECQ)o+Bv+S`ldkIh@gw=c-21DIqg^oYQO7S# z46Ztlq0G`n8}?S0J{WQrOD^nXoyGK}OcQF@zL|Pfn+VsF#8wCJWjyMY;vqePEPS7A z!8(&E8U*F55(M3Yc98*AI-5n4F+WGLBT5Egund~}1(@6^BJ6y=QuvR*4aLhm^C6B; zMxpm#U=)9r8^$$sY<;? zmh(<#6)+c=acW|uql;~0gyaS1+a9EEkMAA4b?zAriD>_tUvk*wL^n`XI}~le*UrvD zcd?39o24pluUcB-s#);hf4&Y$Co^~V7Du>OL!MS_fWp(pp-eYoFsp;3Hh-4fD$RF=OOBgRUs7?=?l$)9(LlwNw6NT0l=w>ubXNuV-9?$Da%Q1j zRQrntjK#0xTtsTfjvha%mEiFke3ptAL; zJWaM}q0Ht@UTCGgl3Z?cxK@nJ6pso4So8q(p+zwi*#~MxIU6(JD8kpDV4iqa81OTJ z=cFTdCJUD)=^@Ou%Lfk;cio-mHtYPTdnOeQq-kh1{oU4g7Q{J`p?dYwaNDoSvi zq%cw$ipUsukM$y}C8MDyc^1$f0ga{d&{A;+AtYhgEHzSnmjHWvl49nHCc84W3lW5r zo|xjVV_~78ZJK&X-yjXOXqrl+2(^Ob?mJ(Fatw*ZafyK2sTC!x$!128ZTvR&r|sk&YvmdiV<&m*0A0ToV^U; zi$?Q|!oPK(of%Nm?w!9*q=JW>FPd%jN^E<0F@sAej2N%}?2f4`v9tn_Kfb0HoPvJA z9GIflrrLrD&bxFn6X;H-Y^@L%+C^fOjD59!{yj=xmKZWKHV*e;Uh5l+rjqR(X%RXf zW8ZR=83e-)*}n9!cDL|=F;|MmeNl-A|HdL)4C8Y!5jC^A1FH$t>Vs3S*Y*2(Zjs(c zhtNcox$;n5V<(|pOofhb`oN(0!VdG4C@Uv1s1h99{cJ$69zziCfB+=^uN@ixkpcXF zU-teZko?)Z@!zQ&L=5T&kR2ER5R3DlGoe2vnrE7;QGZS7q7!^-GEC8}JVD?pnql2j zGqJ!PK(O1eGVWE(14*7HJ;5kn)-y1$2W?#g)pt~Vh;n4>I<0>wg z;5pNY%vLQjyG{xxd4;0j_xRLtz@_?TA4{)GFH?VFgpMssg~#x33EC?8@~;F_CY@s; zKieSPNgU!5AY^>sme=H&Mv_zvq?NLO;B-1H<21;(D%~Q<%SSAKv%Kl3LT1oy*B80; z__*S_N%aeHFoyO87J8$L-^nM*C`}@v(E7;6+uvl&f<=!Vs$BDuP|&HI4iJDvc#8o7 z0$w)u>Eps0)azKzHh!{+2x~g4NUUJy+15DW*HDSkZukYjo z!aK~Nlwi^oFF%{ahKjFb$u+r$`!y;+B!F<~K_Zd6SMamnl0q7tu-j?-dL$RXmA63R z&=@K}@aOrWbK!*;AvprLD1~TS1G-(iD2UaX4`KFE#z5uK1Qmy;eYy29Vn+Sr#5b6w zu`qx3Ma<}1H#0X=y!rLHM(TbYHe&4DgIz^x@#?Xj@ZY$&SKgsc*g9$rTzR2Q^NGQ(RZ!l5e^t@2-3 znLTL*A#3l`+M_Z%N3OJHF~`%jpmjj2pG-pMEH6Hju!=3uu}(Cjo%2>7jR~(W_=-|s z=7yr-jB}jVrdMT0!9ilT9M!9n_bpiErywp=$vhs>mw8|DN>7E1XNsPatU7(QVGTOQ zCyhdeZNX=Ee<)5`!&VcVC~I%=!8BUsfE@u5G`ufZROBaHk`1cG8MUCk!jxpjqU;y=LXT*SNOOF&l-rbR{ogrxx%OfIek*C^4p5qsLdPp zpl8!Z%e^JJ3D@TO^%=WLlQ*2W*|UuuKO4VAmx;7B4pWaSTQ0gwN-~W0MzuRIcxcJt&cGktghKW*TTGuvn|eM6xp^mR3z0HXFHTURW7sJO39slkE< zeC7lLj8Ph6eR8kZ$Ei?eIS2%TD>(5}j!I7Jq4h>0gMOFx`}Rn3k2^vEp^tRhZX+PS z#D#AMS@tugt<-EcvCWH0xmk5^HWniktJNK`SG*=Hu=}=a*qL5DeCj-y?|6VuCw1yK zJKt}|nyNo^4JKw&xO|pDLY~Az6Nn}Ff9{z}ephls0;hHnC`NX>2eTJELifkLQPq0n z|68_v7B321^11n>=X3MPzgevR8%6(5!EA-?+ZG zFW=REB1JszI=BGY_!q6!-8)H_^B9*?uF|ww_GN~&lC^^p^ zg{-jlol~fm7P)mI`vmYT5R?qL;Vdc#KCf4kHIX0t7&RC;=Y-(uNHP+o&M59#qf%M{ zTu5;HPgRJu;E~Y|=ljTfUtA{Iryn77;n2uKJf71$6j4>hP-3kuMx9}ZDM2FN%4;oD zLKfP=D`QoNA}ZfINIPs}&S^os#c|WgnlK@UQBzH+lelp$VEftnKvf-SDOssIz39_b z>k`-=9oiD)64O_N;jZE7;msdn4YBFkP4`dXq4IQyPLDB(6S|jWA-NjZyEH(N*3HQ+ z1D2IpsH=5{Cq@TgmUWweT&|i+4d$6%;^mfRBn6aBM+ox^^*Iyet|V$Ifkj#nmopuj z1xCfflFVIN&h6m5>XenaD(_kbdtUv?fT z*#;mo7OHzpmCQq93994-3?@_yGDXBQe~inD-Tpd%tqa0=JOpv&!zQcKJ<6VZn_-`2 z4N`GdovYWfCFxi(!-WVX!HzKWg$QO4C zqMQ;=B@=G%GShrP6p&xZ`qEB4W|HDd*j0Jfp0)dV8)13gdP{cV1}p zeoq#?EBSH9Evi;ATI$$RYMXsL%NsbD8-Q1fuuHW!epCSLO<^4~K(Eb$2SE#Li3N(mb zmoguMyL{Y(Ykvte9CxG`MKPV!jooR(Nz_mnE5|b43DlIpdhQc@;_+XI;Hk7kc& z7qK1~rwO_Kkdp2TuD|Qj0wmC{Q%uG>9oe&+@gO9F>M)tJVms@IW?L{le@~BrjOh#AUSIqjKRvNrt)j1|#I@ zcEDeZWN(IwG?hva)IdYC(WsMZ&0Z3r~X?2DoBoi~ah0&A|PddmMc+G3gy*f{-h(}pQw9rB9N+J996JcYM zcN2YZ`VE-JLebtH529H?1c+{Etw%hH4Ke;6CQsU=)6nm+3h5nOIx1!&2Z)0aH;0u%1kBve$7!I=f z$&b6fNeZ6o%r*m89{co$?LuygsMU++Rj80ik4n}mXCKbQy@8mrJj&GRKhh1K3_Mb$ z5_AKNGcQ4uSl9bn17a9Br?tISBL~W41J8T8d{OR(c2*Fwu~%nhjW3>6*aoqDHRP;0 zmbtc=NyH%Ndd2K3Mti+n?yBAWAK3b#O}z&;=ORyhNX`I zS1v98#cZ`h$uvvQX^8E7Zue4NKH5iay6zy5wp#b9jNbCVWuTvR(iY}Rt{rcXH+Fg< zE?vP(4)~lYN~8gOb3oVMhUilOHh<-(ZWI1rSX=(Hm#0Ew^{+Bfug$VIh{VTbAgoP0 zxB>veD^qGN@H4;w#%`dg0nE?JTGiX~(eZ}#IEl6!#UzBt8^};g{N!S;c(wC;m;ATd zT~RFKV}bn3R_tx_m>|Vge6wtH<@I?9N)7B<4(VqB?klD5{J-Ct+SaIdul(?8D+zsL zlkjoOaEKhL=O_c<d(Up~96ab@jg1@o87) z`Mzq_$huKc#rO}&bU%;DCL}}Cc7fBT!z$N)Twe%5)3)!!8Yv zzC`jBT&kgY&4_QQ^w*yDW>iP}P@*Zjj&RD1&>Ad?>L<_+tK^`h{Cyv3>!q zLGeVbG2bO5vVxh_7_1pIRAK+(-ki~Fsy$1VheNiZ_K zdOY1$Qn3xmUPa`<9@XKdSvF~E=UbDYwp%;IQFyLb0Qm~+l3JQV6yULp}D$wus(l_b^f(>j+dWUhl~85v+h6pH^()`;#R~^ z*Ndq>rVA?=>vbXLeJy>7(yzx=x(TKwCM4`nkxF}FRLXvTsw7X+4z|*8z=mH;Ok&|6 z?O*P^vQ}p&Uag6TgE5RV3WWnYPq6}v1OJ{Q=EAM65Vlf zK{z7CC6L+~#uXxC4j*cWeL`Kmu)(OOqFvOH)2(If)NQd4t=AF{8VP)CSrJ3)JprrC zn+y;*#(MnzR9e{cs%mV6O$q`M(P}PG*y=Vp%{RVHDP$G)fWCD?51s(Hyf)^esto|m zlIvSIabwTruk|XzfH5Elb;iKkNDTz6_ciwB__ntnn_}nRpZ1Doq2_5&HO4&0Nycw$aan=u?o z;ELcutra^oQk==$K;|Z$OOVjuNMu>L@t~+cx5Aw-a5jlP@Nf)JR$3NAk8Z<^U)kLV zd&fgKx*=%LU~yuLGou~N`bFeGO$GE`NyJf*AhJWpArTBE`D&DI{7aezSN)BL>E`i& z#1(I&P-9}x8x5*35V!=bl;~Nu$ei>g>6~GmGJ0UjD_8dFr zPEoK5c3gI)DD*9yEb%|)epEDu()QFku+l3Q1;Ri0YLwNIYfSo1J`8v}Ze0IJ`YkYRN{?&o^wO7s8kr$L2 zis3AMKan>mtxT(o=cKgER^_%kWJ3w<0?nG|P%tT2|mu1|}-#4(2A~Zz<%MKji zryQmt3`Z)iGp;(2|Fly{Aj@u{4PW{4o8cyUF#R0fY|5*lJ2nvQ@gx+fm?*>L3RzaW zieO8jq;`3l#iKx(0|f~tGxSDH`50^c$EAe4JWK5XjslJ=Y2{N?{k4d=C7;E8>1vYQ z6-ed0XV!7=j_>$N zR5_DX)NUNT5E)%Zzi{MVJG}p_t-D-4R53S_+n6$46*VakO%|{}t(Hu^5H(Zn22Sl9 zI`>^TXILF?eK_-p-&Q7Q3*DWs)g>1NqAVv>avxj+Z7t>$% zGS!B&$2vn<>l-fZ_#LOsNxYeIwx$nDxR>QkB2&sW@Tcc#d2cWK*?OJc&yR2xYR6Ld zlR$LWXhBq>ik|wI)?n~w5(cfznzQdaVi=P?=%ID#O z|CvVdXAjjsX%zZ@X%vVQA_8DgXYw#+^$1&J;CWmwCOF{fWcLk?L&x!FE0QZ!rv-9j z1a@cNqc1rhm+*CQVS?dR%D!G9JxuXLP{@lW-JU~kex1tX6O%&8LL%e9+eT4+`u6*M zy(R*6jBZ5oj1?HRikPXFyK-#US+zAEOwly20C#~+2wkMFc&#;+L=VuWZ?omj+eFAY zt4QmRbcQMVpecEg>b28IUJ^kxP zVYG5=ChWELQ&T+2x6hL_!W5|?6J&`2Ap|kmNV}G!ndz)gt<#M8pq_f+#Y2o^bKC`B zd74!-Xo_i4Mmm6E0AWZ@RPe#Cm;_U5;*nyE;b4L=eN&3oQpDiIKp%|SImlE**_j`) z2^XMaIsQ3tvdnM^UA;dEtpa*Nw~#lHn`YC%eZ~iXem!0fzB**G^B)=nL zHpL#~CC9&umn6Sx{mK3mbt+~mpn3?FdAQn9FxD|>YpH4sn2Yc`?PJ}7kgxQUf|Y2S zfJ#3Y4`L{C+sKl`IbSx@yg$6nl32<$S9JWU#Q}a!HEWHkS;v!a_LJU5?+Cdu7lwx! z@K(n1pizIeVQzcj+9tRO_1owm@OGsC`1@xeigPcCB-yPUwhY1gr>Frx|5k2JaN*?6v(oV+~dG@$(dnjSZtB7^GAgcGaUioYH0* zMt5eEw7sBqin*@;!`@qmwb?CwqoKIF6m4;L*FuZCI}~>-THM{exVyVk2+|_Oy|@)9 zB`KCdfG^$hK6^j=Ip2BD`Obgmy>qREB&@kIYt5{g`K`HU39uuehfYo&762(a95D9q z(ft%ieb+)hT7Le;>)<0MzAYBKW1q?sf@k0L0_fG(|J;N#dtIgvGF76E=b&dloutrg z%t@M=&ed*Rf~V}%JjG1r$Inxvys}yQGZ${3Q1g3!WQ(_0^gf-y<&$F$y^EXd4UKtC z5M$tXOuLDA?XYyTeUYAv!8)uhBJ-Tn6T5a26&I~9eJ_?x8bWl{_KO+xekXDnP5 zF;RHr@N2#MT-T_i_NiMsDt+TSeCit55G4#=yS+Nj)wdceC_-t*^s_ImovmaVOR=B+9)31i~Ci* zk1mVLWE-_uTfwXY-N7y%9le{L$S$vl1_y#KOdaY4jQZfDk9{ zYCc=eBZ|Bjo-)jNjI-gulJ-ldIf z&By(27S{(Srh3BYhpiV&EX5AxaUD>)oY2|MgpLQhQeJP`NNKVQJ|4T)$J=cW(kY-^ z>@m-rx*08K{(~ovkvuh=vFsQUo{Z)vRXct&33;R>6J~3pNYGAk?JJ9F3pP*-jc~D$LHTvmGm^tTfF`>N zw02ICITL;1Qd;b%jp6Px^8(RpWZO4xS6RJMq~_!ar#G@Mx!*;p_TVNiFn>xwU>{fPJ>;@-EV7ROnpt6%*<^+gK(cr?C7(i2S;-qZUiVR?OYLnd5^95Z2{Y*% z!3gW#A9mEmQ*u#w2yr~eO-uCP3))Q=B^yf2NS}?vOT4c%yvUCbdUn+IDrj18n9M#iOe$!#*+mC%&FU~si+BC^GXxR$eU&i`7!=~BauVosM?yg;`lS2_>24e`^@jw}j|v$`}* ze*Lh0lvi#xPpT4l8XPI7wwk0xi?SBgVp(!QV1Dg*(L$>)^XZM2ywL}PX4!+}rs9T> zGhdfmHH2d48hITgj31WJ?hAdS1gXt~^vmh$m!n$_?mHJh{2jT&G@L2;F_oR4q()+m zml^~nFZ(;|q6@M+^%F!{g7xiKY_05`GO6?2YugDOB=?uB*~xv})GbI@NlOUW1Ct-& z@2LpITTPj+B83l-)eLd{J!VH?NJaMe{K+Wv%B|Ibz#Cy+Fvilaq{EpV_HQ-57 zP3om#&;!S#eK#w2pN_t9Nt-xY!ZTK;x69I2!>DvwVWW`gw*-!_;(?MR&FaBM@535q zoG<#+YYmRFD-{$|o5MI-Ety&E<+Z9)Go2lNvOdXI<6Q+9=Udg(F?LD6MC*0m)d(KR zZy-Fx{koUbGiy6$MwDdm()QP@*p^Ri-1c_&BP8z$*X=pa&%RNU@?RHO?yH-BS1D3u zq{I-~unlTN-=#ol4*p)yeiD2;3ltJ5h#fL%fc7;-5Pm|36VWzg=q$NN?Vyk^#lo?# z9cW(RLuwaa9tl*QB7u zH5>c;_PnW;X#T*t-qX=6g6h`!_h^fl@l}or+p*WI)1Dca-R2f97>gWhsI^B;JWT*1_8ZMUpYx^w_ z$*bWBO~mCbO>f|*BOaF#(ad7pV1o?lbkAQ=smWNn6ci|Jjd4_})e~+%DXU{71-rk_ zzFS^c7b{tkmI!pe@_tNrJbu`jT=UIH7^ii{**0&i)kRwp6 ztVgn_p_hr4-+hS>Q+g2FPv6$!I238OjbfUeV3^!DUtsh7&ip}HgyFOnupt0llrN-@ z_@3wNcGy3qB&E*ow2yO%P>kr-dR?ut$bJl+$z!@CsCf4VwdZx@uxLE+TuGJvrGAya zzydGkOWbruY|GB-RgL#biIW>2u%2%jDbukx#BL7xJmE}QymA?n{3lb-#!6XebcxmV}>h51K97c77KZ`Vrzm;3^n z6Kt>WcVqvDe{JPtZe?j{=WOH7p=@XI&c)ru+QU@Z$HL0dRM+L5gS)Mjl?TkvbaeOm z_Y&BfEOB}+Fh3m!mKgOv_45BQ#Q*d1S0hlTHR%j1R@kR|D)DAOC#E>6rUr%lPOw9+ zoa*f!W{j)jWUm_J-g)XZTge*~cKy+<{O66{q9paCX{;~bo;$MN>8sMdMXz)anH*g? zU<)8XO>HrFZu64Z;T0F@))of619rA+`>2uDn@4#CR%TlQ>n~x4`STGnxKEKEu4=Mt zpMSbHxsW9Kf~TiYJ&FSyLQl6hV|;H6{wX652%~<#McZN2t+tihqc);&IDZPC=`oq? zW;HcbbK^4(D~>TS`va=lRDZv-9B%NMTPI{o8_0by@yUhwNb~q;%`TaS*;s!W(N>q0 z^vA16@!)wqI5mqFl2(}|ugZIbASIdSub(EQ)-R=ZuqZ}uF}VXdvT)3VQBszXKogal z!CqXt%)yUkAHQ_<1aGfW2+JvV!*fSY`aOC-Qh#F#EZA^!rCb|=`!X1jFTHWP$b*AW zW9Bk%0UWTgye(Aq+2Oa{CdRx&>5RWv1HlSZ{AUtpyEZ4yHEdRtU})3-l&b$L@%;b& zXYr{sDzG~1V;6FLuMh4|o#jx9%X^jNdS7Z$ex&_D)t*pF`|9>496nURVq@;+ct*l- z>&KCu78SWUhYGNVQL>rG+;7F+r@l}JyU3i{#*Sc|G?Cm)cXP|p)Tb;x*L>x^swFOt zv?m=(W6n#VN`Maj{;oWQQ+>kBb}sFCmDShuL$Sy~N;Njor6GG1WIyB@@jKC9EuFl| zE{dg>5#qgITW zmD{-#-HvsCb#@lQUT9kl>Hi|SR~f#mYzZ+N8pYQ7YoH}WJU#0QCI~$+Eg^-~VfS(T zM;Uf+m<=>{adG&sI#&Nvg8lFMQkOdOy9E2#KTEJvQ|JDW4)3=Q2u@bYZE?cm-YXtX!R?cxQGS0}lp%_9E8a?gm z(u(c|F*)zC;=!F9b+3=cPWFCjx+QsHPAtycu?pFImC)qk=c;K*Z$<&D_Z$oJ@Td5y z&7ElTTU(*F71?P|w^&XaWd3MJ0dHn(sA<8x2guPfm00>iN$lJ-pDw|6iM(=2gp<5R8*oSSd;5L3F9^$JA4sIh+R`Quh-~jT=7=GY_{ve@aWJ{pkaM^D z_OZ$JX}8IW3Eihnx^yT!WF%w{ZssT&szS0M}%t(P)3uMmlCsTom>BD@%{W z*$z-h3bOPf&>sk5L=VYx5JcHvGu z6V|rpR&O*BoVJDJaG4#)2;0{BJtt>S?-u-rHf9tGc@}vsz6|9Q295js2;aeFZTuti9vly`w|KNy^U_cG%*!Z35Jc#$Rkca@NN_QwgXBV<1^LHVqEesSnOG%M;=Rx|4k zZRvzk(OtXk3yTRBuqDaVF@$*$B!8SB2@g?5Lgk;O-r3TXx#IqE^{RV}`t@@Z^p}x% zRo*qA4>mA#umPg^`vCox(7*Zg|5Y{h9}fOM&fNHm`!@QcXKTM9*PV1=cF2E{nHv~1RpqVQSo*kNRq##qZZWi)x#)(Q{~GJW7NGX z4542V8@K&@ZMR4KX^IlmTEmlXo=3YCl}S$AMs90NKv}DLG)xaq|5`fk&C8wAVc2;k z3_HjFJM;g0=-i2+gY4g-^AG=R=v;9giEMf459s`QJuLcf(7D@2t#N~I^oTgsf}pLR zcjSX28D%QkxW$x@()w1O+{OCx{e|&pE;B8zWRrMiZr6E)0$py#-=OnJ(U)9P%3aY- zFz8%s>^F2Ct-V~cWKB2Bd!rUl^TN-MyI5TEwetMNMD#65-cEQl1RZa zuhbW-EL4wZ{SA0=i$Gpl?DQy-Of>p+lO<^1#PSl_mJ%^nySbB@@iuhc^CT4PF%2RZ zVzeHsJ+A=n?KZMqmY?0WG-pn_PGlHdkggbTpGG-sHYF*;JThc^y2X{kmp4ivzC2bg^oNtlq5!(bU2 z5WUBqC=+Tv4RFCT%5Hu=U_?6Kmwbh&thI5^Ih2fx?%P-p^mO`5^Xl|h+J4kbBGsb@ z^xGU5NX5oxv&)_swl|!$9e8uRLRBhJ5P10$Onm60Kk{@3WEg}(-wWYz+rFHO<0ypQ zeE%HR2#dUX$LT;$A+pktWSKW5h6gAVAQTUtNH;nL8n*#LAdaRDB36hO>PZ0_#ZJAD zwN)3ETY|UlD=;IxN#UlqB}KS-g)Qnanb`s0R?vomT>;be^(C{Ok6>KbyCZX*5sJ6| zdSktD7US*x`p>j^&=tmSHj{s&=Hx8o$=SbA^YmoA^B?M`tDZ@Bp^D<_-zcRiloXY@ z%V-#qiQ>HM5CT7BonSP0IktKedkV5F_(qZU$jPBhDTGtu9c6=s3z*0=QpoqB2{8ll zYnzll4H-eCjZ~RI9-xq3A-dp044$b8 z!`GPYp*&?yE^Q=*9?fbR(kJ6JYl72`Lr{ZbXTQ_x$V95m?VDzkh9W7m}v{k-&0B#7>C=ci5VXR1xzgJt*icYic zb;HM2?q3m2624EvYtG{qJoF%}C0WRo;ks|e92yvMCgkMAb4YZ|dlH*vj$|{=r6`q` zX_#N4PjA@8B-afC(qF)Ubml*R^w@s_>4?qZ%aov9FTJ;AJmu$Z#Zp+>jHuPy#Iu6g z>u__=bo)3lB@w+Bj|N{v-3?9)DFVy*@@SXfFq4a#sH)X)TClA?zu9IQu|L_el5a^* zj;RXm;%+ui`t;K5wK06|Zy+7zH;``d4sAl>@OXrxa} z?|Y3`zkb1azqIt#NXc}KjXvBInxQ0%^8E_IZk}O%y`CazBOmwf$GAyS;M*-6I@gr& zE2`C}D$s|AonnE-mlDD2u{-w>^hjp#>H(kmDdmXeL}K4Y!FoiD4iTUeGiWZS6Y z=vtWmRlwPi`JMGqyt4W7Xv*sNU{9J-_ZJrA76a*o64v0k z0M{!lfBtMPI%UqGO6HK_D9UWn;Db)`>G}FWn2GvN7e@(mrmP6&Uy8yE84S|;wiWfq_nW%t#Gis+EIg+KX&OeQ1f@s*&RKu^3N7rMNMqEdgy#PCUNz)#p zd84p=FnvZ{{l2C2_1Ec-qPAi`xN`ovyd!uo*R3JN0x~DhlL~;W zhyKsJ{>FFmnFz@(Ws4K~>1PH)J7`4@R5~0APg){RpOJg(SeplDSqO1rI6tQvp*tnR zTNgFqsB5*bTf9cxCi}6Vz}#)y>-rr&WJ+B1o$WMoOk-(~zTij%No{NZ9L^`ax8q!; zUOPowf%Ytr{!mFT&X*TdYsjxR7)|mhUhGEcx2#kEcJm-4Qu@?-Cq-&NY}qHTp3q|x z5oA^y`Jod@7Uqw%6rXHgi3s8E&BdL`{zB?yN~t+i>FK2&eW9s3{8oyle{I(@aa=<7 ztZC-0nEn%XT+X|Zr;m1TY8BefUYR$>sIe`2%M6pDjaet_s>Tl9_tL$J3Xrrlb>HnG zofK)u&X&H+R0BoD6r0h`XzzHrb{08OeWOQ<1B|7bdxwjN*yhxR@?pr}Ar9e5+y(w5 zK15DHh%rjX(jZOuP!DA2Q8#@X-tmCX=oYAn(3~I|)`F%pZ_rfjln)HgC*ayWA7voCLaHXqP; z>FhmZEpU3wV{5>!t8X%qJec#hLSz+K5ZLI1_{5e&rcNfXy(uS<<|FCll3(fFul;q1 z-JrqMVFeTABN$*z@*mFVKXGO!$8@dF&Kt0}iTIlYPM>VLqYXYQvRhb@H~~seft|f2 zF1>U{Sr#-PN~`P*-!nmB6eG%QKc2i@=#MJGwJ^_lUc~9tbUfQ|CaYGaZ;gdX!~*Gp zGr6fO3$G*#hvs@mk5wmXY1Eac zJ_@C3lt>S(^N#&&AMQ$8i;pW1QBnEUPOvPf`3vDh&*qBv$k1yt*^Y~YP6lUQg;fi& zf9B^Qrd8bgsTmhk?;_&O3l{fNoPwUxEfCg74X&GX;kQ8)|TM%M8^S5`Q z-lvZ;DV#E>{I-1*x4uc>i2_!p;ysbW!Catja_)L5h_2#=B{fGO)koC6XXz^RSs~ga z5d;thgGhs6f}a*PI++7wxa=|cmoiW9^`otO+~?-uZ~eJCk6tyA;G7#!DzHp4T%44= z{kVnfDjFI|eq=t_mDeg3$zXyrsrg3u1&IPyPnG9@Ga$*cHH1&t@Fsfag#NR$?6wCW ziB(C${AKVs5k0(vO|dKj`oe*ycbU+Av^5}!&y?nb*YC~jRO;G}ZCT8rM_>)SPu;JH zb-SBrmCJlVV3?P)zL{)laZ$r#T=7{+gQej>h|5=J%l+t3X0K5`x(*f(}C@x+CpKb9^QYVTZJ-8n2=-dX*QBL4^UfhjEPicf__ z)0_lvVA1sJg8=hh!m2m&%y6ej%rDhPENs>~?cP9>opLf8$K}^?7|}Ctro;-m-|=sM z7G4ka%+L`kL6yX1Y>+OWAQ!7A0%J&j;i1#3Cp@sl#+r`1Y>m%NcR^_OcK9e?~_D;_93S&?;!XGj#t#>o$lOOYIkEq7^l zhV?=)l9ZP5f>W9C@y54l{y}J#iKem+x)rVx)n(DK(=XWN-9Q?zyg)nM7Ki&&6WY=j z^u1;*!`^!oj_|_{Q|HINj!~BMbs6uw*5wV1q;RhoKKH=qH~kH-j4p!St6qORx4&}5 zQAf$V;Y*yjygKq~e>ECDE3edGE~R_GOxJo9+Sfkwl3@^*%O$Fd9oCw%aqGlibdhK4N%qur5 z6u&UZz5_UL+Y#L`e0OxZyirN5LEt!^%H!Fd@^yF9@i(Kz?+ZPoh7TD)YX{3BQblcU z(x51;udE{_q50CT5_Afjl}WIndHHF~RxH++mDNaB+TjXceYKPF5O#Z>l-d*BQ$fTf z#B#~%m#jjDJ-paQ6uy$Ufc=_Lx4rnw>7x_9j3a?4o9>1m4il}@iCEqwf8O)FX4xXA zXuh#5#n$6hj9Ao5q1CiY+8WoN@{-~!$0*MZrue)rsXl5L1_D$+xoz@6>=`v(+%9ro zL|1#!Yvdrw3`qJdJ(cZ75-3MOWd{7SbCd?{Z#o+xFbC*A71!g<6k`l*1~~t! zxMr@d|D(5m*V*6Cd8v}WJ;jI%_!}yWO)?=TE{u>mb2*W#CNsFy4jbhPi{cjA=(?2e zD@h$GV{2aP2?u^YcW>l3DTGb0lIKR%Vh&3P5D~~6h;K4{)&u(QSkY+l?e{H$70BU6 z^B*CSPVbbGKf@7`<2K>3sT;_{3JiVO2|fI%fbVV-z0sG|Y?l{tZ@VpwLfbg`Gc6om zvZ{DM;UdIb!RY#Gu-LN=o=W^8F(#z_E;ZGA8E0D~$eUj_9+MCo8QtV_cU87C`VE_i z@Ttb<_q83%K6>s=&hfHpKSkA&-bR)?#ZOjgtJYGojv5u+k2>@cjjD!m?r4<=tbKSD z&$n7(T^ArVaYuKg>j;OEVF~0VpX~NF={4*p$22k`jS5B$k5C-Rr@@Alu4OAdy)gL_ zBO4jxJ-mkHzwp6*06gJ8PqlWoN{64w+NZm1Ot#o3a#OcG`89t+v#woWlkj)(g?q*ZQ}lnHI{)vx z=zmPu-~alHGw9V6|DC|UZ}0spfhw3z{L8u2fA0A2J0Abq@e54V{;&5x{!Hi3DEJ?g zo}vB+CjRHne@1Zs=o|*iTKFqG_so{+Ym^L$*H%Si@k*-#qk* z0p7wMfTs<>>)-GGkFMWD{*MU!?)>x-fQth72nT?NqXs;~g@eb1gE0K35sE&%pD009>f?r3=q-A8~JiWYq-us4yM?^+N$HbjV3P-r3y=UjJ~EcX0{*{lEZ~(Jp(j9SG}H(( zdhZpuUf41?E`jdP4yp_pcn&$+6HEGDx{r;x;Zvxx+~=@M6@1qjc7>hT6Evz1Rorv3 zkj)*VB`HpfO__Ot&0OqwI;{7K86ff&01(LKw6`ur( z+t&qNgqc$KTfxFlILIdW_@gNy?^zPw_GHoH;>oHINP#FiiwMFmxA_JOr?>{{&C`3VYMTKCB0EAgpNO>-_*?=dh7N}Nx5c@KAC z6cWacEJPTrI*RKn5`H*>oTl5FvnVo7UMdjSYS$a&QRrwLhLjTuY1FmW5&AAw0oV7; z(sx=+XvgE6Ex8Zz|chz%l;up`@E zSMq0v7~hLXgRyU{W(O^T2p|$bQ@r*hT%XCI!FJt|r1&6=K$J66V*l5Ox3T^rb`qoa zgHepS-*69m zC@u*8tH09R%em`s^?j^?G$#g;y*pBFM2`c`OC(iOXM%B6vY_(Jm**3J%EujeXA0cLTs;x4pWeJl zaN2PR-6DrL?VNac=kK>Ic?9TaanLO;C~hdL*K6{X%4qsH<|GJ%X9 zvGQY+@R-h!;pA zo&j39`2?Q%KDWaruwx3mNZMisH`IDN`?Cj9LFvmD(dVbueSA4=KHSLnM|u9AYq ziNKW+o(|IYF5$|X6$yLK>x3HDbRSV?K!rQo;}YwNH(8JjkmijOSoItoEO65V=?53? znvUo5?2bpa4%vwT;h! zpzm!o?^z%QL9OP{L7N-DXZi4Rej4tP#Y&x8pbbgQ0MRawBb(g(abw(=nO%d(ms1r2 z6Y6|lNM0kdN(VN)RDnn>PKJ_A7M9-ss{^Zpczzl#IgoWGm;E5eAJv~ zs9Rf9*?z84ShG0W;vqqoxhrUeD#WynYB*_KcIftzAEMacV37Ht1d^){GL5-1C5GVd zArBWuo1lUtgJ&r;hYN8637~qQ!BBAqs3@3R$2-Tl)uqH|dzcidyvoN#f7V~M($E;< zZ93;EauEgP0dL=|KGgO}gC|D{TTI&TIsK_1EFjgr+Yyf7Exdt;qDMTaCS+-EaGhs- z8`)E_5DluaQrAuu3DX&Iq?18_IHjEgKJT>qZdT;A;vlwv;0jccGOPwFod&!U&+`aE zIWuX!M-H6M8T@{^s~YPa$O%y`^=E@bfHn8{I^&=g^cnY_k4u9fHI_m0frOnPG#?I0 zuxj)p_v1g<_>Mc2RRL{ z$&Ln*`E%W~``Fy*LOz42_8G>gsGxqJ^1*SAcvE6=1jywMaiTakBupLbJ(`3mT>-)0 z!9GVXf_i}1o&Y15s#=hkUBL}w2x{H8*CV8Z!28~OmEmnUa6p!^oQ&XVmGIX_8u#IK zAN%AaoW=TN72Nb(9|i?MdGIq}-L5Q4yoHKTzOa7I$A$Q6Q)D5*{80Buy9KdO zg?R5>tW9hHg;m2I384y*(jC=MQsj}rP*V(-_I{ha!qKEi31sV5hy!Tc6wEBwadaUMZS)xtgRxcUaerdK`uf-unhl4nFI1euRUh?FSL9p85tHhqH>B z?nz+y6F^SDRJ$(2wS$yfCmklZQTv5sg|KPH>@x%f?NHs!p9zcC!b9!AGr{{|K!c7C zdz0gxpwWklMuAU*6iLGXk+-69ea#7Tw_|#w^t?XOR@u;$*5~zJT-aBWYx>njX>5};T z`U!xr{LnjS|6p^I2x^D}iwteOfH;5+hX(+2;;3ho^bZ|R04J*8EiwpPnU5)ulo`^x zyB!l`VY&wUIW#*|=X^H%N#u6EH*JGN;yjS~%Mo9?%EbC}K2tczB+wK?RAk2mmsQk7 zlcQWmO+7=8)yW`mp7$`yE%e66&YVuT&5gI@&_MeVRah|AgJoEwG+S%vZF4(sCMA9) z6LSWqPx!v++G2IY=|iRuq~iovGT8lt+cl z!TW(P-&6;bSy=w~i3&T&Cc)%l%vbp+qj;_Sz=RnzP+NBb+u-f29SYh#UO4DpY@1ft zJ63JE8C(texJ@BW7&sY(B#!$yyF~#}F7lUxNP=#MsL=c`!l>~4&A<{v0}Qi|ln?>n z7U6=w*+cDqQn)FSXFt3)m>|b$^ZYg}XqR%O4k{YCjv{Ke$DgV1bd303b4tA3+wh(x z3@oU~r;x|hRU`DZD<^_+UBv}CI#V^OR;u5Asrg0zr!NY;U(J{&#XTG}%F%c&RP>D8M^;7-GwcG)qzN=x|DSokgV^nb z5H^)KQ0lGLY>@56+UxzO@IH6qb0&$8-v*xhlg*2offe_#g9oT)0;&ycP20T3DFpVS zfTnBXQnQa}r)npuTgLt>4+VYl_v-%7JM@d1<^$OwVLH|eb4*Oy5d=?w_nK=zrN0$+ zjP10X241!ii}P>|%_(T;c=ngJGke+~@>kDi*xk1koiZtZ&u69Qpy0ErbwCXnU2ais zmmU+yD}ElhGiMrafD9!H`j|7;xR->k_c*rQNi`yY10miGiVLKL%osutLE`&+7sG7C znzN$XdtzkL5NU?d-g?cCJ#3Am+r&N&Qk~%C+)_xC3g{xNu1#5ok&lBy^1YpF#@!m| za_mlGWDwv(vnLR>PCwh{w@ZcPGb6+45J&)qrAC3plWgksV7?@XD%#(8C*VEN`VAfF zOqjp!o(tNk&%H|&RI=`b$G~2Ij){4(+#pS}oKnTE9`AVMNKmj=gnx^HX^M$As|Pea zF;}giO;Aa)nDCspMuA;HWI#LWqxpuDvFt-3&&NdtWr6cw8t&x=y!WJxB_AZE3Dn^J z+f8$k4;__T(N#ff*5e|XEV_gw1nh)jeIr}c>0r=! z&Yrms6xJT?%e=i)sjkykN!&`*%&>5udN=uQ-EG7|EN(<4tG!Zr9w<|0r--Y$t{~cG zq2U%*(3zJ`UCv)}1Kd5`tMOyzI?nIT=~3Y7QPFTJE6G)y{+8xT)pf0Kud&e9B|TOd zWL0U{7Kb+z;E7nq#=^oqLf4hb%gtTdQsgwM9!;Vl3q}RIJfbn(Tl!n|cBPG&lKY$P zp0m4xDAQ)gigZuI>D(U`9W$+KS(I*MW|(Bz!jy{rv{_vW97A{ z#61}cM(fDB!e zDC;($T%k*mx6>X^ch1<}PwOXIy-5Q#PCzlL)-Mx{%3l&69;5k5my>GRVk+#{txG^P zZJ*789DL?j@CeHc-&-=)Nuucig^gPMk6YrH{L?HdWL#e>x3{>9>}D2}Y{rrpAh?2pVUJMkjAxe@ltw{Sts&&b2sFnmqGMa^+}eh)(ehMay3EZFVBjHchm z%&~cySVTw+XnxtYqGQ+MUN%~kxXRRsZJj4g?C=Q?6WF69a+mboXLZ=M#S!(3CA zZ{Je*ZH}E-G~!nZ!%ZI zyH9x(%h;G99{t}nBrF-=&V)WL&;?MqF%D{0Yxr#)E6LfWx39}tzvs1s1KN>c?^(CP zkd2LVs*%x`69Ty@hnmKZPk;^8oA|~2N$v>og9L>hvUa^a

u_k$26y2wYhyoRh)5*xBXkmrbIn)h;L1dnQb_~3dZW2s&wgFXOfA%K)V|* z>FNyqvE`>&W!~N16Kd#?YqziewyU!%p`-wH&s9UuI%bQ>!c{|VEhR)lI*1Aqv`>r= zvWfZN9o?1Z%)&DgU^YABx=?HN!BVe#)Z%B4tCM=E3h$zW)nd916>2>2?U_t|Rn;Io z`*br2##rXtL*@j<%sv;W0bWbB$~s+nJ|AezExi6mVM4lY8B_;Eu#E+^2r5b9R%YG_ zva=Q7=I&K3`}+Asq>!DNg<8rBpgfE_Jj%FoqrHZ}QsSHni$)IzwK>>9F^Oa?#LK}@n z-tv6-yxlJmG0i2BiZrDwWADe;IWrFto>UJkIW4ui#!rCcqt+*YnX&8>K;fva=AjYw z@g(92(Bvy|=gjb{H!tYZ2JaJ~IZ@yVpkW^oz<19bxIFk=!U~%>3E!Vyeq$A8nIJ)@sMMR6ah{re)DY!a9R$3ZHFe zyU*#9E$j(ejdiP5C^H$jvdmFoW0F!>2w${8l~GrA-{s1#L!!^*K#Z=97@1AYXTGvN zSq#szlddQ2vm*BS!Zs#9+V%wK=2&}uQwMRoH-z%Q&bJP!;3sVl=~#fe?bNRAXBmJ@ z23gr&Huo~7pl`BYN%M_`HN3{~>gmsWXU!s}Fr&2qW3RFn;{1>@Xm>#pI6*~n1%sQ& zGfyw1QuTNnseE*pLJfU7hc3U$+$H9Hra{5iY}dXI3<-qrlh)zzWVPhntRLUofCLiy z_`ozn10>+vFi%0xLUfReDx!4 zGZ@i>qv8x81PBXXgb``A=F6!=jrRfaokF|zWAn9HE4fQwQd0{k%lc0jNqh4RwAUZ2 zcPP1&2(9KTV-G5GcL-j_R}z$xOAFblK3AZiQLiMOO-!$4up;$jqNyo~Wx0gE2#sYd zdiHL z3mU&WpDv%$Ecs~_B?EGfazjlnWM`9x78Q7msSbA?q%z^@=VB{Wih4rc;4z2ZAPCUk=e$>vSmJD-(teeaY+oCOMheK(Ec&YLAy*D?hARDa>a> zs-<-*xDXD*UWT@%8_2-$KuW3^x3va`6tIe&EOBCaBJiihJIF4Jc@2=GJa*!&$7EeX zyIc`>CSr8QL1-o2Ub_~}WB#GMWKaNhC$u6|3iLU4#i&4n%+74_Q_lC6CxA1plk39Q zTo>Fi$~(i{ge`^XhVe#82edk`%;X5d>#WcxfUQL2BZr(>*Aj9BpO^Hd#|7SJ%nVor z#$!Y#<}-Nn=4P(xUKBG(JgsVL>Q$ILSwxVaH59SX%72MzRzH(eAaDbrTsS4kH(RH_ z&p^Ig*sWHD$wV6$`fGe!#)Y7Zcw?_Py@Ba-wY%cIZe)g$$H}}w_1@1;6`=~UOyUgR zWS}{xhZD;_9YMtf)DhzS1VBe0x_oT~NE`8eo~1F1@-g*2KjXmsYl5IG?NC~|WD@Om z7AL-=0ui5z&0ooq2%#u1k|jxAB%-|di6SN)IMvdU$K8@z^O5sKh9_1+SXld9M*5Z2 z%ScJ2LGeL5>?l)EJS4&2xZ>4h38ZFEw-2R-*GruG<#BI9entw-(yV;7A&ru81HQIg zapdwkqQqBIsY2pBhFDOT#7Nsk+_WIS=dsQ627ej%V$HPk@uILg0sSXhN&%J;{F1HGP%3G~w*~A=CLrC@#lMco&!|q|f_a z@a*;m{JXjceC?k;2}8}4}zcG(Ny2B_dINQ0%93d+LltP4kP(R(K&c~y^U1|TpH z$O0-;xI2Dc3$ornm)TYUXI5AF3oY$!;c^s#3qE*O*b%khFLK1HMqOB_w5ZzQVfULN z@0rM|O6>GqU@|i44x2GsXEPaGMzXMnH=}CKt!sZ9>mVFFXr%M>Yi!&R-KtO>71H*Z z9!q4v#TX=Lw4KCG$g}Mf)81F8EsuTz5R&wYz&1y02-Ky65DQmdnsTV#8$+oVJvi1y z)F57u^pMUy(>41UmkX8?jvH3MiR%9AQKYYm!dHYH-rdv!9}rG@Vu2NJOQQw0ttQDxP zyF~DnDz2%|`otL!?9TbPMTO;IOeNg|X$LjlL_@gt@-^#83_ zAG33TpX-8W{P>x)^PFtQ_6O8z_aZtFsUPBJR_ZgOzbI;43#pU?(HGi^(<*X=nO!HL zL(w17#VH|PE`&ZTI~U(CcY;v)iyQp)yTA+)kCadW&`gw}HkcuVc$kt7lEvR#c0y!e zw#fGch?E;3UJPXDYw+fKE=pLeyr z@Av7t)10yLDibtjz8dv(>r+_{pwNP=TQ&J`Xj!X5Q}Ogn)W@3ns_LOnqY_1$k;dDTntZraB7SLL74x`gKsCR1znb+S70Y!D5&N>%v4XndU4cJsNz zR8C`Otaj8<=+rD#sY2ArELCqQnY8I*K1#q2GLlQk@YF#-o|Cpb_jc+r-rSg8GhLpX zT^9XX`=OGB-G*SFn8kk4sBABHiGhi??VVo)f%>cAzc8HG`y7wx=$_tg_r6fg*aKY5 zq^QT|2CM#M)^m@PK3>lfgmzojA6h&FfHK>KA4yyhP6WHg!&{g+Qm6ft#7(6lEYEK;>^%wYs;e1nieT&0 zeqnJz(oSQXxEKgEmIM221zs^>Emv~!)nc1~zD?}jiN(T?xbpC<1ibR;o7B6&GH|9= ze|+A`JPeT&M}}nVPF^7U%gtAU+H(4vIv+P-$IvfdDT+xVtZ>>-THyx`OIFtBf7NlY zF>@AuO}9ZD`FJNHWWxuR_M#+d=dZcD2i+|2HKasZ1)WPL3eoi&H|GUeO7d!s4Ex#b zFE+IGMoUle-==W14)tNj?PCe;#xr26-E|U(ZX-ue^5ijlH0xU#QONC;f6%E_HfbQ^ zD3z&T?q>$qD|pyxRerBH{>*VKK?Ttq`q~>Nm^9)n{+ZE?8FYi>137-rdU7Z#9XDlE zs>t?nc62_hG-+%fyu|pnDgDw>Tm&7heeqN?f$@vmspy+Hs%XAN`QolO%Y3~0=i5`A z`8qeA`bBBzN3UPN?FE#+)vG6I_duT^Ri1)dNT9p;gLPG z@5@U2W<$^nB?s}nL2v$Lv`hPKfAdP-*#2lsblH~pDI(gZq{g1SwC zGr|#H(!lpSUe(q|BGUr<$UrfvWyxicTnSR!ES&$<-g!qgy=;3NMd?WI(t8J`iy%l5 z5Rl$MK!gCHmrx8!uW~36r1xH>w;=rp0@9^OJqQR$K)^`z{lI%wI7hGV{`KBk{?^J0 zgv@8n?AgDWoju{ZMY=@w%;gpa8=>%^!>EI+lHrops^d#-Wil*eGZav21-AhAM>(J) z_94OR#_B;q_#kcf7-A-L0vK1?6B;O3%w?;nFWbP2!viYh>QQWOi6f||@^Nq~e|k@M zy@y`(t)4ggo8c5;Obq5`@xmdss;cIz+8-qA6WB7Edq3=lbI!d%-^E9;`q3Sh<{-T` zofm4_N{ON4?g=Hi3nsLXo9)IIDmPQxj107gyoSQ{oTB#b9daIu$UoxS75*3{brFW@ZV8L-}Y zA%?nAad`x3iIz#5iN$3RZ5=)Yjq({t;a#_;kpu8Np8r@1V@&H_O^5&<*#X9;YTE-1 zt?EJ7eMwx9XK&ZTM12Hl)NE>CjU<*UZO{<|(rfOzyVAQOI_UEW^!6EiZxz4J&nRRE z;00cPTH?x7GJPe)%`TerNWA%e3~#nQNn#HrfW9Ic7rQ7bAb~FOppXm zJ+fsE+lK;TuNu11uI?>T2TXWnGUKi4Ll{@1$EK20q-LZl@{v%*f)8+Tp|gh<;VMaG zE!O#HQ&qJQX`by(_rV0i`}|>(%dI0it9r|bjU(#SX9ord$@V7J&Ypc;M0jw(kAsFb=ZXw;=F-b$XkMZHwzPNA^U#h`3) zc(NiST-FoH%_djOr7B=V84p$UR4-_1QWWv-7tJVx&BE){G+$QS*2W!iVV4^1G=tW0 zxa19H>ul%F$+tFNI3Pu^L?Bk@b|cI)Aog-GT8#vHD-$Y-Jo&}QARYK7S*W;jk$eVd zLMvb+q)~5PSx0M=H&n2+ti!zo8KgB_l`OT?46jR3l`XMvsh239+rU7YO96Z7PAT>3 z1ka-^kmp#0w>)?*@w!h(eQ|(4=|oWQPN6Cq#HIyKP(318n7260n}+D}Z@ik;;q1r& z61x;*R;JrBsO`$wBif-NsL3>2a5FL5nir;cdDH(BQ?%ofKU2oY0+~xmQd1VAMzqTt zt#u2m5V?$GopsiAb+DI?sKT)KVB=I`Y$7;TO;!px!T4Lg8~wu!aK`f%dEF-;sXCk5 zrOeabV>4%@YJzl~U(Fjy(FJ?os`ec7XMt&{!py-w*^noL1|d{EWc7WicKl4sw4YK- zw=W)MLa~>dDF{FeJ;YQ=eBr6IwZ9J_K3ft zRN~rwqOCuH1{Y@t;Ixp6Ir+y2dWe}WF~fS^FmI9)6QqyPQ1%P_8Qt3h0@YhEt@^Tt z$ezZb(hRieqt^L}-SO#ZNOCjf!qhW}ZJ%hk*&7^hhHR$FKo);Sl{;<&&VvzRQSfJR zRaKw#jv^kAh>Qk0w+PnCHCb`>2k;9fW2wh&aQ;>Im?4KJ0+KHQDiRW_=Ec^4iM-0* zVSACQk1@ZT5sJLI7vGTkS~Y)K%EAu)=`|sv_CPlJ5K5cG{Db(#DDGnJg(vUc$wa)= zM)a_&bfUG+O?rsrQ4Rv z#dAS>O>H|OAB5YsmM*IXX>J8;MQ-pJUhk*;qo^b%;`V$IeMtRVRaALY5d|;LSCSq5 zx&4ouS5wIcfIOgM%1~e}8JSq4ly-p9K(9#GcwdAy;i8=&8{!QX%z;1^Ry0JA(3*9> z?6vhHSz?`?x+9N^Ku~lMTI16~3CHVSn3>2h39iw$XYoUrx9XSFj@bsR$8|_>)YKw! zgNiIDu$Ovrrjdy{Rb1pu^|bNn7P?P;m>DA$qZmSH6z;h`7Fkf=y7gW z9&-rFd1aq_z}H)pea78<#v^x~2f4)+%yxYUp-jE@3(Yhw&X|E8`%8RZz?_jRo6XN@14H2%Cmc7JIWU3lgiD zw9D@}=)BDhYz9eA-qff*Y`Xm!rQ%X{@w*vR*9ax0!&vX@Sx8|ugw{qETXPMZafQ-o zZ?%~W%8aCXZY)sk+jRrs*5KoqhU|Zy;JOo->-0n)RBvT$^Z3Y%0I)V@LCFv*h?1QPy2DO4JMI4HRienMF z9fJw=-qEn+{yx?5vEBH?@*_rXg;(C9n?Aeh14mRy>^nAxtR|b%t0p9C;(Bx37LBa= z$o|%`xFhN@I9_R6vAxO|SLG67BV2M057|4figzHgX|WXG!Y$e5L%6d+h>W~}v|miY zKdg}i*#sZa87Lr1+UDKE8kslkpYQ5-wLLjZm9$PBkLxr>MVc;f0?YhfUtAW5Mi4R6 z*^dt$j6o8$PZJ@If^v?AXK)VqXCuem=ZpJ8OYOK_d4u%vd=FITIZa02v5zJc>cehH z3(%8G3oaMg^_zXqn1E1XkwWSc~X~CUXqf<8KTh=*(VtfGvw? z4lmutW%$rxOodnqcBLh=qC^k2v!zSa9jG)Res@HI5GtI%&a2$)v9{*gq|^c>f)B5! zKi*nxs}~rONVOkSlfAu2q2d(IsB$GXo6^zAF_(1mPFPZ|FnMlw(jvP+Ol;Qsag{3( zB67~ItmJZ6^A^a(qSX{N93wKxggu-(oC?RSfb?AcKb|9VZVDe^bpTPv_Ap#>#RTyx z6|J(|ebc#RkGx{j$A2xYccVQO8|3#Ox$_A@tRbYUO(+v?DYZ1H10N8#i+xuLtFdOE6%vJJk+ns|#!rv#K;vYSAA#@kCNJIx)&K z*}h=1%ciEr)Rxyi2ZKGr$vTfg_fQsWC1$JhF;J;&W_*-=w{ZO#uoqjmn3e~O`(bV@ zvD=mss&W@`JLXY=(w-&D?|}C`f%6__Z>s$phBh;#@Cyn#2a?EM&oQx*x-`Ql)j&Y; zK=z}uqoWg}g5(_Orq=#qqF!Z4WrQ~3Q^Fg6GWQxdeb}cGWB?*}9=(Oy=!n`|9szBd zEhQSag^z5nyLB3f^4ev~-O4RbYJW0O5@SK&r7WpdRzJMm@N`n6d9aG2Xon6xa?Zpr z{yq05`nl-0j;cXr>~F`bc?kasD+ zI{LGhaPHAy-%nC&eI0Z&@~Yq^+U_ftHOse%;{wzo+?3jn>iz< zX*uN2yAC4prmJQJYS}IQSErPjwl3f?l5!F|wh^L!G!G<)F$9v2VFJftvN+b|ouQ!x z3>l%HQMB0AbET8T1VF7YO1=ON&HPTjT*YLOJn3W+S+-XEP&I$ESaafN1ty<>kyY*X z(c<8Ct$Y)L;6n8(&z)S3szU8TVfAADDwaht7>9~_vO=GVMr=~nBpCS2t9_4HyV@_! z2F^Yzuz?4$lpSf5Eq(Wq-7?!MfhO6#(0VU<>S1hE*^n)LZDV7tLy6E`fR3U2i@w1qv3_htpS|5 z+C@Y;K>_x_q0>>tl8lllzn_5JHMA&4Fg`*XrAg_UJ8qX0zXkXHVB?WK?Jw5a* z^){NPX5CFkHl!(``+18xl6*#KuiWVny~6fF zaH_AEQfs9z!c%iqEuRd?!?g;s_whpdh}6R~_VQUGJ4`}T5i%wZQ`l;2;Yh7bqAp3S z+~n~w#o^+0C_U1ySD{z?se)v#HRrZ%bH{s$p8U?} zzUeDT>S}s{WY}T(xgX3dWzBMCbkrMDweC;)5JVux{K_j_X*A0!V!(~0j0Ay!O(Yna z5D4>tbh!8XO3Aon+9M3d{adR1Mn3boE!0%VoWJ8SX8kY~WADu$Ss26By7eL+7eeAPy%%BJIsD7Dhg%1)2Gu4}f#}Z(= ziihCz6rwg7+*V~xk9(WyVU5t5u=WvOs7t0g@%_dEjf5?6?Age*1_a)&OPP=lh6DxD zz13aAfV=oJN-!y=pd_hvnJ;zb@PSrg&x2B<$;PxkF5?3bqWdKnOlL^U5q#W}!1`D@i=iBbL!KF)m}|JQ$;{C@gvf!`MRZGqnw_-%pT7Wi#} z-xm07f!`MRZGr!X7C2p@0*|}2L=6y!2|H1B`ch5K!O6n;MB3?C9j54yUTZ+1*?%Jd z?l)i*#dXci)(ricTl%Y;m)21+3{)-Zi>dp0{TLt6)1g zs4QWOzkhzA3OoDhc8wH;RI*7g%}!v-Au2zEucPmUMM8icX^e}yp_^Hsi9pdIYU>PX zr>U);vD>4mnGv=7LyumBeoi%-q{8%BDv08oxE{bV3Dp?~>DTq=4uqvz2>~ zn=f-$wJp*4W_X;x06SmVo1mG7kMA2NhO=czYE-OXb5@jQ?Ia_&^BCG@_WKolqdv&+ zGgQq}NH_-xua3pR6gXQ{O-Ro@a$LVAny2`JGO5rgv{$u6G#tL2Pt3X%T*tM zxP?R;cP5;w7whETpD)yJufRuNm^MzVu1e~1oWy$XkwhGhSLwn!&bBJ8Nzjlf(^}6s zh2x<7%s6Uz1fwLj(X>5{tomk}C%m+EnX@}0sjudomN2l1+ox?TviOBl=9=1ER?y-)J$tWmXLe+q0 zI}=O0kH!RfPjb}zunUigSi3Blo*2rJQC8_LB7lGA?y|Iq7+v9e`+s)EU7<%F`@nqZ z0SX$wm7)NL{lNujibhTV>Wez>e9D}x@$l2~3jWwEFsqusqsa7ZvVuzWd4ahBO&oBt zcP#{y)?(yl;!xt#xK9xC#F-|6z;*gGH@B3Cpv>?`#Yuy1*ZOICf?9IJO=Gnc7Pwwk zpx$+3orcfJI?zZDKMYsbO|ontKji8!pO9j7yk)8sH4z{ucco3p-L;sr)_tTO&Gsd0 z=0MkFV+P%e*0ZXZ6|s)hk)IPZ>k8KKQoH?f126I##pVp-1{3u6qkVqsE6u;?asHs< zqnyr_XiBr}!r50NQN;~#y}1;6VwK51KPWMP&fP+FZNBdEA+(D6E(r?PBPKFS;)e69G3y>t?op)1o&6kVwVK19zgvZp-(H^sYuDM1 zH+(lx^1O1gOMXwLmUlU_98 zaGx^V*>m)ahJNP0qJe&QC$>YE+1Mex5H#& zFP((4z)S z4$H`o_y}a?7l?xptbbXEG??@f;8H2P5b2fYln#YV`&ES<;cwi@i$wdZ^%9-EPFVrY zP$MfMY#GXWj*{90%D(rtnAvIVvsD3y58Hr?@&JE74lqt%zaXAwg>*^32ms~*9|zRJ zzPq@AZQ>{5X>Pr(+#|r-j|+p)eb)>H#T+QYbR6h7+k)-^B931eC%=3vTYOe8i;71O zod_Vk0%D01@vE;yH=u;#G3^WHIC!Oep?(V>tO4u7as9?`moi}J?*{j6SZ5I<1JRpspq(%C+I3d1Rn<^mM{{zm@p&i*oaXV(iSD|h=Oz|r`5QBdel@u=y( zzdh``?g<vl_20pU?Y*tPdy|Xyz_2_nUU{+XxK;X1XmrMT~_horL%R~B6N)`jt681MA)Rg-< z?_?u6i}QWv;Jg9gE(3ef>CxU$`Z?}o$2*IA_~(q@7+^diAiy|{v%B+i+{vPF7S}Dd z>^214w>Qq6jfea-zTo~<0Q!r&d@BR}kB;)GA5+v1m{mi-QBH?2FwHNt|D?fswgmOJ zB}LKTRDZtpY55-N-+Wc&K^BZKa z