From 596422ab7d69ff654c34a1606651b37d09eadb47 Mon Sep 17 00:00:00 2001 From: "lin.dongzhao" <542698096@qq.com> Date: Tue, 9 Apr 2024 10:36:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=8E=8B=E5=8A=9B=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=9C=9F=E5=88=B0excel=E6=8A=A5=E5=91=8A=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/excel_template.py | 8 +-- .../rqalpha_mod_sys_analyser/report/report.py | 48 ++++++++++++++++++ .../report/templates/summary.xlsx | Bin 22206 -> 23871 bytes 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/rqalpha/mod/rqalpha_mod_sys_analyser/report/excel_template.py b/rqalpha/mod/rqalpha_mod_sys_analyser/report/excel_template.py index de68d19e6..2e3d5d276 100644 --- a/rqalpha/mod/rqalpha_mod_sys_analyser/report/excel_template.py +++ b/rqalpha/mod/rqalpha_mod_sys_analyser/report/excel_template.py @@ -70,9 +70,10 @@ def fill_worksheet(self, ws: Worksheet, data: Dict[str, List]): if not data: for key, (row, column, style) in self._cell_map.items(): self._write_cell(ws, row, column, None, style) - for key, (row, column, style) in self._cell_map.items(): - for i, item in enumerate(data.get(key, [])): - self._write_cell(ws, row + i, column, item, style) + else: + for key, (row, column, style) in self._cell_map.items(): + for i, item in enumerate(data.get(key, [])): + self._write_cell(ws, row + i, column, item, style) class SummaryTemplate(ExcelTemplate): @@ -83,6 +84,7 @@ class SummaryTemplate(ExcelTemplate): "月度收益": VerticalSeriesSchema, "月度超额收益(几何)": VerticalSeriesSchema, "个股权重": VerticalSeriesSchema, + "压力测试": VerticalSeriesSchema, } diff --git a/rqalpha/mod/rqalpha_mod_sys_analyser/report/report.py b/rqalpha/mod/rqalpha_mod_sys_analyser/report/report.py index 8617677e9..6d61e4329 100644 --- a/rqalpha/mod/rqalpha_mod_sys_analyser/report/report.py +++ b/rqalpha/mod/rqalpha_mod_sys_analyser/report/report.py @@ -17,6 +17,7 @@ import os from typing import Dict, Optional +import datetime import numpy import pandas @@ -25,6 +26,7 @@ from rqrisk import Risk from rqrisk import WEEKLY, MONTHLY +from rqalpha.environment import Environment from rqalpha.mod.rqalpha_mod_sys_analyser.plot.utils import max_dd as _max_dd from rqalpha.mod.rqalpha_mod_sys_analyser.report.excel_template import generate_xlsx_reports @@ -114,6 +116,51 @@ def _gen_positions_weight(df): return df.reset_index().rename(columns=rename).to_dict(orient="list") +def _pressure_test( + p_nav: Series, p_returns: Series, b_nav: Optional[Series], b_returns: Optional[Series] + ): + env = Environment.get_instance() + if env.config.base.start_date > datetime.date(2024, 2, 8) or env.config.base.end_date < datetime.date(2016, 11, 1): + return None + data = {field: [] for field in [ + "title", "start_date", "end_date", "returns", "annual_return", "geometric_excess_return", "max_drawdown", + "geometric_excess_drawdown", "sharpe", "excess_sharpe" + ]} + + pressure_test_period = { + "打击壳价值": (datetime.date(2016, 11, 1), datetime.date(2018, 2, 1)), + "公募基金抱团": (datetime.date(2020, 10, 9), datetime.date(2021, 3, 1)), + "行业风格切换": (datetime.date(2021, 9, 1), datetime.date(2021, 12, 31)), + "小盘踩踏危机": (datetime.date(2024, 1, 5), datetime.date(2024, 2, 8)), + } + for title, period in pressure_test_period.items(): + p_period_returns = p_returns.loc[period[0]: period[1]] + if (p_period_returns is None or p_period_returns.empty): + continue + # 当且仅当回测周期完整包含压力测试的一个区间时才展示该区间的表现 + if len(p_period_returns) != len(env.data_proxy.get_trading_dates(period[0], period[1])): + continue + if b_nav is not None: + b_period_returns = b_returns.loc[period[0]: period[1]] + else: + b_period_returns = Series(index=p_period_returns.index) + risk_free_rate = env.data_proxy.get_risk_free_rate(period[0], period[1]) + risk = Risk(p_period_returns, b_period_returns, risk_free_rate) + data["title"].append(title) + data["start_date"].append(str(period[0])) + data["end_date"].append(str(period[1])) + data["returns"].append(risk.return_rate) + data["annual_return"].append(risk.annual_return) + data["geometric_excess_return"].append(risk.geometric_excess_return) + data["max_drawdown"].append(risk.max_drawdown) + data["geometric_excess_drawdown"].append(risk.geometric_excess_drawdown) + data["sharpe"].append(risk.sharpe) + data["excess_sharpe"].append(risk.excess_sharpe) + if not data["title"]: + return None + return data + + def generate_report(result_dict, output_path): from six import StringIO @@ -138,6 +185,7 @@ def generate_report(result_dict, output_path): "月度收益": _monthly_returns(p_returns), "月度超额收益(几何)": _monthly_geometric_excess_returns(p_returns, b_returns), "个股权重": _gen_positions_weight(result_dict["positions_weight"]), + "压力测试": _pressure_test(p_nav, p_returns, b_nav, b_returns), }, output_path) for name in ["portfolio", "stock_account", "future_account", diff --git a/rqalpha/mod/rqalpha_mod_sys_analyser/report/templates/summary.xlsx b/rqalpha/mod/rqalpha_mod_sys_analyser/report/templates/summary.xlsx index 4758a4bfd53f8b7c5d5ba86cb33b039a7efdd680..8629dcf16091e97c349abb80bfefc4e85cd48f52 100644 GIT binary patch literal 23871 zcmeEtb980Pw{DUh+qToOZQHhObULL6MNkJ_!!rsul>9y&%!P|4yBZC1ldqKNjSLaPq9z{gs0I#_`y#UeE4LL;=Dj>^j zu3fE9`n{zE0x8i+Ec#5M&!5<)?6mxzIr`gv-ts+PM8!^i5FOd4AEv9g+F$^0tBxgy zMzRy8)}0hW8JSMQcw!#F<;G_g3w=*E0@2TUtgNV^LbneFdJ;!^-1ppP$_MEJ_#ZbSdw z-pSg?-ro8zimXr@vs)8G-M~2FX8_P+6EYDHTL#yl4ks)?TA&m-CPV`n%EXNOk6?Ll zG?0R>6hfYn+Nw`{gNt*E2ib6$1GkO;kgeb`}K<6@rNQl3cMMh;v8dDMphY=PmAErWT zLu+PG&WDqx(s$5@jZP_F>Z z6=s@ORGB3{Y*`3PQ!Pir9|U1$6D?S!wS2k2t%=g=y^1b?&|^t32`C2|cHVE{>f+W6 z`@&8yJwg!@`O!h(HC7erA;I%QGLzaM>}XfNV_`n|tGnblD|I3hl~FNUsD4|!ug?mDjj zhK1No3;Rikgi%K!i76N!*P=d4qem0>nWuGDEU8SS_=DluozD_6(E-}jPBO2jW$gn* z?hu{NuO39yeNO43&+ur0&pEi@@lx|ati5c-W53Ky1FgQ;R>jJ;QkU^8W3g_r%1XA~ zgCGE@Y1b)B!uMMsYFms9$8B&C{dK9v3@b(6CRMcO>Yb|OYiqGadk%P(p8I!7tf7(s z$&%3{I#Yat0Ki;@kjk!+-8{?m8iRJHH1BcXo)s%x)814SO4}*Gbc3n92I(6~k(#(U zWuvncp1bPo0W4YL09CuTzxEU)& zPY=%L1BaWP8WTY3#`sWLbNZV@(yG_zNsf7}G}}Ug?EO0%MKylc`|%IE=ZpK9>pzj~ zzWm;gFN#ouG)AChCG8AZlrux@s8??U=!(mmAjx@)jSg?)_GiuX&7$Pu`q>Vh znWY8f0pIPxQpfta*2Y#|ghnHsneEQ)mz%nyewpvyEw7uGdCrRXH0QVoIr>SVjkiWE zK8pB4JX{oE7s0KBY1z94jTNzVH3Glr;MZyM3U$>UiY@o~U9GN{DzEAPTkON5nT()+ z(WU1XnPLM$0)JuuAIAKTE5QF|Pv9?2`77`L+gC@DtW`e)V(??|rl5uXm>V)XZG1gc zu#NU3P#^v$qBc{8r1n-Yr#$xeU92X ztCp|+EU8Mk!yprsZFO}gm52v3a$f83u`f%iQ_l@x{YRO8Jjm`W^>rQ?lpxFxa_p(6`t|+U>zo@io zK3`!Jt}!yU%JeEd@x3$*XY1)B=)S4%it=JL{$c9WC*Tk=6rwd z!k?gW{J8|CUL2D3vu7rC|4=?Mu$EgL*gYU z$Jif(NP;?L=sL=h&UzJv=@qg+sR;GTN~ApRfp;Ka2mifYip?(9@)}akx!pQ5o}o=} zK;b_EDVfU z?+*mS1gQF&)D2)g#pB;JWOFdooqab|6+!Qp?iog`%-_!6loUjA4LotR>TO`=m@E=YQaQXxkm} zZT95UFD~Sl)nu+%;obLbJ-CWZ?f>z)yWi1`xn~~O0Q8GzFBQyb{rvp1 z!^vPzAfShjxnr(E*g{T|c>;MEf0~eDsj&R%JAeG$jASv16;j5g)t;ByU)U6K8Qc@vuE5ZU7zyguqD&R*B zAqGzh$&vBQ^mj_V5gZfjO@&4fIxOP;KQ-N93b~Aqif9JI?uOOD(qa;h`o{yHKw^%l zf{v0{Q6?}tr7Z`!Ow!(r2Wt@jLo(t&#lrt8hWhW%EnFcDxk^mSD#X|os%*VWE5yNt z>KT&XIDNjINMc@3u@6zn#-wUDn?<+z*L=4|rveb^UrYa$ZIHOK))Za8ooeJz)`ka|e%VM_S>`vSGTdDQbS=!+7hY)t{z#h`l|VlI-8 z-%bTp5dfj6L!4cIa^)WK(tlE;ldF%SmI=qAy#^tPhHj&4g_56fd490vGs6tuqGcno zo3zGPKM@VMcQMA4GPUnMMNHBVPN}?mo#0Q*U1}m5?cK)l6azKhnPv z1N^I`Op+w}!oDhtB!{mvGU#Mdh}JGjxgQl6R`-hkyMuBE6%C!|M^7w(TMySpZzP(< z+xTYRXBI&$+ggz>oh^e0JXrO)s|g(O8!Obo`wpqQBp9GbKAwl3^4n^ptu(7)S>9Ww z3jU9GV(KTUcdvHmtN+#b&V<2)eQ@uTf7(%f63~4jQVo4tBzGtEmi*QDoodA0ueX)A zZC7*6P~WOQ@qN!%->Ifyzd`d2#{3!y{RJ@Jg>b#}ZYM9%>H&RCyFKa;XvUxRQQc)Q zA7v<=Oo(M1zS5#2&jyK4ha<(#zVWL%5oIFM70c&Ew!0y$(%Qlx*6k-Dtm z<$S%~hQM&M`B&MmTFBCZkp8NN^`P2;e&(;F82Ya=an(=My`)j@T}RbU`4I12jZ|mZ z9?y6iAWoi5K3~I2@sba*sJV=BU%@;9a^qUXwR&jP&_+H;$w;{cP@z4%Bqhocb1cOei-(4`O3onQabqj^i|($D9YoE*SQzp zL~3Wwk{pir{Em*NK{nfx1A^NQUqQAG#7ACwqQSrjXMXpN%8F4A49a7hE2A($m?X&oBS}@5?Puv>||+yBSd4s(JB*6<-Ys7&5pp}pbaQ~;5{F+arflgGpY66P$N>Ara^)U z=5@#~C6;!uj}KekGy@YFTPdyb5c;choVSj*Cqo|<5BqPEv>-yp=q+_k*+st$(NgD0 z%l6?aY?4#v`{X;NWxt@%DY0nz({xuwX=WS7u-F*WsvRw=8kJjOa~VeDHbbj)OC_Jx zpIj4GPN|c>0Z?oL6Bb<>%$&UQl1rBARPym%+;Es-;Z3#$(2;-hm@Fd3OWoZU@x5<|cicAhC!R=ak8j-t zmH?^UFgTWD|HLf@{b7+GikmLcL^I4=__&^P7Tw_{KR+mcMkc3|+d5_AcNqFOazMZz zR`ahF?F~Lk|1`Ozkk^c}dlKMuuKQZ1IMRHlur^ipK_#W#3pbK5G6xwNTz&Es9I0z+ zXqwOhW*?^cL(j3lCr?2#Ay#KYX2CBMN%Bt>Hb>M?FP@KBwudv^#~>tb%yN_AbwN5O z4t)Ah%)MY~&{S3-xWhjSh=CqSs8w&2&ozm{XM4|Az?_BGD?|@B!{fVh(6x!^qR858 zXQfjxjA4ea`CK8*xv4_1N)~)lT<3*|!p#Lo2~Zue^lbhkuGPleYu49E~-5*_^P0x>kXFly5{XlmAnGI59Bs?>?U89Syr z1Q<`5Y8L%SrZ{kWf3T}n=&R3p9&Bs>1s(jo$|!GNVC45$-p-iXQf!5nZ+WoxlVX2I zTGvN$5$$NCb|QcmIh^XGjNVmKUBdms-?jWvWF+tUGWB@s_F4amN)A-pdxd{ZnUm&xS2scHsWGDuY_U;z2CJD6tn@rCR!S)<*25yYH%d(d4NgAkacCaevUI(K zsVxzE&_($?jk2{$7?@cgEY5w?M${V!%d3VPkZ467F9Q+xJ22}&v4=>A?EO5uBKth~ zPoGDG_b+GAzdDd*qW7;w1$0^;>J?ZGFx{sAKFnkCm0)TC_f)0F2I?2 zGLb`r?@Iu-@--p0&7Q)Stc+_<|E*Vdhqn>e>#J4uUoNWu!JuIN$Dok@%b@uEWl-S# zWl->BMkI4Y@R!%A|AbIQDWXk&JBewrzWKK5mYgw$CY7i(t3QFe&6$x<)Q5Je)9XQt{nW6jX7d}PdY!y`M{JIr{qE?f3YmQ)pv z#dk;vn)LfMpfkIWnlKFwTWuCciA#KU z##nnfp@ezD6=AYjpFU^4+P@ovMtg5J&JP!0L#{se|5%55DklR=>QMcdDb=sLLc>qt(DF%} z>%E@9<@aA##piXm;4(BBe1^&rC^8aNz%xN9fIAr%Vtd%`-6d+IA5kZw3I024;vvu0Wf5#{(mMGS=@kYU?o4K{q!E3ck?# z{4y&44cgjvUo#VIx>7_BC`MKZnkn87=ud0ta3eGUPmnTxd$ls9q1a=pSKiEwM7n3- zHO^sKN5$xP7JTZ_Jcg9WhsK5X(}Hq%7@Mm8QA^Rz5(VMwZh3!|!`h`*P_HUk(Yg1A z(_!UWsOI|Yui>c5X84mv!}z$^-YZ{3uwwwXxzzV49&@qPP%NTbN!b{g)C@+3^Rx^o zrictGri=`bbT(FI6J)D{;leM(Kj)f-!?xc-W4Rr&GEHQgT1?doz3`%yEq$<7T1FXR zU~S5N)6+_>DHI>BDRef`m^J>S@uNxdS?D5hhKs*TtjaKB{O=_Ar!LlBU;A! z(6ij+mf{}f-}>eM62vy%BRLp-A=dwYMl8#}5Nlt+farHgeb2Aa1p)YB6CqS)Rc__^ zORc=g(=7^0tp;MHSW@NOcZ)HIrCdjWwg!&*cA|fGVMB0fPgkp?XOAV^NU9J?fwF$$ z_;hU7L^Aw#9km0T#MvV$X0y`1tMb9%dsV_L3Mppl+~_O0@p!nD)djIdp`awxmkS{0 zFBbqAJr{{?JxdIRjI*hQ{O}njcv2Da4X{Xg(KYYDXohFhmTH+JKsJ(*W8%EZmK?+- zFf6((ncq!8s$uwN6FAM*eA**Xx}zXGdJgK=@pkd6@4h6pVXxpZ328mw!Rej-3hnNW zOxvU{DtS61^_D6}kG#rDV_d>>da_Snv3?NkWQ_t{W@Fj#vA7pDicTWKV4^#AapZMs zm3nX=3cMx~^;p&>#fr1kipRqJRAz$b_gacPJa(XVLU$o{M+H;$wpd;6kGjG*GJES! zzzKiZ6xWi|u`h*cE8JYTg%V43}G zy7Kk2b&^1sATPio8-llmSJ1N&TVV&;Y_iyFzAFF@<|KsxiVqBI$4q*s=;S%pFMB;y7Qr3TPscWCffEsd1 zan4V;1p#>02ox&&rP{bIJJ)u;$QWucI5h6o#d6+#xh#N9rJRiJZ`*VDW2#o4{vuXN z%#%UwsF=_)D-II7N_xfy`sVH3(nXy3R708R7Y^kx6iutX&sz{Qf^wbD-7JnuLi~OKjkY5YuE;+kV*+=l1v2=;UO+T>+5~fs$?8IR$a=|E$~JH zOrg(fS`BWwR6a0rjP)ChBvq=BVU2Np*&sn6WY7m#{h4geYD5 zR8+muO>It$36`n1uFuX~B~dw&OZQtrk`(hjdQWg(f~J?!RM|f@S72=3J*bL;mj!sq-KvTmIU&8>3itHtMUmM5Zd}y< zG!ABhLZ*?}-o!-ew?jZ6G!^tIQf|1r1iCjCnPt9p;wDy1%g-H7g7Mr7nxjRI=#$DddXE5GjssF+s9928AHcZ)ht4 zx(?v7kT?QwHl&>AJk;LTF`U}?N0OAq!hhTq)XJAcC16Ou{BiN7wgu;%&Dhb9_ z^VD;cBau3TFy5jA+pUF75d!aD(qTvxP&Nt?E?^+Z{l$&`e^&VtNqV$3HM_8V2fY4Bl=?M{{eSw{}{q+F@GDv z)c0S3D2IDNh=?`$)2fels`n1IxS<*YjExhLs#~4Apoz&XP!gc>JL8X2%iYYLoRO>C zOhv6W2bA!{d$l2>0qkp>FVDLRQ}HEmme5LLArmvfmUneeZTi$oE;9m-K5LH9teJ{35_;kvz~N-|!^#WeVQ z4O!UvYU-|~81f^;EJCaA%daXCyo78W2M4o4@f1gQwrdiiY^-3=i<)5whE9=kYf7(#A>~0dUWF7;EV)$|y5XqoQrcs}|OQ z^SpTmtSLj7ksP}5xLV+XVRb-LTpCTVi{bNHkOV7t3AMQ_|6;@2>@NO&3^-n4#S_VT zAvwPCwpcK9IerG5BwBMtO`#I>KbC28L*i~Dy+1WQA>N^px_yFI`kbX~fy2kSPGW)s z@w?FqOas7AOX%=GngP>e47Li#4W73KxIELH&hlAgKlJ^$v73p{7_D_b|J@nXFux`j zD1ZpQtxog`v>}W@Gm#=Pn6kJ_9p`G?S;MMZ@$vvKj&^nPAy+o>YwvQBt)-M&HYq*e$g;KTta0O zW{lR`iTQFf8dxb&5Od;zL!FY<5$B7-%W2j~STS~*3?r2qi;x-G$OFtu&4wO}{(RJe z1X1(?+DN7-H{7~1apbbISC-E?b7u6HhFw0|^Lk+{p$2*M89q&s*F6Qcj+Aauoo0)& zY36uzwzKnLv!o4DN@ER6>9WqvnjFEoPn`LrM-x(CRpW=e; z98OQl|Cp42qmt!6_{h`{9p_wjM}xP~^0UbWvkAzB2iG#8SKc2nE~Ci=mv459?fjQb zA6!VyxB7m9nh%d^F$aZM(h%LST8t}gL}J`FY-JBy#{9Aue(s)d48_{aMh;DPEdVqk zR|wz26CBl(n`Qd^w`;+1FmPqa1 zY@f?n55K}b%^<8P3F{TfK}J ztp+ELgkUC9-l=sv`ViFx%+MHi>eilZ=PEV@`g4}X|7=NgHCw7v z$@!Y>#Ttf*eeK+>Q*+oT96Rn^OS`999lNno6~bNsU0=UvX;nL0uD=&2Zjc@Qs*`#` zY+?{cq0fR%OTaqx!2|3b%Vc;Z2BQo9>Rt*sr+^UKY^F#P_D6BbpjO1C^9;ZboT0<{!>M+8f)kCTyGuT}zIq)4X?iZ-yN%$-vTZH2( zDctQ!C^J5t%$A{c>Rk6Hzop-gc$x^vjB4}!&teH&J-U;cnK0GBb{2YMFps}A&&=tD zOxO8_LislFvN)^GW1LGf=5k$Zwj{$y4)FWa`xr;UgkJCnkalJ+@QY$}zgtqa>4?+#bpLAfy??qjN=Msw#Pk1DVeDZD#xr4`spn6o!1Ro832tdl$;4$dbbn8-}K zWpc`l<${uPt{!KR9$iM*gA_t7;H~ny(!DSX^8x4Iw)xe5skGDbdMD%%Ius*u3p8Ut zlwZ0k_bzMs&}KAFsj~Zh(A|T}ws&SvIy@VN%pL1OU&Fomnq!Rw@iY=*s=e*C>H_@p zxviZhbxO4}3fHP-xerNdG-Wh}3jQf!*Z3MgI3 zfK9N9bw4ECG5C5YGtybNX6M^^+Kl_)HVJYL;^5eZ%}Bm7YzkRpQ*1GOf@980RD$Fd zR@Rl~Z8vm^JOwD6hZ6F7sHIl+%#WIiKH1>L*ML4byy0M#H4Sn$mhp08Pz|#X2a-=K zym1dj=w%6C0M+6m5#|RQRZmQn^@xLnkgA)T<>0y^rhuZ4xw}~DnwTSMC*IdQ7&CgAap8ydC>b%aGoG^tup6+7XGIi z?r?%&k0S@&grP6p6P(ihg{(5(Ryjiw3LLR2#E>h2btd_js74DrXLY2Sg2N&zk~-Q3r3x$*b@b63?>xaaF;I(#6AHT9=We;wfAlkTVXj3+Phx7{7 zzP%I`44@&%q|OR zm-r4|zD}b7#=ApdgbhZZKdSSsH6FssON9EorKVB=qh!IuvEiF z9`N68vn|ZBYsU>_voglN`MPsrr)oXr4>ij+h_wt79$inz=UJ0}llDHhRQr13HF346 z)lkakC+(G1(<|ih<9WSERvSd3c4iR{un@*$czgFPH&|ne@(60GWW`gB{uv9KrZJi> zG%iR}LL~#sNh%7l&FG33Cr(8Tpk+-##qbARP#Lt2KorG#KFzHt%C`N)?@VWyoW+37y3q^S;K5_#)r#Is* z_gJ`xjk;lU!RI|aX0Dl5D-=0GWA447?Phs1b_?pY{@^O>u^&LXUUY?-9?$bE#QqJL zdUvgScY=A2Mc*1O5Sad(BVUW7jf45w=~Rx_C!Caz`+fTJ$?g3eH_$ZNOG1mH72i>` zgdR>$z)attjm)f$5#bLw8X&Vj{otKDm2Nmi)5eZ=jFM0bm^~O3#2z=4!cGIB{65cz z)%t^_k|HnyomodM9r6ZUxao!hgqJL&vD{e$PqJBjA0M~B`9JM;8mJYO)9k4}48!op z$lYwcx$qzE89;-2>&yC?BMOqfN9V(qz#IcHx>hO%EUbvT7!*{h3TFTIxQn^Aj>S)u zwr$LAIqQPQ?!2|&1Azt01uZ#dLT-9a2#pa$V1o;>z!wsx-m1n>*0|z4vv*pFaMTuy zwQQ)dv44aDlXUDW!qhJ{6blM8TnW7eoj@9}(09R!sNl&uBUT6C0MG2!JGw?2cHK6N zGq1q~xUKETx1&Hl1l+Xb01Qj<<5U1MuUWRodBe6rMe|l;I@~qalAj&K@ znmxI_Cokb$&Xc>$;ggPs?aIy<=lnh^$o7f^Gc4?W9xa5 zO(axOPt3(FrMQk}lDg)YQkZOj%6pg>mEp1qvIRH+)jqj)0oiH1 zk10zmapH=Td&7;%2@Jpe&1Gh5b{~h?%8K5Y3|1`Ch9XtdU)ExNuAF9Is*A4);+Wut z0A7-4KtP}}vUF1Hh2c>5UNM@rPjvetqJ@gRvu&XavW_|hR2v$`1V`;Oh^By9QO8A! zi>7|{8dm4WDRNP!aNw@3j*UlJ@(0P(d*hz4euH*aZFa}_TERJ^{~9qFbzV*iu3f2@ z4u&>bzoLgKZ+FFQ`_;#wsk7;{y$OJyn6^uozkwBEbuIn_#~_2&{rZXjn*1~U@aB}; zu}d#`5)B|X^MJQii`$L29CJ*Mb!B3X0sgQ64oj^#?UZAhl6nS0_L< z;fL-_By!qyrj+6-{W<87>@;OY(V53{ZS~Tnem>|FlZ51$qW-RSA82@&UU&C)Nl?m^ zElBWlBuLD|wtA)_>_G>YJw&Q{-o{DVVRp(XVKtijVJhuZCr5V&EMSg}ev|64D7J+b zZK+*hU)!!(;*VT%%4kYocg5>V+icuUBqo$mc^yQPJ>M-&JsMZ>g428H+{shS5;X5v z*WJb~HT@mxN+++qs%(GV-a8G(<|$KF9_nFo^*4lHo!g`qb_#u^Jcje%4+H;k9{p!$ zM+4DS@X6Okp6i!^gZeKfu`qNpHBokPva~b*n@}n=rR~?m{<3g<5h?GMhuuzjpw~D- zDW|m&&eJs_ts@~@RYsC+?@9Y*_fu~y&N+Tnz91d`L9JC9xR+*oGjAz$8Pz|MD#Q)1 zm*$j-!M^a~X6C*vc1v0_*7srD;b0kb4QDRfqnz+f9pPBPWs7&77&Y$emeFVmr~I^(H_PgXjz8FA zC@zl2!p3a*$rvw}q_X%8k*f?A?%Ebw`{5;UP#J8*P4tROaen(=eO*!P~(Q{!5{ z3vXn)HeN;=-%FZ%UJO+pT{S=^E5^snob17AMBDSi)&^Q7URE`_9KhTCQKG()bYz$x z-njn4>}$Q~spEDU>Lg6zB5ZKvm5j6cblGh79KWpKLu`f4$!SpT`If4`Wt>@3@y4xy zcUY3n9Pf=0Qd~(Geo~Zif;!q7PL?OwEoq>++op2`FjRFCeg^-!Kn4?6o+ z4gQ(@jk-QPXvbxm-wUU5=5Txq4f|-^f@j? z?E%nqQ}0b)@1A#Hw|!gd0E%Qo&KQk_HA+@>dXQ?P@X9q|RcZ%rj`s4bAyb#7Xk2M; zBNHkjw_T61dY^Z=wT)XfqR2=`R+XTIS&ok1($uAA)Z(C1CX5KD;t*m@ns4uj&FL&^ zb(KcD=%?yiSDpNs=KHjdUia@SAQHb3wT5Cg4xDg(eJ9pR2e(aNinA=&Oz;HHtThGx zC`}(E!aTSQdNxDz2#fKB3K+7%m)YQ`?Q;}6RC?B)Pb`ua7AEH2TQ2Cd-)*buQjM=h zeanx#0wS$g#iOm72zZqnJtoqCZ4|$`OyI9hAgxVWh2fc!)0g0wYk-`%rlxLCmCB1Q zm>9Y~6{{SIc`(#AC^*|ts}8bV3vijh@7w_&b~eV|ZC?jscm7iG`|+)gyyX>RufVoUWt z@3Oj^!0ag~D@mpLq-+O448G)*LA=`$l24>DQMaCHW8zqhK!#$SYcJesB_7)ne7@SK z#&sE&w|nbaA)horIv@~ji)W+hrVp{+CMcRrMQ0#Djh*%sY?k0>TqkcvDL@85W64dgKbj*RaKMDOD7vgYpp$w`O#}6$GYjeh^nz&0RoLs3n(wJ| z!*)<`eEO3vvhX(y2$i-z2608$;-)9bKsHL%yLiJx;WsVqbTsL~i`vnO<$g8V>@I^y zZ7(_CivYni7h#1vI8<*K(S8LNya+pi8Cl9UFwsB&NP5qQpg*8v7kqRl9G!wW6`@1Q z_3^23+ttiSBwx^_6df&{OM{i=P1R-L3J7t-ubcy_N74U?Guuuc5saqKHblv;(cl-I z#z^%54Y>*)GOoknTFtft*OndRU5j$fv4uSA^Z9{oawfMt7ec95jJ)=*pYJnrvR744 z5Vk5tk$p(+J=SfA6EyEH5de{|qwp}JHP$0|MLn5`_lcf^*;+nt5fQ*O=|0!`=$=nBMH`YyWY=|7UJ^_wVQ;`LaL8zoNqaAG(B4%!u2A@rIIQ2!E`iv(xBxvm0Vzggi2k-c_Nd?O z`vw|5l$V7&kMXMm3|~aOr=(0OW!E(sEV(IwM$4?%DSIODo22=viIy(K@!m@Au4GK( ztQ7l-EH5Rl{HBErx3|Iw4r^alNQWhtOvuj}JQVZ1g=PF(svG&-E#`WW5;7^>E3A-x z;)W7}%?ETjFK5&0sdH*2*m0I&(>nO*>CPZ0Zy^WDT>K32daF2Euo~x`UTbAILi*_E z#Z2nLxPrTG3dm*&N?FFq%Kg^C%QXDd5sIf0L${X-4xij0D)yOxJ2kTvH*F~YVOjC; zOs)r^tc_)8C(?c;m(51Kw63{UIKe>TYO%GQ@z~P0uYHvNYQE+bmmN%g#fPL5|C`cb z{H1h!9XR;=_K#atYr+Yq6{)M_+a&{cJ7E+{moq7AtqJgo zfe&T>B^b7F`T!Y3b(bnxDu<{@pAgCeBHIt-9oOeTMn_(#5Az5F%$DJu5R7Omq_avin^Y2$FeVR&wAgfwlBL1eSuBaUXli1{wt$V7^-3Y(87w2aJ3B~|2U7%T9b`1` zmMjWuFfB-q3It5qh?yu&^P}|LmYfKJ6kA2g11fB9XWb{bm+T0V23ThWW%Zc35V8Qg z)sBP=leQ#@vA#T*iYm<|wLrbrG=z15S+T9l5F42DdseXrUrzgl&)UXXKFHVUopU(Y zGWXmi*7U&iw4m+^_fSjmnA}d_fOQ}>Pk@GIwq=n?Gq7X^N=uIS2oX5DHL0Zg;X-Rc zS?tI4WB2RfL|NDwV87)yR(3S&tr<(S*u=YNZ!!2y(_uTTgAstL2u2zTs zkzzn8C?Xx2oJdy^BJ+h^gs=CF$rw2VH^lppHxdKCXL5tf22^8E(IGH{Vw+t zLZ0@{nsaI__#>1ufCJjyEeu%BOf|7n8~>hrw}LTp6Dm z{>v2zhs!$Xw!9#M&<arYO!mrr!FKGDW>gV9RfGwsd zn3UwocAG8a9|iAOz9W6#^k5pRU$}cf6`SgmI?tQ6`Zn3DaO~*=ncV#Xq!Od#S^sIO z(B^JWALI_YZ;ddj*v5z!8`mINIMNL7Z}R3yWO?rbk@YC{2bBHgSI?ib|VaBjS{~&ad=!$%I}tFy1~scG8QoJhxil z1xMvMU_kAYGyeNSH{onhRJ$eNG^eE*v)JVEnyu3Iu)Rh*USqB*4&8tvF2$8GQpjzk zKMfviy&=;>UY}f=y-=5NX4a;(q#>v@x)_^~lEJ!K6YeA0{?zm+%4UYfYK8G(kj1^w z)3^EY;EQdS;$(O`p&rR6G=D8LBLzD|ILPCu8)+rGQ603G&NvKIeZD}yAM6rCoHb6L zxgnwsy*Ti>#Jlb-%xFL}t7x_A?4McHWnZzn07E2am# znJ5P_MwR{Q2`NK8oXQv0)^xR>TVgCv{%a5&{Q;{q9$P*yu$Q|l^6)ns{hAjG zZc?)9e%QsLJQt=~h*A$@56iY)rFQ?g62zmz7+5L4*Uh#)ZpehKyQU0Jpph&P`VA_63DLc&i(fA;xr=*(GGq+#F^&mI~ zvcRVo%5ywlXmwzSrW9Mb3?^Z(XRE!}UGBiIy{_5ti5d|6F5dg9AA33D`q{FFk4|7P zV=dXrM}e(piNOY{jSO1NuUy)MVo8v0)j$~6MN6svfYoM=uRX5MQQZu_KR8XR8XkK^gEQ0I>wAoZJt8y1gRlxQS0?6NmK%r}RnQq>OXP_Z(t{wq5=U4FyeaH} z?JIXL9Y4G+&`@TAFPR}h{kaO47{;`ACE8=jAu(f+J{*l@+#fFZ19|VUbaa895~^SN zBF9SNHt@ub+zUfbGB4PLCYn^65hsEK@bXlG34EY+;F{oe48;tOs2P@Krt&!Q4N@lxx9YahgsKkSsY z4Gh)o9^e{@zv9L`r$3U=)JN)BAek>{#g2-%PD$u{Mj%CDt)H+c46FxBhWl-x!$7&} z!wgv7KvFhlc{a>$VYS8qL*IM_A~+GE@y3OeoeN&T1AM(ONp#uUz3k1!tQ=3L73(p1F{iRmcaQNumf3OacMoKmTUyBqSR}@W9stRHPTNZhRWQ6K%r=yYS=Jz@85VRS*8OC@E3{~ zUe~i9=^tVx>=|ZcRS{*P>-Y9AMh!Xs1Ste*qM#vS-5_u%Y2V7qaz#1*Iwxzzcbu!= z*B0=JNl!H3VTC0Rnk5eM4FK*{engFx=i_!k^>NFdOq#&KC+JI$2N|<{L8k!Ted+GB z3Ngl${O7?180oMhR;y}4sCK)17rco}#jt13%|7bHbJ%E2UMKU&5&uZi*kD0|6UG zrroBdzAGZ#Rn|=HlfGyyp7f9QxU5LBUZVJJkXy)e5{7!{3==7LcXHjblne&#<1~gm z`KsTBPvrV7jVgRCUOd0_WHnPRMY27*9h{ph^Ub;5L@i(Q8lW>?vR*E_(=W~k z9)zVfzR%&*)Eb7mI2IY?O_Mtt|vJ$kGkHG^~ zUkeOgobbm&FLEX#nMHUF+|M@5!b#cZ|4A`&))wTfRi#c;F9Zrpx0~x?diU{{>arn7 z^JKS9^pl4N=ek(dt1GYw_{R$#kxj`m6}>b}w(Q<7jeSP$3Sm7IzGO$<9q#u6&k>&z zOg`aFV#U4JZ9sZzo=WEB=)nwfl-gZ)bxn41FAd8#+@oHiKb!8h;o1vy%BP6a2Qpd^ zB@5Tec-tF~M@jUBp4i6KebZL^+)fNgO(HagSdU)Lo&P(wX9v7d5LD5;PTvWL^H zCC8i|ja=hivCrgtXcKOD{SMSdqRUhHy0_d+BEH;5DZ030Tc`p5=C#V7Z8Yp<4?dD} zu=8~;mmjj|gUjJ$^_xw%I_ox{NG>|Dt_7xQGLg}hH{THSElTXTnYLOtr;c32q^UqdqS#(aH?ET{cZz0gF8Ky`%4Xnp!P^2*6awt#PchQDk&GXu|nmc5|& zzw#<8zSCz{{>%HSYp)-^*=RwSVlUIHM--t@={(G}9Zyszl~j*>#fW^$s>v+g>3t^{ z?q;RhV}pDA?_>=8V1|d6ce1?XOQR%`fmilsdzGOxGm@OIuxLR z=+ul2V#KY5@l7+5c~~Rckw&F8oe$#c4JH6Bv4Hcy?)CE4_3BhvaUIM6&>VksvljVs zx!Mr8?W3L@lUh28eWCEllf;diK9p>|>+s^(HtK8+Pf^s-SUKE}D;hp(SF-ceeZdU!rBd6RxvF;NQ zfHhCaa)_9d>WigXZTq6Xy`GE31j^ZU9eC?sQZx36VH}(6`20*R`A%3)k3SNVBQ}4- zwK+9^Y3S*5BjKxsZZ8o&YWAh%@_V-nU`$Kpq{Rp-Lc%g?_rv}wuX$j<{?D;sT5NA= z40OdgAkW4DsCqb{?2Wup=YdQJ%KO~%ZayG|^;gUT7$=wGjrDOdT;T)EKeQYExm9w( zM4J@cn99G&jBDVqHxWh>7H%*29?;?UkT3G)t#>JxmB-@UOHp^p+oK;RH5-?}MHw2B z^3Ek?j(H2@h(3wYtKGR*@aQ3n5^*VM*#a^14ZCg-?5wsbP7Aw;5tVzCbH(t(W7MYOtI49i=WB!uB8bep(^*R;D)UHK z;4`*kZa<#Mh>NtA`Blx{WAifX4lx{>>?Z{%`dOF1k3WEJ+dW8Z!F5lE%-r-u?CkK8*>FtwUwfn9~~$H;lX0nW6(HQkBha*T5NfM;?d8 zH0pa_v@I~^NI1x*$B9?kE0~y-c(Z(Pp_r;&{~`TQ*nHY07-uyhURd6Sa4z7m8e`;v zxrI8>=fG(Da~uMTHlMFRO9}7~wvB!qo;iR1?=S?$-|8zRp~ew41 z#C5~^KKC2uYr1-syYY1mo1E~NJBZCqLW!>#B`RDcN_9Or_!Nz#TnF|ke#|ed=`uSJ zfspLF*F>>RYg5)v-dI)tA(UXn!oI)L>RphXEIDKN{@2;z@QwBD=*S?1Nl*kjy&W4k z$L1owBUF~Z#D0I+tP%0{)8HaU>-Wai#U5u=@0%WSbg zeI@@O41ab6D=Ri6+KE_bm>X_*b=7a?x*bW{?TAH^nf+DZdZPAD;~=3bV7`!()zDVhP?#_?C3=Xz1(rn}wwfNCoa>*}VCwFk zXo}sKJvn|kC7Mlyr_y{3HF{Nc;gd2+1<7t>9n;^E8&I9#PRSnd!%A0{<4;RAvb`^i zQyUx#w}~ZrC+&RNKkpt_QemoP7wZtf(ZP7CxXH}e6HCa>SYKN@>bIx5?Z#)0Z&6<{ z|Fo6nnm^#U{H1qM1GwpbPL)!n{rzIVRM`SNvH`79x<~c}A77Nm-`VnWt}rlU#c3@+ zwCgA#1A^~T_Zbi`2zbp=AX-zxp%pS+r$amAil2)*CrS8o3Oql{6?n_}OI^1EeBOIY8fQeBk0h)UN3Drn?f<2gtfFhvbIEbL=(-8kJIEMnE5iSUvIz|Kj z>fQf{ccDON)CdB{4d|U*Glqo1evi386a&M;aR!DzA~2}=?@MKR^I&5-^VNkj)cW_; h1HJVlQ#xz=Uuy{?eP$qXWMJR{-h99(HuL3g{{yIeQyhho5raYRKOL@PE{PVkCqF0|Ef7 z{r~`g|3B6AZEa~?tt_+Rr6mXG&_}NPxAP7zIYPoCn+Z!@5nNKY3||*O+6#$ejPFWE zi%+CwDNA>tvWHmj*DakmUr?k}XJmrGY-DfWZ>O&y?2a%WX2SW+XoDn4p@a?m^yZEY z=1D9Ti^9|m%nJKU@{o7pNlh7!qhi=mNQmS{`87!eOj8!%3+k;bR022_LFQ45k;Ifs zOq0#$llglwsKuIuMlxgv4OUQ3x5)@0N3aMm7yD@| zE`?I^V^WwRnFiDe-Aqa6>9qaMd#R(-!E%235!4uWa@q5D1};D`I_SLb!~jz;Oa->! zOa*@sB{l(978)*_QG1$ZBKw}p2qr&0VcV)aH*>zHo zDocn8jer59t2grfD2GkK7TQ!Z%>euC@l1&o$TU^T$c6(ca`Z^8!H&C~ODGMOia%=& z-s5NhL<2MTAgPfi7&ZXB7LjIQDO_WeWZNwP{SC?Uewe|)2Eczg(wzK$cgvFooh+}# zIy6~3g^f;q)I_|#C5;jGjXJ6X+^OO23e4>PgEVR59I;gq)1 zr{B;UkHP8Ck&T8w#k%@qj}E2@dYRier>h96{9JMy(=PW zb@+P5`Rs{2`Z5$0m%u7EZYEX=x~4aLeVt!Sk}QXn(Y~kIqneBMv~bZ2agco~BEyJh zy^JK2_wG(m3s-v&q2}bYvvUh~lupYi&o0@F_;L%oXN7@^GJP0Am13{}VlsKu9B>>6 zL1Uq1LiL#o`0$+}q@Q`A?#Jh8pW%8~hy9-rXR=69yiI#_-AYCf5_(}fz5qJ0c*nTi zEAj!=0H1at)fCR=H+oOh>Hfm#r9+cpN)-jfy4uR)#Cmg`w_zKWXV21cR#d#dR{g(w zEue3!x?29@um0}}f2H3FhNk-Vj{oh~(oNAit-!v$94-LBUvKyS>iwfm{}-PN^-246 z7Wi(L;;UY|(=x-b#E0$CvVzEUsjNXHPWHz6F+P0aJWxPTUjvGf#~DSuybzr?V6R-6 z60eBMANbN^&KK{jY0vlxPV~EKrCERy}v3!($@poyN z6~IXGvVa+k(YnQBMwK2Mo8=lVW(VQ~9=WuJ>zYYZ4U&EgI6c8Vx|3ptmNYlcNKnS_ zUgfFxXT3I*32y2eRR@mkHt}Gjq$*g)!X#lLq2gQ*EvydNNN#-0caYGXu1COksUQxF zAt~@$0@iF;4Y^l0>?~7-NP{~^ex?W_LW)>^LzR@DhEP`&*>TW8bs?^fPYU=&02mA` z+=K}O#|5sj&FkVnRPY7yc>?JjBjwMt2pQ-|h9G7K$3`}<43H&5@gqqmV+i64IUHr} z9HDuBNcMtW23o%cqLZ?TWNwd=_cd_S0$={=kBAC-9IhK*fFMGB;ZAbXXh{Iz^vM+d z)Z=(KxQO4Vv;*wu*YpC41jSfY?kk4hDtNxrvW7TYrLU*&4aLhfG4#d62H4V(yhLCM zBeUgoKAz_F{(2kP{(OBX@$voyA=6+51Kq_y-loO@#I3x8;#V=(_oKq0q+{=VbqE4r z_UlqArSx$Rds7D1qs9)BE{R<83YhTi(hYk{j21&x!PySGIvZfr%tG%2rcrD5kpP;Bpz=2+ndJ4H|!O5GkhhK0#5;m!apH zBK01zj)oh6&wnK#0`FhtU9ucT6i!fLjLMl()v+A>g(yM5%3;>aWf6T6Po;6fJ1G*9 zO4W5aL779|I!9;K;d}SUofUf_8_2J1G*!*4+-q0PFOdmzhWSbR@~I)xs>bc+-xA;k z0V1l0=zp1^T%~TBkb+CW#a+&|*0{0pHiw_LoF`DghmJYC=y*l`YR}lQ@*sYXO z&x?m1r*Ck~Q*Tnzm%x)R>mLtW7$ujww2A~T7DI-&V5=Q&bT_GfD_sM=+^DcF*;~1e zg_97e97$e1OaieB7XNYZ=M5bxQh%J=V<#1-)E)hy*Y?SXDA=)EYu^~N_+px8JDF}4 zx|7C^0PBjYPCPzi9C1R*6{qJX0hwS#HHLvR4KvtZb`OY&3-VNL+Zi9*R> zlnb>;F-i`%0du06xZ6OXhc8LBka}n-XmA>8z-ko+;D>3y+-N04ci2uEB{tZC5P|WH zbd2Ph$1oDj3_yhugTgNu*xYp36O*0bc1AVW7k-X~a@PIw6HXG$_?hH&KBvlR(_tP3 zFd*OD5rK}oa|wb%4XdS81FKW7^^rTSWDBVq=-wgF@&l9HgmuBhjN4!U9jY#%X}?8^ z>gwvbIhk-!=-i*v1GBxc0>Tf{sa@aL>FCUbLkI`&CX+j!3)kM}LpYn$25kl@@7_yW&N> zWfLry7AYsMW?SC+L^d5N!@^*XUgg{C=5d^Z_AbP!st9N@Uhc_^6GH>t z%T2zxm}{U9KWJUS6i=euS+jEZzFxP9NgxUVe&oxv$c#M}&nPyQ4#4mUv0ZNDvoy|? zw?P{cIk*LQh}vqN!9@8kP+uy`b2MoaYfgAutECXzRU45hs5eGZ@u$AgFBgi2!I+?< zIa~%PJXI4|(n$=zsZU%-fwbVDSopC>{ygUWxz-v{7|X(auu+kp(K}E{Z!z2b8@{^H zHtY0!2nTz*lsdJm`FwG{53ff>lbc{0Sw4XOxq8Y62a9_I{*F{g|9g6NaCEaY{@3)Z zv1`4@2Jf9T3O575t)Y=5v8h6pC1g|4m2}x6j(uHicx>5_$nz1EH8==iwo+6Z)aB!f z$ewLu(v2}~i&S=I8eR0MS%VIdtvJk|J8W9*VWLZZcGx{xgmEy8jOSLC#bd!nl%vSX_W`6Q0b!CWzutpkMU5NjYJI5yNxDGVFejcEEhlBKwtoCV8XW9rxA8Q3!oghv^ujp$!z521Dw|+)iX3m>Lfs% z7#b=<0pdYuKp#!o=ETedXM$`O8SN4b1hyec!_)I<1LH|5t<{}>DEp*TrPQVB_8h= zRjaO8tiRfaCTR$i#|lvKGNR8c_cDH~*P2lNZ1m1d=$%tUsKMVB%ahKARzmeER5*oD zd4-T1o$x{iKr$2LhJZ(a|5<WE=C?WZGdKl} ze8zbe4@QItdGt?$*#pE8g5~%6CidqgbEN}T#kqB!AGs61OdBpck zbFUM?XY~GLqJOo?1>pxOCsXUXV2{5O%ol_Xe>ltnWfo*>jF6HD^s~w=8iR=70E{x^ zbBIK|SSD^>k18!Nn5_#QdB6)A7x!g^vHEXYj}Cy5>y5{QYK`tmgSrE}YtZK3K!f|& z^_sOvAsK6zWDT#y_19n?kUHuot8Ee4Te*3=UY?9K%9RL`acu|owODgh#bvfHI{y6+ ze(#Xm>d#G(Jye>ib%B?Dv0x8w`;7Ndfe2zsKl_N#5kqyj@J3>5G=u4 zuh)#GwDja&csI)~g;U)HHnN+%idD>jPKfh7)+)c>eskmCHrRxYSI6T8s}{M2&{^)W zmmu9}8pADv-_AN&72wP~)Dg3h-nRHJkwD^Uq^LOiCNItqGxqNfAo^E5QE}^+B-c~{ zQSZbJq=G>ttJ?;6z zTND)+@u3mx!P*ktAp#@qCE@VIJ8|!9eoT;b+L0Eewu($;KzY0u147!r^v42X!8)7e zbW>uD43dWCkkw4oQW^2F#$8Zu19sEpPn|IxpL?%)_SX%6)k46`P-;J3y5o@BUuXjfa-|zT-HaNcBLxC=_=0MVX`yjG1_HD{DxweD!`zxGwRV(GH%^TlE|G5 zq5BBh>}tk1tnv!wxSUP7!B;%PmaqTvli0{5rElNii}iOfgz}$ZjE$v@y~96_GAn`K zI)DydxW?ZT0Gc=t1#;C$+i4al5|mS|o;&WMc=EzREH9{BY-e*~*~iC(7;jcpEPX?> z)gsOl)5>sQxe{hq!|t*U1=Q0Vnd6pNFx-euyiD$TxG$t0O~=TsuMPyw9rA6s7Y|Z9 zC<-Ay({D%7KE+SpvCxQwHJ4g465ML?I$EPvh?#ku(V0VFQI=?Gjf8cE8AwQ9aO$~7 zqb~OXweiE>S#9RGOaxh%pCUZ+s`@HS`Sv6fa}3OH>h7rlpN!(rwqv*J`%+a3yi(Wh zi&B)E{n7d7kKpG4(CPV|wBf7Z$8c$p1;}Z(TPAPIX*uneyDk~s|2cYu{+G3k?DbvD ztbhG?c<6kFde{3My-R=3LFoUb`R^|On6^quGJ1gyev`-!Y}|u1hxAltVGMj0bI>Fe z1iRP%Ji2Hw`giu_gt}VYKJo@=n4z3A56}R99%@Iqd-apnbkcdvNH-A~pbCce>;Yx5 zkf}9hQ4Gq*{ms#0G~!vRwc4-7(vyJN`*!aa16~%n>^08S#OZDBL)<2W3?+Tmt_)`7s8w5yzz$i(o7fZeCA8S8xDS^AKH z6%`m~eM7X3s$UZG922KgM^z{7tm!SF#qq%NvIwl&U8|y7aCpI>&^%)5BNnT_00AAU z6Uxp9ijHoGH-{a-1oDV#c_i2y=9b5tNpvH+$<~dA&U(O0PVau3)l-C94&fG|^%2$P zDZhiN{Ul}fa(|M%uyzjG&c5_5EzZZ1V8X3Fd79q#_I#00z?@v}^qLEMpgX#YEC9Yw zOA?V_P+?j}am(I`=TTysbYPmet5=AOwjFd?XInQ8b>NE4Lo=QLKOeCFLfys2-onAu*!cgGK&S+z5J>q>Af%D}?&KTk-M#=7;M z7`&IR*;n7~8$h>hgn$Ur$x?J9)%VKJ&AFF&3BbgPY~uYxrDNP#Srz*MDsaF~HS3Z? zne_JK81Go|I$708UWY}WDJ_WKdo?9w@3s@->r>K4BZz;~C`Hhj^5+Zbd)o5uafq%@ zTTjyB(<{kz27pTILdJEGS+&c&S(ne)v^qCM%?n63d-5W?#g5?vS5=L2HqKhaREZf^ z22JsCWow{wP{;3IQMaztk1y35J=u4XhG=ECic5T-50Z9O9gE)BolBfbt1ykuFR{oj zj~U)wc^F@pY9*PP`dmZiguLgIaM39 zd7T(bZJX8!>rL6`KT|4mr?g*{OrbM*`1(H&bjSc{lE`sY4Oa+k;$;_2&{jp(MJ9Z z1S$ClzrV6}+Ef{9p=3K4Ie%EN9G~wQ%5z%{tQezIpGZ({4_#ZXEqGVo@*a;kPBB3m zmTP=d(F+mMm+NLJ*^B?m?l~k=vqqYd#(cX4rr%{|Lo41I*vb4b-L_%TiI-ZcShcT< zPIzq6#F!7WMeuNoOc~(R$)+VeWvDMpUw)#^StDM9p(new)lF&vC`YMBVEAKUGJ zqgV43`~YGKsvZJpS_A0qk-90nt*84W=GKVZ@ROTlFOjC&03^-H<%j%_S>!Z`4s*3vLE(f=^1bSe;d=^;uV{d1su>q5krf?$Gt97IA=CCRJrOz3uiW#GwYj> z(>wSQ`Iv;&E}?oh{Em)r+f0OErFrZ(&Dohe{K)-G!)wp;INw?qne0ZY;w)4TYR|QM zG+-xn@Fnom38~+@E8?BMWOA5XXk)q6N>~jKFj3j%@_|O2Di3GQ|8+t2A>9`ZPkczL z9m&G5<695^M@!6BM$?sL_ios`_PR5%?P~2uwOyPLikO(V7-MLJ@5{aeD7<25sP>yP zF(sk%M+7mc|J0mwJ=NG8^d4cay$+%8akkKTJDUKaW8^2X!Sb+}0pYn5utIzh#-Ok- zXP3|l;OGQ)he>p-&?aM}&rS$nHQO^sjuM5!CRmSI%MIZ_KJD%jA5E9>GKiaU!}q8cAP7l2EfL0=SU4 z@OwNyzMlxrrFIDYkz)P`459EQjl`q^e3Xc>Ch%y0fZx}$IxGy%NEjCOpDhLBl7TpO zT7h&#@u}eYA{^A~BHfIQ3k!~)3uDKLf?qV>`Z7YUZ3`YYO(Iw974YTai z#ET7cLQp`Mf!ZNtD=rybg^Ot$x)86d=m`D6#1fYZ%&h;%5Uw(-=wRgBVGGR8qWNTT z?Ze+UOHfj2^zVL=s&i>(3p4w~U3VH}V3O(BQSc$GS=WTS& z=+m59nMRfWGS$al>z{>vi%IGdQlShrzmY+M`Zw%-2PFM6a`Q*Q(x}7D#IyqF>))0E zEK}o4=hp(hcl>K*`+tx*B#yNDzD-{xYWzuj(*E=G81MncL*PlpQT`|(Q^uR- z(S`^d`sHzc%d|7WP=|tuQC%xra|_%-nzK^=eO%Z&2iI{Yrxi>#wL()JJ@_LAS@l(4 zl*F%2y!9z#S}FVRqvyEE+oqeXqMwVe}j zv1?(g!t|7}D`Bms7ETxlE)^{~a89|5AK8zHy}wtiqLrORHB>Cr;!YC|B|anix~CC? zlJe_VqK=}jH@`LZdu$Xm%ZOzapy|y&P2{x1vsF6(OM!mqUkb>}8x0N^*>dNos-gyd zqTv>>h@Q=B*BiaF6IIpG!bGACaku`Wa_<7`%|_NBZ}Cwk)?R6g`1}qv!fMujtH+Ax z`{>K(>|aC`*%6XBnYTn*%o)^uDM?-%gWjgUE#3x)6<2!`m@jgEUOOtn$|_8d^6?}a z&wKfT$)3BkgX|LVI3p{$4Cy1O=)zqzK+k{Xm52QIGP>N~-s|mq2~7_3KThTh|Ge!~ z)pW>UL-*QF`+$SKLII~sjl7VtSeBkEoIHO>(_1z95el+O{MDUf%>r%`at{Jw=jnKV zdg6nZ zTEvdnPpwCuQRHP**>0Cf${kN=245uxA^X@!iwN5C&}UYjPRw~zK%ln+vz$bmkV+PTdn&WlIb*{yw z=<@`{sU@Z_*7Z7~2`HqBK3-D~$@+mf8mnnxKdV`!@rHP=SjMqk0yGH5A|^16Rt@1{ zZfi~9TS~NCa&4xkfizw?0qA86mv>EAlVgXXe0z8MA+j{CAz-VDRL_GU2UbYK>Eq=x zDLI@x2#rZ5K@B)nkcf<82w#5)jiCdO(VR)zc)oKcQt|*j|Ht14&cf2hkSIuv;bTwo z@Gh;z48q~x-3|y?pM$~$E5jD~E7ClXMN_f(*7V9rSB(0AtE%Urok*ms*@CZ8lsXIA zelQLEmfoR=8&>QbtDJ_-h5QxX;L2QB9lgzsJnHb?Js;V$YX@%9E;jIm#K;A2EEA@7 zz~7~@(Acy?0*VD*qk0LECd_~})Ede2!52dC#h-NT!q5#!6YG_ElyCr;A)v!T=dPpA zs>b$Wl)w{PMt_5pk_>w!LlUTS5;6JtQgYr+}Y@Z^PKP-wW^It2cF_@nGngl^@+ z@N$H%HRgq7@L31%mM&1wQV%yIbw=&^iGY{^pEnpj@}oPwgnpvQ7dG{JPl)aF${t&m zhmL?rbzFadDhCC8FBgbmq8=9n!+JH+KQi7E1Mnpntr-$Xw1sF4zzc_$Ez9!hS~|7#SlT7X{SdLjV~Q% zrkk^07ygIc38C#qwnDKDzW-rE75YJ#=Sxh(E5v{1C(S_-1z*13>>h#tj}C+JABT~= zZoiHXAAH3*@1oZl1Isfsr8Y(Eypfr4dT%RDY{bYf0AfjEvkgMMu5co?h6T}AqTBKI zb7lT+*}s4$DLjm!&kkN+Xk5vtQj6qyov27W4S`l7eTTLD`sMtt#Ej-3LPN0} zfjp72&!VcLfllc(9aRV5*fZ0zx{M1_ zIkeYG@;LDh*e8o``Mo)v4!F;@#+A!@A*ES7oA|e>42#w@$kz}3h0pB# zoBpIx4g(GYmZW@3ISpdw86K#`8rHi(OeX=A3c7_nfL(wCtdLMf9Ada|I>x(UvwF>UZ?w}3&<-h z@YU=dO|w3`>3Qoa0rikDW6hfV4BvbziDgInVfQb`~;8EbuF53K`nmepo~5xZ$80oW|1SsoE5+1g%I(f zkl?%d0Oew7mkHk7IB^-lGHG@Ke2Vo^E*jj{kZP?GB#AvvVLrIF=~Y8!V1i1v@T<(I zVx|9Rij@;+KML{F1lzm~%O)v)c?^e>Hkeb9f8&OzokH$2SD|~IvIeqbK1B9(C6Fvb z<}?GSGSd=~_%{v0N@BR7_miK;Osiz7G!o|*kns@ME>8UItpjr{ zyswy}^jzh*x~vye|IL+Vt)IYux#AZLocFQADzB^9ymbQnl&|L-w_-je;V$cvI6&Nc zBwe* z!1VsJ2;IO%!FE;*#(($4bnZ;_(e(FIT&_XrmUt9?PQlu?B9l%lqPnP*=)^CD1#p!J zHw%CLzJK^qOXbcu`ww55@MH-nO55e@w#Zx!Dt>{|W?cdk)ye=iXN+{+skbubo#Sad zr`rAHiFiiaE!{`yWTmInhDrBps!m4RBmD=9!@eP?)zQ)j^!h|r3`SF$$6vMt#GEd? z%#L86VGFciYk;Z@@jifF&(PX(H4AKrKg`h=D4NXF+3p&0pwfCtjr3FD&DYr;ejj;1 z&}Vg4{}o|{ZxS=4z)FA8CebDf)e8@mZ|66O)gZ`SQa(;p9MaIP~v|FNHD_3}6N-@t~qH|QUo1924R4o zq%f3iNH=8Q<*&G`)?clNJ}P<2*d*l|!9&-u3-=aLsUnxC_Ine+mnt#^P@5jI@xLq5 z3J&*y`#SmG^9z%HdC6*iPP|0uxK1b{o747-6(?NjKVy#t(?4?QM_ELP?u6_~x3Pc=HSpnxI-WmM$L6mHs$c~z;^EgZnR8Z{n^h-N zV-~u;2tE3AyqUe2pLg!fY1Rc@JFC@SaoC?1X-(N|%c}{}d}%-jW@jbUKA_iooBZNs zu3cqZI^9#R0k+|8Rf`pAy`5QuR)0Hp40y1Br$H)>mNK-VK_>*QAfCWo&UHb-&V#Q< zI+_YfgQ3SlGvOJu)J}B`ZFA8_6`YtdKn0py7MwssBgHVl#ZG0zHo(Pk-zyyfj=kl% zTH6>0K3hfhE4zY-Cgb*_-<>kZ-I$^yLSjJ$LU9hpNUL?y7a`r~_?9@+PK*Zr{QCoj zW@7ZC(~N^RpcVCsbOm_*X$;jZ;OPJh)k8xvChkW)!t1LE)Z502-(D2O^RMb1Gv-Z1 zZyR7ro_jzo+v;{eExnFr#)Mb)^RJvUpZ_^4`?pf{yHv~3)Y!`SzbaMl?;*FXK>+}` zvHn$X_rKNtQU2E(V|7`Zbr$3vxD^-t?;1R^W-KtL@RhoZDru}i>kwSCv}85Ke7-qx zFRZnFU%-KO{S?5C3pz`xnI9dFIi#8)RY0#Ok75$_=;M-epjblND7?xBM`c=K$g9xlNjl32L$kRyf@u2O4TnPOLKOK(@&Lm8CB2>i7? z$r-H|K@ubxN#XbU=;PyD1oRWqt)aF4st8KMKkxuILzS1x7fnd|nI7dLiSRu<81i`d z1*PZKe}_JycMePZ0n7>WBbClX0p-kIViK4#PJwU?RbL0~=XC0S<2ZSZ+(-UP<7`<|)!F_Pw0D7_dil)BqbV~RP;VPd zx{6vj{ozxjDq)t|_k5q>!n#Sms^j^`#{)^4W|mCJtb}o$5X>mgQpz>fqKTKsWFJ=S z5Nq=F!<2K&y5lvd(aj`@=a)o31V7C_LTxaY(h_urB z8(m*40+f4Aw$Im}7sdNOFA4i0)6saJj_)V4Hv@PyG{1IfqXYK(Q?|VykC*WZc(c9l zZg0>IUDXG_UI)l}-rwEW;TcQ`W+Q&)yg#0gMbz+od~}SETwD2x3O~n+2<2-Yfa6?) zJ2D2_k&qGDb)yWxEB*q3^>co|&2{b4+g*e92 zKLB`Q`-MX*0b?t8N2%t@77<{7WS}yLqvxqM+!0|o($uB?LzxjuV&ri%md)Uj5t|A- zHkG{a_&G5a@#0ec&x%vbtG^_V{0Xiwj+CS{Lm?4aENXYj^QXKYPC<=@>Qbn!QXrI=zu$C<4wId(8Xcv84z2&48 z;45mTH;`Z#rPCX3hA6E9IR{OF8!7?sFwP7cwE=IeBDj3yV;g0_l^v_# zJ?Asv2-T)n3gXCS37S7AldX^jaAATBNs(k4%3+NWgesc?qrlPvU zc{X`ph3!{ge@DQt8y-J3-7VLx#Z4EdWskG7%W^FqizaPkwbHJ3w_2~d)A)iU>DxdC z7C8qIYl(R>$rb8hFZ6}83Bb66kYeJ%k;YceRzAH3P>5=td`j#K8v0V0^msJ=9SCfwyASHyf^D3)09(Lb3fdZVi? z#*73!l^vb+h1RFKi;EJckr4uHJp)B7Nnz<)bwemm7>g0D$)tp5e%dA#S6LNr>}8T_ z-~1TgIcGBw51qHKP-Gf6f?{>c9M{`|-1D<8s>eE$yN-)Sc_0@QAN%SB7!^>415aa%12qq?WSe9831wgUwVv6)B&9J>CW|uz z00H?H2MI#(CYLOApCwS4e5svGED4boN*PLpMD-YojmWaVTwC_!3>O6dr#QXPxOYcp zIOi?fWQKf3T84f*6Eps*iv{fSbZUf@k^FE;e}2a3aax#qRr$ibfot6(BK#ywI74~5 z{zocGv%gCEV+}<=dy9rfK92OH$W3g zUkj)-bU$eRYrGX#EN!f_EpSuYNEWl>pQ1DPUnFzG7)Fx#-_BBi(MUcuYW2~O)?4m}Bt70}u%)PFAM zpb!m?#=l=WOB(_Jd}kT|&SL+RGCBNR#Vu-E*{m<2eDdgh`N`GlT$I?vJJCFJjY}TWIEH#bR!$q_>4Pbuf(tZ&ReKz*g zI$V+boKB*p_>Dj@{HYh$ew^KMocZP~R-?;x{*-u@%-NX5Uyxf>1~P=%m=(>vVu9@4 zxkC z#O00HOKen3a)b}>$&{I|hp6xFXjvy`%9xaF8vm0Bi$I%Og=!06aMa;m=IIQ9ov*Kq z`hl32&`eip(j;+InNq8>Q%+jgaxbM;66Z_ANQ3l;fJ~P;f2GkpMXO`6fQH14FLX*C z81a4TY=)VbmOzSVCw4}>;|6+M`Zj|=5Zv%tom5a=&rVml$xOE^ll{WgVJZETt#fc~ z(yZ&aIhrY}ogAZY=5!T@aA*q^_x7aFZn@_d9LG`~$aoE9m$pDXX%dw`49wyEYOncZ z!&rWOY4vHa*^)WtOWC3{WDPWk+_HJG*;12vmkw)GeR5ouw14jXVxSXwLqod?AoHaC zX62vUDha?e9v?O3>QtY0lOv=Z69)?_tP~X$O9kLE2K;iBvIVO2GAxa?SdnIv0JGO? z;pQn7Ri9T7EE*~pyh5L5b%yJvt-$TX{oltlkLE#f*XCz?)5xVr|B`3yBH8t|E^zj^Zc?C7?KtX%qrx0?3`;r(R058;0HS#DISmtU26}HO0_d$!kuIS;Hk6Mwuwqs7;+Zyy zLw=6qi)TeXzX0!fJ|(@zJ>#_)0p<(1DD$T%ON#+oFH<=9W6O_x1|@QR$|5J*8P3<; z(jJR8X$@LYx0#L%M_hCr-9M`y0o}q=jC{~*2hz(omCd41&r0weC`<%SUfG+ZB%)Ti zwOSl1*v4GwgPibuFX9I5o8 z0`+s#ZtA{mEfCB;`mrp4P`k>_@=-vb@gmXZ;uV~_`VRdF*4Yzb!{jh93dH+?G9fnC z=yg}Ej~)QZOcE2(Sid{0&-B(gfcXTM&@Ve4ce1QX%;qi7?_r@enBlG0N`6Dg;*E6I}=j-~fDCkk(E zEB}CCPzXVfL}S+^m_;U>Heo&)@U2>fp?%rPOMyFPX{k|ae&)Wc?lgJ*%8 z&k`VTO?K#@6P@x#K@~ExMtQ}=#@j!elq!+q5GVu~btPb&em=K?t66g`FE|X<)BX{P z4jp1q{RhLFMMj>QZwByh{K!!)^IqOLQZq!%pEw4hKTzj6=6Ce9jXb>W2l;9 z%l)H5hA#+0juYO?6D}Ss0frxfvgb_>OF{wl2GR$QD&PyNk-n+|IN;xvouhF$uRkMyxHVRCAvBa`s?beMtHBp|4b}Tjm!uMI!7^t-e`kY9H{5Rhz9ais9 zJiG8|W1*`|E|S#L+&lyaTvbZBOn-K7ykq|=JU?N!vL}lc^!qho6x~Rrh<^hEHDJ7fi_z0go_)7iCTVH;wnF&t z=d%&AuU7V#kBgfDkCGf8_uJhRNL3I6JST-bI8y1Se9?#g0-($QcRxmnR8yHJ!Z`nV zB*u{PUef%)&x6y=o2oazTfT5|Jr5-TeW5X!^Hd`7ewdf!Q^T`)dr|Xg4+0OiQnW{w z{+%1(Z6~rXZ#wV$JKvv!-1&MnZ<&O#sS%8U8&RX<_hX-Cb-M32r_ZWAneQL_zGSPu za7BeNQ?m0y{Xw#UVyU@0J639l9cbey+N>3e4zeO01W~C$G z1aDx<;z(GaNYLm(IT;Yghz@<}^h5KS2J*0N@9V`_v9Iq73C=+&7f3cUvAe!0KYVm;4`y#!~&wPoL;Jt$gtOVXoyzQ6G z=cUQ9U%C!!W!R*`#AEI)cn*m4`hNZlQ9K=9uP=CsGth*#xxk_Vj<-7z^Xquh)?B{& z2Dhi%Y=Q`kC}ojx06Tr6c;NimvHf2C2S@Zj0EWo*YGTqKLB=a=%51<8=kxDllNJc# zfPjv*LC*+)1=2zXP4+oib9mc;)F1B?V%R+p`0U$jy1CfBo!zgVhsf|U-;bA0H%k(> zH;!>aL*qdy8jwri?SRXK2`vhLZ-^QrXxdVo9v$rJ4)=VB4T3}eSW$s8apftEqyLei zg->RW`ybsqh?(BrxMX z@D9R!|9k=;RyJ$jZJ$LSC(_A4t>*^-6HdiC=0m5|r*Q$i_a~s&7ogZ-i~D@{rE6n^ z2*LY1sGB+j7TpegK5OuGFv4?1q*jN#>(_6S$xhFrGPJWlCS9h9RT8t6mO8X5kyVr9 zDH+A(6`H(2E^%LscAs*LCZEef+twXZGpFtrR<2;-^A~GY7LPsBsU(cgK1efTFZysA zZQb?V*Qx^^Q9s)C_7olbR`eSA!scSX@FJtWfc`V;sU7;V5&{7L@ck}M{`Y5=4&R?+ z8XGA(+W#%P{U?R3rm46tg6w@I^#x=ojfb_~7}#i-88UT`);OIW)uad0-Wm_xDr-W{ zyd2wzF41?0h$z6Z<0#O#LidhQWyE{<^B#Rn=wUVKci8cGp)p-orOV=Mw2-z zOz2gfl3pMxv#fM@L1=FTulws(++ff-G!K4~=|m`B=wfjG{5Z$havcM(QeT$%Hd^tS zC9ToHtsLnsPCXaYGmVKRi|u+oU1AL+0&!?c@z05dJyVi<=0cb`v539NtSu>G0R^2R z(?U-8eFtAWt}IzShUTP6W~EQ_p{i~J+S%vWo7CKxNxZh(wRAmB1e;?yF_ut?!q+cn zMH8}$tw#$Ro1QN$zOchl$Xse?T zFwsX6&MxGX5ke_fs&1}3sZccB!qme~{uu>z0`_aKTAz}SisplPb&I4esr5n(8k*-|;LzG$sg^do}EW?#5t3t641!$F^rwX2JPlSjY9$E^p4 zD1jp_0VQI>S(?abr+B@655+5ZN1_q!(X}mA8K#Z%YSg!<ZV=II*Jkm6Xi$7qsyR=S_ zD`~nkV7lEUWXn^VPof;5l4mom1CQI1a;_h+;Fg@2+SgaPVD*Qi>ox>Cw-T!0g?td5 zD%?A}RD#ekC5wiQO&IewIGZ9X3>loN%1K46z`E+&#c+pn*HrbCyq!MIgtUtbiMcvy zvBl#p4IBPtl)6MoABcAZupWOwpqOWF}M z#qghHIIKP(hX+mMEGTO=o45J~ui2Qec7%&1eR?2Q_CIsJ1%71w`Y)`q3#z6jJmVs8 zfLM2M;v~P-ok(VB@x5L<$hjDVrL#Da)6Zr-Y!RjNkh5H#;RaR#ND3uery^n?l|md4 zE>Y>1iJ|kX+{6Au(B&OyAH>- zM}b5q(tJ+FwJ$SACss}06}?~Yu<`a^QZsMYCIPvYoJ@x$4okC!3+w97E~_yG3&+%% zVn<}_&9bT`%GeoUf6ZqC=eMX?hra{5!944>3j=Z=OD;nIB%{nJ~$5rPm78vUO zKYd(zAXVEJMi~mvkSWh}dm@>q5ShnoNRspvA|%7j*b^GAskoWlQctF5$~;e*GlYs% z*O*(TpLs|seRW$4qp#MYTBSt`VWH={HaaP`^1-YYCziYYjH27i3eB>jrOfT{!A z5v+5`W$f_6Rn&52{?m6WZ%p_5#GSmG$!n=`FrdoSIW1c<6NrN1uITwOt6v=hTc_)0$ zFiWu#DRege(X0C|0awxf(c&+{3qD-uGtV|l6vgFto$;7Eq2rGmo!C6p;E{erDIu;g zz)?1*6NzYvG|IAZwC5~P)Jj>~#D%#D79d?vxzGLN2T9IrLJ z#>&*^DSl|i@RI+n2L@YR0tcec&DPeaof3IdMI90UZT!)&-=*q5hxjZd)5D*ly-uN3 zQElF}rxyJFF&{$f=G461<70ZYac}k1lFeFRz_?OuzZiei1wWH6sSrh>7{~5OQ)AUc zMOm#31r^)B0*=+V8oRbHX}2Wu7#k`zzdw4%x0=dLKIrK;6za+JOZ9XdF6zRpb~zV*BjZ|LEq z7vEHSdL|ly=p~Di4&CE{hf}7v_@!E(jbeS2Wvz7GmqfF#{a#D3v<`41{Jm5KDOGR% zIe5Dh=oJBECGnEz4VA4RDjnGXDjiHv+O=m!P4n1L0N>0R95u~k3H_r>jRuTsE9vZo zVLB1gOQjq3-Q#cbIh|MR zw`|I-oC)WXPjPW`$I6I2GmaZDbW7W3d;H_YWfA7)qF{vfO_R_Us?tTCkDc9*v)f}F z>1viP&-KRiJM^gqourDjGB{PvsXjE$_pmu*bjum%m6}{E9TD%m&XnAF3n9Q4{5XY5 z2uGhE-LWi^S!8TA)-LyZmA-#8Cnb(~_LzWctbUwp^@sUl78BVF< z3%&B$nw)}%C@d<93QL)JCvYKxObADdsdwj$ZOB+!*Ei=DsB#6~2c}O-+OUTqIZ`&y zAw}psIc;$PV@6|s8F$n2?efFI^3?40itcabhqO67?#?o8Ohmp^VK^bUH9!00i4eY- zHIduAiV4wunPE)PN13Ona78wfx!Aq)nfm)+pYtri!B~_>3WwK`8+DhI7BSXH-ZU

