python-cephfs-12.1.4+git.1502953626.155adb5253-3.3>t  DH`pY3/=„Gҝ|]|l8;|{˖hbS|iޙڡܖG&rӅ"\B7G%jVNYu!f|:$hD<G ~H9ܵҀ *&. j/Z}>T5v/`=h=ߔ[&RRMiZ̝"@G9%޳3#e:}VU,I)}1zARGm=+ 107dac8e200ca7cdb3c328b1c91812f1e1bb2dceY3/=„/Qbx =ziHRv[A%^>QWG7Vc'*kx>,6B3[|^zcl?dN`@3G:~} X{Gg: mYqO {[ i*)M)=@?d1 5 i? Xu     Lh   (8I9@I: IBFGH$I@XHYTZנ[פ\]^\bckdefluv4w x<yX z|یۙCpython-cephfs12.1.4+git.1502953626.155adb52533.3Python 2 libraries for Ceph distributed file systemThis package contains Python 2 libraries for interacting with Cephs distributed file system.Y lamb71`openSUSE Leap 42.3openSUSELGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttp://bugs.opensuse.orgDevelopment/Languages/Pythonhttp://ceph.com/linuxx86_64_h,A큤YA3Y TY TY TY TY TY 1f0a3e73e1e1e14ed1ebc18f14bc7090541f49a1c32b5d7eaef7d117030408c9b5314f7d4db011b9db8fda635246fed568b329da9893e34099c7d8ad5cb9c9403bb5a4ba518c6bf5b663e2cfc4dc5d3f61695a92b043f03f7961e1dcdca72aecrootrootrootrootrootrootrootrootrootrootrootrootrootrootceph-12.1.4+git.1502953626.155adb5253-3.3.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.1.4+git.1502953626.155adb5253-3.32.73.0.4-14.0-14.4.6-14.11.2Y@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.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.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-cephlamb71 150451296412.1.4+git.1502953626.155adb5253-3.312.1.4+git.1502953626.155adb5253-3.312.1.4+git.1502953626.155adb5253-3.3ceph_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 -gobs://build.opensuse.org/openSUSE:Maintenance:7200/openSUSE_Leap_42.3_Update/d4a3d01a6899c9cffcc14d2dd9f3bb74-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]=6c86d7f8a36b4de46a47f90a8600c11a06736ad7, strippedRPRRRRRRR:BB@H]؏rpython-rados12.1.4+git.1502953626.155adb5253-3.3?] crv(vX0ESVt*Ţy.;HҮi3mKT2탕5M] /2~6mS :g$dD ч2|lu7ddj:Afu%=cpa A*hJ7JcBX?$5pR5^CAW팠b%Ls߹+~r /F_S4eP@ 13[bQ؎ ձyDvo84)# @@ ^~`0 ^u*^JAnVӂ=:b7hñICq󆕶գI3h]- 1!v\xyWt+v}8 +Qv<\ӎ,gF%:K CՁ[F@և ;:'ڄ{;=Hge0?% %S8ۋ5՞? o:iE(r?pHk23ӿ!`mde1>mOdƉG3\ʺ7"ϺiEZRǎ*v35O11hD0evw3\ ~+McFbAtP;R,"JџskT N_h hyu-ڝhTI^mbꂼE {\o_&9XAw7œ|}ukh%Ac׬pgr1[9 )m5#roa~.nˍo\bE[{z <@B(cpzi[: F8E%_'cW+<2=&yc-"C/ z`hE.-_, s~4mHwi 6z0vwebvCQK ?+1:9 ;Æsc9$hF]k9]E锷Wtr0IT$~1TE;)/P3WSʈc~@(󨅤c?g$0/+}OWTk[ޱaS&"Q!AnLJ4!̅(0c^O`e`7mg{"&s`OOZ&Ev< TjxE$fwrlwj1yRbzyJctZӐ9O{pXM+1<=+Q!VjBYvK[iFM' p=H{BQL&8\z'@1p o }w zC- x'k@DRl 帺zNK?s|e=WΦx5f@KQ0TܷvGy_++#3?dY]RͨJa`@:s IUCoy%Bխ|.ˤҌ5^ .m7ӗ`Z;Fe arW"t6wG쭗.B]~63&!\TIQ+R.9$#ͧT~Iǁ+ yXR:ŎM0`ݩf.4Vs̜9JATlW5 wRN[?h f` ^ed"Z ]y~HeS(j19+%x~,1h|A!Ii$gkKL\\oJQbi?/JS(5a \'Mz=p7XLMu ”,7uT]m+[phUiœSC($)J+c 睾ǻ nv3~ u+H bW0IђWZ)U]tL:Vtw{ǬZR f cA3s Xm_s#Z~ڳ"A%ӻ|0#GQg)*i$j}*Wy*E8jsbҦML7y0X&s,+RZ}NIc4-N5%\+ۜR s Buz.wods|Rc#, };htQB6Q^!4kMmnġ*ݛfͩyLA?bZ^bV;HR/ jĉhdtMb鿚w9Hާ#s^p n08XAM~̥+0EI.t1 : ?u tt}u;*k|5:ՂLgu̝-S+%j5x,E˪ yrq9<8pm3[] -J?Ɯ[6  r,#>4;I r=V^kꊮCUN5M0ֿǺj ;?kLj=򨬺ͮgy+' 3Z\&xuX_ϙ5v`K;Q_XGsBC*)j:׌>b:[X=24iA}x|Ecbcg0LPD2E}2)yOgw'D¯͜,bzmte@/ *U/9[u#YLř6w?mhM&?j'k? a/l~]!S70ӥ 8`~8rSnYGcw8^N04}3鞦~MM2v^^'$x`ZC8/<*k@Tᄷľfb*):Z07W.A+)sL$ّ? vϩhCJ ,AII~.0a5.yDf]@u]8{)tJ7։gxIʬLr愡|QϜUjw(dz}pX@i{С֕NreۚK"|=/Hs%cR O1T,Yfë P>f;1+ A3MFq>gy|n ^vk`@ YY,ʁ {N"i; ѝ Y/$h\+W `MM;I˻[2!z]!0Uk%=ol̷@{yWk}VUH$)W8cFGNVi g!B$Qo8MrK\ ԦaLa@U"sD'@"w -vCا,hmd)#ݕO'NwV~e^LP@aAox0ڠH~]U[>0V9ɥa4QRܨ$]HFBհ@k~VWC)y$sFtQCI aGvջN* a$asgܼé4г13ŝ+ۊ(< ktď#<%Ari @~f(LO~3b5E]3pM 0s~UPTk|=lЕ(1< he[Z_RXXiHi)Ncb @!xVMD0=#[nsaٷ^0+8 IJnpv2dZ êX Rb^Sm٭:8T@Z3W I3NΔo|27oU}TT 3ĿoQ:5Zmɹ' :hpaR"q&rU|U}9:SCZ4S aPpOL{}9@zxm35f0۷65]S.x4K%x&euɬR5mީ<1CJ/r:JP|e܅eq+e?;D[yCH>hS ~j݂#S;4ZSu0K4<;YW2)a*: ʳV:>#"6S5x×y$N;&N0Y`p0RqDJИ5:GW)=ӒСvCG?F?+lͲ-$ dFWPt=Du,>7kwTuq㡖Nw=;Bی)%lqp~X[gc&Q0+5Ĵab4;>V3|˾wTNj",=#"xs $l[zg^W$w ez ɦ%AnF "ۦ bFY(#_@ʍU1]XaT?TseD= y ?4\u ?W+*j4ɫA<˳|x8c߫,o(?vZ` @<ې4ge` /2wQNyElPoi W v-鋪΋jzꤞO(A7 .p1ZިQcj(OħV0j)<\iTFH՝WRttÎ 2LP@#@ "S)H(|'<qgD_&@Tu1}R8xj5~:AFTҙu>*ewwP{7# `@Su~i[!XGգ5jh0FnqG6QL3U-XT ٰΚvp)*ΌbXb}иf\C 9|Ejr_6*#ީkN=Os7t>B6 c0Htխq,OxRlDs/ Bʕ#rXD#qXO^ThLHu=7Y˂<`NПD:%GjQ(r]ы +/ˬFg&kF/E&purrcD{AdhyΈl7M@ E8W0 )MݨvI=Xf|Ά6P9|R:XkG&+|2M OSO;oGXC?/n$wjhh\5.V!S)b59g@TF߻6(/.f ͑dw";~XR5<> :X@x}\Y 59?0I+քqT;s:BhJ*YH<,ɜ6RzHD!{ڡ_wm;XK Dh+%ePH n7HPM=)'+ea&EbPaF;ߡ2nQPAKBPcuH,R/c4qc$D\iK!umM; ]ʉ!9HCrHm:2K#NڪA֠2ٚW@.o?<pz\awa:/r0_f@DsцlxѩdJ"fv4oe*i<_m7tʠ 8uvx ('BiP}ɂx"3XS*KDy.KU.!ӏo1j׷'Ҁ$GA[gҒ<8i'c\7NĆ0ejXVM+4h{7K2Ckzڏ\cA)am3RZk%{*o`v(==`0eْ'_T$1$it>VV([ǚԂMR09*sgH|#q P)pΪ_~$j5ymɣRKcnNcYbl th2rSo*vYViR5RNyjLV dq#i@A;R&ѿ.jf{ LTQ3J5J@O&)5+ljMGIδؗ7er0G[!_+rTߙsY܇oKQ(P4`iѷe85~|j;jZn/` r{';_bP",043O&dd^42oa!*Y.>'"KT,Hfur_mE/2O a kvĽo=Zzy$a+xaۺfIS4Zۉ:>^e CWLI+:Gʼn ㋫Pˡ=EpYIˣE~Dxz k/-apa]s?hH۟^~IatR2!m@-uZ}G 4cZGXݛEEڑƗķ(i +qeq$r̦0󗕲Vsզ) @ e0C4^:.{ T~06nww(zmS,UzϦ|:qXot Sّi/o+Hy̧$UŷtqX>斘Yrs+z|\Kcƨ"=թegaQw!R`SRf&X{\)QX>aSvy…k2<,Z} %G|Rhԟ)(| <Ӡz|6~cpw.4quǫo 6^7ihy㩵QI>j)7r`,Oױ8c '\Df,Dggb՛H 5ԸZ\rV\! VJeNಕF~ٴ[J;v..ph@f~GXB`W&>xٵ2a[0W-WI?o e#3& !VG.m~B˶ϸ$<8$H0ƿGH!k#vWlnb)x)TDb0Is6v;:+dHEJ˟cEl)֔\ܹ#N]5]p#\j~m*׋{r)vKY0{mM%1ˁ7kfm(D8/>&DW TxF-Ov>'.ZϬ^/BVQt- pW0g&+qu;a)vjgб_JPO^xofJ0/rsC7}*G| )ejx?^toK2kEq( G=Y)6֧'AL2 :DM} dL=smbtbkED 9΄u* `Aok5;tѻ/ZQbHjU"z-w/d8l3E灛ihqSq< Q]ngI@CKLaI09"b)*k:gCoKz_ZtU0mء읞^=Y7P>/.N78{?9xx*mloR5;a 'Dmh٦. x,?wԚOs^z@5ܬRhV/.*xWؒ(1% Aoe/_1)gNv@LN}~(Wu1TĖl;H@nQS]' ^.ߪj PU]`Jf{Cj7ׯ֦Y+aȎ8 SIѣ7uUԍj.z|9+z%N;}w*ctp8}3ᓗlHX/|-O-IJHݣMnʴNzKm|O)T |NNg=u>$;gЇ{: a|rZmjX˜Y*s OƨX8.s#%^{<ɚ 9R+2C['%{&\ۻ~ߺ, fXYь !0 \^U编/zMr':*0heA풅齑C|b?: a$,^w۹Ki^\v7 K4Mk& XĮLC9xUKTR_{P-xx \tl&]tF4*mJUq_e;5іŃy:ewzD[PQtWDq]ʬee'\[w;Pv>Ԗ'ࠣߩPy>z( ;vJ >]cF"uM3qg 6gh@Ryʂb.v7[Uy<.H-F28O´KVetFZOܬmPDn)P[Ma`]" m Ss\Pz{yVh_ &%w =-@4cL&7[v';s<!s\B2OCVULI(TvU8o XTNUk},` &q&QC;KycG0j>}~ϐrlDvċMb-gw# FDA,Ⱥ%`O a˷VwUe3*]{;#ɇ=scɕLAFǠ#._tjmyE# fZ r%CKTa9هyjŘ&BM} /3V> qx=kX~ 8W*6 W6 o;q GVv[ ?K"?}R;;ރAa1I^[5bKQŕgkip Cr9%Hbm=|!j8gmcǁl+Qi[sa /z9]/D]/3ܑ#֏0x<e%Bk Oͤg0,' ZV碴[x*Ѷ#Fe&-pb Qc褶JC8ei>V[Hjl&jjr&TICULbL6JP,v.pWNhaE5OwLa Xǁ.8蓡WuiԪ(0" кaGG;G0ܥGϢZfڍ0tHV52ʴ8[9Ub$oP;O?N >xnw}519nb40ZDІQ]ROk7o}_o0vJB;Gy^KQo5`36r?h 复d` I_:,{?"|`IK2GC_(̥s*]o6sG( .HC6fZ|pQ9A}?cTk 'G1d0IȖ_/'I" 6@!6V_L'3!Kirc`.x *~%!w;Tj8#d@[ƬdTayS0s'f[R"P9퓨.es?V/y>J)= Z$X G h9bd` -I>4n6 y `#&ɭ/h 肭e!VO4l*e9AdlmNhXxu-Oǘ\IG#C*f4- 4-٨ĞP/ & (g=.捓-ݸ2f>.d^.M*E+65ijQ+^dVjh.Y7ipgdBk=_3e!j׶L1lW".FĐQa[JDO/k5_T2#O]gI&~"ry&GkL,>&3DoA[bǩ-;7N︛SbUz6muqkRFAqVg0=wVLmMadq8 O(ҙY$tլj) .G0DI}~nAV%?4ccNWѢڃg-ak2U#}/ݚcKő'9d"C@Nۄ%a7/b-wX@,;Vh@wCu5WaꋯT- omˆ8ځb(d56뎒Z(]$xB N2 OKB<4|3*AĿ-}**wJ^fy٥ujG+~@K`=`Ldgg29js]`?_T1Uϝ`qc_3Cޤ!@'޳f`'8£Nf"/nx8/[W+v zf*m\މx&9 v@a.0u4yuG4:o m^kn'FBȎp<*œDt}Rd"&{rxC&aR{ P*4O˚3RQt*宥Q0 ]XǴ7Ki6\樳xgI@rt_9h|J-ROŭ/H >Cki2gI?6@I.+-omWZ{in =_s>ٌ1UR&rA^ȩqF9?b bN/)5O~1z>/E$};a(~$&t&(]IJfbػ믻!jW?͕i4HiR NFNBɅ"HM|jaL%XoXfQ;܌쉛){p˒&ydŠSuDҴTӑh!N ׄa"R *dP{O=CI\*Hl4HZuqiB +c[u%D)ў);J\֤;sxeHԺN﫚^j@U953xTЋU#KcP :tg]wYz@<"mwp1!Ib|UX ?TpW 4@8bKjZ;taP+&pYrY- ]_<ͽTjN:AKw?!mƒ/JaGBYsBp~OJ~q U>_<ąh417{7L(M8?]#3*ngqUHFl"_PEM,/.s( 14"7|4svm/D9"/0Қ1M4gI -oq e45&6|KnߜTw3=J @[@%#Z|†)YS$)4ѡ-YL`NjY!PG 4$zCY #x+wt5F.{@GeG;*HV Dz`zoDŽT^CvUxOXB]$_cUS#NG;z=o P*?Q/uh֡h7ʀl*yz}*3uQ,& ,'ϔc}CBL~QUBº?M׏yj5vt;[%<6-9E "c H^5"H""T%S c*Z(&b* c`ËD[}]LLt'2alx`$SMBпeY<"^e'^&a&&ע|',P~YUz/[klb g-U{.FFlRتktg`dAsќa| R;nxehb"\2:~ } %&,5+`@dW" mGǽ!?o"&Snw1n!3ֺF:~-J"RWU2t{ H,6ACk[\ztjNK((n[YI o+ϛ52ב7J zBfÓ%LXvO_O~lև Nx@9ɊXvle3eQtF`$$(RgS&A2 2B96UV[?d`.rʶŠQQ( rG,\ock_-[ ]Vu[C@H8׮HB<MNR޹\qt$nbE}ej#?߾p7wryӆƞو?a^q戛20 i$N)}V7^ l} CKAUt\9Rj>W"v n~҃?M̥Qc.d&t5.{FfM03H(z*~kR./d4b\#!uQ-PyiYZ+)G8Fl l 8ʟŭ%8?;/h&VF3.P߇&U?~]K۲j}z;~# jG(.QGIQ-Cu25:XE\*x!ԡ_ Q}m=^̢# FJqQd6|cA; :\X~lD+Ȗʖ4ҥy9+#j fqx4ھtP'#[7吭{\\|)g fi.obxb LKUyi Re>%<]Ѩ+cP{p;⯟g" Twpv[ ̘=L<' iph."@Jָ֏G$4?Tz>PzrMZ*L1OʃFr žifohPi /#dH琤$Q9 3NDFת jrec&ښZ]fVy:o ^]z\Vͣ/a k\ <~ "DP( |68:!){ܛ!&GG0BS?`K XH/{/N( -s{=QfGϚY- Vhle^:Kf<.Si|Vh _)0P@Fn&g`!RmE(~oa L3DtͧhǨWh:;åj Җ䛰݈a ^@ HXx3v.sq@&q { |VoRTSl~`+!}C]Ň=i&~<[ac͏~M^ p_gԽT%jg2Yk<6L:{fH˸W >7*U4B8h[> \'˰`?Xrr8Mk9 G* _ZpLhwuUi6hp(m0ZCԄ+= (,\z@(gYmFYdvU3Ôd͖|cBL"vwXk|O]eyrN7 NL7rsTtLyu,BY@ѵ\l IEM*责Cji E~}AX#hJd|Tѵ*ĝçbxEo37@˅C+[hX42AUoMN&vkR慗 j/UAAP_W1䯕 9 N8'ed3Hׅt+|ݟ"T%8k(LZҸKxf7dPA~kt.ʛe3N}:)'!Q{->u(wR겥K%.2s#aYK5l6Pڮ /E9>.σn̜6gq,%s8*;nx)rdb-h8)Z(`;oʔRo陋^rQ!G5+d'< F<Fw,2?RoG~A^T] "99RE𯙙 >yG}c6s ðBg)pr۩n!׳_756Vƅ~lE^fYlá}"+)_)cyMI,!A%fM%lnQICH;)ӰåҒ~wY,sQwl1[ИbO4m"y΍Dc/cZwvGy`~Ε( 'hSwbjm8<Ҟ㒉"J;aS☀V#*hC|3hhcqC@auz'(;dݺ>錱o8hoEI7EỵiQ:w@hsD5aM9 ŜtB`N ^QҟL8 gI| /(- lC$ֻ Eb̟-%!"};8 X42xV(*[2?!CO\ysRdWJ_ w_ХJS)?Ej1qdi"Zb=\^ڐM+@3K[y۵D9V/.H#P9|;ޔZsSmR|.n\YR1mfFK̬Jħ¦IP큤gE>m0dg3{9u]B8hPD0.6.7uزf64Vϫm/%ڭoF1!e{,9iL:lhIM4$ cZz vkgwR1SsEd7n;U|2b+2M)$Bk=MԩA.zBu 4Fus <@ݬJܛ'ġVؼjER>w\Q^6M[bɃԀ8-̤SnoE6dWj} ܈(bykLSmϥ*n(bpeMaiRzB\(ޔ|6{ԏ`Zhq:PjZ\}p 5%Н|`X*j{uFX/?B jkF<*9jdnB02C :1^ȬDo`1&SFZ9OLl"+3\(upw^W3/w=/vDRFO ~lqH|K6](cB6V81_’A\񗀶`|+RgPޣ5gi6XUARӾ O MiL ԍfH'E5e}S7Upa9rߨnd!Jh7jC1ӻKe'W3aBfPWv&@fҶ@Ft ΰUPVr*xu\!(5VdUelt OׄB"ove3ġ mimctU\͡3Hr- 6Ġ:0jtOCN3iLS H޽=b}#@-ļa'pU܀d$ 6 F}ꎹ 3"ȡ<{Y厺2[< 6#}}-k=%'GBn!"Xb3l\|+As ׀Sg5!=1F/đR.R&EtGt+8*@B~"ǷǺhRaկ.HV:/PqL'\[NP2~I#R9aHR&YL0WX vj͋YHٜ4V+ѳ4fr>ZuBFT4Hʠ*Jd-+n8M[4bğCA!;ܠ%A4Kh IѨҧ۬gL–LV Ո\6x1D86;F+vK*3#mX\(2"6Ź:?84lEodm~xIӄNjOamV/7#Kptts#ɧ,3 (pU\:/FI!N -:w dʇ&"?eXP:xpdzw.xO ^!SBLh>"FGC)-=ll~h&@Efwb2_%vSr#R.n|}ia Mj߳  mxw_, pi3*,Mn25XFn ̝JpH(FȣJicNpH+X䯏." d|i6[. T8rܹS{AW1-`nԭ0~['3DQXTtY  fZZ<5rA-&qW#MZ{|L2H!T-L``*$ mf/=;sd-R}`Jϊg%!$T+(ݞ+iTЃ}9;dZ% SӌC].!EQ97 Ⴝ݂ZE3=Ԋ#oژ_+q:#b>e IXdL➰|GCÌGpBe96_R (_u)o~xq_]BzT=n0[ZпPy}`Pɯo 'h\?w(z]`I'q5??絛d׍r6X<͍Y6Q{~}e{/E2WQzHm !Ӡuč:G=qG+rI3kP@jځA}= I6##4jQbTGcJk$CY C\+pybeA"!8ʓb]?(cK'wD\it )zdn, q#hPur{/TlހO F#4t&4N5_N:2i- 9`jb;'xYWb"Uvy6Ցek <|KB|Z/}gUyS:C~L,1ǩfBQ?lHwy̿O{h5lLêA>bV 3ԶElg=#l9 ̻d:F1mHb $LܸZtAY"9mž.e2גi0}0Ъֽ *%F IQi)C3W(t0*!SN F&߂F H6CK=b]ȍroCr[7BAJai)jE-nԦ0Isp1g^GnzJƭ8;Uj>=,)E?\)h( 50 K;: +Y ^@|kK'F`;hڤ50C~"~&O\^ Ltb,N%?8dp͹փ']E53W['צ'fLIxx%ȷrZ)(]gaB_׶ףI }'ֹtdiB9 wLCv2p*d~,{"ŢY[ZtD2~tE/mL3hϪ3B q},U% `́m3XsК!6%}\k/\i!D|'& TJtfMϼϻsDm{Ŭ77@GfzXʈ!|\zz"񢓻TKSV$IzۘneUg$XD3'nr CaTbtn@ kKͰ7Lf_u[2G2P؆sdҠH(FVv\^ KӬ)8:4-iw†8=NVjdLndKQ(d tDgk1[DK d,4)Q+ȑYq2UK%3$y "_ f߼`?' η]ɭ_?x@GgauOp. L,Kѧ *fA]m9%,&oskZfgC! PN[,G6)0_P%} <dhy&jTfmޚ5VYW)bv\>PgP'416n`.OWc|mQqu0sLx z& "Zz~Y1a"/qroRXUam~Wӎ1k[d]&1;Y MއB VZ>^$޶CИ@ff+=8[nXTudW'?cit 8"άhے8XmcDn6J9 R0ȓ]ڝ3oȵ9gVxqq_&~)45&gj+FE킱w{y:@z*+آŴ@n$mO9tQr :T_w)?St/gY8#[z7L$icZQۼf3TԑA BĊns ~ S9#&ΥmG)jpGq}vnO8+ S CH-(EY!GG%Wp8 \ ]uH~0:Ι75@m [Pʱ`n4* tkjmFf0 c{#np/A 6K^B Ys51SSSo@L$ZU @S'cI& R v 7tI ! D4qiΚ)Ba-V%hbm✶.m,Rհ7H7g.s/rcaaB@&7<~6"2G$8%tutIַr0ׅ ZW:6CɗcSNFl%LūZS]`3;_fnrk2ݛ",ln'O~ J4ƥ[y@T?n`c-b;L ކ5˼0~1 U}NJS+pнAu7d@:9Nξ #c\n-\/# ݶ%Scn3=D%aY'MI|Gșe,N`Sό ?mRףl9 d$٭e6(b1o6g~\;aFnꂨzG=Wn"mdT4r)\F|Hnհ0cfŜ*JI$8 bz.-A<*om([.)kx+Uw}P'.Ĵz ~ֻUd˰V 47\d0`)n܇[&ZA2ĥ0To ?_w~--u8G8ą\ge( e, n+W0r]~Ṱe$ۆ-QWfmo~Hp:'1h{(u3}oO6Y{LL ߱yu ܚބ}j.e){z%şjNdek\qV_"9[l:t]I#<%@@蛍Ly 3uFxyDDiGSKᲠ: jo%T1v5ٓ{_Ň6?d^Lڶy e҄[U!Mpk::``SIH:q5\! aSq%Hd'Qк5m#X7 t!q> ioFS}rH~wv.da.L; v{x?;JǘbAf;)+4f̻`ѵYDȋMCT~>2Oa_#зVR6"ZJ/T HQ&K>T}YkvN]7܇A0eXF -_ `#QA$E%񆗸XRԄ<( C&xґsǙZM#QTmwɃ]|T q+I]Ʒo imݎDL]^ĢjgOai"2l,Jf<䛺qXT צ}bYEvY"z{Y07-vXPax@re䷝aqhWvpO[WrEM8d[x_)ns2߽1 rw_?{*t$oPXhCZmVEO\UD~=,l\r?>IbfCB澩XmڝmB Ťh;hƀ㮡#Ϡp[k5 g\4m>yDqz$D[Dġq!一mA0caC](Nڬ$^T0m 'hfu,t۹~ c@)Lҹ4w6֤LoEBwH$@_Ww}q7}x7zщ!Jason)7v@7=gc$za7Ac-ÂĖY bԏ{gc/ 2k2h}%6(x95i}a^Wn~ f0k} {bRoŷV,̐Xߤ wW^t{ q'qTJLP`xsMW YWSǁmH5Av%HzyyW(]lt ԿfD1ׅ^# ɒ)ӟp@Čj7@St$RK1tL zoLݞi'½Ғ*9m*m1t#ӣCM=8{$̢BЉQۄp$ ߅,&Z=b78E)н f, 1%>/4 B )'k=]1QM'׺bT9VR3 OΩh_7‘H[d1T"]>y]`-)w^mv6' [!ָL$"CF ]\Wo.=uatqD!)j&7ɢd3hѧ`└tٙ8[qE%-qUVj8g<.TUtڻB6u`ؽ @ wwT S 9mi"\oNIbX7]רne-hu@}2!I % 2EŁ#2G7?"};rh.-b*C{O`y tZD -aNa "o @5HWm}TMb]\Y#z3!OXQvdi{,wn}:V㤻JD>v Q_؛7?([VUE9/ڲa(5L?LUѹL%3 MsN&P'+4%<;[ߞ0~1Ml#iR,pW̫֭uf:j! {2Q ]fU{kj!/f4=_ j;&5ЕD3]~IdmXt5;4ُ#>GIXҒhZ5푾aT~QUh oa H~x*Db3袣`7Ҏ0NN}qx,N^y6>y!KLxpͥ#-n/i&.r[V;Mx%EhHW1u`:pꑴF1u{GF)#5 t=}>̩ 1,΢|g;+n ԱBHv$*1?e\ň;2#sYIS:/·Lu?p#j'ngweMt:! b7'_ '[2׷~y3XP0\ ŝNj׶7[5z_ j!le =z N'CׇC&]kS K(źi9ɐyQ;kv֭Ma0/F_h9dQnx.萮F(ʲ-m2"=]}δPLS$v>nXЩ;{ t b~|TAA2Ҭ.>m- ӉuFE5ܷ:6b3u6la^'+=we%CY˻t^-e\Ή~xNEN(~տ$d[fl Y 1^'k"SMٸqTu~?iGX*sKmO)pcՒ#s#LdG`8SF@]ʍy(*~b2:&T!HFzmçG VDǏ뼑 (E478GS!dZپnmV~@ofX~|" Ů$r;{]{},!,g[w,ݘ mb%g2bg bܴGiᰪ܈+Ͳ CNڵ S*^n+ ϲ.}/[:lkX<-sR8 K\lSM' A:xb$ä֗ W=? \‹te~Á#2HxB]ggܸ=tYDKd<,_2.fBNS"E 3c/LM[%nUuz:KDy=ϒܸ!۩`1{% $)Z<ZZa%(O4#hxie42n:m7}/V mAq3A3h , (.i(*@K=^D c@X@`wtj.;4JP'UY YL qKӐFhG4#~L}gtS.^H 1StnLeXKMHs:,h*#mG\5 eYaI%h'Y4FrVD;kVK-ZX g $rܼsg*8LVA_N" ~"`K@My|q>¦"ro'ys yog3x`R^|Q:C0;tDrǥӞGMYImz4)D4n/Kt xH{,Oٛ9SEL7.!P]#R*Fj~U0^2p ZeIB!S~ p@ȤBZ$PA?K_E$', c^'cR˿y/EϏ ?T,jIh#hi.Lu0~O@ID?khӋ1N<@O"M}^DS4%ϣ2yVO"λdه ! ]ҩ;g0(`C&xNn>-`a1O5yd9*>11oVN9KܚeDr-$]|si ~ ±2ZP]C֝HM1ݟİv;qw=S..TMV?X&ބ 5OC, 7OT1~)s9]72rx3B$bru&zHpBK:2}E,+꘽\zR- V4j,9?|U3&5{K][^` {DvY| -GI+yǁ/(UI VjʴU䛙pUa@"27Z;8kEnDLL@$jQyUR#T}>*;9B m/Ζ]x 6ciېƙ0dc9Ow:wB,fS3In=D8I|:[]-vG9nbOF3Ip"< Hb|k YT|)ȚJF.KR/TzK*kčlrOb4钢M"3΃|*X*[pdsXE '*z4kR+ 0 M7%'e'eT oF[uXVm#%=\jgcԳ۹|CZRK~?K\HiwWQ;ܸPqPf gB~ʴz1wOjaqNVV'JW(N1=Eڦֹqw.'-{^jmD*WsKxY+ GP&Ðk-;ouPab18zvGk"S[dTqCr ?)jfPQHgt{8~lz0W@A?^LE¦+۠јK%P$Zx(!ckma1-vX!ɒ侪id7/@JG Ò?u73qB E17k"/S,7/H a$b",82V,O}Tܣ]=KB RKyYZwo`0#8%7V$i D!iUQV(~r,ha?0Frek$w"{ IGUC(`>z9'K8t~o Hdc1ɍORݛO3 _ ЁKZ#FsFCs(oc!ӌ`j]); jG.A$ #)@^UqYyWA |xO6FK#ױx2:ٝ\ _5o%$9͙wF_?@{ OYŜB+vcAi24KJ-}: dQGZiOW(QqG cp߬ksk_|Oy=D}TGs._ GQ_z=>a[ [r]T9I@oKi}3.Ҧ F`f'B\0MM9&A#\qsްA8?F?iX/ !hX ]\#ԠjЗ}Rq]RP{dv ^8j1^N`Fa P'%OtfuL{6"}Ze_$5((t& 18B[9D]ad7OmJ_E^ i$36r2SVv!0 R[$˚!KL>>لPzV{*E#xwo4L=*F*;~pI2GlIB(xKV# ns<= :b> Y4t(rNFwPPړS ˈ4-9C1J8i?] a Za=8M83WkX}K]3qlv Xk["K%FAx 5榉?BQ)z3r8xYH%r6*t` uf Yd6iOzҰ>mē^f,U"*bHNѸ9F]D7$49CoZ?>ωSK43wL f[\ b\J>_1X3WOt(yj {`o1fc穠^tJe=,FppCK}ˈ\U#kqv??\PKh ~eEg31D[TܴP/fJy u#3&vQO̸>m8VMMޤnEQ^< mclBe8\&4'wTӁ⢽ԚܢP}PT\gBշJb El`gGjH.Y9]\N{>#VCtzW[\PgQӤO>H[ oQyuwV{63n_TGbu&Gɪp.v0S6PeIqjـ mg| y$99cUQVbv@Ov5qL§6h;y`Đ;ڕc.5r ,ؼ$m1NNyYMSg|Om[zOL*عDfᲂ I#m 9 YM|*`3Նwm\nUdBdzW8`de.mͿoOG>ɺكh7]-kxilP3>?oz׽72(Q~~bՄ3-b1_JMZ7g`s*gl8I-$ \8>(Gw1dwVI'EǼRx,?'k|,:J2p?&%.05+s aϟa1Ӏ*F@w\[\ wLI(T|vQd:$'qmT[yf ^"wPaE~Gm-?b4LYrpo|/[ɨU}knbƮ]at!zB+dPr?MtAo(QUmQ˙Qz]bfل-eTT bm8|T 6updsw8 z>ȱZ;m&LE#H_a%)dA}z;_g![&DzHF Q4}%:|` x7_nsxv3~s3[㟁OռJudrbU$4QYߐlIbql;xΆF~|}jl*Pĸ1rEP' "rb@}W_|"nEK)oIm]HΏD$v|ɚY֚3FV,\W력ȵ0łs)Hj+#X2c!ѰJHJ<>S+WL>.N4MG" 9m$ρ"et/^ NsH{gۻtA]'"qU2q;X)? ;^ $r/lq9bRe/S->ԅ;qpmuK&Oa}z~hZCDI@ "%3ѤV ~ \>c׍Buɿ{~O[/ 'sM&$ 2vR,`"ngQ/"'XRS]xz-@y+yFVCC^hN}}4U;|.eQ޺QBݨ߰KwupߟԺgB _esHH(((DǁL޼#~@{/5'2[J,{ hM__Em$Mqn^Z\_E! )24v0X-([d-++Gy01k*a5nGВS+\H#%Q3Ȏ2hb`.i۾ҁ(Fg3A/rBe Pt+#~ ҏs 4͒f 8V"~bKJ@Ee,j^ 3wTOxtUq,g7gaf 鎰f0!{0B{7}/ DؖB?LOFmd!CBe# Cg`PrZ[ԴbTfѰu9=M>m-f}VMX &^T]p\SDk(C%[)WmIS*=v*;p]S[>-0ObPj_E]4oCqb2`i/uǃƞB#鐶Z/Hf7B?b6}TLWt0<ƣ n%^-ͣ3Ќ#ϞI/ 1gkSJ'BAu=wf$yB>!s#P;[DHz%Q)mȅ~8"W7R~3ZC ӱNmUqг@+r:?S0y ~j)bhqZޞ:SaI; Vt}4g7> 8v^L)JpzlMR\k^5i&ٯqBGz:m_ |+r_ R۴DuM/I(djr4=x8ǒSޟ,? }FnI1! C5G~1Jf|ސCK49$2"Pudr@(ֲ=[}7;{rZ]Wݔ޹G]= i7a"0'_2\y+6y}}FxqrF)'9n}'&cB 0T{vt#1\_dexN`@5I Bf ;Ѥȁ'\‚5w(/a;V;€M朋iCUs=#ko`H^ '6K9 g)W&ILcFwfFE ,tW?PIA(WB`y=7kD()"9c U=Eʍ&?< i8酑3A'WC,uPG(?!Fd̢؝vsǑpp0ԣĉ]Xn~hWZ"~_w~uEZhhBVu` `eK^>3m C|91zT<&}},NakB!VjXGtH'[ ;SG5 }F_Nx3wi/|9x% 0PF u2\ 7= rb$7xL$?K>}B,Eyڸ5IXOGm!26(]z-Al*G`|e@N8@^w*ˠ*M-?6@Dba؀jFi[|* qt[\P\w_s:$?M=>ԑS-b0IeˏLk%軕jω̆9a+ ['0\Hyu?q7y[:036)M|6I8[8s6u("~bD`O=x2L!qz1ȚX̱Tf%֗ NgM|$mZX;nibKT۰Mw,&vLHlw3* L௶O~vǟGJx1f/t'%ZdFc.pY;Vj(\G l98HxNOɜߢgy1C;k^5׉Oy i aShX9lr?~~ (Yi<$~9X`EV2eP:̎D x~Ю-Jȕ*=_ύ'1XQjm@)!h+UC[p#Ym:Awm#|P2/!n=6FKqfE>WKCf6!e-"5l?,tAZ3Kz0Ƌ8z2wC\oXI[ JWG7gs4X.aNV^\'/"Ad96a߳B~ 5XdP0>8U9hu@}]% (nrހ\'> z} jK N*}H b!y|#'^]'גl J'Lqf o)'&؎6`':u@I;(/,3'zkmȽ| c`N٠(q尿&yj*}aʐPmm)ӊdO91 Y'n*I&?#QWԻ:7apEۊJRJgѫT" NA0Do[m4y88, or;]O>_{d}qB:Dž24p 1Q|;,* 3"?SbA8fʶ?$*;˺Q [5&dKV|owmfc ͒n֢aPq3x nr7K|O㇖ɵ*m\&X>n*B^!-;1e _ߤ{ 'qxJ<1"}xj<CX}~VAڏ&Ne>+L+C ~}$ 5%Y5sq0\Sr2=賫8os vq `*%$W T;9k pt5q~Էx gg&[mM:^R: (']t$/u?|z#6tCݳ43,3_ۙA=IQW\u>:iW$%oC$:؜(+xٮ6s:/}C_]rP9!-O0diMi…J>te~?et:Вܛ!ZgpYwV6Shlβ S{>u0)6WD6̜D67͟VRBo|^ $,8뫄imMk网E7=TgDS@S,<3eu0qou\aWk-&Ql#b8xr0 qZ'' i4Δq7BaHt"Mm;"nx?>#9;s =sPl3(9,ȑV`U$=fd$۝qf:l-T8Gt~wlCF:&0vV}Gr&TJo0deJ.%C D;|jI3.<^}cx2\\IEz\u-4-uP ZMuCu|c-?|WL}BKA˞dum,`-wޛdIsC{[8p"+K?ƮawX-ضVo>s)o# F֞\$B0`  P~'휲`6R,_HBqi/k"ѫ7\ä 1hĪebL^'GR DbQ܄U|F6ר)|T <#nc @dNcρ󛔻Lòhԑ:0)0cpOjЭWLj8{f!2sSI}D %1Ъͫap',a!VfpL~؉ϸ!@4BR) ױ8OsRnX^C5vʟlZrrx,/נ"9'hbP |0ERgж/1bO{Y kNޑ4 D vȼo.~3M S.o1У6?0fS_ XU$uʥߕl̷#J ^cʶ H?H@2>dt? &5\ rcazHZ}W3y {>,VuS&DPzVR ݛ+v+,du˔tCQ'U(cijFS9QX_nh2YX-^idEs٬?<ha8=wCSR=DmNEPuBd=`lL9G[' fMQ[pqDݽߔj905CCpo5(|5^ȓg(kuXF_ /e(鶖O&`M|ߣ$)>.< ^!&"0Ot"w(ҞLEFnE{aEŷ?j * F\*OrѰDWg[\a9%>Zaz*/v9ĴK^:.r5go8gi!U)q<^zɩ3XYp7 ΞDfV `M 5+ 7˛#K GÐ m/0M;diO(W8 7y&7# @0oLy<XMǎ;s+d%\̊@t4Lz٢'G\ Uleh#^uSOz.f7ePmU)pTz$*&䒕IbF,w1;!5'WIa~pfpD@D."Tw8W$Yj?*yp<}?mk2%bȵF]0ΨhИz{6+:t-!UAHC7%e*lXl 9m."pY#IDgE2z) =?\6i>h.-Z ՈhHMTռTȑoGmT$_TONJ0:i,jʤ[W${Ȫ%ipU oT$23Te%'+*Sڭ=kxMr2\~&ַX: u-@cb~vX^ޗ8E"53Xs=--2? )0>OɗoSUʺnRE"Ν))К  4 <}\ή]&}TjFC:y ,^(*{;>/^ԧy, >S@E *CM+w40Cy{* ل6[2Fev?n z`E2)E}LCgw4mm8^O!Ys~Ab@,JUվY?!~/VQ{mԋBXWAHrGleW=b~bsӇn.7IX)i: a1>/B0;h AwYXކfõPJm1\ec!R:b>RHk23iDYp65նWK^Z1TˌbDGF]޼6'RQax̔_&G YA^f_ӫf7+?ܝ}H'FZm )B{ǖ]IұV4JS iᬃz +=vFօ!2e+}^O\ԲIy@pTGN8KOa^G3OOgHtbs ̀Te@gA!!CuZtrlK[q*]8;=K7FI1~UP{23U%f,¸#X=p='넻L9{ҕUԇm" *s+wӦ 9}R 5蜈B"ԋ X:i DQ p>vwqyLSnM:SxɐcG:!v 3\g74\fXVC,=c|a* JiSPV*NYKSq$%uU?1d]+hO U\]FB-* J2$x%ln-M.tT'k0.J0f'h2H΄jwJс f|d`s_Y3-9puebץ$v*պz3T9{QXa+v[Z̭*Ѩp٘ b@a ^lsxq~!Ҿ_bpəIn-hzĶ/8T9ILc6B15䇥 O,\x& C`KS, 8qkk86L<3 MjEau^݃y},oBB@(W_́I-<'ֹ`Lk}/MQjᮾx50nTMyf`H-߁B]iO%ok'+X; '$-Gs-ᚃ{Dr sөuaK". ,o\AuO˵?LH Md03DfPzJ/ lms_f#2 "_du3t5f ,<,wtX )W~CsjqaW٨3B#:.8l\ W/O.H%;/_M2l(ᷕBȵ1x[܈vkC<Î6UԊ^&zZu1Ŋ,>UXJ@mc"tB{/,T)U0~ >O x\aA1*3-b5Vm3XudSɯQŠ,Aۋ{C'gZ)̞:PRƻCo(WQԛdž'쬷iw)`'tfGJ/ؐEb |@۹RXD=Cu{KX>تRBnF-  alW,yJWt2:?8m?*~f6d [{ byvcٺ\@NAJN9UF^ 8;Q!7g"{A)+ <}t{m }5m/ƺp"Z9ʯ@_}%L$jYb[Uܼ1Bם4"H6Z8ͅc]Td`yCNJ>^3Eop).r\u5sB<%IKÕ+XKIjMN{+~ C{2e?V g?OBl " 8T'rȦg Xr kWkY/d]oMy j,҉aCePVԊtZչ1q:fύjvᐖ1aOJ*L-G| 3 +s]h [P%)DŽv"i[nE|2y3$Wk#;]A^u`ol-"R^~{_K?\[uVMM0߇ɂHٽ .a>ȱpH+B6B!+k?bgOqIbӁG '"W}5좾RNVQW4+*1:*uϷό!DYJX͵+}D,s{R#h_8= v:}Ʃ0:.]!%gZUpA5rHR4ؠa,ߚ)n'mDz<ަHgĞ3|nv]1+8b'yzO+ u`P6GX68I$WEynR.& ЪP~&e^ 4[H z1 S[+nS 3o2"io{ ߜ. 484UxWg00D¼ Hs "2EKki}!ueJ2s ~.Z X8ᅑ1X ;u!i(Tx!+ *|9ǧXo ؝HSU%c$斗sA=_*1(m0 Fnh0` #Uss nА8KѷTc}v8{Il/ ;D]r++0NG'<&R%^im:<9GzN25?m}Hu= F|U+c0$>M 1VmȵޏQ19n]l HWL n}#ɯx}rg[R3]`[R!jBqvhԾXU[%:ʝD}89,='o>S8XD έЙNp}XCŖ8ÇT(q}^xZ8j#@?q:zm{!JYS;I̖J5GOI1ӅƎmu2/ڇNu$nۊ?rPW|5 旕b2v8*Nays/CQt+be·D3>dF/D 8T4МW1C#Ϛ{2ŭ4n獋3ԍO}G骑EăW+;jH (~T_br`w2Gn݂4(E\VtVڶhW.D#[R 0в*^T%/l)y_.WZi{i/<çg:Txu#`RH(TKg >_@1 F[nfJ5OmdF]Jç`ԋY3xpiw캁ܪݍ @¢`JҸ-NBg!icP3JeY[cp6TJ.QH(a*z3cOE@ɞPUz'-h¬oB)% A2]QuxL"PG DPv.4p|Xߒ7V7#8,tޚu>V6$ ִIFe3 @v-QAF IQ0SRD۠ bR*` LcK>eM?6wort>0q .F2x|TLEGJ>Ed^j̈t3+G*PQI;"_c%2F}m=q[=h S(L5Pzh ̀5}{tE|,08 1!1-kZDvhdһ3,Dh|IqIXZ0 pq7P9X*[ 1ًKTIR oB|D73lL6t9t9$i+W6B B<tp̮ɔǐ`xBY z**C(;c"aɺhh!"OPHcD 3f$yXi/>"Ul+/PYM,fő$b~1ZemBĵ |XEx?TO ^J=ΐeLS6Je* ;0p!˯ ڀ~MwPJ{IDy)퇻#tQ Qϊ`t;B%T,MDw߂_$8VWdW=P,I߀CԳϤAsa5]㮘ن^kVO'[-( -F4kx_ !68N(i|72/ Vtc;ꆾ OsS26y({+R)j_߻#찊~Z3Bv>)#vxf+{|!b`5PY_Xn]\ R쌏: X30"L·Lx&SXZ|XtqGȀwNAs*H ڄ:},քwla>?W# `lb>&b@s^]>omY>Q[<` aL[(n<{Ɯm`3"+sAN܃ҽ#l7Q<E\߇ }BPG9}mUEwQH6̀y\(h (b>WL(]q ?󐅉\7Ww>UP1K?hW4bZғf`iEط&wx c4p _\*+S/_+y-XNM L/P "W(40^0|3-&'Bqĕ Z7=|I6+\4 uץhxt}'{]TI3S;t:cP"j1H6WKN7$@ţ$ FԚr\?r'7Y;7Bm,炲`M[Ox~XWԘ!3dc{Nuq..\uT!nf!1n/ĥʊPMB=}FkVT5>q'=+x%]q "CJrQtp/4o3yk ~p襴fxtm >n=^ٷk.nAǛI x~0[;k$hQ 7=n`I$CݍNzj6[1H0D?ͥ0SLpeEFHb51tF\ЄmMg+]?@ɍ+mb`QV0sa@A d fBO]۲n ɖB6Ve]XFӛ];EbI޸oe5[=V-/1Je(9 -")B$E ]5x6,m0nǶbhw>DjM^Nkk9&!eq cאؓr?}$/xc[' PE{z BԂ; 0iVYBV;&aպ%vZ# BJrp*89}gQA쯤C ^$1ě "Y)0IϳH-{mzׁVp:#}EJDF(g܀s wM4T7o[g?q;:;ѹ>;R 6i(CuEbǑԙ'Un !gN G ` _>pm6pD@L?0;9RӅja i?_`$ĭ*B>H|_ 6dF+qa7%K!P2^ N+-$YM[જm_G麣 WO'fW-\͊=%>1P.|eU#_PFb9bH X@pn睧vuh5Jy!װ|9ssС=Å_RB"ʡz""Eħfx*/Exu=+l F鬢v:YX'7JDԅS)#v[>-4wÅh73߳T}mAp"@>3^^e*Є>gH .};ؓ$,56ꄦ V8d>Ľr-ꤶRÉFH0 Ep[c!QwE$@P`)uw|%L@ƃJ)*l]?^xAviT*I'oOrWsfwKH-oA>;xuMp kn718{\ۖLnN٦W U@_q}i[g*$(OëfpP2wᢻpb؊1_  ='\dOu KT(/vvy8}JVRZ$c)]25hzZI-q`^>)g[;h<+]^ {85)S%ޣW|hi9`'f2Ѣv>UxoU= 8/4.L h8Y^N,j;uE;f+(px>!'W \98 d=hoƷ?<3|cd{Ue067+[)GJ NYFWQ#mf^y쑩EW:d*ZiNlZ`~'Xm[oGNV~{Ufʫx"K,-tco9JL5whz⟤h:LԽ Q@Ͱu)Vd,w ]붼`v8{:G r@T.4!T%$cJ)Mh͌˜W6ْK01;vԼ}CǬhԠ~߯=~+L&]vzL]ʕ UԾlW\(q*۾%ĄeUǿ_J)ep}ޱIq\+i-u\/p?"c{\G_n+IatޞRfZ<,FQk Tdq뎤֛ sFǤ1ON#Ms\p'&-z(r5|Y@PЌ@A w*gr^WL'EZ%52hg2;ǩ4+/"TEϮb,#<QVSH+QӸ&mS9.2?1s#6xd>dW,'eiա?;VVA 0܇<5maݝ5 1#0L7rؘgm9SQb=N-a0L!R؂W>vgDš֎]JA9FP6uKcdzWG3k7 z~y2 52Kl/i v{q =N(8a[P CYb,hW+mlb6a =ʕ\b2OK CSF+P[;keF\L''jw ž<孜sNwz #м"D}E@R{wMwboY٩ӲFwwsHA4adhvӶ1Xڰt9>6_ .SB/B[Z c[߬'O~&E@j,l rvGLXiq`luq<{U  p;7^􎍃#>#Q4VV8e@$Wpgy|ϭoS:@  wV &|!T\ɛH,a%`0%y5n{;NQgj ,3ɂ',7!sS3Wʆ4-t'e 6cDuz/]/>JƕkI\ed$X4(-AeR]o;QbϳQ,#z|.Aֱ= O *M2>,y4S@<w^!-*\VQGjf!~_>bA9kZ:VƤs9ݶ(==0mB'1b# Vgܠ\p/oJPÔG`+-BȼSHnICe ,I)W(Ɉ@|Gp KlWzm))??],z -Z='挐3a]ò:=䨱5YhP"Vd?I> <Ӵ^o"&W'k#|>Z1۰Kn!8 ۥzp.'fmHl-r9B&Ȉ-r3-znd銊x!}A呛$U}dʶI" :'\:R+(⤆'eJr+QkIsBw2V~g;ȔkJ9LAq#>X[qdx7zvԿ&L֦6 _&xI(fm@Y(F^sN=:&?\τ?s"LVXh~v|0*qv ?z^D^;3\z uR@3#DO"ќ-p0|p=G\$7]j[ɏDOC& 2TJK9ْD@-9)~etF’ǘ\lrOvFEұe.sDxfQ_4( a iMT5(.wrvNTcUGV2Pqj1/$cU] )0>+R Q"4|)7=lFFE)hC-.;-z;>`yE%;Jz)[O\t/WoBBrB-i{g:|C4X{?r#n7| CIA.eT ~mtp:ڰCc[ =j %:;]g=g*tHa!Nfzhh ';{to|{%j9M{\ǣdp&jFT)ѭ?(@{ ~)B y@F`h^N_M+ e:bi1w*l:dp "'iylcPB> chRl^@Rsa?qpqC^!  5^zTW]H'ӊo@jTc zIm{fc ŸUsД&QX"TUՎ(3ioXZA?]trРq}`VJD6$h3[ J5o"05]k'r"Me;+mNJzGqnP]W;,@ԉ`XiGwb a{є-Ry ̚Fؤg~*f4x^4,(4Xe6N1<3.%0B1^} =MLk 耻ū~g 3ϧVDo~| IzSC~Ig%t ܒ/[;n-I ) S w;/7nh"q/~'ӈI*F3'ܚT^#ON8~ mm`]\+:{&W۾!>йO|a cV6q*o _/hrvsz8vEiu׈n6DM}8CZօ'G;@QG䀍8Iui0ܦRRׯLjiODAԩчE.-bg &dM c܁^氩±>Wb}mQݽ=fCmAbԕQyJtryEOZF`,uZ<'ﬠGC17y:Gр" #FIbp" hxZ z#'!,y_X -䐈3? fgc~69E1"KC P'$ b)]u $*Za؍ǃchk,O+េ͞zZqԜNQM羂nOK&onFGnJ4)?/Yҍ^LM)ex̷2V^o;S2ﳓbi%em;h+M5ro`ѵeE@->2 %tDv}(0EKI_e3Fw׾7'pAqw|kcwf5l; |T% 7T٤Sicy?2i.@fO7]y!oi^ 6,Tfn ՄJVx>_{ 36CA5a>M2eG~mn61`^+XF"dC +K/u_#u^)YaZ~Xk{Jy{O;ӻ}VahXSh5̞]JFj=лSUrMC UbdXㅯPuc䶖6FS%~R0khs gvXNVԷ"#g,o+J;l-o6_)h#8>CldF\Z DM9z}N8-bTTȨ1MxGY^C|ZUю&ƛ(%?} G}U`76D"p#᥸C*|5(ψx|' sXiSgpF ϞxvH+"1m"|o> O͉^>7Φ$hgȣlG jAq^~iP)އ{NqAi-X &ѯ4BT\_9Dco{,էT{og7F ,=HP̑pJ&T]ғZ\ 2=IDaT@]~V"40،)!Ea#.zTҪP TP80)ǥY,x4/ r!@wds!P2 mu }Hr8y&u4 ꇃ-3!Rx'!˦ ,t832d.AM+/\B =a6L6In'"GHd}d|b~nfW}ù"<eٶ0I=un]&D,u;h50">Wة͈O!&Ub\%ȔMbL!nkp{LuIl'GK aGzoeR܉cSX!B55PE+Mv/V,{X# |vi'8zYt>0ˆLͭ mskXzc*̡J"rEoe7^h؋5͍/ͳe-QN$sv悰>x6 ,oмl[nc(yWލhgK93npuԋܔ%J}fN؛ѵK_RK6kIǚ)5.Z&xU >=4qȎee~E^Gq'fh\H-j4[9-6(Futnrx-@,C ~vHFJ?4YxҮs z]?Kk"F)gv12flBr6i|H"K6IUq{Pk[9dwy'o!JL3ՂRs#"HZ*A*6~@ ۡI"R_IL'ܑۑWZRh. cdqjc=+K/| t^go| y@4UaJ[?%C"Qrv;qJeA''u*娡hR7Ul-8r^U}{ k_sCkfzPEi s sROyaC%*5%faNyafY;9KBt^ \޾yoˉiÙ\ޣb\Q;y#̼.n8lnRZ|#]4cHZ))Y?İ{^lNR%ZjYDbjP^ߛSRX$`f%p DxQRv݃w'f p2J$3o?|iESHKgK0, &QwàK#ʏdH>BB!-mިrnjGgr|ȕK^n1k\D yxDѧHO~7-j⓮Cqŭ^_y>N`}@& LgU&WA[(G爊7ew֑V'QQ桢#~ o,{H~`b*]; O+`[ʷZ+Hcm%KJSJ/f rد[0UF=V7BO]{ ,zMy_!XmDkzL^@H/BT A>";}&(j _G 6SΡ 3--+7La˨c.#UN&AqK{fق֙Y>}fC+7C|m!R QpZE=O55zEPO ~T˜ >R&^(}~Q V䤰 0V4a'χ_2 $D2Fڏi@!w 1+piְRNW< -ҝd@Wm $`h%V 0,Fr=֤}f$24d 4`"WueJclSDNKkDtqhk>:~D1 thƀ-ٵhz]yj堸MsDBG6PD)o&gKp֦^ɓIu oP&9BnLz#_7UٳMB~vNI6Փ@'Qn?}m>=O< WVm=f}Г eZfLy1S-)C>i1bAj ֔+Kq %J~G]Gu?rb^vZ/4N&y2b.b˚t|:OzV|4l[cUJeZŷY2k\ӰI}1^[z<eɁ6V;5wŘ;KLb-Z. Y@phܚnXe@ >!ILrG<_f7dASSЮa%BM~aN$g[7bAGm4?lԣfVhi9/hox枧Qּȿ]=꧓=ANem%aYFϴ))X"H3 }OOnj^#=GqB` nt>tOHܧ.\L shq-emNɬ~P#v8˿Y%JU-餗Th\ItA!_JB8*j,3j:*ާ= 9&;LcM&춰8?)L69 F5:czStgm06A?jgg5/U,u㹇{ĠEDknaZj+_68(YP~ѕ'g_X_[XIr8$'&s|Q)9DߩrusՎ*ɞN 2>,S nw#Gtn@c!yZ: $ sI[pB'^3pIDZ{UVpp}kT9f7L )6rCu=ėϛv 0 d2^Bxhd&a+|nCd~0 OnfKք2A;zU7AyM)A&ȶ*^wˢAlw%Q;Glz/N`b R'>o8E1Aq wW\Mf ֶWꦛ,r r+JE }ZI]"x*VĞF>sTaKEq .tf:OMH*d %XIjwwL-̛p`;}&My'ckh6RBf'cD35^Z-)FwR0w Khﮮ 9(;0bT˝y'x#/;u>45;|}͚ +> K#JP1}"ύ$OVDZL1&H\`cQ'v]g O7VQ_ƛHYXT pQ}dSeHaUyݯ a|2c# Q DXd7]$- xSkbQ@kģWX9pl쉧یSe^3(?`F(wlh;-z7P$`~%>*b[9mOȘN4GM d=%ADG*EV8'K qMk1^;pܛy$Ը%|0df}E{$)HpW֠_}'pI4d`?R^;ѫo|$zƼ2A+9" 8rztr-kb߿)?)챲 OBT0X=7ykg{2{dalZqzdѿ V Egwqe兲|+=e[zSjEnR_yIC^1Y!?C6ZB(LbH٪|\) f2yu7 Cy5/jn2 S+T\܇ʼnH7B6%8Qr_w+O6y趘xh,!윖y+-◽9gNH=^3AX?v#4mnN3⸃;9"AJ H>j[Pwt Ez[R2 >p{$x7?+_'a:zRuO!]"9 ]07<Fr M@zޔmW,xm,m9=:(]7*,e1PJ&Ѭ͉X FҽO<2BJ4Iyї HOÕT.dî:]&^J4IUuΖK=LIc27K2 alqC$ȄU/`A# !Mp@g\eFB7f%3*7!4];~qNE26oc?߼/&LUR`I KYIϗN3/u1%g>?}OF3#񈖬&DbD^:*;]Fv|&[XZxF*pl_:1fw`:p>Z8"jGdfdrOj,{==;:,ыhZ+7nDZ>=|!ch&Zx 1TTc5%9/I૏Ĝ-B/8}uD+~vhv}7 c7dl ; G՟Z.KƱ'{ 0ȸפ*ptTRV;dx |rưL#h =bVĉ7a "..] ӎFZ-L?af֣qUbv?CoO q1tv4tR#&8ȏ\n*eyRahrd]-,cqn$4{@Wk]2&o߆ "f"wou_0mSQOJO.wTEGV =+wun4eyZjB:UfvX_`6Ck;|>.@HoiE \ :S P$: Py\┯fel|m +UAPVEe{&c*CLSQQyMZ WܼY>* FIi6 l*QNꇙgMxn_WToʈ).xD A]J5;0Q%ڂfW@O"kqM9wV'N#Z wkB h{[3L ƍK#Y 2p|+~}:0d_1z@p#y-RoPpJk4ZyŶ@.+][jnKJ*Ae7[>Q 2GBPխ Tsyu[sW+# S~\٨~xS_@f)쵲]s*%m|!qTiQ5]Lb o6hs {+2W!.D\ՇF' ̃A5:W5Ji K)|HP!hZ1N'S 7KvXi;i~ja=Ho^=O[u.Q/'Bʙ# sy7@ vd7_T{vڎR"C˙,L ȕq8 pMR*+F=r4v˲3G!v*z=@. J5tda½B>ܙt`r9 @,<~G~gdd ABդWanhMS54r0I*u(,F[p|](Ƈ=7~7Y:|҂(,(*p ˥\*oU5.9cj5BTPSTH˿/qK3I% "r+}j5tW?Y d 0Hۻ' ɥy\^QZb; \ozIA$Hmȳf:zja>du1py3=IR'-ǰW/'>1_ o->)V$6ϼRZyJU%բ3>E8V±F*Hks*JZ3BKy k4IF*lNJvv٦ 8lWY7$?Bue*WUM~x6/S4]^mW1k{6qUڄ)^UHٶX<ƨگ; ,yw"ڋY~ދi.r|eÏl'"@#ZFY#"K٣fj>?J?G9LObB^'i)= q6Zjirn T#-MY]Q#s3ԛ\&X߳;?T"C:@K)+)p<#Ɏ 1; O.m D{wقZ$*jK)Qq 1R6iRkB 4C?t.,qBSP֦r- NP⾦+h2^-V劉 |pBLeYzvQӖf UM_hPF1gηح|#y/NzH(k%u~2To20_ڹ蟲¯䠐ZET8yŅ`&ADtk=*(ʿ]*(H MAD{˸9fmӁT> D Z74wuLF ƤLOR[MJL b:^[R_Bވiʨ*lA{ rkjZ+`=k`V$sM>zuqf5H\ ?HM{[ھLdp5RW֑`_!f6<[Ab)+JHj3F"jZ^)-HП6noA[bIS/*ECơ?Z0u3H1mS|+=bCs jkTm(@WfrjwQ!*s}6k+Ez*#}4p(n5=af oAvApbQxc cuig㶮Sxm)Jcd@|> EGՕԒC@(fqpH= JRt7`*M,5 O H74q@Z^K13IJ$ V7KW0R% tu_cm-J+UpR5@R˔ >ŹmKU\ "kP/?BYxȰi>z2S*G[r8{cGFHZi)[8Gq0!T~*βGL׮vgՍx,,~^ r* #Enr8ĩK[z+;;/KqTL5\l\ChEz!"jGPs ݡXH֪W-_Ø]]Cf)gGi4]IsWty%'"hO vƇNzyks7P«t{\̰ľV_PeKЩi\J,ٰ|k:]'Q죐2 p{ju:-p^V`Wp͌M( xSJ(-w#}#*es2 g?MgIz'^b{;݋?0۵BM8ңv= }4qѣ\/toP)#A6(8ZJr)¢G'Zx<$c$RD;XiY!{gnr.Az+΍0!")V  L^)Xi$SI?LߴV]UF+o>utp-!OB!s˃A <nՍI%fD֝3 w]sV1aA,/ٜq8K+ne]3g8ri+^YLS.9(5`hBH|[Zjwyaܓop1d!,%̪ QrTi^vY4Gy;\> ,9ncF/Wmhxqskvc[SLѽ,3\B@Z"ʝùq[br QP?j&˯']\74+ܙ ޔC!E A#3_,Af8`/p9' ol!0L>gRvFeY^}Q+gfwq s_YQc`Kj}̤.w$m`q*4kY#:>Z@X5.\F*cI_?wb)F_wo#[NKx@gP4[Ů9 H8=srd" -q{Pʡ!i]  zManBH6rh}:C@fʫbc5bs آp|p?Wc]- Q!tSθ=X"GOFX绽q.f+r>/$kXkpCA\>l(4Y"e 0Q<߽Ó|qqn]b ˄.D)?8-ɯcOuꘆnI:e[Is\;;.+ FeVg 1Ց.r)2yRÊ]òfxHV.Pf>1%0Lbm_F:(ḨǻP+PQV3qE d˝X2vPh,FД-iͱ jC qvi۲~V^y>8?f251{D (m*0#A_ m{zKl0xPbjG u_:lЊ,и/X -PZǷz"ג^,T |i]`ͯp<#(*hx+BK H+Z/:R=TnI .{Sj