Skip to main content
summaryrefslogtreecommitdiffstats
blob: 5ccf5374f431829304463d9295ad5d441779789f (plain) (blame)
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
/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.team.internal.ccvs.core.resources;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.osgi.util.NLS;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.internal.ccvs.core.*;
import org.eclipse.team.internal.ccvs.core.client.Session;
import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
import org.eclipse.team.internal.ccvs.core.util.Util;

/**
 * Implements the ICVSFolder interface on top of an 
 * instance of the ICVSFolder interface
 * 
 * @see ICVSFolder
 */
class EclipseFolder extends EclipseResource implements ICVSFolder {

	protected EclipseFolder(IContainer container) {
		super(container);		
	}
	
	@Override
	public ICVSResource[] members(int flags) throws CVSException {		
		final List<ICVSResource> result = new ArrayList<>();
		IResource[] resources = EclipseSynchronizer.getInstance().members((IContainer)resource);
		boolean includeFiles = (((flags & FILE_MEMBERS) != 0) || ((flags & (FILE_MEMBERS | FOLDER_MEMBERS)) == 0));
		boolean includeFolders = (((flags & FOLDER_MEMBERS) != 0) || ((flags & (FILE_MEMBERS | FOLDER_MEMBERS)) == 0));
		boolean includeManaged = (((flags & MANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
		boolean includeUnmanaged = (((flags & UNMANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
		boolean includeIgnored = ((flags & IGNORED_MEMBERS) != 0);
		boolean includeExisting = (((flags & EXISTING_MEMBERS) != 0) || ((flags & (EXISTING_MEMBERS | PHANTOM_MEMBERS)) == 0));
		boolean includePhantoms = (((flags & PHANTOM_MEMBERS) != 0) || ((flags & (EXISTING_MEMBERS | PHANTOM_MEMBERS)) == 0));
		for (int i = 0; i < resources.length; i++) {
			IResource resource = resources[i];
			int type = resource.getType();
            if ((includeFiles && (type==IResource.FILE)) 
					|| (includeFolders && (type==IResource.FOLDER))) {
                boolean exists = resource.exists();
                if ((includeExisting && exists) || (includePhantoms && !exists)) {
                    ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
                    boolean includeResource = false;
                    if ((includeManaged && includeUnmanaged && includeIgnored)) {
                        includeResource = true;
                    } else {
        				boolean isManaged = cvsResource.isManaged();
                        if (isManaged && includeManaged) {
                            includeResource = true;
                        } else if (exists) {
            				boolean isIgnored = cvsResource.isIgnored();
                            if (isIgnored && includeIgnored) {
                                includeResource = true;
                            } else if (! isManaged && ! isIgnored && includeUnmanaged) {
                                includeResource = true;
            				}
                        }
                    }
                    if (includeResource) {
                        result.add(cvsResource);
                    }
                }
			}		
		}	
		return result.toArray(new ICVSResource[result.size()]);
	}

	@Override
	public ICVSFolder getFolder(String name) throws CVSException {
		if ((CURRENT_LOCAL_FOLDER.equals(name)) || ((CURRENT_LOCAL_FOLDER + SEPARATOR).equals(name)))
			return this;
		IPath path = new Path(null, name);
		if(resource.getType()==IResource.ROOT && path.segmentCount()==1) {
			return new EclipseFolder(((IWorkspaceRoot)resource).getProject(name));
		} else {
			return new EclipseFolder(((IContainer)resource).getFolder(path));
		}
	}

	@Override
	public ICVSFile getFile(String name) throws CVSException {
		return new EclipseFile(((IContainer)resource).getFile(new Path(null, name)));
	}

	@Override
	public void mkdir() throws CVSException {
		ISchedulingRule rule = null;
		try {
			rule = EclipseSynchronizer.getInstance().beginBatching(resource, null);
			if(resource.getType()==IResource.PROJECT) {
				IProject project = (IProject)resource;
				project.create(null);
				project.open(null);				
			} else {
				((IFolder)resource).create(false /*don't force*/, true /*make local*/, null);
				// We need to signal the creation to the synchronizer immediately because
				// we may do additional CVS operations on the folder before the next delta
				// occurs.
				EclipseSynchronizer.getInstance().created(getIResource());;
			}				
		} catch (CoreException e) {
			throw CVSException.wrapException(resource, NLS.bind(CVSMessages.EclipseFolder_problem_creating, new String[] { resource.getFullPath().toString(), e.getStatus().getMessage() }), e); 
		} finally {
			if (rule != null)
				EclipseSynchronizer.getInstance().endBatching(rule, null);
		}
	}
		
	@Override
	public boolean isFolder() {
		return true;
	}
		
	@Override
	public void acceptChildren(ICVSResourceVisitor visitor) throws CVSException {
		
		// Visit files and then folders
		ICVSResource[] subFiles = members(FILE_MEMBERS);
		for (int i=0; i<subFiles.length; i++) {
			subFiles[i].accept(visitor);
		}
		ICVSResource[] subFolders = members(FOLDER_MEMBERS);
		for (int i=0; i<subFolders.length; i++) {
			subFolders[i].accept(visitor);
		}
	}

	@Override
	public void accept(ICVSResourceVisitor visitor) throws CVSException {
		visitor.visitFolder(this);
	}
	
	@Override
	public void accept(ICVSResourceVisitor visitor, boolean recurse) throws CVSException {
		visitor.visitFolder(this);
		ICVSResource[] resources;
		if (recurse) {
			resources = members(ICVSFolder.ALL_MEMBERS);
		} else {
			resources = members(ICVSFolder.FILE_MEMBERS);
		}
		for (int i = 0; i < resources.length; i++) {
			resources[i].accept(visitor, recurse);
		}
	}

	@Override
	public String getRemoteLocation(ICVSFolder stopSearching) throws CVSException {
				
		if (getFolderSyncInfo() != null) {
			return getFolderSyncInfo().getRemoteLocation();
		}			

		ICVSFolder parent = getParent();
		if(parent!=null && !equals(stopSearching)) {
			String parentLocation;
			parentLocation = parent.getRemoteLocation(stopSearching);
			if (parentLocation!=null) {
				return parentLocation + SEPARATOR + getName();
			}		
		}
		return null;
	}

	@Override
	public FolderSyncInfo getFolderSyncInfo() throws CVSException {
		if (resource.getType() != IResource.ROOT && !resource.getProject().isAccessible()) {
			return null;
		}
		return EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource);
	}

	@Override
	public void setFolderSyncInfo(final FolderSyncInfo folderInfo) throws CVSException {
		// ignore folder sync on the root (i.e. CVSROOT/config/TopLevelAdmin=yes but we just ignore it)
		if (resource.getType() == IResource.ROOT) return;
		run((ICVSRunnable) monitor -> {
			EclipseSynchronizer synchronizer = EclipseSynchronizer.getInstance();
			synchronizer.setFolderSync((IContainer)resource, folderInfo);
			// the server won't add directories as sync info, therefore it must be done when
			// a directory is shared with the repository.
			byte[] newSyncBytes = new ResourceSyncInfo(getName()).getBytes();
			byte[] oldSyncBytes = getSyncBytes();
			// only set the bytes if the new differes from the old.
			// this avoids unnecessary saving of sync files
			if (oldSyncBytes == null || ! Util.equals(newSyncBytes, oldSyncBytes))
				setSyncBytes(newSyncBytes);
		}, null);

	}

	@Override
	public boolean isCVSFolder() throws CVSException {
		return EclipseSynchronizer.getInstance().getFolderSync((IContainer)resource) != null;
	}

	@Override
	public void unmanage(IProgressMonitor monitor) throws CVSException {
		run((ICVSRunnable) monitor1 -> {
			monitor1 = Policy.monitorFor(monitor1);
			monitor1.beginTask(null, 100);
			recursiveUnmanage((IContainer) resource, Policy.subMonitorFor(monitor1, 99));
			EclipseFolder.super.unmanage(Policy.subMonitorFor(monitor1, 1));
			monitor1.done();	
		}, Policy.subMonitorFor(monitor, 99));
	}
	
	/* private */ static void recursiveUnmanage(IContainer container, IProgressMonitor monitor) {
		try {
			monitor.beginTask(null, 10);
			monitor.subTask(NLS.bind(CVSMessages.EclipseFolder_0, new String[] {container.getFullPath().toString() }));
			EclipseSynchronizer.getInstance().deleteFolderSync(container);
	
			IResource[] members = container.members(true);
			for (int i = 0; i < members.length; i++) {
				monitor.worked(1);
				IResource resource = members[i];
				if (resource.getType() == IResource.FILE) {
                    ResourceAttributes attrs = resource.getResourceAttributes();
                    if (attrs != null && attrs.isReadOnly()) {
                        attrs.setReadOnly(false);
                        resource.setResourceAttributes(attrs);
                    }
                } else {
					recursiveUnmanage((IContainer) resource, monitor);
				}
			}
		} catch (CoreException e) {
			// Just ignore and continue
		} finally {
			monitor.done();
		}
	}
	
	@Override
	public boolean isIgnored() throws CVSException {
		if(isCVSFolder()) {
			return false;
		}		
		return super.isIgnored();
	}
	
	@Override
	public ICVSResource getChild(String namedPath) throws CVSException {
	    if (namedPath.equals(Session.CURRENT_LOCAL_FOLDER)) {
	        return this;
	    }
		IPath path = new Path(null, namedPath);
		if(path.segmentCount()==0) {
			 return this;
		}
		IResource child = ((IContainer)resource).findMember(path, true /* include phantoms */);
		if(child!=null) {
			if(child.getType()==IResource.FILE) {
				return new EclipseFile((IFile)child);
			} else {
				return new EclipseFolder((IContainer)child);
			}
		}
		return null;
	}
	
	@Override
	public ICVSResource[] fetchChildren(IProgressMonitor monitor) throws CVSException {
		return members(FILE_MEMBERS | FOLDER_MEMBERS);
	}
	@Override
	public void delete() throws CVSException {
		if (!exists()) return;
		try {
			resource.delete(false /*force*/, null);
		} catch(CoreException e) {
			throw new CVSException(e.getStatus());
		}
	}
	
	/**
	 * Assumption this is only called from decorator and isIgnored() is purposely
	 * ommitted here for performance reasons. 
	 */
	public boolean isModified(IProgressMonitor monitor) throws CVSException {
		try {
			monitor = Policy.monitorFor(monitor);
			monitor.beginTask(NLS.bind(CVSMessages.EclipseFolder_isModifiedProgress, new String[] { resource.getFullPath().toString() }), 1000); 
			
			IContainer container = (IContainer)getIResource();
			
			if(RepositoryProvider.getProvider(container.getProject(), CVSProviderPlugin.getTypeId()) == null) {
				return false;
			}
			
			// Added optimization to avoid loading sync info if possible
			// This will place a modified indicator on non-cvs folders
			// (i.e. the call to getModifiedState will cache a session property)
			int state = EclipseSynchronizer.getInstance().getModificationState(getIResource());
			
			boolean modified;
			if (state == ICVSFile.UNKNOWN) {
				
				if (!isCVSFolder() && container.getType() == IResource.FOLDER) {
					return container.exists();
				}
				
				// We have no cached info for the folder. We'll need to check directly,
				// caching as go. This will recursively determined the modified state
				// for all child resources until a modified child is found.
				modified = calculateAndSaveChildModificationStates(monitor);
				EclipseSynchronizer.getInstance().setModified(this, modified);
			} else {
				modified = (state == ICVSFile.DIRTY);
			}
			return modified;
		} finally {
			monitor.done();
		}
	}
	
	public void handleModification(boolean forAddition) throws CVSException {
		// For non-additions, we are only interested in sync info changes
		if (isIgnored() || !forAddition) return;

		// the folder is an addition.
		FolderSyncInfo info = getFolderSyncInfo();
		// if the folder has sync info, it was handled is setFolderInfo
		// otherwise, flush the ancestors to recalculate
		if (info == null) {
			EclipseSynchronizer.getInstance().setDirtyIndicator(getIResource(), true);
		}
	}
	
	/**
	 * Determines the modification state of the receiver by examining it's children.
	 * This method may result in modification state being cached with the children but
	 * does not cache it for the receiver.
	 */
	private boolean calculateAndSaveChildModificationStates(IProgressMonitor monitor) throws CVSException {
		ICVSResource[] children = members(ALL_UNIGNORED_MEMBERS);

		for (int i = 0; i < children.length; i++) {
			ICVSResource resource = children[i];
			if (resource.isModified(null)) {
				// if a child resource is dirty consider the parent dirty as well, there
				// is no need to continue checking other siblings.
				return true;
			}
			monitor.worked(1);
		}
			
		return false;
	}

	@Override
	public String getRepositoryRelativePath() throws CVSException {
		FolderSyncInfo info = getFolderSyncInfo();
		if (info == null) return null;
		// The REPOSITORY property of the folder info is the repository relative path
		return info.getRepository();
	}
}

Back to the top

MɤR;n(嗀4Y&1%pn,mk*(qwgee׼ xRB5!0 h@\ݎIя3 ō0U/OmuoS1V>FԒ(2>>)P|nO6V6;Bnb. X\fnH8 Nm̷<΍qӚhAuĢfZ+DS4l-F-_v*>[t$JYBS,%ҖyrsAiYgO!;9cl ֛е_ª`9lY?BA[|ԉQF́a2*"GL<$xBjPzQG6eY<;H8Vjh3י)pbUTzz?=S) =B21@Xs)pEso?644]]φ#nR9f6װK0*+*zꜤ.^S[kl=V{=*tA$isus(fqy2p7Fq"qt&1!C^%C\'*%H~ \9Ħr|r~\B'g!,RDbԝW&w|ֳ+Kaڐ+SV1 nwT*q`[(O5%4ƍ:H7C 7 ܩXQk~&MoC:˧PZ4I+62igiLͬ)N2<ibNf{y5_ULP j.!Yc 1IUn̍7U`_$KőQd{o-`-osu&޷2u k)Թ8 ޛF5p`diL>>B %(#A,e0II?0 Ww=7hḀ\m(( !!ȅ1hGu^v$5W3,>7#ܰS}'Nտ%U)LT)k=9,5it8)k߈$z멎U@(2Dbgmy_8VK(uXO"sf@hrGM8ȯH8jШN6=ˤ,3K`s}36g 3IcXL\q'ȿٌaY} nrvL~1|unh}G;AC !=|v=}w6Ts(}9aݧyb0$*Dm'utHz,VcyV%s-'Ir&zIzӬp1^MeaS_yv.Q;$Z&`b^Alzi-,uaWI#IT3P a5pn5dO%ZX @h·@JM/:C .NTʸi%hcҽ2i e%F$aX"TEc="LA܈aac3iym5f(9P%7zFDM=EykSԟΑ6+a3ӧ+3LzdG0kR^N[W,jlڐ_bF%{iP[5"+[*Hj ?I4ԨiSMÿ{2OJM ]ZcvxܢSx8/Gܗ;LO=_>.&Q|7Z$?П/|pBI@ WPx2xa^[Hwv u:[{ebUkr?c޵;艠egk5fK:x87 Kr:[qcrQM4A̱Xz3ōf`I+p2,]Hm8H~<,[3 Ml`Ҏ -11'B۪ !r0J5=q7Diӣ;ߏ&q0Q\[;ű(. g=^[dod LIҞg0u@MQ6BIq6SO9@ew"qƋjh|ɥZ{sڣ_4ЫxMhk{,k^^ W*.q^bґl~nt˾: C2 qa2%$nID h-V9y䍬l0cr+wn *]* I7HG%ܳou E)-Cwⱦ9ɾh0eL9JZ}%FvIŌiS"‡n y\Iu)\%&0V(ee:bIQ8Z^5%Uq`Jɔ [؈" >oHxI{AyE8[.HjfQx܆L!.:)?W̼HMǭƺ&ZW3;GRȨ?N!&|ڗe!mQЕdM1tG+& LMt8MU%bx&S55ӗ^p.(n-xY4\ecp:9ݡPa-(EN;b aSx")/'v:Ey%[e(|F(w&}9QJ#QPJmL냄Z lsD]AGReo<[f}b7Ь0čxbS%#FvӾqY\B]5m ,7hu@c )\_l^O1Cf,ujAv8AmFKHs$H7FniB؊-bR_}9/ |r]^BPM?K9(o]| R/wq9.=ZkRmMlÏ:Rw9VQZ_2>ZA`P}ǿ[*Ekqy+?t".L|.]uo=#59!+c_F8P]ܑhE5hz'Z96G[Phٔȹ M:P{'v:Ҙ`c30Io^:?.&elHYx~~ޖpH1V_~o"Sx-FdP'^|>Ѵ܃Z Wc<ת[yuƉڀF t]X EG&>vM{P̳Efi-Z& Pcl7J}T$&`^4Y-sҸOyZJu>w:ٸ(kt D;|cCQ!ǣDjNju?SeNмo U0>%2𪞥J1mʺ,|*ޕ6 өxv3tqWML v0,gyaCcp![GLa@KR F7͛T[/>Qm΢Nu!`Y@VoXO lBEw2IR z$*Yfyƀ/@+A@Givڗ'sDGB$#E2JuwH-%)i噟7@1Ld#S]ӊ|/p;!Sa$1p#1FMw7KK,2)\mI~Wy80tbLʙs7`.M~.c²-gaΎXMgdfWve!G.ʟ+5 HuFy8Yj0+!, Z<{ ?v4B-W;W) >a.rSGuي9rzaKVM2ja\}6p\[ dܹS:U7eܑ5¾ <_ 6SY(iB)&9mO FfKZ1k-ZaCD#5^0.:Si*DxqFJ+q!h:+k6x%9Wfg]4~F`yM&u<LQåm-;~A#V4.Gd5#W_jgQ(Ăgiz6]M v}.6̣o),5 R϶-j5Rܰd[ $ۈJ LQ B$O7LF Ҍ Efgs#u 蹗TV;[}# b<$Ba!J-b4f2 V޴Mi.7!k_ʠݢgɋ&UX]b)S :yLb\"W h\$p{ZTxاDjiQ3]"*xp ;?O' ?3MUnR8iyQgyqyaEV@*Q{ӄ?h*zƲJtg[y__SpL7s#vԐYX7tJ!'.5C!ect} ezb85VQ4 WAfE'TAӇhD+m. :8O*8̋Yh][U1a\8IەD]GW߈ͨ%=1 h(UKOܵ7BRSMł!č Szbt;Sjt1C5ohQrđY.'E@jRW3TZU hVK b27 Cũbuj(U>J~"3׾L/>p7=@5īC5B]Ѓ"?^^nl! .̕rIf^fE=qYOh$A'dkl7p݋+\zt2y_{^r ܺCG^fIw)X&"q4f6d32߅|8!l*&ynsf]h)VThe [>;`AD.-Q P3p*8. #tq}n l`lAIA'oѽV7vFE/n_:"3&ga^H\N&Vx&;|̓{\M]tqkMX RhҳAQvp^s"84_a4?X?nƲjN'V-L4khԅǥ[PQ2A gT&Mh*qٜl)& ^hYP2u›q(1z0\$+֔6o#(^ӢH[owҵE?R[ نV230Wd2p. dbЩ' 7H'=gKb,=Of۰=(~TJ{V"oDj<jTNZY*fDEʾ֮|F9 oO섑4J݁3>s)/:ZgvO't_S'}2K.X\~Вn\⤤~F OA,(v˄cPAXx#34@i4"}H"X9M] Q|Kg&=\{!c80O 4v\%0 $Ƃ3gm&jSnqҊ\*Ek R {PthDxܚB ѭ{GZ [Yrn*1z oMj*J59~Kȕfj@bUn_&_7Z]<}D742{r ./DZC!QUP:LZQav>?7m C\a>8[9 F*ޑ/Q~3,Mi?I{_G*iq_ J#im;n:}BÖ<);|}@ BmT"-qV$ 3҅nyjq}u)Rɺ2"4n}ti U 9a+:/tE/eiӂ+If&2jˎ?͏PoprPǦ鑮ě>2O9@̕ LO/I/KU=}6`0>?(vܬr֣ BǑOTJO{ugJm :@r6NoGx߆0[ءcJ*ٮE:Hl~9H`}gUu`) q` 5Z//'zu^]SFgg DH^ȾdAս;gP|֓\( mN*#ᬾ{l׶%EH/<I;$^v*v Su%+y1RŊ$P. jL)F.垟؃ޥw ;X&ĿL`|L&4´d4;(n&H2XhKO_ym"Q\ETv]L&ᘀ,2͍Dy&cRh[@XsՖnfֿ ЭOq3.wo{@[kF6/F9%c@UEu"jǩq^V pk8!2A#zak߉3+߸7yYHLv7gz6HO22>m M)N5zKy6:y>m:)i! X#i]h8 gR+.#I<&@ LT !+-YKkK`.;dbxw˖xtgEa/S|T#<"ݱ"1T O\15>+>?vgcًDL5QXtr}jdFwS.Mk SlһK9Z}+*_9JDQtڝEbdqF-%u3f]նwoMB rZm, yKJy}_J'9]$ef8bTᲀnqf?sL,'"KYQӡ*FNCp ]WmF39t0bdf\vWǓOCo$eH}J ':f{K'IV%lr'ʇ88WYMZ{b'υ:&GS+c|Y6-RMg=i3>TcѠn j3a?k&‘SВ}] RMMNo|ZOFG]b驯 ]ڤ[)8$Kv =ȇ04Ƃ߳)  `LMG/A̒(W@֌ vKQH^=epwyBu[7.1{*(iKI7%WXmW TΝ2n2'm_Iy9LnB*QYa|qoeN\㪛Fog:$Zйr8Y i<)dkngwNa1*^R|Bn=<\qЙ'ut.ؼ N`Q r/־$O,ca"Ms]rWJwp:I8FMϥa@QXL=P$vбL[N!='fOk<3qӁT+lS\so*Xbƭ}Jg VҩE`mi+-i#X4]E#MhY͠, OXX x6dvl..cL+ݴ rYGžKxje؛qn_E[-q+!ڟVBĥXE|]qSWeL-[ WxQکV;29LOǨK߾yHBxSF$mhAGn2c,;;_ndN=yVA ,s'C/3MĖ6q*G{%>^8d/71m8]wq5ˊy{B)։t~o+1CHf v4_lQBe._TZ h D4hx S1jyHT/z P|gZ ;T(DW\AI<|]3=emtM6ǶeQR_eTF\Ǟ_%C~QB|5MtM x+o*op :h+A{E'xuqdr07]i w4?Y5YX%49{;e&R&#{NOp> /R;Er 6Y&,.Kɯ#m6xT1.2ic9"hEZ?&Y^(Us^rdۥ JK`L龸_Hh4Zhr@-NB9(ƫ&o{:C4A6\ҠJT6~bw>|U[MFl["`\q &W+W/Ы9q d! aiqAQVVsf,C}(nXdZlZUhN f3dY4=Y^B&mjt,5,tˆK 5Y p.fF2c?~nbUB W1*jҩbyw>*9=ʃrIU$ْ޹1"&c+o@n7zIiZm2:2P6j 3ulr };/߼"9f69(YwJbѐl(}'u NDR6?b꩘C1-w3<#O "N5~d(6f*1FےR\NT6s4+dʱvpȲ^"^!l9Ua7S_OHn߻3MYSFd| 1QxaQ:hm8lP&#ڭwUtFV^R1+hh7!:6R?>(G+Dқ3s ;LEgoq?{zE&rSXvw5R~?p"1/Ri.:Y30 t 9nd}W𹀂q^Q}  ;مjWЂ~x1!ҭT\pT#9jZ@t`-'3H>RoڬǦ_sJF}:{?9Ee7es)f" c&)d|Z.b9߉ SE oY ^tZ,dU:^LfcȋƐSBg+ եT9Ly&<ßEh(]kWOƹ؂(-͔P3iajM#Rc4 ?S,E!nSoֹYxZ IGNQfe/HHE_萏//V"θHRHm1!!5/dpdOA_D]S`7ϽA+4cY3jPn)vjAl=ܑ hB R=brS(%H-88zqdxh'#{Uʔ'+rɆ𭹩*;qiz "]W^Jz>Nc*/мP r}LCUw֠jyOHg [r~cz]"OѣHp.8Ԗ*[iG9yBo->j5X+L-l]H2(SD_h8|$)IO*b,-9QT#T IqnAC ռ(Zą{W=Xݵ'dXb|+y4@Ҹ mj^oI]Jص^2)NqZ=Oop2܂ŀOjVʨ*I|"׺/FF߂Q(w.}Qbn-؜[zCC?eWULo{z?䇧jjC0٢uҪ6hRi'ginRISݣP+*PAT6_4cAxTbvC*SdaQ, 365;#w72E/ g%3%Q3xcsXk]_LM H$RtQ4^ `|I XG!q&BtuR`pA 1?-NϜ;fXUF?)V~Dĭ>:-WD,v(#Fos$$lg*7f a]3>7ܤ H&{TǾkX/_mb5kY=UaؠQ6_`W&[(idevyZzƾu\G, zEo݊_E9>W{>"m_4s .?wf 09a ̅? ]Ъ̲}~˙+A&1o\0%<[lZ"J~~3qt&OuR c/]jwo `-iG )PtqyDK,#74)Ň$S[$"q -8)18v/V! ` d릧ŀc7B~06uܤ34r,CRs>l_@"W7T V]B~)~ "dZZGaz-HޘXك)QQʧPH`.p?C*hkSQrU$_$rYrT@7$kIj&gǼq*Ta/Gdz:g 5<|=gfcA j9!9+ $4d69Q*d㋢.6 k`l>qVVp5:{x7P{M4QLm9m2 ߸oχýN}Ԇ% _A}`(_6,%::;ָ6+s5Tn,eT\p`nQKbKXĠ݀[ dT%W)f98` ?q,5'7* ܉[NY!*Z9%~r_C$jS!XU$ F:(USX1iSԄFu}1#`ٹ!Z"ޅ`[*o0 FOpIJ1d6`fs-\8m0!|ݠC_픯?-hs1dLJSߟ\̳~z bpPfv߳1*g;ٸ ߃eƺQ}s4 ,xOI"Q?@D홣n"Hß]( _[e@-Jm~#;d &,}s9إVb$SnͨD:2vtZZKdnna 0s=.WR=ewp 5f ?N': f&#b%qfɥJU`L4и3 BԓU6v5u9`~ [2,/*֎00MYΧ||EFzIskP C:W *$ݑҧee Ɣ-6 iO3pOS3a,ӠF,jE{^qX& o,ы^^^aP0@r.]c{u#=""Zee<[ lbleVzGx_9fРǮv"/F6Yޯ~vr9s cKߒ.ĪڶA1$Z`_/.b٫!<8t;ւ+nk Z3&cqˎ6d:<"JTN$sƊ`Csjb_ݖ۶/^lD.p.N l.]!`†Z -;bʔ6]v); >d" Ԥ3Zd0$2F ^ (szڵM=m犞9}Ä+p~{> CfM_%ZŹO zS*3hl:b*"Z>)6}kοkTU\3ed6֙D.6MVAd,gZM:օu[,Pdcsscd_](̃*:rj0P4ӧ 479vdp,hO/Nr- 2#%_I 9ǫ'$WL̄ &qGJ8l(":0٫N~&{/5V4E.m t42XHLR:˅o@_:Ф C, $]ԦȝLCREm!N 3Dlt]iPBjgM0kA?MAE'7uxv-Y)iƫ}/XE чq[~eO ;'TAɩzKc DBכGjٝ; )lQ]*wp"W]}켹:7  p"XiqYx2vw rUs{Ks k䃵|m@C6v\ineXwK17 V?ذM UKպ?5wtO6&om4}WblaɎ,䵵Co481WD]D}ؼon2ok<2܇]b*qEA9!? +'S2`ryph: \so[N6ZD:4^E2VH’/v:8 RFl59G? 0v&Wu2^'=(ϵ,?_Gϸ{5y=U(cQ}SWMLv(y{!m/MZVicuGڋ1[J$nCfUA(p&Jz4WCvbK;tV̚b(6J|Շ` HaY% VgE@!lFy !rݗ8qng\Xo7t mGpx9 _Lu\+@RAykTج~;K?b ZAk!B}h=f" aDDb% hl_g<]~xn^uL!DF鵫 8_$IW{Aƽ#dPن{9V"<LEG8loAkۨ 0'8/`D_B4Ʃ[yb'6ŇGTu'6NOyW"db;=HnÍ-123V硾[ckFى`kEyF-?KV0/M05VNwLQO05J͕VI'QTB\AJyv><-t{l+8YGJtP5#Y(KFuj|X/P<"aYM.^0fȤ|qaJRǺ1oлK]PS[U6.$H[,(S]*7Z,\"#_jA<;-I5ZƦ5iR K,ﮗ.'?nT=S-mҞ6Ӵ.A*>NFtK>Zu؋{q%Q|^{W[uݧޭ;?%TEq ;> iyT9Ƀ31i,Iޔ{f@nN:@d'oyKzaWSt];ᅰ܆.?,>}Uh&44Hp %IoJZ@u] E*Qf0Z^r^B"95L2"%ꢖYfCS.ۼChd$T~t n`۳һn.TUsQo\Y,L3XB8O~p~-UH72&=H$/$(]Us)|r8#g!9>TL۠z*ɾ".9w"'r/T5U2IYM9BHvU@I'Bh=1i&ѭ# @O*)}Qgc3HcRCM}y(hn +@Cu|c)*NiͷZGs37_ ț" R53 4HfTs&P0ޅs^R_z\٢ vs[? OӼ`LS"MӀEz[m2U.zw%z9퍧0<LfgR6bbcJ&sC?ɾ1F("T1!i!mSf =Q:Ls,=/,bu @9m .C:Dc {Q4`rvkg#@s VU9+MX1.Xsڜ^6^SLKAKƷZNrIsI'ݝ_S; W#w*̦U6G H >"@V5JpQ?jX\WY@_N,Y=*!n$֘vgL?*G^N{Ag6"vbf6Gg8BdϏ֕RכP+Ɲ :*bv7~⹶|8R((Jm҇ */zurO )’  %;[&}ǡߖ~yD*^'DB?AJ€l:1"䉹{)V'a–XI޽zQ]22?H AJũBy^e_!QB/*ݬJ&Ax;"4J=ps0X'DddхKo,A2>@!g}6RyݗH||cQN'ΆSC؇FzT7WV$ݑk]|䱌~b:_k>׬o.{OJ:0X$>O{x(ˮEo(V[ o k6nyO)N 2Ⲣ/wgק+,$RX3xQ YޚoWk}EJ/qkFK CAXh[wdfkk ) : ҺWтd bgE@s4^T1۾k20C>[Cuy5(^jYɆ3&WfOT3Prm&aW>TbR[ZX;!tP{e+dv≉kEYxhهL5`$9Pϑ#棗iodIh(,Ǥ+eS9$iO%C,G M–C9T #EE-~G4:Qgh6t{Z2vCځy?icnj 啵2jgrsޏm@N$aD.AkerX-Z_m1Q0Ji&JD_ uHn8HiipT"0 )U-pﶣC?tOksӖv4=ɓ7opur&/(q_Xul1դWR aj䲘;P%cN-ZI}|ZPk}Jk,>>Kr\_7i' s q#Lv3]vYP>#¥iX~\_yy%cua>Ǡ\-Av_8 hH5@Db}G_ZٶGfӤrmV&}&1LF~, z%1?0(Twah)bI./7 b:8W1Kkvc ]s+sRPYPq_Ȍ9f0ZѱaKB!Ǔ#}CVLF;u?qk*Bt"Nfpu:_.csֽpCmB+5@"LNWʂ}de;%!s )K=.2h2$2+]PacSS`8':F:ر%[f@ 2k/e+gf1U((%9S7ʿvieFس4nu%19rv?)L~*bS#gHI!N31-z(;# q=/YYX'OŊ[3ḷ&zf$Vf?#hHcW7|*eajAm7j-*DU p`IF9*(!lD}Aj?MZ(Ǵ/$^Wg-ۏ !9uH.S"MzX62F>G?=Bϣn, z5 X!Fxˮ^! lpn,g3EG)}V͡8*=k^w)ڋx-Ƌ D$r;{ ?8Uh7cB6&BA *m(KqUTZ_ÿd?PXу62N{6ʖh5ゔQi'0m9=HoX9O/gd'Icu-)t[UET1uYhG|(,uD{.t$~Ag j [} %Mg]V6_TW r8 D*ee-A.C:_,[_T P BeYK] YcZ7i,kXMTU| ¶0kFՇAMKB.i7{{PQZϝ8ԸkXrҋq2{^M8'8`"YtAw'^AMO8 Ƅ,W`wbgҏ1{3 AF`qu4roXT]_EcN#Ll[T4jHWR:?a)*RwV;|,{MT f$M j:E԰TteL#LG}p{HD-'$0[Ì@2M)9&Y1s2dbj!351g=DM*4T_|V(DiDpJ(Gi̒U g ݼAJo| Olf"{gZe1W4hsKBWEx Hy{ `;*q:j\D )QueXßlۈ!%ɺL.q*/v}!|Ps^f<= ẦyZ+7%d 4D5qaϋẌzdxw97T- B"CqNzBRS>F@er{XDv.:vZiS|i9NGѽ4WQ(uŊ3HK^.T F@5tw~bMntr CNnp6Ryy6. ؂  tioWu9ox,*=c ?~~sKt'dnI65GZ[jleF)}1,y%]grnE|QYpBr:$ qzϊHJ4kr, QF(miДw$̡XU,)%Ӄ>? _†"93L&Ÿ)+C^gPq8B:ft4rE,܂.XH' o'*#{\g5<q9 wdJC!JF7Le 5%rSOh[\zgs,YM Y\7Å|^* -i!ZZ5,vU}1l-<˽p *)$"7HLGt jSV駄iil7|-W5횣 &TF! FɊ]JII. .ITɔ@>WUn3HW&zxH-( K*7Doa&aMvv=/~1 qEهATgÓ<<ߞjl=-^|\ɕ`vv,i>g][ PY(ViGr^4:sL1uk2c/xхj3*^ \=$͉wXasA!L.Ak%_(LqM/@B*% w,I>&ehG帒+rG7SqNm^EŚeS?X~Ș:Χ ;;ٙU۩ޔSXBʌfDKO.k%.0#P\̒^H04R.xPxT>b'_dXTR7Z^V.#0zIQ])kSͧ;'`h7#Fx=O~$`EP(kz34E;Vݶ Ve&o,V(ͨ,0ֹJ1e<$T'SFSo vOn '/zav$ڍf9OˣJ,GlНf?QF^ͬ4 UŜȊ!XVU OG0wD(YU>孌9Qx#/m_™XCۡ1]Jٌ! kܢՒ \.v}hM1erF&ґ^vɁڏY^ ضO0[Q{uKWm4Z֐LԠDWZ[gl/j4A+. HaޜNsHs,Pƨ~ z|uҐIB.}x|e03^/4'ߞCAV4ptj\ޠXz jp&r}2 Q&hH㭮evɺDzs٦ʥf>i'.~|:ɝȱX ϥ>o^@VLxR#wCŇVFFMhG?^S Xw3.JHCx,¸l{ybVwMxM$31%Q!?SrɻeMzs$Fb~;l7 1$.giǜ:1'qqՍot!q+{utݽ,dciNdEU h^d9'MAz9l2zuV(%\Դ(2pZZ}nldJU@M@l7E@_C> Cwk$h p` T#Bá)kNtFM,N͏0E^_] 5C\}Dqs+h6IlV5r 4*n ~&8(<N<1!OHRxRg>m;y_ԛ(kFXoz7,|k[br(* P'< 4uqd彚%ho*Pu GX[k jo%)<<ՙ7Ga3n =H*n  eXQJ,rK %@up Kt0!^[*|Zt+qyu)vj%)!BOIxXlͽ⧄L si%'Pd] OX.'ۼ<}9`rT o ( f }@S)NS08y/;,fs_7 .w: GPl S"ESkz- TKnC˥q돤]yo8&e|@͇QL/x=-@PSmC RTew~V҄ewVT{snM[ zur:y1s2'Aި Xi/gĔh{wN` :K&0FuUMK.׭GI35˓\ j8\ddzQ=VtLz 5x}0-roЈS-s8=^vB &;`q`"nkڬ(ލX>#|t.$?>56d3OHl@+G.7o)n#`lb#zz^愋ó"A1NʺX񌱞OZVa'+#0D+֌'ݴ;qIavVP aphlXD߮0ufA4tfKz2O%#Ds 0-a3u_c}*_~`/Fj{ig\-XY6(cЗLZċ ЍVu ͚vbS@n9u@x~~$5"{etliRvd0EG,<_ɨ׵rdN5 /W݉Z_UʩfLX)N\Ǜ "&jjv02rvgK<,ɍu3 MAPY3x@pũA6]=ے=8iݕ?S60qqJWAcI{,}q vȇq OĒ;y-#>1 _ p| I,Qp|f??[$ 9PBVWm_ 0x r)B>Oö` m˔+A 7ΟLkvb3)Wtq$K7UKhE# i+P1rҖ9630L3MDǷM~EWMS-q#CX-F ?DˋҔtߋPٝ%KzxZv-kZ㎒LATafw 0^g}Èa Q>*yLnWۉloD)S /OmM#jS7 =}9r΄s0JA(S^S'e!x=C!EIwNL`۵ {.F`tbeR8ĈG.|H*O2,F{n=,G?#sqQ.P֧2246` KIu>PZXOTyG>|qٳv\X=_#LD QKke 4zw^:'\C(Q^ZbthIz6WLKĶof(ap]ALWnjzTTd=/ AьEZB DbCt;75;ψnGDv fo=2_dhk.퉨`EE^CHhaTt*] WpF`5UvM Yq>Pnh ,ƖV@nq]uDE9|gO@.d那yD͉v;4(c5M,6GXǀXxzvHö>°m|=;q/Fo,q`s!NK4#sHyPѵ:eufcnohLOОNge!Nt@̈:h챂K϶Y͖@RKr'a,H]nh} 6]$;xXZ׎OFՔJkHweqK:(h(.B.q&?J3\L"ui>Ug@Jl{-FUlSZ+ffF Va^H < AQced<Rd'N}͔Mt@i)*iaAI\RP0A=ZJX{FkN'za">6ZⰁ,ѵ؝8y5Fϗm# #;.}4XzZTM\>}FXmvФ 4Ie9Rs\M0H  Ĺy)l*&uH5ʅd{B@Pbp=_xHx|[>Fq;yrxYG1t:T ]] ݻ}\1 ɩ%gӫ\_`}<>! 82tr,7l}#S6Iv ٍpVV* 7% }pm-Mn\(fVEbϣH\H`ww3(w1, VJ&8jxXn'Cd-1]j _g?.;nvš< fN}O95L.Xձ&^$N !6 e/†ϫ==$2ȁ! n@Vjuls=cx)Qrj',2IWۍ$]D7$'QbR[=瞐}w[ g(ǧ l/vVϝn?esx]7N vHx}+L?73# 2Xauf a[媂@bnPca8TIZv䞜GNe.ծL7-ULI~WI ~(&J>"X!D٬|&mE=byGV”Q-x6Ɗy[X,ad>U΃ȔJ9  o`SaϜJiWdKk*!J*6׵qm>)HC3oӪX(^DO1q؎K]/ 7EA'^;y-#D/ǭ3#̞&^de&gʎ+XűhF$ir74'mkg.R^>ֈĘ,ScMHYN"i` !Xq7 XQދB[i[!_C3 %X5cTy}G©i+ճQn-Svg&2U6aNrWj>L > 8Yam@/IcXЯKT+@Qqm0E"S4˸&uD8~qMssRgi% T˕X.lGjbj[Ĭ@Do/ .uKa>\~+#oiҵ9o54)8px/7ޞxNπS]?}~pxHh62>`WjXF#KjH~CPd%iTTG? kKD+I9@ YiYƎ>cIGD8 HCtt.%c  '˄ Vgxh07w|'xm{ Y饼$ ϽLZs3ن\;ӧ 'ZU8R͌Cƣ&<[C'miuxE=4`ڒNMɘ }:NC{H2pE@_rKR`%+s Xq6W30nI7!bTaU-Z+`bTbn 7>jb.&ݯ_:GH;o# }9A!ƕlT[a7!Rf疶0Eʶo{Q U/:tq .MdARcg#{3)AD ]s fx)qN#]7}&_s ;:UYh],d0"tH?ԓx+3 *3 f #|V(¼.1󄩧Ys PXtkԿgOO7(ͼTpp>u. W owe[r*pCEׄѐ̜bC~>CHaJnfo_G!Tr6f牐EhB9*y*ց1o3鸞kiUlSx9}5uj.1T)LM IO -C7>pdXbY>YrG;P-;R5[139,NRIO.3h*6AjOB] %4d "H/o:x//AdDi2t?рp)gi1 `GWj-yy' N ^)ēoGby)Vv r]b:9Py#:gOɫ D+9%0Fӛ.{CY80#<[pF)]dej[K,$@+4h\ H,Ws6q3\yl= 6ognDz?L7 F5z~k_ " XŸ\lg*xj&r [gD3C&m-CvRnbDEN:8K_:]:XK/-` ośJ'Pߌe>B LR#b6o8%E iqJ\vA2L$IψpGZn їpo%z@7 д+@7 gC Ʌ|)vp^n"H7uo#/37a2tJ0py(fګV_Q샫9D!\Jْ^vxo#L=J: @u,kFz.iMD  z)uEy2EO_f2I8 ǀ+xJUK5 3,ǑSxXpA0*xw'=~䅝DD -h=.-c$Ix^\АrR :n\U@Ct':`H&3)Aj~ţTp5#e9 KiS@R îN 8R䰟+ʽN|j2hW{B@*>]IlhTowZ2 T_87(_Xլ'L<CހCuÍ4-SrР\x?).u nr@L&죟jQ ɏ[¯ 85|4x%TE4mByj[{3E<U/njbJ=}1!sG !jj<̀Jָ3/j=ئ0 u>cFELq83v=|~ ,p xf>i&;-k* ٿ3gt/XDtZD+ݳZuX}x-Mi4Jjv[#x.hğGy0M8[vt9/ qSlDhtqcj2qQxڡ$mj'?#[=LRe9Y?a3I4?2e(WA0Yi;/umYZvG=;]5ϿMhCs@a_Ը8|)3<;^kJ2јX@D/^ ZБV"EB8Õl|k'_ .-B$ ;$u mY\qg^aS<:8Ư`CT<Nx^n(ɡۤs]z/# ˜^ Q0ۗS~#KoٍpG2uȢ0~tmMJ,5f\S.5 y{C"K҂"_Aj A-~&NH$-gb5uu%'zEBC_Ds e!IoM6*!/7IC9^;IB]rSƪ2B"걠wW5`dۯIc ,[.*Nc5s*ȍ+FK)"oQODEq`G,yc dMeﲠb{[beO.M,>@/Nb16]LޞU_O.K))3tSg|4)@hϣFRcviO~tb( RG{IsGkZe E.d`/!*-ߞ_`IRtЈ2ɡ܇8A,~_.jHx;wDT~D\6~+i .\4feU'Oy/z R!4W)vsrE2<ٝ'Ņ#8'>CrhњAYv;|3,"=s=6+P7ޫ>\@w=YA7q؈'q{D<T^O$AP`PZٓWYs=U!^Y-Vhp}K"vEvf</ˡpM7k9xV;n" p1/jd3GuUm=忼{: ჳ|hc".5avxM+4 ?rP:e qx:U>z I$:U\Mt/X\I؏{ ^lIPۚ³vV$LwOy$3ܭ=;]*{("_ŗ]$oGߝx_yIv@+>TՖuV;y|e.؄F%i6+Cdn:] >R"> 2-~Tga> E[SI!Q4׶N`wW7ߨ%+A(K@j& nLR($[OR)#Ù76r$nfO`| ҽaܷG2O yls%~SKf0$Y%8[L?}Ws=Qb"f-Þ ICTp-";ԃkvRdV g.ڨK r3&^ _P.g3l ޴Շ$ƻ~M4x}3J♿O# <1}߂c0gɴ|h =rH^tS/-,qmڟLtGgze^XLOGϗLɎ&u Yr7WNM;N|A'FKXf*\l)00^LRz5Og"˅?jÖWT;tfIө\dHP &4Dq*"@IFrIa}ɔ]m52rt_ĿlTKB՚YŎPbU^ Ѐ>]o8n_FN>?a95"?eaԗt?341YO @-m!6^SwWfW7wkE"(f\Z齐YֈTE]jfqgbg&";=Mػ*FD--$ON ާO,) n.rG11z K2}ᯯιY +}4} nz'@Hz]O@[:z=F% w7Bg q4`nLE|EsXցsNO,HFH +2IV 4L t@'Ӂ|ؓi'c +;'WZk`=6$@0ě!=mWO"lY͆K| bytω댓p0[9?},4$К>T+yrw} SU꠻il!v íV8H)JL$U=rJUz'!}R51U;G!o=c6A5 n5n-TS-@VN/tvDeHHfZˣɉ鬎@3Sm?҄.ҧ5IԖ0 sAo"[G%FU^)U*޾DQ-V% wI&G{Q%.`#N*ojT=9WijA:P,x d}#9zC5+SDʹ yt?$HJ2qȎ.,poG+.eamYFoFeUpvJ{ >&" >D1+woAgnhvki@$: rq&ć3VѯK_zr9'V dqhݻv8ajY).Tg#RuS.LKx&ҍAUuI 0B478hs>w حl;i@Ufۼ81h[=H޽jVғH}3=G*0ΔQ"S fNyգGuL, g gat % -z ~dV>拒ޢ~15tp CG+" wtѕbJKr(ɫ:4tCUʘD䍞OFZ%n82+T]Tx0[Pn\ńIkk>OvÓQeM)8ͅWٹp#t<:A\ZNuZv}J #/2{RFK,9Jx4o+9]O>J]AfGrO]! yr{ghY_lqJk3[yvrVVҜo5Ԍ4$)sfHZ!q|W# R ;1-cT$?C,D'$2D7cyA^w]ؑiib6I9c0%6ՠߊN/Z5{B*qbnIue@"" =P(+6sTR7 KhI]=*i kvp8m+2Z^1հav6ΝG ש>1*4ELT Ww3S7dݾ4WwQ5[u,0gGa)paϕ@}/E `yx+Oy"&J(QaPy@nh^w)T7 ԼH~R 1'8O_wdEf潅|g}U~ ~“t ukWW$HZf>%rMM,dj~+ >TDgڈ vccXQfXlטeGBְ1ⴼcva3o/ j0Iӿƃ,}G]x߬; ӹn3B[(K|{ YP6 4*_fvb"1 nZq{˔A6Wx 2ǃuXJ&Sȧ`D4@38~_SaT:')Dn? (fN,y 'Nu%[rե4\+9`jeҫ@T~j(1w!y e0 T>FT[Q1׽TtJJA|L=OWAg&<0Z'Aoؗ|bBKJ[<wʗ[L^pBα,nc~ɏ8829DAaCN^{URz)>h*If8&SzfM~Z@.r>e1}T pe;?cqjP[𡐘2* J'e "T9mGPAvt*CO7ϟ:<?-Ul8ykTICG|U[f3ʎ2+mx}.=_,N1Jn 5+&Y#lT_|U~տ1hd|0J0)@OhjsU5(~&ʜ2{Zn0駘 GE_DHmazxQctÐM r( [pя>JX vZ3RǥďvYBAƯ5^8ѡ z$֟twrQ|W7\x;]}k}YBq4ۿ?7ǷGH4;Tkِ(9 nt)Kr)n.?#;Sk8s"Ֆl)JZ}hPn k6E Jkgж'BO[s!cX-㕳C9qyo^J:( w`V%tN:%1 @ *QYn%38lWrMEǡ_=4t&teTyYr;|`WC. Ym쉈lE?06$ՉTEMpH:#25/We5}Sڎ P46*gO# ;t ƺW-|Qԟ2kH% oQ` Ir1eB=YZhXQ?''ٔ%Q)y`ƺvE]kC*0T3L"cK ^G"f?TlekS湼|~d6Tt:"{"x"5JSr`eTf/ |4{A@y(i׶ ΀52uYdբz4dqӃO=nMv$|W]!av-8zEpA)r*ooӼ :Ui8{ #Ln CP}.pʋP\,k@k^ [@8n.Sy$RSnS XiB;+A<>$5ڲ%k|bIۑ2T&1GjM T!bgb9g<0\8z&@1}];G؇*m'9T##|G)H ,:BTPjr uق-X_)q#*YܴY.C1a8;eӠdFˋCVh?. 3+ Z젹K8dVo\` 뛺t~/p"9Wd0 tL;՞~M $jnO__ yz ^3`ȧA1r$fNttq-{D>eA-?CW+Xu y/[3Ś+:ć~Jt|Tb$"׵ɤ=D[ׯCQQC2`c؃^j'$P@1A>j:4;mڑqe@sGipa/Z`GDEjb}@!Ya.-RPUqRd@&,:a_$&| ,<󡤰Q"pâk2bŻu~"CM7+$1 ?} |W&n'm)EBCeFwEr~h~!=<`SD|mD4mWvMeâ6=W( Y-K9s誨g/y2M >yE֙%N]k[drWpoIoK\?nu$' nr[4OKwM-D!XJxgrʈa>,Z<gvϪxQګlm ~?J\n:DdL -*4nŠat}y߲SnGZ=#TXhYZ1c,H*֭ɎPDngoaj&= >RRɯ=ROxoy)fLCmC^M,zc4ސٙEf&Js̃wRXy*U&s`Ɠ(&U##u}4Z ʅ̴69FO/]vmi6,?)̩)B_@{H͊;xGT`7EY QO^"̭ 0%hV/9%%Ew|\|6cRE iK>>whU4- 閛iew"W^5%HծP]JUnڈ =(4)p4/Zu<N2EB{'_=},?~[TVO'YQ@jL2NC"JM5(H'}y5(}pX6aڒ1klߍGQ0fXss=L1;@|Yh{GoTܸ`i.JwY]5M& 3y,bD@y%PؾQ/C;usWA.5PD;כٜ .`z~`Qҧ>(s|2l]Th: :M ~׆`%FmfEާseB @>ĝeΰ{?B=Y 䴍x<8MSF#\N@kn([?%vRj/⠞~jJ'z,K0;ߣ۳Flڐ)9P 5T:ܭBzٯqQ%LO6I3h{!_ѻ#&SLJudS bFt)-u3Ij 4FbמZJ6tD*Mǰ3e,4cV S A7Q@_SAc_ΌhL*p;yIn us=;ΈǬH:At!%$_oV?Nľ&4XbD[Tth{Q@q؛,I/RZLTFXxo*'ҏ<$RHWbGkR7uq2C(ꖟt|T~L%SOjӱh՘: Ԡߟ] .7hwzlJ2u8~ԐAYCLvᛇl2]k93dlu9lH*uOKZ!l1IՔe]=ǻN”U{.8S~C\yX愵=* F#6aM`>Ug-%.o_ u#6=K8o hn<$)F^j&*.P3/PBLo-*ȶ'e#@G9ZAְ#KL@[?V=ǧfå82__bt% oJQCu_|G< IZr1tn m?0q~f) >aҌtE>W6Z!qTd\lڱ-K=C!\PAB] q[[<ț&([G(j贄qۻ.ClsijpAʊ[G%X#wssw6m1֞A_(=9, e!e^4ҾS6~]%鈘\2+ ^+uCB8dR^WЃ4OIiogj`"EUcDA'/Ӌ_V)[/|E_>GN3R) يh3)n${B u:E즳 ),P"\ ShqRǤa$L8 u#T[.h=N2]pNcdk~ՠBXMmVzEhJp}Vf6ےcFmciyC2f6u$O"(X4 u⾔xzv#o<EFyӑ*͂r\BW dC *Ժ~qf+/V& a} |S++r\y3zFfʻYQ߻Wc' 75OJDaj! Zƺ*`Ѷz3,Ԫ" 5 iN,`GqQ b )ȉ[N!"'.Ff{9_: l:$JTz5_LU ۩]:hl<~=B[z\3sgpS=lޏHD93_Wf76;i}KT0}0C0< # У$R)S7g /d0daf4_ g8||Wƙx:'Kqi_Oj. V{?ȒY'KHY[h^gx%Ф¼1>}C\1?M@)7@(+ 4+_aߪt=Rs^C~dy ZHh$n;CixXkCh(*}$^@WRqF3+8@%kPN&}:U d|o顭TbwOFLVyRCMuQ)>{f:}hk"JTޖL,3um'f_FEjk99f偽 r CuKN `ކEmHR ,V&9GTCqV{OܷZ]n^XWB%R_ǹ-ɔ3ڄ ѥ27P ksp ZjYфa+r ȶ#.w 5<[)DYBp,2@, Ǒ?n{6poU _^ƨάcל a*C$2py{O5qq2Ω O$|,P<=Zc,ٷE$%"~UBuגhuyO?ǰZEfՁ͸[˭\|Jc}뀝dЕ]Q9ώG\#,aywl' "4)]`/xZ7T@4- )uahpL&]c(}3d[yD1>: M W-־(βJJNWy Z;PV 0nh;hN^f+QRJ߳LEʇjzz&9AFbc .Յˀmr+,R3˒Dh#Ş:oad6Nup܇f즓ٲ(uBNg(1I@o~;S΅āY)"J{reҥu;;%8M dH/ԓ3l*KdQRv1_33R4.`:2' (<-Gp8p<FhMX@p7 g)5n"׀КV l]KWuwA 72-kN u">Uá|vA5(ȴų=#r=;hxmJNl\9L03ڜ`ƹcdKc1:T2qYĎ=;1RA~U+]>t"IRrp&Q6컗;gS4`9k/&=2Œ{Ia/A]c~tY JV%shNڪ9x_VόkucP7f/C~Cgь܂9塗S4\l4< )qGÝ{D? cgPGR c˂ߦD qO*wQ.m mmnB(/Og~]=~b[ d'5<~(:$e]yۊ$tθ(^ƩgaHDIePl >YA6IzY~t PY:v z{igB@D) tT,-+kw"a|ǚK]MI(!79WQv?;mG7[9A}yPy uU]&糶G .G7]i;]U wpy 9L}zH_+C(`j`]h=BѪϼ0IM:@( },sSs!`"]+4eV^y6}W.c.Go,=H]HC0;1{~Io9:/A=Lq"A-zk]>WA8ҹ3(C7.\Y(m(MsIEym+8fxYAY!,|.|OլV Qc[iqYtCC&;s[HZٽ}0jщ~*]?N?/ǐ4}Zشј 3iti7"s  6Vu@^:؝9`:ᶂ'(lϬ, o&B?3 oO+r~(dAb2nrNچ2l:5i]#Vŋix! Nsaa4wIO[fhA] vJTK38^;eC:xopvސmNQE@BP-'k Q7LsIW Ҽ`w4[n8vvHWrj2FIbXyIԜWݽ3j)i;TU2z eD\?s%R~ Or`+,]qK j> p J0wGfMF"7kƄmHu2YQMͷ0X;E! N=R`uQd? 3ϩ#Et?^_3ؽoiBw?p(yR p-W}׭Mbכn{Pb* zg|sqly'IyrS<˿1G;[>|G5$nH˰>x^zfqGL^x,ILL,[ TF;J6K]ҕl8W4'F$űcy3sL^f݉EG_(f\Ӥ0ᬌ+n\}ȫo+13'=9L Zi&ׇqVD?έU(3w p<O-ȩo̟A0ȟĝ+aKj&{#^;ӮYln6#(?k$g+&Fm(ʊ8ÐHũH#ਫ n$%pⶥ0U1e Kd#z>]S 6*&86tb8°߰J)|'픹(a_- iQ"k|4HO~G*pg#! 0Ջw<Y(ië2#0\:]p3VM;;e8>nmu;]̐ղ [kɤĕ4CyӓU} PBKrI>@)1|Szd#y(,"mRr?;Z[{dENc:0ym[S(W!IijC 䯝BPiVLBe AWzk>ҡw}6l0-@U-ʶT!Cg8baiR CUƠt#,dQU%α~rqds#Z`h=N˰q]RpF{[ UvF@ůtn QdUaԛ#>.3.y`VuUyٜ` 7 Eʧ9[l,]:Wel `@ۆwu'^;'za{Djapep,8zv '"siG=?pq\dcgK t]겒k5}$qag/$mKwH97=_m:z9O[ӄS_fd b[Õ_UgJjۯI<>*P@<]btwdcgM ncj~5`e`E"G_!TdbZ&4mFna kpʱ͔YHe%EGycS߂oU7ʷ&e#*ow{(,-gVNQ0tp9JeKAjUtlW.2\of~GwTd3Q_DO6N]!!r0 fvD Jɉq:'Hk(u⏰eNEvSta6 P0jY<tdE=5nqnt Tc\׼QM 2wFJ!0}w'$P%lgɉ"ڲ5??*㢲Il}ER˿%g*T+ 'PJѱr t(= &VS9! 3kUj$b{ص1(HɞzHgY{rBH9 !*q| goeHml'+Q=Dhގo]j沌R-{ (VCzlrY`o wfb|Aa2j{/Ι7gZTVڮ'##(eJ8eٌg}3 ga֛}VẔs63O+(6?_1vc ]F ox\L]9Ş #wQ׽beC5}=nQ"h*pŻx9XrݖVIb{3v?w[DɄ:Ji|V*Ox^o; z5oVI,vsXe1[AwԶȼ-__S7A`-.gb:UUDς1[vA>.9&h#Y)F+f^"(aP [07#h]76ׄb"f̫ͷ9-<|`Ϋ=%T•mlp:#ecFe48l=%0lLS1D35ݗ&8N|Bֵ1tdH󵢗WV~*fڃs+P[,]f+3^eDl=$Nܓi^ce9 %k ɴ♢לR?q]@g&ivcH a.SЋ;Gdpc!zzb\̦~梐VeM;~¼a1 (aIl~B ,(4~x1}$҅#$\SS{ͳ<6 F?OBmLݙh?˧Y^8芾ZM3- nB O@|fEͽr!&=BvwO##DՊ^ҩp'م2+^,6}kn;ZBJ)C~Q\FCelgHrMmI !r?L  <6{kV8D5T"A `4F;eС7o)Yhbz$c8>1k K(=}[ȕcF}a?@/͹e_'(?u?ŎcPLr0# ~Od6f%\^wMl: ®PkR>T)<8t1!?Ò7BUuDb얷!v Ū!\]#-ڴ7*gP/B7Mͱq]Tm0XQ%682K,mf)m% rcB4[TUX Dʒ7K,ͣ0JOnZHn \i'iGvMtBZe{%͉!s$""'?KBp<(Ol5OmXXpdK:zy_j7&G|r ̂_%3Xi\TfV*FlPr=OܣiQ8GUm `> Ar_쓦l5W&(Dngxz|d]v-퀹,} [M.:i*@ VD%=*y5܋v Dǰ'Rmix @W7f.$B8  nFå@\Juʯtb.vR2rZ0-*2)jfx\iCt(ohJpd\#к֓uhL ;EyZy{DVRފLli!bl۔' XƷ})vw zN_т&/J}Py .ZhWoN% w*q9+;スx!ww @otk} !pE7_ޛ\Z  x9u+_?=ދQ DVQ` eme8|G:"מ][րz,9.0oUQg+8zm'Q↺OKL0أW0T"t"+[xG\QȈ,nlL,{SN>9kWVVܰZEjkur#Hzdr`ョ]7;dB.[C; 0ÿ٢L. %H531 |{. -,ցX}iH mYtj@nS$+cC;U?s K*`RMAh3b%8+սwNk!#80>fU ;2r z~[5YhMq D%K2QfSZ|S -00.IPؒm`-r9ͩ@e,9T|H2wt,F5.Kq2\G|57 Q4+.vrN7J_֎B#m-XLyF؇x!-?Ƣ6s\I>6F,X{& -naVKPn(~`?Ab_S>6weU:c]]eO߅#q`"a6i+ 6ptcػ2^Nq?aQƁV[Af#j3<v!6;7_u qwNUWBw*Q!Wj;._@gVI3lԊ\ sC\X>xL{){}jOd1OqD' 7 ix!**Y0m?JCdmc{rwp!.`I ̴振m_ @ Ia8\ѥjpACY`뇌[ )hh63 2I`X@umhCR놻!`>,߉]d8eHRUit+ L-,Ck?"vš#4_Kdo&V8c"F@ :K87 KJɜ+iӖ;9G%}P^c|;љcr'V=݈b8,=+li9 A<չeS2FfZ)v8a˥<0F5Hy׹{?*j:Slux6:nuͬsn` a heCR%(ʪ|uoY6`䛀xpfk\kBb,U.f,Q2 Ь^xT);,Ȭ7dHH z7հNGgIs0}3ɂ}7@Ff$Co+^_Rdنԛ@O/Oj<٤qz?rMJLy{PH0 Mg;V:^pOUNJb+/E0UlLS= VJjrˮϧk¯4<o!e('wv{#@ ȥ@1SF+kyjU6$qW]t#VSҵ&ZЏgDN|7¤x*|WM169W}䫷=@`zF1A o4\%6}hyOr4qJ* ?mM,pCښz8| >`\H0sY*Ѭ͛V^*Df;v6 U;(_AV|jF1ֺtyNyUDi< ui %Ά2b jaj=ubC޼W&X1)è L\;*?<g6PJE׬%c)NG:M=X%Hb'ÔQ$ҒN +B^~9kcGkTNdN [J8P긫2"tw8Rp|w@5Z=LW0?nlހA_?CY:ETrs= ,Lnag#7QMWWOwhgQz(*9R\(oz/t_3^f5±lJe" k.tc`ִ+7cg>p3h>)<iǹ&P}1^`N«cF_`y[;JévR glZ;or|ILoD(ώrD~G{cvʡ5;S "-;%ys,i":nL"AFGpHDq ׇS>Q:<>Ɗ߷8W ?3~L[ bDH9DTF6AcSO fWk a0/7sYn ])HϜ@z\d/ʍ3rƣyhgⴵrq1<4o'ZhK>ll@&i_کB jq\?XѻA& YLv⊀cP lJ|cEK_\νS\6uqb^6ȝ,Jj$a8ݬB5dI6._.+n'C*|X2Agj*x,_m)K*2ոݺCF4Iޖa:4lnb}ݶmEf+Rz/kNoK@8uTo !$];;p+Z@N׏;f⒕h@ oqt䌇`춊k:S۫)!%dҸ:|J*&׭aa.1vȫ!Gsa~IkOϹ˛T462ͶWGGQU-#%7;+!(Sif).z[[9W$ dPIےO/4,p$س*]+ RCK{׻4>ԟNdXTuʳ@dO!Br^6}Ҋ9t\Zn{"@M:OU^ a_0~@$[٢iB2A#?BKzBk}AYf!5V;]s:V2+%>2L ;S8#gqeDF1Z=Y+9]7)=?Wi*`"’$j ?"w$59rc4K|YVUi}uBḐNs.|><.~:Lq3A?AףQVZ-uf81 fق]/suXւ՞VL.uj2VSrÙ *cB@xNqzJ'a:#T kۅoyU*s֭W,7 um#M$8:tO`I@QT, lfH(Vm֊%=&WK)` ;r^_fhg,* cb uNfǫ3ʄt.}HwaK8Trj~GUSnTv09Ah&`p duz+pQ?јG \E+-'ochMz c,2%Y˓vvjA!FH)1'x @b>רՋu_AYȦt!{ ~cB2ZZA.Z) 8(Ecg 8Lu  ]z*2g՘ĈY eJm[T$΅U'Re*.70$%LOCZۺuM#xqOC#r}< 6{Dk),S2pt@`z`WgJEm59✷w-#+qHP˙^|Nv"+rA"5 J)aR8hF=* Y(h k #mH薳ЎKoN,(!ts2L󓋆,N`COl:![|b,c?Nː{]b\CI p ş4٘}b k=ҊQJQ1zkU~i.UҳCW932#'GmVY0d!`揆$n,%g; WzWl'R ՟=rJZ=!_$3 д,Ћ2i@6(E?U"[ɨAݏO7ǵQ<μ(\ Nb%R t0)g%L1ڄK}v'3T#Z} 2dmo7a E2 X[Ѧ|M<]GOe\amAHɣ6mL:] $v@ܓa)nbB45+R,Kֵ1P'%]f90s \;k@?z{1ﶳ۹T$yI&;~볷P_e*'m]uVRΦs0mJ*+tca؋GtA( Ǘ:+b2?mw >,cO(4;uQbyT_.qy\@'(|Sl̖7bkly,"CmQ]$cMkM6הa-R3 ~e0m_:CH;u/dh 7q5j\WίR W9P+iC,p*:CdF!K.JIWթ17+T}+VaS\V:P}ϬssP o]ԱOWΏ(uH#C!وSGs8-",1-75eK~+'Y ) d(|-{ a24y=>7 %ȓmB+l&b `<~-âRsu&XFh ,4}M=?v`Å%lH 9`#%=ҭt7Z>SB\*`|5Il8{W23yhJ}CΈ1s'ZT̼/<'&f&u(ε {'q+ ȇ/yGN]ӵJF(~hX; i*\ӗǢlQ;:A@MrxHk7CX`.8Qо$wH_}WQ6_jFuO&4(YoW4lNAZc)ͱ<](>j/CDl=Mw)SpU8?R`ew7)}Xgh6 L>7o a V y]v{ӮZyr<*mQ"=VmQzɚ.𐺵]RfEz0UaIgbK:InYfu4/X{Hy2 ]qw/tC5J\3oh !0cTp(T.WYt s i)Iʩ?^PGϣ9©<HrQDѥ•hqm_1$JmDtU jnG?J3IBd'5gX. F?U@?CS[~ xh$Nǽm :(߃U`]l@e9i[E61\!ڬL4`3@Uލ2 Fׇi9vk-ld7?%0l]w5 $;Ac2;;>^ f5(H:d4La֢9|)=;K0.,Nv6XBC0T'X+ڧb] 2܃*'C! &pm(Q2JT (O |Fe<ˆO/WR ¯5??Tf4B#C+ K &%+`Σ*C4$,^+hj}<B'HN:1`{I@"TWQZ[}^$6 x Bb >h8AEL5o\ n^+Ͻ0oVtL' }쭑2ಔWdO.".3QαaNFAZK™mj(Hp1p&qtə$3Kie93U餐CUMW;2 9X| M7Z{jlCbQ$ˇ*:'BW긺|r}`tj%8jo'Fni(" L>XXҔK _<$̵M?T D!ivޓITGdJ*p9MbJ~s&Ϣ_B RlgHc-"iy9uede,Z,3 {LuU0"1 7RA)gSɕ者 \}:.g =bkVØ0xId.8cƥ_áLW'ԋ w:6.nj.c%I 5~GvyNle4|,àƲwh yID\ {CBT Hz`9liԃ|%T473̏酞s(@57̫l +W۟ڡ~RzxCmu,;ڳe '-.3eD_x3y?HD˸4% ݓ$Xc8SѾW=);c"ůϢQCn8!vrmĈ[ ޘ\e] $U,6< 0]] }kwmUВ)\og& ZfX=yMSYֹ7䢩N^8 $]RD]N3[b[C%j!K5Ξ32v'AjF7i,w W49!z[6WNLu.=rS"PV,ÔJ /2GqЙV36uM`bUgކ{R-rPB"fE runI٘(!'F}q\0|x(36n2=kfQjyw4 e_E)+@8\jPb;'\rH".=G;[k,i`Kb3i35醃OsQ2Sa5{BgLŧ7K:Yoc{:&֢]_ G,~'E6E{}̨H6 Pij9oG$tnA^1–Sg.::7BN3=aG,E ('[B(TPJא (F.^sKZKcP)_kYԹ瓛Fߗb>e"\Nb{SfM9fH3Ԥ&h(] \}: BxY%lkw$+H[1]{lB`ҿjF~JB62*5{ȐEm*9Ͻ6\k4R%U6]'7K 4ާ&I<NA~K>J:~ׅ[L~75'Ŋ9kI]eݘ67ھ[,GMs^!Og]}`!(% VS4M<z*V^PuO$oXGvҟ&?֤5TĿgqe/Bo֟fhM[YY/k]G o\zY,s'29mT: 9~ϴρAey.}ΉSUnL|>դ0w3Mh-ly:6IN&ZMn¦D Dr`-b;Rake!r%I Ea8Q|[EOӕaH0](;W>9$(9([4zOK=x曯H;[}1RvtuaYh0("TqbV+J2k$@>,* rP!⅘-ɼn銼u$v1kPK(L* Z_br(D6jdG,k~UbC'<)a9*ai2m Z^} 3`f;jh+K0yw. =ح:8nTR.`kjP;g %g&@DN{*)IK\nCɬ9ڃ}.mi(A1>!k$3jWIc:@HAZ霐 nOoMjN\p{P.T,e[hy!sd>ǵAV&)QqhE5dC,hpw#Nw4DZ,ʽ]Ls$s68l&3Riژ"r<*]-3nڨc5oڋ[3n΋D\Tݭ/3,koSBSMAO2+i/dmA 4GS@(z?,l,BDn+/m)8qqYXcw?gλ;^Pu}Up8^pyK:~6NZƭ9"_T1utk],|:^ňENS0K2 ƪIܗyWImDBk&fRvbuɣx1lH$]VSJ:^P8]ByRI>V{Jۅ[j5pxDOYIL$攜or;E͟agC({q{amzQh[k {LDJ+M}+(q>T*_yd& lars$dcfG YHl_ӨCHQ=6gEvv|"؂EvZWA D뾴DpLusZl71`iKF~q |g֚!jg30l@*4OڸxNdj8so$G&t,*ƒp8ZwzX\2Hp1}r<"1w>`SݿpPs%.kl4vT'37pS+r{#HVÌ.;B([0o߈A!z[&%qkp2ET G#%]G? iBէ{e뮆&/SmׂƂHОsbn'4YOˬJ]k]Uk(5S5_UA#LԜmmIL9 ,%A}#A.n:2@r3o }3ǻI\ɢZ9iY]D.$5[=Pj$kHi'C.ʧj`>\917IC w8=GHMd0,߼~683uH FL)[)$f&~JߝIQHɦ Jqƕ<&R,K4_sD,`, s Ԧ>,ZAKw6-rP;"uI#帜Y4]z*$>PAXmN7j&!2.%g\fFsjD:ZUw5T: CIZ7%-2ghjC7ZbDF^.4 \է  q"6ɱ ە5tM78)ctynԷOAdb@M&{L%V4ebu-Lɴrƒsk{b N2D n߆WMERey$f#MRխ[Oq$U(PNhX#& 7 ϝ7mJ[ZeQn rux?'.C]})q mf>n/D+ԂΊ,o2&H1K=Q{P_Pp^ZȍҒ>.[ղj?'~tSX$wk ;8+v2eѤ}4-f7_6 Ӭgbx *SmMkK@xe^q#^ &DaUu, 04~-}a! ).sc4Grg$.ppD'϶ *xA2~X-xY14 u]ηzn_[z$k}쩨Sy"':sॠ=Wg1nvݾqu}?{?Lر?SZ/. c2^ % D>W 7ա[%% iޛku9"vkJzxP^tJs< OF֙s]_a8$FڏLS
悝!=aFY:RP%D[9ՇT}om3<*ahfx1ZӰY dm(oQenֶYg*'C6@oʡnt⚯)79tcj_+'TDԇ4pT>LN 6Œ]YHnײR3;#@&H"GV FWzPMƲX#|7R0KG84MŘj-_ 28y^j?ŹEޭ >* ͋+Tz3S{ư:=iȬYA^~8Y͌kd=!d+^%EutHR+9cH 1>7]>-Q[a|s] hHaHawR횸_=P)ֆWF~YLݽt&dc!"Rdja7:y!W8ˮ(-\Hn 9j͋ @nH/uD|G4eGi9JGܓkcݐ*A!BKYcslo M*a4+i QHZ{ŽtT~0H=5`v1͟Ϡhn 6d̆R^GG_I \㧘"5.E K8Zu*E1)H<$|&v9i2VmT%H{ߊuޙm̒Hr sDݻ ٢-1.Ym[G~iڃ\(L/ɳJs D a#t%)-~Zݬjs vuCSп:&Y?Dm ? yQS:&T zW"7WཕkJLJ/Cq޷f\wUׅzf7bվJY6sAV) IN%K-DzsYb{,*Rt$iJ9ԶpuϭB`xU$~KShX$.Т:=/|UDv~W$}AQ{WDgqH(w5U_!ۖ\-Z69XD%!x~k+dwHjM0 _|-mnы&ИOιIL}dX!|~S3>[}v 4l/Ђax"7(nF2^C5|&#e1_.3H™P+P$0L[z{_{7mOD x'BG2:N±Ldtыv0-2a⣥t|,bn( tj5Em>v6nz١nr1J.pE_q_< +:㖭M^tuOP EW١BR#!=3cnR.hQR}h0# o?X(Wxw49وKDgX3.3h R$*!vCsEЫc7AFa6R+sHxpy=/|]X_6o8:-'!N_؛gnLKSlւXvc>Jks8fti+}c79ʏ~nhRڽzٗWՁ2g)s0'_NF)/E/bs!Sf6;bAP+Э謴>;seSG5œ 9?'9~ ɍha)?1VhRLNIJFnte3z?XFWcچh8,c!/qwHnNwZif.׼/uOEDkAS]j*Mภ4)țwtY=*:+j,x]@-fC?#/?tiVi01 /B]|T HdQ1wx >M LHDm05=<.9-f뢯nEj(T#DB'Vot@w9 ">6+3#N0nټȢ"SH+^[U{5&,y,d"  N ,Dxm'1jQ?.Ac Ȯ,>E$ZAf(1;Y{ T0t-_y ^ztE7 fge5\JZR AKg@04܉}[vÞvt;Yrbǘ4vkga0+b,{q%\HSNJ멢,Yq WN>KaJm^xÝHFj:<l*'56Ifo:2GsXQ5>ϋbʪI᷈kn CojsJVvv#NdP漮y;41_ܖnnDl)K/+|FB夺6뉆fiGyޣk'EtmHȾFJsPyΣ'XeK9l9z7 Gwrv lY˷h3XH?]"K@b}Ŏrgoh@C,gJ>+l_6(@|=Y?:tTAԖ{vQ@ۢ"#я)`ߓe6䚋%SԎP ,%TVcyY rL?=M͉J<`{#Eɛ914 u 7ZX[`؛χ7f1a2ZJ `Sol Ox6+hiKQHsOyB}> <&O TXLOH{[pYse]Ntv`Awwȴ*E'g_lfZ>enh$mganTO68e3%k]9Ρw*V7{diAyb*+ez+>9GtU,^,jI:o[U|hZ3 d닭 +=}9|@̄1 qSw3"(}k)V:#,ADsD?9  y7N1"IyF pظiiAοj ~hr P!_4E-]:AlUX.RdGk,Z)i'ڟ(sF_Qdr(]AԢJV2֣/(t[ a̮oە G>(ʊB5&(,}~D<c-p.J'ߟO˙Fbc4RwW)"n!5A-s%xe5+ WGN6<ܮO1R9W13E4B #:TDv E$d+EHDM尀<Ĵ4ud4]mh^cL||-u/ Iۘ34cIibQ0Ih$C._(?~t c0=YϮWi|8( m2XcngZkp ZCX |a!\Cb^["pW{eE(LXrˠte ?5T1|N*/U`o+a [$A%zQp6y#VO7&2 E۪,MQ!rQaǃpjC;(BI&t߻DQu:ݽSv|WϲGjlG_R)̹@.\^mHcg,}fï>P"v,AR.PSUыoj"@DV#?nSa %^]715id=[ˋqE>}]:(܉,Rj #;-!b8|JlggxpoGCaʒϹ' wڄs {VtX TZ y$V!`5wQˏ8,MRJ3>2q5y4x skjB?v'R>&*6k`b#&x{ c,hDZ$PGk+&iß ɸ *|;9|ua'@s[s!EAR!#[,% !8wVc ڔT!_3/ `f0`Ǻ܆QJzJ胘*l) J@0PK|c!AhWjۨ°}LCR/4ۖdܧ! ' GmF:! [k}NDҦl$l]Dgs^h.+O|%XxɄȜL`I2hb>>f+ ޟ<ֲCICZ$Q o"6\tt1Oc8?yF v -f+6黫텁m;r :U]֝Ƃaz ]A7((|V7o&Č۰׫B.wG_u  Bך~/ޚmG(< Mu{ltẚFU^z>lзejσ=e]wq붺k%~ӒkK,x1~vP|~ݪϖDz<@YG0aX&; AlQP`x2¸ZW0;Z Fnj?j067cz:m=2X*]sS 6! ?cuC1+&S &$K˺P{ 07US@Y(V83l/g61ߟ(oOsziidUߗDY,# x|ڧNM#;7$4FQ+iQY[r8|:^43C_b?.*cW=>ˠ{FUD[Zom* V8Lu2Xմ7s?"YUU$E{L^: sN&`HJf%r¼ƸB 8+źBUIt15Is@̽ThV!ezYHONt 6;@ܿe+ae[D<ڧm,/i ?-9j:+/ >_%U/ 8RBn ; =Y) c`B;4jڳ#9A*+cm'7śpE낀9XDjn79a%Vyif',B'_kFnǘu>eO}ovэ^&*e7^:6Hԭl&\BBz`V0 ;f/q1 &d:z>]MPȑ5I3E?sN ,Ds^m!Q0rv!2ngߝUSѪk(crȽr-MWэ%@QߣfhFZ{ @2kˆՐKƇoȊ>Y9jf9l Yaxi0x>]ƌ1ؓӒóZw p+f[D;"J4XU$_]l60O\|]= ֩.jɜ CHGusYL%.hۼCB8K̝MV sN<:`F1Y;&Y7fd!ͮ vy~ltVP"*S 3D<SJd u 5|Y|lLWl@]-;qQ]m.|3"B3̢iv ]2˛f~ ߚ6TS"Q[DWgw34jXMltڔȨ _X%+&/:ݕB&  F~W(%?xj5fB,`(#}N2kaOfAXb.[ځ(ZܢC%FK0V-EɼEuc0;rII#JѦƌ7|͜0LwYr{bxw-$é|0<^@}@g-oZ: e-Ҍ[a\㣛37+8cV~uN-ôIGCg-,tnz'p@NxnF&'Z/ő{ {?fZh5'3f9Zmtܚ;gϊ%l*^f xfr$IIwZ5~"iJKOv< !v41}eQcT J?L1P{R sz Sd 逧)<+$=N 8#u +g\HSuʼp:}a膜T0K~O j. 녻r.:Bt Hu7^JROy» nW 8i&ZJN+.**|'n&3kwew'|uƓ T0w9_Z$+&Xo~/ 4Y1-R2jX܋x. #A*[A '0w lH7~*Hq:. g7:ߜk{}q6+S*B t-jyMУ0 2oAyF _Eײ>C{w{s#c۳Ц"]r{ F)R 쀉KQN5V =@XHҐMbӰ"N U3-st@