From 0a963e0c0652160d6311ebe562f5160d5134ca1a Mon Sep 17 00:00:00 2001 From: david Date: Wed, 6 Feb 2008 14:28:09 +0000 Subject: [PATCH] =?UTF-8?q?Presupuestos=20de=20cliente:=20Generaci=C3=B3n?= =?UTF-8?q?=20en=20formato=20Word=20del=20informe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@250 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Source/Base/Base.dproj | 626 +---- Source/Base/Utiles/uSistemaFunc.pas | 4 +- Source/Base/Utiles/uStringsUtils.pas | 29 + Source/GUIBase/GUIBase.dproj | 32 +- Source/GUIBase/uEditorPreview.dfm | 2 +- Source/GUIBase/uEditorPreview.pas | 63 +- Source/Informes/Presupuesto.rdx | Bin 0 -> 174592 bytes .../uPresupuestosClienteController.pas | 5 +- .../uPresupuestosClienteReportController.pas | 51 +- .../Data/uDataModulePresupuestosCliente.pas | 13 +- .../uIDataModulePresupuestosClienteReport.pas | 3 +- .../Plugin/PresupuestosCliente_plugin.dpk | 9 +- .../Plugin/PresupuestosCliente_plugin.dproj | 56 +- .../Plugin/PresupuestosCliente_plugin.res | Bin 384 -> 5028 bytes .../Reports/Literales.pas | 408 +++ .../Reports/uRptPedidosCliente_Server.dfm | 624 ----- .../Reports/uRptPedidosCliente_Server.pas | 118 - .../uRptPresupuestosCliente_Server.pas | 83 +- .../Reports/uRptWordPresupuestoCliente.dfm | 646 +++++ .../Reports/uRptWordPresupuestoCliente.pas | 634 +++++ .../Servidor/srvPresupuestosCliente_Impl.pas | 30 +- .../Views/PresupuestosCliente_view.dproj | 12 +- .../Views/PresupuestosCliente_view.res | Bin 384 -> 5028 bytes .../Views/uEditorPresupuestoCliente.dfm | 162 +- .../uEditorPresupuestosClienteReport.dfm | 20 +- .../uEditorPresupuestosClienteReport.pas | 29 +- Source/Servicios/FactuGES.RODL | 10 +- Source/Servicios/FactuGES_Intf.pas | 27 +- Source/Servicios/FactuGES_Invk.pas | 37 +- Source/Servicios/RODLFILE.res | Bin 23527 -> 23801 bytes Source/Servidor/FactuGES_Server.RES | Bin 23212 -> 23212 bytes Source/Servidor/FactuGES_Server.dpr | 9 +- Source/Servidor/FactuGES_Server.dproj | 473 ++-- Source/Servidor/Utiles/AHWord97.pas | 2217 +++++++++++++++++ 34 files changed, 4712 insertions(+), 1720 deletions(-) create mode 100644 Source/Informes/Presupuesto.rdx create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/Literales.pas delete mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptPedidosCliente_Server.dfm delete mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptPedidosCliente_Server.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas create mode 100644 Source/Servidor/Utiles/AHWord97.pas diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 5f786a82..98f8938c 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -53,56 +53,56 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
@@ -127,10 +127,53 @@
dmBase
TDataModule
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -146,486 +189,3 @@ - diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas index f47dc7de..27d0474e 100644 --- a/Source/Base/Utiles/uSistemaFunc.pas +++ b/Source/Base/Utiles/uSistemaFunc.pas @@ -32,7 +32,7 @@ function DarFicheroTemporal : String; function DarFicheroJPGTemporal : String; function DarFicheroBMPTemporal : String; function DarFicheroTIFFTemporal : String; -function DarFicheroExportar (var Fichero : String) : Boolean; +function DarFicheroWordExportar (var Fichero : String) : Boolean; function DarVersionFichero (Executable : String) : String; function DarFechaFichero (Executable : String) : String; procedure CopiarFichero(const Origen, Destino: string); @@ -127,7 +127,7 @@ begin Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'jpg'; end; -function DarFicheroExportar (var Fichero : String) : Boolean; +function DarFicheroWordExportar (var Fichero : String) : Boolean; var DialogoSalvar : TSaveDialog; begin diff --git a/Source/Base/Utiles/uStringsUtils.pas b/Source/Base/Utiles/uStringsUtils.pas index 5c43b4da..1d85dea2 100644 --- a/Source/Base/Utiles/uStringsUtils.pas +++ b/Source/Base/Utiles/uStringsUtils.pas @@ -7,10 +7,16 @@ uses procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings); function StringsToString(Source:TStrings; Delimiter:char):string; +function EsCadenaVacia(const S: AnsiString): Boolean; overload; +function EsCadenaVacia(const S: Variant): Boolean; overload; +function EsNumerico(Cadena: String) : Boolean; implementation +uses + Variants, SysUtils; + { Convierte una cadena con items separados con un delimitador en un TString } procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings); var i: integer; @@ -30,4 +36,27 @@ begin if Result<>'' then Delete(Result, 1, 1) end; +function EsCadenaVacia(const S: AnsiString): Boolean; +begin + Result := (Length(Trim(S)) = 0) +end; + +function EsCadenaVacia(const S: Variant): Boolean; overload; +begin + Result := True; + if VarIsNull(S) then + Exit; + Result := EsCadenaVacia(VarToStr(S)); +end; + +function EsNumerico(Cadena: String) : Boolean; +var + Codigo: Integer; + Valor: Double; +begin + Val(Cadena, Valor, Codigo); + Result := (Codigo = 0) +end; + + end. diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index 429c936b..37767160 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,22 +58,22 @@ MainSource - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/GUIBase/uEditorPreview.dfm b/Source/GUIBase/uEditorPreview.dfm index e0f99664..04f85244 100644 --- a/Source/GUIBase/uEditorPreview.dfm +++ b/Source/GUIBase/uEditorPreview.dfm @@ -6,7 +6,7 @@ inherited fEditorPreview: TfEditorPreview OnDestroy = FormDestroy OnResize = FormResize ExplicitWidth = 803 - ExplicitHeight = 492 + ExplicitHeight = 485 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader diff --git a/Source/GUIBase/uEditorPreview.pas b/Source/GUIBase/uEditorPreview.pas index 820406e4..aa78b189 100644 --- a/Source/GUIBase/uEditorPreview.pas +++ b/Source/GUIBase/uEditorPreview.pas @@ -11,7 +11,7 @@ uses pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar, - frxExportMail, frxExportXLS, frxExportText, frxExportRTF; + frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase; type IEditorPreview = interface(IEditorBase) @@ -28,6 +28,15 @@ type procedure Print; procedure Preview; + function GetController : IControllerBase; + procedure SetController (const Value : IControllerBase); + property Controller : IControllerBase read GetController + write SetController; + + function GetListaID : String; + procedure SetListaID (const Value : String); + property ListaID : String read GetListaID + write SetListaID; end; TfEditorPreview = class(TfEditorBase, IEditorPreview) @@ -133,14 +142,26 @@ type procedure actExportarTextoExecute(Sender: TObject); private FPreview : TfrViewPreview; + FTitle : TCaption; + FController : IControllerBase; + FListaID : String; procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); procedure UpdateZoom; protected function GetReport: TfrxReport; virtual; procedure SetTitle(const Value: string); function GetTitle: string; + procedure PonerTitulos(const ATitulo: String = ''); override; + function GetController : IControllerBase; + procedure SetController (const Value : IControllerBase); + procedure SetListaID (const Value : String); + function GetListaID : String; public constructor Create(AOwner: TComponent); override; + property ListaID : String read GetListaID + write SetListaID; + property Controller : IControllerBase read GetController + write SetController; property Title: string read GetTitle write SetTitle; property Report: TfrxReport read GetReport; procedure Print; @@ -160,6 +181,16 @@ uses { TfEditorBase1 } +function TfEditorPreview.GetController: IControllerBase; +begin + Result := FController; +end; + +function TfEditorPreview.GetListaID: String; +begin + Result := FListaID; +end; + function TfEditorPreview.GetReport: TfrxReport; begin Result := frxReport1; @@ -168,7 +199,7 @@ end; function TfEditorPreview.GetTitle: string; begin - Result := Self.Caption; + Result := FTitle; end; procedure TfEditorPreview.FormShow(Sender: TObject); @@ -389,6 +420,21 @@ begin FPreview.Preview.OnPageChanged := OnPageChanged; end; +procedure TfEditorPreview.PonerTitulos(const ATitulo: String); +var + AText : String; +begin + AText := 'Previsualizar'; + + if (Length(ATitulo) > 0) then + AText := AText + ' - ' + ATitulo + else + AText := AText + ' - ' + FTitle; + + JvNavPanelHeader.Caption := AText; + Caption := AText; +end; + procedure TfEditorPreview.Preview; begin Self.ShowModal; @@ -403,9 +449,20 @@ begin Enabled := True; end; +procedure TfEditorPreview.SetController(const Value: IControllerBase); +begin + FController := Value; +end; + +procedure TfEditorPreview.SetListaID(const Value: String); +begin + FListaID := Value; +end; + procedure TfEditorPreview.SetTitle(const Value: string); begin - Self.Caption := 'Previsualizar - ' + Value; + FTitle := Value; + PonerTitulos(FTitle); end; function TfEditorPreview.ExportToFile: String; diff --git a/Source/Informes/Presupuesto.rdx b/Source/Informes/Presupuesto.rdx new file mode 100644 index 0000000000000000000000000000000000000000..1671401f5f6048c008ab5ec8db11bf87d6e8cd36 GIT binary patch literal 174592 zcmeEv1zc85x9>xDNH-59A>AlQgLH$0ASvBQhcrk@hkziUf{3DsNVkL_At6XeiKsLJ zBHY;^itqb+zW4jiz4v_Q{LaSzo>^;R&&*o0Cc#&|r>62AQB1@B@SKMs!S)X@V5lef zNWdR;Oyk2~*MT1aVE^FY0Afb~L;}PD0M`FL{|#E;V__rAB599_OAX)GL z!B^tIV7M?dTQgf1brbgcm^0r1&@TLaviz&(z?C<=p} z25N1=a+D5oNr2bqJALftAJd#5J*YVe9}I>J(oujygo60iARk2F+5#7P{*KEC;^CbK zX+c6y2^dTp&~YF=F>wF*9M@Y^=#L>s^ezVsMi0DHpnO0`u;X~gE|l-d=a21sT+ib; zP<=0=z+ksQI;cGcMUF!L=tB9AgCHnBP2e8qvj=E&&^{0i{vEc@Q4UA%<9tr?{*M2+ zK2Up~eEyi$yk)$`UPYd51(VbBNK+f zoB`)J-S=Ra=vknLK;BiL{M>*E=^ykQ$Lo?fBw>*t{d?d&rjNsqLjUvc<9v^EI@T}f zJ5W320KJA>Q~?-F5xB?SR|hmyHmHGZwvgU1#oZ>aB#F`rL`2aWtHJtoXVUy(p+#U4@*ajPp0f}UI9)x zuQ0a&A6&)M!qvtCN88@&EL?<#Lx5X|LqL#2gcr^Q7v#f{Gxa)T3keHwhzN4<3E)_A zIGEblpM|?yn!DM!TiQ#Q+PDIT)6vo$2L}fo2S;5~R!c`+M^;N)4Gnr!Jsd1uozS>> zc(`~((9q;8&8+xw+BMr0s1i9o;R_6jbG9RTX44UrNGdWZ_zBa@u;5 znzC?7T}f2~Nf|YEPzy;;kf9{p-V|=?Zs}-lv+fADusjQgAAU&I&D|1i;bacJ=jiSP zceONkx?%~%wXk$EceQbbqO-%DT`k=_oINbvKooDdyN#uTvy&T$0^*z6+xVD%&lE~$ zpFMZW6f!w$DFbq7hk;gvHvx4u%`B=Zg2-1HwWOD0x2Cf zm750~1iM;ZG3CU;hX1#HaHO3a%`KhXozSE~)gbAisROOCaYEB}0)jtOD(HnHZR-5V z-NXJ@zKo^YQ8Wby=kM_WOUlX71`TiyT{OS|emNUQklPOrnyQ+%q!td3AQPnL3c8YT zRW+a+(#kq7Wz;xv)1dSG68H}^3{(XP2L~DF z`x^&`5Dq>f3n$_x2KEB&7rn!gR**XjmlEa?;uqo*5&Q?%!_wZ0^FM7r(9qGKe`vsn z96y9`SrsW+8MwN&6Xml^&s@3@72>{Rv*Zr`nJq;vg+wjg zSo#mDhD~BEreg;aK)+^$eho(SgOXMxg8`1QB3OV@|KLioVVwwYwuXUq8|G1{v?7?m zGzwJ}{6LETyTAXi#TqMXKXk{wNXZQ78=K$UV=7fOlL* zlS`T~P(}~~^3g%-d;}l^NC$o=e-99L6#&u!ZvaRK!U0a|!IzWr`8~0DGTO>X;`2%3 zmynOY4f!S7-z4Tw=JwzuQFxNbI!XM=52pKs1)?w_01`$71uJMGj)4k8V*E*(GQz-u z&CWtl4QK`<0_kxym^K0oF;xzRK12aSSV9d15=f>v{s0*Q)}fbZ3n`g`SP+3?2y86C z4k(WtD&PQRr9PtghfrY%m`HLk(=8+(v}lkmD#Fjt9|{!#EGt0zJcesME~plPi+BYWEcVh^05v7EBjr3vg!pViOiFP z%1Pq)(N4ztJARO@odt{fU-urgWOM}dA#NDr5^6a%)Q8%^&eR_s)R#nm;J|+ND`380 z&@vkItsh>hpI+*p-aq%Vzv}(CVB;>d_|I0s7%&fOlK&e!@E0{XwgNv&4{Gv9-pQH( zn*iB`f1xHY)cESg0Q0ebMfTGFjEH}Yi-QNoB_y0SRK%P3!gN2I)szwG zQ2yv(torwp{|PPqhw@MOchq1Q3MA{N0F?mG0IC3<15^V*^Ku(t>}&y;z{G?TKnUPG zfDAy>Ng3AumZ&}%@;8Z+znA8hDcjAHX?{Edzme+~v9 z&tImCfcnenq7^>^G-HI}LNe|EcnN?A)V0Dgw<4drLXhWfjjg4c1?VK6!pYp6-VN=S+g_xp11XpO~Z1%pA0DX=2^9s>mb zSR;W|<4-OOtnz+RhwDD_ADo~0I$J||g0&eGS4|NarU3xM`LPy*68>CsfiEm5{#cg+ z$^hH*c$JDrd`KPfK(Rn7C=~dp*&eUzfD3&eMttOg)g82;JuVKx5%(ku zMs~zITrK{L2|mUM^!(5a9C(1(nm?m|k)O3_C z9L57K(H8hF#SlJ3p9JNfSyX>!QU95Ba*8SkbN>5Pf=kB=PU(|8s3|QDCTyFq}3_4JXvW2k{8L1LrR{Y$a^ zqoD@uD!^cUw8KDleYD3igWN;^Uk)G0(BN?_QE1oUPeaGQDqGSmuz5`ey(oTeN&HhQ z{qIu$%TmFRAelq+Ia7d$lTr;hN&L_B|5=A%o{-*%>HVeN{D))8Un|Y`vEg{m0X5_C zc=4YbC;l&~1q>0AJ2aQK1Ayl8*H4N%__xH#fdBUXKkI=zqy{J#|9LeywEB?c_SdkDXb|KBg^ftkRO@84tm|6{3ONRZ5-eHv(w z<~hJ0_i0`O-Y+)6?qqkj`FjKq!p{fn=l*R>L;JiSm*4ay5)gDOOLE|+ z1fT+-0iXq-1E2?B1UL=A48Q@v3BU!w4Zs7y3&01!4_`a_CF8#$NQ<^j!ZHn=);>aM|WgYMSvzy6I%ztN&x?>vlmQ?4P9Ch z5oQYDYz^7d(?{{S6;GWEJH7*S6bHHqM0YZmKg2$Y#ddT@=Qr^{fqs4zc49A>iVFOC z$B+9x5Cx)wJ!z;-z>Y6e#h?4XYG7Mg0|3z?CGHpW7gRJe5Mg1MAPjs37F<42lSn7t|-815^X}ohDvL%=!B{9A8}6dK9C;sj@`dIAq3wB&*8ZO zIOfY`IvOO7bAeniNSq|WAORgxL4ep`kT@B7a%_+TssPEp3ZMp{7N8LTx(n70@B&~K zU=Cm&U;*Ggz$buR01TjZrvS(R7yvi{xBvtI1ObEqgaJeV&H|hRFa^j3C&0Bef>2QSj+F3K<91WttR07#hKvA(dGB&gTNL)FNMaD?_(7mk}aQz z*?CNKgd^6m4F(_9g^W7UPwV|X#UHIZhqB7>j3Hj8UT)Upc(jE0HAw;Z2*u?K=NM%_yDj3@DU*Xr>Ks8`S%AM z`@;u3|80oxg$6y(8L|>D@Bfolq8Ih>Y8vPmhc==D=h!wJcSIQK|7ClCe%#x^&hYU^ zz-_i;FSyNi?EORk$A{#1+@GPo4E5tb_SYc5iv@TL@C2X&0Jz-?3<-|Ni~vjz!BX*|77`f%c0voH*vX_+>Iks2&d~7mcasakets4j zkpFJFARpQlQ_vW$@0s$I=G3WK-JH+TQ>iq!LRU7RySxyNZo7k}4Dd&R{r~}->Ky`@ zLf||4GX>ya_wdgZ{FMuHq*`2oVVy7i4=|Er8eE_Aq+dRWQdgD7!KAk-T z$bc;=STsN)I`jqN%dM@zL2%QQmx4X$p;`n4hVun|Hy8}-6a<7o3zHjQk?pP^BdP6W z{3+Ypo#ge~_715a7#&6^456tml<6ZG`q$GW>ILkIO81Cbqf^&&a&m0%jc6I}H0u>A z&W$KGK3BJyjJ77$MY?w!M|fg3?M)syYJ z{AGX3lD@O6%T9aJ#PjobR7}j^7te3=n+5`QkLDsH(f3!|N-25zc&2NZCqkYl6ilxX(`E%9yxj9cWyH=W>bK~^)WG!SY#)=$v%Ep_<-w4n%uu=yE`MF zkIKJihiYH!Q2@QyV9W#W^`V!j9+VP1djgz-54IIuY-hBs@4AGvz0#6fh_MN|gAvm_ ztCteGF#jp*PET&J-W}tujF02%RT53hw|C^}Ze?l+?3nmQbcLGx#4f&l;F(qA06*=U zbl1N)y3y@(zsR$pG_*R=WY72ZtD{LM%ri@^(qfo+OnJsqK3N-AXnjcN3F+BF>x)rE z6I!B@q$=OS42tAFVV&s2)adsLD57tnIPxitgXw=05 z4Nf<5W4)-_^*pRU!?`z<7Vp62_A|MjE04vbg`2cAb%WVQJ^Y5Zn#Z_|>R_!S6FEs} z8e23kykNY=deu2e-Zw=ljaQ6Vs$i}5=bkt$chtTht`tdMZ1hlG6n1)7^SShSR-C(y z#IuH^Kss8RgU#u(FLNJ}$kMLbc^D|a88x?3>$z!kN0+*!myMj(%tHgWWZgv@&Ddj?>h2M7@Ta+BnW^x3g;ZbB8f* zh=|@+7n|UIFg^7kL<3){97g(y=4Sd`SoLGi2n%yX<7l+48-4LpS7*?e2o17Zh`pS% z9Y*WtV$~*|XjeUPqr{4bX4^!K6)@=+R02=kyDekYhZug9R*_RDZIILP zeq-BB%qee=&5|?cO-yIra*8!=lAb4HSM(!sW=oXYdCPmRFjdSzlZ6q}kssc-Z@?Uf zUD>u8D_;259m=n@$#oTu5 z2uz*QajQdD;!EIuOIL`*etqM89rbS0txO?%+*0l+W1q`5P0lp-gf#iKfqn<^josrx z@ZBfN(%}vzv$_RWrW~g))_#y~+PU?q^d+vS4Bic)Nvdyc6KCdf^KXW%A#{q$ZBcnU zE&C1_6rDoHD@~IPSXGoW2uDMe!bIZ~U@F7o$JpUnEFGXDO(zqV;CWETY0q4Vji;cd z#^K%R;JMI(K*)@fPUL9oxT5g{6>qTzYeHYb;!R2=5qBD0q}{S z2>X=Q64J6aPcbWAPIO`CG;uS&cGB+EXdu+xwCVJ;wUNSFxqR(>?MIs?kyPW$XUVuF zEc+W2vJKq@srN2X!m;o=5V0mr(4{c((AD%x+DchuvqW4^Th%mWl)Ti|TuJCspco8) zOKG3x;FC>CG*GG|R4nXUvGn?>f}yZsg@}3u<&9wZSr0Zpo}vAlkKEL|;qb5l-THgo z(~X6KUtfqGMW(25I3c0HMVNw@GC=4D?6xY2+&AM z4Q7oD35k2-WBsw2i$2YT)8z*}T7R#q+4ktx4Mct|${3Yj!CGzu=Y4aY7I)({p2 z54~&JjpdJ6*dgvM8?9(FB{`Fr%geXx6sk}Ui{MUL)pV^u?uyxEB-r6bb2)#BtyV@9 zBc3#AhGCeCf0fy9q4_x;5c9*E2+HH)0-5^HlrJP0}*%dJb4wY zbBSkhT_l)<7b|H-6lYEapknWsxoFds&$CEcf&7I6e1@ha`lli&qtw$@i#wxaJJgMHgY;Twb zOsS28jqN*?RKts9G|7r4d~@sX;8UhvQ?ehJP+41ARTE>m{%rUu%{ZI*jq`~#6z^}i zwfDZh)RWNlz`XheO(7>|o@3Ld;c%WKzbfw>h7Tg1qq^&Uq-I2jT?7%T;`Xy_&I&y* zvvEQ^JpYSpm%lZe8=8iA(Ne78*Q&Zd&s*`CBRwywp|LW$|5l;7ux8AqDX4~I-`Q~6JO5D6b@xf61N4hU4va)O5y{6*Sn_6l! z;X}d&YZuI#MPK35oDx2-hEnyiuTcxFD$ePF_kfQ5h`CjovbR0iG8)ZDU*CW{N27Gz zXv`_TDVty}Q*H+P5pL!Feo<^WI9(x()p|4TNlYVOQ>=SFW{3UbO9NNM-+x8QxUoy- z0u<}vgM+Uy2K_*h z#WdZFrHW02dkDlYOvj|2ZmheA*B|73Ep=1~*lRy`{~?wfd^*cC!o*DW`nKYYy$(<)l~#R_dl4ULzwb|EPYL7-n^`|NPirZ&e@c>t@hy%r z2{utTF&=^5^@C2Ev($eq*V|N_b>9B06wOn*o%_wEDJ#z9 zxmWyE?`18<;LEqq8ziY*7_;N9atNWg6=Qim}eVLlhoHnM%=Q4OwR;DfsTHccgHVjVpzICt4NkAti%iksUc;H$c3U|kc6-K{+Unky@zC`Kh@Xp1an9>Df4q)xcjYc8Y9^;yjY58T z+g4MJx(Bj)-aUbE8wL50+_zu(Fg3i(q?#%!uVZ>$L}PS%gN|oX?m|oW9?YeJ$0S|zy^l3W=c3Dp z6NT;Gb@HPQq^Yd5dBv|>^osGd>-lPe!ak?uA57ZNvC>X*3cy-ko`)b3u>2 zF}S4!BB{PT)(!2l7>Xg4e*H43<}-!pY@f?r{nat(&yIgyOm_F8vAnR{sn5hHgD6z4fC@LynS37jUt#?Ny0o+R&BO;6|P>(9FN z?Lq1D-RzhBqPtT~U12N6W3w+VHRf+TNyeB?(4KAOUS*=swa`VM(^oN1%n-cg%DCTL zrW^aEL++)!t!D9pUQ0H6+!Y1)rZ)+s0mfz00$(~!(P&I2(XdoiR8#bew;w+2zQAP8 zKRPpP+-&KqcE{Jg25EGlqOg3c7hkB(V62nUUiS$JVSP}BaM@%uldY7BP?wqdghfH} zqIMz@NS9`?`1t~hvMWiiX)+D|O}z^e?=Sh$bhjzCFyss--AqtcexpZ>EPG0ld%snG z+7P42cTjxumKxq?!I7ME1ZVILQrJF8+(h5txV^nAG9F3cSD<^~iA`PaiF-rA<3V@8 zm+W!0>`|i_^1Zr)vU{j?EpeW;PG9SWu9SEoK46)-m2@-rLPVMs`wqOBJL{Dw3M*l1 z(W}?XkNf)iJj_14Xb1_s22bd|up>(mGdT3An%B%xFnVQkc>+E~75GnR}9q*%I?#An4x zVZ@b&}W*wf;06s;W5*>LCiBbQ_ogvzYp}Adq{*5!*5^lWMcr(QtMUrst(g0$up1GsN zFwMwK_rQ4Q3N|c zR#P}Ivy*s;eH4KVv3yXhsja+~fw=hEE7mGpKPIWRTGQS0MT*f%^mm5c3ua-TWXc8m zl9gO*&SQ&2Yr-?mNampj_-IYwBHYM=o7}PTc)9C^L*w-vKkM#b4paV9W@5a={r=ky zcshGHL&)MhFLbb;7+i=r%g9*Yef8nUdkkg#es^vXVian}5@!n0^gT#A+ihU*DIN@Bf5aCxr2G(qgDpL%Lvj-X%>`ZaePV!0WW9rR~Fd8 zbDvoXXsn9#Rnt;0X-me1M{V!SN6x9)y?BPS@pz^@zbWHki5A6*Xko)iP9L{CpPAClHg!E|HxrALzIYQSJ{)_GLi7SP8UJTi-bTxA zs|@c=p6&H}Bd(vrUop4r=9xy0@siuwxXxQ>k+c_ING`ZLZGYnoxhU~qNH5ZrYH4{7 z_{iOtGX9#fX&2z7OKMY^_)3+`uP!Tl7$DQL`t1+lw+Hk zp28O$cj;}2FZSofLpb{(VkPWu#$zKa4ZQcF4RZ813Q=x#_J^YMneB#My>CU~qBy^1`;#`+EmHduLA6ALN(Jlaba!pd3I zbY9qJ6R>62A|gb9Yae~LF=(o>nf@YYHp&ZDZQ>Wft$AHjLatds7e&!sh*z$dyJiGL zP!QQ{E2!d0k@hi}i|?SY-d(vYy^>Xfo6)A2m=?EjwJx_%u!8PY$*Jwo&0Wv;y__tz z+&#mR-llh89l0aPGWCp}vnB!$S0Bd8M_zEvVo6N3Im^f=ekVxoy8Xj6SN3(xULK0; z56Gp@qW1ahJudR-u_k0Z4nBmk_d8Nl=bCt1$tlbF@QbtimpJ7%>rxNgo;KW~kH!j&JbwO2+J`}%|-?E`- zzS=->P+!X{lsdRuNl9hK_X{JzGzrgL+hCoB(AC|WXYYuRI(uIz#-j~6p#A}$zXr~apgjMdM z4GRm!VHIN1B{O}LN562Mn@yUD*Blm=bu9_wadM~63?jT#qGFq!;$zRuxh}_K%j_5L zOyH+Act6R0%exjKHWSwT4O0{|tIDj9Kx4Mx=2!^tU9UJvkNL=H4;zmD?L6P5&l?re zjWdL9by|%gaDgq=ffBGYyy&AgL?tevOs2Cfsm_G&L}5_OS@!x{ij7$GOQts)v2W+uQIX-)FGHx?M*a-$q z&q%HjCkv%hI-1>*%Dde7qUZFg%C;wwK`pJ^dyv|waADHdnB%&1mXFm3KAmsZGCk?=$^>ad6wZ9}^+L>njYeB1k#UBG>ae=5 z2;KBmw~$-Fj@i0Z<)__9#W~m<&@yTxB=+>Yi;j*FE@h5dvxcPFxBSF+SUU1td}?Hk z45`?>fx4((eimR;%r- zvv;R^l)DP5uf2A2xAA+OAZDD^z9h{}E6(rFKz#aUK9{;lP#^+Hv>P3IRAbRCT?Ma} z2j~?V%W5Jpbk+@zcd<+>*b9TUd4yS+Ik!rXin&Ge1&h_H&nv7dFg| zpOWJAdxbTjO1)0?srg*AO~d$hcl)wnYOK_7vDc|8gIiLH_{lPsB>vBWa7q*JUy9f@ z7Pv#hb@LT9%k-@P+QfGf9hmt>Ds&1w%>9vgucjKpo^IRq3W_yipHu87J=G zjb0`ZJ!^1*!Gd6NvDsff6+N^SqX}cxu%x(n_R?iMMz5B|F@+?zwS*NJiHlEA+G@`* z1k~ML@uI;&3~|JI_P}M%LF`FN?_~`-CQQs{`-(L)_&7YL6qg6a3gVZAj3>xf#Y9ss zG^W8>-(%dI@};7eLFLKIUPlV68~1;KHIue>(dQX@TjY9h+|xbc-I;ocWJHD$Qe9G1 z-h>rP4N7=lI~T$+D3eR+D-%_zBI%6Z1GV|f~_5yK?~5%w9QC-cG?QOsEBE;fY= zr=188q%p-)P+AJDa}^&_sk8brsDkyrn(w#hx`_5B2a+Dd%gs@+0qN~^Jq@SAUPSvG zjwz})r3YB)sQjh<3^TjnP!gsft19zA>hf=|+(L2w_xT^*0??nQllk#?w4tN(pAQ!f z4eooS_u$sRfBfLVkXJ5%DCNkQ(4TgMA%J@;FmO694Z~Vt1YTrG=n^9ebgc~hjXLO% z`~Wb}Vea5JOPs-9o8SW+@ZS!sK*_)pWClZ9$y5b#QTh20^l9j2eCv%8G;ij`d^mtz z1$-z6nZu}#NYEj@BjEih=3gArzXNI34iD)k3*smN@mGiRxP#!5#2~`BI87f6ri%Fe zkp2>ySJLZYuD8AgzRR^}>d#q{F`s;7k}e8H$3>PA-@s$()J%=0hf8nCX?L7 z3*vp@^s7(L4DT0ony9e>d(QrTwjy7~-Fm;x#kuv8t**@}DicTlDDpzrsD=HP>{HQU@|C}$3B6cSE*5?kvT_f zBjL4o??G+A`^VQGSLTer36U6i^?r8GLB@x?Xi*8Nnfp_}vbmj|jgF1Hd>6XuDN7WO z%=_&7boK0kpRQFf=`eAH8NbOG1>3$#(w5Bu4WY|>xu$`iMXMh_ew-wEnt{R1y_tv4 zLF*kpa?)Dc+R%`$i;D{}Iq@meQ|}xi*ygfu2e!7h3YrSQEr9O+#4OW;!C}(=+1Hgd z)x*tA!8~(;;yb=$3cChg(_>hti%;9T;3ra*&veH{M`NNE-np}o_P9>_hOX&Yf+W7q z&D5l9s&v=Nf&v*?+19acLs{e2iE(2Uxmb7vox+w}Gtu>-ndJ6iS|hd23uZkJ@`|SC z9MUolxR7?34nF?0A$F8h;XkUz!A%E}6%4~Y}2O3%t> z-Jr9xZ=0c_x9%~VvwCSh!s_(dRkw#HoumZDeyIK z-R(5OQs`!R)z-q2xiqj**jhNcW@G1MSmilaSMt@BkKiItbhwI&N<2NyCEPl{+1(q| z@}8pTfeoo+uNb^;o3gR8-BTLy@0}47As3k+BpFOw_VX()$_t;hIKzs`%Emi}iG>wU z#uLm@GXADNc`x}xku7TB-G_IJ@{2kyl;P?6uT4key`_HZ@!DhT&7027P6`T&5m!nd zWG8-Q@&Q&+sgd57WxlqCh9O8jXrfqNmgU4mp`jzUV01Bgvs}i4KBJAV(eNCE3ySY{vX0S7izAyFT)O1H(%C4s@MVu=g_2!HhTZXc zJLi_?=9TQhyB|NUJwH2dGRXfiiapxh=YBSFYHtpVjnnEAC;zIzx{Qy2kT|J%R9ZXcGOf~8_G<>NN^V(W z!skQrKbkeXK;=<>R5giF?>5(%q7ota^1y0;Swru1Y-VWfSYsywDXFRe3m3C^r%!Tz z4E^J2JiUNtUJGWXrgYS2-B(sH?+OTTy*W41g=Kfp-X&!4CdNW-mrGX1pLnp`Y&n|H zQ+3=sAi`UmVZ`Xx3*j79$po4+??YaoRrh`hpZ*q6BHnNw?_P~)ZN2fnKtP?rZc1_} z5rznJ+|Bo9OX6lSm8uWKYUP6Q?x<*MhqjDTS}YD9WTYld@}9=j3MZ?msAxYpk1Ly9 z<5^z*C{b$^IW$1M>B;?jAA9#+ea%pNb8aldhdna>%AVsb>mYK=z4KPxWIR0i)r_en z@kLz3gp0Q4F7wS6EHW}rIGnm&FeyDP#FkZE7Nq%3bH8Vw_uWSma+bwx*V7>cMVYRd z;>zFNz1ihk>t9ojZ8(kBCAu$EDV(-iQ1`;K&vU&li71Kjfq(4Q1yr!YSBc){T zAnhP^713_&V|lq8B5B~4M+51lXV0Ds&JQ*wCHvC!q?2ECWlNkyqNd{6imU@pQg=u9 zViM~>l$`{ORraaF*y$j%Q$+XfJz{0MjTPoV?ZAq{O5RGY_AZCN^40QFuO~5GF<4!3 z)P1A*#rbSpeYG1~%_iDJXtJYw!7<@m55CY)q54t#+ql+_*ZHp4*xD33-o5(xYIA&4 zTvSYEHM2^O_(|{U?b1)*-zc^HV5^CxDLFd$hA8Wl-2i?j*cSdVDpFZD&W8XG8}c%W?hIG-6N2+CWg)_S=ezj6)$lb8^)ui4XIPzVbNONqLxFZK4NZle_wc`bPi7r}^#+B;u{gogPFh>3}_1t*-IH_Pa| z_%Jrz+DGp!I^h4dSlFO+O5xOes;XAo%M8b9Nu$#G@$EUU2A9)fue?7#HZRxQs8T3n z_xh40t8yT=bUmtLJI2R%RhZVC!~Fh@mg*@kCeG!Uil>1*xbowBGu;zU=Q(Lny~%gZ zOkP^td|RP+o-$xGs99`D{NCM*_ty;V@3tK@Ana2XygB=3CR+0WvI#~MZsTjZv-2*l z?$#QX-pr3Gz3%Gtz0gh^qHetwVP7-PH|S7&AIVLOYRYA_pLVgzbn|&BmR@79a3puM zM#JYJaXG^=Lo8cGf*i5SW<;eA&G8$pwS1K%)@ns2Ut+}JwDCl3F6<9nKk!_O7z~aX ziqqW>(AcTTEF!%V!7TR~PsD+d-Mo0<({tS~Qkx|rN`p2Z9VD!WhqT5NWPjoS$gH}g4J|U+1*}~OY0B5Yy@wVJ=jmkNWwM=wBicO+w|n}^71&;xPHxkbjp~X$j@G*tE+qQ%pxl9W*A7sdyBZs_gvT0 z9)D3SiF)C8c4>fEOE)>X)=0>^Fg__hwLHA|{`~^vtlMN-j}bC@vDWxP_q#Z^+2{0? z9gFYPW!II5N0dgC#+Bw5&@ZbudG@?xXn8G5>>52V?by#0Q@$qEJL;NfPt!|)nY5K7 z^2)%l^K59C6NizI8+G?Z8bO*~t=#5zHYOoilS`8qnj=jZ=J1rKjlPI3?raT=nNqh@ z*OX-~i5PLC`@Y+nPUU6T?K_6i|Ka9+e(?2gv-N~32bVxa1 zL(zXeiW`sRMf!|7fU?Yvi^=3{y6}pfgn1|r@)T$3m`9d;0#^5ye zjGcr3r_C4QSE_q7%~qBCYHttTzmFGSpg%ll`50+P@1;@2D>phSL;WcKp|1@O&`JY@ z=LW(E7t93mbgk&ex1GbzQh!l1nm0c!M`!6`xjJbY*vwomNGGSPto^Kzm6wzMeSPIN z^%YN|WTFjmvh+u~%5R^v_(sJPV8`5ZIxUw+k4-gs#Zq?ei=XaByav8WJf@@lr>*p% z*RL*}b+o~YA$d*86 z#!+caCZcrCPfOJ2wZ%lQt6eF*koDq#V@Dh_LaZB;VtZpjZS`HNcI)t&`Yq2z^7iuO zGJjGePF}I6h+k0HUOe<}n+bE=d6?Nm>z?2IA}q-lL&EpUyK_#y^>#)vrg-MmX&RYC-fjc zIv-7qa|pE7IoV*i=&a@$BuU4;#T2@mA=jGU*x1b#RL`85Dy#ZZCas3`ocAo<{G!W8 zb7A#hG6bKUogHL(0cANEBtmMcbkuXK8mzkLLqe~Y>&wO2MPfSSjg13F3oM`I5KJqJ z;E0<>H+r4(;-i@)&)tgK3c8imhoMG(kfnX2dg*gt@ET$b2?ZtPnTP9*w~fw8=g_U` za<_S{ewN*~_dVHs~ zi7TceR&V)0;(cL4aMf$B^~$>)1ITpAXjjSQD2Vrh)l;9UiV9uT*1algfBFiuc(?Zj z)1?PSU-0zrn_}5yobDKAt`9ePJf@OsoiTzD;zBrTA^ZU(2&m%jccRs$jGBV_At)-xAv-+%+ue~QZ z>9+7nV#^?68ahTdTL;^{B41ScU?xUZ#>b+Bc#|;~102t%2QY?NI7?jos5qIj-KyQC zts_Z%5XwU8nEu$ocd@T9_rZRsQE;thFNDvFAotxc^`1BjRBG=l70{8y8v0?&Va95L%8QX5tqQ1i))Q@+L0E!s5N z;-;6IInFjCi;1c1bQwbZM4%6?FH7eA%<|6GaTK~6$XQydsC$>1t_(w3gp` z4$Ff3S+Xoga!9jiUDCKDtBPWxr=+Ar=|IVKhRgVVS%pVMr1wWUJSw*o;^du*VZN|D z?4oDiW{Kvgo?o?Ioo(Hv*k!|%8SvthwXw0wsP(woem&0Sb`i%HLtJ^@r&<^25L9no zh#uD+W&$6Ehl@;3L9mi6+x^|}FVOG_MLZxltiDvt81y36_Zdy5SNFlrhD(2joj6?y-VxW zU-3zEr+7S)Ccnyb zXX%nOG+&acE-B`tIySeIZ_G=xbI~+}HMqT~y*5c{KyewZwfC#rWUi1EjZnE}KgpGs(V5XRc=1VprWqpwQ^yrB!xU_sNXZ5wLK zFQ>N<6LJ3rj)NE(zEE;mJh4ff=oi15sigd=n)y|nI{@X4D_zyAyf!^ z8spUY%=E>s$M>|~Y3J)Umfj4xgElA|)fruEcURh9A`?5-V2m%Hq4MBSZAFz|dnYwE zwP0jiWb86-h79&u679W9T9WIouPkS=itm^B(G}Zol!>LcMC{o{Uk;bozs8~zVT{n& z97waj-yO#wg!g*ha+673!^T*~uTlsJ!$pC=(bd?%z=vyhVsz^9HJ57-LlQ6Zl4TL4 zyh?lBT#3uPz^rAhb)8dnl6b{X!?JRLD4Fl=c(#u0%1-ZtqI1|h;s>JN?mP;qY3KG% ze`jYfJe2JZ)0;0Z-`m>y9C7)1q?uXdjpe6X44+u8u}3Fg4mL%5+1YCl==Ux75*DtJ zn7TgSMK`7-U39_N(2dZCce#i74GXIB=&;q!#RuqIN*@S`icC%p&R|-PkFtsCHOt{S zAf1pE_um_^I45XxWA{{ysPgKD=%_vKeNTTEy&IaVK6amXiI=k3cUICvyQ73dINw(D z^V1V`h^}1aPL9iK$qV<`m~BqV&E311=vJJW_@oY~JkF|Uu)AIRpaeoYPyh~m#nb9hiJ?7d)d`5mQu8go9m zE`^H9%THZT8Jc^J7bJ4t?tN#ysX91AamhOF08l|MWyG2@Bx?4#BX#@#L>5vwrMY=&ikd_7s zkxuFE4i)&;tH-%#&YYP!Gv|C0_p|=ULC%YX|@R`a0gx>tih;PhJe~&i>h1 zN1?^9!ygN5!|Q|n($_cEJW8N)=c$W1)lJ3ZYw)kxv_TKz_)8&=!b}5lAYzf=MSddHS^Cnt{1BXEN zEu|e0ScFAD_5I zorEKhu+pz76!m2^1dQ+BhZXRqmozCftZTPL6BT>HF1pDY2g^!Y>wx;c?n#qZe9kNL zr_+X#XW}=1Jw4F;$NW|9G?65XXJ+%=v=-qrk_v)G$&(!t8q9Simfjg5M z69sws>|}J5VuXM_YmJH4Qr{ZYsaca`r?|pBAd87PnH1}ES+@kC)gKf4p!;tEiynDk@ zqWG?_eJszmRwvh}*Q$smvn1!brGuZ-olm8wIXDfDLx9R<=%ZL1T+;h> zH=V)=ebH4$?uN*~WE9X85g7AI-jhpqY{sLN&?tneg@M;6GApnsut%|HmC!?uKnlEM zA>j^kH-DsV|HkpK;vj{u%q$GnTZ^0*L)6YNgbPks|Ljb(6J8-;P#)#61%o+5H+}6` z?Wy(|IgW7zAxkvnipF9yo0{fjh_b4t6z*Beo0vCnTat2@(;8~xCQ|Tz2vp0|8l%T@ z2;F!Bg0RT)V(JRR{U0#iV|AJj-I82MTmFjb1GYGP*kw$mZXw-mPQ>7f>} zA&JlAQqh?1u3{Ujppo+H?e)CX`h~Ob@+?l)eNOubsMSTiul0l16?}0TObgQ}@$$m* z(5`J;t%rJFUk|&8We)E=ZmKusU3w~&t=g2sB3#vDF7^@Dth+95JbrAoVD%lz>BPs6 zcHFBLS}IzSPp)ye9(R$h4ylh2n+s#I2XiKy?J|042^$A4;Y1*k<>@}+ei&das4ezPODJ_yLFJ!DXol0PEc3S3PdEvIY73=RtN^&*y& zkriF1tJHx-h$j?e7L5DM!u^pu^2Q2-HtythCkC4(^kYhOKbs9=BU10l!?csJn6VUG zC(~Ga1MlYfoV@%s{&wdwv7J2F*PKGAUM>uq*!K7Ax%}BmEFM0zN^C$nihy6YXzQoD z#$RgCgpH!7qc9Q0FGbSkG&-;;)ppyByf!B-WKLx#>xJZtva(MVZmw^T712A8!-m!t zX?nT`HV*t#DOEYEms^UehM=w!pWVG1P>)AXoSGvRDt)NxWWeuAR*t9lPtOhhmu_yTpE#1TH5P+r$mI3#>U*V+V-g7eev_C zhS#Z#%+rqBLhlF@Z+4k1UYvbdiGU{}G4$2N1I~eC3-8bT&HiUV2hs+=Z2fJ@X%7#=Vzr)iMo`q7D zmgUoJuLXhBC-tBE-c7&Q-XaxkKb2@3xz~H=Ls7piFwf9-?QZGJj|sdi(l-&i=7`cnu-Va>cb%)WOi^&{H^9l{X}$F1N-B$GqxKEpZ8P9}q38p@j8@ zMFmIIxp1jOD$U-fF;oaVTmE=}pY8qLJGAPEgp`NzEi0~PUWOP)I*~LLX{Nwz8&l0{ zHC`^^jd$&Pq5(XSw8DnSs>)6p#~XbLcg^ZtHjPd{M7@ldAkf2kFL6#LbW?|>D6(lf z(w0r)5Wksb!G1x@cD|E|=GB6~kC5H@>M`>^f$GtiWXEKv z{_zM0xb|XMSvab4W5MT06l-=CoRL_9m8p8v=f~coCp^W8dk6h15{HOr3Gd_z+c5it z(P5=?CHXx+H+b?_Pg>^C*tOZG%8ix`Y-~K&pQ{#DQ|2uxMiLe$p|&7;2KQ~ZO^0@> zI1oFuM@L+uCm3^)8ptTF;yiKtlD8EKUc()|$7{aC#e-bw=HernDZa_~j`3acyk$db z!OTdOE<fh)~vPw+cMHWgkblD96yq3SBp_u&<)iOk$>zB;coba!>9 zk1!&S_aE22?YR3XNOmuX%Z!L;j@yZ6-sXYG12s`>E2pv5;MVEGKGL1OyQF8~U--kb z!%tJR>mHN6a}($K$k=#N}6)wQcHtjC6$;3YMmYB2A0~1Le0`H-+S%)Eq?= zE$*KkQu|ic+_KR5QggcRI@qdNP?N@2PR2>gv*Nz^L{C7Gts@A$Nb!Zs%){(KkjSG4 zRFmlskXl84 z_7>?PU$cq!%pKBT#ZGS80ptlf28QM+*Ojvr*ihx5z~YwlmJ8Gi2eNmB;zI+zrmqYM z^ode+Q!K5`w^rt)it_3jvMw~Hm@yevbC8&nWRPV9Tw6PkCq9ntb_jbFo;~R;(ew)I z4PQdhn2mQk{Lo+W!J|#5CP|0ezRwyIPK&~lbAx-@lCF5=$*#y);5yJelB3ZE{R+nx5pahbfcgfF#Yv}eewj>-|Rv*QWl)!dmpteCB&H{O&4 zXoVO|=Dc8zKCvg55*3HKHz}4bcHzA4mHVg-WyYF<B0 zN?$bYBpqtVdFy%9APq}%iP>H1j*xNWnc@BY{iHOW=N!>h4@Krjk?-+)( z7J4?9cGIER6~fuNC7o8~-9qC=Q~@m}?PAf7`=PMX(NV{|AbJ?jgVnh0~^ zw&9cAaN#~r690oR&3XQaZ6Y^!)SQ9rO7C($<=b$cr36ax`!YD*ZJ^eYi%S!#QJ z)Z0$0TlGB0%gf8rvq%|uRz2tLRXpwl^k}V|gu$g5@9!j?yqA7oiPN0lPHZXoLsHp_Yl8s@G zf#i>L=q~;s!&1TB)dyEoce{cIb@1ZxsTaz{b=Ht6LT5wLdMx{u#u)^IviCD`?8NNnv4eQN z>@3+VyYFE-Upv`jy+!P77CjO8at7YlF=RL7uHdfkdaAcv(|2Fc!%=vxavZtO5+=%e zvU0B`0(v$AZtyxLDfZ3haz&Rlez(`%SZlX4Ea zEn`p8H)A%RIi8uro2Rj-wN{PZuma~gvwkGj; zD%K0!Yx?FW@+d^^>Nsjej|-~|g`lhh4JT@&9UUFtdF{9ju$fTZ@py4;wKAUKpH*M7 zN2++{5_*nDX-#QWdsp&otzR)pY4xbedh^Q#<+(D+$&tM`)vh$!# zqDA{!GIH2p8nIR~38Texo;|MJp_qj(l!K`)hsi#h9dG5^Pj&INdK0-eavX)3_jMoS zn<0n7@STv%xDgz@8J&W;ZFF(8Swf8v7g>C>l~3g{EiI#&twl*zK6j8$R)FCI|2@N; z#WDl)J2FsCVe0_JQk;;F5cbRt)jFxPyfmpMjM|4UTNn4rl+-fruEvdMY?YawX?}V-?jYJS^lRDRwKS6#H-v*2v3VkD zM$=15m%ny6dWLkwoSe__3~_Jv>l-Q0pG6)x$~#*1N2@+>d10E1iQ4ieE&={d>B93` z-C4Q>&FGU^bLR;egU4^)uR6EaW#kW)+d=8&%ttRoRv1(*i(l%$HjG!PgThh6CTeh~ z%FOP*-mcd2IB#ZPYsY4%bd=MzjUrJmMxhi=Eb0@R9R17T72_S@s%+FFInAA2GD)30qDTBC%k7=3AI|iA;``Q-{C9 z5J>J)2f8dv$=DjWdY-P}&&lUn18If!FYhYk_vH>nmqi~auOKZOwrQVH&P3$KI4bQC z1klG0`rCVlHu6ZpO8GUOcp>@13O6A?)ruF~6pS46k@Lx7%_xw%yi6~42M;QO_#GvNa%Uu)2VN`Dy)X4 z4}Ixr9Tz6%u42 zvI{MdMsz_^1rOH>_FRQQnHi6}c9%YtAt>Yokz&brB_dH#nx3L7kgX9l5M3_qwu!lk z<$cR0eb3o#@TN*sR=^!UVMPlyF9Qz*wwEznq5mp z#Mc$_O)=U4O+=-SZ^kPw zC}d=%?mMUIH>48pyVv~e`d2CNh4|o1S<+jH9EZZ01|fmD>^F@!dpE14A9SGHLqAwl zffYl}{s* z8y+7k2z=PoRn$0cu`k=x;KjyQKNwJS04EK-QIVyTUD&=Sh|SnCM3zD?Ud@;Z6G%C! zOq0jHB-4}%+;R`h4n&`n51haW;oW#nL>u;YcI4DSfVkf?Wc&U6*=YUC9#86M@`1bOkv@E+UshW@{1Mjp_tB6IoCN#fEgk9u%Iw|%o z9EvTw4%sxpw-H|-tqd)Uy^0PQprL<+MbQ6>jDxK=|3eL?=hC7+?WOxy+6ETGV7ldj zicvEZZa3|!t`J$YIt$mspxoo;n&zs)+cq!6w2{Vf zr_WHHMQ{*GsAleoUenu^>r$L>d6@C#;faUk2`>S^MS;b$XF;}KJanyGLqEP7uUJiu zV@)F5C>`l~*1d4E>6ka5cO1LPh(R8Wlw`W{>uw;w!WJt%tGR`Bvvppd#iQ5U`vX&* zQ95&E~M(JaG>0j~tCR5KQxmD=up7u)=T#T{2+@FBpGXY^{!YudP zf;K6ot@8sXp&hkG46{?GQ~t9JizwC}i4yokyr}r3&dMN4DIfM=^0c?l-WH@-3I{tI zMCRw_&VJJLPhLEK<9hLx_dtImaYF(AWzET=p1vtJ+`*0Ujjp~t9K<{5q+vEaY8uYeqzoPHY~d8$b0PU8y{ zT^od%?E>a`S>c4^_gb~3KB-$wWP-CvzB980)GRdNp*na33c)>(q=RLP4t05lEw9bO zhz)Na)b1%Nq6=bR;cV#JZfdHkQ90plp|F@vm z^em)Q5axNjKz<_LL;R}o+NfI$hO+s21x@PFozvn9rbG!=ht^8L`6bJDlL%5sK27l< zrpvcZw&B~d9+y_}9%vaNSrchbpLwV@P6RV`HH)pv4tFXV%6q@O9W`>g$Jp?i9qhfgc%_ zB$9afl>3eP+QEmAiRa}VecMm;)zqo&p$x987RDqJB$l6>>f-C5Nje)_#VmhbzLtM& zN={wQ6Lm*J74e#bUu~9~FbYGYEB8DDj~HHjC3v3DOzDa+ydGR|gnj55G-qndDmR-f z(^+@*k@61$HB4TWV=( zNyt#wQV}jCxZz;VXiSgK3 z0-ij*oc4K(#h8Ys+`T!Ig|?d+ho4L*E3JoQ=wDAwOip0!W38`mbV?&yujj7aaG#N=WF-izoL=`j=}t3j(vjs#ODS=5WG{c zW>zNx8@!m(bu41)*6Okz&wQg=UIm3n@;Tw)$6iYAmA%T{eM_rpMCr?z&$uh4$v9d) z?SSMtGp3)`DW4Bj*{tcFIeeGUfzT&^jU6r?YEFJ~luv5dr8F(+VdBF)^P?rENwQ(3 zk4ksgY=zZT9`$v|3>!3b9Ab69d&%jD?gT4uBA+M_RwcGe_$E4Lc7u)n-&8QcAPxbM$F8qa>b46j>MDqVZ))qiWA$DOfgK zW_RA4@)trWO~h0~?CZ-G2^MidrD8!Vp@(L5q;|X=+obb>j%qh!G-p**WmI;ksh$Uk4}x0|az)Me(>F5r zk+WmDV<)#s!h)V8$K%j4QEVD*i^586Pu?*k3^?)h;H*18a48e<*;=~_eqPX z`{tl9@WsYue=(XM7;j&0ormdQxb_0n!AA^@8?WA|?JQ+I$rNmOokfzJ!m20!ATzn% z`RfN?Mpk})1DMvErfJsXtdxBlPpFGUs?v2Vwaq{UeSwQ<+xDt8NM=%|m#bF|JAPD4 z;mM7x4tfbaQN6GJw~t-n@R}ZXSq0B9CNka_$S6^8-k|DwWH+FUItZSIC#89v?~mq< z9p*?%N>)WSt8%{O;wfP3{`BF#jL&5gZI5|$RJ1atDuX3mhN73*$styP6qB*hyb-0m z6z01EOv6b=v=6eTuBO`>+wAb{SvXmRTzAdUynJ!zS(zL=-IyY8T9FZ|oH6$le-L_f z+4}zJg1S2X0#S!Y`66L548Cu0XHer1`eNhQG5kSJMpi~a5o54>?$~D(6l8s2j zh9BR8Y8Cc8g*Kv`KvP3qV^nQ)ugupFuF;X^2lnf@ZyS<3}n+h>>rLrY7-_E-&4WU&c(aRyEKg_^{amfnOwhc{E>HU z5&yu#fel+G??&fF%t%c0mM>^21UH#ndEHK@|b*Q#3UhBS_x}#aeHF;l}wt`*FeKuxh z)=v)RiaIuld3kFcoI)?x*t@&iV-xatDR`NBy4`Q4IFavrS(cincxrm!ejYqB3=rZ4^i<8^7A6`Vi%Yeu-n5e8s_Jv zKcQajLP^8jQS|hR?iNq9at;-DGg~g;@j7$CT9_>;F;a+T@CWXT)K?hv|Ph9OYcTXY3la@ zI!uLVc@lY|#G-aW(JwObcwYOoVN)l2J+5phzIcYOPnS=Ctv*V~P|zL3IFMOu3D-FL zTq`nYl|4UPY|$`8wLJC(4iPfA-GQB{M{gXd66rAed8fDc{`A8Unh{SDPxB|{q}yL^ zNZe2jQB_-1gQE((j^(37*Tbi`tjCrVHyVp2^+eT8)!ZX5JUu)l8d<$uw9Z*+V53r6 znm_)w+~fG$jzdG{898$zx8Jb~SC9?2`ORy_zG>cElDai=6L(9$cIH!meM9xx+jrkOa0orSyhJsjhr3FKFrRRKvA3TW$JlSfhd@4z6~&^&H;X7^ ze0&_ihUDRnpVt#NS+nQ9;rC@cyGWfco=Sa)Lup7}7V1^$Q_)n%rA3S34VQTqqKH~j zT(VzwLLrFz$&I-B)iY1NcD#mj$CaYiBsqdY_A;8A!VTxKc{L63h)F?K+kvfu2xF9- z4jgZjr=#z`kQZp2`Ox*DtI;CmlCPm8Z_0Ak5#3Abs|R>BF@3){*-7iA-TeS%q5$|- zLbpk`ld96K+Pa;oa|eoOl|i$HF9|CYEGsEpnsn`B`x_`W>dyKvH|4f&o-*G)pH^UG z#$qv9@;`Q43O;Wd>U{hmlXtLPk&?s(I}RK7^!BcF50-*H@-?e_nf&<=^F3ltlY^Ca zoA3$<^EZ+x4CmOZZEYVH=T5>R7VhV#s4WE^*1j9zuj1pJyj5?Kmed z8S&z(<;!p3(-GL^q1p6hhi*Tz4^oVn@i06|S#f^ZD!BE~hJ%ewi`RPTUc}q5VfaH- z8SzK2_wn)wx!*kukdB=t(4N$KwhCnlYdQ5K_%S=(!^PH2NqqiOzR%4_G*m2^fj!#P z+IzfvMZHDG?f3C-Q4Uf(GW9p#*;vxw$U6${rDcC`%$pg+1}|qEG9b)%;l&JJeLJCA zr^e=fB@V_?dNcOaeh^|KKLKh{brCN;wfU!=jT^HfR9x^mTnL1LVg=}E^GzHDno{7FAP#e@o7dy!{ozB z5JPboC`hWbPj@y{)Z-YQK4mIb)w+mcUw0Cj8jk138E40;r=d`M^X4}94$4p?cA3%A z(*oXQ`{K!aRUOx#c3rD_2F|#9W2zHM69eO-i--6xG4xdQjf#!KTajUz7)ok0Y~wYG z@21}$)*2qffZ1cKsA$(|cS*`*3nVvTGs%_IydMW%@~P0pEy+n^y?{zi%TFuz*pVKa*1QRsU01B~jRzGICCEVmbW@3^^l( z=j#@GeVZ6J!_RY2yM}{`y$bc0UoVEuG{Fm`hzKXQ$My9fOuyt>%JbM4UrY{=GD&9R27*tX<={Se zF7W6?T;vh-qz2X$jaACq*eawK%wi&x54Ro)p3ff66$GlQtCyVb5G?hJW7~eF8j5?K zkg*ZyW{Ik7z=qhei`(01y|zBGvgEgnnuk8K*KUbP;DBm+()NU}jPLdv@?7=C6J*T%=dsak zs45MgIH@p#%IQ_C;W)3Heq4;e#u7^S!9 zjkELf%gWeem0{Lx*4<`sZ_*EgExdbVYi+glaCYpXjCe0q@IxV@A#)*9;Z7lI3G3UT zWiuMYDtaL~#6BxJ_H6S#P4n{;mK$tER)t^BM|OC8ZRYuUurL1B%~)qDr3+#X|XBJ%QVk5Ts7TVHeT_KyndUWhwBzwy_@&YVclbQSgD}!JNKc) znXlIgI~wbDckRqD7cuF~^6IKQCTq@?RwTVNM1H8}>ay0e#aXCFe0OlSZJ)KS_mi4< zX5?aNUG}|9)z*&wz{A^T12>X{ZbAD!ts$tPpwqsudtXxR8qa*d$TcS8!vVcs`CXsf z+r$|T{tUg%pPQMtasQ7huV<=oh&*vhM9Cr|A0e@Q|G!6bpF~N}vkzu0J zDk+Rau(z-{gawm2cP+Pm>-<(pOJDVmwIX zM4EuKg}RyCn{4Roz?Gh)tSg~Ypi@91;1#KtT%41hlbzeHn(68Gc~Ul_SWP{S4M$x| zIetiG$#RRlUst&uoGLy?9IupUoEbzmd!(af8T&~XhZv#XamrgggF=drwCb%c21ap*f>Y(i=WAGRdN!H7o8nr5l@rTI{~#o2 zQ)Cm2ut$=omt};AOLoMUK!z7R4#K_B)mJ81@UZ6~2h3MouAtQ=}S~ zvk$kVX@gkGnRvqXrmi{?v;?@cmdl!`Ac$_@9p8K_B0S`VzQp;w{{-abvLMmLTL z(%{V!!TUUcZ>f#;wnDyQY-Ug8oUfp#xo7pwLxtK`kuR^CsS=x*;BwM#I``vWhTW5~ z@Ht6F8`NM#wfew@d~|zN%g|iBsxmYl71Nc&U+OhonG(4&pCyHrICt#m3rl)S@=|2Q z>%Hfzk=G08GeySQjb_^JGLutCUY~Rxs+hR_C^#BbI-;kwthJoo3}d%(ISv&iR z)<1~53GaIvJxag4d%0gz;}|H^%i8VWh*xX&J}$A#UH0>Po_LNoYw0Ez>GfjkSushz zgi@bPs9B0x8;&+_+S4s)bI`HWWvA7M-JQ4-ro=8ckb<5N(78^{Oi7%Cfno-`{A%4| z<8|xB*`eNJ*CDH&1RG zZ@j9%`)`J6o-HvDI0=*q8ruCN# znufuj;>g4Ons~;+A0tiIFyg~y6lIpJmq`##AGyWt;Q6zC)tBd0d3b%k^24z(g)MP| z=iS`=kUhoMAv<3TNRt<%T#Pq@i*8?=jnFXF(0yUcp0?*OId2+Y^432kvoM?EUFB_t zmG}5mv5L~rz4_ItOh+$gHe@lQrj;Me`+AVhBKrs4F;iVpyyG14(j3QyF`1= z&isJH79LMSBkaPu`*mm)Yh7)YiviVyL$fN(6zN&UyfJJc{b_Hui&5M(Nk1=ko>8KP z&O1=;K9&$09gX$VFb6M>9*mF+u46~g*J^BG5``Ku`4VP_(eYj8$5K%XQuDClevo>7 znKp)K4@a(_7e+1Y!6!`?V2za=Bgf_F$L2nws6N~mhrYP9RBAnq3q8`GFwLncr{%3O zo|&+lJ~umki0e^H$1NP2hnrjqr9`bw4cFGM=gxsi|t$EIO)qa@o-n6a3_Q~|SY;g(k&zO*#B zdOhggH^(%}KwAw|#?uHOkz{AlHq>^+a3q(Ob~xXzhcO#@b^2=OQb4PBUrX_;uD665 z6gyuK&v{RDkD%u9YXT*!A*<{J#YrxYL7p9V-yDmnEIdan+OU`6?k~0IISV)j83sEm zh@Wbt-@Wk){9PRL`BCj;6xGX$j;HYm2(}mdHIC*`ne)oHzK+};M3=V(Sdxe5y!O(QQ;&enT~2sk~Ne)HcB+fo=QD*Ngp=Nk!|+j#WI&S$Q(q#`|GgEB&u!}Z;<3TeS2NmRyNGTN2M4sUP|)JuPw zU}U`)PCZliwna%kkdm5WDyt^@bBh=$MRd4wZQ}Gj)QXo`YFSGX65`l6Yi+5^e0@hp zyVQ6!LnHm|p`&7@X$Aet)WeGQ_V%ub0V>={X4aLZm2-5mQ+bm)o;4SPv9`qwT@3I! z2$!A*S{Sln_Y>>dr%m{odzfcMnxaVHB3*Wy9y>Q~f870;ez~75mScA;l91kiGoyNF zr$P2hm(VL`Ai=wK3jfgfh9)3JDupK9GG~vcr1rayD0u%UZLJGN_A$ z@=RK`TlOy59-QSl(vZuA``OBZTsy`hD#tas`g#wJ5Ijs zve6^VWS4v_HptqdWBx>Jl%1Z=N||w3 zG5)RczHE<5=izC1A(UNGMuWIkjTw7Qp?BhaDn zsh>SvwW?QV(kG!Fk^Ulls`_|w+yh4fhY(AYf9-iDZJ{i^%p)6jw~SJ6b}`XbHgYrC zo{%~7x#v;}l1s2Y(UyY`DSK1G&mBUgZPRUDdo;zhGqkgqvLG&@grFLIeO{b6y&t^8 zU_alB=oPgaV@C;_;mA2kj_$YT>!Vv(+#BQ|!z$8@;015E>T(2+eA@k zF75HXW8<&)&riInNLf#bw;V71rcPHsN;Qo)-7UqB$FJHC#KGMrY5&@Lk`lpj-D((( zAAK4|>%GzfbO}eHS5w~Om~lGIa`xPY&KKkuKF7FQ^h@_Qc$h>|`z8!t$YE`oa`5N`}q+8ns+P{$mbD}|g>sheVb_eGQfhU?NexOd#r?nA;KK8e?0b$9h^cg{OM62yzS zA`y2{;wd&0sBV>E`<1d3VXyu2+A#hFRur?M<<;q@22bv_B(M!@j+$v)v@x%^jvWoZ zvz>V2INJX-qlo#*d;jV}bnRpo;n(B>&%B&w`(SZxA8Rx07QHS_gMGG`vmPse?IN9T znI@dxEaT|%X>Nw+Je-wN`UA|M)ozOX7Zu|DXJlF(_eP1}JC?%^SLnux1$=BJra&nT z*__!P$1n4R?eTwry*(=wffyni9wr-sqKM}8f+*z$mZqvcEFIPwJkdq)=Rj?B7+%U7 zCXq2oemmDPP^i}Y72lRTW6jAmNR|gD%{iPdtI4x6tYG@Nc`mQ7?s}O7OKNvzRs)+Y zy43u#%a&u5WgJ$9_Ya%l4V|j_vAmxs@dsJ+dD{f*hs4nP{*igi$tje;-0vBkHmwi~> z7%iRAA5TqG##pY}T|-<_mCRh2EvOQ&#;rLwaD23Hy-;t)k-)>FDHvWO$*L!|3Cn7F zFIq$He(A=i`))!LEyHUsv?AOy2?EUH_V-@Hb<;VRl}O>Uy!03d87Pw}UnL`4izq=T zClx26S|(G+NV{I9P?A`;et*VU{=yNCa3a+(-l>;$K$AJ~&0WQe0`$#1{+wus=lHZk zPgiqcG*&EOVOiLf)$WCcDjOK(+T5P>xW)KZzu9(i_~T{p76R=8`Msu`j$QCFSaakmvJj&B6=Q}efOSMb)wD&~ja0@JJWl9!OiLh~yKBpYQS14$YfABh}owbHJ zlh7(L$_nn+ClY-6l&X@=BLgwO@N?JWq=bYy6U*(fYTGbRMjD3Ydchs$nR)>>hRE2v zBHkOHA8~WjOZVYD+RL5rwY=epp{_nWIC$WAR57aIo_Kf|CQ3fpgf4WQzEUjR59;QA zP)yK3;=rpnuYkhW15AUPZcuVNK#P8qf1bGM(s;bsr10?Wyxn{`R;TL)-BEwbY2XVB z4GxRMb(LtEbs9S=>JMjVX+#0$URYstE<^B7iAf}?6IjNo?l-+wbeETCDT-4VdfUct zal1L4{w%c`+xGtJ(OYkMC?^Y&tB6DnMhJbnNm_^k){=O4e65CB%mzhn8QNx7wXk_` zu6RU-x#DH}S~XA0Jqk4ZZ2I8~8Q~F|9KyI?eZo9?%VBTwiO8*Wptn|rIyhkn71K<)$u{Scaa1bkl+Him!_OvMoJX`q0QFiJv!@Ak$J zfbaI=LOx6VV-?mB6o^nB(7wY1VtC)b-3}K2{QI2j2#{~L1AG4L%kw|w1@j}X4tTIb zXc*XDY)GCR@RUx_FumA6az=|7Rn}QNTd|hNE!$|9KRDqx8QoU!uQV`m1~m zk72*pvVWJIO@FOk{nbc<<$^|t(fIr;RXT>?uQ=0`3mOtduF!uTMUqe;V&Q&75iZvE zD8fVlDGV%ZE+nd8;b38|L81y53ldeB2$W7RUI zQ175HN9aH#U-n$~faGtF{noF5U;DlzIFMo=gZAQQP03$Bb`adqu;7#L-@hLIt-*l^ zaen)j_)pEx&!-^Loj;br!hx^FexLePyGlaY{q{nh{=&z9lDNmBr`kP84XIs&)IaJHC=b#I%u}cz zwFvTo(VuG3?<(QBO%{iKjUx%Q{v z00sIMA8?T9_)#kC|0&h~jQz9a!#f7*wBO73<4|C({X;b!8s_iSbl^w3kzYOP_Fr@F zZ@10wtGs`;=-_<*KYf^J`}?XX(#XH0j`sd3 zT>fQs^!FPE@-gK<3*H|eP=NE7!rhhJ)ve`^N+0Znr5Z+rifCb`dV(Ig+c2ifRKll)4P z{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGj zN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFb zll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P z{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGjN|XFbll)4P{7RGj zN|XFbll)4P{7RGjN|XFbll*_TCOP!4DPaCdwom9Mo$v|7@3MV?xDeSsp>KNO6NnJm zzChd`vV90Kr*OYj)A73y-!~atpvs&|{pV_bJ#gQ}0@r@ZbsZO?dkF)_Y5HCE98AH$ zUWdp?LWXb4pudm*GzIf#Q;0vN{)&|8#xIl$zX=WhNsko|{rkauFFGDNM6vMah3>od z#}v8(?R!4o3kwbXv%*5d{8?e4|Eze>a6gLoO&s*^6*iw33Q8R6!A~lPFh8Z=lP+X) zlvUVOppE;thwDJw6AB8lEo4=QQY=Is7-+>pK}2yOg3w3+h#D{o02P1+KnFl%rEdT* z0GI$Q07N4f2XGUB3%~>50|)?w03rZ5Xebf@DS!+>4xj)~0;mAg02%--0HUHz4`2W= z0+;~I02Tl%-~!l-9i$uppra4P1%T)_-U9FdZUcA$d;orc06-8R1P}(?0f+!Z0b&4g zfCNAiAO*M!kOs&AWC3yjd4K{y5ugN62B-j30crqsfCfMlpaswd=m2y95P8V^06l;{ zzyM$fFaj6@AigvKfZ%{K13Uzn11tcR04snszy@Foumd~-*aI8@j{%MVCxA1+1@Hvm z3UC9s13Unp058B(fH%Mg;0y2r_yYm}U|u933J?u= z4u}E70$u>(0P%nXKq4RskPJuxyac2IUIEeo>3|GCCLjxt4afoH0`dU)fC4}vpa@V5 zC;_|%lmf~C<$yPU3P2^`Euace4X6Rs0_p(ufCj)jKqH_D&wpcwCSVJ&4cGzf0`>s=fCIoG;0SOGI02jj&H$eQUjSbL=YR{qB>)oq zDxfCWf|^4HYQ7Cf?Z4F+$im+?+ypfPREuu|3fSZt63n*^8^3QZ`91mmtE6WrK=H5> zIuuMkh5J5F97Mq5Z&C2`HGlg!GWdMOkNhF&Z`qO!tn>ilP%vnM(%XZ`69=g=h#qSY zfe<_V)`0-zj|^7+aSXq8J6OH%Ybt{1w*Yw>gFKbK`NHbA?&8~eH=&@R(ZCoa|DR0y z7uzej-}`3wANK$G3i?p&P;8*(yaoPofRr1goIhXT?~LPt{C|}F8d$dtIu(O)c>tq8 z2&z#r16l#H`JeLN())HCKi?%ZXi2TUwR%6F``gF=8UI7}j{Q>>u)yjnpp{qn)_VW; ze1EKo4*U-fCJ+G-JN%gcx6*L1un`i-V1Nc^9$QfB?0_90HQ^r}F#n1A55oRW{RT*z z4vAPu3IS3Uh#wIEkTM|wAoUxv3>Bo1x`qz8{?j~+pHi^+YWOd-0H_Nv5I_I312m`^ zu%LoKivG)e+ypa39@rY0kSRU1eQfLS(AJJj+S<^}i(Yh{|2(6#1W)F0Ewkp03@C^0pDy5HipC%>QDQEd;kg(W4A#HIfsga6cTGnAce%+ zJ&;0T?jcAaac2k88z6N7DHcedf)sKbiy(6nkV1}u4De$djD8!3w0Yu&PUa8DMC|Pi zZCuHe98I7h+X7$#knfv7;+!3%2mnL?5&#*10)QMZ8UP(|9dHAH0l)-c0k8o$fSUkZ z0Hj>_00ICZfCxYgAOVm9$N-T1C_qXHpaM_>XaKYTIsiR@0l)}g0x$zu0IUGWwyHm+ zoFL@_a06}ucmNQ4@&fn(`~U%fAV3Hp47dXj0f+*`01&%N03-oYfV%)`fDAwuAP0~K zC;$`z5dSCxQ~;1;f$-lpAVMKvk%Ni>4XKf^Q%;b&(){fgQj1`r5x>=Bly3n7sne)1 z(NH1Z))2c+_N_+@nT8BMQaUgWnG+3w{&o!rM!^!w!Jub+Q@Okci!`T69<#qX+)|I?%W`A+|@kDq-x1111|_&&0+x3RFXQ2(*M zd!oCfy`*)xHN8IlWzEabqR@htg65&-oW`8$-s+5o46w9)q`iNpe{Oy5bUU)8l{6rdR&?ncYBL2Znq<{vMdwKi404AfzxPFh9`grIS&l5uXE}gqy@&kGo(* z+Cv)rin@q`U;fAZ-zUE>5^)iE5cNPOL`N$~3#@MtZV>r8GV5Jd<3J;D+Rt+PO`})- z`PNd6FOE0#H)J+sTE4K<3)KTw7j_l~zrfhw_xJx7cr2jkqi7Lpk?=NQd29JMx#rtS z|5yF3sg1_Gzf7$~GushCoKrGqD+kz;n?5=DYYy$1% z%<9ZHbR_|DHMjOZ@}7vI?L=5>}0)Uf2SXQu{r2L%X`a%Xlxm3nOK?trv06lpMTpqVCnxZ z|A5nf^@nP=G&f*Z0Y`yfSoil#g1tRSeUeh0GPXDd%=Z1x!QZv+?_c46i+{lBA5?2_ zDv*CF|9kxKi*3bS#l>93z;z3_VKBcj|NHIzkM7~W-#;K`!0FjI(pcCDaz*(E{x=La zOs!1?9c0kS_@{5s{G$%}#rprv{sH&LCYL7l!XTIX;3mr-=ouv+C2;QVo$UREwf^;! z|IPj>YAezY)BgkA@_kpJ%U9T1xW2poulL4Z=J?;~pQX(u(58VqT7Rr_WV~d2b9~?R zzxzu&{k!J;xA_O$A}MYw_RjVOS0I0&b3i`;^vA(n=FR=hf0rwMHQ)a#|A0#la9a3& z8~+bKj4`?xJ~>AMh@5&*x|s; zz`ww>e@GVp!TtdcI>D3SKhQZK2*GV2a4P$k-QE2CF8WXP4|u2s-hcT6@7jQebIvcF zfpdPp&Hj~p_|Nmt?&0q1j@N(qy@3~RUi|jAGX9kw_}h8?C;8|5v#z}6Jk3DOKd@N? zF9(DbhXFJE>Gh1iZIb_}rTWMLr?v2&UEnP^QIfsu1@ z`F~KSKdm2djnIqsT{6JZkku2bw#RO^R0%(&2Z~f)RgOC9Iq4zR8{R3FNGu*%APOJ2 z6@tEj`@&zvd;%BP?4Wr=)4{{xw%6^P!W?MzPwNNq;_YtPP`^L8I?d^{aCe|C?Eisg zpa)n7&V~r;qCp%>Lr)dgh|Wh~I6{T71_|KtPwNLbSo^|jfE=&}`UineEWcv+7WQpf zJhs4|1#Tb^Y@I+}U z4Gg5%s)Fh8FUL~&mYC)#+bTQzI%Dr0hDwY`;E*#zZ^-H&(hqv>U7x${s~mu-L2*G1 zE7xJySa^pW!#epdH3I^eucOvSVb~EL#&H)KZCP!|_MgxXEcC0OR~QuAF$8yo{tCq1 zaCYuCtl#gxhGsBUK;GyQzf=zPJHY4x`sE(a_!Ihp3Br!fU)F|u0*ttDdw#bn8s(3+ z0PBPpQ$%I`l2wc_=v`V4S}l!2>2UqP?ez%uXs>;p9Kpz+mWR1$B){K!i}Cwuz*8>K zC@D=TgWCp(MlC3%rZ+A6*WvoX!ZIf!_m^#sO9G6?PzZo~jI1Z@<+cL#)i zVnTq0Lx5x4FouaIMyK{#t8Jj4-#U3f=K&~Kk3n%$(dKConu{r6JNA%fvVwC6q^5a( z@Dxo3oA)vA=74X_WXS!azx4xn0>>zDPzLVb=AIGpCEk z4Q2{6el8svAfwo$+%Dp3n91Mz2}=xv=ZjF6h7a588kqkQoh4k#{+DE!KB22OgDJKP z+h|iTRya)Om;Au20e@@t477P}+4_NJ0OS|;2jQ>nIJR+0#*)Z^iwC%|-@lXuhX4)| zT*2n6)%K@w*tl6K082O;4yTB;m&4YG^S|{2uLB(!U8vnR_+ci1B`7Xs|4TA3iIAyA zm1y@{01{jxxZnqS@PUi8I}e-;|F&;9atloyEBEc|BESk^b(c#M{!8V6V2Sn;oUQVk zgu%%cJ{y)Yxv^~E2bQ+&AVD+LVe1F#-)FUtvl;`qq#5#-K6)SZz8wJ_j6AUPaAjJ` zMvLaKaAmpKtB2+c{F-xYRZIEdo}R5Aga_`oqIM6$NyIs)+`rvCB@Wxtzop+W9DD993<#}jJ1{}m(1_3&ZbXHH$+%fNL__YF6gFaIF@kLTQNt6O#?Iwkpr@89vT4@iVn|B z$QJ;N--PBgk|A!{`oXd@1W?~@Fb8bo&I||=v+8yne9)|0=PY4q4d+m!`vLN9-i5AYkqv75tR0Tu(kGkYO1r7&x5HwT8mOet5cI&pmAvOa6 zB+w81o@S%wheqg;h+iy4(L`3dSGlB8M`Fy|htdR+#+7Joa0iHF7PquzA;c28F+@d|T zjtjW4XYZfovMv5tZle^)4094-G(VN=FB8%0F#go%3040zE5JsI=N0S8nz?|sJ95u4 z+rDAL*^e9ncW&K*8yI}rab^nrK)|iQtU0QKelT{`*AAlxjKz;|HfGZeXXy3xjV{0p z_AIsgk1RCP%GmmWx7LUe&MmeMHS=mykD%3t-r!GjZc$=e;-~;y15s>P9N^C%Ifs6@ z+`R*D{m0jTU&`P5`KdVqUfc?=7GOR%5Mx7`HFFJBV;5&DW~LmO0Y8ADZkYd?Q)_-a zGZB3rv%ZF8O5zzu$e$?mw7VHziRl;It?r0l=O03+ra;*V0FD z4%#>wMBi&P8N;eaqn(flIN)-r3K-q*)=9(s+4=!6)zqGx=BM2abK+ccymbu2E!9I) z^l&xWJ|1Jb4O`H#2pm7qaDoS?j+^~FSd+t%jz8A=_ocA)1CJQ%9u3)Vc#X4Jxi|kD z=lZACvSFTFUPGwxXR)T)Mgd^)rx8nNL9kTyCv~8UauZ<Ih}va@TBqrJK3ntZ8#^U7HdEJmRKK(8glUU2kg0 zZ)y@)&mPt|TDO4P6j$7&|E(V!NPzxc&r72VsE*56B5Z8t#*jD4zo}b{+3giz1}D9# zFjmBdb4qE51T|s_MjoIQHxg}Mn!ojfjS)EFp%GJ!ZgIrwFQ;ah=wSlb=*70&wpXY% zfSzV{iX6Uj7y}DNA*@0C$SvFyfZ!e9d7$dQ^@Gc1*ypee6aGtS!9PGK>W@`yT?*!m zjV3B>X`R@H-wYcY&TPPm+sGfg6Zcx~g*8D$3fe5L@q>dM>=x8l^KboN*lUO*HdPN; zfcjT|dI3BL)oSYXmZrm>Z7=%YofFxADL>Xz!EDSAWzwc|c4v_Z~KZ#GpN(lJJ1D6WUg zJJ?(MQLqj46BrZt%ZLs%GHkqPCYBisDcnrNn~_k%M*w2DjQjktW0CN|IyB=IA&KTW|2Oih)89|`3qgzTr;{+I|^V!qyvjTnFd))#&( zs8I^qslJnb^YK1SNuYhx8|Vih0mjHioc{C{)98@+ke`YTE>JuA*8pYOeMdBcgg2et z^wWAZO2kq&!m*o=nrmNe{Fqw<{a_A_`Ees2e|ifmht**GEZC3vp@Fuee$aog_R;qF zX+u6yO`H_h2##y2nwTrVC4%DzN1VE_nbM;uaC}hF|UI_$knT>j#4(PG97baWrm>qd&GJ93q4c#$_hW zlVJh3sfef_%WY8#>@X%a&6nQjDH;o6d;mpa`Sq9c^cFGG4Do;K2S6!UXv9}Dw-`r% z48sDL-^?rAKZ5>&syE{+Hd8Hb9>HI2#jbyB(ZvKD%gUaio>(;kwu;?{oZ_%{%uTs1 zqWN$AV8}-hY%@UVkJ7~yzY(Z_sWw6~Al)B{Tad24$wtET;6gM-XhLvs6b-giyqFQlw z!4LX@0C1evFM)(cJOUWP3R1oBV2Od}w*`np#6X8Zl7RRc1&}nVU3=Xk=%J;4`p@)( zcnmmBtzZhcLc=i<_#$SqEzJjR(utcVT3V0#rqQ|!pnQPl+IQvmrxoXBn`Of){7gT1 z4%_n6?3+)-$|=CbhS>w1;d0Xxa^{$D7eAK{Rt|?@6bjE1Lw@shY~xb^=q>U{o6rw7 z`!%&--#mjrG|@!rT~1UTiz>`(%w~{r&M1pP4`V7Es)jwVp{hIP8p}=Kw)r}?P2rtp(E@fq>0 zID3NoigHhhNg#r(f8U7IBEP2z{h&4o#H;r`TG3(<7llsPNGjO31p|nHTbv3FED0_r zz7gKmii6b~<=novKo@}KBS5Yd760WcEee@#T0hvi*_KEG1fC+yxuKz}7vb-~)9N#C z#|upA0AO($H~&kua0p=kF=^$V$)@##JTQIda?5N}+`*>dSJt>^=O0K3!;2mI2m^1b zjx9<@kjGEgWtysZv-*Lj(M-q@H+-SFAV9Z`yY-vmy(7~x8N+TUOkl8$t1V`wrBl>q z^#cL4+L3FhJ)8j9!C}kot~ySm$LbbVy>Rjl@DiY;oPav+kwzdsEw$~x(hn+%F4PuB zfukt+Y=}Q;k?C!B8MkAGh^ED1J=ll})C9*>V1E(kFq`@i$cF2GkRG;=-S&29H?f;%u&MkqvG~x&DrKtv^DEwPTcv2tdwi0^|mJ$XRY^b$jGOKPa;; zApB4J7-HlQ_t*A~SARqg9a$)M`awIue6yvX_D?m#NyO|33lNCSK^#ykwjg(;g#K(< z-025A!oh6O(swh;sec483JY2Qcm5&B&YxAqPfO=oKX@A_JYhalFWvUKKwpB3*p6|$ zKdtEhXkttBgQ#RUiS6Rc{is_k4r31=93jpq`#&nqc4xaK`a$7XB!L6=qjcLV1$_x_ zDJFmo;qP{@^#4$XEz}Qc2GF^6F)uCBA=ZN6pZ*UC@;9;Ca{a)S#|m7Fgxv~a%(&2z zZhPGZM$7%~@!uq*KbURH^#f+H^w7+H{8nhAsaLRo2OkgJ6$^fxjapcl`GeBx_@Y~- zAFzpaVD1A8ni7AD(s3Xoepv>J0{l=P^!o>QwsnlITB{#K31B6(El7Kdl+%zH5&STH z&=t%qrnm6=>rXpwHH^|R!fr(=tIRPj5-fFrPp%Mt$#7-3K z?nl?+M4i^Jng7{fD;6Stw%VA0-NO#K?md?D;hrG zK8Peh$P6dEl@o`IZ;t5F!n0`49By+e1IFDhQM6cs;bJ#73)}jpFe*(fkNbg#Yp5 z>52^vP6uDNhkn2^HkP$JdfFoKw+k`HNTU0pFClKegH`d<;@U|+$QzrLuvXYEa{A+$ zAa?fghsQq^SO+JzpMJnNR&qE&qJLb#ZD#=S1eoLfafiKK^#c_laH5SNS#1|>d*y(g zR)2h9s=f6C72zijFv_;$DRAv2?^fi~zNeS8!Z!W}{eTOEe;}Bp17Pk}h`dFwAa?)H zB7VO|Kb(ew4bs1L>tKr{-8y1;n+;B(-&_XzDFY za{u7G^*8GWDgv;A;9hQieWED|{qc1CT+W{Y@qWL4I6W7WaySiuTK>4OTfqPhxBOF4 z5gnx;j+U^&6S4A*u$5K_tb<>{jNwlWK^?0fL;zvZhdFEq3%HHNA!@1qL`6#*;R z)eomy@K_Nr+?LZ3+9>Z9y$%E%`?ESsA&m<96Z+w>05Av}Jll8oV2cFLJ@I|t`;Elb zVYh!yKd2%WCU9IAR@8p?sRP`r;zvrXK4OvYPXTd%R6kG=0z9xbfny{QPw>y2CSi(= ztri{DVHy?mr}b0M4q`koO~RVy?>l(l$G-8)6s!f|?65z$7W9wN4@Xe|?ht~FEoeC3 zl(VM!OA-E70&K7N=`pMI&FXhw{KNFasV)L=;D+PJd2j?Jmp=>lJG6vVI{cO%_CEb? zB{Y-&KTk4=Uzp{yN8}uk_py&Y8hohze?l$D%k6izc=%-#b*lvqJY)o$vCdKh2aMV)!_9D(c zbM)RnqD_0}Jf%zBn5)Ift%ua9IR?;5Z4OHs~klcsT1HE(qfH zFwep11%C>sZd9ZC+y58(;nb#HwAjiFrwhA=a0V(ojOT&RftzD;h2Q_e1#WT7nSZ1| zet8g^i+sa{X7 zv6DDRNE1hiy@XPWv+PaKiB5Q{Gd`4{xygXyoWG86A_tGwU%80>V{H`B|avEz~9Y_ zc66SUv@B09^_b{MEWJ>%`penw@g!KN){-wUw6@x`X;!oEY9)ZMtA?7J@Y z<oVmL997)bOZ zdb2;hkV5^}gAi==Uk{}9#HSZAh!}x)h7bdYzC<53ZBKj);%RR@A4-fOgb5)$AB4Qe z5EF^<_#Tb_go)|IU$_^>J(V^JpRvRQ_J0$RK8~0KxlYE_Bz%u$UsHEu@uAWt;d=t8 z#vw%*90=hJNEP`3(Y>qfyI$Wkkt|lGeX6YC}76BMJP>B3}i`BFV}~vYhlJ`{O*R%;JR4Vb7nw zx%~8bwEx{lzU9%SMX`A5MGngU5@@fZzi*|Y6k`QLf*~y@ww$qP?SX?gtK&f6M|Q6I zmh~P}D{+QI9)o9znOAZ=(%+N(SrJ#26&NxZ44&m$6|6)g29kW$etLWNEJ$L|Y%-{n zAhJ_MShPD+oFSUPpi7#6PeNh{$y*q7ZSUF`27S@R;$)S#fux65Vb9%626nP z+ykE&glH{;kf>$wE?~%-g@0o|AS}Ny`iL?ZvSLfuY}G!ktgnAs?~taEZ9JvZ9Fi8W zFp|+%gt77X;S<&mecpNHBlqk|GMkkg4T4;f7Pk2-qlW}TVk=YgMeeskvVbIOKI2h7 zNw0aeCYI58g|d!qNI)7%vi#Y}v>^F!j84mR%v`=lo92r|b5 zNrfbhWt+s{U8sEfQNl}3Laa0z!@2n9xGN%Q>3dQbJmSjkmCtZr3|X0qrJ+$7ysv)3 zPM`%yr8DT_hLNtgEg@-{$I!eMC|)Rdi2G8=@1#T)gID~JT}ZJDJB7HK!JsQeRous2 z8A*#@n8l#)amjg2cCIFi^T_z(ERt2pdGL^ne6@Wk6 z?<|u3fhkeR;1gl&IQOh3nxq9WQy8=bUK~2&Rsn;y@>MNKdm~@M;1OBkl8!!={!})Z zLEBzR(NvSPirpY`tznV0_v;E7blDT>=vk54tCARmEmdcbcuN#9XcE>at>*I<)Z=t! z0!fQdNMz8qrBfs|BrRu0A%mu$k6cO*K|o@+5=mOw!4w8BTKFEe*lS241vI;|!A{r$ z$X8@fVKPapyqd=l6k#xyiY!swuX*l>`W_>TSW1_*B%S3hTFjuW4aQ~W5$Kh+oF?o@S$eA1zHqS6@=d=)82Fqi13n zexIqPfJ2$T3K|!+LiNluiZ_Bt^hGVKMD<&-G8lq2h92pZ0RmmZ2GFewVSz3O zbTlzLn3hkQkSP5mkFq-~l6Y6bAY9Ryl4Yrk-mqX^iVv1C=o0#0DN~GG0wu~(np!D{ z3N|1Ysdt$q?SUu~Wv%illLMNEprOfxp&{offkZkI*|4=Pi;8mL)_dY#}Z5zRq9&%e048p>FAY2=iMG_trj4m5KkXQFg zY+12aJCmv*a?Dx*%F9)tOkb19AcA2IYxOD_Jcl!L^sB-3nYc6#;VZORx~OqAdV4M< ziVYDU{k*seW+Z|%tV9bwTSsXvin|?Ir6etOB}5|msTQWO>NqH6?~)HtoGe=nbh63- zgrZKcHz})7_FY)ss6`;VS5~c2hM|m=fuiYT^-(JK1dtV~P$E8Al|vF<)eJs~YuJpi z4Pq2sm&qY5QwHhr+7gmpc2*3HNkkPVdeEMV)iU@+O|X(xxDokEyx|b%ZL4C?#NA;I zSr($Gkx~U{Pm9!|i{wBfi5oz>*o#B^RSLALa*9zAYuJeOg)ru|3LupVLJQ7bRSNdm zl&lwG)eM@5V-Y&uMJY;7pFtWU2U6WikVdTqsR<|32cjU|T@3T>wEz`c=vSMMrl|?i zHQ{K!=}Sr(G|Q??2!TdEsA3RzVEYpmLQ;--=(9&KJ{?5E%-n+<&8Zw|qysXPNdQ?o z8WCN@upAlIo@YTq7L~{`b2Zwfh(-lFOV%|IYqAO`S&34zTAxT!8?w+|5|M9#B8pc{ z;?P>uKvZrh_QoP)yfy-_(P~v$48pkzqr))~NqVh41}vIv07$FMMJ2wXUnR+d za(@*!3diu;y~ntnZ-YCyNyr z3~}G@kjDdxQOQpQB+on1r?sd>g)*c`lW?c9c==FWfbjEu{?8^jvl>wRgp3a$qiBF2-|log{P=_^Pok$utrADIUoW8 z**T1bUdvB^dZyODHZ(t5HCvog~G=(X={(@`JD82WIY|dhfbO_>Xy7 z;^4q2g&HrAL6PYfj3rl~VVZ;uMz>Tw?j1`@~b1P4DYI=-nC^kvbvJ;`cpNir*=7CNuJ_#BWb)UDy!_wd&fVYWYu7v zK>KnC9B;f;8bk8uyfd{>+K4XDdGP`>+jkMHT#^+9fv(D6&>XU3$gWjn9_i<(iir?I z0#-$Y#o!ka+q&vucuf>ZuXJ37oR(TuMUY)e%N_O3-Me71O?7SO{Tt-=@6dF(ol_GD z6JiFBRMx*LoD`_3gio5!O3vcXj>wEIAd6XK1cq&@ux-&FQ8zee-><`v(nZfCeZqY> z@7$l4I3gp%}vM{;=MasqW5OwwI9 zQZGoUM~31)h@^dhN#l{&6rwH z4k>;lJ?$nKq{|q-{f2vAlIF4TDRr+AY*$v1aNWH5LY z?fuisDEHtk$&+HDBb&+KU9|9^V=^_ozae>(-L)B_nG8Nr&Fj%*4P_%eU}TG)99y2j z;9n+d;`^0^1uQ3Dk-Rm^|AKBF59{&^ENF1=(CXPz)n)nlGDx_HU6hNH>OH5mm_KKCxD zG1c;zJUS1*e6NE73X;}-_e{c=bXAWEYQ{}L0qGwc zPlqsRmy)RjKmkRbSM`ICNBG}RK-mNBk4(asdW>mHk=waICQbD@bqm{673ch(Npq>9 z+7@mDE~w-74*OMDyu^n(eoUG(d+rZ|S{!2N%cQ-orHEnr^B$eX?a2%(D?kA;mwcFX zl~*k47DGUxzpgivcCM%n3aET|(u+w%P&LH>lz-P_EC;>j0gA5|vv zq^iy-Q-^!Dw{G2Yx@>>3P?Qn zmDxj`scw4B{$o)_DQ4MZEoFQF1=I$eie+}zw{?6OAAY#ua&2%PR?M`wX6p(L&=A~i&sH6@GD8H?i#pG4H{3^c81qGIpgj)ua zZj)S92L)tkWijcNeuaPnYRIx;GNZhp9twD;`kl$E=a9{Y0&1e(`g^+Gw6?Xp?w(Uv z2L;?w&4F_Kz5@!#PtSgF(clDAo5@sVF?m$=ToR~`38yPZD~CzD5Wy1@xO6P=6a9%YnZw5fJANo5jm>nL-y3c%mXLQKx1uc=ou`Ba$Z zE`hZeGUKkLFlicL96I7{0a`pYzX&;9!sJoW@ykV@$_>y@X41?mC>nU_RTd!fuf=>N z>U1HKe)486dRDT7K@yXAN!1x7VQNK8n)(ZrRvUW`^|*&QCoRb&kx4VnrARO_C^RpG zEHF;eDlS7ns&C=8R9s47@}h-Xvc-W7jVFB4F!n%U;&vXizopr3g9gQh(74JIRPUh*^k|U*PqE0d zh{=1>#xs#UDuK~deGr)!pn^5lXq6`uS%3nb6*GBGJG@V?g92*YN>S2zRFYPH21F_! zS+Ei{p{ivt1gGu<=TZg;g2_Asy3_F#6i@^@n(8ZD4_gO8QPUoS{)P+qgIY5b`>BhF-9($5%9C$sUT7RNik(|P?Dc|Ig_TBh$&04 z4M%~JiGzNG`4V9Hyj73hQVSq&(2Ph~QRZxj^ZRLSJIl3#SI z8eBW4*G=$)&}QkX&NYAn*rG5_0%@#v70gHyd8ZOB_fX6D3k~KBmy9cvRGes|@Wf_B3`wNFQO#`$BMVJs(zkrP}F2%%@Wdc&o zI5fEegHo{1reu9otwyEZ01Bvms)1aMV?ml~0MeWA7HG*vAbr5e^c_WNQ3mrJ21>eC zBnxx#8henQN<{O`)h=byp471C;^ez3CgFwoccvC3^#=3oiYpkOE}>!OTOvnSDn}aW zfeiIBL6%E3eU&>^)a2fkh0Dj)$T8m#?NY^_gD$Y#L2OS!0d=x6&Z4OAu+UzzkZ;L( z6n{ON0|h*;p}HuFeN9<c-YV0WP35DFkhbE>$ZZ3JR!n zR)xy~+A4chup7vM0-jQ1>^;aQ*95h41r%^gg?WpD0-mC5m8Wbf)@v=Wr2Y@p8{V2H%o`Pu zxX($dr+a?qKmqB7Aa$pjd%iU|J(mvQK4QKE6p(I=?#`oPkXi=?l$kJ@YT=mSSH7bd zRfkRFiBJuw1r$(a3u)5Sf;dn>8VIixQ&2#VCPnCpER&2Q(78TnfK25^9TZ^BRPls0 zh%*3-sum@f<7Zt;0~AnpNsVg8F&rqM(2A+?8BjpgEvi)Q0FYIORiI~upasJX<3ItG zR;tVpn5ZZ{Dl_XUKmpZg`DGWW)^jqc4hndxqLV-w&Fk!}!YL@=C8Z3PT*~R^BWr!s z^ol6tR2xO9IbxQG#`)S!U;SLzfC);Vk6M-eC9)gZ1E1G4v^} zg95%8W#Qf=wi+eZ1ezmneK*)1HWW~MTMaG1CZ8HpKbD}{pDOC0fJnVeFcDGvhS$(KthRziVyX=&Ajh71`l=96KzZ)n6O?H5 zZGCyYB8%&wfP~B7_{`f1KmkP&E|0CxpbK=?)_C|bB8gQ*vZ5eRgA69kqX1Aq4Hl>( z-(1H;h^YpvqQZi~Ry8&BORNPHQ2j<1Iq5v91{6?H^~TA?=g}k6>qea~8XH_Rzv1Ck zSPLj1_aQvelaV!m0&1(VHdM^YF5oXn%1?zt*ib+$RhU_79TZUL4nvCJExQg1D0V%G z$Bt!`Hx4MEBv2oXimv`Fw;l@cG0tT2oOnpG>Y#v<_f&?@GV7oK|1;DJ8g|KbP(U zE)EosX2w(j4+f87>!5&a&kJf9OkVTXk-6}}*igXt2afugOj3(}>CN{#C?Gq?feFp? zsoJ}zlC^bEKuy^P8%#<0bx%GBPpgLlYRf(vpG;@+>Rf&lpGR2*Kmob_4|Fv^sm65l zOd?@h*ib;xchBpF=}dtWhWFe#)V_|Ye+x*enFWFSj0TfV8q9GN25BcgJ@#d9_Z@AZIPyfh-?D)vi zTDWp-D4-Tl0C0dBzyQ>zAr$a$Q~+Awzfl4IMg{yE6##$h->86pqXMXDe&D}R0slq? z{2LYUZ&bj)Q33x(1^gQo@NZNAV3~iT0{*{71+X{g{D1x8Es#Ogp73@lptdXVQ+trG zS8E~BwO}AFc^6Q7%OtQXiJy2&>xS(&B(4Rp;bc@HwejjLc8uvGrDs9i<|UtQG#WPA~JJjBuA1&K)ef%5FCl}o#K8BA>& z>n^=)(Hi_U!N*d7;-=pYKR^7TG1n}WA|3_}&B9IRW6L%%38E{uRdww})7!n>f*^*f zNH1C-udyxnx~5A1h;Q!$r1XiAolg-oAJ0?5IRgc%$M#?4G+Ac(y}o`Xmy7M}><-?G zUc0%{cf&22v}hUcSE~*rnC$PjiLW2;0->DcLL+(UBTq{Dtc(x#n46!Pv}teNr#MZ! zajSb6_el)8uAN`bD%&$E@Z-lr@(J73^Wx5$nueFF*QS>$%s%uu?aUbgR-wPkkQt#f zl02%<9OMahiFI?l={Wzp!8tzFLs3&a`9MB+x>TfBSG z?%3N$DqZ7z;=ay4H1|QmBROO7`5DRzvko4w4$7@k%{K0*5J9s$w_&Q?L{ZgT|L3*t z)#vT!4<9y2_jbi68^^zf>IPK~Wr;mLF-jxc^r2>PA(As{W>1~-utMhe!4&!Z zcaIzThpb(aVS2#uPG?i!)D4$TWu)iY-U+gI-f(AInN3byvAd*C{>{pzBX3+?J-c$d zw(-YPyR^)*zCBd8y?sPzthUu%U1t+-X5N?iFC(vX@)W(Oo_V-1#)@xT%6GqoVqFA< z9kxkn*_P}Zq1As>pHUM}y>;dnz2H|iI#wdKbkOAc9!n}8*X$C|+#r`bZnWM^2lCX| z&azu{&t;`1brmGMTzd}ua6~`m`0h?ZBcm;fZ@*R+C%)Jm3qCbMkUW0#<&vO%PsJ9_ z^I5xQy}{%dRh_6Z-`HteJPE((csr|3tILLe&>&_yZ+LBIrFl(s$hLwlI1xTBTN{Iok= zghiuI+v^ku1nm+DeRp9-(YYS!%QE+R`*xifHglol?hREp4czy|tEOdNnk%7Q>{6=a z9pck}NTgo9W`lTZ$&*T3I$)BIF|PHlF;_9_g&AKm`8DBpiN*GS|KYZC`^JU#Rn+`ZV(`ARtYeee4&U=1-TeV8Y zoslulxmUKmIX+wdxUrD;Q;B`#a`Hsh^9a{r3{?TQ$GKKr0t{bn3Z1^N=wMWm_jY&1 z;L{1LS~s$)X!{k{Z9M|U4)g3Ayt!1q`>}~PZQro$qdHs67rnVkEPndKq{N4Yt9wd4 zAqM0Qzh-@xc>Pq}c=s-uZ6=+{EJDvGs-<)i?xS%1T|bRu*N?=!O*4~=e<`mPkZs^| zP{(%ck!_ke{Tv@UC|s&qzMw#(vMNn)bG4hZdG`yS+?7@eJYKDI+3vMQo*${%Yl_gR z+t-|J&2PRsba2DEr!lrmg-a9fY_+WM4Sjsxa%%6d>n2!a z@0s;v{gAw+0kNImiOo-vHi(hg%ba<3aQ4WTm4TgH95{2fw72c-!%On^-Q+jB zVY^xV=q)#yaijBUZWT*+x2#y3YEr~=cAln@=9qG4g|lBZhk7sE=H+v#tK2m)2Q}H5 zPdn$mvzPSoJAc+>P`K(U(!6%sZpL>Wd6113`FtpY`eo~sf<2Az~TA=8X zvZ0zv`PyL$w|fZ)x?EX&qEKdu!s$-@Qe8Stoh|GtIIDBzj4YS1kprv;N=VLl=sET9 zIJa(s(sFWBGy{*QXS}2J8Q0yq@6m%t3syhl7t9Lk8ox<$_t#rSYpQttOtZxH?ss!= z=#u~X*=!V{Z+!TY-~9ouUte^2{yF|*H#?u{VjV0RxvZP(JWu=i_lOtLo9AtQK7ZBoAr=NpQ&lJG z%!p)Nd(2$*Nl3^jZ2jANpOU<9&8d!valU3(kv(I&vC1$55%;UtZ|{E~`C;I2Lv=&u zaud0UueY7v7x}_1VCeAPo%*{dq;A>Vr(f`SGu>|EZs(?*9_gt6xHxm=8vn;PEa(ca z&rMn^d`o!s>eWtL{iDqC!#(=kHi%62sWO{ooKe{?*fr+4zheJMmi9CMs!}>7{gyDE zZdJHO`8n@L)2cDOE2nolF1~f*n?<6X&kwLl867okR^d3E4BuCRL%toF)jR6Tec8nM zx=AIUuI!a^xIDIW@QMR5B@SW6cLddEO7FMtm)hgFr0~2fx8cz;DZNhccdOiaTz=$} z^vQc>4ff`lIR5aKp0P{Uirk)a=<4jf{bxUWF|M<5r^l1#&7$O_(KWa~z(J5m$rMTA?H=I9dq|6wYcu^{FTzIEbot|7T zO!({Y_C6}sBfp&%ot-ox;YIfnvqy^(g9QEJyPbMPKCT>b|Lr!HN2dhUp5(l}9MCmU z|E&Be=KdYKly-^Ec6={zan`iM`(vJ$#Xhg_P#^m3ctwfgiA1?*qga;G{ntXyi`ERh z9j|Tw_D;_smrpJ~92PHI^u16{Z2Y;GQ7?waO_Z<@w;Vn=(}MXvIAUwig^v$+z5X!# z*3_vEM}0~+M>!mwwQ^=!XDzzm(N)TTbY0qd_fI?gD~vO~$>v*HOqy>b-ffxCU?+RlG^cZ`w1sUfiIvgaAH6eOIVg4E zCf(P*h0#-0Hr~keiS4X zoxY+WJ%{(2Coae5{yEfpZ6|kgrH7hf>kdcn+IwY%=HY?)orXt;hK4Pj;=Rx_#>g}h%Q4W=cRqW z9BY0_;MVD_Rs}{Zv&0qBD;89w)X17HcjB3@)2)2`$feI>s;lCo9&Qq`DJ~hx93bk^ z?R9GTq!ZKfi8RJ1`#JU=lDccGzl>O4L+kfJF;?nDN%3)sx1?RQ%TehQHSa~l$7=hW zj^N|Brp-MXzu*3gT_2&{lA~snmL5~xGN$IzC#}B1RXkSP&p(&^xP7|Sc5CsXsTv`= zde2KX6!kh(HKRr=&~>$u*!G&xvh&+CNWLM<3$=KI>5t_zzgSMbq&LkdrI-{Sv1bvh z*Mjk5zI9(QB-&#&({#>-@o%}B_(mmf&Y@YH;JCOx~Z6r#3PVYN^O?*`T z+L;;y-Wkh9zSt0;F<}3Gy{*L?mPhw=$%=9q@on*e{5eNH%%by-(X^U+Z?ncx>qF|^ zYmeR2zhFN`^lrgge!0TIpHk#!IA>25wC5dZyy8o~+OgXsg@n~*PKfQ<^mIwEkF%}# zVTRQ37b7bl_$pp1IQGPTpYFfx?>>6_-uS&|Kc6^GPJ4B$ zs&mc!&`6!_Q$|fX_${{YCeOmGAu}IqIxz-qd->s5zQVdQd(2nwT_G%LeZg`=zw^Tn zWS!va<{_|pLh(+U8PlaJUQb*fFl4pfl@l-emK~~5(}>EnyE)+VrbQlscK*UoMQmnV zDoEThXU{!JgUtrknm6vbAAdaKNe|($(!$!F@*9OsPHRM6y?&_7F8WZ-wl4CkGTJ7Vj)S6IDj4WlHxjU~~ebauYgE?0kV$rk2(I@(f5<5`ipyc`p;HvoU=Ialyi*Gb=Mvz(#p3i^U|yF zga>T3ovct5S4|e-=U@J$N6eF=_s$1*^NGgw<>@T>z{f&tNwUQy z_g<-k$3Gi&ykdk1^Hb%i_r>S;UH??{nl++3*=y7Im%UeX{k&Q;GJlins&y9g<+=~A zc)dVfbd}Pc1s#GWVM;36;C(!4Y#YDvc47wSACgP?I@RdalzVShkCF5Fl}b# zEBvoEhrOqh}|()V7D2akx!lPJr1hmr$l z@rPZJE%4VkU$9ZbRC`bGiG+u%1*-)YiFqygAZho;E3U%DglD?oo%Agt`cE}GPnVi~ zW@zox^`}1Wjx-&xFygb7N8Vu39aie`dh{7C*R|a8r_3MVyCZqLQjn25Ye^T{(5vE; z`O~6{OWY-khg)ZCI$|h2uDJijb592teqA`;Qq^k3_qpXfHYJH(ouNc= zui3)~tsZTVHs8kV{Tr1zi|$>a8AsnykV&7iyXS{)YiEz`-L0qXG0lWQ0fpAqGeW=E z-l%=(@~Z0k=P#mFi9R2V3bw_je%R{mSn}**=cEhrseaQ7g-6-%UN4ZgNp_c|&72#` zV_3ef>&?momV8z@xW+kS!@KK~&G$*G_zp3tf5O4*f{HaS;3 zdh}_T@UB@gDN);e_h`%A(LU_K6BG9Q)|0Z}o^w4FVgrX9UjM9rpSSup^IQ{5gbzx| z&i%M^Rs3$Ji&^rPJb3SlLRQ|g@hg=32P*ju4wopsAt#tOC)!S=_as5`(!^ZJYXT)xZdO#yk2^D1$7wyO z-fh@h^&S?|st-S%D8C-p>3Yl-(?KMGH{W9Y# zdnZ>4`A)YD5#^iE=ko24i2SFap`offvp;wl>YWt2@M&4);=!ijk-4vD?mRljq@Xk^ z@$2e=X^TW|eDWUdwkTBU=-H1eC-p8mP;1Bc%={NV zp5EH9JV|tpY1rK}<2TL~JUHb&Ijs*PWLi&0Ps!6pc2h;C*f0NHz&lH$V6cX#tE%#$ zj7s|WWnGdMXeJFQndSWW)n@%(dwCRl?AkN)mLlc!uUJ3in(R7Tp0M2g1zwtBpOw4K z&CnW<8tq^+nwIXavQqP-=ae}UyT+VJj2(FA_I9(Su2!K5`zz&U{1tO~!7A6;8q?R7 z+|x4SC^-j&rCjUyl14sihh5s8S-fS3Z+?h3(~sj3<{D9 zDA_t#)Nb+M-5C=rM-6y*z3OqP@Hem9_xtiJn{PEVYks#Ai`UH4yBgRpa&io9ApJ?W zn2-MxztR1iPlilz@1Y|s<^M*pO8mBr$?{QmqEwtxiQGj`=7e5cuIwS+ZNAAGA)84H z90X2it&Q(Nv#=G~erK=h=PHfv!!=&@w7nZ{C+zrQTt7ie)|Z<{1lQGckK~n@@nK!p zX9~-V8Dqx0{iOCNIcbGu$0)g?R(rb$P* z+?;%%?;*o48}7#+>btDln#wNAa@N|+Iv&mQdEt1zixNGDjGnD=Y*5JVZU$+2kS%6XUJz6e(%7_!SBflRHKD)|7*u>07*E`&8 z*p+V222~kb?sk^xWE5qklvAeuQgLLe&&Ox)cZ!`^xba%|^QXJj3>IBBY~ZZC2{XO- zeA;WHSvsSl_+GSf-szBW@2VUW&&19gbm)L``tG&;-#ah6=yW&fu*IZ7qW!`RgL(G7 zUbs|MDEjW_MY?MiUs)#P@?9=*P0!_S<3e_jiSvvsWw#ny9=*Kn`&q3# z_l$~hGd~9yydS$~lgx{Z`JH|Gf4su8?ox^YuR$@diOW3&i5|lhR;AcqKG0*)rm6QG zrO!x-doP)on3UL4H12q?*Li2%nSwM%wsC>cU7M#{x~>+?6!ls%%HkH^jleIb_(FG9 z8L2(kJ6K7%m-dU?16lq24JRd@4A^`f!%?CFL~rO#*fbGoB}gmKoT2 zGL<*Ghsql!KRPawKWG=v6QKp~!}pj^I_V_uGL%?abdeGgPfuN0IT5GuS&qLOdI-GUtp3v4}l*!as>UNJ9G z^R&M;=lRHx`@Jeol~$=|22UM-aC%VG0!_s`M1Xzt#YJz&sHbk9{iyJf+0rx1lx@db zUOvDW^OwXO{UzrPKf0nkxwuR4jKSv~4qC|I57nx9dRsMUf1i+^XN zt>`<;uH3peLOn1$ly~s?={KK>dUjsd=W384pTX!}YD17_+nmm zabI}3_bkKi=XWH>EeMoawsOO$Q$77=?eV&u{#rpMeA8NuQ^O2CEnhC1qFp|wcT)cu zcMlq@^Ey>nb&YXn{(xhe%bdH7)bB+1*{1lHO0hg$&{+7|nlU+i?uCPUY`@4SdO2MD z5r2yL_))$WO*b5z8nP#`_`J>z&AZ;}GV-Eu&QgJ8;?pNC z6rQ<@IBR>-s`Jx}fm$haAs5N#6_W?&1f__4JbH1@^$*G0g~qO)nY*~w;iR!xiji+^ z7tt=Z?mKVwUY+W6E!J@6T@CXEs_AEvR1Zw~QsJQeJ+I{XLhqD5OwYC6^Mz)Ytqi*l zWH?JpE^?@ZuQ%w!Qq^#c+cxS^}|nTRalMZ zpLA#Q*s({>Bq>TvzH)xWz1;Fe$G?PG*^f1UIMHmmomP$cB4*0mZWk1UU-m!Q@8VqR zAxC%KkaF1J{UK;O?)U zi|Wf1`Dt@6M)!_iV`JLG_+3(biXu(WdHSecK6fU63zr?G*?<4idD=ZgRU+SaA6+T` zvU}IA8uR*km_@7amMVTc`o883{(V=~M+&;m89rZnQmwWI-HwPc*>5#)>Zw!fCMXxo zy{5ft_mYfmre!zWb>zK=P7U`x@h;}TT(KA8$Jedf(qo97obT!daJ0bm`?8OHR+JUnsdRVqgwNVdVMm2sd7Lk;)2*V+xOoWP9GsLOLug?vDX}@t=g`y zN9%9G94TC>F?M|xIv z<$2wWcgkGxsrdtf4)O_#yt}x-C+zdN6N|zPQUaX{Apxzv`e<21^I`O}JkA z`MZ1tskq^IA#APjyyxSGS$9$`**fHm_ znN*asMlW}T8&WboFD}~CU-zYccNfbCTaBx>&Au~y+O?2jppPk7!e&=}sGZg{lo%ZJC)j)*)FA~Yeh^R-0np`#Y@&v3Y2 z%wyykr~9F6%9WyxS}z6s&lDS&zo_X~mGV~dB7Jo9fb|3TXI?1SvszT6hM=u>5L!5^ z$~r%(kh$gJ^TcB*Isy4foxD3AzeFeUItN`{Hc7OL*}{(#rI(FW>P=hNMdA|QyIcG1 zWgZP(H9>pyO3e4=v};W~jo@ybOHrFIxl*ZrIPXy#lur~E2;eF`Su31 zf6e2hQ!B=@2X-kdF_reJ2+8f;dtlcdp$$sPyOA!54{>3o0(HbF`+9JS>cVGUH1@U3 zp^t9&ygAqY)>B9A|3IVYu&~TNhSZ_%uR0Q`^oIYib(7$uQR~A0{f~N=9`QNi+SDOE zt*!_VlO|U_oQ|{{e5g86&-ddah!2hjCHU~s!G~JaK7|i;K&L4_1Ms4Z-od>-J_AD?IVP=}y;;6vpdh!4e4Di*sN%9G-qIxCm@OFgIl_6H61H@#n1b{V*A z^6zjI&aM||gotjqqjI52pmLSZRZ%^x#LkQ&;_@FKu?Q#3?qZ)oy9X!DsTFQ zjG?i!qbZJ|4IC^XZXtNsd2VSYPpa&mFy+XwkJElyUndPhax8rm#ivLe zt3&Ja{x6ml2wryX3eDs`i=8_!CwC2klRM9ddMWh%dDg^wf{&f|`eyQ`j^Q4J(G;9_ z_wPaQRul1qhmOz`Cc1R#A~}{9wgz?hTYYt$D-is@uVAq3cYHP;&83ZXUN`1HEg(5a5U9*r|Q zw*Rlapj}3EX6Mf!RzLm^A(o)c zbH?>OX!pBuErhW)3B5`gy^1>VpSo8@I`vEiA7x@H$|Iod1Cqt$Q~do;e%RO_anaDgH;c|H+BK5%nxN8ZnC2us?Q%&$S1&+=Vv}K>EAz%{k?NIQj?A7@i)d z=F$c6>Am{_iy*e*Y8yU^V|cpNE1fbZ+lWo5*-YBD1{&&3$U+v!@ZoTDnEm(v+B^R! ztEwuFpZ8q*_4^{!$>I!frxC*QX8^A`e2`GM;pkT8F z+yrg|-voDqd%@G-8SpH48OZMY!7D)h-i{FWgB?Kso$)=e6YK)&Q#*Z9zow#&>ENB< zy%r&2SHLac z4zLsK13w0jgI|DOf?t7OgQvjL;P>D~uphhv4uFH;uRwFPu1k*v^12lrSgEPRnpc8BWH-YV72Y3MN1iQe4;32RZJPaNIkAl76G4Mn1BKQONBlr_| z3H%wn3dZ0BQ^0J{1l|SmzyqHH_k#PtcJKh0)=bp697f3tpnY5`wu}nZ=;TM%3AObC zXdj+&W#g%ktRhPs-D>EvL!gV}c{s}Mk^&-fGB|!lrpYBV?xH%Q>=%BS=xVFbsjQ4{ zkUXo=9Z5VhRrE5DKI8gc^E%==dI+){4&NOr&nq{f>7WmIbSQatE*Kl>Uw?7zJP{*{ ziSgaTQWoQ9ho!x^{tZ=@I6CP%>Vy3@vi++vR$}`e*Ir!z;>w1~bEtHOLzdSQ&uN&s z%K6={6Wy3DIluo`WmV>a7+*3+NLemM&bYE8r+;zdC~m&Ka$oWMz$HTHifvEktc}I8 z=(*#L%uwm#c*d1gYELqyC+x{=Zmv2}&$+!-m8EcR}IZE{b18L~Jz&a+rv&hv1W zZI)nx&R(nY!P)bnae*Yfnyg&midB zdCt-4Joo${=!TcbX=5N}4y>1>0y^n&Hc*_&c>!IxEMmWqu01ELzqtEwp!UhJj417^BjndH$ZJF?So{g zRyGjNuwD`&y_C*N;j-#Hw^}=d=d3WDcvdSD&s5Mq`EE+G{7c>SdAhNpGV4Yv3hX}E zGR>VqvT`~)wJp9uiXZRH1z}wm`-cx65oNg;IpfNXoc;}O_Q$j{sI{(jnys0em01^* zcx=57@_6iJJ(`Qy-T8$4Vnt(fq)d5}_|0{O|;Sui$@N2a$BowZnaX@qUi9mHXWmyMUylXjf%<)5r=_VH}b^UU9*{Lv=acaWMnleHh| zQin&S)#+5<=gB8^?6sqVE{;*P6{s z6XqJT^?GC0+5Kzn{%)#`3_b?dk{F4%cnPYTwTUMRPnh*{wZGvJIgvgUHqktu_z9j- zNQ}Y(<{)&+>`o?Vy+Fw6iDnJ@A8pp{`I73Va%P!%2Xo6*j>h6(S^Hp_1M>uw8`+)@ z8lm|)`gsZG(zaot|L}gtxyF2kvSsJ_52Uqy+amw?xnTRPCAb9jo?-h(@;*l$(Q7My zGud7akLA=+d!kp;18$`$eDX|#Vl#ClF@A?+{)f+$!w_*FL9-e@gPgH}h7;n!=v~5R z)fBG18&%bzA9jNes-;sJD05Q&X|~8IA>%JrLxJ(dNzoiKeiQkFHa;}Y`1irXeeq4v zDRmhCYlwCU`PUicr01%gY~smt7{Q5~(ftU7O_G(eKI8JyKB_>gyJAoa5S97i9k}vR_EP2eMV&_d28c z)m?TRZs%N9{g5oVey4P%mXu+c7!ua(YFYAqgHk7-jk+n3Z&<&4ixw1zm-er-c0Dxt zii5^|kx%g;N|hb6DD5yCEu$zL4gVX#HmIJ>aR#a9Y|+etxfN^$UkCR9_2)*6B0sv7 z$^1EnO`Dx}rP-a>U7j_e4r@}f%9hBRp2GE8bH-eQtL&LeoJ_N{SSXN%&K2X^!3?Yz z#P``Z0kqdcT-hQ@x@|1r#T*?=)Lgr*)!H917gzrn;?&xRCv3A(j*3-`t38HD$-G$| zTW6fny9$b&Y#V^vcw6&grPG_ul0V=BH;xzXM&fNLuecj~vVfw=lnz0I?6 zlP=CP%6S6(6rIlwVghwAAbB~eF>-P^(yoA1hQcx-_T8daLB_ zVREnTx#Ho+tw(D`bzQ7AGKSZ1ETq0hy|-?_(J*=d{~un_<40QmsO;mu|Hpf^;z2KB zl{k<$`}Gt5qrP%IdHqFLt>_Px>Wv-1|NT}q!!Zpq`xBuD^56z=8@LxJ zO7H+sMRHgLv=gzGPT;P0VYVc=D}t|r{dT~`%u^{#cf&dqNFoSMu> zKri?*xC=Z5{sQhpz~u;d2?F+jtHHJ425>X@5%?WA8sW91SOhx2dawoD2kPkSWUvgZ z0oQ|VKsqQCblp>HzIRKG{v^#UV=hV6nw`PX{1@6e+7%pKKYTey4+clq?w$zU_k*L} zy()W%qv3ElXpeRWNAs!a>@52_`^YZcfgEIG3t2;NmgtvG@r(HUQi)&LC1K|BD{V^0tnA&uJa*t;*9{yE>Y>?32eXsjjM)jVG3_-rG&I=X87Xg8Zf?q(pT9Ect>~%o7It;^E>C-1O)L2K z+(q487q4pN^Sw1*Z+E`4C+(fzmhaA3y~x{X0|BKacT{67!R4miN_bgGOKK&JlyaJC z9HcgJ5PxxyRU8N32e^E;)@EaGhsG$Uw4XjaguP|U7IhGqwi4z1HP zLKI)?Vr*TUZ8+98NBJZ$1t{kBJ)jvp0v-j5nN{p-Ti{xcUA2FE#J^(52>rqpmRjT)Eox zoqCOVuYW=UxtCOBLPoDRRKBJW{xfuCyEWC?#uNK!X`zUF~;BJTc zD$w?|+W!)~9B;=r;GGU1hx4FGhiQZ29S5BzCE>qGMYqT{t~*zD%Kk>fvsyZHkxH_C zh0zS&IRrk?K6icARD(_?N{#k6{8K254Gt3~7wqYVL7o@6+UaA?XcWjdJ6Q(gxP_tD zSpAzp3A-o>b9-Zd$QnqPe-~0LqcLHjc9`!F5BuB}>5gprEOT)7w#$5mZ~VUgH1HpUw*u$@ literal 0 HcmV?d00001 diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas index 94a94798..1b222b52 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas @@ -770,13 +770,12 @@ procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoClie var AReportController : IPresupuestosClienteReportController; ID_Presupuestos: TStringList; - begin AReportController := TPresupuestosClienteReportController.Create; try ID_Presupuestos := TStringList.Create; - //Si deseamos previsualizar todos los items del objeto presupuesto + //Si deseamos imprimimos todos los items del objeto presupuesto if AllItems then begin with APresupuesto.DataTable do @@ -789,7 +788,7 @@ begin end; end; end - //Solo previsualizamos el item seleccionado + //Solo imprimimos el item seleccionado else ID_Presupuestos.Add(IntToStr(APresupuesto.ID)); diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas index 2bd7b616..146640a3 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas @@ -8,13 +8,14 @@ uses uBizPresupuestosCliente; type - IPresupuestosClienteReportController = interface + IPresupuestosClienteReportController = interface(IControllerBase) ['{D0686358-251C-43C4-9927-6112F2F4D3B8}'] - procedure Preview(const AID : String); - procedure Print(const AID : String); + procedure Preview(const AListaID : String); + procedure Print(const AListaID : String); + function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean; end; - TPresupuestosClienteReportController = class(TInterfacedObject, IPresupuestosClienteReportController) + TPresupuestosClienteReportController = class(TControllerBase, IPresupuestosClienteReportController) private FDataModule : IDataModulePresupuestosClienteReport; function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; @@ -22,8 +23,9 @@ type constructor Create; destructor Destroy; override; - procedure Preview(const AID : String); - procedure Print(const AID : String); + procedure Preview(const AListaID : String); + procedure Print(const AListaID : String); + function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean; end; @@ -32,7 +34,7 @@ implementation uses uROTypes, uEditorRegistryUtils, uIEditorPresupuestosClientePreview, uEditorPreview, uDataModulePresupuestosCliente, uEditorBase, - cxControls, uFactuGES_App; + cxControls, uFactuGES_App, uStringsUtils, uSistemaFunc; { TPresupuestosClienteReportController } @@ -54,7 +56,30 @@ begin inherited; end; -procedure TPresupuestosClienteReportController.Preview(const AID : String); +function TPresupuestosClienteReportController.ExportToWord(const AID: Integer; const AFileName : String) : Boolean; +var + AStream: Binary; + AFile : String; +begin + AFile := AFileName; + if EsCadenaVacia(AFile) and (not DarFicheroWordExportar(AFile)) then + Exit; + + ShowHourglassCursor; + try + AStream := FDataModule.GetRptWordPresupuesto(AID); + try + AStream.SaveToFile(AFile); + Result := True; + finally + FreeAndNil(AStream); + end; + finally + HideHourglassCursor; + end; +end; + +procedure TPresupuestosClienteReportController.Preview(const AListaID : String); var AStream: Binary; AEditor : IEditorPresupuestosClientePreview; @@ -62,12 +87,14 @@ begin AEditor := NIL; ShowHourglassCursor; try - AStream := FDataModule.GetReport(AID); + AStream := FDataModule.GetRptPresupuestos(AListaID); try CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor); if Assigned(AEditor) then with AEditor do begin + AEditor.Controller := Self; + AEditor.ListaID := AListaID; Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE; LoadFromStream(AStream); Preview; @@ -82,7 +109,7 @@ begin end; end; -procedure TPresupuestosClienteReportController.Print(const AID : String); +procedure TPresupuestosClienteReportController.Print(const AListaID : String); var AStream: Binary; AEditor : IEditorPresupuestosClientePreview; @@ -90,12 +117,14 @@ begin AEditor := NIL; ShowHourglassCursor; try - AStream := FDataModule.GetReport(AID); + AStream := FDataModule.GetRptPresupuestos(AListaID); try CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor); if Assigned(AEditor) then with AEditor do begin + AEditor.Controller := Self; + AEditor.ListaID := AListaID; AEditor.LoadFromStream(AStream); AEditor.Print; AEditor.Release; diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas index c2ed51d7..6bc09887 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas @@ -36,7 +36,8 @@ type function NewItem : IBizPresupuestoCliente; // Report - function GetReport(const AID: String): Binary; + function GetRptPresupuestos(const AListaID: String): Binary; + function GetRptWordPresupuesto(const AID: Integer): Binary; end; implementation @@ -60,9 +61,15 @@ begin RORemoteService.Message := dmConexion.Message; end; -function TDataModulePresupuestosCliente.GetReport(const AID: String): Binary; +function TDataModulePresupuestosCliente.GetRptPresupuestos(const AListaID: String): Binary; begin - Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReport(AID) + Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReport(AListaID) +end; + +function TDataModulePresupuestosCliente.GetRptWordPresupuesto( + const AID: Integer): Binary; +begin + Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReportEnWord(AID) end; function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente; diff --git a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas index be44e84f..a814b567 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas @@ -8,7 +8,8 @@ uses type IDataModulePresupuestosClienteReport = interface ['{70CEBB06-376F-4363-B80F-DDA4324E0F85}'] - function GetReport(const AID: String): Binary; + function GetRptPresupuestos(const AListaID: String): Binary; + function GetRptWordPresupuesto(const AID: Integer): Binary; end; implementation diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk index 36aff96e..a4e3f8e3 100644 --- a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk +++ b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk @@ -25,9 +25,12 @@ package PresupuestosCliente_plugin; {$IMPLICITBUILD ON} requires - PluginSDK_D10R, - PresupuestosCliente_controller, - PresupuestosCliente_view; + Base, + GUIBase, + ApplicationBase, + Contactos_view, + Articulos_view, + PresupuestosCliente_controller; contains uPluginPresupuestosCliente in 'uPluginPresupuestosCliente.pas' {PluginPresupuestosCliente}; diff --git a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj index c8bc7728..9cf6d44a 100644 --- a/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj +++ b/Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj @@ -42,8 +42,32 @@ Package FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 - RemObjects Pascal Script - RemObjects SDK 3.0 Integration - EurekaLog 5.1.9 + + + + + + + + + + + + + + + + + + + + + + + + + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components PresupuestosCliente_plugin.dpk @@ -51,9 +75,29 @@ MainSource - - - + + + + + + + + + + + + + + + + + + + + + + +
PluginPresupuestosCliente
@@ -61,7 +105,7 @@