libcephfs2-12.2.12+git.1555518691.67074fa839-27.1<>,߲\&7/=„vidnn euPUlA( ԽX;f$5.zC}N_,TY~"Ǿk":L.P֚a0T&T ah6 Kh'WQOIcn\ x@#mwGc^ÒrdM;`<2?<:x&'NoPt5oyG&`;›R*H~ KQu(̈́)^KڲagC'Hj$`?`?Pd / 4 `HLTXkt      B X`jt"p"o"(8h9 Lh:,h>@BF G H(I0X4Y@Z[\]^bcpdefl uv$wxyz@Clibcephfs212.2.12+git.1555518691.67074fa83927.1Ceph distributed file system client libraryCeph is a distributed network file system designed to provide excellent performance, reliability, and scalability. This is a shared library allowing applications to access a Ceph distributed file system via a POSIX-like interface.\&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.orgSystem/Librarieshttp://ceph.com/linuxx86_64;\%\& 75510cf17ce36a37d8dc607fafd3672flibcephfs.so.2.0.0rootrootrootrootceph-12.2.12+git.1555518691.67074fa839-27.1.src.rpmlibcephfs.so.2()(64bit)libcephfs2libcephfs2(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   /sbin/ldconfig/sbin/ldconfigld-linux-x86-64.so.2()(64bit)ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libceph-common.so.0()(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.2.5)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.1)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(CXXABI_1.3.7)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.14)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.19)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)rpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)3.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 SES5/sbin/ldconfig/sbin/ldconfiglibcephfs1lamb66 155681746312.2.12+git.1555518691.67074fa839-27.112.2.12+git.1555518691.67074fa839-27.1libcephfs.so.2libcephfs.so.2.0.0/usr/lib64/-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_Updatedrpmlzma5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=14987c9e1e8a84fa35c09a5473b8637c84cb5e5f, strippedPR RRR RRRRRRRRRRRRRRRRRR RRRR R RRĈ=N,t;?]"k%`* K錴K/j3cfP%#ip!H@uxI޽MI@Lg/!:>$&AhA`{;Պ%=-LC.>> DL@uR_SMrEjFx`7}>}4 Ac?y@`bMTZ ߜGƟf֜ uސ pjv25K4!hRـt|z3.IPqq{`E9j%t|2%*3BNF*X6#@g.lO-@<>j֙3(D0Nzi T6U'|ۧPGT-J˙G7CaeK)kؖxޙa\Rx^u3s1KI "LzV)M$)).+ġ";MaúZ%_S<> y ~*J֤yAb{"K-iT*j29>o>_1WKe˟xIyO؆܁Y{ j3.KY a~ ,OVũZU*\`R]0 .W,Q Iźo/U(}٪i" ,R9Go8]9ǧ7|% W"ʏɑoȸBPy/hsI̥,z !rii@l %6ڶ<{%v֜@=WUg2Jpڱ @fZH(ǻ DfxvGg!`ԢqS愫q7]Vqpx(0'T.Q;GbNӇ⤈O9c^l@_}h]Pc(iuvً9a-j:L (ʰR%3YU_#TtIģc+$glk:$7ui&Mw~݃%{G Vema SY?׸a׭*JgBO!rap}W,=Tok1 B'`O-(LJTǩ^Ĭ4S]gq)Bs9X,[i!F9߹lPؓ\y)E$gc{'enM% zIb6l؁>q;G7)4{ɱ=YeM^w(ID).-.,Ιs#Z zFW&ND-4,<q+6IrX~@ʼn U6Us]Z,j~S%48hIQ/i&ZYהzl{#+4I;P-1lN]v.HқڀNqQ;poNfi{b6D@eC; =۪ Hq 9f }XO:iU.6_*D P4#Se{4[&ŴzykTiqsFHf¬yb! &^"w厸۟TdZL| 1ZU3 &wBy 7n#Cf< !z B3]\nW ulęg[x*@ ✲LsOz)u83WuN!_A+L;}63)P$TkZdľ a> ]b,[հcI0 }DZS}ڿ ȣ)x/p'ïǜ}'rB3V~BH9J*/"@l'k!+I$i8kRT+_^2vF=v9PwmIY n9X4,^G@s({RpxA+=@ǂ{K&L 0d9HYp}*p(܊:S}k^ZV؞/,VY`&;An/51IF4{99M-Joɀ $;OZg綜r&PɂSȧp9|ї36k``";α]G&mq # (Bl\ Aӏ ; oh-P CoL ƽ - #ǰ&| Ywɟ"vj:d Y})5Z!dTuDu*ꉨWMgձfMrEHi;n6X1":50E.zmS6t1g$#"6;i,hnia|Ԩ~䊂XE@Xp6Ϲ}tJMH t%ZB 63aR(2tI0hb6Ο{>U%*WQ#d,2Fd?h66g[O[ZcLU4:+G"Q]w~PeC =!qDĪ7 CuAI/s_Mc螄-2eiT:wy<8x$^w0wi*<-06QPsȼB`ĎPEzTy# />[zlNf`"Ӝ@2sK%5[cAdb^z5ǃK?K]O}X >no"Z6ݤi2y1(BFdȚP#*i0seG] h;?A-p>ƊNQM*&ja쓓Kq̉]`g @<CKي`?r%c rLO<~@|ϡP\WZ˜d8}Vleezz?oן>0@ܞJQsOBJW$=$ycKGW-VRV_R4ٰi'"5JP7Oɲk֧uί Ǒf`eTQ؊x(oB>i?SI> '\81dAx(d'!9Ty| KB(ohsɘ\dii$+Z@/>~%G'y\XֳL?'j+MЦz}sHK|^A[q.DpK0|0hU0thn)Ϡ~In`2|&J8y$/,M-͊4W'¬$"N9lcd17W4"͜=N[[bpu:wQðÚT9p,„wCէٗ1ڕn9ț'{mT hf)BT݀vXJ#ݯm*vyꤳ:ZVS&B~4쓚bC<TW ޽9OMIڕuoI$T]j hfܼIdnٔocNM37 c  5OzVI8d?LF4_qp숛U#MhQ{i];px\g`>~&l[?#-xtqlqzJ6;/Rhp\_r6$v^)YYx (dA܇f?S}fj-l+ӂv+vjAl0_)!+ m?SxD 1.Wc̙ѻ=qиj(4s0X28ܽ0! }D78j!:c+8Hb.ظe`302\⟞!@;z7%G6Io^ ݲ8Y%{lRfi:^ol'~W(aT\&5&YAjR ƴ ,.}3I6]F;JJEx]f]QJh]fWfHCT,OaXm`=\bt/un= - v WM*h/qt2BD_Ҹ;tl՛]h C(4B7We["RҁrȰ}j 58{T%颡#M=}^2vC+ܙnɛl^E$0g6#ʣze >?Ua<4LvY&4TV]8H+#-ɟ[#8VH=f846`h(U^i2P;=.C_,+*$w+h e/W L嵵~2Nv*}O$.4i$%n_h_141AJS(*Wy~UޖGe]5O%1d|;pF=&NF$ ÞXx9#zNV+q5cDFM K$"ƧNuiz6Z".S89PlA?ǹ`/RHP.\iG1vL:˒Y_cvf|"`r ;Ko]X+.ߟ#0f\o݌*:NА\w *||Nec,9=}w*r;tw\ۡtשUf7']vڳSMJ|Z'j馂{TPxxT(f:+ٮl=5w@Jw{@ _ L_B:'FuEfOD N _+v;fԖq1G:吘Kߌu{g H-ݨYXmU KJ}(P~TbNr޹7Fbbh<>JJyrwȖv @qF;x*_'Mr 0r WP(}(\S-ˁ7m\&XeYL*e~vLƒ#)ʩ&G^! oIo`e.պtrFp%W}ie0wQ^h0iJv(^qskH V}*5Vr{~WG1PǍr~B 3##vB@,B[NG%ߚ-=j/ R/J$E;rQ 6N0}sx P`~Q?ׇᾋZv TSH}++Bvf-`TR|Ex3)lV>{ƚu*a |o=/l9gbLZͯ Se&5/X6܅E%Jfw^''\ʰT ^a諪> D!|` ^Wxa>׳(Urtb=Eا6ymq,}A_|Fp?qIL=qEeI/EZlR 2@RoS3N[0@$wBUhQyTkWay 9KIreijA_ ߋ.\$قm8 d1)X7> Έ_`MF!f`9PJ2!5ܘ*HVa? W/'^y,A5( brqgtXf$y:صoؑ!јÌ;_҇O,u[ҙ rY]eU0\2z/9MR&97OiΑ/2~VQv[fsp[ܐP9wVmy+ e; /r)PXNbq?px|~^&d8%y_f1uyrdEӁҸlyJ!˙Qcv|MY*IG:gHTL`)lWv9kzܣٰrbYJN-#Mu8|k{lՊBWx֔ r@pL9-4F=٥ggꀭ(e 9nh4d3t-^TYGQbFr.woFd`f̨&2Qfh|Fh"1Fp57 |"ymORq3gN{ÖJ^gHe- >ѥgX ,Y@uBPpɞrH$c)pp:OV$v k2{LGCs$%ϋ4f++^k5є7dT(.{h4< e~w[{/m5I R$ʕ('\I**k (z^gv, _ ˖?L&(uURFTsVuPPA"k>mT2Zj'Иcܣ`>@)j.:Ikmi[-Y xa1Vy9n&Z3þt>}GAlă,sGc\5&p9_OY܅Hzǂ&̥PsC[A+-/J^<ɨ9Q;x]L8G$C,atwVtؼhUY%笓9斴XtY='Gwr~)aԞiap0@Ϋ i*Qj!%"è([JY % ~3Nt7Nqqv_D4WbUz˚ȋz\"Aܥbd{ K5v-!9RZ2 GBeى]u׿cfl;bo >-X.$DY3fm`xY3;2,CkI hWB^l#Ȏ_9mřa]VFKG4OO.Pk&$f,ѰL1%y4@}/SRNLZWTw۬w0mGGcu2mHWnH]e;x#0W=Xg%$q7ٹJ+|\Kߥ&7|Urz4hUB.~2s|Vo)&tth] U{6]Ϩ[>a4ö<ʙg)6A3Nt|\6`AVT]fɧ%jo=FWR=2ӣК"LxD!c@,Oޣ_wd\gkP[1OM = |~h7ږ]֕B2Ʋ #_Ē.ukI)o(jIW8dyF>ϩF*_gY|z8F/V>O/ʝ; & Q`P CD6F.`ZH12˴ȱeWgE&%tֳ YLmUJZ9GL(had&ms|TRCLYĐC"Y|opʈ{k>."1Ζ>_d =v oDeuYprB Bxmh4}aA{ jm({\ w-YYGZu16"̋bλ*U,*Uh USMTbn/gs-^3|h< l;/Q\ ɘ(hBD |B46Ft *_+]4pͶ=Æ 8I{լт&m/:2Kaw4 rhF 䘜 ]v;}B}@a遐&i=ngM & /X'!k2Aqft&H#759VVu8rasC2v۴K2<|tKJxl^%!q4y l6'HYЫ&`?>iČs63u>[i@*Ǹ x`U{l׾! É`еۃcCIJ*҉>r7$Eo7?@J_]CшVanY7q8ݘcօs ވ[ͪ1`K1Ev;-4KG)c1nӞѶkD{HZjr86rعݮ<Αa m<_dEC ,5SV57<5u9Uwʒ`Fig*!kh˞s2#k}p+7B)r13$f_݊)s) Xhbv,M)f;V% U,刳x] ڭO@r`l<6ݑnBF`TLJ,_[ @8%#eY9d䓚m$`-M!y)ޕqylKtxG*{DGՂYʙ0NM`,Bmu3ؽv! (?βV&3#o<2zWubPz3M}GqNh&8[1>CQ # O20 F9IDZU* [x8 h rgX*m0WQa}HPY?GΔEeNxdèdT;|*<_ªiz70i=I"FipgwoL kc^'OrC)/[]LDۋb~љbX іh./FL$DI5n Xj&S*B\Gxk8n}5J['7uE$1{lhe$\ށTtaMZsI-va u|Û ثC,<'ɉ}iü!cQL[~‚dԦ>O"XzHA3=Ϸ6ybmoƄl/K<<g[90]w;BjN 9xpNqh;O6KWFNaInYaVz_h11Sz(ONzR{=^3;wT4:8F"E>^C""! l#"f`LUfB2~2 7PVoWi?ڇ옻sPpǟ=]࣒p`)+;d"^…leդԑ3N\ =O]zrLͷ,,0ׅCl兘 se2XL <J%ПALhN)ziáyYwTZcoK'oK~\v,k5? |-Jρ<́a[$d{jTCsHb/h.ɊBݣPT `Vd=ɻM #Ҟo^~&B;E5lr';,]HejBok!򅤥 t?vt|*<`Åm*H߮ߤ_ʃGXXXFSauX"5",fV!> 4Woio`xӷJ߼*}K@^ݵTs{Ԅ6:J ǥfAiЈ'21i׫ 9qu*0/ۚd:Ơ!{eYJI`+uMw\Z"EՕd9^K  UuüH멤zZ|5۠o. %B'2ڋ%_QA " J_! B?%b~?1姢^IpE$Vx=h*|dȮ@I䤅*{z=*Iϔ0JE r+,*\B˚ͥ'R@Gj@oOJ ZA5w9g\UBţSq:i67[Ez;)ڕ%÷:ZTj cd_ZHx;w[fḯz`gL!C.̈́c8( :R'y@< dڡx,P$6fhabnBK7pP\ #*w7t窩ܽv;2V]/% PKKC鎥T,g=}h?OTHDt梩'x88茅'3nzaeWP\@zs eVEeau`7uQ~ſ(IϩE؇ t"J\גb+t&YN该;5Lt3p2JBVyG{JC#KV bã[qF OY2sW)>_wX**fŀ}H#N[؄1 /%=rDI ٝ/ZWz\bn !'gD& x;nT54&2,p28a=oѱeKgIv_HB~ r)OP23_}ޓ?Zq(y 沈O9_{Zۄؑ`DQf ~z \;] RFt@Y Ơ=D, iچ _(u8Ifׇ3Zy< *Gn 6NJWCD\+W%H E+W8^eYogG ixmgWOδyC5#)qu-!a(qRcK%;MW:@ LJ@x&7&E!Lަ8i.x KBiSK')c . @3S[.&$0~6f})qqkR U>\* !ӬL5ʹ8?~ygyX[dǼM6dJt F"ez?apoi##:`8Yhș7̞7{lÙ(6f` 6ag|̒]o\y˗};zQ()1]&.9ij`q\##]׈ x(8#H?U]Bų@( !Rx -;4;60E`6_UXTpg QKE *+ |\ A`5L1\< Mn@z_Pg(Cw#Mr.R )(V͑S# 9{[hEMRKC2! ľ20-@ h /:n Z3?yu .h[ Fё%AfKo,A2S>RL!a'l! AFL,s2U3IC>Q4 AuS/!vyFRE?XWc2*@K/eWcuOJaf0:|y9~;SB-3fO;2D7"}l/jzlj7L}o7m5g 7#q#i,1<]׽QpRF#iNetcBgWN@0B_MVOYY^}қEfÇ>Vۿ&x[gtcS7Co`DS,kkPy)B%E2n;*t"J]]*e7 @8-PST8;2zy~:bSI<_Hr+8lSPW &A\@^`C6ШyRL4kkLJ$_^ ? (>rEʱv-pB Օz6Ӣ W`tlze5O䓖F ŴfE OZXHp,ǙڅC`izői1 p )%jq~E9KD*8wU_94r6*  +D?<S1>Yz#o!ģ8y~kldJc)=7UrI߳WޢA|J*:7+|KG?鴖4 vZù=, 't5QD,`^oܮu GMWT눣Aft?<%t\D]Yg0Nƶ v!vïp&:âZ!$vp:6@TE:6wdܮ{tCk!S]ܸ%=KZ`$ c jz Zb49 F>3/u †%}`DPe"G5F4_f\69fKOIhB3uv^|`JIWL iGi6:p\Pw6X@{`'ہF& ;=F )/ղ̹FDHy_>3Be<\MR9 &|FR+,u'-yfR*yh@C/Ĕac48WfҙwL[gQ%2o!3?Gl,|ˡF)ĕ'ij aM`#Ev(Z &"(m\f "d@^; 0X\c^NB3m;W?L + #ѽ`uĀ1F2y vb#=Q.NemPm\$F'U < ՁX kxqOEH/$qf8i0gW+FʆrFZN&EC[yw}C10,{ͨRcFW]^+V7IV jJPݶx|=\0TǤ!5`y!w~bu[&x\C!To5U7hʘmWﭚ _E v/V3̩ve_16~#d##DkgeOYuDgW:J`m < lDS,(5> S]&nD'5%s+&QAPӮa@Myի=]?d=^!Shv4g5'(osWbay (NͶ$o F]Emaݠ-1FQ,&|J% H΍*=p'71X}#8?N&;G]LwmCTqIXTz43"0/<@0v4_5#$SI],=K}v,u/_öVG bMw"fm:BGHHr@5(d9_ ufζ꓊UE1QM:ͫ@ V=xO:"f)!bϭm|-hBD~?[PfOPu{8>FW;*,09ȓf2{Ϸ%]F)ͼhvf jbCo[~ W5M `3Wbd53SY2㱘l7 )JZҽfuCsj#1K5f%LRmUU:=D@.׉iX4Hs&ѥ p|E,l.TKb?F}Cz hv/e1P L~n׾/|J@js㉋S/j'n#_8'm^^i_XD}a::Jj*Do Mكbա(rp|&5n琾C.~{H)Z@d-YIglh&P]3[ ~5,/@;,ޔ'7݁7 1/mfO u,2o_v/:s̀.|Te!Zw?v[b@͂ ys?igvUq<H?\WݣJF[-Ysr?lV 0$5G<]k)#;G(V zAw뀇QjO4~ ;Z_@hO9 OebK|kEQVQBH]t¹!>^'#PgW.7)A"BbA27bJ7,5;8m+h5 j2^tەZh}46P+m֡ h*!0+2izvzCgA[:?YZ4ϰzBds\ i Evb+W\&}ڨv i6 엾hqr]]؅I!m QA[@\Cg3P^Qڙ?Mք]+ B7}ыaj k_'E09o^ .&RW54^|NSP9'Hk/ޮ! U  ]Wdئ>U3r5k$4ḃ#$xsrϯ-xѻ3C'I5EOZP}bȳ(uh &z>֞Cm}<@ƅRΔ]!1SPV8%2>OR2G~0EuTf~a$63yRr#/`#W^2>vH3K*LX1 g=Z9XYc&nJr63EWAQhE;FL A$8j&J?Fra-SSocd87n)O0l UaW& W(.&Zt b WE~]dӒ4"4G z4Rr p#:s]>lg"nYX*ik1tLHGwzwrUs09< O2p^GOt %,'aV66yX'lxK+ RD=uP3'4 1ZbWW2&*x!iֈ@6r[UH\I/n 6=Ugep-5VҠMָĶ%hVV"]vnz]݈J`F x-Pڗ"@\ou\K8#?7Tf?&e!͓ ML,3FJ.IiG& `I^rajMlo\ 3svsD@ G#߅W:P^/3AչNU~fw.; _1JF[CA .3 CL/j2RS.EцˍjDtRJBX]J&(U9R 軾_#lf&k(5nX $%"smYGd˸3x#XAS*\2޴YkV} fNyӗ/MnpRXjRiS+E84bѱȣymj7+32F.BT3UhJb9栝MXR31g/Ys@{hR\`7K5 n?T"86̪`e;(^iZ`҉TӔv*f -B&ߚx M߲\HFܱ.)Xk^n./4TZXLS ,;kj$Kh ^YݫB'^xTU2}WX"j 8G=o}\6hb+[,h{&ѐ{11 y+=׎M¯KEyWIe,= p۾'EF?QVy(+^s`Cl ^NnӓʣH+HjD}>gq ;aNAHKκUOG谪<8/ bm>ثWVrE~>tt yVk'+ԯj͇Ʋ'NKJO 2BC#+f;s%ЖeZAݐ#8 -wB<95x ='BUD ̓Ü2AZs1Ld+ҺaVU x PR/ 5:YL...6l>=wmYj>RʳhܶI<ڰSC@ Ezݳ-C=5-=}5e#ƔV= ȫ 6 ;['8*iGܨaitn+3OG-5Sӷm88z N T{7e~mJ6u'lsD yce?p$o-P^Y3>*oш.u-c^csdY4aRM^˔ML+k!GiMM6w]j>_r[$n[݅MAKf$5=Wٹ#ӄg>PȳQϠTy }> BH}wAs`W?'`7A!|G~m)ߤ@pFgKiyQZXNIf)5lPHuyƤg;,TXMl!OI]زOeý-\Lb.ߜ,QxiL"׈`L0y ` ZNjv:;#qADġ 9*jF(G3DUJU&!(|5 `>m.1Bov<[. 3r.r|C:wN?>TFy~LjBqƪ͡X!2dhۨ3|eH2d","iWg|dkl.0`=2E |_C"W&T(![oad{rSeO٤L7X%1oHBՋ3ۭrOW?^_ye6ԛdf]+18]a,-jT\>@ )N0lD侊~"\(cCƲAtpm-]eԀ8.JAρ"mշ ZTy,Oo[\t$j|4lld؜e?w2[`y%Qa躟,3'Sa m)7H]ONfICQ'Z 8m>\Sn G۝Cw/x {$ju#rVܕMnl7Y[%ȃN F g?wPF.pTRف@w EGlM8NB.䂇Dyq[+`1}.Jx7_|ڄ\5)m:gO?΁ϻHTLˠP#9ꟷI龅#ljN/_5hҰFVxP6?`_[{'~K&=OVwʉwvb{Y(t+j^ 5{},VM"wXq4X<+f8NW,~81͡ҡr^3$,kVv krZh@;NǘC1c~GMo=W=ăY*!G!%AA Ƣ&%mPoH7gV`Lq;x{Z$ˈ:<o/>͟r1\}#?qĹE2X>y2n r͂Bs6"ǂF?*t (&f}c9Q -@6'%Nm]Qf?zo'%?렄Ta f>߽졌IKSǺq1MڗUqP=a5 lv |7R4:ntVd.v`ܰ>PfE<{E]=gT̘LˢF"r`btZ_e@?t$D9w?!hxB|O^ o# +)z )z598&NlQWq{ξ8nTzXؑ=\Nsfy 4;a]C0 }/a̢g>"[zU i tUG,*Je3&xlW ޱ]֦5sreǸ/Sg^!*]TJX :ۚa6f3gm W{\T/U:čxr1PVJS'K˂__K7&QFuG,(P|9}n@aJ#L 4tY\I\h$B޺﮲YUy&ϟ;>MaŖO *L"v_!l)S?!׳!Vtơ*ع'L&[CMZga8rvi s TQA9j-9.E_8LqlگV޽. `A`_?US55BQ4[~:H(^ _c UIֵ{cE^9:jd L9Ev_&ImK /dhnpx}k/ LG'Z-XӐ,)H 蹇*m|boeꘉޭ97#EG^t\LI>XCR%N9VNI[>ϢAaaPoXTTF@S|$s08S;+m.+pi;~a[la$S嗣$肾u.R?`'K]#>WgT00}^4,͘SR\z_L. U'kSi: UՁJ`'ԧcL{Hkhي'xT% ` gƊߤr +q-%akMMCw? @9͔zL((-Π3 =KXķ#Uk{٢%"nʀlꎛwht'6{$8 lp eh*8xH-w>P?,ӓvarF}SP͗f36`9sR%ϓ2`j#?dh&4+:{5sXwp׽ %<[⠿u2X4»{ff(rݪ+*[L 8dlRlԾnȶ [Vj`2U]|yOSEZ( W)-!>Xr;-~4R#-Gz]Y^խ_&dWԠG4KA  \MhWRyb fx}RKC*M373pIk$#W-cFuvZ1IXWaYMvd܆n3PAWOOkז`\xp԰hl7}/U#'qg[`>9&L2RiF`|Þ=]Gܞ;2>m{2QQiTx_XwXㄛu>n[y;N?I#P‘%;'_i]"Of^WړTCC0jY8:4=s~_J>mM9c>+h'.͂tvb#H4 W?}_>7Io?/䤋M\eTHiY"TUR?29\K*i<͎@|kwxG^)V 9x2&BDC̭ Bg[O%n{YOiXJ΢ $`I}z6Xܽ{W ,9;9[(G w+<&dԈ1OF̋#cbOiԹiqKtgGuo^/0k{68 61u/)Zw(M 0Rclv`bzҞB)ΕM5'b.k{΍lԕ*{0" 6 +yMrUo 8Dʸ͖ƘۿveҵZʄ)|w4^~6t'8rD0#<>q? Gvuޟ0E)NOV׽h?ъ:_-'*;NfwGoqiR@vsnUW`){4A~Y7?{B+]'Tw} eh24V\oM5Tf5UR0Y12ct:_w:9W:vFI rۛ2ŞT,Kw1 "_*#h_G;~VM[f8e LJ 6欙ŁB];(l7I7}h\ hIWެ ZHfyG8Q|HFZLqr91&N5Lب b&|jۗZ #jz߈ #)}R7/=3 Ȟ3^ wro 4':](-ꐃD6 J|ACh x)3{|K`J +4)ΣBeL{tu 9M DS"쬃ǁTĐ>vi:uz^ޯM}(7#rRNrgL+vEK!v{Hg|f2ӯ3F7CSev8fw*f:O>v`&zjpg AW~ ]loi7SDSlgF2&T^ B@ Φ3G3a˰et?NT "bM6to6Bxd/*{goMvy,<grťZh)@|"p@]fJۇ7- UE2Beړ}}%nȲf2;F<Cq+ k3 x[V6ue=%jbI}`|gMТR1Q_{9S24TjL'^&5~,9ҼFҾw Y]W1!qǓUjL'>܅NʵC<"Hr 5֨.dֆ@S^>`vh ҵJnoC^>ꯈ 5K֬p܅q<mQ(Ѷc9>D8_?jdDc ÂrzQ9ŚdwIQlYOey)/8ε "?z[ҥ6Wʓ_ߴ_j cmUj O(wFۇ꺌ΕNTIj> uHH, f)^r[Uz~i*ߗVhɥ!vxמ|sO0EP3-Z杵ҢH ~]jt)^~#.U"9FZU7s8W7Mgu\ڄk5cc("Gg va*pmr{Κ~pfQb>q&Oxw+sub2o A8Š|nqc\>f_$Hyl`Xr);}֏3z.Vbk-hâmgLKt@;o) h/^my.99)?[/ ]L,R(_m3&op@! dg/)uc ~SIyw[:hq}һ16{&];񲈰u~pLIN._-?zr~m2Rvu|C8 R^'ۏJ(d4[r['"_qϤ~SBdࢆ IENr3`i |Ė{_V@Ie/YgQ/ݓq_ \#:I;;x?<зlU㻭Pne?4W]v/U h=ϡì~% hۿvFOn(-t A.(tsb']18@ ^f۱yܶ? x_hvQ, &^xHܒ `lJ*#JmbGFuN_H3nu:Y6 5V~~q}43FU?I$;N {3WBj7X.9)VzC{ ?|;UBO>ڔM$r8Fvs(GIw }bRgXrB֥{;)%[.򂈒/j.\~IƍJhzo6Ni -}YwĬ֩gK4u(XK Uf[IDBJ\8F?p P#Y|QCm2gd&ֳ442vgYgS|sF;URY7P3}`eْiIա[†b<^"۴C>d r+VP[?O4 "1L{ЮCp:A!~ G'Ok# ']YI{F)z蘫E+.C%X ̟ YYQ)7J 3v Cq{OQ A4ڪ9Q=*-UZN0SRWĐ?V4@]w7ߴ"ZKW@v-:CrLC v[5}(TnLΙR }C.徭a9\TܗHK.h(>%>&2xVlEȰ0Q[u.QJ63Sw-(otZ0j*e PFpD&YĈ&7DOlUj`0EW JmY 0)B<8lJWIᔰ0[tP/1QICl}]0HiWI-=z[򠽼dŴWU#7ẉ1KO%ԙSV~!)3ٴ\:>Ԗ6t[Vʻ77`0 JArZs!!Lx~jl 1k׵ )MO4cx߽>ZSdR1E5GxcHFQ0y#pJ<列"bM`W'+yb0b| }8>Z!3E[p/"j q}43zOӄxlnOu6e#6h=!fqi{(brZ?@w"4(вNDžضfqqF2./'poLӄ@-}\3| 9Sv-ٰkkbBuY^ſtMoǨÆZG #Q龆-<6Vʊ3 ;')Z1KB:>\vwͥVN9WnCql|%3gxJJV+|Sm9w.4<vNa-wI EM I`Zd7EB5M0#{/a2iyd8m-YtG׵Y1HI:Il54z #&|VDL* P䉭X v3N`rANЉ>\/E~;:k།Ĭ\7;}8Vu}} Oi8ue$|ffAj0Z_ X[LKN;&:@7)b%'B$4L wpLH7@?%ֺk[[с7eyoǗr\$h=r"qw\{=gtEȚNjm K眝쇱jg`(/ws3>-߮BX+?8`%*ܮ'o&@}.& D,ODUk貍G_!ޝ蓬 #Q4Oc 97iƙpv]Wqv-%%JgpBOv@9merX7Vjc ۾+?b_&ffBtbKQ fcdRx_@ėҬn0P2I 4N/b%zOO$E+8bPplg6]F7/DrsFl$Oh"nB. CF7QDHGJ|X>9RuM _${'!Od=dƒoCXV-N'kkkhY>1駉zǂF:RC,>qVb߽I\wFEYAj[eoT3u̽'5 ÌؖnYfA=\=q7Exr""J)8 9CMؽwFe֝>pe&݊%\WEȴ P#DauD+#z p*fd N0:?8Wj  Ns%5hK[=& UT9C[P |E6_uFH_z$x-So+Ps&`̿ Y3ǃVF0iW]60p}cJ=t|uA)!Q(AUo@vnhH{K5X'-<ӒQHESbVǍd~5x?!ڈl(t` Lf@Jg֢7g.8-DR]x*IG|sG;49c z-KvuM_UOL5\W9q>s1VHy]~ П)S! ju _ݔnY}h;I\OZ;V ~PD(G]kk0 n |nיᅛZDANH:n4~ ,r(B~U=aCmK0|er 3p@x!7ewȸv=J)IugnsM^|A@E~zZΣ$sJ#zsLwZR$@+NÓ<>Ɏڱd-'hRxNbdmsaVձc (*/1qm! DW*ƹz-:KFa 4(kz=."Ig)4퇵Qqu=yS}_hUAۑFE-Ո'dWՂHX;z q/%!0"YMxTmjDgNVF[΁Ă_:NYQ6&{) ow7 a\9bgA Xz؎0 d旉&i?Y_"n,ȸ\V[8q~XOr3Zڿ罹5+mED'hk}!v mf"'VXمQASPTP*@rfjsܽE2cO#Cxl7As^+Ysc~vGI{_?7~$?A2'dl%53p%02e{N,qOA_Ik)$X*qIvhy=WMՁ aPfIZtaskdjb(NxPٰuQG=y%)5u`.oBg>~dY ĀγpЁqRAhU짡Ql4S)_%:/vd791L\0V/oOwp0$uLf fTʷ~p4_-%l%iKR1j k%icF#OR4oWbPNŠi/yM^-eL]ӭG`r<.@" Z1.9{#U=='g/$%ɣsغxXhph[TڣLȁ^xfDio6"y5Mt_E V%x܎sC QYۧT[v6yfmYsכt–㪬{aO'_Uyg RJox2.J<rsbDHyvsXRU0Cvt{X2 R%….|YnCH,z=+*0h"R:Oe:`/@ 7Qro Yf$2 "p[;3՝:ɷ ꬟MpD@w&-Y\{BC #h`ȿx dNm0[hnnM3OTp$ ^vhYLذ,wR'XhCO(Qmww;OrWo< gĭzi+;:uPw9q}VT EXLԏ^Cԃԇŵ;Q" '©ϩȯ2u8XfHMdV)72,+giT@ceK\b4#}i9Ye{LkEOgX~ԇE@z_2SB䵜rONՐ(/ykL4"Mģ$xɣ:䩚*֡iu?1S42 6\bٱAƤ|e)as/m:)Ue!ϙFMCj{"5T4ŞNBb$sR0O0hTEo QaGlR +G)Ӑ)>y v7`DupM!j6--{d+vR"xZ^ˊ;bo2!*\|̕|V63V*Og~IUamTy~vyZD]n;,6K#80یݹG'|}QGˉ{ZưGRԱG"ژn6y(a8էp\-hJ3e]x9iֆnȢz=maWN- wb$jչgu_RXෛ|/#6P\%S2onm/KR`"AkW6^:@kbnl&s+nQ`fǖF@`0ِ+z|Q1E&҅ISU^u[_2xsUHR Qb?M S!Y+mt u{[ER=HF(jQH|l;niݩ(M cAxzmd͐w&C-M1`2f5SEh+86,JovHrUĐgr[~t냗@I-Tt%PW]!TҒa@0E2"P0!xKXSxX/tN,v;uAQZy"F\LCEtsV` ׻WV^LlcF> q>Go:I1͓tX4nҜerMޚ$^hckBȜu)$,?\*w129٥g1Ĩm8Dكoiח$ 4mQ.yPR_•Q~Ps"XwTrFɹu5WORWq܈n@2 F)4U8r DgnY3ԙw h*Col#KlBZf7ۗNGVc!4cwZԍr]Hl 1 Ӓf6(]\fF4}K4n)͸޼bcQ!s1bBE,0eÑ -9kBCzu`z2>Ve"Ur6t Ӗ<Vrǒuuɏ7Ձz]ƳTSS_:yp)]&3E7i*'efň $`t~d%2?^T#6Bvj=gri3W S_ޚU%~qfP٩)*NWݱה>[+BW6@Dt'3l9P[JG1Gz(,iHe8<%Bl7\5r+?riOf1 2Ako)tߵ:jn$~:ˊ޸ {i뇺T$t$İ~V97`6_O`*9#͛}-7uH wQ{+o}+Z9eS]A& 7't*8O*\ן5ΕX`mjPlbUHi&oYq^nN|W#xwVzˆY{qJyQ[z*$؀Yr;Q]DV8+( ^"/xIb  œF߮O=̀;mbVX@;@Ōa;pFaqsQ/:_ٴ LZSL,ơҩOxE;IĮP+yd.pTXf//'C lh^uj0ZJ"]d/T՟DX/<rmT4U; Z(O,'5ɳ+\ bLCF0S*́BuPtͮB<*Cq}oέ/h)`Wͣeϟ֝W;l˧dn]Oɣ"'5g$'TȴfSer߲Y>j6D"@l5ebGhpo g_.?/OƮҋJGdEr ؆;))XHmoġVC(I(n&ƪ>r6}PvgؕQJIZq, 2鲋oHVSlwTGv>XHv2cCRCZt8=8EכQMWƚd2622x{u"Ze!P#ɬ}Q5I@Fӱ7eͬjmь-*sV?w9r"3 \H m FmrE5$x2Ku%(} ղTA NQMwiJ7,ӝYṂc 3s`JwjCKX9{ނHJpe{z{g/yHr<TxLdl=(i<$6BT;wWoK3}1Dځ+2rɝ Sb%Q ;wC\'*(Y6$rH.L=!#j9uگD4.GkQ̧ՀT}1>G!<8x5/xģ4;iJܝ;y#o2)yvI3J6j{`|}V):`a`v̫;|ʭŦA}aUKg\bn,v-Qtr5EӉkSbw%d} X@h U8>Ww t7rFxA`uܨqw 4n.Ѭz2ŠBm^ݨ7$DR+Ӽ-KoL|6PQe[^SaCeM܇$ Y]Bez "hZW,5 g=mY 2bth _7nO3Ç[S/f/w֮mĎnFj!.`,g5!4^ʱxxحk8( - 0lIpﰬbPh/#BҌRasz}ƒj tn%qo).Q=(P1J(M`߭c\.i(Lf'W }?n!rN: !Y<m\ղtLܖwˬBD"ų. Uog92|(ȷMĺ,NwoKEDYuLfLCHn鮅q%ԙx!(̥cU]x}82N(aIt ddڞ-wD|s\F+]bݯ\&#>[CŃRPnYv/) Ef􋂛P7~B vIsL*<ٙQ@B=QE18v`K#"l]fB'41r$fQ/}ӰSpzai9]7(s߭[FO\ԅB Qj(3rә7WaMS>^*[&l7ʁf8xk!YS^-ylMïpQ`gԸףGRt= H+Pw_Hqcŕ Ab>~z:Nb+_% .JhC5CnVYYΏ`lz9e;6R's~wk۟p`ϛ C~!5JPFt̶!-$Cr(1Z/p}^"ت;$O{2`Lm߅\TcST9Wz66ٗ`}čxgi r @ {*@O, v(Sվ>U9{ENɺx[? -9v<|9UgLBwј$A ?r]ab :c6 WhtL(>d ^\q0S=1B:Sd-J)R=fFk_}?̆G}ͤP$JXW4F:SSo_&={Z&k鐼jM6Hh31[. SP-õ_ kNb8pԝO i|wԺSh33FMǺ)'xD*9'K*_a"ڍHUG6|'\W${@bVvfk"gsݙޖUKCv/- DusԳ1 vrҖp8-,6K8hNWc:^*C<ۏ߷D(ݚa߬dP6 W=ڤq3O~n0 KYJZ98SUHF bp6ze_])t_jO6yws5A)[-acEӨ>͗?Ou4!VS}_F'A -k, 5PM(Oc1s$64FFL}ui3ppN=4;3KݰtK,(ɚ%W5ʍ}d(es+jcV,173HGE|tn0g m㪧@J3l.n-Np2kk}çӚd}L\a[ָ4+蠬_6kLw.VcV3O=ʛ+F!@/bw *$-ŇsC=z1(x'oģfO+({vgȴ΂\Q6LdG)sS/)E맲hT7CtH<؁4L_ҹұ Ҧ; j F1^,8DjIށ2 %шEY#]evɯ;ޢg瓣Y_@#TC6~ +{Guc!D='-HKrcUep)6FU󔖋( n.Qy|@!ISdDt\Hp.~ Znx 1㲐yv#2pwwӀ&݆ћM8gXJcx,4sϱE%I -&iCl. utXSn ,RWX3L?a'KO<B@e8x1 1%׌d*C뫪!9g~Yxd0B8c"S:TS"hfͥyzWncEt8¡xBOI;Ot~sMR,v$Ml`カlA_ I>~ˣ({acV;!ߏ,>ȼ5 I @9q>_*H 8D--u '1:HCP𓎫] Dul-q\aL8 Ư @"x~DѳCm[D} UCR ϡITKQ%s8<qa B.rw1&ه)ߘV̛Qs?Iy^y'ˍU|4Cֽ\ XASb\X0qis_SzZsQ'G)^Mqt *|ӢE;k^rڜh(N( tpv:VN\bˀNPmw6 ޡk_9Xdi4uܾ&* w~EW~$=vX?= 썉 |EdX6z90+> ™ƲQPH& q:X54 ї]߷7m:k?fM T0g7M9 <=({G-ۓPE_pqs6j/EiBXJD4?J2cu9fa34@GCD:fZ=0!z92M8R` v]*ό 4[ҧf%aڜӸ1gn&J l1!\trhgy ڿ{队TBٵ^#ո[;ŗ\e\&ѥTp4rFJEn_̞%h5{|6%vu!AipS>[Xһ --VYeQZq[1 / *",I*[dzݚtDaTsO\ڦ#@ԾAaI+ؔ t= ^u,G(\aߞOu 2[Ac<iH'W0xH&?-I _)/nJ! yk(UFh❄S2'ij`Tf0p|y𥖃P A\%.rM&ձHm1aǀ<3ϫ4 /ḄsɦNL4A3#{Ko1(i?o|(`޶Iߖ p|CE!JN'j{V9I7T"?<~wԘޙhw<lp>P ur>[x {mFG`&H{i6@{J"G vhwIKx89Y0튚u;L1+=0.6PQ@qQXH!:fyc33.(4>"A)?ٕnL9N.CۏRC"޼YR43~\X+uGf6 a47ו-. lk鱄7ᘋ;zv̑/)#C> `mڛ삎Vsgzv#u$2s˷%h⬈䒿#=o!L Xι!xVNX*-Z-l{uWz2_5VB#bCH}9a;:pC ז3BWIeJN$j;C0A?ソs8#uUq<8Ij˙~ɆF3}7fl_j^w&3Ya[_ʘ")xpOsCxvnujWVNTl ;?DsuLGF:ƯfjrPa_zRUZ 9}-۶XI#K-yߦjK; dxbozlqx2ȄFq'&iaA+P l`H,eHұI@P%uXw0j~0:ZǑ FM] ftEg#} Nzx?ۻƐ:sTwv$*EcCӳI)CIFx ~t;+C Lr\w\]R,:Jy@f51 ;* )v+;&Ԁ-K]!4RgIF3H7ŮGd[[ZFG`͌gʊz֓}wf(6়UiqQ~k@~a[u_ sn/q6"\#F>[Zi ΧhggŹPݷ³TNPО[x^gW'q@D;s;tiȋYhafYG9kx`Av2ILwu㡤8;MTh?"1Op wʌ]tj( <}C0@2_&Ō@#2%盙xd;)TR%M[[,gEVaP`9~U_ ѯɩhy%Ѐ1k@vwͅp*GԄQ!?ٞWҿ?ȷ,6 \ l l=_U (PD^Q5g XM򤛑T;waHfsfc!I}X:@C!=VU(TkٟsjZԶXZ79G-GdᢖܴA+tprD)GFVEiC\y`0b5%6{60eqЅRWh1|$4e}{%%AMepdPk!nFfeX6 4j|ZЉRA2 ws0*BO{+*H:~z}-n,w͘'_m2a/,>y?|5崻YFV9_M4g–h-Ĥ':`2_*%;08 rtw֎Vqk]+>7sTU37㕟Mns2c:h"CvE!,10C}Sw˨R';%^ƄIՅa> j) ~_ n+cé*M=&;hRhփE 4{H=u!Ų^F:n|9':ȇ2f`Ņs3(0iW#Pox.<bB6.*ƃ99! ]:KwS"A(:)7Pn ]+oSaTM|UBz=XꨵB;)9a(wʆ 7w9(j!iCY0\hI %>Xv ʀ8j|ο?2uyS?%ۨM#WNTSF8N"# ^ S% dDOT EUb\K>'I!pʩ9'Xd]$ Qpsl60t~ "*˿_!5_Q.,]h`A*E?lc-n~W)ZB s1gZI>&Ƚ~PʮٱRTJrLbojCe/"2hn.'0rD`EHp_z'2o2*6e@K=3ovtz^x ȂכבۉvD^LG] y]20:. V^AǞ@M2)Q  82ٙ=M)3Hp(gfL &S'-Zo@ x}7,`Rjܓ$b&}75xX/y)HxFJlYu]= /pU2yi BMuHs!x8a%m33 dIN^s;Sg3K/ dk1MA8ؿ 9sQK@eboO*-f"ۿ˩34HSvO8?ƑYR*R+yy 4u&$flM6d]9Ez;=}DzKe'U 37N@~Ιؖo&ƥ4ƫM-V׾.dPV7Ќ:=,,Y6(#tPoxPB5?_5">tķ%W%8nȔ?ISʇ k`F|gsLOu;}{)R=⎙nZsQ°; E Z;%Zk0K1,_["/W?hV{r ;ƩP˟V)KTfP䆭fI%sdl{PF+B}!`e_;7q&㪎8 L9Gpq"Q/,GwvUp "O+%rht8}1|3[U3; f"38x! ,qTs͘Y hXoUX6xu`ڟ`ܙxC( DgP*Wh*#W5I(x|C&>tPYYdP4=J~rehi#QRSC;6n+h%C+8_28XG[ק,]εU؍fOq9c.]RvB$󁆆l $:[g\E'!`+C)R&`.maR{1t,sÙs@fYil c u ;kT C&q &\Xv7s틝rpkv!9Cy~Z)V)>}!v!h3?n"z.6#|,*t"hF}k'.lMd<Z] In{Mia՝nazI[j9sKj.sx2I&kS8_$DujA#aHy*)uH4u^D`ՄPB0FVJY\B:/ |(LNs'&dܽaLzKD,u~Me07,V=NY\[ŝf~E т.s9Vkyp^14x™{16\h V:Ki+'W[2 q qkyʱ7#0J~&96nZf}(hG az_tUᦥ CL-O,c=ړDBe2l뤻얝%,uOI!|}6R  8)bɽs]4%4fk~k<(StĽ/͑ P(<^H6e±):H7qHG/$echhנlk{}K7H^j=#\̣)(+޶ٿ~FbFd4&;rr3Q?`"A*TYqT(P@qp3_ܼ.ᮼPFjMoʭkZX*x(Bm`cj9𧛆X-΋cO^u9?lG7?Ew5 &/nq \#E.j{. J H#";@fQc<ފ#hQ%6#}ք V1g4 4>_wi6kq21%,^@QZSdlgNM` A8?|$W(_^#Si<(۳Wtt(e: .bFJ i9.+WO 3A3V`&8 Zt(.'ɪC{#]MI;cَw@~A_BFkg p7A"p,*9)w#=PezۿKC4!Bn-'Y_@ |UCʃL6=RnLm%$.h ,>`- (մ1:2uޅ6cy!#{0(