From 6fbca62e5b0a12853d321343008ddbe4e845eb73 Mon Sep 17 00:00:00 2001 From: dengwenjie <775747758@qq.com> Date: Fri, 18 Jul 2025 12:28:06 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81OCR=EF=BC=9A=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E8=AF=86=E5=88=AB=E6=A8=A1=E5=9E=8B=202?= =?UTF-8?q?=E3=80=81OCR=EF=BC=9A=E6=96=B0=E5=A2=9E9=E4=B8=AA=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E6=A8=A1=E5=9E=8B=203=E3=80=81OCR=EF=BC=9A=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=89=B9=E9=87=8F=E6=A3=80=E6=B5=8B=E8=AF=86=E5=88=AB?= =?UTF-8?q?=204=E3=80=81OCR=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E5=8F=82=E6=95=B0=EF=BC=8C=E4=BD=BF=E7=94=A8=E6=9B=B4=E5=8A=A0?= =?UTF-8?q?=E7=81=B5=E6=B4=BB=205=E3=80=81=E4=BA=BA=E8=84=B8=E8=AF=86?= =?UTF-8?q?=E5=88=AB=EF=BC=9A=E6=94=AF=E6=8C=81ID=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=8A=E5=88=86=E9=A1=B5=E8=8E=B7=E5=8F=96=E4=BA=BA=E8=84=B8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=206=E3=80=81=E6=B4=BB=E4=BD=93=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=EF=BC=9A=E8=A7=86=E9=A2=91=E6=A3=80=E6=B5=8B=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=AE=BE=E7=BD=AE=E6=9C=80=E5=A4=A7=E5=B8=A7=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 65 ++- examples/face-example/pom.xml | 2 +- .../examples/face/facerec/FaceRecDemo.java | 48 ++ .../face/liveness/LivenessDetDemo.java | 4 + examples/objectdetection-example/pom.xml | 2 +- examples/ocr-examples/pom.xml | 4 +- .../examples/ocr/OcrDetectionDemo.java | 76 --- .../examples/ocr/OcrRecognizeDemo.java | 145 ------ .../examples/ocr/common/OcrDetectionDemo.java | 113 +++++ .../ocr/{ => common}/OcrDirectionDetDemo.java | 35 +- .../examples/ocr/common/OcrRecognizeDemo.java | 206 ++++++++ .../examples/ocr/table/TableRecDemo.java | 144 ++++++ .../ocr-examples/src/main/resources/ocr_2.jpg | Bin 48680 -> 247054 bytes examples/translation-example/pom.xml | 2 +- pom.xml | 2 +- smartjavaai-all/pom.xml | 4 +- smartjavaai-bom/pom.xml | 4 +- smartjavaai-common/pom.xml | 2 +- .../common/config/ModelConfig.java | 56 +++ .../common/entity/DetectionRectangle.java | 1 + .../common/entity/ocr/TableStructure.java | 8 + .../smartjavaai/common/utils/ImageUtils.java | 98 ++++ .../smartjavaai/common/utils/VideoUtils.java | 77 +++ smartjavaai-face/pom.xml | 4 +- .../face/config/FaceRecConfig.java | 20 - .../face/config/LivenessConfig.java | 5 + .../face/constant/LivenessConstant.java | 5 + .../java/cn/smartjavaai/face/dao/FaceDao.java | 6 +- .../cn/smartjavaai/face/entity/FaceData.java | 19 - .../face/factory/ExpressionModelFactory.java | 3 + .../model/facerec/CommonFaceRecModel.java | 20 +- .../face/model/facerec/FaceRecModel.java | 19 + .../model/facerec/SeetaFace6FaceRecModel.java | 30 +- .../FaceRecCriteriaFactory.java | 15 +- .../model/liveness/CommonLivenessModel.java | 3 + .../liveness/Seetaface6LivenessModel.java | 3 + .../face/vector/core/MilvusClient.java | 144 ++++-- .../face/vector/core/SQLiteClient.java | 49 +- .../face/vector/core/VectorDBClient.java | 16 +- smartjavaai-objectdetection/pom.xml | 4 +- smartjavaai-ocr/pom.xml | 26 +- .../ocr/config/DirectionModelConfig.java | 19 +- .../ocr/config/OcrDetModelConfig.java | 8 +- .../ocr/config/OcrRecModelConfig.java | 28 +- .../smartjavaai/ocr/config/OcrRecOptions.java | 30 ++ .../ocr/config/TableStructureConfig.java | 27 ++ .../cn/smartjavaai/ocr/entity/OcrBox.java | 20 + .../cn/smartjavaai/ocr/entity/OcrInfo.java | 10 + .../cn/smartjavaai/ocr/entity/OcrItem.java | 1 - .../ocr/entity/TableStructureResult.java | 33 ++ .../ocr/enums/CommonDetModelEnum.java | 9 +- .../ocr/enums/CommonRecModelEnum.java | 9 +- .../ocr/enums/DirectionModelEnum.java | 7 +- .../ocr/enums/TableStructureModelEnum.java | 30 ++ .../ocr/factory/OcrModelFactory.java | 68 +-- .../ocr/factory/TableRecModelFactory.java | 119 +++++ .../common/detect/OcrCommonDetModel.java | 21 +- ...tModel.java => OcrCommonDetModelImpl.java} | 110 +++-- .../OcrCommonDetCriterialFactory.java | 53 ++ ...ranslator.java => PPOCRDetTranslator.java} | 23 +- .../common/direction/OcrDirectionModel.java | 15 +- ...2Model.java => PPOCRMobileV2ClsModel.java} | 332 +++++++------ .../criteria/DirectionCriteriaFactory.java | 61 +++ .../translator/PpWordRotateTranslator.java | 29 +- .../common/recognize/OcrCommonRecModel.java | 47 +- ...cModel.java => OcrCommonRecModelImpl.java} | 386 +++++++++------ .../OcrCommonRecCriterialFactory.java | 51 ++ ...ranslator.java => PPOCRRecTranslator.java} | 16 +- .../table/CommonTableStructureModel.java | 160 ++++++ .../ocr/model/table/TableRecognizer.java | 454 ++++++++++++++++++ .../ocr/model/table/TableStructureModel.java | 63 +++ .../criteria/StructureCriteriaFactory.java | 60 +++ .../translator/TableStructTranslator.java | 198 ++++++++ .../ocr/utils/ConvertHtml2Excel.java | 233 +++++++++ .../ocr/utils/CrossRangeCellMeta.java | 42 ++ .../cn/smartjavaai/ocr/utils/OcrUtils.java | 123 +++-- smartjavaai-translate/pom.xml | 2 +- 77 files changed, 3544 insertions(+), 842 deletions(-) delete mode 100644 examples/ocr-examples/src/main/java/smartai/examples/ocr/OcrDetectionDemo.java delete mode 100644 examples/ocr-examples/src/main/java/smartai/examples/ocr/OcrRecognizeDemo.java create mode 100644 examples/ocr-examples/src/main/java/smartai/examples/ocr/common/OcrDetectionDemo.java rename examples/ocr-examples/src/main/java/smartai/examples/ocr/{ => common}/OcrDirectionDetDemo.java (66%) create mode 100644 examples/ocr-examples/src/main/java/smartai/examples/ocr/common/OcrRecognizeDemo.java create mode 100644 examples/ocr-examples/src/main/java/smartai/examples/ocr/table/TableRecDemo.java create mode 100644 smartjavaai-common/src/main/java/cn/smartjavaai/common/config/ModelConfig.java create mode 100644 smartjavaai-common/src/main/java/cn/smartjavaai/common/entity/ocr/TableStructure.java create mode 100644 smartjavaai-common/src/main/java/cn/smartjavaai/common/utils/VideoUtils.java delete mode 100644 smartjavaai-face/src/main/java/cn/smartjavaai/face/entity/FaceData.java rename smartjavaai-face/src/main/java/cn/smartjavaai/face/model/facerec/{criterial => criteria}/FaceRecCriteriaFactory.java (86%) create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/config/OcrRecOptions.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/config/TableStructureConfig.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/entity/TableStructureResult.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/enums/TableStructureModelEnum.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/factory/TableRecModelFactory.java rename smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/detect/{PpOCRV5DetModel.java => OcrCommonDetModelImpl.java} (81%) create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/detect/criteria/OcrCommonDetCriterialFactory.java rename smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/detect/translator/{PPOCRV5DetTranslator.java => PPOCRDetTranslator.java} (95%) rename smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/direction/{PPOCRMobileV2Model.java => PPOCRMobileV2ClsModel.java} (51%) create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/direction/criteria/DirectionCriteriaFactory.java rename smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/recognize/{PpOCRV5RecModel.java => OcrCommonRecModelImpl.java} (50%) create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/recognize/criteria/OcrCommonRecCriterialFactory.java rename smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/common/recognize/translator/{PPOCRV5RecTranslator.java => PPOCRRecTranslator.java} (87%) create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/table/CommonTableStructureModel.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/table/TableRecognizer.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/table/TableStructureModel.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/table/criteria/StructureCriteriaFactory.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/model/table/translator/TableStructTranslator.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/utils/ConvertHtml2Excel.java create mode 100644 smartjavaai-ocr/src/main/java/cn/smartjavaai/ocr/utils/CrossRangeCellMeta.java diff --git a/README.md b/README.md index bd0d242..cf5949b 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,19 @@ SmartJavaAI是专为JAVA 开发者打造的一个功能丰富、开箱即用的 +
OCR文字识别
+ - 表格识别
+ EUIb zV3h`z;8@%aEW3yRU@ss5Zq&!XHwDBmTa{a2i>uUO-r3RvO@8=;wB*Y+0-%@fU*zRo z>Lc-iGtk8z0$`=|gaE*Et)am9kdu+&aRMOzIRS9}5F<_ifC4u*h&uET6^^p#1|Kt~ z;TCeN^bQWm+8c*6?B|sT0Kb7g+#+<9;IWB`PP0D!f69}%BI8bZ57S1K+j2k-}a;sR&qSC-~BbR_q)34rFcRr~?`ko3Q* z{0%?RKmg>_!OqZdObHH3oSeT&>uhPGCIChj8qa5-=n~KhGui}qb&aTQ5ph7U?>ybT z3)B5{34r;-L#W^4Imv%j*bwS$2_3P}yTmMFjY8lAz~6)|FM!DifQ >da+2}D!- zm*PWT6Ez(tjs^aHgPg*+c5@MQ|2zQHe1LuXFS>&M%N)bO1i;^9p$^1}o_2Ir9^wnb zIwxYnTZ{;R2MW;nE#fE;0JkhTvbG9ejKj|$EwK4B{Qdu`DR3qYcr-PR$IB4_OyCLv z;P1lz)qx%^2oV5Zvf%s2#36uw5ThM_GcLBZc-dy9w|`0essF0!|Cu-D;ct5|L4WCj z&jJGiK=57`@(o3&v^NL1MdHi`696CnMbjt$;yETe1i-)gcHaNRH~(? i (73CuqU%>Q{h{Z9h(x8(ot+4VoUIx+A6dwTs(uFn2XuKrJ1 z`uDQ*$(=mD%tzJtZvxL9x*HK_M|tiX%+476<=>0n+XO&pAcPZeu9(nD&1qNhyYCiv z P+03+FG9dQrf+cbg#rukH5D14q>Pq}Q z6YWUr$hf7n*2fDv4c(;#fKQnTYyom=n>IC2(!{jCE%3cOBT1{EVr?2ve)=t(ziICX zuh4OHVNxB^S4DrR?N1+6{Z i?MgpKs z3|a=JDcv~NJcui}$gqPR$_)?zyLVvg& )683mT`+BvBUm)O3#e4}lObQ4(Eu3>)TE?#vZi$$#D}Ey<~W0|CO(=}bt;cq zB?n%LyVvf5s?xAo)1Aw6dc6d|TT24K9DR9kQV%;wT&*QSWK|!4sPQ(y2_yR8&~m*^ zD+09or60O0nYJ@~aqt!Sze2<|^g(5uP~s{4)WCRrKM`@BQ4E|1SKtT!;|$+;`T95# zpA@o=SA?yAFWgDL<;J|c`TQ~9|BpuqDFM*#%u1 mJY)mTC#wyW+J7LW@i_B_2)3U^bR3u%WK-oq13hRMGzv0l-^JWGSY% za2C2ay*_z3UY&aUIC|4>amNF+2<&qqg7Wq}pyeV6$+jbMcC~RRfb8sIcH|6kXnsNf z{LuoT#&ZD2N9TV iYvdH 0>hHYR=F?1@xCie`1HVqM!%aJ;x Oc4mfRO6Rv`e1-;vx{!m> zYJlIj;*b+2zYL4nrAv%potmFCtEXR$hh@R~gmb=cuzO}}D5=w@ ZgZ3Oj84QS1E%%67| zd@3MsX|%6P-3 p$IBST;i-Tu z3OqqKV7XsJ=7@7e7ln6@Tb%?BPuNzUEzG)=*DIk}vs9Tg%c8sVJI4~rjZ}ysb!U%irfw@bu+scMJ=n~~8IgdD~WlS`Pbq%~6BhnpxAp1r( zV^GwLRI_Am*y#^BDY9oz>o^&_CSJR&-$p=yGHg#`swj(H34of-aknEuBE6&0P+J~f zw--#ui*sB)ci~(lAOGX+yk|e}ehi0Z!|!7|_eQ3%PRe6}ZoKjb(`-a?>0LQ>JB(gg z0qH@v)y6Y+BCI}MD{s6qW+srppCLQPgp|A~7U={i3 KDI|pLe+4vr_ewN>Ao`9Zv_gqd%WXeQ8U7M&m_)G&Wv^e@Wj`J`- zl!rziCh&cY?y@)iWR=Rus4N ymN|t`@MgRoa)-B|H!wL_z z1fVmQr#sooM6qrw@k*TpfIG)mmp@!g6CNB9y{q#5^jV${4yON9#CBSL-IHL=xOw-F zoMMuOSxtpsLCv_uf$eyyc{Xd1=BICCg{jrW!WKql`=4443fmk@&kNq#->o@HosSE$ zUE~Vhs_ G~om# zxA*nZPwu@9svGgMf_amhKlI3Z`-+15pmW}y=J#0!irGdUE)Bj5lYtFokIr;ei|9d@ z^*3n4A47M?f9lEz-#LHdrQcjT9>|wGX?a+QRZFqQ+(kMg?-~{9sc#L7YSew2EI(_T zg^XTuCr7^MylN`|ELQ++p!(0daK9AfHx?Ta&e##$C%9V$rGN6WFRU2rh&~8cR$1x0 z$&pExfsuZcoWRXC%Sx(X6L7o~lo$thIe1ss#y%w`O&7Dknrs}ao4#vfR$i~+De*)6 zLYzidopS4Z3Zr{(8Eb42ImDZ_bX&cUX@$Mm_^zs9{(gDE;7OdVo86ejM>SACnw393 z!8ZKVJ2uOf>f>puMt`4NX;rXz;|V5Z|8|D5Z@a?T2xuU&BYT~3YeW~01iu4TL$No7 zS14ja#Ai2Q3_kN5Iw;eL!U(s=`Ays}awCOB!aKjRQD?^l#$6AE8zXV$P)E7B9kfTs z{>L-M7faldx~_;@tMnsdEqD$jo_$4G6k^PB?;>B&ro_5PPr|dn+&c{1nxA#j**~QI z!p}{vJOIqN`lpO?>T6tqhJMNBz^sP)k>-AXA3hV?mVI4=G;td1tclX22pNTuxA>L) z*$iRAM1S20EZD_AE(^~}6O|sRgxN&a#e3J99{!~9S#RC^p!h*GpX!oEOpY@CeaTC- zp_d_2OvCUizhIB%-NSk=aR*q2Q_ei+V;XHs)XC;_oOxV $I*iTfBFo$X(T jz|cbn7>fkoF4(n5C1UZzc$^|*TWDfUEbtlQf&@v zQn!>WHxcpQIlw&@R=Ofl&vlfAWJ6K_6SYHRR^a5S_b`scxvT-R``a8+?j5+ u8` zjQ0M_kLvU_3fmy9LS{`DJ2%DGrMt-Bx<(NmE;p0sloU(8dlmB~Jth4zqN2b#{c99q zjsC1@I>!~LpQo?9U7)wzBcajPKQ;MS$;I7+_gCk1=Zc_y*J#Kc X=4IXLRN2xX2l2d$Hhuf*rVPbn!1yH~UpAjynd;ZX_nZnO$ zfo-vD*4!{}z9hE@kfa&R>Fr~IAzoP4Q5MyCITzA0EgF5^MlG1_`mn!L(KOBgyxTS= zCcUPaaxsu`IBS@HP>{%bcZG)83(TTMHJi$yZ^YeF7nkDUS6Eiwx>uJ|5@+Fg>&kU` zg#w%VS8dVXCVw#=-L(k}y{^Yby0u6EOlnD7kyE(LQx3cU?totg<+4S1<_R30AS-sV z43rNwsBV5d>4A={#bC2=%^=qUu8?7F1yoTaR@m0w&*{6rSFKA?qf=OZr+#w{RhwaD z`TURKzN@Pzq)ewpyVYm|OH4D$vE52(>T8VB0lgFHvrLCw-puAGs$!9@_{!@V0?O-c z7GynavY;q$ceYMrA1UqB&@QBtbW)r>tHuL4c(Z)1`$djAi|PPcAxBuKNX*shdTx>V z_3g2>_h-8k6-7ZlmB&9frM8~4`9|=)VPhq(h0FS@J|o< 5eKW(t zg~gmUd7(D$Wld79vQw?m3)bwhE1sPI#+kM-mgodVY6}+WIY9#-hflMs3DvVT?)WDK z=Cz79ON>kQbW<$Xr?w>~_lRu|6l%Z6+>r7JHb5K@k&O519n#GIbTy7~g03t?8b1I- zJqO-^*kHOAuA;3XuYY91!X3vSm;QLtNJAO^{!CKtGp`xv-p?iP8Mxhwy~OR_PC?#} zzoz3mvz{lTt(fbS?sNq~RH%+RCVlJq1AW&ME&j}ddYAgE Qde+z32PXJAqv14odN4pW+;`qiITWbZ#r7?`Rlb;7j$5T8jG~g}$EkP|#lfOtM!@ zqI7-}-~7q+qtqrVMA4l*76phf6cYlQjLuN!jBhx|+Td>S!Uv7 z+$M?XC|2OD4KB;yk iZ0lDI7fL4*|L(3*y(W3o(Mmq%CNq^(P^UCE5w|S za@^|2-W9ls>UIBW6Ev(-oZLUtDq8eJB}g;ja9uF$9d%9eT}zFI#MFCp$vq0khm!76 z{Zez&3VlCV6I_k8qQaFQZREQts0)d^)GEB*D*bhYvQ&FFD8=axj!4e>p FescdFp9v$Fs zVOae+6!+D*(~dE0ddDh)BSuo&*e$;I2j;@)NV`6H$N$y5COu4`Z5%oz-_d{SKAZg+ zGA-VPtn{a14L4wnsM*%XoBPIjaLnxFXkNAkItRJ$mOrt|=l&8*CMdwhi{gew H5k9IN?Q@=VE{ya0O_nMjgBFa~N&-CMyvrLS75W0_Zy3zQ%6Cy)* z=7n5t^-hHzsO30z!PXAj?6q@DQJEKT3WA+<2joGlFz(+s@e-q?J>8r#D|YvGpRyh# zmI+`*34n-sinuqDdiTYj5deA{mZ-rWLc%b59Ss4W!Is*PGdIY|uC);6Rb5e3oLxrK zdIXF%wUq!c`ID2r&eg~(z;+J3z+9XhGf`O{2&@V!G2_L*Q0#!YLdJnL>K~VYVQsQ# zk1%DOf{}{Nj0Y{_d&Ya5b2_J`{w?319IbwjTfDnTXO4lNa^V^vZs;I{)!lJbF=zHW zvAJ7#E{i=O4^{sut%E&k(<=^+(9GT>^`Fnj+Q3{0Hf{@;y`@4-m*QvaLTtCSvvu&U zVqu rSbP_G*v(IpII-L!jP8RBv29ya z{gvIVKA@{59o8@7!rvAp!=c4QW|uwrRIJ#-czSVtbQeJ%4!;~^_g(PZv2WYiSgZhR znlUwT>$x9atSW<$KwAIo&zp*q5#K6*To+km*j=J;_;wzckpEg;aT@%>a9h8a+u4Z8 zlmL)));u*A;8Mo>%EWCAS!Jal=cP{;i;^EazG)mrC7Ap6zk7g42!N$pl9t7H{_-Pn zy5m~}0K-gjTs$y$%_MO|=nQ?m{P+j#SB3k=znWt<{Atps_YZjLUGced76< z-VS&;hacLz2c0g!LEF#YfcRDjfOA%Hy;1JSV0_&X4vkH1g`Vn y#E^W0#dhj_MO4wgG|T zJDl)E#~lBH2mSBSp~SgGgaKBI0MPl#x~xH5u8L$bzgf-xHk*Gj*IPL|({(hs?;9RZ z;-Ij5pG~D<-&0uKpicHB^-D+6;?+PjIGwn_B+jVrECV~EAyWAk^WEi`DoQs|@lm9y z=yUA+k>;aNJ&`DGW%amo>%(`+RxAvT^6tRCYGovcJc2f~L!r%Qzo*pAASF8|Ye-bK zuCB@Px?@5?>XH|0)8uU(gCcQ<^)cOClQ{j!I-KZe^ X!%d0u!v7lo z?v99*mY_^EJ$a=)QnArP?AVehWXiNd5-;7D` g^+*SopCKj|P0Wgd;W5^Y*14v`)lWsr z=54Z1KKF&H_hoO?uzgGb Y(#ZJ207O_-Pz!11mMv2x&6P-ZjqPZ>>~S|H{}B zUX(5i%w%|at;=>mdv8t>n%!U!Et!>Jx-UN>+$q1}&f61gATscy+Q`e)l`q9wL-0w) z-PimoR?!6o*>L{8YAiFAd; !P#r@Of?3^1LS zHX+j?+?aYaZ)XVmgwNS%%?M*(zEcvyd5`4}Sy@?s%Oi`!ujy&>yAMXpk6u`u_Tnmi zN@-o5PWpJzbAj|}J>I|^X3E@cUTk-l^)L!2hbmM|F2;as&xqCMpM{-HD@sh|(z&u0 zvU!hZ>db8Fjn)h0KbFo?mYEL8iea;JsfL2zdz9C7rQYgIsfvuZu&sc?0_$VGLsW{? zn$dkIq+6tj>pnuP0zCWV`nK z>P6CqBKvt_8k&9ZJAR!42;??$`90DSv16*}!!1WDO#pZ^>7{ps9EeR@?dF${tQjnW zyAq?|*RikgVwk`)VgyQAp7N`H9Ppv0`wtt{50C=gnXc(Hkq<%50_#?3#-Q$)q(>1R zJpT5z19>+W #Ef&Xr!o7kRE+H z68aQdUrCB`C=n=ef)N{Iso@Tw>zhsR808yHwGpk~GD(;}I=vK2T^22Z4MA)BXhOhg z?uOQ}?z{ &Z*@rI7M9d@{Sh8o@%kKrdx0jBWwGFe{{1!nus0T z|706-Kxc1S@`qWD__mu#1UP^rdxng%&Kn)2&-wL##T7UySQt$@O<;ELlt-6p#A@j# z#BW81Ze>5OluL1pAEsmRo9c L9P(?QNtKRZU-1m_RBi@(tSbY?z2Y%%b_9@CeS~bkRSd4k>kXmrR zBh-`MMT+m`+JkdDmHR`lp+r=5k2DuchcQ~A)zlhyS+Qu9G=+c|l%2<|l)`7!e7K*c zM~ra@Cp~4l>>(vhvG%`G #gx{ODnr(H*p+= zab*(YEEO4GKjP&0dh&V2MLO9s=3ZPt*`0i(Prgs`Z@do{isJ1Y4;lLaxruokP=XoJ zBmmwgsR$TNJe)}vxmJ6W@6J;P7QAHzsXzam5WsZdlm~4W136~vJ%e?EQ8l%QX@}ad z=MCc`FpVS&J6Z;1JJp;)CI?G;xUa@ecK`*Jae*%U!Y>NzjUHHm$G521uW)JZyNI&M z_%*Rqc6+AQ(*}Pon-M8x`$F5073X$fW&I7JGlmD?XHgh 3BPrwj9iI=)}9mhP~y&zv|6CG xJRvC!}>)ek$G=r@;q=jo3F&+%d@ }I zoa-JXrXB&VgzhOViBtF&b YPz4g%o*n6B2#+fqa@;vsdneLXR?gH9nsXM5vYwl zZ&YG?9URrD9Q;l1%Z^0dhnawEx|tVoX=ZP32unZa5mKOSvE4rc8?9V7N?tudo6gM1 zbxpn+pmR2zBlj?ur}7aX(+$@|VaAH|4cA`vm=}EAMmx}nb{JP!nYsIzC*@90IrV6U z%Lxj-nN3M?ZOqbd&ECz4jKdEt0`P(m? Hdk>l_)@;AAwyA@ z=u0+gkm>l-r+nhz$s&%Q5${j5Q#{Mk`ii~N)BNqMr z_^0!obMMV#Uwc8OCQy==b#am{9NnJ#!RbaJlL*F$?qIX$MKS_p0-BIRjl->e 81X_%w3@ zA{F$_KWC@Y_u^*Aqj)DCb;q~01IyS=e(i%S?oMh9cjxH?RATqyRfs&k4>S4QY8x*c zeE((!wrkh=(BzI3jn@b2h;0f5?oaDrls=FdQ`!zEsSUR6P@Kd^mZ&$z9O?Ow-T(P6 zu0QE|x TWNZ zmFm(q4?C7Tu|WMCDT)MBQ|lMzzqQ?Y{4=l%Q#$ KC!80M zP+4wo!0S`B+~S{nub+G?XIUbTyfnj)d1AsLyl9u_4KJ>c$^F=7{3!9Ewf-WtzM6iI z+B1FO=Z5FjJFqt55{O@j`f(0qE2xsyYP8fHE~n(BZ0k__0Oox6>u4Ml`+NWcj*$$H z?StGKLQP088vanIBO86)0<2C-&VE%~FWBd;mP73_4 OYrCuRZL^|T z>=!v{_C932v&t+da%KF=a`{{A@u$h?>jZ%Qr0DKi4nn8CxmMK2H;?2=rfV2YKFZEY zU6Ra8?~*%Y;ZSx h3o6ry`WCaZ- ztRsg*>ns#VpI$SuNX|;B7Mp%}PY+v#xYD)@LOq3(3CC)A#3)9zyYst5yO%+>fP?Mg zbt4W>gb&}!ui71L+`Z(+FM6Clh9Q{-`1tdEG9c mZt2 z0X^OILav8faI$tsl=rE6*xvX99_fe!T?+T!(RZ`Lc3FNW8)w{3Pg05Xs-!G@-iGDY zOQ2QQxXh(Vq<8NTH)Ds%^7pp3CvSTuyWrL=_|b=un5>MJ0*6N9)|Kqq7?KK+IFt<_^DdZLa1y!8d>3EJD@agcPX z!{Y8k@_J*t2RBmnq^z&f!`FvH!hW_1VFhpvcxlVdZ&)>q*UFI2_mteqSe-sL*SOdM zc^r~4R5i )R7!xNo6U(@;$+zO&lRuZF*RyS+yDUbzjlmaX@q<6Ykv zelC!{PUAMC7uQF8#03*|?J$IT#+6s3%50kx_Mi?!!%fl$>W4EA- Qz|I}J2>3ICa(=-`ywfjaJiAPLPy<1o&za0fkv8}LNJ>_P> z3|)Fbf=~ eE;U< z)>sAGvy?pFY}8RPHQY 9=_1WO&%X^J@|3ha}6I~x$-MsZ=Fdg5^?ZWJ~ zj@F7%&d6{Az(H?jyu*s8Zu*Vh`vuW@G;K9U^|uyt@5s*zw|iZtiCOjJX+^G#CTVSy|2dDjdCFWXyE$w`+;u~ zYnGS{;Hk3D*+rxi6lFvJL@UOxWjA1?sGf*@z3R;oWHHp|bk{T*EcZ-^%MOwi+AOum zbj;>Pcl~g)h50!G;u2aA)74|dD`V8t#`8Kx*JImI|9$>Ub6WpQg%%w*d;55?W+a0b zm-u&GA@@`kdM4F?2ZBcKNtOw2V2AwVv1yPR$c9S|*_MY|S>HJgOR`?^o2=W~3S@mD zgiF7E?Ljps=!flj;MpF@ LDvi_|Pk7$d*@Rg4$PYoE+T3d_q>JE>=tX-EO35#6 zedn_5@v2Eq$})QKCfPW-b-!SvXs7lr(ledo>!%6-EH`CQnTMt$q3$}mLRDLL3WoS< zoOXhrV=wRvM7EgaE$Ed85MyDElAE;|uYuCkeR|^_C(4(ct-iklaS-tNvo=U>LHof| zVko%#lIO2y$lF*TTo@M=9LzpBT$%s7J74*i%;&cn{A+`;+51T(P4<1aV2Buu_~`=f zv$DjcwEs>gH#@4WI0$N6h6%3Cj6UePz4946Z_b)`XdUmH@|N*~?z-~yA8-{M%Q&zM z>xPAMQ(|Bxm_+lM37HCB^ZL3f=Et|5I;M(O58BuH(%99DA1ZK|g}i(~dJew@i}FHK zN8f(ivHE(&J}fVKD3#}cmQ~2mnmr}UK=*n^XzjrW)EBWD;ASNPG0Vj1N4yYOFJz}< z(=BnK7%tX_Pwr<{MT+jH!G{*X`5uQ$Isy-DnmX}44r-&*j?L=gZT)dkrZj~LzSaut{#u?;MW4?gJYQ-M<9>VVaB zKMx}WFhO4i*nradvp34&b2dq(NM+oT_rwL3gBZstG2*DOpF|WV>LiiMpXI@*jQ{W1 zf(01u&kQyR&bQ1-PKu;iO9}oP6 I#)9}_Td%`lf5dXT(y=h@al;cGFx65fW z+HX%DVvfJ_>rE@W4!2$Ef-s}6?o`5%|ItPk+2BEfp27jx5o?Fet|!7O5pBX~qd6_n zy5#&hJwcm?aqrlZ)b4^8o;D~o+<|iwL5ReNwL(lh=b8Q>I{#%7?~RYy(pb1)h}0t2 zb?@$wO8hAJ`bk9$m;&pzq{8kmS}RV!aw?USbSJ)K#9frG>5HpHywx-eV1XT0(Y%}Fo+ z7F`B7Z?QWOFiv_Ne{ABueR?!%MgT|y0X*ZX68P~{yZ}0Q!rUq)qj`rtD=jHeY}wc` z+AS88e)MilYeH=Da<&0976;=}y|FnXoeSdH6s66{*`kWgV)*s*;Wuhll0yI&2}lhb zNkli=g;bS9j&vN6K$<_1A9Fo!?OfZ9ydGlhbTF6T(u ebT5kItnUt zVqO@^8)$h_VG6Ou6;;&En;0gjh+CndGZ{fexCzfL2AR43?+-t^t8S{OdksN#xmhvY zsIW(<)A%CsxHr_SyWidRrlfo+Qnzk!n^AqgnU#vH_8DQqw%|t=t4+G}W`xaKs!+BT zPVspbqH8^6-`LuQlKDJ8lbT2KA4O$@$t3Cp6yz(ahUYQdU0i#DU%k50A|JY|rHYqwuuq!ToVHF70+V(`1 z+veCGqyH3A^K?1TNp&9?WW=m_R{1#_7_6NOH+vLcxLrQQ1f6=~zF;N%tV{h7os=uW z{(S6@53 j+VNF2l#F$e;QyZGo*~EIQf}+XQElNtOhgfV#?ooscvfmQj;9UNhX8>wniKg8 zJd-ui_dfxF>_GvH2vsh-`PMuQnIDoQR&aY71S?RATYk@~&Ra}!#Jh!p-Vimw^ltEQ z`$tLXOYcoE zjnR z=Qg<&dq91hh`l!f(!} $N%$J2l5!zy;27)7@@mUqjcdw4ythZ?nAOk9w#Fc*!8N z(Vciz3(dHE3SYW(>9oC5UDR4)b=Urtnxg87J Fx++jM>zcLK42so*dpJn6i FLr6q0Xw @rB!-&ixkWy!b;jRguH*dDc5Ju9{mR*$5y$23vpo%% EUL>crVeqbTI?j8M`FgUB?Pxvbm0z4~*~gB=FT~_j)&PDEWph zUTJ%UOT|-e0XeW5 8zIr{o6352ho!-7?gZ zPAISzXQ7D(CJ11HbGMr0P74Yfstc+XhE6xjRC_PKHhc`@i@$e;A9zbanF_lhIl#{? z+Iz2RSy}A5&$ouoyNL`UvlOwl3Lr vEOnDMareL&u;j?A5)O{UQ?{dWO}jpXjIkummaOfw7`}hP zx^X~0{t0t@Ey&AkoEX0q+GqtX)IugqemqvDykRmiJ&?LAW~|fCqAB{LWbeGLZu$4i z>3LP=9{EOSmt z0juSNdnkt$O*Um9TPO#QD;VkyZfZ fhmGYsB#$?ip6fO} zF_Jgvk$~kYck_FC!#_OH_8wUmz5qquOAoO~UXsK%eG-uc(y2=%Fl0YAvo4Y@QWPsm zY0Znv$DQKV%2JDV0z^4gXxfPFXhLuF {1+<(4cBzKC!2}Av+?tIvAoUPn6pGv z!Q2?YfA_#%`-^ZS`-^aNR3#FQ=>JJL_WV!6(FWS?OdSBff|5#P&CZ*~^JnzQpr<>D z7@*xByO+4^e`$wKJ0So_Hzu&ju>`>C%T~~%K>q*Q^!zjt > z%tPZH;N>B6t;D@T`LITKLJ=knpZQkRS5}d@hbG5mWpSqSR2@~n2P%3sm4PoRes#FT za>w6YdfDAxME{L~RJY=%St&a*&eI)OjooGZaYY))88jpO0GACR^;r?somt1@x9n=i zMD|*Kj9IbHPo#cac~SChSJkWk(q!1{kz`<_sx=L6G*#yb6`Czuajz$BGIwp@ZcXM{ z5p$B(*Nt^U6w^JQ1^b8Dmi&sZi$SlBo5lu=9P3)$Q;U|Md+C>wSaw`y?zpnbGK_gA z=Qeupf^ubSA6`8u@!R2PSVP1NC0Tn@;w$}2&3pV06o7A_?b0B7Gps`XEaVls?d@qs zUA-gc1=*+Lr~E%+2k(m;@^V@+-mFYaUpWNtdnf?Y7ML;7OYqpm8s!`i2Df5{9Oat; z)eP0{P-r##SXce2d$e8h{Y$vXeQjHTWN@u25m*V03mMVh31P)RmzrrE_Se__rH6#Z z+P@p$eQs;7&+L@PbMN`*cM(^)h0h1x+5W7RFR5p=akevKwumfc=Tu4?;oOKV6YQan z;3;G)et080>ubQ>!-o2s-$Ov1u VZy#5=#;sby#Tg`Z`ZJ0Cc#WYlQG-Whyp|7 @UbNaqNn9v zv304*=_dh=9*NkmR5AMmz>tgVe3Q>hskw@~EAEmPrviUOOlpcWE`{n|XA6r4xVf|) zI0O)@$}qfczuv``4*^i{+GHMxGN~0s4J>0!Cui{t(YkuiiG2aBS_yf-aViut=M+TD z-M<+_ihc-;rhmn2+Atwn_{SzvoVIhmPvMpbnyW+R?tmOEqAbW`Pvg>K8(7N{{^o_S zJ}S^ZL m_H&ww*eV+F@J0fF&PJj<$0>cK zbj7nqB|I?3(AmbRLDQf}*Gp$>ADsE3#xd;e@L{i~tXuK`L#jA^T(OYEsgIj{|96Ls z8jjk$N%zU}MB;V_%pD$*O9_83`$P}YkNYFz$;VuvPPNl@T%r%%3{($Qwb^ubDmoku z-O#OOkv*gTT>c?H$C9y5O}8jCZw*;XG(6Nc--QS%nIUtWCT8v5_x-5JafJo=-r-;c zrYfvAFU|^|mP|k$#OW|WW wxOZ6iERIPe zv?$!{jelbL>VWW<%JDeip1cAMnQI1yxYDz1+$Mk7RMA$=?NsBXIbLFF9u^QRWF)|E zEW?AWXlEK3D4R_7^R1f0reM-9Nih~nbG~(OX6P#=acZZT+7h)Qr&JGb4$I<9uLcjP zCn*8Vxk(a{q|R}1aoI$6gt(4LR){N;eZgEV!4mk;2qLq;Jp-vHOV61guV?HTaCG&h ze73}We(Oy|DzRO9W}S$*<~5=w@ukZg9(0MckPoq5zNN35_km}jLFtJW5zC&c&%wG7 zVnr94vjeA9rd&z{SU?o3+Nyp@f3C?3QnX69Puxq^9{GImT-E4fR0mxXojF#REEW~h z=9p>kgL>ZSxd)*UNOc&veCWUZ$>vLIb8fMWhPvi63%OpHX!?0Mb3MrbFrj0Bnugi@ z2f8B7f&OA{d#aR)RrC91?OlVlBp1WX=d%XWs{EUa_3(}ZDu15NhtoFozaXMt+$K&; z0sxGB)7o+pao7RQN}3cTV1o-JEdyr_`30_}h?h>h=F*f Zfnb_#_3ZFlYB3xw? zEnj)G!v}{*fwvomaaXV2d 7^Aw14PxSE^B!tWy72>j-Bs*9 zO%7*vs{Xa8CSsLQ1!)n-N)~0jop|o(f~4U;o yX#ah(y z^83OG7yX~Q^*pJvDUFVOa@T^bm |G(G_kS$Lj=T0rW)IWtYjNThGX23;a3Z-3 zBM~J4Ug=#KSt>2FaT6l{(9a*G{(`gc=TBwHa^E_MnmF$C^)_x?3<2QL8zK(g1W{uH z3N8Qm6ElsfgrLVDdw9mZt|8wv2APgIH=6w1C(ILo*8w;$qxdvmUAyPWJqJbd$Hx`( z7&*$1ju2rB+V?|J+`RpjeFmj^vR#H{R&f(|)$7=6Rx7wQ?&KFYK1px9b5g&}siGx@ zu*1X{dVOwj >d>3JHgcz-Fwhw z0wDGPzRWXab5vH#OfQn!%b}+eWjv|+>=#R)@vY>9Ng_zq4vvD>ogwl9oKVOWE_|_9 ze&L?JlO S{xmMkzi4 z3E`?c$hg;D?~X^76Mr({DnX9^C+iq*R8g1Bj?oW>g&F4$v#~*$u$rH3*0N`zItzwE zdDqEV B}%!$or3CS z^wd`TGm;0YThd50%LDZ8hKrdWR}C89$ fpf3l|a$5C-P2TOIkna@D(u8s!w_K#1}pqaZ-k&_;ZV8=9l5 zI6uGeUdicwGAh;tH*)d^2blHN>eG8us<%R>7HQgKFr+K>aXwu7V|F*3_7uX`Yom#q zD?g`FyWiy66PTxspS$#@=pKm%)tmG{X?2#xS+KXzSDQq-qD9MA-ghS51Jeb=LHbG# zZ9j #I9F;ph`u>t?&WFt6dEw9gzde)_L9|8 z2oq9ZIg%*3%T34F^ErpT;$az$12F2F?WEk09_GU*bD@}I-x&9TbIS@2%UOYJOFf3A zZ=+_rRT(Ke`rT@>W#%mb_L>^<-3wHZxzfzc^ulq?jd5_5!0wY=`~Y!-YIJS3QkRK& z)&ft|qsoCAp@^UWPcIJ^U;`e#t$1X$eEBG3EQbo0E&W2y1P#$2BG2=8{hC1gZU%Zs z!#9kVXTwe>F6(3{nEjh}g924WmKSaeBy!=%D!-wC(n|nW!`?z)sqpHKDhD{bi@s?_ zLfvX;(Sz1WSNioh>NE$2)#)mjaO8)sx@w)Zhj{w04 y1 zv2>3Ttc5T*F7c;aJJ&`vGUVwo>B{iFkGB^bEztKVxZ7VO!ue@sYBYIjp8ov2g!o3O zfoz9#w`#d;+vQl~&hmzHoZNQpKmNw%SF??r-QPRrBKN?`9qj58 h$=29}Yy2 >`?aMH*Rb9ygUXMV=We3UC*7}f z_NfT!i5Eq8ukh!ke7*b3Ak$4rF{>)b{D08)7Ex_|@xLf7Efi>>6xX!H-Ca_{3l!Iq z0>#~(6n80FG)04_P~0^XFJ7FW#S=6@NMC+;aMyi<`zHVO24|4LS?eTc?Y;B;=#a^} zhp7RT6{StgpaCLYZeN2FDIPci@)2veFg3j?gXeHuM9iTKpXkIjXUX;ox0kHr;Wvy z#On1X8LxNATVJ aNJT02_6s{P7&y{OP%PqM(`ctou#+;%pJr(Af#ms0i^;6rxD-~ zj90a<15QRHUd^7*h8?r?pd{ZnmfIg9a!7u>=WI?+@R!Z;m+#9i3(S*SDs2BhJW5eD zCWBt-Qb^F}TDI;}j%YR6L}fD1l!q^00ft`+77-JWs>shjwrTep5Ix{!3Vv7=*QcLH zyx=UrQ4%%Er5jpTPODc~J`-C$+)^MV(^leSP?B!LsGg&iB8=G8&og>cgHNvNS vX8^hGKNtWV1IBjGecG<)Vz0g~I`8D@m z{9_-vYglWIfMZpr*I2*)a37$ q|jXGw;WRTBj25yoT4i+iB< zll?CfH=e2u;eEoI8RdCrT%Y1eog|XMK}elEmraGvhV^O&gm?KyrO8K)v7)ZJ-_*+` z+av1!_lK=xqSN}n=3YnVP%=hJ!e;b6`g3`Dzr_#6l_SpD4@iuE7p0k}bKVkhtLCyi z9HMI;8d`N0N9#?!zm48JtAenV$B)};5A3M^R3pn2V>`SXP&ck9ZYer3Tj8CS$Dy~O zjSj~8wJ3*fo>EYce==IGphbMDxKJGXr^}Mg>K9o<*i+x0y@O-OPvFrcGH!joM<5D& zza@6(%xL;(eQNa)y$JUh-%J(ji>-urZ^!Wg0X~ifTQs;Ac`r}{$+wdc%<;!TI=FI! zgr)pXV?9d6i>*kFuO-V{g}WlF&{g-L)X>sY7f#mv88_N+Scjq1dOGi;OE!R%plGj$ zVR{gaFRz?dESkUZzBij08hI0r7-Tvd2qsIm##m;#9S7vNu9`fSx60-AtVE!y-$=@G zL*ERyzue_4E*i5f=V@pK@{hQ+zfIc6U8751UwQ1!A8x&8!S<+?OYx~&c6jN=5yJvU zKxM~!0W^=*jB#fFNyPl`4ZslqU&&iT!&|L `E*|WnN1ACcQU7S0C%Orzb!& z_+=}lOvYEpciq(Uu0BCbo_upt1Z}|REF=x?X^M~TPe#%R_8A1$f4}~rvm0KOW{#cU zk& {HXqB4AR*n4&0L++C>4UNgPT#J>hYTHVgCL7O82W%(wXzW&iJPB>Q zO21n!4BABf!+VSUHYf#)?Q+pv^jQb@Lqh0JBHIBd8k`1MZCBs{wY9gqcVPsxRRz*} zi(*_;EA|wK_GE5t0V3-T2{bfmaBRO@*Dex9g~k~W9;~4>dnWFK(4F%GL>nqc- `p?hUEbPY9=H`eLB_d>*X$WPhUsyOyRulh(sx3GOd@kWm zH2^)~R5fr=;}YB7G0J4nAF1_plVT&LtU&DRq(V8QR8gAgJZ+BKLA <*0j9eX!ROnP7S&oLg8V35+;5hw 3zMxOaN@`%blHNn7goo?(t%{vh0AKLk zFMg3{&*UxRx4ua2 Hm7 B)-h}4C-Tlmx5kFsl7tWA mkfa#rv26Gf4&i?Olz>!eq<*Ip z1kZoouQmK*nI-l0hDbhZe}$f4{SmLyY|uQ{+w|KC)ZER|3<~pVoO`kd;U0(|e)hPJ zvTUY+$zGFqBgZA<#&bSM)95Y@?C7Amkkq$WQj@b@`7uCmwq{_o$^Cjqy^>Mr@NQ+9 z(fY}sMMbh&s!LHEK(k`hzQ=~Pv@fH5G;cMhdh}qIKFaj?Bt9S(O}K7}2CSb98p-mY zM*4&fq~$sbTQ!QT0vIX`mA$2x1)sg~5!Z4rnc;=_$N>xGC@zifzIm;1j~GtN)A*_$ zuYHJ=iDsfkeKDfp88$n5E+A|3AU}_1BTx!DnANBk-My7-@MWkd#iAslGTp+}xx= ECYsy_X$U4>dk`-b(P) z4Dar=Ly(3}uNeTy%IZV{%@Hq1AC?`6(8o<(>oqqCcb7TV`S&B&j!qTuS*^9U>DWjj z)&e!Nl1{9=Q{++iJIn4$ ?iW8Lhb@)f8lVk27^w8 z;V+*@A^cR4K6pGRkxN^&RCVwqkin5p^neqA3u3AR**6g}FgTDrNcD6KC+r~{iVkHs zkpK*sphyEY%--g1Ein2P@r?^Dlo)FmnlckmazqxE&~VK+h-pdK4rXR%oT}H)=3hse z5BOO-gpSzsi=NTXR=(CNiY$dGKKVEf6_YgLu$2KBffT&ED#`Bq#%fZbbreyQm!)$b zHO3i=9(8kDJ=i<}N;1W4bUNMPl8~*A-d<)Q8&eTWKw1!5#q;2#Np2uMge|K*%i_^i zk04jfYka(8MhK|9o{4(?_3!!>_F=JiKN=$E#FD&cg}#66bDNNq?+Eg(hQ|M5vbJo9 zq`d!{kXBA63H*Hw{AROmQEJ?t-0G|2Hy;n#+Y75eSyPI0j_T%-f-Ls2{U_%+pq2Z%9F+3>Y*f#D9Zk3p#R}1 z=ih#aVV2M}y%ws;KK#HP>K?VjQ3i_$=D|pyWssMvP9nWPMvNMY1C*jj;s9MP;9gJ0 zTY)ZoekLi?cE@vJc{y +4C>Yc _iJhnvw;1#`8t1bhPjIWK0Ly-zY8wog z;jMQvpHZnsryxnJ;t%`k-B#L=PbqH04&p5VZgxPVnnQ<(f_eZPz#s}Co1luO(b>yP zpwur4zIveYY3qoCb`jewMTKPAO~Q(yVaCh=wBP1hbSHmPlMDZ%iL#?*qa`HM&V)oW zIjqP0_s#qa=n2@OYl&i$_X8QNZ<`Jh5?Q0#aE8v`aeLkrc>l&?4`qrUtT8*#`%M-m zxGt#!lIUxGA4VQs6xrt*902$I^V^eiQ)t-G^nOLANIK|nRN+0aPD^vOJO+B=zHlZA z$x1~CHrPwkI@67bm?~V`>F2);=ki!^IO5(g;8wlz>Cz}eO~eC9Iv-;Mnq%iiaF5&W zQBL&OU8Q6N{;AQ6SG=_&qLR^R{C?A8p=Gkd&Ij1OR+=Mxgbaur{dP04Kn_#JF)Lbm z)oL(Z%<(DO&;P^w!&68MAXE0TS|GOTC$xv`Pa)um{i-Amc#s!%@cCJs(!OSys-yst zRJO4c&v7LZ5+?{g;8zH)!wz-PcH&_akj3iAj6PLl8(Y2mekVhiqk;ct^t)TJUw&+4 zocalasl4S4^E<=I@*@$F0xt(p4;=}gnV-u3BtNu@hW6E?{AS!J3y$m*)HQ0jMcGrz zhc}6*ahQUsj>GcMDQ|0|H?pN)kkXAY(QQOufD)xT6}!Fj!SnOxn1f=a`ay*{EM1-m zceaWPbW#Q44ypbCSS-yV3OWA0^~*GCz9nV&Yf%Eh(s9=3eoJ3$n2SO{HLl%1Sh+zS zcz7J;CpSo-af}|TCwxwQ*)lhtA~)XuPTFS!mZtb3Hq@Zt9QHRKfXFS1+%xF=-0W-q zW40DxSgAqLKYr1XF70$?!9C})94=49Y1eQ(F?)Jgc`t3cQc0lT!e7t+)~GLE4*+C+ z;l2HHJ3eT(aJnOzh^ 8?@2Byup-{%0<9 zD94#BC1Hud^tg vIE$gJQ1Jqpn&$y} z{tOxeI+X!k9N}!#I7;PzlX=SdG5=S_?tkPlr0p&Hhldk=Sc(0ACLD1byKI(Y+5X{` zu8V7ZTMjT7#c2j%-A_1hLmUYjsMi+ov`%zxKAD^DQ*Ncw&cKe+^R?P6KYdz`L=VvW zp}d5!utYNG%PtWdg6OhXv;jEWrirMLr6@A8A1YU!9MAl^+WsoM?FHn}IVov{^X78P zV8kthhpWdGYZ*O`obKOFjD;o?5jz+5Yqi-YD8CL+da#t)ym5Rb8-GF*+WU!nLhuS% zE$^=tzN>8#$jv{YP`K^9*QH61yuv(ti%@|5Il}RybZF=Y;=rK-l9FpjKU#fp&OdNM zKDf~D*sCtwfYu|`Wh3y=VUaMFufE*G5IH-nX&&VNyEySzos;!xo&liaQ}C YaSM9PH?YZAYPyWa!uJx-{%$$j!?FCPbnn4>HE?70&(m~glxQ_ft3vR+AaNxD|r zUIXnwfJ6+GwSX+bLs7fl#rpy%P|(i^P}j+)h^%dnBJP}vutRL+Nv&|X8!1k<`m5e{ z{>4Vfn%n{d8PKVcGwq;tCzAdvx9-LfFK>>Nx6hK_y+*XecyBp#Fa^vfV_x5-0d0 wmVHPM=gHiokExQu$C0l%~qF;YemGpPp;Ir9Bc%U5f4oe`Tja^xklG!sQ&($+;$ zli#)Y^JBV5PAYFzU@zW-2%hG6Qb}2Z>cIDPEi)LBjU1krLtf&kevHn|%hg*Mte+WO zAHikr9Im9cul0dE<=JZ7y;}V{w8ZG<+3N5T6AIPJz8Pl`FBUl|7wW2PZ@bmOJ@-B< zG^ULrzB&W3ZvfLM0j*9(HC)CDWa_2{c3e0wU1F`kpC<16vTSf1@l^aZ<3e`Efs6Kf zH}>b|TpH>>mmnKXX9H0S-%bO(#(8e;LoT)M^7tH&T{L^aPc}HW+HB`|a@%9bhkDxJ z-j8#Wh2lL1z%r0Jn*jl04AEVIK;YX=1NxwF2?=AT^Ii9Px1g39*`8bs;&S(S{O3)v zTanEqG#AYw&NW@Fa!y8N?2w(7aYgOjD1O9$&5^yl{sh(E#p#&Z>?yy1QR*F?4*k*2 zm(?ecZ=^{PHTsjdt{}dz*RY&BcuFgSNjFI@w<=9 PL}M^x_Mkl zV!vu^zfN2(SC6VLg0^~IFK8~0RB4^;2#Tzk*a*4Hmz7y}n0QjP%9i>Ld4AcuY^THO zT`lDswYbwl)WQxBwO>j@&CLIW#AE5vfDNa-a5F*VQBpMTA;+yL^ #h9l?307zNP)I_e;mEyMPC$vjy_ zYTCs#Wc?muclgI-guHTZUI`7ekKA0zsr z)JOByZy(JNrYf>E&f 6FZ!-j_R-XA zKqCM2u3{e`H0nbP<^DoG*b&Sa=zyL_wOvAIFfv{n0#W*~fWmE2M5(boT!hXc=3cVt zI5?=&8=sc;xn)OyL3kht2cQ$+*0ziyaxknOOk*pp5mk5>3-~c;8}eMOg@a9DMA=t~ z^|SYGb+Ahs%2`1vLFDi>ip<)mR6V|XI^QUw$8}cajaa($hjjM+p5K>&sN62EM`GS5 zvzQuu;0PCr+9}7p&bTF#j3OkiXR;(z3(}-2lrA-0PNTpx(6s{RA3wg5U%x8~CR4f< zM2Bgk2ayzr;(Sq5SG-GTj~!FHi{1LIR}5KJvB08J?(=~6fO>|=vC(Ec@}^w?dGHdr zQ6sa^-Y574+5o!ODodSW@^SyH&$ZJw>%MFqoq%CXy49a|S`mxikA4kZ-O*r)xe%I> zkVhDSBHtZ#%fU5T(Msz$<4GGeimJO><}HeHo;Vptt0K_3&A9j{itKCYGlM(a>ErUz zL@)aZ^+|WvV@LYU4<@Wl%AVzxiTCf<0_~a|#$e-&J= zZYq}C$kMmrMKQhWwI16E_E|OZl-57cnVJw~-B7dvPpixsqc?#Y&g;V4oBlp #teL;_f5*}DK z=<9dvN>}}ScL3}#DGBFnENW?NY85{MyL=u^QDpGTQ(H-lOBOCFxPhc082iXWhRu1W zqnnE&k-k;lHjlk|9!8dAS?NN !-5iA#@ z2jU}p8{FewcR7Z+l$pXBx#{*^R>Vn0DsTto`g)r^fy0wqY2TL^Dnqqn{K!8GXf z4G?j4Mq8obo1v0F_GD!vo-QwpiZizPN8Oa@_*ghH4#mTM-TEVTn(DtM6ZjTc 4E9rif%@#? zdG9p~9ei%f`(*sp$y8Ulq_z>0Y1|Wj#_EvDObcB~AwS2=pOw=2N2YJW)TgQ?nEl=q zrfNGKP=CFR)ZuOQmDJ>gy(QQ1T(*iXB30ZehpW%1vmJ?PT&nQ!I0rKadgDg9%s>^i zCCUa4B0Y!P+mp_vr>>eK0hisC?0l7t^P_y1Y*s-#GE6AsyaquGxP8U_El}>VQ-~g; z=_YYVDCSY;OIQe3eD!JAaz-y&CM}UvWI7w2d0F07JKf~~X11rf5;j^iLJt!iAG7KS z#(9N~xDTDS9E5dG;P2r?J%GFRuFnok0F5dBb}dAIelL8HVdhqZ=2@{agPV9b_4x8> zaJ#{}l!iynt`Ur45{`~aKtyD2)*3#hNM~g8=T4wMCeKb}dAgYM(>(?HFyM5+4m|S1 zsL?!ORD_ ;l&T1U@xk_lA9d)c@D>5v@gfuH%Vsx-$+To z-{kY7x!zPPj;vtse+%w4Drg>mbj$kA^CXUK^9)vY(-zx>QF<>^cVNP9w?|bKRB{7T z^UqK1(^EyE2&zCT(vp59jqMFW?qLgioDDD!gaq!Lq+zE@{xo%S5=^Nnxj RLUT1~Q}wmwJWJI 8$i@ zl*pt!RNFh^?KOmU;_amPK^tsAsi?D2Z@Ub{kLg}i`up*c_g2L2(8v75X?r~l99rYK z6+_VB@AKU1s(a8PY<)XhmDxcs^<+cax33&Cyq{XrUyRQRm%Ajla5z62SCL=g*_v4L z*w7p}iR^lk6pN)YDaPU9XTU~hOC$B2JiF~7Y&vnlBe4JP!86{h)nJ`34*P47e{d%b zVXyCBPnj1Ncfaq50GZn#Nvm;U)!DQg>vEfi+YyV0*+i*<&Mglrxg@2mCNzQ$Zh#bF zmDyIz!x d+i+}F?JGieSbqh4frD e+FNUxr-->)BgO2$Gk4C zBAf4U^9dD|5KI;L7 r5OK}NBuWSI8 z$TrR5a54bGg%x{gcMyM8;nGsgrLwUKQ&{rATk~yKAIHU4x3icLc>9ZF*JC|;+R+o5 z{#?s!i)+Evd2(qaluIShlgnh`v`10=N@w!)cx|&?DS2Jk^r3MBs(ExN+F?vJVZWk* zg?-ayg|lqHeSx*G{wmw?uKzBi9ha!Ic^QN(ZL2ZfoAcPGR^i20SJ9R#GGcyu$TqZc zTSq!Yh+isoGcqWV*$Rqi$W!g7@Ph6&Nod8B2{B9lA&g2W31PXjHgG;Xi# `5g(6r0>jS;gt_M`mw-btmT9NDcTKB%KD*Y=pYu`oS2E!ACjX*x);! z8_nmv8^~Odv`;^YQ!8Uj(j+(Ri_4ogIxTo)5o%% dSskwC*r(6u-x}|pHo26e!!B#@3fsBXyBOB`O7`h%x_r!OqR(w-Uq!QB{_%2i zqYNpzmY{HQe$8w~`ziJcz=ZAXY7jU?1$p=&Yp!(W>j6?Vd?&JUJaKUjRt#4wCF`Lq z;ujoG;X@5+>&!~wI2hy9m-+rbyxN`Je|QR@`HOt>M1;6<`O9nj5>~wOYlE`E_cs?* z7!=}!U>g&ZYLk`kkq9^c*=lrQDo-ZSt9OHo{sNk-*5eGS-^*3F^wMD3&(d00yjM=H z!H va>q8xVoX!Y0wnG;zx$htNS<~Zx@#qu?eQbL3m_Q z;QRGUe4xR_Y}+}SD}p(moCK^v?lYA~cZ*UhjpA}-jJt{8fT6mZK%Qj%J{!98pN#T! z6%DAC& ~tlMoZ1eR^0yo6Lmy5@vZ<99jBdN|lq zV(llCi(9KNFq*jSw#_(Np3j$9a)a3jX_WTx-W%xU>`l-r9vu_#=He#j_5rWu 3HJ*b$blX*J?0`a|>FUBAKD2<;8o!^wPRbA5Ip}#7n%q z!iURy5 i$gc~Dr2ap4JcY`b5+&Vc!5#t46SJ`Wjv1y3ePlvcT_?0B}bkV<{E*Gh39 zfl_ogzvRaIKo?# dL(Rdqz;u&Uk?Qs4pL<6qX7gdct8;eR%?Hj3_ufhmmYMI` zDH!xB3{+(Lq@-^$xDP1>iOaOhT{bVfJl&nv gnVljOm%`Z_)3Z$8s!bm{ z6}akHX>sny6Nmla{1pAEg9@i16_boHl?L46!+%RWs9Zb!3{ AP)(dhX#6>Oa;MD1~uVb+&F5Z z%=n}qm*>OL045kl+O}5jO=DiYIP3g 1S# z=J|gM1o9En`b&7!-2EB;P@1CEX0WZ|(lEgz+~3DJBGjBKM<|`fsj6E*+t>n?XidmV z^*5?yIrF*PzpHA{Oj;FA!fpH^FxH&jIS;YWpy(l1>8e%Fn9H*19iRA FmAkYa-autRIg zZysOt508kJzCw*Wq=4tOH06HF(71}ktV}gu)9&>XUS Z zViK&mEhg@I{CQQlz|^`{8{7=h^R~;f?SyvF2bF~AOxi_ dd`XQ M-7rh|A*z>-+DWv}gu^XfCorV7$l*4m}!=k_dC;*H`m%tZ&|dn6;|VhK#5ML7hMK zReljVF_q{OKy&;TF@y?uKPPKbzO?k$?VE{K6PQ9l+QGkJD=}tEv5|blmV`y*ey_+W z^Q&$kAZIsa&@JKpX0Jb8J`07B+QBg;m26|%R;rhjy^e-XW0OY%cI?O{e{e^5aCgmY z-KEB&vNybJvm^?7_@g _}wTP)Z6Gz%H#(JzMM@(QauBsI@8G zqmHk3v9w~zB(D&SZ__LGGs;>xHRR$60sYoI{CdlabJBSt6%umYj8}Z?cBVK`4>6DW zj%cbQElL%Xt}P9<>MDqIdc-j2IOD6xt$Ofar `&y(m*in{!LIx1%u&oftk_IrL`2gWwOvuOg` zv~oY)n}+r+-$tDBUI`7lEu+pQM*!MRn`hj@`GAM2!r`-wvIXjIa-|S-4r6?LV-7{I z2oGKe58R+1#aK(}(Ke)RQQpGYGfuX#{nK85iqCP)A^4`Z=cZh}gA(b#l`pxTKX`Bg zsghft_QL;6Y{r+nv(UBo g8-4`jL13TR9JlJ!<8bx zx>F;=hhvNEZjYfXFxeZ}5&5l}ujZxOZ>NhBO1sv)i|T`K1r9>a6yv&IFJ;tOKUuMG z#FHw?DS(xKZ g`qfa^fZpV;atMZV9PY_*;`m^7jtAM=2F7eoK!XgoOx^Ce zQLas{K|*alSzQ*M56(i9JS`rq*Qs`uox2-0@U>^y)lLCaO$Wk39SA=%r&_-Bcl$jz z#8<-`b4LE%A&M+f`3|A2noJ tygz-&<-182F5eH18u%38@-_V(R=PJ ziSt@d^2!Ex6d1|>@*Gb@;~+3y2#s&&&ZY{QYyCl8ORIO9gG9!Zng@^IX}X1jNmeS* zGagRxdiQ$`1!4etlwRYz`yRcClIiz{_Gv!+t20pk@qk(Ebh^)nx(cgvEwtyl3W_k7 zpCuz^OmvlkZC6e3BQ&0mW-t)tp)zUbt7E-tUC6Y_N07}bLt@%_vd;8|_V!$5HM#}I zYu;PI5(#~uvuY$35ND6C i&1Cp@ #O}Wg*CC2!Gb0CmjiYs8q?BH!B-Iok} z(O;+W1b#6Y0Dw(=I(J$%Z9|hBCzpbFipEh>o1Nh~gc%p**fi1KA-&rNe%jCsJ2zrI zdzfE`VjGw#c{P?=?3N@z_t0o|d|vW6(EjZ5<6Sk-I!6!vwMa>P$=jryFp6I1VMF_8 z{-yBT?HDhHSi*-UNiMUXCCEC*5gE$tR(TFf?^`G*pp0A!s#{X4OW78%ZY7eAi(De< z{VX)GeI)##`$4H65Yj4f Dt-M-=j@?Rx41b-FB0147R 4Uxu>Q_b= 6;*m0Um7tuppM*zy$fQkBwCG8c zzkZ$@0!Us`LGqDVxyZyJE(J5-$hWv&5pHe1+Zr^tD>?CZ#y#o;?)R(bAKrz*xe}q} z52Glu?Ta5$iyOq`#pS$%3l$nr_E?c9Uiw^1XB*Da6ORkoDDtTO?QeF!2PPP7IcKZ2 zjEl+&A)PH2EiH^Lwy@5vb1j7+sl$hqTCe`67XX)_fHaQ0kK^0`J~+wYufR5I6R0;48YQ-rzL=#)a^h_UB60yqC>_-DfnSbw@p z=Tt-BAKur{^ShV+O#gq|?EX*Fox{!U(a03wMiuA*X3|6n+)3cMswR_?!Aw0)OqF6V z_y`~!iTQ>T^@ss=Qs>%{>vg_S-(!9ayuPL#kB?*Q+ZW7vN+8wPv~vCM@;RtRwNx=w zql!iQnaT poDLgcGhzx0fPy<3BUiXO4q;37 ULvVP` zewi~ORykYht*kqbBI?T{D=({0D@fgBx5UyKXS1BhAYm?|3H9RLf}V@3YAH+4!}_>T z{ps|-n et^nB(oHuAa3ydGk;Tw9=pHZZPOkcU{TV5F~C@G8G z@L?R@IF<=(4i%;>+pOJbuUWzp5g~&m?oQ${HZQLW-w@lPf8BHYYC-hC>tvqM;NVJY z ~k uWDZ6nm-KZ)f!ScRl?s{=5Cd m5ZFB7J|H?*DTHXVBo5R(IIVMXCyfle$heyB*nmEPme zwO6sfPT8)c<89;Z`?Q+~kZKIpupzlj>FvEBGe9 zU7nehT;<8%8fK1?(hD`9zBFsib-kC>MDF%rMSrGD3>Z^Gss~@D6I`w^4m3YqHBygi zfp7R{pFfS&P^QC639z{d4Q_!}@Z(KLuHTmqW&wiy5eO{hP_xIq=wVk%d%YfuTFG1| zW5YHJt^iZrnFIK&ZcDm~$`D*-Q2m*{+T$*^?(IL)&D@^lnq ;yq-#&tVjnj%z zS4j-qVbiQW-IX?<#%Z6CKKk`bKHO_uMmq}cUcSoE*5}~hcDEC=IRJjh2=ag|w9otp ztrzR2CXr(LBgG=0oexkdQiuBEO`pbAwza5U1Tt-wmyh0)3(8)g&IvzNk)!dNhyB7x zqHz%80|YMq3};mfW<~Y4u6)C>=Fu0k?K7SUDJhnx-}V2jSvwQ=SB@5?_`5nBJQ2VW zL2iW;q{V02pI9&EA_p&rX4E>ib@jZZAdKmNz9r~``M;$E8?T>xB;)Po#_x8@T DJ& zwbL_leSJ$FJs?ZP-5@05#r*~ 7cbwlyrCi*%2;Z{gkY6=0N?3vlbO-zrv$(;`3$O(F> zh@%#7tgobjvxzugVuAQa9PV4+bxm -=QNkgUk0PTt^GxYO=M9Pw9y$J{Ys5>N_MG5wEZU0fFRZX{1m!Q|Pd6R3y z?PDL9u#_$2WScb>iy#H`!*lgP;eC?22^#j4mKr*4i_cuQow*u#WGV+tw=opOAO8l^ zOx8PGzjR2D? FN%sH7rXLVgOp!5lbxRD zZtXrll>=t@(r(UGefFG?Prnki( g%WG&Ic{?*l81X4*B7Sg;Z7irzX z%ynLhz1@a?RCI%bb&igePD_{#Z~H&{>_VHG=DQG}7iuAr&XEBI(afZJKZzUCeN~-x zBIskuqr^BTvU%R+Pni7di+a4RHO7(C%3UL@ts$HX6;m%8FcwV9mHsGiR&Dx#o8aCc zgCZWDz$d~c=irv^DuHLVN0on#OH&yONQ-R5N-wbwvs6=>3BTsX#|Np@M6uK;%DHnT z>N*YW`;&I rz&)gEg+O$l82v?tNjBE!Kv7XbJQ#EHAs zvqq59o6M=G*Rn2r$Vstsu{Z|;1!j+5bp^57yq4Fm@{&fL%aR5F=4lH*#bmw+{o=jp z{Hh187@*UkB5TPS&n&rjeYQ5An8sj0O4+4+NQOmuE(_7e%_F u*-MV5ZLH=th#foI^-~>s#J64vAX>4HD*@Z=KPfj^i6GDtYRXu$8x`UIol* z joc?dqVRtkFe z7fX^BRFrna&m5_+R)lhw`5ipx0)t&YqxzDVFrp1;6~CglHi&BWvFdXzYiMwebpL)6 z^#O~h`S`Vjvp#55oJMkR@+eeXWc}7-5XyqVGD?utSNZZ2>OlG-p!w ++wc5v#x1Cxw2%?G{8RZ(T1OiI6dSQOyh#*(W))#gv(RO zQKYOIAGF!`r)eqp4}KaV*fLKMmQF1CYML1<%Yc}mHykWQ=e%#6J+#cTp`KSZV|n?Q zi<{Pl$^Qax-dy25g7|A1_ZyM$6z%wp66(}eb =f+jS>MiB9JpvoW!AmASgN?w)QqYc*yv;BOLxFyas@28*gr z?CWjqE1}Xb#r;W^CsMpL0q0GgW%fcAEZ3nuZI7yDsn$EV;X8tD7aU(k{6skEZ0tUN z74E<9{eAZo_Fa2UGPLToMS_8CtmwP96WSGcDv4^mw>IN2WCt2<4)y+P)%xpvH2l(6h+Tv7IRv#g$!9fx+j)S?}H zb&6X|+{La2Ho7?~9N#1y#V$kirp{e`Sa+jzrMhZL$6ul-9aeJ#fq?2H4uK`Xqy9Aw z }~2z?JU)b98_ zT8KVaH3dg1$FS`3q_fqD|9tE&bP)ZP99J;7FM} zSNuDidey>O!lkNu)HbYPym+a?-Dl $s1`9@HSgW~iYGbwI6R8BPr_FTV4q)Qy84C89G5@*^odj?b_#ulj3tZfB58k( zytbmAbf8xJZThl8?#Bv4Wp72KP(!loWYYs2eE}{_sgQbZb3K>za>O#MI&-ocQTC~F z($GK6^}Ha;y|CIgz*v5~POV6fGJUCIp~@ZeSnxs+C#B*t-(Snm<8~_vI60Zt$_} o^}rjZU`-X#Ms+hjjw2$o^z@ul;=A8d(lqGd=Lf z7C7@+ceN|~4B(~E1(v;c?TN v1G)ESpxU(OXt)GW7l%^ zY43J6qJdtOg+MKTyV~ j z=E8sC7@6%;v^m5cI@v%CYtzp8VdO!}WAO?3xL7bKV6*1No!2 za&ZDUmWO*cEWb~>=2pR-z?69yb{Hplj?6_8LLn1(D391vlK*>k?%V%eoeKdUjCc(G z!i5dEWd6hZqYj+GhFRWL;`F==_KQK2=zn-3dMy9%&!Bmrvsv;#yeX~Q9P~ao2E5ly zc@iH=Bjk7{p3rIS?IpF+lxry`1 `kgF BcR4B?b4Z!e=zUBq(QRK+29pV6cOc6X>R6V4hn>OFW#kyR0IGdDQ61VYQ z|7D)?j+6#{zDZp6pjO^|QxdO}oTXJ!-9eF0Ll%w{ds2HVNDyn%6`QTz$@u!=5_?hY zA1=!u{P}}5o1s~fQiEW7GzjH`m>-B!TTw#n##UkU?94eskN0Ox6Mi}>^%1Q%VTqou z^ZOCjiXoK_laNJyAaV>(mG8ucL7%`qBfD(u_nV}!`j}Ou*`B|h;d&yUg8Hq}Zd1B! z->;N+3)~*bukIcp3BO>OF~EkILNvI*&R?#2 rJ8rk@O7br=l!eoP`XOwPHHKzOHm@Nu6u3`Y6btCDr1m<7c}K zAu8bsbN1A9uFdOZzl>zP%2w6WhU-lS@pEsR5l}tgNPPnmu}0a>fgHr)uA~iX4EtEt z=^X9YB_)R!TroCnO>q8`BYBIm!t!IR|$`Dt>`?y({V@#6uJ{A<+ z_&GjkRVeYghU790g&QD)8H1PB2rzFq_FmLZQ}k3bm`RU4Z!)jkPoZOf8Y9^D+KjSM zd6VkA`K|?Qy^a#V@G{(E%)t7kJ6^C*`X<9IUC@~{EAZoRCzjm#u)6~3h5P^|z#!R6 z?D*I|!u8yWv97`BcLoE0xt})tcmIH*7>5_zqcJJb?D$ehgc_X=MbcQg!9*~wop4oo zvTvrB3(lQ41vZ9iLj<^8Rs!d>I#O&;873A7FLPq&{G7Y2G->{r3^K^hr~JdSx%Ngu zN2lZ`p2|4U_AC~kO?AfNaslPXP`AC=<83|#d8B9WX2-vJ*o)LJSGVhA#EYJZ|7Ioj z5%-DzqWHvBI_hZXR$_IpHBB5V_p^oU;cTP+$OmGh>W}Hj8~>D?XtS&p_(Q)a3 ((kCh9cg;H42nyF65{;Bv2NyIu@t#3g^kpE0PKKn>Rz)M_e%`YSFGO z8DwIW3F=nK)e7sbGY;k~^nPB9(r&r?8dILzI$2^|?qvgB>khN!*`K&Rj6uJB$gHn6 zSd L&?(DqhRv;PT;=Lc9Kthpwe$O?C%pXmI zkT?QK#00vaj6wAB3Ewfo$fj6O-zo!&N8Ob{>vQdoRz4BYl!AEC=`x`=QJ!yqNF4#4 zG!wl659Nsuq}#7*-&Q!puzxLlcigLT!eJWD4Uv~ENv|s=70SLIK|p)SBI#WYLl9sp z-+9CU4!|(md=I9yUj x1D9> zuQgz0q%O}oTE0;vrPZgM$xc*S4%cz{qg!b-9h-JSQf4;4Kk7j|A(BBts4u#isg+?F zo3|Kmy;#ql*?w-<=3(bt4p9xX!0C}h5GVgd@B;e4biM}tW^B{v6Gse8(rT53&RWjT z &({`ALluCamhqaWCh4-!Yk^`V_ zwiB-TCu)Pzqu}K#3AnD%leOv<8hUTsDDkK=KKBL pO_ zh%^D|AU%jw>AeP!E;Uj@hfsrb>Cy?INRtEvL-p+cne)77-gD-hc|W}8!|qIGH<|2g zHoyD6?yK-7ikigpdtg$L`Xv&dVI)!|(L4P{m4@DRX1)ftoN)7}SJIs`tg25;W>KnC zva{1J_xGn8T{enh&J8(kc?Kn1%-8C>u#@MPnDMWe=6p=?{-vv?5tiQxwq9F1MJK5= z;Sj+7_xYXd66@CfU6#Ngc+1fNMo`)|)za!jotmK}S)z8{zUyby^XwKpC>==tjUzlD z-SIp^y)KtBiv1py;B({T=3*(l2ft(TP81(|{_p|)m_ 2+TmyiBX-|JDob3jPbQP!X~-CT*Uf@($=iekvzyqAs3ajibUroo^j2; z?UKu}R{M^3MRMkN;aFOcpMh1SkM-miB^ #UUQ@Tn`WT*b*bA7W(-Xr0gjf?0 $8R;9E;THt+p1z*>PKu-u5Tb=-b*_Z3_ zXIEkOlTZhAU7Z=(yfrpcqGH2brG^C1EuRUOSe!oAQ5iS9VJU_* DzM0ppzKYIM&TK=Y>o8I489jnk~i_&_+_w GzCQCR;oc1p!9E%DJey0KE|}i)XyF`_plGiIQ+8|6HFpsXO_`DxOe_ zhiH1Pv6&Cb@<@r(S9UV#qK8$nMOLL{4E+bLNZk@1^+6uf>SwmodvKR^7Kl8KZ=){i zGO_C`atS^_PLWV-(tV?^-z}FbC#SY7a^VV3wD$q?1@~_ghTY@@dt$4Rm)!8p^;ifk z8_kTbv8!s|B~!Byf6em*j+Sh7UylO2Pcr2f_8!5#;j@&ZLUjJ1UO;3xkngg2zvIfT z-?LI2R*4H-Hq^{a>c`@D@c+rMCc6N+aoL=Qi&09Pti&r~CO0P<(c_MTNt=bs%z$qO zW;e=Lr{R~eXRkB3nV))X`G)tNHJL@l;`O3K(rzO6&EkdUCkRQf%V*PDwsPL2IS)f# zqq2;tQE!%115eRN85swex%XC*86?u*y)+^!gOsI%tjv;koI%6gpsL20kigQfN@7sq zSq~gkLY3?LEGQ;Jwjs9o_uR6U_UrcUii5&W2 QICZvUB;vu oAxaifKdi!TL(r8cX5iB!rHh239TF{_JhHEnFJP#Cj77k*71E@EMQW{J_IxclhM z=0YqxviU=HS7(dn6li4Zvp6zDc2JFD^zM^S+6oqS3)3D8^hQGqm0=TW_+Buhnug1t z!4O?5i&&!slH}2P!z}oYw#BqHS@DeXP)Ew{*}?2(okAwLw``$Nb;N)kj7O(nKf}z& zS=+f$OTAl}o>ApEr`gv^?50G#@P4ozX16aPR149RhYU1d`DM2GMbhO%3q4hBd^~Hm zhHX>k`vCtX#T80gv^6=xMN3n679fzeV7K$jGf?Z{Y&>a7F`3zul}iaiYTb#-_@)Np zsr#A_Hbq*!WOGjomz1v1Ly_ ?|X@^Y=Ix!orvpSJ1O zm vPf2rKrQ(aW;P3{u*;PW;QdE-1o~bw#PqHS9m%;Ej^Ai|Ex|iaYDJyGi0s!JGAjQ zp;H|_8OcVDHBNW~|Au8ll#nZ(%+n?FQ+3T^k) WHpn98V0 }IW0Cp7^u*Xa2f3)i%v-juE1X#AI(C5SX zwN`LH;O%L?NgowVP%1Sb#A@xoY}i%b(khi@WpqYUHJX$ Yv-%K&SV@(P5-Jr;j=X-W7^u>l%Uqd+O_Snxcu8=t|F$0WTuQ) zG&k;CuSHxxHq~vsG}n0vk=YOUB_B)vujIGV5d45BW#ReY=_=y^z{da94RRN7QpUe1 z#6J-$WXNB`%}5mP0q}+dTD@WD`l{j#RuA5Q-}_HIEaOnT_SC_D6x?>X{~Zr2{GWJO zM7}&AlSx_nhX>OH)Fff2`w(@Y{5=u2DlC3ReRboydxgFb2n6W3rK;EB#~+`)x(*7? zl7T(y{)cBCaErUuv_f3*INmaO_plX&g8vRq@NG%k-fECl-1hSX_}zA%%Lgajs$7KL zM9kdi{E`H>Bdl*SYb#dSlTIb{#4_}67j8%X8}9fY@P^L+mH!G@CGFd7w2c1nl}{|Z zt+&nwWAwUQEWcqK`>HLeZ;#cPDhAYimiLbAPZn#-rrm#*P-QML@Zk}zEgu)owEg^w z1}m<^aE{Axhyi4+J) K6yq0#d?sfUGs#=`0hE8gM{PoF z!_F4f`J$F2SS))wLk(HSn;^?zqCUY}7GV2LpjRW;TQ5U`JJrZp^e3h@w`OlE8?NC- zTgEH$1wB4F$@@*ud40v`OpY9Ueh)LzW?#0p&;Ib*+mlz-J%pqw*H!>No6IxDf6g_h z)N!XZ)ys=g&jo?ep}glG%a=#_;93tCy~#(qTJ2f3rdgKvipR);*YxE8eq68jk6jqJ zs9ozzOA|b7f!Wn{E;-)y-G rU5!qX6b&n}a>tlQ3^R)OG z+jaip_xnrA%p%ZcHKaeQO9g4)g@Trht=9?#J9$i*lEJ$Xv4O$Y#q-}vtKR~ZOUO2< zLUY%6<#zU~=6vUDCf@kU=}KN;^%#~QbdvSuV$fK92#nXjyl&uk0QEcAXhCNnE_Bfr z36W`^ev_qCKmRsKJ$Gf4c6rPUEM*z-@r8O)vL7cI_7F^ G()9V(v(Mb>_uRFR|sfeW^~j>^FFwm6LEV4is{m;DQm9)4XxiG;h6D3_Pa2 zp2v>fHoPZO|F%WO=FidXtaD$-Ug~HYeIY&| +?{Lt8c7E0&ygzxtT8 zc7H#l`n0p5T$Fu(%|3C+-ekY+)&YYX6CG(l)J~KIEAZ9`#izSyG(>QO$D^hDCh}6< ze&}6T$PMTv>L*smk78-P$^7aE^)rpb^z wz*qcv!&$IMfwo{LUnFR0b87Yw5PFYc5qy}^-gF%fr zdNgIEez4L!WWheDwk|z41bJYZJXUYAztBhq&m)M5!Y>fB1Ro-*oSNC$z|K!40{C^) zhPeHi_BG!Xd)_2{skoGaj*N$Q$c6nvw!xN|_WO3vM{fY4K!er%iIWhkpgaHeCv!V} z_L#)Q>vGOeqC5KK>-wn$9PD9bpC*MbqKwH@F9%h5YNG;-OyynW1wj&~AGpP_;%F5( z=iY>X3Kf((VFg;gnU1o`V3NkY6&8V!&CB>W+5DR7m(nN~^mzz%8hM>+Xt1@lRf@LD z_yGa ~3(M1oI1+w7V<*k4=J9>IZZosu?A?<>!$e0_rDDFbqUc5*Bz462 zei%c#DgN3ubCaFC(}mg&ndt6XSmFgS0(Fbwj7L2<=YbHt(StbVoXuHd)N;Fp(v|%u z@6891#hwXu9N!5mUWeSY Koy^y9sj7?yyptp@80Gkpl%z zf;_-U4YEDPsx-Gxl-Qr=t607;f@@ZmimmXun`{&J7~=6J;t@j8)ACwZwAYj~f5 &7(abp#eJAW zPaa W+|&d)D{kG{Ux!OsgH|EieW;aQkmnA;&1n>^8~`DCQHfRaAvN0dS&zlCisGJ&if zb;|p@D_}(QYlVhLg|>S2T;;=Uh6;(r9D_b|!>bNLnHQAC>{m 4Os2Kj{UwCen!Ikarjn*1t^SJ+8W#(=4hq2(Y-?ooEp0nTwe3$U- zRK5~Z6eql;LL_|STY>D&?$uJs5fg6b59{m`9fVtZUdzyfo3al3-Ik(iDUvor+~)U} zfV2eoH&cLUT37L|4m4g9L7mL+ZvsX2E~#_Azb4JwwC)d$SbJ2DTP=OpLcdP=Hs9y? zK}f;+7}l^x&OY|{uW`5^Vu|dLDs8KR#&z4U`~4&e<4h2#RVN1gdT^t@tzzLR=8S3f zseS~jI;x&!F-ie8-zFeg$?KDw?#kT46VP;GVE}cWg=OjW8hj}`i_K9cRuU9^?U~Mz zCkveq&($C|Q ajHXg>B; zi*(%`#fbn9Z|Svt`LLv1w;lz!((ZV4;!TWQZu79}t3787R#nDJNSIR}pzx zz)t^ZNP ^W|TO>{MO0o zk3!%5)^r*_!VvEp_!DPPsl17W+a1hRYvjcrydaNEAVR$xd98Qu2Hn=q(|;z9AdV?Y zX)1~KzwRAr=Gy$FLqh^D rJ2O><8@V6g9utUXgJ=h_iLhqUg31zfMqu%J(8lX3LTYz#LU!RlD%Au|GI zS3bi|O*MH?c@>^v%9913z4$jHt2W-J1+6vK)W1UM;0e?s*uu@iXt1L@o+hJa(tVtU zv6i;x ?tHQ!8F>Hys%ixU;8bJ#dX)MbGXqee-hXw9zvmATw#gY(0(m 1G3?pkd1F@TvrVQgMyuo> z=pW>AxSXKl^!>
e~M?;TG+GQa32PR$ILIyj{>K8HlZVmPI!t>qit-V*-{}ME_y#8sfI15h)wn`iz>i zA1^yuXrjcHX3k?vcQW>EPKj)sBrh!V3^-(^w0IM>UnlJd4btP(D{#w$2%1~@YZvwh zXJCA*uJy?7he!u4g~h%>mOzI1y-aSS`}-~p CjqpU7n<3b34E;^@cJD^`L+)&f6-+HM!E8@o$F z(Uc^?0OS=O%v0xY{=D$Y1zEtt?xyp=C2i w|r)W?9X p7vsl_?Giv?=O%$;sq z=~|Wwks*}#D>ijPqnb72=&`EJ67$c11{b{a3vI9XBjP5#%6=pcMv~HBX|S#T8j%tQ z6+Lv2%zRQ{{Zy}-OOwE=n~z3c(pSd*$de&Ay+nUWdAN^P;n0?$%#j)9g}b z`?$xkk z=XlW(RS=WnOwT4i`(7g9Es^yYmFcqC{(O8IEazl%S4T;45;Q}59v$c2%@BO|rm#>0 z%QXkPeiCRLnGkPg*1es{NPJI#+G6-=(6E^@+1MiJ3j=#HqP`A>N{U)%74Hh#gyeY_ z`+E<}pS-{nzQ!`Om*@LRTsLz3Y~nv)dy{x$Xs6#_zjU8GFj$evRNE 7@~E#(?n@phl0Wb9G2C
`oAfwP( zsLl8HKYR=xMWlhPMm!p5FO<6#U8N(zb^|Np0yi-I0sbrE7YCp=6c5&j#9vLXcuA z-oVGNE91z8tE6#F<7sjG{r}x~#{cT)L4dv#fOO}tNwz}2Z+b4XWBKRX3r}Zaal0tk z^{4lUgH>>C$Y)^I@b$GFjxp_T=UeZ@pVMcBr#CKWSX4NZR`Q<~ZA3z-tbYc;=70k| z-ooCEwbd%+ur%UUg>>f6=U-Xt2kzi?_F)&GrnKk(hu5#|PcSpNdy8uu47m3{Nn 7!u|g0sJD-NoG!KSJ$Mgh#A( z!M<3o-Sa==?*uwUY`jR7QP|xVf(K+Ok-$@N_xlO^y7c6$kTT@}+%=3iN0X4>Qo`^} zz3$+2M5>3c4RN3RaD{&zB*=Y|NNx`%5iG#}3UgWo?FNRjNLjB5BXyo?=QN9vahJcc zJft;|%}`05t2R8_y&=|+amzPqk3tKa-oX_4R75(0>*L-2I*aIPT{OW@WvN@xxJa*V z;c3u<539LaOUBXmY>h)xBI@}QPzFi#n-?BHxKu%)vFa|R?gf+l__gN{U xD1Da- zN)m#zdh4}z<(|6ck9`{?(D)t5(>#i|0u}D%D1h&U-VL>tvkn6@bQ%K9JcU*15?c$Z zzszir*v)?St!=2g2ek^6q1!N~W%ThbTY2|waknvf&$U!Ufw5kcHG{zjpGr3!WV)uX zDV}Gh6DC=Q*5ckwGY+n`z*c(v*3pnQ_~z+OY$bsL$wH^04&~`x2f&|BtoEwT1fTm) zzJ5R>J{e;rhrK>I_~8#Ta($uJ6dM%dF!R^k?4{OF#<{_V0kNn3--Y*uJqJnIf3mA$ zT97(X)>NHT-k#;}tf&!JMinJ%TKs>#p2psIx{dEXNthW-IDuhpYayAA?g|A>-5%%H z38Z1Ip0d7l#5KzN??nL70GvyAz9PGGM1IQ4XT>l`bz{dv-RiHaAj`-@79(2AO>}~u zFRx@(KaISe=2{D=DbL91s+}9|m C3X>$L1tx z&cT8^EGM2b{YTyS2UE8rjn|}CcHxGdn40#NOW}8}+SU!Eq+i#c5l1n`!#EdyUbT4R z{B99ue2W8iI158{!`gA4$vZKl vt!QWjKlNIFydw?54>bo$7bZ`xv8`D*~kkv}` z-^_=xzcIakzt1b=pnMMK)Ve9tw7Xlvk!(V(vvu#wnj1P=+gc>&QzbRNqn=Rsk3cy* zR%OwDtUh(L?k4&JJg>8@{!ji651oFPy8qt$;X~~Y)$g>b()l~Dr)4Rg`a4NMUL-{& zLl*p6`yuAE{~sRv189+iBac~aTju_-5H~C|A=Dvh@l+Qlf_Zf i_asNL z>yx9`&Wqbb^(RK;9}E2w=MHaaaB?W{J)DXT0Zw0&i7>jH=5y1PgwE5r^klW1?2$t$ zHEY4`#xUp|D &u0bPv5<+?-L64=#}qk^7m|t?$h!v`Ibcu z{HRbW1<8SYNt`F-+nZM>bqGK9y%GKyEXWkWp-QUa!&9kjkky!92dx-8_6;hBx44Fi zio5>|+N2EInRNwLMo+9?ggEPq*SUL5<+tNc*2gXW;T6Nqwfa6XfAIqk1eDE%z736o z2+pkc-^$(;1I6w$iVaeipCDHew#^l_Mw;xVcX!APRJ;_2G;Sox5~V1fqrtZ&sz8X@ z#Qw=1M*D@vLmQ0((R3%>TGiA{FugV{hgJH!*$fSjsv;g~Wz(hMva*aMu^aP|yoh|p zHYKg~WrOXE-AN~Xy)EaXoBSj?Omv?Pr9XRbuJK24OG%z4ODRn)UfaNrLjewrO^1mo z515Q|S~7X><865nPO{U6+H2`-h7Kl0L7pJGW?Z`&gP-NQyLQr(yefAYkg96vgs4Y6 z$g=a4jlZ*J?I$UA@@EKPjm)#k1Vww*7*Udctc=znjqur4$v<||iw|H`*Ep%kFwr0I zGVqFSj<6qfrBvxQ|2UvmqU3L;TcYGysSTxx2q`sl)@$sXo4bKtRIXc@Cw#gW`*iaq zQS!@_m*IH4#k^k$%JCTfToczEDXs1JYdoJ; $7V&J3y{;3KYG|G}FZ0PgOt+P89hS^(aMp`2Y3bXX ziJMW$zcpir7I57_!On%u{(0t>`sgt>I*h=d8UcQJ4*YWXxzW>?exmzkEI*F#ig0mn z9m%!N?}i~Z3K67#EHwl|hqBfl;mT^3g>xLR7FhL%S$Iinye1)$s*EgOSW*%*{+_)m z^nrlK7RCk1zH?c=_4IeX$S|2Z|8e^RxrsHX)Va-noo{VJRObKn3dB%8ZO+Dvy6#w( zJ+qA&m~$PLx8m*Q=4pXgX*8yTw4NEtra*-pW}L)QegtzB AELvR;=i2X<`@C+$c{s~pPYwo@MYU*1;((^4F^@EvD{%5sxa*7HWl+b4g4r@&& z;n?&y=^Vp{C z?hiq*4J^!0fmY!m8%aY; Da$~e7SKOJw0@Y7(((937y;c^x)BJ#G VyfDbM>}`QtGDc7W -e~w$XChPAF p%KYzfevp z2}E8>vRvaJd%M)Xc}vT`|HCV0{x9t{Eg|%o>Xy^5t6>%ov6WC+ywq4;?sPt?AvWYk zuHs_T7s4#wht6hrPrt67Kak#XgcfeUI*tB%oq(tFU#7~mG#WrCeUj~S>Z#W?Uy?<^ z9D921*497%;YH%f#(plti>JC^KfMj9{I5kCc$4BTrTh1(|LlI;{bRuPpQZc1cK>gO zfXDv}F)(BN|4w5q|7~r(t7a~})Z;y&xD^ugnxH{c)l*Zq(F0Gupp+`?;21FPIGa&? zpYgc)FGNP+LLvL;AKn69a(nnEl@Oku-4w(86m`7dpQvbQY0$#;>Cr1=vX!>Gcxuwe z`<|Z^a%BEIyyJbTt40ypKNGfaecM*{1wZ!b|6`-<3B?J#xC81LOX@(=K>a4NYX0H< z*C