ploop-1.9-1> A AlpA?R: ԶLQ[YRgߥ]Jc7tb468c1b488a21f9bc0b6bd237b12f48d75da9956'9ͪSÈ?R: Զ{r); WLޣ&X[І?R(>86?6d   `dtx        $       6L x   (8 9 :u F1 G1$ H1P I1| X1Y1\1 ]1 ^2<b2cd3e3 f3k3l3t3, u3X v3w44 x4` y4/z5H{5X Cploop1.91ploop toolsThis package contains tools to work with ploop devices and images.Rrhel5-32-buildKGNU GPLApplications/Systemlinuxi386 p87z큤RRRRRRRRRRRa42395dbf879d283a2b4bb7165dd5ea0a6783235f7fe576645b280c50d5185915edd094d1a1bd915007259a3ea537cda0cf874c4a9dc1bee90a9b4bab972d7e9762875d05bdefc6af131ae1ec3d61c5684f1c82b912083ab78986be47c0db834b33778461cb60014599bc426c53b846f50205c54196ef4ad2092863c2f1f02f4e962e756c341dbc6eee4904b9cf5c949a0bccb20842efba2c4033340751d174998624eb526e90ab4047a3716b43a10b1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootploop-1.9-1.src.rpmploop@@@@@@@@JJ@/bin/shlibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)libc.so.6(GLIBC_2.2)libc.so.6(GLIBC_2.3.4)libc.so.6(GLIBC_2.4)libploop.so.1ploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.93.0.4-14.0-14.4.2RQۦQk`Q<`P)PaH`O`OOOjO^`Kir Kolyshkin 1.9-1Kir Kolyshkin 1.8-1Kir Kolyshkin 1.7.1-1Kir Kolyshkin 1.7-1Kir Kolyshkin 1.6-1Kir Kolyshkin 1.5-1Kir Kolyshkin 1.4-1Kir Kolyshkin 1.3-1Kir Kolyshkin 1.2-1Kir Kolyshkin 1.1-1Kir Kolyshkin 1.0-1- New functionality: -- libploop.so: implement SONAME and versioning -- Introduce ploop_get_devs() to get all mounted devices per dd.xml - Fixes: -- make_fs(): reserve max possible GDT block for online resize -- do_lock(): set FD_CLOEXEC explicitly on lock fd -- fix raw image creation (broken in ploop 1.8) -- return SYSEXIT_SYS on ploop_find_dev_by_uuid() failure -- ploop.spec: run ldconfig on install/uninstall - Improvements: -- Display mount data in error message on mount() failure -- dynload.h: pad the struct ploop_functions to 64 pointers -- gensym.sh: add code to check sizeof(struct ploop_function) -- etc/Makefile: ploop.conf should not be executable -- Makefile.inc: support Debian multiarch -- Makefile: add distclean target -- Makefile cleanups- New functionality: -- convert from/to v1/v2 ploop version format (ploop convert -v) -- ploop_mount_fs(): add option to run fsck -- ploop mount: add -F to run fsck for inner fs -- export ploop_is_large_disk_supported() -- add/export ploop_get_spec() -- ploop fsck: rename to ploop check - Fixes: -- resize_gpt_partition(): skip if there is no partition -- switch snapshot: read parameters from image we are to switch to -- ploop create: error out if DiskDescriptor.xml exists -- e2fsck(): properly check e2fsck binary exit code -- ploop grow: check size wrt format -- tools/Makefile: don't strip binaries on install -- ploop init: fix an error message - Improvements: -- create_image(): remove useless assignment -- number of log messages improved/fixed -- tools parse_size(): print error -- tools/ploop: allow T suffix for blockdev size -- ploop_grow_delta_offline(): use delta.version -- tune_fs(): drop absolute path to tune2fs - Documentation: -- ploop init usage: add -v VERSION -- ploop --help: rm -P from ploop mount syntax -- ploop(8): add -v for ploop init -- ploop(8): add ploop resize to SYNOPSYS -- ploop(8): add ploop convert -- ploop(8): add -F for ploop mount- Fixes: -- default image format is V1, unless specified explicitly -- tmpfiles.d file added for /var/lock/ploop (#2493) -- fixed creating strange directories under ./ (#2623)- New functionality: -- Large ploop image format support --- Now image size limit is 64 TB (was 2TB) --- Kernel >= 042stab078 is required -- Move ploop_grow* functions from tools to lib -- ploop grow: add DiskDescriptor.xml support -- ploop init, ploop_create_image(): add FS blocksize parameter - Improvements: -- make_fs(): create ext4fs with lazy_itable_init --- 3x smaller size and 3x faster creation time for 20GB image -- lib/ploop.h: "unexport" some internal functions -- Use /proc/self/mountinfo to get mount point by device -- More clear errors on parsing DiskDescriptor.xml -- print_output(): generalize print_lsof(), improve -- add_delta(): print more diags if EBUSY -- extend_delta_array(): print errors, return SYSEXIT_* -- run_prg(): print error if execvp() failed -- lib/balloon.c: print file name in an error message -- Introduce and use p_memalign(), fix errno handling -- Improvements and fixes to ploop_grow_*() to be used from library -- ploop_read_disk_descr(): set *di to NULL in case of error -- ploop_find_dev(): always assume ploop cookie is supported -- resize_fs(): try harder to find resize2fs binary -- Makefile.inc: ability to add CFLAGS - Fixes: -- lib/lock.c: create_file(): make sure dir exists (#2493, #2597) -- lib/fsutils.c: use ploop_execvp, drop absolute paths to binaries (#2595) -- ploop_log(): fix loglevel checking for file logging -- ploop_snapshot_switch_param: guids are const -- Recreate ploopXpY devices on ploop mount -- ploop_find_dev(): treat ENODEV as ENOENT on /sys reads -- use basename() to strip device from path -- ploop list: check for extra arguments -- ploop balloon: fix -f option processing -- Fixed lots of memory leaks, mostly on error paths -- open_delta(): simplify error handling -- Fixes for other issues big and small, reported by Coverity- New functionality: - * offline image shrink support - * tools: added snapshot-list functionality - * extend switch snapshot functionality: ploop_switch_snapshot_ex() - * ploop.spec: disable udev iosched config for ploop devices - * ploop list: added functionality to list mount points - Bug fixes: - * ploop_mount_fs(): use mount_data for first mount - * ploop_mount(): do not allow to use ploop on fs w/o extents - * ploop_{create,resize}_image(): fixed size checks and rounding - * ploop_create_image(): fix memory leak on error path - * ploop_get_info(): fix reported disk size after switching snapshot - * ploop_get_info(): fix when ploop device is not mounted - * ploop_{umount,resize}_image() and many others: do not return -1 - Improvements: - * much faster resize when using resize2fs with EXT4_IOC_RESIZE_FS support - * ploop discard: add cancellation support - * ploop_resize_image(): use real blocksize - * parse_xml(): deny processing DiskDescriptor.xml with several - * do not auto-generate dynload.h, instead check if it's uptodate - * create_image(): display error message for incorrect parameters case - * introduce/use SYSEXIT_DEV_NOT_MOUNTED and SYSEXIT_FSCK errors - * alloc_diskdescriptor(): log error if calloc() fails - * ploop.spec: require util-linux, e2fsprogs etc. - * ploop.spec: require libs of the proper arch- NOTE: this version requires vzkernel >= 2.6.32-042stab061.1 - New functionality: - * switch from old /dev/ploop/ symlink-based to new kernel cookie registration - * snapshots: switch to schema with constant top delta uuid - * use /proc/vz/ploop_minor based interface to get free minor - * if ploop is in maintenance state, try to complete it before doing snapshot/resize/merge/mount/umount/copy operation - * ploop mount: use in-kernel I/O module autodetection - * ploop balloon discard: new iterative compacting support - * ploop balloon discard: implement --stat - * ploop balloon discard: implement --automount - * ploop balloon discard: cancellation support - * ploop balloon: allow DiskDescriptor.xml argument - * ploop umount: implement -c component_name - * ploop list: implement - * /sbin/mount.ploop: do load ploop modules - Bug fixes: - * do not crash on empty DiskDescriptor.xml (libxml2 workaround) - * ploop convert: fix converting from expanded to raw - * ploop copy: fixed check for opened fd - * ploop copy: do not leak opened fds - * ploop create: fix gpt partition creation to be 4096 aligned - * ploop create, resize: round up size to be cluster aligned - * tools: few exit code fixes - * multiple usage, log and error message fixes - Improvements: - * ploop mount: check that mount point is a directory - * ploop umount: reduce retry count from 60 to 6 - * ploop umount: print lsof output in case of failed umount - * ploop create: for prealloc image, use ftruncate if fallocate not supported - * ploop create, resize: add check for correct block device size - * scripts: de-bash-ify - * assorted code refactoring, cleanups and nitpicks - Library API changes: - * add ploop_resolve_functions() to aid in dynamic library loading - * introduce optimized ploop_get_info_by_descr(), remove ploop_get_info() - * replace ploop_{alloc,read}_diskdescriptor() with ploop_read_disk_descr() - * remove ploop_getdevice()- ploop copy: fix data loss during migration (#2287) - ploop(8): fixed according to doc team review - ploop mount: tell about unsupported underlying fs - ploop-copy: improve usage - ploop-copy -s: added mode to copy to local file - tools/ploop.c: do not return -1 from main() - tools/ploop.c: fix/unify working with diskdescriptor- New functionality - ploop copy is working now - added pcopy's send_process() and receive_process() to lib - ploop mount: added -c option - ploop(8): added (still incomplete) - ploop balloon discard: add --to-free and --min-block - add Preallocated item to DiskDescriptor.xml - add add ploop_get_mnt_by_dev() to lib - Bug fixes - fixed offline snapshot creation - fixed race between register/unregister_ploop_dev() - create image: if fallocate is not supported, fail - ploop init, ploop mount: fix -b option value validation - ploop mount: fix usage, -d is optional - ploop info: fix usage, DiskDescriptor.xml is required - ploop.spec: make main package require -lib of the same version - fixed a few ioctl-related error messages - ploop_create_snapshot(): check for number of snapshots limit (127) - ploop.spec: do not own _libdir - fix SYSEXIT_PARAM value - tools/ploop.c: do not use ploop_err() - tools: fixed/improved usage for many commands - tools: do not forget to print newlines - make install: use /usr/lib64 LIBDIR for x86_64 - ploop_create_image(): free disk descriptor if fstype is NULL - create_balloon_file(): fix file name in error message - create_balloon_file(): umount and remove temp mnt point - create_balloon_file(): fix error message and return code - parse_xml(): add Blocksize validation - Improvements and cleanups - ploop lib: add visibility=hidden for internal functions - tools: use parse_size() and is_xml_name() where possible - remove merge_top_only param of get_delta_info() - ploop balloon: make it accept either -m or -d or both - ploop convert: change -t to -f - tools: unify parsing -f option - various code and headers cleanups - setver.sh: add -v, -b, -i- Added ploop_get_dev() function - Added ploop_set_component_name() function - Fix: do not clear in-use flag in ploop_fsck() - ploop-fsck: add -d flag to forcefully drop "in use" image flag - Fixed handling blocksize for raw images - Added user_xattr,acl to default mount options - ploop_mount(): added ability to pass MS_NOATIME flag - ploop-balloon: add discard command to compact ploop image - ploop_get_info(): return old info in case statfs() failed - expanded2preallocated(): if fallocate not supported, use ftruncate - ploop_resize_image(): Check is it possible to fallocate before inflating balloon file - Fixed merging all snapshots - Some fixes in ploop tool usage - Some log message fixes - Add function, source file and line number to error messages if DEBUG is set - Build system fixes/improvements- support for variable block size - default block size changed from 256K to 1M - ploop_set_log_file(): make NULL a valid argument - logger: introduce, use and expose PLOOP_LOG_NOCONSOLE - ploop_getdevice(): expose - ploop_store_diskdescriptor(): fix for a case when image is in root dir - Fixed expanded to preallocated conversion - Remove some unused functions and non-existent function prototypes - Introduce and use SYSEXIT_MKNOD error code - Changed image -> device mapping schema - Use strcasecmp for guid comparison - Made ploop_merge_param.guid field const - tools/ploop: remove -b option - tools/ploop: remove unused and untested replace & add commands - Log/error message fixes, improvements, and unification - Makefiles: fixes, improvements- initial versionrhel5-32-build 137775667499999999999AiAjA`A[A\A_AcA]A^AbA1.9-1mount.ploopumount.ploopploopploop-balloonploop-checkploop-copyploop-fsckploop-growploop-mergeploop-statploop.8.gz/sbin//usr/sbin//usr/share/man/man8/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tablescpiogzip9i386i386-redhat-linux-gnuBourne shell script text executableELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), strippeddirectory !'RRRRRRRRRR RRRRRR RRRRR RRRRRR RRRRRR RRRRRR RRRRRRRR "vHB3?A"f@system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:sbin_t:s0system_u:object_r:man_t:s0?W}lG8ԷNC54W>|sW8ñKB^wqHE(JU % "TEUDBA~P5j B ̼;vJ߼7k޼7'ޓؾ+wے J#M䭻ض՟Ecnްbejyъi [uKrA]m<^VhCNDJ&v3l˝; I2HFIFs4ӤK2m5rP0M%%u3M(l3t&Ī#4swt(3M)};G݂cT<ۉ*@:z8dR#l&=42`:369ӣ FRϡn;pW=-~X֜iO "8ξ~P"BU),&fHŰ>Z*wJ3lEALfrZEr( IT!{WB&w/Q.9\4d 4 #vA3Y)EM(lZ%sXppaZ34q aRa( v09R(nI%WGpǤC+DI)d/t:fU!_{7%FG"q$,5Be-)_WXc*`:5t8Yj!ymMP ͡^ձHܗj~",NvݺmD`P,2'H.7O"E’b\w,T.F )IQ!ivR fH.EOI=R\U,a;L x02W;OZF7A\ɘZ2[gi lvɋ#]h >0S (RDJԬEm#Tci䄮ɌU*!mU}*(؉zaζע 7aZG]uԣ[<1m8t֋'M\֤,Cs "WO"m䞗4tݦB9(u[EݒQ)-bR!''Eg)YGv> TTDs)m7b:/aNj}]Zͫ vJzڦ3qj֝we7dhdo'H|Á[fHiNk^7_M?&ͧ!,$n?<\uD ԣUn4u^p"+MZfõhAܛ\,5HP=pDKI.?{B =go,+l10f61c׿`z7?Y{~cu[M{6>Rzkˊ|_a{%oz?YjŶц+OޟwK/5aw 8~o#& D C[O!}5/#s]ܾ؄߇#k&6ϣ'#g-_CC7 q/wPP^G/?ϡkHoC8H?'~mi?"!D,}\E?Uu&ҧ>~H304zA^Juߛo'_} B_JH8[Я#`1i&gח <_T 1DKz ٮwST%RAћoonh8Q-SZw"]xYI.J_dz )/dC?Rr Lm@efq10vzIqlد dY[ TCzPxn$|d1cx!8.'|3~)0L1E gg*l .oKֶPn6M{·*VJ,G MM[O\l<0Hd;y hڥn9[yWaʮl|my Fe/3hfR\QDC7 j'(XKnF!bdH_d;hQO6n(oyBR* fpf7d'fZ(ba`!ha!hah`aiaa#BA$K;sΜw6k^8[S>:bةByCePw 3j5 dFQ9NH",bΝqMoйR=g?qzͼ7y}ڪs3~)Pw2^@ƞH$^!QnU>O?*nrfLPұ2ٜl\8Ss9IƲ'2mQI'Hw : V lSYb\._:{le;]E!؊峥ܸsh t۵bd _ﯕbrlC<.٣tmWt>>m/x\iHŞU&.$4Ԕ mΗ "qI=E@{,ff|.R_DJDoD}/|)Db/5\hEdU\}7SEDϒi[~~~4$W(zfk=IK}I܏;>txOD~W٘8nA6" e8.Q1SEDմxy""|^Eڂrvϒǫ_jkC||gΓ_hU7&%T!ЈX5J imi, ZHMl1$F Q&5>6ldJ և>ƈ6$ê y(BgT&4vLjf{wfd%wԠrpWSA I2*IPvJ8%x$Ȩ0 QiT!2*NdT6%3v+(xȨH]OFeJ/ +ȨTaGF8sʕQ2JdTD韌OFeQrɨt2*^&韌ʗ82 I'#2Od$CROFBĢ2"'#1H"#ARN$HTHTHGHԃCd$Nd$Od$Pn%# n"#'# &#" 2*`!pf JH?I(h9Kd$[蟌E'#2Nd$^&韌K2KdtI?A韌 )'CE?Gxx ?'146nofZ_< l4ъ%5RG\"?W_cYSTvKÉU{wE.bpv9"ֵb Pwv%"Z/c|G\iS3 9Io!Qo=W@DeD1yAmx"ڱjop6d=X6,SRZV+4tbs6#}[-ywj`ՠw.9_o|uOP~ =\u//5OTX߸N7//zW?6Ǟ/oz;+ӟuS_?A9bf$ԽC,(d3rmeFOy[j](s-7oi;ھpO{э!gvrr1_gwOW܏L>v4FOEvU}AZHSmG䳌qn֯M =^>r K7X)!x"="8vjHIs+v<էH# La$:&(]en Zs]; G/ga_ޫ_A"W<ʭ`:ĈV'՞0Oۘ'ժeΗ5'w Zr_TFע15'־GiIyqsq,MTǣ1iTeѵhfkz]TJdb}{-|XV:>s(y(i?~BnDF(?B;@lGz]?t~V` `qo ]r@=a =K}HPoA\Nl0AXzOgWC̏YH ?PBаGiIKX%6AX+z|=tz"7n5b4\TsC(M@5E08Ho$^ 3T sNu]iuqc3c ~1%= N)_,x=~pNoAc{1ym3u~fD&H+JZg2pkcd+qbTҠ_jsZ^lSx~2OrG Xx fb~X)NUڣiU WW]mI$=X~a0R dpoL) B!i|AAR5&51EO3PF<~Qj rmw C+p.;μ,CHx\ ԏ[5zlAħf9<vu)qR𡒳GqvLt3@Y_=h}ݯ]{p7!޺i_/! W X_uFCN0ڵ|Xv4)&ȅJ[aDb$ӭ8O9}8G><ѡX+g'% FjDE7pjU7zm r!Z,> L>=@!.EqV@ :3;E ;Nkۭ9*E_ UXnſp}M=Pe=y43wV{<89 e_HRvߦfK\Pn;B| cp\y9ȸ6kV#$nE=4]2TF1 }sѓ*V&Nb8>ZUpJƮDQ N(( 4ssi'fp62HmXߝ2pEXU:H'@cX^ .@' lD4:]獈|t8&e/p \ ޅQ~5ZxՄm yN̋ i)SމrϼYz#q'hM5̘% ʝ ؆ӻOM%DV_B\Y`vSwԗOi%jDkD}M4P+|Kc:޹W 8`lny lu䍿X/#gK`jl E8U:`6 DzׂQəQIlז Fǹ <sfO Jrm H#P~~\l;m;;3`a4t3y(ëO ~F #(~"{#L低5,mb On1m8]Hc#$Q?p@Vq\Sx]>pfyX} ֏8O"D]|դ%gll$sy"i~;]HF;TpI(X.JrPcATГM0)@1B0xJQXg'acbEUqί# yp$ !#Bz$d%#vD퀎Ǿf!>v46],pp:Vs%\:_i䛇[}ı >QhDDŽOQ0B[q7[~?hx Vm#;_uE/̥'3 2 7&°*Dwɺ+z30 +9Vi7t0}{;?]Vj&=chmЉWu5QRZ?L`?eL/:[78nĵŠd^[SŤCup~^s/^0=+Pt\SRZ p%C9L~ ~~i&Z7U,#HtkS:R}q`0վC`Fyx{<(tBtT ;q:(na]rU|ckG)~E"֟H\gvDn?ez ǧBD݄rR㘝 Ƨp G`< _:c'QW^A/~ht sO`9kCܝ_&+Vg p++tiJ\ʔYJav F1e|xV QFM?2@_7i!^ߤAݲ* d>Sq|ʦGC 7q<%WGE>ăUlZWh!'.o6َh6,?'&5(uC{N{򶚽,ҧ^ց^Еi ykB_LdwzhQ]F"ہ$ Bc&. H͜F VaT;BG}k2Y;b%n F>,5F!Yh~đ6w߇Z␖ SGq>gfb2lքnM Sd% J ɺOK$c렢E\QG`ӂG"#ʼnLIŕrjPj|l;ƪA5ݟKJ)-оIK94 =L ʇd/RhaVhIj6ߑh q^3Һi%00)yw(GAp':pBKZԡ0lқ\H;..unQ_if\_S(l;Az|hq!0xeHq틁 D[Hn݌%4&a^37x,i}Rw8"ŸV^oM^=>%Ǩw,n6 .=1|_VmErWh&xM ;wuExSܾnM@u^/f }Fئtd Ӝd7I 1X-$u0+{{1Om@6" (_Ne7İ2 ɓ' tvFILwW=c"%vC2b]ٔks;ҽ m"5l<|:$V:$ܪ* + xRZ$i c܊zIХT OŠwA4D t@yA<$lՠx*R#I0l.r-SIkh4a SgMG![Ԑ5wK,auH)C2 t0 C& "]uIc}!!c H*"\&8N5C'+O,PXH];HSf(CaY)1IbavzTu+K)-앗bߥ>盕5P8S`zS4bQƯ~~~~~~~~~`Q0 ;] tTy~<"u(}:Vb"ؐapتq; #ͨX"*ّTc qX4(qcLpCmBr4a5f ]޻o;{߷k?>EY>w>[t]cEnLE>l7 S{Wߑ2VQ?S\ˋ%M}+*߀=pzNLe?A9=EaÇPH}EG`SӴIn^o%9Ds TDR]-ql5 v%/^( eQ@2fBm^e(!I'N˟ZKy}9n*BU+XO0ߒߗt?j]TJY]읇<r{x-49q{ZCAk *=D4q5PX?_]Lp%=*/h 'GoDtSHz$O$]EVH#i#|M0h3I7>@Iy#N Hב>Az׎HnwF"CHL!}t9{wQH7n%}l7>jDHd^GzB񤷓~H0pCA:t`L鱤{I?NÑHt:ҧHIZR=]O^>/52R&T4 .e#e `g[ă\x*?o 'lj$i` ۏbөCʹqGS|}'C)ck03+6bZndLN)XĻ{ͣ)V䩚壓}lgxn/P|͌Dfl_BsG&󫩉}ԡeܨ݊V)W>vnm+mbn4VJ6y&PgIiK•68 cfrHGG^Q|2~ :xl&οLZbБ^g3qel^(/֍so 4Qv"7u4ůKiC4C_X)[|kx vQ@cwp^z wŸ`Mu F[{"3Uzd 8"%.ވrΕg-ۯ(?0am[CNUWt`jxGڲsnv3boS|(9u1v~.I&0q$$$$I֑l"FArD]܁_1녾 﫻7 zDI/pXpp (dnp> -( %ӣ EXrJ.8ɅwD/_y".¡d+$K.",>'’(nnOrFq%W$kƋsv^*17Y%޲(_r^zaFDzHE7[i[}\?w\mtM.g(\arڬn>u/&].8i4>5nQT~?&5uw⺷c_Rpl0Z{IU;K2RN}~O\ORޕUhӹCh-jw [b8Ծrq],pf ])PʋJ+ܺsw.A\%X pYXӰ_#Ͼ@JÖK:i6T?gSVV2 ۺbe܃탃,Yق!X9tUkr41śRڗeFd2!)T 8 qe!5 qUдԅ8X}s58؏Ck1ĹƚBk9ĹZBk5Ĺƶ8E53Ĺv8X{su8/Bk@s q!5v$ĹƎ8;\c!5&8p_Z8j߳IJ`vU(%/?_Z {Woj#gX_) [saD'.F06k ̢ѰuUX} G?%5h:kyz9`? @$G60Q{ūn^@,e}5hsc3/I`-qI[(['ߤRvC nc)F29Qh $`,ܲQ`;b Z8>b^Ģ ,jH$Qx#ߓ gCg0?0lHFM$0%Jt,??3?8poFqNn6ɔwW>XݓȦW8VSX0أHɠ-pm3F}c~>^Iq1kxx8>c |( %>D"Ei|kҪ/W[U  {aYՂv1~tN38e]=H˯H84|ko*Fѩra:|WcY0\iܛ^hxnxqNpv3׸b[P/ O Caۆ?PX=|p K*PT*wolclp,i6 AC94 ݫfCb1!g٬hbA_ZmY~0Ŋ8f#%`WYZ>{kV*/oȦp5[ ޽Yq hwx=~gC՗.*p I|e{^ѾR\ղ|dRR}iVklA=Yω_٢<eLzgVViZ{gE2嵇OS4"8 xQs:Ch嘑WW}|d8;RCSWZ==U=8 SsMqUYՉ?!v <@Y=6rWdzN%3"am.0TfmY;۷#,؅u_삳ӯsDދܸ3x3]򿇝h`y^?z* ׫ǿ.?37?_nzA[\m&Ŀ.k_{n]׸׵m MmV'_h?'=sOǟ?YOOo sST1C[NȹĖrZ("Yo)>w( *!c/D )+r8N"POIwZ ]iUr;=OGZÂ" -4VៜˊU9E8 Uk H |g *v1w%iF oanmFnZ~O Sy5emEqݥ%%.SVbpi+wNNe$#- ~Ou_v4/-*I\g SmY`K}~'{[QYSY1i`Kx:.tUx]|vE%s)'d:}‚)gN 2MQű46ԅCr @ APjC] 14{Ci(Td,_LEs-L0IDP{0MhsIH<+\#PlQT6Q`>i}АژCc&*1D^wg=0%֔d昙3e}=;~](wRgxqrN𧢊/q ^wQP?ds(q(7 *N՛ʫ'gގD*p)^`0N '觊Wj >8s ~x99Agf,'8v5'ol7e='W5Μ gNɱgNPj9Ax[j9A7$s*Q BTPOj<3'xepCupp 9=i9A֞s˧'(}azI# AC 'XA jc!4eN &NY[e]4Vx௜o 'hfi|5is߇w#y33y%#d&LˆùL6Ci<VDx}hy:ߪhYx޽wJз1oĻz+SHkL(୲J䫲i*B{G.#7uWcȝdn10NYaOaaQ-RP'R'V'Q'S'uRaT8~qR qROBvGv~cO*^Q4> O&IxBO“|X"|R"IH'!e"|R*IH'!"_@瓴XrP?P ?B6g݊˩er~r.( :0SR|^:H0\ -Ir]:. ~#i+gcǗ*ayr;YVG{U7gU;MduSst"z՗EK|g|YS ŋ7s%L̝>g]lB<'y 1ߋKH;P3 J}q`i4<,4?) =fG&>5чu{UaM5kL|XëK7Ú-}Xoɺ뼬.F֤Ú-|X>,d_͇uM6ZZWnÚX1>,^6n_VR~}XO0 .mF>,WסjmQ ˯o㗦b X'>:'U\3 t<1`$;/H B\S3Lv/HHd3 \<hTn9ED ˜H2egW6CQv.,Xz\MnlwE)zlsۛqP0PayNCAGjrPW+ݬ^P}NP(^ʌy$)^ʹo; cP5;5Q5S[Y:[y4 m4ulYCA'7P쬡3.vP1bg / % ƒŬ`lpD }kmĬgP.dp};qjᜩ X!@+`8aC@'X ;"EɒI`GQ3ٗ jP3!X-SihK]! }Ӟv%,bü۽ݧݽ}s,j( #JQ~{I$" }-@o'Edhݍ8'SL,NȉUKF"`IyO,[8;|n.EsyO2iv.| &7|>S2I&3>aT';,(6ad/L5} }'~'9 e޳W9 ,o~Z8;Aц>w9fcbع9; 3 3"WQRK2+J 2+dFdF(Ȍ(-Ȍ(=ȌhEQFQf ˥\z,ކ ˥)rY.=nJU$~*Ҥ LTM {"H4%hJCє)aESžM 5!jD4%ԌhJ!єPS)Ĝw91jPysޡFŜwY1jXy'{ >.^Us^Ud^5I zUYpWgUXADJ *ɫp <_R4?v~,]T ՈV+ݪ` LMjRϸdKhoyVsaڥ8S~>5J#æ8KO*= b>ˬF:(AP&*̨bEYZRV˲ET pUi*]5}=[C3J!gV^ ; |zܳW"w}Ua$/i?{ʄth0CO^+v}g\q*@#._IΖ<%4N%64&Oζ%m^؃ts$"Ed KfS h:}2T.xq$8;X%w0M`79z{9,ecSFFǾ@4`j}i`j;=HG`{o_K;X"wklb9X`RvCrs0%ϧW;5l&"7H))$)ߤD!f, e9)kjt>FA}>K>vp&b 1`p>cn1|#<@jXd8gܱ\pވ5؞H޼>Cx(vx5l?YnѾ}laGܼs414S>sǨi8} }Pq} ԉd &>~>6qdv}61,g*'','F6 ny>W<[\/[>yypKT[rcۥ^c󟜹`̳;D}䚞>}䃹#śo-)eeLk:Ve4>ek.dTcr#Lt<.x=xd2\-i3<(/i t),F%+đCG#F:1eQz7LǨ7)9'\΁hr堗Xi+,,#03pu;p}sM憹憅憾sòsCBs]&fT/^={$z!LBS ǢbE/D ^5"z!jFBԐ腨) QcD/D ^5y샸v`8SG>0DJ`]`gXADDءx-8S<tU}|0ų>XSq^L{P ;|8t<_/Y[|5) K('Pu^sK,ETWO.΍l tևW+U^+,QyZ^ߕ(+31$Hݷ K+^F~_ Y6M_NcKn8)W쥯P:ege.^f.yuq3~ѯT!)Oщx2Yt3L}c6iS狮gm}ƾ3E%_\ #ŝ AŲw7}qO/k0ŗ"Yh=Ōn/>-)z@5/v4܋x3ch%_ܔt=&}Æp=<f)Ձ^"R_ĜyKrx|Qs2nܬƉCsbs>f}?vp\føLmFr 7K7fhr*qͦEq47InV,3%Ի{tǴ̬N4/M q;33M5)ipƲh83rdtfp}h`f3kgfۂe2473`nfj̖A`nf?rjM }Ns3Cḭ3krZ)Ȍd2M^mr/1\^>?w w! ?*kQ!o&GW&>C2̚%7踚ח/G#Qr3ݧHWZߓuJqlf#,z|kQzw56As$cK_k!}2?YpZ0kcd!pan:ҿ‘^'}kRH?Hp WH>/(l 9ۅG5IW tHɁg+y3 `F9|ri79[^d8᠗r}F)jX(=5BAXw='5#3fVM&D~.Xvcy,ZEh<Ǡ̔X&cZx,ZǢx,qvǢh<Ǣhgy,},>-h,Z`,ZV!ŢUJhR,ZbюHhMR,Z"ŢXv\E;!ŢbZX6)vVEE9rDܺ||/oL'qh;UkqhCša!>tu8&8ay1əҡϺ0׍ʬ9{3;5FK&ȉnhyN>ըkggY|eը<|% Ceu{L?#U}g=/Z)Dl[iG;hڅ̑c Oe'Tꡃ+Ym|_M7d6(zMlMX lʢ}moX'TZqWĀ6X4İlK:?.Qܯf>@!_#/qJ3`!p=VKm5JsZ+ͬpMbڽ ^*-to06Daw/#C@NVmǿN&kϿTa78ᄯ}B?f%g|z`L'f?_G[z;Heul^BC4:LtV,+:7{eEpnkfoZqbqyg^;'块.(.#B\^7MԻY.p)NfllݬU[;7dfa9LeܹU<&v~FYZlmiJ]iObe Qm,,9\yұW'fΝ;#\%˾k<~-ǯ$3?@[o$!O7ydpŒ%sS[ V?8:Mkˋe6d,/`8Mke1w%0|ڔW!v\~K ( Y][G% 5R$4)H'RH!-qSHIBRVAt+Zˆ~>.ϭwVCCc0Mg16ܝ]hYǧ#Vҥ(-V_V)?uPq2)@a4bADEl K*Kk_DTDEvnM4M<37&‚k2;sϹg_ﹾxF0F$+I\cQc$cDڨ.C6r0Fۇ}w*Ij#zը_'y_1h_mFo zCLCeZߚUYƲI5Z[,4o:ݤOキ6gA.Tc ʨF]C+ 8[-I;bVfLھ(~V; 9X' %I6^Ze z y$ڴhUsÀJ 5}gvz!{3qC+Ơ dzO8H*LR0;"CnPFL"ߓhKAVBO-Hmc+9fZxNQ :5}ޭ6̽&#+[dЫ\KPJ{d=uoTI)د]%F Jns>ʫLL*'׾ssꬓcnGt @| JDcjy[Scoy]]#u:J^.kM\z +CÐXߥb%|߁m\Fz)Ճe6_$J]8rtjvB Gf*y"D:ے#5.uNȌ}\we"eHے(|7& 3_ 2doYY;23:1oYVb eo]}2RX|~wdo/l`| È-_[嬔jr o*Xk+@мsr#Jtn*3EԸqgKSUGFt=ͲNɣ8%{ $iO= SH_#?FGdN4"C1齇oAG'w1x[gPS[pzPDT H^*K H^HҤ#A4T.MA ExWt3ٓ2Le?=y0_widl̅5JpEz0d{cjהɃ1w<S?`Ã1=z ?<xqw?|Oԇڦf7pu_|={LO[gѧ2Ao(*ae}A DCֺ&7.s*0IC9x`/mgm-dOCM]Hҡ"EϾ[=2g492vh'i-hO#_Oлz128:qrKպE?/A ȡXRD J J2˜c.d7b m-/ǜ ެQS:8E,]!{S =8@p[.nհ[:-@8ƊJX,&̱u# df(o>=ܝ̾ /ϗZd.VFuA/[8Rw4ai_2Ng e>j\iɶc}W)ckHb2(#%Yl=4?Үa()\cGq\ZyL Ҏ.܆6E*ҔH?(wQS džL;A}yꁓ~t pBsL(եG4PI5!x'R <). hһҲZg|-X0(i$oc4c$iH}b\XNko%âQI{a!qAAKSl٫@Le/k@FlKf6eI!#+^\Tʭ,inij۩${ -Zd"'?44hH lٸ3xbyB<ɒpmϊ{tc12D #-es-$v#JqG"9tĎ`aPY1аӨ5^Y+>G!kpx6B`%ncRvwQ@Sg1ţsn*.%E?#>e5{x]c+10Uv b&^N7b,2sD@씷- p!9ܐ*'\8!**(`N މO2UBgNZxV5F2'L왈ppaΧ=|iZف G}Gj$hE¬;Sjܢ_nŮIf3R~ֹNE X^j"zs}HRomyz-Z+ޅ^PQ6k\IdvQHfGђg=q~p2hV tRby IaW6K {.Ey6msyʆ e7c̾4Rko*_g;`2Z::R$s> XHldٶ68͔a8qXn^)VwvDNL/ėHǶ?߷482.(9v$@:B%kyrD,XȞol#Ĕd}WM>[x_vj1D _ԳV@$k[WGHq BЇ!Qa)~նtm,~'x_͆Vխ|`_U4ۂqkjz2qDԿf?D 8>C툤Tb!R)!=bcna"ƆmM淍SJ9jgΐ;f)!nu5RwmJ;`f+948{rՔ3I9JxJ4WnJ2!٭M.Sq7߸K06rxQ*S[V׶yhW}VlhTk"M]]1c<޽lcl_M~j cofR$>ue)2}bMKAy(z4\Ƭ7?\e:]RQL7sdUgNpHnmA#e/ࢨXԖGW-G5`[b1l6 `K.Qfk;}