aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/create_variable_overview.php
blob: e65de130b3e653f2c26b773f3dab219c2f07b3be (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
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
<?php
/**
*
* @package phpBB3
* @copyright (c) 2003 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
* This script generates an index of some template vars and their use within the templates.
* It writes down all language variables used by various templates.
*
*/

//
// Security message:
//
// This script is potentially dangerous.
// Remove or comment the next line (die(".... ) to enable this script.
// Do NOT FORGET to either remove this script or disable it after you have used it.
//
die("Please read the first lines of this script for instructions on how to enable it");

$directory = '../styles/subSilver/template/';
$ext = 'html';
$store_dir = '../store/';

$phpfiles_directories = array('../', '../includes/', '../includes/acm/', '../includes/auth/', '../includes/mcp/', '../includes/ucp/');
// Template Files beginning with this names are merged together
$merge = array('gcp', 'login', 'mcp', 'memberlist', 'posting', 'ucp');

if (!is_writable($store_dir))
{
	die("Directory $store_dir is not writable!");
}

$contents = implode('', file('../adm/subSilver.css', filesize('../adm/subSilver.css')));
$fp = fopen($store_dir . 'subSilver.css', 'w');
fwrite($fp, $contents);
fclose($fp);

$html_skeleton = '
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="subSilver.css" type="text/css">
<style type="text/css">
<!--
th		{ background-image: url(\'cellpic3.gif\') }
td.cat	{ background-image: url(\'cellpic1.gif\') }
//-->
</style>
<title>{FILENAME}</title>
</head>
<body>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
	<tr>
		<td><img src="header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td>
		<td width="100%" background="header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">File {FILENAME}</span> &nbsp; &nbsp; &nbsp;</td>
	</tr>
</table>

<table width="95%" cellspacing="0" cellpadding="0" border="0" align="center">
	<tr>
		<td><br clear="all" />

';
$html_skeleton .= '<br><a href="./index.html" class="gen">Back to Contents</a><br><br>';
$html_skeleton .= '<br><a href="#lang" class="gen">Language Variables</a> :: <a href="#includes" class="gen">Includes</a> :: <a href="#cond" class="gen">Conditionals</a><br><a href="#remain" class="gen">Remaining Vars</a> :: <a href="#usedby" class="gen">phpBB File Usage</a> :: <a href="#ref" class="gen">References</a>';
$html_skeleton .= '<br><br><a name="lang"></a><b>Language Variables</b><br><br>{LANGUAGE_VARIABLES}';
$html_skeleton .= '<br><br><a name="includes"></a><b>Included Files</b><br><br>{INCLUDES}';
$html_skeleton .= '<br><br><a name="cond"></a><b>Used Conditionals</b><br><br>{CONDITIONALS}';
$html_skeleton .= '<br><br><a name="remain"></a><b>Remaining Vars used</b><br><br>{REMAINING_VARS}';
$html_skeleton .= '<br><br><a name="usedby"></a><b>This Template File is used by the following phpBB Files</b><br><br>{USED_BY}';
$html_skeleton .= '<br><br><a name="ref"></a><b>References: </b>{SEE_FILES}';

//$html_skeleton .= "</body>\n</html>\n";

$html_skeleton .= '
<br><br>
<div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group</div>

		<br clear="all" /></td>
	</tr>
</table>

</body>
</html>
';

// Open Language File
include('../language/en/lang_main.php');
include('../language/en/lang_admin.php');

$files_to_parse = $php_files = array();

$dhandler = opendir($directory);
if (!$dhandler)
{
	die("Unable to open $directory");
}

$num = 0;
while ($file = readdir($dhandler))
{
	if (is_file($directory . $file) && preg_match('#\.' . $ext . '$#i', $file))
	{
		$files_to_parse[$num]['filename'] = $directory . $file;
		$files_to_parse[$num]['single_filename'] = $file;
		$files_to_parse[$num]['destfile'] = str_replace(".{$ext}", '', $file) . '_' . $num . '.html';
		$file_to_destfile[$file] = $files_to_parse[$num]['destfile'];
		$num++;
	}
}
closedir($dhandler);

$num = 0;
foreach ($phpfiles_directories as $directory)
{
	$dhandler = opendir($directory);
	if (!$dhandler)
	{
		die("Unable to open $directory");
	}

	while ($file = readdir($dhandler))
	{
		if (is_file($directory . $file) && preg_match('#\.php$#i', $file))
		{
			$php_files[$num]['filename'] = $directory . $file;
			$php_files[$num]['single_filename'] = $file;
			$num++;
		}
	}
	closedir($dhandler);
}

$php_files_includes = $lang_references = array();

//$php_files_includes['viewtopic_attach_body.html'][0] = filename

echo '<br>Parsing PHP Files';

// Parse PHP Files and get our filenames
foreach ($php_files as $file_num => $data)
{
	echo '.';
	flush();
	$contents = implode('', file($data['filename'], filesize($data['filename'])));

	$html_files = array();
	preg_match_all('#([a-zA-Z0-9\-_]*?)\.' . $ext . '#s', $contents, $html_files);
	$html_files = array_unique($html_files[1]);

	foreach ($html_files as $html_file)
	{
		$html_file = trim($html_file);
		if ($html_file != '')
		{
			$php_files_includes[$html_file . '.' . $ext][] = $data['filename'];
		}
	}
}

echo '<br>Parsing HTML Files';
foreach ($files_to_parse as $file_num => $data)
{
	echo '.';
	flush();
	$contents = implode('', file($data['filename'], filesize($data['filename'])));

	// Language Variables -> [0]:tpl [1]:lang
	$lang_vars = array();
	preg_match_all('#{L_([a-z0-9\-_]*?)\}#is', $contents, $lang_vars);
	$contents = preg_replace('#{L_([a-z0-9\-_]*?)\}#is', '', $contents);
	$lang_vars[0] = array_unique($lang_vars[0]);
	$lang_vars[1] = array_unique($lang_vars[1]);

	// Includes
	$includes = array();
	preg_match_all('#<!-- INCLUDE ([a-zA-Z0-9\_\-\+\.]+?) -->#s', $contents, $includes);
	$contents = preg_replace('#<!-- INCLUDE ([a-zA-Z0-9\_\-\+\.]+?) -->#', '', $contents);
	$includes = $includes[1];
	$includes = array_unique($includes);

	// IF Conditions
	$switches = array();
	preg_match_all('#<!-- [IF]|[ELSEIF] ([a-zA-Z0-9\-_\.]+?) (.*?)?[ ]?-->#', $contents, $switches);
	$contents = preg_replace('#<!-- [IF]|[ELSEIF] ([a-zA-Z0-9\-_]) (.*?)?[ ]?-->#s', '', $contents);
	$switches[0] = array_unique($switches[1]); // No resorting please
	$switches[1] = $switches[2];
	unset($switches[2]);

	// Remaining Vars
	$remaining_vars = array();
	preg_match_all('#{([a-z0-9\-_\.]*?)\}#is', $contents, $remaining_vars);
	$contents = preg_replace('#{([a-z0-9\-_]*?)\}#is', '', $contents);
	$remaining_vars = array_unique($remaining_vars[1]);
	sort($remaining_vars, SORT_STRING);

	// Now build the filename specific site
	$fp = fopen($store_dir . $data['destfile'], 'w');
	$html_data = $html_skeleton;

	$html_data = str_replace('{FILENAME}', $data['single_filename'], $html_data);

	// Write up the Language Variables
	if (count($lang_vars[0]))
	{
		$lang_data = '<ul>';
		for ($num = 0; $num <= count($lang_vars[0]); $num++)
		{
			$var = $lang_vars[0][$num];
			if ($var != '')
			{
				$_var = str_replace(array('{', '}'), array('', ''), $var);
				$lang_references[$_var][] = $data['single_filename'];
				$lang_data .= '<li>' . $var . '<br>' . "\n" . ((isset($lang[$_var])) ? htmlspecialchars(str_replace("\\'", "'", $lang[$_var])) : '<span style="color:red">No Language Variable available</span>') . '<br></li><br>' . "\n";
			}
		}
		$lang_data .= '</ul>';
	}
	else
	{
		$lang_data = '<b>NONE</b><br>' . "\n";
	}

	$html_data = str_replace('{LANGUAGE_VARIABLES}', $lang_data, $html_data);

	// Write up the Includes
	echo '.';
	flush();
	if (count($includes))
	{
		$includes_data = '<ul>';
		$see_files = '';
		for ($num = 0; $num <= count($includes); $num++)
		{
			$var = $includes[$num];
			if ($var != '')
			{
				$includes_data .= '<li><a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a></li><br>' . "\n";
				$see_files .= ($see_files != '') ? ' :: ' : '';
				$see_files .= '<a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a>';
			}
		}
		$includes_data .= '</ul>';
	}
	else
	{
		$includes_data = '<b>NONE</b><br>' . "\n";
		$see_files = '<b>NONE</b>';
	}

	$html_data = str_replace('{INCLUDES}', $includes_data, $html_data);
	$html_data = str_replace('{SEE_FILES}', $see_files, $html_data);

	// Write up Conditionals
	echo '.';
	flush();
	if (count($switches[0]))
	{
		$conditionals = '<ul>';
		for ($num = 0; $num <= count($switches[0]); $num++)
		{
			$var = trim($switches[0][$num]);
			if ($var != '')
			{
				if ($var == 'not')
				{
					$conditionals .= '<li>' . trim($switches[1][$num]) . '<br><b>Negation</b><br>' . "\n";
					$block_var = explode('.', trim($switches[1][$num]));
					unset($block_var[0]);
				}
				else
				{
					$conditionals .= '<li>' . $var . ((trim($switches[1][$num]) != '') ? '<br>' . "\n" . '<i>Compared with</i> -&gt; <b>' . trim($switches[1][$num]) . '</b>' : '') . '<br>' . "\n";
					$block_var = explode('.', $var);
					unset($block_var[count($block_var)-1]);
				}

				if (count($block_var))
				{
					for ($_num = count($block_var)-1; $_num >= 0; $_num--)
					{
						$conditionals .= ($_num == count($block_var)-1) ? '<i>Element of Block</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n" : '<i>...which is an element of</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n";
					}
				}
				$conditionals .= '<br></li>' . "\n";
			}
		}
		$conditionals .= '</ul>';
	}
	else
	{
		$conditionals = '<b>NONE</b><br>' . "\n";
	}

	$html_data = str_replace('{CONDITIONALS}', $conditionals, $html_data);

	// Write up Remaining Vars
	echo '.';
	flush();
	if (count($remaining_vars))
	{
		$remaining = '<ul>';
		for ($num = 0; $num <= count($remaining_vars); $num++)
		{
			$var = trim($remaining_vars[$num]);
			if ($var != '')
			{
				$remaining .= '<li>' . $var . '<br>' . "\n";
				$block_var = explode('.', $var);
				unset($block_var[count($block_var)-1]);

				if (count($block_var))
				{
					for ($_num = count($block_var)-1; $_num >= 0; $_num--)
					{
						$remaining .= ($_num == count($block_var)-1) ? '<i>Element of Block</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n" : '<i>...which is an element of</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n";
					}
				}
				$remaining .= '<br></li>' . "\n";
			}
		}
		$remaining .= '</ul>';
	}
	else
	{
		$remaining = '<b>NONE</b><br>' . "\n";
	}

	$html_data = str_replace('{REMAINING_VARS}', $remaining, $html_data);

	if (isset($php_files_includes[$data['single_filename']]) && count($php_files_includes[$data['single_filename']]))
	{
		$usedby = '<ul>';
		foreach ($php_files_includes[$data['single_filename']] as $php_filename)
		{
			$usedby .= '<li>' . str_replace('../', '', $php_filename) . '</li>';
		}
		$usedby .= '</ul>';
	}
	else
	{
		$usedby = '<b>NONE</b><br>' . "\n";
	}

	$html_data = str_replace('{USED_BY}', $usedby, $html_data);

	fwrite($fp, $html_data);
	fclose($fp);
}

echo '<br>Store Files';

$fp = fopen($store_dir . 'index.html', 'w');

$html_data = '
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="subSilver.css" type="text/css">
<style type="text/css">
<!--
th		{ background-image: url(\'cellpic3.gif\') }
td.cat	{ background-image: url(\'cellpic1.gif\') }
//-->
</style>
<title>Contents</title>
</head>
<body>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
	<tr>
		<td><img src="header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td>
		<td width="100%" background="header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">Available Template Files</span> &nbsp; &nbsp; &nbsp;</td>
	</tr>
</table>

<table width="95%" cellspacing="0" cellpadding="0" border="0" align="center">
	<tr>
		<td><br clear="all" />
<br>This Style Document is 100% auto-generated... no human interaction included. :D<br>
<h2>phpBB 2.2 Template</h2>
<br>
<ol>
';

sort($files_to_parse);
foreach ($files_to_parse as $file_num => $data)
{
	echo '.';
	flush();
	$var = $data['single_filename'];
	$html_data .= '<li><a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a></li><br>' . "\n";
}

$html_data .= '<br><li><a href="./lang_index.html" class="gen">Appendix A: Language Variable Index</a></li><br>';

$html_data .= '
</ol><br><br>
<div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group</div>

		<br clear="all" /></td>
	</tr>
</table>

</body>
</html>
';

fwrite($fp, $html_data);
fclose($fp);

// Not only write down all language files, place them into a specific array, named by the template file
// All Language vars assigned to more than one template will be placed into a common file
$entry = array();
$common_fp = fopen($store_dir . 'lang_common.php', 'w');
fwrite($common_fp, "<?php\n\n \$lang = array(\n");

$fp = fopen($store_dir . 'lang_index.html', 'w');

$html_data = '
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="subSilver.css" type="text/css">
<style type="text/css">
<!--
th		{ background-image: url(\'cellpic3.gif\') }
td.cat	{ background-image: url(\'cellpic1.gif\') }
//-->
</style>
<title>Appendix A :: Language Variable Index</title>
</head>
<body>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
	<tr>
		<td><img src="header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td>
		<td width="100%" background="header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">Language Variable Index</span> &nbsp; &nbsp; &nbsp;</td>
	</tr>
</table>

<table width="95%" cellspacing="0" cellpadding="0" border="0" align="center">
	<tr>
		<td><br clear="all" />
<br><a href="./index.html" class="gen">Back to Contents</a><br><br>
<br>
';

echo '<br>Write Language Files';

asort($lang_references);
ksort($lang_references);
$_index = '';
$old_char = '';
foreach ($lang_references as $lang_var => $filenames)
{
	$var = preg_replace('#^L_(.*?)#', '\1', $lang_var);
	$char = $var{0};
	if ($old_char != $char)
	{
		$old_char = $char;
		$_index .= ($_index != '') ? ' :: ' : '';
		$_index .= '<a href="#' . $char . '" class="gen"><b>' . $char . '</b></a>';
	}
}

$html_data .= $_index . '<br><br><br>';
$old_char = '';
foreach ($lang_references as $lang_var => $filenames)
{
	echo '.';
	flush();
	$var = preg_replace('#^L_(.*?)#', '\1', $lang_var);
	$char = $var{0};
	if ($old_char != $char)
	{
		$old_char = $char;
		$html_data .= '<br><hr><br><a name="' . $char . '"></a><h2>Letter ' . $char . '</h2><br><br>';
	}

	$html_data .= '<b>' . $lang_var . '</b><ul>';

	if (sizeof($filenames) != 1)
	{
		fwrite($common_fp, (($entry['common']) ? ",\n" : '') . "\t'$var' => '" . $lang[$var] . "'");
		$entry['common'] = true;
	}
	else if (sizeof($filenames) == 1)
	{
		// Merge logical - hardcoded
		$fname = (preg_match('#^(' . implode('|', $merge) . ')#', $filenames[0], $match)) ? $match[0] . '.php' : str_replace($ext, 'php', $filenames[0]);
		
		if (!$lang_fp[$fname])
		{
			$lang_fp[$fname] = fopen($store_dir . 'lang_' . $fname, 'w');
			fwrite($lang_fp[$fname], "<?php\n\n\$lang = array(\n");
			$entry[$fname] = false;
		}
		fwrite($lang_fp[$fname], (($entry[$fname]) ? ",\n" : '') . "\t'$var' => '" . $lang[$var] . "'");
		$entry[$fname] = true;
	}
	
	foreach ($filenames as $f_name)
	{
		$var = trim($f_name);
		$html_data .= '<li><a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a></li><br>' . "\n";
	}
	$html_data .= '</ul><br><br>';
}

fwrite($common_fp, ")\n);\n?>");
fclose($common_fp);

foreach ($lang_fp as $filepointer)
{
	fwrite($filepointer, ")\n);\n?>");
	fclose($filepointer);
}

$html_data .= '
<br><br>
<div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group</div>

		<br clear="all" /></td>
	</tr>
</table>

</body>
</html>
';

fwrite($fp, $html_data);
fclose($fp);

echo '<br>Finished!';
flush();
RN! 6M=QG,(kسJ>nQ\p¦*6$;)I)ƗR-䜊*UvFaiͨF5 h/~d`{>mH6Ī:$c9- qFDM";Qso^m9@uq|m>VF>/[7L%ݡL(|V%[nZd&b)8 G,tRj2޳|VsNQJ`V:ԜQz s3 \Bw^<0RE!2oɰ@0ȷi]"4l[6-9wY|Lp]^\K;r9a'4a:JGܧWMb{;Y={66BDtƝx姫q#QmOXʡS0YJF$Yv_.gl+|-HMH:.R}GM] 38ʾC j:˭v atR.Hil=|(9$-@㗙<*C^Q30 *ٲW>Ni2N] %J,gVw ;5E!UgwG]ƥcrlȴ `'֕0!H< w ÍdX9Et!5`ֽXYL/ue.ѧD\qP \Ya33Y^{h w5J@j:iZSRW.`~59নtc/RzFAyv7 Z6+L0A.W e6ގ\qFwxCY,d:řL҄Z#VOUҖ`!iVm ᵪkyS` ~nV qdS"j%&7J\ {H:0gdb-gm[~ L$!RK EοYFh諝&JM}Z@&yL W| !EYUv1df^mi@ Zz_3;uogK bXlN RY(=HɄ6*:=>Pc}.~\lGFdw㊽T0͗Zzm(e1d]'!H8dTf! ҧf9q Уj\/"oTs]J ')DnL.%o: !@qj%O&l@qev >!}i>`Q2Fm ybcN&DލE7HZ'leQdvʀt~/#0cZi+y{˦t^4Wl'b=M |m.B-+M`螜uA`Ȟ9&iEQ[rd&Q^sRZ+qPgFv*ۂj#T? >n`Z?v"m5(v0d?-zI9"Is͕l?:ߕ!9CrdZ]-QҎ [y>ޗʷrZfF;("#0UzґtεtGS;8;dM?q֙IJ sւ(gd v=3]n !Pep~.Y$ Kvw湫Cn6pO{7F>TpS#y,=4І L϶%dQnmZqr\eMd#?-1BCq~븑͗h/eJ6,lV؃@;NZƒlm1NǻuN3S@1F+#,^ENg:ʃ*Y|uĄx5~&ӾH!g萪 u~ @6wy;S WK% 4BIx݊7!;axAM28TEZacIk S%n8@)&:wT:tp֎{#a|?)}_',N<yr,}wʀa,D?tH9YY E7Oe1&P ^YtyYXGdtrg &޷M']۩:IC߁1iQO{Ǵj]ot {Qw?gP>9a3{zj6YVQ_׾(yLVdiΐѢ{1vCCOHrlg=1WЦLz 4^U#$k!b׆G9X*,@EHU!mm`47p*._=m.p6佒Hx=:y#=Cw:nepiST$bxPc?u(\a(T$^HHQؽ5_pm6g:( C4#]9 HPhw|+f,8[GYW|T2>){-^~9RY7!-?0T󏨖iwzL-=?7.LACb6A1f9bpϘ5W8-R<+0pTDd t*pFeX5qndXܺ ly{(JǗMnOؗ\d'b, fW&i>&V;όN&pu|ʹEΖG3BG$V6Lj)Ƅ̇cs[GSvjG|1ճ>?:uvM( QѕÃJ63d—UW@ܱݎNhޭ-' ҕ 7Pp/x`yTXTj:Ҧ-M (6d CEtF7ωyYyՀ^dD4jky]dߙ׶׭3#qz<>6]\H|ϼS5R#SCI퉇O>=6ZB}n]ם4Jk`5 N,kI@ ҎD `HV'+Η}?0bQFRtu?K'b/*wh05Vnm1 y3x u0^# Qin ذB{b/>Ags͕\NH&K$ͼ>c w5e"7poDwUBP$SDz&+ݬ#s n &6n7FQ  ";b5qF.r;를ݙWq++sa=b2$%__Z>TsbP4MbWDga-AƲQ񃛐WR9[Q=pA#}ׄ?5?Šf)J2$ ̧jo)hҬ%_YcGa9J1А^Fk|'B2 x%bŴ|E:{K <Ņ6A Q}ĹT@bΎ& {pB[sDkwXYAdM|={@Bqۅ*M66Ԁ|o-vs>V[ tA}ƚ@#>.[w.ԺNlq!}b~EV347^DmfP@Z$xA M ]A>~ 6|J]a5 ˿МΦ<] Hϸ#㘙LVXEUv0VsSA@LB#\FU,=7"# n0F)wyY# Q዇FD|'[}6 /ݲf+w|bJYO#>CRа6K{Ыt0rzs *`dC؉qԚEFk>;LXEP&ηB6kK˨ʀ.|*#* -"\kSM,;/E'n "/YjmdXxՑi&n N`A8?ytmf7>|Ɲip#C V-c > qN3Om<ӳk (v\Ds}iKZZ}ѵAxҸ3Q9^k(? !vz6ha9CeH8-j?p?ׅ@v:n^1"5?~jP?{bH`J ]~Or@&DWR +f@UvR@'ÿWNV;OvH< Eґ3 W%ݛS h6|NZдŁvBN7?gJ׊*W%ח}p83zVYk-㊴P=Ef@:?~dG~D )l{͗P"\; b&Yq5{ k(>"{IhT =`dx w,5G BE]xO0u &sѣ&xV^X֣n-܃@}YcD] 72\\2&;:nHeuςJKFRl~C(+ړ&@N "əC| JsuW8[H gyB m4v) /J 3NyZ{&Z) iKRE`MXM{)LD{jwÜ!_ +æU aںϽ,> $Z@ci '|Eeҳ$pv"vf8PXD=Zd$pW"2| )[R/Իt?\] qٷnjݸ98'O@hyq"AȀB'$ndOa$\%{u6L!,h>?ϯ(hRcCU696P/Lt?ru}uʿtl_rv_&CxZť+yxAdk{8hu tɁ;geLb{?}XO)Y'`="'VYNWs0y=Q;:i>d 'aOXRtTm pc5zE/!~EjcH6)JDϗY,p 7k_'^zu C' gɬobA*:ofܭc0X?u^o  p}mO2O{] 21k?2`V=6Ʌ~VKB NG_n`ս+L[hdid)ʤQpRa#~`/ַ_P![VКB,¹9 :t!7֟'`ܦj4e_@{W)ix3j>d з[ۇ ~l}mr? [֭m;o,%D8+Pm?3UK#8gԠp%lB5(2L:W@,`^B~[}2{+I6gۃjjiRH?I$Pݟ>N1nMʼnOݙBI@ &o?ViwzccPfy|08SXݜcȆ>Jb+hv?c[zr88΄/ B?QzWd/bM#w2=-ݥɣP?NK߈Kd-Ԅi7r?L)5lydhn E-a]u8ָrKD^TDGH}֜(L6RXiY5s& 6nPksSI1MYO<d 򱡝[쮣gaF^B?-qO 67V%x+k+1yܫJFhnAf4״8#8IM7d#*ۢG6pNlyҲU+<*܌ղ5OK CЖY񬅽oPSHftoZY;NrAQ\<+&SD+d5'U?| ?ǎ0BYW91:ȥq5X6Sŋ_r8h0``I")XO85c:@V'zBi2震-fco{_S Ihu*J] Yn6 L[Rv c#_o?ӳSTTf3}d @^mhQ{{iVFBPülEӥJ%2Yʺ2ӏV:(G_mF_æ5ULj+旣1'WHʒUؒ$ T٫rJAh" Oc3pB|:Cvzʓ 8eQօc^"0\x1GX]Ct͟M@ر'*F~4y{`4\fL8TxILI}Tzɑ]*vn焌^SfN] edCJk_׻);e(XjYlf#VE)TCHZ Y'X+_\$R[ˀw(uPLf~z]&} bB}Y MCO+v<14!}᤟\B@*x#IuHV ,GD~Y$ƔtKdh&a;E{ZI!Msm* M3yo#W%N^\d|܃Z y.1mS$-w3+~7bEӲ!Rn#ڪ+P х'E~ZOaړ^x-#0sIuX9Qkֶe߬ Gĩ}RQxH^'ҥ Y)L t>;Iy{ 7Qwteu] ۾qCQpzRm, ,Q_w 1~'ʷKF-;Ƞ Obt*GOaN0߯(m)C?w$Ab*r:i95Vir ǚ6WŐ]a;3$χ؍8C$.51p;%C6hzZ;3g]$99GHڄ9:ڴl2SBԀd4 _OwŜβ)k!qwW ao&4S0^sJ 众[gxB#8u#,W7;*f}T nd *x\f~\#JHإ}=!:bxʹԐldv VMҏ1[wGv_Ff"N&d-ْ 3XU17눜Bh$lPqzJA1@Rr7 ]{U󅊹qp^Ajx^KړfuS oVZ |N< REl4q)sҫ@ma6vU'T:e0i[eC3li-;eVZK1Jm[),2vQyBE" x1Nhla=ՑuV<21_3D~?=|MhyB;{Az{-Nr:D)!\͘kdt]#\ ĸpoC"em6z4] GHG2:0)\u'fj]W5n&).ėT"Rf,Vt$@ D-|Ad[!гeXe>!6#9ʭ~fc!d UdN)b} <R9^Ȳ?6n ;.wFjlSk:}ǾIoV&W9TLeê`٢.(@.a@Ck6T"7rn ÜapsS4ɯ^W);xF6j ?i$3_!>}oپs,I^CM"hzw11b1Q@)9?bcW'"F,M(M{M,,|y,šL#-=Vi p> r (HNqqQ'f*ܱ6E]E= EjTR1m`[U/T~?Z1!ɂmtN__5&tF-ϩ|43iYttD!DK#}X_ma/0?շlBs8' MFV ek|ˆƝ~.cyRZ|ONYs\LpLF`BifLimܐdέ *K-Tg||oGu\wZ] <+ڧl^oOyz H5 5 4=Bmly_8J5J[o?eh|mx#q 7.o]Ke|]~g]cC5mNYw#I"}fWuk [\E?w&i ߨKqZp/}@ɍ*cX&-AbgslE#[3,0d2W~|ߺ sflCbsc|!mVto}y_7B 'cN MNR(ǔfwZǯ<_| v #MMHp~@&S0aFh"Y.]DqegMwZJAJIxa ۤc+p& \z:JXZ@Y)DNz]P(Q\t @'M.*\,s59ǣq"9/wW>: _)q'gH(pܭ&%lCLJDO|LF5xU\CLF~ԃv_fDAZh-NL0DG)Zμ :FČ!H -ޏ-vmP6duINjbsAwX }*hL;(=&jPV8#[M+bqa+9m^͢7U./^mB2=[)RX_dIlD <~TZ۷h5?|b]lqH-2)c:gDZ-muȝ(&x3SXTߣZf yTQGg2- JTZm+ 9YxY>" O 2B1fX=~"'?rqb!'9Q]e{Nn)"nߋ(s5 ^ol VDi !k`6+c~LS`DMB Y{.Vr5NYI3,F=ź6/>d??Y6߾֐,Zl?2mpl}x9|Bl,?: $Ëw@KF{F'6пIdY?2gZbt)ꦮ#@⇙xZu?K+WG\F,kx܃E~cwʜgv=UWvW ᮈXq1O١Z)Vn8$,6UYr48#[fr7ecalU㉍FV;f{`9~HB24X ~iE< iQNy9MdObtyM!NbX#w9 wX3GxxN/^7L^O3"KYpF>t.vÜxI9KZF[؛ǃMrR ltxe[(J ,;F<qUwm؍f+)ib6~m+kM60R"AR"?$)C*]>ZXgS{Clǖx_xa!'4zKx(>P'Ms˖LQGWU!MgvФ_!;~0yCv ;2 A$Я NrZNFTȸjǧ!>(n5dZRBxЬ1Q@V:Y󸔢Hp8j2GjY~y쥇׍Kd:c0`1"ȦM3 ×րXwm,T|o[?(^B0HQQ L`c}(J0xaɐMܴ00ρpщ4 v)J7Gft S>DŽ7b uiyvܿƋa[b-CH '<ص_6[zwdgKRԀ45'JqP^̺#J1!rTvMcl"Kd0epXAÒBڀLdEҮE_|L#*y0h DO!#{,yWe0Tp7a}|_Ȩ麟s/UI7UAn_rI3ZCd/\Vpj¶4ձLcg@і_ۇ& b|uI)&x uQ$+)>WI?ܰN&6ּuv' X!vu7.*6L{F@f`*/ѝGKݶN)Ek2RTZ5Żux\Z%!y!IEBWͨTp`卤Cuޣs&@x{(Yvk5JXBmb:}$vH-X)>kn+kkVaWS20jD\5iJjKDe9ܫt#g5Ǟ3V"!8TOF?+:dX_~GIa2~<Ն8- 㕨FG솢ǽExTeS^t2LyKNWξ:4ưm/PmAɻ).p?K, tʘiKT=]~=8hbi5m J#+ MzݽE  rZ)\g2Zܦ቏mA\$8U$P~9d/ sJ xJ:+dG+iHdm>OφFDsxS~t˧mnqu%@]|vpl dOԳR.dPֆC!pW@,\/HÂ͙5܉ YkAaI\Y{sglZ,> ^AOVM`h{Ob벏5BNr264\/+nQ,$ёyH ;!Ǥ`d%죭%kt1!jJ|b,wO*+G̸C*>nmCҮKz""N\uE2\f %pBxQ2ͭ2xS>J>Nn IHNGRkש2hhk4呛`uVVQ.OhFԢ[wJ P6Np2>]?@J6҄u?pUwSFUYfK9ͫ\ zSp3V܉v>18;/Ʋ[Ihڧ+ya$KyxuQx R[BaI` E#4z>e8'.{OW69]w]qz^+˾"Q|mسd|ԐROLyd D >#Ӹ7sO|sQRIlH#! esa~1]Ce6y/pWT~$;-@a ߤ%5ڍ?UzP5G8sp-wF8;f.*b)#=\NAօfH*&oY$U ƉazNCEB4^ terr^CWG6>q?Xեεe=&pg)q`v1 gw i j^pRi\Vo% XK8p. uTZ~S[Ӈ=%çdohAսKR"!p\so1MIL2 qow eQSƲ=WAgMzӦNXr1w7uMTPOb$O%z8 F Krsf]61"b~ah a1ޡlvIoJxlǗLs^oB  ?@BAD j$C޸dѹKstvcρ ,2{$q¬a<4*/@' \ p%vA9x΢w߉ǗaE6824^?m7@Z|/P pY&_=vN >`5}xjX,[p3$ދZw1Y]q5;a)`X񏜑aIZ`f; xoCФ/BO? yPaZ%t7[$i/!\^7XsQ'q▂,$`>gLN{)2ypNI?[|;iDDN=s}1ꮵ|r'TU*D^tauL* UT6"80U~~a QW)7wp0j+?8{7VBܝA;!4c-XsWqBFM5yv(؏ߖ 7{VX|(hʃ"C=^g 3uݬ7*`X]2[S _!`ھ٨Lтt$NEhiZUSBŰl FT}֯JR_\yjřn#CcE 1ˆ4gD}-ZCUtz D?w$ҷR"{iv{(:ɚ|_JT8SWLNle$+Krt2sZ_HSNmnfv %1!8 7]b: L#k <m>c1 d)ZFhۨ`8p{Ӽ[`eV|]A:pN[DY&MMO7Hi=C})궊خx}J$Jh#2]7 㝓MU3~"9H˱VB@Q\ڊPUWzY7,, }Ӭ-HG>&l/)wG,>,VxU!eR2C ꌣW5+e?jAH%sYNb i>+d]xIlgtLUl(IQŷFH\@ײ2bPl;7xv+Iiov s)cQrcL,xˠj`$y!mlPP(x3-n]7ղ bDP#GS}G~t "["y"yIW̥SMJMxr=q 6uT e!۪AaKs) _TybPbKb Ktv.ooXh(yЄ>F57<5-f>-\%KywFRTK`*5gY!O{-;V3[[A%:0p|jvE;SĈ^DT:0^klA\Iv^Rm;BorUށHHkf`f*[& ~Ez6 ,Z2߷vQԞZETt-KovTlq@?"=yń#[XӒtV=V.-&Q4^1g.d <4hg`(fZVp)O~0Tɸ-[ B-y7Mc+pH^Y9%FOo!Щqo5#) ;Q#4[8&r|[{HYjK ykF;v!يf[^/Rkx:wt~PR aN4饢 GOۮ.˔CU+>5`+~ o[T9FP!S(A?QBaHP_'@V|y*ybN"]Z"sh7qWPgb4PQO^U}4@|SM6|,WXw QgdwTD+]c$)u>Gr#2,qrNQR&~{bzq_Z]MotY/0;rjeihH4kKwvB/iA'!,[Bx MP`[w2k˔@!3˂t}ְH#A)@w,ty%Hs7T'HM#Q-!n&ݝlB]\"]D}1_"0N tϣʡ=G )bE㕔R;rU&0g/#y%ģr͒lȟs:3Yg JPE x+86ʪ3F<H8&CbŚYsjF8jq-3ۛ|Թm{jb)4`и$zϨa@_Q9$y3P0jk̛QGG%It|(}SӹUCĈ{&&1I `gSc:G䜪$7 rq$+#ݒM9ڔN* {4ޏyl͌<8YQ7 9Ƞ,^3fFVaMX^c;A^(ybk'ՖrG!\~Wr(p8Tnp2G_ylE­\s(rt}Ͳ *T/p5XA` uб]8 |mVmnve89(hg+\$5"$[Aү1<г:)՝{*t\>n?qyjZ+|:wjݮvyx3Yux*j }+}%V[ $cIw2?sE^ui z1Q$aw]`εy KDXl cJ38%:/Q3ygхFsv9h}O1V(iQ:p"e~C>k[(SWSn閖z!֎#X.N3i߇ )t(:۾J2FpEq6T1'lif"|6dW}2eV9Zz=Æ`9\"v'U ײ 4:oZFOmY!SFeI9rݜ;J'\ 2/)BB9,=oOj,12bCHy?uU4v񥇱z4im@ŌAF]R݃'`sntFo[bZȦV.g%AXbIA0Qi/]+1uS9Hƌ# ǜ/ K9Cvq[k҇(6NIK5a(RY޺ m;-)p?#l#"w]!{ʲ6V@`$jlbRU~oO b8N)04-T&VC@]{ WE~GJCU5Zv[,EҜ Pv>%R+sy.'jУ3\K})Z.Ӹ# ӔbkZ;luJǜJF~Ie`C:kg]G=S|P|z{UuXyZ Q\෎ >L^=Y cT娕c/:edյUD4|Q,wo]Dq MͽJ2P*9ZQ8Gs/pj}_eyl7*UN3؅M M 5(¢ղ<~z+?]=rU%'p/zBB*5׷qPej`;v'$yK([ qT 3 $51,nQT Ed_A@-Z>;ˑ^g& fj'LirioN="&9YQc׽JG &рE'i [S'{X Q5$FwAa&E+HYWm(êgHs9':ہ][4E/s3x+zn8HЄuk#5hle~c} nӅwउ$F(d&쨓5Zz"2-" GV6z4(9mKX=5S{ᄿ{ΣpS)h((uЄ[m[ң\Xd ?,D{3ؓ_r[A 9q6HEAODAIz'Ii5DВLѣt@H'qQi,_J1!ut5zd?4>_P,I$93*NwNnIFO[G&@ Z C☴va+һ'Cy(UnWȸ8bDL\.0,FZڿc7=GLU[)qTQ슺msv "4璜]9x},`eu--7iD;w]*-F|)OؕMЀ}w@ۀy[.HwV&vvK>j^5U F_> LrvMI$r7o rBPq 3BHƜa?UK<[?dH :”h8Lg3^`c>ڛ2)XMO֬Ս6Ͳ2cq%ȫ3/.c-*=NwF ﹑YX" U,wan˜l|ǜQr!w V)Hē XP^L*B]^"E8B ,p9Fg;ʡ\닰"Fľzg!3>|[s,)Tb I^$q#N$.SI9 \D~~cFEe=כ+u+tgХ7oaoaNS2lٟ۝O  F.x]J,FTqŜbV@?_b1ل6Z ޼+6.mҢP\CF)IT}$0^nʗx'Rm0a@Zc.(@b<ΨXU]4![bBݸ@ !ɲ@pFOj$ZGmog:dvfyQiUK1,0snoBgAw|Q3xK E9+GRU& G8B(ltk =hQ[6 *{>[XdՃ[WM@6_%8B*^7_1Asmy-z=JEErXk=3/7vf"`Y3Ȯ3<LĆ{6RkyZH ~pQi+ 6@'xRAdz93J)aH"ۊ7=DQ{Nt&ޏR.ڇ2do7iL`CաDz,nSۛiVwO(8?sں>2qzԕF>[u/xgm0q0\=s1Q6qy"%n W;Іcyx0/;P-'*A9] ?f*[pwwN푾|g ڂ_iK#*qkװG DG \ʀ)|z䇏9Kg"C  #ck "@Q}Juqe,˕liy%] L37lpEB USNI&(;/3LWv6z;f:[@{HB9o Li<<}S':~{FisERɠP'±؏|>X}Y/k|.%4r{l]'k5z!!6`hb+'K '݂{s]pietdg19[mF>/oPi lL'2Aw{ %1_7ꍌ^ {ߢtz,GFαqg4u`nTHlx%$V]V@B^u:TźylW8tp؜M~un7 $3As`}$e1g;+,#͞X"ԁW8'KLob,:)F hNkHkcق~Y6<d U%O=S( _o=,R8$ΙD |~WMgu:"V6O/m[RE`sE9WςVjQd'_N )8}~vJߞ68qG[e:ù@&C4F~s|91 .ӒiCEtl6`¾թtWA = #4: "Nv%d.[ *]R)sSEFCr6 (FvMtTl`6<.: =O ,( eCSEjP%|-!POsW"Fƶ>?2x:U8Fa1WD`  QL{RY+(e 1% 5_VZ }㑱-}wt&(ÃoL7(.)zie<6FRx630=XZ.qogM#]nͅ2 3kR liZ}N_9fV4Rf?V9Ľ0郈>c i!OHL+rgJ=9XOugD"Jh߽\Tu97Ϋ8xqݮI(=WEѹԁ Q1 ~M\]ؼJ?VB4#- +| '$u]sm /L2Vm! ÷`|BaF݅i @ iv0Cxq̌; QdՈ02ݷzy 6qm(!ΜSCIxljUwi'tt 8U:rA%yGg[QxOT&/ae48(5l.bH11J5Pkj3ia#ꅰZT41D*1ٿ} Skp3'U3g5gra}`sCc~D B>HC]Nm 1Όs7HDg$􈘍H\f <,TOK\ _@=RolamCVxBo.=`miwiOQv4<_@t)m}*U)$>f!>NЭa?AhY4\r#IYWhZ=PB j K. t taL6<&[)0JtcGC= tXrZaggd!Fꡝ$n}v6ְ*!cJJ- l$Dfx77g=H$!(Zi|O0ÚU6A;;~=Rm5& t Ιݲsq_R1Ρ\ u{&4mŶi3rN{% 8ͣ+LB4 G6|yz;3fiJ VL8ҽJ26J@0e@K:{d?4p47d`IIE۞7(C[patf/ ɣ֠}xsJ=0j iV[Igm>q~# CYX'[avNfo`EgH> 801Ә#Ц_ 6hWǮi|_,oׂxヘf j4`2+Ipͼ¿"$U--!o 33/fle􄛗b({%8w,TqߍǦ@^gQ3nuA!GlvY@8B6yc%G~kFhI!i|#ϗƗ{zLR+ˡ[j Hd}0ko`čunN ;Cx7^M^Ǥ`iNseYp=w'_:dϒCxL{kⱲ/8طθB5YiIwRDGb9j)[2IOZTzd6uXTvv VDY{αL ,W5cXo -sz>j ~z3qZ4z;mpkbUx00 +JjRЄ0)A e*hG,VeS3C@f%rZ~̓j8<46d c9Wٯ[]WN#u}~Wj<.FBid`ܕY{ u?^D혧] [Đ]x[:bĒcIHJ֖/ҹhPXe@V\* @^C3xy*fP˾{ ~NxMb%ZzVx ax)@sq"7l򲨱f-$kL2SX_"'2HJA}*CD:р6>=Qg>1a>?._"{$wz Y ߲p?A7xDK^U+ցAK| ̿\)$wQ#_(ff;5GYs43-y?.l'ta;7VO|.;3Gs@1ں'f)E! 9i,HEU=1azdy=$.}`ȇͷ( y] ƹLYd7U ԕ/ʮ5Ud3=bZ~F'^҅6Sۖ~$oFBOs,0NuO`9$A4\0P-Pϔe`ts/dB)C7Kg~~j(?wA3 \nm3%Y'MeF 4[$0ӵ:D+o "8'[By_wTUQi'"I(=PS]@Stv㻖%d+{KhDD.gHݎ90EULɚ(\ߐ OARv`ev@4ws,}~ZSd~_@ eX G"P"m4.F7Ӈ: TAUu]e1b5{S=e`PrS<2e|CYg~^<r0ܴ6fPn[鞔6vĢ)Ւ<i=&sq6)"2:ov1`_۩uR$)ȟQYN!2 h'M1N+vY=Ά]|@3|, {,|U$st&ȸaXn.3>5gʉS? 6՝hşnһ阽2 3U(=(&YMLZ: m2^HJI񃍹_ߎS~k Aș:~}/s٩mL/ yz0 P6mDb FLWt{Ђ.WZd ;5|Cr2_ d1 Рfn!lViP6֨G$45!՞ aK:d!nl#\kE T(~p`0nD 6Íc[kȊ]'xIN}v/M!»}K$M[u,%] ^[Οbz-1/I[sz:޼5!ْDFh!+}ˆ9E`P떶ܫ BvoP4k1]&u0h r#7?桕6AARc_fT42ƍ*q,/Z4[YQ0}_K8AwjwhG *Z֌ J+$tA;guB%-{e{Lswߟq }0INA(ZB=nH%4bqX۩ o{OƔ[L_MSAt/`1"g_ gcA 9\J3|L➆ U̺ z ^C۟#};v,uټ_s Mw̘-YWCKRꩃX%7! i`}Õ{zB -=f&s G'~oZYQS8w(إ<SybxqVF!X,'/ v I1R(J%Qo6ˤM&.)Z/6HL&TPf.*OaE|b=ްPuF `h =_Eg5* S~8?-wbżA袮q>p&s\~ G`@]Vg њZ=`"DgP3tzd-qvd|k̻? *}Acz?R6ܞØ)MXk@t&+U =OSeG &~gMHd IG} HVofʁGp~bsĿUٳ\3ՠ$ڻIH{]&" R/#{TaɁ84^ky.r4R=lOAĪ$9Y }:0A|E߰T+X&~.eWT $.oP`d(a;kLu!uE/4N~{VcEX}Kqʙ;A/2ZHl+3*]hz)Oui\kۆOz}mhb2f8yQ婷 yRGvGvρUKfqQj`Iᙘv?Lj'`>l 51{ők]2C;v!&4;Jcr'3b}u'}Կ`X<[LBGW,&\k3o\fb/&nˆ QsjJue֧ ̌%.4YgE\iRNZtq _b*}c؁:"0@}jc#OV"m[N8Guj]^^D0+,bʫ{JrnAQw^St(M.@=Zasu朗E=:ӌqQ&?8`DO? Bz÷iZK}2;hNaAmY[\0 aȈFLsTH?Xtp4am6) qr_8wk5-">vX _g7I8HD+Iiu?OGt㐆ىyPW?K]ÇPYL!l3z2CA ,v[4{<ԾM<ׁkW$HUГù[[}>7SF235ҔkpHvPo\՝ٱc/{0m]8fT*=0!)4FsꨲSJEHxk]@?ԻOns8?:le.2Ya߳JeFX5W7hpkn2@moiIt +;qz蕫Ѩ]Rhqݔk/7nevPj9\EK\c><qڊc)a \$׋)a5Jɱi ,x/,fw58!$Kh&ySqvOm! etܣدf]EzܢȜg0J)f3kDzݢ;vme.kQ&.rB c';1 QyG ADnY.Nb' U7xlKȼ#KLwq68U x5 .W–+kwݝ>bX5106HH3(h Be5%Eedff!M8 H<+Oʭ7 >iL2S#ysр}UEcQM&eAU}.TVU! ?X3Z%ű>5 …z(ޝ;טUɹkx=M\ ݪL4i&.a<(A n:R,;MZf*Ca*9FVZ5IJGH-ㅗAN} Y1毹op}4לf.a|ߊdҴSP^.z} mYll|"hts3>[DUn&j9i-Ż6:K]ԕi=]B0%Og/{wa-k~-*Ac T*ͭl!3@9=}w8sl! %MV$p]3".LH,aF46(\v0^r wc3~EΦtϻ,.(Á>zw>H|]Lgc6b޶J~dl텈0Ah3C̀!/{+ (ҘP,ZY Ejd7-&I)p&qknjT6A2<]lJ؉:΄TІ#gjdlNC ԓ3{lp-oS_4$ɬySa#>cpХޅ@Ԥ<-}S*[留ϱld-%G+|CȖ;@ZC5U=.VL8?ެ6d[0002\WG2̜51MxoVS3u _cW\Vc2+(M/f 5񚐴LGQpԹ UB?5d؛K7ߣr R_V{U= Y \Hf2wsdp_ׂ֩fTG`AWpb&ӂS!G]nLV@]ZivJKmTt-aL/Lob4``;ـEKg>&6LMHV呓F͡I(%bkSJ?kD C%aX0QJÔOg&b2ؗ4ߏޕkAʗXWr6_=Cx]vcG pLu7=wZNuc> xmMqm73<yJOdmSFCZ|l⌲:?pT/S9mOt2~]+iBrnp:M0by²]euѠa"ͺC[Qs`lD]ZՔrj'6 R`ByZ lH۲}MYN ]Z dcvFYR`J#.lD[&Tdgsx@YOBl)}e.c C4a&ðjFY,sLρwy*JᐮH[N" 8d0D;u?&|eEM~F%@liq @f+[UOtM\5P``ӵ7BYq.@>wBg~ۓ Ph߀$L;8I |v̤>=tUrվ:/6e Mʑnsق@|HfHކ}ogј_D #N)ykhѰP3fm"v^찋i^Ptp(7zl19NtE7]̀@i6b#ӱ5VHdQ E0!MKrhw?!"W=.Ң)l`5vɆv2I.u@Kǀ7bEw2\<2Ch0QR8 |6닋 =}Q>hXx3K ױ? p70 {m$3EGVrAM9TKZ뮑]f>$;&᫫9LHt5ccQy{Q,TPAGo Dc% $xH8ƦH;KEW™l@`%PQ.l]kFw~0d ^o[\'m`^ [[;א!Jvp n~leQ_X77ЦҙkJV.Ƌ-ƿkKM4Izr$.1];>őʥl~!M,$?*]nmoES͚hщ@ABb61|bnhsmviw(¹l ȏmq'WrbԒP!/N΍ =j{ǀqgC?^ͮA34/H:+N:Bب;VC҄m*5y%hD})IcC7Ak>{W2-,Vw-TOZ]EfoI[[Pև7DN G ./,6"ģ+"`!=ߩIrU F#Q'-T=iVp̮HÌxqu4_l;珗L+3];xۃm `X}5#8u{s,yo s"LF(pn"nwpqX`d-?kڲQ wi?d0؋*hVF^.v**el˛8GXjeB5SZכS_TV ,260 o wv r;hTM# B {a&o13>Y6 n|Q8WTu娟ݱJ(aFwٹ\C-Be8O[p]`4#Kt؏!vtYOkkۺ3Y+zd_Aϕ_`J!~) ЊL#p8ydw d/.$h߯RMMDGs}rO 0߆F'hA 0%Z.e'q@:GI%m93nxv׀bm5Tg' ~PY/C ; d=V~a-2]R>C|!Nu*Ⱥpx p'i n#OqA (ǕEHիvHSS -naĉc!+'H=8IO6a'p mI[QpIL QnRcN?\OaVnY8 '8]PSeKO[@c桉!B yR•+n9/tU;(>!>e f”UԲ$pTa*V#EY| (`ÅPEA͑Ql@ؙ4L&F7zɇo:WX+8f]&X3!3{#uM`s`܅kZ.~O@Izq|]GVbP8.vOj2{-U O( b\t D&Gw I7% p..Gf=m}4Dz+X0S.CSX\']`H]ê]3smDhG(NO1I0RR8Tt>L?4}й 34 ed~/B8 .!欄k0:i:XTT1@bm 8M^y5TAmL.x`9f؜8gujJ1pvșkA?ZRІYZ6A3; oee{7~$!"YVcjyIM=g|$>&8hrD_93at?k fau[Mc)C1Øʘ1>K r}pb<FC<M8M1!{&l'/Q@4+L&!2ӫ=^ C? ŝxoLԚ,:MvV$~|*Ff<Ap_Pym{@/hL5!D/փ| wBv27sL 8)!5 nA{mٸ~M Eϊ v WeHQ+/J}fȘfYg`|į_S x\g|eu)~KG;mVW=EkĈ蚰fM,_%ڼ\Zv- /6g9~h 顭[>Hlb1itKEQ/8ѱ?(ˡ 乛7Å>Ǽ6[Zp.`[׊1aeJS1wRuyM3UmrYkGT+0}_exhPN.=BM2ˆC͜$\&@+3X:c)%Y|5ُWs4=\͊Ɍpi?*Wp Dz?<\r)HRD ^2Q{V虳଺ҟYz0E 熾jd1G2^$wŶ;!l Z(dzHb+jn{QDFV.E ӡS; mʻ bOF>oN8vM2m ^==/$L$ 9mo1I~Iа2񦜲js#XYbuA4M?IvXy;ϥ-'\3?QW<5SBxLreag:^UM;,, w$B.yiʞuzPJ7 lC8s|s5AFUg} )NF' v7˱ ͽH#gʿ>ZtIehO{`kb&۟ %T`!z16,Dr!5&`.uLwәbV^7)Dr5~x{AqHPUDܺh,Z@VهV]/[o,]bԅs"Y&qQ8՟F(haYf!^nsHՌR]bKXfbIwm\]:8m*;& -L! .mqW%_{EYM׼e?UEgMc6ԯlR ?~6 E_ Ҁ'-G+}UfX.j7Fu_ YF`BuOn6q[HR ⵭~a RӵA9=T/ SIm{i72[ȡ!qay@йD'S%p|[ "'7Ɓ<.恨9BKXpcƯ ʈHTsJ$ $1 rCeM'0 A@ [DUo=.cP+U P>+sA_ǟ /ITH/煝/us {cڦvιl":Zy-Iu}ij[+>?>)$#4tL&"XlU36OhW~ڬyQkĖjO0I)7diQo$IdcKH'ڮcYO.aHNBZBcvyv/Fg"?+%U 9 SCQA9TX?Y0Yr0H uڂ\0=)?cn؞,o-pdB6s~RnR`m1+FDNSZ,j[W*@7\nkW~{5nl J'3 jCl0dnu~rebyQsqOdW01\%Y3Uzaތ5O>>*Uj_-(?H&n@һ[ǿ2ƚkxrQmIp wXU"u(2-ojw=QO)U,FW'?¦Pa8Ŀ_.)5+(p,Ak(&>)ʌ&MDHTQLsD4mEDbB)zCW~Ǟ-YӗL֜وkQ(:4]Q] ܜrI04pjp ]?|ohbI/6wX Rð"U{,Ls1Fp8u 4La˦Ud󢝎a3N*P-_bs*rf9!s7m %)7|s3O=hg<[;5'JG+9c6M:4jm1KyJO7TB]Ec<4fYy4VM`vb9YbW8 ǟ#zm3y .QҸj ou삲 .sL#Np0l+U^\l-xn $NFzZr%ܬ=/ld*>?7Зs=tP¸¾d\ b v{-tozK?$DKD [.S{.lKBGswO}!IoSy>L0Jvsߣ[3!EVj% 1ntOzzt4Zf@u |O@5m@ ]oCCr\"S V2if ߟBa(- culi%f(} { IK={ŕ6 lh?.L4ඝ! A]-}NloT4WZS5-ָyv' _iaXqzSjyy9-Az#ؒ_>жWiv} *w\ NvX7Zn5 G%cB En3߯z4GHHOιLhﲇ5Y4\CfX8Fɿ Dk1iRr#]z'_5DIfɆe۱Wm0_U6Pm}ת { 3& '&`H\\ή 1{ K- 9;?LrwMЦC{$Uޙ02MF=ߓB/߽"LT!<[QUTQ4~:o0(|8SZק&./qU~FPԆV/7p'Qv1,0iY |-<ۊ,Fvl %l^QП==_")d<ؑ6e5KY$֘N}EEM􆵭Yv16Eo`K4 xeM@k9|-jf"-li#BL`<Է3mb'HI]A.l01V-]18lIBXC鲨n W; V|pF3wٝCzR_c(Rþu?+P& mM2#>^A\WA/&5!g9 xO6,Mnt7gYuZxPBqꗬ@쎮?90kxƂLbuKd}^hXmڠS8N'L}%PSfu ~Gғ ޼Qj+1X< {WՎpr6̓-hq\ϓ6ϊh )I:e]"8L8Lvfge%yuhnc++iiBm{}%<2>Pu"C3%Nj$Q$s z4,߀qCc\~n[zy=qD dU00Ad1EJ9B݆퀪5Є-sNm}U-((N Cb(䴉p?0vcf-aTE- i8~͈^Ka{ _:YĐy/VBhB#2ة~.pC5̯<+OQx6 fY~Hquǝ|ƣbni)\s}]9J,.0ig|sR`GUw!c țH~{,cd Y-K.'ڽt2ƺzїYjz;L3ez06#z9, 'RUѢ+H߲Ȟcx͝TTvTH'1bɈrCyb\cStByOf R3ޠ܍6vE{ & MhD ^SIK;6ahs9|<=,w >I qfRj&E`w uH~(Y8ø&'TXpjIQyG㺗Z4f3AAgw0l qU-o%0bw4j =^^s]H?h V>Ims&3lϸ`UA7]Tg#:a:YkD-q~^)( jUxD'a9Owp+t,AR(X !f )?%]Af/LmSd:S.o&5*WUe͝V9,:Յ$o㙆~<=lePhaČ'@RgxCgXdW)3ZcͰ:V~5RW]xVqc̀k`@Gj'6RMi)h7Rų9GUic\9߈3A2BxY{:RNܙO`t6p;SJsXq+&C9vͬj%kPu^?liXd2gq#S&A|fY?TBX(Lx/%ݵl(U/֏w%>`Wϼ7Eɇ.`al{]|VkN_'D=%S{xKBCh1FeJt߭q-iR&nxUBeNBDi+Ӎ8"73/uQх8VGU1ALW;-0 Pr WМ{ bxNIhV?=e_{}cĠZ2mկ>%=l%GP6;~ kMxNkv:֭qo52ֽ?D2/]9,lNj r+,S*y9?.qrL80r^5iu ;I`Ncch6HN8rIHk XW,Jyh}kʩy7l hpǨE{. "*tɬ 06&˻_]=RDxBޡew^$t 4 PH J%hhfB 9rH$%1˅]P%S/ if{߾]^NX ?0ohbn9 iꫤwg9qJl̆ԟa߬.Y5rE5˺ Usػ)eձ.n"q1t{§4Id8aS(0w;vJKbFۡƍn(9/l9Q@#mD6J$Τ DSsl^;"a [0>F>Ctvn)asz/GmVJX} ؁6{zK/"՗3A%W22y5"{~[<;fP'j#e>C44l"Gcտ"dW8Ts1Eg.Bc/ Eoa::h]KݰލRQ >sv}R'@@_*9ǣA - bDR ?TjzC#C{(e [+x槊o֞{{I pG\}Xaz%mW 2zQyE QL$L57;Y`\LZVJʭ{+X1nС[{~5ADS@vy|1hkF1QSn99 ʙP^X㣸=nx2f ' , ӣ$2+Tv+ՅV44(Z2ÿb ^z c1eKzo3UFR[ jr ?3(T ɞyl{2PZfF MYū9MټɍfonSB4jz.J9\r:yAYT~Tmd oʿy]nI4&ޮj~͚ O\n [)kPYH. @~ _\#9fG^nݴ[O>ʍDh`;#%.}V!gtVLJ6Scdu^08OFY0{4Yitfn"c+wȂG?~$Q09sBk eF5C'sby'W}ù=e|)JPzOg{j;|xC\!yfIQZ- wk,v[NTO)ȄN=f`!^nIGB&V-b`C= YI<#i!FА&=9 ¨WoPB[Ad$u%$}̓a2,?+r;8:QSѶ/h|P0jfG)*Kz1h0Э'z MnR-SŷJ%ԟIZSf?2?q˾7Xjソ9Y*V`YCf"C W{!J m27Qߜuw{lڧh u7@_7G|PZ=khsbh>m^W_"c`;]]S2Vr1F|u$/W!B"u~/Xٸ%lkVC}*Jox>ycQV8Vt=U5沰߶ 5mB33w6D\vnEUg3b˸ע؏[vOX{/-}R91>_LHzk122~!Ƶd s KKsc\gƵSUĞ@vJٷSt!+̸VW\-O"_ B A(! ~d)d< g 'MB؆g" LyKh`HW4T7F`@-;RC㡈q3VWz@G]Py(L(>n1shanLl(/ر5|9歈5PsFBnnǥwF^yѥ5zlO6077޲X's푟E3SKpՖ'NFS\Rr[9[[ĀF2qlЃOc3c+Rse}z}y?O߂ 0+6Q7Jh:U iגK2$ ^k -WKc}6*ȡFl:!%Orc?x3Q9N+E1$ N.DO)aNY(iw-ԛ;` -3KQkJµW+@EU,&m"1^%CA⿬SʏW}Ƒ]; #M%mBZkyX7ZiK՟wb+M;͚u`Q:0509ߔWe8J`U5JTaԍ|{%PD;!c8qLG(GiLU个+wvyhaqRޕo< ̱+B:ډ=tj΀쵟6w@6!+6pmcPso6R3$K%뇦0igzrď"͂&w;|<>3|\fkpGi,oj;'Lm4` %5{}ș̛`Pv|*m4= %NYָEMp \$Q#F`UTퟮD[FAbVZkj78,UWΪ$QJcmnU81,=*M^:5V7GO {i詋*Ƈ7YL }Si,"hql$ۭHe 7dq#.Jw ā9HLH Bh- a2Z|=4 2 2GtZAA㤱k#ơlfWXWuLy)T=OK$He _2uPN5ӴfZ7<+97 NAZZUfDmBqg#:H)M_r"Hb#g6 _{T TB>i/ĭg2{/P("u+L{AB0}ٗڝ)#Ue|D)~x[6욖ZM [.o1@G*tBرq-883knjJH0u ĥ;98Qsٶ+Ņ&n7Ea?l"So;/^d$bX PYIo(<„&gT!ie=7'Ig֏"${ҧ2o AչzdʥVWKw8lu|Mi4v+ ͺ2kM6j28l ^:w5fMpnvPWq?Xk Y\K|/ ~OƓ¶%o @8(k6|ԌM)CQ/dk&י B$V_*X=m8:xdfΰPijE&d9y#k/W幩71%ɓP{߭퀩l?ŝ4W9U\ k$YAOKˎ^d 0('`s* ޟu_na{EJ:;\5T:CQ.],> -Ӭ5eCnlj9Fr$Ѣs_$/C-#JoRub^+\pM{6NiQw%!CF ~`m|#U.aQ?7|]/s֌ފW(s~ #u?H^"sg@R9%0^ijT:0.D9 ݬ}d}' /~3! NGW6Õa^bsc>P_$}|+ %EJʡ|K[K;T8< Xz:FRcW*RDLZM[&Nfb}-p&^߱- %^?|2%O8[ 7l {QV8ݓ]{pTS{6"+ "0~%GfX( Rl'6&<7Z͡u.2k8eIҽNM* LOV܋! 0-hИrY Z=I>1f߳X{QZq,d7By92iȘׁrs^!úi43[*~0~d'_seo"$w^mlq}hNf7Dpu|(iZ˫-<:yd(bѣf 4;b; 'i[{ӧ G#(׿w:"-zNR]:s(`)F} ܶ8Lz7\цAؙ"$6uR%@}}&h-كDY"\=7V1Qrﳣ[p60T6z[%kFxy9Kca$o8ǂȇ'D*01GҸ#zg]a-u|-nSiET-Û!5ğhol9&.# :t(Lb݂Mt qs=:YDկ-TdeC,'Zڦ܃sTkw ['SQ&° 9 zGRP]^sF{^fGcm6>s}LyvH{E2eHi !D(OHQ^O∄FE^prMb$|mAjHg 9LЕeLXkЯ12|*yAȝc<#áls!N#\0aAեS3:G =eɹwL:Y=E4"(/T!aCq*sdE|LN"?z#cT"Qv F,-%z OF] hakR, *v8c-w*eslY4>(y14B K&07xz4T(='#52(LQBk X02r]4bd7-~xL* d )fb%%u(;fkfr FjU2tw8bx ?쿭1q_ԥAqj3R?@+!)j7  w1kMUBh 9p Sna$w3E\Mlej`@~Lk=KN} Gi 5x"7{[J{m9픁0( hӈ-՗JCV!A-v*WSNGM_m ܚtni hyr2i1i(O[b0rQȰlF\a;Iue@j=<b ![lzXAE} ePv%- cmHUQQ?"b!p"Qcr&bj2&WӠMP9'D'"AvCE/,Gj/':-ަb݄f5B'0[Vބm~֍jBfʗ(.{]@_5ȄfJ|{:feI?וP^xŔpi% 5M{I֊$Xu|2Z"c`YS|v1*1A]nY!)KiY6d =lYx <3 k#RSJ>8ɬ,)bRcuI 4F7;[`YM3:hK{wN_.Z?E!}TgryVA|ט) ʻ"OEIQ&P5P^JgFh{Z'\5l"$ - s. =,fO>fsO{gPx@dA$\ޞm:HWfDavJսpe:J̺i)H u|L`z.W!{KLk3A6bJ r0)`W}}b ›2D`N0Lɤd2. U9ˊjc1/{ Bx7(iC=^l>љ2`:R优o: KnX"'d?,WЋ+ uF=eȹ7X-e] 7%dNBMI>W7zkɞ.^+1: qg[vxmkI$KRBk0# ˛!DmqZg5QW?|Y9=EOSWxߘ yXA=ϷzQ7v-(svn9URBK.uT(Cǎ ͛vdP-s[:RhF,yZYWE 3խd@fx#.!*Ŝ>09}ie5'2tTe'@y'r| |sA|[=ɣ_FL 1#i+X3ҩZ Zy!,. d^;3b6gݺl3&By2Xy8M9 xo2||Ȓ^uH1Х.D50=QrzD{AUڷmp"8ezg>H$zԝ1Ur޷U_1U5zyjn~|v4 ϊY«BH ^:o kBGjS֟yհ[*$.t2bi+4ƣwRD& -O=ƃYR]'D\eؑiڰ*͂׀}ƖU*bYnF)ܫ1St|hj]~h}_XCt)Q:X8RIqvŠՑG`WΉ?g!͡ ͺvȪ_ P^ZD4QΧ ^k0([uljuN>!kvDWwF]o_M "ӎn22*WW>.̵@yrm})h?0hueFl>:Tr*jv$[T!BrNIږ٥igEʘenRZSj`/8fW݌> g~*AbjBçhs\`7/ Q4+;*/;$ABFT4;H)'$辉č%epHF(;֗xKCu.cP@Ū($igC@:1/dVLP+\TkU=Nw]yRU-:a;1i-d!l/%̫FKj<~k8τ@p[bC׳Rb'|+:ǠZtz T[0g s9ުO#[s˸EG-Uu~+[ޣy?̇l> v;\"cŔ씻5iz7ƅA#q&g'6Y~`巗?egǶ_y- aMcFz98:}?^'OCVS CA<~KY#ʟ_VoH/ *peüzݚU]h[PkY6!hA E6w?  Q݃kږ-Iؓ,.JP_Y>Ctdrsgo.F, kGΞZdпu`D;ѵtfuaFh~.#ݨ⟾ D$i0We3Qx}lHZpHfGP6Li~^jEd.3['sqUgT߼>UV|Pj9s~益2 ~RE?}Wie3k΀$𲖾P(JG0u$l(tŠklŮ,ppF{D h8* jLw9'i%GZ7Y:yV[oɭn 524@=:%x&{oaDByC>O:JL½9h% ͊6תsvo&RW? !'= ?0\$mIf:`GgH߹3+7ޗV@zc/Z[څHܓgwdno~1z I J Ag-e(V^q~(`f2kC]Dɬ1Q߂ޅЋ9TTa:B\AԹ?8’j( Дǐ߳4m!7aW=$UՃJKE* O`O'!-)\ ӊW3uK0E/~h'чGX缃L| y&\'J韞TT'Zz>h̄ qnZfш.=p%\z,rڴ nqrhcXIХ0 ۙ7< ς^J''1@~tkw^&:wUr/B&#IԄM˔c?ݬbcχ [W jrP  jkj We Srb!Px*+Y!!c}0W:-g$4 f ir҄.tL,2/t?0}TbJ4Z~Wx,aIqBuW53mQsךi/c`:`\bZjᰡaMep ]WT4dsxSAA@YAE3xokS6Muol 5^,'i{, *EzT"jkjG1Ii7=ud'+b\c#v*Rc.*@UR]PDr̜~s;AѲ$mQQX4W'kTf. Rl/%)2؎ͮ1H{_s; }˖7-pRx$ת=!T֢MAР?J9(>+cjOHU9&S6,0\V63|A|#0ts^rAf.B䛯ExHL\։8'u,֘Aw S*z֗Zզcе jBF$*%Bb"g.9exxA vi$V'5/+!9@(p0>bi~&goPZT ڼqlo^ӍG E"vjr?G J<#tJtsRxFuLA IDև}[ xSTċ㪴 ʦ4tJ v@EˋIbCZܖs5L 47]#XEaUe@,OjKNXjak ITk;8<f`N1eαANUhӓP7g,+{mw"K4Rf$qsme{n]Ѥqڈ߲7:| <ARN_ *=7s{%gRD{TRMl#rY&u(F]m'y!Onţ 5U;ʌB,E%񛇳aC#6q;N'Jd5Q& A}k9cRN!bMϩ!堸:eQdWg۝{'*G(Q _C6ٳTA _oy&yږxkei!{_9 氕í8@!>ZUX#u_IJVA> h{T0lӼms%`+JLpGYƀMtNh-CfN\@~$[(caFM~"[>TpGS̋XY/f~i,8Rw@* ԋߩuC̱>ɯe5gjlpDT>!2<j?ҍ&D9h 5dR;^* {^KR](6F[?&EQ@a>!4$Ş8R-K2513K;,:{3@s)sOe}R4+7Q|@xcXo]WC.>ܘGs{wl|B*t,-qJnX3CL'5 T^-1GZU]ܓ]6 {7x[Eb? ''xͣe/.3KtPep{+o(GnbvL@s5& ]H\`fԄ]gIԘ3Iђ|2lԭe17a2/u}SCѣȊfB[rJlL}P[8Ar6܎@QTbS@.bZWJG)*AAt;3Ȓ+ӠPBa6[r9 A@ [t*XNּ6D?E }JN*Ӳ).BoXj !4GUS !Ӭo)G09RؗeuzC,%23o4[󧌔cPo"h6(=F*\).ӔkCzsqTs =ogSƨoiIZJgX_|6Ykb _q<<4ϣvh2DDl5y/~ 4zu,j;fW3ӅU/E|M&^rMrMM(j k2Tx[[?$?sif%Sơ;_.Ѡ:p"H܊;V"+*FYԧ;z7`+X<bpb6OMP)Kt3< %-|XXp _ihǭ)io⌻ |=rMa]?嚟$\²xsm "Y·`n8(hUIm9 t9x[.,O c-?P<Yج1 F,<έ.(&MY%9wȏN]KI>,rJêw$TƱ9ձdMmMGƂT["_ͯs:4+9quˉ}¢Pv]AB8Zsn'ٜ0NaUHdf-Yit(A}xzw7 n6(#sG~ '!=ڜNDDw9PҊ%G*`٢ CZl_?;lzLq KS`}iN"%1b1EƊS=o.d:5fL,si9'*=43IvU h/ҏN y02!s$n +Wlmݷ}ݵXJ"q۴,Cfڳ2 H_H nM'iX{S=diЇl{Rb>}L;b`]SZz k0ƣN&N3݂L/W YzvKG4b5ajeD*;C\S@_ BĀ@ yo;ɪo bLl㮒 Yy]Rx֢F]ITsݐ@H:~Odp ܃ƛQ1FeQeN`8mި`֞ɎaSB%6DMaoQv*4+IM֧Ȕ!קZ 3o"c&rl|c%U ӯ _;md2v:(a.ΐX#$| )]ȁK㦣9Z҆Ȝ;"e;8tBqKeRYW%ryyXg3_.j3lmugQt"m}}Q+_46==Xٚ%]тp>p\dR+okң0ր}"mvщ5A`;p, yO xbLOڱ:y˃<ĔjPDp;,=!Ydސ$No+ w8 ~?+@Ex\׾b*Qkx<z^pO#Qfu ]dPM:Y~xKJF8e(~ <}M{]K*8;Zw4,SS5.钖7 bU֟>I{n_g}j@Cw Kk|G%2-U,ڄ!{'fI܅^ bV_o- {HN1ÓZj0kf.8n\+@{hGx%jgV6t nMm% AΜ4 ZWGb@d)UCJpS~]|G/뎴U ð7xDXFS#SwP"tU_@:/ܰr^KA9l)C /+U NڿoAsOlԎ?륻`͍ű5 8fZ [$rz,Q{ ?Fr0 9ƈ40ɻ`(&^yq>boIz}f*z`sR"Q͞ K3&{_u60/7 3 그7-U 4zC1(a&ND*\>ϰ.+C'4#@Hx܀hg _44;49S;NbZqX0ӮT&)UQ3BS޻S |`$V~/7R'oWi'k-(AS%]#`JiGmďzs !g%@+m{VKF'@߂iveWJtT͔k:ƨaABYʬrڧ|JTsRA>2@zʁ:| QYJAia_Ѱ!}S^UJy7g탪;\Bu| 5'%dP ,8+1aqQ^ i|zʹ BJ@'a(藡F&yg/JB1O0 4mGuxaZeF+Lڙd\$5'6:f)6'.qHncE\f'3/̠VOJOL2,m%'jJE1`TAȁ /c xm  OClբAcÖ Q|C@%pGy٤M=ylp}d,:_zdɚJG] o5gq|lJY*-86(`ddź4Y Oфa:aRW:np_5/raNV ap%WSn rv J+/9|x,Ż 9Ato9 {b.u~Ѐ0 BB6mnp3Ͷb̲k(Pxw:hP$tCz6hYDW3}gWWe Je!텨.ס\r*?S j'¾5YZ}ŷeIR3/'!t y8/;n3ݯz]BRa甭zcAYB%lvק29rmj O[-kO)BʛZL^.Ղ)3uOc 9"˿kXCΣj9AwHXT1\1J/=4 3Wubrrz6oS&-Ӗ=7T`2aWU d6(/Պ'0 q%1c4^CQv>[Q+_"b'`b;0=i$#G`2H>XOλ|y\ۯgD* u  KzNtȍ ߵgZehΓEg-hG?6ЅO+p0WLkpA>Us(RJ˘\JΥ~eRhƁu(`U%2B l'djn}=+mXK"}]j&JE_p=R{^c`PE7܉nr;kn ЋƲ7)ኳ4AڊiXK7yC ᶍ; vq/Kb1A Z|mz ",m{#a)n4Ma۠rtFqdj,2L&E P&4S'˭KksMĝ;"БĔ'~2VTIbtyP4B?hU %Ч+"ұ.f6;1s:'p.~Oڜ *d';w,="Ȏm#FXGY! ^n,x?4V(wf 8KFaJOlC T~憤 Rzw{DyA92%ћ۹EЯ ՄI:9:'~ g3rMwK $xZ/n )1sqFE6O=B{xD-Sz @8kՂ X_Z*8Y)ǜLAyACFU[żl;G­q!PHM^8:B{,a4j22QiyRh Ůq-3J3P?UBo `j넶JJH#JQ &t*N>3EɪGfWNKu+k׾5LlJAyHW˂S Yz Cʤ@'똱U(_e]T:|OdXvRw"zT.>4^dsu6<̣@#JP3SRTA&vu{Cԋ@˛q0E©~.0I!O9 F" h1+26n"L?zduȡ}zK6XHWeY?lQͱfR7k1;XV8Ec0&mSD@#WN8NYZ~W!.VE3͸]j уVLC݅͏3QY/Iz3,݂~t 9pD]Tuf\-8zˑgS4KsN#ԌL;VE+V.l·R |qPO7{;2ʢ#V_n.!z;=<߳…gL/ %5&y~{tф+i؆{& {T:zýfɟ&{ZکvkW6 N KSrߵ.y`ü ? Y00>A~[sS]Q~ͯ6r^ewLtjoȳnZ#S­#Z2clÔ8B}n_1565B??⠀'Ta/2fa)Ť*`j".C(scPnL4%O9MZWA}p{UKn&/t8춨u)"~D+E J*pvUf֒\}~KgsL6vs)b82`"3q T\B%2;eT~ӣ-(gFȈ{6XB~/s>( Ie.鉐mbM!Ttzm:)ml]qHkWAZ+ΫOAH5MN6+XI_Ca{ jҨmָ=e3yMW]l[g:}AYםhٝ]b`"`q&㢣ł)i\ƝSp Sa"P"Ş?4.A_ sSI{ 0~ ߼ބL>kCpQ•Zڠ͜ǫzໍ59^+pM-2BC6dNƶP xЀC#@|q|g1}`6.9jQA0zYX!} _a\YkMC&I-aZƆ:+bjZ]Rn_݅n`"h񗋽s ?x7Q2[iG_"+04>&2nMO-FI&lNCK^~_Dp^sl{t3Iٳޜn\!^}Y8 pCyz»㖢Qv`lҏU=h[Z8GAj}ɱV`|ώy!;ka5YnZ޾Zle'J3U'E 38X' Ŀɯf}U}mVTt>C^ZU  bC !bZ9KoPr='Y9p.yVAn$>*k[]1e5|r86$gZ#cJm V Vdc7mkܣ KkUH?A#LbDC3y6逬.D걀kxo,8>(͋`dH"LK z*5ESGIL-"sq8DӘK_Nki~ao6ppD U9TQ #@qM~B$LӦLPpΪt06:(+aUۆ%lڕx{ɿ}fǀXLid JBrO)VH 'BF20Q~`SSt ;5ϒA\`ۜ^Ͱ-g6>7~z׬ToȘ׾"!fRBzQBPW|޽_ߌdIk6 MA腧nس]$gUD.ѻG+IhGZ]| @v"LcMN`5?Cy9DgYOʼnFzb!0"GlSSif5Y)Ͱ#zML(TK)V~s޼$\H7bTgjRelQ `~$ OY7}wJqshrGkx:!!  f'b6,tz7*َBfhR+׊>y=<**r5!^J˦%a=tP3VE?[['k GBKu j?g#4'8)S!LmU]xqմ5Q5W!iH?1"@^uCżZ;kGU͢_@(&Rc1htTLo=6c־-J])SSO{4Tq0m+=KuU߻G>P.')fPK b;p:H؟捻VpQY~0yNkW}_(}G`EiãpS=6Uշq;*њ̠'͵,,
Ҏݓg%7Q%/壆G5 "Ĥ~@A˟s[agɏ%K*ׯi+W'(rk.- ~F5˙$uTz51LO'&Ζ02M?E]z}q@?[=5ƨǍk)<>=x᥃,ˌ{ U_`w1TfA/C]^bI"IW: ͿIKyDi-.Ի0㖴nj3q0f攨E2ەi%S0,ZT Zpo{\:kX&łZcK+c召e/nHcn8PJT U4퇯H*SoL?١vˮ?__5#sn9.z9`=v$2(۶_֐dҷUe@k!٫^\[v4fnBN0{U 0:1#`PZ]|~yT5d-4xydkAG.i/w 't4V$na\~p vCH̷Bo/bcŦ!eVE UӤ=߯0_2j" !pgPLE9uH 0̰$m1Qjer⩕N2M@#[=Okg}a#GfA}%5;|8Ȝ G <7>Gh0 y"6A+2 [?m' X #,RY2.<9'i@iWԢIؼ<5&2O`,L_B3[F9AH.eVpBRYdJ@h1ɯ^+bOxV=Rޯ3*('iĀ5 Õ,+ 01(#%S*Ѷ}50-Ēҡi iH8⑼5Uܥ5Zp@|Wsfo [j @j9\]\Zzm]jkQdU1a EC^De^kۢ4swV`\Ȇ)b{m:y }a@Yȁu;W!r>5[fl6?;8D͎@6ktӧÌUv~Q>אn^XW~, уE4LJ)}$ȅE9)q=@]3m[/x(Uk}*4mz=6b*y.a1$9*OIXL/ۯ=o@e#>۞qJ48x B]@kvZvFƑ6 􁤣i>$)уTxSEiSXh%G)ywO} hIb3m'(:_;@y&ޝwLQ: SeksXLxU֟`JdK^OuZ~>XES[żdi]SBƠem: ]HMB=?Qվ p-e@~w9%2J*.%bA=tw:&nf幂.`){ڥinBTLbbHu_[-i3P`č6H0v!8 D1Jo#َтu-8A -״CAO&b(4}$E)K~'ś^ђMFJz%'W/Bl=yNQ7hüL';gB5)l ݎvOQq.w 6JZ[|"ӈ;Pi-&rloo݈bbitEelQCOuH~oIXlلA;d/aAT|yٓ$+KdHqm ĕm:#ژc VjkT$SX b|cZ&~#ɉV5Rfvl56Rls|tmDF'׭*G ̹ϕ&al]u }_bOY8`۫ ![RQ-)sGcK\'Wu:QtNe^#U͙3Ll/Ϭ/Up⬾&tPO4ծg`}5D3WGT6Yg4 t D{݉׳-y3TEW G,Y2l?ײ_Akk3KF#s~Cw޶0YCi Xޡ`^k{CSoID~Ckv,8Li9cPL#!*Wy g3Jy{qs˭ `Y_&g uNXHidy8W *K( =4EJH,=To|aI5ܮ:OȎm`Zd&tobR$'E㣊rrP=]@+>>=ЯHZ靰3xpFk ]#x9^Sd߸Ak0N j鰡T4,RYb:;$P] ( ľ?J;M"ХM?QӿL ..z8 ;. (]߮ʫ:[&Jy,5N< ZpQd_[֯2/ܤ zf|s %>ʉ61Sd tgȅL*C+D 🌋9Bu5gE]0q@ujj8e@c|޷S6>Eu7VlA^xZ;|G'rfk:%hkz(a!Fxi\:0; ò[1)$-/ج^8`#P:)>֨Jh'n.:&EYߘg(Hq~S$:p7O53!^QF ;yuWiW+ég"M8#[I f(oJqR\6)=&ND O{!񽠼_hb#? bXS]k<բ :E'<(`|4L8B}@'t 9japt<#s̀Tcچ>EX *r!>uVOcZx um¤tbh՘@ø˸w3gv/tX[v]`ZG̔90"NZ;F+@էE(Eؑ,1>ShWyNag)#z9&pߣQVZVo\J ~H$b.}L+Ʊ^[$W%vΝ[+'o]r 9k1x"if_a wJo6 ԧdQ븑k*A2 \]l:7K1줖ʏd3)>锪vd Z@(V9 gZ$<]x"d8}T Kk y擬!FިۅW[Tў6,-9p#Y؍|z_Tuwh1G2g=kh9(w0PWŵ\p]jEkr@v0\؉v"iniUW$ '. 3 D^Q\cYԵ-|9¿q)t;톔AJPrN< HbZɻCk* Oß0jsqE#Zo][Ƕz- z#&D 0Q&rE?\׺:qsL"*n Tex|FJ\hdzS.=3LN{&xrQSl$VbR,&X4A ϔ"4ܶ[ЮgV!)|zؖpC/?x ]ithn:2-k?^0(P1B=#jb GagmH$m&=EcCýzAf#l~do}hOgaIK7skwKIȅi(EԞt.) ۟b82ƫѢe"P^~ǀMp-Zm&ZDvgj.9N`rI/GC3/Y=QYuuA@N(0)h-稨9AO\n!Ev>bBBn;LViMQ]Y':.s^W}ۋK~4g'H67ɣb25/j%y:"γ5͙ fCϊ_B37eO"OXM]H+>v }--"E`:QG;\C򫰻NX ;dJN٬?7Y;Oj{Wۜ/|7FS'sJR5AԥX @yK;c1ml>‚K8V%toDfYF1#gk)DGFk]\VҬ; U3sO 0B>:RA.++S&ʣ9MfUrP4ϟGXbW]$9,QjaI\I"O!GP y*F_V A3,k78荱f}6n)=*PiՉkM%rUހVe'):~!1< v_$!S`@%-Th>#M _qx:EjMͅvGTgcJOūڈ[PP(wj*}J!A?,WF(ۺqu)cr[ a}|ē; gLWn2vPHN ۘ.?>~W8yEqL'bKt+3Ll"9^bqYB@;D ch^s Wo{J"io{O.F4qw;/f}~Q +QT%5ϢC<9I*s{oMQ'iB)ڬK1ý'~*I]*໒!zHEMK;v48ZRgkp2c$N1eyKg).bx`K]4 "M<,82kE܇b;0c(A0(Rk^#dg!{[/uPU5qn!&Wb3bT"]†c0p T+]$LѨv'H+ nP\Y'k[0n)KݫvkEF2iK{w-S@ ҇V`8@{+1O&i/fJW&Gދ޳4}Ez):<:0|(X@ў ô<4͹ѣtD|p$|Mi[ѣ*Yƀ&4Q4NWu{Mcr3Kv{j!9~Iog{3\ܜ0wF7kJ~FmBӈxfةYj\_)%]›{4Z Yi`?q 9yŃU^B6F *0l^nyTT p솫y!8|?${}|5;@ +n>s.peJgz:i8P2%t!Yt4h%Mvģz@Rt~v˧즒ݮ!3{XKG=!eO{ܺ8}w{ LHkBzV)sV|tr1@Yð=Lk!H,E