From 951a9017027b198c2ffaaa134afd2b0f89e12294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Mon, 26 Apr 2021 09:41:57 +0200 Subject: [PATCH 01/10] RED-1186: Return mocked placeholders in unittest --- .../report/v1/server/client/Placeholder.java | 13 +++++++++++++ .../v1/server/client/PlaceholderClient.java | 11 +++++++++++ .../service/WordReportGenerationService.java | 9 +++++++++ ...anitisation justification Appendix A1.docx | Bin 98275 -> 98630 bytes .../RedactionReportIntegrationTest.java | 16 ++++++++++++++-- 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java new file mode 100644 index 0000000..0ad800f --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java @@ -0,0 +1,13 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class Placeholder { + + private String placeholder; + private String value; + +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java new file mode 100644 index 0000000..a016b36 --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java @@ -0,0 +1,11 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import java.util.List; + +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "PlaceholderResource", url = "${configuration-service.url}") +public interface PlaceholderClient { + + List getPlaceholders(); +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index 49264ac..62b969e 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -16,6 +16,8 @@ import org.apache.poi.xwpf.usermodel.XWPFTableRow; import org.springframework.stereotype.Service; import com.iqser.red.service.redaction.report.v1.api.model.ReportType; +import com.iqser.red.service.redaction.report.v1.server.client.Placeholder; +import com.iqser.red.service.redaction.report.v1.server.client.PlaceholderClient; import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; import com.iqser.red.service.redaction.report.v1.server.utils.ResourceLoader; @@ -27,6 +29,7 @@ public class WordReportGenerationService { private byte[] appendixA1Template; private byte[] appendixA2Template; + private PlaceholderClient placeholderClient; @PostConstruct @@ -39,6 +42,10 @@ public class WordReportGenerationService { public byte[] generateReport(ReportType reportType, List reportEntries, String filename) { + + List placeholder = placeholderClient.getPlaceholders(); + + byte[] template; if (reportType.equals(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)) { @@ -52,6 +59,8 @@ public class WordReportGenerationService { try (ByteArrayInputStream is = new ByteArrayInputStream(template)) { XWPFDocument doc = new XWPFDocument(is); + // Replace placeholders. + addTableRows(doc, reportEntries, filename); return toByteArray(doc); } catch (IOException e) { diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx index 9defb470350a3ca61a1a39486e783176a14ca780..ca052782798545901ee2bd481d5f4a376eac4700 100644 GIT binary patch delta 18312 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 diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java index 72b19c9..c45845d 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java @@ -1,5 +1,6 @@ package com.iqser.red.service.redaction.report.v1.server; +import static org.mockito.Mockito.when; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; import java.io.FileOutputStream; @@ -8,6 +9,8 @@ import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; @@ -20,6 +23,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping; import com.iqser.red.service.redaction.report.v1.api.model.ReportType; import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient; +import com.iqser.red.service.redaction.report.v1.server.client.Placeholder; +import com.iqser.red.service.redaction.report.v1.server.client.PlaceholderClient; import com.iqser.red.service.redaction.report.v1.server.configuration.MessagingConfiguration; import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; import com.iqser.red.service.redaction.report.v1.server.service.ExcelReportGenerationService; @@ -44,7 +49,7 @@ public class RedactionReportIntegrationTest { @MockBean private AmazonS3 s3Client; - @Autowired + @InjectMocks private WordReportGenerationService wordReportGenerationService; @Autowired @@ -56,10 +61,15 @@ public class RedactionReportIntegrationTest { @Autowired private RedactionLogConverterService redactionLogConverterService; + @Mock + private PlaceholderClient placeholderClient; + @Test public void testWordReportGeneration() throws IOException { + when(placeholderClient.getPlaceholders()).thenReturn(List.of(Placeholder.builder().placeholder("{{dossier.name}}").value("Dossier 1").build())); + ClassPathResource redactionLogResource = new ClassPathResource("files/RedactedLog.txt"); RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class); @@ -73,12 +83,14 @@ public class RedactionReportIntegrationTest { List reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping); - byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, reportEntries, redactionLog + wordReportGenerationService.init(); + byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, reportEntries, redactionLog .getFilename()); try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/efsa_template.docx")) { fileOutputStream.write(report); } + } From 0579710cd2215bb4a3e3ba67fbc509aea5a0af9a Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Wed, 28 Apr 2021 13:34:40 +0200 Subject: [PATCH 02/10] RED-1186: replacing placeholders in documents; TODO: adding entries to tables --- .../service/WordReportGenerationService.java | 97 +++++++++++++++--- ...anitisation justification Appendix A1.docx | Bin 98630 -> 78621 bytes .../RedactionReportIntegrationTest.java | 3 +- 3 files changed, 82 insertions(+), 18 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index 62b969e..4b451f6 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -4,15 +4,11 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.List; +import java.util.regex.Pattern; import javax.annotation.PostConstruct; -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.xwpf.usermodel.XWPFTable; -import org.apache.poi.xwpf.usermodel.XWPFTableCell; -import org.apache.poi.xwpf.usermodel.XWPFTableRow; +import org.apache.poi.xwpf.usermodel.*; import org.springframework.stereotype.Service; import com.iqser.red.service.redaction.report.v1.api.model.ReportType; @@ -30,7 +26,11 @@ public class WordReportGenerationService { private byte[] appendixA1Template; private byte[] appendixA2Template; private PlaceholderClient placeholderClient; - + public static final String FILENAME_PLACEHOLDER = "{{redaction.filename}}"; + public static final String PAGE_PLACEHOLDER = "{{redaction.page}}"; + public static final String PARAGRAPH_PLACEHOLDER = "{{redaction.paragraph}}"; + public static final String LEGALBASIS_PLACEHOLDER = "{{redaction.legalBasis}}"; + public static final String REASON_PLACEHOLDER = "{{redaction.reason}}"; @PostConstruct public void init() { @@ -43,7 +43,7 @@ public class WordReportGenerationService { public byte[] generateReport(ReportType reportType, List reportEntries, String filename) { - List placeholder = placeholderClient.getPlaceholders(); + List placeholders = placeholderClient.getPlaceholders(); byte[] template; @@ -58,27 +58,82 @@ public class WordReportGenerationService { try (ByteArrayInputStream is = new ByteArrayInputStream(template)) { XWPFDocument doc = new XWPFDocument(is); - - // Replace placeholders. - + for (Placeholder placeholder: placeholders) { + replacePlaceholders(doc,placeholder.getPlaceholder(),placeholder.getValue()); + } addTableRows(doc, reportEntries, filename); return toByteArray(doc); } catch (IOException e) { throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); } } + public void replacePlaceholders(XWPFDocument doc, String search, String replace) { + replaceParagraph(doc.getParagraphs(), search, replace); + for (XWPFTable tbl : doc.getTables()) { + for (XWPFTableRow row : tbl.getRows()) { + for (XWPFTableCell cell : row.getTableCells()) { + replaceParagraph(cell.getParagraphs(), search, replace); + } + } + } + } + + private void replaceParagraph(List paragraphs, String search, String replace) { + for (XWPFParagraph p : paragraphs) { + String paragraphText = p.getText(); + if(paragraphText.contains(search)) { + String safeToUseInReplaceAllString = Pattern.quote(search); + paragraphText = paragraphText.replaceAll(safeToUseInReplaceAllString, replace); + XWPFRun run = p.getRuns().get(0); + run.setText(paragraphText,0); + int size = p.getRuns().size(); + for(int i=1; i reportEntries, String filename) { - XWPFTable table = doc.getTables().get(1); + //XWPFTable table = doc.getTables().get(1); + XWPFTable table = getTableWithPlaceholder(doc); -// XmlCursor cursor = table.getCTTbl().newCursor(); -// XWPFParagraph newParagraph = doc.insertNewParagraph(cursor); -// XWPFRun run = newParagraph.createRun(); -// run.setText("Applied rules: EFSA 1 (Vertebrate Authors)"); -// run.setFontSize(10); + for (XWPFTableRow row : table.getRows()) { + XWPFTableRow newRow = table.createRow(); + for (int i=0; i { XWPFTableRow row = table.createRow(); setText(row.getCell(0), filename); @@ -88,6 +143,14 @@ public class WordReportGenerationService { }); } + private int getCell(XWPFTableRow row,String placeholder) { + for (int i=0; i7198KulZLED1`)#oa5xQTf zRW}*ytk@wN*c~m!D;6abE~ymkP{`oU=pq3|pLfvJy)s2q?WVfe?M(5QySH0q@4#j* zW~LCZ6_owsvlmR6h51)nUy)GxAPPnPV5a2*yF2UnrAtkkoa}D9plQ$TMp78_q`HRa z3e{yH(Cg))`l4Wx1s08~Z!uIIY%Ez9xM(s`X zLpXf9-f!q%(%=w@~O1({1 ziH&lcm9j21NgNhlq(rg|k8vhhBB_nBZ4LEe@vyUGjsy9A4~Q~CGLbrmWY@6og!(cr1}0MyEk#ZA zC=tuSnD&+>DBJ9H?7FcC9(qh11Z&{wA^5&Wk*?37A0h10o*i_(ibC?7T~v%6X%Il0 zB+N@@n|fOpctjwd9@QBPvx`yu|zUyUut<=mC2Wh0NbE4w<`&(aPV2M?z)^w zKE<$MXU>uXbN9_Jyo7PbG}8n%-jOib1m4ET9*(+>|9 z-Pf6t{c9K_xrcBCX%4Pbua(fUD8pIz@}#|I#&J*^c>i@QA29cTO-nxFHdJ5^`zcH%h(?fd`bQ+0^Ux8+}-9D)8fpOF8j zPev|I&UQBcvZ^^r)-HenWAx?&rO53N5Of#-tlU`IRegW5JFvodj?Km;!(_+DWFo4R zH1m0}_0w1WM;2QaPS)nCTp87j(b3DFW&%oA)f&0*h^SS3OfjP_VKHkS1Gii#@sQ9n zUi()$bp?&EK9!hO_3)~La(ywZ0&nBg)I`Q)h&gi-c4+O2iXbDsE3C=-9RN`2D&;h` z*5~eAIQ#ZRFOjrv(^C1;J_QVY_{?o#v#qnr$SLp#<_OGk>NbkCXw!m@vFz+CI)_A1uS;jbiT3l39(9 zTx53DBWJp0To&Dcvuz19*H+=U;4-S0(ppL#EU)fBq$zWUH^wO&GGskLxqoW>f)^N8RC%`Mwm03YQ5v!3z>G zaCG2)uBpl~dMMIqhv*Y|B$eASZTyn+-R?2yzr?%SwK_HZ6`%UQipTl?+WmJqb+IwA zb^bqocdrWCtuvtX-Ffkg9(pD62vb%=Y~^P!4$>hfy1FE$4p|v$wVbWn@!J`YCQl%P zPm&u4Uf~0NiLP#T#|S?MEK62Xfq9HGDL2~|ol`vxV-f%$R>+XA6XrnDt zsMT+KIccHPTsxr9t$?Yxmn^xW@WI%qVJPrN!a?h%R1VC%=x@M#na0WvUm5|^Y;mxZ+=wfGClW)Q?0`8Nh#PP}qGpbGtcIfI;?El4?Sy7u5-dF^FhFs-`&i9+ zXiSpn!xS{X65YL^TW60s*fqa>-1^P4Z-LAXR*F{+Nxl-1X~*m_XXe+(8)gJ;mR%uDH=z+--)hrO8kr*a})srBuSRkm87-oaj6Ctu&Agqu8O|V3;R)=A&{)xcWL~L#p zsgcTvugDN!MhZqgbrdRa2HKL7K#|Y8fDFHfbmk{i5co|;K_W#l2YVEb1?4Q_Q4j{C zqmWZpkX1twt2vJ+8u)ygHX`tC9=krPYQ+yOV}ym!oMp++mk;}*CqDRrQXYmiqe|V2 zEDt;FD* z{m@CsY0n+dWO;iEKJiKLTtRSV} zph)yLpOD`(?I^Ih24@cvmcO+9a9R#b66wIYZUs(E8E4Oe8vPvPFlylk& zaI~X1oK8F~}xzvw)8!vC58qgmzbz&3(r@pAwVX;JT?; z`t}ThPg-Y|5uJpy@fw;J8m=Bv@p)|_)pXN=r5LreuO-tU?sH=kQN4_ zW9A>1;aqMiU$D!yk%@wzu*<~tqov))MNqi3W#q=RXe*bT@$}ix&6F?mP!H_+Mk{6+ zB@azr)jp?qz^{N4Vi+3G2o~HZw|Q}+kp3oR+Om-Q&!;0h0laA*t;e-e{uy3V!Jl9s zN^RxOSfRTp08A)MYA}b96v!6y{_Z0R>j+dkK43{cYBInSqYCdfUR>`_LBSfUP!+%c z0XB)g%@~hknfyN&AF&hQ$k=G$#KZR}A$WC#Q8~#Unf>B&w{aK1ptF_-+p9)0-DYm1uN%9m@P?dkGk zlUuI?a1XFpQS30Bgl@!gu`WX=@Rwd7H}&BzQoq;BbashWqFM^Jw2na;#GE}CCOsZ z2czF4^W!MX!Ihcb0z&=BHCNSnAeZG3zdw&jEy@Jd?*E!$I>91i#na(WvPzol`YeY z(14_Ub#Q+$fq-hwQ_bVCT5E@;Ox+XeV(x!DUKM2Ss`Qm)mCRT6;k2Ec_u3IJ^->o{ zn7GZNVs~c?C?4=9Y=I9{ekw{KxS0_H%R$0^=hCi8=%JsowlY7exLxU;_&aw?BAWfmH)c^%SbDX1xgZwcw?|~!Idqc%BJFx zPJ!@Z{U*|lI@z70nJ0K(?|9WHB9c-#<$yBkk$GLm)b9FXSZ}6x`^yCN&)avgq9;3Z zFj&Pld&#OhMttciZVZ9YVzUg|L-=E3d*itUuZEvw)Hu-Cw7{Fp>LQaNlXMZNp;k$; zz}?EvcPUIw)#@c}pfWvG1d~^X_YH=r9m^(&I}d8c{hm>M|_(9ao=U zIlu(Msi?Mi77i%l4OmeCPEY_umih~sIr5QvzAeuF^Ip!>;m_MFZjI^0l=mUmHEi)u zt)ET5;$)-L`u+2nuN%MzAB~floel}jP3A3ox)w9beZY>fwEYRvt`NEQz^Eexe=39U zEgKkAy7%}E0(dQbUPX_vOoxb% z$_}68-SS7Lg{Ms+wJK%mSlaufg8GujSbf^j+l8W?)NxCB)a`ll)C{HxXUUU!x|8w7 z?9v`)DHPgGUtQl>EH^kFwVJuUHkFUAxoa)k?m8nlx>w6Q@|&y}`KmK65Vr6JJCCkjd4Fgn-@T^Cw=& z_XZTcjho1(r_HN>EcqzZTz=L!f$z7ouUpaA?M3g;%N>W?rPftX`3n}~iNp%THUg@L z-EpV3)Xj9Nr(H$I_A|FKQ+sOSrfO$&)?vwV*u26FXw%vPn+p*l%gL$8CSbo>_-k2> zz0OIk$WXGKWk9;&jJqOt=l&0=3Ef0y9>FTiA|>=`g{Xzu|!F~2v_O*V|dc3Lh@7w zJ52zfaFX<3L`$pwlb7Ph^VPtR9?i+#2D_|{x6+fGxSgdZ^{L_FY*8lkFxiU=(F|i4 zz(a=O4E&@k{V-Ynj-^kg^yP}Idyy-CkSjX1c{=Xf(Zy9h>tK#!B>DvJ;~-?Gi&XX8 z0r7lg$mQ^s8ev9ds0PpsmhQeSzsSWjcX{)4VifYEDk*?@~>I~!b zFA$4_1(IUPcie9;?@UADNb1J5+Y&T#*%HkUSZ-36;gsJ$j(*))QhwY?!7)YHx`)@NS(nadN9(q@USDV?sfbVU7H#`uRw&q?r;d_3NbdORHm~jBYh#xJY`Zab*^k z4E&NL7hAg2dtg>fz;SpQju_Q+k;Zt6Mf>N?5&U zyGy%~C#&hDILXHPz3>TkvvOs2c_!~Znkn+0)-x(vRlc(G{Be4Bw%uDXI8@=z9E`5n zv}C(CR4Y*pmEg`kiuLS*pwO{}{BdTH5%MmwO*=QvdXORF4&J^sYjC;_QYu}WUE#_0 ztDm_UbvQlo5x`*lZNjF@aRw@BOZ9%fdeOh^kkwO(Z*STu)X?0TG*(2W;=PO--p*K=xXwChNWUv zNN4x_k-_P09FD6ljEkzk>1+JF?Rl*_ONKt<=7%T^1?0!zuL~VL+dK`*NivqgSHa6z z%P5?1f>Uk)*>?EiFLzP)qlDA;cl;#&mLm<;eI1^CW+|AGxmEE*9OMs^}J35<-+t_G+Iv!bKu(uFcR?;kCiCc7~Y0c)IY)o_<9FT@@HP zJ8vD0*_wWJol4l6It>x5ds4Uej1@Np4L-S4mP;)=r9@x#`o*`4*>LI0HTR67O1s#S z1s)us&iuH(Xqo;^e&{mYx{Wi1$LM3fdAFHfwEdif`6%`D_2+DB_-I#tlrie%+kX^~ z3rvZO?ng3HcQN;T^7f#HsG*jS{e&f~p@CqgCI)X6(J#3j+6hSg0pT1{;)HRi%YKC` zir&?a`BhLbr>zAMcuAFpK8)vB5HyDsXbB(jfitQRUxbAE>FcKi&GRXn#(80xl0NPddtUXfYjnHt=lTsj)iH8u_J z;I-6f?RWvkSlEv+pB>bi(15x!u_H<4M;tm5ZC~Y-VKXIuF_T(~^z22L`a)gk2XEY1 z-YLH3^)1`lt$^=Qr9rLU0+D9^(u(MPu3{@bOUr57%KDn)Tv5c&p==M7gYX-=)(-u^ z2*9uTr5G%41!#{EBkMY8{!;ZEYMD<|Y6_F4%Woia%=eG=Pbez>@@R-mI2vTHW{OGN z`do5vC72X(75%htsQRuypWOGwRB$O6BD zGRY|Jw8dA3i@~*QlQ7OWD9Sk#U=HPn$cU-G>A{cJ^vNlv8VZ#C@-qJLVsAj)r&pMv zyLbISrIAhF?rTgXbqn{=p8QiZW;Y3*aa{k^lLSZ(Vp!WcX z@-pwHV-kTsAE$cD24|>>LSr9-5f{+?wvaLVOpO|)bQZ>;UIq~L(O50U`-mEs*+Um# zm?NeVkJan)Z(xuX$T$(x_Wy~*VPuWi`QW;Yg*7}>hryT)763nm>GKj|PkFr*{GwNoDt3R7$Hfp;1jt>r_kABI&m@sQE5Q z%e2!&9n_xOYbhO2JP zjz7wnaT5jKc}_fy+v=azJ5z&Te{5QAb_vJ!3dR;iszS4EBDKWDKVZlsK1g0m*2VDx!xbf}!f@`Y zH>(bcu@Mv>X|LNznyc5FQy}>pJG#LYCUv@s)$b90(T^eW=D6Y=ilf0?A-F zPq-r<55n2F3!!rX-}?VFDEVIvid;UEIA5YWqlDLK&gDz$EfAf$%YqbfI9fAb#~&Ze zJ@4cFMp>V3uD@c7&M3WjhYmcpp}d}_b+8B1XNJqHaL(Fb_NV>Z3&69Dk1aLUfjRt% zspeswhv{0$WBLaDqB?nZ1YpQxlMW{_v=NEdTp2uC)=k>>0b|K3qkGxmu6gG!!qTcF zqTtX4BVm;>YL+N z-fWK_3^|P3N`nzVl1_sig(O_8^k`iwjm$Z&^Z~8KLLW|f588h@)?S?DQfzg(b>5A-%>tk z|8L62#>CjdfZoE!z|4e`&eGn*?8EQi2N(>Ho?V_DOpFXH1cku(^(RDdu9$_hGvRmq z@8I9R2~j8>V}8#vlJZj~6CMHl3cCBT2|)uR6GH$V-T+l_ z1}Mdh`Q1C*H#h~+l&BHcpR@OJpl6VuX<3crbx6OG?Pj$8@O5+{+uVX^cu(KxHk~;* zWsS@Ib`<%?DKYoPQ_WX%|M>l2(yHTVx@X&i-(foA%Nx6C>F)!7*R0F=V`!`UpB&9@ zY8x(}_lF}|#S?iSes}xnYzuhZ$P)f~PqhV%x5SrSR=J$DKOdQ1%b#6aT_KdK`}HM< zI&LlH%s^UfYaq1-R4wZE77hJ@(wW!hWfkKR!Nrk9=U9G?3~LQO!@%=v4mB`Va4$5s zGx8gCtaj~#K()P%%DE{M3}wf-$&Wp*QU~oX<4;nG4l&mqqzP5l)ljn0^VDb{G{}f^ zXy&jwuKxTSg{&EqWvuSYPNk@P&}y~XBn>nBZvmHvrO&G-+*)eWid`lB_RVF&omSPD zZdQ&huH<$`$#XHBwW@aMzbxDG4-JBDI;xCIvkm%Vz{!eaG){0Dtp7;OE&?-m!~_Rd z;=poK@hGq!hMkQM6Qx(8vC=0mm_wf*$D}`5JH*8$hNhZ|>_kM$;pJpSP*Kq$lR*lm z|JVWj%|e1h;AU07{jr_0WC-i@VC?n%PjQ+#ue>kJe|1kOwqyIUK{=21~;~zx- zLG(Wd(SN(tGyKEoKaBo|Gs^T2qyI4apTp?CTk6^WLG&L)|FaQg`v=i~5dF_al=UA( z|3UOW8&Q^j5d8*QwXCvD>faZB9=!E#Fl3lO$>PY#|Jl-(S&~s}&eG|eS?hk*yztoh^QEPs zfCU6xGOce&fT%ln>UMZMZZ>U4%ydR^P`P%gYnB*YE+$C>PU|q zRCm&t@H7>)h)`zYBK-l7ttk%IOxBHgZ)^%uC=~~GMm4hX6Sl84yu^Ww$Gr}8#`#ev zEt{v93qWp&mbJM?=*^{WbhaK9Tr%quUbz5goSW!>4GYX|iyaGS*%tJRyI6hG2P4zT z4V;?VJmIW&JVHJvl2#*@?yZ2(C~AoQeD9f*D#%Taxb7ioD2e;d7Jn9TVOn3h9pYa$ zoQ)o012tUn1$!O1n|S7yjSC`+FItA#LbW|o$)`e2CXR#2N6gUU5c}cBuNl*4_X*TDIAVF%Yba8)qY+~HSI7O3h3pp_ z&M85g0{QE#ruXU>9ixfeEqk+_duHJgp#K@~a~qU>3y@!mQ#G75FBl4^VWsu%`k`dr z%RN-d?}1lR-S|D|+J?T`ViuPkln1#j?y-n}X@WFG$#rimfZQls`KUHv{a)_K^bEuN0z0YC3c#f9LDio z%3<$o_KfzAYD`OIcDl-{2SD-n>PAqLG3sodB}0*8@4)9W5`{@3>-P@3vj%d=vHIpH zqMjx658k>&TBJQq_N_X7XK?Jm5gxLN(>kmCS`mn(XI3fnA3lT49gZ%dPRB5G?8Fzd zFeoo~^AR8)=k5Ss+qcuFScLr|g2Hh|)`#8$sRP+Kc&MZ%{)o3VD6JEDQs1)Dld3pX z|BJI$K&?Z^g)~jZ8+#X%iWqO8`d*O_O8h?D3l3pYK<77o)S6shAi&e`pL`8vYT>G5 zm})&$`(UcTq_Zgks)QctdFf2PNJ`cjaa#3MVYO6Pp!=6Ku|Oq==0S{&R9#C+QlEk6 z4zv1RS~Fc$$ek<5;Vx83wFgG{z{sqDAxpGzOS%N~aFyl##+qbKB|=1BIB`>!a&ML( z!oqmIz0TFB(XD~ADpYbWUx!HVcebZOG~rRD&=a!^-p;Cr^f-@;vmjez>ZIkq)9s>O zK6s8}2QH-w4g_aL98|IU!JP6c$aeQA2c)ELUA|wOFzZ@2G=~zk^+Kt88NdY-l&oW zNl@w-Q+qDc!e*zUCaVVfoB79ZuvF?MM?g!|R=!5$@(w^*A7f2^igy_~U8lT@iNfXB zhtZj(wH^!riGWt9{Fo}Nky5q+C+!f{hzN-JF}DD`I*^=tym12X^^`VCSc_anR#?`R z{lY}X0y2v7HYe~zk&H%~l4u^I#TB{56C4J_o|HzOfaAI<=kl)QwRVTG)TFmW4asea z<>EyE>??aOvz!Nn?$F94Zi%$H z-)Q;VyP|$#Nu3V&|5o?M*n-E~4EU1JjbWH3b6q<;P)xp=gj`*%`x7E?M}D8eUDksX ze(tD|Slq6{A#^px3eI74NqRi0a$W-tIKtxJ@L>Z3Ygn|82rUq0%0CC59RpWcuyo`K zjGGY;)(fFq1_Deu%`nu)oFH`N-e3WHt1}h8N2+>sAxTUBsPl(3qi_6o#UfHj0Q461 zZ0hj<393I-Pa8zrEDB<+Y>-O?x-2yRWcake*1W&q{oWV>Rm^m`qdu2qe7<}ESYyL<$9XM-Ppg4u)k{@c z<8Qkf&Eb)!g>@1>OB;G`V*8m3><@Ks$yL$`kSYSzQyu50Gka#7{G5{kQAH!o{kLt? zQq&57gXgaT`@$63;6V&3drlKdSHj)SqFQAhf~U895Vr*^%_mElqEMVVgs7Sp`3>9hZ(Rm5u1!WnlLBAuuY518r}~KFqj06O#sf zH8$Hbq3u(0u#L+-tfhlkM6yj@4+66Zctf_)wnIO9j%URP9>Eq|H;nDoqi-AmA^UO1 zk!aD4FMJ@kfDGsrb0_D7W*OxPNVB_*5|Y1T$k-}t_RJy=*>59~RVr}jN<9FG6;0UZ zjv)WFgOrp5rrY?4VE6CC+mvSK#}I3Bq*i{LbUS{;ETEjj}ei=7rD-Zbr}Gl{6e5D5=PzP_qSQT+);E)ioFcN8MF~YMZ0|on)U3r7Q|F~ns?xqO{lbEY~bvaRCc% z7kUh{=i>#HO(ZpL|G)xCEG+8wtp%0c`hnnyIis#P?gYLPLeQ%o^PMsSliuue&M24X zh+64pA7E)xF3iJ;56hyGq74BfG6X`pf~N$tQMPzB%-?T>2FN{$Qp} z3?=RY1T7u0f_cyAaA|eO%!5H34iU2BYNp%B8DM53=L{teBG>FTOe7#VI&~2FT&4s3 z3UlTF1$_VXV8R}EKB^)s(a4p+?(@8!y3|Sw2g#Yf?hQga$YB;&D&06%FgyVq%JZo> zZumgCrjY(b(_+SzTFX+ovfOVhXU5fT9$8C1z9d_>=nitF>u%{;LMcza#2Fir1>dEH z)TqLp)+&|IF~>osC?n518YkiE;)q|jKDe$utyJ#@-q6J;h~XfTibiY4cY4+mc%&O$Kj@~(P7>J0tSyVbk)hV-W7%N`6Z8^uEJs-|=Szf|PTvC>Bcs?1jFj-RbIvV~R>QK}D$jlFep*^-AgY;9+D`G-!mXYIry1 zN@1)eIz98YRgqo|L5c}3P5hpq7s|ODAxccWTj3aSu@rD^2za&}sZrD9IRDPggnm5~ zl=AhlQpX0E-4>LtU5!C!z-h30+pGuxY`j;)%=1iBp_Ju5(3lLYyLk`rM?1iZu)B) z2_viPWOyHU$QZx$Q&(WO0vXZOohqc?-}jhLe#Ctb)E9P51WvU^cNymGwJB`r`DeU& z6#xRdiiXt$4=h&Ov4@c)=}m+vB#_p4-=RjZ{vah0+CPj%X#bKQ?gBn+M1zBDry1uu zB{B+leLHzZbfv%rQo+IJkR9ri8)I(`-~5%`1~HZ|X=C5@I_4Bgs|%$eS_UGjN}TYD zFtQ{vq`*d09M`=D>EVm(@ZKPQW0q2+@@Z;4?s>+w$*wg`-+Xxig+WCuE4E$mW> z!89Xo{{1XYO^=3wa&D!Wba01P?Z+i8$bkoEvM=N;ehQt`{(g(#iGbJXA- zQBwihStu}HJn++W{Ib*S5ui2DDLKhld$s6(EQx|%9#jBB+#`?9T-Q_t>E(20Pikj}PfK~DQWU>=k#Qte+ z;b^Bclk>G!I`KbHQSh2GA18i}L^~RMtcmm!``8nh42iW4h@Cw(;4G-<>?9D`1T?3< zoh37vU`c*XR!k@szLOJ@CKa|hcoZi-m~@hJYbh7^U5Z8R8h&Gw9H$?r3v#qz zhZMjs?kS2^g?0fh5j!)5{N2uL6Pky#ZHw7%Bz+lBxi{Z0+ph-3km5>M#1e127Rvkm zWFkM3;&ZJ+<@X75dpKTvX=lV~Ya3s7eaPZtATRU=u0u8=4(HJaH2p1S9^V6dh!nRh;F^GO^}F=iNIlb4r4qM+VqBQx_V(Lt?IDDd}(_?|d`@#b^2~ zXTYnYFA-ZLm8E_Srg9ZRF|tWzG}3iqyU6yY+HoGL&25TQH^{YNP5HNGOEZ%zh!y<8 za=ULnD!J@ztR$6Ef9!2N!ic^;q_|M_v$zs*nD%I-*0(&mg)(18`x?+V7c`bPRi%u; zEL~^pzj{t#{#qHabI0Ix^T>{d1$P$2KzPsU_`G`=x1cZ@W9pn{f)IZqD(##Tejk9T zgTtiqxKmTOj$P=fyUwxibL$)=xSxm0tX(c?7{=JFDgtMsqpW=n2RjS2Zg?;Eu{iYE zN;48+Q!f+`v3e6U8+Ut46}X$u^IIm-pza6yDB6`<%PjmX4bl-ESMvGV2yrna8E<~F z@YXDnvOOZ}y^>Pch%@l)j_z=PPdV-ktNm$_G7!k*M6s*C?rmdt^2UINLUhloFt!z+ z?89HOjcLEBegK@WShV$wf=%~3v{D9dWXY#zney2TQMeS>D_^PwR})$#^hZ&PU+Tfi zG)D;h02W2ReX6zt3F-7(Id04+SM^R3hzprnK_6z6nTX^YF-{Gn(gSo zK>~Yz>`bT+reoNVh*HYViC-nkt@e{~8-eJpM;l-HcC#W7sn*7vE~a(JEOyQYpr}bH zV}<2skdrFW1bMvusiPu~7 zn}11yFp!Jv5g_V4jQ2SGYfH>r@OkZXBfO=Km*L|G1r}YtH^~8U+g13w05jw8=umsx z|44q{$ec7aYgh1-uIE{@LUaBg7Kz{JGUALdvqatIrci(jT8d|1-%$cxjijM=v2?UO zVj$p#`-><;XIlO?f?37`22dFQMa;M*@#_m`V+Ws*AF^nSWs>4Tj?WSW@_a-v{VFac zN-%7))mC4Q?^3_#1S=Tgp7uLy^`^Cbgi)L_&HHlV*2g=uTW^aC`s&8}f^*!~Z0fC; zg8&tq597+@?zg_bbYjsx95LYIb1eA+EkZgW=yzg+#E#U1N0<%rtd|{q@4EE%Y&pwY zn)zJy>mDb3Rnv!>mi`r-pwvxp{z}xRP2YELL$bm@ z(W&7Svc?ilKVBEg9$9}-9ou7Mlzj=nXv{)**0s62Jx-gnx5uTF7J0-|A< zZa|g@t8=yO2; ziWmD$*CxC=@ZOACb~Iz+afZ7lFP{!vKm~n3&RaF>*t>@QE8yiV)Q2Yw zq;&XoV(H^7C;m5(uK_Q)f=Uq*6qS9SYgoG_hhA9;8POS0S!&-J;1@=2+zcLdhaSiP0ZPW}jHh6P;$5tqy zIV(T4legIX#^{G>c;1sN7=pb=19}OTTqWSL z# zIxQYZCJ9(ha^^a|n2paEExe#l(uMjwST#2H|NSTgO2TXop7vv4`bR+(uw!ep(e4(Z zigJjA4=d`LUC2vzwuQ?L0yf_w%v(5*OD48oO52q68#qHKF65K@T(8un{i6}$%Sywn z!xvt$_XRyDnYRM;t>grXomMfs7uA1EK;(;SZ@)V<`G7h03XfgkXl`O4pB)j}WYP6} zZ#B5kbHOM&tbR4A`v5*P>V!-zDh zhVXOqv-chj;gZ?8g}4vLkHFT^iDCS^9ZULXjkloHj{s1)0lVinG0tX{uqNShx%nG8 zi^?zzVrIK{@o4~?zbg@ES#)U~Xf|7Pd!T9U{T6~a_&#*v43P$dZxE)J_y{LEmfKNr zw1@NJZ8s*kX?jPhFiR(nlRy$L+!ye(RKZkxb9w03pfGj4a_*IxBfT@90C<$FoV$|n zJt077jpr~3=0syw=T!|X?0;H*%W>GRuuWH)FD?HuYD+AidoTvq?)fJ3Qm#7Trfy_$ zNv98Bi_5nkT3y_E(mKdHlek|np-N*Q-5d0TxM+)n>Q!Cuh*XQe)GjYAWJ><@9TCuM z$Dtr9PzfDg-55mH=jOZaCAuF_ImL(w(63nrJx}ULzeDrXXti)CTl%RP7jhv4*uNfQ6EuG=|3uJpv7>?5eJFJGcb-N|!i_ zn;8BfnN;utiE=AlY!aF*Z;Cd)oVw@j+r{L1?f^Ui6LVHJbqXu)bzlo()kLB&$meAPZ>BxumBb11OSwqcYL_w;%VTfVvmF74<66A}&&ruH z4ZQ+gXt!I>r(D3hVtKWz-mDGQ*k|i(iNX>*DbicU7Pm1GgzK5Y*y{Wn?aoHZvMRmmp#BBsA z&d*1dTC+I`?7P1s`A< z1^gP9$z)l&Dre)nVnO7Ofx?@w?6pDm#wXPuTzd!0ZfvzfNjg&13o9YL0H)5fAh;Y#0~O zR?bT1pkr=?VA4tIat4M%=ETfl`fhr-e#oqreho7(u)bERS=|L!5pdLFaDQh6_wvA=2> z+hR+7PZTVxcpCw>5!~;(6w5beBqF{7281!nMC>#-3BZUQEXdsO6ET#s;~^>6lu?=G z0kJVuMyY^%tLcxamBUmF_WV>uGfLXm*M)b~PSk@1w3yo23tynB`Sl)U#nN-(6wx^i zjfXeGvShR61I((?naYr4Zmo{^^lgoblY{2?*Nc>$$g*FYo(ggYKRrm5WbXTh%Ed1? zW0wmZxo4{+UWK6+?|m$imjmypmI0^Zy165tv!V#?^Q3-Hdz_iNgX)OFsZ=sO>&5p>p_J(7jIjg!2 z7btB=Zl97+)nSUAzo2@PN7&)lvIf#F3v;1fW^UGW|@~*CqmHZdYIj@6aZ;Y9J^2JKCAL>TGh})LNEE#*`$Zwje<$(Qz|D`RrWza zj4VHTPm|*%)>Gy(;)~Sts^`#G#3L)Gwd+7M=9XxgrTd;$*>`1}XYDcn+%1 zlX8Lc%QWU0$wPtf$whT~8*)dar0Bt-Pc@)RsQQ~T-KMma!$rSVK)c>%1~RY>!5KHV zUhN1`i_rB48vpz6-8Q}B^^jQ@zIX$7EdvXJ4_LKUIyGdlYZdoH_b{by&pb>oU?9<3 zGrs`^8W+ghmB&KU_k${zA6C{vCtHo8p0ar8>(29e#;Vhm{SAgyw+$Ap;E%=xIHkt& zgoDw@@Dtkd%tV)+$4Tandqq&hZkK~Y80Q`@S3pP!hc`4&qy*7l6+0ZXn8=? zJIYQCazCABSOhzZN60~rabzAdp-OM*%T8i(X4b)Zd-FW7s?i?>AW=tESirFRQPM32 zZQ#H2N#}eMB&Z-50Y6D7>e*&#rTySuWqK=bn@7%Vo@3cs2QBlbgK@pygBO}c*aRMV zr|H8QTJifQ6?Y4%l)+2#OxEQ^Cz~ulmwh1UsdbTTtaH<1Tx;|P(C_lnjRg|-KM`DJ z?80!}o|^(aNZml>hFc`delZ99YK=9u`;$7ZLF9EZpD_&;cekau1#LW0t3DO;r+Kwo zCFO>{QI7c94GSh1Mo%c$!-MM4*_gvp-WjSA6aOPw_5&Aj3F;iR*ABw?V)_lviLf}r z^Gqk!J^IECdBxP(DUJ4eXz16v9^smtC!Vc5<{>Z8u+xvwi!WZ8h4rXCWe3UR0YkwH=h?P)kQs+A`wxO^p+E6Te){AvH?1!Ghy zB%AkJDJ!UFI3=;~oo3ykF17!$>q z4Zw>6Sqj{cwk{JB5SrYo+qeAt%o=5{D{GP`!Z0sC>o4UmLvP(eCvpO6r~NEMiJl0w zrYY-F#+&Ud0+~_4#y&)pzw)h>mJbM5KaDdd-@nWd0D(4u&6rfCF4{E%U(`t?~#B#RUPbsd`{xZWRZYp+63gi-z?7bgW604pR?y z`DFxa^3Fo!#P{0v1i&qK&q9ZdvJ!*{oUcO$80#ufBAKjpV4{=YY3NQc*ju5;D71HE zAyP755Efp-Ap$kLy%sezLjtvBj3|dGw?=^$aoh!Hc6Olc%|x@YQeod*t9|{b)V+2Y zOl$XJVZjhJehV3JjVlt_uP_5VJS{T*Ox+;#tf!ova&6+k>)}TCuFnyY#(ZP=4Q$XX zkA~>YnUJ#R-4_SU!!z9)4Z^Vy*A0Pz18X4JwwY&YU1F1pE(H%$xJ<7)n@_lXLZEu- zz2o%?Yaw<^0lrE$2^eOlWrk(9Ejyvo=;s_43R+|53&b6s-<){Hyr}jc^bFmQ?;;3> z!4#qfj|sv%+?vF}v`4&?36y#J=h-KO(y2sYkXi2KfSG~pIf6UGNWL(LgBIX|YbB+y zws)D@a#ahzCpcq>>lw(IkIhx0hQh|vl|{^SCbB9AVE?wHr^f&TSBaS3T*qT0N8NLb z85Jw6fHi#j7*W>}mX`1Q4lhx{2ou;{`tY)6T@%t={j3eJ<@p7v^Eu2KGm6}$=LLIt zm~&-18|yCe9dHnX*ODD!xRP3<;5H>I5TJ1B_P!;f`Ggb>j?QkUQCgoa;Ck%&MHU#2 z+7cGR8$_^Ms(4Bf3?=YHMng84X4u3SU-~_!LWogWc+$=W%32f*qGWO=TUXvtoxmc3 zL5WP`UGu=~)rl;+;u9#NU9KKn*= zkg7zU%jRw>omHIyf~gsCbG^PYP!b*ywIgoch?jNYFb(P-J^HkL=BdF-v5b>xDccK$ zP&j2eA9u^ueMfud+PZ;8e2OA)G9H@NiX0FPDhsT9J6N}T%`ECQsPrPy>jI~`_4enc zRum*>tIL-DFt+m>RDBFyGzGxx6Rj$NbuoDrJ z*;)~1D*tfkKVFCQMk+{5=ERoa9}pxcWjM{-OX<}x^gPEPnhN0zAs7{hv)_hPMuT9h z=UiweF|0(z_A6x4dr|!8TWJ~!&zYUx8k?jM4|xD#xFNK{H4kxA3J8N-3JxiiRkZta zDqvh`VwYGzu(aou{fQDL0K$~#7WB+!kZ1J)vQEK83`Yg156Ef%m>g&dYqRzblM*E0 zwa9(?nl1|rM(lV0Y>K62W*2hjBmt$;7>x%?;e}{jwFPM8Rta8?s6N(R|AAAKshZ@! zB`IO5WFe)b2}P|(#fw#KgC2~Y1M$4;&)TRezkO{}9Td-j4o9A0!&PM-xkW@*TLMDaDi;#UuJAoujhKGa4VOCQbjvUc_%`1$G0GtzL`g_y-1`%p8!g z_oYIo>h%$){&egK-2$2`o;iqt^@)L(m zGto?W9;2X{A01XHUTf0v6qbuIHxQSpGl0t-E2^o!{AAMF;q=k?oo)EAYS9v1~ue1HqzPbaA(P4M?!3Z7CGi@_zhE zr!pF}_YgoZT#$#f0y_Y*(tI#`xJ&D3?#zVlc(fz21Yhh7y)pj^(yS1;lWd`WSvj(B zqJxm$XP=O=A_c|>&1vvo_Fa#B2+LM#es{!HUJ+1^gjl1)fGj6M^u_Wl>mKUFSCJ@^ z&yt^bUO~WWugEQ9$+d^B0A0WC;7A}UzX-pToJpZ7Oan~kx-~XcEc;d$6_f;0cdH$8 zta6PYGZWP4H|IANsH(A-(e&v0#4n|9T{x!QsO|K9i#+)#1d?5XyErd{aBdJN8I_`U zbhOqBNN5>ktmYr?`M;D9dyy)A^*vNV=yAhd*eQ}Yp~6Ue{8#A1GQ>iB^E0Dm+tq)( zuN^zY?ht=1tsUyA|N4_2_l(?Q<;c`8%d4LK7ZhPvN|6KUA{Kuc7uziEed_Tw%5=wxf5T8Z*=sQBCFF=HB<#RT_*Fm@Fp)Wjsw)SHslh3%z z=MQ=L4c+73cVc=ceAq8g`xX#*&;WL099-2fVb891oW2w2{!zr@NW)YP}ib12ZOC=iali;g|q#_f@aaKndng#JpuQKR{ z1~?g=P&yu1D9-AT=PzNHx{+?mI&S~2FSJa>P4Gv4kUYN}W%J>iUqAHvL zf8~;zAMq_(0+<*;%nCuU2HLoBidiG99$7_L`=>bUIk@LXI0mo}MOh9^6-;ieXEp=#L^g z)BsGW!Wyx6k7SU z7OdJ!Zix}&fYa(Z)V>5$mjTip;Bhsr*V}bT*6G|^1yuX~HN#m{7MtsWtBEm>M<-EkU_IU%ppQ@9iP#lZiN}DS* z>g6gdQaM577o|__T;i%fYA;$k`W@F${m)z+Rh-4HK^{uuACA-BO2m=l+H-8`#aEx%4aju_ply>3|NkWf-jhHYAdXQ0VG-8q3uT(O2PAbPB&9BF+Pa;7^G< z^}!`^pw_v8ArXZm!o?DOUkeTm6ia&AxJl_3JFY&2i$*Dsxe)`=Y73kZQcp9B$)In= z7qs&hZ@VSRRJO-6NU|i>=o4=I0XV@?|Lr3m9fyDwiVxPqFIg*_>Q*Bmd|Ts&E<$#RW`e zrJW;E&Zoz5#+WhWrc>e#4f=E&u1~BDhbv*VR2)>s|2lpay(}CJm&12WEWW_y6#m(b zm9bQrNTBgqX5Yhc6c$G^3JKON!jQ})v~D8{Pj5IXQl8ve?UHNJ=t*BGN1YutYHrAy ze&b&HIZM*_{NV9(k{%B#QXk5$JOa3U_~yDI(rR=QUt|5bxn*yP;q55fYp|w4o^@01 zN%F0k`Y4$3ZBBW?mN34e@JegC(dewJSn{52B5=eb&t`*J3-uT15t~TcP>wEq@gI=w zU1Y?3qilB5s{8FS*LR6nD;uizg%)KQ$y+cDE~;=U5&2Th$6AO}A%f|Cxy&1sMSkyb zS+LnNF~kED)i%vy60Hj1-CdtfG$%Pj|4#kZWe4X;%#A^wbVX}^>aVN{aaSe|`WYza zQ|I=T3)!d+|1BVz<5!7A--qskLnOwoAl&eng!Ctkan6VSmjMgSqf`f_ar672SZtM; zipYQHV-?BCt8Z0`PHWZAgm%Akcmz9u2mf>ssb^j~u4aCKm(%P=7|;2;-+ClNly)Jg z2L8zEq;oi+HaKx_s%LUL_Jh9Sb|O_%{>-MNW4nvW~Un;Qgg*-;fJ!gZe@1rzsbo7J?95 z^Xxy4TnlbRn_9vaDp_i!rX?=MMZ2s8(Kr_v{ZVm zxmn+@KFdjE>z*4*3(day;Ij23_1zV4CrYb{<~VeN?4c6SYAQeoFt!4}Y77ui>2U1@ zl+PVXK>03d6<|tLbXE&KXohZ)#7H{>q9gH3J=c;=c4#;i0k@bc*8dvg1 z@>rw!IA$FFL1mq#(yP?>Oc~kslJIPbRkbC(t_0esN=zV?9;4lP9bgw1J;SJ6Z%%L8 zOU9q^aKt0SS?KCJI(7$e(GeQ;Fs7+1Q!P^x7zZ^w7$O?Kh!&JZX?R;RAes^*DId=9 zu(0|EhK%#{z|4o-< zq&mokXD!QpRkI7DcvR!Sj}&&FE(z0JYZ=J=-s)@g3=jl`usPnlO+U9lR7idPS6M35hqzm%nhxzs%RI(nyYE zQrrt0e7hjYdue;7p0|z)El|p(`)j+rOuTBja}*Lz1z@YT;}4Xd8ki0 zM7$oXl$xp85QfC8xDSNrcS!w0x9=?OC5`$>GfEom2&tA#oue6+JK>pnK(8;rO0?Bhten>Z)+*L$)P(KfNNh}BnX{<7R2oTo zRXg$PmF=gAm_Bxqm){90nDs4CaFtt6CO#WiYYx@j^;QwV3}mQ1Ilip+xSIna1>8wy`fN*AnewJ$?d4w{ZLsFi z9q8IonK|c3C^1R@4Y45WCXDAHv8njIZ+T+#73x;-!84A^X3Gu^be!f`u(4kJfOE8( zR-EV0a5l)K@F=%hg!*>~vJ%|-ud|cCZDUaf!UdCj)DOSk=VNH)T!Q-v5mA9Xo>6s7 znU?sFYdznV->}Z<03$}ddqYp2&1L2g^roD~mB16f5)E>p2Ltb_IOO-ynsDIm?d#!_!CZhTJQLYAN|QB4DzSY0c+ z7|tJv;-f-tregtnmu~Gj3sC*)vMH7ypN&7s%L_bM+eicQQVRPwMP9!VlFJ{UP#-yr za6m_6wfTKtD)u~myu!RvNx(c5^EjdIgo&ddzL4Ld=)s~OvO+_lLuC&)s_D8(xZ*u(DV3s#9KCD)boNuyIrgr$gW3IXmpdOqxqs7=T1VAa51Mwg)`_mz~80?7syiFi+D;fg$uB-|zIeP-rtSxeq ziBV&U|NPV#0I$`OSq=a#qbLOxYuVW6Ug{MZbJ*z#dnGdNz;LwLJmdcx zaC@!knx?ee!Y5HeFNDh}4k>iX-ncl~2b1;0d7da;6G3rW^oj>k6IQl|Dk2OLPel|4 zi!GuoAF);wCRtA?0)m2?v~zNuC=Z6w?y>uQ*nR8x7<_frykh&kvSE4K*ho&prR74b zqs&+glP^yZ2J|DO=_6>f;z>L%K7bv*u-^Qy(yM4;&PQl`DQH1}66A2+Z8BR|+cj?7 z1m|a0u(BV+ey^!U0@4ukM}LJ8fYH>7^}-JHj$}LB(`*0ZLT^W1P3E=zva(v6MhF}A zP&bzde^lmOw2=zm4sv_h2%B=$__87YFN7TD*}6P^R@vl=8hYQQel8B!@>75$qr6^p zJWz*BWoaa_eb!91$x<5zH(2&)l}Q7K7w@krXJo%I02nmA28*;0Zl=np{v2J)MTq3v zZ(3Vs8IzWp4Gm0~bKpyfQmjoHo4LzEjFok!n@;1U=xrEudcoZ?8CEzJ`QyJ|x%j5d%SEPX-;i?k>#v_%-`c#0~c z2YE1!m}>rrj8*-=#5VZxop6C#eFz(oC)G(cEdSPvYw>@Nmheia+I|L4B|@{ceQ2^D zW0iPY1u<^_Oh<*To{cbaqVhKA+Mb!c0&<6e3r1eoh0VT$2dE)U*zK{g$WQJa5}1dG z`QdzQ4IOP>%5G(!;hPQ?=WZPXR91j|d^`FneW*1RQFyWeZpEpf@FWZ}Kri5wy0LEa zR_!#`v0%(%;mid?j8Oy#R>MEQRLqEA&*NmnA+R%sg$%&vFqweJfJuQ8Kn;G0#ZZP0 zj`My1veJ;jc!A168bw60B4iIBM?^x6l3Dj-B6zW)0U}EW(!x3bNn!NWAd_))fgp!x z#cBNHi00Fb@%_}(rdbbG1I1%dVUx8{%7hbbSfm(*m>z#qJZVJJ85HAC0csV066py1 z{IR&xU_v5Iibf2_(iXxnn?x}(P#jST)bx#=z$jdbF^$zlDMHN^!s-EF;3v2x$D2LS z9mB#6n&|0hi`Nk5`Rg$_#3%YL?z3W zMVctc02rN3L$*zmL2*@0SFE9-s$EjpE+9yeWvSS< zr&t-c4cNe2Mc#t~!jY`9mo~5D-;xNMV-qc(#N_S$EG?i!?@!{o0WcgxRH(V9R6YwW zEdNYAiWt=^6W#0;6N{$lVe}{xG4?qyFiQ>B5o8(9bSZ|5Q?r=UD5ejuovCUj6^91k@IZ(LY)!V>kz~8;1r~6+}2*p99K6CV}xHAQ~`5kf!uQVkso- z?z`151nFa*V3$7>KmhV8hcmX)2HWF|CMbpXE5rYzA%OsfX)g=wu>YrD23=@IasdeQ zVx>?OjPTC!xyv-pG74F{tp=&bss9n*Srfo&lF1|bG*VWFfY=;%tP@ZlPrqXl2C^m~ z9gRPPx)8P*f`wi#XpS5lbZW)_Y@DAFi4h@ch#EjwIyO7AGl!&Pviw<_iI_$oSh~h3 z0ETQ-$NULvH4P6%2OWSV53w$fwj{amAGp%!Up-0vP1b?GHU{?svHH1-V6PR)9YXU%5ebT)F%}nd?_(EdDL#7dr1!_R>TBJGB&&vb^goP|F z6nJ_E#AcqYLBLW+7tc8`Xf{?eA$s^PihxKC4BxpwsyPt`<{DiYDga>m0>o@MXE0tS z3HlKkz-l}w2QCa*+(||HTs+(f#Ed^*#z~0=QK~L3T(JN>+~FP&V?0*b5V(uRJt9FE zd&J)#?F8)Lzq(l+OlMbU0wAivCBsuaBYhKhP`yHSf5?jaMfZzxgz#Uz4Fq0J7 zOXBWUh?##=?&Y-r<;DM0;fV7>ySY>g8T#W%6nBA84j&*|N+PZH2Yu`xSex>n*cdc% zYz_6ld!^6Qn1OA%V8pM4hfF#60@B}tRRxipG_(izs8jYuo+BZ)Ns`DW?+y(E?ot{~ zJX0`RHm7fk1~0>O{p5xEXDt3%JVZKcQ&pn1HXe|aXLW@3gR4eE_0Wb?9Fh%BllA8~ z8$ZEu&*nT{JTKr#Q8Z$qkbZ9qpjbF{z>FU~Qek2B{OS@%J1(SX)Xt=5lay}jZhMOA z2pWcFhhjEKkU|cUriO=bqpt7N5XoaifOjiwuj(sy8vHWd(sbN1Cj+63vkd_1%q*Ry zdKW-UI^L#q>>5KzaT6fSb}R)%02EqH9}s{hR4$e8Q%Rs0ct&Rn4JgR5^nb#Q z^P#VP;s3DV=Oluf`qsuJ2?;MuNE(4?tgbie& zp2aAJ!+1c!UsX4brp+RtW{*&R>L?J0s9}Tv!*ZTq6TD^e^#Y_UI4XfO469l&N@LEv zBMi_Ag2ikOS;KvLvNlJSCe5b*H(1-DAuj+RuruH;0ce7R_A{VQLGW+1&Qv}KCyKtb z6dFhtWlQcZNPueaBp4tJOxv?R#^OFI<5S*v6@PR%eT|&%%gUbvEI>N*XoNV}MMZ!v ztdR`SZbU&DPCF9VKQMSoqZxD|qU>X#h*7klZVt5sKtU^QBDoJhx=~(FU=b#Rfbujc z`=4(F2l7W>#yK^rRDZV+&X7a_?_vQ&zU*!nLseR|v+5udU5IBz|0>%kDPP$hofk(> zM2Sq;-DeLc6OmszBq}EReWFrDfDZBI6B8ssC>emUoj8+u-K7ux6H0!v=B1p&vwADt@7c!h+T5RMY%hV4>*h{as1;30Xh!6<~P9G2evX~k5M-9P> zBzGPSdv|0JFdW1URWLc=c2+~s&(fgLpJBS*(l2c<{mDv%05JEGQp)}_fH7bZhTT-3 zae(e!FdY-EnjL7Nj4pc|Kz6a%zAYxhSP)<^mCBEOnh7ul4`aUp9&4>`C@SuJm=k3Z zLey`MS&3!-vZO`@ibJcB#+>(4qCPg1Ww;MUI3+6qF-Dd zvcK*FP-xH?7?}D=8tP;Lx;w+_4rWxTQ9yeiT%t|Ia<8T!Xfqq7MiBeL2&jY)R(+nC zGH_C!nhpSM&D?JuHu%1P9(vt8@@h{CDv}2CP-i{{y?)-bwjf3$ARRXp>K?awK8$R_l$;He8pwSB0i1><{{l!v)wN$#$yi*e zKa94p77Q)4KCgk|V|A9Jz6AkG3~Y&V^un6|~yHG?YT7Mmlgb47rys#ol}njXh8w}PGUTl&#|&$0WqR^glI7$VVxxzlm@r%FHTRLt<(EpTmgxpWTIO2Ww?w8$me;VpF&VNS0TN0c&D2eXnwOj1(P!s#;^V>tSF1NQ0Dk}lpRQGeJ z&g7NbKoTNh#>23~G;rC2TfM8+;;+v<+FIhP{%zR3g#BWFz8AYUK1Q`)7pZr>8I?;u zwy)mo%7e4z$?JuUZd3Q4)tti~Du&kYKi0+aUs~#x4%I==sF5 zSd{xgIv-4qTFDQ)w!R$iljC}_KMoJ6iM?50$49?Oi4# z5AHn*WlNUC5urc@IR7yB*adBX3JC5SZ~Z}^x1M(Kcprs8E$5#=APZpE4li3FVM^>x zRgxTj0#O#Mu^?|DMtS&d#0t)l75mYybPzd|0Lecy$h{5;#a_#W`s|lxl#Idm|Gt?4 zST9Y9`(`JB`0O6}gct3pYzNmOl_@ zMkn_z6vE%fk}!h`2I>Hs1-UnF5QQfnMs!^qj+b9ToFNovI1#**JV}8|oHBxP@4`~0 zX;dk&`STSRowaFr%O+$n^M{A8gK;HA*BCJXB4%)l+s$O^9V4Ks16#nu*WJWwj1RGh zDXTSEOLKTJu_{%SkLzi_Mw2l=b+cFH4Y)eFR}<;R!Q(99p!WOBct<;);A=ucu8+lk z(Xxi-;CHRg8jlUz9w_$kZj+=NQZ=3K%74-OJ|yS{`ge!qC)9Mc$xvr-#rht!=<`jp zXfovn;<_|8F2Uv+af3#VAM*I2%bYR;!Qof~9PiJHcfLZ6Sn&+WuhbhiC|CWwv}^If zc|nwRia3R0xRYoHv3DHcn7%QHVqhHtFC!Las5l~OfzXsVlLPjFV3#;VI5FlC+>xv? z79+4bf;&ihD77#e@njr&yjq;fSmqelSm#*i82K3M5tT7p1O7WAM?e<;jN+dp2T3tW zHc9*m{t0;~NdpCtB(R92f_w~$>7-2xJjt|#f-QmeNX9_MNXFO)5);g0lZneD*FU#P zEs8yPSNS*vUy>X`#R^>Vol2idp$dR1{KI7y73m&S%R>`ptBmEw;}f8Zaiu|$>)m*y% zZE_r%x_UKKu1VyRrOAA%KVI)04|0>Qsks)bJ==XQRW1!KFE0BoN*mMWuU4JS*SyxQ zdE4s|w5UQ<7nDw@Hxb&yQxU_cmXs~ZSGDX~8Y&!J4Lu9m=e1pp4mQV;$(fYBHDA@< zpD)YT!Pl_Y-q*i7J~p4J8@;POa-WO19WEHl0$ckjaOH6DPU;)`*Km4HZ`DSlF@u~j zmw#{5uHN`ZO>o(qwwCXeOKq|(xG1>Vxnypbdlx5Ub6q~#9Ys#_v+HMCoo8Hg7T=d= zv^eo^6z5IU(e2U2QYCawT;01TV`xV!J5(4domBEGJ}YyoJ$f(nS08EyJ0v?hI%Tgv zlviPOUY!e_vA1NlrkAg4Y$7|YFIsv%HD33(lefRO&76GmKS#G?pUyS{7Yob9T1LO{ zY@gS*6IUG7aKdLSsWp)#K3O}$uOh0(%U6pnR*_?aLpJZw>OLm_oWb|GNU$B>F*K7rQ zOFz7qZry$XzmLBQzws}7^MCgNdBCHv_weaG`!)bW!CbJ{=;zq%UizGYee+)PjGhR* zX}yWR$MSpvQ34eMb8w#S^BR{2D`}RMDpJ*anc5uc^ywMgUiO{?V_`7ag}IJm2xnp6 z9sUl>_sieTiG|wWc{r@y8LSw*!f3Hv?cMDRCJ#Oi=3@Umhs6+&#DqnwGao$0n-GH% z0~4c1eHo)TqqruyE`2Fz$x}`Ud7l9}T}~IXLEFOZcAcHzvfx_OWjIYcvUpl}u2@)< zF4a_gW5NKs+##&N(9*X>5g0KXQkkliL~sPRhrCl+qD&5F%zk8T$I}?enbw-(ALrp@ zJ%X5#w_>YJc87N6c;<|r4!hGmz}<)5*`D&v>=K^Q&OzUxcac-0Mg%1W+d|2$-d`j* z*DifCc9=TpKQ$J@$6)e;;WxTX^?Y1-hu^9)qAw?Z2z|w4f%Z8F7)y|w0^hR*`~WpzG#K+W^_M)Z+`5c zbzN8AXOD7?^m=%nU$1QDc7JCHovI(P-zan9yW-i0>%?~WIK?{7y5J97-fO%87UZOf z;5;pP;=SNJ#5~X34?ba1Jndy=@2)Wpz9$Ro9qsgidN4laq6BbIk6c`m@7zn?3mmrPZzS6H!sD%dFB z^lbTeQU5*#B|z3dUfyCjjb^)ErH9FQIUt!NI4*pQ2a?NWcm3Wz^zu2H9cTM<{jvlz zn5-ljxoX^MGBy7$^~!C#wtn55mN;ji<+dE=%)e51wI1p2cH{4k_T1Kg(n`C^{py1m zjbve--nef6_VcCvrhUeyfQNze=8R{)4+WaQhv0Ah%&mpyq^qz{@mcN;ZiK4Ml+5Pv zey$N8;=B98navD{QQ^z*ba>X7-dv1^aKG#sou0U#T4&N_^nTs@#O}Vnjf38R=JGP! zgrlRs=&>8^r~7{Vv_DF`CsLuqYB8UdH*Q9bp>@Ld7Ou)+WNYGQeCL6 z^isM#53h#wyu3x&P?gjcRZUfMH%xR|yk49vYw4+V_xMbou~6-lc^jQ)2JU42s>ZgO z)>LbAIa^P5e03b!itYZxkDq3HUyj!PS_E1To?^pd^X(MvJneKgxUyM|u-1Ck{&chL z)_VRv!-L>geZ;-)PsFz2SHGdZ>QV8Ycy~EK`%YfS1?5()bDCam$c_4Z%$Oz2?tE*% zzlUyOwOVi6toJyM(r~%lI^A-=iQGjN>Xr0ze=hI#(tdkV2AQ(c$CP$L`HYHIq3a-!BSBED`Oz2_fO8B>0F+=pU6OBU+b zq#A=V6gMBix1_YjSGYh#KhQ=i2Fq9eX`+;z6oulRBQjCetYngP?`&8|fYKyQ4rmG; zG$}fr6#P?=thA{>88`8wgFqRqDwsbnPP^0)ff6i9RZe-W$y(N>#j+5yj%x&aqhNsW z>;z-*$~ba!b?x=H>}@>a(jcnae9SobC9mN(9MKkn(U+hnQMsrKh&)*Xg$Q zrZWLvZaCM&dC=@r6e?_2u`tLPsu&7yky|&HFMIst!BwvFbmy~V*2j3J&=Ehg_3fNg zDp%v>%92X8M)Uh4BRX?u`)lVD->b*^GbUTl>wWv@79NNDX|Vo~TsDW(yCkAWnua1j zIVCA6DLFZW;J6||Ku0RwMBJHeN`A({DYhATo8v7XZ-hLXXC0Le-rcN{-KS_ZhaxM# zQMy|vp)gVxbL86SL}Gi83fYy1S}MVd#;qcp@A(F3e^>M+yZfyYu)pdxACJp8(a=DdAeuIJC?@t`-fLid(`U=sXEY=6QjxFs zd6Erz17ocn-pAwcE%K=JbQNzy^>vahldHS=uv$-7{5zrNx*B(jiDpcSTyLAVaq-ej zZ$l`;wJR=zr~YdyL?;tHWAy0tx9NOT>)wBD7CXfX^X}temfSeUyP)^e*kZS(Blc2_ zZqKH*nZT3$*83pyXN9KshaiLbeRKSfINMV1bEHtK<05C#`R(EmnvAEuQg6re34A%Y zo{RkGhCQ%0z4}eD>_d|FC{MlkArB zSNm}AQaW%}#-|;${dQ>4Ir09mH|)yP1g=rkDP0GP^VZdWQPy>;0(tbcU4% z$=kn!Z=0?4q#iMK&s6Pa)=yFX*OBE-&Urx{-dZ7@s{dH&~9uw!v&F=_li>*lYLQb7ou*waQ0- z#Pw4apR1gU_ihx;cyY-6K<=|j7LR7v-sgm45xo|+tvS_Wa3R~MH~Z^Eqn{@-<(Qm~ zhwZ%>&3Jz39lM2Ww<@#kN&58g@}=f`^=8}o>?^&)h-PdG894S_m*O?_^r6q;}W0EpTD|2BRZ{)3?W7mfbEC>s6$YEJkM z$@iZ||Cei&;XhK(e;WPYuF?PSyZ>qQf4fHi<3|3c(f{ol{SSHepGN-|X%rOz0KnDO z!I;k4#Ms<`&fMC-%!J{8Xi|XaP-oBK^0H#EP*_m^PJ)#X7gqc?*Zmt>5MclIi_Gx& z|0YZ)5p^deTT>@j0|yfT0b^T369S3O3q?O{j(M!3XoW2*(A#z?jzjQ^z#7G8mltVxfpBvB3 z`MjJI1j1W)1+CRzO~LP{kLOiBP6ZJAKK6Z50&)ES0)NN=ke7kST0T%tp1KcseB0Qh zy!~_hUy_wyo$rK;rls=2#5h;geD3#{Bo1RazdSdhl#F%CMbnroim^qnhj~=MRbj_i7qY4ekIeLe;{rpc8Y&&A~N?iAJk0{ zN$d{YKsbQE@cq{)etZGyk-KJ?3BhGCrH-KQbUqu0{^23G?oPz1g+PE_bQ}hN!U`fL zpg3}!uuR`I%I*sG>?o4Fq(w@AYy~%JMED685pI3K;(G;rSsQ=QwCr^AiU`HAju6z6 zcuSC!{HerH=NLW<7K543G12lMNqcAB#Fsvi%LPGeU=_II-ZqG`0#L=-NNfOZI~5)O zRF}OmCB5Y^=L50j#}Go0W|uGG;xq#HdPz?5GmBIJ;8yG4(jBOj0^MdD;XWfNB6~8} z3JPSmF$w^AelCugL7)$@5VD{*cKBeP()*+1$1z?Fy^G>b#nleknvhV_64s9A2KUI~ z2F)qP9`Xrv^ATSV9w&B@)UnkpNpZVq3+f_^KuAuYAnlwlJ+l8Gumx40AbVFq$9c4v zKL!2;tInDt21X9+eu)^fEVn$lnpCCF(*Oc3OkATzN!z?Ed-y0FQ< zb5tmadxb*Y4^KHPI}y}>h=vImyKHSou)qbAVtm*o+|_%_kygEpM;jtc=#^V0g$Te) z`yU~KkU=1&5wwJ5M-6>{P2M7DHJ@J6{{B3&$x4v0j%3orvnXC7)`+9ZF~=@@1iWb@ zdz>q{9JyoVf7qvNa5du<$$zMyR(T+;k)^~n)vg2r{sUYE^|fYbHwGMjtq#3k7y#w1ERjTN@C>a$M4f!q@Y{oPSYRD~K6HaG zR&fdIp3RPae6r1$X~^_yL`%;Jx+T7L1Tizo^!ST$6m00RQGl~81fU%_9~6PP-*The z&L@hO8_{V$*>eZ1W%Xr9BOkN5ca0-x;77Hdw zPY|o3E2#O4Rd}6dS{KTpl2IaK6rHyod39DX7E}PWmY?_NCnKu-yG6@~76t>keHbJV znod1{l~HvHtV!Bx_hcDgJ@xt(lnN{0kq>0<$%t=4lNldQvFM7Lg=GYhFrMU`yD|zK zras^y^I~nPiZ$!FX9}n3oTIFXB`{qjxtu0jX^!0VaM1pADl>!Yt;Kx~b#z*942?Xx zV`W7`*p<&cmL}Od*i-2)u1UA*tmYZ>@R%F}iq4;v@y;=|BZ5oA-|=#xIA&d`ZYNB} zP*s@^c#@7Oj)%D>Thc+CIicRSD42`fl_yN`*=y<6Y*hb{QM>tNZYtREMl?WWzDAQ> zL#-XEplH@;N(*-rRUP%k zO~1TWqW@GHO*JWhx31-DJvUUZs`r{{#&|w6!V>l|c$}~q6|9U=s_BM^P&ry94g0@q zH)X-;{OjaAIO7zfZr)KhenEwdPw!15T`;>Ux7*D60B%0&rc%ukyT@Xi#6N3s)7MXQ z)_ZlweI)wab~{If57sZAjuEq+553|{Kzz}iXM~H0Ubr1Gp|Uj%^$TMJjk#i?t~PUq z2Z%{^U%E7iwGo1eLf%`bc0E~YR{AeyjM;LqMa0a8xV$f@HCTfZ(U;o-U=Mn^e=2#B4<| znzT~GXp93-_R|y8uOiZyE#NMh_1yB1dZiwx(&z-tW^!CY7ZY`UG`1sqryU{Ks~?hs zfWF){R-p4%Z)i^1%FIP@tGgW3QU+%&bv3#~(=KFl4(uD3CCCiL7~vy{T_=KB39H|K zTSG2Z0GHMFm&@|Jofb&|?Y88_h^dN^aX1Z}#LbY&MsT0-lP9g ztB#Jm%~f`(%3lSWTnE{);R#DnUy|lmQSbT3Gwv<- zX2R|9$c9)@bTh1 zdS1kW)XuQ5nMNB>t@k5I*ByeDS@&5#q`$5MJX?db4DFbj|jv9S^&LZdNH%OBuGiy4NZj z%Db8|OVvA3)r51GS(el}i1X4a8zeXMF^{)=|ISiBI-CE)-dn|1(ritlw!6*PW@fw1 z%*@Qp%*@Qp%*;&fZRR#JGcz-@$KN^k{C9ro-jU{Q9_AsJYFA|BQb{FM=FXK77~c5) zuK8X06kAV}6>3(y?I_6nAhr>9&|4>eGQ_u4gpnu^-0Jq+QTr)>+bIxDsmpYk2P^mf zgzR9aE2O3wK~>9XP239~%B&e7g8Naext<2_Y=s6uu{his*YuExZF|S5sgS%4dIh&I zlF{}V6Wdvat*g?W9n_0ax)h>deSXhjFwzB)?AdOQY!QC`CHu*b4fKho2lQx#MF7}s zYyO_;0f`IC2-OJa1^lyZ#7zoqiTyn>MEh?4|K|n&zuZb0|F7xu|22L7Kil+~;otA* zg(u{Q9rLUvAH(wr|;jwhj$(J0*DfXwy&h(rcN4S`mQjju2(GV_0O%E!Y=g7WXmnjC3?|~wTBKu9)W|Lg6nSZ># z)mHKd?)w|9MXfoL?vfR}ro`z2FO@7J@!LE&zo#$kuU?#9(r7rJfx({?YWjunmEC31 zVPI@R4I}7qEph@Q&SFba!X!z>wzgMS+{KI#w#U3|t=2djwH-CKj2M%G6@_2@2>$Q^ zlF!&{I7mB2?i76P)Xz3(7nVg~X|bJA@fZO3U5r|5Y!#7 z^mj;7@z()C@rO2Vaij06npV+C+$O!_saoeCRTdOhLLH{Cxh#d1{T*4zE%7NoJ(Mt{ znrNYLF1gN*R0xM5Lm09??V7xjbm=UdQVky#te}6#yqMGbGKB}Ogyd-63>nxMxu>5L z5|crmH+kU5UL~eKz8wDrZhc0i(LEa^4IyxJfVAeg69_cuJ4oz_za*E1IY zuxK{PuUgLUParoBFMm1?ZgYY8RoG#~PvY33k}`rMcyPPC3-I^YOwOWSi!7lRtfdDq zz2*JdP$4^v1g^e_tWj!~AOlzeT{1-rojcemZz~R5II+)uESZzcEEFtX41bNq7iu+&$6lJu&@4T|;6JLGVup?f7Mdg3Z z$2k*<2IFCp&mo;3%7~e{jp9YP)z^92XD_A6aUg{!Qi#6_8}Kw)MB=jg{h zGB^$3(dWkPDHNbY3tM7=qRfiZQ-p|<=6~g>5&l3_R(JzSH;Mro;6@Cig!@d22vK4? z7Q;OuKurmmU^HnCAPI_)9w=|gAVq^)9wQ*}O;Q|6wMKosLH?X@(R0AQ)NiGC4VPOu zfhD)rsjzy|Gh#!CarCbUU|>N^jUuZ=p%J^Of{F}H;@Ld>d)kE@iU;)R3*~0SSpjD) zBFT|;v(yVL&2at~M5?FO03^ez(1r05+f+i85V8uRZ@9aHzvC1*r(`9no67wl^{|>j z8*ZuRT;4)KYC1cTY=H|&?hdxcSN>zjJWb)&?kkw}NTE=qunWedv=SI1#Yg~L1sDdf zCO7}r1PhWCmr4alZ|H+ye(Bi65R)VU4irB4M=^Z-PE$lm>N|t)-NV9 zgATL$e0`{~>k_unqB=tB**vQ71v3EFfkIja%h5D?@Q8cFw0Xj(n#wL+o6N0*M=O!5bAu&HxheMPK`b1f+pF3z_=woOdkmY{AA0%{W6g!Wf zUe#3C^j{`a=yWaym3s9lEE25W7HQ+nUFFdJlZ{E;o=veF5s}W`J@0@6MNMe zfr4_TOB5;{`t067a!G~pqU$id^2ik?TuKdbjp1GK;Dy-3+ZH|zMzgLcG;b9Yjj}z1 znMI(Y=K?TMF)YDUd9A*+2(#ecgCc2}NL&!K^9D6zNWfIizNLC^%xbbzr_3}|Xt1bU zFD)CJ(g|@|k|4733>f~ez3ieg8l>_h#wZItLRF^}x9m`|N^Q1kStO`glzmtY0VD?$ z;bq}rVNBOTjD&_c0#?%B)WU7&qya@^M>aqS%GXn+uA=Ms&QaSntrH+409?s+17gO8 z-!bZmMl+Z4suw@i0iGumY7+A3NC{+E1xJ2V2QVVPr3@-w( z--|POdUh`Ycdmgpi5BT!EL9HBMdSo@Jgzdvqvh!p?Q%@YCt&~$iHv!HBJ^51 zlO%)cn~EVTntFjo8(W|ZZJtSN(eXq4QR8)rUTl=Y!4@!P(;zdy$nG6B1VUFFJTLcSP;&eWiT65BQg1 zs&1M>e*|l~fszv<6{WC<XLqZy;Z!qaOemz_m)(D!SYszRY6RMl>`-}@Z;c8qXRHH z=v$qDA<5q38@dzV5Pev3YQO_hqyeijpVw#B?NPw(U?|O6F?#dXQoqFjW0+g2ryDC=nh)4$S`+OZ`MQ zWfrAmgh66t0p>38iYm7Qt*y^8))Snmtx_g*>Of{7XO3?v9w&1)Dyk?KlCH}fkTl?u zyslzZl?I<6%%oUwQ0E*Z6zjAq@rLD_j3PfZ$?XY#55s&OIFOKNO^3GQ2+e>Q9FzA{ zHk>e_njtH7HoZG3J6;S{Lg5O*dhn{ljeUs%BPbg*z=-SsCNp^$Nn3@r6i7>NCZ*G& zLv>RLUn8#!t#yOwUM-If%!HP8Pqf#aPg4!ex~WW4s^-{Ta6-jahTD|Bu$&}uF`=uh>V(h*TvPCLGq13}BKbj}|6qD-0g6yE zRkBFu*NnRs7*>g#TjxT;TEH@;k1hGJ$n0Og*}s2a`GjPGdSi<6VCMTgXiAk-D1L1c zU@9y56XA^dQRu`%k$B4#2fK@6u$Fmmx^0->R7fTpiCt2djn^Qb!^C0gB%1@3jOlGv zO+Y<52-H3ZJ3yJz6i|ahR{;v<a`p&<+8hIz_f%k@EVl$mo1i50T0+x zlrSz>yN;lloZx~Y#YuhgmDpnycQr{GlY4WOVxY1xvFDI5_=S3X*npWJ9 z2^|6X60%6W=52c(>}J2|18ykak)39P;0#Qc_^`Q32=HQf2oSMk=n`1}ItDmW&vJA~ zGYW!ateyHSj@6FReJ6TG!r1aGBd-25B&ER&xh1~*v74m9J=vpzd?_}(5sjpos=uh8ffZq5^pS}_LnJj}W{({?caiaGZuRR) zg~khJY+Ne2;nt6viI<_&n-OdRVi|FDspBC0gMTWvX5_B16`&^6I&>usvxZoSheVhB zOx=y*N#?n#ie%;~jcY%(kNmA%@9B-1$~oZ=u%JO?BAmhB1rv3Y(F17}C~~jj8~t_Q zkN$pq9o_)CZonLFN2+Q9(6^>ab}ey$Nu1DReCcRXq1Zn_Nn7#lK!Gf$5-XpC;I2^Y z#iWt53&2W^W+m-l8aZLMaMz9%oyRO)#J;(qA@J{M6c7N8bR(GTonZi;0~6S!vI>=q zUG+kdra+%NS|Ca7Am2?GYBcH0^0y3=#$~C{Lrz6#FgD!CQ|{9MAXHjHUGHSP9%@Zi z2GS@KKo&0U4P!^s6p+AY**i*qJr)kZ1oalr5ZSdsqR%f`p>SuwaX8e4f!ar}_YB^f z8N$E;KJf(()xPAsy5ANZ`k{|9ht^7b1(@L48Inspe)bPeQ2^*HjI7nQoq0Kx*@JR; z(RtgAu)zkY{~U%SiuXMRK@BH8dFG+|gIjC^gO)PFJ{^3T;X}U-)K?mS6s88wcy4QG zJJf&_qISmsSB6s$vLqrlw%>EXnp*O^<6~EbO8A*qBL~>E%>tP*Y}7?pnMEj=?I=j$ z##J7?%1H$>8=oTIjm+e!uN$)aeMw-ae2nGnXmkC*^g8{8GBjbP0CEF-XNYrqay8F8 zk*kIgq=Lw4h{ZhrZ9QSQFwF!=HL}5ux=<5J4FT{#&+aiz=yFO8tO{2QDmQAty*^YUdqAu z{o8t-KUk2J6l_T#<_O#sau6x(xYmGvI%Ce2M$~{%$$f{^0shhU&fQOouihGEbF zfR1jP(l{UrWzte#vrT@g#LX0OB~t#qfrwh&H(^V*GQo%$gu4l_6NZgIyM}W?Ix%Gn$PwCWLL%nor;?lg_U65ojjQc7cQce^+- za7UAjSkmw1Ga}~E{Y#KPrhmOI zbqyXYVHvwP4Ck-;rsDW3lofp@EM^?8G4QtrU%aC<<6EdZgsf1bxSDeVh$2*fKlV`hs2&ojT%q|z^j;&p6T$-gw ziWLsdN&R7CRz(O>bB&2)E^wpzLiaW$`1`wFDg$A;{@xfmB29zlcZ*GR$b1D1RJBed z)~}yd(v3w4(`U|X;k#)X`J8^f*dK;g*n>ZC64`)kwH(`l8? zl+y{+&SSy%d?8aMQ>Ua+VQs)?KC|k4^IbB8wN-BTR zJk1Cw*ePgQ_I2&t8ELTmgTEKfi~ZT{AIXev^p}BQS`i=m+sJs`sCR>J$&C2VP#>M2 zlQW8K{WUq|ow=|u3T!+Z2QHZ8Sdb$|2u#yfl19NP1PDnZDNr^@ix@D$oNpa)jeH+@ za1j3ZA=HQGxP_{($wuOVo z0cl$RJFcV%FM~K%_TypHo+JkP$S%qZXAp+4z#@A{EwI9#hT?;#a@%0b`z#(K<`H?TN^w5s@zEyek*`4h_WY70{oTjr^|RYJ`S; z2?&mtKtXTQPv8Kszz*)4LH#`p@`W*dUQ|h;6>$YV_$FWSYsOXmM^bS+@V+^5Cf~vZ z@_}fS+3n#K^`DM}tL!(&grBh}u~$Q_mu6HNVF7bSrFcr}gkynDS6@t(jPW0Tz7;bp zL>o=C16jOgc+C3m#i!#~Mfj>SbpuyJ;QcgcTafIG!0$}XjzWvl(a`UN0hd_PE>sp{ zS|_sfe_8MCnwt};(I}*In5gqz%6OU3F@du|qC*A+O!<)rNQwd{155acjr_CX(4hFy z_^FUX8RUQw^Ck1f@+$Kz^SAg}`J4Hn^Mt1jjtP$C%^>fY?y>J#kCl(5k8zF#&0rgF zSASXuy9jt1F{tCM;IG)Nkk`}K+cUIEkDRWco8{V%`b5}ecjdQM1nB1dG z6s)I<^0ZN}7Wcz5b0WV*x7c3OXRrog@EDz?4924kQ({+^-3@-PreAgx-wjMwn`Zfh zyhPn%Ku@`SL~&~)wRvf$x^k~S+$?_@J{TGr+G4-GFISt!u+RA%l9=+?9fI$@M$g4Y z#pqiMx2UZuIdNY)pNp**N0^fnIi5?cmA~P#!epwXy!3Wg#fg5ekZSXo zj}+DJFz(QKad&`hmQIt+MhHj1$LoiIwqmPCcolMqj!@XD)+oR#U?>BWWGkA=4^GQo zWga{;b}-vbnhxD3bgE@Er+JDt@;DV;|6IatSbRWqO8RDh8Vj}qGmbNGSwDAau4$k8 zG;dFV{t}j zx=c0DP6K9$U-4g=OM0M|_m*iouyVtBB^wY)4d8A#*rV>_o8xoQ+oL*efcI1q2bucr zt6Dd#n00M+q@xSeEa)2-3IO8`9cDOY4{Ejm9}~_Yl{)Ii=4I+ftaCi}LH7C>5}9Ff zc3V52^Nj7$_D>1dX_{A;S4Y-w2ffZ-#&yOG$8OV7w7ba%pJUE3)kp3tyz}m!?&WSu zzMqGni$8a^$G0o<6$Qhm6L)y@eV=o#W9~-oY&m>CKr^6g+O{{Ke`~3AUMEM&bdq_` z)Sm>FGS1<(w|wmO3_R(+|JXCSG;k3r8^(#RrkdOwx7jVRXLZ0TP%OAB(CshjKOE@V zFTG~H#@gk+dAX@YblYv}Zz^JM#c!oNklM&Rl?I=MH+?msndC~wNs%_zMHYcp-l@*w za#gmG?&9=S^s)S_(NaoAsiWpq&jeysqC=Uh+*RMv^j*&BdB8bC%cFv$F`=ScnXTAf z@+iEa_O%z)gmE5qM9aRHFh--!iIm-Xt*}xYFPWRm?6QagSo|8juY999^Ho2s_tmOt z@!C9C^Tm07n57iazNw^K)HZLs^{Kv$iF+iTinp=-U-Lz zw9Rtdd;FKcjn~6FDC<*qtJhtIrd2bS`&oMP=j9@vP2|?&j3brcch!r-*_3%)4idhJYE;M`MjxL9XIij zc?uh5)Um-5xQ%HXC)eBxjPeUlY&G zXexP>DcxKL2c^0vJ_qI9XJ1|W$`_Tg9VPA;H@;?{H_vCQOSx`>PlJiJn44O!i~G$v z?(IhxM=FSvUriAj52u_luA3f9PnVvRv}&D)+?SoSTe98V7lEVTo;>dhq8E4*FK)v_ zcf9N$iS0bxZ*!qbW=m9>l2zUpj8mp~HHJ&puckM-yj9)1cl^0iUk2l7k=;r@FZW=3 zA*`%9-S!_P>m}T}+KukVhn!tJXJ_43=}iZX)qktcno*h_d>l8LOT9d=Tpk{eTw7ec z>KOr!Q#I^c*|!_sTW8(6e>m&jBDr_ry?t7YuU0%$F9DZtWvp{+Yj4a>0(*s0VV)|h zy!Sp3+Q2bryzPzH7S-Tuz&e4{oLP5_npc47=`K0VG0E!se7P|>^)os3t4M~r{9q0Z z4fwUa`;)bq&BfYA-$)otpf*n8G4OQ1h1JsH+A6$x-yVcA;l))_OY3AW^OIxMl*Wc8 zSZlmRdy(87Z8=?|pB31i2E3S9BU$AfBiY^O`@;`=*TJz?IJGqQya%n#Oh}6!4XL)7 zu4p^d2_o6y++#=ZS+B=;w!V+BPiM2RszO&j=fTNmlZ!)L)VYSoEQ+Xg(tCU1M#5E# zr>Z*4Z>N@r>uz)JnYOJDO~Sq%-{KpnTVJU|xoWrjijulsC$^M2J_lEoo9?a;o>#ut zQxCbmHwPinYp&<(4;xSIp%OIB4ULUW&5e!DP7S7hV}fgw=!-E$}>E$EH6lct$Uski#(^}6BX^-X~1M%R#Y>_hcsd)--xuwsyM=d>g1RlC8_ zZ28ht+F9pxg}SBAMQ|NPnB!x?R!6n=?LieY{Jp?)&fQQNueMYEH7Nr8d1hxKhG9+@ zS;*D#3cwf*a2G!!IRZIfuE{c`@nUXq4z{oeTbfO)uG3|Ge~MxodS8r%x7oSP`BKG- zw>&;^K04WM{_5R1EjZTP7h9^M)^K1w_5&+Z<>_Z?wtJsd#pj@E=X9=TetQb{e%jM0 zbfgZH)$z*DE1ZUvdh0;1w|8(?+N}*}>)cN_pS3c`6)fD`Ekj*sBgM@`fp zm#mClhB9fQo!ahJp*Bwu-l{P^ro9vM7mn7yV{Xnp>(MmW9B;@jHX)Hb@+}8}@b+n` zJPeK79XB>tJZ0CT4p`6^Yp`datt~g&4+1Hdy0q27-LOnAj)S{8JOKv@$`Y< zZvYSq+QfCBO2XcskDJo?L0FM03}> z9C`jif2k8fyp82vSwCv_ht`5z1Z_Tr1 zr<~m@Z9A9AC$gni*zK-!LzPFX&At^s0$=~O?wj!WR=w$K&@vewWjIsPX0e>Lw{B4n zFS@YlsyRPa`L39(MPe3zEF;_vzYKFt{JXQ3s#WfK=)S*ssAk=;(Ksi*4^M+GnpG)!!56 z!C8HZozr-~t&f8dj~?`DAH8I0F#vDxpt% z_&=>W)o){97zkX7kGU!<3cWW9hHnkDCm^Z{0#cAvWN3nlq{_-9Ko0|qxTht)JZvTC z;fop!*F+>QdprQ<5vE(icc^>C^=swo;pQ{C+u+U1*E**5x#LXMd4wo)FWc5jW-<+- z(SEjsDK{~G)nWuUBc8*2YSF{piL|_=T3q5jS<7KniIS}U=v)y65L1qXf=2GV9yyod zFveBlD0Qk+rYKetIVoT3nLqgplaVLV$kPE!W|hadH~DxaG-2*sOPI@|&0{KrN?mD% z!MVJLdXn%L0lsbESCY7c`cTTG#(6q%%CM#5!kDo0;I10|rGe~(DI<+=8R#=sgS6yn zW9z)j2&s*tgSAz*BsW_61=x+_2%cs14Sz$ZEy;6;*2T}%ypTl zTRBa1S=6YKBB)W-CF`l$yN!t+MIWnut$?q=5P`yfCX$S(a28w;ribcn`bhzWcYp1T zaoF)BvfUJ3J28E(eGU`kqfx(KUpn2NJl-zc42vtUYPIkqC(O;LCPaPS?D@Wb?1U13 zV8-?5-|OG@^_`d{mt^8SJ|fx*FWTHTn+Xbd*kTM=vKI61wReV+=~(R!6NwA#EdAXy z^8K>2y?EUz^TU`T&TG6HkVmAR>vo^hK-_vG#9gf3jp2EVs7_Y~oswbd5dw5)e(=Fh0hy>ZU^8uz{FrYWS8 z&I-j_@4x$)n+e8xzFWqdp{xYZmFp7NB;=5EX|^AelorYZ+evE5YSulP8`hwEKMGN3 z@jRh1(~&^>HhY=IGPA$z1u#DYu(D!E6VElaLtF=#5xZVbIySXDPUc|SnM!GSaawOG zGZ{r%Qt$L@N3x~w(0p%P0O94BS=MvMr)MU@z4bWe9VG1Aq~OQ|kHq>vZ6tc{N#{g7 zQmM9tH@_?KitYzb%zTry-|rte9t+bXUY(pA5_CHVEWbu|sl>>*&}-g7U!t2%6a`Qh z9(=VOU`J`)W>|{8a&U1RKp_(bGHG#Fisqw^H>QoxKYJiR9`6@xbtXr?+JUf+v{Ywm z!^Y01F<1#?dJvFEgb2Mp(WBUz`_@^WA$@18RB1Vu7b4+Y9|{V!JCEJIe`34}`?TQe zGGsFHUG%2o??}blnTWB0i?M}@v5AVY4T-UpXp|3$6UjclD_U8b+QxH)@^2D4qXl*d zpHfC`&BjnV!-};i$od6QvilHgjZ6{kNZ8;2vts$O+m`c(nA10cgUw!Y4JcQbO5%+DPLpbun`YGhU!2if!$cAI|u?GS-$4j+M z_fh!I1sMXd|3CpYY`7vjCSsoh6LFVuMc6>|_YK?c8(R(ypI+?`bAC)izYOn?H-r&L z&~45KyP>sL1D~#FZ|BP#F9t8Q&uvuT#v~=M)Jx+!oGe#@)e>GhEz~a;)fNiQ!d9+mvUg!=r_du9GJcxs+h9SJd9WvJO-iS*Z z%$16g{+#dtI3V%H<~FIU??>32^0tl@ZQV6%Ede}zHr2@yZHyY;3QgEi%7&F*sed2_S93KqT!W& z@ejk=cj#^`n~I}T6}AZjBRM#YxO{TnytcQ&#|I{4zO+cY*T=%^y@gUUw|w>mVQPI5 zfTWUM;HG^NdRf8Nd<`vb*YP|O+9mcsO?Nf*^u4Zwz`uFEnF=^`kcI6Yu=E(}0f!C# z1wn`omao$eg*-%a|A zJ+HK--=VgAq$e%}2n0PPC*S2ujFI7=D|-U|q|*`}NFz3$DG~QG{nlF{AZKANIAT()p7@YW&MN3b0Bi0M?8}qebwTe~>4nVE z`ua`K1VpD`{Ky0cixqI8icsNwfr&BENHsr}h$_j{;?(Y>t8Z>61|OWvJqjC+ zIKOO?Ian(h)@U7e?79={A(kzTHfWV@-tA@u9&@PPFWSt?Iz}JtEM%ytb-1&fkyMGo zF%SF+ir**uY(_1TvCn)p&;(kG5jCZa@T;r|eFL-l9flMT8Qhng|g=?8_C_mz4iLe5=}=^;b+o5DjN!&TXl1$Kb|`-iXHSUA{Udh{B1( z?HxukAK|AFk2N^Yyhj+6k$?w&RB?y}x>I4`9@iYXXW5hx`E#SfEduNTvA5%g3u0Bq z@N-$tGYa`00bekAxEe-T1Q@FV2AD+&;~TpLf-x!kX380RU%1Ju70{hQJgLLvCCOc)hHHpc%QY-;`it6UO_Q6XjfO^b-m zA0_)I%YRY+^Jqq8h^@*06WDNK$|GE^X=0mGMU{}V3i{?}&7+>_^Q&2UNulgePPp=3 z?NnTj==zSV%{3_#tn~Cmj#0@M_xab9zHhP}iX^dy2_vsgSi3hEb#ua1u0*9lC z1o?rgiS;S1f&}nZmGqggg!xYn%e#KU;(3zERcyNE83TW)iwxpjmQ*5ySmu4}98LUG z_4UJAP=WM5YaI>zB#iaLOwisRq3oxm5B>zXaAS=nhys}$P!OUXK`f0)#>EqNSkTh3 zdKBE;0p;iq5cuvE`r82ug8n2`q4h|ORwi=tYgiSyz!Vl3el^)c-RN+*M9~4B|gcr65J` zT$ox=JyIj&J0UWCpfEKN-~ZFp!ZiZ^pf$o6Q(ItENY8T>8sJew?$`0B@j;x$feNHK zqC!v?kod1MXdog`6_Ti{xXdJwF}0hCC*^225J$|=Xe8{LqfwKCT7Cx-D>Uj8Vc5tN zrGh3_rSDE87HSPeD9ltE7XKAyBQa5_%Z2{k$#wF3IF@eL;w@B!zrm0ZDS1{!D_zH&LAOn=?=GpHPJM|FZv;=bNDMO(<6R zuke)AFG>dP3~@yh+pVScs}luL?F4rY@QFo>lcuu(|Ekmh#0ZV+{>m%1hKQTESw!8suJgpY7!H#w12-@u1Qr| zGa6ZEa=Th*`gpD$nttJlJ$0Zc^VF6ZXddhMs0gX^<+G6&kep9r)8@|<|4~Ri{gY6o zv%ubaE$iXv? A5@)yLyJHHkH9gew-XxA$?T%maN+a^53!2|Yjw4f1&qcCD?3tJ` z`&}KHQY3$(=_=fZ#$Q+ooh(3UfK#${We%k99PBQ=7PRS9ax5J=@JAg;5nA00c~0;P zJ=6h@6|V3cf+nnElx^@u68%8b?E^*7YC;5-jGZ5w)Zo|{?R}ayj^7T7TeJ~G3G0XG z*={i_cN*SA4hQYZ3&Ob=3k2&+I${)rpl~D@Omzkb(GyD4`qhM(&(B5l{-N{vD*JYw zMdBh8{l`<=z(6EuI2k)OHupmyAkLBMvk&B0+h_Ik{O5*6eA-SX z`i3Q0?C;ZK&QbAI6gW!p&nsgMh;rH$Zqsvixl|xT0pta@#7j9;)y#&jTsW1p9Bf>$ z!#FsJee4-CjdzNu89C(`n~tU@B)pgylXFpUiRA{8A+U{VOwOop!gLFhyMOcpIwA+Q z%~+1;G^i+<_Tq_F4iB=Q_auD~ImCdnK!P7u$j|L+T+2%Ib2_rgr$0~X0j6#1^=|}c zX%$k%5x=K8Wi5QnSixzVeLro*_mtNEC{XV_tXkRSI@J{g^{JV}``1b0m^WT)G1pd) zAv>Eeub(*iu51xSj95e_HN+9f%Q&9jePxuJl;Gd?XHwM8R@PcFbZ92|e#$bJ^9!%c zVFv}nXgD6*!cKXl?3P!N9y@{MIf=E-_E620;{~A7ZY?~U>Dk&jjeM4M^4s4m!q3gk z{OLf3+TezO$ypV1wIJRQFLf%VoyAdUW5ha{L^$#``SExdpya|t!%?SyR+a8CBv4oC};BiP)yJ_K@K$-nII+Iw7{LN4U`&X8F|%E zM6wlA0ZHvln~HkU)Uw-Lu34cDTGiVAX-i{QaKOWJmwTnPJ^5(mQa&~>qFv&4%HS=Z zx?xp1?_3{u1Apc$Kgj!H8R|IS^sbjlea9^|5o_v6fn)DGSLkxugf|@X7ABZ5OYqmb zMct;4^F+`x_Wi|oMNmz*YI%Iwd`JP?j$FF0W;BCiMRU|2F4~8Y8(_SwE+*?43NS zJTwxJ z%bhMq%@}SM_IX9Sjv3QBUT-%$=eN%d>dr5|wQ`7%WoywEUIg$qiQM@#hq^48Vg7d4 z*rq?S#UjcQ_ty`V+2#&6?n1`r6mIjYTNEUDl^;V+$#`?qMbe)V(Z|jK_07>* zZ_0vi(5b3L7fJpCZ;^<#R9N@^re02&nIG3gAW>#_spYxh7FV8USZ^%r zN4TmlkYCc=4b+yOA)BVgog$;@RF@Ct;NO>u>x_>Lk3nViu|6UbnsKB0|LphUxP;b;=W248! zRiT((uLr69BpBNgVn-u4>8I`3;@?oFx28 z6@7fe<;|VY%xgPf7aP+%wR9Ly;c7GUgDqN|IH*t~>Fi}ew9!brr>;|=+9AJuG@=-Z zT3VT6EsUMZ_KKgh%$=uIC7%H8>;Q2=YgQ@m>$6G$qZ;uacp~tZn zDCDr}T9uJ2lZH3xO$KS`dvziS?J6ILjHV>tr?c(HIp#K~YF~)8-q>^rAK1D&sZHZt z*UJ2J1MAVYnDC}M&n#1I*lI7#E6xQ-&53NBdAwKSL~QN6Mtn z(8{`b%i(9@1i2?a=IR*TXZ)`2orfslj?#ODQJ4W6Az&0{feXz0W~)k8w2e4e%W2FN1F_0eOG#6)km%q|`@fj3#id4#lh;#Ll*eX*?blc`5@+-z@1;Ii#8p$C?>T_CV8A`QbOXC`@ z7R#HgOjBS!j1Dle>>b$n?a)diM)pY6xJ;Q!IwTSn!zB;mri zy9IYAxDzb62Pe1$cXubaJHcH-aCg@L!QDN$yL@jlbLYg)nLGE_*Q~u4i$y)Fs;i}{ zx^}hU3r*4dv+m9nl9#I7b9~7`Topm`IPpkb6I~mwTo)%d_i{nO@3hb~oUF$)Qp2BX3`?7W>8TI2l*xt3ah-A?GZC#V|>dT3Zi$QkzWq&a2TlQ~lg|8A4qVxmVpyur&iEX)dBdmOB? zV5E4<(^=W;oC;A)eQ9fN%2=ni8uSC2KSl`e>nBV?Paz~vq(=qxN^U_QNf$Efi+#vg zGH7307r&Va9VvCT{t6*p!LjR7BJoAyK}oCZVd=vlatNr}k&AQKfpqPM_~DLV*K?wE zQQT@F7kDz(hBffsMRkJa#cJk`N>nKh=a>3yR`m81n+#T$q&gXLHdOG*o zz4srJ(<dCjZBi@1Cy9vrwhU)4+3x+$pR z`s`b~(~`o2XK@k9j4?cF6xiI*l+pXs)U?VYDIAry&s`E%ZW`} z#8YVzJ%gkfS=C<=k`PTTevfWZM5jFI&!mccU!9^BRqVOhHXnUFHHRpF9?)gh*muCW z#lcXr7!p5{aUizCNA!A&U|#4K?ZO5EI%fm^hcZ4$|L6S67*NyEz?Sj*0odCG+XXfxk7E_^W zGSO+Fk$xHX4_t{A6Ps9IuaV)Qbbw?l&nCTg39cj?>!VP%Bt5>89urk z8C<)i^`mMvp@c$5fz1_hI7w#(C1u8&jTK(J)kKxg;!1^3 z?;FyCOcp75$Lfh$$6vAbNEpi{}*8YFvWQE6E8?P04tfgsMRjs8xmMB>xN=LK15lwVh^v@M zss0&})JTbjJz~|VFOgDuGh}5jNi>KofIJUW;)~A${pPAWba6ap{{{qu1^% z1*e~9KTHsbs2~^{WCW|n2q-L2ra4yjNlZ>)YBkvz8$4LHBR{nFLS8K*;LV9&m-AZb zisz1M5UKXiE(BIicH`>joPL&@C-xt}KQW?sT?%LKhzzmcckgFoxZ;n=R?(Dr7}+Tz zrix;|>?*TeYqF@&VAQ&Nh9c#HDE*ND9b}v|dvy(%BPs_w=8B{zUyc-;ADu3!7YNy{ z3AZk`>-YtQ;~O*r8l=i9W2TiP&cODsqw<-e7Y?oQo9l%F?lOjIomY)^UUg3erc2(g zesCe!!UVu%EiZuK3xf}aK=uZV-GLb^-D*LtdprbZE6T`t5GoCCqcojvT_vb0K0#62 z;{@|c*bdjG%DG5kRbjuxD}pYvbIY7kjaH3)Xx5w&LH47OOdzxco=5E)r6u(cdo?cW zm+gKlgH|igE>gd%8UL}iZM4WT%|-vs1fD3BDy*dQTq+V}TLO?@2R>v3#tzrp=}NGP z>VsyW=ZJSCk!*du!5(S$dG?yT83tr{+^unX*AOeE9vdA;#?MFV*Zm(GV-JtvE64l> z_q4c{mn;-?la7w^p0!l*%rgeozI?n}`S|e}sbfb;5mH@PNmpIWYGi3_*MKr)rQvGX zec99bP+EY#n2k#pg3*_Jb{WVpS>Ot_)y}ql4oa}tgTW5(S^+5}*|uFiOC@tQ0H?(Sfr=?82MKq}|;zzNaull=0R~m9dxmSn>76{OeY9 z19vbN=fw6i!eU-#A0Rxnyk3pB6saExMn<=hNr+#AufJN_!Y91}mEZRv2s#jzIT6=S z;|mXrh=PheQ3A$B)0ND=Z%X$=Ogy64@7i)xeUv?YHoAMJ*1ruOopxOkD+-!scBV=z z)faXys1}l{(^wVVGqsb+6gSokkq~Upn`2%O!j;dpMmBk5VTXSuG^_iAs*} zYi=w2p-sED?oxRd%t38ec?m!4!T4jcIbJQouJ&v(;zFEs-axW0o*IF9wCl1}Yoyri zS^Pb+V4#rL;6}uj#wXRFZv1N#T>DQ8T^;_l4hH*vpPd!_Nr|CGD;B%)XcVdEsx7{D zuq3>25zwn=-zM&a2_P=_@QLJ?>^^WUnXV*}dI#IXL5#OQ?JULP8&D)+W>(t#WtB#m zDeWYQsF?q+NrJ=UE>(d)AGE&)sEzQ?Zx|ewUt9Z>|C_rb$>dc?RDD;r^t2Eqw>bn>uR%S zCgbt+kp$FTeKi_^U_407J{C921OK%S1gJjg2stAh;}lu#2LC!{0TYD1wm;d$FqYx0 z_kN5m#4%JR5bDX^h1S5DpR5!*D^OXW9CZC>&V5_mu&=JBl3zMm5Qcht6#EX}xf@q5 zsTWy!CAX{PlgGD2#VszrleNW-N}`Ng-ar+A({rMt-Ev5D^_ApR-lY@PlnST98jogz z)yzSjG%&P9+S42yKEj*a8p`zy#7&4EMNj&mh@vd9p~S7k!Q>i7l22l#gPxqqodjJL zXI+#z4y=oN=|P+)zMYU1zt|Gt6B=f)Vo+5Wh87|t)sK^8hu6?W(E>Q)95ccW& z#fBMX$YZ%1Uh#H4rSF+!a5d*5u?EY|1f3)5%W_5QaYdafO!-&E!(X)RHAvUva#VHML4Fp zFfwMJYyc;}oSY|d)3`I{!#rcjB?hQ>5Nj7bJ`*2z@^!OxL>^d<8+=_Y^LS!S_4X4Di!TiVpIH-Agi0R_LkqQELtsPl=ZvHa0ykIR zgBj8_EN1--6@*38XU*CD=WuiKDML_a7KU;*J++ zxKgZu#k8UaW=oJFrKOfgHf0;?8@vbP?^oC9pX2Ate5ozyz>6icBr!=(v{=FpRH~NX zAuRbUIN!%ep$#9}LRc}JFGk)y`XKJ+-E3Oev+k zw}dXYWWYu}$QV{x!u%>%x8O!{nK14r)O>3F_6319e{mL%bd8CcBrA76|FPCurI6q^Kj)yC@JJ*YCbeNRu+erH^LXYHQADH4z%Z? ztrf_*b78{CL`H5vm1W{T+FKv2gQsN^&T6aEiK% zjMTjM?u1@Add|_B$t;a}Etj{8FFS68JgUPQ=Y#QyH>~%CED284qqpLLT4(06nk%lp z$!$!Fj0=st#LFG9t;V8ma*4AL_1;2Uh2Bq)O%an(aah2md+O8@_HkF6`u3}MG7CnpfWp6swp-x)tHuvhRsTC%;*imK0wu0KtFedV^|q!=T*DPK@@Z9jC*FpL17(^8oGZNTWU<^RqVO}`(d`54oJUVUA@%cw znGxxw=L_jW+=peacYwt7xfbT44YogGmkbX;c^V@I0IqT{ z;X7>MW8Pn2hvutaDO<01C69{^H~qR}ShurvcPrn9bQpc44cvrp0?haX`)wI4Z>Y=| z00RPwMg6B`5c&T^F6<2K?M*C=zUS`NC;+Tr2Dp}E70gC<$I3Tg4k1@j4qcUaF}m%R zVZ!X)q;gTau194A8>GhNz^}~vhtJ&BH%Kx{tvp>-xb+6Rv)CrY4PfBl)nO28ZW~p# zT9}0~pfGSDKMi}&Exy#!xIPaf9vt*nhH_b+F{D7*G5C;z=h}}Nfr)0u>4L1wUJyV9DS_P&2MNka&-Bfd(CX5IP7ciBSx+)U5 zw3A09CrtjyKIp{BHJ{P)NWw4L`+~<3aH~^OYxEWa(Qq`i#%Oyek81-8u^e_Zs4eog z3-W$BGb}WC?)}TU z51DND6A7Q#9O5`ywtMKmDb+g3+&lr0j*S9P?BBaLDE~*PmJSwr2DSjTehWx#efS)a z!hjZV?Ge(CBHtt?Mp!2zD56v>R`OA9N@k%3l)Pe7Qa?rCa3S$4$L zf}neY*6tB&_iO!Lox_KqWZ`5eD0bUEGR5%NLATuP=G#7H*Rk73EV;ffz27r$`iPQt z9NzQ{n|2d(2@CA7UZ6-tDB~y5)L_olUhD)3%&o(AUug7$`%7emd}vuGehYO(Lghe4 zRy$#NZ2`jwx^GYqN!%f_&zg*O?<9FK7BVTCr zvKPc2YGNDuq=%>k?_8|mR;r$HnKRAohuA0OcWe&H92pR_y$d2BBv24T@KsAo*s3lK zbW0j)!2GbKj4;wdnmSd2t9{++u3Tmt#3LxwsUqgSjaKOwM_=+({4wj2{`3MO-c8TX zE`3%s7Y!wFEFfMGM{C=lT1&-yXyowDs~T(sSuzSTL*zZ715%?Z(^>m~VAEq)N=uS; zzCIkKM;Olud@vAG(qyYH6TztgFEBIu^*bn%?DigwF6b%efsYQ2OL~308ck+|bg81JKZ3k2k87K{5r}Qr*W~ub$F~nNha&D!gxV&o`M_`6;&CsMTB7 z%9Gr+@xR8!hB-Fzztk|iPz+5k=N;$`IWh~yV&H$X}}A62=Geo z1iW190I&H^fR|bh;Kh~16~oJp^O6zk<^3Gp4u>tutoU{n(~k28yX+wzt!=~42Sb6= zr&ix)h?MJy;X2@Bg;Kzkz5f?8#L&vpUQt)i+~C^`8IE6(?Ba*(TY033aC17mB9xzo z|3K+`)FIs@9@BEZ<6VAbu zDT|%aOPxn!#a0Bt9%9@$>=q&Ti;>C%*I>9~w|jklVT8+?1{OGQ9yoPoG?kp2y5%R3 z9j`<3!th}UGkMapJqd_dhGu9qs9{8=D>SUw9pWChSY?=+h0wQgtM1^6K`}Q6QFz59 z@PiaBC@{ga6^3OZK9+dnATM<{s=%?%88%1mu4VG8$>6>6UsVYJNNQ6%~=A>IBm;i;d#}{YZb$d)|7G} zs%d5W+AOEpSMzWzaG>hmXa4YD>aW*wAgPBGl`}0w3@}%(zk*9^b~UZ!>55z(w;bZd zul5qUxnT!f#gvO~z(hYySiB$nfS??}sW^VgTba1Q`%q*a!IYua+3s~Q@Z4J!r=;^+_OU64SKpBxBR^2l6KDas6DhcUVwFHf( zh;4|Ou?2zOx;Xbyy7R2E}f)_XXg!t<2cV@0STvs;- zO4k`{8<*t?o$czC4$Abyh(zCbCk=~f?Ie@<+fLY>sSPs1W7fD#fUY%~95Fl|cw3IE zT9o)!*U%I?W<)>Dgr^Is(_+I@sP!t=#&QhiX%zSf`52sQ^xno5N;0n+jNTm+9=RFq zMh|x=L`l+d!GKFTrsuv(MP1TR&___6eLfQ^7{dK}m7Hs`zHr_#kj)eMC0RH$He=4? z`)$-)wpT*C0P#ov@p~M=mJjsK!Oq^w;;n@_y@|bn#lNCkYU*|i_2{0*W$lG!@nV{^ zX39kvD zw8$4Ft)9!Y8959wp* z7=mV1!UGfVN^#<%Y@cguFyPzp9(e`3762TUI>P&M8_&(?dacZ(ZWoa^?AY=}=+|%_ z>?Li)1DtzD8>>i)$AM1#^fOQCVHXdss?5Q7^PHTySK<}ge=Vu1f@(^E^jxW1r&EQZ-kYVk*mxeA^N*KQ@W}OaeR?=C0bGFjT_4PggY9l83t!V_yBs;ghs_c!4;Y-qbE^XI8 zoWsbZJO7MXBIy0LXSc$({;Lt)%M@E7rByyPX7Nllv@AU)RqV+DiJe{xh~9b%wzp;Q zd-0cHdE1J~<%yk`ZL(x3N*mqD*8&i*duyYCoi`-!5B##lK87wV)RdLFTd|9{sJ^5Z zb?)WJYI1?(f;Vc7%(CBf1=Tg(*myim05xbPt(lXD;TaSQxY(Oy~j@%bQ`6hH}Z_kj{I6U3jN zn)8(n)Azm#UQ$AcwSLvtW#lHn=yNA+Q+PnRB+2*2;Sq(0Hu0$+9a_jaOt#IPMk}dc zy6Ynp>k8`g_MysU`4nDW^pRmkklqaW4vZ76HZ7G{7tVhyUGJ9tJrBbyhGaGpCA?O^ zIZ&98GXxgnTX*=((vvQ40#TZw=iWyTadZ4?vlp5WwgVupC)%&9ChaeVICIWN#C2p5 zAh*1!$62ksC0;LcF7V3BXk&Tg?aKHXhycpWJG_td&V^qiNP5LfUXw|6 zh^jM#?8%B1GG^2`bvf`5E%8Qx;5ETluJ-1HtC^^SF%qNVno?Q{Sxd&o9&8PH(Q6RZ zz%j^`vbryUDnlxhkmGMUU+Cgd*)!bK%c;F@nvbvOB4m9bFbxAG@`O))K`E%D&PT8Y zdzMHnd(X>)r78O8#F11=wDZEeCc9br(g=o3w*h1H-G0AiZc}gXLiy5$(0amFJzW>g z)uO7ScG{OCi6B;z_h*9v>I0AzZhA1fopW?Oe6Sui4aI;1Fo+Me%woX#{&FzQUNBv$ z=@CqyHR`IQkPG}xLWaCx7UJgftTNb#sNTgdAD7q(Ag?Y_463-MDW`TgyW2$HK1Y`y ziOn9g9(wJHy=}hd&>y*R-|jx>KS|t_!E$z)MzflViPqo$Fxcvc=#VN7aR;r@T?zN8 zX_k2sQKulb2|LO>(bInsnJCFy!`Z2x0~3na+RCz>1ixRemCLRHjbyQ&PAro^Y%pW* z*4h=vc`s9~`DSRDKUVu_eRshCGr~jSf?sk#iO?r4wu3r!_ zI#b8?ZRjznyy$7nCh-is+r>y9hsmD&%hjM8ymCkx-=5V!)4h#pt%PkKSKQPvPGyl{ zjykG|WmG&hGAZ@XQ4S;gm{buFaun`joQ@TB64hD8Ku#(_rpTj{17*d=8%mSdP(Gqv zCGd`a4T1|u40DCMPg3Z`RFIxin$M+#aH#ryFv38wp4LQF6Zy)bAr#7G#6lg{W1#>z z^xhWhHuxkIy?8K0S#g8r*y-z=G?^p|guxe&VH-ntR?DK@`J7ju?T#GVtnWB^A8`A+ zd(-gJJS9fBzylU_3&34^-cWsdcl*irVH&tn>U_Lv!3I0^RWWN0A8+WC?IPWgWgH3} zGma19=-A~G(+rSo=kn%>x}MC`#FoO#J*jFQ2Q(yDLbEpWN4pp%m797Ouei<0Nu9BB;4twec^MS0Cdc}+!m zpV$@iQM6fLd?bvj*T^3eF8mTMx)LsO5-v6ZE+nh+8eXcxnQf%>Tn7c2cZBv>q>qoO z8Q|UV#2F(G7vUOoE7$fg6BxAJJ>6=5GXpKdY})exCLlB2Kbe7;zgao5wpP}5-%XvG zICZN9LbSe>YbxSp##tookK{^K_VRg3$&E65Gyxl6!`|S|b1a8Vh)pi4^pXV@k+>Xf z=X~rV^sULBr{M0RBc-zGa@9aIY2%J{0vSikYuK8fR#J1b(qs&>ZLLmo{PX_9r#XVWw0eFmso z&LVdvH~bTtMw?Bf%9FmUD2s7K9MrNWeA`oJ zlelc@!v-yGxZ`ETzH_1L>xb0ofBq`fu50JM6n=S(t4QhfdQdb_{Ai70if^-GsI|oQ z7Cd`H#eC)^iY9|t+-K?6waY1~@)WhRKA~JxpBx)cqet=GBC+s0@9k#1l*j?qK^JmuY7VhrSJF6}7lsZ-AX!GbazKq-Q@HrkcG74aE#C zg2$_p(sNgDUE$Z^uVFj%*iQmpdPPgh(AS80d3`wh-v1}HPyT#>{x|+dX9EAHY4$I_ z>zhl#@=Xih9kB4oVVF(^r1!_X!m~}%G{nTxZpc~e(J)$qjTU~xhy%(Ohw$kyolokk zm{%AK9$8S`bb{tpfrS%51&cKb4hdK1)2H1EiiE2Eh}U$gPv~>>;}eDaMKQr=!I) zI$UY>xE_OK`kOGJKXb2SJsa}3=vCJ4tS+kQ)|Alx#r?I(7{__k{}}4S50L$4~J!T zcI`;^^(VzZ;IbaYl%hYhpYyh2zHR#+G^o_8b^7m;|IK##UFCVv9j09jZ~@0|A*)Sh z6gKh&EVR|qS#^wTvr~3))3OU4%6&QqOFN^Q(-jJlF{1^?qMt7Vd5n&cvQJCNZo^{X zQmj$z`;EmZ`xDErV#n&44m6hl@k-rrS9mZ3y+ogK@H-n?Jf&yE*gxmryXI-IVu z5EHr=`iVSazk>pE{n&P0)AyFdFdTvR4%ldZfuNu`6kJh(i!DH(V3eQq0HM&vj{rTL z{4SN}qc=k5^eech2fo`9)9p(Q6E!vs`K-NkYARc`triGPU&{ETggI$P$NQA2?}!Dm+( zIeyUR$7jzn==AKQs9=@5b`_s%iGi)kYo5|W%{22M<#xlVadk~cnVm~_kYfajVf>0a z!Uend#SfeZg}-p)=aEkMnNiwJgOMI^Fz=FHN_!)h7;zqMvG*}jG|ducDVb1R8ER&` z)CU;>D()pEQjvKT%9Lzf#zq#xa?iK`lRe|ld=IFi#cY)tkmw!KCn($QUZ}9Xrb2q#J(8&l<>% zc72&oz%g1<*;n|JX^tkB0AiXh~QFVEaT9c52IRUdrbRikp^4 zqCh5sL7)@An}>*Lj>*+~UJhzob^g+j`q4!_wq+Djx->vqi$6d{u3$;F>(No|IE(WW zwW@7$OJ`JG8*JVu-7p(!ELc+^8UY#9#!c5V`-%cv{&RcEXfe` z`8Gb<2Ygf!5K7$AioJWTA0_F3J~rB@cjK|`8Olr zyM$>`!+_-jU?8}_R5=M(;$TtCB24l{nVAr&2x~2XNHWD}s7b7}!0@p4;Tr`$8YZ1R zWF>CmrKwCSMjc_18t3B0eV}%BI}``raaBQhVhJL2FGrvUc0gH?YQBZpMw&*=(;6xC zUs*txW)a=5hLURxp0`m%QKw-KCm#)~0Nj*Ud7(rfB~%;IFR9+~f^XBMqbZ#Q%V@Jb z)R&vtlT>=a(PYJ7Si$un;BI+`{RCX}S!LNJMd6v&QK3$FZXnp<2}~{Vf+&PnM(+8$ z!rj(~ibnwbA@pArt}X~TVlc3@*H(0~Hn7wDW;*mFN!!hTn-I6?_}Z`D&W^GS0C8Sy z%-V_>x$aY5ftZ#=MhhiB+?SdMWQB!_HMjd?y*xZWGF3^Kj=eWhrFf&0Hfox@J;xx; zAK!>#$|>E(=Z>|QdtFsL&=m@txT>+0|8>yKt}ls3g|OjsHLyPktOeQi%?#a#wJobw zFlD&FnNO30erKQrm|xA$pfTJv?>Enxc`Y5rxTSe(&wVFZwt6SCH}L~iF%8ljF-)D> zPsEknmf_jb4UFf8Y-n^Bo1SSfYZg(Fn1nFWozx$gMlHtSGKbkUENQ64wioZpG}ghC zzuH>X*wnwpsOY>IAX#B5Hz zwFj5#NpvCP5iY(9L(Q$+W%NssBvp1Zh?b^^OOx?V+%o!M{8#=imc&)u)+`3!!=Oz8 z;m0Uh=#k_@=ad$coTGPVsX@%yYl}z?%%tmREUAbrNoLqXZrDRf#^J#d4V0DrCQfMn zrh-UYA2UDdXXoxHzKS!J+*DK&lj9bm@9+(o0Nr?ygpYV?H)|M+wcPQ2UA*F(bBFH+ zYV39YYD_0P=2ac%e3ZJi;)>6;v2{qQRlnSeNi|;Io}vq0^D)s)V6xkHj{&^o>A~=K zQK*MJ*SJm#wZ}I^X5`%cZ@2K^Of+6PC{QE6$& zKbXTCiURjh?{3a4n2MkM5P#~ah$NN7weJeoPA;3$fe`jU;{m|=I@{$0lCsP2q zEdc&olGI=A81UEskn37oe;dlbQg1%S?0W$IuLI!HeOvDSYKZ`L{zLt*!-+ou)Xl-G z6alDE03d(_t{<8bAgAklk+FZdAV1`7eK*T~<;2;l&aN6jp7>W0s=_qU;&uv|M3ofWvM&TBDWfVvT*pTX1t;Qjr1eNujF_s zi-g($t@Hw(Zx=`Z)$9O0^}TB>4D?NO=}jzjjSM)y7wY>bj2C|a0Di*&cssvhFf#s+ zAdQ570QuKt!T-d`&(dg-{0_qLKQaPL{yPRE!~Y19NBIYke-%Ldzn4aw=64YG|H{bE zJ#s+%I|keTh!M%~I|l3jh{44CI|j>t#rS!gO|kxt!T9IF8p#&|$;Ax>R0nu|?hqG_ z-$9s|=&UV`epQU;(U4pnUlrjKY;wNbI&{N4{CUXt%=`i5k8|(GZx+8* z=KQN2&HWqWuR5K-GVtREG(T_uM*#c(`v&pDhWRV?kGa=Bt0MjG-_*Z;a`P+1k9mtf zGmr%Y{4WN6*!q8^{xL!BXXB?3{NL0+W;*^#{$uvgw=BB9ng`^+$$!eJ`<4F3{FR^S zGhqJ1{0|vNztaDh-tjHV<*%j*2mE8s%ddn#o|yb>cX`4C|0x&bSAZX5@!wpzznVVA zuK<4?v;2zkV?_C9HY72BMfo0B`W4{E!0fm1>tF3N){g*x3Pb;j^<${>XRIFVKV$tB z*!>mj$Kc`5SZz3e#`-H%`YYCt;kci%8gT!N^;humSF9hyP(Q1!3hzg(Zvp%7YWria z{}|)>S#6L6zoLBaqhHzhG5+y08z;X3d}rg2C_e@oer5xm=vOwr#}$5M<43RjXEx4$ s1NhFyA5ngEu6||%f&>`o5B|KYBsjpO0325WethA9fc(h-?gG&N2Mg+k)&Kwi literal 98630 zcmeEu1$QJnvZk4t+RV&$o0*xJnVFfHnVH?@HZwCbGc((5w%2#&&D*-g4V}!Y zlZwpLR|-j=BBYX&1O`C?00V#k001BWAW<{I+64pvn1==cKn8#S(iF6{aWb}X(p7S| zGj`Obb+fj@F8~1|&jSGZ*8l(VKlm4zNYS;Or$-swj(>)W*OlM5!4Hy~=Z0|$5{C&_ zW$iMbe3$)m+2rF{oyd|Q(q<$X_(!3vmFM`~#%j>j-rm;91)6};6xtyBgDWnzGUbmbzE`ZJ zjmSHZO8?yHV?6g$>VQEEQurn=$b$Rfr=> zHoR$({f3fJcpyr%?Onc*d)1zsPgHuZ=WUqB)&|Y`06wzQ2k`pFtKhJfc?4P6ndd*l zz=V(`04tnNgd4qQ$3`gd6Q2B($1@yR2CN$AIuO4d2txuL>H5Heg6Kcrp5gfox#)f0 zn{SI>%*bywR6kPw)f zIl)o2+X2aZy)*b2AQHEc_&`V)LrJAP5$?k=nB&%z2!_A7lRhsb8695H$Nvz(*)ONI zrT;YH)D#N##ME!My@Ql)AyUu^#xy(5(6T{`-@xvu#l5k)H&v<11SBSx|g8%I+ zLn^WYgs=!OE~`ei&BIfJnfgc^f(4%Y)-e$SSp(N`L`gVaCMzCnM$KK;LSCSoLn;|I}Q#xed{az6a7~NB{tA00=-=TL&Y$f3_JTTSI5-?=khS!SrA4 z2k?7D{nq}UEgebYGX3-j!cSuFf(P98uX%in4b%W-&@6JqO*V|;m84C^vaipcFv^Jl zgJ*qC%9B-I#|Kj@iK|VNfy`$8#bM%fQDOju@f1JYrMA#yRhxCDDX)+>5W)A zJJLG%MrUvtK~+hA)AkJ%@hKTfNGtFSN|B>NyvdR}56+};ltz$Hr2t=w&W4>;gQxr4 z!yK7QJ#aOC{NMyFbsMMNhvXV5s^;5?M{@!mSLJKKGp(eVXV;VBFfhY`Z%Gb5$R7XsC0le1a)Sx9RzLIS zi}I-exz7@!v@+OH+>S|u#o&kE!n*gjflWP~*9Z|f9L(HHh>F`s5 zyNX$Aj}-5>Y5x15fSJ+4?2Q5d(4PYUfcUNP4=ew>eP3X&+w8YIcJh7k-zWlE8N|1N zCsG?}o6KEJfQh?AdQ%#OH!Y47P>qUrM1sCTdSCo_=>H?>Atv5LJdQhTk7RlVLtjUJ zce6o9TnxX>8$-04Lu@X#e-Foj$_W(ijTv-%({Vpv9$1WRx$ddUi1taF+%E zFc_UCFd+v<;*zm41z=PY5U4T*pJJWgfP)eSr*G=E68B~Pc0#2VAR5m2fd6)@59wkZc z#N9Mwz;y6A@x?9VRh_4+C5b3O`eZtECD?H%$rTw1kj^YCrf+nkZ+KlGFtiY9hLaD!;1lQbZ zi@>bW^LHyrn>jTCr18RS7!OAF&^zrx)ty7GT(b7>VZg7 z2k=H|0a^LNS8>_p9WCs^=066SOXYzzx!~|8yIUQQ?2w$nmcLM6k@Ljaf|}wrtV%G? ztPYem;|^4!XfeStmS%u4-!e+{XN_k312P&>X?~bUwY8vVt+|UVTaDz?I%P$uJ42W{bdMqK_6Y^Ry@Ey45OsiUUo}iXlXd-k+ppggmf?9`^Z0^JpwDuOu%B zg|*59#4K`xDKaA0;3cG>;E-&`Gm>$ohHaR$mtBlJ9U7k)R7BiLmL1tGHBSu!X}?TM zpWFY5jKo;Nm&gYmAiK|x?za!On-iaCU%)1Qe~Njb&Y+GCy&48_>I9=S8RQoL6(_{@ zYOsavOXij+u0#klO6e2`)+YdV-oZ4|(ZQn=8EZ}??&#=68w0c#O3m+s3o4Li!)3}D zG|^6UJLJ`IG97e2&5D)iu5~`@R5QrMbb($FeSSp1S#n@@q_w|3L8Mx~$fD@mXI)~Z zVfmB$w?T+VexG~uNMz_txSP32NxthA!R_dt6X?B6b z@t_=)=kv?gp*Det%z9ng)g(Fg5D63BJE*vXA81$`pjk*&dC6=Ty!3lF5}t-r=bp8u zb0@mC;{8CeeTo1)-J>AHMe|lz3^$mI(U5snuk5iaw!o_;B)a3H9t|3>vbm-)m2(Jr zo7Fj5-5CsjO0`CtB79nvgaX1=UvUcgD_o1x?Qco@2WJL@sf~yFn;hXu9?b#&yZpgn zM{Qk0j*ZV|#%!jM2uYu5#@dcINF-(HfwnL?29qsFA2xftV$l7s;)I-y1%xr%FA&H zy0bm$b3kuq9e=zRZ3rbADGIK&Pf807&!UK1vkfe593VvKa---9MoT0{Ng?n4#CXbw z37+HfJPg|y+4RV;Xshn@435_xR5(L?&?cWaivq<+D4@z9J}dStw7UI6dB+PX4riH& zQZo5d8M3mU~*h0yW1qzb5$0IJG0oriH9uxPX*( z365p9sfN0WrlrLpednlj>+H@3Y{J6*MpH@|k=}U5{;GlO$i8-k>KXniNEGP_a&AJq{*)c{1sX?=( zF(?HOIbOPr6Pt}o(z~kWiq}c1?PKgiE{Ky8d zqBNs-LERBLhA2bq8sLgT;!n~BPw0-;KyPR;7FM{-SY2nAw4#bb$Wo<^TFR#!s+*af zq^({D_}cRI>@>Gq+NKDDKAq4ujV9p14yndoY^$KaHU!bnrF^i@;h ziZj+ULpP-_Q9iG^wSyxone+&6%QM37Ur_=h_ch_m6(;jre^nmAB8}skx)6rJdj{Ajr*N$Yr);(mBDn|ah)&r4aA%i zmF=bH=O%srJljaEL9C644&RDjADdaq?5*V_S^yi+U0D{b->A5p%rHFVl}}Tyt}#mq znKQ=KF@*&2xW!bqiDNuJYi4wc3F_$}snkahDcXyMR*dMI{KTG-z-m(FLr1NG7e3aR zyA`8L4F%8LKHOqpU-2zV45!%38n0m0#cY>nl^$G&dGBYlZB7)cG9xPwVLhAs`vY)A zxg}Lo<6yO=pd(8eXKusr7rbwJl(taTYb%K=3scvMPBMz2VC!gWWFSfMJYV}*$*an1 z-vU6K2hb8yM5_jlmAkGL#(QJnLtiYO)r;P^vZl*Xu&oZePrmi&<1$TK0yiG@YcLIF z85j#}>52-w+Cy(a1)4Xg22k*;QA03}VWrYk7%t39F|7KWC#ge5D7TZOh|K=rNFc%2 zHipB8v^gD|1(oEqVpwRRv5sC4x~UBUWEmgK7^I*`>zsK7ag7wj~8s znyS%iv8)gKi8Q6|NKY~Wb6kv4fw|ws{jnQfjgmISUe-2gC?SldJ@k2NPUl9U&RW9u?KzzJ)dNlv*z?hkw~CB~vrC`il?CmstL@<`-6;8W za3`Zpa-Olpl?fUml}`1=BXEk`k5-&N{Pc_bQy$DCPi_^%9^-baEBnFbk_%(FmlQQ7 z4dIukbmW3()PEY5+1cKUl&)UHr#*cOvo(K&6V#LSCbJTE2D!PmI_r4d4rz9-#Nb<9 z3E84Rw;%&5XuTJdG?li zG}j^8mjz}@)+vho1SX?FbCkqu($WQ~ekHAT`C7cJOCL7PNN*P2oKE9A^0o+bO_#zG zIV;I!;ZLB8-fi0VDii!lj0hcUcb=B@bkP1W{7 zErkS{VdhNe_yiltm>BrRw@{DEn4X`QYBdX2-(I@!S=oigslz%8f)8qpPvcMPiOd4h zKS`+uvispf4)de3VL`+(6at`poKrPC(s-4!bD(ZvMnco6{wQ63TfF0uZ zgT#@t$R192uO}u0NIdyuHHXqkWXSR~(14@tQ?2Ckpr7g)TG;SP%yl@!&0uw17viPw zEd4V_n8w3_;vvtaBx7tP*uDqA;;}LQn1Q6|3|F-%IPgG8#XmD5jzwW9s=c&~iJC+h zcyKEzOwx4rd&BGQMQ8R%20c6`g~kdxst@U657QQH2l?O0e!Dwz%`i#g^w4x`L+k8W zkS^<_(B65}F(3>zWC%(dRBf0YnMIRxNb(tk6oO5yV2)@IAjzLA;V}phX-qaus4NCW zNNhWW$j>N+xWz<7`EGg5Sx~qBN;{>NS!~xxvUoXbSNI*q0O4XU-KxMF$ zAd%u(403L)h6E{7(e7*!I9v47Bzu0qhAavS+n2{;HPtMn9_AQDp>_^?oF$pW*4;zNZjS2@q%^&8ozN094cMwti13d;kO@EB6-jLq zWTY5@_HfGgWRZ0CP~pbbFd}Nul2F_Wm}5&Mlk{fuv03}?Nq>4A#eR7z%n*B>xQZq8Xo ztrM4#@lJv!QcT%OC9&=oEHtw<%LrQs)$$Kf02QsSu*F=qZo`7pteR_r1z*315@ukBy(bZwW6|$Tz0Zzoy)#C98m8(oQPCjWt^-I zW^4=wo}SWp%UZNx<_=2gdFBhm0CQhJ1E1_YW@ehxl0(n|GpQ2iRx9uV`~VR@_Kl*D z0gzB@Z0L)1r z%4rRQt@o@Z=SE=n?s6cXwU3qLY^VCgmC8Y3v}GogTbo+?-hNV9jB&#(G~hI|D!Q<0 zx;*>Q9$^lM3Ek^8h1jXAR;v+iDS$4SuPzz9u2HYZhRmmT0S3PUvf_!~h8%(mjk{i4 z7_(WsJ6`qvhdl=QOkOPq#rvuDEz-#>6~G-ap2|u*f?D2$QRz4jJtD48`-;!bLZkf9 zeEI^WBih$kB5XDJ4p}Fk>D(B-2e2rPN%Ed5I7Yz_ja!l_U0zV853&=L;@)O_)_=@g zx+y@M#y@*7u-H~Bql}BwtBG!G+Iy9kJC?Pupt{Dz z-9v%Q-Q^8ufMXDIPed#m(s+)H;^&R{qk7s6-&||9tgk#m;uFT6-av8#H6Q_g&m0DT zi%5bd=&$5QU(~c)RapxEP*K-{qw!(J816sT&AuF^<%V<+ebJ`R7GJM^H`N&izO$NS z8jVCY*O|-hcARdKyDRP6vrAWo1DvkR(n6R z&brRrOSG*Km$WiMc%5LiE9WD36z+#K4n#V&_?4~4!`^Qtcjug(elkV<8bADVQaf&3 zHZD8%8Wl$cky%5S9s*&zo@MxeH{yNvX%ub86@xv0ExqI-8hz=z$+E-06Nr_b(_&| zB8?wAvW&iY52Y6ulQB>&qB&SgnHDdfqGf&`FpN!~L1P?%|A9kPz$>fr@K!M0Jq);3 zx|SJIG`&as5EQ4gTtO;%ofB+;0RSB10stWV%U5Y)YwKj} z!1$LdenL%CcApK!N7wvIFljhhqFQ>*LT^D5h=`#cVr4be+g`DBGHxK{vZ=@7>kXIF zeoaA7Kwmx1414|f-j$Z;xFMHk8?CjrFUqutizSj8YYQddF3_?=PiT)t!3{aMBzlAsT!St(;O&7NB%v+| zLKW+w%G3lkV3k}0)Qb>enY@$Q04%{VLr+R(1*Zop1IxcLp%a0q3Yf6Fnq-1vXGyKZ zUbxE^(NVxtx_cCq{LS*JN{F054Xp)L+&X9n*Mv`^Yt+!XJD6|wyJZHy;y6hSwRNkx zL}vW_PRS!fsbmA7DPMQJdxYv}nux;%I#w)9qyRQ}^Cxp6P=TG}4S&fhWA!|vzZrll zJieIScu)<42XjcWmCdh#Q4Jl~XhnD7JtM4s4x0NFK}Jmg>~5HX3iq3K14$wdU+t9~ z#=0V`h6`siT^4aO8czQodW*Z=-Xt&QBU&^F!5d1%fpqr?^h}ffh#>WVw`Szn=R16~etX!FTsg#HRLc2S=@e2-IchNufSQyjU%wzP?QS_+W3>^d zwHDfuOAFQOgJ9<;E7%5EG$3J;wdQW)WlF>;Chd4+#bxo?2ut!)reT-v(T`Ff2B3tF z)>(D2-KgWa(lHWH7AK+7b(SN$NKfeiE2NooQ8=614k^YV}tcbO~wbAGSCY9A7>}L0!K>R+rbrnN*Kn>V}^JQz4JJU@a)1i=Gn&c3vgfw=#3Mh zIsEQcFt66DJen99<;1kgR!x8w5o;sqz+JEggQ3_c;i9T#7;kA&xup~>G;!LBDq59F zh6n#8g%%{f4mLG__o~ya(^D^%zHtsWe2eZ?69d4@_tRvg#>`vuBVEJ+yd8)=X~>`3 zJOUX}ne$MZ3D(?gKF%V22qkO%@$m=)@CmEVq210QyeOZxPKX+VW#epbhX2mmc??0@ zNPI#sbOD>6%i3g0+@aq&(u>cv#Dmay`54~w5>ZnQnK-W2=uP?MSgxTCKCjn|4@-mI zgIS{$=v*@U5IU{EC8o-|z6S!yhD^CRKT(kO0CHh3<`VZK&(U0vhFrf${7J6VU1Xnn zx|rc$MGsg@iXjWgo*Wo=l%Dgr09RS%b^Q|7y8SwaW51gF>e&U|ImDayBFF{hwQ1XN zXzCe{0=BpPfRR{^CqLaqeO<=&+%r-8X-t`0{x%=tw6wrXSwgH@i=H|m7`r5Io8&u? zTB0sDv~ohX-O~19W|vtfz~dicUjgHzil>3GdrD<$9Ym2-uLz^Kn-NPnyi(@GIoV9TZAfsset&cBaNW@KVBk|T zx%#*EsY3vt|8-I|nI#H}r7cQ}^Wujb^BJh}p>#QV+KEx84&H83AyJ1>&{$}(RVlEL zZ^vz|6XXxdG9RNAc3U$1?UBRXnOG5h^2mc>OGzJM4-)^mbsmH{FBTpAR-M@DWSSDU z>I#F)R#zyJXBGUFMk$ZD_D5HMG5TREQ0K80^c;~8{rAVrTjn;d=)G;aZnzp)$QiLF zf{&mzY)Mn-j=~pBiWfIzGMTE|fv>{Xo)tq7F!I-CA-8e$l2zp;k$HXwkx>8Y$H0nMXe8_<3L?y59Db)VQU}d(MSZ{c9xrXKea!&fYO2ii4s%rd4StfoT9n>(VIkMv}*O3J0}@e!26x3rc$_E^FfQ!kTqUxhMebiC6hQ zI_CLW@xqAA^^Uibr1~n^8A`eWGFXfOQBwq7A2zjt!FE_bFB@L|$Hgm!lyEz3-$)7n zZ-^QGI~X4|E&Uf_(4Ed5oW2X|^1Lu6XCi^-0&w&Mb4+WWZ^Y|Zc7;2AhZ8ql!%T0b zIII6etnx3!<1Z~MK#~~QeY2cM^zs4ToVmo%_C99%ih2nk&}r~_1I!6B?m6kRh?nrP40ZPn?h+-?pSAith`joROC3!h7pwDmym zOF;Q61MRI)vt-{^F@%5(jWP79gzv` zJ0A$#shy=%L>6?-#A(-DNalUPoZzMG>7nL&srj;O;&t>xyIeDP0=qo+?urCBbla&A z5{nCZ67Ah|eV9_s_<3B@x`*{wg+3kQ;HNKr{v-aV4Bz&@@R$7G@c-{B?})4Y#*Yy4 z2E0umb#3Ab%??-3;-Kew0t_>1#nP4@MC^L9j@7{4+c)N5^4$GpxRhC+JBU|&0Yr6@ zfd*0wH&m-^x8h63%YP7HWd|n(MVqAmlbUCVm&vd!pQ|-ZxY$mGJ{hUIXu^XqwiPnI zMQ13ED}{rUis%ekBf)#U+URxKZ`Yr~MTCDX9e3ap=@iukU9{93>!F5>R+h5pzOfyM zL7ftc3nTQ&cpIBYJ#Lz$?Mci@`XDpV>-owK^gq>qN$Apx+V`T)dXm4<-M`iRg}SBf zdI#z!kKT7^-gUT5l4a{4*vm4~*gLR6l6M}-+CEvxzvz;<-|r*zqyHlTCn14)y_MVr z%Zd+rVec?2H1t@4vHQa(*K`Q%r;M5XYCY{lj(=ntX_1=tpU*$eTkxJ>KYoeHi9ma; zdiHcYy)EW`J*>MVkxl?y1;jQPd#y?alZyrd#wunJ`NSut$;+hf5th98(WVj)1=1Lg z_OQ?>HcE&XPOwum^ACdE>VW>(b`_LFUjwQKaRRrGNb7mxggKwY-_m1)i1oif_R|Y( za)vqVz!<|5D~s{lNc7_?CnCOPDk5V!&J8ibBLXcYU>_FSH5U`TO2Xr0qp=4}lpJ#) z&Kp+=#IC(QuY>O)K{DcJB*X=nf3QRsint~d1JQyNxFWU{fdFHdwmTwbhU&biQfDZC zeuM2s@h*C)ke%#pyU?wdGVhqOCs>#QhcV5A*0@PZk`6j9E$B7U2(;2!8z7ywXtOqV zhDkl1n^&rE0ACS)m-uooA@RkSW#m*75@5pC7FyA*Pay`U+o17Eu+SK5F+8R6Dzbhxgk$({hn;1Fc5G4Ed2NGn!u^qc;j!L#=rNGw)0~ zA}Xih;|T$YAii9oFIOl>z42o|R+)>pEve_DQPvaaX>BObrxG?{lsh*Mf=te}a(vET zzN2+05Bum--O|@GPnFp)(a7F<#PO4;UV!~_R|c&m$CqK2n7w+KF`J___?i9rrxV(( zewc0g4t8ki$hy@Qt%XPo50EL&g3IZ$WL>zy$Psac{EszY&*jgXJo< z2=rbX((oAZZr}G5at7K|c$Nh_=@1lwF2sz~H>i53UB_&rv8;zP?p(BH{N%EHNKE(B zOR%+I(KQ8jDI^$`d;E!JxXyD3sI*9IN1*`XC#LW4TI|mUzU4hd20$G0Zc&9FzE#t|jR4g` zyRr}Q+Ps~dfgxxxSc%=wh{00H>>DSE8I)2Si<zbO7c7X};R}eZk_SaOW6NJK z9k=U5myf^^(gDgxK_dsJ?<{CgYqDZT74m$46u1EzehdRq1f3thrpoL9OM3Wd{1)Vy z)1{5-lu%$0Or+E2ld!1)%28etR*;7bNnL@}2I5BjcAX|oSyq!nxwcPAIt8FbU6MV%Yw@u$ zbuVaKvceMEGP7GQP2nFCkRifZOHdWgMa)A4vRILqy5<2D!2U+9x^-GU{J#TXiWcv@ z=;2)^NU$Mz^w>m4!N{=>6nD&k=Pc(kgy2kr-)Vj&Nl%}}m%{9^cR_>QzR5GezE*R> zzU?zKkS4CqI8$#wnnd%vMIeogK;s4qk{+)gU}!FkRc74iPBsJ8Z>EZikBQ*k(oDfQ zx`(SUI-x*fBXq?J6{(g;5nuY3>l$7N;vU~}i)rtzr7e!|oMcbww0V@BttV-#hi|Lx zY_DQk_6M=o`qeTGF? zyX)^zM7q+h?9RX~+AD*$(q-2Cuu?q4TX(eFJ1%du#!Io(%zfLc(D|aA!ijKXF{G<+Nfs!bNbBLIP^J# zxhSE|TP=a(-zA!jG-r7B6rZ3UvkDeKB;oMAUQl0x$FPwUa>p7ecwH*^*eh1u^uJ?F&eaib(XP>Bwpo%iUZe7_c*)Y5YU=(Kekqw zlxp=zg@?J&9$3I}$vl858>)gZ_9OUfcNu~1LCW=LN;jphf6Dg`dDJ`>^RZ%7F=SCz zXBZO_Up!{BKUANyj%zsbfc;C3i z|IR`&-HAD9zMXD&nE%E?{=vU4)X#0dLswtlEF>`Rx_YaLdV%&mYz}A>lUV&JJ;h9t zoWz3Inhfht_jOFdcgBRhf)%I*K9c*vha25ic6Rgi6_kn9uQ+x((USWi7FZ2ZuF3Jm zk@riMtKbp>R0_pDH*wJ;?&PEP+iBj;O%ZiUm>pWPvAbMY z#J@vSRzMx50f1n&OQ8?BvC3`pm2mLCsPW^<15vUcZnQn#(wQyUp~t}{5rDLp$TOZ{>m_(N_6IzEM{&7G1i0D8KbUoVeMf10gG0T zW^|u~lo`=TK|g0526ogbE%>&C2+wMG?|cny1=l{SnEnH7g%%J?1$Pj5pYva%UT-Q2qyzdOXO4G9+c$ zikzbrS5tE@^-J=Om-%j5yaOnZ9O0tSk&)3{ohv(cO1`)!eI=m+DSmAHk-}y`ycBoF zl?Yz`u9MfaP08|G*+gW-EEVnJR$GwOiDyO)ya zOgp1BnUW9EIRij0JA?S~e^dltAp9xUW3Hl13TSspa*geXPK8uC@CV#P<>)NpS&+W;0*7xK* zdU@K-X2N{%+v@4Uc&)={r~iDzY9%nNA_+m&zo)eI_Oftvy;1J9F_2WvdsQ&=Uu#C2 zEl=iCFBYrr1%Ze}3!?ImCa#}s7NhZOdF^xff9njJmoApF=T`hb% zVZTF1Btiul)iUI!bQ$hyau?eXj7{#ycg}JQ7cDNLlD_USg;KuzxNK~QqZO?xWN&G0+UFlt!7BP<|WT`pn} zn{p@tW4#Rf6VqR{!^pC^@LbS;l(0w#Ve)(+fGESH(pM&WuA5W0KtP5J;`gMWIDkbh zdhXxPQ_XYa;-SpTAh89~h*gcinwH8z1O%Is4Cjxd%*+qg{)8XMRWC=$rAcP@kqhb1 zDrz8EL}l9g58`6U?TzH)&@8gKPT{fz8AUc0hi3R+g$&$4%4FpI0v-`Y&nLC8W3>S3 zEC(}Nfjm%R7PDuaOWqOL6q8S6x)Q-;5>K=#65+Tt36K;H#?q3UtabK%1aqk5btymY zfztdl#b^>6gAqdsW3pEmNOw@$lr>-N23PR|t+CQDcTfuerV}1fm181aSEz_3w)hgB#V!w$Sc z>T8_H92fb%ZE$RnR3>3jL@avyXXyxu~c zAnMYJ1Z>tQnLIq|HN`Qz)ceX9#y*3FNIxi0@S-<%Wpm7UuB)?Z*~2nS(C!V1&cN+z zLy=|2xRv8UDXXwq3pz~%WTWkr#f}#gbf%^9Y)W6vAYajMsf!4Ww^#O@8wobU2DgZA z>8`J9yK1O*M2$_>`~SR2LRIBtKIz*NLumOo4)jk)>pwYAwx(kt8`|)8vqd-X;QW~jxqJR6>tHu6lIwMsayG!kn(C=$x#@ z@0)f!+z72zgYPw~Tfc@Ht0`NgMhU4@ScK9Hax}r5vKh^T>_G5{FQ?wSR`efdT=dfCfMXGgjN8Rgu(IF`9ePcpO{8H69vpUmkT3?#>{D*UD;Qy6hABj0DY95AT9X-} zPL~8k1vV*bnSxuM{mEJ4NN&_KJAqm0PPdflL}u`JU?NnioxQl3zXe+{RTbaEc}W}4 zF4W>G*LeLaB9n7-BER~}BPtqyb*F$njZWo`IjH*1hK3X6fym~J!`xB#+VOFTY{vU# z{y6{eLiZ?AqLboI9UAj8`Bd+ZBBS%lwb+}zMhiRp&2X#Sih-t)cBl3+bat(-;L;ZR zLw>ucm#VMGj@oy3VL`lELM?+_!zjp7W0w?^8EAOW?lET3DP|F%B4m1SAe#tLpziq_ zO;{T4D7osyXl%@EnR!YrGETN7^wHWb22miGZmGW03%%Gu`RMY+^|nhKlFYNbluqf( z4?qFVE+jX9mGzI% zw))131JFGc2qLxwV{d`h>o>@igsJ(u(P}U824wV{8=lpH|qD+MTstH@2#Y-&9! zHbPy02Ai&uVXI>HZ`3g3qKIWer5@xU)mhcB*gsa~^C}P9qWF&w@^#vSW9L@Gxpvgj z7-GFYjRL=OEAI8;wTs7$p(gnuRtTmL=*(BNpPCa~HURZPWspuwR8ljl_=d>*ikNZ2 zd;JZ6J5>?!$;)rtMw;|wH(u+_9X9y~NXMvPKT`+YGaU7A4CjepLw+)hC=q&(@DpG({HoQGg7 z5QB8VL+T}t@FIsKG8Bc|Tz2<0z;_oq_($NR(X z#s#7>^hL4N8G^JgwQ>tBFbjkXCC_^N2a`qzXxP5<3E3W0YtPeIKkl>ijX!`g{Pu+v7~*>gU)S7{4(h*I-G6z*p4@#yoU6Ng_p&ms*mJl zuz2k>NX09B5~%53OvRtw9n*)yEbby2`Jc(EaiTN#?@eY{m{2M=1n+z!TbdGE@>%z( zqLKG9{BekPU&7DVJ_ukK5?X!;Y31ONqU|QVePJ@!74@SsVA>nGP2-@Hhvr{U)Hjw)lo5VKqrO)pz2|X|X?8&vEmy zm(YTLEquedqI3h^^GIk(71FXt7DH0~POilE+}r`Qb41lx&oTPXqu<4W4?CCK(?PNy zl*a$B(mdHe65kf|oFXpQW|v`r&(|X_V{x(HA0*aC5>~fB694mUSM5+f1})VLmo@f@ z>74h1TanX}TE6r_AGGnrSHcLY8z2b-$=?Y_SZni%%Qa)-b>NYk6(ak-#{Q%C$=>_L zd*knqi)b;)6V+k7e{)4m=!uAWe&2?>uL86m?6>`fNMM8i&zF8y2b^NXVBFCp4G%nO zan@Pwb0WCf;Vq{=+0%u$RGTUO6N3DJv-PxViOLrbtFxFwhkdRA^rAPz#;2B5wCK(gl)u|0{s?(gG?roOns#^!NW`u85^f_r3EbOcqd z_mqK7lz$fIOLxHf%wQ#Afr%1=%M=~bEP&%>TUWoYKED5 z`VVH;_2t3O;wPiQR4wUb%{WQ_<0YyS$?_hZHc!l@3|2n! zDjm1_XM*W$4zTfhQ?_Yv_d_Y=v^~)BxkuAJ)AaL~UU?l%j^UJM|JB@ePoAz=_?zPo z->-EFm}uI_tae)cD~k-tDeY7aS8nb;I)^JHCzI9gThXj1bs3PW5ym1Y^}@7?sram}!Fj9!~Bi3iNL(5lT}|1p-dkqr#z^-Zwj_WkZY<(9K!8DWH^5j=n9}Ui|g{MKY$%EfR_7#R)Ra1oN$o&SP=p$hkfEh z>C<0P!-BZD@PyERCe*4AV1z#qK&2Ft9a_`#w`*iODWEEe7)jC-tU_WY3Wi^n>EPY# zRK~;)(_sAwtP?Cb1T~MH0&0sjNy9FoWuogWE?<=(E0-)~Fs72lZ}Fr0_GGYx(;I*9 zB#dy^{u-DSuxJAv*G}*~8El_JKd)kXVD_N| zTfDCGAUdW%7^JRArGCp%jE9&D%l~Zn$w=|xY3fVI&Hj>_I@aG1{&i5N;6#?@Bz&;) z8^$5OXw$))XSaX~mb4kw$d@XtbEN#q0jH6R_RB)HLXpx^59`JFQ`kkpClfuG#$|wL z3fG$Wz0;&vh!1rM+Erpw*r6~5wg?CY(=V+q1@@b4OM;dBMYgy8MYd~@u^KN7@xIA6 zbvrymwbM#rOPH7~k7^Td)Y@sr5U;3bb*9`^H~5ua@}aLg@#XPAhgEpU7O~k~NBme^ zGYkqp1Gro)e=V?2ko9BgUJ4G-HpI;P-W$mXvg^W*c{*tbn=wL~7wTido-k~6;lMO^ zAVZE%ESY|bKrrejPFAzbSgvbu>|bmKpzbjod=+RXEA zCD=5coqnMF55wYj3lt^s;lpaPW;#3~s2UI^EgH04LfnsQzi+mUx-l4-{r73%w_*N6 z2mo+0H}HqPZS}7M?O(QPZER$&PiJneZ)(g;Yhh<>`nB@41ArhQA}#^|_^oL4odCWr z01$Lk4=?Vaj-^kX$7{I9K`wHOKIzSKr5a3_(eFg#s`aXbxz6JQd z1QZzLTYy19LBYVlKtaL5At1oPq5cw>{}#Y+eGp&}@b7FW2ylqM<@~qG|NF~V4*((r z03h&BU_e9wAVff5M8K~B0Am0EAmHzUeV6mU1Q-MW5EKXu@*m~>+x74N?g0b_LHIra zgZ^C~kO3Ho5rp5~KfbpX6!EXS{`I7Pd;$V7e60b%00Vx%6BrSI7vOFGRYkeZn?pYe zZ{BBG1gPWb^t{fSTMZ5G)Uqun3mBMFJMr{nJlpWN?aFl=eYIw|)GHE?<#FRWzOwRv zvG*3xQ7lW`_{NCg3Bid#NMM1LtcC=bb$3VCU9!H5T^xc#aEAa1?h@SHgL82U0fIZ^ zKf6Kiz3)Ex-v4~(eCG{pwx_%5*VR?kJv}qswY%!Bfo5S|-`Ka4JZ0LgD|K}Da-Vtz zA3OH)+=gbSj=tTqXT`OtH!BqfPe2Y6&U`>9VJ%o*x-fYa?!kPsi!h?+lC8s*%}l?L4LR=|2`yZSNgSp& zLr2va6l}O<_M_z+CU_8Q+_z-xRVFoIt3(Lwo}ejOMHDSrS4!9Jo?duRB5iX(av*79 zrf5I<$f9K9vV}tyH_IL_7@gQ-=KV#2h6Ea;oormm83K(SpWdd;&5h2>}cl9mQM1$My$c4ddu1?BO@93nqTVZ~s1BU1Xhe7hX`W;HOS?f+y zY4t{1en!={T^VUcO@4+H&4#lbM6JO{3p%yJAV;JQn$>tsM%OM0dH!6#)nV1Tm1*F! z8=EWFpPvy1&jr(=Y*fPBLtXK-6K(0k;)8}XSJ8HB#rN`pV=pxms@?bRtzcSY3{)!it z=a;H$sD9GRH;{0pKjr^3eSu!_U15LeaDSy_kcmpSf(`mRPt}801pTkN2KjP{POZ{y zcZ%$GOP3l)qgyNTpY8I97d{1d=m2*LiD_76BBgU70} zDUBA_Hw)G{)<5;CkncE@PM0d#CDtx<1qcR?V3Fn!JXJFc&tioqjOfAD?H{5!sIFYE%tn_wsa;0w(PhCmMx z06iHH0t7k$kYHFo;1W{}UJVr=R8sLiI*ILJ0|1I|wr~I_90(r-0HhBcWT0(pKhPQA zhnT^G4-jBbI$KJ%koX8ZUu?!xgnzn4290kd$fXjy zo`3^I(gTbdKtK+#`2Zl7a)N3yLL{(&C*UCzOGtDYM<{^T)ECbD_J^mEh9n9d@Bo4? zCW3I_@f9$X{ErTSJckg_gjgkE{$LnTL6rpMJ}^Tbl8oTeG%xhn)pq-$&vOZXff zl7vXrSS=O}n5=0sK3ua|MU%Ldp(L!PW|dT8P=iDSAjAZiHB^a72_^`n&?&%HTLeOW zsGJlk*RvG}fiMjCbEfwy?GJA8I8Mb_w?C)s9fPcyGgY{oZed`=QOXvyr zU6S0-70Hn-5#7TU637av!l04*;dDyaa3&Sf@72iYdUX!LAV-SzEFmE%HfxCAYW@Ee z@LMG{-+%B!7KLF^SS1046m3!n2~wq0lB1NOZDHTF3LF}$#j7$B9AOE;#NYcM(Jus> zZc$q$pmD@{NvPi^(@dSt%1ZR7jLwDMjhSfd9n%f0aCZMnHxn{8}J#@K6AS zg7bjAlNSaAhh!2K90dpjHVXhaYFpStDB+Q~hKax?O5_0Oi2y)R>(EGqMK1f%Ey0og z`|-0;zGgCc;e?IjPy}kS_y~rWPURrfHu*Qkul-UC5cL2LAn*YyAJ76sc1=%Vf{qT5 z=m5tDU_+z2fKOloWE?mM6BGai1;~8_J3xg4YCRzbp!onjpGXDhF2D>BB>=+?*nC7Y zz%&C+Juy%tAxjN-0TKaV%YlH8#0NNH0O=#?0j?Op_`t!ACkLQD@Iu8`6G(ir2oRVF zG#}Xl2weoWo{R!SD1v}bVFMC6Aq*(xQ}lpTO;G762tei|=zUZcpr8}1da40Xnh7pG z6%DA#gaDr=05oO-icfO@IywQWr;`A^k4ORN8o($gvV3$@jf7@0QRric0Sla{@G<;= z%}z7`OfKNi6YYAY3vkMbK0b>DxWz;iz;Xg!F*s&}2K38GbUxb+1ob4okHZ5Hc2XEn zq2~mE92Ci@=Sl$#o#fPWF#t|Yg8O)Su&pF0pHBrnfJ_JYZUV_g76JkZfyySU`2r|` z?ju|ELOX#aC;I`BC=5v8l0g%QpaedgLIcE3g2+x0@+ESDR87(Nq*Q`JPI2g^2!dKn zLGWc3f=*5)=;cy^QBCFeK;2l(RHa^lCD?t`FrbaE^b%a49r-E~!7HW_d};+D;G*&P z8Xf^jrfC2zm4G(WoPZWaz|(1Hz79nMTy&aGA0U$DbgACpA=2q|i{4le1|+gjbhzGR zBl27fGGMk4MRtbBXE76HW`@aUH4{~KM$l)o5OpplnQyldO>m|Ja1;>jWTq7;@DN>M zW)9#C5`8XK7?7@ap@|4GOUd^DM6{me0=#r0l+1$ieL@n^&gT34Y7$M%Ht7R45*uJ6 z`N1HG59cuS2!JH9bHH`kT$0kv@%eJJVL*~j&n5d%9+KJ2RRCxh$>HL<^;jXvgW?hS zI133*=E?MU3<)jgxqL7l3F_k$1%Q=IX7l9&0+h^f@jU{PjLZ`Y!hmEy_)m-zs05(t zly*TtK(mweY9YhGppdP6p@G0OkzH&d%FiZ|18foB4_-)7Y>|V&qmZFuF~PvMQOIVo z(jcs9GKC2j2Mr=0ML?Hu2ofnp298jEDW0MQq@b@^DQ2@&MNsl6PP!CfP+=&3xQs8* zSSTp7%xTaGDKNF1>NfyXs#qSD&}cAvsT{E!YB1}mVzEN$w+g5#wIWAgCsU1frC8v| zp*m1Xzrg9D`uQrZ-)*9z>?)VRtE2&RHPhf1(r7NV-5+F!0ckw3hGsy}Xfi-!737d; zTA!9;Km#aA)wVOml5Lhy~yC9Hb zU>W2d5fMXVIn^Gl5ocy0>|V1FMq|NHK8}dsVl(+ZWRNUmi|u~BiHc$C=mDmQQ8RO3 zJ6r(-iOpfdo#BqN*4)}zA`5=0gvSB67-Nj5asB*$n-1p%%Hhh>S}PAfYM25J+A=1jr0Sa?#YP@&aWc~YfN;W5~FQmsel0w*IbNcUNWtl4L4!_A!P{jhg3ii-h5>yxoJofgz|e96 zP0utEh<1uouSOEtbf!@66_O+}T=aC2$spEJ3Q%&c!N#N_P-?6J4W$$428WT2 zVX#qFMHtYi!!Q+eC({@tvMhEl&P3(119rIIq%d+|D74k&!tgkDsMZW9`6>rVY8F8S z1q`~tY%36=&>W5#s}$22LZ*c$l!O6gXc+_aJgE(>W?FKjG8DtWwz7;02E)p?>H8K%jFmFodMZ+@Qu*9S zV-AXCPy4A(8xiTgymP8r~;RY2TUfW8|Oj>uqrl3 z9Y6#{GLBn~LI#~G9tQ_S!AUm0$4$n;RahYp&mzF#B9Y%MU?A9DiO4MzAS^N|lA}?F zn~Z>x&>S6(01L=rLL1)WMYCY;AWWr$!C+8S=nm7YLNY7>Ra7(Y*1=Q&onJG@Cg}O# zd{;~+=*1L*-b^L%kW&p}0YzZ1Df>qAPriQz{D~Nb10VD7^#Cb! zTi_!L0Dvw4_-p~7gOP!n+i)5XY8e0LJAXbU3<&t>RPg47Mg+`Y^FV^oWc-iBe1HhH z7F3CvPUPEJAQcg;0Gzb*iC`Y65fB3$#%cidYytQjfI=70{d@_TN=A~6YB^cVc2Erj zztqn+@(5x#&A|36j5wkop!bq3{GdQ&E?@@aIXogq%(s~_+#tuGsTmIyG!Y5zq0!RBDg{pdO#pW_%$*MUaCMEz|QV=fsfU^@*Dv| zW7D9tHP;jeR!2iXbvazJL9V13=~ku@6#yL_N;IQ|5{pACw<-!$HU?5_Lo-bdrqt@d z7##%#9+y*z@!CWB1)EPN5%^+qxXGZKkcpsIs6q-hkVyn$Xo^9mhy@%2U9a%#736?j zMe|YEGyzJ;AyOm^quNUjGDrfF-k=nU15%?L97qT`yqf1W94&*a_iMyvpFZ4VhDkx8 z8Z~AOMVx~x;0ApGy#o&A1q}?L+07P-(L8}g1Kz7TR5A)eD?3y)b2sl>r~B|Ku8863af&t9Gp!p-Z4{!@%R)MBQzOU#yJPFQ2;}9@QxXA@FT!7`p z0Tvm@0rL@LL^Kqy*5QC~8#pxFcLeL7j!UDmNZoM#oA;Bua(S)T_*BC|1=Hc{wm@OcKN)@`G z+zl2oy-pd-;td1T6bfK0vKNey1{x0L)$bbFy-5Xmqv(G=zdm^ctv>PJ)D2ACfvf&nxW2}TDmBRF%7 zgaJ1Ts-mcQbi5lDKnA}OxWWVhXH6MH;^9Gg0UeHQfzjbLMUJmU?r@O`2R5|EZRj{1 z8gAAFY%Hjf;=|ebB$x?ng^?J#fQSYKr^qtqik0hey+TSs1p9Bo%|=@^hRRFI-$>6u1;&VX;gYhgXIP;%PJ%L1*@H zv`U!>Cg#ErK@68GCBhg^FblB41U4N8hNqEO1iw}UAkcQI3Qxu&U_u^T&91r7b6HTM zk4Hk=nKC>{1A{w2a)!wWv%7R6n2@jbVn|pRcS!;q?9d4LG1p`=68q92}u`*1n`%xx?c~Rg%0hWEw zc7et+h`!~UptzcfIdZTM6Kyb^AM9BS8Yz@tV`U5vqlCjyBCuwd35KSlbU8LW2`diO z?+$^1A1oAXK7)>ed3hKj*g&frhDNYpUNl(twQ>sBI!?IBb{I++0yBreLL4-tJyhs~ z*~B_1m>p^&4;zFU@C6|(1T0vLvOr-e=1{$%Zl|I5RC1F5-hV#N0G#VZang{6wHK6iBH8s_I zZRQU=AAm8za{kDmbSq#eG1Tn~1FAtikaau+*zLRm6ar1O=v4FoPUuCE{U{d91WpNS zUcH9jP1d{%{Nvlgf9Jh<=xy6YHN~Nm{4TtJP4Pc58SY#y@{wpBMIvT;pHJ zlk?A-`6t#N@`Q|BQ>^)6obL+!7muc~qWLocm?`9t{+i0^*z z!ze#3x%leCG@}b#h7$OxAf&p`S_`4J;Md%51>g#we`_s<%MEteT%|hH)4I5npnv4S ze#!eGGFU~;0U9sF^jB_y_~&l%2iAX#?=xs^e^^n2z~!P5-&WMrND-#`#~?1d&h1k= zwSXQRXa4aLpBk)RiT^RE+5j$~(rUWEzUk^)#vfV!`r-g;@!M*w|C_e@7dqPiiLH?E zT<`|(>*}Zf+3NqSU;Wdo%AdOAA6+rzbU#_)Z&s@PMD>qBe(fs%aOqqP*003>81!2= z`Vae6O>g^kX#6(L{$VKnug$rPKb8yr^|a?Fg7A{rpO?ht{ZyDMbSs^1kAvs5>x|&4 z&hV1VzbXH!#s6AEz^T<=HvlXE1<(0)?If6)3rec-sI|_oqbd(vUTZO`oJwaP4c`e5 zE_wWg=x^n%X$81I7hD?*`@T5%Pgl6F*Ps9H*I&5ff471V+W#u~w{-eHb^T9W|CR>+ zE#m)q*Z*ql<r1z>RCQ zX)L479tlSJx7yrJ0hN#@lPl6@#L(m#$j z7r<>#;Bl@ajhB}8BmZAYHBdX8Zg9sG52Vh~fct~M^iVKu@wpwL{AXY~S!E8TBSYH_ zlbxV|V7f^tt*=RU2-DQ0yM@vks}0<#7#Wh;p|NU0>HT1Oq}QVb(@`uiJ=|;5`oMHK zm~Lb7SdC!%9hgqGYLzYsB)WDe->p>}z%(38*LI2oL@=EPfyC9;|CCn!ly+#(|qH(z4a<(!kA8xHNFtm__S$cjSS4zLZW4xFgHzP}&0Erpj=eLtK!CA>F2d zO2#1Y7)(cGCs6(0kH0PaPWAVRkZo%yUh=~>i%2>CBku?Ak39QA2n6>U)Xjt+d8!%U z4>k{jK$=|nk=JHE1X6D(1hVPWPwhzw`O8n6#f(~Yr;tLwAODo#JLNx4{8V43P<`KZ zmqx1Dqm>p?s@iS=x7DP%z%6&$w2pst;{TZOC$WB#qXYPiR|`JB0;`gMUS_oEL34k7 zCYxro{UZzihipH|5K7kgHJC^${sKwv-3e0vR5B#$$#F<@QX(X(2lx}jkcjVgW5r7# zp`IsAeNf}~U>YnB|NZ4p- zA=!|Q5F`W(=?v)xAww7tE<^;8LwZ5f5Cg;taYB5Mevm8G(!F z5l&5GC8tkWZOtsBrXz&WJZc2dq(Ob3nGJ&LnFsUPLEs|xgv5??|CMpj0? zj)FubMx{ihM|F(CMG>R8QHm&Clrw5TRAJQAsD)9hqROHUMV*Vf8TB~oeRQqpr0BHh zj?tZ?Y0=_nb#y`Wfao#NGowqQH%0G{J{Nr}`dRdsm^v{nVxTd(G4vQ&j6TK}GdyN$ z%#xUmF$ZGK$J~o~1MZAYsg+d=TZ>jpUdvRgZ>=%4=G0nUYj>?PweHk<9UB|lG!`10 zAIptZ#=2vN$Iggd5xXn)Z0x<*cX5evsd30SN}M9j7B@Ijf&uOFWo zpBvAO*Te_n$Hy1Pm&KoozZd^8p+Q1cLVkiM!IUs4VS2)E96I(6FC=~hQk$6aS!ozgn{ z>Rhk$u5MD@PIc*ZHFXEpomF>J-LrL{){C!~Sr4e!t6s3))OzddovQb^etiA5^@;VB z^#|0SRex*!i}hbONNRv+z-?e{Fs8w>21gn^Y#7_HZ9{THO~auL7d711@J>=xQtKpQ zk~(QfQgPCOqP`uo0?}q>;bTtVTN;-Asu}X`4b%v80So zS(kDl zWMzmm24}3!_`P*PYg}tx>!Q|sTR&@)+J@bxUz_D^u4Kk%;xY}H(=rcbzHOV;R@!z% z+s$nsW;My8X9csCXI;y#lifADAbVkUdAnNeaP7?P=CnKAKC(T!y`lZA_NSncPz=-v zodZ47A*KVqgRR5D4i`Jt?g(`Bc3j@^R;QFstWJYFZSM3G)&{14O@tkSeSxFl7I-oI zDxx8Rff$S^L%cw?N2-ytkmWgbaws_ibGGC>M?q0q)LhghbP}449)aGA{*1w5oS0RZ z3Tzu}AM9-GMO-qDhZ}=CjE}(+@B{JN@$Yjnx$fL`xmBGzb~blj*7;#xR-QJmIPXq= zM!qtCLH^AyXy!+Np0b?sjEbiArS7K1(3rG|w2SnXbTz${{)~ZT^k?j6 z)@BNsGnuzp?O9G%89S2AU{7XW<79GdoXuPam(HEc{hgP^E8uP8*W&Z|v-tM~2thx= zAz_lRw{V&8jffx`FS;tu7JI~dCG{jdB&CwKQj&C%^rj3Z>n}SdZzea&w+a<4Q@Y>lf$lN9$Az9*J^ek8^lH}2(rZWWdcBps*Y}C(Bki-S&nG2Uxls99MOV#M zJyR3a)6|ukZki%Zg*IP1N&7&TubZTMsL$6=)>jz18m1Z^8;Qo5#^)xQX`bn=nQLBZ zuC_=mtF3X?KGvV|+{xf%>bNJ{ zGt6_#+r>M}`_3ovt@k(Z+x*7^?E|9%4}z57;=a*+)qVH&OYb+R->v>Y{{;gg2B-$? z9oTx{(1G`UqyAPhC}EI!(22qD!IK8R8X_H1Hnio?--g~9Mjf_%c-`U7;TK1A9x-oZ z^ho2#lcRD*%^3BiP*ZqxG<@{b(Vxbs#~dAt7(0Dz^*G(QljAYt=T4|K!8YN-#I6%d zCN-E8oOEY0d-A5Dw4%bIS5taVIWiSBb>6guX`X2}r?aMSnbBs(gc+Y^8fKoKMVPgE zc8l4gX1|@InR9k-x4En4wVXG4-iP_d`Ii<@7i?PCcHz`TwHA37-7l6DA6krCT)L#$ zlF>^(FSRYbSt2OeUy3a)UDjgR_~ntyJ$Z^cu(-&zeVT z`>egNj=65{dffU|8!|V{-k7wpa8tylz@}%L4V!Onk#9M(m9ceiS?98i+d6Gqx;=gS ztR0PZjNh5CbLh_MUBO+icRO}J-lN}hXK(MlSNF;GmG9^8KY4(8;P64p!F`8-L%R;= zAKrc>_sG_xxTBkoVUBG&jy}He1p36rlbDm6PGL`NIgLMEb|&x4&a++5?m0&~cd(pZ ze(XHw{Fw{l3zshTxOnrD=F-E03-sO&_Zf~AwWWtmYO3ru2xKRd{jbY1SAp6uJucJ5U?mJHZm?E9+Hq) z9}H>|6%ED%3CRLR4Do<*O`;pbG^~{#o0I{GLnH&p){Wx%gcN0)oW_EJK}}Q>Gl>h< zK5L6|CN$l12Ay?Fh#CBR(n6BRMW$e>>TIz@+HBq4v$tPphPWpW)h=4U@7$esINeK6 zdwed9&H$%rdV|sA_4xzAVZ%p^9938}W$Lu)GiDYqUb3{LblHZDn>KIRTDJed!9$0S z94$Y8;o_ysSMJ`s|KMT8qgSurynXln0~q-vA}TTzYXuCr0>)agf+9DFPHz~4s0GPL z0{F2=WpY6rVNmOdjRXr+DLL_L+w3_*bUtf*YcMKvlCX)I^nBsEw&`Dt(L&^u< zJXQ@M^hIz-6puZN+5B+e&E?e);>Yf(v>U}e?WaL<>6a02l&Q4d#X92at{f)iZa-6$p^@n-ypaV}Yf1>H1VVg9icS$v5 z)vi~tjplvDRc9H?AJx?QQMRMay6UOrj z=&PwKKJ5BX4SCgjW5M&5S+>a=d(Zn2sD?CnqIk70@M?M~So)%`IJNF1`dRP#*Vqq- zz6@)1K5H6%)_7KK=&1&Iv2ye1O5t0qbCGM1^(8# zz@^H};M!$U2wVxVXOR5$y!!2p%WoD0wOd}D%X-xHao6iRws&bYV?aKd`#SY; z*W3NK??7G)>gRn)8@S_R!0$d+P_e9c`M?_kxSL0?=e9(P1`NE|wMu<;^tssa>`4R7 zUkGpB-8$cV$&sDAo>W7wkJ#LJgeWi9KI>(uRlzqeo>eS5XSvb)P3zBS~>6S+9!MNowJt5ckTM3 z@#g&8Gq=h??G%1=I4XAaTCnTQt_#(Wk#9XO9_=7^?d{DAF1S;U{V;H6H6+#M;dVV% zvKrKXH6-b2<@tVPg`nMyUW`kPm@`h2nM_JEyl&(~|Uw(l-U<%k`xZuDsW zYTldFssRsiuXlo(ipuLC(VeRPyyun8`*XL|Z7Fk9uI^jezo2XHzK=$X@7Z^GL1oXr zzX#v;di!+8#af^Gu6cCqVrt(?{fHj@tCo4H22}pu_eNPw>5h-9|HX{vC#F?HG)XUn z)sU2zx9WX)Kkt6x1T$HDqz8ifV|lb63K#uJ8GqQ$KXK-gq;<%=5>{JNa!B z&5gl8JfY8DMczSla@h2vcpPe-gl3_5J$2|bk^uZ(1Ae;4f#LBX=TP-h!LO!nvdk^~ zx;z2$^$lt$YLx)|$)-TT5iR(TCVnfp*k0tn^0+74d7IMYNx_K$sH`S|$>L?hkHmDC zx7!i9FWw@!tbSAa8@Ert$U8~%w{~MKTX*!}%%m~S!Npzu`A;j(aG7!S-|bk|35=CM z`26a_>x*4;`OyWtaknzlXnh8!4T>Ke{bujW)m>w9^VfW+mueqhH2+pbYIU0n)jdB? zdbFXubkXDqKFNZ-_v4E2S=y4_SKC&RcJ;v969bKN`yVi;4J{9ROw;oN{rhF5_XLYG zoNJtuOFbu}(%iP1F~jpEu8Mwr@fTa+tXql~GHru4jywKneAK7Z zL6_Qn83c=84iL?{0tRiD@)$x z6up~^S`dj{FfKhVb57~GmMzvt?dr!k)(u5o25GsnXG_>^@zThunRi>hZYW6Vi?9=b zIa`oGWZ#eH4(sC@??G`ZpRit?AZFZHoQSKd$Rzanu$ zaFg-X5JRn%vyZoqN*cN2P2pj4srjMYz1i}j?#(L`rc9Gm4jO|$!i;&7>3lr#$wJjy zFovP;jrkFRa_^X4BF% z+RcNsyjN+@cf0sYCcI5Zx;1L*os#>6J}<`B9(=fR^Va&NmbIA37dO&x^nN#&C8?U2 zvOj&&F7ElvxWTQaha54wZCu0YX`4pQ8MFWMr(;zOyKj6@*{S-=ODu=p26J#$$BAe` zWrJ0;MqJeR^TEOIdL#ua_};sLW(z(POuf>1W2<7`2ib!a!G@RGPMxq}^@Sl3$`h)g zyEo75v3~HKPZ#&Uf27{7Jb#YRQ)eoH#NKS@x_kVb1OQNdObXK=)*_sNxhuCOFou$n&6-OwrnUWhrM$U z6~FLGZ*03*?AgI7w>`IuYXz$ElB>>4rj@E;Jzf>$4Zbvc_e@sOJ#1k6k^1t~LT>%n z@hj-%(#u!JKaFhd*9|V=^qHWa*D~|@(bkg2eCZ(SvVIR{Sr>5|wQZl&q_|@9-G19v zAQvu+++13*v(JdnV)v9?X#>s|3d8O z7i|Mm8oVPOoB6>#zOg{Ds3dK4?Y>#LH`siA zN^W{CZ~6V4iE}Q^uwtP{x*oc*pu{h3K2hBWcP-ylU+ zUA_@NsBq+>u2l+C{-(qIN}b-BZ`;iHEXr!PbkU8;5?3FZ?o+=DW3!j5k8cot-h636 z_t)!IUX<<9E5`MGjjWTt8xg#ZRWH17xV^O3a5B_oDLOFdeUA;Z>-MB15Br)ny0|fS)L<%eN2PZi zbxV3JO8j$^Wcw?#V)>wRGY{MG*urtAhI`+im9DeKWWY=9kOgCQBeu@$+w)qHq~u}p zGOQzaV1Mn(P6dzmHGW6?h?|B!wQF?S>Jcvo@4eV`-Ki^O81Ivb71y?P9CvLDQoFfB zZTXR?V|(CfYcDo{mz-@`uHRXepV@EPy=fhL4n8#tUzxZ#W7~)ITa)@vzgxdRb|))3 z=FPM9%NloCc|~!|&OTk3C-dH3-G12Y^6l%rV>_Llle_npreqR(|2TDOL+X>swJapr z^Uv1!bIYPiR_`h0gxVJG-g|$-$+n!ry!-j3H(irktn=lMQu&T1 zO-W_$bi}}c|)hdQLPb>p`?7o-}I4LUVM zPZ>12p5)NMcc+(cm+&4B(>@vMz_udMJ5**aSP3nac79rDZYiI$HS{k6{zRFQV;^{)d1!W_{Z0DP^P_;{oRhov)QM{{ z*g>qUHR0CdoT0~U{0o^U^?h;`Tlf^o&Tc#M4waRjTr;~eYJWxKg9*2r9U5D|Nn>|h zJ;nP~S0HbQ+eh?$x;-ZA_K-^yp?ozKEv8`|+wy}j8*D9?`B{U+W%*miYFRwL+uk{4Me{T^&Jjk~{M zrfkmK4lj=WekitH!&ym}-euKq-!c9St9?W4Z}z_HSlcJO-L9Lm~|NBy4k zCT~EadM#W-Dy6G-k875AMpa^LyyN`#ZvAER3(qpIA0YV^aSd^k4=Sw@$t@>d>rJM_Sj7TG{>D^!0tWCazDw zIA3U2?arj#>_0&!$^3Y*->@w?*|2@uHV*U1Yf@O{y>&FGcTuC}U%)v`(;3910^ExS z_WIF#vZH|(kS~qi}k14b?dOTNK` zz9ZH~I-^iAzutd;81}LE=joZ@(^U8*>gd{~{~5TQRNXo+cT5H690QEFA*>o!BlCyfrBXe&(U|gM!(F^zU3R+Z+^TnQexw*TO z;v+whY`3O1Za2jyZhv-!w!^8HMc};oZpOicB^fKCBU7VpOcy^o|0tMw5cQllSly?u z8dux}=zrqu)w#$j$1+%5srH=2KLxiKZ*fw9SxR5ZQ z)^Gh&JDhO0Q#ao+R?+w9`sky>M{nK zoZt60=V2_J9^JTJ;l9vudxUo1>zIC3d+!JL9c<3qZ$K)#Rr*sVwo4$GUBRjIP-VVTT9aw$$`l-6hpt$&BqEox7Z&!_&w{Tah zfp0(Uk=nL*xHGW2V*QN)pU>72X>YDyo%;Ft-81X$U8-M>h^_l>-0mUB?Ob)n8IN;J zU4QN2_~;3P{P~3gh8kz6vf?v2YnBwu-`0NJ>5Ey@@10reu&Vk#oBCVI&B$J@Zmdo2 zGG@PwAN$Od+fg4$ z*HxvMT=!MGnBy#ML@~NfQ-{iJ+s7PAIK&xSaQx_Dvy9v+vtHKT%`G}LBIULjv&h!1 z*nQ?&{Uqk^%bNrz<~;6eX?T^k;Njt6+lS*}t$puHl5XKVk64pS#(buYOCuw$JUCh! zy%|b6m0lMoZ}zl%k?ht0kM&0Jg2iV$0IyEUwlD@ewzbN#j2xxxHKX!8g5B%FmZrl_ z&Y|PB9jvqR#pTWQexLJtj^%RaXK$S6kM~>DYxpetsg|80KRoq4=$XfP6Q4XZ>cdX_ zF8j&q_xHE2n0snx=BctZ_`%$ISBA5jf8ySubO zZC61`r{qgxCf3mSue0~V(xF#^ z`AKy~4Q?90;YLoab8BV?MrwveO*%xoy2C&_@y;5vxnlI4M`tnUt3q1$Oq#Y}Z07AH zXF9Wsmekhq&w4sb$8}h%f7oP$>B6j5FAA=_81A?>SUEegYiajJI_23H{ie)%aa1)I zduh(pjgJIFIyNYsU}}6Udl9lbz5!GB;o_`1Pe!aq>^?JAa!zGk^d@B^e7w_e#6jz~ zQKQA2c>7M)prA?2A;a#2w;@BW=Zg2t{f*%lPw#OqDWZ|d+earI&@1NUuJ?D(50W># zwLPn%;T*;EJtwxD-gBJssL^`-?>9~-3t#9p4E)$?{gQ{rhebVA%pcLEMN~8;m)gBm zZLw-bTZ0p2V1YU|FbN?&YC56<9s_fpho{;BI@ncb>!Gxv4iD{bN_q;m? z%R5#T2DEp_yyzk|CBTuYN0DN{o^Od!ts}0 zkw&F8IHirPSIk5-uhZ>;1u=PvT-)%=N_BaM=wa9J`e~!@)SlC`#kBjgKRXNTPapTw zyf2$gtt*wLFgFOw4o|Ib zX_hs^J_Bjd1V^1t&E3jrTN2Y51VT|9|Mt_lYsYA=A)n4I@cHIdO!UsF+R+n>ozwaE z{0pt)Uw3&xe=0h^vb*zo?gLTp_tm-C+1aevquB`w!okSG!F!A5k6Ab$o|(M}%#Q!N zY}Lpd#=b9HpkP*?he*bvqEhB+pCP+6+m=;Z*?jSYqmLVBXK>BMD=i5z2PTZDXtG!` z^U_=cs_<~mq&ro|ewUhO7G5SL6fUSU8NoOwC_U<^oG|+GE_Q^t!gFL)y*7ugPf@Ui z)3V%#a!aj}o2HRm?^WBL%&) z?>_9DHs$W|T~mylW$R?xnWOVwjlAaCar|jk>1(&AXWi~wl8W#J=-naPf@y5$~RM(v{_{77uq67~+r9J;$)uhWO zr}TQqael}-vi5Cl1mo%ED9V_8X)0*g$9#!zzS&xf~T9nBugnDMk9 zbkPRqP3`lYjraE*wf!*CRDJAd0yq`1U zrBl~>=*M=f%!?yuo!=-wN@~9KVyzj!_ba{ZZ?(u#wk%^}S-<4ZgLWbc2$$RtXB^5$ju}I2SAqp=S9TP3V z9bUb1nu0Z{#Q@^=N<77zR56o3X;IZ1!-$?U9ziI3CJLpC*U?*uoY6g(Eqqp&o;b@1 z?bdb1os7NNGtM<6AIG=NTR*qm`Zt4bbTsD#N)%LwO-C5zf$6uP^H~i#<86yb=9q(ek51p))tNpF{)B z_+DM8JZC^57cAMznsKY`TN!l6yB+@O={6+8`8Z!&R(Ya(VOf;yz|p%W2lT{(I-j68 zC1^CX1WS)5bJR^~;@Kn(K}!vq>oIUjV3qitb=t>I>2I%;#C2t? zOd(Hum`d@u4}Y#MSC%IVuHu_1qb5hJY=kZ~pPf>A(s}Cjq|rBWd|hY1?=j<%=F_H& zUuqEm?XpD~pPIbf27h>W-56!jRmRqj?YACkw)L%Udb>^8F~gLv8ZTONoLP4}qe&+I zWz1&li4laopEgXnwJPpfoncS!-v-^}xfPAR|+tuzPHeyS05ud_uLg)&PGmBeXJ28AGVe#oM@0q}vs8?Cw_2o;j=32wr zpS@8qLvtHrGGH$(UpSeka8MbiX{4<7xWmjh}I>rgyYq<5{ysF8v zDe?;$6VEN36q~x_#RpWOEa&;$2a6vZEKS&VX+!5Gj2UHZbiegJ-0Sxam!C}da$E4W z`t72P>A=(Ss9Pg?AcveYiA-hb_&B)y|6}b<;Gyc<|M3#CCs`v&B{euR#$fEj%-ES3 z+Zam*Gq$m>gUGHD3ZWuPN|K~ScFG<}w#XVvgc6ngcj$iZ`+4r?`90t7|Nr_;uX&ly z=lZ;_$M_C+&k7Xw3A%c*M#Y@7Cuwb z{v*jDUimG_?0p3T{0)cVfEc%N@I$CQLM8RP4XFA79zOnQa7>o+s!Qmfz za=%f)wqc5v7%5jD3_H{;cPPfH#0vU<<>Phesyv>98vDL6jSAsKt=q-%k+lU0D=&c| z$m^DG@7^963_U5-eEC77{hn@p>@gY+eKR$Co8&X&9}Bmssla@!3?0voI4W5mm8P9- zdIt$t*m`PO2ubNhe7;k2uC}!DT(7-?s8zg*T8sD6R;gBr<=q+|S4! z?IG{ZNHX)+JjG9q@KC%j&IvgFU_Wt64IG4+SK|8;D%VmfE233@azz%2qmFw}w`cZ0 zKMT}_mq{n-C!hMLsMM0$mbP}ZC))pNkCp0kQ%hee)Xm2nM3YMsmm2L3-%Lj zf}k+^(;KUxI7x#J$!LDU{d-dRKdQxiw=gzYB?hHe=_M&7BkHq(12qlRTW8T{-@TFU zP~mNumCy7MHwW0CaltEtb z>2ikiWy^#HOx*^bz=u;`ST`rSxWz9SpBEM7C?jpWdsfDXGh*1?K zRJP4Hsawp|BmFa91g-=c9CelO;GX9d2?2y96W^A{m1Xes9}R?cZq3_oFu$6D+g5C~ z^_}$Bv>thLE~+`V+b{lhJ1OFJ;hhmkE)SnasloL?sf)rwts9fw>sj!q9=BQ2?OEkH z%Slvxe(GnLjsXv@x+XzLX0lbsV8>BbX)_Jy>#e(L=<*C;XXFQi)s2G(cO9+opp2nbcv z1x&3SuKk*QnElg8?uX)6t)7w(Jl~DcR*Zc17(3$yHnH45&1wF*)T4oMiMF#Ip+vEt z2Bma*#V1sH#}DP!DK3Wm-piN|lZ%hXlFF{%iC2U8u9^jZWN&M*IH^5m#-|-&P3z8O zyI}3#0BnClCaUnk!~=~>EyH9=YMaLQndaP2&LF=d z*Eb6{9UAxBQftNi$NAbO6nKxt#ct`peRUWOKcGGHRJ3_|;hX#|k7c-H@md-_2H`$N zJ0RZ_W+`{%7MePgbRJfjN8e^JLiy*PE&gLB6J zhPOR2wjsT_fxPY!!o8Sk%kr+a<(tv3=qU}Tp0L;|nmg-#I2)|4^eOn! z=%X)^A-!XZ9L8^~f?&d$=s_<-65ww#@r>=YS+eZZo8MhzNE?rpH3a9x@zscSF3qt_L78mVT! zu&TT*4A829bMlF=?%MU zF!~v7yVj(7qNcf3xHUP3|Ai7?-xJ|*Rs%Hkhzj`)bMKN-A)1amypKUtZ|Y33RH;KD zXA3xa+`QOtmd>+`&4u1>QT2VN=V`^kldq)IJI(sxxMu|3>xY~@3cL~uy;XkfteHqb z0^CBv_Vd6`g=JpNdkiIqjrWO_s;B&jMU)G}i`p=TS!1;f^WWm<)~3&#b4(@P*&sVX z7yVja_B>R=j0E{T=)y_%sRk>EwF4@AzUgY(e$!3A-fx;ck7}0un0w&yx2rw3?z?d= z9OpbzFH8@r6y3Kn%rKBp66VYxPdfSCD7piAn6hz~n3I$c858PIkR7;r*=DXs{BTFy zK6_u`<-?%~x{G1vqDq1)Sn>nCGBdu|vTzRf4mF;(8zJJ#5AQrWnIK+c`gPniYy(Qo z)OH!^Jo3!+oxxc%|OO9N+G!?!siY$)s_*@6aGm@@aQD95eJ z0?nVIm-g<q$+khzjHI?3wK26NsgRbf-BS4>QUio zZ!hUDhw@B(H{2RIa4=4SISsEGE!(5DP-AIxYaq9~oB2)Itwoa0h0{GD_ZtSRqAKa@ z94`{??O(2rnohM4c=%x9c)n~qqw(uL2R3l>zHTbl3UsZ8KF+pq2A2;>xs}zo`szBs zwnf@P(Uqt7Av|f{_}S`?jD(lpx%2d@>MU!&)roHs*{#_7C;ZFLsz2YjnVl~E@cEmj z`-*F=g;z-v`gK8HjZQ6%{K&cfv0+1R>ACdYY6(;Vya=4*fqSlYCsZCAotVG8O}By- zRTxkaWi5A1ogBoagO}lHQ7v z2@ZG^{tF)6DSuu~mTiJfQ)2YKqFS@H%34mp><#xk=}I^~{JEvZUb%aL!X9Fd4>Wj^2{oPa{u|kE9=V-sZRNN% zI0A$5*)s$Me zj{B#`W9`LmM_e8B?i`ed9{s56du`n##Wu4Ure~A>GUM3GdY)IpZim`u&JO2Beo0%- zT};p%i+t-UdUGgBdHN_gQ@+T?-7S>G8wZ(WMf|M?V@kB4f~uCY znNPsy);Aoo*i;V|66twCtV)@vj#jhMJEZ*wZ}SRItGEq;f;( zu;QnbpYLd!fd_u*ti6^jW%1K95T;9inZLrGsE+((KpcLh{iUwX^J>$SOH^P( zC^_AGl^u3*)z#!pZKB!+w7{Tjr!)|4dLMVdw<=`y-T0QEQ$LIh?DMm)hbXCdBn&Dzg_!r8r5i2YWn40^{j?-sZDnuvPU7Jf^#;79Oll#51Ds~E7`}K{^4$SQ>LLB~H&oFu5tbI;)_Tmz_{Ym*5^8lf* z^6|=~pyh13X~9pE!gFNa;x{dB9jxqT9v5Os%nEQOoNKIw)L!-Jy z-Sb~8M%~gmknodOPALx9?DTXt?ZQ^Hix5W4qUiYJ*{xC|p~oHhH>w$&q$1e{zx#vh zib`((x$T?*l%?{wJJ6V zYKrH$;ZfHq|Fmz$#7x48R|E+z|JGWgRpDhw;L@osK!rN7vbq47oH(>prkI;B3q;=; zSZcoBx|y>7gVxAqr{tbzS|`l-2iTIHQ|hXk*RxsIZv8mtJY;sO@yrhqX}h`6wa!Zx z91Orgsre;-pA{1ZCwVsi zsq(00#kwc+jJ8nUS#T8$K6^bTO;M(9Yzz*sPhcRSeQL@BH8kX(CG&rci!45pK+=RCVK z4Z??y-;nP06b!=d71&%_Ss;ei!HMaTB?GUN>#~^dd}(~@p*rY6!m6swUkzV&14m`! zUO@k0PDadtlfX!eDr`;!xWqy+RsS&XJ=jAyF0?$q%Gh`LaMTOQy4yunE66bQBbTW9 z&bhbnlT~5pnEEFPl}?d;txPT29qQekR^khy;nUrjpW?cnJ3ISE$`&1+IBfFcd~H?G zmRgg{iJI`S5x8W6Pn9j#t!sh!R?=hivuOTcA*Mm+%;792YXebjl&#IP@To|LYIM!g z)@)Yu;?10dS?%6(y%n{W?5kagb|VTGGe!1wNj@b#ZXk4hw+p;nj-=mL7Dy&M`1x#n zd!Fm_Yt9G>r{0kJ0jucR&qp`coa#KMDc>B2n>$(ZA|1}cG|zw`Yhu<{eQ0}3cHT}= zvgO(w8$<3eP!XJBw)Fkd@Xh?HFyZcc_?d@A{*7J1*ODgSBI1u{2Q^88LvvA|jb>cC z?v&mcnfhs<5h^~$l0f(WmB3!@m#wn?-Fq=!;X$a{^oVIL1Wfo#y&pb0Eq@l8%4U^! z7+5d&D2>E}>e+UycDJ~S+!;?>=|Ig!s_MYcKRy?qrvP&IsLPB}lCfU&G8e04T% zPl4W{6qD_k+PJ=Bo)4BjsD3z>cHh==p$&qax-T6u&SAB{j0?xRD_ghUO4Qz-JLOap zvV6|5m;F+r8hm>y$^-~63ws~GdWv3=49L^yq5T#6?`EjNw;O%g6I0^Umf0w#+YCi@ zBl3oxekexv?^X9}oQ@<8lhgIG3!{#ag3f%Ldl2z(b9VI|P4(=zAh6UTqkf_%5W6a2 zUbA-pQ=oEW|MgS0tfw!wxl5KDGMB&L#(4E(fThEY;z~_>KpBn@#|ZEe6=LB^tHue92`8Kv0ZWvS|T?yqVd}q zVK6C=gpe8Kq>k#Z(|0<%F94N{bw7v7Hj_G4j^5aa^!@sdJo1iwH{mc#YAljV-Y*KcSW4wp49aaq;{C6Rk`M_tbN3#+~+#E1VD-JC1lKyu5qRv2t%4H6J`l=DXL>ga`QI@+m}6QLiXWnIrFn~MiIr3ET@4)#O7=8VT~ zlC!SbbYH|pKN#5AvdlEbGX>XT-WXQQX}h75x(8RVwyTUu-=6ZV<)5x$h~sV#ekZNJ z7!qLkLeggMC9JfH(uYrnY(~Gd9BMC&(4tzt0xNK;!LLOk1;5<#&8mGb>L_I0JAK~~ z2?ia!+7F+b?a7LriZ~rG=6=9Pa^}O+u<@al;aDgB=YAFKc8uAXi)9~uG>w?@@5R|X z4q_6Ma58-uBkQVh%%o5xUvJEEzToF5L$(0_x}3qV^kYY=fcdL?)bm z_MOT1WlyBwRq!%?FeaVl44iX=oTv4YC)Ey|4I$cJZ>izFUhDM7GPs+TrTjcl~#!X@+9*d))ROI&Fw zDB<{CIk<3-eP-DwS9R|5v-$1}xgwW~J=5}@8qUj#T*_en`Lszd?Xa1d0(=q&Nq%y1 zYNX=8rV#^$mnr5nN(j73qld%daTz?RcwXK+jQ<}G_l|27^!Li?&yr5Kri_}NF)8$c zSnVSe!P^-*AH2<_zb~<6iC!v_@J_0=RPuWxj79A`a~M-yHFj*8GjAc3yd=+1`Eu^~ z!JaU!JwxAz*t)tDRu!Io4%ZjT;J-CClWxj))!f8&eb*KDP~RL5_t!i#~lmZKm6j%OULB`Aqv1KQBa{Q6@`S*LS4^a*n z)vW!ZwM>c*=7_VjQJ01Jvnvyyji`<`1FP4PJ}fh^8#fQb8=9p`&u>;8aOQ*9TE7UT zz26K*-stU`QO$=2fHl(;1($=5I02Wr(Z>bl>@4}QU4HK-GfLj~BoOvmz2JquC``?} z176nU*iHt!S+ zxUA)ckD1U$u;yp44i;1nj$c|C-Hf5L^Nf0<)axAWK%nnp5!5;EYJcPuZT&X@L@M<1na;Dxr8@}^7#-u zO>OCb5c@<2Qd=iRFCFg~r0m8-@G7xAH@=rLbds$kHtz0w_3}4}s_K}{_q|Zn{Bhk| zOYJL$l`d;G_U$siKBf=A6ZKI3!afc@vtXUS|N6lTTI`Rw2f7{x2iCN?AJci zx2!L(#)c`Pui58-E6x+P+Ud*IC;jJd6kol2G=UhpR;g{xM88AI?-twi(P)@`#R})b zfEV*IkDqs|&!xl-y?K4y!_qeqyBR9JMhazW`;e=T%@wG#F~}%W5AD7;R|1=^JS1gN zSi_SspeHWS8UMO=^`gTQ*!^lIeo=SjFW1rt!?bvO)e}#1jp;9ArxrN1%mT;?S~=ILZ6~)w ztG?PVow|nMU@u~rgKGC5Yw|MOxu(iDljZ65Nj;XJw3wbmxAZy5In)G$Ffi_mw`g(Q&A-GB20I@z=Q!8; zuyXL>;fSf?!0bTHlk0&8$idhMb-^B&{o?QHl$A;wxo(8<4c9+%a6Ii(F(9!}svq_8 zYXj+QaU&5qYCG*e=JX7mm0?a9A2Ap`O%#w!LBj%6m>t==DaJ;0~svp^EH7S}Mh7gN!5j}tvjG0^X zZ+{NnGjJ8G>c3Hq;NLj0MZB-0wytx6kbQG*r)C;%P+k`j$@wt@J&)vju$|HHMJR{t z%xWI^{0+EkoYoMMx(_vPda5b)juy-RF(Rgr@f?~R&zcynB+8lOwp#J-?nk794jx&V zWIfi{{=Ax*c%V1-bI`e%QlRZ*eXnxqRa1Iy(P zrG7Tz92&jYO!J-?>5M98S@(vvBG}V4=+@ub=pEDbB4yX>;f@0z5)+Smd}XJ-4*E3F zWt;OeLG#ul#uwWk9j9Z0rUK&d0Pwy3aHeH{WKn>vq1LJGbtjf<+)^j_Q87de^dT`0 zCz_y1m(&YIIe5FTGru~)vEPp+C2smt)jX4)A7@d*$gGPg5+no0^V$sGS=P%9axcM6msPM5e_vRQG_<0S_0&R{ z@&45nSvI$Mu&N4ez~yYOx2=M^P9pA6{8j7T1Zqx_PR8KQpQe`<$ zHURj<1p1lvIsAB;4aHK^`q*1G51#Mm?|-7jexTCv!!S5B@jMbt($-;WTq)prt9JA6}S1}XSf8(yb=egvx7_}rJfP@5Vx}=_hBO( zekt55WqnL(M&0kVgZ#_jEy|ky=gKqt@|&&d>Rx{Wul{d- z=?lC2R5>B?JGSilkfWD;@(cO}V%(D=mk{a1Z;dSZ4CNrSD{)r!_MOYDep;+P4gS3H<<*UJg(%%qA=X5 zb3b^)4l7-fQWSNZVBC7*r1Au*o#&C0cQ zBf?~dc{iV&xFQ&h&YEGlcK#x^pDM2D#s_(`xy-Y7Hu}n`(8(seoow-5UIFR-+hm{g zn`ELP^D|!&zH653Np@4>3eM77Dl^xaUcZl-8+;v`kD#Abe109@j+XdZzWw;PpniR~ zFeLRLcEb2qTl1vko+l`}pa=&O?~#EQr-?GUGW}dPx$gH#ffBjXlp*eY_0x*jE4;QM zOq>lLA{k_cj0-d%<4YYXB5i~3vhBU9)e`Yv7rRw&+ck)tu8&qt0Kyv5VO1(vMENVc zFkzgmtPK~4tgNf+-#ty+L~~t*yH$F$O~dJ z@19&00=MFajFv+FD;r}sGWnPi$~a_RH0ZxlNeuaz13iVaOppydA$7m>*r|up=cOyv z5?F=&>sLR1>S;K7yMAk2&{mvb&&W)`4QU6~kWNX4Uu#ugdc0(YZDtg{90RS1{>(p= z(axPeemze$spHAO5lNPAcumN;0P@L<4~qeeO&<~B#UIY~Uw_HkC35q<<+yURlk82H zbpEhICWW2m$@fT@k9cXKHz)8krnAO@S0WuY{`d&blJG%J@oS&A?yD<1BnvSeIb0RH z>LDj|c8^EL4M>gMV4Jaz3icRLQ!t7*=$zVxw68Kyv$sZ8g(U---rL~qQ7Ct~?blZd zA68Zp@zKZBZ^cgpuyZNGyIa8}UvVoSguA2_Q?8drEs>u3y2n(%eSx&@f zWc9^AX@Lvt8^87?`DYH6lD`Khs=?Tr52B!_;^*u4mt6!eU=<#galV3H-)e4mixtEu zMe$0Cu;p*pUP!|+&9FTYVq(dcCrN0{Lv7>Zq5bi{Vh9vlGvQd~;VK?Nw8SwL4Gku( z2v)HK&3MZZsR+F*od(n}1Lw9Lrx`=pa6A%kdTU<~u=x9+0Z9FgXx?oc+5_H3E&cdU8E_6pE#0l(V`VAtWp~cyT-0c2RyfG-Q4t9iu|?P4`%c^!X&bus%PJazPNc z#0p!%DRQ$mf+_H-H1@eoo(9KioIe}ewv!W7FCYb93Nm8(E2e+J?tvjWzdFA$k#r?m z+!B*bRQqB8wF=1gLMozE;yy>`X}#*+Kf^6z{e-6_R*)&RpEbAaYc=Y{_B>m|jKg`Z z3Rz+8J!D?S&w^5turqNayMqlQub#Mz;ys;xvIS%$yrxNXKpLjl=GLXWXw@6aCHDdAl z!#M$pu``rj=2wni_s{-nzUb!s9lR6x?NkSY+<{8jFbfu=MzQ=GNiLJ(S_ur$+k)J! z%J*wpO1@zwla^pZW8ryabKVJfP1U2@3+w_{ZeF!LQ~yrfEj?=M{b{ZWYVO%^+ZrJQ z9*zB2Y44V&nsC<%^BlLrskRD^pQ3L^E%qKuAQZ}-^`z9cM0x+RPf^!Ad%+s~a$Ux8 zDGleoD3kf|HSySLr##LzP1iZDe6M32y!`pzRty7~Cw<)Z4jy|M-jGk@sB z#WCrt<3V2;`K_vjCo>-Ct5Kn9SrQsaJEJb{tPkhS zCB(W8Z%=yX7V*NHa~^>QW4(V|(dn%lcQmkb?JRrzXs+`R(~utYwq*5dl`C#MuYE3_ z*<8GJ%y~XMfYE_i)^61beZ}V*tp!CtZv@MqOY}|XMcH3xETK;s#!;Z2W zqP%;1{gSklViPw?=h97M1{?fynFA(H#?!9E+)sHiIQ>9S)%x7qQRt-{O}UT7#xft- z;W}(Oj%QNOI$UcV(Y=X#6TkB9Qs-Vf-nS^btE1wC;>y(X4O9IG(Trcayp^O*=&~Bz zYrd_~LlwE`bxHb@AjaIO%&bRXITr8C&`(n2P&xLq7s@2p;aJai#ceU*Sd4DZHy}~B zQYOc7>Xd{nzkqh`9$v1#fFIu8;=Ka*4+8sRyxB_PeZBDu{WpXSDf%zJ_jdL%U4+JP zjtR#&^49lFT%M7R5){bN6#B6!tU)fJD>k2e-aW^Wsd-r~&+AkC!Bcr*2~eXZm~YMl z#_bPz!?zd}qq{Ej=gE&k^MpDzgYatNS&a!A>O; z5B{opwJ_rQDP4XEj8$?3H(b)OIeCNih{oOmqlnk%P@T@wDheaa`FmWhdg$J4wO+vT zY_&{7ohzd*eCd*3YZ%d~Ah!o!9)-G!HN4Nv5fl`wKaV1ojCA$Z6wJKd=gd*Ge%EyS zT-nIfxrylS=k`)~V?@EPa>XWdOtgcmPh(l_nL!*g!^H#rt14>mzct)DHtl_bxvT_o$cW-wq?H>Iw7??DL>$-Ru)+QDHquN;`fD7 zsNQYdQGFMZfTea!`w^*3!{9L4&pb6`(-hN{D-La&PCkXWil}K4EF>f(39OaHTnrQ9 zNeKQGy72uP)59U&8fUX#@0wI>7ml1ZwrYj#Kux)oqZ7*iA`SEjfe@nfi{rc0= z+Y2|1+`>BV#HZ^}#wlNg5HD1=4M@HknXSj_5VtjH*?qEdx`+wV>MytH>PFjFZN1bw z+1zts_ro)x)dZE6x{DS$j}5++lyz1ruL>9Dc>#BwWYXfnH<-JA)A z`0z=}LzZpeB)Z_OA*iJxrGY12@nU-7h3K=lm7m^HPWPy>HBKBr_l8ZH$0EWkLZdJN z?ET#>o-=FK+eJdPX`W}Lw~pTt<(eva&Ri(a7O8>cXEe{!bFa)e{p)njMP+tQjkdrN z{%xUwQt4-+`}-@T5#j}bx>bfAb55@dl59JaZ^?-L_}&DG37HheTJp(ol{{Xqi*sp6g zu=JH`Ov8mdp@pJ_pdMGvR-YrtPX4G zUY_AHLe-7dkgAVA8sZ2xPtG|VAwQa)gO57E z`_HiG)WmW=MBPrr#Kb~(u%H@z`!v6ALC zxb%iprkN`Mb$05xzWvE^t5ys4>p~Oz=i}1sMg{V>j6Iosb##~qV9zz9VQlM+a{1OC zDw8N?-sIf7U{RHH-_wtoHd?-w`XWoA@C}a=4=>qA%;fI9w;WtgIQU68Q;5>RdWny~ z@3?4ZJg$kwYlgHE=Z&2=j$dDq+7g%jmGHuzd3sdD=D-2b>xKk7)#Mjx5mzECf0^F6 zr1$pl?XQi`t1LX3B^5f~&K!e_ecdBHtsOfOe^M9hZ8gL@Hd*PY5m3_XHpnzMx?>t|fQ5#xAp>=z5(x4`;i-pG%nfe#>c zzZ+@3d{ByMS|0QAi2Y&a&SxDi6Bo&C^}*_x_nL~N(zcuVOqRT+oJqX<0V1Eh29!mS zIbHT}fw6VR`ila&YCVIZzO<}IEAJhIp9jAQLi;uLH|#emOsOt;%(QJ4B;6r!ot!OA zSgR}kDfiP|48B#9`Ill7X(eMT{zX;8#u ze<1t*?G-5}6|H%*T7SsP1bape3%^W=0psOp&pYdn`+7dET6W6XznzG9nVtXGT1G|V zc`>wt&XDP$$hO*XPpkm+5Cn@V5{q8|2ft1+_dOtpLwDdB09esvUu1?Cz}N6{`%@wt6`#`;b~ zra$gE|Ff5i;w@fbrIjGBr{(b?^q9-jqpt;1GhQ7A7m0oj-=s-)p~$BP%QrIirLbg) zUA+2MEJA3i>$b^Y7AS zJw5bi*lxFI%SyTVn4(?>4eWfRbSdg*7$Oz1-u3vql z7hv@P`91P>Fsr$}kNDKNbsnPrYpa(PiA)coG0>=MgVL1;o6>GxV~XH#Iry%=|6q-F z;OpCnfs1J>2+fB=Lvyr<8NHwa!G6L0&-pd0hN(zPZEoI%&Es1qWG)B2y=(f*Go8@O zY+fH)bI*pWl)1sHX0e{*^;UHArA!8oAl+1^y54dFoeiao8E`$$*vda`c-u{|S@oO3 z5eE(*uL^D>#mVJsY~9M5@;G*hZwA3|p?47Em&Ahy-yCokQ{Urd(NeTOa9k^^=>yj_ z6j+pDu8e6FwiPiw$}Vl1@-fgIPftblJwDjmM~^!~geu-YR1jN=D93Ib?fru9{V{_H zSUU#ToQ`I$A5T6~eZ+a<@~szKC*@0$s+;if;r!yF!q@;lgS@Kr`>h|rcHhqmTqZ(taQF7RbRx(*SW z9*(qojU0VwcK*bqwO&P*f)wZD&HHZ<2^kB995XE5t74_~aQ`2*=BG{@EvAgZm`dxTMw&?-Ln^bZix=~Z_oDp9x0r& zr=O>d+-V-ZN>P>nd6`U zR2G2AO2ZVC;Ic|ksMsH`-`r-q+=d{R*B|OYio-vN#R3BZWdh+co<2?h$R~l^fsvJ! z1|_6@=^lRMAZZWZzqnv`anK;KgpZ5Y4n5^Au_f8w(;p<5{ZHJpjt+n7@$&bf?P_rZ zY2<0(b4)z^d_fX3*uRpPIXWm&J$>BCermhazJRM2#YqMD>*!xhE-K(bKNmlcmhG=& zpwGJ&qG*2qdh{O+AQdMVa3vbZ6{#v7B<=W{$U*!!vm5BM63yjbJN{-t`&YbOd;UfB z|1-unka6|Tfc;0x-~SY3u+t71@_+B>1h}|6{cEhjeo9(C6f($XYU=4p`@b`B{$22| zfbWo^{>Gr7$$pf-Q-dOvVDkTYM`u8yUAG2yFcm8Mc-ao*=Q0$yAr9c-)KW8;rg#0ce z;y)ew%c|c!cGCABot!B<{4Zdn|LXL|q5szFk3pq}!)X82?~jB3t>15gZ2;*C$e~bp z6E~6`!3m{_a>AfYP@1|Z6dF*#qkPS@odX=Tk-=nbWS}nE(BBY+lEb^vj8G6LYWJmy z0_AsJ7}RgtaQseZ@P$Wd0uVVA+70VwFRMpGX`AjIMo|HKlrGrlgvV&2%rKfxW>`%p zH*N49g`QTRleVUllK~p#sjn62slN*dl13Y%QGq*eJQ^j3!=Mz6(VB*)SWUbsCMeKe zJIL2TCrFX{=Q|LiqZ#O6ghoLvK@FDL&SnHG!E?8L7w}KPf9~|Z{0#EKqcC_U6nHxs zg$l$Fe!Gm)C7|$z1kg3`>ukH;>!5bL!-GP9zVKL7psqF;79A~=8|WU`<^(=j<8N}m z0r4m;&|5Gr4!T-+PXka?3sitcIpMXyV_-x;AP+(edaI4vVHyoZ~-aj=oI zqZvuZ6b<#))z$Mf)YEcyB01}Uq4PF@n)?}<>udVZ` z`<>W2W6+vf7!yM?4AzWb59wd3Ho42u>7n$tgt?%ybEl>CJ@rDEdWH8adG(l-$c2W$jh*BUpLQDZ;j33O% zK!>7f33ns8?E(^E2u*^C30@yXq8k%^T`f%9P4w(B9uVCC6H5rxPhZzb+Zag=#(Poa z3>4+5ihiB|LWfR;(gPp_KYIWi@<=!EIqY8YM940nJ>ZL105qu{rU1=P2hfF>LfmnR zu4Fib3ZM*heE@w54R8k(FvdV25dj4d_5^^Aa|66w0bN-?zyk=>qU!^64=*Yr;J3>` z=m145#1RLvfKnA*5jc5EfNtbNMS$bV*Ck+A^Z!=qF5rLC4EdX8$Zw?%Kp^^`y^#OA z7ykqp44{nvw2+F>fdwdn7RnNc5Hq9!7$+*yMH>JeaRC0=5!{X=f#@AaP&<*?1^gpC zBn16m!n126%9yT?LzqGX6yX3$Th|^4L}^nT0{+7Mtr~>`eyiREGyseMSx^>bs10!d zHSPF>()t~B@b8WdkUyio>pLh%{bxC6z|GZy8Vq{03rNE1D0-2Jke$HG;`HDiXn^MX z=h=262mg7tEqZ}U0fk%en!8&(V^)C@3`;h1ZJcO6&eVBcH0r#wGfmIQ1q0yhu9;Xh-f+u z;R_(hK>*ztOf|Ovggy*ZWDLd#OeR;a07QVSrUOpj!#x0?`G9^P0C`I)!T=Of07%$f zKpjO-@^3U(x*x&|L~{nws1SD(9g@2@;6dGS0VhxWLtzlYLjjHlEyDq(dT3v`IW;%{ z94UG*hzH>Q+d@mMoT49vM1c7dK+|1`pkdCkj^0!R96T9lA733sxB|-C0O6<@g!XZ8 z1>DF0($LK~7-k4m3UpkS7_E(Pp5=9id<}DCF(q zY2lCdF$RP03JzXNC}_DO(#z7rT#llkfF(F;!`vK6pht%G5O-5;*ImG1M?lsW?d?Ex zM7ntUyUBYS`+9=o6K${OYJ#8u3Kp6$ZJa+O$bx9uEv#cFB0 zDay-gIa=ybAy~l2&Do0{r0AgQ2*x+i(a_Y#-ju4S2Lzjg4J1c-T(GVJO%rSjcGNTV z`E4PX;=2L?bO(P$Lu#-Y1%U@s#fVCv$;&zhgTi{?8)iwR8~Q8i0>%Ud7f(NkgR!#@ z%-6>QK`RgJHU%d{Pkp4lwmg6U0nkPkIuKJYq#OZ4afM?E z_KJ#B19|YcjA68bTWDH12Xmu|lLqXS# zO+093RHVK?1VHHSgopxqwhO4YBZxzof##Dz^JxM4PN4aYz>Xs7uH~)>W6&^^mKWOJ zfB+!qBt4V9nc4p6HE31Et1y(ym!_hFnd8& z=AbGcz>^eArvZVQ7TzEj!~_S*n(fRouB07p`o6|;epKYHg=iebECAwTP6Zs%Uut!L6Y5&Xr#Xf6yfb`@9P4t zNl36KS=kaCt(INKjlMy}bc4Kmc}IP&g9;1ffVX+F7H`hzdk`V*rf?oOO_TIts3IGj{-C28RQL z06CHYphcB8!NGOhe8F{H&+PZ~1-4P;ECD%Fz=Qxe0Z6PVn6z4+Kmf!gATSV+GylhN za2%Oq!SaqdL|X^Y3XnGe!9>Lj!DZf+KeZt231XfZ4U<1a%h>^aO&YLM>bYr~wQP z;K6|&=nuxy8PsY*1UHWI`f$KU#})7cr)mRmR?!8gI}A7qi4YeU0CNohWW53)Sa29> zY3~B=T4w+d9KlAP-;F__b%wvK11-dW$?gkoA7S8ULlDu~1E~ip12q{C0SjX)KnBsZ zuwbX)T|fvp8)^Yi&{0bS73oa`oWZToE}T;U5)1BOu&z6k!e0$Oz)ph?Xte?0X9E1T zngr~4^V>ps1JD8o>VLA}&jv7_U{HhqNx2*t8qhR3A{aj0&I#Iaau*QPZYc*&N&nUg zhQJjJ0l4=4Ed=Hia8rO)g!s#XeNDlr!-8RE5FZD9hh4w`GX&Z>2nivY>e2xts6Dt| z>3~}kINBZnWbvx1e-#OSR{;KABlunM`rlQ{b}B#rURe2mSu-;<{O`ptcX!}F70!J9 zKt9#~-qY8V?nMCz6km|!)d8e|p&tLwK$rlq0{Y)7#s3O~2>{EVf0b4LsP7mWDiJ_Z zWtW}Gsuqpx>#OGF?O=i}eo|2i!@^&zm`7-R=_@gURCo(}#yC01Run!mq` zqmn!V+&dzn@{02RhrO?k%41m)|8RGAcL@;O-QAtw?(Q1gf(LhkySoQ>mmt9t2*LgL zaqqkK_P*VHd-j~)KRbtMYO1=rtE; z|3k4-cFrz_z|gipkzb3o{5OjI6YGB{R@BtV(#_OF+{xbd7i;x@ZKdP=Wn6Gu{*64$ z|5Y>p1M461yms=hWRpKS=XVAEH%tB#>)(}Z|3B{jUnTn+{=cgR7=rj;jM86=`6v1x zMf^Sv{^*oH+1vjyh9xbXfhK9sKM`J4_iABPF?IYa_BR61uK#aYV4Yon6PDZ1_;sf7 zI~xMW2k)D|;QkO9SjDdgu=8G-{)fZjpIHBO`R*2`cK>Wg=j3K%{>_g5s}#TF`qzax z|09N#kU8)k@UIQ~zn1ma%>TMjV+)|$#MFfU&2PH;4e`$`fB$d*YVns&{Quln|K*+P zKXmgyH}AC}f9eIG^Np2(nTdggSrzDfd-YfR?r!)~u76#~U)BGsw@=E(2Iz@(dUeeZ zi>R@S*Pi2+f3*4UAEkfF0CXHO{neTE zCnC3si=mT?tAnDGy_qG@Kd519#QWwyq5ngR|7#5aKCb`10YCy!@V9>z9EjuwN^0V2 zZ0hunnW_kM)Y@1YIT<>65_2(f0X;o`$@HJf`)ezJu3n&*`OWWc=KpZl{Kq}*fA`OsK{!d;1mInT<%>OsK{@2t6`^QE#;JX_i zDe!j%`CoS6HKjyE3>1|W#HD1#03g6~V~|uNCjK4$-vdyL9h_W% zd+!v1+25J~cbWm=5Fl*h?&9!@{{e*2jjUf`Q1DmS2`C^C#(ss(e}(CP$@42L_zIiY z+L-|JyvpogVr%jW4*=nCH&;_23?>VNL)|P*-GT5t5GJ>AwY3Dow?G)(*3=Lf>;xSC z74KqdYypIsfH1t1s?m4f3x{3b-XY>&mappY$fW7($jyx9t zKnei>nx_8L9?aMA@(&}~>$XEnQ)9+gh5mm0ml=M~`LBUL)yMc+-|xC37X5X%AMvYF zjqPoK7CmBT2Sa01VupVn#Q$T)KZ*4xIp~3QLsOtl1Xz_iaFkivnFG7~9~Km1OS^y7 z!~a9JKgsY4{yMIK09xTQ0NsEQfINi`0Q)`;07ruZfazufDImZ1n=Fhv;C1F{5FPwF z?tw6n{!99o1T+qK3F>TVPW*}%QC1~3c6D-lg@JS8HGu%Y0+0ac02}}zfDAwlU;wZH zH~>5VL4X)Q8lV7B1!w{E0mc9efGxlY;12Ks1Oh?iJ4R`>CAcO)z06_!60U-jR0HFh60pSGU2N4621yKgk z0(l2w4q^x53gQD23=##B0Fn-p2T}@B3(^YG3o-&S1F{0L4RQqX6XYHg3=|#|9h3l+ z67&ryC#Vpp45%uo9;i8}Bd8Z>2xu&58fZRf1!xm!FX$NP0_Ya#3Fs9V01OTc6O06m z0gMw&1WW-;8_W#M3Cs^H5-bHQAFK+j4Qv=}4r~kT8`vENLRAE7Fs zx}j#F_MmQ|;h>42S)j$CwV~~xfnQBQmqB+y&q5zSKfoZvP{44*D8QJ&c*4ZN6vDK@ zOu_8IJiwyBQo-`Us=`{q2EwMnR>2O!uESoy!NHNjalt9US;7UtrNPy}eTLhHyMsrC zr-c`R*M)b5kA*LR?}1-|zd%4hphOTv&_-}Uh(#zx=ttN@xJ5)mWJHugG(q%7%s^~H zoJBlEf4cKoPpemyo7v(f`-D3qJUzH5{*)Z zGJ*tiIRxAiH?aeh=qu4h|`D% zh<}jalSq=dlH`$0l01-7k*bjfkyev#kin91l9`buk@b=NASWW1BljUMCtsz2q2Q#j zph%?{rnsS`qST-aqim);q{60>qVl3Dr&^~*pcbHZq|T?Fr-7v5q_L*SqM4=zrDdbF zpv|D2q64L4r?aHXqMM~K_9G5*j&~fH97~+&z+DE>oS(TMxP-adlkk@4k%W+xk^CUJ zBt;-)ELAG?Lz+X{S9(AOUPeVGU1mp?R@OGt^}#1sFb0!ugt9MqdcsFredH{rgE(+tQx1frbeyis@A8Dq^_%8s(zy(s*#|v zrTIqFS944YSIbhXMH@<6UAtKON=Hm5S!Yj|O*d3`QIAT`LvKVMSKmgz(*Vi9(4hVu z#5;|5W$zvh6%6wYuZ*OOGL3#1ix{UGpO^@mB$*tU@|h->9+>f&C72zW^O+}_A6W=k zq*#2j6tPUVJhzgx%CWk!R0CGJ(^ z4eo91-RDE%6X>(;E99H!2jXYs*XK{>AL73kAQA8>5H`>{a3Y8)C?V)FSR=SCgdij! zWcR(q`|?o4P^ZwPFrKiSaPV-;@X3g`5g#L-BTXVlqnM&nq8_7-qeo+yW71+?V$EVF z%AW>GIZ8{*@XO-LLCamsk1BL4rYl7&TdEkU@~SbbqiO&( zt~JNC?`jw8Wa|3rIqRz$C>k;w(HbM0K$<+8el%M&Z?$N(%(P0k_O=1idv#y+IP`q$HSgW+Gw56E*X*AkP#TyVlo|XyBtFzXEHvExneTJQ z2=_?qDCcPN82eb$INNyR1lvU8B>QC36vtG{G}m<74DU?WtiWvVoao%pywv>Ig8ahF zqT1r}lJ3&hvdQw{ip|RTs@v+rTEIHQdgKQ3M#?7sX8sqNFV$P@Tb?7=_91tCp9yswIJckfIPZqe*I#U3 zUS3WCh`$)J0VX}bwE)P=8XyGtdhy>rK>s+ven0-f4GIDRqyo?13IAQ-r3Zil4FCff z0s}z-fTDnap@6&$fB+Y?07y`qJ%A)IC{Sn+ z7yv9BG5{3#eHjQC*sCm{kT9+wpkUxA5U7wOP-vt8Xl8UF7BUPNC1FfM^0!#Zj)B-l zA1FlfYJX6&I>F-f&ahE!tFQ;1C*+H&I*W;ONElPAscYcY_08`5GzoS|3^6UJ@1NVH z;WWE&rRCz5l#&K6)66X_t=!x_JiXqBhJ{B&CMBn&rhQB=EGjPfR9e>1*woz8+BPsa zH2isFbbeuRX?bP!>)!ss;nDHs)%DHo-9513AYh>2;9wBo;NXyu5Vk;(QNT%1A($Zn zq-a7)P%MV%j?lt^WFIh;^NcXx!qk%Y&WJeuz}gOCrASc0HWoe4ucKtcQDql1p@MY| zP84@}l~>KwRh=W`{VxJv(BLK&HVn*vy-Y4@99-DDqLu(|7j_FxDQ+5C+`l$=4@)g+ z9$q@Qk<_&C2v7Ue@_G62mP<;@(lg>?Y3sL3WO`ZK=<4zPU&BV%e(`6` za(AxwzR^F~d|GO|>2^KsJlpX88^rQ1klcP%^-8YjI$Gd9+ZaadTY3`9Y<2n8CF?#1Y2Lr<@j*R{Jh243 zdq?46sd2{P2tSLn{{?_5usPLu?g+f%5_th&ya2+lyZ8yn{rGsqt_-e#E$CVr9xilp z;N$9let6nlNzykkmn=M5B^tipefswBHY!f+r^^}C?o-&KL_KFqY}D7?yUQDeE25JZ zz@Trs$Sh8a%Q@82Q{1D&gDMx<11%@?dv1Hu3y<`01NB zvd#}8d(j&L8jI)PC&TB<%_-Yk#E6pHHdUo3s7LGVA(0OacnAgKDu*1$aKDay}a`>?XRiOBwr`=5hucgPk9z5wTWB5=Or z1OL0*JDI#O0Dhk7{KgshvJQN4b7lm7KgRfqiH?_(8DK&VJqvmvf%j-QIu#O4KNWk= z7oK~yI2JFv_O46Ptmxq^W+w=auw!EBp<{gQyZYGx)Si*CVvVIXGP(;Z`#9`o=;={u3IAxOgR(DzO;=JPWT*h2^QQHdSV)vJpw7Wk5HdaYbE*4R}dKU((+n8!qP zWLIS8mrn6k$a3X^t+@ZBAALsqBk=4W(aH(30f1I4008AT#r;`j4Vqf^yPr|~ zkm6s654mt_6$o*rf(|C>hgQVC5({o>n~agl)2!0#J|BlROSn@FPN_pU%p_m@qRRnjN_^L zg^sDRWyVzpA(I_@)>r_;gnRl5DfwBB&CA@zzw)5~Bsj<$LZ4?czjYeQwd@|R@yk`Q zo6r0mmW=R2l>H}0|`^LP3v}RHAME|;-kva6zBJMVMoT;LYUkpDVob0 zN{!qf(cOtQGjj2u>nS#l`KJwtIoqhcu_J7?=3z%uxz~xvZJ1FGw%*BpNz;EZ%h?Ph z5Rqkf7S)fJAZmW&>8jGv=1FqE<%)6%4TE4;BA6TTsmNZu1>SGJbS9oVK*1UAp z!vy(}zEuzd$76rFZkj{n<7sHZXJU!=pY8sd$TCz%^utv`oU$x{y~8}6~?zA4!wHrbuNNA@>o&{ z$YQ!w(nk1(3BC{?y5gx(mACp(CKI_L-^8bdRE3ekji^Q3MO_yK4D9JSXGe~lDCMF5G?yVeD_(<1zcM#2xU@{k2J|Hd|!27w&WAx z2T7_iMRH?SF@}I0Ip2mV3TJ$ziA)pv0Xk9P2yTlCQ}RsgtKp&nshPWd7LLJ-T_@c4 zoJe0MB#gJ(NXc3tx@3jti8#O&X82vv7|%1kgi(VgX{VASM2kFY;m@%>XfQ}{mEP!lGckDfUGgJD0`h)-BN}Cpw?z}k`FUC7CkJ6x0Te8H@ggxsc(M7p&&Hzp ziEn+r%hl9OYk289Qo)|ym5pY)o}UMG zlgbHU3)J|WVWr-=6cLV>`n$RHg!X@ThIxOy(9vg?!yHHP+?TSArm8Q@bxL^rv^O^M zg|ffAF8HchP5o+!aruix^p9MoJE}wSmh?zzGr#m9l^nEl=qQ+HuqHa#@|@;~_gJz;?D)(wE~w7vq0-7`fpD_cT*#kKdl=w zljQ8znBYUtz^;klH}H5YGa$tiL4{@v1#bc?PxMlbMAOJ&6Hu3)t_n=4&eI8w_2?sa z9&U?F?ygV8%1w|aWmsj{vrOng$ZC?z>P@<{2^lfz&jT|O=vZq^5Io$P?{Bx8CatOc zgrQZB(DJc!tZPlykZrPy^=*Wl1%%*2G3i{=q0-yr%32>f>#;x^_k=K&N2Uww=`-pH zcQ-|P%Mw6OmAW(FIULr) zqFEKYqbrf;m@&^DgSQYurDcKagX#}4WAc$v?8TFfIcDB{AR7ZYco~NW5Dt-4A@TbZ zti?8b7O;os)~6<&!J%lFkOFU3a9TrTF8qn%+gP;z;3s?Bu@QFU!`$B5(bk$d7z8@D z&(C<;ny;49q;+pWlm{DT<2L>rpYdH_R>5K_(Hb7)DuWkCE43=7Ps;ePjye5ysi_Kq z9&36S6l0cPyFGwF7$Gx81=F7kx5Tx7a#(UsWlqlnd$%_iL3vEWL$KLR)7xQVO_1%& z_(ke4=dQHj)6+>wEc-25<@4Wm^*D1<87dyo1%v|vG;#l9mFVo^X=D1!>hPPMj`JF4 zir<&ACnS1-3Eo0mtuFFXM}@o9NjJvq&qq}sQyC&d=qb@lDQI|(zSOBb81Kh1RH1(c ziw8iDxN*;^p+$l7gC6)C0HBt-fwGVyoGK|%db-uUy|=Wd64Xi>mU45iyEwW&9vsWc zt>~jioZ}Ut;`yT3dU2EUav|`1{iCg-tLPIvlc0K+z9<#XMVWTj<_1Fnmv+dW!X2vV z?H>IbOvCs7nC|USHMe!zUEx0mSt=4N6DSv&H=a5>3kVQZ(sIAnYoX>v@oFp*4hcgr|xT=G6@(>leb?qflxgyyXT6Mv>G0WXVwz*dG0XszjaX z+aU3xU1%L3!V};Na6r$icEf(dHN-ecvrAq}FsT%iIDi_fV@Mu=x*~)h>6G*Zvrs(h z@G7I7{!O1{F;OHX^GgsxoX3Ox1{fqEmBUc@`7s zfG-H~qsml+UL$3P08OVHxV(vr8;FaeBfW4?+j}HK4|vk)KLw32MjM3WG4uoL7OQXe zyo4A`gze^B$@|iWB+%JPlhD!AwQX{+K=`-aVysT`GEheD!%%pqnKUN!MZf znzBO)fGIvWu!fq)6fm<}+D*1*u)g%l|slTOK@XKn-C$H z@Z3rJ?{4kVJx#oitG;Z;XsdSFz2-o$Yk6V_#Ix((b?^Uva{;`v+aOH6>JH*qCa$-t z;hX%~G5Ql00^^<=pJAK{6M^w*>%%?@MyGILmcp9$i9=-;seM0Gff&ith60XNBN#p` z3|O!a=6FK8THt6egv1J;^aTZMALoz#nTIM6fPzS%^oa;B@Jv9LxFBbW-Iub9j_mq6G{ZX*14QCU z;4wC@6-t)^1F$2IU68b0uu_3N29GgIoz@{YZ}qRi@w4KthlqJ-gp7F#Lgp;gIAz&( zJEshP3DO~oQI7dqULsH96l0dpU#x}EWRk9C$a!CJ<{**m0*t0Z zA`VrqF(+;LPSrvjk{xCajNq%AFd zwYxq%N}{lbu``Q%4FL$=K@{`r2^CufzL-J9nu`Guvi|s=%V?;lsFYeeMF>S6-TC%& zy!1u_790>pbmp{QVH{BzQ!3`Rdz)$ue0rXT`5A^ z_3Lds@cv+7zc5sr>E&MyENXq~ML45m-3oO_`NZycA$WU|SBKEDoow54SN6>lH^nqR z>)2)JLQOC5puMYKLYPxOdw@vlpVGjfyIBy3i?V=iI!p4J?XlOy+6p_ZgfReoKgwJ`!(ZVo z3u@Y%Y$YZG-hy{s9^$<|=QchlxhwGQK~HSVsD*DPrQ)A)(<_9dO!Y$sITYekY1-iU z;Nw{uGDveiFkpBNEvk73kQ>jJ4o|WNUle`)GBd9;1D!JEQs!5Tfyt6;2Zaa=eRwYvwiMw3S$I#YA7_SH@wBGHp?^^MH7MKwnW z^fKPcy}+l0yAR7o`J>l}gCkZXu&_5A_%Rc2Rm3@1h%U|bZ^&`EkPw{v>(1hzBhcRA0uS!+lfkm9@cv-HReUQi*46bHCOj*ijs7d$AE}y*PLfc-eQgX zYy&bM`*Gs%A_FImzdHuwNXcegD$dA8!z-K->>>OVZMJTWQ|`Xgt4QR**?2XA{b%Nj z=AO-Z7xT7B7u7MsDW@p~Y!avOMMQaM>de^8^2Q-a^iwQh-!jM%Ni^>V_V#3%*#hhb zO1_ZV#90wdZ@OjDWly@aFOxdGkBpnJ`7IvhAe{id5Jz`GBtzRz$bGAdP?zYJ$m*f6 zbv!tDZXvfctJ|PbdDw0J0 zTG2mP5HN%_@n}P8SXARTM*c#SrhtZksYePad=K)y_(-Q;9QU)y635C0kwSW*Cuq)#rR8ojq@MQ$bv^^K zUCC0=C^TJmj=aQpIo;D8r+IAIP9W3$?D|6>Bw=&kjo9>^3c&AOI$Cr!zRQfkBn)U* zFyrDFmk`or?id>If1=0qUO;I~Bm`}XCFsX?-Pk10!ja9r)}n8U1A6EQEW$AEo|ZIZ z=nkp&DJ+DL14_-#M7X0zpY*L^k=qWbN$^il+ALsPDRkem!mAV=p~yCtNHD1t5cW#v zXk&X19_LlCRfIXIu(7_?QESI5BkWaQK<<@V01W9ZAdhMRPq~F@=G8J>(&e(%4XzWE zOjU$;>uLyjnZR>h6(NH~M@xy>Y~FSyMpmy~_a zFOq*HdHqWNH4~3HUr^%jq^z>0sFcgsMDynIWSQ!{Yx_Y zN;p<+)N7b8wE_xP{hAd0H7N&Pma6Cczh@z%;-me7tRKZOyY!4PVcBb1fHu;iqvag({MGpw)|DVSmQi9o z!_m`U$l{JLHG-c^fazRuzS81c#eB0Nrt(yipKQwJyXAU1#?31X zcU`v_y3@n@?S|E**~kZtYG9BI=?2o9OG^uijb9uojB>%Emn#ma zF^%Lqbm|=m7LT%$q6mj~i58rEhz*xpV+kFzyIUWpgMsg{g%W+w{vsw3`)Ld)0`{tN z6uem}hF8OIdA3!W>jDs>v+Iz#GhGgma^E@Hn<`M#`!vY8kEl6M>PYbia?z=5Qkxu$ zOJnn_B7=l?Naa+9a2|&CMc7xy`WzTP?RL3Zpz918q*~^ILNnx& zgWvV>@o*bIfra$(y&?>EH?s214keDL7g6%+a`$Fv{HaQwntYWhsh_Au!{=oAb(aK;N+WB3_ab;fioEqnkB#HZJQN+`94EZ4l%>3LkN@$)3_Npd=}=`vQ1 zlW!nom~l&00p-fuBKG@d9l0&)A+bB_UQGp`1nG5}4|W334C-X*XAvR}jFKs7Ui_bv zL>@%Ak_s!2K1$?bl#720q0R|FN zGR3xU(?EQIFJL*8X8BDdhuRiij^5US6nk1KE;@bnJC=mWW2D^*M&PM=On2MpLRkY7 zD5C}|TP+o78rpGVP3>_Zcc@c*C^dTReq4xG$q0?UScr*}@Dsqdj?c_v(lB)pPOi8` z?{Jx7Rm=Nm^rqjxU>tq^icIs9<&AKu;0`jeD+UrF}T59D&!&0%z)aj`ycpud=9CZPzM2CnMN-;t%&sUayRlH>*Pz zpHG@=prG>q{NZEal63fcMn=4WgfAWT-4O!DAU@>IS2o*#uVktiA9;BgP?_ELS@euW zOo`L|_&i9QMQ;37Do~BE8abHZhRT*|0f92}o_B$lfsOHcVUYvW_D^lq8Z4{E*6)k# zq`rs-qC?@zqjN?#u1=}YVSX6%Sy{Zb(aGw}JjXN{l_jtWQ;>dC-;aDswku2TR*7iy z<_4*H|3yKhY_=+b{bzKa4KDPR8&c1xm+hrWVmRr7Sy8s zL8C#Uy!t+%M&(p7F1GY-Rj}kw?-n}tL&N(6efL6Y<-E zC96M6`_02jHHxOAmjbkxzq8}+x|yy9wP`;+yd0zVwsoDx!l&JF=i1ZR6l0Yd2SN-9A}b(1%uku+bL6qL5vs9 zh39oj8M&!O$DwqLUF5XD66|LIYgNXu)s+AI)O~`ksl>0F*MXpM0K37v9amY__)M_g zYBm^Dqs$+3+TgI{+8g8*S!I9K$BqY9t8_xc205(pRiH5n1<5`U9ty(f&22#=B0-d( z)#gWrx_Knw#Y;CwQh&@1u3NYkrPe%-E}fMTgJ^=M_p@Tq!wcU@*PHNPm~8p@?&Z8~ zOjeb5^9sh0=B}+*9TGi7>^qp`i+#7SZ?4=SLi#-`sscs`FS7$lhO)ma$g;Z3ReF8V z@!?E`6t%@mDG0v9cN>d8!*XHC>Cfw@tQ&;p@uQDId7A)6ADUJD!veE^ex}m4KwRD_ zihII-K+%f&Wyd5V8`W)DFphJi7F4B8Tc>{DW41Y!@+T7-0v$nvlVJ^lgDDAye&mj; zT`tLyk3BBsW~JcA~#Ems!^y`=lQ)|>!Q_{?9@3<{CBbPy&k4OTy2IXoa7Kn=XB8Y5g?PKCia&j3C zyYf`rRz{(Yjg=U#K91NJfgO5sI*qHgLgWGB5vSTV5d@YY4 zE4-1et@whJR_B!wE&~6MvV7W&&dj81XpN&krUwQpb4iNneLlq-NE_(~JxE!Y7Y!9=7VS}w_%gsUrFNkK!#pH|g6{JUMjnOYl(Wt&8$wU2+Xq(Su>^J-?;4DUm;7Ns2_JASB+GChf<*g8yJj)TB9D%!k9lriGk}VyqO+<%6xxV&A3_^#E zpig5B<;){V^!_0(2JqLLB~%tj#u68jppTqtGs8^#$ks{B$(qaG=phfDyvd%{9o2W! zkhDG`w6c6me`D^SE4mF8zFWU3tKDC@w2W8nkJV{9k#`QOasXBW!f_qkk7B@2QDkW+ z=GzE`SX!I4+vos4<&M}~I?T>?+^pZETtQ)o;(Vf#iaz%?}r$sWlr-C4m^w5zE zcY}qzm#!OhEz+t`R$Gxg#v!BvLAK1kxHbpJERa9%s_<}VZ+yi^TQ)susvG;vRRk3sANmJPeALAEa z>aTm*PswVLkb3-9BBR6HTg8^HpkhOIe8D)`$2xIA-_j^>njg~{0sM`%T`y8$BfMjw z2L}B60(5bm;Zuv^6v!^Mfk(sJf95Zd48hsj`@NS(kK{x!l93okE~mr2vyIZ z@vh{dLu)lza-sl=4CV?Ew>Rs=WIDXsZ=pVXfRacl+DvnsufZyE$EU&FXOv7au3wxn zu=PxdA~=u?2{zcfD54Ktr;v}vMr7BgAA@~Wz(W5*kcc;E^jN4o+tN9us*>*~<-2NC z`4JoNF^}@o9u)cskNCO6&x3S74c3n2`VYtSK2+DG!Nzx`*MN01dQfCRs^E7Q6L{zO zE2@1#=9o+q)ClwadQuYlp}G|^(LbfQl=PXL1?L0acWdxj=PJU|qkFJRtmYusPBvx9 z{zhc4$PKpq=9L6IuPwqv{)zD6g=*XUvxz14BZRen8i$FAyN2H7WPO3o3xNrVUZM+a zS68CTC449voKxQ8eY-yTvGVx!s%KR*`^V_1qm*X{N9wRF3N23jhV>r5XW*^*=1n zcH0|f3qwA@tEDeviK|>vkLyZJY)CN_U?emks7xugM(*Dp=`6U6sAU)5fkkq#+8V8m zSTA3Ub@J7HkxpZ5KKR%+Ag@AoZHYQP|xbOTv_C}5Q|v{<5N^_)9Q4uXZUcp`#L{dD-$S#?=;SAB1~7>e6C^G zz8?!7S@ERB*`mDwUHdYzT45j8@RZfAd~!1r@lEANF?#o_L!=Ke$-_>(F^qhYXtMTQ zWCzz;&wl&JQFgXnvHGp<8$Mk(0%wtkd#N~X#}iWX#H@Cmtfv;KTAKJhIZ3{)xGxeG z*(J=hm(~*;bJeP8>g5Jf&v?prCu{EZR4p~s9~o;>4${yC0pxNHQ9^_c5bPcAD&1XY zw--EKlrvMRijO?IXi+QZ$E8*3n(B~8N8=!G@y|8xE?&U?&Qp2_cz96(Qi_1SGt}SQ zXJ+(YN3&0V04(ahkb5>MiQ00 z%QgM7;f8eFRAe+Rf)69FeH~5xaQSsNY}c~>jYkFj;gnh;1cNvBa6$3zr+1Rr>S0Er zoV?%QMjYUqowk_hyJIAv0^gD0&k@F0@H+E`l)2H8H7lV!@gsb0g&vCjv3%)H9wDgY zz*b0>Tq@VBlmUwqTL>Ml%w RUbK74P_jKq3xClXN&7#`MueR2;Ug{j+YZ1&tyN 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 Date: Wed, 28 Apr 2021 22:25:36 +0200 Subject: [PATCH 03/10] RED-1186: replacing placeholders in documents; TODO: adding entries to tables --- .../service/WordReportGenerationService.java | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index 4b451f6..b063c2a 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -121,15 +121,36 @@ public class WordReportGenerationService { XWPFTable table = getTableWithPlaceholder(doc); for (XWPFTableRow row : table.getRows()) { - XWPFTableRow newRow = table.createRow(); - for (int i=0; i { + for (int i = 0; i < row.getTableCells().size(); i++) { + System.out.println(row.getCell(i).getText()); + String cellText = row.getCell(i).getText(); + if(containsPlaceholder(cellText)) { + final int j = i; + XWPFTableRow newRow = table.createRow(); + if (row.getCell(j).getText().contains(FILENAME_PLACEHOLDER)) { + setText(newRow.getCell(j), filename); + break; + } + if (row.getCell(j).getText().contains(PAGE_PLACEHOLDER)) { + setText(newRow.getCell(j), String.valueOf(entry.getPage())); + break; + } + if (row.getCell(j).getText().contains(PARAGRAPH_PLACEHOLDER)) { + setText(newRow.getCell(j), entry.getSection()); + break; + } + if (row.getCell(j).getText().contains(REASON_PLACEHOLDER)) { + setText(newRow.getCell(j), entry.getJustification()); + break; + } + System.out.println(row.getCell(j).getText()); + + } } - if(row.getTableCells().get(i).getText().contains(PAGE_PLACEHOLDER)) { - setText(row.getCell(i), String.valueOf(reportEntries.getPage())); - } - } + }); } @@ -140,15 +161,17 @@ public class WordReportGenerationService { setText(row.getCell(1), String.valueOf(entry.getPage())); setText(row.getCell(2), entry.getSection()); setText(row.getCell(3), entry.getJustification()); + System.out.println(row); }); } private int getCell(XWPFTableRow row,String placeholder) { for (int i=0; i Date: Mon, 3 May 2021 13:27:24 +0200 Subject: [PATCH 04/10] RED-1186: replacing placeholders for texts, images, date and time --- .../pom.xml | 5 + .../v1/server/client/DatePlaceholder.java | 13 ++ .../v1/server/client/ImagePlaceholder.java | 11 + .../v1/server/client/PlaceholderClient.java | 4 +- .../report/v1/server/client/Placeholders.java | 18 ++ .../v1/server/client/TimePlaceholder.java | 14 ++ .../service/WordReportGenerationService.java | 215 ++++++++++++------ ...anitisation justification Appendix A1.docx | Bin 78621 -> 78726 bytes .../RedactionReportIntegrationTest.java | 26 ++- .../src/test/resources/files/exampleImage.jpg | Bin 0 -> 18122 bytes 10 files changed, 231 insertions(+), 75 deletions(-) create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/files/exampleImage.jpg diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml index 72d25f7..1081cc7 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml @@ -68,6 +68,11 @@ com.iqser.red.commons metric-commons + + org.apache.commons + commons-lang3 + + diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java new file mode 100644 index 0000000..68a1d7e --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java @@ -0,0 +1,13 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalDate; + +@Data +@Builder +public class DatePlaceholder { + String placeholder; + LocalDate date; +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java new file mode 100644 index 0000000..00ecabe --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java @@ -0,0 +1,11 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class ImagePlaceholder { + private String placeholder; + private byte[] image; +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java index a016b36..4f8c043 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java @@ -1,11 +1,9 @@ package com.iqser.red.service.redaction.report.v1.server.client; -import java.util.List; - import org.springframework.cloud.openfeign.FeignClient; @FeignClient(name = "PlaceholderResource", url = "${configuration-service.url}") public interface PlaceholderClient { - List getPlaceholders(); + Placeholders getPlaceholders(); } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java new file mode 100644 index 0000000..2523955 --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java @@ -0,0 +1,18 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Placeholders { + private List textPlaceholders = new ArrayList<>(); + private List imagePlaceholders = new ArrayList<>(); + private List datePlaceholders = new ArrayList<>(); + private List timePlaceholders = new ArrayList<>(); +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java new file mode 100644 index 0000000..7e545d8 --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java @@ -0,0 +1,14 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalTime; +import java.time.OffsetTime; + +@Data +@Builder +public class TimePlaceholder { + String placeholder; + LocalTime time; +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index b063c2a..82c88f9 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -3,17 +3,20 @@ package com.iqser.red.service.redaction.report.v1.server.service; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.List; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.*; import java.util.regex.Pattern; import javax.annotation.PostConstruct; +import com.iqser.red.service.redaction.report.v1.server.client.*; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.util.Units; import org.apache.poi.xwpf.usermodel.*; import org.springframework.stereotype.Service; import com.iqser.red.service.redaction.report.v1.api.model.ReportType; -import com.iqser.red.service.redaction.report.v1.server.client.Placeholder; -import com.iqser.red.service.redaction.report.v1.server.client.PlaceholderClient; import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; import com.iqser.red.service.redaction.report.v1.server.utils.ResourceLoader; @@ -29,8 +32,7 @@ public class WordReportGenerationService { public static final String FILENAME_PLACEHOLDER = "{{redaction.filename}}"; public static final String PAGE_PLACEHOLDER = "{{redaction.page}}"; public static final String PARAGRAPH_PLACEHOLDER = "{{redaction.paragraph}}"; - public static final String LEGALBASIS_PLACEHOLDER = "{{redaction.legalBasis}}"; - public static final String REASON_PLACEHOLDER = "{{redaction.reason}}"; + public static final String JUSTIFICATION_PLACEHOLDER = "{{redaction.justification}}"; @PostConstruct public void init() { @@ -42,9 +44,7 @@ public class WordReportGenerationService { public byte[] generateReport(ReportType reportType, List reportEntries, String filename) { - - List placeholders = placeholderClient.getPlaceholders(); - + Placeholders placeholders = placeholderClient.getPlaceholders(); byte[] template; @@ -58,8 +58,17 @@ public class WordReportGenerationService { try (ByteArrayInputStream is = new ByteArrayInputStream(template)) { XWPFDocument doc = new XWPFDocument(is); - for (Placeholder placeholder: placeholders) { - replacePlaceholders(doc,placeholder.getPlaceholder(),placeholder.getValue()); + for (ImagePlaceholder imagePlaceholder: placeholders.getImagePlaceholders()){ + replaceImagePlaceholders(doc, imagePlaceholder); + } + for (Placeholder placeholder : placeholders.getTextPlaceholders()) { + replaceTextPlaceholders(doc, placeholder.getPlaceholder(), placeholder.getValue()); + } + for (DatePlaceholder datePlaceholder: placeholders.getDatePlaceholders()) { + replaceDatePlaceholder(doc, datePlaceholder.getPlaceholder()); + } + for (TimePlaceholder timePlaceholder: placeholders.getTimePlaceholders()) { + replaceTimePlaceholder(doc, timePlaceholder.getPlaceholder()); } addTableRows(doc, reportEntries, filename); return toByteArray(doc); @@ -70,108 +79,178 @@ public class WordReportGenerationService { } } - public void replacePlaceholders(XWPFDocument doc, String search, String replace) { - replaceParagraph(doc.getParagraphs(), search, replace); + private void replaceTimePlaceholder(XWPFDocument doc, String timePlaceholder) { + replaceParagraphForTimePlaceholder(doc.getParagraphs(), timePlaceholder); for (XWPFTable tbl : doc.getTables()) { for (XWPFTableRow row : tbl.getRows()) { for (XWPFTableCell cell : row.getTableCells()) { - replaceParagraph(cell.getParagraphs(), search, replace); + replaceParagraphForTimePlaceholder(cell.getParagraphs(), timePlaceholder); } } } } - private void replaceParagraph(List paragraphs, String search, String replace) { + private void replaceParagraphForTimePlaceholder(List paragraphs, String timePlaceholder) { for (XWPFParagraph p : paragraphs) { String paragraphText = p.getText(); - if(paragraphText.contains(search)) { - String safeToUseInReplaceAllString = Pattern.quote(search); + if (paragraphText.contains(timePlaceholder)) { + String safeToUseInReplaceAllString = Pattern.quote(timePlaceholder); +// String replace = timePlaceholder.substring(timePlaceholder.length()-7, timePlaceholder.length()-2); + String replace = OffsetDateTime.now().truncatedTo(ChronoUnit.MINUTES).toLocalTime().toString(); paragraphText = paragraphText.replaceAll(safeToUseInReplaceAllString, replace); XWPFRun run = p.getRuns().get(0); - run.setText(paragraphText,0); + run.setText(paragraphText, 0); int size = p.getRuns().size(); - for(int i=1; i paragraphs, String datePlaceholder) { + for (XWPFParagraph p : paragraphs) { + String paragraphText = p.getText(); + if (paragraphText.contains(datePlaceholder)) { + String safeToUseInReplaceAllString = Pattern.quote(datePlaceholder); +// String replace = datePlaceholder.substring(datePlaceholder.length()-12, datePlaceholder.length()-2); + String replace = OffsetDateTime.now().toLocalDate().toString(); + paragraphText = paragraphText.replaceAll(safeToUseInReplaceAllString, replace); + XWPFRun run = p.getRuns().get(0); + run.setText(paragraphText, 0); + int size = p.getRuns().size(); + for (int i = 1; i < size; i++) { + p.removeRun(1); + } + } + } + } + + private void replaceImagePlaceholders(XWPFDocument doc, ImagePlaceholder imagePlaceholder) { + replaceParagraphForImagePlaceholder(doc.getParagraphs(), imagePlaceholder); + for (XWPFTable tbl: doc.getTables()) { + for (XWPFTableRow row: tbl.getRows()) { + for (XWPFTableCell cell : row.getTableCells()) { + replaceParagraphForImagePlaceholder(cell.getParagraphs(), imagePlaceholder); + } + } + } + } + + private void replaceParagraphForImagePlaceholder(List paragraphs, ImagePlaceholder imagePlaceholder) { + for (XWPFParagraph p : paragraphs) { + String paragraphText = p.getText(); + if (paragraphText.contains(imagePlaceholder.getPlaceholder())) { + try (ByteArrayInputStream is2 = new ByteArrayInputStream(imagePlaceholder.getImage())) { + XWPFRun run = p.getRuns().get(0); + run.setText("", 0); + run.addBreak(); + run.addPicture(is2, XWPFDocument.PICTURE_TYPE_JPEG, "image.jpg", Units.toEMU(200), Units.toEMU(200)); // 200x200 pixels + } catch (IOException | InvalidFormatException e) { + throw new RuntimeException(e); + } + } + } + } + + public void replaceTextPlaceholders(XWPFDocument doc, String search, String replace) { + replaceParagraphForTextPlaceholder(doc.getParagraphs(), search, replace); + for (XWPFTable tbl : doc.getTables()) { + for (XWPFTableRow row : tbl.getRows()) { + for (XWPFTableCell cell : row.getTableCells()) { + replaceParagraphForTextPlaceholder(cell.getParagraphs(), search, replace); + } + } + } + } + + private void replaceParagraphForTextPlaceholder(List paragraphs, String search, String replace) { + for (XWPFParagraph p : paragraphs) { + String paragraphText = p.getText(); + if (paragraphText.contains(search)) { + String safeToUseInReplaceAllString = Pattern.quote(search); + paragraphText = paragraphText.replaceAll(safeToUseInReplaceAllString, replace); + XWPFRun run = p.getRuns().get(0); + run.setText(paragraphText, 0); + int size = p.getRuns().size(); + for (int i = 1; i < size; i++) { + p.removeRun(1); + } + } + } + } + + private XWPFTable getTableWithTextPlaceholder(XWPFDocument doc) { for (XWPFTable tbl : doc.getTables()) { String tblText = tbl.getText(); - if(containsPlaceholder(tblText)) { + if (containsTextPlaceholder(tblText)) { return tbl; } } return null; } - private boolean containsPlaceholder(String place) { + private boolean containsTextPlaceholder(String place) { return place.contains(FILENAME_PLACEHOLDER) || place.contains(PAGE_PLACEHOLDER) || place.contains(PARAGRAPH_PLACEHOLDER) - || place.contains(LEGALBASIS_PLACEHOLDER) - || place.contains(REASON_PLACEHOLDER); + || place.contains(JUSTIFICATION_PLACEHOLDER); } private void addTableRows(XWPFDocument doc, List reportEntries, String filename) { + List finalPlaceholders = new ArrayList<>(); + finalPlaceholders.addAll(Arrays.asList(FILENAME_PLACEHOLDER, PAGE_PLACEHOLDER, PARAGRAPH_PLACEHOLDER, JUSTIFICATION_PLACEHOLDER)); - //XWPFTable table = doc.getTables().get(1); - XWPFTable table = getTableWithPlaceholder(doc); + XWPFTable table = getTableWithTextPlaceholder(doc); + Map placeholderCellPos = new HashMap<>(); - for (XWPFTableRow row : table.getRows()) { -// if (row.getCell()) - - reportEntries.forEach(entry -> { - for (int i = 0; i < row.getTableCells().size(); i++) { - System.out.println(row.getCell(i).getText()); - String cellText = row.getCell(i).getText(); - if(containsPlaceholder(cellText)) { - final int j = i; - XWPFTableRow newRow = table.createRow(); - if (row.getCell(j).getText().contains(FILENAME_PLACEHOLDER)) { - setText(newRow.getCell(j), filename); - break; - } - if (row.getCell(j).getText().contains(PAGE_PLACEHOLDER)) { - setText(newRow.getCell(j), String.valueOf(entry.getPage())); - break; - } - if (row.getCell(j).getText().contains(PARAGRAPH_PLACEHOLDER)) { - setText(newRow.getCell(j), entry.getSection()); - break; - } - if (row.getCell(j).getText().contains(REASON_PLACEHOLDER)) { - setText(newRow.getCell(j), entry.getJustification()); - break; - } - System.out.println(row.getCell(j).getText()); - - } + int placeholderRow = -1; + for (int j=0; j replaceParagraphForTextPlaceholder(cell.getParagraphs(), ph, ph)); + if (containsTextPlaceholder(cell.getText())) { + placeholderCellPos.put(i, cell.getText()); + placeholderRow = j; } - }); + } + } + table.removeRow(placeholderRow); - - //Zelle anhand placeholder und value ebenso reportEntries.forEach(entry -> { XWPFTableRow row = table.createRow(); - setText(row.getCell(0), filename); - setText(row.getCell(1), String.valueOf(entry.getPage())); - setText(row.getCell(2), entry.getSection()); - setText(row.getCell(3), entry.getJustification()); - System.out.println(row); + for(Map.Entry entry1: placeholderCellPos.entrySet()) { + setText(row.getCell(entry1.getKey()), replaceTextPlaceholderWithEntries(entry, filename, entry1.getValue())); + } }); } - private int getCell(XWPFTableRow row,String placeholder) { - for (int i=0; i!1a6Ad*AoY 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

W%agi0Z6LN~dVp&ZFxGOYf|?xlki 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⁡ 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 JHSYfa|Jn1&q>lgq literal 0 HcmV?d00001 From 0ff4970da23b5548aaff85b90f21a0be79d7ccc3 Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Tue, 4 May 2021 10:13:46 +0200 Subject: [PATCH 05/10] RED-1186: replacing placeholders for texts, images, date and time --- .../pom.xml | 6 ++ .../v1/server/client/DatePlaceholder.java | 13 ---- .../server/client/FileAttributesClient.java | 8 +++ .../v1/server/client/ImagePlaceholder.java | 11 ---- .../report/v1/server/client/Placeholder.java | 13 ---- .../v1/server/client/PlaceholderClient.java | 9 --- .../report/v1/server/client/Placeholders.java | 18 ------ .../v1/server/client/TimePlaceholder.java | 14 ----- .../service/ReportGenerationService.java | 4 +- .../service/WordReportGenerationService.java | 58 ++++++++++++++++-- ...anitisation justification Appendix A1.docx | Bin 78726 -> 78520 bytes .../RedactionReportIntegrationTest.java | 23 ++++--- 12 files changed, 86 insertions(+), 91 deletions(-) delete mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/FileAttributesClient.java delete mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java delete mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java delete mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java delete mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java delete mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml index 1081cc7..e446697 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml @@ -87,6 +87,12 @@ 2.3.1 test + + com.iqser.red.service + configuration-service-api-v1 + 1.0-SNAPSHOT + compile + diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java deleted file mode 100644 index 68a1d7e..0000000 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/DatePlaceholder.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.iqser.red.service.redaction.report.v1.server.client; - -import lombok.Builder; -import lombok.Data; - -import java.time.LocalDate; - -@Data -@Builder -public class DatePlaceholder { - String placeholder; - LocalDate date; -} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/FileAttributesClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/FileAttributesClient.java new file mode 100644 index 0000000..9d7cdd3 --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/FileAttributesClient.java @@ -0,0 +1,8 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import com.iqser.red.service.configuration.v1.api.resource.FileAttributesResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "FileAttributesResource", url = "${configuration-service.url}") +public interface FileAttributesClient extends FileAttributesResource { +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java deleted file mode 100644 index 00ecabe..0000000 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ImagePlaceholder.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.iqser.red.service.redaction.report.v1.server.client; - -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class ImagePlaceholder { - private String placeholder; - private byte[] image; -} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java deleted file mode 100644 index 0ad800f..0000000 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholder.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.iqser.red.service.redaction.report.v1.server.client; - -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class Placeholder { - - private String placeholder; - private String value; - -} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java deleted file mode 100644 index 4f8c043..0000000 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/PlaceholderClient.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.iqser.red.service.redaction.report.v1.server.client; - -import org.springframework.cloud.openfeign.FeignClient; - -@FeignClient(name = "PlaceholderResource", url = "${configuration-service.url}") -public interface PlaceholderClient { - - Placeholders getPlaceholders(); -} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java deleted file mode 100644 index 2523955..0000000 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/Placeholders.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.iqser.red.service.redaction.report.v1.server.client; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.ArrayList; -import java.util.List; - -@Data -@NoArgsConstructor -@AllArgsConstructor -public class Placeholders { - private List textPlaceholders = new ArrayList<>(); - private List imagePlaceholders = new ArrayList<>(); - private List datePlaceholders = new ArrayList<>(); - private List timePlaceholders = new ArrayList<>(); -} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java deleted file mode 100644 index 7e545d8..0000000 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/TimePlaceholder.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.iqser.red.service.redaction.report.v1.server.client; - -import lombok.Builder; -import lombok.Data; - -import java.time.LocalTime; -import java.time.OffsetTime; - -@Data -@Builder -public class TimePlaceholder { - String placeholder; - LocalTime time; -} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java index 6f136fb..1c3ec6d 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java @@ -69,14 +69,14 @@ public class ReportGenerationService { if (reportMessage.getReportTypes().contains(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)) { byte[] wordEFSATemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, reportEntries, redactionLog - .getFilename()); + .getFilename(), redactionLog.getRuleSetId()); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), wordEFSATemplate); storedFileInformation.add(new StoredFileInformation(fileId, redactionLog.getFilename(), storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)); } if (reportMessage.getReportTypes().contains(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)) { byte[] wordSyngentaTemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, reportEntries, redactionLog - .getFilename()); + .getFilename(), redactionLog.getRuleSetId()); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), wordSyngentaTemplate); storedFileInformation.add(new StoredFileInformation(fileId, redactionLog.getFilename(), storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)); } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index 82c88f9..83be349 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -3,13 +3,16 @@ package com.iqser.red.service.redaction.report.v1.server.service; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.time.LocalDate; import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.regex.Pattern; import javax.annotation.PostConstruct; +import com.iqser.red.service.configuration.v1.api.model.FileAttributesConfig; import com.iqser.red.service.redaction.report.v1.server.client.*; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.util.Units; @@ -28,12 +31,27 @@ public class WordReportGenerationService { private byte[] appendixA1Template; private byte[] appendixA2Template; - private PlaceholderClient placeholderClient; - public static final String FILENAME_PLACEHOLDER = "{{redaction.filename}}"; + private FileAttributesClient fileAttributesClient; + + public static final String FILE_NAME_PLACEHOLDER = "{{file.name}}"; public static final String PAGE_PLACEHOLDER = "{{redaction.page}}"; public static final String PARAGRAPH_PLACEHOLDER = "{{redaction.paragraph}}"; public static final String JUSTIFICATION_PLACEHOLDER = "{{redaction.justification}}"; + public static final DateTimeFormatter FORMAT_DATE_ISO = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + public static final DateTimeFormatter FORMAT_DATE_GER = DateTimeFormatter.ofPattern("dd.MM.yyyy"); + public static final DateTimeFormatter FORMAT_DATE_ENG = DateTimeFormatter.ofPattern("MM/dd/yyyy"); + public static final DateTimeFormatter FORMAT_TIME_ISO = DateTimeFormatter.ofPattern("HH:mm"); + + public static final String FORMAT_DATE_ISO_PLACEHOLDER = "{{date.yyyy-MM-dd}}"; + public static final String FORMAT_DATE_GER_PLACEHOLDER = "{{date.dd.MM.yyyy}}"; + public static final String FORMAT_DATE_ENG_PLACEHOLDER = "{{date.MM/dd/yyyy}}"; + public static final String FORMAT_TIME_ISO_PLACEHOLDER = "{{time.HH:mm}}"; + + public static final String DOSSIER_NAME_PLACEHOLDER = "{{dossier.name}}"; + + List placeholders = List.of(FILE_NAME_PLACEHOLDER, FORMAT_DATE_ISO_PLACEHOLDER, FORMAT_DATE_GER_PLACEHOLDER, FORMAT_DATE_ENG_PLACEHOLDER, FORMAT_TIME_ISO_PLACEHOLDER, DOSSIER_NAME_PLACEHOLDER); + @PostConstruct public void init() { @@ -42,9 +60,15 @@ public class WordReportGenerationService { } - public byte[] generateReport(ReportType reportType, List reportEntries, String filename) { + public byte[] generateReport(ReportType reportType, List reportEntries, String filename, String ruleSetId) { - Placeholders placeholders = placeholderClient.getPlaceholders(); + Map placeholders = new HashMap<>(); + + FileAttributesConfig fileAttributesConfig = fileAttributesClient.getFileAttributes(ruleSetId); + fileAttributesConfig.getFileAttributeConfigs().forEach(fileAttributeConfig -> { + String placeholder = "{{file.attribute" + fileAttributeConfig.getLabel().replace(" ", "-").toLowerCase(Locale.ROOT) + "}}"; + placeholders.put(placeholder, fileAttributeConfig.getId()); + }); byte[] template; @@ -58,6 +82,10 @@ public class WordReportGenerationService { try (ByteArrayInputStream is = new ByteArrayInputStream(template)) { XWPFDocument doc = new XWPFDocument(is); + for(String placeholder: placeholders) { + replaceTextPlaceholders(doc, placeholder, getPlaceholderValue(placeholder, , , placeholders)); + + } for (ImagePlaceholder imagePlaceholder: placeholders.getImagePlaceholders()){ replaceImagePlaceholders(doc, imagePlaceholder); } @@ -79,6 +107,28 @@ public class WordReportGenerationService { } } + private String getPlaceholderValue(String placeholder, String dossierName, String fileName, Map placeholders) { + if (placeholder.equals(FORMAT_DATE_ISO_PLACEHOLDER)) { + return OffsetDateTime.now().format(FORMAT_DATE_ISO); + } + if (placeholder.equals(FORMAT_DATE_GER_PLACEHOLDER)) { + return OffsetDateTime.now().format(FORMAT_DATE_GER); + } + if (placeholder.equals(FORMAT_DATE_ENG_PLACEHOLDER)) { + return OffsetDateTime.now().format(FORMAT_DATE_ENG); + } + if (placeholder.equals(FORMAT_TIME_ISO_PLACEHOLDER)) { + return OffsetDateTime.now().format(FORMAT_TIME_ISO); + } + if (placeholder.equals(DOSSIER_NAME_PLACEHOLDER)) { + return dossierName; + } + if (placeholder.equals(FILE_NAME_PLACEHOLDER)) { + return fileName; + } + return null; + } + private void replaceTimePlaceholder(XWPFDocument doc, String timePlaceholder) { replaceParagraphForTimePlaceholder(doc.getParagraphs(), timePlaceholder); for (XWPFTable tbl : doc.getTables()) { diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx index 26254825c082ba3a5517076fdbfd622c12dc9307..c04fdadb76ee3f34a2e6fad3b45664755113e440 100644 GIT binary patch delta 10039 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 diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java index bb167ba..c8d2f17 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java @@ -14,6 +14,7 @@ import java.util.List; import com.amazonaws.util.IOUtils; import com.iqser.red.service.redaction.report.v1.server.client.*; +import org.apache.commons.lang3.StringUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; @@ -76,16 +77,24 @@ public class RedactionReportIntegrationTest { byte[] image = IOUtils.toByteArray(imageRessource.getInputStream()); - DateTimeFormatter formatDate = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatTime = DateTimeFormatter.ofPattern("HH:mm"); + DateTimeFormatter formatDateTime = DateTimeFormatter.ISO_DATE_TIME; + String placeholder = "{{now.yyyy-MM-dd}}"; + String placeholder2 = "{{now.HH:mm}}"; + + String format = placeholder.replace("{{now.", "").replace("}}", ""); + String format2 = placeholder2.replace("{{now.", "").replace("}}", ""); + + if (StringUtils.isNotBlank(format)) { + formatDateTime = DateTimeFormatter.ofPattern(format); + } + + var now = OffsetDateTime.now(); Placeholders placeholders = new Placeholders(List.of(Placeholder.builder().placeholder("{{dossier.name}}").value("Dossier 1").build()), - List.of(ImagePlaceholder.builder().image(image).placeholder("{{dossier.image}}").build()), - List.of(DatePlaceholder.builder().placeholder("{{date.now.1903-03-19}}").date(LocalDate.from((formatDate.parse("1903-03-19")))).build(), - DatePlaceholder.builder().placeholder("{{date.now.yyyy-MM-dd}}").date(LocalDate.from(now.toLocalDate())).build()), - List.of(TimePlaceholder.builder().placeholder("{{time.now.19:03}}").time(LocalTime.from(formatTime.parse("19:03"))).build(), - TimePlaceholder.builder().placeholder("{{time.now.HH:mm}}").time(LocalTime.from(now.truncatedTo(ChronoUnit.MINUTES).toLocalTime())).build()) + List.of(ImagePlaceholder.builder().placeholder("{{dossier.image}}").image(image).build()), + List.of(DatePlaceholder.builder().placeholder("{{date.now.yyyy-MM-dd}}").date(LocalDate.from(now.toLocalDate())).build()), + List.of(TimePlaceholder.builder().placeholder("{{time.now.HH:mm}}").time(LocalTime.from(now.truncatedTo(ChronoUnit.MINUTES).toLocalTime())).build()) ); when(placeholderClient.getPlaceholders()).thenReturn(placeholders); From 5c3f69e0058d4ee84a1f9885e08484e9710fcebf Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Tue, 4 May 2021 11:53:13 +0200 Subject: [PATCH 06/10] RED-1186: updates --- .../v1/server/client/ProjectClient.java | 9 + .../service/ReportGenerationService.java | 13 +- .../service/WordReportGenerationService.java | 208 ++++++------------ ...anitisation justification Appendix A1.docx | Bin 78520 -> 78566 bytes .../RedactionReportIntegrationTest.java | 30 ++- 5 files changed, 116 insertions(+), 144 deletions(-) create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ProjectClient.java diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ProjectClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ProjectClient.java new file mode 100644 index 0000000..81c19c8 --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ProjectClient.java @@ -0,0 +1,9 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import com.iqser.red.service.file.management.v1.api.resources.ProjectResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "ProjectResource", url = "${file-management-service.url}") +public interface ProjectClient extends ProjectResource { + +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java index a254cf6..3fa73e4 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java @@ -2,11 +2,13 @@ package com.iqser.red.service.redaction.report.v1.server.service; import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping; import com.iqser.red.service.file.management.v1.api.model.FileStatus; +import com.iqser.red.service.file.management.v1.api.model.Project; import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage; import com.iqser.red.service.redaction.report.v1.api.model.ReportType; import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation; import com.iqser.red.service.redaction.report.v1.server.client.FileStatusClient; import com.iqser.red.service.redaction.report.v1.server.client.LegalBasisMappingClient; +import com.iqser.red.service.redaction.report.v1.server.client.ProjectClient; import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService; import com.iqser.red.service.redaction.v1.model.RedactionLog; @@ -31,6 +33,7 @@ public class ReportGenerationService { private final LegalBasisMappingClient legalBasisMappingClient; private final RedactionLogConverterService redactionLogConverterService; private final FileStatusClient fileStatusClient; + private final ProjectClient projectClient; public List generateReport(ReportRequestMessage reportMessage) { @@ -47,6 +50,8 @@ public class ReportGenerationService { List storedFileInformation = new ArrayList<>(); + Project project = projectClient.getProjectById(reportMessage.getProjectId()); + int i = 1; for (String fileId : reportMessage.getFileIds()) { @@ -71,15 +76,15 @@ public class ReportGenerationService { } if (reportMessage.getReportTypes().contains(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)) { - byte[] wordEFSATemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, reportEntries, fileStatus - .getFilename()); + byte[] wordEFSATemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, + reportEntries, redactionLog.getRuleSetId(), fileStatus, project); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), wordEFSATemplate); storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)); } if (reportMessage.getReportTypes().contains(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)) { - byte[] wordSyngentaTemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, reportEntries, fileStatus - .getFilename()); + byte[] wordSyngentaTemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, + reportEntries, redactionLog.getRuleSetId(), fileStatus, project); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), wordSyngentaTemplate); storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)); } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index 83be349..642ed1b 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -1,29 +1,24 @@ package com.iqser.red.service.redaction.report.v1.server.service; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.time.LocalDate; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.*; -import java.util.regex.Pattern; - -import javax.annotation.PostConstruct; - import com.iqser.red.service.configuration.v1.api.model.FileAttributesConfig; -import com.iqser.red.service.redaction.report.v1.server.client.*; -import org.apache.poi.openxml4j.exceptions.InvalidFormatException; -import org.apache.poi.util.Units; +import com.iqser.red.service.file.management.v1.api.model.FileStatus; +import com.iqser.red.service.file.management.v1.api.model.Project; +import com.iqser.red.service.redaction.report.v1.api.model.ReportType; +import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesClient; +import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; +import com.iqser.red.service.redaction.report.v1.server.utils.ResourceLoader; +import lombok.RequiredArgsConstructor; import org.apache.poi.xwpf.usermodel.*; import org.springframework.stereotype.Service; -import com.iqser.red.service.redaction.report.v1.api.model.ReportType; -import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; -import com.iqser.red.service.redaction.report.v1.server.utils.ResourceLoader; - -import lombok.RequiredArgsConstructor; +import javax.annotation.PostConstruct; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.regex.Pattern; @Service @RequiredArgsConstructor @@ -31,7 +26,7 @@ public class WordReportGenerationService { private byte[] appendixA1Template; private byte[] appendixA2Template; - private FileAttributesClient fileAttributesClient; + private final FileAttributesClient fileAttributesClient; public static final String FILE_NAME_PLACEHOLDER = "{{file.name}}"; public static final String PAGE_PLACEHOLDER = "{{redaction.page}}"; @@ -50,25 +45,19 @@ public class WordReportGenerationService { public static final String DOSSIER_NAME_PLACEHOLDER = "{{dossier.name}}"; - List placeholders = List.of(FILE_NAME_PLACEHOLDER, FORMAT_DATE_ISO_PLACEHOLDER, FORMAT_DATE_GER_PLACEHOLDER, FORMAT_DATE_ENG_PLACEHOLDER, FORMAT_TIME_ISO_PLACEHOLDER, DOSSIER_NAME_PLACEHOLDER); - @PostConstruct public void init() { appendixA1Template = ResourceLoader.load("templates/Sanitisation justification Appendix A1.docx"); appendixA2Template = ResourceLoader.load("templates/Sanitisation justification Appendix A2.docx"); + } - public byte[] generateReport(ReportType reportType, List reportEntries, String filename, String ruleSetId) { - - Map placeholders = new HashMap<>(); - - FileAttributesConfig fileAttributesConfig = fileAttributesClient.getFileAttributes(ruleSetId); - fileAttributesConfig.getFileAttributeConfigs().forEach(fileAttributeConfig -> { - String placeholder = "{{file.attribute" + fileAttributeConfig.getLabel().replace(" ", "-").toLowerCase(Locale.ROOT) + "}}"; - placeholders.put(placeholder, fileAttributeConfig.getId()); - }); + public byte[] generateReport(ReportType reportType, List reportEntries, String ruleSetId, FileStatus fileStatus, Project project) { + List placeholders = getDefaultPlaceholders(); + Map fileAttributePlaceholders = getFileAttributePlaceholders(ruleSetId); + placeholders.addAll(fileAttributePlaceholders.keySet()); byte[] template; @@ -82,23 +71,10 @@ public class WordReportGenerationService { try (ByteArrayInputStream is = new ByteArrayInputStream(template)) { XWPFDocument doc = new XWPFDocument(is); + addTableRows(doc, reportEntries, fileStatus.getFilename()); for(String placeholder: placeholders) { - replaceTextPlaceholders(doc, placeholder, getPlaceholderValue(placeholder, , , placeholders)); - + replaceTextPlaceholders(doc, placeholder, getPlaceholderValue(placeholder, project, fileStatus, fileAttributePlaceholders)); } - for (ImagePlaceholder imagePlaceholder: placeholders.getImagePlaceholders()){ - replaceImagePlaceholders(doc, imagePlaceholder); - } - for (Placeholder placeholder : placeholders.getTextPlaceholders()) { - replaceTextPlaceholders(doc, placeholder.getPlaceholder(), placeholder.getValue()); - } - for (DatePlaceholder datePlaceholder: placeholders.getDatePlaceholders()) { - replaceDatePlaceholder(doc, datePlaceholder.getPlaceholder()); - } - for (TimePlaceholder timePlaceholder: placeholders.getTimePlaceholders()) { - replaceTimePlaceholder(doc, timePlaceholder.getPlaceholder()); - } - addTableRows(doc, reportEntries, filename); return toByteArray(doc); } catch (IOException e) { throw new RuntimeException(e); @@ -107,7 +83,24 @@ public class WordReportGenerationService { } } - private String getPlaceholderValue(String placeholder, String dossierName, String fileName, Map placeholders) { + private List getDefaultPlaceholders() { + List defPlaceholders = new ArrayList<>(); + defPlaceholders.addAll(Arrays.asList(FILE_NAME_PLACEHOLDER, FORMAT_DATE_ISO_PLACEHOLDER, FORMAT_DATE_GER_PLACEHOLDER, FORMAT_DATE_ENG_PLACEHOLDER, FORMAT_TIME_ISO_PLACEHOLDER, DOSSIER_NAME_PLACEHOLDER)); + return defPlaceholders; + } + + private Map getFileAttributePlaceholders(String ruleSetId) { + Map fileAttributePlaceholders = new HashMap<>(); + + FileAttributesConfig fileAttributesConfig = fileAttributesClient.getFileAttributes(ruleSetId); + fileAttributesConfig.getFileAttributeConfigs().forEach(fileAttributeConfig -> { + String fileAttributePlaceholderName = "{{file.attribute." + fileAttributeConfig.getLabel().replace(" ", "-").toLowerCase(Locale.ROOT) + "}}"; + fileAttributePlaceholders.put(fileAttributePlaceholderName, fileAttributeConfig.getId()); + }); + return fileAttributePlaceholders; + } + + private String getPlaceholderValue(String placeholder, Project project, FileStatus fileStatus, Map fileAttributePlaceholders) { if (placeholder.equals(FORMAT_DATE_ISO_PLACEHOLDER)) { return OffsetDateTime.now().format(FORMAT_DATE_ISO); } @@ -121,84 +114,19 @@ public class WordReportGenerationService { return OffsetDateTime.now().format(FORMAT_TIME_ISO); } if (placeholder.equals(DOSSIER_NAME_PLACEHOLDER)) { - return dossierName; + return project.getProjectName(); } if (placeholder.equals(FILE_NAME_PLACEHOLDER)) { - return fileName; + return fileStatus.getFilename(); } - return null; + if (fileAttributePlaceholders.containsKey(placeholder)) { + String id = fileAttributePlaceholders.get(placeholder); + return fileStatus.getFileAttributes().getAttributeIdToValue().get(id); + } + throw new RuntimeException("unknown placeholder"); } - private void replaceTimePlaceholder(XWPFDocument doc, String timePlaceholder) { - replaceParagraphForTimePlaceholder(doc.getParagraphs(), timePlaceholder); - for (XWPFTable tbl : doc.getTables()) { - for (XWPFTableRow row : tbl.getRows()) { - for (XWPFTableCell cell : row.getTableCells()) { - replaceParagraphForTimePlaceholder(cell.getParagraphs(), timePlaceholder); - } - } - } - } - - private void replaceParagraphForTimePlaceholder(List paragraphs, String timePlaceholder) { - for (XWPFParagraph p : paragraphs) { - String paragraphText = p.getText(); - if (paragraphText.contains(timePlaceholder)) { - String safeToUseInReplaceAllString = Pattern.quote(timePlaceholder); -// String replace = timePlaceholder.substring(timePlaceholder.length()-7, timePlaceholder.length()-2); - String replace = OffsetDateTime.now().truncatedTo(ChronoUnit.MINUTES).toLocalTime().toString(); - paragraphText = paragraphText.replaceAll(safeToUseInReplaceAllString, replace); - XWPFRun run = p.getRuns().get(0); - run.setText(paragraphText, 0); - int size = p.getRuns().size(); - for (int i = 1; i < size; i++) { - p.removeRun(1); - } - } - } - } - - private void replaceDatePlaceholder(XWPFDocument doc, String datePlaceholder) { - replaceParagraphForDatePlaceholder(doc.getParagraphs(), datePlaceholder); - for (XWPFTable tbl : doc.getTables()) { - for (XWPFTableRow row : tbl.getRows()) { - for (XWPFTableCell cell : row.getTableCells()) { - replaceParagraphForDatePlaceholder(cell.getParagraphs(), datePlaceholder); - } - } - } - } - - private void replaceParagraphForDatePlaceholder(List paragraphs, String datePlaceholder) { - for (XWPFParagraph p : paragraphs) { - String paragraphText = p.getText(); - if (paragraphText.contains(datePlaceholder)) { - String safeToUseInReplaceAllString = Pattern.quote(datePlaceholder); -// String replace = datePlaceholder.substring(datePlaceholder.length()-12, datePlaceholder.length()-2); - String replace = OffsetDateTime.now().toLocalDate().toString(); - paragraphText = paragraphText.replaceAll(safeToUseInReplaceAllString, replace); - XWPFRun run = p.getRuns().get(0); - run.setText(paragraphText, 0); - int size = p.getRuns().size(); - for (int i = 1; i < size; i++) { - p.removeRun(1); - } - } - } - } - - private void replaceImagePlaceholders(XWPFDocument doc, ImagePlaceholder imagePlaceholder) { - replaceParagraphForImagePlaceholder(doc.getParagraphs(), imagePlaceholder); - for (XWPFTable tbl: doc.getTables()) { - for (XWPFTableRow row: tbl.getRows()) { - for (XWPFTableCell cell : row.getTableCells()) { - replaceParagraphForImagePlaceholder(cell.getParagraphs(), imagePlaceholder); - } - } - } - } - - private void replaceParagraphForImagePlaceholder(List paragraphs, ImagePlaceholder imagePlaceholder) { + /*private void replaceParagraphForImagePlaceholder(List paragraphs, ImagePlaceholder imagePlaceholder) { for (XWPFParagraph p : paragraphs) { String paragraphText = p.getText(); if (paragraphText.contains(imagePlaceholder.getPlaceholder())) { @@ -212,20 +140,20 @@ public class WordReportGenerationService { } } } - } + }*/ public void replaceTextPlaceholders(XWPFDocument doc, String search, String replace) { - replaceParagraphForTextPlaceholder(doc.getParagraphs(), search, replace); + replacePlaceholderInParagraph(doc.getParagraphs(), search, replace); for (XWPFTable tbl : doc.getTables()) { for (XWPFTableRow row : tbl.getRows()) { for (XWPFTableCell cell : row.getTableCells()) { - replaceParagraphForTextPlaceholder(cell.getParagraphs(), search, replace); + replacePlaceholderInParagraph(cell.getParagraphs(), search, replace); } } } } - private void replaceParagraphForTextPlaceholder(List paragraphs, String search, String replace) { + private void replacePlaceholderInParagraph(List paragraphs, String search, String replace) { for (XWPFParagraph p : paragraphs) { String paragraphText = p.getText(); if (paragraphText.contains(search)) { @@ -241,41 +169,45 @@ public class WordReportGenerationService { } } - private XWPFTable getTableWithTextPlaceholder(XWPFDocument doc) { + private XWPFTable getRedactionTable(XWPFDocument doc) { for (XWPFTable tbl : doc.getTables()) { String tblText = tbl.getText(); - if (containsTextPlaceholder(tblText)) { + if (tblText.contains(PAGE_PLACEHOLDER) + || tblText.contains(PARAGRAPH_PLACEHOLDER) + || tblText.contains(JUSTIFICATION_PLACEHOLDER)) { return tbl; } } return null; } - private boolean containsTextPlaceholder(String place) { - return place.contains(FILENAME_PLACEHOLDER) - || place.contains(PAGE_PLACEHOLDER) - || place.contains(PARAGRAPH_PLACEHOLDER) - || place.contains(JUSTIFICATION_PLACEHOLDER); + private boolean containsRedactionPlaceholder(String text) { + return text.contains(FILE_NAME_PLACEHOLDER) + || text.contains(PAGE_PLACEHOLDER) + || text.contains(PARAGRAPH_PLACEHOLDER) + || text.contains(JUSTIFICATION_PLACEHOLDER); } private void addTableRows(XWPFDocument doc, List reportEntries, String filename) { List finalPlaceholders = new ArrayList<>(); - finalPlaceholders.addAll(Arrays.asList(FILENAME_PLACEHOLDER, PAGE_PLACEHOLDER, PARAGRAPH_PLACEHOLDER, JUSTIFICATION_PLACEHOLDER)); + finalPlaceholders.addAll(Arrays.asList(FILE_NAME_PLACEHOLDER, PAGE_PLACEHOLDER, PARAGRAPH_PLACEHOLDER, JUSTIFICATION_PLACEHOLDER)); + + XWPFTable table = getRedactionTable(doc); + if (table == null) { + return; + } - XWPFTable table = getTableWithTextPlaceholder(doc); Map placeholderCellPos = new HashMap<>(); int placeholderRow = -1; for (int j=0; j replaceParagraphForTextPlaceholder(cell.getParagraphs(), ph, ph)); - if (containsTextPlaceholder(cell.getText())) { + if (containsRedactionPlaceholder(cell.getText())) { placeholderCellPos.put(i, cell.getText()); placeholderRow = j; } } - } table.removeRow(placeholderRow); @@ -288,7 +220,7 @@ public class WordReportGenerationService { } private String replaceTextPlaceholderWithEntries(ReportRedactionEntry entry, String filename, String placeholder) { - if(placeholder.equals(FILENAME_PLACEHOLDER)) { + if(placeholder.equals(FILE_NAME_PLACEHOLDER)) { return filename; } if(placeholder.equals(PAGE_PLACEHOLDER)) { diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx index c04fdadb76ee3f34a2e6fad3b45664755113e440..b6e997ffe70a77559c48cf27a20a7f17d6c71292 100644 GIT binary patch delta 8720 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 delta 8707 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 x0xBf reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping); - byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, reportEntries, redactionLog - .getFilename()); + List fileAttributeConfigs = new ArrayList<>(); + fileAttributeConfigs.add(new FileAttributeConfig("3e9b9569-5d2e-4619-848b-dd0a3e96527f", "", "Document Title", true, true)); + FileAttributesConfig fileAttributesConfig = new FileAttributesConfig("", "", fileAttributeConfigs); + when(fileAttributesClient.getFileAttributes(redactionLog.getRuleSetId())).thenReturn(fileAttributesConfig); + + Map attributeIdToValue = new HashMap(); + attributeIdToValue.put("3e9b9569-5d2e-4619-848b-dd0a3e96527f", "Test"); + + FileAttributes fileAttributes = new FileAttributes(attributeIdToValue); + FileStatus fileStatus = FileStatus.builder().filename("filename").fileAttributes(fileAttributes).build(); + + Project project = Project.builder().projectId("projectId").projectName("projectName").build(); + + byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, reportEntries, redactionLog + .getRuleSetId(), fileStatus, project); try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/efsa_template.docx")) { fileOutputStream.write(report); From fa9a5590d29ecb9800efc95f3e3dc2c36fb571ae Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Tue, 11 May 2021 11:38:29 +0200 Subject: [PATCH 07/10] RED-1422: fixed minor problems --- .../redaction-report-service-server-v1/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml index 2e58bb8..b0200e4 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml @@ -53,7 +53,7 @@ com.iqser.red.service file-management-service-api-v1 - 2.8.3.1 + 2.14.0 From 36613c137c73291c3c228e3e14d0c92e1c4c41c1 Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Wed, 12 May 2021 10:25:50 +0200 Subject: [PATCH 08/10] RED-1422: added new report type and integrated it to other files --- .../v1/api/model/ReportRequestMessage.java | 3 ++ .../report/v1/api/model/ReportType.java | 2 +- .../v1/api/model/StoredFileInformation.java | 1 + .../server/client/ReportTemplateClient.java | 9 +++++ .../service/ReportGenerationService.java | 17 ++++++--- .../service/WordReportGenerationService.java | 35 +++++++++++------- .../server/storage/ReportStorageService.java | 9 +++++ ...anitisation justification Appendix A1.docx | Bin 78566 -> 78318 bytes ...anitisation justification Appendix A2.docx | Bin 97066 -> 77400 bytes .../RedactionReportIntegrationTest.java | 24 ++++++++++-- .../resources/templates/TEST_TEMPLATE.docx | Bin 0 -> 78566 bytes 11 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ReportTemplateClient.java create mode 100644 redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/templates/TEST_TEMPLATE.docx diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportRequestMessage.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportRequestMessage.java index a5992d5..bd0db5a 100644 --- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportRequestMessage.java +++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportRequestMessage.java @@ -28,4 +28,7 @@ public class ReportRequestMessage { @Builder.Default private Set reportTypes = new HashSet<>(); + @Builder.Default + private Set templateIds = new HashSet<>(); + } diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportType.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportType.java index 5e676d6..b897071 100644 --- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportType.java +++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/ReportType.java @@ -1,5 +1,5 @@ package com.iqser.red.service.redaction.report.v1.api.model; public enum ReportType { - WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, EXCEL_MULTI_FILE, EXCEL_SINGLE_FILE + WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, EXCEL_MULTI_FILE, EXCEL_SINGLE_FILE, WORD_SINGLE_FILE } diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StoredFileInformation.java b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StoredFileInformation.java index 3ce1008..fefce79 100644 --- a/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StoredFileInformation.java +++ b/redaction-report-service-v1/redaction-report-service-api-v1/src/main/java/com/iqser/red/service/redaction/report/v1/api/model/StoredFileInformation.java @@ -14,5 +14,6 @@ public class StoredFileInformation { private String fileId; private String storageId; private ReportType reportType; + private String templateId; } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ReportTemplateClient.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ReportTemplateClient.java new file mode 100644 index 0000000..ecfa2bd --- /dev/null +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/client/ReportTemplateClient.java @@ -0,0 +1,9 @@ +package com.iqser.red.service.redaction.report.v1.server.client; + +import com.iqser.red.service.file.management.v1.api.resources.ReportTemplateResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "ReportTemplateResource", url = "${file-management-service.url}") +public interface ReportTemplateClient extends ReportTemplateResource { + +} diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java index 3fa73e4..d8e5004 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java @@ -72,21 +72,26 @@ public class ReportGenerationService { if (reportMessage.getReportTypes().contains(ReportType.EXCEL_SINGLE_FILE)) { byte[] excelSingleReport = excelReportService.generateSingleFileReport(reportEntries, fileStatus.getFilename()); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), excelSingleReport); - storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.EXCEL_SINGLE_FILE)); + storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.EXCEL_SINGLE_FILE, null)); } + for(String templateId: reportMessage.getTemplateIds()) { + byte[] template = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, redactionLog.getRuleSetId(), templateId, fileStatus, project); + String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), template); + storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE, templateId)); + } if (reportMessage.getReportTypes().contains(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)) { byte[] wordEFSATemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, - reportEntries, redactionLog.getRuleSetId(), fileStatus, project); + reportEntries, redactionLog.getRuleSetId(), null, fileStatus, project); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), wordEFSATemplate); - storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE)); + storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, null)); } if (reportMessage.getReportTypes().contains(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)) { byte[] wordSyngentaTemplate = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, - reportEntries, redactionLog.getRuleSetId(), fileStatus, project); + reportEntries, redactionLog.getRuleSetId(), null, fileStatus, project); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), wordSyngentaTemplate); - storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)); + storedFileInformation.add(new StoredFileInformation(fileId, storageId, ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE, null)); } long end = System.currentTimeMillis(); @@ -99,7 +104,7 @@ public class ReportGenerationService { long start = System.currentTimeMillis(); byte[] multifileExcelReport = excelReportService.toByteArray(excelMultiFileWorkbook); String storageId = reportStorageService.storeObject(reportMessage.getDownloadId(), multifileExcelReport); - storedFileInformation.add(new StoredFileInformation(null, storageId, ReportType.EXCEL_MULTI_FILE)); + storedFileInformation.add(new StoredFileInformation(null, storageId, ReportType.EXCEL_MULTI_FILE, null)); long end = System.currentTimeMillis(); log.info("Successfully stored multiFileExcelReport for downloadId {}, took {}", reportMessage.getDownloadId(), end - start); } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java index 642ed1b..657accb 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/WordReportGenerationService.java @@ -3,9 +3,12 @@ package com.iqser.red.service.redaction.report.v1.server.service; import com.iqser.red.service.configuration.v1.api.model.FileAttributesConfig; import com.iqser.red.service.file.management.v1.api.model.FileStatus; import com.iqser.red.service.file.management.v1.api.model.Project; +import com.iqser.red.service.file.management.v1.api.model.ReportTemplate; import com.iqser.red.service.redaction.report.v1.api.model.ReportType; import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesClient; +import com.iqser.red.service.redaction.report.v1.server.client.ReportTemplateClient; import com.iqser.red.service.redaction.report.v1.server.model.ReportRedactionEntry; +import com.iqser.red.service.redaction.report.v1.server.storage.ReportStorageService; import com.iqser.red.service.redaction.report.v1.server.utils.ResourceLoader; import lombok.RequiredArgsConstructor; import org.apache.poi.xwpf.usermodel.*; @@ -27,6 +30,8 @@ public class WordReportGenerationService { private byte[] appendixA1Template; private byte[] appendixA2Template; private final FileAttributesClient fileAttributesClient; + private final ReportTemplateClient reportTemplateClient; + private final ReportStorageService reportStorageService; public static final String FILE_NAME_PLACEHOLDER = "{{file.name}}"; public static final String PAGE_PLACEHOLDER = "{{redaction.page}}"; @@ -54,7 +59,7 @@ public class WordReportGenerationService { } - public byte[] generateReport(ReportType reportType, List reportEntries, String ruleSetId, FileStatus fileStatus, Project project) { + public byte[] generateReport(ReportType reportType, List reportEntries, String ruleSetId, String templateId, FileStatus fileStatus, Project project) { List placeholders = getDefaultPlaceholders(); Map fileAttributePlaceholders = getFileAttributePlaceholders(ruleSetId); placeholders.addAll(fileAttributePlaceholders.keySet()); @@ -66,13 +71,15 @@ public class WordReportGenerationService { } else if (reportType.equals(ReportType.WORD_SINGLE_FILE_APPENDIX_A2_TEMPLATE)) { template = appendixA2Template; } else { - template = appendixA2Template; + ReportTemplate reportTemplate= reportTemplateClient.getReportTemplate(ruleSetId, templateId); + String storageId = reportTemplate.getStorageId(); + template = reportStorageService.getReportTemplate(storageId); } try (ByteArrayInputStream is = new ByteArrayInputStream(template)) { XWPFDocument doc = new XWPFDocument(is); addTableRows(doc, reportEntries, fileStatus.getFilename()); - for(String placeholder: placeholders) { + for (String placeholder : placeholders) { replaceTextPlaceholders(doc, placeholder, getPlaceholderValue(placeholder, project, fileStatus, fileAttributePlaceholders)); } return toByteArray(doc); @@ -86,7 +93,7 @@ public class WordReportGenerationService { private List getDefaultPlaceholders() { List defPlaceholders = new ArrayList<>(); defPlaceholders.addAll(Arrays.asList(FILE_NAME_PLACEHOLDER, FORMAT_DATE_ISO_PLACEHOLDER, FORMAT_DATE_GER_PLACEHOLDER, FORMAT_DATE_ENG_PLACEHOLDER, FORMAT_TIME_ISO_PLACEHOLDER, DOSSIER_NAME_PLACEHOLDER)); - return defPlaceholders; + return defPlaceholders; } private Map getFileAttributePlaceholders(String ruleSetId) { @@ -97,10 +104,10 @@ public class WordReportGenerationService { String fileAttributePlaceholderName = "{{file.attribute." + fileAttributeConfig.getLabel().replace(" ", "-").toLowerCase(Locale.ROOT) + "}}"; fileAttributePlaceholders.put(fileAttributePlaceholderName, fileAttributeConfig.getId()); }); - return fileAttributePlaceholders; + return fileAttributePlaceholders; } - private String getPlaceholderValue(String placeholder, Project project, FileStatus fileStatus, Map fileAttributePlaceholders) { + private String getPlaceholderValue(String placeholder, Project project, FileStatus fileStatus, Map fileAttributePlaceholders) { if (placeholder.equals(FORMAT_DATE_ISO_PLACEHOLDER)) { return OffsetDateTime.now().format(FORMAT_DATE_ISO); } @@ -197,11 +204,11 @@ public class WordReportGenerationService { return; } - Map placeholderCellPos = new HashMap<>(); + Map placeholderCellPos = new HashMap<>(); int placeholderRow = -1; - for (int j=0; j { XWPFTableRow row = table.createRow(); - for(Map.Entry entry1: placeholderCellPos.entrySet()) { + for (Map.Entry entry1 : placeholderCellPos.entrySet()) { setText(row.getCell(entry1.getKey()), replaceTextPlaceholderWithEntries(entry, filename, entry1.getValue())); } }); } private String replaceTextPlaceholderWithEntries(ReportRedactionEntry entry, String filename, String placeholder) { - if(placeholder.equals(FILE_NAME_PLACEHOLDER)) { + if (placeholder.equals(FILE_NAME_PLACEHOLDER)) { return filename; } - if(placeholder.equals(PAGE_PLACEHOLDER)) { + if (placeholder.equals(PAGE_PLACEHOLDER)) { return String.valueOf(entry.getPage()); } - if(placeholder.equals(PARAGRAPH_PLACEHOLDER)) { + if (placeholder.equals(PARAGRAPH_PLACEHOLDER)) { return entry.getSection(); } - if(placeholder.equals(JUSTIFICATION_PLACEHOLDER)) { + if (placeholder.equals(JUSTIFICATION_PLACEHOLDER)) { return entry.getJustification(); } throw new RuntimeException("invalid placeholder"); diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java index d4f2338..d2aa4b1 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/storage/ReportStorageService.java @@ -3,6 +3,7 @@ package com.iqser.red.service.redaction.report.v1.server.storage; import java.io.IOException; import java.util.UUID; +import org.apache.commons.io.IOUtils; import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; @@ -37,4 +38,12 @@ public class ReportStorageService { return storageId; } + public byte[] getReportTemplate(String storageId) { + try { + return IOUtils.toByteArray(storageService.getObject(storageId).getInputStream()); + } catch (IOException e) { + throw new RuntimeException("Could not get report template."); + } + } + } diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A1.docx index b6e997ffe70a77559c48cf27a20a7f17d6c71292..408593b09aa9242ff3562b4572bf6ab2de750ec9 100644 GIT binary patch delta 9099 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 a2#gT!CX*lLW`+*h!VhFZ(PxAi0R9hYgTJo; delta 9451 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 diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A2.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/resources/templates/Sanitisation justification Appendix A2.docx index a7d9c20d93b3a403c6f0d165ed3cd26290453d4b..e32d9265191e59f1fb6b69b88a439201435684d5 100644 GIT binary patch literal 77400 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%0AKa?nrv(Z4YFG7e@Dkc;!agp3J;6c@ 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


=@8o!?gbwNO?EQ~CxuUbecF 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 literal 97066 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 uGA~owO(7{a0 reportEntries = redactionLogConverterService.convertAndSort(redactionLog, legalBasisMapping); List fileAttributeConfigs = new ArrayList<>(); - fileAttributeConfigs.add(new FileAttributeConfig("3e9b9569-5d2e-4619-848b-dd0a3e96527f", "", "Document Title", true, true)); + fileAttributeConfigs.add(new FileAttributeConfig("3e9b9569-5d2e-4619-848b-dd0a3e96527f", "", "Document Title", true, true, FileAttributeConfig.FileAttributeType.TEXT)); FileAttributesConfig fileAttributesConfig = new FileAttributesConfig("", "", fileAttributeConfigs); when(fileAttributesClient.getFileAttributes(redactionLog.getRuleSetId())).thenReturn(fileAttributesConfig); @@ -99,8 +109,14 @@ public class RedactionReportIntegrationTest { Project project = Project.builder().projectId("projectId").projectName("projectName").build(); - byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE_APPENDIX_A1_TEMPLATE, reportEntries, redactionLog - .getRuleSetId(), fileStatus, project); + String templateId = "templateId"; + String storageId = "storageId"; + when(reportTemplateClient.getReportTemplate(redactionLog.getRuleSetId(), templateId)).thenReturn(ReportTemplate.builder().storageId(storageId).build()); + + ClassPathResource templateResource = new ClassPathResource("templates/TEST_TEMPLATE.docx"); + when(reportStorageService.getReportTemplate(storageId)).thenReturn(IOUtils.toByteArray(templateResource.getInputStream())); + byte[] report = wordReportGenerationService.generateReport(ReportType.WORD_SINGLE_FILE, reportEntries, redactionLog + .getRuleSetId(), templateId, fileStatus, project); try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/efsa_template.docx")) { fileOutputStream.write(report); diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/templates/TEST_TEMPLATE.docx b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/templates/TEST_TEMPLATE.docx new file mode 100644 index 0000000000000000000000000000000000000000..b6e997ffe70a77559c48cf27a20a7f17d6c71292 GIT binary patch literal 78566 zcmeFZQ;;azwys;YZQC`SLASeJ35D);O;)MzT|Ls8ht88Rz_}jtO&XL~G*1?$0&DzR4e#dr$0AXb3 zMU`M1w^w#$O0smGG>NQAVaZLSi4ANeae5d+JmK>NIMdA<^(m_3WBbI%uA#zvB_G{R z=fxy?Ezkf&^jR`v3g^elCY&DQjUW=q+EyMmpk!@Vwcuk*K+V05Q~3nvauW>U6)fyd1g#pabuf_73-ov$dKjc?^cX%MTq zG7>`$E_PWFFd}~*L}`da$!N{_MtxgfXW^x#K!v{!Yvl4}eevT@Ei839>y17cv*8|Kima(KwL z{*8^3AAsLd;1GXu?s{qf0RY5+0sgB0Pi`apcenNJ?EW@8D{ew|fB`||#Y+UG&N?%Y zmEaKTPK)r*;;ou+c_fp0MB?YtWr(+aC&wE45oT^mU4Hk-oLM!1ww0el%+NQhOs_juZ7i`P9+e^2=1J9 zGNdEWHpuxGc^bGf!wK80yZP&(uYvRQ>K~Uw%oOTwz`t#}{_rg}|H~!^p#RM#mT05s3?|2)JN0yLg zJTJC<`pEsrV9UVCSYMSXp_(!}c>2+dL+PkkAr~AGwTO)>q}RqTX3k;YmI)>t5_-gG z{Vt;}rxDVl64k64TD4cID}t5hX_%ZGPoD@jV@kvhsaa7LV5E0}HD13104iCfoWj=p z+?@?$+rH=_lG15hDqGs8fT0hYzAb37aZ(;W1^&Ps=6!8ugJ#+Qb+rijvNIci=*{p@ z$184-GYWHQ2%!pkv07+>DXyw+J@+lR^316=;b?L#xmtnvysn0Mf1h0^~kMr3J%kX%kkh8O7TJ0?x zkyZJ~k!BH_N!RaWQw+_yRWK&7jOwYlmRt+VBX&RT?!D~eYDIz%m7MKHYyS)=FCMJ=XJ)IdPKU^)L4hzv3^v|8lPnhq?(YjxF;h_e3@0ciMj+bF7XPz-VdL(RvqfAiY12CG{3mmZ|QRR7Q2%KuNXnX$gn ze^=ZU+X3g#fD-JQozKyMf)UAxf@aunaSNF4K%wj*p&8ZP#X=X)z|N7q@#4$j{4vYa zRscVa1!k-RAV7SX8);;B9g~6ED5H{Ncg$E7DAC409|Z|hjIotHPe8WFeYl(_kuc{m zWk}Uk7#%^KB3_Zds_^r-WRk7kURNQ=LSN3$AnOr%NNzRz1+#rg5M@qda)K8mV&JHN z{TvhJWAqTD({_<3@(3!|W7@bSr@P%_(7(mI*|s<~{v|%;e-)4O|F!$C!PME>*v9Gq z`Q5cDV7tzM(tGF0CvxbSz%4{s1+kTvwKzbBoZ#Y|kTPg#pxJ!3Zp&w@PntB23_d|_ z6mW$P_$9Ks*%dAH?7u8gMFr+Q_DiYBrtqBV+3@AbVd}aWJ>!NQ0$*p}!(0n(nL@R0 z+tX1KrTW?)g>D5**{yiV1%(&JS`|Z{F9Hr)C%K}3`bBR8-qR#TX6Vuom}a93liSpG ztGRyIQ~O3t={tcK>SPDZNncE#>k&0$*nKqwH3xsj5N{_W>ylvUL7oAM!_C`r)?Iyq zOb;f%>6Pg21>GuZ)ZVt~?c>&Wj%^EMW}rf>Vo>6hh)gSbk0~RsF3uo5aI^F}Q9o_C z_dyp-j;MN`0FA^T39OC;am5@#mBb(mtd0ng%^YEc1ZbQ&oTVxhYjq(UTLZDFLAY8n zJ+3^Rp9v`l`P4x$-w9|-Rvbkx_X0BP9@2@AP@ew}9R-Ob#VqVm7#5V1uzP+ekhXkw zX?|ukMU2KAo=Cv+Y3eZlw^_{kjEW^6xU?Y_LQ|#%A8#J)i>}zf2TEBe*0c(B53(Ha zbj_fCxRUTyvCz%HM)uACu8FwNqSC9X6e3I7)3!U$H_S+v(ETU7rg#kT zn7Xjc2?vg>Lq6Ff&b0rbu*?}p=FuO=I!fNpmijN?zuD2&%pt9{Pf2Zb3d&A+Nb*}p-$G@l|t-MJ@VXD+3oh_+?GBl867^TlI*4UUz z**#F}81i24gT&m=G%Vf>cQ_GbrkcbbWc74lg}(vvb1$ZbSj@d|u_eq?WlnY}++RCE zt(l9x;`80falV{_SExD&XMew89OWa4&*!~|Pnr{rafJBt7pR8a7aT`LWZA~u6d@kr zkC9PE;%niItn{z*Sf3qM`&VU1%h`tUSjHN~s^BEqun=wb6>_IQ44ioZmQn}Q?TYdW zivr2I0F2oSc5*gXpuYsK!&Gv4WU|a_xP&DW+B<%hj{1R`6DG;?~-5TLbg6fr9~HDKp#0$!mk~>WV)% zkn!P_yqwn-`^F0&{4*QIpJZM>H-X{Qo~aws0;rXJ;<)fYRX3(1khLp@Pi(46r4Njk zlt6cc$R44mUl?jpDCS`qwk5!yFu@k)A8RqkYih`L2;H5oHwy=NzsxV0u;1w~rS|go z@u7x@fs7~$Yf=ZVHqch{VMm%PY6(?7?;uDxlxcuyMwH&{e7C<|BmB8%!qS02{!HWo zIC34M&nR>Dcz>39)z+FjGALN->YrkENZOWjZ#(ljaH{iL&&Djl^Z?W`e2yzbraIw} zvzrVvFvW!_R7+048_FM@y0S+I0XiwqUxjZS%p0RHi1 zBHqW{gbxeWXsJeBw8Y{_+Vz*ZWOt=#g}n2(T*{PkuOI}qpg!@6VGtFKxKQ+D(3w^;{n<7A0E39)dhqkj=GwFmVww>qW))I~`5 zz+v=SY@MT=JsTStdpg^8VG1S9$BRV!`V)#3tvCELQj|lhX(M|#r6^NFW}KCQ?jK=z z1V6Iqn6O5VGvw)22tJUEQ(8q9o>?*7@8Ofpx$__p*r24L%}t>8_QX0==!9r$=|!{7 z7zSKTci$rO)!&+aP?9__Q)>m$yIa_&|Em#`j^I>!q?>!o+ZzZ^wiNfCc&TCVMT=}U7goE7kBtywcrD>ph8=*@c|PK{a!<6P-1pnekhqGBSI6V+$8{f`ez^d} zfMNOOo;vUcz)FMECDVmu`O{5Y#o8p|Gb!B!`dcHkL(_uv+Dz^&H8u2Cdi(5W7(2>nzoFf#|RDO8ESy{QLVl*g^cC?`7GqDhf*1 zP{@;B`QQOzZd>9&4DL*9FMXzRw{K7Vt?GvN_qX=S;!XOT6&A}@X-H~2-N%kiMu#HV zG~6u|`wX(^W*b_1Apz1NO!kJxSdS87GYJj?|@5@R=$wo=d z%6mQ>Gun$DF!Qwt^JCn>frv5JLsf(=sKJT6LLbCwmsnlQ8FaOm2iAJG;N8y1s%dx# zrBL$)b)-|Gv%kYm^|!~{)m}|R>NIeQ(I>0!> zxrm0?CJrbfJZPamPM|+TrrI-v8Sar=fenu7uHAv!j0IKzhYYvZ46aGHGK1!oUYT$T zUbi(1MTxju7(Uv`mQse8t14< zeFkno`WxaElVxY8=weBZuwf4pT^^=_`SeN{(2S-&|SHS654*FJb$FmfCe{CLgUaH!q8SpktBWdfZwBc`_TU9S9`n4w~x&zNpR)oW$dnX0UIVdjTk%S|rN>smoCdTTr1*}4N3=yeMr@%#QSn@~Sf<9xPx{`rK!-Xf#Bw~GcdG^%=Uabae4N9QaBWvrT_ z58^Z}f4MM1p7p}Z-%GkP*Ow*v(?tno7UdySv$T65uE)=L`_i&aOIJee?J=CLsnMa% zq*1jVr`F(f4h{mXYH8s2c&Z*#z0#PTS2p4gIA3s6b0+zc#k$qLY|*?}JjaPNk+l8c zN019`C1fRC1Wn(P>GQMVyYsliSxSd{qocOP=&{q)(mrc`U&He7!Fu>EcX(IaK_>}@ z0}kxqVE4<)O_1l3eYJ?eF4AFX{^O{5!@XcIKyHz7wq6+5noeHKQ!!uGqGdyk>J8c& z>U#wJgmkSE?~ESFpzg^Ot?05v>6@Ooip7#%>XlxB?*VFAv%+-CjnGuv47fnU1iXN@ z+F?6llwtx;bWDS#;w4mrJ;?`Rx$2pb0OG(C@2;q7W&O}h^jA=ed(5QO80!s(r@|W0 zUF&y_a=HcsCO92GPxrMR`34uiK#*Y_&!B=-&F{v*`W*TUPtlJm<<31#HV5B`g{6I8J@_cx2B zhrRDO{Xk5|`k)bH8wWN8Y7(fuYm??o^lL>V4+e5?X2@?{eokGNg_!;2x%kW&*DYO? z!-yR?gWUD-tB?ri_gO#N7yc*D!E{m0g}?|mGz|k2ZJ4df15L>N4fkSLiCVd!G7)j_bop%Wq^8bfwD%FEOq7U;b&x&=U2If6xxiQ6-+dj&$hDk{whwVdAq7MRhAn)SEo(sO?$l`NtrUQ z)AQm7$;D?S{_ErpmnExX9&xcxoxrM|8kX9{ld1ddehoH%F8ZgLD|JxR=}{raWlzH9 zkDr!X!jf>6RIi6eQziJAT3@~y(EOhq9q_hegkgLh?ndp4@KiyRu?;?b#6;T5lo7w<{lCG0Ad4*8Jp z5~+fL+&t-qo+)PR8aJ+udkLAErt|aqWM5?ETWUEN)k)RtlHa!GPvHiFzA#l~K^G0Z zEML5=YtD8>#O;%VC80yqU4S$JO{9xfQA2^rF zZQ<@9-bw}s=rRxXYzB8@;mY%tB5}ISl?pih?|2b}>E48xyskY7y4c~(-oDtnEX&KN z2V;K~KV!+b1ES}#ye{1t)bFkgSGCa-5O16M08~;?^u3-J8qC7%D}f?qoVY0nQ>MW% z)_;m4tf`bc7Czx@bkyO7?ELvrF$>|VfXIgE(n?cb`{_kR^; z*&yM&2MkWyK8#k213!Gy{csxWk?7$Iun9FBLdq>AOX4|im`RO9`38mn^AJ8bJ*vQ0 zK+{HwKlWrq-}SW@k&K!j`2z>uE#MYCXk2-Vx6b7WZ#c1iP`LbC*${nOhzZ8peZX3(L@_#jH zRt^#!01*9Lxz1v&=hWl(SDR8`IO%_1gu4Y`@>o$Ib+|-zs6^2p%N0tQwa1ucOi5ac zSI6-L!>tfj`*rGeGN}QHyWt<*cG#~XBRJwCFhYfx48yt2CZHrZvYcy3_fShJg!_NP zW7i76fp8tiLTJ;#noVcxBm+qU;L`X#2>xoeVAyUo+fH8QX(y-423~Col#wBuzQXLSM$#Vxc=mR*k!l~F!;7AJWY>S_ccDpR zYSAsNllCA5hDkH;uoFhBin|<;0j}Nk8hJ!~VH~O+OOb?QlNk19c2Og3I#H{2ur85< zpjI1zu(*Ag!CP_d7-d?ULbd>-;TI2NrSd#=X2FPv&# z54G4L>;@OE#Vjx}+sDF+yv!fSH3ZnT(6suJ?mX0*4SLn8{c&*cU@$r3`ReTZa(hI1 z%;PiYEGfpNCz*o1_=A+(V8tHLt+S@p>vb}5+bNXe(Pz%j-JSEq4ICiSgKzbF+D(kH{kQ*Ze+ljX?k`yz z8=33Vn_KIf8gtND*cqFC_#XTKg8|aB$+3Znl7R)I5E#Aw1Pja-F>`dp|B3q(^yd#D z3dLjepBY9{KFTD*BY@w5cR$v_XkcWb2mtZYlhXW?lOQ0IzkA0gfj}lJD=V$6tST!n zFL7`#FSQ7Ifx#pBpJ*m&F8R&r;9THHFp2tpfMNV`U?L}nCnNn~r2Qi&{Ud*37z%$e zFfan+4g-Ks(!fMkN?T>>y%2>lF#xhOKmb6Rs2JIc3Ym}*qmA?rhk>)zL*<_VN-|-7 z_YCz8OhPm!sK@qY@4X!8>gQ!xR3UjD(ywH>8m>Ql9bL#YH6t3_(>J(IWeiMO;c~ql zMJzZbnV~*651j~PNgih?J;qIX>~@hnXnPrZl2ovdzHTRtue7Ryl8Kt5MgyTiMw~@6gVlEN z<6|#iNuMZXaa(pQLFI*3tpWc7-zceU$UNz>@RGm`jEbg;wDi!Lmtip7)bZB-V zw>3-xm!|Rw%80f>Up`AUU%L%+wwo6jXr&%SFX4 z&vF=gHa0|*R)NMspEPdu81s0eSoMouQvqe_BI8@W1~RZ(xxPc7n@b?x6tRZ!4%+xUON;%#wFwU^KfQO))84 zJzO>=eptW1FL6u7h0fvo$HejyokJE6uWjV+dMyR_ott|N=t2-W5#pskFbx$!MqcP6|?J+*o35%vlrhJea zqGc`4VR|#k8||$}dFPC}_*YKAX{Sc|-$VSf+oH$(nl|};V$PP|^g+mUvi+wf)=xO= z?T?Vp38YnsC3`C%Gz#h>Ki_-CCGxTp!!CPB>WX4MGew_;oS0UZu7~)S^=Bi8*g*AH zyg{A^ZpI!trDFofVv81`Hc+jPRB|bh6A5Era^chTIK;mAacf5O>A3*>gfa@#K>Y7q zMrVF$iwy2gQ(}x-VZl#q;-K0=cD?*{^$u8Gb?OS#Y-og7epRtQWWoDI2D6ILCP04L zt7$!Yg~w>3cgtR^=N_4O1n3K6y{-c?Z~k&iu_^{LX8D6*G%U1Uoj;UJdpU>7dEM}e zDjRmiADjrq)&EEC`qI9cZ>(5hjA$XHF zOd;b<&dP!avJ^h_rwqR5SY$Xzd+KHUzL5#GTzRAQss}G6e|HV-v~h9@i#$E2)A&xe zxlD69Os99#0c49yPOfs&N*GI7dk`bH-fv%Xh)8M5@m1tpLl&emp5U~xRaz$I>Bq)C zk(5VsB|aegGbq6h)T@yM|8zM`{W*;)sRL=TLg_e)@7Q_MT{P|Ni}>@xn2Au!+R-V! ztVT&6lO*et$g08m)t>^Wbkk|=p1_N+Lf&WcA)|dsa^lIa=2gNz}cB{=rk5 zK#R1e!M0Va=LC)&Fw9L>ep+jpS0fCO_{<`S{==)kxx?N`)Zq|{j-Bvg8Vcp)BBBYuE3v~aoCK{j!(KLXuk)mTELF(QA+-_ReLu;y| z0=aVqIn;?Nq58lG9}tn*KWKqAWzp-71611Dy}T;|0bNLUcZyVtQA zIkMG%R*6dP>0=+^_0IZKfF?Ae7;<8o&eKu(kQVEHaTaJ}M4hgLf&*_CYhvB^Y~?xAarQr+>}eB*8CGn;tzw;)N=qp9rOfF}deF zC1iRkV!W!qznOOo2TP@9d<3*aZRul3E@uyv`7zq)t8kZ|-FeEhm>^V!eHfKdQsd45 zkN{|j%7>}U5+P~hf6@kFg@}Nd7kvxBqYcTS%M;5FUq@-Zgtf?NXo+Q2(I-S?#4oKN zXMF-s6v1eyA%W&TQdFK(G|sM1>_KVh0XU|kd@kowR%3e@Lrr>1RG-wUP$pIgz_zmY zGQ)AeL9(RGD`;3cNT0;6RmA!eFGZeJa*dqN%E2vMpZzp1H@S_4&ZjptG&#YKV*A=+ zT`A_-#D7qzyq2u`o=n)EEEd7sE~=6G`+$r4_f#v6MF$Np>JF`R!j^EW+l{98y$k9m zmgMPB-ybzUj4gP)P5&=(ooI$BGMBZ(1BIlU3CPve+J#{LJM#NvuF`I#uyY6XgrYWO zcEPJj7I1dMOVZ;J<@0KAz+q;;`VVUuScAfSL}>m<6TVsStZ2B3{G}roVBGXLupS7V zQV?LuDTcvTrg*_Cw|aBfTkXlPJyMmU3kh2KN9_gD^xm;Q<%>wc{?J?0GbzXYB&dE+ z-K`LMsaTDfdaZSse~F=sOK_@)Ob%O7i>-lR~cP_hQF@yLE04#vC(J7Y2d7IgouO$ z6oqUYuUI}$MiD;I(3!L8al8Zl}r^*vPU#w(%#$O=8c zXGPFIH#fcogl-PTX6FC2v|lA5y>=qKJd@P;|ZI-C_DxCfbY-Y~XRjl8k@2k*xoN1#PDyzqkD z0y3bN&z_tUnx>b0y$`&oDHUxZo>ttBP-xa2G0$iz^gWYBV}3n{u-& z5HI4;6r`fpu#;}ePA7BMAtHU`m^ECxBj0Lr(n__8*$p62p-{YEvFH-RMAecJx?L)2jHiFiIsADyuCqgr?>zzBoGn)X2(8vL?|%uJ2uQ(~1bA`%8tpfK$dz*G%>Ka9amyb;(yOHp zVtY2DQaW)%ZuY|zP--HhRvr5K0EwimR^2`pS!7F-PwmJB;T=L}){$Q#_3?=3a1T7W5 zf_cwqe`$Hh#En551`)jDVye@?;csd!>jWhSBHQFTM8q#KGI zKFdy~AS#I-YV?M;|Iu0^QHZz42uA+gtzi^%&!VG48)8s)01q_aSsI($W>%K9HPJq` zx*oX?p%0c~>U;xS7>6fAbtdDCbH>lJk>)kH<6*-?le6N*=+AD2f+xwc{ynLj1+4ko z!d;gxfmO5`0xuGB(<9xg-{EH% zf|O&nFa}E;?1jF%&GG7neUeHiURkj1lGS={^-A&2z+psW6ll1LN>~@>Nx?h}Y@BECGliH?Oc&!0HEmCU3rf#4^#!m|su{bukhtdo#xW~>9C(1JsXl589!N*>bih`ijAAE9 zRC|ZNKLr38tD^ytRlNwbX_MrhjwgFbmMxt!Un7@?3X_sB6baiYClc+Q23xllCxXu1 zI2z`WmMAl+aTmGPw(pbjOLJALdmQKLPy)Y@^z(FMfvVu{)4hbvJR0gp9cLU-i`-Ai zp>9HOO2&{1c(OGr^R{!W65mcb&Vp}S@?~G=iz=6>N7ZsdI6O?ld9#x7(NheuC_6BU zL_CaZO9bZnQaUa{M{1paZ%g&B!~p$sj~Ujlr10+7%@%09o&E0OrCikA;V@tN5T^v$ zp6>ZXaQ=&LpS+Cgrkj}+2wGd4&0uReyK}4=m7HBVk{$(mJDJ!sB0gUKsj^$GC?|V!qKVm)yYV*6s{HK~Dy9{%7S`;?)eA8Y$@&Nvwg+rOiTBl!Az;5XZkF3@-@}%Ciy` z#dfVhy8GbTzt_v%m?jr0f0|g0d7N=>vT07yH(j4;a1=>%(H~9;v5pgk9>i18T($Gv zHojMH<8X_6#>S|)W-(-F+5|WVgxxn~j7~Hpft>rmIv}bY*@BK$2{~6_{F)Xs`+gRq zrboj-Ik(hEJh;QF^5v8gV8??q-WPNdJB3bcdt4#d8$k!bP#s?`KL}g`BiM+7HjFlU z{|%vp{!;{`;8dz@UG~;fr%@>Nqm@Ho-Ax|~`rLk0{0DC8LWEBIIdWi+s4*YyECiT0 z4)|#*ZrSnn2+#`Xl$>O=tx9A+hD2UB7s{U@_K{nAwsSI^^l~aAuq=t~tfx81+n;P3 zd1e;avNZO=;qK-|v3&?A{zqhN>&?Jshsvw6KtE7%fUE){sCGtD%gOBGgzk7|@~Fd8rtUjB!G7wV&}DA&J}*lPc1QvI;+Cvn zSzzn$9KJJMz}MxpHm-3<+q#(LO46GSm2>m`vi+)W1SzJ7MJ)cdYp%54M<)CuAvW70 zSau&jyNBb+n|el^y0-CU+lwqV3i3j)?=omDY=0hgK-1TJ=KkHkNACA#%8O@b%w`j> z&$N3yRXEoDBx?tY_6qN_$UZJDUro`p@GHMIrulJAu@79NC0slWT(x-KK}`M{w#nz#f6LpH zq08MN%;xl376V4G6K27N6vV5|Y01}z#Zv0Y^_LUT4#H@Swawzs8t0MnuN1^$0dT1Y zwwu)ryz;X=nO`i~QMvaH%N!D*=MnxkPSgbk?~s`5Sc=-5$U7emKyew~%jxiH=u5=r ziKQuD11X#ZP>igS=?!!p*v>LNDYhJksvjo znZ8zrZQU?9T-~#xV8Q?TbQs}1v;Fh#Wz3wyaP(Kl)Gr9JC!&&$S)uoSm|8eYD)&28 z`RkbZ?%L~YyI$9h0fPHEsEnHB;`$+s&B{XXUv!i;&tYI^0ao?zW!~n8-dm}L!mMfq zV!@Vg0;XfGZz=qDQ@Os&BvTGRypCy6XB4di)UmL;B1|(xmPv%}4g_1T$ zWIb1s@*A=G9$iuG_VCHa9icTp&64{385}6Kb=N(uY>r+S@KA_ux#dPSViUdiOE%GM zH&qXSbLERR9+9wVzK51d;0?@q^vsjqo5AvzV!CBZHQ=g(tAu_is&Px*SQ%yr0Uy93 z=(kT*wjhC>Az?96%{O>v@H@I>=9atK#z$eDsngR3aR$P#a7Rtc!-X^L?Knta&yOAP zbwP9tJK~XwS=n)`L^)Ny(yqf0J#}bfE8nh`1j1EXm{Ucx_8CP^SpXE($)zl?e5_nj z0g~w^^G>Fg7pmL9u`JX=5^-S|_l54i6WIWdj9zb{*MU>8)x_teKk4%@)4dJJLFa_4 zlN}BBz}CAyT68;5&U+}2^*>z&N_^?zoeaLhSu9Ko-+4|6;$dz+Rxa^+3jgpei4z8J zl05=MzK8N0r+saSnh89weQty`*YYrY9HGFX%k?DMBW}A0UFTz_A08cQZTlU`?Hihr zrey94eA0D4OO$KO9mF8<8D55;5oQ#tS>F`!b3#jU@9Q~;qpOnC*DRKdw1xNk-*9~q zrE5>g-G(zsyTbq~0icK)H79(1;cV>S6Y@b8jxtYBT*&fTpg^7v3#47eCPxZ{PPEwQ z$?{(6b)R4bLEO`RXRh9~v<)+gQKoubj^BEFWpwFoaYA3+cwKOe*_ckg6|obbV)J5L z8Q=ZU^OH&_yoVzOe0+`}pQlAgBLw|Us2AUnd~gr7MxODsrSDmn+MX$6eoHl*t$N+# zK=_kszQfYD#o+rWl(mkOkqRH_%M%vW?5Dw-Op#8BCJ=G;aRME@WnGz}vF)`BDJ6cl zKczQ(>q)d3J^20sLMvP_$mYB$GPr8;P~F_Of)kjs3C>r6`n2iu4sJkJun?6JMj>M) zjs`RQfUR{R3@3cd0vC6QAT;roK9*CCvlU zM->qgpiny|?JXRXfbt=ZWbYEN5$E7jZR4j&Pz>is=eufv`Gj zOo6Hk`P2BJ8-!9dKMmeOYFm=I8a4N*pXwmEl5NHxBN5#ou8SIuzI&!lj%-*|1z zqYdxHsA)@cmeV%cbJ>acVGwJuYy9$Q&k2;@3*@v_y^g(W;I{%^)=YhP!az!gUn`n6 z#(d&;1NrLz;^XL>ceF8-mn5m##7;Jw1gq(_yrW0oXjKD@fW$2a(b@p0YW#za)^^_6 zI4dI6`9w(AtZ0x-;pWH^mo=nm>zQx2L-so(egaqDj^0{TUwwlor)PA90-B@ZQ!8nU z)pu<6+C#6xc=nTFGWM}`bTW``2vnl?Tl!u9RjDBoy3(gvy!aTC&GI$-DvBdlaCjK=D;PE*n1iT0n}r zdoS`?8`+xY9&h1E8AgF~_NbFVDdjp?Ry*EOnI>_}DH(5#17Iin()h@5)r{lffkYy| z#RNx=!;9(IwBh^<`UG8w_k(3aQ{P_?g+Nh=)!xHy6in|ZupD-DZ6?aiJVZejk?>(f zO`{We$=0S|xt`zpTbOAJ=W)r{=1Xy#vTg%s5XG5%VxRMsx}8uHlzp;ZQ5*C(!3U>t|H zI+7%3v$y>9Jzx^o^mw~Ppw)W#omn;q5+}miQmq6i7eSfwDmtEVz%GbvgCogO7 z;Ser~jZ2X0aO?;|YLU(bB0i5#Iv>gw|*l zgJ4!9dUZ}k-`wt}`Hw8S-3seerPmH)}e&th)aDTn(Wzh4)_Ov@R5A_yv`_iSK>M=oQLV*37e6gL6OOI@j zBIXYkTW*sXTWQ9Q>7Hd$rMG2i3!Pv`zZWK}@CGq|c4}JTBc`dGs5!h-M-l|CZJ#Dx zZpMd*RzA_S*eO2Qm9^%(H_Up zq8@wJKo$)o3jI7DR`4d;Lmmm7K;Ptx_^mcc1JPWz7G0ZRa5&D@EAY(hNt2K((D^po z^*qXXyesBc+p5i)AoYFLj^;=#fs;brWjyu>>V7}Tfu{>@{n1j|rE;OQDv>eYM1%k% zwx*c~JT?NyQ9Hh<`jWt(NMPk5JU05Gk|IDJD8Y?09Gze(KARhy*IVRXRv!*#)NG3_ zTgiF;uSawM@t-c^jSx z>wJ%@OfRXIO5&)S# zRcj1Y(J!{{aOknluj4F}FKd#V0JKMc@eir`@pV@DND71KgaET;lCI}j4Un%D$Wgdo zIqdEIgl)M3dzo46RItx=`uwbEzqPYM3{}$zt9c!4yFjnB5$AER$r5EF`6VaSR4{Y% zGlSC#{iC#DzJA!bTS(;_8Ad2w^B<--?S-Pg#ln~Z=n^e3M<|#jk9xdnmZ*SVV>5nP zl&s2H`>dD~`C*{&kiGFr_6614!Lk`y?og5rSN4Dmj$c9TFQUva$sO4H;Rs;a zTp!DqW6Amt!$(a$@v+BzqSS^0Xn3onPOUdftc;cGJP^+glXl|0H%=l z8aARwpWqEj2N6=L%Q2(hqb5+&T{Ad^)b*IYlDQX7Rz_`k}7o0rjMJWt^3d(6tFiQH4 zzDuFk)ajvu7`6w3$N&;uzf5OtGtU~&wTyiU{*wz*ENRx-oDSso^n-)^#l6bn7aEG0 zI_uj2ZXqwXoNzO(dQAV|nx=tdJ&fpnh_wO#@g%7W0>s5}y-! zi%OmbfNcb~yH16&jcM`lFaLfaj8b7+jZFeDVtaEkSNsGF#jH3;$~7faCOJTC4CN6j z;GQb_V``;PW&J&06_NDfw)J(P9n}-HAb!nXZEOWEP*r@ok20cZIdBT-90o>1o1vL9 zS#tiSRp`G;k)&@ek9hTL42zNiXZh9(l^n^kUL2qDa|S-$Nfo8alr((OfBAzoN3GH$v|4ezAX+K1cnj5^1Kav!6HA}(lZl&yt zjG&tsk?X?6#;g?4=crKcb18ag3^nhB50$FV|4D16kov=h$hh`~W3DlyvJDp?Wk7D1 z9ADXPf}J<7a+6Eg?%TWu(k26Qp;qmuR`(mesmr4}9O1X~sP%_x-B7`<*R#rxK<{R$ zr)UR4;K+KY?Xe^PX?HA}cgsGD(r#+y;6r>5`P12iyY7v=amiB(2Uca)L4LFhA9{DA z!zI>J#xmlI!|JS7u6St&_JjDLv0CJB@Aqcyw9VNo{_lxJHF|4u2c*QPfx=H!pi8K_n=_rp)Rn_U-xfgIo+bt|unmD}SJxh`a1ry6 z^#>Zi`|sUW-Q)G(85rI;eK$>gbAk_8)fPHcWUy;xw?ns3#V(IrOiy4Sky}&Wet8;a z$lI020+aWHO6MOImI6l`^}_DbIOyw+^Et-K)0O=VhE>-MX3e0FhIlx|hO+pBk%+Jp z+OmuU=bgt6#Lb^QZ72)5)mPlMpp+IoT?F_*6_9DAHJXR$-Y8c&9v4{3+e`&nGA@Dz z8c7#5Ix{ub6q1pg2%1N7NGt%p$H#f=MvmO%F{~bI!iFs9m#d8sl{eSDm75(U$9mbH z4pS_Goy8;MK!;c|_vsMDx3pzP(O6TfpxnJVZdjG5k9?5Gqe?7b*!@VUX8l(1KY66H zKJnsI5R8DIBouY5Gqh5^aIexm6}L^p=hn|LtSti;c~e2Sp6@~Pjl-<`k33WKq4h2J zeG>}11yoAl#kt1oav~Fr=Ag^o5cJeKNY++4snIUgdj05kxoJlH3HzT2&eOJ`xUSEQ z0q&%(AhJWv5~aVH{C~H^nAk3)jHwfOp3J3BLB-x}DQrO-jn}A6MlUq2b}1*{@HNO1 zU%O(#1i|PE=D534Jvte&TgW*A}&FlqxRTB7+p-g!8sBZg?pT7$GAn^ zxFWBZI60=$UJnlbUe_gDll8!}k;6RX0UC1r5q$B%OT7y5xNZxnsIA>}K`yqW2T5wf zrVyX?>elEl$z}2xK!sk4H>g^MQY8Zn_naGl4^QJ<>*|m877BI@l7rdd`#FWwr$(CZQK9(?(P1!aeH6m%@{kok&JXQM|QH-%zUi4(6P}t zr(oE&FTXx#OMD|R^^h=Ch&%O<4U#fw&cdlsEj>WNUp0g!ljhb*~#_KtoZN%6TLe~(ENEPY})Fk+{PaAnCwaliSjA=;-p%t1dLf{elt zwg=b2(R4a?zScb8Crb^_RE zuFqh#F{{v*8>Bsb1uG!ij-)haJ?8F!nZvm~4m$0B=P5ebJu-v~Y+2L-643;=;XIYS zjjSzUppj3~tFXZN7i$NvH_7|)FOughUY9=M$J`Jf-xejN;K zfjV3bki~<$Uvtna#lQu6S8#0g-DX?D7M926!;KRLw9}d+BqK1@5NpoSAZ_^aEw7{J zye8_kG_Ek|-&t zY%?pLky65Y`AI`8oNkpzXecfSa81<%3v;VDxD5SqfLt`B|EFV3s&trou*)waSd(`a zA}7ArwkH5?xqB8mY?PHCMBscKGQe0@ffC7NtpgLC1W!YEg2CPjJw~CuBMXs|`GT=_7)@Trpg}81A3>;Vk$+pcrQ|l6&RCFnLn8Iax)!BT)?GpmkOYa@8S6BnVFj$= z)5nOqmaw#Z=XZFC5=NN7?$U>sJ?ol~=IUo{fGy82NS)7N)|gS`EU%fp;2)7e;e zk?(+m7`&G32*Z`s8U?p0S%CnBOSkte8O8)}l=7ODwn9SCSFjM)5 zL;vwQq&HGQVlpST4F7;2K`Fy&-d;+thN0&<2GLXqX9&TlIGp`9q%s-=TRrDOGl^j( zDz;xClirKsN8d`*P#8k4BezQMazyp9?)nd$qD<8!|1C)gQzZ*2 zB~2)5Jt|(TY8&)m^c;xiU4Pa_Rr&2}o9du=4s&U0^T9NDXPtS6xv4n*T1Roz2P~9}nf=o>5biTBgqT91Lt-63E0_O13Z2xYL z-kD(^2XpVZWSBs$BTqAeC@~=9JdIv{ly{CTSj79qg#?uq9))62ZIR7rwr3cC{*h1z z6PEA56-_Co)F>X&H|ZReRi4rKST$+-FZLpSLo2Wwh-~#*JjXvU_+;jQguO2nI#sWa zIQ6GvPv{oVT=C3746IKKyu>uv-fc06qVPty6&N>rvMnEA+*ln=>da(F`Rc_@q@UgM zGC3c3feQ5;Eg8#4Q?9ZF8fEmv8_-Chu5}muUC?842)&2Wt)j+%JUcn z&HU)FO7U8gj;F9(jJbihOq~H-?pRSx^&QuJ4V@*Jp+~}&CajD!Rbd)nI@hhSsbbl;x~QNekh)v#kYkl=1euwj zM!z|~u|QRgy^N+u*C&1{ee1$8?M7{8tOd5<-s~_QFn)#0eEf+T*`MAC@5&;+vltE!(dC<9+SeA$EuO zYiaFJPyN@Q^tfl_9xF$thFc3tY@ad!nAl7%4^05hy}|$ikxM)NobYV{#d({K2i{0( zZ1(vB*OS%xK$SaxhRL1yGJK<>w-i~Oo~ofLxam4E;GQ)taVGxh zHnsgo^%U@Cu0*rBuw$^wh<$|+sVZUm`(N#n?Q{$w6ot%RPjuqfo3e+=ez903cGWaN z-#6VcI(ZL1(!G*HMg>~u#(px?dAB5@E*hRj?n-B;b_jjp@w2rbE17)8T|R%v%Wvo& z_r4R;J0ahE;;utF<-uv_+j(gSo%qVvP!tjyr2@5DqSxaEjh-aGwj}Efvv-_eEENtd zVn!1|j8l{W_dv>AeWhadU^}>6U4ZuNjtDw|Z>E00E+*6YaA;GzBQbPhO1E)ntcme7 z{d!&=d+$KvR7k&Yrjw7ILt$z^*{H5Bn3GUdq>a5?o7xzOB5m?{dq!qzP`DwazzQii z!@zacRt%p3^zhIm5}8{YDI819{T@z{Wj2ebG*S#2ogGh9e-7mhSOXP&P5Xf|pU)L) z#UcNnkH?1&#m=@44M92#`Ac{*D>Gb8!=P0s{r7rtbmQ-5t>V(Cy=emQf;hd739tWC zJIP&&C|IhdBpWS4cHoK?{SEAX=p1jQ zisjwyKkrUz&hstJNa4;rcGZe8PvyD$+ne!r?@&|4O6dt_L=0JeRotZRZ<+VUa?S0# zb?DZIH^V3#Y5Z;5?r^Jj^eMTcI-Ooy?k( z+t!;sGl1&O+%A#e`R3PM&NV`1F2b!gSC?|4siDA45z;#4+M0~p?UQy<4P(K8*{Jr%ra zh|Z;7>5n}LXh;Wis4c^21+XEJOoT#L$J1D@W{AEDr=nB%1rc!`C)Ts|Hi37FH z4Gf7W91$*-==)l5XrNfq)5c9ozu0m0AzU;{fy|8ejh+a;(~jpF>SXMJP@tq}=M`xMcZh+oLXnBD6e3%0Wo5Ek;E0~E~% zQg&s9kI&08Fd}4!HaPVM&Id^eVrUHuc(-(3K+ocN;(O>O#)b0=s-RqMoXwe+T5ai5 zhicf>#OYh^vrWox_rF{3Bfk3dpe@lQ+qm{kNW;- zRPHoOQkB_l&4&lM4!Rw7W%+>ivU~-P|1KfuXzirJX@+*WJat~VTLQ6G#!q&6r%NK33!TCN6+Tuk{kI)k5GlvSST)FGAr#Ik#asg zjx)xLAvc{8Z)nh`+i-niZ8%&BtEJ+gGXB@`v*=~vXt*4{Yhv*QE~oI%Zmf)@%0vQ< z&ocWSj-#+Rl2J&oZV`rLCZTm3S$KNGQIYcG)@qkri$+iSN;&H6s8Mr6*7O_q($86v zzUK#zpOf@>P?7pjcI6Sk<-<4E6_Hk>oA?^*&&@4+Qw(oM*d`6Q;EozYChINoC*<4_seD8pe*uxkIRD1o{1qI zps2QK7L#aI2=DItbfP)Q8TxnXw=O$4PhxHi@}w(T^HYCiRfxMXanR2|IiEVWuUyDR zb@*=q(Hy@@Ec!ll7aSrnb_L;v$0VdbX^e9|bg*+jG>=jpl*Y~PgJQ8&Vk#p4p^sH0 zC$GL$DLSoHKNH&h&fyX403Q6)L8P8}>A0Ht0bWkCA7MP_?|$o%3{l#Jpc?oitCP;* zfZE{1y{Vqb?br|cira})P5CpMl9~mTBMq7DdRp&_=x)*C1?PbBkatM)OmfxEAEp~j zzCUZZe%)kspV&hmfB%wTLRE+g+INrp-}`UKS)?m8{6aw2eq=tAxJOP9t)He`d|C)XaLu#-IC3qx z6>Vw>Tc~8Im70=3gA_(rhag45jur$P5lukNLT66MsuvZp{cLCrtOM@95Yaz(q%B)Wevju1vK|Nnjk*>|ls!{32RV7Ny~B&46f1jHG-x$HU^*7aYJF zrGkz}e+-p3ee2-TTy$MYV004iD5sem;M?Je+vUDSr34_IUS!+Ac=IFwRghVA0&_n* zLkK-s?RZ}gG`og$N%Y=I@=Rz95pZ%{JLJHe*#><*lotOB`_#6y~YR)Pm~Y|n)f(+oD_Wd9ze@( zXUXBS$N$1x(6!7*IgOb?vN8k~J49#AQdYjMr7V?Ds`jH+=(2{-XAD(w>gDi0zj>#I z?qRW6q2oNZ&h<~Mqfl7NvC5bEc2rk7Yo2N@^AJGaDZgXBlxo+S8!tirm8VXE?zkdQEYoky9me% zGT98CIoPNX>K48(db_`d!%Ret$V3;!cF6joqX@(CvD(z}*V0@mMZ)ICiXeMPP7<3K zM92_uozw+AoS+P_@SFyg5|KBPnsFargP>pcnwh%xQPWacgpUswJ5^P%$CK(H8=kc+ z_f^d9l1XtdZ1C-Z zB=4o|nR?zjDzrc;m+r6a@{$X-g4I=ps8g?Ex1xI!F>-)~p&_SA=sV5=6onW{h>!8n zwYK-x#Z7H)pJP|FciTdl^u#T3!e z8~4($w-KD{_uJTwM4^fcoGQ^)Td{Ip3s|dIqfryKha<5uePzy~?ow$a=~eB2j7GMf zCSv;7MP7a7yT&+1&ch_4*1T&DK_T>1o+T(5xh!l*s8AE#dlKHDK zVFDbM(1|_n7Lo>V7kQ;2>H2a5EuqkGn6PE>__QUY*}EtzgN>5)&r+Hu!f=`5p5|wN zO2kP)V_QtmipTaoMq?U>VF(X5$&}@DvnEO-9HH9hmCXeM;P9;Pm~e@)6ii@&NedSE zbs2r+y=bQ!X_K3M@rm!?ERkGVkQPs>8_Q3%%ImW&U1iFfinW)2d9=ZrM|YrWM`h-m zBca43{WrvdteY^Nhs37h_rB$c%~z;f!3WPcDw{1kIM8vLW5LFH@dM7$YFcrgKf~D| zlft9iY7y$+A;?N_>%Y!U{l#bFxw!E;feTrJx|MIG=PW?=tIMWXetb6mBrh-UU~MA}$V(~g-xPWMMo2DyfI@xbFv0;Hjn(G& zeW}><^zjPwN+kjFP|V|mx)Uajg7`vyi=qdMg2)OD?KZ`LtS<4Rl(MKNt-ZtmULGd# zC_#A~v&pg!qNJ?wKYx@Ra+)`P)Y^7>G|;SbNBwcWJzmuAYk~$nB6ce^Ysj#HYYmk> z+^DAOCgFe&v~)}T}0E3g8}<)|X(lq5~B*4f_X(;YM@z0ZNd=dAG@IU2WI6aTA=MUBSwJ z4Ew#N8VN{4%pd&~MgT@rE7l7;&^wata8IxOj|;sWbv2pS_RGp@Z5knL)I;4|BK%RA zchN>Fd^^bPWg~3LQRB;o{J#)#oM-Fu^jT$-D{AO{m-@LlV9QSdl8o|t(eXeXGL@x~ z#P(S;)h0`A7~Ejlqg5si9A3P?rks)e#sFZ@^cpPEKDe1Gqxy4nEf*n@Z@+16nPp6p z#^~Gqa?i`?hZDw(&6qCMBsYN4`SRieb?Pkgg=F#2=*$Z$3Rm1CA?ZIW5R}nVvGan zj_&sQ@P~Pf`jY1>RT6uQ5p3HgZ2bw*q;+{bBoLnBhb{tQ>PmY!wGKxh#VFINZ0ZhX z81l;OU~$^;YWq$pS4FB--QVRNK})|J1~#bMb{P_=gmSR4J^bj7+BsL}YGiRnamU5C zaKb^bBZ5m{z?8y`vv7(dWwta=Fzl)gwJ_R1da(2f9W2tKu+SD^pyMg3j2`5{G-9gx zBQjR?{}S8a$9KX7YV{#(M4nV9)v)|qFRsP^JzBymoof3TJe3H|*7l*vevDP(Z5710 z{WBdEx_UOk$cf6^plf?(_6o=y1}+$RT^Ba{4j!O}G-0>L#v(ttcSv9!BIbwlu{CtG zc`3V2 z2IB=P2Wb=$#fp$UfE*DCHA-gPkBQ*LiUx=*9Y_o703?OcSA$H((FKAWo)xF@lOvi> zGsgE*Pn%{vSPc}9L4{4$Mky0cv|*8A6k>Y(P4T1=O=nPyLj|Z+{7IxE@bkywPJ;=F zG$|S}97|gW!)y}8$Ut#KDNxflb^@btDaJHb7o`X_R|u;IfPtUjmK<;PKz9raH)x`# zqb*)TnCGv@;EdD93&e=&kK)g(Lz7Kefq0}-!b;Wrvbk?^iDEf>K~_7u^uT-jTU zgz`%%8mOG!@CK@9IF*nJ4C$K32`hJ;w(4%1H-rFp>+mXEwf=|XK@ycLR~BiatY0;H ztrK|d=itl_p`Ks61_i(>juDZ3{j!xo>KWNw6Od$@hD)JkzBZE>6v2PNSGUymqGIaitNflR*U_niUZx zT}kgC9c`$QIB_Z|^+*}6aB$BloszY@I<*=mV%1%as3yUq(MlS3k0Pl0e$CiEi)%MY zZ6zR`I(x)D4@3aGeA-Q^L{QG6)#hO|w{2w|!D-D%W@CgE_!7r;P$zmQ%fWPP{M~s6 z?N>%p)}R@voy&tF(>~yWhZuGaq!3DsqZDe$pi7Gxn{U477feP-B`BGaChT_~ZL=Gh(NvCULb5Cwt4&Vw5b~#g z9>Oh%025GKBu4*ep^V`i#BLlKSXB_=czq5i519nUi-2gr6hWHO4~eCau)FV8zYwI4 zd4gU3PyhkQs~pbQN*ipCGn$|j-meV*kA?&S7^b}}ti%4Fei?M38Oa48%!`#mRWQOk z$LB87ILjzx?Y0`E9;g0Cd}mDnt4Su0=+j799Rgx=*s)GPeLVe+Nf^kQfOIte5b8qM zW(XE~xu7|6aL}n0|Fdy^MkGdrs3B?qUFq2D%+4H=lF9OCZ6;zGePHPtrvMnTQ62Lq ztkpC;6diN`mOR9|Jlc}v!he)Zqkr`z^*31u{@NJa3&iT@E`q&QBzFu2z&Tnah=Lfy z0}T&UE^5I3p<`}PocBrh1~fCR!{ZBy5f7P0JQk<{!E2G`NIx$V5D*r!xKQBf9T1y& zwgv%99bG)2vXLClE9Kd>JPt8bqnOxNyY+^l*oJK#cKNWkcXD8uy3@ zga7J=iRKX|4&X)j(+h;;og$*+nzkG8ZUUsA`)iO&)MbWwVb!3ZBEtsC#~U<85sM$V z5HpzsEq$|!Pfa?ELeOH%hLGgQL#%mGm+W_dYDjDyg9CyiSO9l)&B07kWG{)kTOnrt zO}UrX0+bj3Q-veW3+?7oEoA7ACsEu5LOFbZXeo)b+8^|>e_(COe_~_M#IZHh|L&DO zPh$qQ<$@8v5*{+;;0s893sx0Ga?;Qq+@ns}7kQ3^*d|FLo4h+T47f{aIPpxuY}uT? zEgHNG)Af@V>YuUrXYml}tW8yk*4lVLQl8Zj+7GT84b?*%QgKK&JWbZ0<81r{$32_# zc=5b|BSq1Og+lthEr4R-)B!Vo^hkw;)$^-M9PPM}qES1Oo=sA^t-I|hsv~F^njMPS zBtZ%}NSYcR!i~DVQ$r+=5dq$?8u4)ZuQJ$G6Qnyc-b<^Z#9YfBu<;vJZT6r;~lfDFJoJy5-2En zUt2U5ESuf9Z~-78PBIdTncsTe{va+pg-R^5!4GluZvO^=kBK7{@DY>*PMF9sfeA_+ z*jY&)!eL~x>iDDy!-g{xc+n0$0^u*UlSHu_FH9c*#1b};g?bjF7!KnB z1%FlDIGQ$#fSNr*{i&ls9HNF10u0M}eogR}$=3_eKQM~~(lD%Q!6=P6^Nuh;D+m^| zIb;p@>B-t0S(-GP{@-A2hlacWfWXdxy9A&K657vzJ_W(Q(K=K4Ae<=r(o$$3S(Gig zyC4Co!INNsFfeV;{uqn6kuy0AtvM7t3M zWjO6fVE@42DUD{(g^03`g(61Lg1R}>5 Qw29|~J%L4-3T1<&dbD?DvUE6#+WLn@>!T1fgUA#&+UN=5?1o^jC15JD^{sLmDX&NELV_6xai7 z>k~O>d@_VWA%NsBB|u5x-F!b>XoH{#0g&TpJRmq0@suefB?^5QiaaJHLKC7Fw$iNQ z8jBzy8_-r8MPJBpf@!glhb&V+7-28H-WL2amLNhTAUJ(M0LWry)E_kjE0WxKH0<4x zMZjUWtBjdC2~{4?v+o zV_;zFCuyjY1?cV!t2>xcrA7hmeQ=3370bPvf}qW8lo~rT#G5!dfu2 z(E7XvijUP4tENu^)HaLm# zTt3Ijh6Tik<`JUBh=g^PWKbI1y1zI*b+%6LgK-5UhLVYD)squKlqXJW4(<2X6~^`; z-3&1kDG&{~DWr%H?uHemsSoJiQtvkFdS}F_FmcM9h1>`uC(R(;q*)WGk{r^c5i==J z!r!%dwMY=_KpLd(*aB2SkR`;{g7t!)zaiIDOI90)4||wzQih51`P`(~O61XNVQO-cF3qI(rAUbHwXxai z$hcp2+x=;%*Es(f0dGlg;-DnDm)CBwze7#zqt9;-&AQy)HmIxwa8upSp*oXSZUae( zgc%RR4%5J84{r6YT8qCv^Jr^{ull!P_Y(Gt{rO((-uM{ReqE&A^=4Eq`PjaCvnvnI zmM5=SYh@-$U#}9}M%|Z1ex@!jWA3 zWD9|!@E=@Nh7b00jtyly?B7Q=)~1e~3FI=}gq@xZXcAHvRVLYtwX$0zjbTyl2kCq; zIcg<8?ArQryibnn$^JMzq$c)eeH|bDCM8Z#@hJ!HPG3|q{rjNQd~vCx7(Tf7D3mQ( z5=Vpr72y2C++!EC0V*K4Z@l#fecpQ7#p8Vx0=1lf0)Z@mT|2yNg@h@wH&sb;_z6T= zu*QPCg&5`GyAdlmM^@}dyV61APy!_X%pmtVBouos7wWTLno%+a-~an&24KB3CGMM@ z1md%Myr*=nw>?kkDwg>3Mt%+UljO9F>*!x+%HVg$2`bb(1MH==*xL>4g)j7*uwQu$ z{IgVi6X8ajKwJXcfjhjjt8Uis8_vE_0p`;Pp-AVSyRxTIg)iJJ(OCXKoEe?mw@?Uw zA4|dvDj28(Xcpw&xIq-2d>GMnaX4On32}x{oZ&?9Qt~7PE^*2T%DoFqm8Mapz~;|a zV06}|;Vqkx!OR~Xz7EEf6kTJ)0En2uEp9iHsdtQkst#-c4_|i^t1&*rBBrd?WG&6% z#l)&qRX(n#{TfZi{M5}}l{et(O!(4x;b&7#Sa8;I-D z*ti6nYs3v2Iey6Fhc0u<3M*+9~1` zis4S89mL*ofMfc`Ac}!?2)v9~n4#i`s0Bh(;!F7mrZXvC9o=<#ZCDr1>rTw|SMp=0D@tVdMFYz_GDh#Ub~{45i+9MeQ86z2EA4p6vk4+{nlU)DYDzzx~%=KF|mi*Cz& z$9rUj%xx@sEP%~h`~}KLD=Azz2ceP86wZ{*6w(s*jBg2PNq@n#X1k`pc9PJLXhrgn zkQqNi5(zIJQbD3hS9b6n?@BO}R86s>ey=i?8;?(bF2|ev_IlWaIjm8Xe#$5irO}l#I zA2q>cbJ|+IS1z^5w&0@RYUh%O; zbjIG2*_vLyuCa;iw7zKR_0)LX-%j5C-Zpdc&Ho(Tj(s}Y2wW^I7i$^)!n1u|+fH0@ zRF^ZE)t^o0(K~PNK26vC_B80e(|vvRs9!DZmVN0de{I`wyFKqtecf64l*aeKH_zqI z4gILPc$C>q=qdcb`Y`?Aop)8*9b|LvHGh(+$t>A@nvl_ZDSW|Ro?WvQ>@EH9Ub=Pr z1^hn#F8s#7?9Kn(2jl^d!rsHD_w3sM3&@4qx7&4gg3E$yQJ3K~?a1P3;kjaAQMy!9@r?-s z=yHd!2185V7DZsha7bmURuaJx+#d2yWr;F5oH6^6wH;4mBxhP{ihrDkll2HjT#Y@7;FnAw|ak(;9R@(&Dde; zr2o`d2p@yV3x?n5Hr4ZS;UV^&_}qzo2HVQ^)oAd#CSZhXgdV-kWpl^=+D3W^r%%kl z_rm?s7)BTosTw95aXExMY%BE_sol8a$jDr+T!d4uLrRtAaV#ehH{S6W`N)<^64hc@ zC<1rlM>5qR{UI!(Hlu8#>?V)3{IvYlLe%^qgGIAKwb)zz)A?|2#O{z1w?OFvZ^gS1 zzb5v4mp%#eDdaumHd^`+cVxQ6rsTfFOon`l=u!GnEd?8v?*HrJ(!n6I~S~TSIWxLSJ^U(U;YG<47GWntvx|`Ac{Jr_HgVuFjeV;wb zHPY+hd49dJncMxHC3LEO#D1g9iSLSMAFdPI;o}tRIO~ExaCxus23U}jCW7;{-yVNVU?b`Zvb6Vn@ftK5Hm^1%M-PL-eyW5SwJKA$w|4A$DD)*}oW;Bw8d3xiz z{oBu%_M7$@n*tsN&YLry`92hA0w03E^)t5?nv<@=Ld9pfJGc?5Hd8X2!~3~Le2DMv z3uiVnAV!5R!_(neV|sHj8p8duXLNeverlabm(lxm?-RTG`Zf-F1Deara1)M>{-Vcj zw4d(#@zee&@t#P94y(m{THa8)Am`oNW`2KC3MxmZwct7)MS7YVl6vDa@-{VM@?|oa zbNzZXby_xCoWu3>MKkOB5O5T{Ot;eYcJz=lY1S3gmE>_AnriFo{z-MAw$e-K_B^~A z()02bVMA3?TU0ew&D}83Y4Lh-vaF@2*4^VXea1qyQ|4`So*B54^{X1&YFbmR&E;%8 z+40qJXe+kM`xSGV?R_~~`)d(sJ$Q-@i_N!FwDYvn+2G1%HNsl!S^Lw?wp;7@`wS0) zU-c39x<3)yhF|@L{;EgCd*a>Y0PQ<@As3Wewa#gJxgj^|^D$$VFuU`u{r(=hiPdVo zZL{9vI7-9ia_e-<{U&l3S*Tai%l)~$+e`cH@xi9klipalTO+a?^X2kxvvbq>BL3pl zwA%Dq>0RT^=ac$&v-MNH>-yz0dWovwjrm&$Mf?T zmaF$^vPFlFTaUZ$%k0y1y!z>T`M9}Ylx1`odl`GniO6aHa`dF+Ez9GmY3K2Xd6^Du z#&kL{JI%xQ@Rb350j<{>q^YUtBg%V z1mBX<8eic85&b|Ltr#p{`KO6ea#9qEdydFNS+kN!*1fY~ApuI0G&!ItbkL;ebW-q7 zL9)`O0%hF9iw**1u&QAGyg2PrLj+2&Bvm=(wI*v>mln%H%sQ?S?2Uo}!m|^M!7Jm) z&DFKn-?F#y)L59qA*#==#$+z9*l@PvvnmlJM?uQNNgZNpnU$W}s$Zwu+MCV(7{MJ+JrepIdkw?x(@}Lvq<1PVbV4B54|m{N$9Rq@?8J z5Q5{11OXkXbQ5uBwki1;2dCI((w&+l(KxNJO?(uU8+ z#Z#WnlR!FO_QeO%1wdK&<_Oi`C=uNs7e+GyvU;z9@lBsCXP?oG#7jlK-sed+=EG_|UGeXPp6hDdEhd^VDRRAS-p0jCGrbL=2-mK- z44(S0sSuq^^o-G?*Wae|QLTIbwOQ;GE6lr(hgovt9PfhOPh*SSmX6p}nN%%2sS-XDSt=J(CK&;=u4cytiQ!S7}!T9{t?x5@0%1n3#+tFQN?=F=Hg8jOd#g`LZn zioz&_o<%8(AfsFsidEbuVSy=ch8w|J=7{6{SntsS$wW? zF5bIQG~>k~_XD}lDp@?5U3;Gsjz#oZ*tX_WkHLj(qu%VV6ODeJ$dqGpIv%$7Vl?CV zp?B;SvfZl8wkPS+!^@YN@70@a=d-W$4kMbeDP-W-b6uW4Zu*?|;x*ihmtIFp4{E1! z89w^ErSRNdPXi~9q2x~QoALgL*LbxqWs(gOFB=>qal-escO=K!?bA?flXe4HF|7$WaafMSN~NH|O(mQVDZapFW;f`8X9o?EBdFNeRUD0|@*f13+E|9&7nPIeF?n;PGu^lk)b@@qbBH zes#VRE}E9g3lrm9Rr9&uW0E+?P0IQ<$!>*vwK;5|-O)L{hb;+$mfSxH%oNVrVv`jTg~1$|kzBB>R<2cm9F6mDnl%v5Cms*L+YnK_sy|bOYf4 z{=)ZPqxkU!s7LOaVI~BZ#gsaNzSH?^9Qucc;JP~zrxpSMdeLzh017LJn1JHQb;2@z z*C@Ly*t4TZ@{$%Q0kRd`s1e~OTtv9_1&i+$@MUfMLDRC+%_|}l$2vk#OX4j-Qu3z~ zL!D#zELaR?KF37MgCy;pc@tmyL@pNut$|hGj(gi6$_hXgXCtuzxb0MQ{8L@_#+3Ay z!<-MqmLEe1L7H8@h>Oz*-0LMd$H%(VBQ7~r_0m6zV_XXKh1B6H{<^@hp0U~CJpV)qp*>Jl zU$P^vZpcQacMr3iKzwgRocoF3zRyviB<>Xo zc|Sbmu=E#$jqGu*;Bw@S zmH%O%vcc7iS0w+Tep=;$v__T^*HpU_2>1_h71Y<7q1_m8__aFpeqq#Qu)HXUaiAO6 zCg49Xvf^1#fWPdq;~%}8fUi@M#Ii&ZslhX}0ugocRl{!&&S8Od`1#NczF5U2ta~;) z`tiv&W2Pa~s}U_dC+L>=+7ZOeB-7(B#!;}L$3_9pwh(}J;CxU7=6=hKayy?WUT#FE z{bbJ_u$I-AA&q>@=H4}qpn)GDhwuzpC9$Noz8QN1MC@i7P$sJ%XO@dgdOty|imssM zFIM4onrU4qhe}3?j8SyndgRqv#aK`Q)LMStqo0hZ^6wTcA6gg;}oY^6DJ)5Agg)2Yl1uD2HVIn>cnKW)Q$))4S&bWh2ofXrMjIk8ADZNKHy0@ zrZ^tvnrul2apr`2-=bhHa#x-(#b>XjTeDI9Lq_f9m$|86#~aZAmH8S?b`7<5sDh$V zk2li)O;%ps6$ZLp--Yy#2rJ~f)wJMg8S^T4aLITjN&i+RrzkDlO;mN%7dQR#T8aKs zX*AWO{N1{iul3wey{g`8rWxb;%m_=^$KY|oW>l~;MyaM7B0}Y8l{D=CuHBRcr}M9q z^WcnAjJkP8-S`C+GCsXGjda26s@!ff>jSv?sGCYPOY9ztZ4&>i#Z6y7(OK`+9ruyw zbKC746+T$Md^$$Vc0TlqGXe2Mcb*Y0B6{I=#DvP$G}JGQ5j5tCiMra%86F@e)qUyG zAl60*CJK3Pq1yFisafg2m@#I{!4?rS8{+c5pw?gwNex$Izbf&yAL(T6Ts~ z!Dh$l>upj^YkxI}{wDs(p2{-Y8%g#X`WP^4Wls* zJlRiAP``>uU$%g|WY%-bL+X`!oJyk;Fq_G730+Lo`O(;p?45RmV6T2i4g&ge*I0qh zTfLz301%{j1dT$Ug+6k~*sBzBz$W+kkC|7{JqSOHvC z+g~or^LAP!0kqqa7bB)BM#kYZa1u8|CL6(h!c)HIn26Kh$`fwrI)R*wFV$lQ@x(yR zxR69&d^2W*8t-wL4=3e4;MiQMVXi)b(sE|XXh4kq+LMoO&WK2h#FFeE39mXj@-|o5 zr7C|FY;qlB$A%{?L48S@Urkl6#&r{6iK~&_PWk|k9<%;1mRUT$dMb=W7Q(j&9f zl93j!RBz3nbcpLMq;4Q<>$@y9niXODLRh*SE-)oK)7K9Rfe~OQbO{!>f5j9uWuve{ zI%B5KsoAC=s@lWf%{|&tK2w)<2|RQTbQ*VnH5!e8f$jtWulZiH0q`Q!73z7@MM{d! zd>_8Gr|ARq&Rdac=3a$IMB9r*u@I`=X;+g1?G8vMYY zBxdLCEU);35wcn|a#SjxvIp`quhVvmn3Jju_3Rw#hl%Y`aCoFl2I;Q2f9YnIef#&sg4N^P3!5WFQ4#`91+nsT)f1Rreyf*#q0YFs+?xrv$0HkJ zLDAg=+-J#@@QtJ?^YBoDq~Y7hFWf$;@HmcvmufYAF<8*^hGpjH-OFA4-s*V~3sO77 z!fu)nNbHGY1zAcYTm&>0pZ$cjN8bUfCdkN*RDMiX;`;xGy|;?3q}iH8ZMT`*%xt%r znVFfH+RV(%%*@Qx-eztyGcz+Yd;Fbq&wuBa?j32~=3yRksdhz1E|pYLW$s)V;cINO zV;iG!QOgc(51JQD;E#X?g?}Xig3oA%FTNc(NL-l(%4_sSZ<>scuGw0(>0wvU$tq=H zDZ_SM_f%y=d0jJXsd_D{nsDMW#gaM=c~V+sgXD%j?D3rM-(KoRXM^cY;P0B>l~1|# zL{*_~wcC!0A^>6=VF$By@+U)LTU7*^649-0&mFCw>X)4&@sx&amwB*CFDO(82Yn$8 z?FgEBPHW;`_)uoe2r>MRYOVD&fM+WV0Gid|*0`pJRD9bzPFBfKlf=vm_=iQe^cNWv8=3Jt{tyP6b|D)SZ#l#(La zk*a6l5$yybV8Z+wC_zu{iFJXCk4s-icW=JDy2E4Xo|7**j#C^@lbz{BPo0}A(}=`j81uKd_`w{&S0;HaC)^L%b zF-w?P;tih3v&KbUMy~TWiAAKs6*)N{Alu;(W}HrjH-AJq2|849O&GmU=q!Y5GY=-s z71xyen;9{#qp(B6^P<)6O#Lj$R16(B;EP5VfBEZ&+q~@~JR)rToU6LOBOJoVxX53N zO(&e5Ab$-l=wShvE^}(rrbaE=lwB`O50VavMdQX3O#-Sd&qG{5{y88_x(gOurtD(b z;1H}F6Y9@Q8rxe3qfMmB1uit#Lm!lR8VZG54Sxtbl$4gc*Z;F#Y{zZyK$>KXWOl$8 zP*K#3qeL#+*{JO#naZV!G784J>KxVUBc<5eHUO#?A*W)|05=4G_DWIg#{73kO6lhT zVey9!UvZ=FtGag4N!%ubHy6Mrdg3v-YH!g<-iZeX!&(x0_l z-=9DpUOs_zT)gH2^Q*AK2vCyPqLMPgBm@Y%ybFl;*i5dXUW+W@7wn}6aQ)@|+E8IT z%mnVfh^$c>)*wSTLOpUN3*9@oDQ_!IJb3ZXer(y7-r>))Ah&5Dy<&hc4`n1QJVx=NJR0k~?X#CM6u3|#6DcHLg$?*xtfFyQ{r)fomxaadKp9+y2pDtY z_LPdyVudZSKv8DJ=_$e_N%KGR)QNr|sVKeyr5nWn4e%g^QNe#EMT97`AB*Fi5Td1o zOfZ==2apCu$PARXWRRi5FOLzD`X(t2rCOss-k^L=xad3JTpF}8xQ5FwoWN07>sDAj z=^L>l#yI*{1TeB9rACogqSA`rR6$3ECh=|_{yptN3B?Ec^o4da;;MkR7M0@6x>@Q4 zmSH^q3nJZ9YY38IRp`QWiDN3MMg&!b**Dx>A<%IOoKvzA)lKbwka}3nr~|*$bFN^a zC_SAWNxs01EPn^rEX@`g{ZE zvFj4{(V{vc>)AZ&@C7pf_JLwr2J6u@M(~Jx#J4CVTLDTanP7`d(Yy?T63OLH8eZn= zp1y+O2oo^w7|m?6m?5xDO<@>9?ILT|hW);UvT8q7FZ~H{sHzaih^EwOPPyrVzF;Dd znXIvn!jOu2;Q&`~c^VNEw^FnPK#-u*jeb>7R*6g=h&Xhy6ovu`PuW^*`Z=fle}>(&XU0yB4e}{EZLAUAbh$#6p`W=;V$5?wfUp~ITL%e8Nq^b=1Wv+ zU54!5Knf|v@uKT6{qo2aW;`lQ3C-bMiQt9U!`l{qO(wIhD0FXCRL!zI!!36R0Zw6wFtA|-h(0;*+@JP^z#OFV<^B>&c3BaZ_H}4Q>W}SbZD@cd@mh4yYdN1 zT9Oco$_zNc&%NxTGFs&FB&H|}eIhld6u0b9@=6`{YB^-+S=4uniAFP* z3ThXi8UW7|N_EM37h8BoOo`U1(1DYxc>YIuo zE82R&MjKn83?1G{9I^33f>Gmj%3d7Q!oe1B7SkXzthv#N1Ldfy(*qM@%9O$VIt|)u zQG^f$viPZOP>I&*7ECrp5VgxF3O2&X3lyZSQz&?qbB)f%J$o#k{%`O~G zI``IN-6OIwO_9tCEizS($&J9wV5K1+ZB(M}vQ zgV~qaM7(ynvRjG7 zMZ7|b#iHU?$GW2kmY_PW^9Xq!Ro99O`trKP4f9ZuYI!8y+P+f$-3NlpFp8uYkCwyX z%4AKtOb2oWm6R~BY>ev1pHS^{la?8gfo#!SfgUo!!xmX1aVf;NET$T@0Cy>{Qq^g5 zD26k}mwS$a94B{jq2bD?_JXo3BIXXN*wKX`-b=-Vy0{?Z3AkUE{Cy-j`Pn!o514n% zN&`+5l0^Wtj(tG+u}4hUi*^~dbDT}^&}ow;KknPdrQKwiWH8bttm!BfQ9=798yiqz z1O|J{Ges=X&LcZ}k)MOwg zh%zY`95lEFiNrgtO1$CtC!;7%O>%pJ-@~w;2M#19Thn3eI72gF2gejVRen#HP|uK; zI-A~|lpQYyE2DCUU_W@(;l;j0ffJSu8e&Fv0F#?MjHIo?Sqi45Hpt1KHOo7y*#^gko+7V`4-hp1D2K3^#VMx% zM9m|cvZ^V6L%~&{N@MDpv#`Qwh0#MvZDJt`lZ_ncq-VuTs5J6A$BYjm2u>sM~m`` z|80Sn4M(?#{2=Hrn@Y_RG!Irqx>*z@N@OUJE?;haW4B^3>jtgSkwtAO6>o@KR~3C) zE>5Fp4*@HYy{h?>+dcbThB8zasfTu>W9sYyp}`DpjgT_vehe zHaK>Pyj$l&!dk#Gm5(jOvFPkyzuCWk;P{1QgL-3%@?hutJZMXmRVjaN5@M++`xE1i z`cdk}LX&#S76-eFVX~EZZ@O)m-&9B?8;M_1nvK_>oWsUp=_Z>4m5k|cRZT!YItbQ2 zh&Vu-(iYG_z*GSW<`m+;jV$WhgzL2(u;jD5Xu-9GHSrr%43;gH)Bq1S(p0c6*t?Ek znOqP;qQyyl3Y9ox6?ZjBnv;VKJ}q&{m4+U$HNpCFi}E#QR(9p^VutjvV+*rTOsEQ) zvt=V|>o!B%kdiYKJgkFr`rT*544bC?&q+{)LTK9ie^a8Hf0pSFi2S9rPJ>cT(q;Cq z&>^XCMM~SS>^Gy+KqW4*h-XoI_;cuui5Q(KE~&)<;ZG^pBRGum)EaF==o0tEq$>u3 z_ZaZ7ea?SJPKXO5JR4n*gk5}LL(hz4os%|E#!UZut%PoEb@@kR6cnD$1V_ey2N>9# z$)|xndRM=JfP^}DE&$HXPTwzX5+e^m7*yZSxC&}`Z3BaySiz=3@=XG{oCMh_?0&_u zgk2R*`6LMDE_vMElO=0W-N%gc$i*m)7xzNQr~WI|U^p@ckA zzj@o97pK{8`hW-8cVws8FgOFtB|dDf5)z^q0TM(!8Kwlzzm5@}%(EN=%8ZgQ8GENb zi*vQ3bl-`Ai72)_%ZR%_4Ow|GLw<=rf9xh{a8K^2AYYmte?&8BrfM)_T;oT27Hj<2 z(bxb;VKt+?Ch~4*DeZv&8+lA! zbwieLJ2EvBfPpo2vTKP0Y~q9#(@RH_D&_tGYTAl#2P#xKwRrg?Bu|A>FBYx5T>y4! zG#gn5^T-K{g}Y9y*gRJ0BF@bXEunu;qo5#gq#NO6?+hdG9Jt^nwN43?;_g z(E@2|2gPo}P@_p_mcM0~3?6HRK1wQLgYoZ;Je5980Ai&j^z}~0>!J2!Wgx8zAynbw z-Y`xyZ2>7lmc66Q*JI%jY*26U46$7s6vq6L6)H~#Jf}ll7?^$Zde7j!*>6~Qz$by= zq57A+SNGeZLqE(>=FnP+uOKsgJ7aQ*2WbD`6eWP(!pK@f$C-~yg(E134}-7W2nT$S z=FeeBqD0?g5cF`;lV={9KZM0LFjy%Q+|$9Q83D}OKz*elNMUN=jOVtdjzbMdAzF6~ zaAi2nAZsF0WBWZfoT;UNI{{8*sHC5HHA;Y8+bob7<3?R{m05(M*^Z(#UR>qDtGsj| z3oaeVP^Cb@OZpGsZ7K1EyqaDLs^KK61_!L9^zK^?Q*j-6tICL>6IIz<<%%H<RMV;XXK;eeCy01g<&<$s<>i`0kzD)DnJySa z5OTOxJZGzB37J-f%WV9Kd9u`66LsoiME(x`5ur083yLCN0> z)PhjU4==|+h797T!2%=9SXHV6PE47PwsBCwNc~Us=M~C&%AF{6gHg#+`?vKwf3Tt` zE83Dm&JnsR<{(kpajyY^I%Cb1M$~{%%Yy^{f{@`EgkWMw)5!Jw4#T7e03F>nrEx+Q z%BH2hW}ASj#?2IQCsO^rfs9(+H(^h6BzlL`~7pULe{P7{t+GW1{ z6T}f?s`n3Nng$vZ;R73>%Gn$ftm+YD%noT${xpr!lE8@KX!g!ZJ>A z817&5O{MWyXe)+HIIK84W8iNMzIaC&rngXcNIBs~33cZN5GCk7i`)(pR(xMS_BaM~ zkP@ANYEfo4PPBXr4>=JT)df~|sHUJDp;(yADUeuqkXKu7Hoi~d#jnFT$M%m>{6JI2 zA@3kv>ej+Pxr@}2axObR5M2D9m-l|eC(m~O5LPW%nO!c-9b3EDxHLV`1e=6bOz#b{k<_vM4Be;uNIr?kogK&=xW_a?4O`kGL1zE z(`U}?;k#*?`CNX!I3K^Qa0Y+iCb9$B%3C@~cA_Z|V*Mx=MU)Q4pw}*)DW?~#oySJ# z`9h&irb$Vo#@;~4d}h-}P~ur!Gb2<8cNh$adr6-<`^9!zz-5o)tNb;Z`&&6SbR74W zA0Ki$mo5+jAo?$L0?nscJamBHh=G%y^qa{<7DY-h-zDqH(5>L*Ytoeg3%M!N z0Q*cf9=Jxl27mEsPjZL~W?%2u75M`G5c=NCxq_aF!2Jf+eov|feB!HpTmd3gxHMtJ zEkQWnCu;5<)E7HBwrRarQYJLMJoog?oelh#n8O1T+3FXWnxqID`}Rjd<(Fj5=fUk) z_xQq&9@5(vtJ=gSaq8fYvvUQh6JP78WOnAmJzGzBWHX<@8@nU;-!7h#()r4ht#>#xZv z@63gRRb=PgIB>zDz=j$zLS&w{k}?WTAw*0XNrAROUc`hA=6dUZZ{+{TgNO7d2%$MV z$17BOO-2^k%@!d5#hr2Kf*C1#N=BZjnUp==vJ_g;&Ic7>M9)*fSzZTvh2}3EP?SC0 zfXLRGf4vUkzJG-&L{$DfldC9T404U4b6{0?Y6<5_e)5A%m3ZLX`j9gr8=cZ zU`MbeYg!M1TdNc;J zM&#tgxIU1F#PQsfqIK4C+Y`}ABVs+Sc~@?Z9a_lQE1*9w8~I(s)rbxIl8~G)fkNJ< zpTGg&fgLd5PfqJ%)W&S6a&$yv)jWf z8la9us~k7SM4z#!u~$Q_muA$OVF7bSrTEGkL}P(YS6|GPOz|Ioz7;bp#2QU>0$IIg zc+L9nC8p!pMER>T^#WHz5d1XhT9ECGAnr`gjzWvl(J}5s0GHS@F4Pud+9z@hf7$Ns znwt}8&?#kdm}&A|%J`Tuuz<5cqC*A+O$Cq%Ns9s}14{%*jQq3W(4hs;1*lO%8RdbI z@}=^|@+$Kz^S1=p1eyh4@?{V(gj#Z9jj&YBL%-|aERza=Sh~65{HCMP-tm}j82kOPX zB`R_fJBd7{9=ointpd-nS1wZ)Q~YU&HANevZ2h(FY0M%U2i6=6V73x$%bT@lZr4(@ zG%qdO>kh(Gjx=?x-Aj#S#!6CftL4x97UQc;8)U5(ns=)w7ws&o8mB$X&$1R@s$Cm- z=i3^bMb1VSS*rCKeYO^7SUai#)`n~D)`zTm*lQ`a?F|=gO>3){mYxL{15L@+mTOH- z7nb<*J|68Io$c8c2u*hvhHoktcWYPXz8xRMkFKjr%~$8g#~3RN`9ezumypgRTqaK1 zOE+&Zp-qU3YJrTTkg-woe}gS2;dHuhC~q8&fOaM@7%rnzsskq`r-VY`wdAK0+UJ zr+p=TZNH4Z#$LB(zw$rn9=^)Hnty=99%Jca@FR%BJ}>xbfxo-=jQv=IfA-m~^FM;^ zhtQ?3tb={XWMpKCfG@Ust@vcPO_>^Atui55-E|oYwv3N7;iptVa!Ea&O!BDRWaC8{V%`b630{jdQM1SUjW5lx(Mq3UpDg z7Wcz5bE3b*w%A|OXRrrh@tK^Z4acK@r^K!-yBq#mO~33Yz8jdVHqG)0d5OBkgqd>t zh~m*fZu8Pfb>&%qxLN-E{qXzuZ(E$V_vLES7>+rgLsC;-yF-Y**XX&}$k=xG^$7d+ zK{*V33_j2Igd06sc6Sh#eBK>@DEw@ez_;b4T}%RPAT8)Ph+8WV5V_KZtLeRtu>ufp9aq{cjPIl zY}YS$J=q+34o>%(eP^Y%5_%;xSq-K}$I}6&FM4O0DNG*eDIK0%8EmfTOqZz!x@o`+ z$t%GtOGyv(^4>CS2X<~apHu@9nIZfQCr8wMd~_OcY;A6ryq*_PQ*t|^hh<%RFG00ILLn=Eg!C`CXbDpt1 z+Wsl&I!*iP^6JR;?V#7$%e2n4;n;0jiheiw;B(A1ruN8lg@4}N)4kkH#SeN2wg|ej zJ-%I;uOt*cow&nm;QO3&9dkEwXUpmP0hR$%)3&_<^GjR3^Ex?Fwv*g@rv46C zCd~7wBRY<~gfUtTF68XiYsHn~c&Xf67MDd-z~a~FedQbNnXkray{~pni`VACnlJA2 z!z`7k&P^rNqKB`ZBuATGRLU^TKx2W?(_0oA}-^9yXV}#|A-dmsZ zxwG#V+-;_o&)nPEvaMcjWwz(h6{k8N2bQxI#CLyEI4hju zEAc(g?~ZyK!;MAo^_oPk|79U(rGunbe>gIoXv<^le)>{;MC1KloA~K*HD}80{Z@~h zI^kXN#iYhP*WS_PH3Voi?e>WAwb{6v%l*0z-iE2vEznL%*xbZdnym>xbUCMP6dKyf$#oE+3 zm3_P6y>-^D_lK+QEs|#!!P}?B_-e&7^%8LTR>n5Bw)V#2B)C^79pvM2bx#{lu;CbbHJ@t_5dvg#H zz2-Mg5$s9S@_Hs#1DWz~K*bCaRep_!05-Ti!q9Ys2#r`K@4q+@T~w_`iS z`!Fct>u$fm*SvKV*bwQA`iJbUI7@R z1McESq(-3T%e7diG+)du&cPQJ;YzdVG<3VH?@v)}L+^{R@i#lSxn8Q+@R!FY&PONP z&0oDcr-jCv`(jIV)f*11$9`aEsy>0HX1n)UReTPrbx!Ac=C`Nt?591A!bIvqTOF@} zUg0*Z)LRF7y}d)Y(rs9So;jI?qW7<10f8l8TE9U0hvmRZO-SLL}ViOA4Bj0im2!EfB+T*uzyW_^@ zil^Lq)B!8TVhzp=jJ4%P`#~VpQkRYfgd4W$#c^;~hbQ15f#NjwbbS}!?+w7K@yF<( zfQIT4YO2$7G4M_GFWZ`^oI+K`!)}@m4BPKw1gWpQC*F>;xhGfJDzV)4E{ER1oLUcF zjmP`>nPy#1k-c?>!^)f~6W&hg7lmxSx?0D@dY(oLb7P;rk2$r8*L%gIgq24wG4qbp zNzDyF@W=IPviITY(S+nhpNmiPWA@yo`$76arf0sK2_1)dldD6s-COf)*(q1|O54t5 z@`+sO6;8YB+)(AwYO`;}kHFWzt@|eYzEy7qnsm&+k20L8=(1SP+FQ41h8JDf_0*jo zt8!#uTzKkVS|6yGDqkP&y&Pu~C^l@Xb-)UkOyy{s4PHcGQm?c>ZRngHYHr!EQ{#E& zs1na$ma1njavr4Vn8~zU9y>g?`UpNdr>|?-Ivq!5IS5>SH_2?YN;mtcRGW^g0eCZS z6>KE8yZA1ELi!bMsBJy}4qU%X%J!uW#G&PkTqYez>o}Ihg2omy2!hExKo~9<^T+=fPQhN}bdA zzpRggk&YhpYahMj=r93q@8hLhN3=9gU0;0vRHx!Lnyfbc0s;~f``@ijW&A&_I@NDu zU>FEOnxCaAD+;4G3YLEjtS2C<3KB|)Omt|1nzYKwBtRb%oTR5EzC3It=;4b79M42F zFMB)y_7S#Q(|4$Q#r13D>fz=yy4�%hx)l_POIs&Uu75b1&Q0OLj61vC)3EggG}c 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 U1z@`p@Z$py1SCTSa2J67KP@6to&W#< literal 0 HcmV?d00001 From 46d2bce3237d0c76f5c9326a1db2932117e3b36c Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Wed, 12 May 2021 10:31:36 +0200 Subject: [PATCH 09/10] RED-1422:updated version of configuration-service --- .../redaction-report-service-server-v1/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml index b0200e4..30e42fd 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml @@ -40,7 +40,7 @@ com.iqser.red.service configuration-service-api-v1 - 2.5.3 + 2.5.6 com.iqser.red.service From 92ffa9bb74751c192c441234a18044745f9779e7 Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Wed, 12 May 2021 10:33:03 +0200 Subject: [PATCH 10/10] RED-1422:updated version of configuration-service --- .../redaction-report-service-server-v1/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml index 30e42fd..1b21205 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml +++ b/redaction-report-service-v1/redaction-report-service-server-v1/pom.xml @@ -114,12 +114,6 @@ 2.3.1 test - - com.iqser.red.service - configuration-service-api-v1 - 1.0-SNAPSHOT - compile -