summaryrefslogtreecommitdiffstats
path: root/perl-install/bootloader.pm
blob: 816e31a4aa2166195865e18e31a6f1b1dc8874fc (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
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
package bootloader; # $Id$

use diagnostics;
use strict;
use vars qw(%vga_modes);

#-######################################################################################
#- misc imports
#-######################################################################################
use common;
use partition_table qw(:types);
use log;
use any;
use fsedit;
use devices;
use loopback;
use detect_devices;
use partition_table::raw;
use run_program;
use modules;


our %vga_modes = (
'ask' => "Ask at boot",
'normal' => "Normal",
'0x0f01' => "80x50",
'0x0f02' => "80x43",
'0x0f03' => "80x28",
'0x0f05' => "80x30",
'0x0f06' => "80x34",
'0x0f07' => "80x60",
'0x0122' => "100x30",
 785 => "640x480 in 16 bits (FrameBuffer only)",
 788 => "800x600 in 16 bits (FrameBuffer only)",
 791 => "1024x768 in 16 bits (FrameBuffer only)",
 794 => "1280x1024 in 16 bits (FrameBuffer only)",
);

#-#####################################################################################
#- Functions
#-#####################################################################################

sub get {
    my ($kernel, $bootloader) = @_;
    $_->{kernel_or_dev} && $_->{kernel_or_dev} eq $kernel and return $_ foreach @{$bootloader->{entries}};
    undef;
}
sub get_label {
    my ($label, $bootloader) = @_;
    $_->{label} && lc(make_label_lilo_compatible($_->{label})) eq lc(make_label_lilo_compatible($label)) and return $_ foreach @{$bootloader->{entries}};
    undef;
}

sub mkinitrd {
    my ($kernelVersion, $initrdImage) = @_;

    $::testing || -e "$::prefix/$initrdImage" and return 1;

    my $loop_boot = loopback::prepare_boot();

    modules::load('loop');
    if (!run_program::rooted($::prefix, "mkinitrd", "-v", "-f", $initrdImage, "--ifneeded", $kernelVersion)) {
	unlink("$::prefix/$initrdImage");
	die "mkinitrd failed";
    }
    loopback::save_boot($loop_boot);

    -e "$::prefix/$initrdImage";
}

sub mkbootdisk {
    my ($kernelVersion, $dev, $append) = @_;

    modules::load(if_(arch() =~ /sparc/, 'romfs'), 'loop', 'vfat');
    my @l = if_($append, '--appendargs', $append);
    run_program::rooted_or_die($::prefix, 'mkbootdisk', '--noprompt', @l, '--device', "/dev/$dev", $kernelVersion);
}

sub read() {
    my $file = sprintf("/etc/%s.conf", arch() =~ /sparc/ ? 'silo' : arch() =~ /ppc/ ? 'yaboot' : 'lilo');
    my $bootloader = $file =~ /lilo/ && detect_bootloader() =~ /GRUB/ ? read_grub() : read_lilo($file);
    if (my $default = find { $_ && $_->{append} } get_label($bootloader->{default}, $bootloader), @{$bootloader->{entries}}) {
	$bootloader->{perImageAppend} ||= $default->{append};
    }
    $bootloader;
}

sub read_grub() {
    my $global = 1;
    my ($e, %b);
    foreach (cat_("$::prefix/boot/grub/menu.lst")) {
        next if /^\s*#/ || /^\s*$/;
        chomp;
	my ($keyword, $v) = /^\s*(\S+)\s*(.*?)\s*$/ or do {
            print STDERR 'unknown line in /boot/grub/menu.lst: "',  chomp_($_), q("\n);
            next;
        };
        if ($keyword eq 'title') {
            push @{$b{entries}}, $e = { label => $v };
            $global = 0;
        } elsif ($global) {
            $b{$keyword} = $v eq '' ? 1 : ungrubify($v);
        } else {
            $e->{root} = $1 if $v =~ s/root=(\S*)\s*//;
            if ($keyword eq 'kernel') {
                ($e->{kernel_or_dev}, $e->{append}) = split /\s+/, ungrubify($v), 2;
                $e->{type} = 'image';
            } elsif ($keyword eq 'root') {
                $e->{type} = 'other';
		if ($v =~ /,/) {
		    $e->{table} = grub2dev($v, 1);
		} else {
		    $e->{unsafe} = 1;
		}
                $e->{kernel_or_dev} = grub2dev($v);
                $e->{append} = "";
            } elsif ($keyword eq 'initrd') {
                $e->{$keyword} = ungrubify($v);
            } else {
            }
        }
    }
    # Generating /etc/lilo.conf require having a boot device:
    foreach (cat_("$::prefix/boot/grub/install.sh")) {
        $b{boot} = grub2dev($1) if /\s+d\s+(\(.*?\))/;
    }

    #- sanitize
    foreach (@{$b{entries}}) {
	my ($vga, $other) = partition { /^vga=/ } split(' ', $_->{append});
	if ($vga) {
	    $_->{vga} = $vga->[0] =~ /vga=(.*)/ && $1;
	    $_->{append} = join(' ', @$other);
	}
    }

    $b{nowarn} = 1;
    $b{default} = $b{entries}[$b{default}]{label};

    \%b;
}

sub read_lilo {
    my ($file) = @_;
    my $global = 1;
    my ($e, $v);
    my %b;
    foreach (cat_("$::prefix$file")) {
	next if /^\s*#/ || /^\s*$/;
	($_, $v) = /^\s*([^=\s]+)\s*(?:=\s*(.*?))?\s*$/ or log::l("unknown line in $file: $_"), next;

	if (/^(image|other)$/) {
	    if (arch() =~ /ppc/) {
		$v =~ s/hd:\d+,//g;
	    }   
	    push @{$b{entries}}, $e = { type => $_, kernel_or_dev => $v };
	    $global = 0;
	} elsif ($global) {
	    if ($_ eq 'disk' && $v =~ /(\S+)\s+bios\s*=\s*(\S+)/) {
		$b{bios}{$1} = $2;
	    } elsif ($_ eq 'bios') {
		$b{bios}{$b{disk}} = $v;
	    } elsif ($_ eq 'init-message') {
		$v =~ s/\\n//g; 
		$v =~ s/"//g;
		$b{'init-message'} = $v;
	    } else {
		$b{$_} = $v eq '' ? 1 : $v;
	    }
	} else {
	    if ((/map-drive/ .. /to/) && /to/) {
		$e->{mapdrive}{$e->{'map-drive'}} = $v;
	    } else {
		if (arch() =~ /ppc/) {
		    $v =~ s/hd:\d+,//g;
		    $v =~ s/"//g;
		}
		$e->{$_} = $v || 1 if !member($_, 'read-only');
	    }
	}
    }
    if (arch() !~ /ppc/) {
	delete $b{timeout} unless $b{prompt};
	sub remove_quotes_and_spaces {
	    local ($_) = @_;
	    s/^\s*//; s/\s*$//;
	    s/^"(.*?)"$/$1/;
	    $_;
	}
	$_->{append} = remove_quotes_and_spaces($_->{append}) foreach \%b, @{$b{entries}};
	$_->{label}  = remove_quotes_and_spaces($_->{label})  foreach @{$b{entries}};
	$b{default} = remove_quotes_and_spaces($b{default}) if $b{default};
	$b{timeout} = $b{timeout} / 10 if $b{timeout};
	delete $b{message};
    }

    #- cleanup duplicate labels (in case file is corrupted)
    my %seen;
    @{$b{entries}} = grep { !$seen{$_->{label}}++ } @{$b{entries}};

    \%b;
}

sub suggest_onmbr {
    my ($hd) = @_;
    
    my ($onmbr, $unsafe) = (1, 1);

    if (my $type = partition_table::raw::typeOfMBR($hd->{device})) {
	if (member($type, qw(dos dummy empty))) {
	    $unsafe = 0;
	} elsif (!member($type, qw(lilo grub))) {
	    $onmbr = 0;
	}
	log::l("bootloader::suggest_onmbr: type $type, onmbr $onmbr, unsafe $unsafe");
    }
    ($onmbr, $unsafe);
}

sub mixed_kind_of_disks {
    my ($hds) = @_;

    (find { $_->{device} =~ /^sd/ } @$hds) && (find { $_->{device} =~ /^hd/ } @$hds) ||
      (find { $_->{device} =~ /^hd[e-z]/ } @$hds) && (find { $_->{device} =~ /^hd[a-d]/ } @$hds);
}

sub same_entries {
    my ($a, $b) = @_;

    foreach (uniq(keys %$a, keys %$b)) {
	if ($_ eq 'label') {
	    next;
	} elsif ($_ eq 'append') {
	    next if join(' ', sort split(' ', $a->{$_})) eq join(' ', sort split(' ', $b->{$_}))
	} else {
	    next if $a->{$_} eq $b->{$_};

	    my ($inode_a, $inode_b) = map { (stat "$::prefix$_")[1] } ($a->{$_}, $b->{$_});
	    next if $inode_a && $inode_b && $inode_a == $inode_b;
	}

	log::l("entries $a->{label} don't have same $_: $a->{$_} ne $b->{$_}");
	return;
    }
    1;
}

sub add_entry {
    my ($bootloader, $v) = @_;

    my $to_add = $v;
    foreach my $label ($v->{label}, map { 'old' . $_ . '_' . $v->{label} } ('', 2..10)) {
	my $conflicting = get_label($label, $bootloader);

	$to_add->{label} = $label;

	if ($conflicting) {
	    #- replacing $conflicting with $to_add
	    @{$bootloader->{entries}} = map { $_ == $conflicting ? $to_add : $_ } @{$bootloader->{entries}};
	} else {
	    #- we have found an unused label
	    push @{$bootloader->{entries}}, $to_add;
	}

	if (!$conflicting || same_entries($conflicting, $to_add)) {
	    log::l("current labels: " . join(" ", map { $_->{label} } @{$bootloader->{entries}}));
	    return $v;
	}
	$to_add = $conflicting;
    }
    die 'add_entry';
}

sub add_kernel {
    my ($bootloader, $version, $ext, $root, $v) = @_;

    #- new versions of yaboot don't handle symlinks
    my $ppcext = $ext;
    if (arch() =~ /ppc/) {
	$ext = "-$version";
    }

    log::l("adding vmlinuz$ext as vmlinuz-$version");
    -e "$::prefix/boot/vmlinuz-$version" or log::l("unable to find kernel image $::prefix/boot/vmlinuz-$version"), return;
    my $image = "/boot/vmlinuz" . ($ext ne "-$version" &&
				   symlinkf("vmlinuz-$version", "$::prefix/boot/vmlinuz$ext") ? $ext : "-$version");

    my $initrd = "/boot/initrd-$version.img";
    mkinitrd($version, $initrd) or undef $initrd;
    if ($initrd && $ext ne "-$version") {
	$initrd = "/boot/initrd$ext.img";
	symlinkf("initrd-$version.img", "$::prefix$initrd") or cp_af("$::prefix/boot/initrd-$version.img", "$::prefix$initrd");
    }

    my $label = $ext =~ /-(default)/ ? $1 : $ext =~ /\d\./ && sanitize_ver("linux-$version") || "linux$ext";

    #- more yaboot concessions - PPC
    if (arch() =~ /ppc/) {
	$label = $ppcext =~ /-(default)/ ? $1 : "linux$ppcext";
    }

    add2hash($v,
	     {
	      type => 'image',
	      root => "/dev/$root",
	      label => $label,
	      kernel_or_dev => $image,
	      initrd => $initrd,
	      append => $bootloader->{perImageAppend},
	     });
    add_entry($bootloader, $v);
}

sub duplicate_kernel_entry {
    my ($bootloader, $new_label) = @_;

    get_label($new_label, $bootloader) and return;

    my $entry = { %{ get_label('linux', $bootloader) }, label => $new_label };
    add_entry($bootloader, $entry);
}

sub unpack_append {
    my ($s) = @_;
    my @l = split(' ', $s);
    [ grep { !/=/ } @l ], [ map { if_(/(.*?)=(.*)/, [$1, $2]) } @l ];
}
sub pack_append {
    my ($simple, $dict) = @_;
    join(' ', @$simple, map { "$_->[0]=$_->[1]" } @$dict);
}

sub append__mem_is_memsize { $_[0] =~ /^\d+[kM]?$/i }

sub get_append {
    my ($b, $key) = @_;
    my ($simple, $dict) = unpack_append($b->{perImageAppend});
    if (member($key, @$simple)) {
	return 1;
    }
    my @l = map { $_->[1] } grep { $_->[0] eq $key } @$dict;

    #- suppose we want the memsize
    @l = grep { append__mem_is_memsize($_) } @l if $key eq 'mem';

    log::l("more than one $key in $b->{perImageAppend}") if @l > 1;
    $l[0];
}
sub modify_append {
    my ($b, $f) = @_;

    foreach (\$b->{perImageAppend}, map { \$_->{append} } grep { $_->{type} eq 'image' } @{$b->{entries}}) {
	my ($simple, $dict) = unpack_append($$_);
	$f->($simple, $dict);
	$$_ = pack_append($simple, $dict);
	log::l("modify_append: $$_");
    }
}
sub remove_append_simple {
    my ($b, $key) = @_;
    modify_append($b, sub {
	my ($simple, $_dict) = @_;
	@$simple = grep { $_ ne $key } @$simple;
    });
}
sub set_append {
    my $has_val = @_ > 2;
    my ($b, $key, $val) = @_;

    modify_append($b, sub {
	my ($simple, $dict) = @_;
	if ($has_val) {
	    @$dict = grep { $_->[0] ne $key || $key eq 'mem' && append__mem_is_memsize($_->[1]) != append__mem_is_memsize($val) } @$dict;
	    push @$dict, [ $key, $val ] if $val ne '';
	} else {
	    @$simple = grep { $_ ne $key } @$simple;
	    push @$simple, $key;
	}
    });
}
sub may_append {
    my ($b, $key, $val) = @_;
    set_append($b, $key, $val) if !get_append($b, $key);
}

sub configure_entry {
    my ($entry) = @_;
    if ($entry->{type} eq 'image') {
	my $specific_version;
	$entry->{kernel_or_dev} =~ /vmlinu.-(.*)/ and $specific_version = $1;
	readlink("$::prefix/$entry->{kernel_or_dev}") =~ /vmlinu.-(.*)/ and $specific_version = $1;

	if ($specific_version) {
	    $entry->{initrd} or $entry->{initrd} = "/boot/initrd-$specific_version.img";
	    mkinitrd($specific_version, $entry->{initrd}) or undef $entry->{initrd};
	}
    }
    $entry;
}

sub dev2prompath { #- SPARC only
    my ($dev) = @_;
    my ($wd, $num) = $dev =~ /^(.*\D)(\d*)$/;
    require c;
    $dev = c::disk2PromPath($wd) and $dev = $dev =~ /^sd\(/ ? "$dev$num" : "$dev;$num";
    $dev;
}

sub get_kernels_and_labels() {
    my $dir = "$::prefix/boot";
    my @l = grep { /^vmlinuz-/ } all($dir);
    my @kernels = grep { ! -l "$dir/$_" } @l;

    my @preferred = ('', 'secure', 'enterprise', 'smp');
    my %weights = map_index { $_ => $::i } @preferred;
    
    require pkgs;
    @kernels = 
      sort { c::rpmvercmp($b->[1], $a->[1]) || $weights{$a->[2]} <=> $weights{$b->[2]} } 
      grep { -d "$::prefix/lib/modules/$_->[0]" }
      map {
	  if (my ($version, $ext) = /vmlinuz-((?:[\-.\d]*(?:mdk)?)*)(.*)/) {
	      [ "$version$ext", $version, $ext ];
	  } else {
	      log::l("non recognised kernel name $_");
	      ();
	  }
      } @kernels;

    my %majors;
    foreach (@kernels) {
	push @{$majors{$1}}, $_ if $_->[1] =~ /^(2\.\d+)/
    }
    while (my ($major, $l) = each %majors) {
	$l->[0][1] = $major if @$l == 1;
    }

    my %labels;
    foreach (@kernels) {
	my ($complete_version, $version, $ext) = @$_;
	my $label = '';
	if (exists $labels{$label}) {
	    $label = "-$ext";
	    if (!$ext || $labels{$label}) {
		$label = "-$version$ext";
	    }
	}
	$labels{$label} = $complete_version;
    }
    %labels;
}

# sanitize_ver: long function when it could be shorter but we are sure
#		to catch everything and can be readable if we want to
#		add new scheme name.
# DUPLICATED from /usr/share/loader/common.pm
my $mdksub = "smp|enterprise|secure|linus|mosix|BOOT|custom";

sub sanitize_ver {
    my $string = shift;
    my $return;
    my ($ehad, $chtaim, $chaloch, $arba, $hamesh, $chech); #where that names come from ;)

    if ($string =~ m|([^-]+)-([^-]+)(-([^-]+))?(-([^-]*))?|) {
        $ehad = $1; $chtaim = $2; $chaloch = $3; $arba = $4; $hamesh = $5; $chech = $6;
    }

    if ($chtaim =~ m|mdk| && $chech =~ m|mdk(${mdksub})|) { #new mdk with mdksub
	my $s = $1;
	$return = "$1$2$3-$4$s" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)\.(\d+)mdk|;
    } elsif ($chaloch =~ m|mdk| && $chtaim =~ /pre\d+/
	     && $arba =~ m|(\d+)mdk(${mdksub})?|) { #new mdk with mdksub
	my $r = $1;
	my $s = $2 ? $2 : "";
	$return = "$1$2$3-p$4$r$s" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)pre(\d+)|;
    } elsif ($chtaim =~ m|mdk$|) { #new mdk
	$return = "$1$2$3-$4" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)\.(\d+)mdk$|;
    } elsif ($chaloch =~ m|(\d+)mdk(${mdksub})$|) { #old mdk with mdksub
	my $s = "$1$2";
	$return = "$1$2$3-$s" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)|;
    } elsif ($chaloch =~ m|(\d+)mdk$|) { #old mdk
	my $s = $1;
	$return = "$1$2$3-$s" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)|;
    } elsif (!defined($chaloch)) { #linus/marcelo vanilla
	$return = "$1$2$3" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)$|;
    } else { #a pre ac vanilla or whatever with EXTRAVERSION
	$return = "$1$2$3${chaloch}" if $chtaim =~ m|^(\d+)\.(\d+)\.(\d+)$|;
    }
    $return =~ s|\.||g; $return =~ s|mdk||; $return =~ s|secure|sec|; $return =~ s|enterprise|ent|;
    return $return;
}

