aboutsummaryrefslogtreecommitdiff
path: root/src/unittest/test_voxelalgorithms.cpp
blob: fd83844af590f523b329b281305d8dbfb2536d61 (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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
/*
Minetest
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include "test.h"

#include "gamedef.h"
#include "voxelalgorithms.h"
#include "util/numeric.h"

class TestVoxelAlgorithms : public TestBase {
public:
	TestVoxelAlgorithms() { TestManager::registerTestModule(this); }
	const char *getName() { return "TestVoxelAlgorithms"; }

	void runTests(IGameDef *gamedef);

	void testPropogateSunlight(INodeDefManager *ndef);
	void testClearLightAndCollectSources(INodeDefManager *ndef);
	void testVoxelLineIterator(INodeDefManager *ndef);
};

static TestVoxelAlgorithms g_test_instance;

void TestVoxelAlgorithms::runTests(IGameDef *gamedef)
{
	INodeDefManager *ndef = gamedef->getNodeDefManager();

	TEST(testPropogateSunlight, ndef);
	TEST(testClearLightAndCollectSources, ndef);
	TEST(testVoxelLineIterator, ndef);
}

////////////////////////////////////////////////////////////////////////////////

void TestVoxelAlgorithms::testPropogateSunlight(INodeDefManager *ndef)
{
	VoxelManipulator v;

	for (u16 z = 0; z < 3; z++)
	for (u16 y = 0; y < 3; y++)
	for (u16 x = 0; x < 3; x++) {
		v3s16 p(x,y,z);
		v.setNodeNoRef(p, MapNode(CONTENT_AIR));
	}

	VoxelArea a(v3s16(0,0,0), v3s16(2,2,2));

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, true, light_sources, ndef);
		//v.print(dstream, ndef, VOXELPRINT_LIGHT_DAY);
		UASSERT(res.bottom_sunlight_valid == true);
		UASSERT(v.getNode(v3s16(1,1,1)).getLight(LIGHTBANK_DAY, ndef)
				== LIGHT_SUN);
	}

	v.setNodeNoRef(v3s16(0,0,0), MapNode(t_CONTENT_STONE));

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, true, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
		UASSERT(v.getNode(v3s16(1,1,1)).getLight(LIGHTBANK_DAY, ndef)
				== LIGHT_SUN);
	}

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, false, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
		UASSERT(v.getNode(v3s16(2,0,2)).getLight(LIGHTBANK_DAY, ndef)
				== 0);
	}

	v.setNodeNoRef(v3s16(1,3,2), MapNode(t_CONTENT_STONE));

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, true, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
		UASSERT(v.getNode(v3s16(1,1,2)).getLight(LIGHTBANK_DAY, ndef)
				== 0);
	}

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, false, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
		UASSERT(v.getNode(v3s16(1,0,2)).getLight(LIGHTBANK_DAY, ndef)
				== 0);
	}

	{
		MapNode n(CONTENT_AIR);
		n.setLight(LIGHTBANK_DAY, 10, ndef);
		v.setNodeNoRef(v3s16(1,-1,2), n);
	}

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, true, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
	}

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, false, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
	}

	{
		MapNode n(CONTENT_AIR);
		n.setLight(LIGHTBANK_DAY, LIGHT_SUN, ndef);
		v.setNodeNoRef(v3s16(1,-1,2), n);
	}

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, true, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == false);
	}

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, false, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == false);
	}

	v.setNodeNoRef(v3s16(1,3,2), MapNode(CONTENT_IGNORE));

	{
		std::set<v3s16> light_sources;
		voxalgo::setLight(v, a, 0, ndef);
		voxalgo::SunlightPropagateResult res = voxalgo::propagateSunlight(
				v, a, true, light_sources, ndef);
		UASSERT(res.bottom_sunlight_valid == true);
	}
}

void TestVoxelAlgorithms::testClearLightAndCollectSources(INodeDefManager *ndef)
{
	VoxelManipulator v;

	for (u16 z = 0; z < 3; z++)
	for (u16 y = 0; y < 3; y++)
	for (u16 x = 0; x < 3; x++) {
		v3s16 p(x,y,z);
		v.setNode(p, MapNode(CONTENT_AIR));
	}

	VoxelArea a(v3s16(0,0,0), v3s16(2,2,2));
	v.setNodeNoRef(v3s16(0,0,0), MapNode(t_CONTENT_STONE));
	v.setNodeNoRef(v3s16(1,1,1), MapNode(t_CONTENT_TORCH));

	{
		MapNode n(CONTENT_AIR);
		n.setLight(LIGHTBANK_DAY, 1, ndef);
		v.setNode(v3s16(1,1,2), n);
	}

	{
		std::set<v3s16> light_sources;
		std::map<v3s16, u8> unlight_from;
		voxalgo::clearLightAndCollectSources(v, a, LIGHTBANK_DAY,
				ndef, light_sources, unlight_from);
		//v.print(dstream, ndef, VOXELPRINT_LIGHT_DAY);
		UASSERT(v.getNode(v3s16(0,1,1)).getLight(LIGHTBANK_DAY, ndef) == 0);
		UASSERT(light_sources.find(v3s16(1,1,1)) != light_sources.end());
		UASSERT(light_sources.size() == 1);
		UASSERT(unlight_from.find(v3s16(1,1,2)) != unlight_from.end());
		UASSERT(unlight_from.size() == 1);
	}
}

void TestVoxelAlgorithms::testVoxelLineIterator(INodeDefManager *ndef)
{
	// Test some lines
	// Do not test lines that start or end on the border of
	// two voxels as rounding errors can make the test fail!
	std::vector<core::line3d<f32> > lines;
	for (f32 x = -9.1; x < 9; x += 3.124) {
	for (f32 y = -9.2; y < 9; y += 3.123) {
	for (f32 z = -9.3; z < 9; z += 3.122) {
		lines.push_back(core::line3d<f32>(-x, -y, -z, x, y, z));
	}
	}
	}
	lines.push_back(core::line3d<f32>(0, 0, 0, 0, 0, 0));
	// Test every line
	std::vector<core::line3d<f32> >::iterator it = lines.begin();
	for (; it < lines.end(); it++) {
		core::line3d<f32> l = *it;

		// Initialize test
		voxalgo::VoxelLineIterator iterator(l.start, l.getVector());

		//Test the first voxel
		v3s16 start_voxel = floatToInt(l.start, 1);
		UASSERT(iterator.m_current_node_pos == start_voxel);

		// Values for testing
		v3s16 end_voxel = floatToInt(l.end, 1);
		v3s16 voxel_vector = end_voxel - start_voxel;
		int nodecount = abs(voxel_vector.X) + abs(voxel_vector.Y)
			+ abs(voxel_vector.Z);
		int actual_nodecount = 0;
		v3s16 old_voxel = iterator.m_current_node_pos;

		while (iterator.hasNext()) {
			iterator.next();
			actual_nodecount++;
			v3s16 new_voxel = iterator.m_current_node_pos;
			// This must be a neighbor of the old voxel
			UASSERTEQ(f32, (new_voxel - old_voxel).getLengthSQ(), 1);
			// The line must intersect with the voxel
			v3f voxel_center = intToFloat(iterator.m_current_node_pos, 1);
			aabb3f box(voxel_center - v3f(0.5, 0.5, 0.5),
				voxel_center + v3f(0.5, 0.5, 0.5));
			UASSERT(box.intersectsWithLine(l));
			// Update old voxel
			old_voxel = new_voxel;
		}

		// Test last node
		UASSERT(iterator.m_current_node_pos == end_voxel);
		// Test node count
		UASSERTEQ(int, actual_nodecount, nodecount);
	}
}
M4cO1q8 Wv(96 wh((`W@?_HȍZui**F) 4CC!6Ma5n4 ƖD03N|;SNi< 4d [Źԍa3Mf RMPp0u ФDFI 3Ca6id aigP)1j`)1|`G`6X8ͭ2D;Z`hh]X7jk4U[8IEB#4'^uZu'Zh5rl6Ffe7%(A99\q`ot @0dhYR0epbu34 74#273p7ikM  &f vP\h?r1`НmEt5fdLM96'Xi7fG,: %eBV+p& juB 豖"/L0ɲk7mLm֛qpwg}FbOލPH@5̦&:mmF|y˦mғvOSlM)OpeCh⨆1 > r#ƓNL͹ 518`N@ݓv18iqYٛ:Xs ^F(h0-x JMm)"LOLM&pd̜3biM%Jbk X4mojjPhȌoʹLe4(0, AA&@5YdF0 *dFמɚì$kͱSqGED)Xa TXQcDM Sn à;DMᏌ PĂ"`do28^sBOi.V%<f@ o <Xۢ5ZaU%HDc4U"#,AL*۱ \WKY `[EܓtVf\Ig㢠] (Yn4=20nկ_[LWI,J&˾>Pt=1@e0àqMn^~g.jG~՟lFq;[1imonL&dl6E2JLSIffM416&e5̜%&IfL2m3 j RP4o(!qې-Z0h (5ݵoԍ$].P鱍XN(N£]}p\*ƭ "Gr ,B8qI|Pj ŀ%{aF&46L0)55;LM̒M6l\m,,7j8&G.*4'G=89]$9'8L & ``a@[FCbt7 k\LjEH?QKl-.)w?}G^8OV'MrԀ<3(l ƒ^{o;㡯JM6x?3N}FC7t\GdH 8Jc^vqGMwvثvN'Ryr󡘝,ms|Sӥw:$5 ݷk錇[bȈ82"}8 1_wU̼2""C!bvҊ gvwﳿ[aXcp,e_mY:Ad <%|5qS@O(A8V /0XSCxLI9꥞&XzSO6hwṴssW=\hun~tt7.9{@lpe uTTZ&i7*OisΧ3/ߗCŒ! M]^"VnO;dez;5msX׾Y](#79ו~T9>ڻn,ڬTG#Du w&xMlm lF$K&-)BUEmɴ~XԌTC)vR^',-ˬ\X#qw=k-ǭŜܔ9~҅VF֖w"-WiJSD:Q-`wLC1m8rL"%Ȝ*GkqwNpicܣ;6ۦ LatNiTdɓCEAJ)sx@ONz#>i9k]h^& J( vtnM\%[B֕hFԧtܻusuۮ@EPEQm*XiDZ Je-ƊX6ءUE mQhҢҴPK[J%Ҹ?x7= w}mm-*UaĎ A"0aC![*YUl9ϠtfMc6n'0%rz ]RſZ;,zc cU`l&JvQ۷ݛrIN/2;EX-mh@mhƆI$36 D2dٳ1S6PI,2!l30Q&a突ÅfNW9Q4I8va/mG>Z|SBOsF8JX=`gG\u)NL/5t:1}< vaFͧ3d!I6 ]΍uӮuӧEn::Ⱥp""""|scrqzQ?rj+VjC[! CUb6O@ެgW?&}I] 6LMoe/!̲fZtC|<^ZheLH#rowdhc BiFQ#M'XCxlbc 9JOPxˡF9@$}|%ᦚ-Ao7 #2yw UmngP+y#v}Ǩ3H'Q O$pwqGtG''M&R4zK*)MGp)L $ P`DB2IQՋ,Vrs)lNl$N)yOyӰ4N{yCў(Ǖyʞ4GzCGk4tsǣ=igzCug<7 bIc1$Ǡ'6~xg<?,s6}|e5{4v+quG]+UeX/~t+-d,Ra~}/?K[ɝx3I8q5z6 5,/`ƚ[4i. ̡uMR훗pS*o~HL,c,~ ?owֳy`N-Ԧy1d#T ;0Wh[>R;(k_$9A!`X0rO? ֬UTm+#!].s!˛dCQ86BѤi-~yhcÎX{ "]Q(7IggڰL:)ٿ94=0. \ng` T_I>cw.78.ڤsN2_UûzkF&Ő+HCQ.(]}qoFrRz!w7-Q1PyRgM_z?L?Ln]˶6`h<27*'g7Y;ȧNk?OBIݏ|'vM۪ۋ ۵i93&[g'8SfSr|,٦e֚p uOב) "LΪN ;R>堐VEeBRVg5%{sn9V2~;v3'|(tD(xh[y{>I ;urZomoڽ'P0 Yzeϕ :6Q>֒c)e[eY[EZfX0pqJ1c4TR?%|lccE9UK3 npox tI CYeYhW㏀0Z,ɡI&xv^o%VLDD]^S3I 6:@_*|cR}TT*w&@ 5ȡ*:HZiZ#2|]b?Z,هH p7e5 H| 0FG%t`Nj7D) O^Lv4 S2'ё7nVٶNs6D̫j΋f5J ХK,eD`=~Ny)/ އ ֎7NOP;a?ۜOiz1 <'PCc]vgp8{Ԏy{wuAP9K7)Gjd;Iw5kvCÞ\ldя4N\n uFy?@:=lVꗾvR>4E5M]Ύ =,|S1II6<X+a*)("X]ЋkãFٷB7L)2b)䇺Qf5JnA.V=2|{p/l9x%Bx08v<] קߎ嶶jij fȚ7q\Vcm/ĸVVLit nҕؖڨ)}{/Xd *X=y7v#`S˕ "nuWLМ `m_RIBAgҽYz۟4f3_h/^B/9XYLA6p>,75/^Չ934QˣIt_Q&L69~<ߕw5(J"QJh܇XF&3~hi$-s5W+ghfG4{ygL{$]vbP%rqfVȶmU,mR emJn [[nYn17{C#&Lշ+XFry}#0|s3vu@k;iXCL !@{23 M v1jSQ\?(}4? @6L],.FY 9,ddE-L8O _ⱬONco2؛EDG7e^u*j,ײٽ݃INfei?XyQz]l<~>rf{[pSYeh?jGCv.MnJW=Q'H>vx7sMd:s'?$?8RAϽ9͞)|6 |?"}CGO췠zN:MR3jii` ȝzELM5L":r銰"{i*Ļ/`M|>I:چ}E.JIt^G58 `8b./>(ò PCV@& 3MѹpSbqg<8zrPqӊuFǽO8g}6Jyu'&'k2;2'y)Lʌ=`;Cǂ6A @`m ۸:mq>4Պ`&`M .7ԟmQ&r麸ÁyE(G L\4Yx.`ٿ⫳On؃,=o,;Q͋6쀓t:ӖNc3kk+mFMDht )Ht mmaX9M"|g,r nRw'O}F붡Mrivp:Y\f r.<58|F3oq=PbSLQJ kwYln[m=UYmYL@I$ H$IB$ 32 dپe ! 4<ҩ@pM@53l@fɒQf$i^L* ޻m>UXU1qfxq|fGRA.7iе~5>g; ?yL50m)ljRat7ʧi]gyW i~CW qǏca CK<3)g84S f:ti27!8 i܏!=Nc+yO[aM{`? P\W.SYG.:~%)ttGw6g룵O(48NOyݹOI'ʛwos\ D{G s: %Щl $-[>j*U t$%ҨR,1! D(_0k Q/H 2Uf.|kYssL4 ֵ햁KK'&5#4,ic W"UMeEAV7\z (q4ӈwP`1(TNLfΩrbuwʡpaScKbͫnn@p r"Obi7H0VhGP3꼷Mrr@~q=ԛc֛'a<!Nwÿӆzl|g39>қaSC3>dyAgZzÞɻ/^7׶Tj;9Gc5r~.bB$`x׆ \}\޽?3l+pwvJ4>&lDH JK䧖S5axӶ-\Z'msm8?Ogb M;32Zb) 96&3&Dz=g6lsOͷKiy)M.g=!#t2@T:{\(=p,-|NOkP0wB)]*^xAzVvi:ǿa$ (2,e)A!I" Iw-wfx'ˏ#U_pFFV)gCWu0؟a&pgN>W͵i.9<"¿NQv0M#qiq ƖݩV%E,dGP쏐|^}7*k ŧ6[Y{ҷqʩZ j1Lb17>\""ފa&njZແ>Tgz㼟T8W#9=}oaa*^Fhtc"jZoЃI,&dII fɰh&͔M M%chش&CS"fb6dcmkhVsp/-7NhMycP79Vŝ(cyQ<)d!6hl.hE"#~X33: daR4-@!6 L-*Uekm)V"a1q.%S`Y:3gfviS%a7$Gwh$:nvfޯJNq8۲oʮH[%ЎM7 zR[Z:> $~7|Sn$`(r@18`y BiKzІ0 ( TLܲ|}0. sjljՐ\m63CgNnO=1MHiM0ﶮkmwuU%t9r#O0=L3ǔ,~X30(D`Tޕ*~C˻3wtߜg(wS5I*eӴ'@h-(<"da$9 q I]lⱊq[V< 0`0``Wլ:4D?"Ƚ5'wQpE ƺ.EaeH# ;> `6 a "f+mEuJ޼e}w6eYbQM6460lmXL71uqjV6hpvgu8FAC?xޱ&Ig8=6; |Վӑ^>(@ &:ů!1Ru!c?pFܤ#%p[a+ڂGv:p㝊1c(Ӽd7wm*7-s~qDX?x?tv~2!q":woPm\e{}LDvI$EDR#IRF8d!&m0zk̇ܢ?'wH6Iϟ~xMH)Ř_zHBSm; DiC{;+8IdvLML!;sIΖRP[~9L(PPe*$~Nin=[a?0!jIiùTd?UhunqIP9kjM#]E=˰ )ͿMOxMT S>W͓ hl;t7'෌2wsf̭3*y`Q59o0 I|JМҪtʉ]Q9NI> #mun9Bxrt#Hyqjs[JĦ 4S?Gp2@-P?//%)v;8%`Dةs~E^5/o~G["}q$A"f%~O^MQ`|)LtMWU*ʺ-@.ٸ1>Jl-J剃 od;!ߛg>|P" 'jQ-6 d]>^ǎ1-6]]GVhk_e*k[eٯ5nVE/__QuDUMܟ# {UMBwKad[ڮwKeT15^B-e_9P.jֹA/J aRntG>9si)j]48C_wuM'O{7Nv06:o&Dz(L1;ώ>L'\i8{[mQ mf46cmJ CpU5urj 2!4̚ }{//d^BE$WM r\PwO6Xۆ|}MKOx3pVK+xPL|Kzm^ݾ/k"E$s*U"RumrdϛMHH~iט4D?x!a:*괒Հg:h?>x>`cʶNŃF~:C'|{ C$~a==Ov*K )d fob#|ۻIs*Žoduʪ덣cgG}gn3Zw(%s8iUVղ[Vv*yh^UR9a 706r6]( |^8VS E.1evJ3`FVmn@UCm ]]CL`m6F2%`a]8䙞c ٫[xTʤDF$FVhlhfi&i)2O_<9AM)&7uӾU/,9HP3s"R֜/,giݶ<_@ކʣ#oM߆hF,3gJf3d!jW ŀ\]DbnPGLDPrk)4IoZCVS,ŀk+(Gp(I ;`42d$% (RmZ+YVlM&IaH6l,5aE/!a!'|ے2ѣcLokⴁJAyIԧx)%%"OM :"t dI9 CIv dK9a9(vvoQ轛ُf!OPmd#$ah |3b*O'N6Ǎ)MhxlQF ߄H;Uk ꣚52UFghwߧxj9:CЎ˵^ WPڶT UֈCQJ5Q ;dl-Ôh`Ad~? ii4Ɇ0ںKAZF)Q-)VlTinRX(g )E1bR E]aaD[&JP@5FbRYsġBe3-`pvceԣ$.3D`&V](­v 21ljQmR |9O=m?:sF4M`|Uy h4 g;.UW{wo3a"C C%CNtvudͩ;[a VrC'q'*uj0{=MF|6C<GIJFIۉ <810`fjŞ@w nuuu,cl{5n!{> C|kSș]6E(_$>Pqr'A8Ʉg&8'71SWpzc~/FIx18i?2OiVz6{{ؾޟpǶ! [l^;`c]-2yӳ"}w!CǠIؚbk bCcrIJ&&n&j^a!@6z˙ޭazkihf:Zݪ`%gToqoFk7-dqVYu7[ ppua:G<ۼ<[vb`xp${I|#ٝA Ls8RkT(U#=4o0ZOO؆ݷ$92f9#&RRRD%B{}1/egHsg&9Qٍǜ㐜=CFiAHX%ݏw (=J& IQpH^"36kvԄq18&'%N恼zLw@f$u$xP- xn8S)]5cf>iDaE -Bs,ɔW"fPB(JJK vF^НP(~JC̋FH!XhOsyd Gڎl(x4Xq mЍdsxT`bYE t#z@9OKx~ -';h7kcfX'^Os.*p$n dri)t,.Qmޔ27?kfe^Ύ{?90 0mdk'O)DDD` ,@7 e,esklp V,I6đ"@|wrnËi?0wS91{C6Q ZpiIe68,w>'@&7<:1$ܖk`JO81llretxjtIKʬxPWUP3i11scZŷ1s1rÂyŽ{ UqwV5w9."Fc'N 9a*&>E;pD Td8T?l)Xo"ɘ| E0#I ȣ?H6ooc>ͷ:${&*7'?YV{+˾(MVOC}gBF?b)!BHR0݅W 7Kb0Z-6&o[oIJPǢ c6ݚͼkSK ̡N+H> e`)i 侀^nݫa-(d8s3a3ѽ7M9 لʖ_o0+h1PPLLA;RzBʀ,7bp7h噛p,e}k{;\ɟiP "41+4mznp,5ce^Aet1Nаlx« 0dH#yg(A^ww1Ƿ3vԆv cg#Is76N(}93e*O#T=@EUC:GXp󃯘0jMTŸ[v 7CJg#smVUY[m c8‰E, T9dk! {{ *[ { Ez raKP*4.D! aVPc=pKF".Mn&@N6'}{!0]jgCP%GjB$-BG:ŘgD@Vj2m8{Qk6^isrf,R m GX&&38?=0J6]8iC"DM3D5@>C;q46Vo]=!||/17 p`:zRm"Tmz "i4~]8\xN+#8=]4h±WEa# |($+a0R$(MdXmREI,|dquͪd /9-E@j/zx>*7M x'=/A,L2e.#Qoֺ PJg!~e~ͭ>4=pjS-Ȥ778L@'+hjZTeVf 3ooʪ)+B_UM lsvL#@I\SYOsl~̷ո ׷m?kqiDw=W 4"L5#bLMm lF&Lx3їjNOcciD)UQ7KIn٘,~Cv7cU*frT*>p[JҰռ:C;։D&N:ϭK32=M)Cށ<2]U)NUXCAhU׍9N9T{Ϧn!D,V[V SN ex\] vE< CdtFsڝ `R* /ۂ\!{p [1`F׈nV-,q5 Gr*gp{ pg l-<i;8eOFFMG;쑞^*#;s\{|GR3ۣ 5x n0{ÊlQ ^|Li $йr" /$; {,FXNܥ.g^x_5n6ꭻO6ڍۺ&xatH}QgѦs5-9%!Dpo$XJ` E%x݅)TXc oM:CLRJeicK2hK&_V$30׿VF= ٻԀP2qeҍ-u`݉U9AZ<ݳ3 jkHo4mmmm\1?$zgpJg_BS^vtVd^+{p@pl@Hmaw;p %D LtJ >QӘ!QYNXqSl6VMbImӉ遳/;3.,8eHsr܋0n0¹mz4ss{[elVˮÍ2(9aa`~˜} 4hJm+4",B@Plٙ#1` hm_K6eL>i&=pB}*m&{.\ sz={ U.$9Y E=nn %y:ak@D~b\9 JUEVm14U4M%Dl#w6뛩Nsr6 AAvmJ{ CKpu_>$p lFpD>(O43^Z6*UosBG7 `VBWp2DVgX\.u=ïI9Ή>ܞS6Ȳc"FD`n^-]JbI#M$?Zk~|<-pT0NY` L cU @:WP%hB,{P*ݺucP9Ⴅ%\vYH:vM{]`LODO9yRf߹U3 )+:,7@+[0l2%iDt N]^K$nO$$s@0$@mvrA_ij?ڻ'M)RJ,8û( 4"KKkz@gqo%%Y2i?Uoý+O(mC0ufS2#rYRTeͫ2(̽|h6!I;.DDDD]\il̕K\:vՀ#HQ3Hɲg澽} ۇ=cfy|G }f* lMwx*XV4N VR--&6*66eZoBM@Wme[ cccyNʈXa A*lQ*iz}r= b܀/IG#.CyK2_80dI,2&l~[V8՛ў8__<ɀd# eHJf1BLM$ɂ&bҦ!IPI bϪ;yvNa܎h=Wtg93 PNLI "S;F61pCiKG/a*kZYN8NY ٬dV*aYD`(b@hעqR yd`L HTE&߮˹/xƦ(nx{DDE,eGp6o#x`湨3 D *6ZcCCeK)O \re]܍>l+R5j kޣoPD2&[mW9VŻ,觿< DHMddi|w_U쯕޷JJHLdja8eD: ہv4մh-7" Pbge)cFc:2z_lIdɢ1~Tސj3CAXU6:f@D'c X0Av!6ۍwOSiVȂV%:\0.hU`X" ;P_M3+y]5:YHF#0 .bti~'ۙNFG-/Fo1ɜ8 oy> 96 lΟ9Jc[} ۇW}v" KH[os73F;BckrgpgbB -KbeG;e;s0DX^Zjr✠g ^X+Ə'ۙ#LpW(9j0;5ȆaKrL,]uӻyTs(2 2ni6k8jMΫf*OM\w]*R0tDDDF k#m W )0}`/_y]n`G t_-۷66g_mBv|i3ti N& @6.=Cq%@݀Ldz^k4dHd5Hkpp&dáS 9.ⷎ#lMs OD~?x6T6;sMۄ@^VgOOUݾ7e3Rs'T|r?Sk` cEΘinBTP*TTRT(b!I 0a0VjRউ'bb54fbk&6&N96Rk(Tvhd Viy0hhui{7ռŹ!j!ާb Pp= "7H;S Q0WT]+LF$͆S AXpM-Cg܋<k"Jm XzwfbSFJi{)#|eŪ*$ʥ9+G1?sSSD+Ɣ|6GOώ6 (Ye;S<\9S3Jt*,X-8yUGw^pkyCxXLal~ω?8lSDEC>2afܦiRq5$5#=u(e i ݩ*TAWVhF݊471WeReKKJS)jne# f 1,dgnGF9=9MCĐ9 )GS f)acrJa[a#ȇbH~ug,z|1HT`kyZ iij?pD&'v%CP s>(̓]"l#8}8Nhuƨ\p~Ѷ) Gm茞g^rĴ'lkǧ_];dgj<`S8]!n}xƢi4QV-,f'9\~t tGD}Qў|t? ܶo4Np"q!҇,5Yd|{+D 1ӧ bõxR01OCv)nLUܐ2'>Q%~X89JJ@V]Dp?XIUQVBI U*իC`}xAd?$;?|a_937pz1c{(RR&VLSX#*? 6L?k2#Q hLx24M5!伔24hkes[FώLl4yHNժXdcRj)z:6F x_86G Ў揚tҧsbtfn|H&kS&Y?Mje_N'8q(.8sñ?p+})w/M91npo͹qn'V>sh+9>lj9sL5L?rz$!QD*' v&)Pb)M$Ȏ\QQJCC$RFD d*`JR$IS"*d29aLE20Q 2FL`Ș0LR 0I(F Y RPaIb!JHЕ& LA)3CR0(RHfJ410*ISAQE%L F*R3.o|sagv{&xV emM|#D|ljyW6ԫ 3!mp"ҷ&t&iCe*Rg@b"@N24ɒUUFe Q蔧*THI'8Y\A8, 2n N&dRRRRX4emT9NF4Lt$f9TO,3:p&f /Zէl:[_FжVEpŸc|0dN#N? dǵN"o M+]܎AH WPD`Un4RUʙ-&H7$۽W#8YIQ*(dI ̳7%CHVYl5di;UZ1nzÇݏz3$fw*bRL2c9!q1dQZʶEմj“ҿÞ"d'6MDO8 829R'9bRTS9N 7o;_9r!j8K&c22Cj)ZR%yrشz7I4՚Z,Ka^q xy䧊4-Wݠ &A(YvD4LҌ5ť$",o!!A]lMS jLȝ.Oa妃vI3'wLχp7T&?1՚ ;>4qO*L=?s=&gmvIT[KUGMgθu N+SֹYS~k|{JUpisѡT6i eUtD`4 侺'Cè:L&[#brަ&@RD?&gX$ "(,.UyR+4(  (*"(-L[>ʊvqBBU.ꛊցk }{]ϷN7t@ukKe:̧2Jr,?P|5 Go'mGܕ9#ۭ|,Gq6ppLs '=a m@ỎYrkMRnLU&FLlQ[m!5snNs?~sy<7ϢMq|hNfI員?cS Oʫo'p83:GbHNlo8tf4PdE~{SRUUL-cgvۛg11_dͦJ|8-Km.e Σ$@=C>k5GUV-6q,ݗ-/~#s(sN nqOV=,P>WZR 1%X zD>7Ԗ{ (|yq;Aʜ N2I! o8t5$NrIB0a7í)Ntdv\+~PBnf * 8Ƃ5%=CMI?[jdAxr3oRM#kQo, R-Z-= WOțqUnZ~,rÕNUpۛFVE)IGlxh4 8ee5m?@EJzI#ά}.!DhygM!yAlr=ԟx>8@̑a94yvdfgI0vB2`g!Z`K"_gBHH7l:e)D"1:.MfPp,Z :>/w-H{АtDPDUxrqhRť}BBvʣ9e9adʹO GPѹq8T3+`bI4b#~` ӚW~;(QNsk+>մ9 %J*T~aj|Mp *RrI@=د:4uqp#M}&“JbXq(ẢA8FnQ1lضc R*nb/6=49!Wg_^h>g5F QV@Z}7NN{v/ZN\`G'3حUի[Ff3MT?0i)Ƞvd~>*km:O})O'F6gem'}p>*1IIVGF#'u;.D0zV؝5>(yhPhvcXz5$ݨLMr<dl#իoS >I87 rR6%i!㗎dwhsSh~9>F;dI'vDnջ7):G.)O?iMy5|r`,D0R|Q=Rr1գic:fHy?5O /c>z-Č32dgtںF}C(18N(m'6vR(4 T Alxqz_j)A$3Oq|eMzu-W"єmE:p'4nw?s5_#\, SJ55DŽmC9aպ/ :ư%hFzmS)XG5ժjWIV 6jk+#6~ :qh( |$lFASv]$ҔMSTɉf"}ɠr~?DIzphN?.o93|y۰Sԕ30a= 3TIfIdaU/``$a^tPܖ}wm>$JW)Ns3ܵO*PJi.1&cCy> 8S8Jn8( @ AAMMi烝G7ds#9%sS<瑠sJLƆM"||߈2fz.\7C`InAlCqjosRBi2SA B(@e8dg;DVsM"x'@{"FB2x3M ;ѯ^gm- ')=IcȞrrNXH @qzÜ;ABe$:3@"Ff|F=0GF?mm`"y nyIXvДw!"6'6(#jQ{-CƓ~}rk$I$y~XK^y2. Rq}}1@0}mۯΏIc&gx@z#oduoEx]G+osnpyl?5m Edm684#{Ko痵Ə7-R[/I6󧓛7E#&SWd,mew 0۟Ď:);ն!Ć LR2ms"zeL4ߝ`h J*E,ߋ#őXSId(Ȭ$(ē>D3(,fS3'2;7u]RWif p(4c`0`0KdH$ 0hpb,`bE&bfbbf1)EB`Y'A$gB,0JQ`g,2HYJRQF LE3)TE)J,K)d))Edę %R%,2ݛMe++Cdd2$Y)B,WD)@0R‘(XF J"`h& R )K%̣*fR0PRM(!!A  HEbXRS@XP5 K"K!T0i00,*BY,HőeK&j}ܣBa({AѶhh޶=][ B{XK,L9{GX3O**u'^!G.˲wv@u< %OvpSm%-5fݚv5614у4,4fkf\115hO ?c+ДZeJƃE Kl%LKieXR),U!Aƽ9c ạ}JV00M4Y2&*8Gwoz񟗣/v/JO˵sv*6il3n?~l~7m?R;4u7@MɧIn7{n~TڷpE%Hf5QxFffR*b0& N$ JG#ܫ:Ɏ*谫&{WvO @$Vʊ~1n;s!P X{1≝lLs"MaV{ܟ;{o6m4nTT(Fj42ZZ\--\ƱƱu(  mMjC 1 , !d39ؒoƉœ+eZG4_8ʕ+cZ33I!Nzޤw/'VUQf[ݞa#ʁwcN1tf@Ύ !\fIP~hODSP%$nlDC]jto ̞2ty ޫE6JeYwUB[emF"Rʅm++Rj Z2֬*FڪT%9'I0r(pSQJ 2sr7M.gr\cO>_ƹ$9Q[FJ@P;IPΕR2q39QO~_'b;cjȢ"h3' 4HNsz<+qrvvBNg\%9%NKU} $UWy]')6n><0{S91!ۯ\US AGK f.a̵Zٸ䀑Ddc{f웇TO./yFg`q0nm 5Oy1mX(e[oHTXB5ci46cBmXv ┘!k*ndܶ&F-jb)͹5l vV0ֳӴPH$%n|ub١5N CD5#`[;[D;TsgS=a{m98}As?xwQ l]742Lg7rxw!M3Z %7̢*d!uŵ趀,X{.0ՙ]YRVZ'(T'Z}[YeUxdV5'5F5WzDppSNĥ0 Ԟ"h xw"@q#tjeߑ5)"PN`RNT(z`&[VUff BnkD g5 #QJiڳJVJQ8IIž@%))IJJRRqQFc!9 >kTR͐7C vC daY y6'}&wQWU( S,5kzu=g:qJ?DR0,C+ .T0Pa1Cqt[2S ? \0L[#ן3GǿH`.y7~i/9sO_Ztq|?W)=S].9ۉs=w A6y68{e'GI9ի|k/$AL2(njѴRY),7]$ib.?`cDt.nn4G0/5fԖ,j \%W iNvT\54vM#ʦ!=z,UTQ6k>F'O)o_y Xa9ꙙ76}g}d1jtϪvX+Hvn:a# C8K߼H@H8;=ƊTykgʚ6vݩ@Z m6 UKJG O vwG:'CgUCјE\li2|!UmuE4i6ϖۑ&Sax OzH{$t(,p2FBw ~ ꚻ B%k Y>ZkchlTY9n"7C)))`JRz Ky;0i)O@l6ڡ`](ѨJ&':|OPdךƙ]aJbA;, V̇zԝ2 J58hq "Ö:=cm{)ZxTADCDYEX(W xqchHX,Zc"PD2 Ras,BI]Uh ĢD WIF1p[JN__|{$P%$i@ A}.I>@),[HA*CFk.6bi{ j55( DͶE!I%kA*b2nmɂ9 #΅E~:OAr2BBGs*MdzgB>6cU2=@sAf2<&FX:d0IR 5`H1xIJa糟Dm\/f/ˋJ>x/sɡBg=5 jd~͌Dr p86ƛ[[e9[_§NjFI8Bkl,žW 7"Кbk8!lg3XKe pv[S_EJOߤZ ft5v̌KǢX^|#L<63n.A17!F|dp,NsX, Ekw -j'6S )Qt#m$rl%rX[dFSZ mŷ} {m‚RuWa^m8LcnH-M`@u5dƆёV,]]. p|-V#PiݞDDՌsu[>P(TraG0If : 0` )ԁFp'{c*HYCHiNS@hVq('TD)d iM0hv8CKS[A5]ݝL}k9f!b6-e07L_Xfc ck9^O-b?.b Fm5uwHAܚv\yQS:Be&@uq8@jϸ|OodEYݑpO-cmγWسcw.²7̾c{XG-Wɾcs:N.Ql:3Y{kJ~]N+g{RۏM[ )bbciELU7ۦvٴu, l[LsIUк:gjUٍe(,c Krwo~˨{E)cݼ!w;#={;rmcE3nfv-[lD bBX$xXio&c}Acs=VNyp4XQ`ݿLա j^d X򹢩׻"ТdNT7fHgTe8XW+K+G;eoBq鳂/|nhh4V"jXuz2c` 6a а;lT j`-F*eDb^L~0۞#K` 3a.BVˏa53@'fJ恶!:o,$bEX{mwG 73u)H{1N<etu5lq,7 > @gMӁ!(UFdSSVBTR-2p"Y>KѦ40iO`ۙ$ۻ@v4s|Ǹ2UEKb+h3x &45ɶ8s"TF 9  mg'S٣vB-ZW[y)[&`弁,eEE-[FXZF,M%&F d6Tim8El R8f>а:mOg?s`lM;Jfi)Nx$`swq N0ua9p*r)OՏTzrr9 d$(]8 il*m蘕6tV}y^$ڿ.T&k˳_wɯG FP-Lc<zwi$oEs) g8rNp "1ՒmѣbiF`Zh4V UJn*IճR |ǦEt=lz,GaݛRsu`@ =_t~f/Ji SSPfod41$  ݬ)wWl:lvtTٱ $vEԧTI2 mdr@⋇nw 4ۭ:}! A8o.׮ìLOUVF}S0d,ҥ@Ⱥ 6pj.]@EBlyabr`wܥfVFRYΐA#w&_v 'Akxo{ej1U*-6潨Q$Ytʬ4@/>v4>sN9mVҫ4D}`C@Ƀ3s<֝\`k\0 ubT0+uc"}#AR0RHNw֨ͲA?G4;sH:coxyo7C2y|sGȁN!UaVqّQ¦Z1+чIӐr + CbΘ$_Ǵ4VH@$i%l`6Y_4uEG1!LVsM!}6=XJfT?28?N)׬5d%Qϙx2F`Q*HK$˞ Fc*.?xi BP8P ϘHPmCIm7&|WPC^ۧE5:d{Wr |(4sn+3 S 6mQCoy܁ic v=iL  h Н@fIuCfcfr公o{:)tSRE$x-pnt6k枦<2j]T~E%$/QWQЏ 04=CE8$5 I%jp*]-Kz^^;%$tǶGT: -wӟkk8{v4U􈖖"(t$kmlN'Q5& 1 L,"Ŵ5mpȌ@ ; ni$]OcAL]{ޫD!UšZ*%Qeda%r I<'=r@K@] r6@eta2 okrfY-ŬVUXk4֝Gy٤ՄX4'Z8:,x~q23Yn&^yaa-ksS56i+yieE_;/y_"u2'l"XFs02L!C*bs*^"Bdj<גlj7fwl;(cb.ÏMJOcA!\o^&X.|t'=x`Z[*U#$o*MZ,:cn:AĔdR qFFe)b 2))=Yޓ4^s3(e220`̥;6Swa݉|w=Q2*n+>wד~dg~oɶYa$ܷq‰BnG+mbj@(YEhXY-،F# M$ׯ^UTM(@݊FQlB"EA%eJYU*aFQ т&d4đ&Y*Ube%%RBgUffC1EXz{+]OLƁFL!qژrEB`0msw~@@&zm!F[I焐B(J0``(P1X F| |JKDKiiH0FD!נ`6Uͥ$fTQA exuIZEM^WJIfJFuuVRR:0S$LZYh1 JRTTEiX,֚d3! L--PTNTwVmJ3)@8\TF|v)f3 JbT@'Yf2א& b" xMC@m?L'jeeF r4 Ҫ @Uz&IfwE4U)JhF .M&SjSX؝-t{ez43k"Fi<>tszp8J?~?`9;B* 1 8ߍҞ~hyO,j8i o.QGR )L0`d(KS rTҍ)MJTW)%)+zUW=ϙفx@P9V(8oA Diљ:s#M;xU%qqS[S izaBL5<Ʋ9l׏48e=<DOT6N1Ȕ$8cJ؍ٌSm+bp X !@iݼQq3N +R{gfmVu':lRe52١62$$ $!$ZZq8{eD׻ikf6=j)Jlo#-KV\j1Uvc"R f.K,+s=iÓ&$AF`#ޏrqIL `R>'|@\;HTLcƘM:@=<>`˯=!" £XutDIҥ^]2Ư#vLYAѼ뭋%]9F2,VĬ(~BW 1&V\aR¤#_r6۹5ɱ$T5 m]@J}JBi&=9;k&5w}`4 4Xi! u|Kw! uNf|o\C F@lX-(؈$#`زfڲ-}iؓ|nek{ ! y*z^T&_,a% 8r Rh$ <98lIe{RLssss@rd9 UuA؁43@8R < $_4~rmfWbr !rHC8p挬|<,}4 'q3ɿKF\朹WVRHܽ On>zIk+Prd-G! mn Y~~kh̦"ʫdAAl b/]"iИ3췒k˲g"6! ?&{Sze7v"){&8r䧲`>ό0E,"f@ ]`b6Z7 g)LɐElC,b,d4v@'PO)@_ CCAM7 =݊FZPi\En[ۏNMb7mc5)Wo:>-'woSuy1=hhcZX਩Av"m'Mڇ;qo__J4 #v; ҬFL^&Y!LAb$E|W.'l*;DfpG -Lv@Bu߉>Abz=Z>7qʿg]$z!=~ شJdl>LY-Q8u)NPɬaXabGFt"y:qE&˨rJ{ͺPȎ )JMѢƌJ; IưD{w4so~ћL\YҊt`hKRzdhjS|r 4j1$R:fҐWoA$7]q!7}h=7q)](MXIg Jdٰ EU-oxH" E%c,kI4K_ |&w?)RKa b{gq;@󮻗Ѓpfd.9x X2Y_IC=)ٛh13MM݋f%&2]lgBv I anxY F4U \rAcVbDЋ rH<֏y`߯.[QަW_Q4B-BH 5A c$tC#La3)Nm(KƮ+i x`;m-kl;!CA:A6LK$:p<#P'՛}܍`mG|;"u]Z/c,.zzOi1xޜNʴj) +I bc6?|t<"%D D.D1H&})HS"ĩd8)IО|v*Vcmyۅ)~/j](h4!=w/Sњy^&YtѓӀ`r,KͬEaÇT,i,-yNu ڝvȏ{ȴI<1E/,6ţk# K!p(7y hÑ,p]x4ev5ZUl2_=m妜xX<#>8:rP 1' Z+|P8@xFt{2s}xI< PB-鹱E;_]B w 2sMzX4D!fI}\fx^tñ{:6Hzrj-%5i7]ݮFkP5,V0혚 3 5lKVۺ]^?Wש_FQ0_͏#EVF)uٌc8z@Ru D vd)!JJ(ђ"4^y\KUVㆋ|W>HTIS7 iC ƊE()d-/=~!A^5#"W fh,, ԥ 8DlVPbޓNd 01ESGu̴$s #sSTݪ^۵񯎉AIDf[2(IE$*I j\+?!|,m;:M6 u 5 :#N z;8`J; #mklUֶ&Bs.jdkQ4d?Ik`յ0RffR̥2) kMGæu!ҜR.VbXj*豦n$KOߤڥ|LשּׁC-N(%N)#~!C1reJ@xӿs%IQ%/*,QewS'drNb:#:2Xqd9؉-%BaECOOEGy= . GEiIi]v PTBjR HaBS0FC"ة{7 ##KGxXȵGS3M?ݲBRulm1$jĚMiiC[_Q0BL a(xYB8ޡ>DamiLm-\.YkowSɿ 0a+ӫ(ІӠ1E* 5-pN3&iI873E  $'a"AD <& dlXPTTPLw@F[mZr·,V &]hU0=Π&TkBF,+ SVL > s߫{=qhz $Pq)S'! ʇc)dN94Y;4U]eڷPk`iwsw3DwaLLI ɸ(ܔF>nRHJfh0`0r5{ѣH gaE h?<ɪo/ὪyrM=}:!D̷Qgε.':ɋ@0qs6'zztm䑁(cJo$m .Ž^(5C{DH2xmZ6C);QlSVŚ,L*LZU=lꢞ]u|qw){v}җa&Gamcvj|\܇FG.:NdȔh0s'2)l=i2>Qo-0iQ^'89")CVU"4 }N ^I$~d.{~ ۩dԳD>|L'4F % HT&~qi,i0S?$(4CnA4֛Tqg:@p\sa bŔ-EG#c(drq`EF@ RGMAAIV6  F(BZ[ R-)*CufꪌP>H7/^!Y2 yRH MuƼ $/ i֯9 Kl_[apmLef&O D`\]dGH,h]D6DEAꂖ/z̯r")!+#Bi!_QӆT)\PFzҐ6h``-\ X wC i̷ۛY`4z؈%MKr ́4_8X YNQTѾG3)²Z @ $iwRU9-C=,nM  cǏ|LF2Z4 a$jy%ElR*RP,(wI \~©Pw=vǁ,&*E7"F=8:`#XDž A09VȌlThϩ P=Nл:XHᾫe V DJyBSTZKqv;M9(tR&*P}רwv’P#mFFUk@&![. ).]J'Ӡs&Ⲝ&܌h9IߡeO";btƨ;0إVF`5GdwfS!25&yM=ƟydU?D3L gKb42mVl#]V `]@qM8$|]h!sȅBNPGⳀOw;,&0b4sg^>;_:蒣dbPD /͢+L'-n̓t dp|1@nlQM$H"y8I&l,L=a6@ iWл IIbJ~SX~9#hw;[Ý'mN߁ZKdyN$Oy*0`&,?T-o<}V V=_ߛoqV,аޛ䪡H* B19g97 `nOϽUhGp6[N(M}7,vV2Eq0x-M '&ى##pxicVgуGé_?VX/g1U-ӥ6qF֣X0KehۼoiŞ_me+%6tA4 )H!n8ht َ #V+Jkd)Vei:uچ W a_W/w|鑓9˟i3|mёCRC$8:pOȡKb4aEE?m:"$>pyyskiQ,ebbPtjuxC\fC4͚nm+wmL,;ڴQbTpIC=$S9')Gu#$ܷvnZnS@*o7 x6i$),OP xŠPQbI#2RQIRIE'!E`RH}$kJ$}c#ݎ^Bw`!!,\hp|9JRo0ЕN3!UcH,wf,¾pFOM~4t=4d0aoi[zCbOp&RsD n:]N @闡9 2  -nN M~)MMmI! M$T2a7hI 5cuA,2+Cpkh9tE#DJ Qrq^PIUP^-&6`ia}f]HT%VmbgH\KjUU4nHPCx UBJ֩ {mݛp`tM,1ԥ hȓ)a0UUT'|tRŗSMe꩖qYfׂ)A(*83]B}>=Q2y 15RYb-%U.HlQ#OCbk*l I0*Ic;V$O}?S?I=-aEPq'nf#e=Z4C1Oџv#ޞa?S#DŽ ʚv[l xR]ZV$`$]S/sF..%\ ͙c_wT0/^0-bwBHMPDS:_b`pLm4Nqa#"SCl13QA1:hzz4ԇ>ѩ.h5O LC#o; 1#Qan n4nSP1:$trDrSYmj"oZ븉U@fǥ)oA @O*rQ%Iҩ][0z=ZY‚(Ŏa"0%nzOdxejRNӑ}=ϓi'2 oaMt^U)a[c=(ܙw#QޅM<4{wjnۿ&&OAyMFW+V$!V",*$%J >8#D۹9ٸnN)/`ĸ%"isc6d㓩yg-> su m=d8PrϜ'GrӳhFT6 yʁ›Jp5vpGpԛQ\Cw Gu٩0jI5%4gGqrK*YmgަZ-Vr'(: ϜtG<%ap`1 ReE[Rj-m8$ k mZߍJ}TT M| s519j-^t̚r00 >H̓t5 km(~hET w,OIAwX0@v3G%O(whY)O?{18f\nS ,,k p٥^@V ǞS:pC҅X-86C@vnc B0f" @A]ä#J+(4 L8M )yƍb S!#(nT)>H~sى Sbnß땚.41x9Ȕ: cCp(>BQTVe9N|R {J5ifL Q5;n㣘wudpI2K;-|G~.D"ŋoHwlGIesGuc~Jl?[37){pȴ9L ]ӪKH@ 4ƍ:ZmM(n6Fo6&8Bil #!O3vhfxBt|F|1):_fL&qHNg^(h)Fn"c/gtba߰C#HQFLbצժhXXUH/1L m.d\,2>US4ܧ00B7v YfYe\`ځ䏬I?P ۊnn2癳*|Y Jf:sN:uEق'K'N+o$#+eO %=I)O>~i4;H'{F"FM # 0ȨS!u=3E9$;i"F5une?`xfф0K]H0ZJV%Wfƾ ao &DCD[KtD:%SzvƜ9QRi8,vȪ0#;Ç8n3g қ#lce:"tΛ9jj%8^ZSDtfƖ*h4Ė,El%z:w^VVL+)qL}='}ͻ}? x>#>ԑ=^ګ" CI}yCrIclzCf8IX1R̪`6u!'9?{UN:9= ꘾BU% JK݌yެ&Ƹm#R#ʼnxD x"6Dn l l6%7Ia0K'vlF|`0AK@#P 6KMZM^o˯&1ݴڦ$cUC_^xS5IvDECXŞX';`DI^kšj~䄒`bn)ƃCv7:-܆c''!60,Fܥ,);wW VE;Xagdf-gLe<191ofL p4ߊ&M7Jg[ q`ךi.^{kcPͤClnmxhipz;xWʉkBP* =H=r`Y1 +|z$B$FIEG[u3Z8(X9ĮrRKtl`E "bmU)qJm([yaRm*sDbmq?03ZKW{mGYЩ%[V[mLW%þGd'z`PABՒ$VHd1$@dC)&"Gb2CTΜUqUmYmB#HAx̙ӴhgOkj3JpYӐq1)ۇE>dgMh 7+މКJ6&Iڞ=~)-&ܷR⪭b\ndpu}_ljY$$HT,g''(L獃& 2x'7nGjzĚfI%)31hUU-*[98Nog`pDz&nlPqEqWObi'9TOmIޑ%:~x[~䓿~[[ *8=yD*OIӦ ?pߓA`El `0 T"F*(P@.t114c Lu<+;Ҳ""JZ!0ba ړ>:pU`sӞN@a)OU9ɉ1,X~,vUJin.asg4#%IA3I#x[k6)܇VD&a4$ȌGɌ}C-T(' -*`*&&Il& !o,JZ닕OU H0wң [G R+v6g2[k+-QZZI<$?xw&|>kl6Mu_OWeɲL(Д2)C g,_`k LƱ!)S|p%M))IJN#*a)&df0YC7FCpFDA2&J0)LL %0&Hc0oE9ov9Knxu-K~Mq̴8x P@[R֪\qwnFK 5&ٚRɐfa"w?'{yA߆?DA|x~'G,{Q(#]{Q=Rxw2'L|GoZY/> tÖHEB`0p<}6fb~xg #?2x›lxehuchюH~u0iط_^ Ԕljm8g8G+Aѯ0f{bqdϼR}ыKh%rOX͓\O\aٸ/mdes^őgv4)8ӈi8MҌ>x[!I IYD…fc2:e>K':-eEAIV@eH_| A`A:ГQτyNGJ''31X\Ř.1'ڃ׀H' 2 MAZ%PPr7YJ˺pn a2jXQVPJQֶhlF+R kJ k+JO cyeQ'˹Yu9Aλ0w.t'ZHPaeXI*6t&KBj~ZNǹmID' G0n F2I]͎F~'brq99I4IE&' o_?X%'E_Wݾed{%r 6?sy2 :âysO)eg埚4"~,2뇛XΒ)"RF0H:YD "`<#>J=)97n? FgGvNO3,EE(Y``0ac,,(*iZ7iv3MDbR1KBZZva'fhe6*"D(~ߓ%_~>=[..&S[Iu&d-%6 qlprBK2I0+]i5]"ԚR-)ٺ"+deK3;uպf*DTFDZLʜ5˷v鄳JSvmwԤ$'n뤹ԫ 5sU۷n̛,k\9]Br)[Lh]-4ɌJ5RhS5JXܖ0jb6n7rb"3E*qv` /=nL)gx c KC :_ -)b"i~qyJ5*r@쑖:uC%7s7Gm ab2opM܏=1JifoN5=Z(9#㿓Fr$!ю;WĔ*#Ǐ19_XI󢟙=!*rl3?P; *]eXe,*ehq4 ]ZOFm S]8c*q8ݜ7lO&dC5LDAF0&SlzRk4<ɐdf? P5I0z&6 )yOse9 " os@,! 0Àj{ND(_~! |ߝmۨjPs>mjqo?94Tm,9C5!6&F 0)d`dfS3ڙOi4p;02fM#`60 GF,;{pIďle5#|l0P找8f}XTi>% 9>@%bL28LjMdR@p2) [Z E0)]FX$̺^3HۮjK5),Ͳl241nb?M=0xL-ן=u(G$ȉ ;3hFI{J^)=QJW7%)HXyQ1hEG Ǚq4~p}L>vcLګywz4ԓuZU-"cyJ!g*;3ͣ'o!nO |#[WTן6' v|{}F0Cp )^pI_iRiӿ}P*E#2yE;Z{ џ!0#6tG sInÖ, Q|aGjc4&О?Ēy$re}շ-~y?PvN337)쏌=qGvG#N#9y#GIN0`bHO ȥ?VrQ&g&R&1W5=WÕּ8VUIZNX8Cij%5Z6[k9rֵ®7hS6rU`D 󤃱2N4y\LMY敖1D8ʚ,ŕeZ\˸ uBz4'h$$4LB01"GN">o_e+ři,K%c1f)Xfj2 sg1t\_/nU_kU!gE7;%[-Y2wsLJ0R?t ON͘i3Q?p=ХxR{5JRp/} :p\}}rsj M"k~FyC`qZ9F'&>!!Htq6:0C06ſb~ zG/2TBS:ܟ*oڶyIUk-$jdoϊ'v<@/Typ~ $~1 $1 4rX~Y"'Do1 1kqeJRڳI D90!3bt߱O|!A㒺N3ut0¥S2>gZd4 ;V&&W>:23 IpMR?@3AbKxs1Q1ڝ0F IICld0q #݌(J0JS##!xoL̊RhL0Q`00d`Ȣ&C 2SH))30dfj4L RM1J& BHJ)J fd0S"dLAh4͙Hj5&&UUROx>3f%d\JG3EJѢ-Sɯ-eӞv,LCaVڲΚl ”l#A<w{yl9g12N~kzQ`JT)$JVK%)JU>A xէ&H`qu94r:lͼݧt~mБ 6toB>p#{)9$r(|Dqvi׏蟗0ņ<škdX#UX2ے;ɮ5^5KN⌼e9ûKˆXc2F%'~7~װr'$|'%Jvc)$,$ۓ́F$`SdR솴pEJ~ )JaMbr1=AB}, B|Or$Ո呶8 # 1㼒;n4qY-eginGpzsuq))qN*qZqvrRSzr0` RS#20q@iyPU-_&Wq 4S\jd,Cc@(0<O}``E?2QNu=|Np'13 #!IIHyA˽C8F8i#Ft8Mi7EUR>!;@̆q~@Oy$|B!G8ݹ7cPI2Sn7NwvlU]aޏ}Fwv6ɡFN;tpi?MGqQf\$0>+ȪD5j7Uև.oҎ0~ II.7w93Y8j`ᑦEXlI!ɍ ?Sa)=?Hx=1G O~_KS~۳fhm cmD?n5=FA#>rDH#ӓ$ys ;ӽwonaDI*NF9&I#9d'F*3tC05Btcf:#e41s\xyrw;=8,XtA 59D4*VLZ'O(/zDx4Nc;iEKk9x?T<fG2'p0= j4pp8z2CĤ MG2PF,3+e1;g>~44r3{fH4ȅ@N3atCb!N}C|筫m\UK[SI'&:nj0?p;))=PI&-Z컠QROĤS@D !ܫU)Jqf5CE;4ZkOH9'JR6rfr!'$Li3rrG$9}:0WZ< "O)myȆ?8`> 1eEhIK4& ̥&fjѣ V jnh4%Yi&}ކM?ojiljIL 7BɺݚFAJ4 #Qh4Ɣ}$h4W Xd?}O3?هXۙx'XmQ4><]Up.&1tw\ss&Z+(Ʋ -daRbmm%mmmZZҍ/ % SN?ĞOr|24d~~?4sI*Z6%јs9:X2 VGix^N ٭T2\!x1?ZSǓ dy$Dr&vG"9!F;P䆓!a8 $8٘jڶ~{!:s#/^m:WPm Ua$wPSsZ(,2hݸ|R)*T9ݿ<Xn:aO&';?\8p"*Jgg)[94EAÝǧ{{U%QmqF{AܱĠy$4MfE7#˸g  07I$ڍ$Fd"pp7IH{$!=ZCք$(hnE?[yp^uն®=IXCHTiG@̍ē>hiG'h?$#q&(mm1Y.+bcFG(qjgdm"J/dکiNȟ P˓$Ȗ%TMݤ݊(=OPq#j''r,3߹Trڇ $Iܦa𧟙sCVI%Dl 3b*TbH')Mi;`WN=ztS=Of܎(I1$¾+;#i&NC';|5Onzc4yhO(G'u d9gURm4oSN?Ն֖eC>?-;嶯3N#U?/qEE@UX7 JUJn$S9s-f)0rq\piFB 1Zc+CLmhcZBK,:!E$ wAC!R"DytG̒83 Rr 8'Gpߞ8rHrOd5Q$čC#>P#vc>MiZi=FL4MFs<IʓG=8ǜyڇU1, iGOA0[ mǖdw&CIG*97#,(rs9S I&Ih'?oabI,|RZlD05/Eٷ~WKólGZ0eA4D<ҜlfrRuQLˊKilf3P0Ԟ^/)ᱛܜvhLxf1>UUUS'HKDR @C'&$t(#WO(a|$sx;5 &Ai#@8i#]T)rСH=5̔C˪yPY(Ŋb*"D.Z@E?=L| lu\m9b&ov|b=>ɏ!=)NAa}~ZO=g ƆBƞɦqs/q6ӭUgRyޤE8w< x^u9^FL.nV${)ld#1Aii𶭶on6;iMfZ?,~XUm]R߯&-YB`l"'J QbG2z"LƩ5y!_,R*`W~H P uLK2135ӥtxyD,c$0*8p{I :>(ٛx 8Bt$7~<# ص(L`$G1$%?1&R Pof'Dm:sI]Urk'@TqR'%6 HT #hogmp6s?P5XI%? ITCaZEIšfyk43PO #Bf}Ꟃ/ :C!$i!EʜX~C ;[H|t ^=, h>:>_, ^>x' y'MɝM<[-B15WAlhU1G&JrPDL z CM*D棛E>6"2n]m5k5G24 h5C0ft֕;dsAYk -LaT%'-~phэ{QJh4cV&-.S MH2 ƨ2xnCz4P6Si ppdgk tr̞JUB)-iYQkBQUCTQb,w MR?QbOVŴZGۃ| +1)R9hHwQD?tu:Q&ggы?1]*{ubsIT.Q?"[mm;!FL'ojwm#Ù#d9ON#ꟲg~VrsZ{ajh;qPs< Bf>5sN!^a0 nEMjsN)'5Ϭ"FM:BȜR)$H)qsM$~-=] jj *&r"g{&8z2qV~R႔=B4k )jGkOזYɶm]6TgbsZ&>jo k0â|ѣlH}Tl !&МRT>OJs̎pgHwB`%&py\d~͟ܡc&':8',c[Vm[~kHЇB2WaersG,Ԭ'#Ң9]k&O:mrŮ\˞8ǷO0i#̜}AGBrq9#3< m~qUx;Gg?mj׶S,x*>#єJSGD'M~by-Ĵܴ-lmca =̍1g6Cd!bD}oy HsCZ{Ub+ [n1mo#ɼNpuӟpJjfrX;xfԏLI<ۇ$s #e9i*,1=) )ԞRkPrjߘ917+O<" y[c[+IS"6T7QN,+$0;0s#As$8g0K&Xs\;m\'_ϕ?e[->VTghc!Ӣ`D,< s m6fYc}Oşs`ݲdɓ6L2d]K~= s $RTkF]͞|Y12Y,Kc%VRY3RcIW5)o10N2'i}'m4km^/nry|s✛d9 =_z!}rM&9)$Po-l=pGZIbI3LÎ)E~y2$V)Jo[GxmO0~ Z>hM0aBa@E4"R```SE2E8,m``°T rWuD&F9&v,ʲ<9ap?PG =$JSAd1<39&W30mV+?؆ʀU (rne+,'rbCE$;(nGH80Xof87inC)&$'YۂzsWGpv=!=_>H$yn'Ʈ/YŞ\$ɑSZwk'h2SJYY2,#rl\aJ)͢ҔȦ$J3F'Vb#'X" G! $L*CpD̍7恚M0 &z /_+X<[+'GLUiQeYRX2FV >1ĨP1`K6e(4YlM2&5Fɖ*OnݫؑJY~/.ƔfdKFe m^24A dDg'& J%ԍ+6[2ezsUU*)RTE%&H0a)UUUuhJT;31DT4E$d*2Bd#5#44&A(!I dQJ*IS"di5" (Z ( PC(Jb"$dLIJIR3M ̚ dL2!IA'ICtj5JF JS}kYN& d0w-ۡ6ƈvffb6ţL`i4I{qg943*lm#dm ㅌb`>32 ![m[mU[,1SG`o'jXŜ ($$x<9S=^Qt#rvdM'`()b`)#*ߵgC3N隻-- J1 LK LL'\l5ȡ'Nw:ǿc#wZs˃.>dk ~s$Q{H擎hr9I!'DrHc@h?5ѡ=rX~zx4:YSFڦVȢ.͉eY$uI%~xQLږHLGv[hDFi^͸d)Mb$+j^YEmfFb![һ#juv 8?tvcӎ7w7)be7#r~(ݑ9M&s?m=ćr)4=C^|儒QD)Fa_71< 'fmI?vMHzчS3өW+>_m)ˍaΆ)D]ԑ1Ivȍ?.>ݛ;9QE?:YqGQi$hJ~C`2K,d#XJlM:o7~}cb=dĦȓS ^h>IiƉR ްwQL#77"pfryp#@5d#QJl @k%Acz+pn(&{-m RC@TPM&S2~9|ⓌK"98{v1,U`??g5ljr a.*j^XvtkW1,$V5,k ~=Hqv(wѨl^1a3f|8""DjoO"~NtG甦rᎴdLT8 !ydEHrH )G.rF`KLydX7'3)fEx^0)E'P~5:t'<9,j(VoɫnUF'~w7S[ѝ;Wُ9'Q6ФYBXN8ߍFS#? #ԇ3[m7sednG Qx2jGlt7JOtO#1[e0' ~ڿ7 9-'xoD"CF 'D?mV&g#{:3ɻ$h=D3+l͉y)kfy-bՐ>+(4}?q剄R?55j=Yd DiZtu}CjGUhRzbi}eoqX.-1Ɏua𨤩Gс:E}[༖1mqx xNx/jNt;q4Fl'[8;q {#`?H}]f_=\||3#洪'M0I0իJ!MdMdMdiSh?m4՞BTb`Mc$x~,c:GOҟ88GX,2b§xSK5'23F?Nsއ$v0qR]ؘObdSoYqd)}"nT?lT[kKh-Z2(FR11cĖX,c8:,('w?6S Ҥ8Ven:=ўWa"l,\O5HxKq)]O.6QE(E;m \c'=R'"FqƈAG2↛ےm9&ceoE7S)C'7l/!9i*G("T/p)-6'?/&֊WqvT{jzye^ O|)#mBr>O&?Gۿd8Cy6.C##~G9!G?d0=` LJk0`eC<H&ܔɱ}V4|Js]k_ہ مBFlf O?~?dLNbqHsl ؿy6j1>$HcbO4LL~aNz r^3L.np77w4P50OE9o-ǀ9,:\MMSΠCAo1GW$"N9XنsIm[m_~^\ I844<0Ɓ $S|o kDr#XSf8gu䎧&ĉ͞G<D`y"\ɾu#ŏ|Fu˓TÆzN} ?Iht#?DT{82?dmNek LO5>i:?D|B$n)pw96%钍Bg93 H2;imi0ˈ,++# Հ\ڈ~lɼ93!48쉢s#I!L$9X&&'6pH9Y⬒ ȍ2j,ɻ=k7lX=i1##(Mi4̉ϟTi5OX40WS#p?Las faRH}ɡU<ИFt)bڛDڕrN?Y C!!TIU4L,, ~t$M3A|?;ilkշVլc)څMCIII >)6d O5I#TJ# ^>k%uT%O2}3q?g7c @ gRhJ,eS20r_LT`(w!Ia1)Oa F+_I k!fl6T@yd"$HD8 )%Qי)bDJ5adq*<ܣTQeIJbTޛe:2c1= מ(arU'|ٌFNTL /pS-[paMS&' 0}4h?;Kԍ'SˏxS~G=<)Ѽ1=?rÿByC$~B>ֿ}NHGPB$s#jN{a'{'b= GpD;Xꇤ9Qsd 7(y꡼g֭Z܎G=?LsqН/(p2d+@DE!\ȏQMl%)7x7Ӟ=u&CȆD~ΠytKُq+7PK(9ݛpG3UBpP6PD~y,N Z9hiz{zY9IYE:&945 CRi?|zdۮvdx$OyCN;Dwx$~wVzuNPw1$O*S o"'7i@JImU7ƇoBkN,*y4Ϙuo =']ˎ~زJ\qps?A*~}_|X{~d?7=9I/u񰚵7^A? x}}^o1gt~BUmfD:O>cת)哩N!G>vyԼo̞DE,O"׉Obyb9<[yk]^Zwyk|s 1yk^P ItM?WT>:}$4=K1<^ ٸ)$!t'O?sLӕNQ94=a  sGC~;`yS~<~lkMi4Gr9nhN;i.'Y?}Cz|ϯ M"AJDuBzϞZSμZv0$a;8Èl8))S[9o08'i9S19ҹ5S1;x=Hl;vG;$yese[gMA,{󌜹zcRsR<)^P'stܣn~1tb<{ǝwXv:#Nwvn#ELSx<ڧ0v|(wy#M>2UU;)-M,,|cL1i2RUEE^P*Mڶ+:1dQݬ!ߏ|j }vzxnčN&MO-(K,gdҞLgda8 uRbx)7BuiOu3ҋ:NvG<v}dGI$g78Gp>>)`1GZz8kfrg|G\y3=q ?8݆[MiQSfk&+j 9  !TQX+HcNx1sϪx!Cߒx`_VwиCCy֟O81cĜH>3/~RDcLBeeO`~9T&"f4ӎ\\:&|N,U,x:`OS1T'8|Tzqi7#OqwDʞqT{ߍ3rg\áVyJy3OBAُ v ϼC):#Xxd{arGJpÇ0;A #'vBV&S+=߿I!ie 72YV=<m[hۖ2-pmۃpg,%rvvMv""2rb?|܏'8u4sG?C v?@o!?Z9#q׏>Yv#f>#ԏO9!'>Gޅ>Pø(GCvx!J5?vˏQG3zs'=ZwNVUz4Or:q6OJhdYSչdOyOGO%>KYgrX[zz>Xz*d<(އ$">(mJyQ~nvi&='@8#{=!`<9#Qf} vE<g/ |Җ'~T}O_(m'58=|c>B}go!Ϡ>1Ztl3KNckuCԍaO6O:COc: oWjOHs');'döǘ6 #OO5&c:qϟӶ!WY<1蝞z\&tG'C˓~< IS I.l\ M&H#ǐts oNδt?}xHt#G|~I㏶~_x7IO<#V[뉼N@nٓ9ΜYblgXTc"|r=؟jf{Oq1=k΢~y8uO;DvNƟ4ϥ=)xwUt'<}_tiUCۼT?-=Q_l?rOcg9=OfIRҞ >DzƖJBr2N9# ZTINogԪҭI,<מ ϒ}ܝYt"7l~frEt7۟re/xY's[K_Fwp&cRvd(V!lX`p\ݼE_o}1s$6(sO)_ 2NŤ#':iy ͸ `$sIGy{'8O<|p#AoHɬd*rOloN ;NFOTf9;/&w ~ݏ_;Qߗt\ ߊsA}.1wcMq΂pIj(1.)ڸSv; nS???B}Yk~97Ob\b{oe^;& p>8c쟉 }+=ٷ>)&Bé_^tg'ssK=S5bĵY3ʇ+s>{/]2zʅ]W|Oe_9(:hM]]huCR\ ۃ4A/cPaXΡێjn89e2ĠDrkmo۱qs41~zi>k_sGjCU]cRiSO9:OȘw~y~inQ)""#r/]ڐ +7)($&Ths;Nc09o?r%_eqAnw@fɧܴCŸ94>퀯| 8Ƥ50}X>ST"vXkPs͐Kh/q~/`5y+^*k^2Y0.< zO{ne[QCO|'eymHus'qZåO vrq*kI,BrpՉ[bM|By#;UxM`,Cdrt UtuNJ;'bg&HCt'2MD)FA7Gm̴X?$9Mgz״e̎M0|T`3&l|Xᓻ& MhX`Kw\B|=s{( aAOxQcSPPS>gj>:qg3ۧu?vY?<|7& vkĒcqx*"v~$A)\p .n:#ÍH۝IGwrG䣚wkGo84r|'m%%'.Li:v#Ž ؛qn͹'6F𚄝&9zCI=pt$Gѭ^#ü?\*#DgڏpuFJvIx=Ij}Ǐ0ɓ2p|Oܟhn 'Lw5.r#Mxhsgr44BF0;TᎸ"7mWi& 6C320@<ɚ&麐DD\fp+ΘhE&l 0p2!PC 0pxk&&jxuYcR:4 c"8sRa)Aϐ4 #( H[cr8;0×38SæfCy;9Saߕݱ* ѲG'PqGNr#7zk(Cge_9V1țΜC# mNxCz<@' M#ny>hz)r!ҦCrsvӘ2sgkth 7ɺɷ6N6Ӓf+:ʙ`ݒF`jdpθsSPF:|w|=asC|RkyQw308'duM3 238'34ɵ*ɜ6 sݓ7&pVv)4d#q4;=<{z"8qIpm LC:bd=㵽t*S~fJNtQM4oGdQ͏ MMs0E1,<`)l`mC3tNHnƑΤf:Clh7)LB`Ec\fm qsC!=LUX!{,W-[r٣!I}m fqđtG  MFt4JiNI䲮1p<{Ho5ē###$גDܒnM4 h+I2M&be4n7#|9#~8f4Tbɓ8ChVl% F vR[,+"%``)ʳ#fQȚ ءf<7c`nLj'&S>ˆ Q2݆(7Jd#n3nƲ ĦuMk3 vRG\sJZ[r,q>9јQߦsr7g 0ë!?]9QFGzRzռk0VCC '$;;NԌ6L29h=#tCht.6Gr{cu>r)':`fy'v'(nJ|k“Xޞe]U)NSdD쓰f)G&:"oSIlƂy8NJNHw3X'n6_1mn^nH݆PYEzȃ`dYDR;RG6xzލǝ!2;'{77C/6[z±~΀NsgNC8$nOU]. ;[̫8.8*v<>TFàN;3y)4t5ao܌|'6ǁ7&{]tC9sSl*4?-:'݌mۑ0aGVF!).U+Ѽ9u 8 Y8$&QmkYZؽFJ1;$U }a-W>!=p\SA(tD eRĖEzba?}r&l ځt1I/*bfU=UMUy?kZ;OCPJ<6ރq9?m}GX?IS~<gə4΄a; n<OT{:>U$i s-?)7$CG;iܘ\-*!T*Db@_; >ߧ )}P)f7ꇰ=@뎘uAx]>.ʨI) F4dM Gm#A;c;DZqtO PBP r d8JDb16'J7BD|q#ңLTJlj:>G>uc@W|Ɇ2~G'>t`K|F n dɻw榣^i>w@l_\ kmR˽D H6 a7@p;(iR8}BFiX6 @^9_(\2nS<u^׿ b!$ ]~#QY<(y7^LqR@㄀BE"qJ.&v[4oǡ:B׶to)Phל#tKRc,2\ϔ/k9>݌g @\hWɾ / g8Q62D2[|/qOVe'::6X:pp,h6279җl4[o'x9ctI '>->u2dYFd{<4关 C Ƀpwþˎ!8s![qSsvx:{C<ZL1jª mn : R*~ ڎm"݂#:'raV%->xbQ4y9Lyc@XȽG:^]RCOl;qAgp= 3twN`N'G̈́kw0ci&lM}c ]A̜ʝ%97rN1^9$Dx\N!Dze2be1MH2 42a1Fm˗4pCM[Hp pFƣ\|fɼ8\sysQ7f]UR]R^ po?0}?,m'Aԓ]Y{AaQjhZ1R+'}=?B\~UY蛕5ۤ;xx #o;|Wۏ tޓȆJՆcva,,PyCv-o^J+]jC$IJZݾGC/՞;ԥ70ĐM?4 srJp/`C~9V=YО8OMۣz>$Wlg8u\9!y'WP U7/AST9nWԺ%HN@Nh?'ux;n& ڎ3flS44)"@JH$mI3A 6IK! J",XRQA IlE$d51JXYuUU[+b}8>y=ZF?q=ǸhVדKȰdXZK+[_6 %QĊ <>'̀4'I;dbxvPdϯ'N)k-&¯GLTU+ڧ|8Oϛn kneH7&$ nS!('CkJ6MU@qΎӣ:4jtwXt$dc>Ni=AJ{wqgQ>y*>{!`waaNB/.RduLubf,JEl-eTI :q5M"2*m:D$ CfC^FA-n2# 0Q?f3LҥK"TOܙ3&fLIIDȜ=!!Pz{ݡwZ+zuZ<c9Žv{x'jNwca,:t9\RRY:Գa֎I7DQt?\? ;9ޝĒ~pQ7;H;^mY'kM:uhcIg?xQʇO73vݨR7.Y$w)J?z0JdИ=g!2?BDƸyad9),(Vdk=3zClR;W1ʅ )J((((%)JRR)JP)JJ)JR`9UV*m{fhhO~me1U*! CI$&C};I%2MIQ52$TĀ3H̊BFšFdٳ2$Hْ,tr8N.Ke[o>)4c/uץaEɝ2eY6fd?S~_ٞfgn|@Xt>O>~Om45t#'9+^xs1'$vO=9$6ǥ?P(BNɦT^fiifvDM3͆w7v8N+I7sm7 bc 뉼4Jؔ9l23$,&p]Fr? 9=X4l-ʲZ^rSHb`0h%UQQ Scjjd \:$1*R:t$^]3N e1h1p̠Jij3dMRSPCeRhlY: M$+˺R?oЏ4,CI4%>7]&dtI&Fʒfrzp Iѫn<M?4m 7&N?5>{|q&"nWʭ^Ŋ$$)QUlbYۧ$SdjsIg5Y?}Q':N~nQáχB%Jt,2= Tk#5{xSSVhEL1G{Ҕ?ة?TJJF.Xu+WRf?mѦNFȪR zú %*s( \93ԩU#BFV*$~4J)[mtq#'I& OC=A[Q ʵ+ 6%+1~ 3O"r'}N@:i=>\br8"88|,*.FD8p0U+BE0HQ#3+_J)MI4eYlVIb3)3T,M),M(ر&ԅElسl?lۧ}GNlέ3̖a2?]ۼG{]]^ǿQbTMIiRT b$7' pI#98)鎜|(n+rc|uyHW|tF5zY Olr㼉DcvyH'nQ4GXY'');yʼUUWRr({|YJ0X.Ab$l:J?,󞈞%b1Gom_ǧфif7T/c$Ul YL&Ue-Q֖dc)U6)M`[,l`JR=@'9q'9qHO3c4ɂ~d*-OڜL,[2=Q'#C .yS\O+V/2*!Sx CĠO-\MFw1l;GRq'{6w?ti4OjFDEQշIz݊:]~COOť; lf_<"TO,0L.ӌBp8'u6ޮN8\r8|I#}+a` J'K2? zO,xi.^jz7GG_&TRwr<~4E?߽ 'lFgXoͣȥ8 C^q'y i]f3,o~?} r?T.8fh2#,InS8OI9 @{ JF~l'CՔf*EQkU=BVP&vSEQQq!sReۊ:wgD&uCܼs?'w?})D7e))Y qȦۍtf~Jq;mZߌ{a89V|j -Yx 4^S0苰J/$IR]5T6nܜ顼[VU񃶏D;Bz!Dd۝h#ʟSݟDBdvcf~8G8‘E'=˘Jx&xttSa*oS#8 پ|Q ʯ^">M\%~G[o{\e󋍢5MN#DBG B/ nHGpA0}`FHJ!U vyk-ՖjJDc6 OÛɻt`n\Ʒ- o ȦX\BhGi$j& Jt¦|Cیb!F6؜6(3#+)ÆN@iK8ކFЬ mN3$(WOr{{A>G<<FlF[^vS/Wث>\wS:׫b#󽿓S)M)=`vpSs#rѓ s2uӦC䃨:N(#lV%aIfRPRն58MA,II4),A`Jy%e;%g.֛U1Qg3MmTp6Yz?fpCtfo R"XNtx\O\k<'m !揮&SIp,*3MЫݏ7%jVZ,aDajɿ&ɼmrto=[llZ銔ĎA;Z{= cG槁 tx+ȇOT1>Ցޓ!GkJ=dDtx)e=ȏd4@?m[w~nfg>18SZvwY կ7V0<40CęO>vfݸ~vpÓ';$($~ {6{?9ᥠd ()Ce6fS`t70W`忹b}0zxaAQ͞>2oB>e8+~W't?@hןh;hȎ4wh8$|OlmUxZrbh8XfYʮz'<|魋'q2Fj`#z;9A6UZE)*Y[Tፘn<x&m]**&1 "0%_8R$B$H'چ)L\նQ;zۜvc;}&&ZnMX2+5Z3RyR)NJ@O}uOlQH4ELv& )@7ն恳@0b@,w`pHH.4eDQQ D!H $$IbF# F"DH N+0#Yd40b6a'g JYC F`hԦP!0 pcCwoB!8 )*T0YRF =aPU`@a!1F!ՈXD0J)A 04 i +J+cHPhi #lhXJ6@h`ҝK,ޒ[7f5$4$aJ2M4hcp`!C btli1 i(V(cc"ƈ; 6B0uԔ  +[ccҰf+n0bEU4 |$r.z;~8Sɛqꎼ2;"|#O9QɌi9m uaqa|<SNg6 IlӐ r*HP##߄I$G=1 +CthqƐcN4CcCc8)GG8M4э6ӌMmcC1i cM4:8ی1c4mCi  iB4ƜcM4m>c c̲uufeeefeݖٛfnM4z"@@ "u;Ҝan-\-[-[L"k:YF>}8>i! *+vhsN{st96lNpnFXΒUO<lHb[IpfeUL\b?r Mdn6rsWS)?r3& i Ϛ씟FrņfchAfe>>jZܛ3@6q\qC7N~XG=,llTQrfQ<4<{Ur3ʛC'9tNYjs⚆F :?o%GOO>MaB?mj{ 7ʌ & xNbH=P~ I&&Úal>[#i47?d ƹk dwS qn%5b⭸S φ}vJB3RQV17yrMtMs\2ujK;6I?kjV(~m L_dam睊Hkc :7DžyQ莄vin' ܇};`7ɡ*z!Ngg1tzXZϹ<~؇^>~ t:Ij+bCqli6Mq#ID9.(}V7UEad5#d 1O6Rf0dŽ64hшʮe F{:#nLTȞfL)&dĉd:x#mlL)Qd$"K%%u5HJJIi:]f$F,տ̲Mg-VU<t(7,w<㎬T'T;ww2=:<1Q#!StY2HRsrRa TRdS bhHY`IdfJLHlh!P ,Id) Xz)9CldAN{5w\1g|g޾2 uצ2 G7oyɍcS38mVKV\qbmGC>v?4rs;yA ȤLWQ`Z8B`PdBI)0SL4ɍɓhSe)4SSHL%w?g(dr,Ts꬐1b9ة %A R3,!OM7Fow`78*lIi$b1 bi_ڈP)ǜt-]h&jv|ooxSP i.lJ[]u"Le)ݷ)$iG:0K1*u X57o_$aϮ6$B0hA FARim)%M7 Α''ȍݶyhW5ۉbmgڝ;Co\ĤӪpgrII2Fܰα/̈[YɧكZ[J A# @O"r BعY1h>;C|&oS_`wrumbN@ >`z~~̒Mn%V11p#L! d]"UUUJ$t└TdL g{Y?~(nȳvTw? w8)F2)Rend6(hFg)CE&GK@ IaxJH=3=r+&DNܷcÔp̅B)#*jh1U0&\,bEўO9;vm ylbܝL W9s m(u MIV&y1A"JrNn$%"'9ͥiqZuQ7Wpj U"wHNH0n\ebZVSs6`jK&c8SX 2BA4-N^rդ{{ymR/L.͵^dfjw=bvJ朏8b#Ŋ9yաӬj*3Rú,)a[0x(cC!P)Aqy-S).1D0Rs9kU)A;s[e5YAdb)[e[PE#Y8V[bh:T4y7Dž-FQTEBdKZӛ~#89z- %(JQ)JQktk;t1,!M E(L 8& )IRhԉIY-)BaҢI5DԛHFڒd3 4"(WIwIѹh`L0)M^DaP]Tۘi8$dX:Toߣ Skn'<O[m!/@s IE!Hh!IIQR2%f`7(B?h=aFy Ǡ34&q <Nu h;S蟈$xq#$zGm$~`n}ԏI_]]f!JS0$YRҢb)z"|{P뉫ZΧXDNgM[mc\5'JtqGL|TSGP:s+m%)0)G׎ ΓqNp;ĽQLP4C|H򄟆0=a{5#ZkMފQM]b?p*:3\\h8W+UѰ°é:&qN2ՠUuow{M2*P K*%/> 2niMi=>i%J6 cfŧ9O'IrcHbVpCF뎔+{Ӷڜ8fRJ)&)(Q JmmJ:crVɎ)na+zlwWՉÇ$bA(DAGXXTu*(c #Yu8qGKSӥh- Yh@dsb{3-\b?.ywdҍۑJI5&Zvc2<>`ޑ)w5n}4!yeq!V4~)ǂi8>r10ctYdWU1ٝaFS=Bo9o[olU\hwm풊5hʕѲXJFkkm[ V[kk+%4ӻwgs\s:sqۛ뭶eVYVUh_IEpc v7',9JsXxc|ğ,'vr)c/nycS}Je73^wCFƤTџS;iJb20L45 1F{b䄚"o`jwMkL2)2J)cwᏗ-ʋš,0r0IDHCa/j_ǹը%.5~fĜG;GHYI 2>:..IRH`¥UONQڎYKj4 Naʚ ӨZy:Mn5wx-񞝽YQ7Js_  ?X\]b~9rѥ,Ve[QEd}''*q65?ڶknzɓ#l ]*K4PHA1J Ve;`ߌD%D?$G*#HG&I"yi滙Ǝ2Yz׊wOo|y),: fFOȞA)(M!"Rlu cam$`"И9@x_ږK;th~:/%+hqhmSy7OW@@~PhY[P%bC]*S_nMC5 Vm*6e@rfrd%FMjDm9[Cv hťM.]08%M`J:'=O=L&fNmZ*3v -+(bvwHg,&qUGjn0+Q pȭ ЉT<@}vAOuC܏=I4ͣnn}Zo@|Ss󹇸 ǷͿ(*piգaL^\{ JU*R ` P^0ymb̫2l wy:FE`R 6L9ld16~ i։L1j ;u"je]h;/wg >t%M,$œRVu`N:֎m;\sIn tDhKl 61[*Q !D!oٸd1dUXj4Fy'=W 1'Pl'$ypw~q5Jx~Jɴ6E 6W P=Lu8U +KzoNJ'??p5mejw}c,*UJU)IJJRjȟ'P\}cvPlN 8&ޛroWzpY V OB?BSD;OB{V"o*!7o F&5FkFH,nÒIc9(C!s?(b:Z?\0emn'VRT D9U4d Ov#kl=մQ:WcZN Z-~ &U+߂uUT1-4 vo$`d;wj:od =Sz0ؖy!r~H߇Nh*0XwfsM3)RO)eD|6ã(M]!^u7]^PJS06UMX99SKk0 1h;1.2p96?tcUjddqWYY&cGO~C Fā􊒬Jqݞ&>KLh~,vSϜݵoO,xӟD37fX35cX35v}eJyL>r"A P)N5G(3Ȕ qzX" E-S#AbC4U/g6('(&nIzS?>6d:X ΗX`φqX_PiweI>C~n|Lr#"s'9T9Fc+z4#ğ{i\4$g0ͱ5_H0^:4'bPphTǒ1qqt cbwsͩQ䏎Sۣק,Ų)IYM4j"Ŷ7f?ߦ4YtZѐd¥S%(DQ ǍFUl nݣv6TĒtpT24I1ؤB}ï=h:sMֽ"<0~aK[ȷx-ZZ9# \-d\n<,h߭2̡OOij'y(&ΔcnncseM6,s ,솖A$A"}K-VYV`TdO6;MY96oi8&mbFݺA\֭g#'8v $DO|ѶFmҕe9?-nFfltcSa1 J" d^Oɟ>kXi*[Hן;gÙ'ft?)GGbFGG&=PϽ9I3ޤ I}pCzJU8<[ѡ&JNa0KQ%4QXUh'g{%e|!(dtGvh OQr (P >zD !4I53S^1ÒTA[m9˞ e9Z Æ1ȖRՌ ͉JR֥1iJҔ(œ`XY{.sJD%%u7(hZ !ker5^(r/)IiiGۜaƦ Seamy1yYe-NÇ8rm5))JVª68F7]yEjjbAKlAj [@R3$s1!kzL$$wyrsB"9pg QDIJXmg9w%"2P k%k=;y.Nk׎,D791eDHV -lc9qWX)[NdNqys (JZQ/-kaJ5+m].wA.wK7nr\UVY'XO*>A#(zr`adH%L`I:8N /30EgKS9 s]5)g d(4O4eƸ5"t:i8s5ZYHȂl]L- TnC2̘I`ѳcc%]p3̩O+yN YNpR 1:wA9ʎ,18;Qm0dfY3Tmݧ F 4?`!#e&*R(hq I)0e2DdT N"8w{5[ђw㵧7G5?vM#t>ªؕdYRm%ͤ6@dci&5dd+#$Ks,o|Jhu &')9J^Y5Zj34j5K0blД;ϻ=fb+Ahh4 *f!b@kTqFӂa ДqN00q5Xu<bEY?Ͷ5 ' g2M´?&y5d=hTC i6}wFcVQ`zJHr`v2fp9ƴB&Ag]R%2w^8RЧ@`xzL5͉0$,&4I5ytîCڏ:f$.b&D SNIiX#ZHTm)VͶ¯'lyp;Ldhsma/p͕S&lx-2KO奲~G_N10FncTsp(4S,*Smz-ndR-y & tOt<}:hMt= lv-j?V[C@2qMabR&E))0ƋC˟<3*WDHQwCdȬ6g2͑J`ɓ 2wsރ3I7BQʵ2rVWb> &wݞv'Dõvzׇ@sGNhܧޓCA =y|rDr/5?y! /V=|0AI8:ޓΘ+M`ȏ!jzntioU09Ü)S9W89&i׏@=vt ;#܇PǣпЇ"Uaɿ$ت +'˼Z c5]T- fid1?25w&U~i%(hwT#α7XO*tdwtmxqMVDuB(8!ehwp[l)(٦6)KJޠO4'h'J&O&0'j'I 2s#~Y *={iHRF`ɴY1!0 Xjmz독\Tq@I99[mٳ+HCA9%v%,-֍ \ 6M?{S=v'$li #VD>3zEEo~mx.bfEDaQcؿ:AyKeĸZVJ˷8ꊭ^\K#2F4PAIb4 RE>uf}MrH2?>j6Wl>5yMNEF~QTWލַ;bʘ65HțTdY5>A4vѡQ҉S=욶tq"O(J˜$?M H{7iqL=n/WXNcYy#I9 ߧg$YdYIH=ogśv iK6WOO.Eq3S 0L_0=fwsV-[.&R6n;Q$鉚lw<,)#ϯ,inr6s76$LocB2zl M,ÌdC1Rfҳ ,a?䭪p?Hq#@ԑ XHQ#9#䤍!ȝQGM