From c8df5be72e2e0192dc63e417693205eac7270df9 Mon Sep 17 00:00:00 2001 From: wenyu441069198 <14186472+wenyu441069198@user.noreply.gitee.com> Date: Thu, 20 Jun 2024 17:02:22 +0800 Subject: [PATCH] =?UTF-8?q?word=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/courses/CoursesServiceImpl.java | 200 ++++++++++++++---- .../records/LearningRecordsServiceImpl.java | 6 +- src/main/resources/application.yml | 36 ++-- src/main/resources/templates/courses.docx | Bin 35397 -> 30686 bytes 4 files changed, 176 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java index d4e4a57..19da937 100644 --- a/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/courses/CoursesServiceImpl.java @@ -25,9 +25,9 @@ import com.teaching.backend.model.vo.courses.CourseObjectivesTreeVO; import com.teaching.backend.model.vo.courses.CoursesVO; import com.teaching.backend.service.courses.ICoursesService; import com.teaching.backend.utils.CourseCode; -import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.apache.poi.xwpf.usermodel.XWPFParagraph; -import org.apache.poi.xwpf.usermodel.XWPFRun; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.xwpf.usermodel.*; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -38,7 +38,9 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.math.BigDecimal; +import java.math.BigInteger; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -323,8 +325,9 @@ public class CoursesServiceImpl extends ServiceImpl impl public void down(HttpServletResponse response, String id) throws Exception { File rootPath = new File(ResourceUtils.getURL("classpath:").getPath()); //SpringBoot项目获取根目录的方式 File templatePath = new File(rootPath.getAbsolutePath(),"/templates/courses.docx");//------------------需要模板的地址 - // 加载Word模板 - FileInputStream template = new FileInputStream("/templates/courses.docx"); + + // 加载Word模板------------------路径换成服务器里文件的绝对路径(要是相对路径也行也OK) + FileInputStream template = new FileInputStream("D:\\Users\\Desktop\\teaching-backend\\src\\main\\resources\\templates\\courses.docx"); XWPFDocument document = new XWPFDocument(template); //准备导出数据 @@ -339,50 +342,34 @@ public class CoursesServiceImpl extends ServiceImpl impl Integer course_classhour = courses.getClasshours(); String course_description = courses.getDescription(); - //查询课程目标 List courseObjectivesTreeVO = objectivesService.queryCourseObjectivesTree(id); -// System.out.println("课程目标:"+courseObjectivesTreeVO); //准备数据 //总目标 StringBuilder overall_goal = new StringBuilder(); - for (ObjectiveContents content : courseObjectivesTreeVO.get(0).getContents()) { - overall_goal.append("\r\n ").append(content.getContent()); + List contents = courseObjectivesTreeVO.get(0).getContents(); + for (int i = 0; i < contents.size(); i++) { + ObjectiveContents content = contents.get(i); + overall_goal.append(content.getContent()); } - System.out.println(overall_goal); - //分项目标 - //知识目标 - StringBuilder knowledge_goals = new StringBuilder(); - StringBuilder political_goals = new StringBuilder(); - StringBuilder value_goals = new StringBuilder(); - - + StringBuilder sub_objectives = new StringBuilder(); + //课程目标数 + int course_number = 0; for (int i = 0; i < courseObjectivesTreeVO.get(0).getCourseObjectivesTrees().size(); i++){ CourseObjectivesTreeVO content = courseObjectivesTreeVO.get(0).getCourseObjectivesTrees().get(i); - //知识目标 - if (i == 0){ - for (ObjectiveContents c : content.getContents()) { - knowledge_goals.append("\r\n ").append(c.getContent()); - } - } - //思政目标 - if (i == 1){ - for (ObjectiveContents c : content.getContents()) { - political_goals.append("\r\n ").append(c.getContent()); - } + String name = content.getName(); + sub_objectives.append(name).append(":"); + for (int j = 0; j < content.getContents().size(); j++) { + course_number++; + sub_objectives.append("\r\n ").append("课程目标").append(course_number).append(":").append(content.getContents().get(i).getContent()); + } - //价值目标 - if (i == 2){ - for (ObjectiveContents c : content.getContents()) { - value_goals.append("\r\n ").append(c.getContent()); - } + if (i != courseObjectivesTreeVO.get(0).getCourseObjectivesTrees().size() - 1){ + sub_objectives.append("\r\n "); } } - System.out.println("知识目标:"+knowledge_goals); - System.out.println("思政目标:"+political_goals); - System.out.println("价值目标:"+value_goals); - + System.out.println("课程目标数:"+course_number); Map params = new HashMap(); params.put("course_name",course_name); params.put("course_code",course_code); @@ -393,26 +380,145 @@ public class CoursesServiceImpl extends ServiceImpl impl //课程目标 params.put("overall_goal", overall_goal); - params.put("knowledge_goals", knowledge_goals); - params.put("political_goals", political_goals); - params.put("value_goals", value_goals); - - //导出图片 - params.put("img","wyii\t"); - //根据模板+数据 导出文档 - + params.put("sub_objectives", sub_objectives); - XWPFDocument xwpfDocument = WordExportUtil.exportWord07(templatePath.getPath(), params); + //根据模板+数据 导出文档 + document = WordExportUtil.exportWord07(templatePath.getPath(), params); + + //----------------修改表格模版在导入参数之后 + + //获取第2个表格---------- + XWPFTable table = document.getTables().get(1); +// // 获取表格行 +// List rows = table.getRows(); +// //获取第一行 +// XWPFTableRow row = rows.get(0); +// //获取第一行第一列 +// XWPFTableCell cell = row.getCell(0); + //获取此行的每列数据 +// List cells = row.getTableCells(); +// System.out.println(cells.size());// 打印单元格数量 + for (int i = 0; i < course_number - 1; i++) { + //新增一行单元格 + XWPFTableRow newRow = table.createRow(); + newRow.getCell(0).setText("课程目标" + (i + 2)); +// //垂直居中 +// newRow.getCell(0).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); + } + //获取第5个表格 + XWPFTable table5 = document.getTables().get(4); + + for (int i = 0; i < course_number - 1; i++) { + //新增一行单元格 + XWPFTableRow newRow = table5.createRow(); + //获取第一列里的段落 +// XWPFParagraph newPara = newRow.getCell(0).getParagraphArray(0); +// XWPFRun newRun = newPara.createRun(); + //序号 + newRow.getCell(0).getParagraphArray(0).setIndentationLeft(0); + newRow.getCell(0).getParagraphArray(0).setIndentationHanging(0); + newRow.getCell(0).setText(Integer.valueOf(i+2).toString()); + newRow.getCell(0).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.TOP); +// newRow.getCell(0).setText(Integer.valueOf(i+2).toString().replaceAll("[\\s\\u00A0]+","").trim()); + + // newRun.setText((i + 2) + ""); +// newPara.setAlignment(ParagraphAlignment.CENTER);//水平居中 +// newRow.getCell(0).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);//垂直居中 + + //课程目标 + newRow.getCell(1).setText(" 课程目标" + (i + 2)); + //扩四列 + for (int j = 0; j < 4; j++) { + newRow.createCell(); + } + } + table5.setTableAlignment(TableRowAlign.CENTER); +// //遍历单元格并打印内容 +// for (XWPFTableCell cell : cells) { +// // 假设单元格只包含段落,遍历段落并打印文本 +// for (XWPFParagraph paragraph : cell.getParagraphs()) { +// for (XWPFRun run : paragraph.getRuns()) { +// run.setText("xxx",0); +// System.out.print(run.getText(0)); // 打印文本内容,参数0表示不考虑样式分隔符 +// } +// System.out.println(); // 在每个段落后打印换行符 +// } +// } +// System.out.println("表格行数:"+rows.size()); //文件名=课程名+课程标准 String filename= courses.getName()+"课程标准.docx"; //设置文件的打开方式和mime类型 ServletOutputStream outputStream = response.getOutputStream(); response.setHeader( "Content-Disposition", "attachment;filename=" + new String(filename.getBytes(),"ISO8859-1")); response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - xwpfDocument.write(outputStream); + document.write(outputStream); } + +// public static void insertRow(XWPFTable table, int copyrowIndex, int newrowIndex) { +// // 在表格中指定的位置新增一行 +// XWPFTableRow targetRow = table.insertNewTableRow(newrowIndex); +// // 获取需要复制行对象 +// XWPFTableRow copyRow = table.getRow(copyrowIndex); +// //复制行对象给新增的行对象 +// targetRow.getCtRow().setTrPr(copyRow.getCtRow().getTrPr()); +// //获取需要复制行对象的列 +// List copyCells = copyRow.getTableCells(); +// //新增的对象的列 +// XWPFTableCell targetCell = null; +// //遍历复制行对象的列 +// for (int i = 0; i < copyCells.size(); i++) { +// //复制行对象的列 +// XWPFTableCell copyCell = copyCells.get(i); +// //新增的行对象创建一列 +// targetCell = targetRow.addNewTableCell(); +// //格式复制 +// targetCell.getCTTc().setTcPr(copyCell.getCTTc().getTcPr()); +// if (copyCell.getParagraphs() != null && copyCell.getParagraphs().size() > 0) { +// targetCell.getParagraphs().get(0).getCTP().setPPr(copyCell.getParagraphs().get(0).getCTP().getPPr()); +// if (copyCell.getParagraphs().get(0).getRuns() != null +// && copyCell.getParagraphs().get(0).getRuns().size() > 0) { +// XWPFRun cellR = targetCell.getParagraphs().get(0).createRun(); +// cellR.setBold(copyCell.getParagraphs().get(0).getRuns().get(0).isBold()); +// } +// } +// } +// +// } +// +// private static void replaceVariable(XWPFDocument document, String variable, String replacement) { +// for (XWPFParagraph paragraph : document.getParagraphs()) { +// for (XWPFRun run : paragraph.getRuns()) { +// String text = run.getText(0); +// if (text != null && text.contains(variable)) { +// text = text.replace(variable, replacement); +// run.setText(text, 0); +// // run.setFontFamily("Arial"); +// // run.setFontSize(14); +// } +// } +// } +// } +// private static void replaceVariableInTable(XWPFTable table, String variable, String replacement) { +// for (XWPFTableRow row : table.getRows()) { +// for (XWPFTableCell cell : row.getTableCells()) { +// for (XWPFParagraph paragraph : cell.getParagraphs()) { +// for (XWPFRun run : paragraph.getRuns()) { +// String text = run.getText(0); +// if (text != null && text.contains(variable)) { +// text = text.replace(variable, replacement); +// run.setText(text, 0); +// } +// } +// } +// } +// } +// } + } + + + diff --git a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java index 59e6607..e030f6a 100644 --- a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; import com.teaching.backend.mapper.records.LearningRecordsMapper; import com.teaching.backend.model.entity.records.LearningRecords; @@ -130,7 +132,9 @@ public class LearningRecordsServiceImpl extends ServiceImpl+B z*rv%MwK9QbRMIXMjNs9By4gw;A}VP)B!QQ!4g2c3UbswAS5;Y*^Je_@=5rIBv1`R{ zN1EK~OYmz`4h`CN(ZzaDRa7xsOX>jsZykX8=W*)@c1)(JMzaP@`Zl-tA4S4(tr9&R zLmEPVz`^XdzgZ6z;rQbDnu?$raQcj&sM8Nwo;Csa}4f$lEy+oo?Z6@%CZ1ccG z>Lz{!*7@W3UVFQaL!Zv%vVkG}Va1WotMuoip0{(2-=Q?AE+fFDv|5YwzJWSX2gcS!K=pF2w;fA6~_J z`jg9jE9Z0VLw1kAl5yMoec2X+3?>ZtNA!F}+1rXSEZIDxCK&#smAcX6h#HY>UHX%1 z0NJl+8`?k4R^>XpmxA9}-~4uO#wXs-`$EQ;z;3KA#oWgDm6+y^XFCqqtLzbX%{r2b zDfMcyeA9L{T^cpNv${xK{1@lG%0n$7FalkApJxWm)6gm`>UB3u99~Q+>mELj7>Tl@ zPut>hh$7g^+dS#{&|SXnGCG*Fmlu>L3_h)>WPMU6>#B?>!3`xcQqY0uRa0BZRcGqSs^nP7i(d5 zQ6SIu$&^x}w!fBqv13c`B zwty91n_S=WNy#1Ac=W*NKxi?5w^4>jf_y>dhhYDmQ4258!^%#NW~B^-x$%(y0~lokZtO7t%8z82LHwU-G?7RBfG$@s{BE= z#ha}EW7!wr{ihP9`}Xrk7lv$pCLkgKqoVn(Gc36Tv;=Nctgq}t^u-@(`=gA2MlcQ1 zhYH%PMcrMtQc*#@QLkd97jaFe24vW`*16>MFP&CWYV}g84(UaD!N~F4&U%?aD#1z0 zir|tFgTA@zHQ(`v1|J|ifQd$zCI!T~%g{-;!LRMB)c^f#dy1{vmdo?!Ct%|1b)@^( zPLCGP^P1&tZig#1nQOD2pov;#e(qZo9Eo|g31$rOa?sVjO06$5W|XP~T-;2kZ#o^5 zy6y5v$z@^cZz)OInL%-T+aBNA6M1zS?8QfxVz54_LDwSZ0z5e2r2d;BSyfpl{An zOzxeu%bNz?^)Bn*iKE1xBTPCbfg@@p zDnX_(J*jlt3QApA3|c?0RGI5e!Sg|rg?C+R^ytA&EYr`;%L)tKivjWPmwxRAOicTN z`V0j6y#ek85P?SBgrD5vM#&@JfzR9o%OtNSF*g=JQ__tbv*-9!xEWe-aTeTb)<*dm<^XTn!VC*s&7iPrtkY@u?&rnIOd5@wWQ;0nmD16H(&r=$V$$+n zt6nM#l%f>@i^?8*_YkT4H!ICm&YSk^hn4qZRwA-6AveK;C0BhhelRU#@QzB}QVe)0 zxj97lUsx%XP1Cbf0~w#?99^^v655)V4A}Qa=7^DugV3(uZ6dq{nkgPa*{S4WN+&*puYo@#UHydzb&0t>*pPOt#t`ugT)jZY)Lc)8PtK}SPHqq)87(cZBZZ& zPna^ax`q|gT|a`bPg+3yiwJ0wz$n(ZiSR4IGR@upRPv}AR&^{R08>_qI_Y7&eBs>dkb#iso4m-p>z62imX#zQH4i;V z5(SeR3bVcC1LdE@=UFd)>-LizHoInA{NX3z<*8RyUyQ3Jhl^iFxaKZTl%{(1_w98$ zE&=ctEO1Y-%FJJktRUQ+G%&MyVa$_-@T~)Q{DA_d4jqX z%*Zg8YQX&YOr!B`HsG(A??KnfX7lpYRClUwHQ%?@x10I2fuXHnw`txx)M;e;&mQ>* zM@n@g4EsPWK@z`-I;xTRdk|6%1>VzCBjxu=orl*_U^KCXGW5z`5C%qgA&p0PY?P)6 zi7tTadJn$Dfk&PtSfsP)0(xCbeeX4wzZm>SxqN2C!dTz*d@Q5vkFA2`LC}D}zRS@f zivzz-XH@BuwS?)DYMmOL-@QW@Q5~#nFZ_C)=RC!!73z%@BUNIK0bkx0`JqABmP;Bm zx5hBx#iup^P&B3#uORc6VvSDS#UU%8!406rwV-kP>dE3_dkw-z25|PsUYeteCOAUARV<; zfKwMnl!+H_vtZn6h^YpLF8%a9jvxO4xl>bij`f?=bVbAxoTD_meKhki!K7RghUfm! z4U=Q=_bj?}p@vx$n_K4Z)SY7T0#iULg3@<%#dLgfyJMa=Mx|LHsjPFfLzWIqVN;&`Je1SKOcW!Mj04F>;+e+tePZfLuDaTG>Poj$DA(@O<;S!vd@RA&uPZj>b!5D& zPQcdtL~W9E%uZ&wIZqR{EH}DQ&uJ`I+Y!g|-IA{(>Bi!qy(;kUU533)vYFQ82PX%@ zRHP!fSm(;D)iYjM^l6+Wf+_$dWA>7wEGCOoX*M1Y=fN{i3R7z2Qu)BoMAC9}F=mqA z4(k{szC}Yk6;p&6NP+h@c&?1lXJ``qMLM+WK)Q%}Cqa>}-3JQ$a^Huxd0!jyx1hmH z@CUt4^W;s{(IoWIkR9yunayRSVg5N1wp8RO=)6ER*8p^Kgrd$ z5B++qv71O41zQv@o3&9-2MWUK57dz8L8J~ghcghuW;df348YK$8xYQWT0D9REOd1x zVg@R9expm;wF@toOIF(vIYD0C!i%;mj!DK&Xk{3BHCOj>!45E!sctK$!fRm zD-P$V+^AdYOkl|VnjAnsTx&s*JEtyih^Le_dY(L&$sB29F(SgHpqx@50Sv!(KEOt0 zNv4?G77AtU;+H1fKdG9DhYb<&9HlcNYoYcS?{^`SP4AUctAMI?rKih(;nCQXFY;2A zqjTUisgN|AD3o**{u+Kt5BLi2_8H#xvojP-Uk%2F9NV>W4g`qCQ~&OVCzC}}q(nJ8 z9~i^YNg~9zbR~=6l+Et(Yxqy$e?6RddON>9R=ikOXq$`YTArqYd|E%>&isv;B}gq{ zuYM)jE5@2`r%w2IyEp{WIpEiX3im*YcpULM+bWzf^DUsnY?G02qTh`XeGgkxg@EDO zbUEz+eRCZ62DoAffAV%Lr}yGDza3uMx}0*x80x%m^V6nzsOrP9rbK%%7({1E!bxTY z2J;k0(lhK|rXDMvU67Hx`{f%qMv?{!g|;mt5?3nz^$4&n+JT4Z8NCpp^#sWPn?A!3G>=e7Eab&j-xJDRv>o z>@BKGoF!&fes;cJERE-7&GNAS`vpFZmee^TWEFg=uq^@@L?3V8n^)cTrh_nX!^A>w z()Dbz9OxZ8HBE(xF+sKn%1@L$wGP8Ao6lF-_vJIxvWaZ(&?J@_{1nklG>_sKqkx8t zJWj6>NdN@&99{uup&gD?Zx4;#-Fke$;1$HdoK2t5!nA5^g>s*a*B^pwQBb z?BCa*byTnZcwZ|@(`jzV%ZGL@t67LLQ7-)b3y>`tD5xu(2Pf|vMfQ}*;d=oK6-hpz zdZ&bm6JOx`BLyQ{ZIGo6o@}6J z8s+xI@01BbV34!A+N`wGMocZrrEjL?1=M2x5yS#Fqm{73O-u4l?dObw8GbXNm!?lb z#mJ3Gxfu(b-_+jvJmW)XD#k!A;noHbLsHGHpCxOgFX?5NfYE^}8luD!)XDJ5?~PH# z>TV|>r)w%Su_a12>ih}Y!iQ}j_&UG+VR7TQJAn66_kOCWlx)#Z-76`Llx(;04yYTD z_n+4bSd80;9WPjDRWaR54%|@M_JY#*_CnpX+~d>Zpulwa96S%eWrLDIJw1 z8$9eC1Cucq7vR=ToJcz-)`$-42w9n344Q1C=*{L4o;v?S@{M^IHRpjkD=&u5aTyCn zEVf|d?1Uc6$hYb=8-^L@TF&>P0LTnb1)5GShKVwWX|ZmRr+dXO1qDfK-D6seb-yQU zv~pcN#$4rnMfGKjR*j+z%crtHZbJ}}%i*}n;<#?|pT797^0?{WxBo3&$O$G_B}zzRre~9IGo@5z zREP!63s9IlWEbn*Q_x~oOSb9le?oHs*Sq*!8wm%|{7Nud9G}<| zQ!WirbfEgu#Qyd3#t4R+m22+(_7p50n?^@TR0;$glq;x&OOMZc|A|TT4%G?h)LEI~#7Dlm0T{~`KV;5UGIcY4 zn$-$yzQ1iOugn<#{aRV5&UxhAoqtq+KZXJ!Y>B2+P3T5Ws4~F~FT+$AP+a#w)_sDL zap{4#Og|`Wa|};|Pr_~bd-8^Ba6*ANP)gaAisiV*rx{co*@t4bY>j|mT+uNpyQ(^F z=DnKH1_7YNaje4_0=TROje&c4g!#X7)~#;&yVnY}gp?;VZE;y^Yn@7@;U z?#{2FHZH$I1B)B&rJ|m?N}cBEzJ~$mI!a|T?T>0NnZjXwkq)?I2Wj4MHfpz_Lb}@XLQq}; zKrx+DskP*pqwh5zEcqA+lcKiSG)W0_a(^c2Duty~@_tKR=g2#)!`MBxcRU-nexHFk z*|>128$v89^vadNH~sd1C5Q!87~nR}E`{SfolhPdc+&9-8Gzgv|IWuiezY~DoV|OU zMZ`Akziiv5Y|oh+5}dH3f}7^?&;>A&_=iI27U9izprmv&kV6ak5Ue>^pgg?d!g1_4 z17HH@-q~{OuV8Z~3A&%Z-eUY624vjaDf%xH0lsDJTVAh+!Hv{+*Id|FY(nDC#x27X z`)xht_O`w!-mdQiZ@xW`r%ByCSnw3AFb6i3pWJQwtCOg{jz`Pa4~@QbWq`{v!#;_t zi^|SleA9ZrKTqJR-)*NXPY9KQjO$y8I;jzJeY)O1o~}RPr*m%0Iuowg5Hn=lA8Wc> z*554rZ-$SzTLGY{mtTK#y5D+V;XIW-_sjjSTU<#tYa_MLQwP1p9+`K3k;P_=~zl<0c)PZpcPmdzhHn>Y>bnr#H%U(As)Oti1u*A+7b_2)x&qMTGl1n)UT`qC7dzxg z@IN7JB&1lu$15wAL8{9=uLv0Hw#b&_p$5pus#BX8tJpX0W-HYT)zy`~7Lo_Ip3GE@ zQ#|~SLc)F_e;NhEVfEo8(altc6t~r_(+U#(gUp%3*ig8Cqy(Y-c?NCMmSv@5JN(@g z;05ug0FN2XQ{N}{;|qYp{ddZIjKGkdEE;TGtwLj}f~XOxJM*k1&GSa;%A{e_GN@hL zd3HzMkNtw3(X`ZiSVGoHnI*2`lqWVNMlbVHXKETgg4<}(GU=MfC!^|jJ^1qUBV)#W zIB!bVu#8nX(Y4@dICc<{P?cVs?JYvE;mk` zcv$vbJEz{J%PD|8ijoPh8YA#14z}QdHP56(oj2RD2<7{TQ_#0D?ZU+xl$3y?WbH5s z=q;S~!UYL4wlFjkE?1(M+%k4h*Tet@!{Uav!@5ebwH_E5*Kx2~u!dGY=Tu9mrl_kf z!RVGu7VgjWV8Q zaSgM;gu8B%zb0f{2l1flV_WqhFyxcT=FxmImdvQ)bnzB*1vq)Ti%(HERv7K)nZCfW zo(d8@H1A}e9vkskw|R2%Li=rPS??G+13evc9P~S8JN$@qng99`5`DOT-fge!yur3H z<+b6h1_0iwKMxyz%{AYL`G37*(@|fIAnR}uU2pGL8NN}!to!+twfn;dtO`OK91pgheeW+|pc5ijoD>Y$5kWL%0KCf z(g=kuqg@sx*i*Q&8;#*2)IWrvM2|W|c2i@epav^tnu9b+i^1? zR-gSm&JsNM`%(}mY;NB#pY?`$cyJn1`uE>w{l5ub4RrfucZD$}JgR`*Gyl;Vl2ciH z{r|&Sg3()zc`S<_K~JDM(fqyIOYnn#v*L_|pqVM)X%DQGfDhp;o^}h%sm9JhnKzV1 zvMk8;ayqjdU(U7kv~*_98=Dl4v(R%$q!}3^(%VM&!7%%=UCrizNUJiZyrCH$y63L^ zl|coV^!EZD<+@vKzbwo$z(Mr8Zb1g+Y$Zz|%~3*#ge#;XjcP5yp9?k;a+ErsKHZ90 z<69EYLhlfMH}DSF;_y&Gz#W8&KF1fmD4klqJW4=T;&%*}2BhtSE=G;Ail{x`q1$4g z(M!c->H0X4nIV*^@W(Y4;jw&;{Iz%y9%r+A-)09?p>q@=%xUe;|0q)GaB&jtJPULx zRyH*p!E2>?#}vZ=1&EqUfScZpTalj=fzIM8eP;wwgj`JajpT?jckP}7x0h`@@}tAq z)OO{6Y4$o9$Y?qc{J>W{L|i(?VUKUbMw#cwYAAZVncdSf;u%e8x z-HZVk7chVzL`R3C2D$Qc#2rIGP3NO_p?6Ua@NHNwLHz57`mp{!o^s<7WyRES2_!in zAerGrVVQxO0&_K2LgZ-3BV44tw1G4dg50@oI?A^=QEY`}XsP)8tGRL`s;C%>sO+fZ zP(M?MlzqgW!S=IFTN$>0b`qn5b^bR%H$>V)LJxd=j<)Y?ygcWQX6leF@^XY z>Bv&bHF7&9&oiVIKkuZ-LOGf>jJB(|N}EQ-3mCu6DrFnAiUvV*MjJN$DbM-|TvFHP z#6SZlbK2p`!-2l0Z6Ex%S>MBqu%H3j(A$tb>DlZ}CiuL|w6Yxq$h-;B{}w91(dEkR^mEL2A7cxJ2a_zMH%Fc(85S^f_rU&d zH+&_>-A#A6#&CmMbp}6XLL-hJZD5SpdyS8stV3m`uGW|K)-T~%$PUX1wXleZ6Vc^( zVkw(3p-68Qyi6Nms7T&NaZ5gghfZ8%3z_Aw#}7XmIzvguEHdf7tS!+ zeC-SYe(qA9qfjdv;f9#sY6A9EyUIx&WCM*`X|M(uF?exuTjNtImpeh~h$v7iKEWbT zSWGXP=xywLp=phbb6;Qoag<(fnVHjj!;?M3=UE~^x#4b%?CnLL16lZHOpj*fl z3PW03hcFwJpmRF>>wN>%n;rwUSZEwN%%dl%dWX5_3XfIxA~{@sC;+FG1msJVzZJp4 zIUMLFS{ z10s~~c-k^F(EJuPS*R)oslNM#wn50y$!*AB##Yx*qX-$TdO2#csqBrrsx%Z>{1*5{=!ko2}F^5aKye(dq%f`psyBBIX+i^ zR;xNAnb#|maoxfI@xS*8s=@kjh4^%qVP7J2#@E)-$rf4cIg>+szXN~2XnbnK&!+&< z;nq;xx!15R?OfHd7I#B>go`JCvwhtaC)TrOmjinQ3{;RP1IW9VL{9aF%uJ7%Q*KGe|<3?uz zP=5(A78;qMRkZ#y$QiisSW!vZS*{^5oo`|gknitHU3*8o5v(t|$e*81G0%j{9W4;> zYDo?Z6N*CW08LGN93yULG64BiNWoVo zHv_C#7TektoJ$CbUt5`LJg(E;$C*5q5qF`2dqTB`f!DvlD0gDBfDd2wV}P__CTZRe zBDy%+1-viDd`GW~5I{$AcIGnG2gXpNsC@Bf+pq%)K=UCSNq5XgRQc%{$(D7mYrC^_ z#c38?c01!1T$`)EgX|g4$a*tlvwZuv{nU*bc2$XGobJT(r}{;@`C>oGRV3bT`##OW z_PgM!v6E!hZ00~K&RPN(uuk^B07X?>af{XM77$kqHxW;hiW7Te3(%xjwd zA`rAl-u{&(=BisW+skQI^8 z93z$gE_9DvZ?v3?M}Hn9Z6`XkROZpp`g>>bm_+`OF7kdZ5~OH^0rd0DuA)@bsQ=FO zoymov;h?bC#Oh1isqC?wb%n0a=YUG9UqS~lpyuq)JH=Q?s(-qxHiBeiUNDqfzCPHO zj3I;>d$ZRNw&q-VHgN_mn3%gy(T8sL$Lw3X3czP%^JQSOigP@5j|Vzwqi?}ecaKeGf8bOru@+HQ{k0@Lz4zi_+g3)Bk^ZoL6-9#8>rLgPz>pMCSgiyw}=24 z;5PYCy9@t<6LF-k;~n&SyiSG!QPSZAk|$xx9>gTuu1^7*oYy zX<8Q5LK*|I?sUUx3+)7Mu$KC|&f-V%Pf3%aQiI3C3^s2w=c z(>K>^ZL9}|E_V4gdp|lLzrhj#V8gn4Ra9b+Bxwjz@*3;XaT9-nAySkbu}4}7_e2u2 zQ?;ui%xw3enW&W4x6gTT8Uk9ZG#t3biAf@1o$#5ss#a#EY=%|{RWaGs6^7W^QA}$< zeC2Ij9F`NCHSXWor{vlQGX7{(Ri8MdL>>XlenLhFw<^$132C0=!!LgVmWG?ZJsIr4 zbXIXjX^Bs2+jr3=F;??YFeLq0x&7|Typ;za=424#rrxI>F)si@qNgHRFJLw5%)udv zAtIYZ(^i|_r%h{5?nXeDI0aG~XMRj6oVViEb+P*x(#OCTFqA%tYA3xn@>FZK1!Ch$1dX zTzm>p4EEG7$e$=E+c5C?>8R%cj*M06#2Zr42su<=>O7;(v(*S7Yz?~~9)LIp>M=5w z@9zpT_M{nPiu8QZ7vFMo9BwPw3RdP(rJotn=0*9w;8gIxEwg4of&EB zyCPb#!9RFl232BAB4Zp@G2ghR&l{#qZv zu@`tSM#aKGo`+XV^})*4HDary3gVzW5#4UcF~VYtWlsWdBt?jc@##`!K`9HcI0$FK z@RgeX;B5TOpQT+FSaTh?3CBI!(aZ~S!SApJ@B=79gBLcxC>}(`Ggt|a`w<&CsIb*#4Z3(WSI*%?I>AaLlmZaWvdaKkPK3b z7B2TMyv6u7%bNdQbP?6KV#`ES2?7=ErT?}_TTw&NU1PUGmm=Cz zbE~RN*xyUc)!z^+KXi(v^O0-AP;7q{Cw}Qj1~4yz(VsBO4s)ash)-F43_>n3FA|&w z54H0pZxw}*!CuzEp?{$yBnT&=D!xddQYXyIOBAu`Yf1mabUoQiG)|32!fdtOO%A?w znAspP#m0|Lf?Tln%TYu3ut=tf(-7)zMo^@a1go%MQZ{9X+?#;6aX~WdC5q-r)CG#ZO9fkEn&O8agA`J{*ehK|3OQF?c%ulPu|Rl#LcgR?Z$8x&KYn434Co#N1| zOz_vJ06m}AB#BjKm<2y4#1Kw8^KPbl*jk_YGJWwKs%CAjBQ%3Y350N1~mo3QwATIuPz$o)=SF7R|0s6CrsRT@=Xjw-592V6&sG&s>EHV6-u z@Z>EJ%^sA&I9VP4wn(ftE`BYor#*5K1o>|YUFJ;M&InP3izI9T#KmprM#BEA*zqSh z1t-8G%TCF-4CGFgfr=CMrrhPGOAJIJBlO2F#SzRkR^cgj(~Y8z42BE%?)q9Pf>?W_ zlHqX$>;@iF)BoyV??hO+L>19Jx01BiWtToohxFRof4ZmG8G3V-c-%T|;GQ2mvHCgk z)G@@A1Fsda&u@a>IdC1r4vVp!OMj}L7BHvMW*|hbO zmP77L19;vS9NVL}GJ%+Riy*qMzmW8k3&GJ1fzeaLP74H~ARXV|=_0IP$?oB~(RA~C z%wqK5Em$fcSWH;)iVf*B9n$F>*YG`{OT-Kv-t83_+?Mre^K4VCA;#; zrOE^h`&RctRA+W|#FUqZL))LA|A}>gS;4&RIv5BD2Li~y^UNS1o{lbNOy&+|4vuc- zu8dyxc8h5niU-Un;WwJ=o{=tw*~KT3!GZm7)=Vguf`QJP!(@V^9_#l{7i0Bu9W;oV z8!_wk0(q7JzEtg9g13_!%Jvx;bV6M)ehF}7=u|Cq-_NxXbN$b;Lu7rK7;Z;^KdJ|Y zhW_6k?Fr@5p-qckNTl*znr263%N01JVk+bH?Yps7)`!CeC}T;Rb~puAOzy#jBnZ*D z^T|r4n*p9$mvwh^1U!F>DDiG`SU{*Fi?wuptZ?_%5@~e`C9p9NLE2%8>SFNn;<89@ zE5Nf5z<6qTi_e(nqjoI@q?OYF?8K6Io-#4U#nbNlTkwpSm<}%F93#sD=M4K=e~xSp zd*O7S##t?P2-z~0a3%-;MSr%s*zUohT|a?y=B!=zB1ZeYE5rVHz~XAig|oFGM;zqT zoBc(LE}2hVW_@$@b&R<53 z&gL@3WYz!1iELU!Bv@vvwo&x{(Q8~?XFP-VGM7m%oSYXHIowP<8~BPkLBT0AGq7YC z+KZ)|ZL&ath;rr)s)!HRkE@x_3B+zo?j!evJSyyq$&xmtuJKa^R z)m||n^U;Q>a+5nDnsBH9Ea^xOZ|@b$BT*V1Yx&Zq!X-Q4-98FakxM;em*ErSpf7%XC5=!7q*b z)UL{*2g?vatfE*(O;hdAQ~J;}$(|3BHqIQ4NuQdKiVH?Zo3dCW0`XdQ0Svui)?&Vc6-PZ`gj?5AE-dr z0oUaM$5d#ocxZf8yzpq&^LSPK*LYLw&VjV0RvhCAED*(K~LsteR1XU5Eaf z2e9Q0pxX@E_A6!cYlY0=!e*aub(t>BH?g8E-7C&pGGCn)TOS&esA9*{xsqs;OLYkFmSJp#( z6eu;!sTDNfQn^!rJQl{ACIMP>yB{+_41W9-b6#19Bc255dI0U1)}*~yGhTvA6+6qB z60q%I|BJW^XHTE>N49&Lj`CT-nUQv5k{PjT;P`ZV6$~kAdOzBur{jW zVLy~`qLON8UgVvcZKi59JtAYGB5?cD#&F*Q>e_DvbH=#j;4h1OffPL^G zOZN@_K1nOxqR)tK62ir$U{`wOG|F%oz_W29wJiiCvT(6ZuE|{4^|#eXVRw$4{E%@o zWG&b3%g)jOQ{AxIT|d!rfN1Vtfiz5oyUT;9+>u3@De^vJI@Thj4|3M>9z6uw0lMu& z6GX;Jaks_Uo9AD~e=W67w@~1KO4z|W(UB)y`jC{^Svd{R&r7NM=EP4yv#w>H0EWx5 z3;p(`ys+@=9kH$#+nuwR2GoejMfPS;db=E)Bf5KSFzR3Bi*^IVh zF2k#3GmCE0UUP$rQJ|3>PP0Epg6n&UPT@utPR`QU&+?O zD5wxmfkRP_kYU_ug|84ilw-#WT*0C>xbb2Nijbj|2u2U4p%>kO{)~Xlg3dL6^^zBW z@d#bcPUr548y=Cf3e=2BXWfykeu_%n$Gt&MGvn^Z8K{2p$7_G#2P7Tr3Eq<9g<35^ zqd<2(LqV|O$65EW?Ck@?y0#0$_Z=tzdXE`X#1`7g6`Q%gQn)+7vUCnabi;0_$wgFNJ=pj-^u; zB^8-4{cvASHKw&+a3^ET@xln~(BRx6$Rnxafwtl(O=-jJm|t{l#F6sbFSd#=4NA4J zA}S67GB5I3?++ogGPvW2bOSABE0q!~l-zLFD;ri@stqi70K!i5Rhq}n(|XV0N$oY0 z=OSdskCLf=9@e=xY2l_t4uuVww{feoltg3~pB7-)F`%b52I{y3+0^--x?6^ed)FHY zm2x#TKYgT-!c_LcKhF%(y-!fiu_>Rg0*NpjBWyr2{V?)oFmzBP6?~>(XP7+4% z4W#twsb+u9+DVROP7}NyxEhDIgsEmW6U77`@MXa5COuZ$NMF>kd=s?awYcj~cGkJk zC`oEOfw@(2)9{uM+v1AxW2kGch1uEGhKfTGj1%e)0Is!@=r{9yH4`Pd=hDtC@g3eI zb87-e#!B~{zvZiR+sqqvOGbJ{S15u$@x|2H*2$KUm%4`&zFqsiP6h0H`G{S^53?`S zXn0A1t&js7qd3IX($9tDYo=I~=NS|HJ4Fm~&Zv2jzc+zeJyY3U#?bWoC|Kq(y+wOu z;fM)+NE*BI%%7H38)t^_#9xsA)nTZ1nJ9pWQ;B#|a1am;BoGj^|Gz=CaCC4}Gd8g^ z|4)Z{n6~Axz>G0+ljIda^Q@cAel>5i)#O1((#N=(*e2$%&yH2EKXkn=2(}M*hoINb zfQG(4fk3q#Y)Wli`50n>heljI&pmQCBl!K1u<$tmD_0GlEc3%_!^1Pl9)L;|9eFRZ z5#YSN0c$7sW0E`@PI3JyMf&}AcQ54AnGQ=&27cIe&BS;^F$J%MKq?&8SnE2PbZ-_n zCe|1-eXZA++gAYZIy4xuzR*8Qg~Odc6wf1Qtfe55yOfj%YcCSDX3~qAoE8N#9hPuB znR7dw6HA+YQe3(?G+R6C0f1BL7w-H?iBe=tRUEm*NTFIans3w=BOg=ZD%_3Ns|&_1 z%33}Q0~ZcXj?KefF>F1_&91Y%Y0m;5Xr%_bw>0j43MA_3O-_nVwrRV^=nVv=w&tfgx5I-S|>+EU0}F@1JL+rq9^cLxh3y;7fWk0Vh=palM;zL_p7$DWqoR zf{NoOFqK@e#vLN3gkw}URtaZvl62ScPA>*O#TgT{*^pw!yyq3*OK7w2#B%fX-P%@0 zy)#lcKH!X&u8t)s29Ou*^@brw?1hH2bwVGzxj3hZ^OnU*U!=rVp9BYyRYKkgC*oBM zK)742B>quJ^ef#6HVfC4NJ3{Am2nhFVibQ0_Bm-G`~35SR*iE)0*xmj07LaN` zO~Z%(iCfB|-3!c+JA@RemH*RVy=j9+*w--6p>Y<7&{Hq}1^9P)jHguPOG4w-`PHFY zod~^S?1uvPwFxE_S#otnS%#u?Q#9qa#N9A>3y4_a^8f`t7vTuSfikw)iPUEGKa}2w*6QC64SO#=joO~+wXcU>>lX1m&VAnfnU^r z+8MJjFUY?0ECfnI#O-f~|GY(1S&fF|0fSU9AqQ!g!~7bl0$D);^*~8T3F{xA=h3p# z7(uJJzUx_3@#dWhzQNmprcQL+(2Db=;%Jx`*3PO{gUV14(~L|irDz&9Ub7`&_K-L;NyRc5cm*ZRKl)bdC@~fx zrb%$LAVDJ#X#rr2%ty> zy%|pXvk9$I45vj`bAlU}i&ooPCEbQADuQihwYI)U12VUTIRBi(Yg-P1nA2KDVRA;$ z50%ZUTYNqtO}32aAJ~)zt*clX=K0>do9>*BH1b|yURJ1ByB<*a<}^Ap%fp**5w>h@ z2f3asu9kN$wu1yT^7-%As&#VMiGLC`h-_+g2nrN$TtjZUmQ&b=OC5PT`Evcrrzcas z1Qrkvv$^C9YQmD%KH7A@qStZT-6ETa+n9*I4U*?8lzp={694zd&)Os$`!}u!Q-T5} z6bG15y2$U4m9H0N;MGNRHGji6?^1H~t~GE)g_-KM{M#MZQ1F7=k`}IGJ^A@q>;!p% z-KLT2YwiZq(fnd`IrA;rCqI`S$9~M1plQG!(APW&4EqfvBxVHO>d-p zK$O&$uhSU;q#Fe}i7;EqG~hkV~^f4ek1 zW9L1hn^ zshvc^VG!&g_=5ef&;wDD1Nw(W!vCN9+d!0XMX+3Epiwv@!GCGrKMcb64}<)t%KUG* zvH>f?DG2^wPVzs808Zd}xByrL50Ey3AB=?`X!*~q3j$0284gk4!9SBH0VIv&2Q!lf z8vZkQa=@HOYJ&e)aQ^R$EGod=NCB`xZ6I+JAJ~)?P%ny#;Qy_I|8v*30p>mrs{{hN?5z_zw delta 20853 zcmX_nQ*cK%!KtMn|9Gp#=OdU+z?9A+489nW6Fa7LX7Dl#T-hGb0 z5OK_}QyH|c&dXhrZ5~&1(sT5)TRh(Hqov^wE6^-#Mf0*}ASOhCLO>Ck-w`4GT=6%~ONrSUz9BXmi3DpYA9X2qYx?HlRmp%R?a!ANz~&->g2w0 z?ac!T*xC-Ra`tw1Id%E*#{=o(`&V`AA-Kw$h_ydu^7u^Y4!`uFN+gI^EmwU zYy|+3?$oh4;ywQErU6|0r7KVF=*@!41C{a{xWC&16>p^-WvccNQWET+{xg$uT@pX% zUc@;!iUHxHyiHw{UrH!nB7|%jkexL$d{Wv=swf2&Fs&8klmRs*@o{Kp*87<@iKo_q z)9mA}?CkwkH8{I#A&-1Lp5&RCvKY5k*QbE~cGc^s12~7hNG#=$wZX>pwE-GkDk}9# z>FF7O@E_6-)#^}gt_3%Q`Tq7xIUaC}ie}S)rt@)r$9{k4G@nQ>?A+zNAT?9Xr_bm| z8IXk`{aj&o64x22=C^V7wMF866 zo_dBM=SV8WBRB>xLO)@7t$KDmTyScSs%;>2p}VCk%J~0Cqn+<)*^T2%+61K7U87;TQiJ2+p_LgPdupiN z)~zEt6URZHPt2m5$GU0gHOC<)S^!i+7VA}eM%ao*Ts?@W7b|$#vGQI9{%oh6ck4dC z4*1(Ob}v1r`rUO%!Dlm`->0)uGv9Z!A19fVL(;pQl|^E4u~tda+Uo zGP6gA%JuW@#`k$cM4yprpRcoA?6=CZ-cmmw@3ymZzjZqvmoyG@0zFDMIt&fUS?0-S zD8A$I1he^bCQH9Lax-K(Ik-Tp-~V0+rZQ@97^JQ+@ggyA zBhVjw+YGZ19ZBVvI0izMy;<%h4V24u{FUzdPKGPDqGxtI+hbeav>K38yOts7hgYS$ zg_(ohnqEXuu4-z2JejwOGd+qaR=#tl9)}HM{pttYIv%^|a&mB@>r>7jXAhJ^PTjCl zeSX26cz&dXij%s_Z2=lDMV=^030bX_e|^br)?XvZfolZr?kudyVWRQ6b;Uo?P87wV zTjug-F`zfNH2pd;k0UJff4by@68ZaiJNg5R*Xx6|V^q3zIqBQ+IB2o_(&?UE|Aru) zKRu`XX%Twu5^G7r>6NH_0pp6u0_#)5RJot^r66Y-KQ|Lew-!K`HrrEMeEeg@%OY28 z)*7K|@1lG268_B#oydtmg>fAu4!t(OZ5SEWS?VXSs}_iRjoJSNS9wEoSTdl=PfU|% z=9EGnU(y59xpx+21x*rJx3`TV6m>pS8it#r|Wdw@{_ zuD1!UDGeT|mJLv3ZInD2#5?D#)~^8zg2tTHsV-mYra{fCVtU53uxNcgjSMt!z+8W9<-;Uc}@p?Ugdv+;*=p6nW?b}Ls9|d3%+h_N1scUh4;gJ_i4H9r#mf0eN{Dxm!U!Ow zSI9&k)&X(_T2co^e6Q5h1PRjj3X+q!)R32;24QhZ#>=5hEeUY7lWuMg=UE#=hA!GI z`R4;BSu1oAywrv-Wt*m7PxCkmMF>j*$pDOMHhKNu^mIml$J#%$WQZu%-B3*lvfu*cqH~VEQTA+-}RC*^V^{& zwWWu_Zp*LHr4{iqN}5HNww6P7_~bcC^5|)D>6nq%gX1~nn&-uzL9pF_uBS!U+ikYz z5p5a8!JTnru(g5mzG7Q~KJLfP{hSCgHNY-dHPLlWtgg(@zP+h)PhQ-?R0(M%hJdDm zZ`8>#I65NYRO;jz+&drr_aHt~M&Herb{>Lt1u@(70gj5a84VcDO!c>BA6{ZrfS)x2 z!LA9s`7grc$kfSUI!#&%fewMBnSV8lHMV{}l7d*MWqM`0l&?Eh{BX7z@faX#008hW zsf)x1wVs!eI2uKkRN-pdfFd)fLZIA>l&ZHHpd0=+s$E&vUo)tE8Vr5d6@m6v78&~; zzixO-YzYHgxEKyMjbvHPMO@3^`I=5xlzsz|p8j~b^W8Hc_4wY8O!g}?T%Rt*6qrs_ z>uJ0?eVw(UCHSn)v!fMtZ1RC=3{ zWad&#X?9aez_fbD-@}$Viy#FS^+cdV`>eiKp7^{%fc1R0fAwk6?zj4c+wK_*lallP z<@j6sc3x=tNieqJ#S$;QtGvQ>B2k*+a3G?$hJ_Lh+EEE$;_mQgHHoYZDhR(;GW z+#D~hMyWPfcS`?xy18kl+}x|&Y@&sWGFcgS*jzyjs@E7ly^B|pncX<#j=bPDxa1Z{ z18yjdFarh+fpdnSP-D3FEk@&BunZy3=2fzM>cgyDJv@b4KUkyc3ov53Vs7Rzwq~f` z@izX=CPwSRH=+tF_Yxa%jWE|D%#E1aP(JwO^*e$XR9K{o_bS6$EQ2*4UrLy@#mRBU z-jchy0~b{wVFu&eeDW}ksmNt}G1TxIq6)~|6g-l%r2)~8jjzCDr{~7uklb>uPMGWN zFSwu$_R25$ZT`O52)J)Fe)|%9?)fgfR#Phyr_xXM+NN+i5c?j)sqMXEa1eH&?tQ~d z31O#&vnh>}G&Q<11sxufiY#dRYg3eg+no&2E>Y#BB)mVRX?Y}+q zzYbgBq4jl=CmAH7oGyTnbg&|26UPv@0kJ{H`yHF>=V9Py3eZhQ5=R2Q9v&Q!Z+r@1 zxi$A4FRZn@`kxOz?k|q6wJ-9OFKE1zXoP<`&?BPs+ObLMI#43H7Qm8rA%E1uW!f87 z^P`uO4a$>mBO@rZP|FnsfV()8Xj(vrxK_})Z}Jv4AOh>Ez_%=*6&beb+7w1k($QtH zgLgL=Fj1cg0NkXrBtPb=#!SX=c$}fiPe|8q-AUaT1jS-e>9v;Qxq{n=jOYku6iQ&77;Y!Mfy;1p}qim*RjwMqxaz9x;gZo8)i-&+yx=HXrAz{8_f38B; zk;_BjNBKo(#z&8~V{n5&Eaasvj_>|do~bUf22@x+c@2xd)MI3$?<9#v>3i|9cGX2Tvpf zk5^3W4-)5)U~E8%yMXmfXq6MXooNF)3A3~V@w*!4^i&|gg{fs0$#hr!S{~b+7he?t ztD}w{oh897^i>X-yfjiX^UK5Q>a@>qF3%&fK2OS{bn6sK94PVBV6gg)YQn!aKcDxB zE!iiKL9Yd%e~1WHk#c*_gv-pxcb_AQbd zXa#UDcdyssl?nfzp2fm%`s)tB0lBOvjt#ynE(^hP0~TnMZPYEO$z+ES;em52Y+1xx ze`hSjCsa_89^=#cbBJ|llxEApo`}hNFd+zN;6ZfUIN}b5<1eg%XXRJ~FmUcxaVeqV;msSe4ZqBqR~; z%=vZ*t#Y4yye@ubmrvVK0mk{0WY=Z#`4|y0Tr^1Wk0OTG5O@-g(hP)1GQ1C^^fhc? zUWU5zp}m<&b(hmddut5f)As$V#pOoh zg1Xzc=fmf2ws_$v^TJ1#b387JY0_fT3bJzLYR7>hyXF&7xNxJi;4G! z#_UGrw{r_4_r}UtxvZPdlaJ34?>ydi?B#Id(SC^Yoz6*V;~^oSb-__*ayGJfpNwVe z_)j^^@*BgIdh zL39<}l&~&ROMJg;q0oAD>`JPXp{NR=$dQkQ5RF}KE#Dh2q_%OSx3d(AQ)HtqRf1pjh zA{~@47a>yN3$tcmt8j_1sags}g>)r`{`7e_e>>)ZWZutkfaLn4N+0>zs(F|XZWxRj zMabY6%?AUZ4Nfd-O+Y4)B+R>H+99w$3|IidqI+o3HM)#?BZ@oRP|As?-qM$}3m`ke zj;c`cnUI7i_0!Otiaz$WHy8Z%P=PPvxH!tz%2>(uK02(>{Y3=xjYuo@<7m8aO<)Q&p3WMP)BtU z|NI7IzU|m`V~df59NhONFiOG9-#ATt-2BhNpl|t5R6UI`FZZZ6=FXM6R58%g>n_J4 z>yjVD!^{E?1Cr}-9`=IN-+x#2{q{Eha!L?s;qB(E>%?7!{kq&y|4G;_%dWcbBV=}^ z^ww_`{cHPO{KN5u5zGLqq3AF!<~}`DA5h)A(~K8-kpe!xO94|RS-GnCCNRPie0SJ> zltQXqAi|H8iIDvA!(@<<77Kn{gt9wf%=bwEv@qmE2yt7lz2y^4fR^!Ak>vmvMat;B~S@+?NVg}tS$k-0m#dc&B6pLES#@6K=A!>y|jDLFo|Mou%!#6+yJ36%L z`Ua!^@^8}hkLMG4T@DdR^wK4(r0HHeWLJKvEj6e+p6ONNJMVW?EbiSdP`N3&`i~>6 z{Cw&J#~2=cz6*ntP~{#=yly?+%HD1cs|w8{(lAO>M}`Vd0{3YuTd*btlvbTL4V)q%hLYEZk$kRxk+wb^Ym|`O$iNB}_4b4xh#7I28nXYU>OI6b{pw2{CRu z(h!K)$!RDdPPgF#jwi~I=^V#ssK$Zh6@Lbd+|($G>?0fWxfmN>H1gX5M$yP}v8fG0 zD~Ao2!Ykg3p;>o}be~>XonKdBc+Z24M>Z#)l}NoC@8;bNckBM1Ms19M<|3SmVv)!> zWS8=nJ$5igc6q{#G+paF>k?RcYmdknl@~Y@(Hs>-IpGA5U)kRAZ)*$zC^GckO^<(O zp%fPp{)F4WEttNpk*Y!pmq=^&eOyM|8GY}-s?W)6Uqstg_My4D!itlr zy;gH)`n|%WV#v-onsE>Suo3}hsZvNYxvJ8o#vtNBa=*-0+vj({ydp}?y3zM8-Bx3X z``AyKSdWBWAn{ouMP}b(Co6;3k^U{V&0e2wv_bMkIa7%V8aP+9<`(fk7yIPl!r>4& zqq;rDa?kmJNf@jc(7`VL@r;p%6PlMBHa3}`(y+hE8bcr8XaW4R5?_(aYXl-bBv(3; z$KE&UtjaRhGAI$VGR|V-(lSk4`$C6KN#95Fek-^X+pDRgCsfNB3OLc5lh;N7RlJ}|e>_K^%rmI4 zYW?;M$38vau>g!K0zu^p{6sxu6KB_bsw@ZPRy8d<4x1q%(EuIdm{*K92UykOFHLZRG9EiX~cqBmqlbbJL zmiSNoCP0Ur?xE}p-A>oQ*U$E=W1irNsDYG5=nq#^6X{_1A%-#2?O2`!KEL3Le>h%O{(gcerk4uc zRbmDu1`KZ}ba!j7`D$w!(Aw!e{o>R&=?w?#u7CSPzE3Q{-YRUJnIQy7Q4wP^3-N`4 ztcX`Y?`TUAV}lUChiqxR*b}=<0(up<-)49z4o-W04YvK2eKz&iT2cW&5Xe`t2!H45 z*0;9Y()6&t68EfY#&Obqqe<(|IWFn2U$f^(0QiRvcOSaUK|rXXmMByDPrJV`@#mvf zh#q7^v0;U1MWC8stkdcf$#)TW1%U9;%sFJ_#(mg>uR!84m;jDJ-oh3+e9#3&3d$)> z-#mF=ASIo(?Yn;_?y*3ImYQ3I*+)JveSBylFUiWrv zgIv9#+qhQWl~A`-$>!%UJC`h$oS`DN0U8~urf#8w69Tmqsp6(xFb?ioR~XO5#%|r& zJU=rw)c$~w;KEKhc{7S7Yqi? z#x-v9Q_iclCN=7X+7MsEQnU^NCmj=Rwth}RQ%9t)BX{%e+%GZpYa~)5cITkRgE$|d zftd81#v{4b#cI60RVzx!^W`$TQ`x^+*jyaFb+T9Y8TMc5acdBHO;Ti8w8{(vB;7U> z;YrPI(TGY)hA-!DY5 z!P1w&gyvyKQkE}f)sprLkryKnoP@FF%4MJ(3gk6$NDp!kJLq7;WOTMQ+Fz0f3%#x9 zha!SdMRpV`9#Wo@!FSXJ9*pz>ZvEUrMWoq-L0>QThM?u;!t*AB?~*!lMZciJ=*KaV z4-RnQC==Dx^5fU0*mLMt(j*Fpj&L8OBx%{olcHEwJXwUay_&UX1zHXGaP8ea_1QoU zxj8y!b$6w(xPXg>GhLz1C;chi?=g*!g%8t>JVHp}CxP-KJ#HpwsA3a<`{{Sn!p@6} zneO-1y_d7L#(y?@EU$Et!?}gjJmi98q(sKmiRMa8TyN<(`wN;d<$CycsFUTk+84W@ ze>k-_NTc$mM18w6^3w};V;42Ff)9Lkpn9Of#gL$=go7DX;>o}cho+4qDc!CDuwoSB zo1W8oeuyb*2uyLqrw{|mBnI}CTm!-;mS>NH-ECG)qd0jd{~gp5Cl z^69X5sAJ|+xXRDqT+V`3OHO|u!V?3fF!OnBa7~1SSMuGJ5&Or*wNYGpAOu&|8*%1m zfi~V~dsGb{fbpBF^K@ljV&BH%TAV+VTY!_OO<#jK*Uvz9dUkO}pfYD^UGZY*#krC7 z@I=XX$jwuaR%-5jxkDKU#8!^x!uD?MlO-8$z~Z-~RwFm+wOgW88sYI;NX(;ePS{SU zpE+Cf-Af9Yvh5$V5j|Ad^FvjX5a@aV zC}F#dUc-)+SZU5(=Cp^+j7|;L(8_rL7AZ6G|Izf#%RN#?1eh{d;z7_7oym{C^IgNe zGsUJv&gv&2`hid^43RMaK6n~j7KD2?mDjy0!iz`2-1Sc%RunqdwRufBet#2ur;IYz zZG437-}FV9qzDd)f!i9T%T9JrvmkhZdT+B%wPsikF$~fW*&j67*FC1_V6ia(c{ah# zP9T~XVmKR~i9!_+Z(BWB6w^T;R`_JOy}R?JYx8Rm(-Xj$tx#0-Q0(}2y>>6?uu%y> zO7M!-Zg%J1(IbBNCQ779*mjVpO?mA2JEZU5^Kvjd6W2-ZeRFkuW`Ae3j_TGKXiDB9 zqP3xOs%MPqTtn| zXy$BL*=7Ql4h9Zjgnyhp(iCXDR>lHGSv6y*(OKZsIsYY?M2eZd68*Uz2~I0wq7Frn zO2{q3?BDU~W5D>CYe}q0B>-v_CS{GnYhDx`LR`u9+$xS=Y$5RjPrw-Z6!m`FNn#VQcz<=3y%me3+{KfmMmv|4o9`!`-_B)BqJV zdBE-|6ih~dM6AF5b|gwYeI{F65{Vz3r)=;#W8yN z|H8Tni+~srIdDG{4bdusQx3MIprm(uEV(x9dR<6=e8odq{e_eF+wdU(?er8EEU-&r zdk_L@(r}Y+$74Pu1q-V+HP5pVCprvG*xCJzqhdZ@AGB`w+CwC@WiinF%+$5l0 z(T~WOl&{uVF<(DtSmfzFYc5|bnnrcD;4b3HnoE>}Vvh0{eMBYN?|iNFpKpMsFOY1$j^ z=&5+dNWoxgn5*<%aK}Pszvq=9NJC`^q1c#oEyltEe06Q*_e)0gC8zqE;|}f zd0*FXmvUakL_Kq3;wVfgCQhZ(GM9URm?Z4gTWoaSd>`3v-|jd4>yjg-M+?2Hf;;8n z_CF;xzWir;>QM!feCDqF8XM>TY4MS08 zyWFCm5*UxBmx?q7i81EO8iu|2U#hqIuoc=OXMXdrbXY)OO5Xr^!Cr<4rK!RO(~lW3 ze019=F3j931)N{pfx#$XJ^J>O-Fz zH~xCNz`}0O_vN0PTE7s9EB=Y&2pZdKN-MFWR^eO9k7W_D-^Qv%J2zK%v!{eFhlcSV zVXQ=^jRvYV2k{+D3xYGKJ84NZ`HuU+9KD>LXA@}y!6Ex@c&?q z+?#tB6a0k?3373~ai2KG`^V14mVN!oskIJSsM&>iw$50vOy;=ZG+CXJJ%Upq9?sd2 z!9sf>yHTp_30!$rZ4J$H)o*f`GpgD%RA3;ls+idZ{mhIhmK!~i%bHveYIL2vatKm* zTGR%Q(_8Tf!nL3Qod*#h@X-pjth-oG^v+ttz@c`%lBs|pPfD?UbJ0N6=s;$E(Onlg zhE^J#Yh}AcRIQDDj!>Ij3lB?GDvXFf<%e~Q%9$Kx=PF7pgjT$KJp4j_!&^s}KR5Z} z0?si6%%B_?sdGKJN>Iuiu9_mp*as$MrG&h?*R%QCx%tt2y5%DvKIlcLIzh=AGg1n@ z*`3VUscbC;_}guI-t-)U3_jketV*4Kh(uaLHNkrV@**G6XRNtK)Vu7xyC%=vI^4S~ z+YP&%Oi@X2=*{5!qSqCctnaDZxDO_bEs9kQa7{NjcDf3h90TCiNIlC#i}T!5B_;{* zR^kdmEH9j;u1^Kb{^M}Ms15V%X(}k+IjBUXNtO0LoV;#wpOVs`qEJDFlu!`Pjf6uJ zLGy}K>DN=23zS3<=EpX?9l)LG`txvh?(PFxMbneB!flmtrNBQGc?D5- zv+}J=$`NgDtyK?klTRmdNed4p8;VK=M|JsvzEAYzc4vKGfWunePXRgbwPQ1oiB`fz zi3xVg?MrbiW|km}E+?3X-EZclN|w>c(H-$9V~ZrH!A5V+g%|@@f&3&Q4MlL2CbK_( zcL$nFQBnbv+FHPGMh~AMxjnNLZL|oq0z=_zrBUbC=Q;&zD9lY!>J0y$wx=+d3rdQR zF|MGl4B~;=qq#7o+i<@^%?tJNHloNxLU;xZyc^;&+uK0UX28;W7@=K6k#wr8rYf@` zAWZ6F>v+h3q0asw4G}TBUUW<=!2>lX1&zQRt^x;8_F4N0BkEHvYO718?Dj!JyAl97 zc)Op5vr&nuM7Ww9(OgQYoz7}pWoBoKT+Y(tlqDCm8MFTm_(d|32-})?rj%!Pv4Q;g z*%7M_1N{4T46_=OhbInxc|9e*J%=8_O7pylpK*K<2ik{MK(3-WJp~eumsns$3j@Mo z$rlSq;h>W0GP|pC8LfBmk`C&UPST2&{-bRWAEbeqfgPgar6rE}RL3}Z@Drpn=J0M+ z|Htv&DZO+QFg^l4nTI{Mh*-FR?`@?Q5uK%yV{BO}n89d;^oHVWN!ba2h4pd89}@_e^@GQvt#q5WM_e?NLaNfiOe zdeC)ZJ*Uj9*7i{FV(9Z4tgSv{`mS@TXEh(qUrZ8~Ikv85GEKe^sd3Dv&URH@ekp3{ z++CBWUiUW5Vn}y{XZ~YE9%g>6Jli{5etvZ4qW%3~y+Q9SxSytbpGVT%SglMA2kG)` zZ@BAds8{cNJW6Gdx!cS<#B%y6dyp2*uZ z0?iUj*}E3zmj}BYmb;hsXYSeQuex!wib(|+u)dXg-a22}9!8HQju~o^FHiuriH1g^ zYGMeVo}hT8N4&L8`Q0DBMRE}~Pf;h5h%nE|(C>bpFIA0RXd8(3f**nJV!K~NP=W8Q zWKS~}1;$p3tSM|DUNc8-w0lcjz{s{x(8W{J$yf9CBu%H(>=Qn3r44Q%X~yM3;mM0+ zUdd6`NqLeBPHI6K2VA?WKsJCkLBP?Hwyd4j#>i>`OUJY+nOn@ZcO?I>V|*OVPz=ay-d4zNV4H+@kb#>l-JHxhKkS*Ry5m48ed&i+Ojn zOLC8rhF}v}W@HVqbuFk6c_-W!FUtJ%0l)1+T8%33mt7=hQlJ!4am=mYVbmLk7I~o= z2ui35cmn7{BhJX?`&2bfg|!oU5)j+v7rcv)gaD*Y=g1Vg$wfe8v#E5X`JX9kBHotR z4HY~k!e{iy{)yu?g!5Y%l^L|Y)#qc`2C}WK z#%w$Ae{w@o^ReVU6}>wUoiMGV(@Y!x-_EjPlz=Oq4u`)l7D4rl( zl`A)0=9~(>U24x}*<2rAuV%^55+V7ff0Kh0RlM+zK&YXdpkpz>auDa;)izK1Sj&GR zrrplYKgRlP;pjTYt)_;n(&qWRc;dSGUY_O3<7PD1MrC{Z@)dX0|EaON@q9L4^Y2K{ z$L+s-f1b3M0bHFVH$UAk?c7?OEp^W?>)o4Np!z2~Tw&-c`+NWNHSDeiyP0vYfbHt` zjYs*-mN4*TR$}j?e?3)k<@?6rr+zr%FPSoa(RanRd}A_yV?;BV@mFupEy9EIm-*K< zS5UtAKBV*Q^+fa4P2Flb484koGakGfKCg-xCeOv=9)LU@Q86CW0f)R`KumgH)S_Q& z`cDB##-!#cz5R0nXdtbhx+x}4~r_i z{WIfo!F5B<&BTUIGNATg=Q$bcsMDewxSE-bakA}qvduJeb#k=-IlrvzW`zRhMIn4g z8nNQ41t^u;9gN+BX-4m^9nk>u`Tgr>wpn_!qP(~mPPLaG1p*r9gbnNcu=>xus^!9I`PP8LlDzX zJb`jWF^abP!VUM0*zVqBkyDy~<+x8Hp^F$hpJBA48wrN)50( zHJ+N3a3>M_vv>(rl=lUM^C8n(FvT3Sup2&r!TJjGV#7lY8~t+G?@5I!Wd zoj{W+yc&csVgt9H+l9jd+K$BQ((=5^x!O1Hl7Hl?g~Ce1vJ>=xepdoZ=Zl9iR)abr9IfMqV-CKCvVcuaMo~{Q!clq70Z}!c=o@fQdTlQqa=Mjsd%sy~# z1@i!7Wc>MuNi#JlsiyF9}z3(S?mxETGpt_|vRn+ev=@I#|c{_6?YK<+g z;ifMqB_b(i-O!O;W|;`fHDL;s{+B~cdL@ABvMvMdfE0~gSX_*VUDEd@!<6llm?A=Nb*UxLb(oJL+jT^?FqPT3Do#rkLEJIueM)zC45 zG}vMcn+b+}lsw~_`ht0dxpK38OJ~9mWqBCGendOptJ@V6DJzkO7y=`mqezzU52(<@ zBO}6Q+1i0$I>NwgNR^{>Sj%JDdOO&bcPbA=B3O4_Bxo zrymbkbP5D&lOXet#ZC~b1ja2V0wxiza$j5 zt_42P(N9##s(!^|$epBnHTlrEWES3JqyhL|FT8L2H^0R_EfFwu*h`@uq6veI#u|me z3{~xaQm?&n3on0$<1P$6Z=1J8=s{|Ie27k7H!)Ddda-R>{1F(+S^_-g(Fa#aqn@_r zr)bQm?$E59+!Af`-q<9wHvdgl9{vsyzkv??Wjq{kG(q9hqdOqDOrcuFB`HknlnOXa zc2uc%4d8<_d!P8T@I9K&{Vvt?U2DHjR84$RkySf`kHN$+^|j}qUmA&C?|Sy~(760Z zQlHH6%vkJ9ZVT~x5*LX=o`}<`LkC={gp8)EG{k_>hbbU(L_0n&0ZumghuGDc0=bjE z--)l&0=FknMkH^z<=!l_8Iw|5%mZM?B*OKJ)>iUn=^VK5P8Keags!-Aeg&({eqY88 z$+6k~u=U-@7~|Z zi|bDYi%*l25u`Am7nM^D7S*5x_P{|>Um7t&>`2bE-$DMPXMdN4>Wnz3MkWCYvF-;K zIvyI^m$hzq{4q}AApsQxJ4_z9L~z%=0})z~a& z>FNC~GgZGU>|$n7lf$rnT%G~+X7D0y&f-nia%5kX&OCfBD-?1a?Cvi2x@Vif8+ta6 zveu%c&s33ys*e=HH!D9m|4^rkk}Vr#(#uM3#Wb%HS!#QR19f~@YXp13-`?aFV@ML# z11Ak0S}OhXr5)IrgPWC)d?w(v_wjl&xFtC=4TakEcGN#+`YnH+x2gkBF?eR)1d-WS zJYlrP+P)N2Cf737Qa9D=b8&cfh?Dz+kG6fpu6=eCm}SM2$P5!|PTc_k5MMJaG90v3 zfcGv~Gd$opzv<)#z#gzv!BW6@Dj$gGF}rp}+NF(5o9S~6WSyNy)`MzYtrA~GFw!fR zLN;GNO^gz7>^=Zj=vo1amv%RL9s=*pSNkNvxk@V1J!+7vxZo-FcM)p~9)ADY3otb~%C_SEuS_R*K*&Ha0 z9?o1rhs9W2+3-&PGLXQ@Nr>Om+PSsm8GHydZV;lp*0+S1u=fP`vyja#SG?caLq~;m zZcr093%0NK{FN4aO<>7agx~{5$nhM@EMV@;9^8N$fe+?l8(4n0T3(^^>=rlaZgv4G zo{`l*8E^Q##We0vCo4v~eyurr^wPKi*S?;OTzsaxTbDYXdvk7K96b+_S^l*N*#H>@ z&@Kq5Hu#VNmPWwdVCh;k8Exm?s<(gb=VAW)P9}^uOlGeH3ep`21h*KZh>)F~K)CFh zjNYoLvI&}$A~Ft|$*C%pEuG{(z1{pT>% zRgnDyU)a1J2ttTv`F^D6@AT#*R>ts`P&i>;oFrq%bbY{SKZ~a7X}zto*;5Qd+l}=> zK`Onw)UMb=rpMyvl*nK006?Tac*EDreE@6`f;U8qBc;+IKz&(Vm-L9<% zHnBP6gkJ?oO&R7>epVIT9$TMI(2&i~%V@ZNU{OQa3L;o0sS8B>$#G*W*$SQle_EB8 zY?9%2l^NWIy=P5_h1J?~^9mM8|Jx=C?2=;k`8fcPht%W!4es@R`OYh$^Sip>_qNBV z%3}wwQ-#OT)@HK!q{M))X2a|h8OHjFdA+hyNVE4+PavnSM4k*91x|2kL`cx2TqI>q zcI66|jYUamYHDifu|pq`Gzac@C87MYjvKABxRRaScOu^z&Q|TW%X@z<6X-(LfS%Av8hM z-+0*bBSVvHTi2eDwp0uo9YXAO*~r~eR}TjOmzk5Ko1vxqB|QEO3ef!aobGD~jA^zB zI5>#{LmfAcM6A5uM?M^O%H;=YxewuMZ+!P1E|jj^=`PY#H;Ig9)JUK}7l9jy`4Fnu z^D_sDa44>>QuhQt+KHz;BS}QJlW#N*F&(BS;FEl>FBVL4t4~2f*iCIQoGg}ln9UmKb7ir zcMh!rvm|;)bwmP(JOjPR7R2nT@LL+5xDJzqZ4zs^j~Rq{8UP8tglponPE3+YD1azF zF=o^?QpYMTdCb8RFrjCPqBMl8C#el!_t?Hs)rcHzztxjbUV8o7zAP{kW*+p8dw1~n z-{Ho)b)F&Y@g=(P#}@E;3_D=jB>i4uK*$vk^lm12@udR^FXYEsE( zX>%Z4%&##3zSkrlk4SM(4Yw5xe})AOQr+|QVm7FNrK&ac_al+Cb+Q@E8SMeGe$pRf zTe6{wi(wz91(WIBeUts!3-XX8YK4A(Uy)(Z2tKDsTBC$)+QphU^fT{9s#KOwOo`mp0ehWc7ZM#9=wSKYoQRf$yfx znwcw%!$)Ql?qhC=fJ1UD2FLqs{qe?T^@{yLN!mk?27l+B+_e{ID zNqIYbQ{1w2mw@e0dZxKE7f-8OQ4z4Owf|9=lcqKYCO&*;tVe%AL$36mLUt37BsGSx zM8Pp^mn+L!#`)C~Ga7Vx3bI9I4Kcze$Os&NfLqX4fe*xx^t(ZM}2t zejWZhB+@Bt;vGK@eeLGVM~Ak^IMxf8Vb}Z|-YHgZTUTVs{kduh&+*ek-0CcRB2HV5 zVI{n^9CJU|9y+A!FI-XpH+o|g^AZ^3xUv4gYEmdG5kS_VkQo_xLw5xb+Ef9TPC{p| zu9&N#y~?-t003>W3^4>vGx@$gV@ZTsOvyxkWs1T-Pn~#qLhWqdcwXC;amYo65a~nq zNJ1vipk0J~zppGz^Il8u3eH`=czg%fO4ABMq6 zREnL(09c60l4(3gO2r;p55tJ-l&hda8Yv3UF#KSL;?Om&?;jD|9jhT?Sn`CMK;#l8 zA6%c;n}lHs)h)zhy9q1+CB9{b?JT<+E~9Z)cN0nyCa$Xx?I4uk+1qr*ra4bEACx*^ zv=WG3X=SkW2s)iP9$D___;pG9B$gPcVl-Js zBJUDjh)!uzafawijeyyR+rW(lM3}W{uZHzWS?|@>Q7+DheE#_z&zqx>l1mjT9B0cT z1}OY98r=I*#jxiXxDf*#a!lQ3G<&Q9UVvyQV>ufqKAlE{9p1Eb#Z_gYwUk9m7dyD# z7s~ImYhe-#V&#NFio4?8)?ZFkFK4}Q$)cN0cIa9^jKd-Shl{j(s{aD2^+fVc{h}6Q z35fx2X?}IZa@Njgt0Qv;vP#s6kQ4ra9bmG}Qk8e%j4D_gviQmm9hJApSB6A1+WI3ty)oim3u0O}fU8sPm*y<#kDd|;%SKhN;}beg9FaI` z1%@TW370E;VQvwYs}iDP@)tHResArtK3nD#7OVZLrmL;|$oc;9R?+UYV9OAlQf-$F z=4dKJAOk{Su)7O$#zj~2jErgmq7A<`jpNyZhBqDB9+JH-QqxD1;Y=p)qqfkAg+&Z@ zQcTJJ|8#NP!Ek8be+h{mmSweQtJg$%tX{GtdW~iE)q5AjCOSc|R`gDkC{b6p2%b7_GSKe3a=pe0mo4w0l7h>?Xq^ab$Vw)7TOX4Q` z7fU}pTOLQkN3jFLcS*{M5Cu)yPQsi3x`$#>U!s8!RO?#ElL%?z&~9Fmh@25HQQiSa zoI|GfVdhD5GHaoaAPe++@mt^)Y=KbqDUeT6p@{+|hP-KFy+BONr8Lmjb5K+kq3>&5 z{pD$|KD(W9j0CfK+uC9%3;*X-`gM(I5oejCnO2>~5L|1|^{{zsiC(t)V*uT7icPWr3u2v*6Q4zPCe{r(NfJR5Z_&~}JqEv;#+Ds6Wj~-dK10LsS$8mJvlC7$ zjrccPSWpjdu7JhYVTCt>vwrJMP*Piobrgo`FWqwIQri@R!;x8nA2#VWouh;GM|3IgR@ zV(QrKks=2n!JA6%{^nFWa1+T_qw$-`QgvbDcYaQ0kSpa-st`?oq>?rLPM#j`pF`0% zD?@0);F6&f`tw84;`=l!Cmq{U!Zz}_T@V|L>8xKN?F#+bRD`A*Rp-1uY+tXOL?4hf>Ubhe{Xx!dRKz#4Pi+^#bx6~Ch%!il*w z-lcq*XF)*u8Zvh$U9)~s@B9%COV7}s$s;6aDJ9Bgw_!m(8PGu1G23?qE~YMrl*wVBd)W01hDFKWPqMdp|#C4@cj>r8yc+@t&WgsKeOmu5gDZh_5Zk z;s-YHsZ>tq=TM7$=eVR+jUpv|?;M+}-$~c#L1hkMJe$aBJJ?^}3F?sDyoiaZWLdJC z1DfS0?gh>TMSjhpFX@tJMzz1=nGBji`4};jmq;owA9%}NdR_kZJP16Y_oZ^#BjNiJ zV7ckIF1$S!3UxmbuF?CQB!#`{r3#OdmaG5d95rw8LCeQXG8Qe#Pm0%N9U&W#r<7+7 ze4Y1$4jsRd(CpV2^)AOl3Nm={qS;z>;ZY_;;y?i5+q#~%3JfjqZ|ByoTBvM6)e~T6 zAwLvD;(k}o1j~L3#(mxA6QrUS_0|PTBy3^bSD#iI$ZCACu{&U#v^fZ@3%rU?B^!0u ztVxppVWqwz$3^0Eeh5t}-_8i%ynCD9a*&oKXo%WWHYi(Mo#_4#0kXl_uvj*mu>M*4 zj`^-6o%~6odCsKfa(QHlb$@LLO8H8ur8YXKWmEH>p7JB)7`5S#cHM4)e5>WTv_gN< zeI=$Ob~J2C_DGQ>_GgObIr}Cjl`X-fOibm8hO^|yG3HSpY_MLvkgFW1hbbotnm(bM zRtp_)dc?p0ezqIq1>-+hCG^yLbj;jn>HV?i<_{9f8QasTh&4Q`A zxye3N+06E>vc&yiV|PJ<+*DTaJw`Xf^2QMN!U{}R*+oioapQ@wE#Ix$-+M3Xh>J_- zfc_X<)78|h%mLEhFyK>ob#pl`E_nR(Tt2r&WuiMswk?1CRxGawNlYp}xk$xJo^|A9 zn2t7G`>&gvrmEE4b?dx`C>Y{hT=l5}jceDdW~@k_e9oa9#wCk4y0SLbnEVLGXpgU% zIVuLu%2+B7J!CnMp*!%XHo-r@wS3`I^Fi47y|7EeH*qiKM>&N6cZZpyW90(4lRxgL z-Wc<4;%2@C`SNW7Ro>z)Mrt(@Ma5c|jz`X5kd8HH?{v#T`8_NOs=ssmP|`4{g~`~I zb)!((a+HRIm#v7ive+32p}AeJTy5`pNO!h!HFsT;Fuhqx?f-l_+Y6DA0xEbrsS zS$dl0e~Hf|XFrJ$PhgK1L!M`iZDiVWJJ*n=0RrF*dTL<{4#)-^g%o@2x-0fx><_doe0)?7((drds55jNbO*O2@#eZ8Z^H4#gsycNvT9~U|}tQDJ$B_DKJFY|zEYQ^%7o;~*tm%h}R?Qqoi^3&NW zMwdpE^y~~3jx0ojJ5Sw5{1fi{wEP?ctG$rc@YjSY15vU$tuROgYQT`hO*ApVo1D;< zrXL15U6Z)SS<#@8FiA?wTc3EBWSYG`(JjTXH194{e`B!bS|-Ag+|EQ8f!9r#gsWMy zFmW-d*MOMtym<@cwcXEjQ#PkY=*hWK;c#oDrrZar#4c_xvh<_Su+WB7Aq^F~*M=I@ zzDZ>@D9p~zCQ+OmuOy5&7w+tkpqv#sqLkNbq^!qU+4>U-6gI0?d(LP)Y#Uc8$>roH z+?8LZVmG#LYv3B1Xj9ieI8UB?F$-J5$fI z^zG<+Xi$6fGBV|j{^z7ZSQAyXZHT4k1DDUgQJD0WrQp(P7jV=I_6$Wuyg1`44!L%j z7y}{mLl9H6CPKHXT8(C)eDisFLBr8{K>c~iTK-EnZUN~on07G}?rcth`K9f*x+un& zSA<<1n|)_lX^F948I)-59kIXlhRptTFtho?&*$nC~vuDDh?3}lSjIdSLb6& zP+bvuB`;OF3hf^RVzJ;uM@|rt%xIT?+g_8V3`Twul%eO5cQ1ClDvT#z;chw{wf6jH z+Yl-8vx`-A4E!S3rvoDFcX)FkSSNGfGC5-pmz-(UyBUs2iNfxYo7(`uHBkH`;N;-x;b&xH>t_EqO#DNb!JX=BtVN5S-cya5 zRsPc-tDh3JTdR7-EM9YF+xGZe|0hKKpfyHpq&bAA@g<{H2XTIGiSXCkV-k=sV5xV~ zx*dvl(5ids!Z+R25rQ!~Y~J(W`oxKnqodjEYrfcRYyr)u8)c|V)8sVnk*1tpE?bzMB20p!y;9;l}acCgS29(`gW?^8bM@Iz452cDzp7Z z)GqVH+HIuI!4ys!RQEIP_F@Iv$u)~~dI z?+meEN<)sfO75y+Z{sOI6oDzuZ;&v(TG)y(wS^lmB++3iyv!91OH$J~HT?LN><)s*r*C~`{i&g(cZvG+~QG(3} z&`J*x(wat_UWKQhIb>}tu0T;lOHX@FV+_Z3%cK#F- zdD}{F)LlI=NsJ*CYtK7n>Bb)E;wAe2{H@qP1tgg8#CBq6mB2wFGmYm5f3;#?e7m-7pqQlQM1?92(T47x<LA8fxL~1w=|M8y@lGam%O_Z(1%A7457=cgXDke5^bn*jMYu z)RLuktL`;2${5NX;VFbd=NrG~95fp49umNdF4r^G&g0bCV6B)pX6uQlCMjVipMzWf(2km$Ft#TRIQM%5 zs3vr}K@kK4@W0OuiC5Z9kayRn9jsp}lPCCV1-wZ1{u#QFpT?pt`{?TA-md_;<*m#X z0(UhITDor}$4d3#uzf=k{yLGISx^gM0-62-oat?;-EJweVrn7PJ%r_Nf7OR zqww^(N)o%i^kljSr zJbe+zGu^GZ+Imc>UMuKAHVOwM9i<4Die=?2^hDjd3%{b+U&TmTOg_bZ2cQjIdYO6o z&(#wpv&V%s_<3;?ptN=S#3(wsj@T-f;cW!OJfb9&98{rNW;WY=-k)M6;!>Z^cMq28 z#bZ;@7jE5h-9#dIS#+mO?8gOTg?!NCXcK6ud&6*kWp?q2-17&f+zAcX;UC}=&9ERq z_KI9|$z2CEn{@$C!(+{XBDXiR-Y|Pj%*QAl$V1gWgoSGy>Vr;KfD^4b-Tilm@`c9b zN#`0Fw-ZKMzF8S;B5Oqz9);+JvIy*U(2)L8RdjY3E~T1}RoP4x!|W%sF>D)w4d-KT zaw!r^5!LxB-w!jO?}?_Kt0qz5IZhTGCid3>V2_ub_<;)}2Tc?rZBY9c`B@ElfcZvZ zrx(J*9}1@PP}87ky8T9O;^#7T9GvdT63W-@|9S>#hdNB}N|w+{lNimj3qV~!E<^gy zc`yxLGxQkKzQ6R7=@+HW+~UrRM`to*6)WAIAtJ|*OV=}M#Fg6+t)wq=XIv6yHBnX` zwv zF;Pou|Lb(Jw?W$b+(qmA(xEr}m`YqM^Q4!t(oaCFpug#Dp zS}K5-<$uZ4e+T02(T@Y<32(Teu>rD_6e0hf6lia2h<+Bp%<{hg`(I>EDEhBJ2=Skq jfVK_<5z;