inherit linux-kernel-base module_strip PROVIDES += "virtual/kernel" DEPENDS += "virtual/${TARGET_PREFIX}depmod-${@get_kernelmajorversion('${PV}')} virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX} update-modules" inherit kernel-arch PACKAGES_DYNAMIC += "kernel-module-*" PACKAGES_DYNAMIC += "kernel-image-*" export OS = "${TARGET_OS}" export CROSS_COMPILE = "${TARGET_PREFIX}" KERNEL_IMAGETYPE ?= "zImage" KERNEL_PRIORITY = "${@bb.data.getVar('PV',d,1).split('-')[0].split('.')[-1]}" KERNEL_RELEASE ?= "${KERNEL_VERSION}" KERNEL_CCSUFFIX ?= "" KERNEL_LDSUFFIX ?= "" # Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture # specific options necessary for building the kernel and modules. #FIXME: should be this: TARGET_CC_KERNEL_ARCH ?= "${TARGET_CC_ARCH}" TARGET_CC_KERNEL_ARCH ?= "" HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" TARGET_LD_KERNEL_ARCH ?= "" HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_KERNEL_ARCH}" KERNEL_LD = "${LD}${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}" KERNEL_OUTPUT = "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}" KERNEL_IMAGEDEST = "boot" # # configuration # export CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}" KERNEL_VERSION = "${@get_kernelversion('${S}')}" KERNEL_MAJOR_VERSION = "${@get_kernelmajorversion('${KERNEL_VERSION}')}" KERNEL_LOCALVERSION ?= "" # kernels are generally machine specific PACKAGE_ARCH = "${MACHINE_ARCH}" kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}" if [ "${KERNEL_MAJOR_VERSION}" != "2.6" ]; then oe_runmake dep CC="${KERNEL_CC}" LD="${KERNEL_LD}" fi oe_runmake ${KERNEL_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then oe_runmake modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" else oenote "no modules to compile" fi } kernel_do_stage() { ASMDIR=`readlink include/asm` mkdir -p ${STAGING_KERNEL_DIR}/include/$ASMDIR cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/ rm -f $ASMDIR ${STAGING_KERNEL_DIR}/include/asm ln -sf $ASMDIR ${STAGING_KERNEL_DIR}/include/asm mkdir -p ${STAGING_KERNEL_DIR}/include/asm-generic cp -fR include/asm-generic/* ${STAGING_KERNEL_DIR}/include/asm-generic/ mkdir -p ${STAGING_KERNEL_DIR}/include/linux cp -fR include/linux/* ${STAGING_KERNEL_DIR}/include/linux/ mkdir -p ${STAGING_KERNEL_DIR}/include/net cp -fR include/net/* ${STAGING_KERNEL_DIR}/include/net/ mkdir -p ${STAGING_KERNEL_DIR}/include/pcmcia cp -fR include/pcmcia/* ${STAGING_KERNEL_DIR}/include/pcmcia/ if [ -d drivers/crypto ]; then mkdir -p ${STAGING_KERNEL_DIR}/drivers/crypto cp -fR drivers/crypto/* ${STAGING_KERNEL_DIR}/drivers/crypto/ fi if [ -d include/media ]; then mkdir -p ${STAGING_KERNEL_DIR}/include/media cp -fR include/media/* ${STAGING_KERNEL_DIR}/include/media/ fi if [ -d include/acpi ]; then mkdir -p ${STAGING_KERNEL_DIR}/include/acpi cp -fR include/acpi/* ${STAGING_KERNEL_DIR}/include/acpi/ fi if [ -d include/sound ]; then mkdir -p ${STAGING_KERNEL_DIR}/include/sound cp -fR include/sound/* ${STAGING_KERNEL_DIR}/include/sound/ fi if [ -d drivers/sound ]; then # 2.4 alsa needs some headers from this directory mkdir -p ${STAGING_KERNEL_DIR}/include/drivers/sound cp -fR drivers/sound/*.h ${STAGING_KERNEL_DIR}/include/drivers/sound/ fi install -m 0644 .config ${STAGING_KERNEL_DIR}/config-${KERNEL_VERSION} ln -sf config-${KERNEL_VERSION} ${STAGING_KERNEL_DIR}/.config ln -sf config-${KERNEL_VERSION} ${STAGING_KERNEL_DIR}/kernel-config echo "${KERNEL_VERSION}" >${STAGING_KERNEL_DIR}/kernel-abiversion echo "${S}" >${STAGING_KERNEL_DIR}/kernel-source echo "${KERNEL_CCSUFFIX}" >${STAGING_KERNEL_DIR}/kernel-ccsuffix echo "${KERNEL_LDSUFFIX}" >${STAGING_KERNEL_DIR}/kernel-ldsuffix [ -e Rules.make ] && install -m 0644 Rules.make ${STAGING_KERNEL_DIR}/ [ -e Makefile ] && install -m 0644 Makefile ${STAGING_KERNEL_DIR}/ # Check if arch/${ARCH}/Makefile exists and install it if [ -e arch/${ARCH}/Makefile ]; then install -d ${STAGING_KERNEL_DIR}/arch/${ARCH} install -m 0644 arch/${ARCH}/Makefile* ${STAGING_KERNEL_DIR}/arch/${ARCH} fi cp -fR include/config* ${STAGING_KERNEL_DIR}/include/ install -m 0644 ${KERNEL_OUTPUT} ${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE} install -m 0644 System.map ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} [ -e Module.symvers ] && install -m 0644 Module.symvers ${STAGING_KERNEL_DIR}/ cp -fR scripts ${STAGING_KERNEL_DIR}/ } kernel_do_install() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install else oenote "no modules to install" fi install -d ${D}/${KERNEL_IMAGEDEST} install -d ${D}/boot install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} install -d ${D}/etc/modutils # Check if scripts/genksyms exists and if so, build it if [ -e scripts/genksyms/ ]; then oe_runmake SUBDIRS="scripts/genksyms" fi install -d ${STAGING_KERNEL_DIR} cp -fR scripts ${STAGING_KERNEL_DIR}/ } kernel_do_configure() { yes '' | oe_runmake oldconfig } pkg_postinst_kernel () { cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true } pkg_postrm_kernel () { cd /${KERNEL_IMAGEDEST}; update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true } inherit cml1 EXPORT_FUNCTIONS do_compile do_install do_stage do_configure # kernel-base becomes kernel-${KERNEL_VERSION} # kernel-image becomes kernel-image-${KERNEL_VERISON} PACKAGES = "kernel kernel-base kernel-image kernel-dev" FILES = "" FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" FILES_kernel-dev = "/boot/System.map* /boot/config*" RDEPENDS_kernel = "kernel-base" RDEPENDS_kernel-base = "kernel-image" PKG_kernel-image = "kernel-image-${KERNEL_VERSION}" PKG_kernel-base = "kernel-${KERNEL_VERSION}" ALLOW_EMPTY_kernel = "1" ALLOW_EMPTY_kernel-base = "1" ALLOW_EMPTY_kernel-image = "1" pkg_postinst_kernel-image () { if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then mkdir -p $D/lib/modules/${KERNEL_VERSION} fi if [ -n "$D" ]; then ${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} else depmod -a fi } pkg_postinst_modules () { if [ -n "$D" ]; then ${HOST_PREFIX}depmod-${KERNEL_MAJOR_VERSION} -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION} else depmod -a update-modules || true fi } pkg_postrm_modules () { update-modules || true } autoload_postinst_fragment() { if [ x"$D" = "x" ]; then modprobe %s || true fi } # autoload defaults (alphabetically sorted) module_autoload_hidp = "hidp" module_autoload_ipv6 = "ipv6" module_autoload_ipsec = "ipsec" module_autoload_ircomm-tty = "ircomm-tty" module_autoload_rfcomm = "rfcomm" module_autoload_sa1100-rtc = "sa1100-rtc" # alias defaults (alphabetically sorted) module_conf_af_packet = "alias net-pf-17 af_packet" module_conf_bluez = "alias net-pf-31 bluez" module_conf_bnep = "alias bt-proto-4 bnep" module_conf_hci_uart = "alias tty-ldisc-15 hci_uart" module_conf_l2cap = "alias bt-proto-0 l2cap" module_conf_sco = "alias bt-proto-2 sco" module_conf_rfcomm = "alias bt-proto-3 rfcomm" python populate_packages_prepend () { def extract_modinfo(file): import os, re tmpfile = os.tmpnam() cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (bb.data.getVar("PATH", d, 1), bb.data.getVar("HOST_PREFIX", d, 1) or "", file, tmpfile) os.system(cmd) f = open(tmpfile) l = f.read().split("\000") f.close() os.unlink(tmpfile) exp = re.compile("([^=]+)=(.*)") vals = {} for i in l: m = exp.match(i) if not m: continue vals[m.group(1)] = m.group(2) return vals def parse_depmod(): import os, re dvar = bb.data.getVar('D', d, 1) if not dvar: bb.error("D not defined") return kernelver = bb.data.getVar('KERNEL_VERSION', d, 1) kernelver_stripped = kernelver m = re.match('^(.*-hh.*)[\.\+].*$', kernelver) if m: kernelver_stripped = m.group(1) path = bb.data.getVar("PATH", d, 1) host_prefix = bb.data.getVar("HOST_PREFIX", d, 1) or "" major_version = bb.data.getVar('KERNEL_MAJOR_VERSION', d, 1) cmd = "PATH=\"%s\" %sdepmod-%s -n -a -r -b %s -F %s/boot/System.map-%s %s" % (path, host_prefix, major_version, dvar, dvar, kernelver, kernelver_stripped) f = os.popen(cmd, 'r') deps = {} pattern0 = "^(.*\.k?o):..*$" pattern1 = "^(.*\.k?o):\s*(.*\.k?o)\s*$" pattern2 = "^(.*\.k?o):\s*(.*\.k?o)\s*\\\$" pattern3 = "^\t(.*\.k?o)\s*\\\$" pattern4 = "^\t(.*\.k?o)\s*$" line = f.readline() while line: if not re.match(pattern0, line): line = f.readline() continue m1 = re.match(pattern1, line) if m1: deps[m1.group(1)] = m1.group(2).split() else: m2 = re.match(pattern2, line) if m2: deps[m2.group(1)] = m2.group(2).split() line = f.readline() m3 = re.match(pattern3, line) while m3: deps[m2.group(1)].extend(m3.group(1).split()) line = f.readline() m3 = re.match(pattern3, line) m4 = re.match(pattern4, line) deps[m2.group(1)].extend(m4.group(1).split()) line = f.readline() f.close() return deps def get_dependencies(file, pattern, format): file = file.replace(bb.data.getVar('D', d, 1) or '', '', 1) if module_deps.has_key(file): import os.path, re dependencies = [] for i in module_deps[file]: m = re.match(pattern, os.path.basename(i)) if not m: continue on = legitimize_package_name(m.group(1)) dependency_pkg = format % on dependencies.append(dependency_pkg) return dependencies return [] def frob_metadata(file, pkg, pattern, format, basename): import re vals = extract_modinfo(file) dvar = bb.data.getVar('D', d, 1) # If autoloading is requested, output /etc/modutils/ and append # appropriate modprobe commands to the postinst autoload = bb.data.getVar('module_autoload_%s' % basename, d, 1) if autoload: name = '%s/etc/modutils/%s' % (dvar, basename) f = open(name, 'w') for m in autoload.split(): f.write('%s\n' % m) f.close() postinst = bb.data.getVar('pkg_postinst_%s' % pkg, d, 1) if not postinst: bb.fatal("pkg_postinst_%s not defined" % pkg) postinst += bb.data.getVar('autoload_postinst_fragment', d, 1) % autoload bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d) # Write out any modconf fragment modconf = bb.data.getVar('module_conf_%s' % basename, d, 1) if modconf: name = '%s/etc/modutils/%s.conf' % (dvar, basename) f = open(name, 'w') f.write("%s\n" % modconf) f.close() files = bb.data.getVar('FILES_%s' % pkg, d, 1) files = "%s /etc/modutils/%s /etc/modutils/%s.conf" % (files, basename, basename) bb.data.setVar('FILES_%s' % pkg, files, d) if vals.has_key("description"): old_desc = bb.data.getVar('DESCRIPTION_' + pkg, d, 1) or "" bb.data.setVar('DESCRIPTION_' + pkg, old_desc + "; " + vals["description"], d) rdepends_str = bb.data.getVar('RDEPENDS_' + pkg, d, 1) if rdepends_str: rdepends = rdepends_str.split() else: rdepends = [] rdepends.extend(get_dependencies(file, pattern, format)) bb.data.setVar('RDEPENDS_' + pkg, ' '.join(rdepends), d) module_deps = parse_depmod() module_regex = '^(.*)\.k?o$' module_pattern = 'kernel-module-%s' postinst = bb.data.getVar('pkg_postinst_modules', d, 1) postrm = bb.data.getVar('pkg_postrm_modules', d, 1) do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % bb.data.getVar("KERNEL_VERSION", d, 1)) import re, os metapkg = "kernel-modules" bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d) bb.data.setVar('FILES_' + metapkg, "", d) blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base' ] for l in module_deps.values(): for i in l: pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) blacklist.append(pkg) metapkg_rdepends = [] packages = bb.data.getVar('PACKAGES', d, 1).split() for pkg in packages[1:]: if not pkg in blacklist and not pkg in metapkg_rdepends: metapkg_rdepends.append(pkg) bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d) bb.data.setVar('DESCRIPTION_' + metapkg, 'Kernel modules meta package', d) packages.append(metapkg) bb.data.setVar('PACKAGES', ' '.join(packages), d) } .(a6b.Iͬ46TI夦0=͢C,KR̔*6黉[C2Yc>L-o?Ъq}ٴ?XH' eU$kL ,JA(*H  @&IBa`I8 )8&He@YH"/ s~/M6p,<8ж}}%g\ ]tl߾>=Njk zOV^O+O_;*Nc:@@@HB+K* *|vB"ƼxhMI{خt?0h8B ۻ@x}9RT=2>2\%"@8r0a`!@BLnD_p@d"Q%PiA? dCx}M8?DTBh)(q"ͧȜ2^{vynC\}qC;i8m;x'Siʟ;T9+?bP?hԂujQh!"r Ԅ+0D6c n! /`/qP7@/xTT2e2QWRJB9#J~^_9߷ xI'te.qw틆萞RU@>}O {J"> .P _ES@B(DM BЏh2!7φ&օaPOUb*&6>b(І>(rX@#z D; %B' x`?j| 7Š &%v>M4L}4"̧, (nAӳaY~fbrIAɐ @DHzD< 9D:$~<`0 ŲT(FOHChM`0W@pv̩J9<<~\G4yO:;nЇPw)}BnC@X~*_ riu ~>cSռy7twqz~Br (Eb/td=3~f)ECKeft'$1(UaYJvGn3^l dqo8Jhh B,v߬0Ae6L<4`%6IGxB!\rbt܂ q&ō"K @lg TGsO \! Hhca̮'AX*{< :\$$?Pa$5 |?`Iַ$| D8TaQǕ "2Ծs0bJɺ&>΢AA,PwS9#6F5粿Ё۶{ l;c1@ ޡC2$}D,8x ~Ao؝~WVI7;.fd?ޟrK<: -E#0*(!$|}v|#X^!~:z13i3i*ܤ07'f&Dp 5`T"O2 [OT[yKtԃ GD11Z:{jf&;v3\[TL HTmRR; \g 1jFe)XCFsr&Hެ4 dQNlLނ5%)ٯuya.3FE| {zs4SZd sHf|/Z PB- d/?IT[Do}(g @ |k4o,~nU<A2iLypbLtv\ޯo{8Htz>kVhgTЅ;iܫaNG~6UB#]2=$K]uqdn}Œt@J퉞ZaYcLxJ5Ҽ0|E";ɿ l@/M=;OomQ?j p˶ZNILKsaӁ1]()md{D|48ٲe_SEucCl2eM@6dwj@FalU>t9k71JGa 1KKwye(ή[w1 4 11DF?wnW2to9G?̏x-a2 }g@jcρɯfhvoy(R@W܃֤ ŞI`I(,C|&Ax^?p VQ"y3SiD:!P;:0)Jc nu$(:{  r@ ʹ{CZb],Y k|~ >-Ժ rsK$cGJqGdF.dJgzG;Wth.,h^ p"Z+/U˚ZX8- a7 %@D^Z=tAnw HL(Ȥ"y `dŒOM+m *%u ɫ;ͽP\-t+њ #50NW+0xLXR>G3\KOE8E!{xd/"7i|23Ҏnp"4*U%ܣ~<3&)q"Gw徤O~3&7IJvO;" KHxnEEÌk7u~cj2pX+Cލ8"WSoZL' *t,,">one B};A{χ8aPRY%َ@1݉ `STi킙E&{g=!a\o,ya9u :u\N?^e_gUǛO\'ken:(єj15&'aQO! /N ^dJD5!BtVaxtNB,yO*slmsC?}RR5s}M0OleTǛAPO']v\غ:hQ=*DDF.$FۥR@c~L!hB*eI[( @NxVOYv\2Fxc|-_d?BH(+'}'""J%Gܧ 'm t(E*Uc )NcF.TUL G ./ʧ Fd-1K:2pg⁸?)Öt%lgㇵgR$*37Oē̚v7_U"0NIBja|Xc:w8ϐ_xnK1*Or;Ù)Yx[kLg:l)S- I #?*01߸?>T>+.;A q݌rC騇hH8~& w@,Bj* j)m > emۇub O,2MM"@VZ *sar atї_/ïȲ`2#4}1%t'Ծp.?t[RH&11kwAz<&o^3݉p=9$BYh5vG႓0cz[ZEz?t31=(^o=6֤ XA<6OOiodĔt<^Lx <)+kC}z.{|e䗮+^./twPQ<0+O`ӋĔr'zxԳ6r m< ny',BKIk^a٨[rcAjS+#x~1saXqYSh;tCNwɰbf/P |'JRBDl O)f۩+FFn~޳[ Q?dūvLV2#W뺭PUG^+J/eIMa [%i%3 |BiH+hĖb:(\!>$%ԑ;8QˎIOQ޵bAl)1QYmUg0L[*FgΞIdH߇kg=;4!gy*?gb(in* #7rwdC^ƲrR3 MVlHY$ȷeaiی趜%RK@Ġ0P5݃c?UZޥ^ĥv2{%ɫJDRku~F2N=z(z%JxBfII㱤bǃ=a*Iيu t2:,0^L`넣72f8i.q|he[SrS^Ý)?)y65|),>1,ҳ?W筲棘^/߁i]5%;6HLh wd##<7Jh`Dbo'̲&U* $ \u3#= ɛ(%)=) goh^֐r!}4{v}$7@hڂ)7K=O%|N v瞣g$ýzmj^ ,?7:dDP‘y+ϭYax)Niq[Z$1LJkyӿ(z{g~q6dj @>wo/fN+>u6'*o k:A$\X);=m\X6$oXǏ"W׍KXQAtuhvc 2qǁ^L(F3t%6p3{DFdٶc%Q' ;9¢̴/dTx}X]5jlִ鸕{siA.ǀeQ~In4[e0gMYUp|Q.: LjP|҉VLeI #p*;ctM>5PeU\D[CܧU~ [9shtT- @ N+6&F] 0|[װv3tw+Ӷ=<6RH% w{Ynk~[RK=ګ"=2d(='zt# zhc I*.t9Iݴ(d}=eO?!ڐ$1gI %SD/ a Nb_OBTKh,,֠UDNG (MKarĽNj0V)5 /iߺ[lyt$߁^˰2ϸr{sͮd-@D6h.c5xʽFV QIQ˸PZH8D_wLgLu+[5pO5N7x&\~*>mHhB1UL UP=w6b7G!5g Ze| ޾ t7Be?Ϻ=Lt)}>#U>rv*p!YQk{o_@}^݂= qA'$aT ҉p8B5s^LJwʱZWBaTmJ'H9ڵNyٲL!:: )z2 ࣝ6 ~vHvm>,{wyZW5Q%t8Νu9Bj.(W6:g@QTEx&%BPw1U: LS3NA6͇WؿiѨ KOO>;z;*ch1rW蛧M3]Ot a<|A=SsI_֩T]au`E.0ޘ\o9b^O+F٦pe(mݼ|#B!R$&^"M1GFP)냷:τS{\aŲNWoSTO7 )oR]ȷAt1Tzo2l)>Oc&0Y:3@ S muRM±/2Th>{ yRx.RWO)`* rZpB_)xv /Q>D@9,s8T( cJ`6TDA/4y x|JD8N<&'$> /Gt~A""h]vYxo ]|G9"I xd6XOA2rB6pqtvmÜrUx;'>nDE|&՘CCzO|4|qN:l7@n"fd!j*f8~qIH2F2"6E10C]= ^U[`@0Bx`.Q?V^7q@$"E!b%"E(TYѻ5ξG_3'Zqz$j$DPa7uHzZĈR6Crl=vϴ<"Xt`ޫfy_*[c]BfB$y (""}~@tRq?U|\IsN@9mϨn_f_ u a xXdž[ɢEI\] ,K2lO8rʴӳ)NrA;W`: jKΞg?A:C+8CDRR" 8׳Fh2R)"NP?uVe4_NM 9Pns;apPE̊# )*g) + '3 Ȩ0uT(va~i)}$ vA)OQ"Թ7#Cz??IhD^p%4>̜3̊$?B^NHNCCM޴r# ;3UYeu>sjɢ$"}F{ ܻ5/ZO`%"H&a逫.~OGuXq Ӌqd iBOr+ubfBgD bd%xbG}I>; zz=k!"%l_ 3Іɟasae@~mPS8*`%06/x2ӷq%EUaH@ 27@ v-MِLS~,7fl>3>c`L=ȈGj Do9xAgk^QՄ(wolT%H_g cӞmn s(`2>iVaE#Oo7rm?y T &c+cHٴ2:rH %)Ea)а&wͱ?WF$Q,4QIDI"( ok 2 A~o" bEBI6J(uRP͜ŭO\h{FGhd z3,|L6EC_e㞟iAֽB zb<>D? ԹyOCy.IϚȧ9wb^l3UUQOhұ5 LM s9m\zth݌+v\UN-FuHtLKX< z4*݄pylȑɎ$AxXݚ4Ƃ `Ad}VvM'rZz(vTJJ;'RїpKKF61 [1x%bfvܫ4i[m8Ns0AmC|j>)|ok 553t wmVGjv5i~N%w@RTI}_C7H%d]a?ƿF;D}:5C ʺ3IP(ORX@! Vp5zٮhylVUɴݸ؃R=Oec <JCeW={e'Z-$mhpWypӂՊ!w jt~y(>Q7u.cpt(o*{UPǡqJ[_k]XzGR~Ö$2f=̵âE8hnd) iuqv2vs1ȾXIMeGuZ8Ĉcy/F=:]ו *ś5+!ea'!7%ڵM\,:2Xjf(^NqD S#3e}vȒuvL2"~Xl=m\Zmu3l/%]Cg8{rX~Ow n#.V^9˧LOAY`5|yNYkFBٰ! L=iɱđVG)#,LolW`<.'N7Bu?*l^cU8ָEGa{۸8"cpUI.( ᒍkBZ F73|3I?&3߉(~棤\`b[ K]b&fʺ].B Bha #CkƒwH1cbd^}{<=[3.W,&2`dQK /9T!o `x>hqlaGi Goà~# gV"8)Ͽ_q2evvtz&=27zJào~"g#t )fEbu{s6˪ pu((jC2*)AY%dYD^8I} ci2bm0hZVfeh:2* *:dȨ(G9ɝ*Y7Tm@11%; D*)M=ZX*) Y^-+TU/[cctnNG;ʽ,z13:c\G?MDhcm6K-'m V Y] 2Xy6a[ޡt5SMbRe5Y4vW g, m5@UDi0Y"R9$C(x+z%2 M˙ǢNuwbK!` 3Dк}o}Х2RSR`aETÍ&~9 [v7]wRj|U.~M<`~Mx*dhkntwR*@V/uYrp"wu 9ykCrjnՍR|k9wu/k;˶Y-x%[ﭐo7 %0 pQ9cq/%偀MG8@s%}o?H?)Sf3уS7c~8_W{! LH+/l_$<m0iT 4=70l9-,OXUx6ؘZ9fWgX^33v%w0R8.ɣ DV cOY=FW} h1^όvOrudQ1煛lJ ԳfYUL2R,ړQ1?0i =ORveD1`/STW%KvX,ޫAuA >ܥt'H4L施*mk\]3 ݭ;{W羑tW$<p}0An:} +r(nwq59=Ph{@ k7t) sF!Hk f7~.2 Dͼ(#Vj){+\q18MiJ$S14Dk[9]m)닸]_ht<A^q:0\3q#fZSUЃ~HLtqY=BdM*F(_H21(X ? Sj3gH)f ᔠ-Q C KkZƐI. A%F?#FAnŢ[3¨Hu7|1X3;ujNSlQ>e0uDVyaö-I0h}ɥ0~ݣCG 8*q`8Z.SO(8.mc=OX%z""]<4\L]>j8c o)-XȊߑ"E5k:bWi\D4лG_WU$MZxAgZg*T ;ݥ`xx}mfA$,mx3MyIȷӱaQ` N%SnE)e1,|8=swâBS/Ϩ5Oxv9!t=(k׌TiNن+oLs_//DcZLcNv?N]Oża| G ` ]rzEZ0V:4ͯ;#Omz0(Lv}nrF C˲d(DD]`SS*n߉MT|PE ym_BBnRGЎj6<׺vg&Ǥ8M} u N g%zHI(//ỏmO8mp>1*s{2U wv4{ J|;be @V!CA~xl/H rtda0F ^0V؋Hd 6= Y?: {fS+P3T9IR^(v8!>|o#MT^BH,quΩOCIσtU=FĿЗ4~ZϪk((#͖O55ǵv"3!)&*O ~ny:.PJ2Ί"Ě-Ag<;N&[sӶM)Ot;`ȍSdM# M$.xD/qLy~XI0m>Ї/Ӽ9eQF6 {;X#r(y}d}m%0:%rhPItD%A);Hso4 Z;P89R^^FB5{FU$E_:o_b\2)6G6~WN~K [rDw##Q&T2Z!H:M$ZUzu~ I'>ୌ=6)זcx s* nEA&T@ OR!#GX5Kc!`I^}. Y[@6x\P_ކjƒn.5]֎g`I2  Rn/f3HfxzH͇Z֥.cO1;ǵ)s)tgZ-`Dy%G-skM :=xnzEM9'*kE9"0ÿ#st2wNRaG$\$ARi, SW.z.#`ЊUW_KC_4m7NF3RY0TSA8/{Cn]UőVmyrp|`TfH?K( 1/W5n٤lkPB:76v|n6 ú"ש_Ucgո#iM2*4o ]@/vRg k.ƛ9\KȎ%L 3us,&Ys\ F+YKry~: ,,rKGOmH0Xb`j53= p}zTlwhI{I ;ZDOPOގ9C\qnB,G_fQ!LR {4`, p6'Oi !+ F &ek>7,z5ՋvmwMe[_Fa0(;h] m7KHZ~؎8rKb`SxH8S 3Q |̊`s(-zqR.hyXaUa[|^Q|7py,k,W \I^NLR@La=эᅒu4gbQM1s 7qȘDaQ JEGUETT,Lsi)+B+QI>C|g:YŸAŹO3ok5G9J%et6[Be[c>^YL8-,2R z6Ȕ19#},2彨fd3GO#FE/=$@0doӚ7(bO9pKYg8Jܻ _մ6e c E9omFE"^]%qmnG Nl;XR$f ;n7iC TEJ{TkC  "@n­1K#~u !ih ً̳Lvxb9MU΍\S!M&*eK6H2[T+=`q#e(eou=dl92'fL %e&,6Uy"=d2ڠJ u0u^:te1Re1޲/x5#g/[)ܗn W!d>{6⻅{GlROE.҄5ќ:6lۖNd֨J7mXA(rtQVVaS\5=[%6cp~Fv$h4Zt闺67T*]r&hRʡ *@U+U5SS Fߵq=Jhf˳/&Z䕴qYOc/[jXCRsĮHR*De.ą^C߇tqZH$/8i RYme7ݟHǰ8~S0hddF/A^]ah~ooL՟.{\8˂; \8 E Vi%6ԓEr:M9Gx#M 9F/~kϮ*lMq]b2"+`yi+G }D(Z.Vnmf2 fm؈Cg>210d"vwC *Xr[)їC|w>?IdzOޥ{\-ECN$fQ*Yn0'5r](^4 :T!QO$[dm6FA!hf/I-U:vxqio](D̞}0N 20Vm8n6Ie&*"O +z%G1uB Vb2hʯk,LVnD\M^?qu?ۮi]5Őء*|j<4:cDXhrd#/ I˫= 9JTgMcv=F*-PgHkydۙWW*=sW.fdSr%|Yj,\5Y$gz6U7. HDهپU͡oQ_vD eD$MNfV\a[+`Ec f0؞=`x]ɋV} NY֣7Ig 8g9E3f2kh(%ۯCLFWd1bg,V}ěrd㟎yixqf*Ig%׏.{-AAvO2N~5ܴDUl=OZVwÙF4zG6n/Z̯&Hv!pEr!̌voqHz[eFL["I>a*-uZ Hbj\ Nl*9Jzv:Sa#MYK}XGtZ'܉$?A4ܢu˿{4u`(SA tMQ*N6 gw&XtݞvC!Tc޿*1#"ZFdfOkb6 \b99tѬdIhCn#cc+_xt2mj)0۲#7C7.S!K8rv1!I℉(/.SiO [̡YL"^0ߏ&\RRc_r\7Œ(cI- ·ߺӎԏ-Pw2j8*(ܔVmr 3r.Y2f\}$UMUlp8v Ե[r:??g\~.9 \=LđS騪*f5nJ`N ەpCJm>~o叢X}TMk)]^FdN{gzߧBK_鿱QNL>6H|7jhE>:}6E'2Vr\Yhl)`EUoYϖqgŽBiY|rEiuJ~$1:𓦸(I(.FIb&Ƣ`,v8DR)Ңt{`ߊ66? vѿ*T 4Xl`rU}),K<8xw$'OMkL fvmf⧮gA/Zm L7_e.Q-r h}4+>l$K DH t9/Kh9: LzށjU[XDt7)7}{b8ׁ~ˍHL|t:H!pA&$Tq;"$t1nZC-p(b]Zkn8Ne9OmP)N+YΠLE&C77Dr6 nqHy< "4`Gz l.7uW.ٓ9 kF0z7|ٙ6!8x|yyxՏEg?l_iv%Y܅@mۦ]D0 *W`zgރ%ƌlc-cRF΢}  ,EL^\BfiXA;hN`13ϬO'?nUT^ M׮EcQ[t"/7à'OFچJP`ξpp1YGo~t_w::y2\d:2}MH!}.x0Zx64nj>dpv4ϦK JG h%b ef9LTjbbNeJ9;XR!SB+z kI0(̄X-lѷ\=GIvGBF-fPq!C]0KV3F6DACQ6ǒ41KZ֠t%ΓDt= ZY3ՊF>Fo2ps2vGqf QM,Ai&~tEjBb"J5uJF_S4C!.@Va3E /=rJZe. b/Lv&IJ6r,YD 6YÛ)־vONqӘ27deNKBCpQjeB۬|檙N_5v4)".P$:maUj-1h@ L4`OaՅh I6ecUN;2)3 F r [CQE~!#JKX=+|ƗȚZpI3]i&Kf~UFB)FЛTscL8[cKk wGhq|k:X ҕn%wk~Tfx0HEG! qg?~fFTW|G_'fûcqqD~ӨҤVIcDg:͖pT&B ܃ آ;fcÊ \!D9;a6c?~);4!M`+{V؆xmHK(IMH[c'j[r);Q\b+ƕDo ]R|ZX LP: P~.DADX8<ˬ8.hm3e熪%崯a2B xE MЋ h+^+˯>wonn/S~;_X݇U 1,gR*fP(=DOͦC [bC됽 uVص mxq4$ndya&=k}?:'?/ٷy^riGvmFA-ϴD9 }V/N&8(/T 0|".,)2x_I(tpv*ㆥ1gzRoS)O{0܆.#?Q_0߫e9vFŞR>?e1!\3huTcTD5ɛpxiqDA(2!BAG|,00*L<י Gl>gPNntn&w#RM‚J2?gY" Ÿ֤_(tK/#=2܆̺nvLu%c6;Gb8>(cxȏl8&<}\лzw#<i $Be$#A@;Rh5dH4:d68>/ۅE *+Nf2ܤm;[4)CNK yqyL9LrsT]041w=|+¤ uzi 7tQu`@YbZ=uQB 'ח!g5>/@0M )Ϗ1g;/~o+JZ?gmiXZ0UzbCX=x)puSq$&áx_qejR;M vj;47'ʹ_|$_WZFqA02ND¯?glu&HaPokA0N?e<ߏ_;J4ӌcKћh81t 8cVM}kylxƨ7`UjWm}-VǪIX-~T<ɮGς!0/}! ++( 15 ږ}t d:0b_gXN) dRO+;@614pHجצ.+t|SfϷ#Ե\CySڷm?oG ̉%0&vPSuv0"&/ߖpG*ˁ@%er`R* !S=peGXg$yb B uAIT1 C42ݔ3mC/[e{5&p bNRENFVb4>C%MB-wP^O6lmSDmʞT2sJ {2h!a3y"a5ʔuC1Qy趰ە~`P$-6Y`,R]nY jz[\IvrN%ܿh=.4lvEǘHHIѳ D0A* EBuV0P1tyiA )zmZr?ݺ)L )/l͞[a!P\p\<#&VEOՋI|'4Im*!e؅7t$OgM Nmu׮X1* pؠ(A"@&վnY"' SI)2"KtІCSN1)@edǯ~\@m ͳ Id.F=\9cJ.S`2J+v#9Z]қW#S%Ȧh^ )jk^9^1Bz^$ 3s8{dܵa(E+<:sw CDHᯢ]O/%N!nTMfcǶ+nI9^qnZ6NC0x0zt,c(Fz)$!h[1BY tnY=\23t87QQq(&Df?5CCד8kbCL @zxj-\e,@l#O %x=NQHP([SlJvuq]7JfX,{U G/ekLQ]NȀ\2Tҷ: fu2$McSH3!K?<, b&}ow|IH t4& H$Ҋ~5;ε8)ǀ!+(,Ps 6ZƼhl{x)#вb]#> beN~hCl!{{{jGa̺i˖ NslD9묤+F;][V߳3+D+޿%u<>vXIjP w IVq\aՇx5I-RrxCís+Ǎypk>\Ԯ9)3_3'.6L1 QHEbcՄRh̠vNYozYg^eL:&@8MAT@ha&CFѐd\$sq[vI. 0#L0B&j0 Wwf(/?eOeSe=3I,֊"x0nlc]N1{P^﷫%EC _bp",[:2\UJQ`}?z@8ʵ!$t1RCwI|֚״~_F @۪~݄ɱC8q.s ffڠ @I `cVoRr4:+)F/vb;cq'Xr᧼:V`| sn+;# fdE`b/[+vT"m>;gr($D H6 'ГqUbmNU!Fy:{y씑B>IοQa`tk[bW1ֶ:}Fvgsw㭏4 l_ΗYtݳ7UUfZU[zg1~~Nqԙ#+Vc52jx{sfI}lCDk} L?i]6_r#ޛ5)\eģ8"[!_kno߮<+ Ub`ngZ'O[d;>| |a8a7FL31YqYD#>XMppx1mr)^S?<t- WTFs_l;kǎdv]7`GI)X1f~.'P=_&N \Vz~Jzqͨ9YɁ%əEb'[Nz̞ks_ob8L^/nmŽC̒P/;qs>4Q7% "zLNAyqwlH1:Ndgߩ{s3骳Pz^J8]+$c*Ԛ󒑰b,rKNᠲ.ܜEGMSß9=3|L^'=arorP剆`~:}E92\anoP⳹ aǜ80û:$>m捖 LjEsН,ɷ+tR; 1O&3g3oͳi9x 3n!6ȘLq~s ۤ-#A3=Y\ h_MWJN&W]XWyiv 9J6d7uB=Dd0L-kwIݬ$dX!>ϴhg ߪ.c5 3!wz/ȱN-2%MWg|,+k K6/8S,e(b*`Lzo{3[tHe7'Gphtcg % c yTIJNP1!I*sjl9<+xj`6 <t*|6  aۊ0=2z^:X!+/Mq(YB܏1H\3p<$ ) Ya}l cXaQ$EJI2Mp__LJ;>Q'8)"!&}?< b!`['61BA텁8qa(U`F\j'RCC)pB]VsM1s_BZn_>W =Ȃ>Q(r\%_bM,?E8U"c{@k/;(tؿz%O?\ 7!s<;w}J w5[h: ZN{H7C?JۺӜdWe#ϗO962?H6s wϜkJG4Hdo{m|@I"nm;"p3߾͚+\l|<6[DhS]~;jVz2I="o|Hr {t]=:6+B&%gXpusS 52iKAoyl5Ҁ+Vbƽ"Iq` lUׄbU לXcwe! .KB#|mfeۈ "((.,h,iUl.NZ;Qrt|qVz5"ˆA$8v8H#hB;!A͹Ce(QKc! A/!ya:D80 `AD `!Cak.C7  `YEb8т8h9x F2+$P"n}s:' ٓK𺲒mL5|u!Ľ: 9t :@3ٱWfS3%O9m%^0_{蕮U[%s ;DuR*0Pψ2rr Z1hxmQ&B|Ыhu4PLz6Mn=x$ a*>ܳ~<$pˊF*0Sd+Bk"èmqǭqA#R l; rO^=75SG T,!0|09#9R0XwY$DIҔpn_g" Q͓&8GԸ"RF7/T󩫺QBbĚD莾ҘiٰM9&st7J*zf83'X*;ԟC;.  l'1P_P0wA&)d2!eB}5_[0K܂370MfE IA#XtPN?_pfC27%D %~[臦@?TyG/aZ^q($łhOt/'?*O%? Еe>HE#1_)|ї4=aG<"ן035Ѵ(SQ91O47Nxqǵ ݹn8ɲ~j?bGl ƞl<Ƿ>h!&%"bHj P(@F%hd)eX"($(Y)@0t_DE7nB4DcR@_g6{D'Dk$ԤI0{Ѝ`U"gf @}k-ډsɈBbEHp;o5o)9WZv?6䧏s q>%燞{a ܿ{&;[6CԛI~ BP%G9dg#Wv9['l ;e E$c͙:2`C;# $2Glۼvdi3vN{;wzQBZT# "$a~i+#(MLbq8MըOy(z@B:j Cl phL$#;  VALLa 0AA/B Ր0-I cTaB_ī_˶I͗>Z=~;#ejy|kNbYy"2O}oIqv#Lϖs9.6S8P >/>cu1jvM/Eyߍh\VפLt{arJ%0rf}(Ech Qt1B]&Y<9JAQ h-+uu_d5ݳE%W/ӣ/Rc[Xn:ˮM}zgˀ!$`J=[xf7ƿq@uϯ,4:ӊBy¸0No´4C1|LQV%E5Qɯސ?~HD!&m뗥I)-z}{4z-]J. lBVW' !Ar4MseKhey,!˺YU٫e b,TȊoW]ﭷkgqx(F;T~?j{51 U@Py}g3q͗QEQP*5@(*zdm8Y*{u׽:w'VctKlVr࡫ =(JAtbHLRA=FAas&Ͻ3Q0LbTO9z{,ofE PRH˰ \+lF}$4!`X U7Fը"hWRJ!KUUA6= V(e ϧ@ a4hq{93E h4146dF1D\fDdqtÌEhQ16yJ*88`H3! ',/pՠ (R Š2 јfaTXF'" VET((fyݘBѡA)DM?y02L"L=kcm(_,(͖~h֍ (w\fY2*?ʕta;$?R8YcIpJ];{2iE \(mLJxM ?\0= ->p,̆@ i6])Z3!X2D[)M Fe1x' M V[`6@یڋ"Ph`prᦉb o|C,dqEC– m-M4:Եb6"\@ehQkP2eHL KPm]C(!b3B V]Ÿӈ+h &i8ziЀR ( TP`UB.& 3 s jJ3H)[{Lā3H{TT\ p† xV蒺(PD!JHԔQSVAiL9|CGܙpKh4 ]LH*NbYA eԳ(Ē]{Y) ܤ)+,oEI ITW0 ;55oKPBGo#pFޠrQccވk$QfP}u !]IDjss# j6#lq$466 Ԥ|CC-/N_OYֆ&)kpsFxI %ssHz[Y!ý:;&6WcHØbbS8b0zY 7׊SlU✊:a7[̇p:$̓5ՙ0 v)k _KLgcp…d$X ,XmмˇH\T1c!ƪXYw#7wa>7,(8v_0fIbByQ9(Jjn7ybvtvnܣq[lnِrdWu&rbXH__YLWN>x<Y%5q{] Sdqa8xIt]GYC]6K(hlrw*Qҷee>Z]m1=u0deA>A49?T=PtG^ehGy3ш4P8hE(Őоi_ QNBD_ m};`on} ]pOL06 Q`DJXȌ>(|Ih 5h,!ѐf+P` H߉r̂aM0c&?&gnAh%6y!}{MӹI!@E(&Ggd3`U!#LhndWܨj2 6B!mA_F%;`*P%P|ӣiG8 v!C;8,d"m6x!cHTo};ɉ'0$6m CAFAh=PM'mLGی~@/B|AdGZAa87 hUrZ\֬H1ax'?Gë'Mww٪_XTJ\+Q:};|H=WΧGWWYٷ ?䊠Pڏ럑֡X|]04m5az„DE&pO?mGq"f\Q}GWH7ow63?17}Ɛ*|GΝ^|񍾧@PR^fH|v<勞ez7"q3PQPO,(z"΁{&!("fdϗG$ Yv}"v2JꈉKE"9:(Tg}cc@)fC6n]ـTլBrJ!6@DN,CA?P6Pd*W2F af G7TDWAW!m$T?XYRGw>eͥvL"{wyH0e-#ń'Ź6W:|!}Uvow`Ywm2I#7:YԀ8BͳهAN'ؾ a6܋giF9NIngGZ_`\xvӖ#{m~Gw#^/3Ie 'O#qyOABdy{7ʵ_)oOuWGK(k?O: S>lNwt8S+LݰDlSL}"{gޝ^ff|u?7W_Lt ce{.͊?[sn__}:G)HX!BiO48}#&ߟ>K#<^{a]O_~H1[;k\r[6}C~?]l(NOD󟐐^8@`^xX)˥$DyaWH|6 Q?)l"ջ%?0J^xFߋC5Jyr5 F'Wmd>_ȇFs_n_Z1\}o8{/U?X 0(EL>Y9y~d"'Fhh"^ GyHuӺKOG#/Y\પǔ:ݯ˅moS]\6qنj_.C_O×-A-?&c!DU_5S-Pq?XA>p,ecԔh1yXDf1 fe TKUD')8h#0Մ`ܴFS-0p=Bp lE$lO&HSJr ,6T=1?ǁ9Qç︡x@'RǰV>[tD7FHACE?v0^WF= MsLn̥i' BlXJ\_|bth ïM-_~TsqOYt3Ck0Jp Ox e? -؁tf!!NPm'#2C6l "86ǘ7##k a$[^iEq鍘0?j eZl!'H>AɆUA |-8<9n&/$75c-E|iK)NeEQbb @zJgvϞ;lbZ24/],c|LmQ10w2tG-ᩛ|).YTw4Xm-S%B\;v`<897&pF#夒U&' V$>$Дћ(: k-3b؁OJ8e4  /Ӟv(t@OFMb\LA54`\(ҋB92 -/v, '0 fw0md&ЫȺ D@Ú(XrFsE=a56A K@,u#Pa ׮=EFk^`->!ZIQ46]Mtf*";|j !#/;IY2*R{hz9wnq5 M4VP H9N.bCb * 3A\S[^h%z6<;7njIov?@2'l&-2jCUq=SINAjECKx60`pə[%g²ye1f}cRq2nz/N"q((r4.jwqoZ}7Q^蘺W9.jܥ{"B pV"sVB*2" N$-QԙW7=_JEd:"\u,=1.?YȊA UZy,J{OM'f@z83q cJ9(fp(ȭ#y { ///aOEj kPbY|C.i2[<#ÊI:;KzHx-d-"R:F9Q`{'[w(Een!4q8 [# =o&i#dZ_''hȿ9t뿄 2ۜfQO[H}08aوIh7&vLz֩'?|BVn ?:/| Kȣ%YeLlyXt],{Dƛ P3UrVR 'xsoM߶eL\Cɞu$bmgc*gŦPLkWѠm(¿\->ٛ,W65DN敶H}W'ƨb ̀AЅjJfT1QDczsU{5g1џ` M!ݔFlT`@~]&raiY-DDw,-ڈɱ鲄!H^OѓK ߢW!U_)5~~ɼav%; hr95eWmmRu#X#<Ʊ'O⺍U otl~tF|H Fr);u;-c"BAĉA/&½'1ŀ"Ag2:R#/*Mz'R2N0p&7-&hLaUiʼ+ S$ZoGuJm&J%˂AީɃY_Nf=avVB }TTqh*ʡ5'MmXy3_:2x|vd_a7ykOPx-<v<ا}TbsO(V&e%vdEDgvb^`q0;r,S|b YO"OC$ȩڍ f~hСNS5 ^K0sxKyʶL3,2:lHH2ڗ&πQOU5lvwݕz`,U࿝fw.$LNBc@L|F7)C_gIƾO0ܳ1 /ѣ \K*4Bi qa # )$}C)1amGmǑ<)31N>پ۾0 &lGfc'e',i P5_. 0K K ` 2(۰E/˕:_qˣp6} $1ֵXzjDd#heM]Z AaM֚_Z N]dI =J&Hd`819AeaM `ӦT6` ol|4M0 :1Os,k3ZLQ^x\Nj|l%PTC BJTޮN4KmlvfJ}Wn||PT*[ ,k뵯8G ᔉM9" E@ %96նYXk{ĎH02=MDmÂ6m4 f;(ۊl&)LK j$x+%v ?wj+,1⥲)C@x`Ip[!48MĎiJ8Zԓ;1kWzm`/.n+oc@!>|j8 ?X;ɒƈj uz9QYC1 lın/uIgwt@(wlK(;s!~H3)%;ZZWut(`S}ޟv/"r*E6 xvɇF9*O$Ѓ) )Nqì lfɅ>9AassFȅg$L(!6 F a00HˆbBeQ=(1(ę2P4; =ըm b?Y*̝V6B >9d??t^)qKPaJl DY- *b[Ƽ}_MoI{^_I^vcl;ﭚ e'JZQ"|8 T FO_G;0 )/Q{mXi/ҽٴtSʲ?薭iG]OWKvwN/ܷW |oLm |Ӗ- (Z M6d_D{^O4UWs~>W_:R_c?=tƝ[At̗5;kbyТʼnͺ~&#Oi3{[Ȅ m Gۇᴁca+͞%Lͷm+:~}.9,9d>y5!975S,#YBW{EE(hq^ ^-O7]B2H^\,_鷶;y:/겒|Y>&-iX㛼:!}v&kv_n? M)rX8 <}S8έtӕo,[6FvnFTսh\H;ov6=D^*j*K.+}#)ӳ˶2W,B]κq?fY *_xԹr(E K+/DqauI e#đ O2q c%$GM:1u[O5hr` (X Ï-쩢Ȉ!ayV#nLr1΅EqqE(-Xk+['mwq[c:zi\/fyJB$|z,9skɒc-(}q/BnYĵڝ$7tc{,]oM{YؽOcrEaXS;xpqܱ{Z8쟍F}lܮ>j=IcJCƏeFJW_ciצ_=tƐ-'3>p!#|m;Wc K:ܴR:d3o_#F/1,Ї)OLRoo3=v.t*yf'Lo[>0Ě3e"UQZtPS^{x ce\תN46a9aK |s+gq̛&х:)<(Ď%]NQ6M"1xiXIAV}gl).uv;pf Ii .RlV83JEp e ]u2{LZ|}/sG-%JK޷oO-eզ2#ȗG'AD8BzOxS/[CR#|'uwZuI]MdGpU"!V{9#KE.IDTO$fTdhiޔu}*Ό X;'s9^0v? ŠH"޻a NrlIK@A4G)Bey1CZY U4(_|^r;=Q\6)oMWZ\'l%'Db^DbFB<X%:_GjAR b>|7n S^WGET=\ vmJϽH6Jڲ:jH"'ɺ{rr,l,G3;EH;9Q~ațb;XjBt;7B@:6ˠX7hu7l'f5lܱ'{h$0US^mu0Iz^n׆̿2mײ4Gmж'K.hX*rLkc7"J>('[r2?7vQ˺[vū;usHN ︍ IYLE]2\.,$A8LD,DKz3vH.xUs084$| Mg'qnzu3 `ˊ35QZ q iyH60 [-j撃{/R+g-ھ5Od꤫(m<- z!%gͶD1ۍZ~Wa:8nO3ENKȲM;mg쉣fudrY\- e;2jmG47)%(*= Ԗn؎csJxxGSu1CFYg%~SdQW\iKNʝx\톿Z:Sn:_f `֍#jFwW%4'n4n9o e5*b,6?t_g]%X/`"Go I֫ʔCʮaz0 Ʈ(*rSowI5(?|{ubR,]*R"1=?qpV!o1sxξ̛cx" s\E42}uoncs"㮛"KV!f{<(SC{/b%&ϑ$Yk IԵ \Ng8y(G8-c˵!~KuzΒ<k<$G=yo+ݣ4/1n ,iB1!V݄w&lc{97jB,)/eop^2pdpq!~ST2EC0VTјE^/yf]+tЭyY^* i`5b]^o"*΋$x$r,>t ,U|ba?Sߥ[͊/Nwk Dؔ mxoxVyN\k#ZMn:751q^;:쎷{bRպcmdj^9|&ϑES }3ίڧ':ENIwYnz; p'eh C,MkK5bv@Iɺ0%tм&jO)PWoVE:VOrseV' 5+0zXl|- cDB+^d-42Q`D .; ڵۙ+=ϣGCp(%u,Gݮv+ifQU ZsTez9o2Ҽ)[f%bf`.DDK:ԝc 8TۙoD4&,_T(r2Y&R\B^+'Sl5]Hg Ϙ(߼^)"PN0XwD/.TSvgIT^Ml`* s>v|H (̀XkMZ 1e$R/׮fЋt˻#R# "VخDo%"~zxdJ پɿ[϶6zHg=ONAPʪxY̓92ycȢ/~#i7_'/hlzrR#8ɪ!y쇞3~™F]Yb\ -fpe9@a.P]A}{"cAoR铤KT|b۷̽ (Lvޜ|Apݶ}~:\0&O^)g֥X7^U̳11xiƞv/Z)d,-$N|mK3Đ'x_2\l3UШoqZ"Q6"P'6>\6C]HZ* $tŧf 9eA46A'q^jcTF9*m#%G,*t) F.|<\">80 ٕڈZ'bU(z+oBcw|vPԳ%TnJTbs#@q~ ]g$)!ܲb&!Hc _Xhy{9307ٝeoO-"ףo2AӐà8{G~5TE q0 농EU9?|$]#0\aUE&)bw%nꩯmGAm~O<]knk6+N;2p} [|yůY [tp )ZwX}M՚pۢv~ik˒s5SYB3X}h[ûXbc;y߆ pLJ<%պ6DŽ lI|r źy&γavXTqLhY4>^w:.r4Wcq/ZDdݭ7Թx 7z`JJc3us˶vXv&`oH뵋D"$l5ۺ^+v|;ppZQPo+U.Gt"_"~?gFtn"r#d:oeQب1 S\MߣϡObb:x'9sn&>3s߷Xܜb;~}WC_3?!7dRgX:$zK\GO3D!ʖ k`lbUW* Pp7D?1eZ_h?3sn1/+'8y5\K׋bؗ;31*K!#mp}mr4'ё)?9C2訌:@?sSfK !'YǸ[D\$dM棍dl0}L{FmBK #>^DbqACSvb2:b #5иdCMmzQs:lR:).s0܀fK}JM&?b^sj>:}83̎FWrDPmA X ljiR2zP 2H3#ӁdylH(EDUY>Bza^F0h:4?"MYdy}Px:{9!ߚ4gɛtqU^vOlR =j{"MMuDDLw*D7 qLeQRo'[]+y~zW0#:oKO_ ]+l&ђTTmՊe3% |8C/vassȈ!' 1f3ʬ6ESvHCۇIH4w!㪩E /d8N*̧[›d) cN8x C0˷u1zSLq v>IW忾<<"g]' &*|Rk-F}$NFծؖfF*fA^.ԝޛSb]Cy Ѽ"Kd bYIͅƏy?7L̲{tg4APŕH@xdv.y?v#i$87=Ef;cט4"NpP^^&)4pPHqL4bN 8EV.ݮ=&\i9$TQ,8D,-uIpk4{x@L *M3qZAIu`Պ{M̝έ63\jkGPBT _GP9rِw,g1c@⤸8 ,CfǷb3KP^CGAd\!~48 0:8pOBΟh*4SW.nn!p0Y$p&7bWcBQ 7YHsEװƥ1QDYto}̏_nɌn@ "v6,vԘ!#dQ6%p ơz0000 4x;Ͻo`U1=^8u!I4uӎi9Xe`rPՄ:X5\̕ D`{N'w<󧫧.G"f3B! EkpQVӓm>TbH2('^iSV]I^F}8׽z=c8]-Pr!{:Z?,b;ct9iAC'*O_ry=weRcǺcsT>2\$JɧC^s {;rz!daI9Htkeqxe k4ADjG>h@/j^O>phQzN&Ҙ *J>d؊Qsy5_r?GK # ^!Wx6u(a b{dO` A ܧ e6\D ES) +x\D7E]1oMJ<'w36otЉh&xU"\Jv*H#A vza0ߌ-Pt$`㧕^7{m$9Q+U}9ݒ'7̽j5cy8G2e(L!2B+*#) GՐLLIv[㼈G7{;7a>f(Z ES&FPЪ^ mڻYJm^bul75Ǫn!1u{n~5 Bld4I:>ȻHSnU٪*%Dz1|Ӹ`2%U\ew5X (zXkt-m$"&'< &SŹ^l~6s' RD gՔ廷D7Diؤ{W k LCh[S]uP3`り@pRI!Ԫ;_/ɯz?A3,M  PR"$=Ƿl?F- %&bfshs#4aizy z1d )E()$G'C92zѣ*n M|cG[Gt]q#n;‰x Q*cQ icƳ% ,rܥ Y8XXqyιD'U5jȄ׶ 4\;FwԌQm|P\wŵR2أ\hU%rdv;*BC4Ss>w(CwC鉱5@L">u?M)GaϸK]#hEqkvjekUNiSti ;z*c}w!o WGpsc7?=mMv2:mj C/̽߯;8?";o 1L۽ƴLt8:g"P`lH04JȄH4p!Ac4lp(C@9"1!A$HF~FN!ȹTz| @uX~pKh/@Byo/0 áb*-!ٺ9ESWa&*"#"]<䲏4dt5̖׷7KZm'iڌ_ P5n*;]XhTB@$_ 2IM,LN ^6 -6n,s: e +C%򣟱37gpG*)P9`lr.C֨b|[ YVdR*w3f'0Z kEv4M%-TsO4 M-4J鈚t24Jh.X`-i?2??Sp@-T(fQ5DC)mXQTq,)U!ĨZW@ Bd<)!TTx("}͟5p?p*%̕L;g!)'bfJC"5`#/ 6zvG*$C?2J\Y6zAPUEdDDTBD6=b=$2{0_OIݹK&d$LJ&ٶCg;Dv5 U-.GuÎC pk_Ry1ª%ܳ,}L !$=A 6%#ǡĆf33)63:91UeDD='A6)[aћ[@LʉA)l{HAOƅmhM+!T$>]1yt&Ynq=A50*_v$aicP )2uu}<9fh4U;SL鈍E2@>uyz/ꤍFLFe9tZu"q$:4EmrkBR#Q !*G[18G;ǁOF sq+TQu^<ܨ{1%B k1-hMޔcoH|D.+҄N("lVhsh~W+"竪{?7.҅îX"*i;f/HLJ$,Nk)2-$m՟;C{}il͕o,GyW"B52ҽ:t'[6%c{B8ɻwyuqÀ#AVckоRX> 'kkuѢB;U9@(c;a^^LV:ږF`/eStjNDnLb*ǸM8SFR-"#KtNu3? '[f_zM)tYv=Q {1oE3Q0+$U͹|Ǭޅ84H( =SU:64;&PְSyd7?Xvff8j{z书,5Uih(VKbc? Ԩ{Vqf!#7q8S#˴>Bg٫Cg` pS w&A"(rLX[ y~/FK( E0= ~T9𢺣(N]+-?ېP*$rke]c8س0²ufQeD6)*˖܈ 2|N.@̬ٮXB>Zͳi_wҩQ '|K gFPst&aaQQ [Cc O "X- R„Q[CcGfcyM݄H`1Ȁ!4Q2Q/t’sF <=-&߹,4&!k[ f4#A' nq8@MhɓtTW