From f63a1caae97d9973b11b34059443969903a3b54d Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Tue, 8 Oct 2024 21:07:12 -0400 Subject: tracing/ftrace: disable preemption in syscall probe [ Upstream commit 13d750c2c03e9861e15268574ed2c239cca9c9d5 ] In preparation for allowing system call enter/exit instrumentation to handle page faults, make sure that ftrace can handle this change by explicitly disabling preemption within the ftrace system call tracepoint probes to respect the current expectations within ftrace ring buffer code. This change does not yet allow ftrace to take page faults per se within its probe, but allows its existing probes to adapt to the upcoming change. Cc: Michael Jeanson Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Alexei Starovoitov Cc: Yonghong Song Cc: Paul E. McKenney Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Mark Rutland Cc: Alexander Shishkin Cc: Namhyung Kim Cc: Andrii Nakryiko Cc: bpf@vger.kernel.org Cc: Joel Fernandes Link: https://lore.kernel.org/20241009010718.2050182-3-mathieu.desnoyers@efficios.com Acked-by: Masami Hiramatsu (Google) Signed-off-by: Mathieu Desnoyers Signed-off-by: Steven Rostedt (Google) Signed-off-by: Sasha Levin --- include/trace/trace_events.h | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'include/trace') diff --git a/include/trace/trace_events.h b/include/trace/trace_events.h index c2f9cabf154d..fa0d51cad57a 100644 --- a/include/trace/trace_events.h +++ b/include/trace/trace_events.h @@ -244,6 +244,9 @@ static struct trace_event_fields trace_event_fields_##call[] = { \ tstruct \ {} }; +#undef DECLARE_EVENT_SYSCALL_CLASS +#define DECLARE_EVENT_SYSCALL_CLASS DECLARE_EVENT_CLASS + #undef DEFINE_EVENT_PRINT #define DEFINE_EVENT_PRINT(template, name, proto, args, print) @@ -374,11 +377,11 @@ static inline notrace int trace_event_get_offsets_##call( \ #include "stages/stage6_event_callback.h" -#undef DECLARE_EVENT_CLASS -#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ - \ + +#undef __DECLARE_EVENT_CLASS +#define __DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ static notrace void \ -trace_event_raw_event_##call(void *__data, proto) \ +do_trace_event_raw_event_##call(void *__data, proto) \ { \ struct trace_event_file *trace_file = __data; \ struct trace_event_data_offsets_##call __maybe_unused __data_offsets;\ @@ -403,6 +406,29 @@ trace_event_raw_event_##call(void *__data, proto) \ \ trace_event_buffer_commit(&fbuffer); \ } + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ +__DECLARE_EVENT_CLASS(call, PARAMS(proto), PARAMS(args), PARAMS(tstruct), \ + PARAMS(assign), PARAMS(print)) \ +static notrace void \ +trace_event_raw_event_##call(void *__data, proto) \ +{ \ + do_trace_event_raw_event_##call(__data, args); \ +} + +#undef DECLARE_EVENT_SYSCALL_CLASS +#define DECLARE_EVENT_SYSCALL_CLASS(call, proto, args, tstruct, assign, print) \ +__DECLARE_EVENT_CLASS(call, PARAMS(proto), PARAMS(args), PARAMS(tstruct), \ + PARAMS(assign), PARAMS(print)) \ +static notrace void \ +trace_event_raw_event_##call(void *__data, proto) \ +{ \ + preempt_disable_notrace(); \ + do_trace_event_raw_event_##call(__data, args); \ + preempt_enable_notrace(); \ +} + /* * The ftrace_test_probe is compiled out, it is only here as a build time check * to make sure that if the tracepoint handling changes, the ftrace probe will @@ -418,6 +444,8 @@ static inline void ftrace_test_probe_##call(void) \ #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) +#undef __DECLARE_EVENT_CLASS + #include "stages/stage7_class_define.h" #undef DECLARE_EVENT_CLASS -- cgit v1.2.3 "BH"IH7.2DHSB!H+AC${ (`dF@D@"B$hR?|q@$Bh(Iu%Х*.`۱ ´E$AB겹D% JI*I@fW4IAE!AT(Q R12A@TNaS҉@0)Re0E CК"tcq r =l1J$Df/*A[41QP<20KA RDBD E) |XB fEM4Q̩)B21 -!H_Tf)(PhQ(bRb :E *dЈk% P!bhB$hZ Q)3(s 3Շ"i)MH$2QJ !BDi+}@xt"P)@}LL`ZTSY B WԦM'GH:A:eWJCF e fB@`dw@пB}/ĞH444B #JPS$$1o~ i C @UE4(@O`O1RTrw-ۻsMU Jv?>J񺽻7XSW?jZx!_0=$N0f?r*G#"_Tա"#]@Saߗ~.>~?/M-pwO.L=|=;` ߾͢(ZtJ7N_# =Ƥ!}hx_=A\l ]vKGûL۞ҍ9 9wcfho^0F$v̍ƷV*c5AKpr1!LpbFǿߊ Q㑹q @@#1Y_! TFY1\*kXWFܫ38+ÖTyd޾d\ qv3OoF?j#JW yAG'Kȷlѽ(tPϯ@Wpw2Lp8R?*+╀vmox`Ëx-x5BBvᩓOiլ 4O}դ47İ*r ]w^U -L=<~:z Ƕ5ch&P2.8hY*VOԏ&H~AYg~C/^@tuzzcDXP_[]CpA}@h0.艹yc.g}I<ٗV@:?^ }@T;QPω[Qa?n?JʥjRdѸ_pC?avn35nH}I fóOm~:.~g0Ap ]%Y,zMj Z!ừ(ow}"Jh$܊; e,7&_:ܜC+[C![F!h/R O]pWEZU} R hpRO#>&B5Z?\x_jvRR(];eVz?uP(!50_+Vf9\s3ɑȹTbBrϠƚT$+lrxZM3^\mϡ&DB5g_fy (wo۷ެZ uq&p$mAtRmd Irz;߇ν6B(bt=(^\ݶZ֒hy9ċo~>l H:'6vDv9>}ae:gwZpOgq\7g ٠)ipv`F y D΍4AS14(Ӓ\Íbŷ82+t;]sCAK[eM{ėa]b=z@!4%ifG- xlF6deΝ$cZ2|}z384H#U!A.ٰ_?v51^Qo{vZӣ: ST,x16-&Ցvr\pXT|-~$;p; o~ C=ܭ}:WÜ8@RH&8Nbs_&$lk&_ ]% Ǥ[h`b?W9+k1N8b4^Dpg)u}鳖nFWr_Qp[4 م怶CO񍎳]olƻS𑤢{`.}1gϥuj/&x|c%RNj4uㅔP= /Up~Ttbu9\c@XN(N_y/4t>K'|bԾ8Eq:R}Y5`ޗyDCC:c u,oIh̚?%(.@/܋kbΒ|F|y=teK-Q(H,Po͐jDV*:c,_m M/XW Eێngr|sowMQz]#yr2ض,2q'7yVPYM\"(`o(66eacr+e~F)$;{^"@4=tDY+0Muk+G|vةM{c@qVQ8d9.I%ԓ_Li"i)_0R}E`D;!c E?({+OEl= N voO}\kks#p%״:{1PT,{qeXѴ) *g̸~3I?4rw>ܥBԷ] ;RŻWCÅB3w?߱ItO^ƪ/G0w|QVTG 4^Eh)\oѫ)bۦvX'}41*;Ҭ9[qT5ӂO(H"m}VsNb٨@gtZ3s?1#>4qa $T“6Hʯ!BmfЫ8@2%K@HvQ-*/f-1*7,PLnU`0?ٻnX6nݩۈ+iCҫT'wk=6ۋJf2}*X~N99(dC ) 3o^"5\ ײϔ|mP#,؆5I^Βݞv:uӡUz4,$G` ?sOڡCe'[kR9ڽ $UH %3m} FMр YviYxA>VS*|7O'gys׹|g1ف~L?Oa_ߗI!)O Θ?0;Fץ<6X*d>L%~Gk ? p W ? h؍lɎ?Zvxs@FgmX `EKk$ʫe^t:qS>=c* ݮʮ i?hNj,(<6>L((;wȰ@@m2#v]})^w݊:zӓޱnYC{#ph+_Ӻ",MMZa4K U8f7+~?K?U/w.8=p`:DImzM!RaIvY9[@.OA HCJc |P_0=6cP \(D(`ujo\+dFC\Kȍ.fB(f:af4lCk3J eRzbc&S^/$ǽ08@蓶uV|,4]dž 4cr57ѷrnvj US[hhytS۸`8(+i%#|};u]x.-lS LBRFZb\CÏfEꞪq;2,` V7N.tstx)YXΡ*zH/dٶ:J%C*C{.H5kCe;%]8%@h9On}v+w<{ '-]u7u-ф j|ß KkE-"Vx|-7kY|+m賬;0')tA6/ֆ!VVkx|>k>f3'3զZ7(\g{|W-27Nj>$'V[,WZ6-]h/<7;6ڸNjpf4=|Kp|f?7wyZD馾YCⲬ_Qέ.F!)t5!e(5eYO !M<{vcU!%V}[Bz Aa({>TNZHo } =_<'5L௡^-?mm:&Csp(yW4pbF.҃FXxEbҋ~dXuZquv>V0:+ {h"4q68U λr6 gt*,ꭾ0d֞0Hc]WT]]=2{:Rk|@޺zB(ZO~]3Ҍ.>#"9K ќoXh{KHagU6}`iyJJpϏH)TkLB3p_hߦ9 xI!_wO//{?M)2^:/5`bؽPBylX}ꤺ-ҭsNx2]S|~>D\&0ьr9L2CqWk] #Nfd`1cXHeٝ bTct d#˥Jě]SK +IۦNI-f8!u4fg Gw]=W+nw,5M,ėT"#c4I TmdݦeGym3'ע6/}R-&Uf.B 673$h{ 0{f)}TŒaKaz T$ک\˹q;k~r;w?8mw>hgc|/}M&8+ [UtҹN-n%yrCok8L|ʩ&8yv8W+`h85j͖>0k)ը5e ('=yv0K)l 9х"WXѓSύj7wvK~a+C1*6ʪz-pl2;_G|k #|/ŶhK%*}͐SЀrCMm$STJݱf,I1<;6Tя={&@1vhLOl0;8'Ks҃G1P0AMƢZIߗg< Ѫb~o$11@hPH|jh TTᜆPL>ByM-TК~]߻Â< 5KA,M~}h(Mvc2 P Z9c 6ˡi7}UAL}ŢH9Yq<ߦY7b'؏ϟmy`p:*h[?Q߬W$Gs.gSolݒ5sa6(A/aOC1{ysMf y篸ĹpvCv_2Ȕio0&%T*#!v_V x=c>轹 ^!{S~7 r~wz~ϊo|S7#!7ڐ:$n!hgZ? sp]Faq5LBziH0 Y{[;i'2_.,ٍd"gV ;;.9ZV~y|3\}^-;pQYRU~reۑmi؊p"`ԾDip-8/.*~ !T^{&vwM:|m !Pi2`9RWcֺ3ߩ/!&I8Pt/{g[(:~ka@|U@p:pG _ 0ƫ}Ir5"ݽ;Sjz2kQNh<6J ^OצֹlFοu{ś;Ga.:s|7(1/]oC6\=xwY9_6"'}"=HD^] FwSmU? Tno+[jnЮU{B _t ceUf"޽؆uY Wp vZ08ԽGۡVzWk43ŭ늕< Eʲx/ 㙍kyϚ|峣_^0جo *3>ne}ޓz~|yo;sp7tӔsw7d}hUZ@p2g7:wkPz\ sJ$xXok}?_$ObĄߟٳIVN FC[|䠦nIpͷ"?cV>2Jg6Iq+9iD4K!mGT2=.(zj.hX/W7 YH 2)=IEuYK+r0f8Ā~l7/ ,Ȣ5v B ޝI$L$?Xphor.(QVQËF*5`U*AWmUUmjcm;VT@7]6s%Whc26%VڶUm;wwm%QO6Um(^T^녶 e2Ij6Fv^1-mg@q^6b1W5ttFr8V.,]c1[yۋOUGAvQ!Aw,YЀ5_Rݛ(rW9'VKQVLOoxEX>vxGS˿o6$7Bk66ѝOh?_dF/;0k.+\FN[V/oghg`68yAYaވwnv:(āʝ/搓!9P~1.ڨt88JAF"mqjme}d ˏ CjR,@ԑG_YI'<ڑ=%t`JAE$Z!B{?v jbkIP!~޽HcJ ?bs{:;LTQyG*C\b"J;mq]/K>ƙ`4B$)@rHN, |#dm|_~"wIpdꋅcAR[FTtլzWfoFF1یeU=c6~L:pC`ah xpV@#H۲7p,?f^;"rYO=9O)n /(i/WShaF T8ZP on^Ez Ψ8¶ݳc.:#z]kήz=n/G ܜU&(fcsY|7]Џ)s%jIFX)A_twԧ||iuhЍka]vn/^z[Ĕő%4CXqCOaCpʂTp+눯C #6pvǤzTmxK}.|ϳ݌y"D[%sw=b,ѩ6m>6[_oSTa͟ˮbǃ~sHaCEbh1UlgNbߚ*2_v|Wr9~~ &hKzi^HO`O}Du0p5+xb@@m\8fy@~I?|vgJfxe{2; RˏEzcz}5aV:\6;M!Ɖoǻ{ 茴w#y =DzGȦ:d]~j黧~ ջp˨"gG(#=P[\?Kќ>Y/GG]) \7ohHSOz3: Ԡ\M# ]\'uʿE05=J~O߫a}'i@Z&苁\EtEHt׾g`-#,ܧ'7$˟2xCҔ'[2Bl[euH " Mnm;Nd{ k7ZeX%B8$d-fgU8sjQ-u>@^(9CDb0!wa,ӣ9Շ_K MP9;kIU raШrk@?042ZbX'vu1[esGvxnLQ߄4X([tso1x;A{Tj8s[ Q3N1eW&Ɨ/whH|{pM @r@UjS@f5҄ hUhl2A 5 TkZkLk/, T$H`4`xnN6-)|IÕ/#PL(o`DEH6rLkY2&-&AĆ錦Qr6$01X~(1nɱ_0lW m\ki5)4A-/<&4RA0Q*K czkyeBI*Ӌva{ÿ:p,W L;x~ھ˗xKsB#yO zCTtYNzhR>}Qs0ָ <^TzS !fImv%e>HY´˟anz}Ϯ4GwSSd>.H (=Z?a/T"\l.n]yՖQ~\;[揟4 ͫWN+k5p/$<`we"?\sJCbfdC˞A;9 /n8E;Y(ܐa;lvt0yᷴX*qE@;&[u!FNg~կwG?Eky-^:jeS [pw]zqS5v9ӬXwEg``;$ doeiTZg6Yt/Pf7'*מ07n0ǷS|;]=٫6/6ct B~=]^J1;~fʹe]8"ops|wsn|mxxOۄڠgvwD؝YsW{zkß^ݗݢ4M{Q'`6w3 iԱ㟛Vxn[f&5_mZtnj;&3u[ V:mۣl{~BMs[i yg衞xZA#M:H#s"BxKpuww֎BHZg.<1ǢCьgGIRtI-*~B;,] z:mQrkգRշšŻ/{Xrѱ4XAv !56]k SrRVKj ؉nƯRݺ Fc[ \]_Gԝ O%3+p# gU*[eyOsQզW;d].<  2n27<3q~p/7쟙(gMzxRX ͛y047[xtLt t7ayzK#w~k2RC.9 F7SM:d;͜ "iD&u&zXcGkikd?뇷Lr;0nmsT K+y2L Kk"Wk&ݡ\(}&K=dmAe?H7C{ r3v{r0]̏ Zl=Eգ lvb!c(%;;}` u% X^ 6da>ɾVPQi ՇԿ0 /z1Y#ϊ!YQr:^T SYDknbMDfG #޹,UQc+="dNnZX=d6HBdUR k? (B?gEe55@\?m̰YUX b@BAIKśBOO4z6JWa$5sXP*T<_HoP;feyv v>7 ',.ma+z3O`> veߞzh^+{J}D|[ra?Rw|W?lx? F[s띛߮;PnY}e_C"x6g\}Dn%bX#ǻȄoeԗ" Q& 0^CJ@76F|dF9$\'pۣV&Pmx^ =7fp!vN."u ĺ*j7YftIN+}cZ3[i`D(MѴ&&Rl)RBE߹b\S>Z b]Zb(ZPjByH߱ޟU6bԭ`aQ~Y,1* 4X2t~ #Jx] aMS?_5G Qt:1 pw^Ύ=s k^IWwv!5K@ڀ#XR1|?`lOJyxov~="btu=U6{8ϣ۹{1uGׅ%E; ɩ`Z-gö"`@ <w*43h8A!ry/uJ㕮? ^Y-.t6y|œoǎ;R*N=<A7 t4#59lpkqs/D+f_55t{HAvO>|:n١CC%ժ!H%yptx2TܑX1,N.f_[ԛ\BL&!k@Le;,/C%AoO~uɸ$Oj0`;-RN!q^;?-t6&At4 zq6,jXJM)[rTa':Ւ!ɹU9 .! 8Ao SUA؀TYk`i Xp+ځA[$l_= .: Ʈ=&}D"_t`(4e ~u?4q6ғlGG?o>9A'dt=XKDNŜdG֔Cʋ!/StfAVVtsr}*`Eޕ'eE l-֍B:ǞNzNؽTgTK%>|v5*L.V*#f)GTpCSv{umJ?@ddD Lݜ#4`@'7nQ!T!EV60$J@'kw)n7;йWB۞b896Kq4Q;|: !Z`$xvV"/Z`ߙxo_D?(2(.m w: uo:%Ch,D` 832^Y'6;6X>oΘ9^0t[^W3h"e* h=G6l@!5F.L .7DU+%m}Ԕޫsߘ U ._^ٰdDz,D6xN8<&;Y/0MH_ qT# Ƞ>0#Hsjs^8>fb[HhL*| gk mۈȌ⪄)h,y*!< N _ j;|vUS"(/ⴖ[mV 5p~OxZ݅i;BeC{> $G\7kHh+rǜC@Ҩ靜TuX*h',vkEn "*DM&WqzD? ݸ4xZOlHO;z., 73%&xkE@ ¾~yP3NL yzד=XɺK&?`086d@Vsitj |ozL\Q]>md.Nq}i,/㔽19= EEU^{ :# Sᘥcᯎy Mqm{[ΝhL7sr%#u=%hot^-0~;9Mp#留$/AV{h(vrUYߐ6c6?\qDA2@5%6G8$e] ੳҷച騋҆GE_t^p.]Q;'ݖwQCêARAtZ;??v=J>7Yr=@?=RˈEӾpw"@$j8!z߃}^A)Ab QހRdn͑]û}ϫ@s9>^/yKn^XIEB$WmJpc8=W<5K}HY Cpw|%l ?}rv{F9ozwAŭZ<LIk[ޠKMKS:'/pM=N_$Mdyvf [tçkyS6†y@+|G"Z3AX@l^Ȭ*O6paɤwͰ2ޙį/ڔ\Cϩ"&?av# -i4ɊHVtnZJ5&R 1>zYöh{Ko[冗ЀWƂu5"bs%7pdlbaע \miTSPiK1,b#~VzV?J᧊Ԁ ghr@E5YnЁGsl"d WW56h**T/7?W?yꉍ##<ªWKߏxCG7 fS0w{@@t~ S !LF$}'܇A1Ӷ(ǠeR!@= HсD֞{ldP\A')_槯JMx[ q$'o35?D]>}3;?W/lWfq{U "bۓ1"rII0inF%RQ@$(PH)%Uɱ*NO{H({Q@ qd3k"Zf,}Z]W*cQ뇙Rt!DMɻhTEsX AwA @jz _n~~s__x!;ReN #d"NqW$/Ӗ?[vz~Miݝ~]L-.<_zU[k5^1ެWE _.t\LFT"`) :b"'N;tp=(R`G ,]$#h0z se[%;3%X",}߮|&%ϵ|8m݀OfJ1oiAંtzp͂v-l]^HN;ڇN6N W9 dF.]>+8cb4)NM@*R~"#erEGg 5 ntn7 `;ͧ;fccL}_twc@|p;,هLS0Ē @󷏟!JI#e~a#p%WnK8PN̑OȠz-=#B4+$PEC!Pe08& m|oGQ}$V jjݝVn Z{N/w˳X8XA~o|: <~+@?|ebh:j}Ƙ!vꖴ,vuqˢ2S mj6n|!{nLhC4FpQ@p]@U'}8F>bp6n?ά虶s|ՖL"ܶf`eeJYC< dJHxnOƶ6=Ahv~dѥ8Դ'ۍ;W'Pbx8^C~S!,%~?g 迹 ?ep+yW`V\9sI wM x-1H*`B&i GD:Ph|cg^z{um\FIڨ2)hf {k{JELGXzͻk':@/KL_:TDOJAaIT"y֛V#EPQI>=ImaB9 ,>B;.XP/E 04`XIcaJ )!-a4t@> +GʄJǙӋT7o׼\2$Y\ ΨY2zHHIH*c+\rs{p|eH?D{1ղO*g>sn!-ubw4̮?xnPnߜ`@&>T7ױVO?-"_Qhqbʏ ݳe~ia`8~~k븋Ԕ*eS6gZ0v^7o 1vika.[3Ih lC?yC]cRItODLV'k2L鿣u9f ť\Ɍi4,ݟMS~: OT2TBK"+>AΝ?=#Gd}جܜISD= ;<</r#g)=ž"PΔ*S 5GX&Ag%&⭔$\If"sڅ] :Rblb?a`OOdL39go䯇"[T,L 9/8Ks&SIlD~3Nw2v>|YL".зUOM=ڑXCA- P[I;^GbԈ 9A9sѕ H1 p +q~wiyݥ]OÖ,I #Dάxŷ#G0} ˄R)-ë͸Đ MpYCkm -ӛ ˾Y-\1O._/D)u$=ΩW ȵ|s Tf4cGsm;6vߚ9id4)3D Hfg <#z Z80Љj[ҥz$Ӛ0&d(Ta-֦oOYu`o ]\t8ޘfC̣Hr4^5.fe [ׄs Jhaї\fnһ 25S+Ytu wV)Y4#p30]zzzzՑiI&sG?ɡef@)yDNotN꼮jz]ٖ"?UTglL?Rɔst}KBHoFwn5 6aoIF!."Ya~] }J0?Lf,tx;6e /T<3Ys6KQTA2Ϲ+.lZ=çNCk^?^aWYwdwhcd%~w}5q8xUrzW9r,e_/Vf+귕\6hWDXS%>nbu[Lh񐬇mB ”ezP0v7۸ #x-v(MƢM HUw͉Lݵ- veTq 3[Ѧrt-WJ37h8e *h)8L P^K6<' !e'BMaՊ ,x%0nDFբfj뱣ЛV076(۽8~׸$8z}7E%%*kMu끥(Mt3&5Ќą!6^nFlx6Zue2A~~(%1{="f2W2@łȉ"tJ6L|=Q^͡&`}#\ðEaD4JT[E@yR"e H[-xð]*z2rX?je\%y4go|Dһ"!Rd w_cVݳ52( i̷g@T:^[!+ LOWz)z3g*KopV"l_Rdju l ~| Єմة▇jr3$8'NQ{@SPO`ahE *sdCyLo cHW*!u }eaWE]/g(̈́S<"Ν4($!FAa%%F$Jh;l.oᖞUdzfB7Όʍ"@rtk+;'3 Wv;c`8rf5+gàtu;ɥ +S@ ,p rn##hp\%.lw\}a@sp =_t~7,d vwisa[*9|S79٥E  ^=fOKxʥߛUanjϱT +W_kiak ͟_S[߇y67u"ȬnPVh%YyݓWfx_ROUQuBT(YA%@ @s|\EAlx,75GgQra83cɀ 4. }_*aaore8-'-h D Ua(ʣ(F8@+ӞGN8pȾ^nc5x'GFef̗ѓkN0px@9WCLBmr]ugiɓ *+ZKC`tҬED;nwه'5Z{:\ڬ I@uG j-NwvxmemT&zIY䖬e;t>Xڇ ԉw`ad:|n:S0QSA-0!:Yn^2q2&3 *~I95]ѭUd؅hŹOO|{?Q=r,!$^bORepߟ7VvZl`دl,N@ZVJZ3ìC#:=E"h]dV1p= h-a&(, A .DT\WbaA*[!BSn"^Y̋ 闿iv廞!ìX̨ JˊcM;E^"Zd?NZ53+?FV d fz*>rEr}JRCD|-͗9仁̻wI^{ ybQ .D ͨ?8u*~m)亦im:Rbh#,xGlmۻbtlOv LZAvͱ /$d4qVj}U]Rr35Q˓f+gX1pF_O_zH?C Ω'($^k^5ac'XJ#أXGo ¶צ;9t$r/ ^TUcơ)]\ qhЖ:8ɘ-5">^siSC~ҿ͏=5 F: `؉Gh"Z/Z|HX{V{) 'K%DI> tF>san˜j*8b>. ī!bg zRd"~6gBl>,H"+sq¨_k@?ɷRdv|9Gg4f;N87ZaxrL/Kz@LL? ρqyPdZ[$8{Ia2Yˏ_+it[>Y~ihXji.s]dvPVxWj޼4:Vw}+fߚƦM;]Vmt_etɡDh>Mx'2]զmWyθ;l Ŝ,! X~َ2$`qrͿB=0? ]ͣG68ǢuwV^Y?B4a u ں0pgY._74-Z->}'&4ȕN˛CŧXvI*̄fļ!NlSL9 Mm0!ihb`jNjD?f~KݛUQ8xlyƧ4'\mNkuUpt5QIwѽ-rg9A!ӺEb_#A,FIo״JX(8%rW镸dh !Z+%j!ccSL!L)Y dMHy0-":\Qfb !ȇu{E5f <8R~&Kz|_RrvV]d>; L.Gj?⒌bUvNn\G !cjA%g1!(û1 HPiH][o.'_OT?XU_`MGxq9TXL52_Ůx&N$3]tF bL1韇_ _.LR0z \$Vw __\ɷ%f(QC3808)4rb6F/DAG;|)m[Э'#ˇř6kݴ!XD ÃjC 0\,=Oe<}T rAw:;NlםǡcKc꽑U6 my"c_C@Gr ҭ8AQ>NOmet0h״LI/;6؝0j#.7,0r4(:X LR︢{DFmdU %Kmw2k|fiyFq >5_.k}5 %+<}">u?H o'ߍX;ZyM([f4R GFGkF"07g鼖pYCk~l37Hq 'A2$=Pmjd@:kr '҉k+a~dcV95DiHcStaVA*H{R{$F.P[UůŔrDd!D,-=F;jVK0ß:JZoe]3L! d8} ~8?f?`X28ͼJ-Tkk eȗ1Hv`@< P ЕIm$$r'u.մ][77<@GF۾ Y %(e_?6[`uȾג?MU|fy vn˲^gUS* D/ ^o / =T$%P%O@T{=›igZ MSth1ӈ#2å:ޚ>>Rh/b7 b[DZU[G/'Y҉Y]|+Pr+6 YAC!jDG!կSݾP^AYOhazh6sSv2tiG|};%b +@>{l ,hI82nߔ?!㙹ZEw0$= r=R̙#U- Կ0AYb1/4H U&|ڤX0k*1ڬ njaK&c:6}cqYE"xT@Zy{e\4`ZL(Rͭ )jGI7(Vx樚,%wp4rRl8r7q4ѳtݹۛ8ygXJ z&{=~hIH(a+]nC~5 Z}.|(Hۏc}M- t ^e2E20d [ZYSg퀂5 ku,;~;3Ol}z8}&E\e7]i?Iloe7Ici]o?Jۃ\0HǦ˧B[R6xBk`}6 r%dw)291rLˣ'ac҉9N3Ū,sL.\¬[r(e)S{P@9e$!=Iďٺ)jubUnW>Wῢ77H\U4`QbKw8q8tG tTflc?CueAQ5QK?p BɄC =_dֶQZ<ݷ_S2a[Iޡ&^ϗZaW:`|-=ik4ϣ?bL؅/o@@ނeFlWNBZ @K"3xCIڛQJ9B{Nt؛;&^xN$̈wהw:37K'b{2:=k(BZ^>oQN*M\ 6aPV?Io~^1l"EU q#p-*c־<4r0A{öŹvz&G%?ZV#l3۸oFk[?>}<N,U9~/jh*fSd]6L*Zࠎ釈aFCkR}e`t۪bJ/hk3`AȲjDSkР_AxKGW3PO u.ƌۚ|a4n/05-ioS="51U0&uHmKԬE#xf%'A+/qt(X![GUM?uO9; s4:'c>Y0]+8$}(ox0P{$?>^X{"'gooĞ Սzչz;17 }uӞֈ_vjmWlX"HE|$y f``%6dtGNd)q~'tuyT ߍ-h-(&Y$Ly` ] r)TVw5gGIvWn("M>~sAj *T=KmmIfr3ێ5Y"}b pO*l,b{Ru,ۗQh'B$uc%>zj/b`x|S5_X];vC$*M`=x+)X1BBsܴxDx9&4+Lк»-[`,Vv1X1a. iyWCɍE'7o11=_HVbGgb Z2փa*kgA"0&©)`Ky qm^{Z@#YOJz>>t`ƞiB/3Q# NK}FC_h>uAlXԠo\ː2Dj0݌|8"\msaJ:ZC@4y"&wd፯# D槕}a~u5G=j*gYq_/ڪ z"5)J3#n;wcQ": wUCdдTJàRrٱS}X??"졉@>ţp{ó=7BvX u}젿/i HS泸G| yI*wzknG ,b8Ȕ<==} lWI ZV^ x!Ac).?LL64fH9X1EtӨO2Q )+W Tdc No磎 /F!JTs^LwƊ{cc 䇦:mfLQfk0~?d> %9A`c q|PV/) r)MWXl}k۽ :]7Ⲥ|L+9Ki&seəH!94R'nD`R(QAJ,%El/9d' Eo.ʥUQhST:#1QdA7 > b-d(,^@ZoXcݫo)B#TA Ԍ&O(u_~n]ْv́ܯj&%2w֓_(;bnh0ح9z'b" Y汨S{)J"^uZ*N"u}#Aв%2#C|ogf=;f(;7nemf"̥`%J0 aCcwJ_@j'PAJkou5r4ށ͠ '^F: c>oIXľI[Lu0PhsN2~"Y% X,m̏ 1!cT$]4)RE 8 cu]%dF^#X"z\|S(7iN. Wnj>LqAgXy~AvtGXq4ߊ :BdC]xFhyW{Ґ;ao$kJB,2 {T j?H X\XDiLDL* 8ppfJX9gf,wh gFqH@,C8ڈq˪) ǣ̨whD-CjBE~͕7=WP{WG:J uY!`:`T}HB\Q`E'Ght (7W~ZD%B`sH^ꎹtn#eoWr `2nr/xtlMեN[~{vmCr FV  {M; mI-b5W ^즠X'C.йF. $0MւΘ9v>:!a°[o *DP ZlM &w 7Rh$m@8~7\S<]QطSJSٱdrYh fNDUD>b{{7V".N\ h;@ZERq^Wr^ ͿƖM_|pҖ'?U&;-,#ܨoPF;cS8~z,/l:Ci !Ӝ@29pW8T2l n…,_~ّWOUk lsӕsQpXc$St=EX1i]Ruk4y&1# #4BwkB(s8S<#xT7:B1&qy;u0RUzEH/| VÉ4qܗs47Щ.$aqkC: IϷݒwe">-z< Q% 跱y3snQ7S~LRl^C p;Am'&U{wXiJ8a_>7fdgڊv޲co# x(I(/˴5DZq'.`Re؎'HGX7Y͑i4wvD\zW,giIa].sNB[3O=[mjNELS0]ɍx H4 )ʯg+]DDCA"$I] wþX[n-%oOQM}:)1yeSD0qSO;bv&2N{r1ěwg8uu^Hk\Ҭw=qsP-ÇYӋ&+{YYX:~OYcCq]7GW UTjw޶zb?u!ZMcsn43o[C Vv_&MB9WEOFgl RĻ$dXN?>ϛpvƫh`; v=+;}KcLb NaF M L"u/ͽvZu;a7-p uTq3$W샋G[4CYKVp;_S^9~4% .!e"Ȳ,QH~ocydcdG gΡ1 FnX1\ɒP᳖Y,3Fakhs`s0EvzGBfsAڀH`dE( ]e6pu" ;~֗9 aQzY0| hiy`Ƴ,6?Ǟ8tn;dsv(ZM-Bc,Vĸ(@Nc'=!h_iv[ $yAPͦd jZ<}1l``c|M{&-MGzh>Ke|[cY9>WJXEt==~eFax'ӊًnTQ|ԐzvL[vl7OUP0 )<"$1&ʏ8ںدeBے0 С^>{zqwhOutkTTSsQ&&82<PVJ<$-ޝjz5EώyE o| %ң4Sda3ո+CG,rBǃoAy^ ,^^a9OQӱebΑR S>Wֿo8!>Qws%}=Gc!! f]1 jD.cyB7(ѢP^r\`>\O,&e8ݫt 4t6@DyFOvvK'AI~MD"byhK]EBWh 6`:ݦ׹zCDխרx_J;B/-bb߻N΁q۲4S^BZ8= X4%x sa|#zv⃛ʊ#¥6f  .UG#9CkwN4A(\Di񍛽sM!L`BۮaB(Ui;cGR!uB8]N29JGY> 7+"i=6:dG.9/8I9ѣS~e ؒOɋon)Ah6SHxi,%ӗ1gj){99oh>_s8t:npSnY7[L$Ր4Ρ^/E͡иEw-b5Es~Ai7( @nup#]բ}|'j') 7`Ћ0CO2IAiպ!"aC.:K(Pbj]3cۧ߳։5Uv1Rg$zE4@(*34/A R *'PI\ܼ R]J@"gW5: oz)*$m)UlM#櫱6ֻ{z[оZ&BgtzV6 Ń|n6L՞pv I',k؎ciBL4͉O'%$,Z n߸Rfz6n4~ :.R$2M5iʹMjC3|ms5WΘ@]w:>昛D<6)t,<'|o׶fqέzӚAUlЍ"ad0K Hxi8. ~CBpY\48YK/,BXzQ\|͗X3;6s8VE]TnUr"59E'jĉX32*0AQVWv}ag}"m1n\fR`F&ܮr'$OHQcP`z_GWqMX]l2lH^㜝3bo㨁${gHoNğ٧_3B*YG5+ʅ,LXJ, Aԟ`㐟~qSAQ45mUzT,J $a85G^{QRNX @ˉkkjgg|ϩHx(Da^g}u}zz7whѯ#Ʉ͌')CdW/GW3}^ >Ocv!L9(2QS&8 ca3 WCR9/Bƒ2QMh m+rDB xsV9CH{%bxh/Iy^녕 ~BG3g\!C/0u#DŽ6]K96nAM~Ox=XA5yvy+(GԧX.f IoU4z棸?ƞ>Jn/]LT dj5C0}u!vi@ Nd6g2 W=Ǿ1ݚRRAϒR1TyJyj{TGμGA  ]qjg*$[,uz酄tpT}L88J^`A:0AvB$X8vx)ֲt=wOW0ȣjMgFlN9u(!}S̶0~+dxZiMAk9=qO iztQo "M Dhpq/Q\ɯGq!U^{ɿ賄Ws ‰C~}Q./>Sh>NM_FaK-3S= ?u;pL~*=ʢ̷,}G<.hhkL}UJPɱp=!"_j[gJL`ByP<Ǽ|*Pqξ(\T|^ͫ #`6^s(EReP09nfs$5Lbh5U66/jo\k}nb}{9JKUl/{]xyk8qvp|Kh^?ݮ?]?wwiu`{S7̡'H |xƳ}МI RF ~Ý꼼;}׎?4?8dV著3NNP1{7=i3)&\}N$,f HS}]u"u߿ݿϩCqďI@0s@. csq}h`Br |0w6Oz[XZHүN] @z\e~#;y>n⠳MKҤwaٿ췾2lƒf>7,iWQ0ڠ]sEBMR1Kc&/i0ke⹰!_-nHF#c:(k@EBq\:.$˂>҆;9BŞ~޳(I0/(HPŜB -owk\bwkgQXf?6PNbB!Tx$/ ~jpX;kCTLpgK=-ϦγZam.xS߸1)Q;ݭp:[]+]C'F"ΥWƋu]{ -ꝗ~WHrx&mͯfGt - ?&[۵ ^.\VoZgo ~, o{Ox/e~MeP/uE'g88t#;_J3hP %BNTg$(dsRn1=N֠, W8&/;.'FwE:UD8\mcRe^ ]ξ˸.kfD#nm =§ko $ )页)&".;{W&㜾'`~z@9T8fgKS\w|8L|PТnQ 'N!8yatCJ (Ğ0'WPUTiUfG=Rti+@;#z2h8.4_jJAR'״C7)~8uB=evw;O7d2nG7lf՘s9x0,5fkz"ѭ`kSC &!@3 J;c4KrV' z/ĝImǢ3̽[ٚD: r ns`ۇSXc2$77NWsx֠D~UkTT:lr7b 5Q5ZkVk<,,T3]Gp[:kҤ_l(?ۘ}MxWaA,#˛1c\$JCo'=s˄YNnYl%AĥC;=<[pϘC \ 5&j:]-W,A|tB#xW{tz'8`{,` Zr wu©D|? 墎Bn[stߏ=? ܞc/0C!&~?ϬP e/1ڸ냿9 kB~) v;UYz޼YIÛV[=d_GKᬨf̹j] lEԨ߶Ums؈O/ZNúg.hjm{qqGD~Yo8&9fqN\RhɔorC8U`#yqœ9rKr Z ծIOŻK6h/8ƷQh mM b1;6PeDn+uh3uoFN"Q4.8t S_o;E]T<v@Jr.xS!1WP2aZ&.Mv70=X1bD$FJ1ŧS+B==1$lapQ:, : $*ˬ̾uXE8O-B:LܭVMPN1zeZ{ô%[dI`IM 3oʞD4M* WWwШrwU;;֚45wާF)B}>}LsF0<z/F;NIkg&xs,:ɫ~Ɖ8yNu/$_XIgku僻#Opvto?7 bTOB@u(,5ca8+s*;8N[WqQ1:ZA Е"\60ڪi kHݶ"&{ pc~ye8~] YZ0vmm.\4e19gnbWkxIQ ,o_=4#(՝hrh1TY *\P?xeZ<|3Z)?8)fɐ2ɗY9$7L 0 &LDygmꡉu}ޡ foDmb@nҼ\٩vѪc웃8e9v(W#Z-] ɔVI%5.8o`M \8w@H?퐗;sĈkq;=, w'8."&c66_{gܰ z d "c*rDVt8"Q Us?3t∎g]ոb Y(i~UjyOd)VLyf)OÆ3U/>+ ]'X"cYMdJ*9z.L4՞ ivaEz׻qub Aa3ǛQ_,нיȐf-x{+t{ѵ毤?N 2RM`PSGAǑk$gzJlIVbJ b!Σ 9]J L&;uҷ*[g,0D+E~wC>>RzKi_{.2An}ȍ@3  B5\s 5Qɾ;})Fez&{W8>C NUw1MLrE0e (>D1u'nA+wevuƌ#9V3.4.m -ymԸdN*<*<:+?MLNCaL@iV~u?v:YeWn!Dz^e+iU' k|WӿώB} zsxw 6fnpM#.ξdFw5 05v|FQ0cއ.Pd= :9]vXԹs+IR/ﳲN 臚 B$}GIJ|#rt[?:F?cT*y{h?y18PӰj5*6<Ϸk_'ߢOܴ]t"tB~A!EAČ6b9 }7rv0Z҂Ii T2A҃w<6IDN5E9 /jo;۲d( &rTqdm{fJtͿNVc:p^(3o웄H!݅, X3!P3ʁk^Et쪡c, =Du9z)st8*De[55v/7K7)W Sc6!c>"0l/"X5#cѭL;M{yk IyZ$PA3H'^xBԅޥAxهa/wv!za5w΅VAQS8ϟ(|KwZ݋;3MGiɎ)삱P"[[z{l:%a& kwϫm1ӧq$vG+dUr"ns p6Dt&zz/smL1t<_e^Sk|5"  D Us/{~AE[2rz]:;/kGrF-:H@QE2$b6 $th"G9gdU8l(@JŅZ uL<UBn7HvG|FXٔ7c$-va<ۙ!*YۼsϷ.vsZ.zz!rQX.MBI?fihC'>vmԐ G-^N0 "$Bicm+c״|h$?;s`W"(G\ :gJۺ|*]bԍٽU[(=[by>?'ٚĈ^5wUJ` ejEl$_erT;v)U9>Th_^H#iۯH]b$G0@>|R$?'̮9^.- Dë5k1"b>|Q]X쾿'oӬh3.u<ۖM?{&$2w <i-TM#jdPA =&kL10\6AEYlCj> /@U f2tUw?挆9Dou{J#'+&CNT;Oh rM^/h`#ž~4C&u0mJhs4IZԟeCfJl6?5ybrޅq H]gR 7b?'ܷɾ{ ;F\uĜC1Pun&KF*d2bre·Y+-"^IpI&]tR{#GwF,ڰKd"8fɐ-0ȈAA0s+eg(?R;~JLcS*T=)׮ȑ{DL^і ¼u8E&Ru&<.`C8E=S ^ @ip|?⓻yY%Zb2?#:φկi+ ]99Z]_`JfϨlm `?SrF~#>pвۃ:D>=_'Jv^[zlmk\l9&̗KR/C| M"" QB:?W,lpb_ Lf$'͎1}_@0rpv_×hrAut^+.WEulQG^P]3C Vj?1Q$JT+ `oïLJӟqLP4/ M8t/MbDhH"N:4LF1D'~ D UR1%!85[u \?;P* } R0 DN?_'o=WAMSNGXZ3E; Mop@$o()P ~]~F,C a(@vS%(ߗLAJa6+k4]'(ڏ,(_~>[GMc/쇎7RQY* A:.\p>`v@%/Y(=P5ӫ­ 1R&p~E&A tk^?Ow-U}ɯ.T)JH_NOkwCoQ4tB'J>N)B)Q K0Q0=7!IB6iSE) R!0-5?_=Ωi-'t?!.@:۽|R+p>m̞[}%΍僿v!,p`1S=\\;=Z}=`)w>_/o('bX Tד8Ll;^:5\;'c_TdGPjq6/,7S3P'ƵSHatbnp+GOhDX&k7OQT_S)` OzZ-Qd<D * @{/^@~OM?L'fۿ/ b}fsa?_.~6}2Շdj3= G=|~2n]{׍pwƯ{Bo' ;Au㩹nT!u9}E_Fߏ*;n/Ca׶~]>\o6]xcף FF?g>y9jweݾ{ s]1/Y<侺÷`~.)Cj8۫9G~{`$(!q_ʚq c-R<8siRY![˼jw0؝fhNup>7BaBF- OMXehB)~p{CGS?ϟǪc ??M xo7g~?7c|wS:}2t0 b*}ԟSZ6" : Åtmq#ZrtAf3PQ^~Y>TJ9"Ä%E]?j,1o 94x-,Ez?/5LV@ZCxxQa_;K5<^R1 =&!'?KZw PP+@wG:#dic}fv$HЀPA. M[a+my_Om.ݾwAd;m.金љ]Ͼ3mR|Mc0^z+Pv }ûuy^smz}@o\>oRfM#]|/㛳|,xW;P:}ϲ=p|9&74u'l>{G5ϫ ~fcb|)Ĝ s 5j_6*>+)_:'|7k/Z*ಽ^<|^d~2YεOcqzm PFz3TwzS%Xe2YS7 U![|})~5#sGe."$ťID;R8C$cEAm T΄e> ^e1pgh{㨣4c7iW D_VwqCz0Kwn E &%uGdz_8X՚?rN}'#.pv~,ø$hJY1ykz: ڟ8':>*I99p#g! u7[_ͪO7 ,n=U0+ݿv*#eFqP CD:cg۩&f~?_2Fvb2_(AMT#UA/7wۮ6t`+ణ,$qsl7dO/ !JXm8~IVjQȣYѮ jumt1Íp~nSy۔*sm6ҞȎyTpZ7%;l2z ϯxNV-W08SP /EF9 (#yވ9i\l[ez{+P(|$],vWvc./şux&0cF*|#tJr+ٳs~yO`!)MNm?[ F\(d+`)o/P/L1"h`)Ұ!-j,+eC7$}~ C7_Hj@A 7~JxEx@ïe}7AG <2`LA%~ 0^h~nFؽ?FO8}HͷŶT|YpGK|RUP.isc&‚d|OZ`0WÙ9~MMD &j1#ez cJpԃ^F5o9hx~Bwf@/<?КL^^AoHL@Qq*9P qiM:q[zsyAuUQ m-D >ibL2gFN)P` a 1BŲ;؜OaȄ]a57-@Md, ГҨnȦӋcʺw&~[|23x3qn,=@uԡ~+'\Ko?@n>l[J32I`Q޷FAGMU{"NyB cq& R\t7m_]󇯇ჷ ߉c_t-^ T ¦8PƓBBmir"i&}:YYd|P~ἐl rE>qpI ᆎlTj>:igs97}M`BM:wF nޜJϐg! #ж^r0GZ<3GSMߞ @(yDӳ?,~@%id-{ށlaJ{5Hi@7\= ~81L,$G'6G +l霁}J,  QbرUjɉ)p=uM {ŵ7^SHzm9-ڽ}5h3W'x(ARF1z(\Y#mSdzV٣2ˆ^ g=:–E.\}o};{ ]&U.Wsn>~}Sb4>|l_ GQdL'Q\D<݌mWhYķ \HMٱݚC{Ѹhlu/Gq^ dU!E$AnPKzNo_w~}hLk#@Qp*|4Ďqv}:٪@FxoXRF,ekG7f?J~-28\NB9t xr.@çCm!U<0*.F5z#'B<4"@t'T@N);n4 ,`X'R^)k Ōn)es}UIv^I12JRfаu-5߶_ӳ?9J#ޞUv#KL(8GLCh:K8M{\MËo% ]ٸGB?aFh K3A!Z+zBFBxDZ԰D<?z]%2I'uˣ_(f%pf\Djݗ*=w4dWkYknpfcK&e:J9U{71ku|Q5*jf Y9  5Vebi(h,L]>YeV+L: \HI՞}21Ww6sR-e0( 9RΫԶjҶ͏Ne6piٮTjJtqRƎn~1,׾LӠ~\Թw,GG/.ΘF*NFtغtzW8l-!V[&!`PD[m\Fd= NB*HI-9| C>9/<5פzpʙvgruja-vL4l )ȷ3‡L3Xlu-V6n{Þk N1(n\e}pPԁ#i'_ir?|:,_bX&gh)3~Ȇ$ֹQbJ&ekˌUT[!l8aV%=^p JF J0C-¦&T%QؙPc ޷o[okVF͹Mm 4O SJrvYTRˌq}iO)~uze+L,u(fP0Yw I*#|cbm:K=8د9Q(1APS܎f)Y(Yԩ+:Rj7X7kƭ%O\ZVB=8Rx8t?G³e iDUC )STvTߟv;&d%tj}R YaQ_m*eBZ՜bhd,'KytH/:E_|pq 0\ׅr[HH& |"ln04-t׾N[u8Xqh9jL. n|ogQSSCdn"(:n+ld{x.)LBϣ_L"M?G3`fl?)he=4쯌Xf䪢!?ї4L] Y^_r?g!ڸ wsa~f үAA@hejrBB0;`@Z'"Х5U0 1p Vdsw^/W=ߖ|öOd"T.|>X 6TcNA3{gahXv͋ȄN.MϏ0 Vsng-o&g+GET1|Xa52UB~,\-xѱQt<$`wDPqlk4b.uV+GLB( MJ/9VAqTL/I\7LI`jn $}&ϡpH8ka$CbI~D`R#(xrIpTeJ<93oA!|%;-agr6L=RAsϚF}Q)Z tk5@k A~:ȂQ;! =3'*B#A 1 C =tO q䇢p$|6נArw;7m#:-=rv9IT Q^|#oOٝ rX3H &JasdV\ @*6<!AЭjmHѱlHsL&ng8o#mJ`׬Re  @+w$U0"ÇPASl-]U2̆xo>x:@$`rRtֹѽDiFi]8咹uM|/Yxí-Pa٧*k`4QLwq%3ALk#pu^ 6a&Ș3m']bFjJn=""T^`(&wtԃH)}XP$qO;gZ>g,O{-QeHFbϧ¾vՆ_O Db@A cjAO ~0}!!@#{9n]yd&,x80$H]; ofF>H.:'v35MЉ~Qo]+cF^9ɌnmkcoG~x@?IAPa$hտ]^0I$r/eGP]j_w U,)㓡XX#t^t*[l[vkF%qcvVf t'<"!)ZaVSn(D-V}VXs tK#bVBe+-ZؙҦUv&PC+3J); [B\h{b5 O<ƋHC`s[9dN7D#j6V l5 4"ÿn9T(58/0mmq%%ijfk)5BXVSȳb«@$ɽ&5!Zsd_[cet'D:L݁0;JAP$/#ڋ 뮠iLQ[8KHA9M65LPl1P$ɕ35;K>8u8\+wvþ='k<qAxz~K\>u{z]u5j6ok.Tw} iBQ\?^LfuRF_c4ڑtMddN!W#ۍ)s`Aۛ)PgT6hߢz  U٩oaUdwoj/G E:"+'%=ǖ1u.R;Ƿ̭0EуkP@m<4r;[h.]߻[ M"i`P 8(ĝI_aᢕ1!L9N9J0X)Э#+<75՗c HH#Բ/-PxBib~MӬԴ-ӓ{cuڧu[9R c[3vk+1yю0x|=F`Gq4CoC%9H:׈iX榅9%;_NNkNFq $ ;䑶6/u/F,C.VxWeQ5*̖ ffш7(笪;-g^pwkjFZ;a iBQ &%pAɟ?Wa;n˝sD3&k롔5 zicӷM4jRG V"l5 ft-?O C{k'rSOb;L hu{4xK.wXĝ)8*n"KJ BA4Ci `qC=6f"؂%;@@L3e_Mw Q6 ym1\FjrˑU,+j m#ARb%|7_)c#U}bR(mۄSLf&iD.rA͈DA 7\#BKgt*碋dO*c].Y.۹Ǎ,z͚z qnrŸ:Qe Zr^ֿ b~udZ,4?*6O'cV=C(A98d>eCQ@OnAvy aL= 77}SOQhq}טZY`"%el% 6FXjkyu|G]nN>B+ #sNv(T@A@/E0ij?{V{?eʫO0)&ݕ/U?{;0US~ǖo& '89(!lnfo H`~h0~3x^e{$!@5yA#rT}$d~.vۜn Ṹ@#*ҿ]l/z!UDn;T]Xb͞ASr^z?̸5]$˫` @'"'d܁o{цtIeR#^n6D7cm&ISyLCn !+&hl ]yy3'U^p5nM'^5Tb:Aݮ,'D*T=ިN(56O6:좙T8(AQSg(H1a/ vM\@ݜ3:$=WnoSqY$9302 POeF,9PU ""'_K CPܻStSՈp[F!D+B|9  wZ(ڼp.P *(*)(((j(j(j)*AEJ*ۗF3M=|6Yk 0؄{%cm0zqhXo w g,ʿ8Bq&FlwHfgP8t7r>}%as74za/{j7K 0[x<7t7ɰ] SUBT A4-G؆U\!'FHC#fD$=h2<<nGO1p[9 i,xh[xɤJ.>;geg4@ h.94 @w ݅Ӯݒχ,ʛPz$,wɾADC1uZciZ&؁Ti"?Հ Jj$DhH$RB PERZ:.JBEV b!y,-B5m0U1# o8($=Q\Zda"0$_COMvM4 L{a L 3`IWVfIrJb P4Ϸ-P>]~6a>_^}[~dCI%@hN{[#"1HSpYDJ @ E ' mp 8g*ߗr' m_N!O:oّ~:@9 +eM\29!y}y#s6I׾co򿦪,O3[8TenrxHO#vL̺Ӹ{q9ڒIqg|I![S:?ӗh:俯uiŘGx[|@ rHXd(9%" /~'׎6IHCc6 C[W%bqi$Jfs`/&^c"Ǥn;60T =$b@EAkmW#k>k(\!EJ-BeICnw Mm&u:U8Da-G;.gfh3cڴ7yo<ӧƅi#c1~FcvT Ʃ 3pOGږ-sYBREl e/i@.qأR1DhVL_Zg ( 8Rh *r)fCcy"b7AdB#."a{-t0?ۅd2Ta.Rb36K2"~7~T0LF=p/sf DAU5b<\ߣ|'V˜r3xH_ ݺ  N-̾օIܘ[4*)F!Wf0xλI*yڳ/~oβf9IY^ .򂒅SܹB9+OOaCS3=gGCG[t\w,L1fwcrh5%2*,{OM%x6s(@ԣicg3/xOryPQAT&I?y^O?DDMFV^QiDHBQr?JM3!?7Fi|A#~5? JR>P'Jqn’low6@j(q_:b 5Ο|Ŝ6"J1axs-]Gùf<G[H+J+=eO[7'=%N6 %Ae>:|όOx .H@ XYTzAAB 94}QH@2)z,$ CCٷKPe7)_3orbPLC@ba(v/ 'A,i(!e1B&M0sPHiD6$]8VX8\T@U\B|׼|X?e7s< @!MvE:<g  ~/ї/\x=b3M4j\zf8nҗ~ٞ7j4)(.@)!+#֝1+lsQh@ ~-g̮GςWLz0<{4PX&јb,gא?5xx5O=Βߓnz0Wlfs H[' A!0ֿ5"AzIb~ĝeSdW"u]MT;eÙ[G#% pA7Q߷:xkgHZa"A0(^%9|yF,5m|$Ǘfq%T U޻1_Y$\{AX(i@l-dAG1~`HS}utֈ\Hcax,P薒f3 FӦֿd pl :R.,dtac|_ڶHmO^+QhY\tm(6'vIICײP8(ω|Qz:t_}k !DĚpap?֬^'1Aτ/xI)(@r-Πhma&!pfDGDž[|TQ#y=Y.oy3Y 4E#u -G+rZ0ɴqďYJ×8f,qLL&,@3!HX?u|G3]]wȧn6l}{l0*'*ї)@5 |׶U!yy+. z{Sd) cABCGP^@)TzGg*С>˟ riPMی~eu`ොJdZ,x@f +&cw['OסUͻ 5<)5A[.ۓ>U8t{vrvo@&RD"H{s O<|S;*4L7,3_4 "{q8Ḓ2X|Gxg7‘h +뺛""M N6ةS~€¼O7HaޣN@ZW?c{QTjQ%o $>%LNy>fNO? D!X8Gz9 -素$LXG\c&aeP rӿ'uu ~.BZbps9g񃫈P1{9a2:hqidvr,$iJDLĂ!%۱w;ӿφ#ib#h4_=wRT) ETs#B48LT_`A3%0bX5InɆ1Sm"oDA!,ZlGs׎ُCԋ'k )8? B?MT?oPZXH>=X덈>w¿7ed@GP9B:ϯk^D[ky_e毖VP@t]瓻ڢn=d/y =9f3)Zp,nKvtdJpOͣJ/OURG{N?Yz~ҧ\&-ci6LyG )E.`,Dxl3">L&skMP{z0&{?Ouv4muf\ bIu-:}NgH>#xBf% $Yz<g#d}|7BJ;3V/W~A޲ ]_jp * @TEÍth_7K `(T,4EE?p▐kRhn/hM(E)VJ]aǘ;^V5ٳp_5.Ʊ>3uv0U[1|5@IU̟S KCX2z04_1>ϲ"jAݝ٦zW*B(%kPl9=ߡp$Ʉ|H_12[$ІOp`- tbJ3hD)}x7MaOˡٴmzԔ]Fz7lm;!<"#6J^BFhrA`ԭgo"-"Sw|Vհ@7<DDws~˩(˶[O[.xca}9W~Ȉ5, &]jh$$m7gWi!O5st*MeJq{ph_#kYcYzj,dP)7=m4g}ir<.>X16vo:)Fc3[f_o~Qߣ$װwǩFQb DDz