sub suggest {
    my ($bootloader, $hds, $fstab, %options) = @_;
    my $root_part = fsedit::get_root($fstab);
    my $root = isLoopback($root_part) ? "loop7" : $root_part->{device};
    my $boot = fsedit::get_root($fstab, 'boot')->{device};
    my $partition = first($boot =~ /\D*(\d*)/);
    #- PPC xfs module requires enlarged initrd
    my $xfsroot = isThisFs("xfs", $root_part);

    require c; c::initSilo() if arch() =~ /sparc/;

    my ($onmbr, $unsafe) = $bootloader->{crushMbr} ? (1, 0) : suggest_onmbr($hds->[0]);
    add2hash_($bootloader, arch() =~ /sparc/ ?
	{
	 entries => [],
	 timeout => 10,
	 use_partition => 0, #- we should almost always have a whole disk partition.
	 root          => "/dev/$root",
	 partition     => $partition || 1,
	 boot          => $root eq $boot && "/boot", #- this helps for getting default partition for silo.
	} : arch() =~ /ppc/ ?
	{
	 defaultos => "linux",
	 entries => [],
	 'init-message' => "Welcome to Mandrake Linux!",
	 delay => 30,	#- OpenFirmware delay
	 timeout => 50,
	 enableofboot => 1,
	 enablecdboot => 1,
	 useboot => $boot,
	 xfsroot => $xfsroot,
	} :
	{
	 bootUnsafe => $unsafe,
	 entries => [],
	 timeout => $onmbr && 10,
	 nowarn => 1,
	   if_(arch() !~ /ia64/,
	 boot => "/dev/" . ($onmbr ? $hds->[0]{device} : fsedit::get_root($fstab, 'boot')->{device}),
	 map => "/boot/map",
         ),
	});

    if (!$bootloader->{message} || $bootloader->{message} eq "1") {
	my $msg_en =
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
N_("Welcome to %s the operating system chooser!

Choose an operating system from the list above or
wait %d seconds for default boot.

");
	my $msg = translate($msg_en);
	#- use the english version if more than 20% of 8bits chars
	$msg = $msg_en if int(grep { $_ & 0x80 } unpack "c*", $msg) / length($msg) > 0.2;
	$bootloader->{message} = sprintf $msg, arch() =~ /sparc/ ? "SILO" : "LILO", $bootloader->{timeout};
    }

    add2hash_($bootloader, { memsize => $1 }) if cat_("/proc/cmdline") =~ /\bmem=(\d+[KkMm]?)(?:\s.*)?$/;
    if (my ($s, $port, $speed) = cat_("/proc/cmdline") =~ /console=(ttyS(\d),(\d+)\S*)/) {
	log::l("serial console $s $port $speed");
	set_append($bootloader, 'console' => $s);
	any::set_login_serial_console($port, $speed);
    }

    #- add a restore entry if installation is done from disk, in order to allow redoing it.
    if (my $hd_install_path = any::hdInstallPath()) {
	my ($cmdline, $vga);
	if ($::restore && -e "/tmp/image/boot/vmlinuz" && -e "/tmp/image/boot/all.rdz" &&
	    ($cmdline = cat_("/tmp/image/boot/grub/menu.lst") =~ m|kernel \S+/boot/vmlinuz (.*)$|m)) {
	    #- cmdline should'n have any reference to vga=...
	    $cmdline =~ s/vga=(\S+)//g and $vga = $1;
	    log::l("copying kernel and stage1 install to $::prefix/boot/restore");
	    eval { mkdir "$::prefix/boot/restore";
		   cp_af("/tmp/image/boot/vmlinuz", "$::prefix/boot/restore/vmlinuz");
		   cp_af("/tmp/image/boot/all.rdz", "$::prefix/boot/restore/all.rdz") };
	    unless ($@) {
		log::l("adding a restore bootloader entry on $hd_install_path (remapped to $::prefix/boot/restore)");
		add_entry($bootloader, {
					type => 'image',
					label => 'restore',
					kernel_or_dev => "/boot/restore/vmlinuz",
					initrd => "/boot/restore/all.rdz",
					append => "$cmdline recovery", #- the restore entry is a recovery entry
					if_($vga, vga => $vga),
				       });
	    }
	} else {
	    log::l("no restore bootloader need to be used on $hd_install_path");
	}
    }

    my %labels = get_kernels_and_labels();
    $labels{''} or die "no kernel installed";

    while (my ($ext, $version) = each %labels) {
	my $entry = add_kernel($bootloader, $version, $ext, $root,
	       {
		if_($options{vga_fb} && $ext eq '', vga => $options{vga_fb}), #- using framebuffer
	       });
	$entry->{append} .= " splash=silent" if $options{vga_fb} && $options{quiet};

	if ($options{vga_fb} && $ext eq '') {
	    add_kernel($bootloader, $version, $ext, $root, { label => 'linux-nonfb' });
	}
    }

    #- remove existing libsafe, don't care if the previous one was modified by the user?
    @{$bootloader->{entries}} = grep { $_->{label} ne 'failsafe' } @{$bootloader->{entries}};

    my $failsafe = add_kernel($bootloader, $labels{''}, '', $root, { label => 'failsafe' });
    $failsafe->{append} =~ s/devfs=mount/devfs=nomount/;
    $failsafe->{append} .= " failsafe";

    if (arch() =~ /sparc/) {
	#- search for SunOS, it could be a really better approach to take into account
	#- partition type for mounting point.
	my $sunos = 0;
	foreach (@$hds) {
	    foreach (@{$_->{primary}{normal}}) {
		my $path = $_->{device} =~ m|^/| && $_->{device} !~ m|^/dev/| ? $_->{device} : dev2prompath($_->{device});
		add_entry($bootloader,
			  {
			   type => 'other',
			   kernel_or_dev => $path,
			   label => "sunos"   . ($sunos++ ? $sunos : ''),
			  }) if $path && isSunOS($_) && type2name($_->{type}) =~ /root/i;
	    }
	}
    } elsif (arch() =~ /ppc/) {
	#- if we identified a MacOS partition earlier - add it
	if (defined $partition_table::mac::macos_part) {
	    add_entry($bootloader,
		      {
		       label => "macos",
		       kernel_or_dev => $partition_table::mac::macos_part
		      });
	}
    } elsif (arch() !~ /ia64/) {
	#- search for dos (or windows) boot partition. Don't look in extended partitions!
	my %nbs;
	foreach (@$hds) {
	    foreach (@{$_->{primary}{normal}}) {
		isFat_or_NTFS($_) or next;
		my $from_magic = { type => fsedit::typeOfPart($_->{device}) };
		isFat_or_NTFS($from_magic) or next;
		my $label = 'windows';
		add_entry($bootloader,
			  {
			   type => 'other',
			   kernel_or_dev => "/dev/$_->{device}",
			   label => $label . ($nbs{$label}++ ? $nbs{$label} : ''),
			     $_->{device} =~ /[1-4]$/ ? (
			   table => "/dev/$_->{rootDevice}"
			     ) : (
			   unsafe => 1
                             ),
			  })
	    }
	}
    }
    foreach ('secure', 'enterprise', 'smp') {
	if (get_label("linux-$_", $bootloader)) {
	    $bootloader->{default} ||= "linux-$_";
	    last;
	}
    }
    $bootloader->{default} ||= "linux";
    $bootloader->{method} ||= first(method_choices($fstab, $bootloader));
}

sub detect_bootloader() {
    chomp_(run_program::rooted_get_stdout($::prefix, 'detectloader'));
}

sub method_choices {
    my ($fstab, $bootloader) = @_;
    my %choices = (
	if_(arch() =~ /sparc/,
	    'silo' => N("SILO"),
        ), if_(arch() !~ /sparc|ppc/ && !isLoopback(fsedit::get_root($fstab)),
	    if_(!detect_devices::matching_desc('ProSavageDDR'), 'lilo-graphic' => N("LILO with graphical menu")),
	    'lilo-menu'    => N("LILO with text menu"),
	), if_(arch() !~ /sparc|ppc/ && !isRAID(fsedit::get_root($fstab)),
	    'grub' => N("Grub"),
        ), if_(arch() =~ /ppc/,
	    'yaboot' => N("Yaboot"),
        ),
    );
    my $prefered;
    $prefered ||= 'grub' if $::isStandalone && detect_bootloader() =~ /GRUB/;
    $prefered ||= 'lilo-' . (member($bootloader->{install}, 'text', 'menu', 'graphic') ? $bootloader->{install} : 'graphic');
    my $default = exists $choices{$prefered} ? $prefered : first(keys %choices);

    $default, \%choices;
}

sub suggest_floppy {
    my ($bootloader) = @_;

    my $floppy = detect_devices::floppy() or return;
    $floppy eq 'fd0' or log::l("suggest_floppy: not adding $floppy"), return;

    add_entry($bootloader,
      {
       type => 'other',
       kernel_or_dev => '/dev/fd0',
       label => 'floppy',
       unsafe => 1
      });
}

sub keytable {
    my ($f) = @_;
    $f or return;

    if ($f !~ /\.klt$/) {
	my $file = "/boot/$f.klt";
	run_program::rooted($::prefix, "keytab-lilo.pl", ">", $file, $f) or return;
	$f = $file;
    }
    -r "$::prefix/$f" && $f;
}

sub has_profiles { my ($b) = @_; to_bool(get_label("office", $b)) }
sub set_profiles {
    my ($b, $want_profiles) = @_;

    my $office = get_label("office", $b);
    if ($want_profiles xor $office) {
	my $e = get_label("linux", $b);
	if ($want_profiles) {
	    push @{$b->{entries}}, { %$e, label => "office", append => "$e->{append} prof=Office" };
	    $e->{append} .= " prof=Home";
	} else {
	    # remove profiles
	    $e->{append} =~ s/\s*prof=\w+//;
	    @{$b->{entries}} = grep { $_ != $office } @{$b->{entries}};
	}
    }

}

sub get_of_dev {
    my ($unix_dev) = @_;
    my $of_dev;
    run_program::rooted_or_die($::prefix, "/usr/sbin/ofpath", ">", \$of_dev, $unix_dev);
    chomp($of_dev);
    log::l("OF Device: $of_dev");
    $of_dev;
}

sub install_yaboot {
    my ($bootloader, $_fstab, $_hds) = @_;
    $bootloader->{prompt} = $bootloader->{timeout};

    if ($bootloader->{message}) {
	eval { output("$::prefix/boot/message", $bootloader->{message}) }
	  or $bootloader->{message} = 0;
    }
    {
        local $\ = "\n";
	my $f = "$::prefix/etc/yaboot.conf";
	local *F;
	open F, ">$f" or die "cannot create yaboot config file: $f";
	log::l("writing yaboot config to $f");

	print F "#yaboot.conf - generated by DrakX";
	print F qq(init-message="\\n$bootloader->{'init-message'}\\n") if $bootloader->{'init-message'};

	if ($bootloader->{boot}) {
	    print F "boot=$bootloader->{boot}";
	    my $of_dev = get_of_dev($bootloader->{boot});
	    print F "ofboot=$of_dev";
	} else {
	    die "no bootstrap partition defined."
	}
	
	$bootloader->{$_} and print F "$_=$bootloader->{$_}" foreach qw(delay timeout);
	print F "install=/usr/lib/yaboot/yaboot";
	print F "magicboot=/usr/lib/yaboot/ofboot";
	$bootloader->{$_} and print F $_ foreach qw(enablecdboot enableofboot);
	$bootloader->{$_} and print F "$_=$bootloader->{$_}" foreach qw(defaultos default);
	#- print F "nonvram";
	my $boot = "/dev/" . $bootloader->{useboot} if $bootloader->{useboot};
		
	foreach (@{$bootloader->{entries}}) {

	    if ($_->{type} eq "image") {
		my $of_dev = '';
		if ($boot !~ /$_->{root}/ && $boot) {
		    $of_dev = get_of_dev($boot);
		    print F "$_->{type}=$of_dev," . substr($_->{kernel_or_dev}, 5);
		} else {
		    $of_dev = get_of_dev($_->{root});    			
		    print F "$_->{type}=$of_dev,$_->{kernel_or_dev}";
		}
		print F "\tlabel=", make_label_lilo_compatible($_->{label});
		print F "\troot=$_->{root}";
		if ($boot !~ /$_->{root}/ && $boot) {
		    print F "\tinitrd=$of_dev," . substr($_->{initrd}, 5) if $_->{initrd};
		} else {
		    print F "\tinitrd=$of_dev,$_->{initrd}" if $_->{initrd};
		}
		#- xfs module on PPC requires larger initrd - say 6MB?
		print F "\tinitrd-size=6144" if $bootloader->{xfsroot};
		print F qq(\tappend=" $_->{append}") if $_->{append};
		print F "\tread-write" if $_->{'read-write'};
		print F "\tread-only" if !$_->{'read-write'};
	    } else {
		my $of_dev = get_of_dev($_->{kernel_or_dev});
		print F "$_->{label}=$of_dev";		
	    }
	}
    }
    log::l("Installing boot loader...");
    my $f = "$::prefix/tmp/of_boot_dev";
    my $of_dev = get_of_dev($bootloader->{boot});
    output($f, "$of_dev\n");  
    $::testing and return;
    if (defined $install_steps_interactive::new_bootstrap) {
	run_program::run("hformat", $bootloader->{boot}) or die "hformat failed";
    }	
    my $error;
    run_program::rooted($::prefix, "/usr/sbin/ybin", "2>", \$error) or die "ybin failed: $error";
}

sub install_silo {
    my ($silo, $fstab) = @_;
    my $boot = fsedit::get_root($fstab, 'boot')->{device};
    my ($wd, $_num) = $boot =~ /^(.*\D)(\d*)$/;

    #- setup boot promvars for.
    require c;
    if ($boot =~ /^md/) {
	#- get all mbr devices according to /boot are listed,
	#- then join all zero based partition translated to prom with ';'.
	#- keep bootdev with the first of above.
	log::l("/boot is present on raid partition which is not currently supported for promvars");
    } else {
	if (!$silo->{use_partition}) {
	    foreach (@$fstab) {
		if (!$_->{start} && $_->{device} =~ /$wd/) {
		    $boot = $_->{device};
		    log::l("found a zero based partition in $wd as $boot");
		    last;
		}
	    }
	}
	$silo->{bootalias} = c::disk2PromPath($boot);
	$silo->{bootdev} = $silo->{bootalias};
        log::l("preparing promvars for device=$boot");
    }
    c::hasAliases() or log::l("clearing promvars alias as non supported"), $silo->{bootalias} = '';

    if ($silo->{message}) {
	eval { output("$::prefix/boot/message", $silo->{message}) } or $silo->{message} = 0;
    }
    {
        local $\ = "\n";
	my $f = "$::prefix/boot/silo.conf"; #- always write the silo.conf file in /boot ...
	symlinkf "../boot/silo.conf", "$::prefix/etc/silo.conf"; #- ... and make a symlink from /etc.
	local *F;
	open F, ">$f" or die "cannot create silo config file: $f";
	log::l("writing silo config to $f");

	$silo->{$_} and print F "$_=$silo->{$_}" foreach qw(partition root default append);
	$silo->{$_} and print F $_ foreach qw(restricted);
	print F "password=", $silo->{password} if $silo->{restricted} && $silo->{password}; #- also done by msec
	print F "timeout=", round(10 * $silo->{timeout}) if $silo->{timeout};
	print F "message=$silo->{boot}/message" if $silo->{message};

	foreach (@{$silo->{entries}}) { #-my ($v, $e) = each %{$silo->{entries}}) {
	    my $type = "$_->{type}=$_->{kernel_or_dev}"; $type =~ s|/boot|$silo->{boot}|;
	    print F $type;
	    print F "\tlabel=$_->{label}";

	    if ($_->{type} eq "image") {
		my $initrd = $_->{initrd}; $initrd =~ s|/boot|$silo->{boot}|;
		print F "\tpartition=$_->{partition}" if $_->{partition};
		print F "\troot=$_->{root}" if $_->{root};
		print F "\tinitrd=$initrd" if $_->{initrd};
		print F qq(\tappend="$1") if $_->{append} =~ /^\s*"?(.*?)"?\s*$/;
		print F "\tread-write" if $_->{'read-write'};
		print F "\tread-only" if !$_->{'read-write'};
	    }
	}
    }
    log::l("Installing boot loader...");
    if (!$::testing) {
	my $error;
	run_program::rooted($::prefix, "silo", \$error, if_($silo->{use_partition}, "-t")) or 
	  run_program::rooted($::prefix, "silo", "-p", "2", if_($silo->{use_partition}, "-t")) or
	    die "silo failed: $error";

	#- try writing in the prom.
	log::l("setting promvars alias=$silo->{bootalias} bootdev=$silo->{bootdev}");
	require c;
	c::setPromVars($silo->{bootalias}, $silo->{bootdev});
    }
}

sub make_label_lilo_compatible {
    my ($label) = @_; 
    $label = substr($label, 0, 15); #- lilo doesn't handle more than 15 char long labels
    $label =~ s/ /_/g; #- lilo does not support blank character in image names, labels or aliases
    qq("$label");
}

sub write_lilo_conf {
    my ($bootloader, $fstab, $hds) = @_;
    $bootloader->{prompt} = $bootloader->{timeout};

    my $file2fullname = sub {
	my ($file) = @_;
	if (arch() =~ /ia64/) {
	    (my $part, $file) = fsedit::file2part($fstab, $file);
	    my %hds = map_index { $_ => "hd$::i" } map { $_->{device} } 
	      sort { isFat($b) <=> isFat($a) || $a->{device} cmp $b->{device} } fsedit::get_fstab(@$hds);
	    $hds{$part->{device}} . ":" . $file;
	} else {
	    $file
	}
    };

    my %bios2dev = map_index { $::i => $_ } dev2bios($hds, $bootloader->{first_hd_device} || $bootloader->{boot});
    my %dev2bios = reverse %bios2dev;

    if (is_empty_hash_ref($bootloader->{bios} ||= {})) {
	my $dev = $hds->[0]{device};
	if ($dev2bios{$dev}) {
	    log::l("Since we're booting on $bios2dev{0}, make it bios=0x80, whereas $dev is now " . (0x80 + $dev2bios{$dev}));
	    $bootloader->{bios}{"/dev/$bios2dev{0}"} = '0x80';
	    $bootloader->{bios}{"/dev/$dev"} = sprintf("0x%x", 0x80 + $dev2bios{$dev});
	}
	foreach (0 .. 3) {
	    my ($letter) = $bios2dev{$_} =~ /hd([^ac])/; #- at least hda and hdc are handled correctly :-/
	    next if $bootloader->{bios}{"/dev/$bios2dev{$_}"} || !$letter;
	    next if 
	      $_ > 0	     #- always print if first disk is hdb, hdd, hde...
		&& $bios2dev{$_ - 1} eq "hd" . chr(ord($letter) - 1);
	    #- no need to help lilo with hdb (resp. hdd, hdf...)
	    log::l("Helping lilo: $bios2dev{$_} must be " . (0x80 + $_));
	    $bootloader->{bios}{"/dev/$bios2dev{$_}"} = sprintf("0x%x", 0x80 + $_);
	}
    }

    {
        local $\ = "\n";
	my $f = arch() =~ /ia64/ ? "$::prefix/boot/efi/elilo.conf" : "$::prefix/etc/lilo.conf";

	local *F;
	open F, ">$f" or die "cannot create lilo config file: $f";
	log::l("writing lilo config to $f");

	chmod 0600, $f if $bootloader->{password};

	#- normalize: RESTRICTED is only valid if PASSWORD is set
	delete $bootloader->{restricted} if !$bootloader->{password};

	local $bootloader->{default} = make_label_lilo_compatible($bootloader->{default});
	$bootloader->{$_} and print F "$_=$bootloader->{$_}" foreach qw(boot map install vga default keytable);
	$bootloader->{$_} and print F $_ foreach qw(linear geometric compact prompt nowarn restricted);
	print F qq(append="$bootloader->{append}") if $bootloader->{append};
 	print F "password=", $bootloader->{password} if $bootloader->{password}; #- also done by msec
	print F "timeout=", round(10 * $bootloader->{timeout}) if $bootloader->{timeout};
	print F "serial=", $1 if get_append($bootloader, 'console') =~ /ttyS(.*)/;

	print F "message=/boot/message" if arch() !~ /ia64/;
	print F "menu-scheme=wb:bw:wb:bw" if arch() !~ /ia64/;

	print F "ignore-table" if any { $_->{unsafe} && $_->{table} } @{$bootloader->{entries}};

	while (my ($dev, $bios) = each %{$bootloader->{bios}}) {
	    print F "disk=$dev bios=$bios";
	}

	foreach (@{$bootloader->{entries}}) {
	    print F "$_->{type}=", $file2fullname->($_->{kernel_or_dev});
	    print F "\tlabel=", make_label_lilo_compatible($_->{label});

	    if ($_->{type} eq "image") {		
		print F "\troot=$_->{root}" if $_->{root};
		print F "\tinitrd=", $file2fullname->($_->{initrd}) if $_->{initrd};
		print F qq(\tappend="$_->{append}") if $_->{append};
		print F "\tvga=$_->{vga}" if $_->{vga};
		print F "\tread-write" if $_->{'read-write'};
		print F "\tread-only" if !$_->{'read-write'};
	    } else {
		print F "\ttable=$_->{table}" if $_->{table};
		print F "\tunsafe" if $_->{unsafe} && !$_->{table};
		
		if (my ($dev) = $_->{table} =~ m|/dev/(.*)|) {
		    if ($dev2bios{$dev}) {
			#- boot off the nth drive, so reverse the BIOS maps
			my $nb = sprintf("0x%x", 0x80 + $dev2bios{$dev});
			$_->{mapdrive} ||= { '0x80' => $nb, $nb => '0x80' }; 
		    }
		}
		while (my ($from, $to) = each %{$_->{mapdrive} || {}}) {
		    print F "\tmap-drive=$from";
		    print F "\t   to=$to";
		}
	    }
	}
    }
}

sub install_lilo {
    my ($bootloader, $fstab, $hds, $method) = @_;

    if (my ($install) = $method =~ /lilo-(text|menu)/) {
	$bootloader->{install} = $install;
    } else {
	delete $bootloader->{install};
    }
    output("$::prefix/boot/message-text", $bootloader->{message}) if $bootloader->{message};
    symlinkf "message-" . ($method ne 'lilo-graphic' ? 'text' : 'graphic'), "$::prefix/boot/message";

    write_lilo_conf($bootloader, $fstab, $hds);

    if (!$::testing && arch() !~ /ia64/ && $bootloader->{method} =~ /lilo/) {
	log::l("Installing boot loader...");
	my $error;
	run_program::rooted($::prefix, "lilo", "2>", \$error) or die "lilo failed: $error";
    }
}

sub dev2bios {
    my ($hds, $where) = @_;
    $where =~ s|/dev/||;
    my @dev = map { $_->{device} } @$hds;
    member($where, @dev) or ($where) = @dev; #- if not on mbr, 

    s/h(d[e-g])/x$1/ foreach $where, @dev; #- emulates ultra66 as xd_

    my $start = substr($where, 0, 2);

    my $translate = sub {
	my ($dev) = @_;
	$dev eq $where ? "aaa" : #- if exact match, value it first
	  $dev =~ /^$start(.*)/ ? "ad$1" : #- if same class (ide/scsi/ultra66), value it before other classes
	  $dev;
    };
    @dev = map { $_->[0] }
           sort { $a->[1] cmp $b->[1] }
	   map { [ $_, $translate->($_) ] } @dev;

    s/x(d.)/h$1/ foreach @dev; #- switch back;

    @dev;
}

sub dev2grub {
    my ($dev, $dev2bios) = @_;
    $dev =~ m|^(/dev/)?(...)(.*)$| or die "dev2grub (bad device $dev), caller is " . join(":", caller());
    my $grub = $dev2bios->{$2} or die "dev2grub ($2)";
    "($grub" . ($3 && "," . ($3 - 1)) . ")";
}

sub grub2dev {
    my ($device, $o_block_device) = @_;
    my ($dev, $part) = ($1 . ")", $2) if $device =~ s/(\([^,]*?)(?:,(.*))?\)//;
    undef $part if $o_block_device;
    $part++ if defined $part;   # grub wants "(hdX,Y)" where lilo just want "hdY+1"
    $dev =~ s/,[^)]*//;
    my $new_dev = +{ map { chomp; s/()//g; split(/\s+/, $_, 2) } cat_("$::prefix/boot/grub/device.map") }->{$dev} . $part;
    wantarray() ? ($device, $new_dev) : $new_dev;
}

# replace dummy "(hdX,Y)" in "(hdX,Y)/boot/vmlinuz..." by appropriate path if needed
sub ungrubify {
    my ($device) = @_;
    my $dev;
    ($device, $dev) = grub2dev($device);
    my %mnt_pts =  ("/dev/" . devices::from_devfs(readlink('/dev/root')) => "/", map { (split)[0..1] } cat_("/proc/mounts"));
    (my $v = join($mnt_pts{$dev} || $dev, $device)) =~ s!//!/!g;
    $v;
}

sub write_grub_config {
    my ($bootloader, $fstab, $hds) = @_;
    my %dev2bios = (
      (map_index { $_ => "fd$::i" } detect_devices::floppies_dev()),
      (map_index { $_ => "hd$::i" } dev2bios($hds, $bootloader->{first_hd_device} || $bootloader->{boot})),
    );

    {
	my %bios2dev = reverse %dev2bios;
	output "$::prefix/boot/grub/device.map", 
	  join '', map { "($_) /dev/$bios2dev{$_}\n" } sort keys %bios2dev;
    }
    my $bootIsReiser = isThisFs("reiserfs", fsedit::get_root($fstab, 'boot'));
    my $file2grub = sub {
	my ($part, $file) = fsedit::file2part($fstab, $_[0], 'keep_simple_symlinks');
	dev2grub($part->{device}, \%dev2bios) . $file;
    };
    {
        local $\ = "\n";
	my $f = "$::prefix/boot/grub/menu.lst";
	local *F;
	open F, ">$f" or die "cannot create grub config file: $f";
	log::l("writing grub config to $f");

	$bootloader->{$_} and print F "$_ $bootloader->{$_}" foreach qw(timeout);

	print F "color black/cyan yellow/cyan";
	print F "i18n ", $file2grub->("/boot/grub/messages");
	print F "keytable ", $file2grub->($bootloader->{keytable}) if $bootloader->{keytable};
	print F "serial --unit=$1 --speed=$2\nterminal --timeout=" . ($bootloader->{timeout} || 0) . " console serial" if get_append($bootloader, 'console') =~ /ttyS(\d),(\d+)/;

	#- since we use notail in reiserfs, altconfigfile is broken :-(
	unless ($bootIsReiser) {
	    print F "altconfigfile ", $file2grub->(my $once = "/boot/grub/menu.once");
	    output "$::prefix$once", " " x 100;
	}

	each_index {
	    print F "default $::i" if $_->{label} eq $bootloader->{default};
	} @{$bootloader->{entries}};

	foreach (@{$bootloader->{entries}}) {
	    print F "\ntitle $_->{label}";

	    if ($_->{type} eq "image") {
		my $vga = $_->{vga} || $bootloader->{vga};
		printf F "kernel %s root=%s %s%s%s\n",
		  $file2grub->($_->{kernel_or_dev}),
		  $_->{root} =~ /loop7/ ? "707" : $_->{root}, #- special to workaround bug in kernel (see #ifdef CONFIG_BLK_DEV_LOOP)
		  $_->{append},
		  $_->{'read-write'} && " rw",
		  $vga && $vga ne "normal" && " vga=$vga";
		print F "initrd ", $file2grub->($_->{initrd}) if $_->{initrd};
	    } else {
		print F "root ", dev2grub($_->{kernel_or_dev}, \%dev2bios);

		if (my ($dev) = $_->{table} =~ m|/dev/(.*)|) {
		    if ($dev2bios{$dev} =~ /hd([1-9])/) {
			#- boot off the nth drive, so reverse the BIOS maps
			my $nb = sprintf("0x%x", 0x80 + $1);
			$_->{mapdrive} ||= { '0x80' => $nb, $nb => '0x80' }; 
		    }
		}
		if ($_->{mapdrive}) {
		    map_each { print F "map ($::b) ($::a)" } %{$_->{mapdrive}};
		    print F "makeactive";
		}
		print F "chainloader +1";
	    }
	}
    }
    my $dev = dev2grub($bootloader->{boot}, \%dev2bios);
    my ($s1, $s2, $m) = map { $file2grub->("/boot/grub/$_") } qw(stage1 stage2 menu.lst);
    my $f = "/boot/grub/install.sh";
    output "$::prefix$f",
"grub --device-map=/boot/grub/device.map --batch <<EOF
install $s1 d $dev $s2 p $m
quit
EOF
";

     output "$::prefix/boot/grub/messages", map { substr(translate($_) . "\n", 0, 78) } ( #- ensure the translated messages are not too big the hard way
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
#-PO: and keep them smaller than 79 chars long
N_("Welcome to GRUB the operating system chooser!"),
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
#-PO: and keep them smaller than 79 chars long
N_("Use the %c and %c keys for selecting which entry is highlighted."),
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
#-PO: and keep them smaller than 79 chars long
N_("Press enter to boot the selected OS, 'e' to edit the"),
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
#-PO: and keep them smaller than 79 chars long
N_("commands before booting, or 'c' for a command-line."),
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
#-PO: and keep them smaller than 79 chars long
N_("The highlighted entry will be booted automatically in %d seconds."),
);
   
    my $e = "$::prefix/boot/.enough_space";
    output $e, 1; -s $e or die \N("not enough room in /boot");
    unlink $e;
    $f;
}

sub install_grub {
    my ($bootloader, $fstab, $hds) = @_;

    my $f = write_grub_config($bootloader, $fstab, $hds);

    if (!$::testing) {
	log::l("Installing boot loader...");
	symlink "$::prefix/boot", "/boot";
	my $error;
	run_program::run("sh", $f, "2>", \$error) or die "grub failed: $error";
	unlink "/boot";
    }
}

sub lnx4win_file { 
    my $bootloader = shift;
    map { local $_ = $_; s,/,\\,g; "$bootloader->{boot_drive}:\\lnx4win$_" } @_;
}

sub install {
    my ($bootloader, $fstab, $hds) = @_;

    if (my $p = find { $bootloader->{boot} eq "/dev/$_->{device}" } @$fstab) {
	die \N("You can't install the bootloader on a %s partition\n", partition_table::type2fs($p))
	  if isThisFs('xfs', $p);
    }
    $bootloader->{keytable} = keytable($bootloader->{keytable});

    my @methods = $bootloader->{method} eq 'grub' ? ('lilo-graphic', 'grub') : $bootloader->{method};
    my @rcs = map {
	my ($main_method) = /(\w+)/;
	my $f = $bootloader::{"install_$main_method"} or die "unknown bootloader method $_";
	eval { $f->($bootloader, $fstab, $hds, $_) };
	$@;
    } @methods;
    
    die $rcs[0] if every { $_ } @rcs;
}

1;
ڸgf&`OLsFS@-!Ff W0CɧRg;u#_tHV΢ 6c9zD 4yc+'!l:4@}jܘPe~mL `ƚxߎ/l!x8~L|+~k ^p>?1SW h{:w&MM<_;@fV4i;(lTaYBGB'ޚ|Hx]c^;e1>m5YD&U@q$cb;hs$2t?xI4=6ڵGd~)juFVQՙWY1S b4!m Jni-"^,Js^`pL~AKvq;DrM!.(`kZt/e*׏we(#D^}Y׫CB 5%cG[5Ds] !@Ǩ)r)WׅNCeDo[@B*%f~Zt`{}iB,<ˁ=;GgԼ#ΚyZQj'S+K#'~@+DbcVR]fm)8zB7kɌm=<[D]'!tL:& S&"^h3S~+ǫLk f{]~uDd8dJda( _xтnĞB [( 2(. c}]L->>0’|`{2mF"Ё9Ώ5wHuȊITYөp]< 1;.tkV8d UI+og):{}uQSc܁#/7w8ߓ)uGs6w_i\+5vh=΄!_cE~ < |(_dM;&{7De cb?ZkqFszRJxmmF;U.vA%[%UދAI~?+.jܽm<}1@[M%>6WM0@%??{YQs=~F=)iR]- chy]A,oC bWåg*cLT0 Z1D 3[M\)t l;trmϨ7=jf)p3UN qƹ !A쥕 @?}W ڢsSGU47EeVGYS6j)^~O/LҴD973pWce3NuX6"Uΰ5@0jZ!B#:jM|n]Ы4S\ZGf~ſÚU#J1G@+5rA{)B;h2/((^՗fgMs*Tj;R@e+ ˨|Xh#?,B].Dclg7ξLXu>7b]<fP$@;c"̠ 3U6-AdBaL\d]o42~~s<.cΧ,Z=mv_'A:L^zF웡gdV#й'-c7u}f!foԢa~%6ܷ[w_IA/X֜(Zde|(PQFvx[;N4l5&vΣ#Tٶ܏hnPr :)JR}'#3jn7$l Qsۛ[fIL 6#̈TjCNz(% k46fA(W]%pqè4哈)Jwdӕ_]$UbƉ ;>T?UzC읊?E"`aEsw'K:d^t2Sna4HXb&J>]yz:oCdKۀ+cepl1xNQmn9M0jF;[LeHE+t3 o?޻)8fŧ )٭`IP-yEԫ5v *R'H0d#Sڻ>V?0)TaK0zUMh=/b KZP YI!if'xho0㷫Eun`1Fo74KixAWwQ~P) Nx0 qh9yyIo~jy 3"PA)q0LEJj~H_g&"pʞ/HIkc'm_!FAcA7rpN./ w߽.@gdoeF^U3Tgbڗ,SMM@pѬ$?C;${oz0MLM+#HT{)GA쨾J鮒VGEA Q&^hZI޽zޒpsީ <%?KX=hU괅\M9ŠT; aSҹO[Yc #"2IxuHk±{|j#dJ䯇+Iyh9367$D\k:>"|5vߓ`\TӚ5ɤq"J`t\2 aI̙M'XGjjH 碣62O}8p|1\]5LS5ќs%FRzq\Lv}80b)w&7w`2|<Y-?K{l]bg=Nm,i]4A>-i{zj"8ARΎӎ(|$,[{q|Pj bi|̇)]Bݴ8ΙRkS_lds*seG/*m-%h >c5G1-'D%oMHLUǗxl+AvsC pΊ,[BѠrf˥H7m{Q4诘sdKFm xp*ZqZd =Lsnmg]F1-vQ?I/XفV@[p~WzrMIjӡ7vTsiö2? }/]\!瞐cU˭{dyCnTğߌ^ӯLK]G)DY C+/R6xgeJ(䦆XeJbM;< ]#esXq¥v.`^=%K+z, څ7'є%pqwN |$ULmMFU@i<~;W]a˜JK/T|ڰc45  S9ZeY-!hjhO/6s@e#e3I̢. șSm{ hė#HOO.E U>Yp jڑ=*W~i?{z*P٪3)>_ tέ7%;t`#T(`x!f5wxiZ'^~=H ԻOM>Wݍm;%͆\k,3]r5qG#1<'9.Ob*5 \k]=& TAmrym[qsɳW{Z!k| }Պ#h1إ$tL>.=ŏח 6M4\\DSbY:=+FBL䖡-sXe)Z@FPrmrs/,okcJ)C8:Jq[C*4r)yJLcfsF 3PYx?2ᱧ.CO- dstዿ 2(s.M3czqN ;%+QiRb(8]86mΰLJ cICֺ^7/ _J)N?w3Eɋ+.µAօ`œ!\+J_zwBKV2s&1xR~=PZ&b3m Qb5EZm0=m%B&uHa8^h#{48Sz|־o5`m7yjL|MY ”B$:Ͳ?*Ϲ6> c}"52fsCn  1k/<*D4m=ǨVMB,P2ӳs<ڳa(|ZKeN(,<WdӒ˩݆ON#w*|-9{c(uO­E~0`|Pp F+=1̓۫s5x`L/^_58e"O8O5 _dnWUY&gP#7Ke{PE}UPt^2^߁l (-2%YGX^Dp5E%ͬ —iߐs5V߱8i] 4~1Wׁ75Y2 bs^ ÎoȕA MŮu--!u LJ9aiM#dH)]#5%6bQ|#@A\ ҩ౶#bK&&tMub9qMFQKn2YdXs3{a=2r ;rNή*]J܆#Ǖc}?MhQE=/55׍JG2VEI[߽zt{Ifڤ.m<.LjZ_h~  +8mNկb̃v* x<YiZY; ,h" [%j呢8H@}3ފ.71.Mb vb `lOSCDžz9fsKN_מB ױ瀪hE,/Ϲ?A=3Ico5N6 TUմہ{9c8l;SbB\2<"yHQrg)ǬR` ^F$W}U6|<:{]{˶ t?7>{]ټ <q7/xR0=eDq*p#<f}.웲d1D ;7,XV^gUڞjGya7GG&ĈYR u$uQ{dxkvO(V4^;Uִ$>ua?]w hexVdi{hi)*>A4\\NZH&,ݕ9"A iJ3\ !le #AhZuF%W _ߘX]cLbc"0,H ~ FR+Br=f]!"Ȯ&9H:^eqfjhoJP {+GBbʅS;ɥHQQ+]8$ힽYGN{aJ+d:zSnN=IV"j}V78ZtI1C J8r\XzR|GӴ`%.- 9>9U 'Wb]pO=QM)o{~7N$f v4y񧽣9^d^ 'x.K=#âPOyvMYa}\LɲʼD<ūÁ`Gcw=Ÿr;*?} ؍m*buI]n;:*VT;U7;ɒHbo'd +퀆USgdoѻ&x,$/ Haz!]IRCñn-(3H^Yx]H!SogK?oMTz81TF§W[ JW u;!bm6w 8!&|59 %G=| .>ujqʴ{㬃j a!Sysˎuԕ} Gh(ssEQ'Тɲ Jn-oӧc;=:DkS/4.hވ@IEBsP֞޽PrbX)>{i3lO"rnC@b[N]~* A֗-AX+b5>FYehYXZYDTZtZuH r=G?G[V%Cm)/)EEXE7JO0"3^^oQHn0r0/̋JYj7q'qp۲I-:0tI{$Q2A-[._K[[z<dxnV$9M1ob \byYxpImTҵV~{V`3:!Opc^9{,Y~M:\wX[ItCC 9PN@'Ҳ L( f9 ުg</ɜXwr, ^TFxL.+'5}YQTM-="{C-P@j&@#]t :H8%;C~i jxr bboYUlШj~{* 0sy5?8+Ahgs I~&Z;<'?|X4uU0374N>~}R| !,S?NhMWl=ӲڦQJ+3Figy%1U4_OToy|?T:c:CnZ7Y{- eۓCjJyY=L0jEhqccrT?*"ťus`:i@cZ cc,l@/Hi4y)?RSiuff=oBh5#SEp[J*É`y}U5PJD"˳ GlTMnr!p?>sk}6rGP*`;yXCDh?•QZҩU$F`JyL]ceTk1 q:CH]hDC\r$@-W,ETp ?ccZbϽ`[L 7?4МY >mGG)޹g :- 놄yˠܺT؜{/\apܒ:ąR!#ik 'z ֺ`?ܺ,,\y65 5搞wMOsx.D@GyU`A84-hΞ`0XP*n('p³"G{}- Xp|8b<|,`GS(c/_%aY<ְ 3>kHޙ+L hc]^0yESrZTBOu* 讆ͱBtdPz΋ i׾7f &pZڅ)>HLƺc ?/ÜW6v{"M tqN]z)._hVL R#AG#XM97VÍp{*Ÿ&/lV;O2ڼ`׻`vxD,zc h`G' aʉ^#n?ZW:Q9?sL ,LWW[~Z7SFIcHk_q}\3[H<~eK&.l^NtưUG}r;BSG/o :ʼ>^椦[3VӬvhgeyΚM`~i1Aiee!Т9 j b Jm4GUq,Ňb"4+H(]$ qf҅@վpxGz@aVy ѱ\KㄒSTWlRTIc?^\pSL>\Kn(n˭[S9IO6@(轟 ExG+XUG(,`ӞI7<1fVW*JӵpB=BӥJ=SU{4% 8FctE)K罊kKJ֍q#j_hy6* X65 g_iaK$] ͵GGx7:!"#%o5L齹D2AWz{ݰM'ZĢub!0l6Yv0]YI) > iLzv{r?7q5s<|G?v "ܗ;iƃd&S~XdIgZ)i!զׁm60`&gC(DEgc/i9bz^7u֋\/7 ^!ޮJ]FȌJxCI@a!ecʕk$w>0@ثwPI 䓷wㆺGZs@dm `rRXδ*^Z|4DJy.Att7XK+`-{EFZ<]ix6QiJa{Tb6"!/9h(A )EHg'՚*K)m'7g\Mar!iDW zv|61jy2sR6ݵe[\(6$hQhNq8_ĵb"K_Em+wobyP]]0=A~3Y6i}{m/ZI`! B15̟J3wg-`Tl HB%xuDGPv}(D!4ـa%w[CT/Ñgdߘr6I#6wȘCs3\Ĩrc3l,p3I^Z`ai÷v@VxFL) +tEDHƚKb_@@' {wPR da*ɋ3nզwɮN{5G,A`ssr?d^BItB]J A< 9^UB=d -MVa熒 DJZA"¬_@&Za>/DBMhlA#T,Jn҆} ,4xvM}ۯVN.$F#ď$$OKbEQXt)>'v/hxFI נkBٴy&:Ś̾ެ*`~ &8xI/Qm0{e KBgMBTg1"yGlzv14rlUsۻsǡT ‹Q"MY U8 z *OM P# 6yIt}hCyq*Ғmd%<۞m NLB11w8]gOuJOB^V;@*O5ByE8 ?/xg>2A7s_Lٿb[au0VEj#WKұ|؉%E3 9uJQd:υcxAPkYƶʆbő^A3v ̓$ )7d]f ߀ph"k(>&PP2@23;(&޼ Yǽe-vLL*!M gu] }+P>]_(FmN,tF~v(P_xR~40d2H\-g_Ő)E`OR bL5Gr*'X f%r;IK{t}1;k+9b f୶^o[POSqk];8 W'[UZGFu/IK{py4^zQtK"o0eXNnIK=hN%{AA/qA\~ 2[09-ٚ!v:o6MmBiPC|b3ɉ69~]B6 _cTzop H&L|<=9A{L *?ܗf}#!AǬydѲX:޽!B챱['*>e>E𺊏\fQpt# ;8CQzlm.]ge8bn-+m ٳ&QJ3s_[e?ABJq$'#8K0V^c%{4~J~Gfe ow>P5% I *G0.yOɼ5dU?ټppm=T[Bް_{Y?$ӏTbݱT5yL_d<&RM]:{HRFBI@$ɇSӓt9tGVۛu&+#! |nFP]6g:&4<|T WH/aͷ>g}}C$RfFh4N̍JjO1uf*Qb;?4i5e $Pufc1J+ĊxDGeijbbMju}ZAWҁ"*BAҪ'7F*2b?zҁDt3:9c;O^&1i6Wv1k~Y@U{=qGcmPѪCz3q9WS[x^D2tCMH!j@Q0eZh-.pE+!/daRˆyl.5a!# nꆅ16͠u3wZHMd<:o S5Asħ*-;*Ŝ >ɋ}}iLwd˷E{0(U,>V9jȍ UHV md8(߿u/zaL\*CS&zLק/,XIm_vmN5-O"u0QNhcuQdhrN NXߛuI7J"kcwN:BS9D,Ӷb):)JTeӄp-j{3Ճ"|,\?A/ӠUHzĥ@As:˙v.EC19X]ٗ@ƒf,U@H3*@{oB߄jKSx(, (S`P+5\sp$0=WzԢ[Cjߴ]8A0$%m0JßYvQF7ҜRb !YS!Ϊ;;|TphZX).=7[O'kO(T[(v>m<(4K2Ù(-xZkG6~3 ‚#+ts5(eb,ST, *_Wj4m9L>uZg8C3 i''e˹¤Y}>'h2/jfK { \Q'=‹9lݫ5 q />ԶnB;Xg{ݕթ[@x\ 6,AeZ'va 3]mbe^a$X.^C:h}<7iSՁ1t:)3#"Nd lKLNW- 92s@բ^}nksѝYJ͂L%/.O,G>͛U{_T:-?\lؖ:$אR8=n{ 2&A7zA]pNeb9 ۂiǃ]G *?0g!?x5qF[-VB~yiR)ơ~Z`gX_De~[|e|hF R |ؼV%w/q@]"D y8N)|_<Wh+:%fן7659U kZ ]pOچ[t7W`6Z"_<;r 8SR cIܗsh$yuYhʽ?`񮽂/xƷ#V;Z=Mǵ | QdPUwxg`}l 3!cfғyw$BC-ח b)iT Jd1ñߖ4!-kIгرx*1/Ռ֞7^UJ`R)q7(c܆vcdUՎ{ZYɱn1tNOݗ Ů|=( qh[WAķlfomJP"jyݱXr +fF6 3? :(c4,95~D#&2@$;۵Е.MR&dYZZ=ݱ' h~ KC~0k2 H! ݯұ u2Z"2,I 1Wc Rkb4ķM^6"J ;GS;!w-}?Y*\-=480>)wf Zߗfj|"bպ--l0%\Ɉev !z^c pWf),15#.I{*\Ƥxۃ@;VCex#;A}bxeԝͫȦ 6bAl<19d2x3@n-5ٽ]UUv[~fښx@RV~a fO!ͤg*~`Ť'FYJR, !9_<`ýBi\_d=-1Hߗ|`0|mt am@59EW./p2f ӆʢ?k$U1+_-t(1bWtU 8{.`oop}+G7%2hukaO!~"UۘJIDWi|`NW4p;i8+!pBTIx+<1e')9^n<^P%ָ~*by@=] (vwVB;!lǒ K֮D"ɮH mfmP\b,fcn/ &u:t Wm#%C DU7"pQ' Dž2 , -;Ht~$lTF8%^ tV UG$bf%ȟ~}X5"|d@'ޗKU&Lx|qf;2љW#|L&Ie 4)ǧGJ;]X)+5z(`/ӕj1yuO.=~~u7Tו Vͪ8$dggw0:@u-zyzX OMMRd|tSh{!ЌHʄ 22(LwyVާP{ܲ}9^/p>#%Fjs_*?a2.S>H; xVi:`%>+n{h詛b hC qy&^a%>3TH jpD..ճdZᠴM$4u*(2.))?W?y¸,Z[Ԡ` 6vI~h iw&V =pvٻu|pkZ";1i bڍQQ3(b7T_h[wPy3Ğs4J,j->ݎF>U!S pmD}f8(wEJ}I$\,%NU|לntڣb>L"D^ !O_ cyTzҐԢS TXnȼ^|xޓWrHH>!19ߧL\NvĔ|r1%NT?sG!'[[=44zaA98p:XN0_IUqB?!$8. YC&̠PDhꗨEGty!ڿ kx#6q5ʷ$9ʣMIբC݀6bzbbY0b<:bSWL5gjTЭ'j:YG#aАjrB JR*I{&I?[3^ލNEq{N 2勍Y|javáD#Mg6k! ;b6Ʈ!yIմnFɓ\ʚ !{›s!$ArF'B KYl#i\U3:E4?ӻ,պ0Ş/ <7 P 2/ paxgDESďϲRjtc(iN 7_LMp+:WуU`_/oN4sZӁOrVlY&D⨏X@jZqpYs_};` #ny[@RϨ'cg&}'b얁%iD 9M#Ab ӑJOA:(֊e W܃0h}Eg9FFB:'q'?wu)]S}Ĩtf,ZV$iԔV;h OZ>$T^FSt0YQ;{vu/phc'Yb(<6}_bYeOLWF|5't~˨~JfݾXrkٕ tnG|ޟrfzs[5 cmvm +<,C?Nt;@vN{3s9BM$jغĆBY~μQ9y}-*D۶mI&,Ά=7s["!>},~611Ng 3RZDIJbdm\Lv*| 3V_~%&􁐺#b22SY|qHseI rH>%oi{&m(U]D`7Ϯy[͑{gVBOYN?cu|IG m2EAldc%rѸ\;/<[V?ZusRNDlҵ.WPP>VIFLߧ4դ dKH7}^DB>~ rHۉMXKzZhzpn=Y"t\O 9lA{t86_pa,y,<@vxe^Bbld [Hj~*e#leؾ%s'Hx[2qg4:< z|Zfli[A-\bzSjkB+P~ъ@xb"2\G*vZK\=7PmY`T{r|uMG/JeI7đa< :deCcĘˋ[[蹺ؑl}Uzp4-Lz2r"-I`lNH^rJY mqPQL Lcw"}pL_(=X`WB"KBB'3N?*7!^TRMG<5d*?82}4( LL=xJ>6WZ"czTB(W~X*Gy%cJ]or8PKHrM;RG*5z'!Jo&ZPQsK[|5r4nА}d6{>tgJeK͗C^"ГjjS{3~ZpRe|,TTaoMuxF8h?"#'usajٿcs{+ d%KJ#JX] Cы3 -@@ WVő3 N_&\4+;xwJQ[]h9JmCRL漭XoK;r.͜.EЏYb'mc>Z1:P(Sd֟|tϹGI$>^d/V.tQxtLO8R^<휾}aEUGt`ׇU8 #̵PꅞFpuIދ!'v%JOГ,~Q8fgs1 =鍾Q SܿϋW&tHlskF|kNݖf3l6{$Z!#Q:|v'^!/ġ苊hRg;DtTƶ&3.aqһedPSeMj?B1N?:fN7DDE∶ϻp5͇Lo=Zµ (9ujme{Rõs㚃捼${glhgáH4D|Yug]cD`瞨H}BNU`ue μ\8͆nU7]_-6&ɞ,RP@MUf u!8Zh|E\,l9g 3(yl1xmS[ۭt'Z$l-a~ A|}71J/ZFv|JT|%dO&$]O1UGD >yaxpMt!ܴfUjT8D]Q />nDd֟qҧȂ@CYcΐw, [^S xDT E~ zHl6G=\GpO1JtPdzqHNrg 2$vF '$Σ[ ;U10o d}$&a s g {/v6hD Xx@TwyT('!ex(·i0M>;wf%Ŵ.)y|7/1,r 1JV#HSeSsb?LW8L,|%F(9: xA*0g>Y5sДd ?RxL\/ːt7(ʌzPW Y MH )+< !O0Db^U|f"vDuшnܫ`)EuW=1XSc:T-~{s*T:|6ѐc"f%ս{^%8"/.SAp\ gy"n0{:'Cͯ6odГ;HyzЙ[=Q,x,݉ƽ''E+j-\YyVG@@>C 9Llm'+`:EewCyERF𓵨of8$T"C)F[aanl>%ѻ%@Gڞ;ޘ[e?7SRψ]v<;H} EE _ 4r^ᄬx9Qp#iZ%FzLvLkОS)uOt@|e\M4~*07e;7MUEd uUkt#j pA['&B~{ڏSUA$%(:j(!ڐiнKlat2b4 CedqQ*r~jO$Y|'="_swbrfo(.2Dм{RϳXDf"K4;1~*+,ƣd&o0NG ɋ6# 9F-ctQ m\V*Ɂ r[=K#$*ȸoz#]u&, ΎXO!a q.E5w NkVzp213xS 6ߞIZ[CVGTP + |ٌq;{Ǻ9z2Ծv:QBLa*-1 PJU/75v]!H.a[B%M6n\WhLZ zW}V.ÿG#^28s8$P:Z>̎w IA'.sU53([f6$ :qȬ|Gdu|T(R״oXByxxI`+L0=>!9X$|~YQ|+'}tcTE7nglGO0DJ g7n 1azYb&-69''FHF)FL/|i0V OğCgT:^_ ~mc-N3(pYgKj9ێcV$;ϥnEQXχ%W ~{YƞA+s TPVM쀧"Kyќ_h7V?I> XtÂMq9]jplo"m1_(8(!]]پ-;1mvoMa&rdܖ6PKCNJK o^l_O@uO ҨD ܐYh6NȈ6T tf @4&%HN*/)\SGD;`PѢK$wB0@46 7cC&O{ҀC`4a xPx b~;AQLey ѢOV,SF&Q~⨙FgT}]M"T2ъdybAL"H᭗8T\;BZR&x ,j ,\(3ۄ@}UVWWSlHstвd1 =oa/@Ioa[zCՖ/{Z\]{ IK\5pņ:v7:dqEA@DNC(G.6 bwW1M/[SГS5{dfT Dכ4?|o֜d{u_oW@RˍK$8²b:p?u?R$Oڲ.!~)Poz;aF|8 hN4/Ej78}T&,0{DƠCڊnyj&DtΟT$p'3ׄԅr[Hlj6 )[LNmh羊YAx2#H/(]-C.mg@`48`y'L;.殐883´(*Ka_BLMCIɮ.<5UEKԄ51Q?o( ijy8^3lD+_2s$Б<0+Ґq :8cș6Z#ttcJB}72eB!RJZTaS,7kgjCp쿗Q$ SDߪpNjH*_(s@\ HOx?B"lD+KlT;/}e m *?\;VݣUz%֠<6$@ -3=il&\?r)<8}D?*F9 72IfxʍGV7Xyv25Ԯb"hw yns#n&Ұ\4 BJ"f~>qS@b+H 2 {DσvVyh{{|y7NYP̤cDUxӬj<  4iYy#ުץ\,4c<&*)!%(5/ҳLqCs'%!634& 9 (A\k1[ʏ\lDoݱ&Y>S<ú;كX ô#*eLZyoׄZ?qn0 ./Ufi'3*VLP;99z.;r̞'WmVh}ԬC $Tڃ{*HM(Sxjjtim*ȭ~zݮxJiUO_ݞzƇzWi`=^NgߥjxxY9*y1'0ЂPx*C ] [zw W/ٓ~2kB': dd::5`Sݎ|y8rY0eL䎍PX}bX=!1ɹ̤361XBWF>S53ҭ8BcgrV`cB>SRxh1ez/^yɕvUz!:~/sʸT[EgVUdVVfx. *53FtK˙C Q.oz]y#M \^H"wyR6Gb} rK4S*]|^dcf|u=r} RhTt Wzà-Tn( -FcU~+GbT%AՎTH:/T̕s صNlEyf]MyKYpy>K"!]v;'imKLWρ@4n VY-B+JyɕT‰F)0#,wL]1 @x@:'λiE _v` 1Xʬ+l}˗ʚנ!̅66oTX4Ӻ[eȢwʹݦ -;<5%m6pfv"þϚ#r.KAATC%%lqlpp%bU.vU]X־q |WmI?r,%=ChzA7;^hgԷ0"֑R)K 4ԬxzZ#r}?%;@ȶc(w[}!fhSL'#]ܐ|^Ԓ701<|ncaZ!r4!KX3@q {Ẋ|)= Zd9]l FsFn%P\,ʈ|@lU3wpgVZcF+qd}oMCǯ_ÌrecL1Hc=)Qڌ+WN+ I>@dnn\7t:o&xDEsld54mt<`霋M%/a<\RSUpmb7М׸r%8!jGOnM머ƌb#.B6 ,dLēQrYݏ*?ę=m\j"\fŠ=5_>vDKߏt˄.C[3[OִJk)ˎ'l._Z [; jۊz|qM 3g]:Ghqm2Œs"Rj'qApX˓^.{i+2-}i'!2Ripɭ>2UpZOS|4-nFuB4mSI:#l9WU̻`p{t՗xEK2xrDnt=K5xȻFɕeGcf>*Ok|9 qU-4<-Js Wl? O/301f*ulB\wK6`zo-.H1h)eh1;QM5)y)ajUVG^ώ6_@BmhWÄEۥ_JH,qud'yM 9_HXsХ) C]). $N} 7Ft'peUZvrzg8K(mPUõZ3ߞM2%~j:4ijqCFn3lz DVH6 ɝL_a>{uy DRWmK6IZ̯axF57};V kkpY5SxJ{Z~lBa'V2}^_٦-Fh2^R] 9,$D`Oʆ5 ^`xP_Ñ׷շyBH;k ,ߖ`f |B~q`pDF"bO;b>şN٩IZ"eȟ?}Od&Sy!f$.Z(b5b݊JQjECI &K:_E ,3ߟNءNI[T`G rZ =mߘ^ig<zWr%5K|{'w*mK 9ն7n62TzxvsX[ ;53FC%FJa?ܘ!++2M߸`w72 v`z-np5$*Ɏ76Cܻw. SøgzP .>oc% jhDl ~񖬌Av~'/ikVc;I{xY"Sc! NxRW6YeinM P(>]'ʴqKʅ>-ex ,zMgo`Zs3 ui*eW lbGUV+IaT9N:C#4@ 43S_6OZmAmX@A052(2"M8cϓ<) MAEo -V+O<+ Fd`?{:R_8"Hk`{8oG݆.ƂU78=+)jǠPS9CHC;v~Yph|iq m$-ՠ1M 0Xʙ/Ȧ6 h1(DRO{3g 2W_ 'FbMFju0*Ƒ Z͟Ia0 3HIʿ[G쬨+HP߿a(o_>ݍX!1R, _&/rmՙ=ujoSe9"v!ZX0/Oy^5  .uɉȸ >HEޣOm ޚcԚ]#ؠĹL׻5I7 Զ{Dǚ1m" 6: BvH}}"vGw|%B"/[ ./j7p%9jHR:BZSsbWRB􄷙 Oܿ/{j?9$~C $;*M AuKRܯuqފ(ѽ 'T1i+(W|5nmiaIB0;Hk)kdԛ;nlC1y= Ylu M8Ub}L t1' 'l \?sIHyV=Nsjgwq! ->d>Ϩ>giid?>̩M=iD) +vKn-U[?=t:p;zLjY=B,! i0{R9gJZ%j [Q4}tZwq{?H 97->Y{09ڏt y .}QkA3YݍB)8kkcYW,Ţ3ȅ$*ڧtw0W.R%`^<6w|rJ1V?M O6I!VѲ&NR rh9>do UҠ_BdYDh6՗e+PTR|d-~_Ӿ+ YHb; @:j3 NB&M{)"O9u. ݰ/g{pf$%A L_ 6z~Bqx ~)H_l I ,7jRrOg2E*Vft>`fYvن1i<`5&hnݨ1b1]>r$y"IF«ODt[Ә(vrLX^d'yʑ#x^c`7I9*V'Z?=L-agƔbE5鬷I`;rY|I= 8sd*Đ`Xޠq;K]*;y%lՙtyg.*SvL/L7%^De⊚[ ~$' Hk@ WF|f 'Jw k0'Noft ;).WEH='T=ԱOѠdV뜧lkt`>iHaI.ȷZuf^\}WP^j`@ E'u3W<}׎TmOclGYPDӶA\D<.6NNH1bbmO.sRBil.hy8[}gcC/vx^57l5mk78ʖk4y8u0WQ$i/B ea ko2`=ܐi> v1v!DP(N NP~է=q?>lܴ'ZY իNhP N\AMLWOTЙebՍE<[G_uH}E==9^5K z򹤹;@W̕im_yqQ bH416Z텬yԃVsnh!]cۿ8PK:o0&':vd&:\f/0¥c!籋[fܡ€t0RtcŐ5L#tG]U׏>=[PX6SJ[#pиA b_l }q ߮ZW-،+uUCC\.Ϩ@%sM1hdGjUV?̴8[ weW 'X'f4qX $/nEy 0? 4ۋ\wH v%UISi Ft*UK}r7׀Wpr:a|Uy!-C&%C+c„]()mZ!H3-\"i\'a `nI :t֘3|%Q9Wik-`]^>jAIXrM@7aEBr0sñ P &w[0:Dl%06zwHuQ©45?I #g BC=ܠh\2m"E:*9)+ P{?3DSRX(I)k9 ї5v>WV[Ӿ#}y?rTBf/hY?vr฽i7~c>wT,<='7N^ݚr4:^n1 >p 0V:fDI JRH 2O5 e T$B ݊qќº2"0E3pR<[g=pyē7)#hV%8Q`062!wBQ;TV0QU٭Ve\ƢvD~~ a ILU@َ_W"E#!]>8XO{ŽMj~8> 2OYס,a,]*!bd־Ѐ\_"I,H?+ޟ8\ V 7ZSi`O hJ# 7\s+۾-{#h"' >;R&kq eth"N1&&"k}o6[5n_f|g4 ᙚ\7:\%eZ(Ξ]ߏhLq =Dx[DCWU@LPdvdi(Z~Ŵ&x? ڍ 6=ƄW ??I=JiO#h>o]Dx,1?^-@)@ϟ%̻M̚Kv -ctN0+?\]aC3kjt8 Lʔ >4NʾӹW0 !g@kstfi4h,͞tm57UՍqP > c7Y@mYkX*hӆT8!m*֞ijٕSqoOMaG4aeK3xQ >|yk%0#Wj@^bm?w?p߾X@j:˧o%ϊ,Tr[o6=O4#dH4-(AZM#ꑧȄJo,Yx#R5u)z 8s3%v2# rI{ "cK_:$PQ#lnT^&$2@,4h" H} Ws@WZ# s`ytP0AS% ܯ^lbA5Vkd1נ(`,T(E3]2ia /<%Wϻp[.Iu$ɪisql >;zו$ Hz A2 -ifn/} ƿw@<0[62po-B r8x1 ZRW O>b4Ű#U#+ LPG>qeB(Ol{X5".$ʢE+P*x3Ӛ7]g3g(d?J!pMljGNƝ & V L0JS€E |#݄g٦ ͮ3>޴KWK?vΠqq%C;X d6b&;C@C%<@vCpy֭yv%IHh:h:a:  |+0۪~& nX*em[qo߁_ memGꤏ͞&6BPӑUzd ͘jFA S?6d+N+C#`lÚU6nvn:Cɠʭ>J)H1ޞZϱHJt"Vz>?wm|F|ֿ!<=ݜ5@עhјz}rhqJ([1&mdݏ&6a;7cCn?oŸXzuіtA]n{ɗV%A΀1\+ -K)˼r3(x#y{r1 ^I0ў+0lڱh91 ;Y>A5ș#1z͚A)*ܻxɟxʂݾ/m,dBTĥ oIGwu:̓*A٫Afq&퍙.ZeP k#:Oqx O,:b&~)4&d3x QC'(nAj<1nm~m8HvP,K_l(Tu(Z8XVEvGCQqe 98$a68\dE2TΞ',lCDN ۪1䣣[ܵ-&pmz6XU6B|e sۜ ǙVYPNlGU@vc,DZ:3iQPxĪL~1ីE?~rڸGs7I#2+¦kFwF őfϚ _NjLEzIAuHƊz?ۆ8V-.m%AVc LQwXt?Tp،*b:?]c%$t/p.SX0(tYaT@8mn#Vn@ A2EͩuW [hL~MH)AѰQCI VGu'g' ;^[JF)[0DψjښJgΆAC4WbƄ5M$"T}m z_!ST= %#B%_kw&E~Le3IG`Wƿm"]5ۛ vѲͦxaf_L{Ӱ%jOS"L)fr8R$ooT yjTELHnon g&S^GeڶWiVUF^Ni0^$bI + ]-%gfÕ9~Pk`oؒV>jHW70G*hf+k#qr'G;&B 8Lw; ^I5ꮟ,F#E>Xd0p?aZG#B% d_Tzb#[,du S.p9t]=7WF!ȺTB%JʛJQk^&;ZY?-dN0zWD@{$et% B?F{;hMWM>h#D\g)hcTr -K݊ +SȌ/m H%3ٽdߥ_nt Կ_&n T ؙ'1i$$sJ j(nčLBdv}hV."kR](̪"0u䍖6} ` _4c x^# 3b{U62CƺFMCH܀5&Uwqd[YΎ(\cwJk8FQE%sչ.zF*Y8JfT+h`zydcziqN#iSS qrj3޼0E4]1 r43Ix]N(۝]z,K~5sQR~$zAhGA<Kt F<1+|EHԞb#La.˱BJJ}.GMNmH Αt-W`FŘ|U 7Q_x_h|`|dfΑ Dc ̤ Î?>0[\ y5}o2W K }?h}pUJ$'_c0 eG_`,`3}%y=m·yV h# ll}mBUÿ1&3vϖˠA|p\zrH /}]Z'}RcPeImn45~p:XL[xt $*-ЄNC2==~!(Pxi_x R=z?U6᠘J>*U1EOMY$u_%)rHPD8O ,,Kӹ)Mz!K5 0a ;Ф,4e/Uf.Tw.mcRF9IJ1)9ut_ONư?Z RFu&6Rg$& 54H#\b̠2[T"/&aW .DCNfdly^Z>^t J83U7<"%հȝ0.dmxXY:( Ma͘Ǔ~TB v% L3E]dF;mωF U#|ĘFլx,- T)U\ni@Q$POXfV ":O#SMS89qxdNPɽIfV8 /MCk0(w%_RiAl4&O M"@Ʌz!He#%`/B4i{ 9Ms1'F1at7E7ۺ9<Э[KV9}eO*%WuJҵ=oK52]*`tNZq+G9RlzGFy74H@E?y:2ﰚxg ^Eü`N(r0{ hSpѩɻm+h]V9lJ}tJ4c%_dEsk}{`X3gtCou]HBn܊?#26rLȸ#-,s֗$M B#qӉ..1B>F5` 6~D[mzZa/o9TtsTUM pm7CFWd-4./$Y)nWpu2QrlQ^M7 +})Ȥ_ߧ9|Ewؑ:Dw<:`0%Ql@'kb+ivH'ӈ(mNĂy hk҂OCһnӤ:tWq<~ܒZ]䇨N3|=cv&EeזxIrufQM7Pʨ5U9{h>ض7}MSkn iV2; '>etYw0rd F@ݴgj C6̻7| =D 1ˢBE5ԉ x?TNmʟ7z^.|^d#F7ܝ{34H|R~5tj*!ĦNݶ0̝ UM썧`0&Y) {`9 wم8( 5w9[kI ·HHZ?`˷oS\ңjF刻JqxS>x )Rh{v!xgu\1@f NDnk* s@}1,gF"gՅeuO(.yBq3K>+j&dZO2)g:ue ˊtwN &></HZsJ?WQ4A@RHad=tr^f|M?p[ޣ<ܪ܊]=e/)sWD9tjk*Lami'PPԄ}^Y4~H4QK&6N( ӡ/FHYѣj5KDVb]>XMqU}]xNS_V! >Mȡr7Snyer(S5G i@z}9[Ȣ*rP`'`>FVkMvmیMDVX$v_%KRȘ2UI#ذ8y[u[*+ĸ/rEuiӼQH抦նT#il iA{ U[=&3KOЩK0a [q\U Iǐ~ap{3轨BI(-[N Kx1z ~g@dD޴dPCi>XcÝr ,Xї .&1?]؄}Z7caFZ1=Ţ}]ƛ $߷Pm< /g ,-cdpP/ΖuZ霮$eW2rnڼeU=lGz#KԜ $'֍wW+48.BL'ngl<6X3xI2gtt>-giV>>/ ]?A[ @x kU!03oKJ^J|y&[fp̕M+CUnǐXd%m7TUسl_`r,M@)>[ BDz{QWh;ĺ+I^ XNÉ;xl 7JDJy5gMILF;/-L/_鎭ڨ Vs0$&#f.|!ps_]zhq#Hʽ:,՚% M7 &#D#jQnwid)ACUos7LP4|7uu\5ط>MtY!CxnSzT.d K8'+Iu (3.' "vހQP&% iW#LeNM#@h͸e9NIsW./b;УcE>9xO 'c]AS;.b QK!)4quaGS ,X!QhXwi$ܙj 6=I$VlhO;McNtub6Hd3?єu#1pZe׍jm~ cnȮt7LZѲ>XYWZu]֢:bA6Z(o{g_{ԀR9qg_M.t=wKAkKR'+?iw]PU7#cB-{2m L >( hplH!dAI3E0{k6I7\uy"ky{'94YS U06z]072 &uxWT<~ yէX'rZ{3kh?<Ր3OZ|J0N!5 a|a8fq6"Ss+ V!,§Wӟ`\= ˍJ1,~ 2\׉TsT>V)>|EӐt::F|f-gC49%EcHu<],:.)^ɕX ɠ_HLKoT/4Zvlm̻$+94FˁLbh)yZb{qJz Z4; d߲v}` rNQJei:Q-A"mY.g2iŒ'_bB7He|hB%%(C/W{f7LΛg-8VO`(bu'&YVhbSFy=}IhW@obgћ $"$(P$c,bb|oZF2[q:x~W3ջtx$_$`;]RJ" \'< k0(Ka|RD^u5b,on+#'&{H>&(?O yy/NcMV7n )rP]v, _n40<+$qPaO7ݍR|~UGM VLμ֥biJ0f^GVtJ3SZ 2AHJ9"u$9#! .;V~% =k[6T"s QuJqi7]nq1A<}2fCܗSsySn졑j8倎>2 'fPIلeQ_ڒ/qA}_CE"ETc͔ya]fg+ڊlRwt~T(Yz0aHC7>Js8+]%8)[!.&uHLO?TMA=g-yUQ .u#'T4np9,nIXFDa\9s_V)iY:c&bD%Z޹T1Vbj~%BOPa+/5s*|OQR,4~F^ɘ°1!Uޚâ^ܞ^JZg"la>lȼ2`E8;%(bjYx{Ӱ_32 M[?2' fvVNpFh%9m )Eck͕ Z1] =r(3P ${;QNN2Pl-`9dܺ2cWoڃ+9< )X\3ȟ)Ę7#ȫ jivwƘk74< 68"vK#Wl3Mf H3!t9im}!=.v"x k[7!}0gV):E13v^蒍 c9h~ib`B! "}} (Wnncm*}%UY4F^dT`\,02a]dK$g(2<1,b2ex

g+7m bT UDB3eUy!L6f0%)ݲ\ n.Wy1,z=FUZ|awOՀl Z=#; v ,@J>cP}bKZ9KW0+X= Lݯ1'޿o6GHO kT~vgsL%3d" `q _=/.$ߎ,I4waA]BPGЃ EH|SsBa˴ba8,0TY B^C5W-"E#~.v4}\ i#pai4F$G4iXan5_҈t>^"P^7iI}qQ'u&Υ\L_o / rw' 8`H8w5907qpX!F_XCĥ94n fJmLesPbEnsʬޑBp-Zq32tjϪuOob߂|$Uc8xE>ʆg@p*4ŝ6$TlB3ŲD1|Z_˚GĔ(oy#kLb D/_tV(ic~l]Wm&ōh;G:/4@*XQH*8ex&l\TRۥشH!](*T&Whg苤rST:-*h:8@jv2ٞ,ΪlZKvg:u$^QȹI`/543h^Տ\ ABݑmž`a<ֵ#8KM1 ϝZ M' ÚIW~3Pʈ1:cǭ^͵[A`+*GKQwѧbJg:MRԼ0OUB|~Gԃ\%3t kfHmju ז=Uޗ (̅CVw22ŔY8$%xTg0@M1[ 4i!WZVUcm]q ]!q~F u^`CasVfr&$,Taȷ[{ ˎ*V#ORӋ98 Z{w'ilQ豈UV`?r!*8Z 5;Go*x ͛|>lǓG$U]vP &?tܠm 4`T#*B#y@>pbbAK?’qE\yXbn]/^T0CQހE& w@2a.|-#Jnhe1|"ӧia1CҘI,lb [mp%zr=?R>CLSt2 rC# 16UpV{ }rp@slBB'#'M6rYkP-Eh"[tm}Ȼ4b+FIШh\ &b@QG -)D{֍L%@iHf1m9:!G/4ԁҏATWUh In`(xn1ُdϢhgde-]!$E' }s)k8PUgW5@ٶ9=O۽K[p3kw4UNsw4%=а j;=5l#_{z5Wvbz{T]c6SAa{F6~`BK݇q\y2/Qww}4Ptn+N' _TmcF?nٴ'{_"zQr:ӛ+Ru[ AWF?r0FB,n7uPsbV1/;n9dtsޅ49G"žwPpT]%0>vRf*l)훶NzJ9G'&eW+}P]tL]?ZI&W]yr LOY`hT5ʟj 7Gb`(< }d;=OIw\(y-cKʲ.^Vxdן(8=mLc`=P_v(Kp ᘢ7H&7N-?7ň"Ͷrhe0K:K9O޸~S<C^6XU{߰R) Ļʤ0. M,Dž`x0,ou9fɃvKI}l9adJfFr-Y.C5a(~ ]Qj6"w8=wᡷڙSulzOu-&Ky3ڂDWS L ?nΠ: ٭kM mõY0Hjoה. V21j!auD`$F4pWyaW6!kl OPwC~݁[XueS0ͣ6t6xВvd0Jm;u7ŴtObOy)L؂VM &7<@(B rd4;M*bL3°53)Xb;AnQ{|#3q2 p^$*cx+dbӭ !ФE W|9Wx#`@?7n=m¹TY03ֶ2=8rtsq*2aTߨwֳn]|pojc{렖ݗ?ȇ ƎEM8  LJGo[/^v[Y15p.2DM9k7F][N$'5x6\UG?M J, Å C \M0.5Bٟ!.Oǡqg_5'8!f kAW#:j)1Ü4 JZA8ùtus@m2ɛ.'6<Xw^ۻ" $i̴vI+#Z?J4-4D#=LL'V2-@x g'%pVsN1:c[ 4>_ԓ­6t؇#D6{ 0fmҐ κ \g<&ohnp+:7Zk'Vؽ"B+/G%yA#|:FʹnɃ T]!^/>Z\wP0 oT?Q1[3EkLrO2X)Z9C- C xw!Iu?èh!$1琟ۅ؜"NH(ΔLAKљ7U-p ә#&i 6_("Ȭ ']H[>~FI@d8'0&$8>!ͶӢla*xrw }#=:Ъm/%iS#P$n*yXѲ!̖a!,xз9Ri=m\ӄfENm (pW\憱sDOBQpUICY6qׁA:CCdZÁ_"4dDAa(_xHq89mJm`NzKZ@*Z=:Zc#'Њ! hu';w±/Ϣ<%T ~ K ΣF2P -0"N:.˼zK\ | Ǩ8Li]M2M1LQ-46\}T/"_.kg_Ty] iN3Z1d/`a^.fM$0~>8G*:1Qf8v1]! Q$?`5z|0^XlgH2E8kyW7ds =N dfOQĬ+9n%ͪ)GyUv(fU(3Ka uB[ h^r!ccn_-"O#48(yf0}Q4gף1AB|o? ߬OڳL  jW]s_cxּ}œza2_\S^-f`NV wY'WnO'v-(QthߜO421e 5 49l:Eԝ)BT2[pJ>&Bzt"aa9IfºO2>5"Q,UG塚ܦZMws;IZ_[&iKz) ݛ&tOXUtwWH1*!9#h '2Ǥ;0: pFhve\W&u5Ou2&a SP8_VP>?>\-p e>$NGJ>8ɴ0?,n5s^k?LNmFJ) 70 3kfyi9(SUYK4Wc9gNIwm޽-3n(XrEdNwRqs7~ jK\5c!UZBf[UcowZojFTdP ^/MHK]6Ph`ݢGom:e!n-=2pYSI^}Oȫ,\4xiai.)a!A I-[,NZ2p8<zE A:vD| 1+ sg.0F4+nx,W 5pJJQg+6FͷHk`i FugŤqPڀ-Fv@`CIJP69]귅@dݡS1x> LU#X7o;8&\'qӓK}2^:nҀR3ds-̈WݧmSGeگvX0R?DnRzr gbt}0t;k[W/, OLA"M;v zu{z6?`OɭwVB~,G`hm  28L rS}hZ ތ\kA񖊉g,låKwTcmvj$sIQ7$BImIF[RTQlz׷23M8KuK(6\jE2eӬXC3`O7Č#M51%k.]*fZ@ `P=[1UrN['MUK.ԽUTS4绫SJvi*+ζS '!6nU/-r3;daWSļXƪ:}\QZB93 @ GIX)Ց uKŹs>;n&h%[l Vc;<,#/B?A\& 2;YA%Ct:Ȭc UYrRg2'vr ٤*f\Ӌni1բJd,TC#?UK>PA:_֗Oh:J ڄisU 8]/MjS/tqS{ ]ٮ͙:/*ɻ(B(Ht>ĉXã6J -ef-ֈZN>8G N~-LbR04"D "D* m!* fx8 ˱I|U3g5X*oX]Lg*iwLD_u4$_ПjwXɫEuEr`t!&h~{hl'*HIf/eGw9eZ?`JeŊCP 3RT#>ϣzZofOT+W *X[ Yz sM+C wF$K#F8 ݜLjs$ޤ 'idx,lllac;PW%8P~+iRSPct\qȍ`Xd{PZQ9e_x{5"& +i}Dm$YDY2Vt,y IKIe00h k BU0Rqb]fO%O"W= g9-Cͳ\;u)Qz3exZ'Hrp~YW"H%2L]^czzIycf5 /q62?PzG,8֋^q bܼxr^(3.cۻ!.!XcG~?ɴ/w+ORTo>:*K lpg/W @*P\"\sf6(7 g.!шߔnڷ; g1HCw[۵~St2uuTss!*a.z;2E9RK2ݕC/+0' .1sQ %n& jdE7'ǔܫ>kx䊨wJNȚe x8'9LkdZna.51?[~O+rYJ-Ԛ8 Gz4Qa@18ۮ q?1{fufkEkqA0gtU!Ss0tE^MԜ5Lbߜ?^DT6GL|9%yP'e&Wl"^tβM16%P[s'oٿ?05p*{*]EAJ͚ЊVR:Y_ 99E-+N*3x$&2ZKg90Goj-\5,QD%s!,qY}Z*VB읇ItrxTsIdGsx3)m쑛"/q8Xw-,;(RUU)ѣ=alYXo|j"mZٰ>b+|7ۣ<ߞTqpѼ6,|eP=_^yJt"j$K?$&?#H!3 ^`Hh.Pјťm5hWx^e a?7E֥M4!fM?D/3+;/98jt-k'H/37ܦcMLM_)w րpaVoͫoFX'=<*+bOo##60SŜL|C` ~B"#DpmUz޲3)-K3E Eeŷm2trM&#B}zʉR9֝c>@t: :>yo|Oa":ἣ)XP="q+@α|.ꨲI #;\nɃꔺҢ qq9I4 KcDXpKɒq~:?xq,v$Tnn+w_'s4'/UYǏbs4M+2qg w-uk,4\ JssH' rO>E,s-!ڀ*U2яwWd7m0(..&t' ixoVd'..6M5Hv)ug_=|r̦T2$2#Hr6?. еIca9_!nR0N;R&d5Bӹ e7iD$4&;pjnNT"nf~7=U=M}tNt1bC@@2Ӷ3٘LIm#qȟNF\j`_X$ymKs|m`mhD8Kg^oo|09cJnX==Aʣ8V- e?6V$`iWO.-|vFOPw?CH#v[sџ$ͥ W5H֟ţww);ӯcymNm4|[NJ|Ӕ-l,bȥc,I׈FtIMk15Gl'g<ۺ6XN+ 5V\=X;w1 DKPHpp@R) |"۰Msp@@~b=3s>iV#+22O[R%-4gƶT<@6Gm5˂[o!. wĬ)$myQ{c6`u$iu€A {+U84 r N~SҰ&Ɯ+ݰꂩ<F-j)KS]!7O _YxEG]\0(tL.GvW]z!)JF(Ϧ$叴OQy\I τ}}VP9ˆ7"Mq{Ȑ*m !C륻t+iR-;ZȨғ#QM7b:YBRO=N%\ǡ6i$;"l6rVc.?H.4b{\sn-&E!VaNu-t<"U߹E+4KbDn#7 [ɫLW`dτ:KUa8/3 ,1ڽy*C[ۡ_Ƥvx3g,6oI# Jč8tUΊ3hXXxuĝZ~)du1'ɓU |rE. K|2>Y51=k+iJt ǂNZΕ&t" jȊ DibFbsVߦrt$L`E[L0ixlބœq6N%*[*h F8 ;QG޼$M! Pv/`S{du菌UL+J=ݨۖJwZRW%.?~#6BqP!gECa,0w`pMS3V yǐqk:zѐa6TSk*Pcx Ni<(FFZLCM᳼1ucIם ejbMۛ7"Wis&zјD`I iۻ}돰%=WaXtt.ë Ԡ@@"H\u:-[At+?W8hƅBxA 4({1xVߥ9> cfJF D`+F3H-kjO͍wJ^by\5@NLXu]zTtrCDmW= 2w1]'1ZsRץNαS݋_/3&'`:ۄmxH mROGrWa (pLA1l|OtY{ջ="<9 ψIvޡe;qե)5L&"b([l&Kdsfh#f`r07B%dQL3*^0sүSŗ)PbT4K@CJcG}'}'3'[/[}ǩݓ^<=iT-O 3+Kf]w]ZŇ;w-:De Sm` V-<Hé4?%whľ6STxFiU@1xI鑸xD^٪t9xy(Lءdxd.BA ӺmS$_扫:w~$`ܮARf#hiB/z,P5'simzdz;žZ=ɪidB8=>25޶89ط~H3InuNwu$fnߒ %d-N3w1݇ms4 #0X0dȦzЙ Ӛ".@[` Jjkr@7k9b|w;x{Q]\jZ%<ŵ'WXe !2:΋Ǯq88FmƆŋv5JbUGAg|>p%GN1<1J8&/S$;,,KQVd7)*+bX~G;hk (⑄"CNpVH '*'"?)OlkC8uvOd-fd[ޛ*t0iYiJj;r⟌Du5I>$* ivZq:~/YpE5##sI.y{^#_>^'(2b> SEA;$;o/YAOo>D_\&+B)j I6n09d *r;:6Q_~TկQf ԔOJ]":k$\.a}n+]-Y I3D%Hbdd~Rwz-Je'9ĭbp;4q[:rUXU# ц;BgF* E±;Rv\঳6&SrR07 ֳv4!KV"|d7b*R/Y‰IRNMr򑬳hB?IE)]~O<RtSޗgV#%M&o֣,ӡ:JԜ/4,ßn<| k ř,Ɠ*u4%b663SZN-AX. ՓOQ5yGtÁ7!Ơn>\L~KcW^BC0Xbut Jm̧1YGlؙa|Qj&iէtHzUNޯ5?3Հιp|,+kY&{)aٵfs_NXTN­lSIႯ )^ Q$S?ҠI\ܯB%F^{)=:Ds||6LۢQd]5 /?.9ht헋bhF#i wj t t=}jG;D`K w$RMY&rR:D] M@/~PU^ٗekd\ղ QT{}#(Hhz$ᣇhnA:% 9 IbK~ULbJCiq3J8XO(R(J\/p9O=܎rO.,笙5O`O3ٶG01nBƧ^eo11eٖȕBpb7"K'rl^#/9>4|4!JhKi'= vC1"kq$X dZ)Lvqھ;Lv"5X?՗yp ̰x#g8qX_R;x;wp2y7i͝2tyHk;ZˌxsORkhB';9fNt\yߥ@G#yT\ ڣtb};\ڟ 3_ȇ5 M<7I¾/MJQD` L[bfµJ,:'Z=[OY!>hP^ҳP66 _>E+]9oeo8%?~Z:`Ύ`gB{#3l:3ĖWVep(n\˥+ |HEo)g&ټ^,IR# *68k|o<*Ri蔃1x²M>bP=l8lv`PP\v< #m>Laam.]TA_*qv-} z{p;53eHں74ʴd^wp!XPsf֒ VøNS1`3* w&avy9kn 'H1hFa7r>Y)]Ri<[u ![aG۳]$z¾8*nRm&F[uw:A!$ZXڍGDSV-Lj>7R)V\nrET4o85кP!'n52 ?6𶨜u;|ѿ٠UR(馳ƥL%xi y͜3_~<җQiO '}aCIo|LUl19^J*uH;dgW b)'mrC-_n]C'X"ޭ KrJ ̨< :I3XT yj>wzUCG8_"B6^heB-\CnS5FB*#{+!/Af0Zw$׻Bd93FМQ ={;̢J=;\#G`.nQno?K0ŶS2;мG ӽf$co7D E:V'"XIl Dބt#z}jbt0VAjwP^y釵wxʬC! v\ϢLQ| q8Iْbp[m+TnB1wjJVs)Ibj[ȷUp%>rQctOKk腄s*w}sz)rPL72dé%i4g3z'曨Y#`9Hû7*P-$tɁH /R:4JM05_ű:1,3&RN6 |3O@v—u,W[>N-/Bo,?>+$,##C@4̗ Fe~V|ɍ~ǠK1`qcQKݺA/o*?C9hVGHe0+]2Mq A YOzQG`6!m1=3yqm [iSR9{u[JD8.7 v|UwbN:u;4~s.rL5"y&?+=/EL4E$v%̐'+}`RpչBAnլ^Y8ӣ)TɫLGJ֘piD}dCn5 ?1[Pgp]DaW襅롭2V NjgUkT3eDMu+Y\5`>_ P:f|VC[RGD<݄ʸބ;5 / &$S*E3Nþ`JH,tF#Gr-:N^_I\97ޙ}z|_~@;qR4ꛢ{.| Ib =]6nc&򻋯PڨeFqKkJVFbr=V ]e*;5l(V܉#]˜^*~1Rka"B313N_kP66ƇȗQoޥ0rfώɾz<8BZ0B~~TFMC C"sM0fc)F- )8ʃJ1wsuDyJK`3{" 1i ;Gg%X0QtER/br_H[ġ:j+sf5v- ndNL.@ ƕ8[OMi PT\*-4$R{ͪ-&p Un0lw>q*A{Eܥ-R%6K)k-\ 빑Wnb˘-@;+ T>S5K"i%L@€B9΄#K8,"jb!^lxU4(U.q"QlԮUƨXuq\+չ޸`Q}8)A@-3m$C7CʡL&'H=|TL'Pn3`= ],)(3Ý3+tB|i{Wu V#Ch5@KKF͎Hx=ŧ6kPPq9%ɚG6ZAeh0s\5l/ϝdOηϾc~7A/XH}Gl lY[%-YmBY 4w56̑Ow]e]>e-3̠$ z~>qw+_-`|E ݍp ,W+(HV?1c60bkRQ}}^Wy0;A0?*jNqK'V6G0^Spi_t]a<)8+ dИ~ȥ-`wE~a363Eƺ(؇n(e# -UA%\5`oo MƁk.ϫ﹨_D|-r%$W$y 7\6vxhꁎZk:>NmGPG?lvLO K(yXILd|}c;dщaLKͽ?ٍDǛ#^m?Bfx;E%54&E*?W{c)kD\e ѩO W-HE 37ߦo| =*hq|}yO$MZ<_ۯ>aUqv/7oHZ GC=z.l60*\ Ḛb)wcCbI& jC@}=\1?dA;$ߦ饚g&GAu~`fi_m*H>y~Io'jUv:)]M1%Vq9RΚ$棵Gq] !kP+x;xc,l *qバmAiA^d; (Oxz;ez6 8,!5)hxP]\12I@xJ RɃg9r]ʡlp0gmN=ťRD[jZ32&i 7r& -靗/,J?hdA2|mcڢ3$(n8R.~E} 9 JҩdaeAzju^]o(oHieEډ'_]44qQCfrG0E 8\zŕ+Kg9Nc?Wm1F86wA8Z.xU)n4h&vwHJU1v|wwZgHdKg[a\Bݤ"7*Xq= !: 2bYtAZ?ޣW_L>XR7b=Wyƌ $eǤ %HGo>za8>W h˧)<8@qH{nkY aX;?_U6h+ -AK VR}Gɏ]'~2 TQ`\8>^ H=u#\UbtBY^JTå=tQEgãM>]paa( CW),Y;I^T4CM8>Tx:)؆X KP\ jB̴ġW:6Z1۔Mt\y^av54ݸ! ͟as9T[TC+7v:Z)3?q9ls;t6Bo,~7FVnqnHE:k p(5\*ZT %.Odskd>V.(ԋ'UmTI`zN1^M~6$OQ9RX f~bL0nVxA4ç:N~Uז{!` >*:rU=Qҳ>Ydbzal 9&h1|k@o2q- \&7}99c&<3ss%n+N;/Kןc&ϊӶ#U6_wl|9^3% [?֮ 4jM.6{kpEs'ѵr4lF ,JXbqRa6߉T2,]7G!$3J1C*L2XUo* >}ݪ]'L ^r?\̀+@:(` cB! _`n2eM !7Է (<}[E Ŧ{qG(8[׌qӕwxe{n'_\)r|Xw'xo*U.Lub ۸ETa7܃D1F.D0.\ͷVDia yk:G{:-}هf7W8 y<_ov;B舮kQ#8j "oF:9η9:_,_Ks 3H?DSU qKH5*h|lWy0vjvLYʊCǢK1 #J|QݩދI (~kʴ#$ &hqN)4-S#f2ǯ Sܸ{h$._¾u?XcĀ m"ku( Qv-QDj>\5@eyhDUey8m{cW*́/\/>4Y:x.8u35'T7MjPni 5TxJYAYk1fE?PWG@9d-%oO4T(Q]3UV&[#&9cu;K;t=bkE< 2"d1C<255@'fQ&+ e5okyeh*/wV`ض$B nl9LC 6% Rkk] d[;n(ɤǞs!^TN<* x:Q;/vCO%>Fj$pӡ:YtFl&2 Q鐕Tkߏñ.c2GݎSS vݨ^evHY3]MX5+"v6hJPݢg_&lO_-iO,jR $K/[K8ARrt|#d6"`} v\S0xj]c|LJ'ׯBRZmA6xqrZve\%wkJ;suVX7Oa`DH}LיPj֌>ǪmYMikF]Q""*OV9QDWS7A[%8Vlq DۺFWY5e늝В*!xc G:3`XSjB { Y_`ݍ섩;x< on :QCЊь㝸[;0zUֶn,EauhcR=w|_|fdnWB@r+npO';sߜ̗ÃNje~ue=dPtl\N3q HF4rE)OO:O ѥ21rCش2Vaf dS7E ]2~B .:/UW4UlA #-0%;ڜ,rU s [!uw-D\tj3"{"q#TL9,t y;d{< eq\d0x'֭;@CO_ otU@=qyGfg9<ձ8ivTmzIs(?ǿ ;Ώf+EʩJ" O`=`ʘVi X[ҟ֕8BPWn4{LJeLs2Y},sO,%IlY" X}yNmN][ ny]AA: zvW Je"^X9ِɧa_r%3W4y"[(0]•CX|kN)`qL&pŀ7]$Ta}N@?nVOu BJ"@ IaY=%ψU/ћyBܨ;rE D^s YKx (L!Hu] - `$8M"jfP9ul sA̹mma&$17z q<-T^+w E.@`E@cԡ~Zk-C(*n J ZL?m^ce%HrJ7 8 D L$U tdlJ<\Lw@e4қ PjOS2M2Np#DN7D6D^0Vɔ"ĸ_$w(N&Y" ^|'Ʊذے-!BP_"AH̠z\(TOe8%iS0ZCLEl1֡mi> ,.0 3N=$z]k6ԟ '8 k}Ivhંcm8*6Th2[z1(?jol痿/Wu`ʲ)F冸Uv([~alo60+|EC a#\v6'^?@ɖ<ߣǸy2M"+ĕ 'CfA4F`{7Κ b ޭ^Ue_T6?N)(WSLL÷2lvVIh{e ?{r# n9+Dګ4r9{6!#̀kjTbIO`Pjv15Sj.n,rيsIyPA#S5ETH-잲8w+0w;hs{٣%<-&oaU}VO|v8_\M^{Հ\pHFqTa>yʤά  y^9QeG]:Q'30셗4ƪjPs@*3ƴN{9+VG v 妈̖Wy5Ң\~zc[R6# vU]lJXZf2Ivy.|QUaUBEd D:ЊMe4)?ᦹ&997ZjH| @͐YkPΟ{eșS36?B`_ZS\?q^]NO(#e2,I,*Τ_h-ӛc&Qû_HQpmx2T%. }voz=џkxACG7ܿ;heuP{-ŮkAgx^*P#MmG/z|g"eY98]!w,&cG&F{ p#63+<y"w!&1Fh^UN|1 C7X4㧸֙_kvoҳy?Wˏ 7OUPJ!~p ߸?keklMu qu3M^056q_m]0fUɐv2Rbڿq5_M^ 6p){2jLT@j-4a<[ii4xwpB$x-trKh0/*^\(+xd xeHJ7=|*S2#gv ]P3!snO6_[}#Љ#jcZ9 k*_u E6n|~ޭu'zdPP T_<*Cl߁ t jY6H1 %B(]bV>1W 8+Mqcu=u?d|*g-DyP܏4C(+zX#oTU-:;-˃6.lšd{ %˛2%o+r fC=%43Wiȶ{gZ\-z0A :!e]5\h-`DGc#5RxOQ2U$Ww]@Rӟ)}Ꜫ O V4-@cg^,1eMaR{PԮKwcK"pk+0iThr4/{|M@:c[̎bڂ(Sls&v|c韦1ox%jMLNB-A Ъ}gـɛf:3;j,(K]1TC;5;MIo|-Y|,m HĶxШzy AWZp3"7h9Rx|Ir~ポ=ٵ w4q@{v(C6Ⱥ? Pf.T7}gN GoAy8)si:mwjP j_Z,hER_`DrpWY=ȎTD<>JaZ0$mBe|! !++@`|ےZߧ]܈⮙`3o\#92I퀈DOJ'dq/fjQWCfV )hWF{uEno;H4jfr#jy%㰯Y7ƍƽ &v/j^cJDHZH~ )'9yzƯL6Q Gr5aMͺjӧ"DiHVu*M켗4%v޲/D>DiBN0Qs_ űxz=ڍ-M}R-2=&d y!Bo_}Yz4ɟr_ewkearZ k8V^GauoWj;YJ#:aûкCem 8fُw>4YQx}N2@L$yyRC?zk]V}RZgY(Jb={_ypb$J f6_mlBBdrD\8on?Z~Lb%k94tBǪ(t+xxNyִ*"f޹'%m^妜 Q|=? )p[5W-sFrB /.C`Ww+IJ=Dqu('kNxD^ymhMdN+hڞOzϧ~,K9AYn5Sn q W))qJVŖ֣n&<@ heo4&ɘ%0Qu8DMQF]ic&%V-PD@LZR<* 讳m+|Kq3̹Vz\XUCL<%o#QqnIc_ =I@nfyҡ d̓g)|pzMϷTNÄ`ѲlH;Z7\*rr =ӰD< 2 ׄsuʻ/dϨC1b 9<e+ixh={u gӲ`gYKgQ ]2~\$/8X|ölQ9j 119 t=De7Vልn\`|;"EשEn'.휽E`FphR+fkY׹X/Trʰ!`Nc-g`L4e"RL hM:EO,@U!Oc6إ:5tX!8J@N8V pjǃo&-7"NqXu:6ZpX^>~SKa0i x_R8 _K#b%D%եt O}/9KLl =U2h׌eo|43'HT !1GjWqy#ty*9:{7;E@ Xe֠6~]<ݛ+#p}P2jA0sUF8rr:;uS{ Col"b< yEd%?0H 6TVR /AdׅO*vMSbD Z:zqmFgV4 `qyʕ|1s<"}aUM2! h5b|䫏GSP*p|?ի߹0ZQ"'EJm[HJ[LsL$;ykEh&?Qƕy=|Bj5;W'Ud F>q.ʰֿy=0Vd3;s,&8=;:gu{/s 58OYtY3mSTJ-  'ЏRrwf}l67kəyZ}R47Qd&g Y~&4@$dzl]*_S09ڰ(ެ,|H*J4|cGɿoH q.> 8T},i0%u C /:<˥7ypB=a a*dՊ4ifvDA1Ü_NB6dN.Ukw1DZB#=–$$ur@hXԖge<;R)NѤId}6AC34[2uU]pܟ*y1m >N=TIlnian6SITi,16R5#*7hTnQWr(X2l4?>c_GaDRI~6;5%"e{xl%eūΠ0/5wřL's*?X{SrqZ&DJ] ^DG*E|&q{Z]m `ON1o39-I5_ZvjA'GmW1n).Fӣ~,KR,gŖ$)q)!QwQƻ!j26IoO@fJ˚Yz.eGY^vKvYKq8,,pL[Bù<^`[!%N%N] {7.X'>a}cIDTXhsjp#Ũ<U>wZ aB'ϾY51PXCsZ`pF Rԫ/#[}fCK"Hޔc^_%>~3tcJo%)jf;* <- OKz=hh#Mrc͖+pCzFRN ]%2.Gt]߰IRuvS66AlgZj4J?ڗsi*q-:ul)2*vuǨz: (TQ)kN6Kz& -͘T4qKFd=U~,CK4!Rh$Ǥ4_cJ PXi R9>LF !r+Jza y($pQeத!dT RaO= ?.P0.kܡ8QOvI@vuŎw,\?"mxf@Yz0zsӑ\su !EA]+ñdZr )! "a0?q{ɀK|퇯4 TwKL;MM!R+ҺًEA<[Ϳ|>9mVLbK9t~ ] .8gZIaz*IaGŗƒ1V PkS "\ =ԯO\5!״ *]y(\&Q1w,qfGDD uW%$x$1ux2SP}R2g+tAy;aOaØ_GP."t U|!~RxQm2P@{E2~t90@&*ZQ(nt?2$Vs\vYyNWJ͝]JzLι3/g^hu,c%ng"{ZR$Cj溅!A琸nu p*vF{"`YB!:f\wP&6mz(O~t#BU'$fjg&E*]D!I 8wαO@NYQ <To(eHbj—Cߏ&(7'lFޘ^Yg!JXk$Mz.)G)pLH-ԃRjq5;z۰m>2X!OTG$K5.:/pa]`d0?Se:  _I\5O^^ip)1RHtYuOSLzڊ{c#wAXl%a]iLxK'M0 ["o{ |9ô$b"]D8wЄ=z^c /qj_YPUp0:m] 5b/V?I5 #>c)ҷgBv꺲ߧ<7bx%ּQi^geԦZ0ixL7AyeGJ?^@{yA9xhp1uؾQk.S 2ɵ_cQ;( 3^wrFPԻ4|&m~ 99T3׭gFWf 4|tÏY/p &KR~o@]7Ưl$R~lg*e{鄭!Sx[1[zhN;YĉF#l׬(ː,Zw=&?9 KE $et# 6FկI!t* lQU|}"؊m_w$ua^F #I$X5Z>Vmwo۽?Zp!"J3PM?i~{3@E^_Jf9ݧ%N97VA".f i8D.js&l?|xƟR'(APH9xJgKP˜s} $\"r v+lPn]oph}0FئΩf}QhL!H%r6A3)։F0ᛓ Qq!yBWow 7f)}zG&B*Xc Av/eSU0_dȯ,:$\5醲@/I>ڮf76D "*34O.^0jbzG3>DUOY᚟Ê2z]D.#8)S}{3m9VTR9d ahd3m oUgD*ln웍ockN6ҽp9S+5]\ƿmR|\*`'e fBS`j'9|㻂 Xzq๷h5)37J6@_@7Na]rm9z^}#p@1deKL^v<_gξd0~$2VPSmfBfC 7 dLTxUIb[`.S9 ۴Sj2G؃PU_SrR<`Msi]UY ,ӉLG#4sg]3“v xIwJһZ,rT92[1=Y@ 9^ c2M_ P NXG Ӛebz` fۡ"Zw^MQíȫ~Vm2c ztB#<4-XW: dh'3fƑjN`2Ɂ #~c,Rf:lfսfZtYtDw\^-{`Ήq% gƏ:s,^Ih[,a``Q  %_d| aG$T S3d0XD`}I||cpGB7  jO۩9'6^SD)q82V$ ߰A'7+3#RL拥>' 7{vチD:lU'ny)(:P9̍_P\,7x 4h1BwH- ú% o-G "pxQ|:iLA) jMq=w"?!L-{K2+;V(V1\j%5./Si_+4K!yZ@43|fv;"3z WNMmQθ kktJf2%I;G x%+=hYQ/;ߋ–kt'Q7ɛHC1Q`kj lMj[XK"]hl)DW46}߆UPIv6c;ZC"8NB>*u^TPm^/.r!qjL{'|Eh?zT:2'3_jyr6Զr,aJ֤FFA\a3f(c7V*57&i`F x`2r^دz7y'VtͧaF._8/Ft0:^̇~P*i.IBs ґR*c--U˙+h\X/pmQKfNf&͎)v2g*x`zHP%lqJ2AëCni Ǡ mk+\>̓3Gh39jPRKlh1˰\{R|76 {%1Df#A97M>5H0-Y{ ZIf[XgП.-rBnJHSAUt;x5-Ѩ$7R>`δT!8D:rmYx#?c sV{RͿ`o4> kޗz?@NB19ykө\eE#YZdC(*}q5Pp`KY#Ĺ2ڱl )=TNdoWP-7ڗAԞ䊯" ʂv9,dr'M,ѳu϶Qu=d31"L{G|0~S[-t(7ݩN2jS7]1xq6H%3㯦]Gf 4bvh\YoFKxU@-fëh kgVNU k:_nk\ 3SE@,s}L?O?cg:\Q[9\Ό]{x\́<-~58i0RB1BUm[e5KDt2P 3ʎUO[ԻAaeE@lyyD޽99qx 9sˮH$`w_C^}`U-8}4 JٝC]޹okCH;P.XFΜPQ)iw l9{>F'[xc? n-B>d*)Ȏsv-K`Sfs'`CFQ][EWpќL&Ռa;zf87] ^}.hT|çpڻs]z̿T x(R'̾Ksd3e~Gg)M&$b/M9%q@A%gy 5fQE+(w~2s^JPm|U -߀k^f[@Fx^eqwZ ,;2$K{g.J?5uЕV ^=_"焦KvwRp'ѯß+D#_X3̪@zV] :TrEtgĭ zSO^<(y:ȹ ʬ$%ya@s-%'TQu;ۙP=_9 0QOS `lP0-* /6_toٚ1.\S]{W>B9̀|76Ex ֟pT$'4"f[vQ݋(#[0"'Mʼn_*:UK&%Q'Nl5}"=44JbҪ b{m5(_.R#v@H}$a5fYq+W 0XbݣtrށWe!~` דI]ҵqMܦä5q<9L%]+k#hk$@"g]RAIyMC *UWAP@m$4vҀ?bYxk}ADR&x>x $R a3\:#76-Ĵ><@MLa[&y#5g0=W"K_iا(c1*rD,[4 2=ÏXU< 9 ZZ'$&uZ) -61k3x+5YKGerb΂&ܹh1}Kf{}TP; Xh3v>TWi?ݕAU fޅQv?IYns_俾tJgNC.mOk16GʹU ROl8|gLt>}kdJUyA#Z'qیYg b ,܂LZiэGӾ![mW!/y$팼3SFY2W;Y F ˆk&Bj6TE_2JIQ'OP_[71kpi;<.>w!#b9iPHALKUL\:DJ }V?, :!k[ *w*@H[1P2/lojeNj?ފ.VNo1Yq(ndOu@ܻÂ(_~@)#0v&8EWEݐ |/Y>qoBdʅà_H4e]1m]WPa:CC,& }1ދ1q՘uw^tG*g?UHq* UPG,YyCv&[J! g.Љ U2Ӳ8o[ArLihи0Ǡ+sAsEKB.Lָ1/X)D0ɠbluT.ܓ[޲ xCҮ|4r6-Ѓ}N&zeF'> xq/i2AS4M ]RN>m 0l`}`gPF8.rƉ'?%dlё9->؁'8]SrxE_b)?xIj9lJ (vf&X;'bI%2 z+iwLpZh÷$^pB"3'z/N&H0mWj\X_(п#$[VBUd?:bO\7aÿ@-'ꑖx 7'u&IۖԊlL(P]~Ay?C6.t,ȃщ %h\Wf'o=> /o0D9+'%6Gz=8>yT:Bᵨr w2ʴN InbGǭJ5Wr:L{SUõV?ru&B6@[)Ze]xAc^h͞K< p1Y,2 ?Y{.^UT6  lb_,m\.7`'Q.:LxxB!gER[ѩ WbdVGr\JaSOl`g8 jT΁ֶdz&0B{Nyb/v 7=39S"1j{cZn}ܳ.TTzt>]/){%O G^3"%`]Am/p߆)# ++xH h]$8mJieËv SJ~}!hKZhaWXºn$Ze&laFjOԚV|7r /!pr>OJiḦq2Lu#?G6EnJaVvHuϴ/8"bl"=Xxwc <p2?W )Yr6I9 VhHn"pPjkxL62tΥ6.n3̕=}SHzxS77OP0zcϦ^QdL0fͩki(hwI߀7΅,ȱyz+1pN08W̘4wlWA-i;C+/f|7JQs ֻja@6O08ޯŸCmX%p2$zA>ۗPI2g ;BWE1A?- 虆ِnq^6VxQ㼽2Ͱb^9|mSƸZN"t(1)u2Bռ{dλ) h,-0ƭ7?ƂQy=lAd^Y`'$}W;.XxǕr^xWdab5>x]8tCZ(_<|N'YmlMVqF:)gX&ogGDS/|tF(uWR[ȔF/@$k2dD'뻟jӒG1rXm@$01s@0|vLp2׽K 7͒@0 Z!Qީ'j&>Ez!YC -DF Soؽrl)|;SȠEJa0Q aYMtmHE{40ÓS} _l =06?y%dx?Ϸr~E<ʍt9hzx:bfˮ뚳M{fys-#YQ6-g>xB' .5Woӵ@OmUf/ׁ!A|Rt[~W BPHz∗%.Si""Y*tX*jx^7FڏHgB(<şc̏$kR\(PܼPICdV*+{-Gfj!G޽Vz^dSX%(JK#jn3ފ(MEt@D /eQlK\Pi Zl4)0_̫,`%hgDfɥQR7sat3zSลE:M.<;"6n5?1&8gu=?oxΈh% Tiζ#@>oYft73"_`C?5I14ze!LB 1g=ZVy_Mkz7e /nZ’M3)PA͒qh\{*3 Mː?x#NS^ba !;YEJ||ü' %_Ëcy!Z;.vhzb#4Y#eJ hI ~\~##c}{SЭ'IuSe+1]lPU=|RV'O"\B6s.R ڃ!&6LpuP'cN- C)-ɘur%0,II"[h$q,5K+x;؈R245Hj^Y<[M"5-3񫢔I3.j}*`HRR|]_2ǖ J9+#S%wɍ Ư i֓C5Ձw2ut @ r>ꩻ:a܀g[,XzXءze:պ$1l[X=U߳^r|Sd<xz۳_|-aݬv#hdֶ?6CJI7L $.q4,*HTR_s݃O%ij^j5K罴lYQh͢ gt"^vcO@ػ2‰[WIx5tRoł P3Tޅ5h`\I /7̮hi @`)U@^nQpzr$f1\GڶcrX:uVlX4[w$ȔİoWdãĀGOJT~O昈kGў;?wϹ˗0z(9e^rFJi)k,Bv ^<0"6|s4xg^ԣ_ ]߾&P^!>Лݞ`B#jRf:tOV6gaQf "U忯Ty܌Qӭ} SLlzэh9JEI@0#^ghNjSSѾàrtbZk[ ~Se!1ؽ8:@x5ROGl(e9\νi`4'(K8|GNkqTPf_48uzu[ﮐ' - p_n)ݫ&䑚ÄHpC$!#$yUlWHQ~Q!쬓n,ʷT9y @*̀X(-9]]տv{/5am8?ŅO˥/a3vZ{CcZ]AιRM7]%̭A:Ho5(1!LٝFBֹ8E샷Ҝ 5Y=boR)~v3|[E[ou҄7]l(=FU&ZWߡe툄ƑB1U-<s?WC8%u(&|ޚ,>XSTU,lDe-4KmqobZhw>g7 #L6N])ߵ ?1E-C 苋̚{ϕ{bꭶ#E-.R:t;[آCx3;=X8ntы. 콐n41ul mq+[^2\ i~Xͯ&FM{Xw2Gʛw#~ ̆;LrQEUccU8/jDrmqO 0ʜC{7A`I&qe0Sbx`oԠw?׺'>jӻ }N@tip7~EPL֪_jHi'ǩ ؗhˬ\zOWBhlW- 3Xܩ?@L'$X䲠<ε{ arMŠxN*Ys}I!&(QIˡX=;O (gҹDpGs`z66H`o]eNb1\GAG;׳3]ǩ6w\G ~Kc rw`MIao7'U_ǀ+.qNA8rb8vYy!hNEX7!_6zcEBZ6]ô 0%͗]l28Af*`vcLxbFdUix͟CLH6v5E:IHj$is[ۨ][<1"x2Gŏ#vaT0!D_bqf 2@"M㮞PejEdEZ(2G")N6T#Jh*%m G9 iאi¦үTE zlv SZȞsp37( $Fи2¸+L)tOau3"?ZV ;:U*c>u]DVYb|1['|i¿G@-zIs'-MuZFCIDxrKLu$.J*OePMnȭfE8~v0@{_ Ē7Xp쬧Xb](xm@w ϥ+]i6;p7KaHZE.ZҗzWMV?<8Mܦ( 4dw6v sMQyE]܂k߹/rģ~g rb<$`qHǶ6"EC`# iXbRbvI$3a{δXBj<"]-KüA]'J1hk^ {KnpI/ b`$UsbT=O=N4&rxsg5}CMx;np u߬Z>t]K:ڑcUl+ C€EYg >ԆB->foeѲeo4;M;{AϦB]mWT'f%\/qMjTj•}]:ѶISĴ+aB,:TS~1I1̃as! L;u-JJJW^YywA dVy!+ip7Ro'-%D^JH'OEdžlMgD=!:n5ų{ްu0EQq'?&忓7-Ex/q)<ŴVAg,'%/\ [D,'wT+Kjf/f*Gy[fE8' oDdfy/c ˬ2] CzwYr Ϛ =la\F"ؚ܏JzuqY̺W/RS%Ztvpcb c5OѽP󓍑DCz7ZGpQr AHw4ı$O4CI8$J aѽʄdtCiг9kMUvk]ȝ}A@juNr`!( K'Pmx@Qm#R2N?ÓY [eD F `6{>uR,c!;cQ8o)K )i&b,_kY۰psV[Ef8^fǰ9 Au6DqX@_F$RՂЧ8{?44kc[`qMc1*y_`@yl,J$׸kB$^ #L8b 8;cEvdwҙ[zo4jӊϳ%K)_71l-p]qȟ~;(+M" }Gnkbz(m] ].B8?N>=%2PggaAv(zlh( @k)>#W t 1jt~.M`!RZN -FucAfwFEMR8\Zd/y%Tk = mKj7S e,wTaFݑ 4gpO/ ifǗ,aBs!/gf(o\R'9˫exoqߴߋW |&'l Pʄ(3S+Yg p5Ts;"<[R١V "f׹v:^315 ~Ym]bug$$DRie}OZ1=?]ArOZ|$4O9?R4"#1VD31𛇕j7txH-оU?%n$`-lD]!@9{# dEJ2?(W5JE!|<Æ"1֍n-3&L>^\h̲yɖ)`ձ%5/9Gp4fÚj)Pr%JZ5vd;j&:ŜuCPď|>WrWe [;xx𝂭;7p)k[إzN_>1Nlth9918f-4'tJ}@">- 4KؓJǦucRp$gU< }5b,dX龕Z\>_%4=kx_Rihnݙ ~c0rim'>¥˴ *[%1KQ1*^HThY4p@%~P"4?d|LBƳi|.ZN̊%$lRVJ.W|6ma378 @gt{֮7`jب<vH0e}\?7$ 7^u&t2:Iε^$0BSfU>gZaN" MhΝVZv>/ 9hWB#Ųu:K\^- ڳ(KXlѭOD%rʀwZ% _؈BsDUOepŮ$VWHg b0k+j.\U3TrۛS~j'NMuǠ)XF ex|IWd EƓ?RW.Srk? bvA+AkNQpڌnR΀͉#B0y-7vv y8^ 5FF)rf/7yJ$F&XqjOLsSar =#TKp\V8ۼjΫE2cޅv~-ӈ9Tt#cÅSdAbHG#1xOG ?T_: ޅDڪ?~r#NpkL3+6`=mz7e/yb/q3y.,6BXcnwp߂EX'xjM U՘ ӣ6C:#eĀ;oٻ "2n.R}k~`Ev^)P_i"P>6 >x7?5O[6W^[=v4'$)bf\jR5ď rhsݘKq;!V a Éୈe3A #^A>+#HM#B]0%U!\{>{&hKׄ [;6To[SwBݥZJChLCx7̬wZ_$ž"xԓl̻u׹)bP :wJ>{h~!KJh6sÈ$i(يbY'᯽R5%K A\CDod"ęiJyK&gY|5N["Wض%mr)i ~n'hh=v;ar)dN8BNVv 4 L>~ᛐE+šH{|&4+-\Z>@ J4 2<O*:?ȴv;d x$I@$$ܳ*w>J >EbI mobDbۋ[dM 24kml Jwj fJpP0hx@zRcm}f}ykf!t\㱪S=C Hv1Okk6_0k.V8j}cEq@~˧{ ꟼt|e}V =:cM6N/hL 9"ş8|AD S` 8OVyjG-bYeEBA? &+C/}T7s#%<\~\GmLBXGz33;K~$XDzrɽ9oJ# #oSzAyRCdw} '+ჾ8'vTxv)A܃P"XFP ,Ŷ;Tw/ .kai;fni@=0|o^׹r:*`g `RV?X=R>\`ժb;b?`tn0{}ˠPLJ |K|QuYZr#izHq&#}SFm-9lEKbNQЛ(rܞQ!{OI/w/ ,ܨw lIݭwLi62- ?IP)TI#NT}ZB[3sV䮁y Po[T7%jihՒeӅӣx8z=[ eٌjo6Cj$!D_o;o.;iZƃ Բ;I)HnLe!;F)Q͛/β4vb,QCQ:]JOT=g,\X5!' M^K1Y8C(<arA`^$ܜUzIj/x ^ATf꞉켱SՊZ#+p@> ҋi$)%\~tw@F=?.!?OS2 9<$4ݏ\hD]H)B^ul>NbFRAc[@| yUbb{{j"{AE6a‘0x"܄g,A%H[hf~r(<9p@#*oۤpڎ(`xSg%z.YU_.R7X>ZüzV'Š_xJE>3N)_jS>)B9<)Qbh F!=@S2_$} QZ(֪<]M J8dX:Va}a^t[Ypg'ysۓ̃M]}Fk袿Cai5dǕ;-<7 n닋2Eqy)Xnui/ QWIe$Kc:Z E5nK> *:v;BkݺHQ * Hy %g~O21HJzE0JzM76R#Y.qd8Hς Tz#•bwMu~tL4<8UCAZKm?0HR&" S9ό̝qxQ u%_Jrڐz5<-X:ii4+2S " \ =Fm}W(t1ޯD湛0xo8֚qpCDjjiB <έ?jڱ{c |!;Jvgwrm=ىµ3!+g[@!fURmFT60gm<9@{B=)LAΧ 4 ^*:_%HR4{2;IlpXb*A\2&gw&bq~S zZ.*GL >״%{Lbz*ȚmŷOabC ZD78%F#^ҐA|Vwr[\EeʛbO8o2֭T\Kd-A^qo+:2?1~c 1{'rQN\;h0څ6qߎ$`ܿ_BR $&O_MT MZ@\(7UPmD\r "8zsR9ثP]3.v܂$qc :|NTX,pV*"$EyHvx> & 2ac0FSRϾ>u5lx*JfLeD Ի,X N9qjԹ?EPap۫`əM-qh )EK9A: j-UNJA H.Zk Y!,XYWHٴH8 p/}1L#ҫ ?\ǮR{| oUPwHJ^LԿ6kvN>3Yf'p^C\;)$uVg`*ϩo/_9C_ ut6avVAʳwd!W v7zS;1خ2 -@V#z?:o` ׊ki rQ#b>uluj$gfpJ?For+m}7 ?5 n S*oOMƐ\IOn_=m(O8FjӇeJ! D6iFiQnżܩ L&ⴙxYa14v7"5_fZ hl#]"U{g,jͯ$]Y kB0eCdeJW$V< Bv@3ֆEw͆`z:GЪ9,y)'0gr*R̩Mكm 70oK)*ǧeoS0T_$QdemX$]TlF( M^;}=s&CTcAI*,sSp~ixTҹCf0Ѵu}?ʝsiyC.,\ͷS"71ogw$%xU' 9! [:Cv:%:[bOwdǡ#A|,qRYe33*8>7CYMQSNQAQL?1<͗/Q cǥf@(zd7FLr:;l/ttH^wѿ O4Q`7h`a)J/ɼ:%q馜^i| 4qtQ4R?T &+d}C|]٩[Sx~zBҙͺ_5D.O\YIڼJ@+͘VA-WTzbIִQ07+.u&.ǿ^ޭuf8 sb<#Dv6g%/ޖ9 6N1ϐ@3š8]y*T6SQ{V?_o?`g1O2|Ew:f  MM#qs-}dI%G2/|T.ߧN-|Dҫ K, ς4} -ELwA+&H*FE4qBJi|xw_[2~Ä0;A-<@ 4n Z0땧cΞvr~^dX>sUef ƟzJ=V~Kl=kWk^o_'2lElӔ75'u`##c 1Vp\E|zI^ kַc<#dbϡL&Mo5wCwgt&tj\e3|QBBSKMW XלxbM{麌)|Q3w[yt!"ʣje] $&B$r8.R bӐ1239b~1Z73빤,+879 p ˬQ SF'Z$\+! 0JJ'=9ʢk#x[N^5J fMTSO(8nm[XcJLeŨ*u&E{| h[Iz<`kRbZmŹG~'f%Yg}~_RU>NY)qGiK;c a/j1z6nhl&gz]5*7Zsc ΟAiE (%mᢝ&6k#>2m 'oX}{=R>Bw@#-J4 G ڂ\;+ңzHI<_EA!U`vK`l(ԄZl)edB fRTUzѶΛ!p-rlKĶwH%*r`J'5Xz stΡP3#70v"w NpA"~La^ Nw PdwԱդKٖPXhwvB\*yk gydI܎)x9mԳy-IU]``N]u?p^px܏)ŴT:EƹSj☾I1v]ldEq΂BuWah0ƬviV|%dEa2̘fn5'8)>̽*ůu ->v#ȞƂ]b:0 m5N7:n,Y ~>5eQPᰜyݚ܂g~Ǣew`.!k*֎mom{cjgd2G1L} I{q9̪,UͲv^j at7=fftD}e( <NӴo?REq%ԳqOwl*ud0Rf38t(9MZqUHeYwy7t C'|6aS'd]48 4et;d:$nN֨9Z_Bh wؑL5R䭃YxA>!dFgͯ{2wtrN%e~}i=cMr~`Lhk%^>ETTZ5F_V:GVJ4ܻOZ%\'}H;h=Lᰍ]b)ER_O؋]an.hApR(d4A HeE|*)Wb'唟;F:gZTF\wdS$ 8,W鷙d̪g]6I١K"H|䜘J*Ċj5=|Rӥ>M&|v `R~?\.) mH5prT8_b{3xQCBR3z"|(gW+ϕKLbAgz.~"@v/f a*~UX|2Fh` D'=S]WJ`:k儲,:hR}=|T pBw-o9P ( J񒿛< qgpM/mE 8yTtBBQYhfg3:w@iu'W)l\Xɣ 392.PN ~o@;p;fl@8$vM4tcբq6wR4xѐ;k.x4Yb$5vŌ"4`n,#gkYVk8' >15 (w Q ih&Y97IFKcP읉lawh#O4Ԕ1tUXܺDi÷K,!/uC]ȠHDgfgk`t`-ru+VsV^qJi&QOoo9urBߧ~pp˃j L~0aR{ 7ԑlr?n@WqR6=w2K$ da Q "ʓ;ݿLpZ@%2QI( [`WO "(4_ZXY) RE#$ݭdBk:SzSB+LMspLv[ыOQ>'?s5^2# Y&.i44g鷨Û|~!!` \[4ړ~2' bb{;q_E`پl}Aȹ:$ ؑ`ҋ&,lMaȶKfŜINe/<6neh^j0Dh${M6u$k.B1OG-컨e-OYh$'@lTްOZ9&R)vH{CGT`| _gE vnl ey !d^:+6YZ=ȣoB.u@˰/Cy]a%3ɩa|mZspny;dJiXߔ9l=u(2:ٖ⢛XfWl5jeHq0D$0j4}:[ ?/N`Cxm=f >N`ϱi JE ؔ)i=bwO:#޻r<)?9qI&;4&>i f+_JŊjWݣe7n Ou>s3`~QǩB?;eJ9{x1 I$SZZgl<ҠAk3z'i.5,B@q=np18rEb%6 |ԄO.n3NFKyC'oD~7mn]롪؇ 2GCz[~ Z=g~f\^eM:/@WyhI0*hFt֛J($)&ZuHCtV*CwMhx:ϋF"O6VO@Ҏvy_YQtt&r$A`pU3b&BG`awuha0.ք6J ,w>?*GQMcudQt^ |i(Q̛Y)&Zn!Y r"`rw6f-c$K1`  }2s[h("o7 +\z`'j FP?)ܱs/eЀxI6{lVʖT(V(ԅ(> GmbW-YOr]Gu\(۔"S4ŢD(7K/KL@,t1_w?O+{Aw1~5s,h\S4;m^yH5V5XI64R]vI%8qWDU[\` _zv͸ػ{ifu$&M7Kq Аrl^P3C/"o8چ)JWܠ`L0Y $nt?)+3XIf@ 5$ʘ>G_3X洫}YEpEr; \;xa[N Ȑ1j=փW}W=}S;'$)){wqvnvo!6̌gœ3:`yzdOtY ef"UaI߂ن)d}S(p qe۪ED&_6JEEsX㓘uRC$R V,˺O1&-D!~ Е }*#je'Lю2Ik_mbun6C0@;Gljr26ՙ>}!*v(MJ:&V|9!^tqM&K=cN/543S_qַ5f$_"(0u/R؟*L:3I(|pҶ JC9ճqobdh -WLO,ר;Hyc-4c<^nw Ji3fRv&.TAwO"ݺckUGg63 Ƹjt>@,F@ Ηu7,NgNmXG_b 'Y?铎Uq! n 2spީxW˱фp2@ hf9˽2LwI.[")$_3Qҧ:z=WQBw^5fE.(H4xI:ɜ$ #q8Q"f5hmá*VmmKd82}ENf]hZYmvz[C@J Z2tp{u<\B̦aĕe2Q1WuLc@*6. Ű?sD=a$|0)M%6?mULNwj ȴXfo:^Y/,{b E{ɹ-25}-"r^YhAºME_ISV.kq/jfVObRky|1FMm ЏHqT&h,]]a p8:(; P63[JoAF| @'Һ@0\_O~:)ÿ侉zBR"SßyyD/9&앁1R慼kv흴=}=b?cX&@FY?5` 48d^T?^[ U fpR|9 d]5& rsds2otlO P?:pAntm@*A@%ˌ( E 7gI}2rMafJ%lXN'+ J)3Â%Ѳgc!&:&bI=n P!'x˃f܉LPQ:-(ګj`TDr* `>3x5BGŹhhC i~n[[:ub@kʵ;#^ X֐nvKv])lЍS\Y7̮ t8-0 {nΡј*D ?Rn}")ps7onͪY;AL9-7ݽI_F&!;%|QW_g`}kZgPWv욎pݢ/cYdaqYhj܃pփHW&I1AAB-α;ߊkzoKZ:y%IlT U]f]i,XC0hf@""jS$ LqΩJ_ǠGM.D~>8bfG ɥk9gxeƒnJ%H.`k8mu\S+ QWe\fl=!ߓwponR=(~h^@nlZO>KM-3q+< G?r, yLRṣ5D 񳎷\j pdwJ1^2zsځwnar"54\dZ/4[1-sBLKƅZфdg>~ůe0-4pogR8s ] N|Bd\y"5(.ȋYќ2 A A<]%7c6O- ^`dE-*)CXfܣt8l +n@ !RyEFDs[ A<XoI\xOx|Ю}c0ЁC$׸۵8Gմ\t'D*t@yGqGuSD@_H K)|zuS;-bC+qw?߽| cUkmDgmHlmG$;Om_f;o"vU"5qIY<>Y-ԣ0|R] Σ}'ÈpC LqTP /"s>ȂY/1WHΠ=_ B.s꽳_Y<0Rk˜녮憐T"Fylyu@|);2Eg-'\:Sl_EmgcRȰWsW*:n~z#B~jbFErPm1ܰ ,@.#ڂ` ec G*oJng#}is1I-1ʏY$ [%"xtnR8\8k k2tY7WX5F)Ih#DIa 7_#LL9n.1tR!D2奴7ֻ!(co51 l)_yYzKq5bNA -JxDr G3n9H"FwE2cGIs:f璑?黴INqe %)X}H#Ċ'BVݦcoW7sS^F,*|/O^ڳY!ϸkjnS{8'f2)P2ډp gDM՞B2h[T'` ߹ \6ffO}9):|ݣWp"0!dyogٖ5#nו )z jC P+1gt3ΐvM|$SCgl Yi1/քb=/|uPp+EfkanYWg3{yeLr)9Wȗ5i#1Oy@ *nhgEBLǪgg|,qJҷ;ެzz_s+E-`i6znq]k8teJFC6#:3oԋK 4kRqȔ7,?^%>u5{$1Dwӊ3a=j(R-ء} m3DW=4F_s9(g2gSBj=,/%*K <^a3-,p D>s؅⩿`Z}_L}pYW'cRM |!X['G%WRo ߢ+ 51 SXUvMé%,AxKGs%Zq̆D|(|T^_,AA̚T{]H.8;#؋Mҝ04ښ)KCX[ec~r54{ii "x .ZVba S;]mf.drRH 4V#S%{$8Nlx%")l5*!OpM. 4 !ߋGqWe/>ŗt~yJASC!WP<~[۔xN]d!3ų ~6X ~PR$Q_pϔʂJQDm+^ZǿZe,,сUft0mxKs38%=Iw}\{Lm5N%8L(Ys86 u˾lV)t+yKOG-~bTYzYr d@X:d!Fܓ_Ywp|6@"ĕ"){͠`ǽR?+)"=Plp3<5xSb ԅ.ڨ,a1@5|A;7g)N)Rr951-SܡA?'6 #s'Y#K'|Q2f!|k:9bM,cn25(։0bNu5*v9=oZTEL{ƀsE#xGXϒXhͨkN|:a p9I 5wGΨ`H dpy\Ԩ`+%̌'֤0j_gĮɞvNw햖3] c+#<S,GیsA᠔_:ke1<(Xy!+q^O_SN^MԚQ8ܺv~}a|#6&Xe&ߩ_ ]Jϗ #z%!BwDuKi3^ឞ=j?bE槑C꧖6'hCg h%Bʄɷ+sTŠ̐p9_& $Xщ85Up%*M@;Uw0C8` tE);MFh5@V n]I5B* F;[5Dc+@I]1?3YA(MLy;9ziO2 0Ow]\ \6y)sDE]gSJn(f[|WGSH5$:yqfnP2#ЀO~XMFqe"d6!.;~Mvгac 'BsLSf\gK'V"|n'Ow|(U Hʀyi']ZA X00liӿ2ll9 @}qa^8>FԼ} ی#O&F?.5l3ۿ7uPMn ^ IT]#6 .X0LYhIT^!VŌFNLVTNkfմ&mQj&6m"4.09r.āOZ>{G$*7tݥ=of{Ko|Fz͞nhv&!ss%{ F>yDԘbI @"s,`YYxO>7F$gVkr%#^O `կswSk>k8ctb4-2eE@0k A-C_]Zɖa7f,WR\Z}A[I~L"6 а|dU/,ICZdL0g3 #S!=iI:/2(5IFrz0ƝY Bm.y/`J`wgszQ{V1aGg&xPH=bgLr:q+ٛb>#SS%퇠a+(0~ig,t÷ :+_:Z7O?f?%ė"ל}vLHAxiƷD8z2M:sǝR~R /psliʙ:Է_* οVvS\l/JG22N|61q6ty!eѾe'#˖qو¯r&s􈙜ڻH>ْhW)"i^\ڪ.oZbS1}@ɸ9":dlGa ș^g1 *-OvJYQ/I2Z:zǑ `0,>'fg4cam=71e}fu3@ /i&aU% efizlBzGފPj=RaT. X*G,{j:;5%ygD+bS.WՏ:Y_|0pol9>y3מ!z͘ b}kQT­ wĺS-jkB`Cp5s1ֽR|&=Alf`\{#3H7q$o[RJ)SK-qGѲx G|sg]"!.5JPoA^zzo:6:}|{sk"ꝻU-'k vLU_w#Y`"yPqL|#]W'm1w]cG?aAdHR]mO>c<˲ҟ< ; ޮފ@9Gox E.ڱ;m=u{F5UZ!84J%gt'M$c (<~(pcKv_),hht-sta' 0{n+J+&]BE";Ӑ׬V pΪ>:N\bȂ)B{RlrCi KvP15+3F@'x/B(8C>ݽS}5hn=>:q:'.h7 =Z70n'Ukf7P+,:x;ɥSƥNA?ș0| 0PS74*͍ƖAzVh\ZXxk[|/sk7H$FJǴ8iYw}ɭ/hR*u` O)F* 0$X?p^& 0iPkK+/X<6 [&iIXF˾ h$hzɐ8i<0 Y2JBU[kt 9Sqs0-P,"i;kt#y+dT߃ ]xܣ_]P2ähOoz*jE9Br>s'"LkD1L 9Ѵz*9m{ʝtF,-ĬzW?fVbV XD܏c`W 7Y]IG=fR 25їLt,=`W&ѐS.h/1' K:pd!c\kBbVlmFF ҩNl\q\ DHő1Cjo2Zͱfg^&Y }K5,>D\cdpM#K%Όj[M?ҷ:$/TӊVtkZMIniSc$Fbfm!Ti L~nVSZrFd&F_$wף`B.$xވ{ִf!\ڎ NRee\;mV ?vd\X0_ l_+oYN*Tuͱ䞼.X4!熍&JWsn]QA AT TI{)ζNl7h76?nC#Ǫ( NBanfalq~Reb?oKt(;܏v0рPu+ qc<Lu!E? (/g"VyPsq,ng,ZDXp3#;Z7-tD ܌@J~a&盆FS 6Tۨ =t+fq+!p)Җo_ȖmC.hӖڼ(n,9Ks۪I}W+$ oE1ς-h?V K0hdőe2sP5aXk_,F2 $/S,%I>K7[Q4'3ٴ-RtZ;p(UzߍHxku]:b ᮥ~#򄓂8VcslRTq¼0Ol:3r1GRZ++_WgɂG9$Kb1x,7q t{ĭGt,&64UH9:<=0?vNVAG HO l%E'Gl^KՓmB3~mˍ\ yDζ,>"BY%NuU렒:W'e6aQޥ'lT:i?_hf'&VH*3jq>GkˇҰÊFQlޯ[z0.c|3Ǩ2A% @NYt' ۝?N~{Vo4e#i#injSU2!"!yE*E LLs /Bgc/r H`W\f V43@OGhHf-r 譡@bD( v2!L|zeˉRKpI@B9ZWͭ,\8eN2i kWFKn %o@HI۾Ӂa| P[fq6JN+϶$Ja\DwZ)̘~Li-yXFx?HVb_yQ8 Aj:n×ʺxc_DRM94<)ɫ1]/R^MCЉHӥV6Eٙ"Kjt!֦=lVM76|0Z1 1/8(h0K'YkjO<]F;T+)|)7HfaDWʄ̝XJu\#> : 0x'd+)]E-,iB%WJ\{are~ sn&*Ҧ6RQOF:7ø uS4!C叩mK7^[30@ 1(>la d(aryϤ¸'Td8W [ A'/y=XF< A]V(v/ZD5VW;4M7]Ɍ?L#R͇S#/JՊ:lp;M8c}3ݞL< }hNOEc! 1Fg2I2JaF?PV6 Ҍbr_ }Q#\ޮ;qjo"UġkvIeG_\tGwϴAn{=I)ET\,=7ܡxb TC;yW*i!t->:i;u v-a1A}_HG75t1,N;-z痥lǪ'xUx,\I{\2լR:EEdkvf\p>!V݋ih;k0kYO("!8`5d-858rƉ0瘿IU[SxdkԒY̳ R$8yֵ^_z<g Q>Žژ9hbHVJ8T4x^3O )42!{߽#WMX^Wl6_L*s(e SP˳z` *\V{Z/p'`J[ȽJ/-s6@AǥyaMu=ǹ wC ws`_$Xr4Ww g%GFjiãn񒶳Ru]5p `<a]~||!8\u w*\i<-(RV@AmdB_|;1AODNiwHI {׼)܆f+2JdE|4ԎWVOy!Rd mEq0Y@ҁܨ(=R- [_S| JԮƭ͌'fAġ(tde4O iЪc28}sݞiaxLؽFnf 8/W/CϛcV*CL_>dO[w[ s&-kI Z,;GL+1W. 2~mrtKP'Ԋπ=BCg3ӹ A]ԀO6NgVfa P3=S~O:4%BM}?Ì2XM'݇`я%>JxSwV)"wB,/5D-b-5}NGd}C,<s~̇z\\Ot8DTHWxk? |Lz0Do\Ƚ_K_=Sn/q٨T8$SiSׇeD t(PI.^#{B\qG?M_\Q  EYSEGb'cP*hF#w`({ N]T1H3IyC/vx0w:v9Nfof5oK?QHd y<>{ dw~=SI_l[şsle~O(-`念T. 87fgRG?svKlЬ*2oP{*tICX'  H_C!$TrYOrEOc쾻}|Dv;;; lGUzp=\Qy (nsubHF|9Wu:)QtC'mx}_!H,%\gKL<-MV8]Sd:lD+ <ީiƊ#C"zɦh& `-1Va7ʾrf `89w9%qc/vmGu&_kWGqNJ`Qg玈*YAMW ֺ܈ o,X[I upz%ڣk26:/~NjLMkS4@͸_Nt9^;}y[mjM@G[IPȄ@TW5qӵʿ.P\K%%}CVSI|3DߴthkMr"vy ¢]DU+ BsVøp+hŁf |oggXRT阓jFSsLG>M ^- N16GTss~uy5!=m=^rdS^IKP^A*opT,2*S~aD&H&[B zBU8?xnQ;bd#[HDhd?OqK3k*e "P1ąJF GEA7V:Tܸ_v.ZQ7 *EjK).|^_,+&f0z[י)8":AbiAX GrD?!yqPmN;Sjh&Mm r1zNXF3p"`Gv.Ȫmv_(%0 <@laj5 nkNk $XL|a0y+c6.aB/$]1EPy6oB> BXWr֟3Qs?qšdVe GLKo6Xh=ܵ´1jC'ԙ.n!h.IY`9t5'$S]L|{Y* _h„G|M#:Ovδ[]󁢯 pyzҼFde9]΍T*u:{X!ӣ'{kc?ڽvlT TpP7[Q:^0uPôٌtwtK4PYˌXk"7NJl( ߴ\A=RJc0QvPoj{Z5\G:2FL&BCӴ:'U׳ cN ֺԇ{FRJ-LS53Vq,q J6_f~RDՅ<-ؐǭڙ{jv.KD[l(R iP%H$eU@b/7yu]*lU?1Q1'7yOQ]kL c\aEҐa6nB'cl1fӈx"!Yg"J("B/P%hˤ "Rx2f̖Q>U _A>ųr_Ok%^.8qap>ywj6GzjA9r4+@!8n g( /ZN`Xr7C-17wEәe?JL[BDvnخ.RV͘'KAik-"2dD=1~,lg Ntd#CUULP$0Rgvz-Z(1O֤fd"So;jl0F0FWy YF^\) 'r8EލH7UQ_|(Xؗ;Xلz/`%S'O~Mgj4rҡBajuW,(-"Key\m'(5ٕup\lˢ\+Fmd\$~"R= nzTz 1,^@Ր}u/^=ȓ_Q|܍Bz7]4f0ݨe þw"GY Nhc+dQd4Ě$b<>7 >bWMQE?,moVC3+LɛZ2"`җ/z Dm_#W_cEDw(kL2- `l,/iJ:Fv9fO5@ȍD`wlAfN]6/\jvyҶsϙ7/"P'PFNr+R>N}r+^Mc+hKpFM`J[]wKNFHbPg`KplBT2üF7W5"waS\T~3Z8ЯS#>F 6írRS=NnryyTy ,Eb"j"ȁtp7spᗖ/Mf\s,֮e5IF؊̎0|pF)~}ߩ!U5_#Ekm`Ԁ8ϊzY23,*9>Vr}GSu%B[}{GQ9#@38bl݈[%VxR&Xn;6eSɼ:_aXzpm"GDhS8СܝI3:q'jNtD }0Yi]{BPJ y^٩_|dmPcI{'{Q@OiXC]s &v ?_p.H5Df09zHD/|jg)%9mAlD6[C)1d3̬u(c E${! _*Bܝ_TV/8f IRB~chz\5m[CD [2.*])a^fJOx(|ArAܟ-Uɘg7`z{Yo#Hʙiř%F0nEaE1vl1,DBn(~w^(r\pJRxa";ݲ o;8ۑWY,5pzD D9b8(G4 YnTh-4Yr`E0nӖRGF\\mu~5znŘWeEVY=ZMuJ \&a/ӏ}vb/zu8#jEyz^8p2w Ɗ%HAމ)MTHl̍C}Y)b3e`cs:OCɩڸ,& ƅtaMSb@E]GgpSd:A-NI$~(o1]?d] JBц!~\Nq-wyxio4o,(``@7Di"$)a;7 Ծ䱰^7KqAI4 ZMz# ?ń 3_lF[]T˓-c˕uĔ\ț7Nq놐CE)v~=IARD1N`ՋwS/bjjDw:wUjZilOY=q[pA[Z&jd[S*-+зeQaU 0ٓ]fmzRËG/Z5vϙidF:>- oJ~37jtoP(\2WRv$NY;(_g b})8<A4(SnXo*5_M׊`X帆zD, ?26׍DIbP.6 kc036Ű >񫂣 `͗tԏhf-mZ$@&q0/ʲҵxn]8M"rXõ{uؐUa&0[8M?8Y~)"_̛#z?="<9ɎsDq5|X8AUw,5vRğVgr\PUZAX`sR=*"3s.ZMQwyTbФ g5c8z3JN R#? lcHk)4 słs΁}|>o랇grʀqNDah9]tqONWz=J8H@mD * 4*ɩ_ ɑ Zg5+-!;wn8<^؟iԍ'K Zӷ5.WJpm f :Wa7cn 0U|^ 4-igc|Qv} [ب<1xp2PgbؾPc:Vy@K<YӳP@^R[o\ME_avU V x<8?SXk~[@ p.^+-aC_65 Vf`7QdIG,؏x˘HKA [ !X4C5 h8yԳ4C)cpecNpY is"I3mrOZj`ѴV7]J=`6|TV#t'l,;gU"ޔ.9#"Qpni d#;ᴴ3)*/خbj0f;iRޏjBQ`ws;]|<<#܊~esOf%X.':7'M{8? 9oLoFpW|fح ) PIsRa bCmW1/QV%MtZ;FKNGϲ\'0,x[dE!@4%G 7|oN_UirYC,J~o.BEo}.ĉf%_Gٳ dɉ񅝡dɠ?EblT+,rr &k ^ Upxij=f\}yC`͑v] S=\Z^[9 jx91΅q.V%ϿvrGP=,DC6쉟Z2ŰfWI6  ȘB$vtqalp3pƹ=zK eј{F#(\4! k64~Dn 74G۲Roc<8 qB9vSWZ"jv,<\ͪP &Jh ~K$-ědkoH?ڠ<9X*‹zM; ^yEe莶 v-rZ\A@L 6F*:^6g xÔi!6^|}p޲|,vy|7^ګ*P/nN0C69yidG3>D pqg.vq&*G}De1>5\Q8 e^(NQ}GN\:$)@"KϣPiKXmViR {iEnO_&I V /MR V)feD* =tc~_N N.Nrd ᭎#%lq0Z% `m%~ܒ C0dUPHPTJS R4U喂0U*ןΏc/8מ"_C6R8$7k. B7jhdՠ=:f[vf$Qy[U2'o[j`O {l A)uo䛙2mb-FNtnkNߐ+458_;O |tSEfý9_0l z3 o;XD G#1?,sF)3݂gvaoK%\GaӬK˫niz׍Zy4# y.z/8SΫԹ ϶ĮS_oc^Eƾ FdA[VԲEw朰oPk ZIF6Alcx2l1Ĉ/q*2lQ3ne70,D;\۹AF x-!!117$𰤿Ae*m;v?ͭP$/7-勲-Ϧ弛%p;X=̬~*'~u0.&("j!660.x;ZG%Lo3 ) }+&I2<SHKWtpNt v06Jw{7'h?6ʪ0 UfB&)r3w_`0i%. ts#X]vs9hz?+: 4ntFv8Q~+o=pcN)I^bqN{C|+ YraipIXdckxHZ*إ"wVfOZ.dQ"?O?DH(}=h踮;r@ 2[ߛm_Zݷ^[$Ij'Vخ,$\iG[` wK]Ta3M~磐^1#Y+ L15F,!2crhCgU *Lמg,m奊jUV$mg=;T5_Fr9Zѭ8U+ M^5P$~eam9VP& h% M1%\fHզΣ0{ D|F;鱈Q) Is_ZU >0mCɒRɅw W6(Ɗ_ YLjQ61#ѮV*B┃k]Rس s,Zō SheɦmD,նn-ߩVVόW$t;>Q#wP;nua-ՉU(`֏fѮˌG4Yd ^I RS83C-?bƜdp F^TZ}&Hx*\8ॴM 2{l We=ؙZ9bN?o*/{Ay- yϯ݈y(Ob=ځ[)0OXhO_u'\@ ䷲bb@r&3gMffYu#㔅JNrU8.lWc>X"r, u&in { h8&3mM2+;ysp6T(;Кr&59꫕980ЖtXY+5$+HH"88Cr|;1=1۠mU`~֦c!2?0۞nA ͞GA=EmnJu0X'&o w>gr _1`R̫4~bUkqRQVڏ8,r{ rGLv%,N8Љ@3~Fc;#4ph&y-ʘ'LwݖcRZn%`Zʙ?'O+n#D8SjL#-p[ӋQH# qquCDSMv.Jw+|զ3ik\–)t 0P̡; SV/+7}zX-'FGĥJl g4*`b;=p7x knl2~@åsH@-MQ"?=[}(Qڗ%௸}ql>Eso@, <OX^D`Ln/dSGvUcU<8.NH?빞~ӛm Bf6h Zb3S(lrY{3ڕũr/?ޒw~gjK(3-Y kxe>L@Tن!HS(%d#>V$2^”vm7jNHj^!}=7J俘L~[,Sg*cDE9q/N)O@7sac$a~A9=I e,^jU!fmكrRQ3d2qXm1G˝{xq]~L 3-y{)0ɓs4_xzWJ_IݍzǐB޷]:Tdp@BF8:#t_)OmqVq.蘱ä8t6 V<|+0hSe[.i=/^?~$zbZ2cOu]EukXJ2,ar=HL5(d 'f\ rY>b~PSy +xY \Ѻ L=ӊN.Y坨̳2A[&}>⋯v^ǙqYS&R1JU+l4odwo-X Y>i{j}Vbz&:A|iaIdK KXvD%-6}1ļFW .(%?ߢ򿽨 q@~ t 7B̼\eo3E+aeHHד7KO }~uӳ _WZ 7$F >EUVТx,7sHOU=*E(V%R+^V/1XdItVUB-+tzyO|5t3|{a{c SgMQyKr%0>6VRd9kJ?yI n&א=6jcAQbKڭnA N.:SEX 0AxL3Pնt~9 XWe6AE|&):@R tHq-;8}3yT%"2pSpX:5" .N&ɰ$ŀؼD,g#=A%8 3A[B hwOR9]K_C"BLc UoM^)B2;.fLgD黵$ƿ9g̢o A# N»0Xrl*fɉ(:Zi*254* b{.;ۼѢ; ޻B^Hm-g 8 :*HFteRez*ΓzNl/r.#O*B U2={k{Bl`}iwC(޷ !'Y _ ?@U4nhgaSȬ2!=݁ʜ<:$&t{y y' jFqXg/q~F$we1u ,҈5{ɭ^\F`k LՒ6ca]g֛{قxZpHZ{o_޺׭͊MwbǂKr:%!.{:7PjD@o>\Ɩh1Po}vڶ}F/3nݓ1ma\ǦOSCo&Uw}Б~62{Ct* H'GZ[o!qfkͳpajY_vۥ< lQvv~5u~\ֺsEO|簫b uAv@E?~QWi<:7Xz- XDV |`A[D:6}([w߾J 7܊1~K;i:YJ0ʚS#0!6C[d^;_Y /9)$mې'Q[ܫ"}'`"R+B]3ڕ'h.\|tSDۤ)QA8GXl :RP-Frqmw~\1Ā+ت~{ة,m w6ӝc_#1 3E?1)\]jdsAC3݋x/AUnw RL`cDj7I5•:pqg=Pr>ް3WK&v'ܳMX}I˽]%˧\dt*tTW%eٮ@HhA<3 /° Ҝ_C][-"4*'BG?PA4H2c'y1꫟)"gUP^sq٠߸+By&fߎ/s{Rm`k cXж+LI_+Ҩ:e*B4[Hwc;+>&2gĜʵ?9Wx2M< o @g 9+ S]Xw ޞR}PeP*d [ ꟨ ߣ T' =D"B[re#+ژ}x ߁VzS{-|>&✼F<! ٫|J`N9,Mi?g֫.Mem36tgKXɼVv2ՇK[+߫sݣ-AQ'R킃EjNcmwzH=az"u4ѐXJs>v%U$U:Op_;[Q۴ξa%h|^> 9)3 :},ɡu)T?s0YA2 7!Vm^#~߉)MaT+hEOO%/8ٻfT3IRш#:wBhTEC(Bo?ǚLgu*k]Mq/"T+j{(3{(|/WK;)֠0.1CƯ,%,) '|<0ѭG"F)h Dv:!WUǿ=#:N@KŗZ8؈3AA隀ZbxKV2n$B9Dcy1i ^jRQɻ6*<r t̑qi5t90k@J"G{NQx{4raKet6jz:mDjSd84= ޻hq GS [_(SvG+:ܮ]%|k;lS&HLM! 6gN\oRx#߃9/28 C[z.ԏR.nzlF7k`'i4ȶɤ]i W]m)(ҘPpD8xbh؂v.w VPvNڼ}9NxI-G|eloP0o8SKv}Ffgit!sa a-Y3C&(/ V=s7TGpp5Ղ1c!?{kW't&dDf5N~} yvS O7׎sNG'^ϟ.|1~RR-΍w5k0rD6|l*cӬW;/{c`cum|4#goL8V ynq,Umh:|kdP|w#]oK仿$+T!ib ]S\qlJG7X۰qJ j4."Uު _QMEH?2\,f'8z̓'mITL A!f)ʴ ,^x_~8)9e?nu`uEXưcڊ;gAoV'=!.!# pߌ+٧=H `O^[haX_l>ua ` )(&ۢ8x0x٢'Pu4Ex &qIa,NOZo%Gi,Cٷ`g:a&-;eUep#=ytqjhNe`܏i;5Ӯ\>ت*ҿ [x*̠L!ݬԍ gqpU"]4uOqk;88ʤ<Ұޚj݀w/\ɖyea䚱JӢYs; H.#+ڕg^,n[@J=G@+:y'@qGRR,sP5уc&\^!^zVWVMLm-OvF\yDa>&Ƌŕ:,K4׭v $?%=ǽsĻz5PgL~jYK& igcqdd ;§6%UQwr2TPkCj}+u 5d"5)ư7 LI0@Hx~ 9ێlGI5]Z 9pk;, bcnxԛx}z*% woRAduG+p>$'.{kי%<6LYm 7MRg 3FpF"HFcJ\o(So|)ܺ)ӭbꚅp4~ـMciU`}lp n!.6*ndXԕ{\|uC}x%TzB@8&w$ꎼeq6wўH[7d r3:4X=9ԽM@U>+j)Z+aKy= \F<D,?>-?_PNojB@&JT*:T_U.g R+߼ޓcrS{?lZZzJ-zVՐ-Hv(xVʅEt2VpJ :o8B#{(DjI+J.b_cy?Ŵ~skXෆ4qVDn}%qW*͝ z_SǤC}k4ْSIzouI"@(klg,Rԉw/(by:k3}Z}n']46-ϊY 0k4qU@*N_vⲣ+ ޢa6D ]f^ ";h1w A'm@aOnr~] 7Miոq<$njXSK{W([:'M{Cڜg]CeSϷR 6jմ+F4=y T8K?+|,ȔA:_e[Qj9W"s;!a% Lmk&oXLfIr3oIȔfupIӦXyi^e9X%ARH06GB9|kMIh vp* @PRl]ưaϯu 5pN1]}8fn8 2\õ:Oȃk'3 Sˢ\F#ޅB&XЯMR[' -";Y+mE9 ;~_ ȁiT%g v0eSz{mu+߳i취 &QO:zN{9g:{P-|lM}j׆G]Hw>&#+ӧ<_8Ҧ/j$ޝ~? w7Z4.u2:tY# dU,[',J-Dl2ӵyE/朕QHX]CV!1nlr| i p] g`lcݭnDZi@$XBA;& s]ME5SuHti\^ԥTUZOAH %N}O Y(xх"R|:* +eSΗf`DpW9"XpGJWW@`ȑ+j3gCzymlm&/(X`ݸD]3"_I;x<LjY8gV'K9̕v{cqvAVh},DDwlyM u?C?mB1sw!ađ8_D`MkwedXͷS6eXJHLlL}^S.&zVo$a5YO=o}u75T鞙Uz $#4!ቀtC݄@>`AٴAV3bBlRP"#wȲ6j\qtEҘpFZ\*DX?ۭ!Ht.*+wV<," \BjJTaY0P,{@t IF!lV6OG(pyxxd[G\ yPrBPqqh3BG*@۬~z<bîQYֱSOYno8ƊѤ/d7~2WمܿIk:DFXҀy;~jWEE{#^ܸ,^`8c dp uA1Y[)E"~'S VJv I|Fm)ضYT[P5Hfjr5sgIv }ѭ*'6Cl@> ėZ!'`[tV״aI,|pqVB ]o#L;L G5?koR2Ziaf1q$|T .D\q ƋR $yt6Gks<}˛H]L.NIvn/wAPk٩cg?%5_*_/],?LLҦsB]QSq6~0_W yCV4~ D@-(0w1Ü;w_p{Fdw{ݪHp41vwZ+-FA#6}am8?)ӽeaQMS| a$>;I 0zP-;+TQL7O͡Hl"ϖA"ag)pG8g_b:asp.〵ڪ:)=nPvez(!Z>0r0Kkxfb W\almˊগ\]14]U|pA%9RˉdPPk|/V ҏ8y7L|#e0m65;5/T 5gH5y#W 7Ӂ7 +D;b$SL% ) Sq}MZ8Cm, -9#Q1hYUnDhc:e*'j-.̇04"!1%o3<ߘ|WqhIIy |s>xIQNN I7l/+Ij)`~L[WN=[cJԾ1 7&l+a12wq'3$9mѣ=j9V"y%pS~N{1BAT+ںZq aNP1s{Nja-%}S.0Odᮉ%"x)tRPuX$N\QkVJ;a"a{x:UY> juRF0c1seU 2 htte-]OXzhdDl+d΃T@b^N6ͷD\hD?ǫY>|^;&\ 0I_&HB[p㳢_dG%]"^u[ç3Mԫ{n04Ɛaӆ!|)>)3#k~SgH#a}c|쓶s.ܢfO| k|Rkn7҇]WM?&_@1{FDq7,2ҮrғEYKYUࡊKTƝAÒ_->)נ$xCl E 5/OE~ֿ_%=6b Xs*5ׄ9uǰZXy8a>|^Pi(|C8>{Ke-n99%+# Y,Hl FR]gbqRijo.=)u;] =\ݕ-^Vdss;5U3.1 &_(PN^6)G}z'#3!t!?LFM1rjry'6m뢥*@Umj( ݅ov<魀 1d;߇;A.+@DG9ۆ3h|Sف`Xtyȯ M _~gQ:kTXHR*jV:"HVU W~%ij@ht: \N陭{MCn1&j|p ^J{wInf/̡Զ?A0}#mhupӀ"e&@wIQ4n2shlN#'-rđ9X>Wk/c;1v֠sTQ}O, wݣe.w;Pf͈/ߵ1H z ǴS4.+Rz`~Qw|C@.{HwnXBj`#32hzy?v#-\ 7"yhh[B zsdpFJa fTS\7ja>Xۡ~g0%T$| !9Zr&JuHWmWRD>b:!ʬU{Y<;e]*yV (%NI&sdҧT""JS jku|f(O>5S@[ptiKIO7("}l]C EoP <9: \7q Ray3@^ X:SaxCUDzHqcHcNЅ'E9yʦ ,Դ:ONCriN}f6=z5Qn.'"nI*}7~,pw}8V(AѵI6x2PsB, hT\?3c\^  wοjmvzԷ/}z6f ; ,nHt-us%wPye9,#^)Be`ژ+4> HpH[nXe}_tĕpQm½Fvg 5g?@ kD0d ]s#Aߨ}2hh~sg`:=T$ MlEYHjj%At}is:ZB<ʱTe\g,Qݩ3 Y"܅j#tqs&QNdv(a fxz p<>x"<0&崶ÁSdʧ ޡ3)Ε}фL##ͅY&/H?C9j38:"k$ى3X-Tohⅅƃ&ߓ ߆%d_AW:)W`R'\ '9[HE?]OOY^S=/Ռ4Qk&^ga?qc/>ˆ݇+%6(%(ճw+_iU,r&+gAUKF]fw<cx1ޝ~x/գ]ӨFNDc$SǞ s&h+.a7"%Vb=Py>9J$&>n<+I9R?#T1Qc#_S{G+LY\10 8)R6Y{RVONv\) jU@٤w{+iBE@Gƫ2XCLb n݌ꏙ[28C/: :P|N*V7VjfWgRP]4:(dFxF/`Jqr/l*1k}hP:d>? U<#CuضSPb[.Uπ~Q ʱlgY9΍-YDkm({KrfBoi?~{w/0E!gIr(C)`q[NEcm%  Wj2<'WBꈎA m&ʖ$ܙXڈE|ȍ\yZRz! KE=U펴ʎt=Q J)FV*|{ٳDjd:L/}~?!kēF"|T6SrS4ͧGϓ s8ZUC~_:; }(J50eR#:H-׶0\Jb:T7fizj0r_= =]B_u܉Ă#WoHEj,vɑq`,I{<%Pk#USQne>Ə=XjԉHJq,V>~< MRR%<(s{eǡ*_G*I+;9SX?K~=%,|Og /Egދټ8%aJV)` n7AclCP3\1#\%m{Y/lOXYw1 R?^ЃKl  ʯˏA IrC+Gzdu0㑈BDC.gWq; Y1w0f3)[cB xwlY,"/9H,B< Mhc\ו^}!Ln9ͅ0!\˿ Yhp4d0OKeeC7d<Օ<2^[@K&12Vg^#s3LP%5 Pt+qD~^♩ksd\1 Hh4D9T(wg]VMJ]95褋O@bN;fp0n"9~Q ِD4d>Q/<d<rzY'Vao Z-,@b]AvTB&`u}%HQ F]4\䄅(W/>)❋$WC̨x膔FwneY/@ ) ax~obZ^YfQ_7ЊH (RqsuB!PU57'&M3Sm$Ey.h;wK<ЯDǴ/U7 lTKS TCwNx1*DR΄.s6&hBjVڒ2zsW>sD2OV+1DwqA;{RSCP|Q@,Ew)Iu|)|뭸^ /@G#Vr82ڙzcLڀ PV q]-E@5ьj/h*/0nFK.GBC 3Vց J`MJ _+pC ~|Z4,8pFƊs候WFfvq>ƎڻGOI$kj@ v6&%1[6@,9 b1),vt.zy\-݆Dd ,+AP J&Sz/·J%u`p=jeE/ rFJcT)e.WٍjBŷgq!zGYv$FG)9¸A (xN߸*ޣ4*3Sç4RԸoBj73 f.gFҝEQ]M5L@|EȐ,ȸT:?82j;4MsⴏN}maKu"jbHoVD;*HL~L 7y: ntt\|]c Lz-" *'c1݇*!:rVMkjV;L!h7% &O}9V4`C4DP Yn+@nLu?c;!\eِt? mhi' ^/9{]eX+q*B}Ȟa7uG8*u\f\Ͽ{~`O!ҠErk?;SbwlQΤioHݓ lxpt?„eM&K,h*# v$$ogNIRpbOyPEeI}J  G- j?xWw P 4w$%V<,Ŷ"u5)I i~ut CEe'C; ZsjK,(?9rӈ'6Z~s#H+,Q4mS& !< On_ Z+RГv(r/4g!E)mnXv^:0:=KS' Z{ `,#iK NQ:\7BEaٶ֧y. YqId<7[ iV$2~8)r+@;=fD)fDeTďfnD=勺rl  %]B]y&BWo,f>i;4{ gulz!~Dcc(BOOWцp/\p#ha'*ЩJ$l7'$L8?CQն7r+{ ;kF<ڰ.=56nɎ?[`Jq-~ u&SK,V&*ItMx)7Úg* ȮPFc H\3 㣐G?(4axٞ8/wYPyZrTyZbP=/_ BȖR-z OA2:bND-J*_rw> W}Yi.LeE( ̙* u(Õ_ ? $LWKZ6?6>u8WzJ@)ً$@lǫMK noSdJ61w!q=WdO۬T]~nbQ]^24g8aab[H^mo QZ*XfjlLEi=.1Cdft%I(rN+uQi-$>E(*L|e C#}1CGD (aҰکCR+V׌wm' `X0\Yd6$HZQQPCB[`VFjLaW#fx9,@#m*gR D q6'K%eN 77"JP%Уl]5q.'9='!e؟1՟}1o[ ^1Twܩ&;j`S %hRznQUϏ iƭe԰YfBTW&A]_Uckv0ew#̌fH$TPPL'ԉBOws+f>uB* b;=OXܥakd҉":uD95j:Ž)@Bj6et/lQo|2mPP_d~AH -ʕDmu Alb5bZ^b ssiR3K *#V6Cz=D*r~@.ySRGNRNgWNMz@Kz\,̀=)tHQ\ ޢH} D?hl"4ܴH7mlX`vZȚ @tpгUT8v4p k}b>"SVn}uUۧmpDYC34Ȱb(ܜxtwjĪF3GOa"V{S ķ ۩@DC*EL|wºk`͉yYɠ+n}kF~}=/u)6ZP Š*=zVeGCM(?tJ*Ϋ̗WgVֿyB%֕0,AM"Y/xo뙴a[i n]1r _.V-<)M_9$>.v)%$h O{z=ŎQ^#uT*wMlyuFCgqB'4q ۾ +8PF ӕO QȂ"q`е՜>J^̻?[D jݐ|XPLX8ד}o0)O;QQ)?P0xqDA>w@rf="=V[r!ϛlY3 y?F򁳔O5hZ'V`eHO.ڧju!0}1Hf㚸i&e'RIyNfd4ö>o`e2]92UƸJC]! OHx#"<(!NJfZ9y4dXgCs`,Flv2`5wN|Ԙ[gw7t0ي̘t} ΑD-RS+OVtYiCtj׾?)%)[/ߍؿXe+=]6>V @s,Lx%o]2^(!|fݻ,51԰>Qܜq.?0d,Y^ ( X{zwwO#"|j#!(ZGgM]9$UR؉{t.6I 3ƿX@0KhpAя:=b)~IclkYH@NZGX$[N|qi#s'RrzǪ)Y!7^<?XuYLz ?}b8ms YU 6v42ME ne^`*8yRNgp]>+ x.|g m񆧒Sql!3$~%ާ߈}ޑq-fŴ'לg*=O!b:ۊet5mO]$ ~|fDVYܲ //ՙC8CJ: J2k1=.U:[jX#6bRG3rR6q-GEx2-?OyJYX†QE@ AoJJ_,HSԋ,skȨ"`p5OT0Hw,EW|N65v ',ț~ )àb){ݽ/:>>7Њ*1Cr]c?yA-_c'DR"Sz݄lU  XتչSM|ZBхܑ&5% ԜڍHtM5 uz\Ԡy'3J/9ћ~APos1Jlnsaɐ9}[s9GUv'eb|:oK9EK@!'\23lGppaH|LUi_]\! *} oү{2? !0Ս3z:94hȗ Y߿,=zZ626eh%Ai'ʸk nz_nZ-^WCQKBM{%doZz cةkO7<ȷXO6mk\mW e4+ĩNVcͼbxHJO+K%^uQ krs˪J.2h3IK9;i*bx( V Iv}7Ab򼜯 `)l𞖢 \/G\ =lh%B(˵3]uWJF)`gVpaʼnH{8,u+l9sv1 xs-aq-]12}C@KNzǚ9 "&#j޹W~h96(XҼ*./y#Xoִ]Ca 8U 52 UP?.u)z M:W,2vou9.`w{2=,b8K&~% afo%-H\$|24/*B)0(]v3˸'vY.gꎌM[@6Ӕ.ublo?0|Sf-PD!_'@J0{ dL'X7x#H́l펊ˆNOu-Węz fbCc8)f:}z/)0poNs<ҍ d6m'u85Sn*e?:3#z|]a՜$_68\~MK[7 ? GwyZ#J כ*Bw3L3 wM]]n}QzGCj^"x!le<;6%80/yW'[h$\d0zWXSI5۟`="ɑֹ}{Λ+!!yK>0gHK]jqQ6bOE[RMxИ- X4%5I 駶gLλ!50ړ:F@%$<:/7rBbdPHPPy A~s䈝P8N"`|OhB5~Er9}"]v: X\ÿwJC i3hkj QT5B$" ƶ^:=ԍ*cM0ЙhmPK@J e35jhdeՅ~ v{ 4 -v[EyꄊHgH6ՃlsBx XQXWR=/yg+a jޛx0?$L~l/ )^)5@AOмTxA0./Oʭ96ש :o[~-oym߹8t|A% sT-{XZ`X<)L2z;k%*vCQ,خ8҅:oiii.\f Y;S ɓr>Nh1obnMbEF޲gxGƓ@D җʧ!`Pc!]֛"a0֯5k ўS@fZZerd@nEip3D$jwz5MwQ nch49kk!=-u̘%X$!y7$t Lk#ø+,soަk.fx=ɸ#/n*+sAgpRQ}.0^Z-K`#U !"E,~D2vxRu̇=>+7p`H $yKE#pU12Jx@ґ| <;p (o!4.S†4S}! í?I1g}#>= ZS/=n_ : Y\:uN]?jrEBBp©+}˜ <%diWQ-e GP uĔ>NXA(Дgʻ5nN*|隦tW4`O-9 o!GbIif"h0Bȕ :n؁5;.AJ[GH%Psk! 厩q0k*I.*}0# ۇQ*i tr%(J$/Sg SX 8TBrz n3y9T`Q&|wcbyT;۔eVyc 8k_^SZskHrCoeҫ,gde~BqJ!J>T / 7[a) y6SHɼ0Db;pY-C ⯂6@o9X㔪5wrG[zzœ3CƟS|t_s+KŤ^~=j%Z[ld} Qɘ$4d_gjYV{Wf uw C{Ȼ#emK«pf}P^pNl~IA Xk"7:qF0dT&`K(n\c^pmh:86ן؂p;QSqC#/~0 8NIM^Sj(D1C;-A*V^&`w}KjU9 l]*앺Y*ץX#}UeEp ]sm3&81V\ᅂ-~ZNu; BvZ(Q~N)Av }4_2:Qx:J}=s~&fG o#/1&PwH [So{/h7cD)&PQlrm4 X[1 @f8'ꔐ;D9]t ؕf% 3 úp;#Iij_&d 6> yu@[xP§O'䲕 5׳,5W?5-"*ѹO95H&x \M^dPfV=.~bs:7,LD{kJR-f^:>Ʌ7߀6W+/ecXWa |Eqbbr -vQ>|Q++Mz OH+_91([N^%+yeR v#Kv6E8Z|1G*׷9B#{!4xbp5Wj?$57B9hdIHD bp,Å5BM亮Yl;Ҭ1/v/Kz0{ >{d>d$?>.0v4 3@ {oi\j0'sd~YH.Dŝ*#hHC+ +6ʁhf6 84I%a=O7i)mؚ,yuZ3Iɮy~g@.-E'ӮyX3]٥uܕSz^r%!%b"7&eϱ5! R\8@hHԋi?\2{v~ODŔUe d > h.P$m1,;nD _@Yja" { '!]-Fglge;Zְr<sC6øz߱+W Grcɒ8#d0yP#=qщ]㧑ji~qy+v (^Cxĵme="}z?/:Np!ml&zw4bG)_ u ͕z"cK$ݦN󘦞 _,tתgjWS~=7٪Gc !Z,‿Y%XI";N*h[K:xeԻqwe.Lˀ KJV$YM/?uYx5=]jr>l鲷4"4 -I *juP\Ѡ6](TD! ߒ&:@֮)+wϙID yia Y!67U,Hx.%Њpiٺ@}^ȭ2KzcN\tL3\JAAYk+IBAfO3' wIagw# -0(͂qբf!SI!܀FPa}TXH+ޠ9Nŏ s< HE=sw}sKߓ?Wh?&|pWgtͻ.ʑۢ&Iڊ9G^`J889Af+ʓcR>N Kj]yԢM(^ƈ)- $s&[A-nfg7v&rR5ɚJ^[Ҵ7NhWړV%ЖӁ1Xo<Ԍz(%MrUuj5O v]J&ȼA;Q:K&Ty>#0>Շ]P56 Ntu)v*N2O\{Q3nUWmX6}HD-vVګMRqזhJ%.M-P҆X߁ʒ%C1)B{R7~q*<:Z\U3P*WEáYQ{LQEYi\uK zpe6 Y(%GB5yVEh;s fLPtF2 &2+]o9c#( U Xt 6 Z,~ɡz9ͻۈh#$ c/>rFfi" 3٭b?"_F#G[ұ"$ B^*}p їnLvrr 5l=y㑇DLY:V RrϰEhP9$\bn2W{Lש^SۖnV>^~H|d]OlϷ&lo΃+ioAXNTD46Ҿ7ۦr׬ف7,2:>pr8o* F{uP\8IsTަ-׆ Hݧ91 bh kW@}~΄y_0ւNV8Aҹ4gxU&0>-pvq46Z0Dx hu""]hN$oS~ҋ0:WpRHEwҨ Pu\?ZkWaH SmVBə8I2eL) IgadP[G_\`1_Ը_ʀLD ~NW Zޱ]PPgy@#W9pF5p7[yʭVQtC %ד-$g(/Hօ CyRwiiHVhp?@zξᬔ[{^\L#2xPc5b1^;oCqAϧNT68*yPYtFe $$}U dU7AKclm;t8ryHxNa*Eɓ.ckn|Ա\BA|_Լ8#6Is,Gh.O#A¡"i.8.5h% ˁCnW˷o,q>Giqu/ߥ7q֐4"Fa6_!ݳs #\8G1r;&r`yx2J"\Ҷ̤L`4lN~))+T?J5a<5[e,ix ڭ|>냧$O 1i؁`^4Z(P gG0]%q ,Ζɹ3]>ӏ]dy'e/V|Ŭ mv`pK` 'uxT%,В^&Xg|Tm:.F1E0ޭ9Afo,:?ԈXMzd˟\&Y0W.u!as5W*Rե1rpwڢ( l]^}N\qrMs}~1 g* G|bRg肃QӨt;}KjopF&'xwd_5 Z52xs 趄9 BS|mz+U>M׌h0GmcSd+ =< sӪ35̢wU|% Rs~BtC0ʂCKkw4h1# 8o6sf 6̕׭^Ex]}O;,4DOh0 QT@%PVGEM7Q's𩭣hZ댄MW#3 -xuѧqŵ'ۣӆ֙.|zzC|a!u&JC}1n^r 7V @I$ԔĴqYv-xS)]̲ˉy a7X%P@+ ZMQH7+6 {#0ڥX~{jw("#k@g_=IvkNKtwӈ<*g-]-Qmԃ:)q}(Rxj~j匹lrTbR"@6Դ{? H қv6۲X,z/Y쳂#ˮQ7B&G)yJu9/=8~=;ȶ=Oko6pϝ| oz9oZ Z/S3wiygr4z>n(ў[ d0 |Mz<֎ ^U\zI :K^Q ^ 9j&#MXyA W?{H@ƒͩ "~ILhxn,(1+uS'3/,Lkjg߻2y {MV1$G:sFz_lL奔OuyW.xZyy:7liIu jU2H,qkADZ>bTlQ*ma~u nmI!) LAYw˸0sg6z9%MtSS QFV3pVpOծ\ wEP+B d)w]:3m$R(_=N;D`˧CYen #Z KZ@cj`Ƙ%6 &ܹäA,kdqqtdvAVAՍkX;$l$t 1p ʑq.DMJB_.xUz-8MaXBW "iH I:‡_[,\W+W#m]9OQWQ,AjO)juL\:ZU6aq(G-A>ԙ`c| :$bԑhE]k&͓# Q$Groָ>\ǐ!7gk;JG'0M@J.Bq_kmN2)؍#%W1Mn#vK7G]C7O< +'ۅF3SE\ъ`ɏK/-. Po]/!L|̜VR]&>7 aJ[ǫQm~:'/Kʱה(l=AQ^ "tov&qI:"'nRI,iY%r=ih)FKPr`zR2 -;\FMmD ӹ=PftΡRXޥ3Y.6}:l!A )GS l 5igkL# *5OQ⾕Ix?LKA}H0sfbg, ߢF@ge|SM7%Иs8}DǏP։_!Wz1mB=};#q޿‹*4 !AH Q3b3x~M jPYŦaZ0{~ن>10R.l(Ilm#'qR]/ڈHsQ_C$T~}ifvI*roJ̙+[hkM3tav=z2zٜbZH_R_E!!y!IwW*pC HCRnO 'їc2$.r=8>q#j^](vX_S'c|R+oC@® y!R'{_l&~`7{ G܏isa7paS;\\t@M`KLK nJ,3RgrJby0aOZ(o~=:vgq><_SB'#enűR\Lԫ <n\DX _(*R"{q[M f90Fqlۢ x si6Y&s'kc/K࠻tќ~@dݽ]UJ]%e}Kߜ̤(O:6J[,[I Mj-곴_,Ԏz٤{dx =!;֗Ox oMߓ&l`Σ߼\B N bu 0|rA(&g=Xy#+~:0e&C7N([cXm j-bA KݽZMNR\WVjЊ[#BͱY{>t՟W~ 0(xpfRZ_ uX1FReC>*<=ZD>[;@)8ʻxZaQor`Q m 3w0w#N[dudhN?睺]Z]A)ZP] 1qԵ[5"zuTl6D[Y$4Jb%euM&"R]R熴, ksVq.3M'7=b:vLcyAt> JDsPjPÔN9XH.[,HA8Dm-d.7>/ *nE : zQ ҀQyم-Q[<:.cCXP;(] " 풏QMs]+i5h`CxN5gvx.EzVG&)L_~ػơ | jF6T Ң^u1*-<ߛІPV!-\Eb{Jo60Ez>JNQWcSuӦ1D$B8 0zḙϋg wa^Q*-MH kFM@U+[h 9a(yGʾҋsO9}7n;(&A̧?9}/E#h<`A \ Pו,sDHǫQ.DnDG1웿G ܸ.9Ӻ/Fː^}ExYjh`m΃2VS*' vԜW8'UI?yz['#tD/؏zγ0=_w:7ZH⾇υ/;b8)H쩟t1.Ү:5H C ~wݷF?߹:qϮ­GɱkHB٭ho\iFk 0YV5򊊚T LS!NgWWD=)U0w¿B.{YSt̆/,#iId~a1mVj.'(ӯv ̺_1U]YagLx\qhu7uKm #3]l^^8}E%#-留u+I{k'4c&(*9lnRo ft;.N IڿI}/0 ܙ(n?u,}KRmOc\[o? )d5 ϼ@uD3Γ.7c&̻dqyFFjR;{$ì͘M^)Y3z]͘[(J+A6e=8Tֵg0\RnmpÊ"poo5u6ZGsxKeA{HMj)%imBg&}^[ 0xk;t''Mĵ Uؔ  x&.uxI€l(X&|2ϓuxxl08QPIu@2Y:0L/,G1Q2,cʬlDV5zT'}V{ \B ςց qPU+Hˣ]-#g>z8?LmCCP}D-Ff!W63T ]!5Zrb"FH{k &;m,c#I0v;"T /:mH 5V^f{0bfS2zK{@$ 鼜sG諆JLH W3#Z@s\2|Ku(\_#&Bblpq E(FHJ9O[HvNQF+)Zcz+/-nJ J&`Y2TIc'yZúƜ7ty[ $&>AJ81Cj t0j6A[W Xݰ|wL6V@-`60pHQID3z_ 0Ϥ |w}ֈA"(rIihC"VUO wG'/ KL`In?"qfM;I0V i(y @ep J0s$L0^)#B>4 B+ T b<Zz+ v;VRI2:ʮ@0XnxWKـ" O<9e 7t0Hfo|^u*EcżGu1f@?_\Vk7DL/Jֺup7GzM0sRkr'^@lG;զ% u2<ѵבt"Hne=\ʬYXYDcnUtv@ {=Yg&'Y6Oo2vS* 'xd DG:ՔU'r"n%*{L+4oub:ظ3Gr Jf\&".qkcT̻5MER$yw+IDdP4%BwʧUT'dG3I|%r.ҙj&O͜xGr.> pqXAұ U5Kge mQ ԰r5CN,sGbv3.X> hJim>4wlTXH:w:/qGS9rc-cv;aԫ" F_g#Fdf0}tCȦ Cq_Tt]jtxю$fceW_sGq{hp[!TR;PQ#8fs .҄O'/݊w6= $|ڪxf{.b lp7[:-bb ^M>Ʋ-ys.PFOHB2e:q50-)q/}@]L"O4U+44+ 5J%m-ɿcny4֮5f5\aM>{'B15-TZe GOw .WtA⌓2[vh`Z'|7@jn UׂZ#!.א 4P&c=qwQ?6S,=d˫ Zмa?®Mp)_H:Y۲W  ׾myӪ#T\%%k.})ӡq v|wɈ oKػ/A(.A[+ M>GH\i'0C52PìԳ ^"m| M-0_ \ggGtXbYS6T?6!QQ Fv|\% )MQX~]:흰sAiJ4yy#r&a}T P LPz/}q mmfp?p?'ݟWz #3 j}hѢ5흽J# E,Vt\6ХсYe9ϕ SMqV0C1Xia@dvKQ@2Ii r`u$^*&r(U_0ӻ$wi>tD]W2mO66~%Ek1P\ALkW:>|!umAi Q p{}06 mKxeS/J:jA8U\x~_ 8q. VA:ѐά,4хo9eSg D*+h)0 |y|lrsc<{ɡsYc3WU &p\¸"p&Pvl\t2V%Xd|lkL]I6 t_j4&2V|BʶOg,8N'&n'( Lm4,OQZs=yl;j,\!c"VFҺPqJ2$54|A$)-Af({րqg.J@!qV9G7]\ aP *K@9Hc+? $=9HfEm l+=d)1lP`\ß$zNJ`ʏGKj9?$B65k@ڋMĢBgG0Æ\߮B0rXhsVz hgbyV8K"9NJ(U vͥ3=e/2QK[W_6'`6r: ae+ ??oRY=mW;%ȅP Pm!8>-ؕ*rPhE?4uEX$zc՘jT)e'F,]p#U0ZfJvɱz׮m,pګdv2T ֌T]ls` }[/ê4yҖX>ǮBK|@,n# RYy?$7S厇_!aNeQjfp|I .t/@)L9bL 9V_360iɭb~BՖ]&1"]X sHS[QkC*K3Y0h1u!hg{va2k".*뻲0c52J3@u -sQc?lB%/q-iF2hEƉyEӢ k!g?A3CG4ɍOZݴ?1Ԛ6}e~[s{n@|*1;l db(dP*f}ځվ H6xv-M4Y^C @?UIDpu+LO:g{3a`\f$eJ׍I \M4OϵΒTmRA+~`R]u/B'JLӟN=(D /wBuǢEzϜ(#wQB. h~Ièת{^Fj2>Of4wbUj~j(FEy=JSړ`l2/x}،$P(d-{׹0o+y W*-7RlL}RjyF8~OǜEGnfOR/,C_`R%>KL$[ӆS`J ,4vܴ. dXjsL( dFu{+I-<^+{?P^>5R h@8v #4U#W@A"s됒]$v"Ph.pTV* J\?7[!I+ΤIb=եvbO.Ge_qy(5yN ZR_U4֬e}pmu?qX.z((JUe&qaT" j߸%m]ʪEW\<:|Rj_vPtWzARݯLWk!xvz_Й^z''V!7;@K哭iq-gu\ymKI/ Ÿ=cd=T1 _?H̶X#GUț'UxZnvBb"Qi @WSvr0ecصyOWbfnZU'5 1@,=v'koN߉pLp~h'ƢsP霚3 7xݜVň9Y, T\c|Y&@mdӪ.#g93 CdN.Qt߇Fs24[2ey"9+cy"umHm+"%S&XN2)ILۙA'ڵ\w}g1\}W)U5ٷonؓe\Ƒ|׏hl=Q''JХ%L-!`0tCW0zU.Aզ1QJu=dІD"]eXEa@ AaU׫7+uj{Hn#&͖ז_R\5?k 5,&D9xT;:!Ip,x,[kHEpHR;h!Q,VM1ai*zcFKƾ+g~+T2E<_&vEs$حBN}^>?UH4:gBDv2F[~)/<!{a}_[1{W{oJؼ|6LBEmDrVR.Zj @`+KfhrrnAF~z&/e8Bbpl^:; PߜQ`F Dyv?VjC~^u"86tEܘ:2ή7 2 L&]꿩X]@ ŞP]+~z&XL䵶ƦSZ:gqo:cs whϰ/w@R*%-}&kn)(DEЭ'pTt9~sțlK|ۙ/wȺ+z_=s7v:gQ JW,fM*Ǧs7bN,(qצRyՌVXLPtiyfUbLU >l%HN`ѤtÆKJ WKtP~ |a^A˓h.jiYR&=ml|7LĹƊwҁy-Cq9B4FM$A{!0am8x]UөT榀TcUQAsjh*93NEzF9ύlG&!s/1i]Ъy,Ayzqm^zCTvqp)WkMs9A+$fd!WLɀ2 4(*ek7~v$HU@ W(5]:Q'MQʽoS' Vgb X1G|x`Khi@}?;o_U.ep`gPie\ۦTt Ƹ ׂٛORl)F)b 8GD4{ Sc #xMJ RE.:E=>Q:g/T3iF5-+X~\+"!G\-,l5c,jEͣuu' F^R:f=צ IɄpOh C_'}bi(#䣛'Ȑ_Va Բ7@Fm97HOF迪:Vv$IHAarFpk*\AwM9੕kp0fџlF4BPU*l.qor+]mV0l(oCn- Q*Ih߯SbՑ qqij^a0ÌՌkEvtd77_@3Hz6aVK6S.EKi={G[ :}Ӭ;[L_=9uZ(:A^ 87.o~٠CG3RcaE+Q =tBjg!I憤gv|Ꮟ}Fsr41l 5KQ6]9jWl"p9|I^1xW!gGY,|QUtOy[8<7B\bb>r(lR$9h؟r\%uDF %@d /7|lH')GkP˞Dǽ踰S Mej<6ps(Az 0>I4vUmmbqRcA 5gs{C8' 톔& }fͻ'Õqƙ{(0S>wܴDm($hq9DcgD:6ڭT*'ywJ n>dtqxA^I8 }Z[)HKs d V=zoicv9ƶ(lQKaD6UpKQP LrOYST{Ӣ9RZ[w1+~cb-Ysp)g]bO7SQeAFϪgL;QCN@p orA16o;ac(dnGのTIm9~_){wCr(^wrye;I$JWfH+x,CX_I+O[6snM2rɊQcn]gYclWgi)`Rz!,!hs"ABO1T+rI{C+|;ϳW"%/8vِ56p,0[L-P=iTRIsbm8`Mb@PAB?*}a}ZN7۩i8mͫ,-gUU&ęݡIgQDYeuB-YOey ߤ~fZ[y(0PBIk𪃫y&"k Ft\s6 ˖ѳZgA/qm(Wnt\UL?r7&cְ%`Fa@9SLb܁dx|I&u_¯w۝-&Y"`T)͈mBC*0+!uhFQ#n\*g.H͉pKG" wKw9_'A?3\9gB?SGl%_= eՏ.E9&DŽ0L:1(2r/@Bʖ(EnՑ15!5#TcMF\m#l?XC(+&^(ԞI[oBNkC΁~oD mvi^z55%Fb+h:ݣWk&*;RhPyj mBJ=݋b%f`51]#ΜǷ<#AVO Q GJSEpFKη4FcS͠|o$o$K@5"}]W%i)ܘpoQBdWȴnLtT-`4_dR5iϼT,a1)Un/"< *,lH;ۣ$hn '0Ҏ( 祻w BtP^tYW&(fJUǔxW~IܑE"h\$2^pyAu /̗+f[ݖdo4d4E.ř =hԋDQ~l=$|o_aFw?ѭ Өs#DW*P|.`.5z+f/JpBlfk|":MpZDy*np֠ W)t㇞Ɛy ,n^UO \ARi޸z%/lv LĔ~ &\\кDv|pWo'^YEPMk6(%mNms#D0堔:as'7> !NqDh/ST+;PD;eDMoT ϻ"^I)z|ma3(Zz'ꖪumaf1$1ʅ' 4{Z8[ JY{ZHj(t O\4:Yge^`ԨH]mCtdrWJSsA >C$?OɺP guRb0T{Uf7hc=X+_;ж ]Ezl@ ˞i\Ce#nl$h87:^=]-~P{lіɉ[#:;E"F dH [T#rAe#fRN,ۡ޲V\khmYd[۰C kM(POKIJ%O-Ӱ>[lıڮ8^$. 6~0^7u GäAXQn( âLpe.?Ah[1>TbaCn+<=ςscd/;-&q]R1_懭%?bSTUub[ 9!Y`͑#Q ?8Ϛ\c].~ v=\q֢rW1[rr䖭 r?]ɀn(&A~& O&-eDN2i,'p(؈Ԣ?3EtJQfqq=CLtp%e#8LiX\]QO|=`Hyp8=i~ട Pn C$x z:n$USeu@$Ws+]c}6K1TꅩZ#ZW6>m E읻?Bԙz5%Lͣu}o#9P`2IriXLݪ#-1prkM׾FXO)qGM%.;.lINQG1}i1t=w Sg ˈ`rrOq!s)!N b&?Y?3l2 غى\ ' ;Cy+8G+mFmUzp q& r:-zdQ$䋴&,id|pu;9G@[|.FC}͆iSZi%_L< ,ȣX^[*&AƦ/A,{2RѩDyQA =؅cwMf HXyGhZF g_ sWq2-pv pP'PȥX燪;q@̗?:R֘;"]nk5 /kjjM}L.MuP,T=Qz[HKAYZqcc3@wt6TfIyŭ9+S,+xII{-Ɣh3%ډ[,. p*W Ⱥ{Jϴ̉HI2|nuk)5*0!s2g7|l_5'N3WlޯMͽ ۚBd9n Lc,3}WI͚A@LG&Ɔ'npIѤ,'wLt~A]NEE-K&>2 yw<978.SaX 1<Hk ֧9kd4hLIcuWn0/#j͔%4 /Ԩ1af;Jq}VrX<̙5`gt&&Wh!`(0.FMg 0@u1[uK4N,؀aQGmVEFւa w N0~|d"c >Wr,i߼qk1#xѳSYgLɪCbs D JDäԬA3 Q8A~ 2'n=@cҍn]s>wfVSGR:UU Z9aOnv[\D,^6C )'L6J?ޱ|7"-dHYǠŠFgPBX&M<-9@D׸%7xng앛 ؔ}J &]3dwNF3f#%oi,?iKع~&!+cr=k'D_,q\4}5WgMA0h(bxƓZ v >ۮVzu (5X65Uu"1W z7XmeB.T8lv?Vh ڸTV#s,f6Y~TnI5Y0=KZV™J4͓gPoP4)d-äE lhG{ mJRݐ9I¬7QP<|$qmy, r3ylc y(+lp(,(cFu+v5=J榢M ~M"IEwOH=BO[U v]@`&- = L:׮Gm6X1W~p[+9YcFWYq2BI2T :b +|IIyct](bi>^=/ILW^J3e7ȇK?()F m?51S︽^iM:۶cN WWKb XE߅"|B( k]-Q7evTN̗8d$Mh64mW]ià3~%Ǒ{b'ҼcL1Qq.XsKEdԵQ]vcv`7L佤5FJ]<Yhy]ܮg{9UcɆ U8m1Hi4y ⧌x[zp=,nwzt >:~H&~佚 bXBbpݲ-6+l)"}:e_J W V<",`rd4_/Tp1$cN~cJH%#xQBd> :u"2udz$Tl5n matIv#6 yc^@}fkO!A9*aMvFѾ)䉋 'ƿdqѣQ5]Q5tKX'b”@# sOVȦ.ԯ|s~f9fmfK&[v~РTRff*.+[Ĭ+e~ += ?/`SQz9_h_Olbr Ǥ^rVj2|4nn, !kRN/uTLD#npt7!sW`ѐKjO}L&=؂~8$&M;cR۹ĵq:Z$>6vZH \J+l#X  X5/C W8>Vtю4Lz<gF6& [l.h{ :lz5[ :?*i_i^+NTAxW:2*Ny#5A|:TJR.<>$B2'Azo%3ߢ){pW!2j[=b-HffXٰ/O/]0[p^lqdU$x'j7k,C{ڣjCƁЗ18KІrK0aq>9?ō#dX}/<֎v34Fst;޹Iޥ_ 4fER?i

VSƮy*~L8DUuTpӀ/ bkbXPc{ԋ qQI[ܾJ!N>OQRXZ΃R}$s{~X00Cr-4;nO@Kk du-#E0晝B*Wqc,쵲DI׊-SѪ~]?nRU/{aA*34Mo{G`ɿL'TxZO}Ab3Qmn$%W =YaC[X`Őx?n/H!Ǖl.k0[cN}%a#ԊvDwҗ4%׫ JkQXLgq3? ދf_=ЃS mHJ6 mTt[l,}ԉ— _gmٶv4/Nk*R$yf rإtR&V*OQKre^36$a`McD]ѿ2dǂ},댻lz){G>z}y[WI wD]R-Ec8Ĕj?14TrPslOۡ,DDER,ٮ[ 5S c 8s(RL~(  Kݮ@h34h郱ˉj<͜"r]dρ\~Ĵ-B<`X)PwϯZo =n~. mJt1 f >N*HPg_L2U&ՄdCr f1&k{9MI! ݩ]mV{B"kxtn韂`H?qNzႲBI>jMZ _q`Bqsy44e& bMS> rB7&wf =(=,A><3]QݹZ(8tg[f#ry#Q[3upZG8 )Dx4akNjOH%3WmE:=Cqo <,:x`o6R0S}b, :', ?G6z|k9YkB/90{ky<@q@1,oa\꣫./bYow cT@ߗim.L~E&o;fÃ4m K;YSD?Q?T[NtiF9ܙ֦"1r<;A9;<~а)#NqQ*8%yLΆ~WǴ\,R(zC#a>UWؼ6Nב@nodW޶wV8lA{uV3al,p%5=5$pgֻM9XpGIuD%o;ber´jq"ˁgh"&\1oGH&+6$}VI$ ŏ3PDW^i^%z} &?L V)|5o6(PiDQLUy1r!]i/fDk&n1Y[?bծd3U0648'p.=G;Vo kh HM\5Y]UݑIŜ]:a41XLo|? pqؗqzOP]z1 &r`>DN;-0", 3T˄)ARRGޚ1 rrh.oj9DQ}_C~97Ɏ|%oʉÔH ɕB'nYWn}4UZ|FP_m$-!0԰8B F {1NQ 6\=\wQۃ>pEfи$H6D&?z칛NSC}B| 3B0鹈gYb[~H;_ɅR}’=.tDLr7`_No6;2MЌ#rI26 "TsS=ZAOg.4^WZr:5;4~S-+{L2֞Vlv`˯ٿpV6I$kBJc‰ʍxIkuD^#nfJk m@r0ȑSK繻9Ps?=垰3F\;P;w6Ɏ"EIyGٗVJ3h- ۓܗ1>`4֜SG*%\BDl,[X]B R}AN܂c1sb_RҸ B.I Q mH8RfXs/F>㿟#pL^/( xGS@hJ& h`]oҀaV'rQiɾrww']1@?KE`2=s>~Vzn ޸8eX>"4?NV3EeQ#?^uB"?8! =Ӷb]H6a;Dx\fjjQG/U8w\=6lC`,1_Oh뇑Y @Eg&rnF>m|EZ<L8CVc-8C"~\[55"A(XIno?)@^K.o>r%"|D}0.Kq f<[Ǣ|}-Z!cu'˵øFc#.֡ۂ6[(\'J~Rcf&E 0aTj?u&@f~!m%inޔ"| 2aM+57G;ڍYL~q_0M3YJq.vZA3% ь#g#Q~*nDŽ;u8@6fO}~kK6} by<=jyhoB˧0G昘F! ' (nϤa 5W璙agS!Q@/QU.#pb2/P֓% %6(Ybؐ7O ыlBfK.lGῲ0aO鬌*சK}+ZR.c|ltDe0A^X30p.~=s;M11'f>EA0;Am{` @1zvZ5u K084{%6̨e'ƜAP}UgQdW, ||\OZ`&SFD!5RawLK{/)?gB /_9m1BiE,MAdKղU1XMa#?`5ȝSvrsߟnmCJ_,ߎإ 0I?'kkbr'(Pr -|Y }}@Ď>76B1 3F=qKJyB!%2 -Jh+}_ f&G,﫚Ez*35PX2Em7/R8Jt-/ -d*y81A17R)]-֗~VzJq{ WןaL"l$mnNv(vǒup0rњ@#P#$<.+w6@RQuV&_ZwF/Üb N2 TW8S#t2g xHRm'M@RJ-aie%>"m0NtMB\3Q&D?c 9vqjCd0k5;>GWITnM0ZnS4P=8<b-}6J6i&+GPh7sOy☊n?Y&4QVͶ#bnT6V8y4qTX"U ('Rj[i*US{i;PQl@ Vsam9ɴ#YS |nNrRg0m"!*"D2mAgÈE,:N%$d2:%ѸFk@_mmE Y t9oy4 #6kkF52Kx.>(/AyF&maޝJUS )'DmΈvCI+Bv0Ĩ`m7)XRxȎpOL^-58qS ???4~ۥdI./Hrbx0^7֦,)b'-U $YCHO}56,ʉKYz-$+a@CH2gP-lJ&{^$"d4U#K_]Q[f5I2Pf8/u""o?zĨy4N<6ZAޛ8,JGJh$} qߘ̒{0nOX j&^ٺbWkȟjAiq@! b%f>-LѭG 0}\l\ZuBtDyTm8=퍪l@:A0% 7G*C OxsYĦ{yVUo)x<Հ}w 7h(HuEz V.}{;~%!H!΀!쳐P4D)X 8iѵO^`F{{9qѦȔr 0-+#GF=2RIZ. e+(%(ĉT%(& Iy@I: :aWMpdh{+$cpFl5! ̤Q/k}L7$AɆP0{I<FrzBʦf@H TP@0p@y_21r HqӶ7ƃ(cfDniXL;5(xfisDyx EekeӖGhfw 1`Wz6D"\m_5Vbwx&s2amc~ qO @ Dg)biT3~P\V?DlQ-32 +di:)þQz?VKWٴwzfUoT ͲC1mqI4)ZPr;;I&͇fb R @Q'o0pNG1Ss>ƔH>d L'9s) 3x.^ /2Ĵ$/Q\x|`B`<^Ƚ>=@=#v"9Pcݝ)۝`[Г5 A @ $BbuȰHF]-]^1衹:n)htxZ|'k˘~[dlJF½0vk+: h^ŷ1I3ƈn;(5DiV%xʜֺ"¦طبO]'M1] -NV)/w|Ot2"d0IKTοcm=?1%⶟r?ha윁[:= ޶6iAᑍ"zvkx+暗QZ[FixQQOvw&5#qE#"fߡ< "QDMF깃ETޢoFxDQz Cblu\){2X9cЏ+G"৅@^^ȱH(>KƇ~jKCgfI:Wjfoh Ž &7vGN)M U ܘS;q$15SP%{H'k6bЌz@D G+%hs3i:~]H1SdvMf7T(,X$ P)?t__6΁KoՑ*.]1^lњR:4g ##ADTUc*CWVɐ5n(};"c4wQb7KsK (Y 6U!сNnmHm\,q1TIc-J15=!GEONxb1?M`. Wa" nkzz] 67i}rǼL_dG߄1Ț弪Vf,fhVL9r*W錾-ݾ3?<{ Ӊ 1eqaV>e3/(UFe'}l!M?-_~6dȣ v] m % ] =c2p4O:ۥBacƄn9ʇQzWDM٦;7(zS^F{Þc#n0qnX/Vh[WiճZ(revEVі*{T><>6%dM~;y/ "ж7E|>Un .Ṡ/mй\>r:uc.a~<7-Rm^/ĀW`cGΚX 2aa%d{ϢMuz]*kPGjKŤO4wP]Y9ukhh*Dzb=zojG: Ce:|cU0n{yK&)+'6"<'F`ҞŖN$8a׍`dyD1/ Ε;f,Hvc(5|.;3MoF}CT6uJej^8Qc`: 'ψe^=gRFGTʾ;B1M"~éPB0 w/zRe9 X*5[ձþT+u?E3CԽX @|sWiN.r?hgO\S Gc_,ܝ(e}떺&Ֆ Qyh n񣆭`$EkSg HƑagj*ty&HsEcm°Sb3 -ζ5gJ/tUPAZ GK.=.`f:zo2sG&PHQB`0ۻMo_J=XMy+k[n#Ua,wQ(ï6BtˣQDpj4lj5:Mj Ѣ6lG{жSʦ$(P@زH/wwsbW1heÙ~Wi|-OCYq?e/gpvW5/ oax4S+S Z=pU`sXNY/yy$$z񦨌c7tUZ༈=OpUaA$.! t|!*>H%*qUObҟ_ 5 z08yjC]8 ^%2F g] OIR액uf& 8r 5kKՎaT s,aGRɐD–4J^!~QRke|XHJ-{ba6Kit cHC qZT/#.Y* JE/WǜE۰]x:J _% u[) ;UH&銀Whvj2UM*v*I 47,ҢbCRZ#.rv 8u_2)ؚZNZV@ H9imn׷)=[zI3:]cz\~bܛ8 _[EZױ~FX@>+{ 7;LMj/F#r*_[ʬ] 'XطBȨ1OC X20ql PT-{KCnrH0khZy:a`TWk0:Bhl*j6*L˭z݄U58B&[H556s-+89|]cg@ܭ27Q4_;ₚw2uHëyHF5\ orfv""t^+ v|_ͽ4X2YY>2E5d)_J "}QN@s 5ҷ$vw {w,S.r82wZxΐD1:7hcp6}&0?%fYSZne8Yt l+q\PԸC.0Mi;4PE !> .eR9"o{ivɓgM8KC{}Ea0{}Trxֱ?B 7]XEG-/ r͚qmԑkTΗcې^e.fMNV5>SӞk6/B^odHtby*7 <|M [{aour:.mFg7@rsxkr% E#yD, Brh3'-T{bHhn1LU~0W/gySr?3EڽΎڏ*>`2r"4AVc0GP{bn? (Df qyzWZx|X ћoLZ \΍XP CCj[OUt%- o@4{a-Pš(Ks(X- %~4)λPƑwf#*uv%6=g[#:%@Q s\KK$tV-v2GYlpBt9I-[2У+*uPTwp+P8u#kpNAY3{PƧz»cZܢ]յQv khfFN` A)VwJp4B툎w)!]ʰ%bygC {CDECxG'O2؁Ux.1h-DX<(& LJ aC:/|P?pI?Gn"Q7!7W;={蠥DxnYto@ӯw8)%GIZ/~s)B射>(!ަ0j 39[=RF˩Z t c!^v-DybLG&;ɆxZ#? o{ipÞ-`B`(7jjVQt_zK6Zb-.~L>$z¤@"P(B~XƋߚEF-R GDdKB (, A{ ]8 Upd6n_1u !kU&Qa:.!$ W=3XrK-x*(^\Tq=ԱW ?Ezvo)౾MC,`ʀ? :Ё0P#J>PZʏy+6] /آ`YJnh)G-[ƶX9  Ih*I-UC¤=wF-\lzp6M>˜l{"o A$LQٌ.7fW`|&BkRHAw32Z%Gc} Kҗ? K$rU1y d$d ծq MԿ-qƷ.yߵFq6*#: \džY?]{N&:R[^a8E]9Ӷ%}nb'u P)Zl^t4Eѩx @^CT>7+p}p{jP$ 愇+i\f%oCضxuɧlJoQo`y>oFTAHj 5]"T5( 4( s}+'gO;" '\sĮwXS AWdSEM8)<;X] S ?"̡X>C?N۲.>&^[#L4@M"=ə _ D[T_Yq.žTݏuu{: >u ?xnhAV@V%ʴ1}D{q=L&ٯ.rzvXN%eE~x]Y?@80"1D$I7ӎJ"އ<p?\1o໽#a|ryb`ƺ}KW9;p 5"C~<* TKr2&U;TxnXFL;؝ɹ7k'`2|a #ZY֦CCrOй &@|)#bgR6-đւ'F~ K텮dN0OR*}M0::h[4hq& sWfM”1+ONyiԢ U.auFg(_$\-v8n[pD&STpĝΙ Zd:58nKIƥ=Fmpl/"7UU.Le4u | gd Y%ŀυ࢐AܑaCu2K ':NRo3eAQ5D5K^j06Z)FdUv Bj/g.0pn6'R -pIx@wr _AK*M+6ʭI  M=1~M~5&9YQxmN=hqx9 kϺk~$f9.K<'4= \-C+D"6t-M獒Kt5ǧ;*%F!DPVH4Q=1"щN=Us!%yWlc~q3Y$׋Nm=w_8)BE̪Ƃ1\I6'qVw.BO̝g` ]ѐ7|)–De=hZd 8\GT]XVCFX<:+?H$- ScmgȂnBt+bTHܻ]rUN8xs d$x8=jțPik` f}2 99 7oJ+׾{v"@;os偛ڸ,Hb{~Xk~00]*$/#Sxy7` f8MTpu $>KOȮ~v"5Dg;^}~vXiVv TWدQWt|-.+Qu1*}?L,tÈvR`ϳ 9=cGð#ќ.fkn /s !+Ă (ZM{%H| c)Œ}c"Dz twj1Ǣ6A{QumL\BoWUM뻯_FQi-\qhֹi=yRg_t0pF/Pݢ+vC x Wx6cQ<~.} +o?,7lnq _Cuk}퇄3Jk|?nonLdв1%og=Bf ̻w9& z@D X`UI"B*5]0/AԆ(ߟ]-QK ;݉ݔzћ}ms.EɬBs馤vM|n ҳ5h 42u?q5";Y-$n; gs9{klüGsSFwnHrx*Jr;kuh;F#el Ĵ؛r8Bgf o3ߛuXޯi)j DjV^Z>d1bH|mFe`}N4;kǼ'lZpҕcZ/Sa_)omih1" VGw%A럤 `dM=|^Ԡl~5էdm"YiA^ˣGO HXZKj Ͼֲ]lU\{Y+f.N[;UXOG?&zm \C~ʦ 2l*S=5Wyyt"p=ي't/!{+b+'mTE*uL:|THoboL7XR{ bl9 ,o-(pmgÔ3RJRVU4_ʷ-goz!b|U w{Fݥc[ TL*]3)bzŠ `,͢[$-z!Y&HwL'[;i~9)PFda7&Z]Bs1 hOUUQ^lUf|G^l4&)ʟ9fdt0t7ة|wv+*5xѴB:%sm}-Kj{_T[0kWh a8Z=s 6kevz=E@{K U=54GH4b0nBLW:GcmSDZ\^}Y( 6br\L\Tbm?] )[z` RNXM'ALCK2ᑝ+`ūGeU  \@;Id8P_U&=3_w*'^U*& b8P=%J(k@2SM6:v%’t >6d V }ml}zXdf|$r~+7Q9ɔŽbY4EiO;{`MsF %ŶEl8Ag~Muޚ ,(By|zW5f !ܛD8c}swDF)B^j y0Hha_\8`fZ2&% s"|<^O ,;\˂ Yve'qX!,lMVԖ3;@rxdnƵ8%Ph@.`i$BXTi 5F*%sg۷c!iP0K&p.I:apzދ98[)\}3hX]Ir8x6,vOIt7RD:pQDpH /l7k(+b(t5ՋYzl}2H'ARرѻܛc #* ޸&jxAulbb=J1>n t= 1@RF*mp^Z:O[ *ѝ}h_Ju0\JEX6 +nDmSCq eĄ/g󔲸1Y/֨#eFlp[Q덲I.z.O{*tA|pӧYY.LK|͐,u(?c :uUj3㡆Ӻ|Zoh2$$ ũMRm]&S$XHT[fK=pDypnVtՖB*⩖a9hڴLoaPENO[71b jJh/g7pFk&)sG$s6Rmc?`_\oXY5"C{q6np ^ޢ-7spfjo|!^} c;WcӉ1X?T~3 0)K>sFcw^m(X9J7U:Vq48p!4+ۃ^fS]exYy$xG}Q*I9RejoipÇ`ʋܱy q 0!|Oo4ms5SvGp>#íhUoPάmf\2;Hp7r*!|?zЈDoVʾp73s ,p*@{UON =7.5Z݄8b|DD<qsQW[[ې)4/Ix|Fz#L!f @ I)s+ Vc7a}"ij~<Tie?:M,sǓ#,`00¦p ăEX{_W)1 yRM4 ľIYMOIa?H@?SuZـa8񝦆}&(Ow&T!DDڥ!$VdjH'tyDiy w&d38Y&d{_aفܽ"ZV{eٴz è` mh^1Lg~r||3E6yie ¬T뜁bC*Od& $ \`,ʳm쇑Н ݹUF0ԸԌXTt0p_NS`L rIW YskE7"{N-d7sA8'¿B 1)No oE:5Gr:*$jfaG#ʍH+y;C7u#J(kK`K\z EZo vg::5|/F^F6]mQy;~ WVMCo\g8~:%{_U2%xTS=f >(LRrw J`HM?#)zodc-B?`5WdČ&?[uoѐ /;SɃGʴE2VdΡpd\rTm"J?'Ec@+K*D7,$6&|QyWOv@dR/;=Pkm<ǽf0CV)ueLPND@zz=Qz궸B?ϓ8m+ƃ2tw߁>C83}pL`k|S(Mh0qu#$T^H2 YaiB"@Ԅ#=C| )l,>XIȣ7ᦟbrVp*.GlSnʵ-o2}hzBFZL׌;:%P@ҳ+|tKҾw%pB|iD粬~%pGt5S)sҔ ;M%FSCcDQDѿ3z=21Ai Y|9751Uub\w%iF]xJ3)d*+)X/+,뉉&q~SE{j_{C2@ 8Pg?TZǑE± 0x;߿_c ?r?;Tw+S%!G wVOٙdBk e0'XpD$ W>% ]@a^zћKu7eZ"Po"!~ hnwYovӂˆlVfd'@Hz~ ,= |%-B #^&anr8EuA9YoeJ^Rzސ,g[ _>\hy^ x%aZv*8%'E$3]+TLlM@>YDx İճz5R|$ <l,Ud8Jdwm`Mhk6a2]0.TSԣx ?ݡsB=3b>4E`Fbn9,DΎ OGсf  oB<pxdr;a2 g"O|1Дxx-;|#!e|6S#VՇ&kй8b'jr:T`Apߟ`EgT>k D2咠XEe>AGYL(F@j E/%1c[tӃx4B}n?'aSdV|Ķ]Sۮ~H 9@!(ki*g?]r| 6ϝ&˖bbfH̞'7'!KonHc=i Y[c'0uBXI_7p-\_C}]P l_8Ёf@OFVwM<Xe .hvbr cH T#k84(JtzwbmYXV4$5`ne+L߻B$SqFOD2Q3,bz(M]p5LKHOJx"_>F=Q*~fUm0*e)u z:f΄FǪDmAܴ;2r\=_Hk֊t&5VG7eٓg_MOwxA`(4އTKE~ n ޶yRgEUr߿}yz?Jl}kR*ԡG{Z'{젟qJ KY+̌wȣ!BZ:eüT!Hnzʯ+h+Kh2m]n+|_:buRQ.nOp樀 v`zE 6Et]4  ԲNA9|0/fdLrbN_.K k0ٗtqe]@|)S;\9XXRbYǬ{kJ1F|==NPʲu7]g ˑKE-{96%h4Qo6$ k$[?pp n@.JԽ6!! rzDF(#T%l:aԼD؝AZ+A^J-U*- $9j{( nR OGX_jɲ'r ld{!C+t*KG{ȷb>K5ij3ξD %E4h(b'2劉[^BCPveG5NtmCN>)t]4jޑԄm]_\jcj/Y+=iHihf;:`Fx`vs{mH]CUkJu@ )(gv(ۺ.beƔBʔC/!Ϳev!r9wQ"&qNqGykV!y,Xa˴*ؐ |b"f~֑i4* ;Ț{[}9Wٌ^4 ׳Č6!7EM&p.,6}aWxo,|Krhr:;E;s5EݹLVjLQ]T>"B*H83#n[Vl9w[FsP-ui VU;P{]5"huNBKe>3h0G16.aE8QFكv/pƾ~ 򪹀{Pos/:2S{ٕ"2fK 2LR?1+%(WͷKE=cC- A!BU=­.PpqEN΂=5YK2=\δ6v bm}0ӡ_Bǿ`-Q3cE(Vt_r֗|e9]^^bopPP@o>*C-%z*u{m;To?{sAًfrO -ې6=D\4C{A$˰Ï?{9Cm<~ Q9+""F_);{Q^C_{sֹgey]د v$yJ} #ݢ짦 AbFƞܶjXT&s:q*䟊=,Y>iItC>_l^31 Q* sƬ\EJXt=#ސP(*nFSu܇LOp_de? p?'S )Hu1\eFAB.S_ZGLr8 ii}:6\Ӗo^^&%X^%N+nΏ46B[(Tr{o2n̹72CQim8[dNf?m{Ji4+X GW!LN6-Z!nr 8zPȬ[Ahrh&9A,0@G GtZ|Y *}}=w$WD(;~35o ː;8W$y1㩽Q/;ǝoWϪ)7ڱ|Jv0C !;@hdK;FsOVTS)bZ;(O c [&ftbLw"jrf3zgjE#Ndo}d}5KP )FdZ/f= X. WH/:4<{8Tog;F22atJ.zaNial8BtwZ歪Y)Iyv|u-'^38xC NOJmCЦr_!6-<ټWMQ}{D&ttlt]&cI`)@r84ꢳ@b 71Mp _N?2޻9gdDP,A8Q\*1KHG);W _ogm|4ꠢ}ޜ@~b).SA1c9zRuD*[V)单GS=D*xsov[R oe1Bգڅr}4'_c^2uAY^QgI|:(ǒ݂o/-#zߑdžLj=n5G{ ht-?%EI)($OGE DV֐h3Zbb!J2ܦ\L;S6^hst r|X[=_\e탸^EI5HM ;t˕@#AHri#JHI*e/8P$ZOmn+D}E]&@ 0D8mM#h.>]`e"iҺgT~,Uk>Dب}m&|m*Sw[;$s;m)H;TMNoh.KgN!%?ūtucs^Wkտ ^QO3UUI itar\)(6#$Y;"*] t' ARrF;J;pZ;~UWˤ89߅)F xԅ&,<_2d_E(S[]/]{ U4%L 0>`yÍH$ q eS<67;za$)0DpE, )ō6ss_ZJ )Lt|㦳l aܡ|$zZEP-a gV+\E.d(`qmXoopv|ϲpM G׿ EvojNweDɜ[}B|jT^aoTfc¨=|єՑŒJ0Hxuqը(+^A|h=<5y2A}.%#t*J%X {7K2򋀄S/䙀65ǹF>ɼ:!B`8m GgmV3$ cP5~< ?(1ρE/9.t>DNmDAҍ$Mm-LMT.#x'uՎ&RflOhHd; Λ%xtCR[1]a w\C7:c/-]~ M0#m*zN :}XS(tCHqX,: 7V#O-$Tkc,*3{bcЭ$mv:m..axw7WӁdJwLxܲa!>J q'|LgKg!9M}Ąe~ ˾e/yQ&W|p]d51rr 3$C+\8P8ܹ^B?b};LE1MM9s%/Gfm`fwZ$ >5NFa`Z!P1GD Ɵs-3 EL(/RKMDb 5Gq'z2Fc7QG㏥&[|Ώ{5Fap#!il3D6QP<)Pm&RgKmp4c|I3B2C#p @ڗ$t=>WheĽ+IjՏO| v2Vk"^~92z-ˇ{~byD?[ZX2>o"5!NI:=ن9O_;WQ(,ڄQI]f VAíbsswU WEBƛnAIJw]X)T]nTL>`OG̺Z,o`x-Nd8|(f_%pZ#o!ZD Јvյ*%i0WgZA ܟsٔR+yƃ8Z]{P >J!@{Bxٞ*bTc#J~ϕѡӪ+kx~cJD2(bDv{BvYn#̡F])q085^JYh:PጲtU͸%y'u m}S'&*=ۥN 3.W {x!O-A#pԛ6(\(>Ld)|m ϵ8>9q bױD Am%-Ӣft&򵓧(th2kGc5eyWJ U)dBB5Qů)`'n $'\!ׁ^^~ҢfVg>8#\K%E