w?*-L znZN(O*%qclN^#cwCrV|2(!$Vo`~?AJkNs{tT52vF{Y;L%v=-pPT(p>hLW!Z#co&EJ z8}{k_DjBB+g_iIM!6s~cZ3j`*IL8W^*0*eX1wGkx=5?D4=+>@RX1XrNp@?OZ*rOnt7}d0YV9k{8$^qY(+lp!uj3?nA>V&nVeS{+1o1z;;~V$CG1D zxTLI}=??r`&0AP~U6`&9-~N06ujDRe>X%d0oc_qjY2SZ^ z5-e)uh8_D&=k%D>b3VNN6yiKdG4sdG=b2gW<16a_*E!dDFW4^nAdS@(F<~Unz}O{J z)&7t1;bq-gul*Hx22yS`dG}LtQOG?gpDkOGVr_{FzR2fXb^{$Vb)E6TL|e7EhQ#z2 zH(dX8_iW(x3f)h8yx8|Nhx@)_@FzdOypEkl;eH2* zAsYSrCx-Am?Pd&oR}vd&3~bv9`mv-$99oBz&$V;(aIXurNgRCv2{gT#ZSR_+K15xESy>e~6F=IHa~uWjhs|1%Am1 zvDhmUSbn+kgfqZ{Lm-B$l0*iu>J8zxbT>_RK9*085}-d~C3kLYc(f#Bv3olVik*ZH z8GgqA5e#Y&>~4RecN;XAXise5MqmLhiUHlXxkS5RLH~l-K&-Yt97}o|!Cf$rfw+zS z`3(ciA%klHuLS@Rs{S$^hziaEPeO!P=(*t&Bd`!s65%ZH%p{0K89|bTkf#J^fhTN0 vEH3;cSqSMHa29wFJH(O*9FaShnJ^_NkRiwn0e8{D2*mv#-6ig6