ploop-1.12.2-42.gc876e3e> H HtxHFTx  Զb|]!c J+Rj>4U>[U81452943dfcc538a78b345cc3514b484cf4204d9גw W!ަyץ.FTx  Զ_7A['VORe)9%Uh[>8R?Rd  'lp      Ty(89:GFOSGOpHOIOXOYO\O]O^PbP+dPePfPkPlPtPuQvQwQxQyQzRH{RXCploop1.12.242.gc876e3eploop toolsThis package contains tools to work with ploop devices and images.Tyrhel5-32-buildGNU GPLApplications/Systemlinuxi3869큤Ty Ty Ty Ty Ty 5a5021a4760b56e87702ba39f7f18d7104259c52f2d97349c2d66a096585d2cbbda38182dcbab0478f360077acdd12bf434f3cd016ce69175b3400ca7a8eca7b31dd69e3f629c3f6c05931d81cc0774frootrootrootrootrootrootrootrootrootrootploop-1.12.2-42.gc876e3e.src.rpmploop@@@@@@@@@@@JJ@/bin/shlibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.2)libc.so.6(GLIBC_2.3)libc.so.6(GLIBC_2.3.4)libc.so.6(GLIBC_2.4)libploop.so.1libpthread.so.0libpthread.so.0(GLIBC_2.0)libpthread.so.0(GLIBC_2.2)ploop-librpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)1.12.2-42.gc876e3e3.0.4-14.0-14.4.2T`T\S8`S 1.12.2-1Kir Kolyshkin 1.12.1-1Kir Kolyshkin 1.12-1Kir Kolyshkin 1.11-1Kir Kolyshkin 1.10-1Kir 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- Fixes: -- ploop balloon discard: fix wrt 042stab10x kernel (#3156) -- ploop_merge_snapshot_by_guid: fix offline merge with raw base image -- reread_part(): repeat ioctl if EBUSY (#3081) - Improvements: -- check_mount_restrictions(): check for all images -- ploop check dd.xml: lock dd -- ploop check dd.xml: skip check if ploop is used -- check_deltas(): read-only check for non-top deltas- Fixes: -- ploop copy send: fix a race that could result in image corruption -- resize: fix resize working on an older (pre 042stab092.1) kernel - Improvements: -- ploop mount: warn if host filesystem uses data=writeback (#3030) -- snapshot-switch: don't show ENOENT remove error -- ploop_is_large_disk_supported(): check ploop module first- New functionality: -- ploop copy: implement two-way protocol -- ploop copy send: implement async read/send -- ploop copy send: add profiling -- delete_snapshot(): handle snapshots with multiple refs -- tune_fs(): use EXT4_IOC_SET_RSV_BLOCKS if available -- Introduce ploop_get_max_size() -- Introduce ploop_copy_{send,receive}, obsoleting ploop_{send,receive} -- Introduce ploop_create_dd() -- ploop info: add -d to show ploop device -- ploop_check(): open image RO, reopen RW later -- check_and_repair_sparse(): reopen image rw if needed - Fixes: -- ploop copy: fix open_mount_point err handling -- ploop copy: improve fd checks -- ploop_store_diskdescriptor: fsync DiskDescriptor.xml upon writing -- ploop_resize_image(): handle get_mount_dir() error -- ploop_resize_image: auto-mount fs -- do_delete_snapshot: fix wrt temp snapshot uuid -- ploop_switch_snapshot_ex(): don't return 0 if guid_old is bad -- do_delete_snapshot: deny delete top delta in case parent snapshot is temp -- merge_temporary_snapshots: fix infinite loop -- ploop_switch_snapshot_ex: fixed case with PLOOP_SNAP_SKIP_TOPDELTA_CREATE -- ploop_delete_snapshot: fix for temp snapshot -- create_snapshot: clear stale top delta inuse flag -- e2fsck: make it quiet- New functionality and important changes: -- support for 4K sector size (including GPT conversion) -- ploop replace -- temp snapshots support (ploop tsnapshot, ploop_create_temporary_snapshot()) -- ploop copy: implement fdatasync before freeze (improves CT frozen time) -- New DiskDescriptor.xml read API (ploop_*_dd()) -- Obsolete *_diskdescriptor() calls -- Obsolete ploop_get_base_delta_uuid() -- ploop_log(): implement subsecond timestamps (with verbosity >= 4) -- add ploop_is_mounted() -- ploop snapshot-list: add snapshot mode (-s) -- ploop check dd.xml: add -u UUID option -- ploop mount: remove -u base feature -- ploop tool: add -v option to set verbosity - Fixes: -- skip max fs size check on snapshot delta creation -- ploop_resize_image: resize up to end of device -- ploop_delete_top_delta(): fix wrt top_guid -- ploop_read_diskdescriptor(): fix get_basedir() len argument -- check_and_repair_sparse: handle EOF properly (#2897) -- ploop_resize_image: add missing gpt size sync -- ploop snapshot-merge/delete: deny snapshot deleting if mounted (#2887) -- grow_lower_delta(): fix a memory leak -- ploop check: fix -b option parsing -- get_partition_device_name(): fix chmod argument -- fix alignment on GPT partition resize -- fix GPT partition alignment on ploop init - Improvements: -- ploop_resize_image: enhanced inflate balloon to max size logic -- tools: add {} to specified UUID if necessary -- check_and_repair_sparse(): log filefrag output -- print_sys_block_ploop(): speed up -- ploop check: try to repair non-top deltas if they can be opened r/w -- e2fsck: return fsck exit code to caller -- make_fs(): add -i to mkfs -- fsync_safe(): use SYSEXIT_FSYNC -- Fix uuid strings size, use define - Documentation: -- ploop snapshot-list: fix and update usage -- ploop copy: fix usage -- ploop(8): document snapshot-list -s option -- ploop(8): document ploop replace - Build system: -- Makefile.inc: fix dpkg-architecture handling (#2877) -- Makefile: add ability to add local rules -- gensym.sh: better usage and error diag -- gensym.sh: add run mode- New functionality: -- Added check for and repair of sparse images -- ploop check: long options support -- ploop check: add --raw, --repair-sparse -- ploop-check: add -b BLOCKSIZE argument -- ploop-check: accept DiskDescriptor.xml argument -- ploop umount -d: allow to specify partition device (#2788) -- mount.ploop: implement -v and -f options, as per mount(8) -- umount.ploop: add -n option (ignored) -- mount.ploop: add -s (ignored) and -* (reported as error) -- Added ploop info -s -- ploop init: use v2 format by default -- ploop init: create ext4 by default - Fixes: -- ploop_get_devs(): fix snprintf usage -- ploop_global_lock(): create lockdir if not exist (#2767) -- ploop_grow_delta_offline(): Fix uninitialized struct -- ploop_ioff_to_sec(): fix for v2 -- lib/ploop.h: include sys/syscall.h (Debian #728173) -- umount.ploop: fixed (#2788) -- get_image_param(): added online (from sysfs) and offline (from image) cases -- make_fs(): turn off periodic fs checks (#2769) -- ploop_store_diskdescriptor(): check rename() -- ploop_store_diskdescriptor(): don't return -1 -- resize_gpt_partition(): check fsync() -- ploop_balloon_change_size(): don't pass -1 to close() -- ploop_grow_image(): fix an error check -- Don't ignore chmod() failures -- print_output(): fix output -- make_fs(): fix max_online_resize type overflow -- do_umount(): fix diagnostic lsof verbose level -- plooptool_stat(): close file descriptors -- ploop convert -f: do not return SYSEXIT_PLOOPFMT -- ploop check: fix exit codes -- make_fs(): create ext4 fs with 128M journal - Improvements: -- Support RHEL5/e4fsutils (tune4fs, dumpe4fs) (#2812) -- do_lock(): open file in read/write mode (#2730) -- ploop_send: use ioctl_device for PLOOP_IOC_SYNC -- use access() not stat() where possible -- umount.ploop: improve mtab handling -- mount.ploop: use case in option parsing -- {mount,umount}.ploop: don't hardcore ploop path -- ploop-check.c: rename uppercased functions -- ploop snapshot-list usage: fit to 80 cols -- fsck: use fsck.ext4 not e2fsck (#2812) -- check_size(): limit max ploop size to 16T -- ploop_resize_image(): fail if umount failed -- print_output(): improve output -- ploop_mount(): fix/improve error message -- dumpe2fs(): don't hardcode path to dumpe2fs -- print_output(): use our own default PATH -- do_umount(): refactor and improve -- do_umount(): eliminate extra 'lsof' call on EBUSY -- do_umount(): don't call lsof again if not found -- print_output(): check return from pclose() -- print_output(): return exit code from command -- Fix some wrongly used exit codes -- Remove unused exit codes - Documentation: -- ploop(8): document check, balloon discard, info, list, copy commands -- ploop(8): describe exit codes -- ploop(8): better resize description -- ploop(8): fix ploop umount -d description -- ploop(8): fix ploop mount -d description -- ploop(8): improve convert description -- ploop(8): add missing OPTIONS section -- ploop(8): make IMAGE FORMATS a subheader -- ploop(8): other small fixes and improvements -- ploop usage: improve -- ploop usage: update ploop check synopsys -- ploop init: fix/improve usage -- ploop usage: fix mount/umount/resize - Build system: -- ploop.spec: require -lib of the same release -- ploop.spec: require lsof and findutils -- Makefile.inc: add -Wformat-security -- Makefile.inc: proper LIBDIR for Debian case -- Makefile.inc: add CPPFLAGS to CFLAGS -- Makefile.inc: prepend, not append, debug CFLAGS -- tools/Makefile: simplify SOURCES define -- setver.sh: introduce build id -- setver.sh: use getopt -- Remove stand-alone binaries: ploop-check, ploop-grow, ploop-merge, ploop-stat, ploop-copy -- Makefile: add Coverity generation logic- 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 142543899099999i7i8g g @1.12.2-42.gc876e3emount.ploopumount.ploopploopploop-balloonploop.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  RRRRRRRRRRR R RRRRRRRR RfQ-J$esystem_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?X{l_;n i0!ƛ#~!?+~\HAqb-۽E*PԇPA@ 5ЖRZ*mJV J@[DvwIUz77kwwqL\?k:pD35]k,pEcvF3b%b8Ѳne >ۚbl.mdV ~%vfINH1Yv4Ӱ-V'QV-Uשn4g9(do)/JztXZĢ6h. h:pM?;6K)}=Gӊ.t3)tztpd8XObQ5k,,ٓRbJQѽC07Z1,ĸ]"ɡq%gLߖ:Oʚ9 Y46U5Sg6 CpKF( [e%9A,' 9M"5Pf& ݻI͗CyMv QYVƴwD Eo'Y 3C`VU˦ӰbnfUR ŝ0M-Tқ 69s^>K5 d4yLEg Y&6nj/ 8 -%$s1ٗܽ=F?VHb[_|8DCWx 8b9"a _ OtlZ0b%I7 7YTD_ёr$Rzy9r}cRT%eKcQᄖdRej8*>hvH@.A_lSwLm5wu_K%PZ;U[p}`QWI2z*hs\aGR-T< CMk(\* Ŷ!*:dó<0 zׂs];c^틏x~7%=:|"&K6!(]aԌw0^j3Bh=NQIˆ9f{SYg4~u!Q]P rP>^0L[3`5fBs9C2Äaִr01: QR#Bb$&+ZjEm`ϭ0B4\Tcz]Y,W9WW1@yCf(ㅎ;L/kKՁ EgE]hwӒ~ˌ:?K'6pYqwg nq8V^`5Ԧ.s9 zl-% ^ڄ` /aGz=|mf[lGl!@7vr+a=ˆKХcp鹈mFb~wdc)ք`\ qӧ7j}'ml:&A.lh \A p? CQ0aap`G;`,xw65>yٍ[ok;uƭ7[Sg^}ӳW}%]w{p'N.[6oko~{_roUT7]mzǧ?C1k@`{) 5~0~܌ ?} \/=({߅7G}?ނSC$D}!nig:KC/&?A[~߆w ?@z?VrϠ}ӈGPH e(I M:~!}/O!>H+F\H񫈯C+hO ?! a/xzAym(;NZ_ [BB  7x[x!A|{q\wĭ?@}:⫥zmBџq1ćўE=53w=Eq? l @{ '.\D|7ʯG>QϏj0RAxw#IF+~׿??AXo?m?QT:M?ndҶ`OJz3/ _g?` y u ~sz)qF?ވ'}n_=sV?'/G6 }p*6? .%! ~ _yadZ;0 Ug[H4rB+D I\,M H<~sqC"O}!8bYWwA;6t u˲GAU|Hl5nݷC;"UGYkB~*4E,4%)VfBo~W}Pm8B\,@i@9_~_Te,*PiV|ᯖf C٪"*zt*vGcN?TPiB?C;%'$'%]h[#J+D}ZCQjqtɟ!n&"mմ*<,O|aCZ6 Х|A> DzsddFeSddO!I22E7ddFIF ^22IwQFFff22L4 ddyYEFijF'#8'##u,'#Cuzzz:Ed=Kh=Gl}z:Cxdd;;O09(N4N?8A>#䳌?x %'p'n#O2fk?|4_b76{ŃҖs~v'-';;>c†qf-͑g"! O6fklT/lEV5FD+e(ytFȽIQAS!FhsT6z9\c90z$E(4*=YN~6*E\_.fV9nTmS:B+C]\mɐce˄EWb\i` Y# +_`2+!=Q44tɜ}5EҀaC돎 Y(Vx4ƌÑcU\E W, Wy]? '[-{s/qKJ]/]R;e~5h[M8LMD8~+KT\!8n0By/q:DW\*FR`9#?ita6 Q @Bl!OI9cN ױnbKFO0߹ǍfH<HfXIvrJd0Nacs=VC[ \nMV6B0 Ѡ2sw /"UpZ4\UZGsES>g[ߦYu~ACrt^KOh!l硧 $8.cf d{ݺIDG(IrTlaUĥ\= =(@cQCS;z$4cU@Fot1n$j)2q(2b"y1غNʹ-~poWqGi] VVՁ|GA5kN9 9TxN!XH}z Q)HADilD9=ekyffL&wOrn܏|Ђ?\Bӛ}B ˻ߩyFTޘ_lbF 62A+5xgqs_&?3Q.fYS\se9֑잍gd;5 0ٸ "jlJmN2Aڲ*ĪBf͊/@[8dLnEhlwt`~p\]DžWB˳\daS@&ԿB]>:Nz{|R/->˓_N s\1 _ $$+|0Qp) ךWfm3n1_昁K&-r&$g^\ h]' :|eJvcAwEdLNpT|SYڈ'qe0Zi@ai \m;?Zid xw;+p7"G8e[hI2/C"p9%z[,? jDF=4C"I b(`usnmcdB@z2J"Fj81اbc ̻i\+M`[yŔ C5C qREsvrBPQ @RۮI>iHG5iݬ}+(Qܧε\"~*= b+/ ?XY:!P7t|NUx?k(s<GLэܟ3Q5R2to,w (^r(cx4 Pm"" c0x(|"J6 T.\f.UFF]oD.IJ'ш}v|Frf42spOǹA{Rvt˟ llȚDVB!FSTn9iQy_/}mIIĻ9eyv㜖kָN :Yc!Frԯx݁XQϿC2X{r[̢Meeo%Dwbf_٧]@{6axh<'cdEE,O&:HjݡthgWm4_ mIN}6hrFrZCj5i<"[O>9FڛV+#+5Hqt>lx/>c<XlŸ'ÆVe ㉞ M9\qEl`cMXe*^1~ZE(}E]^U(H&/BVY AŽt˦K2.\?IJ{D{RG+HBMA w|,_u_i M*l>!m  3[y64+" [{ՑM{v{&pЫW#"|ko`MZi; o oD^Q|WlQ?pȵ?M#KJ/QH(9# "ejQm )ҿZ&ď8шWf"| ': ƾfM.$M'?xVo3"^FS*?t,72 i*i㕳Aױȳ~\ g# W_7c ҼCSQ~uZ׋ꐇyA?fӐdk[Bop)-JoUU aqna?} 'EΌV/&ÚGl{JoʞeYt<\ߗ-㉲tFGl_g9<1kzf)P1W_@kVxd>\}g]u)BB$P}d+IrpsHNGhzLNr zJNg4d=~VvE[?ANL% <*RojUHM tUށ\~}RyQjk%i~$ ejluI k{y]>o_EV:{[}:-gzGCzmFWY ި55@ $^i[˓!F׹_pX򟑭Q掁էJåUaˋDK>SmN朒[OJhV͏*@r>_`O5^Nċ@۞[M51Ocm* 6B^bmйyÞuF^zlD-Յ~Ɲ``X؎R3G醻6 \P$^\ߋןQ.3x/(0+|?.\V7Ӵzd )^>k#6k ڸw:NUZt4t SGC:FXQA~IADj(W,}2emKYj2~u$hۣ/6=ԉ~t% kJ$լ H`ܼSBUs.cXL<>>OT:cM)b(Xl'ᨦ7;EfYJ,BGA4=:J-.VÞQw"[8lEX볤OFt8ۓbPZljw[:g@38ȾB{Qͮor‚VSN/:Iwu=iQTlC?pyr7A^m 4C>AQPWwi˧c! ٻY5lKA뚾29\s١Ykr ǍZV42K`f0'v73 ~w.E}?V/nQ_z "0kwZޓeݻթPMқB VU,QŸEͬ_u78lldi1B<d=JJw#v ꠜ~Un)QW6ʹDLS黵(~n f&>(yKЇ fya9wB@ tՍ& 06cl $7%B*;Fpp#U1voA?xy9Oh6hKblpNkd4_a`_Rј]ܟKD5o):.h*$vU+KgkdQp7F?|6K5][|ږA/"[_%Y|V\h̄F;hX I5-HrNVDsJaVKzITyIva_3B>b;\rP +i_ !yV$B3N-<]VhboJ_C…KêoʫxQ``e6DZqDtD1 ?DEt=}PaBcCylvTJz|>_Gm5EϦvB[ug!á a2퍍WVR֣.d&z>k1^skEjZG?+ W $s7m;L8Q]@%]^i/`{W<  &°1G6lKX&*nZ^ J&slL-6lCY7xl!\:_ {d5 Wj> XA_}\+*EA1PKU"}ʬtw#3)9bIƎ`Z>_ޤm&BMeub k}8fUfmb[c| ]u>Y7j R=XuwKM!Z6Q1f [C)7J Āy^%Bo@:0[) ֲU).2Ru8vPհR^:&vJE ]ܦ=`0^-QzXĶ(k0Iy`~{hfmIfg1y]#dA'˿ʿ{x-^|{YM pS2 i( E (P]C `i՗'Lh0%( 7B5İn!M؉;s : ANa{aa ~l3|䁄pE[F0"YD.P}_^A9cTUC8'.=1JYݯm_Or38-8؊#UX6Bێzhb)`@aE7UDop\x+XNz1/ Ierf}\dAMLQ(\.I$B)C䰷0fPV[C\ڹ-d r)Ɉ.jFT 3LJQ"XE d&蛰,`>0`ZxHj֧h~uORqyp\/ 4wSDL/g58sy^klˑ| ^~`7!?yPT5z0Af7X'F3+CbTk/uP2aT&0l@B[ A4#M˖/ƳQ sm$zQi '+B̤iiO̘:}iӧgY b=-ô?^a6Ś:ݔpN2h#k*=h_2.%SɦvT;Id#ff|k+kM&WW2'Л%ժ&ො&ggH@85խs,O:?eiigL52)=&MOae]M,,-5Y BG@dW#~'/{!γ `k@ {Ofo< `_Y%f[n!AX>=~ÊE،zfIvd/aHW'fY&XgOJBZҧ,K,SfO+-ed8e `lvˬY&a@ZF_83 BPK}O>KׇkpoR? 䡵A[00#x9˗Z[r8x kceuIӦF{@]>8*`#aנ[tm+Gw{H,P-`@1ȃɃg,`Z f ( fj20Y)d `ٙi)p3@xd^It&h016t; !43]C[C)H-L͌nJ2/9(?$lYK4%%٠{`NBw4jrj<*>]\}ECJEv)g XYa"m0eD gi@Mlel8t G*pѺEDp ca6B@4 D-8$2+* 9M'R3%ZAOOO!|5"LPa%!цFv6:V <13O4]=o@ Z[ʁ EHE}j }1_>$Irl"پDτkq)C%{%n702Zl켰a@4sp 6#~ O2@g.7Y%0`(K#1AE!l?,EVs=w"7';{k}!q k !\GLS..39P {O!0C@ziLԝdYn_ F CVM h}53*"'Z}n]+f9^=b{`d@(e<jR!tFnAhLO-Vu<)3ǟ׈OeK83$mM(/x۝A0n~J).0KWt8x >/ŠLhӊ)0~|7,ynY7j:݈,{: [n[ 8 f]o {U8k q2m9iw=6CszyQKXDw X*Y Է\7W")?vWqۆSnS6+T8\sQ)-L*-j$y_A|sc:T v36/Bl/\@ jWb"zެc "4Jm)ct*S HMD[һ,DT9Ė^ޖ7dGeHa<4LUye+`0'[1I;xЯދEtRk,94~_`8]=KAMqťJ-D{mhacޚ#v?6 j A{A$BM&{{|.gS< ߏv s[h_聽 | ±뿳 };W;ԎD]h_<_Ģ°TD}5sh m%Y^,ei~.U,+i(U,U Zm",QELS($ӍFNi^A-fT<6lH\31*Ԍ)x2S?Eiy ш\nBMǶs Lv#ko*H:sMQDNhJluq8P=v@L2%hImm/: :6^VK6~G&|sѤ#J#J۴-cXq Yi4ԨJJ TBE= :B9Tr}G%-p2$] N3+O)̝Oh#UM*EBq$ u]d럸Il5iKJa[6ÆZ^բU.nVYD*%zAC͛I&Ӥxyye /w囥|^as- DIF'SJK5VPGC~weܺϲϟHqG|=G8?M˸[Ӗd>INRVqg*zW@`l!;X֯8&F VM)RJɩDE5T[Mӥp~]N=uP+-rTE)mcaRRʟ`PXMOuWW`XpC3/ DA^e&jX67 ˦-NpVLWPdy͠Gíar1L7} H_:'nuq o{Pָ ?>QA%\[`,D +;6op L"4#Z7! NBT`p'hCX&8 Nτx̃ !`݀RX3`*lK| MpL|pt`) qLo#/"50}$r`p8R>M-R/WTE/7v^ȈF*?\Is/iUFs4R5<3c??QVe!vR~gfe<{y#iK%o4ʐg?ig}z hǒ>W%qG;+įُHs)}kR^.y~,]{*-FHDz? )"]Z~#=5d~yMO9}A6^R85OlTݽWZg#]@WXIw;%J̊s\1oY2"Tuh@ZІD_W]`BR 5CЂ6t `BR 5CЂ6t &`BR 5CЂ6t `BR 5CЂ6t z{0!)@PԡMhA{Wr=glHy\s|7{|^3}aY @ܔa9k]~b}?OAdJr?ep?Yy$9x^=ş`oͩS3Z|a01'r鹼f6+LhLjK@ǓP* .uXMJ4C?PAPС8?'t{!އ.ﻣ#n'.|E.q\d=Dqoq`T,ﴢʨ&(q&$clt0H'놗_Gkc5hVd}њg 0yO~l)EH;7nKߖh!*8pħ-+h΋V'~I<~T'C\TH{+%^=Z'#nXm_ʅׂĊ:{~Zp9[)gfl!d~k)GX{^ƥFq -ci.ۻUtqGŠ W{V {QΛdm{9YW%@7eon=JX>74t]}lE;zPB QVNB{-&E-btl{Z|&14|A &6R"SQ!X0=C#ywݫfoۙf߾ݝuoպÊq.F#8w ɗֱ w8}竘1WYW:b~`nU`DܪKE#%`ϑXiken=|lz9i,43MMe{"xhKk~įe9:CYڎ]ˤO|Nh YErھ8aC:-,eMSyc\ꦱ#m—9R|xJ~I(X_ϡ+@hKqٰE=r!)?}~iosG$|T Cl ~\+}TOOXqdžy:L8抂Ϟ9|~UcgKA3p5V|)'βCgOyz?gХipgfMZ0Rra ]t1heH`*6-+ȶA=,oOV1 |5|Lp¿wş}6S9*Juf_<^y,du/8W]IJ) ߬|a8+w>A|__ima<[F LTO˜]Pp ?_!h1­<P}| n~f^h]Hu. DU4TǷ6r-UZ75Sokm. X.&[Z7+Z h~sRޚC9|M$ғty;REU04;~‡|)~#1]CyQ9 /uaܥ.H$)u1R%0q$<9&!42J/~ƛ JGLF{Vީ6UW a@sklM5Ar$J4FhՈ2oiA|] (T}AkTM:Js]0lki iɅBJxh5,+%QpCMXjJ0Kڮm=Ӆx0\Mtp^kCq-YZ +O-.+rf|f+tv ;8J;3[]ږ 8GQk8|*ebScQقmywެO=^Pr,$((qPX@AJPr@F/N$ !(]o&(Aט|(A')5lA(5.X4+d&t@Pj6 򟠤rP,Wzك+X?`{Ur^7,3 `r %⌡A$zCSnШ/4k%1 ºD;ch K2 B^? ՉZư~1,aV"D!cXƠA\ư |Rf-0Nza1g ˙waA4sâf71,kq¦6aqg ˛~n?c3FO0#1z3F1S n-`s71pkxntwtrK b ` ju-/y5NDݧgflSU-t|J )uH G-\<+h`s#Y"e+#A͈3yN7躶[s}s=sϽ3o-y]vycv{/|YG6 ygk'sl,>!f5[ϮCu'\IJd1J]2GߏΩ:m33M5 %>TU'g7n^y0$( EԆYnQvY-Ym)XeW'Wpu`c#f;Ӈ 0eqɼ". LM)㊋H+HCqwa#@TjG3 }S3@)猧 xb{%=zSrozR ~يz,`N%Dy(C/RbeuO̡.fqhgi@vf`D;{SȴHh"'+}I6/_ِE-N 5P8MJM{KgJJPʆ2i_m.Zp+`[ })EX*elD+Y\ZiݦZ#\MMHBo _!A&{a 慘eg-YE5  eLF&L6 PkPW%]cM)N OOq5jƯfcwEw"V+E;IxƬ's7({lqhmR3"=o5}:rO-g+ ?)gT[L4++ث-]i~+ܳQD&`| ^-Z*YImńv"ucpܖON ٢^Q /D~W<7,\Guw3k_igYDcinwˡiNR'|?wu\A[[kevx5J0a( D崙;x30'lbI`̍<[2Wc9\ rL8H1)dSq%\ P>'%QDtsȔv$%FChBfy}|>w|^JQE)d{PJhRƛTцߏb+<4T[cf-̧}`oe=Ht/Cwv3;džZ6q}4h(W[Ii>_s$ժT=X$Q;ܼvn={]EMԎvjލr&ݝ+chIJQ"y fNPݜԅl6K:3+T:jV:,zRuQwKwd!Tf]XgbmKO }W`$-;^VnhGsp%14lԃ+pĵ/ށZ@Mz Ŏ8s!OxUO{`47Y:Ÿ]:nܨ!9'yD~S`J;KlMʈ+wQݤt 'eN׳ YW7.w.O/non:]?ocdv~.Qh.uRނ{{鮾wf,?]MLABUoJb+11*Si6l[v`( DA܈1ƃ5hHL4ޛv[Zxov7ofugR"mOW1goF-_p y3]xn6 J|.5=¢ŠsyzK FyǒU/\x/.~l&\13m{PkyR'훶? &ge)̹0y3\'OaVVyRXL.ZfjEv||̚Q Ǒ8fJޛ\mE+Ī]=S{8LU䑶d{ 6z8 ow2ݦd(M${l}] }[b~HH5'ӃL=L2f)i=сwxMQ/Ԫc LKߋr-Lw'P+l3 eګ\++Yn'*19:efFJ0bӦ,Hșmgv}?3[XzfsKzf90=3}%K+AF_lj|EP(1?c' a)H {|؛#vZL &x$9YJ o>UQi^{1j -x0]-n*E)r5DE.U t\,$,.nʵ$W6i/HhUMv_ov'sk;x[R0d%1bFPc`(XS`e0zK8Fv L`Hۭ \)Ncܶ* 흐j\=|LB0cEq ) DP,q5Dk{WqnXڻxuQ|믄"8*;DolMs~1P-yf'BXق!$`znpe \"rNHT;&(2̨򴶴wuuzPhjHtOtq+4-n"WO 42 μB#8n -NUPBˋ)J+rA＀#45NBz@\+fC9X`읽kAw.wBDD*U ),,$l WJ#~1,1X8J‚_p~T)eϳ3u;B1fݲ;s N}I2u-C{ܚPnGOfdqYΒgN-X+Ϛ\$8lʏm+mͦ|)ٚumyuYeqr%\:4)O)uX{Z=!8"x!rȉ\qzK䔾 E;@AdY_B`s">>/k(U5F[yNM&&O[M9aWiZjyL4oYvx\PhWT(~uN<҃|<Km;M;Yx8|:>> ? ;|EE+96E9MOû%;|ASe=;\ aβÇMM=;5ѳ?QɺDW hZh jA[PڃԇN3M@@kP ڂt>t7c7w7??$R~Ԋ3}Y3{Δ33eę96qg^UM)_-Lٯ8SWZ1g9x̙-qqzx̙>|1gJdnɷKs!JęvЮC~dLC~o3u3 eLL(`݋ơ8Nq w lS(uwwwظtS{ss}+d~dgX\ vΗkgOݯ?L1>Y`wgO?8L#7L-x9ۙ g_RsܜÙژXr8:i.nQ}p"IC)y=cͤV _{u| GeL-_%$i0HI"c_@?1vLTK"婭&aɂ>#)6͸Qs(ڨ7F0e'zDb|A`iCsg/\W Sj=R;@tϡ.ȗ* րzI*JOV%ڨUt[b jd}1 W"?R|ن r^_?ߎqn nTXVpPK_mm.zK]c<=)1tʬR3pvf_Mò (>)g2_9KhA-E({hB.0:9gb'kVWˇC qn|ĪAJh[g^88EqvɋCaMcJDpy[a*c@ EH;pS#9J-g}gȸŜd2wS579wRz.` Ӹ\IH#J4_VeW7'1& xQdښ%ȶ Gprl>h=O{(q_zM(pv f`^<:io+dp+B}?G`˼ҧͶ@2K/6TTbcsdA*~D\jMkk*Y Jͬ &=Lh#ЉQ?urYe2T^fI.tڤ`s~SZzG}EN 뭜N@N00=~C[`I;B0_#T8SE:4%.lO/͠G ٍlMO=r}P%7ࡧbp'hHR&>k:J\T^BEI+x:~6mö cFkw0=K2pNӥ׽ ild_"GP?bOlDTiiăxd#`6ѩir1rOB@#O c<8mF! ѩxuTrw(e.Pm'=Kfg4ҝ- ˖U1&2z*FH2JQ$SBaKLS H2s&~U!{m3HnrO:>+'a~5&쓬'=bwoe݊p1xVhQZFxn2YX|L ~GnJ4F;+-T =5|LWH7Dn }KW:On:YwlŹ*Ict+)Hua2[H19,j* ISDR{橂5NX`G1+==vhmn)FtQoMR>cք܎Ӱ, .R*}YIZfc(A%Yq!gɜA?>|U+Cm{DXS 7ŎvoXu-%+$&x ~wx[:joݶVqJhm^js֫zl-N"kgSlRM'd܃DZ,X-zB)CY Jp~1o+Sa nv4b#rgG󱾴OT`NY93ox**1R$$nUiIͤ#QKig3ç~ט*߮$l(ݲ 9(V3I,_mzӧr?"..﷔[X+JՏɍGEZXkI5Z 0} SA#d'BȋsbNl oQ<"$qt!8  1<$Kߔ C]#Q|gJS-/T*<&_&1;>WC177}ďFrpONjONWWNkx$~uE,*C^g  S<7B# -8 H/q9A7Ltx@ 3 ց ZIJR 4RI*L8í I}RY i#@ro;PbIF6d~㽤97I&F HebN!@!g雭~gW}֭ 9>6H2/$lrz59k7F]eEyIhxĠyjZ4?fK)y X$^+REBڽ>E2gE%9sxWO!j"d!FEQ<+Alԥv'~6SOΈNI!PXyMqԄwg,P[lo$N^Cf5qBk 7)XHf169^Ed2 bI^KD[p6UQ^4TBZ52|3m0f8^qRsSTߌt>*$Hia_3G fFVEd7vxG{ gl_[ճ@Np;)NC4mqnX Ǯ.fO-EPaC7R#3XOӮY!@J*Xf47XX.I/fQgkb3M'TQDXo~qrqZN #f}~P-|lBܻp2> xR'j"p-[OXUVisڝͬP sTG`qL r&/'0_YZಱΗȔx^{h |M,=δ \<usr3vbkIFkBѹ~c =A%eMTs4)aMmHܾ4s#G6}VCQ_=J$"f܄Jѧz'oɽHC{ H_c-2;#Rl0"AӼ1@M5[bJnDj#}ALG,f}fG0l.o$ Bv9c#7!{oF,ΚxWId^nI:e.`1ľϩ_j[7Cתz^+uC'2B|׻skƁ8wН9!q-dυd 8n2rb(%R7w:钮VQ2NC%fDs y#iGph-Fĝ! ;Re4v@^Tmz28=놴V92ij?xuXrzɗbHwe@G& - ~[lp鴹0 ߂Ӛ)4F};%Ӻ}>.ڒP0 ]!餕BODK;ݩsf.a_Ry9P32r0x ƀ֏IKTC/Aw|"}<Bovow|EaM\sDUq-b^&xOI$zw22*YdE8A 47+}8gAa{ w*%E` m!N:j}fI ^k 4Q_QѲ 6G_xk8a s+Dd~H[4YC1r~^v҅DP*ÏE蝯]8+~ZZ] ^r UJg)xS<^'x#Adۏ g,Ż1\A;qoK[)1BH*,.-b& x}EPcx YDY5 {vdӒ[D+ ]fXwNG>t:QjR9EN]C~b O}Ė!rxyr]1YA;x#c%aGT+tL"Ì/:(. 3*^"IHܪVPR³^;"F4!5Nb1>DևiLI7Z&9] v4BdH!H79#!A#f3:K;p?>qNUvU wU;7{76¨nssHbr]Fx.G~b?9Hf424*N##8M!B%QvpϦ&q=לz"$KG ~Vs3F:—E%#7uF]Wj9s![:671 "KXUے#ݷ.-h}_-]ORƲʄէ=dF##+}"g[Q&>9cK:x6 h,D@z@yi\/u4O٩Glݙk$,NC? S[>In%:'j%Fx +F|vqjÕ9Ϩ:^q&K~5Xaȧ:(%nBp;ʈ"']s d55]s-XJ&;>ųt$~v[ƁՙX[џC3Mc0.x"++֗H-Sv \F;lek*IEM|X1 N{WwqJBQG ݠe#V*auyK͗A%jYK490<Uq~ߠ 8w[ Р?b-qsentb8H*Yp&Rm)UįX͉V7eїgDAORN+a'8l'o`$$ m߂ڢ$ۧm @^ȣ„  BٯĭAK<~kV^km靔ιpAKJ Gv<ŭ+Yin\s;8yYY;ܪvR}?8'͕FXu%~ze4ZĵT"u4ö@V˦PK#Lh`<= *Y%!y{Yh: qإBD׳ݖ%pr٩)s#,UV"nǯEoRfLjP=\9Sv1@u6$xMFcN|?9R"TC>wD-e2~u 7\,m9°HVD8U@9ɹR0K_%7Mj1/ؤ,TQL".$"H^NLMQMW_qr:; }Tmbۣ+dQ @-իG~e=a"qKJ˥Βo$!>W}rbS?"|WG^$3:z;pL7/\/ꑜ#/sv^O+4~Ѹ8ݦ/~M קRW+ 3׶Shfn}]Nʚ} 8b`ot!+l6<u_Qڳ姌իrr+j/1M,m(L=@\kj88 YZM6S7]rUBmxcV2xg0}&:W&[Zwa/ğ=>0X|axp7j}@ۆ]+c>(pJH[ԯ0t}hgh7bp)aLm}qp~8s~tw("zL'R9u sxFP+.o$Ba$yH^qڰ0t;]fopj y(SS'^ge@;_O${}X-|XZAs=kx4VJbsHYbx$+e[b1f)Wg^L0X9:;Ҕ~y1:qW#&*c?3VH\[Z:G%H X60ʭT@%ۇ ŠXxc0uҊ Ţ|en|; pf,)Sۑ$_8:ZoysZ.וCZyƳ['c׸ #wĥwa7Z 244^(