aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/template/base.php
blob: d502aceab89281743fcb77c42516c62b354fd744 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

namespace phpbb\template;

abstract class base implements template
{
	/**
	* Template context.
	* Stores template data used during template rendering.
	*
	* @var \phpbb\template\context
	*/
	protected $context;

	/**
	* Array of filenames assigned to set_filenames
	*
	* @var array
	*/
	protected $filenames = array();

	/**
	* {@inheritdoc}
	*/
	public function set_filenames(array $filename_array)
	{
		$this->filenames = array_merge($this->filenames, $filename_array);

		return $this;
	}

	/**
	* Get a filename from the handle
	*
	* @param string $handle
	* @return string
	*/
	protected function get_filename_from_handle($handle)
	{
		return (isset($this->filenames[$handle])) ? $this->filenames[$handle] : $handle;
	}

	/**
	* {@inheritdoc}
	*/
	public function destroy()
	{
		$this->context->clear();

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function destroy_block_vars($blockname)
	{
		$this->context->destroy_block_vars($blockname);

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function assign_vars(array $vararray)
	{
		foreach ($vararray as $key => $val)
		{
			$this->assign_var($key, $val);
		}

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function assign_var($varname, $varval)
	{
		$this->context->assign_var($varname, $varval);

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function append_var($varname, $varval)
	{
		$this->context->append_var($varname, $varval);

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function retrieve_vars(array $vararray)
	{
		$result = array();
		foreach ($vararray as $varname)
		{
			$result[$varname] = $this->retrieve_var($varname);
		}
		return $result;
	}

	/**
	* {@inheritdoc}
	*/
	public function retrieve_var($varname)
	{
		return $this->context->retrieve_var($varname);
	}

	/**
	* {@inheritdoc}
	*/
	public function assign_block_vars($blockname, array $vararray)
	{
		$this->context->assign_block_vars($blockname, $vararray);

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function assign_block_vars_array($blockname, array $block_vars_array)
	{
		$this->context->assign_block_vars_array($blockname, $block_vars_array);

		return $this;
	}

	/**
	* {@inheritdoc}
	*/
	public function retrieve_block_vars($blockname, array $vararray)
	{
		return $this->context->retrieve_block_vars($blockname, $vararray);
	}

	/**
	* {@inheritdoc}
	*/
	public function alter_block_array($blockname, array $vararray, $key = false, $mode = 'insert')
	{
		return $this->context->alter_block_array($blockname, $vararray, $key, $mode);
	}

	/**
	* {@inheritdoc}
	*/
	public function find_key_index($blockname, $key)
	{
		return $this->context->find_key_index($blockname, $key);
	}

	/**
	* Calls hook if any is defined.
	*
	* @param string $handle Template handle being displayed.
	* @param string $method Method name of the caller.
	*/
	protected function call_hook($handle, $method)
	{
		global $phpbb_hook;

		if (!empty($phpbb_hook) && $phpbb_hook->call_hook(array('template', $method), $handle, $this))
		{
			if ($phpbb_hook->hook_return(array('template', $method)))
			{
				$result = $phpbb_hook->hook_return_result(array('template', $method));
				return array($result);
			}
		}

		return false;
	}
}
ý2^7+cj&tsSM vI&Fk8];=&Tt޴~9္^\X(kӅq#`<@MoS.#2Mcvfoʒqշ!YnmTUJ͎e>6VgfYҵp0 ;}odLse:ȬܘP?le^دUY=C٘BmpܩMo'a]mdV-ѐVac=c 63'z SVvt!azYD$ziՇ kpMkD4;㏓j.1>:ЅA Y](F}d&UX UH[EJl%J0.ȯ^!X(O_k`˒>s oŸ.ysVzvtl0q9W[@0aYfmA\$MԈI™;/iY\:ބ p5J̫֙RЏgv5>Aٷ}?~~viHtqTq&cYOZnE c$#cGȐb .{8ah֘S)(VlԈeLy"<;d]UwMsmgLy`PM [̔뮹>qW z\tGn^oNZ@JiJW a~w@>v*݉#)n~PlWQ C.$>8{=it!XFeX]ޠnu>K6Kݥ%H.Y^߄QB^ְx1;4y`=2)W g>Q4)rnTo:Bǰc8p$IL z3}bq$h=v[G0c{^'$5{2)EFw"JFMBGve(Qu;"ΤaKJ !O>KVʺCӻ.1Qdq"dĕ \ G>$nv,@ӆ)FB%bD жh8Gj71,$`o9x <>^& Qvr#08?aP [!?f;0 \bu5bwOu/찝kUy6!uGMڬ^gKi"'=2愁Z9x&LQQˢJ袲CQyæ el'aa~* zaJ#t-PbGd.?fvҎ`.L~iouađ#TUlƍ/)[@#iAw׾,s2". 0$)[ki{?V ?EFRY0F?+.KJ/*:W%9"?(Oi4- oLnv x|e$4xfϰ8 K+Ni7Ɋq"v ~ `_RHd*Z}Zޤz3F&1*v7i-^Tq$)kQ*qQ(&C,~ԌвHrZ[eB/9A Y}YoQ1CMSݘhy9j.Hi$DLU3uz; cRG6& Fo ++ a}cL5$e aQ0`h(Eo"MΕ.o,FRq~ǃQm&ZEam:s;^AϠhP|c&Kps@i̟=zO& Ÿ2TTƯ3'bZ`sHj(*!M @Ѥ@%6ɍ]h7דc}ZexyuCgRXR}T]#|#]/p8oM`S$ZDWC{u3)JDuR/)\M-aܯ ٹuU,fU2$XKeĈKoQ;7xDbP@q1^'A >FT-%'մ3KdK 1n~okk:/UDRa0VM dsp͹yPZGa(tF+ dMU|]=`b\.z 2 䗋@ G-ĭ~aEO6 {b(Ń$%CeSЗyhHܓf /s7X73T?3wfi ȏ :X7GڑQYoTW> E^[I&-`)xձC]몏Ӑ݈ԯ,~fQ< q賀8ècI}/WuZ~ZoksE/4&]vюi ďνwRqLAO"NmOb {/]$;!aź_H4?mX E9ѧ n˝ʻt[u"Rҿ+U& H!ZUz>Srcᬛ[7X53UEcerwFF΋@s?j +- L$ C7G KKxoRzZ`{uOSf0c@M(sA_v['{5/ݘ#DAJc*ůo./05f:0~#H;K_;Q9힖[`r_DWzajkdy:|c#PϓwElע "bVLlN]]IaS{W/C"iq?[4c4v5"S]g# AgSdDvaiWlގ~_4r jKh3Pg,# om; Fި _bcT" 4f%1TLFrwLpORb <>-Cf06:D^o{JJR *'2r_3سl`C2)_vV*!i޷4R09`l뫐jX >ӒS~Rk23jws:c1NNQIFz53Ex+iE)8f~i\ vx}%Ӌ2a)L{gCw^t]S.Oǥn\znL^kAM{݅oM7}s9ڍ>Φ'ۡ: R\#OĂɣz^ \o sWѩ;rCt"O+ݲ77Jvr, 7yeA4iji&^y4")y_,/ " pgkGY,D2̗t-@+/@85xw]YدC d6Cei6oSKU xcZ`RYdh3pT~4F\׸6P<5K>kPz[ &F[pzw ኂh'o6Bz>S^3Ks:w:t$tG#0.v*[ tќyWHvЊw`aYuf#ѲMPs9b<_@n}y(s0/jޘ5 mc:Gڼw#FlL Ņ/a- XaSRړ5漊V[ >x#6m n+?َU ٷ40w(7j97E/A݃!Q=%}b*,꿦 k{;o6e+5O0{؜ h(@guei`#}yh\!גɭ`A0IVLf4  l'8?o84绯1dp3DYe;w+}aetTޑM*ޫ.#y;Hbs3fc7}!tY&]Yx 4Rq/L2Qȉ ~JT1[s::Qv1hcL0bB֊w쎚A+.iɌa5Ym7tuZAA\`c7ZF}l*\^`AF̾VC^l!؋g*r?j#P)#c$:^n%6(J вnpd76)L]ET/)VI5U׃nyY23[:b!54L3_0|O\x?UMT\Fm*$Bi0CB5!:Вc9匡n05YF} F+"ͭ7 ˆ(Npp^ aah ?!;Rxv#}.MB|ky:i|8DwV#zX@MYo!  f;#RQgquKx?hKo2<$_Pw8pj.D?lb%]"dA񃀉66YGBݪM<Sc#~ +Η? +1c#df·s_')>#(Xk26}0ja &^XzqʫK?cz5>E9֛i+K.n՗1ͨ?|0:n M{GWu$jm4/P4J[ʈekwGw˄W.2Vk@?cu}Ue)c`i'xpѭǫū%n `suݽnI.()5#6%.T Р" VnzEI$F7W) oс5 Upl|U5d[IZc\ZF @tYJ4xt" sڪfgMe!#yWjI^? mN|,TcgNmD?p)7$m=F;ȭ=VȆFZn5'YxzsL68tGM[]O0:(AP.ml^PsQCyzŴOoZGˡqrnF ]A꿱3j}#o")8HV STݽB*`xhщdFO'D` qNz: w#Up}ϧ 3LMԽO\7GOMMѳ;,8`h}s F=~>Ƹ>>+  KcࡎpZ ]*rB9ih|Heܒu_v 5w#5cr-*]7-wp>\#I/Ry' @/fEH^ܼ1^"8c{iM|(D KS\1D"imwZSC&.N 5 uD(P?zJTա#,CFZn?ߧTgfz*c !?,B?~g/+dǠuXkƟ\ 9id#DN%,mf!Uq$Ū1LPI*I) QV=Ƭ"jhH` 8w@qyv"}F9fU|vPFvHɍi'4(bQP/CIPohu$&.͙82xk4w!l_EaI< $zwt|1*'{` l^bWYTV:)JeQ&8,^" z7#?N5ETiJ؎UH1fd98 pGS|f~n|ޅu_g"r֏^& {ҽ;~1$l?R}kMʑ=8Z)^_ĒRMh'DXaPAjMS7H?4tSH hxasu@5-|~&aх8tQ䌜8M2.aSMK@Fv\< Vi5[EǜXQL{֍KU~6,#m _~mwI7dAdt ^@/Iid|`aޝuX$JpDչz?q}* lvbtps8:< xں传Bu߻Cοfkw R5`OK JfxC"~lQ%%mYq=Aw ;%j!!BF[u񁸒fi3pG_“7Ih.f.bY}Ey\ @w#8wLpQ@`Vp鹾 LQŠ夎!DG+@.chv&ah?%/7r9%^:t>>t  My.'[l(b&Ɣ2 DYH"xQ RoND,eaT8"5l\u QGosv\-LiLegS2^W #cL1upq j\4kזO*s' go-Qޛ4`;= A!|y֕4%!z(\m"&Aׂ&W0 ߓC(I|7^NI+RcY00J;_]nil+e F3A v ٷR?n){㒏U^g|I1"lucqv2U_[))*+~[)iyleXM%Hކ!Xtw.3bHԜ7v/+VWz *m;=?*3xoCͱm{ux۟pu8IEҢu ̧'c,GYR[LT1\5ԤԲbzr(FA 0[=^Mzcp-K`,Jm߇/5iU~rJ,oMii#+$݁Z6q.#A+,/ jkʴ^G_R~-q-5=LvHD3 0+R]7JP~hT&15A8?eo1|u ZN5x:w!ڃaG3-L&Ң޺< 'GKlIX[\?9D4 :tF 5< lߕ,Kͨ ڙiZ2ʗ̞<[jɛ2 ȅdkj3r{]`2X1gKU+18k[fx0f~ӄQ3eU%a=5ȷ3gN\\akРO8vYE(r/Hbr;: ک ''v \2ϟEX*[,=M)Nai:0_. a="vVF"aC;J9TLzN9B#E+H%=v#7tKf,|1Bg(47)[%>;U_5l͂|)_SSRJ9N|eCJ-! YCZ S'gEIbJN>tÎt jB?IZX_,sLWPfȔMĖs(PĜ(IN!=r]z=]Oc=K70oVV,+,2S3,"[ 6,{@R>\Vz ő(kxmnt2|ʍY" U-;լwzn2Ov H(+Yqű J?; ij7.2`^mN;v|B =:p?)HKY$d3ęvƨ >=5쟹/M+ [T#LF NWObl1C˪z45B|S=vN%Z3]+}Cyi@=6`Ox f#1YH:iT%un_.趎?\>#yln͂CVyR_ދdCPu<*iRZ,~͞!oBVVs<>l:%4> "؎'O#']V!q˸RB_eT8\Sգc 䪷FB:>,f 2cӿ ٕ {<<4#{/JdCW$hA rEtǚSsؾ%~h"9CҼ_#7V1>z+U4aWp잋RNUSKLo=Ǫ$Օzf4= {o::ǽ մH^mn阭(\㗬N9ŮJR;w2Hb0p]D4N\W]IelY#Y?O# k& -!Ι#Q㹀fyOgEդ4Wn5֍hJ^z젃0qMR>y#?aͨ2Z'K/.qTfZ;˦=Yf8stY4](gDن$0-3zXx89q u -X9B$o ;u(i=(o 旙9Öt B]"a+Rpxp0 y <`zC+4-_V BDyx#iJI:oFTD继7k~bE֝y_;g[YPvQ!HWxeP(a+S@40K1|- īq q.A׽k{J{`.R?>iΎK.y{`ܲyY#] iH;H?C$yˮe0A1YGhT_ȵMS96S]Rpn^^'"U:Lp[0=DjȷG8<'JK=ԣM{ D g[OgŊ;c9 P@i|O)*Oእ0y+(ukrENb8s7 W.2*Owr&`N~u›+=ɕHNq306syKu岦Zl!4\2'x($BnG)bh2wB~)*P .zoF~dFF AU)Ew8?9}F 4OmƳgAj _$F$!7ilU)x}xX=,Rv @ps,jqqBO!8:MV@7kK0 $I".'@,&zMn [ 8F~^ITPWk>ᭈ -nSX9 9l{[ q<"KJ.X[^|SC3vgVRh6ozsԇ^SLҍB(5g|-tpW :QR g$+v9*mu`՘ e J1 +@Cc`јBbuSx#υuibvP` ^[#rhN5t lFtw$$1GWs^5 fY0< QR}t%cxC@6 +^9-UͿh̿g!˄qY`gwaWQU}Rڠ}GvPȿ'"%|,Ъ_k<[vMwMqcz+E'y@eC.>V*|yLBdӚWnn:iW1&cԍYp~v4qXMgMVJW(?hLJoGo V!є&ޔjLi?aPk VD5[bWS(VӍv*?.#[)~Q!)kB>Iw ru̚zcWw"m6Tm1qۃQc-k~PE.U,"ό:ux~lt&>›(=U0$*-&A>1BՖ8^rQbjdj%;D7_!v-wAB8t)iQΣXw*tx$-rTDe '͸4 8VMQMu_FБalˀn5ۈPsv_L %).*-Ŵ dm@azWN;zmou56:TXx]=A <4lXk?l2ijO ?N5/qr^A;qM^XSzFu3'e >h,Q@m)rb-@^EqQf`m(ʱy \fj|ćS dS-c`ѥVe {?D^J&4F$>{kjbhWGߦjLT@hC#y-DL }3aYgT+kZ`͖e|E,k\NT]Gнn" sؿL8+v[oZ09ah^%)$B^r+4xYhMhEg $Hv`N!XZ'!p)}yE*#9_"?p7)fA3=4fXDDž6?|~Z 10Qx`\Vy4=#, }gUdL]*d?Pmw<Ibh,yo0|ȓ5P{͋imZǃVq◅+d/l nE4SOEg^u"_UA$[0GN6 qrŠD9B50ccڤG4wvEz:-D03 Bv}[#t9Kom[tݡv*v(h{hP+6 5LG~j; ꯺apM%lXyǷϰV;V (}]>_|"fjYa]Y|U]%̳SQ**|ܡ"|$YMphM#!'r19~ޠv败M3ɳ ~j&=I@̩'H*^Mis>@?>ڙd my1zjxȦں t{/Q֭7)[3L>u¸554[Hd`#ˁ;>2fEJn`ku-/u^NxR=f;6̎d/>[_I>I yaQ+|+tWoyO_n ޟomI];."](6X܍`>8hbRDSxkMbKub?l\}'n(] r&T97ԑw:.VS>GLB}4T[2} zh [_ ɊY1s[kх=I'?+A +сF<޽Ehh=4K,\4L" %ۑN20beBga/GX[aE[H[m"oΰ9B9}o3_KԐH7tj1}^=vG4#0ޮZIfef&`UR5pt;d0O沇%pUA?phGU!OrA '8܊O)YFQ~ޢa xԑZת>QFpb2.KYHYxʩbByB,ks9!5}!PHN5,)"S"H7m>,-Rzc{{,/aF"qocy K>Wk^3t 'kK3)~ Blr,Q7lACeCOT~k0q39e0el4XPs&ƿJ2OX{j }#SB^ B"r^>umz 86zXwsCa%@{J\JXBYk'[sfӞZD G,TL8`r# }l?BT,l+ė`v쀜>KN(>,2Vo5 D!c=$X~ Aͱ2@pOcf:b̫JgX}su8) tHUqݸj!zB92n<?5JS!C'ɕB,ҧ9 +'dڟ|Dۮ7 OUx:OL{e#[vZįv/tN<ϵla&Ft&`ugS$@ 6Y,vv"=y`6s3q)&0RNSx7h\WZÕF q#=i֯<`I@3o#B8(a'3y|DZ%r:]*VS"FL6K%%Lta) SPgE!{PW+`]_wDǪ{I*Hs㋑ggE]8fcμm֐7@7](/FΡ ){ )R<~E[qYOk=t&>HV+iTPLDdK g1`s9[ cmڎQPάZg[ԧDfe"wR% {<', C"e =<v thl(f(\gqQȓ}Df5()fq4w yZ姠_!'&lC].#ĭ|p sx5 L1&cE0bɽ3Mꋻ+ac[hߙ`:K7Yh˥$,, NK-WUkcP{RL0{KPΨZc̱Rߪq鶎-gLq|4Y[N2U`ʢR$P˻dM$n̬533Z6/Hþmjda)":2Y#C7bJ)` X6 Ъyb-y}!`z ISDcNn6C$ <^ HVr1S{MOAj f_\ot/*I*|N5f/0z!ЄXmn0j QvꯈJY_)!"yNw,NH3Fϰhs0LwL}D(pz௞j[\fEA\*u,ꐲ2G6?;M :l!Q7Un_OcI#/ۓ )IZ9(>J9v0@ˤv&qD!J7ZSs8m))'8gwm,Vf1^2lQ'7k{6롞d U`ӑ>xNٌYu$%])eJب7[I.s6*dgð/>\e Ιj-Nm 囊B q AԍfHP 0Ť( /(=3%lj+xlAG Z犡Ak\C:LBeЄ۝I6 - *1@jy8֭]h6Zt`SfD1=ĄM=ʜzNR-Bν(*)1۟I#)-[9kiag~ ۘdogĸ0"ˏ~ԨY]r*蚋sC'9+rSٮu9%B8[^jYitΊYwj7-TޞʜI}_ I*'Rbچ,Om_6E}dr*>PI6&/Vp^ Q E ~혟jm_s%,)Xfis,~2K~,1rsGvڴr2z EKr j5z/S@|Il/q橓м~H9U٦B]%SO@lFrrEp&A<iaG [25v 坥h%!7r4c@*b}~S+dNoi"֖NJ4Wofu,EY<&=Lq=@;=5P'2m⪎f^!Y` +dHL.VߩpGOBpQx26I1cE}.͎AݳҁVi]s)f-.}ރ7|`:uIjkb7wiH{M,elXg‘fQC[Y;:Bwuo*|WЅKX*DT'&J-&E<^J:`GgCP&!A(o7 ;Q촿ckOykɃ'{,8=E3/IS8D/nmF]?s.Y[]%l,Θ< "ѯyjh*A'eF#0y!ppat|u*4@|vp˻䓩3$?3a +JVo/z`v_M)oBJFj8h-VsAQ/gG^ 荮;jwv 8N |Q7xPMI@Ky`򮳚Q&5+d SP`tgF7xJ#(M v]`<""Gvτ<8Wegkkze  `NO#vd f7KB3yaEt7r_&H*_SAM4x1U $j%Θ=tl=CAcܤDm*@ =FJM'k"}9bz,Hh" g|a5ѧmN4L+=\h5d|W tdXFl;Zp"E<Iy!_H觠B\awb})#;p`AM]9B["H/CJDC!4vTe慞`$4F0ߦ,b#x٘l!6cYQPN&  d5cs ?97?̂ *e>B`2ԋd9mnڳXR0xӎNctOzjТhw*ҭİZzA8T' ?ZcD.9I%=*H yMn {i6&<Y׵uggȨWU5ri7MSft~=?6/=ٚ ?$FFGdo[9:VLh/\b_uM~OǛt 1)s||qd>!SzzC2bټIQ`1pYK!wEtTiPmJZp4_=E~k7/plVP;5޴z`uf+D&qQ}MTXț%>#WN/J2)&Q wʵqޏCևUsGk$? RxH.G#`_ Z>:JNѱ"gin*$LR㮱ٲiYcn.TܾX.=Y9.KoL%N˅EI%ҫsl``C,S<.f*8F=%0Nv1 ÿdxfVT8vgĴ_-P;z/GuG P"UX&LCLDeeoUL^W\7] &iC h@n7jйA-D`mYCv"-y$6zEr-c@%=q͔4pjwV􀀫,m6֗㣿0iXtWZr`Yqu i.9'T|/ !XRw'#g4?adlBzM?T#U=-ìeHt2h:4qEuS.m ea0Is~ӆʡ$ouUpVX_P{#E@H-OVSbF,k6-r ry_h8/ՎDG=P[_.kAQjx\'@(ߨT*vB4- =ߌl$SKZDП:olK.K n[iGz(0[pxAtk)E ?r yH%w]ބfӀI_]y\o TOTxʱv "}ٓÃv"LT 3˚@p%F,H|~p+Mcv U n,'Z#Pӹ,<ȶ>OjNuLǫ(hU"jJ]VWCFDkǍnU ,*3Z1oSK\j1BZ?`#^ɉ(jZ>DiM W%Mq" MTHtd'UԵr|% mj#Toe/M0붩L?iXY[͙*d`yMBp3QsFHw!ZJHܵ!J24gy"Z{@p!CԮLY$ޘ*_I嵺쯛a㪉s4@'c߮ka_(kb!O훅Ù /ę9k3fLskv\-i3^m(L3og;V*94tUN,'[rUt"w(\QG˶TdX_ˮOAAy陜Kg~JEx:Yō=P-BjY5v+]Gv;§tcf.0|/PyG79F!e0wE+yhvgU>˭ì wP~ߨFwraѣi=]q(lo2A#E$Vֈ:ٻK5({ߞd'gD;*"69ٕZ:\~++ٮ9{QDI'άZ8=|(0JnAn}zF~ynjݭuO,ޠ0d2+T=F |p-NNG3䱾ّ/4T=|;I @W4isHXZ|5'd 2bm'AYt{UјGyeuPj >( *1t'#N+.Be:qسƻAv&MNP$@roT]547NzHqLT~~J 漦GNjVQ`؄q p4ꀏ롹Y>sA*fC/$`!#BW,ŠjaoA3Xl 21HY"k{5 ̈؄0^&l8ٛ9 5m<>`Kx'18HÒV*7W5|nD5q_K9stl##ldjʎ~C7 {\T5]*`玷(P0S BP纃%icǥ6Wc{ҡրIA" ΰsv=R%,Oy9Iu8Mn!P-T=Q( EA8!;]uV f[_=zfcERBk_ ?d]κ»g&eae?πIME3{jZv°%d&'S̡Ĵvyw/wӋj0Yp $d3¯Vk`ԏH`۷~|bHy2Kªedu~嬍ΚlaXZVЗ{V5h} 3fMC[Uf`uz^&ɳ *6P5W& 8)AO~X͑)6HOt·Fu/58\gb^VG \mng#\paZnu>{48?dpGR@ E+|# W8VxWiK[yrGhn'%"\ cMDáfL]l 8Α*afsBY63RwlɘCz5 '"AyYxS/ROf-ʝZLGVQ4%ո& 2ޓÉ!ɧpPBp 겊N![v赎kp.GUXtͻ7}8b+ f`EOMAҐ|`՛/QCfN!@0J#IKL,m DjA/շE#Wd.1'_5&rܷ~a™:0eز !YT~5\T;qi40, 8cyR8͡"|ᤦ_0&>O%j%%r.7ڔ5T'?Ef߁\ODE**0) 8K |1'cnC`4=<֙"L9Zs## gLB$Ġhӯ gbgB]W'Mg݅zi]wڽq;Tϟ!%n{Ȍ7sFWva`@6y'WmCV&`8`7?4#]Ю0"aWP#LU`/f$ڱdfmua8^D,lha-EVJ\>i:S_L9A1FK2?,' یxcKp(?XT[Җ)zH KƼд9y^zZONdJA;هџe}SsW]+HoU c:-iwźtEDݘ!-0sڨχ EHD'`}QiD+ ܯ^LCij`w%c{Io)VCzt1TC&dŷ#]0VVlzf[A^, ԋj@jϗg2kh7iF!.^$Cj{OI^ (mmi2Ɲ!"ާ²  kF[|WxZ < Aaz5ʱ^Wz_}X/XCvwcb웭i˕Ά—2QCOz֯8"-@o A녢a%gM ,N!KڦvVN&NIm ?9Bo@EC;!l"^žF;{i/ ]`JI?5&{@Wy@d ]?onNTq"_hh"Wפru C߂u Z (uyP-+;-p9K:~z?.(TYo@ʬ[O&RN6hصECGm0/IYqϞOi&Aaù=I\D^:DXx0>OXWW~p