python-cephfs-12.2.12+git.1555518691.67074fa839-27.1>t  DH`p\./=„ʟVvWԺ\6ֵiI觼$$Ǒ'R/wRl$-r] Bi7wq5\dn8udz ~&PA~`}%q q?725wVm&"ݙ|R$#Wa=eLC'Ȯ = G`?u+|-IJݷUtYQ8N(K;{܌!G [’ LG%1j\td857df13457ecc6119fbf73bce84529202a7f5604\./=„1NKǿ9-PMB?cs gsvoFQ߫@ @`?Pd2 7 k? Xu     Pl   (8$h9h: hBZFfGxHIXYZ[\@]\^bVcdefluvwxy z%LCpython-cephfs12.2.12+git.1555518691.67074fa83927.1Python 2 libraries for Ceph distributed file systemThis package contains Python 2 libraries for interacting with Cephs distributed file system.\&7lamb66 openSUSE Leap 42.3openSUSELGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttp://bugs.opensuse.orgDevelopment/Languages/Pythonhttp://ceph.com/linuxx86_64t;,A큤\R\%\%\%\%\%\&92672a5b48ae2a554b56ca69a17a9d97541f49a1c32b5d7eaef7d117030408c9fda29f206a0060858e419a9d01b12b9268b329da9893e34099c7d8ad5cb9c9403bb5a4ba518c6bf5b663e2cfc4dc5d3f29fbcb9f234487caa2269780364d7d1crootrootrootrootrootrootrootrootrootrootrootrootrootrootceph-12.2.12+git.1555518691.67074fa839-27.1.src.rpmcephfs.so()(64bit)python-cephfspython-cephfs(x86-64)@@@@@@@   libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.4)(64bit)libcephfs.so.2()(64bit)libcephfs2libpthread.so.0()(64bit)libpython2.7.so.1.0()(64bit)python(abi)rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)12.2.12+git.1555518691.67074fa839-27.12.73.0.4-14.0-14.4.6-14.11.2\@\\]o@\\\2\[ @[r@[O+[3|@[,Z@ZmZZ@Z_@Z3@Z1@Z Z@ZC@YYMYY@YY@Yχ@YéYzYYW@Y@Y3Y3YY@YaY@YYYY{'@YoIYlYlYZ1YS@YP@YP@YNT@YMYA%@Y9<@Y9<@Y9<@Y7Y2Y0Y-^Y)j@Y(Y(Y(YY@Y.Y@Y@YYYX:@X@X@XX@X•@XZX@XXXX~@Xn5@XOX=mX8'W֘WҤ@WҤ@WҤ@W#W#W@W@W/@W/@W:W:W:WWW@Wncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comtserong@suse.comtserong@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comtserong@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comjfajerski@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comrdias@suse.comncutler@suse.comrdias@suse.comrdias@suse.comtserong@suse.comtserong@suse.comtserong@suse.comncutler@suse.com- Update to version 12.2.12-570-ga5818db927: + Upstream v12.2.12 release * see https://ceph.com/releases/v12-2-12-luminous-released/ * rgw: SSE-C fixes (bsc#1129973) + spec: enable opensuse lttng build for certain architectures- Update to version 12.2.11-566-g896835fd74: + Upstream v12.2.11 release * see https://ceph.com/releases/v12-2-11-luminous-released/ * crushtool: add --reclassify operation to convert legacy crush maps to use device classes (bsc#1112833) * ceph-volume-client: allow setting mode of CephFS volumes (jsc#SCRD-8258) + rgw_file: only first subuser can be exported to nfs (bsc#1126423)- Update to version 12.2.10-551-gbb089269ea: + os/bluestore: show compress and buffered from WriteContext + os/bluestore: fix rename race with trim on replacement onode at old name- Update to version 12.2.10-549-gf129842039: + CVE-2018-14662: mon: limit caps allowed to access the config store (bsc#1111177) + CVE-2018-16846: rgw: enforce bounds on max-keys/max-uploads/max-parts (bsc#1114710) + CVE-2018-16889: rgw: sanitize customer encryption keys from log output in v4 auth (bsc#1121567)- Update to version 12.2.10-544-gb10c702661: + os/bluestore: avoid frequent allocator dump on bluefs rebalance failure (bsc#1113246)- Update to version 12.2.10-542-g793ccbe1d0: + upstream v12.2.10 release see https://ceph.com/releases/v12-2-10-luminous-released/ + additional fixes from PTFs: * rgw: resharding produces invalid values of bucket stats (bsc#1110419) * rgw: Fix log level of gc_iterate_entries (bsc#1114414) * rgw: dynamic reshard fixe (bsc#1109009) * bsc#1110415, bsc#1110416 [#] rgw: es module: set compression type correctly [#] rgw: ES sync: be more restrictive on object system attrs [#] rgw: ES sync: wrap all the decode bls in try block [#] rgw: librgw: initialize curl and http client for multisite * bsc#1116205, bsc#1112872 [#] rgw: allow init complete to proceed in case of erroneus zone deletes [#] rgw: period update: check for dangling master zone references [#] tests: tests for master zone deletion [#] tests: rgw: test_multi: python 2-3 compatibility- Update to version 12.2.8-467-g080f2248ff: + upstream Luminous 12.2.8 point release - for details, see https://ceph.com/releases/v12-2-8-released/ * bsc#1100101 - Syntax errors in the man page for "ceph-bluestore-tool" * bsc#1105251 - Configuring PCF is failing when configuring with AWS signature 4 * bsc#1107857 - ceph-osd segfaults in safe_timer thread- Update to version 12.2.7-425-g38edbb7c2f: + luminous: mgr/MgrClient: Protect daemon_health_metrics (boo#1104331) + ceph-ver-hack.sh: do not touch src/ceph_ver.h.in.cmake- Update to version 12.2.7-420-gc0ef85b854: + upstream v12.2.7 release, see: * https://ceph.com/releases/12-2-7-luminous-released/ + bsc#1094932 - luminous: osd: eternal stuck PG in 'unfound_recovery'- Update to version ceph-12.2.5-419-g8cbf63d997: + bsc#1099162, CVE-2018-10861: * qa/workunits/rados: test pool op permissions * qa/workunits/rbd: test self-managed snapshot create/remove permissions * pybind/rados: new methods for manipulating self-managed snapshots * mon/OSDMonitor: enforce caps for all remaining pool ops * mon/OSDMonitor: enforce caps when creating/deleting unmanaged snapshots- Update to version ceph-12.2.5-414-g8450ca79c0: + bsc#1096748, CVE-2018-1128, CVE-2018-1129: * auth/cephx/CephxProtocol: better random * cephx: update docs * auth/cephx: add authorizer challenge * mon,msg: implement cephx_*_require_version options * auth/cephx/CephxSessionHandler: implement CEPHX_V2 calculation mode * include/ceph_features: define CEPHX2 feature * msg/async,simple: include MGR as service when applying cephx settings- Update to version 12.2.5-407-g5e7ea8cf03: + osd: do not crash on empty snapset (bsc#1074301) + mon: add 'ceph osd pool get erasure allow_ec_overwrites' command (bsc#1087269)- Update to version 12.2.5-405-gb4dd2afd81 + upstream v12.2.5 point release * journal: limit number of appends sent in one librados op (bsc#1086340) * RGW user stats fixes (bsc#1087493)- Update to version 12.2.4+git.1520347944.ea5f50680a: + rgw openssl fixes (bsc#1079076, bsc#1081379)- Update to version 12.2.4+git.1520094840.20594f896d: + merge upstream point releases v12.2.3 and v12.2.4 * rocksdb: fixes early metadata spill over to slow device in bluefs (bsc#1071386) * mon: reenable timer to send digest when paxos is temporarily inactive (bsc#1070357) * fsid mismatch when creating additional OSDs (bsc#1080788) * rgw: malformed http headers can crash rgw (bsc#1081379, CVE-2018-7262) * crash in civetweb/RGW (bsc#1081600) * bluestore: db.slow used when db is not full (bsc#1092874) - migrate tarball generation from tar_scm source service to upstream make-dist script + drop _service, _servicedata + add checkin.sh, README-checkin.sh- Update to version 12.2.2+git.1519207306.ac2f91f62a: + qa * install deepsea from packages instead of source * add suse/smoke and deepsea/adhoc suites + rgw: make init env methods return an error (bsc#1081379, CVE-2018-7262)- Update to version 12.2.2+git.1513357992.5030136da9: + tools/crushtool: skip device id if no name exists (bsc#1067119) + pybind/mgr/prometheus: don't crash when encountering an unknown PG state + mgr/prometheus: add missing 'deep' state to PG_STATES in ceph-mgr prometheus plugin- Update to version 12.2.2+git.1513167344.b87ca3c12e: + upstream v12.2.2 release for details, see https://ceph.com/releases/v12-2-2-luminous-released/- Drop _link to reflect that filesystems:ceph:luminous/ceph is no longer the source for filesystems:ceph/luminous (the Factory/TW devel project). Development of ceph in Factory/TW will continue in filesystems:ceph:mimic/ceph.- Update to version 12.2.1+git.1511279898.8aa892202e: + bsc#1060904 * rgw: keystone: bump up logging when error is received + bsc#1067705 * rgw: set sync_from_all as true when no value is seen + bsc#1066182 * rgw: data sync: set num_shards when building full maps * dencoder/rgw: expose rgw sync status types * rgw: set num_shards on 'radosgw-admin data sync init'- Update to version 12.2.1+git.1510221942.af9ea5e715: + bsc#1066502 * mon/osd_metadata: sync osd_metadata table * mon/OSDMonitor: tidy prefix definitions * mon: implement MDSMonitor::get_store_prefixes * mon/mgr: sync mgr_command_descs table and mgr_metadata table * mon/MgrMonitor: populate on-disk cmd descs if empty on upgrade * mon/MgrMonitor: read cmd descs if empty on update_from_paxos() + bsc#1067088 * osd: make the PG's SORTBITWISE assert a more generous shutdown + bsc#1066182 * rgw: ListBucketIndexesCR spawns entries_index after listing metadata * rgw: fix error handling in ListBucketIndexesCR * rgw: RGWDataSyncControlCR retries on all errors + RGW fixes: * test/rgw: add test_multipart_object_sync * cls/rgw: increment header version to avoid overwriting bilog entries * rgw: disable dynamic resharding in multisite environment- Update to version 12.2.1+git.1509128342.9347aa6662: + common/common_init: disable ms subsystem log gathering for clients + spec file: add %{_sysctldir}/90-ceph-osd.conf to ceph-osd * ceph.spec.in,debian/rules: change aio-max-nr to 1048576 * sysctl.d: set kernel.pid_max=4194304 (bsc#1061461)- Update to version 12.2.1+git.1507910930.aea79b8b7a: + rgw: Remove assertions in IAM Policy (bsc#1063014, CVE-2017-16818)- Update to version 12.2.1+git.1507819941.856710ff58: + rgw: stop/join TokenCache revoke thread only if started (bsc#1059458) + systemd: reinstate TasksMax=infinity- Update to version 12.2.1+git.1507226092.b783a015b9: + Revert "SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL" + msgr: add a mechanism for Solaris to avoid dying on SIGPIPE- Update to version 12.2.1+git.1507108986.dc637a73e2: + rgw: defer constructing keystone engine unless url is configured (issue#21400, pr#17775)- Update to version 12.2.1+git.1506764331.9e2e945bd0: (upstream luminous 9d8acf6f3f85dd1410629cc680474e38f3be9838) + upstream Luminous v12.2.1 https://ceph.com/releases/v12-2-1-luminous-released/- Update to version 12.2.0+git.1506009682.0e5b4307f3 (upstream luminous a931cf68120d99661b785cc794e2b6965d621f06): + ceph-disk: fix mountpoint check for systemctl enable --runtime (bsc#1051598) + spec file: * ceph-fuse requires fuse; make that dependency explicit * drop obsolete qemu symlink hack in librbd1 %post- Update to version 12.2.0+git.1505141259.1264bae1a8: + rgw_file: fix LRU lane lock in evict_block() - bsc#1054061 + os/bluestore: fix deferred write deadlock, aio short return handling - bsc#1056125 + mon/OSDMonitor: don't create pgs if pool was deleted - bsc#1056967- Update to version 12.2.0+git.1504118058.706f78da1a: + fix ceph --version to say "stable" instead of "rc" + spec file: add python-numpy-devel build dependency for SUSE + bsc#1053836 * Revert "osd: adjust osd_min_pg_log_entries" * osd/PGLog: write only changed dup entries- Update to version 12.2.0+git.1504013812.01ea30bcc9: + upstream Luminous v12.2.0 (first stable) release * increment version number to 12.2.0 + spec file * edge mem_per_process upward after seeing some OOM-esque build failures * package ceph-volume man pages- Update to version 12.1.4+git.1502953626.155adb5253: + ceph.spec: provide libxio 1.7 and obsolete libxio <= 1.7- Update to version 12.1.4+git.1502878199.4183317204: + ceph.spec: obsolete libxio (Note to reviewer: libxio was only ever used by Ceph (for an experimental IB/RDMA feature), it was never submitted to Factory, and its functionality has been integrated into Ceph in a different form. For all practical purposes, libxio has been replaced by Ceph itself.)- Update to version 12.1.4+git.1502871088.edf82a59df: + latest upstream luminous (a5f84b37668fc8e03165aaf5cbb380c78e4deba4) * increment upstream version number to 12.1.4- Update to version 12.1.3+git.1502698163.45fc586a51: + latest upstream luminous (6808af486d3bdce966232810004648502c967b13) * increment upstream version number to 12.1.3- Update to version 12.1.2+git.1501914637.59afe41c49: + spec file * ceph-volume added to ceph-base RPM, where it co-exists with ceph-disk- Update to version 12.1.2+git.1501865907.88dc8cdc9d: + latest upstream master (7350fa65d79b5f0ace427e609565f07be35cfe62) * os/bluestore: allow multiple DeferredBatches in flight at once (pr#16769, issue#20295, bsc#1043399)- Update to version 12.1.2+git.1501790037.82d6a9c37a: + osd: move CMPEXT response munging into completion function (bsc#1047244)- Update to version 12.1.2+git.1501684697.aa6b0153ef: + upstream luminous v12.1.2 release candidate + latest upstream master (e27a78c9ed3984b54a312ced3ad67fcc8f464fc0) * mon: add mgr metdata commands, and overall 'versions' command for all daemon versions (bsc#1050063, pr#16460)- Update to version 12.1.1+git.1501669490.04d0738487: + mon: extensible output format for health checks- Update to version 12.1.1+git.1501501507.6dd9e8fd8c: + update to latest upstream master (fa70335db25f2b661b329d5d8f37039b77f2d1ae) + spec file: * build/ops: rpm: Drop legacy libxio support (pr#16449) + Other notable changes: * osd: moved OpFinisher logic from OSDOp to OpContext (pr#16617)- Update to version 12.1.1+git.1501231943.67577225bc + Notable changes: * rgw_file: properly & |'d flags (bsc#1047977)- Update to version 12.1.1+git.1500447879.e5aac115d7: + upstream 12.1.1 (release candidate) + Other notable changes: * build/ops: rpm: fix typo WTIH_BABELTRACE (pr#16366) * build/ops: rpm: put mgr python build dependencies in make_check bcond (pr#15940) * ceph-disk: support osd new (pr#15432) * ceph: allow '-' with -i and -o for stdin/stdout (pr#16359) * cls/rbd: trash_list should be iterable (pr#16372) * doc: update quick start to add a note for mgr create command for luminous+ builds (pr#16350) * libradosstriper: fix format injection vulnerability (pr#15674) * mgr/dashboard: add OSD list view (pr#16373) * mon, osd: misc fixes (pr#16283) * mon/MDSMonitor: fix segv when multiple MDSs raise same alert (pr#16302) * mon/MgrMonitor: fix standby addition to mgrmap (pr#16397) * mon/MgrMonitor: only induce mgr epoch shortly after mkfs (pr#16356) * mon: Fix output text and doc (pr#16367) * mon: add force-create-pg back (pr#16353) * mon: skip crush smoke test when running under valgrind (pr#16346) * os/bluestore: use reference to avoid string copy (pr#16364) * osd: combine conditional statements (pr#16391) * osd: restart boot process if waiting for luminous mons (pr#16341) * rgw: S3 lifecycle now supports expiration date (pr#15807) * rgw: acl grants num limit (pr#16291) * rgw: delete object in error path (pr#16324) * rgw: drop unused find_replacement() and some function docs (pr#16386) * rgw: fix err when copy object in bucket with specified placement rule (pr#15837) * rgw: fix potential null pointer dereference in rgw_admin (pr#15667) * rgw: raise debug level of RGWPostObj_ObjStore_S3::get_policy (pr#16203) * rgw: req xml params size limitation error msg (pr#16310) * rgw_file: add service map registration (pr#16251) * test,rgw: fix rgw placement rule pool config option (pr#16380) * test/fio: print all perfcounters rather than objectstore itself (pr#16339)- Update to version 12.1.0+git.1500295948.39d2e5f424: + spec file: * socat build dependency only for make check * fix typo WTIH_BABELTRACE- Update to version 12.1.0+git.1500284183.1ed97736ab: + Spec file changes: * bump epoch (not relevant for SUSE) * add socat buildrequires * libcephfs2 now obsoletes libcephfs1 (bsc#1047020) * HAVE_BABELTRACE option renamed to WITH_BABELTRACE * fix a regression in ceph-base %postun scriptlet + Selected other changes: * Revert "msg/async: increase worker reference with local listen table enabled backend" * build: build erasure-code isa lib without versions * ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() * ceph.in: filter out audit from ceph -w * common,config: OPT_FLOAT and OPT_DOUBLE output format in config show * common/Timer: do not add event if already shutdown * compressor/zlib: remove g_ceph_context/g_conf from compressor plugin * core: make the conversion from wire error to host OS work * core:" Stringify needs access to << before reference" src/include/stringify.h * crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy * doc/mgr/dashboard: update dashboard docs to reflect new defaults * doc/rados.8: add offset option for put command * doc: fix link for ceph-mgr cephx authorization * doc: update intro, quick start docs * isa-l: update isa-l to v2.18 * librbd: fail IO request when exclusive lock cannot be obtained * mgr,librados: service map * mgr,mon: debug init and mgrdigest subscriptions * mgr,mon: enable/disable mgr modules via 'ceph mgr module ...' commands * mgr/ClusterState: do not mangle PGMap outside of Incremental * mgr/restful: bind to :: and update docs * mgr: Zabbix monitoring module * mon,crush: create crush rules using device classes for replicated and ec pools via cli * mon/MgrStatMonitor: do not crash on luminous dev version upgrades * mon/MonClient: respect the priority in SRV RR * mon/Monitor: recreate mon session if features changed * mon/OSDMonitor: do not allow crush device classes until luminous * mon/OSDMonitor: guard 'osd crush set-device-class' * mon/mgr: add detail error infomation * mon: Fix status output warning for mon_warn_osd_usage_min_max_delta * mon: add support public_bind_addr option * mon: collect mon metdata as part of the election * mon: debug session feature tracking * mon: do crushtool test with fork and timeout, but w/o exec of crushtool * mon: fix hang on deprecated/removed 'pg set_\*full_ratio' commands * mon: include device class in tree view; hide shadow hierarchy * mon: maintain the "cluster" PerfCounters when using ceph-mgr * mon: revamp health check/warning system * msg/async: increase worker reference with local listen table enabled backend * msg/async: make recv_stamp more precise * msg: QueueStrategy::wait() joins all threads * msg: make listen backlog an option, increase from 128 to 512 * os/blueStore: Failure retry for opening file * os/bluestore/BlueFS: clean up log_writer aios from compaction * os/bluestore/BlueFS: clear current log entrys before dump all fnode * os/bluestore/KernelDevice: batch aio submit * os/bluestore: Make BitmapFreelistManager kv itereator short lived * os/bluestore: cap rocksdb cache size * os/bluestore: clear up redundant size assignment in KernelDevice * os/bluestore: differ default cache size for hdd/ssd backends * os/bluestore: fix deferred_aio deadlock * os/bluestore: move object exist in assign nid * os/bluestore: only submit deferred if there is any * os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() * os/bluestore: use bufferlist functions whenever possible * os/filestore/FileJournal: FileJournal::open() close journal file before return error * os/filestore/HashIndex: randomize split threshold by a configurable amount * os/filestore: call committed_thru when no journal entries are replayed * os/filestore: do not free event if not added * os/filestore: queue ondisk completion before apply work * os/filestore: require experimental flag for btrfs * osd/OSD: auto class on osd start up * osd/PrimaryLogPG solve cache tier osd high memory consumption * osd/ReplicatedBackend: reset thread heartbeat after every omap entry * osd/filestore: Revert "os/filestore: move ondisk in front * osd: Check for and automatically repair object info soid during scrub * osd: Preserve OSDOp information for historic ops * osd: check queue_transaction return value * osd: clear_queued_recovery() in on_shutdown() * osd: compact osd feature * pybind/mgr/dashboard: bind to :: by default * pybind/mgr/dashboard: fix get kernel_version error * rbd-mirror: ignore permission errors on rbd_mirroring object * rbd: do not attempt to load key if auth is disabled * rgw: fix compilation with cryptopp * rgw,test: fix rgw placement rule pool config option * rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() * rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() * rgw: /info claims we do support Swift's accounts ACLs * rgw: Correcting the condition in ceph_assert while parsing an AWS Principal * rgw: Do not fetch bucket stats by default upon bucket listing * rgw: Fix a bug that multipart upload may exceed the quota * rgw: Initialize pointer fields * rgw: fix leaks with incomplete multiparts * rgw: fix memory leak in copy_obj_to_remote_dest * rgw: fix not initialized vars which cause rgw crash with ec data pool * rgw: fix radosgw-admin data sync run crash * rgw: fix s3 object uploads with chunked transfers and v4 signatures * rgw: fix the subdir without slash of s3 website url * rgw: fix zone did't update realm_id when added to zonegroup * rgw: log_meta only for more than one zone * rgw: rgw_file skip policy read for virtual components * rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart * rgw: verify md5 in post obj * rgw_file: add compression interop to RGW NFS * rgw:fix s3 aws v2 signature priority between header['X-Amz-Date'] and header['Date'] * vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 * vstart: add --rgw_compression to set rgw compression plugin * vstart: allow to start multiple radosgw when RGW=x- Update to version 12.1.0+git.1499090920.2c11b88d14: + With this update, Ceph no longer autocreates a pool called "rbd" with id 0 Deployment tools must take this into account! + systemd: Add explicit Before=ceph.target (bsc#1042973)- Update to version 12.1.0+git.1498654198.20d6a47cc9: + build/ops: rpm: put mgr python build dependencies in make_check bcond N.B. this effectively eliminates the following build dependencies: python-Babel python-beautifulsoup4 python-CherryPy python-coverage python-flup python-Genshi python-html5lib python-logutils python-nose python-Paste python-PasteDeploy python-PasteDeploy python-pecan python-pyquery python-singledispatch python-waitress python-WebOb python-WebTest python-Werkzeug python-WSGIProxy2 pytyhon-python-openid- spec file: + removed BR libatomic_ops-devel as upstream replaced it with std:atomic + removed defattr as they are no longer needed on sle12 and newer- Update to version 12.1.0+git.1498478524.117b171715: + include 12.1.0 tag to make "ceph --version" happy + tests: drop hadoop-s3a tests- Update to version 12.1.0+git.1498309403.f4fc02fff4: + upstream 12.1.0 release; for details, see http://ceph.com/releases/v12-1-0-luminous-rc-released/ + revert several pre-release commits that are no longer needed because the issues have been fixed upstream in the meantime + build/ops: rpm: sane packaging of %{_docdir}/ceph directory- Update to version 12.0.3+git.1498202776.b806032985: + Integration testing changes: * add DeepSea integration suite test definitions for teuthology * re-enable several RGW tests that upstream only runs on Ubuntu + ceph_ver_hack.sh: use git describe --match + ReplicatedPG: add CHECKSUM->CMPEXT req translation- Update to version 12.0.3+git.1497426468.6984d41b5d: + qa: add initial deepsea suite (task and test yaml) + fix "ceph osd df" (regression in latest upstream master) (pr#15675, issue#20256) * mon: move creating_pgs and reweight_by_utilization into new MonPGStatService * mon: move most PGMapStatService into PGMap; rename PGMon's to PGMonStatService * mon: mgr: move 'osd df' handling to manager * mon: inherit PGMonStatService from the PGMapStatService * move the OSDUtilizationDumper code into OSDMap * mon: mgr: enable "osd df" on the manager * qa: add a check_commands.sh script which looks for commands with no tests * qa: test 'osd df' in cephtool/test.sh- Update to version 12.0.3+git.1496909744.9f667dc335: + build/ops: rpm: one License line to rule them all- up memory _constraint for ceph-test to address ppc64le OOM seen in IBS- Update to version 12.0.3+git.1496902753.b18dc53186: + build/ops: rpm, COPYING: drop GPL 2.0 with Autoconf Exception (autoconf no longer used)- Update to version 12.0.3+git.1496754880.35cb2861ce: + merge upstream master (b1d06a6b54)- Update to version 12.0.3+git.1496494491.ba3c561a92: + merge upstream master (97d6e150e5)- Update to version 12.0.3+git.1496306960.2db336d85e: + merge upstream master (b19352eec3), fixes bsc#1041492- Update to version 12.0.3+git.1496147556.f1d6115861: + cmake: build boost::context and coroutine only with rgw Beast frontend + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x + build/ops: deb: no rgw Beast frontend on s390x + cmake: delete excidentail reintroduced line. + cmake: link radosgw with boost libraries (bsc#1040119)- Update to version 12.0.3+git.1495849076.4457d36178: + rgw: remove fastcgi from default rgw frontends + RGW: Turn off fcgi as a frontend + build/ops: drop libfcgi build dependency + build/ops: rpm: apply epoch only if %epoch macro is defined- Update to version 12.0.3+git.1495798013.23dd2b67dc: + ceph.spec.in: re-drop %{epoch}: prefixes- Update to version 12.0.3+git.1495787939.3f6446f64f: + build/ops: rpm: adapt License line to Release 2.0 of SPDX spec (issue#20091)- Update to version 12.0.3+git.1495675338.07282a4057: + upstream 12.0.3 release + osd/PG: Add two new mClock implementations of the PG sharded operator queue (pr#14997, bsc#1040103) + build/ops: rpm: make librbd1 %post scriptlet depend on coreutils (boo#1040230) + build/ops: rpm: move RDMA build dependency to distro-conditional section + build/ops: rpm: move python-prettytable to distro-conditional section + cmake: added empty RPATH to libcls_sdk.so + rpm: drop %{epoch} from new rados-objclass-devel subpackage + cmake: fix boost components for WITH_SYSTEM_BOOST + cmake: build boost::context only if rgw Beast frontend is in use + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x (bsc#1040119) + ceph.spec.in, debian/control: build/runtime dependency for cherrypy- Update to version 12.0.2+git.1494343993.7527e4f0b8: + ReplicatedPG: drop CACHE_PIN->WRITESAME req translation (bsc#1038063)- _constraints: up ceph.spec disk constraint to 28G after seeing a build failure in OBS- Update to version 12.0.2+git.1493341348.9148e53: + ceph osd: add support for new op cmpext + ceph_test_rados_api_misc: add cmpext tests + librados: add cmpext API + ceph_test_rados_api_aio: add cmpext tests + test/librados/c_operations: add cmpext tests This patchset is a straight cherry-pick of the upstream OSD/librados cmpext changes (bsc#1035937).- Update to version 12.0.2+git.1493291471.adb6a43: + rocksdb: sync with upstream (bsc#1025891) + build/ops: cmake: explicitly disable MSSE 4.2 if not supported- _constraints: set higher disk and memory constraints so s390x builds don't fail- Update to version 12.0.2+git.1493238434.71681fd: + cmake: added empty RPATH to libceph_crypto_isal.so- Update to version 12.0.2+git.1493227670.3396ca1: + rgw: use a vector for options passed to civetweb- Update to version 12.0.2+git.1493192333.3305a0c + merge upstream master (0d368d2c8544247a4aed9c71c74e77b0c6bbfb22) including 12.0.2 development release- revert commit a9a50f690085091bb4446095418237f9fef712c8 in preparation for rebasing against the upstream implementation. (bsc#1035937)- Add ibs_constraints.sh script to address s390 constraints tweak needed in IBS- Update to version 12.0.1+git.1491557762.4e47e9f + merge upstream master (2950ad91d25d0d6e2e3fb6842d5bbc36353ba2a5) including fixes for: * bsc#1030068 (s390 build) * bsc#1031311 (ceph-mon.service not enabled via systemd preset)- Mention bugs fixed in jewel codestream that are also fixed in the current codestream: + msg/simple/Pipe: avoid returning 0 on poll timeout (bsc#1014338) + build/ops: fix undefined crypto references with --with-xio (bsc#977940) + ceph-create-keys: add missing argument comma (bsc#1008894) + common: Improve linux dcache hash algorithm (bsc#1005179)- Update to version 12.0.0+git.1489432599.165c23f: + merge upstream master (0c2f5f7214d2410a7519f88e65ed5273d6480227) including fix for upstream issue#18694 "ceph-disk activate for partition failing"- Update to version 12.0.0+git.1489159457.410e200: + build/ops: fix Group strings for library packages- Update to version 12.0.0+git.1488553020.e902441: + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + Builds with GCC7 (boo#1025891)- Update to version 11.1.0+git.1486588482.ba197ae: + Update to latest upstream master (3d740bd) + cmake: added empty RPATH to several executables + rocksdb: sync with upstream- Update to version 11.1.0+git.1484919552.9216e9a: + Revert "rpm: put distro conditionals around Source0 in spec file" + Revert "ceph.spec.in: revert Source0 line to upstream version"- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch line in ceph-test.spec (rationale: ceph-test is not shipped for s390x)- Update to version 11.1.0+git.1484745543.7b08de5: + Update to latest upstream master (36874c8) - significant changes: * cmake: Turn libcommon into a shared library (PR#12840) * cmake: fix rpath on shared libraries and executables (PR#12927) + Fix build failure in ppc64le and s390x, caused by missing "-momit-leaf-frame-pointer" gcc option in these architectures: + rocksdb: build with ppc64 (PR#12908)- Update to version 11.1.0+git.1484659687.3472421: + rpm: tell openSUSE to never clean the spec file + Enable ppc64le and s390x builds in SLE + rpm: lttng only on x86_64 and aarch64- Update to version 11.1.0+git.1483528076.d86680e (latest master) + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: conflicts in qa/ where resolved with theirs conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp- Update to version 11.1.0+git.1481663255.bf42706: + Update to upstream 11.1.0 release; for details see http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + move ceph_ver_hack.sh script from build service package to git repo (bsc#1015419)- Update to version 11.0.2+git.1480437645.66595d3 + Update to latest upstream master (boost library is now included in the tarball, so the tarball is much larger than before and the build takes longer to complete) + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + rocksdb: do not build with --march=native (bsc#1012553)- Update to version 11.0.2+git.1480105120.6b8e9e5: + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it conflicted with upstream + update to latest upstream kraken (11.0.2) - for details, see http://ceph.com/releases/kraken-11-0-2-released/- Update to version 11.0.0+git.1473684054.73e4b4a: + safe_io: Improve portability by replacing loff_t type usage with off_t. + mon: remove the redundant list swap in paxos commit_proposal + msg/EventPoll.h: add override to virtual functions + msg/EventKqueue.h: add override to virtual func + msg/EventSelect.h: add override to virtual funct + ceph-disk: Compatibility fixes for Python 3 + ceph-disk: Use true integer division in get_dev_size + ceph-disk: Fix bug in FileLock + ceph-disk: Allow ConfigObj to write in binary mode + ceph-disk: Use context manager with FileLock + ceph-disk: Use os.path.isabs instead of .startswith('/') + ceph-disk: Set space_symlink to the path, not file object + ceph-disk: PEP8ify + rgw: rgw file fix bug of rgw_lookup can not exact match file name + rgw: fix the wrong return value + rgw/rgw_coroutine: move WaitContext to .cc file + client: pass a mask parameter to path_walk + mds/mdstypes: add btime to inode + mds/Server: set btime=ctime on creation + mds/MDCache: set btime on system inodes + include/ceph_features: add FS_BTIME features + mds: pass btime in InodeStat MClientReply, if feature is present + client: keep btime in Inode and InodeStat + ceph: break up ll_getattr into two functions + client: move the device bitshift handling macros to Client.h + libcephfs: add a ceph_ll_getattrx and ceph_statx + libcephfs: add a test for "lazy" statx + mds/client: add btime to CapSnap and MClientCaps + mds/mdstypes: add change attribute to inode + mds/Server: set change_attr to 0 on creation + mds/MDCache: set change_attr to 0 on system_inodes + include/ceph_features: add FS_CHANGE_ATTR feature + mds: pass change_attr in InodeStat MClientReply, if feature is present + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + mds/client: bump the change_attr at the appropriate time for files + libcephfs: return the change_attr in the statx.stx_version field + tests: add a ChangeAttr test + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + mds: add change_attr to frag_info_t + test: add test for change attribute of directories + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + MDS: allow the MDS to accept requests to set the btime + client: add the ability to set the btime + client: add a ceph_fstatx + client: extend the Btime test to cover fstatx as well + journal/JournalTrimmer: move C_RemoveSet struct + rbd_mirror/ImageSynceThrottler: move struct to .cc + libcephfs: add unmount function in cephfs.pyx + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + rgw/rgw_lc.cc: fix sleep time according to the error message + crush: don't normalize input of crush_ln iteratively + crush: remove clutter + mds: remove max_mds config option + vstart.sh: add option to turn on multimds + rgw: right parenthesis is missing in radosgw-admin help message on caps + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + SQUASH: client: always take a change_attr update from the server if it's newer + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + rgw/rgw_rados.h: remove unneeded class C_Tick + SQUASH: client: querying for stx_version field requires getting all shared caps + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + client: properly set inode number of created inode in replay request + test/librbd/fsx: enable exclusive-lock feature in krbd mode + os/bluestore/BlueFS: fix async compaction txn + scripts/bdev_grep: parse bluefs style extents too + SQUASH: client: request all shared caps if ctime was requested + os/bluestore/BlueFS: factor unflushed log into runway calculation + osd/ReplicatedBackend: move classes to cc file + os/bluestore: honour allow-eio flag during read + CmakeLists.txt: use LIB_RESOLV instead of resolv. + osd/ReplicatedPG: move classes to .cc file + librbd: potential double-unwatch of watch handle upon error + cls/journal: add async client_update_state method + journal: allow to trim journal for "laggy" clients + librbd: optionally flag "laggy" journal clients disconnected + rbd: new command to disconnect journal client + rbd-mirror: decode_client_meta should return false on error + rbd-mirror: resync was possible only when image replayer start had succeeded + rbd-mirror: stop replay when client is disconnected + rbd-mirror: option to automatically resync after journal client disconnect + qa/workunits/cephtool/test.sh: fix omision of ceph-command + os/bluestore: use global compressor if possible + build/ops: fix /etc/os-release parsing in install-deps.sh + osd/OSD.cc: remove repeated searching of map + test/cephfs: add mount&&unmount test + mds: s/used_ions/used_inos/ + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + ceph_test_objectstore: add SyntheticMatrixSharding + ceph_test_objectstore: occasional umount/fsck/mount + ceph_test_objectstore: test shards for longer + crush/CrushCompiler.cc:884 bug fix: index out of range + Makfile: Fix rocksdb error when make dist + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + src/pybind/CMakeLists.txt: conditionaly build cython tools + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + src/test/objectstore/CMakeLists.txt: conditionaly build tests + mds: trim null dentries proactively + cmake: include(SIMDExt) in src/CMakeLists.txt + mds: log path with CDir damage messages + hint in extent_alloc code + remove wrap argument and handle in wrappers + Hint argument in alloc_blocks + test case changes + os/bluestore: shard extent map + os/bluestore: make nid and blobid allocation less racy + os/bluestore: optimize compress_extent_map + os/bluestore: fix fsck used_block bitmap + os/bluestore: use block_size for allocator unit + os/bluestore: make blob_t unused helpers use logical length + os/bluestore: instrument big/small writes + os/bluestore: instrument transaction count + os/bluestore: instrument onode reshard events + os/bluestore: dump some stats after fsck + os/bluestore: assert shared blob cache cleared on split + remove autotools + test/objectstore/CMakeLists.txt: fix libaio conditional + buffer: clear append_buffer on clear() + os/bluestore: tunable prealloc size for ExtentMap inline_bl + os/bluestore: don't dirty onode if its size is already at desired offset + os/bluestore: remove never reachable asserts + os/bluestore: drop unnecessary separator between fields + os/bluestore: fix key+name sort wonkiness + os/bluestore: encode shard id in single byte + os/bluestore: small put_ref cleanup + os/bluestore: remove faulted debug hackery + os/bluestore: bits for unit tests + unittest_bluestore_types: resurrect blob and extent_map unit tests + os/bluestore/BlueFS: do not start racing async compaction + os/bluestore/BlueFS: fix Dir memory leak + buffer: implement buffer::list::reserve(n) + os/bluestore: do not waste memory on cached encoded blobs + qa/workunits/objectstore: fix test_fuse.sh + os/FuseStore: only flush if dirty + build: drop dryrun of autogen.sh from run-cmake-check.sh script + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + os/bluestore: remove some copy-pastes + cmake: make py3 a nice-to-have + os/bluestore/BlueFS: only extend extent on same bdev + msg/AsyncConnection: add const to mem functions + msg/AsyncMessenger: add const to function + client/barrier: move C_Block_Sync class to .cc + osd/OSD.cc: remove unneeded searching of map + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: Renamed bcond tests flag to make_check + rbd-nbd: fix kernel deadlock during teuthology testing + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + librbd: invalidate cache before trimming image + librbd: ignore cache busy errors when shrinking an image + librbd: potential seg fault when blacklisting an image client + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + deb: Moved ceph-client-debug from ceph-base to ceph-test package + ceph-objectstore-tool: add a way to split filestore directories offline + install-deps: exit non-zero when we cannot match distro + librbd: possible deadlock if cluster connection closed after image + osd/ReplicatedPG: remove class redeclaration + librbd: ignore partial refresh error when acquiring exclusive lock + osd/OSD.cc: remove unneeded returns- Update to version 11.0.0+git.1473424516.3b8b524: + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + rpm: put distro conditionals around Source0 in spec file- Update to version 11.0.0+git.1473418476.095f67c: + ceph.spec.in: revert Source0 line to upstream version + ceph.spec.in: conditionalize %prep command- ceph.spec.in: enable cephfs_java build unconditionally - new (merged) commits from upstream master branch: + mailmap updates + rgw: fix the handling of rgw_swift_url_prefix. + rgw: ONLY improve code formatting around RGWRESTMgr. + rgw: add support for the crossdomain.xml resource of Swift API. + rgw: add support for the healthcheck feature of Swift API. + swift /info implementation. + rgw: settle /info implementation across other swift-at-root features. + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + mon: tear down standby replays on MDS rank stop + mon/MDSMonitor: move C_Updated class to .cc file + rgw_file: fix/update rgw_open flag arguments + rgw_file: fix/update rgw_create flag arguments + doc: remove btrfs contradiction + msg: make async backend default + msg/simple: wait dispatch_queue until all pipes closed + rgw_file: implement stateless write completion timer + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + rgw_file: log on write completion events at level 10 + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + osdc/Journaler: move C_DelayFlush class to .cc + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + librgw: add API version defines for librgw and rgw_file + make-dist/ceph.spec.in: Fix srpm build breakage. + ceph_timer: prefer using directive to typedef + rgw_file: explain semantics of RGWFileHandle::commit + compressor: Better arch ifdefs for isal code + mds/MDSTable: add const to member functions + os/bluestore: fix some #includes + vstart.sh: -b for bluestore + os/bluestore/bluestore_types: make blob_t get_chunk_size const + os/bluestore: use Blob const and non-const accessors + os/bluestore: avoid reencoding unchanged blobs + os/bluestore: decode blobs on demand + mds/SnapRealm.h: add const to member functions + os/bluestore/bluefs: avoid check "locked" field for newly created file + os/bluestore/bluefs: check against locked field during unlink + os/bluestore/bluefs: assert refs of file don't underflow + os/kstore: kill dead code + rgw: remove duplicated calls to getattr + debian: should dh_python3 python3-* not python-* + pybind: silence -Wsign-compare warning + test/ceph_test_msgr: fix -Wsign-compare warnings + test/unittest_alloc: fix -Wsign-compare warnings + librbd: API methods to directly acquire and release the exclusive lock + doc: add graphic for cap bit field + mds/MDCache.h: remove unneeded access specifier + librbd: skeleton implementation of client-side image cache + librbd: blocking parent IO completion no longer required + librbd: remove use of owner_lock on IO path + Revert "osdc: ObjectCacher flusher might needs additional locks" + librbd: support bufferlist payload for AioImageWrite + librbd: add internal support for scatter/gather IO + librbd: initial integration of ImageWriteback to AioImageRequest + librbd: consolidate IO clipping to reusable method + librbd: differentiate between image and object cache + librbd: C_ImageCacheRead bridge from Context to AioCompletion + librbd: integrate image cache hooks into IO path + common/Throttle.h: remove unneeded class + cmake: fix the tracing header dependencies + src/test/bench/CMakeLists.txt: RBD exclude + src/CMakeLists.txt: RBD|KVS|FUSE exclude + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + src/os/CMakeLists.txt: AIO|FUSE exclude + src/test/CMakeLists.txt: RADOSGW|RBD exclude + src/test/common/CMakeLists.txt: BLKID exclude + install-deps.sh: initial distro detection based on /etc/os-release + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + ceph_test_objectstore: disable statfs checks on available space + messages/MOSDMap: mark as enlighten OSDMap encoder + cmake: remove unused librados_api target + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + cmake: let librados_api_obj depend on librados-tp + os/bluestore: yet another statfs test fix + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + doc/release-notes: v0.94.9 + os/bluestore/bluefs: use map to track dirty files + os/bluestore/bluefs: update mtime of inode in unified path + os/bluestore/bluefs: drop redundant eof check for read_random() + os/CMakeLists.txt: undubble kv.cc usage. + test,pybind: silence -Wsign-compare warnings + test/perf_local: fix -Wmaybe-uninitialized warnings + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + Allow compressor build without YASM + script/bdev_grep: update to use hex + os/bluestore: improve failed csum debug output + librbd: improve image state machine debug log messages + librbd: deadlock when replaying journal during image open + os/bluestore: end scope of std::hex properly + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + os/bluestore: use _setattr for SETATTR + os/bluestore: make object existence check robust + ceph_test_objectstore: assert umount succeeds + ceph_test_objectstore: clean up Rename test a bit + ceph_test_objectstore: fix TryMoveRename test + os/bluestore: add onode/buffer cache statistics + os/bluestore: end scope of std::hex properly + cmake: pass -DINTEL* to gf-complete cflags + os/bluestore: conditional checking label of bluefs devices + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + os/bluestore: don't overwrite type if it does already exist and at desired type + os/bluestore: trivial cleanups + os/bluestore: replace store with logger in Cache + os/bluestore: check iterator before using during fsck- pre_checkin.sh: add Source line for ceph-rpmlintrc - move Source line for ceph-rpmlintrc from ceph.spec to ceph-test.spec (see https://github.com/SUSE/ceph/pull/60 for rationale)- Update to version 11.0.0+git.1472455009.a17726c: + ceph.spec.in: drop ceph-rpmlintrc source line + ceph.spec.in: drop epoch prefixes- Update to version 11.0.0+git.1472384770.c9f3af8: + test/rgw: add --gateways-per-zone to test_multi.py + rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR + rgw: RGWCoroutinesManager::run returns status of last cr + os/bluestore: fix whitespace in bitset apply helper + cmake: do not link secret.c if not necessary + cmake: do not link against keyutils if not necessary + os/bluestore: fsck on mkfs (on by default) + os/bluestore: ensure block device size is a multiple of the block size + Revert "ceph.spec.in: don't try to package __pycache__ for SUSE" + rpm: force creation of Python 3 __pycache__ on SUSE + doc: add v0.94.7 changelog + doc: add v0.94.8 changelog + doc/releases: add v0.94.8 to timeline + doc/release-notes: fix v10.2.2 changelog link + unittest_bluefs: fix block device sizes + doc: do not list all major versions in get-packages.rst + doc: add missing PR to hammer 0.94.8 release notes + doc: release-notes.rst: move misplaced line + doc: fix two broken links in releases.rst + doc: add 11.0.0 to releases table- pre_checkin.sh: forward-port insert_line_before() function from filesystems:ceph:jewel/ceph version - README-ceph-test.txt: new file - ceph-test.spec: add ceph_ver_hack.sh as a source file- Update to version 11.0.0+git.1472202104.8999301: + rgw: add deadlock detection to RGWCoroutinesManager::run() + src/common/lockdep.cc Reduce logging noise if lockdep is not tested + osd: fix updating same_interval_since logic of project_pg_history() + osd: drop duplicated sched_scrub during tick() + osd: move methods which don't need osd_lock from tick into tick_without_osd_lock() + mon/PGMonitor: mark dump_object_stat_sum() as static + mon/PGMonitor: calc the %USED of pool using used/(used+avail) + rpm: proper packaging of udev directories + LTTng-UST disabled for openSUSE + ceph-disk: do not activate device that is not ready + osd: update reture type of get_pg_or_queue_for_pg() to PGRef + common/WPQ: add sanity check to avoid potential access violation + osd/osd_types: kill undefined_shard() method of pg_shard_t + release-notes.rst: draft 0.94.8 release notes + PG: introduce and maintain upset + mon/MonClient: should update sub_sent with sub_new + osd: set objecter.osdmap when starts + rgw: fix for assertion in RGWMetaSyncCR + PG: use upset rather than up for _update_calc_stats + rgw: do not try to encode or decode time_t + cls_rgw: fix the compiler warning + msg/async: fix compiler warnings + os/filestore: silence compiling warnings + test/rbd: silence compiling warnings + rgw: silence a compiling warning + msg/async/kqueue: avoid remove nonexist kqueue event + librbd: cache was not switching to writeback after first flush + mon/OSDMonitor: fix potential division-by-zero error + mon/OSDMonitor: get rid of snprintf when formatting output string + mon/OSDMonitor: avoid duplicated calls when determining osdmap boundary + osd/OSDMonitor: avoid duplicated assignment of oldest_map/newest_map + osd/OSDMonitor: drop redundant check of exists() + mon/PGMonitor: skip scrub checking if we can + mon/PGMonitor: drop redundant loading of dumpcontents + mon/PGMonitor: fix potential underflow + debian: replace SysV rbdmap with systemd service + os/bluestore: break down onode vs bnode_map size in log + os/bluestore/BlueFS: do direct io by default (not buffered) + os/bluestore/BlueFS: rename buffered_io option + os/bluestore: add multiple finishers to bluestore + os/bluestore: fix decoding hash of bnode + cmake: fix unmatched endforeach + debian: enable dh_python3 for python3 packages + debian: exclude python3* packages in dh_shlibdeps + debian: drop python-argparse dependency + os/bluestore: fix race condition during get_fs_usage() + os/bluestore: use bluefs_max_prefetch for log file prefetch + os/bluestore: use hex if we are running out of space + os/bluestore: fix assert + osd: bail out if transaction size overflows + os/filestore/FileJournal: bail out if transaction is too large + os/FuseStore: remove unneeded header file + os/Memstore.h: add override to virtual functions + os/MemStore: move OmapIteratorImpl to cc file + os/bluestore: include bluefs space in statfs result + common/config_opts: fix comment(radio -> ratio) + msg: kill unused macros + mon/OSDMonitor: add output field name of average/overload_utilization + test/librados: rados_connect() should succeed + ceph-osd-prestart.sh: check existence of OSD data directory + osd/ReplicatedPG:wipe off param op from generate_subop() + ceph-post-file: migrate to RSA SSH keys + ceph-post-file: Ignore keys offered by ssh-agent + os/Memstore: move PageSetObject class to .cc file + yasm-wrapper: dont echo the yasm command line + arch/arm.c: remove unnecessary variable read for simplicity + rpm: drop obsolete libs-compat metapackage + ceph.spec.in: drop trouble-making divider comments + rpm: do not unnecessarily spawn shells for scriptlets + cls_lock: support updating the lock cookie without releasing the lock + librbd: helper state machine to update lock cookie + librbd: store exclusive lock cookie instead of recalculating + librbd: exclusive lock now supports reacquiring a lost lock + librbd: helper state machine for asynchronous watch recovery + librbd: integrate asynchronous image rewatch state machine + librbd: image state machine now has hooks for lock requests + librbd: interlock image refresh and lock operations + librbd: remove unused refresh request logic + test/common/test_util.cc: FreeBSD does not have distro information + README.md: replace package build instructions with tarball instructions + doc: fix singleton example in Developer Guide + rgw: delete region map after upgrade to zonegroup map + rgw: fix period update --commit return error + cmake: use PERF_LOCAL_FLAGS only if defined + tests: populate /dev/disk/by-partuuid for scsi_debug + ceph.spec.in: don't try to package __pycache__ for SUSE + doc: fix wrong osdkeepalive name in mount.ceph manpage + rados-striper.sh: Use expect_failure and conditional stringmatching + Revert "ceph.spec.in: ppc64 build in Tumbleweed only" + jerasure: include generic objects in neon jerasure lib (like sse3/4)- pre_checkin.sh: fix package files path rewriting- _constraints: tweak values to pick up maximum number of OBS build workers- Update to version 11.0.0+git.1471969747.79ca12e: + cmake: fix declaration position of WITH_TESTS option- Update to version 11.0.0+git.1471959548.f013b97: + rpm: Renamed bcond tests flag to make_check + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package- Update to version 11.0.0+git.1471605408.9203335: + ceph.spec.in: don't try to package __pycache__- Update to version 11.0.0+git.1471601504.f312e7e: + test/libcephfs: add the necessary judgment + test/librados: add ASSERT_EQ & ASSERT_NE judgment + rgw: optimize the usage of string.find and some indents + rgw: patch manifest to handle explicit objs copy issue + rgw: adjust objs when copying obj with explicit_objs set + rgw: adjust manifest head object + rgw: fix the error return variable in log message + rgw: fix trimming object expirer's hints. + rgw: fix skipping some objects to delete by RadosGW's object expirer. + rgw: ONLY improve code formatting in rgw_object_expirer_core.{cc,h}. + os/bluestore: allow csum verification disable on read. + os/bluestore: add csum on/off test case + os/bluestore: add store statfs parameters to bluestore perf counters + os/bluestore: add perf counters for compress/decompress performance measurement + tools: fix the core dump when get the crushmap do not exist + librbd: request exclusive lock if current owner cannot execute op + src/global/pidfile.cc: Assign elements in structures individually + rgw: fixes for period puller + rgw: for the create_bucket api, if the input creation_time is zero, we should set it to 'now" + pybind: Rework rbd/setup.py for PyPI + pybind: Add BUILD_DOC env var to rbd/setup.py + doc: fix rbd map format in rbd manpage + ceph-disk: change ownership of init file to ceph:ceph + cmake: Also build Python bindings for Python 3 + pybind: Make ceph_volume_client's syntax compatible with Python 3 (just so it passes the bytecompilation step) + debian: Add packages for Python 3 bindings + rpm: Add packages for Python 3 bindings + os/bluestore/bluefs_types: fix extent operator<< + os/bluestore/BlueFS: do not op_file_update deleted files + os/bluestore: print bluefs_extents in hex + os/bluestore: do not track bluefs_extents via freelist + os/bluestore/BitMapAllocator: align to min_alloc_size on init_rm_free + rgw/doc: fix typo and indent. + mon/MonDBStore: fix assert which never fires + osd/OSDMonitor: count pg primed more precisely + doc: replace cluster name with cluster-name to avoid confusing + doc: fix typo maximum -> minimal + doc: fix command format + batch is_allocated bit checks + cmake: Move Python detection back outside of pybind + doc: format 2 now is the default image format + rgw: Rework of s3 v2 local authentication code. + rbd: bench io-size should not be larger than image size + doc/install: Use https:// for download.ceph.com + librbd: fix possible inconsistent state when disabling mirroring + os/bluestore/ExtentFreelistManager: move default create out of parent + librbd: new journal policy to disable initializing the journal + librbd: permit disabling journaling if in corrupt state + qa/workunits: support filtering cls_rbd unit test cases + os/bluestore/BlueFS: _should_compact_log + os/bluestore/BlueFS: _replay(false) to dump log file + mon/PGMonitor: move C_Stats struct to cc file + client: don't use special faked-up inode for /.. + client: add a testcase for "/.." handling + os/bluestore/BlueFS: add OP_JUMP + os/bluestore/BlueFS: allow log position to when doing op_jump + os/bluestore/BlueFS: move metadata dump (compaction) into a helper + os/bluestore/BlueFS: interface to get bluefs space usage + os/bluestore/BlueFS: init in header at decl + os/bluestore/BlueFS: assert we never extend log at flush + os/bluestore/BlueFS: use hex + os/bluestore/BlueFS: Add sync and async compaction + os/bluestore/BlueFS: Helper functions for the unit test framework + os/bluestore/BlueFS: unit tests for log compaction + os/bluestore/BlueFS: Cleanup unused interfaces + unittest_bluefs: make flush_3 test device larger + bluestore: initialize csum_order properly + librbd: fix possible memory leak when image open fails + script: improve ceph-release-notes regex + rbdmap: specify bash shell interpreter + doc: added rbdmap man page to RBD restructured index + librbd: always respond to "release lock" request if lock owner + rgw: fix radosgw daemon core when reopen logs + qa/workunits/rbd: demote/promote image on same cluster + rbd-mirror: include tag tid in bootstrap debug log messages + librbd: separate journal::TagData predecessor data into new struct + librbd: block RPC requests when demoting the image + librbd: normalize journal promotion/demotion events + rbd-mirror: demote/promote in same cluster results in split-brain + rbd-mirror: prevent syncing to non-primary image after failover + test: fixed unused function warnings in unittest_rbd_mirror + doc: remove the description of deleted options + msg/async/Stack: add abstract Stack + msg/async: add PosixStack support + msg/async/net_handler: let set_socket_options return value + msg/async/AsyncConnection: support NetworkStack api instead of posix + msg/async/Event: debug event address when dispatching and executing + msg/async/Event: remove event wakeup flag + msg/async/PosixStack: increase log level + msg/async/Stack: disable smart thread spawn now + common/ceph_context: add prefork/postfork wathcher support + msg/async/Stack: register fork watcher + msg/async: allow EventCenter::set_owner reentry + msg/async: readd set_priority call + msg/async/AsyncConnection: fix _conn_prefix racing when stopped + test_async_networkstack: add networkstack tests + msg/async/Event: remove global_centers assert + test_msgr: ensure wait for ms_dispatch executed + mon/OSDMonitor: add sanity check before setting use_gmt_hitset attribute + osd/OSDMonitor: drop redundant null check of max_failed_since + osd/OSDMonitor: drop redundant check of assert + mon/LogMonitor: remove "host" and "fsid" from handle_conf_change() + test: gcc 6.1.1 complains about missing include: . 4.8.3 does not complain about it + rgw: fix flush_read_list() error msg + cmake: Fix mismatched librgw VERSION / SOVERSION + cmake: Add -pie to CMAKE_EXE_LINKER_FLAGS + rgw_file: restore local definition of RGWLibFS gc interval + kv: delete store after pg destructor is called in OSD shutdown. + kv: fix iterator invalidation in memdb. + kv: fill 'm_key_value' after 'seek_to_first' or 'seek_to_last' + kv: fix iterator bug in prev + test/store_test: fix incorrect prompt given by stash callback + test/store_test: drop redundant transaction of callbacks + test/store_test: avoid dynamic allocation of trans + cmake: recompile erasure src for different variants + rgw ldap: protect rgw::from_base64 from non-base64 input + qa/workunits/rados/test_python.sh: Allow specifying Python executable (through an environment variable) + ceph.spec.in: specify local sources + ceph.spec.in: ppc64 build in Tumbleweed only + ceph.spec.in: add lowmem_builder_override + ceph.spec.in: add Prereq: permissions to radosgw package + ceph.spec.in: remove vim hints line + ceph.spec.in: remove all mentions of epoch + ceph_disk.main: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_get_free_partition_size: New unit tests + ceph_disk tox.ini: add tests/test_get_free_partition_size.py + ceph.spec.in: replace pwdutils dependency with shadow + Make systemd-tmpfiles create /var/run/ceph-radosgw at boot + rpm: fix ownership of logfiles in %pre + Revert "rbd: update default image features" + osd: munge cache-pin ops with data into writesame + ceph osd: add support for new op cmpext + rpm: make lowmem_builder code much smarter + rpm: add procps build dependency + rpm: modify optflags to make debuginfos less huge + Revert "ceph.spec.in: add lowmem_builder_override" + rpm: lean_debug_symbols bcond + rpm: use gcc manpage terminology for debug info bcond + Revert "Drop any systemd imposed process/thread limits" + Revert "systemd: Add systemd sandboxing to services." + rpm: be careful about build parallelism + rpm: divergent java, ocf conditional builds + rpm: fix _with_ocf + rpm: drop obsolete libs-compat metapackage + rpm: drop obsolete python-ceph-compat metapackage + ceph.spec.in: drop ceph-brag and ceph-post-file + ceph.spec.in: move cephfs-* fsck tools to ceph-base + ceph.spec.in: move ceph-dencoder to ceph-base + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: add udev BuildRequires to provide /usr/lib/udev directory + rpm: Remove trailing whitespace in usermod command (SUSE)- Update to version 11.0.0+git.1470997027.9c9b8a5: + doc/radosgw: remove reference of purge-temp.rst + doc/radosgw: fix the table formatting + doc: silence sphinx warnings + global/signal_handler: use sig_str instead of sys_siglist + librados: use bufferlist instead of buffer::list + cmake: cleanup Findgperftools.cmake + cmake: cleanup Findleveldb.cmake + cmake: cleanup Findxio.cmake + rgw file: remove busy-wait in RGWLibFS::gc() + Lowered third example to keep PG count lower. + run-make-check.sh: pass args to do_cmake.sh + ceph.spec.in: specify local sources- Update to version 11.0.0+git.1470355272.6fed82a: + initial fork of SES5python-cephlamb66 155681746312.2.12+git.1555518691.67074fa839-27.112.2.12+git.1555518691.67074fa839-27.112.2.12+git.1555518691.67074fa839-27.1ceph_volume_client.pycephfs-2.0.0-py2.7.egg-infoPKG-INFOSOURCES.txtdependency_links.txttop_level.txtcephfs.so/usr/lib/python2.7/site-packages//usr/lib64/python2.7/site-packages//usr/lib64/python2.7/site-packages/cephfs-2.0.0-py2.7.egg-info/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:10152/openSUSE_Leap_42.3_Update/1cdf31ff1f933a4b1b1a54c24a6e9603-ceph.openSUSE_Leap_42.3_Updatecpiolzma5x86_64-suse-linuxPython script, ASCII text executabledirectoryASCII text, with very long linesASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6b6632944be56776a6b7a3e3c09e77cec649097d, strippedRPRRRRRRRĈ=N,t;python-rados12.2.12+git.1555518691.67074fa839-27.1?] crv(vX0}rج-c~Lk0C69 v\zxji^%*, *~K^xS[s~n mN@l,Y콪B;SNai2) xKQtŋ좿#) .E xɐۣ9Q#-&UE[3{rGaC^6#TL~ y!tݝϠWeEgoP3LPHE*A*$k$VXOgh'|`P0>:Ē6dz|ɺ{4>Fw%D=f>H'C 1on;Y[=KB_Z=M,9li!=۔qe$߼1l\2|AO]@B$|}T^]~IJX~&yU⎞h?y|0.;cP1df#x^-&kt?M'^D ivY5xT.\``dgIJDN.)^XGVQ)/ynߧV烶k@&rDt Y;ms _@M<){LI4|[e|rUmTyH16* -_L0T_p9JzJܴN~4Srq-?=\'pOeڙ1٩u<aN5_a]ţ ἀ.1p >ה!zVNDxDByy.{<w/h^r%Nȶ쉨9ف3eojMI8R?ܙ(w =PQu/#ᬣn " 94)<~l/EϬ7u'~}}/A G*\Me;r`>e5 z<7nckpIO9$z#};+򻶘Cn6ʘ*T7Yaz4yjRaV8[*YKcC_5b 6iRc$"ˆK1?50 *1HB~޵u!|F$̩I99J+Fptd>4BwT^g\׎rPwTa*YMknm>D_J:ۥ&bqT)_Q1YhLÊGfm;kEaBwLv@_JJ9\s_(ԝ~erGR{6BiXmN9z|nJR|^tyycB&;$I.LVizIޮyV[fd)yvU$Þ=>hL:S;=W.@vOexgksJ#r|`}sMо1zsgI3^t>`-UY5=Lx-5 tĂ"g*4ŤcE _.LЌ)'u)ē~7 i/ ha=C! k_JiG2Dso #MihW*Yvc#IۯPSoeqfrKZE\d;{xv^D~gxVDb۫!|J@  3^B+*{uT7m C@K kE R]G$mr68vSNE_b|U9=|>q4e N< a^^zT3Äu>O>$O㲫us) c֬fKl{FR|:ex .ġmX#yGx{>H)ʖ. ߼]`̧5g +d`a-4.RU݃f-΄׍?3?y63PbIHZlJ Y2xƫDZ۽l1us0u~#lZѓ_5P? }ȃzo+P"\ZU K(#Sjv~gW(>G:|j4j}m."e* -GR:$zdRWqtA E ?uHph/oiZps$V~$]e< t%)H95773'ҟ3PiE ^c*icQF\PCТ B]CM%sܝkիV|Mط|D|^k-hl{ذ=Sa.hAEFGoF/\'>HkbXĶs⾴V/{8肻He>Jҿeܖ-FJg !H.\ڪB-/6؟#+rM$T9G$]5O}sq͋bҼ]#oS+5AoZWUwwo^Џ2΄>*ξ!} p egٝ|@b$F<0*X,hnMA@1vEmpѠ_WǕ$!z7K-s[=ƭ:VLӽE@~Po9T!U+Yr9OL<EJ VɸG  ~&&PGO/Я7|{ HbUhTC (eT(9ぁpSFce@[phouu sky)mjJ2i ,"twn\O-},t`-Ώ0J5~!bE<{9St?Nnpn` *9='p(")GsbQ w e4*ר+="\AmT7)lﵘg9ePu/5mlmUإ{4T~~qF?]7vJ& S*1ݥ,kc|m _BYl2 ]aӍ%A{:^RW$.Qe ?Տ}&qS(Ȃq.%Eʲ6=hm $GGxv;w{MA!W'%9ϐ " O'VM-=H̳2)SsXhE >c s3$g-'mn$tdga=L;u(dWpG`Kuјly6%<lH1R"~B0%h;n& Hov^EH]ܢU1۝.nHAtf0H*oo&Kw9e^\w*hZgQKٽ=]j=eB* nE4)/rBٵEݼ]ҨՆ4hu<Z8\U 7m/Vm;IO3 ʎw Lm~9NQ`.jOFMK\%%{=q^~Ng5'M;Lgۃ> !UQQI#]qVB߾E'݆TBB4IeA1&>5ZbPKPׅ-Ž] |}'; }[ԹyΔGzR_PB'/>Ye}UZp~݆ ƤeL}Z2_Y&}J/%}]TfB"݇`ɜ}7d_Hhr7]p7H??I4d|;cYC(,>X?iՙ2˽͡<TҤޒ3gs A8I"m9mLM/:iwND%YBBf-zS }_M0݊;q*\q4?gfI{>y%|¶BCY|]zȈ7$8 X$T56{C36-.z6E0BF ):FH3!&6y{֍Ǎ<sȅPհ(Z ͎gɕ255-=?gln' )֒oGуO1{ 9|/ZlԹ5XޞR1+p fYfy[f B7w T3<ޜa g&3ZU'M.Qn7uQӻh&$)6cE-ݾÀ[@V8S; on}_x=/[gR—-M>l;Wxo.jo? r{gY]B&HZXMNJρ4i֡nj,v.IWGP8iȪ wA[8AcҰmKCCR[ ;i`lf2%a1*8\#k #wl7,QX醁VBR,}̟lηf7OocJãduj\Gسl%M7„|24FΧwuTW2Rvꅀ1+R&5Bp:\A%Bق xqmoP^S=:B+~ƚ/Ն[T,3:L/!s;+UIgԴʪLu4acF/0Uוs26GgC!]v}2dKKȜQ *`Vb~z!ZfP/ivj:Gl? $*i6sj}Q|UT-.Dʎd=/-THpΙͦYoTseWvљ')|"?ӣ2]ZB8=# .5faRFLŠ/b5!yg=B{=6N_hEt2.B2HQQ -\_gA*ۂ^"쳫1)Y˕NK1+{`xRhn3>-JR*7'$. ><"˯e$lzMt| nk] Rhh3Ó-aPTdM`Վ4LQvXəD`8{<~#L p\yv[ڽ,T$W"+ֳ>B\ [Z:(RU̥68cAx GE"^AZ]H]N9?e#E&t2e6U2y-e86ü+zAd#{kmf^\Iqhzbn'rhW3NqA|- s` g1 $<.ӗc#biaU^H5Zuq|O-R^Ļaj 0%af3=9<5x A' DML=6Q6Ԕ>6S9jX$ }9\Q9/~o\sD[@aVrPXR|qM^ D^4﬐#̒My!]ya+B}utAGnd6q9N=eH2t.HΑWD@E)Ȃkd 0ԋm]>:sXT`r7n{Fhz+VOfE\wooUT[dY/!Gs;LvB6mϷ}HA>2?"ho.\OVv1Y!JI-1.-Bʮfhc~;}{unTrR?(qDr)A4vAkK/s,OM,/GQ0u@qh4CpWj EWf(tM/ᓧC!dRDc4:ܐbW~x~jgutW~x}`<> zǎyW4\H1DEK L'ifechP=٬6 m2Lm>[mP"Q9dw5.vgQq0?H?lbqXP-d2vW0JFy߻oܛ0z LD+{pzEHN_^GVV 8 8Qzӝ9R{օu\T13y 4*R5RptpRaU`CW?ۿ.E^󳜑2JYX 8&bRqPQUtAGnhSUr_sWծp5-EMy>-D,"A0krNb[Ӧ+>{pt׍I1n bJ:Pj>dd;U09}W#mw`SD{J@w莺'.8Ш2Mz'B8Gtv,f9ͮ&*mTWV9~;鬝z\i͸q%ѣЎYNGey|XVoeS!v/2\ԑԍY2`5$l ng(i_ue) ^1CK0'{Wh8oyWHm i*L1@N[S+4k}[Z`w`VHRrG+c[b۶h+]dxD w vi%[ED6 1gLŦ$80;G)d g{l@jRQe'.h656vĀ$ZမjA? |1:(Hn*e\O ;f&N<٢3;K7R?Q "e 7 1m7$4Al-$O` A ,bW՞U+6q6cr>̳ڿ{<|ΨWOyDlfq8+Qm~,LIJ/ ,`"I`Q+Sq_k.Q D`BZS.DLl#pd$uVdÏ2z6f':JrA0o-BϜ2LL 1Я$xal_Ny3qlDR&w)$N m=U.;u".;+7i}<#b9b6c 6 ]ni kѢO ^l3fR~/u"uppXJ5=BNo#G%~ !S[ 6_8V%bh7OBtHu(?׫]bk4Y~eq*34`$h1\gC'wA+rWl^WuϮLu&oRzK]+OJFayI,F>%1%'4Agj:TY(HCdG+.yȗ{&Iv^h$)67 rJ/Jp~_ΪWAqlNCyZƄZW hN+U40'ۏbOQ|0DfÏy[-rN:G..2N).jw2FE@ X$6C۸ݠ%8f>pCUK<"ܹ[f vc'sJg6zG}}Mh.XduE縊鼳l`C2AlI d{Inc {rȺپ*PRS݉XpE$_ Ļc836Pƅy-XGƢsv/k*( 0=WǤڍŘEzJ31w5+'X42 *cS#n~5&DdꓔId6]n(CBm 2eTҝA\=b Z4k8(J H!\}aK.b-ӡ<%@'O e` 0ûѯapL$zv8,9;m{Μ|w%16-q 3\9[Eeuē^vK Fa{$Vp n5fD|e^k7$/޷IJ1Og{1FdBd˕H0WA9R#T8* /%lbNG$4(Zi2RE *jx+#)n -E,ȝ_A61.4uM@],UsV@BSM]3;sXy5l0EYh<+10Sn舀QȈ٫8)Հ{",% 81`! 5[-Sf:,n <QX(/XZZeJV+2`* @\tir~-&'I gHK,pZv@ܮ_ : p%hdsf4ik_oe(f%Fsݵr_aIӔ;eo|1eT)1UQE8\WGMrF`[PK XB\"Ԙp}eb0+,xF1lb{'Ju8KM#Gr2]H> ec$>b;aF(:fG` ʂe;KT9,Ga,Tt8Lxvb5[;Jey;XZ.F /0oTЂr'ٱW#'x~I'rg)Vy:Ces$/*kh+qhԄtN!҅+Hf ͚2;_:W?j`W;{R7[x8acQ$JYf{)NOE ^~5} ;ϛ Yv$#=OЕ%S_Qp1N( {d_:杫\fN.EΨԤV4`k㞥>, D`!aMD5!H#bg-gL6}>'҉9{.Goڀ/nR T"Ц[J!跚ڛfƞANnXcvIɽZ¸ӋS4+oE0 X 㦋^᭜P O!d9&_NbDgIfL - l#ZLc7Uh_|j]d.a~I>Z?Ne"dkZhRv 1 7#pejQ~%d{x22&%a~ĐlTOS81#`"K^ܠWm|hD;we4;uˆ_ ban!}-lANԒt+Mz L{kLߺFqS^(r}p2/%KWDA+$llhV<Ntn01qMc$< ,WNr6o LJT @՘+L[Ir_szvS"}3o6²EW,5xiO`5DCG3td{BOI֒4qUoe `Y0+6Muh؈DSڇ֡40zdզ/&܀Dă6\DIu!29G(_%%8m:?zK-^qj!PK.UsNJjiU-..D:k/>+XsGs]5bK DJf7ɖ^3 v=uA ~,NჱV2p- LmԈL.P=".JMF0 "2Ą<LAbIC2f=QJ9e?2/9xaXx:,n@ 7y+Ռw [Ţz=o+TAaP_{RP:Kx O;&g9߯f8Pyz DU,r_b7v373Dd.l5֎y܌d J700R#eok.qzCpWRexMUsqIb(h'=a#+Sn@@탓KJfs]p1N%0]hF94CR*6[ <\?ۦǦ{6.HI —(i-"NC*de@RX9fH摕7y|)iN^RnK h)xTH*=꺭0 B<;d"ET?,FWLOeÑFμېhC7P^80!pЩ %DW I9`UQ9c+ ?(3.ye 2{mvzP8 *ncҼ?)4Ƞ*63>F)o u.yPEm[u8SɚQ8TG_@j_tNju.VDCŜ4@(G A`Myoef" f ];훗$7](o[X)#'*p={tm~~)z0j^CUh}2}ڤ! 0'ېq0Di!qaUN˻ yÅڽg)*G/;K!ζh֋g:,TTXJGh: O~=FE;1+2/95ev_;}7 zz'ue}JY j4'&{S x hS;aZK+ӡykԮ$f!n4 |rCӧKAcg Vl1d{z -Om=AD%8>gx7{~#Sڋ'YqZWWFÊMj"u|*[zla(MvE{jXsnj (t˧'_X8< e][5{GPM}h〼PJ3gWXz@tX؊dU;#Uqma*xz3SX#w{̬Ǵl}Q(wR9JQf3Aм-Z pL5#DvYnnS.9!*Κ/^Y;g?zvZ,"r9Vo~ \Yi,X) U؉@ߗصub1to=>"0{]EC腿F-WI4-ItCO3H}s[ٶ8P7/ U䲱MVCR?XC+(QM!KKt)swMY$aByʱuOLY l4C/&K\^$mGRP% V+3ÆD0nWؿ33P%*CKK<9!vmH}Z&6^sB-w#ksZZn u'׺'S[g;FŀC9S3ޙLjRA_ҕg> VK>;[vٞbI, $s[3b_#T:V*UPbb%YD^z%0S /6TG@aTQ7{q켉H 9-p⸥)/qdr~[>{ȯy?[ 駝8:M;'jLV*#7Z ތ3A9yTQ&t[.#eu\͙!A x^wgPؘN1g}Kp|OwD+ N9;Pt̉q&`m(Vϱ8Y3{JTKD!~?>d\Ui dN l*Msp7;7q_4BY _Cv*[`at&(gZ19] k3djuu'+Frהv}B| R} ~Zm${ TiAt +!7S㴅OF4dK.E־'VA^z.jA3Yh%3g0hxOg0 jdu2<>y~7DS@4hQ6`R~Ĵ[RRڛyg_9EX|+}E3@B#/P.N&5XlOA,p`-[ 9 G5ixX4KBWf[OiOm&+c܅K~3O*XO H$+͗!jz~kp˂5x3vkP-# үՏͼPRvZu}޷h]Ǟwf$PM#/}=l e]8uXf[iBhOͫ2KCQĻ ͬt$yS^PULY?.p6[n4 $IuIcHT Hr#~9>/^BS.av?a3X\hM*$Tשï۲gISJvLefs·㠖W%&G}S?Pjg[AGI*"O-گz8A'vغ7Gi WQSɅWK%vھH{:3jXgGf 2Z0ާgW3Qm=ztَf?9dzkwr>#GB* $m3X,07SʿB-'ALK׀<-Rȫ͠7T;olQBzP۽}~n;y9G4zx^?PZp<lw>C#xwIQ@p+hI)ʇyqP 5i :BDizskEL:^F@ͭ[Ӆ\IIh0{im@00{gBYjZUGg) * y6v"T>MSk2 ka:k\`W }-i:Gʳ? qhL7sUŖV= *Co#9?|1Hxm6KV={|h*̘X8qAaw@q]tlͷ3_atl wϊ}H@(ƛ@Z쮶K/@3Q@(ۊ?6[ L8΅(;9!SA87m rx/''/1zlebvnaS+ n`p9߻]l7qH͠T?eӯ?vYkn#⳷<׏ $51ɲGW+! Wf'~.HEۖbҤa0XOv/=lIwt)_B?!o[f4' fz6DĻs;hl3Db6xq.YѳՔHm=ܕJD jmSZՁz0]tNXCs" 5wz `ٜ_75TP!ZĤ8F9Ă!i5(kj}/"F|~F@ }-m h`>8ۉNJF{cʠ0m`r:[Ѥ_pOH;ī}utXJ;=^Hy1BWQ}?^_GJ1[7"n=wuCnIWczp㩟"$G\gXf@[ee[Q-is n 綕B]o?pDzҖ*ѤeUzOj)`/DWr}z<ɨ}QJIM؋} |ݪ k-; ˤYO0z~ܱ~-gwf|⋋uSS|va*xi8 vr`JLX(a`vA2'+ǣVǎ~۲7jme"u@Cg`t;s7$#_bOxh\ZVfd~Fj$Zpel2eX@Y iϖ+\abRn %V WRLWOUe+}ڈ s;cs YGs9.n_|r4@.N(V`Hw-8&{ =`%A}`*.  Qu&4Jꉉ B˷lw3Jvjb>.`O;8gCjکٹgAW[ŋ "*@-+^ S%^=t&At UyM@QD. G&?l#fǡ0RF{\9T0pM; ec iMct ìp9)cm oz?4 7⵰]E*^KF2C% $ ? GNK'VG^ A]=(x]U9m Qr?FQjx4Uaa EL#.gQ.N)UlMdMVo(&? m#@|LÕn<⚶w{bxU࣋Be6 JGcQ R/to/yxoohK JuK਒mHpG|Q.g_ޢ{jf")Ͼ|~:!(2rb,XO˩T[xh/kQ<%Ng W?͖\РR 9!jvdt5H ۽agD1Vp ozpcYf-P}.5|MoF,ƷhIUӦeu$ӧ")+gR-u>BS }z:n,S_X$ (YbHP i`Rfsq #ȴC sJo a )rN13ȁ#Qq'yӇ@` ͩw; Bs4/hr "@!&Kj+`*C?,D`퐛Iߞ2NCQ58WB`kj2?) S ;K&mڶ?ߑl瓊(gDit~ㄊQ\v,BR.dv߇sz᭏&lx 2dm.w+PV=!$RT;cչiGPRU Χf "2hq`Bjz{byE)\UpىJ_Iw,L{D`O Qh ~7|;3CC;5}]pY`T>*Hqw3̙.!sZ OwEPsxr ,_PWzFx &Fby/&Qy` tcPW\'&vQQW}QׂRJŒyߋ?^OvV&ejE}`^*t>t=E(L6AΑmU Rּu%\>=y6 eDLE^'Ci'TbR!-YDceoCt#1d IϺׁex4_6vIQ9loxsѢ*^ca$UAq/1%aT5rV ]}#_Fxzg>u?HaeX4&~ԼTЇ<;\Vh=kbGVOu k٤a=wŋ?$|`y*M*#N@(g+; Aqk5TJ`2dwHIsiXtRtU C:՞I!L(mb˦9ĝ/\@ Nnk9ǝ;1wrCv-& &2 pF(m%t BO,738mzH^O༐4;4 WURos)3cFOSZCp0:#FI *oRdď'΃Y DXpÑO6Kxtd-kzS]sR6)ѮpSs7+|ŏ&HM"YA`t48?}u,26\ 2Wߥ@"E:4+uX"fw=of<U3!pAN1.EKw*tg -6Qcr^$ uM5ACoԎ -U;v,W>zIT i/2^x|Kl>Z#:v_jZ4HBŸ 0$\,_E AD!ڡB%t0T$mܝk |ˌYI R^+Ǚ,\CcW _;&íT?nm`$Mm]UBЃ%yL*ek\ e]O.Y$©1av[xL^㮴XlO>iaa o+sɭܴOX6 syǃh|o! : ]8Ĺ3<*a إ%/hq3I~P9Vl~e.-#SBQ{٨?+͊@G£Ĭ_iWV-Y$g'puv%Gz XOe]Wh0]B`uPpO^hafAW !]CW" ->K dr@)LەCzOʐUT< #,D ӟ:\Y@1EFqV@9b 1u3Ͱ3`S"!w\+|bVoɪĢSP/1Oyմ$lw=*xYℂ{rNDAVY _m wΫ||d\8?^9=&j PRVB`5I }_zbCS뜎Š _BM;=F́DʒՎ=U/;L3<++Ot6tSVp9%<Qy¡tΟֹYA*O"ma<-q8zP`ۗH,S^"=\PRA6"/?z dωD|xr1Θ}:mH_jM ݊d $ZoPN C 47YlZgOkV+ Nh!r kJQѝ%G?|f%obU_}eٵȺo1[jI 438-iy$s8Ƹf)*g՚n峽tJ*`iԃk$50u?F):oRyXXǂ֌bKw]CwP=8 E ^ .g #=;S$ "g+PC,m*Q0[]ɦ&ﻼk>KJxHY-~/ǰF6(LB\N~!]GxN EqZՕbBb>݊gq%ax-wCQ@^[au̴2$JjU&E̶Mܫn?@cNGt/MN hI.:Gͮ&ɔ=mz^P3+w_tyKW*u"-Ѡș [Y%S%б-5C"{[#}BlL2䁳TdMtOD{(:;ur2bp;r >IWUc y%džCVqV 7Fs쿤~ps$/ۻm#𓳾wC<~urZz\8v(q/܌@4ąȂ>LڋG4PEYY=ܗt- ƽs{j}\2,̇m~mȋr YƓ= cT_Hky$&uGmˆ7G ڸ٣Ey2JHZ%va2@JnA?om>5Oݴʇ54cHV B_>ثO)7jW"W 4B @2}Uɨ ?L{EgPNxk;1NyjeR!;ݗ\:{ BQpMhО!sXqllG}`r"ſy$_+ vL.gMA(b@ VE2ctN:\cIW-K(iGX]h8(S%dZKd)bOٟ;l'b^#Ri#Nxy;djNBLj:{M$ z.0)H;pjbgΫ.'+MnW-QL:.s㌥#Ү8"X^/ZkR$PRɜXK}"2fRd!g36WS$Oq tosA{h\Wwd7۫- V:*_68Fw~˼,vM(uI^+$ƚF ܑ%D _Y7(  >mqqCn暡)0 ]N o8S|)M΅T -`ux(e?]&/E[ Ff$B v'>ۯYoKC?_Zusc1]NMy s=0Y#Jr-v 0";}Uq@wA2д8A,@Pߏ {{4C* @[:\[NOsI!^bȠ!jX5} F^Iuzּ9*9Qw.Lu>g7x`ȞJR4v)KC՚.޶mid߇.,1b׭? Fыf->O c7i4v4ŻH5Ã~gY3] }5pf\JKks 8kgH}ܢhkv&yzSA l6KX}r$t1++xn+ A-y}0z胨%Gy))|G+N9EfCAb$_*kkYXߺ@໹H8Q;w@@t:dˇH:yz:fMo2icCHPeQ]ӷ?I_uO!$A1 'rɸObDysg9i'ѩ}EPZ6z |&upY|k׃Ul+OHf5kی_ 'F&4(GFO̶ dbu,l /Ա"E|,"dg,7{AAd+82Aʝvb5'(O \*aGJTW|t˜t /߸ ceQ6C oXީu^SU7o*7m`A=\C7m/ЉO,?7ټzGORKMm!d_q7 ʋKwEQ嗰Z%Ӧ5p}+{GmuJ&)ۭnR=h$Q?c B˃_8;^0x?e9[Zw;f`ق"Af>AxXwD~NT 䶧LQ)FAnBlDZѤ֓##x:+L TF&n:? W(-N(ie.O_31B&>!%υ g,rppScҷJ+bD{&A}5C4y'1+BS'VDUe/pIܴ8)d#<7C1źM^^A jA S!3KkOXJ*iBG@?"^pb}](y\_*KGйnJAHӓ~(^psE5 ; 3iKKn+(ִB"Gʥ )?%3MS] wնLЎS? d1wCH"BX Q,a (6<ܡS/ ON)C}" 7Ҵ QK^7Y-pMp/W:R#Ȅ˳A֮y>ۼ #y?cEW+|/Nt|1RݏFQqౄ )%e Z| :Z\rj6w8P%嘘!.duq[B6TX%E`7F'ﵖ[؉6^N2jnxƩ^L ww/e8>;ف!n?0P~h ^/)JH$UEK ]1K5tp7T6Ɏuw\6ƯF *ڨ+է]2W1ٵ>mjC+~&CwicNޮ Z|)&2;tG0N:9qymJXnBPs2Ĥ!np.e^k9*LnINša(XhX{_#[콶;׋]j\Y[ k ;(wn7X>ROQRp{)Z(K@^R3 nT0t[ln-yZ*j,$iAGoC'?dF 1fyNvڏQdyYMY ؖ׿A82_4y[>f*Ptl![z"U^XݞX{qxG_/{Q8;q˒'C+b QO G,7/h +La z. e0?reTo |+JB!!ÙP@V%$%M `J\i$<9eeb ]|0iΘSu%V^\r?}ϝ$T𘺽(~MHxv4d . M[+0t9Fn?y ;WT$^&_~Kzf2װcR.E[E 5ICpiT`K9x>@OvC X0\S~) {N#f: ZҴYJ8XOS'fzLLG367\1 -,o<If9V$?q"G%eO5uc }+ըelφ OYƂC\Tbs.}(P֨d5G Iv(6Ґ&JfۅQ5z?V:74gU# $ ޶IDe<ヺ#3Ǥ ȱlSLH*GA;*pKT3-xc!Ͻ,6*Ş"yo @1r 8y \0 aknWpJژZcƙVX%#9݊F]X"Aocoq#έB/6S>)EW4ĭǞ+9c7A7܁^{xp2AY8 a&$kXKJkLx ")+JS L*]tWoS_6SYc_Cl_]*FVyH^;)#ݔ{Kd2.N l܄Ò1tq߾ xЏ YWxcxo,T֕J<ŹW 37QdgaE4>![v|8G1(z* DF\|,72gV_zAژWK\=VV)أgC,UMiv r-(\XP{ptt%wyD50u@Ap+𔆱3);]WM&jM5궊s\.ZyG6P~;du5}E9cSWsE Sܝ!0̹G]߶]͜f-Y}_ FpjN0>U)ؗ/q!{G "iXe{g(UY9Ѥ>*QICO+QvuuF2pXv:R]+-bb S%1Sd8ٙ9>iFJ s&K9׏v }h2_#!T q6.F:1d'۶K 1E:u–:vٹ׊3%IXn`3倛a&r ֆfD@#`WFU#Z1{fUPfZ-곂*6;,ߞhky}?w5GtW3x)P+d*z#K[ 9n=ZON$UvąVf4,ɼj!nuܣz @`oRhO^(Iwȷ^o]%I `(-8Bl@gTevZfkY"Z%]'~qn,lo|ׇb? ^:Ddns} ]Z]T9&|O4B =!.PMۆ,,P8oH9# CC,%;ӷzIUˉnn~uI@wiqk972MW|c#x)ރggVߣGz}US}_Eu+{b~b3&Gk|P123ӌ$2A0jm &y|x65DZaOTntƬ rƳݯ& \`z/k>ZrݢíW #80[y]_wQclPn|+|բ6?#XDS (/JEL`!>>REh;tZ}L'ɫ}BgFmjȵ{ :Lmm(/wB.>^^% bi1&V$;.A {4=&BuvŌH~!_kv 3U6\dg9{Y[CDRWKXFw:2nreR.kZsWzAYq`1:&?mQ>:rɸ!2 VY)6 Ў>QCHߩp7]=ߠvgrajX= `hMИ'6!D M^_u|S( Q=jG DN(9@q]rj}ߙ˱8ŮLN>AKSG]7އkoƋeիxAAlbOY{q[Wɼa^.+`ZdU0a MLlP-{FmcL%mIka1 2]OА>bK-ĤaFp֘-C\Ll@+IPk> go+ӕP -%IOߧKO Ljy4 WekYʯH8!Lj-&vadKcfWT%</:Up`_/>$:PR~Յ&V\샼dDW(ضN `%K$o]FuFIS`]z5#ԛ)wIf*SuQ@cbU6󫕣\齮_"F JOv߆WVO:j}Lv Z7RUHհee5zG,iO>.Nn޼Qxnd3A-fC=ӄy؁ LѪkG}i֎3̶;صF99Ska 7}Ĉq]h-.bZlYĂ&+[Z_I_kiVNGZʍZ:j(Wn XgJD*.}rjv\M"qhH6L j9jA74W($V]}0[Mb ؏{vj )ۧLs@(vi@&g<)EI;ܩE-XTYD{5nge2U/뇼 R9k{infqIi=H=  O(܆O? !o.&\LCJ^6 pgՊ@<Pv.lAsLQ!p<?VVǽ_ 0kG%%-7J!m>̯{)Wa;#Pb~`V!~PIrՎ7Q~ hkKTQO;ݶ7S/H`( }Ľ u?cmtk ե)>^ʈ}!EWLn] e]kT2kU+.oy!W:YuM:'ǛSNO@ 䏬YmX,3lhQgU@FVϠVfH A{țbEubcv$iCD W?C&kqL7+Tx3m8z刅/ftrfJ^y9sD"ےzBkS2COWNw_ A8'+TW*ۛg"z+,xD~.J R+17Ǜx_(QWW*AvOY؆o${vPfNХOqw{oGnMC .6l*'G*)-ap$l>͏Oڷ9{$ Q E ]870\]U 4~ \`#ۧeDI > >"`O^Lx1Ls:߰;bjXYgv`GmF <Iܣw[T~p)eXx.f+*OY>jJոH($]7/o)Sto`iF.na75ۤPj0c m+;%UY;/K!!65;5qJ閑& F >" FTe^1槺Wp.8y'%/&cuL\M ;G{& *>}UO]> })7uƤf*w;; qL5J0ʼ}Ak}OR`zmx }@ohCF3qI q/u;迺*VW.M`r@gJC}+嬯r!@֋cCC#DL6t{CՅMr3FW|ʯoE-r=S ď4 I,h]z1 i&6Hjf  n:OG Ru^,cMq@bLWOݬFSӍ*NoyLg"XV K Qέ,HnS0=Ψxͷ辍Н{f,uX61a=½[tG1:{#R CA@0M:vݏ;u =:R 4M@Qe#h?yW?~T.xx .8@_c=sN)g;>DGF!g4@}Hj61 A a}Io"y~G3ew+vxB0ڹ!lΩk y>bÖv ?QvKg?DuS#ުL+޵tbV12#-/M HR[5m6z$aǻIX)mʫɸFBL2l аMFBYSp ޙsE*Zӆ _׶wH@O w1·yߖӆZ9e{I %~r@l6_09x}`D~ #X݃ֆZ Y?~0D19Z5zE\05VB T v_ Q|̒WbHoƿY{zxW>[Lt0l^'ȭ#9<΂$BzO U!m~ENxʆ2颹̊b2 \r h=6g$]U M]UVng~b>Q:A>O(:ϱN7G=FsRrtК9q XuʯTd:\HtC.Ci(7`?dVKKT4*_0hI<7Ak  HmŔ0"ԃ( [}Ҩjp*a t~lИ*GM9م!K3i{Bܸ+^ٷzwD:}%ns/F7Xi\f&jG ꢝ o2ߚ.\ +F,QYt=D2fݞuռ@ U!0%;Ez`n`4(2_ m9H(UP^Hſ J8_(GGH?%H5^_PzQo!{fbN|.VQKMPo uǭW\:K ks8J5,D&iHʤk?-k%(8{5QCuL cJZM& ?5쳩euczu>-a,Hqiqk >ws \65X4"O|QDxXBiD>1oe63VEr [x-UO5py(tԦz[ݶ3"^|Ck%K>輫# b $Chv>$R-jW Zɯ7\ehmPq-<{EW,ViR<]WEØz1GYxB -ΤY qSLoJ9WovbqńnJԾ'\ۃ)0QFiՅa* h)fcv[9&xsL5'f >LF&Ӈ$c4 @sNhSJtv8¼5YK(`դ``]((sqPqU4JJ _ 搎O|Ŭ*;ېt,vMqKHx Sm50,>2gVSe?Aƚ7*[\{Tw9M|f 7èf;֔Po'/B*'EX>yt( e/ww8貚#Db*54Xl"Dtl$5^CBZ} 0 ͢[LG8ѡOABLg8˜@dub݌({#w%eBnej|C((_Oň=$ow |~Td*m]0k(4 gvap$ 4Kd`Q̹TB0[ŷf{@:(GJaF}ŻƜ9/N5Ps SJ"2*volfrXah!( ,{ ]avQ3OnlhoXD4 U=\aI$ۭ6lir_qηU' vzb^cG$Lv2+@K)o~oK7Q G&ǕTPе>E^!.+{Yy77: Gȋܫm.A4oG7W<8|!c.6jEs w Q/=8Lmg9|zw*)j_qI0"؁->H ϥ:BmHpTɛw}FPqiK@q/)V+z yOd6S'DŽV2r i7 [Ѱ45MRMoIe }hկ֨[r7KY=qa#)o؇p2%QeF]94¹wlD@xei߀۔j*%Zad.#2nZvmVlɲ9W5J$58!baT\"0s2L9XT(Xiv SP'G&j_IbF!] ؃yt0G;7M-OAKytDˈghҬ_#5u%u$s aF`7IUxN<\({{ ɱ?T3 !s{o R K8CGwPHVF*U@ `86ZޕT\I"-QXW ";.w];lPRA+?4'w}2Uu":5%4q+,{w[!}R`{,IGP7.,"m.XI=mPmkz(lܗ5Gu,X(hF Cqif q A̲2KzTB _IIjNhyo9 5#Tc뿖֏[SVR]˻~!Gn][;||lUWLG"I:G/IagȺVS^czt 5PH׻{,K/% ^Gx":[ }䋜GBv2ة1lR^ ya{dlsS$S킼Py?Ą9:rhAǯĂ7:DG{q/ԍvWLߋs N`< 2`"0[1:^VZWBԖ֚4)gZraH,oW g9R==sz њPwd*cٿ`sP vO a^Jw fO &7cGTktuEt14dlCǔR7RWu(X y;`Y/.nl;1 ?jm[1lc+j+N" -Xaq qv[D`i>=O|+[΢נCƯaI o덙iõ"7 0ؘf:(7.Ҋbq,&`9#:ص:%}icA!5bC_j2 .0uyY3 +|/mYV){FEfE%UjqUⴈOaN3nHr`kÊ)>Y<؃lTf_/,A6+I}OyP8+ͧfa[!&YpQ$ԵͿP45P؈uEyF| ~VM,ćм[/mWU&n:R]6hrdZ[xW krʸ(=y.`^X*m&gJp2t#蕋HD,q"-o-J ,7tt|{5CU&ITHс3rB8P79v Q}ՙRk'N_,̉4RCJ#E1{4_"0,[jۉ K5L@Y W`Hgk TKYވ_5!;v>ik5Fin^ߙyF+-Ah:o#J8 Y̓6JA cOh^OO120DE$~]q oK&MTr6!Rj׶{%u~  UxLY ?iq -[=&EL^L^<:wS$UP%,恁IPᾦ#[SAehz|Rľڱ1*f5oR^UdH+ݮԸ̌r\uM~")8 mzfk`LkԤ!nܶcGu*^. BaᴢF)/:{%i q9ZO9%D]HJ/HEX_[<P%Fv`(ZU>\ k|&3:*s*bQ[T[/u)d84]iK]"Yi(7po2]W]]k00EGՉ`j652L4z@idǍ',(k  |j{-ur-Z ?\Am׭a )EB'`h cg2&FQ Њr 徔N>4>R'JWxVLCFIl>L.]8E' Ҷ.o 57b2Bd Ṙf&%FdLPV%GyoAYKBG9hrĕ[;ٕƕ9Φb3fTږ ʃ& u/yZafol&.0M>\]6djJuu{S)9e0r.G2 )~X V ) G23&:4Tބ`|YL ssA%i/CYOц}S/?@PiB)؍~lգ*ĕ l*>_a&j/e;I+^cs%w-5϶_kإhD|,Żޕd^BOگRrT瑹%]`{&"%9bEžc1,<Ȣ6^_*N-A#}г3>c̎3JWG4[,e?S؋K8f,O'l>)CՌ֙Kb/y1tfhe6c=9۫r-c2?7 u. W>eE[8$9?ywGRlMsC8YGܯj3Ȫ嫟9>wg+ T!PGՋNÅHdTvD- ),7i6<" !y=}_͍JD0WM87b; eMt 5!O9ŏ)EvXԃS2ImZ9D.7knΙP7Ŵp)ove #:UJclUN wTݩ`qbO@i5b_Lf7w˴s*,%NK^P/pZ#&+(^ڔj'\)qg9 @wLz: 5>)jLn ;Lk Sࢱ>a(ɢ&{X:2nc]DZ>E؈!h0ܕƙ(Zpn.)%YzBj"$馅| ]lŴ7lEvf2,J ]A!{xKRt,Ư&[CA`7)".'۱3͹iU"0 ;]n3z30mƟKћV'oGmB"ݬ:+?fZ;IS1~ö >fGg?2bNsYrM #Uq-a ]$ \kl\xZ'X5~,2?XYnEg17yU.* ^p\&z&oLlBӜ>R /BIHfǎ031Jm R[2͇\ I4I hM?'4@ChUGtFȕ ţ^p&Ph5HK&93[ɌQ[6^wHSeFH1vΠ˷,}@1n7isvGզl˔mo0DnDo2_" n, wUnwXi ;G-Xl"ng6{W &AEŏtDoa!M$և(Uz"s?b"PgGv8.ϋV-g1 қa+& }fQ22fVYD.KL;6GR}SRzF /(5MQB?uO7ue][gzHuV7=uǑbR:Ә=mDkT2^3zpGc|k:;(ŞPKů~oQCu7=)-^raaғ`ӫ/7' c'q~p*ވU4~r} -َ$Ӟ#x> W8l,c6>ńZJ)ą"`eNҟ1z2`ӓq*l툋HmR X5C]KU2Cv@RԙYvj>&wi%*Bu[?"O<ړZ( ,=O-ƽFIH׼iqJ޳ /@k%aQ.q;I)Ĉ|r0ۃd"_0-}3~csuvv@;rԝbQZL3g#†;{!P(`6|ÈzWOr6pxK)5aTXEJ+8?qZG)rƟL Lzc toE$Wi۹})sv!,om#_H/9ڱh<~Zt܂&sLσ4,"=?薯 1<|1Mm+Bl̀k Hd?"  F3V ~p z?%"%!~& D۹5zyFqɘq%2b:9Djh|O+u|>h @ߧBPu}Njԙx3OO u4~)Ͼ-Q~F+#::79B RR%F"p>䰅rrӻsPk\bw{/ G`IkXpOT+g%쨪6g^\Ot謤FǬHSF6~G,P՝K7Q[&h7.9!>Oњ8]=sϕq$HnvAn/GGS@v"&igR yMS>0K x3{IE%$]mhzM_*=#ϑCtl@ҘASCq~]%/ȕmW%`mtNei=aLwu̿{i{LݰԽR߹>i[ۘ.\l0\|`;۪K.%0˝p;^BH#=;t{e;۲bńg=.ܳER;ӬzMJJrYw]b&R|7O|/,q#wx~?G_1ݷɵ[W3UW1AAx4=&7\C7S~_ƒ]m>Kdż,Y?V/ G?}ܯkT7hþ K[4yA4q;@cl oXCGM }(Re*@# ^E)`{a*NQg3$Z̙~)8sܿIIJK]mc`9jE"\U~ӷ<C>ςep$>8 L#L jϡE?~=-p]pqsN@..%o+N9~Qk NBC%bƂ4ӗ'x`p?ٰ+xw2+%:Ϡ&;BrSPs13n듚)m D GQ&Ǖ'V`(X J^߷Ou2:?Ŭ$>(v5vXf*e9R~'J;׳hmز49}sdt$RHx63- k p+&WL󖺊,6G߫$FH toPR1iIaR ;F^Ou 3zJuQ-0mMb:egg]ѯ#L2P՝ybdVeۤGm&e-SQt) > @4vDQ'eO\ldžqZSYr.U1./3aL-A=a ɢVeW2^jɣʢnz͉uL087^Ej)jap܍kO$X8@6GԠxdmqJ'Wi5H}>B+ 37NP,ףQy#Y{S½6j|t{GdTsJ!c+dT-8ԝFu Sja]+^y@~eko86;JIvFjTh@1Eend7^ E^~\atxhNJJeaEvN>8@EXVP IXiIsS9eqwfW~F \h G+jmvcI%@Ph̛dEu>.Pyd%}nt[%1{@<|V={1}hea`Ç:(Tt^}- _Fҩ-zsT 42?A+u3lM+蛈j(Wx2! 'v Y("j)werX"VX־m%zd-SP̦` dBᗟc)NX>CG/l~RWkZ1{Ԣ2ikC b?C eַ7YNnIY'ibЄb}9&-un<$ d?Ri1*ͧc9t5YqK!Iu^ް)҂&$~h_- -B^&uϮ65$ij@0)?rqR,su5KeV#g!L6oʝLqje%KWhD'EiO9z+З/$_u(n*VBa;a6! 3rC8ut2%8»H⬜0QEC&+?b2uSCvԽ޶X_-M6ND^wM G{ NZ}/6>̷}gCcjo y8tT "iX`4 ~K&6SOժ\벋>%j,[N wCA/KqIx.H03TH^X1ǢEfJS2džt TD'@!Pt'ʺxWsX]q/5Mx#Yh RJI~ b! Ԫ->k߯Ɪy@ڂd3 [tYOWHW8a "Ի$ʂu4ԌpB :9#T[pv:篜6` = e-z&껃mݰaZ3T#pkgnA3(^0Ø=qp;9/FcQ2@ɂ(Z6IkVqVXi|W; AnV-Y] m;kUI1V-@(T;xĽNۯxGDWoe'8|Y?qi \.k6@i^WQkXkVi@Yֳ&~CogB ~9 kaqqŶp~t)m-TeІԈ_ (6)'4!XB572hǦk \Yuv(KH&꺈R|6Ul@ܗ; O:W05qk#U3g|zwLZIƝRj?@`\6Q~aHưPV6v5Cke,sĭ_`Hбb2MԴ?p>$]9U&tzDem'im5z_`Oڋ @V^v ^Ήm#eiU{pPΎYG`G.qdڹEpkqlOBQ^l}dNcYKnAu.>.aD=g˳{ǯz`p]82NT,wu[Mm`/Y0g:lrdLp>v"Za8drRs6Zgr`9|A> AN- z;{!sދ~v&<=20.@-/ i :[IF$SSʲT`_S#?] _i J:t5R qJhZ:@z#]|-bb9bWzchC#>=xyX[ wE:nl )#~p($7a \enoJw!-We)k?ii Z De5v6? ZdJ:0A$pwf(Ah%XU4l9׊Fj.WyWMDE91)$]+0m.>~5Kgƹ\vBɤm8bDE~)w[@+ 5n~d;0q. ' Td"Q L{,LXb+o\Y.`cAw639hL\a~]ؕ9X]is޼ g$|P%c;nb$ճ&V gzsU$ 8K.-+v̘3wn?Or3TPSԴ/t'Ja;fLrz154&MΰzzMK !S#}ΉoAl34Et{=!waUs[Kq"fPNJm\vfP*݂Bo粌bpM)+xu;+٩19rT x *>zn}pndA+>dvnF2s9_IPzZS{IPzD?P)q`[D!&Νwj;HTKNyp:ɻ^=kC2O}Hfl`O#OZNfNu(=Qkh$t&mgfSM_ůΓǐl&zi؂ 'Ys6.u{!)P/Wٸ#8*jo@C 35`x/<֧Mߒ۳?>p&>qmYM-, .UWվ"Es.\FDiE_`DAsOkH6WH$qϰvߗ=;ԛ| dܒ9^}o6TC«-('B5y+n|͍֦3&jJ4.CE btN6xR{T61șA%bsO ɑW;Pd)T%Epܤ+P5VGҫ L&Ͻ^((c6a7072Јt 7 5KG Z@2SqAnR 0=OZf%=4񛮯Άk\)ߖA{q JKͦ?N8&JvtTA*Z!JPA5-0j284v#8.MuOrSS>lxV2fR͖SւnXQBlx)򆉬[|=0؎Cgp=&򥳢51yda\|uRsk~*:PˌO Fb*LHAy_,7qٗ/2 ;*}"sP40NٯV_{}o%cT>*qgVNloDBmlGHp^屽SKkl蔽-]q`]AE|M0%kT|?]@=C/vl?\ !P}t-hA9cǴOE،m;6s0tn׾s&'X>Y>ڔQ ]2= z_z\׏W ##շe%XY_F걁VxAؐr;7u-bTNn'ӦΞƇ\$&9 $5Hۘ;P"S2tWjI8]pX\x4mu:Uu-)ɇ@u<}?ْFw}f>9=2u+J:ŞF湜ٍD'^!!=N59LW`zybGxIyTF}o2r!GHb}{Z,=6ugv_쇻(5ez Qn^G(Eܺo} Hy9/{0#lInsِE8&sژ[B[c;wx8 !%cz6b6*t'AuIAiBXI'd-8)HW)ID7GpmchďmVet}DSvߎ@+&u8"N̪,D] Ѣ ^BKF?L"6EhȤǤ,n+a񁽦=~vL![k %| ` HzXƕS m 9zzZGT$r)gܗzvma2,x%~ES5{ ppGZ\S;t.-1%5NA_Jgڭlf6a,$ +$?w9 ƥ2+,un{2 R:FNkCcM:4H>ְ '4]hWzꩆsk,Brv uk ][8>UdR(r Gtbn*J@p#* orʶ"^RiVzˈQy "0t#MI#*!N!:Yvp9 8D3齻~ {C&rD 2˥65{ Xs}36[V8?Jx%ޘܰ -hʒq4;=_)VSm l7C 1j*]ߴ V1o vr%QH0MM(YvD|́/ث@^Ȗ;f?#CKSr|;1=,ttQOlЇ'ϧ14 Оaԣ!,6C1yք'躈6GwC܏Ӝ<3N-$t6- t3ӔL5f I]VEL b 7aHyr,=lm8p D)X.=:o:sq{t[! ,_sk^xK!BzO#'Q7RYFeoάD- Z%%o! ̼֧4z3$FA6Y;V0Be,;-|k`8[G{09@khK2F灝}a؏`qҊdvbo12@IB`,XD) $̱J&YFԵJUNTC$!r!R6ҧ5$GFHoM:h-E8Os9Ȇ(&NS=1% }{繽ֈ)bO?+ivdR&E ;^(o2s L(Cog1P*lDD_+f?U2.6\X^%b".ěةd9PGP_9o~iDٽZf6Pdu7&pLq|Coo`Ypm9 d"RC_q:C. Bcf~)MTx7#y1zҎ֑=8s:,7[L=Kf}g @IbQM#Ftp3<"=>Z^cx2$3qFƓdp^".KMG#{#gjW6}.Vf'O^Ki&1|v.6F= jQtOL zK~V{70j3e$ mTu<pT:bm,xZ[5P\rۆJ9eM"/Y e= 2V뜬D@ :S0Z;yFgQO<ؿlQШ"kC00/( kz ,Oחs>^$Z+ɷ;A s`XA:94;xݘ"ogw#_XwsŽO0Y!]|g(ֵy$WF<4'QTfNc+!?ax[`_Հ9-5|FB TAv6_TV^^meaALd쩅313Ῐ~1oŎAZ%ƒ_rX7A*Es2/Dy}<.5~tW`0}Y@\s (qV"x7X!?o!1"0_E3>ڰ&J9POE:FM;qG CvƝ1U}Vf%V lrGzz8p#ҏ/+ŵ>(hW&O/j҃_[0+Xq.<:cT6 ͯwi!֣2~v[.>>-*>4vCE8Z}3w.kNޫ_V g/*m ףX)GxIq.E6( ґxau}Oަç7_ΡHEcoh|xW646t rػ@,$s΍INf_{Ѧ@o%n&ʤ-+gNָ/1ToB01 5SOWO /*0|:Tjڴ0h) i䫌AZݲcI}ӡ#vnЙ^ZUMFH9]|:x0{v=8)1yl%%|̾Pf"5_q?5-}ǀmV9Fr\>Éx5pTN"r/n\$N>&ч29Ѷ͠Zn(`v'BTġ#z5s}> S ͋y cDW3F1xcq#DD[pO̅ rǯYj5ջQ8[7HnR`qC6Ye7`g3e@\Mǃ=ok>͆<x ?1 N:kTrgYl*@YNq`~_~ԡvaXWY}j#f1D[./_t"?#M1Y]$;m) @v;ǝ%6ZVEQg`ԇ8m\@|9۝+m; < 8>5q %2QLh>AWƒTȂ$HOd`- h\ĥMU*V(Z9隝o^&Uۑb$_V PN}N(\yb=,~?Cgk@+M!_ǥ'<:ԙrFE}ٌ&^-ٜЂm}'f_,S9+^DU9=әd)]~P%ʅƓ70NxWkccm:k w\M33=ͭ!, JH(:MKN,I xGYnE,!&/cz&̕Na+2 k>ţŊw[(I} 7a[[p@.<2ǂ86DTUא 1&|RKoӧ!dJҭu(I]n!'Ǖ"3ȡ<#1¢2b quVǽW<$Nķd(Hk}w4HMr}xmq^!G2&&9]u+NĽwRYe|ކj,eQ^~r[3=mz%-3h*fh$~-;Qҳc3cYD'z"K~]_[^1H6cE w>|4^rXun GYFP%dg3P ]pR -&ۥѱ7D(5{^;\3 & `gl-*,u>h`׽p))d83(A G:appk#,>kah5 ?=Y`͖SFˡ3Nx%56Q8ތ9If/{{; EےNuv$H͗A/y kBiDs<#|\T)Oxk6LvmbjLL9pDQgYWG"0v48tE6 W0m&t4[ BK>;-Cad8AK;, q1A4A޺}Na{6w+~,.iu  V3XBVQ@18|v',T]ƌaNc">31 UAB]c#VsaPptV#اnv2u4ubRؠDԱhmTjd|$kQع Ȋ#ҳs mX2CT fIXM_z/ MmCniG;z$.e䭃y ?4QKogYFDᧉaiڙ ,hV oXLuLеPTedw-0 B^/X#wl09dT+@rFU]qr1xuڦwNPf.v.Ґk0Z«}T|2GVuEQ}jN M}q+iuaZ #!|]k"sV'£^W4\1RC CFYo)=\VH"}1"UDS%6Ю+%J wiCĶ6xpC qq'n]'ɭ-]ڬ}%nE.]UPح)=c.x'w c8R\-xAy_[-u7!.ta$0ԇN,- #R5"bj LE&/?Dy,'?B؉xMI9kvBPP+F6i,a9@; +?\B>OS;|w-">+!y!:łY;t$|#n;ZAĹc32}=m( |}1ZdX45rpGJ[vokBIq rICx24v;2bP;|^;/S$Otdkh_Dg;ʭDH1[·87deF&kY_E|p}ch^vd[#iΛV^ˬRV6$'0\܂\+~=ús|Dy"T)%8om6xEjw21qpO?52T,^/VH,y/7=E¤FᴉGS(#ډm)uxIn%b Ӿ|A3$UQY\qZxBBt05uR9ĭ)bhi_M ܛzmלn(1W)Z\NrD!לܮz5I!-@S+5yH3&a8Uo=,' 򏦬5.4w_tК8 V]}mj 45і|͆썽4I*LZWD}og%;6n%U&RMxH8Q8e5 %a{u9{tY 7ᕶB8rGuY*WZQ 3 q[~$h*@zէ\L{kvxr5oq𨱎Q԰Uudc?`Phxw&bf,oj`VYQoئoY* ,w}qEѱ` W,$ eMoB8$cIcF RH8(U(2MY2pGzm Yo߇y5?nزx,y1qtoEY?"كwGєN5PRbv>3zb,D ?x3rwcPAm:s8+2,M3o>if)r[!GBt6ҧ#NHꋑ!Dc|~+WRgǜwk8XPZxRS*aD>ѳ"U΍y sbmrdiH;$oZ'UT\RnHA9&>e\(O'+`kSN]t*p~;dä"<}0 3EW[Q)ෑ^J*qV?7{Gۼ/Ϯ Co'^3Q rP7D:+1 (tIspQk iypȁ"K)8 :'+7Z^T6Hœ2Ef#.auyFe7xc^Щ>ռ">&?/EFF'Iu,W?,Lg *۔x7RLGצSiU@esXW:*ۅ?Y˕1w^W&D>59qւPH`Ψ-916' /Nv?@2V/'Tno_`@iTEg4l_'l8܊# >QQ3&TZOUH /YA$@<(Ch* w96Y7=y.qBL_4ϦIh[0j'mz`t0mI/:wZp1݌ U`z> 5_=w8?Vk,L>>TvV|OV`imp?kM-bpKFJ}ʓ 22'qMsj2ʎxz_o#pM]]tSs^[mwśL,~ g9C1*,):, if3KW$RJK"I;4>گ^r? ^n4rsvpZW`I82\mLBy@?ub3YUz (cN[rN48)^0I6Tt5ie^{{r $4$u67H35'uQ}|?YaCƑ}Mݨ\ :hWa\F/MwD1 VdH'B*ʼnW?aYFE Kd>g4tnᘺmYL=NW>+W#= )R]{;J0ɌvNCnNЮsX׺VKXpá9C[V¥Mq°NY| EP)zsE#:)n[1s~zssAFAXGǕmtE;Wi;< A0/q 9 ͜ޢ{3t IҐOۿ;#9 d+"@5;/dTʼnY)*OrZ^KR?Jp@cglWZGsM0^sDQof}zbE7LGg*3yrg  f} wE\|&atA- \:iz:sߠf"`{7]T UG( UH##oLԜh$9"˚[%a&٧E. D/?RiiTC1>zp@fGY7R0,-p]نZ^G{뒩CqV'm!u <&z,$вyl ˜bS0| P(I?c_fiHvwWxWⅵSEUw5hῢUFbVb_%OE1=G>6OX5pF P?/^r א{ݼdT\V59 =AǑ 1c0%́iF-|{ EN|;4F+W&^غF-'Ht..W8Z/]u/X W5/zX\Hh:^,YstC|V8EBu& Ls 7c{)=Nab;(GaY1I>A bL 0|}RI2ѧszw H@yn*ɸ(ح88M8ObL亲P$!;/eTP;0ĥ5s9|/(3Yhewћ`i67ŷIXKOwN[~YyEO慭  R5]\ZRVFd<[ ]rHA|~dJF9gU8&V܈q\YM&gcB+ -KԼ-CICrKK>]N:F v_֕EČ˦d, Ņ*;i)Bb/Ek7v:Few.И`vJ*KpU$V l +byzT ?Ho2kAK% ?j2L])L#I)ϋ ~BoAN3j[f ^?̨ inYƁQa &ೌ#'S~. BB%g˩t]B_ KκBYӛ(rSdh%Vͳ`w Wq*zQVC$ *~nd@FzM2f%" LDRVsnwfv<2fUYIOE,(Տ%o25RȒC':|9;ܸ`e4w6{}tTŧ/#boZѭU+d82u0 v+a&$w= G*dP@ ?יl\LsD):Ђle~2@FfrRsIBމ_{(^QƄk#[f#Q4ǞoM# }O9Ke+oh-% %;e<.:XjGY]x2e=5Vz0뇏{6%83ɯESj%w_طShn ECĐG /NNDf8\y N '1LPlOqg]s̒7++Y;7˹ o *2a=ؓI;Ӊ겲eև T[`ʼh:TV*b&vm@#&+Kqk”\CU lv1 Bs*1w!Œt|بS<`Zw*?*:7<'aܢ:n׾pm;GztVT`a=q_ORw*0V$"~)[N12$rO6b1I2O0-HO b39!ULwA_?=< (3j7$ stGcdrB܄gbx$ƫ8v>w{L`“W0zoŮ8N{; k9L0m?#$\Z1o1OaQ:E .pM:*r D1n042E.5 `BWI['hPc?|7I.;^>βܯZ0:ㅚxm@F)oP(D_54j9)Qa}ԃv?"\%Fi' NM{gIwЙk& j)CIH1FEЁ L0I14b3 kK67ҐD\T!& xB 8Wᾂ5!b~r^(ʓfDnN]pvܯ$6)07= 1o Xxy9 R@xqcܘӏBm*h;NէMtt}>a;l~lekP ;dء[w"oԷ-ի}Kob \@:vn oA.l"3§Dx8}uO>-eLDinjVb>GTX}I@ R{ AeW5FUL=Q,lw^]'̣54%Ғ mZO+Z0%ھψ (>y4**k|EKƲK*y.7A^xy4Ɔ!kyd5ؑ_r&`;'=$G9swC[5N[?s`e4x*N/eş(?3YZqgqae?`%%tk>,"t#D-ܺßѯkCeIZ}eN:NETbba=C'&}@.RxV0Z0˱0xͦdw~$}ߔaAO]utM^ {i]$uS:̪m/;*m 2/!=1ςLܠ"T{ I/rٺ pUk @!+Z_Re&aeҌsK̵#GAq<} {~eNu3u\9%(#[Z8!,|fL"6Sr”fL6 ;6 O./AU;f%)lRN\?D͒}*4+QyAut4Q)xXWۼ,06қf۳ kk^^z܂է``[JmDs (\Lf^̛Δ y:23gڠB |B V?7AJ[e`@I8;Ҥ;@MrX0[86غ`/T0`&X7qRQَF&R ] ]կl!U)BW3N@'9ƈ33-VjCT-W6?d7+>,F._j[$Dz S9=rIOy/vM/^_nFSGĩ?b찐oքL H\Cm0\C[(ߣv|YP{2ȝ|Dze!a@>ӉPph.pH^\=-z_ɏ3Hk#@WԌ狇E&B$N9ț[s~no NR:gRub@:tCz D5W.}x`נ =i'i-1FwQ5}z(JP-BwAEj,_Ay@Yl6/͘fXj2@຃-zhG]P949|_wAWq,b/pN 8mENiU;-^=gQD[$%k}:9JB!qs <0ѯĢ&,CD{h\=CW&hכ51>+wmówq_J_4}?D⽏ )`~AQ屿`E9چȬrXmu\r]Pl^Q3޾3jj6!^{'6L-PL \br&$ 32{zw;&~f&NurP .2}Rӯ~:/?ƙ"Ͼj^[ UY5ĉ]c>mRMf14FkNXG`2DhhB!گ1N|}w- /f CATٝᖣִ3—;[+ov3¤J;D*YfRS/;\/L1ޣ%#6ڭq8 tS &p/Cd6QTWf/:!w9gCm? gTz !E0.i ^yF6k¾1S~+qu87A0cpvT(e߸"];/7gxV[[SRܩo={ħwl %FLKmЏq]rd x\yaT3QII`۾u1}Xc?=g(.L5 <uN."Ll {+w@~M;}lѲyҴJོ5j 6sk;}^f1P=u$7 Y<*GW?R~Rzo7ءM9lP Bա+0NV3#@F9%'Tx- BN@a-o:.%yydr"O00lA+V"~8kcQbKTfur1c3n[%f.X'Թ׶cǣ  B9S >8x"m#k%yxr/p@(1hXǭd ~I+9wdV AOvHߋy/ 6d6EQ,zQw kk;]Z Č-x~[ѵBhŏ9S ;>\;XE^cX|؊[ųGu4] !#Ąj" "I-Wv=E\9QbI 屏g*?tU[!x\&.<]y[D`AF3(4#aA{\+qi* k+OmFpQbNkZ=>p~ w q("d N@s,s_ό EOrJ+ӒH>1O,z]OD/p6ևklh1RwdC#/X3a6q'sX>/G*>I rcU:JNFp!-C@vs*B`"?,ߤp%T[pmsI^/+%'YεQ*E~d 0Nd""??߃DF3!5/yuwL]Dꓰpk$Po&Bj/ւ6<3̽S\{ &#ʮu0V$%-rYv>N3ĮĚ-{Bo=e8}KpSoqU 5h9aQ||L!(f/7Ҳh */|G[6Zu1265NXcIP<驊+P=0#H1Lvx ~6`r3t8/j;dH3էGS}@8aqt$#@͟14p2ŭE¯5cvW752]1[fvaLSaoe !,A| cМE͏ {'^#}i˘*lӺ0_N9q5|0X.Nsp 5<,\/ƕx 0:re9$$pS5gy:򏓜_ VrVZqc6Y]Gк=qk-mыkK2ueA-|dL#Fe7K.{:PzOxIAxU抄5qf7U~TdyrS1e)̩s<h/"AOtoڴTxK-np/$'Ej) ,W]{ZKQKȔ^24L0X^6R~Wxd*}bܐԒ{|0OS#0~^}ơ)tt `tSbBTu(Oc)\IYagicDZW>[k37n!ZcLF2Rζ$X9^ 4 ޶x#݉]+#&#JKa_oPZ+826Z;N&Vǐڴ\Z42B:A9X0XTBe[8L|* {}Ύ C=CWbnmбw%Jbɪ,۳;^v/GFHd]$wR-hon5szn! ׏E7n=\[^75 ;$zEJ@oR))WI{=r&'TDK9gqi,ɜW&Wnƣͬ],6z% TQF­nR s5Q٥·ܐHi1n .9 jV@0OjG%.=oXQ8όag+ ?uƻ& UբK\TE讓tؐ__DbTd_ RW3I`'u\>Z76*_7U{w3jK^|sSLn T$gɑ"ddԇgc:Lj$?,UHGg/ԌUO6G*3tCۦjF*Ũ輏,6=HuKS,z{K!IHjb '#8-sn۱QӭQԫh[f^v7 *eWψե2xgq.\[NI,5?銈Y1a19!7`RXѬ9)oҤ ר믬>~` QϺzB#^q4K\c1>b%K1 Yxa ,R+f6\AH")p׋/"+$Ah Q*}툣I/̌Ymz; MCŔ>!*G4 fs& tV@L fcXf;#`DdjvqdD/аN(;ޑ )7u*{̦wJXq dF&y_D]`g~PDSo$=P"08 _ Nw1O۹K.{,q /+Ү0pd@FׇWͤ^eM$Ilsbc;,9u6aa$!bhg~LE6Gxy`5O< pD`. ͕HF&)#q3)eoD(9xʺ̓AY@Qq2)2idӺߔ2 ]п_߸4f=s}3KpTz(?*, =9;BWaV;9fv ܘvבUT#gLC} Y֘G7/,$= kVkҎ8?Uh9[ NpD^h?,aC_(H19"X_^HLon^Bax^uTI[Aΰ`Dn-wFN&Rǯ21(ΘQ$VF7w+{c޵g/?üb]TZ炔|Ȉ ܹ45VM+rcu\-דD 偬&bk+ OllEn`b̶Q#ҝ:8k=h_SzW/ҵ@`TݍԎYbC7.'IYŰ"j"#FJ~,ZYYgDgpkT ^ }_Y@ֆYn~,|fLڅ`Q"1Ĥf"&.Ho{T m1% LpSqk. 6?Xrd~om| sV;iyuV/ƃeQ%,Xm짒{bKj @05 `2pAe#,lt,~;s{cL [; n$x@DM֐jP0[8,=eoW`Irck5ւ곋ЈTk"#t5ҦK V "?S&*Hk^N9itE$a%H LV5;1gHcM5TJ_GTVRԈ"~$R4p蓌T(fnX]y XVLk0-/ʺHVͦB{0Z9%ݶ}@]-